[D2XR v0.58.1] "type = anarchy" prohibits some unintended gametypes
#1
Consider a mission whose MSN file contains the line "type = anarchy". Vanilla D1 and D2 would hide this mission from the singleplayer mission list and prohibit you from hosting Cooperative and Robo-Anarchy games on it, as the mission's levels have no robots. D2XR v0.58.1 does all of this, but also prohibits Capture the Flag, Hoard, Team Hoard, and Bounty games on the mission. (On the multiplayer game settings menu, when you highlight one of these gametypes and press Space, the game rejects your selection with the message "This mission cannot be played in Coop or Robo-Anarchy games".) Missions designated as Anarchy-only can indeed support these gametypes: for example, DogFight! (D2-2PLYR.MN2) has goals for Capture the Flag and Hoard.

As a minor related bug, D1XR v0.58.1 doesn't prohibit any multiplayer gametypes on Anarchy-only missions; it even allows Cooperative and Robo-Anarchy. This isn't problematic, but I thought I'd point it out as a small inconsistency.
Reply
#2
I see why this happens, but it looks like it was broken in 0.57.3, too.
"git blame":
046ef88c 2837 (kreatordxx 2010-04-04 09:41:53 +0000 3147) {
ea70f3db 3181 (zicodxx    2011-05-28 12:07:40 +0200 314Cool if ( menus[opt->anarchy].value )
046ef88c 2839 (kreatordxx 2010-04-04 09:41:53 +0000 3149) Netgame.gamemode = NETGAME_ANARCHY;
046ef88c 2840 (kreatordxx 2010-04-04 09:41:53 +0000 3150)
ea70f3db 3184 (zicodxx    2011-05-28 12:07:40 +0200 3151) else if (menus[opt->team_anarchy].value) {
046ef88c 2842 (kreatordxx 2010-04-04 09:41:53 +0000 3152) Netgame.gamemode = NETGAME_TEAM_ANARCHY;
046ef88c 2843 (kreatordxx 2010-04-04 09:41:53 +0000 3153) }
046ef88c 2844 (kreatordxx 2010-04-04 09:41:53 +0000 3154) else if (ANARCHY_ONLY_MISSION) {
ea70f3db 3188 (zicodxx    2011-05-28 12:07:40 +0200 3155) int i = 0;
046ef88c 2845 (kreatordxx 2010-04-04 09:41:53 +0000 3156) nm_messageboDeadNULL, 1, TXT_OK, TXT_ANARCHY_ONLY_MISSION);
ea70f3db 3190 (zicodxx    2011-05-28 12:07:40 +0200 3157) for (i = opt->mode; i <= opt->mode_end; i++)
ea70f3db 3191 (zicodxx    2011-05-28 12:07:40 +0200 315Cool menus[i].value = 0;
ea70f3db 3192 (zicodxx    2011-05-28 12:07:40 +0200 3159) menus[opt->anarchy].value = 1;
046ef88c 2849 (kreatordxx 2010-04-04 09:41:53 +0000 3160) return 0;
046ef88c 2850 (kreatordxx 2010-04-04 09:41:53 +0000 3161) }
ea70f3db 3195 (zicodxx    2011-05-28 12:07:40 +0200 3162) else if ( menus[opt->robot_anarchy].value )
046ef88c 2852 (kreatordxx 2010-04-04 09:41:53 +0000 3163) Netgame.gamemode = NETGAME_ROBOT_ANARCHY;
ea70f3db 3197 (zicodxx    2011-05-28 12:07:40 +0200 3164) else if ( menus[opt->coop].value )
046ef88c 2854 (kreatordxx 2010-04-04 09:41:53 +0000 3165) Netgame.gamemode = NETGAME_COOPERATIVE;
046ef88c 2855 (kreatordxx 2010-04-04 09:41:53 +0000 3166) else if (menus[opt->capture].value)
046ef88c 2856 (kreatordxx 2010-04-04 09:41:53 +0000 3167) Netgame.gamemode = NETGAME_CAPTURE_FLAG;
ea70f3db 3201 (zicodxx    2011-05-28 12:07:40 +0200 316Cool else if (HoardEquipped() && menus[opt->hoard].value)
046ef88c 2858 (kreatordxx 2010-04-04 09:41:53 +0000 3169) Netgame.gamemode = NETGAME_HOARD;
ea70f3db 3203 (zicodxx    2011-05-28 12:07:40 +0200 3170) else if (HoardEquipped() && menus[opt->team_hoard].value)
046ef88c 2860 (kreatordxx 2010-04-04 09:41:53 +0000 3171) Netgame.gamemode = NETGAME_TEAM_HOARD;
ea70f3db 3205 (zicodxx    2011-05-28 12:07:40 +0200 3172) else if( menus[opt->bounty].value )
a1f7da13 2993 (zicodxx    2011-01-19 02:19:17 +0100 3173) Netgame.gamemode = NETGAME_BOUNTY;
046ef88c 2861 (kreatordxx 2010-04-04 09:41:53 +0000 3174) else Int3(); // Invalid mode -- see Rob
046ef88c 2862 (kreatordxx 2010-04-04 09:41:53 +0000 3175) }
It can be fixed just by moving more game types above the check for anarchy mode.  You say that DogFight! has CTF/Hoard goals, but are these standard on all anarchy maps or is that map just one case where other modes happen to work?
Reply
#3
(11-24-2013, 09:14 PM)Kp link Wrote: I see why this happens, but it looks like it was broken in 0.57.3, too.

Yeah, that's probably true. Unfortunately, I didn't have time to test old versions for the three bugs I posted today; I only knew that v0.57.3 didn't have the double death glitch because I remembered some v0.57.3 Co-op games in which that bug definitely didn't occur.

(11-24-2013, 09:14 PM)Kp link Wrote: You say that DogFight! has CTF/Hoard goals, but are these standard on all anarchy maps or is that map just one case where other modes happen to work?

I'm not sure if there are any standards for the Anarchy-only designation: any mission developer can set "type = anarchy" or "type = normal" as they see fit. In fact, many developers choose "type = normal" for Anarchy levels. But anyway, all the Anarchy missions that come with D2 and Vertigo (D2-2PLYR.MN2, D2CHAOS.MN2, and PANIC.MN2) have CTF and Hoard goals. Judging from that and the behavior of vanilla D1 and D2, my best guess is that Parallax intended "type = anarchy" specifically for missions with no robots, since it's pointless to play such missions in singleplayer, Co-op, or Robo-Anarchy.
Reply
#4
I checked it up in the original source of D2. Ryusei is right. "anarchy" is not supposed to suppress Hoard or CTF. And in our case this goes for Bounty, too. I'll move these checks up - as suggested by Kp.
The greatest pleasure in life is to do what people say you cannot do.
Uhm... Honey, there's a head in the toilet!
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)