mirror of
https://github.com/GTAmodding/re3.git
synced 2024-11-15 23:29:02 +00:00
some cosmetic stuff
This commit is contained in:
parent
bc139e0702
commit
aa5266b1b3
2 changed files with 244 additions and 118 deletions
|
@ -75,10 +75,10 @@
|
||||||
#define SPHERE_MARKER_PULSE_FRACTION 0.1f
|
#define SPHERE_MARKER_PULSE_FRACTION 0.1f
|
||||||
|
|
||||||
#ifdef USE_PRECISE_MEASUREMENT_CONVERTION
|
#ifdef USE_PRECISE_MEASUREMENT_CONVERTION
|
||||||
#define METERS_IN_FEET 0.3048f
|
#define METERS_IN_FOOT 0.3048f
|
||||||
#define FEET_IN_METER 3.28084f
|
#define FEET_IN_METER 3.28084f
|
||||||
#else
|
#else
|
||||||
#define METERS_IN_FEET 0.3f
|
#define METERS_IN_FOOT 0.3f
|
||||||
#define FEET_IN_METER 3.33f
|
#define FEET_IN_METER 3.33f
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -510,27 +510,6 @@ int open_script()
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
void CTextLine::Reset()
|
|
||||||
{
|
|
||||||
m_fScaleX = 0.48f;
|
|
||||||
m_fScaleY = 1.12f;
|
|
||||||
m_sColor = CRGBA(225, 225, 225, 255);
|
|
||||||
m_bJustify = false;
|
|
||||||
m_bRightJustify = false;
|
|
||||||
m_bCentered = false;
|
|
||||||
m_bBackground = false;
|
|
||||||
m_bBackgroundOnly = false;
|
|
||||||
m_fWrapX = 182.0f; /* TODO: scaling as bugfix */
|
|
||||||
m_fCenterSize = 640.0f; /* --||-- */
|
|
||||||
m_sBackgroundColor = CRGBA(128, 128, 128, 128);
|
|
||||||
m_bTextProportional = true;
|
|
||||||
m_bTextBeforeFade = false;
|
|
||||||
m_nFont = 2; /* enum? */
|
|
||||||
m_fAtX = 0.0f;
|
|
||||||
m_fAtY = 0.0f;
|
|
||||||
memset(&m_Text, 0, sizeof(m_Text));
|
|
||||||
}
|
|
||||||
|
|
||||||
void CTheScripts::Init()
|
void CTheScripts::Init()
|
||||||
{
|
{
|
||||||
for (int i = 0; i < SIZE_SCRIPT_SPACE; i++)
|
for (int i = 0; i < SIZE_SCRIPT_SPACE; i++)
|
||||||
|
@ -1434,33 +1413,6 @@ int8 CRunningScript::ProcessCommands0To99(int32 command)
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
void CRunningScript::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--;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
int8 CRunningScript::ProcessCommands100To199(int32 command)
|
int8 CRunningScript::ProcessCommands100To199(int32 command)
|
||||||
{
|
{
|
||||||
switch (command) {
|
switch (command) {
|
||||||
|
@ -8831,7 +8783,7 @@ int8 CRunningScript::ProcessCommands1000To1099(int32 command)
|
||||||
{
|
{
|
||||||
CollectParameters(&m_nIp, 1);
|
CollectParameters(&m_nIp, 1);
|
||||||
float fMeterValue = *(float*)&ScriptParams[0];
|
float fMeterValue = *(float*)&ScriptParams[0];
|
||||||
float fFeetValue = fMeterValue / METERS_IN_FEET;
|
float fFeetValue = fMeterValue / METERS_IN_FOOT;
|
||||||
*(float*)&ScriptParams[0] = fFeetValue;
|
*(float*)&ScriptParams[0] = fFeetValue;
|
||||||
StoreParameters(&m_nIp, 1);
|
StoreParameters(&m_nIp, 1);
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -9716,33 +9668,13 @@ int8 CRunningScript::ProcessCommands1100To1199(int32 command)
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
int16 CRunningScript::GetPadState(uint16 pad, uint16 button)
|
int32 CTheScripts::GetNewUniqueScriptSphereIndex(int32 index)
|
||||||
{
|
{
|
||||||
CPad* pPad = CPad::GetPad(pad);
|
if (ScriptSphereArray[index].m_Index >= 0xFFFE)
|
||||||
switch (button){
|
ScriptSphereArray[index].m_Index = 1;
|
||||||
case 0: return pPad->NewState.LeftStickX;
|
else
|
||||||
case 1: return pPad->NewState.LeftStickY;
|
ScriptSphereArray[index].m_Index++;
|
||||||
case 2: return pPad->NewState.RightStickX;
|
return (uint16)index | ScriptSphereArray[index].m_Index << 16;
|
||||||
case 3: return pPad->NewState.RightStickY;
|
|
||||||
case 4: return pPad->NewState.LeftShoulder1;
|
|
||||||
case 5: return pPad->NewState.LeftShoulder2;
|
|
||||||
case 6: return pPad->NewState.RightShoulder1;
|
|
||||||
case 7: return pPad->NewState.RightShoulder2;
|
|
||||||
case 8: return pPad->NewState.DPadUp;
|
|
||||||
case 9: return pPad->NewState.DPadDown;
|
|
||||||
case 10: return pPad->NewState.DPadLeft;
|
|
||||||
case 11: return pPad->NewState.DPadRight;
|
|
||||||
case 12: return pPad->NewState.Start;
|
|
||||||
case 13: return pPad->NewState.Select;
|
|
||||||
case 14: return pPad->NewState.Square;
|
|
||||||
case 15: return pPad->NewState.Triangle;
|
|
||||||
case 16: return pPad->NewState.Cross;
|
|
||||||
case 17: return pPad->NewState.Circle;
|
|
||||||
case 18: return pPad->NewState.LeftShock;
|
|
||||||
case 19: return pPad->NewState.RightShock;
|
|
||||||
default: break;
|
|
||||||
}
|
|
||||||
return 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
int32 CTheScripts::GetActualScriptSphereIndex(int32 index)
|
int32 CTheScripts::GetActualScriptSphereIndex(int32 index)
|
||||||
|
@ -9757,6 +9689,15 @@ int32 CTheScripts::GetActualScriptSphereIndex(int32 index)
|
||||||
return array_idx;
|
return array_idx;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void CTheScripts::DrawScriptSpheres()
|
||||||
|
{
|
||||||
|
for (int i = 0; i < MAX_NUM_SCRIPT_SPHERES; i++) {
|
||||||
|
if (ScriptSphereArray[i].m_bInUse)
|
||||||
|
C3dMarkers::PlaceMarkerSet(ScriptSphereArray[i].m_Id, 4, ScriptSphereArray[i].m_vecCenter, ScriptSphereArray[i].m_fRadius,
|
||||||
|
SPHERE_MARKER_R, SPHERE_MARKER_G, SPHERE_MARKER_B, SPHERE_MARKER_A, SPHERE_MARKER_PULSE_PERIOD, SPHERE_MARKER_PULSE_FRACTION, 0);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
int32 CTheScripts::AddScriptSphere(int32 id, CVector pos, float radius)
|
int32 CTheScripts::AddScriptSphere(int32 id, CVector pos, float radius)
|
||||||
{
|
{
|
||||||
int16 i = 0;
|
int16 i = 0;
|
||||||
|
@ -9775,15 +9716,6 @@ int32 CTheScripts::AddScriptSphere(int32 id, CVector pos, float radius)
|
||||||
return GetNewUniqueScriptSphereIndex(i);
|
return GetNewUniqueScriptSphereIndex(i);
|
||||||
}
|
}
|
||||||
|
|
||||||
int32 CTheScripts::GetNewUniqueScriptSphereIndex(int32 index)
|
|
||||||
{
|
|
||||||
if (ScriptSphereArray[index].m_Index >= 0xFFFE)
|
|
||||||
ScriptSphereArray[index].m_Index = 1;
|
|
||||||
else
|
|
||||||
ScriptSphereArray[index].m_Index++;
|
|
||||||
return (uint16)index | ScriptSphereArray[index].m_Index << 16;
|
|
||||||
}
|
|
||||||
|
|
||||||
void CTheScripts::RemoveScriptSphere(int32 index)
|
void CTheScripts::RemoveScriptSphere(int32 index)
|
||||||
{
|
{
|
||||||
index = GetActualScriptSphereIndex(index);
|
index = GetActualScriptSphereIndex(index);
|
||||||
|
@ -9793,9 +9725,39 @@ void CTheScripts::RemoveScriptSphere(int32 index)
|
||||||
ScriptSphereArray[index].m_Id = 0;
|
ScriptSphereArray[index].m_Id = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool CTheScripts::IsVehicleStopped(CVehicle* pVehicle)
|
void CTheScripts::AddToBuildingSwapArray(CBuilding* pBuilding, int32 old_model, int32 new_model)
|
||||||
{
|
{
|
||||||
return 0.01f * CTimer::GetTimeStep() >= pVehicle->m_fDistanceTravelled;
|
int i = 0;
|
||||||
|
bool found = false;
|
||||||
|
while (i < MAX_NUM_BUILDING_SWAPS && !found) {
|
||||||
|
if (BuildingSwapArray[i].m_pBuilding == pBuilding)
|
||||||
|
found = true;
|
||||||
|
else
|
||||||
|
i++;
|
||||||
|
}
|
||||||
|
if (found) {
|
||||||
|
if (BuildingSwapArray[i].m_nOldModel == new_model) {
|
||||||
|
BuildingSwapArray[i].m_pBuilding = nil;
|
||||||
|
BuildingSwapArray[i].m_nOldModel = BuildingSwapArray[i].m_nNewModel = -1;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
BuildingSwapArray[i].m_nNewModel = new_model;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
i = 0;
|
||||||
|
while (i < MAX_NUM_BUILDING_SWAPS && !found) {
|
||||||
|
if (BuildingSwapArray[i].m_pBuilding == nil)
|
||||||
|
found = true;
|
||||||
|
else
|
||||||
|
i++;
|
||||||
|
}
|
||||||
|
if (found) {
|
||||||
|
BuildingSwapArray[i].m_pBuilding = pBuilding;
|
||||||
|
BuildingSwapArray[i].m_nNewModel = new_model;
|
||||||
|
BuildingSwapArray[i].m_nOldModel = old_model;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void CTheScripts::AddToInvisibilitySwapArray(CEntity* pEntity, bool remove)
|
void CTheScripts::AddToInvisibilitySwapArray(CEntity* pEntity, bool remove)
|
||||||
|
@ -9825,41 +9787,138 @@ void CTheScripts::AddToInvisibilitySwapArray(CEntity* pEntity, bool remove)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void CTheScripts::AddToBuildingSwapArray(CBuilding* pBuilding, int32 old_model, int32 new_model)
|
WRAPPER void CTheScripts::UndoBuildingSwaps() { EAXJMP(0x44FD10); }
|
||||||
|
WRAPPER void CTheScripts::UndoEntityVisibilitySettings() { EAXJMP(0x44FD60); }
|
||||||
|
|
||||||
|
void CRunningScript::UpdateCompareFlag(bool flag)
|
||||||
{
|
{
|
||||||
int i = 0;
|
if (m_bNotFlag)
|
||||||
bool found = false;
|
flag = !flag;
|
||||||
while (i < MAX_NUM_BUILDING_SWAPS && !found) {
|
if (m_nAndOrState == ANDOR_NONE) {
|
||||||
if (BuildingSwapArray[i].m_pBuilding == pBuilding)
|
m_bCondResult = flag;
|
||||||
found = true;
|
return;
|
||||||
else
|
|
||||||
i++;
|
|
||||||
}
|
}
|
||||||
if (found) {
|
if (m_nAndOrState >= ANDS_1 && m_nAndOrState <= ANDS_8) {
|
||||||
if (BuildingSwapArray[i].m_nOldModel == new_model) {
|
m_bCondResult &= flag;
|
||||||
BuildingSwapArray[i].m_pBuilding = nil;
|
if (m_nAndOrState == ANDS_1) {
|
||||||
BuildingSwapArray[i].m_nOldModel = BuildingSwapArray[i].m_nNewModel = -1;
|
m_nAndOrState = ANDOR_NONE;
|
||||||
}else{
|
return;
|
||||||
BuildingSwapArray[i].m_nNewModel = new_model;
|
}
|
||||||
|
}
|
||||||
|
else if (m_nAndOrState >= ORS_1 && m_nAndOrState <= ORS_8) {
|
||||||
|
m_bCondResult |= flag;
|
||||||
|
if (m_nAndOrState == ORS_1) {
|
||||||
|
m_nAndOrState = ANDOR_NONE;
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
i = 0;
|
return;
|
||||||
while (i < MAX_NUM_BUILDING_SWAPS && !found) {
|
}
|
||||||
if (BuildingSwapArray[i].m_pBuilding == nil)
|
m_nAndOrState--;
|
||||||
found = true;
|
}
|
||||||
|
|
||||||
|
void CRunningScript::LocatePlayerCommand(int32 command, uint32* pIp)
|
||||||
|
{
|
||||||
|
bool b3D, result, debug, decided = false;
|
||||||
|
float X, Y, Z, dX, dY, dZ;
|
||||||
|
switch (command) {
|
||||||
|
case COMMAND_LOCATE_PLAYER_ANY_MEANS_3D:
|
||||||
|
case COMMAND_LOCATE_PLAYER_ON_FOOT_3D:
|
||||||
|
case COMMAND_LOCATE_PLAYER_IN_CAR_3D:
|
||||||
|
case COMMAND_LOCATE_STOPPED_PLAYER_ANY_MEANS_3D:
|
||||||
|
case COMMAND_LOCATE_STOPPED_PLAYER_ON_FOOT_3D:
|
||||||
|
case COMMAND_LOCATE_STOPPED_PLAYER_IN_CAR_3D:
|
||||||
|
b3D = true;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
b3D = false;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
CollectParameters(pIp, b3D ? 8 : 6);
|
||||||
|
CPlayerInfo* pPlayerInfo = &CWorld::Players[ScriptParams[0]];
|
||||||
|
switch (command) {
|
||||||
|
case COMMAND_LOCATE_STOPPED_PLAYER_ANY_MEANS_2D:
|
||||||
|
case COMMAND_LOCATE_STOPPED_PLAYER_ANY_MEANS_3D:
|
||||||
|
case COMMAND_LOCATE_STOPPED_PLAYER_IN_CAR_2D:
|
||||||
|
case COMMAND_LOCATE_STOPPED_PLAYER_IN_CAR_3D:
|
||||||
|
case COMMAND_LOCATE_STOPPED_PLAYER_ON_FOOT_2D:
|
||||||
|
case COMMAND_LOCATE_STOPPED_PLAYER_ON_FOOT_3D:
|
||||||
|
if (!CTheScripts::IsPlayerStopped(pPlayerInfo)) {
|
||||||
|
result = false;
|
||||||
|
decided = true;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
X = *(float*)&ScriptParams[1];
|
||||||
|
Y = *(float*)&ScriptParams[2];
|
||||||
|
if (b3D) {
|
||||||
|
Z = *(float*)&ScriptParams[3];
|
||||||
|
dX = *(float*)&ScriptParams[4];
|
||||||
|
dY = *(float*)&ScriptParams[5];
|
||||||
|
dZ = *(float*)&ScriptParams[6];
|
||||||
|
debug = ScriptParams[7];
|
||||||
|
} else {
|
||||||
|
dX = *(float*)&ScriptParams[3];
|
||||||
|
dY = *(float*)&ScriptParams[4];
|
||||||
|
debug = ScriptParams[5];
|
||||||
|
}
|
||||||
|
if (!decided) {
|
||||||
|
CVector pos = pPlayerInfo->GetPos();
|
||||||
|
result = false;
|
||||||
|
bool in_area;
|
||||||
|
if (b3D) {
|
||||||
|
in_area = X - dX <= pos.x &&
|
||||||
|
X + dX >= pos.x &&
|
||||||
|
Y - dY <= pos.y &&
|
||||||
|
Y + dY >= pos.y &&
|
||||||
|
Z - dZ <= pos.z &&
|
||||||
|
Z + dZ >= pos.z;
|
||||||
|
} else {
|
||||||
|
in_area = X - dX <= pos.x &&
|
||||||
|
X + dX >= pos.x &&
|
||||||
|
Y - dY <= pos.y &&
|
||||||
|
Y + dY >= pos.y;
|
||||||
|
}
|
||||||
|
if (in_area) {
|
||||||
|
switch (command) {
|
||||||
|
case COMMAND_LOCATE_PLAYER_ANY_MEANS_2D:
|
||||||
|
case COMMAND_LOCATE_PLAYER_ANY_MEANS_3D:
|
||||||
|
case COMMAND_LOCATE_STOPPED_PLAYER_ANY_MEANS_2D:
|
||||||
|
case COMMAND_LOCATE_STOPPED_PLAYER_ANY_MEANS_3D:
|
||||||
|
result = true;
|
||||||
|
break;
|
||||||
|
case COMMAND_LOCATE_PLAYER_ON_FOOT_2D:
|
||||||
|
case COMMAND_LOCATE_PLAYER_ON_FOOT_3D:
|
||||||
|
case COMMAND_LOCATE_STOPPED_PLAYER_ON_FOOT_2D:
|
||||||
|
case COMMAND_LOCATE_STOPPED_PLAYER_ON_FOOT_3D:
|
||||||
|
result = !pPlayerInfo->m_pPed->bInVehicle;
|
||||||
|
break;
|
||||||
|
case COMMAND_LOCATE_PLAYER_IN_CAR_2D:
|
||||||
|
case COMMAND_LOCATE_PLAYER_IN_CAR_3D:
|
||||||
|
case COMMAND_LOCATE_STOPPED_PLAYER_IN_CAR_2D:
|
||||||
|
case COMMAND_LOCATE_STOPPED_PLAYER_IN_CAR_3D:
|
||||||
|
result = pPlayerInfo->m_pPed->bInVehicle;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
assert(false);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
UpdateCompareFlag(result);
|
||||||
|
if (debug)
|
||||||
|
CTheScripts::HighlightImportantArea((uint32)this + m_nIp, X - dX, Y - dY, X + dX, Y + dY, b3D ? Z : -100.0f);
|
||||||
|
if (CTheScripts::DbgFlag) {
|
||||||
|
if (b3D)
|
||||||
|
CTheScripts::DrawDebugCube(X - dX, Y - dY, Z - dZ, X + dX, Y + dY, Z + dZ);
|
||||||
else
|
else
|
||||||
i++;
|
CTheScripts::DrawDebugSquare(X - dX, Y - dY, X + dX, Y + dY);
|
||||||
}
|
|
||||||
if (found) {
|
|
||||||
BuildingSwapArray[i].m_pBuilding = pBuilding;
|
|
||||||
BuildingSwapArray[i].m_nNewModel = new_model;
|
|
||||||
BuildingSwapArray[i].m_nOldModel = old_model;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
WRAPPER void CRunningScript::LocatePlayerCommand(int32, uint32*) { EAXJMP(0x44FE10); }
|
|
||||||
WRAPPER void CRunningScript::LocatePlayerCharCommand(int32, uint32*) { EAXJMP(0x4501E0); }
|
WRAPPER void CRunningScript::LocatePlayerCharCommand(int32, uint32*) { EAXJMP(0x4501E0); }
|
||||||
WRAPPER void CRunningScript::LocatePlayerCarCommand(int32, uint32*) { EAXJMP(0x450540); }
|
WRAPPER void CRunningScript::LocatePlayerCarCommand(int32, uint32*) { EAXJMP(0x450540); }
|
||||||
WRAPPER void CRunningScript::LocateCharCommand(int32, uint32*) { EAXJMP(0x450870); }
|
WRAPPER void CRunningScript::LocateCharCommand(int32, uint32*) { EAXJMP(0x450870); }
|
||||||
|
@ -9872,22 +9931,62 @@ WRAPPER void CRunningScript::PlayerInAreaCheckCommand(int32, uint32*) { EAXJMP(0
|
||||||
WRAPPER void CRunningScript::PlayerInAngledAreaCheckCommand(int32, uint32*) { EAXJMP(0x451E50); }
|
WRAPPER void CRunningScript::PlayerInAngledAreaCheckCommand(int32, uint32*) { EAXJMP(0x451E50); }
|
||||||
WRAPPER void CRunningScript::CharInAreaCheckCommand(int32, uint32*) { EAXJMP(0x4523B0); }
|
WRAPPER void CRunningScript::CharInAreaCheckCommand(int32, uint32*) { EAXJMP(0x4523B0); }
|
||||||
WRAPPER void CRunningScript::CarInAreaCheckCommand(int32, uint32*) { EAXJMP(0x452750); }
|
WRAPPER void CRunningScript::CarInAreaCheckCommand(int32, uint32*) { EAXJMP(0x452750); }
|
||||||
|
|
||||||
WRAPPER void CTheScripts::DrawScriptSpheres() { EAXJMP(0x44FAC0); }
|
|
||||||
WRAPPER void CRunningScript::DoDeatharrestCheck() { EAXJMP(0x452A30); }
|
WRAPPER void CRunningScript::DoDeatharrestCheck() { EAXJMP(0x452A30); }
|
||||||
|
|
||||||
|
int16 CRunningScript::GetPadState(uint16 pad, uint16 button)
|
||||||
|
{
|
||||||
|
CPad* pPad = CPad::GetPad(pad);
|
||||||
|
switch (button) {
|
||||||
|
case 0: return pPad->NewState.LeftStickX;
|
||||||
|
case 1: return pPad->NewState.LeftStickY;
|
||||||
|
case 2: return pPad->NewState.RightStickX;
|
||||||
|
case 3: return pPad->NewState.RightStickY;
|
||||||
|
case 4: return pPad->NewState.LeftShoulder1;
|
||||||
|
case 5: return pPad->NewState.LeftShoulder2;
|
||||||
|
case 6: return pPad->NewState.RightShoulder1;
|
||||||
|
case 7: return pPad->NewState.RightShoulder2;
|
||||||
|
case 8: return pPad->NewState.DPadUp;
|
||||||
|
case 9: return pPad->NewState.DPadDown;
|
||||||
|
case 10: return pPad->NewState.DPadLeft;
|
||||||
|
case 11: return pPad->NewState.DPadRight;
|
||||||
|
case 12: return pPad->NewState.Start;
|
||||||
|
case 13: return pPad->NewState.Select;
|
||||||
|
case 14: return pPad->NewState.Square;
|
||||||
|
case 15: return pPad->NewState.Triangle;
|
||||||
|
case 16: return pPad->NewState.Cross;
|
||||||
|
case 17: return pPad->NewState.Circle;
|
||||||
|
case 18: return pPad->NewState.LeftShock;
|
||||||
|
case 19: return pPad->NewState.RightShock;
|
||||||
|
default: break;
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
WRAPPER void CTheScripts::DrawDebugSquare(float, float, float, float) { EAXJMP(0x452D00); }
|
WRAPPER void CTheScripts::DrawDebugSquare(float, float, float, float) { EAXJMP(0x452D00); }
|
||||||
|
WRAPPER void CTheScripts::DrawDebugAngledSquare(float, float, float, float, float, float, float, float) { EAXJMP(0x452F00); }
|
||||||
WRAPPER void CTheScripts::DrawDebugCube(float, float, float, float, float, float) { EAXJMP(0x453100); }
|
WRAPPER void CTheScripts::DrawDebugCube(float, float, float, float, float, float) { EAXJMP(0x453100); }
|
||||||
|
WRAPPER void CTheScripts::DrawDebugAngledCube(float, float, float, float, float, float, float, float, float, float) { EAXJMP(0x4532F0); }
|
||||||
WRAPPER void CTheScripts::ScriptDebugLine3D(float x1, float y1, float z1, float x2, float y2, float z2, int col, int col2) { EAXJMP(0x4534E0); }
|
WRAPPER void CTheScripts::ScriptDebugLine3D(float x1, float y1, float z1, float x2, float y2, float z2, int col, int col2) { EAXJMP(0x4534E0); }
|
||||||
|
WRAPPER void CTheScripts::RenderTheScriptDebugLines() { EAXJMP(0x453550); }
|
||||||
|
WRAPPER void CTheScripts::SaveAllScripts(uint8*, uint32*) { EAXJMP(0x4535E0); }
|
||||||
|
WRAPPER void CTheScripts::LoadAllScripts(uint8*, uint32) { EAXJMP(0x453B30); }
|
||||||
WRAPPER void CTheScripts::ClearSpaceForMissionEntity(const CVector&, CEntity*) { EAXJMP(0x454060); }
|
WRAPPER void CTheScripts::ClearSpaceForMissionEntity(const CVector&, CEntity*) { EAXJMP(0x454060); }
|
||||||
WRAPPER void CTheScripts::HighlightImportantArea(uint32, float, float, float, float, float) { EAXJMP(0x454320); }
|
WRAPPER void CTheScripts::HighlightImportantArea(uint32, float, float, float, float, float) { EAXJMP(0x454320); }
|
||||||
|
WRAPPER void CTheScripts::HighlightImportantAngledArea(uint32, float, float, float, float, float, float, float, float, float) { EAXJMP(0x454430); }
|
||||||
|
WRAPPER bool CTheScripts::IsPedStopped(CPed*) { EAXJMP(0x454670); }
|
||||||
|
WRAPPER bool CTheScripts::IsPlayerStopped(CPlayerInfo*) { EAXJMP(0x4546C0); }
|
||||||
|
|
||||||
|
bool CTheScripts::IsVehicleStopped(CVehicle* pVehicle)
|
||||||
|
{
|
||||||
|
return 0.01f * CTimer::GetTimeStep() >= pVehicle->m_fDistanceTravelled;
|
||||||
|
}
|
||||||
|
|
||||||
WRAPPER void CTheScripts::CleanUpThisVehicle(CVehicle*) { EAXJMP(0x4548D0); }
|
WRAPPER void CTheScripts::CleanUpThisVehicle(CVehicle*) { EAXJMP(0x4548D0); }
|
||||||
WRAPPER void CTheScripts::CleanUpThisPed(CPed*) { EAXJMP(0x4547A0); }
|
WRAPPER void CTheScripts::CleanUpThisPed(CPed*) { EAXJMP(0x4547A0); }
|
||||||
WRAPPER void CTheScripts::CleanUpThisObject(CObject*) { EAXJMP(0x454910); }
|
WRAPPER void CTheScripts::CleanUpThisObject(CObject*) { EAXJMP(0x454910); }
|
||||||
WRAPPER void CTheScripts::ReadObjectNamesFromScript() { EAXJMP(0x454960); }
|
WRAPPER void CTheScripts::ReadObjectNamesFromScript() { EAXJMP(0x454960); }
|
||||||
WRAPPER void CTheScripts::UpdateObjectIndices() { EAXJMP(0x454AD0); }
|
WRAPPER void CTheScripts::UpdateObjectIndices() { EAXJMP(0x454AD0); }
|
||||||
WRAPPER void CTheScripts::ReadMultiScriptFileOffsetsFromScript() { EAXJMP(0x454BC0); }
|
WRAPPER void CTheScripts::ReadMultiScriptFileOffsetsFromScript() { EAXJMP(0x454BC0); }
|
||||||
WRAPPER bool CTheScripts::IsPedStopped(CPed*) { EAXJMP(0x454670); }
|
|
||||||
WRAPPER bool CTheScripts::IsPlayerStopped(CPlayerInfo*) { EAXJMP(0x4546C0); }
|
|
||||||
|
|
||||||
STARTPATCHES
|
STARTPATCHES
|
||||||
InjectHook(0x437AE0, &CMissionCleanup::Init, PATCH_JUMP);
|
InjectHook(0x437AE0, &CMissionCleanup::Init, PATCH_JUMP);
|
||||||
|
|
|
@ -48,7 +48,26 @@ struct CTextLine
|
||||||
float m_fAtY;
|
float m_fAtY;
|
||||||
wchar m_Text[SCRIPT_TEXT_MAX_LENGTH];
|
wchar m_Text[SCRIPT_TEXT_MAX_LENGTH];
|
||||||
|
|
||||||
void Reset();
|
void Reset()
|
||||||
|
{
|
||||||
|
m_fScaleX = 0.48f;
|
||||||
|
m_fScaleY = 1.12f;
|
||||||
|
m_sColor = CRGBA(225, 225, 225, 255);
|
||||||
|
m_bJustify = false;
|
||||||
|
m_bRightJustify = false;
|
||||||
|
m_bCentered = false;
|
||||||
|
m_bBackground = false;
|
||||||
|
m_bBackgroundOnly = false;
|
||||||
|
m_fWrapX = 182.0f; /* TODO: scaling as bugfix */
|
||||||
|
m_fCenterSize = 640.0f; /* --||-- */
|
||||||
|
m_sBackgroundColor = CRGBA(128, 128, 128, 128);
|
||||||
|
m_bTextProportional = true;
|
||||||
|
m_bTextBeforeFade = false;
|
||||||
|
m_nFont = 2; /* enum? */
|
||||||
|
m_fAtX = 0.0f;
|
||||||
|
m_fAtY = 0.0f;
|
||||||
|
memset(&m_Text, 0, sizeof(m_Text));
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
static_assert(sizeof(CTextLine) == 0x414, "Script.h: error");
|
static_assert(sizeof(CTextLine) == 0x414, "Script.h: error");
|
||||||
|
@ -378,10 +397,18 @@ public:
|
||||||
static void DrawScriptSpheres();
|
static void DrawScriptSpheres();
|
||||||
static void ClearSpaceForMissionEntity(const CVector&, CEntity*);
|
static void ClearSpaceForMissionEntity(const CVector&, CEntity*);
|
||||||
static void HighlightImportantArea(uint32, float, float, float, float, float);
|
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 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 DrawDebugCube(float, float, float, float, float, float);
|
||||||
|
static void DrawDebugAngledCube(float, float, float, float, float, float, float, float, float, float);
|
||||||
|
static void RenderTheScriptDebugLines();
|
||||||
|
static void SaveAllScripts(uint8*, uint32*);
|
||||||
|
static void LoadAllScripts(uint8*, uint32);
|
||||||
static void AddToInvisibilitySwapArray(CEntity*, bool);
|
static void AddToInvisibilitySwapArray(CEntity*, bool);
|
||||||
static void AddToBuildingSwapArray(CBuilding*, int32, int32);
|
static void AddToBuildingSwapArray(CBuilding*, int32, int32);
|
||||||
|
static void UndoBuildingSwaps();
|
||||||
|
static void UndoEntityVisibilitySettings();
|
||||||
|
|
||||||
static int32 GetActualScriptSphereIndex(int32 index);
|
static int32 GetActualScriptSphereIndex(int32 index);
|
||||||
static int32 AddScriptSphere(int32 id, CVector pos, float radius);
|
static int32 AddScriptSphere(int32 id, CVector pos, float radius);
|
||||||
|
|
Loading…
Reference in a new issue