home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
PC World 2006 July & August
/
PCWorld_2006-07-08_cd.bin
/
temacd
/
planearcade
/
planearcade.exe
/
Tank3.bmp
/
level.cpp
< prev
next >
Wrap
C/C++ Source or Header
|
2004-09-30
|
78KB
|
2,352 lines
#include "main.h"
//------------------
//Global
//------------------
LEVEL Level;
//Inicializacia
//------------------------------------------------------------------
void LEVEL::Initialize()
{
int i;
//
//Krajina
// Krajina.Load("scene/terrain.geo");
// Krajina.SaveScene("scene/terrain.scn");
Krajina.LoadScene("scene/terrain.geo","scene/terrain.scn");
// Krajina.CreateOctTree();
// Krajina.SaveOctTree("scene/terrain.oct");
Krajina.LoadOctTree("scene/terrain.oct");
//-------------------
//objekty a lietadla
//-------------------
//
//Messerschmitt
for (i=0;i<Max_MesserSchmitt;i++)
{
MesserSchmitt[i].Initialize();
}
//
//Volkers
for (i=0;i<Max_Volkers;i++)
{
Volker[i].Initialize();
}
//
//Bombardery
for (i=0;i<Max_Bombarders;i++)
{
Bombarder[i].Initialize();
}
//
//Structure
for (i=0;i<Max_Structures;i++)
{
Structure[i].Initialize();
}
//
//Truck
for (i=0;i<Max_Trucks;i++)
{
Truck[i].Initialize();
}
//----------
//reset
//----------
DestroyLevel();
}
//pridaj messerschmitt
//------------------------------------------------------------------
void LEVEL::AddMesserSchmitt(int Index,int Life,int Mode,VECTOR3D Pos,VECTOR3D Rot, float OnTime)
{
//ak je deaktivovany
if (MesserSchmitt[Index].Active == false &&
StageTime >= OnTime && StageTime <= OnTime+3.0f)
{
MesserSchmitt[Index].Reset();
MesserSchmitt[Index].Life = Life;
MesserSchmitt[Index].Mode = Mode;
MesserSchmitt[Index].Pos = Pos;
MesserSchmitt[Index].Rot = Rot;
MesserSchmitt[Index].Active = true;
}
}
//pridaj messerschmitt quick
//------------------------------------------------------------------
void LEVEL::AddMesserSchmittQuick(int Index,int Life,int Mode,VECTOR3D Pos,VECTOR3D Rot)
{
//ak je deaktivovany
if (MesserSchmitt[Index].Active == false)
{
MesserSchmitt[Index].Reset();
MesserSchmitt[Index].Life = Life;
MesserSchmitt[Index].Mode = Mode;
MesserSchmitt[Index].Pos = Pos;
MesserSchmitt[Index].Rot = Rot;
MesserSchmitt[Index].Active = true;
}
}
//pridaj Volker
//------------------------------------------------------------------
void LEVEL::AddVolker(int Index,int Life,VECTOR3D Pos,VECTOR3D Rot, float OnTime)
{
//ak je deaktivovany
if (Volker[Index].Active == false &&
StageTime >= OnTime && StageTime <= OnTime+3.0f)
{
Volker[Index].Reset();
Volker[Index].Life = Life;
Volker[Index].Pos = Pos;
Volker[Index].Rot = Rot;
Volker[Index].Active = true;
}
}
//pridaj volker quick
//------------------------------------------------------------------
void LEVEL::AddVolkerQuick(int Index,int Life,VECTOR3D Pos,VECTOR3D Rot)
{
//ak je deaktivovany
if (Volker[Index].Active == false)
{
Volker[Index].Reset();
Volker[Index].Life = Life;
Volker[Index].Pos = Pos;
Volker[Index].Rot = Rot;
Volker[Index].Active = true;
}
}
//pridaj Volker
//------------------------------------------------------------------
void LEVEL::AddBombarder(int Index,int Life,int Mode,VECTOR3D Target,VECTOR3D Pos, VECTOR3D Rot, float OnTime)
{
//ak je deaktivovany
if (Bombarder[Index].Active == false &&
StageTime >= OnTime && StageTime <= OnTime+3.0f)
{
Bombarder[Index].Reset();
Bombarder[Index].Mode = Mode;
Bombarder[Index].Life = Life;
Bombarder[Index].Pos = Pos;
Bombarder[Index].Rot = Rot;
Bombarder[Index].Target = Target;
Bombarder[Index].Active = true;
}
}
//pridaj protilietadlove delo
//-----------------------------------------------------------
void LEVEL::AddTruck(int Index, int Mode,VECTOR3D Pos, VECTOR3D Rot)
{
if (StageTime != 0.0f)
return;
//zisti koliziu
if (Krajina.ColliseDistance(Get3D(Pos.X,1000.0f,Pos.Z),
Get3D(Pos.X,-1000.0f,Pos.Z)) != true)
{
return;
}
Truck[Index].Active = true;
Truck[Index].Pos = Krajina.IntPos;
Truck[Index].Rot = Rot;
//primary target
if (Mode == 0)
{
Truck[Index].Target = true;
}
//second target
if (Mode == 1)
{
Truck[Index].Target = false;
}
}
//pridaj objekt - dom
//------------------------------------------------------------
void LEVEL::AddStructure(int Index,int ModelIndex,int Mode, VECTOR3D Pos, VECTOR3D Rot)
{
if (StageTime != 0.0f)
return;
//---------
//Obecne
//---------
//zisti koliziu
if (Krajina.ColliseDistance(Get3D(Pos.X,1000.0f,Pos.Z),
Get3D(Pos.X,-1000.0f,Pos.Z)) != true)
{
return;
}
Structure[Index].Pos = Krajina.IntPos;
Structure[Index].Pos.Y = Krajina.IntPos.Y + Pos.Y;
Structure[Index].Rot = Rot;
Structure[Index].ModelIndex = ModelIndex;
Structure[Index].Active = true;
//--------------------------
//nastavi podla typu budovy
//--------------------------
//nastavi budovu
if (ModelIndex == Index_Structure_Budova)
{
Structure[Index].Life = 320;
Structure[Index].NumSmokePoints = 2;
Structure[Index].SmokePoint[0] = Get3D(-35.0f,40.0f,0.0f);
Structure[Index].SmokePoint[1] = Get3D(35.0f,40.0f,0.0f);
}
//nastavi tovaren
if (ModelIndex == Index_Structure_Tovaren)
{
Structure[Index].Life = 500;
Structure[Index].NumSmokePoints = 3;
Structure[Index].SmokePoint[0] = Get3D(-40.0f,50.0f,0.0f);
Structure[Index].SmokePoint[1] = Get3D(40.0f,50.0f,0.0f);
Structure[Index].SmokePoint[2] = Get3D(0.0f,50.0f,30.0f);
}
//nastavi komin
if (ModelIndex == Index_Structure_Komin)
{
Structure[Index].Life = 300;
Structure[Index].NumSmokePoints = 1;
Structure[Index].SmokePoint[0] = Get3D(0.0f,135.0f,0.0f);
}
//nastavi sklad
if (ModelIndex == Index_Structure_Sklad)
{
Structure[Index].Life = 350;
Structure[Index].NumSmokePoints = 2;
Structure[Index].SmokePoint[0] = Get3D(-25.0f,45.0f,0.0f);
Structure[Index].SmokePoint[1] = Get3D(25.0f,37.0f,0.0f);
}
//nastavi stan
if (ModelIndex == Index_Structure_Stan)
{
Structure[Index].Life = 200;
Structure[Index].NumSmokePoints = 1;
Structure[Index].SmokePoint[0] = Get3D(0.0f,20.0f,0.0f);
}
//nastavi letisko
if (ModelIndex == Index_Structure_Letisko)
{
Structure[Index].Life = 300;
Structure[Index].NumSmokePoints = 1;
Structure[Index].SmokePoint[0] = Get3D(0.0f,5.0f,0.0f);
}
//nastavi Hangar
if (ModelIndex == Index_Structure_Hangar)
{
Structure[Index].Life = 330;
Structure[Index].NumSmokePoints = 2;
Structure[Index].SmokePoint[0] = Get3D(40.0f,50.0f,0.0f);
Structure[Index].SmokePoint[1] = Get3D(-40.0f,50.0f,0.0f);
}
//nastavi Dom1
if (ModelIndex == Index_Structure_Dom1)
{
Structure[Index].Life = 380;
Structure[Index].NumSmokePoints = 1;
Structure[Index].SmokePoint[0] = Get3D(0.0f,30.0f,0.0f);
}
//nastavi Dom2
if (ModelIndex == Index_Structure_Dom2)
{
Structure[Index].Life = 380;
Structure[Index].NumSmokePoints = 1;
Structure[Index].SmokePoint[0] = Get3D(0.0f,30.0f,0.0f);
}
//nastavi Kostol
if (ModelIndex == Index_Structure_Kostol)
{
Structure[Index].Life = 380;
Structure[Index].NumSmokePoints = 2;
Structure[Index].SmokePoint[0] = Get3D(-40.0f,82.0f,0.0f);
Structure[Index].SmokePoint[1] = Get3D(40.0f,82.0f,0.0f);
}
//nastavi Tank1
if (ModelIndex == Index_Structure_Tank1)
{
Structure[Index].Life = 300;
Structure[Index].NumSmokePoints = 1;
Structure[Index].SmokePoint[0] = Get3D(0.0f,20.0f,0.0f);
}
//nastavi Tank2
if (ModelIndex == Index_Structure_Tank2)
{
Structure[Index].Life = 300;
Structure[Index].NumSmokePoints = 1;
Structure[Index].SmokePoint[0] = Get3D(0.0f,20.0f,0.0f);
}
//nastavi Conv1
if (ModelIndex == Index_Structure_Conv1)
{
Structure[Index].Life = 200;
Structure[Index].NumSmokePoints = 1;
Structure[Index].SmokePoint[0] = Get3D(0.0f,20.0f,0.0f);
}
//nastavi Conv2
if (ModelIndex == Index_Structure_Conv2)
{
Structure[Index].Life = 200;
Structure[Index].NumSmokePoints = 1;
Structure[Index].SmokePoint[0] = Get3D(0.0f,20.0f,0.0f);
}
//nastavi Plane
if (ModelIndex == Index_Structure_Plane)
{
Structure[Index].Life = 130;
Structure[Index].NumSmokePoints = 1;
Structure[Index].SmokePoint[0] = Get3D(0.0f,10.0f,0.0f);
}
//stastavi mesto1
if (ModelIndex == Index_Structure_Mesto1)
{
Structure[Index].Life = 500;
Structure[Index].NumSmokePoints = 4;
Structure[Index].SmokePoint[0] = Get3D(30.0f,70.0f,50.0f);
Structure[Index].SmokePoint[1] = Get3D(-30.0f,70.0f,50.0f);
Structure[Index].SmokePoint[2] = Get3D(-30.0f,70.0f,-50.0f);
Structure[Index].SmokePoint[3] = Get3D(30.0f,70.0f,-50.0f);
}
//stastavi mesto2
if (ModelIndex == Index_Structure_Mesto2)
{
Structure[Index].Life = 400;
Structure[Index].NumSmokePoints = 3;
Structure[Index].SmokePoint[0] = Get3D(50.0f,70.0f,50.0f);
Structure[Index].SmokePoint[1] = Get3D(50.0f,70.0f,-50.0f);
Structure[Index].SmokePoint[2] = Get3D(-50.0f,70.0f,-50.0f);
}
//stastavi mesto3
if (ModelIndex == Index_Structure_Mesto3)
{
Structure[Index].Life = 350;
Structure[Index].NumSmokePoints = 2;
Structure[Index].SmokePoint[0] = Get3D(0.0f,70.0f,50.0f);
Structure[Index].SmokePoint[1] = Get3D(0.0f,65.0f,-50.0f);
}
//stastavi mesto4
if (ModelIndex == Index_Structure_Mesto4)
{
Structure[Index].Life = 500;
Structure[Index].NumSmokePoints = 4;
Structure[Index].SmokePoint[0] = Get3D(30.0f,70.0f,50.0f);
Structure[Index].SmokePoint[1] = Get3D(-30.0f,70.0f,50.0f);
Structure[Index].SmokePoint[2] = Get3D(-30.0f,70.0f,-50.0f);
Structure[Index].SmokePoint[3] = Get3D(30.0f,70.0f,-50.0f);
}
//nastavi stromy a billboard
if (ModelIndex == Index_Structure_BillBoard ||
ModelIndex == Index_Structure_Strom1 ||
ModelIndex == Index_Structure_Strom2 ||
ModelIndex == Index_Structure_Strom3 ||
ModelIndex == Index_Structure_Strom4 ||
ModelIndex == Index_Structure_Palma1 ||
ModelIndex == Index_Structure_Palma2)
{
Structure[Index].Life = 30000;
Structure[Index].NumSmokePoints = 0;
}
//------------
//Mody
//------------
//primary target
if (Mode == 0)
{
Structure[Index].Target = true;
Structure[Index].Friendly = false;
}
//neutral
if (Mode == 1)
{
Structure[Index].Target = false;
Structure[Index].Friendly = false;
}
//priatelsky
if (Mode == 2)
{
Structure[Index].Target = false;
Structure[Index].Friendly = true;
}
//znicene
if (Mode == 3)
{
Structure[Index].Destroyed = true;
Structure[Index].Normal = false;
Structure[Index].Target = false;
Structure[Index].Friendly = false;
Structure[Index].ActiveTime = 48000.0f;
}
}
//znici budovu
//------------------------------------------------------------------
void LEVEL::DestroyStructure(int Index)
{
Structure[Index].Destroyed = true;
Structure[Index].Normal = false;
Structure[Index].Target = false;
Structure[Index].Friendly = false;
Structure[Index].ActiveTime = 48000.0f;
}
//priprava na spustenie hry
//------------------------------------------------------------------
void LEVEL::StartGame(int Level)
{
DestroyLevel();
SpitFire.Reset();
Score.Reset();
LevelIndex = Level;
Menu.LoadBriefring(Level);
}
// znicenie - na konci celej hry
//------------------------------------------------------------------
void LEVEL::Destroy()
{
//
//Krajina
Krajina.CleanUp();
}
//reset na konci hry
//------------------------------------------------------------------
void LEVEL::DestroyLevel()
{
int i;
//
//Level
StageTime = 0.0f;
//
//Zasobniky casov
TimeBuffer1 = 0.0f;
TimeBuffer2 = 0.0f;
TimeBuffer3 = 0.0f;
TimeBuffer4 = 0.0f;
TimeBuffer5 = 0.0f;
//
//Messerschmitt
for (i=0;i<Max_MesserSchmitt;i++)
{
MesserSchmitt[i].Reset();
}
//
//Volkers
for (i=0;i<Max_Volkers;i++)
{
Volker[i].Reset();
}
//
//Bombardery
for (i=0;i<Max_Bombarders;i++)
{
Bombarder[i].Reset();
}
//
//Structures
for (i=0;i<Max_Structures;i++)
{
Structure[i].Reset();
}
//
//Truck
for (i=0;i<Max_Trucks;i++)
{
Truck[i].Reset();
}
}
//zastav vsetky zvuky
//------------------------------------------------------------------
void LEVEL::StopAllSounds()
{
int i;
//
//MesserSchmitt
for (i=0;i<Max_MesserSchmitt;i++)
{
MesserSchmitt[i].StopSound();
}
//
//Volkers
for (i=0;i<Max_Volkers;i++)
{
Volker[i].StopSound();
}
//
//Bombardery
for (i=0;i<Max_Bombarders;i++)
{
Bombarder[i].StopSound();
}
//
//SpitFire
SpitFire.StopSound();
}
//obnovi vsetko
//------------------------------------------------------------------
void LEVEL::Refresh()
{
int i;
//zapni hmlu
Engine.SetFog(true);
//
//Krajina
//----------
Krajina.Render();
//
//Messerschmitt
//--------------
for (i=0;i<Max_MesserSchmitt;i++)
{
MesserSchmitt[i].Refresh();
}
//
//Volker
//--------------
for (i=0;i<Max_Volkers;i++)
{
Volker[i].Refresh();
}
//Bombarderi
//---------------
for (i=0;i<Max_Bombarders;i++)
{
Bombarder[i].Refresh();
}
//Structures
//-------------
for (i=0;i<Max_Structures;i++)
{
Structure[i].Refresh();
}
//Truck
//-------------
for (i=0;i<Max_Trucks;i++)
{
Truck[i].Refresh();
}
//vypni hmlu
Engine.SetFog(false);
}
//pridavanie levelov
//-----------------------------------------------------------------
void LEVEL::ProccesLevel()
{
switch (LevelIndex)
{
//----------
//Battle
//---------
case 0:
//Structures
//---------
AddDesertBasic();
//Vehicles
//----------
AddMesserSchmittQuick(0,110,0,Get3D(0.0f,600.0f,5300.0f),Get3D(0.0f,0.0f,0.0f));
AddMesserSchmittQuick(1,110,0,Get3D(4500.0f,600.0f,-4300.0f),Get3D(0.0f,0.0f,0.0f));
AddMesserSchmittQuick(2,110,1,Get3D(4000.0f,600.0f,3000.0f),Get3D(0.0f,0.0f,0.0f));
AddVolkerQuick(3,150,Get3D(3000.0f,600.0f,7300.0f),Get3D(0.0f,0.0f,0.0f));
AddVolkerQuick(4,150,Get3D(-4500.0f,600.0f,-8300.0f),Get3D(0.0f,0.0f,0.0f));
//configuracia
//--------------
MaxTime = StageTime;
if(StageTime == 0.0f)
{
SpitFire.Pos = Get3D(0.0f,400.0f,-4000.0f);
SpitFire.Bombs = 5;
SpitFire.ModelMode = 2;
Krajina.Mode = 1;
}
//Skript
//----------
break;
//---------
//Level1
//---------
case 1:
//Structures
//----------
AddCountryBasic();
//configuracia
//--------------
if(StageTime == 0.0f)
{
MaxTime = 300.0f;
SpitFire.Pos = Get3D(0.0f,500.0f,-4000.0f);
SpitFire.Bombs = 5;
SpitFire.ModelMode = 1;
Krajina.Mode = 0;
}
//Skript
//----------
//mission completed
if (SpitFire.Pos.X > -7000.0f && SpitFire.Pos.X < -6000.0f &&
SpitFire.Pos.Z > 4000.0f && SpitFire.Pos.Z < 5000.0f &&
StageTime > 73.0f)
{
SpitFire.MissionCompleted();
}
if (StageTime > 3.0f && StageTime < 4.0f)
{
SpitFire.DrawMessage("Welcome in Plane Arcade!",
"Vφtßm t∞ ve h°e Plane Arcade",3.0f);
}
if (StageTime > 8.0f && StageTime < 9.0f)
{
SpitFire.DrawMessage("This is a training mission",
"Tohle je v²ukovß mise",3.0f);
}
if (StageTime > 13.0f && StageTime < 14.0f)
{
SpitFire.DrawMessage("Take your mouse to the right hand",
"Popadni myÜ pravou rukou",3.0f);
}
if (StageTime > 18.0f && StageTime < 19.0f)
{
SpitFire.DrawMessage("Left hand leave on the keybord",
"Levou ruku polo₧ na klßvesnici",3.0f);
}
if (StageTime > 23.0f && StageTime < 24.0f)
{
SpitFire.DrawMessage("Using arrows you can change point of wiew",
"èipkami m∙₧eÜ m∞nit pohled kamery",3.0f);
}
if (StageTime > 28.0f && StageTime < 29.0f)
{
SpitFire.DrawMessage("Ctrl,Shift are used for control speed of the plane",
"Klßvesami CTRL a SHIFT lze m∞nit otßΦky motoru",3.0f);
}
if (StageTime > 33.0f && StageTime < 34.0f)
{
SpitFire.DrawMessage("At the right corner there is a revmeter",
"V pravo dole je otßΦkom∞r ",3.0f);
}
if (StageTime > 38.0f && StageTime < 39.0f)
{
SpitFire.DrawMessage("and also a number showing number of bombs",
"Je tam i Φφslo kterΘ udßva poΦet bomb",3.0f);
}
if (StageTime > 43.0f && StageTime < 44.0f)
{
SpitFire.DrawMessage("For now only five bombs",
"Nynφ mßÜ 5 bomb",3.0f);
}
if (StageTime > 48.0f && StageTime < 49.0f)
{
SpitFire.DrawMessage("Drop the bomb with right click",
"ShodφÜ je stisknutφm pravΘho tlaΦφtka myÜi",3.0f);
}
if (StageTime > 53.0f && StageTime < 54.0f)
{
SpitFire.DrawMessage("Machinegun is left click",
"JeÜte si vyzkouÜej kulomet - levΘ tlaΦφtko myÜi",3.0f);
}
if (StageTime > 58.0f && StageTime < 59.0f)
{
SpitFire.DrawMessage("If you forgot what is your goal press the ESC key",
"Kdy₧ zapomeneÜ tv∙j ·kol stiskni Escape",3.0f);
}
if (StageTime > 63.0f && StageTime < 64.0f)
{
SpitFire.DrawMessage("So here is the order: Fly back to the base!",
"Tv∙j prvnφ rozkaz: Dole¥ na zßkladnu!",3.0f);
}
if (StageTime > 68.0f && StageTime < 69.0f)
{
SpitFire.DrawMessage("On the radar the base is idicated with green",
"Na radaru je oznaΦena zelen²m symbolem",3.0f);
}
if (StageTime > 73.0f && StageTime < 74.0f)
{
SpitFire.DrawMessage("Back to the base it's order!",
"Jestli₧e nesplnφÜ ·lohu, mise bude ne·sp∞Ünß",3.0f);
}
if (StageTime > 100.0f && StageTime < 101.0f)
{
SpitFire.DrawMessage("Back to the base it's order!",
"Dole¥ k zßkladn∞! To je rozkaz!",3.0f);
}
if (StageTime > 110.0f && StageTime < 111.0f)
{
SpitFire.DrawMessage("Go Go Go!",
"Pohyb, pohyb, pohyb!",3.0f);
}
break;
//---------
//Level2
//---------
case 2:
//Structures
//----------
AddCountryBasic();
Structure[136].Target = true;
Structure[137].Target = true;
//vehicles
//-----------
AddMesserSchmitt(0,100,0,Get3D(-4000.0f,600.0f,-7000.0f),Get3D(0.0f,0.0f,0.0f),12.0f);
AddMesserSchmitt(1,100,0,Get3D(-4500.0f,600.0f,-7000.0f),Get3D(0.0f,0.0f,0.0f),12.0f);
//configuracia
//--------------
if(StageTime == 0.0f)
{
MaxTime = 300.0f;
SpitFire.Pos = Get3D(-6884.0f,408.0f,5302.0f);
SpitFire.Rot = Get3D(0.4f,3.14f,0.0f);
SpitFire.Bombs = 5;
SpitFire.ModelMode = 1;
Krajina.Mode = 0;
}
//Skript
//----------
//message
if(StageTime > 12.0f && StageTime < 13.0f)
{
SpitFire.DrawMessage("Incoming enemy fighters! Destroy them all!",
"Mßte spoleΦnost, zniΦte ty stφhaΦky",4.0f);
}
//dobra praca
if(Level.MesserSchmitt[0].Life <= 0 &&
Level.MesserSchmitt[1].Life <= 0 &&
Structure[136].Life <= 0 &&
Structure[137].Life <= 0)
{
if (TimeBuffer1 == 0.0f)
{
TimeBuffer1 = StageTime;
SpitFire.DrawMessage("Good work, fly back to the air base!",
"Dobrß prßce, vra¥ se na zßkladnu",7.0f);
}
}
//mission failed
if (StageTime > MaxTime)
{
SpitFire.MissionFailed();
}
//mission completed
if (Structure[136].Life <= 0 && Structure[137].Life <= 0 &&
MesserSchmitt[0].Life <= 0 && MesserSchmitt[1].Life <= 0 &&
StageTime > 20.0f &&
SpitFire.Pos.X > -7000.0f && SpitFire.Pos.X < -6000.0f &&
SpitFire.Pos.Z > 4000.0f && SpitFire.Pos.Z < 5000.0f)
{
SpitFire.MissionCompleted();
}
break;
//---------
//Level3
//---------
case 3:
//Structures
//----------
AddCountryBasic();
DestroyStructure(136);
DestroyStructure(137);
//vehicles
//-----------
AddMesserSchmitt(0,130,0,Get3D(-8064.0f,600.0f,-5849.0f),Get3D(0.0f,0.0f,0.0f),0.0f);
AddMesserSchmitt(1,130,0,Get3D(-6386.0f,600.0f,-4124.0f),Get3D(0.0f,0.0f,0.0f),5.0f);
AddMesserSchmitt(2,100,1,Get3D(-3319.0f,600.0f,-5000.0f),Get3D(0.0f,-157.0f,0.0f),10.0f);
AddBombarder(0,400,0,Get3D(-5826.0f,0.0f,-6281.0f),Get3D(-6723.0f,750.0f,-7175.0f),Get3D(0.0f,3.14f,0.0f),0.0f);
//configuracia
//--------------
if(StageTime == 0.0f)
{
MaxTime = 300.0f;
SpitFire.Pos = Get3D(-6884.0f,408.0f,5302.0f);
SpitFire.Rot = Get3D(0.4f,3.14f,0.0f);
SpitFire.Bombs = 0;
SpitFire.ModelMode = 1;
Krajina.Mode = 0;
}
//Skript
//----------
//mission completed
if (Bombarder[0].Life <= 0 &&
MesserSchmitt[0].Life <= 0 &&
MesserSchmitt[1].Life <= 0 &&
MesserSchmitt[2].Life <= 0 && StageTime > 20.0f )
{
SpitFire.MissionCompleted();
}
//mission failed
if (StageTime > MaxTime)
{
SpitFire.MissionFailed();
}
break;
//---------
//Level4
//---------
case 4:
//Structures
//----------
AddCountryBasic();
DestroyStructure(136);
DestroyStructure(137);
//vehicles
//-----------
AddStructure( 200,13,0,Get3D(3099.6f,0.0f,-2128.6f),Get3D(0.0f,-18.6f,0.0f));
AddStructure( 201,12,0,Get3D(3248.4f,0.0f,-2175.9f),Get3D(0.0f,-18.6f,0.0f));
AddStructure( 202,12,0,Get3D(3398.9f,0.0f,-2210.5f),Get3D(0.0f,-18.6f,0.0f));
AddStructure( 203,11,0,Get3D(2916.6f,0.0f,-2077.0f),Get3D(0.0f,-18.5f,0.0f));
AddTruck(0,0,Get3D(3592.5f,0.0f,-2306.4f),Get3D(0.0f,-0.8f,0.0f));
//configuracia
//--------------
if(StageTime == 0.0f)
{
MaxTime = 420.0f;
SpitFire.Pos = Get3D(-6884.0f,250.0f,6302.0f);
SpitFire.Rot = Get3D(0.4f,3.14f,0.0f);
SpitFire.Bombs = 0;
SpitFire.ModelMode = 1;
SpitFire.BulletActive = false;
Krajina.Mode = 0;
}
//Skript
//----------
//zlom misie
if (TimeBuffer1 == 0.0f &&
SpitFire.Pos.X > 1651 && SpitFire.Pos.X < 5023 &&
SpitFire.Pos.Z > -3646 && SpitFire.Pos.Z < -898)
{
TimeBuffer1 = StageTime;
SpitFire.DrawMessage("Fly back to the base! You have company",
"Rychle se vra¥ na zßkladnu, mßÜ spoleΦnost!",8.0f);
AddMesserSchmitt(0,50,1,Get3D(4443.0f,600.0f,-3873.0f),Get3D(0.0f,-0.8f,0.0f),StageTime);
AddMesserSchmitt(1,50,1,Get3D(4998.0f,600.0f,-3725.0f),Get3D(0.0f,-0.8f,0.0f),StageTime);
AddMesserSchmitt(2,50,1,Get3D(5511.0f,600.0f,-3377.0f),Get3D(0.0f,-0.8f,0.0f),StageTime);
}
//dr₧ sa pri zemy
if (StageTime > 3.0f && StageTime < 4.0f)
{
SpitFire.DrawMessage("Keep close to the ground!",
"Dr₧ se p°i zemi aby t∞ neodhalil radar!",4.0f);
}
//naboje nemas
if (Input.MouseLeftDown == true && StageTime > 8.0f && StageTime < 20.0f)
{
SpitFire.DrawMessage("You have spying equipment instead of armaments",
"NemßÜ nßboje, proto₧e mßÜ Üpionß₧nφ vybavenφ!",4.0f);
}
//mission completed
if (SpitFire.Pos.X > -7000.0f && SpitFire.Pos.X < -6000.0f &&
SpitFire.Pos.Z > 4000.0f && SpitFire.Pos.Z < 5000.0f &&
TimeBuffer1 != 0.0f )
{
SpitFire.MissionCompleted();
}
//mission failed
if (StageTime > MaxTime || (TimeBuffer1 == 0.0f && SpitFire.Pos.Y > 400.0f))
{
SpitFire.MissionFailed();
}
break;
//---------
//Level5
//---------
case 5:
//Structures
//----------
AddCountryBasic();
DestroyStructure(136);
DestroyStructure(137);
AddStructure( 200,13,0,Get3D(5638.4f,0.0f,2129.0f),Get3D(0.0f,-13.2f,0.0f));
AddStructure( 201,11,0,Get3D(5365.3f,0.0f,1960.3f),Get3D(0.0f,-12.9f,0.0f));
AddStructure( 202,13,0,Get3D(5053.2f,0.0f,1838.6f),Get3D(0.0f,-13.1f,0.0f));
AddStructure( 203,10,0,Get3D(4897.9f,0.0f,1741.9f),Get3D(0.0f,-13.1f,0.0f));
AddStructure( 204,12,0,Get3D(4590.6f,0.0f,1546.1f),Get3D(0.0f,-13.1f,0.0f));
AddStructure( 205,12,0,Get3D(4436.1f,0.0f,1463.8f),Get3D(0.0f,-12.9f,0.0f));
AddStructure( 206,12,0,Get3D(3903.2f,0.0f,1323.7f),Get3D(0.0f,-12.7f,0.0f));
AddStructure( 207,13,0,Get3D(3586.6f,0.0f,1245.4f),Get3D(0.0f,-12.7f,0.0f));
AddStructure( 208,11,0,Get3D(3404.3f,0.0f,1223.8f),Get3D(0.0f,-12.7f,0.0f));
AddStructure( 209,11,0,Get3D(3262.2f,0.0f,1223.9f),Get3D(0.0f,-12.7f,0.0f));
AddStructure( 210,11,0,Get3D(3068.5f,0.0f,1220.7f),Get3D(0.0f,-12.7f,0.0f));
AddTruck( 3,0,Get3D(5203.7f,0.0f,1907.0f),Get3D(0.0f,-12.9f,0.0f));
AddTruck( 4,0,Get3D(3730.6f,0.0f,1285.5f),Get3D(0.0f,-12.7f,0.0f));
AddTruck( 5,0,Get3D(4756.1f,0.0f,1642.8f),Get3D(0.0f,-13.1f,0.0f));
AddTruck( 6,0,Get3D(5509.4f,0.0f,2025.3f),Get3D(0.0f,-13.2f,0.0f));
AddTruck( 0,1,Get3D(2161.4f,0.0f,1506.0f),Get3D(0.0f,-12.1f,0.0f));
AddTruck( 1,1,Get3D(2047.5f,0.0f,1304.3f),Get3D(0.0f,-13.2f,0.0f));
AddTruck( 2,1,Get3D(2280.6f,0.0f,1265.1f),Get3D(0.0f,-11.3f,0.0f));
//configuracia
//--------------
MaxTime = StageTime;
if(StageTime == 0.0f)
{
SpitFire.Pos = Get3D(-6884.0f,408.0f,5302.0f);
SpitFire.Rot = Get3D(0.4f,3.14f,0.0f);
SpitFire.Bombs = 25;
SpitFire.ModelMode = 1;
SpitFire.BulletActive = true;
Krajina.Mode = 0;
}
//---------------
// Skript
//---------------
//dobra praca + zvasty okolo toho
if(Structure[200].Life <= 0 && Structure[201].Life <= 0 &&
Structure[202].Life <= 0 && Structure[203].Life <= 0 &&
Structure[204].Life <= 0 && Structure[205].Life <= 0 &&
Structure[206].Life <= 0 && Structure[207].Life <= 0 &&
Structure[208].Life <= 0 && Structure[209].Life <= 0 &&
Structure[210].Life <= 0 &&
Truck[3].Life <= 0 && Truck[4].Life <= 0 &&
Truck[5].Life <= 0 && Truck[6].Life <= 0 && TimeBuffer1 == 0.0f)
{
TimeBuffer1 = StageTime;
AddMesserSchmitt(0,150,1,Get3D(11500.0f,600.0f,4000.0f),Get3D(0.0f,-1.57f,0.0f),StageTime);
AddMesserSchmitt(1,150,1,Get3D(11500.0f,300.0f,4300.0f),Get3D(0.0f,-1.57f,0.0f),StageTime);
AddMesserSchmitt(2,150,1,Get3D(11500.0f,600.0f,4600.0f),Get3D(0.0f,-1.57f,0.0f),StageTime);
}
if (TimeBuffer1 != 0.0f && StageTime >= TimeBuffer1 && StageTime < TimeBuffer1 + 2.0f)
{
SpitFire.DrawMessage("Good work",
"Dobrß prßce!",4.0f);
}
if (TimeBuffer1 != 0.0f && StageTime >= TimeBuffer1+8.0f && StageTime < TimeBuffer1 + 9.0f)
{
SpitFire.DrawMessage("Be careful. Incoming squadron of enemy fighters",
"Mßme informace ₧e k ostrovu se blφ₧φ stφhaΦky",4.0f);
}
if (TimeBuffer1 != 0.0f && StageTime >= TimeBuffer1+16.0f && StageTime < TimeBuffer1 + 17.0f)
{
SpitFire.DrawMessage("Hold position, destroy them!",
"Setrvejte na svΘ pozici, a zniΦte stφhaΦky",4.0f);
}
//mission failed
if (StageTime > MaxTime)
{
SpitFire.MissionFailed();
}
//mission completed
if (TimeBuffer1 != 0.0f &&
MesserSchmitt[0].Life <= 0 &&
MesserSchmitt[1].Life <= 0 &&
MesserSchmitt[2].Life <= 0)
{
SpitFire.MissionCompleted();
}
break;
//---------
//Level6
//---------
case 6:
//Structures
//----------
AddDesertBasic();
//vehicles
//-----------
AddVolker(0,120,Get3D(-7500.0f,600.0f,-4000.0f),Get3D(0.0f,1.57f,0.0f),0.0f);
AddVolker(1,120,Get3D(-7500.0f,600.0f,-2000.0f),Get3D(0.0f,1.57f,0.0f),60.0f);
AddVolker(2,120,Get3D(-7500.0f,600.0f,0.0f),Get3D(0.0f,1.57f,0.0f),60.0f);
AddVolker(3,120,Get3D(-7500.0f,600.0f,2000.0f),Get3D(0.0f,1.57f,0.0f),0.0f);
AddVolker(4,120,Get3D(-7500.0f,600.0f,6000.0f),Get3D(0.0f,1.57f,0.0f),0.0f);
//AddVolker(3,120,Get3D(-7500.0f,600.0f,2000.0f),Get3D(0.0f,1.57f,0.0f),100.0f);
AddMesserSchmitt(0,150,1,Get3D(7500.0f,600.0f,-5000.0f),Get3D(0.0f,-1.57f,0.0f),0.0f);
AddMesserSchmitt(1,150,1,Get3D(7500.0f,600.0f,-3000.0f),Get3D(0.0f,-1.57f,0.0f),0.0f);
AddMesserSchmitt(2,150,1,Get3D(7500.0f,600.0f,0.0f),Get3D(0.0f,-1.57f,0.0f),0.0f);
AddMesserSchmitt(3,150,1,Get3D(7500.0f,600.0f,-2500.0f),Get3D(0.0f,-1.57f,0.0f),60.0f);
AddMesserSchmitt(4,150,1,Get3D(7500.0f,600.0f,-7000.0f),Get3D(0.0f,-1.57f,0.0f),60.0f);
AddMesserSchmitt(2,150,1,Get3D(7500.0f,600.0f,0.0f),Get3D(0.0f,-1.57f,0.0f),100.0f);
//configuracia
//--------------
if(StageTime == 0.0f)
{
MaxTime = 180.0f;
SpitFire.Pos = Get3D(0.0f,450.0f,-8702.0f);
SpitFire.Rot = Get3D(0.0f,0.0f,0.0f);
SpitFire.Bombs = 0;
SpitFire.ModelMode = 1;
SpitFire.BulletActive = true;
Krajina.Mode = 1;
}
//---------------
// Skript
//---------------
if (StageTime > 150.0f && StageTime < 152.0f)
{
SpitFire.DrawMessage("You have only 60 seconds left!",
"MßÜ poslednφch 60 sekund!",4.0f);
}
//mission failed
if (StageTime > MaxTime)
{
SpitFire.MissionFailed();
}
//mission completed
if (MesserSchmitt[0].Life <= 0 &&
MesserSchmitt[1].Life <= 0 &&
MesserSchmitt[2].Life <= 0 &&
MesserSchmitt[3].Life <= 0 &&
MesserSchmitt[4].Life <= 0 &&
Volker[0].Life <= 0 &&
Volker[1].Life <= 0 &&
Volker[2].Life <= 0 &&
Volker[3].Life <= 0 &&
Volker[4].Life <= 0 && StageTime > 90.0f)
{
SpitFire.MissionCompleted();
}
break;
//---------
//Level7
//---------
case 7:
//Structures
//----------
AddCountryBasic();
DestroyStructure(136);
DestroyStructure(137);
//vehicles
//-----------
AddTruck(0 ,0,Get3D(-5677.9f,0.0f,-750.7f),Get3D(0.0f,-19.6f,0.0f));
AddTruck(1 ,0,Get3D(-5572.9f,0.0f,-780.2f),Get3D(0.0f,-19.6f,0.0f));
AddTruck(2 ,0,Get3D(-7007.2f,0.0f,-5005.7f),Get3D(0.0f,-18.2f,0.0f));
AddTruck(3 ,0,Get3D(-6894.5f,0.0f,-5001.8f),Get3D(0.0f,-17.8f,0.0f));
AddTruck(4 ,0,Get3D(-1464.5f,0.0f,-3898.6f),Get3D(0.0f,-19.7f,0.0f));
AddTruck(5 ,0,Get3D(-1414.4f,0.0f,-4071.0f),Get3D(0.0f,-19.3f,0.0f));
AddTruck(6 ,0,Get3D(-1582.1f,0.0f,-4070.8f),Get3D(0.0f,-20.4f,0.0f));
AddTruck(7 ,0,Get3D(4070.6f,0.0f,-3836.5f),Get3D(0.0f,-19.1f,0.0f));
AddTruck(8 ,0,Get3D(4171.0f,0.0f,-3922.6f),Get3D(0.0f,-19.7f,0.0f));
AddTruck(9 ,0,Get3D(3237.3f,0.0f,-1814.9f),Get3D(0.0f,-19.4f,0.0f));
AddTruck(10 ,0,Get3D(4597.7f,0.0f,2260.9f),Get3D(0.0f,-19.7f,0.0f));
AddTruck(11 ,0,Get3D(4680.1f,0.0f,2138.7f),Get3D(0.0f,-20.4f,0.0f));
AddTruck(12 ,0,Get3D(-2960.9f,0.0f,3172.9f),Get3D(0.0f,-18.1f,0.0f));
AddTruck(13 ,0,Get3D(-3530.1f,0.0f,4016.0f),Get3D(0.0f,-19.4f,0.0f));
AddTruck(14 ,0,Get3D(-4009.4f,0.0f,4520.9f),Get3D(0.0f,-18.4f,0.0f));
AddTruck(15 ,0,Get3D(-2769.8f,0.0f,7238.0f),Get3D(0.0f,-19.5f,0.0f));
//configuracia
//--------------
if(StageTime == 0.0f)
{
MaxTime = 180.0f;
SpitFire.Pos = Get3D(-6884.0f,450.0f,5702.0f);
SpitFire.Rot = Get3D(0.4f,3.14f,0.0f);
SpitFire.Bombs = 12;
SpitFire.ModelMode = 1;
SpitFire.BulletActive = true;
Krajina.Mode = 0;
}
//---------------
// Skript
//---------------
//mission completed
if (Truck[0].Life <= 0 &&
Truck[1].Life <= 0 && Truck[2].Life <= 0 &&
Truck[3].Life <= 0 && Truck[4].Life <= 0 &&
Truck[5].Life <= 0 && Truck[6].Life <= 0 &&
Truck[7].Life <= 0 && Truck[8].Life <= 0 &&
Truck[9].Life <= 0 && Truck[10].Life <= 0 &&
Truck[11].Life <= 0 && Truck[12].Life <= 0 &&
Truck[13].Life <= 0 && Truck[14].Life <= 0 &&
Truck[15].Life <= 0 )
{
SpitFire.MissionCompleted();
}
if (StageTime > 150.0f && StageTime < 152.0f)
{
SpitFire.DrawMessage("Move your arse! Time is shortening!",
"Pozor! mßÜ mßlo Φasu",4.0f);
}
//mission failed
if (StageTime > MaxTime)
{
SpitFire.MissionFailed();
}
break;
//---------
//Level8
//---------
case 8:
//Structures
//----------
AddCountryBasic();
DestroyStructure(136);
DestroyStructure(137);
//vehicles
//-----------
AddBombarder(0,400,1,Get3D(13000.0f,0.0f,13000.0f),Get3D(-4600.0f,500.0f,-4600.0f),Get3D(0.0f,0.7f,0.0f),0.0f);
AddBombarder(1,400,1,Get3D(13300.0f,0.0f,13300.0f),Get3D(-4300.0f,600.0f,-4300.0f),Get3D(0.0f,0.7f,0.0f),0.0f);
AddVolker(1,100,Get3D(4500.0f,600.0f,-4300.0f),Get3D(0.0f,0.0f,0.0f),0.0f);
AddVolker(4,100,Get3D(-4500.0f,600.0f,-8300.0f),Get3D(0.0f,0.0f,0.0f),0.0f);
AddTruck( 0,1,Get3D(4407.2f,0.0f,4902.6f),Get3D(0.0f,-1.0f,0.0f));
AddTruck( 1,1,Get3D(4707.7f,0.0f,4264.9f),Get3D(0.0f,-0.5f,0.0f));
AddTruck( 2,1,Get3D(3980.9f,0.0f,4080.8f),Get3D(0.0f,-1.5f,0.0f));
AddTruck( 3,1,Get3D(5188.5f,0.0f,5182.8f),Get3D(0.0f,-0.3f,0.0f));
AddTruck( 4,1,Get3D(4517.8f,0.0f,4488.6f),Get3D(0.0f,-0.6f,0.0f));
//configuracia
//--------------
MaxTime = StageTime;
if(StageTime == 0.0f)
{
SpitFire.Pos = Get3D(-6884.0f,450.0f,5702.0f);
SpitFire.Rot = Get3D(0.4f,3.14f,0.0f);
SpitFire.Bombs = 13;
SpitFire.ModelMode = 1;
SpitFire.BulletActive = true;
Krajina.Mode = 0;
}
//---------------
// Skript
//---------------
//mission failed
if ((Bombarder[0].Pos.X > 8500.0f && Bombarder[0].Life > 0) ||
(Bombarder[1].Pos.X > 8500.0f && Bombarder[1].Life > 0))
{
SpitFire.MissionFailed();
}
//mission completed
if (Bombarder[0].Life <= 0 && Bombarder[1].Life <= 0)
{
SpitFire.MissionCompleted();
}
//rada1
if (StageTime > 20.0f && StageTime < 22.0f)
{
SpitFire.DrawMessage("Concentrate on bombers!",
"Soust°e∩ se hlavn∞ na bombardΘry",4.0f);
}
//rada2
if (StageTime > 27.0f && StageTime < 29.0f)
{
SpitFire.DrawMessage("They won`t leave the island!",
"Nesmφ opustit ostrov",4.0f);
}
break;
//---------
//Level9
//---------
case 9:
//Structures
//----------
AddCountryBasic();
DestroyStructure(136);
DestroyStructure(137);
Structure[0].Target = true;
Structure[1].Target = true;
Structure[2].Target = true;
Structure[3].Target = true;
Structure[4].Target = true;
AddStructure( 200,11,0,Get3D(-940.8f,0.0f,306.3f),Get3D(0.0f,-19.4f,0.0f));
AddStructure( 201,11,0,Get3D(-940.8f,0.0f,427.4f),Get3D(0.0f,-19.4f,0.0f));
AddStructure( 202,11,0,Get3D(-940.8f,0.0f,548.1f),Get3D(0.0f,-19.4f,0.0f));
AddStructure( 203,13,0,Get3D(-1047.0f,0.0f,-373.9f),Get3D(0.0f,-19.5f,0.0f));
AddStructure( 204,13,0,Get3D(-999.8f,0.0f,-536.1f),Get3D(0.0f,-19.5f,0.0f));
AddStructure( 205,13,0,Get3D(-1377.4f,0.0f,-201.8f),Get3D(0.0f,-21.0f,0.0f));
//vehicles
//-----------
AddMesserSchmitt(0,150,1,Get3D(4000.0f,600.0f,2000.0f),Get3D(0.0f,0.0f,0.0f),0.0f);
AddMesserSchmitt(1,150,1,Get3D(4500.0f,600.0f,1000.0f),Get3D(0.0f,0.0f,0.0f),0.0f);
AddVolker(0,150,Get3D(4000.0f,600.0f,0.0f),Get3D(0.0f,0.0f,0.0f),60.0f);
AddVolker(1,150,Get3D(4500.0f,600.0f,2500.0f),Get3D(0.0f,0.0f,0.0f),60.0f);
AddVolker(2,150,Get3D(8000.0f,600.0f,-1500.0f),Get3D(0.0f,0.0f,0.0f),100.0f);
AddVolker(3,150,Get3D(8000.0f,600.0f,500.0f),Get3D(0.0f,0.0f,0.0f),100.0f);
AddTruck(0,0,Get3D(-1912.0f,0.0f,-138.7f),Get3D(0.0f,-11.5f,0.0f));
AddTruck(1,0,Get3D(-1672.0f,0.0f,553.2f),Get3D(0.0f,-12.7f,0.0f));
AddTruck(2,0,Get3D(-1337.7f,0.0f,696.1f),Get3D(0.0f,-14.0f,0.0f));
AddTruck(3,0,Get3D(-754.2f,0.0f,318.4f),Get3D(0.0f,-13.6f,0.0f));
AddTruck(4,0,Get3D(-641.2f,0.0f,-443.4f),Get3D(0.0f,-18.2f,0.0f));
AddTruck(5,0,Get3D(-1197.3f,0.0f,-760.4f),Get3D(0.0f,-19.8f,0.0f));
//configuracia
//--------------
if(StageTime == 0.0f)
{
MaxTime = 300.0f;
SpitFire.Pos = Get3D(-6884.0f,408.0f,5302.0f);
SpitFire.Rot = Get3D(0.4f,3.14f,0.0f);
SpitFire.Bombs = 30;
SpitFire.ModelMode = 1;
Krajina.Mode = 0;
}
//Skript
//----------
//mission failed
if (StageTime > MaxTime)
{
SpitFire.MissionFailed();
}
//mission completed
if (Structure[0].Life <= 0 &&
Structure[1].Life <= 0 &&
Structure[2].Life <= 0 &&
Structure[3].Life <= 0 &&
Structure[4].Life <= 0 &&
Structure[0].Life <= 0 &&
Structure[200].Life <= 0 &&
Structure[201].Life <= 0 &&
Structure[202].Life <= 0 &&
Structure[203].Life <= 0 &&
Structure[204].Life <= 0 &&
Structure[205].Life <= 0 &&
Volker[0].Life <= 0 &&
Volker[1].Life <= 0 &&
Volker[2].Life <= 0 &&
Volker[3].Life <= 0 &&
MesserSchmitt[0].Life <= 0 &&
MesserSchmitt[1].Life <= 0 &&
Truck[0].Life <= 0 && Truck[1].Life <= 0 &&
Truck[2].Life <= 0 && Truck[3].Life <= 0 &&
Truck[4].Life <= 0 && Truck[5].Life <= 0)
{
SpitFire.MissionCompleted();
}
break;
//---------
//Level10
//---------
case 10:
//Structures
//----------
AddCountryBasic();
DestroyStructure(136);
DestroyStructure(137);
DestroyStructure(0);
DestroyStructure(1);
DestroyStructure(2);
DestroyStructure(3);
DestroyStructure(4);
Structure[18].Target = true;
//vehicles
//-----------
AddStructure( 200,10,0,Get3D(-3630.2f,0.0f,-4149.2f),Get3D(0.0f,-15.8f,0.0f));
AddStructure( 201,10,0,Get3D(-3318.0f,0.0f,-4132.8f),Get3D(0.0f,-15.7f,0.0f));
AddStructure( 202,11,0,Get3D(-3036.1f,0.0f,-4132.5f),Get3D(0.0f,-15.4f,0.0f));
AddStructure( 203,12,0,Get3D(4877.7f,0.0f,-5640.8f),Get3D(0.0f,-25.0f,0.0f));
AddStructure( 204,11,0,Get3D(4911.8f,0.0f,-5758.6f),Get3D(0.0f,-25.0f,0.0f));
AddStructure( 205,4,0,Get3D(4999.7f,0.0f,-5617.7f),Get3D(0.0f,-22.6f,0.0f));
AddStructure( 206,4,0,Get3D(5015.8f,0.0f,-5753.5f),Get3D(0.0f,-22.6f,0.0f));
AddStructure( 207,4,0,Get3D(5084.4f,0.0f,-5720.7f),Get3D(0.0f,-22.6f,0.0f));
AddStructure( 208,14,0,Get3D(2833.0f,0.0f,738.4f),Get3D(0.0f,-21.4f,0.0f));
AddStructure( 209,13,0,Get3D(-366.7f,0.0f,5693.5f),Get3D(0.0f,-19.7f,0.0f));
AddStructure( 210,13,0,Get3D(-276.7f,0.0f,5861.9f),Get3D(0.0f,-20.2f,0.0f));
AddTruck( 0,0,Get3D(-2830.1f,0.0f,-4198.4f),Get3D(0.0f,-16.9f,0.0f));
AddTruck( 1,0,Get3D(-3824.7f,0.0f,-4180.2f),Get3D(0.0f,-17.5f,0.0f));
AddTruck( 2,0,Get3D(4912.8f,0.0f,-5470.3f),Get3D(0.0f,-26.2f,0.0f));
AddTruck( 3,0,Get3D(4643.7f,0.0f,-5740.9f),Get3D(0.0f,-25.0f,0.0f));
AddTruck( 4,0,Get3D(2684.6f,0.0f,649.2f),Get3D(0.0f,-21.7f,0.0f));
//configuracia
//--------------
MaxTime = StageTime;
if(StageTime == 0.0f)
{
SpitFire.Pos = Get3D(-6884.0f,408.0f,5302.0f);
SpitFire.Rot = Get3D(0.4f,3.14f,0.0f);
SpitFire.Bombs = 25;
SpitFire.ModelMode = 1;
Krajina.Mode = 0;
}
//Skript
//----------
//pozicia 1
if(SpitFire.Pos.X > -4347 && SpitFire.Pos.X < -2443 &&
SpitFire.Pos.Z > -5271 && SpitFire.Pos.Z < -3508 )
{
if (TimeBuffer1 == 0.0f)
{
TimeBuffer1 = StageTime;
AddMesserSchmitt(0,150,1,Get3D(-3853.0f,600.0f,-6768.0f),Get3D(0.0f,0.0f,0.0f),StageTime);
}
}
//pozicia 2
if(SpitFire.Pos.X > 4035 && SpitFire.Pos.X < 5809 &&
SpitFire.Pos.Z > -6090 && SpitFire.Pos.Z < -4886 )
{
if (TimeBuffer2 == 0.0f)
{
TimeBuffer2 = StageTime;
AddVolker(0,150,Get3D(7392.0f,700.0f,-6042.0f),Get3D(0.0f,-1.57f,0.0f),StageTime);
AddVolker(1,150,Get3D(7374.0f,700.0f,-5807.0f),Get3D(0.0f,-1.57f,0.0f),StageTime);
}
}
//pozicia 3
if(SpitFire.Pos.X > 2136 && SpitFire.Pos.X < 3558 &&
SpitFire.Pos.Z > -541 && SpitFire.Pos.Z < 1576 )
{
if (TimeBuffer3 == 0.0f)
{
TimeBuffer3 = StageTime;
AddMesserSchmitt(1,150,1,Get3D(2595.0f,700.0f,4036.0f),Get3D(0.0f,-3.14f,0.0f),StageTime);
AddMesserSchmitt(2,150,1,Get3D(2263.0f,700.0f,4288.0f),Get3D(0.0f,-3.14f,0.0f),StageTime);
AddMesserSchmitt(3,150,1,Get3D(2804.0f,700.0f,4380.0f),Get3D(0.0f,-3.14f,0.0f),StageTime);
}
}
//pozicia 4
if(SpitFire.Pos.X > -2059 && SpitFire.Pos.X < 2035 &&
SpitFire.Pos.Z > 4591 && SpitFire.Pos.Z < 7253 )
{
if (TimeBuffer4 == 0.0f)
{
TimeBuffer4 = StageTime;
AddVolker(2,100,Get3D(-257.0f,600.0f,8913.0f),Get3D(0.0f,-3.14f,0.0f),StageTime);
}
}
//mission completed
if (MesserSchmitt[0].Life <= 0 && MesserSchmitt[1].Life <= 0 &&
MesserSchmitt[2].Life <= 0 && MesserSchmitt[3].Life <= 0 &&
Volker[0].Life <= 0 && Volker[1].Life <= 0 &&
Volker[2].Life <= 0 &&
Truck[0].Life <= 0 &&
Truck[1].Life <= 0 &&
Truck[2].Life <= 0 &&
Structure[200].Life <= 0 &&
Structure[201].Life <= 0 &&
Structure[202].Life <= 0 &&
Structure[203].Life <= 0 &&
Structure[204].Life <= 0 &&
Structure[205].Life <= 0 &&
Structure[206].Life <= 0 &&
Structure[207].Life <= 0 &&
Structure[208].Life <= 0 &&
Structure[209].Life <= 0 &&
Structure[210].Life <= 0 )
{
SpitFire.MissionCompleted();
}
break;
//---------
//Level11
//---------
case 11:
//Structures
//----------
AddCountryBasic();
DestroyStructure(136);
DestroyStructure(137);
DestroyStructure(0);
DestroyStructure(1);
DestroyStructure(2);
DestroyStructure(3);
DestroyStructure(4);
//vehicles
//-----------
AddVolker(0,150,Get3D(10175.0f,400.0f,-8023.9f),Get3D(0.0f,-2.4f,0.0f),0.0f);
AddVolker(1,150,Get3D(10121.8f,400.0f,-7448.8f),Get3D(0.0f,-2.4f,0.0f),0.0f);
AddVolker(2,150,Get3D(10344.7f,400.0f,-7783.9f),Get3D(0.0f,-2.4f,0.0f),0.0f);
AddVolker(3,150,Get3D(9853.4f,400.0f,-10107.7f),Get3D(0.0f,-1.1f,0.0f),0.0f);
//configuracia
//--------------
MaxTime = StageTime;
if(StageTime == 0.0f)
{
SpitFire.Pos = Get3D(8904.0f,350.0f,-9592.0f);
SpitFire.Rot = Get3D(0.0f,-0.8f,0.0f);
SpitFire.Bombs = 2;
SpitFire.ModelMode = 3;
Krajina.Mode = 0;
}
//Skript
//----------
//mission completed
if (SpitFire.Pos.X > -7000.0f && SpitFire.Pos.X < -6000.0f &&
SpitFire.Pos.Z > 4000.0f && SpitFire.Pos.Z < 5000.0f &&
Volker[0].Life <= 0.0f &&
Volker[1].Life <= 0.0f &&
Volker[2].Life <= 0.0f &&
Volker[3].Life <= 0.0f )
{
SpitFire.MissionCompleted();
}
break;
//---------
//Level12
//---------
case 12:
//Structures
//----------
AddCountryBasic();
DestroyStructure(136);
DestroyStructure(137);
DestroyStructure(0);
DestroyStructure(1);
DestroyStructure(2);
DestroyStructure(3);
DestroyStructure(4);
Structure[130].Friendly = true;
Structure[131].Friendly = true;
Structure[133].Friendly = true;
Structure[126].Friendly = true;
Structure[134].Friendly = true;
Structure[132].Friendly = true;
Structure[129].Friendly = true;
Structure[128].Friendly = true;
Structure[127].Friendly = true;
Structure[124].Friendly = true;
Structure[125].Friendly = true;
//vehicles
//-----------
AddTruck(0,0,Get3D(-5072.0f,0.0f,-4118.9f),Get3D(0.0f,-16.3f,0.0f));
AddTruck(1,0,Get3D(-4922.5f,0.0f,-4202.4f),Get3D(0.0f,-17.0f,0.0f));
AddTruck(2,0,Get3D(-4774.4f,0.0f,-4253.3f),Get3D(0.0f,-17.0f,0.0f));
AddTruck(3,0,Get3D(-5097.6f,0.0f,-3411.4f),Get3D(0.0f,-16.3f,0.0f));
AddTruck(4,0,Get3D(-5352.0f,0.0f,-4077.9f),Get3D(0.0f,-17.4f,0.0f));
//configuracia
//--------------
MaxTime = StageTime;
if(StageTime == 0.0f)
{
SpitFire.Pos = Get3D(-6884.0f,408.0f,5302.0f);
SpitFire.Rot = Get3D(0.4f,3.14f,0.0f);
SpitFire.Bombs = 10;
SpitFire.ModelMode = 1;
Krajina.Mode = 0;
}
//Skript
//----------
//pozicia 1
if(SpitFire.Pos.Z < 0.0f)
{
if (TimeBuffer1 == 0.0f)
{
TimeBuffer1 = StageTime;
AddMesserSchmitt(0,150,1,Get3D(-6368.2f,600.0f,-12209.7f),Get3D(0.0f,-18.3f,0.0f),StageTime);
AddMesserSchmitt(1,150,1,Get3D(-3816.0f,600.0f,-12200.9f),Get3D(0.0f,-19.2f,0.0f),StageTime);
AddMesserSchmitt(2,150,1,Get3D(-1859.2f,600.0f,-10082.3f),Get3D(0.0f,-19.8f,0.0f),StageTime);
AddVolker(0,150,Get3D(458.4f,600.0f,-11082.7f),Get3D(0.0f,-20.0f,0.0f),StageTime);
AddVolker(1,150,Get3D(-4877.7f,600.0f,-12319.0f),Get3D(0.0f,-20.0f,0.0f),StageTime);
}
}
//mission failed
if (Structure[130].Life <= 0 ||
Structure[131].Life <= 0 ||
Structure[133].Life <= 0 ||
Structure[126].Life <= 0 ||
Structure[134].Life <= 0 ||
Structure[132].Life <= 0 ||
Structure[129].Life <= 0 ||
Structure[128].Life <= 0 ||
Structure[127].Life <= 0 ||
Structure[124].Life <= 0 ||
Structure[125].Life <= 0)
{
SpitFire.MissionFailed();
}
//mission completed
if (Truck[0].Life <= 0.0f &&
Truck[1].Life <= 0.0f &&
Truck[2].Life <= 0.0f &&
Truck[3].Life <= 0.0f &&
Truck[4].Life <= 0.0f &&
MesserSchmitt[0].Life <= 0.0f &&
MesserSchmitt[1].Life <= 0.0f &&
MesserSchmitt[2].Life <= 0.0f &&
Volker[0].Life <= 0.0f &&
Volker[1].Life <= 0.0f && TimeBuffer1 != 0.0f)
{
SpitFire.MissionCompleted();
}
break;
//---------
//Level13
//---------
case 13:
//Structures
//----------
AddCountryBasic();
DestroyStructure(136);
DestroyStructure(137);
DestroyStructure(0);
DestroyStructure(1);
DestroyStructure(2);
DestroyStructure(3);
DestroyStructure(4);
//vehicles
//-----------
AddBombarder(0,400,1,Get3D(4079.0f,0.0f,-7978.0f),Get3D(5279.0f,500.0f,-12235.0f-6500.0f),Get3D(0.0f,0.0f,0.0f),0.0f);
AddBombarder(1,400,1,Get3D(4532.0f,0.0f,-2956.0f),Get3D(4302.0f,500.0f,-5889.0f-6500.0f),Get3D(0.0f,0.0f,0.0f),0.0f);
AddBombarder(2,400,1,Get3D(6423.0f,0.0f,4766.0f),Get3D(6764.0f,500.0f,1082.0f-6500.0f),Get3D(0.0f,0.0f,0.0f),0.0f);
AddTruck(0,0,Get3D(4737.0f,0.0f,-6816.0f),Get3D(0.0f,-18.1f,0.0f));
AddTruck(1,0,Get3D(4828.3f,0.0f,-6682.3f),Get3D(0.0f,-18.4f,0.0f));
AddTruck(2,0,Get3D(4777.1f,0.0f,1660.3f),Get3D(0.0f,-17.8f,0.0f));
AddTruck(3,0,Get3D(4940.1f,0.0f,1761.6f),Get3D(0.0f,-18.1f,0.0f));
AddTruck(4,0,Get3D(4924.1f,0.0f,1374.9f),Get3D(0.0f,-18.1f,0.0f));
//configuracia
//--------------
MaxTime = StageTime;
if(StageTime == 0.0f)
{
SpitFire.Pos = Get3D(-6884.0f,408.0f,5302.0f);
SpitFire.Rot = Get3D(0.4f,3.14f,0.0f);
SpitFire.Bombs = 5;
SpitFire.ModelMode = 1;
Krajina.Mode = 0;
}
//Skript
//----------
//pozicia 1
if(SpitFire.Pos.X > Bombarder[0].Pos.X-2000.0f && SpitFire.Pos.X < Bombarder[0].Pos.X+2000.0f &&
SpitFire.Pos.Z > Bombarder[0].Pos.Z-2000.0f && SpitFire.Pos.Z < Bombarder[0].Pos.Z+2000.0f )
{
if (TimeBuffer1 == 0.0f)
{
TimeBuffer1 = StageTime;
AddMesserSchmitt(0,150,1,Get3D(7939.0f,600.0f,-8700.0f),Get3D(0.0f,0.0f,0.0f),StageTime);
AddMesserSchmitt(1,150,1,Get3D(8353.0f,600.0f,-8353.0f),Get3D(0.0f,0.0f,0.0f),StageTime);
AddMesserSchmitt(2,150,1,Get3D(8462.0f,600.0f,-7893.0f),Get3D(0.0f,0.0f,0.0f),StageTime);
}
}
//pozicia 2
if(SpitFire.Pos.X > Bombarder[1].Pos.X-2000.0f && SpitFire.Pos.X < Bombarder[1].Pos.X+2000.0f &&
SpitFire.Pos.Z > Bombarder[1].Pos.Z-2000.0f && SpitFire.Pos.Z < Bombarder[1].Pos.Z+2000.0f )
{
if (TimeBuffer2 == 0.0f)
{
TimeBuffer2 = StageTime;
AddVolker(0,150,Get3D(8523.0f,600.0f,-3231.0f),Get3D(0.0f,-1.57f,0.0f),StageTime);
AddVolker(1,150,Get3D(8504.0f,600.0f,-3685.0f),Get3D(0.0f,-1.57f,0.0f),StageTime);
}
}
//pozicia 3
if(SpitFire.Pos.X > Bombarder[2].Pos.X-2000.0f && SpitFire.Pos.X < Bombarder[2].Pos.X+2000.0f &&
SpitFire.Pos.Z > Bombarder[2].Pos.Z-2000.0f && SpitFire.Pos.Z < Bombarder[2].Pos.Z+2000.0f )
{
if (TimeBuffer3 == 0.0f)
{
TimeBuffer3 = StageTime;
AddMesserSchmitt(3,150,0,Get3D(6216.0f,600.0f,8385.0f),Get3D(0.0f,-3.14f,0.0f),StageTime);
AddVolker(2,150,Get3D(6878.0f,600.0f,8169.0f),Get3D(0.0f,-3.14f,0.0f),StageTime);
AddVolker(3,150,Get3D(5677.0f,600.0f,8753.0f),Get3D(0.0f,-3.14f,0.0f),StageTime);
}
}
//mission completed
if (TimeBuffer1 != 0.0f && TimeBuffer2 != 0.0f &&
TimeBuffer3 != 0.0f && Bombarder[1].Life <= 0 &&
Bombarder[0].Life <= 0 && Bombarder[2].Life <= 0 &&
MesserSchmitt[0].Life <= 0 && MesserSchmitt[1].Life <= 0 &&
MesserSchmitt[2].Life <= 0 && MesserSchmitt[3].Life <= 0 &&
Volker[0].Life <= 0 && Volker[1].Life <= 0 &&
Volker[2].Life <= 0 && Volker[3].Life <= 0)
{
SpitFire.MissionCompleted();
}
break;
//---------
//Level14
//---------
case 14:
//Structures
//----------
AddCountryBasic();
DestroyStructure(136);
DestroyStructure(137);
DestroyStructure(0);
DestroyStructure(1);
DestroyStructure(2);
DestroyStructure(3);
DestroyStructure(4);
AddTruck( 0,0,Get3D(-5096.9f,0.0f,-3388.9f),Get3D(0.0f,-19.2f,0.0f));
AddTruck( 1,0,Get3D(-5212.6f,0.0f,-3078.9f),Get3D(0.0f,-19.0f,0.0f));
AddTruck( 2,0,Get3D(-5287.7f,0.0f,-2704.5f),Get3D(0.0f,-18.6f,0.0f));
AddTruck( 3,0,Get3D(-5493.1f,0.0f,-4638.5f),Get3D(0.0f,-19.7f,0.0f));
AddTruck( 4,0,Get3D(-5345.5f,0.0f,-4641.5f),Get3D(0.0f,-19.7f,0.0f));
//vehicles
//-----------
AddMesserSchmitt(0,150,1,Get3D(-4044.9f,600.0f,-9456.4f),Get3D(0.0f,-18.7f,0.0f),0.0f);
AddMesserSchmitt(1,150,1,Get3D(-3272.3f,600.0f,-8858.7f),Get3D(0.0f,-18.7f,0.0f),5.0f);
AddMesserSchmitt(2,150,1,Get3D(-3737.1f,600.0f,-9110.1f),Get3D(0.0f,-18.7f,0.0f),10.0f);
AddVolker(0,150,Get3D(-2785.4f,600.0f,-8762.1f),Get3D(0.0f,-18.7f,0.0f),0.0f);
AddVolker(1,150,Get3D(2348.8f,600.0f,-3798.8f),Get3D(0.0f,-21.0f,0.0f),5.0f);
AddVolker(2,150,Get3D(1492.8f,600.0f,-2727.1f),Get3D(0.0f,-19.6f,0.0f),10.0f);
AddBombarder(0,550,1,Get3D(-4869.3f,0.0f,-4426.7f),Get3D(-4148.4f,600.0f,-8779.2f),Get3D(0.0f,0.0f,0.0f),0.0f);
AddBombarder(1,550,1,Get3D(-3820.8f,0.0f,-5224.2f),Get3D(-3107.7f,600.0f,-9281.8f),Get3D(0.0f,0.0f,0.0f),0.0f);
//configuracia
//--------------
if(StageTime == 0.0f)
{
MaxTime = 300.0f;
SpitFire.Pos = Get3D(-6884.0f,408.0f,5302.0f);
SpitFire.Rot = Get3D(0.4f,3.14f,0.0f);
SpitFire.Bombs = 7;
SpitFire.ModelMode = 1;
Krajina.Mode = 0;
}
//Skript
//----------
//mission completed
if (Bombarder[0].Life <= 0 &&
Bombarder[1].Life <= 0 &&
MesserSchmitt[0].Life <= 0 &&
MesserSchmitt[1].Life <= 0 &&
MesserSchmitt[2].Life <= 0 &&
Volker[0].Life <= 0 &&
Volker[1].Life <= 0 &&
Volker[2].Life <= 0 &&
Truck[0].Life <= 0 &&
Truck[1].Life <= 0 &&
Truck[2].Life <= 0 &&
Truck[3].Life <= 0 &&
Truck[4].Life <= 0 &&
StageTime > 20.0f )
{
SpitFire.MissionCompleted();
}
//mission failed
if (0)
{
SpitFire.MissionFailed();
}
break;
//---------
//Level15
//---------
case 15:
//Structures
//----------
AddCountryBasic();
DestroyStructure(136);
DestroyStructure(137);
DestroyStructure(0);
DestroyStructure(1);
DestroyStructure(2);
DestroyStructure(3);
DestroyStructure(4);
DestroyStructure(18);
//vehicles
//-----------
//configuracia
//--------------
MaxTime = StageTime;
if(StageTime == 0.0f)
{
SpitFire.Pos = Get3D(-6884.0f,408.0f,5302.0f);
SpitFire.Rot = Get3D(0.4f,3.14f,0.0f);
SpitFire.Bombs = 25;
SpitFire.ModelMode = 1;
Krajina.Mode = 0;
}
//Skript
//----------
//pozicia 1
if(SpitFire.Pos.Z < -2500)
{
if (TimeBuffer1 == 0.0f)
{
TimeBuffer1 = StageTime;
AddMesserSchmitt(0,150,1,Get3D(-200.0f,600.0f,-6068.0f),Get3D(0.0f,0.0f,0.0f),StageTime);
AddMesserSchmitt(1,150,1,Get3D(-2300.0f,600.0f,-6068.0f),Get3D(0.0f,0.0f,0.0f),StageTime);
AddMesserSchmitt(2,150,1,Get3D(-2600.0f,600.0f,-6068.0f),Get3D(0.0f,0.0f,0.0f),StageTime);
AddMesserSchmitt(3,150,1,Get3D(-2900.0f,600.0f,-6068.0f),Get3D(0.0f,0.0f,0.0f),StageTime);
AddMesserSchmitt(4,150,1,Get3D(-3200.0f,600.0f,-6068.0f),Get3D(0.0f,0.0f,0.0f),StageTime);
AddVolker(0,150,Get3D(200.0f,600.0f,-6068.0f),Get3D(0.0f,0.0f,0.0f),StageTime);
AddVolker(1,150,Get3D(2300.0f,600.0f,-6068.0f),Get3D(0.0f,0.0f,0.0f),StageTime);
AddVolker(2,150,Get3D(2600.0f,600.0f,-6068.0f),Get3D(0.0f,0.0f,0.0f),StageTime);
AddVolker(3,150,Get3D(2900.0f,600.0f,-6068.0f),Get3D(0.0f,0.0f,0.0f),StageTime);
AddVolker(4,150,Get3D(3200.0f,600.0f,-6068.0f),Get3D(0.0f,0.0f,0.0f),StageTime);
}
}
//znicte este
if (TimeBuffer1 > 2.0f && StageTime >= TimeBuffer1 && StageTime <= TimeBuffer1+1.0f)
{
SpitFire.DrawMessage("Unexpected enemy squadron. Eliminate that fighters",
"Tady zßkladna! ZniΦte jeÜt∞ t∞ch pßr letadel!",4.0f);
}
//teraz rychle domov
if (Volker[0].Life <= 0 && Volker[1].Life <= 0 &&
Volker[2].Life <= 0 && Volker[3].Life <= 0 &&
Volker[4].Life <= 0 &&
MesserSchmitt[0].Life <= 0 && MesserSchmitt[1].Life <= 0 &&
MesserSchmitt[2].Life <= 0 && MesserSchmitt[3].Life <= 0 &&
MesserSchmitt[4].Life <= 0 )
{
if (TimeBuffer2 == 0.0f)
{
TimeBuffer2 = StageTime;
}
}
if (TimeBuffer2 > 2.0f && StageTime >= TimeBuffer2 && StageTime <= TimeBuffer2+1.0f)
{
SpitFire.DrawMessage("Our freedom is there!",
"Vysn∞nß svoboda je zde",4.0f);
}
if (TimeBuffer2 > 2.0f && StageTime >= TimeBuffer2+6.0f && StageTime <= TimeBuffer2+7.0f)
{
SpitFire.DrawMessage("Fly south direction to your home",
"Rychle ji₧nφm sm∞rem k domovu",4.0f);
}
//mission completed
if (SpitFire.Pos.Z < -7500.0f && TimeBuffer1 != 0.0f &&
Volker[0].Life <= 0 && Volker[1].Life <= 0 &&
Volker[2].Life <= 0 && Volker[3].Life <= 0 &&
Volker[4].Life <= 0 &&
MesserSchmitt[0].Life <= 0 && MesserSchmitt[1].Life <= 0 &&
MesserSchmitt[2].Life <= 0 && MesserSchmitt[3].Life <= 0 &&
MesserSchmitt[4].Life <= 0 )
{
SpitFire.MissionCompleted();
}
break;
}
//Casovac
//---------
StageTime += PowerTime(0.001f);
}
//
//-----------------------------------------------------------------
void LEVEL::AddCountryBasic()
{
if (StageTime != 0.0f)
return;
AddStructure( 0,5,1,Get3D(-1084.8f,7.0f,57.3f),Get3D(0.0f,1.5f,0.0f));
AddStructure( 1,6,1,Get3D(-1266.9f,0.0f,109.7f),Get3D(0.0f,3.0f,0.0f));
AddStructure( 2,6,1,Get3D(-1257.6f,0.0f,-32.0f),Get3D(0.0f,3.0f,0.0f));
AddStructure( 3,4,1,Get3D(-1197.2f,0.0f,-158.2f),Get3D(0.0f,3.0f,0.0f));
AddStructure( 4,4,1,Get3D(-1177.6f,0.0f,-274.4f),Get3D(0.0f,3.0f,0.0f));
AddStructure( 5,9,1,Get3D(-2639.7f,0.0f,915.0f),Get3D(0.0f,4.0f,0.0f));
AddStructure( 6,15,1,Get3D(-2428.1f,0.0f,952.4f),Get3D(0.0f,4.5f,0.0f));
AddStructure( 7,16,1,Get3D(-2300.2f,0.0f,648.8f),Get3D(0.0f,-0.1f,0.0f));
AddStructure( 8,17,1,Get3D(-2421.1f,0.0f,693.1f),Get3D(0.0f,1.4f,0.0f));
AddStructure( 9,17,1,Get3D(-2377.7f,0.0f,822.6f),Get3D(0.0f,1.4f,0.0f));
AddStructure( 10,1,1,Get3D(942.5f,0.0f,-958.5f),Get3D(0.0f,2.7f,0.0f));
AddStructure( 11,2,1,Get3D(826.5f,0.0f,-938.8f),Get3D(0.0f,2.7f,0.0f));
AddStructure( 12,6,1,Get3D(983.5f,0.0f,-1176.1f),Get3D(0.0f,2.7f,0.0f));
AddStructure( 13,0,1,Get3D(789.1f,0.0f,-1305.8f),Get3D(0.0f,4.3f,0.0f));
AddStructure( 14,1,1,Get3D(725.8f,0.0f,-1035.8f),Get3D(0.0f,1.2f,0.0f));
AddStructure( 15,2,1,Get3D(608.2f,0.0f,-1018.3f),Get3D(0.0f,1.2f,0.0f));
AddStructure( 16,3,1,Get3D(2265.1f,0.0f,-1604.9f),Get3D(0.0f,2.5f,0.0f));
AddStructure( 17,3,1,Get3D(2368.9f,0.0f,-1710.9f),Get3D(0.0f,2.5f,0.0f));
AddStructure( 18,6,1,Get3D(2928.8f,0.0f,881.5f),Get3D(0.0f,2.2f,0.0f));
AddStructure( 19,1,1,Get3D(3090.0f,0.0f,1032.3f),Get3D(0.0f,-2.5f,0.0f));
AddStructure( 20,2,1,Get3D(3208.7f,0.0f,1117.0f),Get3D(0.0f,0.7f,0.0f));
AddStructure( 21,9,1,Get3D(1457.6f,0.0f,2422.8f),Get3D(0.0f,0.8f,0.0f));
AddStructure( 22,16,1,Get3D(1239.4f,0.0f,2650.5f),Get3D(0.0f,-2.5f,0.0f));
AddStructure( 23,0,1,Get3D(1750.2f,0.0f,2238.5f),Get3D(0.0f,-0.6f,0.0f));
AddStructure( 24,0,1,Get3D(1763.2f,0.0f,2060.9f),Get3D(0.0f,-5.3f,0.0f));
AddStructure( 25,3,1,Get3D(2175.5f,0.0f,1905.1f),Get3D(0.0f,-5.3f,0.0f));
AddStructure( 26,3,1,Get3D(2076.1f,0.0f,1814.9f),Get3D(0.0f,-5.3f,0.0f));
AddStructure( 27,15,1,Get3D(1944.6f,0.0f,2148.2f),Get3D(0.0f,-5.3f,0.0f));
AddStructure( 28,18,1,Get3D(1950.3f,0.0f,1932.1f),Get3D(0.0f,-5.3f,0.0f));
AddStructure( 29,20,1,Get3D(2118.9f,0.0f,2010.0f),Get3D(0.0f,-2.8f,0.0f));
AddStructure( 30,20,1,Get3D(2237.7f,0.0f,2041.1f),Get3D(0.0f,-3.7f,0.0f));
AddStructure( 31,21,1,Get3D(2154.0f,0.0f,2115.1f),Get3D(0.0f,-4.8f,0.0f));
AddStructure( 32,16,1,Get3D(6300.2f,0.0f,4915.7f),Get3D(0.0f,-9.7f,0.0f));
AddStructure( 33,17,1,Get3D(6400.4f,0.0f,4806.2f),Get3D(0.0f,-9.7f,0.0f));
AddStructure( 34,18,1,Get3D(6515.9f,0.0f,4932.1f),Get3D(0.0f,-9.7f,0.0f));
AddStructure( 35,16,1,Get3D(6533.2f,0.0f,4698.6f),Get3D(0.0f,-12.8f,0.0f));
AddStructure( 36,9,1,Get3D(6318.1f,0.0f,4670.2f),Get3D(0.0f,-11.2f,0.0f));
AddStructure( 37,1,1,Get3D(5039.1f,0.0f,4092.1f),Get3D(0.0f,-11.2f,0.0f));
AddStructure( 38,2,1,Get3D(5140.4f,0.0f,4192.6f),Get3D(0.0f,-11.2f,0.0f));
AddStructure( 39,4,1,Get3D(5108.5f,0.0f,3943.7f),Get3D(0.0f,-11.2f,0.0f));
AddStructure( 40,4,1,Get3D(5197.7f,0.0f,3993.4f),Get3D(0.0f,-11.2f,0.0f));
AddStructure( 41,4,1,Get3D(5299.6f,0.0f,3993.2f),Get3D(0.0f,-11.2f,0.0f));
AddStructure( 42,4,1,Get3D(5237.8f,0.0f,4089.1f),Get3D(0.0f,-11.2f,0.0f));
AddStructure( 43,4,1,Get3D(5197.5f,0.0f,3824.7f),Get3D(0.0f,-11.2f,0.0f));
AddStructure( 44,4,1,Get3D(5276.4f,0.0f,3896.5f),Get3D(0.0f,-11.2f,0.0f));
AddStructure( 45,4,1,Get3D(5392.1f,0.0f,3886.1f),Get3D(0.0f,-11.2f,0.0f));
AddStructure( 46,4,1,Get3D(-3389.9f,0.0f,5169.9f),Get3D(0.0f,-11.6f,0.0f));
AddStructure( 47,4,1,Get3D(-3295.3f,0.0f,5223.5f),Get3D(0.0f,-11.6f,0.0f));
AddStructure( 48,4,1,Get3D(-3218.8f,0.0f,5270.3f),Get3D(0.0f,-11.6f,0.0f));
AddStructure( 49,15,1,Get3D(-3786.0f,0.0f,5072.7f),Get3D(0.0f,-10.9f,0.0f));
AddStructure( 50,17,1,Get3D(-3502.9f,0.0f,4982.4f),Get3D(0.0f,-10.1f,0.0f));
AddStructure( 51,0,1,Get3D(-3713.5f,0.0f,5348.5f),Get3D(0.0f,-9.6f,0.0f));
AddStructure( 52,3,1,Get3D(-3551.4f,0.0f,5423.6f),Get3D(0.0f,-9.6f,0.0f));
AddStructure( 53,3,1,Get3D(-3415.2f,0.0f,5478.9f),Get3D(0.0f,-9.6f,0.0f));
AddStructure( 54,9,1,Get3D(-5007.9f,0.0f,5536.6f),Get3D(0.0f,-9.4f,0.0f));
AddStructure( 55,16,1,Get3D(-5077.7f,0.0f,5877.3f),Get3D(0.0f,-9.4f,0.0f));
AddStructure( 56,16,1,Get3D(-4738.0f,0.0f,5829.0f),Get3D(0.0f,-9.4f,0.0f));
AddStructure( 57,17,1,Get3D(-4962.6f,0.0f,5806.5f),Get3D(0.0f,-7.8f,0.0f));
AddStructure( 58,0,1,Get3D(-4707.2f,0.0f,5457.0f),Get3D(0.0f,-9.2f,0.0f));
AddStructure( 59,3,1,Get3D(-4515.4f,0.0f,5357.6f),Get3D(0.0f,-8.8f,0.0f));
AddStructure( 60,20,1,Get3D(-3608.7f,0.0f,4945.5f),Get3D(0.0f,-10.2f,0.0f));
AddStructure( 61,22,1,Get3D(-3535.4f,0.0f,4864.3f),Get3D(0.0f,-12.3f,0.0f));
AddStructure( 62,22,1,Get3D(-3411.2f,0.0f,4805.8f),Get3D(0.0f,-13.5f,0.0f));
AddStructure( 63,22,1,Get3D(-3476.4f,0.0f,5198.0f),Get3D(0.0f,-14.5f,0.0f));
AddStructure( 64,5,2,Get3D(-6886.3f,7.0f,4962.3f),Get3D(0.0f,-14.4f,0.0f));
AddStructure( 65,6,2,Get3D(-7011.2f,0.0f,4684.9f),Get3D(0.0f,-15.9f,0.0f));
AddStructure( 66,6,2,Get3D(-6964.6f,0.0f,4532.5f),Get3D(0.0f,-15.9f,0.0f));
AddStructure( 67,6,2,Get3D(-6918.1f,0.0f,4380.2f),Get3D(0.0f,-15.9f,0.0f));
AddStructure( 68,1,2,Get3D(-6770.3f,0.0f,5116.0f),Get3D(0.0f,-19.0f,0.0f));
AddStructure( 69,1,2,Get3D(-6606.3f,0.0f,5089.1f),Get3D(0.0f,-19.0f,0.0f));
AddStructure( 70,2,1,Get3D(-6760.3f,0.0f,4994.0f),Get3D(0.0f,-19.0f,0.0f));
AddStructure( 71,4,1,Get3D(-7092.5f,0.0f,4390.7f),Get3D(0.0f,-15.9f,0.0f));
AddStructure( 72,4,1,Get3D(-7093.7f,0.0f,4504.7f),Get3D(0.0f,-15.9f,0.0f));
AddStructure( 73,4,1,Get3D(-7148.4f,0.0f,4614.9f),Get3D(0.0f,-15.9f,0.0f));
AddStructure( 74,4,1,Get3D(-7231.6f,0.0f,4706.3f),Get3D(0.0f,-15.9f,0.0f));
AddStructure( 75,4,1,Get3D(-7222.3f,0.0f,4597.2f),Get3D(0.0f,-15.9f,0.0f));
AddStructure( 76,4,1,Get3D(-7176.7f,0.0f,4467.0f),Get3D(0.0f,-15.9f,0.0f));
AddStructure( 77,2,1,Get3D(-6606.8f,0.0f,4959.0f),Get3D(0.0f,-15.9f,0.0f));
AddStructure( 78,12,1,Get3D(-6719.5f,0.0f,4881.6f),Get3D(0.0f,-15.3f,0.0f));
AddStructure( 79,12,1,Get3D(-6812.0f,0.0f,4580.8f),Get3D(0.0f,-17.0f,0.0f));
AddStructure( 80,1,1,Get3D(-25.1f,0.0f,7212.0f),Get3D(0.0f,-16.5f,0.0f));
AddStructure( 81,1,1,Get3D(-234.8f,0.0f,7137.4f),Get3D(0.0f,-18.0f,0.0f));
AddStructure( 82,2,1,Get3D(-147.1f,0.0f,7241.2f),Get3D(0.0f,-18.0f,0.0f));
AddStructure( 83,2,1,Get3D(-221.5f,0.0f,7015.4f),Get3D(0.0f,-18.0f,0.0f));
AddStructure( 84,0,1,Get3D(436.7f,0.0f,7093.6f),Get3D(0.0f,-17.2f,0.0f));
AddStructure( 85,0,1,Get3D(320.4f,0.0f,6983.2f),Get3D(0.0f,-17.2f,0.0f));
AddStructure( 86,3,1,Get3D(191.3f,0.0f,6939.5f),Get3D(0.0f,-17.2f,0.0f));
AddStructure( 87,16,1,Get3D(311.6f,0.0f,7546.3f),Get3D(0.0f,-14.7f,0.0f));
AddStructure( 88,17,1,Get3D(217.5f,0.0f,7428.7f),Get3D(0.0f,-14.8f,0.0f));
AddStructure( 89,3,1,Get3D(108.4f,0.0f,7499.9f),Get3D(0.0f,-14.8f,0.0f));
AddStructure( 90,3,1,Get3D(1268.6f,0.0f,2547.0f),Get3D(0.0f,-15.0f,0.0f));
AddStructure( 91,3,1,Get3D(1521.3f,0.0f,2527.3f),Get3D(0.0f,-18.0f,0.0f));
AddStructure( 92,15,1,Get3D(5858.3f,0.0f,-1736.0f),Get3D(0.0f,-18.1f,0.0f));
AddStructure( 93,0,1,Get3D(5734.6f,0.0f,-1872.1f),Get3D(0.0f,-18.1f,0.0f));
AddStructure( 94,0,1,Get3D(5665.2f,0.0f,-1968.7f),Get3D(0.0f,-18.1f,0.0f));
AddStructure( 95,23,1,Get3D(5886.4f,0.0f,-1936.0f),Get3D(0.0f,-18.1f,0.0f));
AddStructure( 96,3,1,Get3D(6009.7f,0.0f,-1834.6f),Get3D(0.0f,-18.1f,0.0f));
AddStructure( 97,3,1,Get3D(5867.5f,0.0f,-2043.9f),Get3D(0.0f,-18.1f,0.0f));
AddStructure( 98,9,1,Get3D(4347.6f,0.0f,-2868.3f),Get3D(0.0f,-17.9f,0.0f));
AddStructure( 99,3,1,Get3D(4471.0f,0.0f,-2844.5f),Get3D(0.0f,-17.9f,0.0f));
AddStructure( 100,16,1,Get3D(4689.4f,0.0f,-3039.4f),Get3D(0.0f,-19.5f,0.0f));
AddStructure( 101,18,1,Get3D(4541.3f,0.0f,-3035.5f),Get3D(0.0f,-19.5f,0.0f));
AddStructure( 102,1,1,Get3D(3620.1f,0.0f,-2538.9f),Get3D(0.0f,-18.3f,0.0f));
AddStructure( 103,1,1,Get3D(3784.8f,0.0f,-2628.0f),Get3D(0.0f,-18.3f,0.0f));
AddStructure( 104,2,1,Get3D(3620.4f,0.0f,-2672.5f),Get3D(0.0f,-18.3f,0.0f));
AddStructure( 105,2,1,Get3D(3745.4f,0.0f,-2758.1f),Get3D(0.0f,-18.3f,0.0f));
AddStructure( 106,0,1,Get3D(3867.9f,0.0f,-2741.4f),Get3D(0.0f,-16.6f,0.0f));
AddStructure( 107,0,1,Get3D(3953.4f,0.0f,-2802.0f),Get3D(0.0f,-16.6f,0.0f));
AddStructure( 108,16,1,Get3D(3928.8f,0.0f,-7861.0f),Get3D(0.0f,-16.2f,0.0f));
AddStructure( 109,16,1,Get3D(4124.5f,0.0f,-7788.4f),Get3D(0.0f,-16.2f,0.0f));
AddStructure( 110,17,1,Get3D(4044.5f,0.0f,-7953.2f),Get3D(0.0f,-16.2f,0.0f));
AddStructure( 111,18,1,Get3D(4263.0f,0.0f,-7885.3f),Get3D(0.0f,-16.2f,0.0f));
AddStructure( 112,15,1,Get3D(4121.7f,0.0f,-8146.0f),Get3D(0.0f,-14.7f,0.0f));
AddStructure( 113,20,1,Get3D(4371.0f,0.0f,-8056.7f),Get3D(0.0f,-15.7f,0.0f));
AddStructure( 114,20,1,Get3D(4184.8f,0.0f,-7998.9f),Get3D(0.0f,-15.7f,0.0f));
AddStructure( 115,1,1,Get3D(-560.6f,0.0f,-5882.7f),Get3D(0.0f,-17.6f,0.0f));
AddStructure( 116,6,1,Get3D(-446.0f,0.0f,-6093.5f),Get3D(0.0f,-15.9f,0.0f));
AddStructure( 117,0,1,Get3D(-393.4f,0.0f,-5870.0f),Get3D(0.0f,-17.5f,0.0f));
AddStructure( 118,2,1,Get3D(-612.5f,0.0f,-6005.9f),Get3D(0.0f,-17.5f,0.0f));
AddStructure( 119,16,1,Get3D(-3945.6f,0.0f,-5089.3f),Get3D(0.0f,-18.2f,0.0f));
AddStructure( 120,15,1,Get3D(-4029.6f,0.0f,-4845.5f),Get3D(0.0f,-18.2f,0.0f));
AddStructure( 121,18,1,Get3D(-3799.7f,0.0f,-4895.8f),Get3D(0.0f,-19.8f,0.0f));
AddStructure( 122,17,1,Get3D(-3877.7f,0.0f,-4939.9f),Get3D(0.0f,-21.3f,0.0f));
AddStructure( 123,3,1,Get3D(-4151.6f,0.0f,-5028.2f),Get3D(0.0f,-21.3f,0.0f));
AddStructure( 124,9,1,Get3D(-5246.5f,0.0f,-3868.0f),Get3D(0.0f,-19.8f,0.0f));
AddStructure( 125,15,1,Get3D(-5478.6f,0.0f,-3905.1f),Get3D(0.0f,-20.3f,0.0f));
AddStructure( 126,17,1,Get3D(-5071.4f,0.0f,-4423.5f),Get3D(0.0f,-20.0f,0.0f));
AddStructure( 127,0,1,Get3D(-4974.4f,0.0f,-3856.8f),Get3D(0.0f,-20.0f,0.0f));
AddStructure( 128,0,1,Get3D(-4903.7f,0.0f,-3973.0f),Get3D(0.0f,-20.0f,0.0f));
AddStructure( 129,0,1,Get3D(-4820.9f,0.0f,-4066.5f),Get3D(0.0f,-20.0f,0.0f));
AddStructure( 130,3,1,Get3D(-5059.0f,0.0f,-4275.8f),Get3D(0.0f,-20.0f,0.0f));
AddStructure( 131,3,1,Get3D(-4930.7f,0.0f,-4329.6f),Get3D(0.0f,-20.0f,0.0f));
AddStructure( 132,3,1,Get3D(-4679.6f,0.0f,-4154.1f),Get3D(0.0f,-20.0f,0.0f));
AddStructure( 133,17,1,Get3D(-4764.3f,0.0f,-4361.3f),Get3D(0.0f,-20.0f,0.0f));
AddStructure( 134,16,1,Get3D(-4822.9f,0.0f,-4515.1f),Get3D(0.0f,-18.4f,0.0f));
AddStructure( 135,21,1,Get3D(-4843.2f,0.0f,-4457.7f),Get3D(0.0f,-19.2f,0.0f));
AddStructure( 136,1,1,Get3D(-6893.3f,0.0f,-3905.9f),Get3D(0.0f,-16.0f,0.0f));
AddStructure( 137,1,1,Get3D(-6763.2f,0.0f,-4082.9f),Get3D(0.0f,-16.0f,0.0f));
AddStructure( 138,2,1,Get3D(-6779.3f,0.0f,-3946.8f),Get3D(0.0f,-16.0f,0.0f));
AddStructure( 139,2,1,Get3D(-6662.2f,0.0f,-4224.1f),Get3D(0.0f,-16.0f,0.0f));
AddStructure( 140,10,1,Get3D(-6885.5f,0.0f,-4091.9f),Get3D(0.0f,-14.4f,0.0f));
AddStructure( 141,4,1,Get3D(-698.2f,0.0f,-5667.6f),Get3D(0.0f,-14.4f,0.0f));
AddStructure( 142,4,1,Get3D(-598.5f,0.0f,-5636.4f),Get3D(0.0f,-14.4f,0.0f));
AddStructure( 143,4,1,Get3D(-483.9f,0.0f,-5604.1f),Get3D(0.0f,-14.4f,0.0f));
AddStructure( 144,20,1,Get3D(854.5f,0.0f,-1140.0f),Get3D(0.0f,-15.3f,0.0f));
AddStructure( 145,21,1,Get3D(853.6f,0.0f,-1221.3f),Get3D(0.0f,-17.1f,0.0f));
AddStructure( 146,22,1,Get3D(-2197.1f,0.0f,432.9f),Get3D(0.0f,-18.0f,0.0f));
AddStructure( 147,22,1,Get3D(-2159.3f,0.0f,507.8f),Get3D(0.0f,-20.6f,0.0f));
AddStructure( 148,9,1,Get3D(-5153.9f,0.0f,-1104.5f),Get3D(0.0f,-20.7f,0.0f));
AddStructure( 149,15,1,Get3D(-5082.8f,0.0f,-903.4f),Get3D(0.0f,-20.5f,0.0f));
AddStructure( 150,18,1,Get3D(-5015.4f,0.0f,-1268.2f),Get3D(0.0f,-17.7f,0.0f));
AddStructure( 151,17,1,Get3D(-5016.3f,0.0f,-1078.9f),Get3D(0.0f,-15.9f,0.0f));
AddStructure( 152,17,1,Get3D(-16.8f,0.0f,4901.0f),Get3D(0.0f,-15.2f,0.0f));
AddStructure( 153,18,1,Get3D(132.7f,0.0f,4873.2f),Get3D(0.0f,-16.7f,0.0f));
AddStructure( 154,16,1,Get3D(342.2f,0.0f,4706.4f),Get3D(0.0f,-13.6f,0.0f));
AddStructure( 155,15,1,Get3D(70.5f,0.0f,4660.3f),Get3D(0.0f,-12.0f,0.0f));
AddStructure( 156,17,1,Get3D(211.5f,0.0f,4584.4f),Get3D(0.0f,-8.9f,0.0f));
AddStructure( 157,3,1,Get3D(-65.5f,0.0f,4718.5f),Get3D(0.0f,-8.9f,0.0f));
AddStructure( 158,22,1,Get3D(284.8f,0.0f,4499.0f),Get3D(0.0f,-8.9f,0.0f));
AddStructure( 159,22,1,Get3D(223.5f,0.0f,4447.5f),Get3D(0.0f,-10.3f,0.0f));
AddStructure( 160,20,1,Get3D(-744.6f,0.0f,5096.6f),Get3D(0.0f,-10.4f,0.0f));
AddStructure( 161,20,1,Get3D(-673.6f,0.0f,5012.5f),Get3D(0.0f,-11.5f,0.0f));
AddStructure( 162,20,1,Get3D(-600.4f,0.0f,4925.7f),Get3D(0.0f,-12.8f,0.0f));
AddStructure( 163,20,1,Get3D(-500.5f,0.0f,4884.2f),Get3D(0.0f,-13.8f,0.0f));
AddStructure( 164,20,1,Get3D(-390.7f,0.0f,4829.4f),Get3D(0.0f,-13.8f,0.0f));
AddStructure( 165,20,1,Get3D(-2568.0f,0.0f,749.8f),Get3D(0.0f,-13.8f,0.0f));
AddStructure( 166,21,1,Get3D(-4239.0f,0.0f,-4441.9f),Get3D(0.0f,-14.2f,0.0f));
AddStructure( 167,21,1,Get3D(-4175.6f,0.0f,-4517.1f),Get3D(0.0f,-16.1f,0.0f));
AddStructure( 168,21,1,Get3D(-4150.4f,0.0f,-4622.5f),Get3D(0.0f,-17.3f,0.0f));
AddStructure( 169,19,1,Get3D(-6346.3f,0.0f,5354.4f),Get3D(0.0f,4.6f,0.0f));
AddStructure( 170,19,1,Get3D(-6358.7f,0.0f,3903.1f),Get3D(0.0f,-16.5f,0.0f));
}
//
//-----------------------------------------------------------------
void LEVEL::AddDesertBasic()
{
AddStructure( 0,5,1,Get3D(-2808.0f,0.0f,1182.3f),Get3D(0.0f,1.8f,0.0f));
AddStructure( 1,6,1,Get3D(-2980.3f,0.0f,1419.3f),Get3D(0.0f,3.4f,0.0f));
AddStructure( 2,6,1,Get3D(-3033.3f,0.0f,1207.4f),Get3D(0.0f,3.4f,0.0f));
AddStructure( 3,4,1,Get3D(-2645.1f,0.0f,1315.8f),Get3D(0.0f,5.8f,0.0f));
AddStructure( 4,4,1,Get3D(-2684.9f,0.0f,1198.5f),Get3D(0.0f,5.8f,0.0f));
AddStructure( 5,4,1,Get3D(-2593.3f,0.0f,1186.5f),Get3D(0.0f,5.8f,0.0f));
AddStructure( 6,4,1,Get3D(-2714.3f,0.0f,1078.6f),Get3D(0.0f,5.8f,0.0f));
AddStructure( 7,4,1,Get3D(-2609.3f,0.0f,1078.7f),Get3D(0.0f,5.8f,0.0f));
AddStructure( 8,8,1,Get3D(-3523.7f,0.0f,1349.4f),Get3D(0.0f,8.3f,0.0f));
AddStructure( 9,8,1,Get3D(-3587.1f,0.0f,1192.8f),Get3D(0.0f,8.9f,0.0f));
AddStructure( 10,8,1,Get3D(-3394.0f,0.0f,1138.3f),Get3D(0.0f,8.9f,0.0f));
AddStructure( 11,7,1,Get3D(-3272.3f,0.0f,1267.7f),Get3D(0.0f,8.9f,0.0f));
AddStructure( 12,7,1,Get3D(-3581.0f,0.0f,995.9f),Get3D(0.0f,8.4f,0.0f));
AddStructure( 13,24,1,Get3D(-3504.8f,0.0f,1009.3f),Get3D(0.0f,8.4f,0.0f));
AddStructure( 14,24,1,Get3D(-3227.2f,0.0f,1034.3f),Get3D(0.0f,6.9f,0.0f));
AddStructure( 15,24,1,Get3D(-3185.4f,0.0f,1016.2f),Get3D(0.0f,2.2f,0.0f));
AddStructure( 16,24,1,Get3D(-3342.4f,0.0f,1339.6f),Get3D(0.0f,2.2f,0.0f));
AddStructure( 17,24,1,Get3D(-3607.9f,0.0f,1385.1f),Get3D(0.0f,0.4f,0.0f));
AddStructure( 18,24,1,Get3D(-3607.3f,0.0f,1235.9f),Get3D(0.0f,-0.7f,0.0f));
AddStructure( 19,24,1,Get3D(-3492.4f,0.0f,1133.3f),Get3D(0.0f,-2.1f,0.0f));
AddStructure( 20,24,1,Get3D(-3406.8f,0.0f,1258.2f),Get3D(0.0f,-4.0f,0.0f));
AddStructure( 21,25,1,Get3D(-3227.3f,0.0f,1026.8f),Get3D(0.0f,-5.2f,0.0f));
AddStructure( 22,25,1,Get3D(-3316.1f,0.0f,1134.9f),Get3D(0.0f,-5.2f,0.0f));
AddStructure( 23,25,1,Get3D(-3450.9f,0.0f,1039.9f),Get3D(0.0f,-5.2f,0.0f));
AddStructure( 24,25,1,Get3D(-3660.1f,0.0f,1126.1f),Get3D(0.0f,-8.5f,0.0f));
AddStructure( 25,25,1,Get3D(-3618.7f,0.0f,1052.1f),Get3D(0.0f,-10.3f,0.0f));
AddStructure( 26,25,1,Get3D(-3438.4f,0.0f,1364.0f),Get3D(0.0f,-11.2f,0.0f));
AddStructure( 27,8,1,Get3D(3770.9f,0.0f,-2122.8f),Get3D(0.0f,-15.5f,0.0f));
AddStructure( 28,8,1,Get3D(3983.6f,0.0f,-2146.3f),Get3D(0.0f,-16.6f,0.0f));
AddStructure( 29,24,1,Get3D(3926.4f,0.0f,-2188.4f),Get3D(0.0f,-16.6f,0.0f));
AddStructure( 30,24,1,Get3D(3792.6f,0.0f,-2069.8f),Get3D(0.0f,-17.7f,0.0f));
AddStructure( 31,24,1,Get3D(3675.2f,0.0f,-2299.2f),Get3D(0.0f,-20.8f,0.0f));
AddStructure( 32,25,1,Get3D(3643.5f,0.0f,-2128.8f),Get3D(0.0f,-22.5f,0.0f));
AddStructure( 33,25,1,Get3D(3716.7f,0.0f,-2178.5f),Get3D(0.0f,-23.9f,0.0f));
AddStructure( 34,25,1,Get3D(3952.7f,0.0f,-2068.9f),Get3D(0.0f,-25.4f,0.0f));
AddStructure( 35,25,1,Get3D(4055.6f,0.0f,-2273.3f),Get3D(0.0f,-25.5f,0.0f));
AddStructure( 36,25,1,Get3D(3831.3f,0.0f,-2201.4f),Get3D(0.0f,-26.5f,0.0f));
AddStructure( 37,8,1,Get3D(6062.8f,0.0f,2822.8f),Get3D(0.0f,-29.2f,0.0f));
AddStructure( 38,8,1,Get3D(6454.6f,0.0f,2720.9f),Get3D(0.0f,-26.8f,0.0f));
AddStructure( 39,7,1,Get3D(6429.2f,0.0f,2969.1f),Get3D(0.0f,-24.5f,0.0f));
AddStructure( 40,7,1,Get3D(6305.7f,0.0f,2936.9f),Get3D(0.0f,-24.5f,0.0f));
AddStructure( 41,24,1,Get3D(6031.0f,0.0f,2784.4f),Get3D(0.0f,-27.4f,0.0f));
AddStructure( 42,24,1,Get3D(6372.6f,0.0f,2908.0f),Get3D(0.0f,-28.6f,0.0f));
AddStructure( 43,24,1,Get3D(6489.2f,0.0f,2921.3f),Get3D(0.0f,-29.5f,0.0f));
AddStructure( 44,24,1,Get3D(6374.2f,0.0f,2740.7f),Get3D(0.0f,-30.1f,0.0f));
AddStructure( 45,24,1,Get3D(6299.7f,0.0f,2755.1f),Get3D(0.0f,-31.9f,0.0f));
AddStructure( 46,25,1,Get3D(6192.5f,0.0f,2617.1f),Get3D(0.0f,-33.5f,0.0f));
AddStructure( 47,25,1,Get3D(6203.1f,0.0f,2861.0f),Get3D(0.0f,-34.5f,0.0f));
AddStructure( 48,25,1,Get3D(6285.6f,0.0f,2862.3f),Get3D(0.0f,-36.0f,0.0f));
AddStructure( 49,25,1,Get3D(6147.5f,0.0f,2812.6f),Get3D(0.0f,-37.0f,0.0f));
AddStructure( 50,25,1,Get3D(6111.5f,0.0f,3068.3f),Get3D(0.0f,-37.8f,0.0f));
AddStructure( 51,24,1,Get3D(6171.6f,0.0f,3019.9f),Get3D(0.0f,-37.9f,0.0f));
AddStructure( 52,24,1,Get3D(6056.5f,0.0f,2949.8f),Get3D(0.0f,-40.0f,0.0f));
AddStructure( 53,24,1,Get3D(791.7f,0.0f,4689.3f),Get3D(0.0f,-46.0f,0.0f));
AddStructure( 54,24,1,Get3D(831.4f,0.0f,4850.3f),Get3D(0.0f,-46.8f,0.0f));
AddStructure( 55,24,1,Get3D(928.7f,0.0f,4885.5f),Get3D(0.0f,-48.4f,0.0f));
AddStructure( 56,24,1,Get3D(936.9f,0.0f,4999.6f),Get3D(0.0f,-50.8f,0.0f));
AddStructure( 57,24,1,Get3D(1081.4f,0.0f,4803.8f),Get3D(0.0f,-52.7f,0.0f));
AddStructure( 58,24,1,Get3D(976.3f,0.0f,4679.1f),Get3D(0.0f,-53.8f,0.0f));
AddStructure( 59,25,1,Get3D(777.4f,0.0f,4745.9f),Get3D(0.0f,-55.7f,0.0f));
AddStructure( 60,25,1,Get3D(838.9f,0.0f,4856.6f),Get3D(0.0f,-57.4f,0.0f));
AddStructure( 61,25,1,Get3D(978.6f,0.0f,4756.2f),Get3D(0.0f,-58.7f,0.0f));
AddStructure( 62,25,1,Get3D(1056.1f,0.0f,4645.9f),Get3D(0.0f,-59.4f,0.0f));
AddStructure( 63,4,1,Get3D(-4765.2f,0.0f,6126.5f),Get3D(0.0f,-59.4f,0.0f));
AddStructure( 64,4,1,Get3D(-4797.0f,0.0f,6249.0f),Get3D(0.0f,-59.4f,0.0f));
AddStructure( 65,4,1,Get3D(-4828.9f,0.0f,6373.7f),Get3D(0.0f,-59.4f,0.0f));
AddStructure( 66,4,1,Get3D(-4876.1f,0.0f,6504.5f),Get3D(0.0f,-59.4f,0.0f));
AddStructure( 67,4,1,Get3D(-4595.6f,0.0f,6197.1f),Get3D(0.0f,-59.4f,0.0f));
AddStructure( 68,4,1,Get3D(-4937.3f,0.0f,6248.6f),Get3D(0.0f,-58.5f,0.0f));
AddStructure( 69,4,1,Get3D(-5026.1f,0.0f,6215.0f),Get3D(0.0f,-58.5f,0.0f));
AddStructure( 70,8,1,Get3D(-5049.4f,0.0f,6028.3f),Get3D(0.0f,-61.0f,0.0f));
AddStructure( 71,24,1,Get3D(-4995.4f,0.0f,6179.5f),Get3D(0.0f,-61.0f,0.0f));
AddStructure( 72,24,1,Get3D(-4911.8f,0.0f,6209.7f),Get3D(0.0f,-62.2f,0.0f));
AddStructure( 73,24,1,Get3D(-4811.5f,0.0f,6153.2f),Get3D(0.0f,-63.1f,0.0f));
AddStructure( 74,24,1,Get3D(-4853.9f,0.0f,6270.7f),Get3D(0.0f,-64.9f,0.0f));
AddStructure( 75,24,1,Get3D(-4702.6f,0.0f,6594.1f),Get3D(0.0f,-65.9f,0.0f));
AddStructure( 76,24,1,Get3D(-4642.9f,0.0f,6427.9f),Get3D(0.0f,-67.4f,0.0f));
AddStructure( 77,25,1,Get3D(-4642.9f,0.0f,6427.9f),Get3D(0.0f,-67.5f,0.0f));
AddStructure( 78,25,1,Get3D(-4565.1f,0.0f,6062.9f),Get3D(0.0f,-68.4f,0.0f));
AddStructure( 79,25,1,Get3D(-4931.5f,0.0f,6023.7f),Get3D(0.0f,-70.3f,0.0f));
AddStructure( 80,25,1,Get3D(2831.3f,0.0f,-7553.8f),Get3D(0.0f,-70.3f,0.0f));
AddStructure( 81,25,1,Get3D(2946.3f,0.0f,-7512.2f),Get3D(0.0f,-72.0f,0.0f));
AddStructure( 82,25,1,Get3D(3051.3f,0.0f,-7804.5f),Get3D(0.0f,-72.8f,0.0f));
AddStructure( 83,25,1,Get3D(3119.9f,0.0f,-7579.7f),Get3D(0.0f,-74.5f,0.0f));
AddStructure( 84,25,1,Get3D(3334.2f,0.0f,-7667.7f),Get3D(0.0f,-75.6f,0.0f));
AddStructure( 85,25,1,Get3D(3202.9f,0.0f,-7815.0f),Get3D(0.0f,-78.1f,0.0f));
AddStructure( 86,25,1,Get3D(3028.1f,0.0f,-7708.1f),Get3D(0.0f,-78.8f,0.0f));
AddStructure( 87,25,1,Get3D(2972.0f,0.0f,-7880.5f),Get3D(0.0f,-79.7f,0.0f));
AddStructure( 88,25,1,Get3D(2901.3f,0.0f,-7684.7f),Get3D(0.0f,-80.7f,0.0f));
AddStructure( 89,25,1,Get3D(3121.8f,0.0f,-7825.3f),Get3D(0.0f,-82.0f,0.0f));
AddStructure( 90,25,1,Get3D(2975.9f,0.0f,-7801.7f),Get3D(0.0f,-84.2f,0.0f));
AddStructure( 91,25,1,Get3D(3172.5f,0.0f,-7606.2f),Get3D(0.0f,-85.3f,0.0f));
AddStructure( 92,24,1,Get3D(2936.8f,0.0f,-7691.0f),Get3D(0.0f,-86.0f,0.0f));
AddStructure( 93,24,1,Get3D(2982.8f,0.0f,-7567.7f),Get3D(0.0f,-87.1f,0.0f));
AddStructure( 94,24,1,Get3D(3177.3f,0.0f,-7659.2f),Get3D(0.0f,-88.1f,0.0f));
AddStructure( 95,24,1,Get3D(3110.0f,0.0f,-7771.8f),Get3D(0.0f,-89.3f,0.0f));
AddStructure( 96,7,1,Get3D(-1010.2f,0.0f,-5743.0f),Get3D(0.0f,-89.3f,0.0f));
AddStructure( 97,7,1,Get3D(-1131.2f,0.0f,-5997.8f),Get3D(0.0f,-90.4f,0.0f));
AddStructure( 98,8,1,Get3D(-1193.5f,0.0f,-5825.2f),Get3D(0.0f,-92.6f,0.0f));
AddStructure( 99,24,1,Get3D(-921.1f,0.0f,-5691.4f),Get3D(0.0f,-92.6f,0.0f));
AddStructure( 100,24,1,Get3D(-935.3f,0.0f,-5804.2f),Get3D(0.0f,-95.2f,0.0f));
AddStructure( 101,24,1,Get3D(-888.5f,0.0f,-5984.3f),Get3D(0.0f,-96.8f,0.0f));
AddStructure( 102,25,1,Get3D(-1142.3f,0.0f,-5930.1f),Get3D(0.0f,-98.2f,0.0f));
AddStructure( 103,25,1,Get3D(-1033.8f,0.0f,-5783.1f),Get3D(0.0f,-100.9f,0.0f));
AddStructure( 104,25,1,Get3D(-1190.0f,0.0f,-5749.9f),Get3D(0.0f,-102.0f,0.0f));
AddStructure( 105,24,1,Get3D(-1023.8f,0.0f,-5962.0f),Get3D(0.0f,-102.2f,0.0f));
AddStructure( 106,24,1,Get3D(-1047.1f,0.0f,-5644.5f),Get3D(0.0f,-104.0f,0.0f));
AddStructure( 107,24,1,Get3D(-918.9f,0.0f,-5598.1f),Get3D(0.0f,-105.2f,0.0f));
AddStructure( 108,24,1,Get3D(-1234.3f,0.0f,-5931.2f),Get3D(0.0f,-108.1f,0.0f));
AddStructure( 109,24,1,Get3D(-5349.3f,0.0f,-3586.3f),Get3D(0.0f,-108.1f,0.0f));
AddStructure( 110,24,1,Get3D(-5290.3f,0.0f,-3531.5f),Get3D(0.0f,-111.5f,0.0f));
AddStructure( 111,24,1,Get3D(-5307.2f,0.0f,-3313.7f),Get3D(0.0f,-114.1f,0.0f));
AddStructure( 112,25,1,Get3D(-5427.9f,0.0f,-3644.6f),Get3D(0.0f,-115.5f,0.0f));
AddStructure( 113,25,1,Get3D(-5484.1f,0.0f,-3488.9f),Get3D(0.0f,-117.5f,0.0f));
AddStructure( 114,25,1,Get3D(-5243.0f,0.0f,-3627.1f),Get3D(0.0f,-117.6f,0.0f));
AddStructure( 115,25,1,Get3D(-5232.8f,0.0f,-3655.6f),Get3D(0.0f,-119.9f,0.0f));
AddStructure( 116,25,1,Get3D(-5091.4f,0.0f,-3604.5f),Get3D(0.0f,-121.0f,0.0f));
AddStructure( 117,8,1,Get3D(-5083.6f,0.0f,-3489.3f),Get3D(0.0f,-120.9f,0.0f));
AddStructure( 118,8,1,Get3D(-5260.7f,0.0f,-3405.6f),Get3D(0.0f,-123.6f,0.0f));
AddStructure( 119,8,1,Get3D(-5404.7f,0.0f,-3457.4f),Get3D(0.0f,-124.0f,0.0f));
AddStructure( 120,8,1,Get3D(-7118.0f,0.0f,-3986.1f),Get3D(0.0f,-122.7f,0.0f));
AddStructure( 121,8,1,Get3D(-7245.2f,0.0f,-4031.8f),Get3D(0.0f,-123.3f,0.0f));
AddStructure( 122,8,1,Get3D(-7178.8f,0.0f,-4218.6f),Get3D(0.0f,-120.2f,0.0f));
AddStructure( 123,24,1,Get3D(-7020.9f,0.0f,-4161.5f),Get3D(0.0f,-120.2f,0.0f));
AddStructure( 124,24,1,Get3D(-7126.7f,0.0f,-4181.9f),Get3D(0.0f,-121.3f,0.0f));
AddStructure( 125,24,1,Get3D(-7209.0f,0.0f,-3953.7f),Get3D(0.0f,-122.1f,0.0f));
AddStructure( 126,24,1,Get3D(-7169.2f,0.0f,-4018.8f),Get3D(0.0f,-123.3f,0.0f));
AddStructure( 127,25,1,Get3D(-7208.7f,0.0f,-4000.2f),Get3D(0.0f,-123.3f,0.0f));
AddStructure( 128,25,1,Get3D(-7360.8f,0.0f,-4303.2f),Get3D(0.0f,-123.3f,0.0f));
AddStructure( 129,24,1,Get3D(-7342.4f,0.0f,-4081.7f),Get3D(0.0f,-123.3f,0.0f));
AddStructure( 130,24,1,Get3D(-7371.1f,0.0f,-4142.8f),Get3D(0.0f,-124.2f,0.0f));
AddStructure( 131,24,1,Get3D(-7240.0f,0.0f,-4278.4f),Get3D(0.0f,-125.6f,0.0f));
}