Main Page   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Namespace Members   Compound Members   File Members  

Globals.cpp

Go to the documentation of this file.
00001 /*
00002 CS Senior Project 2003
00003 Team : Leftfield
00004 Project : ModernWarfare
00005 Members :
00006 - Russ Christensen              <rchriste@cs.utah.edu>
00007 - Todd Smith                    <tcsmith@cs.utah.edu>
00008 - Usit Duongsaa                 <duongsaa@cs.utah.edu>
00009 Copyright 2003 Russ Christensen, Usit Duongsaa, and Todd Smith. All rights reserved.
00010 
00011 Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
00012 
00013 Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 
00014 Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 
00015 THIS SOFTWARE IS PROVIDED BY RUSS CHRISTENSEN, USIT DUONGSAA, AND TODD SMITH ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL RUSS, USIT, TODD OR OTHER CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
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")),                                     // light tank
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")),                                      // heavy tank
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")),                                                        // launcher
00105 launcher_texture(load_texture("textures\\units\\launcher.dds")),
00106 artillery_mesh(load_mesh("models\\parts\\artillery_chasis.obj")),                                       // artillery
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")),                                                                          // jet
00110 jet_texture(load_texture("textures\\units\\jet.dds")),
00111 city_texture(load_texture("textures\\environment\\city.dds")),                                          // city
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         // pure colors
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         // main mode
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         // trees & rocks
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         // cluster trees together
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 }

Generated on Wed Apr 23 05:50:15 2003 for Modern Warfare by doxygen1.3-rc2