From 8e64a5d9ff4e50967dbeb4323256e104aec4c691 Mon Sep 17 00:00:00 2001 From: faketruth Date: Wed, 26 Oct 2011 13:27:16 +0000 Subject: Updated VS2010 project files Made monster spawning code in cWorld.cpp a bit more compact and readable srand() is only supposed to be called once in the whole program, and it's already called in the constructor of cWorld so it doesn't have to be in cWorld::Tick() git-svn-id: http://mc-server.googlecode.com/svn/trunk@14 0a769ca7-a7f5-676a-18bf-c427514a06d6 --- source/cWorld.cpp | 147 ++++++++++++++++-------------------------------------- 1 file changed, 43 insertions(+), 104 deletions(-) (limited to 'source') diff --git a/source/cWorld.cpp b/source/cWorld.cpp index aa1c8ba22..54fd090dc 100644 --- a/source/cWorld.cpp +++ b/source/cWorld.cpp @@ -330,26 +330,9 @@ void cWorld::Tick(float a_Dt) m_SpawnMonsterTime = m_Time; if( m_pState->m_Players.size() > 0 ) { + cMonster *Monster = 0; - cChicken *Chicken; - cCow *Cow; - cPig *Pig; - cSheep *Sheep; - cSquid *Squid; - cWolf *Wolf; - - cSpider *Spider; - cZombie *Zombie; - cEnderman *Enderman; - cCreeper *Creeper; - cGhast *Ghast; - cCavespider *Cavespider; - cZombiepigman *Zombiepigman; - cSkeleton *Skeleton; - cSlime *Slime; - cSilverfish *Silverfish; - - srand ( time(NULL) ); //added mob code + //srand ( time(NULL) ); // Only seed random ONCE! Is already done in the cWorld constructor int dayRand = rand() % 6; //added mob code int nightRand = rand() % 10; //added mob code @@ -363,95 +346,51 @@ void cWorld::Tick(float a_Dt) SpawnPos += Vector3d( (double)(rand()%64)-32, (double)(rand()%64)-32, (double)(rand()%64)-32 ); char Height = GetHeight( (int)SpawnPos.x, (int)SpawnPos.z ); - //cMonster* Monster = new cChicken(); if(m_WorldTime >= 12000 + 1000) { - if (nightRand == 0) { //random percent to spawn for night - Spider = new cSpider(); - Spider->Initialize(); - Spider->TeleportTo( SpawnPos.x, (double)(Height)+2, SpawnPos.z ); - Spider->SpawnOn( 0 ); - } else if (nightRand == 1) { - Zombie = new cZombie(); - Zombie->Initialize(); - Zombie->TeleportTo( SpawnPos.x, (double)(Height)+2, SpawnPos.z ); - Zombie->SpawnOn( 0 ); - } else if (nightRand == 2) { - Enderman = new cEnderman(); - Enderman->Initialize(); - Enderman->TeleportTo( SpawnPos.x, (double)(Height)+2, SpawnPos.z ); - Enderman->SpawnOn( 0 ); - } else if (nightRand == 3) { - Creeper = new cCreeper(); - Creeper->Initialize(); - Creeper->TeleportTo( SpawnPos.x, (double)(Height)+2, SpawnPos.z ); - Creeper->SpawnOn( 0 ); - } else if (nightRand == 4) { - Cavespider = new cCavespider(); - Cavespider->Initialize(); - Cavespider->TeleportTo( SpawnPos.x, (double)(Height)+2, SpawnPos.z ); - Cavespider->SpawnOn( 0 ); - } else if (nightRand == 5) { - Ghast = new cGhast(); - Ghast->Initialize(); - Ghast->TeleportTo( SpawnPos.x, (double)(Height)+2, SpawnPos.z ); - Ghast->SpawnOn( 0 ); - } else if (nightRand == 6) { - Zombiepigman = new cZombiepigman(); - Zombiepigman->Initialize(); - Zombiepigman->TeleportTo( SpawnPos.x, (double)(Height)+2, SpawnPos.z ); - Zombiepigman->SpawnOn( 0 ); - } else if (nightRand == 7) { - Slime = new cSlime(); - Slime->Initialize(); - Slime->TeleportTo( SpawnPos.x, (double)(Height)+2, SpawnPos.z ); - Slime->SpawnOn( 0 ); - } else if (nightRand == 8) { - Silverfish = new cSilverfish(); - Silverfish->Initialize(); - Silverfish->TeleportTo( SpawnPos.x, (double)(Height)+2, SpawnPos.z ); - Silverfish->SpawnOn( 0 ); - } else if (nightRand == 9) { - Skeleton = new cSkeleton(); - Skeleton->Initialize(); - Skeleton->TeleportTo( SpawnPos.x, (double)(Height)+2, SpawnPos.z ); - Skeleton->SpawnOn( 0 ); - } //end random percent to spawn for night + if (nightRand == 0) //random percent to spawn for night + Monster = new cSpider(); + else if (nightRand == 1) + Monster = new cZombie(); + else if (nightRand == 2) + Monster = new cEnderman(); + else if (nightRand == 3) + Monster = new cCreeper(); + else if (nightRand == 4) + Monster = new cCavespider(); + else if (nightRand == 5) + Monster = new cGhast(); + else if (nightRand == 6) + Monster = new cZombiepigman(); + else if (nightRand == 7) + Monster = new cSlime(); + else if (nightRand == 8) + Monster = new cSilverfish(); + else if (nightRand == 9) + Monster = new cSkeleton(); + //end random percent to spawn for night } else { - if (dayRand == 0) { //random percent to spawn for day - Chicken = new cChicken(); - Chicken->Initialize(); - Chicken->TeleportTo( SpawnPos.x, (double)(Height)+2, SpawnPos.z ); - Chicken->SpawnOn( 0 ); - } else if (dayRand == 1) { - Cow = new cCow(); - Cow->Initialize(); - Cow->TeleportTo( SpawnPos.x, (double)(Height)+2, SpawnPos.z ); - Cow->SpawnOn( 0 ); - } else if (dayRand == 2) { - Pig = new cPig(); - Pig->Initialize(); - Pig->TeleportTo( SpawnPos.x, (double)(Height)+2, SpawnPos.z ); - Pig->SpawnOn( 0 ); - } else if (dayRand == 3) { - Sheep = new cSheep(); - Sheep->Initialize(); - Sheep->TeleportTo( SpawnPos.x, (double)(Height)+2, SpawnPos.z ); - Sheep->SpawnOn( 0 ); - } else if (dayRand == 4) { - Squid = new cSquid(); - Squid->Initialize(); - Squid->TeleportTo( SpawnPos.x, (double)(Height)+2, SpawnPos.z ); - Squid->SpawnOn( 0 ); - } else if (dayRand == 5) { - Wolf = new cWolf(); - Wolf->Initialize(); - Wolf->TeleportTo( SpawnPos.x, (double)(Height)+2, SpawnPos.z ); - Wolf->SpawnOn( 0 ); - } //end random percent to spawn for day + if (dayRand == 0) //random percent to spawn for day + Monster = new cChicken(); + else if (dayRand == 1) + Monster = new cCow(); + else if (dayRand == 2) + Monster = new cPig(); + else if (dayRand == 3) + Monster = new cSheep(); + else if (dayRand == 4) + Monster = new cSquid(); + else if (dayRand == 5) + Monster = new cWolf(); + //end random percent to spawn for day + } + + if( Monster ) + { + Monster->Initialize(); + Monster->TeleportTo( SpawnPos.x, (double)(Height)+2, SpawnPos.z ); + Monster->SpawnOn( 0 ); } - //Monster->TeleportTo( SpawnPos.x, (double)(Height)+2, SpawnPos.z ); - //Monster->SpawnOn( 0 ); } } } -- cgit v1.2.3