mirror of
https://github.com/fabiangreffrath/woof.git
synced 2025-09-23 03:52:12 -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;
|
||||
|
||||
boolean hide_weapon;
|
||||
|
||||
// [FG] centered weapon sprite
|
||||
int center_weapon;
|
||||
|
||||
|
@ -251,6 +251,8 @@ extern boolean noblit;
|
||||
extern boolean nosfxparm;
|
||||
extern boolean nomusicparm;
|
||||
|
||||
extern boolean clean_screenshot;
|
||||
|
||||
// This one is related to the 3-screen display mode.
|
||||
// ANG90 = left side, ANG270 = right
|
||||
extern int viewangleoffset;
|
||||
@ -433,6 +435,8 @@ extern int flashing_hom; // killough 10/98
|
||||
|
||||
extern int doom_weapon_toggles; // killough 10/98
|
||||
|
||||
extern boolean hide_weapon;
|
||||
|
||||
// [FG] centered weapon sprite
|
||||
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)
|
||||
{
|
||||
int old_screenblocks;
|
||||
boolean old_hide_weapon;
|
||||
|
||||
old_screenblocks = screenblocks;
|
||||
|
||||
old_hide_weapon = hide_weapon;
|
||||
hide_weapon = true;
|
||||
R_SetViewSize(11);
|
||||
R_ExecuteSetViewSize();
|
||||
R_RenderPlayerView(&players[displayplayer]);
|
||||
R_SetViewSize(old_screenblocks);
|
||||
hide_weapon = old_hide_weapon;
|
||||
}
|
||||
|
||||
//
|
||||
@ -2276,8 +2279,11 @@ void G_Ticker(void)
|
||||
G_DoWorldDone();
|
||||
break;
|
||||
case ga_screenshot:
|
||||
if (clean_screenshots)
|
||||
if (clean_screenshot)
|
||||
{
|
||||
G_CleanScreenshot();
|
||||
clean_screenshot = false;
|
||||
}
|
||||
M_ScreenShot();
|
||||
gameaction = ga_nothing;
|
||||
break;
|
||||
|
@ -81,6 +81,7 @@ enum
|
||||
input_zoomin,
|
||||
input_zoomout,
|
||||
input_screenshot,
|
||||
input_clean_screenshot,
|
||||
input_setup,
|
||||
input_pause,
|
||||
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},
|
||||
{"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},
|
||||
{"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}},
|
||||
{"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_pref9,
|
||||
weap1_stub1,
|
||||
weap1_bfg,
|
||||
weap1_toggle,
|
||||
weap1_toggle_line,
|
||||
weap1_stub2,
|
||||
weap1_title1,
|
||||
weap1_bobbing,
|
||||
weap1_recoilpitch,
|
||||
weap1_center // [FG] centered weapon sprite
|
||||
weap1_bfg,
|
||||
};
|
||||
|
||||
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_settings2[];
|
||||
|
||||
setup_menu_t* weap_settings[] =
|
||||
{
|
||||
weap_settings1,
|
||||
weap_settings2,
|
||||
NULL
|
||||
};
|
||||
|
||||
@ -3174,7 +3183,7 @@ static const char *default_bobfactor_strings[] = {
|
||||
|
||||
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
|
||||
@ -3191,28 +3200,47 @@ setup_menu_t weap_settings1[] = // Weapons Settings screen
|
||||
|
||||
{"", 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
|
||||
M_Y+ weap1_bfg*M_SPC, {"classic_bfg"}},
|
||||
{"Enable Fist/Chainsaw\n& SG/SSG toggle", S_YESNO|S_BOOM, m_null, M_X,
|
||||
M_Y+ weap1_toggle*M_SPC, {"doom_weapon_toggles"}},
|
||||
|
||||
{"", 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},
|
||||
|
||||
{"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},
|
||||
{"Pre-Beta BFG" ,S_YESNO,m_null,M_X, // killough 8/8/98
|
||||
M_Y+ weap1_bfg*M_SPC, {"classic_bfg"}},
|
||||
|
||||
// Button for resetting to defaults
|
||||
{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
|
||||
{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,
|
||||
// locate the first item on the screen where the cursor is allowed to
|
||||
// land.
|
||||
@ -4000,7 +4028,6 @@ enum {
|
||||
gen3_strictmode,
|
||||
gen3_screen_melt,
|
||||
gen3_death_action,
|
||||
gen3_clean_screenshots,
|
||||
gen3_demobar,
|
||||
gen3_palette_changes,
|
||||
gen3_level_brightness,
|
||||
@ -4156,9 +4183,6 @@ setup_menu_t gen_settings3[] = { // General Settings screen3
|
||||
{"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},
|
||||
|
||||
{"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,
|
||||
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
|
||||
}
|
||||
|
||||
if (M_InputActivated(input_clean_screenshot))
|
||||
{
|
||||
clean_screenshot = true;
|
||||
G_ScreenShot();
|
||||
}
|
||||
|
||||
// If there is no active menu displayed...
|
||||
|
||||
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 boolean palette_changes;
|
||||
extern boolean screen_melt;
|
||||
extern boolean clean_screenshots;
|
||||
extern boolean hangsolid;
|
||||
extern boolean blockmapfix;
|
||||
extern int extra_level_brightness;
|
||||
@ -596,13 +595,6 @@ default_t defaults[] = {
|
||||
"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",
|
||||
(config_t *) &net_player_name, NULL,
|
||||
@ -681,6 +673,13 @@ default_t defaults[] = {
|
||||
"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
|
||||
{
|
||||
"center_weapon",
|
||||
@ -1861,6 +1860,14 @@ default_t defaults[] = {
|
||||
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
|
||||
"input_setup",
|
||||
NULL, NULL,
|
||||
|
@ -824,6 +824,9 @@ void R_DrawPSprite (pspdef_t *psp)
|
||||
// [crispy] free look
|
||||
vis->texturemid += (centery - viewheight/2) * pspriteiscale;
|
||||
|
||||
if (STRICTMODE(hide_weapon))
|
||||
return;
|
||||
|
||||
R_DrawVisSprite(vis, vis->x1, vis->x2);
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user