merge upstream

This commit is contained in:
Roman Masanin 2020-11-08 16:23:05 +03:00
commit 23d23f6462
20 changed files with 3298 additions and 406 deletions

View File

@ -122,9 +122,11 @@ workspace "reVC"
filter { "platforms:*x86*" }
architecture "x86"
floatingpoint "Fast"
filter { "platforms:*amd64*" }
architecture "amd64"
floatingpoint "Fast"
filter { "platforms:*arm*" }
architecture "ARM"
@ -185,6 +187,18 @@ project "librw"
files { path.join(Librw, "src/*.*") }
files { path.join(Librw, "src/*/*.*") }
filter { "platforms:*x86*" }
architecture "x86"
floatingpoint "Fast"
filter { "platforms:*amd64*" }
architecture "amd64"
floatingpoint "Fast"
filter "platforms:win*"
staticruntime "on"
buildoptions { "/Zc:sizedDealloc-" }
filter "platforms:bsd*"
includedirs { "/usr/local/include" }
libdirs { "/usr/local/lib" }
@ -196,6 +210,9 @@ project "librw"
libdirs { "/opt/local/lib" }
libdirs { "/usr/local/lib" }
filter "platforms:*gl3_glfw*"
staticruntime "off"
filter "platforms:*RW34*"
flags { "ExcludeFromBuild" }
filter {}
@ -286,9 +303,14 @@ project "reVC"
filter "platforms:win*"
files { addSrcFiles("src/skel/win") }
includedirs { "src/skel/win" }
buildoptions { "/Zc:sizedDealloc-" }
linkoptions "/SAFESEH:NO"
characterset ("MBCS")
targetextension ".exe"
staticruntime "on"
filter "platforms:win*glfw*"
staticruntime "off"
filter "platforms:win*oal"
includedirs { "vendor/openal-soft/include" }
@ -324,7 +346,6 @@ project "reVC"
end
filter "platforms:*RW34*"
staticruntime "on"
includedirs { "sdk/rwsdk/include/d3d8" }
libdirs { "sdk/rwsdk/lib/d3d8/release" }
links { "rwcore", "rpworld", "rpmatfx", "rpskin", "rphanim", "rtbmp", "rtquat", "rtanim", "rtcharse", "rpanisot" }

File diff suppressed because it is too large Load Diff

View File

@ -1,4 +1,4 @@
#pragma once
#pragma once
#include "audio_enums.h"
#include "AudioCollision.h"
@ -60,7 +60,7 @@ VALIDATE_SIZE(tAudioEntity, 40);
class tPedComment
{
public:
int32 m_nSampleIndex;
uint32 m_nSampleIndex;
int32 m_nEntityIndex;
CVector m_vecPos;
float m_fDistance;
@ -77,8 +77,10 @@ public:
uint8 m_nIndexMap[NUM_PED_COMMENTS_BANKS][NUM_PED_COMMENTS_SLOTS];
uint8 m_nCommentsInBank[NUM_PED_COMMENTS_BANKS];
uint8 m_nActiveBank;
#ifdef GTA_PC
bool m_bDelay;
uint32 m_nDelayTimer;
#endif
cPedComments()
{
@ -92,8 +94,8 @@ public:
m_nCommentsInBank[i] = 0;
m_nActiveBank = 0;
}
void Add(tPedComment *com);
void Process();
void Add(tPedComment *com); // done
void Process(); // done
};
VALIDATE_SIZE(cPedComments, 0x490);
@ -201,7 +203,7 @@ public:
uint8 m_nPlayerMood;
uint32 m_nPlayerMoodTimer;
uint8 field_rest[4];
uint8 field_4B3C;
bool m_bGenericSfx;
cPedComments m_sPedComments;
int32 m_nFireAudioEntity;
@ -260,7 +262,101 @@ public:
// functions returning talk sfx,
// order from GetPedCommentSfx
// TODO: miami
uint32 GetPlayerTalkSfx(CPed *ped, int16 sound);
uint32 GetCopTalkSfx(CPed *ped, int16 sound);
uint32 GetSwatTalkSfx(CPed *ped, int16 sound);
uint32 GetFBITalkSfx(CPed *ped, int16 sound);
uint32 GetArmyTalkSfx(CPed *ped, int16 sound);
uint32 GetMedicTalkSfx(CPed *ped, int16 sound);
uint32 GetFiremanTalkSfx(CPed *ped, int16 sound);
uint32 GetDefaultTalkSfx(CPed *ped, int16 sound);
uint32 GetHFYSTTalkSfx(CPed *ped, int16 sound);
uint32 GetHFOSTTalkSfx(CPed *ped, int16 sound);
uint32 GetHMYSTTalkSfx(CPed *ped, int16 sound);
uint32 GetHMOSTTalkSfx(CPed *ped, int16 sound);
uint32 GetHFYRITalkSfx(CPed *ped, int16 sound);
uint32 GetHFORITalkSfx(CPed *ped, int16 sound);
uint32 GetHMYRITalkSfx(CPed *ped, int16 sound);
uint32 GetHMORITalkSfx(CPed *ped, int16 sound);
uint32 GetHFYBETalkSfx(CPed *ped, int16 sound);
uint32 GetHFOBETalkSfx(CPed *ped, int16 sound);
uint32 GetHMYBETalkSfx(CPed *ped, int16 sound);
uint32 GetHMOBETalkSfx(CPed *ped, int16 sound);
uint32 GetHFYBUTalkSfx(CPed *ped, int16 sound);
uint32 GetHFYMDTalkSfx(CPed *ped, int16 sound);
uint32 GetHFYCGTalkSfx(CPed *ped, int16 sound);
uint32 GetHFYPRTalkSfx(CPed *ped, int16 sound);
uint32 GetHFOTRTalkSfx(CPed *ped, int16 sound);
uint32 GetHMOTRTalkSfx(CPed *ped, int16 sound);
uint32 GetHMYAPTalkSfx(CPed *ped, int16 sound);
uint32 GetHMOCATalkSfx(CPed *ped, int16 sound);
uint32 GetBMODKTalkSfx(CPed *ped, int16 sound);
uint32 GetBMYCRTalkSfx(CPed *ped, int16 sound);
uint32 GetBFYSTTalkSfx(CPed *ped, int16 sound);
uint32 GetBFOSTTalkSfx(CPed *ped, int16 sound);
uint32 GetBMYSTTalkSfx(CPed *ped, int16 sound);
uint32 GetBMOSTTalkSfx(CPed *ped, int16 sound);
uint32 GetBFYRITalkSfx(CPed *ped, int16 sound);
uint32 GetBFORITalkSfx(CPed *ped, int16 sound);
uint32 GetBMYRITalkSfx(CPed *ped, int16 sound);
uint32 GetBFYBETalkSfx(CPed *ped, int16 sound);
uint32 GetBMYBETalkSfx(CPed *ped, int16 sound);
uint32 GetBFOBETalkSfx(CPed *ped, int16 sound);
uint32 GetBMOBETalkSfx(CPed *ped, int16 sound);
uint32 GetBMYBUTalkSfx(CPed *ped, int16 sound);
uint32 GetBFYPRTalkSfx(CPed *ped, int16 sound);
uint32 GetBFOTRTalkSfx(CPed *ped, int16 sound);
uint32 GetBMOTRTalkSfx(CPed *ped, int16 sound);
uint32 GetBMYPITalkSfx(CPed *ped, int16 sound);
uint32 GetBMYBBTalkSfx(CPed *ped, int16 sound);
uint32 GetWMYCRTalkSfx(CPed *ped, int16 sound);
uint32 GetWFYSTTalkSfx(CPed *ped, int16 sound);
uint32 GetWFOSTTalkSfx(CPed *ped, int16 sound);
uint32 GetWMYSTTalkSfx(CPed *ped, int16 sound);
uint32 GetWMOSTTalkSfx(CPed *ped, int16 sound);
uint32 GetWFYRITalkSfx(CPed *ped, int16 sound);
uint32 GetWFORITalkSfx(CPed *ped, int16 sound);
uint32 GetWMYRITalkSfx(CPed *ped, int16 sound);
uint32 GetWMORITalkSfx(CPed *ped, int16 sound);
uint32 GetWFYBETalkSfx(CPed *ped, int16 sound);
uint32 GetWMYBETalkSfx(CPed *ped, int16 sound);
uint32 GetWFOBETalkSfx(CPed *ped, int16 sound);
uint32 GetWMOBETalkSfx(CPed *ped, int16 sound);
uint32 GetWMYCWTalkSfx(CPed *ped, int16 sound);
uint32 GetWMYGOTalkSfx(CPed *ped, int16 sound);
uint32 GetWFOGOTalkSfx(CPed *ped, int16 sound);
uint32 GetWMOGOTalkSfx(CPed *ped, int16 sound);
uint32 GetWFYLGTalkSfx(CPed *ped, int16 sound);
uint32 GetWMYLGTalkSfx(CPed *ped, int16 sound);
uint32 GetWFYBUTalkSfx(CPed *ped, int16 sound);
uint32 GetWMYBUTalkSfx(CPed *ped, int16 sound);
uint32 GetWMOBUTalkSfx(CPed *ped, int16 sound);
uint32 GetWFYPRTalkSfx(CPed *ped, int16 sound);
uint32 GetWFOTRTalkSfx(CPed *ped, int16 sound);
uint32 GetWMOTRTalkSfx(CPed *ped, int16 sound);
uint32 GetWMYPITalkSfx(CPed *ped, int16 sound);
uint32 GetWMOCATalkSfx(CPed *ped, int16 sound);
uint32 GetWFYJGTalkSfx(CPed *ped, int16 sound);
uint32 GetWMYJGTalkSfx(CPed *ped, int16 sound);
uint32 GetWFYSKTalkSfx(CPed *ped, int16 sound);
uint32 GetWMYSKTalkSfx(CPed *ped, int16 sound);
uint32 GetWFYSHTalkSfx(CPed *ped, int16 sound);
uint32 GetWFOSHTalkSfx(CPed *ped, int16 sound);
uint32 GetJFOTOTalkSfx(CPed *ped, int16 sound);
uint32 GetJMOTOTalkSfx(CPed *ped, int16 sound);
uint32 GetCBTalkSfx(CPed *ped, int16 sound);
uint32 GetHNTalkSfx(CPed *ped, int16 sound);
uint32 GetSGTalkSfx(CPed *ped, int16 sound);
uint32 GetCLTalkSfx(CPed *ped, int16 sound);
uint32 GetGDTalkSfx(CPed *ped, int16 sound);
uint32 GetBKTalkSfx(CPed *ped, int16 sound);
uint32 GetPGTalkSfx(CPed *ped, int16 sound);
uint32 GetVICETalkSfx(CPed *ped, int16 sound, int16 model);
uint32 GetWFYG1TalkSfx(CPed *ped, int16 sound);
uint32 GetWFYG2TalkSfx(CPed *ped, int16 sound);
uint32 GetGenericMaleTalkSfx(CPed *ped, int16 sound); // todo names (inlined in vc)
uint32 GetGenericFemaleTalkSfx(CPed *ped, int16 sound); // todo names (inlined in vc)
// end of functions returning talk sfx
void GenerateIntegerRandomNumberTable(); // done
@ -276,10 +372,10 @@ public:
uint8 GetMissionAudioLoadingStatus(uint8 slot) const; // done
int8 GetMissionScriptPoliceAudioPlayingStatus() const;
uint8 GetNum3DProvidersAvailable() const; // done
int32 GetPedCommentSfx(CPed *ped, int32 sound);
void GetPhrase(uint32 *phrase, uint32 *prevPhrase, uint32 sample, uint32 maxOffset) const;
float GetVehicleDriveWheelSkidValue(CVehicle *veh, tWheelState wheelState, float gasPedalAudio, cTransmission *transmission, float velocityChange); // done
float GetVehicleNonDriveWheelSkidValue(CVehicle *veh, tWheelState wheelState, cTransmission *transmission, float velocityChange); // done
uint32 GetPedCommentSfx(CPed *ped, int32 sound);
void GetPhrase(uint32 &phrase, uint32 &prevPhrase, uint32 sample, uint32 maxOffset) const;
float GetVehicleDriveWheelSkidValue(uint8 wheel, CAutomobile *automobile, cTransmission *transmission, float velocityChange);
float GetVehicleNonDriveWheelSkidValue(uint8 wheel, CAutomobile *automobile, cTransmission *transmission, float velocityChange);
bool HasAirBrakes(int32 model) const; // done
@ -405,7 +501,7 @@ public:
bool SetupJumboRumbleSound(uint8 emittingVol);
bool SetupJumboTaxiSound(uint8 vol);
bool SetupJumboWhineSound(uint8 emittingVol, uint32 freq);
void SetupPedComments(cPedParams *params, uint32 sound);
void SetupPedComments(cPedParams *params, uint32 sound); // done
void SetupSuspectLastSeenReport();
void Terminate(); //done

View File

@ -1,9 +1,8 @@
#pragma once
#pragma once
#include "common.h"
enum eSfxSample : uint32
{
enum eSfxSample : uint32 {
SFX_CAR_HORN_JEEP = 0,
SFX_CAR_HORN_BMW328,
SFX_CAR_HORN_BUS,
@ -13,13 +12,13 @@ enum eSfxSample : uint32
SFX_CAR_HORN_PORSCHE,
SFX_CAR_HORN_TRUCK,
SFX_CAR_HELI_MAI, //8
SFX_CAR_HELI_MAI2, //9
SFX_CAR_HELI_REA, //10
SFX_CAR_HELI_STA, //11
SFX_CAR_HELI_ROT, //12
SFX_CAR_HELI_FAR, //13
SFX_CAR_HELI_ROL, //14
SFX_CAR_HELI_MAI, // 8
SFX_CAR_HELI_MAI2, // 9
SFX_CAR_HELI_REA, // 10
SFX_CAR_HELI_STA, // 11
SFX_CAR_HELI_ROT, // 12
SFX_CAR_HELI_FAR, // 13
SFX_CAR_HELI_ROL, // 14
SFX_OLD_CAR_DOOR_OPEN,
SFX_OLD_CAR_DOOR_CLOSE,
@ -29,80 +28,80 @@ enum eSfxSample : uint32
SFX_TRUCK_DOOR_CLOSE,
SFX_REVERSE_GEAR,
SFX_REVERSE_GEAR_2,
SFX_CAR_STARTER, //23
SFX_ROAD_NOISE, //24
SFX_SKID, //25
SFX_GRAVEL_SKID, //26
SFX_CAR_STARTER, // 23
SFX_ROAD_NOISE, // 24
SFX_SKID, // 25
SFX_GRAVEL_SKID, // 26
SFX_POLICE_SIREN_SLOW,
SFX_SIREN_FAST, //28
SFX_SIREN_FAST, // 28
SFX_AMBULANCE_SIREN_SLOW,
SFX_REVERSE_WARNING,
SFX_ICE_CREAM_TUNE,
SFX_AIR_BRAKES, //32
SFX_TYRE_BUMP, //33
SFX_TYRE_BURST_B, //34
SFX_TYRE_BURST, //35
SFX_TYRE_BURST_L, //36
SFX_PALM_TREE_LO, //37
SFX_BULLET_PASS_1, //38
SFX_BULLET_PASS_2, //39
SFX_SKATE_1, //40
SFX_SKATE_2, //41
SFX_AIR_BRAKES, // 32
SFX_TYRE_BUMP, // 33
SFX_TYRE_BURST_B, // 34
SFX_TYRE_BURST, // 35
SFX_TYRE_BURST_L, // 36
SFX_PALM_TREE_LO, // 37
SFX_BULLET_PASS_1, // 38
SFX_BULLET_PASS_2, // 39
SFX_SKATE_1, // 40
SFX_SKATE_2, // 41
SFX_FOOTSTEP_CONCRETE_1,
SFX_FOOTSTEP_CONCRETE_2,
SFX_FOOTSTEP_CONCRETE_3,
SFX_FOOTSTEP_CONCRETE_4,
SFX_FOOTSTEP_CONCRETE_5,
SFX_EXPLOSION_1, //47
SFX_EXPLOSION_2, //48
SFX_EXPLOSION_3, //49
SFX_COLT45_LEFT, //50
SFX_COLT45_RIGHT, //51
SFX_AK47_LEFT, //52
SFX_AK47_RIGHT, //53
SFX_UZI_LEFT, //54
SFX_UZI_RIGHT, //55
SFX_UZI_END_LEFT, //56
SFX_SNIPER_LEFT, //57
SFX_SNIPER_RIGHT, //58
SFX_ROCKET_LEFT, //59
SFX_ROCKET_RIGHT, //60
SFX_ROCKET_FLY, //61
SFX_FLAMETHROWER_LEFT, //62
SFX_FLAMETHROWER_RIGHT, //63
SFX_FLAMETHROWER_START_LEFT, //64
SFX_FLAMETHROWER_START_RIGHT, //65
SFX_SHOTGUN_LEFT, //66
SFX_SHOTGUN_RIGH, //67
SFX_M60_LEFT, //68
SFX_M60_RIGHT, //69
SFX_M60_TAIL_LEFT, //70
SFX_TEC_LEFT, //71
SFX_TEC_RIGHT, //72
SFX_TEC_TAIL, //73
SFX_RUGER_LEFT, //74
SFX_RUGER_RIGHT, //75
SFX_RUGER_TAIL, //76
SFX_PISTOL_RELOAD, //77
SFX_AK47_RELOAD, //78
SFX_ROCKET_RELOAD, //79
SFX_RIFLE_RELOAD, //80
SFX_GOLF_CLUB_SWING, //81
SFX_MINIGUN_FIRE_LEFT, //82
SFX_MINIGUN_FIRE_RIGHT, //83
SFX_MINIGUN_STOP, //84
SFX_SPAS12_LEFT, //85
SFX_SPAS12_RIGHT, //86
SFX_SPAS12_TAIL_LEFT, //87
SFX_PYTHON_LEFT, //88
SFX_PYTHON_RIGHT, //89
SFX_MP5_LEFT, //90
SFX_MP5_RIGHT, //91
SFX_COL_TARMAC_1, //92
SFX_COL_TARMAC_2, //93
SFX_COL_TARMAC_3, //94
SFX_COL_TARMAC_4, //95
SFX_COL_TARMAC_5, //96
SFX_EXPLOSION_1, // 47
SFX_EXPLOSION_2, // 48
SFX_EXPLOSION_3, // 49
SFX_COLT45_LEFT, // 50
SFX_COLT45_RIGHT, // 51
SFX_AK47_LEFT, // 52
SFX_AK47_RIGHT, // 53
SFX_UZI_LEFT, // 54
SFX_UZI_RIGHT, // 55
SFX_UZI_END_LEFT, // 56
SFX_SNIPER_LEFT, // 57
SFX_SNIPER_RIGHT, // 58
SFX_ROCKET_LEFT, // 59
SFX_ROCKET_RIGHT, // 60
SFX_ROCKET_FLY, // 61
SFX_FLAMETHROWER_LEFT, // 62
SFX_FLAMETHROWER_RIGHT, // 63
SFX_FLAMETHROWER_START_LEFT, // 64
SFX_FLAMETHROWER_START_RIGHT, // 65
SFX_SHOTGUN_LEFT, // 66
SFX_SHOTGUN_RIGH, // 67
SFX_M60_LEFT, // 68
SFX_M60_RIGHT, // 69
SFX_M60_TAIL_LEFT, // 70
SFX_TEC_LEFT, // 71
SFX_TEC_RIGHT, // 72
SFX_TEC_TAIL, // 73
SFX_RUGER_LEFT, // 74
SFX_RUGER_RIGHT, // 75
SFX_RUGER_TAIL, // 76
SFX_PISTOL_RELOAD, // 77
SFX_AK47_RELOAD, // 78
SFX_ROCKET_RELOAD, // 79
SFX_RIFLE_RELOAD, // 80
SFX_GOLF_CLUB_SWING, // 81
SFX_MINIGUN_FIRE_LEFT, // 82
SFX_MINIGUN_FIRE_RIGHT, // 83
SFX_MINIGUN_STOP, // 84
SFX_SPAS12_LEFT, // 85
SFX_SPAS12_RIGHT, // 86
SFX_SPAS12_TAIL_LEFT, // 87
SFX_PYTHON_LEFT, // 88
SFX_PYTHON_RIGHT, // 89
SFX_MP5_LEFT, // 90
SFX_MP5_RIGHT, // 91
SFX_COL_TARMAC_1, // 92
SFX_COL_TARMAC_2, // 93
SFX_COL_TARMAC_3, // 94
SFX_COL_TARMAC_4, // 95
SFX_COL_TARMAC_5, // 96
SFX_COL_GRASS_1,
SFX_COL_GRAVEL_1,
SFX_COL_MUD_1,
@ -121,8 +120,8 @@ enum eSfxSample : uint32
SFX_COL_METAL_CHAIN_FENCE_2,
SFX_COL_METAL_CHAIN_FENCE_3,
SFX_COL_METAL_CHAIN_FENCE_4,
SFX_COL_PED_1, //115
SFX_COL_PED_2, //116
SFX_COL_PED_1, // 115
SFX_COL_PED_2, // 116
SFX_COL_SAND_1,
SFX_COL_WOOD_CRATES_1,
SFX_COL_WOOD_CRATES_2,
@ -133,59 +132,59 @@ enum eSfxSample : uint32
SFX_COL_WOOD_BENCH_3,
SFX_COL_WOOD_BENCH_4,
SFX_COL_WOOD_SOLID_1,
SFX_COL_VEG_1, //127
SFX_COL_VEG_2, //128
SFX_COL_VEG_3, //129
SFX_COL_VEG_4, //130
SFX_COL_VEG_5, //131
SFX_COL_VEG_1, // 127
SFX_COL_VEG_2, // 128
SFX_COL_VEG_3, // 129
SFX_COL_VEG_4, // 130
SFX_COL_VEG_5, // 131
SFX_COL_CONTAINER_1,
SFX_COL_NEWS_VENDOR_1,
SFX_COL_NEWS_VENDOR_2,
SFX_COL_NEWS_VENDOR_3,
SFX_COL_CAR_1, //136
SFX_COL_CAR_2, //137
SFX_COL_CAR_3, //138
SFX_COL_CAR_4, //139
SFX_COL_CAR_5, //140
SFX_COL_CAR_1, // 136
SFX_COL_CAR_2, // 137
SFX_COL_CAR_3, // 138
SFX_COL_CAR_4, // 139
SFX_COL_CAR_5, // 140
SFX_COL_CARDBOARD_1,
SFX_COL_CARDBOARD_2,
SFX_COL_GATE, //143
SFX_SCRAPE_CAR_1, //144
SFX_COL_GATE, // 143
SFX_SCRAPE_CAR_1, // 144
SFX_CRATE_SMASH,
SFX_GLASS_CRACK, //146
SFX_GLASS_SMASH, //147
SFX_GLASS_CRACK, // 146
SFX_GLASS_SMASH, // 147
SFX_GLASS_SHARD_1,
SFX_GLASS_SHARD_2,
SFX_GLASS_SHARD_3,
SFX_GLASS_SHARD_4,
SFX_PED_ON_FIRE, //152
SFX_CAR_ON_FIRE, //153
SFX_RAIN, //154
SFX_HURRICANE_MA, //155
SFX_PED_ON_FIRE, // 152
SFX_CAR_ON_FIRE, // 153
SFX_RAIN, // 154
SFX_HURRICANE_MA, // 155
SFX_BULLET_SHELL_HIT_GROUND_1,
SFX_BULLET_SHELL_HIT_GROUND_2,
SFX_BULLET_PED, //158
SFX_BULLET_CAR_1, //159
SFX_BULLET_CAR_2, //160
SFX_BULLET_CAR_3, //161
SFX_BULLET_WALL_1, //162
SFX_BULLET_WALL_2, //163
SFX_BULLET_WALL_3, //164
SFX_BAT_HIT_LEFT, //165
SFX_BAT_HIT_RIGH, //166
SFX_FIGHT_1, //167
SFX_FIGHT_2, //168
SFX_FIGHT_4, //169
SFX_FIGHT_5, //170
SFX_KNIFE_SWING, //171
SFX_KNIFE_SLASH, //172
SFX_KNIFE_STAB, //173
SFX_HAMMER_HIT_1, //174
SFX_HAMMER_HIT_2, //175
SFX_GARAGE_DOOR_LOOP, //176
SFX_COUNTDOWN, //177
SFX_ARM_BOMB, //178
SFX_POLICE_RADIO_CRACKLE, //179
SFX_BULLET_PED, // 158
SFX_BULLET_CAR_1, // 159
SFX_BULLET_CAR_2, // 160
SFX_BULLET_CAR_3, // 161
SFX_BULLET_WALL_1, // 162
SFX_BULLET_WALL_2, // 163
SFX_BULLET_WALL_3, // 164
SFX_BAT_HIT_LEFT, // 165
SFX_BAT_HIT_RIGH, // 166
SFX_FIGHT_1, // 167
SFX_FIGHT_2, // 168
SFX_FIGHT_4, // 169
SFX_FIGHT_5, // 170
SFX_KNIFE_SWING, // 171
SFX_KNIFE_SLASH, // 172
SFX_KNIFE_STAB, // 173
SFX_HAMMER_HIT_1, // 174
SFX_HAMMER_HIT_2, // 175
SFX_GARAGE_DOOR_LOOP, // 176
SFX_COUNTDOWN, // 177
SFX_ARM_BOMB, // 178
SFX_POLICE_RADIO_CRACKLE, // 179
SFX_WEVE_GOT,
SFX_THERES,
@ -275,89 +274,89 @@ enum eSfxSample : uint32
SFX_POLICE_RADIO_TAXI,
SFX_POLICE_RADIO_VAN,
SFX_HELI_1, //198
SFX_PHONE_RING, //199
SFX_CAR_REV_1, //PONT
SFX_CAR_REV_2, //PORSHE
SFX_CAR_REV_3, //SPIDER
SFX_CAR_REV_4, //MERC
SFX_CAR_REV_5, //TRUC
SFX_CAR_REV_6, //HOTROD
SFX_CAR_REV_7, //COBRA
SFX_CAR_REV_8, //PONT2
SFX_CAR_REV_9, // CADI
SFX_CAR_REV_10, //PATHFINDER
SFX_CAR_REV_11, //PACARD
SFX_CAR_REV_12, //GOLFCART
SFX_CAR_REV_13, //SFX_CAR_IDLE_GOL
SFX_CAR_REV_14, //SFX_CAR_IDLE_GOL
SFX_CAR_REV_15, //SFX_CAR_IDLE_GOL
SFX_CAR_REV_16, //SFX_CAR_IDLE_GOL
SFX_CAR_REV_17, //VTWI
SFX_MOPED_REV, // just moped
SFX_CAR_REV_19, //HOND(A)
SFX_CAR_REV_20, //SPOR(TCAR)
SFX_CAR_IDLE_1, //PONT
SFX_CAR_IDLE_2, //PORSHE
SFX_CAR_IDLE_3, //SPIDER
SFX_CAR_IDLE_4, //MERC
SFX_CAR_IDLE_5, //TRUC
SFX_CAR_IDLE_6, //HOTROD
SFX_CAR_IDLE_7, //COBRA
SFX_CAR_IDLE_8, //PONT2
SFX_CAR_IDLE_9, //CADI
SFX_CAR_IDLE_10, //PATHFINDER
SFX_CAR_IDLE_11, //PACARD
SFX_CAR_IDLE_12, //GOLFCART
SFX_CAR_IDLE_13, //SFX_CAR_IDLE_GOL
SFX_CAR_IDLE_14, //SFX_CAR_IDLE_GOL
SFX_CAR_IDLE_15, //SFX_CAR_IDLE_GOL
SFX_CAR_IDLE_16, //SFX_CAR_IDLE_GOL
SFX_CAR_IDLE_17, //VTWI
SFX_MOPED_IDLE, //237
SFX_CAR_IDLE_19, //HOND(A)
SFX_CAR_IDLE_20, //SPOR(TCAR)
SFX_HELI_1, // 198
SFX_PHONE_RING, // 199
SFX_CAR_REV_1, // PONT
SFX_CAR_REV_2, // PORSHE
SFX_CAR_REV_3, // SPIDER
SFX_CAR_REV_4, // MERC
SFX_CAR_REV_5, // TRUC
SFX_CAR_REV_6, // HOTROD
SFX_CAR_REV_7, // COBRA
SFX_CAR_REV_8, // PONT2
SFX_CAR_REV_9, // CADI
SFX_CAR_REV_10, // PATHFINDER
SFX_CAR_REV_11, // PACARD
SFX_CAR_REV_12, // GOLFCART
SFX_CAR_REV_13, // SFX_CAR_IDLE_GOL
SFX_CAR_REV_14, // SFX_CAR_IDLE_GOL
SFX_CAR_REV_15, // SFX_CAR_IDLE_GOL
SFX_CAR_REV_16, // SFX_CAR_IDLE_GOL
SFX_CAR_REV_17, // VTWI
SFX_MOPED_REV, // just moped
SFX_CAR_REV_19, // HOND(A)
SFX_CAR_REV_20, // SPOR(TCAR)
SFX_CAR_IDLE_1, // PONT
SFX_CAR_IDLE_2, // PORSHE
SFX_CAR_IDLE_3, // SPIDER
SFX_CAR_IDLE_4, // MERC
SFX_CAR_IDLE_5, // TRUC
SFX_CAR_IDLE_6, // HOTROD
SFX_CAR_IDLE_7, // COBRA
SFX_CAR_IDLE_8, // PONT2
SFX_CAR_IDLE_9, // CADI
SFX_CAR_IDLE_10, // PATHFINDER
SFX_CAR_IDLE_11, // PACARD
SFX_CAR_IDLE_12, // GOLFCART
SFX_CAR_IDLE_13, // SFX_CAR_IDLE_GOL
SFX_CAR_IDLE_14, // SFX_CAR_IDLE_GOL
SFX_CAR_IDLE_15, // SFX_CAR_IDLE_GOL
SFX_CAR_IDLE_16, // SFX_CAR_IDLE_GOL
SFX_CAR_IDLE_17, // VTWI
SFX_MOPED_IDLE, // 237
SFX_CAR_IDLE_19, // HOND(A)
SFX_CAR_IDLE_20, // SPOR(TCAR)
SFX_JUMBO_DIST_FLY,
SFX_JUMBO_TAXI, //241
SFX_JUMBO_WHINE, //242
SFX_JUMBO_ENGINE, //243
SFX_JUMBO_RUMBLE, //244
SFX_JUMBO_TAXI, // 241
SFX_JUMBO_WHINE, // 242
SFX_JUMBO_ENGINE, // 243
SFX_JUMBO_RUMBLE, // 244
SFX_JUMBO_LAND_WHEELS,
SFX_BOAT_CRUISER_LOOP, //246
SFX_BOAT_V12_LOOP, //247
SFX_BOAT_CRUISER_LOOP, // 246
SFX_BOAT_V12_LOOP, // 247
SFX_BOAT_WATER_LOOP,
SFX_BOAT_SPLASH_1,
SFX_BOAT_SPLASH_2,
SFX_FISHING_BOAT_IDLE,
SFX_CAR_RAIN_1, //252
SFX_CAR_RAIN_2, //253
SFX_CAR_RAIN_3, //254
SFX_CAR_RAIN_4, //255
SFX_SPLASH_1, //256
SFX_PED_CRUNCH_1, //257
SFX_PED_CRUNCH_2, //258
SFX_CAR_RAIN_1, // 252
SFX_CAR_RAIN_2, // 253
SFX_CAR_RAIN_3, // 254
SFX_CAR_RAIN_4, // 255
SFX_SPLASH_1, // 256
SFX_PED_CRUNCH_1, // 257
SFX_PED_CRUNCH_2, // 258
SFX_WOODEN_BOX_SMASH,
SFX_CARDBOARD_BOX_SMASH,
SFX_ERROR_FIRE_ROCKET_LAUNCHER,
SFX_ERROR_FIRE_RIFLE,
SFX_TANK_TURRET, //263
SFX_TANK_TURRET, // 263
SFX_BODY_LAND_AND_FALL,
SFX_BODY_LAND, //265
SFX_BOMB_BEEP, //266
SFX_TIMER_BEEP, //267
SFX_BODY_LAND, // 265
SFX_BOMB_BEEP, // 266
SFX_TIMER_BEEP, // 267
SFX_SUSPENSION_FAST_MOVE,
SFX_SUSPENSION_SLOW_MOVE_LOOP,
SFX_SHAG_SUSPENSION,
SFX_HIT_BALL, //271
SFX_ARCADE, //272
SFX_CESNA_IDLE, //273
SFX_CESNA_REV, //274
SFX_RADIO_CLICK, //275
SFX_RADIO_DIAL_1, //276
SFX_RADIO_DIAL_2, //277
SFX_RADIO_DIAL_3, //278
SFX_HIT_BALL, // 271
SFX_ARCADE, // 272
SFX_CESNA_IDLE, // 273
SFX_CESNA_REV, // 274
SFX_RADIO_CLICK, // 275
SFX_RADIO_DIAL_1, // 276
SFX_RADIO_DIAL_2, // 277
SFX_RADIO_DIAL_3, // 278
//pc only
// pc only
SFX_RADIO_DIAL_4,
SFX_RADIO_DIAL_5,
SFX_RADIO_DIAL_6,
@ -368,31 +367,31 @@ enum eSfxSample : uint32
SFX_RADIO_DIAL_11,
SFX_RADIO_DIAL_12,
SFX_INFO_LEFT, //279
SFX_INFO_RIGHT, //280
SFX_INFO_CENTRE, //281
SFX_MONEY_LEFT, //282
SFX_MONEY_RIGHT, //283
SFX_WEAPON_LEFT, //284
SFX_WEAPON_RIGHT, //285
SFX_WEAPON_CENTRE, //286
SFX_PART_MISSION_COMPLETE_LEFT, //287
SFX_PART_MISSION_COMPLETE_RIGHT, //288
SFX_PART_MISSION_COMPLETE_CENTRE, //289
SFX_GO_LEFT, //290
SFX_GO_RIGHT, //291
SFX_GO_CENTRE, //292
SFX_TIMER, //293
SFX_EMPTY, //294
SFX_INFO_LEFT, // 279
SFX_INFO_RIGHT, // 280
SFX_INFO_CENTRE, // 281
SFX_MONEY_LEFT, // 282
SFX_MONEY_RIGHT, // 283
SFX_WEAPON_LEFT, // 284
SFX_WEAPON_RIGHT, // 285
SFX_WEAPON_CENTRE, // 286
SFX_PART_MISSION_COMPLETE_LEFT, // 287
SFX_PART_MISSION_COMPLETE_RIGHT, // 288
SFX_PART_MISSION_COMPLETE_CENTRE, // 289
SFX_GO_LEFT, // 290
SFX_GO_RIGHT, // 291
SFX_GO_CENTRE, // 292
SFX_TIMER, // 293
SFX_EMPTY, // 294
SFX_FE_HIGHLIGHT_LEFT, //
SFX_FE_HIGHLIGHT_LEFT, //
SFX_FE_HIGHLIGHT_RIGHT, //
SFX_FE_SELECT_LEFT, //
SFX_FE_SELECT_RIGHT, //
SFX_FE_BACK_LEFT, //
SFX_FE_BACK_RIGHT, //
SFX_FE_ERROR_LEFT, //
SFX_FE_ERROR_RIGHT, //
SFX_FE_SELECT_LEFT, //
SFX_FE_SELECT_RIGHT, //
SFX_FE_BACK_LEFT, //
SFX_FE_BACK_RIGHT, //
SFX_FE_ERROR_LEFT, //
SFX_FE_ERROR_RIGHT, //
SFX_FE_NOISE_BURST_1,
SFX_FE_NOISE_BURST_2,
SFX_FE_NOISE_BURST_3,
@ -446,23 +445,23 @@ enum eSfxSample : uint32
SFX_CAR_FINGER_OFF_ACCEL_12,
// some CHAINSAW STUFF
//SFX_CAR_CHAINSAW, //10973
//SFX_CAR_CHAINSAW, //10974
//SFX_CAR_CHAINSAW, //10975
// SFX_CAR_CHAINSAW, //10973
// SFX_CAR_CHAINSAW, //10974
// SFX_CAR_CHAINSAW, //10975
SFX_CAR_ACCEL_13,
SFX_CAR_AFTER_ACCEL_13,
SFX_CAR_FINGER_OFF_ACCEL_13,
SFX_RC_IDLE, //10976
SFX_RC_REV, //10977
SFX_RC_EMPTY, //10978
SFX_RC_IDLE, // 10976
SFX_RC_REV, // 10977
SFX_RC_EMPTY, // 10978
SFX_CAR_RC_HELI, //10979
SFX_CAR_AFTER_ACCEL_15, // empty
SFX_CAR_RC_HELI, // 10979
SFX_CAR_AFTER_ACCEL_15, // empty
SFX_CAR_FINGER_OFF_ACCEL_15, // empty
SFX_CAR_ACCEL_16, // empty
SFX_CAR_AFTER_ACCEL_16, // empty
SFX_CAR_ACCEL_16, // empty
SFX_CAR_AFTER_ACCEL_16, // empty
SFX_CAR_FINGER_OFF_ACCEL_16, // empty
// bike stuff apparently
@ -505,12 +504,12 @@ enum eSfxSample : uint32
SFX_HELI_UNUSED_3,
SFX_HELI_UNUSED_4,
SFX_SEAPLANE_PRO1, //11018
SFX_SEAPLANE_PRO2, //11019
SFX_SEAPLANE_PRO3, //11020
SFX_SEAPLANE_PRO4, //11021
SFX_SEAPLANE_PRO1, // 11018
SFX_SEAPLANE_PRO2, // 11019
SFX_SEAPLANE_PRO3, // 11020
SFX_SEAPLANE_PRO4, // 11021
// low fuel
SFX_SEAPLANE_LOW, //11022
SFX_SEAPLANE_LOW, // 11022
// something padded for more plane?
SFX_PLANE_UNUSED_1,
@ -519,32 +518,32 @@ enum eSfxSample : uint32
SFX_PLANE_UNUSED_4,
// script objects
SFX_BUILDINGS_BANK_ALARM, //11027
SFX_BUILDING_SNORE, //11028
SFX_BUILDING_BAR_1, //11029
SFX_BUILDING_BAR_2, //11030
SFX_BUILDING_BAR_3, //11031
SFX_BUILDING_BAR_4, //11032
SFX_BUILDING_MAL1, //11033
SFX_BUILDING_MAL2, //11034
SFX_BUILDING_MAL3, //11035
SFX_BUILDING_STR1, //11036
SFX_BUILDING_STR2, //11037
SFX_BUILDING_STR3, //11038
SFX_BUILDING_CHURCH, //11039
SFX_BUILDING_FAN_1, //11040
SFX_BUILDING_FAN_2, //11041
SFX_BUILDING_FAN_3, //11042
SFX_BUILDING_FAN_4, //11043
SFX_BUILDING_INSECTS_1, //11044
SFX_BUILDING_INSECTS_2, //11045
SFX_BUILDING_INSECTS_3, //11046
SFX_BUILDING_INSECTS_4, //11047
SFX_BUILDING_INSECTS_5, //11048
SFX_CLUB_1, //11049
SFX_CLUB_2, //11050
SFX_CLUB_3, //11051
SFX_CLUB_4, //11052
SFX_BUILDINGS_BANK_ALARM, // 11027
SFX_BUILDING_SNORE, // 11028
SFX_BUILDING_BAR_1, // 11029
SFX_BUILDING_BAR_2, // 11030
SFX_BUILDING_BAR_3, // 11031
SFX_BUILDING_BAR_4, // 11032
SFX_BUILDING_MAL1, // 11033
SFX_BUILDING_MAL2, // 11034
SFX_BUILDING_MAL3, // 11035
SFX_BUILDING_STR1, // 11036
SFX_BUILDING_STR2, // 11037
SFX_BUILDING_STR3, // 11038
SFX_BUILDING_CHURCH, // 11039
SFX_BUILDING_FAN_1, // 11040
SFX_BUILDING_FAN_2, // 11041
SFX_BUILDING_FAN_3, // 11042
SFX_BUILDING_FAN_4, // 11043
SFX_BUILDING_INSECTS_1, // 11044
SFX_BUILDING_INSECTS_2, // 11045
SFX_BUILDING_INSECTS_3, // 11046
SFX_BUILDING_INSECTS_4, // 11047
SFX_BUILDING_INSECTS_5, // 11048
SFX_CLUB_1, // 11049
SFX_CLUB_2, // 11050
SFX_CLUB_3, // 11051
SFX_CLUB_4, // 11052
SFX_FOOTSTEP_GRASS_1,
SFX_FOOTSTEP_GRASS_2,
@ -576,6 +575,233 @@ enum eSfxSample : uint32
SFX_FOOTSTEP_SAND_4,
// TODO: miami ped comments... THERE'S OVER 9000
SFX_POLICE_BOAT_1 = 714,
SFX_POLICE_BOAT_2,
SFX_POLICE_BOAT_3,
SFX_POLICE_BOAT_4,
SFX_POLICE_BOAT_5,
SFX_POLICE_BOAT_6,
SFX_POLICE_BOAT_7,
SFX_POLICE_BOAT_8,
SFX_POLICE_BOAT_9,
SFX_POLICE_BOAT_10,
SFX_POLICE_BOAT_11,
SFX_POLICE_BOAT_12,
SFX_POLICE_BOAT_13,
SFX_POLICE_BOAT_14,
SFX_POLICE_BOAT_15,
SFX_POLICE_BOAT_16,
SFX_POLICE_BOAT_17,
SFX_POLICE_BOAT_18,
SFX_POLICE_BOAT_19,
SFX_POLICE_BOAT_20,
SFX_POLICE_BOAT_21,
SFX_POLICE_BOAT_22,
SFX_POLICE_BOAT_23,
SFX_POLICE_HELI_1,
SFX_POLICE_HELI_2,
SFX_POLICE_HELI_3,
SFX_POLICE_HELI_4,
SFX_POLICE_HELI_5,
SFX_POLICE_HELI_6,
SFX_POLICE_HELI_7,
SFX_POLICE_HELI_8,
SFX_POLICE_HELI_9,
SFX_POLICE_HELI_10,
SFX_POLICE_HELI_11,
SFX_POLICE_HELI_12,
SFX_POLICE_HELI_13,
SFX_POLICE_HELI_14,
SFX_POLICE_HELI_15,
SFX_POLICE_HELI_16,
SFX_POLICE_HELI_17,
SFX_POLICE_HELI_18,
SFX_POLICE_HELI_19,
SFX_POLICE_HELI_20,
SFX_GENERIC_FEMALE_GRUNT_1 = 2953,
SFX_GENERIC_FEMALE_GRUNT_2 = 2954,
SFX_GENERIC_FEMALE_GRUNT_3 = 2955,
SFX_GENERIC_FEMALE_GRUNT_4 = 2956,
SFX_GENERIC_FEMALE_GRUNT_5 = 2957,
SFX_GENERIC_FEMALE_GRUNT_6 = 2958,
SFX_GENERIC_FEMALE_GRUNT_7 = 2959,
SFX_GENERIC_FEMALE_GRUNT_8 = 2960,
SFX_GENERIC_FEMALE_GRUNT_9 = 2961,
SFX_GENERIC_FEMALE_GRUNT_10 = 2962,
SFX_GENERIC_FEMALE_GRUNT_11 = 2963,
SFX_GENERIC_FEMALE_GRUNT_12 = 2964,
SFX_GENERIC_FEMALE_GRUNT_13 = 2965,
SFX_GENERIC_FEMALE_GRUNT_14 = 2966,
SFX_GENERIC_FEMALE_GRUNT_15 = 2967,
SFX_GENERIC_FEMALE_GRUNT_16 = 2968,
SFX_GENERIC_FEMALE_GRUNT_17 = 2969,
SFX_GENERIC_FEMALE_GRUNT_18 = 2970,
SFX_GENERIC_FEMALE_GRUNT_19 = 2971,
SFX_GENERIC_FEMALE_GRUNT_20 = 2972,
SFX_GENERIC_FEMALE_GRUNT_21 = 2973,
SFX_GENERIC_FEMALE_GRUNT_22 = 2974,
SFX_GENERIC_FEMALE_GRUNT_23 = 2975,
SFX_GENERIC_FEMALE_GRUNT_24 = 2976,
SFX_GENERIC_FEMALE_GRUNT_25 = 2977,
SFX_GENERIC_FEMALE_GRUNT_26 = 2978,
SFX_GENERIC_FEMALE_GRUNT_27 = 2979,
SFX_GENERIC_FEMALE_GRUNT_28 = 2980,
SFX_GENERIC_FEMALE_GRUNT_29 = 2981,
SFX_GENERIC_FEMALE_GRUNT_30 = 2982,
SFX_GENERIC_FEMALE_GRUNT_31 = 2983,
SFX_GENERIC_FEMALE_GRUNT_32 = 2984,
SFX_GENERIC_FEMALE_GRUNT_33 = 2985,
SFX_GENERIC_MALE_FIRE_1 = 3013,
SFX_GENERIC_MALE_FIRE_2 = 3014,
SFX_GENERIC_MALE_FIRE_3 = 3015,
SFX_GENERIC_MALE_FIRE_4 = 3016,
SFX_GENERIC_MALE_FIRE_5 = 3017,
SFX_GENERIC_MALE_FIRE_6 = 3018,
SFX_GENERIC_MALE_FIRE_7 = 3019,
SFX_GENERIC_MALE_FIRE_8 = 3020,
SFX_GENERIC_MALE_FIRE_9 = 3021,
SFX_GENERIC_MALE_FIRE_10 = 3022,
SFX_GENERIC_MALE_FIRE_11 = 3023,
SFX_GENERIC_MALE_FIRE_12 = 3024,
SFX_GENERIC_MALE_FIRE_13 = 3025,
SFX_GENERIC_MALE_FIRE_14 = 3026,
SFX_GENERIC_MALE_FIRE_15 = 3027,
SFX_GENERIC_MALE_FIRE_16 = 3028,
SFX_GENERIC_MALE_FIRE_17 = 3029,
SFX_GENERIC_MALE_FIRE_18 = 3030,
SFX_GENERIC_MALE_FIRE_19 = 3031,
SFX_GENERIC_MALE_FIRE_20 = 3032,
SFX_GENERIC_MALE_FIRE_21 = 3033,
SFX_GENERIC_MALE_FIRE_22 = 3034,
SFX_GENERIC_MALE_FIRE_23 = 3035,
SFX_GENERIC_MALE_FIRE_24 = 3036,
SFX_GENERIC_MALE_FIRE_25 = 3037,
SFX_GENERIC_MALE_FIRE_26 = 3038,
SFX_GENERIC_MALE_FIRE_27 = 3039,
SFX_GENERIC_MALE_FIRE_28 = 3040,
SFX_GENERIC_MALE_FIRE_29 = 3041,
SFX_GENERIC_MALE_FIRE_30 = 3042,
SFX_GENERIC_MALE_FIRE_31 = 3043,
SFX_GENERIC_MALE_FIRE_32 = 3044,
SFX_GENERIC_MALE_DEATH_1 = 3045,
SFX_GENERIC_MALE_DEATH_2 = 3046,
SFX_GENERIC_MALE_DEATH_3 = 3047,
SFX_GENERIC_MALE_DEATH_4 = 3048,
SFX_GENERIC_MALE_DEATH_5 = 3049,
SFX_GENERIC_MALE_DEATH_6 = 3050,
SFX_GENERIC_MALE_DEATH_7 = 3051,
SFX_GENERIC_MALE_DEATH_8 = 3052,
SFX_GENERIC_MALE_DEATH_9 = 3053,
SFX_GENERIC_MALE_DEATH_10 = 3054,
SFX_GENERIC_MALE_DEATH_11 = 3055,
SFX_GENERIC_MALE_DEATH_12 = 3056,
SFX_GENERIC_MALE_DEATH_13 = 3057,
SFX_GENERIC_MALE_DEATH_14 = 3058,
SFX_GENERIC_MALE_DEATH_15 = 3059,
SFX_GENERIC_MALE_DEATH_16 = 3060,
SFX_GENERIC_MALE_DEATH_17 = 3061,
SFX_GENERIC_MALE_DEATH_18 = 3062,
SFX_GENERIC_MALE_DEATH_19 = 3063,
SFX_GENERIC_MALE_DEATH_20 = 3064,
SFX_GENERIC_MALE_DEATH_21 = 3065,
SFX_GENERIC_MALE_DEATH_22 = 3066,
SFX_GENERIC_MALE_DEATH_23 = 3067,
SFX_GENERIC_MALE_DEATH_24 = 3068,
SFX_GENERIC_MALE_DEATH_25 = 3069,
SFX_GENERIC_MALE_DEATH_26 = 3070,
SFX_GENERIC_MALE_DEATH_27 = 3071,
SFX_GENERIC_MALE_DEATH_28 = 3072,
SFX_GENERIC_MALE_DEATH_29 = 3073,
SFX_GENERIC_MALE_DEATH_30 = 3074,
SFX_GENERIC_MALE_DEATH_31 = 3075,
SFX_GENERIC_MALE_DEATH_32 = 3076,
SFX_GENERIC_MALE_DEATH_33 = 3077,
SFX_GENERIC_MALE_DEATH_34 = 3078,
SFX_GENERIC_MALE_DEATH_35 = 3079,
SFX_GENERIC_MALE_DEATH_36 = 3080,
SFX_GENERIC_MALE_DEATH_37 = 3081,
SFX_GENERIC_MALE_DEATH_38 = 3082,
SFX_GENERIC_MALE_DEATH_39 = 3083,
SFX_GENERIC_MALE_DEATH_40 = 3084,
SFX_GENERIC_MALE_DEATH_41 = 3085,
SFX_GENERIC_MALE_GRUNT_1 = 3086,
SFX_GENERIC_MALE_GRUNT_2 = 3087,
SFX_GENERIC_MALE_GRUNT_3 = 3088,
SFX_GENERIC_MALE_GRUNT_4 = 3089,
SFX_GENERIC_MALE_GRUNT_5 = 3090,
SFX_GENERIC_MALE_GRUNT_6 = 3091,
SFX_GENERIC_MALE_GRUNT_7 = 3092,
SFX_GENERIC_MALE_GRUNT_8 = 3093,
SFX_GENERIC_MALE_GRUNT_9 = 3094,
SFX_GENERIC_MALE_GRUNT_10 = 3095,
SFX_GENERIC_MALE_GRUNT_11 = 3096,
SFX_GENERIC_MALE_GRUNT_12 = 3097,
SFX_GENERIC_MALE_GRUNT_13 = 3098,
SFX_GENERIC_MALE_GRUNT_14 = 3099,
SFX_GENERIC_MALE_GRUNT_15 = 3100,
SFX_GENERIC_MALE_GRUNT_16 = 3101,
SFX_GENERIC_MALE_GRUNT_17 = 3102,
SFX_GENERIC_MALE_GRUNT_18 = 3103,
SFX_GENERIC_MALE_GRUNT_19 = 3104,
SFX_GENERIC_MALE_GRUNT_20 = 3105,
SFX_GENERIC_MALE_GRUNT_21 = 3106,
SFX_GENERIC_MALE_GRUNT_22 = 3107,
SFX_GENERIC_MALE_GRUNT_23 = 3108,
SFX_GENERIC_MALE_GRUNT_24 = 3109,
SFX_GENERIC_MALE_GRUNT_25 = 3110,
SFX_GENERIC_MALE_GRUNT_26 = 3111,
SFX_GENERIC_MALE_GRUNT_27 = 3112,
SFX_GENERIC_MALE_GRUNT_28 = 3113,
SFX_GENERIC_MALE_GRUNT_29 = 3114,
SFX_GENERIC_MALE_GRUNT_30 = 3115,
SFX_GENERIC_MALE_GRUNT_31 = 3116,
SFX_GENERIC_MALE_GRUNT_32 = 3117,
SFX_GENERIC_MALE_GRUNT_33 = 3118,
SFX_GENERIC_MALE_GRUNT_34 = 3119,
SFX_GENERIC_MALE_GRUNT_35 = 3120,
SFX_GENERIC_MALE_GRUNT_36 = 3121,
SFX_GENERIC_MALE_GRUNT_37 = 3122,
SFX_GENERIC_MALE_GRUNT_38 = 3123,
SFX_GENERIC_MALE_GRUNT_39 = 3124,
SFX_GENERIC_MALE_GRUNT_40 = 3125,
SFX_GENERIC_MALE_GRUNT_41 = 3126,
SFX_GENERIC_MALE_PANIC_1 = 3127,
SFX_GENERIC_MALE_PANIC_2 = 3128,
SFX_GENERIC_MALE_PANIC_3 = 3129,
SFX_GENERIC_MALE_PANIC_4 = 3130,
SFX_GENERIC_MALE_PANIC_5 = 3131,
SFX_GENERIC_MALE_PANIC_6 = 3132,
SFX_GENERIC_MALE_PANIC_7 = 3133,
SFX_GENERIC_MALE_PANIC_8 = 3134,
SFX_GENERIC_MALE_PANIC_9 = 3135,
SFX_GENERIC_MALE_PANIC_10 = 3136,
SFX_GENERIC_MALE_PANIC_11 = 3137,
SFX_GENERIC_MALE_PANIC_12 = 3138,
SFX_GENERIC_MALE_PANIC_13 = 3139,
SFX_GENERIC_MALE_PANIC_14 = 3140,
SFX_GENERIC_MALE_PANIC_15 = 3141,
SFX_GENERIC_MALE_PANIC_16 = 3142,
SFX_GENERIC_MALE_PANIC_17 = 3143,
SFX_GENERIC_MALE_PANIC_18 = 3144,
SFX_GENERIC_MALE_PANIC_19 = 3145,
SFX_GENERIC_MALE_PANIC_20 = 3146,
SFX_GENERIC_MALE_PANIC_21 = 3147,
SFX_GENERIC_MALE_PANIC_22 = 3148,
SFX_GENERIC_MALE_PANIC_23 = 3149,
SFX_GENERIC_MALE_PANIC_24 = 3150,
SFX_GENERIC_MALE_PANIC_25 = 3151,
SFX_GENERIC_MALE_PANIC_26 = 3152,
SFX_GENERIC_MALE_PANIC_27 = 3153,
SFX_GENERIC_MALE_PANIC_28 = 3154,
SFX_GENERIC_MALE_PANIC_29 = 3155,
SFX_GENERIC_MALE_PANIC_30 = 3156,
SFX_GENERIC_MALE_PANIC_31 = 3157,
SFX_GENERIC_MALE_PANIC_32 = 3158,
SFX_GENERIC_MALE_PANIC_33 = 3159,
SFX_GENERIC_MALE_PANIC_34 = 3160,
SFX_GENERIC_MALE_PANIC_35 = 3161,
TOTAL_AUDIO_SAMPLES = 9941,
NO_SAMPLE,

View File

@ -1,4 +1,4 @@
#pragma once
#pragma once
enum eSound : uint16
{
@ -116,8 +116,8 @@ enum eSound : uint16
SOUND_PED_MIAMIVICE_EXITING_CAR,
SOUND_PED_COP_HELIPILOTPHRASE,
SOUND_PED_PULLOUTWEAPON,
SOUND_PED_HELI_PLAYER_FOUND,
SOUND_115,
SOUND_PED_HELI_PLAYER_FOUND = 114,
SOUND_PED_VCPA_PLAYER_FOUND = 115,
SOUND_PED_ON_FIRE,
SOUND_PED_AIMING,
SOUND_PED_HANDS_UP,

View File

@ -508,7 +508,7 @@ CPickup::Update(CPlayerPed *player, CVehicle *vehicle, int playerId)
result = true;
Remove();
DMAudio.PlayFrontEndSound(SOUND_PICKUP_HIDDEN_PACKAGE, 0);
return true;
break;
case PICKUP_MONEY:
CWorld::Players[playerId].m_nMoney += m_nQuantity;
sprintf(gString, "$%d", m_nQuantity);
@ -518,12 +518,13 @@ CPickup::Update(CPlayerPed *player, CVehicle *vehicle, int playerId)
result = true;
Remove();
DMAudio.PlayFrontEndSound(SOUND_PICKUP_MONEY, 0);
return true;
player->Say(SOUND_PED_MUGGING);
break;
case PICKUP_ASSET_REVENUE:
CWorld::Players[CWorld::PlayerInFocus].m_nMoney += m_fRevenue;
m_fRevenue = 0.0f;
DMAudio.PlayFrontEndSound(SOUND_PICKUP_MONEY, 0);
return false;
break;
case PICKUP_PROPERTY_LOCKED:
if (!m_bWasControlMessageShown) {
m_bWasControlMessageShown = true;

View File

@ -53,7 +53,7 @@
#include "Fluff.h"
#include "WaterCreatures.h"
//--MIAMI: file done except TODO
//--MIAMI: file done
uint8 CReplay::Mode;
CAddressInReplayBuffer CReplay::Record;
@ -158,7 +158,7 @@ static void(*CBArray[])(CAnimBlendAssociation*, void*) =
&CPed::FinishedAttackCB,
&CPed::FinishFightMoveCB, &PhonePutDownCB, &PhonePickUpCB, &CPed::PedAnimDoorCloseRollingCB, &CPed::FinishJumpCB,
&CPed::PedLandCB, &CPed::RestoreHeadingRateCB, &CPed::PedSetQuickDraggedOutCarPositionCB, &CPed::PedSetDraggedOutCarPositionCB,
&CPed::PedSetPreviousStateCB, &CPed::FinishedReloadCB, /*&CPed::PedSetGetInCarPositionCB, TODO(MIAMI)*/
&CPed::PedSetPreviousStateCB, &CPed::FinishedReloadCB, &CPed::PedSetGetInCarPositionCB,
&CPed::PedAnimShuffleCB, &CPed::DeleteSunbatheIdleAnimCB, &StartTalkingOnMobileCB, &FinishTalkingOnMobileCB
};
@ -396,7 +396,8 @@ void CReplay::RecordThisFrame(void)
misc->cam_shake_start = TheCamera.m_uiCamShakeStart;
misc->cam_shake_strength = TheCamera.m_fCamShakeForce;
misc->cur_area = CGame::currArea;
//misc->special_fx_flags; // TODO(MIAMI)!!!
misc->video_cam = CSpecialFX::bVideoCam;
misc->lift_cam = CSpecialFX::bLiftCam;
Record.m_nOffset += sizeof(*misc);
tEndOfFramePacket* eof = (tEndOfFramePacket*)&Record.m_pBase[Record.m_nOffset];
eof->type = REPLAYPACKET_ENDOFFRAME;
@ -1139,7 +1140,8 @@ bool CReplay::PlayBackThisFrameInterpolation(CAddressInReplayBuffer *buffer, flo
tMiscPacket* pm = (tMiscPacket*)&ptr[offset];
TheCamera.m_uiCamShakeStart = pm->cam_shake_start;
TheCamera.m_fCamShakeForce = pm->cam_shake_strength;
// TODO(MIAMI): SpecialFX
CSpecialFX::bVideoCam = pm->video_cam;
CSpecialFX::bLiftCam = pm->lift_cam;
CGame::currArea = pm->cur_area;
buffer->m_nOffset += sizeof(tMiscPacket);
break;

View File

@ -263,7 +263,8 @@ class CReplay
uint32 cam_shake_start;
float cam_shake_strength;
uint8 cur_area;
uint8 special_fx_flags;
uint8 video_cam : 1;
uint8 lift_cam : 1;
};
VALIDATE_SIZE(tMiscPacket, 16);

View File

@ -88,6 +88,8 @@
#include <stdarg.h>
#endif
//--MIAMI: file done
#define PICKUP_PLACEMENT_OFFSET 0.5f
#define PED_FIND_Z_OFFSET 5.0f
#define COP_PED_FIND_Z_OFFSET 10.0f
@ -9113,12 +9115,16 @@ int8 CRunningScript::ProcessCommands800To899(int32 command)
switch (pPed->m_vehEnterType) {
case CAR_DOOR_LF:
flags = pPed->m_pMyVehicle->m_nNumMaxPassengers != 0 ? CAR_DOOR_FLAG_LF : CAR_DOOR_FLAG_LF | CAR_DOOR_FLAG_LR;
break;
case CAR_DOOR_LR:
flags = pPed->m_pMyVehicle->m_nNumMaxPassengers != 0 ? CAR_DOOR_FLAG_RF : CAR_DOOR_FLAG_LF | CAR_DOOR_FLAG_LR;
break;
case CAR_DOOR_RF:
flags = CAR_DOOR_FLAG_RF;
break;
case CAR_DOOR_RR:
flags = CAR_DOOR_FLAG_RR;
break;
}
}
pPed->m_pMyVehicle->m_nGettingOutFlags &= ~flags;
@ -12119,14 +12125,14 @@ int8 CRunningScript::ProcessCommands1100To1199(int32 command)
{
int32* ptr = GetPointerToScriptVariable(&m_nIp, VAR_GLOBAL);
CollectParameters(&m_nIp, 1);
UpdateCompareFlag(*ptr = ScriptParams[0]);
UpdateCompareFlag(*ptr == ScriptParams[0]);
return 0;
}
case COMMAND_IS_INT_LVAR_EQUAL_TO_CONSTANT:
{
int32* ptr = GetPointerToScriptVariable(&m_nIp, VAR_LOCAL);
CollectParameters(&m_nIp, 1);
UpdateCompareFlag(*ptr = ScriptParams[0]);
UpdateCompareFlag(*ptr == ScriptParams[0]);
return 0;
}
case COMMAND_GET_DEAD_CHAR_PICKUP_COORDS:
@ -12274,7 +12280,7 @@ int8 CRunningScript::ProcessCommands1200To1299(int32 command)
case COMMAND_IS_CONSTANT_GREATER_OR_EQUAL_TO_INT_VAR:
{
CollectParameters(&m_nIp, 1);
int32* ptr = GetPointerToScriptVariable(&m_nIp, VAR_LOCAL);
int32* ptr = GetPointerToScriptVariable(&m_nIp, VAR_GLOBAL);
UpdateCompareFlag(ScriptParams[0] >= *ptr);
return 0;
}
@ -15751,7 +15757,7 @@ INITSAVEBUF
uint32 script_data_size = SCRIPT_DATA_SIZE;
WriteSaveBuf(buf, script_data_size);
WriteSaveBuf(buf, OnAMissionFlag);
WriteSaveBuf(buf, NextFreeCollectiveIndex);
WriteSaveBuf(buf, LastMissionPassedTime);
for (uint32 i = 0; i < MAX_NUM_BUILDING_SWAPS; i++) {
CBuilding* pBuilding = BuildingSwapArray[i].m_pBuilding;
uint32 type, handle;
@ -15801,12 +15807,12 @@ INITSAVEBUF
WriteSaveBuf(buf, handle);
}
WriteSaveBuf(buf, bUsingAMultiScriptFile);
WriteSaveBuf(buf, (uint8)0);
WriteSaveBuf(buf, bPlayerHasMetDebbieHarry);
WriteSaveBuf(buf, (uint16)0);
WriteSaveBuf(buf, MainScriptSize);
WriteSaveBuf(buf, LargestMissionScriptSize);
WriteSaveBuf(buf, NumberOfMissionScripts);
WriteSaveBuf(buf, (uint16)0);
WriteSaveBuf(buf, NumberOfExclusiveMissionScripts);
WriteSaveBuf(buf, runningScripts);
for (CRunningScript* pScript = pActiveScripts; pScript; pScript = pScript->GetNext())
pScript->Save(buf);
@ -15823,7 +15829,7 @@ INITSAVEBUF
ScriptSpace[i] = ReadSaveBuf<uint8>(buf);
script_assert(ReadSaveBuf<uint32>(buf) == SCRIPT_DATA_SIZE);
OnAMissionFlag = ReadSaveBuf<uint32>(buf);
NextFreeCollectiveIndex = ReadSaveBuf<uint32>(buf);
LastMissionPassedTime = ReadSaveBuf<uint32>(buf);
for (uint32 i = 0; i < MAX_NUM_BUILDING_SWAPS; i++) {
uint32 type = ReadSaveBuf<uint32>(buf);
uint32 handle = ReadSaveBuf<uint32>(buf);
@ -15871,12 +15877,12 @@ INITSAVEBUF
InvisibilitySettingArray[i]->bIsVisible = false;
}
script_assert(ReadSaveBuf<bool>(buf) == bUsingAMultiScriptFile);
ReadSaveBuf<uint8>(buf);
bPlayerHasMetDebbieHarry = ReadSaveBuf<uint8>(buf);
ReadSaveBuf<uint16>(buf);
script_assert(ReadSaveBuf<uint32>(buf) == MainScriptSize);
script_assert(ReadSaveBuf<uint32>(buf) == LargestMissionScriptSize);
script_assert(ReadSaveBuf<uint16>(buf) == NumberOfMissionScripts);
ReadSaveBuf<uint16>(buf);
script_assert(ReadSaveBuf<uint16>(buf) == NumberOfExclusiveMissionScripts);
uint32 runningScripts = ReadSaveBuf<uint32>(buf);
for (uint32 i = 0; i < runningScripts; i++)
StartNewScript(0)->Load(buf);
@ -16103,7 +16109,7 @@ void CTheScripts::CleanUpThisObject(CObject* pObject)
if (pObject->ObjectCreatedBy != MISSION_OBJECT)
return;
pObject->ObjectCreatedBy = TEMP_OBJECT;
pObject->m_nEndOfLifeTime = CTimer::GetTimeInMilliseconds() + 20000;
pObject->m_nEndOfLifeTime = CTimer::GetTimeInMilliseconds() + 20000000;
pObject->m_nRefModelIndex = -1;
pObject->bUseVehicleColours = false;
++CObject::nNoTempObjects;

View File

@ -4626,7 +4626,7 @@ CCam::Process_FollowPed_Rotation(const CVector &CameraTarget, float TargetOrient
*/
{
LookLeftRight = -CPad::GetPad(0)->LookAroundLeftRight();
LookUpDown = -CPad::GetPad(0)->LookAroundUpDown();
LookUpDown = CPad::GetPad(0)->LookAroundUpDown();
}
float AlphaOffset, BetaOffset;
if(UseMouse){

View File

@ -3222,6 +3222,9 @@ int16 CPad::SniperModeLookUpDown(void)
int16 axis = NewState.LeftStickY;
int16 dpad;
#ifdef FIX_BUGS
axis = -axis;
#endif
if (CPad::bInvertLook4Pad) {
axis = -axis;
dpad = (NewState.DPadDown - NewState.DPadUp) / 2;
@ -3257,7 +3260,9 @@ int16 CPad::LookAroundLeftRight(void)
int16 CPad::LookAroundUpDown(void)
{
int16 axis = GetPad(0)->NewState.RightStickY;
#ifdef FIX_BUGS
axis = -axis;
#endif
if (CPad::bInvertLook4Pad)
axis = -axis;

View File

@ -243,8 +243,10 @@ enum Config {
//#define NO_ISLAND_LOADING // disable loadscreen between islands via loading all island data at once, consumes more memory and CPU
//#define USE_TEXTURE_POOL
//#define CUTSCENE_BORDERS_SWITCH
#ifdef LIBRW
//#define EXTENDED_COLOURFILTER // more options for colour filter (replaces mblur)
//#define EXTENDED_PIPELINES // custom render pipelines (includes Neo)
#endif
//#define MULTISAMPLING // adds MSAA option TODO
#ifdef LIBRW

View File

@ -462,6 +462,53 @@ RwBool RwIm3DRenderPrimitive(RwPrimitiveType primType);
RwBool RwRenderStateGet(RwRenderState state, void *value)
{
uint32 *uival = (uint32*)value;
uint32 fog;
switch(state){
case rwRENDERSTATETEXTURERASTER: *(void**)value = GetRenderStatePtr(TEXTURERASTER); return true;
case rwRENDERSTATETEXTUREADDRESS: *uival = GetRenderState(TEXTUREADDRESS); return true;
case rwRENDERSTATETEXTUREADDRESSU: *uival = GetRenderState(TEXTUREADDRESSU); return true;
case rwRENDERSTATETEXTUREADDRESSV: *uival = GetRenderState(TEXTUREADDRESSV); return true;
case rwRENDERSTATETEXTUREPERSPECTIVE: *uival = 1; return true;
case rwRENDERSTATEZTESTENABLE: *uival = GetRenderState(ZTESTENABLE); return true;
case rwRENDERSTATESHADEMODE: *uival = rwSHADEMODEGOURAUD; return true;
case rwRENDERSTATEZWRITEENABLE: *uival = GetRenderState(ZWRITEENABLE); return true;
case rwRENDERSTATETEXTUREFILTER: *uival = GetRenderState(TEXTUREFILTER); return true;
case rwRENDERSTATESRCBLEND: *uival = GetRenderState(SRCBLEND); return true;
case rwRENDERSTATEDESTBLEND: *uival = GetRenderState(DESTBLEND); return true;
case rwRENDERSTATEVERTEXALPHAENABLE: *uival = GetRenderState(VERTEXALPHA); return true;
case rwRENDERSTATEBORDERCOLOR: *uival = 0; return true;
case rwRENDERSTATEFOGENABLE: *uival = GetRenderState(FOGENABLE); return true;
case rwRENDERSTATEFOGCOLOR:
// have to swap R and B here
fog = GetRenderState(FOGCOLOR);
*uival = (fog>>16)&0xFF;
*uival |= (fog&0xFF)<<16;
*uival |= fog&0xFF00;
*uival |= fog&0xFF000000;
return true;
case rwRENDERSTATEFOGTYPE: *uival = rwFOGTYPELINEAR; return true;
case rwRENDERSTATEFOGDENSITY: *(float*)value = 1.0f; return true;
case rwRENDERSTATECULLMODE: *uival = GetRenderState(CULLMODE); return true;
// all unsupported
case rwRENDERSTATEFOGTABLE:
case rwRENDERSTATEALPHAPRIMITIVEBUFFER:
case rwRENDERSTATESTENCILENABLE:
case rwRENDERSTATESTENCILFAIL:
case rwRENDERSTATESTENCILZFAIL:
case rwRENDERSTATESTENCILPASS:
case rwRENDERSTATESTENCILFUNCTION:
case rwRENDERSTATESTENCILFUNCTIONREF:
case rwRENDERSTATESTENCILFUNCTIONMASK:
case rwRENDERSTATESTENCILFUNCTIONWRITEMASK:
default:
return false;
}
}
RwBool RwRenderStateSet(RwRenderState state, void *value)
{
uint32 uival = (uintptr)value;

View File

@ -522,7 +522,7 @@ CPed::CPed(uint32 pedType) : m_pedIK(this)
m_delayedSoundID = -1;
m_delayedSoundTimer = 0;
CPopulation::UpdatePedCount((ePedType)m_nPedType, false);
m_lastComment = -1;
m_lastComment = UINT32_MAX;
}
// --MIAMI: Done
@ -21440,3 +21440,17 @@ CPed::SetLook(float direction)
SetLookFlag(direction, false);
}
}
// --MIAMI: Done
// Unused
void CPed::PedSetGetInCarPositionCB(CAnimBlendAssociation* assoc, void* arg)
{
CPed* pPed = (CPed*)arg;
CMatrix mat(pPed->GetMatrix());
CVehicle* pVehicle = pPed->m_pMyVehicle;
const CVector& offset = (pVehicle->bIsVan && (pPed->m_vehEnterType == CAR_DOOR_RR || pPed->m_vehEnterType == CAR_DOOR_LR)) ? vecPedVanRearDoorAnimOffset : vecPedCarDoorAnimOffset;
CVector position = Multiply3x3(mat, offset) + pPed->GetPosition();
CPedPlacement::FindZCoorForPed(&position);
pPed->SetMoveSpeed(0.0f, 0.0f, 0.0f);
pPed->SetPosition(position);
}

View File

@ -646,7 +646,7 @@ public:
uint16 m_lastQueuedSound;
uint16 m_queuedSound;
bool m_canTalk;
int32 m_lastComment;
uint32 m_lastComment;
CVector m_vecSeekPosEx; // used for OBJECTIVE_GUARD_SPOT
float m_distanceToCountSeekDoneEx; // used for OBJECTIVE_GUARD_SPOT
@ -911,6 +911,7 @@ public:
static void DeleteSunbatheIdleAnimCB(CAnimBlendAssociation *assoc, void *arg);
static void PedSetPreviousStateCB(CAnimBlendAssociation *assoc, void *arg);
static void PedAnimShuffleCB(CAnimBlendAssociation *assoc, void *arg);
static void PedSetGetInCarPositionCB(CAnimBlendAssociation* assoc, void* arg);
bool IsPlayer(void);
bool IsFemale(void) { return m_nPedType == PEDTYPE_CIVFEMALE || m_nPedType == PEDTYPE_PROSTITUTE; }

View File

@ -136,7 +136,7 @@ void CPedAttractorManager::RemoveIceCreamVanEffects(C2dEffect* pEffect)
return;
for (std::vector<CVehicleToEffect>::const_iterator assoc = vVehicleToEffect.cbegin(); assoc != vVehicleToEffect.cend();) {
if (assoc->GetVehicle() != pVehicle) {
assoc++;
++assoc;
continue;
}
uint32 total = 0;
@ -145,7 +145,7 @@ void CPedAttractorManager::RemoveIceCreamVanEffects(C2dEffect* pEffect)
total++;
}
if (total > 0)
assoc++;
++assoc;
else
assoc = vVehicleToEffect.erase(assoc);
}

View File

@ -1055,6 +1055,7 @@ CPlayerPed::FindWeaponLockOnTarget(void)
if (nextTarget)
nextTarget->RegisterReference((CEntity**)&m_pPointGunAt);
SetPointGunAt(nextTarget);
Say(SOUND_PED_AIMING);
return true;
}

View File

@ -418,7 +418,7 @@ void CMovingThings::Init()
}
CEscalators::Init();
aScrollBars[0].Init(CVector(-1069.209f, 1320.126f, 18.848f), CVector(-1069.209f, 1342.299f, 22.612), SCROLL_ARENA_STRING, 128, 255, 0, 0.3f);
aScrollBars[0].Init(CVector(-1069.209f, 1320.126f, 18.848f), CVector(-1069.209f, 1342.299f, 22.612f), SCROLL_ARENA_STRING, 128, 255, 0, 0.3f);
}
void CMovingThings::Shutdown()

View File

@ -792,7 +792,7 @@ CBike::ProcessControl(void)
CSurfaceTable::GetAdhesionGroup(m_aWheelColPoints[rearLine].surfaceB) == ADHESIVE_SAND)
steer *= pBikeHandling->fSlipSteer;
f = Asin(Min(steer/SQR(fwdSpeed), 1.0))/DEGTORAD(pHandling->fSteeringLock);
if(m_fSteerAngle < 0.0f && m_fLeanLRAngle < 0.0f &&
if(m_fSteerAngle < 0.0f && m_fLeanLRAngle < 0.0f ||
m_fSteerAngle > 0.0f && m_fLeanLRAngle > 0.0f)
f *= 2.0f;
f = Min(f, 1.0f);

View File

@ -1,4 +1,4 @@
#include "common.h"
#include "common.h"
#include "General.h"
#include "Timecycle.h"
@ -145,7 +145,7 @@ CBoat::ProcessControl(void)
AutoPilot.m_nCarMission == MISSION_BLOCKPLAYER_CLOSE ||
AutoPilot.m_nCarMission == MISSION_ATTACKPLAYER) &&
CTimer::GetTimeInMilliseconds() > m_nPoliceShoutTimer){
DMAudio.PlayOneShot(m_audioEntityId, SOUND_115, 0.0f);
DMAudio.PlayOneShot(m_audioEntityId, SOUND_PED_VCPA_PLAYER_FOUND, 0.0f);
m_nPoliceShoutTimer = CTimer::GetTimeInMilliseconds() + 4500 + (CGeneral::GetRandomNumber()&0xFFF);
}
}