DOOM-3-BFG

DOOM 3 BFG Edition
Log | Files | Refs

constructs.h (16370B)


      1 /*
      2 ===========================================================================
      3 
      4 Doom 3 BFG Edition GPL Source Code
      5 Copyright (C) 1993-2012 id Software LLC, a ZeniMax Media company. 
      6 
      7 This file is part of the Doom 3 BFG Edition GPL Source Code ("Doom 3 BFG Edition Source Code").  
      8 
      9 Doom 3 BFG Edition Source Code is free software: you can redistribute it and/or modify
     10 it under the terms of the GNU General Public License as published by
     11 the Free Software Foundation, either version 3 of the License, or
     12 (at your option) any later version.
     13 
     14 Doom 3 BFG Edition Source Code is distributed in the hope that it will be useful,
     15 but WITHOUT ANY WARRANTY; without even the implied warranty of
     16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     17 GNU General Public License for more details.
     18 
     19 You should have received a copy of the GNU General Public License
     20 along with Doom 3 BFG Edition Source Code.  If not, see <http://www.gnu.org/licenses/>.
     21 
     22 In addition, the Doom 3 BFG Edition Source Code is also subject to certain additional terms. You should have received a copy of these additional terms immediately following the terms and conditions of the GNU General Public License which accompanied the Doom 3 BFG Edition Source Code.  If not, please request a copy in writing from id Software at the address below.
     23 
     24 If you have questions concerning this license or the applicable additional terms, you may contact in writing id Software LLC, c/o ZeniMax Media Inc., Suite 120, Rockville, Maryland 20850 USA.
     25 
     26 ===========================================================================
     27 */
     28 
     29 	memset(::g, 0, sizeof(*::g));
     30 //  am_map.constructs begin // 
     31 	::g->cheating = 0;
     32 	::g->grid = 0;
     33 	::g->leveljuststarted = 1; 	// kluge until AM_LevelInit() is called
     34 	::g->automapactive = false;
     35 	::g->finit_width = SCREENWIDTH;
     36 	::g->finit_height = SCREENHEIGHT - (32 * GLOBAL_IMAGE_SCALER);
     37 	::g->scale_mtof = (fixed_t)INITSCALEMTOF;
     38 	::g->markpointnum = 0; // next point to be assigned
     39 	::g->followplayer = 1; // specifies whether to follow the player around
     40 	::g->stopped = true;
     41 	::g->lastlevel = -1;
     42 	::g->lastepisode = -1;
     43 	::g->cheatstate=0;
     44 	::g->bigstate=0;
     45 	::g->nexttic = 0;
     46 	::g->litelevelscnt = 0;
     47 // am_map.constructs end // 
     48 //  doomstat.constructs begin // 
     49 	::g->gamemode = indetermined;
     50 	::g->gamemission = doom;
     51 	::g->language = english;
     52 // doomstat.constructs end // 
     53 //  d_main.constructs begin // 
     54 	::g->singletics = false; // debug flag to cancel adaptiveness
     55 	::g->oldgamestate = (gamestate_t)-1;
     56 	::g->wipegamestate = GS_DEMOSCREEN;
     57 	::g->viewactivestate = false;
     58 	::g->menuactivestate = false;
     59 	::g->inhelpscreensstate = false;
     60 	::g->fullscreen = false;
     61 	::g->wipe = false;
     62 	::g->wipedone = true;
     63 // d_main.constructs end // 
     64 //  d_net.constructs begin // 
     65 doomcom_t temp_doomcom = {
     66 	0
     67 };
     68 memcpy( &::g->doomcom, &temp_doomcom, sizeof(temp_doomcom) );
     69 // d_net.constructs end // 
     70 //  f_wipe.constructs begin // 
     71 	::g->go = 0;
     72 // f_wipe.constructs end // 
     73 //  g_game.constructs begin // 
     74 	::g->precache = true;        // if true, load all graphics at start 
     75 fixed_t	 temp_forwardmove[2] = {
     76 0x19, 0x32
     77 }; 
     78 memcpy( ::g->forwardmove, temp_forwardmove, sizeof(temp_forwardmove) );
     79 fixed_t	 temp_sidemove[2] = {
     80 0x18, 0x28
     81 }; 
     82 memcpy( ::g->sidemove, temp_sidemove, sizeof(temp_sidemove) );
     83 fixed_t	 temp_angleturn[3] = {
     84 640, 1280, 320 // + slow turn
     85 };	 
     86 memcpy( ::g->angleturn, temp_angleturn, sizeof(temp_angleturn) );
     87 	::g->mousebuttons = &::g->mousearray[1];		// allow [-1]
     88 	::g->joybuttons = &::g->joyarray[1];		// allow [-1] 
     89 // g_game.constructs end // 
     90 //  hu_lib.constructs begin // 
     91 	::g->lastautomapactive = true;
     92 // hu_lib.constructs end // 
     93 //  hu_stuff.constructs begin // 
     94 	::g->always_off = false;
     95 	::g->headsupactive = false;
     96 	::g->head = 0;
     97 	::g->tail = 0;
     98 	::g->shiftdown = false;
     99 	::g->altdown = false;
    100 	::g->num_nobrainers = 0;
    101 // hu_stuff.constructs end // 
    102 //  i_input.constructs begin // 
    103 // i_input.constructs end // 
    104 //  i_system.constructs begin // 
    105 	::g->mb_used = 2;
    106 	::g->current_time = 0;
    107 // i_system.constructs end // 
    108 //  m_cheat.constructs begin // 
    109 	::g->firsttime = 1;
    110 	::g->usedcheatbuffer = 0;
    111 // m_cheat.constructs end // 
    112 //  m_menu.constructs begin // 
    113 
    114 menuitem_t temp_QuitMenu[3] = {
    115 	{1,"M_ACPT", M_ExitGame,'a'},
    116 	{1,"M_CAN", M_CancelExit,'c'},
    117 	{1,"M_CHG", M_GameSelection,'g'}	
    118 };
    119 memcpy( ::g->QuitMenu, temp_QuitMenu, sizeof(temp_QuitMenu) );
    120 menu_t  temp_QuitDef = {
    121 	qut_end,		// # of menu items
    122 	&::g->MainDef,		// previous menu
    123 	::g->QuitMenu,	// menuitem_t ->
    124 	M_DrawQuit,	// drawing routine ->
    125 	48,63,              // x,y
    126 	g_accept			// lastOn
    127 };
    128 memcpy( &::g->QuitDef, &temp_QuitDef, sizeof(temp_QuitDef) );
    129 
    130 menuitem_t temp_MainMenu[5]=
    131 {
    132 	{1,"M_NGAME",M_NewGame,'n'},
    133 	{1,"M_OPTION",M_Options,'o'},
    134 	{1,"M_LOADG",M_LoadGame,'l'},
    135 	{1,"M_SAVEG",M_SaveGame,'m'},
    136 	// Another hickup with Special edition.
    137 	//{1,"M_RDTHIS",M_ReadThis,'r'},
    138 	{1,"M_QUITG",M_QuitDOOM,'q'}
    139 };
    140 memcpy( &::g->MainMenu, temp_MainMenu, sizeof(temp_MainMenu) );
    141 menu_t  temp_MainDef = {
    142 	main_end,
    143 		NULL,
    144 		::g->MainMenu,
    145 		M_DrawMainMenu,
    146 		97,64,
    147 		0
    148 };
    149 
    150 
    151 memcpy( &::g->MainDef, &temp_MainDef, sizeof(temp_MainDef) );
    152 menuitem_t temp_EpisodeMenu[4] = {
    153 	{1,"M_EPI1", M_Episode,'k'},
    154 	{1,"M_EPI2", M_Episode,'t'},
    155 	{1,"M_EPI3", M_Episode,'i'},
    156 	{1,"M_EPI4", M_Episode,'t'}
    157 };
    158 memcpy( ::g->EpisodeMenu, temp_EpisodeMenu, sizeof(temp_EpisodeMenu) );
    159 menu_t  temp_EpiDef = {
    160 	ep_end,		// # of menu items
    161 		&::g->MainDef,		// previous menu
    162 		::g->EpisodeMenu,	// menuitem_t ->
    163 		M_DrawEpisode,	// drawing routine ->
    164 		48,63,              // x,y
    165 		ep1			// lastOn
    166 };
    167 memcpy( &::g->EpiDef, &temp_EpiDef, sizeof(temp_EpiDef) );
    168 
    169 menuitem_t temp_ExpansionMenu[2] = {
    170 	{1,"M_EPI1", M_Expansion,'h'},
    171 	{1,"M_EPI2", M_Expansion,'n'},
    172 };
    173 memcpy( ::g->ExpansionMenu, temp_ExpansionMenu, sizeof(temp_ExpansionMenu) );
    174 menu_t  temp_ExpDef = {
    175 	ex_end,		// # of menu items
    176 	&::g->MainDef,		// previous menu
    177 	::g->ExpansionMenu,	// menuitem_t ->
    178 	M_DrawEpisode,	// drawing routine ->
    179 	48,63,              // x,y
    180 	ex1			// lastOn
    181 };
    182 memcpy( &::g->ExpDef, &temp_ExpDef, sizeof(temp_ExpDef) );
    183 
    184 menuitem_t temp_LoadExpMenu[2] = {
    185 	{1,"M_EPI1", M_LoadExpansion,'h'},
    186 	{1,"M_EPI2", M_LoadExpansion,'n'},
    187 };
    188 memcpy( ::g->LoadExpMenu, temp_LoadExpMenu, sizeof(temp_LoadExpMenu) );
    189 menu_t  temp_LoadExpDef = {
    190 	ex_end,		// # of menu items
    191 	&::g->MainDef,		// previous menu
    192 	::g->LoadExpMenu,	// menuitem_t ->
    193 	M_DrawEpisode,	// drawing routine ->
    194 	48,63,              // x,y
    195 	ex1			// lastOn
    196 };
    197 memcpy( &::g->LoadExpDef, &temp_LoadExpDef, sizeof(temp_LoadExpDef) );
    198 
    199 menuitem_t temp_NewGameMenu[5] = {
    200 	{1,"M_JKILL",	M_ChooseSkill, 'i'},
    201 	{1,"M_ROUGH",	M_ChooseSkill, 'h'},
    202 	{1,"M_HURT",	M_ChooseSkill, 'h'},
    203 	{1,"M_ULTRA",	M_ChooseSkill, 'u'},
    204 	{1,"M_NMARE",	M_ChooseSkill, 'n'}
    205 };
    206 memcpy( ::g->NewGameMenu, temp_NewGameMenu, sizeof(temp_NewGameMenu) );
    207 menu_t  temp_NewDef = {
    208 	newg_end,		// # of menu items
    209 		&::g->EpiDef,		// previous menu
    210 		::g->NewGameMenu,	// menuitem_t ->
    211 		M_DrawNewGame,	// drawing routine ->
    212 		48,63,              // x,y
    213 		hurtme		// lastOn
    214 };
    215 memcpy( &::g->NewDef, &temp_NewDef, sizeof(temp_NewDef) );
    216 menuitem_t temp_OptionsMenu[8] = {
    217 	{1,"M_GDHIGH",	M_FullScreen,'f'},
    218 	{1,"M_SCRNSZ",	M_ChangeGPad,'m'},
    219 	{1,"M_MESSG",	M_ChangeMessages,'m'},
    220 	//{1,"M_DETAIL",	M_ChangeDetail,'g'},
    221 	//{2,"M_SCRNSZ",	M_SizeDisplay,'s'},
    222 	{-1,"",0},
    223 	{2,"M_MSENS",	M_ChangeSensitivity,'m'},
    224 	{-1,"",0},
    225 	{1,"M_SVOL",	M_Sound,'s'}
    226 };
    227 memcpy( ::g->OptionsMenu, temp_OptionsMenu, sizeof(temp_OptionsMenu) );
    228 menu_t  temp_OptionsDef = {
    229 	opt_end,
    230 		&::g->MainDef,
    231 		::g->OptionsMenu,
    232 		M_DrawOptions,
    233 		60,37,
    234 		0
    235 };
    236 memcpy( &::g->OptionsDef, &temp_OptionsDef, sizeof(temp_OptionsDef) );
    237 menuitem_t temp_SoundMenu[4] = {
    238 	{2,"M_SFXVOL",M_SfxVol,'s'},
    239 	{-1,"",0},
    240 	{2,"M_MUSVOL",M_MusicVol,'m'},
    241 	{-1,"",0}
    242 };
    243 memcpy( ::g->SoundMenu, temp_SoundMenu, sizeof(temp_SoundMenu) );
    244 menu_t  temp_SoundDef = {
    245 	sound_end,
    246 		&::g->OptionsDef,
    247 		::g->SoundMenu,
    248 		M_DrawSound,
    249 		80,64,
    250 		0
    251 };
    252 memcpy( &::g->SoundDef, &temp_SoundDef, sizeof(temp_SoundDef) );
    253 menuitem_t temp_LoadMenu[6] = {
    254 	{1,"", M_LoadSelect,'1'},
    255 	{1,"", M_LoadSelect,'2'},
    256 	{1,"", M_LoadSelect,'3'},
    257 	{1,"", M_LoadSelect,'4'},
    258 	{1,"", M_LoadSelect,'5'},
    259 	{1,"", M_LoadSelect,'6'}
    260 };
    261 memcpy( ::g->LoadMenu, temp_LoadMenu, sizeof(temp_LoadMenu) );
    262 menu_t  temp_LoadDef = {
    263 	load_end,
    264 		&::g->MainDef,
    265 		::g->LoadMenu,
    266 		M_DrawLoad,
    267 		80,54,
    268 		0
    269 };
    270 memcpy( &::g->LoadDef, &temp_LoadDef, sizeof(temp_LoadDef) );
    271 menuitem_t temp_SaveMenu[6] = {
    272 	{1,"", M_SaveSelect,'1'},
    273 	{1,"", M_SaveSelect,'2'},
    274 	{1,"", M_SaveSelect,'3'},
    275 	{1,"", M_SaveSelect,'4'},
    276 	{1,"", M_SaveSelect,'5'},
    277 	{1,"", M_SaveSelect,'6'}
    278 };
    279 memcpy( ::g->SaveMenu, temp_SaveMenu, sizeof(temp_SaveMenu) );
    280 menu_t  temp_SaveDef = {
    281 	load_end,
    282 		&::g->MainDef,
    283 		::g->SaveMenu,
    284 		M_DrawSave,
    285 		80,54,
    286 		0
    287 };
    288 memcpy( &::g->SaveDef, &temp_SaveDef, sizeof(temp_SaveDef) );
    289 int     temp_quitsounds[8] = {
    290 	sfx_pldeth,
    291 		sfx_dmpain,
    292 		sfx_popain,
    293 		sfx_slop,
    294 		sfx_telept,
    295 		sfx_posit1,
    296 		sfx_posit3,
    297 		sfx_sgtatk
    298 };
    299 memcpy( ::g->quitsounds, temp_quitsounds, sizeof(temp_quitsounds) );
    300 int     temp_quitsounds2[8] = {
    301 	sfx_vilact,
    302 		sfx_getpow,
    303 		sfx_boscub,
    304 		sfx_slop,
    305 		sfx_skeswg,
    306 		sfx_kntdth,
    307 		sfx_bspact,
    308 		sfx_sgtatk
    309 };
    310 memcpy( ::g->quitsounds2, temp_quitsounds2, sizeof(temp_quitsounds2) );
    311 	::g->joywait = 0;
    312 	::g->mousewait = 0;
    313 	::g->mmenu_mousey = 0;
    314 	::g->lasty = 0;
    315 	::g->mmenu_mousex = 0;
    316 	::g->lastx = 0;
    317 // m_menu.constructs end // 
    318 //  m_misc.constructs begin // 
    319 	::g->g_pszSaveFile = "\\save.dat";
    320 	::g->g_pszImagePath = "d:\\saveimage.xbx";
    321 	::g->g_pszImageMeta = "saveimage.xbx";
    322 	extern const char* const temp_chat_macros[];
    323 	for (int i = 0; i < 10; i++)
    324 	{
    325 		chat_macros[i] = temp_chat_macros[i];
    326 	}
    327 default_t temp_defaults[35] = {
    328     default_t( "mouse_sensitivity",&::g->mouseSensitivity, 7 ),
    329    
    330     default_t( "show_messages",&::g->showMessages, 1 ),
    331     
    332     default_t( "key_right",&::g->key_right, KEY_RIGHTARROW ),
    333     default_t( "key_left",&::g->key_left, KEY_LEFTARROW ),
    334     default_t( "key_up",&::g->key_up, KEY_UPARROW ),
    335     default_t( "key_down",&::g->key_down, KEY_DOWNARROW ),
    336     default_t( "key_strafeleft",&::g->key_strafeleft, ',' ),
    337     default_t( "key_straferight",&::g->key_straferight, '.' ),
    338 
    339     default_t( "key_fire",&::g->key_fire, KEY_RCTRL ),
    340     default_t( "key_use",&::g->key_use, ' ' ),
    341     default_t( "key_strafe",&::g->key_strafe, KEY_RALT ),
    342     default_t( "key_speed",&::g->key_speed, KEY_RSHIFT ),
    343 
    344     default_t( "use_mouse",&::g->usemouse, 1 ),
    345     default_t( "mouseb_fire",&::g->mousebfire,0 ),
    346     default_t( "mouseb_strafe",&::g->mousebstrafe,1 ),
    347     default_t( "mouseb_forward",&::g->mousebforward,2 ),
    348 
    349     default_t( "use_joystick",&::g->usejoystick, 0 ),
    350     default_t( "joyb_fire",&::g->joybfire,0 ),
    351     default_t( "joyb_strafe",&::g->joybstrafe,1 ),
    352     default_t( "joyb_use",&::g->joybuse,3 ),
    353     default_t( "joyb_speed",&::g->joybspeed,2 ),
    354 
    355     default_t( "screenblocks",&::g->screenblocks, 10 ),
    356     default_t( "detaillevel",&::g->detailLevel, 0 ),
    357 
    358     default_t( "snd_channels",&::g->numChannels, S_NUMCHANNELS ),
    359 
    360 
    361 
    362     default_t( "usegamma",&::g->usegamma, 0 ),
    363 
    364 	default_t( "chatmacro0", &::g->chat_macros[0], HUSTR_CHATMACRO0 ),
    365     default_t( "chatmacro1", &::g->chat_macros[1], HUSTR_CHATMACRO1 ),
    366     default_t( "chatmacro2", &::g->chat_macros[2], HUSTR_CHATMACRO2 ),
    367     default_t( "chatmacro3", &::g->chat_macros[3], HUSTR_CHATMACRO3 ),
    368     default_t( "chatmacro4", &::g->chat_macros[4], HUSTR_CHATMACRO4 ),
    369     default_t( "chatmacro5", &::g->chat_macros[5], HUSTR_CHATMACRO5 ),
    370     default_t( "chatmacro6", &::g->chat_macros[6], HUSTR_CHATMACRO6 ),
    371     default_t( "chatmacro7", &::g->chat_macros[7], HUSTR_CHATMACRO7 ),
    372     default_t( "chatmacro8", &::g->chat_macros[8], HUSTR_CHATMACRO8 ),
    373     default_t( "chatmacro9", &::g->chat_macros[9], HUSTR_CHATMACRO9 )
    374 
    375 };
    376 memcpy( ::g->defaults, temp_defaults, sizeof(temp_defaults) );
    377 // m_misc.constructs end // 
    378 //  m_random.constructs begin // 
    379 	::g->rndindex = 0;
    380 	::g->prndindex = 0;
    381 // m_random.constructs end // 
    382 //  p_enemy.constructs begin // 
    383 	::g->TRACEANGLE = 0xc000000;
    384 	::g->easy = 0;
    385 // p_enemy.constructs end // 
    386 //  r_bsp.constructs begin // 
    387 int temp_checkcoord[12][4] = {
    388     {3,0,2,1},
    389     {3,0,2,0},
    390     {3,1,2,0},
    391     {0},
    392     {2,0,2,1},
    393     {0,0,0,0},
    394     {3,1,3,0},
    395     {0},
    396     {2,0,3,1},
    397     {2,1,3,1},
    398     {2,1,3,0}
    399 };
    400 memcpy( ::g->checkcoord, temp_checkcoord, sizeof(temp_checkcoord) );
    401 // r_bsp.constructs end // 
    402 //  r_draw.constructs begin // 
    403 int temp_fuzzoffset[FUZZTABLE] = {
    404 	FUZZOFF,-FUZZOFF,FUZZOFF,-FUZZOFF,FUZZOFF,FUZZOFF,-FUZZOFF,
    405 		FUZZOFF,FUZZOFF,-FUZZOFF,FUZZOFF,FUZZOFF,FUZZOFF,-FUZZOFF,
    406 		FUZZOFF,FUZZOFF,FUZZOFF,-FUZZOFF,-FUZZOFF,-FUZZOFF,-FUZZOFF,
    407 		FUZZOFF,-FUZZOFF,-FUZZOFF,FUZZOFF,FUZZOFF,FUZZOFF,FUZZOFF,-FUZZOFF,
    408 		FUZZOFF,-FUZZOFF,FUZZOFF,FUZZOFF,-FUZZOFF,-FUZZOFF,FUZZOFF,
    409 		FUZZOFF,-FUZZOFF,-FUZZOFF,-FUZZOFF,-FUZZOFF,FUZZOFF,FUZZOFF,
    410 		FUZZOFF,FUZZOFF,-FUZZOFF,FUZZOFF,FUZZOFF,-FUZZOFF,FUZZOFF 
    411 }; 
    412 memcpy( ::g->fuzzoffset, temp_fuzzoffset, sizeof(temp_fuzzoffset) );
    413 	::g->fuzzpos = 0; 
    414 // r_draw.constructs end // 
    415 //  r_main.constructs begin // 
    416 	::g->validcount = 1;		
    417 // r_main.constructs end // 
    418 //  sounds.constructs begin // 
    419 musicinfo_t temp_S_music[80] = {
    420     { 0 },
    421     { "e1m1", 0 },
    422     { "e1m2", 0 },
    423     { "e1m3", 0 },
    424     { "e1m4", 0 },
    425     { "e1m5", 0 },
    426     { "e1m6", 0 },
    427     { "e1m7", 0 },
    428     { "e1m8", 0 },
    429     { "e1m9", 0 },
    430     { "e2m1", 0 },
    431     { "e2m2", 0 },
    432     { "e2m3", 0 },
    433     { "e2m4", 0 },
    434     { "e2m5", 0 },
    435     { "e2m6", 0 },
    436     { "e2m7", 0 },
    437     { "e2m8", 0 },
    438     { "e2m9", 0 },
    439     { "e3m1", 0 },
    440     { "e3m2", 0 },
    441     { "e3m3", 0 },
    442     { "e3m4", 0 },
    443     { "e3m5", 0 },
    444     { "e3m6", 0 },
    445     { "e3m7", 0 },
    446     { "e3m8", 0 },
    447     { "e3m9", 0 },
    448     { "inter", 0 },
    449     { "intro", 0 },
    450     { "bunny", 0 },
    451     { "victor", 0 },
    452     { "introa", 0 },
    453     { "runnin", 0 },
    454     { "stalks", 0 },
    455     { "countd", 0 },
    456     { "betwee", 0 },
    457     { "doom", 0 },
    458     { "the_da", 0 },
    459     { "shawn", 0 },
    460     { "ddtblu", 0 },
    461     { "in_cit", 0 },
    462     { "dead", 0 },
    463     { "stlks2", 0 },
    464     { "theda2", 0 },
    465     { "doom2", 0 },
    466     { "ddtbl2", 0 },
    467     { "runni2", 0 },
    468     { "dead2", 0 },
    469     { "stlks3", 0 },
    470     { "romero", 0 },
    471     { "shawn2", 0 },
    472     { "messag", 0 },
    473     { "count2", 0 },
    474     { "ddtbl3", 0 },
    475     { "ampie", 0 },
    476     { "theda3", 0 },
    477     { "adrian", 0 },
    478     { "messg2", 0 },
    479     { "romer2", 0 },
    480     { "tense", 0 },
    481     { "shawn3", 0 },
    482     { "openin", 0 },
    483     { "evil", 0 },
    484     { "ultima", 0 },
    485     { "read_m", 0 },
    486     { "dm2ttl", 0 },
    487     { "dm2int", 0 } 
    488 };
    489 memcpy( ::g->S_music, temp_S_music, sizeof(temp_S_music) );
    490 // sounds.constructs end // 
    491 //  st_stuff.constructs begin // 
    492 	::g->veryfirsttime = 1;
    493 	::g->st_msgcounter=0;
    494 	::g->st_oldhealth = -1;
    495 	::g->st_facecount = 0;
    496 	::g->st_faceindex = 0;
    497 	::g->oldhealth = -1;
    498 	::g->lastattackdown = -1;
    499 	::g->priority = 0;
    500 	::g->largeammo = 1994; // means "n/a"
    501 	::g->st_palette = 0;
    502 	::g->st_stopped = true;
    503 // st_stuff.constructs end // 
    504 //  s_sound.constructs begin //
    505 	::g->mus_playing=0;
    506 // s_sound.constructs end // 
    507 //  wi_stuff.constructs begin // 
    508 int temp_NUMANIMS[NUMEPISODES] = {
    509     sizeof(epsd0animinfo)/sizeof(anim_t),
    510     sizeof(epsd1animinfo)/sizeof(anim_t),
    511     sizeof(epsd2animinfo)/sizeof(anim_t)
    512 };
    513 memcpy( ::g->NUMANIMS, temp_NUMANIMS, sizeof(temp_NUMANIMS) );
    514 	::g->snl_pointeron = false;
    515 	extern const anim_t temp_epsd0animinfo[10];
    516 	extern const anim_t temp_epsd1animinfo[9];
    517 	extern const anim_t temp_epsd2animinfo[6];
    518 	memcpy(::g->epsd0animinfo, temp_epsd0animinfo, sizeof(temp_epsd0animinfo));
    519 	memcpy(::g->epsd1animinfo, temp_epsd1animinfo, sizeof(temp_epsd1animinfo));
    520 	memcpy(::g->epsd2animinfo, temp_epsd2animinfo, sizeof(temp_epsd2animinfo));
    521 	wi_stuff_anims[0] = ::g->epsd0animinfo;
    522 	wi_stuff_anims[1] = ::g->epsd1animinfo;
    523 	wi_stuff_anims[2] = ::g->epsd2animinfo;
    524 // wi_stuff.constructs end // 
    525 //  z_zone.constructs begin // 
    526 	::g->zones[NUM_ZONES] = NULL;
    527 	::g->NumAlloc = 0;
    528 // z_zone.constructs end // 
    529 // info constructs begin //
    530 	extern const state_t	tempStates[NUMSTATES];
    531 	memcpy(::g->states, tempStates, sizeof(tempStates));
    532 // info constructs end //
    533 // p_local begin //
    534 	::g->rejectmatrix = NULL;
    535 // p_local end //
    536 // r_data begin //]
    537 	::g->s_numtextures = 0;
    538 // r_data end //
    539 
    540