mirror of
https://github.com/fabiangreffrath/woof.git
synced 2025-09-24 04:29:34 -04:00
make "3-key doors work with only 2 keys" bug optional (#45)
* make "3-key doors work with only 2 keys" bug optional, fixes #38 * Introduce a compatibility flag for MBF's most famous bug and add it to the second menu page in the Doom Compatibility section. * reverse comp[] logic * add (config_t *) pointer casts * improve menu item description * rename 3keydoors to 3keydoor, matching the menu item * comments
This commit is contained in:
parent
10195043fd
commit
457ca505f5
@ -111,6 +111,9 @@ enum {
|
|||||||
comp_stairs,
|
comp_stairs,
|
||||||
comp_infcheat,
|
comp_infcheat,
|
||||||
comp_zerotags,
|
comp_zerotags,
|
||||||
|
// [FG] 3-key door works with only 2 keys
|
||||||
|
// http://prboom.sourceforge.net/mbf-bugs.html
|
||||||
|
comp_3keydoor,
|
||||||
COMP_TOTAL=32 // Some extra room for additional variables
|
COMP_TOTAL=32 // Some extra room for additional variables
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -3185,6 +3185,9 @@ enum
|
|||||||
compat_model,
|
compat_model,
|
||||||
compat_zerotags,
|
compat_zerotags,
|
||||||
compat_menu,
|
compat_menu,
|
||||||
|
// [FG] 3-key door works with only 2 keys
|
||||||
|
// http://prboom.sourceforge.net/mbf-bugs.html
|
||||||
|
compat_3keydoor,
|
||||||
};
|
};
|
||||||
|
|
||||||
setup_menu_t comp_settings1[] = // Compatibility Settings screen #1
|
setup_menu_t comp_settings1[] = // Compatibility Settings screen #1
|
||||||
@ -3260,6 +3263,11 @@ setup_menu_t comp_settings2[] = // Compatibility Settings screen #2
|
|||||||
{"Use Doom's main menu ordering", S_YESNO, m_null, C_X,
|
{"Use Doom's main menu ordering", S_YESNO, m_null, C_X,
|
||||||
C_Y + compat_menu * COMP_SPC, {"traditional_menu"}, 0, 0, M_ResetMenu},
|
C_Y + compat_menu * COMP_SPC, {"traditional_menu"}, 0, 0, M_ResetMenu},
|
||||||
|
|
||||||
|
// [FG] 3-key door works with only 2 keys
|
||||||
|
// http://prboom.sourceforge.net/mbf-bugs.html
|
||||||
|
{"Fix 3-key door works with only 2 keys", S_YESNO, m_null, C_X,
|
||||||
|
C_Y + compat_3keydoor * COMP_SPC, {"comp_3keydoor"}},
|
||||||
|
|
||||||
{"<- PREV", S_SKIP|S_PREV, m_null, KB_PREV, C_Y+C_NEXTPREV,{comp_settings1}},
|
{"<- PREV", S_SKIP|S_PREV, m_null, KB_PREV, C_Y+C_NEXTPREV,{comp_settings1}},
|
||||||
|
|
||||||
// Final entry
|
// Final entry
|
||||||
|
@ -570,6 +570,15 @@ default_t defaults[] = {
|
|||||||
"Linedef effects work with sector tag = 0"
|
"Linedef effects work with sector tag = 0"
|
||||||
},
|
},
|
||||||
|
|
||||||
|
// [FG] 3-key door works with only 2 keys
|
||||||
|
// http://prboom.sourceforge.net/mbf-bugs.html
|
||||||
|
{
|
||||||
|
"comp_3keydoor",
|
||||||
|
(config_t *) &default_comp[comp_3keydoor], (config_t *) &comp[comp_3keydoor],
|
||||||
|
{0}, {0,1}, number, ss_comp, wad_yes,
|
||||||
|
"Fix 3-key door works with only 2 keys"
|
||||||
|
},
|
||||||
|
|
||||||
// For key bindings, the values stored in the key_* variables // phares
|
// For key bindings, the values stored in the key_* variables // phares
|
||||||
// are the internal Doom Codes. The values stored in the default.cfg
|
// are the internal Doom Codes. The values stored in the default.cfg
|
||||||
// file are the keyboard codes. I_ScanCode2DoomCode converts from
|
// file are the keyboard codes. I_ScanCode2DoomCode converts from
|
||||||
|
@ -803,7 +803,9 @@ boolean P_CanUnlockGenDoor(line_t *line, player_t *player)
|
|||||||
if (skulliscard &&
|
if (skulliscard &&
|
||||||
(!(player->cards[it_redcard] | player->cards[it_redskull]) ||
|
(!(player->cards[it_redcard] | player->cards[it_redskull]) ||
|
||||||
!(player->cards[it_bluecard] | player->cards[it_blueskull]) ||
|
!(player->cards[it_bluecard] | player->cards[it_blueskull]) ||
|
||||||
!(player->cards[it_yellowcard] | !player->cards[it_yellowskull])))
|
// [FG] 3-key door works with only 2 keys
|
||||||
|
// http://prboom.sourceforge.net/mbf-bugs.html
|
||||||
|
!(player->cards[it_yellowcard] | (!comp[comp_3keydoor] ? !player->cards[it_yellowskull] : player->cards[it_yellowskull]))))
|
||||||
{
|
{
|
||||||
player->message = s_PD_ALL3; // Ty 03/27/98 - externalized
|
player->message = s_PD_ALL3; // Ty 03/27/98 - externalized
|
||||||
S_StartSound(player->mo,sfx_oof); // killough 3/20/98
|
S_StartSound(player->mo,sfx_oof); // killough 3/20/98
|
||||||
|
Loading…
x
Reference in New Issue
Block a user