summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--src/animation/AnimBlendAssocGroup.cpp4
-rw-r--r--src/animation/AnimBlendAssocGroup.h2
-rw-r--r--src/animation/AnimBlendAssociation.cpp4
-rw-r--r--src/animation/AnimBlendHierarchy.cpp2
-rw-r--r--src/animation/AnimManager.cpp54
-rw-r--r--src/animation/AnimManager.h8
-rw-r--r--src/audio/AudioManager.cpp1699
-rw-r--r--src/audio/AudioManager.h208
-rw-r--r--src/audio/sampman.cpp35
-rw-r--r--src/control/CarCtrl.cpp22
-rw-r--r--src/control/CarGen.cpp2
-rw-r--r--src/control/Garages.cpp6
-rw-r--r--src/control/Garages.h2
-rw-r--r--src/control/PathFind.cpp67
-rw-r--r--src/control/Replay.cpp60
-rw-r--r--src/control/Script.cpp6
-rw-r--r--src/core/Camera.cpp10
-rw-r--r--src/core/Collision.cpp8
-rw-r--r--src/core/FileMgr.cpp8
-rw-r--r--src/core/FileMgr.h4
-rw-r--r--src/core/Frontend.cpp6
-rw-r--r--src/core/General.h2
-rw-r--r--src/core/IniFile.cpp4
-rw-r--r--src/core/Pad.cpp4
-rw-r--r--src/core/Streaming.cpp42
-rw-r--r--src/core/Wanted.cpp2
-rw-r--r--src/core/common.h10
-rw-r--r--src/core/main.cpp2
-rw-r--r--src/core/re3.cpp4
-rw-r--r--src/entities/Physical.cpp40
-rw-r--r--src/modelinfo/ClumpModelInfo.h4
-rw-r--r--src/modelinfo/VehicleModelInfo.cpp2
-rw-r--r--src/peds/Ped.cpp16
-rw-r--r--src/peds/Ped.h2
-rw-r--r--src/peds/PedPlacement.cpp2
-rw-r--r--src/render/Clouds.cpp8
-rw-r--r--src/render/Coronas.cpp20
-rw-r--r--src/render/Fluff.cpp2
-rw-r--r--src/render/Fluff.h2
-rw-r--r--src/render/Hud.cpp20
-rw-r--r--src/render/Lights.cpp28
-rw-r--r--src/render/ParticleMgr.cpp2
-rw-r--r--src/render/PointLights.cpp2
-rw-r--r--src/render/Shadows.cpp26
-rw-r--r--src/render/Timecycle.cpp6
-rw-r--r--src/render/VisibilityPlugins.cpp16
-rw-r--r--src/render/WaterLevel.cpp10
-rw-r--r--src/skel/win/win.cpp2
-rw-r--r--src/vehicles/Automobile.cpp58
-rw-r--r--src/vehicles/Boat.cpp2
-rw-r--r--src/vehicles/HandlingMgr.cpp8
-rw-r--r--src/vehicles/Heli.cpp12
-rw-r--r--src/vehicles/Plane.cpp4
-rw-r--r--src/vehicles/Vehicle.cpp8
54 files changed, 1650 insertions, 939 deletions
diff --git a/src/animation/AnimBlendAssocGroup.cpp b/src/animation/AnimBlendAssocGroup.cpp
index 05f9a06a..72c90233 100644
--- a/src/animation/AnimBlendAssocGroup.cpp
+++ b/src/animation/AnimBlendAssocGroup.cpp
@@ -129,7 +129,7 @@ CAnimBlendAssocGroup::CreateAssociations(const char *name)
// Create associations from hierarchies for a given clump
void
-CAnimBlendAssocGroup::CreateAssociations(const char *blockName, RpClump *clump, char **animNames, int numAssocs)
+CAnimBlendAssocGroup::CreateAssociations(const char *blockName, RpClump *clump, const char **animNames, int numAssocs)
{
int i;
CAnimBlock *animBlock;
@@ -157,5 +157,5 @@ STARTPATCHES
InjectHook(0x401420, (CAnimBlendAssociation *(CAnimBlendAssocGroup::*)(uint32))&CAnimBlendAssocGroup::CopyAnimation, PATCH_JUMP);
InjectHook(0x4013E0, (CAnimBlendAssociation *(CAnimBlendAssocGroup::*)(const char*))&CAnimBlendAssocGroup::CopyAnimation, PATCH_JUMP);
InjectHook(0x401130, (void (CAnimBlendAssocGroup::*)(const char*))&CAnimBlendAssocGroup::CreateAssociations, PATCH_JUMP);
- InjectHook(0x401220, (void (CAnimBlendAssocGroup::*)(const char*, RpClump*, char**, int))&CAnimBlendAssocGroup::CreateAssociations, PATCH_JUMP);
+ InjectHook(0x401220, (void (CAnimBlendAssocGroup::*)(const char*, RpClump*, const char**, int))&CAnimBlendAssocGroup::CreateAssociations, PATCH_JUMP);
ENDPATCHES
diff --git a/src/animation/AnimBlendAssocGroup.h b/src/animation/AnimBlendAssocGroup.h
index 708a3cdd..aa58b0d3 100644
--- a/src/animation/AnimBlendAssocGroup.h
+++ b/src/animation/AnimBlendAssocGroup.h
@@ -16,5 +16,5 @@ public:
CAnimBlendAssociation *CopyAnimation(uint32 id);
CAnimBlendAssociation *CopyAnimation(const char *name);
void CreateAssociations(const char *name);
- void CreateAssociations(const char *blockName, RpClump *clump, char **animNames, int numAssocs);
+ void CreateAssociations(const char *blockName, RpClump *clump, const char **animNames, int numAssocs);
};
diff --git a/src/animation/AnimBlendAssociation.cpp b/src/animation/AnimBlendAssociation.cpp
index d94fe2c1..d2214057 100644
--- a/src/animation/AnimBlendAssociation.cpp
+++ b/src/animation/AnimBlendAssociation.cpp
@@ -185,7 +185,7 @@ CAnimBlendAssociation::UpdateBlend(float timeDelta)
if(blendAmount <= 0.0f && blendDelta < 0.0f){
// We're faded out and are not fading in
blendAmount = 0.0f;
- blendDelta = max(0.0, blendDelta);
+ blendDelta = Max(0.0f, blendDelta);
if(flags & ASSOC_DELETEFADEDOUT){
if(callbackType == CB_FINISH || callbackType == CB_DELETE)
callback(this, callbackArg);
@@ -197,7 +197,7 @@ CAnimBlendAssociation::UpdateBlend(float timeDelta)
if(blendAmount > 1.0f){
// Maximally faded in, clamp values
blendAmount = 1.0f;
- blendDelta = min(0.0, blendDelta);
+ blendDelta = Min(0.0f, blendDelta);
}
return true;
diff --git a/src/animation/AnimBlendHierarchy.cpp b/src/animation/AnimBlendHierarchy.cpp
index e4bcdc69..e594e5d8 100644
--- a/src/animation/AnimBlendHierarchy.cpp
+++ b/src/animation/AnimBlendHierarchy.cpp
@@ -36,7 +36,7 @@ CAnimBlendHierarchy::CalcTotalTime(void)
float seqTime = 0.0f;
for(j = 0; j < sequences[i].numFrames; j++)
seqTime += sequences[i].GetKeyFrame(j)->deltaTime;
- totalTime = max(totalTime, seqTime);
+ totalTime = Max(totalTime, seqTime);
}
totalLength = totalTime;
}
diff --git a/src/animation/AnimManager.cpp b/src/animation/AnimManager.cpp
index 6ad63e49..444ae93d 100644
--- a/src/animation/AnimManager.cpp
+++ b/src/animation/AnimManager.cpp
@@ -198,7 +198,7 @@ AnimAssocDesc aStdAnimDescsSide[] = {
{ ANIM_IDLE_STANCE, ASSOC_REPEAT },
{ ANIM_WALK_START, ASSOC_HAS_TRANSLATION | ASSOC_HAS_X_TRANSLATION },
};
-char *aStdAnimations[] = {
+char const *aStdAnimations[] = {
"walk_civi",
"run_civi",
"sprint_panic",
@@ -373,162 +373,162 @@ char *aStdAnimations[] = {
"PHONE_out",
"PHONE_talk",
};
-char *aPlayerAnimations[] = {
+char const *aPlayerAnimations[] = {
"walk_player",
"run_player",
"SPRINT_civi",
"IDLE_STANCE",
"walk_start",
};
-char *aPlayerWithRocketAnimations[] = {
+char const *aPlayerWithRocketAnimations[] = {
"walk_rocket",
"run_rocket",
"run_rocket",
"idle_rocket",
"walk_start_rocket",
};
-char *aPlayer1ArmedAnimations[] = {
+char const *aPlayer1ArmedAnimations[] = {
"walk_player",
"run_1armed",
"SPRINT_civi",
"IDLE_STANCE",
"walk_start",
};
-char *aPlayer2ArmedAnimations[] = {
+char const *aPlayer2ArmedAnimations[] = {
"walk_player",
"run_armed",
"run_armed",
"idle_stance",
"walk_start",
};
-char *aPlayerBBBatAnimations[] = {
+char const *aPlayerBBBatAnimations[] = {
"walk_player",
"run_player",
"run_player",
"IDLE_STANCE",
"walk_start",
};
-char *aShuffleAnimations[] = {
+char const *aShuffleAnimations[] = {
"WALK_shuffle",
"RUN_civi",
"SPRINT_civi",
"IDLE_STANCE",
};
-char *aOldAnimations[] = {
+char const *aOldAnimations[] = {
"walk_old",
"run_civi",
"sprint_civi",
"idle_stance",
};
-char *aGang1Animations[] = {
+char const *aGang1Animations[] = {
"walk_gang1",
"run_gang1",
"sprint_civi",
"idle_stance",
};
-char *aGang2Animations[] = {
+char const *aGang2Animations[] = {
"walk_gang2",
"run_gang1",
"sprint_civi",
"idle_stance",
};
-char *aFatAnimations[] = {
+char const *aFatAnimations[] = {
"walk_fat",
"run_civi",
"woman_runpanic",
"idle_stance",
};
-char *aOldFatAnimations[] = {
+char const *aOldFatAnimations[] = {
"walk_fatold",
"run_fatold",
"woman_runpanic",
"idle_stance",
};
-char *aStdWomanAnimations[] = {
+char const *aStdWomanAnimations[] = {
"woman_walknorm",
"woman_run",
"woman_runpanic",
"woman_idlestance",
};
-char *aWomanShopAnimations[] = {
+char const *aWomanShopAnimations[] = {
"woman_walkshop",
"woman_run",
"woman_run",
"woman_idlestance",
};
-char *aBusyWomanAnimations[] = {
+char const *aBusyWomanAnimations[] = {
"woman_walkbusy",
"woman_run",
"woman_runpanic",
"woman_idlestance",
};
-char *aSexyWomanAnimations[] = {
+char const *aSexyWomanAnimations[] = {
"woman_walksexy",
"woman_run",
"woman_runpanic",
"woman_idlestance",
};
-char *aOldWomanAnimations[] = {
+char const *aOldWomanAnimations[] = {
"woman_walkold",
"woman_run",
"woman_runpanic",
"woman_idlestance",
};
-char *aFatWomanAnimations[] = {
+char const *aFatWomanAnimations[] = {
"walk_fat",
"woman_run",
"woman_runpanic",
"woman_idlestance",
};
-char *aPanicChunkyAnimations[] = {
+char const *aPanicChunkyAnimations[] = {
"run_fatold",
"woman_runpanic",
"woman_runpanic",
"idle_stance",
};
-char *aPlayerStrafeBackAnimations[] = {
+char const *aPlayerStrafeBackAnimations[] = {
"walk_player_back",
"run_player_back",
"run_player_back",
"IDLE_STANCE",
"walk_start_back",
};
-char *aPlayerStrafeLeftAnimations[] = {
+char const *aPlayerStrafeLeftAnimations[] = {
"walk_player_left",
"run_left",
"run_left",
"IDLE_STANCE",
"walk_start_left",
};
-char *aPlayerStrafeRightAnimations[] = {
+char const *aPlayerStrafeRightAnimations[] = {
"walk_player_right",
"run_right",
"run_right",
"IDLE_STANCE",
"walk_start_right",
};
-char *aRocketStrafeBackAnimations[] = {
+char const *aRocketStrafeBackAnimations[] = {
"walk_rocket_back",
"run_rocket_back",
"run_rocket_back",
"idle_rocket",
"walkst_rocket_back",
};
-char *aRocketStrafeLeftAnimations[] = {
+char const *aRocketStrafeLeftAnimations[] = {
"walk_rocket_left",
"run_rocket_left",
"run_rocket_left",
"idle_rocket",
"walkst_rocket_left",
};
-char *aRocketStrafeRightAnimations[] = {
+char const *aRocketStrafeRightAnimations[] = {
"walk_rocket_right",
"run_rocket_right",
"run_rocket_right",
"idle_rocket",
"walkst_rocket_right",
};
-AnimAssocDefinition CAnimManager::ms_aAnimAssocDefinitions[NUM_ANIM_ASSOC_GROUPS] = {
+const AnimAssocDefinition CAnimManager::ms_aAnimAssocDefinitions[NUM_ANIM_ASSOC_GROUPS] = {
{ "man", "ped", MI_COP, 173, aStdAnimations, aStdAnimDescs },
{ "player", "ped", MI_COP, 5, aPlayerAnimations, aStdAnimDescs },
{ "playerrocket", "ped", MI_COP, 5, aPlayerWithRocketAnimations, aStdAnimDescs },
@@ -749,7 +749,7 @@ CAnimManager::LoadAnimFiles(void)
RpClump *clump = (RpClump*)mi->CreateInstance();
RpAnimBlendClumpInit(clump);
CAnimBlendAssocGroup *group = &CAnimManager::ms_aAnimAssocGroups[i];
- AnimAssocDefinition *def = &CAnimManager::ms_aAnimAssocDefinitions[i];
+ const AnimAssocDefinition *def = &CAnimManager::ms_aAnimAssocDefinitions[i];
group->CreateAssociations(def->blockName, clump, def->animNames, def->numAnims);
for(j = 0; j < group->numAssociations; j++)
group->GetAnimation(j)->flags |= def->animDescs[j].flags;
diff --git a/src/animation/AnimManager.h b/src/animation/AnimManager.h
index 3a7c057c..d2e85c06 100644
--- a/src/animation/AnimManager.h
+++ b/src/animation/AnimManager.h
@@ -231,17 +231,17 @@ struct AnimAssocDesc
struct AnimAssocDefinition
{
- char *name;
- char *blockName;
+ char const *name;
+ char const *blockName;
int32 modelIndex;
int32 numAnims;
- char **animNames;
+ char const **animNames;
AnimAssocDesc *animDescs;
};
class CAnimManager
{
- static AnimAssocDefinition ms_aAnimAssocDefinitions[NUM_ANIM_ASSOC_GROUPS];
+ static const AnimAssocDefinition ms_aAnimAssocDefinitions[NUM_ANIM_ASSOC_GROUPS];
static CAnimBlock *ms_aAnimBlocks; //[2]
static CAnimBlendHierarchy *ms_aAnimations; //[250]
static int32 &ms_numAnimBlocks;
diff --git a/src/audio/AudioManager.cpp b/src/audio/AudioManager.cpp
index e08efbc6..e1860698 100644
--- a/src/audio/AudioManager.cpp
+++ b/src/audio/AudioManager.cpp
@@ -22,6 +22,7 @@
#include "Replay.h"
#include "Stats.h"
#include "SurfaceTable.h"
+#include "Train.h"
#include "Transmission.h"
#include "Vehicle.h"
#include "Weather.h"
@@ -29,6 +30,11 @@
#include "ZoneCull.h"
#include "sampman.h"
+cAudioManager &AudioManager = *(cAudioManager *)0x880FC0;
+
+constexpr int totalAudioEntitiesSlots = 200;
+constexpr int maxVolume = 127;
+
uint32 *audioLogicTimers = (uint32 *)0x6508A0;
// TODO: where is this used? Is this the right file?
@@ -111,26 +117,117 @@ cPedComments::Add(tPedComment *com)
uint8 index;
if(nrOfCommentsInBank[activeBank] >= 20u) {
- index = field_1120[activeBank][19];
+ index = indexMap[activeBank][19];
if(m_asPedComments[activeBank][index].m_bVolume > com->m_bVolume) return;
} else {
index = nrOfCommentsInBank[activeBank]++;
}
- m_asPedComments[activeBank][index] = *com;
+
+ m_asPedComments[activeBank][index].m_nSampleIndex = com->m_nSampleIndex;
+ m_asPedComments[activeBank][index].m_entityIndex = com->m_entityIndex;
+ m_asPedComments[activeBank][index].m_vecPos = com->m_vecPos;
+ m_asPedComments[activeBank][index].m_fDistance = com->m_fDistance;
+ m_asPedComments[activeBank][index].m_bVolume = com->m_bVolume;
uint32 i = 0;
if(index != 0) {
for(i = 0; i < index; i++) {
- if(m_asPedComments[activeBank][field_1120[activeBank][i]].m_bVolume <
+ if(m_asPedComments[activeBank][indexMap[activeBank][i]].m_bVolume <
m_asPedComments[activeBank][index].m_bVolume) {
- memmove(&field_1120[activeBank][i + 1], &field_1120[activeBank][i],
- 19 - i);
break;
}
}
+
+ if(i < index)
+ memmove(&indexMap[activeBank][i + 1], &indexMap[activeBank][i], 19 - i);
}
- field_1120[activeBank][i] = index;
+ indexMap[activeBank][i] = index;
+}
+
+void
+cPedComments::Process()
+{
+ int sampleIndex;
+ uint8 actualUsedBank;
+ tPedComment *comment;
+
+ if(!AudioManager.m_bUserPause) {
+ if(nrOfCommentsInBank[activeBank]) {
+ sampleIndex =
+ m_asPedComments[activeBank][indexMap[activeBank][0]].m_nSampleIndex;
+ if(!SampleManager.IsPedCommentLoaded(sampleIndex))
+ SampleManager.LoadPedComment(sampleIndex);
+
+ AudioManager.m_sQueueSample.m_nEntityIndex =
+ m_asPedComments[activeBank][indexMap[activeBank][0]].m_entityIndex;
+ AudioManager.m_sQueueSample.m_counter = 0;
+ AudioManager.m_sQueueSample.m_nSampleIndex = sampleIndex;
+ AudioManager.m_sQueueSample.m_bBankIndex = 1;
+ AudioManager.m_sQueueSample.field_16 = 3;
+ AudioManager.m_sQueueSample.m_bVolume =
+ m_asPedComments[activeBank][indexMap[activeBank][0]].m_bVolume;
+ AudioManager.m_sQueueSample.m_fDistance =
+ m_asPedComments[activeBank][indexMap[activeBank][0]].m_fDistance;
+ AudioManager.m_sQueueSample.m_nLoopCount = 1;
+ AudioManager.m_sQueueSample.m_nLoopStart = 0;
+ AudioManager.m_sQueueSample.m_nLoopEnd = -1;
+ AudioManager.m_sQueueSample.m_bEmittingVolume = maxVolume;
+ AudioManager.m_sQueueSample.field_48 = 3.0f;
+ switch(sampleIndex) {
+ case AUDIO_SAMPLE_POLICE_HELI_FOUND_PLAYER_1:
+ case AUDIO_SAMPLE_POLICE_HELI_FOUND_PLAYER_2:
+ case AUDIO_SAMPLE_POLICE_HELI_FOUND_PLAYER_3:
+ AudioManager.m_sQueueSample.m_fSoundIntensity = 400.0f;
+ break;
+ default: AudioManager.m_sQueueSample.m_fSoundIntensity = 50.0f; break;
+ }
+ AudioManager.m_sQueueSample.field_56 = 1;
+ AudioManager.m_sQueueSample.m_vecPos =
+ m_asPedComments[activeBank][indexMap[activeBank][0]].m_vecPos;
+
+ if((sampleIndex - AUDIO_SAMPLE_AMMUNATION_WELCOME_1) > 1 &&
+ sampleIndex != AUDIO_SAMPLE_AMMUNATION_WELCOME_3) {
+ AudioManager.m_sQueueSample.m_bReverbFlag = 1;
+ AudioManager.m_sQueueSample.m_bRequireReflection = 1;
+ } else {
+ AudioManager.m_sQueueSample.m_bReverbFlag = 0;
+ AudioManager.m_sQueueSample.m_bRequireReflection = 0;
+ }
+
+ AudioManager.m_sQueueSample.m_bIsDistant = 0;
+ AudioManager.m_sQueueSample.m_nFrequency =
+ SampleManager.GetSampleBaseFrequency(
+ AudioManager.m_sQueueSample.m_nSampleIndex) +
+ AudioManager.RandomDisplacement(750u);
+ if(CTimer::GetIsSlowMotionActive())
+ AudioManager.m_sQueueSample.m_nFrequency =
+ AudioManager.m_sQueueSample.m_nFrequency >> 1;
+ m_asPedComments[activeBank][indexMap[activeBank][0]].field_25 = -1;
+ AudioManager.AddSampleToRequestedQueue();
+ }
+
+ // Switch bank
+ if(activeBank) {
+ actualUsedBank = 1;
+ activeBank = 0;
+ } else {
+ actualUsedBank = 0;
+ activeBank = 1;
+ }
+ comment = m_asPedComments[actualUsedBank];
+ for(uint32 i = 0; i < nrOfCommentsInBank[actualUsedBank]; i++) {
+ if(m_asPedComments[actualUsedBank][indexMap[actualUsedBank][i]].field_25 >
+ 0) {
+ --m_asPedComments[actualUsedBank][indexMap[actualUsedBank][i]]
+ .field_25;
+ Add(&comment[indexMap[actualUsedBank][i]]);
+ }
+ }
+
+ for(uint32 i = 0; i < 20; i++) { indexMap[actualUsedBank][i] = 20; }
+ nrOfCommentsInBank[actualUsedBank] = 0;
+ }
}
void *
@@ -154,11 +251,6 @@ cAudioScriptObject::operator delete(void *p, int handle)
CPools::GetAudioScriptObjectPool()->Delete((cAudioScriptObject *)p);
}
-cAudioManager &AudioManager = *(cAudioManager *)0x880FC0;
-
-constexpr int totalAudioEntitiesSlots = 200;
-constexpr int maxVolume = 127;
-
char &g_nMissionAudioPlayingStatus = *(char *)0x60ED88;
void
@@ -184,11 +276,11 @@ cAudioManager::AddDetailsToRequestedOrderList(uint8 sample)
void
cAudioManager::AddPlayerCarSample(uint8 emittingVolume, int32 freq, uint32 sample, uint8 unk1,
- uint8 unk2, bool notLooping)
+ uint8 counter, bool notLooping)
{
m_sQueueSample.m_bVolume = ComputeVolume(emittingVolume, 50.f, m_sQueueSample.m_fDistance);
if(m_sQueueSample.m_bVolume) {
- m_sQueueSample.field_4 = unk2;
+ m_sQueueSample.m_counter = counter;
m_sQueueSample.m_nSampleIndex = sample;
m_sQueueSample.m_bBankIndex = 0;
m_sQueueSample.m_bIsDistant = 0;
@@ -234,7 +326,7 @@ cAudioManager::AddReflectionsToRequestedQueue()
ComputeVolume(emittingVolume, m_sQueueSample.m_fSoundIntensity,
m_sQueueSample.m_fDistance);
if(m_sQueueSample.m_bVolume > emittingVolume >> 4) {
- m_sQueueSample.field_4 += ((i + 1) << 8);
+ m_sQueueSample.m_counter += ((i + 1) << 8);
if(m_sQueueSample.m_nLoopCount) {
noise = RandomDisplacement(
m_sQueueSample.m_nFrequency >> 5);
@@ -244,9 +336,7 @@ cAudioManager::AddReflectionsToRequestedQueue()
m_sQueueSample.m_nFrequency -= noise;
}
m_sQueueSample.field_16 += 20;
- m_sQueueSample.m_vecPos.x = m_avecReflectionsPos[i].x;
- m_sQueueSample.m_vecPos.y = m_avecReflectionsPos[i].y;
- m_sQueueSample.m_vecPos.z = m_avecReflectionsPos[i].z;
+ m_sQueueSample.m_vecPos = m_avecReflectionsPos[i];
AddSampleToRequestedQueue();
}
}
@@ -268,7 +358,6 @@ void
cAudioManager::AddSampleToRequestedQueue()
{
int32 calculatedVolume;
- tActiveSample *sample;
uint8 sampleIndex;
bool bReflections;
@@ -300,33 +389,7 @@ cAudioManager::AddSampleToRequestedQueue()
if(!m_bDynamicAcousticModelingStatus) m_sQueueSample.m_bReverbFlag = 0;
- sample = &m_asSamples[m_bActiveSampleQueue][sampleIndex];
- sample->m_nEntityIndex = m_sQueueSample.m_nEntityIndex;
- sample->field_4 = m_sQueueSample.field_4;
- sample->m_nSampleIndex = m_sQueueSample.m_nSampleIndex;
- sample->m_bBankIndex = m_sQueueSample.m_bBankIndex;
- sample->m_bIsDistant = m_sQueueSample.m_bIsDistant;
- sample->field_16 = m_sQueueSample.field_16;
- sample->m_nFrequency = m_sQueueSample.m_nFrequency;
- sample->m_bVolume = m_sQueueSample.m_bVolume;
- sample->m_fDistance = m_sQueueSample.m_fDistance;
- sample->m_nLoopCount = m_sQueueSample.m_nLoopCount;
- sample->m_nLoopStart = m_sQueueSample.m_nLoopStart;
- sample->m_nLoopEnd = m_sQueueSample.m_nLoopEnd;
- sample->m_bEmittingVolume = m_sQueueSample.m_bEmittingVolume;
- sample->field_48 = m_sQueueSample.field_48;
- sample->m_fSoundIntensity = m_sQueueSample.m_fSoundIntensity;
- sample->field_56 = m_sQueueSample.field_56;
- sample->m_vecPos = m_sQueueSample.m_vecPos;
- sample->m_bReverbFlag = m_sQueueSample.m_bReverbFlag;
- sample->m_bLoopsRemaining = m_sQueueSample.m_bLoopsRemaining;
- sample->m_bRequireReflection = m_sQueueSample.m_bRequireReflection;
- sample->m_bOffset = m_sQueueSample.m_bOffset;
- sample->field_76 = m_sQueueSample.field_76;
- sample->m_bIsProcessed = m_sQueueSample.m_bIsProcessed;
- sample->m_bLoopEnded = m_sQueueSample.m_bLoopEnded;
- sample->calculatedVolume = m_sQueueSample.calculatedVolume;
- sample->field_88 = m_sQueueSample.field_88;
+ m_asSamples[m_bActiveSampleQueue][sampleIndex] = m_sQueueSample;
AddDetailsToRequestedOrderList(sampleIndex);
if(bReflections) AddReflectionsToRequestedQueue();
@@ -340,14 +403,6 @@ cAudioManager::AgeCrimes()
EAXJMP(0x580AF0);
}
-int8
-cAudioManager::GetCurrent3DProviderIndex()
-{
- if(m_bIsInitialised) return SampleManager.GetCurrent3DProviderIndex();
-
- return -1;
-}
-
void
cAudioManager::CalculateDistance(bool *ptr, float dist)
{
@@ -358,7 +413,7 @@ cAudioManager::CalculateDistance(bool *ptr, float dist)
}
bool
-cAudioManager::CheckForAnAudioFileOnCD()
+cAudioManager::CheckForAnAudioFileOnCD() const
{
return SampleManager.CheckForAnAudioFileOnCD();
}
@@ -388,18 +443,18 @@ cAudioManager::ClearRequestedQueue()
int32
cAudioManager::ComputeDopplerEffectedFrequency(uint32 oldFreq, float position1, float position2,
- float speedMultiplier)
+ float speedMultiplier) const
{
uint32 newFreq = oldFreq;
if(!TheCamera.Get_Just_Switched_Status() && speedMultiplier != 0.0f) {
float dist = position2 - position1;
if(dist != 0.0f) {
float speedOfSource = (dist / field_19195) * speedMultiplier;
- if(speedOfSound > fabsf(speedOfSource)) {
+ if(speedOfSound > Abs(speedOfSource)) {
if(speedOfSource < 0.0f) {
- speedOfSource = max(speedOfSource, -1.5f);
+ speedOfSource = Max(speedOfSource, -1.5f);
} else {
- speedOfSource = min(speedOfSource, 1.5f);
+ speedOfSource = Min(speedOfSource, 1.5f);
}
newFreq = (oldFreq * speedOfSound) / (speedOfSource + speedOfSound);
}
@@ -416,7 +471,7 @@ cAudioManager::ComputePan(float, CVector *)
}
uint32
-cAudioManager::ComputeVolume(int emittingVolume, float soundIntensity, float distance)
+cAudioManager::ComputeVolume(int emittingVolume, float soundIntensity, float distance) const
{
float newSoundIntensity;
if(soundIntensity <= 0.0f) return 0;
@@ -445,7 +500,7 @@ cAudioManager::CreateEntity(int32 type, void *entity)
m_asAudioEntities[i].m_awAudioEvent[1] = SOUND_TOTAL_PED_SOUNDS;
m_asAudioEntities[i].m_awAudioEvent[2] = SOUND_TOTAL_PED_SOUNDS;
m_asAudioEntities[i].m_awAudioEvent[3] = SOUND_TOTAL_PED_SOUNDS;
- m_asAudioEntities[i].field_24 = 0;
+ m_asAudioEntities[i].m_Loops = 0;
m_anAudioEntityIndices[m_nAudioEntitiesTotal++] = i;
return i;
}
@@ -467,7 +522,7 @@ cAudioManager::DestroyAllGameCreatedEntities()
case AUDIOTYPE_WEATHER:
case AUDIOTYPE_CRANE:
case AUDIOTYPE_GARAGE:
- case AUDIOTYPE_FIREHYDRANT: cAudioManager::DestroyEntity(i); break;
+ case AUDIOTYPE_FIREHYDRANT: DestroyEntity(i); break;
case AUDIOTYPE_SCRIPTOBJECT:
entity =
(cAudioScriptObject *)m_asAudioEntities[i].m_pEntity;
@@ -506,7 +561,7 @@ void
cAudioManager::DoPoliceRadioCrackle()
{
m_sQueueSample.m_nEntityIndex = m_nPoliceChannelEntity;
- m_sQueueSample.field_4 = 0;
+ m_sQueueSample.m_counter = 0;
m_sQueueSample.m_nSampleIndex = AUDIO_SAMPLE_POLICE_SCANNER_CRACKLE;
m_sQueueSample.m_bBankIndex = 0;
m_sQueueSample.m_bIsDistant = 1;
@@ -532,15 +587,8 @@ cAudioManager::GenerateIntegerRandomNumberTable()
for(int32 i = 0; i < 5; i++) { m_anRandomTable[i] = rand(); }
}
-float
-cAudioManager::GetDistanceSquared(CVector *v)
-{
- const CVector &c = TheCamera.GetPosition();
- return sq(v->x - c.x) + sq(v->y - c.y) + sq((v->z - c.z) * 0.2f);
-}
-
void
-cAudioManager::TranslateEntity(CVector *v1, CVector *v2)
+cAudioManager::TranslateEntity(CVector *v1, CVector *v2) const
{
const RwMatrix &cM = TheCamera.GetMatrix().m_matrix;
const CVector &cV = TheCamera.GetPosition();
@@ -555,24 +603,27 @@ cAudioManager::TranslateEntity(CVector *v1, CVector *v2)
}
void
-cAudioManager::Initialise()
+cAudioManager::ResetAudioLogicTimers(int32 timer)
{
- if(!m_bIsInitialised) {
- PreInitialiseGameSpecificSetup();
- m_bIsInitialised = SampleManager.Initialise();
- if(m_bIsInitialised) {
- m_bActiveSamples = SampleManager.GetMaximumSupportedChannels();
- if(m_bActiveSamples <= 1u) {
- Terminate();
- } else {
- --m_bActiveSamples;
- PostInitialiseGameSpecificSetup();
- InitialisePoliceRadioZones();
- InitialisePoliceRadio();
- MusicManager.Initialise();
+ audioLogicTimers[0] = timer;
+ audioLogicTimers[8] = timer;
+ audioLogicTimers[1] = timer;
+ audioLogicTimers[7] = timer;
+ audioLogicTimers[2] = timer;
+ audioLogicTimers[6] = timer;
+ audioLogicTimers[3] = timer;
+ audioLogicTimers[5] = timer;
+ audioLogicTimers[4] = timer;
+ for(int32 i = 0; i < m_nAudioEntitiesTotal; i++) {
+ if(m_asAudioEntities[m_anAudioEntityIndices[i]].m_nType == AUDIOTYPE_PHYSICAL) {
+ CPed *ped = (CPed *)m_asAudioEntities[m_anAudioEntityIndices[i]].m_pEntity;
+ if(ped->IsPed()) {
+ ped->m_lastSoundStart = timer;
+ ped->m_soundStart = timer + m_anRandomTable[0] % 3000u;
}
}
}
+<<<<<<< HEAD
}
void
@@ -623,6 +674,10 @@ void
cAudioManager::ResetAudioLogicTimers(int32 timer)
{
EAXJMP(0x569650);
+=======
+ ClearMissionAudio();
+ SampleManager.StopChannel(28);
+>>>>>>> More more more audio
}
void
@@ -651,29 +706,15 @@ cAudioManager::Terminate()
}
}
-char
-cAudioManager::GetMissionScriptPoliceAudioPlayingStatus()
-{
- return g_nMissionAudioPlayingStatus;
-}
-
-bool
-cAudioManager::GetMissionAudioLoadingStatus()
-{
- if(m_bIsInitialised) return m_sMissionAudio.m_bLoadingStatus;
-
- return true;
-}
-
uint8
-cAudioManager::GetNum3DProvidersAvailable()
+cAudioManager::GetNum3DProvidersAvailable() const
{
if(m_bIsInitialised) return SampleManager.GetNum3DProvidersAvailable();
return 0;
}
bool
-cAudioManager::IsMP3RadioChannelAvailable()
+cAudioManager::IsMP3RadioChannelAvailable() const
{
if(m_bIsInitialised) return SampleManager.IsMP3RadioChannelAvailable();
@@ -681,7 +722,7 @@ cAudioManager::IsMP3RadioChannelAvailable()
}
uint8
-cAudioManager::GetCDAudioDriveLetter()
+cAudioManager::GetCDAudioDriveLetter() const
{
if(m_bIsInitialised) return SampleManager.GetCDAudioDriveLetter();
@@ -689,31 +730,31 @@ cAudioManager::GetCDAudioDriveLetter()
}
void
-cAudioManager::SetEffectsMasterVolume(uint8 volume)
+cAudioManager::SetEffectsMasterVolume(uint8 volume) const
{
SampleManager.SetEffectsMasterVolume(volume);
}
void
-cAudioManager::SetMusicMasterVolume(uint8 volume)
+cAudioManager::SetMusicMasterVolume(uint8 volume) const
{
SampleManager.SetMusicMasterVolume(volume);
}
void
-cAudioManager::SetEffectsFadeVolume(uint8 volume)
+cAudioManager::SetEffectsFadeVolume(uint8 volume) const
{
SampleManager.SetEffectsFadeVolume(volume);
}
void
-cAudioManager::SetMusicFadeVolume(uint8 volume)
+cAudioManager::SetMusicFadeVolume(uint8 volume) const
{
SampleManager.SetMusicFadeVolume(volume);
}
void
-cAudioManager::SetSpeakerConfig(int32 conf)
+cAudioManager::SetSpeakerConfig(int32 conf) const
{
SampleManager.SetSpeakerConfig(conf);
}
@@ -724,7 +765,7 @@ bool cAudioManager::SetupJumboEngineSound(uint8, int32) { EAXJMP(0x56F140); }
int32 *BankStartOffset = (int32 *)0x6FAB70; //[2]
void
-cAudioManager::PreInitialiseGameSpecificSetup()
+cAudioManager::PreInitialiseGameSpecificSetup() const
{
BankStartOffset[0] = AUDIO_SAMPLE_VEHICLE_HORN_0;
BankStartOffset[1] = AUDIO_SAMPLE_POLICE_COP_1_ARREST_1;
@@ -733,7 +774,7 @@ cAudioManager::PreInitialiseGameSpecificSetup()
int32 &g_nMissionAudioSfx = *(int32 *)0x60ED84;
void
-cAudioManager::SetMissionScriptPoliceAudio(int32 sfx)
+cAudioManager::SetMissionScriptPoliceAudio(int32 sfx) const
{
if(m_bIsInitialised) {
if(g_nMissionAudioPlayingStatus != 1) {
@@ -744,7 +785,7 @@ cAudioManager::SetMissionScriptPoliceAudio(int32 sfx)
}
bool
-cAudioManager::UsesSiren(int32 model)
+cAudioManager::UsesSiren(int32 model) const
{
switch(model) {
case FIRETRUK:
@@ -758,7 +799,7 @@ cAudioManager::UsesSiren(int32 model)
}
bool
-cAudioManager::UsesSirenSwitching(int32 model)
+cAudioManager::UsesSirenSwitching(int32 model) const
{
switch(model) {
case AMBULAN:
@@ -769,28 +810,8 @@ cAudioManager::UsesSirenSwitching(int32 model)
}
}
-bool
-cAudioManager::MissionScriptAudioUsesPoliceChannel(int32 soundMission)
-{
- switch(soundMission) {
- case STREAMED_SOUND_MISSION_J6_D:
- case STREAMED_SOUND_MISSION_T4_A:
- case STREAMED_SOUND_MISSION_S1_H:
- case STREAMED_SOUND_MISSION_S3_B:
- case STREAMED_SOUND_MISSION_EL3_A:
- case STREAMED_SOUND_MISSION_A3_A:
- case STREAMED_SOUND_MISSION_A5_A:
- case STREAMED_SOUND_MISSION_K1_A:
- case STREAMED_SOUND_MISSION_R1_A:
- case STREAMED_SOUND_MISSION_R5_A:
- case STREAMED_SOUND_MISSION_LO2_A:
- case STREAMED_SOUND_MISSION_LO6_A: return true;
- default: return false;
- }
-}
-
char *
-cAudioManager::Get3DProviderName(uint8 id)
+cAudioManager::Get3DProviderName(uint8 id) const
{
if(!m_bIsInitialised) return 0;
if(id >= SampleManager.GetNum3DProvidersAvailable()) return 0;
@@ -802,13 +823,13 @@ cAudioManager::SetupJumboFlySound(uint8 emittingVol)
{
int32 vol;
- if(m_sQueueSample.m_fDistance >= 440.0) return 0;
+ if(m_sQueueSample.m_fDistance >= 440.0f) return 0;
vol = ComputeVolume(emittingVol, 440.0f, m_sQueueSample.m_fDistance);
m_sQueueSample.m_bVolume = vol;
if(m_sQueueSample.m_bVolume) {
m_sQueueSample.m_nSampleIndex = AUDIO_SAMPLE_JUMBO_FLY_SOUND;
- m_sQueueSample.field_4 = 0;
+ m_sQueueSample.m_counter = 0;
m_sQueueSample.m_bBankIndex = 0;
m_sQueueSample.m_bIsDistant = 0;
m_sQueueSample.field_16 = 1;
@@ -838,7 +859,7 @@ cAudioManager::SetupJumboRumbleSound(uint8 emittingVol)
m_sQueueSample.m_bVolume = ComputeVolume(emittingVol, 240.f, m_sQueueSample.m_fDistance);
if(m_sQueueSample.m_bVolume) {
- m_sQueueSample.field_4 = 5;
+ m_sQueueSample.m_counter = 5;
m_sQueueSample.m_nSampleIndex = AUDIO_SAMPLE_JUMBO_RUMBLE_SOUND;
m_sQueueSample.m_bBankIndex = 0;
m_sQueueSample.m_bIsDistant = 1;
@@ -859,10 +880,10 @@ cAudioManager::SetupJumboRumbleSound(uint8 emittingVol)
m_sQueueSample.m_bReverbFlag = 1;
m_sQueueSample.m_bRequireReflection = 0;
AddSampleToRequestedQueue();
- m_sQueueSample.field_4 = 6;
+ m_sQueueSample.m_counter = 6;
m_sQueueSample.m_nSampleIndex = AUDIO_SAMPLE_JUMBO_RUMBLE_SOUND;
m_sQueueSample.m_nFrequency += 200;
- m_sQueueSample.m_bOffset = 127;
+ m_sQueueSample.m_bOffset = maxVolume;
AddSampleToRequestedQueue();
}
return 1;
@@ -884,7 +905,7 @@ cAudioManager::SetupJumboTaxiSound(uint8 vol)
m_sQueueSample.m_bVolume = ComputeVolume(emittingVol, 180.f, m_sQueueSample.m_fDistance);
if(m_sQueueSample.m_bVolume) {
- m_sQueueSample.field_4 = 1;
+ m_sQueueSample.m_counter = 1;
m_sQueueSample.m_nSampleIndex = AUDIO_SAMPLE_JUMBO_TAXI_SOUND;
m_sQueueSample.m_bBankIndex = 0;
m_sQueueSample.m_bIsDistant = 0;
@@ -915,7 +936,7 @@ cAudioManager::SetupJumboWhineSound(uint8 emittingVol, int32 freq)
m_sQueueSample.m_bVolume = ComputeVolume(emittingVol, 170.f, m_sQueueSample.m_fDistance);
if(m_sQueueSample.m_bVolume) {
- m_sQueueSample.field_4 = 2;
+ m_sQueueSample.m_counter = 2;
m_sQueueSample.m_nSampleIndex = AUDIO_SAMPLE_JUMBO_WHINE_SOUND;
m_sQueueSample.m_bBankIndex = 0;
m_sQueueSample.m_bIsDistant = 0;
@@ -939,15 +960,6 @@ cAudioManager::SetupJumboWhineSound(uint8 emittingVol, int32 freq)
}
void
-cAudioManager::PlayLoadedMissionAudio()
-{
- if(m_bIsInitialised && m_sMissionAudio.m_nSampleIndex != NO_SAMPLE &&
- m_sMissionAudio.m_bLoadingStatus == 1 && !m_sMissionAudio.m_bPlayStatus) {
- m_sMissionAudio.m_bIsPlayed = true;
- }
-}
-
-void
cAudioManager::SetMissionAudioLocation(float x, float y, float z)
{
if(m_bIsInitialised) {
@@ -967,54 +979,15 @@ cAudioManager::ResetPoliceRadio()
}
}
-void
-cAudioManager::InterrogateAudioEntities()
-{
- for(int32 i = 0; i < m_nAudioEntitiesTotal; i++) {
- ProcessEntity(m_anAudioEntityIndices[i]);
- m_asAudioEntities[m_anAudioEntityIndices[i]].field_24 = 0;
- }
-}
-
bool
-cAudioManager::UsesReverseWarning(int32 model)
+cAudioManager::UsesReverseWarning(int32 model) const
{
return model == LINERUN || model == FIRETRUK || model == TRASH || model == BUS ||
- model == COACH; // fix
-}
-
-bool
-cAudioManager::HasAirBrakes(int32 model)
-{
- return model == LINERUN || model == FIRETRUK || model == TRASH || model == BUS ||
- model == COACH; // fix
+ model == COACH;
}
int32
-cAudioManager::GetJumboTaxiFreq()
-{
- return (60.833f * m_sQueueSample.m_fDistance) + 22050;
-}
-
-bool
-cAudioManager::IsMissionAudioSampleFinished()
-{
- if(m_bIsInitialised) return m_sMissionAudio.m_bPlayStatus == 2;
-
- static int32 cPretendFrame = 1;
-
- return (cPretendFrame++ & 63) == 0;
-}
-
-WRAPPER
-void
-cAudioManager::InitialisePoliceRadio()
-{
- EAXJMP(0x57EEC0);
-}
-
-int32
-cAudioManager::RandomDisplacement(uint32 seed)
+cAudioManager::RandomDisplacement(uint32 seed) const
{
int32 value;
@@ -1032,13 +1005,13 @@ cAudioManager::RandomDisplacement(uint32 seed)
}
void
-cAudioManager::ReleaseDigitalHandle()
+cAudioManager::ReleaseDigitalHandle() const
{
if(m_bIsInitialised) { SampleManager.ReleaseDigitalHandle(); }
}
void
-cAudioManager::ReacquireDigitalHandle()
+cAudioManager::ReacquireDigitalHandle() const
{
if(m_bIsInitialised) { SampleManager.ReacquireDigitalHandle(); }
}
@@ -1064,60 +1037,7 @@ cAudioManager::SetEntityStatus(int32 id, bool status)
}
void
-cAudioManager::PreTerminateGameSpecificShutdown()
-{
- if(m_nBridgeEntity >= 0) {
- DestroyEntity(m_nBridgeEntity);
- m_nBridgeEntity = -5;
- }
- if(m_nPoliceChannelEntity >= 0) {
- DestroyEntity(m_nPoliceChannelEntity);
- m_nPoliceChannelEntity = -5;
- }
- if(m_nWaterCannonEntity >= 0) {
- DestroyEntity(m_nWaterCannonEntity);
- m_nWaterCannonEntity = -5;
- }
- if(m_nFireAudioEntity >= 0) {
- DestroyEntity(m_nFireAudioEntity);
- m_nFireAudioEntity = -5;
- }
- if(m_nCollisionEntity >= 0) {
- DestroyEntity(m_nCollisionEntity);
- m_nCollisionEntity = -5;
- }
- if(m_nFrontEndEntity >= 0) {
- DestroyEntity(m_nFrontEndEntity);
- m_nFrontEndEntity = -5;
- }
- if(m_nProjectileEntity >= 0) {
- DestroyEntity(m_nProjectileEntity);
- m_nProjectileEntity = -5;
- }
-}
-
-void
-cAudioManager::PostTerminateGameSpecificShutdown()
-{
- ;
-}
-
-bool &bPlayerJustEnteredCar = *(bool *)0x6508C4;
-
-void
-cAudioManager::PlayerJustGotInCar()
-{
- if(m_bIsInitialised) { bPlayerJustEnteredCar = true; }
-}
-
-void
-cAudioManager::PlayerJustLeftCar(void)
-{
- // UNUSED: This is a perfectly empty function.
-}
-
-void
-cAudioManager::GetPhrase(uint32 *phrase, uint32 *prevPhrase, uint32 sample, uint32 maxOffset)
+cAudioManager::GetPhrase(uint32 *phrase, uint32 *prevPhrase, uint32 sample, uint32 maxOffset) const
{
*phrase = sample + m_anRandomTable[m_sQueueSample.m_nEntityIndex & 3] % maxOffset;
@@ -1130,7 +1050,7 @@ cAudioManager::GetPhrase(uint32 *phrase, uint32 *prevPhrase, uint32 sample, uint
uint8 &jumboVolOffset = *(uint8 *)0x6508ED;
void
-cAudioManager::DoJumboVolOffset()
+cAudioManager::DoJumboVolOffset() const
{
if(!(m_FrameCounter % (m_anRandomTable[0] % 6u + 3)))
jumboVolOffset = m_anRandomTable[1] % 60u;
@@ -1258,9 +1178,7 @@ cAudioManager::GetCopTalkSfx(int16 sound)
if(sound == SOUND_PED_ARREST_COP) {
GetPhrase(&sfx, &lastSfx, AUDIO_SAMPLE_POLICE_COP_1_ARREST_1, 6u);
} else {
- if(sound != SOUND_PED_PURSUIT_COP) {
- return cAudioManager::GetGenericMaleTalkSfx(sound);
- }
+ if(sound != SOUND_PED_PURSUIT_COP) { return GetGenericMaleTalkSfx(sound); }
pedState = FindPlayerPed()->m_nPedState;
if(pedState == PED_ARRESTED || pedState == PED_DEAD || pedState == PED_DIE)
@@ -1281,9 +1199,7 @@ cAudioManager::GetSwatTalkSfx(int16 sound)
if(sound == SOUND_PED_ARREST_SWAT) {
GetPhrase(&sfx, &lastSfx, AUDIO_SAMPLE_POLICE_SWAT_1_PURSUIT_ARREST_1, 6u);
} else {
- if(sound != SOUND_PED_PURSUIT_SWAT) {
- return cAudioManager::GetGenericMaleTalkSfx(sound);
- }
+ if(sound != SOUND_PED_PURSUIT_SWAT) { return GetGenericMaleTalkSfx(sound); }
pedState = FindPlayerPed()->m_nPedState;
if(pedState == PED_ARRESTED || pedState == PED_DEAD || pedState == PED_DIE)
@@ -1304,9 +1220,7 @@ cAudioManager::GetFBITalkSfx(int16 sound)
if(sound == SOUND_PED_ARREST_FBI) {
GetPhrase(&sfx, &lastSfx, AUDIO_SAMPLE_POLICE_FBI_1_PURSUIT_ARREST_1, 6u);
} else {
- if(sound != SOUND_PED_PURSUIT_FBI) {
- return cAudioManager::GetGenericMaleTalkSfx(sound);
- }
+ if(sound != SOUND_PED_PURSUIT_FBI) { return GetGenericMaleTalkSfx(sound); }
pedState = FindPlayerPed()->m_nPedState;
if(pedState == PED_ARRESTED || pedState == PED_DEAD || pedState == PED_DIE)
@@ -1324,7 +1238,7 @@ cAudioManager::GetArmyTalkSfx(int16 sound)
PedState pedState;
static uint32 lastSfx = NO_SAMPLE;
- if(sound != SOUND_PED_PURSUIT_ARMY) { return cAudioManager::GetGenericMaleTalkSfx(sound); }
+ if(sound != SOUND_PED_PURSUIT_ARMY) { return GetGenericMaleTalkSfx(sound); }
pedState = FindPlayerPed()->m_nPedState;
if(pedState == PED_ARRESTED || pedState == PED_DEAD || pedState == PED_DIE)
@@ -1356,7 +1270,7 @@ cAudioManager::GetMedicTalkSfx(int16 sound)
case SOUND_PED_FLEE_RUN:
GetPhrase(&sfx, &lastSfx, AUDIO_SAMPLE_PED_MEDIC_1_FLEE_RUN_1, 6u);
break;
- default: return cAudioManager::GetGenericMaleTalkSfx(sound);
+ default: return GetGenericMaleTalkSfx(sound);
}
return 37 * (m_sQueueSample.m_nEntityIndex & 1) + sfx;
}
@@ -1364,7 +1278,7 @@ cAudioManager::GetMedicTalkSfx(int16 sound)
uint32
cAudioManager::GetFiremanTalkSfx(int16 sound)
{
- return cAudioManager::GetGenericMaleTalkSfx(sound);
+ return GetGenericMaleTalkSfx(sound);
}
uint32
@@ -1398,7 +1312,7 @@ cAudioManager::GetNormalMaleTalkSfx(int16 sound)
case SOUND_PED_CHAT:
GetPhrase(&sfx, &lastSfx, AUDIO_SAMPLE_PED_NORMAL_MALE_CHAT_1, 25u);
break;
- default: return cAudioManager::GetGenericMaleTalkSfx(sound);
+ default: return GetGenericMaleTalkSfx(sound);
}
return sfx;
}
@@ -1412,8 +1326,7 @@ cAudioManager::GetTaxiDriverTalkSfx(int16 sound)
if(sound == SOUND_PED_CAR_JACKED) {
GetPhrase(&sfx, &lastSfx, AUDIO_SAMPLE_PED_TAXI_DRIVER_1_CAR_JACKED_1, 7u);
} else {
- if(sound != SOUND_PED_CAR_COLLISION)
- return cAudioManager::GetGenericMaleTalkSfx(sound);
+ if(sound != SOUND_PED_CAR_COLLISION) return GetGenericMaleTalkSfx(sound);
GetPhrase(&sfx, &lastSfx, AUDIO_SAMPLE_PED_TAXI_DRIVER_1_CAR_COLLISION_1, 6u);
}
return 13 * (m_sQueueSample.m_nEntityIndex & 1) + sfx;
@@ -1441,7 +1354,7 @@ cAudioManager::GetPimpTalkSfx(int16 sound)
GetPhrase(&sfx, &lastSfx, AUDIO_SAMPLE_PED_PIMP_CHAT_EVENT_1, 2u);
break;
case SOUND_PED_CHAT: GetPhrase(&sfx, &lastSfx, AUDIO_SAMPLE_PED_PIMP_CHAT_1, 17u); break;
- default: return cAudioManager::GetGenericMaleTalkSfx(sound);
+ default: return GetGenericMaleTalkSfx(sound);
}
return sfx;
}
@@ -1472,7 +1385,7 @@ cAudioManager::GetMafiaTalkSfx(int16 sound)
GetPhrase(&sfx, &lastSfx, AUDIO_SAMPLE_PED_MAFIA_1_CHAT_SEXY_1, 3u);
break;
case SOUND_PED_CHAT: GetPhrase(&sfx, &lastSfx, AUDIO_SAMPLE_PED_MAFIA_1_CHAT_1, 7u); break;
- default: return cAudioManager::GetGenericMaleTalkSfx(sound);
+ default: return GetGenericMaleTalkSfx(sound);
}
return 30 * (m_sQueueSample.m_nEntityIndex % 3) + sfx;
}
@@ -1506,7 +1419,7 @@ cAudioManager::GetTriadTalkSfx(int16 sound)
GetPhrase(&sfx, &lastSfx, AUDIO_SAMPLE_PED_TRIAD_1_CHAT_SEXY_1, 3u);
break;
case SOUND_PED_CHAT: GetPhrase(&sfx, &lastSfx, AUDIO_SAMPLE_PED_TRIAD_1_CHAT_1, 8u); break;
- default: return cAudioManager::GetGenericMaleTalkSfx(sound);
+ default: return GetGenericMaleTalkSfx(sound);
}
return sfx;
}
@@ -1523,7 +1436,7 @@ cAudioManager::GetDiabloTalkSfx(int16 sound)
break;
case SOUND_PED_HANDS_COWER:
sound = SOUND_PED_FLEE_SPRINT;
- return cAudioManager::GetGenericMaleTalkSfx(sound);
+ return GetGenericMaleTalkSfx(sound);
break;
case SOUND_PED_CAR_JACKING:
GetPhrase(&sfx, &lastSfx, AUDIO_SAMPLE_PED_DIABLO_1_CAR_JACKING_1, 2u);
@@ -1544,7 +1457,7 @@ cAudioManager::GetDiabloTalkSfx(int16 sound)
GetPhrase(&sfx, &lastSfx, AUDIO_SAMPLE_PED_DIABLO_1_CHAT_SEXY_1, 4u);
break;
case SOUND_PED_CHAT: GetPhrase(&sfx, &lastSfx, AUDIO_SAMPLE_PED_DIABLO_1_CHAT_1, 5u); break;
- default: return cAudioManager::GetGenericMaleTalkSfx(sound);
+ default: return GetGenericMaleTalkSfx(sound);
}
return 30 * (m_sQueueSample.m_nEntityIndex & 1) + sfx;
}
@@ -1572,7 +1485,7 @@ cAudioManager::GetYakuzaTalkSfx(int16 sound)
GetPhrase(&sfx, &lastSfx, AUDIO_SAMPLE_PED_YAKUZA_1_CAR_COLLISION_1, 6u);
break;
case SOUND_PED_CHAT: GetPhrase(&sfx, &lastSfx, AUDIO_SAMPLE_PED_YAKUZA_1_CHAT_1, 5u); break;
- default: return cAudioManager::GetGenericMaleTalkSfx(sound);
+ default: return GetGenericMaleTalkSfx(sound);
}
return 24 * (m_sQueueSample.m_nEntityIndex & 1) + sfx;
}
@@ -1602,7 +1515,7 @@ cAudioManager::GetYardieTalkSfx(int16 sound)
GetPhrase(&sfx, &lastSfx, AUDIO_SAMPLE_PED_YARDIE_1_CHAT_SEXY_1, 2u);
break;
case SOUND_PED_CHAT: GetPhrase(&sfx, &lastSfx, AUDIO_SAMPLE_PED_YARDIE_1_CHAT_1, 8u); break;
- default: return cAudioManager::GetGenericMaleTalkSfx(sound);
+ default: return GetGenericMaleTalkSfx(sound);
}
return 31 * (m_sQueueSample.m_nEntityIndex & 1) + sfx;
}
@@ -1633,7 +1546,7 @@ cAudioManager::GetColumbianTalkSfx(int16 sound)
GetPhrase(&sfx, &lastSfx, AUDIO_SAMPLE_PED_COLUMB_1_CHAT_SEXY_1, 2u);
break;
case SOUND_PED_CHAT: GetPhrase(&sfx, &lastSfx, AUDIO_SAMPLE_PED_COLUMB_1_CHAT_1, 5u); break;
- default: return cAudioManager::GetGenericMaleTalkSfx(sound);
+ default: return GetGenericMaleTalkSfx(sound);
}
return 27 * (m_sQueueSample.m_nEntityIndex & 1) + sfx;
}
@@ -1668,7 +1581,7 @@ cAudioManager::GetHoodTalkSfx(int16 sound)
break;
case SOUND_PED_CHAT: GetPhrase(&sfx, &lastSfx, AUDIO_SAMPLE_PED_HOODS_1_CHAT_1, 6u); break;
- default: return cAudioManager::GetGenericMaleTalkSfx(sound); break;
+ default: return GetGenericMaleTalkSfx(sound); break;
}
return 35 * (m_sQueueSample.m_nEntityIndex & 1) + sfx;
}
@@ -1696,7 +1609,7 @@ cAudioManager::GetBlackCriminalTalkSfx(int16 sound)
case SOUND_PED_CAR_COLLISION:
GetPhrase(&sfx, &lastSfx, AUDIO_SAMPLE_PED_BLACK_CRIMINAL_1_CAR_COLLISION_1, 5u);
break;
- default: return cAudioManager::GetGenericMaleTalkSfx(sound); break;
+ default: return GetGenericMaleTalkSfx(sound); break;
}
return sfx;
}
@@ -1724,7 +1637,7 @@ cAudioManager::GetWhiteCriminalTalkSfx(int16 sound)
case SOUND_PED_CAR_COLLISION:
GetPhrase(&sfx, &lastSfx, AUDIO_SAMPLE_PED_WHITE_CRIMINAL_1_CAR_COLLISION_1, 4u);
break;
- default: return cAudioManager::GetGenericMaleTalkSfx(sound); break;
+ default: return GetGenericMaleTalkSfx(sound); break;
}
return sfx;
}
@@ -1737,8 +1650,7 @@ cAudioManager::GetMaleNo2TalkSfx(int16 sound)
switch(sound) {
case SOUND_PED_CAR_JACKED:
- cAudioManager::GetPhrase(&sfx, &lastSfx, AUDIO_SAMPLE_PED_MALE_NO_2_CAR_JACKED_1,
- 3u);
+ GetPhrase(&sfx, &lastSfx, AUDIO_SAMPLE_PED_MALE_NO_2_CAR_JACKED_1, 3u);
break;
case SOUND_PED_ROBBED:
GetPhrase(&sfx, &lastSfx, AUDIO_SAMPLE_PED_MALE_NO_2_ROBBED_1, 4u);
@@ -1750,8 +1662,7 @@ cAudioManager::GetMaleNo2TalkSfx(int16 sound)
GetPhrase(&sfx, &lastSfx, AUDIO_SAMPLE_PED_MALE_NO_2_EVADE_1, 4u);
break;
case SOUND_PED_CAR_COLLISION:
- cAudioManager::GetPhrase(&sfx, &lastSfx, AUDIO_SAMPLE_PED_MALE_NO_2_CAR_COLLISION_1,
- 7u);
+ GetPhrase(&sfx, &lastSfx, AUDIO_SAMPLE_PED_MALE_NO_2_CAR_COLLISION_1, 7u);
break;
case SOUND_PED_CHAT_SEXY:
GetPhrase(&sfx, &lastSfx, AUDIO_SAMPLE_PED_MALE_NO_2_CHAT_SEXY_1, 5u);
@@ -1759,7 +1670,7 @@ cAudioManager::GetMaleNo2TalkSfx(int16 sound)
case SOUND_PED_CHAT:
GetPhrase(&sfx, &lastSfx, AUDIO_SAMPLE_PED_MALE_NO_2_CHAT_1, 7u);
break;
- default: return cAudioManager::GetGenericMaleTalkSfx(sound);
+ default: return GetGenericMaleTalkSfx(sound);
}
return sfx;
}
@@ -2122,9 +2033,8 @@ cAudioManager::GetBlackProjectFemaleOldTalkSfx(int16 sound)
6u);
break;
case SOUND_PED_CAR_COLLISION:
- cAudioManager::GetPhrase(
- &sfx, &lastSfx, AUDIO_SAMPLE_PED_BLACK_PROJECT_FEMALE_OLD_1_CAR_COLLISION_1,
- 7u);
+ GetPhrase(&sfx, &lastSfx,
+ AUDIO_SAMPLE_PED_BLACK_PROJECT_FEMALE_OLD_1_CAR_COLLISION_1, 7u);
break;
case SOUND_PED_CHAT_EVENT:
GetPhrase(&sfx, &lastSfx, AUDIO_SAMPLE_PED_BLACK_PROJECT_FEMALE_OLD_1_CHAT_EVENT_1,
@@ -2146,9 +2056,8 @@ cAudioManager::GetBlackProjectFemaleYoungTalkSfx(int16 sound)
switch(sound) {
case SOUND_PED_HANDS_COWER:
- cAudioManager::GetPhrase(
- &sfx, &lastSfx, AUDIO_SAMPLE_PED_BLACK_PROJECT_FEMALE_YOUNG_1_HANDS_COWER_1,
- 4u);
+ GetPhrase(&sfx, &lastSfx,
+ AUDIO_SAMPLE_PED_BLACK_PROJECT_FEMALE_YOUNG_1_HANDS_COWER_1, 4u);
break;
case SOUND_PED_CAR_JACKED:
sfx = AUDIO_SAMPLE_PED_BLACK_PROJECT_FEMALE_YOUNG_1_CAR_JACKED_1;
@@ -2162,9 +2071,8 @@ cAudioManager::GetBlackProjectFemaleYoungTalkSfx(int16 sound)
5u);
break;
case SOUND_PED_CAR_COLLISION:
- cAudioManager::GetPhrase(
- &sfx, &lastSfx, AUDIO_SAMPLE_PED_BLACK_PROJECT_FEMALE_YOUNG_1_CAR_COLLISION_1,
- 6u);
+ GetPhrase(&sfx, &lastSfx,
+ AUDIO_SAMPLE_PED_BLACK_PROJECT_FEMALE_YOUNG_1_CAR_COLLISION_1, 6u);
break;
case SOUND_PED_CHAT_EVENT:
GetPhrase(&sfx, &lastSfx,
@@ -3173,17 +3081,15 @@ cAudioManager::GetEightTalkSfx(int16 sound)
switch(sound) {
case SOUND_PED_HANDS_UP:
- cAudioManager::GetPhrase(&sfx, &lastSfx, AUDIO_SAMPLE_PED_EIGHT_HANDS_UP_1, 2u);
+ GetPhrase(&sfx, &lastSfx, AUDIO_SAMPLE_PED_EIGHT_HANDS_UP_1, 2u);
break;
case SOUND_PED_ROBBED:
- cAudioManager::GetPhrase(&sfx, &lastSfx, AUDIO_SAMPLE_PED_EIGHT_ROBBED_1, 2u);
+ GetPhrase(&sfx, &lastSfx, AUDIO_SAMPLE_PED_EIGHT_ROBBED_1, 2u);
break;
case SOUND_PED_ATTACK:
- cAudioManager::GetPhrase(&sfx, &lastSfx, AUDIO_SAMPLE_PED_EIGHT_ATTACK_1, 6u);
- break;
- case SOUND_PED_EVADE:
- cAudioManager::GetPhrase(&sfx, &lastSfx, AUDIO_SAMPLE_PED_EIGHT_EVADE_1, 7u);
+ GetPhrase(&sfx, &lastSfx, AUDIO_SAMPLE_PED_EIGHT_ATTACK_1, 6u);
break;
+ case SOUND_PED_EVADE: GetPhrase(&sfx, &lastSfx, AUDIO_SAMPLE_PED_EIGHT_EVADE_1, 7u); break;
default: return GetGenericMaleTalkSfx(sound);
}
return sfx;
@@ -3333,24 +3239,208 @@ cAudioManager::GetGenericFemaleTalkSfx(int16 sound)
switch(sound) {
case SOUND_PED_DEATH:
- cAudioManager::GetPhrase(&sfx, &lastSfx, AUDIO_SAMPLE_PED_FEMALE_DEATH_1, 10u);
+ GetPhrase(&sfx, &lastSfx, AUDIO_SAMPLE_PED_FEMALE_DEATH_1, 10u);
break;
case SOUND_PED_BULLET_HIT:
case SOUND_PED_DEFEND:
- cAudioManager::GetPhrase(&sfx, &lastSfx, AUDIO_SAMPLE_INJURED_PED_FEMALE_OUCH_1,
- 11u);
+ GetPhrase(&sfx, &lastSfx, AUDIO_SAMPLE_INJURED_PED_FEMALE_OUCH_1, 11u);
break;
case SOUND_PED_BURNING:
- cAudioManager::GetPhrase(&sfx, &lastSfx, AUDIO_SAMPLE_PED_FEMALE_BURNING_1, 9u);
+ GetPhrase(&sfx, &lastSfx, AUDIO_SAMPLE_PED_FEMALE_BURNING_1, 9u);
break;
case SOUND_PED_FLEE_SPRINT:
- cAudioManager::GetPhrase(&sfx, &lastSfx, AUDIO_SAMPLE_PED_FEMALE_FLEE_SPRINT_1, 8u);
+ GetPhrase(&sfx, &lastSfx, AUDIO_SAMPLE_PED_FEMALE_FLEE_SPRINT_1, 8u);
break;
default: return NO_SAMPLE;
}
return sfx;
}
+int8
+cAudioManager::GetCurrent3DProviderIndex() const
+{
+ if(m_bIsInitialised) return SampleManager.GetCurrent3DProviderIndex();
+
+ return -1;
+}
+
+float
+cAudioManager::GetCollisionLoopingRatio(uint32 a, uint32 b, float c) const
+{
+ return GetCollisionRatio(c, 0.0f, 0.02f, 0.02f);
+}
+
+float
+cAudioManager::GetCollisionOneShotRatio(uint32 a, float b) const
+{
+ float result;
+
+ switch(a) {
+ case 0u:
+ case 1u:
+ case 5u:
+ case 26u:
+ case 31u: result = GetCollisionRatio(b, 10.0, 60.0, 50.0); break;
+ case 2u:
+ case 3u:
+ case 4u:
+ case 30u: result = GetCollisionRatio(b, 0.0, 2.0, 2.0); break;
+ case 6u: result = GetCollisionRatio(b, 6.0, 50.0, 44.0); break;
+ case 7u:
+ case 16u: result = GetCollisionRatio(b, 0.1, 10.0, 9.9); break;
+ case 8u:
+ case 11u: result = GetCollisionRatio(b, 30.0, 130.0, 100.0); break;
+ case 9u: result = GetCollisionRatio(b, 20.0, 100.0, 80.0); break;
+ case 10u: result = GetCollisionRatio(b, 0.0, 4.0, 4.0); break;
+ case 12u:
+ case 13u:
+ case 32u: result = GetCollisionRatio(b, 1.0, 10.0, 9.0); break;
+ case 14u: result = GetCollisionRatio(b, 1.0, 15.0, 14.0); break;
+ case 15u: result = GetCollisionRatio(b, 8.0, 50.0, 42.0); break;
+ case 17u: result = GetCollisionRatio(b, 0.0, 20.0, 20.0); break;
+ case 18u:
+ case 19u:
+ case 23u:
+ case 29u: result = GetCollisionRatio(b, 0.0, 10.0, 10.0); break;
+ case 20u: result = GetCollisionRatio(b, 1.0, 4.0, 3.0); break;
+ case 21u: result = GetCollisionRatio(b, 0.1, 5.0, 4.9); break;
+ case 22u: result = GetCollisionRatio(b, 0.1, 40.0, 39.9); break;
+ case 24u: result = GetCollisionRatio(b, 0.1, 4.0, 3.9); break;
+ case 25u: result = GetCollisionRatio(b, 0.0, 0.5, 0.5); break;
+ case 27u: result = GetCollisionRatio(b, 4.0, 40.0, 36.0); break;
+ case 28u: result = GetCollisionRatio(b, 0.0, 5.0, 5.0); break;
+ default: result = 0.0; break;
+ }
+ return result;
+}
+
+float
+cAudioManager::GetCollisionRatio(float a, float b, float c, float d) const
+{
+ float e;
+ e = a;
+ if(a <= b) return 0.0f;
+ if(c <= a) e = c;
+ return (e - b) / d;
+}
+
+float
+cAudioManager::GetDistanceSquared(CVector *v) const
+{
+ const CVector &c = TheCamera.GetPosition();
+ return sq(v->x - c.x) + sq(v->y - c.y) + sq((v->z - c.z) * 0.2f);
+}
+
+int32
+cAudioManager::GetJumboTaxiFreq() const
+{
+ return (60.833f * m_sQueueSample.m_fDistance) + 22050;
+}
+
+bool
+cAudioManager::GetMissionAudioLoadingStatus() const
+{
+ if(m_bIsInitialised) return m_sMissionAudio.m_bLoadingStatus;
+
+ return true;
+}
+
+char
+cAudioManager::GetMissionScriptPoliceAudioPlayingStatus() const
+{
+ return g_nMissionAudioPlayingStatus;
+}
+
+bool
+cAudioManager::HasAirBrakes(int32 model) const
+{
+ return model == LINERUN || model == FIRETRUK || model == TRASH || model == BUS ||
+ model == COACH;
+}
+
+void
+cAudioManager::Initialise()
+{
+ if(!m_bIsInitialised) {
+ PreInitialiseGameSpecificSetup();
+ m_bIsInitialised = SampleManager.Initialise();
+ if(m_bIsInitialised) {
+ m_bActiveSamples = SampleManager.GetMaximumSupportedChannels();
+ if(m_bActiveSamples <= 1u) {
+ Terminate();
+ } else {
+ --m_bActiveSamples;
+ PostInitialiseGameSpecificSetup();
+ InitialisePoliceRadioZones();
+ InitialisePoliceRadio();
+ MusicManager.Initialise();
+ }
+ }
+ }
+}
+
+WRAPPER
+void
+cAudioManager::InitialisePoliceRadio()
+{
+ EAXJMP(0x57EEC0);
+}
+
+WRAPPER
+void
+cAudioManager::InitialisePoliceRadioZones()
+{
+ EAXJMP(0x57EAC0);
+}
+
+void
+cAudioManager::InterrogateAudioEntities()
+{
+ for(int32 i = 0; i < m_nAudioEntitiesTotal; i++) {
+ ProcessEntity(m_anAudioEntityIndices[i]);
+ m_asAudioEntities[m_anAudioEntityIndices[i]].m_Loops = 0;
+ }
+}
+
+bool
+cAudioManager::IsMissionAudioSampleFinished()
+{
+ if(m_bIsInitialised) return m_sMissionAudio.m_bPlayStatus == 2;
+
+ static int32 cPretendFrame = 1;
+
+ return (cPretendFrame++ & 63) == 0;
+}
+
+bool
+cAudioManager::MissionScriptAudioUsesPoliceChannel(int32 soundMission) const
+{
+ switch(soundMission) {
+ case STREAMED_SOUND_MISSION_J6_D:
+ case STREAMED_SOUND_MISSION_T4_A:
+ case STREAMED_SOUND_MISSION_S1_H:
+ case STREAMED_SOUND_MISSION_S3_B:
+ case STREAMED_SOUND_MISSION_EL3_A:
+ case STREAMED_SOUND_MISSION_A3_A:
+ case STREAMED_SOUND_MISSION_A5_A:
+ case STREAMED_SOUND_MISSION_K1_A:
+ case STREAMED_SOUND_MISSION_R1_A:
+ case STREAMED_SOUND_MISSION_R5_A:
+ case STREAMED_SOUND_MISSION_LO2_A:
+ case STREAMED_SOUND_MISSION_LO6_A: return true;
+ default: return false;
+ }
+}
+
+void
+cAudioManager::PlayLoadedMissionAudio()
+{
+ if(m_bIsInitialised && m_sMissionAudio.m_nSampleIndex != NO_SAMPLE &&
+ m_sMissionAudio.m_bLoadingStatus == 1 && !m_sMissionAudio.m_bPlayStatus) {
+ m_sMissionAudio.m_bIsPlayed = true;
+ }
+}
+
WRAPPER
void
cAudioManager::PlayOneShot(int32 index, int16 sound, float vol)
@@ -3358,6 +3448,95 @@ cAudioManager::PlayOneShot(int32 index, int16 sound, float vol)
EAXJMP(0x57A500);
}
+bool &bPlayerJustEnteredCar = *(bool *)0x6508C4;
+
+void
+cAudioManager::PlayerJustGotInCar() const
+{
+ if(m_bIsInitialised) { bPlayerJustEnteredCar = true; }
+}
+
+void
+cAudioManager::PlayerJustLeftCar(void) const
+{
+ // UNUSED: This is a perfectly empty function.
+}
+
+void
+cAudioManager::PostInitialiseGameSpecificSetup()
+{
+ m_nFireAudioEntity =
+ CreateEntity(AUDIOTYPE_FIRE,
+ (CPhysical *)0x8F31D0); // last is addr of firemanager @todo change
+ if(m_nFireAudioEntity >= 0) SetEntityStatus(m_nFireAudioEntity, 1);
+
+ m_nCollisionEntity = CreateEntity(AUDIOTYPE_COLLISION, (CPhysical *)1);
+ if(m_nCollisionEntity >= 0) SetEntityStatus(m_nCollisionEntity, 1);
+
+ m_nFrontEndEntity = CreateEntity(AUDIOTYPE_FRONTEND, (CPhysical *)1);
+ if(m_nFrontEndEntity >= 0) SetEntityStatus(m_nFrontEndEntity, 1);
+
+ m_nProjectileEntity = CreateEntity(AUDIOTYPE_PROJECTILE, (CPhysical *)1);
+ if(m_nProjectileEntity >= 0) SetEntityStatus(m_nProjectileEntity, 1);
+
+ m_nWaterCannonEntity = CreateEntity(AUDIOTYPE_WATER_CANNON, (CPhysical *)1);
+ if(m_nWaterCannonEntity >= 0) SetEntityStatus(m_nWaterCannonEntity, 1);
+
+ m_nPoliceChannelEntity = CreateEntity(AUDIOTYPE_D, (CPhysical *)1);
+ if(m_nPoliceChannelEntity >= 0) SetEntityStatus(m_nPoliceChannelEntity, 1);
+
+ m_nBridgeEntity = CreateEntity(AUDIOTYPE_BRIDGE, (CPhysical *)1);
+ if(m_nBridgeEntity >= 0) SetEntityStatus(m_nBridgeEntity, 1);
+
+ m_sMissionAudio.m_nSampleIndex = NO_SAMPLE;
+ m_sMissionAudio.m_bLoadingStatus = 0;
+ m_sMissionAudio.m_bPlayStatus = 0;
+ m_sMissionAudio.field_22 = 0;
+ m_sMissionAudio.m_bIsPlayed = 0;
+ m_sMissionAudio.field_12 = 1;
+ m_sMissionAudio.field_24 = 0;
+ ResetAudioLogicTimers((int32)CTimer::GetTimeInMilliseconds);
+}
+
+void
+cAudioManager::PostTerminateGameSpecificShutdown()
+{
+ ;
+}
+
+void
+cAudioManager::PreTerminateGameSpecificShutdown()
+{
+ if(m_nBridgeEntity >= 0) {
+ DestroyEntity(m_nBridgeEntity);
+ m_nBridgeEntity = -5;
+ }
+ if(m_nPoliceChannelEntity >= 0) {
+ DestroyEntity(m_nPoliceChannelEntity);
+ m_nPoliceChannelEntity = -5;
+ }
+ if(m_nWaterCannonEntity >= 0) {
+ DestroyEntity(m_nWaterCannonEntity);
+ m_nWaterCannonEntity = -5;
+ }
+ if(m_nFireAudioEntity >= 0) {
+ DestroyEntity(m_nFireAudioEntity);
+ m_nFireAudioEntity = -5;
+ }
+ if(m_nCollisionEntity >= 0) {
+ DestroyEntity(m_nCollisionEntity);
+ m_nCollisionEntity = -5;
+ }
+ if(m_nFrontEndEntity >= 0) {
+ DestroyEntity(m_nFrontEndEntity);
+ m_nFrontEndEntity = -5;
+ }
+ if(m_nProjectileEntity >= 0) {
+ DestroyEntity(m_nProjectileEntity);
+ m_nProjectileEntity = -5;
+ }
+}
+
#if 1
WRAPPER
@@ -3390,7 +3569,7 @@ cAudioManager::ProcessAirBrakes(cVehicleParams *params)
rand = m_anRandomTable[0] % 10u + 70;
m_sQueueSample.m_bVolume = ComputeVolume(rand, 30.0f, m_sQueueSample.m_fDistance);
if(m_sQueueSample.m_bVolume) {
- m_sQueueSample.field_4 = 13;
+ m_sQueueSample.m_counter = 13;
m_sQueueSample.m_nSampleIndex = AUDIO_SAMPLE_VEHICLE_AIR_BRAKES;
m_sQueueSample.m_nFrequency =
SampleManager.GetSampleBaseFrequency(AUDIO_SAMPLE_VEHICLE_AIR_BRAKES);
@@ -3447,7 +3626,7 @@ cAudioManager::ProcessAirportScriptObject(uint8 sound)
m_sQueueSample.m_bBankIndex = 0;
m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(
m_sQueueSample.m_nSampleIndex);
- m_sQueueSample.field_4 = counter++;
+ m_sQueueSample.m_counter = counter++;
m_sQueueSample.m_bIsDistant = 0;
m_sQueueSample.m_nLoopCount = 1;
m_sQueueSample.field_56 = 1;
@@ -3485,7 +3664,7 @@ cAudioManager::ProcessBoatEngine(cVehicleParams *params)
m_sQueueSample.m_bVolume =
ComputeVolume(80u, 50.f, m_sQueueSample.m_fDistance);
if(m_sQueueSample.m_bVolume) {
- m_sQueueSample.field_4 = 39;
+ m_sQueueSample.m_counter = 39;
m_sQueueSample.m_nSampleIndex = AUDIO_SAMPLE_MOTOR;
m_sQueueSample.m_nFrequency = 10386;
m_sQueueSample.m_nFrequency +=
@@ -3535,7 +3714,7 @@ cAudioManager::ProcessBoatEngine(cVehicleParams *params)
m_sQueueSample.m_bVolume =
ComputeVolume(emittingVol, 50.f, m_sQueueSample.m_fDistance);
if(!m_sQueueSample.m_bVolume) return 1;
- m_sQueueSample.field_4 = 40;
+ m_sQueueSample.m_counter = 40;
m_sQueueSample.m_nSampleIndex = AUDIO_SAMPLE_BOAT_ENGINE;
m_sQueueSample.m_nFrequency += (m_sQueueSample.m_nEntityIndex << 16) % 1000;
m_sQueueSample.m_bBankIndex = 0;
@@ -3562,7 +3741,7 @@ cAudioManager::ProcessBoatEngine(cVehicleParams *params)
if(padAccelerate <= 20) {
emittingVol = 45 - 45 * padAccelerate / 40;
m_sQueueSample.m_nFrequency = 100 * padAccelerate + 11025;
- m_sQueueSample.field_4 = 39;
+ m_sQueueSample.m_counter = 39;
m_sQueueSample.m_nSampleIndex =
AUDIO_SAMPLE_BOAT_ENGINE_IDLE;
if(LastAccel > 20) {
@@ -3577,7 +3756,7 @@ cAudioManager::ProcessBoatEngine(cVehicleParams *params)
if(!boat->m_bIsAnchored)
m_sQueueSample.m_nFrequency =
11 * m_sQueueSample.m_nFrequency / 10u;
- m_sQueueSample.field_4 = 40;
+ m_sQueueSample.m_counter = 40;
m_sQueueSample.m_nSampleIndex = AUDIO_SAMPLE_BOAT_ENGINE;
}
LastVol = emittingVol;
@@ -3587,7 +3766,7 @@ cAudioManager::ProcessBoatEngine(cVehicleParams *params)
if(gasPedal > 0.0f) {
m_sQueueSample.m_nFrequency = 11025;
emittingVol = 45;
- m_sQueueSample.field_4 = 39;
+ m_sQueueSample.m_counter = 39;
m_sQueueSample.m_nSampleIndex =
AUDIO_SAMPLE_BOAT_ENGINE_IDLE;
} else {
@@ -3596,7 +3775,7 @@ cAudioManager::ProcessBoatEngine(cVehicleParams *params)
if(!boat->m_bIsAnchored)
m_sQueueSample.m_nFrequency =
11 * m_sQueueSample.m_nFrequency / 10u;
- m_sQueueSample.field_4 = 40;
+ m_sQueueSample.m_counter = 40;
m_sQueueSample.m_nSampleIndex = AUDIO_SAMPLE_BOAT_ENGINE;
}
}
@@ -3639,13 +3818,13 @@ cAudioManager::ProcessBoatMovingOverWater(cVehicleParams *params)
velocityChange = Abs(params->m_fVelocityChange);
if(velocityChange <= 0.0005f && params->m_pVehicle->GetPosition().y) return 1;
- velocityChange = min(0.75f, velocityChange);
+ velocityChange = Min(0.75f, velocityChange);
multiplier = (velocityChange - 0.0005f) * 1.3342f;
CalculateDistance((bool *)params, params->m_fDistance);
vol = (30.f * multiplier);
m_sQueueSample.m_bVolume = ComputeVolume(vol, 50.f, m_sQueueSample.m_fDistance);
if(m_sQueueSample.m_bVolume) {
- m_sQueueSample.field_4 = 38;
+ m_sQueueSample.m_counter = 38;
m_sQueueSample.m_nSampleIndex = AUDIO_SAMPLE_LOOPING_WATER;
m_sQueueSample.m_bBankIndex = 0;
m_sQueueSample.m_bIsDistant = 0;
@@ -3700,16 +3879,17 @@ void
cAudioManager::ProcessBridgeMotor()
{
if(m_sQueueSample.m_fDistance < 400.f) {
- m_sQueueSample.m_bVolume = ComputeVolume(127, 400.f, m_sQueueSample.m_fDistance);
+ m_sQueueSample.m_bVolume =
+ ComputeVolume(maxVolume, 400.f, m_sQueueSample.m_fDistance);
if(m_sQueueSample.m_bVolume) {
- m_sQueueSample.field_4 = 1;
+ m_sQueueSample.m_counter = 1;
m_sQueueSample.m_nSampleIndex = AUDIO_SAMPLE_MOTOR;
m_sQueueSample.m_bBankIndex = 0;
m_sQueueSample.m_bIsDistant = 0;
m_sQueueSample.field_16 = 1;
m_sQueueSample.m_nFrequency = 5500;
m_sQueueSample.m_nLoopCount = 0;
- m_sQueueSample.m_bEmittingVolume = 127;
+ m_sQueueSample.m_bEmittingVolume = maxVolume;
m_sQueueSample.m_nLoopStart =
SampleManager.GetSampleLoopStartOffset(m_sQueueSample.m_nSampleIndex);
m_sQueueSample.m_nLoopEnd =
@@ -3756,7 +3936,7 @@ cAudioManager::ProcessBridgeOneShots()
m_sQueueSample.m_bVolume =
ComputeVolume(maxVolume, maxDist, m_sQueueSample.m_fDistance);
if(m_sQueueSample.m_bVolume) {
- m_sQueueSample.field_4 = 2;
+ m_sQueueSample.m_counter = 2;
m_sQueueSample.m_bBankIndex = 0;
m_sQueueSample.m_bIsDistant = 0;
m_sQueueSample.field_16 = 1;
@@ -3782,7 +3962,7 @@ cAudioManager::ProcessBridgeWarning()
if(CStats::CommercialPassed && m_sQueueSample.m_fDistance < 450.f) {
m_sQueueSample.m_bVolume = ComputeVolume(100u, 450.f, m_sQueueSample.m_fDistance);
if(m_sQueueSample.m_bVolume) {
- m_sQueueSample.field_4 = 0;
+ m_sQueueSample.m_counter = 0;
m_sQueueSample.m_nSampleIndex = 457;
m_sQueueSample.m_bBankIndex = 0;
m_sQueueSample.m_bIsDistant = 0;
@@ -3817,7 +3997,7 @@ cAudioManager::ProcessCarBombTick(cVehicleParams *params)
CalculateDistance((bool *)params, params->m_fDistance);
m_sQueueSample.m_bVolume = ComputeVolume(60u, 40.f, m_sQueueSample.m_fDistance);
if(m_sQueueSample.m_bVolume) {
- m_sQueueSample.field_4 = 35;
+ m_sQueueSample.m_counter = 35;
m_sQueueSample.m_nSampleIndex = AUDIO_SAMPLE_CAR_BOMB_TICK;
m_sQueueSample.m_bBankIndex = 0;
m_sQueueSample.m_bIsDistant = 0;
@@ -3830,8 +4010,8 @@ cAudioManager::ProcessCarBombTick(cVehicleParams *params)
SampleManager.GetSampleLoopStartOffset(m_sQueueSample.m_nSampleIndex);
m_sQueueSample.m_nLoopEnd =
SampleManager.GetSampleLoopEndOffset(m_sQueueSample.m_nSampleIndex);
- m_sQueueSample.field_48 = 2.0;
- m_sQueueSample.m_fSoundIntensity = 40.0;
+ m_sQueueSample.field_48 = 2.0f;
+ m_sQueueSample.m_fSoundIntensity = 40.0f;
m_sQueueSample.field_56 = 0;
m_sQueueSample.field_76 = 3;
m_sQueueSample.m_bReverbFlag = 1;
@@ -3884,7 +4064,7 @@ cAudioManager::ProcessCinemaScriptObject(uint8 sound)
m_sQueueSample.m_nSampleIndex);
m_sQueueSample.m_nFrequency +=
RandomDisplacement(m_sQueueSample.m_nFrequency >> 2);
- m_sQueueSample.field_4 = counter++;
+ m_sQueueSample.m_counter = counter++;
m_sQueueSample.m_bIsDistant = 0;
m_sQueueSample.m_nLoopCount = 1;
m_sQueueSample.field_56 = 1;
@@ -3945,7 +4125,7 @@ cAudioManager::ProcessDocksScriptObject(uint8 sound)
SampleManager.GetSampleBaseFrequency(AUDIO_SAMPLE_DOCKS);
m_sQueueSample.m_nFrequency +=
RandomDisplacement(m_sQueueSample.m_nFrequency >> 3);
- m_sQueueSample.field_4 = counter++;
+ m_sQueueSample.m_counter = counter++;
m_sQueueSample.m_bIsDistant = 0;
m_sQueueSample.m_nLoopCount = 1;
m_sQueueSample.field_56 = 1;
@@ -3991,7 +4171,7 @@ cAudioManager::ProcessEngineDamage(cVehicleParams *params)
m_sQueueSample.m_bVolume =
ComputeVolume(emittingVolume, 40.f, m_sQueueSample.m_fDistance);
if(m_sQueueSample.m_bVolume) {
- m_sQueueSample.field_4 = 28;
+ m_sQueueSample.m_counter = 28;
m_sQueueSample.m_bBankIndex = 0;
m_sQueueSample.m_bIsDistant = 0;
m_sQueueSample.m_nLoopCount = 0;
@@ -4000,8 +4180,8 @@ cAudioManager::ProcessEngineDamage(cVehicleParams *params)
SampleManager.GetSampleLoopStartOffset(m_sQueueSample.m_nSampleIndex);
m_sQueueSample.m_nLoopEnd =
SampleManager.GetSampleLoopEndOffset(m_sQueueSample.m_nSampleIndex);
- m_sQueueSample.field_48 = 2.0;
- m_sQueueSample.m_fSoundIntensity = 40.0;
+ m_sQueueSample.field_48 = 2.0f;
+ m_sQueueSample.m_fSoundIntensity = 40.0f;
m_sQueueSample.field_56 = 0;
m_sQueueSample.field_76 = 3;
m_sQueueSample.m_bReverbFlag = 1;
@@ -4146,9 +4326,7 @@ cAudioManager::ProcessExplosions(int32 explosion)
break;
}
pos = CExplosion::GetExplosionPosition(i);
- m_sQueueSample.m_vecPos.x = pos->x;
- m_sQueueSample.m_vecPos.y = pos->y;
- m_sQueueSample.m_vecPos.z = pos->z;
+ m_sQueueSample.m_vecPos = *pos;
distSquared = GetDistanceSquared(&m_sQueueSample.m_vecPos);
if(distSquared < maxDist) {
m_sQueueSample.m_fDistance = Sqrt(distSquared);
@@ -4156,7 +4334,7 @@ cAudioManager::ProcessExplosions(int32 explosion)
ComputeVolume(maxVolume, m_sQueueSample.m_fSoundIntensity,
m_sQueueSample.m_fDistance);
if(m_sQueueSample.m_bVolume) {
- m_sQueueSample.field_4 = i;
+ m_sQueueSample.m_counter = i;
m_sQueueSample.field_48 = 2.0f;
m_sQueueSample.m_bIsDistant = 0;
m_sQueueSample.m_nLoopCount = 1;
@@ -4187,7 +4365,7 @@ cAudioManager::ProcessFireHydrant()
CalculateDistance(&something, distSquared);
m_sQueueSample.m_bVolume = ComputeVolume(40u, 35.f, m_sQueueSample.m_fDistance);
if(m_sQueueSample.m_bVolume) {
- m_sQueueSample.field_4 = 0;
+ m_sQueueSample.m_counter = 0;
m_sQueueSample.m_nSampleIndex = AUDIO_SAMPLE_JUMBO_TAXI_SOUND;
m_sQueueSample.m_bBankIndex = 0;
m_sQueueSample.m_bIsDistant = 0;
@@ -4225,7 +4403,7 @@ cAudioManager::ProcessFrontEnd()
static uint32 counter = 0;
- for(uint32 i = 0; i < m_asAudioEntities[m_sQueueSample.m_nEntityIndex].field_24; i++) {
+ for(uint32 i = 0; i < m_asAudioEntities[m_sQueueSample.m_nEntityIndex].m_Loops; i++) {
processed = 0;
switch(
m_asAudioEntities[0].m_awAudioEvent[i + 20 * m_sQueueSample.m_nEntityIndex]) {
@@ -4348,7 +4526,7 @@ cAudioManager::ProcessFrontEnd()
SampleManager.GetSampleBaseFrequency(m_sQueueSample.m_nSampleIndex);
}
m_sQueueSample.m_bVolume = 110;
- m_sQueueSample.field_4 = counter++;
+ m_sQueueSample.m_counter = counter++;
m_sQueueSample.m_nLoopCount = 1;
m_sQueueSample.field_56 = 1;
m_sQueueSample.m_bBankIndex = 0;
@@ -4366,8 +4544,8 @@ cAudioManager::ProcessFrontEnd()
AddSampleToRequestedQueue();
if(processed) {
++m_sQueueSample.m_nSampleIndex;
- m_sQueueSample.field_4 = counter++;
- m_sQueueSample.m_bOffset = 127 - m_sQueueSample.m_bOffset;
+ m_sQueueSample.m_counter = counter++;
+ m_sQueueSample.m_bOffset = maxVolume - m_sQueueSample.m_bOffset;
AddSampleToRequestedQueue();
}
}
@@ -4418,7 +4596,7 @@ cAudioManager::ProcessHelicopter(cVehicleParams *params)
m_sQueueSample.m_bVolume = ComputeVolume(
emittingVol, gHeliSfxRanges[i].m_fMaxDistance, m_sQueueSample.m_fDistance);
if(m_sQueueSample.m_bVolume) {
- m_sQueueSample.field_4 = i + 65;
+ m_sQueueSample.m_counter = i + 65;
m_sQueueSample.m_nSampleIndex = i + AUDIO_SAMPLE_HELI_FAR;
m_sQueueSample.m_bBankIndex = 0;
m_sQueueSample.m_bIsDistant = 0;
@@ -4432,7 +4610,7 @@ cAudioManager::ProcessHelicopter(cVehicleParams *params)
SampleManager.GetSampleLoopStartOffset(m_sQueueSample.m_nSampleIndex);
m_sQueueSample.m_nLoopEnd =
SampleManager.GetSampleLoopEndOffset(m_sQueueSample.m_nSampleIndex);
- m_sQueueSample.field_48 = 6.0;
+ m_sQueueSample.field_48 = 6.0f;
m_sQueueSample.m_fSoundIntensity = gHeliSfxRanges[i].m_fMaxDistance;
m_sQueueSample.field_56 = 0;
m_sQueueSample.field_76 = 3;
@@ -4481,7 +4659,7 @@ cAudioManager::ProcessHomeScriptObject(uint8 sound)
m_sQueueSample.m_nSampleIndex);
m_sQueueSample.m_nFrequency +=
RandomDisplacement(m_sQueueSample.m_nFrequency >> 4);
- m_sQueueSample.field_4 = counter++;
+ m_sQueueSample.m_counter = counter++;
m_sQueueSample.m_bIsDistant = 0;
m_sQueueSample.m_nLoopCount = 1;
m_sQueueSample.field_56 = 1;
@@ -4546,7 +4724,7 @@ cAudioManager::ProcessJumboAccel(CPlane *plane)
if(SetupJumboFlySound(20u)) {
modificator = (plane->m_fSpeed - 0.10334f) * 1.676f;
if(modificator > 1.0f) modificator = 1.0f;
- if(cAudioManager::SetupJumboRumbleSound(maxVolume * modificator) &&
+ if(SetupJumboRumbleSound(maxVolume * modificator) &&
SetupJumboTaxiSound((1.0f - modificator) * 75.f)) {
if(modificator < 0.2f) {
whineSoundFreq = modificator * 5.f * 14600.0f + 29500;
@@ -4579,7 +4757,7 @@ cAudioManager::ProcessJumboDecel(CPlane *plane)
void
cAudioManager::ProcessJumboFlying()
{
- if(SetupJumboFlySound(127u)) SetupJumboEngineSound(63u, 22050);
+ if(SetupJumboFlySound(maxVolume)) SetupJumboEngineSound(63u, 22050);
}
void
@@ -4598,12 +4776,12 @@ cAudioManager::ProcessJumboLanding(CPlane *plane)
void
cAudioManager::ProcessJumboTakeOff(CPlane *plane)
{
- double modificator = (PlanePathPosition[plane->m_nPlaneId] - TakeOffPoint) * 0.0033333f;
+ float modificator = (PlanePathPosition[plane->m_nPlaneId] - TakeOffPoint) * 0.0033333f;
- if(cAudioManager::SetupJumboFlySound((107.f * modificator) + 20) &&
- cAudioManager::SetupJumboRumbleSound(maxVolume * (1.f - modificator))) {
- if(cAudioManager::SetupJumboEngineSound(127u, 22050))
- cAudioManager::SetupJumboWhineSound(18.f * (1.f - modificator), 44100);
+ if(SetupJumboFlySound((107.f * modificator) + 20) &&
+ SetupJumboRumbleSound(maxVolume * (1.f - modificator))) {
+ if(SetupJumboEngineSound(maxVolume, 22050))
+ SetupJumboWhineSound(18.f * (1.f - modificator), 44100);
}
}
@@ -4639,7 +4817,7 @@ cAudioManager::ProcessLaunderetteScriptObject(uint8 sound)
m_sQueueSample.m_bBankIndex = 0;
m_sQueueSample.m_nFrequency =
SampleManager.GetSampleBaseFrequency(AUDIO_SAMPLE_LAUNDERETTE_1);
- m_sQueueSample.field_4 = 0;
+ m_sQueueSample.m_counter = 0;
m_sQueueSample.m_bIsDistant = 0;
m_sQueueSample.m_nLoopCount = 0;
m_sQueueSample.field_56 = 0;
@@ -4661,7 +4839,7 @@ cAudioManager::ProcessLaunderetteScriptObject(uint8 sound)
m_sQueueSample.m_bBankIndex = 0;
m_sQueueSample.m_nFrequency =
SampleManager.GetSampleBaseFrequency(AUDIO_SAMPLE_LAUNDERETTE_2);
- m_sQueueSample.field_4 = 1;
+ m_sQueueSample.m_counter = 1;
m_sQueueSample.m_bIsDistant = 0;
m_sQueueSample.m_nLoopCount = 0;
m_sQueueSample.field_56 = 0;
@@ -4692,7 +4870,7 @@ cAudioManager::ProcessLoopingScriptObject(uint8 sound)
m_sQueueSample.m_fSoundIntensity = 30.0f;
m_sQueueSample.m_nSampleIndex = AUDIO_SAMPLE_PARTY_1;
m_sQueueSample.m_bBankIndex = 0;
- emittingVolume = 127;
+ emittingVolume = maxVolume;
m_sQueueSample.m_nFrequency =
SampleManager.GetSampleBaseFrequency(AUDIO_SAMPLE_PARTY_1);
m_sQueueSample.field_16 = 3;
@@ -4704,7 +4882,7 @@ cAudioManager::ProcessLoopingScriptObject(uint8 sound)
m_sQueueSample.m_fSoundIntensity = 80.0f;
m_sQueueSample.m_nSampleIndex = AUDIO_SAMPLE_PARTY_1;
m_sQueueSample.m_bBankIndex = 0;
- emittingVolume = 127;
+ emittingVolume = maxVolume;
m_sQueueSample.m_nFrequency =
SampleManager.GetSampleBaseFrequency(AUDIO_SAMPLE_PARTY_1);
m_sQueueSample.field_16 = 3;
@@ -4716,7 +4894,7 @@ cAudioManager::ProcessLoopingScriptObject(uint8 sound)
m_sQueueSample.m_fSoundIntensity = 30.0f;
m_sQueueSample.m_nSampleIndex = AUDIO_SAMPLE_PARTY_2;
m_sQueueSample.m_bBankIndex = 0;
- emittingVolume = 127;
+ emittingVolume = maxVolume;
m_sQueueSample.m_nFrequency =
SampleManager.GetSampleBaseFrequency(AUDIO_SAMPLE_PARTY_2);
m_sQueueSample.field_16 = 3;
@@ -4728,7 +4906,7 @@ cAudioManager::ProcessLoopingScriptObject(uint8 sound)
m_sQueueSample.m_fSoundIntensity = 80.0f;
m_sQueueSample.m_nSampleIndex = AUDIO_SAMPLE_PARTY_2;
m_sQueueSample.m_bBankIndex = 0;
- emittingVolume = 127;
+ emittingVolume = maxVolume;
m_sQueueSample.m_nFrequency =
SampleManager.GetSampleBaseFrequency(AUDIO_SAMPLE_PARTY_2);
m_sQueueSample.field_16 = 3;
@@ -4740,7 +4918,7 @@ cAudioManager::ProcessLoopingScriptObject(uint8 sound)
m_sQueueSample.m_fSoundIntensity = 30.0f;
m_sQueueSample.m_nSampleIndex = AUDIO_SAMPLE_PARTY_3;
m_sQueueSample.m_bBankIndex = 0;
- emittingVolume = 127;
+ emittingVolume = maxVolume;
m_sQueueSample.m_nFrequency =
SampleManager.GetSampleBaseFrequency(AUDIO_SAMPLE_PARTY_3);
m_sQueueSample.field_16 = 3;
@@ -4752,7 +4930,7 @@ cAudioManager::ProcessLoopingScriptObject(uint8 sound)
m_sQueueSample.m_fSoundIntensity = 80.0f;
m_sQueueSample.m_nSampleIndex = AUDIO_SAMPLE_PARTY_3;
m_sQueueSample.m_bBankIndex = 0;
- emittingVolume = 127;
+ emittingVolume = maxVolume;
m_sQueueSample.m_nFrequency =
SampleManager.GetSampleBaseFrequency(AUDIO_SAMPLE_PARTY_3);
m_sQueueSample.field_16 = 3;
@@ -4764,7 +4942,7 @@ cAudioManager::ProcessLoopingScriptObject(uint8 sound)
m_sQueueSample.m_fSoundIntensity = 30.0f;
m_sQueueSample.m_nSampleIndex = AUDIO_SAMPLE_PARTY_4;
m_sQueueSample.m_bBankIndex = 0;
- emittingVolume = 127;
+ emittingVolume = maxVolume;
m_sQueueSample.m_nFrequency =
SampleManager.GetSampleBaseFrequency(AUDIO_SAMPLE_PARTY_4);
m_sQueueSample.field_16 = 3;
@@ -4776,7 +4954,7 @@ cAudioManager::ProcessLoopingScriptObject(uint8 sound)
m_sQueueSample.m_fSoundIntensity = 80.0f;
m_sQueueSample.m_nSampleIndex = AUDIO_SAMPLE_PARTY_4;
m_sQueueSample.m_bBankIndex = 0;
- emittingVolume = 127;
+ emittingVolume = maxVolume;
m_sQueueSample.m_nFrequency =
SampleManager.GetSampleBaseFrequency(AUDIO_SAMPLE_PARTY_4);
m_sQueueSample.field_16 = 3;
@@ -4788,7 +4966,7 @@ cAudioManager::ProcessLoopingScriptObject(uint8 sound)
m_sQueueSample.m_fSoundIntensity = 30.0f;
m_sQueueSample.m_nSampleIndex = AUDIO_SAMPLE_PARTY_5;
m_sQueueSample.m_bBankIndex = 0;
- emittingVolume = 127;
+ emittingVolume = maxVolume;
m_sQueueSample.m_nFrequency =
SampleManager.GetSampleBaseFrequency(AUDIO_SAMPLE_PARTY_5);
m_sQueueSample.field_16 = 3;
@@ -4800,7 +4978,7 @@ cAudioManager::ProcessLoopingScriptObject(uint8 sound)
m_sQueueSample.m_fSoundIntensity = 80.0f;
m_sQueueSample.m_nSampleIndex = AUDIO_SAMPLE_PARTY_5;
m_sQueueSample.m_bBankIndex = 0;
- emittingVolume = 127;
+ emittingVolume = maxVolume;
m_sQueueSample.m_nFrequency =
SampleManager.GetSampleBaseFrequency(AUDIO_SAMPLE_PARTY_5);
m_sQueueSample.field_16 = 3;
@@ -4812,7 +4990,7 @@ cAudioManager::ProcessLoopingScriptObject(uint8 sound)
m_sQueueSample.m_fSoundIntensity = 30.0f;
m_sQueueSample.m_nSampleIndex = AUDIO_SAMPLE_PARTY_6;
m_sQueueSample.m_bBankIndex = 0;
- emittingVolume = 127;
+ emittingVolume = maxVolume;
m_sQueueSample.m_nFrequency =
SampleManager.GetSampleBaseFrequency(AUDIO_SAMPLE_PARTY_6);
m_sQueueSample.field_16 = 3;
@@ -4824,7 +5002,7 @@ cAudioManager::ProcessLoopingScriptObject(uint8 sound)
m_sQueueSample.m_fSoundIntensity = 80.0f;
m_sQueueSample.m_nSampleIndex = AUDIO_SAMPLE_PARTY_6;
m_sQueueSample.m_bBankIndex = 0;
- emittingVolume = 127;
+ emittingVolume = maxVolume;
m_sQueueSample.m_nFrequency =
SampleManager.GetSampleBaseFrequency(AUDIO_SAMPLE_PARTY_6);
m_sQueueSample.field_16 = 3;
@@ -4836,7 +5014,7 @@ cAudioManager::ProcessLoopingScriptObject(uint8 sound)
m_sQueueSample.m_fSoundIntensity = 30.0f;
m_sQueueSample.m_nSampleIndex = AUDIO_SAMPLE_PARTY_7;
m_sQueueSample.m_bBankIndex = 0;
- emittingVolume = 127;
+ emittingVolume = maxVolume;
m_sQueueSample.m_nFrequency =
SampleManager.GetSampleBaseFrequency(AUDIO_SAMPLE_PARTY_7);
m_sQueueSample.field_16 = 3;
@@ -4848,7 +5026,7 @@ cAudioManager::ProcessLoopingScriptObject(uint8 sound)
m_sQueueSample.m_fSoundIntensity = 80.0f;
m_sQueueSample.m_nSampleIndex = AUDIO_SAMPLE_PARTY_7;
m_sQueueSample.m_bBankIndex = 0;
- emittingVolume = 127;
+ emittingVolume = maxVolume;
m_sQueueSample.m_nFrequency =
SampleManager.GetSampleBaseFrequency(AUDIO_SAMPLE_PARTY_7);
m_sQueueSample.field_16 = 3;
@@ -4860,7 +5038,7 @@ cAudioManager::ProcessLoopingScriptObject(uint8 sound)
m_sQueueSample.m_fSoundIntensity = 30.0f;
m_sQueueSample.m_nSampleIndex = AUDIO_SAMPLE_PARTY_8;
m_sQueueSample.m_bBankIndex = 0;
- emittingVolume = 127;
+ emittingVolume = maxVolume;
m_sQueueSample.m_nFrequency =
SampleManager.GetSampleBaseFrequency(AUDIO_SAMPLE_PARTY_8);
m_sQueueSample.field_16 = 3;
@@ -4872,7 +5050,7 @@ cAudioManager::ProcessLoopingScriptObject(uint8 sound)
m_sQueueSample.m_fSoundIntensity = 80.0f;
m_sQueueSample.m_nSampleIndex = AUDIO_SAMPLE_PARTY_8;
m_sQueueSample.m_bBankIndex = 0;
- emittingVolume = 127;
+ emittingVolume = maxVolume;
m_sQueueSample.m_nFrequency =
SampleManager.GetSampleBaseFrequency(AUDIO_SAMPLE_PARTY_8);
m_sQueueSample.field_16 = 3;
@@ -4884,7 +5062,7 @@ cAudioManager::ProcessLoopingScriptObject(uint8 sound)
m_sQueueSample.m_fSoundIntensity = 30.0f;
m_sQueueSample.m_nSampleIndex = AUDIO_SAMPLE_PARTY_9;
m_sQueueSample.m_bBankIndex = 0;
- emittingVolume = 127;
+ emittingVolume = maxVolume;
m_sQueueSample.m_nFrequency =
SampleManager.GetSampleBaseFrequency(AUDIO_SAMPLE_PARTY_9);
m_sQueueSample.field_16 = 3;
@@ -4896,7 +5074,7 @@ cAudioManager::ProcessLoopingScriptObject(uint8 sound)
m_sQueueSample.m_fSoundIntensity = 80.0f;
m_sQueueSample.m_nSampleIndex = AUDIO_SAMPLE_PARTY_9;
m_sQueueSample.m_bBankIndex = 0;
- emittingVolume = 127;
+ emittingVolume = maxVolume;
m_sQueueSample.m_nFrequency =
SampleManager.GetSampleBaseFrequency(AUDIO_SAMPLE_PARTY_9);
m_sQueueSample.field_16 = 3;
@@ -4908,7 +5086,7 @@ cAudioManager::ProcessLoopingScriptObject(uint8 sound)
m_sQueueSample.m_fSoundIntensity = 30.0f;
m_sQueueSample.m_nSampleIndex = AUDIO_SAMPLE_PARTY_10;
m_sQueueSample.m_bBankIndex = 0;
- emittingVolume = 127;
+ emittingVolume = maxVolume;
m_sQueueSample.m_nFrequency =
SampleManager.GetSampleBaseFrequency(AUDIO_SAMPLE_PARTY_10);
m_sQueueSample.field_16 = 3;
@@ -4920,7 +5098,7 @@ cAudioManager::ProcessLoopingScriptObject(uint8 sound)
m_sQueueSample.m_fSoundIntensity = 80.0f;
m_sQueueSample.m_nSampleIndex = AUDIO_SAMPLE_PARTY_10;
m_sQueueSample.m_bBankIndex = 0;
- emittingVolume = 127;
+ emittingVolume = maxVolume;
m_sQueueSample.m_nFrequency =
SampleManager.GetSampleBaseFrequency(AUDIO_SAMPLE_PARTY_10);
m_sQueueSample.field_16 = 3;
@@ -4932,7 +5110,7 @@ cAudioManager::ProcessLoopingScriptObject(uint8 sound)
m_sQueueSample.m_fSoundIntensity = 30.0f;
m_sQueueSample.m_nSampleIndex = AUDIO_SAMPLE_PARTY_11;
m_sQueueSample.m_bBankIndex = 0;
- emittingVolume = 127;
+ emittingVolume = maxVolume;
m_sQueueSample.m_nFrequency =
SampleManager.GetSampleBaseFrequency(AUDIO_SAMPLE_PARTY_11);
m_sQueueSample.field_16 = 3;
@@ -4944,7 +5122,7 @@ cAudioManager::ProcessLoopingScriptObject(uint8 sound)
m_sQueueSample.m_fSoundIntensity = 80.0f;
m_sQueueSample.m_nSampleIndex = AUDIO_SAMPLE_PARTY_11;
m_sQueueSample.m_bBankIndex = 0;
- emittingVolume = 127;
+ emittingVolume = maxVolume;
m_sQueueSample.m_nFrequency =
SampleManager.GetSampleBaseFrequency(AUDIO_SAMPLE_PARTY_11);
m_sQueueSample.field_16 = 3;
@@ -4956,7 +5134,7 @@ cAudioManager::ProcessLoopingScriptObject(uint8 sound)
m_sQueueSample.m_fSoundIntensity = 30.0f;
m_sQueueSample.m_nSampleIndex = AUDIO_SAMPLE_PARTY_12;
m_sQueueSample.m_bBankIndex = 0;
- emittingVolume = 127;
+ emittingVolume = maxVolume;
m_sQueueSample.m_nFrequency =
SampleManager.GetSampleBaseFrequency(AUDIO_SAMPLE_PARTY_12);
m_sQueueSample.field_16 = 3;
@@ -4968,7 +5146,7 @@ cAudioManager::ProcessLoopingScriptObject(uint8 sound)
m_sQueueSample.m_fSoundIntensity = 80.0f;
m_sQueueSample.m_nSampleIndex = AUDIO_SAMPLE_PARTY_12;
m_sQueueSample.m_bBankIndex = 0;
- emittingVolume = 127;
+ emittingVolume = maxVolume;
m_sQueueSample.m_nFrequency =
SampleManager.GetSampleBaseFrequency(AUDIO_SAMPLE_PARTY_12);
m_sQueueSample.field_16 = 3;
@@ -4980,7 +5158,7 @@ cAudioManager::ProcessLoopingScriptObject(uint8 sound)
m_sQueueSample.m_fSoundIntensity = 30.0f;
m_sQueueSample.m_nSampleIndex = AUDIO_SAMPLE_PARTY_13;
m_sQueueSample.m_bBankIndex = 0;
- emittingVolume = 127;
+ emittingVolume = maxVolume;
m_sQueueSample.m_nFrequency =
SampleManager.GetSampleBaseFrequency(AUDIO_SAMPLE_PARTY_13);
m_sQueueSample.field_16 = 3;
@@ -4992,7 +5170,7 @@ cAudioManager::ProcessLoopingScriptObject(uint8 sound)
m_sQueueSample.m_fSoundIntensity = 80.0f;
m_sQueueSample.m_nSampleIndex = AUDIO_SAMPLE_PARTY_13;
m_sQueueSample.m_bBankIndex = 0;
- emittingVolume = 127;
+ emittingVolume = maxVolume;
m_sQueueSample.m_nFrequency =
SampleManager.GetSampleBaseFrequency(AUDIO_SAMPLE_PARTY_13);
m_sQueueSample.field_16 = 3;
@@ -5004,7 +5182,7 @@ cAudioManager::ProcessLoopingScriptObject(uint8 sound)
m_sQueueSample.m_fSoundIntensity = 30.0f;
m_sQueueSample.m_nSampleIndex = AUDIO_SAMPLE_STRIP_CLUB_1;
m_sQueueSample.m_bBankIndex = 0;
- emittingVolume = 127;
+ emittingVolume = maxVolume;
m_sQueueSample.m_nFrequency =
SampleManager.GetSampleBaseFrequency(AUDIO_SAMPLE_STRIP_CLUB_1);
m_sQueueSample.field_16 = 3;
@@ -5016,7 +5194,7 @@ cAudioManager::ProcessLoopingScriptObject(uint8 sound)
m_sQueueSample.m_fSoundIntensity = 80.0f;
m_sQueueSample.m_nSampleIndex = AUDIO_SAMPLE_STRIP_CLUB_1;
m_sQueueSample.m_bBankIndex = 0;
- emittingVolume = 127;
+ emittingVolume = maxVolume;
m_sQueueSample.m_nFrequency =
SampleManager.GetSampleBaseFrequency(AUDIO_SAMPLE_STRIP_CLUB_1);
m_sQueueSample.field_16 = 3;
@@ -5028,7 +5206,7 @@ cAudioManager::ProcessLoopingScriptObject(uint8 sound)
m_sQueueSample.m_fSoundIntensity = 30.0f;
m_sQueueSample.m_nSampleIndex = AUDIO_SAMPLE_STRIP_CLUB_2;
m_sQueueSample.m_bBankIndex = 0;
- emittingVolume = 127;
+ emittingVolume = maxVolume;
m_sQueueSample.m_nFrequency =
SampleManager.GetSampleBaseFrequency(AUDIO_SAMPLE_STRIP_CLUB_2);
m_sQueueSample.field_16 = 3;
@@ -5040,7 +5218,7 @@ cAudioManager::ProcessLoopingScriptObject(uint8 sound)
m_sQueueSample.m_fSoundIntensity = 80.0f;
m_sQueueSample.m_nSampleIndex = AUDIO_SAMPLE_STRIP_CLUB_2;
m_sQueueSample.m_bBankIndex = 0;
- emittingVolume = 127;
+ emittingVolume = maxVolume;
m_sQueueSample.m_nFrequency =
SampleManager.GetSampleBaseFrequency(AUDIO_SAMPLE_STRIP_CLUB_2);
m_sQueueSample.field_16 = 3;
@@ -5048,11 +5226,9 @@ cAudioManager::ProcessLoopingScriptObject(uint8 sound)
m_sQueueSample.field_48 = 2.0f;
break;
case SCRIPT_SOUND_WORK_SHOP_LOOP_S:
- case SCRIPT_SOUND_WORK_SHOP_LOOP_L:
- cAudioManager::ProcessWorkShopScriptObject(sound);
- return;
+ case SCRIPT_SOUND_WORK_SHOP_LOOP_L: ProcessWorkShopScriptObject(sound); return;
case SCRIPT_SOUND_SAWMILL_LOOP_S:
- case SCRIPT_SOUND_SAWMILL_LOOP_L: cAudioManager::ProcessSawMillScriptObject(sound); return;
+ case SCRIPT_SOUND_SAWMILL_LOOP_L: ProcessSawMillScriptObject(sound); return;
case SCRIPT_SOUND_38:
maxDist = 900.f;
m_sQueueSample.m_fSoundIntensity = 30.0f;
@@ -5182,15 +5358,15 @@ cAudioManager::ProcessLoopingScriptObject(uint8 sound)
case SCRIPT_SOUND_CINEMA_LOOP_S:
case SCRIPT_SOUND_CINEMA_LOOP_L: ProcessCinemaScriptObject(sound); return;
case SCRIPT_SOUND_DOCKS_LOOP_S:
- case SCRIPT_SOUND_DOCKS_LOOP_L: cAudioManager::ProcessDocksScriptObject(sound); return;
+ case SCRIPT_SOUND_DOCKS_LOOP_L: ProcessDocksScriptObject(sound); return;
case SCRIPT_SOUND_HOME_LOOP_S:
- case SCRIPT_SOUND_HOME_LOOP_L: cAudioManager::ProcessHomeScriptObject(sound); return;
+ case SCRIPT_SOUND_HOME_LOOP_L: ProcessHomeScriptObject(sound); return;
case SCRIPT_SOUND_FRANKIE_PIANO:
maxDist = 900.f;
m_sQueueSample.m_fSoundIntensity = 30.0f;
m_sQueueSample.m_nSampleIndex = AUDIO_SAMPLE_FRANKIE_PIANO;
m_sQueueSample.m_bBankIndex = 0;
- emittingVolume = 127;
+ emittingVolume = maxVolume;
m_sQueueSample.m_nFrequency =
SampleManager.GetSampleBaseFrequency(AUDIO_SAMPLE_FRANKIE_PIANO);
m_sQueueSample.field_16 = 3;
@@ -5202,7 +5378,7 @@ cAudioManager::ProcessLoopingScriptObject(uint8 sound)
m_sQueueSample.m_fSoundIntensity = 80.0f;
m_sQueueSample.m_nSampleIndex = AUDIO_SAMPLE_PARTY_1;
m_sQueueSample.m_bBankIndex = 0;
- emittingVolume = 127;
+ emittingVolume = maxVolume;
m_sQueueSample.m_nFrequency =
SampleManager.GetSampleBaseFrequency(AUDIO_SAMPLE_PARTY_1);
m_sQueueSample.field_16 = 3;
@@ -5246,7 +5422,7 @@ cAudioManager::ProcessLoopingScriptObject(uint8 sound)
m_sQueueSample.m_fSoundIntensity = 30.0f;
m_sQueueSample.m_nSampleIndex = AUDIO_SAMPLE_POLICE_BALL;
m_sQueueSample.m_bBankIndex = 0;
- emittingVolume = 127;
+ emittingVolume = maxVolume;
m_sQueueSample.m_nFrequency =
SampleManager.GetSampleBaseFrequency(AUDIO_SAMPLE_POLICE_BALL);
m_sQueueSample.field_16 = 2;
@@ -5258,7 +5434,7 @@ cAudioManager::ProcessLoopingScriptObject(uint8 sound)
m_sQueueSample.m_fSoundIntensity = 80.0f;
m_sQueueSample.m_nSampleIndex = AUDIO_SAMPLE_POLICE_BALL;
m_sQueueSample.m_bBankIndex = 0;
- emittingVolume = 127;
+ emittingVolume = maxVolume;
m_sQueueSample.m_nFrequency =
SampleManager.GetSampleBaseFrequency(AUDIO_SAMPLE_POLICE_BALL);
m_sQueueSample.field_16 = 2;
@@ -5270,7 +5446,7 @@ cAudioManager::ProcessLoopingScriptObject(uint8 sound)
m_sQueueSample.m_fSoundIntensity = 30.0f;
m_sQueueSample.m_nSampleIndex = AUDIO_SAMPLE_RAVE_INDUSTRIAL;
m_sQueueSample.m_bBankIndex = 0;
- emittingVolume = 127;
+ emittingVolume = maxVolume;
m_sQueueSample.m_nFrequency =
SampleManager.GetSampleBaseFrequency(AUDIO_SAMPLE_RAVE_INDUSTRIAL);
m_sQueueSample.field_16 = 3;
@@ -5282,7 +5458,7 @@ cAudioManager::ProcessLoopingScriptObject(uint8 sound)
m_sQueueSample.m_fSoundIntensity = 80.0f;
m_sQueueSample.m_nSampleIndex = AUDIO_SAMPLE_RAVE_INDUSTRIAL;
m_sQueueSample.m_bBankIndex = 0;
- emittingVolume = 127;
+ emittingVolume = maxVolume;
m_sQueueSample.m_nFrequency =
SampleManager.GetSampleBaseFrequency(AUDIO_SAMPLE_RAVE_INDUSTRIAL);
m_sQueueSample.field_16 = 3;
@@ -5291,7 +5467,7 @@ cAudioManager::ProcessLoopingScriptObject(uint8 sound)
break;
case SCRIPT_SOUND_POLICE_CELL_BEATING_LOOP_S:
case SCRIPT_SOUND_POLICE_CELL_BEATING_LOOP_L:
- cAudioManager::ProcessPoliceCellBeatingScriptObject(sound);
+ ProcessPoliceCellBeatingScriptObject(sound);
return;
case SCRIPT_SOUND_RAVE_1_LOOP_S:
case SCRIPT_SOUND_RAVE_2_LOOP_S:
@@ -5299,7 +5475,7 @@ cAudioManager::ProcessLoopingScriptObject(uint8 sound)
m_sQueueSample.m_fSoundIntensity = 30.0f;
m_sQueueSample.m_nSampleIndex = AUDIO_SAMPLE_RAVE_1;
m_sQueueSample.m_bBankIndex = 0;
- emittingVolume = 127;
+ emittingVolume = maxVolume;
m_sQueueSample.m_nFrequency =
SampleManager.GetSampleBaseFrequency(m_sQueueSample.m_nSampleIndex);
m_sQueueSample.field_16 = 3;
@@ -5312,7 +5488,7 @@ cAudioManager::ProcessLoopingScriptObject(uint8 sound)
m_sQueueSample.m_fSoundIntensity = 80.0f;
m_sQueueSample.m_nSampleIndex = AUDIO_SAMPLE_RAVE_1;
m_sQueueSample.m_bBankIndex = 0;
- emittingVolume = 127;
+ emittingVolume = maxVolume;
m_sQueueSample.m_nFrequency =
SampleManager.GetSampleBaseFrequency(m_sQueueSample.m_nSampleIndex);
m_sQueueSample.field_16 = 3;
@@ -5324,7 +5500,7 @@ cAudioManager::ProcessLoopingScriptObject(uint8 sound)
m_sQueueSample.m_fSoundIntensity = 30.0f;
m_sQueueSample.m_nSampleIndex = AUDIO_SAMPLE_RAVE_2;
m_sQueueSample.m_bBankIndex = 0;
- emittingVolume = 127;
+ emittingVolume = maxVolume;
m_sQueueSample.m_nFrequency =
SampleManager.GetSampleBaseFrequency(AUDIO_SAMPLE_RAVE_2);
m_sQueueSample.field_16 = 3;
@@ -5336,7 +5512,7 @@ cAudioManager::ProcessLoopingScriptObject(uint8 sound)
m_sQueueSample.m_fSoundIntensity = 80.0f;
m_sQueueSample.m_nSampleIndex = AUDIO_SAMPLE_RAVE_2;
m_sQueueSample.m_bBankIndex = 0;
- emittingVolume = 127;
+ emittingVolume = maxVolume;
m_sQueueSample.m_nFrequency =
SampleManager.GetSampleBaseFrequency(AUDIO_SAMPLE_RAVE_2);
m_sQueueSample.field_16 = 3;
@@ -5364,7 +5540,7 @@ cAudioManager::ProcessLoopingScriptObject(uint8 sound)
m_sQueueSample.m_bVolume = ComputeVolume(
emittingVolume, m_sQueueSample.m_fSoundIntensity, m_sQueueSample.m_fDistance);
if(m_sQueueSample.m_bVolume) {
- m_sQueueSample.field_4 = 0;
+ m_sQueueSample.m_counter = 0;
m_sQueueSample.m_bIsDistant = 0;
m_sQueueSample.m_nLoopCount = 0;
m_sQueueSample.field_56 = 0;
@@ -5380,6 +5556,155 @@ cAudioManager::ProcessLoopingScriptObject(uint8 sound)
}
}
+bool &g_bMissionAudioLoadFailed = *(bool *)0x95CD8E;
+
+void
+cAudioManager::ProcessMissionAudio()
+{
+ float dist;
+ uint8 emittingVol;
+ uint8 pan;
+ float distSquared;
+ CVector vec;
+
+ static uint8 nCheckPlayingDelay = 0;
+ static uint8 nFramesUntilFailedLoad = 0;
+ static uint8 nFramesForPretendPlaying = 0;
+
+ if(this->m_bIsInitialised) {
+ if(m_sMissionAudio.m_nSampleIndex != 3033) {
+ switch(this->m_sMissionAudio.m_bLoadingStatus) {
+ case 0:
+ SampleManager.PreloadStreamedFile(m_sMissionAudio.m_nSampleIndex,
+ 1u);
+ m_sMissionAudio.m_bLoadingStatus = 1;
+ nFramesUntilFailedLoad = 0;
+ return;
+ case 1:
+ if(!this->m_sMissionAudio.m_bIsPlayed) return;
+ if(g_bMissionAudioLoadFailed) {
+ if(this->m_bTimerJustReset) {
+ ClearMissionAudio();
+ SampleManager.StopStreamedFile(1u);
+ nFramesForPretendPlaying = 0;
+ nCheckPlayingDelay = 0;
+ nFramesUntilFailedLoad = 0;
+ } else if(!m_bUserPause) {
+ if(++nFramesForPretendPlaying < 120u) {
+ this->m_sMissionAudio.m_bPlayStatus = 1;
+ } else {
+ this->m_sMissionAudio.m_bPlayStatus = 2;
+ this->m_sMissionAudio.m_nSampleIndex = 3033;
+ }
+ }
+ } else {
+ if(m_sMissionAudio.m_bPlayStatus) {
+ if(m_sMissionAudio.m_bPlayStatus != 1) return;
+ if(this->m_bTimerJustReset) {
+ ClearMissionAudio();
+ SampleManager.StopStreamedFile(1u);
+ return;
+ }
+ if(MissionScriptAudioUsesPoliceChannel(
+ m_sMissionAudio.m_nSampleIndex)) {
+ if(!m_bUserPause) {
+ if(nCheckPlayingDelay) {
+ --nCheckPlayingDelay;
+ } else if(
+ GetMissionScriptPoliceAudioPlayingStatus() ==
+ 2 ||
+ --m_sMissionAudio.field_24) {
+ m_sMissionAudio
+ .m_bPlayStatus = 2;
+ m_sMissionAudio
+ .m_nSampleIndex = 3033;
+ SampleManager
+ .StopStreamedFile(1u);
+ m_sMissionAudio.field_24 =
+ 0;
+ }
+ }
+ } else if(m_sMissionAudio.field_22) {
+ if(SampleManager.IsStreamPlaying(1u) ||
+ m_bUserPause || m_bPreviousUserPause) {
+ if(m_bUserPause)
+ SampleManager.PauseStream(
+ 1, 1u);
+ else
+ SampleManager.PauseStream(
+ 0, 1u);
+ } else {
+ m_sMissionAudio.m_bPlayStatus = 2;
+ m_sMissionAudio.m_nSampleIndex =
+ 3033;
+ SampleManager.StopStreamedFile(1u);
+ m_sMissionAudio.field_24 = 0;
+ }
+ } else {
+ if(m_bUserPause) return;
+ if(nCheckPlayingDelay--) {
+ if(!SampleManager.IsStreamPlaying(
+ 1u))
+ return;
+ nCheckPlayingDelay = 0;
+ }
+ m_sMissionAudio.field_22 = 1;
+ }
+ } else {
+ if(MissionScriptAudioUsesPoliceChannel(
+ m_sMissionAudio.m_nSampleIndex)) {
+ SetMissionScriptPoliceAudio(
+ m_sMissionAudio.m_nSampleIndex);
+ } else {
+ if(m_bUserPause)
+ SampleManager.PauseStream(1, 1u);
+ if(m_sMissionAudio.field_12) {
+ SampleManager
+ .SetStreamedVolumeAndPan(
+ 80u, 63u, 1, 1u);
+ } else {
+ distSquared = GetDistanceSquared(
+ &m_sMissionAudio.m_vecPos);
+ if(distSquared >= 2500.f) {
+ emittingVol = 0;
+ pan = 63;
+ } else {
+ dist = Sqrt(distSquared);
+ emittingVol = ComputeVolume(
+ 80u, 50.0f, dist);
+ TranslateEntity(
+ &m_sMissionAudio
+ .m_vecPos,
+ &vec);
+ pan =
+ ComputePan(50.f, &vec);
+ }
+ SampleManager
+ .SetStreamedVolumeAndPan(
+ emittingVol, pan, 1, 1u);
+ }
+ SampleManager.StartPreloadedStreamedFile(
+ 1u);
+ }
+ m_sMissionAudio.m_bPlayStatus = 1;
+ nCheckPlayingDelay = 30;
+ }
+ }
+ break;
+ case 2:
+ if(++nFramesUntilFailedLoad >= 90u) {
+ nFramesForPretendPlaying = 0;
+ g_bMissionAudioLoadFailed = 1;
+ nFramesUntilFailedLoad = 0;
+ this->m_sMissionAudio.m_bLoadingStatus = 1;
+ }
+ return;
+ default: return;
+ }
+ }
+ }
+}
+
void
cAudioManager::ProcessModelCarEngine(cVehicleParams *params)
{
@@ -5413,7 +5738,7 @@ cAudioManager::ProcessModelCarEngine(cVehicleParams *params)
m_sQueueSample.m_bVolume = ComputeVolume(
emittingVol, 30.f, m_sQueueSample.m_fDistance);
if(m_sQueueSample.m_bVolume) {
- m_sQueueSample.field_4 = 2;
+ m_sQueueSample.m_counter = 2;
m_sQueueSample.m_nSampleIndex =
AUDIO_SAMPLE_MODEL_VEHICLE_ACCELERATING;
m_sQueueSample.m_bBankIndex = 0;
@@ -5431,8 +5756,8 @@ cAudioManager::ProcessModelCarEngine(cVehicleParams *params)
m_sQueueSample.m_nLoopEnd =
SampleManager.GetSampleLoopEndOffset(
m_sQueueSample.m_nSampleIndex);
- m_sQueueSample.field_48 = 3.0;
- m_sQueueSample.m_fSoundIntensity = 30.0;
+ m_sQueueSample.field_48 = 3.0f;
+ m_sQueueSample.m_fSoundIntensity = 30.0f;
m_sQueueSample.field_56 = 0;
m_sQueueSample.field_76 = 3;
m_sQueueSample.m_bReverbFlag = 1;
@@ -5464,14 +5789,14 @@ cAudioManager::ProcessOneShotScriptObject(uint8 sound)
male.m_pPed = nil;
male.m_bDistanceCalculated = 0;
male.m_fDistance = GetDistanceSquared(&m_sQueueSample.m_vecPos);
- cAudioManager::SetupPedComments(&male, SOUND_INJURED_PED_MALE_OUCH);
+ SetupPedComments(&male, SOUND_INJURED_PED_MALE_OUCH);
return;
case SCRIPT_SOUND_INJURED_PED_FEMALE_OUCH_S:
case SCRIPT_SOUND_INJURED_PED_FEMALE_OUCH_L:
female.m_pPed = nil;
female.m_bDistanceCalculated = 0;
female.m_fDistance = GetDistanceSquared(&m_sQueueSample.m_vecPos);
- cAudioManager::SetupPedComments(&female, SOUND_INJURED_PED_FEMALE);
+ SetupPedComments(&female, SOUND_INJURED_PED_FEMALE);
return;
case SCRIPT_SOUND_GATE_START_CLUNK:
case SCRIPT_SOUND_GATE_STOP_CLUNK:
@@ -5512,7 +5837,7 @@ cAudioManager::ProcessOneShotScriptObject(uint8 sound)
m_sQueueSample.m_fSoundIntensity = 80.0f;
m_sQueueSample.m_nSampleIndex = AUDIO_SAMPLE_389;
m_sQueueSample.m_bBankIndex = 0;
- emittingVolume = 127;
+ emittingVolume = maxVolume;
m_sQueueSample.m_nFrequency =
SampleManager.GetSampleBaseFrequency(AUDIO_SAMPLE_389);
m_sQueueSample.field_16 = 0;
@@ -5663,7 +5988,7 @@ cAudioManager::ProcessOneShotScriptObject(uint8 sound)
emittingVolume, m_sQueueSample.m_fSoundIntensity,
m_sQueueSample.m_fDistance);
if(m_sQueueSample.m_bVolume) {
- m_sQueueSample.field_4 = iSound++;
+ m_sQueueSample.m_counter = iSound++;
m_sQueueSample.m_nLoopCount = 1;
m_sQueueSample.field_56 = 1;
m_sQueueSample.m_bEmittingVolume = emittingVolume;
@@ -5708,7 +6033,7 @@ cAudioManager::ProcessOneShotScriptObject(uint8 sound)
m_sQueueSample.m_bVolume = ComputeVolume(
emittingVolume, m_sQueueSample.m_fSoundIntensity, m_sQueueSample.m_fDistance);
if(m_sQueueSample.m_bVolume) {
- m_sQueueSample.field_4 = iSound++;
+ m_sQueueSample.m_counter = iSound++;
m_sQueueSample.m_nLoopCount = 1;
m_sQueueSample.field_56 = 1;
m_sQueueSample.m_bEmittingVolume = emittingVolume;
@@ -5768,7 +6093,7 @@ cAudioManager::ProcessPedHeadphones(cPedParams *params)
m_sQueueSample.m_bVolume =
ComputeVolume(emittingVol, 7.f, m_sQueueSample.m_fDistance);
if(m_sQueueSample.m_bVolume) {
- m_sQueueSample.field_4 = 64;
+ m_sQueueSample.m_counter = 64;
m_sQueueSample.m_nSampleIndex = AUDIO_SAMPLE_PED_HEADPHONES;
m_sQueueSample.m_bBankIndex = 0;
m_sQueueSample.m_bIsDistant = 0;
@@ -5795,6 +6120,14 @@ cAudioManager::ProcessPedHeadphones(cPedParams *params)
}
}
+#if 1
+WRAPPER
+void
+cAudioManager::ProcessPedOneShots(cPedParams *params)
+{
+ EAXJMP(0x56F650);
+}
+#else
void
cAudioManager::ProcessPedOneShots(cPedParams *params)
{
@@ -5812,11 +6145,11 @@ cAudioManager::ProcessPedOneShots(cPedParams *params)
static uint8 iSound = 21;
weapon = nil;
- for(uint32 i = 0; i < m_asAudioEntities[m_sQueueSample.m_nEntityIndex].field_24; i++) {
+ for(uint32 i = 0; i < m_asAudioEntities[m_sQueueSample.m_nEntityIndex].m_Loops; i++) {
noReflection = 0;
processed = 0;
m_sQueueSample.m_bRequireReflection = 0;
- sound = m_asAudioEntities[0].m_awAudioEvent[i + 20 * m_sQueueSample.m_nEntityIndex];
+ sound = m_asAudioEntities[m_sQueueSample.m_nEntityIndex].m_awAudioEvent[i];
switch(sound) {
case SOUND_STEP_START:
case SOUND_STEP_END:
@@ -5875,9 +6208,9 @@ cAudioManager::ProcessPedOneShots(cPedParams *params)
}
m_sQueueSample.m_nSampleIndex = sampleIndex;
m_sQueueSample.m_bBankIndex = 0;
- m_sQueueSample.field_4 =
- m_asAudioEntities[0]
- .m_awAudioEvent[i + 20 * m_sQueueSample.m_nEntityIndex] -
+ m_sQueueSample.m_counter =
+ m_asAudioEntities[m_sQueueSample.m_nEntityIndex]
+ .m_awAudioEvent[i] -
28;
m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(
m_sQueueSample.m_nSampleIndex);
@@ -5928,7 +6261,7 @@ cAudioManager::ProcessPedOneShots(cPedParams *params)
AUDIO_SAMPLE_PED_FALL_COLLAPSE;
}
m_sQueueSample.m_bBankIndex = 0;
- m_sQueueSample.field_4 = 1;
+ m_sQueueSample.m_counter = 1;
m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(
m_sQueueSample.m_nSampleIndex);
m_sQueueSample.m_nFrequency +=
@@ -5950,7 +6283,7 @@ cAudioManager::ProcessPedOneShots(cPedParams *params)
m_sQueueSample.m_nSampleIndex = AUDIO_SAMPLE_PED_HIT_1;
m_sQueueSample.m_nFrequency = 18000;
m_sQueueSample.m_bBankIndex = 0;
- m_sQueueSample.field_4 = iSound;
+ m_sQueueSample.m_counter = iSound;
processed = 1;
++iSound;
m_sQueueSample.field_16 = 3;
@@ -5970,7 +6303,7 @@ cAudioManager::ProcessPedOneShots(cPedParams *params)
m_sQueueSample.m_nSampleIndex = AUDIO_SAMPLE_PED_HIT_1;
m_sQueueSample.m_nFrequency = 16500;
m_sQueueSample.m_bBankIndex = 0;
- m_sQueueSample.field_4 = iSound;
+ m_sQueueSample.m_counter = iSound;
processed = 1;
++iSound;
m_sQueueSample.field_16 = 3;
@@ -5990,7 +6323,7 @@ cAudioManager::ProcessPedOneShots(cPedParams *params)
m_sQueueSample.m_nSampleIndex = AUDIO_SAMPLE_PED_HIT_1;
m_sQueueSample.m_nFrequency = 20000;
m_sQueueSample.m_bBankIndex = 0;
- m_sQueueSample.field_4 = iSound;
+ m_sQueueSample.m_counter = iSound;
processed = 1;
++iSound;
m_sQueueSample.field_16 = 3;
@@ -6010,7 +6343,7 @@ cAudioManager::ProcessPedOneShots(cPedParams *params)
m_sQueueSample.m_nSampleIndex = AUDIO_SAMPLE_PED_HIT_2;
m_sQueueSample.m_nFrequency = 18000;
m_sQueueSample.m_bBankIndex = 0;
- m_sQueueSample.field_4 = iSound;
+ m_sQueueSample.m_counter = iSound;
processed = 1;
++iSound;
m_sQueueSample.field_16 = 3;
@@ -6030,7 +6363,7 @@ cAudioManager::ProcessPedOneShots(cPedParams *params)
m_sQueueSample.m_nSampleIndex = AUDIO_SAMPLE_PED_HIT_2;
m_sQueueSample.m_nFrequency = 16500;
m_sQueueSample.m_bBankIndex = 0;
- m_sQueueSample.field_4 = iSound;
+ m_sQueueSample.m_counter = iSound;
processed = 1;
++iSound;
m_sQueueSample.field_16 = 3;
@@ -6050,7 +6383,7 @@ cAudioManager::ProcessPedOneShots(cPedParams *params)
m_sQueueSample.m_nSampleIndex = AUDIO_SAMPLE_PED_HIT_2;
m_sQueueSample.m_nFrequency = 20000;
m_sQueueSample.m_bBankIndex = 0;
- m_sQueueSample.field_4 = iSound;
+ m_sQueueSample.m_counter = iSound;
processed = 1;
++iSound;
m_sQueueSample.field_16 = 3;
@@ -6070,7 +6403,7 @@ cAudioManager::ProcessPedOneShots(cPedParams *params)
m_sQueueSample.m_nSampleIndex = AUDIO_SAMPLE_PED_HIT_3;
m_sQueueSample.m_nFrequency = 18000;
m_sQueueSample.m_bBankIndex = 0;
- m_sQueueSample.field_4 = iSound;
+ m_sQueueSample.m_counter = iSound;
processed = 1;
++iSound;
m_sQueueSample.field_16 = 3;
@@ -6090,7 +6423,7 @@ cAudioManager::ProcessPedOneShots(cPedParams *params)
m_sQueueSample.m_nSampleIndex = AUDIO_SAMPLE_PED_HIT_3;
m_sQueueSample.m_nFrequency = 16500;
m_sQueueSample.m_bBankIndex = 0;
- m_sQueueSample.field_4 = iSound;
+ m_sQueueSample.m_counter = iSound;
processed = 1;
++iSound;
m_sQueueSample.field_16 = 3;
@@ -6110,7 +6443,7 @@ cAudioManager::ProcessPedOneShots(cPedParams *params)
m_sQueueSample.m_nSampleIndex = AUDIO_SAMPLE_PED_HIT_3;
m_sQueueSample.m_nFrequency = 20000;
m_sQueueSample.m_bBankIndex = 0;
- m_sQueueSample.field_4 = iSound;
+ m_sQueueSample.m_counter = iSound;
processed = 1;
++iSound;
m_sQueueSample.field_16 = 3;
@@ -6130,7 +6463,7 @@ cAudioManager::ProcessPedOneShots(cPedParams *params)
m_sQueueSample.m_nSampleIndex = AUDIO_SAMPLE_PED_HIT_4;
m_sQueueSample.m_nFrequency = 18000;
m_sQueueSample.m_bBankIndex = 0;
- m_sQueueSample.field_4 = iSound;
+ m_sQueueSample.m_counter = iSound;
processed = 1;
++iSound;
m_sQueueSample.field_16 = 3;
@@ -6150,7 +6483,7 @@ cAudioManager::ProcessPedOneShots(cPedParams *params)
m_sQueueSample.m_nSampleIndex = AUDIO_SAMPLE_PED_HIT_4;
m_sQueueSample.m_nFrequency = 16500;
m_sQueueSample.m_bBankIndex = 0;
- m_sQueueSample.field_4 = iSound;
+ m_sQueueSample.m_counter = iSound;
processed = 1;
++iSound;
m_sQueueSample.field_16 = 3;
@@ -6170,7 +6503,7 @@ cAudioManager::ProcessPedOneShots(cPedParams *params)
m_sQueueSample.m_nSampleIndex = AUDIO_SAMPLE_PED_HIT_4;
m_sQueueSample.m_nFrequency = 20000;
m_sQueueSample.m_bBankIndex = 0;
- m_sQueueSample.field_4 = iSound;
+ m_sQueueSample.m_counter = iSound;
processed = 1;
++iSound;
m_sQueueSample.field_16 = 3;
@@ -6189,7 +6522,7 @@ cAudioManager::ProcessPedOneShots(cPedParams *params)
case SOUND_WEAPON_BAT_ATTACK:
m_sQueueSample.m_nSampleIndex = AUDIO_SAMPLE_PED_HIT_BY_BAT;
m_sQueueSample.m_bBankIndex = 0;
- m_sQueueSample.field_4 = iSound++;
+ m_sQueueSample.m_counter = iSound++;
processed = 1;
m_sQueueSample.m_nFrequency = RandomDisplacement(2000u) + 22000;
m_sQueueSample.field_16 = 3;
@@ -6214,7 +6547,7 @@ cAudioManager::ProcessPedOneShots(cPedParams *params)
case WEAPONTYPE_COLT45:
m_sQueueSample.m_nSampleIndex = AUDIO_SAMPLE_WEAPON_PISTOL_SHOT;
m_sQueueSample.m_bBankIndex = 0;
- m_sQueueSample.field_4 = iSound++;
+ m_sQueueSample.m_counter = iSound++;
processed = 1;
m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(
AUDIO_SAMPLE_WEAPON_PISTOL_SHOT);
@@ -6239,7 +6572,7 @@ cAudioManager::ProcessPedOneShots(cPedParams *params)
case WEAPONTYPE_UZI:
m_sQueueSample.m_nSampleIndex = AUDIO_SAMPLE_WEAPON_UZI_SHOT;
m_sQueueSample.m_bBankIndex = 0;
- m_sQueueSample.field_4 = iSound++;
+ m_sQueueSample.m_counter = iSound++;
processed = 1;
m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(
AUDIO_SAMPLE_WEAPON_UZI_SHOT);
@@ -6260,7 +6593,7 @@ cAudioManager::ProcessPedOneShots(cPedParams *params)
case WEAPONTYPE_SHOTGUN:
m_sQueueSample.m_nSampleIndex = AUDIO_SAMPLE_WEAPON_SHOTGUN_SHOT;
m_sQueueSample.m_bBankIndex = 0;
- m_sQueueSample.field_4 = iSound++;
+ m_sQueueSample.m_counter = iSound++;
processed = 1;
m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(
AUDIO_SAMPLE_WEAPON_SHOTGUN_SHOT);
@@ -6285,7 +6618,7 @@ cAudioManager::ProcessPedOneShots(cPedParams *params)
case WEAPONTYPE_AK47:
m_sQueueSample.m_nSampleIndex = AUDIO_SAMPLE_WEAPON_CHAINGUN_SHOT;
m_sQueueSample.m_bBankIndex = 0;
- m_sQueueSample.field_4 = iSound++;
+ m_sQueueSample.m_counter = iSound++;
processed = 1;
m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(
AUDIO_SAMPLE_WEAPON_CHAINGUN_SHOT);
@@ -6306,7 +6639,7 @@ cAudioManager::ProcessPedOneShots(cPedParams *params)
case WEAPONTYPE_M16:
m_sQueueSample.m_nSampleIndex = AUDIO_SAMPLE_WEAPON_M16_SHOT;
m_sQueueSample.m_bBankIndex = 0;
- m_sQueueSample.field_4 = iSound++;
+ m_sQueueSample.m_counter = iSound++;
processed = 1;
m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(
AUDIO_SAMPLE_WEAPON_M16_SHOT);
@@ -6327,7 +6660,7 @@ cAudioManager::ProcessPedOneShots(cPedParams *params)
case WEAPONTYPE_SNIPERRIFLE:
m_sQueueSample.m_nSampleIndex = AUDIO_SAMPLE_WEAPON_SNIPER_SHOT;
m_sQueueSample.m_bBankIndex = 0;
- m_sQueueSample.field_4 = iSound++;
+ m_sQueueSample.m_counter = iSound++;
processed = 1;
m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(
AUDIO_SAMPLE_WEAPON_SNIPER_SHOT);
@@ -6352,7 +6685,7 @@ cAudioManager::ProcessPedOneShots(cPedParams *params)
case WEAPONTYPE_ROCKETLAUNCHER:
m_sQueueSample.m_nSampleIndex = AUDIO_SAMPLE_WEAPON_ROCKET_SHOT;
m_sQueueSample.m_bBankIndex = 0;
- m_sQueueSample.field_4 = iSound++;
+ m_sQueueSample.m_counter = iSound++;
processed = 1;
m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(
AUDIO_SAMPLE_WEAPON_ROCKET_SHOT);
@@ -6378,7 +6711,7 @@ cAudioManager::ProcessPedOneShots(cPedParams *params)
m_sQueueSample.m_nSampleIndex =
AUDIO_SAMPLE_WEAPON_FLAMETHROWER_SHOT;
m_sQueueSample.m_bBankIndex = 0;
- m_sQueueSample.field_4 = 9;
+ m_sQueueSample.m_counter = 9;
emittingVol = 90;
m_sQueueSample.m_nFrequency =
(10 * m_sQueueSample.m_nEntityIndex & 2047) +
@@ -6413,7 +6746,7 @@ cAudioManager::ProcessPedOneShots(cPedParams *params)
case WEAPONTYPE_COLT45:
m_sQueueSample.m_nSampleIndex = AUDIO_SAMPLE_WEAPON_PISTOL_RELOAD;
emittingVol = 75;
- m_sQueueSample.field_4 = iSound++;
+ m_sQueueSample.m_counter = iSound++;
processed = 1;
m_sQueueSample.m_nFrequency =
SampleManager.GetSampleBaseFrequency(
@@ -6436,7 +6769,7 @@ cAudioManager::ProcessPedOneShots(cPedParams *params)
case WEAPONTYPE_UZI:
m_sQueueSample.m_nSampleIndex = AUDIO_SAMPLE_WEAPON_UZI_RELOAD;
emittingVol = 75;
- m_sQueueSample.field_4 = iSound++;
+ m_sQueueSample.m_counter = iSound++;
processed = 1;
m_sQueueSample.m_nFrequency = 39243;
m_sQueueSample.m_nFrequency += RandomDisplacement(300u);
@@ -6456,7 +6789,7 @@ cAudioManager::ProcessPedOneShots(cPedParams *params)
case WEAPONTYPE_SHOTGUN:
m_sQueueSample.m_nSampleIndex = AUDIO_SAMPLE_WEAPON_CHAINGUN_RELOAD;
emittingVol = 75;
- m_sQueueSample.field_4 = iSound++;
+ m_sQueueSample.m_counter = iSound++;
processed = 1;
m_sQueueSample.m_nFrequency = 30290;
m_sQueueSample.m_nFrequency += RandomDisplacement(300u);
@@ -6476,7 +6809,7 @@ cAudioManager::ProcessPedOneShots(cPedParams *params)
case WEAPONTYPE_AK47:
m_sQueueSample.m_nSampleIndex = AUDIO_SAMPLE_WEAPON_CHAINGUN_RELOAD;
emittingVol = 75;
- m_sQueueSample.field_4 = iSound++;
+ m_sQueueSample.m_counter = iSound++;
processed = 1;
m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(
AUDIO_SAMPLE_WEAPON_CHAINGUN_RELOAD);
@@ -6497,7 +6830,7 @@ cAudioManager::ProcessPedOneShots(cPedParams *params)
case WEAPONTYPE_M16:
m_sQueueSample.m_nSampleIndex = AUDIO_SAMPLE_WEAPON_UZI_RELOAD;
emittingVol = 75;
- m_sQueueSample.field_4 = iSound++;
+ m_sQueueSample.m_counter = iSound++;
processed = 1;
m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(
AUDIO_SAMPLE_WEAPON_UZI_RELOAD);
@@ -6518,7 +6851,7 @@ cAudioManager::ProcessPedOneShots(cPedParams *params)
case WEAPONTYPE_SNIPERRIFLE:
m_sQueueSample.m_nSampleIndex = AUDIO_SAMPLE_WEAPON_SNIPER_RELOAD;
emittingVol = 75;
- m_sQueueSample.field_4 = iSound++;
+ m_sQueueSample.m_counter = iSound++;
processed = 1;
m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(
AUDIO_SAMPLE_WEAPON_SNIPER_RELOAD);
@@ -6539,7 +6872,7 @@ cAudioManager::ProcessPedOneShots(cPedParams *params)
case WEAPONTYPE_ROCKETLAUNCHER:
m_sQueueSample.m_nSampleIndex = AUDIO_SAMPLE_WEAPON_ROCKET_RELOAD;
emittingVol = 75;
- m_sQueueSample.field_4 = iSound++;
+ m_sQueueSample.m_counter = iSound++;
processed = 1;
m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(
AUDIO_SAMPLE_WEAPON_ROCKET_RELOAD);
@@ -6565,7 +6898,7 @@ cAudioManager::ProcessPedOneShots(cPedParams *params)
case SOUND_WEAPON_M16_BULLET_ECHO:
m_sQueueSample.m_nSampleIndex = AUDIO_SAMPLE_75;
m_sQueueSample.m_bBankIndex = 0;
- m_sQueueSample.field_4 = iSound++;
+ m_sQueueSample.m_counter = iSound++;
processed = 1;
m_sQueueSample.m_nFrequency =
SampleManager.GetSampleBaseFrequency(AUDIO_SAMPLE_75);
@@ -6590,7 +6923,7 @@ cAudioManager::ProcessPedOneShots(cPedParams *params)
case SOUND_WEAPON_FLAMETHROWER_FIRE:
m_sQueueSample.m_nSampleIndex = AUDIO_SAMPLE_WEAPON_FLAMETHROWER_FIRE;
m_sQueueSample.m_bBankIndex = 0;
- m_sQueueSample.field_4 = iSound++;
+ m_sQueueSample.m_counter = iSound++;
m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(
AUDIO_SAMPLE_WEAPON_FLAMETHROWER_FIRE);
m_sQueueSample.m_nFrequency +=
@@ -6610,7 +6943,7 @@ cAudioManager::ProcessPedOneShots(cPedParams *params)
case SOUND_WEAPON_HIT_PED:
m_sQueueSample.m_nSampleIndex = AUDIO_SAMPLE_BULLET_HIT_PED;
m_sQueueSample.m_bBankIndex = 0;
- m_sQueueSample.field_4 = iSound++;
+ m_sQueueSample.m_counter = iSound++;
processed = 1;
m_sQueueSample.m_nFrequency =
SampleManager.GetSampleBaseFrequency(AUDIO_SAMPLE_BULLET_HIT_PED);
@@ -6631,7 +6964,7 @@ cAudioManager::ProcessPedOneShots(cPedParams *params)
case SOUND_SPLASH:
m_sQueueSample.m_nSampleIndex = AUDIO_SAMPLE_COLLISION_WATER;
m_sQueueSample.m_bBankIndex = 0;
- m_sQueueSample.field_4 = iSound++;
+ m_sQueueSample.m_counter = iSound++;
processed = 1;
m_sQueueSample.m_nFrequency = RandomDisplacement(1400u) + 20000;
m_sQueueSample.field_16 = 1;
@@ -6672,16 +7005,14 @@ cAudioManager::ProcessPedOneShots(cPedParams *params)
if(noReflection) {
m_sQueueSample.m_bOffset = 127;
++m_sQueueSample.m_nSampleIndex;
- if(m_asAudioEntities[0].m_awAudioEvent
- [i +
- 20 * m_sQueueSample.m_nEntityIndex] !=
- 47 ||
+ if(m_asAudioEntities[m_sQueueSample.m_nEntityIndex]
+ .m_awAudioEvent[i] != 47 ||
weapon->m_eWeaponType !=
WEAPONTYPE_FLAMETHROWER) {
- m_sQueueSample.field_4 = iSound++;
+ m_sQueueSample.m_counter = iSound++;
if(iSound > 60u) iSound = 21;
} else {
- ++m_sQueueSample.field_4;
+ ++m_sQueueSample.m_counter;
}
AddSampleToRequestedQueue();
}
@@ -6690,6 +7021,7 @@ cAudioManager::ProcessPedOneShots(cPedParams *params)
}
}
}
+#endif
void
cAudioManager::ProcessPhysical(int32 id)
@@ -6723,7 +7055,7 @@ struct tVehicleSampleData {
char m_bEngineSoundType;
char gap_5[3];
eAudioSamples m_nHornSample;
- int m_nHornFrequency;
+ int32 m_nHornFrequency;
char m_nSirenOrAlarmSample;
int m_nSirenOrAlarmFrequency;
char m_bDoorType;
@@ -6733,6 +7065,15 @@ struct tVehicleSampleData {
int32 *CSWTCH_554 = (int32 *)0x606A50;
tVehicleSampleData *vehicleSampleData = (tVehicleSampleData *)0x606204;
+#if 0
+WRAPPER
+void
+cAudioManager::ProcessPlayersVehicleEngine(cVehicleParams *params, CAutomobile *automobile)
+{
+ EAXJMP(0x56B0D0);
+}
+#else
+
void
cAudioManager::ProcessPlayersVehicleEngine(cVehicleParams *params, CAutomobile *automobile)
{
@@ -6743,14 +7084,10 @@ cAudioManager::ProcessPlayersVehicleEngine(cVehicleParams *params, CAutomobile *
uint8 wheelInUseCounter;
uint8 i;
float time;
- uint32 freq4;
int baseFreq;
uint8 vol;
- unsigned int freq5;
int gearNr;
- int freq;
- unsigned int freq3;
- unsigned int freq2;
+ int32 freq;
int freqModifier;
int soundOffset;
@@ -6763,13 +7100,13 @@ cAudioManager::ProcessPlayersVehicleEngine(cVehicleParams *params, CAutomobile *
float gasPedalAudio;
CVector pos;
- static uint16 LastAccel = 0;
- static uint16 LastBrake = 0;
+ static int16 LastAccel = 0;
+ static int16 LastBrake = 0;
static uint8 CurrentPretendGear = 1;
static bool bLostTractionLastFrame = 0;
static bool bHandbrakeOnLastFrame = 0;
- static uint32 nCruising = 0;
- static uint8 bAccelSampleStopped = 1;
+ static int32 nCruising = 0;
+ static bool bAccelSampleStopped = 1;
lostTraction = 0;
processedAccelSampleStopped = 0;
@@ -6784,7 +7121,7 @@ cAudioManager::ProcessPlayersVehicleEngine(cVehicleParams *params, CAutomobile *
CurrentPretendGear = 1;
}
if(CReplay::IsPlayingBack()) {
- accelerateState = 255.f * max(0.0f, min(1.0f, automobile->m_fGasPedal));
+ accelerateState = 255.f * Max(0.0f, Min(1.0f, automobile->m_fGasPedal));
} else {
accelerateState = Pads->GetAccelerate();
}
@@ -6816,14 +7153,14 @@ cAudioManager::ProcessPlayersVehicleEngine(cVehicleParams *params, CAutomobile *
(automobile->m_aWheelState[1] || automobile->m_aWheelState[3])) {
lostTraction = 1;
}
- if(0.0f != velocityChange) { // ok
+ if(0.0f != velocityChange) {
time = params->m_pVehicle->m_vecMoveSpeed.z / velocityChange;
if(time <= 0.0f) {
- freqModifier = max(-0.2f, time) * -15000.f;
+ freqModifier = Max(-0.2f, time) * -15000.f;
} else {
- freqModifier = -(min(0.2f, time) * 15000.f);
+ freqModifier = -(Min(0.2f, time) * 15000.f);
}
- if(params->m_fVelocityChange < -0.001f) freqModifier = -freqModifier; // ok
+ if(params->m_fVelocityChange < -0.001f) freqModifier = -freqModifier;
} else {
freqModifier = 0;
}
@@ -6839,11 +7176,11 @@ cAudioManager::ProcessPlayersVehicleEngine(cVehicleParams *params, CAutomobile *
lostTraction) {
gasPedalAudio = automobile->m_fGasPedalAudio;
} else {
- gasPedalAudio = min(
- 1.0f, params->m_fVelocityChange /
- params->m_pTransmission->fMaxReverseVelocity); // ok
+ gasPedalAudio =
+ Min(1.0f, params->m_fVelocityChange /
+ params->m_pTransmission->fMaxReverseVelocity);
}
- gasPedalAudio = max(0.0f, gasPedalAudio); // ok
+ gasPedalAudio = Max(0.0f, gasPedalAudio);
automobile->m_fGasPedalAudio = gasPedalAudio;
} else if(LastAccel > 0) {
if(channelUsed) {
@@ -6858,29 +7195,29 @@ cAudioManager::ProcessPlayersVehicleEngine(cVehicleParams *params, CAutomobile *
automobile->m_fGasPedalAudio = automobile->m_fGasPedalAudio * 0.6f;
gasPedalAudio = automobile->m_fGasPedalAudio;
}
- if(gasPedalAudio > 0.05) { // ok
- freq3 = (5000.f * (gasPedalAudio - 0.05f) * 20.f / 19) + 19000;
- if(engineSoundType == 6) freq3 >>= 1;
+ if(gasPedalAudio > 0.05f) {
+ freq = (5000.f * (gasPedalAudio - 0.05f) * 20.f / 19) + 19000;
+ if(engineSoundType == 6) freq >>= 1;
AddPlayerCarSample(
- (25.f * (gasPedalAudio - 0.05f) * 20.f / 19) + 40, freq3,
+ (25.f * (gasPedalAudio - 0.05f) * 20.f / 19) + 40, freq,
(soundOffset + AUDIO_SAMPLE_VEHICLE_ENGINE_STOPPING_GENERIC),
engineSoundType, 63u, 0);
}
}
- freq2 = (10000.f * gasPedalAudio) + 22050;
- if(engineSoundType == 6) freq2 >>= 1;
- AddPlayerCarSample(110 - (40.f * gasPedalAudio), freq2,
+ freq = (10000.f * gasPedalAudio) + 22050;
+ if(engineSoundType == 6) freq >>= 1;
+ AddPlayerCarSample(110 - (40.f * gasPedalAudio), freq,
(engineSoundType + AUDIO_SAMPLE_VEHICLE_ENGINE_IDLE_NONE), 0,
52u, 1);
- CurrentPretendGear = max(1, currentGear);
+ CurrentPretendGear = Max(1, currentGear);
LastAccel = accelerateState;
bHandbrakeOnLastFrame = automobile->bIsHandbrakeOn;
bLostTractionLastFrame = lostTraction;
return;
}
- if(nCruising) {
+ if(!nCruising) {
if(accelerateState < 150 || !automobile->m_nWheelsOnGround ||
automobile->bIsHandbrakeOn || lostTraction ||
currentGear < 2u &&
@@ -6903,15 +7240,14 @@ cAudioManager::ProcessPlayersVehicleEngine(cVehicleParams *params, CAutomobile *
vol = (25.0f * accelerationMultipler) + 60;
automobile->m_fGasPedalAudio = accelerationMultipler;
}
- freq5 = freqModifier + baseFreq;
- if(engineSoundType == 6) freq5 >>= 1;
+ freq = freqModifier + baseFreq;
+ if(engineSoundType == 6) freq >>= 1;
if(channelUsed) {
SampleManager.StopChannel(m_bActiveSamples);
bAccelSampleStopped = 1;
}
- AddPlayerCarSample(vol, freq5,
- (engineSoundType + AUDIO_SAMPLE_PAYPHONE_RINGING), 0, 2u,
- 1);
+ AddPlayerCarSample(
+ vol, freq, (engineSoundType + AUDIO_SAMPLE_PAYPHONE_RINGING), 0, 2u, 1);
LastAccel = accelerateState;
bHandbrakeOnLastFrame = automobile->bIsHandbrakeOn;
@@ -6981,10 +7317,10 @@ cAudioManager::ProcessPlayersVehicleEngine(cVehicleParams *params, CAutomobile *
SampleManager.SetChannelEmittingVolume(m_bActiveSamples, 85u);
SampleManager.SetChannel3DPosition(m_bActiveSamples, pos.x, pos.y, pos.z);
SampleManager.SetChannel3DDistances(m_bActiveSamples, 50.f, 12.5f);
- if(engineSoundType == 6)
- freq = (CSWTCH_554[CurrentPretendGear] + freqModifier + 22050) >> 1;
- else
- freq = CSWTCH_554[CurrentPretendGear] + freqModifier + 22050;
+ freq = CSWTCH_554[CurrentPretendGear] + freqModifier + 22050;
+
+ if(engineSoundType == 6) freq >>= 1;
+
SampleManager.SetChannelFrequency(m_bActiveSamples, freq);
if(!channelUsed) {
SampleManager.SetChannelReverbFlag(
@@ -7010,9 +7346,9 @@ cAudioManager::ProcessPlayersVehicleEngine(cVehicleParams *params, CAutomobile *
} else if(nCruising > 3) {
--nCruising;
}
- freq4 = 27 * nCruising + freqModifier + 22050;
- if(engineSoundType == 6) freq4 >>= 1;
- AddPlayerCarSample(85u, freq4,
+ freq = 27 * nCruising + freqModifier + 22050;
+ if(engineSoundType == 6) freq >>= 1;
+ AddPlayerCarSample(85u, freq,
(soundOffset + AUDIO_SAMPLE_VEHICLE_ENGINE_CHANGE_GEAR_GENERIC),
engineSoundType, 64u, 1);
}
@@ -7021,6 +7357,7 @@ cAudioManager::ProcessPlayersVehicleEngine(cVehicleParams *params, CAutomobile *
bHandbrakeOnLastFrame = automobile->bIsHandbrakeOn;
bLostTractionLastFrame = lostTraction;
}
+#endif
WRAPPER
void
@@ -7096,7 +7433,7 @@ cAudioManager::ProcessPornCinema(uint8 sound)
if(m_sQueueSample.m_bVolume) {
m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(
m_sQueueSample.m_nSampleIndex);
- m_sQueueSample.field_4 = 0;
+ m_sQueueSample.m_counter = 0;
m_sQueueSample.m_bIsDistant = 0;
m_sQueueSample.m_nLoopCount = 0;
m_sQueueSample.field_56 = 0;
@@ -7125,7 +7462,7 @@ cAudioManager::ProcessPornCinema(uint8 sound)
m_sQueueSample.m_nSampleIndex);
m_sQueueSample.m_nFrequency +=
RandomDisplacement(m_sQueueSample.m_nFrequency >> 4);
- m_sQueueSample.field_4 = rand + 1;
+ m_sQueueSample.m_counter = rand + 1;
m_sQueueSample.m_bIsDistant = 0;
m_sQueueSample.m_nLoopCount = 1;
m_sQueueSample.field_56 = 1;
@@ -7166,7 +7503,7 @@ cAudioManager::ProcessRainOnVehicle(cVehicleParams *params)
m_sQueueSample.m_bVolume =
ComputeVolume(emittingVol, 22.f, m_sQueueSample.m_fDistance);
if(m_sQueueSample.m_bVolume) {
- m_sQueueSample.field_4 = veh->m_bRainSamplesCounter++;
+ m_sQueueSample.m_counter = veh->m_bRainSamplesCounter++;
veh = params->m_pVehicle;
if(veh->m_bRainSamplesCounter > 4u) veh->m_bRainSamplesCounter = 68;
m_sQueueSample.m_nSampleIndex =
@@ -7179,8 +7516,8 @@ cAudioManager::ProcessRainOnVehicle(cVehicleParams *params)
m_sQueueSample.m_bEmittingVolume = (uint8)emittingVol;
m_sQueueSample.m_nLoopStart = 0;
m_sQueueSample.m_nLoopEnd = -1;
- m_sQueueSample.field_48 = 0.0;
- m_sQueueSample.m_fSoundIntensity = 22.0;
+ m_sQueueSample.field_48 = 0.0f;
+ m_sQueueSample.m_fSoundIntensity = 22.0f;
m_sQueueSample.field_56 = 1;
m_sQueueSample.m_bReverbFlag = 0;
m_sQueueSample.m_bRequireReflection = 0;
@@ -7191,6 +7528,73 @@ cAudioManager::ProcessRainOnVehicle(cVehicleParams *params)
}
void
+cAudioManager::ProcessReverb() const
+{
+ if(SampleManager.UpdateReverb() && m_bDynamicAcousticModelingStatus) {
+ for(uint32 i = 0; i < 28; i++) {
+ if(m_asActiveSamples[i].m_bReverbFlag)
+ SampleManager.SetChannelReverbFlag(i, 1);
+ }
+ }
+}
+
+bool
+cAudioManager::ProcessReverseGear(cVehicleParams *params)
+{
+ CVehicle *veh;
+ CAutomobile *automobile;
+ int32 emittingVol;
+ float modificator;
+
+ if(params->m_fDistance >= 900.f) return 0;
+ veh = params->m_pVehicle;
+ if(veh->bEngineOn && (veh->m_fGasPedal < 0.0f || !veh->m_nCurrentGear)) {
+ CalculateDistance((bool *)params, params->m_fDistance);
+ automobile = (CAutomobile *)params->m_pVehicle;
+ if(automobile->m_nWheelsOnGround) {
+ modificator = params->m_fVelocityChange /
+ params->m_pTransmission->fMaxReverseVelocity;
+ } else {
+ if(automobile->m_nDriveWheelsOnGround)
+ automobile->m_fGasPedalAudio = automobile->m_fGasPedalAudio * 0.4f;
+ modificator = automobile->m_fGasPedalAudio;
+ }
+ modificator = Abs(modificator);
+ emittingVol = (24.f * modificator);
+ m_sQueueSample.m_bVolume =
+ ComputeVolume(emittingVol, 30.f, m_sQueueSample.m_fDistance);
+ if(m_sQueueSample.m_bVolume) {
+ if(params->m_pVehicle->m_fGasPedal >= 0.0f) {
+ m_sQueueSample.m_counter = 62;
+ m_sQueueSample.m_nSampleIndex = AUDIO_SAMPLE_REVERSE_GEAR_CONSTANT;
+ } else {
+ m_sQueueSample.m_counter = 61;
+ m_sQueueSample.m_nSampleIndex =
+ AUDIO_SAMPLE_REVERSE_GEAR_ACCELERATING;
+ }
+ m_sQueueSample.m_bBankIndex = 0;
+ m_sQueueSample.m_bIsDistant = 0;
+ m_sQueueSample.field_16 = 3;
+ m_sQueueSample.m_nFrequency = (6000.f * modificator) + 7000;
+ m_sQueueSample.m_nLoopCount = 0;
+ m_sQueueSample.m_bEmittingVolume = emittingVol;
+ m_sQueueSample.m_nLoopStart =
+ SampleManager.GetSampleLoopStartOffset(m_sQueueSample.m_nSampleIndex);
+ m_sQueueSample.m_nLoopEnd =
+ SampleManager.GetSampleLoopEndOffset(m_sQueueSample.m_nSampleIndex);
+ m_sQueueSample.field_48 = 3.0f;
+ m_sQueueSample.m_fSoundIntensity = 30.0f;
+ m_sQueueSample.field_56 = 0;
+ m_sQueueSample.field_76 = 5;
+ m_sQueueSample.m_bReverbFlag = 1;
+ m_sQueueSample.m_bRequireReflection = 0;
+ AddSampleToRequestedQueue();
+ }
+ }
+ return 1;
+}
+
+void
cAudioManager::ProcessSawMillScriptObject(uint8 sound)
{
uint32 time;
@@ -7215,7 +7619,7 @@ cAudioManager::ProcessSawMillScriptObject(uint8 sound)
m_sQueueSample.m_bBankIndex = 0;
m_sQueueSample.m_nFrequency =
SampleManager.GetSampleBaseFrequency(AUDIO_SAMPLE_SAWMILL_1);
- m_sQueueSample.field_4 = 0;
+ m_sQueueSample.m_counter = 0;
m_sQueueSample.m_bIsDistant = 0;
m_sQueueSample.m_nLoopCount = 0;
m_sQueueSample.field_56 = 0;
@@ -7239,7 +7643,7 @@ cAudioManager::ProcessSawMillScriptObject(uint8 sound)
m_sQueueSample.m_bBankIndex = 0;
m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(
m_sQueueSample.m_nSampleIndex);
- m_sQueueSample.field_4 = 1;
+ m_sQueueSample.m_counter = 1;
m_sQueueSample.m_bIsDistant = 0;
m_sQueueSample.m_nLoopCount = 1;
m_sQueueSample.field_56 = 1;
@@ -7261,10 +7665,8 @@ cAudioManager::ProcessScriptObject(int32 id)
{
cAudioScriptObject *entity = (cAudioScriptObject *)m_asAudioEntities[id].m_pEntity;
if(entity) {
- m_sQueueSample.m_vecPos.x = entity->m_vecPos.x;
- m_sQueueSample.m_vecPos.y = entity->m_vecPos.y;
- m_sQueueSample.m_vecPos.z = entity->m_vecPos.z;
- if(m_asAudioEntities[id].field_24 == 1)
+ m_sQueueSample.m_vecPos = entity->m_vecPos;
+ if(m_asAudioEntities[id].m_Loops == 1)
ProcessOneShotScriptObject(m_asAudioEntities[id].m_awAudioEvent[0]);
else
ProcessLoopingScriptObject(entity->m_wSound);
@@ -7297,7 +7699,7 @@ cAudioManager::ProcessShopScriptObject(uint8 sound)
m_sQueueSample.m_bBankIndex = 0;
m_sQueueSample.m_nFrequency =
SampleManager.GetSampleBaseFrequency(AUDIO_SAMPLE_SHOP_1);
- m_sQueueSample.field_4 = 0;
+ m_sQueueSample.m_counter = 0;
m_sQueueSample.m_bIsDistant = 0;
m_sQueueSample.m_nLoopCount = 0;
m_sQueueSample.field_56 = 0;
@@ -7322,7 +7724,7 @@ cAudioManager::ProcessShopScriptObject(uint8 sound)
m_sQueueSample.m_bBankIndex = 0;
m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(
m_sQueueSample.m_nSampleIndex);
- m_sQueueSample.field_4 = rand + 1;
+ m_sQueueSample.m_counter = rand + 1;
m_sQueueSample.m_bIsDistant = 0;
m_sQueueSample.m_nLoopCount = 1;
m_sQueueSample.field_56 = 1;
@@ -7364,6 +7766,79 @@ cAudioManager::ProcessSpecial()
}
}
+bool
+cAudioManager::ProcessTrainNoise(cVehicleParams *params)
+{
+ CTrain *train;
+ int32 emittingVol;
+ float speedMultipler;
+
+ if(params->m_fDistance >= 90000.f) return 0;
+
+ if(params->m_fVelocityChange <= 0.0f) {
+ CalculateDistance((bool *)params, params->m_fDistance);
+ train = (CTrain *)params->m_pVehicle;
+ speedMultipler = Min(1.0f, train->m_fSpeed * 250.f / 51.f);
+ emittingVol = (75.f * speedMultipler);
+ if(train->m_fWagonPosition == 0.0f) {
+ m_sQueueSample.m_bVolume =
+ ComputeVolume(emittingVol, 300.f, m_sQueueSample.m_fDistance);
+ if(m_sQueueSample.m_bVolume) {
+ m_sQueueSample.m_counter = 32;
+ m_sQueueSample.m_nSampleIndex = AUDIO_SAMPLE_TRAIN_FAR;
+ m_sQueueSample.m_bBankIndex = 0;
+ m_sQueueSample.m_bIsDistant = 0;
+ m_sQueueSample.field_16 = 2;
+ m_sQueueSample.m_nFrequency =
+ SampleManager.GetSampleBaseFrequency(AUDIO_SAMPLE_TRAIN_FAR);
+ m_sQueueSample.m_nLoopCount = 0;
+ m_sQueueSample.m_bEmittingVolume = emittingVol;
+ m_sQueueSample.m_nLoopStart =
+ SampleManager.GetSampleLoopStartOffset(
+ m_sQueueSample.m_nSampleIndex);
+ m_sQueueSample.m_nLoopEnd = SampleManager.GetSampleLoopEndOffset(
+ m_sQueueSample.m_nSampleIndex);
+ m_sQueueSample.field_48 = 3.0f;
+ m_sQueueSample.m_fSoundIntensity = 300.0f;
+ m_sQueueSample.field_56 = 0;
+ m_sQueueSample.field_76 = 3;
+ m_sQueueSample.m_bReverbFlag = 1;
+ m_sQueueSample.m_bRequireReflection = 0;
+ AddSampleToRequestedQueue();
+ }
+ }
+ if(params->m_fDistance < 4900.f) {
+ m_sQueueSample.m_bVolume =
+ ComputeVolume(emittingVol, 70.f, m_sQueueSample.m_fDistance);
+ if(m_sQueueSample.m_bVolume) {
+ m_sQueueSample.m_counter = 33;
+ m_sQueueSample.m_nSampleIndex = AUDIO_SAMPLE_TRAIN_CLOSE;
+ m_sQueueSample.m_bBankIndex = 0;
+ m_sQueueSample.m_bIsDistant = 0;
+ m_sQueueSample.field_16 = 5;
+ m_sQueueSample.m_nFrequency =
+ SampleManager.GetSampleBaseFrequency(AUDIO_SAMPLE_TRAIN_CLOSE) +
+ 100 * m_sQueueSample.m_nEntityIndex % 987;
+ m_sQueueSample.m_nLoopCount = 0;
+ m_sQueueSample.m_bEmittingVolume = emittingVol;
+ m_sQueueSample.m_nLoopStart =
+ SampleManager.GetSampleLoopStartOffset(
+ m_sQueueSample.m_nSampleIndex);
+ m_sQueueSample.m_nLoopEnd = SampleManager.GetSampleLoopEndOffset(
+ m_sQueueSample.m_nSampleIndex);
+ m_sQueueSample.field_48 = 6.0f;
+ m_sQueueSample.m_fSoundIntensity = 70.0f;
+ m_sQueueSample.field_56 = 0;
+ m_sQueueSample.field_76 = 3;
+ m_sQueueSample.m_bReverbFlag = 1;
+ m_sQueueSample.m_bRequireReflection = 0;
+ AddSampleToRequestedQueue();
+ }
+ }
+ }
+ return 1;
+}
+
#if 1
WRAPPER
void
@@ -7371,6 +7846,7 @@ cAudioManager::ProcessVehicle(CVehicle *)
{
EAXJMP(0x569A00);
}
+
#else
void
cAudioManager::ProcessVehicle(CVehicle *)
@@ -7379,6 +7855,159 @@ cAudioManager::ProcessVehicle(CVehicle *)
}
#endif
+bool
+cAudioManager::ProcessVehicleDoors(cVehicleParams *params)
+{
+ CAutomobile *automobile;
+ int8 doorState;
+ int32 emittingVol;
+ float velocity;
+
+ if(params->m_fDistance >= 1600.f) return 0;
+
+ automobile = (CAutomobile *)params->m_pVehicle;
+ CalculateDistance((bool *)params, params->m_fDistance);
+ for(int32 i = 0; i < 6; i++) {
+ if(automobile->Damage.GetDoorStatus(i) == 2) {
+ doorState = automobile->Doors[i].m_nDoorState;
+ if(doorState == 1 || doorState == 2) {
+ velocity = Min(0.3f, Abs(automobile->Doors[i].m_fAngVel));
+ if(velocity > 0.0035f) {
+ emittingVol = (100.f * velocity * 10.f / 3.f);
+ m_sQueueSample.m_bVolume = ComputeVolume(
+ emittingVol, 40.f, m_sQueueSample.m_fDistance);
+ if(m_sQueueSample.m_bVolume) {
+ m_sQueueSample.m_counter = i + 6;
+ m_sQueueSample.m_nSampleIndex =
+ m_anRandomTable[1] % 6u +
+ AUDIO_SAMPLE_CAR_DOOR_MOVEMENT_1;
+ m_sQueueSample.m_nFrequency =
+ SampleManager.GetSampleBaseFrequency(
+ m_sQueueSample.m_nSampleIndex) +
+ RandomDisplacement(1000u);
+ m_sQueueSample.m_bBankIndex = 0;
+ m_sQueueSample.m_bIsDistant = 0;
+ m_sQueueSample.field_16 = 10;
+ m_sQueueSample.m_nLoopCount = 1;
+ m_sQueueSample.m_bEmittingVolume = emittingVol;
+ m_sQueueSample.m_nLoopStart = 0;
+ m_sQueueSample.m_nLoopEnd = -1;
+ m_sQueueSample.field_48 = 1.0f;
+ m_sQueueSample.m_fSoundIntensity = 40.0f;
+ m_sQueueSample.field_56 = 1;
+ m_sQueueSample.m_bReverbFlag = 1;
+ m_sQueueSample.m_bRequireReflection = 1;
+ AddSampleToRequestedQueue();
+ }
+ }
+ }
+ }
+ }
+ return 1;
+}
+
+bool
+cAudioManager::ProcessVehicleReverseWarning(cVehicleParams *params)
+{
+ CVehicle *veh = params->m_pVehicle;
+
+ if(params->m_fDistance >= 2500.f) return 0;
+
+ if(veh->bEngineOn && veh->m_fGasPedal < 0.0f) {
+ CalculateDistance((bool *)params, params->m_fDistance);
+ m_sQueueSample.m_bVolume = ComputeVolume(60u, 50.f, m_sQueueSample.m_fDistance);
+ if(m_sQueueSample.m_bVolume) {
+ m_sQueueSample.m_counter = 12;
+ m_sQueueSample.m_nSampleIndex = AUDIO_SAMPLE_VEHICLE_REVERSE_WARNING;
+ m_sQueueSample.m_bBankIndex = 0;
+ m_sQueueSample.m_bIsDistant = 0;
+ m_sQueueSample.field_16 = 2;
+ m_sQueueSample.m_nFrequency =
+ (100 * m_sQueueSample.m_nEntityIndex & 0x3FF) +
+ SampleManager.GetSampleBaseFrequency(
+ AUDIO_SAMPLE_VEHICLE_REVERSE_WARNING);
+ m_sQueueSample.m_nLoopCount = 0;
+ m_sQueueSample.m_bEmittingVolume = 60;
+ m_sQueueSample.m_nLoopStart =
+ SampleManager.GetSampleLoopStartOffset(m_sQueueSample.m_nSampleIndex);
+ m_sQueueSample.m_nLoopEnd =
+ SampleManager.GetSampleLoopEndOffset(m_sQueueSample.m_nSampleIndex);
+ m_sQueueSample.field_48 = 3.0f;
+ m_sQueueSample.m_fSoundIntensity = 50.0f;
+ m_sQueueSample.field_56 = 0;
+ m_sQueueSample.field_76 = 3;
+ m_sQueueSample.m_bReverbFlag = 1;
+ m_sQueueSample.m_bRequireReflection = 0;
+ AddSampleToRequestedQueue();
+ }
+ }
+ return 1;
+}
+
+bool
+cAudioManager::ProcessVehicleRoadNoise(cVehicleParams *params)
+{
+ int32 emittingVol;
+ uint32 freq;
+ float modificator;
+ int sampleFreq;
+ float velocity;
+
+ if(params->m_fDistance >= 9025.f) return 0;
+ if(params->m_pTransmission) {
+ if(params->m_pVehicle->m_vecMoveSpeed.z) {
+ velocity = Abs(params->m_fVelocityChange);
+ if(velocity > 0.0f) {
+ CalculateDistance((bool *)params, params->m_fDistance);
+ emittingVol =
+ 30.f *
+ Min(1.f,
+ velocity / (0.5f * params->m_pTransmission->fMaxVelocity));
+ m_sQueueSample.m_bVolume =
+ ComputeVolume(emittingVol, 95.f, m_sQueueSample.m_fDistance);
+ if(m_sQueueSample.m_bVolume) {
+ m_sQueueSample.m_counter = 0;
+ m_sQueueSample.m_bBankIndex = 0;
+ m_sQueueSample.m_bIsDistant = 0;
+ m_sQueueSample.field_16 = 3;
+ if(params->m_pVehicle->m_nSurfaceTouched ==
+ SURFACE_PUDDLE) {
+ m_sQueueSample.m_nSampleIndex =
+ AUDIO_SAMPLE_LOOPING_WATER;
+ freq = 6050 * emittingVol / 30 + 16000;
+ } else {
+ m_sQueueSample.m_nSampleIndex =
+ AUDIO_SAMPLE_VEHICLE_ROAD_NOISE;
+ modificator =
+ m_sQueueSample.m_fDistance * 1.f / 95.f * 0.5f;
+ sampleFreq = SampleManager.GetSampleBaseFrequency(
+ AUDIO_SAMPLE_VEHICLE_ROAD_NOISE);
+ freq = (sampleFreq * modificator) +
+ ((3 * sampleFreq) >> 2);
+ }
+ m_sQueueSample.m_nFrequency = freq;
+ m_sQueueSample.m_nLoopCount = 0;
+ m_sQueueSample.m_bEmittingVolume = emittingVol;
+ m_sQueueSample.m_nLoopStart =
+ SampleManager.GetSampleLoopStartOffset(
+ m_sQueueSample.m_nSampleIndex);
+ m_sQueueSample.m_nLoopEnd =
+ SampleManager.GetSampleLoopEndOffset(
+ m_sQueueSample.m_nSampleIndex);
+ m_sQueueSample.field_48 = 6.0f;
+ m_sQueueSample.m_fSoundIntensity = 95.0f;
+ m_sQueueSample.field_56 = 0;
+ m_sQueueSample.field_76 = 4;
+ m_sQueueSample.m_bReverbFlag = 1;
+ m_sQueueSample.m_bRequireReflection = 0;
+ AddSampleToRequestedQueue();
+ }
+ }
+ }
+ }
+ return 1;
+}
+
WRAPPER
void cAudioManager::ProcessWaterCannon(int32) { EAXJMP(0x575F30); }
@@ -7389,6 +8018,60 @@ cAudioManager::ProcessWeather(int32 id)
EAXJMP(0x578370);
}
+bool
+cAudioManager::ProcessWetRoadNoise(cVehicleParams *params)
+{
+ float relativeVelocity;
+ int32 emittingVol;
+ float modificator;
+ int freq;
+ float velChange;
+
+ if(params->m_fDistance >= 900.f) return 0;
+ if(params->m_pTransmission) {
+ if(params->m_pVehicle->m_vecMoveSpeed.z) {
+ velChange = Abs(params->m_fVelocityChange);
+ if(velChange > 0.f) {
+ CalculateDistance((bool *)params, params->m_fDistance);
+ relativeVelocity =
+ Min(1.0f,
+ velChange / (0.5f * params->m_pTransmission->fMaxVelocity));
+ emittingVol = 23.0f * relativeVelocity * CWeather::WetRoads;
+ m_sQueueSample.m_bVolume =
+ ComputeVolume(emittingVol, 30.f, m_sQueueSample.m_fDistance);
+ if(m_sQueueSample.m_bVolume) {
+ m_sQueueSample.m_counter = 1;
+ m_sQueueSample.m_nSampleIndex =
+ AUDIO_SAMPLE_VEHICLE_ROAD_NOISE;
+ m_sQueueSample.m_bBankIndex = 0;
+ m_sQueueSample.m_bIsDistant = 0;
+ m_sQueueSample.field_16 = 3;
+ modificator = m_sQueueSample.m_fDistance * 1.f / 3.f * 0.5f;
+ freq = SampleManager.GetSampleBaseFrequency(
+ AUDIO_SAMPLE_VEHICLE_ROAD_NOISE);
+ m_sQueueSample.m_nFrequency = freq + freq * modificator;
+ m_sQueueSample.m_nLoopCount = 0;
+ m_sQueueSample.m_bEmittingVolume = emittingVol;
+ m_sQueueSample.m_nLoopStart =
+ SampleManager.GetSampleLoopStartOffset(
+ m_sQueueSample.m_nSampleIndex);
+ m_sQueueSample.m_nLoopEnd =
+ SampleManager.GetSampleLoopEndOffset(
+ m_sQueueSample.m_nSampleIndex);
+ m_sQueueSample.field_48 = 6.0f;
+ m_sQueueSample.m_fSoundIntensity = 30.0f;
+ m_sQueueSample.field_56 = 0;
+ m_sQueueSample.field_76 = 4;
+ m_sQueueSample.m_bReverbFlag = 1;
+ m_sQueueSample.m_bRequireReflection = 0;
+ AddSampleToRequestedQueue();
+ }
+ }
+ }
+ }
+ return 1;
+}
+
void
cAudioManager::ProcessWorkShopScriptObject(uint8 sound)
{
@@ -7413,7 +8096,7 @@ cAudioManager::ProcessWorkShopScriptObject(uint8 sound)
m_sQueueSample.m_bBankIndex = 0;
m_sQueueSample.m_nFrequency =
SampleManager.GetSampleBaseFrequency(AUDIO_SAMPLE_WORK_SHOP);
- m_sQueueSample.field_4 = 0;
+ m_sQueueSample.m_counter = 0;
m_sQueueSample.m_bIsDistant = 0;
m_sQueueSample.m_nLoopCount = 0;
m_sQueueSample.field_56 = 0;
@@ -7481,10 +8164,8 @@ cAudioManager::SetupPedComments(cPedParams *params, uint32 sound)
emittingVol, soundIntensity, m_sQueueSample.m_fDistance);
pedComment.field_25 = 10;
if(m_sQueueSample.m_bVolume) {
- pedComment.field_4 = m_sQueueSample.m_nEntityIndex;
- pedComment.m_vecPos.x = m_sQueueSample.m_vecPos.x;
- pedComment.m_vecPos.y = m_sQueueSample.m_vecPos.y;
- pedComment.m_vecPos.z = m_sQueueSample.m_vecPos.z;
+ pedComment.m_entityIndex = m_sQueueSample.m_nEntityIndex;
+ pedComment.m_vecPos = m_sQueueSample.m_vecPos;
pedComment.m_fDistance = m_sQueueSample.m_fDistance;
pedComment.m_bVolume = m_sQueueSample.m_bVolume;
m_sPedComments.Add(&pedComment);
@@ -7548,10 +8229,8 @@ cAudioManager::SetupPedComments(cPedParams *params, uint32 sound)
emittingVol, soundIntensity, m_sQueueSample.m_fDistance);
pedComment.field_25 = 10;
if(m_sQueueSample.m_bVolume) {
- pedComment.field_4 = m_sQueueSample.m_nEntityIndex;
- pedComment.m_vecPos.x = m_sQueueSample.m_vecPos.x;
- pedComment.m_vecPos.y = m_sQueueSample.m_vecPos.y;
- pedComment.m_vecPos.z = m_sQueueSample.m_vecPos.z;
+ pedComment.m_entityIndex = m_sQueueSample.m_nEntityIndex;
+ pedComment.m_vecPos = m_sQueueSample.m_vecPos;
pedComment.m_fDistance = m_sQueueSample.m_fDistance;
pedComment.m_bVolume = m_sQueueSample.m_bVolume;
m_sPedComments.Add(&pedComment);
@@ -7614,6 +8293,7 @@ WRAPPER void cAudioManager::PreloadMissionAudio(char *)
STARTPATCHES
InjectHook(0x5755C0, &cPedComments::Add, PATCH_JUMP);
+InjectHook(0x575730, &cPedComments::Process, PATCH_JUMP);
InjectHook(0x57B210, &cAudioManager::AddDetailsToRequestedOrderList, PATCH_JUMP);
InjectHook(0x56AD30, &cAudioManager::AddPlayerCarSample, PATCH_JUMP);
@@ -7642,7 +8322,7 @@ InjectHook(0x57AC60, &cAudioManager::TranslateEntity, PATCH_JUMP);
InjectHook(0x57A0E0, &cAudioManager::Initialise, PATCH_JUMP);
InjectHook(0x569420, &cAudioManager::PostInitialiseGameSpecificSetup, PATCH_JUMP);
// InjectHook(0x57EAC0, &cAudioManager::InitialisePoliceRadioZones, PATCH_JUMP);
-// InjectHook(0x569650, &cAudioManager::ResetAudioLogicTimers, PATCH_JUMP);
+InjectHook(0x569650, &cAudioManager::ResetAudioLogicTimers, PATCH_JUMP);
InjectHook(0x57A150, &cAudioManager::Terminate, PATCH_JUMP);
InjectHook(0x57F050, &cAudioManager::GetMissionScriptPoliceAudioPlayingStatus, PATCH_JUMP);
@@ -7814,20 +8494,27 @@ InjectHook(0x56EC00, &cAudioManager::ProcessJumboTakeOff, PATCH_JUMP);
InjectHook(0x56EA10, &cAudioManager::ProcessJumboTaxi, PATCH_JUMP);
InjectHook(0x5777E0, &cAudioManager::ProcessLaunderetteScriptObject, PATCH_JUMP);
InjectHook(0x576770, &cAudioManager::ProcessLoopingScriptObject, PATCH_JUMP);
+InjectHook(0x5796E0, &cAudioManager::ProcessMissionAudio, PATCH_JUMP);
InjectHook(0x56A050, &cAudioManager::ProcessModelCarEngine, PATCH_JUMP);
InjectHook(0x5760C0, &cAudioManager::ProcessOneShotScriptObject, PATCH_JUMP);
InjectHook(0x56F450, &cAudioManager::ProcessPed, PATCH_JUMP);
InjectHook(0x56F4D0, &cAudioManager::ProcessPedHeadphones, PATCH_JUMP);
-InjectHook(0x56F650, &cAudioManager::ProcessPedOneShots, PATCH_JUMP);
+// InjectHook(0x56F650, &cAudioManager::ProcessPedOneShots, PATCH_JUMP);
InjectHook(0x5699C0, &cAudioManager::ProcessPhysical, PATCH_JUMP);
InjectHook(0x56E860, &cAudioManager::ProcessPlane, PATCH_JUMP);
InjectHook(0x56B0D0, &cAudioManager::ProcessPlayersVehicleEngine, PATCH_JUMP);
InjectHook(0x577280, &cAudioManager::ProcessPornCinema, PATCH_JUMP);
InjectHook(0x569CC0, &cAudioManager::ProcessRainOnVehicle, PATCH_JUMP);
+InjectHook(0x569700, &cAudioManager::ProcessReverb, PATCH_JUMP);
+InjectHook(0x569E50, &cAudioManager::ProcessReverseGear, PATCH_JUMP);
InjectHook(0x577630, &cAudioManager::ProcessSawMillScriptObject, PATCH_JUMP);
InjectHook(0x576070, &cAudioManager::ProcessScriptObject, PATCH_JUMP);
InjectHook(0x577970, &cAudioManager::ProcessShopScriptObject, PATCH_JUMP);
InjectHook(0x5697D0, &cAudioManager::ProcessSpecial, PATCH_JUMP);
+InjectHook(0x56DBF0, &cAudioManager::ProcessTrainNoise, PATCH_JUMP);
+InjectHook(0x56C770, &cAudioManager::ProcessVehicleDoors, PATCH_JUMP);
+InjectHook(0x56C640, &cAudioManager::ProcessVehicleReverseWarning, PATCH_JUMP);
+InjectHook(0x56A230, &cAudioManager::ProcessVehicleRoadNoise, PATCH_JUMP);
InjectHook(0x577530, &cAudioManager::ProcessWorkShopScriptObject, PATCH_JUMP);
InjectHook(0x570690, &cAudioManager::SetupPedComments, PATCH_JUMP);
ENDPATCHES
diff --git a/src/audio/AudioManager.h b/src/audio/AudioManager.h
index 12e823b7..5ad14050 100644
--- a/src/audio/AudioManager.h
+++ b/src/audio/AudioManager.h
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
#include "AudioSamples.h"
#include "DMAudio.h"
@@ -8,7 +8,7 @@ class tActiveSample
{
public:
int32 m_nEntityIndex;
- int32 field_4;
+ int32 m_counter;
int32 m_nSampleIndex;
uint8 m_bBankIndex;
uint8 m_bIsDistant;
@@ -49,6 +49,8 @@ public:
uint8 field_89;
uint8 field_90;
uint8 field_91;
+
+ // no methods
};
static_assert(sizeof(tActiveSample) == 92, "tActiveSample: error");
@@ -84,8 +86,10 @@ public:
int16 m_awAudioEvent[4];
uint8 gap_18[2];
float m_afVolume[4];
- uint8 field_24; // is looping
+ uint8 m_Loops;
uint8 field_25[3];
+
+ // no methods
};
static_assert(sizeof(tAudioEntity) == 40, "tAudioEntity: error");
@@ -93,13 +97,15 @@ static_assert(sizeof(tAudioEntity) == 40, "tAudioEntity: error");
class tPedComment
{
public:
- int m_nSampleIndex;
- int field_4;
+ int32 m_nSampleIndex;
+ int32 m_entityIndex;
CVector m_vecPos;
float m_fDistance;
uint8 m_bVolume;
- uint8 field_25;
+ int8 field_25; // allocated time?
uint8 gap_26[2];
+
+ // no methods
};
static_assert(sizeof(tPedComment) == 28, "tPedComment: error");
@@ -108,12 +114,14 @@ class cPedComments
{
public:
tPedComment m_asPedComments[2][20];
- uint8 field_1120[2][20];
+ uint8 indexMap[2][20];
uint8 nrOfCommentsInBank[2];
uint8 activeBank;
uint8 gap_1163[1];
+ // reversed all methods
void Add(tPedComment *com); /// ok
+ void Process(); /// ok
};
static_assert(sizeof(cPedComments) == 1164, "cPedComments: error");
@@ -134,6 +142,8 @@ public:
CVector m_vecPosition;
float m_fDistance;
int32 m_nBaseVolume;
+
+ // no methods
};
static_assert(sizeof(cAudioCollision) == 40, "cAudioCollision: error");
@@ -176,6 +186,7 @@ class CPlane;
class CVehicle;
class CPed;
class cPedParams;
+class cTransmission;
class cAudioScriptObject {
public:
@@ -271,9 +282,10 @@ public:
uint8 field_19192;
uint8 m_bUserPause;
uint8 m_bPreviousUserPause;
- uint8 field_19195;
+ uint8 field_19195; // time?
uint32 m_FrameCounter;
+<<<<<<< HEAD
inline uint32 GetFrameCounter(void) { return m_FrameCounter; }
float GetReflectionsDistance(int32 idx) { return m_afReflectionsDistances[idx]; }
<<<<<<< HEAD
@@ -283,25 +295,36 @@ public:
>>>>>>> Cleanup
//
+=======
+ // getters
+ uint32 GetFrameCounter() const { return m_FrameCounter; }
+ float GetReflectionsDistance(int32 idx) const { return m_afReflectionsDistances[idx]; }
+ int32 GetRandomTabe(int32 idx) const { return m_anRandomTable[idx]; }
+>>>>>>> More more more audio
+ // "Should" be in alphabetic order, except "getXTalkSfx"
void AddDetailsToRequestedOrderList(uint8 sample); /// ok
void AddPlayerCarSample(uint8 emittingVolume, int32 freq, uint32 sample, uint8 unk1,
- uint8 unk2, bool notLooping); /// ok
- void AddReflectionsToRequestedQueue(); /// ok (check value)
- void AddReleasingSounds(); // todo (difficult)
- void AddSampleToRequestedQueue(); /// ok
- void AgeCrimes(); // todo
- int8 GetCurrent3DProviderIndex(); /// ok
+ uint8 counter, bool notLooping); /// ok
+ void AddReflectionsToRequestedQueue(); /// ok (check value)
+ void AddReleasingSounds(); // todo (difficult)
+ void AddSampleToRequestedQueue(); /// ok
+ void AgeCrimes(); // todo
void CalculateDistance(bool *ptr, float dist); /// ok
- bool CheckForAnAudioFileOnCD(); /// ok
+ bool CheckForAnAudioFileOnCD() const; /// ok
void ClearMissionAudio(); /// ok
void ClearRequestedQueue(); /// ok
int32 ComputeDopplerEffectedFrequency(uint32 oldFreq, float position1, float position2,
- float speedMultiplier); /// ok
+ float speedMultiplier) const; /// ok
int32 ComputePan(float, CVector *); // todo
+<<<<<<< HEAD
uint32 ComputeVolume(int emittingVolume, float soundIntensity, float distance); /// ok
int32 CreateEntity(int32 type, void *entity); /// ok
+=======
+ uint32 ComputeVolume(int emittingVolume, float soundIntensity, float distance) const; /// ok
+ int32 CreateEntity(int32 type, CPhysical *entity); /// ok
+>>>>>>> More more more audio
void DestroyAllGameCreatedEntities(); /// ok
void DestroyEntity(int32 id); /// ok
@@ -309,89 +332,60 @@ public:
void GenerateIntegerRandomNumberTable(); /// ok
- float GetDistanceSquared(CVector *v); /// ok
-
- void TranslateEntity(CVector *v1, CVector *v2); /// ok
+ void TranslateEntity(CVector *v1, CVector *v2) const ; /// ok
- // done
-
- void Initialise();
- void PostInitialiseGameSpecificSetup();
- void InitialisePoliceRadioZones(); // todo
- void ResetAudioLogicTimers(int32 timer); // todo
+ void ResetAudioLogicTimers(int32 timer); /// ok
void Terminate();
+ uint8 GetNum3DProvidersAvailable() const;
+ bool IsMP3RadioChannelAvailable() const;
+ uint8 GetCDAudioDriveLetter() const;
- char GetMissionScriptPoliceAudioPlayingStatus();
- bool GetMissionAudioLoadingStatus();
-
- uint8 GetNum3DProvidersAvailable();
- bool IsMP3RadioChannelAvailable();
- uint8 GetCDAudioDriveLetter();
+ void SetEffectsMasterVolume(uint8 volume) const;
+ void SetMusicMasterVolume(uint8 volume) const;
+ void SetEffectsFadeVolume(uint8 volume) const;
+ void SetMusicFadeVolume(uint8 volume) const;
- void SetEffectsMasterVolume(uint8 volume);
- void SetMusicMasterVolume(uint8 volume);
- void SetEffectsFadeVolume(uint8 volume);
- void SetMusicFadeVolume(uint8 volume);
-
- void SetSpeakerConfig(int32 conf);
+ void SetSpeakerConfig(int32 conf) const;
bool SetupJumboEngineSound(uint8, int32); // todo
- void PreInitialiseGameSpecificSetup();
- void SetMissionScriptPoliceAudio(int32 sfx);
-
- bool UsesSiren(int32 model);
- bool UsesSirenSwitching(int32 model);
+ void PreInitialiseGameSpecificSetup() const;
+ void SetMissionScriptPoliceAudio(int32 sfx) const;
- bool MissionScriptAudioUsesPoliceChannel(int32 soundMission);
+ bool UsesSiren(int32 model) const;
+ bool UsesSirenSwitching(int32 model) const;
- char *Get3DProviderName(uint8 id);
+ char *Get3DProviderName(uint8 id) const;
bool SetupJumboFlySound(uint8 emittingVol); /// ok
bool SetupJumboRumbleSound(uint8 emittingVol); /// ok
bool SetupJumboTaxiSound(uint8 vol); /// ok
bool SetupJumboWhineSound(uint8 emittingVol, int32 freq); /// ok
- void PlayLoadedMissionAudio();
-
void SetMissionAudioLocation(float x, float y, float z);
void ResetPoliceRadio();
- void InterrogateAudioEntities();
-
- bool UsesReverseWarning(int32 model);
- bool HasAirBrakes(int32 model);
-
- int32 GetJumboTaxiFreq();
+ bool UsesReverseWarning(int32 model) const;
- bool IsMissionAudioSampleFinished();
+ int32 RandomDisplacement(uint32 seed) const;
- void InitialisePoliceRadio(); // todo
-
- int32 RandomDisplacement(uint32 seed);
-
- void ReleaseDigitalHandle();
- void ReacquireDigitalHandle();
+ void ReleaseDigitalHandle() const;
+ void ReacquireDigitalHandle() const;
void SetDynamicAcousticModelingStatus(bool status);
bool IsAudioInitialised() const;
void SetEntityStatus(int32 id, bool status);
- void PreTerminateGameSpecificShutdown();
- void PostTerminateGameSpecificShutdown();
-
- void PlayerJustGotInCar();
- void PlayerJustLeftCar();
-
void Service();
- void GetPhrase(uint32 *phrase, uint32 *prevPhrase, uint32 sample, uint32 maxOffset);
+ void GetPhrase(uint32 *phrase, uint32 *prevPhrase, uint32 sample, uint32 maxOffset) const;
- void DoJumboVolOffset();
+ void DoJumboVolOffset() const;
int32 GetPedCommentSfx(CPed *ped, int32 sound);
+ // order from GetPedCommentSfx
uint32 GetPlayerTalkSfx(int16 sound);
uint32 GetCopTalkSfx(int16 sound);
uint32 GetSwatTalkSfx(int16 sound);
@@ -469,8 +463,38 @@ public:
uint32 GetGenericMaleTalkSfx(int16 sound);
uint32 GetGenericFemaleTalkSfx(int16 sound);
+ int8 GetCurrent3DProviderIndex() const; /// ok
+ float GetCollisionLoopingRatio(uint32 a, uint32 b, float c) const; // todo hook
+ float GetCollisionOneShotRatio(uint32 a, float b) const; // todo hook
+ float GetCollisionRatio(float a, float b, float c, float d) const; // todo hook
+ float GetDistanceSquared(CVector *v) const; /// ok
+ int32 GetJumboTaxiFreq() const; /// ok
+ bool GetMissionAudioLoadingStatus() const; /// ok
+ char GetMissionScriptPoliceAudioPlayingStatus() const; /// ok
+ float GetVehicleDriveWheelSkidValue(uint8 a1, CAutomobile *a2, cTransmission *a3,
+ float a4); // todo
+ int32 GetVehicleNonDriveWheelSkidValue(float a1, int a2, int a3, int a4, float a5); // todo
+
+ bool HasAirBrakes(int32 model) const; /// ok
+
+ void Initialise(); /// ok
+ void InitialisePoliceRadio(); // todo
+ void InitialisePoliceRadioZones(); // todo
+ void InterrogateAudioEntities(); /// ok
+ bool IsMissionAudioSampleFinished(); /// ok
+
+ bool MissionScriptAudioUsesPoliceChannel(int32 soundMission) const; /// ok
+
+ void PlayLoadedMissionAudio(); /// ok
void PlayOneShot(int32 index, int16 sound, float vol); // todo
-
+ uint32 PlaySuspectLastSeen(float x, float y, float z); // todo
+ void PlayerJustGotInCar() const; /// ok
+ void PlayerJustLeftCar() const; /// ok
+ void PostInitialiseGameSpecificSetup(); /// ok
+ void PostTerminateGameSpecificShutdown(); /// ok
+ void PreTerminateGameSpecificShutdown(); /// ok
+ void PreloadMissionAudio(char *); // todo
+ /// processX - main logic of adding new sounds
void ProcessActiveQueues(); // todo
bool ProcessAirBrakes(cVehicleParams *params); /// ok
void ProcessAirportScriptObject(uint8 sound); /// ok
@@ -503,40 +527,40 @@ public:
void ProcessJumboTaxi(); /// ok
void ProcessLaunderetteScriptObject(uint8 sound); /// ok
void ProcessLoopingScriptObject(uint8 sound); /// ok
- // void ProcessMissionAudio();
- void ProcessModelCarEngine(cVehicleParams *params); /// (check float comparisons)
- void ProcessOneShotScriptObject(uint8 sound); /// ok
- void ProcessPed(CPhysical *ped); /// ok
- void ProcessPedHeadphones(cPedParams *params); /// ok
- void ProcessPedOneShots(cPedParams *params); /// ok
- void ProcessPhysical(int32 id); /// ok
- void ProcessPlane(cVehicleParams *params); /// ok
+ void ProcessMissionAudio(); /// ok
+ void ProcessModelCarEngine(cVehicleParams *params); /// ok (check float comparisons)
+ void ProcessOneShotScriptObject(uint8 sound); /// ok
+ void ProcessPed(CPhysical *ped); /// ok
+ void ProcessPedHeadphones(cPedParams *params); /// ok
+ void ProcessPedOneShots(cPedParams *params); // todo later (weird)
+ void ProcessPhysical(int32 id); /// ok
+ void ProcessPlane(cVehicleParams *params); /// ok
void ProcessPlayersVehicleEngine(cVehicleParams *params,
CAutomobile *automobile); /// ok (check float comparisons)
void ProcessPoliceCellBeatingScriptObject(uint8 sound); // todo
void ProcessPornCinema(uint8 sound); /// ok
void ProcessProjectiles(); // todo requires CProjectileInfo
void ProcessRainOnVehicle(cVehicleParams *params); /// ok
- // void ProcessReverb();
- // bool ProcessReverseGear(void *);
- void ProcessSawMillScriptObject(uint8 sound); /// ok
- void ProcessScriptObject(int32 id); /// ok
- void ProcessShopScriptObject(uint8 sound); /// ok
- void ProcessSpecial(); /// ok
- // bool ProcessTrainNoise(void *);
- void ProcessVehicle(CVehicle *); // todo
- // bool ProcessVehicleDoors(void *);
+ void ProcessReverb() const; /// ok
+ bool ProcessReverseGear(cVehicleParams *a2); /// ok
+ void ProcessSawMillScriptObject(uint8 sound); /// ok
+ void ProcessScriptObject(int32 id); /// ok
+ void ProcessShopScriptObject(uint8 sound); /// ok
+ void ProcessSpecial(); /// ok
+ bool ProcessTrainNoise(cVehicleParams *params); /// ok
+ void ProcessVehicle(CVehicle *); // todo
+ bool ProcessVehicleDoors(cVehicleParams *params); /// ok
// bool ProcessVehicleEngine(void *);
- // void ProcessVehicleHorn(void *);
+ // void ProcessVehicleHorn(cVehicleParams *params);
// void ProcessVehicleOneShots(void *);
- // bool ProcessVehicleReverseWarning(void *);
- // bool ProcessVehicleRoadNoise(void *);
+ bool ProcessVehicleReverseWarning(cVehicleParams *params); /// ok
+ bool ProcessVehicleRoadNoise(cVehicleParams *params); /// ok
// void ProcessVehicleSirenOrAlarm(void *);
// void ProcessVehicleSkidding(void *);
- void ProcessWaterCannon(int32); // todo
- void ProcessWeather(int32 id); // todo
- // bool ProcessWetRoadNoise(void *);
- void ProcessWorkShopScriptObject(uint8 sound); /// ok
+ void ProcessWaterCannon(int32); // todo
+ void ProcessWeather(int32 id); // todo
+ bool ProcessWetRoadNoise(cVehicleParams *params); // todo hook
+ void ProcessWorkShopScriptObject(uint8 sound); /// ok
void SetupPedComments(cPedParams *params, uint32 sound); /// ok
};
diff --git a/src/audio/sampman.cpp b/src/audio/sampman.cpp
index de222493..58da6f64 100644
--- a/src/audio/sampman.cpp
+++ b/src/audio/sampman.cpp
@@ -158,14 +158,14 @@ release_existing()
if ( opened_samples[i] )
{
AIL_release_3D_sample_handle(opened_samples[i]);
- opened_samples[i] = NULL;
+ opened_samples[i] = 0;
}
}
if ( opened_provider )
{
AIL_close_3D_provider(opened_provider);
- opened_provider = NULL;
+ opened_provider = 0;
}
_fPrevEaxRatioDestination = 0.0f;
@@ -879,7 +879,7 @@ cSampleManager::Initialise(void)
_maxSamples = 0;
- opened_provider = NULL;
+ opened_provider = 0;
DIG = NULL;
for ( int32 i = 0; i < MAXCHANNELS; i++ )
@@ -2020,10 +2020,9 @@ cSampleManager::StartStreamedFile(uint8 nFile, uint32 nPos, uint8 nStream)
{
uint32 i = 0;
- if ( !_bIsMp3Active ) goto FIND_MP3TRACK;
-
do
{
+ if(_bIsMp3Active){
if ( ++_CurMP3Index >= nNumMP3s )
_CurMP3Index = 0;
@@ -2059,21 +2058,15 @@ cSampleManager::StartStreamedFile(uint8 nFile, uint32 nPos, uint8 nStream)
AIL_pause_stream(mp3Stream[nStream], 0);
return true;
}
-
- goto NEXT_MP3TRACK;
-
-FIND_MP3TRACK:
- if ( nPos > nStreamLength[STREAMED_SOUND_RADIO_MP3_PLAYER] )
- position = 0;
-
- tMP3Entry *e;
- if ( !_GetMP3PosFromStreamPos(&position, &e) )
- {
- if ( e == NULL )
- {
- nFile = 0;
- goto PLAY_STREAMEDTRACK;
- }
+ }
+ if(nPos > nStreamLength[STREAMED_SOUND_RADIO_MP3_PLAYER]) position = 0;
+
+ tMP3Entry *e;
+ if(!_GetMP3PosFromStreamPos(&position, &e)) {
+ if(e == NULL) {
+ nFile = 0;
+ goto PLAY_STREAMEDTRACK;
+ }
}
if ( e->pLinkPath != NULL )
@@ -2097,14 +2090,12 @@ FIND_MP3TRACK:
return true;
}
-NEXT_MP3TRACK:
_bIsMp3Active = false;
} while ( ++i < nNumMP3s );
position = 0;
nFile = 0;
- goto PLAY_STREAMEDTRACK;
}
PLAY_STREAMEDTRACK:
diff --git a/src/control/CarCtrl.cpp b/src/control/CarCtrl.cpp
index bcf94479..677436a6 100644
--- a/src/control/CarCtrl.cpp
+++ b/src/control/CarCtrl.cpp
@@ -340,7 +340,7 @@ CCarCtrl::GenerateOneRandomCar()
if (distanceBetweenNodes / 2 < carLength)
positionBetweenNodes = 0.5f;
else
- positionBetweenNodes = min(1.0f - carLength / distanceBetweenNodes, max(carLength / distanceBetweenNodes, positionBetweenNodes));
+ positionBetweenNodes = Min(1.0f - carLength / distanceBetweenNodes, Max(carLength / distanceBetweenNodes, positionBetweenNodes));
pCar->AutoPilot.m_nNextDirection = (curNodeId >= nextNodeId) ? 1 : -1;
if (pCurNode->numLinks == 1){
/* Do not create vehicle if there is nowhere to go. */
@@ -793,10 +793,10 @@ CCarCtrl::FindMaximumSpeedForThisCarInTraffic(CVehicle* pVehicle)
float right = pVehicle->GetPosition().x + DISTANCE_TO_SCAN_FOR_DANGER;
float top = pVehicle->GetPosition().y - DISTANCE_TO_SCAN_FOR_DANGER;
float bottom = pVehicle->GetPosition().y + DISTANCE_TO_SCAN_FOR_DANGER;
- int xstart = max(0, CWorld::GetSectorIndexX(left));
- int xend = min(NUMSECTORS_X - 1, CWorld::GetSectorIndexX(right));
- int ystart = max(0, CWorld::GetSectorIndexY(top));
- int yend = min(NUMSECTORS_Y - 1, CWorld::GetSectorIndexY(bottom));
+ int xstart = Max(0, CWorld::GetSectorIndexX(left));
+ int xend = Min(NUMSECTORS_X - 1, CWorld::GetSectorIndexX(right));
+ int ystart = Max(0, CWorld::GetSectorIndexY(top));
+ int yend = Min(NUMSECTORS_Y - 1, CWorld::GetSectorIndexY(bottom));
assert(xstart <= xend);
assert(ystart <= yend);
@@ -827,10 +827,10 @@ CCarCtrl::ScanForPedDanger(CVehicle* pVehicle)
float right = pVehicle->GetPosition().x + DISTANCE_TO_SCAN_FOR_DANGER;
float top = pVehicle->GetPosition().y - DISTANCE_TO_SCAN_FOR_DANGER;
float bottom = pVehicle->GetPosition().y + DISTANCE_TO_SCAN_FOR_DANGER;
- int xstart = max(0, CWorld::GetSectorIndexX(left));
- int xend = min(NUMSECTORS_X - 1, CWorld::GetSectorIndexX(right));
- int ystart = max(0, CWorld::GetSectorIndexY(top));
- int yend = min(NUMSECTORS_Y - 1, CWorld::GetSectorIndexY(bottom));
+ int xstart = Max(0, CWorld::GetSectorIndexX(left));
+ int xend = Min(NUMSECTORS_X - 1, CWorld::GetSectorIndexX(right));
+ int ystart = Max(0, CWorld::GetSectorIndexY(top));
+ int yend = Min(NUMSECTORS_Y - 1, CWorld::GetSectorIndexY(bottom));
assert(xstart <= xend);
assert(ystart <= yend);
@@ -862,12 +862,12 @@ CCarCtrl::SlowCarOnRailsDownForTrafficAndLights(CVehicle* pVehicle)
float curSpeed = pVehicle->AutoPilot.m_fMaxTrafficSpeed;
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{
if (curSpeed == 0.0f)
return;
if (curSpeed >= 0.1f)
- pVehicle->AutoPilot.ModifySpeed(max(maxSpeed, curSpeed - 0.5f * CTimer::GetTimeStep()));
+ pVehicle->AutoPilot.ModifySpeed(Max(maxSpeed, curSpeed - 0.5f * CTimer::GetTimeStep()));
else if (curSpeed != 0.0f) /* no need to check */
pVehicle->AutoPilot.ModifySpeed(0.0f);
}
diff --git a/src/control/CarGen.cpp b/src/control/CarGen.cpp
index 65a23c8c..f2b35547 100644
--- a/src/control/CarGen.cpp
+++ b/src/control/CarGen.cpp
@@ -157,7 +157,7 @@ void CCarGenerator::Setup(float x, float y, float z, float angle, int32 mi, int1
m_bIsBlocking = false;
m_vecInf = CModelInfo::GetModelInfo(m_nModelIndex)->GetColModel()->boundingBox.min;
m_vecSup = CModelInfo::GetModelInfo(m_nModelIndex)->GetColModel()->boundingBox.max;
- m_fSize = max(m_vecInf.Magnitude(), m_vecSup.Magnitude());
+ m_fSize = Max(m_vecInf.Magnitude(), m_vecSup.Magnitude());
}
bool CCarGenerator::CheckForBlockage()
diff --git a/src/control/Garages.cpp b/src/control/Garages.cpp
index 3c5c142c..0e9592dc 100644
--- a/src/control/Garages.cpp
+++ b/src/control/Garages.cpp
@@ -68,7 +68,7 @@ bool CGarages::HasCarBeenCrushed(int32 handle)
return CrushedCarId == handle;
}
-WRAPPER void CGarages::TriggerMessage(char *text, int16, uint16 time, int16) { EAXJMP(0x426B20); }
+WRAPPER void CGarages::TriggerMessage(const char *text, int16, uint16 time, int16) { EAXJMP(0x426B20); }
WRAPPER bool CGarages::IsPointWithinHideOutGarage(CVector*) { EAXJMP(0x428260); }
#if 0
@@ -97,7 +97,7 @@ void CGarages::PrintMessages()
CMessages::InsertNumberInString(TheText.Get(MessageIDString), MessageNumberInString, -1, -1, -1, -1, -1, gUString);
CFont::SetColor(CRGBA(0, 0, 0, 255));
- CFont::PrintString((SCREEN_WIDTH / 2) + SCREEN_SCALE_X(2.0f), (SCREEN_HEIGHT / 2) + SCREEN_SCALE_Y(-84.0f + 2.0 - 40.0f), gUString);
+ CFont::PrintString((SCREEN_WIDTH / 2) + SCREEN_SCALE_X(2.0f), (SCREEN_HEIGHT / 2) + SCREEN_SCALE_Y(-84.0f + 2.0f - 40.0f), gUString);
CFont::SetColor(CRGBA(89, 115, 150, 255));
CFont::PrintString((SCREEN_WIDTH / 2), (SCREEN_HEIGHT / 2) + SCREEN_SCALE_Y(-84.0f - 40.0f), gUString);
@@ -107,7 +107,7 @@ void CGarages::PrintMessages()
CMessages::InsertNumberInString(TheText.Get(MessageIDString), MessageNumberInString, MessageNumberInString2, -1, -1, -1, -1, gUString);
CFont::SetColor(CRGBA(0, 0, 0, 255));
- CFont::PrintString((SCREEN_WIDTH / 2) + SCREEN_SCALE_X(2.0f), (SCREEN_HEIGHT / 2) + SCREEN_SCALE_Y(-84.0f + 2.0 - 40.0f), gUString);
+ CFont::PrintString((SCREEN_WIDTH / 2) + SCREEN_SCALE_X(2.0f), (SCREEN_HEIGHT / 2) + SCREEN_SCALE_Y(-84.0f + 2.0f - 40.0f), gUString);
CFont::SetColor(CRGBA(89, 115, 150, 255));
CFont::PrintString((SCREEN_WIDTH / 2), (SCREEN_HEIGHT / 2) + SCREEN_SCALE_Y(-84.0f - 40.0f), gUString);
diff --git a/src/control/Garages.h b/src/control/Garages.h
index d338c71b..4c35fad1 100644
--- a/src/control/Garages.h
+++ b/src/control/Garages.h
@@ -22,7 +22,7 @@ public:
public:
static bool IsModelIndexADoor(uint32 id);
- static void TriggerMessage(char *text, int16, uint16 time, int16);
+ static void TriggerMessage(const char *text, int16, uint16 time, int16);
static void PrintMessages(void);
static bool HasCarBeenCrushed(int32);
static bool IsPointWithinHideOutGarage(CVector*);
diff --git a/src/control/PathFind.cpp b/src/control/PathFind.cpp
index e9b33395..025db0c9 100644
--- a/src/control/PathFind.cpp
+++ b/src/control/PathFind.cpp
@@ -207,8 +207,8 @@ CPathFind::PreparePathData(void)
numExtern++;
if(InfoForTileCars[k].numLeftLanes + InfoForTileCars[k].numRightLanes > numLanes)
numLanes = InfoForTileCars[k].numLeftLanes + InfoForTileCars[k].numRightLanes;
- maxX = max(maxX, Abs(InfoForTileCars[k].x));
- maxY = max(maxY, Abs(InfoForTileCars[k].y));
+ maxX = Max(maxX, Abs(InfoForTileCars[k].x));
+ maxY = Max(maxY, Abs(InfoForTileCars[k].y));
}else if(InfoForTileCars[k].type == NodeTypeIntern)
numIntern++;
}
@@ -392,7 +392,7 @@ CPathFind::PreparePathDataForType(uint8 type, CTempNode *tempnodes, CPathInfoFor
if(Abs(dx) < nearestDist){
dy = tempnodes[k].pos.y - CoorsXFormed.y;
if(Abs(dy) < nearestDist){
- nearestDist = max(Abs(dx), Abs(dy));
+ nearestDist = Max(Abs(dx), Abs(dy));
nearestId = k;
}
}
@@ -501,13 +501,13 @@ CPathFind::PreparePathDataForType(uint8 type, CTempNode *tempnodes, CPathInfoFor
// Find i inside path segment
iseg = 0;
- for(j = max(oldNumPathNodes, i-12); j < i; j++)
+ for(j = Max(oldNumPathNodes, i-12); j < i; j++)
if(m_pathNodes[j].objectIndex == m_pathNodes[i].objectIndex)
iseg++;
istart = 12*m_mapObjects[m_pathNodes[i].objectIndex]->m_modelIndex;
// Add links to other internal nodes
- for(j = max(oldNumPathNodes, i-12); j < min(m_numPathNodes, i+12); j++){
+ for(j = Max(oldNumPathNodes, i-12); j < Min(m_numPathNodes, i+12); j++){
if(m_pathNodes[i].objectIndex != m_pathNodes[j].objectIndex || i == j)
continue;
// N.B.: in every path segment, the externals have to be at the end
@@ -1263,7 +1263,9 @@ CPathFind::FindNextNodeWandering(uint8 type, CVector coors, CPathNode **lastNode
static CPathNode *apNodesToBeCleared[4995];
void
-CPathFind::DoPathSearch(uint8 type, CVector start, int32 startNodeId, CVector target, CPathNode **nodes, int16 *pNumNodes, int16 maxNumNodes, CVehicle *vehicle, float *pDist, float distLimit, int32 forcedTargetNode)
+CPathFind::DoPathSearch(uint8 type, CVector start, int32 startNodeId, CVector target,
+ CPathNode **nodes, int16 *pNumNodes, int16 maxNumNodes, CVehicle *vehicle,
+ float *pDist, float distLimit, int32 forcedTargetNode)
{
int i, j;
@@ -1273,41 +1275,51 @@ CPathFind::DoPathSearch(uint8 type, CVector start, int32 startNodeId, CVector ta
targetNode = FindNodeClosestToCoors(target, type, distLimit);
else
targetNode = forcedTargetNode;
- if(targetNode < 0)
- goto fail;
+ if(targetNode < 0) {
+ *pNumNodes = 0;
+ if(pDist) *pDist = 100000.0f;
+ return;
+ }
// Find start
int numPathsToTry;
CTreadable *startObj;
- if(startNodeId < 0){
+ if(startNodeId < 0) {
if(vehicle == nil || (startObj = vehicle->m_treadable[type]) == nil)
startObj = FindRoadObjectClosestToCoors(start, type);
numPathsToTry = 0;
- for(i = 0; i < 12; i++){
- if(startObj->m_nodeIndices[type][i] < 0)
- break;
- if(m_pathNodes[startObj->m_nodeIndices[type][i]].group == m_pathNodes[targetNode].group)
+ for(i = 0; i < 12; i++) {
+ if(startObj->m_nodeIndices[type][i] < 0) break;
+ if(m_pathNodes[startObj->m_nodeIndices[type][i]].group ==
+ m_pathNodes[targetNode].group)
numPathsToTry++;
}
- }else{
+ } else {
numPathsToTry = 1;
startObj = m_mapObjects[m_pathNodes[startNodeId].objectIndex];
}
- if(numPathsToTry == 0)
- goto fail;
+ if(numPathsToTry == 0) {
+ *pNumNodes = 0;
+ if(pDist) *pDist = 100000.0f;
+ }
- if(startNodeId < 0){
+ if(startNodeId < 0) {
// why only check node 0?
- if(m_pathNodes[startObj->m_nodeIndices[type][0]].group != m_pathNodes[targetNode].group)
- goto fail;
- }else{
- if(m_pathNodes[startNodeId].group != m_pathNodes[targetNode].group)
- goto fail;
+ if(m_pathNodes[startObj->m_nodeIndices[type][0]].group !=
+ m_pathNodes[targetNode].group) {
+ *pNumNodes = 0;
+ if(pDist) *pDist = 100000.0f;
+ return;
+ }
+ } else {
+ if(m_pathNodes[startNodeId].group != m_pathNodes[targetNode].group) {
+ *pNumNodes = 0;
+ if(pDist) *pDist = 100000.0f;
+ return;
+ }
}
-
- for(i = 0; i < 512; i++)
- m_searchNodes[i].next = nil;
+ for(i = 0; i < 512; i++) m_searchNodes[i].next = nil;
AddNodeToList(&m_pathNodes[targetNode], 0);
int numNodesToBeCleared = 0;
apNodesToBeCleared[numNodesToBeCleared++] = &m_pathNodes[targetNode];
@@ -1383,11 +1395,6 @@ CPathFind::DoPathSearch(uint8 type, CVector start, int32 startNodeId, CVector ta
for(i = 0; i < numNodesToBeCleared; i++)
apNodesToBeCleared[i]->distance = MAX_DIST;
return;
-
-fail:
- *pNumNodes = 0;
- if(pDist)
- *pDist = 100000.0f;
}
static CPathNode *pNodeList[32];
diff --git a/src/control/Replay.cpp b/src/control/Replay.cpp
index 12636d32..03104307 100644
--- a/src/control/Replay.cpp
+++ b/src/control/Replay.cpp
@@ -342,7 +342,7 @@ void CReplay::StorePedUpdate(CPed *ped, int id)
tPedUpdatePacket* pp = (tPedUpdatePacket*)&Record.m_pBase[Record.m_nOffset];
pp->type = REPLAYPACKET_PED_UPDATE;
pp->index = id;
- pp->heading = 128.0f / M_PI * ped->m_fRotationCur;
+ pp->heading = 128.0f / PI * ped->m_fRotationCur;
pp->matrix.CompressFromFullMatrix(ped->GetMatrix());
pp->assoc_group_id = ped->m_animGroup;
/* Would be more sane to use GetJustIndex(ped->m_pMyVehicle) in following assignment */
@@ -366,8 +366,8 @@ void CReplay::StorePedAnimation(CPed *ped, CStoredAnimationState *state)
CAnimBlendAssociation* main = RpAnimBlendClumpGetMainAssociation((RpClump*)ped->m_rwObject, &second, &blend_amount);
if (main){
state->animId = main->animId;
- state->time = 255.0f / 4.0f * max(0.0f, min(4.0f, main->currentTime));
- state->speed = 255.0f / 3.0f * max(0.0f, min(3.0f, main->speed));
+ state->time = 255.0f / 4.0f * Max(0.0f, Min(4.0f, main->currentTime));
+ state->speed = 255.0f / 3.0f * Max(0.0f, Min(3.0f, main->speed));
}else{
state->animId = 3;
state->time = 0;
@@ -375,9 +375,9 @@ void CReplay::StorePedAnimation(CPed *ped, CStoredAnimationState *state)
}
if (second) {
state->secAnimId = second->animId;
- state->secTime = 255.0f / 4.0f * max(0.0f, min(4.0f, second->currentTime));
- state->secSpeed = 255.0f / 3.0f * max(0.0f, min(3.0f, second->speed));
- state->blendAmount = 255.0f / 2.0f * max(0.0f, min(2.0f, blend_amount));
+ state->secTime = 255.0f / 4.0f * Max(0.0f, Min(4.0f, second->currentTime));
+ state->secSpeed = 255.0f / 3.0f * Max(0.0f, Min(3.0f, second->speed));
+ state->blendAmount = 255.0f / 2.0f * Max(0.0f, Min(2.0f, blend_amount));
}else{
state->secAnimId = 0;
state->secTime = 0;
@@ -387,9 +387,9 @@ void CReplay::StorePedAnimation(CPed *ped, CStoredAnimationState *state)
CAnimBlendAssociation* partial = RpAnimBlendClumpGetMainPartialAssociation((RpClump*)ped->m_rwObject);
if (partial) {
state->partAnimId = partial->animId;
- state->partAnimTime = 255.0f / 4.0f * max(0.0f, min(4.0f, partial->currentTime));
- state->partAnimSpeed = 255.0f / 3.0f * max(0.0f, min(3.0f, partial->speed));
- state->partBlendAmount = 255.0f / 2.0f * max(0.0f, min(2.0f, partial->blendAmount));
+ state->partAnimTime = 255.0f / 4.0f * Max(0.0f, Min(4.0f, partial->currentTime));
+ state->partAnimSpeed = 255.0f / 3.0f * Max(0.0f, Min(3.0f, partial->speed));
+ state->partBlendAmount = 255.0f / 2.0f * Max(0.0f, Min(2.0f, partial->blendAmount));
}else{
state->partAnimId = 0;
state->partAnimTime = 0;
@@ -408,9 +408,9 @@ void CReplay::StoreDetailedPedAnimation(CPed *ped, CStoredDetailedAnimationState
CAnimBlendAssociation* assoc = RpAnimBlendClumpGetMainAssociation_N((RpClump*)ped->m_rwObject, i);
if (assoc){
state->aAnimId[i] = assoc->animId;
- state->aCurTime[i] = 255.0f / 4.0f * max(0.0f, min(4.0f, assoc->currentTime));
- state->aSpeed[i] = 255.0f / 3.0f * max(0.0f, min(3.0f, assoc->speed));
- state->aBlendAmount[i] = 255.0f / 2.0f * max(0.0f, min(2.0f, assoc->blendAmount));
+ state->aCurTime[i] = 255.0f / 4.0f * Max(0.0f, Min(4.0f, assoc->currentTime));
+ state->aSpeed[i] = 255.0f / 3.0f * Max(0.0f, Min(3.0f, assoc->speed));
+ state->aBlendAmount[i] = 255.0f / 2.0f * Max(0.0f, Min(2.0f, assoc->blendAmount));
state->aFlags[i] = assoc->flags;
if (assoc->callbackType == CAnimBlendAssociation::CB_FINISH || assoc->callbackType == CAnimBlendAssociation::CB_DELETE) {
state->aFunctionCallbackID[i] = FindCBFunctionID(assoc->callback);
@@ -431,9 +431,9 @@ void CReplay::StoreDetailedPedAnimation(CPed *ped, CStoredDetailedAnimationState
CAnimBlendAssociation* assoc = RpAnimBlendClumpGetMainPartialAssociation_N((RpClump*)ped->m_rwObject, i);
if (assoc) {
state->aAnimId2[i] = assoc->animId;
- state->aCurTime2[i] = 255.0f / 4.0f * max(0.0f, min(4.0f, assoc->currentTime));
- state->aSpeed2[i] = 255.0f / 3.0f * max(0.0f, min(3.0f, assoc->speed));
- state->aBlendAmount2[i] = 255.0f / 2.0f * max(0.0f, min(2.0f, assoc->blendAmount));
+ state->aCurTime2[i] = 255.0f / 4.0f * Max(0.0f, Min(4.0f, assoc->currentTime));
+ state->aSpeed2[i] = 255.0f / 3.0f * Max(0.0f, Min(3.0f, assoc->speed));
+ state->aBlendAmount2[i] = 255.0f / 2.0f * Max(0.0f, Min(2.0f, assoc->blendAmount));
state->aFlags2[i] = assoc->flags;
if (assoc->callbackType == CAnimBlendAssociation::CB_FINISH || assoc->callbackType == CAnimBlendAssociation::CB_DELETE) {
state->aFunctionCallbackID2[i] = FindCBFunctionID(assoc->callback);
@@ -464,8 +464,8 @@ void CReplay::ProcessPedUpdate(CPed *ped, float interpolation, CAddressInReplayB
buffer->m_nOffset += sizeof(tPedUpdatePacket);
return;
}
- ped->m_fRotationCur = pp->heading * M_PI / 128.0f;
- ped->m_fRotationDest = pp->heading * M_PI / 128.0f;
+ ped->m_fRotationCur = pp->heading * PI / 128.0f;
+ ped->m_fRotationDest = pp->heading * PI / 128.0f;
CMatrix ped_matrix;
pp->matrix.DecompressIntoFullMatrix(ped_matrix);
ped->GetMatrix() = ped->GetMatrix() * CMatrix(1.0f - interpolation);
@@ -625,24 +625,24 @@ void CReplay::StoreCarUpdate(CVehicle *vehicle, int id)
vp->health = vehicle->m_fHealth / 4.0f; /* Not anticipated that health can be > 1000. */
vp->acceleration = vehicle->m_fGasPedal * 100.0f;
vp->panels = vehicle->IsCar() ? ((CAutomobile*)vehicle)->Damage.m_panelStatus : 0;
- vp->velocityX = 8000.0f * max(-4.0f, min(4.0f, vehicle->GetMoveSpeed().x)); /* 8000!? */
- vp->velocityY = 8000.0f * max(-4.0f, min(4.0f, vehicle->GetMoveSpeed().y));
- vp->velocityZ = 8000.0f * max(-4.0f, min(4.0f, vehicle->GetMoveSpeed().z));
+ vp->velocityX = 8000.0f * Max(-4.0f, Min(4.0f, vehicle->GetMoveSpeed().x)); /* 8000!? */
+ vp->velocityY = 8000.0f * Max(-4.0f, Min(4.0f, vehicle->GetMoveSpeed().y));
+ vp->velocityZ = 8000.0f * Max(-4.0f, Min(4.0f, vehicle->GetMoveSpeed().z));
vp->mi = vehicle->GetModelIndex();
vp->primary_color = vehicle->m_currentColour1;
vp->secondary_color = vehicle->m_currentColour2;
if (vehicle->GetModelIndex() == MI_RHINO)
- vp->car_gun = 128.0f / M_PI * ((CAutomobile*)vehicle)->m_fCarGunLR;
+ vp->car_gun = 128.0f / PI * ((CAutomobile*)vehicle)->m_fCarGunLR;
else
vp->wheel_state = 50.0f * vehicle->m_fSteerAngle;
if (vehicle->IsCar()){
CAutomobile* car = (CAutomobile*)vehicle;
for (int i = 0; i < 4; i++){
vp->wheel_susp_dist[i] = 50.0f * car->m_aSuspensionSpringRatio[i];
- vp->wheel_rotation[i] = 128.0f / M_PI * car->m_aWheelRotation[i];
+ vp->wheel_rotation[i] = 128.0f / PI * car->m_aWheelRotation[i];
}
- vp->door_angles[0] = 127.0f / M_PI * car->Doors[2].m_fAngle;
- vp->door_angles[1] = 127.0f / M_PI * car->Doors[3].m_fAngle;
+ vp->door_angles[0] = 127.0f / PI * car->Doors[2].m_fAngle;
+ vp->door_angles[1] = 127.0f / PI * car->Doors[3].m_fAngle;
vp->door_status = 0;
for (int i = 0; i < 6; i++){
if (car->Damage.GetDoorStatus(i) == 3)
@@ -675,7 +675,7 @@ void CReplay::ProcessCarUpdate(CVehicle *vehicle, float interpolation, CAddressI
ApplyPanelDamageToCar(vp->panels, (CAutomobile*)vehicle, true);
vehicle->m_vecMoveSpeed = CVector(vp->velocityX / 8000.0f, vp->velocityY / 8000.0f, vp->velocityZ / 8000.0f);
if (vehicle->GetModelIndex() == MI_RHINO) {
- ((CAutomobile*)vehicle)->m_fCarGunLR = vp->car_gun * M_PI / 128.0f;
+ ((CAutomobile*)vehicle)->m_fCarGunLR = vp->car_gun * PI / 128.0f;
vehicle->m_fSteerAngle = 0.0f;
}else{
vehicle->m_fSteerAngle = vp->wheel_state / 50.0f;
@@ -684,10 +684,10 @@ void CReplay::ProcessCarUpdate(CVehicle *vehicle, float interpolation, CAddressI
CAutomobile* car = (CAutomobile*)vehicle;
for (int i = 0; i < 4; i++) {
car->m_aSuspensionSpringRatio[i] = vp->wheel_susp_dist[i] / 50.0f;
- car->m_aWheelRotation[i] = vp->wheel_rotation[i] * M_PI / 128.0f;
+ car->m_aWheelRotation[i] = vp->wheel_rotation[i] * PI / 128.0f;
}
- car->Doors[2].m_fAngle = car->Doors[2].m_fPrevAngle = vp->door_angles[0] * M_PI / 127.0f;
- car->Doors[3].m_fAngle = car->Doors[3].m_fPrevAngle = vp->door_angles[1] * M_PI / 127.0f;
+ car->Doors[2].m_fAngle = car->Doors[2].m_fPrevAngle = vp->door_angles[0] * PI / 127.0f;
+ car->Doors[3].m_fAngle = car->Doors[3].m_fPrevAngle = vp->door_angles[1] * PI / 127.0f;
if (vp->door_angles[0])
car->Damage.SetDoorStatus(2, 2);
if (vp->door_angles[1])
@@ -1501,9 +1501,9 @@ void CReplay::ProcessLookAroundCam(void)
--FramesActiveLookAroundCam;
fBetaAngleLookAroundCam += x_moved;
if (CPad::NewMouseControllerState.LMB && CPad::NewMouseControllerState.RMB)
- fDistanceLookAroundCam = max(3.0f, min(15.0f, fDistanceLookAroundCam + 2.0f * y_moved));
+ fDistanceLookAroundCam = Max(3.0f, Min(15.0f, fDistanceLookAroundCam + 2.0f * y_moved));
else
- fAlphaAngleLookAroundCam = max(0.1f, min(1.5f, fAlphaAngleLookAroundCam + y_moved));
+ fAlphaAngleLookAroundCam = Max(0.1f, Min(1.5f, fAlphaAngleLookAroundCam + y_moved));
CVector camera_pt(
fDistanceLookAroundCam * Sin(fBetaAngleLookAroundCam) * Cos(fAlphaAngleLookAroundCam),
fDistanceLookAroundCam * Cos(fBetaAngleLookAroundCam) * Cos(fAlphaAngleLookAroundCam),
diff --git a/src/control/Script.cpp b/src/control/Script.cpp
index c81cd050..7e87fc6e 100644
--- a/src/control/Script.cpp
+++ b/src/control/Script.cpp
@@ -1987,7 +1987,7 @@ int8 CRunningScript::ProcessCommandsFrom100To199(int32 command)
car->AutoPilot.m_nCarMission = MISSION_GOTOCOORDS;
car->m_status = STATUS_PHYSICS;
car->bEngineOn = true;
- car->AutoPilot.m_nCruiseSpeed = max(car->AutoPilot.m_nCruiseSpeed, 6);
+ car->AutoPilot.m_nCruiseSpeed = Max(car->AutoPilot.m_nCruiseSpeed, 6);
car->AutoPilot.m_nTimeToStartMission = CTimer::GetTimeInMilliseconds();
return 0;
}
@@ -1999,7 +1999,7 @@ int8 CRunningScript::ProcessCommandsFrom100To199(int32 command)
CCarCtrl::JoinCarWithRoadSystem(car);
car->AutoPilot.m_nCarMission = MISSION_CRUISE;
car->bEngineOn = true;
- car->AutoPilot.m_nCruiseSpeed = max(car->AutoPilot.m_nCruiseSpeed, 6);
+ car->AutoPilot.m_nCruiseSpeed = Max(car->AutoPilot.m_nCruiseSpeed, 6);
car->AutoPilot.m_nTimeToStartMission = CTimer::GetTimeInMilliseconds();
return 0;
}
@@ -2083,7 +2083,7 @@ int8 CRunningScript::ProcessCommandsFrom100To199(int32 command)
CollectParameters(&m_nIp, 2);
CVehicle* car = CPools::GetVehiclePool()->GetAt(ScriptParams[0]);
assert(car);
- car->AutoPilot.m_nCruiseSpeed = min(*(float*)&ScriptParams[1], 60.0f * car->pHandling->Transmission.fUnkMaxVelocity);
+ car->AutoPilot.m_nCruiseSpeed = Min(*(float*)&ScriptParams[1], 60.0f * car->pHandling->Transmission.fUnkMaxVelocity);
return 0;
}
case COMMAND_SET_CAR_DRIVING_STYLE:
diff --git a/src/core/Camera.cpp b/src/core/Camera.cpp
index cb16c3ad..f15232f3 100644
--- a/src/core/Camera.cpp
+++ b/src/core/Camera.cpp
@@ -209,7 +209,7 @@ WellBufferMe(float Target, float *CurrentValue, float *CurrentSpeed, float MaxSp
else if(TargetSpeed > 0.0f && *CurrentSpeed > TargetSpeed)
*CurrentSpeed = TargetSpeed;
- *CurrentValue += *CurrentSpeed * min(10.0f, CTimer::GetTimeStep());
+ *CurrentValue += *CurrentSpeed * Min(10.0f, CTimer::GetTimeStep());
}
void
@@ -697,7 +697,7 @@ CCam::Process_FollowPed(const CVector &CameraTarget, float TargetOrientation, fl
// Process height offset to avoid peds and cars
float TargetZOffSet = m_fUnknownZOffSet + m_fDimensionOfHighestNearCar;
- TargetZOffSet = max(TargetZOffSet, m_fPedBetweenCameraHeightOffset);
+ TargetZOffSet = Max(TargetZOffSet, m_fPedBetweenCameraHeightOffset);
float TargetHeight = CameraTarget.z + TargetZOffSet - Source.z;
if(TargetHeight > m_fCamBufferedHeight){
@@ -753,7 +753,7 @@ CCam::Process_FollowPed(const CVector &CameraTarget, float TargetOrientation, fl
}
}
- TargetCoors.z += min(1.0f, m_fCamBufferedHeight/2.0f);
+ TargetCoors.z += Min(1.0f, m_fCamBufferedHeight/2.0f);
m_cvecTargetCoorsForFudgeInter = TargetCoors;
Front = TargetCoors - Source;
@@ -991,7 +991,7 @@ CCam::WorkOutCamHeight(const CVector &TargetCoors, float TargetOrientation, floa
}
if(FoundCamRoof){
// Camera is under something
- float roof = FoundRoofCenter ? min(CamRoof, CarRoof) : CamRoof;
+ float roof = FoundRoofCenter ? Min(CamRoof, CarRoof) : CamRoof;
// Same weirdness again?
TargetAlpha = CGeneral::GetATanOfXY(CA_MAX_DISTANCE, roof - CamTargetZ - 1.5f);
CamClear = false;
@@ -1249,7 +1249,7 @@ void
CCam::Cam_On_A_String_Unobscured(const CVector &TargetCoors, float BaseDist)
{
CA_MAX_DISTANCE = BaseDist + 0.1f + TheCamera.CarZoomValueSmooth;
- CA_MIN_DISTANCE = min(BaseDist*0.6f, 3.5f);
+ CA_MIN_DISTANCE = Min(BaseDist*0.6f, 3.5f);
CVector Dist = Source - TargetCoors;
diff --git a/src/core/Collision.cpp b/src/core/Collision.cpp
index 66b29d9f..538bcae6 100644
--- a/src/core/Collision.cpp
+++ b/src/core/Collision.cpp
@@ -153,10 +153,10 @@ CCollision::LoadCollisionWhenINeedIt(bool forceChange)
// on water we expect to be between levels
multipleLevels = true;
}else{
- xmin = max(sx - 1, 0);
- xmax = min(sx + 1, NUMSECTORS_X-1);
- ymin = max(sy - 1, 0);
- ymax = min(sy + 1, NUMSECTORS_Y-1);
+ xmin = Max(sx - 1, 0);
+ xmax = Min(sx + 1, NUMSECTORS_X-1);
+ ymin = Max(sy - 1, 0);
+ ymax = Min(sy + 1, NUMSECTORS_Y-1);
for(x = xmin; x <= xmax; x++)
for(y = ymin; y <= ymax; y++){
diff --git a/src/core/FileMgr.cpp b/src/core/FileMgr.cpp
index 954fcdef..2a8628b0 100644
--- a/src/core/FileMgr.cpp
+++ b/src/core/FileMgr.cpp
@@ -248,15 +248,15 @@ CFileMgr::OpenFileForWriting(const char *file)
}
int
-CFileMgr::Read(int fd, char *buf, int len)
+CFileMgr::Read(int fd, const char *buf, int len)
{
- return myfread(buf, 1, len, fd);
+ return myfread((void*)buf, 1, len, fd);
}
int
-CFileMgr::Write(int fd, char *buf, int len)
+CFileMgr::Write(int fd, const char *buf, int len)
{
- return myfwrite(buf, 1, len, fd);
+ return myfwrite((void*)buf, 1, len, fd);
}
bool
diff --git a/src/core/FileMgr.h b/src/core/FileMgr.h
index bab86e38..3df0c7d8 100644
--- a/src/core/FileMgr.h
+++ b/src/core/FileMgr.h
@@ -12,8 +12,8 @@ public:
static int LoadFile(const char *file, uint8 *buf, int unused, const char *mode);
static int OpenFile(const char *file, const char *mode);
static int OpenFileForWriting(const char *file);
- static int Read(int fd, char *buf, int len);
- static int Write(int fd, char *buf, int len);
+ static int Read(int fd, const char *buf, int len);
+ static int Write(int fd, const char *buf, int len);
static bool Seek(int fd, int offset, int whence);
static bool ReadLine(int fd, char *buf, int len);
static int CloseFile(int fd);
diff --git a/src/core/Frontend.cpp b/src/core/Frontend.cpp
index 1de5c94f..f4545f7b 100644
--- a/src/core/Frontend.cpp
+++ b/src/core/Frontend.cpp
@@ -95,7 +95,7 @@ bool GetMouseMoveRight();
bool GetPadInput();
bool GetMouseInput();
-char *FrontendFilenames[] = {
+const char *FrontendFilenames[] = {
"fe2_mainpanel_ul",
"fe2_mainpanel_ur",
"fe2_mainpanel_dl",
@@ -126,7 +126,7 @@ char *FrontendFilenames[] = {
"fe_radio9", // CHATTERBOX
};
-char *MenuFilenames[] = {
+const char *MenuFilenames[] = {
"connection24", "",
"findgame24", "",
"hostgame24", "",
@@ -1030,7 +1030,7 @@ int CMenuManager::FadeIn(int alpha)
m_nCurrScreen == MENUPAGE_SAVING_IN_PROGRESS ||
m_nCurrScreen == MENUPAGE_DELETING)
return alpha;
- return min(m_nMenuFadeAlpha, alpha);
+ return Min(m_nMenuFadeAlpha, alpha);
}
#endif
diff --git a/src/core/General.h b/src/core/General.h
index 8f9aa044..366c571c 100644
--- a/src/core/General.h
+++ b/src/core/General.h
@@ -97,7 +97,7 @@ public:
}
// should return direction in 0-8 range. fits perfectly to peds' path directions.
- static int CGeneral::GetNodeHeadingFromVector(float x, float y)
+ static int GetNodeHeadingFromVector(float x, float y)
{
float angle = CGeneral::GetRadianAngleBetweenPoints(x, y, 0.0f, 0.0f);
if (angle < 0.0f)
diff --git a/src/core/IniFile.cpp b/src/core/IniFile.cpp
index 08b30876..46dceff3 100644
--- a/src/core/IniFile.cpp
+++ b/src/core/IniFile.cpp
@@ -17,10 +17,10 @@ void CIniFile::LoadIniFile()
if (f){
CFileMgr::ReadLine(f, gString, 200);
sscanf(gString, "%f", &PedNumberMultiplier);
- PedNumberMultiplier = min(3.0f, max(0.5f, PedNumberMultiplier));
+ PedNumberMultiplier = Min(3.0f, Max(0.5f, PedNumberMultiplier));
CFileMgr::ReadLine(f, gString, 200);
sscanf(gString, "%f", &CarNumberMultiplier);
- CarNumberMultiplier = min(3.0f, max(0.5f, CarNumberMultiplier));
+ CarNumberMultiplier = Min(3.0f, Max(0.5f, CarNumberMultiplier));
CFileMgr::CloseFile(f);
}
CPopulation::MaxNumberOfPedsInUse = 25.0f * PedNumberMultiplier;
diff --git a/src/core/Pad.cpp b/src/core/Pad.cpp
index f334a255..b5086d64 100644
--- a/src/core/Pad.cpp
+++ b/src/core/Pad.cpp
@@ -299,10 +299,10 @@ CControllerState CPad::ReconcileTwoControllersInput(CControllerState const &Stat
{ if ( State1.button || State2.button ) ReconState.button = 255; }
#define _RECONCILE_AXIS_POSITIVE(axis) \
- { if ( State1.axis >= 0 && State2.axis >= 0 ) ReconState.axis = max(State1.axis, State2.axis); }
+ { if ( State1.axis >= 0 && State2.axis >= 0 ) ReconState.axis = Max(State1.axis, State2.axis); }
#define _RECONCILE_AXIS_NEGATIVE(axis) \
- { if ( State1.axis <= 0 && State2.axis <= 0 ) ReconState.axis = min(State1.axis, State2.axis); }
+ { if ( State1.axis <= 0 && State2.axis <= 0 ) ReconState.axis = Min(State1.axis, State2.axis); }
#define _RECONCILE_AXIS(axis) \
{ _RECONCILE_AXIS_POSITIVE(axis); _RECONCILE_AXIS_NEGATIVE(axis); }
diff --git a/src/core/Streaming.cpp b/src/core/Streaming.cpp
index a7bde91e..8158cd1d 100644
--- a/src/core/Streaming.cpp
+++ b/src/core/Streaming.cpp
@@ -1940,7 +1940,7 @@ CStreaming::ProcessEntitiesInSectorList(CPtrList &list, float x, float y, float
CTimeModelInfo *mi = (CTimeModelInfo*)CModelInfo::GetModelInfo(e->GetModelIndex());
if(mi->m_type != MITYPE_TIME || CClock::GetIsTimeInRange(mi->GetTimeOn(), mi->GetTimeOff())){
lodDistSq = sq(mi->GetLargestLodDistance());
- lodDistSq = min(lodDistSq, sq(STREAM_DIST));
+ lodDistSq = Min(lodDistSq, sq(STREAM_DIST));
pos = CVector2D(e->GetPosition());
if(xmin < pos.x && pos.x < xmax &&
ymin < pos.y && pos.y < ymax &&
@@ -2160,20 +2160,20 @@ CStreaming::DeleteRwObjectsBehindCamera(int32 mem)
if(Abs(TheCamera.GetForward().x) > Abs(TheCamera.GetForward().y)){
// looking west/east
- ymin = max(iy - 10, 0);
- ymax = min(iy + 10, NUMSECTORS_Y);
+ ymin = Max(iy - 10, 0);
+ ymax = Min(iy + 10, NUMSECTORS_Y);
assert(ymin <= ymax);
// Delete a block of sectors that we know is behind the camera
if(TheCamera.GetForward().x > 0){
// looking east
- xmax = max(ix - 2, 0);
- xmin = max(ix - 10, 0);
+ xmax = Max(ix - 2, 0);
+ xmin = Max(ix - 10, 0);
inc = 1;
}else{
// looking west
- xmax = min(ix + 2, NUMSECTORS_X);
- xmin = min(ix + 10, NUMSECTORS_X);
+ xmax = Min(ix + 2, NUMSECTORS_X);
+ xmin = Min(ix + 10, NUMSECTORS_X);
inc = -1;
}
for(y = ymin; y <= ymax; y++){
@@ -2189,13 +2189,13 @@ CStreaming::DeleteRwObjectsBehindCamera(int32 mem)
// Now a block that intersects with the camera's frustum
if(TheCamera.GetForward().x > 0){
// looking east
- xmax = max(ix + 10, 0);
- xmin = max(ix - 2, 0);
+ xmax = Max(ix + 10, 0);
+ xmin = Max(ix - 2, 0);
inc = 1;
}else{
// looking west
- xmax = min(ix - 10, NUMSECTORS_X);
- xmin = min(ix + 2, NUMSECTORS_X);
+ xmax = Min(ix - 10, NUMSECTORS_X);
+ xmin = Min(ix + 2, NUMSECTORS_X);
inc = -1;
}
for(y = ymin; y <= ymax; y++){
@@ -2224,20 +2224,20 @@ CStreaming::DeleteRwObjectsBehindCamera(int32 mem)
}else{
// looking north/south
- xmin = max(ix - 10, 0);
- xmax = min(ix + 10, NUMSECTORS_X);
+ xmin = Max(ix - 10, 0);
+ xmax = Min(ix + 10, NUMSECTORS_X);
assert(xmin <= xmax);
// Delete a block of sectors that we know is behind the camera
if(TheCamera.GetForward().y > 0){
// looking north
- ymax = max(iy - 2, 0);
- ymin = max(iy - 10, 0);
+ ymax = Max(iy - 2, 0);
+ ymin = Max(iy - 10, 0);
inc = 1;
}else{
// looking south
- ymax = min(iy + 2, NUMSECTORS_Y);
- ymin = min(iy + 10, NUMSECTORS_Y);
+ ymax = Min(iy + 2, NUMSECTORS_Y);
+ ymin = Min(iy + 10, NUMSECTORS_Y);
inc = -1;
}
for(x = xmin; x <= xmax; x++){
@@ -2253,13 +2253,13 @@ CStreaming::DeleteRwObjectsBehindCamera(int32 mem)
// Now a block that intersects with the camera's frustum
if(TheCamera.GetForward().y > 0){
// looking north
- ymax = max(iy + 10, 0);
- ymin = max(iy - 2, 0);
+ ymax = Max(iy + 10, 0);
+ ymin = Max(iy - 2, 0);
inc = 1;
}else{
// looking south
- ymax = min(iy - 10, NUMSECTORS_Y);
- ymin = min(iy + 2, NUMSECTORS_Y);
+ ymax = Min(iy - 10, NUMSECTORS_Y);
+ ymin = Min(iy + 2, NUMSECTORS_Y);
inc = -1;
}
for(x = xmin; x <= xmax; x++){
diff --git a/src/core/Wanted.cpp b/src/core/Wanted.cpp
index 26b115e3..daed9155 100644
--- a/src/core/Wanted.cpp
+++ b/src/core/Wanted.cpp
@@ -209,7 +209,7 @@ CWanted::ReportCrimeNow(eCrimeType type, const CVector &coors, bool policeDoesnt
else
sensitivity = m_fCrimeSensitivity;
- wantedLevelDrop = min(CCullZones::GetWantedLevelDrop(), 100);
+ wantedLevelDrop = Min(CCullZones::GetWantedLevelDrop(), 100);
chaos = (1.0f - wantedLevelDrop/100.0f) * sensitivity;
if (policeDoesntCare)
diff --git a/src/core/common.h b/src/core/common.h
index 73e57c21..d1f71720 100644
--- a/src/core/common.h
+++ b/src/core/common.h
@@ -156,7 +156,7 @@ public:
inline float sq(float x) { return x*x; }
#define SQR(x) ((x) * (x))
-#define PI M_PI
+#define PI (float)M_PI
#define TWOPI (PI*2)
#define HALFPI (PI/2)
#define DEGTORAD(x) ((x) * PI / 180.0f)
@@ -171,8 +171,8 @@ inline float sq(float x) { return x*x; }
int myrand(void);
void mysrand(unsigned int seed);
-void re3_debug(char *format, ...);
-void re3_trace(const char *filename, unsigned int lineno, const char *func, char *format, ...);
+void re3_debug(const char *format, ...);
+void re3_trace(const char *filename, unsigned int lineno, const char *func, const char *format, ...);
void re3_assert(const char *expr, const char *filename, unsigned int lineno, const char *func);
#define DEBUGBREAK() __debugbreak();
@@ -195,8 +195,8 @@ void re3_assert(const char *expr, const char *filename, unsigned int lineno, con
#define ARRAY_SIZE(array) (sizeof(array) / sizeof(array[0]))
#define BIT(num) (1<<(num))
-#define max(a, b) (((a) > (b)) ? (a) : (b))
-#define min(a, b) (((a) < (b)) ? (a) : (b))
+#define Max(a, b) (((a) > (b)) ? (a) : (b))
+#define Min(a, b) (((a) < (b)) ? (a) : (b))
#define ABS(a) (((a) < 0) ? (-(a)) : (a))
#define norm(value, min, max) (((value) < (min)) ? 0 : (((value) > (max)) ? 1 : (((value) - (min)) / ((max) - (min)))))
diff --git a/src/core/main.cpp b/src/core/main.cpp
index 50494ef3..a82a2ab8 100644
--- a/src/core/main.cpp
+++ b/src/core/main.cpp
@@ -453,7 +453,7 @@ DoFade(void)
CRGBA fadeColor;
CRect rect;
int fadeValue = CDraw::FadeValue;
- float brightness = min(CMenuManager::m_PrefsBrightness, 256);
+ float brightness = Min(CMenuManager::m_PrefsBrightness, 256);
if(brightness <= 50)
brightness = 50;
if(FrontEndMenuManager.m_bMenuActive)
diff --git a/src/core/re3.cpp b/src/core/re3.cpp
index ad3838bd..9737fddb 100644
--- a/src/core/re3.cpp
+++ b/src/core/re3.cpp
@@ -425,7 +425,7 @@ void re3_assert(const char *expr, const char *filename, unsigned int lineno, con
abort();
}
-void re3_debug(char *format, ...)
+void re3_debug(const char *format, ...)
{
va_list va;
va_start(va, format);
@@ -435,7 +435,7 @@ void re3_debug(char *format, ...)
printf("%s", re3_buff);
}
-void re3_trace(const char *filename, unsigned int lineno, const char *func, char *format, ...)
+void re3_trace(const char *filename, unsigned int lineno, const char *func, const char *format, ...)
{
char buff[re3_buffsize *2];
va_list va;
diff --git a/src/entities/Physical.cpp b/src/entities/Physical.cpp
index fbd1322d..d59e6c59 100644
--- a/src/entities/Physical.cpp
+++ b/src/entities/Physical.cpp
@@ -457,7 +457,7 @@ CPhysical::ApplySpringCollision(float springConst, CVector &springDir, CVector &
{
float compression = 1.0f - springRatio;
if(compression > 0.0f){
- float step = min(CTimer::GetTimeStep(), 3.0f);
+ float step = Min(CTimer::GetTimeStep(), 3.0f);
float impulse = -GRAVITY*m_fMass*step * springConst * compression * bias*2.0f;
ApplyMoveForce(springDir*impulse);
ApplyTurnForce(springDir*impulse, point);
@@ -471,12 +471,12 @@ CPhysical::ApplySpringDampening(float damping, CVector &springDir, CVector &poin
{
float speedA = DotProduct(speed, springDir);
float speedB = DotProduct(GetSpeed(point), springDir);
- float step = min(CTimer::GetTimeStep(), 3.0f);
+ float step = Min(CTimer::GetTimeStep(), 3.0f);
float impulse = -damping * (speedA + speedB)/2.0f * m_fMass * step * 0.53f;
// what is this?
float a = m_fTurnMass / ((point.MagnitudeSqr() + 1.0f) * 2.0f * m_fMass);
- a = min(a, 1.0f);
+ a = Min(a, 1.0f);
float b = Abs(impulse / (speedB * m_fMass));
if(a < b)
impulse *= a/b;
@@ -646,7 +646,7 @@ CPhysical::ApplyCollision(CPhysical *B, CColPoint &colpoint, float &impulseA, fl
// positive if B is moving towards A
// not interested in how much B moves into A apparently?
// only interested in cases where A collided into B
- speedB = max(0.0f, DotProduct(B->m_vecMoveSpeed, colpoint.normal));
+ speedB = Max(0.0f, DotProduct(B->m_vecMoveSpeed, colpoint.normal));
// A has moved into B
if(speedA < speedB){
if(!A->bHasHitWall)
@@ -1147,18 +1147,18 @@ CPhysical::ProcessShiftSectorList(CPtrList *lists)
CVector dir = A->GetPosition() - B->GetPosition();
dir.Normalise();
if(dir.z < 0.0f && dir.z < A->GetForward().z && dir.z < A->GetRight().z)
- dir.z = min(0.0f, min(A->GetForward().z, A->GetRight().z));
+ dir.z = Min(0.0f, Min(A->GetForward().z, A->GetRight().z));
shift += dir * colpoints[mostColliding].depth * 0.5f;
}else if(A->IsPed() && B->IsVehicle() && ((CVehicle*)B)->IsBoat()){
CVector dir = colpoints[mostColliding].normal;
- float f = min(Abs(dir.z), 0.9f);
+ float f = Min(Abs(dir.z), 0.9f);
dir.z = 0.0f;
dir.Normalise();
shift += dir * colpoints[mostColliding].depth / (1.0f - f);
boat = B;
}else if(B->IsPed() && A->IsVehicle() && ((CVehicle*)A)->IsBoat()){
CVector dir = colpoints[mostColliding].normal * -1.0f;
- float f = min(Abs(dir.z), 0.9f);
+ float f = Min(Abs(dir.z), 0.9f);
dir.z = 0.0f;
dir.Normalise();
B->GetPosition() += dir * colpoints[mostColliding].depth / (1.0f - f);
@@ -1246,7 +1246,7 @@ collision:
float turnSpeedDiff = (B->m_vecTurnSpeed - A->m_vecTurnSpeed).MagnitudeSqr();
float moveSpeedDiff = (B->m_vecMoveSpeed - A->m_vecMoveSpeed).MagnitudeSqr();
- DMAudio.ReportCollision(A, B, aColPoints[i].surfaceA, aColPoints[i].surfaceB, impulseA, max(turnSpeedDiff, moveSpeedDiff));
+ DMAudio.ReportCollision(A, B, aColPoints[i].surfaceA, aColPoints[i].surfaceB, impulseA, Max(turnSpeedDiff, moveSpeedDiff));
}
}else if(A->bHasContacted){
CVector savedMoveFriction = A->m_vecMoveFriction;
@@ -1268,7 +1268,7 @@ collision:
float turnSpeedDiff = (B->m_vecTurnSpeed - A->m_vecTurnSpeed).MagnitudeSqr();
float moveSpeedDiff = (B->m_vecMoveSpeed - A->m_vecMoveSpeed).MagnitudeSqr();
- DMAudio.ReportCollision(A, B, aColPoints[i].surfaceA, aColPoints[i].surfaceB, impulseA, max(turnSpeedDiff, moveSpeedDiff));
+ DMAudio.ReportCollision(A, B, aColPoints[i].surfaceA, aColPoints[i].surfaceB, impulseA, Max(turnSpeedDiff, moveSpeedDiff));
if(A->ApplyFriction(B, CSurfaceTable::GetAdhesiveLimit(aColPoints[i])/numCollisions, aColPoints[i])){
A->bHasContacted = true;
@@ -1301,7 +1301,7 @@ collision:
float turnSpeedDiff = (B->m_vecTurnSpeed - A->m_vecTurnSpeed).MagnitudeSqr();
float moveSpeedDiff = (B->m_vecMoveSpeed - A->m_vecMoveSpeed).MagnitudeSqr();
- DMAudio.ReportCollision(A, B, aColPoints[i].surfaceA, aColPoints[i].surfaceB, impulseA, max(turnSpeedDiff, moveSpeedDiff));
+ DMAudio.ReportCollision(A, B, aColPoints[i].surfaceA, aColPoints[i].surfaceB, impulseA, Max(turnSpeedDiff, moveSpeedDiff));
if(A->ApplyFriction(B, CSurfaceTable::GetAdhesiveLimit(aColPoints[i])/numCollisions, aColPoints[i])){
A->bHasContacted = true;
@@ -1328,7 +1328,7 @@ collision:
float turnSpeedDiff = (B->m_vecTurnSpeed - A->m_vecTurnSpeed).MagnitudeSqr();
float moveSpeedDiff = (B->m_vecMoveSpeed - A->m_vecMoveSpeed).MagnitudeSqr();
- DMAudio.ReportCollision(A, B, aColPoints[i].surfaceA, aColPoints[i].surfaceB, impulseA, max(turnSpeedDiff, moveSpeedDiff));
+ DMAudio.ReportCollision(A, B, aColPoints[i].surfaceA, aColPoints[i].surfaceB, impulseA, Max(turnSpeedDiff, moveSpeedDiff));
if(A->ApplyFriction(B, CSurfaceTable::GetAdhesiveLimit(aColPoints[i])/numCollisions, aColPoints[i])){
A->bHasContacted = true;
@@ -1506,7 +1506,7 @@ CPhysical::ProcessCollisionSectorList(CPtrList *lists)
float turnSpeedDiff = A->m_vecTurnSpeed.MagnitudeSqr();
float moveSpeedDiff = A->m_vecMoveSpeed.MagnitudeSqr();
- DMAudio.ReportCollision(A, B, aColPoints[i].surfaceA, aColPoints[i].surfaceB, imp, max(turnSpeedDiff, moveSpeedDiff));
+ DMAudio.ReportCollision(A, B, aColPoints[i].surfaceA, aColPoints[i].surfaceB, imp, Max(turnSpeedDiff, moveSpeedDiff));
}
}else{
for(i = 0; i < numCollisions; i++){
@@ -1527,7 +1527,7 @@ CPhysical::ProcessCollisionSectorList(CPtrList *lists)
float turnSpeedDiff = A->m_vecTurnSpeed.MagnitudeSqr();
float moveSpeedDiff = A->m_vecMoveSpeed.MagnitudeSqr();
- DMAudio.ReportCollision(A, B, aColPoints[i].surfaceA, aColPoints[i].surfaceB, imp, max(turnSpeedDiff, moveSpeedDiff));
+ DMAudio.ReportCollision(A, B, aColPoints[i].surfaceA, aColPoints[i].surfaceB, imp, Max(turnSpeedDiff, moveSpeedDiff));
float adhesion = CSurfaceTable::GetAdhesiveLimit(aColPoints[i]) / numCollisions;
@@ -1545,7 +1545,7 @@ CPhysical::ProcessCollisionSectorList(CPtrList *lists)
else if(A->GetUp().z > 0.3f)
adhesion = 0.0f;
else
- adhesion *= min(5.0f, 0.03f*impulseA + 1.0f);
+ adhesion *= Min(5.0f, 0.03f*impulseA + 1.0f);
}
if(A->ApplyFriction(adhesion, aColPoints[i]))
@@ -1594,7 +1594,7 @@ CPhysical::ProcessCollisionSectorList(CPtrList *lists)
float turnSpeedDiff = (B->m_vecTurnSpeed - A->m_vecTurnSpeed).MagnitudeSqr();
float moveSpeedDiff = (B->m_vecMoveSpeed - A->m_vecMoveSpeed).MagnitudeSqr();
- DMAudio.ReportCollision(A, B, aColPoints[i].surfaceA, aColPoints[i].surfaceB, impulseA, max(turnSpeedDiff, moveSpeedDiff));
+ DMAudio.ReportCollision(A, B, aColPoints[i].surfaceA, aColPoints[i].surfaceB, impulseA, Max(turnSpeedDiff, moveSpeedDiff));
}
}else if(A->bHasContacted){
CVector savedMoveFriction = A->m_vecMoveFriction;
@@ -1619,7 +1619,7 @@ CPhysical::ProcessCollisionSectorList(CPtrList *lists)
float turnSpeedDiff = (B->m_vecTurnSpeed - A->m_vecTurnSpeed).MagnitudeSqr();
float moveSpeedDiff = (B->m_vecMoveSpeed - A->m_vecMoveSpeed).MagnitudeSqr();
- DMAudio.ReportCollision(A, B, aColPoints[i].surfaceA, aColPoints[i].surfaceB, impulseA, max(turnSpeedDiff, moveSpeedDiff));
+ DMAudio.ReportCollision(A, B, aColPoints[i].surfaceA, aColPoints[i].surfaceB, impulseA, Max(turnSpeedDiff, moveSpeedDiff));
if(A->ApplyFriction(B, CSurfaceTable::GetAdhesiveLimit(aColPoints[i])/numCollisions, aColPoints[i])){
A->bHasContacted = true;
@@ -1655,7 +1655,7 @@ CPhysical::ProcessCollisionSectorList(CPtrList *lists)
float turnSpeedDiff = (B->m_vecTurnSpeed - A->m_vecTurnSpeed).MagnitudeSqr();
float moveSpeedDiff = (B->m_vecMoveSpeed - A->m_vecMoveSpeed).MagnitudeSqr();
- DMAudio.ReportCollision(A, B, aColPoints[i].surfaceA, aColPoints[i].surfaceB, impulseA, max(turnSpeedDiff, moveSpeedDiff));
+ DMAudio.ReportCollision(A, B, aColPoints[i].surfaceA, aColPoints[i].surfaceB, impulseA, Max(turnSpeedDiff, moveSpeedDiff));
if(A->ApplyFriction(B, CSurfaceTable::GetAdhesiveLimit(aColPoints[i])/numCollisions, aColPoints[i])){
A->bHasContacted = true;
@@ -1685,7 +1685,7 @@ CPhysical::ProcessCollisionSectorList(CPtrList *lists)
float turnSpeedDiff = (B->m_vecTurnSpeed - A->m_vecTurnSpeed).MagnitudeSqr();
float moveSpeedDiff = (B->m_vecMoveSpeed - A->m_vecMoveSpeed).MagnitudeSqr();
- DMAudio.ReportCollision(A, B, aColPoints[i].surfaceA, aColPoints[i].surfaceB, impulseA, max(turnSpeedDiff, moveSpeedDiff));
+ DMAudio.ReportCollision(A, B, aColPoints[i].surfaceA, aColPoints[i].surfaceB, impulseA, Max(turnSpeedDiff, moveSpeedDiff));
if(A->ApplyFriction(B, CSurfaceTable::GetAdhesiveLimit(aColPoints[i])/numCollisions, aColPoints[i])){
A->bHasContacted = true;
@@ -1831,7 +1831,7 @@ CPhysical::ProcessCollision(void)
if(IsPed() && (distSq >= sq(0.2f) || ped->IsPlayer())){
if(ped->IsPlayer())
- n = max(NUMSTEPS(0.2f), 2.0);
+ n = Max(NUMSTEPS(0.2f), 2.0);
else
n = NUMSTEPS(0.3f);
step = savedTimeStep / n;
@@ -1852,7 +1852,7 @@ CPhysical::ProcessCollision(void)
speedDown = Multiply3x3(GetMatrix(), speedDown);
speedUp = GetSpeed(speedUp);
speedDown = GetSpeed(speedDown);
- distSq = max(speedUp.MagnitudeSqr(), speedDown.MagnitudeSqr()) * sq(CTimer::GetTimeStep());
+ distSq = Max(speedUp.MagnitudeSqr(), speedDown.MagnitudeSqr()) * sq(CTimer::GetTimeStep());
if(distSq >= sq(0.3f)){
n = NUMSTEPS(0.3f);
step = savedTimeStep / n;
diff --git a/src/modelinfo/ClumpModelInfo.h b/src/modelinfo/ClumpModelInfo.h
index d491bdb9..100aa30b 100644
--- a/src/modelinfo/ClumpModelInfo.h
+++ b/src/modelinfo/ClumpModelInfo.h
@@ -4,14 +4,14 @@
struct RwObjectNameIdAssocation
{
- char *name;
+ const char *name;
int32 hierId;
uint32 flags;
};
struct RwObjectNameAssociation
{
- char *name;
+ const char *name;
RwFrame *frame;
};
diff --git a/src/modelinfo/VehicleModelInfo.cpp b/src/modelinfo/VehicleModelInfo.cpp
index 19100d84..87f01177 100644
--- a/src/modelinfo/VehicleModelInfo.cpp
+++ b/src/modelinfo/VehicleModelInfo.cpp
@@ -1038,7 +1038,7 @@ CVehicleModelInfo::SetEnvironmentMap(void)
void
CVehicleModelInfo::LoadEnvironmentMaps(void)
{
- char *texnames[] = {
+ const char *texnames[] = {
"reflection01", // only one used
"reflection02",
"reflection03",
diff --git a/src/peds/Ped.cpp b/src/peds/Ped.cpp
index 209c4ff6..65bd696d 100644
--- a/src/peds/Ped.cpp
+++ b/src/peds/Ped.cpp
@@ -1792,7 +1792,7 @@ CPed::LineUpPedWithCar(PedLineUpPhase phase)
neededPos.z = autoZPos.z;
m_vecMoveSpeed = CVector(0.0f, 0.0f, 0.0f);
} else if (neededPos.z <= currentZ && m_pVehicleAnim && vehAnim != ANIM_VAN_CLOSE_L && vehAnim != ANIM_VAN_CLOSE) {
- adjustedTimeStep = min(m_pVehicleAnim->timeStep, 0.1f);
+ adjustedTimeStep = Min(m_pVehicleAnim->timeStep, 0.1f);
// Smoothly change ped position
neededPos.z = currentZ - (currentZ - neededPos.z) / (m_pVehicleAnim->GetTimeLeft() / adjustedTimeStep);
@@ -1807,12 +1807,12 @@ CPed::LineUpPedWithCar(PedLineUpPhase phase)
if (m_pVehicleAnim &&
(vehAnim == ANIM_CAR_GETIN_RHS || vehAnim == ANIM_CAR_GETIN_LOW_RHS || vehAnim == ANIM_CAR_GETIN_LHS || vehAnim == ANIM_CAR_GETIN_LOW_LHS
|| vehAnim == ANIM_CAR_QJACK || vehAnim == ANIM_VAN_GETIN_L || vehAnim == ANIM_VAN_GETIN)) {
- adjustedTimeStep = min(m_pVehicleAnim->timeStep, 0.1f);
+ adjustedTimeStep = Min(m_pVehicleAnim->timeStep, 0.1f);
// Smoothly change ped position
neededPos.z = (neededPos.z - currentZ) / (m_pVehicleAnim->GetTimeLeft() / adjustedTimeStep) + currentZ;
} else if (m_nPedState == PED_ENTER_CAR || m_nPedState == PED_CARJACK) {
- neededPos.z = max(currentZ, autoZPos.z);
+ neededPos.z = Max(currentZ, autoZPos.z);
}
}
}
@@ -4622,7 +4622,7 @@ CPed::LoadFightData(void)
// Actually GetLocalDirectionTo(Turn/Look)
int
-CPed::GetLocalDirection(CVector2D const &posOffset)
+CPed::GetLocalDirection(const CVector2D &posOffset)
{
float direction;
@@ -4771,12 +4771,12 @@ CPed::FightStrike(CVector &touchedNodePos)
float moveMult;
if (m_lastFightMove == FIGHTMOVE_GROUNDKICK) {
- moveMult = min(damageMult * 0.6f, 4.0f);
+ moveMult = Min(damageMult * 0.6f, 4.0f);
} else {
if (nearPed->m_nPedState != PED_DIE || damageMult >= 20) {
moveMult = damageMult;
} else {
- moveMult = min(damageMult * 2.0f, 14.0f);
+ moveMult = Min(damageMult * 2.0f, 14.0f);
}
}
@@ -5434,7 +5434,7 @@ CPed::CreateDeadPedWeaponPickups(void)
pickupPos.z = CWorld::FindGroundZFor3DCoord(pickupPos.x, pickupPos.y, pickupPos.z, &found) + 0.5f;
}
if (found)
- CPickups::GenerateNewOne_WeaponType(pickupPos, weapon, PICKUP_ONCE_TIMEOUT, min(weaponAmmo, AmmoForWeapon_OnStreet[weapon]));
+ CPickups::GenerateNewOne_WeaponType(pickupPos, weapon, PICKUP_ONCE_TIMEOUT, Min(weaponAmmo, AmmoForWeapon_OnStreet[weapon]));
}
ClearWeapons();
}
@@ -5443,7 +5443,7 @@ void
CPed::SetAttackTimer(uint32 time)
{
if (CTimer::GetTimeInMilliseconds() > m_attackTimer)
- m_attackTimer = max(m_lastHitTime, CTimer::GetTimeInMilliseconds()) + time;
+ m_attackTimer = Max(m_lastHitTime, CTimer::GetTimeInMilliseconds()) + time;
}
void
diff --git a/src/peds/Ped.h b/src/peds/Ped.h
index ff581150..c1e93fdc 100644
--- a/src/peds/Ped.h
+++ b/src/peds/Ped.h
@@ -575,7 +575,7 @@ public:
void StartFightAttack(uint8);
void SetWaitState(eWaitState, void*);
bool FightStrike(CVector&);
- int GetLocalDirection(CVector2D const &);
+ int GetLocalDirection(const CVector2D &);
void StartFightDefend(uint8, uint8, uint8);
void PlayHitSound(CPed*);
void SetFall(int, AnimationId, uint8);
diff --git a/src/peds/PedPlacement.cpp b/src/peds/PedPlacement.cpp
index 8a40e56f..d7b7ec75 100644
--- a/src/peds/PedPlacement.cpp
+++ b/src/peds/PedPlacement.cpp
@@ -29,7 +29,7 @@ CPedPlacement::FindZCoorForPed(CVector* pos)
if (CWorld::ProcessVerticalLine(vec, startZ, foundCol, foundEnt, true, false, false, false, true, false, nil))
foundColZ2 = foundCol.point.z;
- zForPed = max(foundColZ, foundColZ2);
+ zForPed = Max(foundColZ, foundColZ2);
if (zForPed > -99.0f)
pos->z = 1.04f + zForPed;
diff --git a/src/render/Clouds.cpp b/src/render/Clouds.cpp
index 2884894c..a461301c 100644
--- a/src/render/Clouds.cpp
+++ b/src/render/Clouds.cpp
@@ -388,7 +388,7 @@ CClouds::RenderBackground(int16 topred, int16 topgreen, int16 topblue,
ms_colourBottom.b = topblue;
ms_colourBottom.a = alpha;
- botpos = min(SCREEN_HEIGHT, topedge);
+ botpos = Min(SCREEN_HEIGHT, topedge);
CSprite2d::DrawRect(CRect(0, 0, SCREEN_WIDTH, botpos),
ms_colourBottom, ms_colourBottom, ms_colourTop, ms_colourTop);
}
@@ -415,18 +415,18 @@ CClouds::RenderHorizon(void)
if(ms_horizonZ > SCREEN_HEIGHT)
return;
- float z1 = min(ms_horizonZ + SMALLSTRIPHEIGHT, SCREEN_HEIGHT);
+ float z1 = Min(ms_horizonZ + SMALLSTRIPHEIGHT, SCREEN_HEIGHT);
CSprite2d::DrawRectXLU(CRect(0, ms_horizonZ, SCREEN_WIDTH, z1),
ms_colourBottom, ms_colourBottom, ms_colourTop, ms_colourTop);
// This is just weird
float a = SCREEN_HEIGHT/400.0f * HORIZSTRIPHEIGHT +
- SCREEN_HEIGHT/300.0f * max(TheCamera.GetPosition().z, 0.0f);
+ SCREEN_HEIGHT/300.0f * Max(TheCamera.GetPosition().z, 0.0f);
float b = TheCamera.GetUp().z < 0.0f ?
SCREEN_HEIGHT :
SCREEN_HEIGHT * Abs(TheCamera.GetRight().z);
float z2 = z1 + (a + b)*TheCamera.LODDistMultiplier;
- z2 = min(z2, SCREEN_HEIGHT);
+ z2 = Min(z2, SCREEN_HEIGHT);
CSprite2d::DrawRect(CRect(0, z1, SCREEN_WIDTH, z2),
ms_colourBottom, ms_colourBottom, ms_colourTop, ms_colourTop);
}
diff --git a/src/render/Coronas.cpp b/src/render/Coronas.cpp
index 1a6cfea3..9881e764 100644
--- a/src/render/Coronas.cpp
+++ b/src/render/Coronas.cpp
@@ -109,7 +109,7 @@ CCoronas::Update(void)
int i;
static int LastCamLook = 0;
- LightsMult = min(LightsMult + 0.03f * CTimer::GetTimeStep(), 1.0f);
+ LightsMult = Min(LightsMult + 0.03f * CTimer::GetTimeStep(), 1.0f);
int CamLook = 0;
if(TheCamera.Cams[TheCamera.ActiveCam].LookingLeft) CamLook |= 1;
@@ -121,7 +121,7 @@ CCoronas::Update(void)
if(LastCamLook != CamLook)
bChangeBrightnessImmediately = 3;
else
- bChangeBrightnessImmediately = max(bChangeBrightnessImmediately-1, 0);
+ bChangeBrightnessImmediately = Max(bChangeBrightnessImmediately-1, 0);
LastCamLook = CamLook;
for(i = 0; i < NUMCORONAS; i++)
@@ -309,7 +309,7 @@ CCoronas::Render(void)
// render corona itself
if(aCoronas[i].texture){
- float fogscale = CWeather::Foggyness*min(spriteCoors.z, 40.0f)/40.0f + 1.0f;
+ float fogscale = CWeather::Foggyness*Min(spriteCoors.z, 40.0f)/40.0f + 1.0f;
if(CCoronas::aCoronas[i].id == SUN_CORE)
spriteCoors.z = 0.95f * RwCameraGetFarClipPlane(Scene.camera);
RwRenderStateSet(rwRENDERSTATETEXTURERASTER, RwTextureGetRaster(aCoronas[i].texture));
@@ -320,7 +320,7 @@ CCoronas::Render(void)
float f = 1.0f - aCoronas[i].someAngle*2.0f/PI;
float wscale = 6.0f*sq(sq(sq(f))) + 0.5f;
float hscale = 0.35f - (wscale - 0.5f) * 0.06f;
- hscale = max(hscale, 0.15f);
+ hscale = Max(hscale, 0.15f);
CSprite::RenderOneXLUSprite(spriteCoors.x, spriteCoors.y, spriteCoors.z,
spritew * aCoronas[i].size * wscale,
@@ -467,7 +467,7 @@ CCoronas::RenderReflections(void)
float spritew, spriteh;
if(CSprite::CalcScreenCoors(coors, spriteCoors, &spritew, &spriteh, true)){
float drawDist = 0.75f * aCoronas[i].drawDist;
- drawDist = min(drawDist, 50.0f);
+ drawDist = Min(drawDist, 50.0f);
if(spriteCoors.z < drawDist){
float fadeDistance = drawDist / 2.0f;
float distanceFade = spriteCoors.z < fadeDistance ? 1.0f : 1.0f - (spriteCoors.z - fadeDistance)/fadeDistance;
@@ -546,25 +546,25 @@ CRegisteredCorona::Update(void)
(CCoronas::SunBlockedByClouds && id == CCoronas::SUN_CORONA ||
!CWorld::GetIsLineOfSightClear(coors, TheCamera.GetPosition(), true, false, false, false, false, false))){
// Corona is blocked, fade out
- fadeAlpha = max(fadeAlpha - 15.0f*CTimer::GetTimeStep(), 0.0f);
+ fadeAlpha = Max(fadeAlpha - 15.0f*CTimer::GetTimeStep(), 0.0f);
}else if(offScreen){
// Same when off screen
- fadeAlpha = max(fadeAlpha - 15.0f*CTimer::GetTimeStep(), 0.0f);
+ fadeAlpha = Max(fadeAlpha - 15.0f*CTimer::GetTimeStep(), 0.0f);
}else{
// Visible
if(alpha > fadeAlpha){
// fade in
- fadeAlpha = min(fadeAlpha + 15.0f*CTimer::GetTimeStep(), alpha);
+ fadeAlpha = Min(fadeAlpha + 15.0f*CTimer::GetTimeStep(), alpha);
if(CCoronas::bChangeBrightnessImmediately)
fadeAlpha = alpha;
}else if(alpha < fadeAlpha){
// too visible, decrease alpha but not below alpha
- fadeAlpha = max(fadeAlpha - 15.0f*CTimer::GetTimeStep(), alpha);
+ fadeAlpha = Max(fadeAlpha - 15.0f*CTimer::GetTimeStep(), alpha);
}
// darken scene when the sun is visible
if(id == CCoronas::SUN_CORONA)
- CCoronas::LightsMult = max(CCoronas::LightsMult - CTimer::GetTimeStep()*0.06f, 0.6f);
+ CCoronas::LightsMult = Max(CCoronas::LightsMult - CTimer::GetTimeStep()*0.06f, 0.6f);
}
// remove if invisible
diff --git a/src/render/Fluff.cpp b/src/render/Fluff.cpp
index 7c35319f..fc68d315 100644
--- a/src/render/Fluff.cpp
+++ b/src/render/Fluff.cpp
@@ -10,7 +10,7 @@
#include "Clock.h"
#include "Weather.h"
#include "Stats.h"
-#include "math/maths.h"
+#include "maths.h"
#include "Frontend.h"
uint8 ScrollCharSet[59][5] = {
diff --git a/src/render/Fluff.h b/src/render/Fluff.h
index f33b016e..b189b9a2 100644
--- a/src/render/Fluff.h
+++ b/src/render/Fluff.h
@@ -1,6 +1,6 @@
#pragma once
#include "common.h"
-#include "math/Vector.h"
+#include "Vector.h"
class CMovingThings
{
diff --git a/src/render/Hud.cpp b/src/render/Hud.cpp
index 1db7b07c..2dae7551 100644
--- a/src/render/Hud.cpp
+++ b/src/render/Hud.cpp
@@ -1128,7 +1128,7 @@ void CHud::DrawAfterFade()
switch (OddJob2On) {
case 0:
OddJob2On = 1;
- OddJob2XOffset = 380.0;
+ OddJob2XOffset = 380.0f;
break;
case 1:
if (OddJob2XOffset <= 2.0f) {
@@ -1136,27 +1136,27 @@ void CHud::DrawAfterFade()
OddJob2On = 2;
}
else {
- fStep = 40.0;
- if ((OddJob2XOffset * 0.16667) <= 40.0)
- fStep = OddJob2XOffset * 0.16667;
+ fStep = 40.0f;
+ if ((OddJob2XOffset * 0.16667f) <= 40.0f)
+ fStep = OddJob2XOffset * 0.16667f;
OddJob2XOffset = OddJob2XOffset - fStep;
}
break;
case 2:
- OddJob2Timer += (20.0 * CTimer::GetTimeStep());
+ OddJob2Timer += (20.0f * CTimer::GetTimeStep());
if (OddJob2Timer > 1500) {
OddJob2On = 3;
}
break;
case 3:
- fStep = 30.0;
- if ((OddJob2XOffset * 0.2) >= 30.0)
- fStep = OddJob2XOffset * 0.2;
+ fStep = 30.0f;
+ if ((OddJob2XOffset * 0.2f) >= 30.0f)
+ fStep = OddJob2XOffset * 0.2f;
OddJob2XOffset = OddJob2XOffset - fStep;
- if (OddJob2XOffset < -380.0) {
- OddJob2OffTimer = 5000.0;
+ if (OddJob2XOffset < -380.0f) {
+ OddJob2OffTimer = 5000.0f;
OddJob2On = 0;
}
break;
diff --git a/src/render/Lights.cpp b/src/render/Lights.cpp
index cd83a898..85d7ba13 100644
--- a/src/render/Lights.cpp
+++ b/src/render/Lights.cpp
@@ -37,9 +37,9 @@ SetLightsWithTimeOfDayColour(RpWorld *)
AmbientLightColourForFrame.green = 1.0f;
AmbientLightColourForFrame.blue = 1.0f;
}
- AmbientLightColourForFrame_PedsCarsAndObjects.red = min(1.0f, AmbientLightColourForFrame.red*1.3f);
- AmbientLightColourForFrame_PedsCarsAndObjects.green = min(1.0f, AmbientLightColourForFrame.green*1.3f);
- AmbientLightColourForFrame_PedsCarsAndObjects.blue = min(1.0f, AmbientLightColourForFrame.blue*1.3f);
+ AmbientLightColourForFrame_PedsCarsAndObjects.red = Min(1.0f, AmbientLightColourForFrame.red*1.3f);
+ AmbientLightColourForFrame_PedsCarsAndObjects.green = Min(1.0f, AmbientLightColourForFrame.green*1.3f);
+ AmbientLightColourForFrame_PedsCarsAndObjects.blue = Min(1.0f, AmbientLightColourForFrame.blue*1.3f);
RpLightSetColor(pAmbient, &AmbientLightColourForFrame);
}
@@ -70,16 +70,16 @@ SetLightsWithTimeOfDayColour(RpWorld *)
float f1 = 2.0f * (CMenuManager::m_PrefsBrightness/256.0f - 1.0f) * 0.6f + 1.0f;
float f2 = 3.0f * (CMenuManager::m_PrefsBrightness/256.0f - 1.0f) * 0.6f + 1.0f;
- AmbientLightColourForFrame.red = min(1.0f, AmbientLightColourForFrame.red * f2);
- AmbientLightColourForFrame.green = min(1.0f, AmbientLightColourForFrame.green * f2);
- AmbientLightColourForFrame.blue = min(1.0f, AmbientLightColourForFrame.blue * f2);
- AmbientLightColourForFrame_PedsCarsAndObjects.red = min(1.0f, AmbientLightColourForFrame_PedsCarsAndObjects.red * f1);
- AmbientLightColourForFrame_PedsCarsAndObjects.green = min(1.0f, AmbientLightColourForFrame_PedsCarsAndObjects.green * f1);
- AmbientLightColourForFrame_PedsCarsAndObjects.blue = min(1.0f, AmbientLightColourForFrame_PedsCarsAndObjects.blue * f1);
+ AmbientLightColourForFrame.red = Min(1.0f, AmbientLightColourForFrame.red * f2);
+ AmbientLightColourForFrame.green = Min(1.0f, AmbientLightColourForFrame.green * f2);
+ AmbientLightColourForFrame.blue = Min(1.0f, AmbientLightColourForFrame.blue * f2);
+ AmbientLightColourForFrame_PedsCarsAndObjects.red = Min(1.0f, AmbientLightColourForFrame_PedsCarsAndObjects.red * f1);
+ AmbientLightColourForFrame_PedsCarsAndObjects.green = Min(1.0f, AmbientLightColourForFrame_PedsCarsAndObjects.green * f1);
+ AmbientLightColourForFrame_PedsCarsAndObjects.blue = Min(1.0f, AmbientLightColourForFrame_PedsCarsAndObjects.blue * f1);
#ifdef FIX_BUGS
- DirectionalLightColourForFrame.red = min(1.0f, DirectionalLightColourForFrame.red * f1);
- DirectionalLightColourForFrame.green = min(1.0f, DirectionalLightColourForFrame.green * f1);
- DirectionalLightColourForFrame.blue = min(1.0f, DirectionalLightColourForFrame.blue * f1);
+ DirectionalLightColourForFrame.red = Min(1.0f, DirectionalLightColourForFrame.red * f1);
+ DirectionalLightColourForFrame.green = Min(1.0f, DirectionalLightColourForFrame.green * f1);
+ DirectionalLightColourForFrame.blue = Min(1.0f, DirectionalLightColourForFrame.blue * f1);
#else
DirectionalLightColourForFrame.red = min(1.0f, AmbientLightColourForFrame.red * f1);
DirectionalLightColourForFrame.green = min(1.0f, AmbientLightColourForFrame.green * f1);
@@ -193,7 +193,7 @@ AddAnExtraDirectionalLight(RpWorld *world, float dirx, float diry, float dirz, f
RwRGBAReal color;
RwV3d *dir;
- strength = max(max(red, green), blue);
+ strength = Max(Max(red, green), blue);
n = -1;
if(NumExtraDirLightsInWorld < NUMEXTRADIRECTIONALS)
n = NumExtraDirLightsInWorld;
@@ -221,7 +221,7 @@ AddAnExtraDirectionalLight(RpWorld *world, float dirx, float diry, float dirz, f
RwFrameUpdateObjects(RpLightGetFrame(pExtraDirectionals[n]));
RpLightSetFlags(pExtraDirectionals[n], rpLIGHTLIGHTATOMICS);
LightStrengths[n] = strength;
- NumExtraDirLightsInWorld = min(NumExtraDirLightsInWorld+1, NUMEXTRADIRECTIONALS);
+ NumExtraDirLightsInWorld = Min(NumExtraDirLightsInWorld+1, NUMEXTRADIRECTIONALS);
}
void
diff --git a/src/render/ParticleMgr.cpp b/src/render/ParticleMgr.cpp
index 7a1804de..9381787c 100644
--- a/src/render/ParticleMgr.cpp
+++ b/src/render/ParticleMgr.cpp
@@ -91,7 +91,7 @@ void cParticleSystemMgr::LoadParticleData()
break;
case CFG_PARAM_INITIAL_COLOR_VARIATION:
- entry->m_InitialColorVariation = min(atoi(value), 100);
+ entry->m_InitialColorVariation = Min(atoi(value), 100);
break;
case CFG_PARAM_FADE_DESTINATION_COLOR_R:
diff --git a/src/render/PointLights.cpp b/src/render/PointLights.cpp
index a015ec54..8e942ce6 100644
--- a/src/render/PointLights.cpp
+++ b/src/render/PointLights.cpp
@@ -98,7 +98,7 @@ CPointLights::GenerateLightsAffectingObject(CVector *objCoors)
if(aLights[i].type == LIGHT_DIRECTIONAL){
float dot = -DotProduct(dir, aLights[i].dir);
- intensity *= max((dot-0.5f)*2.0f, 0.0f);
+ intensity *= Max((dot-0.5f)*2.0f, 0.0f);
}
if(intensity > 0.0f)
diff --git a/src/render/Shadows.cpp b/src/render/Shadows.cpp
index 4d2e4605..b5147f02 100644
--- a/src/render/Shadows.cpp
+++ b/src/render/Shadows.cpp
@@ -727,10 +727,10 @@ CShadows::RenderStoredShadows(void)
float fStartY = shadowPos.y - fHeight;
float fEndY = shadowPos.y + fHeight;
- int32 nStartX = max(CWorld::GetSectorIndexX(fStartX), 0);
- int32 nStartY = max(CWorld::GetSectorIndexY(fStartY), 0);
- int32 nEndX = min(CWorld::GetSectorIndexX(fEndX), NUMSECTORS_X-1);
- int32 nEndY = min(CWorld::GetSectorIndexY(fEndY), NUMSECTORS_Y-1);
+ int32 nStartX = Max(CWorld::GetSectorIndexX(fStartX), 0);
+ int32 nStartY = Max(CWorld::GetSectorIndexY(fStartY), 0);
+ int32 nEndX = Min(CWorld::GetSectorIndexX(fEndX), NUMSECTORS_X-1);
+ int32 nEndY = Min(CWorld::GetSectorIndexY(fEndY), NUMSECTORS_Y-1);
CWorld::AdvanceCurrentScanCode();
@@ -873,10 +873,10 @@ CShadows::GeneratePolysForStaticShadow(int16 nStaticShadowID)
float fStartY = shadowPos.y - fHeight;
float fEndY = shadowPos.y + fHeight;
- int32 nStartX = max(CWorld::GetSectorIndexX(fStartX), 0);
- int32 nStartY = max(CWorld::GetSectorIndexY(fStartY), 0);
- int32 nEndX = min(CWorld::GetSectorIndexX(fEndX), NUMSECTORS_X-1);
- int32 nEndY = min(CWorld::GetSectorIndexY(fEndY), NUMSECTORS_Y-1);
+ int32 nStartX = Max(CWorld::GetSectorIndexX(fStartX), 0);
+ int32 nStartY = Max(CWorld::GetSectorIndexY(fStartY), 0);
+ int32 nEndX = Min(CWorld::GetSectorIndexX(fEndX), NUMSECTORS_X-1);
+ int32 nEndY = Min(CWorld::GetSectorIndexY(fEndY), NUMSECTORS_Y-1);
CWorld::AdvanceCurrentScanCode();
@@ -1016,11 +1016,11 @@ CShadows::CastShadowEntity(CEntity *pEntity, float fStartX, float fStartY, floa
Points[3].x = (fLengthRight - fFrontRight) - fSideRight;
Points[3].y = (fLengthForward - fFrontForward) - fSideForward;
- float MinX = min(min(Points[0].x, Points[1].x), min(Points[2].x, Points[3].x));
- float MaxX = max(max(Points[0].x, Points[1].x), max(Points[2].x, Points[3].x));
+ float MinX = Min(Min(Points[0].x, Points[1].x), Min(Points[2].x, Points[3].x));
+ float MaxX = Max(Max(Points[0].x, Points[1].x), Max(Points[2].x, Points[3].x));
- float MinY = min(min(Points[0].y, Points[1].y), min(Points[2].y, Points[3].y));
- float MaxY = max(max(Points[0].y, Points[1].y), max(Points[2].y, Points[3].y));
+ float MinY = Min(Min(Points[0].y, Points[1].y), Min(Points[2].y, Points[3].y));
+ float MaxY = Max(Max(Points[0].y, Points[1].y), Max(Points[2].y, Points[3].y));
float MaxZ = pPosn->z - pEntity->GetPosition().z;
float MinZ = MaxZ - fZDistance;
@@ -1767,7 +1767,7 @@ CShadows::RenderIndicatorShadow(uint32 nID, uint8 ShadowType, RwTexture *pTextur
{
ASSERT(pPosn != NULL);
- C3dMarkers::PlaceMarkerSet(nID, _TODOCONST(4), *pPosn, max(fFrontX, -fSideY),
+ C3dMarkers::PlaceMarkerSet(nID, _TODOCONST(4), *pPosn, Max(fFrontX, -fSideY),
0, 128, 255, 128,
2048, 0.2f, 0);
}
diff --git a/src/render/Timecycle.cpp b/src/render/Timecycle.cpp
index 7ab3e91e..0113c001 100644
--- a/src/render/Timecycle.cpp
+++ b/src/render/Timecycle.cpp
@@ -290,7 +290,7 @@ CTimeCycle::Update(void)
TheCamera.SetMotionBlur(m_fCurrentBlurRed, m_fCurrentBlurGreen, m_fCurrentBlurBlue, m_fCurrentBlurAlpha, MBLUR_NORMAL);
if(m_FogReduction != 0)
- m_fCurrentFarClip = max(m_fCurrentFarClip, m_FogReduction/64.0f * 650.0f);
+ m_fCurrentFarClip = Max(m_fCurrentFarClip, m_FogReduction/64.0f * 650.0f);
m_nCurrentFogColourRed = (m_nCurrentSkyTopRed + 2*m_nCurrentSkyBottomRed) / 3;
m_nCurrentFogColourGreen = (m_nCurrentSkyTopGreen + 2*m_nCurrentSkyBottomGreen) / 3;
m_nCurrentFogColourBlue = (m_nCurrentSkyTopBlue + 2*m_nCurrentSkyBottomBlue) / 3;
@@ -311,9 +311,9 @@ CTimeCycle::Update(void)
if(TheCamera.GetForward().z < -0.9f ||
!CWeather::bScriptsForceRain && (CCullZones::PlayerNoRain() || CCullZones::CamNoRain() || CCutsceneMgr::IsRunning()))
- m_FogReduction = min(m_FogReduction+1, 64);
+ m_FogReduction = Min(m_FogReduction+1, 64);
else
- m_FogReduction = max(m_FogReduction-1, 0);
+ m_FogReduction = Max(m_FogReduction-1, 0);
}
STARTPATCHES
diff --git a/src/render/VisibilityPlugins.cpp b/src/render/VisibilityPlugins.cpp
index ca3a0195..2107813b 100644
--- a/src/render/VisibilityPlugins.cpp
+++ b/src/render/VisibilityPlugins.cpp
@@ -103,14 +103,14 @@ CVisibilityPlugins::SetRenderWareCamera(RwCamera *camera)
else
ms_cullCompsDist = sq(TheCamera.LODDistMultiplier * 20.0f);
- ms_vehicleLod0Dist = sq(70.0 * TheCamera.GenerationDistMultiplier);
- ms_vehicleLod1Dist = sq(90.0 * TheCamera.GenerationDistMultiplier);
- ms_vehicleFadeDist = sq(100.0 * TheCamera.GenerationDistMultiplier);
- ms_bigVehicleLod0Dist = sq(60.0 * TheCamera.GenerationDistMultiplier);
- ms_bigVehicleLod1Dist = sq(150.0 * TheCamera.GenerationDistMultiplier);
- ms_pedLod0Dist = sq(25.0 * TheCamera.LODDistMultiplier);
- ms_pedLod1Dist = sq(60.0 * TheCamera.LODDistMultiplier);
- ms_pedFadeDist = sq(70.0 * TheCamera.LODDistMultiplier);
+ ms_vehicleLod0Dist = sq(70.0f * TheCamera.GenerationDistMultiplier);
+ ms_vehicleLod1Dist = sq(90.0f * TheCamera.GenerationDistMultiplier);
+ ms_vehicleFadeDist = sq(100.0f * TheCamera.GenerationDistMultiplier);
+ ms_bigVehicleLod0Dist = sq(60.0f * TheCamera.GenerationDistMultiplier);
+ ms_bigVehicleLod1Dist = sq(150.0f * TheCamera.GenerationDistMultiplier);
+ ms_pedLod0Dist = sq(25.0f * TheCamera.LODDistMultiplier);
+ ms_pedLod1Dist = sq(60.0f * TheCamera.LODDistMultiplier);
+ ms_pedFadeDist = sq(70.0f * TheCamera.LODDistMultiplier);
}
RpMaterial*
diff --git a/src/render/WaterLevel.cpp b/src/render/WaterLevel.cpp
index a1c2af93..c711c8c8 100644
--- a/src/render/WaterLevel.cpp
+++ b/src/render/WaterLevel.cpp
@@ -979,7 +979,7 @@ CWaterLevel::RenderOneWavySector(float fX, float fY, float fZ, RwRGBA const &col
SMALL_SECTOR_SIZE / 2,
apBoatList) )
{
- float fWakeColor = fAdd1 - max(255.0f - float(color.blue + color.red + color.green) / 3, fAdd2);
+ float fWakeColor = fAdd1 - Max(255.0f - float(color.blue + color.red + color.green) / 3, fAdd2);
RpGeometry *wavyGeometry = RpAtomicGetGeometry(ms_pWavyAtomic);
RpGeometry *geom = apGeomArray[nGeomUsed++];
@@ -1035,9 +1035,9 @@ CWaterLevel::RenderOneWavySector(float fX, float fY, float fZ, RwRGBA const &col
RwRGBAAssign(&wakeColor, &color);
- wakeColor.red = min(color.red + int32(fWakeColor * fRedMult * fDistMult), 255);
- wakeColor.green = min(color.green + int32(fWakeColor * fGreenMult * fDistMult), 255);
- wakeColor.blue = min(color.blue + int32(fWakeColor * fBlueMult * fDistMult), 255);
+ wakeColor.red = Min(color.red + int32(fWakeColor * fRedMult * fDistMult), 255);
+ wakeColor.green = Min(color.green + int32(fWakeColor * fGreenMult * fDistMult), 255);
+ wakeColor.blue = Min(color.blue + int32(fWakeColor * fBlueMult * fDistMult), 255);
RwRGBAAssign(&geomPreLights[9*i+j], &wakeColor);
@@ -1114,7 +1114,7 @@ CWaterLevel::CalcDistanceToWater(float fX, float fY)
fSectorY + SMALL_SECTOR_SIZE - fY
);
- fDistSqr = min(vecDist.MagnitudeSqr(), fDistSqr);
+ fDistSqr = Min(vecDist.MagnitudeSqr(), fDistSqr);
}
}
}
diff --git a/src/skel/win/win.cpp b/src/skel/win/win.cpp
index d4eb71be..fc82e51e 100644
--- a/src/skel/win/win.cpp
+++ b/src/skel/win/win.cpp
@@ -1661,7 +1661,7 @@ void CenterVideo(void)
/*
*****************************************************************************
*/
-void PlayMovieInWindow(int cmdShow, LPTSTR szFile)
+void PlayMovieInWindow(int cmdShow, const char* szFile)
{
WCHAR wFileName[256];
HRESULT hr;
diff --git a/src/vehicles/Automobile.cpp b/src/vehicles/Automobile.cpp
index 18c74478..99354d70 100644
--- a/src/vehicles/Automobile.cpp
+++ b/src/vehicles/Automobile.cpp
@@ -316,7 +316,7 @@ CAutomobile::ProcessControl(void)
// Set Center of Mass to make car more stable
if(strongGrip1 || bCheat3)
- m_vecCentreOfMass.z = 0.3f*m_aSuspensionSpringLength[0] + -1.0*m_fHeightAboveRoad;
+ m_vecCentreOfMass.z = 0.3f*m_aSuspensionSpringLength[0] + -1.0f*m_fHeightAboveRoad;
else if(pHandling->Flags & HANDLING_NONPLAYER_STABILISER && m_status == STATUS_PHYSICS)
m_vecCentreOfMass.z = pHandling->CentreOfMass.z - 0.2f*pHandling->Dimension.z;
else
@@ -691,7 +691,7 @@ CAutomobile::ProcessControl(void)
if(m_aSuspensionSpringRatio[i] < 1.0f)
m_aWheelTimer[i] = 4.0f;
else
- m_aWheelTimer[i] = max(m_aWheelTimer[i]-CTimer::GetTimeStep(), 0.0f);
+ m_aWheelTimer[i] = Max(m_aWheelTimer[i]-CTimer::GetTimeStep(), 0.0f);
if(m_aWheelTimer[i] > 0.0f){
m_nWheelsOnGround++;
@@ -1009,7 +1009,7 @@ CAutomobile::ProcessControl(void)
if(m_status != STATUS_PLAYER && m_status != STATUS_PLAYER_REMOTE && m_status != STATUS_PHYSICS){
if(GetModelIndex() == MI_MIAMI_RCRAIDER || GetModelIndex() == MI_MIAMI_SPARROW)
- m_aWheelSpeed[0] = max(m_aWheelSpeed[0]-0.0005f, 0.0f);
+ m_aWheelSpeed[0] = Max(m_aWheelSpeed[0]-0.0005f, 0.0f);
}else if((GetModelIndex() == MI_DODO || CVehicle::bAllDodosCheat) &&
m_vecMoveSpeed.Magnitude() > 0.0f && CTimer::GetTimeStep() > 0.0f){
FlyingControl(FLIGHT_MODEL_DODO);
@@ -1017,7 +1017,7 @@ CAutomobile::ProcessControl(void)
FlyingControl(FLIGHT_MODEL_HELI);
}else if(GetModelIndex() == MI_MIAMI_RCRAIDER || GetModelIndex() == MI_MIAMI_SPARROW || bAllCarCheat){
if(CPad::GetPad(0)->GetCircleJustDown())
- m_aWheelSpeed[0] = max(m_aWheelSpeed[0]-0.03f, 0.0f);
+ m_aWheelSpeed[0] = Max(m_aWheelSpeed[0]-0.03f, 0.0f);
if(m_aWheelSpeed[0] < 0.22f)
m_aWheelSpeed[0] += 0.0001f;
if(m_aWheelSpeed[0] > 0.15f)
@@ -1129,10 +1129,10 @@ CAutomobile::ProcessControl(void)
if(speed > sq(0.1f)){
speed = Sqrt(speed);
if(suspShake > 0.0f){
- uint8 freq = min(200.0f*suspShake*speed*2000.0f/m_fMass + 100.0f, 250.0f);
+ uint8 freq = Min(200.0f*suspShake*speed*2000.0f/m_fMass + 100.0f, 250.0f);
CPad::GetPad(0)->StartShake(20000.0f*CTimer::GetTimeStep()/freq, freq);
}else{
- uint8 freq = min(200.0f*surfShake*speed*2000.0f/m_fMass + 40.0f, 145.0f);
+ uint8 freq = Min(200.0f*surfShake*speed*2000.0f/m_fMass + 40.0f, 145.0f);
CPad::GetPad(0)->StartShake(5000.0f*CTimer::GetTimeStep()/freq, freq);
}
}
@@ -1591,10 +1591,11 @@ CAutomobile::PreRender(void)
break;
}
- if(GetModelIndex() == MI_RCBANDIT ||
- GetModelIndex() == MI_DODO ||
- GetModelIndex() == MI_RHINO)
- goto nolights;
+ if(GetModelIndex() == MI_RCBANDIT || GetModelIndex() == MI_DODO ||
+ GetModelIndex() == MI_RHINO) {
+ CShadows::StoreShadowForCar(this);
+ return;
+ }
// Turn lights on/off
bool shouldLightsBeOn =
@@ -1739,7 +1740,7 @@ CAutomobile::PreRender(void)
// Taillight coronas
if(behindness > 0.0f){
// Behind car
- float intensity = 0.4f*behindness + 0.4;
+ float intensity = 0.4f*behindness + 0.4f;
float size = (behindness + 1.0f)/2.0f;
if(m_fGasPedal < 0.0f){
@@ -1757,7 +1758,7 @@ CAutomobile::PreRender(void)
CCoronas::TYPE_STREAK, CCoronas::FLARE_NONE, CCoronas::REFLECTION_ON,
CCoronas::LOSCHECK_OFF, CCoronas::STREAK_ON, angle);
}else{
- if(m_fBrakePedal > 0.0){
+ if(m_fBrakePedal > 0.0f){
intensity += 0.4f;
size += 0.3f;
}
@@ -1843,8 +1844,10 @@ CAutomobile::PreRender(void)
}else{
// Lights off
- if(m_status == STATUS_ABANDONED || m_status == STATUS_WRECKED)
- goto nolights;
+ if(m_status == STATUS_ABANDONED || m_status == STATUS_WRECKED) {
+ CShadows::StoreShadowForCar(this);
+ return;
+ }
CVector lightPos = mi->m_positions[CAR_POS_TAILLIGHTS];
CVector lightR = GetMatrix() * lightPos;
@@ -1903,7 +1906,6 @@ CAutomobile::PreRender(void)
}
}
-nolights:
CShadows::StoreShadowForCar(this);
}
@@ -2586,7 +2588,7 @@ CAutomobile::HydraulicControl(void)
float minz = pos.z + extendedLowerLimit - wheelRadius;
if(minz < specialColModel->boundingBox.min.z)
specialColModel->boundingBox.min.z = minz;
- float radius = max(specialColModel->boundingBox.min.Magnitude(), specialColModel->boundingBox.max.Magnitude());
+ float radius = Max(specialColModel->boundingBox.min.Magnitude(), specialColModel->boundingBox.max.Magnitude());
if(specialColModel->boundingSphere.radius < radius)
specialColModel->boundingSphere.radius = radius;
@@ -2685,10 +2687,10 @@ CAutomobile::HydraulicControl(void)
float front = -rear;
float right = CPad::GetPad(0)->GetCarGunLeftRight()/128.0f;
float left = -right;
- suspChange[CARWHEEL_FRONT_LEFT] = max(front+left, 0.0f);
- suspChange[CARWHEEL_REAR_LEFT] = max(rear+left, 0.0f);
- suspChange[CARWHEEL_FRONT_RIGHT] = max(front+right, 0.0f);
- suspChange[CARWHEEL_REAR_RIGHT] = max(rear+right, 0.0f);
+ suspChange[CARWHEEL_FRONT_LEFT] = Max(front+left, 0.0f);
+ suspChange[CARWHEEL_REAR_LEFT] = Max(rear+left, 0.0f);
+ suspChange[CARWHEEL_FRONT_RIGHT] = Max(front+right, 0.0f);
+ suspChange[CARWHEEL_REAR_RIGHT] = Max(rear+right, 0.0f);
if(m_hydraulicState < 100){
// Lowered, move wheels up
@@ -2804,7 +2806,7 @@ CAutomobile::ProcessBuoyancy(void)
ApplyTurnForce(impulse, point);
CVector initialSpeed = m_vecMoveSpeed;
- float timeStep = max(CTimer::GetTimeStep(), 0.01f);
+ float timeStep = Max(CTimer::GetTimeStep(), 0.01f);
float impulseRatio = impulse.z / (GRAVITY * m_fMass * timeStep);
float waterResistance = Pow(1.0f - 0.05f*impulseRatio, CTimer::GetTimeStep());
m_vecMoveSpeed *= waterResistance;
@@ -2877,7 +2879,7 @@ CAutomobile::ProcessBuoyancy(void)
static RwRGBA black;
if(pos.z >= 0.0f){
nGenerateRaindrops = 0;
- pos.z += 0.5;
+ pos.z += 0.5f;
CParticleObject::AddObject(POBJECT_SPLASHES_AROUND,
pos, CVector(0.0f, 0.0f, 0.0f), 6.5f, 2500, black, true);
}
@@ -2897,7 +2899,7 @@ CAutomobile::ProcessBuoyancy(void)
float fSpeed = vSpeed.MagnitudeSqr();
if(fSpeed > sq(0.05f)){
fSpeed = Sqrt(fSpeed);
- float size = min((fSpeed < 0.15f ? 0.25f : 0.75f)*fSpeed, 0.6f);
+ float size = Min((fSpeed < 0.15f ? 0.25f : 0.75f)*fSpeed, 0.6f);
CVector right = 0.2f*fSpeed*GetRight() + 0.2f*vSpeed;
CParticle::AddParticle(PARTICLE_PED_SPLASH,
@@ -2979,11 +2981,11 @@ CAutomobile::DoDriveByShootings(void)
// TODO: what is this?
if(!lookingLeft && m_weaponDoorTimerLeft > 0.0f){
- m_weaponDoorTimerLeft = max(m_weaponDoorTimerLeft - CTimer::GetTimeStep()*0.1f, 0.0f);
+ m_weaponDoorTimerLeft = Max(m_weaponDoorTimerLeft - CTimer::GetTimeStep()*0.1f, 0.0f);
ProcessOpenDoor(CAR_DOOR_LF, NUM_ANIMS, m_weaponDoorTimerLeft);
}
if(!lookingRight && m_weaponDoorTimerRight > 0.0f){
- m_weaponDoorTimerRight = max(m_weaponDoorTimerRight - CTimer::GetTimeStep()*0.1f, 0.0f);
+ m_weaponDoorTimerRight = Max(m_weaponDoorTimerRight - CTimer::GetTimeStep()*0.1f, 0.0f);
ProcessOpenDoor(CAR_DOOR_RF, NUM_ANIMS, m_weaponDoorTimerRight);
}
}
@@ -3131,7 +3133,7 @@ CAutomobile::VehicleDamage(float impulse, uint16 damagedPiece)
FindPlayerPed()->SetWantedLevelNoDrop(1);
if(m_status == STATUS_PLAYER && impulse > 50.0f){
- uint8 freq = min(0.4f*impulse*2000.0f/m_fMass + 100.0f, 250.0f);
+ uint8 freq = Min(0.4f*impulse*2000.0f/m_fMass + 100.0f, 250.0f);
CPad::GetPad(0)->StartShake(40000/freq, freq);
}
@@ -3284,7 +3286,7 @@ CAutomobile::VehicleDamage(float impulse, uint16 damagedPiece)
if(m_pDamageEntity && m_pDamageEntity == FindPlayerVehicle() && impulse > 10.0f){
int money = (doubleMoney ? 2 : 1) * impulse*pHandling->nMonetaryValue/1000000.0f;
- money = min(money, 40);
+ money = Min(money, 40);
if(money > 2){
sprintf(gString, "$%d", money);
CWorld::Players[CWorld::PlayerInFocus].m_nMoney += money;
@@ -3987,7 +3989,7 @@ CAutomobile::SetupSuspensionLines(void)
// adjust col model to include suspension lines
if(colModel->boundingBox.min.z > colModel->lines[0].p1.z)
colModel->boundingBox.min.z = colModel->lines[0].p1.z;
- float radius = max(colModel->boundingBox.min.Magnitude(), colModel->boundingBox.max.Magnitude());
+ float radius = Max(colModel->boundingBox.min.Magnitude(), colModel->boundingBox.max.Magnitude());
if(colModel->boundingSphere.radius < radius)
colModel->boundingSphere.radius = radius;
diff --git a/src/vehicles/Boat.cpp b/src/vehicles/Boat.cpp
index f614b78f..2b5ff567 100644
--- a/src/vehicles/Boat.cpp
+++ b/src/vehicles/Boat.cpp
@@ -61,7 +61,7 @@ float CBoat::IsVertexAffectedByWake(CVector vecVertex, CBoat *pBoat)
float fDist = vecDist.MagnitudeSqr();
if ( fDist < SQR(fMaxDist) )
- return 1.0f - min(fRangeMult * Sqrt(fDist / SQR(fMaxDist)) + (WAKE_LIFETIME - pBoat->m_afWakePointLifeTime[i]) * fTimeMult, 1.0f);
+ return 1.0f - Min(fRangeMult * Sqrt(fDist / SQR(fMaxDist)) + (WAKE_LIFETIME - pBoat->m_afWakePointLifeTime[i]) * fTimeMult, 1.0f);
}
return 0.0f;
diff --git a/src/vehicles/HandlingMgr.cpp b/src/vehicles/HandlingMgr.cpp
index be96ab08..0f16401e 100644
--- a/src/vehicles/HandlingMgr.cpp
+++ b/src/vehicles/HandlingMgr.cpp
@@ -6,9 +6,9 @@
cHandlingDataMgr &mod_HandlingManager = *(cHandlingDataMgr*)0x728060;
-char *HandlingFilename = "HANDLING.CFG";
+const char *HandlingFilename = "HANDLING.CFG";
-char VehicleNames[NUMHANDLINGS][14] = {
+const char VehicleNames[NUMHANDLINGS][14] = {
"LANDSTAL",
"IDAHO",
"STINGER",
@@ -199,7 +199,7 @@ cHandlingDataMgr::ConvertDataToGameUnits(tHandlingData *handling)
if(handling->fTurnMass < 10.0f)
handling->fTurnMass *= 5.0f;
handling->fInvMass = 1.0f/handling->fMass;
- handling->fBuoyancy = 100.0f/handling->nPercentSubmerged * 0.008*handling->fMass;
+ handling->fBuoyancy = 100.0f/handling->nPercentSubmerged * 0.008f*handling->fMass;
// What the hell is going on here?
specificVolume = handling->Dimension.x*handling->Dimension.z*0.5f / handling->fMass; // ?
@@ -207,7 +207,7 @@ cHandlingDataMgr::ConvertDataToGameUnits(tHandlingData *handling)
b = 100.0f;
velocity = handling->Transmission.fMaxVelocity;
while(a < b && velocity > 0.0f){
- velocity -= 0.01;
+ velocity -= 0.01f;
a = handling->Transmission.fEngineAcceleration/6.0f;
b = -velocity * (1.0f/(specificVolume * sq(velocity) + 1.0f) - 1.0f);
}
diff --git a/src/vehicles/Heli.cpp b/src/vehicles/Heli.cpp
index 9b1a651d..39fc7ec4 100644
--- a/src/vehicles/Heli.cpp
+++ b/src/vehicles/Heli.cpp
@@ -14,7 +14,7 @@
#include "Shadows.h"
#include "Coronas.h"
#include "Explosion.h"
-#include "TimeCycle.h"
+#include "Timecycle.h"
#include "TempColModels.h"
#include "World.h"
#include "WaterLevel.h"
@@ -223,19 +223,19 @@ CHeli::ProcessControl(void)
switch(m_heliStatus){
case HELI_STATUS_HOVER:
groundZ = CWorld::FindGroundZFor3DCoord(GetPosition().x, GetPosition().y, 1000.0f, nil);
- m_fTargetZ = max(groundZ, m_fTargetZ) + 8.0f;
+ m_fTargetZ = Max(groundZ, m_fTargetZ) + 8.0f;
break;
case HELI_STATUS_SHOT_DOWN:
groundZ = CWorld::FindGroundZFor3DCoord(GetPosition().x, GetPosition().y, 1000.0f, nil);
- m_fTargetZ = max(groundZ, m_fTargetZ) + 8.0f + m_fTargetOffset;
+ m_fTargetZ = Max(groundZ, m_fTargetZ) + 8.0f + m_fTargetOffset;
break;
case HELI_STATUS_HOVER2:
groundZ = CWorld::FindGroundZFor3DCoord(GetPosition().x, GetPosition().y, 1000.0f, nil);
- m_fTargetZ = max(groundZ, m_fTargetZ) + 8.0f + m_fTargetOffset;
+ m_fTargetZ = Max(groundZ, m_fTargetZ) + 8.0f + m_fTargetOffset;
break;
default:
groundZ = CWorld::FindGroundZFor3DCoord(GetPosition().x, GetPosition().y, 1000.0f, nil);
- m_fTargetZ = max(groundZ, m_fTargetZ) + 12.0f;
+ m_fTargetZ = Max(groundZ, m_fTargetZ) + 12.0f;
break;
}
@@ -994,7 +994,7 @@ CHeli::TestBulletCollision(CVector *line0, CVector *line1, CVector *bulletPos, i
float distToHeli = (pHelis[i]->GetPosition() - *line0).Magnitude();
CVector line = (*line1 - *line0);
float lineLength = line.Magnitude();
- *bulletPos = *line0 + line*max(1.0f, distToHeli-5.0f);
+ *bulletPos = *line0 + line*Max(1.0f, distToHeli-5.0f);
pHelis[i]->m_nBulletDamage += damage;
diff --git a/src/vehicles/Plane.cpp b/src/vehicles/Plane.cpp
index 775cf572..40e0e5a7 100644
--- a/src/vehicles/Plane.cpp
+++ b/src/vehicles/Plane.cpp
@@ -397,7 +397,7 @@ CPlane::ProcessControl(void)
planePathSpeed = PlanePath3Speed;
numPathNodes = NumPath3Nodes;
if(CesnaMissionStatus == CESNA_STATUS_LANDED){
- pDrugRunCesna = false;
+ pDrugRunCesna = nil;
FlagToDestroyWhenNextProcessed();
}
}else if(m_bIsDropOffCesna){
@@ -407,7 +407,7 @@ CPlane::ProcessControl(void)
planePathSpeed = PlanePath4Speed;
numPathNodes = NumPath4Nodes;
if(DropOffCesnaMissionStatus == CESNA_STATUS_LANDED){
- pDropOffCesna = false;
+ pDropOffCesna = nil;
FlagToDestroyWhenNextProcessed();
}
}else{
diff --git a/src/vehicles/Vehicle.cpp b/src/vehicles/Vehicle.cpp
index 4795a29f..0355cba1 100644
--- a/src/vehicles/Vehicle.cpp
+++ b/src/vehicles/Vehicle.cpp
@@ -273,7 +273,7 @@ CVehicle::ProcessWheel(CVector &wheelFwd, CVector &wheelRight, CVector &wheelCon
right = -contactSpeedRight/wheelsOnGround;
if(wheelStatus == WHEEL_STATUS_BURST){
- float fwdspeed = min(contactSpeedFwd, 0.3f);
+ float fwdspeed = Min(contactSpeedFwd, 0.3f);
right += fwdspeed * CGeneral::GetRandomNumberInRange(-0.1f, 0.1f);
}
}
@@ -363,7 +363,7 @@ CVehicle::ProcessWheelRotation(tWheelState state, const CVector &fwd, const CVec
void
CVehicle::ExtinguishCarFire(void)
{
- m_fHealth = max(m_fHealth, 300.0f);
+ m_fHealth = Max(m_fHealth, 300.0f);
if(m_pCarFire)
m_pCarFire->Extinguish();
if(IsCar()){
@@ -638,13 +638,13 @@ CVehicle::SetDriver(CPed *driver)
if(bFreebies && driver == FindPlayerPed()){
if(GetModelIndex() == MI_AMBULAN)
- FindPlayerPed()->m_fHealth = min(FindPlayerPed()->m_fHealth + 20.0f, 100.0f);
+ FindPlayerPed()->m_fHealth = Min(FindPlayerPed()->m_fHealth + 20.0f, 100.0f);
else if(GetModelIndex() == MI_TAXI)
CWorld::Players[CWorld::PlayerInFocus].m_nMoney += 25;
else if(GetModelIndex() == MI_POLICE)
driver->GiveWeapon(WEAPONTYPE_SHOTGUN, 5);
else if(GetModelIndex() == MI_ENFORCER)
- driver->m_fArmour = max(driver->m_fArmour, 100.0f);
+ driver->m_fArmour = Max(driver->m_fArmour, 100.0f);
else if(GetModelIndex() == MI_CABBIE || GetModelIndex() == MI_BORGNINE)
CWorld::Players[CWorld::PlayerInFocus].m_nMoney += 25;
bFreebies = false;