Merge branch 'master' into miami

# Conflicts:
#	src/audio/AudioLogic.cpp
#	src/audio/AudioSamples.h
#	src/audio/soundlist.h
#	src/core/Frontend.cpp
#	src/core/Frontend.h
#	src/core/MenuScreens.cpp
#	src/peds/Ped.cpp
#	src/peds/PlayerPed.cpp
#	src/render/Hud.cpp
#	src/vehicles/Vehicle.h
This commit is contained in:
Sergeanur
2020-06-06 08:42:58 +03:00
8 changed files with 314 additions and 120 deletions

View File

@ -13,6 +13,7 @@
#include "DMAudio.h"
#include "HandlingMgr.h"
#include "Train.h"
#include "AudioScriptObject.h"
static CTrainNode* pTrackNodes;
static int16 NumTrackNodes;
@ -35,6 +36,8 @@ static float EngineTrackSpeed_S[4];
CVector CTrain::aStationCoors[3];
CVector CTrain::aStationCoors_S[4];
static bool bTrainArrivalAnnounced[3] = {false, false, false};
CTrain::CTrain(int32 id, uint8 CreatedBy)
: CVehicle(CreatedBy)
{
@ -642,10 +645,48 @@ CTrain::ReadAndInterpretTrackFile(Const char *filename, CTrainNode **nodes, int1
#endif
}
void
PlayAnnouncement(uint8 sound, uint8 station)
{
// this was gone in a PC version but inlined on PS2
cAudioScriptObject *obj = new cAudioScriptObject;
obj->AudioId = sound;
obj->Posn = CTrain::aStationCoors[station];
obj->AudioEntity = AEHANDLE_NONE;
DMAudio.CreateOneShotScriptObject(obj);
}
void
ProcessTrainAnnouncements(void)
{
// TODO but unused
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 3; j++) {
if (!bTrainArrivalAnnounced[i]) {
float preDist = StationDist[i] - 100.0f;
if (preDist < 0.0f)
preDist += TotalLengthOfTrack;
if (EngineTrackPosition[j] > preDist && EngineTrackPosition[j] < StationDist[i]) {
bTrainArrivalAnnounced[i] = true;
PlayAnnouncement(SCRIPT_SOUND_TRAIN_ANNOUNCEMENT_1, i);
break;
}
} else {
float postDist = StationDist[i] + 10.0f;
#ifdef FIX_BUGS
if (postDist > TotalLengthOfTrack)
postDist -= TotalLengthOfTrack;
#else
if (postDist < 0.0f) // does this even make sense here?
postDist += TotalLengthOfTrack;
#endif
if (EngineTrackPosition[j] > StationDist[i] && EngineTrackPosition[j] < postDist) {
bTrainArrivalAnnounced[i] = false;
PlayAnnouncement(SCRIPT_SOUND_TRAIN_ANNOUNCEMENT_2, i);
break;
}
}
}
}
}
void