re3/src/control/Script10.cpp

422 lines
14 KiB
C++
Raw Normal View History

2021-01-17 13:02:19 +00:00
#include "common.h"
#include "Script.h"
#include "ScriptCommands.h"
2021-01-18 19:19:30 +00:00
#include "CarCtrl.h"
#include "DMAudio.h"
#include "Frontend.h"
#include "GameLogic.h"
2021-01-30 22:38:43 +00:00
#include "Garages.h"
2021-01-18 19:19:30 +00:00
#include "General.h"
#include "Hud.h"
#include "Messages.h"
#include "Object.h"
#include "Pad.h"
#include "Pickups.h"
2021-01-17 13:02:19 +00:00
#include "PlayerPed.h"
2021-01-18 19:19:30 +00:00
#include "Pools.h"
#include "Vehicle.h"
#include "SpecialFX.h"
#include "Stats.h"
#include "User.h"
#include "Weather.h"
2021-01-17 13:02:19 +00:00
#include "World.h"
2021-01-18 19:19:30 +00:00
bool gDeveloperFlag;
2021-01-17 13:02:19 +00:00
int8 CRunningScript::ProcessCommands1600To1699(int32 command)
{
switch (command) {
2021-01-20 09:12:26 +00:00
case COMMAND_ADD_NOODLES_DELIVERED:
2021-01-18 19:19:30 +00:00
CollectParameters(&m_nIp, 1);
// CStats::NoodlesDelievered += GET_INTEGER_PARAM(0);
2021-01-17 13:02:19 +00:00
return 0;
2021-01-18 19:19:30 +00:00
case COMMAND_REGISTER_SCRAPYARD_CHALLENGE_SCORE:
2021-01-21 20:51:15 +00:00
CollectParameters(&m_nIp, 1);
2021-01-18 19:19:30 +00:00
//CStats::TopScrapyardChallengeScore = Max(CStats::TopScrapyardChallengeScore, GET_INTEGER_PARAM(0));
2021-01-17 13:02:19 +00:00
return 0;
2021-01-18 19:19:30 +00:00
case COMMAND_REGISTER_9MM_MAYHEM_SCORE:
2021-01-21 20:51:15 +00:00
CollectParameters(&m_nIp, 1);
2021-01-18 19:19:30 +00:00
//CStats::Top9mmMayhemScore = Max(CStats::Top9mmMayhemScore, GET_INTEGER_PARAM(0));
2021-01-17 13:02:19 +00:00
return 0;
2021-01-18 19:19:30 +00:00
case COMMAND_REGISTER_SCOOTER_SHOOTER_SCORE:
2021-01-21 20:51:15 +00:00
CollectParameters(&m_nIp, 1);
2021-01-18 19:19:30 +00:00
//CStats::TopScooterShooterScore = Max(CStats::TopScooterShooterScore, GET_INTEGER_PARAM(0));
2021-01-17 13:02:19 +00:00
return 0;
2021-01-18 19:19:30 +00:00
case COMMAND_ADD_MONEY_MADE_FROM_TOURIST:
CollectParameters(&m_nIp, 1);
// CStats::MoneyMadeFromTourist += GET_INTEGER_PARAM(0);
2021-01-17 13:02:19 +00:00
return 0;
2021-01-18 19:19:30 +00:00
case COMMAND_ADD_TOURISTS_TAKEN_TO_SPOTS:
CollectParameters(&m_nIp, 1);
// CStats::TouristsTakenToSpots += GET_INTEGER_PARAM(0);
2021-01-17 13:02:19 +00:00
return 0;
2021-01-18 19:19:30 +00:00
case COMMAND_ADD_EXPORTED_CARS:
CollectParameters(&m_nIp, 1);
// CStats::NumberOfExportedCars += GET_INTEGER_PARAM(0);
2021-01-17 13:02:19 +00:00
return 0;
2021-01-18 19:19:30 +00:00
case COMMAND_SET_TOTAL_EXPORT_CARS:
2021-01-17 13:02:19 +00:00
CollectParameters(&m_nIp, 1);
2021-01-18 19:19:30 +00:00
// CStats::TotalNumberOfCarExport = GET_INTEGER_PARAM(0);
2021-01-17 13:02:19 +00:00
return 0;
2021-01-18 19:19:30 +00:00
case COMMAND_REGISTER_DIRT_BIKE_FASTEST_LAP:
CollectParameters(&m_nIp, 2);
// CStats::RegisterDirtBikeFastestLap(GET_INTEGER_PARAM(0), GET_INTEGER_PARAM(1));
2021-01-17 13:02:19 +00:00
return 0;
2021-01-18 19:19:30 +00:00
case COMMAND_REGISTER_DIRT_BIKE_FASTEST_TIME:
CollectParameters(&m_nIp, 2);
// CStats::RegisterDirtBikeFastestTime(GET_INTEGER_PARAM(0), GET_INTEGER_PARAM(1));
2021-01-17 13:02:19 +00:00
return 0;
2021-01-18 19:19:30 +00:00
case COMMAND_REGISTER_DIRT_BIKE_AIR_TIME:
2021-01-21 20:51:15 +00:00
CollectParameters(&m_nIp, 1);
2021-01-18 19:19:30 +00:00
//CStats::DirtBikeMostAir = Max(CStats::DirtBikeMostAir, GET_INTEGER_PARAM(0));
2021-01-17 13:02:19 +00:00
return 0;
2021-01-18 19:19:30 +00:00
case COMMAND_ADD_ARROW_3D_MARKER:
{
uint32 ip = m_nIp;
2021-01-23 20:04:24 +00:00
uint32 id = (uint32)(uintptr)GetPointerToScriptVariable(&ip, 0);
2021-01-18 19:19:30 +00:00
CollectParameters(&m_nIp, 10);
CVector pos = GET_VECTOR_PARAM(0);
CVector dir = GET_VECTOR_PARAM(3);
pos.z += GET_FLOAT_PARAM(9) + 7.0f;
//C3dMarkers::PlaceMarker(id, MARKERTYPE_ARROW, pos, GET_INTEGER_PARAM(6), GET_INTEGER_PARAM(7), GET_INTEGER_PARAM(8), 200, 1, 3.2f, 1, dir, 1.0f, 0, 0); - TODO
2021-01-17 13:02:19 +00:00
return 0;
2021-01-18 19:19:30 +00:00
}
case COMMAND_PRINT_NOW_OVERRIDE_FADE:
{
wchar* key = CTheScripts::GetTextByKeyFromScript(&m_nIp);
CollectParameters(&m_nIp, 2);
CMessages::AddMessageJumpQ(key, GET_INTEGER_PARAM(0), GET_INTEGER_PARAM(1)); // true, true
2021-01-17 13:02:19 +00:00
return 0;
2021-01-18 19:19:30 +00:00
}
case COMMAND_GET_PICKUP_VALUE:
{
CollectParameters(&m_nIp, 1);
SET_INTEGER_PARAM(0, CPickups::GetValue(GET_INTEGER_PARAM(0)));
2021-08-11 22:30:26 +00:00
StoreParameters(&m_nIp, 1);
2021-01-17 13:02:19 +00:00
return 0;
2021-01-18 19:19:30 +00:00
}
case COMMAND_SET_PICKUP_VALUE:
{
CollectParameters(&m_nIp, 2);
CPickups::SetValue(GET_INTEGER_PARAM(0), GET_INTEGER_PARAM(1));
2021-01-17 13:02:19 +00:00
return 0;
2021-01-18 19:19:30 +00:00
}
case COMMAND_IS_DEVELOPER:
UpdateCompareFlag(gDeveloperFlag);
2021-01-17 13:02:19 +00:00
return 0;
2021-01-18 19:19:30 +00:00
case COMMAND_SET_DEVELOPER_FLAG:
CollectParameters(&m_nIp, 1);
gDeveloperFlag = GET_INTEGER_PARAM(0);
2021-01-17 13:02:19 +00:00
return 0;
2021-01-18 19:19:30 +00:00
case COMMAND_REGISTER_WICHITA_WIPEOUT_SCORE:
CollectParameters(&m_nIp, 1);
//CStats::TopWichitaWipeoutScore = Max(CStats::TopWichitaWipeoutScore, GET_INTEGER_PARAM(0));
2021-01-17 13:02:19 +00:00
return 0;
2021-01-18 19:19:30 +00:00
case COMMAND_ATTACH_OBJECT_TO_CAR:
{
CollectParameters(&m_nIp, 5);
CObject* pObject = CPools::GetObjectPool()->GetAt(GET_INTEGER_PARAM(0));
script_assert(pObject);
CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(GET_INTEGER_PARAM(1));
script_assert(pVehicle);
CVector offset = GET_VECTOR_PARAM(2);
// pObject->AttachObjectToEntity(pVehicle, offset);
2021-01-17 13:02:19 +00:00
return 0;
2021-01-18 19:19:30 +00:00
}
case COMMAND_DETACH_OBJECT_FROM_CAR:
{
CollectParameters(&m_nIp, 1);
CObject* pObject = CPools::GetObjectPool()->GetAt(GET_INTEGER_PARAM(0));
script_assert(pObject);
// if (pObject && pObject->m_pAttachedTo)
// pObject->DettachObjectFromEntity();
2021-01-17 13:02:19 +00:00
return 0;
2021-01-18 19:19:30 +00:00
}
case COMMAND_SET_PAD_STICKS_MULTIPLIER:
{
CollectParameters(&m_nIp, 2);
CPad::GetPad(0)->unk_B4 = GET_FLOAT_PARAM(0);
CPad::GetPad(0)->unk_B8 = GET_FLOAT_PARAM(1);
2021-01-17 13:02:19 +00:00
return 0;
2021-01-18 19:19:30 +00:00
}
case COMMAND_PRINT_SUBTITLE_NOW:
2021-01-17 13:02:19 +00:00
{
wchar* key = CTheScripts::GetTextByKeyFromScript(&m_nIp);
CollectParameters(&m_nIp, 2);
2021-01-18 19:19:30 +00:00
if (FrontEndMenuManager.m_PrefsShowSubtitles)
CMessages::AddMessageJumpQ(key, GET_INTEGER_PARAM(0), GET_INTEGER_PARAM(1)); // false, true
else
CMessages::AddToPreviousBriefArray(key, -1, -1, -1, -1, -1, -1, nil);
2021-01-17 13:02:19 +00:00
return 0;
}
2021-01-18 19:19:30 +00:00
case COMMAND_PRINT_SUBTITLE_NOW_OVERRIDE_FADE:
{
wchar* key = CTheScripts::GetTextByKeyFromScript(&m_nIp);
CollectParameters(&m_nIp, 2);
if (FrontEndMenuManager.m_PrefsShowSubtitles)
CMessages::AddMessageJumpQ(key, GET_INTEGER_PARAM(0), GET_INTEGER_PARAM(1)); // true, true
else
CMessages::AddToPreviousBriefArray(key, -1, -1, -1, -1, -1, -1, nil);
2021-01-17 13:02:19 +00:00
return 0;
2021-01-18 19:19:30 +00:00
}
case COMMAND_PRINT_SUBTITLE_NOW_NO_BRIEF:
{
wchar* key = CTheScripts::GetTextByKeyFromScript(&m_nIp);
CollectParameters(&m_nIp, 2);
if (FrontEndMenuManager.m_PrefsShowSubtitles)
CMessages::AddMessageJumpQ(key, GET_INTEGER_PARAM(0), GET_INTEGER_PARAM(1)); // false, false
else
CMessages::AddToPreviousBriefArray(key, -1, -1, -1, -1, -1, -1, nil);
2021-01-17 13:02:19 +00:00
return 0;
2021-01-18 19:19:30 +00:00
}
case COMMAND_PRINT_WITH_NUMBER_NOW_NO_BRIEF:
{
wchar* key = CTheScripts::GetTextByKeyFromScript(&m_nIp);
CollectParameters(&m_nIp, 3);
CMessages::AddMessageJumpQWithNumber(key, GET_INTEGER_PARAM(1), GET_INTEGER_PARAM(2), GET_INTEGER_PARAM(0), -1, -1, -1, -1, -1); // 0
2021-01-17 13:02:19 +00:00
return 0;
2021-01-18 19:19:30 +00:00
}
case COMMAND_GET_ANGLE_BETWEEN_POINTS:
{
CollectParameters(&m_nIp, 4);
SET_FLOAT_PARAM(0, CGeneral::GetAngleBetweenPoints(GET_FLOAT_PARAM(0), GET_FLOAT_PARAM(1), GET_FLOAT_PARAM(2), GET_FLOAT_PARAM(3)));
StoreParameters(&m_nIp, 1);
2021-01-17 13:02:19 +00:00
return 0;
2021-01-18 19:19:30 +00:00
}
case COMMAND_OVERRIDE_CHAR_MOVE_ANIM:
{
CollectParameters(&m_nIp, 1);
CPed* pPed = CPools::GetPedPool()->GetAt(GET_INTEGER_PARAM(0));
script_assert(pPed);
pPed->bOverrideMoveAnim = true;
2021-01-17 13:02:19 +00:00
return 0;
2021-01-18 19:19:30 +00:00
}
2021-01-17 13:02:19 +00:00
case COMMAND_1627:
2021-01-18 19:19:30 +00:00
{
CollectParameters(&m_nIp, 1);
// something related to debug menu, not implemented
2021-01-17 13:02:19 +00:00
return 0;
2021-01-18 19:19:30 +00:00
}
case COMMAND_ENABLE_EMERGENCY_VEHICLES:
{
CollectParameters(&m_nIp, 1);
gbEmergencyVehiclesEnabled = GET_INTEGER_PARAM(0) != 0;
2021-01-17 13:02:19 +00:00
return 0;
2021-01-18 19:19:30 +00:00
}
case COMMAND_ADD_UNLOCKED_COSTUME:
CollectParameters(&m_nIp, 1);
// CStats::AddUnlockedCostume(GET_INTEGER_PARAM(0));
2021-01-17 13:02:19 +00:00
return 0;
2021-01-18 19:19:30 +00:00
case COMMAND_CLEAR_MULTIPLAYER_SPLASH_SCREEN:
// ClearMultiplayerSplashScreen();
2021-01-17 13:02:19 +00:00
return 0;
2021-01-18 19:19:30 +00:00
case COMMAND_PRINT_WITH_2_NUMBERS_NOW_NO_BRIEF:
{
wchar* key = CTheScripts::GetTextByKeyFromScript(&m_nIp);
2021-01-23 20:04:24 +00:00
CollectParameters(&m_nIp, 4);
2021-01-18 19:19:30 +00:00
CMessages::AddMessageJumpQWithNumber(key, GET_INTEGER_PARAM(2), GET_INTEGER_PARAM(3), GET_INTEGER_PARAM(0), GET_INTEGER_PARAM(1), -1, -1, -1, -1); // 0
2021-01-17 13:02:19 +00:00
return 0;
2021-01-18 19:19:30 +00:00
}
case COMMAND_GET_OBJECT_ORIENTATION:
{
CollectParameters(&m_nIp, 1);
CObject* pObject = CPools::GetObjectPool()->GetAt(GET_INTEGER_PARAM(0));
script_assert(pObject);
SET_FLOAT_PARAM(1, LimitAngleOnCircle(RADTODEG(Asin(pObject->GetForward().z))));
2021-01-27 23:41:21 +00:00
SET_FLOAT_PARAM(2, LimitAngleOnCircle(RADTODEG(Atan2(-pObject->GetForward().x, pObject->GetForward().y))));
SET_FLOAT_PARAM(0, LimitAngleOnCircle(RADTODEG(Atan2(-pObject->GetRight().z, pObject->GetUp().z))));
2021-01-18 19:19:30 +00:00
StoreParameters(&m_nIp, 3);
2021-01-17 13:02:19 +00:00
return 0;
2021-01-18 19:19:30 +00:00
}
case COMMAND_SET_OBJECT_ORIENTATION:
{
CollectParameters(&m_nIp, 4);
CObject* pObject = CPools::GetObjectPool()->GetAt(GET_INTEGER_PARAM(0));
script_assert(pObject);
pObject->SetOrientation(DEGTORAD(GET_FLOAT_PARAM(2)), DEGTORAD(GET_FLOAT_PARAM(1)), DEGTORAD(GET_FLOAT_PARAM(3)));
2021-01-17 13:02:19 +00:00
return 0;
2021-01-18 19:19:30 +00:00
}
case COMMAND_CHANGE_ONSCREEN_COUNTER_PREFIX:
{
uint16 offset = (uint8*)GetPointerToScriptVariable(&m_nIp, VAR_GLOBAL) - CTheScripts::ScriptSpace;
CollectParameters(&m_nIp, 1);
2021-08-25 21:34:31 +00:00
CUserDisplay::OnscnTimer.ChangeCounterPrefix(offset, GET_INTEGER_PARAM(0) != 0);
2021-01-17 13:02:19 +00:00
return 0;
2021-01-18 19:19:30 +00:00
}
case COMMAND_STORE_PLAYER_OUTFIT:
2021-01-17 13:02:19 +00:00
{
char tmp[12]; // TODO
CTheScripts::ReadTextLabelFromScript(&m_nIp, tmp);
2021-01-18 19:19:30 +00:00
for (int i = 0; i < KEY_LENGTH_IN_SCRIPT; i++)
CGameLogic::mStoredPlayerOutfit[i] = tmp[i];
printf("STORED PLAYOUR OUTFIT : %s\n", CGameLogic::mStoredPlayerOutfit);
2021-01-17 13:02:19 +00:00
m_nIp += KEY_LENGTH_IN_SCRIPT;
return 0;
}
2021-01-18 19:19:30 +00:00
case COMMAND_DISPLAY_ONSCREEN_TIMER_WITH_NUMBER_AND_STRING:
{
char onscreen_str1[12];
uint16 var = (uint8*)GetPointerToScriptVariable(&m_nIp, 0) - CTheScripts::ScriptSpace;
CollectParameters(&m_nIp, 2);
wchar* text = TheText.Get((char*)&CTheScripts::ScriptSpace[m_nIp]);
strncpy(onscreen_str1, (char*)&CTheScripts::ScriptSpace[m_nIp], KEY_LENGTH_IN_SCRIPT);
m_nIp += KEY_LENGTH_IN_SCRIPT;
2021-08-25 21:34:31 +00:00
CUserDisplay::OnscnTimer.AddCounter(var, GET_INTEGER_PARAM(1), onscreen_str1, 0, GET_INTEGER_PARAM(0), nil, 0);
2021-01-17 13:02:19 +00:00
return 0;
2021-01-18 19:19:30 +00:00
}
case COMMAND_SET_PLAYER_CURRENT_WEAPON_AMMO_IN_CLIP:
{
CollectParameters(&m_nIp, 1);
CWeapon* pWeapon = FindPlayerPed()->GetWeapon();
if (pWeapon && GET_INTEGER_PARAM(0))
pWeapon->m_nAmmoInClip = GET_INTEGER_PARAM(0);
2021-01-17 13:02:19 +00:00
return 0;
2021-01-18 19:19:30 +00:00
}
case COMMAND_SET_CHAR_WAIT_STATE_REPEAT:
{
CollectParameters(&m_nIp, 3);
CPed* pPed = CPools::GetPedPool()->GetAt(GET_INTEGER_PARAM(0));
if (pPed)
2021-06-26 11:25:40 +00:00
pPed->SetWaitState((eWaitState)GET_INTEGER_PARAM(1), GET_INTEGER_PARAM(2) >= 0 ? &GET_INTEGER_PARAM(2) : nil, true);
2021-01-17 13:02:19 +00:00
return 0;
2021-01-18 19:19:30 +00:00
}
case COMMAND_REGISTER_BEST_TIME_GOGO_FAGGIO:
CollectParameters(&m_nIp, 1);
// CStats::RegisterBestTimeGoGoFaggio(GET_INTEGER_PARAM(0));
2021-01-17 13:02:19 +00:00
return 0;
2021-01-18 19:19:30 +00:00
case COMMAND_LOCK_GARAGE:
2021-01-17 13:02:19 +00:00
CollectParameters(&m_nIp, 2);
2021-01-30 22:38:43 +00:00
CGarages::LockGarage(GET_INTEGER_PARAM(0), GET_INTEGER_PARAM(1));
2021-01-17 13:02:19 +00:00
return 0;
2021-01-18 19:19:30 +00:00
case COMMAND_IS_FINAL_GAME:
#ifdef FINAL
2021-01-17 13:02:19 +00:00
UpdateCompareFlag(true);
2021-01-20 18:12:42 +00:00
#else
UpdateCompareFlag(false);
2021-01-18 19:19:30 +00:00
#endif
2021-01-17 13:02:19 +00:00
return 0;
2021-01-18 19:19:30 +00:00
case COMMAND_SET_ALLOWED_COLLISION:
{
CollectParameters(&m_nIp, 2);
CTheScripts::AllowedCollision[0] = GET_INTEGER_PARAM(0);
CTheScripts::AllowedCollision[1] = GET_INTEGER_PARAM(1);
2021-01-17 13:02:19 +00:00
return 0;
2021-01-18 19:19:30 +00:00
}
case COMMAND_REGISTER_GUARDIAN_ANGEL_LEVEL:
CollectParameters(&m_nIp, 3);
//CStats::GuardianAngelHighestLevel_Ind = Max(CStats::GuardianAngelHighestLevel_Ind, GET_INTEGER_PARAM(0));
//CStats::GuardianAngelHighestLevel_Com = Max(CStats::GuardianAngelHighestLevel_Com, GET_INTEGER_PARAM(1));
//CStats::GuardianAngelHighestLevel_Sub = Max(CStats::GuardianAngelHighestLevel_Sub, GET_INTEGER_PARAM(2));
2021-01-17 13:02:19 +00:00
return 0;
2021-01-18 19:19:30 +00:00
case COMMAND_DISPLAY_ONSCREEN_TIMER_WITH_NUMBER_AND_2_STRINGS:
{
char onscreen_str1[12];
char onscreen_str2[12];
uint16 var = (uint8*)GetPointerToScriptVariable(&m_nIp, 0) - CTheScripts::ScriptSpace;
CollectParameters(&m_nIp, 3);
wchar* text = TheText.Get((char*)&CTheScripts::ScriptSpace[m_nIp]);
strncpy(onscreen_str1, (char*)&CTheScripts::ScriptSpace[m_nIp], KEY_LENGTH_IN_SCRIPT);
m_nIp += KEY_LENGTH_IN_SCRIPT;
wchar* text2 = TheText.Get((char*)&CTheScripts::ScriptSpace[m_nIp]);
strncpy(onscreen_str2, (char*)&CTheScripts::ScriptSpace[m_nIp], KEY_LENGTH_IN_SCRIPT);
m_nIp += KEY_LENGTH_IN_SCRIPT;
2021-08-25 21:34:31 +00:00
CUserDisplay::OnscnTimer.AddCounter(var, GET_INTEGER_PARAM(1), onscreen_str2, 0, GET_INTEGER_PARAM(0), onscreen_str1, GET_INTEGER_PARAM(2));
2021-01-23 20:04:24 +00:00
return 0;
2021-01-18 19:19:30 +00:00
}
case COMMAND_GET_PLAYER_STORED_WEAPON:
2021-01-17 13:02:19 +00:00
{
CollectParameters(&m_nIp, 1);
2021-01-18 19:19:30 +00:00
CPed* pPed = CWorld::Players[GET_INTEGER_PARAM(0)].m_pPed;
2021-01-17 13:02:19 +00:00
script_assert(pPed);
2021-01-18 19:19:30 +00:00
SET_INTEGER_PARAM(0, pPed->m_storedWeapon);
2021-01-17 13:02:19 +00:00
StoreParameters(&m_nIp, 1);
return 0;
}
2021-01-18 19:19:30 +00:00
case COMMAND_DISABLE_PAUSE_MENU:
2021-01-17 13:02:19 +00:00
CollectParameters(&m_nIp, 1);
2021-01-18 19:19:30 +00:00
// FrontEndMenuManager.mDisablePauseMenu = GET_INTEGER_PARAM(0) != 0; // TODO: static + member
2021-01-17 13:02:19 +00:00
return 0;
2021-01-18 19:19:30 +00:00
case COMMAND_IS_CHANNEL_PLAYING:
2021-01-17 13:02:19 +00:00
CollectParameters(&m_nIp, 1);
2021-01-18 19:19:30 +00:00
//UpdateCompareFlag(DMAudio.IsChannelPlaying(GET_INTEGER_PARAM(0));
2021-01-17 13:02:19 +00:00
UpdateCompareFlag(false);
return 0;
2021-01-18 19:19:30 +00:00
case COMMAND_SET_CLOCK_EVENT_WARNING:
2021-01-17 13:02:19 +00:00
CollectParameters(&m_nIp, 3);
2021-01-18 19:19:30 +00:00
/*
if (CHud::m_ClockEventWarningMinutes || GET_INTEGER_PARAMS(2)){
CHud::m_ClockEventWarningMinutes = GET_INTEGER_PARAMS(2);
CHud::m_ClockEventMinutes = GET_INTEGER_PARAMS(1);
CHud::m_ClockEventHours = GET_INTEGER_PARAMS(0);
CHud::m_ClockEventFlashTimer = 0;
}
*/
return 0;
case COMMAND_SET_EXTRA_COLOUR_LIGHT_DIRECTION:
2021-01-17 13:02:19 +00:00
CollectParameters(&m_nIp, 3);
2021-01-18 19:19:30 +00:00
// CWeather::ExtraColourLightDir = GET_VECTOR_PARAM(0);
// CWeather::ExtraColourLightDir.Normalise();
2021-01-17 13:02:19 +00:00
return 0;
2021-01-18 19:19:30 +00:00
case COMMAND_SET_CHAR_CAN_BE_TARGETTED_BY_LEADER:
{
CollectParameters(&m_nIp, 2);
CPed* pPed = CPools::GetPedPool()->GetAt(GET_INTEGER_PARAM(0));
script_assert(pPed);
pPed->bCanBeTargettedByLeader = GET_INTEGER_PARAM(1) != 0;
2021-01-17 13:02:19 +00:00
return 0;
2021-01-18 19:19:30 +00:00
}
case COMMAND_PRINT_HELP_NO_BRIEF:
{
wchar* text = CTheScripts::GetTextByKeyFromScript(&m_nIp);
CHud::SetHelpMessage(text, false); // + false, false
2021-01-17 13:02:19 +00:00
return 0;
2021-01-18 19:19:30 +00:00
}
case COMMAND_PRINT_HELP_FOREVER_NO_BRIEF:
{
wchar* text = CTheScripts::GetTextByKeyFromScript(&m_nIp);
CHud::SetHelpMessage(text, false, true); // + false
2021-01-17 13:02:19 +00:00
return 0;
2021-01-18 19:19:30 +00:00
}
case COMMAND_PRINT_HELP_ALWAYS_NO_BRIEF:
{
// CHud::mAlwaysAllowHelpText = true;
wchar* text = CTheScripts::GetTextByKeyFromScript(&m_nIp);
CHud::SetHelpMessage(text, false); // + false, false
2021-01-17 13:02:19 +00:00
return 0;
2021-01-18 19:19:30 +00:00
}
case COMMAND_PRINT_HELP_FOREVER_ALWAYS_NO_BRIEF:
{
// CHud::mAlwaysAllowHelpText = true;
wchar* text = CTheScripts::GetTextByKeyFromScript(&m_nIp);
CHud::SetHelpMessage(text, false, true); // + false
2021-01-17 13:02:19 +00:00
return 0;
2021-01-18 19:19:30 +00:00
}
2021-01-30 22:38:43 +00:00
case COMMAND_SET_CAR_IS_REWARD:
2021-01-18 19:19:30 +00:00
{
CollectParameters(&m_nIp, 2);
CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(GET_INTEGER_PARAM(0));
script_assert(pVehicle);
2021-01-30 22:38:43 +00:00
pVehicle->bRewardVehicle = (GET_INTEGER_PARAM(1) != 0);
2021-01-17 13:02:19 +00:00
return 0;
2021-01-18 19:19:30 +00:00
}
case COMMAND_FREEZE_ALL_PLAYER_FOLLOWERS:
{
2021-01-17 13:02:19 +00:00
CollectParameters(&m_nIp, 2);
2021-01-18 19:19:30 +00:00
CPlayerPed* pPlayerPed = CWorld::Players[GET_INTEGER_PARAM(0)].m_pPed;
script_assert(pPlayerPed);
for (int i = 0; i < CPools::GetVehiclePool()->GetSize(); i++) {
CPed* pPed = CPools::GetPedPool()->GetSlot(i);
if (pPed && IsPedPointerValid(pPed)) {
if (pPed->m_leader == pPlayerPed || (pPed->m_objective == OBJECTIVE_FOLLOW_CHAR_IN_FORMATION && pPed->m_pedInObjective == pPlayerPed))
pPed->bIsFrozen = (GET_INTEGER_PARAM(1) != 0);
}
}
2021-01-17 13:02:19 +00:00
return 0;
2021-01-18 19:19:30 +00:00
}
2021-01-17 13:02:19 +00:00
default:
script_assert(0);
}
return -1;
}