diff options
Diffstat (limited to 'src/GameInitDispose.cpp')
-rw-r--r-- | src/GameInitDispose.cpp | 318 |
1 files changed, 53 insertions, 265 deletions
diff --git a/src/GameInitDispose.cpp b/src/GameInitDispose.cpp index 0022a07..8c9ea72 100644 --- a/src/GameInitDispose.cpp +++ b/src/GameInitDispose.cpp @@ -114,6 +114,8 @@ void LoadSounds(bool musictoggle) gSampleSet[footstepsound + 2] = loadSound("footstep/2.ogg"); gSampleSet[footstepsound + 3] = loadSound("footstep/3.ogg"); gSampleSet[footstepsound + 4] = loadSound("footstep/4.ogg"); + gSampleSet[pinpullsound] = loadSound("grenade/pin-pull.flac"); + gSampleSet[pinreplacesound] = loadSound("grenade/pin-replace.flac"); gSampleSet[clicksound] = loadSound("gun/empty-clip.wav"); gSampleSet[shotgunsound] = loadSound("gun/fire/20-gauge-shotgun.wav"); gSampleSet[pistol2sound] = loadSound("gun/fire/22-magnum-pistol.wav"); @@ -122,8 +124,6 @@ void LoadSounds(bool musictoggle) gSampleSet[riflesound] = loadSound("gun/fire/ar-15-rifle.wav"); gSampleSet[nearbulletsound] = loadSound("gun/near-bullet.wav"); gSampleSet[reloadsound] = loadSound("gun/reload.wav"); - gSampleSet[pinpullsound] = loadSound("grenade/pin-pull.flac"); - gSampleSet[pinreplacesound] = loadSound("grenade/pin-replace.flac"); gSampleSet[bodylandsound] = loadSound("impact/body-fall.wav"); gSampleSet[bodyhitsound] = loadSound("impact/body-hit.wav"); gSampleSet[knifeslashsound] = loadSound("impact/knife-stab.wav"); @@ -250,7 +250,7 @@ void initGame(Game* game) game->timeremaining = 50; game->difficulty= 0.8f; - ifstream ipstream {"Data/customlevels.txt"}; + ifstream ipstream {"data/customlevels.txt"}; if (ipstream) { ipstream.ignore(256,'\n');//ignore descriptive text ipstream >> game->nummissions; @@ -511,96 +511,32 @@ void initGame(Game* game) // Setup block models if (!game->initialized) { - game->blocks[0].load((char*) ":Data:Models:Block1.solid"); - game->blocks[1].load((char*) ":Data:Models:Block2.solid"); - game->blocks[2].load((char*) ":Data:Models:Block3.solid"); - game->blocks[3].load((char*) ":Data:Models:Block4.solid"); - for (auto&& block : game->blocks) { - block.Rotate(90, 0, 0); - block.Scale(0.8f, 0.8f, 0.8f); - block.CalculateNormals(); - - // Fix block radius - auto& center = block.boundingspherecenter; - center.x = center.y = center.z = 0; - - float radiusqr = 0.0; - for (int x = 0; x < block.vertexNum; x++) { - auto distance = findDistancefast(center, - block.vertex[x]); - if (distance > radiusqr) - radiusqr = distance; - } - block.boundingsphereradius = sqrt(radiusqr); - } - - game->sidewalkcollide.load((char*) ":Data:Models:Lowheightcollide.solid"); - game->sidewalkcollide.Rotate(90, 0, 0); - game->sidewalkcollide.Scale(0.8f, 0.8f, 0.8f); - game->sidewalkcollide.CalculateNormals(); - - game->blockwalls[0].load((char*) ":Data:Models:Block1collide.solid"); - game->blockwalls[1].load((char*) ":Data:Models:Block2collide.solid"); - game->blockwalls[2].load((char*) ":Data:Models:Block3collide.solid"); - game->blockwalls[3].load((char*) ":Data:Models:Block4collide.solid"); - for (auto&& blockwall : game->blockwalls) { - blockwall.Rotate(90, 0, 0); - blockwall.Scale(0.8f, 0.75f, 0.8f); - blockwall.CalculateNormals(); - } - - game->blockroofs[0].load((char*) ":Data:Models:Highblock1collide.solid"); - game->blockroofs[1].load((char*) ":Data:Models:Highblock2collide.solid"); - game->blockroofs[2].load((char*) ":Data:Models:Highblock3collide.solid"); - game->blockroofs[3].load((char*) ":Data:Models:Highblock4collide.solid"); - for (auto&& blockroof : game->blockroofs) { - blockroof.Rotate(90, 0, 0); - blockroof.Scale(0.8f, 0.8f, 0.8f); - blockroof.CalculateNormals(); - } - - game->blockcollide[0].load((char*) ":Data:Models:block1complete.solid"); - game->blockcollide[1].load((char*) ":Data:Models:block2complete.solid"); - game->blockcollide[2].load((char*) ":Data:Models:block3complete.solid"); - game->blockcollide[3].load((char*) ":Data:Models:block4complete.solid"); - for (auto&& blockcollide : game->blockcollide) { - blockcollide.Rotate(90, 0, 0); - blockcollide.Scale(0.8f, 0.8f, 0.8f); - blockcollide.CalculateNormals(); - } - - game->blocksimplecollide[0].load((char*) ":Data:Models:lowsimplecollide1.solid"); - game->blocksimplecollide[1].load((char*) ":Data:Models:lowsimplecollide2.solid"); - game->blocksimplecollide[2].load((char*) ":Data:Models:lowsimplecollide3.solid"); - game->blocksimplecollide[3].load((char*) ":Data:Models:lowsimplecollide4.solid"); - for (auto&& blocksimplecollide : game->blocksimplecollide) { - blocksimplecollide.Rotate(90, 0, 0); - blocksimplecollide.Scale(0.8f, 0.8f, 0.8f); - blocksimplecollide.CalculateNormals(); - } - - game->blockocclude.load((char*) ":Data:Models:blockocclude.solid"); - game->blockocclude.Rotate(90, 0, 0); - game->blockocclude.Scale(0.8f, 0.8f, 0.8f); - game->blockocclude.CalculateNormals(); - - game->blocksimple.load((char*) ":Data:Models:blocksimple.solid"); - game->blocksimple.Rotate(90, 0, 0); - game->blocksimple.Scale(0.8f, 2.0f, 0.8f); - game->blocksimple.CalculateNormals(); - - game->street.load((char*) ":Data:Models:streetsubdivided2.solid"); - game->street.Rotate(90,0,0); - game->street.Scale(0.01f, 0.01f, 0.01f); - game->street.CalculateNormals(); - - game->Bigstreet = game->street; - game->Bigstreet.Scale(10000.0f, 10000.0f, 10000.0f); - - game->path.load((char*) ":Data:Models:path.solid"); - game->path.Rotate(90,0,0); - game->path.Scale(0.8f, 0.8f, 0.8f); - game->path.CalculateNormals(); + 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]; @@ -662,163 +598,30 @@ void initGame(Game* game) } if (!game->initialized) { - //Load player model - skeletonmodels[0].load((char*) ":Data:Models:Head.solid"); - skeletonmodels[0].Rotate(90,0,0); - skeletonmodels[0].Scale(.02,.02,.02); - skeletonmodels[0].CalculateNormals(); - skeletonmodels[1].load((char*) ":Data:Models:Chest.solid"); - skeletonmodels[1].Rotate(90,0,0); - skeletonmodels[1].Scale(.02,.02,.02); - skeletonmodels[1].CalculateNormals(); - skeletonmodels[2].load((char*) ":Data:Models:Abdomen.solid"); - skeletonmodels[2].Rotate(90,0,0); - skeletonmodels[2].Scale(.02,.02,.02); - skeletonmodels[2].CalculateNormals(); - skeletonmodels[3].load((char*) ":Data:Models:Upper arm.solid"); - skeletonmodels[3].Rotate(90,0,0); - skeletonmodels[3].Scale(.02,.02,.02); - skeletonmodels[3].CalculateNormals(); - skeletonmodels[4].load((char*) ":Data:Models:Lower arm.solid"); - skeletonmodels[4].Rotate(90,0,0); - skeletonmodels[4].Scale(.02,.02,.02); - skeletonmodels[4].CalculateNormals(); - skeletonmodels[5].load((char*) ":Data:Models:Hand.solid"); - skeletonmodels[5].Rotate(90,0,0); - skeletonmodels[5].Scale(.02,.02,.02); - skeletonmodels[5].CalculateNormals(); - skeletonmodels[6].load((char*) ":Data:Models:Upper leg.solid"); - skeletonmodels[6].Rotate(90,0,0); - skeletonmodels[6].Scale(.02,.02,.02); - skeletonmodels[6].CalculateNormals(); - skeletonmodels[7].load((char*) ":Data:Models:Lower leg.solid"); - skeletonmodels[7].Rotate(90,0,0); - skeletonmodels[7].Scale(.02,.02,.02); - skeletonmodels[7].CalculateNormals(); - skeletonmodels[8].load((char*) ":Data:Models:Foot.solid"); - skeletonmodels[8].Rotate(90,0,0); - skeletonmodels[8].Scale(.02,.02,.02); - skeletonmodels[8].CalculateNormals(); - skeletonmodels[9].load((char*) ":Data:Models:Shades.solid"); - skeletonmodels[9].Rotate(90,0,0); - skeletonmodels[9].Scale(.02,.02,.02); - skeletonmodels[9].CalculateNormals(); - - //Load gun models - gunmodels[sniperriflemodel].load((char*) ":Data:Models:sniperrifle.solid"); - - gunmodels[sniperriflemodel].Rotate(0,0,90); - - gunmodels[sniperriflemodel].Scale(.001,.001,.001); - - gunmodels[sniperriflemodel].CalculateNormals(); - - gunmodels[assaultriflemodel].load((char*) ":Data:Models:assaultrifle.solid"); - - gunmodels[assaultriflemodel].Rotate(0,0,90); - - gunmodels[assaultriflemodel].Scale(.01,.01,.01); - - gunmodels[assaultriflemodel].CalculateNormals(); - - gunmodels[handgunbasemodel].load((char*) ":Data:Models:Handgunbase.solid"); - - gunmodels[handgunbasemodel].Rotate(0,0,90); - - gunmodels[handgunbasemodel].Rotate(180,0,0); - - gunmodels[handgunbasemodel].Scale(.014,.014,.014); - - gunmodels[handgunbasemodel].CalculateNormals(); - - gunmodels[handgunbasemodel].MultColor(.6); - - gunmodels[handgunslidemodel].load((char*) ":Data:Models:Handgunslide.solid"); - - gunmodels[handgunslidemodel].Rotate(0,0,90); - - gunmodels[handgunslidemodel].Rotate(180,0,0); - - gunmodels[handgunslidemodel].Scale(.014,.014,.014); - - gunmodels[handgunslidemodel].CalculateNormals(); - - gunmodels[handgunslidemodel].MultColor(.6); - - gunmodels[handgun2basemodel].load((char*) ":Data:Models:glockbase.solid"); - - gunmodels[handgun2basemodel].Rotate(0,0,90); - - gunmodels[handgun2basemodel].Rotate(180,0,0); - - gunmodels[handgun2basemodel].Scale(.014,.014,.014); - - gunmodels[handgun2basemodel].CalculateNormals(); - - gunmodels[handgun2basemodel].MultColor(.6); - - gunmodels[handgun2slidemodel].load((char*) ":Data:Models:glockslide.solid"); - - gunmodels[handgun2slidemodel].Rotate(0,0,90); - - gunmodels[handgun2slidemodel].Rotate(180,0,0); - - gunmodels[handgun2slidemodel].Scale(.014,.014,.014); - - gunmodels[handgun2slidemodel].CalculateNormals(); - - gunmodels[handgun2slidemodel].MultColor(.6); - - gunmodels[grenadebasemodel].load((char*) ":Data:Models:grenadebase.solid"); - - gunmodels[grenadebasemodel].Rotate(0,0,90); - - gunmodels[grenadebasemodel].Rotate(180,0,0); - - gunmodels[grenadebasemodel].Scale(.014,.014,.014); - - gunmodels[grenadebasemodel].CalculateNormals(); - - gunmodels[grenadepinmodel].load((char*) ":Data:Models:grenadepin.solid"); - - gunmodels[grenadepinmodel].Rotate(0,0,90); - - gunmodels[grenadepinmodel].Rotate(180,0,0); - - gunmodels[grenadepinmodel].Scale(.014,.014,.014); - - gunmodels[grenadepinmodel].CalculateNormals(); - - gunmodels[grenadespoonmodel].load((char*) ":Data:Models:grenadespoon.solid"); - - gunmodels[grenadespoonmodel].Rotate(0,0,90); - - gunmodels[grenadespoonmodel].Rotate(180,0,0); - - gunmodels[grenadespoonmodel].Scale(.014,.014,.014); - - gunmodels[grenadespoonmodel].CalculateNormals(); - - gunmodels[knifemodel].load((char*) ":Data:Models:Knife.solid"); - - gunmodels[knifemodel].Rotate(0,0,90); - - gunmodels[knifemodel].Rotate(180,0,0); - - gunmodels[knifemodel].Scale(.014,.014,.014); - - gunmodels[knifemodel].CalculateNormals(); - - gunmodels[shotgunmodel].load((char*) ":Data:Models:shotgun.solid"); - - gunmodels[shotgunmodel].Rotate(0,0,90); - - gunmodels[shotgunmodel].Scale(.001,.001,.001); - - gunmodels[shotgunmodel].CalculateNormals(); - - gunmodels[shotgunmodel].MultColor(.6); - + // 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 @@ -829,35 +632,20 @@ void initGame(Game* game) float bottomcolor[3]; //Police - 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; - topcolor[0]=(float)14/255; - topcolor[1]=(float)18/255; - topcolor[2]=(float)195/255; - bottomcolor[0]=(float)14/255; - bottomcolor[1]=(float)18/255; - bottomcolor[2]=(float)195/255; // Greenish skin if zombies |