Merge pull request #963 from Nick007J/lcs

all LCS script commands
This commit is contained in:
aap 2021-01-22 00:59:20 +01:00 committed by GitHub
commit ce77e80414
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
40 changed files with 3522 additions and 2141 deletions

View File

@ -8,7 +8,8 @@ enum bridgeStates {
STATE_LIFT_PART_MOVING_DOWN,
STATE_LIFT_PART_IS_DOWN,
STATE_LIFT_PART_ABOUT_TO_MOVE_UP,
STATE_LIFT_PART_MOVING_UP
STATE_LIFT_PART_MOVING_UP,
STATE_BRIDGE_ALWAYS_UNLOCKED
};
class CBridge

View File

@ -113,6 +113,8 @@ int32 CCarCtrl::LoadedCarsArray[TOTAL_CUSTOM_CLASSES][MAX_CAR_MODELS_IN_ARRAY];
CVehicle* apCarsToKeep[MAX_CARS_TO_KEEP];
uint32 aCarsToKeepTime[MAX_CARS_TO_KEEP];
bool gbEmergencyVehiclesEnabled = true;
//--MIAMI: done except heli/plane functions
void
@ -3206,7 +3208,7 @@ void CCarCtrl::GenerateEmergencyServicesCar(void)
if (NumFiretrucksOnDuty + NumAmbulancesOnDuty + NumParkedCars + NumMissionCars +
NumLawEnforcerCars + NumRandomCars > MaxNumberOfCarsInUse)
return;
if (NumAmbulancesOnDuty == 0 /* TODO(LCS): && gbEmergencyVehiclesEnabled */){
if (NumAmbulancesOnDuty == 0 && gbEmergencyVehiclesEnabled){
if (gAccidentManager.CountActiveAccidents() < 2){
if (CStreaming::HasModelLoaded(MI_AMBULAN))
CStreaming::SetModelIsDeletable(MI_MEDIC);
@ -3226,7 +3228,7 @@ void CCarCtrl::GenerateEmergencyServicesCar(void)
}
}
}
if (NumFiretrucksOnDuty == 0 /* TODO(LCS): && gbEmergencyVehiclesEnabled */){
if (NumFiretrucksOnDuty == 0 && gbEmergencyVehiclesEnabled){
if (gFireManager.GetTotalActiveFires() < 3){
if (CStreaming::HasModelLoaded(MI_FIRETRUCK))
CStreaming::SetModelIsDeletable(MI_FIREMAN);

View File

@ -172,4 +172,5 @@ public:
static int32 LoadedCarsArray[TOTAL_CUSTOM_CLASSES][MAX_CAR_MODELS_IN_ARRAY];
};
extern CVehicle* apCarsToKeep[MAX_CARS_TO_KEEP];
extern CVehicle* apCarsToKeep[MAX_CARS_TO_KEEP];
extern bool gbEmergencyVehiclesEnabled;

View File

@ -45,6 +45,7 @@ float CGameLogic::AfterDeathStartPointOrientation[NUM_SHORTCUT_START_POINTS];
CVector CGameLogic::ShortCutDropOffForMission;
float CGameLogic::ShortCutDropOffOrientationForMission;
bool CGameLogic::MissionDropOffReadyToBeUsed;
char CGameLogic::mStoredPlayerOutfit[8] = "plr3";
//--MIAMI: file done
@ -90,7 +91,7 @@ CGameLogic::SortOutStreamingAndMemory(const CVector &pos)
CStreaming::DeleteRwObjectsAfterDeath(pos);
CStreaming::RemoveUnusedModelsInLoadedList();
CGame::DrasticTidyUpMemory(true);
CWorld::Players[CWorld::PlayerInFocus].m_pPed->Undress("player");
CWorld::Players[CWorld::PlayerInFocus].m_pPed->Undress(mStoredPlayerOutfit);
CStreaming::LoadSceneCollision(pos);
CStreaming::LoadScene(pos);
CWorld::Players[CWorld::PlayerInFocus].m_pPed->Dress();

View File

@ -48,4 +48,5 @@ public:
static CVector ShortCutDropOffForMission;
static float ShortCutDropOffOrientationForMission;
static bool MissionDropOffReadyToBeUsed;
static char mStoredPlayerOutfit[8];
};

View File

@ -861,7 +861,79 @@ void CGarage::Update()
}
break;
case GARAGE_CRUSHER:
{
// for now version from III
switch (m_eGarageState) {
case GS_OPENED:
{
int i = CPools::GetVehiclePool()->GetSize() * (CTimer::GetFrameCounter() % CRUSHER_VEHICLE_TEST_SPAN) / CRUSHER_VEHICLE_TEST_SPAN;
int end = CPools::GetVehiclePool()->GetSize() * (CTimer::GetFrameCounter() % CRUSHER_VEHICLE_TEST_SPAN + 1) / CRUSHER_VEHICLE_TEST_SPAN;
for (; i < end; i++) {
CVehicle* pVehicle = CPools::GetVehiclePool()->GetSlot(i);
if (!pVehicle)
continue;
if (pVehicle->IsCar() && IsEntityEntirelyInside3D(pVehicle, 0.0f)) {
m_eGarageState = GS_CLOSING;
m_pTarget = pVehicle;
m_pTarget->RegisterReference((CEntity**)&m_pTarget);
}
}
break;
}
case GS_CLOSING:
if (m_pTarget) {
m_fDoorPos = Max(0.0f, m_fDoorPos - CRUSHER_CRANE_SPEED * CTimer::GetTimeStep());
if (m_fDoorPos < TWOPI / 5) {
m_pTarget->bUsesCollision = false;
m_pTarget->bAffectedByGravity = false;
m_pTarget->SetMoveSpeed(0.0f, 0.0f, 0.0f);
}
else {
m_pTarget->SetMoveSpeed(m_pTarget->GetMoveSpeed() * Pow(0.8f, CTimer::GetTimeStep()));
}
if (m_fDoorPos == 0.0f) {
CGarages::CrushedCarId = CPools::GetVehiclePool()->GetIndex(m_pTarget);
float reward = Min(CRUSHER_MAX_REWARD, CRUSHER_MIN_REWARD + m_pTarget->pHandling->nMonetaryValue * m_pTarget->m_fHealth * CRUSHER_REWARD_COEFFICIENT);
CWorld::Players[CWorld::PlayerInFocus].m_nMoney += reward;
DestroyVehicleAndDriverAndPassengers(m_pTarget);
//++CStats::CarsCrushed;
m_pTarget = nil;
m_eGarageState = GS_AFTERDROPOFF;
m_nTimeToStartAction = CTimer::GetTimeInMilliseconds() + TIME_TO_CRUSH_CAR;
DMAudio.PlayOneShot(hGarages, SOUND_GARAGE_DOOR_CLOSED, 1.0f);
}
}
else
m_eGarageState = GS_OPENING;
UpdateCrusherAngle();
break;
case GS_AFTERDROPOFF:
if (CTimer::GetTimeInMilliseconds() <= m_nTimeToStartAction) {
UpdateCrusherShake((myrand() & 0xFF - 128) * 0.0002f, (myrand() & 0xFF - 128) * 0.0002f);
}
else {
UpdateCrusherShake(0.0f, 0.0f);
m_eGarageState = GS_OPENING;
}
break;
case GS_OPENING:
m_fDoorPos = Min(HALFPI, m_fDoorPos + CTimer::GetTimeStep() * CRUSHER_CRANE_SPEED);
if (m_fDoorPos == HALFPI) {
m_eGarageState = GS_OPENED;
DMAudio.PlayOneShot(hGarages, SOUND_GARAGE_DOOR_OPENED, 1.0f);
}
UpdateCrusherAngle();
break;
//case GS_FULLYCLOSED:
//case GS_CLOSEDCONTAINSCAR:
//case GS_OPENEDCONTAINSCAR:
default:
break;
}
if (!FindPlayerVehicle() && (CTimer::GetFrameCounter() & 0x1F) == 0x17 && IsEntityEntirelyInside3D(FindPlayerPed(), 0.0f))
FindPlayerPed()->InflictDamage(nil, WEAPONTYPE_RAMMEDBYCAR, 300.0f, PEDPIECE_TORSO, 0);
break;
}
case GARAGE_MISSION_KEEPCAR:
case GARAGE_MISSION_KEEPCAR_REMAINCLOSED:
switch (m_eGarageState) {
@ -1498,13 +1570,14 @@ void CGarage::BuildRotatedDoorMatrix(CEntity * pDoor, float fPosition)
void CGarage::UpdateCrusherAngle()
{
RefreshDoorPointers(false);
//m_pDoor2->GetMatrix().SetRotateXOnly(TWOPI - m_fDoorPos); TODO
//m_pDoor2->GetMatrix().UpdateRW();
//m_pDoor2->UpdateRwFrame();
m_pDoor1->GetMatrix().SetRotateXOnly(TWOPI - m_fDoorPos);
m_pDoor1->GetMatrix().UpdateRW();
m_pDoor1->UpdateRwFrame();
}
void CGarage::UpdateCrusherShake(float X, float Y)
{
/*
RefreshDoorPointers(false);
m_pDoor1->GetMatrix().GetPosition().x += X;
m_pDoor1->GetMatrix().GetPosition().y += Y;
@ -1518,6 +1591,7 @@ void CGarage::UpdateCrusherShake(float X, float Y)
m_pDoor2->UpdateRwFrame();
m_pDoor2->GetMatrix().GetPosition().x -= X;
m_pDoor2->GetMatrix().GetPosition().y -= Y;
*/
}
void CGarage::RefreshDoorPointers(bool bCreate)
@ -1753,15 +1827,17 @@ void CGarage::FindDoorsEntities()
}
}
if (m_pDoor1 && m_pDoor2) {
CVector2D vecDoor1ToGarage(m_pDoor1->GetPosition().x - GetGarageCenterX(), m_pDoor1->GetPosition().y - GetGarageCenterY());
CVector2D vecDoor2ToGarage(m_pDoor2->GetPosition().x - GetGarageCenterX(), m_pDoor2->GetPosition().y - GetGarageCenterY());
if (DotProduct2D(vecDoor1ToGarage, vecDoor2ToGarage) > 0.0f) {
if (vecDoor1ToGarage.MagnitudeSqr() >= vecDoor2ToGarage.MagnitudeSqr()) {
m_pDoor1 = m_pDoor2;
m_bDoor1IsDummy = m_bDoor2IsDummy;
if (m_pDoor1->GetModelIndex() != MI_LCS_GARAGEDOOR39 && m_pDoor1->GetModelIndex() != MI_LCS_GARAGEDOOR40) {
CVector2D vecDoor1ToGarage(m_pDoor1->GetPosition().x - GetGarageCenterX(), m_pDoor1->GetPosition().y - GetGarageCenterY());
CVector2D vecDoor2ToGarage(m_pDoor2->GetPosition().x - GetGarageCenterX(), m_pDoor2->GetPosition().y - GetGarageCenterY());
if (DotProduct2D(vecDoor1ToGarage, vecDoor2ToGarage) > 0.0f) {
if (vecDoor1ToGarage.MagnitudeSqr() >= vecDoor2ToGarage.MagnitudeSqr()) {
m_pDoor1 = m_pDoor2;
m_bDoor1IsDummy = m_bDoor2IsDummy;
}
m_pDoor2 = nil;
m_bDoor2IsDummy = false;
}
m_pDoor2 = nil;
m_bDoor2IsDummy = false;
}
}
if (m_pDoor1)
@ -2335,27 +2411,44 @@ void CGarages::Load(uint8* buf, uint32 size)
bool
CGarages::IsModelIndexADoor(uint32 id)
{
return id == MI_GARAGEDOOR2 ||
id == MI_GARAGEDOOR3 ||
id == MI_GARAGEDOOR4 ||
id == MI_GARAGEDOOR5 ||
id == MI_GARAGEDOOR6 ||
id == MI_GARAGEDOOR7 ||
id == MI_GARAGEDOOR9 ||
id == MI_GARAGEDOOR10 ||
id == MI_GARAGEDOOR11 ||
id == MI_GARAGEDOOR12 ||
id == MI_GARAGEDOOR13 ||
id == MI_GARAGEDOOR14 ||
id == MI_GARAGEDOOR15 ||
id == MI_GARAGEDOOR16 ||
id == MI_GARAGEDOOR18 ||
id == MI_GARAGEDOOR19 ||
id == MI_GARAGEDOOR20 ||
id == MI_GARAGEDOOR21 ||
id == MI_GARAGEDOOR22 ||
id == MI_GARAGEDOOR23 ||
id == MI_GARAGEDOOR24 ||
id == MI_GARAGEDOOR25 ||
id == MI_GARAGEDOOR26;
return id == MI_LCS_GARAGEDOOR01 ||
id == MI_LCS_GARAGEDOOR02 ||
id == MI_LCS_GARAGEDOOR03 ||
id == MI_LCS_GARAGEDOOR04 ||
id == MI_LCS_GARAGEDOOR05 ||
id == MI_LCS_GARAGEDOOR06 ||
id == MI_LCS_GARAGEDOOR07 ||
id == MI_LCS_GARAGEDOOR08 ||
id == MI_LCS_GARAGEDOOR09 ||
id == MI_LCS_GARAGEDOOR10 ||
id == MI_LCS_GARAGEDOOR11 ||
id == MI_LCS_GARAGEDOOR12 ||
id == MI_LCS_GARAGEDOOR13 ||
id == MI_LCS_GARAGEDOOR14 ||
id == MI_LCS_GARAGEDOOR15 ||
id == MI_LCS_GARAGEDOOR16 ||
id == MI_LCS_GARAGEDOOR17 ||
id == MI_LCS_GARAGEDOOR18 ||
id == MI_LCS_GARAGEDOOR19 ||
id == MI_LCS_GARAGEDOOR20 ||
id == MI_LCS_GARAGEDOOR21 ||
id == MI_LCS_GARAGEDOOR22 ||
id == MI_LCS_GARAGEDOOR23 ||
id == MI_LCS_GARAGEDOOR24 ||
id == MI_LCS_GARAGEDOOR25 ||
id == MI_LCS_GARAGEDOOR26 ||
id == MI_LCS_GARAGEDOOR27 ||
id == MI_LCS_GARAGEDOOR28 ||
id == MI_LCS_GARAGEDOOR29 ||
id == MI_LCS_GARAGEDOOR30 ||
id == MI_LCS_GARAGEDOOR31 ||
id == MI_LCS_GARAGEDOOR32 ||
id == MI_LCS_GARAGEDOOR33 ||
id == MI_LCS_GARAGEDOOR34 ||
id == MI_LCS_GARAGEDOOR35 ||
id == MI_LCS_GARAGEDOOR36 ||
id == MI_LCS_GARAGEDOOR37 ||
id == MI_LCS_GARAGEDOOR38 ||
id == MI_LCS_GARAGEDOOR39 ||
id == MI_LCS_GARAGEDOOR40;
}

View File

@ -1675,4 +1675,20 @@ CPed::CreateDeadPedPickupCoors(float *x, float *y, float *z)
*y = GetPosition().y;
*z = GetPosition().z + 0.4f;
#undef NUMBER_OF_ATTEMPTS
}
}
float CPickups::GetValue(int index)
{
int i = GetActualPickupIndex(index);
if (i == -1)
return 0.0f;
return aPickUps[i].m_fRevenue;
}
void CPickups::SetValue(int index, float value)
{
int i = GetActualPickupIndex(index);
if (i == -1)
return;
aPickUps[i].m_fRevenue = value;
}

View File

@ -117,6 +117,9 @@ public:
static void RemoveAllPickupsOfACertainWeaponGroupWithNoAmmo(eWeaponType);
static CPickup *FindPickUpForThisObject(CEntity*);
static float GetValue(int);
static void SetValue(int, float);
};
extern uint16 AmmoForWeapon[WEAPONTYPE_TOTALWEAPONS + 1];

View File

@ -46,7 +46,7 @@ enum {
struct CStoredDetailedAnimationState
{
uint8 aAnimId[NUM_MAIN_ANIMS_IN_REPLAY];
uint16 aAnimId[NUM_MAIN_ANIMS_IN_REPLAY];
uint8 aCurTime[NUM_MAIN_ANIMS_IN_REPLAY];
uint8 aSpeed[NUM_MAIN_ANIMS_IN_REPLAY];
uint8 aBlendAmount[NUM_MAIN_ANIMS_IN_REPLAY];
@ -54,7 +54,7 @@ struct CStoredDetailedAnimationState
uint8 aFunctionCallbackID[NUM_MAIN_ANIMS_IN_REPLAY];
uint16 aFlags[NUM_MAIN_ANIMS_IN_REPLAY];
uint8 aGroupId[NUM_MAIN_ANIMS_IN_REPLAY];
uint8 aAnimId2[NUM_PARTIAL_ANIMS_IN_REPLAY];
uint16 aAnimId2[NUM_PARTIAL_ANIMS_IN_REPLAY];
uint8 aCurTime2[NUM_PARTIAL_ANIMS_IN_REPLAY];
uint8 aSpeed2[NUM_PARTIAL_ANIMS_IN_REPLAY];
uint8 aBlendAmount2[NUM_PARTIAL_ANIMS_IN_REPLAY];

View File

@ -1231,7 +1231,7 @@ const tScriptCommandData commands[] = {
REGISTER_COMMAND(COMMAND_IS_CAR_PASSENGER_SEAT_FREE, INPUT_ARGUMENTS(ARGTYPE_INT, ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), true, -1, ""),
REGISTER_COMMAND(COMMAND_GET_CHAR_IN_CAR_PASSENGER_SEAT, INPUT_ARGUMENTS(ARGTYPE_INT, ARGTYPE_INT, ), OUTPUT_ARGUMENTS(ARGTYPE_INT, ), false, -1, ""),
REGISTER_COMMAND(COMMAND_SET_CHAR_IS_CHRIS_CRIMINAL, INPUT_ARGUMENTS(ARGTYPE_INT, ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_START_CREDITS, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_START_CREDITS, INPUT_ARGUMENTS(ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_STOP_CREDITS, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_ARE_CREDITS_FINISHED, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), true, -1, ""),
REGISTER_COMMAND(COMMAND_CREATE_SINGLE_PARTICLE, INPUT_ARGUMENTS(ARGTYPE_INT, ARGTYPE_FLOAT, ARGTYPE_FLOAT, ARGTYPE_FLOAT, ARGTYPE_FLOAT, ARGTYPE_FLOAT, ARGTYPE_FLOAT, ARGTYPE_FLOAT, ), OUTPUT_ARGUMENTS(), false, -1, ""),
@ -1319,7 +1319,7 @@ const tScriptCommandData commands[] = {
REGISTER_COMMAND(COMMAND_SHUT_CHAR_UP, INPUT_ARGUMENTS(ARGTYPE_INT, ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_SET_ENABLE_RC_DETONATE, INPUT_ARGUMENTS(ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_SET_CAR_RANDOM_ROUTE_SEED, INPUT_ARGUMENTS(ARGTYPE_INT, ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_IS_ANY_PICKUP_AT_COORDS, INPUT_ARGUMENTS(ARGTYPE_FLOAT, ARGTYPE_FLOAT, ARGTYPE_FLOAT, ), OUTPUT_ARGUMENTS(), true, -1, ""),
REGISTER_COMMAND(COMMAND_IS_ANY_PICKUP_AT_COORDS, INPUT_ARGUMENTS(ARGTYPE_FLOAT, ARGTYPE_FLOAT, ARGTYPE_FLOAT, ARGTYPE_FLOAT, ), OUTPUT_ARGUMENTS(), true, -1, ""),
REGISTER_COMMAND(COMMAND_GET_FIRST_PICKUP_COORDS, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(ARGTYPE_FLOAT, ARGTYPE_FLOAT, ARGTYPE_FLOAT, ), false, -1, ""),
REGISTER_COMMAND(COMMAND_GET_NEXT_PICKUP_COORDS, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(ARGTYPE_FLOAT, ARGTYPE_FLOAT, ARGTYPE_FLOAT, ), false, -1, ""),
REGISTER_COMMAND(COMMAND_REMOVE_ALL_CHAR_WEAPONS, INPUT_ARGUMENTS(ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), false, -1, ""),
@ -1592,24 +1592,24 @@ const tScriptCommandData commands[] = {
REGISTER_COMMAND(COMMAND_IS_AUSTRALIAN_GAME, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), true, -1, ""),
REGISTER_COMMAND(COMMAND_DISARM_CAR_BOMB, INPUT_ARGUMENTS(ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_IS_JAPANESE_GAME, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), true, -1, ""),
REGISTER_COMMAND(COMMAND_1442, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_1442, INPUT_ARGUMENTS(ARGTYPE_INT, ARGTYPE_INT, ARGTYPE_INT, ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_1443, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_1444, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_1445, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_1446, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_1447, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_1448, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_1449, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_1450, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_1451, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_1452, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_1453, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_GET_DISTANCE_BETWEEN_2D_POINTS, INPUT_ARGUMENTS(ARGTYPE_FLOAT, ARGTYPE_FLOAT, ARGTYPE_FLOAT, ARGTYPE_FLOAT, ), OUTPUT_ARGUMENTS(ARGTYPE_FLOAT, ), false, -1, ""),
REGISTER_COMMAND(COMMAND_GET_DISTANCE_BETWEEN_3D_POINTS, INPUT_ARGUMENTS(ARGTYPE_FLOAT, ARGTYPE_FLOAT, ARGTYPE_FLOAT, ARGTYPE_FLOAT, ARGTYPE_FLOAT, ARGTYPE_FLOAT, ), OUTPUT_ARGUMENTS(ARGTYPE_FLOAT, ), false, -1, ""),
REGISTER_COMMAND(COMMAND_DOT_PRODUCT_2D, INPUT_ARGUMENTS(ARGTYPE_FLOAT, ARGTYPE_FLOAT, ARGTYPE_FLOAT, ARGTYPE_FLOAT, ), OUTPUT_ARGUMENTS(ARGTYPE_FLOAT, ), false, -1, ""),
REGISTER_COMMAND(COMMAND_DOT_PRODUCT_3D, INPUT_ARGUMENTS(ARGTYPE_FLOAT, ARGTYPE_FLOAT, ARGTYPE_FLOAT, ARGTYPE_FLOAT, ARGTYPE_FLOAT, ARGTYPE_FLOAT, ), OUTPUT_ARGUMENTS(ARGTYPE_FLOAT, ), false, -1, ""),
REGISTER_COMMAND(COMMAND_DEBUG_PRINT_WITH_1_FLOAT, INPUT_ARGUMENTS(ARGTYPE_INT, ARGTYPE_INT, ARGTYPE_FLOAT, ), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_DEBUG_PRINT_WITH_2_FLOATS, INPUT_ARGUMENTS(ARGTYPE_INT, ARGTYPE_INT, ARGTYPE_FLOAT, ARGTYPE_FLOAT, ), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_DEBUG_PRINT_WITH_3_FLOATS, INPUT_ARGUMENTS(ARGTYPE_INT, ARGTYPE_INT, ARGTYPE_FLOAT, ARGTYPE_FLOAT, ARGTYPE_FLOAT, ), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_GET_PAD_BUTTON_STATE, INPUT_ARGUMENTS(ARGTYPE_INT, ), OUTPUT_ARGUMENTS(ARGTYPE_INT, ), false, -1, ""),
REGISTER_COMMAND(COMMAND_SET_NAVIGATION_ARROW, INPUT_ARGUMENTS(ARGTYPE_FLOAT, ARGTYPE_FLOAT, ARGTYPE_FLOAT, ), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_CLEAR_NAVIGATION_ARROW, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_CALL, INPUT_ARGUMENTS(ARGTYPE_FUNCTION, ), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_NOTCALL, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_1456, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_1457, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_1458, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_1459, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_CALLNOT, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_IS_CAR_AUTOMOBILE, INPUT_ARGUMENTS(ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), true, -1, ""),
REGISTER_COMMAND(COMMAND_IS_CAR_BIKE, INPUT_ARGUMENTS(ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), true, -1, ""),
REGISTER_COMMAND(COMMAND_IS_CAR_PLANE, INPUT_ARGUMENTS(ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), true, -1, ""),
REGISTER_COMMAND(COMMAND_IS_CAR_HELI, INPUT_ARGUMENTS(ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), true, -1, ""),
REGISTER_COMMAND(COMMAND_1460, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_1461, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_1462, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""),
@ -1627,186 +1627,186 @@ const tScriptCommandData commands[] = {
REGISTER_COMMAND(COMMAND_1474, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_1475, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_1476, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_1477, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_1478, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_1479, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_1480, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_1481, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_1482, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_1483, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_1484, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_1485, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_1486, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_1487, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_1488, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_RETURN_IF_TRUE, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_RETURN_TRUE_IF_TRUE, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_SET_CHAR_ONLY_ALLOWED_TO_SIT_BEHIND, INPUT_ARGUMENTS(ARGTYPE_INT, ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_SET_RC_HELI_HEIGHT_LIMIT, INPUT_ARGUMENTS(ARGTYPE_FLOAT, ), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_CREATE_SCRIPT_CORONA, INPUT_ARGUMENTS(ARGTYPE_FLOAT, ARGTYPE_FLOAT, ARGTYPE_FLOAT, ARGTYPE_FLOAT, ARGTYPE_INT, ARGTYPE_INT, ARGTYPE_INT, ARGTYPE_INT, ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_REMOVE_SCRIPT_CORONA, INPUT_ARGUMENTS(ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_IS_BOAT_IN_WATER, INPUT_ARGUMENTS(ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), true, -1, ""),
REGISTER_COMMAND(COMMAND_IS_CAR_DRIVER_BEING_JACKED, INPUT_ARGUMENTS(ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), true, -1, ""),
REGISTER_COMMAND(COMMAND_SET_CHAR_ONLY_ALLOWED_TO_SIT_IN_FRONT, INPUT_ARGUMENTS(ARGTYPE_INT, ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_SET_CAR_TILTED_BY_CHAR, INPUT_ARGUMENTS(ARGTYPE_INT, ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_GET_WEAPON_TYPE_FOR_PICKUP_IN_AREA, INPUT_ARGUMENTS(ARGTYPE_FLOAT, ARGTYPE_FLOAT, ARGTYPE_FLOAT, ARGTYPE_FLOAT, ), OUTPUT_ARGUMENTS(ARGTYPE_INT, ), false, -1, ""),
REGISTER_COMMAND(COMMAND_IS_PLAYER_USING_FIRST_PERSON_WEAPON_CAMERA, INPUT_ARGUMENTS(ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), true, -1, ""),
REGISTER_COMMAND(COMMAND_1489, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_1490, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_1491, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_1492, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_1493, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_1494, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_1495, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_1496, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_1497, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_1498, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_1499, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_1500, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_1501, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_1502, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_1503, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_1504, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_1505, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_1506, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_1507, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_1508, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_1509, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_1510, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_1511, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_1512, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_1513, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_1514, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_1515, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_1516, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_1517, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_1518, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_1519, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_1520, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_1521, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_1522, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_1523, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_1524, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_1525, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_1526, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_1527, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_1528, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_1529, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_1530, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_1531, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_1532, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_1533, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_1534, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_1535, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_1536, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_1537, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_1538, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_1539, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_1540, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_1541, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_1542, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_1543, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_1544, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_1545, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_1546, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_1547, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_1548, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_1549, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_1550, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_1551, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_1552, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_1553, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_1554, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_1555, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_1556, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_1557, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_1558, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_1559, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_1560, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), true, -1, ""),
REGISTER_COMMAND(COMMAND_1561, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_1562, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_1563, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_1564, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_1565, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_1566, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_1567, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_1568, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_1569, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), true, -1, ""),
REGISTER_COMMAND(COMMAND_1570, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_1571, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_1572, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_1573, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_1574, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_1575, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_1576, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_1577, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_1578, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_1579, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_1580, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_1581, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_1582, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_1583, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_1584, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_1585, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_1586, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_1587, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_1588, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_1589, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_1590, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_1591, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_1592, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_1593, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_1594, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_1595, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_1596, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_1597, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_1598, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_1599, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_1600, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_1601, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_1602, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_1603, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_1604, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_1605, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_1606, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_1607, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_1608, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_1609, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_1610, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_1611, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_1612, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_1613, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_1614, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_1615, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_1616, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_1617, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_1618, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_1619, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_1620, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_1621, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_1622, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_1623, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_1624, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_1625, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_1626, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_1627, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_1628, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_1629, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_1630, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_1631, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_1632, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_1633, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_1634, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_1635, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_1636, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_1637, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_1638, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_1639, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_1640, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_1641, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_1642, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_1643, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_1644, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_1645, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_1646, INPUT_ARGUMENTS(ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_1647, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_1648, INPUT_ARGUMENTS(ARGTYPE_INT, ARGTYPE_INT, ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_1649, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_1650, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_1651, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_1652, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_1653, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_1654, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_1655, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_1656, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_1491, INPUT_ARGUMENTS(ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_SET_DEBUG_MENU_ACTIVE, INPUT_ARGUMENTS(ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_SET_DRAW_HUD, INPUT_ARGUMENTS(ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_GET_RANDOM_CHAR_IN_AREA_NO_CHECKS, INPUT_ARGUMENTS(ARGTYPE_FLOAT, ARGTYPE_FLOAT, ARGTYPE_FLOAT, ARGTYPE_FLOAT, ), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_GET_RANDOM_CAR_IN_AREA_NO_CHECKS_NO_SAVE, INPUT_ARGUMENTS(ARGTYPE_FLOAT, ARGTYPE_FLOAT, ARGTYPE_FLOAT, ARGTYPE_FLOAT, ), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_STORE_CAR_COLLIDED_WITH_NO_SAVE, INPUT_ARGUMENTS(ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_DISABLE_FERRY_PATH, INPUT_ARGUMENTS(ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_ENABLE_FERRY_PATH, INPUT_ARGUMENTS(ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_GET_CLOSEST_DOCKED_FERRY, INPUT_ARGUMENTS(ARGTYPE_FLOAT, ARGTYPE_FLOAT, ), OUTPUT_ARGUMENTS(ARGTYPE_INT, ), false, -1, ""),
REGISTER_COMMAND(COMMAND_OPEN_FERRY_DOOR, INPUT_ARGUMENTS(ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_CLOSE_FERRY_DOOR, INPUT_ARGUMENTS(ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_IS_FERRY_DOOR_OPEN, INPUT_ARGUMENTS(ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), true, -1, ""),
REGISTER_COMMAND(COMMAND_IS_FERRY_DOOR_CLOSED, INPUT_ARGUMENTS(ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), true, -1, ""),
REGISTER_COMMAND(COMMAND_SKIP_FERRY_TO_NEXT_DOCK, INPUT_ARGUMENTS(ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_SET_CHAR_DROPS_WEAPONS_ON_DEATH, INPUT_ARGUMENTS(ARGTYPE_INT, ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_IS_CHAR_CROUCHING, INPUT_ARGUMENTS(ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), true, -1, ""),
REGISTER_COMMAND(COMMAND_GET_FERRY_BOARDING_SPACE, INPUT_ARGUMENTS(ARGTYPE_INT, ARGTYPE_INT, ARGTYPE_INT, ARGTYPE_INT, ), OUTPUT_ARGUMENTS(ARGTYPE_FLOAT, ARGTYPE_FLOAT, ), false, -1, ""),
REGISTER_COMMAND(COMMAND_GET_FERRY_HEADING, INPUT_ARGUMENTS(ARGTYPE_INT, ), OUTPUT_ARGUMENTS(ARGTYPE_FLOAT, ), false, -1, ""),
REGISTER_COMMAND(COMMAND_SET_FERRIES_ENABLED, INPUT_ARGUMENTS(ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_COMPLETE_FERRY_DOOR_MOVEMENT, INPUT_ARGUMENTS(ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_OVERRIDE_CAR_REMOTE_CONTROL, INPUT_ARGUMENTS(ARGTYPE_INT, ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_CANCEL_REMOTE_MODE, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_REGISTER_CAR_SOLD, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_ADD_MONEY_MADE_WITH_CAR_SALES, INPUT_ARGUMENTS(ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_SET_BRIDGE_STATE, INPUT_ARGUMENTS(ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_SET_OBJECT_TURN_SPEED, INPUT_ARGUMENTS(ARGTYPE_INT, ARGTYPE_FLOAT, ARGTYPE_FLOAT, ARGTYPE_FLOAT, ), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_SET_OBJECT_MASS, INPUT_ARGUMENTS(ARGTYPE_INT, ARGTYPE_FLOAT, ARGTYPE_FLOAT, ARGTYPE_FLOAT, ), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_HAS_CUTSCENE_LOADED, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), true, -1, ""),
REGISTER_COMMAND(COMMAND_SET_UNIQUE_JUMPS_FOUND, INPUT_ARGUMENTS(ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_SET_HIDDEN_PACKAGES_COLLECTED, INPUT_ARGUMENTS(ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_REGISTER_BIKE_SOLD, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_ADD_MONEY_MADE_WITH_BIKE_SALES, INPUT_ARGUMENTS(ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_REGISTER_PACKAGE_SMUGGLED, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_REGISTER_SMUGGLER_WASTED, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_REGISTER_FASTEST_SMUGGLING_TIME, INPUT_ARGUMENTS(ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_SET_CHAR_DIVE_FROM_CAR, INPUT_ARGUMENTS(ARGTYPE_INT, ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_WRECK_CAR, INPUT_ARGUMENTS(ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_ADD_MONEY_MADE_IN_COACH, INPUT_ARGUMENTS(ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_ADD_MONEY_MADE_COLLECTING_TRASH, INPUT_ARGUMENTS(ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_REGISTER_HITMAN_KILLED, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_REGISTER_GUARDIAN_ANGEL_MISSION_PASSED, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_REGISTER_HIGHEST_GUARDIAN_ANGEL_JUSTICE_DISHED, INPUT_ARGUMENTS(ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_REGISTER_BEST_BANDIT_LAP_TIME, INPUT_ARGUMENTS(ARGTYPE_INT, ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_REGISTER_BEST_BANDIT_POSITION, INPUT_ARGUMENTS(ARGTYPE_INT, ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_REGISTER_MOST_TIME_LEFT_TRAIN_RACE, INPUT_ARGUMENTS(ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_REGISTER_HIGHEST_TRAIN_CASH_EARNED, INPUT_ARGUMENTS(ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_REGISTER_FASTEST_HELI_RACE_TIME, INPUT_ARGUMENTS(ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_REGISTER_BEST_HELI_RACE_POSITION, INPUT_ARGUMENTS(ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_REGISTER_OUTFIT_CHANGE, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_REGISTER_STREET_RACE_FASTEST_TIME, INPUT_ARGUMENTS(ARGTYPE_INT, ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_REGISTER_STREET_RACE_FASTEST_LAP, INPUT_ARGUMENTS(ARGTYPE_INT, ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_REGISTER_STREET_RACE_BEST_POSITION, INPUT_ARGUMENTS(ARGTYPE_INT, ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_HAS_OBJECT_BEEN_DAMAGED_BY_WEAPON, INPUT_ARGUMENTS(ARGTYPE_INT, ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), true, -1, ""),
REGISTER_COMMAND(COMMAND_CLEAR_OBJECT_LAST_WEAPON_DAMAGE, INPUT_ARGUMENTS(ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_SET_CAR_TURN_SPEED, INPUT_ARGUMENTS(ARGTYPE_INT, ARGTYPE_FLOAT, ARGTYPE_FLOAT, ARGTYPE_FLOAT, ), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_SET_CAR_MOVE_SPEED, INPUT_ARGUMENTS(ARGTYPE_INT, ARGTYPE_FLOAT, ARGTYPE_FLOAT, ARGTYPE_FLOAT, ), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_SET_OBJECT_PROOFS, INPUT_ARGUMENTS(ARGTYPE_INT, ARGTYPE_INT, ARGTYPE_INT, ARGTYPE_INT, ARGTYPE_INT, ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_GET_CAMERA_PED_ZOOM_INDICATOR, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(ARGTYPE_INT, ), false, -1, ""),
REGISTER_COMMAND(COMMAND_SET_CAMERA_PED_ZOOM_INDICATOR, INPUT_ARGUMENTS(ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_GET_CAR_ORIENTATION, INPUT_ARGUMENTS(ARGTYPE_INT, ), OUTPUT_ARGUMENTS(ARGTYPE_FLOAT, ARGTYPE_FLOAT, ARGTYPE_FLOAT, ), false, -1, ""),
REGISTER_COMMAND(COMMAND_SET_CAR_ORIENTATION, INPUT_ARGUMENTS(ARGTYPE_INT, ARGTYPE_FLOAT, ARGTYPE_FLOAT, ARGTYPE_FLOAT, ), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_IS_DEBUG_MENU_ON, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), true, -1, ""),
REGISTER_COMMAND(COMMAND_OPEN_VAN_BACK_DOORS, INPUT_ARGUMENTS(ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_GET_CHAR_THREAT_CHAR, INPUT_ARGUMENTS(ARGTYPE_INT, ), OUTPUT_ARGUMENTS(ARGTYPE_INT, ), false, -1, ""),
REGISTER_COMMAND(COMMAND_FREEZE_PED_ZOOM_SWITCH, INPUT_ARGUMENTS(ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_SET_OBJECT_RENDERED_DAMAGED, INPUT_ARGUMENTS(ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_GET_RANDOM_CAR_IN_AREA_NO_SAVE, INPUT_ARGUMENTS(ARGTYPE_FLOAT, ARGTYPE_FLOAT, ARGTYPE_FLOAT, ARGTYPE_FLOAT, ARGTYPE_INT, ), OUTPUT_ARGUMENTS(ARGTYPE_INT, ), false, -1, ""),
REGISTER_COMMAND(COMMAND_IS_PLAYER_MADE_SAFE, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), true, -1, ""),
REGISTER_COMMAND(COMMAND_PRINT_IF_FREE, INPUT_ARGUMENTS(ARGTYPE_STRING, ARGTYPE_INT, ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_IS_E3_BUILD, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), true, -1, ""),
REGISTER_COMMAND(COMMAND_DECLARE_FORT_STAUNTON_DESTROYED_FLAG, INPUT_ARGUMENTS(ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_CLEAR_BIG_MESSAGES, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_CLEAR_AREA_OF_OBJECTS, INPUT_ARGUMENTS(ARGTYPE_FLOAT, ARGTYPE_FLOAT, ARGTYPE_FLOAT, ARGTYPE_FLOAT, ARGTYPE_FLOAT, ARGTYPE_FLOAT, ), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_LOAD_NON_STANDARD_PED_ANIM, INPUT_ARGUMENTS(ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_UNLOAD_NON_STANDARD_PED_ANIM, INPUT_ARGUMENTS(ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_1566, INPUT_ARGUMENTS(ARGTYPE_FLOAT, ), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_BUILD_WORLD_GEOMETRY, INPUT_ARGUMENTS(ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_STORE_BUILDING_SWAP, INPUT_ARGUMENTS(ARGTYPE_INT, ARGTYPE_INT, ARGTYPE_INT, ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_IS_MULTIPLAYER_ACTIVE, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), true, -1, ""),
REGISTER_COMMAND(COMMAND_GET_MULTIPLAYER_MODE, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(ARGTYPE_INT, ), false, -1, ""),
REGISTER_COMMAND(COMMAND_MULTIPLAYER_SCRIPT_DONE, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), true, -1, ""),
REGISTER_COMMAND(COMMAND_IS_MULTIPLAYER_SERVER, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), true, -1, ""),
REGISTER_COMMAND(COMMAND_IS_MULTIPLAYER_TEAM_GAME, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), true, -1, ""),
REGISTER_COMMAND(COMMAND_GET_MULTIPLAYER_TEAM_ID, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(ARGTYPE_INT, ), false, -1, ""),
REGISTER_COMMAND(COMMAND_DOES_SHORTCUT_TAXI_EXIST, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), true, -1, ""),
REGISTER_COMMAND(COMMAND_SET_ONSCREEN_TIMER_COLOUR, INPUT_ARGUMENTS(ARGTYPE_INT, ARGTYPE_INT, ARGTYPE_INT, ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_SET_ONSCREEN_TIMER_BACKGROUND_COLOUR, INPUT_ARGUMENTS(ARGTYPE_INT, ARGTYPE_INT, ARGTYPE_INT, ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_REMOVE_CAR_BOOT, INPUT_ARGUMENTS(ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_ADD_POINT_3D_MARKER, INPUT_ARGUMENTS(ARGTYPE_FLOAT, ARGTYPE_FLOAT, ARGTYPE_FLOAT, ARGTYPE_FLOAT, ARGTYPE_INT, ARGTYPE_INT, ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_GET_VECTOR_FROM_MULTIPLAYER, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(ARGTYPE_FLOAT, ARGTYPE_FLOAT, ARGTYPE_FLOAT, ), false, -1, ""),
REGISTER_COMMAND(COMMAND_PRINT_HELP_ALWAYS, INPUT_ARGUMENTS(ARGTYPE_STRING, ), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_PRINT_HELP_FOREVER_ALWAYS, INPUT_ARGUMENTS(ARGTYPE_STRING, ), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_SWITCH_FERRY_COLLISION, INPUT_ARGUMENTS(ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_SET_CHAR_MAX_HEALTH, INPUT_ARGUMENTS(ARGTYPE_INT, ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_SET_CHAR_SHOOT_TIMER, INPUT_ARGUMENTS(ARGTYPE_INT, ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_SET_CHAR_ATTACK_TIMER, INPUT_ARGUMENTS(ARGTYPE_INT, ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_SET_HELI_ROTOR_BLADES_FULLSPEED, INPUT_ARGUMENTS(ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_SET_CRUSHER_REWARD_MULTIPLIER, INPUT_ARGUMENTS(ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_SWAP_BUILDINGS, INPUT_ARGUMENTS(ARGTYPE_INT, ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_STREAM_BUILDING_SWAPS, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), true, -1, ""),
REGISTER_COMMAND(COMMAND_IS_WORLD_STREAMING_COMPLETE, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), true, -1, ""),
REGISTER_COMMAND(COMMAND_SWAP_TO_STREAMED_SECTOR, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_SET_CHAR_ATTACKS_PLAYER_WITH_COPS, INPUT_ARGUMENTS(ARGTYPE_INT, ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_REGISTER_FACE_PLANT_DISTANCE, INPUT_ARGUMENTS(ARGTYPE_FLOAT, ), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_REGISTER_MAX_SECONDS_ON_CARNAGE_LEFT, INPUT_ARGUMENTS(ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_REGISTER_MAX_KILLS_ON_RC_TRIAD, INPUT_ARGUMENTS(ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_REGISTER_HIGHEST_LEVEL_SLASH_TV, INPUT_ARGUMENTS(ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_ADD_MONEY_MADE_WITH_SLASH_TV, INPUT_ARGUMENTS(ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_ADD_TOTAL_KILLS_ON_SLASH_TV, INPUT_ARGUMENTS(ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_ADD_NOODLES_DELIVERED, INPUT_ARGUMENTS(ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_REGISTER_SCRAPYARD_CHALLENGE_SCORE, INPUT_ARGUMENTS(ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_REGISTER_9MM_MAYHEM_SCORE, INPUT_ARGUMENTS(ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_REGISTER_SCOOTER_SHOOTER_SCORE, INPUT_ARGUMENTS(ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_ADD_MONEY_MADE_FROM_TOURIST, INPUT_ARGUMENTS(ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_ADD_TOURISTS_TAKEN_TO_SPOTS, INPUT_ARGUMENTS(ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_ADD_EXPORTED_CARS, INPUT_ARGUMENTS(ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_SET_TOTAL_EXPORT_CARS, INPUT_ARGUMENTS(ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_REGISTER_DIRT_BIKE_FASTEST_LAP, INPUT_ARGUMENTS(ARGTYPE_INT, ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_REGISTER_DIRT_BIKE_FASTEST_TIME, INPUT_ARGUMENTS(ARGTYPE_INT, ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_REGISTER_DIRT_BIKE_AIR_TIME, INPUT_ARGUMENTS(ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_ADD_ARROW_3D_MARKER, INPUT_ARGUMENTS(ARGTYPE_FLOAT, ARGTYPE_FLOAT, ARGTYPE_FLOAT, ARGTYPE_FLOAT, ARGTYPE_FLOAT, ARGTYPE_FLOAT, ARGTYPE_INT, ARGTYPE_INT, ARGTYPE_INT, ARGTYPE_FLOAT, ), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_PRINT_NOW_OVERRIDE_FADE, INPUT_ARGUMENTS(ARGTYPE_STRING, ARGTYPE_INT, ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_GET_PICKUP_VALUE, INPUT_ARGUMENTS(ARGTYPE_INT, ), OUTPUT_ARGUMENTS(ARGTYPE_INT, ), false, -1, ""),
REGISTER_COMMAND(COMMAND_SET_PICKUP_VALUE, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_IS_DEVELOPER, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), true, -1, ""),
REGISTER_COMMAND(COMMAND_SET_DEVELOPER_FLAG, INPUT_ARGUMENTS(ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_REGISTER_WICHITA_WIPEOUT_SCORE, INPUT_ARGUMENTS(ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_ATTACH_OBJECT_TO_CAR, INPUT_ARGUMENTS(ARGTYPE_INT, ARGTYPE_INT, ARGTYPE_FLOAT, ARGTYPE_FLOAT, ARGTYPE_FLOAT, ), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_DETACH_OBJECT_FROM_CAR, INPUT_ARGUMENTS(ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_SET_PAD_STICKS_MULTIPLIER, INPUT_ARGUMENTS(ARGTYPE_FLOAT, ARGTYPE_FLOAT, ), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_PRINT_SUBTITLE_NOW, INPUT_ARGUMENTS(ARGTYPE_STRING, ARGTYPE_INT, ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_PRINT_SUBTITLE_NOW_OVERRIDE_FADE, INPUT_ARGUMENTS(ARGTYPE_STRING, ARGTYPE_INT, ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_PRINT_SUBTITLE_NOW_NO_BRIEF, INPUT_ARGUMENTS(ARGTYPE_STRING, ARGTYPE_INT, ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_PRINT_WITH_NUMBER_NOW_NO_BRIEF, INPUT_ARGUMENTS(ARGTYPE_STRING, ARGTYPE_INT, ARGTYPE_INT, ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_GET_ANGLE_BETWEEN_POINTS, INPUT_ARGUMENTS(ARGTYPE_FLOAT, ARGTYPE_FLOAT, ARGTYPE_FLOAT, ARGTYPE_FLOAT, ), OUTPUT_ARGUMENTS(ARGTYPE_FLOAT, ), false, -1, ""),
REGISTER_COMMAND(COMMAND_OVERRIDE_CHAR_MOVE_ANIM, INPUT_ARGUMENTS(ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_1627, INPUT_ARGUMENTS(ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_ENABLE_EMERGENCY_VEHICLES, INPUT_ARGUMENTS(ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_ADD_UNLOCKED_COSTUME, INPUT_ARGUMENTS(ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_CLEAR_MULTIPLAYER_SPLASH_SCREEN, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_PRINT_WITH_2_NUMBERS_NOW_NO_BRIEF, INPUT_ARGUMENTS(ARGTYPE_STRING, ARGTYPE_INT, ARGTYPE_INT, ARGTYPE_INT, ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_GET_OBJECT_ORIENTATION, INPUT_ARGUMENTS(ARGTYPE_INT, ), OUTPUT_ARGUMENTS(ARGTYPE_FLOAT, ARGTYPE_FLOAT, ARGTYPE_FLOAT, ), false, -1, ""),
REGISTER_COMMAND(COMMAND_SET_OBJECT_ORIENTATION, INPUT_ARGUMENTS(ARGTYPE_INT, ARGTYPE_FLOAT, ARGTYPE_FLOAT, ARGTYPE_FLOAT, ), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_CHANGE_ONSCREEN_COUNTER_PREFIX, INPUT_ARGUMENTS(ARGTYPE_INT, ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_STORE_PLAYER_OUTFIT, INPUT_ARGUMENTS(ARGTYPE_STRING, ), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_DISPLAY_ONSCREEN_TIMER_WITH_NUMBER_AND_STRING, INPUT_ARGUMENTS(ARGTYPE_INT, ARGTYPE_INT, ARGTYPE_INT, ARGTYPE_STRING, ), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_SET_PLAYER_CURRENT_WEAPON_AMMO_IN_CLIP, INPUT_ARGUMENTS(ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_SET_CHAR_WAIT_STATE_REPEAT, INPUT_ARGUMENTS(ARGTYPE_INT, ARGTYPE_INT, ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_REGISTER_BEST_TIME_GOGO_FAGGIO, INPUT_ARGUMENTS(ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_LOCK_GARAGE, INPUT_ARGUMENTS(ARGTYPE_INT, ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_IS_FINAL_GAME, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), true, -1, ""),
REGISTER_COMMAND(COMMAND_SET_ALLOWED_COLLISION, INPUT_ARGUMENTS(ARGTYPE_INT, ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_REGISTER_GUARDIAN_ANGEL_LEVEL, INPUT_ARGUMENTS(ARGTYPE_INT, ARGTYPE_INT, ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_DISPLAY_ONSCREEN_TIMER_WITH_NUMBER_AND_2_STRINGS, INPUT_ARGUMENTS(ARGTYPE_INT, ARGTYPE_INT, ARGTYPE_INT, ARGTYPE_INT, ARGTYPE_STRING, ARGTYPE_STRING, ), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_GET_PLAYER_STORED_WEAPON, INPUT_ARGUMENTS(ARGTYPE_INT, ), OUTPUT_ARGUMENTS(ARGTYPE_INT, ), false, -1, ""),
REGISTER_COMMAND(COMMAND_DISABLE_PAUSE_MENU, INPUT_ARGUMENTS(ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_IS_CHANNEL_PLAYING, INPUT_ARGUMENTS(ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), true, -1, ""),
REGISTER_COMMAND(COMMAND_SET_CLOCK_EVENT_WARNING, INPUT_ARGUMENTS(ARGTYPE_INT, ARGTYPE_INT, ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_SET_EXTRA_COLOUR_LIGHT_DIRECTION, INPUT_ARGUMENTS(ARGTYPE_FLOAT, ARGTYPE_FLOAT, ARGTYPE_FLOAT, ), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_SET_CHAR_CAN_BE_TARGETTED_BY_LEADER, INPUT_ARGUMENTS(ARGTYPE_INT, ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_PRINT_HELP_NO_BRIEF, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_PRINT_HELP_FOREVER_NO_BRIEF, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_PRINT_HELP_ALWAYS_NO_BRIEF, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_PRINT_HELP_FOREVER_ALWAYS_NO_BRIEF, INPUT_ARGUMENTS(), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_SET_MISSION_CAR_CAN_BE_STORED_IN_GARAGE, INPUT_ARGUMENTS(ARGTYPE_INT, ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_FREEZE_ALL_PLAYER_FOLLOWERS, INPUT_ARGUMENTS(ARGTYPE_INT, ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), false, -1, ""),
};
#undef REGISTER_COMMAND
#undef INPUT_ARGUMENTS
@ -2936,7 +2936,7 @@ int8 CRunningScript::ProcessOneCommand()
case ARGTYPE_STRING: sprintf(tmp, " '%s'", (const char*)&CTheScripts::ScriptSpace[m_nIp]); m_nIp += KEY_LENGTH_IN_SCRIPT; break;
case ARGTYPE_LABEL: value = CollectParameterForDebug(commandInfo, var); sprintf(tmp, var ? " (%s(%d))" : " %s(%d)", value >= 0 ? "G" : "L", abs(value)); break;
case ARGTYPE_BOOL: value = CollectParameterForDebug(commandInfo, var); sprintf(tmp, var ? " (%s)" : " %s", value ? "TRUE" : "FALSE"); break;
case ARGTYPE_ANDOR: value = CollectParameterForDebug(commandInfo, var); sprintf(tmp, " %d %ss", (value + 1) % 10, value / 10 == 0 ? "AND" : "OR"); break;
case ARGTYPE_ANDOR: value = CollectParameterForDebug(commandInfo, var); sprintf(tmp, " %d %ss", (value) % 10, value / 10 == 0 ? "AND" : "OR"); break;
default: script_assert(0);
}
strcat(commandInfo, tmp);
@ -2983,6 +2983,8 @@ int8 CRunningScript::ProcessOneCommand()
retval = ProcessCommands1500To1599(command);
else if (command < 1700)
retval = ProcessCommands1600To1699(command);
else
script_assert(false);
#ifdef USE_ADVANCED_SCRIPT_DEBUG_OUTPUT
if (command < ARRAY_SIZE(commands)) {
if (commands[command].cond || commands[command].output[0] != ARGTYPE_NONE) {
@ -4572,14 +4574,12 @@ int8 CRunningScript::ProcessCommands100To199(int32 command)
UpdateCompareFlag(TheCamera.IsSphereVisible(pos, GET_FLOAT_PARAM(3)));
return 0;
}
/*
case COMMAND_DEBUG_ON:
CTheScripts::DbgFlag = true;
return 0;
case COMMAND_DEBUG_OFF:
CTheScripts::DbgFlag = false;
return 0;
*/
case COMMAND_RETURN_TRUE:
UpdateCompareFlag(true);
ReturnFromGosubOrFunction();
@ -4627,10 +4627,8 @@ int8 CRunningScript::ProcessCommands200To299(int32 command)
m_bCondResult = false; // pointless
}else if (m_nAndOrState >= ANDS_1 && m_nAndOrState <= ANDS_8){
m_bCondResult = true;
m_nAndOrState++;
}else if (m_nAndOrState >= ORS_1 && m_nAndOrState <= ORS_8){
m_bCondResult = false;
m_nAndOrState++;
}else{
script_assert(0 && "COMMAND_ANDOR: invalid ANDOR state");
}
@ -5178,7 +5176,7 @@ void CRunningScript::ReturnFromGosubOrFunction()
uint8 nOutputParameters = CTheScripts::Read1ByteFromScript(&m_nIp);
uint8 nLocalsOffset = CTheScripts::Read1ByteFromScript(&m_nIp);
for (int i = 0; i < nOutputParameters; i++)
ScriptParams[i] = m_anLocalVariables[m_nLocalsPointer + nInputParameters];
ScriptParams[i] = m_anLocalVariables[m_nLocalsPointer + nInputParameters + i];
m_nIp += val >> STACKVALUE_IP_PARAMS_OFFSET;
m_nLocalsPointer -= nLocalsOffset;
StoreParameters(&m_nIp, nOutputParameters);
@ -5254,23 +5252,19 @@ CTheScripts::SwitchToMission(int32 mission)
CStats::LastMissionPassedName[0] = '\0';
#endif
CTimer::Suspend();
int offset = CTheScripts::MultiScriptArray[mission];
#ifdef USE_DEBUG_SCRIPT_LOADER
CFileMgr::ChangeDir("\\data\\");
int handle = CFileMgr::OpenFile(scriptfile, "rb");
CFileMgr::ChangeDir("\\");
#else
CFileMgr::ChangeDir("\\");
int handle = CFileMgr::OpenFile("data\\main.scm", "rb");
#endif
CFileMgr::Seek(handle, offset, 0);
CFileMgr::Read(handle, (const char*)&CTheScripts::ScriptSpace[CTheScripts::MainScriptSize], CTheScripts::MainScriptSize);
CFileMgr::CloseFile(handle);
int offset = CTheScripts::MultiScriptArray[mission] + 8;
int size = CTheScripts::MultiScriptArray[mission + 1] - CTheScripts::MultiScriptArray[mission];
if (size <= 0)
size = CTheScripts::LargestMissionScriptSize;
CFileMgr::Seek(gScriptsFile, offset, 0);
CFileMgr::Read(gScriptsFile, (const char*)&CTheScripts::ScriptSpace[CTheScripts::MainScriptSize], size);
CRunningScript* pMissionScript = CTheScripts::StartNewScript(CTheScripts::MainScriptSize);
CTimer::Resume();
pMissionScript->m_bIsMissionScript = true;
pMissionScript->m_bMissionFlag = true;
CTheScripts::bAlreadyRunningAMissionScript = true;
memset(&CTheScripts::ScriptSpace[CTheScripts::NumTrueGlobals * 4 + 8], 0, CTheScripts::MostGlobals * 4);
CGameLogic::ClearShortCut();
pMissionScript->Process();
}
#endif

View File

@ -19,7 +19,7 @@ class CRunningScript;
extern int32 ScriptParams[32];
void FlushLog();
#define script_assert(_Expression) FlushLog(); assert(_Expression);
#define script_assert(_Expression) { FlushLog(); assert(_Expression); }
#define PICKUP_PLACEMENT_OFFSET (0.5f)
#define PED_FIND_Z_OFFSET (5.0f)
@ -360,11 +360,13 @@ public:
static void UndoBuildingSwaps();
static void UndoEntityInvisibilitySettings();
/*
static void ScriptDebugLine3D(float x1, float y1, float z1, float x2, float y2, float z2, uint32 col, uint32 col2);
static void RenderTheScriptDebugLines();
*/
static void SaveAllScripts(uint8*, uint32*);
static void LoadAllScripts(uint8*, uint32);
static bool LoadAllScripts(uint8*, uint32);
static bool IsDebugOn() { return DbgFlag; };
static void InvertDebugFlag() { DbgFlag = !DbgFlag; }
@ -420,10 +422,12 @@ public:
static void DrawScriptSpheres();
static void HighlightImportantArea(uint32, float, float, float, float, float);
static void HighlightImportantAngledArea(uint32, float, float, float, float, float, float, float, float, float);
/*
static void DrawDebugSquare(float, float, float, float);
static void DrawDebugAngledSquare(float, float, float, float, float, float, float, float);
static void DrawDebugCube(float, float, float, float, float, float);
static void DrawDebugAngledCube(float, float, float, float, float, float, float, float, float, float);
*/
static void AddToInvisibilitySwapArray(CEntity*, bool);
static void AddToBuildingSwapArray(CBuilding*, int32, int32);
@ -432,7 +436,7 @@ public:
static int32 AddScriptSphere(int32 id, CVector pos, float radius);
static int32 GetNewUniqueScriptSphereIndex(int32 index);
static void RemoveScriptSphere(int32 index);
static void RemoveScriptTextureDictionary();
//static void RemoveScriptTextureDictionary();
public:
static void RemoveThisPed(CPed* pPed);
@ -504,7 +508,7 @@ class CRunningScript
public:
CRunningScript* next;
CRunningScript* prev;
int m_nId;
int32 m_nId;
char m_abScriptName[8];
uint32 m_nIp;
uint32 m_anStack[MAX_STACK_DEPTH];
@ -549,7 +553,30 @@ public:
int8 ProcessOneCommand();
void DoDeatharrestCheck();
void UpdateCompareFlag(bool);
void UpdateCompareFlag(bool flag)
{
if (m_bNotFlag)
flag = !flag;
if (m_nAndOrState == ANDOR_NONE) {
m_bCondResult = flag;
return;
}
if (m_nAndOrState >= ANDS_1 && m_nAndOrState <= ANDS_8) {
m_bCondResult &= flag;
if (m_nAndOrState == ANDS_1) {
m_nAndOrState = ANDOR_NONE;
return;
}
}
else {
m_bCondResult |= flag;
if (m_nAndOrState <= ORS_1) {
m_nAndOrState = ANDOR_NONE;
return;
}
}
m_nAndOrState--;
}
int16 GetPadState(uint16, uint16);
int8 ProcessCommands0To99(int32);
@ -570,6 +597,7 @@ public:
int8 ProcessCommands1500To1599(int32);
int8 ProcessCommands1600To1699(int32);
uint32 CollectLocateParameters(uint32*, bool);
void LocatePlayerCommand(int32, uint32*);
void LocatePlayerCharCommand(int32, uint32*);
void LocatePlayerCarCommand(int32, uint32*);
@ -608,6 +636,7 @@ public:
bool ThisIsAValidRandomCop(uint32 mi, int cop, int swat, int fbi, int army, int miami);
bool ThisIsAValidRandomPed(uint32 pedtype, int civ, int gang, int criminal);
bool CheckDamagedWeaponType(int32 actual, int32 type);
void ReturnFromGosubOrFunction();
};

419
src/control/Script10.cpp Normal file
View File

@ -0,0 +1,419 @@
#include "common.h"
#include "Script.h"
#include "ScriptCommands.h"
#include "CarCtrl.h"
#include "DMAudio.h"
#include "Frontend.h"
#include "GameLogic.h"
#include "General.h"
#include "Hud.h"
#include "Messages.h"
#include "Object.h"
#include "Pad.h"
#include "Pickups.h"
#include "PlayerPed.h"
#include "Pools.h"
#include "Vehicle.h"
#include "SpecialFX.h"
#include "Stats.h"
#include "User.h"
#include "Weather.h"
#include "World.h"
bool gDeveloperFlag;
int8 CRunningScript::ProcessCommands1600To1699(int32 command)
{
switch (command) {
case COMMAND_ADD_NOODLES_DELIVERED:
CollectParameters(&m_nIp, 1);
// CStats::NoodlesDelievered += GET_INTEGER_PARAM(0);
return 0;
case COMMAND_REGISTER_SCRAPYARD_CHALLENGE_SCORE:
CollectParameters(&m_nIp, 1);
//CStats::TopScrapyardChallengeScore = Max(CStats::TopScrapyardChallengeScore, GET_INTEGER_PARAM(0));
return 0;
case COMMAND_REGISTER_9MM_MAYHEM_SCORE:
CollectParameters(&m_nIp, 1);
//CStats::Top9mmMayhemScore = Max(CStats::Top9mmMayhemScore, GET_INTEGER_PARAM(0));
return 0;
case COMMAND_REGISTER_SCOOTER_SHOOTER_SCORE:
CollectParameters(&m_nIp, 1);
//CStats::TopScooterShooterScore = Max(CStats::TopScooterShooterScore, GET_INTEGER_PARAM(0));
return 0;
case COMMAND_ADD_MONEY_MADE_FROM_TOURIST:
CollectParameters(&m_nIp, 1);
// CStats::MoneyMadeFromTourist += GET_INTEGER_PARAM(0);
return 0;
case COMMAND_ADD_TOURISTS_TAKEN_TO_SPOTS:
CollectParameters(&m_nIp, 1);
// CStats::TouristsTakenToSpots += GET_INTEGER_PARAM(0);
return 0;
case COMMAND_ADD_EXPORTED_CARS:
CollectParameters(&m_nIp, 1);
// CStats::NumberOfExportedCars += GET_INTEGER_PARAM(0);
return 0;
case COMMAND_SET_TOTAL_EXPORT_CARS:
CollectParameters(&m_nIp, 1);
// CStats::TotalNumberOfCarExport = GET_INTEGER_PARAM(0);
return 0;
case COMMAND_REGISTER_DIRT_BIKE_FASTEST_LAP:
CollectParameters(&m_nIp, 2);
// CStats::RegisterDirtBikeFastestLap(GET_INTEGER_PARAM(0), GET_INTEGER_PARAM(1));
return 0;
case COMMAND_REGISTER_DIRT_BIKE_FASTEST_TIME:
CollectParameters(&m_nIp, 2);
// CStats::RegisterDirtBikeFastestTime(GET_INTEGER_PARAM(0), GET_INTEGER_PARAM(1));
return 0;
case COMMAND_REGISTER_DIRT_BIKE_AIR_TIME:
CollectParameters(&m_nIp, 1);
//CStats::DirtBikeMostAir = Max(CStats::DirtBikeMostAir, GET_INTEGER_PARAM(0));
return 0;
case COMMAND_ADD_ARROW_3D_MARKER:
{
uint32 ip = m_nIp;
uint32 id = (uint32)(uintptr)GetPointerToScriptVariable(&m_nIp, 0);
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
return 0;
}
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
return 0;
}
case COMMAND_GET_PICKUP_VALUE:
{
CollectParameters(&m_nIp, 1);
SET_INTEGER_PARAM(0, CPickups::GetValue(GET_INTEGER_PARAM(0)));
return 0;
}
case COMMAND_SET_PICKUP_VALUE:
{
CollectParameters(&m_nIp, 2);
CPickups::SetValue(GET_INTEGER_PARAM(0), GET_INTEGER_PARAM(1));
return 0;
}
case COMMAND_IS_DEVELOPER:
UpdateCompareFlag(gDeveloperFlag);
return 0;
case COMMAND_SET_DEVELOPER_FLAG:
CollectParameters(&m_nIp, 1);
gDeveloperFlag = GET_INTEGER_PARAM(0);
return 0;
case COMMAND_REGISTER_WICHITA_WIPEOUT_SCORE:
CollectParameters(&m_nIp, 1);
//CStats::TopWichitaWipeoutScore = Max(CStats::TopWichitaWipeoutScore, GET_INTEGER_PARAM(0));
return 0;
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);
return 0;
}
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();
return 0;
}
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);
return 0;
}
case COMMAND_PRINT_SUBTITLE_NOW:
{
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, true
else
CMessages::AddToPreviousBriefArray(key, -1, -1, -1, -1, -1, -1, nil);
return 0;
}
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);
return 0;
}
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);
return 0;
}
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
return 0;
}
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);
return 0;
}
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;
return 0;
}
case COMMAND_1627:
{
CollectParameters(&m_nIp, 1);
// something related to debug menu, not implemented
return 0;
}
case COMMAND_ENABLE_EMERGENCY_VEHICLES:
{
CollectParameters(&m_nIp, 1);
gbEmergencyVehiclesEnabled = GET_INTEGER_PARAM(0) != 0;
return 0;
}
case COMMAND_ADD_UNLOCKED_COSTUME:
CollectParameters(&m_nIp, 1);
// CStats::AddUnlockedCostume(GET_INTEGER_PARAM(0));
return 0;
case COMMAND_CLEAR_MULTIPLAYER_SPLASH_SCREEN:
// ClearMultiplayerSplashScreen();
return 0;
case COMMAND_PRINT_WITH_2_NUMBERS_NOW_NO_BRIEF:
{
wchar* key = CTheScripts::GetTextByKeyFromScript(&m_nIp);
CollectParameters(&m_nIp, 3);
CMessages::AddMessageJumpQWithNumber(key, GET_INTEGER_PARAM(2), GET_INTEGER_PARAM(3), GET_INTEGER_PARAM(0), GET_INTEGER_PARAM(1), -1, -1, -1, -1); // 0
return 0;
}
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))));
SET_FLOAT_PARAM(2, LimitAngleOnCircle(RADTODEG(CGeneral::GetATanOfXY(pObject->GetForward().x, pObject->GetForward().y))));
SET_FLOAT_PARAM(0, LimitAngleOnCircle(RADTODEG(CGeneral::GetATanOfXY(pObject->GetUp().z, pObject->GetRight().z))));
StoreParameters(&m_nIp, 3);
return 0;
}
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)));
return 0;
}
case COMMAND_CHANGE_ONSCREEN_COUNTER_PREFIX:
{
uint16 offset = (uint8*)GetPointerToScriptVariable(&m_nIp, VAR_GLOBAL) - CTheScripts::ScriptSpace;
CollectParameters(&m_nIp, 1);
//CUserDisplay::OnscnTimer.ChangeCounterPrefix(offset, GET_INTEGER_PARAMS(0));
return 0;
}
case COMMAND_STORE_PLAYER_OUTFIT:
{
char tmp[12]; // TODO
CTheScripts::ReadTextLabelFromScript(&m_nIp, tmp);
for (int i = 0; i < KEY_LENGTH_IN_SCRIPT; i++)
CGameLogic::mStoredPlayerOutfit[i] = tmp[i];
printf("STORED PLAYOUR OUTFIT : %s\n", CGameLogic::mStoredPlayerOutfit);
m_nIp += KEY_LENGTH_IN_SCRIPT;
return 0;
}
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;
CUserDisplay::OnscnTimer.AddCounter(var, GET_INTEGER_PARAM(1), onscreen_str1, 0); // TODO - second set of data
return 0;
}
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);
return 0;
}
case COMMAND_SET_CHAR_WAIT_STATE_REPEAT:
{
CollectParameters(&m_nIp, 3);
CPed* pPed = CPools::GetPedPool()->GetAt(GET_INTEGER_PARAM(0));
if (pPed)
pPed->SetWaitState((eWaitState)GET_INTEGER_PARAM(0), GET_INTEGER_PARAM(1) >= 0 ? (void*)GET_INTEGER_PARAM(0) : nil); // + true
return 0;
}
case COMMAND_REGISTER_BEST_TIME_GOGO_FAGGIO:
CollectParameters(&m_nIp, 1);
// CStats::RegisterBestTimeGoGoFaggio(GET_INTEGER_PARAM(0));
return 0;
case COMMAND_LOCK_GARAGE:
CollectParameters(&m_nIp, 2);
// CGarages::LockGarage(GET_INTEGER_PARAM(0), GET_INTEGER_PARAM(1));
return 0;
case COMMAND_IS_FINAL_GAME:
#ifdef FINAL
UpdateCompareFlag(true);
#else
UpdateCompareFlag(false);
#endif
return 0;
case COMMAND_SET_ALLOWED_COLLISION:
{
CollectParameters(&m_nIp, 2);
CTheScripts::AllowedCollision[0] = GET_INTEGER_PARAM(0);
CTheScripts::AllowedCollision[1] = GET_INTEGER_PARAM(1);
return 0;
}
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));
return 0;
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;
CUserDisplay::OnscnTimer.AddCounter(var, GET_INTEGER_PARAM(1), onscreen_str1, 0); // TODO - second set of data
}
case COMMAND_GET_PLAYER_STORED_WEAPON:
{
CollectParameters(&m_nIp, 1);
CPed* pPed = CWorld::Players[GET_INTEGER_PARAM(0)].m_pPed;
script_assert(pPed);
SET_INTEGER_PARAM(0, pPed->m_storedWeapon);
StoreParameters(&m_nIp, 1);
return 0;
}
case COMMAND_DISABLE_PAUSE_MENU:
CollectParameters(&m_nIp, 1);
// FrontEndMenuManager.mDisablePauseMenu = GET_INTEGER_PARAM(0) != 0; // TODO: static + member
return 0;
case COMMAND_IS_CHANNEL_PLAYING:
CollectParameters(&m_nIp, 1);
//UpdateCompareFlag(DMAudio.IsChannelPlaying(GET_INTEGER_PARAM(0));
UpdateCompareFlag(false);
return 0;
case COMMAND_SET_CLOCK_EVENT_WARNING:
CollectParameters(&m_nIp, 3);
/*
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:
CollectParameters(&m_nIp, 3);
// CWeather::ExtraColourLightDir = GET_VECTOR_PARAM(0);
// CWeather::ExtraColourLightDir.Normalise();
return 0;
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;
return 0;
}
case COMMAND_PRINT_HELP_NO_BRIEF:
{
wchar* text = CTheScripts::GetTextByKeyFromScript(&m_nIp);
CHud::SetHelpMessage(text, false); // + false, false
return 0;
}
case COMMAND_PRINT_HELP_FOREVER_NO_BRIEF:
{
wchar* text = CTheScripts::GetTextByKeyFromScript(&m_nIp);
CHud::SetHelpMessage(text, false, true); // + false
return 0;
}
case COMMAND_PRINT_HELP_ALWAYS_NO_BRIEF:
{
// CHud::mAlwaysAllowHelpText = true;
wchar* text = CTheScripts::GetTextByKeyFromScript(&m_nIp);
CHud::SetHelpMessage(text, false); // + false, false
return 0;
}
case COMMAND_PRINT_HELP_FOREVER_ALWAYS_NO_BRIEF:
{
// CHud::mAlwaysAllowHelpText = true;
wchar* text = CTheScripts::GetTextByKeyFromScript(&m_nIp);
CHud::SetHelpMessage(text, false, true); // + false
return 0;
}
case COMMAND_SET_MISSION_CAR_CAN_BE_STORED_IN_GARAGE:
{
CollectParameters(&m_nIp, 2);
CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(GET_INTEGER_PARAM(0));
script_assert(pVehicle);
pVehicle->bAllowGarageToStore = (GET_INTEGER_PARAM(1) != 0);
return 0;
}
case COMMAND_FREEZE_ALL_PLAYER_FOLLOWERS:
{
CollectParameters(&m_nIp, 2);
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);
}
}
return 0;
}
default:
script_assert(0);
}
return -1;
}

View File

@ -175,27 +175,27 @@ int8 CRunningScript::ProcessCommands300To399(int32 command)
*/
case COMMAND_DISPLAY_ONSCREEN_TIMER:
{
uint16 offset = GetPointerToScriptVariable(&m_nIp, VAR_GLOBAL) - (int32*)CTheScripts::ScriptSpace;
uint16 offset = (uint8*)GetPointerToScriptVariable(&m_nIp, VAR_GLOBAL) - CTheScripts::ScriptSpace;
CollectParameters(&m_nIp, 1);
CUserDisplay::OnscnTimer.AddClock(offset, nil, GET_INTEGER_PARAM(0) != 0);
return 0;
}
case COMMAND_CLEAR_ONSCREEN_TIMER:
{
uint16 offset = GetPointerToScriptVariable(&m_nIp, VAR_GLOBAL) - (int32*)CTheScripts::ScriptSpace;
uint16 offset = (uint8*)GetPointerToScriptVariable(&m_nIp, VAR_GLOBAL) - CTheScripts::ScriptSpace;
CUserDisplay::OnscnTimer.ClearClock(offset);
return 0;
}
case COMMAND_DISPLAY_ONSCREEN_COUNTER:
{
uint16 counter = GetPointerToScriptVariable(&m_nIp, VAR_GLOBAL) - (int32*)CTheScripts::ScriptSpace;
uint16 counter = (uint8*)GetPointerToScriptVariable(&m_nIp, VAR_GLOBAL) - CTheScripts::ScriptSpace;
CollectParameters(&m_nIp, 1);
CUserDisplay::OnscnTimer.AddCounter(counter, GET_INTEGER_PARAM(0), nil, 0);
return 0;
}
case COMMAND_CLEAR_ONSCREEN_COUNTER:
{
uint16 counter = GetPointerToScriptVariable(&m_nIp, VAR_GLOBAL) - (int32*)CTheScripts::ScriptSpace;
uint16 counter = (uint8*)GetPointerToScriptVariable(&m_nIp, VAR_GLOBAL) - CTheScripts::ScriptSpace;
CUserDisplay::OnscnTimer.ClearCounter(counter);
return 0;
}
@ -624,7 +624,7 @@ int8 CRunningScript::ProcessCommands300To399(int32 command)
//case COMMAND_MOVE_CAMERA_ALONG_SPLINE:
//case COMMAND_GET_CAMERA_POSITION_ALONG_SPLINE:
case COMMAND_DECLARE_MISSION_FLAG:
CTheScripts::OnAMissionFlag = GetPointerToScriptVariable(&m_nIp, VAR_GLOBAL) - (int32*)CTheScripts::ScriptSpace;
CTheScripts::OnAMissionFlag = (uint8*)GetPointerToScriptVariable(&m_nIp, VAR_GLOBAL) - CTheScripts::ScriptSpace;
return 0;
case COMMAND_DECLARE_MISSION_FLAG_FOR_CONTACT:
return 0;
@ -1452,7 +1452,7 @@ int8 CRunningScript::ProcessCommands400To499(int32 command)
{
wchar* text = CTheScripts::GetTextByKeyFromScript(&m_nIp);
CollectParameters(&m_nIp, 3);
CMessages::AddMessageJumpQWithNumber(text, GET_INTEGER_PARAM(1), GET_INTEGER_PARAM(2), GET_INTEGER_PARAM(0), -1, -1, -1, -1, -1);
CMessages::AddMessageJumpQWithNumber(text, GET_INTEGER_PARAM(1), GET_INTEGER_PARAM(2), GET_INTEGER_PARAM(0), -1, -1, -1, -1, -1); // 1
return 0;
}
case COMMAND_PRINT_WITH_NUMBER_SOON:

View File

@ -36,6 +36,8 @@
#include "GameLogic.h"
#include "Bike.h"
// LCS: file done except TODOs
int8 CRunningScript::ProcessCommands500To599(int32 command)
{
switch (command) {
@ -731,7 +733,7 @@ int8 CRunningScript::ProcessCommands500To599(int32 command)
CPed* pPed = CPools::GetPedPool()->GetAt(GET_INTEGER_PARAM(0));
script_assert(pPed);
pPed->m_animGroup = (AssocGroupId)GET_INTEGER_PARAM(1);
pPed->b1A1_20 = false;
pPed->bOverrideMoveAnim = false;
return 0;
}
/*
@ -1740,8 +1742,10 @@ int8 CRunningScript::ProcessCommands700To799(int32 command)
UpdateCompareFlag(pPed->bIsShooting && pPed->IsWithinArea(x1, y1, x2, y2));
if (GET_INTEGER_PARAM(5))
CTheScripts::HighlightImportantArea((uintptr)this + m_nIp, x1, y1, x2, y2, MAP_Z_LOW_LIMIT);
/*
if (CTheScripts::DbgFlag)
CTheScripts::DrawDebugSquare(x1, y1, x2, y2);
*/
return 0;
}
case COMMAND_IS_CHAR_SHOOTING_IN_AREA:
@ -1756,8 +1760,10 @@ int8 CRunningScript::ProcessCommands700To799(int32 command)
UpdateCompareFlag(pPed->bIsShooting && pPed->IsWithinArea(x1, y1, x2, y2));
if (GET_INTEGER_PARAM(5))
CTheScripts::HighlightImportantArea((uintptr)this + m_nIp, x1, y1, x2, y2, MAP_Z_LOW_LIMIT);
/*
if (CTheScripts::DbgFlag)
CTheScripts::DrawDebugSquare(x1, y1, x2, y2);
*/
return 0;
}
case COMMAND_IS_CURRENT_PLAYER_WEAPON:

View File

@ -40,6 +40,8 @@
#include "Zones.h"
#include "Bike.h"
// LCS: file done except TODOs
#ifdef FIX_BUGS
static bool IsSlideObjectUsedWrongByScript(const CVector& posTarget, const CVector& slideBy)
{
@ -1752,7 +1754,7 @@ int8 CRunningScript::ProcessCommands900To999(int32 command)
*/
case COMMAND_DISPLAY_ONSCREEN_TIMER_WITH_STRING:
{
uint16 var = GetPointerToScriptVariable(&m_nIp, VAR_GLOBAL) - (int32*)CTheScripts::ScriptSpace;
uint16 var = (uint8*)GetPointerToScriptVariable(&m_nIp, VAR_GLOBAL) - CTheScripts::ScriptSpace;
CollectParameters(&m_nIp, 1);
wchar* text = TheText.Get((char*)&CTheScripts::ScriptSpace[m_nIp]); // ???
strncpy(onscreen_str, (char*)&CTheScripts::ScriptSpace[m_nIp], KEY_LENGTH_IN_SCRIPT);
@ -1762,7 +1764,7 @@ int8 CRunningScript::ProcessCommands900To999(int32 command)
}
case COMMAND_DISPLAY_ONSCREEN_COUNTER_WITH_STRING:
{
uint16 var = GetPointerToScriptVariable(&m_nIp, VAR_GLOBAL) - (int32*)CTheScripts::ScriptSpace;
uint16 var = (uint8*)GetPointerToScriptVariable(&m_nIp, VAR_GLOBAL) - CTheScripts::ScriptSpace;
CollectParameters(&m_nIp, 1);
wchar* text = TheText.Get((char*)&CTheScripts::ScriptSpace[m_nIp]); // ???
strncpy(onscreen_str, (char*)&CTheScripts::ScriptSpace[m_nIp], KEY_LENGTH_IN_SCRIPT);

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

773
src/control/Script9.cpp Normal file
View File

@ -0,0 +1,773 @@
#include "common.h"
#include "Script.h"
#include "ScriptCommands.h"
#include "Bridge.h"
#include "CarCtrl.h"
#include "Camera.h"
#include "CutsceneMgr.h"
#include "Garages.h"
#include "GameLogic.h"
#include "Hud.h"
#include "Messages.h"
#include "Object.h"
#include "Pad.h"
#include "Ped.h"
#include "Pools.h"
#include "Remote.h"
#include "SpecialFX.h"
#include "Stats.h"
#include "Vehicle.h"
#include "World.h"
// LCS: file done except TODOs (also check commented out strings)
int8 CRunningScript::ProcessCommands1500To1599(int32 command)
{
switch (command) {
case COMMAND_DISABLE_FERRY_PATH:
{
CollectParameters(&m_nIp, 1);
// CFerry:DissableFerryPath(GET_INTEGER_PARAM(0)); TODO
return 0;
}
case COMMAND_ENABLE_FERRY_PATH:
{
CollectParameters(&m_nIp, 1);
// 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));
int id = -1;
// if (pFerry && pFerry->IsDocked()
// id = pFerry->GetId();
SET_INTEGER_PARAM(0, id);
StoreParameters(&m_nIp, 1);
return 0;
}
case COMMAND_OPEN_FERRY_DOOR:
{
CollectParameters(&m_nIp, 1);
// 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();
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());
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());
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();
return 0;
}
case COMMAND_SET_CHAR_DROPS_WEAPONS_ON_DEATH:
{
CollectParameters(&m_nIp, 2);
CPed* pPed = CPools::GetPedPool()->GetAt(GET_INTEGER_PARAM(0));
script_assert(pPed);
pPed->bDropsWeaponsOnDeath = (GET_INTEGER_PARAM(1) != 0);
return 0;
}
case COMMAND_IS_CHAR_CROUCHING:
{
CollectParameters(&m_nIp, 1);
CPed* pPed = CPools::GetPedPool()->GetAt(GET_INTEGER_PARAM(0));
script_assert(pPed);
UpdateCompareFlag(pPed->bIsDucking);
return 0;
}
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
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);
StoreParameters(&m_nIp, 1);
return 0;
}
case COMMAND_SET_FERRIES_ENABLED:
{
CollectParameters(&m_nIp, 1);
// CFerry::SetFerriesEnabled(GET_INTEGER_PARAM(0));
return 0;
}
case COMMAND_COMPLETE_FERRY_DOOR_MOVEMENT:
{
CollectParameters(&m_nIp, 1);
// CFerry::CompleteDorrMovement(GET_INTEGER_PARAM(0));
return 0;
}
case COMMAND_OVERRIDE_CAR_REMOTE_CONTROL:
{
CollectParameters(&m_nIp, 2);
CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(GET_INTEGER_PARAM(0));
script_assert(pVehicle);
pVehicle->SetStatus(STATUS_PLAYER_REMOTE);
CVehicle::bDisableRemoteDetonation = true;
CWorld::Players[CWorld::PlayerInFocus].m_pRemoteVehicle = pVehicle;
pVehicle->RegisterReference((CEntity**)&CWorld::Players[CWorld::PlayerInFocus].m_pRemoteVehicle);
if (pVehicle->GetVehicleAppearance() == VEHICLE_APPEARANCE_HELI || pVehicle->GetVehicleAppearance() == VEHICLE_APPEARANCE_PLANE) {
TheCamera.TakeControl(pVehicle, CCam::MODE_CAM_ON_A_STRING, GET_INTEGER_PARAM(1) ? INTERPOLATION : JUMP_CUT, CAMCONTROL_SCRIPT);
TheCamera.SetZoomValueCamStringScript(0);
}
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;
}
if (m_bIsMissionScript)
CTheScripts::MissionCleanUp.RemoveEntityFromList(GET_INTEGER_PARAM(0), CLEANUP_CAR);
if (FindPlayerVehicle())
FindPlayerVehicle()->bCanBeDamaged = false;
return 0;
}
case COMMAND_CANCEL_REMOTE_MODE:
{
if (FindPlayerVehicle())
FindPlayerVehicle()->bCanBeDamaged = true;
CRemote::TakeRemoteControlledCarFromPlayer(false);
CWorld::Players[CWorld::PlayerInFocus].field_D6 = false;
CWorld::Players[CWorld::PlayerInFocus].m_pRemoteVehicle = nil;
TheCamera.Restore();
return 0;
}
case COMMAND_REGISTER_CAR_SOLD:
// CStats::CarsSold++;
return 0;
case COMMAND_ADD_MONEY_MADE_WITH_CAR_SALES:
CollectParameters(&m_nIp, 1);
// CStats::MoneyMadeWithCarSales += GET_INTEGER_PARAM(0);
return 0;
case COMMAND_SET_BRIDGE_STATE:
{
CollectParameters(&m_nIp, 1);
#ifdef GTA_BRIDGE
/*
* 0 = locked
* 1 = unlocked
* 2 = operational
*/
switch (GET_INTEGER_PARAM(0)) {
case 0: CBridge::ForceBridgeState(STATE_BRIDGE_LOCKED); break;
case 1: CBridge::ForceBridgeState(STATE_BRIDGE_ALWAYS_UNLOCKED); break;
case 2:
if (CBridge::State == STATE_LIFT_PART_IS_DOWN || CBridge::State == STATE_BRIDGE_ALWAYS_UNLOCKED)
CBridge::ForceBridgeState(STATE_LIFT_PART_ABOUT_TO_MOVE_UP);
else
CBridge::ForceBridgeState(STATE_LIFT_PART_MOVING_DOWN);
break;
default: script_assert(false);
}
#endif
return 0;
}
case COMMAND_SET_OBJECT_TURN_SPEED:
{
CollectParameters(&m_nIp, 4);
CObject* pObject = CPools::GetObjectPool()->GetAt(GET_INTEGER_PARAM(0));
script_assert(pObject);
CVector vSpeed = GET_VECTOR_PARAM(1) / GAME_SPEED_TO_METERS_PER_SECOND;
pObject->SetTurnSpeed(vSpeed.x, vSpeed.y, vSpeed.z);
return 0;
}
case COMMAND_SET_OBJECT_MASS:
{
CollectParameters(&m_nIp, 4);
CObject* pObject = CPools::GetObjectPool()->GetAt(GET_INTEGER_PARAM(0));
script_assert(pObject);
pObject->m_fMass = GET_FLOAT_PARAM(1);
pObject->m_fTurnMass = GET_FLOAT_PARAM(2);
pObject->m_fAirResistance = GET_FLOAT_PARAM(3);
if (pObject->m_fMass < 99998.0f) {
pObject->bInfiniteMass = false;
pObject->m_phy_flagA08 = false;
pObject->bAffectedByGravity = true;
}
else {
pObject->bInfiniteMass = true;
pObject->m_phy_flagA08 = true;
pObject->bAffectedByGravity = false;
}
return 0;
}
case COMMAND_HAS_CUTSCENE_LOADED:
UpdateCompareFlag(CCutsceneMgr::ms_cutsceneLoadStatus == CUTSCENE_LOADED);
return 0;
case COMMAND_SET_UNIQUE_JUMPS_FOUND:
CollectParameters(&m_nIp, 1);
CStats::NumberOfUniqueJumpsFound = GET_INTEGER_PARAM(0);
return 0;
case COMMAND_SET_HIDDEN_PACKAGES_COLLECTED:
CollectParameters(&m_nIp, 1);
CWorld::Players[CWorld::PlayerInFocus].m_nCollectedPackages = GET_INTEGER_PARAM(0);
return 0;
case COMMAND_REGISTER_BIKE_SOLD:
// CStats::BikesSold++;
return 0;
case COMMAND_ADD_MONEY_MADE_WITH_BIKE_SALES:
CollectParameters(&m_nIp, 1);
// CStats::MoneyMadeWithBikeSales += GET_INTEGER_PARAM(0);
return 0;
case COMMAND_REGISTER_PACKAGE_SMUGGLED:
// CStats::PackagesSmuggled++;
return 0;
case COMMAND_REGISTER_SMUGGLER_WASTED:
// CStats::SmugglersWasted++;
return 0;
case COMMAND_REGISTER_FASTEST_SMUGGLING_TIME:
CollectParameters(&m_nIp, 1);
// CStats::RegisterFastestSmugglingTime(GET_INTEGER_PARAM(0));
return 0;
case COMMAND_SET_CHAR_DIVE_FROM_CAR:
{
CollectParameters(&m_nIp, 2);
CPed* pPed = CPools::GetPedPool()->GetAt(GET_INTEGER_PARAM(0));
CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(GET_INTEGER_PARAM(1));
script_assert(pPed);
pPed->bRespondsToThreats = true;
pPed->SetEvasiveDive(pVehicle, 1);
return 0;
}
case COMMAND_WRECK_CAR:
{
CollectParameters(&m_nIp, 1);
CAutomobile* pVehicle = (CAutomobile*)CPools::GetVehiclePool()->GetAt(GET_INTEGER_PARAM(0));
script_assert(pVehicle);
script_assert(pVehicle->IsCar());
pVehicle->m_fHealth = 0.0f;
pVehicle->SetStatus(STATUS_WRECKED);
pVehicle->bRenderScorched = true;
pVehicle->Damage.FuckCarCompletely();
if (pVehicle->GetModelIndex() != MI_RCBANDIT) {
pVehicle->SetBumperDamage(CAR_BUMP_FRONT, VEHBUMPER_FRONT);
pVehicle->SetBumperDamage(CAR_BUMP_REAR, VEHBUMPER_REAR);
pVehicle->SetDoorDamage(CAR_BONNET, DOOR_BONNET);
pVehicle->SetDoorDamage(CAR_BOOT, DOOR_BOOT);
pVehicle->SetDoorDamage(CAR_DOOR_LF, DOOR_FRONT_LEFT);
pVehicle->SetDoorDamage(CAR_DOOR_RF, DOOR_FRONT_RIGHT);
pVehicle->SetDoorDamage(CAR_DOOR_LR, DOOR_REAR_LEFT);
pVehicle->SetDoorDamage(CAR_DOOR_RR, DOOR_REAR_RIGHT);
}
pVehicle->m_bombType = CARBOMB_NONE;
pVehicle->bEngineOn = false;
pVehicle->bLightsOn = false;
pVehicle->m_fHealth = 0.0f;
pVehicle->m_nBombTimer = 0;
pVehicle->m_bSirenOrAlarm = false;
return 0;
}
case COMMAND_ADD_MONEY_MADE_IN_COACH:
CollectParameters(&m_nIp, 1);
// CStats::MoneyMadeInCoach += GET_INTEGER_PARAM(0);
return 0;
case COMMAND_ADD_MONEY_MADE_COLLECTING_TRASH:
CollectParameters(&m_nIp, 1);
// CStats::MoneyMadeCollectingTrash += GET_INTEGER_PARAM(0);
return 0;
case COMMAND_REGISTER_HITMAN_KILLED:
// CStats::HitmenKilled++;
return 0;
case COMMAND_REGISTER_GUARDIAN_ANGEL_MISSION_PASSED:
// CStats::GaurdianAngelMissionsPassed++;
return 0;
case COMMAND_REGISTER_HIGHEST_GUARDIAN_ANGEL_JUSTICE_DISHED:
CollectParameters(&m_nIp, 1);
// CStats::RegisterHighestGaurdianAngelJusticeDished(GET_INTEGER_PARAM(0));
return 0;
case COMMAND_REGISTER_BEST_BANDIT_LAP_TIME:
CollectParameters(&m_nIp, 2);
// CStats::RegisterBestBanditLapTime(GET_INTEGER_PARAM(0), GET_INTEGER_PARAM(1));
return 0;
case COMMAND_REGISTER_BEST_BANDIT_POSITION:
CollectParameters(&m_nIp, 2);
// CStats::RegisterBestBanditPosition(GET_INTEGER_PARAM(0), GET_INTEGER_PARAM(1));
return 0;
case COMMAND_REGISTER_MOST_TIME_LEFT_TRAIN_RACE:
CollectParameters(&m_nIp, 1);
// CStats::RegisterMostTimeLeftTrainRace(GET_INTEGER_PARAM(0));
return 0;
case COMMAND_REGISTER_HIGHEST_TRAIN_CASH_EARNED:
CollectParameters(&m_nIp, 1);
// CStats::RegisterHighestTrainCashEarned(GET_INTEGER_PARAM(0));
return 0;
case COMMAND_REGISTER_FASTEST_HELI_RACE_TIME:
// CStats::RegisterFastestHeliRaceTime(GET_INTEGER_PARAM(0));
CollectParameters(&m_nIp, 1);
return 0;
case COMMAND_REGISTER_BEST_HELI_RACE_POSITION:
// CStats::RegisterBestHeliRacePosition(GET_INTEGER_PARAM(0));
CollectParameters(&m_nIp, 1);
return 0;
case COMMAND_REGISTER_OUTFIT_CHANGE:
// CStats::NumberOutfitChanges++;
return 0;
case COMMAND_REGISTER_STREET_RACE_FASTEST_TIME:
// CStats::RegisterStreetRaceFastestTime(GET_INTEGER_PARAM(0), GET_INTEGER_PARAM(1));
CollectParameters(&m_nIp, 2);
return 0;
case COMMAND_REGISTER_STREET_RACE_FASTEST_LAP:
CollectParameters(&m_nIp, 2);
// CStats::RegisterStreetRaceFastestLap(GET_INTEGER_PARAM(0), GET_INTEGER_PARAM(1));
return 0;
case COMMAND_REGISTER_STREET_RACE_BEST_POSITION:
CollectParameters(&m_nIp, 2);
// CStats::RegisterStreetRaceBestPosition(GET_INTEGER_PARAM(0), GET_INTEGER_PARAM(1));
return 0;
case COMMAND_HAS_OBJECT_BEEN_DAMAGED_BY_WEAPON:
{
CObject* pObject = CPools::GetObjectPool()->GetAt(GET_INTEGER_PARAM(0));
bool result = false;
if (!pObject) {
printf("HAS_OBJECT_BEEN_DAMAGED_BY_WEAPON - Object doesn\'t exist\n");
}
else {
if (GET_INTEGER_PARAM(1) == WEAPONTYPE_ANYMELEE || GET_INTEGER_PARAM(1) == WEAPONTYPE_ANYWEAPON)
result = CheckDamagedWeaponType(pObject->m_nLastWeaponToDamage, GET_INTEGER_PARAM(1));
else
result = GET_INTEGER_PARAM(1) == pObject->m_nLastWeaponToDamage;
}
UpdateCompareFlag(result);
return 0;
}
case COMMAND_CLEAR_OBJECT_LAST_WEAPON_DAMAGE:
{
CObject* pObject = CPools::GetObjectPool()->GetAt(GET_INTEGER_PARAM(0));
if (!pObject)
printf("CLEAR_OBJECT_LAST_WEAPON_DAMAGE - pObject doesn\'t exist");
else
pObject->m_nLastWeaponToDamage = -1;
return 0;
}
case COMMAND_SET_CAR_TURN_SPEED:
{
CollectParameters(&m_nIp, 4);
CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(GET_INTEGER_PARAM(0));
script_assert(pVehicle);
CVector vSpeed = GET_VECTOR_PARAM(1) / GAME_SPEED_TO_METERS_PER_SECOND;
pVehicle->SetTurnSpeed(vSpeed.x, vSpeed.y, vSpeed.z);
return 0;
}
case COMMAND_SET_CAR_MOVE_SPEED:
{
CollectParameters(&m_nIp, 4);
CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(GET_INTEGER_PARAM(0));
script_assert(pVehicle);
CVector vSpeed = GET_VECTOR_PARAM(1) / GAME_SPEED_TO_METERS_PER_SECOND;
pVehicle->SetMoveSpeed(vSpeed);
return 0;
}
case COMMAND_SET_OBJECT_PROOFS:
{
CollectParameters(&m_nIp, 6);
CObject* pObject = CPools::GetObjectPool()->GetAt(GET_INTEGER_PARAM(0));
script_assert(pObject);
pObject->bBulletProof = (GET_INTEGER_PARAM(1) != 0);
pObject->bFireProof = (GET_INTEGER_PARAM(2) != 0);
pObject->bExplosionProof = (GET_INTEGER_PARAM(3) != 0);
pObject->bCollisionProof = (GET_INTEGER_PARAM(4) != 0);
pObject->bMeleeProof = (GET_INTEGER_PARAM(5) != 0);
return 0;
}
case COMMAND_GET_CAMERA_PED_ZOOM_INDICATOR:
if (TheCamera.Cams[TheCamera.ActiveCam].Mode == CCam::MODE_FOLLOWPED)
SET_INTEGER_PARAM(0, TheCamera.PedZoomIndicator);
else
SET_INTEGER_PARAM(0, -1);
StoreParameters(&m_nIp, 1);
return 0;
case COMMAND_SET_CAMERA_PED_ZOOM_INDICATOR:
CollectParameters(&m_nIp, 1);
if (TheCamera.Cams[TheCamera.ActiveCam].Mode == CCam::MODE_FOLLOWPED)
TheCamera.PedZoomIndicator = GET_INTEGER_PARAM(0);
return 0;
case COMMAND_GET_CAR_ORIENTATION:
{
CollectParameters(&m_nIp, 1);
CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(GET_INTEGER_PARAM(0));
script_assert(pVehicle);
SET_FLOAT_PARAM(1, LimitAngleOnCircle(RADTODEG(Asin(pVehicle->GetForward().z))));
SET_FLOAT_PARAM(2, LimitAngleOnCircle(RADTODEG(CGeneral::GetATanOfXY(pVehicle->GetForward().x, pVehicle->GetForward().y))));
SET_FLOAT_PARAM(0, LimitAngleOnCircle(RADTODEG(CGeneral::GetATanOfXY(pVehicle->GetUp().z, pVehicle->GetRight().z))));
StoreParameters(&m_nIp, 3);
return 0;
}
case COMMAND_SET_CAR_ORIENTATION:
{
CollectParameters(&m_nIp, 4);
CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(GET_INTEGER_PARAM(0));
script_assert(pVehicle);
pVehicle->SetOrientation(DEGTORAD(GET_FLOAT_PARAM(2)), DEGTORAD(GET_FLOAT_PARAM(1)), DEGTORAD(GET_FLOAT_PARAM(3)));
return 0;
}
case COMMAND_IS_DEBUG_MENU_ON:
// on PS2 it's something actual - TODO
UpdateCompareFlag(false);
return 0;
case COMMAND_OPEN_VAN_BACK_DOORS:
{
CollectParameters(&m_nIp, 1);
CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(GET_INTEGER_PARAM(0));
assert(pVehicle);
pVehicle->ProcessOpenDoor(CAR_DOOR_RR, ANIM_VAN_OPEN, 1.0f);
pVehicle->ProcessOpenDoor(CAR_DOOR_LR, ANIM_VAN_OPEN_L, 1.0f);
return 0;
}
case COMMAND_GET_CHAR_THREAT_CHAR:
{
CollectParameters(&m_nIp, 1);
CPed* pPed = CPools::GetPedPool()->GetAt(GET_INTEGER_PARAM(0));
script_assert(pPed);
SET_INTEGER_PARAM(0, 0);
CEntity* pThreat = pPed->m_threatEntity;
if (pThreat && pThreat->IsPed())
SET_INTEGER_PARAM(0, CPools::GetPedPool()->GetIndex((CPed*)pThreat));
StoreParameters(&m_nIp, 1);
return 0;
}
case COMMAND_FREEZE_PED_ZOOM_SWITCH:
CollectParameters(&m_nIp, 1);
TheCamera.m_bFreezePedZoomSwitch = GET_INTEGER_PARAM(0);
return 0;
case COMMAND_SET_OBJECT_RENDERED_DAMAGED:
{
CollectParameters(&m_nIp, 1);
CObject* pObject = CPools::GetObjectPool()->GetAt(GET_INTEGER_PARAM(0));
script_assert(pObject);
pObject->bRenderDamaged = true;
return 0;
}
case COMMAND_GET_RANDOM_CAR_IN_AREA_NO_SAVE:
{
CollectParameters(&m_nIp, 5);
int handle = -1;
uint32 i = CPools::GetVehiclePool()->GetSize();
float infX = GET_FLOAT_PARAM(0);
float infY = GET_FLOAT_PARAM(1);
float supX = GET_FLOAT_PARAM(2);
float supY = GET_FLOAT_PARAM(3);
while (i-- && handle == -1) {
CVehicle* pVehicle = CPools::GetVehiclePool()->GetSlot(i);
if (!pVehicle)
continue;
if (pVehicle->GetVehicleAppearance() != VEHICLE_APPEARANCE_CAR && pVehicle->GetVehicleAppearance() != VEHICLE_APPEARANCE_BIKE)
continue;
#ifdef FIX_BUGS
if (pVehicle->m_fHealth <= 0.0f)
#else
if (pVehicle->m_fHealth == 0.0f)
#endif
continue;
if (pVehicle->GetModelIndex() != GET_INTEGER_PARAM(4) && GET_INTEGER_PARAM(4) >= 0)
continue;
if (pVehicle->VehicleCreatedBy != RANDOM_VEHICLE)
continue;
if (!pVehicle->IsWithinArea(infX, infY, supX, supY))
continue;
handle = CPools::GetVehiclePool()->GetIndex(pVehicle);
}
SET_INTEGER_PARAM(0, handle);
StoreParameters(&m_nIp, 1);
return 0;
}
case COMMAND_IS_PLAYER_MADE_SAFE:
{
UpdateCompareFlag(CPad::GetPad(0)->IsPlayerControlsDisabledBy(PLAYERCONTROL_PLAYERINFO));
return 0;
}
case COMMAND_PRINT_IF_FREE:
{
wchar* text = CTheScripts::GetTextByKeyFromScript(&m_nIp);
CollectParameters(&m_nIp, 2);
//CMessages::AddMessageIfFree(text, GET_INTEGER_PARAM(0), GET_INTEGER_PARAM(1)); TODO
return 0;
}
case COMMAND_IS_E3_BUILD:
UpdateCompareFlag(false);
return 0;
case COMMAND_DECLARE_FORT_STAUNTON_DESTROYED_FLAG:
CTheScripts::FSDestroyedFlag = (uint8*)GetPointerToScriptVariable(&m_nIp, VAR_GLOBAL) - CTheScripts::ScriptSpace;
return 0;
case COMMAND_CLEAR_BIG_MESSAGES:
//CMessages::ClearBigMessagesOnly(); TODO
//CHud::ClearBigMessagesExcept(2, 2); TODO
CGarages::MessageEndTime = CGarages::MessageStartTime;
return 0;
case COMMAND_CLEAR_AREA_OF_OBJECTS:
{
CollectParameters(&m_nIp, 6);
uint32 i = CPools::GetObjectPool()->GetSize();
float infX = GET_FLOAT_PARAM(0);
float infY = GET_FLOAT_PARAM(1);
float infZ = GET_FLOAT_PARAM(2);
float supX = GET_FLOAT_PARAM(3);
float supY = GET_FLOAT_PARAM(4);
float supZ = GET_FLOAT_PARAM(5);
while (i--) {
CObject* pObject = CPools::GetObjectPool()->GetSlot(i);
if (pObject && pObject->CanBeDeleted() && pObject->IsWithinArea(infX, infY, infZ, supX, supY, supZ)) {
pObject->DeleteRwObject();
CWorld::Remove(pObject);
delete pObject;
}
}
i = CPools::GetDummyPool()->GetSize();
while (i--) {
CDummy* pDummy = CPools::GetDummyPool()->GetSlot(i);
if (pDummy && pDummy->IsObject() && pDummy->IsWithinArea(infX, infY, infZ, supX, supY, supZ)) {
pDummy->DeleteRwObject();
CWorld::Remove(pDummy);
delete pDummy;
}
}
return 0;
}
case COMMAND_LOAD_NON_STANDARD_PED_ANIM:
CollectParameters(&m_nIp, 1);
// CPed::LoadNonStandardPedAnim(GET_INTEGER_PARAM(0));
return 0;
case COMMAND_UNLOAD_NON_STANDARD_PED_ANIM:
CollectParameters(&m_nIp, 1);
// CPed::UnloadNonStandardPedAnim(SET_INTEGER_PARAM(0));
return 0;
case COMMAND_1566:
CollectParameters(&m_nIp, 1);
return 0;
case COMMAND_BUILD_WORLD_GEOMETRY:
CollectParameters(&m_nIp, 1);
if (/*gBuildWorldGeom*/ false) {
//base::cWorldGeom::GetInstance()->Build(GET_INTEGER_PARAM(0));
UpdateCompareFlag(true);
}
else {
UpdateCompareFlag(false);
}
return 0;
case COMMAND_STORE_BUILDING_SWAP:
CollectParameters(&m_nIp, 4);
// base::cWorldGeom::GetInstance()->StoreBuildingSwap(GET_INTEGER_PARAM(0), GET_INTEGER_PARAM(1), GET_INTEGER_PARAM(2), GET_INTEGER_PARAM(3) != 0);
return 0;
case COMMAND_IS_MULTIPLAYER_ACTIVE:
UpdateCompareFlag(false); // TODO?
return 0;
case COMMAND_GET_MULTIPLAYER_MODE:
SET_INTEGER_PARAM(0, 0); // TODO
StoreParameters(&m_nIp, 1);
return 0;
case COMMAND_MULTIPLAYER_SCRIPT_DONE:
//gbStartingScriptsFromLua = false; TODO?
return 0;
case COMMAND_IS_MULTIPLAYER_SERVER:
UpdateCompareFlag(false); // TODO?
return 0;
case COMMAND_IS_MULTIPLAYER_TEAM_GAME:
UpdateCompareFlag(false); // TODO?
return 0;
case COMMAND_GET_MULTIPLAYER_TEAM_ID:
SET_INTEGER_PARAM(0, 0); // TODO
StoreParameters(&m_nIp, 1);
return 0;
case COMMAND_DOES_SHORTCUT_TAXI_EXIST:
UpdateCompareFlag(CGameLogic::pShortCutTaxi != nil);
return 0;
case COMMAND_SET_ONSCREEN_TIMER_COLOUR:
CollectParameters(&m_nIp, 4);
// gbColour = CRGBA(GET_INTEGER_PARAM(0), GET_INTEGER_PARAM(1), GET_INTEGER_PARAM(2), GET_INTEGER_PARAM(3));
return 0;
case COMMAND_SET_ONSCREEN_TIMER_BACKGROUND_COLOUR:
CollectParameters(&m_nIp, 4);
// gbColour2 = CRGBA(GET_INTEGER_PARAM(0), GET_INTEGER_PARAM(1), GET_INTEGER_PARAM(2), GET_INTEGER_PARAM(3));
return 0;
case COMMAND_REMOVE_CAR_BOOT:
{
CollectParameters(&m_nIp, 1);
CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(GET_INTEGER_PARAM(0));
script_assert(pVehicle);
script_assert(pVehicle->IsCar());
CAutomobile* pAutomobile = (CAutomobile*)pVehicle;
pAutomobile->Damage.SetDoorStatus(DOOR_BOOT, DOOR_STATUS_MISSING);
pAutomobile->SetDoorDamage(CAR_BOOT, DOOR_BOOT, true);
return 0;
}
case COMMAND_ADD_POINT_3D_MARKER:
{
uint32 ip = m_nIp;
uint32 id = (uint32)(uintptr)GetPointerToScriptVariable(&m_nIp, 0);
static CVector vPreviousLocation;
CollectParameters(&m_nIp, 7);
CVector pos = GET_VECTOR_PARAM(0);
if (pos.z <= MAP_Z_LOW_LIMIT)
pos.z = CWorld::FindGroundZForCoord(pos.x, pos.y);
if (vPreviousLocation != pos) {
//C3dMarkers::CopyMarker(id, id - 1, 1, 1);
}
// TODO: 5 is not a valid type
//C3dMarkers::PlaceMarker(id, 5, pos, GET_FLOAT_PARAM(3) * 0.7f, GET_INTEGER_PARAM(4), GET_INTEGER_PARAM(5), GET_INTEGER_PARAM(6), 255, 128, 0.0f, 1); // TODO: 0, 100.0f, 1, 0
vPreviousLocation = pos;
return 0;
}
case COMMAND_GET_VECTOR_FROM_MULTIPLAYER:
// SET_VECTOR_PARAM(0, gVectorSetInLua);
StoreParameters(&m_nIp, 3);
return 0;
case COMMAND_PRINT_HELP_ALWAYS:
{
// CHud::mAlwaysAllowHelpText = true; // TODO
wchar* text = CTheScripts::GetTextByKeyFromScript(&m_nIp);
CHud::SetHelpMessage(text, false); // + false, true
return 0;
}
case COMMAND_PRINT_HELP_FOREVER_ALWAYS:
{
// CHud::mAlwaysAllowHelpText = true; // TODO
wchar* text = CTheScripts::GetTextByKeyFromScript(&m_nIp);
CHud::SetHelpMessage(text, false, true); // + true
return 0;
}
case COMMAND_SWITCH_FERRY_COLLISION:
CollectParameters(&m_nIp, 1);
// CFerry::SwitchFerryCollision(GET_INTEGER_PARAM(0));
return 0;
case COMMAND_SET_CHAR_MAX_HEALTH:
{
CollectParameters(&m_nIp, 2);
CPed* pPed = CPools::GetPedPool()->GetAt(GET_INTEGER_PARAM(0));
script_assert(pPed);
pPed->m_fHealth = GET_INTEGER_PARAM(1);
pPed->m_fMaxHealth = GET_INTEGER_PARAM(1);
return 0;
}
case COMMAND_SET_CHAR_SHOOT_TIMER:
{
CollectParameters(&m_nIp, 2);
CPed* pPed = CPools::GetPedPool()->GetAt(GET_INTEGER_PARAM(0));
script_assert(pPed);
pPed->m_nScriptShootTimer = GET_INTEGER_PARAM(1);
return 0;
}
case COMMAND_SET_CHAR_ATTACK_TIMER:
{
CollectParameters(&m_nIp, 2);
CPed* pPed = CPools::GetPedPool()->GetAt(GET_INTEGER_PARAM(0));
script_assert(pPed);
pPed->m_nScriptAttackTimer = GET_INTEGER_PARAM(1);
return 0;
}
case COMMAND_SET_HELI_ROTOR_BLADES_FULLSPEED:
{
CollectParameters(&m_nIp, 1);
CAutomobile* pHeli = (CAutomobile*)CPools::GetVehiclePool()->GetAt(GET_INTEGER_PARAM(0));
script_assert(pHeli);
if (pHeli->GetVehicleAppearance() == VEHICLE_APPEARANCE_HELI)
pHeli->m_aWheelSpeed[1] = 0.22f;
return 0;
}
case COMMAND_SET_CRUSHER_REWARD_MULTIPLIER:
{
CollectParameters(&m_nIp, 1);
// CGarages::CrusherRewardMultiplier = GET_INTEGER_PARAM(0);
return 0;
}
case COMMAND_SWAP_BUILDINGS:
{
CollectParameters(&m_nIp, 2);
// base::cWorldStream::Instance()->SwapBuilding(GET_INTEGER_PARAM(0), GET_INTEGER_PARAM(1));
return 0;
}
case COMMAND_STREAM_BUILDING_SWAPS:
{
// UpdateCompareFlag(base::cWorldStream::Instance()->StreamBuildingSwaps());
UpdateCompareFlag(true);
return 0;
}
case COMMAND_IS_WORLD_STREAMING_COMPLETE:
{
// UpdateCompareFlag(base::cWorldStream::Instance()->IsStreamingComplet());
UpdateCompareFlag(true);
return 0;
}
case COMMAND_SWAP_TO_STREAMED_SECTOR:
{
// base::cWorldStream::Instance()->SwapToStreamedSector();
return 0;
}
case COMMAND_SET_CHAR_ATTACKS_PLAYER_WITH_COPS:
{
CollectParameters(&m_nIp, 1);
CPed* pPed = CPools::GetPedPool()->GetAt(GET_INTEGER_PARAM(0));
script_assert(pPed);
pPed->bAttacksPlayerWithCops = (GET_INTEGER_PARAM(0) != 0);
return 0;
}
case COMMAND_REGISTER_FACE_PLANT_DISTANCE:
CollectParameters(&m_nIp, 1);
//CStats::LongestFacePlantDist = Max(CStats::LongestFacePlantDist, GET_FLOAT_PARAM(0));
return 0;
case COMMAND_REGISTER_MAX_SECONDS_ON_CARNAGE_LEFT:
CollectParameters(&m_nIp, 1);
//CStats::MaxSecondsOnCarnageLeft = Max(CStats::MaxSecondsOnCarnageLeft, GET_INTEGER_PARAM(0));
return 0;
case COMMAND_REGISTER_MAX_KILLS_ON_RC_TRIAD:
CollectParameters(&m_nIp, 1);
//CStats::MaxKillsOnRcTriad = Max(CStats::MaxKillsOnRcTriad, GET_INTEGER_PARAM(0));
return 0;
case COMMAND_REGISTER_HIGHEST_LEVEL_SLASH_TV:
CollectParameters(&m_nIp, 1);
//CStats::HighestLevelSlashTv = Max(CStats::HighestLevelSlashTv, GET_INTEGER_PARAM(0));
return 0;
case COMMAND_ADD_MONEY_MADE_WITH_SLASH_TV:
CollectParameters(&m_nIp, 1);
//CStats::MoneyMadeWithSlashTv += GET_INTEGER_PARAM(0);
return 0;
case COMMAND_ADD_TOTAL_KILLS_ON_SLASH_TV:
CollectParameters(&m_nIp, 1);
//CStats::TotalKillsOnSlashTV += GET_INTEGER_PARAM(0);
return 0;
default:
script_assert(0);
}
return -1;
}

View File

@ -1445,22 +1445,22 @@ enum {
COMMAND_IS_JAPANESE_GAME,
COMMAND_1442,
COMMAND_1443,
COMMAND_1444,
COMMAND_1445,
COMMAND_1446,
COMMAND_1447,
COMMAND_1448,
COMMAND_1449,
COMMAND_1450,
COMMAND_1451,
COMMAND_1452,
COMMAND_1453,
COMMAND_GET_DISTANCE_BETWEEN_2D_POINTS,
COMMAND_GET_DISTANCE_BETWEEN_3D_POINTS,
COMMAND_DOT_PRODUCT_2D,
COMMAND_DOT_PRODUCT_3D,
COMMAND_DEBUG_PRINT_WITH_1_FLOAT,
COMMAND_DEBUG_PRINT_WITH_2_FLOATS,
COMMAND_DEBUG_PRINT_WITH_3_FLOATS,
COMMAND_GET_PAD_BUTTON_STATE,
COMMAND_SET_NAVIGATION_ARROW,
COMMAND_CLEAR_NAVIGATION_ARROW,
COMMAND_CALL,
COMMAND_NOTCALL,
COMMAND_1456,
COMMAND_1457,
COMMAND_1458,
COMMAND_1459,
COMMAND_CALLNOT,
COMMAND_IS_CAR_AUTOMOBILE,
COMMAND_IS_CAR_BIKE,
COMMAND_IS_CAR_PLANE,
COMMAND_IS_CAR_HELI,
COMMAND_1460,
COMMAND_1461,
COMMAND_1462,
@ -1478,186 +1478,186 @@ enum {
COMMAND_1474,
COMMAND_1475,
COMMAND_1476,
COMMAND_1477,
COMMAND_1478,
COMMAND_1479,
COMMAND_1480,
COMMAND_1481,
COMMAND_1482,
COMMAND_1483,
COMMAND_1484,
COMMAND_1485,
COMMAND_1486,
COMMAND_1487,
COMMAND_1488,
COMMAND_RETURN_IF_TRUE,
COMMAND_RETURN_TRUE_IF_TRUE,
COMMAND_SET_CHAR_ONLY_ALLOWED_TO_SIT_BEHIND,
COMMAND_SET_RC_HELI_HEIGHT_LIMIT,
COMMAND_CREATE_SCRIPT_CORONA,
COMMAND_REMOVE_SCRIPT_CORONA,
COMMAND_IS_BOAT_IN_WATER,
COMMAND_IS_CAR_DRIVER_BEING_JACKED,
COMMAND_SET_CHAR_ONLY_ALLOWED_TO_SIT_IN_FRONT,
COMMAND_SET_CAR_TILTED_BY_CHAR,
COMMAND_GET_WEAPON_TYPE_FOR_PICKUP_IN_AREA,
COMMAND_IS_PLAYER_USING_FIRST_PERSON_WEAPON_CAMERA,
COMMAND_1489,
COMMAND_1490,
COMMAND_1491,
COMMAND_1492,
COMMAND_1493,
COMMAND_1494,
COMMAND_1495,
COMMAND_1496,
COMMAND_1497,
COMMAND_1498,
COMMAND_1499,
COMMAND_1500,
COMMAND_1501,
COMMAND_1502,
COMMAND_1503,
COMMAND_1504,
COMMAND_1505,
COMMAND_1506,
COMMAND_1507,
COMMAND_1508,
COMMAND_1509,
COMMAND_1510,
COMMAND_1511,
COMMAND_1512,
COMMAND_1513,
COMMAND_1514,
COMMAND_1515,
COMMAND_1516,
COMMAND_1517,
COMMAND_1518,
COMMAND_1519,
COMMAND_1520,
COMMAND_1521,
COMMAND_1522,
COMMAND_1523,
COMMAND_1524,
COMMAND_1525,
COMMAND_1526,
COMMAND_1527,
COMMAND_1528,
COMMAND_1529,
COMMAND_1530,
COMMAND_1531,
COMMAND_1532,
COMMAND_1533,
COMMAND_1534,
COMMAND_1535,
COMMAND_1536,
COMMAND_1537,
COMMAND_1538,
COMMAND_1539,
COMMAND_1540,
COMMAND_1541,
COMMAND_1542,
COMMAND_1543,
COMMAND_1544,
COMMAND_1545,
COMMAND_1546,
COMMAND_1547,
COMMAND_1548,
COMMAND_1549,
COMMAND_1550,
COMMAND_1551,
COMMAND_1552,
COMMAND_1553,
COMMAND_1554,
COMMAND_1555,
COMMAND_1556,
COMMAND_1557,
COMMAND_1558,
COMMAND_1559,
COMMAND_1560,
COMMAND_1561,
COMMAND_1562,
COMMAND_1563,
COMMAND_1564,
COMMAND_1565,
COMMAND_SET_DEBUG_MENU_ACTIVE,
COMMAND_SET_DRAW_HUD,
COMMAND_GET_RANDOM_CHAR_IN_AREA_NO_CHECKS,
COMMAND_GET_RANDOM_CAR_IN_AREA_NO_CHECKS_NO_SAVE,
COMMAND_STORE_CAR_COLLIDED_WITH_NO_SAVE,
COMMAND_DISABLE_FERRY_PATH,
COMMAND_ENABLE_FERRY_PATH,
COMMAND_GET_CLOSEST_DOCKED_FERRY,
COMMAND_OPEN_FERRY_DOOR,
COMMAND_CLOSE_FERRY_DOOR,
COMMAND_IS_FERRY_DOOR_OPEN,
COMMAND_IS_FERRY_DOOR_CLOSED,
COMMAND_SKIP_FERRY_TO_NEXT_DOCK,
COMMAND_SET_CHAR_DROPS_WEAPONS_ON_DEATH,
COMMAND_IS_CHAR_CROUCHING,
COMMAND_GET_FERRY_BOARDING_SPACE,
COMMAND_GET_FERRY_HEADING,
COMMAND_SET_FERRIES_ENABLED,
COMMAND_COMPLETE_FERRY_DOOR_MOVEMENT,
COMMAND_OVERRIDE_CAR_REMOTE_CONTROL,
COMMAND_CANCEL_REMOTE_MODE,
COMMAND_REGISTER_CAR_SOLD,
COMMAND_ADD_MONEY_MADE_WITH_CAR_SALES,
COMMAND_SET_BRIDGE_STATE,
COMMAND_SET_OBJECT_TURN_SPEED,
COMMAND_SET_OBJECT_MASS,
COMMAND_HAS_CUTSCENE_LOADED,
COMMAND_SET_UNIQUE_JUMPS_FOUND,
COMMAND_SET_HIDDEN_PACKAGES_COLLECTED,
COMMAND_REGISTER_BIKE_SOLD,
COMMAND_ADD_MONEY_MADE_WITH_BIKE_SALES,
COMMAND_REGISTER_PACKAGE_SMUGGLED,
COMMAND_REGISTER_SMUGGLER_WASTED,
COMMAND_REGISTER_FASTEST_SMUGGLING_TIME,
COMMAND_SET_CHAR_DIVE_FROM_CAR,
COMMAND_WRECK_CAR,
COMMAND_ADD_MONEY_MADE_IN_COACH,
COMMAND_ADD_MONEY_MADE_COLLECTING_TRASH,
COMMAND_REGISTER_HITMAN_KILLED,
COMMAND_REGISTER_GUARDIAN_ANGEL_MISSION_PASSED,
COMMAND_REGISTER_HIGHEST_GUARDIAN_ANGEL_JUSTICE_DISHED,
COMMAND_REGISTER_BEST_BANDIT_LAP_TIME,
COMMAND_REGISTER_BEST_BANDIT_POSITION,
COMMAND_REGISTER_MOST_TIME_LEFT_TRAIN_RACE,
COMMAND_REGISTER_HIGHEST_TRAIN_CASH_EARNED,
COMMAND_REGISTER_FASTEST_HELI_RACE_TIME,
COMMAND_REGISTER_BEST_HELI_RACE_POSITION,
COMMAND_REGISTER_OUTFIT_CHANGE,
COMMAND_REGISTER_STREET_RACE_FASTEST_TIME,
COMMAND_REGISTER_STREET_RACE_FASTEST_LAP,
COMMAND_REGISTER_STREET_RACE_BEST_POSITION,
COMMAND_HAS_OBJECT_BEEN_DAMAGED_BY_WEAPON,
COMMAND_CLEAR_OBJECT_LAST_WEAPON_DAMAGE,
COMMAND_SET_CAR_TURN_SPEED,
COMMAND_SET_CAR_MOVE_SPEED,
COMMAND_SET_OBJECT_PROOFS,
COMMAND_GET_CAMERA_PED_ZOOM_INDICATOR,
COMMAND_SET_CAMERA_PED_ZOOM_INDICATOR,
COMMAND_GET_CAR_ORIENTATION,
COMMAND_SET_CAR_ORIENTATION,
COMMAND_IS_DEBUG_MENU_ON,
COMMAND_OPEN_VAN_BACK_DOORS,
COMMAND_GET_CHAR_THREAT_CHAR,
COMMAND_FREEZE_PED_ZOOM_SWITCH,
COMMAND_SET_OBJECT_RENDERED_DAMAGED,
COMMAND_GET_RANDOM_CAR_IN_AREA_NO_SAVE,
COMMAND_IS_PLAYER_MADE_SAFE,
COMMAND_PRINT_IF_FREE,
COMMAND_IS_E3_BUILD,
COMMAND_DECLARE_FORT_STAUNTON_DESTROYED_FLAG,
COMMAND_CLEAR_BIG_MESSAGES,
COMMAND_CLEAR_AREA_OF_OBJECTS,
COMMAND_LOAD_NON_STANDARD_PED_ANIM,
COMMAND_UNLOAD_NON_STANDARD_PED_ANIM,
COMMAND_1566,
COMMAND_1567,
COMMAND_1568,
COMMAND_1569,
COMMAND_1570,
COMMAND_1571,
COMMAND_1572,
COMMAND_1573,
COMMAND_1574,
COMMAND_1575,
COMMAND_1576,
COMMAND_1577,
COMMAND_1578,
COMMAND_1579,
COMMAND_1580,
COMMAND_1581,
COMMAND_1582,
COMMAND_1583,
COMMAND_1584,
COMMAND_1585,
COMMAND_1586,
COMMAND_1587,
COMMAND_1588,
COMMAND_1589,
COMMAND_1590,
COMMAND_1591,
COMMAND_1592,
COMMAND_1593,
COMMAND_1594,
COMMAND_1595,
COMMAND_1596,
COMMAND_1597,
COMMAND_1598,
COMMAND_1599,
COMMAND_1600,
COMMAND_1601,
COMMAND_1602,
COMMAND_1603,
COMMAND_1604,
COMMAND_1605,
COMMAND_1606,
COMMAND_1607,
COMMAND_1608,
COMMAND_1609,
COMMAND_1610,
COMMAND_1611,
COMMAND_1612,
COMMAND_1613,
COMMAND_1614,
COMMAND_1615,
COMMAND_1616,
COMMAND_1617,
COMMAND_1618,
COMMAND_1619,
COMMAND_1620,
COMMAND_1621,
COMMAND_1622,
COMMAND_1623,
COMMAND_1624,
COMMAND_1625,
COMMAND_1626,
COMMAND_BUILD_WORLD_GEOMETRY,
COMMAND_STORE_BUILDING_SWAP,
COMMAND_IS_MULTIPLAYER_ACTIVE,
COMMAND_GET_MULTIPLAYER_MODE,
COMMAND_MULTIPLAYER_SCRIPT_DONE,
COMMAND_IS_MULTIPLAYER_SERVER,
COMMAND_IS_MULTIPLAYER_TEAM_GAME,
COMMAND_GET_MULTIPLAYER_TEAM_ID,
COMMAND_DOES_SHORTCUT_TAXI_EXIST,
COMMAND_SET_ONSCREEN_TIMER_COLOUR,
COMMAND_SET_ONSCREEN_TIMER_BACKGROUND_COLOUR,
COMMAND_REMOVE_CAR_BOOT,
COMMAND_ADD_POINT_3D_MARKER,
COMMAND_GET_VECTOR_FROM_MULTIPLAYER,
COMMAND_PRINT_HELP_ALWAYS,
COMMAND_PRINT_HELP_FOREVER_ALWAYS,
COMMAND_SWITCH_FERRY_COLLISION,
COMMAND_SET_CHAR_MAX_HEALTH,
COMMAND_SET_CHAR_SHOOT_TIMER,
COMMAND_SET_CHAR_ATTACK_TIMER,
COMMAND_SET_HELI_ROTOR_BLADES_FULLSPEED,
COMMAND_SET_CRUSHER_REWARD_MULTIPLIER,
COMMAND_SWAP_BUILDINGS,
COMMAND_STREAM_BUILDING_SWAPS,
COMMAND_IS_WORLD_STREAMING_COMPLETE,
COMMAND_SWAP_TO_STREAMED_SECTOR,
COMMAND_SET_CHAR_ATTACKS_PLAYER_WITH_COPS,
COMMAND_REGISTER_FACE_PLANT_DISTANCE,
COMMAND_REGISTER_MAX_SECONDS_ON_CARNAGE_LEFT,
COMMAND_REGISTER_MAX_KILLS_ON_RC_TRIAD,
COMMAND_REGISTER_HIGHEST_LEVEL_SLASH_TV,
COMMAND_ADD_MONEY_MADE_WITH_SLASH_TV,
COMMAND_ADD_TOTAL_KILLS_ON_SLASH_TV,
COMMAND_ADD_NOODLES_DELIVERED,
COMMAND_REGISTER_SCRAPYARD_CHALLENGE_SCORE,
COMMAND_REGISTER_9MM_MAYHEM_SCORE,
COMMAND_REGISTER_SCOOTER_SHOOTER_SCORE,
COMMAND_ADD_MONEY_MADE_FROM_TOURIST,
COMMAND_ADD_TOURISTS_TAKEN_TO_SPOTS,
COMMAND_ADD_EXPORTED_CARS,
COMMAND_SET_TOTAL_EXPORT_CARS,
COMMAND_REGISTER_DIRT_BIKE_FASTEST_LAP,
COMMAND_REGISTER_DIRT_BIKE_FASTEST_TIME,
COMMAND_REGISTER_DIRT_BIKE_AIR_TIME,
COMMAND_ADD_ARROW_3D_MARKER,
COMMAND_PRINT_NOW_OVERRIDE_FADE,
COMMAND_GET_PICKUP_VALUE,
COMMAND_SET_PICKUP_VALUE,
COMMAND_IS_DEVELOPER,
COMMAND_SET_DEVELOPER_FLAG,
COMMAND_REGISTER_WICHITA_WIPEOUT_SCORE,
COMMAND_ATTACH_OBJECT_TO_CAR,
COMMAND_DETACH_OBJECT_FROM_CAR,
COMMAND_SET_PAD_STICKS_MULTIPLIER,
COMMAND_PRINT_SUBTITLE_NOW,
COMMAND_PRINT_SUBTITLE_NOW_OVERRIDE_FADE,
COMMAND_PRINT_SUBTITLE_NOW_NO_BRIEF,
COMMAND_PRINT_WITH_NUMBER_NOW_NO_BRIEF,
COMMAND_GET_ANGLE_BETWEEN_POINTS,
COMMAND_OVERRIDE_CHAR_MOVE_ANIM,
COMMAND_1627,
COMMAND_1628,
COMMAND_1629,
COMMAND_1630,
COMMAND_1631,
COMMAND_1632,
COMMAND_1633,
COMMAND_1634,
COMMAND_1635,
COMMAND_1636,
COMMAND_1637,
COMMAND_1638,
COMMAND_1639,
COMMAND_1640,
COMMAND_1641,
COMMAND_1642,
COMMAND_1643,
COMMAND_1644,
COMMAND_1645,
COMMAND_1646,
COMMAND_1647,
COMMAND_1648,
COMMAND_1649,
COMMAND_1650,
COMMAND_1651,
COMMAND_1652,
COMMAND_1653,
COMMAND_1654,
COMMAND_1655,
COMMAND_1656,
COMMAND_ENABLE_EMERGENCY_VEHICLES,
COMMAND_ADD_UNLOCKED_COSTUME,
COMMAND_CLEAR_MULTIPLAYER_SPLASH_SCREEN,
COMMAND_PRINT_WITH_2_NUMBERS_NOW_NO_BRIEF,
COMMAND_GET_OBJECT_ORIENTATION,
COMMAND_SET_OBJECT_ORIENTATION,
COMMAND_CHANGE_ONSCREEN_COUNTER_PREFIX,
COMMAND_STORE_PLAYER_OUTFIT,
COMMAND_DISPLAY_ONSCREEN_TIMER_WITH_NUMBER_AND_STRING,
COMMAND_SET_PLAYER_CURRENT_WEAPON_AMMO_IN_CLIP,
COMMAND_SET_CHAR_WAIT_STATE_REPEAT,
COMMAND_REGISTER_BEST_TIME_GOGO_FAGGIO,
COMMAND_LOCK_GARAGE,
COMMAND_IS_FINAL_GAME,
COMMAND_SET_ALLOWED_COLLISION,
COMMAND_REGISTER_GUARDIAN_ANGEL_LEVEL,
COMMAND_DISPLAY_ONSCREEN_TIMER_WITH_NUMBER_AND_2_STRINGS,
COMMAND_GET_PLAYER_STORED_WEAPON,
COMMAND_DISABLE_PAUSE_MENU,
COMMAND_IS_CHANNEL_PLAYING,
COMMAND_SET_CLOCK_EVENT_WARNING,
COMMAND_SET_EXTRA_COLOUR_LIGHT_DIRECTION,
COMMAND_SET_CHAR_CAN_BE_TARGETTED_BY_LEADER,
COMMAND_PRINT_HELP_NO_BRIEF,
COMMAND_PRINT_HELP_FOREVER_NO_BRIEF,
COMMAND_PRINT_HELP_ALWAYS_NO_BRIEF,
COMMAND_PRINT_HELP_FOREVER_ALWAYS_NO_BRIEF,
COMMAND_SET_MISSION_CAR_CAN_BE_STORED_IN_GARAGE,
COMMAND_FREEZE_ALL_PLAYER_FOLLOWERS,
#ifdef USE_ADVANCED_SCRIPT_DEBUG_OUTPUT
LAST_SCRIPT_COMMAND
#endif

View File

@ -114,6 +114,7 @@ CCamera::Init(void)
m_1rstPersonRunCloseToAWall = false;
m_fPositionAlongSpline = 0.0f;
m_bCameraJustRestored = false;
m_bFreezePedZoomSwitch = false;
Cams[0].Init();
Cams[1].Init();
Cams[2].Init();
@ -985,7 +986,7 @@ CCamera::CamControl(void)
// Change user selected mode
if(CPad::GetPad(0)->CycleCameraModeUpJustDown() && !CReplay::IsPlayingBack() &&
(m_bLookingAtPlayer || WhoIsInControlOfTheCamera == CAMCONTROL_OBBE) &&
!m_WideScreenOn && !m_bFailedCullZoneTestPreviously && !m_bFirstPersonBeingUsed){
!m_WideScreenOn && !m_bFailedCullZoneTestPreviously && !m_bFirstPersonBeingUsed && !m_bFreezePedZoomSwitch){
if(FrontEndMenuManager.m_ControlMethod == CONTROL_STANDARD){
if(PedZoomIndicator == CAM_ZOOM_3)
PedZoomIndicator = CAM_ZOOM_1;

View File

@ -368,6 +368,7 @@ public:
bool m_bVehicleSuspenHigh;
bool m_bEnable1rstPersonCamCntrlsScript;
bool m_bAllow1rstPersonWeaponsCamera;
bool m_bFreezePedZoomSwitch;
bool m_bFailedCullZoneTestPreviously;
bool m_FadeTargetIsSplashScreen;

View File

@ -3378,9 +3378,9 @@ CMenuManager::Process(void)
#ifdef XBOX_MESSAGE_SCREEN
ProcessDialogTimer();
#endif
if (TheCamera.GetScreenFadeStatus() != FADE_0)
return;
// tmp hack to get saving to work
//if (TheCamera.GetScreenFadeStatus() != FADE_0)
// return;
InitialiseChangedLanguageSettings();

View File

@ -277,6 +277,16 @@ public:
uint32 InputHowLongAgo(void);
void SetDrunkInputDelay(int32 delay) { DrunkDrivingBufferUsed = delay; }
// TODO(LCS): properly, this is just to get some estimation for script
int16 GetOddJobTrigger() { return GetRightShockJustDown(); }
int16 GuiLeft() { return GetAnaloguePadLeft() || GetDPadLeftJustDown(); }
int16 GuiRight() { return GetAnaloguePadRight() || GetDPadRightJustDown(); }
int16 GuiUp() { return GetAnaloguePadUp() || GetDPadUpJustDown(); }
int16 GuiDown() { return GetAnaloguePadDown() || GetDPadDownJustDown(); }
int16 GuiSelect() { return GetCrossJustDown(); }
int16 GuiBack() { return GetTriangleJustDown(); }
int16 GetSkipCutscene() { return GetCrossJustDown(); }
#ifdef XINPUT
void AffectFromXinput(uint32 pad);
#endif

View File

@ -420,8 +420,10 @@ CPlayerInfo::Process(void)
CTimer::Update();
}
m_bInRemoteMode = false;
CWorld::Players[CWorld::PlayerInFocus].m_pRemoteVehicle->bRemoveFromWorld = true;
CWorld::Players[CWorld::PlayerInFocus].m_pRemoteVehicle = nil;
if (CWorld::Players[CWorld::PlayerInFocus].m_pRemoteVehicle) {
CWorld::Players[CWorld::PlayerInFocus].m_pRemoteVehicle->bRemoveFromWorld = true;
CWorld::Players[CWorld::PlayerInFocus].m_pRemoteVehicle = nil;
}
if (FindPlayerVehicle()) {
FindPlayerVehicle()->SetStatus(STATUS_PLAYER);
}

View File

@ -1133,6 +1133,7 @@ void CRadar::SetRadarMarkerState(int32 counter, bool flag)
}
void CRadar::ShowRadarMarker(CVector pos, uint32 color, float radius) {
/*
float f1 = radius * 1.4f;
float f2 = radius * 0.5f;
CVector p1, p2;
@ -1152,6 +1153,7 @@ void CRadar::ShowRadarMarker(CVector pos, uint32 color, float radius) {
p1 = pos - TheCamera.GetRight()*f1;
p2 = pos - TheCamera.GetRight()*f2;
CTheScripts::ScriptDebugLine3D(p1.x, p1.y, p1.z, p2.x, p2.y, p2.z, color, color);
*/
}
void CRadar::ShowRadarTrace(float x, float y, uint32 size, uint8 red, uint8 green, uint8 blue, uint8 alpha)

View File

@ -198,6 +198,7 @@ enum Config {
//#define ANIM_COMPRESSION // only keep most recently used anims uncompressed
#define GTA_TRAIN
//#define GTA_BRIDGE
#if defined GTA_PS2
# define GTA_PS2_STUFF
@ -211,7 +212,7 @@ enum Config {
# define PS2_MATFX
# endif
# define PC_PLAYER_CONTROLS // mouse player/cam mode
# define GTA_REPLAY
//# define GTA_REPLAY
# define GTA_SCENE_EDIT
#elif defined GTA_XBOX
#endif

View File

@ -1279,7 +1279,7 @@ RenderScene(void)
void
RenderDebugShit(void)
{
CTheScripts::RenderTheScriptDebugLines();
//CTheScripts::RenderTheScriptDebugLines();
#ifndef FINAL
if(gbShowCollisionLines)
CRenderer::RenderCollisionLines();

View File

@ -741,24 +741,30 @@ extern bool gbRenderDebugEnvMap;
#ifdef MISSION_SWITCHER
DebugMenuEntry *missionEntry;
static const char* missions[] = {
"Initial", "Intro", "An Old Friend", "The Party", "Back Alley Brawl", "Jury Fury", "Riot",
"Treacherous Swine", "Mall Shootout", "Guardian Angels", "Sir, Yes Sir!", "All Hands On Deck!",
"The Chase", "Phnom Penh '86", "The Fastest Boat", "Supply & Demand", "Rub Out", "Death Row",
"Four Iron", "Demolition Man", "Two Bit Hit", "No Escape?", "The Shootist", "The Driver",
"The Job", "Gun Runner", "Boomshine Saigon", "Recruitment Drive", "Dildo Dodo", "Martha's Mug Shot",
"G-spotlight", "Shakedown", "Bar Brawl", "Cop Land", "Spilling the Beans", "Hit the Courier",
"Printworks Buy", "Sunshine Autos", "Interglobal Films Buy", "Cherry Popper Icecreams Buy",
"Kaufman Cabs Buy", "Malibu Club Buy", "The Boatyard Buy", "Pole Position Club Buy", "El Swanko Casa Buy",
"Links View Apartment Buy", "Hyman Condo Buy", "Ocean Heighs Aprt. Buy", "1102 Washington Street Buy",
"Vice Point Buy", "Skumole Shack Buy", "Cap the Collector", "Keep your Friends Close...",
"Alloy Wheels of Steel", "Messing with the Man", "Hog Tied", "Stunt Boat Challenge", "Cannon Fodder",
"Naval Engagement", "Trojan Voodoo", "Juju Scramble", "Bombs Away!", "Dirty Lickin's", "Love Juice",
"Psycho Killer", "Publicity Tour", "Weapon Range", "Road Kill", "Waste the Wife", "Autocide",
"Check Out at the Check In", "Loose Ends", "V.I.P.", "Friendly Rivalry", "Cabmaggedon", "TAXI DRIVER",
"PARAMEDIC", "FIREFIGHTER", "VIGILANTE", "HOTRING", "BLOODRING", "DIRTRING", "Sunshine Autos Races",
"Distribution", "Downtown Chopper Checkpoint", "Ocean Beach Chopper Checkpoint", "Vice Point Chopper Checkpoint",
"Little Haiti Chopper Checkpoint", "Trial by Dirt", "Test Track", "PCJ Playground", "Cone Crazy",
"PIZZA BOY", "RC Raider Pickup", "RC Bandit Race", "RC Baron Race", "Checkpoint Charlie"
"initial: objects", "initial: hidden packages", "initial: car generators", "initial: pickups", "initial: unique stunt jumps",
"initial: player", "initial: general info", "initial: lods", "initial: weapons", "Home Sweet Home", "Taxi-Driver Sub-Mission",
"Paramedic Sub-Mission", "Vigilante Sub-Mission", "Karmageddon", "Firefighter Sub-Mission", "Trash Dash", "RC Triad Take-Down",
"Thrashin' RC", "Ragin' RC", "Chasin' RC", "GO GO Faggio", "Noodleboy", "Pizzaboy", "Wong Side Of The Tracks", "Bumps and Grinds: Course 1",
"Bumps and Grinds: Course 2", "Bumps and Grinds: Course 3", "Bumps and Grinds: Course 4", "Bumps and Grinds: Course 5", "Bumps and Grinds: Course 6",
"Bumps and Grinds: Course 7", "Bumps and Grinds: Course 8", "Bumps and Grinds: Course 9", "Bumps and Grinds: Course 10", "Car Salesman", "Bike Salesman",
"RACE: Low-Rider Rumble", "RACE: Deimos Dash", "RACE: Wi-Cheetah Run", "RACE: Red Light Racing", "RACE: Torrington TT", "RACE: Gangsta GP",
"Scooter Shooter", "AWOL Angel", "9mm Mayhem", "Scrapyard Challenge", "See the Sight Before your Flight", "SlashTV", "Slacker (Vincenzo)",
"Dealing Revenge (Vincenzo)", "Snuff (Vincenzo)", "Smash and Grab (Vincenzo)", "Hot Wheels (Vincenzo)", "The Portland Chainsaw Masquerade (Vincenzo)",
"The Offer (Salvatore)", "Ho Selecta! (Salvatore)", "Frighteners (Salvatore)", "Rollercoaster Ride (Salvatore)", "Contra-Banned (Salvatore)",
"Sindacco Sabotage (Salvatore)", "The Trouble with Triads (Salvatore)", "Driving Mr Leone (Salvatore)", "conversation (JD)", "Bone Voyeur! (JD)",
"Don in 60 Seconds (JD)", "A Volatile Situation (JD)", "Blow up 'Dolls' (JD)", "Salvatore's Salvation (JD)", "The Guns of Leone (JD)",
"Calm before the Storm (JD)", "The Made Man (JD)", "Snappy Dresser (Ma Cipriani)", "Big Rumble in Little China (Ma Cipriani)", "Grease Sucho (Ma Cipriani)",
"Dead Meat (Ma Cipriani)", "No Son of Mine (Ma Cipriani)", "Shop 'til you Strop (Maria)", "Taken for a Ride (Maria)", "Booby Prize (Maria)",
"Biker Heat (Maria)", "Overdose of Trouble (Maria)", "Making Toni (Salvatore)", "A Walk In The Park (Salvatore)", "Caught In The Act (Salvatore)",
"Search And Rescue (Salvatore)", "Taking The Peace (Salvatore)", "Shoot The Messenger (Salvatore)", "Sayonara Sindaccos (Leon McAffrey)",
"The Whole 9 Yardies (Leon McAffrey)", "Crazy '69' (Leon McAffrey)", "Night Of The Livid Dreads (Leon McAffrey)", "Munitions Dump (Leon McAffrey)",
"The Morgue Party Candidate (Donald Love)", "Steering The Vote (Donald Love)", "Cam-Pain (Donald Love)", "Friggin' The Riggin' (Donald Love)",
"Love & Bullets (Donald Love)", "Counterfeit Count (Donald Love)", "Love On The Rocks (Donald Love)", "L.C. Confidential (Church Confessional)",
"The Passion Of The Heist (Church Confessional)", "Karmageddon (Church Confessional)", "False Idols (Church Confessional)", "Rough Justice (Salvatore)",
"Dead Reckoning (Salvatore)", "Shogun Showdown (Salvatore)", "The Shoreside Redemption (Salvatore)", "The Sicilian Gambit (Salvatore)",
"Panlantic Land Grab (Donald Love)", "Stop the Press (Donald Love)", "Morgue Party Resurrection (Donald Love)", "No Money, Mo' Problems (Donald Love)",
"Bringing the House Down (Donald Love)", "Love on the Run (Donald Love)", "More Deadly than the Male (Toshiko Kasen)", "Cash Clash (Toshiko Kasen)",
"A Date with Death (Toshiko Kasen)", "Cash in Kazuki's Chips (Toshiko Kasen)"
};
missionEntry = DebugMenuAddVar("Debug", "Select mission", &nextMissionToSwitch, nil, 1, 0, 96, missions);

View File

@ -138,7 +138,50 @@
X("blimp_night", MI_BLIMP_NIGHT) \
X("blimp_day", MI_BLIMP_DAY) \
X("yt_main_body", MI_YT_MAIN_BODY) \
X("yt_main_body2", MI_YT_MAIN_BODY2)
X("yt_main_body2", MI_YT_MAIN_BODY2) \
X("oddjgaragdoor", MI_LCS_GARAGEDOOR01) \
X("bombdoor", MI_LCS_GARAGEDOOR02) \
X("door_bombshop", MI_LCS_GARAGEDOOR03) \
X("vheistlocdoor", MI_LCS_GARAGEDOOR04) \
X("door2_garage", MI_LCS_GARAGEDOOR05) \
X("ind_slidedoor", MI_LCS_GARAGEDOOR06) \
X("bankjobdoor", MI_LCS_GARAGEDOOR07) \
X("door_jmsgrage", MI_LCS_GARAGEDOOR08) \
X("ind_safeh_gdoor", MI_LCS_GARAGEDOOR09) \
X("door_sfehousegrge", MI_LCS_GARAGEDOOR10) \
X("shedgaragedoor", MI_LCS_GARAGEDOOR11) \
X("door4_garage", MI_LCS_GARAGEDOOR12) \
X("door_col_compnd_01", MI_LCS_GARAGEDOOR13) \
X("door_col_compnd_02", MI_LCS_GARAGEDOOR14) \
X("door_col_compnd_03", MI_LCS_GARAGEDOOR15) \
X("door_col_compnd_04", MI_LCS_GARAGEDOOR16) \
X("door_col_compnd_05", MI_LCS_GARAGEDOOR17) \
X("impex_door", MI_LCS_GARAGEDOOR18) \
X("SalvGarage", MI_LCS_GARAGEDOOR19) \
X("door3_garage", MI_LCS_GARAGEDOOR20) \
X("leveldoor2", MI_LCS_GARAGEDOOR21) \
X("double_garage_dr", MI_LCS_GARAGEDOOR22) \
X("amcogaragedoor", MI_LCS_GARAGEDOOR23) \
X("towergaragedoor1", MI_LCS_GARAGEDOOR24) \
X("towergaragedoor2", MI_LCS_GARAGEDOOR25) \
X("towergaragedoor3", MI_LCS_GARAGEDOOR26) \
X("plysve_gragedoor", MI_LCS_GARAGEDOOR27) \
X("impexpsubgrgdoor", MI_LCS_GARAGEDOOR28) \
X("Sub_sprayshopdoor", MI_LCS_GARAGEDOOR29) \
X("ind_plyrwoor", MI_LCS_GARAGEDOOR30) \
X("8ballsuburbandoor", MI_LCS_GARAGEDOOR31) \
X("door_nthgrage", MI_LCS_GARAGEDOOR32) \
X("hangardoor1", MI_LCS_GARAGEDOOR33) \
X("hangardoor2", MI_LCS_GARAGEDOOR34) \
X("neds_door", MI_LCS_GARAGEDOOR35) \
X("fs_wrhsedoor", MI_LCS_GARAGEDOOR36) \
X("jm_ContraGarage", MI_LCS_GARAGEDOOR37) \
X("jm_imp_SalvGarage", MI_LCS_GARAGEDOOR38) \
X("crushercrush", MI_LCS_GARAGEDOOR39) \
X("crushertop", MI_LCS_GARAGEDOOR40) \
X("crusher_crane", MI_LCS_CRANE01) \
// NB: MI_LCS_ <- temporary stuff so that garages started somewhat working
#define X(name, var) extern int16 var;
MODELINDICES

View File

@ -71,6 +71,7 @@ public:
uint8 bIsWeapon : 1;
uint8 bIsStreetLight : 1;
int8 m_nBonusValue;
int8 m_nLastWeaponToDamage;
uint16 m_nCostValue;
float m_fCollisionDamageMultiplier;
uint8 m_nCollisionDamageEffect;

View File

@ -9447,8 +9447,10 @@ CPed::SetRadioStation(void)
// --MIAMI: Done
void
CPed::WarpPedIntoCar(CVehicle *car)
CPed::WarpPedIntoCar(CVehicle *car) // LCS TODO: remove passenger logic
{
if (GetPedState() == PED_FACE_PHONE)
QuitEnteringCar();
bInVehicle = true;
m_pMyVehicle = car;
m_pMyVehicle->RegisterReference((CEntity **) &m_pMyVehicle);
@ -9513,6 +9515,77 @@ CPed::WarpPedIntoCar(CVehicle *car)
bChangedSeat = true;
}
void
CPed::WarpPedIntoCarAsPassenger(CVehicle* pVehicle, int32 position)
{
if (GetPedState() == PED_FACE_PHONE)
QuitEnteringCar();
bInVehicle = true;
m_pMyVehicle = pVehicle;
m_pMyVehicle->RegisterReference((CEntity**)&m_pMyVehicle);
m_carInObjective = pVehicle;
m_carInObjective->RegisterReference((CEntity**)&m_carInObjective);
SetPedState(PED_DRIVING); // TODO: this is PED_PASSENGER, but it needs to have some logic applied first
bUsesCollision = false;
bIsInTheAir = false;
bVehExitWillBeInstant = true;
if (pVehicle->IsBike() && !pVehicle->pPassengers[0]) {
pVehicle->pPassengers[0] = this;
pVehicle->pPassengers[0]->RegisterReference((CEntity**)&pVehicle->pPassengers[0]);
}
if (position >= 0) {
if (!pVehicle->pPassengers[position]) {
pVehicle->pPassengers[position] = this;
pVehicle->pPassengers[position]->RegisterReference((CEntity**)&pVehicle->pPassengers[position]);
}
}
else {
for (int i = 0; i < 4; i++) {
if (!pVehicle->pPassengers[i]) {
pVehicle->pPassengers[i] = this;
pVehicle->pPassengers[i]->RegisterReference((CEntity**)&pVehicle->pPassengers[i]);
break;
}
}
}
if (IsPlayer()) {
pVehicle->SetStatus(STATUS_PLAYER);
AudioManager.PlayerJustGotInCar();
CCarCtrl::RegisterVehicleOfInterest(pVehicle);
}
else {
pVehicle->SetStatus(STATUS_PHYSICS);
}
CWorld::Remove(this);
SetPosition(pVehicle->GetPosition());
CWorld::Add(this);
if (pVehicle->bIsAmbulanceOnDuty) {
pVehicle->bIsAmbulanceOnDuty = false;
--CCarCtrl::NumAmbulancesOnDuty;
}
if (pVehicle->bIsFireTruckOnDuty) {
pVehicle->bIsFireTruckOnDuty = false;
--CCarCtrl::NumFiretrucksOnDuty;
}
if (!pVehicle->bEngineOn) {
pVehicle->bEngineOn = true;
DMAudio.PlayOneShot(pVehicle->m_audioEntityId, SOUND_CAR_ENGINE_START, 1.0f);
}
RpAnimBlendClumpSetBlendDeltas(GetClump(), ASSOC_PARTIAL, -1000.0f);
AddInCarAnims(pVehicle, pVehicle->pDriver == this);
RemoveWeaponWhenEnteringVehicle();
if (pVehicle->bIsBus)
bRenderPedInCar = false;
bChangedSeat = true;
}
// --MIAMI: Done
bool
CPed::HasAttractor(void)

View File

@ -406,7 +406,7 @@ public:
float m_fCollisionSpeed;
// cf. https://github.com/DK22Pac/plugin-sdk/blob/master/plugin_sa/game_sa/CPed.h from R*
uint32 bIsStanding : 1;
uint32 bIsStanding : 1; // 0x194 on PS2, 0x1A4 on android
uint32 bWasStanding : 1;
uint32 bIsAttacking : 1; // doesn't reset after fist fight
uint32 bIsPointingGunAt : 1;
@ -499,7 +499,7 @@ public:
uint32 bIsDrowning : 1;
uint32 bDrownsInWater : 1;
uint32 bWaitForLeaderToComeCloser : 1;
uint32 bHeldHostageInCar : 1;
uint32 bHeldHostageInCar : 1; // one flag was added somewhere after this one (TODO: figure out where and which)
uint32 bIsPlayerFriend : 1;
uint32 bHeadStuckInCollision : 1;
uint32 bDeadPedInFrontOfCar : 1;
@ -512,7 +512,7 @@ public:
uint32 bMakeFleeScream : 1;
uint32 bPushedAlongByCar : 1;
uint32 bRemoveMeWhenIGotIntoCar : 1;
uint32 bIgnoreThreatsBehindObjects : 1;
uint32 bIgnoreThreatsBehindObjects : 1; // one flag was added somewhere before this one (TODO: figure out where and which)
uint32 bNeverEverTargetThisPed : 1;
uint32 bCrouchWhenScared : 1;
@ -523,22 +523,40 @@ public:
uint32 bDonePositionOutOfCollision : 1;
uint32 bCanAttackPlayerWithCops : 1; // 1A1_1 on PS2
uint32 b1A1_2 : 1;
uint32 b1A1_4 : 1;
uint32 bOnlyAllowedToSitBehind : 1;
uint32 bOnlyAllowedToSitInFront : 1;
uint32 b1A1_8 : 1;
uint32 b1A1_10 : 1;
uint32 b1A1_20 : 1;
uint32 bOverrideMoveAnim : 1;
#ifdef KANGAROO_CHEAT
// our own flags
uint32 m_ped_flagI80 : 1; // KANGAROO_CHEAT define makes use of this as cheat toggle
#endif
uint8 m_gangFlags;
uint8 m_unused15D; // these 3 can't be padding but had to actually have been members ...
uint8 m_unused15E;
uint8 m_unused15F;
uint8 CharCreatedBy;
uint16 m_gangFlags; // <- this one is uint16
uint8 bDropsWeaponsOnDeath : 1;
uint8 b1A4_2 : 1;
uint8 bAttacksPlayerWithCops : 1;
uint8 b1A4_8 : 1;
uint8 b1A4_10 : 1;
uint8 b1A4_20 : 1;
uint8 b1A4_40 : 1;
uint8 b1A4_80 : 1;
uint8 bCanBeTargettedByLeader : 1;
uint8 b1A5_2 : 1;
uint8 b1A5_4 : 1;
uint8 b1A5_8 : 1;
uint8 b1A5_10 : 1;
uint8 b1A5_20 : 1;
uint8 b1A5_40 : 1;
uint8 b1A5_80 : 1;
uint8 unk_1A6; // <- init with 100 in constructor
uint8 CharCreatedBy; // 1AC
eObjective m_objective;
eObjective m_prevObjective;
CPed *m_pedInObjective;
@ -587,6 +605,8 @@ public:
float m_fHealth;
float m_fArmour;
uint32 m_nExtendedRangeTimer;
uint32 m_nScriptShootTimer;
uint32 m_nScriptAttackTimer;
int16 m_routeLastPoint;
uint16 m_routeStartPoint;
int16 m_routePointsPassed;
@ -686,6 +706,7 @@ public:
uint32 m_lastComment;
CVector m_vecSpotToGuard;
float m_radiusToGuard;
float m_fMaxHealth;
static void *operator new(size_t);
static void *operator new(size_t, int);
@ -888,6 +909,7 @@ public:
void SetSolicit(uint32 time);
void ScanForInterestingStuff(void);
void WarpPedIntoCar(CVehicle*);
void WarpPedIntoCarAsPassenger(CVehicle*, int32);
void SetCarJack(CVehicle*);
bool WarpPedToNearLeaderOffScreen(void);
void Solicit(void);
@ -1042,6 +1064,16 @@ public:
{
return m_pMyVehicle != nil && ((CEntity*)m_pMyVehicle)->GetStatus() != STATUS_WRECKED;
}
bool CanStartMission() // used in CAN_PLAYER_START_MISSION and can looks like inlined function
{
if (m_nPedState >= PED_WANDER_RANGE && m_nPedState < PED_STATES_NO_AI && m_nPedState != PED_ANSWER_MOBILE)
return false;
if (m_nPedState >= PED_JUMP && m_nPedState < PED_STATES_NO_ST)
return false;
if (m_nPedState >= PED_ENTER_TRAIN && m_nPedState < PED_DEPLOY_STINGER)
return false;
return !bIsInTheAir && !bIsLanding && m_fHealth > 0.0f;
}
// My names. Inlined in VC
AnimationId GetFireAnimNotDucking(CWeaponInfo* weapon) {

View File

@ -6487,7 +6487,7 @@ CPed::KillCharOnFootArmed(CVector &ourPos, CVector &targetPos, CVector &distWith
}
}
if (m_pedInObjective->IsPlayer() && m_nPedType != PEDTYPE_COP
&& CharCreatedBy != MISSION_CHAR && FindPlayerPed()->m_pWanted->m_CurrentCops != 0) {
&& CharCreatedBy != MISSION_CHAR && FindPlayerPed()->m_pWanted->m_CurrentCops != 0/* TODO: && !bAttacksPlayerWithCops*/) {
SetObjective(OBJECTIVE_FLEE_ON_FOOT_TILL_SAFE);
return CANT_ATTACK;

View File

@ -130,6 +130,8 @@ uint32 CHud::m_LastTimeEnergyLost;
CSprite2d CHud::Sprites[NUM_HUD_SPRITES];
wchar* CHud::gLastPrintForeverString;
struct
{
const char *name;

View File

@ -118,6 +118,8 @@ public:
static uint32 m_LastWeapon;
static uint32 m_LastTimeEnergyLost;
static wchar* gLastPrintForeverString;
public:
static void Draw();
static void DrawAfterFade();

View File

@ -44,7 +44,7 @@
// --MIAMI: file done
#define BLOCK_COUNT 22
#define SIZE_OF_SIMPLEVARS 0xE4
#define SIZE_OF_SIMPLEVARS 0xE8
const uint32 SIZE_OF_ONE_GAME_IN_BYTES = 201729;
@ -230,7 +230,7 @@ GenericSave(int file)
totalSize = buf - work_buff;
// Save the rest
WriteSaveDataBlock(CPools::SavePedPool, "PedPoolSize");
//WriteSaveDataBlock(CPools::SavePedPool, "PedPoolSize");
WriteSaveDataBlock(CGarages::Save, "GaragesSize");
WriteSaveDataBlock(CGameLogic::Save, "GameLogicSize");
WriteSaveDataBlock(CPools::SaveVehiclePool, "VehPoolSize");
@ -361,8 +361,8 @@ GenericLoad()
ReadDataFromBlock("Loading Scripts \n", CTheScripts::LoadAllScripts);
// Load the rest
LoadSaveDataBlock();
ReadDataFromBlock("Loading PedPool \n", CPools::LoadPedPool);
//LoadSaveDataBlock();
//ReadDataFromBlock("Loading PedPool \n", CPools::LoadPedPool);
LoadSaveDataBlock();
ReadDataFromBlock("Loading Garages \n", CGarages::Load);
LoadSaveDataBlock();

View File

@ -14,7 +14,7 @@
// --MIAMI: file done
#define MAX_DISTANCE_TO_FIND_CRANE (10.0f)
#define MAX_DISTANCE_TO_FIND_CRANE (100.0f)
#define CRANE_UPDATE_RADIUS (300.0f)
#define CRANE_MOVEMENT_PROCESSING_RADIUS (150.0f)
#define CRUSHER_Z (-0.951f)
@ -52,28 +52,18 @@ void CCranes::InitCranes(void)
for (int j = 0; j < NUMSECTORS_Y; j++) {
for (CPtrNode* pNode = CWorld::GetSector(i, j)->m_lists[ENTITYLIST_BUILDINGS].first; pNode; pNode = pNode->next) {
CEntity* pEntity = (CEntity*)pNode->item;
if (MODELID_CRANE_1 == pEntity->GetModelIndex() ||
MODELID_CRANE_2 == pEntity->GetModelIndex() ||
MODELID_CRANE_3 == pEntity->GetModelIndex() ||
MODELID_CRANE_4 == pEntity->GetModelIndex() ||
MODELID_CRANE_5 == pEntity->GetModelIndex() ||
MODELID_CRANE_6 == pEntity->GetModelIndex())
if (MI_LCS_CRANE01 == pEntity->GetModelIndex())
AddThisOneCrane(pEntity);
}
}
}
/* // TODO(LCS)
for (CPtrNode* pNode = CWorld::GetBigBuildingList(LEVEL_MAINLAND).first; pNode; pNode = pNode->next) {
// TODO(LCS)
for (CPtrNode* pNode = CWorld::GetBigBuildingList(LEVEL_INDUSTRIAL).first; pNode; pNode = pNode->next) {
CEntity* pEntity = (CEntity*)pNode->item;
if (MODELID_CRANE_1 == pEntity->GetModelIndex() ||
MODELID_CRANE_2 == pEntity->GetModelIndex() ||
MODELID_CRANE_3 == pEntity->GetModelIndex() ||
MODELID_CRANE_4 == pEntity->GetModelIndex() ||
MODELID_CRANE_5 == pEntity->GetModelIndex() ||
MODELID_CRANE_6 == pEntity->GetModelIndex())
if (MI_LCS_CRANE01 == pEntity->GetModelIndex())
AddThisOneCrane(pEntity);
}
*/
}
void CCranes::AddThisOneCrane(CEntity* pEntity)

View File

@ -245,6 +245,8 @@ public:
#endif
uint8 bDriverLastFrame : 1;
uint8 bAllowGarageToStore : 1; // <- many LCS flags before
int8 m_numPedsUseItAsCover;
uint8 m_nAmmoInClip; // Used to make the guns on boat do a reload (20 by default)
int8 m_nPacManPickupsCarried;