mirror of
https://github.com/fabiangreffrath/woof.git
synced 2025-09-23 20:17:58 -04:00
introduce hide weapon option (#1007)
* Add second page to weapon menu, restore first/chainsaw toggle menu option. * Clean screenshots without weapon. Add new "clean screenshot" key, like in Crispy.
This commit is contained in:
parent
b49f0adbf4
commit
974d306880
@ -114,6 +114,8 @@ int doom_weapon_toggles; // killough 10/98
|
|||||||
|
|
||||||
int monkeys, default_monkeys;
|
int monkeys, default_monkeys;
|
||||||
|
|
||||||
|
boolean hide_weapon;
|
||||||
|
|
||||||
// [FG] centered weapon sprite
|
// [FG] centered weapon sprite
|
||||||
int center_weapon;
|
int center_weapon;
|
||||||
|
|
||||||
|
@ -251,6 +251,8 @@ extern boolean noblit;
|
|||||||
extern boolean nosfxparm;
|
extern boolean nosfxparm;
|
||||||
extern boolean nomusicparm;
|
extern boolean nomusicparm;
|
||||||
|
|
||||||
|
extern boolean clean_screenshot;
|
||||||
|
|
||||||
// This one is related to the 3-screen display mode.
|
// This one is related to the 3-screen display mode.
|
||||||
// ANG90 = left side, ANG270 = right
|
// ANG90 = left side, ANG270 = right
|
||||||
extern int viewangleoffset;
|
extern int viewangleoffset;
|
||||||
@ -433,6 +435,8 @@ extern int flashing_hom; // killough 10/98
|
|||||||
|
|
||||||
extern int doom_weapon_toggles; // killough 10/98
|
extern int doom_weapon_toggles; // killough 10/98
|
||||||
|
|
||||||
|
extern boolean hide_weapon;
|
||||||
|
|
||||||
// [FG] centered weapon sprite
|
// [FG] centered weapon sprite
|
||||||
extern int center_weapon;
|
extern int center_weapon;
|
||||||
|
|
||||||
|
12
src/g_game.c
12
src/g_game.c
@ -2217,18 +2217,21 @@ static void G_DoLoadGame(void)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
boolean clean_screenshots;
|
boolean clean_screenshot;
|
||||||
|
|
||||||
void G_CleanScreenshot(void)
|
void G_CleanScreenshot(void)
|
||||||
{
|
{
|
||||||
int old_screenblocks;
|
int old_screenblocks;
|
||||||
|
boolean old_hide_weapon;
|
||||||
|
|
||||||
old_screenblocks = screenblocks;
|
old_screenblocks = screenblocks;
|
||||||
|
old_hide_weapon = hide_weapon;
|
||||||
|
hide_weapon = true;
|
||||||
R_SetViewSize(11);
|
R_SetViewSize(11);
|
||||||
R_ExecuteSetViewSize();
|
R_ExecuteSetViewSize();
|
||||||
R_RenderPlayerView(&players[displayplayer]);
|
R_RenderPlayerView(&players[displayplayer]);
|
||||||
R_SetViewSize(old_screenblocks);
|
R_SetViewSize(old_screenblocks);
|
||||||
|
hide_weapon = old_hide_weapon;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
@ -2276,8 +2279,11 @@ void G_Ticker(void)
|
|||||||
G_DoWorldDone();
|
G_DoWorldDone();
|
||||||
break;
|
break;
|
||||||
case ga_screenshot:
|
case ga_screenshot:
|
||||||
if (clean_screenshots)
|
if (clean_screenshot)
|
||||||
|
{
|
||||||
G_CleanScreenshot();
|
G_CleanScreenshot();
|
||||||
|
clean_screenshot = false;
|
||||||
|
}
|
||||||
M_ScreenShot();
|
M_ScreenShot();
|
||||||
gameaction = ga_nothing;
|
gameaction = ga_nothing;
|
||||||
break;
|
break;
|
||||||
|
@ -81,6 +81,7 @@ enum
|
|||||||
input_zoomin,
|
input_zoomin,
|
||||||
input_zoomout,
|
input_zoomout,
|
||||||
input_screenshot,
|
input_screenshot,
|
||||||
|
input_clean_screenshot,
|
||||||
input_setup,
|
input_setup,
|
||||||
input_pause,
|
input_pause,
|
||||||
input_spy,
|
input_spy,
|
||||||
|
70
src/m_menu.c
70
src/m_menu.c
@ -2973,6 +2973,7 @@ setup_menu_t keys_settings5[] = // Key Binding screen strings
|
|||||||
{"LARGER VIEW" ,S_INPUT ,m_scrn,KB_X,M_Y+13*M_SPC,{0},input_zoomin},
|
{"LARGER VIEW" ,S_INPUT ,m_scrn,KB_X,M_Y+13*M_SPC,{0},input_zoomin},
|
||||||
{"SMALLER VIEW",S_INPUT ,m_scrn,KB_X,M_Y+14*M_SPC,{0},input_zoomout},
|
{"SMALLER VIEW",S_INPUT ,m_scrn,KB_X,M_Y+14*M_SPC,{0},input_zoomout},
|
||||||
{"SCREENSHOT" ,S_INPUT ,m_scrn,KB_X,M_Y+15*M_SPC,{0},input_screenshot},
|
{"SCREENSHOT" ,S_INPUT ,m_scrn,KB_X,M_Y+15*M_SPC,{0},input_screenshot},
|
||||||
|
{"CLEAN SCREENSHOT",S_INPUT ,m_scrn,KB_X,M_Y+16*M_SPC,{0},input_clean_screenshot},
|
||||||
|
|
||||||
{"<- PREV", S_SKIP|S_PREV,m_null,M_X_PREV,M_Y_PREVNEXT, {keys_settings4}},
|
{"<- PREV", S_SKIP|S_PREV,m_null,M_X_PREV,M_Y_PREVNEXT, {keys_settings4}},
|
||||||
{"NEXT ->", S_SKIP|S_NEXT,m_null,M_X_NEXT,M_Y_PREVNEXT, {keys_settings6}},
|
{"NEXT ->", S_SKIP|S_NEXT,m_null,M_X_NEXT,M_Y_PREVNEXT, {keys_settings6}},
|
||||||
@ -3147,19 +3148,27 @@ enum { // killough 10/98: enum for y-offset info
|
|||||||
weap1_pref8,
|
weap1_pref8,
|
||||||
weap1_pref9,
|
weap1_pref9,
|
||||||
weap1_stub1,
|
weap1_stub1,
|
||||||
weap1_bfg,
|
weap1_toggle,
|
||||||
|
weap1_toggle_line,
|
||||||
weap1_stub2,
|
weap1_stub2,
|
||||||
weap1_title1,
|
weap1_bfg,
|
||||||
weap1_bobbing,
|
};
|
||||||
weap1_recoilpitch,
|
|
||||||
weap1_center // [FG] centered weapon sprite
|
enum {
|
||||||
|
weap2_title1,
|
||||||
|
weap2_hide_weapon,
|
||||||
|
weap2_center, // [FG] centered weapon sprite
|
||||||
|
weap2_bobbing,
|
||||||
|
weap2_recoilpitch,
|
||||||
};
|
};
|
||||||
|
|
||||||
setup_menu_t weap_settings1[];
|
setup_menu_t weap_settings1[];
|
||||||
|
setup_menu_t weap_settings2[];
|
||||||
|
|
||||||
setup_menu_t* weap_settings[] =
|
setup_menu_t* weap_settings[] =
|
||||||
{
|
{
|
||||||
weap_settings1,
|
weap_settings1,
|
||||||
|
weap_settings2,
|
||||||
NULL
|
NULL
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -3174,7 +3183,7 @@ static const char *default_bobfactor_strings[] = {
|
|||||||
|
|
||||||
static void M_UpdateCenteredWeaponItem(void)
|
static void M_UpdateCenteredWeaponItem(void)
|
||||||
{
|
{
|
||||||
DISABLE_ITEM(!cosmetic_bobbing, weap_settings1[weap1_center]);
|
DISABLE_ITEM(!cosmetic_bobbing, weap_settings1[weap2_center]);
|
||||||
}
|
}
|
||||||
|
|
||||||
setup_menu_t weap_settings1[] = // Weapons Settings screen
|
setup_menu_t weap_settings1[] = // Weapons Settings screen
|
||||||
@ -3191,28 +3200,47 @@ setup_menu_t weap_settings1[] = // Weapons Settings screen
|
|||||||
|
|
||||||
{"", S_SKIP, m_null, M_X, M_Y + weap1_stub1*M_SPC},
|
{"", S_SKIP, m_null, M_X, M_Y + weap1_stub1*M_SPC},
|
||||||
|
|
||||||
{"Pre-Beta BFG" ,S_YESNO,m_null,M_X, // killough 8/8/98
|
{"Enable Fist/Chainsaw\n& SG/SSG toggle", S_YESNO|S_BOOM, m_null, M_X,
|
||||||
M_Y+ weap1_bfg*M_SPC, {"classic_bfg"}},
|
M_Y+ weap1_toggle*M_SPC, {"doom_weapon_toggles"}},
|
||||||
|
|
||||||
{"", S_SKIP, m_null, M_X, M_Y + weap1_stub2*M_SPC},
|
{"", S_SKIP, m_null, M_X, M_Y + weap1_stub2*M_SPC},
|
||||||
|
|
||||||
{"Cosmetic",S_SKIP|S_TITLE,m_null,M_X,M_Y+weap1_title1*M_SPC},
|
{"Pre-Beta BFG" ,S_YESNO,m_null,M_X, // killough 8/8/98
|
||||||
|
M_Y+ weap1_bfg*M_SPC, {"classic_bfg"}},
|
||||||
{"Player View/Weapon Bobbing",S_CHOICE,m_null,M_X, M_Y+weap1_bobbing*M_SPC, {"cosmetic_bobbing"}, 0, M_UpdateCenteredWeaponItem, default_bobfactor_strings},
|
|
||||||
|
|
||||||
{"Enable Recoil Pitch", S_YESNO,m_null,M_X, M_Y+ weap1_recoilpitch*M_SPC, {"weapon_recoilpitch"}},
|
|
||||||
|
|
||||||
// [FG] centered or bobbing weapon sprite
|
|
||||||
{"Weapon Attack Alignment",S_CHOICE|S_STRICT,m_null,M_X, M_Y+weap1_center*M_SPC, {"center_weapon"}, 0, NULL, weapon_attack_alignment_strings},
|
|
||||||
|
|
||||||
// Button for resetting to defaults
|
// Button for resetting to defaults
|
||||||
{0,S_RESET,m_null,X_BUTTON,Y_BUTTON},
|
{0,S_RESET,m_null,X_BUTTON,Y_BUTTON},
|
||||||
|
|
||||||
|
{"NEXT ->",S_SKIP|S_NEXT,m_null,M_X_NEXT,M_Y_PREVNEXT, {weap_settings2}},
|
||||||
|
|
||||||
// Final entry
|
// Final entry
|
||||||
{0,S_SKIP|S_END,m_null}
|
{0,S_SKIP|S_END,m_null}
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
setup_menu_t weap_settings2[] =
|
||||||
|
{
|
||||||
|
{"Cosmetic",S_SKIP|S_TITLE,m_null,M_X,M_Y+weap2_title1*M_SPC},
|
||||||
|
|
||||||
|
{"Hide Weapon", S_YESNO|S_STRICT, m_null, M_X,
|
||||||
|
M_Y + weap2_hide_weapon*M_SPC, {"hide_weapon"}},
|
||||||
|
|
||||||
|
// [FG] centered or bobbing weapon sprite
|
||||||
|
{"Weapon Attack Alignment", S_CHOICE|S_STRICT, m_null, M_X,
|
||||||
|
M_Y + weap2_center * M_SPC, {"center_weapon"}, 0, NULL, weapon_attack_alignment_strings},
|
||||||
|
|
||||||
|
{"Player View/Weapon Bobbing", S_CHOICE, m_null, M_X,
|
||||||
|
M_Y + weap2_bobbing * M_SPC, {"cosmetic_bobbing"}, 0, M_UpdateCenteredWeaponItem, default_bobfactor_strings},
|
||||||
|
|
||||||
|
{"Enable Recoil Pitch", S_YESNO, m_null, M_X,
|
||||||
|
M_Y + weap2_recoilpitch*M_SPC, {"weapon_recoilpitch"}},
|
||||||
|
|
||||||
|
{"<- PREV" ,S_SKIP|S_PREV,m_null,M_X_PREV,M_Y_PREVNEXT, {weap_settings1}},
|
||||||
|
|
||||||
|
// Final entry
|
||||||
|
{0,S_SKIP|S_END,m_null}
|
||||||
|
};
|
||||||
|
|
||||||
// Setting up for the Weapons screen. Turn on flags, set pointers,
|
// Setting up for the Weapons screen. Turn on flags, set pointers,
|
||||||
// locate the first item on the screen where the cursor is allowed to
|
// locate the first item on the screen where the cursor is allowed to
|
||||||
// land.
|
// land.
|
||||||
@ -4000,7 +4028,6 @@ enum {
|
|||||||
gen3_strictmode,
|
gen3_strictmode,
|
||||||
gen3_screen_melt,
|
gen3_screen_melt,
|
||||||
gen3_death_action,
|
gen3_death_action,
|
||||||
gen3_clean_screenshots,
|
|
||||||
gen3_demobar,
|
gen3_demobar,
|
||||||
gen3_palette_changes,
|
gen3_palette_changes,
|
||||||
gen3_level_brightness,
|
gen3_level_brightness,
|
||||||
@ -4156,9 +4183,6 @@ setup_menu_t gen_settings3[] = { // General Settings screen3
|
|||||||
{"On death action", S_CHOICE, m_null, M_X,
|
{"On death action", S_CHOICE, m_null, M_X,
|
||||||
M_Y + gen3_death_action*M_SPC, {"death_use_action"}, 0, NULL, death_use_action_strings},
|
M_Y + gen3_death_action*M_SPC, {"death_use_action"}, 0, NULL, death_use_action_strings},
|
||||||
|
|
||||||
{"Clean Screenshots", S_YESNO, m_null, M_X,
|
|
||||||
M_Y + gen3_clean_screenshots*M_SPC, {"clean_screenshots"}},
|
|
||||||
|
|
||||||
{"Show demo progress bar", S_YESNO, m_null, M_X,
|
{"Show demo progress bar", S_YESNO, m_null, M_X,
|
||||||
M_Y + gen3_demobar*M_SPC, {"demobar"}},
|
M_Y + gen3_demobar*M_SPC, {"demobar"}},
|
||||||
|
|
||||||
@ -5423,6 +5447,12 @@ boolean M_Responder (event_t* ev)
|
|||||||
// return true; // [FG] don't let toggles eat keys
|
// return true; // [FG] don't let toggles eat keys
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (M_InputActivated(input_clean_screenshot))
|
||||||
|
{
|
||||||
|
clean_screenshot = true;
|
||||||
|
G_ScreenShot();
|
||||||
|
}
|
||||||
|
|
||||||
// If there is no active menu displayed...
|
// If there is no active menu displayed...
|
||||||
|
|
||||||
if (!menuactive && !chat_on) // phares
|
if (!menuactive && !chat_on) // phares
|
||||||
|
23
src/m_misc.c
23
src/m_misc.c
@ -105,7 +105,6 @@ extern boolean r_swirl;
|
|||||||
extern int death_use_action;
|
extern int death_use_action;
|
||||||
extern boolean palette_changes;
|
extern boolean palette_changes;
|
||||||
extern boolean screen_melt;
|
extern boolean screen_melt;
|
||||||
extern boolean clean_screenshots;
|
|
||||||
extern boolean hangsolid;
|
extern boolean hangsolid;
|
||||||
extern boolean blockmapfix;
|
extern boolean blockmapfix;
|
||||||
extern int extra_level_brightness;
|
extern int extra_level_brightness;
|
||||||
@ -596,13 +595,6 @@ default_t defaults[] = {
|
|||||||
"0 to disable screen melt"
|
"0 to disable screen melt"
|
||||||
},
|
},
|
||||||
|
|
||||||
{
|
|
||||||
"clean_screenshots",
|
|
||||||
(config_t *) &clean_screenshots, NULL,
|
|
||||||
{0}, {0,1}, number, ss_gen, wad_yes,
|
|
||||||
"1 to enable clean screenshots without any HUD elements"
|
|
||||||
},
|
|
||||||
|
|
||||||
{
|
{
|
||||||
"net_player_name",
|
"net_player_name",
|
||||||
(config_t *) &net_player_name, NULL,
|
(config_t *) &net_player_name, NULL,
|
||||||
@ -681,6 +673,13 @@ default_t defaults[] = {
|
|||||||
"Player View/Weapon Bobbing (0 = off, 1 = full, 2 = 75%)"
|
"Player View/Weapon Bobbing (0 = off, 1 = full, 2 = 75%)"
|
||||||
},
|
},
|
||||||
|
|
||||||
|
{
|
||||||
|
"hide_weapon",
|
||||||
|
(config_t *) &hide_weapon, NULL,
|
||||||
|
{0}, {0,1}, number, ss_weap, wad_no,
|
||||||
|
"1 to hide weapon"
|
||||||
|
},
|
||||||
|
|
||||||
// [FG] centered or bobbing weapon sprite
|
// [FG] centered or bobbing weapon sprite
|
||||||
{
|
{
|
||||||
"center_weapon",
|
"center_weapon",
|
||||||
@ -1861,6 +1860,14 @@ default_t defaults[] = {
|
|||||||
input_screenshot, { {input_type_key, KEY_PRTSCR} }
|
input_screenshot, { {input_type_key, KEY_PRTSCR} }
|
||||||
},
|
},
|
||||||
|
|
||||||
|
{
|
||||||
|
"input_clean_screenshot",
|
||||||
|
NULL, NULL,
|
||||||
|
{0}, {UL,UL}, input, ss_keys, wad_no,
|
||||||
|
"key to take a clean screenshot",
|
||||||
|
input_screenshot, { {0, 0} }
|
||||||
|
},
|
||||||
|
|
||||||
{ // HOME key // killough 10/98: shortcut to setup menu
|
{ // HOME key // killough 10/98: shortcut to setup menu
|
||||||
"input_setup",
|
"input_setup",
|
||||||
NULL, NULL,
|
NULL, NULL,
|
||||||
|
@ -824,6 +824,9 @@ void R_DrawPSprite (pspdef_t *psp)
|
|||||||
// [crispy] free look
|
// [crispy] free look
|
||||||
vis->texturemid += (centery - viewheight/2) * pspriteiscale;
|
vis->texturemid += (centery - viewheight/2) * pspriteiscale;
|
||||||
|
|
||||||
|
if (STRICTMODE(hide_weapon))
|
||||||
|
return;
|
||||||
|
|
||||||
R_DrawVisSprite(vis, vis->x1, vis->x2);
|
R_DrawVisSprite(vis, vis->x1, vis->x2);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user