aboutsummaryrefslogtreecommitdiff
path: root/src/GameInitDispose.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/GameInitDispose.cpp')
-rw-r--r--src/GameInitDispose.cpp443
1 files changed, 105 insertions, 338 deletions
diff --git a/src/GameInitDispose.cpp b/src/GameInitDispose.cpp
index 51c8b13..76721ee 100644
--- a/src/GameInitDispose.cpp
+++ b/src/GameInitDispose.cpp
@@ -36,7 +36,7 @@ extern Sprites sprites;
extern Decals decals;
extern Model skeletonmodels[10];
-extern Model gunmodels[10];
+extern Model gunmodels[11];
extern Costume costume[10];
extern Animation animation[30];
extern bool visions;
@@ -61,31 +61,7 @@ void resizeWindow(Game* game, int width, int height)
glViewport(0, 0, width, height);
}
-Game* makeGame(Config config, Scores scores)
-{
- auto game = new Game();
- game->screenwidth = config.width;
- game->screenheight = config.height;
- blood = config.blood;
-
- game->musictoggle = config.music;
-
- game->mouse_sensitivity = config.mouse_sensitivity;
- keymap = config.key;
-
- game->levels = config.levels.ptr;
- game->nummissions = config.levels.len;
- game->debug = config.debug;
-
- game->highscore = scores.high_score;
- game->beatgame = scores.completed;
- game->disttest = true;
- game->cubetest = true;
- setMenu(game, true);
- return game;
-}
-
-void LoadSounds(bool musictoggle)
+void loadSounds(bool musictoggle)
{
gSampleSet[footstepsound + 0] = loadSound("footstep/0.ogg");
gSampleSet[footstepsound + 1] = loadSound("footstep/1.ogg");
@@ -187,6 +163,83 @@ void LoadSounds(bool musictoggle)
}
}
+void loadModels(Game* game)
+{
+ game->blocks[0] = loadModel("blocks/0.off");
+ game->blocks[1] = loadModel("blocks/1.off");
+ game->blocks[2] = loadModel("blocks/2.off");
+ game->blocks[3] = loadModel("blocks/3.off");
+ game->sidewalkcollide = loadModel("collide/sidewalk.off");
+ game->blockwalls[0] = loadModel("collide/blocks/walls/0.off");
+ game->blockwalls[1] = loadModel("collide/blocks/walls/1.off");
+ game->blockwalls[2] = loadModel("collide/blocks/walls/2.off");
+ game->blockwalls[3] = loadModel("collide/blocks/walls/3.off");
+ game->blockroofs[0] = loadModel("collide/blocks/roofs/0.off");
+ game->blockroofs[1] = loadModel("collide/blocks/roofs/1.off");
+ game->blockroofs[2] = loadModel("collide/blocks/roofs/2.off");
+ game->blockroofs[3] = loadModel("collide/blocks/roofs/3.off");
+ game->blockcollide[0] = loadModel("collide/blocks/0.off");
+ game->blockcollide[1] = loadModel("collide/blocks/1.off");
+ game->blockcollide[2] = loadModel("collide/blocks/2.off");
+ game->blockcollide[3] = loadModel("collide/blocks/3.off");
+ game->blocksimplecollide[0] = loadModel("collide/blocks/simple/0.off");
+ game->blocksimplecollide[1] = loadModel("collide/blocks/simple/1.off");
+ game->blocksimplecollide[2] = loadModel("collide/blocks/simple/2.off");
+ game->blocksimplecollide[3] = loadModel("collide/blocks/simple/3.off");
+ game->blockocclude = loadModel("blocks/occlude.off");
+ game->blocksimple = loadModel("blocks/simple.off");
+ game->street = loadModel("streets/small.off");
+ game->Bigstreet = loadModel("streets/big.off");
+
+ skeletonmodels[0] = loadModel("skeleton/head.off");
+ skeletonmodels[1] = loadModel("skeleton/chest.off");
+ skeletonmodels[2] = loadModel("skeleton/abdomen.off");
+ skeletonmodels[3] = loadModel("skeleton/arm.off");
+ skeletonmodels[4] = loadModel("skeleton/forearm.off");
+ skeletonmodels[5] = loadModel("skeleton/hand.off");
+ skeletonmodels[6] = loadModel("skeleton/thigh.off");
+ skeletonmodels[7] = loadModel("skeleton/leg.off");
+ skeletonmodels[8] = loadModel("skeleton/foot.off");
+ skeletonmodels[9] = loadModel("skeleton/shades.off");
+
+ gunmodels[sniperriflemodel] = loadModel("guns/sniper-rifle.off");
+ gunmodels[assaultriflemodel] = loadModel("guns/assault-rifle.off");
+ gunmodels[handgunbasemodel] = loadModel("guns/handgun-big-base.off");
+ gunmodels[handgunslidemodel] = loadModel("guns/handgun-big-slide.off");
+ gunmodels[handgun2basemodel] = loadModel("guns/handgun-small-base.off");
+ gunmodels[handgun2slidemodel] = loadModel("guns/handgun-small-slide.off");
+ gunmodels[grenadebasemodel] = loadModel("grenade/base.off");
+ gunmodels[grenadepinmodel] = loadModel("grenade/pin.off");
+ gunmodels[grenadespoonmodel] = loadModel("grenade/spoon.off");
+ gunmodels[knifemodel] = loadModel("knife.off");
+ gunmodels[shotgunmodel] = loadModel("guns/shotgun.off");
+}
+
+Game* makeGame(Config config, Scores scores)
+{
+ auto game = new Game();
+ loadModels(game); // FIXME: free models
+ game->screenwidth = config.width;
+ game->screenheight = config.height;
+ blood = config.blood;
+
+ game->musictoggle = config.music;
+
+ game->mouse_sensitivity = config.mouse_sensitivity;
+ keymap = config.key;
+
+ game->levels = config.levels.ptr;
+ game->nummissions = config.levels.len;
+ game->debug = config.debug;
+
+ game->highscore = scores.high_score;
+ game->beatgame = scores.completed;
+ game->disttest = true;
+ game->cubetest = true;
+ setMenu(game, true);
+ return game;
+}
+
void initGame(Game* game)
{
//Set up rain and snow
@@ -253,9 +306,7 @@ void initGame(Game* game)
if (!game->initialized) {
soundscalefactor = 10;
-
- // Sounds
- LoadSounds(game->musictoggle);
+ loadSounds(game->musictoggle);
//Play correct song
if (environment == rainy_environment)
@@ -276,36 +327,6 @@ void initGame(Game* game)
alSourcef(sound_source, AL_MAX_GAIN, 1);
}
- // Setup block models
- if (!game->initialized) {
- game->blocks[0].load("blocks/0.off");
- game->blocks[1].load("blocks/1.off");
- game->blocks[2].load("blocks/2.off");
- game->blocks[3].load("blocks/3.off");
- game->sidewalkcollide.load("collide/sidewalk.off");
- game->blockwalls[0].load("collide/blocks/walls/0.off");
- game->blockwalls[1].load("collide/blocks/walls/1.off");
- game->blockwalls[2].load("collide/blocks/walls/2.off");
- game->blockwalls[3].load("collide/blocks/walls/3.off");
- game->blockroofs[0].load("collide/blocks/roofs/0.off");
- game->blockroofs[1].load("collide/blocks/roofs/1.off");
- game->blockroofs[2].load("collide/blocks/roofs/2.off");
- game->blockroofs[3].load("collide/blocks/roofs/3.off");
- game->blockcollide[0].load("collide/blocks/0.off");
- game->blockcollide[1].load("collide/blocks/1.off");
- game->blockcollide[2].load("collide/blocks/2.off");
- game->blockcollide[3].load("collide/blocks/3.off");
- game->blocksimplecollide[0].load("collide/blocks/simple/0.off");
- game->blocksimplecollide[1].load("collide/blocks/simple/1.off");
- game->blocksimplecollide[2].load("collide/blocks/simple/2.off");
- game->blocksimplecollide[3].load("collide/blocks/simple/3.off");
- game->blockocclude.load("blocks/occlude.off");
- game->blocksimple.load("blocks/simple.off");
- game->street.load("streets/small.off");
- game->Bigstreet.load("streets/big.off");
- game->path.load("streets/path.off");
- }
-
auto& vip = game->person[game->numpeople = 1];
vip.type = viptype;
vip.whichgun = nogun;
@@ -319,15 +340,11 @@ void initGame(Game* game)
/ block_spacing;
vip.whichblocky = (bodyguard.playercoords.z + block_spacing / 2)
/ block_spacing;
- vip.oldoldoldpathnum = vip.oldoldpathnum
- = vip.oldpathnum = vip.pathnum = -1;
-
- while (vip.pathnum < 0 || vip.pathnum == 1
- || vip.pathnum >= game->path.vertexNum)
- vip.pathnum = randUint(game->path.vertexNum);
+ vip.oldoldoldpathnum = vip.oldoldpathnum = vip.oldpathnum = -1;
- vip.pathtarget.x = game->path.vertex[vip.pathnum].x;
- vip.pathtarget.z = game->path.vertex[vip.pathnum].z;
+ vip.pathnum = randUint(8);
+ vip.pathtarget.x = DIRECTIONS[vip.pathnum].x;
+ vip.pathtarget.z = DIRECTIONS[vip.pathnum].z;
vip.pathsize = 0.98f + 0.04f * randFloat();
vip.pathtarget *= vip.pathsize;
vip.pathtarget.x += vip.whichblockx * block_spacing;
@@ -360,33 +377,6 @@ void initGame(Game* game)
game->citypeoplenum[i][j] = 0;
}
- if (!game->initialized) {
- // Load person model
- skeletonmodels[0].load("skeleton/head.off");
- skeletonmodels[1].load("skeleton/chest.off");
- skeletonmodels[2].load("skeleton/abdomen.off");
- skeletonmodels[3].load("skeleton/arm.off");
- skeletonmodels[4].load("skeleton/forearm.off");
- skeletonmodels[5].load("skeleton/hand.off");
- skeletonmodels[6].load("skeleton/thigh.off");
- skeletonmodels[7].load("skeleton/leg.off");
- skeletonmodels[8].load("skeleton/foot.off");
- skeletonmodels[9].load("skeleton/shades.off");
-
- // Load weapon models
- gunmodels[sniperriflemodel].load("guns/sniper-rifle.off");
- gunmodels[assaultriflemodel].load("guns/assault-rifle.off");
- gunmodels[handgunbasemodel].load("guns/handgun-big-base.off");
- gunmodels[handgunslidemodel].load("guns/handgun-big-slide.off");
- gunmodels[handgun2basemodel].load("guns/handgun-small-base.off");
- gunmodels[handgun2slidemodel].load("guns/handgun-small-slide.off");
- gunmodels[grenadebasemodel].load("grenade/base.off");
- gunmodels[grenadepinmodel].load("grenade/pin.off");
- gunmodels[grenadespoonmodel].load("grenade/spoon.off");
- gunmodels[knifemodel].load("knife.off");
- gunmodels[shotgunmodel].load("guns/shotgun.off");
- }
-
//Setup costumes
float headcolor[3];
float footcolor[3];
@@ -423,506 +413,262 @@ void initGame(Game* game)
}
costume[policecostume].headcolor[0]=headcolor[0];
-
costume[policecostume].headcolor[1]=headcolor[1];
-
costume[policecostume].headcolor[2]=headcolor[2];
-
costume[policecostume].handcolor[0]=handcolor[0];
-
costume[policecostume].handcolor[1]=handcolor[1];
-
costume[policecostume].handcolor[2]=handcolor[2];
-
costume[policecostume].chestcolor[0]=topcolor[0];
-
costume[policecostume].chestcolor[1]=topcolor[1];
-
costume[policecostume].chestcolor[2]=topcolor[2];
-
costume[policecostume].abdomencolor[0]=topcolor[0];
-
costume[policecostume].abdomencolor[1]=topcolor[1];
-
costume[policecostume].abdomencolor[2]=topcolor[2];
-
costume[policecostume].upperarmcolor[0]=topcolor[0];
-
costume[policecostume].upperarmcolor[1]=topcolor[1];
-
costume[policecostume].upperarmcolor[2]=topcolor[2];
-
costume[policecostume].lowerarmcolor[0]=topcolor[0];
-
costume[policecostume].lowerarmcolor[1]=topcolor[1];
-
costume[policecostume].lowerarmcolor[2]=topcolor[2];
-
costume[policecostume].upperlegcolor[0]=bottomcolor[0];
-
costume[policecostume].upperlegcolor[1]=bottomcolor[1];
-
costume[policecostume].upperlegcolor[2]=bottomcolor[2];
-
costume[policecostume].lowerlegcolor[0]=bottomcolor[0];
-
costume[policecostume].lowerlegcolor[1]=bottomcolor[1];
-
costume[policecostume].lowerlegcolor[2]=bottomcolor[2];
-
costume[policecostume].footcolor[0]=footcolor[0];
-
costume[policecostume].footcolor[1]=footcolor[1];
-
costume[policecostume].footcolor[2]=footcolor[2];
//casual
-
topcolor[0]=(float)14/255;
-
topcolor[1]=(float)200/255;
-
topcolor[2]=(float)30/255;
-
bottomcolor[0]=(float)14/255;
-
bottomcolor[1]=(float)18/255;
-
bottomcolor[2]=(float)195/255;
-
costume[casualcostumes].headcolor[0]=headcolor[0];
-
costume[casualcostumes].headcolor[1]=headcolor[1];
-
costume[casualcostumes].headcolor[2]=headcolor[2];
-
costume[casualcostumes].handcolor[0]=handcolor[0];
-
costume[casualcostumes].handcolor[1]=handcolor[1];
-
costume[casualcostumes].handcolor[2]=handcolor[2];
-
costume[casualcostumes].chestcolor[0]=topcolor[0];
-
costume[casualcostumes].chestcolor[1]=topcolor[1];
-
costume[casualcostumes].chestcolor[2]=topcolor[2];
-
costume[casualcostumes].abdomencolor[0]=topcolor[0];
-
costume[casualcostumes].abdomencolor[1]=topcolor[1];
-
costume[casualcostumes].abdomencolor[2]=topcolor[2];
-
costume[casualcostumes].upperarmcolor[0]=topcolor[0];
-
costume[casualcostumes].upperarmcolor[1]=topcolor[1];
-
costume[casualcostumes].upperarmcolor[2]=topcolor[2];
-
costume[casualcostumes].lowerarmcolor[0]=handcolor[0];
-
costume[casualcostumes].lowerarmcolor[1]=handcolor[1];
-
costume[casualcostumes].lowerarmcolor[2]=handcolor[2];
-
costume[casualcostumes].upperlegcolor[0]=bottomcolor[0];
-
costume[casualcostumes].upperlegcolor[1]=bottomcolor[1];
-
costume[casualcostumes].upperlegcolor[2]=bottomcolor[2];
-
costume[casualcostumes].lowerlegcolor[0]=bottomcolor[0];
-
costume[casualcostumes].lowerlegcolor[1]=bottomcolor[1];
-
costume[casualcostumes].lowerlegcolor[2]=bottomcolor[2];
-
costume[casualcostumes].footcolor[0]=footcolor[0];
-
costume[casualcostumes].footcolor[1]=footcolor[1];
-
costume[casualcostumes].footcolor[2]=footcolor[2];
//casual 2
-
topcolor[0]=(float)140/255;
-
topcolor[1]=(float)55/255;
-
topcolor[2]=(float)4/255;
-
bottomcolor[0]=(float)14/255;
-
bottomcolor[1]=(float)18/255;
-
bottomcolor[2]=(float)135/255;
-
costume[casualcostumes+1].headcolor[0]=headcolor[0];
-
costume[casualcostumes+1].headcolor[1]=headcolor[1];
-
costume[casualcostumes+1].headcolor[2]=headcolor[2];
-
costume[casualcostumes+1].handcolor[0]=handcolor[0];
-
costume[casualcostumes+1].handcolor[1]=handcolor[1];
-
costume[casualcostumes+1].handcolor[2]=handcolor[2];
-
costume[casualcostumes+1].chestcolor[0]=topcolor[0];
-
costume[casualcostumes+1].chestcolor[1]=topcolor[1];
-
costume[casualcostumes+1].chestcolor[2]=topcolor[2];
-
costume[casualcostumes+1].abdomencolor[0]=topcolor[0];
-
costume[casualcostumes+1].abdomencolor[1]=topcolor[1];
-
costume[casualcostumes+1].abdomencolor[2]=topcolor[2];
-
costume[casualcostumes+1].upperarmcolor[0]=topcolor[0];
-
costume[casualcostumes+1].upperarmcolor[1]=topcolor[1];
-
costume[casualcostumes+1].upperarmcolor[2]=topcolor[2];
-
costume[casualcostumes+1].lowerarmcolor[0]=topcolor[0];
-
costume[casualcostumes+1].lowerarmcolor[1]=topcolor[1];
-
costume[casualcostumes+1].lowerarmcolor[2]=topcolor[2];
-
costume[casualcostumes+1].upperlegcolor[0]=bottomcolor[0];
-
costume[casualcostumes+1].upperlegcolor[1]=bottomcolor[1];
-
costume[casualcostumes+1].upperlegcolor[2]=bottomcolor[2];
-
costume[casualcostumes+1].lowerlegcolor[0]=bottomcolor[0];
-
costume[casualcostumes+1].lowerlegcolor[1]=bottomcolor[1];
-
costume[casualcostumes+1].lowerlegcolor[2]=bottomcolor[2];
-
costume[casualcostumes+1].footcolor[0]=footcolor[0];
-
costume[casualcostumes+1].footcolor[1]=footcolor[1];
-
costume[casualcostumes+1].footcolor[2]=footcolor[2];
//casual 3
-
topcolor[0]=(float)134/255;
-
topcolor[1]=(float)80/255;
-
topcolor[2]=(float)3/255;
-
bottomcolor[0]=(float)30/255;
-
bottomcolor[1]=(float)30/255;
-
bottomcolor[2]=(float)30/255;
-
footcolor[0]=(float)20/255;
-
footcolor[1]=(float)20/255;
-
footcolor[2]=(float)20/255;
-
costume[casualcostumes+2].headcolor[0]=headcolor[0];
-
costume[casualcostumes+2].headcolor[1]=headcolor[1];
-
costume[casualcostumes+2].headcolor[2]=headcolor[2];
-
costume[casualcostumes+2].handcolor[0]=handcolor[0];
-
costume[casualcostumes+2].handcolor[1]=handcolor[1];
-
costume[casualcostumes+2].handcolor[2]=handcolor[2];
-
costume[casualcostumes+2].chestcolor[0]=topcolor[0];
-
costume[casualcostumes+2].chestcolor[1]=topcolor[1];
-
costume[casualcostumes+2].chestcolor[2]=topcolor[2];
-
costume[casualcostumes+2].abdomencolor[0]=topcolor[0];
-
costume[casualcostumes+2].abdomencolor[1]=topcolor[1];
-
costume[casualcostumes+2].abdomencolor[2]=topcolor[2];
-
costume[casualcostumes+2].upperarmcolor[0]=topcolor[0];
-
costume[casualcostumes+2].upperarmcolor[1]=topcolor[1];
-
costume[casualcostumes+2].upperarmcolor[2]=topcolor[2];
-
costume[casualcostumes+2].lowerarmcolor[0]=topcolor[0];
-
costume[casualcostumes+2].lowerarmcolor[1]=topcolor[1];
-
costume[casualcostumes+2].lowerarmcolor[2]=topcolor[2];
-
costume[casualcostumes+2].upperlegcolor[0]=bottomcolor[0];
-
costume[casualcostumes+2].upperlegcolor[1]=bottomcolor[1];
-
costume[casualcostumes+2].upperlegcolor[2]=bottomcolor[2];
-
costume[casualcostumes+2].lowerlegcolor[0]=bottomcolor[0];
-
costume[casualcostumes+2].lowerlegcolor[1]=bottomcolor[1];
-
costume[casualcostumes+2].lowerlegcolor[2]=bottomcolor[2];
-
costume[casualcostumes+2].footcolor[0]=footcolor[0];
-
costume[casualcostumes+2].footcolor[1]=footcolor[1];
-
costume[casualcostumes+2].footcolor[2]=footcolor[2];
//casual 4
-
topcolor[0]=(float)228/255;
-
topcolor[1]=(float)220/255;
-
topcolor[2]=(float)0/255;
-
bottomcolor[0]=(float)20/255;
-
bottomcolor[1]=(float)20/255;
-
bottomcolor[2]=(float)20/255;
-
footcolor[0]=(float)119/255;
-
footcolor[1]=(float)68/255;
-
footcolor[2]=(float)18/255;
-
costume[casualcostumes+3].headcolor[0]=headcolor[0];
-
costume[casualcostumes+3].headcolor[1]=headcolor[1];
-
costume[casualcostumes+3].headcolor[2]=headcolor[2];
-
costume[casualcostumes+3].handcolor[0]=handcolor[0];
-
costume[casualcostumes+3].handcolor[1]=handcolor[1];
-
costume[casualcostumes+3].handcolor[2]=handcolor[2];
-
costume[casualcostumes+3].chestcolor[0]=topcolor[0];
-
costume[casualcostumes+3].chestcolor[1]=topcolor[1];
-
costume[casualcostumes+3].chestcolor[2]=topcolor[2];
-
costume[casualcostumes+3].abdomencolor[0]=topcolor[0];
-
costume[casualcostumes+3].abdomencolor[1]=topcolor[1];
-
costume[casualcostumes+3].abdomencolor[2]=topcolor[2];
-
costume[casualcostumes+3].upperarmcolor[0]=topcolor[0];
-
costume[casualcostumes+3].upperarmcolor[1]=topcolor[1];
-
costume[casualcostumes+3].upperarmcolor[2]=topcolor[2];
-
costume[casualcostumes+3].lowerarmcolor[0]=handcolor[0];
-
costume[casualcostumes+3].lowerarmcolor[1]=handcolor[1];
-
costume[casualcostumes+3].lowerarmcolor[2]=handcolor[2];
-
costume[casualcostumes+3].upperlegcolor[0]=bottomcolor[0];
-
costume[casualcostumes+3].upperlegcolor[1]=bottomcolor[1];
-
costume[casualcostumes+3].upperlegcolor[2]=bottomcolor[2];
-
costume[casualcostumes+3].lowerlegcolor[0]=bottomcolor[0];
-
costume[casualcostumes+3].lowerlegcolor[1]=bottomcolor[1];
-
costume[casualcostumes+3].lowerlegcolor[2]=bottomcolor[2];
-
costume[casualcostumes+3].footcolor[0]=footcolor[0];
-
costume[casualcostumes+3].footcolor[1]=footcolor[1];
-
costume[casualcostumes+3].footcolor[2]=footcolor[2];
//vip
topcolor[0]=(float)235/255;
-
topcolor[1]=(float)235/255;
-
topcolor[2]=(float)235/255;
-
bottomcolor[0]=(float)200/255;
-
bottomcolor[1]=(float)200/255;
-
bottomcolor[2]=(float)200/255;
-
footcolor[0]=(float)119/255;
-
footcolor[1]=(float)68/255;
-
footcolor[2]=(float)18/255;
-
headcolor[0]=(float)240/255;
-
headcolor[1]=(float)183/255;
-
headcolor[2]=(float)132/255;
-
footcolor[0]=(float)119/255;
-
footcolor[1]=(float)68/255;
-
footcolor[2]=(float)18/255;
-
handcolor[0]=(float)240/255;
-
handcolor[1]=(float)183/255;
-
handcolor[2]=(float)132/255;
-
costume[vipcostume].headcolor[0]=headcolor[0];
-
costume[vipcostume].headcolor[1]=headcolor[1];
-
costume[vipcostume].headcolor[2]=headcolor[2];
-
costume[vipcostume].handcolor[0]=handcolor[0];
-
costume[vipcostume].handcolor[1]=handcolor[1];
-
costume[vipcostume].handcolor[2]=handcolor[2];
-
costume[vipcostume].chestcolor[0]=topcolor[0];
-
costume[vipcostume].chestcolor[1]=topcolor[1];
-
costume[vipcostume].chestcolor[2]=topcolor[2];
-
costume[vipcostume].abdomencolor[0]=topcolor[0];
-
costume[vipcostume].abdomencolor[1]=topcolor[1];
-
costume[vipcostume].abdomencolor[2]=topcolor[2];
-
costume[vipcostume].upperarmcolor[0]=topcolor[0];
-
costume[vipcostume].upperarmcolor[1]=topcolor[1];
-
costume[vipcostume].upperarmcolor[2]=topcolor[2];
-
costume[vipcostume].lowerarmcolor[0]=topcolor[0];
-
costume[vipcostume].lowerarmcolor[1]=topcolor[1];
-
costume[vipcostume].lowerarmcolor[2]=topcolor[2];
-
costume[vipcostume].upperlegcolor[0]=bottomcolor[0];
-
costume[vipcostume].upperlegcolor[1]=bottomcolor[1];
-
costume[vipcostume].upperlegcolor[2]=bottomcolor[2];
-
costume[vipcostume].lowerlegcolor[0]=bottomcolor[0];
-
costume[vipcostume].lowerlegcolor[1]=bottomcolor[1];
-
costume[vipcostume].lowerlegcolor[2]=bottomcolor[2];
-
costume[vipcostume].footcolor[0]=footcolor[0];
-
costume[vipcostume].footcolor[1]=footcolor[1];
-
costume[vipcostume].footcolor[2]=footcolor[2];
//Bodyguard
-
topcolor[0]=(float)50/255;
-
topcolor[1]=(float)50/255;
-
topcolor[2]=(float)50/255;
-
bottomcolor[0]=(float)30/255;
-
bottomcolor[1]=(float)30/255;
-
bottomcolor[2]=(float)30/255;
-
footcolor[0]=(float)20/255;
-
footcolor[1]=(float)20/255;
-
footcolor[2]=(float)20/255;
-
costume[bodyguardcostume].headcolor[0]=headcolor[0];
-
costume[bodyguardcostume].headcolor[1]=headcolor[1];
-
costume[bodyguardcostume].headcolor[2]=headcolor[2];
-
costume[bodyguardcostume].handcolor[0]=handcolor[0];
-
costume[bodyguardcostume].handcolor[1]=handcolor[1];
-
costume[bodyguardcostume].handcolor[2]=handcolor[2];
-
costume[bodyguardcostume].chestcolor[0]=topcolor[0];
-
costume[bodyguardcostume].chestcolor[1]=topcolor[1];
-
costume[bodyguardcostume].chestcolor[2]=topcolor[2];
-
costume[bodyguardcostume].abdomencolor[0]=topcolor[0];
-
costume[bodyguardcostume].abdomencolor[1]=topcolor[1];
-
costume[bodyguardcostume].abdomencolor[2]=topcolor[2];
-
costume[bodyguardcostume].upperarmcolor[0]=topcolor[0];
-
costume[bodyguardcostume].upperarmcolor[1]=topcolor[1];
-
costume[bodyguardcostume].upperarmcolor[2]=topcolor[2];
-
costume[bodyguardcostume].lowerarmcolor[0]=topcolor[0];
-
costume[bodyguardcostume].lowerarmcolor[1]=topcolor[1];
-
costume[bodyguardcostume].lowerarmcolor[2]=topcolor[2];
-
costume[bodyguardcostume].upperlegcolor[0]=bottomcolor[0];
-
costume[bodyguardcostume].upperlegcolor[1]=bottomcolor[1];
-
costume[bodyguardcostume].upperlegcolor[2]=bottomcolor[2];
-
costume[bodyguardcostume].lowerlegcolor[0]=bottomcolor[0];
-
costume[bodyguardcostume].lowerlegcolor[1]=bottomcolor[1];
-
costume[bodyguardcostume].lowerlegcolor[2]=bottomcolor[2];
-
costume[bodyguardcostume].footcolor[0]=footcolor[0];
-
costume[bodyguardcostume].footcolor[1]=footcolor[1];
-
costume[bodyguardcostume].footcolor[2]=footcolor[2];
// Load animations
@@ -1048,6 +794,26 @@ struct Scores getScores(Game* game)
};
}
+void destroyModels(Game* game)
+{
+ for (unsigned char i = 0; i < 4; ++i) {
+ destroyModel(game->blocks + i);
+ destroyModel(game->blockwalls + i);
+ destroyModel(game->blockroofs + i);
+ destroyModel(game->blockcollide + i);
+ destroyModel(game->blocksimplecollide + i);
+ }
+ destroyModel(&game->sidewalkcollide);
+ destroyModel(&game->blockocclude);
+ destroyModel(&game->blocksimple);
+ destroyModel(&game->street);
+ destroyModel(&game->Bigstreet);
+ for (unsigned char i = 0; i < 10; ++i)
+ destroyModel(skeletonmodels + i);
+ for (unsigned char i = 0; i < 11; ++i)
+ destroyModel(gunmodels + i);
+}
+
void closeGame(Game* game)
{
const GLuint textures[] {
@@ -1060,5 +826,6 @@ void closeGame(Game* game)
glDeleteTextures(5, textures);
alDeleteSources(33 + game->musictoggle * 4, gSourceID);
alDeleteBuffers(33 + game->musictoggle * 4, gSampleSet);
+ destroyModels(game);
destroyDecals(&decals);
}