This commit is contained in:
Nikolay Korolev
2021-01-17 16:03:37 +03:00
parent 186441e7f5
commit 4703ec5164
18 changed files with 1866 additions and 953 deletions

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,26 +1627,26 @@ 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_USING_FIRST_PERSON_WEAPON_CAMERA, INPUT_ARGUMENTS(), 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_1491, INPUT_ARGUMENTS(ARGTYPE_INT, ), OUTPUT_ARGUMENTS(), false, -1, ""),
REGISTER_COMMAND(COMMAND_SET_DEBUG_MENU_ACTUVE, 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_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, ""),

View File

@ -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,33 @@ 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 if (m_nAndOrState >= ORS_1 && m_nAndOrState <= ORS_8) {
m_bCondResult |= flag;
if (m_nAndOrState == ORS_1) {
m_nAndOrState = ANDOR_NONE;
return;
}
}
else {
return;
}
m_nAndOrState--;
}
int16 GetPadState(uint16, uint16);
int8 ProcessCommands0To99(int32);
@ -570,6 +600,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 +639,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();
};

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

@ -0,0 +1,213 @@
#include "common.h"
#include "Script.h"
#include "ScriptCommands.h"
#include "PlayerPed.h"
#include "World.h"
int8 CRunningScript::ProcessCommands1600To1699(int32 command)
{
switch (command) {
case COMMAND_1600:
script_assert(false);
return 0;
case COMMAND_1601:
script_assert(false);
return 0;
case COMMAND_1602:
script_assert(false);
return 0;
case COMMAND_1603:
script_assert(false);
return 0;
case COMMAND_1604:
script_assert(false);
return 0;
case COMMAND_1605:
script_assert(false);
return 0;
case COMMAND_1606:
script_assert(false);
return 0;
case COMMAND_1607:
CollectParameters(&m_nIp, 1);
// TODO (SET_TOTAL_CARS_FOR_EXPORT)
return 0;
case COMMAND_1608:
script_assert(false);
return 0;
case COMMAND_1609:
script_assert(false);
return 0;
case COMMAND_1610:
script_assert(false);
return 0;
case COMMAND_1611:
script_assert(false);
return 0;
case COMMAND_1612:
script_assert(false);
return 0;
case COMMAND_1613:
script_assert(false);
return 0;
case COMMAND_1614:
script_assert(false);
return 0;
case COMMAND_1615:
// TODO (GET_DEVELOPER_FLAG?)
UpdateCompareFlag(false);
return 0;
case COMMAND_1616:
// TODO (SET_DEVELOPER_FLAG)
return 0;
case COMMAND_1617:
script_assert(false);
return 0;
case COMMAND_1618:
script_assert(false);
return 0;
case COMMAND_1619:
script_assert(false);
return 0;
case COMMAND_1620:
script_assert(false);
return 0;
case COMMAND_1621:
{
wchar* key = CTheScripts::GetTextByKeyFromScript(&m_nIp);
CollectParameters(&m_nIp, 2);
// TODO (SET_SUBTITLE_TEXT)
return 0;
}
case COMMAND_1622:
script_assert(false);
return 0;
case COMMAND_1623:
script_assert(false);
return 0;
case COMMAND_1624:
script_assert(false);
return 0;
case COMMAND_1625:
script_assert(false);
return 0;
case COMMAND_1626:
script_assert(false);
return 0;
case COMMAND_1627:
script_assert(false);
return 0;
case COMMAND_1628:
script_assert(false);
return 0;
case COMMAND_1629:
script_assert(false);
return 0;
case COMMAND_1630:
script_assert(false);
return 0;
case COMMAND_1631:
script_assert(false);
return 0;
case COMMAND_1632:
script_assert(false);
return 0;
case COMMAND_1633:
script_assert(false);
return 0;
case COMMAND_1634:
script_assert(false);
return 0;
case COMMAND_1635:
{
char tmp[12]; // TODO
CTheScripts::ReadTextLabelFromScript(&m_nIp, tmp);
m_nIp += KEY_LENGTH_IN_SCRIPT;
// TODO (CHANGE_STORED_PLAYER_OUTFIT?)
return 0;
}
case COMMAND_1636:
script_assert(false);
return 0;
case COMMAND_1637:
script_assert(false);
return 0;
case COMMAND_1638:
script_assert(false);
return 0;
case COMMAND_1639:
script_assert(false);
return 0;
case COMMAND_1640:
CollectParameters(&m_nIp, 2);
// TODO (LOCK_GARAGE?)
return 0;
case COMMAND_1641:
// TODO
UpdateCompareFlag(true);
return 0;
case COMMAND_1642:
script_assert(false);
return 0;
case COMMAND_1643:
script_assert(false);
return 0;
case COMMAND_1644:
script_assert(false);
return 0;
case COMMAND_1645:
{
CollectParameters(&m_nIp, 1);
// TODO (GET_STORED_WEAPON?)
CPed* pPed = CWorld::Players[ScriptParams[0]].m_pPed;
script_assert(pPed);
ScriptParams[0] = pPed->m_storedWeapon;
StoreParameters(&m_nIp, 1);
return 0;
}
case COMMAND_1646:
CollectParameters(&m_nIp, 1);
// TODO (DISABLE_PAUSE_MENU?)
return 0;
case COMMAND_1647:
CollectParameters(&m_nIp, 1);
// TODO (IS_CHANNEL_PLAYING?)
UpdateCompareFlag(false);
return 0;
case COMMAND_1648:
CollectParameters(&m_nIp, 3);
// TODO (SET_CLOCK_EVENT_WARNING);
return 0;
case COMMAND_1649:
CollectParameters(&m_nIp, 3);
// TODO (SET_EXTRA_COLOUR_DIRECTION)
return 0;
case COMMAND_1650:
script_assert(false);
return 0;
case COMMAND_1651:
script_assert(false);
return 0;
case COMMAND_1652:
script_assert(false);
return 0;
case COMMAND_1653:
script_assert(false);
return 0;
case COMMAND_1654:
script_assert(false);
return 0;
case COMMAND_1655:
script_assert(false);
return 0;
case COMMAND_1656:
CollectParameters(&m_nIp, 2);
// TODO (?)
return 0;
default:
script_assert(0);
}
return -1;
}

View File

@ -36,6 +36,8 @@
#include "GameLogic.h"
#include "Bike.h"
// LCS: file done except TODOs
int8 CRunningScript::ProcessCommands500To599(int32 command)
{
switch (command) {
@ -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)
{

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

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

@ -0,0 +1,338 @@
#include "common.h"
#include "Script.h"
#include "ScriptCommands.h"
int8 CRunningScript::ProcessCommands1500To1599(int32 command)
{
switch (command) {
case COMMAND_1497:
script_assert(false);
return 0;
case COMMAND_1498:
script_assert(false);
return 0;
case COMMAND_1499:
script_assert(false);
return 0;
case COMMAND_1500:
script_assert(false);
return 0;
case COMMAND_1501:
script_assert(false);
return 0;
case COMMAND_1502:
script_assert(false);
return 0;
case COMMAND_1503:
script_assert(false);
return 0;
case COMMAND_1504:
script_assert(false);
return 0;
case COMMAND_1505:
script_assert(false);
return 0;
case COMMAND_1506:
script_assert(false);
return 0;
case COMMAND_1507:
script_assert(false);
return 0;
case COMMAND_1508:
script_assert(false);
return 0;
case COMMAND_1509:
script_assert(false);
return 0;
case COMMAND_1510:
script_assert(false);
return 0;
case COMMAND_1511:
script_assert(false);
return 0;
case COMMAND_1512:
script_assert(false);
return 0;
case COMMAND_1513:
script_assert(false);
return 0;
case COMMAND_1514:
script_assert(false);
return 0;
case COMMAND_1515:
script_assert(false);
return 0;
case COMMAND_1516:
script_assert(false);
return 0;
case COMMAND_1517:
script_assert(false);
return 0;
case COMMAND_1518:
// TODO (?)
UpdateCompareFlag(true);
return 0;
case COMMAND_1519:
CollectParameters(&m_nIp, 1);
// TODO (SET_NUMBER_USJ_FOUND?)
return 0;
case COMMAND_1520:
CollectParameters(&m_nIp, 1);
// TODO (SET_TOTAL_HIDDEN_PACKAGES?)
return 0;
case COMMAND_1521:
script_assert(false);
return 0;
case COMMAND_1522:
script_assert(false);
return 0;
case COMMAND_1523:
script_assert(false);
return 0;
case COMMAND_1524:
script_assert(false);
return 0;
case COMMAND_1525:
script_assert(false);
return 0;
case COMMAND_1526:
script_assert(false);
return 0;
case COMMAND_1527:
script_assert(false);
return 0;
case COMMAND_1528:
script_assert(false);
return 0;
case COMMAND_1529:
script_assert(false);
return 0;
case COMMAND_1530:
script_assert(false);
return 0;
case COMMAND_1531:
script_assert(false);
return 0;
case COMMAND_1532:
script_assert(false);
return 0;
case COMMAND_1533:
script_assert(false);
return 0;
case COMMAND_1534:
script_assert(false);
return 0;
case COMMAND_1535:
script_assert(false);
return 0;
case COMMAND_1536:
script_assert(false);
return 0;
case COMMAND_1537:
script_assert(false);
return 0;
case COMMAND_1538:
script_assert(false);
return 0;
case COMMAND_1539:
//TODO (REGISTER_OUTFIT_CHANGE)
return 0;
case COMMAND_1540:
script_assert(false);
return 0;
case COMMAND_1541:
script_assert(false);
return 0;
case COMMAND_1542:
script_assert(false);
return 0;
case COMMAND_1543:
script_assert(false);
return 0;
case COMMAND_1544:
script_assert(false);
return 0;
case COMMAND_1545:
script_assert(false);
return 0;
case COMMAND_1546:
script_assert(false);
return 0;
case COMMAND_1547:
script_assert(false);
return 0;
case COMMAND_1548:
// TODO (GET_ONFOOT_CAMERA_MODE)
ScriptParams[0] = 0;
StoreParameters(&m_nIp, 1);
return 0;
case COMMAND_1549:
CollectParameters(&m_nIp, 1);
// TODO (SET_ONFOOT_CAMERA_MODE?)
return 0;
case COMMAND_1550:
script_assert(false);
return 0;
case COMMAND_1551:
script_assert(false);
return 0;
case COMMAND_1552:
script_assert(false);
return 0;
case COMMAND_1553:
script_assert(false);
return 0;
case COMMAND_1554:
script_assert(false);
return 0;
case COMMAND_1555:
CollectParameters(&m_nIp, 1);
// TODO (FREEZE_ONFOOT_CAMERA_MODE?)
return 0;
case COMMAND_1556:
script_assert(false);
return 0;
case COMMAND_1557:
script_assert(false);
return 0;
case COMMAND_1558:
UpdateCompareFlag(false);
// TODO
return 0;
case COMMAND_1559:
script_assert(false);
return 0;
case COMMAND_1560:
// TODO (IS_E3_BUILD?)
UpdateCompareFlag(false);
return 0;
case COMMAND_1561:
// TODO (check, SET_FS_DESTROYED_FLAG)
CTheScripts::FSDestroyedFlag = GetPointerToScriptVariable(&m_nIp, VAR_GLOBAL) - (int32*)CTheScripts::ScriptSpace;
return 0;
case COMMAND_1562:
script_assert(false);
return 0;
case COMMAND_1563:
script_assert(false);
return 0;
case COMMAND_1564:
script_assert(false);
return 0;
case COMMAND_1565:
script_assert(false);
return 0;
case COMMAND_1566:
script_assert(false);
return 0;
case COMMAND_1567:
CollectParameters(&m_nIp, 1);
// TODO (BUILD_WORLD_GEOMETRY)
return 0;
case COMMAND_1568:
script_assert(false);
return 0;
case COMMAND_1569:
// TODO (IS_MULTIPLAYER_ACTIVE?)
UpdateCompareFlag(false);
return 0;
case COMMAND_1570:
script_assert(false);
return 0;
case COMMAND_1571:
script_assert(false);
return 0;
case COMMAND_1572:
script_assert(false);
return 0;
case COMMAND_1573:
script_assert(false);
return 0;
case COMMAND_1574:
script_assert(false);
return 0;
case COMMAND_1575:
script_assert(false);
return 0;
case COMMAND_1576:
script_assert(false);
return 0;
case COMMAND_1577:
script_assert(false);
return 0;
case COMMAND_1578:
script_assert(false);
return 0;
case COMMAND_1579:
script_assert(false);
return 0;
case COMMAND_1580:
script_assert(false);
return 0;
case COMMAND_1581:
{
// TODO (SET_HELP_MESSAGE?)
wchar* key = CTheScripts::GetTextByKeyFromScript(&m_nIp);
return 0;
}
case COMMAND_1582:
script_assert(false);
return 0;
case COMMAND_1583:
script_assert(false);
return 0;
case COMMAND_1584:
script_assert(false);
return 0;
case COMMAND_1585:
script_assert(false);
return 0;
case COMMAND_1586:
script_assert(false);
return 0;
case COMMAND_1587:
script_assert(false);
return 0;
case COMMAND_1588:
script_assert(false);
return 0;
case COMMAND_1589:
CollectParameters(&m_nIp, 2);
// TODO (SWAP_BUILDING?)
return 0;
case COMMAND_1590:
script_assert(false);
return 0;
case COMMAND_1591:
script_assert(false);
return 0;
case COMMAND_1592:
script_assert(false);
return 0;
case COMMAND_1593:
script_assert(false);
return 0;
case COMMAND_1594:
script_assert(false);
return 0;
case COMMAND_1595:
script_assert(false);
return 0;
case COMMAND_1596:
script_assert(false);
return 0;
case COMMAND_1597:
script_assert(false);
return 0;
case COMMAND_1598:
script_assert(false);
return 0;
case COMMAND_1599:
script_assert(false);
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,26 +1478,26 @@ 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_USING_FIRST_PERSON_WEAPON_CAMERA,
COMMAND_1489,
COMMAND_1490,
COMMAND_1491,
COMMAND_1492,
COMMAND_1493,
COMMAND_1494,
COMMAND_1495,
COMMAND_1496,
COMMAND_SET_DEBUG_MENU_ACTUVE,
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_1497,
COMMAND_1498,
COMMAND_1499,