From a7e673c2ec6a5ed25f3bae8caab90e2113158c03 Mon Sep 17 00:00:00 2001 From: Nikolay Korolev Date: Sat, 24 Jul 2021 00:47:04 +0300 Subject: [PATCH] sync --- .vscode/settings.json | 2 +- codewarrior/re3.mcp.xml | 6 +- premake5.lua | 4 +- src/audio/sampman.h | 110 +++++++++++++++++- src/audio/sampman_miles.cpp | 132 ++++++++++++++++++---- src/audio/sampman_oal.cpp | 39 ++++--- src/control/Garages.cpp | 3 + src/control/Script.cpp | 28 ++--- src/control/Script.h | 1 + src/control/Script6.cpp | 4 + src/core/Fire.cpp | 2 +- src/core/config.h | 4 +- src/peds/PedFight.cpp | 8 ++ src/{render => renderer}/2dEffect.h | 0 src/{render => renderer}/Antennas.cpp | 0 src/{render => renderer}/Antennas.h | 0 src/{render => renderer}/Clouds.cpp | 0 src/{render => renderer}/Clouds.h | 0 src/{render => renderer}/Console.cpp | 0 src/{render => renderer}/Console.h | 0 src/{render => renderer}/Coronas.cpp | 0 src/{render => renderer}/Coronas.h | 0 src/{render => renderer}/Credits.cpp | 0 src/{render => renderer}/Credits.h | 0 src/{render => renderer}/Draw.cpp | 0 src/{render => renderer}/Draw.h | 0 src/{render => renderer}/Fluff.cpp | 0 src/{render => renderer}/Fluff.h | 0 src/{render => renderer}/Font.cpp | 0 src/{render => renderer}/Font.h | 0 src/{render => renderer}/Glass.cpp | 0 src/{render => renderer}/Glass.h | 0 src/{render => renderer}/Hud.cpp | 0 src/{render => renderer}/Hud.h | 0 src/{render => renderer}/Instance.cpp | 0 src/{render => renderer}/Instance.h | 0 src/{render => renderer}/Lines.cpp | 0 src/{render => renderer}/Lines.h | 0 src/{render => renderer}/MBlur.cpp | 0 src/{render => renderer}/MBlur.h | 0 src/{render => renderer}/Particle.cpp | 0 src/{render => renderer}/Particle.h | 0 src/{render => renderer}/ParticleMgr.cpp | 0 src/{render => renderer}/ParticleMgr.h | 0 src/{render => renderer}/ParticleType.h | 0 src/{render => renderer}/PlayerSkin.cpp | 0 src/{render => renderer}/PlayerSkin.h | 0 src/{render => renderer}/PointLights.cpp | 0 src/{render => renderer}/PointLights.h | 0 src/{render => renderer}/RenderBuffer.cpp | 0 src/{render => renderer}/RenderBuffer.h | 0 src/{render => renderer}/Renderer.cpp | 0 src/{render => renderer}/Renderer.h | 0 src/{render => renderer}/Rubbish.cpp | 0 src/{render => renderer}/Rubbish.h | 0 src/{render => renderer}/Shadows.cpp | 0 src/{render => renderer}/Shadows.h | 0 src/{render => renderer}/Skidmarks.cpp | 0 src/{render => renderer}/Skidmarks.h | 0 src/{render => renderer}/SpecialFX.cpp | 0 src/{render => renderer}/SpecialFX.h | 0 src/{render => renderer}/Sprite.cpp | 0 src/{render => renderer}/Sprite.h | 0 src/{render => renderer}/Sprite2d.cpp | 0 src/{render => renderer}/Sprite2d.h | 0 src/{render => renderer}/TexList.cpp | 0 src/{render => renderer}/TexList.h | 0 src/{render => renderer}/Timecycle.cpp | 0 src/{render => renderer}/Timecycle.h | 0 src/{render => renderer}/WaterCannon.cpp | 0 src/{render => renderer}/WaterCannon.h | 0 src/{render => renderer}/WaterLevel.cpp | 0 src/{render => renderer}/WaterLevel.h | 0 src/{render => renderer}/Weather.cpp | 0 src/{render => renderer}/Weather.h | 0 75 files changed, 277 insertions(+), 66 deletions(-) rename src/{render => renderer}/2dEffect.h (100%) rename src/{render => renderer}/Antennas.cpp (100%) rename src/{render => renderer}/Antennas.h (100%) rename src/{render => renderer}/Clouds.cpp (100%) rename src/{render => renderer}/Clouds.h (100%) rename src/{render => renderer}/Console.cpp (100%) rename src/{render => renderer}/Console.h (100%) rename src/{render => renderer}/Coronas.cpp (100%) rename src/{render => renderer}/Coronas.h (100%) rename src/{render => renderer}/Credits.cpp (100%) rename src/{render => renderer}/Credits.h (100%) rename src/{render => renderer}/Draw.cpp (100%) rename src/{render => renderer}/Draw.h (100%) rename src/{render => renderer}/Fluff.cpp (100%) rename src/{render => renderer}/Fluff.h (100%) rename src/{render => renderer}/Font.cpp (100%) rename src/{render => renderer}/Font.h (100%) rename src/{render => renderer}/Glass.cpp (100%) rename src/{render => renderer}/Glass.h (100%) rename src/{render => renderer}/Hud.cpp (100%) rename src/{render => renderer}/Hud.h (100%) rename src/{render => renderer}/Instance.cpp (100%) rename src/{render => renderer}/Instance.h (100%) rename src/{render => renderer}/Lines.cpp (100%) rename src/{render => renderer}/Lines.h (100%) rename src/{render => renderer}/MBlur.cpp (100%) rename src/{render => renderer}/MBlur.h (100%) rename src/{render => renderer}/Particle.cpp (100%) rename src/{render => renderer}/Particle.h (100%) rename src/{render => renderer}/ParticleMgr.cpp (100%) rename src/{render => renderer}/ParticleMgr.h (100%) rename src/{render => renderer}/ParticleType.h (100%) rename src/{render => renderer}/PlayerSkin.cpp (100%) rename src/{render => renderer}/PlayerSkin.h (100%) rename src/{render => renderer}/PointLights.cpp (100%) rename src/{render => renderer}/PointLights.h (100%) rename src/{render => renderer}/RenderBuffer.cpp (100%) rename src/{render => renderer}/RenderBuffer.h (100%) rename src/{render => renderer}/Renderer.cpp (100%) rename src/{render => renderer}/Renderer.h (100%) rename src/{render => renderer}/Rubbish.cpp (100%) rename src/{render => renderer}/Rubbish.h (100%) rename src/{render => renderer}/Shadows.cpp (100%) rename src/{render => renderer}/Shadows.h (100%) rename src/{render => renderer}/Skidmarks.cpp (100%) rename src/{render => renderer}/Skidmarks.h (100%) rename src/{render => renderer}/SpecialFX.cpp (100%) rename src/{render => renderer}/SpecialFX.h (100%) rename src/{render => renderer}/Sprite.cpp (100%) rename src/{render => renderer}/Sprite.h (100%) rename src/{render => renderer}/Sprite2d.cpp (100%) rename src/{render => renderer}/Sprite2d.h (100%) rename src/{render => renderer}/TexList.cpp (100%) rename src/{render => renderer}/TexList.h (100%) rename src/{render => renderer}/Timecycle.cpp (100%) rename src/{render => renderer}/Timecycle.h (100%) rename src/{render => renderer}/WaterCannon.cpp (100%) rename src/{render => renderer}/WaterCannon.h (100%) rename src/{render => renderer}/WaterLevel.cpp (100%) rename src/{render => renderer}/WaterLevel.h (100%) rename src/{render => renderer}/Weather.cpp (100%) rename src/{render => renderer}/Weather.h (100%) diff --git a/.vscode/settings.json b/.vscode/settings.json index 10cb5627..fee80960 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -13,7 +13,7 @@ "src/modelinfo", "src/objects", "src/peds", - "src/render", + "src/renderer", "src/rw", "src/save", "src/skel", diff --git a/codewarrior/re3.mcp.xml b/codewarrior/re3.mcp.xml index b18e2bcc..ca20ec2a 100644 --- a/codewarrior/re3.mcp.xml +++ b/codewarrior/re3.mcp.xml @@ -187,7 +187,7 @@ SearchPath - Path..\src\render + Path..\src\renderer PathFormatWindows PathRootProject @@ -6424,7 +6424,7 @@ SearchPath - Path..\src\render + Path..\src\renderer PathFormatWindows PathRootProject @@ -14281,7 +14281,7 @@ Windows - render + renderer Debug Name diff --git a/premake5.lua b/premake5.lua index 0a8faa07..25090dc6 100644 --- a/premake5.lua +++ b/premake5.lua @@ -264,7 +264,7 @@ project "re3" files { addSrcFiles("src/modelinfo") } files { addSrcFiles("src/objects") } files { addSrcFiles("src/peds") } - files { addSrcFiles("src/render") } + files { addSrcFiles("src/renderer") } files { addSrcFiles("src/rw") } files { addSrcFiles("src/save") } files { addSrcFiles("src/skel") } @@ -293,7 +293,7 @@ project "re3" includedirs { "src/modelinfo" } includedirs { "src/objects" } includedirs { "src/peds" } - includedirs { "src/render" } + includedirs { "src/renderer" } includedirs { "src/rw" } includedirs { "src/save/" } includedirs { "src/skel/" } diff --git a/src/audio/sampman.h b/src/audio/sampman.h index d1ad9a26..dc95622b 100644 --- a/src/audio/sampman.h +++ b/src/audio/sampman.h @@ -259,8 +259,8 @@ static char StreamedNameTable[][25] = { "AUDIO\\door_2.OPUS", "AUDIO\\door_3.OPUS", "AUDIO\\door_4.OPUS", "AUDIO\\door_5.OPUS", "AUDIO\\door_6.OPUS", "AUDIO\\t3_a.OPUS", "AUDIO\\t3_b.OPUS", "AUDIO\\t3_c.OPUS", "AUDIO\\k1_b.OPUS", "AUDIO\\cat1.OPUS"}; #else -#if defined(PS2_AUDIO_PATHS) -static char StreamedNameTable[][25]= +#ifdef PS2_AUDIO_PATHS +static char PS2StreamedNameTable[][25]= { "AUDIO\\MUSIC\\HEAD.VB", "AUDIO\\MUSIC\\CLASS.VB", @@ -357,7 +357,110 @@ static char StreamedNameTable[][25]= "AUDIO\\PHONE\\MT_PH4.VB", "AUDIO\\MUSIC\\MISCOM.VB", "AUDIO\\MUSIC\\END.VB", -#else + "AUDIO\\lib_a1.WAV", + "AUDIO\\lib_a2.WAV", + "AUDIO\\lib_a.WAV", + "AUDIO\\lib_b.WAV", + "AUDIO\\lib_c.WAV", + "AUDIO\\lib_d.WAV", + "AUDIO\\l2_a.WAV", + "AUDIO\\j4t_1.WAV", + "AUDIO\\j4t_2.WAV", + "AUDIO\\j4t_3.WAV", + "AUDIO\\j4t_4.WAV", + "AUDIO\\j4_a.WAV", + "AUDIO\\j4_b.WAV", + "AUDIO\\j4_c.WAV", + "AUDIO\\j4_d.WAV", + "AUDIO\\j4_e.WAV", + "AUDIO\\j4_f.WAV", + "AUDIO\\j6_1.WAV", + "AUDIO\\j6_a.WAV", + "AUDIO\\j6_b.WAV", + "AUDIO\\j6_c.WAV", + "AUDIO\\j6_d.WAV", + "AUDIO\\t4_a.WAV", + "AUDIO\\s1_a.WAV", + "AUDIO\\s1_a1.WAV", + "AUDIO\\s1_b.WAV", + "AUDIO\\s1_c.WAV", + "AUDIO\\s1_c1.WAV", + "AUDIO\\s1_d.WAV", + "AUDIO\\s1_e.WAV", + "AUDIO\\s1_f.WAV", + "AUDIO\\s1_g.WAV", + "AUDIO\\s1_h.WAV", + "AUDIO\\s1_i.WAV", + "AUDIO\\s1_j.WAV", + "AUDIO\\s1_k.WAV", + "AUDIO\\s1_l.WAV", + "AUDIO\\s3_a.WAV", + "AUDIO\\s3_b.WAV", + "AUDIO\\el3_a.WAV", + "AUDIO\\mf1_a.WAV", + "AUDIO\\mf2_a.WAV", + "AUDIO\\mf3_a.WAV", + "AUDIO\\mf3_b.WAV", + "AUDIO\\mf3_b1.WAV", + "AUDIO\\mf3_c.WAV", + "AUDIO\\mf4_a.WAV", + "AUDIO\\mf4_b.WAV", + "AUDIO\\mf4_c.WAV", + "AUDIO\\a1_a.WAV", + "AUDIO\\a3_a.WAV", + "AUDIO\\a5_a.WAV", + "AUDIO\\a4_a.WAV", + "AUDIO\\a4_b.WAV", + "AUDIO\\a4_c.WAV", + "AUDIO\\a4_d.WAV", + "AUDIO\\k1_a.WAV", + "AUDIO\\k3_a.WAV", + "AUDIO\\r1_a.WAV", + "AUDIO\\r2_a.WAV", + "AUDIO\\r2_b.WAV", + "AUDIO\\r2_c.WAV", + "AUDIO\\r2_d.WAV", + "AUDIO\\r2_e.WAV", + "AUDIO\\r2_f.WAV", + "AUDIO\\r2_g.WAV", + "AUDIO\\r2_h.WAV", + "AUDIO\\r5_a.WAV", + "AUDIO\\r6_a.WAV", + "AUDIO\\r6_a1.WAV", + "AUDIO\\r6_b.WAV", + "AUDIO\\lo2_a.WAV", + "AUDIO\\lo6_a.WAV", + "AUDIO\\yd2_a.WAV", + "AUDIO\\yd2_b.WAV", + "AUDIO\\yd2_c.WAV", + "AUDIO\\yd2_c1.WAV", + "AUDIO\\yd2_d.WAV", + "AUDIO\\yd2_e.WAV", + "AUDIO\\yd2_f.WAV", + "AUDIO\\yd2_g.WAV", + "AUDIO\\yd2_h.WAV", + "AUDIO\\yd2_ass.WAV", + "AUDIO\\yd2_ok.WAV", + "AUDIO\\h5_a.WAV", + "AUDIO\\h5_b.WAV", + "AUDIO\\h5_c.WAV", + "AUDIO\\ammu_a.WAV", + "AUDIO\\ammu_b.WAV", + "AUDIO\\ammu_c.WAV", + "AUDIO\\door_1.WAV", + "AUDIO\\door_2.WAV", + "AUDIO\\door_3.WAV", + "AUDIO\\door_4.WAV", + "AUDIO\\door_5.WAV", + "AUDIO\\door_6.WAV", + "AUDIO\\t3_a.WAV", + "AUDIO\\t3_b.WAV", + "AUDIO\\t3_c.WAV", + "AUDIO\\k1_b.WAV", + "AUDIO\\cat1.WAV" +}; +#endif + static char StreamedNameTable[][25] = { "AUDIO\\HEAD.WAV", @@ -455,7 +558,6 @@ static char StreamedNameTable[][25] = "AUDIO\\MT_PH4.MP3", "AUDIO\\MISCOM.WAV", "AUDIO\\END.MP3", -#endif "AUDIO\\lib_a1.WAV", "AUDIO\\lib_a2.WAV", "AUDIO\\lib_a.WAV", diff --git a/src/audio/sampman_miles.cpp b/src/audio/sampman_miles.cpp index e820864c..d529513d 100644 --- a/src/audio/sampman_miles.cpp +++ b/src/audio/sampman_miles.cpp @@ -992,11 +992,20 @@ cSampleManager::Initialise(void) if ( GetDriveType(m_szCDRomRootPath) == DRIVE_CDROM ) { + FILE *f; +#ifdef PS2_AUDIO_PATHS strcpy(filepath, m_szCDRomRootPath); - strcat(filepath, StreamedNameTable[0]); - - FILE *f = fopen(filepath, "rb"); + strcat(filepath, PS2StreamedNameTable[0]); + f = fopen(filepath, "rb"); + + if ( !f ) +#endif + { + strcpy(filepath, m_szCDRomRootPath); + strcat(filepath, StreamedNameTable[0]); + f = fopen(filepath, "rb"); + } if ( f ) { fclose(f); @@ -1005,11 +1014,20 @@ cSampleManager::Initialise(void) for ( int32 i = 0; i < TOTAL_STREAMED_SOUNDS; i++ ) { +#ifdef PS2_AUDIO_PATHS strcpy(filepath, m_szCDRomRootPath); - strcat(filepath, StreamedNameTable[i]); - + strcat(filepath, PS2StreamedNameTable[i]); + mp3Stream[0] = AIL_open_stream(DIG, filepath, 0); - + if ( !mp3Stream[0] ) +#endif + { + strcpy(filepath, m_szCDRomRootPath); + strcat(filepath, StreamedNameTable[i]); + + mp3Stream[0] = AIL_open_stream(DIG, filepath, 0); + } + if ( mp3Stream[0] ) { AIL_stream_ms_position(mp3Stream[0], &tatalms, NULL); @@ -1078,7 +1096,14 @@ cSampleManager::Initialise(void) strcpy(_aHDDPath, m_szCDRomRootPath); rootpath[0] = '\0'; - FILE *f = fopen(StreamedNameTable[0], "rb"); + FILE *f; + +#ifdef PS2_AUDIO_PATHS + f = fopen(PS2StreamedNameTable[0], "rb"); + if (!f) +#endif + + f = fopen(StreamedNameTable[0], "rb"); if ( f ) { @@ -1086,11 +1111,20 @@ cSampleManager::Initialise(void) for ( int32 i = 0; i < TOTAL_STREAMED_SOUNDS; i++ ) { +#ifdef PS2_AUDIO_PATHS strcpy(filepath, rootpath); - strcat(filepath, StreamedNameTable[i]); - + strcat(filepath, PS2StreamedNameTable[i]); + mp3Stream[0] = AIL_open_stream(DIG, filepath, 0); - + if ( !mp3Stream[0] ) +#endif + { + strcpy(filepath, rootpath); + strcat(filepath, StreamedNameTable[i]); + + mp3Stream[0] = AIL_open_stream(DIG, filepath, 0); + } + if ( mp3Stream[0] ) { AIL_stream_ms_position(mp3Stream[0], &tatalms, NULL); @@ -1299,9 +1333,11 @@ cSampleManager::CheckForAnAudioFileOnCD(void) { #if GTA_VERSION < GTA3_PC_STEAM && !defined(NO_CDCHECK) char filepath[MAX_PATH]; + FILE *f; +#ifdef PS2_AUDIO_PATHS #if GTA_VERSION >= GTA3_PC_11 - if (_bUseHDDAudio) + if(_bUseHDDAudio) strcpy(filepath, _aHDDPath); else strcpy(filepath, m_szCDRomRootPath); @@ -1309,10 +1345,25 @@ cSampleManager::CheckForAnAudioFileOnCD(void) strcpy(filepath, m_szCDRomRootPath); #endif // #if GTA_VERSION >= GTA3_PC_11 - strcat(filepath, StreamedNameTable[AudioManager.GetRandomNumber(1) % TOTAL_STREAMED_SOUNDS]); - - FILE *f = fopen(filepath, "rb"); + strcat(filepath, PS2StreamedNameTable[AudioManager.GetRandomNumber(1) % TOTAL_STREAMED_SOUNDS]); + + f = fopen(filepath, "rb"); + if ( !f ) +#endif // PS2_AUDIO_PATHS + { +#if GTA_VERSION >= GTA3_PC_11 + if (_bUseHDDAudio) + strcpy(filepath, _aHDDPath); + else + strcpy(filepath, m_szCDRomRootPath); +#else + strcpy(filepath, m_szCDRomRootPath); +#endif // #if GTA_VERSION >= GTA3_PC_11 + + strcat(filepath, StreamedNameTable[AudioManager.GetRandomNumber(1) % TOTAL_STREAMED_SOUNDS]); + f = fopen(filepath, "rb"); + } if ( f ) { fclose(f); @@ -2007,11 +2058,19 @@ cSampleManager::PreloadStreamedFile(uint8 nFile, uint8 nStream) } char filepath[MAX_PATH]; - +#ifdef PS2_AUDIO_PATHS strcpy(filepath, m_szCDRomRootPath); - strcat(filepath, StreamedNameTable[nFile]); - + strcat(filepath, PS2StreamedNameTable[nFile]); + mp3Stream[nStream] = AIL_open_stream(DIG, filepath, 0); + if ( !mp3Stream[nStream] ) +#endif + { + strcpy(filepath, m_szCDRomRootPath); + strcat(filepath, StreamedNameTable[nFile]); + + mp3Stream[nStream] = AIL_open_stream(DIG, filepath, 0); + } if ( mp3Stream[nStream] ) { @@ -2073,10 +2132,19 @@ cSampleManager::StartStreamedFile(uint8 nFile, uint32 nPos, uint8 nStream) // Try to continue from previous song, if already started if(!_GetMP3PosFromStreamPos(&position, &e) && !e) { nFile = 0; +#ifdef PS2_AUDIO_PATHS strcpy(filename, m_szCDRomRootPath); - strcat(filename, StreamedNameTable[nFile]); - + strcat(filename, PS2StreamedNameTable[nFile]); + mp3Stream[nStream] = AIL_open_stream(DIG, filename, 0); + if ( !mp3Stream[nStream] ) +#endif + { + strcpy(filename, m_szCDRomRootPath); + strcat(filename, StreamedNameTable[nFile]); + + mp3Stream[nStream] = AIL_open_stream(DIG, filename, 0); + } if ( mp3Stream[nStream] ) { AIL_set_stream_loop_count(mp3Stream[nStream], 1); @@ -2120,10 +2188,19 @@ cSampleManager::StartStreamedFile(uint8 nFile, uint32 nPos, uint8 nStream) { nFile = 0; _bIsMp3Active = 0; +#ifdef PS2_AUDIO_PATHS strcpy(filename, m_szCDRomRootPath); - strcat(filename, StreamedNameTable[nFile]); - + strcat(filename, PS2StreamedNameTable[nFile]); + mp3Stream[nStream] = AIL_open_stream(DIG, filename, 0); + if ( !mp3Stream[nStream] ) +#endif + { + strcpy(filename, m_szCDRomRootPath); + strcat(filename, StreamedNameTable[nFile]); + + mp3Stream[nStream] = AIL_open_stream(DIG, filename, 0); + } if ( mp3Stream[nStream] ) { AIL_set_stream_loop_count(mp3Stream[nStream], 1); @@ -2161,10 +2238,19 @@ cSampleManager::StartStreamedFile(uint8 nFile, uint32 nPos, uint8 nStream) position = 0; nFile = 0; } +#ifdef PS2_AUDIO_PATHS strcpy(filename, m_szCDRomRootPath); - strcat(filename, StreamedNameTable[nFile]); - + strcat(filename, PS2StreamedNameTable[nFile]); + mp3Stream[nStream] = AIL_open_stream(DIG, filename, 0); + if ( !mp3Stream[nStream] ) +#endif + { + strcpy(filename, m_szCDRomRootPath); + strcat(filename, StreamedNameTable[nFile]); + + mp3Stream[nStream] = AIL_open_stream(DIG, filename, 0); + } if ( mp3Stream[nStream] ) { AIL_set_stream_loop_count(mp3Stream[nStream], 1); diff --git a/src/audio/sampman_oal.cpp b/src/audio/sampman_oal.cpp index fdd449f7..2d9f9e86 100644 --- a/src/audio/sampman_oal.cpp +++ b/src/audio/sampman_oal.cpp @@ -894,7 +894,11 @@ cSampleManager::Initialise(void) for ( int32 i = 0; i < TOTAL_STREAMED_SOUNDS; i++ ) { - if ( aStream[0] && aStream[0]->Open(StreamedNameTable[i], IsThisTrackAt16KHz(i) ? 16000 : 32000) ) + if(aStream[0] && ( +#ifdef PS2_AUDIO_PATHS + aStream[0]->Open(PS2StreamedNameTable[i], IsThisTrackAt16KHz(i) ? 16000 : 32000) || +#endif + aStream[0]->Open(StreamedNameTable[i], IsThisTrackAt16KHz(i) ? 16000 : 32000))) { uint32 tatalms = aStream[0]->GetLengthMS(); aStream[0]->Close(); @@ -1601,8 +1605,6 @@ cSampleManager::StopChannel(uint32 nChannel) void cSampleManager::PreloadStreamedFile(uint8 nFile, uint8 nStream) { - char filename[MAX_PATH]; - ASSERT( nStream < MAX_STREAMS ); if ( nFile < TOTAL_STREAMED_SOUNDS ) @@ -1611,9 +1613,10 @@ cSampleManager::PreloadStreamedFile(uint8 nFile, uint8 nStream) stream->Close(); - strcpy(filename, StreamedNameTable[nFile]); - - stream->Open(filename, IsThisTrackAt16KHz(nFile) ? 16000 : 32000); +#ifdef PS2_AUDIO_PATHS + if(!stream->Open(PS2StreamedNameTable[nFile], IsThisTrackAt16KHz(nFile) ? 16000 : 32000)) +#endif + stream->Open(StreamedNameTable[nFile], IsThisTrackAt16KHz(nFile) ? 16000 : 32000); if ( !stream->Setup() ) { stream->Close(); @@ -1673,10 +1676,11 @@ cSampleManager::StartStreamedFile(uint8 nFile, uint32 nPos, uint8 nStream) // Try to continue from previous song, if already started if(!_GetMP3PosFromStreamPos(&position, &e) && !e) { nFile = 0; - strcpy(filename, StreamedNameTable[nFile]); - CStream *stream = aStream[nStream]; - stream->Open(filename, IsThisTrackAt16KHz(nFile) ? 16000 : 32000); +#ifdef PS2_AUDIO_PATHS + if(!stream->Open(PS2StreamedNameTable[nFile], IsThisTrackAt16KHz(nFile) ? 16000 : 32000)) +#endif + stream->Open(StreamedNameTable[nFile], IsThisTrackAt16KHz(nFile) ? 16000 : 32000); if ( stream->Setup() ) { if (position != 0) stream->SetPosMS(position); @@ -1725,10 +1729,11 @@ cSampleManager::StartStreamedFile(uint8 nFile, uint32 nPos, uint8 nStream) { nFile = 0; _bIsMp3Active = 0; - strcpy(filename, StreamedNameTable[nFile]); - - CStream* stream = aStream[nStream]; - stream->Open(filename, IsThisTrackAt16KHz(nFile) ? 16000 : 32000); + CStream *stream = aStream[nStream]; +#ifdef PS2_AUDIO_PATHS + if(!stream->Open(PS2StreamedNameTable[nFile], IsThisTrackAt16KHz(nFile) ? 16000 : 32000)) +#endif + stream->Open(StreamedNameTable[nFile], IsThisTrackAt16KHz(nFile) ? 16000 : 32000); if (stream->Setup()) { if (position != 0) @@ -1768,11 +1773,11 @@ cSampleManager::StartStreamedFile(uint8 nFile, uint32 nPos, uint8 nStream) position = 0; nFile = 0; } - strcpy(filename, StreamedNameTable[nFile]); - CStream *stream = aStream[nStream]; - - aStream[nStream]->Open(filename, IsThisTrackAt16KHz(nFile) ? 16000 : 32000); +#ifdef PS2_AUDIO_PATHS + if(!stream->Open(PS2StreamedNameTable[nFile], IsThisTrackAt16KHz(nFile) ? 16000 : 32000)) +#endif + stream->Open(StreamedNameTable[nFile], IsThisTrackAt16KHz(nFile) ? 16000 : 32000); if ( stream->Setup() ) { if (position != 0) diff --git a/src/control/Garages.cpp b/src/control/Garages.cpp index 91971ae7..245e961d 100644 --- a/src/control/Garages.cpp +++ b/src/control/Garages.cpp @@ -2305,6 +2305,9 @@ void CGarages::Save(uint8 * buf, uint32 * size) *size = (6 * sizeof(uint32) + TOTAL_COLLECTCARS_GARAGES * sizeof(*CarTypesCollected) + sizeof(uint32) + 3 * NUM_GARAGE_STORED_CARS * sizeof(CStoredCar) + NUM_GARAGES * sizeof(CGarage)); #else * size = 5484; +#endif +#if !defined THIS_IS_STUPID && !defined FIX_GARAGE_SIZE && defined COMPATIBLE_SAVES + memset(buf + 5240, 0, *size - 5240); // garbage data is written otherwise #endif CloseHideOutGaragesBeforeSave(); WriteSaveBuf(buf, NumGarages); diff --git a/src/control/Script.cpp b/src/control/Script.cpp index e06acdc3..b07c0701 100644 --- a/src/control/Script.cpp +++ b/src/control/Script.cpp @@ -1771,20 +1771,12 @@ int scriptToLoad = 0; int open_script() { - // glfwGetKey doesn't work because of CGame::Initialise is blocking - CPad::UpdatePads(); - if (CPad::GetPad(0)->GetChar('G')) - scriptToLoad = 0; - if (CPad::GetPad(0)->GetChar('R')) - scriptToLoad = 1; - if (CPad::GetPad(0)->GetChar('D')) - scriptToLoad = 2; switch (scriptToLoad) { - case 0: return CFileMgr::OpenFile("main.scm", "rb"); - case 1: return CFileMgr::OpenFile("main_freeroam.scm", "rb"); - case 2: return CFileMgr::OpenFile("main_d.scm", "rb"); + case 0: return CFileMgr::OpenFile("data\\main.scm", "rb"); + case 1: return CFileMgr::OpenFile("data\\main_freeroam.scm", "rb"); + case 2: return CFileMgr::OpenFile("data\\main_d.scm", "rb"); } - return CFileMgr::OpenFile("main.scm", "rb"); + return CFileMgr::OpenFile("data\\main.scm", "rb"); } #endif @@ -1800,10 +1792,16 @@ void CTheScripts::Init() MissionCleanUp.Init(); UpsideDownCars.Init(); StuckCars.Init(); - CFileMgr::SetDir("data"); #ifdef USE_DEBUG_SCRIPT_LOADER + // glfwGetKey doesn't work because of CGame::Initialise is blocking + CPad::UpdatePads(); + if(CPad::GetPad(0)->GetChar('G')) scriptToLoad = 0; + if(CPad::GetPad(0)->GetChar('R')) scriptToLoad = 1; + if(CPad::GetPad(0)->GetChar('D')) scriptToLoad = 2; + int mainf = open_script(); #else + CFileMgr::SetDir("data"); int mainf = CFileMgr::OpenFile("main.scm", "rb"); #endif CFileMgr::Read(mainf, (char*)ScriptSpace, SIZE_MAIN_SCRIPT); @@ -4392,7 +4390,11 @@ CTheScripts::SwitchToMission(int32 mission) CTimer::Suspend(); int offset = CTheScripts::MultiScriptArray[mission]; CFileMgr::ChangeDir("\\"); +#ifdef USE_DEBUG_SCRIPT_LOADER + int handle = open_script(); +#else int handle = CFileMgr::OpenFile("data\\main.scm", "rb"); +#endif CFileMgr::Seek(handle, offset, 0); CFileMgr::Read(handle, (const char*)&CTheScripts::ScriptSpace[SIZE_MAIN_SCRIPT], SIZE_MISSION_SCRIPT); CFileMgr::CloseFile(handle); diff --git a/src/control/Script.h b/src/control/Script.h index 5682024b..cefd6747 100644 --- a/src/control/Script.h +++ b/src/control/Script.h @@ -591,5 +591,6 @@ void RetryMission(int, int); #endif #ifdef USE_DEBUG_SCRIPT_LOADER +int open_script(); extern int scriptToLoad; #endif \ No newline at end of file diff --git a/src/control/Script6.cpp b/src/control/Script6.cpp index 31be6987..c9b2b070 100644 --- a/src/control/Script6.cpp +++ b/src/control/Script6.cpp @@ -305,7 +305,11 @@ int8 CRunningScript::ProcessCommands1000To1099(int32 command) CTimer::Suspend(); int offset = CTheScripts::MultiScriptArray[ScriptParams[0]]; CFileMgr::ChangeDir("\\"); +#ifdef USE_DEBUG_SCRIPT_LOADER + int handle = open_script(); +#else int handle = CFileMgr::OpenFile("data\\main.scm", "rb"); +#endif CFileMgr::Seek(handle, offset, 0); CFileMgr::Read(handle, (const char*)&CTheScripts::ScriptSpace[SIZE_MAIN_SCRIPT], SIZE_MISSION_SCRIPT); CFileMgr::CloseFile(handle); diff --git a/src/core/Fire.cpp b/src/core/Fire.cpp index 984b21bb..8b184622 100644 --- a/src/core/Fire.cpp +++ b/src/core/Fire.cpp @@ -396,7 +396,7 @@ CFireManager::StartScriptFire(const CVector &pos, CEntity *target, float strengt if (target) { if (target->IsPed()) { ped->m_pFire = fire; - if (target != (CVehicle *)FindPlayerPed()) { + if (target != FindPlayerPed()) { CVector2D pos = target->GetPosition(); ped->SetFlee(pos, 10000); ped->SetMoveAnim(); diff --git a/src/core/config.h b/src/core/config.h index 885f98b8..f0960e44 100644 --- a/src/core/config.h +++ b/src/core/config.h @@ -259,7 +259,7 @@ enum Config { #define FIX_BUGS // fixes bugs that we've came across during reversing. You can undefine this only on release builds. #define MORE_LANGUAGES // Add more translations to the game -#define COMPATIBLE_SAVES // this allows changing structs while keeping saves compatible, and keeps saves compatible between platforms +#define COMPATIBLE_SAVES // this allows changing structs while keeping saves compatible, and keeps saves compatible between platforms, needs to be enabled on 64bit builds! #define FIX_INCOMPATIBLE_SAVES // try to fix incompatible saves, requires COMPATIBLE_SAVES #define LOAD_INI_SETTINGS // as the name suggests. fundamental for CUSTOM_FRONTEND_OPTIONS @@ -420,7 +420,7 @@ enum Config { #define RADIO_SCROLL_TO_PREV_STATION #define AUDIO_CACHE #define PS2_AUDIO_CHANNELS // increases the maximum number of audio channels to PS2 value of 44 (PC has 28 originally) -//#define PS2_AUDIO_PATHS // changes audio paths for cutscenes and radio to PS2 paths (needs vbdec on MSS builds) +#define PS2_AUDIO_PATHS // changes audio paths for cutscenes and radio to PS2 paths (needs vbdec on MSS builds) //#define AUDIO_OAL_USE_SNDFILE // use libsndfile to decode WAVs instead of our internal decoder #define AUDIO_OAL_USE_MPG123 // use mpg123 to support mp3 files #define PAUSE_RADIO_IN_FRONTEND // pause radio when game is paused diff --git a/src/peds/PedFight.cpp b/src/peds/PedFight.cpp index 46ac369c..13d3930c 100644 --- a/src/peds/PedFight.cpp +++ b/src/peds/PedFight.cpp @@ -320,6 +320,14 @@ CPed::SetAttack(CEntity *victim) ((CPlayerPed*)this)->m_fFPSMoveHeading = TheCamera.Find3rdPersonQuickAimPitch(); } } +#ifdef FIX_BUGS + // fix aiming for flamethrower while using PC controls + else if (GetWeapon()->m_eWeaponType == WEAPONTYPE_FLAMETHROWER && TheCamera.Cams[0].Using3rdPersonMouseCam() && this == FindPlayerPed()) + { + SetAimFlag(m_fRotationCur); + ((CPlayerPed*)this)->m_fFPSMoveHeading = TheCamera.Find3rdPersonQuickAimPitch(); + } +#endif if (m_nPedState == PED_ATTACK) { bIsAttacking = true; return; diff --git a/src/render/2dEffect.h b/src/renderer/2dEffect.h similarity index 100% rename from src/render/2dEffect.h rename to src/renderer/2dEffect.h diff --git a/src/render/Antennas.cpp b/src/renderer/Antennas.cpp similarity index 100% rename from src/render/Antennas.cpp rename to src/renderer/Antennas.cpp diff --git a/src/render/Antennas.h b/src/renderer/Antennas.h similarity index 100% rename from src/render/Antennas.h rename to src/renderer/Antennas.h diff --git a/src/render/Clouds.cpp b/src/renderer/Clouds.cpp similarity index 100% rename from src/render/Clouds.cpp rename to src/renderer/Clouds.cpp diff --git a/src/render/Clouds.h b/src/renderer/Clouds.h similarity index 100% rename from src/render/Clouds.h rename to src/renderer/Clouds.h diff --git a/src/render/Console.cpp b/src/renderer/Console.cpp similarity index 100% rename from src/render/Console.cpp rename to src/renderer/Console.cpp diff --git a/src/render/Console.h b/src/renderer/Console.h similarity index 100% rename from src/render/Console.h rename to src/renderer/Console.h diff --git a/src/render/Coronas.cpp b/src/renderer/Coronas.cpp similarity index 100% rename from src/render/Coronas.cpp rename to src/renderer/Coronas.cpp diff --git a/src/render/Coronas.h b/src/renderer/Coronas.h similarity index 100% rename from src/render/Coronas.h rename to src/renderer/Coronas.h diff --git a/src/render/Credits.cpp b/src/renderer/Credits.cpp similarity index 100% rename from src/render/Credits.cpp rename to src/renderer/Credits.cpp diff --git a/src/render/Credits.h b/src/renderer/Credits.h similarity index 100% rename from src/render/Credits.h rename to src/renderer/Credits.h diff --git a/src/render/Draw.cpp b/src/renderer/Draw.cpp similarity index 100% rename from src/render/Draw.cpp rename to src/renderer/Draw.cpp diff --git a/src/render/Draw.h b/src/renderer/Draw.h similarity index 100% rename from src/render/Draw.h rename to src/renderer/Draw.h diff --git a/src/render/Fluff.cpp b/src/renderer/Fluff.cpp similarity index 100% rename from src/render/Fluff.cpp rename to src/renderer/Fluff.cpp diff --git a/src/render/Fluff.h b/src/renderer/Fluff.h similarity index 100% rename from src/render/Fluff.h rename to src/renderer/Fluff.h diff --git a/src/render/Font.cpp b/src/renderer/Font.cpp similarity index 100% rename from src/render/Font.cpp rename to src/renderer/Font.cpp diff --git a/src/render/Font.h b/src/renderer/Font.h similarity index 100% rename from src/render/Font.h rename to src/renderer/Font.h diff --git a/src/render/Glass.cpp b/src/renderer/Glass.cpp similarity index 100% rename from src/render/Glass.cpp rename to src/renderer/Glass.cpp diff --git a/src/render/Glass.h b/src/renderer/Glass.h similarity index 100% rename from src/render/Glass.h rename to src/renderer/Glass.h diff --git a/src/render/Hud.cpp b/src/renderer/Hud.cpp similarity index 100% rename from src/render/Hud.cpp rename to src/renderer/Hud.cpp diff --git a/src/render/Hud.h b/src/renderer/Hud.h similarity index 100% rename from src/render/Hud.h rename to src/renderer/Hud.h diff --git a/src/render/Instance.cpp b/src/renderer/Instance.cpp similarity index 100% rename from src/render/Instance.cpp rename to src/renderer/Instance.cpp diff --git a/src/render/Instance.h b/src/renderer/Instance.h similarity index 100% rename from src/render/Instance.h rename to src/renderer/Instance.h diff --git a/src/render/Lines.cpp b/src/renderer/Lines.cpp similarity index 100% rename from src/render/Lines.cpp rename to src/renderer/Lines.cpp diff --git a/src/render/Lines.h b/src/renderer/Lines.h similarity index 100% rename from src/render/Lines.h rename to src/renderer/Lines.h diff --git a/src/render/MBlur.cpp b/src/renderer/MBlur.cpp similarity index 100% rename from src/render/MBlur.cpp rename to src/renderer/MBlur.cpp diff --git a/src/render/MBlur.h b/src/renderer/MBlur.h similarity index 100% rename from src/render/MBlur.h rename to src/renderer/MBlur.h diff --git a/src/render/Particle.cpp b/src/renderer/Particle.cpp similarity index 100% rename from src/render/Particle.cpp rename to src/renderer/Particle.cpp diff --git a/src/render/Particle.h b/src/renderer/Particle.h similarity index 100% rename from src/render/Particle.h rename to src/renderer/Particle.h diff --git a/src/render/ParticleMgr.cpp b/src/renderer/ParticleMgr.cpp similarity index 100% rename from src/render/ParticleMgr.cpp rename to src/renderer/ParticleMgr.cpp diff --git a/src/render/ParticleMgr.h b/src/renderer/ParticleMgr.h similarity index 100% rename from src/render/ParticleMgr.h rename to src/renderer/ParticleMgr.h diff --git a/src/render/ParticleType.h b/src/renderer/ParticleType.h similarity index 100% rename from src/render/ParticleType.h rename to src/renderer/ParticleType.h diff --git a/src/render/PlayerSkin.cpp b/src/renderer/PlayerSkin.cpp similarity index 100% rename from src/render/PlayerSkin.cpp rename to src/renderer/PlayerSkin.cpp diff --git a/src/render/PlayerSkin.h b/src/renderer/PlayerSkin.h similarity index 100% rename from src/render/PlayerSkin.h rename to src/renderer/PlayerSkin.h diff --git a/src/render/PointLights.cpp b/src/renderer/PointLights.cpp similarity index 100% rename from src/render/PointLights.cpp rename to src/renderer/PointLights.cpp diff --git a/src/render/PointLights.h b/src/renderer/PointLights.h similarity index 100% rename from src/render/PointLights.h rename to src/renderer/PointLights.h diff --git a/src/render/RenderBuffer.cpp b/src/renderer/RenderBuffer.cpp similarity index 100% rename from src/render/RenderBuffer.cpp rename to src/renderer/RenderBuffer.cpp diff --git a/src/render/RenderBuffer.h b/src/renderer/RenderBuffer.h similarity index 100% rename from src/render/RenderBuffer.h rename to src/renderer/RenderBuffer.h diff --git a/src/render/Renderer.cpp b/src/renderer/Renderer.cpp similarity index 100% rename from src/render/Renderer.cpp rename to src/renderer/Renderer.cpp diff --git a/src/render/Renderer.h b/src/renderer/Renderer.h similarity index 100% rename from src/render/Renderer.h rename to src/renderer/Renderer.h diff --git a/src/render/Rubbish.cpp b/src/renderer/Rubbish.cpp similarity index 100% rename from src/render/Rubbish.cpp rename to src/renderer/Rubbish.cpp diff --git a/src/render/Rubbish.h b/src/renderer/Rubbish.h similarity index 100% rename from src/render/Rubbish.h rename to src/renderer/Rubbish.h diff --git a/src/render/Shadows.cpp b/src/renderer/Shadows.cpp similarity index 100% rename from src/render/Shadows.cpp rename to src/renderer/Shadows.cpp diff --git a/src/render/Shadows.h b/src/renderer/Shadows.h similarity index 100% rename from src/render/Shadows.h rename to src/renderer/Shadows.h diff --git a/src/render/Skidmarks.cpp b/src/renderer/Skidmarks.cpp similarity index 100% rename from src/render/Skidmarks.cpp rename to src/renderer/Skidmarks.cpp diff --git a/src/render/Skidmarks.h b/src/renderer/Skidmarks.h similarity index 100% rename from src/render/Skidmarks.h rename to src/renderer/Skidmarks.h diff --git a/src/render/SpecialFX.cpp b/src/renderer/SpecialFX.cpp similarity index 100% rename from src/render/SpecialFX.cpp rename to src/renderer/SpecialFX.cpp diff --git a/src/render/SpecialFX.h b/src/renderer/SpecialFX.h similarity index 100% rename from src/render/SpecialFX.h rename to src/renderer/SpecialFX.h diff --git a/src/render/Sprite.cpp b/src/renderer/Sprite.cpp similarity index 100% rename from src/render/Sprite.cpp rename to src/renderer/Sprite.cpp diff --git a/src/render/Sprite.h b/src/renderer/Sprite.h similarity index 100% rename from src/render/Sprite.h rename to src/renderer/Sprite.h diff --git a/src/render/Sprite2d.cpp b/src/renderer/Sprite2d.cpp similarity index 100% rename from src/render/Sprite2d.cpp rename to src/renderer/Sprite2d.cpp diff --git a/src/render/Sprite2d.h b/src/renderer/Sprite2d.h similarity index 100% rename from src/render/Sprite2d.h rename to src/renderer/Sprite2d.h diff --git a/src/render/TexList.cpp b/src/renderer/TexList.cpp similarity index 100% rename from src/render/TexList.cpp rename to src/renderer/TexList.cpp diff --git a/src/render/TexList.h b/src/renderer/TexList.h similarity index 100% rename from src/render/TexList.h rename to src/renderer/TexList.h diff --git a/src/render/Timecycle.cpp b/src/renderer/Timecycle.cpp similarity index 100% rename from src/render/Timecycle.cpp rename to src/renderer/Timecycle.cpp diff --git a/src/render/Timecycle.h b/src/renderer/Timecycle.h similarity index 100% rename from src/render/Timecycle.h rename to src/renderer/Timecycle.h diff --git a/src/render/WaterCannon.cpp b/src/renderer/WaterCannon.cpp similarity index 100% rename from src/render/WaterCannon.cpp rename to src/renderer/WaterCannon.cpp diff --git a/src/render/WaterCannon.h b/src/renderer/WaterCannon.h similarity index 100% rename from src/render/WaterCannon.h rename to src/renderer/WaterCannon.h diff --git a/src/render/WaterLevel.cpp b/src/renderer/WaterLevel.cpp similarity index 100% rename from src/render/WaterLevel.cpp rename to src/renderer/WaterLevel.cpp diff --git a/src/render/WaterLevel.h b/src/renderer/WaterLevel.h similarity index 100% rename from src/render/WaterLevel.h rename to src/renderer/WaterLevel.h diff --git a/src/render/Weather.cpp b/src/renderer/Weather.cpp similarity index 100% rename from src/render/Weather.cpp rename to src/renderer/Weather.cpp diff --git a/src/render/Weather.h b/src/renderer/Weather.h similarity index 100% rename from src/render/Weather.h rename to src/renderer/Weather.h