More fixes

This commit is contained in:
Sergeanur 2020-01-31 19:16:13 +02:00
parent 74e215458b
commit 79d2ab7619
3 changed files with 55 additions and 57 deletions

View File

@ -796,8 +796,8 @@ CCarCtrl::UpdateCarOnRails(CVehicle* pVehicle)
float float
CCarCtrl::FindMaximumSpeedForThisCarInTraffic(CVehicle* pVehicle) CCarCtrl::FindMaximumSpeedForThisCarInTraffic(CVehicle* pVehicle)
{ {
if (pVehicle->AutoPilot.m_nCarMission == MISSION_RAMPLAYER_FARAWAY || if (pVehicle->AutoPilot.m_nDrivingStyle == DRIVINGSTYLE_AVOID_CARS ||
pVehicle->AutoPilot.m_nCarMission == MISSION_RAMPLAYER_CLOSE) pVehicle->AutoPilot.m_nDrivingStyle == DRIVINGSTYLE_PLOUGH_THROUGH)
return pVehicle->AutoPilot.m_nCruiseSpeed; return pVehicle->AutoPilot.m_nCruiseSpeed;
float left = pVehicle->GetPosition().x - DISTANCE_TO_SCAN_FOR_DANGER; float left = pVehicle->GetPosition().x - DISTANCE_TO_SCAN_FOR_DANGER;
float right = pVehicle->GetPosition().x + DISTANCE_TO_SCAN_FOR_DANGER; float right = pVehicle->GetPosition().x + DISTANCE_TO_SCAN_FOR_DANGER;
@ -826,7 +826,7 @@ CCarCtrl::FindMaximumSpeedForThisCarInTraffic(CVehicle* pVehicle)
pVehicle->bWarnedPeds = true; pVehicle->bWarnedPeds = true;
if (pVehicle->AutoPilot.m_nDrivingStyle == DRIVINGSTYLE_STOP_FOR_CARS) if (pVehicle->AutoPilot.m_nDrivingStyle == DRIVINGSTYLE_STOP_FOR_CARS)
return maxSpeed; return maxSpeed;
return (maxSpeed + pVehicle->AutoPilot.m_nDrivingStyle) / 2; return (maxSpeed + pVehicle->AutoPilot.m_nCruiseSpeed) / 2;
} }
void void
@ -873,13 +873,11 @@ CCarCtrl::SlowCarOnRailsDownForTrafficAndLights(CVehicle* pVehicle)
if (maxSpeed >= curSpeed){ if (maxSpeed >= curSpeed){
if (maxSpeed > curSpeed) if (maxSpeed > curSpeed)
pVehicle->AutoPilot.ModifySpeed(min(maxSpeed, curSpeed + 0.05f * CTimer::GetTimeStep())); pVehicle->AutoPilot.ModifySpeed(min(maxSpeed, curSpeed + 0.05f * CTimer::GetTimeStep()));
}else{ }else if (curSpeed != 0.0f) {
if (curSpeed == 0.0f) if (curSpeed < 0.1f)
return;
if (curSpeed >= 0.1f)
pVehicle->AutoPilot.ModifySpeed(max(maxSpeed, curSpeed - 0.5f * CTimer::GetTimeStep()));
else if (curSpeed != 0.0f) /* no need to check */
pVehicle->AutoPilot.ModifySpeed(0.0f); pVehicle->AutoPilot.ModifySpeed(0.0f);
else
pVehicle->AutoPilot.ModifySpeed(max(maxSpeed, curSpeed - 0.5f * CTimer::GetTimeStep()));
} }
} }
#if 0 #if 0

View File

@ -701,33 +701,33 @@ int8 CRunningScript::ProcessOneCommand()
m_bNotFlag = (command & 0x8000); m_bNotFlag = (command & 0x8000);
command &= 0x7FFF; command &= 0x7FFF;
if (command < 100) if (command < 100)
return ProcessCommandsFrom0To99(command); return ProcessCommands0To99(command);
if (command < 200) if (command < 200)
return ProcessCommandsFrom100To199(command); return ProcessCommands100To199(command);
if (command < 300) if (command < 300)
return ProcessCommandsFrom200To299(command); return ProcessCommands200To299(command);
if (command < 400) if (command < 400)
return ProcessCommandsFrom300To399(command); return ProcessCommands300To399(command);
if (command < 500) if (command < 500)
return ProcessCommandsFrom400To499(command); return ProcessCommands400To499(command);
if (command < 600) if (command < 600)
return ProcessCommandsFrom500To599(command); return ProcessCommands500To599(command);
if (command < 700) if (command < 700)
return ProcessCommandsFrom600To699(command); return ProcessCommands600To699(command);
if (command < 800) if (command < 800)
return ProcessCommandsFrom700To799(command); return ProcessCommands700To799(command);
if (command < 900) if (command < 900)
return ProcessCommandsFrom800To899(command); return ProcessCommands800To899(command);
if (command < 1000) if (command < 1000)
return ProcessCommandsFrom900To999(command); return ProcessCommands900To999(command);
if (command < 1100) if (command < 1100)
return ProcessCommandsFrom1000To1099(command); return ProcessCommands1000To1099(command);
if (command < 1200) if (command < 1200)
return ProcessCommandsFrom1100To1199(command); return ProcessCommands1100To1199(command);
return -1; return -1;
} }
int8 CRunningScript::ProcessCommandsFrom0To99(int32 command) int8 CRunningScript::ProcessCommands0To99(int32 command)
{ {
switch (command) { switch (command) {
case COMMAND_NOP: case COMMAND_NOP:
@ -1433,7 +1433,7 @@ void CRunningScript::UpdateCompareFlag(bool flag)
} }
int8 CRunningScript::ProcessCommandsFrom100To199(int32 command) int8 CRunningScript::ProcessCommands100To199(int32 command)
{ {
switch (command) { switch (command) {
case COMMAND_SUB_INT_LVAR_FROM_INT_VAR: case COMMAND_SUB_INT_LVAR_FROM_INT_VAR:
@ -2261,7 +2261,7 @@ int8 CRunningScript::ProcessCommandsFrom100To199(int32 command)
return -1; return -1;
} }
int8 CRunningScript::ProcessCommandsFrom200To299(int32 command) int8 CRunningScript::ProcessCommands200To299(int32 command)
{ {
switch (command) { switch (command) {
/* Special commands. /* Special commands.
@ -2848,9 +2848,9 @@ int8 CRunningScript::ProcessCommandsFrom200To299(int32 command)
} }
#if 0 #if 0
WRAPPER int8 CRunningScript::ProcessCommandsFrom300To399(int32 command) { EAXJMP(0x43ED30); } WRAPPER int8 CRunningScript::ProcessCommand300To399(int32 command) { EAXJMP(0x43ED30); }
#else #else
int8 CRunningScript::ProcessCommandsFrom300To399(int32 command) int8 CRunningScript::ProcessCommands300To399(int32 command)
{ {
switch (command) { switch (command) {
/* Not implemented. /* Not implemented.
@ -3584,9 +3584,9 @@ int8 CRunningScript::ProcessCommandsFrom300To399(int32 command)
#endif #endif
#if 0 #if 0
WRAPPER int8 CRunningScript::ProcessCommandsFrom400To499(int32 command) { EAXJMP(0x440CB0); } WRAPPER int8 CRunningScript::ProcessCommands400To499(int32 command) { EAXJMP(0x440CB0); }
#else #else
int8 CRunningScript::ProcessCommandsFrom400To499(int32 command) int8 CRunningScript::ProcessCommands400To499(int32 command)
{ {
switch (command) { switch (command) {
case COMMAND_ADD_UPSIDEDOWN_CAR_CHECK: case COMMAND_ADD_UPSIDEDOWN_CAR_CHECK:
@ -3760,10 +3760,10 @@ int8 CRunningScript::ProcessCommandsFrom400To499(int32 command)
case COMMAND_SET_CURRENT_PLAYER_WEAPON: case COMMAND_SET_CURRENT_PLAYER_WEAPON:
{ {
CollectParameters(&m_nIp, 2); CollectParameters(&m_nIp, 2);
CPed* pPed = CWorld::Players[ScriptParams[0]].m_pPed; CPlayerPed* pPed = CWorld::Players[ScriptParams[0]].m_pPed;
for (int i = 0; i < WEAPONTYPE_TOTAL_INVENTORY_WEAPONS; i++){ for (int i = 0; i < WEAPONTYPE_TOTAL_INVENTORY_WEAPONS; i++){
if (pPed->m_weapons[i].m_eWeaponType == ScriptParams[1]) if (pPed->m_weapons[i].m_eWeaponType == ScriptParams[1])
pPed->m_currentWeapon = i; pPed->m_nSelectedWepSlot = i;
} }
return 0; return 0;
} }
@ -3773,7 +3773,7 @@ int8 CRunningScript::ProcessCommandsFrom400To499(int32 command)
CPed* pPed = CPools::GetPedPool()->GetAt(ScriptParams[0]); CPed* pPed = CPools::GetPedPool()->GetAt(ScriptParams[0]);
for (int i = 0; i < WEAPONTYPE_TOTAL_INVENTORY_WEAPONS; i++) { for (int i = 0; i < WEAPONTYPE_TOTAL_INVENTORY_WEAPONS; i++) {
if (pPed->m_weapons[i].m_eWeaponType == ScriptParams[1]) if (pPed->m_weapons[i].m_eWeaponType == ScriptParams[1])
pPed->m_currentWeapon = i; pPed->SetCurrentWeapon(i);
} }
return 0; return 0;
} }
@ -4374,9 +4374,9 @@ int8 CRunningScript::ProcessCommandsFrom400To499(int32 command)
#endif #endif
#if 0 #if 0
WRAPPER int8 CRunningScript::ProcessCommandsFrom500To599(int32 command) { EAXJMP(0x4429C0); } WRAPPER int8 CRunningScript::ProcessCommands500To599(int32 command) { EAXJMP(0x4429C0); }
#else #else
int8 CRunningScript::ProcessCommandsFrom500To599(int32 command) int8 CRunningScript::ProcessCommands500To599(int32 command)
{ {
switch (command) { switch (command) {
case COMMAND_IS_CAR_UPSIDEDOWN: case COMMAND_IS_CAR_UPSIDEDOWN:
@ -5205,9 +5205,9 @@ int8 CRunningScript::ProcessCommandsFrom500To599(int32 command)
#endif #endif
#if 0 #if 0
WRAPPER int8 CRunningScript::ProcessCommandsFrom600To699(int32 command) { EAXJMP(0x444B20); } WRAPPER int8 CRunningScript::ProcessCommands600To699(int32 command) { EAXJMP(0x444B20); }
#else #else
int8 CRunningScript::ProcessCommandsFrom600To699(int32 command) int8 CRunningScript::ProcessCommands600To699(int32 command)
{ {
switch (command){ switch (command){
/* Collective commands are not implemented until LCS. /* Collective commands are not implemented until LCS.
@ -5563,9 +5563,9 @@ int8 CRunningScript::ProcessCommandsFrom600To699(int32 command)
#endif #endif
#if 0 #if 0
WRAPPER int8 CRunningScript::ProcessCommandsFrom700To799(int32 command) { EAXJMP(0x4458A0); } WRAPPER int8 CRunningScript::ProcessCommands700To799(int32 command) { EAXJMP(0x4458A0); }
#else #else
int8 CRunningScript::ProcessCommandsFrom700To799(int32 command) int8 CRunningScript::ProcessCommands700To799(int32 command)
{ {
switch (command){ switch (command){
case COMMAND_SET_SWAT_REQUIRED: case COMMAND_SET_SWAT_REQUIRED:
@ -6431,9 +6431,9 @@ int8 CRunningScript::ProcessCommandsFrom700To799(int32 command)
#endif #endif
#if 0 #if 0
WRAPPER int8 CRunningScript::ProcessCommandsFrom800To899(int32 command) { EAXJMP(0x448240); } WRAPPER int8 CRunningScript::ProcessCommands800To899(int32 command) { EAXJMP(0x448240); }
#else #else
int8 CRunningScript::ProcessCommandsFrom800To899(int32 command) int8 CRunningScript::ProcessCommands800To899(int32 command)
{ {
CMatrix tmp_matrix; CMatrix tmp_matrix;
switch (command) { switch (command) {
@ -7517,9 +7517,9 @@ int8 CRunningScript::ProcessCommandsFrom800To899(int32 command)
#endif #endif
#if 1 #if 1
WRAPPER int8 CRunningScript::ProcessCommandsFrom900To999(int32 command) { EAXJMP(0x44CB80); } WRAPPER int8 CRunningScript::ProcessCommands900To999(int32 command) { EAXJMP(0x44CB80); }
#else #else
int8 CRunningScript::ProcessCommandsFrom900To999(int32 command) int8 CRunningScript::ProcessCommands900To999(int32 command)
{ {
switch (command){ switch (command){
case COMMAND_PRINT_STRING_IN_STRING_NOW: case COMMAND_PRINT_STRING_IN_STRING_NOW:
@ -7630,9 +7630,9 @@ int8 CRunningScript::ProcessCommandsFrom900To999(int32 command)
#endif #endif
#if 1 #if 1
WRAPPER int8 CRunningScript::ProcessCommandsFrom1000To1099(int32 command) { EAXJMP(0x588490); } WRAPPER int8 CRunningScript::ProcessCommands1000To1099(int32 command) { EAXJMP(0x588490); }
#else #else
int8 CRunningScript::ProcessCommandsFrom1000To1099(int32 command) int8 CRunningScript::ProcessCommands1000To1099(int32 command)
{ {
switch (command){ switch (command){
case COMMAND_FLASH_RADAR_BLIP: case COMMAND_FLASH_RADAR_BLIP:
@ -7743,9 +7743,9 @@ int8 CRunningScript::ProcessCommandsFrom1000To1099(int32 command)
#endif #endif
#if 1 #if 1
WRAPPER int8 CRunningScript::ProcessCommandsFrom1100To1199(int32 command) { EAXJMP(0x589D00); } WRAPPER int8 CRunningScript::ProcessCommands1100To1199(int32 command) { EAXJMP(0x589D00); }
#else #else
int8 CRunningScript::ProcessCommandsFrom1100To1199(int32 command) int8 CRunningScript::ProcessCommands1100To1199(int32 command)
{ {
switch (command) { switch (command) {
case COMMAND_LOAD_COLLISION_WITH_SCREEN: case COMMAND_LOAD_COLLISION_WITH_SCREEN:

View File

@ -126,18 +126,18 @@ public:
void Process(); void Process();
int8 ProcessOneCommand(); int8 ProcessOneCommand();
void DoDeatharrestCheck(); void DoDeatharrestCheck();
int8 ProcessCommandsFrom0To99(int32); int8 ProcessCommands0To99(int32);
int8 ProcessCommandsFrom100To199(int32); int8 ProcessCommands100To199(int32);
int8 ProcessCommandsFrom200To299(int32); int8 ProcessCommands200To299(int32);
int8 ProcessCommandsFrom300To399(int32); int8 ProcessCommands300To399(int32);
int8 ProcessCommandsFrom400To499(int32); int8 ProcessCommands400To499(int32);
int8 ProcessCommandsFrom500To599(int32); int8 ProcessCommands500To599(int32);
int8 ProcessCommandsFrom600To699(int32); int8 ProcessCommands600To699(int32);
int8 ProcessCommandsFrom700To799(int32); int8 ProcessCommands700To799(int32);
int8 ProcessCommandsFrom800To899(int32); int8 ProcessCommands800To899(int32);
int8 ProcessCommandsFrom900To999(int32); int8 ProcessCommands900To999(int32);
int8 ProcessCommandsFrom1000To1099(int32); int8 ProcessCommands1000To1099(int32);
int8 ProcessCommandsFrom1100To1199(int32); int8 ProcessCommands1100To1199(int32);
void UpdateCompareFlag(bool); void UpdateCompareFlag(bool);
int16 GetPadState(uint16, uint16); int16 GetPadState(uint16, uint16);
void LocatePlayerCommand(int32, uint32*); void LocatePlayerCommand(int32, uint32*);