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 00021 #include "BattleUnitData.h" 00022 00023 const string BattleUnitData::TOK_BEGIN_DATA = "BEGIN BATTLE UNIT DATA"; 00024 const string BattleUnitData::TOK_END_DATA = "END BATTLE UNIT DATA"; 00025 00026 void BattleUnitData::initData(istream& in) 00027 { 00028 m_numCols.resize(UnitTypes::COUNT); 00029 m_numRows.resize(UnitTypes::COUNT); 00030 m_tightFormationSize.resize(UnitTypes::COUNT); 00031 00032 m_turnRate.resize(UnitTypes::COUNT); 00033 m_fullSpeed.resize(UnitTypes::COUNT); 00034 m_halfSpeed.resize(UnitTypes::COUNT); 00035 m_BGTurnRate.resize(UnitTypes::COUNT); 00036 m_BGFullSpeed.resize(UnitTypes::COUNT); 00037 m_BGHalfSpeed.resize(UnitTypes::COUNT); 00038 00039 m_firingDelay.resize(UnitTypes::COUNT); 00040 m_baseDamage.resize(UnitTypes::COUNT); 00041 m_firingRange.resize(UnitTypes::COUNT); 00042 m_firingArc.resize(UnitTypes::COUNT); 00043 00044 m_armor.resize(UnitTypes::COUNT); 00045 00046 // input data in the order its listed in the file "data.txt" 00047 in >> m_lightTankSize.x >> m_lightTankSize.y >> m_lightTankSize.z; 00048 in >> m_lightTankTurretSize.x >> m_lightTankTurretSize.y >> m_lightTankTurretSize.z; 00049 in >> m_heavyTankSize.x >> m_heavyTankSize.y >> m_heavyTankSize.z; 00050 in >> m_heavyTankTurretSize.x >> m_heavyTankTurretSize.y >> m_heavyTankTurretSize.z; 00051 in >> m_launcherSize.x >> m_launcherSize.y >> m_launcherSize.z; 00052 in >> m_artillerySize.x >> m_artillerySize.y >> m_artillerySize.z; 00053 in >> m_artilleryTurretSize.x >> m_artilleryTurretSize.y >> m_artilleryTurretSize.z; 00054 in >> m_jetSize.x >> m_jetSize.y >> m_jetSize.z; 00055 00056 for(size_t i=0; i < UnitTypes::COUNT; ++i) 00057 in >> m_numCols[i]; 00058 for(size_t i=0; i < UnitTypes::COUNT; ++i) 00059 in >> m_numRows[i]; 00060 for(size_t i=0; i < UnitTypes::COUNT; ++i) 00061 in >> m_tightFormationSize[i].x >> m_tightFormationSize[i].y >> m_tightFormationSize[i].z; 00062 for(size_t i=0; i < UnitTypes::COUNT; ++i) 00063 in >> m_turnRate[i]; 00064 for(size_t i=0; i < UnitTypes::COUNT; ++i) 00065 in >> m_fullSpeed[i]; 00066 for(size_t i=0; i < UnitTypes::COUNT; ++i) 00067 in >> m_halfSpeed[i]; 00068 for(size_t i=0; i < UnitTypes::COUNT; ++i) 00069 in >> m_BGTurnRate[i]; 00070 for(size_t i=0; i < UnitTypes::COUNT; ++i) 00071 in >> m_BGFullSpeed[i]; 00072 for(size_t i=0; i < UnitTypes::COUNT; ++i) 00073 in >> m_BGHalfSpeed[i]; 00074 00075 for(size_t i=0; i < UnitTypes::COUNT; ++i) 00076 in >> m_firingDelay[i]; 00077 for(size_t i=0; i < UnitTypes::COUNT; ++i) 00078 in >> m_baseDamage[i]; 00079 for(size_t i=0; i < UnitTypes::COUNT; ++i) 00080 in >> m_firingRange[i]; 00081 for(size_t i=0; i < UnitTypes::COUNT; ++i) 00082 in >> m_firingArc[i]; 00083 00084 for(size_t i=0; i < UnitTypes::COUNT; ++i) 00085 in >> m_armor[i]; 00086 00087 in >> m_lightTankHitFlareTime; 00088 00089 } 00090 00091 void BattleUnitData::shutdown() { this->releaseObj(); }
1.3-rc2