From: <be...@us...> - 2016-05-03 20:11:23
|
Revision: 1004 http://sourceforge.net/p/freesynd/code/1004 Author: benblan Date: 2016-05-03 20:11:20 +0000 (Tue, 03 May 2016) Log Message: ----------- - PedInstance::inVehicle() now returns Vehicle - Removed state constants pa_smGetInCar and pa_smUsingCar Modified Paths: -------------- freesynd/trunk/CMakeLists.txt freesynd/trunk/src/menus/squadselection.cpp freesynd/trunk/src/ped.cpp freesynd/trunk/src/ped.h freesynd/trunk/src/vehicle.cpp Modified: freesynd/trunk/CMakeLists.txt =================================================================== --- freesynd/trunk/CMakeLists.txt 2016-05-03 17:58:46 UTC (rev 1003) +++ freesynd/trunk/CMakeLists.txt 2016-05-03 20:11:20 UTC (rev 1004) @@ -1,6 +1,6 @@ cmake_minimum_required (VERSION 2.6) project (FreeSynd) -set (FREESYND_VERSION "0.7.5") +set (FREESYND_VERSION "0.8") if (WIN32) # Search the bundled libs directory when using MSVC. @@ -11,7 +11,7 @@ ${CMAKE_SOURCE_DIR}/../libs/MSVC/include ) endif () - + if (MSVC) # Add extra definitions just for MSVC. add_definitions (-D_CONSOLE -D_CRT_SECURE_NO_WARNINGS) @@ -26,9 +26,9 @@ else () set (EXTRA_C_FLAGS "-Wall -Wshadow -Wno-multichar") endif () - + set (EXTRA_CXX_FLAGS "${EXTRA_C_FLAGS} -Wreorder -Wnon-virtual-dtor") - + # Set debug flag. set (CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -D_DEBUG") set (CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -D_DEBUG") Modified: freesynd/trunk/src/menus/squadselection.cpp =================================================================== --- freesynd/trunk/src/menus/squadselection.cpp 2016-05-03 17:58:46 UTC (rev 1003) +++ freesynd/trunk/src/menus/squadselection.cpp 2016-05-03 20:11:20 UTC (rev 1004) @@ -289,11 +289,12 @@ for (SquadSelection::Iterator it = begin(); it != end(); ++it, i++) { PedInstance *pAgent = *it; - if (pAgent->inVehicle()) { - if (pAgent->inVehicle()->isDrivable()) { + Vehicle *pVehicle = pAgent->inVehicle(); + if (pVehicle) { + if (pVehicle->isDrivable()) { // Agent is in drivable vehicle - VehicleInstance *pVehicle = pAgent->inVehicle(); - if (pVehicle->isDriver(pAgent)) + VehicleInstance *pCar = dynamic_cast<VehicleInstance *>(pVehicle); + if (pCar->isDriver(pAgent)) { int stx = mapPt.tx; int sty = mapPt.ty; @@ -306,7 +307,7 @@ //soy = sty % 256; sty = sty / 256; TilePoint posT = TilePoint(stx, sty, 0, 128, 128); - pAgent->addActionDriveVehicle(pVehicle, posT, addAction); + pAgent->addActionDriveVehicle(pCar, posT, addAction); } } } else { Modified: freesynd/trunk/src/ped.cpp =================================================================== --- freesynd/trunk/src/ped.cpp 2016-05-03 17:58:46 UTC (rev 1003) +++ freesynd/trunk/src/ped.cpp 2016-05-03 20:11:20 UTC (rev 1004) @@ -212,12 +212,12 @@ break; case pa_smStanding: state_ &= (pa_smAll ^(pa_smFollowing - | pa_smUsingCar | pa_smInCar)); + | pa_smInCar)); state_ |= pa_smStanding; break; case pa_smWalking: state_ &= (pa_smAll ^(pa_smFollowing - | pa_smUsingCar | pa_smInCar)); + | pa_smInCar)); state_ |= pa_smWalking; break; case pa_smWalkingBurning: @@ -248,12 +248,6 @@ case pa_smBurning: state_ = pa_smBurning; break; - case pa_smGetInCar: - state_ = pa_smStanding | pa_smGetInCar; - break; - case pa_smUsingCar: - state_ = pa_smStanding | pa_smUsingCar; - break; case pa_smInCar: state_ = pa_smStanding | pa_smInCar; break; @@ -307,12 +301,6 @@ case pa_smWalkingBurning: state_ = pa_smStanding; break; - case pa_smGetInCar: - state_ &= pa_smAll ^ (pa_smStanding | pa_smGetInCar); - break; - case pa_smUsingCar: - state_ &= pa_smAll ^ (pa_smStanding | pa_smUsingCar); - break; case pa_smInCar: state_ &= pa_smAll ^ (pa_smStanding | pa_smInCar); break; @@ -354,7 +342,7 @@ setDrawnAnim(PedInstance::ad_PickupAnim); } else if ((state_ & pa_smPutDown) != 0) { setDrawnAnim(PedInstance::ad_PutdownAnim); - } else if ((state_ & (pa_smUsingCar | pa_smInCar)) != 0) { + } else if ((state_ & pa_smInCar) != 0) { setDrawnAnim(PedInstance::ad_StandAnim); } else if ((state_ & pa_smHit) != 0) { setDrawnAnim(PedInstance::ad_HitAnim); @@ -1005,18 +993,15 @@ return (state_ & pa_smPickUp) != 0; } -VehicleInstance *PedInstance::inVehicle() const -{ - return (state_ & (PedInstance::pa_smInCar - | PedInstance::pa_smUsingCar)) != 0 ? in_vehicle_ : NULL; +Vehicle *PedInstance::inVehicle() const { + return in_vehicle_; } -void PedInstance::putInVehicle(VehicleInstance * v, - pedActionStateMasks add_state) +void PedInstance::putInVehicle(Vehicle * pVehicle) { map_ = -1; - in_vehicle_ = v; - switchActionStateTo((uint32)add_state); + in_vehicle_ = pVehicle; + switchActionStateTo(PedInstance::pa_smInCar); } void PedInstance::leaveVehicle() { @@ -1024,8 +1009,7 @@ map_ = in_vehicle_->map(); setPosition(in_vehicle_->position()); in_vehicle_ = NULL; - switchActionStateFrom(state_ & (PedInstance::pa_smInCar - | PedInstance::pa_smUsingCar)); + switchActionStateFrom(state_ & PedInstance::pa_smInCar); } int PedInstance::map() { Modified: freesynd/trunk/src/ped.h =================================================================== --- freesynd/trunk/src/ped.h 2016-05-03 17:58:46 UTC (rev 1003) +++ freesynd/trunk/src/ped.h 2016-05-03 20:11:20 UTC (rev 1004) @@ -254,10 +254,6 @@ pa_smPickUp = 0x0020, pa_smPutDown = 0x0040, pa_smBurning = 0x0080, - pa_smGetInCar = 0x0100, - // only driver can have this set after finished - pa_smUsingCar = 0x0200, - // passenger only pa_smInCar = 0x0400, pa_smHitByPersuadotron = 0x0800, pa_smDead = 0x1000, @@ -411,9 +407,9 @@ void setNewOwner(PedInstance *pPed); bool inSightRange(MapObject *t); - VehicleInstance * inVehicle() const; + Vehicle * inVehicle() const; - void putInVehicle(VehicleInstance *v, pedActionStateMasks add_state); + void putInVehicle(Vehicle *v); void leaveVehicle(); int map(); @@ -717,7 +713,7 @@ uint32 obj_group_id_; uint32 old_obj_group_id_; - //! time wait before checking enviroment (enemies, friends etc) + //! time wait before checking environment (enemies, friends etc) int32 tm_before_check_; //! base value that influences accuracy during fire @@ -726,7 +722,7 @@ AnimationDrawn drawn_anim_; int sight_range_; - VehicleInstance *in_vehicle_; + Vehicle *in_vehicle_; //! This flag tells if this is our agent, assuming it's an agent. bool is_our_; //! controller of ped - for persuaded Modified: freesynd/trunk/src/vehicle.cpp =================================================================== --- freesynd/trunk/src/vehicle.cpp 2016-05-03 17:58:46 UTC (rev 1003) +++ freesynd/trunk/src/vehicle.cpp 2016-05-03 20:11:20 UTC (rev 1004) @@ -69,6 +69,7 @@ void Vehicle::addPassenger(PedInstance *pPed) { if(!isInsideVehicle(pPed)) { passengers_.insert(pPed); + pPed->putInVehicle(this); } } @@ -801,8 +802,6 @@ */ void VehicleInstance::addPassenger(PedInstance *p) { Vehicle::addPassenger(p); - // TODO : move putInVehicle() in Vehicle::addPassenger() - p->putInVehicle(this, PedInstance::pa_smInCar); if (pDriver_ == NULL) { // Ped becomes the driver pDriver_ = p; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |