summaryrefslogtreecommitdiffstats
path: root/src/control/Script9.cpp
diff options
context:
space:
mode:
authorNikolay Korolev <nickvnuk@gmail.com>2021-02-07 21:29:49 +0100
committerNikolay Korolev <nickvnuk@gmail.com>2021-02-07 21:29:49 +0100
commit9b9ffc4b13a47beff6ee2d400466d764360a0edf (patch)
tree65be11894442598aec278cd364d4e17f447be4c8 /src/control/Script9.cpp
parentMerge pull request #1013 from Nick007J/lcs (diff)
downloadre3-9b9ffc4b13a47beff6ee2d400466d764360a0edf.tar
re3-9b9ffc4b13a47beff6ee2d400466d764360a0edf.tar.gz
re3-9b9ffc4b13a47beff6ee2d400466d764360a0edf.tar.bz2
re3-9b9ffc4b13a47beff6ee2d400466d764360a0edf.tar.lz
re3-9b9ffc4b13a47beff6ee2d400466d764360a0edf.tar.xz
re3-9b9ffc4b13a47beff6ee2d400466d764360a0edf.tar.zst
re3-9b9ffc4b13a47beff6ee2d400466d764360a0edf.zip
Diffstat (limited to 'src/control/Script9.cpp')
-rw-r--r--src/control/Script9.cpp74
1 files changed, 38 insertions, 36 deletions
diff --git a/src/control/Script9.cpp b/src/control/Script9.cpp
index 3a68e239..7bf7bcc6 100644
--- a/src/control/Script9.cpp
+++ b/src/control/Script9.cpp
@@ -7,6 +7,7 @@
#include "CarCtrl.h"
#include "Camera.h"
#include "CutsceneMgr.h"
+#include "Ferry.h"
#include "Garages.h"
#include "GameLogic.h"
#include "Hud.h"
@@ -29,22 +30,22 @@ int8 CRunningScript::ProcessCommands1500To1599(int32 command)
case COMMAND_DISABLE_FERRY_PATH:
{
CollectParameters(&m_nIp, 1);
- // CFerry:DissableFerryPath(GET_INTEGER_PARAM(0)); TODO
+ CFerry::DissableFerryPath(GET_INTEGER_PARAM(0));
return 0;
}
case COMMAND_ENABLE_FERRY_PATH:
{
CollectParameters(&m_nIp, 1);
- // CFerry::EnableFerryPath(GET_INTEGER_PARAM(0));
+ CFerry::EnableFerryPath(GET_INTEGER_PARAM(0));
return 0;
}
case COMMAND_GET_CLOSEST_DOCKED_FERRY:
{
CollectParameters(&m_nIp, 2);
- // CFerry* pFerry = CFerry::GetClosestFerry(GET_FLOAT_PARAM(0), GET_FLOAT_PARAM(1));
+ CFerry* pFerry = CFerry::GetClosestFerry(GET_FLOAT_PARAM(0), GET_FLOAT_PARAM(1));
int id = -1;
- // if (pFerry && pFerry->IsDocked()
- // id = pFerry->GetId();
+ if (pFerry && pFerry->IsDocked())
+ id = pFerry->m_nFerryId;
SET_INTEGER_PARAM(0, id);
StoreParameters(&m_nIp, 1);
return 0;
@@ -52,43 +53,43 @@ int8 CRunningScript::ProcessCommands1500To1599(int32 command)
case COMMAND_OPEN_FERRY_DOOR:
{
CollectParameters(&m_nIp, 1);
- // CFerry* pFerry = CFerry::GetFerry(GET_INTEGER_PARAM(0));
- // script_assert(pFerry);
- // pFerry->OpenDoor();
+ CFerry* pFerry = CFerry::GetFerry(GET_INTEGER_PARAM(0));
+ script_assert(pFerry);
+ pFerry->OpenDoor();
return 0;
}
case COMMAND_CLOSE_FERRY_DOOR:
{
CollectParameters(&m_nIp, 1);
- // CFerry* pFerry = CFerry::GetFerry(GET_INTEGER_PARAM(0));
- // script_assert(pFerry);
- // pFerry->CloseDoor();
+ CFerry* pFerry = CFerry::GetFerry(GET_INTEGER_PARAM(0));
+ script_assert(pFerry);
+ pFerry->CloseDoor();
return 0;
}
case COMMAND_IS_FERRY_DOOR_OPEN:
{
CollectParameters(&m_nIp, 1);
- // CFerry* pFerry = CFerry::GetFerry(GET_INTEGER_PARAM(0));
- // script_assert(pFerry);
- // UpdateCompareFlag(pFerry->IsDoorOpen());
+ CFerry* pFerry = CFerry::GetFerry(GET_INTEGER_PARAM(0));
+ script_assert(pFerry);
+ UpdateCompareFlag(pFerry->IsDoorOpen());
UpdateCompareFlag(false);
return 0;
}
case COMMAND_IS_FERRY_DOOR_CLOSED:
{
CollectParameters(&m_nIp, 1);
- // CFerry* pFerry = CFerry::GetFerry(GET_INTEGER_PARAM(0));
- // script_assert(pFerry);
- // UpdateCompareFlag(pFerry->IsDoorClosed());
+ CFerry* pFerry = CFerry::GetFerry(GET_INTEGER_PARAM(0));
+ script_assert(pFerry);
+ UpdateCompareFlag(pFerry->IsDoorClosed());
UpdateCompareFlag(true);
return 0;
}
case COMMAND_SKIP_FERRY_TO_NEXT_DOCK:
{
CollectParameters(&m_nIp, 1);
- // CFerry* pFerry = CFerry::GetFerry(GET_INTEGER_PARAM(0));
- // script_assert(pFerry);
- // pFerry->SkipFerryToNextDock();
+ CFerry* pFerry = CFerry::GetFerry(GET_INTEGER_PARAM(0));
+ script_assert(pFerry);
+ pFerry->SkipFerryToNextDock();
return 0;
}
case COMMAND_SET_CHAR_DROPS_WEAPONS_ON_DEATH:
@@ -110,35 +111,36 @@ int8 CRunningScript::ProcessCommands1500To1599(int32 command)
case COMMAND_GET_FERRY_BOARDING_SPACE:
{
CollectParameters(&m_nIp, 4);
- // CFerry* pFerry = CFerry::GetFerry(GET_INTEGER_PARAM(0));
- // script_assert(pFerry);
- // ? = pFerry->GetBoardingSpace((CFerry::eSpaceUse)GET_INTEGER_PARAMS(1), (CFerry::eSpaceStyle)GET_INTEGER_PARAMS(2), GET_INTEGER_PARAMS(3));
- SET_FLOAT_PARAM(0, 0.0f);
- SET_FLOAT_PARAM(1, 0.0f); // TODO
+ CFerry* pFerry = CFerry::GetFerry(GET_INTEGER_PARAM(0));
+ script_assert(pFerry);
+ CVector space = pFerry->GetBoardingSpace((CFerry::eSpaceUse)GET_INTEGER_PARAM(1), (CFerry::eSpaceStyle)GET_INTEGER_PARAM(2), GET_INTEGER_PARAM(3));
+ SET_FLOAT_PARAM(0, space.x);
+ SET_FLOAT_PARAM(1, space.y);
StoreParameters(&m_nIp, 2);
return 0;
}
case COMMAND_GET_FERRY_HEADING:
{
CollectParameters(&m_nIp, 1);
- // CFerry* pFerry = CFerry::GetFerry(GET_INTEGER_PARAM(0));
- // script_assert(pFerry);
- // float fHeading = CGeneral::GetATanOfXY(pFerry->GetForward().x, pFerry->GetForward().y);
- // SET_FLOAT_PARAM(0, fHeading);
- SET_FLOAT_PARAM(0, 0.0f);
+ CFerry* pFerry = CFerry::GetFerry(GET_INTEGER_PARAM(0));
+ script_assert(pFerry);
+ float fHeading = Atan2(-pFerry->GetForward().x, pFerry->GetForward().y);
+ SET_FLOAT_PARAM(0, fHeading);
StoreParameters(&m_nIp, 1);
return 0;
}
- case COMMAND_SET_FERRIES_ENABLED:
+ case COMMAND_SET_FERRIES_DISABLED:
{
- CollectParameters(&m_nIp, 1);
- // CFerry::SetFerriesEnabled(GET_INTEGER_PARAM(0));
+ CollectParameters(&m_nIp, 2);
+ CFerry::SetFerriesDisabled(GET_INTEGER_PARAM(1));
return 0;
}
case COMMAND_COMPLETE_FERRY_DOOR_MOVEMENT:
{
CollectParameters(&m_nIp, 1);
- // CFerry::CompleteDorrMovement(GET_INTEGER_PARAM(0));
+ CFerry* pFerry = CFerry::GetFerry(GET_INTEGER_PARAM(0));
+ script_assert(pFerry);
+ pFerry->CompleteDorrMovement();
return 0;
}
case COMMAND_OVERRIDE_CAR_REMOTE_CONTROL:
@@ -157,7 +159,7 @@ int8 CRunningScript::ProcessCommands1500To1599(int32 command)
else {
TheCamera.TakeControl(pVehicle, CCam::MODE_1STPERSON, GET_INTEGER_PARAM(1) ? INTERPOLATION : JUMP_CUT, CAMCONTROL_SCRIPT);
script_assert(pVehicle->IsCar());
- //((CAutomobile*)pVehicle)->Damage.m_bSmashedDoorDoesntClose = true;
+ ((CAutomobile*)pVehicle)->Damage.m_bSmashedDoorDoesntClose = true;
}
if (m_bIsMissionScript)
CTheScripts::MissionCleanUp.RemoveEntityFromList(GET_INTEGER_PARAM(0), CLEANUP_CAR);
@@ -670,7 +672,7 @@ int8 CRunningScript::ProcessCommands1500To1599(int32 command)
}
case COMMAND_SWITCH_FERRY_COLLISION:
CollectParameters(&m_nIp, 1);
- // CFerry::SwitchFerryCollision(GET_INTEGER_PARAM(0));
+ CFerry::SwitchFerryCollision(GET_INTEGER_PARAM(0));
return 0;
case COMMAND_SET_CHAR_MAX_HEALTH:
{