//****************************************************************************************** // #Version 1.4# // // Includes: To fire station command. // // - VcmdToFireStation // // Script by Hoppah // Modified by ShaneGreen // // Usage of this script in other mods is NOT allowed without permission of Hoppah // //****************************************************************************************** const char CMD_SIREN[] = "VcmdSiren"; const char CMD_AUTOSIREN_OFF[] = "VcmdAutoSirenOff"; const char CMD_WARNINGLIGHTS[] = "VcmdWarningLightsOn"; const char DUMMY_WARNINGLIGHTS[] = "DummyHasWarningLights"; const char CMD_FLOODLIGHTS_OFF[] = "VcmdFloodLightsOff"; const char CMD_FLOODLIGHTS_ON[] = "VcmdFloodLightsOn"; const char CMD_GETTILLER[] = "VcmdGetTiller"; const char CMD_FLASHINGLIGHTS[] = "VcmdFlashingLights"; const char CMD_GOHOME[] = "GoHome"; const char CMD_TOHOSPITAL[] = "VcmdToHospital"; const char CMD_TOFIRESTATION[] = "VcmdToFireStation"; const char CMD_PATROL[] = "VcmdPatrol"; const char CMD_STANDBY_ON[] = "VcmdStandbyOn"; const char CMD_STANDBY_OFF[] = "VcmdStandbyOff"; const char CMD_GETTILLER[] = "VcmdGetTiller"; const char DUMMY_TILLERGOHOME[] = "DummyTillerGoHome"; const char DUMMY_DISABLE[] = "DummyDisableSiren"; const char DUMMY_HASSIREN[] = "DummyHasSiren"; const char DUMMY_PATROL[] = "DummyPatrol"; const char DUMMY_GATES[] = "DummyGates"; const char DUMMY_FIRESTATION[] = "DummyAtFireStation"; const char DUMMY_CHECKPARKED[] = "DummyCheckParked"; const char DUMMY_ISTRAILED[] = "DummyIsTrailed"; const char DUMMY_VCALLED[] = "DummyVehicleCalled"; const char DUMMY_HOSESON[] = "DummyHosesAreOn"; const char DUMMY_TILLER[] = "DummyTiller"; const char OBJ_ALS1[] = "mod:Prototypes/Vehicles/01Ambulance/als1.e4p"; const char OBJ_MEDIC1[] = "mod:Prototypes/Vehicles/01Ambulance/medic1.e4p"; const char OBJ_AMBULANCE1[] = "mod:Prototypes/Vehicles/01Ambulance/ambulance1.e4p"; const char OBJ_AMBULANCE2[] = "mod:Prototypes/Vehicles/01Ambulance/ambulance2.e4p"; const char OBJ_AMBULANCE3[] = "mod:Prototypes/Vehicles/01Ambulance/ambulance3.e4p"; const char OBJ_CHIEF1[] = "mod:Prototypes/Vehicles/02Fire/chief1.e4p"; const char OBJ_CAR2[] = "mod:Prototypes/Vehicles/02Fire/car2.e4p"; const char OBJ_ENGINE1[] = "mod:Prototypes/Vehicles/02Fire/engine1.e4p"; const char OBJ_LADDER1[] = "mod:Prototypes/Vehicles/02Fire/ladder1.e4p"; const char OBJ_ENGINE2[] = "mod:Prototypes/Vehicles/02Fire/engine2.e4p"; const char OBJ_ENGINE3[] = "mod:Prototypes/Vehicles/02Fire/engine3.e4p"; const char OBJ_ENGINE5[] = "mod:Prototypes/Vehicles/02Fire/engine31.e4p"; const char OBJ_ENGINE4[] = "mod:Prototypes/Vehicles/02Fire/engine4.e4p"; const char OBJ_SQUAD4[] = "mod:Prototypes/Vehicles/02Fire/squad4.e4p"; const char OBJ_RESCUE1[] = "mod:Prototypes/Vehicles/02Fire/rescue1.e4p"; const char OBJ_RESCUE2[] = "mod:Prototypes/Vehicles/02Fire/rescue2.e4p"; const char OBJ_TANKER3[] = "mod:Prototypes/Vehicles/02Fire/tanker3.e4p"; const char OBJ_TANKER1[] = "mod:Prototypes/Vehicles/02Fire/tanker1.e4p"; const char OBJ_FORESTRY1[] = "mod:Prototypes/Vehicles/02Fire/forestry1.e4p"; const char OBJ_UTILITY1[] = "mod:Prototypes/Vehicles/02Fire/utility1.e4p"; const char OBJ_POV1[] = "mod:Prototypes/Vehicles/02Fire/pov1.e4p"; const char OBJ_POV2[] = "mod:Prototypes/Vehicles/02Fire/pov2.e4p"; const char OBJ_POV3[] = "mod:Prototypes/Vehicles/02Fire/pov3.e4p"; const char OBJ_POV4[] = "mod:Prototypes/Vehicles/02Fire/pov4.e4p"; const char OBJ_SQUAD3[] = "mod:Prototypes/Vehicles/02Fire/squad3.e4p"; const char VO_SPAWN01[] = "fs_spawn01"; const char VO_SPAWN02[] = "fs_spawn02"; const char VO_SPAWN03[] = "fs_spawn03"; const char VO_ALS1_PARK[] = "als1_park"; const char VO_MEDIC1_PARK[] = "medic1_park"; const char VO_AMBULANCE1_PARK[] = "ambulance1_park"; const char VO_AMBULANCE2_PARK[] = "ambulance2_park"; const char VO_AMBULANCE3_PARK[] = "ambulance3_park"; const char VO_CHIEF1_PARK[] = "chief1_park"; const char VO_CAR2_PARK[] = "car2_park"; const char VO_LADDER1_PARK[] = "ladder1_park"; const char VO_ENGINE1_PARK[] = "engine1_park"; const char VO_ENGINE2_PARK[] = "engine2_park"; const char VO_ENGINE3_PARK[] = "engine3_park"; const char VO_ENGINE5_PARK[] = "engine31_park"; const char VO_ENGINE4_PARK[] = "engine4_park"; const char VO_SQUAD4_PARK[] = "squad4_park"; const char VO_RESCUE1_PARK[] = "rescue1_park"; const char VO_RESCUE2_PARK[] = "rescue2_park"; const char VO_FORESTRY1_PARK[] = "forestry1_park"; const char VO_TANKER3_PARK[] = "tanker3_park"; const char VO_TANKER1_PARK[] = "tanker1_park"; const char VO_UTILITY1_PARK[] = "utility1_park"; const char VO_POV1_PARK[] = "pov1_park"; const char VO_POV2_PARK[] = "pov2_park"; const char VO_POV3_PARK[] = "pov3_park"; const char VO_POV4_PARK[] = "pov4_park"; const char VO_SQUAD3_PARK[] = "squad3_park"; const char VO_ALS1_TURNTO[] = "als1_turnto"; const char VO_MEDIC1_TURNTO[] = "medic1_turnto"; const char VO_AMBULANCE1_TURNTO[] = "ambulance1_turnto"; const char VO_AMBULANCE2_TURNTO[] = "ambulance2_turnto"; const char VO_AMBULANCE3_TURNTO[] = "ambulance3_turnto"; const char VO_CHIEF1_TURNTO[] = "chief1_turnto"; const char VO_CAR2_TURNTO[] = "car2_turnto"; const char VO_LADDER1_TURNTO[] = "ladder1_turnto"; const char VO_ENGINE1_TURNTO[] = "engine1_turnto"; const char VO_ENGINE2_TURNTO[] = "engine2_turnto"; const char VO_ENGINE3_TURNTO[] = "engine3_turnto"; const char VO_ENGINE5_TURNTO[] = "engine31_turnto"; const char VO_ENGINE4_TURNTO[] = "engine4_turnto"; const char VO_SQUAD4_TURNTO[] = "squad4_turnto"; const char VO_RESCUE1_TURNTO[] = "rescue1_turnto"; const char VO_RESCUE2_TURNTO[] = "rescue2_turnto"; const char VO_FORESTRY1_TURNTO[] = "forestry1_turnto"; const char VO_TANKER3_TURNTO[] = "tanker3_turnto"; const char VO_TANKER1_TURNTO[] = "tanker1_turnto"; const char VO_UTILITY1_TURNTO[] = "utility1_turnto"; const char VO_POV1_TURNTO[] = "pov1_turnto"; const char VO_POV2_TURNTO[] = "pov2_turnto"; const char VO_POV3_TURNTO[] = "pov3_turnto"; const char VO_POV4_TURNTO[] = "pov4_turnto"; const char VO_SQUAD3_TURNTO[] = "squad3_turnto"; const char VO_SQUAD01[] = "fs_squad01"; const char VO_SQUAD02[] = "fs_squad02"; const char VO_SQUAD03[] = "fs_squad03"; const char SND_TOSTATION[] = "mod:Audio/FX/radio/1019.wav"; const char HINT_NOTVALID[] = "This vehicle doesn't belong in the fire station!"; const char HINT_NOSPACE[] = "No space at the fire station, vehicle returns to base!"; const char HINT_NOSPACE_AMBULANCE[] = "No space at the fire station, vehicle starts a patrol!"; const char HINT_TRANSPORTS[] = "The ambulance has transports, it will go to the hospital first!"; const char NAME_CONTROLPANEL1[] = "controlpanel1"; const char NAME_CONTROLPANEL2[] = "controlpanel2"; const char NAME_CONTROLPANEL3[] = "controlpanel3"; const char ENGINE_OFF[] = "EngineOffs"; const char AENGINE_OFF[] = "AEngineOffs"; int DummyGroup = 32; object VcmdToFireStation : CommandScript { VcmdToFireStation() { SetCursor("tofirestation"); SetIcon("tofirestation"); SetGroupID(DummyGroup); SetGroupLeader(true); SetRestrictions(RESTRICT_SELFEXECUTE); } bool CheckPossible(GameObject *Caller) { if (!Caller->IsValid()) return false; if (!Game::IsFreeplay()) return true; Vehicle v(Caller); if (v.IsCollidingWithVirtualObject(VO_SQUAD01) || v.IsCollidingWithVirtualObject(VO_SQUAD02) || v.IsCollidingWithVirtualObject(VO_SQUAD03) || (v.HasCommand(DUMMY_ISTRAILED) && !v.HasCommand(CMD_GETTILLER)) || v.HasCommand(DUMMY_HOSESON) || v.IsInstalled()) return false; if (!v.HasCommand("MoveTo")) return false; if (v.HasCommand(CMD_FLOODLIGHTS_OFF) && (StrCompare(v.GetPrototypeFileName(), OBJ_RESCUE2) == 0 || StrCompare(v.GetPrototypeFileName(), OBJ_RESCUE1) == 0)) return false; return true; } bool CheckTarget(GameObject *Caller, Actor *Target, int childID) { if (!Caller->IsValid() || !Target->IsValid() || (Caller->GetID() != Target->GetID())) return false; return true; } void PushActions(GameObject *Caller, Actor *Target, int ChildID) { Vector Pos = Caller->GetPosition(); Vehicle v(Caller); if (v.GetVehicleType() == VT_AMBULANCE_RTW && v.GetNumTransported() > 0) { v.PushActionExecuteCommand(ACTION_NEWLIST, CMD_TOHOSPITAL, Caller, 0, false); Mission::PlayHint(HINT_TRANSPORTS); return; } if (v.IsBlueLightEnabled()) Game::ExecuteCommand(CMD_FLASHINGLIGHTS, &v, &v); if (v.HasCommand(DUMMY_TILLERGOHOME)) v.RemoveCommand(DUMMY_TILLERGOHOME); if (v.HasCommand(CMD_STANDBY_OFF)) { v.RemoveCommand(CMD_STANDBY_OFF); v.AssignCommand(CMD_STANDBY_ON); } if (v.HasCommand(DUMMY_WARNINGLIGHTS)) { v.EnableBlinker(BLT_NONE); v.RemoveCommand(DUMMY_WARNINGLIGHTS); v.AssignCommand(CMD_WARNINGLIGHTS); } if (v.HasCommand(CMD_FLOODLIGHTS_OFF)) { v.EnableSpecialLights(false); v.RemoveCommand(CMD_FLOODLIGHTS_OFF); v.AssignCommand(CMD_FLOODLIGHTS_ON); } if (v.HasObjectPath(NULL)) Game::ExecuteCommand(DUMMY_PATROL, &v, &v); if (v.HasCommand(DUMMY_HASSIREN) && v.HasCommand(CMD_AUTOSIREN_OFF)) Game::ExecuteCommand(DUMMY_DISABLE, &v, &v); if(StrCompare(v.GetPrototypeFileName(), OBJ_ALS1) == 0) { GameObjectList l4; Game::CollectObstaclesOnVirtualObject(VO_ALS1_PARK, l4, ACTOR_VEHICLE); if(l4.GetNumObjects() > 0) { Mission::PlayHint(HINT_NOSPACE); v.PushActionReturnToBase(ACTION_NEWLIST); return; } else { ActorList l1 = Game::GetActors(VO_ALS1_PARK); ActorList l2 = Game::GetActors(VO_ALS1_TURNTO); } } else if(StrCompare(v.GetPrototypeFileName(), OBJ_MEDIC1) == 0) { GameObjectList l4; Game::CollectObstaclesOnVirtualObject(VO_MEDIC1_PARK, l4, ACTOR_VEHICLE); if(l4.GetNumObjects() > 0) { Mission::PlayHint(HINT_NOSPACE); v.PushActionReturnToBase(ACTION_NEWLIST); return; } else { ActorList l1 = Game::GetActors(VO_MEDIC1_PARK); ActorList l2 = Game::GetActors(VO_MEDIC1_TURNTO); } } else if(StrCompare(v.GetPrototypeFileName(), OBJ_AMBULANCE1) == 0) { GameObjectList l4; Game::CollectObstaclesOnVirtualObject(VO_AMBULANCE1_PARK, l4, ACTOR_VEHICLE); if(l4.GetNumObjects() > 0) { Mission::PlayHint(HINT_NOSPACE); v.PushActionReturnToBase(ACTION_NEWLIST); return; } else { ActorList l1 = Game::GetActors(VO_AMBULANCE1_PARK); ActorList l2 = Game::GetActors(VO_AMBULANCE1_TURNTO); } } else if(StrCompare(v.GetPrototypeFileName(), OBJ_AMBULANCE2) == 0) { GameObjectList l4; Game::CollectObstaclesOnVirtualObject(VO_AMBULANCE2_PARK, l4, ACTOR_VEHICLE); if(l4.GetNumObjects() > 0) { Mission::PlayHint(HINT_NOSPACE); v.PushActionReturnToBase(ACTION_NEWLIST); return; } else { ActorList l1 = Game::GetActors(VO_AMBULANCE2_PARK); ActorList l2 = Game::GetActors(VO_AMBULANCE2_TURNTO); } } else if(StrCompare(v.GetPrototypeFileName(), OBJ_AMBULANCE3) == 0) { GameObjectList l4; Game::CollectObstaclesOnVirtualObject(VO_AMBULANCE3_PARK, l4, ACTOR_VEHICLE); if(l4.GetNumObjects() > 0) { Mission::PlayHint(HINT_NOSPACE); v.PushActionReturnToBase(ACTION_NEWLIST); return; } else { ActorList l1 = Game::GetActors(VO_AMBULANCE3_PARK); ActorList l2 = Game::GetActors(VO_AMBULANCE3_TURNTO); } } else if(StrCompare(v.GetPrototypeFileName(), OBJ_CHIEF1) == 0) { GameObjectList l4; Game::CollectObstaclesOnVirtualObject(VO_CHIEF1_PARK, l4, ACTOR_VEHICLE); if(l4.GetNumObjects() > 0) { Mission::PlayHint(HINT_NOSPACE); v.PushActionReturnToBase(ACTION_NEWLIST); return; } else { ActorList l1 = Game::GetActors(VO_CHIEF1_PARK); ActorList l2 = Game::GetActors(VO_CHIEF1_TURNTO); } } else if(StrCompare(v.GetPrototypeFileName(), OBJ_CAR2) == 0) { GameObjectList l4; Game::CollectObstaclesOnVirtualObject(VO_CAR2_PARK, l4, ACTOR_VEHICLE); if(l4.GetNumObjects() > 0) { Mission::PlayHint(HINT_NOSPACE); v.PushActionReturnToBase(ACTION_NEWLIST); return; } else { ActorList l1 = Game::GetActors(VO_CAR2_PARK); ActorList l2 = Game::GetActors(VO_CAR2_TURNTO); } } else if(StrCompare(v.GetPrototypeFileName(), OBJ_LADDER1) == 0) { GameObjectList l4; Game::CollectObstaclesOnVirtualObject(VO_LADDER1_PARK, l4, ACTOR_VEHICLE); if(l4.GetNumObjects() > 0) { Mission::PlayHint(HINT_NOSPACE); v.PushActionReturnToBase(ACTION_NEWLIST); return; } else { ActorList l1 = Game::GetActors(VO_LADDER1_PARK); ActorList l2 = Game::GetActors(VO_LADDER1_TURNTO); } } else if(StrCompare(v.GetPrototypeFileName(), OBJ_ENGINE1) == 0) { GameObjectList l4; Game::CollectObstaclesOnVirtualObject(VO_ENGINE1_PARK, l4, ACTOR_VEHICLE); if(l4.GetNumObjects() > 0) { Mission::PlayHint(HINT_NOSPACE); v.PushActionReturnToBase(ACTION_NEWLIST); return; } else { ActorList l1 = Game::GetActors(VO_ENGINE1_PARK); ActorList l2 = Game::GetActors(VO_ENGINE1_TURNTO); } } else if(StrCompare(v.GetPrototypeFileName(), OBJ_ENGINE2) == 0) { GameObjectList l4; Game::CollectObstaclesOnVirtualObject(VO_ENGINE2_PARK, l4, ACTOR_VEHICLE); if(l4.GetNumObjects() > 0) { Mission::PlayHint(HINT_NOSPACE); v.PushActionReturnToBase(ACTION_NEWLIST); return; } else { ActorList l1 = Game::GetActors(VO_ENGINE2_PARK); ActorList l2 = Game::GetActors(VO_ENGINE2_TURNTO); } } else if(StrCompare(v.GetPrototypeFileName(), OBJ_ENGINE3) == 0) { GameObjectList l4; Game::CollectObstaclesOnVirtualObject(VO_ENGINE3_PARK, l4, ACTOR_VEHICLE); if(l4.GetNumObjects() > 0) { Mission::PlayHint(HINT_NOSPACE); v.PushActionReturnToBase(ACTION_NEWLIST); return; } else { ActorList l1 = Game::GetActors(VO_ENGINE3_PARK); ActorList l2 = Game::GetActors(VO_ENGINE3_TURNTO); } } else if(StrCompare(v.GetPrototypeFileName(), OBJ_ENGINE5) == 0) { GameObjectList l4; Game::CollectObstaclesOnVirtualObject(VO_ENGINE5_PARK, l4, ACTOR_VEHICLE); if(l4.GetNumObjects() > 0) { Mission::PlayHint(HINT_NOSPACE); v.PushActionReturnToBase(ACTION_NEWLIST); return; } else { ActorList l1 = Game::GetActors(VO_ENGINE5_PARK); ActorList l2 = Game::GetActors(VO_ENGINE5_TURNTO); } } else if(StrCompare(v.GetPrototypeFileName(), OBJ_ENGINE4) == 0) { GameObjectList l4; Game::CollectObstaclesOnVirtualObject(VO_ENGINE4_PARK, l4, ACTOR_VEHICLE); if(l4.GetNumObjects() > 0) { Mission::PlayHint(HINT_NOSPACE); v.PushActionReturnToBase(ACTION_NEWLIST); return; } else { ActorList l1 = Game::GetActors(VO_ENGINE4_PARK); ActorList l2 = Game::GetActors(VO_ENGINE4_TURNTO); } } else if(StrCompare(v.GetPrototypeFileName(), OBJ_RESCUE1) == 0) { GameObjectList l4; Game::CollectObstaclesOnVirtualObject(VO_RESCUE1_PARK, l4, ACTOR_VEHICLE); if(l4.GetNumObjects() > 0) { Mission::PlayHint(HINT_NOSPACE); v.PushActionReturnToBase(ACTION_NEWLIST); return; } else { ActorList l1 = Game::GetActors(VO_RESCUE1_PARK); ActorList l2 = Game::GetActors(VO_RESCUE1_TURNTO); } } else if(StrCompare(v.GetPrototypeFileName(), OBJ_RESCUE2) == 0) { GameObjectList l4; Game::CollectObstaclesOnVirtualObject(VO_RESCUE2_PARK, l4, ACTOR_VEHICLE); if(l4.GetNumObjects() > 0) { Mission::PlayHint(HINT_NOSPACE); v.PushActionReturnToBase(ACTION_NEWLIST); return; } else { ActorList l1 = Game::GetActors(VO_RESCUE2_PARK); ActorList l2 = Game::GetActors(VO_RESCUE2_TURNTO); } } else if(StrCompare(v.GetPrototypeFileName(), OBJ_SQUAD4) == 0) { GameObjectList l4; Game::CollectObstaclesOnVirtualObject(VO_SQUAD4_PARK, l4, ACTOR_VEHICLE); if(l4.GetNumObjects() > 0) { Mission::PlayHint(HINT_NOSPACE); v.PushActionReturnToBase(ACTION_NEWLIST); return; } else { ActorList l1 = Game::GetActors(VO_SQUAD4_PARK); ActorList l2 = Game::GetActors(VO_SQUAD4_TURNTO); } } else if(StrCompare(v.GetPrototypeFileName(), OBJ_FORESTRY1) == 0) { GameObjectList l4; Game::CollectObstaclesOnVirtualObject(VO_FORESTRY1_PARK, l4, ACTOR_VEHICLE); if(l4.GetNumObjects() > 0) { Mission::PlayHint(HINT_NOSPACE); v.PushActionReturnToBase(ACTION_NEWLIST); return; } else { ActorList l1 = Game::GetActors(VO_FORESTRY1_PARK); ActorList l2 = Game::GetActors(VO_FORESTRY1_TURNTO); } } else if(StrCompare(v.GetPrototypeFileName(), OBJ_TANKER3) == 0) { GameObjectList l4; Game::CollectObstaclesOnVirtualObject(VO_TANKER3_PARK, l4, ACTOR_VEHICLE); if(l4.GetNumObjects() > 0) { Mission::PlayHint(HINT_NOSPACE); v.PushActionReturnToBase(ACTION_NEWLIST); return; } else { ActorList l1 = Game::GetActors(VO_TANKER3_PARK); ActorList l2 = Game::GetActors(VO_TANKER3_TURNTO); } } else if(StrCompare(v.GetPrototypeFileName(), OBJ_TANKER1) == 0) { GameObjectList l5; Game::CollectObstaclesOnVirtualObject(VO_TANKER1_PARK, l5, ACTOR_VEHICLE); if(l5.GetNumObjects() > 0) { Mission::PlayHint(HINT_NOSPACE); v.PushActionReturnToBase(ACTION_NEWLIST); return; } else { ActorList l1 = Game::GetActors(VO_TANKER1_PARK); ActorList l2 = Game::GetActors(VO_TANKER1_TURNTO); } } else if(StrCompare(v.GetPrototypeFileName(), OBJ_UTILITY1) == 0) { GameObjectList l4; Game::CollectObstaclesOnVirtualObject(VO_UTILITY1_PARK, l4, ACTOR_VEHICLE); if(l4.GetNumObjects() > 0) { Mission::PlayHint(HINT_NOSPACE); v.PushActionReturnToBase(ACTION_NEWLIST); return; } else { ActorList l1 = Game::GetActors(VO_UTILITY1_PARK); ActorList l2 = Game::GetActors(VO_UTILITY1_TURNTO); } } else if(StrCompare(v.GetPrototypeFileName(), OBJ_POV1) == 0) { GameObjectList l4; Game::CollectObstaclesOnVirtualObject(VO_POV1_PARK, l4, ACTOR_VEHICLE); if(l4.GetNumObjects() > 0) { Mission::PlayHint(HINT_NOSPACE); v.PushActionReturnToBase(ACTION_NEWLIST); return; } else { ActorList l1 = Game::GetActors(VO_POV1_PARK); ActorList l2 = Game::GetActors(VO_POV1_TURNTO); } } else if(StrCompare(v.GetPrototypeFileName(), OBJ_POV2) == 0) { GameObjectList l4; Game::CollectObstaclesOnVirtualObject(VO_POV2_PARK, l4, ACTOR_VEHICLE); if(l4.GetNumObjects() > 0) { Mission::PlayHint(HINT_NOSPACE); v.PushActionReturnToBase(ACTION_NEWLIST); return; } else { ActorList l1 = Game::GetActors(VO_POV2_PARK); ActorList l2 = Game::GetActors(VO_POV2_TURNTO); } } else if(StrCompare(v.GetPrototypeFileName(), OBJ_POV3) == 0) { GameObjectList l4; Game::CollectObstaclesOnVirtualObject(VO_POV3_PARK, l4, ACTOR_VEHICLE); if(l4.GetNumObjects() > 0) { Mission::PlayHint(HINT_NOSPACE); v.PushActionReturnToBase(ACTION_NEWLIST); return; } else { ActorList l1 = Game::GetActors(VO_POV3_PARK); ActorList l2 = Game::GetActors(VO_POV3_TURNTO); } } else if(StrCompare(v.GetPrototypeFileName(), OBJ_POV4) == 0) { GameObjectList l4; Game::CollectObstaclesOnVirtualObject(VO_POV4_PARK, l4, ACTOR_VEHICLE); if(l4.GetNumObjects() > 0) { Mission::PlayHint(HINT_NOSPACE); v.PushActionReturnToBase(ACTION_NEWLIST); return; } else { ActorList l1 = Game::GetActors(VO_POV4_PARK); ActorList l2 = Game::GetActors(VO_POV4_TURNTO); } } else if(StrCompare(v.GetPrototypeFileName(), OBJ_SQUAD3) == 0) { GameObjectList l4; Game::CollectObstaclesOnVirtualObject(VO_SQUAD3_PARK, l4, ACTOR_VEHICLE); if(l4.GetNumObjects() > 0) { Mission::PlayHint(HINT_NOSPACE); v.PushActionReturnToBase(ACTION_NEWLIST); return; } else { ActorList l1 = Game::GetActors(VO_SQUAD3_PARK); ActorList l2 = Game::GetActors(VO_SQUAD3_TURNTO); } } else { Mission::PlayHint(HINT_NOTVALID); return; } if(l1.GetNumActors() > 0) Vector FirstPoint = l1.GetActor(0)->GetPosition(); if(l2.GetNumActors() > 0) Vector TurnTo = l2.GetActor(0)->GetPosition(); Audio::PlaySample3D(SND_TOSTATION, Caller->GetPosition()); v.PushActionMove(ACTION_NEWLIST, FirstPoint); v.PushActionTurnTo(ACTION_APPEND, TurnTo); v.PushActionExecuteCommand(ACTION_APPEND, ENGINE_OFF, Target, 1, true); v.PushActionExecuteCommand(ACTION_APPEND, DUMMY_TILLER, Caller, 3, false); v.PushActionWait(ACTION_APPEND, 1.0f); v.PushActionExecuteCommand(ACTION_APPEND, DUMMY_CHECKPARKED, Caller, 0, false); } }; object DummyAtFireStation : CommandScript { DummyAtFireStation() { SetGroupID(DummyGroup); } bool CheckTarget(GameObject *Caller, Actor *Target, int ChildID) { } void PushActions(GameObject *Caller, Actor *Target, int ChildID) { Vehicle v(Caller); if(StrCompare(v.GetPrototypeFileName(), OBJ_ALS1) == 0) ActorList l1 = Game::GetActors(VO_SPAWN02); else if(v.IsCollidingWithVirtualObject(VO_SQUAD01)) ActorList l1 = Game::GetActors(VO_SPAWN01); else if(v.IsCollidingWithVirtualObject(VO_SQUAD02)) ActorList l1 = Game::GetActors(VO_SPAWN02); else if(v.IsCollidingWithVirtualObject(VO_SQUAD03)) ActorList l1 = Game::GetActors(VO_SPAWN03); else return; } }; object DummyEngine : CommandScript { DummyEngine() { SetGroupID(DummyGroup); } bool CheckTarget(GameObject *Caller, Actor *Target, int ChildID) { } void PushActions(GameObject *Caller, Actor *Target, int ChildID) { } };