00001 /* 00002 This file is part of Advanced Strategic Command; http://www.asc-hq.de 00003 Copyright (C) 1994-2010 Martin Bickel and Marc Schellenberger 00004 00005 This program is free software; you can redistribute it and/or modify 00006 it under the terms of the GNU General Public License as published by 00007 the Free Software Foundation; either version 2 of the License, or 00008 (at your option) any later version. 00009 00010 This program is distributed in the hope that it will be useful, 00011 but WITHOUT ANY WARRANTY; without even the implied warranty of 00012 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00013 GNU General Public License for more details. 00014 00015 You should have received a copy of the GNU General Public License 00016 along with this program; see the file COPYING. If not, write to the 00017 Free Software Foundation, Inc., 59 Temple Place, Suite 330, 00018 Boston, MA 02111-1307 USA 00019 */ 00020 00021 00022 #include "unitaction.h" 00023 00024 #include "../vehicle.h" 00025 #include "../gamemap.h" 00026 00027 UnitAction::UnitAction( Vehicle* unit ) 00028 : GameAction( unit->getMap() ) 00029 { 00030 vehicleID = unit->networkid; 00031 } 00032 00033 00034 UnitAction::UnitAction( GameMap* gamemap ) 00035 : GameAction( gamemap ) 00036 { 00037 vehicleID = -1; 00038 } 00039 00040 UnitAction::UnitAction( GameMap* gamemap, int vehicleID ) 00041 : GameAction( gamemap ) 00042 { 00043 this->vehicleID = vehicleID; 00044 } 00045 00046 00047 Vehicle* UnitAction::getUnit( bool dontThrow ) 00048 { 00049 Vehicle* veh = getMap()->getUnit( vehicleID ); 00050 if ( !veh && !dontThrow ) 00051 throw ActionResult(21001, "ID is " + ASCString::toString(vehicleID) ); 00052 else 00053 return veh; 00054 } 00055 00056 const Vehicle* UnitAction::getUnit( bool dontThrow ) const 00057 { 00058 const Vehicle* veh = getMap()->getUnit( vehicleID ); 00059 if ( !veh && !dontThrow ) 00060 throw ActionResult(21001, "ID is " + ASCString::toString(vehicleID) ); 00061 else 00062 return veh; 00063 } 00064 00065 void UnitAction::readData ( tnstream& stream ) 00066 { 00067 int version = stream.readInt(); 00068 if ( version != 1 ) 00069 throw tinvalidversion ( "UnitAction", 1, version ); 00070 00071 vehicleID = stream.readInt(); 00072 }; 00073 00074 00075 void UnitAction::writeData ( tnstream& stream ) const 00076 { 00077 stream.writeInt( 1 ); 00078 stream.writeInt( vehicleID ); 00079 }; 00080 00081
1.5.1