XenevaOS
Loading...
Searching...
No Matches
Classes | Macros | Typedefs | Enumerations | Functions | Variables
m_menu.c File Reference
#include <stdlib.h>
#include <ctype.h>
#include "doomdef.h"
#include "doomkeys.h"
#include "dstrings.h"
#include "d_main.h"
#include "deh_main.h"
#include "i_swap.h"
#include "i_system.h"
#include "i_timer.h"
#include "i_video.h"
#include "m_misc.h"
#include "v_video.h"
#include "w_wad.h"
#include "z_zone.h"
#include "r_local.h"
#include "hu_stuff.h"
#include "g_game.h"
#include "m_argv.h"
#include "m_controls.h"
#include "p_saveg.h"
#include "s_sound.h"
#include "doomstat.h"
#include "sounds.h"
#include "m_menu.h"
Include dependency graph for m_menu.c:

Classes

struct  menuitem_t
 
struct  menu_s
 

Macros

#define SKULLXOFF   -32
 
#define LINEHEIGHT   16
 

Typedefs

typedef struct menu_s menu_t
 

Enumerations

enum  {
  newgame = 0 , options , loadgame , savegame ,
  readthis , quitdoom , main_end
}
 
enum  {
  ep1 , ep2 , ep3 , ep4 ,
  ep_end
}
 
enum  {
  killthings , toorough , hurtme , violence ,
  nightmare , newg_end
}
 
enum  {
  endgame , messages , detail , scrnsize ,
  option_empty1 , mousesens , option_empty2 , soundvol ,
  opt_end
}
 
enum  { rdthsempty1 , read1_end }
 
enum  { rdthsempty2 , read2_end }
 
enum  {
  sfx_vol , sfx_empty1 , music_vol , sfx_empty2 ,
  sound_end
}
 
enum  {
  load1 , load2 , load3 , load4 ,
  load5 , load6 , load_end
}
 

Functions

void M_NewGame (int choice)
 
void M_Episode (int choice)
 
void M_ChooseSkill (int choice)
 
void M_LoadGame (int choice)
 
void M_SaveGame (int choice)
 
void M_Options (int choice)
 
void M_EndGame (int choice)
 
void M_ReadThis (int choice)
 
void M_ReadThis2 (int choice)
 
void M_QuitDOOM (int choice)
 
void M_ChangeMessages (int choice)
 
void M_ChangeSensitivity (int choice)
 
void M_SfxVol (int choice)
 
void M_MusicVol (int choice)
 
void M_ChangeDetail (int choice)
 
void M_SizeDisplay (int choice)
 
void M_StartGame (int choice)
 
void M_Sound (int choice)
 
void M_FinishReadThis (int choice)
 
void M_LoadSelect (int choice)
 
void M_SaveSelect (int choice)
 
void M_ReadSaveStrings (void)
 
void M_QuickSave (void)
 
void M_QuickLoad (void)
 
void M_DrawMainMenu (void)
 
void M_DrawReadThis1 (void)
 
void M_DrawReadThis2 (void)
 
void M_DrawNewGame (void)
 
void M_DrawEpisode (void)
 
void M_DrawOptions (void)
 
void M_DrawSound (void)
 
void M_DrawLoad (void)
 
void M_DrawSave (void)
 
void M_DrawSaveLoadBorder (int x, int y)
 
void M_SetupNextMenu (menu_t *menudef)
 
void M_DrawThermo (int x, int y, int thermWidth, int thermDot)
 
void M_DrawEmptyCell (menu_t *menu, int item)
 
void M_DrawSelCell (menu_t *menu, int item)
 
void M_WriteText (int x, int y, char *string)
 
int M_StringWidth (char *string)
 
int M_StringHeight (char *string)
 
void M_StartMessage (char *string, void *routine, boolean input)
 
void M_StopMessage (void)
 
void M_ClearMenus (void)
 
void M_DoSave (int slot)
 
void M_QuickSaveResponse (int key)
 
void M_QuickLoadResponse (int key)
 
void M_VerifyNightmare (int key)
 
void M_EndGameResponse (int key)
 
void M_QuitResponse (int key)
 
boolean M_Responder (event_t *ev)
 
void M_StartControlPanel (void)
 
void M_Drawer (void)
 
void M_Ticker (void)
 
void M_Init (void)
 

Variables

patch_t * hu_font [HU_FONTSIZE]
 
boolean message_dontfuckwithme
 
boolean chat_on
 
int mouseSensitivity = 5
 
int showMessages = 1
 
int detailLevel = 0
 
int screenblocks = 10
 
int screenSize
 
int quickSaveSlot
 
int messageToPrint
 
char * messageString
 
int messx
 
int messy
 
int messageLastMenuActive
 
boolean messageNeedsInput
 
void(* messageRoutine )(int response)
 
char gammamsg [5][26]
 
int saveStringEnter
 
int saveSlot
 
int saveCharIndex
 
char saveOldString [SAVESTRINGSIZE]
 
boolean inhelpscreens
 
boolean menuactive
 
boolean sendpause
 
char savegamestrings [10][SAVESTRINGSIZE]
 
char endstring [160]
 
short itemOn
 
short skullAnimCounter
 
short whichSkull
 
char * skullName [2] = {"M_SKULL1","M_SKULL2"}
 
menu_t * currentMenu
 
enum { ... }  main_e
 
menuitem_t MainMenu []
 
menu_t MainDef
 
enum { ... }  episodes_e
 
menuitem_t EpisodeMenu []
 
menu_t EpiDef
 
enum { ... }  newgame_e
 
menuitem_t NewGameMenu []
 
menu_t NewDef
 
enum { ... }  options_e
 
menuitem_t OptionsMenu []
 
menu_t OptionsDef
 
enum { ... }  read_e
 
menuitem_t ReadMenu1 []
 
menu_t ReadDef1
 
enum { ... }  read_e2
 
menuitem_t ReadMenu2 []
 
menu_t ReadDef2
 
enum { ... }  sound_e
 
menuitem_t SoundMenu []
 
menu_t SoundDef
 
enum { ... }  load_e
 
menuitem_t LoadMenu []
 
menu_t LoadDef
 
menuitem_t SaveMenu []
 
menu_t SaveDef
 
char tempstring [80]
 
int epi
 
int quitsounds [8]
 
int quitsounds2 [8]
 

Macro Definition Documentation

◆ LINEHEIGHT

#define LINEHEIGHT   16

◆ SKULLXOFF

#define SKULLXOFF   -32

Typedef Documentation

◆ menu_t

typedef struct menu_s menu_t

Enumeration Type Documentation

◆ anonymous enum

anonymous enum
Enumerator
newgame 
options 
loadgame 
savegame 
readthis 
quitdoom 
main_end 

◆ anonymous enum

anonymous enum
Enumerator
ep1 
ep2 
ep3 
ep4 
ep_end 

◆ anonymous enum

anonymous enum
Enumerator
killthings 
toorough 
hurtme 
violence 
nightmare 
newg_end 

◆ anonymous enum

anonymous enum
Enumerator
endgame 
messages 
detail 
scrnsize 
option_empty1 
mousesens 
option_empty2 
soundvol 
opt_end 

◆ anonymous enum

anonymous enum
Enumerator
rdthsempty1 
read1_end 

◆ anonymous enum

anonymous enum
Enumerator
rdthsempty2 
read2_end 

◆ anonymous enum

anonymous enum
Enumerator
sfx_vol 
sfx_empty1 
music_vol 
sfx_empty2 
sound_end 

◆ anonymous enum

anonymous enum
Enumerator
load1 
load2 
load3 
load4 
load5 
load6 
load_end 

Function Documentation

◆ M_ChangeDetail()

void M_ChangeDetail ( int  choice)

◆ M_ChangeMessages()

void M_ChangeMessages ( int  choice)

◆ M_ChangeSensitivity()

void M_ChangeSensitivity ( int  choice)

◆ M_ChooseSkill()

void M_ChooseSkill ( int  choice)

◆ M_ClearMenus()

void M_ClearMenus ( void  )

◆ M_DoSave()

void M_DoSave ( int  slot)

◆ M_DrawEmptyCell()

void M_DrawEmptyCell ( menu_t *  menu,
int  item 
)

◆ M_DrawEpisode()

void M_DrawEpisode ( void  )

◆ M_Drawer()

void M_Drawer ( void  )

◆ M_DrawLoad()

void M_DrawLoad ( void  )

◆ M_DrawMainMenu()

void M_DrawMainMenu ( void  )

◆ M_DrawNewGame()

void M_DrawNewGame ( void  )

◆ M_DrawOptions()

void M_DrawOptions ( void  )

◆ M_DrawReadThis1()

void M_DrawReadThis1 ( void  )

◆ M_DrawReadThis2()

void M_DrawReadThis2 ( void  )

◆ M_DrawSave()

void M_DrawSave ( void  )

◆ M_DrawSaveLoadBorder()

void M_DrawSaveLoadBorder ( int  x,
int  y 
)

◆ M_DrawSelCell()

void M_DrawSelCell ( menu_t *  menu,
int  item 
)

◆ M_DrawSound()

void M_DrawSound ( void  )

◆ M_DrawThermo()

void M_DrawThermo ( int  x,
int  y,
int  thermWidth,
int  thermDot 
)

◆ M_EndGame()

void M_EndGame ( int  choice)

◆ M_EndGameResponse()

void M_EndGameResponse ( int  key)

◆ M_Episode()

void M_Episode ( int  choice)

◆ M_FinishReadThis()

void M_FinishReadThis ( int  choice)

◆ M_Init()

void M_Init ( void  )

◆ M_LoadGame()

void M_LoadGame ( int  choice)

◆ M_LoadSelect()

void M_LoadSelect ( int  choice)

◆ M_MusicVol()

void M_MusicVol ( int  choice)

◆ M_NewGame()

void M_NewGame ( int  choice)

◆ M_Options()

void M_Options ( int  choice)

◆ M_QuickLoad()

void M_QuickLoad ( void  )

◆ M_QuickLoadResponse()

void M_QuickLoadResponse ( int  key)

◆ M_QuickSave()

void M_QuickSave ( void  )

◆ M_QuickSaveResponse()

void M_QuickSaveResponse ( int  key)

◆ M_QuitDOOM()

void M_QuitDOOM ( int  choice)

◆ M_QuitResponse()

void M_QuitResponse ( int  key)

◆ M_ReadSaveStrings()

void M_ReadSaveStrings ( void  )

◆ M_ReadThis()

void M_ReadThis ( int  choice)

◆ M_ReadThis2()

void M_ReadThis2 ( int  choice)

◆ M_Responder()

boolean M_Responder ( event_t *  ev)

◆ M_SaveGame()

void M_SaveGame ( int  choice)

◆ M_SaveSelect()

void M_SaveSelect ( int  choice)

◆ M_SetupNextMenu()

void M_SetupNextMenu ( menu_t *  menudef)

◆ M_SfxVol()

void M_SfxVol ( int  choice)

◆ M_SizeDisplay()

void M_SizeDisplay ( int  choice)

◆ M_Sound()

void M_Sound ( int  choice)

◆ M_StartControlPanel()

void M_StartControlPanel ( void  )

◆ M_StartGame()

void M_StartGame ( int  choice)

◆ M_StartMessage()

void M_StartMessage ( char *  string,
void *  routine,
boolean  input 
)

◆ M_StopMessage()

void M_StopMessage ( void  )

◆ M_StringHeight()

int M_StringHeight ( char *  string)

◆ M_StringWidth()

int M_StringWidth ( char *  string)

◆ M_Ticker()

void M_Ticker ( void  )

◆ M_VerifyNightmare()

void M_VerifyNightmare ( int  key)

◆ M_WriteText()

void M_WriteText ( int  x,
int  y,
char *  string 
)

Variable Documentation

◆ chat_on

boolean chat_on
extern

◆ currentMenu

menu_t* currentMenu

◆ detailLevel

int detailLevel = 0

◆ endstring

char endstring[160]

◆ epi

int epi

◆ EpiDef

menu_t EpiDef
Initial value:
=
{
48,63,
ep1
}
menuitem_t EpisodeMenu[]
Definition m_menu.c:276
void M_DrawEpisode(void)
Definition m_menu.c:930
@ ep1
Definition m_menu.c:269
@ ep_end
Definition m_menu.c:273
menu_t MainDef
Definition m_menu.c:253

◆ EpisodeMenu

menuitem_t EpisodeMenu[]
Initial value:
=
{
{1,"M_EPI1", M_Episode,'k'},
{1,"M_EPI2", M_Episode,'t'},
{1,"M_EPI3", M_Episode,'i'},
{1,"M_EPI4", M_Episode,'t'}
}
void M_Episode(int choice)
Definition m_menu.c:956

◆ []

enum { ... } episodes_e

◆ gammamsg

char gammamsg[5][26]
Initial value:
=
{
}
#define GAMMALVL4
Definition d_englsh.h:71
#define GAMMALVL1
Definition d_englsh.h:68
#define GAMMALVL3
Definition d_englsh.h:70
#define GAMMALVL2
Definition d_englsh.h:69
#define GAMMALVL0
Definition d_englsh.h:67

◆ hu_font

patch_t* hu_font[HU_FONTSIZE]
extern

◆ inhelpscreens

boolean inhelpscreens

◆ itemOn

short itemOn

◆ []

enum { ... } load_e

◆ LoadDef

menu_t LoadDef
Initial value:
=
{
80,54,
0
}
void M_DrawLoad(void)
Definition m_menu.c:530
menuitem_t LoadMenu[]
Definition m_menu.c:455
@ load_end
Definition m_menu.c:452

◆ LoadMenu

menuitem_t LoadMenu[]
Initial value:
=
{
{1,"", M_LoadSelect,'1'},
{1,"", M_LoadSelect,'2'},
{1,"", M_LoadSelect,'3'},
{1,"", M_LoadSelect,'4'},
{1,"", M_LoadSelect,'5'},
{1,"", M_LoadSelect,'6'}
}
void M_LoadSelect(int choice)
Definition m_menu.c:572

◆ []

enum { ... } main_e

◆ MainDef

menu_t MainDef
Initial value:
=
{
97,64,
0
}
#define NULL
Definition actypes.h:561
@ main_end
Definition m_menu.c:239
void M_DrawMainMenu(void)
Definition m_menu.c:890
menuitem_t MainMenu[]
Definition m_menu.c:242

◆ MainMenu

menuitem_t MainMenu[]
Initial value:
=
{
{1,"M_NGAME",M_NewGame,'n'},
{1,"M_OPTION",M_Options,'o'},
{1,"M_LOADG",M_LoadGame,'l'},
{1,"M_SAVEG",M_SaveGame,'s'},
{1,"M_RDTHIS",M_ReadThis,'r'},
{1,"M_QUITG",M_QuitDOOM,'q'}
}
void M_Options(int choice)
Definition m_menu.c:1007
void M_ReadThis(int choice)
Definition m_menu.c:1069
void M_LoadGame(int choice)
Definition m_menu.c:585
void M_SaveGame(int choice)
Definition m_menu.c:650
void M_NewGame(int choice)
Definition m_menu.c:908
void M_QuitDOOM(int choice)
Definition m_menu.c:1168

◆ menuactive

boolean menuactive

◆ message_dontfuckwithme

boolean message_dontfuckwithme
extern

◆ messageLastMenuActive

int messageLastMenuActive

◆ messageNeedsInput

boolean messageNeedsInput

◆ messageRoutine

void(* messageRoutine) (int response) ( int  response)

◆ messageString

char* messageString

◆ messageToPrint

int messageToPrint

◆ messx

int messx

◆ messy

int messy

◆ mouseSensitivity

int mouseSensitivity = 5

◆ NewDef

menu_t NewDef
Initial value:
=
{
&EpiDef,
48,63,
}
@ hurtme
Definition m_menu.c:301
@ newg_end
Definition m_menu.c:304
void M_DrawNewGame(void)
Definition m_menu.c:902
menu_t EpiDef
Definition m_menu.c:284
menuitem_t NewGameMenu[]
Definition m_menu.c:307

◆ []

enum { ... } newgame_e

◆ NewGameMenu

menuitem_t NewGameMenu[]
Initial value:
=
{
{1,"M_JKILL", M_ChooseSkill, 'i'},
{1,"M_ROUGH", M_ChooseSkill, 'h'},
{1,"M_HURT", M_ChooseSkill, 'h'},
{1,"M_ULTRA", M_ChooseSkill, 'u'},
{1,"M_NMARE", M_ChooseSkill, 'n'}
}
void M_ChooseSkill(int choice)
Definition m_menu.c:944

◆ []

enum { ... } options_e

◆ OptionsDef

menu_t OptionsDef
Initial value:
=
{
60,37,
0
}
@ opt_end
Definition m_menu.c:341
menuitem_t OptionsMenu[]
Definition m_menu.c:344
void M_DrawOptions(void)
Definition m_menu.c:987

◆ OptionsMenu

menuitem_t OptionsMenu[]
Initial value:
=
{
{1,"M_ENDGAM", M_EndGame,'e'},
{1,"M_MESSG", M_ChangeMessages,'m'},
{1,"M_DETAIL", M_ChangeDetail,'g'},
{2,"M_SCRNSZ", M_SizeDisplay,'s'},
{-1,"",0,'\0'},
{2,"M_MSENS", M_ChangeSensitivity,'m'},
{-1,"",0,'\0'},
{1,"M_SVOL", M_Sound,'s'}
}
void M_Sound(int choice)
Definition m_menu.c:845
void M_EndGame(int choice)
Definition m_menu.c:1045
void M_ChangeMessages(int choice)
Definition m_menu.c:1017
void M_ChangeSensitivity(int choice)
Definition m_menu.c:1179
void M_SizeDisplay(int choice)
Definition m_menu.c:1213
void M_ChangeDetail(int choice)
Definition m_menu.c:1197

◆ quickSaveSlot

int quickSaveSlot

◆ quitsounds

int quitsounds[8]
Initial value:
=
{
}
@ sfx_popain
Definition sounds.h:142
@ sfx_telept
Definition sounds.h:150
@ sfx_slop
Definition sounds.h:146
@ sfx_sgtatk
Definition sounds.h:167
@ sfx_posit1
Definition sounds.h:151
@ sfx_dmpain
Definition sounds.h:141
@ sfx_pldeth
Definition sounds.h:172
@ sfx_posit3
Definition sounds.h:153

◆ quitsounds2

int quitsounds2[8]
Initial value:
=
{
}
@ sfx_kntdth
Definition sounds.h:187
@ sfx_bspact
Definition sounds.h:193
@ sfx_skeswg
Definition sounds.h:171
@ sfx_vilact
Definition sounds.h:195
@ sfx_getpow
Definition sounds.h:208
@ sfx_boscub
Definition sounds.h:210

◆ []

enum { ... } read_e

◆ []

enum { ... } read_e2

◆ ReadDef1

menu_t ReadDef1
Initial value:
=
{
280,185,
0
}
menuitem_t ReadMenu1[]
Definition m_menu.c:375
@ read1_end
Definition m_menu.c:372
void M_DrawReadThis1(void)
Definition m_menu.c:743

◆ ReadDef2

menu_t ReadDef2
Initial value:
=
{
330,175,
0
}
menu_t ReadDef1
Definition m_menu.c:380
void M_DrawReadThis2(void)
Definition m_menu.c:820
menuitem_t ReadMenu2[]
Definition m_menu.c:396
@ read2_end
Definition m_menu.c:393

◆ ReadMenu1

menuitem_t ReadMenu1[]
Initial value:
=
{
{1,"",M_ReadThis2,0}
}
void M_ReadThis2(int choice)
Definition m_menu.c:1075

◆ ReadMenu2

menuitem_t ReadMenu2[]
Initial value:
=
{
}
void M_FinishReadThis(int choice)
Definition m_menu.c:1093

◆ saveCharIndex

int saveCharIndex

◆ SaveDef

menu_t SaveDef
Initial value:
=
{
80,54,
0
}
void M_DrawSave(void)
Definition m_menu.c:601
menuitem_t SaveMenu[]
Definition m_menu.c:478

◆ savegamestrings

char savegamestrings[10][SAVESTRINGSIZE]

◆ SaveMenu

menuitem_t SaveMenu[]
Initial value:
=
{
{1,"", M_SaveSelect,'1'},
{1,"", M_SaveSelect,'2'},
{1,"", M_SaveSelect,'3'},
{1,"", M_SaveSelect,'4'},
{1,"", M_SaveSelect,'5'},
{1,"", M_SaveSelect,'6'}
}
void M_SaveSelect(int choice)
Definition m_menu.c:635

◆ saveOldString

char saveOldString[SAVESTRINGSIZE]

◆ saveSlot

int saveSlot

◆ saveStringEnter

int saveStringEnter

◆ screenblocks

int screenblocks = 10

◆ screenSize

int screenSize

◆ sendpause

boolean sendpause
extern

◆ showMessages

int showMessages = 1

◆ skullAnimCounter

short skullAnimCounter

◆ skullName

char* skullName[2] = {"M_SKULL1","M_SKULL2"}

◆ []

enum { ... } sound_e

◆ SoundDef

menu_t SoundDef
Initial value:
=
{
80,64,
0
}
menu_t OptionsDef
Definition m_menu.c:356
@ sound_end
Definition m_menu.c:420
menuitem_t SoundMenu[]
Definition m_menu.c:423
void M_DrawSound(void)
Definition m_menu.c:834

◆ SoundMenu

menuitem_t SoundMenu[]
Initial value:
=
{
{2,"M_SFXVOL",M_SfxVol,'s'},
{-1,"",0,'\0'},
{2,"M_MUSVOL",M_MusicVol,'m'},
{-1,"",0,'\0'}
}
void M_SfxVol(int choice)
Definition m_menu.c:850
void M_MusicVol(int choice)
Definition m_menu.c:867

◆ tempstring

char tempstring[80]

◆ whichSkull

short whichSkull