- do not statically initialize DukeGameInfo.

Since this structure contains several large arrays it will inflate the EXE size with 800kb of empty space.
This commit is contained in:
Christoph Oelckers 2020-11-29 22:31:02 +01:00
parent 9a345bdfa7
commit a51b77b95b
2 changed files with 40 additions and 25 deletions

View file

@ -3146,7 +3146,22 @@ void ConCompiler::setmusic()
void loadcons() void loadcons()
{ {
memset(&gs.actorinfo, 0, sizeof(gs.actorinfo)); gs = {};
gs.respawnactortime = 768;
gs.bouncemineblastradius = 2500;
gs.respawnitemtime = 768;
gs.morterblastradius = 2500;
gs.numfreezebounces = 3;
gs.pipebombblastradius = 2500;
gs.playerfriction = 0xCFD0;
gs.rpgblastradius = 1780;
gs.seenineblastradius = 2048;
gs.shrinkerblastradius = 650;
gs.gravity = 176;
gs.tripbombblastradius = 3880;
gs.playerheight = PHEIGHT_DUKE;
gs.displayflags = DUKE3D_NO_WIDESCREEN_PINNING;
ScriptCode.Clear(); ScriptCode.Clear();
labels.Clear(); labels.Clear();

View file

@ -17,31 +17,31 @@ extern user_defs ud;
struct DukeGameInfo struct DukeGameInfo
{ {
// Static constant global state // Static constant global state
int respawnactortime = 768; int respawnactortime;
int bouncemineblastradius = 2500; int bouncemineblastradius;
int respawnitemtime = 768; int respawnitemtime;
int morterblastradius = 2500; int morterblastradius;
int numfreezebounces = 3; int numfreezebounces;
int pipebombblastradius = 2500; int pipebombblastradius;
int playerfriction = 0xCFD0; int playerfriction;
int rpgblastradius = 1780; int rpgblastradius;
int seenineblastradius = 2048; int seenineblastradius;
int shrinkerblastradius = 650; int shrinkerblastradius;
int gravity = 176; int gravity;
int tripbombblastradius = 3880; int tripbombblastradius;
int camerashitable = 0; int camerashitable;
int max_player_health = 0; int max_player_health;
int max_armour_amount = 0; int max_armour_amount;
int lasermode = 0; int lasermode;
int freezerhurtowner = 0; int freezerhurtowner;
int impact_damage = 0; int impact_damage;
TileInfo tileinfo[MAXTILES] = {}; // This is not from EDuke32. TileInfo tileinfo[MAXTILES]; // This is not from EDuke32.
ActorInfo actorinfo[MAXTILES] = {}; ActorInfo actorinfo[MAXTILES];
int16_t max_ammo_amount[MAX_WEAPONS] = {}; int16_t max_ammo_amount[MAX_WEAPONS];
int16_t weaponsandammosprites[15] = {}; int16_t weaponsandammosprites[15];
int playerheight = PHEIGHT_DUKE; int playerheight;
int displayflags = DUKE3D_NO_WIDESCREEN_PINNING; int displayflags;
}; };
extern DukeGameInfo gs; extern DukeGameInfo gs;