00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00022 #include "..\AEngine\AEngine.h"
00023 #include "Overhead.h"
00024 #include "BattleEntry.h"
00025 #include "Globals.h"
00026 #include "GameState.h"
00027
00028 namespace NetworkMessages
00029 {
00030 void sendBuildMessage(const string& buildMsg, unsigned int cityID)
00031 {
00032 stringstream sstr;
00033 sstr << COMMAND_OVERHEAD << " " << COMMIT_TIME << " "
00034 << currGameTick + NETWORK_GAME_TICK_LAG << " " << buildMsg
00035 << " " << cityID;
00036 net_send(sstr.str());
00037 }
00038 }
00039
00040 namespace Globals {
00041 const ArtWork* artWork = 0;
00042
00043 int currGameTick;
00044
00047 bool OverheadCollisonWithIdleUnit(MilitaryUnit* unit)
00048 {
00049 for(UnitIter iter(GameState::units().begin()); iter != GameState::units().end(); ++iter)
00050 {
00051 if (*iter == unit) continue;
00052 if (unit->collision(*iter) && (*iter)->isIdle())
00053 {
00054 return true;
00055 }
00056 }
00057 return false;
00058 }
00059
00060 bool OverheadCollisionWithCity(MilitaryUnit* unit)
00061 {
00062 for(CityIter cityIter(GameState::cities().begin()); cityIter < GameState::cities().end(); ++cityIter)
00063 {
00064 if((*cityIter)->collision(unit))
00065 {
00066 return true;
00067 }
00068 }
00069 return false;
00070 }
00071
00072 MessagesReceived::MessagesReceived(void) : m_data()
00073 {
00074 }
00075
00076 void MessagesReceived::print(void)
00077 {
00078 for(vector<pair<int, string> >::iterator iter = m_data.begin(); iter != m_data.end(); ++iter)
00079 {
00080 overlay_text() << iter->second << endl;
00081 }
00082 overlay_textOut(Vec2D(0.1f, 0.2f), 1.0f, Colors::white);
00083 if(!m_data.empty() && m_data.begin()->first < (currGameTick - MESSAGE_DISPLAY_LENGTH)) m_data.erase(m_data.begin());
00084 }
00085
00086 void MessagesReceived::addMessage(string str)
00087 {
00088 sys_console() << "MessagesReceived::addMessage str:" << str << endl;
00089 m_data.push_back(pair<int,string>(currGameTick,str));
00090 }
00091
00092
00093
00094 ArtWork::ArtWork(void)
00095 :mouse(load_texture("textures\\interface\\cursor.dds")),
00096 terrainTexture(load_texture("textures\\environment\\terrain_mixed.tga")),
00097 terrainMesh(load_mesh("models\\environment\\terrain_bigbox.obj")),
00098 lightTank_texture(load_texture("textures\\units\\tank_light.dds")),
00099 lightTank_mesh(load_mesh("models\\parts\\tank_light_chasis.obj")),
00100 lightTankTurret_mesh(load_mesh("models\\parts\\tank_light_turret.obj")),
00101 heavyTank_mesh(load_mesh("models\\parts\\tank_heavy_chasis.obj")),
00102 heavyTankTurret_mesh(load_mesh("models\\parts\\tank_heavy_turret.obj")),
00103 heavyTank_texture(load_texture("textures\\units\\tank_heavy.dds")),
00104 launcher_mesh(load_mesh("models\\parts\\launcher.obj")),
00105 launcher_texture(load_texture("textures\\units\\launcher.dds")),
00106 artillery_mesh(load_mesh("models\\parts\\artillery_chasis.obj")),
00107 artilleryTurret_mesh(load_mesh("models\\parts\\artillery_turret.obj")),
00108 artillery_texture(load_texture("textures\\units\\artillery.dds")),
00109 jet_mesh(load_mesh("models\\parts\\jet.obj")),
00110 jet_texture(load_texture("textures\\units\\jet.dds")),
00111 city_texture(load_texture("textures\\environment\\city.dds")),
00112 city_mesh(load_mesh("models\\parts\\city.obj")),
00113 battleGroupMesh(load_mesh("models\\units\\battleGroup.obj")),
00114 battleGroupTexture(load_texture("textures\\demos\\battleGroup.tga")),
00115 battleShellMesh(load_mesh("models\\parts\\bullet_shell.obj")),
00116 battleRocketMesh(load_mesh("models\\parts\\bullet_rocket.obj")),
00117 battleICBMMesh(load_mesh("models\\parts\\bullet_icbm.obj")),
00118 battleBulletTexture(load_texture("textures\\bullets\\bullets.tga")),
00119 debrisTex(load_texture("textures\\units\\debris.tga")),
00120 debris1(load_mesh("models\\parts\\debris1.obj")),
00121 debris2(load_mesh("models\\parts\\debris2.obj")),
00122 skyMesh(load_mesh("models\\parts\\sky.obj")),
00123 skyTexture(load_texture("textures\\environment\\sky_plain.tga")),
00124 terrainTexLow(load_texture("textures\\environment\\terrainDryLand.dds")),
00125 terrainTexHigh(load_texture("textures\\environment\\terrainRockyMoss.dds")),
00126 terrainTexNormal(load_texture("textures\\environment\\terrainBump.dds")),
00127 flareTexture(load_texture("textures\\particles\\flare01.tga")),
00128 smokeTextureSmall(load_texture("textures\\particles\\smoke01.dds")),
00129 smokeTextureLarge(load_texture("textures\\particles\\smoke01.dds")),
00130 exploTextureSmall(load_texture("textures\\particles\\explosion01.dds")),
00131 exploTextureLarge(load_texture("textures\\particles\\explosion02.dds")),
00132 artilTextureShell(load_texture("textures\\particles\\flare02.dds")),
00133 shadow(load_texture("textures\\particles\\shadow01.dds")),
00134 envRockMesh(load_mesh("models\\parts\\env_rock1.obj")),
00135 envTreeMesh(load_mesh("models\\parts\\env_tree1.obj")),
00136 envRockTex(load_texture("textures\\environment\\rock1.dds")),
00137 envTreeTex(load_texture("textures\\environment\\tree1.dds")),
00138 buildMenuTex(load_texture("textures\\interface\\buildMenu.tga")),
00139 jetsIconTex(load_texture("textures\\interface\\JetsIcon.tga")),
00140 hud(load_texture("textures\\interface\\hud.tga")),
00141 portraitLT(load_texture("textures\\interface\\portrait_lightTank.tga")),
00142 portraitHT(load_texture("textures\\interface\\portrait_heavyTank.tga")),
00143 portraitLA(load_texture("textures\\interface\\portrait_launcher.tga")),
00144 portraitAR(load_texture("textures\\interface\\portrait_artillery.tga")),
00145 portraitJE(load_texture("textures\\interface\\portrait_jet.tga")),
00146 switchToOverhead(load_texture("textures\\interface\\switch_to_overhead.tga")),
00147 upgradeEconTex(load_texture("textures\\interface\\upgrade_econ.tga")),
00148
00149 butStop(load_texture("textures\\interface\\stop.tga")),
00150 butJetGuard(load_texture("textures\\interface\\jet_guard.tga")),
00151 butJetBomb(load_texture("textures\\interface\\jet_bomb.tga")),
00152
00153 confirmQuit(load_texture("textures\\interface\\confirmQuit.tga")),
00154 youWinTex(load_texture("textures\\interface\\youWin.dds")),
00155 youLoseTex(load_texture("textures\\interface\\youLost.dds")),
00156
00157 playersNBattlesListTex(load_texture("textures\\interface\\PlayersNBattlesList.tga")),
00158
00159 minimapBattleIcon(load_texture("textures\\interface\\hud_mm_battleIcon.dds")),
00160 circle(load_mesh("models\\parts\\circle.obj")),
00161 thinCircle(load_mesh("models\\parts\\circle_thin.obj")),
00162 crossHair(load_mesh("models\\parts\\crossHair.obj")),
00163
00164
00165 colorGreen(load_texture("textures\\colors\\green.tga")),
00166 colorRed(load_texture("textures\\colors\\red.tga")),
00167 colorBlue(load_texture("textures\\colors\\blue.tga")),
00168
00169 callRFMIconTex(load_texture("textures\\interface\\rfm_menu.tga")),
00170 callRFMPanelTex(load_texture("textures\\interface\\rfm_panel.tga")),
00171
00172
00173 main_leftField(load_texture("textures\\interface\\main_leftField.tga")),
00174 main_menuTex(load_texture("textures\\interface\\main_screen.tga")),
00175 main_multiplayTex(load_texture("textures\\interface\\main_multiplay.tga")),
00176 main_sponsorMS(load_texture("textures\\interface\\main_sponsor_ms.tga")),
00177 main_sponsorNV(load_texture("textures\\interface\\main_sponsor_nv.tga")),
00178 main_sponsorPF(load_texture("textures\\interface\\main_sponsor_pf.tga"))
00179
00180 {
00181 worldMap = load_terrain("maps\\map1.tga", 1000.0f, 1000.0f, 100.0f, -50.0f );
00182
00183
00184 battleTerrains.push_back( load_terrain("maps\\map1.tga", 800.0f, 800.0f, 100.0f, -50.0f ) );
00185
00186
00187 for( int i=0; i<MAX_TREE; i++ )
00188 {
00189 trees[i].x = sys_randFloat() * 390.0f;
00190 trees[i].y = sys_randFloat() * 390.0f;
00191 trees[i].z = terrain_getHeight( battleTerrains[0], trees[i].x, trees[i].y );
00192 }
00193 for( int i=0; i<MAX_ROCK; i++ )
00194 {
00195 rocks[i].x = sys_randFloat() * 390.0f;
00196 rocks[i].y = sys_randFloat() * 390.0f;
00197 rocks[i].z = terrain_getHeight( battleTerrains[0], rocks[i].x, rocks[i].y );
00198 }
00199
00200 for( int i=0; i<MAX_TREE*4; i++ )
00201 {
00202 int a = sys_randInt() % (MAX_TREE/2);
00203 int b = sys_randInt() % MAX_TREE;
00204 if( a!=b )
00205 {
00206 Vec3D dist = trees[b] - trees[a];
00207 trees[a] += dist * 0.7f;
00208 trees[a].z = terrain_getHeight( battleTerrains[0], trees[a].x, trees[a].y );
00209 }
00210 }
00211
00212 static int instances = 0;
00213 if (instances++ > 0) {
00214 throw Error("Programming Error: Can only have 1 instance of the ArtWork class");
00215 }
00216 }
00217
00218 ArtWork::~ArtWork(void)
00219 {
00220 }
00221
00222 }