summary refs log tree commit diff
path: root/src/GameInitDispose.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/GameInitDispose.cpp')
-rw-r--r--src/GameInitDispose.cpp318
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