2480 Commits
master ... lcs

Author SHA1 Message Date
33abd1b4e7 Merge branch 'miami' into lcs
# Conflicts:
#	src/audio/AudioLogic.cpp
#	src/audio/sampman.h
#	src/audio/sampman_miles.cpp
#	src/audio/sampman_oal.cpp
2021-09-02 21:00:15 +03:00
a16fcd8d6a Fixes from master 2021-09-02 19:22:50 +03:00
6a12033942 Merge branch 'miami' into lcs
# Conflicts:
#	src/audio/AudioManager.cpp
2021-09-02 18:52:32 +03:00
a04a84e00b Audio: small refactoring 2021-09-02 18:50:46 +03:00
abe6c22f56 Fix heli sound 2021-09-02 12:25:52 +03:00
232a45c9ac Audio: separate buffers for mission audio 2021-09-01 17:59:20 +03:00
29383a6a11 Merge branch 'miami' into lcs
# Conflicts:
#	src/audio/AudioLogic.cpp
#	src/audio/AudioSamples.h
#	src/audio/sampman_miles.cpp
2021-09-01 17:09:12 +03:00
669c8c8988 Audio: add separate buffer for player comments like on PS2 to fix overflow, add ped comments debug to debug menu 2021-09-01 16:36:34 +03:00
9bd80324d1 Merge pull request #1327 from Nick007J/lcs
some lcs stuff
2021-08-31 23:16:52 +03:00
4b747e567a replace ugly else if with switch 2021-08-30 23:34:06 +03:00
27ddca26c2 Bridge sound done 2021-08-30 12:08:34 +03:00
b67a087448 fix compile 2021-08-30 11:44:11 +03:00
6df0cb1ddb Merge branch 'miami' into lcs
# Conflicts:
#	src/audio/AudioManager.h
2021-08-30 11:27:18 +03:00
320624edc8 Audio: ps2 code ifdef
# Conflicts:
#	src/audio/AudioManager.h
2021-08-30 11:26:19 +03:00
8cbdf27228 Merge remote-tracking branch 'upstream/lcs' into lcs 2021-08-30 10:58:51 +03:00
145af411ab Fix yet another DirectlyEnqueueSample 2021-08-30 09:33:19 +03:00
07a1339704 Ferry sounds done 2021-08-30 09:01:10 +03:00
0df6fbb30a Add new tSound field 2021-08-30 08:23:10 +03:00
a1c241af37 script revision p2 2021-08-30 02:46:28 +03:00
c5c887cc11 merge 2021-08-29 19:40:10 +03:00
453f8c05a4 script revision p1 2021-08-29 19:32:22 +03:00
47c23ba917 Fix bugs in cAudioManager::DirectlyEnqueueSample 2021-08-29 18:57:01 +03:00
a404689e50 cAudioManager::DirectlyEnqueueSample 2021-08-29 17:32:36 +03:00
c6f9bbce8e Fix tabs after merge 2021-08-29 13:52:14 +03:00
07778c81bc Merge branch 'miami' into lcs 2021-08-29 13:49:21 +03:00
5b0c8fb3e2 More original indices 2021-08-29 13:36:42 +03:00
355c260bf2 Fix Squalo render out poly 2021-08-29 13:29:06 +03:00
764762f236 Get original MI_SKIMMER 2021-08-29 13:11:52 +03:00
eeacbfeb6a Merge branch 'miami' into lcs 2021-08-29 10:31:13 +03:00
9a7b469f4e Audio: fixing bugs, fixing types, making code more accurate to original 2021-08-29 09:42:32 +03:00
2be8fcfa64 Merge remote-tracking branch 'origin/miami' into lcs
# Conflicts:
#	src/audio/AudioManager.cpp
#	src/core/Radar.cpp
2021-08-29 08:58:54 +03:00
e865e65955 fix 2021-08-28 14:22:52 +03:00
8ef1e29a5c fix 2021-08-28 14:19:51 +03:00
2a69f34f93 fix 2021-08-27 19:53:51 +03:00
6d1d60f699 Merge pull request #1318 from Nick007J/lcs
Onscreen Timer
2021-08-27 17:11:56 +03:00
7a80acf6a1 fix debug teleport 2021-08-26 21:56:31 +03:00
b2daa0e502 Merge remote-tracking branch 'upstream/miami' into miami 2021-08-26 21:14:38 +03:00
915888d275 fixed debug teleport 2021-08-26 21:14:26 +03:00
a94812b28d Fix acceleration sound on exiting the vehicle 2021-08-26 08:15:18 +03:00
8de1ffb84d Fix reflections with audio time scale 2021-08-26 07:53:07 +03:00
b7db2a12d4 keep noinline only for broken vs versions 2021-08-26 01:47:17 +03:00
cc9398df14 cleanup 2021-08-26 00:38:00 +03:00
9187873396 Onscreen timer 2021-08-26 00:34:31 +03:00
d750a1101b fix 2021-08-25 14:44:47 +03:00
f87f14b432 Refactor cPedComments 2021-08-25 13:41:53 +03:00
e1286fcb04 Fix clock 2021-08-25 09:18:24 +03:00
800ab92960 Merge branch 'miami' into lcs
# Conflicts:
#	premake5.lua
#	src/audio/AudioLogic.cpp
#	src/audio/AudioManager.cpp
2021-08-25 09:07:41 +03:00
c8492ab5e0 Audio: refactoring, type fixes, renaming cAudioManager fields 2021-08-25 08:49:58 +03:00
aap
5f7de20cde modelinfo bits 2021-08-24 19:16:17 +02:00
d4a2113a8a Audio: fix PS2 ifdefs 2021-08-24 15:25:51 +03:00
a5ec7a45db Merge branch 'master' into miami
# Conflicts:
#	.github/workflows/build-switch.yml
#	.vscode/settings.json
#	CMakeLists.txt
#	README.md
#	cmake/nx/NXFunctions.cmake
#	gamefiles/TEXT/american.gxt
#	gamefiles/TEXT/french.gxt
#	gamefiles/TEXT/german.gxt
#	gamefiles/TEXT/italian.gxt
#	gamefiles/TEXT/polish.gxt
#	gamefiles/TEXT/russian.gxt
#	gamefiles/TEXT/spanish.gxt
#	gamefiles/models/frontend_nsw.txd
#	gamefiles/models/nswbtns.txd
#	res/images/logo.svg
#	res/images/logo_1024.png
#	res/images/logo_256.jpg
#	src/CMakeLists.txt
#	src/audio/AudioCollision.cpp
#	src/audio/AudioLogic.cpp
#	src/audio/AudioManager.cpp
#	src/audio/AudioManager.h
#	src/audio/MusicManager.cpp
#	src/audio/PolRadio.cpp
#	src/audio/PolRadio.h
#	src/audio/sampman_miles.cpp
#	src/audio/sampman_oal.cpp
#	src/control/CarCtrl.cpp
#	src/core/ControllerConfig.cpp
#	src/core/Frontend.cpp
#	src/core/Frontend.h
#	src/core/MenuScreens.cpp
#	src/core/MenuScreensCustom.cpp
#	src/core/common.h
#	src/core/config.h
#	src/peds/Ped.cpp
#	src/peds/PedAI.cpp
#	src/peds/PedFight.cpp
#	src/peds/PlayerPed.cpp
#	src/peds/PlayerPed.h
#	src/skel/crossplatform.cpp
#	src/skel/glfw/glfw.cpp
#	src/weapons/Weapon.cpp
#	utils/gxt/polish.txt
#	utils/gxt/russian.txt
2021-08-24 15:19:35 +03:00
abbfb09a64 Audio enhancements:
* redo high fps fix
* make releasing vehicle sounds attach to entities
* fix bug with reusing audio entity that is still being used
* use time scale to modify sound speed
2021-08-24 14:58:41 +03:00
aap
b89dd7f0e3 CModelInfo done 2021-08-23 14:13:30 +02:00
ef0ba763b9 Make ped comments update position and volume + fix cPedComments::Process 2021-08-23 11:16:53 +03:00
381d0b4e3e revision 2021-08-23 11:00:09 +03:00
3cbf84f98b Fix ClearMissionAudio crash 2021-08-22 13:40:57 +03:00
5cb1c8580d activate command 2021-08-22 13:22:31 +03:00
09f693b9b9 Cam: Fix can't look to right on BEHINDCAR 2021-08-22 12:25:43 +03:00
285fee01f2 PedIK: fix fix 2021-08-22 12:23:12 +03:00
d81890f6a8 Add forgotten bit from X11 detection 2021-08-22 01:57:01 +03:00
e500b77cd3 Audio: more LCS changes 2021-08-21 18:55:11 +03:00
d4ce6bcde0 Fix a bug about switching to previous weapon unintendedly 2021-08-21 16:34:26 +03:00
3779a39f1f Audio: a couple of LCS changes 2021-08-21 13:32:37 +03:00
e0be6beb18 Merge branch 'miami' into lcs
# Conflicts:
#	src/audio/AudioLogic.cpp
#	src/audio/AudioManager.cpp
#	src/audio/PolRadio.cpp
#	src/control/CarCtrl.cpp
2021-08-21 13:25:42 +03:00
7c80093efa Remove cMissionAudio, move cAMCrime array outside of cPoliceRadioQueue (R* vision) 2021-08-21 13:02:07 +03:00
fe51abd534 Audio: bits of PS2 code 2021-08-21 08:42:00 +03:00
80b7d52eeb Auto switch to remote grenade after detonator 2021-08-20 21:59:50 +03:00
0256790e1c Fix some auto-aim problems 2021-08-20 21:26:19 +03:00
6b958b957e car ctrl fixes 2021-08-20 20:50:59 +03:00
fe1e1ec8c7 fix 2021-08-20 20:40:40 +03:00
8b7f469ae1 fix 2021-08-20 20:39:27 +03:00
811729ab41 small refactoring 2021-08-20 17:56:48 +03:00
11f2d941f1 small refactoring 2021-08-20 17:54:42 +03:00
071dbc3086 Merge branch 'miami' into lcs 2021-08-20 15:45:58 +03:00
6ad85725d9 Set TIME_SPENT to 30 2021-08-20 15:45:50 +03:00
239367663b Rename unknown audio field 2021-08-20 15:45:18 +03:00
9c40489589 Merge branch 'miami' into lcs
# Conflicts:
#	src/audio/AudioLogic.cpp
#	src/audio/AudioManager.cpp
2021-08-20 14:34:11 +03:00
a401f926d3 Audio refactoring:
* renamed tSound fields, added descriptions for each field
* getting rid of term 'intensity' in favour of 'max distance'
* renamed two cAudioManager fields
* fix volume not being reduced for stopping sounds that are looped
2021-08-20 14:28:55 +03:00
aap
aed313d81c CAutomobile done 2021-08-20 10:33:02 +02:00
aap
c8623cfe09 CAutomobile fixes 2021-08-20 10:30:31 +02:00
2d41405e29 disable switch workflow for now 2021-08-19 17:31:27 +02:00
32fe837dca rename switch workflow 2021-08-19 17:21:33 +02:00
5ceb3aedeb update librw 2021-08-19 17:03:57 +02:00
843b43001a update librw 2021-08-19 17:03:38 +02:00
a9798d0645 Fix police yelling from empty or destroyed boats 2021-08-19 12:03:27 +03:00
136b25133d Merge branch 'miami' into lcs
# Conflicts:
#	premake5.lua
#	src/audio/AudioLogic.cpp
#	src/audio/sampman_miles.cpp
#	src/audio/sampman_oal.cpp
2021-08-19 11:47:03 +03:00
71e0895dc6 Add AUDIO_REVERB define 2021-08-19 10:53:14 +03:00
51ba90dd52 Audio: ifdef more things that aren't on ps2 2021-08-19 08:45:56 +03:00
2120d4d3ce Fix acceleration sound playing when exiting the vehicle, code fixes in ProcessPlayersVehicleEngine 2021-08-18 18:37:43 +03:00
296e7ed9ad Possible fix of ProcessVehicleOneShots crash 2021-08-18 17:31:34 +03:00
a13089cd2e Port audio changes from master 2021-08-18 15:49:06 +03:00
dff327df40 Merge pull request #1304 from AGraber/patch-1
re3 -> reVC on Switch build workflow file
2021-08-18 02:02:27 +02:00
ba07534d99 re3 -> reVC on Switch build workflow file 2021-08-18 02:00:44 +02:00
aap
c707f92d0a disable movies by default; update librw 2021-08-17 23:22:36 +02:00
aap
a9604a88c2 update librw 2021-08-17 23:21:51 +02:00
aap
dc4ee41b70 fix opengl; update librw 2021-08-17 12:58:52 +02:00
aap
e2014cfd92 fix opengl; update librw 2021-08-17 12:58:39 +02:00
aap
2c4a3b5f5e fix gl vehicle rendering 2021-08-17 11:21:32 +02:00
aap
7374fbf54c fixed car handling!!!!!!! 2021-08-17 09:46:11 +02:00
e73e965d5b Merge pull request #1300 from erorcun/miami
Auto-detect X11 dependency
2021-08-16 19:07:03 +03:00
4e40c6f2ed Auto-detect X11 dependency 2021-08-16 15:20:40 +03:00
0c55f331cf Merge branch 'miami' into lcs 2021-08-16 14:32:15 +03:00
176cadff05 Merge branch 'master' into miami
# Conflicts:
#	src/audio/AudioLogic.cpp
2021-08-16 14:31:40 +03:00
cd0a765f66 Merge branch 'master' into miami
# Conflicts:
#	src/audio/AudioCollision.cpp
#	src/audio/AudioLogic.cpp
#	src/audio/AudioManager.cpp
#	src/audio/AudioManager.h
#	src/audio/sampman.h
#	src/audio/sampman_miles.cpp
#	src/core/Frontend.cpp
#	src/core/MenuScreens.cpp
#	src/core/MenuScreensCustom.cpp
#	src/core/common.h
#	src/core/config.h
#	src/vehicles/Automobile.cpp
2021-08-16 14:13:31 +03:00
2633295ada Merge branch 'miami' into lcs 2021-08-16 10:33:54 +03:00
dc28d52d08 LCS audio reflections values 2021-08-16 10:33:46 +03:00
76f2191476 Remove not needed entry from config 2021-08-16 10:31:35 +03:00
d7e764d519 Merge branch 'miami' into lcs
# Conflicts:
#	README.md
#	gamefiles/TEXT/american.gxt
#	gamefiles/TEXT/french.gxt
#	gamefiles/TEXT/german.gxt
#	gamefiles/TEXT/italian.gxt
#	gamefiles/TEXT/spanish.gxt
#	src/audio/AudioLogic.cpp
#	src/core/config.h
#	src/vehicles/Automobile.cpp
#	utils/gxt/american.txt
#	utils/gxt/french.txt
#	utils/gxt/german.txt
#	utils/gxt/italian.txt
#	utils/gxt/spanish.txt
2021-08-16 10:09:39 +03:00
d6fbf9fbe7 PS2 audio reflections 2021-08-16 10:02:29 +03:00
c7e05c74b9 Fix cAudioManager::ProcessVehicleEngine return type, rename Sound Intensity 2021-08-16 10:00:10 +03:00
9ed94f310a Fix CW build 2021-08-16 09:57:40 +03:00
aap
77f692c669 some CAutomobile fixes 2021-08-16 00:26:01 +02:00
aap
f4894952fc Merge branch 'lcs' of github.com:GTAmodding/re3 into lcs 2021-08-16 00:25:14 +02:00
aap
2f92ccecb1 work on CAutomobile 2021-08-16 00:19:09 +02:00
8e2ed40f66 small revision 2021-08-16 01:03:08 +03:00
9ba2f7d43c fix 2021-08-15 23:32:10 +03:00
7d1cfe50af Merge remote-tracking branch 'upstream/miami' into miami 2021-08-15 23:30:52 +03:00
dec09bde1c fix 2021-08-15 23:30:25 +03:00
9deabc7b60 Merge pull request #1295 from erorcun/miami
Fix impossible bullets
2021-08-15 18:44:30 +03:00
495a447c8a merged correct switch 2021-08-15 18:43:30 +03:00
25075decb2 bruh 2021-08-15 18:43:26 +03:00
1b178a55d7 actual fix 2021-08-15 18:43:22 +03:00
e30e1ccccd lil fix 2021-08-15 18:43:19 +03:00
6bdfb0d386 merged correct switch 2021-08-15 18:41:59 +03:00
26e5a7eed1 bruh 2021-08-15 18:41:19 +03:00
042284de8b actual fix 2021-08-15 18:36:48 +03:00
435b8fe52e Fix impossible bullets 2021-08-15 18:34:43 +03:00
3441714a13 lil fix 2021-08-15 18:28:34 +03:00
f4e723e690 Fix .ini fix for glfw 2021-08-15 03:59:12 +03:00
0db14d718c All the sliders, unite 2021-08-15 03:39:38 +03:00
fd52285074 Fix premature .ini saving leading to missing bindings 2021-08-15 03:29:49 +03:00
eadf0496bf fixed heli buoyancy 2021-08-14 23:31:32 +03:00
4a5f7464c1 Switch PR & remove X11 part from CMakeLists 2021-08-14 18:09:07 +03:00
39d2c427e5 merge miami 2021-08-14 17:18:34 +03:00
958e2f36bb ginput script 2021-08-14 16:44:09 +03:00
ba859dc3b5 fix 2021-08-14 16:31:34 +03:00
3a95c77c9e Revert "map memory usage high default"
This reverts commit 81c6c5e47a.
2021-08-13 00:51:05 +03:00
81c6c5e47a map memory usage high default 2021-08-12 23:08:33 +02:00
4141caa4d6 Merge branch 'miami' into lcs
# Conflicts:
#	src/audio/AudioLogic.cpp
#	src/audio/sampman.h
#	src/audio/sampman_miles.cpp
#	src/core/Radar.cpp
#	src/core/config.h
2021-08-12 16:04:25 +03:00
0a2df3ca4c Fix sampman_null 2021-08-12 15:03:38 +03:00
92c5cf1877 Sync audio changes from master 2021-08-12 14:57:16 +03:00
43fbf297c8 Waypoint text fix 2021-08-12 14:15:49 +03:00
ec22576e49 Merge remote-tracking branch 'aap/lcs' into lcs
# Conflicts:
#	src/vehicles/Vehicle.cpp
#	src/vehicles/Vehicle.h
2021-08-12 11:45:25 +03:00
9a1b826021 Merge remote-tracking branch 'origin/miami' into lcs 2021-08-12 11:43:17 +03:00
b99edf9a6b mission retry fix 2021-08-12 11:23:10 +03:00
cb35f78511 lil fix 2021-08-12 01:30:26 +03:00
68c37d2d88 Reverse miami vice ped comments 2021-08-11 10:55:00 +03:00
80dc23621e uncomment GetSpecialCharacterTalkSfx 2021-08-11 10:47:02 +03:00
b289bb4edb Reverse special characters' ped comments 2021-08-11 10:09:20 +03:00
2c79080e1b Merge branch 'miami' into lcs
# Conflicts:
#	src/core/Radar.cpp
#	src/core/Radar.h
2021-08-11 09:36:58 +03:00
75f812cfcd Merge branch 'master' into miami
# Conflicts:
#	src/control/CarCtrl.cpp
#	src/control/RoadBlocks.cpp
#	src/core/Radar.cpp
#	src/core/Radar.h
#	src/peds/Ped.cpp
#	src/peds/Population.cpp
#	src/renderer/Renderer.cpp
#	src/vehicles/CarGen.cpp
2021-08-11 09:32:59 +03:00
463fdab6a4 Fix a bunch of CModelInfo::GetModelInfo->GetColModel calls, part 2 2021-08-11 08:42:26 +03:00
d7a28c4d2b Fix a bunch of CModelInfo::GetModelInfo->GetColModel calls 2021-08-11 08:35:01 +03:00
0544beb00d Add sprite to the waypoint marker 2021-08-11 08:15:30 +03:00
ab5965cc8d fix steam saves 2021-08-09 16:36:15 +02:00
e042ba6f24 Merge remote-tracking branch 'upstream/lcs' into lcs 2021-08-09 00:57:35 +03:00
4b7dc08bf5 debug func fix 2021-08-09 00:57:18 +03:00
c851d9a6ba Merge branch 'miami' into lcs 2021-08-09 00:08:42 +03:00
3869369703 Merge remote-tracking branch 'upstream/miami' into miami 2021-08-09 00:07:50 +03:00
2ee32abf84 fix bug in CCurves 2021-08-09 00:07:02 +03:00
c5af250959 debug func 2021-08-08 23:48:07 +03:00
42ad9c4378 Comment out text following #endif 2021-08-08 18:09:56 +03:00
26a9ac91ee Merge branch 'miami' into lcs 2021-08-08 18:02:45 +03:00
76a22c0d13 Fix 2021-08-08 18:02:23 +03:00
f887d515fa Sync fix from miami 2021-08-08 17:53:01 +03:00
729ef37040 merge 2021-08-08 17:44:38 +03:00
e17504a36a Merge branch 'master' into miami 2021-08-08 17:43:07 +03:00
4673f509f6 Revert "small fix"
This reverts commit bd96584433.
2021-08-08 17:42:32 +03:00
7b9d8c5a1f merge 2021-08-08 17:36:08 +03:00
8d9508bda4 Merge branch 'master' into miami 2021-08-08 17:34:28 +03:00
68db861c45 merge 2021-08-08 17:29:57 +03:00
873840a6a5 merge 2021-08-08 17:19:49 +03:00
478bdcc1ca merge 2021-08-08 17:14:21 +03:00
74f00c3c63 merge 2021-08-08 15:46:47 +03:00
668311a444 Merge branch 'master' into miami 2021-08-08 15:44:18 +03:00
88b4c7b50b merge 2021-08-08 15:34:02 +03:00
9cc1201892 merge 2021-08-08 13:38:21 +03:00
e6b1a0691b lcs bridge 2021-08-08 13:08:47 +03:00
0c4ab5b609 disable mission replay for lcs 2021-08-08 10:51:04 +03:00
2672504e8a more cherry-pick fix 2021-08-07 20:40:27 +03:00
a7e86e0510 cherrypick fixes 2021-08-07 20:40:18 +03:00
827f0ffbb6 move debug 2021-08-07 20:35:01 +03:00
883e8390c9 move debug script stuff to a separate file 2021-08-07 20:26:33 +03:00
c69edce800 mission replay 2021-08-07 20:24:01 +03:00
747705d430 lcs specific hack 2021-08-07 20:03:45 +03:00
e947081622 Merge pull request #1266 from Nick007J/miami
Mission replay
2021-08-07 18:47:28 +03:00
aap
621f941ff7 CVehicle done 2021-08-04 13:56:29 +02:00
aap
1cfd4f741e Merge pull request #1276 from aap/lcs
CPhysical almost done
2021-08-04 13:56:22 +02:00
aap
bec1cbc1cb CVehicle fixes and cleanup 2021-08-04 13:54:26 +02:00
80d00fe31a more cherry-pick fix 2021-08-03 22:20:14 +03:00
6fbb7da82d cherrypick fixes 2021-08-03 22:14:58 +03:00
5a22896197 move debug 2021-08-03 21:53:45 +03:00
8bcbee4ea7 move debug script stuff to a separate file 2021-08-03 21:53:42 +03:00
5999ddc76d Merge remote-tracking branch 'upstream/miami' into miami 2021-08-03 21:44:18 +03:00
aap
0338d4c393 CPhysical almost done 2021-08-02 20:05:39 +02:00
aap
4a047f56bc CPhysical fixes and cleanup 2021-08-02 20:02:57 +02:00
ae1deb2209 Merge pull request #1267 from erorcun/miami
Add ped&car density sliders, fix peds don't spawn
2021-08-02 18:23:06 +03:00
418bf3ab69 Fix R* optimization that prevents peds to spawn 2021-08-01 13:56:24 +03:00
192190769d Add ped and car density slider to menu, remove dumb collision "optimization" 2021-08-01 13:56:09 +03:00
1479093d33 Merge remote-tracking branch 'upstream/miami' into miami 2021-08-01 12:54:20 +03:00
70080f1fdb mission replay 2021-08-01 12:54:05 +03:00
e80cbf8bb2 Fix radio scroll when player controls disabled 2021-07-31 22:57:54 +03:00
a481b900b9 Merge branch 'miami' into lcs
# Conflicts:
#	src/control/CarCtrl.cpp
#	src/modelinfo/MloModelInfo.cpp
#	src/modelinfo/MloModelInfo.h
#	src/renderer/Renderer.cpp
#	src/rw/VisibilityPlugins.cpp
#	src/rw/VisibilityPlugins.h
2021-07-31 20:43:52 +03:00
d923cd2f24 Allow sector ped count to exceed gap-list size
This solves the gnNumTempPedList assertion.
To prove this works, change gapTempPedList's length to 12, and visit the
Triad's basketball court.

# Conflicts:
#	src/peds/Ped.cpp
2021-07-31 20:34:32 +03:00
835fa4e74b Make cars and peds to not despawn when you look away
# Conflicts:
#	src/control/CarCtrl.cpp
#	src/core/config.h
#	src/peds/Population.cpp
2021-07-31 20:32:13 +03:00
aap
bf035b8167 Merge pull request #1259 from aap/lcs
CVisibilityPlugins, CRenderer, some fixes
2021-07-31 19:08:01 +02:00
e8dcc8432d Possible crashfix with wanted level 2021-07-30 20:36:07 +03:00
aap
3f3e258d77 CVisibilityPlugins, CRenderer, some fixes 2021-07-29 19:59:34 +02:00
aap
30061396e8 CVisibilityPlugins and CRenderer fixes; pulled MLO back in 2021-07-29 19:43:06 +02:00
b77d93ba4a Merge branch 'miami' into lcs
# Conflicts:
#	src/audio/AudioLogic.cpp
2021-07-29 01:59:20 +03:00
7bacf3b6f4 Reverse unused audio functions 2021-07-29 01:52:49 +03:00
cce97588fe Reverse unused audio functions from mobile
# Conflicts:
#	src/audio/AudioManager.h
2021-07-29 00:43:04 +03:00
04126cd18a Merge branch 'miami' into lcs 2021-07-28 10:32:58 +03:00
2aa37813d2 cAudioManager declaration reordering 2021-07-28 10:32:43 +03:00
92679555b9 Merge branch 'miami' into lcs
# Conflicts:
#	src/audio/AudioLogic.cpp
#	src/audio/MusicManager.cpp
2021-07-28 09:42:24 +03:00
8960ffaf0b Get rid of audio getters 2021-07-28 09:39:57 +03:00
7adc85995f Merge branch 'miami' into lcs
# Conflicts:
#	src/audio/AudioLogic.cpp
#	src/audio/AudioManager.h
2021-07-28 09:24:23 +03:00
61176acbad Ped comments ordering and type fix + vice function(s) fix 2021-07-28 09:17:38 +03:00
98003d0d41 Merge branch 'miami' into lcs
# Conflicts:
#	src/audio/AudioLogic.cpp
2021-07-28 00:56:42 +03:00
49ee711c75 AudioLogic type fixes and reordering (after peds) 2021-07-28 00:55:22 +03:00
029e315f0a Merge branch 'miami' into lcs
# Conflicts:
#	src/audio/AudioLogic.cpp
2021-07-28 00:42:18 +03:00
16f892b667 AudioLogic type fixes and reordering (before peds) 2021-07-28 00:41:34 +03:00
f82c3c8ea7 Merge branch 'miami' into lcs 2021-07-27 22:39:14 +03:00
9dbaa7a77f PolRadio type fixes 2021-07-27 22:38:57 +03:00
fbb42085bd Merge branch 'miami' into lcs 2021-07-27 22:30:45 +03:00
7aa8d7c073 AudioManager.cpp reordering 2021-07-27 22:29:40 +03:00
c4f5cbce5e fix 2021-07-27 22:27:13 +03:00
c26a57fb9f fix 2021-07-27 22:18:24 +03:00
ad2ccdb44a Merge branch 'miami' into lcs 2021-07-27 22:02:45 +03:00
782d38c6b7 Sort AudioCollision functions into original order 2021-07-27 22:02:25 +03:00
ec7d702185 Merge pull request #1255 from Nick007J/lcs
low effort save support
2021-07-27 20:59:08 +03:00
6dc8c5bd92 Merge branch 'miami' into lcs 2021-07-27 20:58:17 +03:00
0461a36a4e fix 2021-07-26 21:59:56 +03:00
9e374491c5 Merge remote-tracking branch 'upstream/lcs' into lcs 2021-07-26 21:58:37 +03:00
c0488b3190 Fix stuck looking flag when answering phone and idle weapon animation 2021-07-26 20:40:55 +03:00
1180f32d9c Fix bike kick sound 2021-07-26 11:33:56 +03:00
371f1be9b3 Fix smooth spray when using chainsaw or when you stop shooting while using free camera and PC controls 2021-07-26 09:54:04 +03:00
250727c9ca Fix muzzleflash rotation 2021-07-26 09:52:39 +03:00
f7a2c265b3 Remove deceiving comment 2021-07-26 09:16:43 +03:00
123f2fda9b Fix ridiculously accurate bullets when you shoot behind with enabled free camera 2021-07-26 08:22:57 +03:00
1aac4d802f Fix Tommy looking at one spot due to crouching + shooting 2021-07-26 07:41:34 +03:00
ed9c911a0e Fix traffic light corona facing wrong side 2021-07-26 04:40:23 +03:00
a510a03b8a Small fix 2021-07-25 22:27:00 +03:00
c234cb4663 Law enforcers and generic female ped comments 2021-07-25 22:16:02 +03:00
c7d3b88cb7 Merge remote-tracking branch 'upstream/lcs' into lcs 2021-07-25 21:44:31 +03:00
bf4b39781b low effort save support 2021-07-25 21:44:21 +03:00
d83b8cf940 Merge branch 'miami' into lcs
# Conflicts:
#	src/renderer/Hud.cpp
2021-07-25 21:01:00 +03:00
5032d24ad8 Fix 2021-07-25 19:59:02 +03:00
601f63f4fb Sync fix from master 2021-07-25 19:50:00 +03:00
1619d2395e Merge remote-tracking branch 'upstream/lcs' into lcs 2021-07-25 11:58:41 +03:00
b69222e017 friggin the riggin 2021-07-25 11:58:03 +03:00
d86637daea Merge pull request #1025 from Nick007J/lcs
Ferries
2021-07-25 11:57:21 +03:00
dc729009ac Merge remote-tracking branch 'upstream/lcs' into lcs 2021-07-24 01:02:23 +03:00
bf757fc960 Fix CPlayerInfo distance types 2021-07-24 00:59:19 +03:00
aec797671e Fix aiming with minigun and flamethrower with PC controls 2021-07-22 22:15:27 +03:00
cc13e31264 Merge branch 'miami' into lcs 2021-07-22 21:17:55 +03:00
5e34b1efcf Possible fix of RemoveAndAdd crash 2021-07-22 20:37:49 +03:00
953e4fc4ff Fix falling damage 2021-07-22 20:07:51 +03:00
bbbe9b2632 Fix enum use 2021-07-22 07:06:54 +03:00
a1444b992f Fix Predator shooting sound 2021-07-22 07:01:04 +03:00
76558e9313 fix garbage data written in garage save block 2021-07-19 23:44:01 +02:00
7a034142c9 Merge branch 'miami' into lcs
# Conflicts:
#	premake5.lua
2021-07-18 00:05:51 +03:00
c937bdbfea render -> renderer (original name) 2021-07-18 00:03:57 +03:00
cb7f18f268 fix 2021-07-17 15:49:28 +03:00
0a23afebb7 Merge remote-tracking branch 'upstream/lcs' into lcs 2021-07-17 10:06:37 +03:00
ec5a07b049 Merge remote-tracking branch 'origin/miami' into lcs 2021-07-15 19:11:32 +02:00
c8cb1ed013 Merge pull request #1219 from withmorten/miami-ini
miami: switch out current ini_parser.hpp with pulzed/mINI
2021-07-15 18:56:14 +02:00
026a2b3f1f Merge remote-tracking branch 'origin/miami' into lcs
# Conflicts:
#	src/audio/sampman.h
#	src/audio/sampman_miles.cpp
#	src/audio/sampman_oal.cpp
#	src/core/config.h
2021-07-15 18:07:22 +03:00
780cd225e9 Make PS2 VB files work together with PC audio files 2021-07-15 18:06:12 +03:00
3377709c4b Merge branch 'miami' into lcs 2021-07-15 00:51:01 +03:00
17fca82401 Update GXT 2021-07-15 00:50:41 +03:00
02c4ada807 Remove stupid cast 2021-07-15 00:49:46 +03:00
81aece7117 Merge remote-tracking branch 'upstream/lcs' into lcs 2021-07-13 19:43:48 +03:00
fb5a207abc Fix NearPed count going negative 2021-07-13 17:45:01 +02:00
7f544f9049 Fix artifact path 2021-07-13 01:32:43 +02:00
6665b16ba2 Nintendo Switch support 2021-07-13 01:18:49 +02:00
523b23339c disable USE_CUTSCENE_SHADOW_FOR_PED if COMPATIBLE_SAVES isn't defined 2021-07-13 00:21:11 +02:00
c982700a69 Enable cutscene shadows 2021-07-13 01:00:00 +03:00
6f0f9d7d69 Merge remote-tracking branch 'origin/miami' into lcs 2021-07-12 23:36:37 +02:00
b69cee3801 fix premake 2021-07-12 23:28:05 +02:00
6c097398d1 fix FixGarages 2021-07-12 22:47:17 +02:00
91d958bf27 Merge remote-tracking branch 'upstream/lcs' into lcs 2021-07-12 10:32:01 +03:00
bef07b6353 small changes 2021-07-12 10:31:48 +03:00
2f7ae611ed Vanilla config for Windows and win-x86 only 2021-07-12 04:26:27 +02:00
55d30a11ec Merge branch 'miami' into lcs
# Conflicts:
#	README.md
#	gamefiles/TEXT/american.gxt
#	gamefiles/TEXT/french.gxt
#	gamefiles/TEXT/german.gxt
#	gamefiles/TEXT/italian.gxt
#	gamefiles/TEXT/spanish.gxt
#	src/audio/AudioManager.h
#	src/control/Garages.cpp
#	src/control/Garages.h
#	src/control/Script5.cpp
#	src/core/config.h
#	utils/gxt/american.txt
#	utils/gxt/spanish.txt
2021-07-12 04:13:22 +03:00
3f5fdc39a5 Reorganize config.h 2021-07-12 03:58:34 +03:00
6f52ad190e miami: switch out current ini_parser.hpp with pulzed/mINI 2021-07-12 01:23:46 +02:00
02e84b4b97 Merge pull request #1150 from withmorten/miami-saves
miami: finish COMPATIBLE_SAVES and FIX_INCOMPATIBLE_SAVES
2021-07-12 01:07:32 +03:00
dc29e7c044 Add PED DENSITY and CAR DENSITY lines to GXT 2021-07-11 23:55:11 +03:00
776d46aacb Merge remote-tracking branch 'upstream/lcs' into lcs 2021-07-11 10:23:59 +03:00
f686065769 get rid of // done comments in audiomanager.h 2021-07-11 03:59:37 +02:00
58de524d70 tiny diff fix 2021-07-11 03:26:59 +02:00
8a114514d9 fix hotring flap stat line 2021-07-11 00:30:26 +02:00
9f0a96ac89 Physical: division by zero fix 2021-07-10 23:27:00 +03:00
6f103a3b82 finish COMPATIBLE_SAVES and FIX_INCOMPATIBLE_SAVES 2021-07-10 02:06:43 +02:00
61c2398b67 readme: fix lto option 2021-07-10 01:17:38 +02:00
6a2ce20313 Merge remote-tracking branch 'origin/miami' into lcs
# Conflicts:
#	gamefiles/TEXT/german.gxt
#	utils/gxt/german.txt
2021-07-10 02:10:12 +03:00
41f3d4d9d7 recompile german.gxt 2021-07-10 01:07:47 +02:00
71d1b46417 Merge branch 'miami' into lcs
# Conflicts:
#	utils/gxt/german.txt
2021-07-10 02:07:14 +03:00
df8ef2d58d Merge pull request #1135 from RuesanG/patch-2
Update reVC German.txt
2021-07-10 01:07:13 +02:00
4981fe3091 Remove redundant SampleManager.InitialiseChannel call 2021-07-10 02:06:35 +03:00
ddf2b09e55 Update GXT compiler with fix of German 2021-07-10 02:04:35 +03:00
026cd10f3f Update german.txt 2021-07-10 00:43:26 +02:00
ffe199290b fix jittery cars at 15fps 2021-07-09 18:51:27 +02:00
0b269571d7 add librw defines to vanilla defines undefs 2021-07-09 18:05:26 +02:00
d781db6c0f Merge branch 'miami' into lcs
# Conflicts:
#	README.md
#	premake5.lua
2021-07-09 00:05:26 +03:00
7a1ff3b2ad Mission audio cleanup + sound pause 2021-07-09 00:02:35 +03:00
72f6780905 Use CPad functions to check key states in script loader 2021-07-08 03:37:14 +03:00
79c010f082 fix macro redefinition warnings on win-glfw build 2021-07-08 01:44:55 +02:00
e6544a6983 fix sampman_null build 2021-07-07 01:59:16 +02:00
37a43ebf45 fix: printHash.sh; replace echo -n, check if $1 is set. 2021-07-05 22:40:30 +02:00
c5e896c420 fix: add missing limits.h includes to enable bulding on musl. 2021-07-05 22:40:21 +02:00
0b27a3dc23 fix cmake workflow 2021-07-05 19:08:52 +02:00
74fd58513b Merge pull request #1203 from AGraber/miami_librw_update
miami: Update librw
2021-07-04 19:34:47 +03:00
2029ac3d62 Update librw 2021-07-04 18:17:22 +02:00
62425b5866 Merge remote-tracking branch 'upstream/lcs' into lcs 2021-07-04 15:24:54 +03:00
10d7b303a5 Update README.md 2021-07-03 23:11:35 +02:00
70876d3cde fix screenshot name 2021-07-03 16:43:35 +02:00
3750124dcc Add MacOS to Readme 2021-07-03 16:41:10 +03:00
1d51734d0b Fix Mac M1 premake 2021-07-03 16:39:27 +03:00
5d5e0f62e8 Merge branch 'miami' into lcs
# Conflicts:
#	premake5.lua
2021-07-03 16:39:22 +03:00
3ed4cdf109 Fix overflow in audio code 2021-07-03 15:57:08 +03:00
a92dcaa0b1 premake: add no-full-paths option for CI builds, rename lto to with-lto 2021-07-03 03:03:25 +02:00
1c0878f65b Sanitizer fixes 2 2021-07-03 02:57:32 +03:00
43631ba203 smol fix 2 2021-07-03 01:40:26 +02:00
f9f854c4a8 smol fix 2021-07-03 01:36:44 +02:00
4eea98c66b Peds: Efforts to find the reason of crashes on GCC 7.5.0
* Prevent deleted peds to be in nearPeds list (was always needed, might be unrelated to crashes)
* Add asserts to nearPeds and PedIK ctor (crash reasons)
* Shouldn't fix reported crashes since they were caused by null peds.
2021-07-02 23:56:54 +03:00
10cc444482 Merge remote-tracking branch 'upstream/lcs' into lcs 2021-07-02 11:28:46 +03:00
987e09515b Fix use of integer in RemoveBuildingsNotInArea call 2021-07-02 10:33:45 +03:00
9ea3549743 GameLogic - type fixes 2021-07-02 10:30:39 +03:00
ae4bfef590 Refactor OnscreenTimer 2021-07-02 10:22:34 +03:00
8e6e46a919 Fix collision loading for mission entities 2021-07-02 00:18:38 +03:00
65219365db fix compilation when ctype.h is included 2021-07-01 21:51:52 +02:00
3988fec6e7 Fix sound of water when changing MSAA or windowed/fullscreen mode 2021-07-01 21:39:15 +03:00
2d38eb923d zero out work_buff before writing padding in save 2021-07-01 18:09:32 +02:00
dd790b00e5 Merge branch 'miami' into lcs
# Conflicts:
#	src/audio/MusicManager.cpp
2021-06-30 21:46:08 +03:00
cb72fee941 fix 2021-06-30 21:45:19 +03:00
138abb91f6 Merge branch 'miami' into lcs
# Conflicts:
#	src/control/CarCtrl.cpp
#	src/control/Script4.cpp
#	src/core/Frontend.cpp
2021-06-30 21:26:36 +03:00
a73a2c9179 Pause radio when game is paused 2021-06-30 21:21:45 +03:00
b1c9340fd3 Fix unused code 2021-06-30 21:16:48 +03:00
abe57fefa0 fix some string sizes to be MAX_PATH 2021-06-30 16:28:07 +02:00
d31a7e24a8 Fix text in elevator cam 2021-06-30 13:53:10 +03:00
cac1c5bd42 Saner loop 2021-06-30 04:12:59 +03:00
9f0daee186 Sanitizer fixes 2021-06-30 03:31:10 +03:00
de4699a97e fix no VALIDATE_SAVE_SIZE build 2021-06-28 18:14:15 +02:00
fdbd414299 Fix MP3 finding stack crash 2021-06-28 17:44:48 +03:00
d17d437de3 rename clamp macro to Clamp to fix compilation with g++11 (and clamp2 for consistency sake) 2021-06-28 13:57:05 +02:00
1c5a864598 Fix script load 2021-06-28 05:23:58 +03:00
eaebaa6db3 Merge branch 'miami' into lcs
# Conflicts:
#	src/control/Script5.cpp
#	src/entities/Entity.cpp
2021-06-28 05:16:21 +03:00
f8297df9c5 Redo ReadSaveBuf + common.h cleanup 2021-06-28 05:12:54 +03:00
3e9c983f5c Merge pull request #1153 from kusst/texread
Make colors in texture conversion dialog more LCSy.
2021-06-27 23:24:16 +03:00
73e112a217 Merge remote-tracking branch 'upstream/lcs' into lcs 2021-06-27 14:53:43 +03:00
879761af2c Merge fixes 2021-06-27 14:51:48 +03:00
c7243aa2e9 Merge remote-tracking branch 'origin/miami' into lcs 2021-06-27 14:49:14 +03:00
3587cb029e Remove waiting for stream closure in multi-thread audio 2021-06-27 14:42:52 +03:00
883d8172b0 Merge remote-tracking branch 'origin/miami' into lcs 2021-06-27 14:33:39 +03:00
05a29c7e6c Multi-threaded audio fixes 2021-06-27 00:00:07 +03:00
ab38b0089e reVC: Update Linux 64bit build download link 2021-06-26 19:24:50 +02:00
9c8ef3cca0 Merge pull request #1151 from erorcun/miami
Multi-threaded audio streams on OAL
2021-06-26 16:28:43 +03:00
107c4df69c Multi-threaded audio streams
Under MULTITHREADED_AUDIO define.
2021-06-26 16:24:23 +03:00
636f67ca3f Merge remote-tracking branch 'upstream/lcs' into lcs 2021-06-26 14:34:52 +03:00
d4ba7c387b Merge remote-tracking branch 'origin/miami' into lcs
# Conflicts:
#	README.md
#	premake5.lua
#	src/render/Particle.cpp
2021-06-26 14:27:54 +03:00
831737ecc8 Fixes 2021-06-26 14:25:40 +03:00
9ab4f1a2d9 fix screenshot name space 2021-06-26 13:13:43 +02:00
d8f5e86ede swap out codewarrior reVC.mcp with xml export 2021-06-26 03:43:40 +02:00
85d60b36da fix tabs in premake 2021-06-26 03:20:18 +02:00
225530ef04 Fix premature CTimer calls 2021-06-26 04:12:04 +03:00
ebd980bf14 Make colors in texture conversion dialog more LCSy. 2021-06-25 22:45:21 +02:00
c869602b6d Merge pull request #1148 from withmorten/miami-githash
miami: add no-git-hash option to premake
2021-06-25 19:51:52 +02:00
9382e86d38 Fix Particle FPE 2021-06-25 18:29:38 +03:00
0b057f34c9 Update invite link 2021-06-25 16:24:26 +03:00
8a5afd0db2 sync 2021-06-25 10:15:19 +03:00
4e3fc35401 add no-git-hash option to premake 2021-06-25 02:41:40 +02:00
940d6bf6d3 Merge remote-tracking branch 'origin/miami' into lcs 2021-06-25 03:40:41 +03:00
5341840943 fix cmake build. 2021-06-25 02:38:50 +02:00
a3ae267e83 Merge branch 'miami' into lcs 2021-06-25 02:41:33 +03:00
f46461331c Refactor CTimer::Update 2021-06-25 02:40:56 +03:00
4660491243 Timer fix 2021-06-25 02:22:07 +03:00
7e7a2b74cd Fixes 2021-06-25 01:16:03 +03:00
e671fe682d Merge remote-tracking branch 'GitHub/miami' into lcs 2021-06-25 00:47:06 +03:00
e5aa150557 Frontend fix 2021-06-25 00:40:00 +03:00
14c71f39ff High FPS Fixes 2021-06-25 00:39:47 +03:00
1254c1202a Merge branch miami into lcs 2021-06-24 21:52:24 +03:00
74867af2e7 Fixes 2021-06-24 21:50:09 +03:00
3ebc475494 Don't restart OAL device when switching EAX 2021-06-24 21:46:46 +03:00
27df328ec2 Make sampman stream functions default to stream 0 + type fixes 2021-06-24 21:46:21 +03:00
4351198bf5 forgotten field in CBaseModelInfo::Shutdown 2021-06-24 21:46:21 +03:00
7c3457257b Small fix 2021-06-24 21:46:21 +03:00
ba23408007 Fix use of enum in ped comment banks switch 2021-06-24 21:46:21 +03:00
eaaba8646b forgot 2021-06-24 21:46:21 +03:00
0910188058 Add macros to set sample loop offsets 2021-06-24 21:46:18 +03:00
3cc9eb1c1c Fix cAudioManager::ProcessCarHeli 2021-06-24 21:45:49 +03:00
db1c7de125 Fix bullet trace sound offset 2021-06-24 21:45:49 +03:00
7a351f18ba fix 2021-06-24 21:45:48 +03:00
776e8ff2ee Fix some timer calls 2021-06-24 21:45:48 +03:00
3aac4ea62a Fix sin & cos calls 2021-06-24 21:45:48 +03:00
1558788df1 Fix IsSphereVisible calls 2021-06-24 21:45:48 +03:00
aap
29d47da61e CEntity and C(Vu)Vector fixes and cleanup 2021-06-24 21:45:45 +03:00
aap
e014bb5359 CEntity done; C(Vu)Vector fixes and cleanup 2021-06-24 21:45:21 +03:00
fb03ee45b5 Undef PS2_AUDIO_CHANNELS for SQUEEZE_PERFORMANCE and VANILLA_DEFINES
# Conflicts:
#	src/core/config.h
2021-06-24 21:45:21 +03:00
60bb16d26c Increase the number of audio channels to PS2 count and some small audio fixes 2021-06-24 21:45:18 +03:00
b5bc3a9000 Fix MAX_DIGITAL_MIXER_CHANNELS 2021-06-24 21:44:40 +03:00
f34365dfc0 some fixes for CPed 2021-06-24 21:44:40 +03:00
1fa0116f5f Use bool8 in audio code 2021-06-24 21:44:36 +03:00
c7821635fd Wait states ported (scripted animations) 2021-06-24 21:42:10 +03:00
0c3ee871f4 Fix C3dMarkers::PlaceMarker calls in Radar 2021-06-24 21:42:10 +03:00
714cd47db9 Original pool sizes 2021-06-24 21:42:10 +03:00
008f8a1e19 Fix mod 0 crash 2021-06-24 21:42:10 +03:00
499b16678f Fix engine sounds, player and male01 ped comments 2021-06-24 21:42:10 +03:00
0682cdedbd Fall back to mp3 if vb is not found 2021-06-24 21:42:10 +03:00
1471c82a20 LCS sfx + mission audio 2021-06-24 21:42:08 +03:00
b8cf8c53e7 Don't restart OAL device when switching EAX 2021-06-24 21:34:33 +03:00
5156626582 Make sampman stream functions default to stream 0 + type fixes 2021-06-24 21:34:33 +03:00
fe65f20a30 forgotten field in CBaseModelInfo::Shutdown 2021-06-24 21:34:33 +03:00
4b8b0a6d74 Small fix 2021-06-24 21:34:33 +03:00
0f0cb40151 Fix use of enum in ped comment banks switch 2021-06-24 21:34:33 +03:00
2b8ae07ec6 forgot 2021-06-24 21:34:33 +03:00
1b5dbc4b41 Add macros to set sample loop offsets 2021-06-24 21:34:33 +03:00
6426963807 Fix cAudioManager::ProcessCarHeli 2021-06-24 21:34:33 +03:00
23755fdfb4 Fix bullet trace sound offset 2021-06-24 21:34:33 +03:00
793e1223de fix 2021-06-24 21:34:33 +03:00
fad64667a7 Fix some timer calls 2021-06-24 21:34:33 +03:00
6e4a2947ea Fix sin & cos calls 2021-06-24 21:34:33 +03:00
f2c8522daa Fix IsSphereVisible calls 2021-06-24 21:34:33 +03:00
aap
93e9929925 CEntity and C(Vu)Vector fixes and cleanup 2021-06-24 21:34:33 +03:00
be019c6126 Undef PS2_AUDIO_CHANNELS for SQUEEZE_PERFORMANCE and VANILLA_DEFINES
# Conflicts:
#	src/core/config.h
2021-06-24 21:34:33 +03:00
02655313e9 Increase the number of audio channels to PS2 count and some small audio fixes 2021-06-24 21:34:33 +03:00
59ed4d0029 Fix MAX_DIGITAL_MIXER_CHANNELS 2021-06-24 21:34:33 +03:00
42e655b4cc some fixes for CPed 2021-06-24 21:34:32 +03:00
5bcdb933a7 Use bool8 in audio code 2021-06-24 21:34:32 +03:00
bd94c16e78 Fix C3dMarkers::PlaceMarker calls in Radar 2021-06-24 21:34:32 +03:00
618d689dff Pool fixes + peds not forming circle fix 2021-06-24 21:34:28 +03:00
19dd95a1cb Merge branch 'miami' into lcs
* miami:
  Pool fixes + peds not forming circle fix
2021-05-18 08:12:47 +03:00
3596897961 Merge pull request 'Pool fixes + peds not forming circle fix' (#4) from erorcun/re3:miami into miami
Reviewed-on: https://git.jacksmininetwork.co.uk/re/re3/pulls/4
2021-05-18 04:33:47 +00:00
288c3dfc8f Merge branch 'miami' into lcs
* miami:
  Fix quiet police scanner on OpenAL
2021-05-17 18:22:59 +03:00
0c41734c20 Fix quiet police scanner on OpenAL 2021-05-17 17:46:33 +03:00
bd70540b53 Merge branch 'miami' into lcs
* miami:
  Fix oneshot audio crash
2021-05-17 08:06:34 +03:00
3a7cb9c5ce Fix oneshot audio crash 2021-05-17 08:06:05 +03:00
247974afd3 Merge branch 'miami' into lcs
* miami:
  Fixes to sfx names
2021-05-16 13:18:00 +03:00
8a728faeb6 Fixes to sfx names 2021-05-16 13:17:35 +03:00
fdb6428c6b Merge branch 'miami' into lcs
# Conflicts:
#	src/audio/AudioLogic.cpp
2021-05-12 03:29:36 +03:00
2fc431d1bb Complete sfx enum, rename some sounds + fixes of missing ped comments 2021-05-12 03:26:54 +03:00
4e79d53661 Merge branch 'miami' into lcs
* miami:
  fabs -> fabsf
2021-05-10 09:13:51 +03:00
fc1bfcbc21 fabs -> fabsf 2021-05-10 09:13:32 +03:00
8f54093de1 Merge branch 'miami' into lcs
# Conflicts:
#	src/core/World.cpp
2021-05-10 02:48:56 +03:00
4da733145e fix 2021-05-10 02:45:29 +03:00
3dda658e42 Use some GetMatrix/SetMatrix logic based on SA
# Conflicts:
#	src/control/Pickups.cpp
#	src/control/RoadBlocks.cpp
#	src/core/World.cpp
#	src/entities/Entity.cpp
#	src/objects/CutsceneHead.cpp
#	src/objects/Object.cpp
2021-05-10 02:45:04 +03:00
1817727a66 Small Acos fix 2021-05-10 02:36:18 +03:00
519218572a Merge remote-tracking branch 'origin/miami' into lcs
# Conflicts:
#	src/modelinfo/PedModelInfo.cpp
2021-04-09 04:31:46 +03:00
f6f8a24335 Merge branch 'miami' of http://git.jacksmininetwork.co.uk/re/re3 into miami 2021-03-06 19:31:47 +03:00
62b8f0f553 Pool fixes + peds not forming circle fix 2021-03-06 19:28:59 +03:00
aap
ceb22d71dd update librw 2021-03-02 22:23:05 +01:00
97008905b6 Fix FPEs 2021-03-02 03:38:41 +03:00
aap
6122f6980b fix new renderer 2021-02-28 19:07:46 +01:00
aap
7c42ed6edb fix postfx fix 2021-02-28 19:04:15 +01:00
aap
ce604c77ba fix postfx 2021-02-28 15:30:13 +01:00
aap
82245789ed proper radar clipping 2021-02-28 14:55:14 +01:00
aap
d2b5a422e4 update librw 2021-02-28 14:17:14 +01:00
a311f643f9 Fixes 2021-02-28 15:50:51 +03:00
c5303c2ea4 Fix muzzleflash rotation 2021-02-26 20:31:26 +02:00
49b3bf5f2e Merge branch 'miami' into lcs
* miami:
  Uhh, right
2021-02-26 11:08:49 +02:00
478f6e07d4 Uhh, right
# Conflicts:
#	src/audio/AudioManager.h
2021-02-26 11:08:32 +02:00
f6910d35f7 Merge branch 'miami' into lcs
# Conflicts:
#	README.md
#	premake5.lua
#	src/audio/MusicManager.cpp
#	src/core/main.cpp
#	src/core/re3.cpp
#	src/extras/postfx.cpp
#	src/render/Font.cpp
2021-02-26 11:07:32 +02:00
b01d6be3f4 PoliceRadio -> PolRadio (original name) 2021-02-26 10:57:11 +02:00
d506f8588c Fix stack corruption in HandleGraphEvent 2021-02-21 17:15:21 +01:00
1d336d851d Fix Radio Off text more 2021-02-21 18:22:02 +03:00
71cf666bbd A saner way to remove Stingers, may fix Physical crash 2021-02-20 23:58:08 +03:00
040c6f9027 Fix split second Radio Off text 2021-02-19 22:56:39 +03:00
14dcd8f04c Fix MP3 player 2021-02-19 22:32:11 +03:00
aap
b88cf7b939 make debug render groups optional 2021-02-19 18:41:47 +01:00
111ccf5d34 remove nightly 2021-02-19 18:21:20 +01:00
60bc816af5 nil -> false 2021-02-19 16:32:25 +01:00
3d5f0ef318 Update librw to fix Mac hi-dpi 2021-02-19 17:00:03 +03:00
c274c05ce3 Update reVC German.txt 2021-02-19 03:59:22 +01:00
dfa0c8bf19 Merge branch 'miami' of https://github.com/GTAmodding/re3 into miami 2021-02-19 02:30:02 +03:00
82322293fe rename error strings to RELCS 2021-02-18 23:01:46 +01:00
4eea06e620 name error strings to REVC 2021-02-18 22:59:40 +01:00
781617d484 add NoMovies ini option, rename gDrawVersionText, always save ini after loading 2021-02-18 22:55:26 +01:00
946be081b0 Get keyboard input from X11 on Linux 2021-02-19 00:23:14 +03:00
aap
11bc8ea602 update librw; render groups only if extension supported 2021-02-18 20:31:53 +01:00
aap
3457ff48ce d3d9 debug render groups 2021-02-18 13:08:29 +01:00
aap
146ad3b4a1 fix last commit 2021-02-18 12:23:33 +01:00
aap
996772faf2 add debug render groups 2021-02-18 12:21:52 +01:00
aap
8dabde94bf update librw 2021-02-18 11:11:48 +01:00
aap
bb8b823c30 Merge branch 'miami' of github.com:GTAmodding/re3 into miami 2021-02-18 11:10:52 +01:00
aap
9bdc4aace2 update librw 2021-02-18 11:10:20 +01:00
cba1f85026 Add russian support 2021-02-18 11:34:23 +02:00
a2afe54f5a remove generic.txd 2021-02-18 02:45:17 +01:00
037c332158 Merge remote-tracking branch 'origin/miami' into lcs 2021-02-18 02:38:12 +01:00
aap
73612215d8 update librw; gl cleanup 2021-02-18 01:58:59 +01:00
aap
59bf3a1cc4 update librw; gl cleanup 2021-02-18 01:58:42 +01:00
5ce7a0bde4 add updated vanilla-friendly upscale-free ps2 particle 2021-02-18 00:44:52 +03:00
33a648e5f5 remove particle 2021-02-18 00:30:07 +03:00
aap
f670658407 fix particle.txd 2021-02-17 22:07:01 +01:00
aap
3feca1c530 update particle.txd 2021-02-17 21:55:18 +01:00
8dca3182a6 update librw 2021-02-17 14:38:01 +01:00
ac88a00f06 Fix endless vibration in pause menu 2021-02-17 15:09:16 +02:00
a73a3380d7 Merge branch 'miami' of https://github.com/GTAmodding/re3 into miami 2021-02-17 16:00:22 +03:00
691c8e7702 Fix fuzzy #ifdef 2021-02-17 15:59:05 +03:00
0b6fad7619 update librw 2021-02-17 13:58:59 +01:00
75d8dd2bf2 Show Radio Off on interiors that don't want radio 2021-02-17 15:58:52 +03:00
f603f4397d fix premake workflows 2021-02-17 13:40:42 +01:00
aap
0810abd294 update librw; get rid of glew 2021-02-17 13:14:26 +01:00
aap
ed38118008 add hires particle.txd 2021-02-17 11:03:17 +01:00
2b6628aa65 Fix seg fault when configuring controller 2021-02-17 01:12:39 +03:00
d37dc246eb Merge remote-tracking branch 'origin/miami' into lcs
* origin/miami:
  Fix buffer overflow on re3_sem_open/close
2021-02-16 19:41:02 +02:00
396326014d Restore old readme 2021-02-16 19:38:43 +02:00
184f12a214 Remove Vanilla from CI 2021-02-16 19:38:08 +02:00
0f46c8904d Fix 2021-02-16 19:32:43 +02:00
88c11e92d3 Fix buffer overflow on re3_sem_open/close 2021-02-16 18:26:07 +01:00
21278356ec Merge remote-tracking branch 'origin/miami' into lcs
* origin/miami:
  Fix FindClose->closedir
  Only include sys/syscall.h when __linux__ is defined
  Add unnamed semaphore define toggle for CdStreamPosix
  Fix rare stream deadlock on Windows
2021-02-16 18:08:34 +02:00
e38467ef3a Merge remote-tracking branch 'origin/miami' into lcs
# Conflicts:
#	.github/workflows/reLCS_msvc_amd64.yml
#	.github/workflows/reLCS_msvc_x86.yml
#	README.md
#	gamefiles/TEXT/american.gxt
#	gamefiles/TEXT/french.gxt
#	gamefiles/TEXT/german.gxt
#	gamefiles/TEXT/italian.gxt
#	gamefiles/TEXT/spanish.gxt
#	premake5.lua
#	src/animation/AnimManager.cpp
#	src/animation/AnimationId.h
#	src/audio/MusicManager.cpp
#	src/audio/audio_enums.h
#	src/control/Script7.cpp
#	src/core/FileLoader.cpp
#	src/core/re3.cpp
#	src/extras/custompipes_d3d9.cpp
#	src/extras/custompipes_gl.cpp
#	src/extras/postfx.cpp
#	src/extras/shaders/colourfilterVC.frag
#	src/extras/shaders/colourfilterVC_PS.hlsl
#	src/extras/shaders/make_hlsl.cmd
#	src/extras/shaders/obj/colourfilterVC_PS.cso
#	src/extras/shaders/obj/colourfilterVC_PS.inc
#	src/extras/shaders/obj/colourfilterVC_frag.inc
#	src/peds/PedFight.cpp
#	src/render/Font.cpp
#	src/render/Hud.cpp
#	src/render/Particle.cpp
#	src/render/WaterCannon.cpp
#	src/skel/win/gtavc.ico
#	src/vehicles/Automobile.cpp
#	utils/gxt/american.txt
#	utils/gxt/french.txt
#	utils/gxt/german.txt
#	utils/gxt/italian.txt
#	utils/gxt/spanish.txt
2021-02-16 18:08:19 +02:00
1bfd7c0345 Fix FindClose->closedir 2021-02-16 18:31:00 +03:00
ee287f6120 Only include sys/syscall.h when __linux__ is defined 2021-02-16 18:29:55 +03:00
48227bd350 Add unnamed semaphore define toggle for CdStreamPosix 2021-02-16 18:29:41 +03:00
4368841f02 Fix rare stream deadlock on Windows 2021-02-16 17:55:42 +03:00
b451be6c7f PR rules 2021-02-16 16:53:05 +03:00
7c382c85b8 Add PR rules to Readme 2021-02-16 16:52:55 +03:00
78f4e8fdca fix mailbox particle 2021-02-15 21:29:11 +03:00
63e5afda0b fix mailbox particle 2021-02-15 21:25:18 +03:00
aap
08f0f275af removed some f suffixes from shaders 2021-02-15 15:08:19 +01:00
aap
adf688635a removed some f suffixes from shaders 2021-02-15 15:06:37 +01:00
a58d76d27d Revert "always console for windows Debug builds"
This reverts commit a76c962aa3.
2021-02-15 14:58:19 +01:00
a76c962aa3 always console for windows Debug builds 2021-02-15 14:27:35 +01:00
5ce5000b14 Try to fix streams stop after a while 2 2021-02-15 05:09:46 +03:00
6fcea142a2 readme update 2021-02-15 00:54:43 +03:00
e604be65d9 More compatible she-bang line 2021-02-14 21:11:15 +03:00
0681fe3eca cannon fix 2021-02-14 20:11:58 +03:00
3d90a146d8 Merge remote-tracking branch 'upstream/miami' into miami 2021-02-14 20:09:16 +03:00
6ba0d2e6bd fail 2021-02-14 20:08:55 +03:00
70b919137d (Test) Try to fix streams stop after a while 2021-02-14 18:07:21 +03:00
826be7472f update invite link 2021-02-14 16:03:39 +01:00
d6fbfab7b6 update invite link 2021-02-14 16:03:15 +01:00
aap
d0afa692f5 optimize performance -> readme to-do 2021-02-14 09:48:40 +01:00
9f6f9a7af3 Merge pull request #1024 from IlDucci/miami
[Miami] Updating font widths.
2021-02-14 07:53:45 +02:00
49d9aa8188 even more readme fixes 2021-02-14 03:11:52 +01:00
f5fdb91a43 reVC logo 2021-02-14 01:01:33 +03:00
83fdad7e0d Update invite link 2021-02-13 20:09:16 +02:00
44511e28a8 more readme fixes 2021-02-13 17:16:53 +01:00
e5d5160492 glfw window icon 2021-02-13 17:09:12 +01:00
ae8b2198e2 Redone the entire grouping to follow the textures, added ifdefs, added a small legend for the Pricedown characters in EFIGS font1 2021-02-13 16:50:28 +01:00
ddcc19d7cf readme fixes 2021-02-13 15:00:14 +01:00
aap
333530e260 new icon 2021-02-13 14:54:51 +01:00
aap
65f9917b65 clean up debug menu 2021-02-13 14:22:34 +01:00
aap
3db0e827e5 add history section to readme 2021-02-12 21:52:51 +01:00
aap
9df19cbac3 license information 2021-02-12 21:08:55 +01:00
aap
0916971584 update librw 2021-02-12 20:12:48 +01:00
035f0010d8 fix 2021-02-12 21:26:03 +03:00
0ec16a5b0e Fix XInput hotplug 2021-02-12 21:10:52 +03:00
80e4b3db55 Fix sha1 on premake linux 2021-02-12 21:10:39 +03:00
0c60ceeb33 Cmake version for hash 2021-02-12 21:09:46 +03:00
2c784d979a Remove version text, add toggleable debug info(with commit hash!) 2021-02-12 21:09:23 +03:00
e98164ec41 Sync aspect ratio setting with master 2021-02-12 18:00:20 +02:00
b1698948e6 Update TXDs 2021-02-12 12:59:39 +02:00
df336f5ba2 Convert TXDs to VC version, delete unused controller shadows 2021-02-12 09:20:35 +02:00
aadc39eccd Add missing rtpng.h 2021-02-12 08:46:32 +02:00
c5042dcdf6 Add english strings to translations as stubs, also translation notice 2021-02-12 08:14:10 +02:00
9e22eaf798 Fix RW34 2021-02-12 08:06:34 +02:00
aap
c3ced5825d improved readme 2021-02-12 00:58:22 +01:00
aap
c5db1e697b improved readme 2021-02-12 00:57:39 +01:00
aap
879838c9f2 enable screenshots with F12 2021-02-12 00:29:09 +01:00
031195f11d better controller menu txds 2021-02-11 21:51:22 +01:00
46e229c069 use better quality button textures, add generic.txd 2021-02-11 21:36:55 +01:00
438277408b Use VEHICLE_FIREWEAPON in GXTs 2021-02-11 18:36:40 +02:00
998d88763d Fix RC cars detonation button 2021-02-11 18:03:47 +02:00
e4320c02cf Enable BIND_VEHICLE_FIREWEAPON 2021-02-11 17:16:01 +02:00
579ad052ed Fix black screen during credits 2021-02-11 13:30:04 +02:00
7c74c01741 fixed attractors 2021-02-11 13:35:56 +03:00
9d8e32d9b2 Merge pull request #1026 from Sergeanur/VC/ControllerMenu
Controller menu
2021-02-11 12:31:13 +02:00
28f9160bca Fix crash when falling from bike while shooting 2021-02-11 12:13:03 +02:00
4f27a28762 More fixes 2021-02-11 05:03:41 +02:00
9f3f0ee2d2 Fix borders 2021-02-11 04:36:00 +02:00
7c485560c5 Translated string fix 2021-02-11 04:28:21 +02:00
3b0c958600 Merge remote-tracking branch 'upstream/lcs' into lcs 2021-02-10 21:03:20 +03:00
84ede57205 startproject now depends on librw 2021-02-10 18:48:43 +01:00
a2c2a364a4 readme fix 2021-02-10 18:16:14 +01:00
aap
8fb3a3ff23 fix typo 2021-02-10 15:10:27 +01:00
6d56fb41c6 Merge branch 'miami' of https://github.com/GTAmodding/re3 into miami 2021-02-10 15:27:04 +03:00
775db94a96 Ped jump teleport/kill fix 2021-02-10 15:26:42 +03:00
3c7a7bc8a7 Fixes 2021-02-10 13:42:59 +02:00
5072c8b6f0 Merge branch 'miami' into VC/ControllerMenu
* miami:
  Fix repeating pickup sound on revenue pickup
2021-02-10 12:22:12 +02:00
ca85e44c9e Fix repeating pickup sound on revenue pickup 2021-02-10 12:21:21 +02:00
5f3e68ec45 Save vibration setting 2021-02-10 09:16:04 +02:00
d6068c421d Add undef 2021-02-10 09:08:02 +02:00
bf8687590e Add textures 2021-02-10 09:03:13 +02:00
b6af7393e8 Merge remote-tracking branch 'origin/miami' into VC/ControllerMenu
* origin/miami:
  fix clouds
  Use our synonyms for attack anims again
  Detect joystick menu for XInput
  reorganize shaders; use modulate flag; update librw
  fix generic.txd crash
  Use original animation names from VCS

# Conflicts:
#	src/core/MenuScreensCustom.cpp
2021-02-10 09:01:53 +02:00
12330e38cb Controller menu 2021-02-10 08:57:51 +02:00
aap
c06b971b65 fix clouds 2021-02-09 20:03:13 +01:00
aap
26bbbe0037 fix clouds 2021-02-09 20:02:29 +01:00
aap
031df36935 CColModel 2021-02-09 17:45:02 +01:00
94eed33940 Merge branch 'miami' of https://github.com/GTAmodding/re3 into miami 2021-02-08 13:24:49 +03:00
b464bb7fd4 Merge branch 'miami' of https://github.com/GTAmodding/re3 into VCSanim 2021-02-08 13:23:19 +03:00
6db96753d2 botch 2021-02-07 23:33:30 +03:00
9b9ffc4b13 ferries 2021-02-07 23:29:49 +03:00
2cad49940e Use our synonyms for attack anims again 2021-02-07 21:13:54 +03:00
675aef29cf Detect joystick menu for XInput 2021-02-07 19:50:17 +03:00
aap
425f360363 reorganize shaders; use modulate flag; update librw 2021-02-06 16:49:52 +01:00
aap
cc435ea711 Merge branch 'miami' of github.com:GTAmodding/re3 into miami 2021-02-06 10:23:28 +01:00
410eb19ce6 Merge pull request #1013 from Nick007J/lcs
garages
2021-02-06 01:04:06 +03:00
b864103976 Restoring original sorting. 2021-02-05 13:53:24 +01:00
102d105e0a fix 2021-02-05 14:45:03 +03:00
86513cb2c9 [Miami] Updating font widths.
- Fixing widths in SF Arborcrest for the characters ¡, Ñ, ñ, ¿.
 - Fixing the ¡ character width in Rage font.
 - Mapped the characters that are being affected by each width size.
2021-02-05 12:44:41 +01:00
aap
9125e604b9 fix generic.txd crash 2021-02-05 10:58:01 +01:00
09de511c37 fixed plane AI 2021-02-05 11:31:54 +03:00
a78212ea80 fix MASTER crashes 2021-02-04 23:43:04 +01:00
8553120fdb add missing ASCII_STRCMP stuff 2021-02-04 19:47:47 +01:00
42342745f3 CHud::Draw fix 2021-02-04 18:29:47 +01:00
958c828a2c readme fix 2021-02-04 01:42:42 +01:00
1525b105e2 reduce warnings in msvc librw build 2021-02-03 23:29:25 +01:00
bba01a42e1 sync readme with master 2021-02-03 21:40:04 +01:00
ca48ebcb6e MP3 player fixes 2021-02-03 23:03:00 +03:00
3584dac5c0 fix 2021-02-03 22:47:25 +03:00
f6c8225dac Merge remote-tracking branch 'upstream/lcs' into lcs 2021-02-03 22:47:16 +03:00
ca65c76419 fix 2021-02-03 22:46:04 +03:00
4f7793a423 Merge pull request #997 from Fire-Head/lcs
Lcs WaterCannon
2021-02-03 21:44:21 +02:00
2e7726c574 Merge pull request #1022 from IlDucci/miami
[miami] Adding strings to re3's GXT, recompiling GXT files
2021-02-03 21:44:00 +02:00
edc3c48e05 add gamefiles and dlls to premake workflows 2021-02-03 20:28:34 +01:00
1ffa9bb30f Adding strings to re3's GXT, recompiling GXT files
Contains the same new elements as #1017
2021-02-03 19:41:17 +01:00
2ea365e5da Merge pull request #1018 from erorcun/miami
OAL Loops, fixes
2021-02-02 22:40:32 +03:00
713562685a OAL Loops, fixes 2021-02-02 22:30:13 +03:00
ef28d12d85 fix gcc/clang build by adding -fpermssive and -Wno-address-of-temporary 2021-02-02 14:27:21 +01:00
1b293a3cfb no advanced script log when log level is 0 2021-02-02 11:32:20 +01:00
4281730b16 fix UB and potential crashes when doing ice cream 2021-02-02 11:27:30 +01:00
1eb77c4d6d Merge pull request #1016 from erorcun/miami
Overhaul MusicManager - fix radio bugs, scroll to prev station, radio…
2021-02-02 05:31:29 +03:00
902e539c0d Overhaul MusicManager - fix radio bugs, scroll to prev station, radio off text 2021-02-01 14:18:17 +03:00
aap
3f60034c39 add w to CVector; adjust col structs a bit 2021-02-01 10:57:55 +01:00
3e0dbf42d4 Add radio off text 2021-01-31 23:46:45 +02:00
2343e69ce5 Merge branch 'lcs-dev' into lcs 2021-01-31 23:34:41 +03:00
251b2aaeb8 Merge remote-tracking branch 'upstream/lcs' into lcs 2021-01-31 23:34:38 +03:00
48926fcade multiplayer stuff 2021-01-31 23:34:19 +03:00
bb47f3a8e4 fix realloc 2021-01-31 15:02:15 +01:00
264d7d98d7 fix realloc 2021-01-31 15:01:46 +01:00
2e37001881 fix UB and new renderer crashes 2021-01-31 01:19:25 +01:00
e5190481e4 Merge remote-tracking branch 'upstream/miami' into miami 2021-01-31 01:46:33 +03:00
2420325c02 fix 2021-01-31 01:45:07 +03:00
3677749935 Merge branch 'lcs-dev' into lcs 2021-01-31 01:38:48 +03:00
75a20216d9 sync 2021-01-31 01:38:43 +03:00
07a5cc6544 garages 2021-01-31 01:38:00 +03:00
5dfe396af3 use macro for waterlevel z offset 2021-01-30 20:13:25 +01:00
c193ade58b Font fixes 2021-01-30 20:46:37 +02:00
01d4312251 Merge branch 'lcs' into lcs-dev 2021-01-30 20:27:26 +03:00
2c29ab5542 fix 2021-01-30 20:27:02 +03:00
8b08098d4e fix 2021-01-30 20:26:10 +03:00
c3c2a4269d stuff 2021-01-30 20:23:30 +03:00
a0c5d75f83 fixed bike bomb 2021-01-30 14:55:00 +03:00
dbf5c06144 fixed bike bomb 2021-01-30 14:53:51 +03:00
d69b73eaa8 Merge pull request #998 from IlDucci/lcs
Updating Spanish.txt FOLLOWING the existing strings on master and mia…
2021-01-30 05:19:40 +02:00
990637bf52 waterlevel: use macro for 400.0f 2021-01-29 17:57:51 +01:00
f5f153dbfd Merge branch 'miami' of https://github.com/GTAmodding/re3 into miami 2021-01-29 19:16:40 +03:00
c4328afce7 Even more fixes & shorten quit screen 2021-01-29 19:16:26 +03:00
7db28f9f7f fix NewRender typo 2021-01-29 16:43:17 +01:00
934aa92a9b add NewRenderer ini read/write, fix backfaceculling read 2021-01-29 16:41:34 +01:00
982b024c5c CdStreamPosix fixes 2021-01-29 16:25:32 +03:00
aap
595a000f6a fix shutdown 2021-01-29 13:43:50 +01:00
8482180706 waterlevel fix fix 2021-01-29 01:20:20 +01:00
2fc6b542bc waterlevel fix 2021-01-29 01:18:32 +01:00
810bad9fd8 Fix some UBs 2021-01-29 01:44:33 +03:00
4270180b8b fix 2021-01-29 00:05:57 +03:00
2d5f087041 fix 2021-01-28 23:25:59 +03:00
7056f9954f fix 2021-01-28 23:25:15 +03:00
aap
9e3c192376 fix some little UB 2021-01-28 15:35:35 +01:00
e1e4be9017 Use previous naming & fix LineOfSightSectorList too 2021-01-28 03:57:12 +03:00
0d7e0d351a Merge pull request #1000 from withmorten/miami-vanilla
miami: add Vanilla config to premake and premake CI
2021-01-28 02:44:43 +03:00
9fc0ec0bf4 I hate ATanOfXY pt 2 2021-01-28 02:41:21 +03:00
8150f55dbc Merge pull request #1002 from kusst/miami
Change text color in texture conversion dialog so it matches VC colors.
2021-01-28 02:16:04 +03:00
8a7c7efe85 ifdefs + fix progressbar being under dialogbox 2021-01-27 23:56:23 +01:00
3f8e258055 fix 2021-01-28 01:50:10 +03:00
fa2eb24ba2 Merge remote-tracking branch 'upstream/lcs' into lcs 2021-01-28 01:08:18 +03:00
433baf5f3c fix 2021-01-28 01:08:06 +03:00
be88a42bad Fix some Collision NaN/inf's 2021-01-28 00:51:43 +03:00
9c2f067403 Change joystick DB with latest offical one 2021-01-27 22:19:17 +03:00
a216bb56ee Attempt to fix input delays on GLFW 2021-01-27 22:19:10 +03:00
ab939e059b Clean up POSIX streaming code 2021-01-27 22:19:00 +03:00
e8a10748a4 fix fix 2021-01-27 20:39:22 +02:00
97cf189d15 Fix subtitle shadow 2021-01-27 20:19:22 +02:00
97351ad2c2 Use original animation names from VCS 2021-01-27 18:50:24 +02:00
e1e13d14a4 Also change progressbar color 2021-01-27 03:36:22 +01:00
30c26e5a9c Change text color in texture conversion dialog...
...so it matches VC style.
2021-01-27 00:35:57 +01:00
aap
70c1f0640d add missing ferry vehicle desc 2021-01-26 19:24:22 +01:00
9b1db9709b Merge branch 'lcs' into lcs-dev 2021-01-26 21:10:55 +03:00
edb50b66a0 enum change 2021-01-26 20:46:42 +03:00
0862c79b21 Merge branch 'miami' into lcs
* miami:
  Fix anim id in replay
2021-01-26 19:39:54 +02:00
2d2625bf75 Fix anim id in replay 2021-01-26 19:39:05 +02:00
3948a1f726 add Vanilla config to premake and premake CI 2021-01-26 11:30:46 +01:00
2fea28f194 fix 2021-01-26 02:27:57 +03:00
42d9d6abc8 syncd 2021-01-26 02:27:32 +03:00
46e63da4d8 sync 2021-01-26 02:25:47 +03:00
d7bd0be53e garage stuff 2021-01-26 02:23:55 +03:00
3f80e92f2c Updating Spanish.txt FOLLOWING the existing strings on master and miami, undoing LATAM contents
@ForeverL95 attempted to add Latin American Spanish elements into what's an originally European Spanish translation. If you want a Latin American Version, you should do a entire new file and not step into the existing one.
 - Restoring all the new reLCS elements following what was done on miami, adding the new particularities/uppercasings currently in use.
 - Removing all Latin American Spanish details (using íconos and not iconos, mouse instead of ratón, video instead of vídeo, Latin American Spanish verbal tense usage...)
2021-01-25 23:35:06 +01:00
0ae6d1fecf Merge branch 'lcs' into lcs 2021-01-26 01:01:32 +03:00
d898abf63d config 2021-01-26 00:55:55 +03:00
ba4028b9dd lcs WaterCannon 2021-01-26 00:52:03 +03:00
fb64bb314c Merge pull request #992 from ForeverL95/ForeverL95-patch-1
Add spanish translation for new strings
2021-01-25 22:50:52 +02:00
bc5f3abd3c closer to the source text... 2021-01-25 14:46:54 -03:00
1934bedde2 go back to the source...
New fixes, trying to respect the source format.
Some improvisations, especially at the controls.
2021-01-25 14:45:29 -03:00
cea8ad4b85 Fix check 2021-01-25 19:40:19 +02:00
129d7333be Fix function dupe 2021-01-25 19:38:13 +02:00
9647901ba0 Merge branch 'miami' into lcs
# Conflicts:
#	src/control/Script.h
#	src/modelinfo/SimpleModelInfo.cpp
#	src/modelinfo/VehicleModelInfo.cpp
#	src/rw/VisibilityPlugins.cpp
#	src/rw/VisibilityPlugins.h
2021-01-25 19:35:03 +02:00
c21e5f5e79 Move CRunningScript 2021-01-25 19:33:02 +02:00
c5ff13abca Update OpenAL 2021-01-25 18:50:27 +02:00
202ccd4c56 Support pads without L2-R2, add comments 2021-01-25 16:58:02 +03:00
9d4053419b Merge pull request #977 from withmorten/miami-cw
make building with Codewarrior 7 possible
2021-01-25 14:06:53 +01:00
aap
785bd8ebcc proper ini fix 2021-01-25 13:02:00 +01:00
aap
a4c5b87b90 more bletcherous stuff 2021-01-25 10:45:38 +01:00
aap
fef87b9219 fix some breakage 2021-01-25 10:43:12 +01:00
aap
4f591aa87a ini fixes 2021-01-25 10:30:57 +01:00
aap
d6544933aa Merge pull request #984 from aap/lcs
modelinfos
2021-01-25 10:30:34 +01:00
a01a9e5943 A necessary step back, again. 2021-01-25 01:44:06 -03:00
ed4edb93e7 A necessary step back.
I changed some text strings that I had modified, to a format more similar to the original.
2021-01-25 01:43:26 -03:00
8869f4ca4d spanish gxt fixed
Fixes and order in the file.
2021-01-25 00:08:52 -03:00
b137dba5db a better txt work
The same TXT file that I uploaded, but better ordered, so that it can work better.
2021-01-25 00:06:28 -03:00
ed2b985245 Add spanish translation for new strings.
I have added missing text strings, mainly in the menu.
And I made some modifications to some translated strings.
2021-01-24 20:06:13 -03:00
d7e38b378e Add spanish translation for new strings. 2021-01-24 19:59:23 -03:00
aap
453a16c978 modelinfo and visibility plg fixes 2021-01-24 23:25:12 +01:00
aap
ce7f166ba3 CVehicleModelInfo 2021-01-24 22:50:16 +01:00
1ab96abb91 Add cmake option for sanitizers 2021-01-24 21:36:13 +01:00
513d418771 Add cmake option for sanitizers 2021-01-24 21:35:53 +01:00
0ad1426950 Merge remote-tracking branch 'origin/miami' into lcs
# Conflicts:
#	src/control/Script.cpp
2021-01-24 22:22:16 +02:00
c1f0fe1da6 Merge pull request #987 from Sergeanur/lcsHud
Partial hud
2021-01-24 22:19:31 +02:00
071e503856 Ped: car enter anim. fix 2021-01-24 20:12:36 +03:00
aap
a202e67349 CPedModelInfo and CTempColModels 2021-01-24 17:14:16 +01:00
29fb996b00 make building with Codewarrior 7 possible 2021-01-24 17:08:34 +01:00
b728f8de64 Fix out of bound binding orders 2021-01-24 19:08:07 +03:00
e79e8b30e0 Partial hud 2021-01-24 17:21:50 +02:00
aap
1bee2caf5c CClumpModelInfo 2021-01-24 15:28:26 +01:00
aap
9361aeb8eb CTimeModelInfo and CWeaponModelInfo 2021-01-24 14:06:16 +01:00
aap
8cbae5d62a CSimpleModelInfo 2021-01-24 13:47:33 +01:00
d68ec362dd Fix CCollision::DistToLine 2021-01-24 12:36:43 +01:00
ca1de3cd17 Fix CCollision::DistToLine 2021-01-24 12:35:45 +01:00
e9d58b5a90 Merge branch 'lcs' into lcs-dev 2021-01-24 13:42:48 +03:00
ee89c485fc sync 2021-01-24 13:42:45 +03:00
aap
c1a7ded1e4 CBaseModelInfo 2021-01-24 00:07:45 +01:00
8cdc6b5d7c fix merge failure 2021-01-23 23:53:59 +03:00
c4f0b4fb6d mission cleanup fix 2021-01-23 23:20:22 +03:00
4e477a17b2 mission cleanup fix 2021-01-23 23:17:41 +03:00
de32fbe75e another backport 2021-01-23 23:16:38 +03:00
4abebbe3b2 use ARRAY_SIZE 2021-01-23 23:12:25 +03:00
aap
4269e613a3 Merge pull request #983 from ZLau92/ZLau92-corrected-plane-pitch
Fix plane / ccbb cheat flight pitch
2021-01-23 21:06:33 +01:00
2d00d9cbe6 More scaling macro 2021-01-23 22:06:17 +02:00
d28e9a7b62 Merge remote-tracking branch 'upstream/lcs' into lcs 2021-01-23 23:04:38 +03:00
37d1aa4129 script fixes 2021-01-23 23:04:24 +03:00
77051ddc78 Update Vehicle.cpp 2021-01-23 13:38:45 -06:00
aap
a1d6833bac txd store 2021-01-23 19:23:38 +01:00
13507d422b Add PSP scaling macros 2021-01-23 18:56:27 +02:00
de44a17e64 Fix ini name 2021-01-23 18:16:47 +02:00
e9689a0a07 Merge remote-tracking branch 'origin/miami' into lcs
# Conflicts:
#	src/core/re3.cpp
2021-01-23 17:54:46 +02:00
770456d0c8 Merge branch 'miami' of https://github.com/GTAmodding/re3 into miami 2021-01-23 16:50:55 +03:00
1b32840424 No more resetting bindings for joypad, create .ini at the first start, joystick hotplug for Linux 2021-01-23 16:18:19 +03:00
defbb01aaa Merge remote-tracking branch 'origin/lcs' into lcs
* origin/lcs:
  Remove size assert
  Add TXD mid field
  Enable GTA_BRIDGE
  LCS model indices
2021-01-23 15:14:24 +02:00
904090cbb6 Merge remote-tracking branch 'origin/miami' into lcs
# Conflicts:
#	src/modelinfo/BaseModelInfo.cpp
2021-01-23 15:14:15 +02:00
4bde3366c1 Merge pull request #980 from Sergeanur/lcsMID
LCS model indices
2021-01-23 15:09:54 +02:00
cfac29b0ef Remove restrictions in CGame::Process 2021-01-23 15:09:34 +02:00
45c2488e36 Migrate from old .ini to new .ini 2021-01-23 16:04:19 +03:00
73f1340afb Store all settings in .INI 2021-01-23 15:59:38 +03:00
3326603265 added some missing functions 2021-01-23 15:33:01 +03:00
b5c4866964 added some missing functions 2021-01-23 15:32:07 +03:00
aap
f6fb473cf9 revert accident 2021-01-23 12:59:52 +01:00
aap
a22b6168c6 wrong path node array 2021-01-23 12:50:46 +01:00
aap
2814f2e8cf wrong path node array 2021-01-23 12:49:54 +01:00
aap
20bcd4bd69 colstore done 2021-01-23 12:40:23 +01:00
552497d71b fix 2021-01-23 14:11:57 +03:00
8d0100f100 Merge remote-tracking branch 'upstream/lcs' into lcs 2021-01-23 12:54:27 +03:00
a105003a7a I hate GetATanOfXY 2021-01-23 12:54:08 +03:00
e03aaec030 Add (Don't) walk lights 2021-01-23 04:07:50 +02:00
0aad73f4a1 Remove size assert 2021-01-23 03:39:24 +02:00
3565f179af Add TXD mid field 2021-01-23 03:12:01 +02:00
b35b0c598d Enable GTA_BRIDGE 2021-01-23 03:09:15 +02:00
6b54d04bfc LCS model indices 2021-01-23 02:56:48 +02:00
10120eb12f Merge pull request #979 from erorcun/miami
Includes overhaul, fix some compiler warnings
2021-01-23 03:34:15 +03:00
f85b5e99ed Includes overhaul, fix some compiler warnings 2021-01-23 03:23:16 +03:00
965a3d6eec Merge remote-tracking branch 'upstream/lcs' into lcs 2021-01-23 02:36:34 +03:00
917cf44def script coronas 2021-01-23 02:36:13 +03:00
c884edd923 cSmallHeap 2021-01-23 00:03:12 +02:00
bdb216bf7c fix 2021-01-22 20:59:57 +03:00
e019bd91fd Reenable PS2_AUDIO_PATHS 2021-01-22 19:46:50 +02:00
ea916b6ae5 Merge remote-tracking branch 'origin/miami' into lcs
* origin/miami:
  fix config.h
  small premake fix
2021-01-22 19:45:58 +02:00
cc6d5374d5 fix config.h 2021-01-22 18:41:58 +01:00
ba0b06f268 small premake fix 2021-01-22 16:40:17 +01:00
1d3e84b712 small premake fix 2021-01-22 16:39:28 +01:00
cea6b20c09 Merge remote-tracking branch 'origin/miami' into lcs
# Conflicts:
#	src/animation/CutsceneMgr.cpp
#	src/control/CarCtrl.cpp
#	src/control/Script.cpp
#	src/control/Script2.cpp
#	src/core/Frontend.cpp
#	src/core/main.cpp
#	src/entities/Physical.cpp
#	src/peds/Ped.cpp
#	src/peds/PedAI.cpp
#	src/text/Messages.cpp
#	src/vehicles/Cranes.cpp
#	src/vehicles/Transmission.cpp
2021-01-22 15:04:09 +02:00
feb993e751 get rid of most --MIAMI comments 2021-01-22 11:43:29 +01:00
aap
4acc9b08a2 Merge pull request #974 from withmorten/miami-wantedlevel
m_nWantedLevel -> GetWantedLevel()
2021-01-22 10:33:55 +01:00
8dab92d158 CMessages::GetTokenPadKeyString 2021-01-22 05:49:17 +02:00
b5deee823c Load LCS radar blips 2021-01-22 04:00:17 +02:00
7091ab5e75 Fix save/load and brief menus 2021-01-22 02:44:32 +02:00
0495d0f232 GXT fixes 2021-01-22 02:26:26 +02:00
e6d9a0d1ad Get rid of outro screen 2021-01-22 02:19:02 +02:00
aap
c8236d0dd2 Merge pull request #976 from Fire-Head/lcs
Lcs pobj
2021-01-22 01:12:03 +01:00
6bdf005171 Update ParticleObject.h 2021-01-22 03:10:19 +03:00
aap
ce77e80414 Merge pull request #963 from Nick007J/lcs
all LCS script commands
2021-01-22 00:59:20 +01:00
aap
de10f0dda6 Merge pull request #975 from aap/lcs
loadscreens, not accurate
2021-01-22 00:59:13 +01:00
37b9ba5bd7 lcs pobj 2021-01-22 02:59:08 +03:00
aap
035d655e47 Merge pull request #972 from Sergeanur/lcsfont
Partial CFont
2021-01-22 00:59:07 +01:00
06d8860d42 Merge remote-tracking branch 'origin/miami' into lcs
* origin/miami:
  fuck
  bletch
  fixed anisotropic filtering; updated librw
  fix
2021-01-22 01:58:38 +02:00
9d2509ab5b A bit of frontend and GXT 2021-01-22 01:56:47 +02:00
aap
f7ab5cb7c4 loadscreens, not accurate 2021-01-22 00:41:34 +01:00
aap
8520bbd2c7 higher wheel LOD dist 2021-01-22 00:40:46 +01:00
d1317f8fa6 m_nWantedLevel -> GetWantedLevel() 2021-01-22 00:20:51 +01:00
aap
1999427225 fuck 2021-01-21 22:26:44 +01:00
aap
94ff966994 bletch 2021-01-21 22:25:14 +01:00
aap
e99589a3eb fixed anisotropic filtering; updated librw 2021-01-21 22:17:35 +01:00
50cde66067 fix 2021-01-22 00:14:30 +03:00
e8db0e3abb Merge branch 'lcs' into lcsfont
* lcs:
  fix
  enable screenshots for librw; update librw
  Get rid of bitfields in CPool
  Sync matrix with master
  free cam inversion fix
  free cam inversion fix
  Fix CFont::PrintStringFromBottom
  pc radar fix
  work on colourfilters
  PSP rendering and shader cleanup
  fix handbrake
  fix
  wrong ifdef
  fix
  some free cam fixes for controller
  sync milessdk with re3mss
  vehicle fixes
  fix
  add the bad crack "features" behind SECUROM define

# Conflicts:
#	src/render/Font.cpp
2021-01-21 23:11:36 +02:00
46ae5700ee a few fixes 2021-01-21 23:51:15 +03:00
c8e715c33b Merge remote-tracking branch 'upstream/lcs' into lcs 2021-01-21 23:19:12 +03:00
ed74182cc2 Merge remote-tracking branch 'origin/miami' into lcs
# Conflicts:
#	vendor/librw
2021-01-21 16:03:27 +02:00
f0097ff733 fix 2021-01-21 16:09:58 +03:00
aap
24de9f92e8 enable screenshots for librw; update librw 2021-01-21 10:21:47 +01:00
4ba19c9556 Merge branch 'lcs' of https://github.com/Fire-Head/re3 into lcs 2021-01-21 01:00:39 +03:00
a5be17d941 Merge branch 'lcs-dev' into lcs 2021-01-20 21:15:03 +03:00
23831e38e6 sync 2021-01-20 21:14:12 +03:00
ad745aae63 some more script 2021-01-20 21:12:42 +03:00
cc94419a72 Merge branch 'miami' into lcs
# Conflicts:
#	src/control/Script.cpp
#	src/control/Script4.cpp
#	src/render/Weather.cpp
#	src/render/Weather.h
#	src/vehicles/Automobile.cpp
2021-01-20 19:32:03 +02:00
c7c7eff918 Get rid of bitfields in CPool
# Conflicts:
#	src/core/templates.h
2021-01-20 19:24:08 +02:00
3b52b683e3 Sync matrix with master 2021-01-20 19:20:11 +02:00
95448eea3d More fonts 2021-01-20 18:40:54 +02:00
ba34d72183 free cam inversion fix 2021-01-20 13:59:17 +01:00
8590457d41 free cam inversion fix 2021-01-20 13:57:03 +01:00
9b820cc0b6 Fix CFont::PrintStringFromBottom 2021-01-20 14:23:03 +02:00
b4b4c996ba Merge branch 'lcs-dev' into lcs 2021-01-20 12:12:56 +03:00
b1454276ed Merge remote-tracking branch 'upstream/lcs' into lcs 2021-01-20 12:12:46 +03:00
aa0f77043c script fixes 2021-01-20 12:12:26 +03:00
aap
2c1c5debca pc radar fix 2021-01-19 21:35:25 +01:00
dac4dd560a saves 2021-01-19 23:34:37 +03:00
aap
7e136a792f work on colourfilters 2021-01-19 20:42:16 +01:00
aap
8baae4c77f PSP rendering and shader cleanup 2021-01-19 11:38:51 +01:00
aap
c295981c5a fix handbrake 2021-01-19 09:06:43 +01:00
3ebd08e38c Merge branch 'lcs' into lcsfont
* lcs:
  fix
  some free cam fixes for controller
  initial work on vehicles
2021-01-19 03:25:00 +02:00
f38ff074c4 more font 2021-01-19 03:24:02 +02:00
c124bbe4bf Merge branch 'lcs-dev' into lcs 2021-01-19 02:38:28 +03:00
061fd25c61 fixes 2021-01-19 02:38:02 +03:00
923abb94d8 Merge branch 'lcs-dev' into lcs 2021-01-19 00:03:52 +03:00
03cf1e7535 Merge remote-tracking branch 'upstream/miami' into miami 2021-01-19 00:00:12 +03:00
8b80a8803b fix 2021-01-18 23:59:54 +03:00
47c697feca fixes 2021-01-18 23:58:26 +03:00
177680216c fix 2021-01-18 22:30:18 +03:00
032a937b06 Merge branch 'lcs-dev' into lcs 2021-01-18 22:20:47 +03:00
4f36a1fb77 sync 2021-01-18 22:20:44 +03:00
14a1d3d251 Merge branch 'lcs' into lcs-dev 2021-01-18 22:20:27 +03:00
239dd55146 Merge remote-tracking branch 'upstream/lcs' into lcs 2021-01-18 22:19:50 +03:00
c09297997e script full 2021-01-18 22:19:30 +03:00
776693235c fix 2021-01-18 20:10:13 +01:00
b5c09965a9 some free cam fixes for controller 2021-01-18 20:10:13 +01:00
aap
d01deec11d wrong ifdef 2021-01-18 20:03:30 +01:00
20dabf0b49 fix 2021-01-18 17:30:18 +01:00
df4e22e3d0 some free cam fixes for controller 2021-01-18 17:25:31 +01:00
aap
7a730384ef Merge pull request #962 from aap/lcs
initial work on vehicles
2021-01-18 14:11:55 +01:00
8d2aa61f9b Merge branch 'lcs' into lcsfont
# Conflicts:
#	src/render/Font.cpp
2021-01-18 15:01:17 +02:00
8395704dc6 Use of sized bool types for CFont 2021-01-18 14:55:48 +02:00
aap
a672860c40 initial work on vehicles 2021-01-18 10:59:19 +01:00
b73aaa4899 Merge pull request #1 from GTAmodding/lcs
update
2021-01-18 01:16:28 +03:00
78cf2ead38 sync milessdk with re3mss 2021-01-17 22:23:34 +01:00
4babb11e2f sync milessdk with re3mss 2021-01-17 22:21:53 +01:00
aap
2b4b00b388 Merge pull request #960 from withmorten/miami
add the bad crack "features" behind SECUROM define
2021-01-17 20:06:25 +01:00
5e1113d884 fix attempt 2021-01-17 18:46:49 +03:00
45f1c96ff2 Merge branch 'lcs-dev' into lcs 2021-01-17 16:18:06 +03:00
4703ec5164 sync 2021-01-17 16:03:37 +03:00
9001a64ef9 Merge branch 'lcs' into lcs-dev 2021-01-17 16:02:56 +03:00
186441e7f5 Merge remote-tracking branch 'upstream/lcs' into lcs 2021-01-17 16:02:38 +03:00
e5af1edcb9 script until 1497 2021-01-17 16:02:19 +03:00
aap
913a001375 vehicle fixes 2021-01-17 10:00:41 +01:00
777ef6b663 fix ida's sweet little lies 2021-01-17 06:16:49 +03:00
f5164f3804 fix crash on exit 2021-01-17 03:13:21 +03:00
6075bf3fc2 Merge pull request #959 from Fire-Head/lcs
Lcs Particle
2021-01-16 22:00:02 +03:00
e99cd8052c sync 2021-01-16 20:06:55 +03:00
d25420a33b fix 2021-01-16 20:06:10 +03:00
72b25cd3a8 Merge remote-tracking branch 'upstream/miami' into miami 2021-01-16 20:04:41 +03:00
df98d04d79 fix 2021-01-16 20:04:17 +03:00
9a7442c2fd script7 2021-01-16 20:02:41 +03:00
ef97134f50 sync 2021-01-16 18:17:42 +03:00
c28ed42617 script6 2021-01-16 18:16:35 +03:00
eb5fdac918 Merge branch 'miami' into lcs
# Conflicts:
#	src/control/Script.h
2021-01-16 16:56:24 +02:00
518bc555a6 font 2021-01-16 16:55:26 +02:00
21a6ed247b Use of sized bool types for CFont 2021-01-16 16:06:11 +02:00
19505b664c consistency fix 2021-01-16 13:42:46 +03:00
32ab01cd32 consistency fix 2021-01-16 13:42:04 +03:00
b4f6a9336b more fix 2021-01-16 13:35:36 +03:00
7ea77d8da4 more fix 2021-01-16 13:32:41 +03:00
708d5831e4 Script5.cpp 2021-01-16 13:26:46 +03:00
193fb2a381 fix 2021-01-16 13:24:22 +03:00
405a75f26b Fixes for lcs conan 2021-01-16 01:53:21 +01:00
34942b5af3 Fixes for lcs conan 2021-01-16 01:51:48 +01:00
d2fac78413 Port debug messagess for audio cache 2021-01-16 01:42:16 +01:00
6bebde8279 Port debug messagess for audio cache 2021-01-16 01:38:18 +01:00
481cebee7e Merge branch 'lcs' of github.com:Fire-Head/re3 into lcs 2021-01-16 01:13:01 +03:00
96fdbac69a rem null checks 2021-01-16 01:12:27 +03:00
068093aae0 Update librw 2021-01-15 19:20:44 +03:00
d8f352ae7c Merge branch 'lcs' of github.com:Fire-Head/re3 into lcs 2021-01-15 19:17:52 +03:00
21bb2ea063 Merge pull request #1 from GTAmodding/lcs
update
2021-01-15 19:15:24 +03:00
efae5d6a69 Merge branch 'lcs' of github.com:Fire-Head/re3 into lcs 2021-01-15 19:13:56 +03:00
8989b5ea39 Merge branch 'lcs' of https://github.com/GTAmodding/re3 into lcs 2021-01-15 19:13:05 +03:00
4bd7bafd7c Merge branch 'miami' into lcs
# Conflicts:
#	.github/workflows/reLCS_msvc_amd64.yml
#	.github/workflows/reLCS_msvc_x86.yml
#	premake5.lua
#	src/control/Script2.cpp
#	src/control/Script8.cpp
2021-01-15 17:57:35 +02:00
19749effce Fix Jumbo Sound reseting when walking 2021-01-15 17:54:21 +02:00
d5ce8b1ea3 add the bad crack "features" behind SECUROM define 2021-01-14 23:16:42 +01:00
7541fa7cb7 Revert extra checks before autolinking 2021-01-14 22:26:36 +01:00
5acbf9ef59 fix 2021-01-14 22:20:40 +01:00
1082b13830 RE3_NO_AUTOLINK to CMAKE_NO_AUTOLINK 2021-01-14 22:15:36 +01:00
a0a88b4663 Merge branch 'miami' of github.com:GTAmodding/re3 into miami 2021-01-14 22:06:43 +01:00
c7b905c0ec More checks before autolinking 2021-01-14 22:06:27 +01:00
8b6bcef4b7 Merge branch 'lcs' into lcs-dev 2021-01-14 23:21:43 +03:00
c00ebef329 incoming "fuck" commit 2021-01-14 23:21:17 +03:00
0b0d286f5c incoming "fuck" commit 2021-01-14 23:15:12 +03:00
42df203389 Fix(?) 2021-01-14 18:26:51 +01:00
70358d90b4 Backport fix from re3 2021-01-14 15:30:33 +01:00
57cc70c6af Update FindX files 2021-01-14 15:22:02 +01:00
85f93ef135 Get rid of travis 2021-01-14 15:05:49 +01:00
40d3a900a0 Fix 2021-01-14 15:05:27 +01:00
7c8933f8c4 Port conan to miami 2021-01-14 15:03:54 +01:00
6a93cc49be fix 2021-01-14 00:15:45 +03:00
8baa104453 Revert "Revert "Merge branch 'lcs' of https://github.com/GTAmodding/re3 into lcs""
This reverts commit 97c9a4a02c.
2021-01-13 23:17:53 +03:00
97c9a4a02c Revert "Merge branch 'lcs' of https://github.com/GTAmodding/re3 into lcs"
This reverts commit d63e3f1559, reversing
changes made to ec17355056.
2021-01-13 23:15:33 +03:00
13b52229be hud ammo fix 2021-01-13 23:07:12 +03:00
aap
ab14a0bc61 foobar 2021-01-13 20:40:20 +01:00
aap
3a6935f126 fixed shoot through collision 2021-01-13 20:39:00 +01:00
aap
7994b80dcf fixed weapon LOS check 2021-01-13 20:10:04 +01:00
9f914dcd10 Merge remote-tracking branch 'upstream/miami' into miami 2021-01-13 22:03:21 +03:00
daf1de550c fix 2021-01-13 22:02:28 +03:00
a9ab3ea5b4 fix 2021-01-13 20:55:54 +03:00
d63e3f1559 Merge branch 'lcs' of https://github.com/GTAmodding/re3 into lcs 2021-01-13 20:18:26 +03:00
7388cc8a78 Merge branch 'lcs' into lcs-dev 2021-01-13 19:47:00 +03:00
d1b2dd2831 remove scriptspath from premake 2021-01-13 14:59:30 +01:00
dacd389799 remove scriptspath from premake 2021-01-13 14:49:21 +01:00
aap
361808923a arrest cam fixes 2021-01-13 14:16:38 +01:00
3e198086e3 some script 2021-01-13 16:01:49 +03:00
49c8292e48 Fix target's name 2021-01-13 14:00:34 +01:00
ff057838ec Merge branch 'miami' into lcs
* miami:
  Fix backface culling of cutscene objects
  more renames
  anim velocity union
  rename m_vehEnterType -> m_vehDoor
  Port cmake improvements to miami
  some loose ends
  move TODO to Readme
  Fix build without FIX_BUGS, divide to 0 fixes
2021-01-13 14:56:25 +02:00
0e9a44dd43 Fix backface culling of cutscene objects 2021-01-13 14:55:55 +02:00
aap
ac3ba5b4a6 more renames 2021-01-13 13:41:31 +01:00
aap
2804ad2363 anim velocity union 2021-01-13 13:06:38 +01:00
aap
e3a261d29c rename m_vehEnterType -> m_vehDoor 2021-01-13 13:01:20 +01:00
4741afd2cf Port cmake improvements to miami 2021-01-13 12:45:10 +01:00
aap
1b55a9956f some loose ends 2021-01-13 12:31:33 +01:00
679755de35 Merge pull request #957 from erorcun/miami
Fix build without FIX_BUGS, divide to 0 fixes
2021-01-13 14:03:48 +03:00
3553f467b2 move TODO to Readme 2021-01-13 03:50:59 +03:00
542a5393ac Fix build without FIX_BUGS, divide to 0 fixes 2021-01-13 03:08:50 +03:00
94f25a429f Merge remote-tracking branch 'origin/miami' into lcs
* origin/miami:
  more securom fixes
  move stuff back into class; securom comments
  More font fixes
  fix
  fix CreateInstance virtual overload order
  escalator fix
  ProcessWheel bug
2021-01-13 02:08:13 +02:00
ec17355056 Merge branch 'lcs' of https://github.com/GTAmodding/re3 into lcs 2021-01-13 02:55:47 +03:00
5d4917a5d7 Merge pull request #956 from withmorten/miami
more securom fixes
2021-01-13 00:32:39 +01:00
e122a75dd2 more securom fixes 2021-01-13 00:28:51 +01:00
2b91af4493 Merge pull request #955 from withmorten/miami
move stuff back into class; securom comments
2021-01-13 00:22:51 +01:00
232d990e6d move stuff back into class; securom comments 2021-01-13 00:18:58 +01:00
92b1e8ab75 More font fixes 2021-01-13 01:01:04 +02:00
4505b8795a fix 2021-01-13 01:37:25 +03:00
a7ad2a7e1a sync with lcs-dev 2021-01-13 01:36:01 +03:00
510ad223f0 Script4.cpp 2021-01-13 01:34:49 +03:00
aap
b2ee24b549 fix CreateInstance virtual overload order 2021-01-12 23:33:44 +01:00
aap
b407f6a011 fix CreateInstance virtual overload order 2021-01-12 23:32:45 +01:00
aap
d68d1d9999 escalator fix 2021-01-12 23:29:53 +01:00
aap
faab9f4aa4 escalator fix 2021-01-12 23:28:13 +01:00
39dd219fbc Merge branch 'lcs' of https://github.com/GTAmodding/re3 into lcs 2021-01-13 01:18:58 +03:00
660d040531 assert, temp fixes 2021-01-13 01:06:22 +03:00
aap
2088dfb3b3 ProcessWheel bug 2021-01-12 23:02:32 +01:00
aap
8858df2185 ProcessWheel bug 2021-01-12 22:58:50 +01:00
3e6016dc6e Merge branch 'lcs' of https://github.com/GTAmodding/re3 into lcs 2021-01-13 00:11:15 +03:00
096db533a6 rem gMakeResources 2021-01-13 00:09:40 +03:00
3648ef4687 lcs particle 2021-01-13 00:07:24 +03:00
f73e870bde Merge remote-tracking branch 'origin/miami' into lcs
* origin/miami:
  bug of the decade
  big oof
  colmodel fix
2021-01-12 22:29:50 +02:00
aap
0afa027ab4 bug of the decade 2021-01-12 21:28:13 +01:00
e6aa9f9d4e big oof 2021-01-12 20:56:49 +03:00
6cfc61ac0e big oof 2021-01-12 20:54:52 +03:00
1c3f3c1842 script4 2021-01-12 20:52:31 +03:00
aap
55320a03f1 little cleanup of vehicle rendering 2021-01-12 14:07:24 +01:00
aap
9b2037419f mobile vehicle rendering 2021-01-12 13:41:29 +01:00
aap
99a6976f53 colmodel fix 2021-01-12 12:42:29 +01:00
8888ee3974 Merge pull request #948 from Sergeanur/lcsPR/CutsceneMgr
CutsceneMgr done + use original VB audio + make interiors visible + use hashed model info names a bit
2021-01-12 13:22:44 +02:00
cb4b4d584c Merge branch 'miami' into lcs
# Conflicts:
#	src/control/Script.cpp
#	src/control/Script3.cpp
#	src/extras/custompipes_d3d9.cpp
#	src/extras/custompipes_gl.cpp
2021-01-12 12:55:07 +02:00
75367e714a premake: add startrpoject; add lto option; fix copying of binary to gamedir; update premake5.exe
# Conflicts:
#	premake5.lua
2021-01-12 12:43:42 +02:00
167a841010 Merge branch 'lcs-dev' into lcs 2021-01-12 12:17:22 +03:00
2736c3a9d1 fix 2021-01-12 12:16:52 +03:00
7e888a6379 Fix collective commands 2021-01-12 02:29:10 +02:00
dcb4eedeb0 Fix collective commands 2021-01-12 02:28:08 +02:00
3e6eea25b3 More fix 2021-01-12 02:15:44 +02:00
2ce6e59d9b PLAY_ANNOUNCEMENT 2021-01-11 23:55:45 +02:00
132a710a0a Case sensitive my ass 2021-01-11 23:50:56 +02:00
aap
afcb794d59 Merge pull request #947 from withmorten/miami
fix CPed struct, GetWantedLevel
2021-01-11 22:46:06 +01:00
aap
6ef3b8c458 Merge pull request #949 from majesticCoding/lcs
unused CFerryDoor
2021-01-11 22:45:10 +01:00
daf5cfe425 Merge remote-tracking branch 'upstream/miami' into miami 2021-01-12 00:43:45 +03:00
42e4e7c063 fix 2021-01-12 00:43:26 +03:00
7496a463d4 Merge branch 'lcs-dev' into lcs 2021-01-12 00:42:44 +03:00
091b40cb39 script3.cpp 2021-01-12 00:42:11 +03:00
0f0812618a unused CFerryDoor 2021-01-11 12:47:09 -08:00
aap
383142bcbe some useless code 2021-01-11 20:20:08 +01:00
f728c58383 Merge branch 'miami' of https://github.com/GTAmodding/re3 into miami 2021-01-11 21:10:28 +03:00
e2095bf70b fix explosion jet 2021-01-11 21:10:24 +03:00
a223157000 CutsceneMgr done + use original VB audio + make interiors visible + use hashed model info names a bit 2021-01-11 19:53:15 +02:00
c7052b3d6f fuck 2021-01-11 20:51:18 +03:00
4a8a1af885 fix CPed struct, GetWantedLevel 2021-01-11 18:43:04 +01:00
0345861b5f Merge branch 'lcs' of https://github.com/GTAmodding/re3 into lcs 2021-01-11 08:10:11 -08:00
4422a3df23 Merge branch 'lcs-dev' into lcs 2021-01-11 17:26:17 +03:00
a214d0ed4c fix 2021-01-11 17:25:51 +03:00
81b5e66dd4 fixes 2021-01-11 17:18:25 +03:00
625376f0d3 500-599 2021-01-11 17:14:56 +03:00
8f925a2e84 Merge branch 'lcs' of https://github.com/GTAmodding/re3 into lcs 2021-01-10 18:43:24 -08:00
cf11b32849 of course 2021-01-11 02:43:57 +03:00
53a99cb9ee script2 2021-01-11 02:35:03 +03:00
b5711b21dc Automobile: fix 2021-01-11 01:10:24 +03:00
585300cd33 More font fix 2021-01-10 22:37:11 +02:00
7d877ab488 Merge branch 'lcs' of https://github.com/GTAmodding/re3 into lcs 2021-01-10 12:20:19 -08:00
642970df95 Merge branch 'lcs-dev' into lcs 2021-01-10 22:58:43 +03:00
75d1715442 script file 1 done (hopefully) 2021-01-10 22:58:06 +03:00
adc7127055 fix pickup coronas 2021-01-10 22:24:21 +03:00
aap
ca64363899 debugmenu vehicle spawn list 2021-01-10 19:58:58 +01:00
0508a62c91 Merge branch 'lcs' of https://github.com/GTAmodding/re3 into lcs 2021-01-10 10:47:25 -08:00
aap
93ea98520b mobile building rendering 2021-01-10 19:45:58 +01:00
aap
ebca91e0d0 update librw 2021-01-10 18:43:44 +01:00
c3b6e9da43 Fix linux build 2021-01-10 17:14:33 +01:00
5256f1c967 Merge branch 'lcs' of https://github.com/GTAmodding/re3 into lcs 2021-01-10 05:43:26 -08:00
aap
c631e6c61c env map tweaks 2021-01-10 14:32:37 +01:00
5fe6c2dcb4 Merge branch 'lcs' of https://github.com/GTAmodding/re3 into lcs 2021-01-10 04:20:18 -08:00
aap
453405f131 dont render untextured world 2021-01-10 13:05:34 +01:00
aap
0ee87d7b46 env map rendering 2021-01-10 11:59:57 +01:00
b0e395e853 Merge pull request #942 from majesticCoding/lcs
just original marker's colors
2021-01-10 13:44:40 +03:00
ad7855f995 Update command definitions 2021-01-10 12:27:51 +03:00
d90de7f13c Merge pull request #943 from x87/miami
Update command definitions
2021-01-10 12:25:18 +03:00
9f288fc16f Merge branch 'lcs' of https://github.com/GTAmodding/re3 into lcs 2021-01-09 21:32:38 -08:00
c2265e29d2 Update command definitions 2021-01-09 23:59:47 -05:00
1b3047c812 Merge branch 'lcs-dev' into lcs 2021-01-09 22:24:52 +03:00
f5b97f1e8a can finish first mission 2021-01-09 22:24:18 +03:00
aap
d3aa8a118c fix rendering; update librw 2021-01-09 19:45:19 +01:00
820bf37445 Merge branch 'lcs' of https://github.com/majesticCoding/re3 into lcs 2021-01-09 10:32:40 -08:00
2639fba582 just original marker color 2021-01-09 10:26:07 -08:00
aap
03c5fdef43 moved new renderer; implemented leeds building rendering 2021-01-09 19:20:32 +01:00
203dff9165 script 2021-01-09 20:33:21 +03:00
aap
e906a807f1 moved new renderer 2021-01-09 18:22:09 +01:00
5a5f06ef2a Merge pull request #3 from GTAmodding/lcs
syncing lcs with original repo
2021-01-09 07:36:44 -08:00
aap
434bc01f0b fix fix 2021-01-09 16:17:47 +01:00
aap
f6f0cb708e boat fix 2021-01-09 16:13:38 +01:00
322d93ab0c Fix font 2021-01-09 16:55:45 +02:00
92913c4c27 Merge remote-tracking branch 'upstream/lcs' into lcs 2021-01-09 17:48:18 +03:00
1f79fb608a fix 2021-01-09 17:47:55 +03:00
3a2a4dee5c Merge pull request #941 from Nick007J/lcs
LCS stuff + script
2021-01-09 17:43:47 +03:00
c1e68b2c61 fix 2021-01-09 17:43:21 +03:00
a38d0a0fbd Merge branch 'lcs-dev' into lcs 2021-01-09 17:35:57 +03:00
b32301592f Merge remote-tracking branch 'upstream/lcs' into lcs 2021-01-09 17:35:52 +03:00
97c95b7639 more script 2021-01-09 17:35:27 +03:00
852c3badbb Change window name 2021-01-09 14:21:46 +02:00
e5b7628802 Remove fake firetruck ID 2021-01-09 13:43:09 +02:00
da10ce7b05 More linux fix 2021-01-09 13:33:45 +02:00
b484638bb9 Merge remote-tracking branch 'origin/lcs' into lcs
* origin/lcs:
  cam sector fix
  streaming fixes
2021-01-09 13:24:26 +02:00
9a145ab15f Possibly fix linux build 2021-01-09 13:24:09 +02:00
aap
e473d234fd cam sector fix 2021-01-09 12:11:34 +01:00
aap
7f5deb0f97 cam sector fix 2021-01-09 12:10:10 +01:00
aap
225b8953fd streaming fixes 2021-01-09 11:43:58 +01:00
6b78bab99a Merge branch 'miami' of https://github.com/GTAmodding/re3 into miami 2021-01-09 03:38:39 +03:00
8e7cce0634 useless fix 2021-01-09 03:37:59 +03:00
b7f9bfda4a fail 2021-01-09 02:41:27 +03:00
2ce925caba Sector sizes 2021-01-09 01:22:50 +02:00
aap
4a7b3d6d7b fix world bounds check for cars 2021-01-09 00:13:29 +01:00
aap
219af60102 timecycle back to normal 2021-01-08 23:53:14 +01:00
aap
14a5144de7 Merge branch 'lcs' of github.com:GTAmodding/re3 into lcs 2021-01-08 23:43:56 +01:00
aap
49d5c02d69 anims done. ped fight hacked to compile 2021-01-08 23:43:52 +01:00
91c6389754 Merge branch 'miami' of https://github.com/GTAmodding/re3 into miami 2021-01-09 01:02:17 +03:00
7a3ee349da sync with re3
-radardisc shadow fix
-fix for the dimension where moon is round
-correct radar based on the early gta 3 screenshot
-proper scaling based on ps2 gta 3
-ini and debugmenu options
2021-01-09 01:01:41 +03:00
a871da4fbe Add Relocatable Chunk stubs 2021-01-08 23:42:42 +02:00
3ac74c86a1 fix 2021-01-09 00:33:16 +03:00
2bf88fcef5 Merge branch 'lcs' into lcs-dev 2021-01-09 00:30:13 +03:00
b6875b41f4 Level 4 2021-01-08 23:20:52 +02:00
a9559f03b0 lcs script mode 2021-01-09 00:20:09 +03:00
de13141b68 CKeyGen fixes 2021-01-08 22:39:25 +02:00
af09cb06f5 Merge branch 'miami' into lcs
* miami:
  Use original names
2021-01-08 21:53:42 +02:00
faa9e6441b Use original names 2021-01-08 21:53:11 +02:00
079b8e0e16 CKeyGen 2021-01-08 20:51:31 +02:00
4debd89d8e Merge branch 'miami' into lcs
# Conflicts:
#	src/render/Timecycle.cpp
2021-01-08 20:24:43 +02:00
68e8c1ce04 Add multisampling 2021-01-08 20:22:08 +02:00
bf3135eb41 Enable trains 2021-01-08 18:31:50 +02:00
e9001207ea Disable water creatures 2021-01-08 18:26:35 +02:00
95260371cb Train anims in enum 2021-01-08 18:25:35 +02:00
c6c55d0130 Train anims in enum 2021-01-08 18:24:53 +02:00
613d08d3e2 Merge branch 'lcs-dev' into lcs 2021-01-08 18:59:14 +03:00
e92666d988 wtf 2021-01-08 18:57:59 +03:00
5fb3edf258 Allocator fix 2021-01-08 17:21:07 +02:00
ecdd751ec3 PC controls and icon 2021-01-08 16:57:22 +02:00
ead2a1a606 MemoryManager of base:: 2021-01-08 16:47:41 +02:00
8485dcdb03 Update readme and workflows 2021-01-08 16:38:27 +02:00
d68ffc2da6 Original GXT support 2021-01-08 15:34:21 +02:00
aap
8be0567924 little fixes 2021-01-08 13:51:42 +01:00
aap
a99457ee29 fix phones 2021-01-08 13:51:31 +01:00
0e2af13656 Merge branch 'miami' into lcs
* miami:
  wtf
  fix
  small cleanup
  Fix gOneShotCol
  Fix garage messages position
  Fix font on green screen counter
  Add MPG123_QUIET to mp3 files
  Make opus available alongside other formats
  Fix pickup text
  Fix char in stats
  Add missing GXT line
  fail
  minor refactoring
  Fix 16KHz track
  GET_WHEELIE_STATS fix
  Cleanup and fixes for new decoders
  Fixes for CVbFile
  Small fixes for new wav decoder
  Remove fastmath from premake's config
  Implementing our own WAV decoder to replace SndFile
2021-01-08 14:47:37 +02:00
aap
37a58a04f2 timecycle; some rendering 2021-01-08 13:34:49 +01:00
824ca7599c wtf 2021-01-08 13:07:36 +03:00
f8569a74cb fix 2021-01-08 12:59:51 +03:00
236b3b1c2b more stuff 2021-01-08 12:41:39 +03:00
aap
d820df0dbe small cleanup 2021-01-08 01:44:19 +01:00
aap
ebdf08a514 first commit for LCS 2021-01-08 01:41:40 +01:00
556b9ae574 Fix gOneShotCol 2021-01-08 00:47:21 +02:00
24d73aeb71 Fix garage messages position 2021-01-08 00:04:38 +02:00
debf39fe64 Fix font on green screen counter 2021-01-07 23:47:17 +02:00
c423c59365 Add MPG123_QUIET to mp3 files 2021-01-07 22:15:55 +02:00
6b0fa20b8b Make opus available alongside other formats 2021-01-07 22:01:44 +02:00
0428b5b694 Fix pickup text 2021-01-07 21:55:41 +02:00
c2672bd630 Fix char in stats 2021-01-07 21:00:20 +02:00
eecf095077 Add missing GXT line 2021-01-07 20:57:17 +02:00
5e10f1fe6a sync with upstream 2021-01-07 18:38:40 +03:00
9d6db921bd fail 2021-01-07 18:31:54 +03:00
db1bdfd62d minor refactoring 2021-01-07 18:30:35 +03:00
0845abf640 Fix 16KHz track 2021-01-07 15:16:24 +02:00
69d30f2204 some lcs stuff 2021-01-07 15:21:35 +03:00
08ddef6a93 Merge pull request #929 from majesticCoding/miami
GET_WHEELIE_STATS fix
2021-01-06 23:04:39 +03:00
f61e2d04f1 GET_WHEELIE_STATS fix 2021-01-06 11:56:13 -08:00
0b73b13b9a Cleanup and fixes for new decoders 2021-01-06 20:23:30 +02:00
ff9d6e4fd6 Fixes for CVbFile 2021-01-06 18:15:32 +01:00
2bcb2a40e4 Small fixes for new wav decoder 2021-01-06 17:57:43 +01:00
d9e2b1f0de Remove fastmath from premake's config 2021-01-06 17:24:22 +01:00
a51757429e Implementing our own WAV decoder to replace SndFile 2021-01-06 15:52:12 +02:00
bc363a74f5 Add support of PS2 audio streams to OpenAL 2021-01-05 21:06:17 +02:00
bafaa6acc6 sand fix 2021-01-05 18:53:00 +03:00
f639aae2ae Fix chainsaw sound 2021-01-05 13:04:42 +02:00
0d3e6a3dce Vehicle: Automobile: more pointless fixes 2021-01-05 04:41:24 +03:00
32d3ea0a2d Audio fixes 2021-01-05 00:31:31 +02:00
aap
33fd33b03a fix to !PC_PLAYER_CONTROLS 2021-01-04 23:29:23 +01:00
aap
8026bba723 pop boot fix 2021-01-04 22:59:55 +01:00
a6680e38d5 Merge remote-tracking branch 'upstream/miami' into miami 2021-01-05 00:48:40 +03:00
6fa081e004 fix 2021-01-05 00:48:25 +03:00
6753d39dd0 Fix uninitialized filed in cAudioManager 2021-01-04 23:11:31 +02:00
09c213738b Fix CEntity::UpdateRwFrame 2021-01-04 22:27:51 +02:00
a346461ea8 Increase number of stream buffers, plus ALStreamSources fix 2021-01-04 22:27:32 +02:00
4f9bfb4387 Fix missing ifdef 2021-01-04 21:55:41 +02:00
7adac51152 Handle stereo panning in OAL manually for streams 2021-01-04 20:11:04 +02:00
601f77b5c8 Merge remote-tracking branch 'upstream/miami' into miami 2021-01-04 21:03:31 +03:00
2d072325ad fix 2021-01-04 21:03:19 +03:00
2db0d7cfa1 Double the volume for mission audio in OAL + small fix 2021-01-04 15:08:02 +02:00
ae388c48d0 cfo fix 2021-01-04 16:05:49 +03:00
aap
362f2b5ec4 Merge pull request #924 from erorcun/miami
Entity/Physical proof-read 1
2021-01-04 12:45:56 +01:00
22e8202d27 Entity/Physical proof-read 1 2021-01-04 13:41:41 +03:00
1efbd7ead2 Fix unlimited rotation in Phnom Penh '86 2021-01-04 10:58:12 +02:00
33f467453e dumb 2021-01-03 23:36:32 +03:00
bec8f6b86c reorder 2021-01-03 22:29:16 +03:00
5b081398b5 Frontend: disable windowed mode selector while in game 2021-01-03 22:00:25 +03:00
21e151cadd hud fix 2021-01-03 20:06:29 +03:00
0392145512 obsolete comment 2021-01-03 19:03:13 +03:00
aap
6579645934 Merge pull request #916 from Sergeanur/VC/VarConsole
CVarConsole
2021-01-03 17:01:17 +01:00
aap
12a869c62a Merge pull request #921 from TheOfficialFloW/patch-2
Fix typo in ProcessMissionAudioSlot.
2021-01-03 17:00:08 +01:00
0c2ea268d1 Fix typo in ProcessMissionAudioSlot. 2021-01-03 16:56:12 +01:00
06fd054eb3 fixed intro text line defaults 2021-01-03 18:56:05 +03:00
2e06e4b6b8 Fix speed of sound 2021-01-03 16:43:58 +02:00
c4479a0185 Ped: PlayerPed: fixes 2021-01-03 17:33:50 +03:00
e46b06491c Fix nFramesForPretendPlaying. 2021-01-03 14:59:16 +01:00
5e019ed9f8 fixed array size 2021-01-03 13:57:27 +03:00
29e0cfa98b fix 2021-01-03 12:52:26 +03:00
9ae3fac08e Fix ServiceTrack 2021-01-03 00:52:30 +02:00
1169437ec6 Fix uninitialized RadioStaticCounter 2021-01-03 00:15:33 +02:00
aap
57677b7b55 slightly better variable name 2021-01-02 20:30:16 +01:00
aap
ec1e8b6c86 "clarification" of handling code 2021-01-02 20:15:07 +01:00
aap
e58acce9e4 old line was better (until we know whats going on) 2021-01-02 13:00:23 +01:00
30bc51ae9e Pad2 fix 2021-01-02 13:42:49 +02:00
2268365c3b Vehicle: Automobile: fixes and style things 2021-01-02 14:41:53 +03:00
42e4a068bb CVarConsole 2021-01-02 13:32:25 +02:00
e7c46ac658 Partial controller buttons support 2021-01-02 12:51:09 +02:00
aap
3fffcb47d9 increase screen droplet splash dist 2021-01-01 23:33:29 +01:00
55af046c92 Encode files to UTF-8 2021-01-01 21:07:39 +01:00
a7f053776a Merge remote-tracking branch 'upstream/miami' into miami 2021-01-01 23:06:44 +03:00
c75c4603fc bad stuff 2021-01-01 23:06:20 +03:00
29b76fc4f5 small thing 2021-01-01 22:57:17 +03:00
aap
ec00a1eb0d rain fix 2021-01-01 18:37:17 +01:00
c3f49386ca Fix wrong sound when bumping peds 2021-01-01 15:11:12 +02:00
aap
60197c2d7e Merge branch 'miami' of github.com:GTAmodding/re3 into miami 2021-01-01 14:02:05 +01:00
aap
0127d7eb8b wrong bike fall off anim 2021-01-01 14:02:02 +01:00
b4b9f9601b Merge branch 'miami' into lcs-dev 2021-01-01 14:55:00 +03:00
4604b45852 Merge remote-tracking branch 'upstream/miami' into miami 2021-01-01 14:53:37 +03:00
9fd93e8e57 merge master to miami 2021-01-01 14:53:20 +03:00
4f3e4cd542 Restore some marker code 2021-01-01 12:58:14 +02:00
ccf6232039 small CWorld fixes 2021-01-01 12:47:22 +02:00
575845772f Merge branch 'miami' into lcs-dev 2021-01-01 13:21:42 +03:00
aap
c74c7ce1d4 Merge branch 'miami' of github.com:GTAmodding/re3 into miami 2021-01-01 00:03:16 +01:00
aap
4d1305efb2 some CAutomobile fixes 2020-12-31 23:59:45 +01:00
9d29b33ff4 Merge branch 'miami' of github.com:GTAmodding/re3 into miami 2020-12-31 22:06:55 +01:00
a0a3a095ac CMoneyMessages::RegisterOne v2 2020-12-31 22:06:39 +01:00
aap
14eb16d5d4 remove superfluous CWorld:: 2020-12-31 22:03:42 +01:00
aap
613bb72eb7 fix explosion 2020-12-31 21:57:52 +01:00
ed9c288db8 Fix CMoneyMessages::RegisterOne 2020-12-31 21:46:16 +01:00
a9bf0fa97e Merge remote-tracking branch 'upstream/miami' into miami 2020-12-31 19:30:11 +03:00
56ea1c7be7 fixed some bugs (saves might be broken though) 2020-12-31 19:29:13 +03:00
d11325cf0f Fix UB in ProjectileInfo.cpp 2020-12-31 16:34:50 +01:00
aap
d89d3db126 fix UB 2020-12-31 16:14:51 +01:00
aap
80d15d142d fix use of LoadFile 2020-12-30 15:08:18 +01:00
f77c8990ce Update mss32.lib 2020-12-30 01:46:05 +01:00
0b3690a59c Update mss.h 2020-12-30 01:37:31 +01:00
aap
2e38b51e1c foobar! 2020-12-29 20:32:37 +01:00
aap
426364b961 fix custom pipes mem leak 2020-12-29 20:31:06 +01:00
1867a6c47b Add sdk to gitignore
# Conflicts:
#	.gitignore
2020-12-29 20:24:57 +02:00
3a59d9075f Move mss dummy headers into vendor 2020-12-29 19:20:36 +01:00
a73f5340a2 Remove sdk 2020-12-29 18:59:40 +01:00
2bc843fdcd More menu error sound fix 2020-12-29 14:03:59 +02:00
b9e97ab79d Reorder CEntity functions into their original order 2020-12-29 13:55:26 +02:00
06df781bca Fix error sound in when entering load/save menu 2020-12-29 08:31:38 +02:00
aap
c93fb5e443 fix neo screendroplet moving 2020-12-28 21:58:21 +01:00
ad560ffaf9 multiple instances sema fix 2020-12-28 23:13:20 +03:00
5ebcef2718 Use enum in frontend 2020-12-28 20:48:30 +02:00
6b52fb5fb6 Add shadow to subtitles with cutscene borders off 2020-12-28 15:04:07 +02:00
5780200ba3 Fix original wanted stars position 2020-12-28 15:29:21 +03:00
7b2f17826a Ped: Real weapon fix 2020-12-28 03:52:23 +03:00
d3f2f4f6ac Ped: WeaponInfo: little fixes and renamings 2020-12-28 03:25:26 +03:00
2dbe3d5b83 fix 2020-12-27 23:54:21 +03:00
9e7cb046b3 move cfo populate func. 2020-12-27 23:46:15 +03:00
9afcc355ff Dynamically add pipelines options, only if neo.txd exists 2020-12-27 23:26:00 +03:00
aap
637cff3180 rename unused field 2020-12-27 20:38:03 +01:00
aap
d33f1071ae handling unit conversion 2020-12-27 20:34:19 +01:00
aap
013e9b9992 fix backface culling 2020-12-27 19:53:10 +01:00
aap
00da91b73f tiny rendering fixes 2020-12-27 18:22:11 +01:00
aap
54ce7885bc add neo files 2020-12-27 18:15:25 +01:00
7959b7fd1f NO_ISLAND_LOADING ported from re3 2020-12-27 18:26:30 +02:00
aap
76e744bb7b switch vehicle pipe default 2020-12-27 16:28:32 +01:00
aap
5a74495d7b little hack to make new postfx not crash 2020-12-27 16:09:01 +01:00
904746054c Fix peds running to see dead peds in water 2020-12-27 17:33:32 +03:00
759f91ce91 Fix drive-by machine gun sound 2020-12-27 10:58:33 +02:00
a4ec3cdf0b trivial fix 2020-12-27 06:03:38 +03:00
aap
0f020127f3 fixed some bike bugs 2020-12-26 16:00:06 +01:00
aap
9d62bed9f3 fix a struct init 2020-12-26 15:42:05 +01:00
aap
e9d0a1d015 ffs 2020-12-26 15:22:16 +01:00
aap
17640302bf include case 2020-12-26 15:19:19 +01:00
aap
7613528e7e make screendrops independent of neo.txd; enable new rendering by default 2020-12-26 14:48:55 +01:00
aap
b41f93fcd6 garage cam fix 2020-12-26 13:45:53 +01:00
c9c447e7a9 Weapon flags changed from bit fields to bit mask (R* vision) 2020-12-26 14:22:02 +02:00
aap
688e277e89 fix mblur stencil 2020-12-26 13:02:30 +01:00
aap
8737a1d76a unfix particle bug 2020-12-26 11:43:57 +01:00
f6fe5c96c9 Merge remote-tracking branch 'upstream/miami' into miami 2020-12-26 12:56:34 +03:00
149aef929d fixed replay 2020-12-26 12:56:20 +03:00
3b2558bb9e Add optimize off to fix compiler bug CBike::ProcessControl 2020-12-26 11:54:35 +02:00
57098a77ec Backface cull. in INI, mouse sensitivity fix, aspect ratio auto as default 2020-12-26 12:10:04 +03:00
99a3fe0a13 Fix not being able to hit lying peds with melee weapon 2020-12-26 10:04:26 +02:00
441b3864f3 cPedParams ctor 2020-12-26 07:53:30 +02:00
18bea3cfa5 Fix weapon pickup sound 2020-12-26 07:31:53 +02:00
783d1edaf1 cVehicleParams ctor 2020-12-25 20:27:37 +02:00
977a1a08e9 Merge pull request #897 from Sergeanur/VC/aud
cAudioManager::ProcessOneShotScriptObject
2020-12-25 20:10:20 +02:00
90ef1d2d31 cAudioManager::ProcessBoatEngine 2020-12-25 19:59:45 +02:00
9345efbafb cPedParams fixes 2020-12-25 17:42:40 +02:00
fa6eb3a64f cAudioManager::ProcessOneShotScriptObject 2020-12-25 17:22:18 +02:00
587c788ce3 Fix 2020-12-25 17:20:57 +02:00
356f101078 Fix cAudioManager::ProcessPedOneShots crash 2020-12-25 16:24:20 +02:00
e00b8a93bf Fix use of strncmp 2020-12-25 15:18:48 +02:00
dc72729a40 Merge pull request #895 from ShFil119/miami_audio
More audio
2020-12-25 14:02:47 +01:00
cf8799d116 More audio enums 2020-12-25 13:51:09 +01:00
c0be4a3f7d Fix cMusicManager::SetRadioChannelByScript 2020-12-25 12:06:08 +02:00
3b85457020 Merge pull request #894 from erorcun/miami
signed/unsigned fixes, and some other fixes
2020-12-25 12:56:31 +03:00
a50244dc16 signed/unsigned fixes, and some other fixes 2020-12-25 12:54:41 +03:00
5f98b4fdca Merge remote-tracking branch 'upstream/miami' into miami 2020-12-25 12:12:09 +03:00
4846564c78 cMusicManager::ServiceGameMode fix 2020-12-25 11:11:37 +02:00
86f04884de fix garage 2020-12-25 12:11:22 +03:00
bf52620175 Fix debug menu memory leak 2020-12-25 10:57:39 +02:00
e14ed9c7dd Restore original Cheat_strncmp 2020-12-25 10:44:20 +02:00
74276ae878 More type fix 2020-12-25 09:29:23 +02:00
1cc8a1d247 Small audio code fix 2020-12-25 09:13:01 +02:00
6a2edcea46 Small type use fixes
# Conflicts:
#	src/audio/AudioLogic.cpp
#	src/control/Garages.cpp
#	src/vehicles/Cranes.cpp
2020-12-25 09:03:13 +02:00
0768026938 Fix chainsaw sounds lol 2020-12-25 08:33:43 +02:00
19cc1d7854 fixes 2020-12-25 01:29:18 +01:00
aap
450cd17d16 make screen droplets not crash without neo.txd 2020-12-24 09:41:18 +01:00
35473e653d More audio 2020-12-22 14:53:45 +01:00
aap
aefaa17a84 Merge branch 'miami' of github.com:GTAmodding/re3 into miami 2020-12-21 20:49:03 +01:00
aap
88b0134e72 option for PC controls 2020-12-21 20:48:28 +01:00
c0260b4167 Fix char encoding 2020-12-21 14:53:45 +01:00
aap
b574996334 fix sizeof 2020-12-21 13:33:35 +01:00
aap
adcfb30d7d fix name shadowing 2020-12-21 13:29:09 +01:00
aap
f251803f55 Merge branch 'miami' of github.com:GTAmodding/re3 into miami 2020-12-21 12:34:36 +01:00
aap
fb97335d9f push/pop memids 2020-12-21 12:34:29 +01:00
05fb47bdb0 Fix wrong call on free cam (now it's faster) 2020-12-21 02:36:09 +03:00
9b9545b92a Car entering cancel test 2020-12-21 02:06:00 +03:00
26aed6611e fix auto duck cancel bug 2020-12-21 01:15:40 +03:00
ca4602d788 Fix free cam aiming 2 2020-12-20 21:53:06 +03:00
aap
f60b450ee8 main.cpp mostly checked against ps2 now 2020-12-20 19:13:37 +01:00
aap
036263993e ps2 fixes 2020-12-20 17:35:46 +01:00
aap
b48445cc7e Merge branch 'miami' of github.com:GTAmodding/re3 into miami 2020-12-20 14:27:56 +01:00
aap
fc312113d2 some PS2 things 2020-12-20 14:27:48 +01:00
2e90ce9cc5 uncomment InitRadioStationPositionList 2020-12-20 13:41:29 +02:00
be92b57b54 buildings directory
# Conflicts:
#	premake5.lua
2020-12-20 12:40:59 +02:00
aap
6697ab6b63 Merge pull request #890 from aap/miami
anim compression
2020-12-20 11:31:22 +01:00
aap
2a51e1da04 Merge branch 'miami' of github.com:GTAmodding/re3 into miami 2020-12-19 17:27:01 +01:00
867133e93d Merge pull request #891 from Nick007J/miami
merge master to miami
2020-12-19 19:15:52 +03:00
b6298915dd fixed cmakelists 2020-12-19 16:21:33 +03:00
196a13b1cc removed renderer stuff 2020-12-19 14:52:32 +03:00
76a564df2e fixed review stuff 2020-12-19 14:33:22 +03:00
17efc38e35 removed cullzones stuff from renderer 2020-12-19 12:27:16 +03:00
bf90fed2b7 fixes 2020-12-19 11:49:19 +03:00
e3aac6263f Merge remote-tracking branch 'upstream/miami' into miami 2020-12-19 03:21:32 +03:00
8d1996833b merge attempt 2020-12-19 03:21:04 +03:00
aap
9982f1f21b anim compression 2020-12-18 23:46:51 +01:00
aap
73d080bcc8 silly mistake 2020-12-18 23:39:59 +01:00
aap
c17ccc50ab get rid of all PED_SKIN defines 2020-12-18 17:27:18 +01:00
aap
75a9976cbc memorymgr fix 2020-12-18 14:33:54 +01:00
aap
f3a356375e added MemoryHeap from III, MemoryMgr 2020-12-18 14:19:03 +01:00
aap
55cf1a37cb Merge branch 'miami' of github.com:GTAmodding/re3 into miami 2020-12-18 13:50:37 +01:00
aap
a7050458ae little cleanup and synch on templates and config 2020-12-18 13:50:26 +01:00
aap
db752d141b Merge pull request #889 from aap/miami
CMBlur FX
2020-12-18 13:31:24 +01:00
cfda5eb148 PlayerInfo functions reordered into original order, FindPlayer... functions moved to PlayerInfo, improved CVector <-> RwV3d conversion, small fixes 2020-12-18 02:58:09 +02:00
2903ebe296 Fix placement of some script functions
# Conflicts:
#	src/control/Script5.cpp
2020-12-16 23:29:17 +02:00
aap
1af5065df7 Merge branch 'miami' of github.com:GTAmodding/re3 into miami 2020-12-16 21:54:01 +01:00
aap
e9df32a983 finished CMBlur 2020-12-16 21:53:47 +01:00
12d16ddc06 Fixes and style changes 2020-12-16 23:28:25 +03:00
aap
9200810f60 update librw with stencil states 2020-12-16 15:49:22 +01:00
aap
78c7459b3a more tiny water sync 2020-12-16 13:32:03 +01:00
aap
0d97a31ce9 tiny water sync 2020-12-16 13:25:45 +01:00
aap
c56bfe064a Merge pull request #888 from withmorten/waterlevel-miami
sync WaterLevelInit with master, and other small fixes
2020-12-16 12:38:08 +01:00
ce9eafcd51 sync WaterLevelInit with master, and other small fixes 2020-12-15 21:55:04 +01:00
59caa98c43 Make free cam collision code readable by aap, fixes 2020-12-15 17:33:51 +03:00
aap
81aaddb0e7 Merge pull request #885 from waliedyassen/miami-automobile-fixes
Few bug fixes in CAutomobile
2020-12-15 14:50:20 +01:00
37d3188ce7 Few bug fixes in CAutomobile 2020-12-15 12:20:55 +02:00
8f2abc6750 fix 2020-12-15 05:11:45 +02:00
e970e5f246 Use SetMoveState 2020-12-15 04:25:12 +02:00
ac95138c18 More fixes 2020-12-15 04:16:29 +02:00
ab3e258f19 SetPedState fixes 2020-12-15 03:25:05 +02:00
0f5893ed60 Fix language initialization call order 2020-12-14 02:46:55 +03:00
91902a031e Enable our Linux joystick handling 2020-12-14 02:43:07 +03:00
aap
e8fe09cf23 another fix for new renderer 2020-12-13 23:09:19 +01:00
aap
e3616c1ce1 Merge branch 'miami' of github.com:GTAmodding/re3 into miami 2020-12-13 12:53:27 +01:00
aap
35cac6b93b some rendering things 2020-12-13 12:53:19 +01:00
6d61f9d2e1 fixed replay bugs 2020-12-12 23:17:16 +03:00
bfe382c315 better fix 2020-12-12 21:06:14 +03:00
b3f97cdce4 style change 2020-12-12 20:39:34 +03:00
229b8f304a fixed a bug 2020-12-12 20:37:26 +03:00
78718700f9 quick fix 2020-12-12 13:00:40 +03:00
aap
4f3be49728 Merge pull request #868 from erorcun/miami
Frontend cleanup, .INI, CFO, scrollable pages
2020-12-12 10:43:06 +01:00
c7ce056728 Spanish translation corrections and fixes
Unlike GTA3's spanish.gxt file, Vice City for PC's version has a number of issues related with the structure of the text file (it also has translation issues, but those are for a later commit).

This is what was done:
 - Removed unused strings.
 - Fixed string names to match the American file (fixes "STRING not found" in the intro subtitles, the media coverage strings, and probably a lot more).
 - Added most of the translation changes from the iOS release (except the Cuban/Haitian censorship, as the iOS release also had voice changes that are not present in PC).
 - Fixed the help screen's extra articles and missing full stops.
 - Added re3's new strings, using the translation from the GTA3 version.
 - A few minor translation changes of my own.
 - Relocated some strings to follow the american.gxt structure.
2020-12-12 11:41:24 +02:00
4197498e2d fixed garages + minor fixes 2020-12-12 12:24:55 +03:00
aap
ccbbde549e Merge pull request #869 from Nick007J/miami
garages revision + fixes
2020-12-09 09:55:50 +01:00
c504cf02e4 Vehicle cam object collision fix 2020-12-09 07:15:04 +03:00
95fe5004c8 Fix 2020-12-09 06:36:51 +03:00
cf4aedd97c Use SDL gamepad mapping in environment by @ZLau92, implement @Sergeanur 's idea to use PPSSPP's DB if available, disable DEV() messages by default 2020-12-09 06:36:28 +03:00
ba0c9e8b29 Merge branch 'miami' of https://github.com/GTAmodding/re3 into miami 2020-12-09 06:34:04 +03:00
b473adcf80 Frontend cleanup, .INI, CFO, scrollable pages 2020-12-09 06:32:33 +03:00
ac3484b82e Merge pull request #872 from withmorten/sized-enums-miami
Get rid of sized enums 2: Electric Boogaloo
2020-12-09 03:31:03 +03:00
aap
c8b0f0bdf8 fix CObject::DeleteAllTempObjectsInArea 2020-12-08 23:16:38 +01:00
5a7e62e4a9 Update Readme 2020-12-08 18:47:58 +01:00
6ba442577f Add basic clang format file 2020-12-08 18:38:22 +01:00
99e54aed80 remove appveyor for now, our bintray account is still locked 2020-12-08 18:33:58 +01:00
016ff5b4aa sync with upstream 2020-12-08 12:00:24 +03:00
f3e9c82432 Pool fixes from master 2020-12-08 07:52:03 +02:00
579efc05fc Fix bike's fInAirXRes 2020-12-08 05:26:48 +02:00
aae4f3319f Fixes 2020-12-08 03:29:08 +02:00
8844caf44d Fix vanilla font bug 2020-12-08 02:22:02 +02:00
aap
61c6b28237 Merge pull request #847 from waliedyassen/CObject-fixes
CObject fixes
2020-12-07 22:03:12 +01:00
64049f0f81 Fix font bug 2020-12-07 22:56:22 +02:00
4b4f59a5d4 Add texts 2020-12-07 17:09:31 +02:00
4c0744260d uint8 enums fixed 2020-12-07 01:59:17 +01:00
912e71be53 int8 enums fixed 2020-12-07 01:30:38 +01:00
16ed00aede uint16 enums fixed 2020-12-07 01:22:51 +01:00
e6a7a9353c uint32 enums fixed 2020-12-07 01:20:14 +01:00
7ad86595e4 int32 enum fixed 2020-12-07 01:19:10 +01:00
190bcf68f3 Implement DAMAGE_EFFECT_SMASH_VEGPALM and code style fixes 2020-12-07 01:11:40 +02:00
406f646949 pool stuff fix 2020-12-06 21:28:40 +03:00
17a939e38d quick fix 2020-12-06 19:34:43 +03:00
f6818f9654 Merge remote-tracking branch 'upstream/miami' into miami 2020-12-06 19:32:07 +03:00
b5cdc33e7c Merge pull request #865 from Nick007J/miami
script from other platforms and unused commands
2020-12-06 19:31:20 +03:00
fe918d41c2 garages revision + some fixes 2020-12-06 19:30:51 +03:00
a82188ac07 lil fix 2020-12-05 12:12:56 +03:00
0bd373cd56 script from other platforms and unused commands 2020-12-05 02:49:32 +03:00
aap
e145593c28 Merge branch 'miami' of github.com:GTAmodding/re3 into miami 2020-12-03 19:12:16 +01:00
aap
43fb7fe342 one more original name 2020-12-03 19:11:57 +01:00
bee2408413 Fix discord invite 2020-12-03 16:48:36 +01:00
aap
0d166081ad animviewer fixes 2020-12-03 11:30:46 +01:00
a37ce3ee9f Merge pull request #863 from erorcun/miami
AnimViewer done, comment cleanup
2020-12-03 13:06:55 +03:00
ab3e810a95 AnimViewer done, comment cleanup 2020-12-03 05:22:58 +03:00
469deeb141 Merge pull request #861 from erorcun/miami
Stats page
2020-12-03 05:22:42 +03:00
8b47774aee Stats page 2020-12-03 02:09:35 +03:00
774aa1570f Merge pull request #853 from erorcun/miami
PlayerPed and "Redefine controls" menu done, fixes
2020-12-02 14:35:06 +03:00
bd8b907d13 PlayerPed and "Redefine controls" menu done, fixes 2020-12-02 14:21:46 +03:00
aap
1172056833 cam lod dist fix 2020-12-02 10:39:23 +01:00
43d5831394 cAudioManager::ProcessPedOneShots + fixes 2020-12-01 23:38:36 +02:00
a259b6b8ab TexturePools
# Conflicts:
#	src/core/Game.cpp
#	src/rw/RwHelper.cpp
2020-12-01 22:54:19 +02:00
24b5406a1d Add GTA_REPLAY
# Conflicts:
#	src/control/Replay.cpp
#	src/control/Replay.h
2020-12-01 22:53:09 +02:00
aap
8de7072720 Merge pull request #857 from majesticCoding/miami
skimmer shadow
2020-12-01 11:24:24 +01:00
aap
d545246bbf plane fix 2020-12-01 10:19:11 +01:00
cd23695116 skimmer shadow 2020-11-30 23:52:35 -08:00
5a3a058ed3 Make texture conversion work a bit faster
# Conflicts:
#	src/core/config.h
2020-12-01 03:51:31 +02:00
16abbad6b2 Add multisampling to librw
# Conflicts:
#	src/core/config.h
#	vendor/librw
2020-12-01 03:42:40 +02:00
b8d3d8f5e4 add -console cmdline arg instead of #if 0/1
# Conflicts:
#	src/skel/glfw/glfw.cpp
#	src/skel/win/win.cpp
2020-12-01 03:41:09 +02:00
1dcd7c5b14 Fix the code style issues 2020-11-30 08:36:06 +02:00
ac7ea2b9fa Implement the missing damage effects and fix the existing ones 2020-11-30 02:09:35 +02:00
a1ab82b188 Implement MI_BEACHBALL behaviours 2020-11-29 09:14:15 +02:00
afe70003f4 Fix MI_RCBOMB gravity force and treat MI_PETROLPUMP2 as explosive 2020-11-29 08:53:54 +02:00
03ef438a72 Fix CObject::DeleteAllTempObjectsInArea not considering the given point 2020-11-29 04:20:28 +02:00
8cb3c07151 some nasty FIX_BUGS for SLIDE_OBJECT 2020-11-28 21:26:38 +03:00
b47c505438 Update Script.cpp
Case sensitivity fix. Causes compile issue on linux.
2020-11-28 13:36:38 +02:00
2e3d5162f7 Readme update 2020-11-27 18:33:59 +02:00
53162e23b6 Update README.md 2020-11-27 00:41:29 +03:00
164f16c85b Some TODOs done in Peds code 2020-11-25 19:39:57 +02:00
8f5e60f787 Original enum name 2020-11-24 17:16:39 +02:00
aap
1906a08f72 cam fix; forgot some shaders 2020-11-24 15:18:39 +01:00
a35b3b4602 Script commands split to original files 2020-11-24 14:06:48 +02:00
b7783b19d2 Xbox message screen, disabled by default 2020-11-24 01:45:54 +03:00
aap
b2f9b3175b two unused functions 2020-11-23 11:06:16 +01:00
3289bfaa87 Darkel done 2020-11-22 23:18:35 +02:00
87e6edd554 Renderer fix 2020-11-22 23:16:21 +02:00
2b53f267a7 one more fix
# Conflicts:
#	src/control/Restart.cpp
2020-11-22 23:13:43 +02:00
6a6551f39b small improvement
# Conflicts:
#	src/control/Restart.cpp
2020-11-22 23:13:23 +02:00
aap
b9b7d5ac21 Merge pull request #825 from aap/miami
neo screen droplets
2020-11-22 00:12:31 +01:00
fe40f65703 Reorganize CPed functions into their original cpp files 2020-11-20 01:18:37 +02:00
aap
07fe099b4e neo screen droplets 2020-11-19 19:07:32 +01:00
54214dd2c4 Fix mouse lock/high-dpi 2020-11-18 17:42:21 +03:00
2ce9e540da Use CLOCK_MONOTONIC_FAST when available (FreeBSD)
CLOCK_MONOTONIC_FAST is the equivalent of Linux's CLOCK_MONOTONIC_RAW.
2020-11-18 17:13:03 +03:00
4091d00057 Add non-amd64 architectures for bsd 2020-11-18 17:12:57 +03:00
1544acff05 Use GLFW_CURSOR_DISABLED (glfw's native mouse restriction)
On Wayland, clients cannot move the mouse pointer.
Mouse constraints, as required for 3D camera movement, are an explicit specific thing,
and glfw supports it with GLFW_CURSOR_DISABLED.
Use DISABLED, unless we're in a menu in windowed mode, where HIDDEN is still appropriate.
2020-11-18 17:10:56 +03:00
7c1497a058 glfw: scale cursor position by the ratio of framebuffer to screen size
This fixes the mouse being constrained to the top left quarter of the window on Wayland HiDPI setups.
2020-11-18 17:10:49 +03:00
d05c50ea74 Use glfwSetFramebufferSizeCallback instead of glfwSetWindowSizeCallback
Framebuffer size is scaled by the display scale.
This fixes the game being shrunk to the bottom left quarter of the window on Wayland HiDPI setups.

Corresponding change in librw: glfwGetWindowSize -> glfwGetFramebufferSize.
2020-11-18 17:09:10 +03:00
aap
8963cbcb7c Merge branch 'miami' of github.com:GTAmodding/re3 into miami 2020-11-18 11:15:32 +01:00
aap
acb29e0dad more fixes to librw stuff 2020-11-18 11:15:27 +01:00
f043b6e095 Fix CI 2020-11-18 10:40:14 +01:00
aap
8c70c2a136 changes to librw layer, GLES now runtime choice 2020-11-18 10:32:18 +01:00
aap
448c56647f Merge pull request #821 from aap/miami
CPed review part2
2020-11-18 10:04:12 +01:00
1d600c640a Merge pull request #816 from erorcun/miami
Frontend: Stats, Map, Audio inputs, Radio selector
2020-11-18 01:45:28 +03:00
c6f53d25b0 Frontend: Stats, Map, Audio inputs, Radio selector 2020-11-18 00:33:45 +03:00
b9b9dabd75 lcs car ctrl 2 2020-11-16 22:20:56 +03:00
e71da86a5c pragma twice 2020-11-16 15:05:29 +02:00
cdd30f4da5 Move ColStore to collision 2020-11-16 12:49:23 +02:00
ed5a9d5dc1 Merge branch 'miami' into lcs-dev 2020-11-16 12:48:28 +03:00
15b7126243 small fix of fix 2020-11-16 12:28:20 +03:00
0ac621588e small fix 2020-11-16 12:22:55 +03:00
7339ebce60 lcs car ctrl 1 2020-11-16 12:21:50 +03:00
aap
b82b79fa11 CPed review part2; and reverting some stylistic changes 2020-11-16 09:57:33 +01:00
aap
acdf602505 change gl caps.dat constants 2020-11-16 09:48:38 +01:00
aap
6804ad62c6 little fix to ps2 CPad 2020-11-16 09:48:15 +01:00
aap
8a8f2d4e5b Merge pull request #815 from aap/miami
CPed review part 1
2020-11-16 09:45:47 +01:00
9bb8ebaa10 Make collision code placement more like original (+ small fixes)
# Conflicts:
#	premake5.lua
#	src/CMakeLists.txt
#	src/collision/Collision.cpp
#	src/core/Collision.h
2020-11-16 00:36:54 +02:00
26c6908d25 car AI revision 2020-11-14 14:21:56 +03:00
6682e56f71 small fix 2020-11-13 17:53:03 +03:00
3048a77a05 fix 2020-11-13 16:02:06 +03:00
aap
257f45c3c3 Merge branch 'miami' of github.com:GTAmodding/re3 into miami 2020-11-13 13:14:56 +01:00
aap
8ab0d25b4a CPed review, part 1 2020-11-13 13:14:22 +01:00
a3f24d1bbf Merge remote-tracking branch 'upstream/miami' into miami 2020-11-13 13:20:07 +03:00
2e915780aa some fixes 2020-11-13 13:19:54 +03:00
aap
3d46f2a3af fixed bike collision damage 2020-11-12 20:05:02 +01:00
4f8029ad7c Merge branch 'miami' of https://github.com/GTAmodding/re3 into miami 2020-11-12 17:37:04 +03:00
b67ed1988f Peds: Remove redundant lines 2020-11-12 17:36:41 +03:00
55c9a81922 fixed zone bug 2020-11-12 17:32:16 +03:00
aap
90b624a3e0 Merge pull request #812 from Nick007J/miami
CWorld done + top gear fix
2020-11-12 11:40:19 +01:00
aap
0115b0827b fix wrong blend mode (original bug) 2020-11-11 19:10:22 +01:00
aap
79432dce20 Merge branch 'miami' of github.com:GTAmodding/re3 into miami 2020-11-11 14:42:12 +01:00
aap
ff44f29616 ped fix for new renderer 2020-11-11 14:42:02 +01:00
a76c6b2307 damn 2020-11-11 13:40:11 +03:00
984708dfd3 damn 2020-11-11 13:36:10 +03:00
a8b5303207 Update src/control/Pickups.cpp
Co-authored-by: Sergeanur <s.anureev@yandex.ua>
2020-11-11 13:19:21 +03:00
35874b5fd2 fix 2020-11-11 12:27:40 +03:00
a67d4c70d7 Merge remote-tracking branch 'upstream/miami' into miami 2020-11-11 12:22:57 +03:00
be92957328 fixed top gear 2020-11-11 12:21:30 +03:00
aap
48d0653331 urgh, merge and changes to RW layer in one commit. 2020-11-11 09:38:33 +01:00
612a6dd06c Merge remote-tracking branch 'upstream/miami' into miami 2020-11-11 00:08:54 +03:00
ef2089cafb CWorld done 2020-11-11 00:08:32 +03:00
5c64dba65a Merge pull request #771 from theR4K/miamiDev
more audio for god of audio
2020-11-10 22:32:12 +02:00
aap
e87cd7077e Merge pull request #811 from majesticCoding/miami
CGlass indices fix
2020-11-10 15:28:52 +01:00
cf6a9a8341 CGlass indices fix 2020-11-09 06:18:49 -08:00
51e7f44433 Pickup fix 2020-11-08 22:40:05 +02:00
23d294fef5 Possibly fix pickup money text 2020-11-08 21:59:13 +02:00
fb2173c396 to make Serge and _R4K_ happy 2020-11-08 22:33:30 +03:00
363a2c6098 marked stupied code(dotProduct and AudioEvents) 2020-11-08 22:26:14 +03:00
0853a47a3f returned bad code, becouse no one knows what to do with it 2020-11-08 21:23:29 +03:00
fe5d0c9cdf Font: Hud: Use orig. text dimensions, fix right-align calculations 2020-11-08 20:49:47 +03:00
95bd5b073a pointers into referencies! 2020-11-08 20:31:24 +03:00
a553ac8716 fix for merge fix 2020-11-08 17:49:10 +03:00
f8cc86c227 fix merge 2020-11-08 16:23:20 +03:00
23d23f6462 merge upstream 2020-11-08 16:23:05 +03:00
a2e0373d22 Pickups fix 2020-11-08 15:00:54 +02:00
7ede8685ec Ped comments fixes 2020-11-07 14:39:53 +02:00
aap
092f32ba67 move stuff into define 2020-11-07 12:52:11 +01:00
e24513d2ad Sfx audio logic 2020-11-06 18:42:52 +01:00
aap
ee8366adba RwRenderStateGet 2020-11-05 17:46:28 +02:00
5a59542679 Fix inverted vertical camera 2020-11-05 16:38:41 +02:00
aap
0d55b6182a Merge pull request #795 from withmorten/master
enable static runtime for all windows builds; fast floating point for x86/x64 builds; no sized dealloc for windows builds
# Conflicts:
#	premake5.lua
#	src/core/config.h
2020-11-05 16:38:02 +02:00
aap
67c894cda9 more fixes to new renderer 2020-11-04 23:11:27 +01:00
aap
0662de5323 fixed vehicle and ped sorting for new renderer 2020-11-04 22:45:01 +01:00
aap
244b91ee80 fixed boats for new renderer 2020-11-04 16:22:15 +01:00
89b622eea8 FORMAT 2020-11-04 11:37:17 +03:00
aap
e1279b01bc forget ifdef 2020-11-03 20:40:33 +01:00
aap
6857e26411 Merge branch 'miami' of github.com:GTAmodding/re3 into miami 2020-11-03 20:33:14 +01:00
aap
3c5bb4e8f3 new LCS-style renderer 2020-11-03 20:33:07 +01:00
e473123a6a fixes 2020-11-03 00:07:25 +03:00
0ccc70c843 embarassing 2020-11-02 23:53:52 +03:00
aap
8acc98563e Merge branch 'miami' of github.com:GTAmodding/re3 into miami 2020-11-02 13:57:58 +01:00
aap
7041f11987 bike bug 2020-11-02 13:57:51 +01:00
bae6c24209 fix 2020-11-02 15:54:42 +03:00
174424c520 fix serviceSoundEffects an cleanup 2020-11-02 12:05:23 +03:00
cebf32c46c mark code 2020-11-01 23:38:45 +03:00
5ea9285c5b changes in switch, and mark code 2020-11-01 22:42:45 +03:00
55c4346610 Merge branch 'miami' of https://github.com/GTAmodding/re3 into miamiDev 2020-11-01 22:35:46 +03:00
5edd9e75da finished script and replay 2020-11-01 18:21:05 +03:00
45c09224f7 fixed KYFC 2020-11-01 16:34:39 +03:00
370d693f9d the driver fix 2020-11-01 15:15:23 +03:00
63a27fbc5f overflow fix 2020-11-01 13:55:29 +03:00
db84afd263 Revert 2020-11-01 12:31:37 +02:00
aap
b8b3292161 Merge pull request #791 from majesticCoding/miami
CObject::Render
2020-11-01 10:40:30 +01:00
aap
9598a90627 Merge branch 'miami' of github.com:GTAmodding/re3 into miami 2020-11-01 10:29:37 +01:00
aap
7f5806b727 tiny cleanup 2020-11-01 10:29:28 +01:00
20ea2fde84 Also fix SetModelIndex in CAutomobile and CTrain ctors 2020-11-01 09:46:25 +02:00
c124e7381c CObject::Render 2020-11-01 00:25:35 -07:00
d370c2076d Fix virtual SetModelIndex call in CBoat ctor 2020-11-01 09:20:37 +02:00
aap
32c1135cd4 Merge branch 'miami' of github.com:GTAmodding/re3 into miami 2020-10-31 22:08:43 +01:00
aap
9203a33646 fix sniper/camera crosshair 2020-10-31 22:07:58 +01:00
aap
3665a82418 Merge pull request #792 from withmorten/master
fix FINAL build, add DEBUGMENU and other simple qol defines to FINAL ...
# Conflicts:
#	src/core/Frontend.cpp
2020-10-31 19:21:10 +02:00
aap
7d64698322 foobar! 2020-10-31 14:45:26 +01:00
aap
ea5b86774d couple of fixes and cleanup 2020-10-31 14:33:49 +01:00
0e1257cf17 Disable loading screen 2020-10-30 20:32:41 +02:00
b8d2c4e452 Add VB file list 2020-10-30 10:34:13 +02:00
a25005a84c Add option to enable asan
# Conflicts:
#	premake5.lua
2020-10-28 10:10:44 +02:00
86b1d9aea5 OpenAL channels now use their own sound buffers
# Conflicts:
#	src/audio/sampman_oal.cpp
2020-10-28 10:09:59 +02:00
aap
f1c935ac4c stupid bug; update librw 2020-10-27 16:20:47 +01:00
aap
a4d198005d boolean for extended pipelines
(cherry picked from commit 78ac22ee2c)
2020-10-27 15:57:26 +01:00
9a3758bfc1 Fix undefined colorId for pickups 2020-10-26 16:39:43 +02:00
c3cbf4353d Fix build and use enum in ProcessPlayerMood 2020-10-26 14:02:11 +03:00
4bcd176944 fix merge 2020-10-26 00:17:21 +03:00
44bbcbd14a merge upstream 2020-10-26 00:16:46 +03:00
96ccb1333b cleanup processVehicleOneShots, processVehicleX done 2020-10-26 00:14:59 +03:00
04b841c719 processVehicleOneShots 2020-10-26 00:11:04 +03:00
3bdc974ff5 small glass fix 2020-10-25 20:53:05 +03:00
aap
adfa2645bf Merge branch 'miami' of github.com:GTAmodding/re3 into miami 2020-10-25 16:17:43 +01:00
aap
537c0960fe clean up timebar ifdefs 2020-10-25 16:17:31 +01:00
0a36629502 Finalize frontend sounds, player setup screen 2020-10-25 18:01:09 +03:00
211ab16ddb skiding 2020-10-25 16:14:29 +03:00
5b8437172a Fix weapon icon drawing 2020-10-25 15:27:49 +03:00
62cb4da833 Upload to bintray when creating tags 2020-10-25 12:15:16 +01:00
6647dd043d Remove redundant includes 2020-10-25 13:08:28 +02:00
a520243563 cAudioManager::ProcessFrontEnd done 2020-10-25 12:00:57 +02:00
93b318cfdf DMAudio fixes 2020-10-25 09:42:24 +02:00
de09a80a35 Messages fix and update librw 2020-10-25 01:21:18 +03:00
d1394c6994 Fix WindModifiers 2020-10-24 22:28:44 +03:00
a12789c632 Merge branch 'miami' of https://github.com/GTAmodding/re3 into miamiDev 2020-10-24 22:26:56 +03:00
63c7df9f09 mark reflections done 2020-10-24 22:26:45 +03:00
c4707fe887 fix merging errors 2020-10-24 22:06:45 +03:00
04845a72bc Model indices edits 2020-10-24 21:33:15 +03:00
a9db60a1d9 jumbo 2020-10-24 20:47:03 +03:00
beae41b207 fires 2020-10-24 19:43:11 +03:00
29a2d810a7 WaterLevel (Beachtoys) 2020-10-24 19:31:18 +03:00
19ffb9c8df model heli 2020-10-24 19:24:48 +03:00
28fb26f792 Join CdStream threads to wait for them to exit 2020-10-24 18:14:41 +03:00
07d1637342 Merge pull request #779 from Sergeanur/VC/Pickups
Pickups Done
2020-10-24 17:56:21 +03:00
088065e0a8 Merge pull request #778 from majesticCoding/miami
Fluff done, FireInstantHit fix
2020-10-24 17:56:03 +03:00
0913abe616 Merge pull request #780 from Sergeanur/VC/ObjectData
ObjectData
2020-10-24 17:55:40 +03:00
3d14097bf6 Fix playback of vanilla opus 2020-10-24 16:37:39 +03:00
39b7075502 merge Upstream 2020-10-24 14:20:08 +03:00
a0efb89aa0 more ScriptSounds 2020-10-23 18:35:37 +03:00
6a89fe401a Fluff done, FireInstantHit fix 2020-10-23 07:51:24 -07:00
ca497e2cbd ScriptSounds 2020-10-23 16:56:34 +03:00
1544683bdc Missed nil 2020-10-23 13:23:42 +03:00
d237bb694b Small CPedModelInfo fixes 2020-10-23 13:11:51 +03:00
89a7007c6a ObjectData 2020-10-23 08:41:23 +03:00
281e45ce01 Timer fix 2020-10-23 08:38:36 +03:00
08d78fb6ff Timer, main 2020-10-23 04:26:52 +03:00
1587815fca satisfy mr.casepath 2020-10-23 04:25:55 +03:00
1cdc647324 Fix argument type 2020-10-22 22:05:50 +03:00
ee61f19253 Police Radio + fixes 2020-10-22 12:38:09 +03:00
86002b093f EmergencyPed, PedDebug, message fix 2020-10-21 21:27:13 +03:00
ff2665942e CTempColModels stuff 2020-10-21 21:24:18 +03:00
2709531f09 Rename CObject flag 2020-10-21 21:14:40 +03:00
e9a89236a2 Pickups Done 2020-10-21 21:00:13 +03:00
0265804003 Cross-platform fix and a little style change 2020-10-21 03:55:35 +03:00
1fef3e106c Fluff done 2020-10-20 16:03:41 -07:00
b36759b586 /c/Users/misha/Documents/GitHub/re3/src/render/Fluff.cpp /c/Users/misha/Documents/GitHub/re3/src/render/Fluff.h 2020-10-20 15:49:29 -07:00
815cc0559e Merge branch 'miami' of https://github.com/GTAmodding/re3 into miami 2020-10-20 15:40:16 -07:00
0750f04019 Messages, fix Font 2020-10-20 22:24:56 +03:00
42fbe7572e Messages, fix Font 2020-10-20 22:19:05 +03:00
0594ed5b46 peds 2020-10-18 23:03:03 +03:00
a1112183de fix 2020-10-18 22:53:25 +03:00
6173e1dd10 fix 2020-10-18 22:52:49 +03:00
e2c29a3b28 fix 2020-10-18 22:15:44 +03:00
fb80236214 fixed ped attractor crash 2020-10-18 21:17:37 +03:00
bc42b3a78e Merge remote-tracking branch 'upstream/miami' into miami 2020-10-18 20:35:19 +03:00
1858904ce0 Merge pull request #769 from Sergeanur/VC/Pickups
Partial Pickups
2020-10-18 20:01:32 +03:00
10758088ef Merge pull request #766 from Fire-Head/miami
Glass
2020-10-18 19:59:11 +03:00
4bfc75c2f9 Merge pull request #763 from theR4K/miami
SpecialFX
2020-10-18 19:57:47 +03:00
70f9832e14 Merge branch 'miami' into miami 2020-10-18 19:45:11 +03:00
497c179245 Merge pull request #772 from Nick007J/miami
Original save/load support + bugfixes
2020-10-18 19:37:49 +03:00
20ab7d1739 Merge branch 'miami' of https://github.com/GTAmodding/re3 into miami 2020-10-18 19:31:39 +03:00
937290db09 Fix attractor even more 2020-10-18 19:31:02 +03:00
d7789661cd Merge remote-tracking branch 'upstream/miami' into miami 2020-10-18 17:30:51 +03:00
8697eebbc2 Merge branch 'miami' into VC/Pickups
# Conflicts:
#	src/control/Pickups.cpp
2020-10-18 17:17:11 +03:00
0d20f1c364 Merge branch 'master' into miami
# Conflicts:
#	src/audio/AudioLogic.cpp
#	src/control/RoadBlocks.cpp
#	src/entities/Entity.h
#	src/entities/Physical.cpp
#	src/peds/Ped.cpp
#	src/render/Renderer.cpp
#	src/vehicles/Automobile.cpp
#	src/vehicles/CarGen.cpp
#	src/weapons/BulletInfo.cpp
#	src/weapons/Weapon.cpp
2020-10-18 17:15:49 +03:00
1b59b2c9bc Attractor obj. fixes 2020-10-18 16:38:36 +03:00
8d92a0681a fix in ped attractor 2020-10-18 15:39:27 +03:00
ab071163e5 Fix ped buoyancy 2020-10-18 14:34:20 +03:00
f60e3d667a Minor things 2020-10-18 13:53:17 +03:00
cafe4e38db Script.cpp missing breaks 2020-10-18 13:37:17 +03:00
c856d88691 object field renamed 2020-10-18 12:34:34 +03:00
b3385015e5 Merge remote-tracking branch 'origin/miami' into VC/Pickups 2020-10-18 04:54:01 +03:00
1e3aabf654 fix bugs 2020-10-17 21:30:48 +03:00
720abca826 finished save/load 2020-10-17 20:45:07 +03:00
3cbccd2ad3 typo fixes 2020-10-17 19:05:41 +03:00
cae3990eac Merge remote-tracking branch 'upstream/miami' into miami 2020-10-17 18:50:41 +03:00
1195f3db7b saves part 1 2020-10-17 18:50:16 +03:00
4e4e0e8e04 Merge pull request #765 from erorcun/miami
Radar, WaterCannon, win/glfw skels
2020-10-17 18:39:56 +03:00
588fb26728 Fix player model not changing in cutscenes 2020-10-17 18:26:48 +03:00
dc80884ab5 Fix management issue 2020-10-17 18:07:20 +03:00
e465cea07b Pickup arrays done 2020-10-17 18:05:23 +03:00
b98864d134 Radar, WaterCannon, win/glfw skels 2020-10-17 17:35:26 +03:00
7fc70179ed Pickup save/load 2020-10-17 17:06:38 +03:00
eeee5012b7 model cars and other audio stuff 2020-10-17 16:57:36 +03:00
7f3b51dd17 Small inner fix 2020-10-17 16:04:11 +03:00
63666391d4 More Pickup stuff 2020-10-17 15:57:12 +03:00
0cf2c8505e cranes done 2020-10-17 14:18:20 +03:00
40434eadfd small fix 2020-10-17 12:31:14 +03:00
ef47dad566 Partial Pickups 2020-10-17 08:23:01 +03:00
97fc5224e7 road noise 2020-10-17 02:22:02 +03:00
894a1ae93a siren and horn 2020-10-17 00:27:28 +03:00
000c5edc4a Merge remote-tracking branch 'upstream/miami' into miami 2020-10-15 22:52:01 +03:00
63c2b98c5e fix build 2020-10-15 16:04:03 +03:00
34b4efe242 fix bullet traces rener and some renaming 2020-10-15 15:42:10 +03:00
e4ac934dbf Miami Glass 2020-10-15 00:33:57 +03:00
7bf2373fed update librw 2020-10-14 18:04:58 +03:00
2634d3b427 Merge remote-tracking branch 'upstream/miami' into miami 2020-10-14 15:05:11 +03:00
971b7cba65 Merge pull request #761 from erorcun/SampleMan
SampleManager
2020-10-13 13:18:49 +03:00
3b40e003ab Fix typo in fire.cpp 2020-10-12 22:51:49 +02:00
6450fd2692 Fix zone saving on 64 bit 2020-10-12 22:54:46 +03:00
1e11c1eac6 Merge pull request #762 from Nick007J/miami
Control update
2020-10-12 21:52:59 +03:00
a4fd1a9f39 sirenes and more marks for audio. also fix cAudioMrg size 2020-10-12 20:55:19 +03:00
4e07297503 Update sampman_miles.cpp 2020-10-12 20:51:52 +03:00
342da2430b Merge branch 'miami' of https://github.com/GTAmodding/re3 into new 2020-10-12 20:47:34 +03:00
be6b97b5d8 Streaming and cross-platform fixes 2020-10-12 20:30:49 +03:00
d18a55f429 SampleManager 2020-10-12 20:22:39 +03:00
e34261d3ef mark some audio stuff and fix frameCounter 2020-10-12 18:09:58 +03:00
d3788a9c70 Merge remote-tracking branch 'upstream/miami' into miami 2020-10-12 13:57:25 +03:00
417646819c Merge branch 'miami' of https://github.com/GTAmodding/re3 into miami 2020-10-12 13:42:57 +03:00
56bb7d721a mark file and fix screen offset 2020-10-12 13:41:57 +03:00
e6a1ea9d4f CBrightLight::render 2020-10-12 13:28:06 +03:00
96f36d16ae Merge pull request #753 from majesticCoding/miami
CWaterCreatures
2020-10-12 12:37:47 +03:00
40020f4e1e Fix forgotten wanted/busted text 2020-10-12 12:36:15 +03:00
b1e235535c Cutscene aspect ratio fix 2020-10-12 12:16:24 +03:00
49c48f2ec2 sync with upstream 2020-10-12 12:11:53 +03:00
9e0b23f065 Merge pull request #758 from erorcun/miami
Hud, Fire, OnscreenBlaBla
2020-10-12 11:13:46 +03:00
8a622a0e72 Hud, Fire, OnscreenBlaBla 2020-10-12 06:42:54 +03:00
239e09ad07 Merge pull request #759 from Sergeanur/VC/ZoneSaveLoad
Zones saving and loading
2020-10-12 04:16:30 +03:00
ca1d899413 final step 2020-10-11 22:29:49 +03:00
7a3e1ef19a SpecialFX almost done 2020-10-11 21:40:11 +03:00
28b47b601f fix 2020-10-11 18:14:35 +03:00
91a274da2b small fix 2020-10-11 13:11:25 +03:00
68779a4dac small fix 2020-10-11 13:05:41 +03:00
49ad471b2d removed extra header 2020-10-11 12:58:23 +03:00
552f308e9e sync with upstream 2020-10-11 12:58:11 +03:00
c4d4821327 Control updates 2020-10-11 12:56:33 +03:00
a5ea709edc Merge pull request #760 from Sergeanur/VC/TextFinish
Finish Text stuff
2020-10-11 10:42:19 +03:00
b0becb5a2d UnicodeMakeUpperCase move + arg fix 2020-10-11 10:39:04 +03:00
9dba2386bb Merge branch 'master' into VC/TextFinish
# Conflicts:
#	src/text/Text.cpp
2020-10-11 10:34:47 +03:00
43af5d9c1f Merge branch 'miami' into VC/TextFinish 2020-10-11 10:33:56 +03:00
e7ef45a606 CWaterCreatures 2020-10-10 17:49:54 -07:00
f1bb09826d Merge remote-tracking branch 'origin/master' into miami
# Conflicts:
#	gamefiles/TEXT/american.gxt
#	premake5.lua
#	src/audio/MusicManager.cpp
#	src/control/Darkel.cpp
#	src/control/Script.cpp
#	src/core/FileLoader.cpp
#	src/core/Frontend.cpp
#	src/core/Game.cpp
#	src/core/Streaming.cpp
#	src/core/config.h
#	src/core/re3.cpp
#	src/extras/frontendoption.cpp
#	src/extras/frontendoption.h
#	src/render/Hud.cpp
#	src/skel/glfw/glfw.cpp
#	src/vehicles/CarGen.cpp
#	src/vehicles/Vehicle.cpp
#	src/weapons/WeaponInfo.cpp
#	utils/gxt/american.txt
2020-10-11 01:18:08 +03:00
6fe6d0cb9a Finish Text stuff 2020-10-11 00:56:16 +03:00
dd039677a0 Zones saving and loading 2020-10-10 23:50:00 +03:00
63611408b1 bug fix 2020-10-10 18:19:49 +03:00
881db86895 CSpecialFX and some other classes 2020-10-09 20:29:38 +03:00
a01b14f301 Fix sniper and water creatures bug, mark some files 2020-10-09 12:24:21 +03:00
c091a5c11a CWaterCreatures 2020-10-08 19:28:31 -07:00
ed82c55475 Fix POSIX streaming 2020-10-09 02:19:49 +03:00
570ccb7db1 Merge branch 'miami' of https://github.com/GTAmodding/re3 into new 2020-10-08 22:45:37 +03:00
b3b21e0af3 Merge pull request #756 from erorcun/miami
Fixes, some thanks to ASan
2020-10-08 22:44:32 +03:00
73a3e9d5bb Fixes, some thanks to ASan 2020-10-08 22:41:51 +03:00
b97f86deea Merge pull request #750 from erorcun/miami
Pad, BulletInfo, ProjectileInfo, fixes
2020-10-08 21:39:11 +03:00
aap
eae9e7e685 Merge pull request #755 from theR4K/miami
car wheelie fix
2020-10-08 19:50:10 +02:00
e52c5ca1bb fix for wheelie cras 2020-10-08 20:34:59 +03:00
9a10501698 Merge branch 'miami' of https://github.com/GTAmodding/re3 into miami 2020-10-08 09:31:57 -07:00
a252e3a02a update librw 2020-10-08 18:47:41 +03:00
6bae5a6031 Fix unsigned comparison in CStreaming::MakeSpaceFor(int32 size) 2020-10-08 18:45:07 +03:00
fec01aeff1 Fix some sanitizer errors, improve POSIX streamer 2020-10-08 17:58:18 +03:00
1a3e254b6c CdStreamPosix: fix type issues 2020-10-08 17:53:32 +03:00
ef9455c324 premake5: Place macosx-amd64 after arm64
Fixes xcode4 project from Premake getting the wrong target (for now).
2020-10-08 17:53:14 +03:00
2bb29a50b7 core/CdStreamPosix: switch to named semaphores to support macOS
macOS does not support unnamed semaphores. The functions return ENOSYS.
2020-10-08 17:52:12 +03:00
d590fdddf6 macOS support; thanks to @MrYadro
This should support ARM64 and x86-64.
-target flag based on information from
https://developer.apple.com/documentation/xcode/building_a_universal_macos_binary#3618377.
2020-10-08 17:51:43 +03:00
3435d6656c Merge pull request #748 from theR4K/miamiUpstream
CExplosion and some audio
2020-10-08 16:15:18 +03:00
7861992fe6 CWaterCreatures 2020-10-08 05:59:08 -07:00
f5e6a3a274 Merge branch 'miami' of https://github.com/GTAmodding/re3 into miami 2020-10-07 18:07:15 -07:00
fa373c7fdb Merge branch 'miami' into miami 2020-10-08 01:29:35 +03:00
8b7bf76260 Merge pull request #735 from theR4K/miami
car fly cheat enhancement
2020-10-08 00:59:10 +03:00
da39624f1c Pad, BulletInfo, ProjectileInfo, fixes 2020-10-08 00:26:24 +03:00
6556dc1fdf Merge branch 'miami' of https://github.com/GTAmodding/re3 into miami 2020-10-05 13:14:49 -07:00
a6a1de5006 rename var 2020-10-05 19:05:13 +03:00
e3571510ae Fix build on clang 2020-10-05 17:40:44 +02:00
4fd93fea51 fix mistakes 2020-10-05 17:24:57 +03:00
e3273d7268 CExplosion done 2020-10-05 16:14:48 +03:00
fd0602a9ac Merge branch 'miami' of https://github.com/GTAmodding/re3 into miami 2020-10-05 04:44:02 -07:00
6f3f581d8a Fix Audio 2020-10-05 13:59:40 +03:00
4867d9949d some audio and part of CExplosion 2020-10-05 03:04:35 +03:00
49ae7da5ce Fix Linux audio path 2020-10-05 01:25:56 +03:00
1b3144f978 back to the future style wheels on flying 2020-10-04 19:03:34 +03:00
063a80ecfb now BETTER_ALLCARSDODO_CHEAT tweak original cheat to be useful. 2020-10-03 02:26:49 +03:00
55d94c99b8 Merge remote-tracking branch 'upstream/miami' into miami 2020-10-03 01:52:37 +03:00
3a2be9a4ed Merge branch 'miami' of https://github.com/GTAmodding/re3 into miami 2020-10-02 13:43:29 -07:00
9d53b738cc Merge pull request #737 from theR4K/miamiDev
just ProcessActiveQueues
2020-10-02 20:11:00 +02:00
8761763d95 fixed cargen check 2020-10-02 20:43:24 +03:00
1991f9b362 revert some changes and little fix 2020-10-02 20:35:16 +03:00
72f342245d Merge pull request #731 from erorcun/miami
Population done, mouse AUX buttons, Frontend, Hud, fixes
2020-10-02 17:39:15 +03:00
6ff138ca76 fix build(bcs func CheckForAnAudioFileOnCD not used anymore) 2020-10-02 05:03:29 +03:00
064f2e66e1 letter 'c' is done 2020-10-02 04:59:06 +03:00
e5a48faf89 merged from upstream 2020-10-02 04:03:17 +03:00
63e5faef11 rewieved some audio functions 2020-10-02 03:55:26 +03:00
e54b540bd4 final processActiveQueues 2020-10-02 00:11:51 +03:00
311cffa901 second pass processActiveQueues 2020-10-01 23:48:35 +03:00
eb0e89d3ea half done processActiveQueues 2020-10-01 23:11:20 +03:00
2f9dd8bad9 Merge branch 'miami' of https://github.com/GTAmodding/re3 into miami 2020-10-01 05:02:53 -07:00
049c993ce0 fix ternary operator 2020-10-01 02:45:24 +03:00
fe46aa5cc2 better flying cars, some refractoring and fixes 2020-10-01 02:20:09 +03:00
4ec5e44b68 Mark audio code which is the same in re3 as done 2020-09-30 18:14:50 +02:00
0a58e3e430 fixed bad bug 2020-09-30 16:25:21 +03:00
4c582b19eb Merge remote-tracking branch 'upstream/miami' into miami 2020-09-30 15:19:55 +03:00
6068188453 Merge remote-tracking branch 'upstream/miami' into miami 2020-09-30 15:19:37 +03:00
db0758690e new implementation for car fly enhancment 2020-09-30 13:37:43 +03:00
d4efd003bc Merge branch 'miami' of https://github.com/GTAmodding/re3 into miami 2020-09-30 03:13:32 -07:00
f740588780 Merge branch 'miami' of https://github.com/GTAmodding/re3 into miami 2020-09-30 02:44:02 +03:00
f71953077d Population and many small classes done, mouse AUX buttons, Frontend, Hud, fixes 2020-09-30 02:41:42 +03:00
fae4c73ad3 Merge remote-tracking branch 'origin/master' into miami
# Conflicts:
#	premake5.lua
#	src/audio/AudioLogic.cpp
#	src/audio/AudioManager.h
#	src/audio/MusicManager.cpp
#	src/audio/sampman.h
#	src/audio/sampman_oal.cpp
#	src/control/CarCtrl.cpp
#	src/control/Replay.cpp
#	src/control/Script.cpp
#	src/core/Camera.cpp
#	src/core/Frontend.cpp
#	src/core/Frontend.h
#	src/core/Game.cpp
#	src/core/MenuScreens.cpp
#	src/core/config.h
#	src/core/main.cpp
#	src/core/re3.cpp
#	src/math/Matrix.cpp
#	src/math/Matrix.h
#	src/math/Vector2D.h
#	src/peds/Ped.cpp
#	src/render/Credits.cpp
#	src/render/Hud.cpp
#	src/render/Skidmarks.cpp
#	src/weapons/Weapon.cpp
2020-09-30 02:25:30 +03:00
73e4350320 Use Const instead of const (last commit) 2020-09-30 02:19:04 +03:00
6c59d97520 Fix warning ISO C++11 does not allow conversion from string literal to
'char *
2020-09-30 02:18:55 +03:00
855c6a3c05 Fix build (if -> ifdef) 2020-09-30 02:18:46 +03:00
ff2998bee3 Make frequency more consistent with vanilla 2020-09-30 02:18:38 +03:00
2129cc2906 Fix arg types 2020-09-30 02:18:11 +03:00
9cce324316 fixed cargen
# Conflicts:
#	src/vehicles/CarGen.cpp
2020-09-30 02:18:03 +03:00
f35fd97c76 Merge pull request #722 from theR4K/master
fix for frequency miscalculation
2020-09-30 02:17:14 +03:00
35656fe0e8 Add target arm64
# Conflicts:
#	premake5.lua
2020-09-30 02:16:50 +03:00
35d7591def some SilentPatch fixes
# Conflicts:
#	src/core/Camera.cpp
#	src/weapons/Weapon.cpp
2020-09-30 02:14:10 +03:00
f9dc00a458 Merge pull request #718 from Nick007J/miami
VC replays
2020-09-29 23:00:50 +03:00
1fa852f118 Merge pull request #727 from erorcun/miami
Restore All Cars are Heli cheat
2020-09-29 22:42:08 +03:00
7646ceeaaa Merge branch 'miami' of https://github.com/GTAmodding/re3 into miami 2020-09-29 02:30:48 +03:00
a0588ef8b1 Restore All Cars are Heli cheat 2020-09-29 02:29:10 +03:00
e2314c7852 Merge pull request #717 from theR4K/miami
Helicopters not ringing, and other audio stuff
2020-09-29 01:48:11 +03:00
a729f32c83 TEMPORALY remove flying cars 2020-09-29 01:39:59 +03:00
a5269b998b reverse compare 2020-09-28 21:11:24 +03:00
c317d3d9b1 tiny style fix 2020-09-28 21:09:06 +03:00
bc0bdd02f4 Merge pull request #721 from theR4K/miamiUpstream
fix for original bug in flying cars cheat
2020-09-28 20:07:14 +02:00
ca73f0344c fixed original bug, when heli go ma if cars fly cheat activated 2020-09-28 01:38:05 +03:00
b956be0f44 another clamp 2020-09-27 04:22:59 +03:00
f67275be13 correction of defects and another two audio functions 2020-09-27 03:35:15 +03:00
a5d6c952a7 Credits & fixes 2020-09-27 02:36:49 +03:00
4cfc61da14 Use enums in aVehicleSettings 2020-09-27 02:26:35 +03:00
c403df0861 processEngineDamage 2020-09-27 02:03:36 +03:00
bb2e601e13 Merge remote-tracking branch 'upstream/miami' into miami 2020-09-26 21:38:37 +03:00
c5699a9b30 now fixed properly 2020-09-26 21:35:09 +03:00
3c5624bc56 fixed tabs 2020-09-26 21:16:55 +03:00
f7d5021ac5 VC replays 2020-09-26 21:10:23 +03:00
4c220b1f95 return bridge, crane and fix structures in fluff.h 2020-09-26 21:07:51 +03:00
356c50ec1e mark completed functions in audioManager.h 2020-09-26 20:50:51 +03:00
ec8ac117ed Improve dodo cheat to allow fly on cars 2020-09-26 20:36:07 +03:00
c61160fee3 small fixes and cleanup 2020-09-26 20:24:25 +03:00
1bd497effc complete cleanup heli and flatTyre 2020-09-26 14:32:14 +03:00
4d1182bdb1 Fix coronas reflections 2020-09-26 14:24:21 +03:00
e256eaf014 cleanup carHeli 2020-09-26 05:41:10 +03:00
dd93a90ab2 Fix MASTER build with glfw 2020-09-26 05:14:24 +03:00
a75ddd0d0c processVehicleOneShots for heli, and heli blade fix 2020-09-26 04:10:00 +03:00
c3d7a73c0b Fix OpenGL Z-write
# Conflicts:
#	src/core/main.cpp
2020-09-26 00:26:43 +03:00
6e3523d594 flat tyre and minimal refractoring 2020-09-25 23:27:28 +03:00
4d1023ca30 safe before clean up 2020-09-25 04:57:11 +03:00
f097b9c972 fix deaddodo 2020-09-25 03:10:11 +03:00
4414288b86 remove anther goto 2020-09-25 02:30:51 +03:00
b3cbe3d338 removed some goto 2020-09-25 02:17:58 +03:00
1d22c78f9f processCarHeli half done 2020-09-25 01:43:19 +03:00
01845812a1 Experiment 2020-09-24 12:45:45 +03:00
dbc458a4d7 CPed and CCivilianPed funcs done 2020-09-24 01:54:37 +03:00
288f99d507 Add .gitattributes for better language stats 2020-09-23 16:09:46 +03:00
b2e3d90734 ProcessEscalators + some fixes 2020-09-22 19:32:05 +03:00
a043902d9a Merge pull request #703 from Nick007J/miami
script fixes + LCS cheat
2020-09-22 15:38:50 +03:00
a9c3fdd63f rewisited:
ProcessReverseGear
ProcessWeather
ProcessScriptObject
ProcessExtraSounds
ProcessEntity
and so, more info in my repo
2020-09-22 03:28:14 +03:00
bde17bb395 Merge pull request #706 from theR4K/miami
Miami
2020-09-21 19:55:51 +03:00
579d96534d fix enum edditing effects for oal target and small improvements 2020-09-21 03:21:17 +03:00
0f119ed371 cleanup processVehicleEngine and some fixes 2020-09-21 02:49:35 +03:00
5b9e4c4780 some style and bug fixes, updated sfx enum, and implemented processVehicleEngine 2020-09-21 01:55:22 +03:00
3bad82db3b Fix build (renamed var name in definiton file) 2020-09-19 20:45:57 +02:00
ec2f4fde93 Fixes to MusicManager 2020-09-19 16:40:30 +03:00
223cd11835 just more cleanup... 2020-09-18 20:32:25 +03:00
5f810ff21c cleanup processVehicle 2020-09-18 19:14:36 +03:00
7f77e8a441 cleanup processPlayerVehicleEngine 2020-09-18 19:11:28 +03:00
3ab01fa6a3 fix conditions for processPlayerVehicleEngine 2020-09-18 18:11:49 +03:00
c19c5ca083 Merge branch 'miami' of https://github.com/GTAmodding/re3 into miami 2020-09-15 23:24:22 +03:00
2d3d5d67ee revisit processVehicle 2020-09-15 22:06:18 +03:00
dff49e9c23 Fix RotateY 2020-09-15 00:31:32 +03:00
97550b4fd9 Merge branch 'miami' of https://github.com/GTAmodding/re3 into miami 2020-09-14 21:47:15 +03:00
16dab00bec finish work on ProcessPlayerVehicleEngine and cleanup 2020-09-14 21:47:00 +03:00
a8a28c1512 Move a bunch of math to cpp files + small fixes
# Conflicts:
#	src/control/CarCtrl.cpp
#	src/math/Matrix.h
#	src/math/Vector2D.h
#	src/math/math.cpp
#	src/render/Skidmarks.cpp
2020-09-14 21:10:23 +03:00
8f948228d5 Merge branch 'miami' of https://github.com/GTAmodding/re3 into miami 2020-09-13 21:45:53 +03:00
aa2f1b6b29 vehicle audio(first part) and temp fix for openAL 2020-09-13 21:45:42 +03:00
084efb1f14 Merge remote-tracking branch 'upstream/miami' into miami 2020-09-13 12:06:44 +03:00
25a22cc6f2 Merge pull request #702 from Sergeanur/VC/MusicManager
cMusicManager, cDMAudio, radio position save/load, a few commands imp…
2020-09-13 03:10:14 +03:00
e5faeea2e5 wall climb cheat from LCS 2020-09-11 18:46:16 +03:00
f0b15ee053 Merge remote-tracking branch 'upstream/miami' into miami 2020-09-11 16:39:35 +03:00
e9a7ab789d Merge pull request #701 from erorcun/miami
Peds objectives and wait states done, fixes
2020-09-10 03:21:23 +03:00
bc0a97af04 Add missing file 2020-09-10 01:08:44 +03:00
f6c0bcf201 Fix getter types 2020-09-10 00:57:14 +03:00
7aca08a954 player mood enum 2020-09-10 00:32:51 +03:00
c5b411c1ed Fix crash on assert 2020-09-09 22:36:53 +03:00
f0ccbcb281 CStats::PopulateFavoriteRadioStationList 2020-09-09 20:37:36 +03:00
4f4b1f9145 cMusicManager, cDMAudio, radio position save/load, a few commands implemented 2020-09-09 19:37:44 +03:00
350b1ec67e Merge pull request #698 from majesticCoding/miami
cheats, fixes, cosmetic changes
2020-09-06 10:14:55 +03:00
3f402d23ff Peds objectives and wait states done, fixes 2020-09-05 20:28:50 +03:00
9b47625115 More stinger fix 2020-09-02 21:03:02 +03:00
fa7334c74f Stinger fixes 2020-09-02 20:55:28 +03:00
3e4f7b7bdf fixes 2020-09-02 14:13:52 +03:00
16e10d788a Enable Stinger 2020-09-01 21:10:35 +03:00
9f43b1988b cheats, fixes, cosmetic changes 2020-09-01 09:42:17 -07:00
aap
0640ec7f5a Merge pull request #700 from Sergeanur/VC/Stinger
Stinger done
2020-09-01 17:31:35 +02:00
aap
e3f607dba0 Merge pull request #699 from Nick007J/miami
small script fix
2020-09-01 17:30:59 +02:00
aap
6fc6ed8635 Merge pull request #696 from Fire-Head/miami
Miami Weapon, WeaponEffects done
2020-09-01 17:30:49 +02:00
3bb0e78e1c Rename vars 2020-09-01 12:35:59 +03:00
6778640b52 Rename states 2020-08-31 21:35:26 +03:00
df67c73d81 vars rename 2020-08-31 21:21:50 +03:00
024f0a5027 use SetOrientation 2020-08-31 21:15:04 +03:00
8a0a29c64e Stinger done 2020-08-31 21:09:48 +03:00
647ddfa05e more fix 2020-08-31 17:18:37 +03:00
4ffca8954f Merge remote-tracking branch 'upstream/miami' into miami 2020-08-31 00:07:38 +03:00
ed799fb555 script inaccuracy 2020-08-31 00:07:29 +03:00
b7456c604d Merge pull request #697 from erorcun/miami
CGame done, Peds, fixes
2020-08-30 23:24:39 +03:00
c22d252246 fix melee car damage 2020-08-30 17:50:03 +03:00
3e549a7d44 CGame done, Peds, fixes 2020-08-30 12:40:30 +03:00
aap
e0f6459674 stupid zone load fix 2020-08-30 00:57:00 +02:00
a8999bbf38 Merge pull request #1 from GTAmodding/miami
Miami
2020-08-27 20:35:14 +03:00
210c7b8785 bike shooting fix + trace temp fix 2020-08-27 20:27:28 +03:00
a38702a7d2 weapons 2020-08-27 19:52:43 +03:00
1fff83eeee update lib 2020-08-25 02:08:09 +03:00
aap
24e74f785e update librw 2020-08-25 00:04:16 +02:00
aap
8e7989087d Merge pull request #694 from Sergeanur/miami_CutsceneMgr
CutsceneMgr done
2020-08-24 22:46:17 +02:00
963e85f047 Fix 2020-08-24 23:01:51 +03:00
14ed50a559 Remote done 2020-08-24 22:52:07 +03:00
041d342faf PlayerSkin done 2020-08-24 22:37:38 +03:00
85cf043e4a Compilation fix 2020-08-24 22:14:05 +03:00
a3322f17d5 Merge branch 'master' into miami
# Conflicts:
#	src/animation/CutsceneMgr.cpp
#	src/audio/AudioLogic.cpp
#	src/audio/soundlist.h
#	src/core/ControllerConfig.cpp
#	src/core/ControllerConfig.h
#	src/core/Streaming.cpp
#	src/peds/PedChat.cpp
#	src/render/Weather.cpp
#	src/rw/TexRead.cpp
#	src/vehicles/Automobile.cpp
#	src/vehicles/Boat.cpp
2020-08-24 21:59:32 +03:00
bbcf3fd7d2 CutsceneMgr done 2020-08-24 21:52:16 +03:00
aap
56b80cb0ab fixes to zones and vehicle comp rules 2020-08-24 17:21:45 +02:00
aap
0a19925e99 finished sprites 2020-08-24 14:26:17 +02:00
aap
38a01a59fa CWeather done 2020-08-23 13:27:56 +02:00
0fd6fb1ff4 fixed a few embarassing mistakes 2020-08-23 12:27:24 +03:00
aap
4545ddee6d ... 2020-08-21 23:35:47 +02:00
aap
13c34b0863 finished cullzones 2020-08-21 13:28:33 +02:00
aap
cc2f13710d fix streaming bug 2020-08-21 12:09:45 +02:00
aap
23c52c1c86 fixed CRenderer::ScanSectorPoly again 2020-08-21 09:40:31 +02:00
aap
537b63acb5 call streaming funcs 2020-08-21 00:05:05 +02:00
aap
a6fe606ce6 CStreaming done, hopefully 2020-08-20 23:44:40 +02:00
aap
857cef776d Merge pull request #693 from majesticCoding/miami
stable CScriptPaths
2020-08-20 23:01:21 +02:00
03c90b7c40 stable CScriptPaths 2020-08-20 09:44:26 -07:00
aap
7da4f7fc35 fixed sound enum 2020-08-20 13:20:48 +02:00
aap
764af8735c rw stuff done & other small things 2020-08-20 12:53:17 +02:00
aap
30dadcfb22 transmission done 2020-08-20 10:24:12 +02:00
9fd91e6250 Merge remote-tracking branch 'origin/master' into miami
# Conflicts:
#	src/core/Collision.cpp
#	src/core/Streaming.cpp
#	src/core/config.h
#	src/core/main.cpp
#	src/core/re3.cpp
#	src/extras/custompipes.cpp
#	src/extras/custompipes_d3d9.cpp
#	src/extras/custompipes_gl.cpp
#	src/extras/shaders/Makefile
#	src/extras/shaders/colourfilterVC.frag
#	src/extras/shaders/colourfilterVC_fs_gl3.inc
#	src/modelinfo/ModelInfo.cpp
#	src/modelinfo/PedModelInfo.cpp
#	src/modelinfo/SimpleModelInfo.cpp
#	src/modelinfo/VehicleModelInfo.cpp
#	src/render/Renderer.cpp
#	src/rw/VisibilityPlugins.cpp
#	src/save/GenericGameStorage.cpp
2020-08-19 23:44:08 +03:00
dab6d6dd6d Merge remote-tracking branch 'origin/miami' into miami
# Conflicts:
#	src/core/config.h
2020-08-19 23:35:10 +03:00
827b240078 Merge branch 'master' into miami
# Conflicts:
#	gamefiles/TEXT/american.gxt
#	src/control/Garages.cpp
#	src/control/Record.cpp
#	src/control/Script.cpp
#	src/core/Collision.cpp
#	src/core/Frontend.cpp
#	src/core/Frontend.h
#	src/core/Game.cpp
#	src/core/MenuScreens.cpp
#	src/core/Streaming.cpp
#	src/core/config.h
#	src/core/re3.cpp
#	src/modelinfo/ModelInfo.cpp
#	src/render/Renderer.cpp
#	src/save/GenericGameStorage.cpp
#	utils/gxt/american.txt
2020-08-19 23:34:33 +03:00
aap
bb948904b6 small stuff 2020-08-19 21:58:00 +02:00
aap
c1367ebdca update librw 2020-08-19 20:50:26 +02:00
aap
895055a3d1 update librw; fix txd.img bug 2020-08-19 16:53:11 +02:00
aap
827ba62671 neo pipelines; postfx fix 2020-08-19 16:10:22 +02:00
aap
5ac83e4b4c changing silly streaming memory limit 2020-08-19 14:58:43 +02:00
aap
dba992f388 Merge pull request #687 from Nick007J/miami
CarCtrl done, Script update
2020-08-19 10:08:10 +02:00
1c275695c4 fix submodules 2020-08-16 18:49:27 +03:00
cc66df18ac Merge remote-tracking branch 'upstream/miami' into miami 2020-08-16 18:41:17 +03:00
d303c33c2e CarCtrl finished, minor Script things 2020-08-16 18:39:11 +03:00
980dd1b5a1 2 new opcodes 2020-08-16 17:10:59 +03:00
7669b97ac6 sync with upstream 2020-08-16 14:46:20 +03:00
b612e84be8 submodule 2020-08-15 18:58:33 +03:00
9956b27767 Merge branch 'master' into miami
# Conflicts:
#	src/control/Darkel.cpp
#	src/core/main.cpp
2020-08-15 15:13:46 +03:00
07038ce88e Merge pull request #686 from erorcun/miami
Stats(except displaying) and PlayerInfo done, Frontend, marker fix
2020-08-15 02:28:17 +03:00
8b3ca9564b Continue to Frontend, fix savegame list bug 2020-08-14 22:44:12 +03:00
f403a63a5c Wheelie opcode 2020-08-14 18:54:01 +03:00
56388472cb Remove III files 2020-08-14 15:25:02 +03:00
0ae41be16b Merge remote-tracking branch 'origin/master' into miami
# Conflicts:
#	librw
2020-08-14 14:35:54 +03:00
28dc67dc86 Merge branch 'master' into miami
# Conflicts:
#	src/core/Game.cpp
#	src/core/re3.cpp
#	src/extras/postfx.cpp
#	src/extras/postfx.h
#	src/extras/shaders/Makefile
#	src/render/Clouds.cpp
#	src/render/Hud.cpp
#	src/render/MBlur.cpp
#	src/render/Sprite2d.cpp
2020-08-14 13:52:10 +03:00
aap
85d76dc171 fixed clouds render 2020-08-14 09:28:17 +02:00
80a83d48f3 Guardian Angels fix 2020-08-14 02:41:18 +03:00
b54bb62c94 Stats(except displaying), PlayerInfo, marker fix 2020-08-14 01:14:04 +03:00
aap
cdebea71f3 fixes to HUD and sprite2d 2020-08-13 18:47:39 +02:00
aap
0d8fcb41ee fix render poly bug 2020-08-13 16:30:23 +02:00
aap
18647717df Merge pull request #684 from aap/miami
extended colourfilter
2020-08-13 16:29:07 +02:00
aap
878ffa8998 sun reflection fix 2020-08-12 10:48:00 +02:00
aap
a9935dcd45 tiny postfx cleanup 2020-08-11 19:42:08 +02:00
aap
4635daf6b3 update librw 2020-08-11 18:42:21 +02:00
aap
b468d010a8 implemented extended postfx 2020-08-11 18:40:04 +02:00
aap
c3443bff99 Merge pull request #683 from majesticCoding/miami
improved mission switcher
2020-08-10 23:26:22 +02:00
2d1b48267d improved mission switcher 2020-08-10 14:04:33 -07:00
1c1fa25e6c Merge remote-tracking branch 'origin/master' into miami
# Conflicts:
#	premake5.lua
#	src/render/Coronas.cpp
#	src/render/Timecycle.cpp
#	src/render/Timecycle.h
2020-08-10 19:15:51 +03:00
aap
c2c65207a3 Merge pull request #677 from majesticCoding/miami
CWindModifiers
2020-08-10 17:12:32 +02:00
aap
2f987e315e update librw (shadows are working now) 2020-08-10 17:04:57 +02:00
70029752f5 CWindModifiers 2020-08-09 21:42:12 -07:00
b73b6b8e13 CWindModifiers 2020-08-09 12:32:30 -07:00
aap
e57d450809 drunk blur done 2020-08-09 19:51:16 +02:00
aap
43bf854374 timecycle done 2020-08-09 19:11:44 +02:00
aap
4118d2aa55 finished skidmarks 2020-08-09 17:14:24 +02:00
aap
0bb46f3f8c rubbish done 2020-08-09 16:49:15 +02:00
aap
6514bc6b39 pointlights done 2020-08-09 15:45:38 +02:00
aap
951439486f Merge branch 'miami' of github.com:GTAmodding/re3 into miami 2020-08-09 13:18:01 +02:00
aap
b02c7cdc44 coronas done 2020-08-09 13:17:48 +02:00
d2d8bea51e rem pobj assert 2020-08-09 01:30:57 +03:00
dbaeaa45cf Merge pull request #682 from Fire-Head/miami
static shadows fix, cutscene shadows switches
2020-08-08 18:15:51 +03:00
1a72701903 Revert "little emergecy fix for shadows with librw"
This reverts commit 658f94f155.
2020-08-08 18:14:01 +03:00
265b07a8d9 Update Ped.cpp 2020-08-08 18:04:46 +03:00
d2e090317f static shadows fix, cutscene shadows switches 2020-08-08 15:06:45 +03:00
db406e3c82 submodules 2020-08-08 13:07:55 +03:00
0328cb04d7 build fix 2020-08-07 20:07:57 +03:00
2d9b898271 more rename for reVC 2020-08-07 19:59:32 +03:00
b5cd52b9b3 rename for reVC 2020-08-07 19:58:21 +03:00
f3d8f44c4e Merge remote-tracking branch 'origin/master' into miami 2020-08-07 19:57:42 +03:00
aap
658f94f155 little emergecy fix for shadows with librw 2020-08-07 13:13:04 +02:00
7d8ffa9ebd Merge remote-tracking branch 'origin/master' into miami
# Conflicts:
#	src/control/RoadBlocks.cpp
#	src/core/Collision.h
#	src/core/Pad.cpp
#	src/core/SurfaceTable.h
#	src/core/main.cpp
#	src/core/re3.cpp
#	src/peds/Population.cpp
#	src/render/Fluff.cpp
#	src/render/Shadows.cpp
#	src/render/Shadows.h
#	src/render/Sprite2d.cpp
#	src/weapons/BulletInfo.cpp
2020-08-07 12:34:41 +03:00
aap
40185161b8 Merge pull request #670 from Fire-Head/miami
Miami Shadows
2020-08-07 10:18:35 +02:00
6fcc75032e Update CutsceneShadow.h 2020-08-05 17:13:21 +03:00
89fd7759a3 fixes 2020-08-04 16:24:59 +03:00
aap
d801167637 Merge pull request #668 from majesticCoding/miami
CEscalators done
2020-08-04 12:27:09 +02:00
394134f774 CEscalators done 2020-08-03 15:31:42 -07:00
3e24ae8812 Merge branch 'master' into miami
# Conflicts:
#	premake5.lua
#	sdk/rwsdk/include/d3d8/baaplylt.c
#	sdk/rwsdk/include/d3d8/rpstereo.h
#	sdk/rwsdk/include/d3d8/rpstereo.rpe
#	sdk/rwsdk/include/d3d8/rtintel.h
#	sdk/rwsdk/include/d3d8/rtintel.rpe
#	src/audio/oal/stream.cpp
2020-08-02 19:49:12 +03:00
bda383c9cd Merge pull request #669 from erorcun/miami
new opcodes, buyable properties, minor fixes
2020-08-01 17:58:54 +03:00
f6663b01bc Update CutsceneShadow.h 2020-07-31 21:34:52 +03:00
224fd77641 NULL -> nil 2020-07-31 21:21:58 +03:00
eafa9cc107 new opcodes, buyable properties, minor fixes 2020-07-30 15:32:34 +03:00
e2ded2d6ce cutsceneshadow fixes 2020-07-30 01:32:21 +03:00
4a55f19761 Fix Win32 OAL build 2020-07-29 19:24:17 +03:00
9df1d08348 Fixes after merge 2020-07-29 15:41:00 +03:00
86cc86ac12 Merge remote-tracking branch 'origin/master' into miami 2020-07-29 15:35:25 +03:00
acdc52116e Merge branch 'master' into miami
# Conflicts:
#	src/animation/RpAnimBlend.cpp
#	src/audio/oal/stream.cpp
#	src/audio/sampman.h
#	src/control/Pickups.cpp
#	src/core/Collision.cpp
#	src/core/Collision.h
#	src/core/FileLoader.cpp
#	src/core/FileMgr.cpp
#	src/core/FileMgr.h
#	src/core/Streaming.cpp
#	src/core/Streaming.h
#	src/core/SurfaceTable.h
#	src/modelinfo/VehicleModelInfo.h
#	src/peds/Ped.cpp
#	src/rw/RwHelper.cpp
#	src/rw/RwHelper.h
#	src/skel/glfw/glfw.cpp
#	src/skel/platform.h
#	src/text/Text.cpp
#	src/text/Text.h
#	src/vehicles/CarGen.cpp
#	src/vehicles/Heli.cpp
2020-07-29 15:34:57 +03:00
f2f19ccea3 Update RwHelper.cpp 2020-07-29 12:41:53 +03:00
52e77c6634 Merge pull request #1 from GTAmodding/miami
Miami
2020-07-29 12:20:02 +03:00
1803dcc873 miami shadows 2020-07-29 12:17:53 +03:00
aap
c649028b01 some fakerw additions for shadows; update librw 2020-07-29 09:49:41 +02:00
aap
fb4de46626 Merge branch 'miami' of github.com:GTAmodding/re3 into miami 2020-07-29 09:34:28 +02:00
3d91d4fc6a Merge pull request #667 from erorcun/miami
Fix casepath chaos
2020-07-28 18:33:27 +03:00
c87b639a84 Fix casepath chaos 2020-07-28 17:56:47 +03:00
ef7afe5f2f Merge pull request #665 from erorcun/miami
CCopPed, except spike traps
2020-07-28 17:05:20 +03:00
429f6b03c4 CCopPed, except spike traps 2020-07-28 17:04:34 +03:00
aap
c0eb3d10e2 CCollision done and fixes 2020-07-27 15:43:03 +02:00
aap
6b7a8f96a6 CCollision done and fixes 2020-07-27 15:38:46 +02:00
5d266ace64 Merge pull request #664 from aap/miami
CHeli and CRopes done
2020-07-27 15:49:26 +03:00
aap
90fdc4328b CHeli and CRopes done 2020-07-27 14:06:23 +02:00
7fea567eb2 Fix/change some Windows define 2020-07-25 15:24:24 +03:00
aap
1c44368f0a fixed hanim for 64 bit 2020-07-24 23:29:33 +02:00
b05cb3f1a3 Merge pull request #662 from erorcun/miami
90% fixes, 10% skel refactoring
2020-07-24 21:07:23 +03:00
ad6094ca1d 90% fixes, 10% skel refactoring 2020-07-24 21:02:55 +03:00
53e7cbbd5a Merge pull request #661 from erorcun/miami
64-bit on Windows
2020-07-24 20:36:26 +03:00
732b760829 64-bit on Windows 2020-07-24 20:26:33 +03:00
aap
8117bcb56f update librw 2020-07-23 15:14:38 +02:00
f882586eb8 Merge remote-tracking branch 'origin/master' into miami
# Conflicts:
#	README.md
#	src/core/Frontend.cpp
#	src/core/Frontend.h
#	src/peds/Ped.cpp
#	src/peds/Ped.h
#	src/render/Renderer.cpp
#	src/vehicles/Plane.cpp
2020-07-22 18:29:17 +03:00
b182fa4bb8 Merge pull request #656 from erorcun/miami
Peds, Hud, CFO 1/2, fixes - including zone names
2020-07-22 18:21:39 +03:00
7e54a226e2 README 64-bit preparation 2020-07-22 15:21:51 +03:00
f40f44b14e Peds, Hud, CFO 1/2, fixes - including zone names 2020-07-22 15:19:22 +03:00
aap
c813630aad update librw 2020-07-22 14:02:14 +02:00
aap
bde159291c update librw 2020-07-21 13:07:21 +02:00
aap
34b162d2c9 fixed to renderer 2020-07-21 11:12:15 +02:00
aap
0fba76a565 made NPC heli rotors rotate 2020-07-21 09:58:53 +02:00
aap
5bedca7692 fixed COcclusion 2020-07-20 23:25:04 +02:00
aap
ee2d0ffc14 Merge pull request #650 from majesticCoding/miami
COcclusion done, I hope
2020-07-20 19:56:18 +02:00
aap
f0f3ce018d Merge pull request #655 from aap/miami
CPlane done
2020-07-20 19:56:03 +02:00
aap
2612c9f12c CPlaneTrails and CPlaneBanners done 2020-07-20 19:50:20 +02:00
1ff27e3363 cosmetic fixes 2020-07-20 09:49:39 -07:00
aap
e74b569115 CPlane done 2020-07-19 00:56:30 +02:00
a1412d1cdb Fix OneShotPriority overflow 2020-07-18 14:15:06 +03:00
eaf569eb6d Merge remote-tracking branch 'origin/master' into miami 2020-07-18 13:31:32 +03:00
87eb96453a Add compatibility with RW 3.4 2020-07-18 13:30:51 +03:00
dd717b2d93 Actual fix now xD 2020-07-18 13:27:31 +03:00
cf5dd6289e Fix TempVertexBuffer overflow 2020-07-18 13:09:21 +03:00
30384bb4ef Merge branch 'master' into miami
# Conflicts:
#	src/render/Credits.cpp
2020-07-17 21:15:47 +03:00
de8759eabd Merge branch 'master' into miami
# Conflicts:
#	src/control/Record.cpp
#	src/vehicles/Automobile.cpp
2020-07-17 13:53:11 +03:00
ebdc5cca7f Merge branch 'master' into miami 2020-07-16 23:03:31 +03:00
aap
4e3e1d0b87 make game load all platform dffs 2020-07-16 13:36:25 +02:00
d0f5464200 Merge branch 'master' into miami
# Conflicts:
#	src/control/CarAI.cpp
#	src/control/Phones.cpp
#	src/control/Phones.h
#	src/control/Record.cpp
#	src/control/Restart.cpp
#	src/control/Script.cpp
#	src/core/Collision.cpp
#	src/core/Frontend.cpp
#	src/core/Frontend.h
#	src/core/Game.h
#	src/core/Streaming.cpp
#	src/core/TempColModels.cpp
#	src/core/Wanted.cpp
#	src/core/Zones.cpp
#	src/core/config.h
#	src/core/main.cpp
#	src/core/re3.cpp
#	src/entities/Entity.cpp
#	src/entities/Physical.cpp
#	src/extras/frontendoption.cpp
#	src/modelinfo/ModelInfo.cpp
#	src/modelinfo/PedModelInfo.cpp
#	src/peds/CivilianPed.cpp
#	src/peds/CopPed.cpp
#	src/peds/EmergencyPed.cpp
#	src/peds/Ped.cpp
#	src/peds/Ped.h
#	src/peds/Population.cpp
#	src/render/Renderer.cpp
#	src/save/GenericGameStorage.cpp
#	src/skel/win/win.cpp
#	src/vehicles/Automobile.cpp
#	src/vehicles/Boat.cpp
#	src/vehicles/Boat.h
#	src/vehicles/Vehicle.cpp
2020-07-13 18:10:17 +03:00
30723cf723 Merge pull request #654 from erorcun/miami
VC fighting, Peds, many fixes including ghost bikes
2020-07-10 00:06:16 +03:00
67a3c7d2ee VC fighting, Peds, many fixes including ghost bikes 2020-07-09 17:01:07 +03:00
592a6cc792 Merge pull request #653 from Domiiniik/miami
CDarkel miami hud colors.
2020-07-08 18:32:11 +03:00
fa1263b6a4 CDarkel miami hud colors. 2020-07-07 01:02:39 +02:00
aap
515559d00c Merge pull request #652 from Domiiniik/miami
Miami Colors.
2020-07-07 00:33:27 +02:00
478d4246c4 Miami Colors.
Miami colors for MissionPassed/Failed, oddjob text 1 and 2 + fixed wrong busted/wasted color (it was pink and in the original its actually green)
2020-07-07 00:32:13 +02:00
c483a044b5 Noskillx's PR + fix .set loading 2020-07-06 19:26:41 +03:00
70fa4ab79c Frontend: Stats, Briefs, gta_vc.set, slider ranges, fixes 2020-07-06 16:38:00 +03:00
ceb1defc4e fixes from master, menu helper text 2020-07-04 23:50:43 +03:00
aap
2c50cf8ac6 Merge pull request #648 from Nick007J/miami
ice cream attractor + bike respray
2020-07-04 21:24:23 +02:00
aap
0acade08ca Merge pull request #647 from Fire-Head/miami
miami CParticleObject
2020-07-04 21:24:17 +02:00
aap
1e679dcb8d Merge pull request #641 from aap/miami
CBoat and friends
2020-07-04 21:24:11 +02:00
716740f918 Peds & fixes 2020-07-04 15:31:28 +03:00
4c65ec28d6 NULL->nil 2020-07-03 20:26:35 +03:00
49a8dd7459 fixed typo 2020-07-03 15:21:11 +03:00
9bb8b39956 fixed typo 2020-07-03 15:17:02 +03:00
48ebbb7292 ice cream attractor + bike respray 2020-07-03 11:08:19 +03:00
d4004805f5 miami pobj 2020-07-03 02:18:06 +03:00
aap
2141247e08 CBoat and friends 2020-07-01 18:04:02 +02:00
389123cff3 fix 2020-07-01 16:06:16 +03:00
ade5dff217 script logging for miami 2020-07-01 15:43:19 +03:00
8045bec6a5 Merge branch 'master' into miami
# Conflicts:
#	src/audio/AudioLogic.cpp
#	src/audio/AudioManager.h
2020-06-30 19:12:06 +03:00
cbed027c0e Merge branch 'master' into miami 2020-06-30 08:24:05 +03:00
87fa69385c remove TheText.Load() from CGame::Initialise 2020-06-30 07:48:09 +03:00
1d2d5fe6ae Merge branch 'master' into miami
# Conflicts:
#	src/render/MBlur.cpp
#	src/render/MBlur.h
2020-06-30 07:45:54 +03:00
6f81e84bd4 Restore original code of CControllerState::CheckForInput 2020-06-30 07:44:51 +03:00
6cf698badd Fix glfw.cpp 2020-06-29 16:24:40 +02:00
aap
94ce376a76 cleanup 2020-06-29 12:12:43 +02:00
b26eec5daf Merge remote-tracking branch 'origin/master' into miami
# Conflicts:
#	src/audio/AudioLogic.cpp
#	src/audio/soundlist.h
#	src/control/Script.cpp
#	src/control/ScriptCommands.h
#	src/core/Cam.cpp
#	src/core/Camera.cpp
#	src/core/Camera.h
#	src/core/Frontend.cpp
#	src/core/Frontend.h
#	src/core/Game.cpp
#	src/core/MenuScreens.cpp
#	src/core/Pad.cpp
#	src/core/Pad.h
#	src/core/config.h
#	src/entities/Entity.cpp
#	src/render/Credits.cpp
#	src/render/Fluff.cpp
#	src/render/Hud.cpp
#	src/render/MBlur.cpp
#	src/render/Timecycle.cpp
#	src/skel/glfw/glfw.cpp
#	src/skel/win/win.cpp
#	src/text/Text.cpp
2020-06-29 12:56:50 +03:00
aap
3370ae04cb renamed 2dfx shadowRange to Size 2020-06-28 12:08:46 +02:00
c72fab15b4 fix anims again 2020-06-25 16:20:20 +03:00
aap
592a6aef0b Merge pull request #638 from erorcun/miami
CWanted, anim fix, ped objs renaming, remove III beta features
2020-06-25 15:15:01 +02:00
aap
2b21f92347 rename attractor flag to type 2020-06-25 15:13:33 +02:00
aap
077bcf1c82 CPad fix 2020-06-24 19:11:33 +02:00
aap
3989e3df18 anim fix 2020-06-22 08:58:49 +02:00
f3ed6659c3 CWanted, anim fix, ped objs renaming, remove III beta features 2020-06-22 04:20:56 +03:00
aap
60f736f20f FOV fix 2020-06-21 14:52:44 +02:00
aap
b81bf1e138 Merge branch 'miami' of github.com:GTAmodding/re3 into miami 2020-06-21 14:52:19 +02:00
aap
e563450cb6 synch with re3 2020-06-21 14:52:03 +02:00
d6a853bd60 killing peds increase chaos level 2020-06-20 22:44:31 +03:00
cc60ad1946 ducking & anim fix 2020-06-20 20:26:27 +03:00
2d2833f2e4 more weapon fixes 2020-06-20 17:30:28 +03:00
fd3cd2c26a Merge branch 'miami' of https://github.com/GTAmodding/re3 into miami 2020-06-20 16:23:42 +03:00
0625954bb7 Ducking, shooting vehicle occupants and weapon fixes 2020-06-20 16:23:32 +03:00
aap
7700970c93 Merge pull request #636 from aap/miami
CCamera done
2020-06-20 15:03:00 +02:00
aap
c5205a89ee CCamera done 2020-06-20 14:54:11 +02:00
144f12525e fix 2020-06-20 13:51:39 +03:00
eab6741afe fix 2020-06-20 13:26:27 +03:00
e9e533b0cb bikes in garages + bugfix 2020-06-18 00:03:43 +03:00
e44704dc82 Ped, Weapon and fixes 2020-06-17 21:24:59 +03:00
e9d5d42ea9 fix clipped subtitles 2020-06-17 11:11:44 +03:00
f54af8b973 fixed bar brawl 2020-06-17 02:33:03 +03:00
ee456481cb Merge pull request #632 from majesticCoding/miami
expanded modelIndices, more original cheats, slightly edited CStreami…
2020-06-16 23:08:16 +03:00
d322a8033e Merge branch 'miami' into miami 2020-06-16 23:02:21 +03:00
812b26b668 Update ModelIndices.h 2020-06-16 22:58:42 +03:00
a822692c26 fix crash-VC pickup scaling 2020-06-16 22:55:28 +03:00
7ae0b8ef06 Merge pull request #633 from aap/miami
CCam done
2020-06-16 20:48:46 +03:00
6f0304f90e Merge pull request #634 from erorcun/miami
some cutscene opcodes and heli guns
2020-06-16 20:46:44 +03:00
c6bb1f5d0d some cutscene opcodes and heli guns 2020-06-16 20:35:09 +03:00
aap
7ceedc1d47 CCam done 2020-06-16 13:54:18 +02:00
3a600b4684 Bike anim. fix 2020-06-16 00:20:08 +03:00
aap
dc7d4e1134 Merge branch 'miami' of github.com:GTAmodding/re3 into miami 2020-06-15 22:51:47 +02:00
595576b151 Merge branch 'miami' of https://github.com/GTAmodding/re3 into miami 2020-06-15 23:49:59 +03:00
c4e129509b Peds & fixes continues 2020-06-15 23:43:20 +03:00
aap
62024217b7 more CCam 2020-06-15 20:50:01 +02:00
655eaa36ce Merge remote-tracking branch 'origin/master' into miami
# Conflicts:
#	src/control/Script.cpp
#	src/core/Cam.cpp
#	src/core/Camera.cpp
#	src/core/Camera.h
#	src/render/Fluff.cpp
#	src/render/Hud.cpp
2020-06-15 17:44:47 +03:00
686d6e9834 Fix vehicle cam. zoom values 2020-06-15 16:17:22 +03:00
ef4c8f53c5 Merge branch 'miami' of https://github.com/GTAmodding/re3 into miami 2020-06-15 00:26:27 +03:00
2d976827dd much better mission switcher 2020-06-15 00:26:19 +03:00
aap
0741fd5b1d some more camera stuff 2020-06-14 23:15:56 +02:00
f64d3ad7de Merge pull request #631 from erorcun/miami
Peds, mission switcher & fixes
2020-06-14 22:59:02 +03:00
db6110e996 Peds, mission switcher & fixes 2020-06-14 22:57:26 +03:00
015921522d fixed condition in CBoat::ProcessControl and changed enum 2020-06-14 07:53:45 -07:00
aap
75fcedb030 Merge pull request #625 from aap/miami
some camera code
2020-06-14 09:36:58 +02:00
aap
c7a32bb83d some camera code 2020-06-14 09:36:30 +02:00
f78f707935 script fix 2020-06-13 02:02:59 +03:00
3900366a6b debug fix 2020-06-12 22:39:33 +03:00
17dd26e1ca heli AI fix 2020-06-12 22:38:37 +03:00
aap
9ab3683148 Merge pull request #626 from majesticCoding/miami
more original cheats
2020-06-11 10:50:18 +02:00
2cc8ecbb90 removed extern from RwImVertexIndex SmokeTrailIndices and additional rotational variables for minigun 2020-06-11 01:36:45 -07:00
94e3c30054 original multiplying rotational cords for minigun 2020-06-11 00:59:23 -07:00
669db1a293 minigun rotation fix 2020-06-10 23:26:51 -07:00
cf8fcada6e m_density renamed to m_opacity 2020-06-10 14:01:37 -07:00
287987b8fe SmokeTrail(s) moved to Fluff, variables' names fixed, floats rounded 2020-06-10 13:47:48 -07:00
a99da7b94e more original cheats
- CSmokeTrails and CSmokeTrail classes added in new files
- more cheats added
2020-06-10 13:19:05 -07:00
aap
b07b1f0b51 Merge pull request #624 from erorcun/miami
Peds, bike center of mass and reversing fixes
2020-06-09 15:43:25 +02:00
dba2b052a6 Peds, bike center of mass and reversing fixes 2020-06-09 01:29:55 +03:00
0321f3b55f Merge branch 'master' into miami
# Conflicts:
#	src/audio/audio_enums.h
#	src/core/AnimViewer.cpp
2020-06-08 18:03:00 +03:00
85d845c5ce Merge pull request #623 from Sergeanur/VC/MissionAudio
Mission audio
2020-06-08 17:32:57 +03:00
95e9fe7693 fixes 2020-06-08 16:22:49 +03:00
8cd87236c9 miamification of some audio structs 2020-06-08 14:29:55 +03:00
aap
f8b4c0ee1d bla 2020-06-08 13:23:08 +02:00
aap
d5515c9d0e cleaned up and updated animviewer; fixed animation bug 2020-06-08 13:01:23 +02:00
65032389a4 Merge branch 'miami' into VC/MissionAudio
# Conflicts:
#	src/audio/AudioLogic.cpp
#	src/audio/AudioManager.h
#	src/audio/DMAudio.cpp
#	src/audio/DMAudio.h
#	src/audio/MusicManager.cpp
2020-06-08 10:38:09 +03:00
5942f1a8f9 Merge branch 'master' into miami
# Conflicts:
#	src/control/CarCtrl.cpp
#	src/control/Script.cpp
#	src/render/Font.cpp
2020-06-08 10:36:37 +03:00
36a6d124aa Mission audio slots 2020-06-08 10:34:31 +03:00
0afb1d9e24 Scale font shadow 2020-06-08 10:30:09 +03:00
2de3c6d67b some fixes to heli AI (not all yet) 2020-06-08 02:34:53 +03:00
b498ad800c Merge remote-tracking branch 'upstream/miami' into miami 2020-06-08 02:04:58 +03:00
d48749f797 fixed attached ped 2020-06-08 02:04:37 +03:00
94e9101ce0 more fixes 2020-06-08 01:51:11 +03:00
16a5c2f676 fixes 2020-06-08 01:21:49 +03:00
5ec46bcdfb Merge remote-tracking branch 'upstream/miami' into miami 2020-06-08 01:01:39 +03:00
a77b181e32 CarCtrl fixes 2020-06-08 00:59:43 +03:00
5a09eeea27 more accurate code 2020-06-08 00:53:25 +03:00
e07b6fdce7 Message box, letterbox and ped attaching 2020-06-07 21:44:54 +03:00
23f20ceaf8 fix 2020-06-07 19:35:05 +03:00
27eaa10873 Merge remote-tracking branch 'upstream/miami' into miami 2020-06-07 19:32:51 +03:00
2f9becbac6 fix 2020-06-07 19:31:15 +03:00
6cc39e9bdb Merge branch 'miami' of https://github.com/GTAmodding/re3 into miami 2020-06-07 19:13:27 +03:00
88f066f469 HUD sizes 2020-06-07 19:13:12 +03:00
aap
dda9d03e54 nother bike bug 2020-06-07 17:35:22 +02:00
aap
464b232321 accidental shadowing in CBike::ProcessControl 2020-06-07 17:27:23 +02:00
c5a24eaf70 Merge remote-tracking branch 'upstream/miami' into miami 2020-06-07 18:20:00 +03:00
1748aabd69 fix 2020-06-07 18:19:44 +03:00
aap
3f5ecbe007 Merge pull request #622 from Sergeanur/VC/Font
some font stuff
2020-06-07 17:19:12 +02:00
b14e034344 fix 2020-06-07 17:52:14 +03:00
d0213e466c more script commands 2020-06-07 15:49:25 +03:00
0b156f1d26 some stats tweaks; saves dead again 2020-06-07 15:23:52 +03:00
fe3a3ad8b5 cleanup 2020-06-07 15:19:29 +03:00
c50a61d52a fixed some arithmetic 2020-06-07 15:08:58 +03:00
de4323f949 Merge branch 'miami' of https://github.com/GTAmodding/re3 into miami 2020-06-07 12:46:15 +03:00
d1a02e6ddc New ped objectives 2020-06-07 12:45:53 +03:00
5fd330b35e making it close to original 2020-06-07 11:31:52 +03:00
aap
1234fe9c1c removed a "fix" 2020-06-07 10:24:33 +02:00
a44510d1df more font 2020-06-07 10:36:37 +03:00
0d0e519e68 Merge branch 'miami' into Font 2020-06-07 05:13:44 +03:00
950cb9a717 Merge remote-tracking branch 'origin/master' into miami
# Conflicts:
#	src/core/Frontend.cpp
#	src/render/Hud.cpp
2020-06-07 05:13:01 +03:00
91e2b427ef more font stuff 2020-06-07 05:12:01 +03:00
fc7e35e1cd fixes 2020-06-07 04:20:02 +03:00
24bf4c2cba Merge branch 'miami' into Font
# Conflicts:
#	src/render/Font.cpp
#	src/render/Font.h
2020-06-07 04:16:10 +03:00
1c01899799 Merge branch 'master' into miami
# Conflicts:
#	src/control/Garages.cpp
#	src/core/Frontend.cpp
#	src/peds/PlayerPed.cpp
#	src/render/Hud.cpp
#	src/vehicles/Train.cpp
2020-06-07 04:15:10 +03:00
678a19ce3b a bit of fonts 2020-06-07 04:11:10 +03:00
aap
5711159e68 CBike done 2020-06-07 00:01:59 +02:00
db9057f5a8 fix 2020-06-06 22:24:30 +03:00
096ecc1d14 Some wait states 2020-06-06 22:16:59 +03:00
fc0498b3a8 CFont crash workaround 2020-06-06 19:25:37 +03:00
4e4a3489ef Use KnockOffRider 2020-06-06 17:19:36 +03:00
aap
d6640832f1 bla 2020-06-06 14:43:35 +02:00
aap
ef4f8ec713 more CBike functions 2020-06-06 14:42:42 +02:00
aap
c0481e7207 CBike::KnockOffRider 2020-06-06 13:22:55 +02:00
afa4fa6510 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
2020-06-06 08:42:58 +03:00
aap
68caac1abd Merge pull request #617 from majesticCoding/miami
some original VC's cheats and comparator for them
2020-06-05 23:43:15 +02:00
f014b29fc4 Update Pad.cpp 2020-06-05 14:31:17 -07:00
66262b14ad Update Pad.cpp 2020-06-05 14:20:29 -07:00
aap
fe71a58f28 Merge pull request #620 from erorcun/miami
Bike riding anims, SA bike/heli cam
2020-06-05 22:38:43 +02:00
d3736ccb17 Merge branch 'miami' of https://github.com/GTAmodding/re3 into miami 2020-06-05 23:20:16 +03:00
f045ce4386 Bike riding anims, SA bike/heli cam 2020-06-05 23:13:34 +03:00
aap
1bfb01d5f5 a bit more CBike 2020-06-05 15:09:45 +02:00
83e4023dc0 fix 2020-06-05 12:59:27 +03:00
aap
2641cd6737 Merge pull request #618 from Nick007J/miami
basic bike support in traffic, script and car gen; some heli AI
2020-06-05 11:56:58 +02:00
d325a3d247 basic bike support in traffic, script and car gen; some heli AI 2020-06-05 11:22:15 +03:00
e2cc3e1a33 some original VC's cheats and comparator for them 2020-06-04 18:19:53 -07:00
aap
647fd951ec more CBike 2020-06-05 00:24:42 +02:00
aap
7f0474e9de Merge pull request #615 from majesticCoding/miami
some orig chearts
2020-06-04 21:50:00 +02:00
4a7f0849ab Update links to bintray on miami branch 2020-06-04 21:36:06 +02:00
7059bead84 Publish artifacts for reVC 2020-06-04 21:28:42 +02:00
aap
f7612c4a49 forgot to delete debug code 2020-06-04 17:49:27 +02:00
aap
3e36428568 more CBike and fixes 2020-06-04 17:38:41 +02:00
07c6752cf7 Merge branch 'master' into miami
# Conflicts:
#	src/peds/Ped.cpp
2020-06-04 05:10:50 +03:00
a6e4619378 Revert "fix accident~"
This reverts commit 04de93796b.
2020-06-04 04:42:42 +03:00
07d336ddf0 Merge branch 'master' into miami
# Conflicts:
#	src/peds/Ped.cpp
#	src/peds/Ped.h
2020-06-04 04:32:49 +03:00
20ffcb68b6 some orig chearts
- weapon model indices added
- orig weapon cheats added
- some cheats' names changed to original ones
2020-06-03 14:48:26 -07:00
aap
e1201fc6e2 fixed CPed::AddInCarAnims 2020-06-03 16:55:23 +02:00
1e2b087601 Merge pull request #614 from erorcun/miami
Peds, eSound and PedState enum, fixes
2020-06-03 17:06:07 +03:00
5dc410a999 Peds, eSound and PedState enum, fixes 2020-06-03 17:01:11 +03:00
aap
c498af29aa get rid of III code 2020-06-03 09:24:26 +02:00
aap
ad03d9543b Merge branch 'miami' of github.com:GTAmodding/re3 into miami 2020-06-03 08:26:33 +02:00
aap
b73e42346e forgot the fucking file 2020-06-03 08:26:24 +02:00
509ca11d76 Merge remote-tracking branch 'origin/master' into miami
# Conflicts:
#	src/control/GameLogic.cpp
#	src/control/PathFind.cpp
#	src/control/RoadBlocks.cpp
#	src/control/Script.cpp
#	src/control/Script.h
#	src/core/Frontend.cpp
#	src/core/Frontend.h
#	src/core/MenuScreens.cpp
#	src/core/TempColModels.cpp
#	src/core/config.h
#	src/core/re3.cpp
#	src/modelinfo/SimpleModelInfo.cpp
#	src/modelinfo/VehicleModelInfo.cpp
#	src/modelinfo/VehicleModelInfo.h
#	src/render/Skidmarks.h
#	src/render/WaterLevel.cpp
#	src/save/GenericGameStorage.h
#	src/vehicles/Automobile.cpp
#	src/vehicles/Automobile.h
#	src/vehicles/DamageManager.cpp
#	src/vehicles/Vehicle.cpp
#	src/vehicles/Vehicle.h
2020-06-03 01:24:08 +03:00
aap
2ca3c50463 some CBike code; vehicle cleanup 2020-06-02 23:35:20 +02:00
aap
2e3cb77702 fixed radar rendering 2020-06-02 22:49:57 +02:00
aap
06c761e9ac few bike things 2020-06-02 15:26:11 +02:00
aap
dbeaafbe99 initial CBike struct 2020-06-02 14:38:30 +02:00
03d9525eb6 Merge pull request #611 from erorcun/miami
DrawStandardMenus, VC menu array and minor fixes
2020-06-02 00:21:07 +03:00
aap
bfd13d58e0 add freeroam; clean up debug menu 2020-06-01 22:02:22 +02:00
aap
fdf8f35049 CTimer fix 2020-06-01 20:51:18 +02:00
aap
d8272b8812 hanim fix 2020-06-01 20:32:43 +02:00
aap
b7037e3cf7 Merge branch 'miami' of github.com:GTAmodding/re3 into miami 2020-06-01 20:32:32 +02:00
aap
21afcd8767 Merge pull request #602 from aap/miami
CAutomobile
2020-06-01 20:32:24 +02:00
aap
25273485d9 Merge branch 'miami' of github.com:GTAmodding/re3 into miami 2020-06-01 18:05:24 +02:00
abef04c637 Merge branch 'miami' of https://github.com/GTAmodding/re3 into miami 2020-06-01 18:35:04 +03:00
d930a25d94 DrawStandardMenus, VC menu array and minor fixes 2020-06-01 18:32:34 +03:00
aap
de1018d7a6 gravity 2020-06-01 10:56:15 +02:00
aap
6d3e54369c Merge pull request #608 from Nick007J/miami
Roadblocks and GameLogic
2020-06-01 10:44:33 +02:00
aap
197c49d740 fixed bumper colmodel 2020-06-01 10:29:46 +02:00
0631bd9d89 fix 2020-05-31 23:16:24 +03:00
815d3e0f61 fix 2020-05-31 22:50:32 +03:00
f945dbc0fb dumb 2020-05-31 21:01:36 +03:00
c1c163d78c game logic 2020-05-31 20:59:01 +03:00
aap
21ce0a4b28 CAutomobile done 2020-05-31 17:05:59 +02:00
aap
00dc86917e some more CAutomobile 2020-05-31 17:05:59 +02:00
aap
218772c296 gahhh 2020-05-31 17:05:59 +02:00
aap
c1e13177a1 some CAutomobile 2020-05-31 17:05:59 +02:00
49a897c3b3 better name 2020-05-30 20:09:58 +03:00
09c9e16cb1 roadblocks 2020-05-30 20:08:31 +03:00
dd162c3aa0 Merge branch 'miami' of https://github.com/GTAmodding/re3 into miami 2020-05-29 22:05:52 +03:00
529cec5653 R to freeroam, idle anims, weapon and cam enum fix 2020-05-29 22:05:33 +03:00
627ffb0f82 fix 2020-05-29 16:52:02 +03:00
aap
ab7a21e017 Merge pull request #603 from Fire-Head/miami
Miami Water, Seagulls, Ships
2020-05-28 10:23:28 +02:00
8280e04b23 rem unnecessary asserts 2020-05-28 02:40:23 +03:00
7f30a2ae1b cockbuilding ejaculation fix 2020-05-28 00:45:45 +03:00
fab2c8699c surfacetable included 2020-05-28 00:36:52 +03:00
98af5e4ddb fix SURFACE_SAND 2020-05-28 00:28:36 +03:00
895580c724 seagulls, ships 2020-05-28 00:15:37 +03:00
e4649b41e1 Merge pull request #2 from GTAmodding/miami
Miami
2020-05-27 21:51:40 +03:00
63d0bdc863 VC Water 2020-05-27 21:50:01 +03:00
aap
717b0a6514 librw update 2020-05-27 20:42:15 +02:00
53ac163a3e Merge branch 'master' into miami
# Conflicts:
#	src/audio/AudioLogic.cpp
#	src/vehicles/Automobile.h
2020-05-27 20:50:40 +03:00
d4ae40ae99 crash fix 2020-05-27 19:39:04 +03:00
aap
02741dc64f RwCameraGetCurrentCamera 2020-05-27 09:47:57 +02:00
aap
d71cbae9df CVehicle loose ends 2020-05-27 07:43:38 +02:00
aap
c068570192 Merge pull request #600 from Fire-Head/miami
Miami Particle
2020-05-27 07:18:47 +02:00
aap
4868bf13a8 Merge pull request #601 from Sergeanur/VC/audio3
Support of original mp3/wav/adf
2020-05-27 07:10:36 +02:00
591c35d51b OpenAL support 2020-05-27 07:52:45 +03:00
aap
d0d060d321 MT function for fakerw 2020-05-27 06:50:05 +02:00
408faf8a66 Support of original mp3/wav/adf 2020-05-27 03:29:54 +03:00
90947a608f fix linux build 2020-05-27 03:18:02 +03:00
6a32981ba5 VC CParticle done 2020-05-27 02:16:31 +03:00
aap
ea09825d10 Merge pull request #553 from Sergeanur/VC/audio
Very basic compatibility with original sfx.raw/sdt
2020-05-26 22:02:12 +02:00
ae8a377f26 Merge pull request #1 from GTAmodding/miami
Miami
2020-05-26 22:16:56 +03:00
aap
7f60be9814 fix UB shit 2020-05-26 18:50:19 +02:00
1991aa388b Very basic compatibility with original sfx.raw/sdt 2020-05-26 18:25:34 +03:00
0ce2af7a0d Merge remote-tracking branch 'origin/master' into miami
# Conflicts:
#	src/audio/AudioLogic.cpp
#	src/control/Garages.cpp
#	src/core/SurfaceTable.cpp
#	src/core/SurfaceTable.h
#	src/core/World.cpp
#	src/core/main.cpp
#	src/modelinfo/PedModelInfo.cpp
#	src/peds/Ped.cpp
#	src/render/Timecycle.cpp
#	src/vehicles/Automobile.cpp
#	src/vehicles/Automobile.h
#	src/vehicles/Heli.cpp
#	src/vehicles/Vehicle.cpp
#	src/weapons/Weapon.cpp
#	src/weapons/WeaponInfo.h
2020-05-26 17:24:47 +03:00
aap
0cd883e2a1 updated librw 2020-05-26 15:26:44 +02:00
f40677c7a4 fixed crash 2020-05-26 16:17:40 +03:00
aap
314e56b7b9 fix2 2020-05-26 12:11:04 +02:00
aap
dfa95002aa fix 2020-05-26 12:10:08 +02:00
aap
800d706935 Merge pull request #588 from blingu/miami
fixed compiler errors
2020-05-26 11:39:16 +02:00
aap
d8528ebbbe eSurfaceType 2020-05-26 11:34:20 +02:00
aap
0b8f045d36 Merge pull request #586 from aap/miami
CVehicle
2020-05-26 11:25:23 +02:00
aap
7bf8337854 CVehicle 2020-05-25 18:33:34 +02:00
79c652e115 Ped.h include not needed 2020-05-24 17:48:13 +02:00
55ece14f42 Update CopPed.cpp 2020-05-24 17:36:37 +02:00
nrb
25d3f948d3 Merge branch 'miami' of https://github.com/blingu/re3 into miami 2020-05-24 17:34:04 +02:00
nrb
d59862eb5e fixed compiler errors 2020-05-24 17:27:12 +02:00
6235e2140e fixed filename 2020-05-24 17:23:14 +03:00
8705562559 how did saving even work in original III? 2020-05-24 15:58:25 +03:00
8c510a8d5b script fix 2020-05-24 15:00:45 +03:00
e248cbcc7d say goodbye to your saves 2020-05-24 14:01:01 +03:00
9c93cc7d6f Merge remote-tracking branch 'upstream/miami' into miami 2020-05-24 13:48:41 +03:00
cda3752838 comments 2020-05-24 13:48:17 +03:00
aap
19a0c8b462 Merge pull request #583 from erorcun/miami
Menu borders and weapon fixes
2020-05-24 10:47:17 +02:00
aap
34f5e923ef Merge pull request #582 from Nick007J/miami
Set pieces
2020-05-24 10:44:28 +02:00
4870d9a31b Menu borders and weapon fixes 2020-05-24 03:05:48 +03:00
6a7bd0e330 Merge remote-tracking branch 'upstream/miami' into miami 2020-05-24 00:19:25 +03:00
88b6168f1c Merge branch 'master' into miami
# Conflicts:
#	premake5.lua
#	src/control/Script.cpp
#	src/core/SurfaceTable.cpp
#	src/core/config.h
#	src/entities/Physical.cpp
#	src/entities/Physical.h
#	src/objects/Object.h
#	src/skel/skeleton.h
#	src/vehicles/Vehicle.h
2020-05-23 21:14:16 +03:00
2966be41ba Merge remote-tracking branch 'upstream/miami' into miami 2020-05-23 20:07:30 +03:00
607175f02a set pieces 2020-05-23 20:06:52 +03:00
5276abb0fb Merge branch 'miami' of https://github.com/GTAmodding/re3 into miami 2020-05-23 18:04:52 +03:00
c3b41d79a2 Cleanup and one needed function 2020-05-23 18:04:33 +03:00
530b5ff58d Merge pull request #581 from erorcun/miami
Compatibility with VC weapon.dat + new shotguns
2020-05-23 17:15:12 +03:00
5357957fe1 Compatibility with VC weapon.dat + new shotguns 2020-05-23 16:53:20 +03:00
aap
9313bfa155 skeleton typos 2020-05-23 11:34:48 +02:00
9c6046455e fixed script 2020-05-23 12:17:05 +03:00
aap
df763bdb98 Merge pull request #580 from Nick007J/miami
script fixes + a bit of CControllerConfigManager
2020-05-23 01:19:51 +02:00
7b7b0fb5f2 removed debug 2020-05-23 02:18:16 +03:00
f8a509ffb3 fixes 2020-05-23 02:17:27 +03:00
b9115b4429 Merge remote-tracking branch 'upstream/miami' into miami 2020-05-23 01:43:17 +03:00
7bf561d440 some fixes 2020-05-23 01:43:12 +03:00
aap
b105403dc7 Merge pull request #578 from aap/miami
CPhysical
2020-05-23 00:12:06 +02:00
aap
a1e4b15bcc Merge branch 'miami' of github.com:GTAmodding/re3 into miami 2020-05-22 23:58:59 +02:00
aap
8fb72afac9 Merge pull request #576 from Nick007J/miami
new script commands - mostly stubs
2020-05-22 23:55:29 +02:00
6e51ed3c53 Merge remote-tracking branch 'upstream/miami' into miami 2020-05-22 23:35:19 +03:00
4b99d7127f Merge pull request #579 from Xinerki/miami
InitAfterFocusLoss compile fix
2020-05-22 16:10:35 +03:00
Xin
a878e09f0f InitAfterFocusLoss compile fix 2020-05-22 16:04:52 +03:00
8b82e9c40f Merge pull request #574 from Xinerki/miami
many additions
2020-05-22 15:49:37 +03:00
aap
a53ca58e56 CPhysical 2020-05-22 14:27:16 +02:00
aap
380f7bc417 Merge branch 'miami' of github.com:GTAmodding/re3 into miami 2020-05-22 14:25:30 +02:00
4fd1771f71 Merge pull request #577 from erorcun/miami
VC CMenuManager struct, ctor etc.
2020-05-22 15:24:08 +03:00
a5f23a0342 VC CMenuManager struct, ctor etc. 2020-05-22 03:48:12 +03:00
5a18e69425 Merge remote-tracking branch 'upstream/miami' into miami 2020-05-22 02:42:43 +03:00
864847a6fe new script commands - mostly stubs 2020-05-22 02:42:04 +03:00
900d5a4ce0 focus loss improvement
for u aap
2020-05-21 21:48:39 +03:00
e0345732c0 wasted/busted text color
how did nobody change it yet
2020-05-21 17:50:08 +03:00
0db3d03c3c sorry my bad 2020-05-21 17:36:12 +03:00
1c00e3cf2c vehicle cheats and debug cheat string display 2020-05-21 17:28:03 +03:00
6692f5b2aa make reloadables optional 2020-05-21 16:47:48 +03:00
6912cfe98a menu map color change 2020-05-21 16:26:56 +03:00
46c6b0d29d fancy HUD.TXD reloader
TODO: make optional with defines, also add more reload options
2020-05-21 16:25:46 +03:00
3e75de9709 radardisc shadow
thank tomasak
2020-05-21 15:46:53 +03:00
1cb7b9876f scuffed InitAfterFocusLoss implementation 2020-05-21 14:23:12 +03:00
b4060a4789 add freecam toggle in control settings
comes with a free config save!
2020-05-21 13:06:09 +03:00
2db26d304f approach separation differently 2020-05-21 12:45:45 +03:00
6d32cf4a11 blip marker colors, also isolate crgba 2020-05-21 12:21:02 +03:00
aap
ff219da3eb Merge branch 'miami' of github.com:GTAmodding/re3 into miami 2020-05-21 10:32:27 +02:00
aap
bc4d628940 Merge pull request #573 from Nick007J/miami
script revision
2020-05-21 10:32:11 +02:00
7e5342e9f0 script revision 2020-05-21 11:22:25 +03:00
510261cb05 Merge remote-tracking branch 'upstream/miami' into miami 2020-05-20 23:54:22 +03:00
0085ed894f script revision 2020-05-20 23:47:44 +03:00
5b953228b4 Pickup and audio fix 2020-05-20 21:22:40 +03:00
aap
f2e55d57cc Merge branch 'miami' of github.com:GTAmodding/re3 into miami 2020-05-20 20:19:47 +02:00
aap
71b9b2ecf9 Merge pull request #572 from erorcun/miami
Fixes for melees and various things
2020-05-20 19:55:05 +02:00
aap
114208533a Merge branch 'miami' of github.com:GTAmodding/re3 into miami 2020-05-20 19:49:24 +02:00
f33a01e8c8 Merge remote-tracking branch 'upstream/miami' into miami 2020-05-20 20:40:36 +03:00
d84650fbe5 script revision 2020-05-20 20:40:04 +03:00
2ab3fb5dd0 Fixes for melees and various things 2020-05-20 20:21:27 +03:00
c53b23cff0 Merge remote-tracking branch 'origin/master' into miami
# Conflicts:
#	src/core/Radar.h
#	src/core/World.cpp
#	src/core/config.h
#	src/entities/Entity.cpp
#	src/modelinfo/ModelIndices.h
#	src/modelinfo/PedModelInfo.cpp
#	src/peds/Population.cpp
#	src/render/Clouds.cpp
#	src/render/Hud.cpp
#	src/vehicles/HandlingMgr.h
2020-05-20 14:39:36 +03:00
aap
fd4cd3e8f1 Merge pull request #569 from aap/miami
CEntity and friends
2020-05-20 12:41:12 +02:00
aap
98b158c783 Merge pull request #568 from Nick007J/miami
script revision
2020-05-20 12:40:59 +02:00
fec0028e12 sync with upstream 2020-05-19 23:27:41 +03:00
aap
c623ec8a2d Merge branch 'miami' of github.com:GTAmodding/re3 into miami 2020-05-19 21:42:16 +02:00
ada5c245a8 Merge pull request #567 from erorcun/miami
Melee weapons(half-working), Ped and Hud bits
2020-05-19 22:41:59 +03:00
aap
bdbe5d1080 CEntity and friends 2020-05-19 20:56:42 +02:00
46d1889344 slightly restructured ped flags for convenience 2020-05-19 21:34:28 +03:00
e967db4a3c fixed annoying bug 2020-05-19 21:10:40 +03:00
41d7b3244b Merge remote-tracking branch 'upstream/miami' into miami 2020-05-19 20:54:10 +03:00
4c822e8375 script revision 2020-05-19 20:54:05 +03:00
99574ebfc6 Merge branch 'miami' of https://github.com/GTAmodding/re3 into miami 2020-05-19 17:46:18 +03:00
a6972714b7 Melee weapons(half-working), Ped and Hud bits 2020-05-19 17:43:16 +03:00
aap
8a90e32f1b Merge pull request #564 from Xinerki/miami
fix audio menu crash
2020-05-19 13:26:43 +02:00
aap
6b0b984909 Merge pull request #561 from Nick007J/miami
script revision
2020-05-19 13:26:21 +02:00
ffd175c705 fix frontend control config menu a little
thank erorcun
2020-05-19 14:23:59 +03:00
12b48edada fix audio menu crash 2020-05-19 14:07:24 +03:00
aap
53cdf6ab41 HandlingMgr 2020-05-19 13:07:12 +02:00
aap
401e45d63e Merge pull request #563 from Xinerki/miami
match frontend to vc more; isolate crgba
2020-05-19 12:50:47 +02:00
9e14e8553f match frontend to vc more; isolate crgba 2020-05-19 13:47:55 +03:00
ff0e039599 Merge remote-tracking branch 'upstream/miami' into miami 2020-05-19 12:44:40 +03:00
aap
9d16df5aa8 Merge pull request #562 from Xinerki/miami
Load VC frontend textures and use some
2020-05-19 10:41:17 +02:00
00ee82aba6 Zone and Vehicle text slant 2020-05-19 11:36:08 +03:00
aap
62db8cd9b0 finished CFileLoader; some COcclusion stubs 2020-05-19 10:23:08 +02:00
d425358181 Load VC frontend textures and use some 2020-05-19 10:07:15 +03:00
a27fc8d9d9 Merge remote-tracking branch 'upstream/miami' into miami 2020-05-19 01:49:51 +03:00
6510b15704 script revision 2020-05-19 01:49:09 +03:00
aap
abd230dcdd some less certainly fps fixes 2020-05-18 22:52:35 +02:00
aap
a8f4f74a76 only one sunbathe anim group 2020-05-18 22:25:06 +02:00
aap
68f1c03a85 fixes for braking and cloud rotation at high fps 2020-05-18 16:43:40 +02:00
aap
2d4861454c Merge pull request #557 from Nick007J/miami
script and script stubs
2020-05-18 13:08:24 +02:00
aap
8f9ce275c8 Merge pull request #558 from Sergeanur/VC/text
CText
2020-05-18 13:07:59 +02:00
af22bb1495 CText 2020-05-18 01:28:40 +03:00
5ab2c85e97 some debug changes 2020-05-18 00:34:24 +03:00
f71cfdf8ef Merge branch 'miami' of https://github.com/GTAmodding/re3 into miami 2020-05-18 00:27:36 +03:00
96151ec0f0 TransformToNode crash fix? 2020-05-18 00:27:04 +03:00
ad8a8913d9 a few more stubs 2020-05-18 00:20:26 +03:00
fd2948f045 sync with upstream 2020-05-17 23:32:32 +03:00
39931a5284 some more script stubs 2020-05-17 23:31:16 +03:00
aap
13903d7c46 radar sprites 2020-05-17 22:21:39 +02:00
7bd6c70318 just in case 2020-05-17 22:17:43 +03:00
d5d2f6a822 sync with upstream 2020-05-17 21:48:21 +03:00
3cc20d7962 sync with upstream 2020-05-17 21:48:12 +03:00
a5b84eb9fe full script basic support 2020-05-17 21:43:11 +03:00
aap
8a7210cad1 Merge pull request #555 from erorcun/miami
Weapon fixes and thingies
2020-05-17 20:20:14 +02:00
84f8312b86 Weapon fixes and thingies 2020-05-17 21:01:52 +03:00
aap
a0703fd9e1 loading screens 2020-05-17 19:45:21 +02:00
aap
3f2bdc096d some HUD colors 2020-05-17 15:57:59 +02:00
37480fb617 Fix compilation errors 2020-05-17 00:33:52 +03:00
77f97ad2ad Merge branch 'master' into miami
# Conflicts:
#	src/animation/AnimManager.cpp
#	src/audio/AudioManager.cpp
2020-05-16 23:58:44 +03:00
5c8888d2ed Merge remote-tracking branch 'upstream/miami' into miami 2020-05-16 23:09:34 +03:00
b587d835e8 more script stuff 2020-05-16 23:06:33 +03:00
1a42d62d3a Merge branch 'master' into miami
# Conflicts:
#	premake5.lua
#	src/peds/Ped.cpp
#	src/peds/PedIK.cpp
#	src/peds/PedIK.h
2020-05-16 17:09:13 +03:00
e3291b0cb1 gangs, script and replay fixes 2020-05-16 17:00:40 +03:00
40ee29fb99 Weapon fixes 2020-05-16 15:07:09 +03:00
aap
793a6a6d7e bla 2020-05-16 13:07:08 +02:00
7b89baceaa Merge remote-tracking branch 'upstream/miami' into miami 2020-05-16 14:01:58 +03:00
c33b93793f new horn 2020-05-16 14:01:32 +03:00
aap
9558baa353 fixed CText to be 64 bit compatible 2020-05-16 12:52:37 +02:00
81e711517d Merge pull request #551 from Nick007J/miami
Ped attractors + weather
2020-05-16 13:40:20 +03:00
6556cb0db9 Merge remote-tracking branch 'upstream/miami' into miami 2020-05-16 13:40:00 +03:00
4defd8b75c minimal weather stuff + multiple bugfixes 2020-05-16 13:31:23 +03:00
aap
9dc5dca209 remove some unneeded plane paths for the moment; also different exe icon 2020-05-16 11:34:51 +02:00
9067469f7c more attractor fixes 2020-05-16 11:30:58 +03:00
cf5db73117 a few fixes 2020-05-16 11:22:12 +03:00
03c4a979c8 removed duplicate code 2020-05-16 10:53:20 +03:00
5abd466b5d Merge remote-tracking branch 'upstream/miami' into miami 2020-05-16 10:52:58 +03:00
5491a51daa remove debug 2020-05-16 10:39:18 +03:00
76dd769085 Merge branch 'master' into miami 2020-05-16 05:07:39 +03:00
a4562c5720 fixed spaces/tabs 2020-05-16 02:15:24 +03:00
f864698696 ped attractors 2020-05-16 02:10:23 +03:00
21329b8440 sync with upstream 2020-05-16 01:50:45 +03:00
08b2138c7e ped attractors done 2020-05-16 01:49:30 +03:00
8ff72f0728 Merge pull request #550 from erorcun/miami
Weapon layer in Peds
2020-05-15 21:30:57 +03:00
acd1ea9909 Weapon layer in Peds 2020-05-15 21:21:25 +03:00
aap
1fde2ba468 CPedIK 2020-05-15 19:41:44 +02:00
09a0207e55 Merge remote-tracking branch 'upstream/miami' into miami 2020-05-14 22:29:23 +03:00
ede6b7db6a Fix compilation 2020-05-14 17:15:26 +03:00
24875f34d0 Merge branch 'master' into miami
# Conflicts:
#	src/modelinfo/ClumpModelInfo.cpp
2020-05-14 17:05:42 +03:00
aap
41e9754338 fixed hanging boot 2020-05-14 15:05:23 +02:00
d031943f2a more pedattractor 2020-05-14 13:46:11 +03:00
d426588496 Merge remote-tracking branch 'upstream/miami' into miami 2020-05-13 17:55:12 +03:00
81ea6f0258 ped attractor: start 2020-05-13 11:38:05 +03:00
7c2b9478d5 Merge branch 'master' into miami
# Conflicts:
#	src/control/Garages.cpp
#	src/core/FileLoader.cpp
#	src/core/Streaming.cpp
#	src/core/Zones.cpp
#	src/core/Zones.h
#	src/render/Renderer.cpp
#	src/rw/VisibilityPlugins.cpp
2020-05-13 00:55:52 +03:00
33dfaf7da1 Merge remote-tracking branch 'origin/master' into miami
# Conflicts:
#	premake5.lua
#	src/core/ZoneCull.cpp
#	src/core/Zones.cpp
#	src/objects/CutsceneHead.cpp
#	src/render/Clouds.cpp
2020-05-13 00:27:15 +03:00
dc444b9ca0 Merge remote-tracking branch 'upstream/miami' into miami 2020-05-12 20:31:23 +03:00
aap
40829b5242 CClouds; disabled object clipping for SA cam 2020-05-12 16:27:39 +02:00
ca6ed7f00f fix garages 2020-05-12 16:21:00 +03:00
4b566c26a3 fix garages 2020-05-12 14:08:42 +03:00
aap
30b3f34d91 Merge pull request #536 from Nick007J/miami
more script
2020-05-12 08:53:57 +02:00
9647587447 Merge remote-tracking branch 'upstream/miami' into miami 2020-05-12 02:00:26 +03:00
3e64274f6b more script 2020-05-12 01:59:35 +03:00
aap
ce2071e1e6 Merge pull request #535 from Nick007J/miami
garages, carctrl, script
2020-05-11 23:28:52 +02:00
aap
0eb5f93e96 Merge branch 'miami' of github.com:GTAmodding/re3 into miami 2020-05-11 22:21:26 +02:00
aap
6e4710b717 CVisibilityPlugins 2020-05-11 22:21:18 +02:00
9b23e33c36 sync with upstream 2020-05-11 21:21:09 +03:00
d9db03d606 Merge remote-tracking branch 'origin/master' into miami
# Conflicts:
#	src/render/Renderer.cpp
2020-05-11 21:08:29 +03:00
5f1c3fa208 Merge remote-tracking branch 'origin/miami' into miami 2020-05-11 21:07:36 +03:00
0aa7f13c32 Merge branch 'master' into miami
# Conflicts:
#	src/animation/AnimBlendAssociation.h
#	src/animation/AnimBlendClumpData.h
#	src/animation/AnimManager.h
#	src/animation/FrameUpdate.cpp
#	src/control/AutoPilot.h
#	src/control/PathFind.h
#	src/core/PlayerInfo.h
#	src/entities/Building.h
#	src/entities/Dummy.h
#	src/entities/Entity.h
#	src/entities/Physical.h
#	src/entities/Treadable.h
#	src/modelinfo/BaseModelInfo.h
#	src/modelinfo/ClumpModelInfo.cpp
#	src/modelinfo/ClumpModelInfo.h
#	src/modelinfo/PedModelInfo.h
#	src/modelinfo/SimpleModelInfo.h
#	src/modelinfo/TimeModelInfo.h
#	src/modelinfo/VehicleModelInfo.h
#	src/objects/CutsceneHead.h
#	src/objects/CutsceneObject.h
#	src/objects/DummyObject.h
#	src/objects/Object.h
#	src/peds/DummyPed.h
#	src/peds/PedIK.cpp
#	src/rw/VisibilityPlugins.cpp
#	src/vehicles/Automobile.h
#	src/vehicles/Boat.h
#	src/vehicles/Heli.h
#	src/vehicles/Plane.h
#	src/vehicles/Train.h
#	src/vehicles/Vehicle.h
2020-05-11 21:07:12 +03:00
5f5babe7fe Merge remote-tracking branch 'upstream/miami' into miami 2020-05-11 21:05:01 +03:00
8fae2dcc26 garages + script 2020-05-11 21:04:35 +03:00
aap
d4250fc2c7 CRenderer 2020-05-11 17:03:44 +02:00
aap
ad90a06a39 little fix for cam 2020-05-11 09:18:21 +02:00
2f085ea5f5 Merge remote-tracking branch 'upstream/miami' into miami 2020-05-11 01:00:50 +03:00
2f979a8cde some changes 2020-05-11 01:00:41 +03:00
aap
198b80f560 RpAnimBlend and frame updates 2020-05-10 23:47:53 +02:00
aap
9e842f1628 vehicle model descriptions; a bit of heli code 2020-05-10 20:51:29 +02:00
aap
7919b92d28 force load weapons as long as we dont stream em yet 2020-05-10 19:09:49 +02:00
aap
d9a8bab631 update file loader for new VC fields 2020-05-10 18:14:14 +02:00
aap
c07727eed0 Merge pull request #532 from Nick007J/miami
script update
2020-05-10 17:41:31 +02:00
653d808417 Merge remote-tracking branch 'upstream/miami' into miami 2020-05-10 18:26:13 +03:00
aap
0552d49fce CVehicleModelInfo 2020-05-10 17:09:14 +02:00
00cdcef36a some updates for script 2020-05-10 17:54:13 +03:00
512f5657f7 Merge remote-tracking branch 'upstream/miami' into miami 2020-05-10 15:24:09 +03:00
61eb361d26 script changes 2020-05-10 15:23:56 +03:00
aap
f7aa4e108a added some anim groups 2020-05-10 14:22:22 +02:00
aap
f7300c7a27 CPedModelInfo 2020-05-10 13:08:02 +02:00
aap
058690aad7 Merge pull request #530 from Nick007J/miami
more car control + some stuff
2020-05-10 12:31:21 +02:00
4b892e9eb9 fix boats 2020-05-10 13:20:01 +03:00
662246b9e2 fix boat 2020-05-10 12:56:13 +03:00
1f3f82eedc Merge remote-tracking branch 'upstream/miami' into miami 2020-05-10 12:37:43 +03:00
aap
58d9e9cd59 CSimpleModelInfo 2020-05-10 11:34:26 +02:00
a827f0dd55 sync with upstream 2020-05-10 12:26:32 +03:00
2f7d2fa3ad more car control 2020-05-10 12:25:30 +03:00
aap
1b936f6ffb CClumpModelInfo; little fixes 2020-05-10 11:20:27 +02:00
aap
f0442960a2 Merge branch 'miami' of github.com:GTAmodding/re3 into miami 2020-05-10 10:04:27 +02:00
aap
e9fbd2ccfd CWeaponModelInfo 2020-05-10 10:04:20 +02:00
35c41208f5 Merge branch 'master' into miami
# Conflicts:
#	src/animation/AnimManager.cpp
#	src/control/CarCtrl.cpp
#	src/control/Curves.cpp
#	src/core/templates.h
2020-05-10 01:26:12 +03:00
aap
e4683a3074 Merge pull request #528 from Nick007J/miami
car control, curves, fixes
2020-05-09 21:18:00 +02:00
3de003a8e7 new curves + boat fix 2020-05-09 22:11:40 +03:00
5fd8eec42c Merge remote-tracking branch 'upstream/miami' into miami 2020-05-09 20:30:05 +03:00
aap
c020992e4d back to ped.ifp 2020-05-09 19:29:31 +02:00
609caad7a4 Merge remote-tracking branch 'upstream/miami' into miami 2020-05-09 20:21:36 +03:00
a55e738dfa ccarctrl big fix 2020-05-09 20:21:13 +03:00
aap
f23ecfbc84 accidentally swapped reft and light 2020-05-09 17:29:13 +02:00
aap
97d5698e0c peds starting to work 2020-05-09 17:05:26 +02:00
aap
989ded6052 removed cutscene heads 2020-05-09 13:00:39 +02:00
aap
36e1f7b4fb Merge branch 'miami' of github.com:GTAmodding/re3 into miami 2020-05-09 13:00:07 +02:00
b80c4bae6b Menu map fixes and resizable window on GLFW 2020-05-09 13:58:31 +03:00
aap
ea053467b5 Merge branch 'miami' of github.com:GTAmodding/re3 into miami 2020-05-09 12:45:27 +02:00
aap
40cfd0576f Merge pull request #526 from Nick007J/miami
GenerateOneRandomCar except bikes
2020-05-09 12:45:25 +02:00
aap
e8c0619226 named anim assoc flags 2020-05-09 09:51:31 +02:00
4b8d6a3223 Merge branch 'master' into miami
# Conflicts:
#	src/animation/AnimBlendAssocGroup.cpp
#	src/animation/AnimBlendAssociation.cpp
#	src/animation/AnimManager.cpp
#	src/core/Streaming.cpp
2020-05-09 02:56:53 +03:00
e30b538cd3 fix 2020-05-09 00:07:35 +03:00
46d891b745 fix 2020-05-09 00:00:06 +03:00
3d394c2f95 Merge remote-tracking branch 'upstream/miami' into miami 2020-05-08 23:30:04 +03:00
7e753c2596 CCarCtrl::GenerateOneRandomCar 2020-05-08 23:29:43 +03:00
aap
08de6d487a anims streaming 2020-05-08 20:56:42 +02:00
aap
87ea37248f Merge pull request #524 from Nick007J/miami
gangs
2020-05-08 18:32:32 +02:00
f902136b6a fix 2020-05-08 18:50:16 +03:00
75943a57b2 gang 2020-05-08 18:48:44 +03:00
1ef8d61f36 Merge branch 'master' into miami 2020-05-08 17:49:19 +03:00
756e4dd068 Merge remote-tracking branch 'upstream/miami' into miami 2020-05-08 17:06:25 +03:00
6065f5e52b fix 2020-05-08 17:05:54 +03:00
aap
2eee4c5176 most of animation system done; little stuff here and there 2020-05-08 15:59:57 +02:00
aap
78ca912434 Merge pull request #522 from Nick007J/miami
zone info commands + fix
2020-05-08 15:19:55 +02:00
c11a20cb4f zone info commands + fix 2020-05-08 16:16:46 +03:00
fb1f51241d fix 2020-05-08 13:41:28 +03:00
aap
2171ebe2da Merge pull request #521 from Nick007J/miami
miami car control init
2020-05-08 11:04:00 +02:00
db26700352 final fix 2020-05-08 11:49:40 +03:00
09dc1f9e1e Merge remote-tracking branch 'upstream/miami' into miami 2020-05-08 11:44:21 +03:00
49cf53644a reasonable spawns 2020-05-08 11:43:27 +03:00
44c5cdf453 tmp stuff 2020-05-08 11:11:09 +03:00
a483243c52 Merge remote-tracking branch 'origin/master' into miami
# Conflicts:
#	src/core/FileLoader.cpp
2020-05-08 00:58:39 +03:00
b99346e6ca sync with upstream 2020-05-07 23:22:15 +03:00
2dc818e4d2 intermediate changes 2020-05-07 23:21:36 +03:00
aap
c715569d1d CBaseModelInfo done 2020-05-07 21:55:54 +02:00
aap
f80474f590 little script change 2020-05-07 18:08:17 +02:00
aap
19b21cafcd CZoneInfo mostly done; not its dependencies 2020-05-07 17:53:38 +02:00
5780b4503e sync with upstream 2020-05-07 16:59:40 +03:00
40888e9486 car control and friends 2020-05-07 16:57:49 +03:00
aap
8bb22b2ad8 Merge branch 'miami' of github.com:GTAmodding/re3 into miami 2020-05-07 14:41:43 +02:00
aap
6a7d08ecc2 some quick cosmetic fixes 2020-05-07 14:41:35 +02:00
f13c4e6aca Merge branch 'master' into miami 2020-05-07 14:49:29 +03:00
aap
54662674e6 Merge branch 'miami' of github.com:GTAmodding/re3 into miami 2020-05-07 13:38:22 +02:00
aap
dbbf390983 use water color and new water texture 2020-05-07 13:38:14 +02:00
7dc649ede6 Merge branch 'master' into miami 2020-05-07 14:32:41 +03:00
aap
f5c0bf3b60 Merge branch 'miami' of github.com:GTAmodding/re3 into miami 2020-05-07 12:48:57 +02:00
aap
152c7c452c few changes for vehicle model info 2020-05-07 12:48:09 +02:00
bef436400d Merge remote-tracking branch 'origin/master' into miami
# Conflicts:
#	src/modelinfo/ModelIndices.h
2020-05-07 13:42:50 +03:00
aap
aff89c6f5c typo 2020-05-07 11:47:08 +02:00
aap
05a1d64fbb VC vehicles just barely working now 2020-05-07 11:33:20 +02:00
aap
a8d8c0690d changed default ID ranges. old default.ide incompatible now 2020-05-06 23:39:38 +02:00
a7c17a329a fixed lane offset 2020-05-07 00:27:10 +03:00
aap
3931dc795f waterlevel with offset (from Fire_Head) 2020-05-06 23:13:12 +02:00
aap
a1c229784f Merge pull request #518 from Nick007J/miami
script stubs + REQUEST_COLLISION
2020-05-06 21:55:10 +02:00
aap
965ea93a61 checked some of streaming for VC changes 2020-05-06 21:54:43 +02:00
31ebbf348f Merge remote-tracking branch 'upstream/miami' into miami 2020-05-06 21:16:38 +03:00
599b7301c8 script stubs + REQUEST_COLLISION 2020-05-06 21:15:58 +03:00
03cecb6f1c Merge pull request #516 from Nick007J/miami
miami (script + other) stuff
2020-05-06 19:43:45 +03:00
f34431a506 Merge remote-tracking branch 'upstream/miami' into miami 2020-05-06 19:34:36 +03:00
6ad66fb2d7 Merge remote-tracking branch 'origin/master' into miami
# Conflicts:
#	src/render/Renderer.cpp
2020-05-06 19:32:57 +03:00
53107d3b71 added flag 2020-05-06 19:24:33 +03:00
0930d70134 IsStatic 2020-05-06 19:20:45 +03:00
d5e76471ae Merge remote-tracking branch 'upstream/miami' into miami 2020-05-06 19:04:52 +03:00
aap
f1c1f56b12 CSphere and CBox for CColModel 2020-05-06 17:56:38 +02:00
fc8c28722f Merge remote-tracking branch 'origin/master' into miami
# Conflicts:
#	src/objects/Object.h
2020-05-06 18:24:31 +03:00
aap
a76b88da08 fixed object collision stuff at least somewhat 2020-05-06 17:17:07 +02:00
aap
c11912a8ec sorted out object collision enums 2020-05-06 17:14:34 +02:00
d015e09c92 Merge branch 'master' into miami 2020-05-06 18:03:36 +03:00
aap
224727c14d got rid of superfluous enum 2020-05-06 16:58:57 +02:00
bd4d5d7c47 Merge remote-tracking branch 'upstream/miami' into miami 2020-05-06 16:55:45 +03:00
15520fe77d fix memory corruption 2020-05-06 16:55:04 +03:00
3b08efa2ad Merge remote-tracking branch 'upstream/miami' into miami 2020-05-06 16:46:33 +03:00
bb55430f75 Merge remote-tracking branch 'origin/master' into miami 2020-05-06 16:44:30 +03:00
88076a0050 Merge remote-tracking branch 'upstream/miami' into miami 2020-05-06 15:45:13 +03:00
aap
25a4091fa8 setting some areas so objects dont disappear 2020-05-06 14:43:23 +02:00
4d06271a29 Merge remote-tracking branch 'upstream/miami' into miami 2020-05-06 15:30:56 +03:00
aap
600cbee7d4 Merge branch 'miami' of github.com:GTAmodding/re3 into miami 2020-05-06 14:28:05 +02:00
aap
13c24a310d little cworld bugfix 2020-05-06 14:27:57 +02:00
8c036ec671 sync with master 2020-05-06 14:42:41 +03:00
bb8b6348ec Fix appveyor 2020-05-06 14:11:21 +03:00
c0488d9ecf Merge remote-tracking branch 'origin/master' into miami
# Conflicts:
#	src/control/Script.cpp
#	src/core/FileLoader.cpp
#	src/core/User.cpp
#	src/core/ZoneCull.cpp
#	src/core/Zones.cpp
#	src/core/Zones.h
#	src/entities/Entity.cpp
2020-05-06 14:10:52 +03:00
aap
e0568a19d5 new zone stuff 2020-05-06 12:23:57 +02:00
98177f27ba Merge remote-tracking branch 'upstream/miami' into miami 2020-05-06 11:38:02 +03:00
aap
aa8968ecf2 updating librw because of fuckup 2020-05-06 09:59:36 +02:00
aap
ed021431e9 updated librw 2020-05-06 09:23:31 +02:00
aap
31f9bb566b implemented most of timecycle and mblur 2020-05-06 00:53:26 +02:00
a7036475c3 not needed 2020-05-06 01:16:54 +03:00
e5da4c2b4d Merge remote-tracking branch 'upstream/miami' into miami 2020-05-06 01:11:18 +03:00
0b104a59fe script colstore stuff 2020-05-06 01:11:06 +03:00
aap
68d3ea9c42 getting the vice city map to work 2020-05-05 23:27:43 +02:00
35bf340401 colstore support in script 2020-05-06 00:21:26 +03:00
f0896ceba7 Merge remote-tracking branch 'upstream/miami' into miami 2020-05-05 21:46:00 +03:00
1291dd534b script stuff 2020-05-05 21:45:43 +03:00
0b61ae11ec Fix appveyour 2020-05-05 21:05:51 +03:00
a02b4c9592 Merge branch 'master' into miami 2020-05-05 20:54:54 +03:00
42a64a2379 appveyor update 2020-05-05 20:54:44 +03:00
4bd4d24802 Merge branch 'master' into miami
# Conflicts:
#	premake5.lua
2020-05-05 20:42:11 +03:00
f45ea0a1cf Merge remote-tracking branch 'upstream/miami' into miami 2020-05-05 20:22:17 +03:00
918d6dbf56 some more miami 2020-05-05 20:22:13 +03:00
aap
7428590457 some miami limits 2020-05-05 18:31:53 +02:00
aap
559ad5c5e2 Merge branch 'miami' of https://github.com/GTAmodding/re3 into miami 2020-05-05 18:07:45 +02:00
3e18b92ccc Merge pull request #515 from Nick007J/miami
skipped one def
2020-05-05 19:07:28 +03:00
aap
e81652c2fc cleaned up MIAMI ifdefs 2020-05-05 18:06:38 +02:00
6b4b708fa7 skipped one def 2020-05-05 19:06:24 +03:00
22e8b0e419 Revert "Remove GTA_TRAIN, GTA_BRIDGE, GTA_ZONECULL"
This reverts commit 1eb817de77.

# Conflicts:
#	src/core/Game.cpp
2020-05-05 18:34:46 +03:00
12fbf8cede Merge branch 'master' into miami
# Conflicts:
#	src/core/Game.cpp
2020-05-05 18:33:32 +03:00
aap
2c0b82ec1a Merge pull request #514 from Nick007J/miami
remove ifdefs
2020-05-05 17:23:23 +02:00
2a29c6c214 Merge remote-tracking branch 'upstream/miami' into miami 2020-05-05 18:20:37 +03:00
edeb8736f1 remove ifdefs 2020-05-05 18:20:10 +03:00
7afa4f8316 Revert "Remove ColStore"
This reverts commit 0163a7bc46.
2020-05-05 18:14:31 +03:00
0aab36c5a7 Merge branch 'master' into miami 2020-05-05 18:14:19 +03:00
cb8ffbac73 Revert "Remove #endif"
This reverts commit 7200a783ee.
2020-05-05 18:07:43 +03:00
74b522af71 Merge branch 'master' into miami 2020-05-05 18:07:33 +03:00
c2b9ddc5b8 Revert "Remove Miami stuff"
This reverts commit 9960c41193.
2020-05-05 18:04:43 +03:00
522 changed files with 191659 additions and 113639 deletions

View File

@ -1,24 +0,0 @@
---
name: Bug report
about: Create a report to help us improve
title: ''
labels: ''
assignees: ''
---
**Describe the bug**
A clear and concise description of what the bug is.
**To Reproduce**
Steps to reproduce the behavior.
**Expected behavior**
A clear and concise description of what you expected to happen.
**Screenshots**
If applicable, add screenshots to help explain your problem.
**Version**
Tell us what version you're running. Find out using the debug menu (Ctrl-M, Debug -> Version Text)
If you send a screenshot just enable it beforehand.

View File

@ -1,4 +1,4 @@
name: re3 conan+cmake
name: reLCS conan+cmake
on:
pull_request:
push:
@ -96,13 +96,13 @@ jobs:
conan export re3mss miles-sdk/master@
- name: "Download/build dependencies (conan install)"
run: |
conan install ${{ github.workspace }} re3/master@ -if build -o re3:audio=${{ matrix.audio }} -o librw:platform=${{ matrix.platform }} -o librw:gl3_gfxlib=${{ matrix.gl3_gfxlib || 'glfw' }} --build missing -pr:h ./host_profile -pr:b default -s re3:build_type=RelWithDebInfo -s librw:build_type=RelWithDebInfo
conan install ${{ github.workspace }} reLCS/master@ -if build -o reLCS:audio=${{ matrix.audio }} -o librw:platform=${{ matrix.platform }} -o librw:gl3_gfxlib=${{ matrix.gl3_gfxlib || 'glfw' }} --build missing -pr:h ./host_profile -pr:b default -s reLCS:build_type=RelWithDebInfo -s librw:build_type=RelWithDebInfo
env:
CONAN_SYSREQUIRES_MODE: enabled
- name: "Build re3 (conan build)"
- name: "Build reLCS (conan build)"
run: |
conan build ${{ github.workspace }} -if build -bf build -pf package
- name: "Package re3 (conan package)"
- name: "Package reLCS (conan package)"
run: |
conan package ${{ github.workspace }} -if build -bf build -pf package
- name: "Create binary package (cpack)"
@ -113,5 +113,5 @@ jobs:
uses: actions/upload-artifact@v2
with:
name: "${{ matrix.os }}-${{ matrix.platform }}"
path: build/*.zip
path: build/*.tar.xz
if-no-files-found: error

View File

@ -1,4 +1,5 @@
name: re3 cmake devkitA64 (Nintendo Switch)
name: reLCS cmake devkitA64 (Nintendo Switch)
on:
pull_request:
push:
@ -14,7 +15,7 @@ jobs:
submodules: 'true'
- name: "Build files"
run: |
/opt/devkitpro/portlibs/switch/bin/aarch64-none-elf-cmake -S. -Bbuild -DRE3_AUDIO=OAL -DLIBRW_PLATFORM=GL3 -DLIBRW_GL3_GFXLIB=GLFW -DRE3_WITH_OPUS=False -DRE3_VENDORED_LIBRW=True -DRE3_INSTALL=True
/opt/devkitpro/portlibs/switch/bin/aarch64-none-elf-cmake -S. -Bbuild -DREVC_AUDIO=OAL -DLIBRW_PLATFORM=GL3 -DLIBRW_GL3_GFXLIB=GLFW -DREVC_WITH_OPUS=False -DREVC_VENDORED_LIBRW=True -DREVC_INSTALL=True
cmake --build build --parallel
- name: "Create binary package (cpack)"
working-directory: ./build
@ -24,5 +25,5 @@ jobs:
uses: actions/upload-artifact@v2
with:
name: "switch-gl3"
path: build/*.zip
path: build/*.tar.xz
if-no-files-found: error

View File

@ -1,4 +1,4 @@
name: re3 premake amd64
name: reLCS premake amd64
on:
pull_request:
@ -37,14 +37,14 @@ jobs:
./premake5 vs2019 --with-librw --no-full-paths --glfwdir64=${{env.GLFW_BASE}}
- name: Build
run: |
msbuild -m build/re3.sln /property:Configuration=${{matrix.buildtype}} /property:Platform=${{matrix.platform}}
msbuild -m build/reLCS.sln /property:Configuration=${{matrix.buildtype}} /property:Platform=${{matrix.platform}}
# - name: Pack artifacts
# run: |
# 7z a re3_${{matrix.buildtype}}_${{matrix.platform}}.zip ./bin/${{matrix.platform}}/${{matrix.buildtype}}/*
# 7z a reLCS_${{matrix.buildtype}}_${{matrix.platform}}.zip ./bin/${{matrix.platform}}/${{matrix.buildtype}}/*
- name: Move binaries to gamefiles
run: |
mv ./bin/${{matrix.platform}}/${{matrix.buildtype}}/re3.exe ./gamefiles/
mv ./bin/${{matrix.platform}}/${{matrix.buildtype}}/re3.pdb ./gamefiles/
mv ./bin/${{matrix.platform}}/${{matrix.buildtype}}/reLCS.exe ./gamefiles/
mv ./bin/${{matrix.platform}}/${{matrix.buildtype}}/reLCS.pdb ./gamefiles/
- name: Move dynamic dependencies to gamefiles
run: |
mv ./vendor/mpg123/dist/Win64/libmpg123-0.dll ./gamefiles/
@ -52,12 +52,12 @@ jobs:
- name: Upload artifact to actions
uses: actions/upload-artifact@v2
with:
name: re3_${{matrix.buildtype}}_${{matrix.platform}}
name: reLCS_${{matrix.buildtype}}_${{matrix.platform}}
path: ./gamefiles/*
# - name: Upload artifact to Bintray
# uses: hpcsc/upload-bintray-docker-action@v1
# with:
# repository: re3
# repository: reLCS
# package: ${{matrix.buildtype}}_${{matrix.platform}}
# version: 1.0-$(echo ${GITHUB_SHA}
# sourcePath: ./bin/${{matrix.platform}}/${{matrix.buildtype}}

View File

@ -1,4 +1,4 @@
name: re3 premake x86
name: reLCS premake x86
on:
pull_request:
@ -16,7 +16,7 @@ jobs:
strategy:
matrix:
platform: [win-x86-librw_d3d9-mss, win-x86-librw_gl3_glfw-mss, win-x86-librw_d3d9-oal, win-x86-librw_gl3_glfw-oal]
buildtype: [Debug, Release, Vanilla]
buildtype: [Debug, Release]
steps:
- name: Add msbuild to PATH
uses: microsoft/setup-msbuild@v1.0.2
@ -37,14 +37,14 @@ jobs:
./premake5 vs2019 --with-librw --no-full-paths --glfwdir32=${{env.GLFW_BASE}}
- name: Build
run: |
msbuild -m build/re3.sln /property:Configuration=${{matrix.buildtype}} /property:Platform=${{matrix.platform}}
msbuild -m build/reLCS.sln /property:Configuration=${{matrix.buildtype}} /property:Platform=${{matrix.platform}}
# - name: Pack artifacts
# run: |
# 7z a re3_${{matrix.buildtype}}_${{matrix.platform}}.zip ./bin/${{matrix.platform}}/${{matrix.buildtype}}/*
# 7z a reLCS_${{matrix.buildtype}}_${{matrix.platform}}.zip ./bin/${{matrix.platform}}/${{matrix.buildtype}}/*
- name: Move binaries to gamefiles
run: |
mv ./bin/${{matrix.platform}}/${{matrix.buildtype}}/re3.exe ./gamefiles/
mv ./bin/${{matrix.platform}}/${{matrix.buildtype}}/re3.pdb ./gamefiles/
mv ./bin/${{matrix.platform}}/${{matrix.buildtype}}/reLCS.exe ./gamefiles/
mv ./bin/${{matrix.platform}}/${{matrix.buildtype}}/reLCS.pdb ./gamefiles/
- if: contains(matrix.platform, 'oal')
name: Move dynamic dependencies to gamefiles
run: |
@ -53,12 +53,12 @@ jobs:
- name: Upload artifact to actions
uses: actions/upload-artifact@v2
with:
name: re3_${{matrix.buildtype}}_${{matrix.platform}}
name: reLCS_${{matrix.buildtype}}_${{matrix.platform}}
path: ./gamefiles/*
# - name: Upload artifact to Bintray
# uses: hpcsc/upload-bintray-docker-action@v1
# with:
# repository: re3
# repository: reLCS
# package: ${{matrix.buildtype}}_${{matrix.platform}}
# version: 1.0-$(echo ${GITHUB_SHA}
# sourcePath: ./bin/${{matrix.platform}}/${{matrix.buildtype}}

4
.gitignore vendored
View File

@ -355,8 +355,8 @@ vendor/glfw-3.3.2.bin.WIN64/
sdk/
codewarrior/re3.mcp
codewarrior/re3_Data/
codewarrior/reVC.mcp
codewarrior/reVC_Data/
codewarrior/Release/
codewarrior/Debug/

View File

@ -20,9 +20,9 @@
"src/peds",
"src/renderer",
"src/rw",
"src/save/",
"src/skel/",
"src/skel/glfw",
"src/save",
"src/save/glfw",
"src/skel",
"src/text",
"src/vehicles",
"src/weapons",

View File

@ -1,7 +1,7 @@
cmake_minimum_required(VERSION 3.14)
set(EXECUTABLE re3)
set(PROJECT RE3)
set(EXECUTABLE reLCS)
set(PROJECT RELCS)
project(${EXECUTABLE} C CXX)
set(${PROJECT}_AUTHOR "${PROJECT} Team")
@ -11,13 +11,14 @@ include(GetGitRevisionDescription)
get_git_head_revision(GIT_REFSPEC GIT_SHA1 "ALLOW_LOOKING_ABOVE_CMAKE_SOURCE_DIR")
message(STATUS "Building ${CMAKE_PROJECT_NAME} GIT SHA1: ${GIT_SHA1}")
if(NINTENDO_SWITCH)
list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}/cmake/nx")
include(NXFunctions)
endif()
if(NOT COMMAND re3_platform_target)
function(re3_platform_target)
if(NOT COMMAND reVC_platform_target)
function(reVC_platform_target)
endfunction()
endif()
@ -94,6 +95,6 @@ if(${PROJECT}_INSTALL)
set(CPACK_PACKAGE_INSTALL_DIRECTORY "${CPACK_PACKAGE_NAME}")
set(CPACK_SOURCE_PACKAGE_FILE_NAME "${CPACK_PACKAGE_NAME}")
set(CPACK_PACKAGE_FILE_NAME "${CPACK_PACKAGE_NAME}")
set(CPACK_GENERATOR "ZIP")
set(CPACK_GENERATOR "TXZ")
include(CPack)
endif()

211
README.md
View File

@ -1,204 +1,37 @@
<img src="https://github.com/GTAmodding/re3/blob/master/res/images/logo_1024.png?raw=true" alt="re3 logo" width="200">
[![Build Status](https://img.shields.io/endpoint.svg?url=https%3A%2F%2Factions-badge.atrox.dev%2FGTAmodding%2Fre3%2Fbadge%3Fref%3Dmaster&style=flat)](https://actions-badge.atrox.dev/GTAmodding/re3/goto?ref=master)
# reLCS
[![Build Status](https://img.shields.io/endpoint.svg?url=https%3A%2F%2Factions-badge.atrox.dev%2FGTAmodding%2Fre3%2Fbadge%3Fref%3Dlcs&style=flat)](https://actions-badge.atrox.dev/GTAmodding/re3/goto?ref=lcs)
<a href="https://discord.gg/RFNbjsUMGg"><img src="https://img.shields.io/badge/discord-join-7289DA.svg?logo=discord&longCache=true&style=flat" /></a>
## Intro
In this repository you'll find the fully reversed source code for GTA III ([master](https://github.com/GTAmodding/re3/tree/master/) branch) and GTA VC ([miami](https://github.com/GTAmodding/re3/tree/miami/) branch).
The aim of this project is to reverse GTA Liberty City Stories.
It has been tested and works on Windows, Linux, MacOS and FreeBSD, on x86, amd64, arm and arm64.\
Rendering is handled either by original RenderWare (D3D8)
or the reimplementation [librw](https://github.com/aap/librw) (D3D9, OpenGL 2.1 or above, OpenGL ES 2.0 or above).\
Audio is done with MSS (using dlls from original GTA) or OpenAL.
## How can I try it?
The project has also been ported to the [Nintendo Switch](https://github.com/AGraber/re3-nx/),
[Playstation Vita](https://github.com/Rinnegatamante/re3) and
[Nintendo Wii U](https://github.com/GaryOderNichts/re3-wiiu/).
- reLCS requires game assets to work.
- Build reLCS or download it from one of the above links (Debug or Release).
- (Optional) If you want to use optional features, copy the files in /gamefiles folder to your game root folder.
- Move reLCS.exe to GTA LCS directory and run it.
We cannot build for PS2 or Xbox yet. If you're interested in doing so, get in touch with us.
## Preparing the environment for building
## Installation
You may want to point GTA_LCS_RE_DIR environment variable to GTA LCS root folder if you want executable to be moved there via post-build script.
- re3 requires PC game assets to work, so you **must** own [a copy of GTA III](https://store.steampowered.com/app/12100/Grand_Theft_Auto_III/).
- Build re3 or download the latest build:
- [Windows D3D9 MSS 32bit](https://nightly.link/GTAmodding/re3/workflows/re3_msvc_x86/master/re3_Release_win-x86-librw_d3d9-mss.zip)
- [Windows D3D9 64bit](https://nightly.link/GTAmodding/re3/workflows/re3_msvc_amd64/master/re3_Release_win-amd64-librw_d3d9-oal.zip)
- [Windows OpenGL 64bit](https://nightly.link/GTAmodding/re3/workflows/re3_msvc_amd64/master/re3_Release_win-amd64-librw_gl3_glfw-oal.zip)
- [Linux 64bit](https://nightly.link/GTAmodding/re3/workflows/build-cmake-conan/master/ubuntu-18.04-gl3.zip)
- [MacOS 64bit x86-64](https://nightly.link/GTAmodding/re3/workflows/build-cmake-conan/master/macos-latest-gl3.zip)
- Extract the downloaded zip over your GTA 3 directory and run re3. The zip includes the binary, updated and additional gamefiles and in case of OpenAL the required dlls.
- For Linux, proceed: [Building on Linux](https://github.com/GTAmodding/re3/wiki/Building-on-Linux)
- For FreeBSD, proceed: [Building on FreeBSD](https://github.com/GTAmodding/re3/wiki/Building-on-FreeBSD)
- For Windows, assuming you have Visual Studio:
- Clone the repo using the argument `--recursive`.
- Run one of the `premake-vsXXXX.cmd` variants on root folder.
- Open the project via Visual Studio
**If you use 64-bit D3D9**: We don't ship 64-bit Dx9 SDK. You need to download it from Microsoft if you don't have it(although it should come pre-installed after some Windows version)
## Screenshots
There are various settings at the very bottom of [config.h](https://github.com/GTAmodding/re3/tree/lcs/src/core/config.h), you may want to take a look there. i.e. FIX_BUGS define fixes the bugs we've come across.
![re3 2021-02-11 22-57-03-23](https://user-images.githubusercontent.com/1521437/107704085-fbdabd00-6cbc-11eb-8406-8951a80ccb16.png)
![re3 2021-02-11 22-43-44-98](https://user-images.githubusercontent.com/1521437/107703339-cbdeea00-6cbb-11eb-8f0b-07daa105d470.png)
![re3 2021-02-11 22-46-33-76](https://user-images.githubusercontent.com/1521437/107703343-cd101700-6cbb-11eb-9ccd-012cb90524b7.png)
![re3 2021-02-11 22-50-29-54](https://user-images.githubusercontent.com/1521437/107703348-d00b0780-6cbb-11eb-8afd-054249c2b95e.png)
> :information_source: **If you choose OpenAL on Windows** You must read [Running OpenAL build on Windows](https://github.com/GTAmodding/re3/wiki/Running-OpenAL-build-on-Windows).
## Improvements
We have implemented a number of changes and improvements to the original game.
They can be configured in `core/config.h`.
Some of them can be toggled at runtime, some cannot.
* Fixed a lot of smaller and bigger bugs
* User files (saves and settings) stored in GTA root directory
* Settings stored in re3.ini file instead of gta3.set
* Debug menu to do and change various things (Ctrl-M to open)
* Debug camera (Ctrl-B to toggle)
* Rotatable camera
* XInput controller support (Windows)
* No loading screens between islands ("map memory usage" in menu)
* Skinned ped support (models from Xbox or Mobile)
* Rendering
* Widescreen support (properly scaled HUD, Menu and FOV)
* PS2 MatFX (vehicle reflections)
* PS2 alpha test (better rendering of transparency)
* PS2 particles
* Xbox vehicle rendering
* Xbox world lightmap rendering (needs Xbox map)
* Xbox ped rim light
* Xbox screen rain droplets
* More customizable colourfilter
* Menu
* Map
* More options
* Controller configuration menu
* ...
* Can load DFFs and TXDs from other platforms, possibly with a performance penalty
* ...
## To-Do
The following things would be nice to have/do:
* Fix physics for high FPS
* Improve performance on lower end devices, especially the OpenGL layer on the Raspberry Pi (if you have experience with this, please get in touch)
* Compare code with PS2 code (tedious, no good decompiler)
* [PS2 port](https://github.com/GTAmodding/re3/wiki/PS2-port)
* Xbox port (not quite as important)
* reverse remaining unused/debug functions
* compare CodeWarrior build with original binary for more accurate code (very tedious)
## Modding
Asset modifications (models, texture, handling, script, ...) should work the same way as with original GTA for the most part.
Mods that make changes to the code (dll/asi, CLEO, limit adjusters) will *not* work.
Some things these mods do are already implemented in re3 (much of SkyGFX, GInput, SilentPatch, Widescreen fix),
others can easily be achieved (increasing limis, see `config.h`),
others will simply have to be rewritten and integrated into the code directly.
Sorry for the inconvenience.
## Building from Source
When using premake, you may want to point GTA_III_RE_DIR environment variable to GTA3 root folder if you want the executable to be moved there via post-build script.
Clone the repository with `git clone --recursive https://github.com/GTAmodding/re3.git`. Then `cd re3` into the cloned repository.
<details><summary>Linux Premake</summary>
For Linux using premake, proceed: [Building on Linux](https://github.com/GTAmodding/re3/wiki/Building-on-Linux)
</details>
<details><summary>Linux Conan</summary>
Install python and conan, and then run build.
```
conan export vendor/librw librw/master@
mkdir build
cd build
conan install .. re3/master@ -if build -o re3:audio=openal -o librw:platform=gl3 -o librw:gl3_gfxlib=glfw --build missing -s re3:build_type=RelWithDebInfo -s librw:build_type=RelWithDebInfo
conan build .. -if build -bf build -pf package
```
</details>
<details><summary>MacOS Premake</summary>
For MacOS using premake, proceed: [Building on MacOS](https://github.com/GTAmodding/re3/wiki/Building-on-MacOS)
</details>
<details><summary>FreeBSD</summary>
For FreeBSD using premake, proceed: [Building on FreeBSD](https://github.com/GTAmodding/re3/wiki/Building-on-FreeBSD)
</details>
<details><summary>Windows</summary>
Assuming you have Visual Studio 2015/2017/2019:
- Run one of the `premake-vsXXXX.cmd` variants on root folder.
- Open build/re3.sln with Visual Studio and compile the solution.
Microsoft recently discontinued its downloads of the DX9 SDK. You can download an archived version here: https://archive.org/details/dxsdk_jun10
**If you choose OpenAL on Windows** You must read [Running OpenAL build on Windows](https://github.com/GTAmodding/re3/wiki/Running-OpenAL-build-on-Windows).
</details>
> :information_source: premake has an `--with-lto` option if you want the project to be compiled with Link Time Optimization.
> :information_source: There are various settings in [config.h](https://github.com/GTAmodding/re3/tree/master/src/core/config.h), you may want to take a look there.
> :information_source: re3 uses completely homebrew RenderWare-replacement rendering engine; [librw](https://github.com/aap/librw/). librw comes as submodule of re3, but you also can use LIBRW enviorenment variable to specify path to your own librw.
If you feel the need, you can also use CodeWarrior 7 to compile re3 using the supplied codewarrior/re3.mcp project - this requires the original RW33 libraries, and the DX8 SDK. The build is unstable compared to the MSVC builds though, and is mostly meant to serve as a reference.
> :information_source: **Did you notice librw?** reLCS uses completely homebrew RenderWare-replacement rendering engine; [librw](https://github.com/aap/librw/). librw comes as submodule of reLCS, but you also can use LIBRW enviorenment variable to specify path to your own librw.
## Contributing
As long as it's not linux/cross-platform skeleton/compatibility layer, all of the code on the repo that's not behind a preprocessor condition(like FIX_BUGS) are **completely** reversed code from original binaries.
Please read the [Coding Style](https://github.com/GTAmodding/re3/blob/master/CODING_STYLE.md) Document
We **don't** accept custom codes, as long as it's not wrapped via preprocessor conditions, or it's linux/cross-platform skeleton/compatibility layer.
We accept only these kinds of PRs;
- A new feature that exists in at least one of the GTAs (if it wasn't in III/VC then it doesn't have to be decompilation)
- Game, UI or UX bug fixes (if it's a fix to original code, it should be behind FIX_BUGS)
- Platform-specific and/or unused code that's not been reversed yet
- Makes reversed code more understandable/accurate, as in "which code would produce this assembly".
- A new cross-platform skeleton/compatibility layer, or improvements to them
- Translation fixes, for languages original game supported
- Code that increase maintainability
We have a [Coding Style](https://github.com/GTAmodding/re3/blob/master/CODING_STYLE.md) document that isn't followed or enforced very well.
Do not use features from C++11 or later.
## History
re3 was started sometime in the spring of 2018,
initially as a way to test reversed collision and physics code
inside the game.
This was done by replacing single functions of the game
with their reversed counterparts using a dll.
After a bit of work the project lay dormant for about a year
and was picked up again and pushed to github in May 2019.
At the time I (aap) had reversed around 10k lines of code and estimated
the final game to have around 200-250k.
Others quickly joined the effort (Fire_Head, shfil, erorcun and Nick007J
in time order, and Serge a bit later) and we made very quick progress
throughout the summer of 2019
after which the pace slowed down a bit.
Due to everyone staying home during the start of the Corona pandemic
everybody had a lot of time to work on re3 again and
we finally got a standalone exe in April 2020 (around 180k lines by then).
After the initial excitement and fixing and polishing the code further,
reVC was started in early May 2020 by starting from re3 code,
not by starting from scratch replacing functions with a dll.
After a few months of mostly steady progress we considered reVC
finished in December.
Since then we have started reLCS, which is currently work in progress.
## License
We don't feel like we're in a position to give this code a license.\
The code should only be used for educational, documentation and modding purposes.\
We do not encourage piracy or commercial use.\
Please keep derivate work open source and give proper credit.

View File

@ -8,7 +8,7 @@ endif()
set(CMAKE_EXECUTABLE_SUFFIX ".elf")
function(re3_platform_target TARGET)
function(reVC_platform_target TARGET)
cmake_parse_arguments(RPT "INSTALL" "" "" ${ARGN})
get_target_property(TARGET_TYPE "${TARGET}" TYPE)

File diff suppressed because it is too large Load Diff

View File

@ -5,8 +5,8 @@ import shutil
import textwrap
class Re3Conan(ConanFile):
name = "re3"
class ReLCSConan(ConanFile):
name = "reLCS"
version = "master"
license = "???" # FIXME: https://github.com/GTAmodding/re3/issues/794
settings = "os", "arch", "compiler", "build_type"
@ -69,10 +69,10 @@ class Re3Conan(ConanFile):
raise ConanInvalidConfiguration("Only `glfw` is supported as gl3_gfxlib.")
#if not self.options.with_opus:
# if not self.options["libsndfile"].with_external_libs:
# raise ConanInvalidConfiguration("re3 with opus support requires a libsndfile built with external libs (=ogg/flac/opus/vorbis)")
# raise ConanInvalidConfiguration("reLCS with opus support requires a libsndfile built with external libs (=ogg/flac/opus/vorbis)")
@property
def _re3_audio(self):
def _reLCS_audio(self):
return {
"miles": "MSS",
"openal": "OAL",
@ -111,16 +111,16 @@ class Re3Conan(ConanFile):
include("{}/conanbuildinfo.cmake")
conan_basic_setup(TARGETS NO_OUTPUT_DIRS)
add_subdirectory("{}" re3)
add_subdirectory("{}" reLCS)
""").format(self.install_folder.replace("\\", "/"),
self.source_folder.replace("\\", "/")))
except FileNotFoundError:
pass
cmake = CMake(self)
cmake.definitions["RE3_AUDIO"] = self._re3_audio
cmake.definitions["RE3_WITH_OPUS"] = self.options.with_opus
cmake.definitions["RE3_INSTALL"] = True
cmake.definitions["RE3_VENDORED_LIBRW"] = False
cmake.definitions["RELCS_AUDIO"] = self._reLCS_audio
cmake.definitions["RELCS_WITH_OPUS"] = self.options.with_opus
cmake.definitions["RELCS_INSTALL"] = True
cmake.definitions["RELCS_VENDORED_LIBRW"] = False
env = {}
if self._os_is_playstation2:
cmake.definitions["CMAKE_TOOLCHAIN_FILE"] = self.deps_user_info["ps2dev-cmaketoolchain"].cmake_toolchain_file

BIN
gamefiles/TEXT/ENGLISH.gxt Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -1,363 +0,0 @@
; Author: Alexander Roger
; Date: 21/12/2000
;
; Author: Andrzej Madajczyk
; Date: 26/02/2001
; 14/03/2001 - Alpha (opacity) support added;
; 10/05/2001 - Drag/Friction Decceleration changed to constants;
; 28/08/2001 - Initial Color Variation added;
;
;
;
;
; Note! Last line of the file MUST BE ";the end\n", otherwise you'll get parsing error(s) of the file;
;
;
;
;Particle Systems Configuration Data:: Format
;
;
;A: Particle Type Name (max 20 chars)
;
;B/C/D: Render Colouring (r,g,b) (0-255)
;
;CV: Initial Color Variation (for r,g,b only, in %) (0-100);
; (i.e. Color=(100,100,100) and CV=20, then v=random(-20,20), real_color=(100+v, 100+v, 100+v));
;
;
;
;B2/C2/D2: Fade Destination Color (r,g,b) (0-255)
;
;FT: Color Fade Time for (B,C,D)->(B2,C2,D2), (0 for none);
;
;
;
;
;E: Default Initial Radius (float)
;F: Expansion Rate (float)
;
;
; Color "Fade-to-Black" options:
;G: Initial Intensity (0-255)
;H: Fade Time (time between fade steps in frames)
;I: Fade Amount (-255 to 255) can get brighter or dimmer
;
; "Fade Alpha" options:
;GA: Initial Intensity (0-255)
;HA: Fade Time (time between fade steps in frames)
;IA: Fade Amount
;
; "Z Rotation" options:
;GZA: Initial Angle (0-1023)
;HZA: Change Time (time between steps in frames)
;IZA: Angle Change Amount
;
;GZR: Initial Z Radius
;HZR: Change Time (time between steps in frames)
;IZR: Z Radius Change Amount
;
;
;J: Animation Speed (0=no animation)(time between steps msec)
;K: Start Animation Frame ( 0 -> )
;L: Final Animation Frame ( H -> )
;
;
;M: Rotation Speed (0=None,i-deg/frame)
;N: Gravitational Acceleration (0=none, float)
;O: Drag/Friction Decceleration (int: 0=none, 50=0.50, 80=0.80, 90=0.90, 95=0.95, 96=0.96, 99=0.99)
;
;P: Default Life-Span of Particle (msec)
;
;Q: Position Random Error [position += (+/-)rand(a)]
;R: Velocity Random Error [velocity += (+/-)rand(b)]
;S: Expansion Rate Error [exp_rate += (+)rand(c)]
;T: Rotation Rate Error [rot_speed = (+/-)rand(d)]
;U: Life-Span Error Shape [shape distribution, e=0->all at default, e->Inf then shape->0] (max=255!!)
;V: Trail Length Multiplier [length *= (float) multiplier] (only used if trail flag active)
;
;CR:Particle Create Range (in meters: 0=no check); if particles are created enough far away from camera, they are deleted (not added to particle system);
;
;
;Z: Flags! Guide: 1=ZCHECK_FIRST, 2=ZCHECK_STEP, 4=DRAW_OPAQUE, 8=SCREEN_TRAIL,
; 16=SPEED_TRAIL, 32=RAND_VERT_V, 64=CYCLE_ANIM, 128=DRAW_DARK, 256=VERT_TRAIL
; 1024=DRAWTOP2D, 2048=CLIPOUT2D
; 4096=ZCHECK_BUMP, 8192=ZCHECK_BUMP_FIRST
;
;
;
;default:
;GUNFLASH 255 255 255 0 0.1 0.0 255 0 128 0 0 0 0 0.0 1.0 250 0.0 0.0 0.0 0 0 1.0 0
;
;good idea for fire-smudge?
;GUNFLASH 255 255 255 0 1.0 0.0 255 0 32 100 0 3 0 0.0 1.0 400 0.0 0.0 0.0 0 0 1.0 0
;
;current:
;GUNFLASH 255 255 255 0 1.0 0.0 255 0 32 100 0 3 0 0.0 1.0 400 0.0 0.0 0.0 0 0 1.0 0
;
;
;SPARK_SMALL 255 255 128 0 0.005 0.0 255 0 0 0 0 0 0 0.0 1.0 500 0.0 0.05 0.0 0 0 0.5 40
;
;
;
;
;
;
;
; A B C D CV B2 C2 D2 FT E F G H I GA HA IA GZA HZA IZA GZR HZR IZR J K L M N O P Q R S T U V CR Z
;
SPARK 255 128 64 0 0 0 0 0 0.005 0.0 255 0 0 255 0 0 0 0 0 0.0 0 0.0 0 0 0 0 0.001 1 300 0.0 0.07 0.0 0 0 1.0 20.0 48
SPARK_SMALL 255 255 128 0 0 0 0 0 0.005 0.0 255 0 0 255 0 0 0 0 0 0.0 0 0.0 0 0 0 0 0.001 1 500 0.0 0.05 0.0 0 0 0.6 20.0 40
;
WHEEL_DIRT 8 24 8 0 0 0 0 0 0.05 0.0 255 0 0 255 0 0 0 0 0 0.0 0 0.0 0 0 0 0 0.002 1 1000 0.15 0.015 0.0 0 0 1.0 30.0 4
;
;
;WHEEL_WATER 24 24 24 0 0 0 0 0 0.05 0.0 255 0 0 255 0 0 0 0 0 0.0 0 0.0 0 0 0 0 0.002 1 1000 0.15 0.015 0.0 0 0 1.0 20.0 0
WHEEL_WATER 24 24 32 0 0 0 0 0 0.05 0.0 255 0 0 255 0 0 0 0 0 0.0 0 0.0 0 0 0 0 0.004 1 1000 0.15 0.015 0.0 0 0 1.0 20.0 1
;
;
BLOOD 128 128 128 0 0 0 0 0 0.02 0.0 255 0 0 255 0 0 0 0 0 0.0 0 0.0 0 0 0 0 0.03 1 2000 0.3 0.05 0.0 0 0 1.0 50.0 5
BLOOD_SMALL 255 32 32 0 0 0 0 0 0.007 0.0 255 0 0 255 0 0 0 0 0 0.0 0 0.0 0 0 0 0 0.005 1 2000 0.05 0.05 0.0 0 0 1.0 50.0 53
;BLOOD_SPLAT 128 128 128 0 0 0 0 0 0.1 0.0 255 0 0 255 0 0 0 0 0 0.0 0 0.0 0 0 0 0 0.0 1 200 0.3 0.0 0.0 0 0 1.0 400.0 36
BLOOD_SPURT 255 32 32 0 0 0 0 0 0.008 0.0 255 0 0 255 0 0 0 0 0 0.0 0 0.0 0 0 0 0 0.005 1 2000 0.0 0.01 0.0 0 0 2.0 50.0 52
DEBRIS 64 64 64 0 0 0 0 0 0.5 0.0 255 0 0 255 0 0 0 0 0 0.0 0 0.0 0 0 0 0 0.01 95 1000 0.2 0.0 0.0 0 0 1.0 50.0 4
DEBRIS2 64 64 64 0 0 0 0 0 0.04 0.0 255 0 0 255 0 0 0 0 0 0.0 0 0.0 0 0 0 5 0.01 99 1000 0.03 0.04 0.0 0 0 1.0 50.0 38
WATER 64 64 128 0 0 0 0 0 0.01 0.0 255 0 0 255 0 0 0 0 0 0.0 0 0.0 0 0 0 0 0.0 1 2000 0.0 0.0 0.0 0 0 1.0 100.0 0
;
;
;FLAME 255 74 30 0 0 0 0 0 0.2 0.0 255 0 0 255 0 0 0 0 0 0.0 0 0.0 32 0 4 0 0.0 1 100 0.05 0.0 0.0 0 0 1.0 400.0 0
;FLAME 255 74 30 0 0 255 0 400 0.8 -0.02 255 0 10 255 0 0 0 0 0 0.0 0 0.0 0 0 0 0 -0.005 1 2000 0.02 0.01 0.01 0 0 1.0 200.0 0
FLAME 255 74 30 0 0 0 0 0 0.8 -0.02 255 0 10 255 0 0 0 0 0 0.0 0 0.0 0 0 0 0 -0.005 1 2000 0.02 0.01 0.01 0 0 1.0 200.0 0
;
;
;
;FIREBALL 255 74 30 0 0 0 0 0 0.1 0.04 255 1 8 255 0 0 0 0 0 0.0 0 0.0 32 0 7 0 0.0 96 1000 0.1 0.0 0.0 0 0 1.0 400.0 0
;
;FIREBALL 255 74 30 0 0 0 0 0 0.1 0.05 255 0 6 255 0 0 0 0 0 0.0 0 0.0 1 0 7 0 -0.002 96 2000 0.1 0.02 0.02 3 0 1.0 200.0 0
FIREBALL 255 74 30 0 0 0 0 0 0.1 0.02 255 0 6 255 0 0 0 0 0 0.0 0 0.0 0 0 0 0 -0.003 96 2000 0.1 0.03 0.014 2.5 0 1.0 200.0 0
;
;
;
GUNFLASH 170 170 170 0 0 0 0 0 0.1 0.0 255 1 50 255 0 0 0 0 0 0.0 0 0.0 51 0 3 0 0.0 1 250 0.0 0.0 0.0 0 0 1.0 35.0 0
GUNFLASH_NOANIM 128 128 128 0 0 0 0 0 0.1 0.0 255 1 128 255 0 0 0 0 0 0.0 0 0.0 0 0 0 0 0.0 1 25 0.0 0.0 0.0 0 0 1.0 35.0 0
;
GUNSMOKE 64 64 64 0 0 0 0 0 0.15 0.0 255 0 0 255 0 0 0 0 0 0.0 0 0.0 2 0 7 0 -0.002 95 1000 0.0 0.0 0.0 0 0 1.0 60.0 0
GUNSMOKE2 255 255 255 0 0 0 0 0 0.05 0.02 255 0 0 255 0 8 0 0 0 0.0 0 0.0 0 0 3 4 -0.001 80 1400 0.05 0.05 0.01 3 0 1.0 60.0 4
;
;
SMOKE 32 32 32 0 0 0 0 0 0.15 0.015 255 5 25 255 0 0 0 0 0 0.0 0 0.0 32 0 4 0 -0.01 95 1000 0.05 0.05 0.01 3 0 1.0 150.0 0
;SMOKE_SLOWMOTION 32 32 32 0 0 0 0 0 0.15 0.015 255 5 15 255 0 0 0 0 0 0.0 0 0.0 32 0 4 0 -0.003 95 1000 0.05 0.05 0.01 3 0 1.0 400.0 0
SMOKE_SLOWMOTION 32 32 32 0 0 0 0 0 0.15 0.015 128 5 11 255 0 0 0 0 0 0.0 0 0.0 32 0 4 0 -0.003 95 3000 0.05 0.05 0.01 3 0 1.0 150.0 0
;
;
;
;GARAGEPAINT_SPRAY 32 32 32 0 0 0 0 0 0.15 0.015 255 0 5 255 0 0 0 0 0 0.0 0 0.0 0 0 4 0 -0.001 95 2000 0.05 0.05 0.01 3 0 1.0 400.0 0
GARAGEPAINT_SPRAY 32 32 32 0 0 0 0 0 0.15 0.015 255 0 5 255 0 0 0 0 0 0.0 0 0.0 0 0 4 0 -0.0005 95 4000 0.05 0.05 0.01 3 0 1.0 100.0 0
SHARD 255 255 255 0 0 0 0 0 0.03 0.0 255 0 0 255 0 0 0 0 0 0.0 0 0.0 0 0 0 0 0.0 96 300 0.0 0.0 0.0 0 0 1.0 100.0 0
SPLASH 64 64 128 0 0 0 0 0 0.1 0.007 255 1 10 255 0 0 0 0 0 0.0 0 0.0 0 0 0 0 0.0 1 1000 0.0 0.0 0.0 0 0 1.0 100.0 0
;BLOOD_SPLASH 24 64 0 0 0 0 0 0 0.1 0.0 255 0 0 255 0 0 0 0 0 0.0 0 0.0 0 0 0 0 0.0 96 300 0.0 0.0 0.0 0 0 1.0 100.0 0
;
;
;CARFLAME 255 74 30 0 0 0 0 0 0.5 0.04 255 2 20 255 0 0 0 0 0 0.0 0 0.0 32 0 4 0 0.0 1 1000 0.4 0.0 0.0 0 0 1.0 400.0 64
;CARFLAME 255 74 30 0 0 0 0 0 0.8 -0.02 255 0 10 255 0 0 0 0 0 0.0 0 0.0 32 0 4 0 -0.001 1 2000 0.4 0.01 0.01 0 0 1.0 400.0 64
;CARFLAME 255 74 30 0 0 0 0 0 0.8 -0.02 255 0 10 255 0 0 0 0 0 0.0 0 0.0 32 0 4 0 -0.001 1 2000 0.4 0.01 0.01 0 0 1.0 400.0 64
;
CARFLAME 255 74 30 0 0 0 0 0 0.8 -0.02 255 0 10 255 0 0 0 0 0 0.0 0 0.0 0 0 0 0 -0.005 1 2000 0.02 0.01 0.01 0 0 1.0 100.0 0
;
;
STEAM 64 64 64 0 0 0 0 0 0.5 0.05 255 1 16 255 0 0 0 0 0 0.0 0 0.0 32 0 4 0 -0.005 95 2000 0.01 0.03 0.0 0 0 1.0 85.0 0
;
;default:
;STEAM2 255 255 255 0 0 0 0 0 0.5 0.05 255 0 0 128 2 8 0 0 0 0.0 0 0.0 32 0 4 0 -0.005 95 2000 0.01 0.03 0.0 0 0 1.0 400.0 4
STEAM2 255 255 255 0 0 0 0 0 0.5 0.015 255 0 0 192 0 1 0 0 10 0.5 1 0.02 32 0 4 0 -0.002 95 8000 0.01 0.03 0.0 0 0 1.0 85.0 4
;
;
;STEAM_NY 255 255 255 0 0 0 0 0 0.5 0.05 255 0 0 128 2 8 0 0 0 0.0 0 0.0 32 0 4 0 -0.005 95 2000 0.01 0.03 0.0 0 0 1.0 400.0 4
STEAM_NY 255 255 255 0 0 0 0 0 0.5 0.05 255 0 0 96 2 8 0 0 0 0.0 0 0.0 32 0 4 0 -0.005 95 1400 0.01 0.03 0.0 0 0 1.0 85.0 4
STEAM_NY_SLOWMOTION 255 255 255 0 0 0 0 0 0.5 0.05 255 0 0 96 2 8 0 0 0 0.0 0 0.0 32 0 4 0 -0.0015 95 1400 0.01 0.03 0.0 0 0 1.0 85.0 4
;
;
;ENGINE_STEAM 210 210 210 0 0 0 0 0 0.5 0.05 255 0 0 192 2 16 0 0 0 0.0 0 0.0 32 0 4 0 -0.005 95 2000 0.01 0.03 0.0 0 0 1.0 250.0 4
ENGINE_STEAM 210 210 210 0 0 0 0 0 0.5 0.05 255 0 0 192 0 10 0 0 0 0.0 0 0.0 32 0 4 1 -0.005 95 4000 0.03 0.03 0.02 0 0 1.0 85.0 4
;
;
;RAINDROP 32 32 32 0 0 0 0 0 0.6 0.0 255 0 0 255 0 0 0 0 0 0.0 0 0.0 0 0 0 0 0.025 1 1000 0.0 0.0 0.0 0 0 1.0 15.0 1
RAINDROP 64 64 64 0 0 0 0 0 0.4 0.0 255 0 0 255 0 0 0 0 0 0.0 0 0.0 0 0 3 0 0.05 1 1000 0.0 0.0 0.0 0 0 1.0 15.0 1
RAINDROP_SMALL 16 16 16 0 0 0 0 0 0.3 0.0 255 0 0 255 0 0 0 0 0 0.0 0 0.0 0 0 0 0 0.05 1 1000 0.0 0.0 0.0 0 0 1.0 15.0 1
RAIN_SPLASH 32 32 32 0 0 0 0 0 0.08 0.0 255 0 5 255 0 0 0 0 0 0.0 0 0.0 1 0 4 0 0.0 1 500 0.0 0.0 0.0 0 0 1.0 15.0 0
RAIN_SPLASH_BIGGROW 128 128 128 0 0 0 0 0 0.5 0.06 255 0 2 255 0 0 0 0 0 0.0 0 0.0 2 1 4 0 0.0 1 5500 0.0 0.0 0.0 0 0 1.0 15.0 0
RAIN_SPLASHUP 48 48 48 0 0 0 0 0 0.1 0.0 255 0 0 255 0 0 0 0 0 0.0 0 0.0 0 0 1 0 0.0 1 50 0.0 0.0 0.0 0 0 1.0 15.0 0
;
WATERSPRAY 64 64 64 0 0 0 0 0 0.2 0.0 255 0 25 255 0 0 0 0 0 0.0 0 0.0 3 0 2 0 0.002 1 800 0.05 0.0 0.01 0 0 1.0 20.0 0
;
;
;
;EXPLOSION_MEDIUM 80 80 80 0 0 0 0 0 0.6 0.04 255 5 8 255 0 0 0 0 0 0.0 0 0.0 8 0 11 0 0.0 96 15000 0.2 0.0 0.0 3 0 1.0 400.0 0
;EXPLOSION_LARGE 80 80 80 0 0 0 0 0 1.1 0.04 255 5 8 255 0 0 0 0 0 0.0 0 0.0 8 0 11 0 0.0 96 15000 0.8 0.0 0.0 3 0 1.0 400.0 0
;EXPLOSION_MEDIUM 80 80 80 0 0 0 0 0 0.6 0.04 255 1 4 255 0 0 0 0 0 0.0 0 0.0 1 0 11 0 0.0 96 7000 0.2 0.0 0.0 0 0 1.0 400.0 0
;EXPLOSION_LARGE 80 80 80 0 0 0 0 0 1.1 0.04 255 1 4 255 0 0 0 0 0 0.0 0 0.0 1 0 11 0 0.0 96 7000 0.8 0.0 0.0 0 0 1.0 400.0 0
;
;EXPLOSION_MEDIUM 80 80 80 0 0 0 0 0 0.6 0.04 255 0 3 255 0 0 0 0 0 0.0 0 0.0 1 0 11 0 -0.001 96 6000 0.2 0.0 0.0 0 0 1.0 400.0 0
;EXPLOSION_LARGE 80 80 80 0 0 0 0 0 1.1 0.04 255 0 3 255 0 0 0 0 0 0.0 0 0.0 1 0 11 0 -0.001 96 6000 0.8 0.0 0.0 0 0 1.0 400.0 0
EXPLOSION_MEDIUM 80 80 80 0 0 0 0 0 0.6 0.04 255 0 3 255 0 0 0 0 0 0.0 0 0.0 2 0 5 0 -0.001 96 6000 0.2 0.0 0.0 0 0 1.0 200.0 0
EXPLOSION_LARGE 80 80 80 0 0 0 0 0 1.1 0.04 255 0 3 255 0 0 0 0 0 0.0 0 0.0 2 0 5 0 -0.001 96 6000 0.8 0.0 0.0 0 0 1.0 200.0 0
EXPLOSION_MFAST 80 80 80 0 0 0 0 0 0.6 0.04 255 0 6 255 0 0 0 0 0 0.0 0 0.0 2 0 5 0 -0.001 96 3500 0.2 0.0 0.0 0 0 1.0 200.0 0
EXPLOSION_LFAST 80 80 80 0 0 0 0 0 1.1 0.04 255 0 6 255 0 0 0 0 0 0.0 0 0.0 2 0 5 0 -0.001 96 3500 0.8 0.0 0.0 0 0 1.0 200.0 0
;
;
;
;
;BOAT_SPLASH 32 64 32 0 0 0 0 0 0.2 0.2 255 0 0 255 0 0 0 0 0 0.0 0 0.0 0 0 0 0 0.01 1 2000 0.0 0.0 0.0 0 0 1.0 200.0 0
;BOAT_THRUSTJET 24 32 24 0 0 0 0 0 0.5 0.1 255 0 0 255 0 0 0 0 0 0.0 0 0.0 250 0 4 0 0.01 50 1000 0.0 0.0 0.0 0 4 1.0 200.0 8
;BOAT_SPLASH 16 32 32 0 0 0 0 0 0.2 0.2 255 0 0 255 0 0 0 0 0 0.0 0 0.0 0 0 0 0 0.01 1 2000 0.0 0.0 0.0 0 0 1.0 200.0 0
;BOAT_THRUSTJET 8 24 24 0 0 0 0 0 0.5 0.1 255 0 0 255 0 0 0 0 0 0.0 0 0.0 250 0 4 0 0.01 50 1000 0.0 0.0 0.0 0 4 1.0 200.0 8
;CAR_SPLASH 64 64 64 0 0 0 0 0 2.0 0.25 255 0 0 255 0 0 0 0 0 0.0 0 0.0 0 0 0 0 0.02 1 2000 0.0 0.0 0.0 0 0 1.0 250.0 0
;CAR_SPLASH 64 64 64 0 0 0 0 0 2.0 0.25 255 0 0 200 0 8 0 0 0 0.0 0 0.0 0 0 0 0 0.04 1 2000 0.0 0.0 0.0 0 0 1.0 150.0 4
;CAR_SPLASH 64 64 64 0 0 0 0 0 2.0 0.35 255 0 0 200 0 8 0 0 0 0.0 0 0.0 0 0 0 0 0.05 1 2000 0.0 0.0 0.0 0 0 1.0 150.0 4
;CAR_SPLASH 64 64 64 0 0 0 0 0 1.0 0.25 255 0 0 180 0 5 0 0 0 0.0 0 0.0 2 1 3 0 0.05 1 1000 0.0 0.0 0.0 0 0 1.0 150.0 12
;
;
;CAR_SPLASH 64 64 64 0 0 0 0 0 1.0 0.15 255 0 0 180 0 2 0 0 0 0.0 0 0.0 2 0 3 0 0.02 1 2000 0.0 0.0 0.0 0 0 1.0 150.0 12
;CAR_SPLASH 48 48 64 0 0 0 0 0 1.0 0.15 96 0 0 255 0 0 0 0 0 0.0 0 0.0 6 0 2 0 0.01 1 2000 0.5 0.04 0.0 0 0 2.0 150.0 288
;CAR_SPLASH 48 48 64 0 0 0 0 0 1.0 0.05 96 0 0 255 0 0 0 0 0 0.0 0 0.0 0 1 2 0 0.01 1 2000 0.5 0.04 0.0 0 0 2.0 150.0 288
; A B C D CV B2 C2 D2 FT E F G H I GA HA IA GZA HZA IZA GZR HZR IZR J K L M N O P Q R S T U V CR Z
CAR_SPLASH 48 48 60 0 0 0 0 0 1.0 0.00 128 1 4 128 0 0 0 0 0 0.0 0 0.0 0 0 2 0 0.01 1 2000 0.5 0.04 0.0 0 0 1.4 150.0 272
;
;
;
;BOAT_SPLASH 70 70 70 0 0 0 0 0 0.2 0.2 255 0 0 255 0 0 0 0 0 0.0 0 0.0 0 0 0 0 0.01 1 1000 0.0 0.0 0.0 0 0 1.0 150.0 0
BOAT_SPLASH 64 64 64 0 0 0 0 0 0.2 0.2 255 0 2 255 0 0 0 0 0 0.0 0 0.0 0 0 0 0 0.01 1 1000 0.0 0.0 0.0 0 0 1.0 150.0 0
;
;
;BOAT_THRUSTJET 90 90 90 0 0 0 0 0 1.8 0.1 255 0 0 120 0 1 0 0 0 0.0 0 0.0 0 1 4 0 0.01 50 1600 0.8 0.4 0.02 0 4 1.0 150.0 4
BOAT_THRUSTJET 90 90 90 0 0 0 0 0 1.4 0.06 255 0 0 96 0 1 0 0 0 0.0 0 0.0 0 1 4 0 0.01 50 1600 0.8 0.4 0.02 0 4 1.0 150.0 4
;
;
;BOAT_WAKE 255 255 255 0 0 0 0 0 2.0 0.2 255 0 0 128 0 1 0 0 0 0.0 0 0.0 0 0 0 0 0.03 50 1600 0.8 0.4 0.02 0 4 1.0 150.0 4
BOAT_WAKE 255 255 255 0 0 0 0 0 1.5 0.45 255 0 0 192 0 2 0 0 0 0.0 0 0.0 0 0 0 0 0.0 50 1600 0.8 0.4 0.02 0 4 1.0 150.0 4
;
;
;
;
;
; A B C D CV B2 C2 D2 FT E F G H I GA HA IA GZA HZA IZA GZR HZR IZR J K L M N O P Q R S T U V CR Z
WATER_HYDRANT 64 64 64 0 0 0 0 0 0.8 0.01 255 1 16 255 1 16 0 0 0 0.0 0 0.0 0 0 2 0 0.007 99 500 0.02 0.08 0.0 0 4 1.0 85.0 16
WATER_CANNON 64 64 128 0 0 0 0 0 0.03 0.03 255 0 0 255 0 0 0 0 0 0.0 0 0.0 0 0 0 0 0.0 1 1000 0.0 0.0 0.0 0 0 1.0 85.0 0
EXTINGUISH_STEAM 32 32 32 0 0 0 0 0 0.1 0.0 255 0 0 255 0 0 0 0 0 0.0 0 0.0 0 0 0 0 0.0 1 1000 0.0 0.0 0.0 0 0 1.0 85.0 0
;
;
;
;PED_SPLASH 32 32 64 0 0 0 0 0 0.1 0.05 255 0 0 255 0 0 0 0 0 0.0 0 0.0 0 0 0 0 0.0 1 1000 0.0 0.0 0.0 0 0 1.0 85.0 0
PED_SPLASH 48 48 60 0 0 0 0 0 0.1 0.06 96 0 0 255 0 0 0 0 0 0.0 0 0.0 0 1 2 0 0.01 1 2000 0.5 0.04 0.0 0 0 1.4 50.0 256
;
;
PEDFOOT_DUST 170 166 150 0 0 0 0 0 0.01 0.015 255 0 0 63 0 4 0 0 0 0.0 0 0.0 0 0 0 0 -0.0005 1 1000 0.0 0.0 0.0 0 0 1.0 6.0 4
;
HELI_DUST 17 15 9 0 0 0 0 0 0.2 0.1 255 1 8 255 0 0 0 0 0 0.0 0 0.0 0 0 0 0 -0.001 1 1000 0.2 0.05 0.0 0 0 1.0 85.0 0
HELI_ATTACK 255 255 128 0 0 0 0 0 0.01 0.0 255 0 0 255 0 0 0 0 0 0.0 0 0.0 0 0 0 0 0.0 1 500 0.0 0.0 0.0 0 0 0.5 85.0 10
;
;
;ENGINE_SMOKE 16 16 16 0 0 0 0 0 0.5 0.04 255 0 0 63 0 0 0 0 0 0.0 0 0.0 0 0 0 0 -0.005 95 2000 0.01 0.03 0.0 0 0 1.0 150.0 4
;ENGINE_SMOKE2 8 8 8 0 0 0 0 0 1.0 0.2 128 2 4 63 0 0 0 0 0 0.0 0 0.0 0 0 0 0 0.001 1 1000 0.0 0.0 0.0 0 3 1.0 150.0 4
ENGINE_SMOKE 16 16 16 0 0 0 0 0 0.5 0.04 255 0 0 52 0 2 10 0 80 0.0 0 0.0 0 0 5 2 -0.009 95 2000 0.11 0.03 0.01 1 0 1.0 85.0 4
ENGINE_SMOKE2 9 9 9 80 0 0 0 0 1.0 0.06 128 0 1 140 0 5 10 0 80 0.0 0 0.0 0 0 0 2 0.002 1 1300 0.0 0.01 0.0 3 3 1.0 85.0 4
;
;
CARFLAME_SMOKE 32 32 32 0 0 0 0 0 0.05 0.01 255 0 0 64 0 2 0 0 0 0.0 0 0.0 0 0 0 0 -0.008 95 2000 0.01 0.03 0.01 0 0 1.0 85.0 4
FIREBALL_SMOKE 32 32 32 0 0 0 0 0 0.05 0.03 255 0 0 128 0 2 0 0 0 0.0 0 0.0 0 0 0 0 -0.004 95 2000 0.01 0.03 0.01 0 0 1.0 85.0 4
;
PAINT_SMOKE 255 0 0 0 0 0 0 0 0.1 0.01 255 1 8 255 0 0 0 0 0 0.0 0 0.0 0 0 0 0 0.0 95 3000 0.0 0.005 0.0 0 0 1.0 85.0 0
TREE_LEAVES 64 64 64 0 0 0 0 0 0.2 0.0 255 0 0 255 0 0 0 0 0 0.0 0 0.0 0 0 0 0 0.0 1 1000 0.0 0.0 0.0 0 0 1.0 85.0 0
;
;
;CARCOLLISION_DUST 224 224 224 0 0 0 0 0 0.15 0.04 255 0 0 127 1 8 0 0 0 0.0 0 0.0 0 0 0 0 -0.002 90 2000 0.02 0.02 0.0 0 0 1.0 80.0 4
CARCOLLISION_DUST 76 76 76 0 0 0 0 0 0.10 0.02 255 0 0 160 0 4 0 0 0 0.0 0 0.0 0 0 0 0 -0.0015 90 2000 0.02 0.02 0.0 0 0 1.0 30.0 4
;
;
CAR_DEBRIS 32 32 32 0 0 0 0 0 0.5 0.0 224 0 0 255 0 0 0 0 0 0.0 0 0.0 0 0 4 0 0.010 90 1000 0.02 0.02 0.0 0 0 1.0 50.0 4
HELI_DEBRIS 32 32 32 0 0 0 0 0 1.5 0.0 224 0 0 255 0 0 0 0 0 0.0 0 0.0 0 0 4 0 0.065 90 1500 0.02 0.02 0.0 0 0 1.0 150.0 4
;
;
;
;EXHAUST_FUMES 80 80 80 0 0 0 0 0 0.03 0.03 255 0 0 122 0 4 0 0 0 0.0 0 0.0 2 0 4 0 -0.001 95 1500 0.01 0.03 0.0 0 0 1.0 50.0 4
EXHAUST_FUMES 98 98 108 0 0 0 0 0 0.03 0.06 255 0 0 152 0 12 0 0 0 0.0 0 0.0 2 0 4 0 -0.002 96 1000 0.01 0.03 0.0 0 0 1.0 25.0 4
;
;
;RUBBER 40 40 40 0 0 0 0 0 0.4 0.005 255 21 20 255 0 0 0 0 0 0.0 0 0.0 3 0 4 0 -0.0005 1 1000 0.02 0.0 0.0 0 0 1.0 400.0 4
RUBBER_SMOKE 255 255 255 0 0 0 0 0 0.4 0.005 255 0 0 127 1 8 0 0 0 0.0 0 0.0 3 0 4 0 -0.0005 1 1000 0.02 0.0 0.0 0 0 1.0 50.0 4
;BURNINGRUBBER_SMOKE128 128 128 0 0 0 0 0 0.35 0.06 255 0 0 192 1 6 0 0 0 0.0 0 0.0 0 0 0 0 -0.002 90 4000 0.02 0.02 0.0 0 0 1.0 400.0 4
BURNINGRUBBER_SMOKE 128 128 128 0 0 0 0 0 0.35 0.06 255 0 0 128 0 4 0 0 0 0.0 0 0.0 0 0 0 0 -0.002 90 2000 0.02 0.02 0.0 0 0 1.0 50.0 4
;
;
BULLETHIT_SMOKE 192 192 192 0 0 0 0 0 0.15 0.03 70 0 2 255 1 10 0 0 0 0.0 0 0.0 0 0 0 0 -0.001 90 2000 0.04 0.02 0.0 0 0 1.0 150.0 0
;
;
GUNSHELL_FIRST 108 108 108 0 0 0 0 0 0.015 0.0 255 0 0 255 0 0 0 0 0 0.0 0 0.0 0 0 4 0 0.010 90 1000 0.02 0.02 0.0 0 0 1.0 0.0 12292
GUNSHELL 108 108 108 0 0 0 0 0 0.015 0.0 255 0 0 255 0 0 0 0 0 0.0 0 0.0 0 0 4 0 0.010 90 1000 0.02 0.02 0.0 0 0 1.0 12.0 4100
GUNSHELL_BUMP1 108 108 108 0 0 0 0 0 0.015 0.0 255 0 0 255 0 0 0 0 0 0.0 0 0.0 0 0 4 0 0.010 90 1000 0.02 0.02 0.0 0 0 1.0 8.0 4100
GUNSHELL_BUMP2 108 108 108 0 0 0 0 0 0.015 0.0 255 0 0 255 0 0 0 0 0 0.0 0 0.0 0 0 4 0 0.010 90 400 0.02 0.02 0.0 0 0 1.0 8.0 4100
;
;
TEST 255 64 64 0 0 0 0 0 0.2 0.025 255 1 20 255 0 0 0 0 0 0.0 0 0.0 0 0 0 0 0.0 1 3000 0.0 0.0 0.0 0 0 1.0 400.0 128
;
;
;Particles with flag DRAWTOP2D should be placed last and VR (Visibility Range) set to 0!
;
;BIRD_FRONT 8 8 8 0 0 0 0 0 0.05 0.0 255 0 0 255 2 1 0 0 0 0.0 0 0.0 1 0 3 0 0.0 1 10000 0.0 0.0 0.0 0 0 1.0 0.0 3140
BIRD_FRONT 8 8 8 0 0 0 0 0 1.05 0.0 255 0 0 255 2 2 0 0 0 0.0 0 0.0 1 0 3 0 0.0 1 8000 0.0 0.0 0.0 0 0 1.0 0.0 68
;
RAINDROP_2D 32 32 32 0 0 0 0 0 0.5 0.0 255 0 0 255 0 0 0 0 0 0.0 0 0.0 0 1 0 0 0.0 1 1000 0.0 0.0 0.0 0 0 1.0 0.0 3072
;
;
;
;
;
;
;
;
;
;
;
;
; below is just backup of above values:
;
;SPARK 255 128 64 0.005 0.0 255 0 0 0 0 0 0 0.0 1.0 300 0.0 0.07 0.0 0 0 1.0 48
;SPARK_SMALL 255 255 128 0.005 0.0 255 0 0 0 0 0 0 0.0 1.0 500 0.0 0.05 0.0 0 0 0.6 40
;BLOOD 128 128 128 0.02 0.0 255 0 0 0 0 0 0 0.03 1.0 2000 0.3 0.05 0.0 0 0 1.0 6
;BLOOD_SMALL 255 32 32 0.007 0.0 255 0 0 0 0 0 0 0.005 1.0 2000 0.05 0.05 0.0 0 0 1.0 54
;BLOOD_SPLAT 128 128 128 0.1 0.0 255 0 0 0 0 0 0 0.0 1.0 200 0.3 0.0 0.0 0 0 1.0 36
;BLOOD_SPURT 255 32 32 0.008 0.0 255 0 0 0 0 0 0 0.005 1.0 2000 0.0 0.01 0.0 0 0 2.0 52
;DEBRIS 64 64 64 0.5 0.0 255 0 0 0 0 0 0 0.01 0.95 1000 0.2 0.0 0.0 0 0 1.0 4
;DEBRIS2 64 64 64 0.04 0.0 255 0 0 0 0 0 5 0.01 0.99 1000 0.03 0.04 0.0 0 0 1.0 38
;WATER 64 64 128 0.01 0.0 255 0 0 0 0 0 0 0.0 1.0 2000 0.0 0.0 0.0 0 0 1.0 0
;FLAME 255 74 30 0.2 0.0 255 0 0 31 0 5 0 0.0 1.0 100 0.05 0.0 0.0 0 0 1.0 0
;FIREBALL 255 74 30 0.1 0.04 255 0 8 31 0 8 0 0.0 0.96 1000 0.1 0.0 0.0 0 0 1.0 0
;GUNFLASH 255 255 255 0.1 0.0 255 0 50 50 0 3 0 0.0 1.0 250 0.0 0.0 0.0 0 0 1.0 0
;GUNFLASHSTATIC 255 255 255 0.1 0.0 255 0 128 0 0 0 0 0.0 1.0 25 0.0 0.0 0.0 0 0 1.0 0
;SMOKE 32 32 32 0.15 0.015 255 4 25 31 0 5 0 -0.01 0.95 1000 0.05 0.05 0.01 3 0 1.0 0
;SHARD 255 255 255 0.03 0.0 255 0 0 0 0 0 0 0.0 0.96 300 0.0 0.0 0.0 0 0 1.0 0
;SPLASH 64 64 128 0.1 0.007 255 0 10 0 0 0 0 0.0 1.0 1000 0.0 0.0 0.0 0 0 1.0 0
;BLOOD_SPLASH 24 64 0 0.1 0.0 255 0 0 0 0 0 0 0.0 0.96 300 0.0 0.0 0.0 0 0 1.0 0
;RUBBER 40 40 40 0.4 0.005 255 1 25 31 0 5 0 0.0 1.0 1000 0.02 0.0 0.0 0 0 1.0 0
;CARFLAME 255 74 30 0.5 0.04 255 1 20 31 0 5 0 0.0 1.0 1000 0.4 0.0 0.0 0 0 1.0 64
;STEAM 64 64 64 0.5 0.05 255 0 16 31 0 5 0 -0.005 0.95 2000 0.01 0.03 0.0 0 0 1.0 0
;RAINDROP 32 32 32 0.6 0.0 255 0 0 0 0 0 0 0.1 1.0 1000 0.0 0.0 0.0 0 0 1.0 1
;RAIN_SPLASH 32 32 32 0.08 0.0 255 0 0 1 0 4 0 0.0 1.0 1000 0.0 0.0 0.0 0 0 1.0 0
;RAINDROP_SMALL 32 32 32 0.3 0.0 255 0 0 0 0 0 0 0.1 1.0 1000 0.0 0.0 0.0 0 0 1.0 1
;EXPLOSION_MEDIUM 80 80 80 0.6 0.04 255 4 8 7 0 11 0 0.0 0.96 30000 0.2 0.0 0.0 3 0 1.0 0
;EXPLOSION_LARGE 80 80 80 1.1 0.04 255 4 8 7 0 11 0 0.0 0.96 30000 0.8 0.0 0.0 3 0 1.0 0
;BOAT_SPLASH 32 64 32 0.2 0.2 255 0 0 0 0 0 0 0.01 1.0 2000 0.0 0.0 0.0 0 0 1.0 0
;BOAT_THRUSTJET 24 32 24 0.5 0.1 255 0 0 250 0 5 0 0.01 0.5 1000 0.0 0.0 0.0 0 4 1.0 8
;WATER_HYDRANT 64 64 128 0.4 0.01 255 1 2 20 0 5 0 0.007 0.99 500 0.02 0.05 0.0 0 4 1.0 256
;WATER_CANNON 64 64 128 0.03 0.03 255 0 0 0 0 0 0 0.0 1.0 1000 0.0 0.0 0.0 0 0 1.0 0
;EXTINGUISH_STEAM 32 32 32 0.1 0.0 255 0 0 0 0 0 0 0.0 1.0 1000 0.0 0.0 0.0 0 0 1.0 0
;PED_SPLASH 32 32 64 0.1 0.05 255 0 0 0 0 0 0 0.0 1.0 1000 0.0 0.0 0.0 0 0 1.0 0
;HELI_DUST 17 15 9 0.2 0.1 255 0 8 0 0 0 0 -0.001 1.0 1000 0.2 0.05 0.0 0 0 1.0 0
;HELI_ATTACK 255 255 128 0.01 0.0 255 0 0 0 0 0 0 0.0 1.0 500 0.0 0.0 0.0 0 0 0.5 10
;ENGINE_SMOKE 16 16 16 0.5 0.04 255 0 0 0 0 0 0 -0.005 0.95 2000 0.01 0.03 0.0 0 0 1.0 4
;ENGINE_SMOKE2 4 4 4 1.0 0.2 255 1 4 0 0 0 0 0.001 1.0 1000 0.0 0.0 0.0 0 3 1.0 4
;PAINT_SMOKE 255 0 0 0.1 0.01 255 0 8 0 0 0 0 0.0 0.95 3000 0.0 0.005 0.0 0 0 1.0 0
;TREE_LEAVES 64 64 64 0.2 0.0 255 0 0 0 0 0 0 0.0 1.0 1000 0.0 0.0 0.0 0 0 1.0 0
;TEST 255 64 64 0.2 0.05 255 0 16 0 0 0 0 0.0 1.0 3000 0.0 0.0 0.0 0 0 1.0 128
;
;
;the end

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -1,104 +1,104 @@
# Fresnal RO Table
# SUNNY CLOUDY RAINY, FOGGY
0.400000 0.400000 0.400000 0.150000 # Midnight
0.400000 0.400000 0.400000 0.150000 # 1am
0.400000 0.400000 0.400000 0.150000 # 2am
0.400000 0.400000 0.400000 0.150000 # 3am
0.400000 0.400000 0.400000 0.150000 # 4am
0.400000 0.400000 0.400000 0.150000 # 5am
0.400000 0.400000 0.400000 0.150000 # 6am
0.400000 0.400000 0.400000 0.150000 # 7am
0.400000 0.400000 0.400000 0.150000 # 8am
0.400000 0.400000 0.400000 0.150000 # 9am
0.400000 0.400000 0.400000 0.150000 # 10am
0.400000 0.400000 0.400000 0.150000 # 11am
0.400000 0.400000 0.400000 0.150000 # Midday
0.400000 0.400000 0.400000 0.150000 # 1pm
0.400000 0.400000 0.400000 0.150000 # 2pm
0.400000 0.400000 0.400000 0.150000 # 3pm
0.400000 0.400000 0.400000 0.150000 # 4pm
0.400000 0.400000 0.400000 0.150000 # 5pm
0.400000 0.400000 0.400000 0.150000 # 6pm
0.400000 0.400000 0.400000 0.150000 # 7pm
0.400000 0.400000 0.400000 0.150000 # 8pm
0.400000 0.400000 0.400000 0.150000 # 9pm
0.400000 0.400000 0.400000 0.150000 # 10pm
0.400000 0.400000 0.400000 0.150000 # 11pm
# Specular Power Table
# SUNNY CLOUDY RAINY, FOGGY
128.000000 80.000000 30.000000 128.000000 # Midnight
128.000000 80.000000 30.000000 128.000000 # 1am
128.000000 80.000000 30.000000 128.000000 # 2am
128.000000 80.000000 30.000000 128.000000 # 3am
128.000000 80.000000 30.000000 128.000000 # 4am
80.000000 60.000000 30.000000 128.000000 # 5am
80.000000 60.000000 30.000000 128.000000 # 6am
80.000000 60.000000 30.000000 128.000000 # 7am
80.000000 60.000000 30.000000 128.000000 # 8am
80.000000 60.000000 30.000000 128.000000 # 9am
80.000000 60.000000 30.000000 128.000000 # 10am
80.000000 60.000000 30.000000 128.000000 # 11am
80.000000 60.000000 30.000000 128.000000 # Midday
80.000000 60.000000 30.000000 128.000000 # 1pm
80.000000 60.000000 30.000000 128.000000 # 2pm
80.000000 60.000000 30.000000 128.000000 # 3pm
80.000000 60.000000 30.000000 128.000000 # 4pm
128.000000 80.000000 30.000000 128.000000 # 5pm
128.000000 80.000000 30.000000 128.000000 # 6pm
128.000000 80.000000 30.000000 128.000000 # 7pm
128.000000 80.000000 30.000000 128.000000 # 8pm
128.000000 80.000000 30.000000 128.000000 # 9pm
128.000000 80.000000 30.000000 128.000000 # 10pm
128.000000 80.000000 30.000000 128.000000 # 11pm
# Diffuse Colour Modifier Table (Red,Green,Blue,Amount)
# SUNNY CLOUDY RAINY, FOGGY
0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 # Midnight
0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 # 1am
0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 # 2am
0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 # 3am
0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 # 4am
0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 # 5am
0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 # 6am
0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 # 7am
0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 # 8am
0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 # 9am
0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 # 10am
0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 # 11am
0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 # Midday
0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 # 1pm
0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 # 2pm
0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 # 3pm
0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 # 4pm
0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 # 5pm
0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 # 6pm
0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 # 7pm
0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 # 8pm
0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 # 9pm
0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 # 10pm
0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 # 11pm
# Specular Colour Table (Red,Green,Blue,Amount)
# SUNNY CLOUDY RAINY, FOGGY
81, 150, 178, 100 178, 178, 178, 50 178, 178, 178, 75 178, 178, 178, 20 # Midnight
81, 150, 178, 100 178, 178, 178, 50 178, 178, 178, 75 178, 178, 178, 20 # 1am
81, 150, 178, 100 178, 178, 178, 50 178, 178, 178, 75 178, 178, 178, 20 # 2am
81, 150, 178, 100 178, 178, 178, 50 178, 178, 178, 75 178, 178, 178, 20 # 3am
81, 150, 178, 100 178, 178, 178, 50 178, 178, 178, 75 178, 178, 178, 20 # 4am
178, 178, 178, 100 178, 178, 178, 50 178, 178, 178, 75 178, 178, 178, 20 # 5am
178, 178, 178, 100 178, 178, 178, 50 178, 178, 178, 75 178, 178, 178, 20 # 6am
178, 178, 178, 100 178, 178, 178, 50 178, 178, 178, 75 178, 178, 178, 20 # 7am
178, 178, 178, 100 178, 178, 178, 50 178, 178, 178, 75 178, 178, 178, 20 # 8am
178, 178, 178, 100 178, 178, 178, 50 178, 178, 178, 75 178, 178, 178, 20 # 9am
178, 178, 178, 100 178, 178, 178, 50 178, 178, 178, 75 178, 178, 178, 20 # 10am
178, 178, 178, 100 178, 178, 178, 50 178, 178, 178, 75 178, 178, 178, 20 # 11am
178, 178, 178, 100 178, 178, 178, 50 178, 178, 178, 75 178, 178, 178, 20 # Midday
178, 178, 178, 100 178, 178, 178, 50 178, 178, 178, 75 178, 178, 178, 20 # 1pm
178, 178, 178, 100 178, 178, 178, 50 178, 178, 178, 75 178, 178, 178, 20 # 2pm
178, 178, 178, 100 178, 178, 178, 50 178, 178, 178, 75 178, 178, 178, 20 # 3pm
178, 178, 178, 100 178, 178, 178, 50 178, 178, 178, 75 178, 178, 178, 20 # 4pm
178, 178, 178, 100 178, 178, 178, 50 178, 178, 178, 75 178, 178, 178, 20 # 5pm
178, 178, 178, 100 178, 178, 178, 50 178, 178, 178, 75 178, 178, 178, 20 # 6pm
178, 178, 178, 100 178, 178, 178, 50 178, 178, 178, 75 178, 178, 178, 20 # 7pm
178, 178, 178, 100 178, 178, 178, 50 178, 178, 178, 75 178, 178, 178, 20 # 8pm
178, 178, 178, 100 178, 178, 178, 50 178, 178, 178, 75 178, 178, 178, 20 # 9pm
81, 150, 178, 100 178, 178, 178, 50 178, 178, 178, 75 178, 178, 178, 20 # 10pm
81, 150, 178, 100 178, 178, 178, 50 178, 178, 178, 75 178, 178, 178, 20 # 11pm
# Fresnel RO Table
# SUNNY CLOUDY RAINY, FOGGY EXTRASUNNY HURRICANE EXTRACOLOURS
0.4 0.4 0.4 0.4 0.4 0.4 0.4 # Midnight
0.4 0.4 0.4 0.4 0.4 0.4 0.4 # 1am
0.4 0.4 0.4 0.4 0.4 0.4 0.4 # 2am
0.4 0.4 0.4 0.4 0.4 0.4 0.4 # 3am
0.4 0.4 0.4 0.4 0.4 0.4 0.4 # 4am
0.4 0.4 0.4 0.4 0.4 0.4 0.4 # 5am
0.4 0.4 0.4 0.4 0.4 0.4 0.4 # 6am
0.4 0.4 0.4 0.4 0.4 0.4 0.4 # 7am
0.4 0.4 0.4 0.4 0.4 0.4 0.4 # 8am
0.4 0.4 0.4 0.4 0.4 0.4 0.4 # 9am
0.4 0.4 0.4 0.4 0.4 0.4 0.4 # 10am
0.4 0.4 0.4 0.4 0.4 0.4 0.4 # 11am
0.4 0.4 0.4 0.4 0.4 0.4 0.4 # Midday
0.4 0.4 0.4 0.4 0.4 0.4 0.4 # 1pm
0.4 0.4 0.4 0.4 0.4 0.4 0.4 # 2pm
0.4 0.4 0.4 0.4 0.4 0.4 0.4 # 3pm
0.4 0.4 0.4 0.4 0.4 0.4 0.4 # 4pm
0.4 0.4 0.4 0.4 0.4 0.4 0.4 # 5pm
0.4 0.4 0.4 0.4 0.4 0.4 0.4 # 6pm
0.4 0.4 0.4 0.4 0.4 0.4 0.4 # 7pm
0.4 0.4 0.4 0.4 0.4 0.4 0.4 # 8pm
0.4 0.4 0.4 0.4 0.4 0.4 0.4 # 9pm
0.4 0.4 0.4 0.4 0.4 0.4 0.4 # 10pm
0.4 0.4 0.4 0.4 0.4 0.4 0.4 # 11pm
# Specular Power Table (ther higher, the tighter the highlite)
# SUNNY CLOUDY RAINY, FOGGY EXTRASUNNY HURRICANE EXTRACOLOURS
25 15 70 10 15 15 18 # Midnight
25 15 70 10 15 15 18 # 1am
25 15 70 10 15 15 18 # 2am
25 15 70 10 15 15 18 # 3am
25 15 70 10 15 15 18 # 4am
25 15 70 10 15 15 18 # 5am
25 15 70 10 15 15 18 # 6am
25 15 70 10 15 15 18 # 7am
25 15 70 10 15 15 18 # 8am
25 15 70 10 15 15 18 # 9am
25 15 70 10 15 15 18 # 10am
25 15 70 10 15 15 18 # 11am
25 15 70 10 15 15 18 # Midday
25 15 70 10 15 15 18 # 1pm
25 15 70 10 15 15 18 # 2pm
25 15 70 10 15 15 18 # 3pm
25 15 70 10 15 15 18 # 4pm
25 15 70 10 15 15 18 # 5pm
25 15 70 10 15 15 18 # 6pm
25 15 70 10 15 15 18 # 7pm
25 15 70 10 15 15 18 # 8pm
25 15 70 10 15 15 18 # 9pm
25 15 70 10 15 15 18 # 10pm
25 15 70 10 15 15 18 # 11pm
# Diffuse Colour Modifier Table (Red,Green,Blue,Amount)
# SUNNY CLOUDY RAINY, FOGGY EXTRASUNNY HURRICANE EXTRACOLOURS
0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 # Midnight
0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 # 1am
0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 # 2am
0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 # 3am
0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 # 4am
0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 # 5am
0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 # 6am
0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 # 7am
0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 # 8am
0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 # 9am
0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 # 10am
0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 # 11am
0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 # Midday
0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 # 1pm
0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 # 2pm
0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 # 3pm
0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 # 4pm
0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 # 5pm
0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 # 6pm
0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 # 7pm
0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 # 8pm
0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 # 9pm
0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 # 10pm
0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 # 11pm
# Specular Colour Table (Red,Green,Blue,Ignored)
# SUNNY CLOUDY RAINY, FOGGY EXTRASUNNY HURRICANE EXTRACOLOURS
178, 178, 178, 100 140, 140, 150, 50 220, 220, 220, 75 255, 255, 255, 20 178, 178, 178, 100 178, 178, 178, 75 178, 178, 178, 100 # Midnight
178, 178, 178, 100 140, 140, 150, 50 220, 220, 220, 75 255, 255, 255, 20 178, 178, 178, 100 178, 178, 178, 75 178, 178, 178, 100 # 1am
178, 178, 178, 100 140, 140, 150, 50 220, 220, 220, 75 255, 255, 255, 20 178, 178, 178, 100 178, 178, 178, 75 178, 178, 178, 100 # 2am
178, 178, 178, 100 140, 140, 150, 50 220, 220, 220, 75 255, 255, 255, 20 178, 178, 178, 100 178, 178, 178, 75 178, 178, 178, 100 # 3am
178, 178, 178, 100 140, 140, 150, 50 220, 220, 220, 75 255, 255, 255, 20 178, 178, 178, 100 178, 178, 178, 75 178, 178, 178, 100 # 4am
178, 178, 178, 100 140, 140, 150, 50 220, 220, 220, 75 255, 255, 255, 20 178, 178, 178, 100 178, 178, 178, 75 178, 178, 178, 100 # 5am
178, 178, 178, 100 140, 140, 150, 50 220, 220, 220, 75 255, 255, 255, 20 178, 178, 178, 100 178, 178, 178, 75 178, 178, 178, 100 # 6am
178, 178, 178, 100 140, 140, 150, 50 220, 220, 220, 75 255, 255, 255, 20 178, 178, 178, 100 178, 178, 178, 75 178, 178, 178, 100 # 7am
178, 178, 178, 100 140, 140, 150, 50 220, 220, 220, 75 255, 255, 255, 20 178, 178, 178, 100 178, 178, 178, 75 178, 178, 178, 100 # 8am
178, 178, 178, 100 140, 140, 150, 50 220, 220, 220, 75 255, 255, 255, 20 178, 178, 178, 100 178, 178, 178, 75 178, 178, 178, 100 # 9am
178, 178, 178, 100 140, 140, 150, 50 220, 220, 220, 75 255, 255, 255, 20 178, 178, 178, 100 178, 178, 178, 75 178, 178, 178, 100 # 10am
178, 178, 178, 100 140, 140, 150, 50 220, 220, 220, 75 255, 255, 255, 20 178, 178, 178, 100 178, 178, 178, 75 178, 178, 178, 100 # 11am
178, 178, 178, 100 140, 140, 150, 50 220, 220, 220, 75 255, 255, 255, 20 178, 178, 178, 100 178, 178, 178, 75 178, 178, 178, 100 # Midday
178, 178, 178, 100 140, 140, 150, 50 220, 220, 220, 75 255, 255, 255, 20 178, 178, 178, 100 178, 178, 178, 75 178, 178, 178, 100 # 1pm
178, 178, 178, 100 140, 140, 150, 50 220, 220, 220, 75 255, 255, 255, 20 178, 178, 178, 100 178, 178, 178, 75 178, 178, 178, 100 # 2pm
178, 178, 178, 100 140, 140, 150, 50 220, 220, 220, 75 255, 255, 255, 20 178, 178, 178, 100 178, 178, 178, 75 178, 178, 178, 100 # 3pm
178, 178, 178, 100 140, 140, 150, 50 220, 220, 220, 75 255, 255, 255, 20 178, 178, 178, 100 178, 178, 178, 75 178, 178, 178, 100 # 4pm
178, 178, 178, 100 140, 140, 150, 50 220, 220, 220, 75 255, 255, 255, 20 178, 178, 178, 100 178, 178, 178, 75 178, 178, 178, 100 # 5pm
178, 178, 178, 100 140, 140, 150, 50 220, 220, 220, 75 255, 255, 255, 20 178, 178, 178, 100 178, 178, 178, 75 178, 178, 178, 100 # 6pm
178, 178, 178, 100 140, 140, 150, 50 220, 220, 220, 75 255, 255, 255, 20 178, 178, 178, 100 178, 178, 178, 75 178, 178, 178, 100 # 7pm
178, 178, 178, 100 140, 140, 150, 50 220, 220, 220, 75 255, 255, 255, 20 178, 178, 178, 100 178, 178, 178, 75 178, 178, 178, 100 # 8pm
178, 178, 178, 100 140, 140, 150, 50 220, 220, 220, 75 255, 255, 255, 20 178, 178, 178, 100 178, 178, 178, 75 178, 178, 178, 100 # 9pm
178, 178, 178, 100 140, 140, 150, 50 220, 220, 220, 75 255, 255, 255, 20 178, 178, 178, 100 178, 178, 178, 75 178, 178, 178, 100 # 10pm
178, 178, 178, 100 140, 140, 150, 50 220, 220, 220, 75 255, 255, 255, 20 178, 178, 178, 100 178, 178, 178, 75 178, 178, 178, 100 # 11pm

Binary file not shown.

View File

@ -1,130 +1,130 @@
# Ramp Start Table
# SUNNY CLOUDY RAINY, FOGGY
60, 55, 53, 100 60, 55, 53, 100 60, 55, 53, 100 60, 55, 53, 100 # Midnight
60, 55, 53, 100 60, 55, 53, 100 60, 55, 53, 100 60, 55, 53, 100 # 1am
60, 55, 53, 100 60, 55, 53, 100 60, 55, 53, 100 60, 55, 53, 100 # 2am
60, 55, 53, 100 60, 55, 53, 100 60, 55, 53, 100 60, 55, 53, 100 # 3am
60, 55, 53, 100 60, 55, 53, 100 60, 55, 53, 100 60, 55, 53, 100 # 4am
60, 55, 53, 100 60, 55, 53, 100 60, 55, 53, 100 60, 55, 53, 100 # 5am
60, 55, 53, 100 60, 55, 53, 100 60, 55, 53, 100 60, 55, 53, 100 # 6am
60, 55, 53, 100 60, 55, 53, 100 60, 55, 53, 100 60, 55, 53, 100 # 7am
60, 55, 53, 100 60, 55, 53, 100 60, 55, 53, 100 60, 55, 53, 100 # 8am
60, 55, 53, 100 60, 55, 53, 100 60, 55, 53, 100 60, 55, 53, 100 # 9am
60, 55, 53, 100 60, 55, 53, 100 60, 55, 53, 100 60, 55, 53, 100 # 10am
60, 55, 53, 100 60, 55, 53, 100 60, 55, 53, 100 60, 55, 53, 100 # 11am
60, 55, 53, 100 60, 55, 53, 100 60, 55, 53, 100 60, 55, 53, 100 # Midday
60, 55, 53, 100 60, 55, 53, 100 60, 55, 53, 100 60, 55, 53, 100 # 1pm
60, 55, 53, 100 60, 55, 53, 100 60, 55, 53, 100 60, 55, 53, 100 # 2pm
60, 55, 53, 100 60, 55, 53, 100 60, 55, 53, 100 60, 55, 53, 100 # 3pm
60, 55, 53, 100 60, 55, 53, 100 60, 55, 53, 100 60, 55, 53, 100 # 4pm
60, 55, 53, 100 60, 55, 53, 100 60, 55, 53, 100 60, 55, 53, 100 # 5pm
60, 55, 53, 100 60, 55, 53, 100 60, 55, 53, 100 60, 55, 53, 100 # 6pm
60, 55, 53, 100 60, 55, 53, 100 60, 55, 53, 100 60, 55, 53, 100 # 7pm
60, 55, 53, 100 60, 55, 53, 100 60, 55, 53, 100 60, 55, 53, 100 # 8pm
60, 55, 53, 100 60, 55, 53, 100 60, 55, 53, 100 60, 55, 53, 100 # 9pm
60, 55, 53, 100 60, 55, 53, 100 60, 55, 53, 100 60, 55, 53, 100 # 10pm
60, 55, 53, 100 60, 55, 53, 100 60, 55, 53, 100 60, 55, 53, 100 # 11pm
# Ramp End Table
# SUNNY CLOUDY RAINY, FOGGY
190, 171, 167, 100 190, 171, 167, 100 190, 171, 167, 100 190, 171, 167, 100 # Midnight
190, 171, 167, 100 190, 171, 167, 100 190, 171, 167, 100 190, 171, 167, 100 # 1am
190, 171, 167, 100 190, 171, 167, 100 190, 171, 167, 100 190, 171, 167, 100 # 2am
190, 171, 167, 100 190, 171, 167, 100 190, 171, 167, 100 190, 171, 167, 100 # 3am
190, 171, 167, 100 190, 171, 167, 100 190, 171, 167, 100 190, 171, 167, 100 # 4am
255, 230, 224, 100 255, 230, 224, 100 255, 230, 224, 100 255, 230, 224, 100 # 5am
255, 230, 224, 100 255, 230, 224, 100 255, 230, 224, 100 255, 230, 224, 100 # 6am
255, 230, 224, 100 255, 230, 224, 100 255, 230, 224, 100 255, 230, 224, 100 # 7am
255, 230, 224, 100 255, 230, 224, 100 255, 230, 224, 100 255, 230, 224, 100 # 8am
255, 230, 224, 100 255, 230, 224, 100 255, 230, 224, 100 255, 230, 224, 100 # 9am
255, 230, 224, 100 255, 230, 224, 100 255, 230, 224, 100 255, 230, 224, 100 # 10am
255, 230, 224, 100 255, 230, 224, 100 255, 230, 224, 100 255, 230, 224, 100 # 11am
255, 230, 224, 100 255, 230, 224, 100 255, 230, 224, 100 255, 230, 224, 100 # Midday
255, 230, 224, 100 255, 230, 224, 100 255, 230, 224, 100 255, 230, 224, 100 # 1pm
255, 230, 224, 100 255, 230, 224, 100 255, 230, 224, 100 255, 230, 224, 100 # 2pm
255, 230, 224, 100 255, 230, 224, 100 255, 230, 224, 100 255, 230, 224, 100 # 3pm
255, 230, 224, 100 255, 230, 224, 100 255, 230, 224, 100 255, 230, 224, 100 # 4pm
255, 230, 224, 100 255, 230, 224, 100 255, 230, 224, 100 255, 230, 224, 100 # 5pm
255, 230, 224, 100 255, 230, 224, 100 255, 230, 224, 100 255, 230, 224, 100 # 6pm
190, 171, 167, 100 190, 171, 167, 100 190, 171, 167, 100 190, 171, 167, 100 # 7pm
190, 171, 167, 100 190, 171, 167, 100 190, 171, 167, 100 190, 171, 167, 100 # 8pm
190, 171, 167, 100 190, 171, 167, 100 190, 171, 167, 100 190, 171, 167, 100 # 9pm
190, 171, 167, 100 190, 171, 167, 100 190, 171, 167, 100 190, 171, 167, 100 # 10pm
190, 171, 167, 100 190, 171, 167, 100 190, 171, 167, 100 190, 171, 167, 100 # 11pm
# Offset Table
# SUNNY CLOUDY RAINY, FOGGY
0 0 0 0 # Midnight
0 0 0 0 # 1am
0 0 0 0 # 2am
0 0 0 0 # 3am
0 0 0 0 # 4am
0 0 0 0 # 5am
0 0 0 0 # 6am
0 0 0 0 # 7am
0 0 0 0 # 8am
0 0 0 0 # 9am
0 0 0 0 # 10am
0 0 0 0 # 11am
0 0 0 0 # Midday
0 0 0 0 # 1pm
0 0 0 0 # 2pm
0 0 0 0 # 3pm
0 0 0 0 # 4pm
0 0 0 0 # 5pm
0 0 0 0 # 6pm
0 0 0 0 # 7pm
0 0 0 0 # 8pm
0 0 0 0 # 9pm
0 0 0 0 # 10pm
0 0 0 0 # 11pm
# Scale Table
# SUNNY CLOUDY RAINY, FOGGY
1.5 1.5 1.0 1.0 # Midnight
1.5 1.5 1.0 1.0 # 1am
1.5 1.5 1.0 1.0 # 2am
1.5 1.5 1.5 1.5 # 3am
2.0 2.0 2.0 2.0 # 4am
2.0 2.0 2.0 2.0 # 5am
2.0 2.0 2.0 2.0 # 6am
2.5 2.5 2.0 2.0 # 7am
2.5 2.5 2.0 2.0 # 8am
2.5 2.5 2.0 2.0 # 9am
2.5 2.5 2.0 2.0 # 10am
2.5 2.5 2.0 2.0 # 11am
2.5 2.5 2.0 2.0 # Midday
2.5 2.5 2.0 2.0 # 1pm
2.5 2.5 2.0 2.0 # 2pm
2.5 2.5 2.0 2.0 # 3pm
2.5 2.5 2.0 2.0 # 4pm
2.0 2.0 2.0 2.0 # 5pm
2.0 2.0 2.0 2.0 # 6pm
2.0 2.0 2.0 2.0 # 7pm
1.5 1.5 1.5 1.5 # 8pm
1.5 1.5 1.0 1.0 # 9pm
1.5 1.5 1.0 1.0 # 10pm
1.5 1.5 1.0 1.0 # 11pm
# Scaling Table
# SUNNY CLOUDY RAINY, FOGGY
0.2 0.2 0.1 0.1 # Midnight
0.2 0.2 0.1 0.1 # 1am
0.7 0.7 0.2 0.2 # 6am
0.7 0.7 0.2 0.2 # 3am
0.7 0.7 0.2 0.2 # 4am
2.0 2.0 0.3 0.3 # 5am
3.0 3.0 0.3 0.3 # 6am
4.0 4.0 0.3 0.3 # 7am
5.0 5.0 0.3 0.3 # 8am
6.0 6.0 1.3 1.3 # 9am
6.0 6.0 2.0 2.0 # 10am
6.0 6.0 2.0 2.0 # 11am
6.0 6.0 2.0 2.0 # Midday
6.0 6.0 2.0 2.0 # 1pm
6.0 6.0 1.3 1.3 # 6pm
5.0 5.0 0.3 0.3 # 3pm
4.0 4.0 0.3 0.3 # 4pm
3.0 3.0 0.3 0.3 # 5pm
2.0 2.0 0.3 0.3 # 6pm
0.7 0.7 0.2 0.2 # 7pm
0.7 0.7 0.2 0.2 # 8pm
0.7 0.7 0.2 0.2 # 9pm
0.2 0.2 0.1 0.1 # 10pm
0.2 0.2 0.1 0.1 # 11pm
# Ramp Start Table
# SUNNY CLOUDY RAINY, FOGGY EXTRASUNNY HURRICANE EXTRACOLOURS
0, 0, 0, 255 0, 0, 0, 255 0, 0, 0, 255 0, 0, 0, 255 0, 0, 0, 255 0, 0, 0, 255 0, 0, 0, 255 # Midnight
0, 0, 0, 255 0, 0, 0, 255 0, 0, 0, 255 0, 0, 0, 255 0, 0, 0, 255 0, 0, 0, 255 0, 0, 0, 255 # 1am
0, 0, 0, 255 0, 0, 0, 255 0, 0, 0, 255 0, 0, 0, 255 0, 0, 0, 255 0, 0, 0, 255 0, 0, 0, 255 # 2am
0, 0, 0, 255 0, 0, 0, 255 0, 0, 0, 255 0, 0, 0, 255 0, 0, 0, 255 0, 0, 0, 255 0, 0, 0, 255 # 3am
0, 0, 0, 255 0, 0, 0, 255 0, 0, 0, 255 0, 0, 0, 255 0, 0, 0, 255 0, 0, 0, 255 0, 0, 0, 255 # 4am
0, 0, 0, 255 0, 0, 0, 255 0, 0, 0, 255 0, 0, 0, 255 0, 0, 0, 255 0, 0, 0, 255 0, 0, 0, 255 # 5am
0, 0, 0, 255 0, 0, 0, 255 0, 0, 0, 255 0, 0, 0, 255 0, 0, 0, 255 0, 0, 0, 255 0, 0, 0, 255 # 6am
0, 0, 0, 255 0, 0, 0, 255 0, 0, 0, 255 0, 0, 0, 255 0, 0, 0, 255 0, 0, 0, 255 0, 0, 0, 255 # 7am
0, 0, 0, 255 0, 0, 0, 255 0, 0, 0, 255 0, 0, 0, 255 0, 0, 0, 255 0, 0, 0, 255 0, 0, 0, 255 # 8am
0, 0, 0, 255 0, 0, 0, 255 0, 0, 0, 255 0, 0, 0, 255 0, 0, 0, 255 0, 0, 0, 255 0, 0, 0, 255 # 9am
0, 0, 0, 255 0, 0, 0, 255 0, 0, 0, 255 0, 0, 0, 255 0, 0, 0, 255 0, 0, 0, 255 0, 0, 0, 255 # 10am
0, 0, 0, 255 0, 0, 0, 255 0, 0, 0, 255 0, 0, 0, 255 0, 0, 0, 255 0, 0, 0, 255 0, 0, 0, 255 # 11am
0, 0, 0, 255 0, 0, 0, 255 0, 0, 0, 255 0, 0, 0, 255 0, 0, 0, 255 0, 0, 0, 255 0, 0, 0, 255 # Midday
0, 0, 0, 255 0, 0, 0, 255 0, 0, 0, 255 0, 0, 0, 255 0, 0, 0, 255 0, 0, 0, 255 0, 0, 0, 255 # 1pm
0, 0, 0, 255 0, 0, 0, 255 0, 0, 0, 255 0, 0, 0, 255 0, 0, 0, 255 0, 0, 0, 255 0, 0, 0, 255 # 2pm
0, 0, 0, 255 0, 0, 0, 255 0, 0, 0, 255 0, 0, 0, 255 0, 0, 0, 255 0, 0, 0, 255 0, 0, 0, 255 # 3pm
0, 0, 0, 255 0, 0, 0, 255 0, 0, 0, 255 0, 0, 0, 255 0, 0, 0, 255 0, 0, 0, 255 0, 0, 0, 255 # 4pm
0, 0, 0, 255 0, 0, 0, 255 0, 0, 0, 255 0, 0, 0, 255 0, 0, 0, 255 0, 0, 0, 255 0, 0, 0, 255 # 5pm
0, 0, 0, 255 0, 0, 0, 255 0, 0, 0, 255 0, 0, 0, 255 0, 0, 0, 255 0, 0, 0, 255 0, 0, 0, 255 # 6pm
0, 0, 0, 255 0, 0, 0, 255 0, 0, 0, 255 0, 0, 0, 255 0, 0, 0, 255 0, 0, 0, 255 0, 0, 0, 255 # 7pm
0, 0, 0, 255 0, 0, 0, 255 0, 0, 0, 255 0, 0, 0, 255 0, 0, 0, 255 0, 0, 0, 255 0, 0, 0, 255 # 8pm
0, 0, 0, 255 0, 0, 0, 255 0, 0, 0, 255 0, 0, 0, 255 0, 0, 0, 255 0, 0, 0, 255 0, 0, 0, 255 # 9pm
0, 0, 0, 255 0, 0, 0, 255 0, 0, 0, 255 0, 0, 0, 255 0, 0, 0, 255 0, 0, 0, 255 0, 0, 0, 255 # 10pm
0, 0, 0, 255 0, 0, 0, 255 0, 0, 0, 255 0, 0, 0, 255 0, 0, 0, 255 0, 0, 0, 255 0, 0, 0, 255 # 11pm
# Ramp End Table
# SUNNY CLOUDY RAINY, FOGGY EXTRASUNNY HURRICANE EXTRACOLOURS
255, 255, 255, 255 255, 255, 255, 255 255, 255, 255, 255 255, 255, 255, 255 255, 255, 255, 255 255, 255, 255, 255 255, 255, 255, 255 # Midnight
255, 255, 255, 255 255, 255, 255, 255 255, 255, 255, 255 255, 255, 255, 255 255, 255, 255, 255 255, 255, 255, 255 255, 255, 255, 255 # 1am
255, 255, 255, 255 255, 255, 255, 255 255, 255, 255, 255 255, 255, 255, 255 255, 255, 255, 255 255, 255, 255, 255 255, 255, 255, 255 # 2am
255, 255, 255, 255 255, 255, 255, 255 255, 255, 255, 255 255, 255, 255, 255 255, 255, 255, 255 255, 255, 255, 255 255, 255, 255, 255 # 3am
255, 255, 255, 255 255, 255, 255, 255 255, 255, 255, 255 255, 255, 255, 255 255, 255, 255, 255 255, 255, 255, 255 255, 255, 255, 255 # 4am
255, 255, 255, 255 255, 255, 255, 255 255, 255, 255, 255 255, 255, 255, 255 255, 255, 255, 255 255, 255, 255, 255 255, 255, 255, 255 # 5am
255, 255, 255, 255 255, 255, 255, 255 255, 255, 255, 255 255, 255, 255, 255 255, 255, 255, 255 255, 255, 255, 255 255, 255, 255, 255 # 6am
255, 255, 255, 255 255, 255, 255, 255 255, 255, 255, 255 255, 255, 255, 255 255, 255, 255, 255 255, 255, 255, 255 255, 255, 255, 255 # 7am
255, 255, 255, 255 255, 255, 255, 255 255, 255, 255, 255 255, 255, 255, 255 255, 255, 255, 255 255, 255, 255, 255 255, 255, 255, 255 # 8am
255, 255, 255, 255 255, 255, 255, 255 255, 255, 255, 255 255, 255, 255, 255 255, 255, 255, 255 255, 255, 255, 255 255, 255, 255, 255 # 9am
255, 255, 255, 255 255, 255, 255, 255 255, 255, 255, 255 255, 255, 255, 255 255, 255, 255, 255 255, 255, 255, 255 255, 255, 255, 255 # 10am
255, 255, 255, 255 255, 255, 255, 255 255, 255, 255, 255 255, 255, 255, 255 255, 255, 255, 255 255, 255, 255, 255 255, 255, 255, 255 # 11am
255, 255, 255, 255 255, 255, 255, 255 255, 255, 255, 255 255, 255, 255, 255 255, 255, 255, 255 255, 255, 255, 255 255, 255, 255, 255 # Midday
255, 255, 255, 255 255, 255, 255, 255 255, 255, 255, 255 255, 255, 255, 255 255, 255, 255, 255 255, 255, 255, 255 255, 255, 255, 255 # 1pm
255, 255, 255, 255 255, 255, 255, 255 255, 255, 255, 255 255, 255, 255, 255 255, 255, 255, 255 255, 255, 255, 255 255, 255, 255, 255 # 2pm
255, 255, 255, 255 255, 255, 255, 255 255, 255, 255, 255 255, 255, 255, 255 255, 255, 255, 255 255, 255, 255, 255 255, 255, 255, 255 # 3pm
255, 255, 255, 255 255, 255, 255, 255 255, 255, 255, 255 255, 255, 255, 255 255, 255, 255, 255 255, 255, 255, 255 255, 255, 255, 255 # 4pm
255, 255, 255, 255 255, 255, 255, 255 255, 255, 255, 255 255, 255, 255, 255 255, 255, 255, 255 255, 255, 255, 255 255, 255, 255, 255 # 5pm
255, 255, 255, 255 255, 255, 255, 255 255, 255, 255, 255 255, 255, 255, 255 255, 255, 255, 255 255, 255, 255, 255 255, 255, 255, 255 # 6pm
255, 255, 255, 255 255, 255, 255, 255 255, 255, 255, 255 255, 255, 255, 255 255, 255, 255, 255 255, 255, 255, 255 255, 255, 255, 255 # 7pm
255, 255, 255, 255 255, 255, 255, 255 255, 255, 255, 255 255, 255, 255, 255 255, 255, 255, 255 255, 255, 255, 255 255, 255, 255, 255 # 8pm
255, 255, 255, 255 255, 255, 255, 255 255, 255, 255, 255 255, 255, 255, 255 255, 255, 255, 255 255, 255, 255, 255 255, 255, 255, 255 # 9pm
255, 255, 255, 255 255, 255, 255, 255 255, 255, 255, 255 255, 255, 255, 255 255, 255, 255, 255 255, 255, 255, 255 255, 255, 255, 255 # 10pm
255, 255, 255, 255 255, 255, 255, 255 255, 255, 255, 255 255, 255, 255, 255 255, 255, 255, 255 255, 255, 255, 255 255, 255, 255, 255 # 11pm
# Offset Table
# SUNNY CLOUDY RAINY, FOGGY EXTRASUNNY HURRICANE EXTRACOLOURS
0.5 0.5 0.5 0.5 0.5 0.5 0.5 # Midnight
0.5 0.5 0.5 0.5 0.5 0.5 0.5 # 1am
0.5 0.5 0.5 0.5 0.5 0.5 0.5 # 2am
0.5 0.5 0.5 0.5 0.5 0.5 0.5 # 3am
0.5 0.5 0.5 0.5 0.5 0.5 0.5 # 4am
0.5 0.5 0.5 0.5 0.5 0.5 0.5 # 5am
0.5 0.5 0.5 0.5 0.5 0.5 0.5 # 6am
0.5 0.5 0.5 0.5 0.5 0.5 0.5 # 7am
0.5 0.5 0.5 0.5 0.5 0.5 0.5 # 8am
0.5 0.5 0.5 0.5 0.5 0.5 0.5 # 9am
0.5 0.5 0.5 0.5 0.5 0.5 0.5 # 10am
0.5 0.5 0.5 0.5 0.5 0.5 0.5 # 11am
0.5 0.5 0.5 0.5 0.5 0.5 0.5 # Midday
0.5 0.5 0.5 0.5 0.5 0.5 0.5 # 1pm
0.5 0.5 0.5 0.5 0.5 0.5 0.5 # 2pm
0.5 0.5 0.5 0.5 0.5 0.5 0.5 # 3pm
0.5 0.5 0.5 0.5 0.5 0.5 0.5 # 4pm
0.5 0.5 0.5 0.5 0.5 0.5 0.5 # 5pm
0.5 0.5 0.5 0.5 0.5 0.5 0.5 # 6pm
0.5 0.5 0.5 0.5 0.5 0.5 0.5 # 7pm
0.5 0.5 0.5 0.5 0.5 0.5 0.5 # 8pm
0.5 0.5 0.5 0.5 0.5 0.5 0.5 # 9pm
0.5 0.5 0.5 0.5 0.5 0.5 0.5 # 10pm
0.5 0.5 0.5 0.5 0.5 0.5 0.5 # 11pm
# Scale Table (the lentgh of the light band?)
# SUNNY CLOUDY RAINY, FOGGY EXTRASUNNY HURRICANE EXTRACOLOURS
1 0.5 1.5 0.5 1.5 1.5 1.5 # Midnight
1 0.5 1.5 0.5 1.5 1.5 1.5 # 1am
1 0.5 1.5 0.5 1.5 1.5 1.5 # 2am
1 0.5 1.5 0.5 1.5 1.5 1.5 # 3am
1 0.5 1.5 0.5 1.5 1.5 1.5 # 4am
1 0.5 1.5 0.5 1.5 1.5 1.5 # 5am
1 0.5 1.5 0.5 1.5 1.5 1.5 # 6am
1 0.5 1.5 0.5 1.5 1.5 1.5 # 7am
1 0.5 1.5 0.5 1.5 1.5 1.5 # 8am
1 0.5 1.5 0.5 1.5 1.5 1.5 # 9am
1 0.5 1.5 0.5 1.5 1.5 1.5 # 10am
1 0.5 1.5 0.5 1.5 1.5 1.5 # 11am
1 0.5 1.5 0.5 1.5 1.5 1.5 # Midday
1 0.5 1.5 0.5 1.5 1.5 1.5 # 1pm
1 0.5 1.5 0.5 1.5 1.5 1.5 # 2pm
1 0.5 1.5 0.5 1.5 1.5 1.5 # 3pm
1 0.5 1.5 0.5 1.5 1.5 1.5 # 4pm
1 0.5 1.5 0.5 1.5 1.5 1.5 # 5pm
1 0.5 1.5 0.5 1.5 1.5 1.5 # 6pm
1 0.5 1.5 0.5 1.5 1.5 1.5 # 7pm
1 0.5 1.5 0.5 1.5 1.5 1.5 # 8pm
1 0.5 1.5 0.5 1.5 1.5 1.5 # 9pm
1 0.5 1.5 0.5 1.5 1.5 1.5 # 10pm
1 0.5 1.5 0.5 1.5 1.5 1.5 # 11pm
# Scaling Table (how strong the overall effect is)
# SUNNY CLOUDY RAINY, FOGGY EXTRASUNNY HURRICANE EXTRACOLOURS time multiplier
1 0.3 0.5 0.1 1 1 1 # Midnight 0.5
1 0.3 0.5 0.1 1 1 1 # 1am 0.5
1 0.3 0.5 0.1 1 1 1 # 2am 0.5
1 0.3 0.5 0.1 1 1 1 # 3am 0.5
1 0.3 0.5 0.1 1 1 1 # 4am 0.5
1 0.3 0.5 0.1 1 1 1 # 5am 0.5
1 0.3 0.5 0.1 1 1 1 # 6am 0.5
1.2 0.36 0.6 0.12 1.2 1.2 1.2 # 7am 0.6
1.4 0.42 0.7 0.14 1.4 1.4 1.4 # 8am 0.7
1.6 0.48 0.8 0.16 1.6 1.6 1.6 # 9am 0.8
1.8 0.54 0.9 0.18 1.8 1.8 1.8 # 10am 0.9
2 0.6 1 0.2 2 2 2 # 11am 1
2 0.6 1 0.2 2 2 2 # Midday tweaking value
2 0.6 1 0.2 2 2 2 # 1pm 1
2 0.6 1 0.2 2 2 2 # 2pm 1
2.2 0.66 1.1 0.22 2.2 2.2 2.2 # 3pm 1.1
2.2 0.66 1.1 0.22 2.2 2.2 2.2 # 4pm 1.1
2.4 0.72 1.2 0.24 2.4 2.4 2.4 # 5pm 1.2
2.4 0.72 1.2 0.24 2.4 2.4 2.4 # 6pm 1.2
2.2 0.66 1.1 0.22 2.2 2.2 2.2 # 7pm 1.1
2 0.6 1 0.2 2 2 2 # 8pm 1
1.6 0.48 0.8 0.16 1.6 1.6 1.6 # 9pm 0.8
1.2 0.36 0.6 0.12 1.2 1.2 1.2 # 10pm 0.6
1 0.3 0.5 0.1 1 1 1 # 11pm 0.5

View File

@ -1,26 +1,30 @@
# LM blend Table
# SUNNY CLOUDY RAINY FOGGY
0.700000 0.700000 0.700000 0.550000 # Midnight
0.700000 0.700000 0.700000 0.550000 # 1am
0.700000 0.700000 0.700000 0.550000 # 2am
0.700000 0.700000 0.700000 0.550000 # 3am
0.700000 0.700000 0.700000 0.550000 # 4am
0.750000 0.750000 0.700000 0.600000 # 5am
0.800000 0.800000 0.750000 0.600000 # 6am
0.850000 0.850000 0.800000 0.650000 # 7am
0.900000 0.900000 0.800000 0.700000 # 8am
0.950000 0.900000 0.800000 0.700000 # 9am
1.000000 0.900000 0.800000 0.700000 # 10am
1.000000 0.900000 0.800000 0.700000 # 11am
1.000000 0.900000 0.800000 0.700000 # Midday
1.000000 0.900000 0.800000 0.700000 # 1pm
1.000000 0.900000 0.800000 0.700000 # 2pm
0.950000 0.900000 0.800000 0.700000 # 3pm
0.900000 0.900000 0.800000 0.700000 # 4pm
0.850000 0.850000 0.800000 0.650000 # 5pm
0.800000 0.800000 0.750000 0.600000 # 6pm
0.750000 0.750000 0.700000 0.600000 # 7pm
0.700000 0.700000 0.700000 0.550000 # 8pm
0.700000 0.700000 0.700000 0.550000 # 9pm
0.700000 0.700000 0.700000 0.550000 # 10pm
0.700000 0.700000 0.700000 0.550000 # 11pm
# LM blend Table
# SUNNY CLOUDY RAINY, FOGGY EXTRASUNNY HURRICANE EXTRACOLOURS basic daytime ramp
0.45 0.6 0.75 0.525 0.45 0.75 0.375 # Midnight 0.75 0.1
0.48 0.64 0.8 0.56 0.48 0.8 0.4 # 1am 0.8 0.2
0.51 0.68 0.85 0.595 0.51 0.85 0.425 # 2am 0.85 0.3
0.54 0.72 0.9 0.63 0.54 0.9 0.45 # 3am 0.9 0.4
0.57 0.76 0.95 0.665 0.57 0.95 0.475 # 4am 0.95 0.6
0.6 0.8 1 0.7 0.6 1 0.5 # 5am 1 0.8
0.6 0.8 1 0.7 0.6 1 0.5 # 6am 1 1
0.6 0.8 1 0.7 0.6 1 0.5 # 7am 1 1
0.6 0.8 1 0.7 0.6 1 0.5 # 8am 1 1
0.6 0.8 1 0.7 0.6 1 0.5 # 9am 1 1
0.6 0.8 1 0.7 0.6 1 0.5 # 10am 1 1
0.6 0.8 1 0.7 0.6 1 0.5 # 11am 1 1
0.6 0.8 1 0.7 0.6 1 0.5 # Midday 1 tweak here
0.6 0.8 1 0.7 0.6 1 0.5 # 1pm 1 1
0.6 0.8 1 0.7 0.6 1 0.5 # 2pm 1 1
0.6 0.8 1 0.7 0.6 1 0.5 # 3pm 1 1
0.6 0.8 1 0.7 0.6 1 0.5 # 4pm 1 1
0.6 0.8 1 0.7 0.6 1 0.5 # 5pm 1 1
0.6 0.8 1 0.7 0.6 1 0.5 # 6pm 1 0.8
0.57 0.76 0.95 0.665 0.57 0.95 0.475 # 7pm 0.95 0.6
0.54 0.72 0.9 0.63 0.54 0.9 0.45 # 8pm 0.9 0.5
0.51 0.68 0.85 0.595 0.51 0.85 0.425 # 9pm 0.85 0.4
0.48 0.64 0.8 0.56 0.48 0.8 0.4 # 10pm 0.8 0.3
0.45 0.6 0.75 0.525 0.45 0.75 0.375 # 11pm 0.75 0.2

View File

@ -1,477 +1,488 @@
newoption {
trigger = "glfwdir64",
value = "PATH",
description = "Directory of glfw",
default = "vendor/glfw-3.3.2.bin.WIN64",
}
newoption {
trigger = "glfwdir32",
value = "PATH",
description = "Directory of glfw",
default = "vendor/glfw-3.3.2.bin.WIN32",
}
newoption {
trigger = "with-asan",
description = "Build with address sanitizer"
}
newoption {
trigger = "with-librw",
description = "Build and use librw from this solution"
}
newoption {
trigger = "with-opus",
description = "Build with opus"
}
newoption {
trigger = "with-lto",
description = "Build with link time optimization"
}
newoption {
trigger = "no-git-hash",
description = "Don't print git commit hash into binary"
}
newoption {
trigger = "no-full-paths",
description = "Don't print full paths into binary"
}
require("autoconf")
if(_OPTIONS["with-librw"]) then
Librw = "vendor/librw"
else
Librw = os.getenv("LIBRW") or "vendor/librw"
end
function getsys(a)
if a == 'windows' then
return 'win'
end
return a
end
function getarch(a)
if a == 'x86_64' then
return 'amd64'
elseif a == 'ARM' then
return 'arm'
elseif a == 'ARM64' then
return 'arm64'
end
return a
end
workspace "re3"
language "C++"
configurations { "Debug", "Release" }
startproject "re3"
location "build"
symbols "Full"
staticruntime "off"
if _OPTIONS["with-asan"] then
buildoptions { "-fsanitize=address -g3 -fno-omit-frame-pointer" }
linkoptions { "-fsanitize=address" }
end
filter { "system:windows" }
configurations { "Vanilla" }
platforms {
"win-x86-RW33_d3d8-mss",
"win-x86-librw_d3d9-mss",
"win-x86-librw_gl3_glfw-mss",
"win-x86-RW33_d3d8-oal",
"win-x86-librw_d3d9-oal",
"win-x86-librw_gl3_glfw-oal",
"win-amd64-librw_d3d9-oal",
"win-amd64-librw_gl3_glfw-oal",
}
filter { "system:linux" }
platforms {
"linux-x86-librw_gl3_glfw-oal",
"linux-amd64-librw_gl3_glfw-oal",
"linux-arm-librw_gl3_glfw-oal",
"linux-arm64-librw_gl3_glfw-oal",
}
filter { "system:bsd" }
platforms {
"bsd-x86-librw_gl3_glfw-oal",
"bsd-amd64-librw_gl3_glfw-oal",
"bsd-arm-librw_gl3_glfw-oal",
"bsd-arm64-librw_gl3_glfw-oal"
}
filter { "system:macosx" }
platforms {
"macosx-arm64-librw_gl3_glfw-oal",
"macosx-amd64-librw_gl3_glfw-oal",
}
filter "configurations:Debug"
defines { "DEBUG" }
filter "configurations:not Debug"
defines { "NDEBUG" }
optimize "Speed"
if(_OPTIONS["with-lto"]) then
flags { "LinkTimeOptimization" }
end
filter { "platforms:win*" }
system "windows"
filter { "platforms:linux*" }
system "linux"
filter { "platforms:bsd*" }
system "bsd"
filter { "platforms:macosx*" }
system "macosx"
filter { "platforms:*x86*" }
architecture "x86"
filter { "platforms:*amd64*" }
architecture "amd64"
filter { "platforms:*arm*" }
architecture "ARM"
filter { "platforms:macosx-arm64-*", "files:**.cpp"}
buildoptions { "-target", "arm64-apple-macos11", "-std=gnu++14" }
filter { "platforms:macosx-arm64-*", "files:**.c"}
buildoptions { "-target", "arm64-apple-macos11" }
filter { "platforms:macosx-amd64-*", "files:**.cpp"}
buildoptions { "-target", "x86_64-apple-macos10.12", "-std=gnu++14" }
filter { "platforms:macosx-amd64-*", "files:**.c"}
buildoptions { "-target", "x86_64-apple-macos10.12" }
filter { "platforms:*librw_d3d9*" }
defines { "RW_D3D9" }
if(not _OPTIONS["with-librw"]) then
libdirs { path.join(Librw, "lib/win-%{getarch(cfg.architecture)}-d3d9/%{cfg.buildcfg}") }
end
filter "platforms:*librw_gl3_glfw*"
defines { "RW_GL3" }
if(not _OPTIONS["with-librw"]) then
libdirs { path.join(Librw, "lib/%{getsys(cfg.system)}-%{getarch(cfg.architecture)}-gl3/%{cfg.buildcfg}") }
end
filter "platforms:*x86-librw_gl3_glfw*"
includedirs { path.join(_OPTIONS["glfwdir32"], "include") }
filter "platforms:*amd64-librw_gl3_glfw*"
includedirs { path.join(_OPTIONS["glfwdir64"], "include") }
filter {}
function setpaths (gamepath, exepath)
if (gamepath) then
postbuildcommands {
'{COPYFILE} "%{cfg.buildtarget.abspath}" "' .. gamepath .. '%{cfg.buildtarget.name}"'
}
debugdir (gamepath)
if (exepath) then
-- Used VS variable $(TargetFileName) because it doesn't accept premake tokens. Does debugcommand even work outside VS??
debugcommand (gamepath .. "$(TargetFileName)")
dir, file = exepath:match'(.*/)(.*)'
debugdir (gamepath .. (dir or ""))
end
end
end
if(_OPTIONS["with-librw"]) then
project "librw"
kind "StaticLib"
targetname "rw"
targetdir(path.join(Librw, "lib/%{cfg.platform}/%{cfg.buildcfg}"))
files { path.join(Librw, "src/*.*") }
files { path.join(Librw, "src/*/*.*") }
files { path.join(Librw, "src/gl/*/*.*") }
filter { "platforms:*x86*" }
architecture "x86"
filter { "platforms:*amd64*" }
architecture "amd64"
filter "platforms:win*"
defines { "_CRT_SECURE_NO_WARNINGS", "_CRT_NONSTDC_NO_DEPRECATE" }
staticruntime "on"
buildoptions { "/Zc:sizedDealloc-" }
filter "platforms:bsd*"
includedirs { "/usr/local/include" }
libdirs { "/usr/local/lib" }
-- Support MacPorts and Homebrew
filter "platforms:macosx-arm64-*"
includedirs { "/opt/local/include" }
includedirs {"/opt/homebrew/include" }
libdirs { "/opt/local/lib" }
libdirs { "/opt/homebrew/lib" }
filter "platforms:macosx-amd64-*"
includedirs { "/opt/local/include" }
includedirs {"/usr/local/include" }
libdirs { "/opt/local/lib" }
libdirs { "/usr/local/lib" }
filter "platforms:*gl3_glfw*"
staticruntime "off"
filter "platforms:*RW33*"
flags { "ExcludeFromBuild" }
filter {}
end
local function addSrcFiles( prefix )
return prefix .. "/*cpp", prefix .. "/*.h", prefix .. "/*.c", prefix .. "/*.ico", prefix .. "/*.rc"
end
project "re3"
kind "WindowedApp"
targetname "re3"
targetdir "bin/%{cfg.platform}/%{cfg.buildcfg}"
if(_OPTIONS["with-librw"]) then
dependson "librw"
end
files { addSrcFiles("src") }
files { addSrcFiles("src/animation") }
files { addSrcFiles("src/audio") }
files { addSrcFiles("src/audio/eax") }
files { addSrcFiles("src/audio/oal") }
files { addSrcFiles("src/buildings") }
files { addSrcFiles("src/collision") }
files { addSrcFiles("src/control") }
files { addSrcFiles("src/core") }
files { addSrcFiles("src/entities") }
files { addSrcFiles("src/math") }
files { addSrcFiles("src/modelinfo") }
files { addSrcFiles("src/objects") }
files { addSrcFiles("src/peds") }
files { addSrcFiles("src/renderer") }
files { addSrcFiles("src/rw") }
files { addSrcFiles("src/save") }
files { addSrcFiles("src/skel") }
files { addSrcFiles("src/skel/glfw") }
files { addSrcFiles("src/text") }
files { addSrcFiles("src/vehicles") }
files { addSrcFiles("src/weapons") }
files { addSrcFiles("src/extras") }
if(not _OPTIONS["no-git-hash"]) then
files { "src/extras/GitSHA1.cpp" } -- this won't be in repo in first build
else
removefiles { "src/extras/GitSHA1.cpp" } -- but it will be everytime after
end
includedirs { "src" }
includedirs { "src/animation" }
includedirs { "src/audio" }
includedirs { "src/audio/eax" }
includedirs { "src/audio/oal" }
includedirs { "src/buildings" }
includedirs { "src/collision" }
includedirs { "src/control" }
includedirs { "src/core" }
includedirs { "src/entities" }
includedirs { "src/math" }
includedirs { "src/modelinfo" }
includedirs { "src/objects" }
includedirs { "src/peds" }
includedirs { "src/renderer" }
includedirs { "src/rw" }
includedirs { "src/save/" }
includedirs { "src/skel/" }
includedirs { "src/skel/glfw" }
includedirs { "src/text" }
includedirs { "src/vehicles" }
includedirs { "src/weapons" }
includedirs { "src/extras" }
if(not _OPTIONS["no-git-hash"]) then
defines { "USE_OUR_VERSIONING" }
end
if _OPTIONS["with-opus"] then
includedirs { "vendor/ogg/include" }
includedirs { "vendor/opus/include" }
includedirs { "vendor/opusfile/include" }
end
filter "configurations:Vanilla"
defines { "VANILLA_DEFINES" }
filter "platforms:*mss"
defines { "AUDIO_MSS" }
includedirs { "vendor/milessdk/include" }
libdirs { "vendor/milessdk/lib" }
if _OPTIONS["with-opus"] then
filter "platforms:win*"
libdirs { "vendor/ogg/win32/VS2015/Win32/%{cfg.buildcfg}" }
libdirs { "vendor/opus/win32/VS2015/Win32/%{cfg.buildcfg}" }
libdirs { "vendor/opusfile/win32/VS2015/Win32/Release-NoHTTP" }
filter {}
defines { "AUDIO_OPUS" }
end
filter "platforms:*oal"
defines { "AUDIO_OAL" }
filter {}
if(os.getenv("GTA_III_RE_DIR")) then
setpaths(os.getenv("GTA_III_RE_DIR") .. "/", "%(cfg.buildtarget.name)")
end
filter "platforms:win*"
files { addSrcFiles("src/skel/win") }
includedirs { "src/skel/win" }
buildoptions { "/Zc:sizedDealloc-" }
linkoptions "/SAFESEH:NO"
characterset ("MBCS")
targetextension ".exe"
if(_OPTIONS["no-full-paths"]) then
usefullpaths "off"
linkoptions "/PDBALTPATH:%_PDB%"
end
if(_OPTIONS["with-librw"]) then
-- external librw is dynamic
staticruntime "on"
end
if(not _OPTIONS["no-git-hash"]) then
prebuildcommands { '"%{prj.location}..\\printHash.bat" "%{prj.location}..\\src\\extras\\GitSHA1.cpp"' }
end
filter "platforms:not win*"
if(not _OPTIONS["no-git-hash"]) then
prebuildcommands { '"%{prj.location}/../printHash.sh" "%{prj.location}/../src/extras/GitSHA1.cpp"' }
end
filter "platforms:win*glfw*"
staticruntime "off"
filter "platforms:*glfw*"
premake.modules.autoconf.parameters = "-lglfw -lX11"
autoconfigure {
-- iterates all configs and runs on them
["dontWrite"] = function (cfg)
check_symbol_exists(cfg, "haveX11", "glfwGetX11Display", { "X11/Xlib.h", "X11/XKBlib.h", "GLFW/glfw3.h", "GLFW/glfw3native.h" }, "GLFW_EXPOSE_NATIVE_X11")
if cfg.autoconf["haveX11"] ~= nil and cfg.autoconf["haveX11"] == 1 then
table.insert(cfg.links, "X11")
table.insert(cfg.defines, "GET_KEYBOARD_INPUT_FROM_X11")
end
end
}
filter "platforms:win*oal"
includedirs { "vendor/openal-soft/include" }
includedirs { "vendor/libsndfile/include" }
includedirs { "vendor/mpg123/include" }
filter "platforms:win-x86*oal"
libdirs { "vendor/mpg123/lib/Win32" }
libdirs { "vendor/libsndfile/lib/Win32" }
libdirs { "vendor/openal-soft/libs/Win32" }
filter "platforms:win-amd64*oal"
libdirs { "vendor/mpg123/lib/Win64" }
libdirs { "vendor/libsndfile/lib/Win64" }
libdirs { "vendor/openal-soft/libs/Win64" }
filter "platforms:linux*oal"
links { "openal", "mpg123", "sndfile", "pthread" }
filter "platforms:bsd*oal"
links { "openal", "mpg123", "sndfile", "pthread" }
filter "platforms:macosx*oal"
links { "openal", "mpg123", "sndfile", "pthread" }
filter "platforms:macosx-arm64-*oal"
includedirs { "/opt/homebrew/opt/openal-soft/include" }
libdirs { "/opt/homebrew/opt/openal-soft/lib" }
filter "platforms:macosx-amd64-*oal"
includedirs { "/usr/local/opt/openal-soft/include" }
libdirs { "/usr/local/opt/openal-soft/lib" }
if _OPTIONS["with-opus"] then
filter {}
links { "libogg" }
links { "opus" }
links { "opusfile" }
end
filter "platforms:*RW33*"
includedirs { "sdk/rwsdk/include/d3d8" }
libdirs { "sdk/rwsdk/lib/d3d8/release" }
links { "rwcore", "rpworld", "rpmatfx", "rpskin", "rphanim", "rtbmp", "rtquat", "rtcharse", "rpanisot" }
defines { "RWLIBS" }
linkoptions "/SECTION:_rwcseg,ER!W /MERGE:_rwcseg=.text"
filter "platforms:*librw*"
defines { "LIBRW" }
files { addSrcFiles("src/fakerw") }
includedirs { "src/fakerw" }
includedirs { Librw }
if(_OPTIONS["with-librw"]) then
libdirs { "vendor/librw/lib/%{cfg.platform}/%{cfg.buildcfg}" }
end
links { "rw" }
filter "platforms:*d3d9*"
defines { "USE_D3D9" }
links { "d3d9" }
filter "platforms:*x86*d3d*"
includedirs { "sdk/dx8sdk/include" }
libdirs { "sdk/dx8sdk/lib" }
filter "platforms:win-x86*gl3_glfw*"
libdirs { path.join(_OPTIONS["glfwdir32"], "lib-" .. string.gsub(_ACTION or '', "vs", "vc")) }
links { "opengl32", "glfw3" }
filter "platforms:win-amd64*gl3_glfw*"
libdirs { path.join(_OPTIONS["glfwdir64"], "lib-" .. string.gsub(_ACTION or '', "vs", "vc")) }
links { "opengl32", "glfw3" }
filter "platforms:linux*gl3_glfw*"
links { "GL", "glfw" }
filter "platforms:bsd*gl3_glfw*"
links { "GL", "glfw", "sysinfo" }
includedirs { "/usr/local/include" }
libdirs { "/usr/local/lib" }
filter "platforms:macosx-arm64-*gl3_glfw*"
links { "glfw" }
linkoptions { "-framework OpenGL" }
includedirs { "/opt/local/include" }
includedirs {"/opt/homebrew/include" }
libdirs { "/opt/local/lib" }
libdirs { "/opt/homebrew/lib" }
filter "platforms:macosx-amd64-*gl3_glfw*"
links { "glfw" }
linkoptions { "-framework OpenGL" }
includedirs { "/opt/local/include" }
includedirs {"/usr/local/include" }
libdirs { "/opt/local/lib" }
libdirs { "/usr/local/lib" }
newoption {
trigger = "glfwdir64",
value = "PATH",
description = "Directory of glfw",
default = "vendor/glfw-3.3.2.bin.WIN64",
}
newoption {
trigger = "glfwdir32",
value = "PATH",
description = "Directory of glfw",
default = "vendor/glfw-3.3.2.bin.WIN32",
}
newoption {
trigger = "with-asan",
description = "Build with address sanitizer"
}
newoption {
trigger = "with-librw",
description = "Build and use librw from this solution"
}
newoption {
trigger = "with-opus",
description = "Build with opus"
}
newoption {
trigger = "with-lto",
description = "Build with link time optimization"
}
newoption {
trigger = "no-git-hash",
description = "Don't print git commit hash into binary"
}
newoption {
trigger = "no-full-paths",
description = "Don't print full paths into binary"
}
require("autoconf")
if(_OPTIONS["with-librw"]) then
Librw = "vendor/librw"
else
Librw = os.getenv("LIBRW") or "vendor/librw"
end
function getsys(a)
if a == 'windows' then
return 'win'
end
return a
end
function getarch(a)
if a == 'x86_64' then
return 'amd64'
elseif a == 'ARM' then
return 'arm'
elseif a == 'ARM64' then
return 'arm64'
end
return a
end
workspace "reLCS"
language "C++"
configurations { "Debug", "Release" }
startproject "reLCS"
location "build"
symbols "Full"
staticruntime "off"
-- for CVECTORHACK
configuration { "gmake*" }
buildoptions { "-fpermissive" }
filter { "platforms:macosx*" }
buildoptions { "-Wno-address-of-temporary" }
if _OPTIONS["with-asan"] then
buildoptions { "-fsanitize=address -g3 -fno-omit-frame-pointer" }
linkoptions { "-fsanitize=address" }
end
filter { "system:windows" }
configurations { "Vanilla" }
platforms {
"win-x86-RW34_d3d8-mss",
"win-x86-librw_d3d9-mss",
"win-x86-librw_gl3_glfw-mss",
"win-x86-RW34_d3d8-oal",
"win-x86-librw_d3d9-oal",
"win-x86-librw_gl3_glfw-oal",
"win-amd64-librw_d3d9-oal",
"win-amd64-librw_gl3_glfw-oal",
}
filter { "system:linux" }
platforms {
"linux-x86-librw_gl3_glfw-oal",
"linux-amd64-librw_gl3_glfw-oal",
"linux-arm-librw_gl3_glfw-oal",
"linux-arm64-librw_gl3_glfw-oal",
}
filter { "system:bsd" }
platforms {
"bsd-x86-librw_gl3_glfw-oal",
"bsd-amd64-librw_gl3_glfw-oal",
"bsd-arm-librw_gl3_glfw-oal",
"bsd-arm64-librw_gl3_glfw-oal"
}
filter { "system:macosx" }
platforms {
"macosx-arm64-librw_gl3_glfw-oal",
"macosx-amd64-librw_gl3_glfw-oal",
}
filter "configurations:Debug"
defines { "DEBUG" }
filter "configurations:not Debug"
defines { "NDEBUG" }
optimize "Speed"
if(_OPTIONS["with-lto"]) then
flags { "LinkTimeOptimization" }
end
filter { "platforms:win*" }
system "windows"
filter { "platforms:linux*" }
system "linux"
filter { "platforms:bsd*" }
system "bsd"
filter { "platforms:macosx*" }
system "macosx"
filter { "platforms:*x86*" }
architecture "x86"
filter { "platforms:*amd64*" }
architecture "amd64"
filter { "platforms:*arm*" }
architecture "ARM"
filter { "platforms:macosx-arm64-*", "files:**.cpp"}
buildoptions { "-target", "arm64-apple-macos11", "-std=gnu++14" }
filter { "platforms:macosx-arm64-*", "files:**.c"}
buildoptions { "-target", "arm64-apple-macos11" }
filter { "platforms:macosx-amd64-*", "files:**.cpp"}
buildoptions { "-target", "x86_64-apple-macos10.12", "-std=gnu++14" }
filter { "platforms:macosx-amd64-*", "files:**.c"}
buildoptions { "-target", "x86_64-apple-macos10.12" }
filter { "platforms:*librw_d3d9*" }
defines { "RW_D3D9" }
if(not _OPTIONS["with-librw"]) then
libdirs { path.join(Librw, "lib/win-%{getarch(cfg.architecture)}-d3d9/%{cfg.buildcfg}") }
end
filter "platforms:*librw_gl3_glfw*"
defines { "RW_GL3" }
if(not _OPTIONS["with-librw"]) then
libdirs { path.join(Librw, "lib/%{getsys(cfg.system)}-%{getarch(cfg.architecture)}-gl3/%{cfg.buildcfg}") }
end
filter "platforms:*x86-librw_gl3_glfw*"
includedirs { path.join(_OPTIONS["glfwdir32"], "include") }
filter "platforms:*amd64-librw_gl3_glfw*"
includedirs { path.join(_OPTIONS["glfwdir64"], "include") }
filter {}
function setpaths (gamepath, exepath)
if (gamepath) then
postbuildcommands {
'{COPYFILE} "%{cfg.buildtarget.abspath}" "' .. gamepath .. '%{cfg.buildtarget.name}"'
}
debugdir (gamepath)
if (exepath) then
-- Used VS variable $(TargetFileName) because it doesn't accept premake tokens. Does debugcommand even work outside VS??
debugcommand (gamepath .. "$(TargetFileName)")
dir, file = exepath:match'(.*/)(.*)'
debugdir (gamepath .. (dir or ""))
end
end
end
if(_OPTIONS["with-librw"]) then
project "librw"
kind "StaticLib"
targetname "rw"
targetdir(path.join(Librw, "lib/%{cfg.platform}/%{cfg.buildcfg}"))
files { path.join(Librw, "src/*.*") }
files { path.join(Librw, "src/*/*.*") }
files { path.join(Librw, "src/gl/*/*.*") }
filter { "platforms:*x86*" }
architecture "x86"
filter { "platforms:*amd64*" }
architecture "amd64"
filter "platforms:win*"
defines { "_CRT_SECURE_NO_WARNINGS", "_CRT_NONSTDC_NO_DEPRECATE" }
staticruntime "on"
buildoptions { "/Zc:sizedDealloc-" }
filter "platforms:bsd*"
includedirs { "/usr/local/include" }
libdirs { "/usr/local/lib" }
-- Support MacPorts and Homebrew
filter "platforms:macosx-arm64-*"
includedirs { "/opt/local/include" }
includedirs {"/opt/homebrew/include" }
libdirs { "/opt/local/lib" }
libdirs { "/opt/homebrew/lib" }
filter "platforms:macosx-amd64-*"
includedirs { "/opt/local/include" }
includedirs {"/usr/local/include" }
libdirs { "/opt/local/lib" }
libdirs { "/usr/local/lib" }
filter "platforms:*gl3_glfw*"
staticruntime "off"
filter "platforms:*RW34*"
flags { "ExcludeFromBuild" }
filter {}
end
local function addSrcFiles( prefix )
return prefix .. "/*cpp", prefix .. "/*.h", prefix .. "/*.c", prefix .. "/*.ico", prefix .. "/*.rc"
end
project "reLCS"
kind "WindowedApp"
targetname "reLCS"
targetdir "bin/%{cfg.platform}/%{cfg.buildcfg}"
if(_OPTIONS["with-librw"]) then
dependson "librw"
end
files { addSrcFiles("src") }
files { addSrcFiles("src/animation") }
files { addSrcFiles("src/audio") }
files { addSrcFiles("src/audio/eax") }
files { addSrcFiles("src/audio/oal") }
files { addSrcFiles("src/buildings") }
files { addSrcFiles("src/collision") }
files { addSrcFiles("src/control") }
files { addSrcFiles("src/core") }
files { addSrcFiles("src/entities") }
files { addSrcFiles("src/leeds") }
files { addSrcFiles("src/leeds/base") }
files { addSrcFiles("src/math") }
files { addSrcFiles("src/modelinfo") }
files { addSrcFiles("src/objects") }
files { addSrcFiles("src/peds") }
files { addSrcFiles("src/renderer") }
files { addSrcFiles("src/rw") }
files { addSrcFiles("src/save") }
files { addSrcFiles("src/skel") }
files { addSrcFiles("src/skel/glfw") }
files { addSrcFiles("src/text") }
files { addSrcFiles("src/vehicles") }
files { addSrcFiles("src/weapons") }
files { addSrcFiles("src/extras") }
if(not _OPTIONS["no-git-hash"]) then
files { "src/extras/GitSHA1.cpp" } -- this won't be in repo in first build
else
removefiles { "src/extras/GitSHA1.cpp" } -- but it will be everytime after
end
includedirs { "src" }
includedirs { "src/animation" }
includedirs { "src/audio" }
includedirs { "src/audio/eax" }
includedirs { "src/audio/oal" }
includedirs { "src/buildings" }
includedirs { "src/collision" }
includedirs { "src/control" }
includedirs { "src/core" }
includedirs { "src/entities" }
includedirs { "src/leeds" }
includedirs { "src/leeds/base" }
includedirs { "src/math" }
includedirs { "src/modelinfo" }
includedirs { "src/objects" }
includedirs { "src/peds" }
includedirs { "src/renderer" }
includedirs { "src/rw" }
includedirs { "src/save/" }
includedirs { "src/skel/" }
includedirs { "src/skel/glfw" }
includedirs { "src/text" }
includedirs { "src/vehicles" }
includedirs { "src/weapons" }
includedirs { "src/extras" }
if(not _OPTIONS["no-git-hash"]) then
defines { "USE_OUR_VERSIONING" }
end
if _OPTIONS["with-opus"] then
includedirs { "vendor/ogg/include" }
includedirs { "vendor/opus/include" }
includedirs { "vendor/opusfile/include" }
end
filter "configurations:Vanilla"
defines { "VANILLA_DEFINES" }
filter "platforms:*mss"
defines { "AUDIO_MSS" }
includedirs { "vendor/milessdk/include" }
libdirs { "vendor/milessdk/lib" }
if _OPTIONS["with-opus"] then
filter "platforms:win*"
libdirs { "vendor/ogg/win32/VS2015/Win32/%{cfg.buildcfg}" }
libdirs { "vendor/opus/win32/VS2015/Win32/%{cfg.buildcfg}" }
libdirs { "vendor/opusfile/win32/VS2015/Win32/Release-NoHTTP" }
filter {}
defines { "AUDIO_OPUS" }
end
filter "platforms:*oal"
defines { "AUDIO_OAL" }
filter {}
if(os.getenv("GTA_LCS_RE_DIR")) then
setpaths(os.getenv("GTA_LCS_RE_DIR") .. "/", "%(cfg.buildtarget.name)")
end
filter "platforms:win*"
files { addSrcFiles("src/skel/win") }
includedirs { "src/skel/win" }
buildoptions { "/Zc:sizedDealloc-" }
linkoptions "/SAFESEH:NO"
characterset ("MBCS")
targetextension ".exe"
if(_OPTIONS["no-full-paths"]) then
usefullpaths "off"
linkoptions "/PDBALTPATH:%_PDB%"
end
if(_OPTIONS["with-librw"]) then
-- external librw is dynamic
staticruntime "on"
end
if(not _OPTIONS["no-git-hash"]) then
prebuildcommands { '"%{prj.location}..\\printHash.bat" "%{prj.location}..\\src\\extras\\GitSHA1.cpp"' }
end
filter "platforms:not win*"
if(not _OPTIONS["no-git-hash"]) then
prebuildcommands { '"%{prj.location}/../printHash.sh" "%{prj.location}/../src/extras/GitSHA1.cpp"' }
end
filter "platforms:win*glfw*"
staticruntime "off"
filter "platforms:*glfw*"
premake.modules.autoconf.parameters = "-lglfw -lX11"
autoconfigure {
-- iterates all configs and runs on them
["dontWrite"] = function (cfg)
check_symbol_exists(cfg, "haveX11", "glfwGetX11Display", { "X11/Xlib.h", "X11/XKBlib.h", "GLFW/glfw3.h", "GLFW/glfw3native.h" }, "GLFW_EXPOSE_NATIVE_X11")
if cfg.autoconf["haveX11"] ~= nil and cfg.autoconf["haveX11"] == 1 then
table.insert(cfg.links, "X11")
table.insert(cfg.defines, "GET_KEYBOARD_INPUT_FROM_X11")
end
end
}
filter "platforms:win*oal"
includedirs { "vendor/openal-soft/include" }
includedirs { "vendor/libsndfile/include" }
includedirs { "vendor/mpg123/include" }
filter "platforms:win-x86*oal"
libdirs { "vendor/mpg123/lib/Win32" }
libdirs { "vendor/libsndfile/lib/Win32" }
libdirs { "vendor/openal-soft/libs/Win32" }
filter "platforms:win-amd64*oal"
libdirs { "vendor/mpg123/lib/Win64" }
libdirs { "vendor/libsndfile/lib/Win64" }
libdirs { "vendor/openal-soft/libs/Win64" }
filter "platforms:linux*oal"
links { "openal", "mpg123", "sndfile", "pthread" }
filter "platforms:bsd*oal"
links { "openal", "mpg123", "sndfile", "pthread" }
filter "platforms:macosx*oal"
links { "openal", "mpg123", "sndfile", "pthread" }
filter "platforms:macosx-arm64-*oal"
includedirs { "/opt/homebrew/opt/openal-soft/include" }
libdirs { "/opt/homebrew/opt/openal-soft/lib" }
filter "platforms:macosx-amd64-*oal"
includedirs { "/usr/local/opt/openal-soft/include" }
libdirs { "/usr/local/opt/openal-soft/lib" }
if _OPTIONS["with-opus"] then
filter {}
links { "libogg" }
links { "opus" }
links { "opusfile" }
end
filter "platforms:*RW34*"
includedirs { "sdk/rwsdk/include/d3d8" }
libdirs { "sdk/rwsdk/lib/d3d8/release" }
links { "rwcore", "rpworld", "rpmatfx", "rpskin", "rphanim", "rtbmp", "rtquat", "rtanim", "rtcharse", "rpanisot" }
defines { "RWLIBS" }
linkoptions "/SECTION:_rwcseg,ER!W /MERGE:_rwcseg=.text"
filter "platforms:*librw*"
defines { "LIBRW" }
files { addSrcFiles("src/fakerw") }
includedirs { "src/fakerw" }
includedirs { Librw }
if(_OPTIONS["with-librw"]) then
libdirs { "vendor/librw/lib/%{cfg.platform}/%{cfg.buildcfg}" }
end
links { "rw" }
filter "platforms:*d3d9*"
defines { "USE_D3D9" }
links { "d3d9" }
filter "platforms:*x86*d3d*"
includedirs { "sdk/dx8sdk/include" }
libdirs { "sdk/dx8sdk/lib" }
filter "platforms:win-x86*gl3_glfw*"
libdirs { path.join(_OPTIONS["glfwdir32"], "lib-" .. string.gsub(_ACTION or '', "vs", "vc")) }
links { "opengl32", "glfw3" }
filter "platforms:win-amd64*gl3_glfw*"
libdirs { path.join(_OPTIONS["glfwdir64"], "lib-" .. string.gsub(_ACTION or '', "vs", "vc")) }
links { "opengl32", "glfw3" }
filter "platforms:linux*gl3_glfw*"
links { "GL", "glfw" }
filter "platforms:bsd*gl3_glfw*"
links { "GL", "glfw", "sysinfo" }
includedirs { "/usr/local/include" }
libdirs { "/usr/local/lib" }
filter "platforms:macosx-arm64-*gl3_glfw*"
links { "glfw" }
linkoptions { "-framework OpenGL" }
includedirs { "/opt/local/include" }
includedirs {"/opt/homebrew/include" }
libdirs { "/opt/local/lib" }
libdirs { "/opt/homebrew/lib" }
filter "platforms:macosx-amd64-*gl3_glfw*"
links { "glfw" }
linkoptions { "-framework OpenGL" }
includedirs { "/opt/local/include" }
includedirs {"/usr/local/include" }
libdirs { "/opt/local/lib" }
libdirs { "/usr/local/lib" }

View File

@ -7,18 +7,51 @@
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
sodipodi:docname="re3_final.svg"
inkscape:version="1.0.1 (3bc2e813f5, 2020-09-07)"
sodipodi:docname="reVC.svg"
inkscape:version="1.0.1 (3bc2e813f5, 2020-09-07, custom)"
id="svg8"
version="1.1"
viewBox="0 0 270.93331 270.93334"
height="1024"
width="1024"
inkscape:export-filename="/home/hazelnot/Design/re3_red.png"
inkscape:export-filename="/home/hazelnot/Design/re3_final.png"
inkscape:export-xdpi="96"
inkscape:export-ydpi="96">
<defs
id="defs2" />
id="defs2">
<filter
style="color-interpolation-filters:sRGB"
inkscape:label="Drop Shadow"
id="filter1055">
<feFlood
flood-opacity="1"
flood-color="rgb(0,0,0)"
result="flood"
id="feFlood1045" />
<feComposite
in="flood"
in2="SourceGraphic"
operator="in"
result="composite1"
id="feComposite1047" />
<feGaussianBlur
in="composite1"
stdDeviation="0"
result="blur"
id="feGaussianBlur1049" />
<feOffset
dx="1"
dy="1"
result="offset"
id="feOffset1051" />
<feComposite
in="SourceGraphic"
in2="offset"
operator="over"
result="composite2"
id="feComposite1053" />
</filter>
</defs>
<sodipodi:namedview
inkscape:window-maximized="1"
inkscape:window-y="0"
@ -30,10 +63,10 @@
inkscape:pagecheckerboard="false"
showgrid="false"
inkscape:document-rotation="0"
inkscape:current-layer="g837"
inkscape:current-layer="svg8"
inkscape:document-units="mm"
inkscape:cy="544.84615"
inkscape:cx="415.73725"
inkscape:cy="624.20389"
inkscape:cx="108.63858"
inkscape:zoom="0.7"
inkscape:pageshadow="2"
inkscape:pageopacity="0"
@ -61,10 +94,11 @@
</metadata>
<g
id="g837"
transform="matrix(2.1130708,0,0,2.1130708,14.956432,63.50059)">
transform="matrix(2.1130708,0,0,2.1130708,14.956432,63.50059)"
style="display:none">
<path
id="path1450"
style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:1.25;font-family:sans-serif;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-variant-east-asian:normal;font-feature-settings:normal;font-variation-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;shape-margin:0;inline-size:0;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.836;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate;stop-color:#000000;stop-opacity:1"
style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:1.25;font-family:sans-serif;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-variant-east-asian:normal;font-feature-settings:normal;font-variation-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;shape-margin:0;inline-size:0;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.83595;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate;stop-color:#000000;stop-opacity:1"
d="M 0.91799998,0.91799998 V 54.101316 H 17.960888 v 2.33009 c 0,2.95453 1.347497,6.384348 3.911905,8.332308 2.564408,1.947971 5.514112,2.433445 8.500257,2.433445 h 46.367194 v -14.5464 c 2.171993,1.134845 4.548071,1.450557 6.948413,1.450557 h 17.042893 c 2.98614,0 5.93584,-0.485482 8.50025,-2.433442 2.5644,-1.94796 3.91191,-5.377273 3.91191,-8.331793 V 30.964744 c 0,-1.094128 -0.25094,-2.296243 -0.70487,-3.457153 0.45593,-1.16196 0.70487,-2.363609 0.70487,-3.453019 V 11.81656 c 0,-2.9682265 -1.29681,-6.3966108 -3.85713,-8.3907028 -2.56031,-1.9940909 -5.55104,-2.50785722 -8.55503,-2.50785722 H 83.819398 c -3.003989,0 -5.99213,0.51376632 -8.55245,2.50785722 C 74.832145,3.7645045 74.436551,4.1470248 74.074773,4.5591214 73.713016,4.1470532 73.317379,3.7644843 72.8826,3.4258572 70.322288,1.4317663 67.332073,0.91799998 64.328081,0.91799998 H 47.285195 c -2.976748,0 -5.937909,0.51342982 -8.482687,2.46289872 C 36.275393,1.4370808 33.325985,0.91799998 30.37305,0.91799998 Z"
inkscape:label="Border" />
<g
@ -79,10 +113,50 @@
transform="translate(-2.6458322)"
inkscape:label="re" />
<path
style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:1.25;font-family:Pricedown;-inkscape-font-specification:Pricedown;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-variant-east-asian:normal;font-feature-settings:normal;font-variation-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;shape-margin:0;inline-size:0;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#c60000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:11.136;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate;stop-color:#000000;stop-opacity:1"
style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:1.25;font-family:Pricedown;-inkscape-font-specification:Pricedown;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-variant-east-asian:normal;font-feature-settings:normal;font-variation-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;shape-margin:0;inline-size:0;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#c60000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:11.1359;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate;stop-color:#000000;stop-opacity:1"
d="m 135.23613,125.97382 c -4.56245,0 -6.84367,-1.73285 -6.84367,-5.19855 v -7.89654 h 13.68733 v 2.50057 c 0,0.0877 0.0439,0.13161 0.13161,0.13161 h 3.09281 c 0.0877,0 0.13161,-0.0439 0.13161,-0.13161 v -6.11982 c 0,-0.0877 -0.0439,-0.13161 -0.13161,-0.13161 h -16.71434 v -8.35717 h 16.71434 c 0.0877,0 0.13161,-0.0439 0.13161,-0.13161 v -6.054011 c 0,-0.08774 -0.0439,-0.131609 -0.13161,-0.131609 h -3.09281 c -0.0877,0 -0.13161,0.04387 -0.13161,0.131609 v 2.434766 h -13.55572 v -7.764931 c 0,-3.553443 2.28122,-5.330164 6.84366,-5.330164 h 16.91176 c 4.56245,0 6.84367,1.776721 6.84367,5.330164 v 12.239636 c 0,2.01801 -1.14061,3.15862 -3.42184,3.42183 2.28123,0.30709 3.42184,1.46964 3.42184,3.48764 v 12.37125 c 0,3.4657 -2.28122,5.19855 -6.84367,5.19855 z"
id="path1458"
inkscape:label="3" />
</g>
</g>
<g
id="g3625-7"
inkscape:label="reVC_10"
transform="matrix(2.4113736,0,0,2.4113736,-122.44911,-160.08821)">
<path
style="display:inline;fill:#00bbe2;fill-opacity:1;stroke:none;stroke-width:0.264583;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 102.78895,112.11187 54.54276,9.96769 -30.34918,43.22598 z"
id="path1613-9"
sodipodi:nodetypes="cccc"
inkscape:label="triangle" />
<g
id="g3669-0"
style="display:inline;opacity:1"
inkscape:label="re">
<path
style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:1.25;font-family:sans-serif;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-variant-east-asian:normal;font-feature-settings:normal;font-variation-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;shape-margin:0;inline-size:0;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#f17db2;stroke-width:1.60863;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate;stop-color:#000000;stop-opacity:1"
d="m 57.388672,80.632812 v 48.632808 h 17.042969 v 4.60547 c 0,2.45514 1.029322,5.01368 3.011718,6.51953 1.982397,1.50586 4.425056,1.97071 7.123047,1.97071 H 128.6582 v -17.04688 h -1.47851 c 0.87224,-1.37715 1.47851,-2.92106 1.47851,-4.53906 v -7.23633 -3.95312 -20.330081 c 0,-2.481169 -1.00049,-5.053605 -2.98047,-6.595703 -1.97997,-1.542097 -4.44771,-2.027344 -7.15625,-2.027344 h -17.04296 c -2.708546,10e-7 -5.176278,0.485247 -7.156254,2.027344 -0.588908,0.458669 -0.913121,1.140613 -1.328125,1.751953 -0.409812,-0.606749 -0.72664,-1.284534 -1.308594,-1.742187 -1.967878,-1.547555 -4.428385,-2.03711 -7.119141,-2.03711 z m 6.582031,6.583985 h 20.595703 c 1.827819,0 2.757419,0.399739 3.048828,0.628906 0.29141,0.229167 0.4375,0.331111 0.4375,1.410156 v 12.238281 c 0,0.0702 0.0022,0.0438 0.002,0.0801 0.03874,-0.0312 0.06635,0.0114 -0.451172,0.0723 l -0.05469,6.53321 c 0.66816,0.0899 0.752817,0.24295 0.65625,0.14453 -0.09657,-0.0984 -0.08594,-0.3087 -0.08594,0.0801 v 20.07031 c 0,0.59276 0.198598,1.6281 0.996093,2.42578 0.797496,0.79768 1.834701,0.99805 2.427735,0.99805 h 30.53125 v 3.8789 H 84.566406 c -1.864454,0 -2.841799,-0.40191 -3.140625,-0.6289 -0.298826,-0.227 -0.410156,-0.26677 -0.410156,-1.27735 v -24.61132 c 0,-0.59276 -0.200551,-1.6281 -0.998047,-2.42579 -0.797496,-0.79768 -1.832748,-0.99804 -2.425781,-0.99804 h -6.517578 v 16.8457 h -7.103516 z m 37.507817,0 h 17.04296 c 1.8539,0 2.80813,0.402095 3.10938,0.636719 0.30124,0.234623 0.44336,0.33007 0.44336,1.402343 V 106.95508 H 105.0293 v 8.42383 c 0,0.59313 0.20067,1.63031 0.99804,2.42773 0.79738,0.79742 1.83258,0.99609 2.42578,0.99609 h 3.09376 c 0.59313,0 1.62836,-0.19872 2.42578,-0.99609 0.51996,-0.51993 0.73732,-1.1028 0.85937,-1.63672 h 7.24219 v 4.60547 c 0,1.01057 -0.11133,1.05035 -0.41016,1.27734 -0.29882,0.227 -1.27812,0.62891 -3.14258,0.62891 h -17.04296 c -1.864458,0 -2.841803,-0.40191 -3.140629,-0.62891 -0.298826,-0.22699 -0.410157,-0.26677 -0.410157,-1.27734 V 89.255859 c 0,-1.072272 0.140161,-1.167719 0.441407,-1.402343 0.301246,-0.234625 1.255472,-0.636719 3.109379,-0.636719 z M 71.074219,91.162109 V 104.0625 h 6.517578 c 0.592903,0 1.628193,-0.20031 2.425781,-0.99805 0.797588,-0.79773 0.998047,-1.83309 0.998047,-2.42578 v -6.052732 c 0,-0.592528 -0.200189,-1.629881 -0.998047,-2.427735 -0.797858,-0.797853 -1.83326,-0.996094 -2.425781,-0.996094 z m 37.378901,0 c -0.59275,0 -1.62809,0.198598 -2.42578,0.996094 -0.79768,0.797496 -0.99804,1.834701 -0.99804,2.427735 v 9.148442 h 9.9414 v -9.148442 c 0,-0.592903 -0.20031,-1.630147 -0.99804,-2.427735 -0.79774,-0.797588 -1.8331,-0.996094 -2.42578,-0.996094 z"
id="path3671-2"
inkscape:label="outline" />
<path
style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:1.25;font-family:sans-serif;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-variant-east-asian:normal;font-feature-settings:normal;font-variation-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;shape-margin:0;inline-size:0;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:9.53813;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate;stop-color:#000000;stop-opacity:1"
d="m 84.566726,139.06892 c -4.562445,0 -6.843668,-1.73285 -6.843668,-5.19856 v -24.61088 c 0,-0.0877 -0.04387,-0.13161 -0.131609,-0.13161 h -3.22442 v 16.84595 H 60.679694 V 83.92475 h 23.887032 c 4.518575,0 6.777863,1.776721 6.777863,5.330164 v 12.239636 c 0,2.01801 -1.118676,3.15862 -3.356029,3.42183 2.281223,0.30709 3.421834,1.46964 3.421834,3.48764 v 20.07037 c 0,0.0877 0.04387,0.13161 0.131609,0.13161 h 33.823507 v 10.46292 z M 77.723058,94.585079 c 0,-0.08774 -0.04387,-0.131609 -0.131609,-0.131609 h -3.22442 v 6.31723 h 3.22442 c 0.08774,0 0.131609,-0.0439 0.131609,-0.13161 z m 33.955122,0 c 0,-0.08774 -0.0439,-0.131609 -0.13161,-0.131609 h -3.09281 c -0.0877,0 -0.13161,0.04387 -0.13161,0.131609 v 5.856601 h 3.35603 z m -10.1997,31.388741 c -4.562444,0 -6.843666,-1.73285 -6.843666,-5.19855 V 89.254914 c 0,-3.553443 2.281222,-5.330164 6.843666,-5.330164 h 17.04337 c 4.56244,0 6.84366,1.776721 6.84366,5.330164 v 20.991636 h -17.04336 v 5.13275 c 0,0.0877 0.0439,0.13161 0.13161,0.13161 h 3.09281 c 0.0877,0 0.13161,-0.0439 0.13161,-0.13161 v -2.50057 h 13.68733 v 7.89654 c 0,3.4657 -2.28122,5.19855 -6.84366,5.19855 z"
id="path3673-3"
inkscape:label="text" />
</g>
<g
id="g861-9-7"
style="display:inline;fill:#ffffff;fill-opacity:1;stroke:#f17db2;stroke-opacity:1;filter:url(#filter1055)"
transform="matrix(1.3835644,0,0,1.3835644,-22.936608,36.936115)"
inkscape:label="Vc">
<path
style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-variant-east-asian:normal;font-feature-settings:normal;font-variation-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;shape-margin:0;inline-size:0;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#f17db2;stroke-width:3.175;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate;stop-color:#000000;stop-opacity:1"
d="m 115.29478,55.979585 a 1.0583349,1.0583349 0 0 0 -0.94727,0.53711 l -13.61915,24.06445 -1.763667,-7.15234 a 1.0583349,1.0583349 0 0 0 -1.28125,-0.77344 1.0583349,1.0583349 0 0 0 -0.77344,1.28125 l 2.40235,9.73438 a 1.0584408,1.0584408 0 0 0 1.947257,0.26757 l 14.9297,-26.38086 a 1.0583349,1.0583349 0 0 0 -0.39844,-1.4414 1.0583349,1.0583349 0 0 0 -0.49609,-0.13672 z"
id="path892-1-5" />
<path
style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-variant-east-asian:normal;font-feature-settings:normal;font-variation-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;shape-margin:0;inline-size:0;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#f17db2;stroke-width:3.175;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate;stop-color:#000000;stop-opacity:1"
d="m 118.1854,69.604585 a 1.0583349,1.0583349 0 0 0 -0.27343,0.0391 c 0,0 -2.1903,0.59881 -4.46875,2.08789 -2.27846,1.48909 -4.77359,3.96951 -5.16602,7.69531 -0.20107,1.90898 0.49022,3.43086 1.68359,4.15821 1.19338,0.72735 2.6066,0.75222 3.94727,0.60547 2.68134,-0.29351 5.29297,-1.44336 5.29297,-1.44336 a 1.0583349,1.0583349 0 0 0 0.55078,-1.39063 1.0583349,1.0583349 0 0 0 -1.39063,-0.55273 c 0,0 -2.46507,1.04035 -4.68359,1.2832 -1.10926,0.12142 -2.10191,0.002 -2.61523,-0.31055 -0.51333,-0.31286 -0.82729,-0.72566 -0.67969,-2.12695 0.3049,-2.89473 2.23993,-4.85323 4.21875,-6.14648 1.97882,-1.29326 3.87305,-1.82032 3.87305,-1.82032 a 1.0583349,1.0583349 0 0 0 0.73828,-1.30078 1.0583349,1.0583349 0 0 0 -1.02735,-0.77734 z"
id="path896-2-9" />
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 9.2 KiB

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 24 KiB

After

Width:  |  Height:  |  Size: 57 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 18 KiB

After

Width:  |  Height:  |  Size: 30 KiB

View File

@ -112,6 +112,8 @@ if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU" OR CMAKE_CXX_COMPILER_ID STREQUAL "Clang
if (NOT LIBRW_PLATFORM_PS2)
target_compile_options(${EXECUTABLE}
PRIVATE
-fpermissive # for CVECTORHACK
-Wno-address-of-temporary # for CVECTORHACK
-Wextra
-Wdouble-promotion
-Wpedantic
@ -167,4 +169,4 @@ if(${PROJECT}_INSTALL)
endif()
endif()
re3_platform_target(${EXECUTABLE} INSTALL)
reVC_platform_target(${EXECUTABLE} INSTALL)

View File

@ -12,16 +12,21 @@
#include "General.h"
#include "RwHelper.h"
#include "ModelIndices.h"
#include "ModelInfo.h"
#include "AnimManager.h"
#include "RpAnimBlend.h"
#include "AnimBlendAssociation.h"
#include "AnimBlendAssocGroup.h"
#include "KeyGen.h"
CAnimBlendAssocGroup::CAnimBlendAssocGroup(void)
{
animBlock = nil;
assocList = nil;
numAssociations = 0;
firstAnimId = 0;
groupId = -1;
}
CAnimBlendAssocGroup::~CAnimBlendAssocGroup(void)
@ -42,7 +47,7 @@ CAnimBlendAssocGroup::DestroyAssociations(void)
CAnimBlendAssociation*
CAnimBlendAssocGroup::GetAnimation(uint32 id)
{
return &assocList[id];
return &assocList[id - firstAnimId];
}
CAnimBlendAssociation*
@ -52,6 +57,7 @@ CAnimBlendAssocGroup::GetAnimation(const char *name)
for(i = 0; i < numAssociations; i++)
if(!CGeneral::faststricmp(assocList[i].hierarchy->name, name))
return &assocList[i];
debug("\n\nCan't find the fucking animation %s\n\n\n", name);
return nil;
}
@ -101,23 +107,39 @@ strcmpIgnoringDigits(const char *s1, const char *s2)
c2 = __ascii_toupper(c2);
#endif
if(c1 != c2)
if(c1 && c2 && c1 != c2)
return false;
}
}
extern const char* csPlayerNames[];
extern const char* playerNames[];
CBaseModelInfo*
GetModelFromName(const char *name)
{
int i;
CBaseModelInfo *mi;
CBaseModelInfo* mi;
if (CKeyGen::GetUppercaseKey(name) == CKeyGen::GetUppercaseKey("cstoni_a")) {
i = 0;
while (csPlayerNames[i][0] != '\0') {
if (CModelInfo::GetModelInfo(0)->GetNameHashKey() == CKeyGen::GetUppercaseKey(playerNames[i])) {
name = csPlayerNames[i];
break;
}
i++;
}
}
for(i = 0; i < MODELINFOSIZE; i++){
uint32 hashKey = CKeyGen::GetUppercaseKey(name);
for (i = 0; i < CModelInfo::GetNumModelInfos(); i++) {
mi = CModelInfo::GetModelInfo(i);
if(mi && mi->GetRwObject() && RwObjectGetType(mi->GetRwObject()) == rpCLUMP &&
strcmpIgnoringDigits(mi->GetModelName(), name))
if (mi && mi->GetRwObject()
&& RwObjectGetType(mi->GetRwObject()) == rpCLUMP &&
hashKey == mi->GetNameHashKey())
return mi;
}
return nil;
}
@ -127,8 +149,7 @@ CAnimBlendAssocGroup::CreateAssociations(const char *name)
int i;
CAnimBlock *animBlock;
if(assocList)
DestroyAssociations();
DestroyAssociations();
animBlock = CAnimManager::GetAnimationBlock(name);
assocList = new CAnimBlendAssociation[animBlock->numAnims];
@ -137,17 +158,18 @@ CAnimBlendAssocGroup::CreateAssociations(const char *name)
for(i = 0; i < animBlock->numAnims; i++){
CAnimBlendHierarchy *anim = CAnimManager::GetAnimation(animBlock->firstIndex + i);
CBaseModelInfo *model = GetModelFromName(anim->name);
assert(model);
printf("Associated anim %s with model %s\n", anim->name, model->GetModelName());
RpClump *clump = (RpClump*)model->CreateInstance();
#ifdef PED_SKIN
if(IsClumpSkinned(clump))
RpClumpForAllAtomics(clump, AtomicRemoveAnimFromSkinCB, nil);
#endif
RpAnimBlendClumpInit(clump);
assocList[i].Init(clump, anim);
RpClumpDestroy(clump);
assocList[i].animId = i;
if(model){
debug("Associated anim %s with model %s\n", anim->name, model->GetModelName());
RpClump *clump = (RpClump*)model->CreateInstance();
RpAnimBlendClumpInit(clump);
assocList[i].Init(clump, anim);
if(IsClumpSkinned(clump))
RpClumpForAllAtomics(clump, AtomicRemoveAnimFromSkinCB, nil);
RpClumpDestroy(clump);
assocList[i].animId = firstAnimId + i;
assocList[i].groupId = groupId;
}else
debug("\n\nCANNOT FIND MODELINFO WITH NAME %s\n\n\n", anim->name);
}
numAssociations = animBlock->numAnims;
}
@ -157,10 +179,8 @@ void
CAnimBlendAssocGroup::CreateAssociations(const char *blockName, RpClump *clump, const char **animNames, int numAssocs)
{
int i;
CAnimBlock *animBlock;
if(assocList)
DestroyAssociations();
DestroyAssociations();
animBlock = CAnimManager::GetAnimationBlock(blockName);
assocList = new CAnimBlendAssociation[numAssocs];
@ -168,7 +188,50 @@ CAnimBlendAssocGroup::CreateAssociations(const char *blockName, RpClump *clump,
numAssociations = 0;
for(i = 0; i < numAssocs; i++){
assocList[i].Init(clump, CAnimManager::GetAnimation(animNames[i], animBlock));
assocList[i].animId = i;
assocList[i].animId = firstAnimId + i;
assocList[i].groupId = groupId;
}
numAssociations = numAssocs;
}
void
CAnimBlendAssocGroup::CreateAssociations(const char *blockName, const char *animNames, const char *objectNames, int numChars)
{
if (!objectNames) {
CreateAssociations(blockName);
return;
}
if (assocList)
DestroyAssociations();
animBlock = CAnimManager::GetAnimationBlock(blockName);
assocList = new CAnimBlendAssociation[animBlock->numAnims];
numAssociations = 0;
if (animBlock->numAnims > 0)
{
int i, j;
for (i = 0; i < animBlock->numAnims; i++) {
int animId = -1;
for (j = 0; j != animBlock->numAnims; j++)
if (strcmp(CAnimManager::GetAnimation(i + animBlock->firstIndex)->name, animNames + numChars * j) == 0)
animId = j;
if (animId != -1) {
CBaseModelInfo* minfo = GetModelFromName(objectNames + numChars * animId);
if (minfo)
{
RpClump* clump = (RpClump*)minfo->CreateInstance();
RpAnimBlendClumpInit(clump);
assocList[numAssociations].Init(clump, CAnimManager::GetAnimation(i + animBlock->firstIndex));
if (IsClumpSkinned(clump))
RpClumpForAllAtomics(clump, AtomicRemoveAnimFromSkinCB, nil);
RpClumpDestroy(clump);
assocList[numAssociations].animId = i + numAssociations;
assocList[numAssociations++].groupId = groupId;
}
}
}
}
}

View File

@ -1,12 +1,16 @@
#pragma once
class CAnimBlendAssociation;
struct CAnimBlock;
class CAnimBlendAssocGroup
{
public:
CAnimBlock *animBlock;
CAnimBlendAssociation *assocList;
int32 numAssociations;
int32 firstAnimId;
int32 groupId; // id of self in ms_aAnimAssocGroups
CAnimBlendAssocGroup(void);
~CAnimBlendAssocGroup(void);
@ -17,4 +21,5 @@ public:
CAnimBlendAssociation *CopyAnimation(const char *name);
void CreateAssociations(const char *name);
void CreateAssociations(const char *blockName, RpClump *clump, const char **animNames, int numAssocs);
void CreateAssociations(const char *blockName, const char *animNames, const char *objectNames, int numChars);
};

View File

@ -9,6 +9,7 @@
CAnimBlendAssociation::CAnimBlendAssociation(void)
{
groupId = -1;
nodes = nil;
blendAmount = 1.0f;
blendDelta = 0.0f;
@ -54,8 +55,8 @@ CAnimBlendAssociation::AllocateAnimBlendNodeArray(int n)
void
CAnimBlendAssociation::FreeAnimBlendNodeArray(void)
{
assert(nodes != nil);
RwFreeAlign(nodes);
if(nodes)
RwFreeAlign(nodes);
}
void
@ -75,7 +76,10 @@ CAnimBlendAssociation::Init(RpClump *clump, CAnimBlendHierarchy *hier)
// NB: This is where the order of nodes is defined
for(i = 0; i < hier->numSequences; i++){
CAnimBlendSequence *seq = &hier->sequences[i];
frame = RpAnimBlendClumpFindFrame(clump, seq->name);
if(seq->boneTag == -1)
frame = RpAnimBlendClumpFindFrame(clump, seq->name);
else
frame = RpAnimBlendClumpFindBone(clump, seq->boneTag);
if(frame && seq->numFrames > 0)
nodes[frame - clumpData->frames].sequence = seq;
}
@ -90,6 +94,7 @@ CAnimBlendAssociation::Init(CAnimBlendAssociation &assoc)
numNodes = assoc.numNodes;
flags = assoc.flags;
animId = assoc.animId;
groupId = assoc.groupId;
AllocateAnimBlendNodeArray(numNodes);
for(i = 0; i < numNodes; i++){
nodes[i] = assoc.nodes[i];
@ -126,12 +131,25 @@ CAnimBlendAssociation::SetCurrentTime(float time)
int i;
for(currentTime = time; currentTime >= hierarchy->totalLength; currentTime -= hierarchy->totalLength)
if(!IsRepeating())
return;
if (!IsRepeating()) {
currentTime = hierarchy->totalLength;
break;
}
CAnimManager::UncompressAnimation(hierarchy);
for(i = 0; i < numNodes; i++)
if(nodes[i].sequence)
nodes[i].FindKeyFrame(currentTime);
#ifdef ANIM_COMPRESSION
// strangely PC has this but android doesn't
if(hierarchy->keepCompressed){
for(i = 0; i < numNodes; i++)
if(nodes[i].sequence)
nodes[i].SetupKeyFrameCompressed();
}else
#endif
{
for(i = 0; i < numNodes; i++)
if(nodes[i].sequence)
nodes[i].FindKeyFrame(currentTime);
}
}
void
@ -147,13 +165,23 @@ CAnimBlendAssociation::Start(float time)
SetCurrentTime(time);
}
void
CAnimBlendAssociation::UpdateTimeStep(float timeDelta, float relSpeed)
{
if(IsRunning())
timeStep = (flags & ASSOC_MOVEMENT ? relSpeed*hierarchy->totalLength : speed) * timeDelta;
}
bool
CAnimBlendAssociation::UpdateTime(float timeDelta, float relSpeed)
{
if(!IsRunning())
return true;
if(currentTime >= hierarchy->totalLength){
flags &= ~ASSOC_RUNNING;
return true;
}
timeStep = (flags & ASSOC_MOVEMENT ? relSpeed*hierarchy->totalLength : speed) * timeDelta;
currentTime += timeStep;
if(currentTime >= hierarchy->totalLength){
@ -163,7 +191,6 @@ CAnimBlendAssociation::UpdateTime(float timeDelta, float relSpeed)
currentTime -= hierarchy->totalLength;
else{
currentTime = hierarchy->totalLength;
flags &= ~ASSOC_RUNNING;
if(flags & ASSOC_FADEOUTWHENDONE){
flags |= ASSOC_DELETEFADEDOUT;
blendDelta = -4.0f;
@ -203,3 +230,9 @@ CAnimBlendAssociation::UpdateBlend(float timeDelta)
return true;
}
void
CAnimBlendAssociation::Remove()
{
delete this;
}

View File

@ -12,12 +12,13 @@ enum {
ASSOC_PARTIAL = 0x10,
ASSOC_MOVEMENT = 0x20, // ???
ASSOC_HAS_TRANSLATION = 0x40,
ASSOC_WALK = 0x80, // for CPed::PlayFootSteps(void)
ASSOC_IDLE = 0x100, // only used by xpress scratch, see CPed::Chat(void)
ASSOC_NOWALK = 0x200, // see CPed::PlayFootSteps(void)
ASSOC_BLOCK = 0x400, // unused in assoc description, blocks other anims from being played
ASSOC_FRONTAL = 0x800, // anims that we fall to front
ASSOC_HAS_X_TRANSLATION = 0x1000, // for 2d velocity extraction
ASSOC_HAS_X_TRANSLATION = 0x80, // for 2d velocity extraction
ASSOC_WALK = 0x100, // for CPed::PlayFootSteps(void)
ASSOC_IDLE = 0x200, // only xpress scratch has it by default, but game adds it to player's idle animations later
ASSOC_NOWALK = 0x400, // see CPed::PlayFootSteps(void)
ASSOC_BLOCK = 0x800, // unused in assoc description, blocks other anims from being played
ASSOC_FRONTAL = 0x1000, // anims that we fall to front
ASSOC_DRIVING = 0x2000, // new in VC
};
// Anim hierarchy associated with a clump
@ -35,7 +36,8 @@ public:
CAnimBlendLink link;
int32 numNodes; // taken from CAnimBlendClumpData::numFrames
int16 numNodes; // taken from CAnimBlendClumpData::numFrames
int16 groupId; // ID of CAnimBlendAssocGroup this is in
// NB: Order of these depends on order of nodes in Clump this was built from
CAnimBlendNode *nodes;
CAnimBlendHierarchy *hierarchy;
@ -44,8 +46,8 @@ public:
float currentTime;
float speed;
float timeStep;
int32 animId;
int32 flags;
int16 animId;
int16 flags;
int32 callbackType;
void (*callback)(CAnimBlendAssociation*, void*);
void *callbackArg;
@ -76,16 +78,17 @@ public:
void SetCurrentTime(float time);
void SyncAnimation(CAnimBlendAssociation *other);
void Start(float time);
void UpdateTimeStep(float timeDelta, float relSpeed);
bool UpdateTime(float timeDelta, float relSpeed);
bool UpdateBlend(float timeDelta);
void Remove();
void SetRun(void) { flags |= ASSOC_RUNNING; }
inline float GetTimeLeft() { return hierarchy->totalLength - currentTime; }
float GetTimeLeft() { return hierarchy->totalLength - currentTime; }
float GetProgress() { return currentTime / hierarchy->totalLength; }
static CAnimBlendAssociation *FromLink(CAnimBlendLink *l) {
return (CAnimBlendAssociation*)((uint8*)l - offsetof(CAnimBlendAssociation, link));
}
};
VALIDATE_SIZE(CAnimBlendAssociation, 0x40);

View File

@ -10,23 +10,19 @@ struct AnimBlendFrameData
IGNORE_TRANSLATION = 4,
VELOCITY_EXTRACTION = 8,
VELOCITY_EXTRACTION_3D = 0x10,
UPDATE_KEYFRAMES = 0x20,
COMPRESSED = 0x40
};
uint8 flag;
RwV3d resetPos;
#ifdef PED_SKIN
union {
RwFrame *frame;
RpHAnimStdInterpFrame *hanimFrame;
};
int32 nodeID;
#else
RwFrame *frame;
#endif
};
#ifndef PED_SKIN
VALIDATE_SIZE(AnimBlendFrameData, 0x14);
#endif
VALIDATE_SIZE(AnimBlendFrameData, 0x18);
class CAnimBlendClumpData
@ -34,9 +30,6 @@ class CAnimBlendClumpData
public:
CAnimBlendLink link;
int32 numFrames;
#ifdef PED_SKIN
int32 modelNumber; // doesn't seem to be used
#endif
union {
CVector2D *velocity2d;
CVector *velocity3d;
@ -47,11 +40,6 @@ public:
CAnimBlendClumpData(void);
~CAnimBlendClumpData(void);
void SetNumberOfFrames(int n);
#ifdef PED_SKIN
void SetNumberOfBones(int n) { SetNumberOfFrames(n); }
#endif
void ForAllFrames(void (*cb)(AnimBlendFrameData*, void*), void *arg);
};
#ifndef PED_SKIN
VALIDATE_SIZE(CAnimBlendClumpData, 0x14);
#endif

View File

@ -2,6 +2,7 @@
#include "AnimBlendSequence.h"
#include "AnimBlendHierarchy.h"
#include "AnimManager.h"
CAnimBlendHierarchy::CAnimBlendHierarchy(void)
{
@ -15,9 +16,10 @@ CAnimBlendHierarchy::CAnimBlendHierarchy(void)
void
CAnimBlendHierarchy::Shutdown(void)
{
CAnimManager::RemoveFromUncompressedCache(this);
RemoveAnimSequences();
totalLength = 0.0f;
compressed = 0;
linkPtr = nil;
}
void
@ -30,13 +32,43 @@ void
CAnimBlendHierarchy::CalcTotalTime(void)
{
int i, j;
totalLength = 0.0f;
for(i = 0; i < numSequences; i++){
float seqTime = 0.0f;
for(j = 0; j < sequences[i].numFrames; j++)
seqTime += sequences[i].GetKeyFrame(j)->deltaTime;
totalLength = Max(totalLength, seqTime);
#ifdef FIX_BUGS
if(sequences[i].numFrames == 0)
continue;
#endif
totalLength = Max(totalLength, sequences[i].GetKeyFrame(sequences[i].numFrames-1)->deltaTime);
for(j = sequences[i].numFrames-1; j >= 1; j--){
KeyFrame *kf1 = sequences[i].GetKeyFrame(j);
KeyFrame *kf2 = sequences[i].GetKeyFrame(j-1);
kf1->deltaTime -= kf2->deltaTime;
}
}
}
void
CAnimBlendHierarchy::CalcTotalTimeCompressed(void)
{
int i, j;
totalLength = 0.0f;
for(i = 0; i < numSequences; i++){
#ifdef FIX_BUGS
if(sequences[i].numFrames == 0)
continue;
#endif
totalLength = Max(totalLength, sequences[i].GetKeyFrameCompressed(sequences[i].numFrames-1)->GetDeltaTime());
for(j = sequences[i].numFrames-1; j >= 1; j--){
KeyFrameCompressed *kf1 = sequences[i].GetKeyFrameCompressed(j);
KeyFrameCompressed *kf2 = sequences[i].GetKeyFrameCompressed(j-1);
kf1->deltaTime -= kf2->deltaTime;
}
}
}
@ -53,6 +85,7 @@ void
CAnimBlendHierarchy::RemoveAnimSequences(void)
{
delete[] sequences;
sequences = nil;
numSequences = 0;
}
@ -65,9 +98,11 @@ CAnimBlendHierarchy::Uncompress(void)
for(i = 0; i < numSequences; i++)
sequences[i].Uncompress();
#endif
if(totalLength == 0.0f)
CalcTotalTime();
compressed = 0;
if(totalLength == 0.0f){
RemoveQuaternionFlips();
CalcTotalTime();
}
}
void

View File

@ -15,7 +15,8 @@ public:
char name[24];
CAnimBlendSequence *sequences;
int16 numSequences;
int16 compressed;
bool compressed;
bool keepCompressed;
float totalLength;
CLink<CAnimBlendHierarchy*> *linkPtr;
@ -23,11 +24,13 @@ public:
void Shutdown(void);
void SetName(char *name);
void CalcTotalTime(void);
void CalcTotalTimeCompressed(void);
void RemoveQuaternionFlips(void);
void RemoveAnimSequences(void);
void Uncompress(void);
void RemoveUncompressedData(void);
void MoveMemory(bool onlyone = false);
bool IsCompressed() { return !!compressed; };
};
VALIDATE_SIZE(CAnimBlendHierarchy, 0x28);

View File

@ -45,6 +45,44 @@ CAnimBlendNode::Update(CVector &trans, CQuaternion &rot, float weight)
return looped;
}
bool
CAnimBlendNode::UpdateCompressed(CVector &trans, CQuaternion &rot, float weight)
{
bool looped = false;
trans = CVector(0.0f, 0.0f, 0.0f);
rot = CQuaternion(0.0f, 0.0f, 0.0f, 0.0f);
if(association->IsRunning()){
remainingTime -= association->timeStep;
if(remainingTime <= 0.0f)
looped = NextKeyFrameCompressed();
}
float blend = association->GetBlendAmount(weight);
if(blend > 0.0f){
KeyFrameTransCompressed *kfA = (KeyFrameTransCompressed*)sequence->GetKeyFrameCompressed(frameA);
KeyFrameTransCompressed *kfB = (KeyFrameTransCompressed*)sequence->GetKeyFrameCompressed(frameB);
float t = kfA->deltaTime == 0 ? 0.0f : (kfA->GetDeltaTime() - remainingTime)/kfA->GetDeltaTime();
if(sequence->type & CAnimBlendSequence::KF_TRANS){
CVector transA, transB;
kfA->GetTranslation(&transA);
kfB->GetTranslation(&transB);
trans = transB + t*(transA - transB);
trans *= blend;
}
if(sequence->type & CAnimBlendSequence::KF_ROT){
CQuaternion rotA, rotB;
kfA->GetRotation(&rotA);
kfB->GetRotation(&rotB);
rot.Slerp(rotB, rotA, theta, invSin, t);
rot *= blend;
}
}
return looped;
}
bool
CAnimBlendNode::NextKeyFrame(void)
{
@ -82,6 +120,43 @@ CAnimBlendNode::NextKeyFrame(void)
return looped;
}
bool
CAnimBlendNode::NextKeyFrameCompressed(void)
{
bool looped;
if(sequence->numFrames <= 1)
return false;
looped = false;
frameB = frameA;
// Advance as long as we have to
while(remainingTime <= 0.0f){
frameA++;
if(frameA >= sequence->numFrames){
// reached end of animation
if(!association->IsRepeating()){
frameA--;
remainingTime = 0.0f;
return false;
}
looped = true;
frameA = 0;
}
remainingTime += sequence->GetKeyFrameCompressed(frameA)->GetDeltaTime();
}
frameB = frameA - 1;
if(frameB < 0)
frameB += sequence->numFrames;
CalcDeltasCompressed();
return looped;
}
// Set animation to time t
bool
CAnimBlendNode::FindKeyFrame(float t)
@ -92,20 +167,22 @@ CAnimBlendNode::FindKeyFrame(float t)
frameA = 0;
frameB = frameA;
if(sequence->numFrames >= 2){
frameA++;
if(sequence->numFrames == 1){
remainingTime = 0.0f;
}else{
// advance until t is between frameB and frameA
while(t > sequence->GetKeyFrame(frameA)->deltaTime){
while (t > sequence->GetKeyFrame(++frameA)->deltaTime) {
t -= sequence->GetKeyFrame(frameA)->deltaTime;
frameB = frameA++;
if(frameA >= sequence->numFrames){
if (frameA + 1 >= sequence->numFrames) {
// reached end of animation
if(!association->IsRepeating())
if (!association->IsRepeating()) {
CalcDeltas();
remainingTime = 0.0f;
return false;
}
frameA = 0;
frameB = 0;
}
frameB = frameA;
}
remainingTime = sequence->GetKeyFrame(frameA)->deltaTime - t;
@ -115,6 +192,25 @@ CAnimBlendNode::FindKeyFrame(float t)
return true;
}
bool
CAnimBlendNode::SetupKeyFrameCompressed(void)
{
if(sequence->numFrames < 1)
return false;
frameA = 1;
frameB = 0;
if(sequence->numFrames == 1){
frameA = 0;
remainingTime = 0.0f;
}else
remainingTime = sequence->GetKeyFrameCompressed(frameA)->GetDeltaTime();
CalcDeltasCompressed();
return true;
}
void
CAnimBlendNode::CalcDeltas(void)
{
@ -129,6 +225,28 @@ CAnimBlendNode::CalcDeltas(void)
invSin = theta == 0.0f ? 0.0f : 1.0f/Sin(theta);
}
void
CAnimBlendNode::CalcDeltasCompressed(void)
{
if((sequence->type & CAnimBlendSequence::KF_ROT) == 0)
return;
KeyFrameCompressed *kfA = sequence->GetKeyFrameCompressed(frameA);
KeyFrameCompressed *kfB = sequence->GetKeyFrameCompressed(frameB);
CQuaternion rotA, rotB;
kfA->GetRotation(&rotA);
kfB->GetRotation(&rotB);
float cos = DotProduct(rotA, rotB);
if(cos < 0.0f){
rotB *= -1.0f;
kfB->SetRotation(rotB);
}
cos = DotProduct(rotA, rotB);
if(cos > 1.0f)
cos = 1.0f;
theta = Acos(cos);
invSin = theta == 0.0f ? 0.0f : 1.0f/Sin(theta);
}
void
CAnimBlendNode::GetCurrentTranslation(CVector &trans, float weight)
{
@ -138,7 +256,7 @@ CAnimBlendNode::GetCurrentTranslation(CVector &trans, float weight)
if(blend > 0.0f){
KeyFrameTrans *kfA = (KeyFrameTrans*)sequence->GetKeyFrame(frameA);
KeyFrameTrans *kfB = (KeyFrameTrans*)sequence->GetKeyFrame(frameB);
float t = (kfA->deltaTime - remainingTime)/kfA->deltaTime;
float t = kfA->deltaTime == 0.0f ? 0.0f : (kfA->deltaTime - remainingTime)/kfA->deltaTime;
if(sequence->type & CAnimBlendSequence::KF_TRANS){
trans = kfB->translation + t*(kfA->translation - kfB->translation);
trans *= blend;
@ -146,6 +264,26 @@ CAnimBlendNode::GetCurrentTranslation(CVector &trans, float weight)
}
}
void
CAnimBlendNode::GetCurrentTranslationCompressed(CVector &trans, float weight)
{
trans = CVector(0.0f, 0.0f, 0.0f);
float blend = association->GetBlendAmount(weight);
if(blend > 0.0f){
KeyFrameTransCompressed *kfA = (KeyFrameTransCompressed*)sequence->GetKeyFrameCompressed(frameA);
KeyFrameTransCompressed *kfB = (KeyFrameTransCompressed*)sequence->GetKeyFrameCompressed(frameB);
float t = kfA->deltaTime == 0 ? 0.0f : (kfA->GetDeltaTime() - remainingTime)/kfA->GetDeltaTime();
if(sequence->type & CAnimBlendSequence::KF_TRANS){
CVector transA, transB;
kfA->GetTranslation(&transA);
kfB->GetTranslation(&transB);
trans = transB + t*(transA - transB);
trans *= blend;
}
}
}
void
CAnimBlendNode::GetEndTranslation(CVector &trans, float weight)
{
@ -158,3 +296,19 @@ CAnimBlendNode::GetEndTranslation(CVector &trans, float weight)
trans = kf->translation * blend;
}
}
void
CAnimBlendNode::GetEndTranslationCompressed(CVector &trans, float weight)
{
trans = CVector(0.0f, 0.0f, 0.0f);
float blend = association->GetBlendAmount(weight);
if(blend > 0.0f){
KeyFrameTransCompressed *kf = (KeyFrameTransCompressed*)sequence->GetKeyFrameCompressed(sequence->numFrames-1);
if(sequence->type & CAnimBlendSequence::KF_TRANS){
CVector pos;
kf->GetTranslation(&pos);
trans = pos * blend;
}
}
}

View File

@ -20,11 +20,17 @@ public:
void Init(void);
bool Update(CVector &trans, CQuaternion &rot, float weight);
bool UpdateCompressed(CVector &trans, CQuaternion &rot, float weight);
bool NextKeyFrame(void);
bool NextKeyFrameCompressed(void);
bool FindKeyFrame(float t);
bool SetupKeyFrameCompressed(void);
void CalcDeltas(void);
void CalcDeltasCompressed(void);
void GetCurrentTranslation(CVector &trans, float weight);
void GetCurrentTranslationCompressed(CVector &trans, float weight);
void GetEndTranslation(CVector &trans, float weight);
void GetEndTranslationCompressed(CVector &trans, float weight);
};

View File

@ -9,9 +9,7 @@ CAnimBlendSequence::CAnimBlendSequence(void)
numFrames = 0;
keyFrames = nil;
keyFramesCompressed = nil;
#ifdef PED_SKIN
boneTag = -1;
#endif
}
CAnimBlendSequence::~CAnimBlendSequence(void)
@ -29,18 +27,21 @@ CAnimBlendSequence::SetName(char *name)
}
void
CAnimBlendSequence::SetNumFrames(int numFrames, bool translation)
CAnimBlendSequence::SetNumFrames(int numFrames, bool translation, bool compressed)
{
int sz;
if(translation){
sz = sizeof(KeyFrameTrans);
type |= KF_ROT | KF_TRANS;
if(compressed)
keyFramesCompressed = RwMalloc(sizeof(KeyFrameTrans) * numFrames);
else
keyFrames = RwMalloc(sizeof(KeyFrameTrans) * numFrames);
}else{
sz = sizeof(KeyFrame);
type |= KF_ROT;
if(compressed)
keyFramesCompressed = RwMalloc(sizeof(KeyFrame) * numFrames);
else
keyFrames = RwMalloc(sizeof(KeyFrame) * numFrames);
}
keyFrames = RwMalloc(sz * numFrames);
this->numFrames = numFrames;
}
@ -76,7 +77,7 @@ CAnimBlendSequence::Uncompress(void)
float rotScale = 1.0f/4096.0f;
float timeScale = 1.0f/60.0f;
float transScale = 1.0f/128.0f;
float transScale = 1.0f/1024.0f;
if(type & KF_TRANS){
void *newKfs = RwMalloc(numFrames * sizeof(KeyFrameTrans));
KeyFrameTransCompressed *ckf = (KeyFrameTransCompressed*)keyFramesCompressed;
@ -129,7 +130,7 @@ CAnimBlendSequence::CompressKeyframes(void)
float rotScale = 4096.0f;
float timeScale = 60.0f;
float transScale = 128.0f;
float transScale = 1024.0f;
if(type & KF_TRANS){
void *newKfs = RwMalloc(numFrames * sizeof(KeyFrameTransCompressed));
KeyFrameTransCompressed *ckf = (KeyFrameTransCompressed*)newKfs;
@ -197,4 +198,3 @@ CAnimBlendSequence::MoveMemory(void)
return false;
}
#endif

View File

@ -19,10 +19,38 @@ struct KeyFrameTrans : KeyFrame {
struct KeyFrameCompressed {
int16 rot[4]; // 4096
int16 deltaTime; // 60
void GetRotation(CQuaternion *quat){
float scale = 1.0f/4096.0f;
quat->x = rot[0]*scale;
quat->y = rot[1]*scale;
quat->z = rot[2]*scale;
quat->w = rot[3]*scale;
}
void SetRotation(const CQuaternion &quat){
rot[0] = quat.x * 4096.0f;
rot[1] = quat.y * 4096.0f;
rot[2] = quat.z * 4096.0f;
rot[3] = quat.w * 4096.0f;
}
float GetDeltaTime(void) { return deltaTime/60.0f; }
void SetTime(float t) { deltaTime = t*60.0f + 0.5f; }
};
struct KeyFrameTransCompressed : KeyFrameCompressed {
int16 trans[3]; // 128
int16 trans[3]; // 1024
void GetTranslation(CVector *vec) {
float scale = 1.0f/1024.0f;
vec->x = trans[0]*scale;
vec->y = trans[1]*scale;
vec->z = trans[2]*scale;
}
void SetTranslation(const CVector &vec){
trans[0] = vec.x*1024.0f;
trans[1] = vec.y*1024.0f;
trans[2] = vec.z*1024.0f;
}
};
@ -37,32 +65,31 @@ public:
int32 type;
char name[24];
int32 numFrames;
#ifdef PED_SKIN
int16 boneTag;
#endif
void *keyFrames;
void *keyFramesCompressed;
CAnimBlendSequence(void);
virtual ~CAnimBlendSequence(void);
void SetName(char *name);
void SetNumFrames(int numFrames, bool translation);
void SetNumFrames(int numFrames, bool translation, bool compressed);
void RemoveQuaternionFlips(void);
KeyFrame *GetKeyFrame(int n) {
return type & KF_TRANS ?
&((KeyFrameTrans*)keyFrames)[n] :
&((KeyFrame*)keyFrames)[n];
}
KeyFrameCompressed *GetKeyFrameCompressed(int n) {
return type & KF_TRANS ?
&((KeyFrameTransCompressed*)keyFramesCompressed)[n] :
&((KeyFrameCompressed*)keyFramesCompressed)[n];
}
bool HasTranslation(void) { return !!(type & KF_TRANS); }
void Uncompress(void);
void CompressKeyframes(void);
void RemoveUncompressedData(void);
bool MoveMemory(void);
#ifdef PED_SKIN
void SetBoneTag(int tag) { boneTag = tag; }
#endif
};
#ifndef PED_SKIN
VALIDATE_SIZE(CAnimBlendSequence, 0x2C);
#endif
VALIDATE_SIZE(CAnimBlendSequence, 0x30);

File diff suppressed because it is too large Load Diff

View File

@ -6,24 +6,59 @@
enum AssocGroupId
{
ASSOCGRP_STD,
ASSOCGRP_VAN,
ASSOCGRP_COACH,
ASSOCGRP_BIKE_STANDARD,
ASSOCGRP_BIKE_VESPA,
ASSOCGRP_BIKE_HARLEY,
ASSOCGRP_BIKE_DIRT,
ASSOCGRP_UNARMED,
ASSOCGRP_SCREWDRIVER,
ASSOCGRP_KNIFE,
ASSOCGRP_BASEBALLBAT,
ASSOCGRP_GOLFCLUB,
ASSOCGRP_CHAINSAW,
ASSOCGRP_PYTHON,
ASSOCGRP_COLT,
ASSOCGRP_SHOTGUN,
ASSOCGRP_BUDDY,
ASSOCGRP_TEC,
ASSOCGRP_UZI,
ASSOCGRP_RIFLE,
ASSOCGRP_M60,
ASSOCGRP_SNIPER,
ASSOCGRP_THROW,
ASSOCGRP_FLAMETHROWER,
ASSOCGRP_ROCKETLAUNCHER,
ASSOCGRP_MEDIC,
ASSOCGRP_SUNBATHE,
ASSOCGRP_PLAYER_IDLE,
ASSOCGRP_RIOT,
ASSOCGRP_STRIP,
ASSOCGRP_LANCE,
ASSOCGRP_PLAYER,
ASSOCGRP_PLAYERROCKET,
ASSOCGRP_PLAYER1ARMED,
ASSOCGRP_PLAYER2ARMED,
ASSOCGRP_PLAYERBBBAT,
ASSOCGRP_AICHAINSAW,
ASSOCGRP_PLAYERCHAINSAW,
ASSOCGRP_SHUFFLE,
ASSOCGRP_OLD,
ASSOCGRP_GANG1,
ASSOCGRP_GANG2,
ASSOCGRP_FAT,
ASSOCGRP_OLDFAT,
ASSOCGRP_JOGGER,
ASSOCGRP_WOMAN,
ASSOCGRP_WOMANSHOP,
ASSOCGRP_BUSYWOMAN,
ASSOCGRP_SEXYWOMAN,
ASSOCGRP_OLDWOMAN,
ASSOCGRP_FATWOMAN,
ASSOCGRP_OLDWOMAN,
ASSOCGRP_JOGWOMAN,
ASSOCGRP_PANICCHUNKY,
ASSOCGRP_SKATE,
#ifdef PC_PLAYER_CONTROLS
ASSOCGRP_PLAYERBACK,
ASSOCGRP_PLAYERLEFT,
@ -33,17 +68,46 @@ enum AssocGroupId
ASSOCGRP_ROCKETRIGHT,
#endif
ASSOCGRP_MPNOTE,
ASSOCGRP_CSMISC,
ASSOCGRP_DONH2,
ASSOCGRP_DONH3,
ASSOCGRP_JDT2,
ASSOCGRP_JDT4,
ASSOCGRP_JDT5,
ASSOCGRP_JDT6,
ASSOCGRP_MAR1,
ASSOCGRP_MAR2,
ASSOCGRP_MAR3,
ASSOCGRP_SAL1,
ASSOCGRP_SAL2,
ASSOCGRP_SAL3,
ASSOCGRP_SAL4,
ASSOCGRP_SAL6,
ASSOCGRP_SAL7,
ASSOCGRP_VIC2,
ASSOCGRP_VIC3,
ASSOCGRP_VIC4,
ASSOCGRP_VIC6,
ASSOCGRP_TOURIST,
ASSOCGRP_MAC2,
ASSOCGRP_VIC7,
NUM_ANIM_ASSOC_GROUPS
};
class CAnimBlendAssociation;
class CAnimBlendAssocGroup;
#define MAX_ANIMBLOCK_NAME 20
// A block of hierarchies
struct CAnimBlock
{
char name[24];
int32 firstIndex;
char name[MAX_ANIMBLOCK_NAME];
bool isLoaded;
int16 refCount;
int32 firstIndex; // first animtion in ms_aAnimations
int32 numAnims;
};
@ -77,7 +141,16 @@ public:
static void Initialise(void);
static void Shutdown(void);
static void UncompressAnimation(CAnimBlendHierarchy *anim);
static void RemoveFromUncompressedCache(CAnimBlendHierarchy *hier);
static CAnimBlock *GetAnimationBlock(int32 block) { return &ms_aAnimBlocks[block]; }
static CAnimBlock *GetAnimationBlock(const char *name);
static int32 GetAnimationBlockIndex(const char *name);
static int32 RegisterAnimBlock(const char *name);
static int32 GetNumRefsToAnimBlock(int32 block);
static void AddAnimBlockRef(int32 block);
static void RemoveAnimBlockRefWithoutDelete(int32 block);
static void RemoveAnimBlockRef(int32 block);
static void RemoveAnimBlock(int32 block);
static CAnimBlendHierarchy *GetAnimation(const char *name, CAnimBlock *animBlock);
static CAnimBlendHierarchy *GetAnimation(int32 n) { return &ms_aAnimations[n]; }
static const char *GetAnimGroupName(AssocGroupId groupId);
@ -89,6 +162,8 @@ public:
static CAnimBlendAssociation *BlendAnimation(RpClump *clump, AssocGroupId groupId, AnimationId animId, float delta);
static void LoadAnimFiles(void);
static void LoadAnimFile(const char *filename);
static void LoadAnimFile(int fd, bool compress);
static void LoadAnimFile(RwStream *stream, bool compress, char (*uncompressedAnims)[32] = nil);
static void CreateAnimAssocGroups(void);
static void RemoveLastAnimFile(void);
static CAnimBlendAssocGroup* GetAnimAssocGroups(void) { return ms_aAnimAssocGroups; }
};

View File

@ -40,72 +40,33 @@ enum AnimationId
ANIM_STD_HIT_BACK,
ANIM_STD_HIT_RIGHT,
ANIM_STD_HIT_FLOOR,
/* names made up */
#if GTA_VERSION <= GTA3_PS2_160
ANIM_STD_HIT_BODY,
#endif
ANIM_STD_HIT_BODYBLOW,
ANIM_STD_HIT_CHEST,
ANIM_STD_HIT_HEAD,
ANIM_STD_HIT_WALK,
/**/
ANIM_STD_HIT_WALL,
ANIM_STD_HIT_FLOOR_FRONT,
ANIM_STD_HIT_BEHIND,
ANIM_STD_PUNCH,
ANIM_STD_KICKGROUND,
/* names made up */
ANIM_STD_WEAPON_BAT_H,
ANIM_STD_WEAPON_BAT_V,
ANIM_STD_WEAPON_HGUN_BODY,
ANIM_STD_WEAPON_AK_BODY,
ANIM_STD_WEAPON_PUMP,
ANIM_STD_WEAPON_SNIPER,
ANIM_STD_WEAPON_THROW,
/**/
ANIM_STD_THROW_UNDER,
/* names made up */
ANIM_STD_START_THROW,
/**/
ANIM_STD_DETONATE,
/* names made up */
ANIM_STD_HGUN_RELOAD,
ANIM_STD_AK_RELOAD,
#ifdef PC_PLAYER_CONTROLS
// maybe wrong define, but unused anyway
ANIM_FPS_PUNCH,
ANIM_FPS_BAT,
ANIM_FPS_UZI,
ANIM_FPS_PUMP,
ANIM_FPS_AK,
ANIM_FPS_M16,
ANIM_FPS_ROCKET,
#endif
/**/
ANIM_STD_FIGHT_IDLE,
ANIM_STD_FIGHT_2IDLE,
ANIM_STD_FIGHT_SHUFFLE_F,
/* names made up */
ANIM_STD_FIGHT_BODYBLOW,
ANIM_STD_FIGHT_HEAD,
ANIM_STD_FIGHT_KICK,
ANIM_STD_FIGHT_KNEE,
ANIM_STD_FIGHT_LHOOK,
ANIM_STD_FIGHT_PUNCH,
ANIM_STD_FIGHT_ROUNDHOUSE,
ANIM_STD_FIGHT_LONGKICK,
/**/
ANIM_STD_PARTIAL_PUNCH,
ANIM_FIGHT_ATTACK_A1,
ANIM_FIGHT_ATTACK_A2,
ANIM_FIGHT_ATTACK_A3,
ANIM_FIGHT_ATTACK_B1,
ANIM_FIGHT_ATTACK_B2,
ANIM_FIGHT_ATTACK_B3,
ANIM_FIGHT_HIT_A1,
ANIM_FIGHT_HIT_A2,
ANIM_FIGHT_HIT_A3,
ANIM_FIGHT_HIT_B1,
ANIM_FIGHT_HIT_B2,
ANIM_FIGHT_HIT_B3,
ANIM_STD_DETONATE,
ANIM_STD_PUNCH,
ANIM_STD_PARTIALPUNCH,
ANIM_STD_KICKGROUND,
ANIM_STD_THROW_UNDER,
ANIM_STD_FIGHT_SHUFFLE_B,
ANIM_STD_JACKEDCAR_RHS,
ANIM_STD_JACKEDCAR_LO_RHS,
ANIM_STD_JACKEDCAR_LHS,
@ -124,6 +85,7 @@ enum AnimationId
ANIM_STD_CAR_CLOSE_DOOR_LO_LHS,
ANIM_STD_CAR_CLOSE_DOOR_ROLLING_LHS,
ANIM_STD_CAR_CLOSE_DOOR_ROLLING_LO_LHS,
ANIM_STD_CAR_JUMP_IN_LO_LHS,
ANIM_STD_GETOUT_LHS,
ANIM_STD_GETOUT_LO_LHS,
ANIM_STD_CAR_CLOSE_LHS,
@ -149,29 +111,36 @@ enum AnimationId
ANIM_STD_CAR_DRIVE_RIGHT_LO,
ANIM_STD_CAR_DRIVEBY_LEFT,
ANIM_STD_CAR_DRIVEBY_RIGHT,
ANIM_STD_CAR_DRIVEBY_LEFT_LO,
ANIM_STD_CAR_DRIVEBY_RIGHT_LO,
ANIM_STD_CAR_LOOKBEHIND,
ANIM_STD_BOAT_DRIVE,
ANIM_STD_BOAT_DRIVE_LEFT,
ANIM_STD_BOAT_DRIVE_RIGHT,
ANIM_STD_BOAT_LOOKBEHIND,
ANIM_STD_BIKE_PICKUP_LHS,
ANIM_STD_BIKE_PICKUP_RHS,
ANIM_STD_BIKE_PULLUP_LHS,
ANIM_STD_BIKE_PULLUP_RHS,
ANIM_STD_BIKE_ELBOW_LHS,
ANIM_STD_BIKE_ELBOW_RHS,
ANIM_STD_BIKE_FALLOFF,
ANIM_STD_BIKE_FALLBACK,
ANIM_STD_GETOUT_RHS,
ANIM_STD_GETOUT_LO_RHS,
ANIM_STD_CAR_CLOSE_RHS,
ANIM_STD_CAR_HOOKERTALK,
ANIM_STD_COACH_OPEN_LHS,
ANIM_STD_COACH_OPEN_RHS,
ANIM_STD_COACH_GET_IN_LHS,
ANIM_STD_COACH_GET_IN_RHS,
ANIM_STD_COACH_GET_OUT_LHS,
ANIM_STD_TRAIN_GETIN,
ANIM_STD_TRAIN_GETOUT,
ANIM_STD_CRAWLOUT_LHS,
ANIM_STD_CRAWLOUT_RHS,
ANIM_STD_VAN_OPEN_DOOR_REAR_LHS,
ANIM_STD_VAN_GET_IN_REAR_LHS,
ANIM_STD_VAN_CLOSE_DOOR_REAR_LHS,
ANIM_STD_VAN_GET_OUT_REAR_LHS,
ANIM_STD_VAN_OPEN_DOOR_REAR_RHS,
ANIM_STD_VAN_GET_IN_REAR_RHS,
ANIM_STD_VAN_CLOSE_DOOR_REAR_RHS,
ANIM_STD_VAN_GET_OUT_REAR_RHS,
ANIM_STD_ROLLOUT_LHS,
ANIM_STD_ROLLOUT_RHS,
ANIM_STD_GET_UP,
ANIM_STD_GET_UP_LEFT,
ANIM_STD_GET_UP_RIGHT,
@ -183,22 +152,23 @@ enum AnimationId
ANIM_STD_FALL_GLIDE,
ANIM_STD_FALL_LAND,
ANIM_STD_FALL_COLLAPSE,
ANIM_STD_FALL_ONBACK,
ANIM_STD_FALL_ONFRONT,
ANIM_STD_EVADE_STEP,
ANIM_STD_EVADE_DIVE,
ANIM_STD_COMMANDO_ROLL,
ANIM_STD_XPRESS_SCRATCH,
ANIM_STD_ROADCROSS,
ANIM_STD_TURN180,
ANIM_STD_ARREST,
ANIM_STD_DROWN,
ANIM_MEDIC_CPR,
ANIM_STD_DUCK_DOWN,
ANIM_STD_DUCK_LOW,
ANIM_STD_DUCK_WEAPON,
ANIM_STD_RBLOCK_SHOOT,
/* names made up */
ANIM_STD_THROW_UNDER2,
/**/
ANIM_STD_HANDSUP,
ANIM_STD_HANDSCOWER,
ANIM_STD_PARTIAL_FUCKU,
@ -206,5 +176,157 @@ enum AnimationId
ANIM_STD_PHONE_OUT,
ANIM_STD_PHONE_TALK,
ANIM_STD_NUM
ANIM_STD_SEAT_DOWN,
ANIM_STD_SEAT_UP,
ANIM_STD_SEAT_IDLE,
ANIM_STD_SEAT_RVRS,
ANIM_STD_ATM,
ANIM_STD_ABSEIL,
ANIM_STD_NUM,
ANIM_STD_VAN_OPEN_DOOR_REAR_LHS,
ANIM_STD_VAN_GET_IN_REAR_LHS,
ANIM_STD_VAN_CLOSE_DOOR_REAR_LHS,
ANIM_STD_VAN_GET_OUT_REAR_LHS,
ANIM_STD_VAN_OPEN_DOOR_REAR_RHS,
ANIM_STD_VAN_GET_IN_REAR_RHS,
ANIM_STD_VAN_CLOSE_DOOR_REAR_RHS,
ANIM_STD_VAN_GET_OUT_REAR_RHS,
ANIM_STD_COACH_OPEN_LHS,
ANIM_STD_COACH_OPEN_RHS,
ANIM_STD_COACH_GET_IN_LHS,
ANIM_STD_COACH_GET_IN_RHS,
ANIM_STD_COACH_GET_OUT_LHS,
ANIM_BIKE_RIDE,
ANIM_BIKE_READY,
ANIM_BIKE_LEFT,
ANIM_BIKE_RIGHT,
ANIM_BIKE_LEANB,
ANIM_BIKE_LEANF,
ANIM_BIKE_WALKBACK,
ANIM_BIKE_JUMPON_LHS,
ANIM_BIKE_JUMPON_RHS,
ANIM_BIKE_KICK,
ANIM_BIKE_HIT,
ANIM_BIKE_GETOFF_LHS,
ANIM_BIKE_GETOFF_RHS,
ANIM_BIKE_GETOFF_BACK,
ANIM_BIKE_DRIVEBY_LHS,
ANIM_BIKE_DRIVEBY_RHS,
ANIM_BIKE_DRIVEBY_FORWARD,
ANIM_BIKE_RIDE_P,
ANIM_ATTACK_1,
ANIM_ATTACK_2,
ANIM_ATTACK_EXTRA1,
ANIM_ATTACK_EXTRA2,
ANIM_ATTACK_3,
// our synonyms... because originals are hard to understand
ANIM_WEAPON_FIRE = ANIM_ATTACK_1,
ANIM_WEAPON_CROUCHFIRE,
ANIM_WEAPON_FIRE_2ND = ANIM_WEAPON_CROUCHFIRE,
ANIM_WEAPON_RELOAD,
ANIM_WEAPON_CROUCHRELOAD,
ANIM_WEAPON_FIRE_3RD,
ANIM_THROWABLE_THROW = ANIM_ATTACK_1,
ANIM_THROWABLE_THROWU,
ANIM_THROWABLE_START_THROW,
ANIM_MELEE_ATTACK = ANIM_ATTACK_1,
ANIM_MELEE_ATTACK_2ND,
ANIM_MELEE_ATTACK_START,
ANIM_MELEE_IDLE_FIGHTMODE,
ANIM_MELEE_ATTACK_FINISH,
ANIM_SUNBATHE_IDLE,
ANIM_SUNBATHE_DOWN,
ANIM_SUNBATHE_UP,
ANIM_SUNBATHE_ESCAPE,
ANIM_MEDIC_CPR,
ANIM_PLAYER_IDLE1,
ANIM_PLAYER_IDLE2,
ANIM_PLAYER_IDLE3,
ANIM_PLAYER_IDLE4,
ANIM_RIOT_ANGRY,
ANIM_RIOT_ANGRY_B,
ANIM_RIOT_CHANT,
ANIM_RIOT_PUNCHES,
ANIM_RIOT_SHOUT,
ANIM_RIOT_CHALLENGE,
ANIM_RIOT_FUCKYOU,
ANIM_STRIP_A,
ANIM_STRIP_B,
ANIM_STRIP_C,
ANIM_STRIP_D,
ANIM_STRIP_E,
ANIM_STRIP_F,
ANIM_STRIP_G,
ANIM_MULTIPLAYER_CUTSCENE_MPNOTE,
ANIM_MULTIPLAYER_CUTSCENE_MPNOTE_LOOP,
ANIM_CS_MISC_IDLE_LOOK,
ANIM_CS_MISC_IDLE_NO,
ANIM_CS_MISC_IDLE_YES,
ANIM_CS_MISC_IDLE_CHAT2,
ANIM_CS_MISC_IDLE_COUGH,
ANIM_CS_MISC_IDLE_GIGGLE_FEMALE,
ANIM_CS_MISC_IDLE_TOUGH_CHAT,
ANIM_CS_MISC_IDLE_CELL_TALK,
ANIM_DONH2_CAMERA,
ANIM_DONH3_HAPPY,
ANIM_JDT2_ANXIOUS_TALK,
ANIM_JDT2_SHRUG,
ANIM_JDT4_DILDO_TALK,
ANIM_JDT5_CALM_DOWN,
ANIM_JDT5_POINT,
ANIM_JDT6_PICKUP,
ANIM_JDT6_KNOCK,
ANIM_MAR1_SKIRT,
ANIM_MAR2_CELL_ANSWER,
ANIM_MAR2_CELL_END,
ANIM_MAR2_CELL_TALK,
ANIM_MAR2_FOOT_TAP,
ANIM_MAR3_HOOCHY,
ANIM_MAR3_NOTE_IDLE,
ANIM_MAR3_NOTE_PICKUP,
ANIM_SAL1_BIREFCASE_DOWN,
ANIM_SAL2_IDLE_SEATED,
ANIM_SAL2_SEAT_TO_STAND,
ANIM_SAL3_SEATED_TALK,
ANIM_SAL3_SEATED_IDLE,
ANIM_SAL3_SIT_DOWN,
ANIM_SAL4_DUST_DOWN,
ANIM_SAL4_GIRL_RUN,
ANIM_SAL6_ANGRY_SEATED,
ANIM_SAL6_IDLE_SEATED,
ANIM_SAL7_LOOKOUT,
ANIM_VIC2_POINT_ANGRY,
ANIM_VIC3_WAFT,
ANIM_VIC3_PICKUP_ROLL,
ANIM_VIC4_CARRY_BOX,
ANIM_VIC4_CELL_LOOK,
ANIM_VIC4_CRATE_IDLE,
ANIM_VIC6_CELL_ANGRY,
ANIM_TOURIST3,
ANIM_TOURIST2,
ANIM_TOURIST1,
ANIM_MAC2_PLEAD,
ANIM_VIC7_PROD_WITH_FOOT
};

View File

@ -2,26 +2,29 @@
#include "PedModelInfo.h"
#include "Bones.h"
#ifdef PED_SKIN
int
ConvertPedNode2BoneTag(int node)
{
switch(node){
case PED_TORSO: return BONE_waist;
case PED_MID: return BONE_torso; // this is what Xbox/Mobile use
// return BONE_mid; // this is what PS2/PC use
case PED_HEAD: return BONE_head;
case PED_UPPERARML: return BONE_upperarml;
case PED_UPPERARMR: return BONE_upperarmr;
case PED_HANDL: return BONE_Lhand;
case PED_HANDR: return BONE_Rhand;
case PED_UPPERLEGL: return BONE_upperlegl;
case PED_UPPERLEGR: return BONE_upperlegr;
case PED_FOOTL: return BONE_footl;
case PED_FOOTR: return BONE_footr;
case PED_LOWERLEGR: return BONE_lowerlegl;
case PED_MID: return BONE_spine1;
case PED_HEAD: return BONE_head;
case PED_UPPERARML: return BONE_l_upperarm;
case PED_UPPERARMR: return BONE_r_upperarm;
case PED_HANDL: return BONE_l_hand;
case PED_HANDR: return BONE_r_hand;
case PED_UPPERLEGL: return BONE_l_thigh;
case PED_UPPERLEGR: return BONE_r_thigh;
case PED_FOOTL: return BONE_l_foot;
case PED_FOOTR: return BONE_r_foot;
case PED_LOWERLEGR: return BONE_r_calf;
case PED_LOWERLEGL: return BONE_l_calf;
case PED_FOREARML: return BONE_l_forearm;
case PED_FOREARMR: return BONE_r_forearm;
case PED_CLAVICLEL: return BONE_l_clavicle;
case PED_CLAVICLER: return BONE_r_clavicle;
case PED_NECK: return BONE_neck;
}
assert(0 && "this node has no bone");
return -1;
}
@ -29,24 +32,28 @@ const char*
ConvertBoneTag2BoneName(int tag)
{
switch(tag){
case BONE_waist: return "Swaist";
case BONE_upperlegr: return "Supperlegr";
case BONE_lowerlegr: return "Slowerlegr";
case BONE_footr: return "Sfootr";
case BONE_upperlegl: return "Supperlegl";
case BONE_lowerlegl: return "Slowerlegl";
case BONE_footl: return "Sfootl";
case BONE_mid: return "Smid";
case BONE_torso: return "Storso";
case BONE_head: return "Shead";
case BONE_upperarmr: return "Supperarmr";
case BONE_lowerarmr: return "Slowerarmr";
case BONE_Rhand: return "SRhand";
case BONE_upperarml: return "Supperarml";
case BONE_lowerarml: return "Slowerarml";
case BONE_Lhand: return "SLhand";
case BONE_root: return "Root";
case BONE_pelvis: return "Pelvis";
case BONE_spine: return "Spine";
case BONE_spine1: return "Spine1";
case BONE_neck: return "Neck";
case BONE_head: return "Head";
case BONE_r_clavicle: return "Bip01 R Clavicle";
case BONE_r_upperarm: return "R UpperArm";
case BONE_r_forearm: return "R Forearm";
case BONE_r_hand: return "R Hand";
case BONE_r_finger: return "R Fingers";
case BONE_l_clavicle: return "Bip01 L Clavicle";
case BONE_l_upperarm: return "L UpperArm";
case BONE_l_forearm: return "L Forearm";
case BONE_l_hand: return "L Hand";
case BONE_l_finger: return "L Fingers";
case BONE_l_thigh: return "L Thigh";
case BONE_l_calf: return "L Calf";
case BONE_l_foot: return "L Foot";
case BONE_r_thigh: return "R Thigh";
case BONE_r_calf: return "R Calf";
case BONE_r_foot: return "R Foot";
}
return nil;
}
#endif

View File

@ -2,22 +2,28 @@
enum BoneTag
{
BONE_waist,
BONE_upperlegr,
BONE_lowerlegr,
BONE_footr,
BONE_upperlegl,
BONE_lowerlegl,
BONE_footl,
BONE_mid,
BONE_torso,
BONE_head,
BONE_upperarmr,
BONE_lowerarmr,
BONE_Rhand,
BONE_upperarml,
BONE_lowerarml,
BONE_Lhand,
BONE_root = 0,
BONE_pelvis = 1,
BONE_spine = 2,
BONE_spine1 = 3,
BONE_neck = 4,
BONE_head = 5,
BONE_l_clavicle = 31,
BONE_l_upperarm = 32,
BONE_l_forearm = 33,
BONE_l_hand = 34,
BONE_l_finger = 35,
BONE_r_clavicle = 21,
BONE_r_upperarm = 22,
BONE_r_forearm = 23,
BONE_r_hand = 24,
BONE_r_finger = 25,
BONE_l_thigh = 41,
BONE_l_calf = 42,
BONE_l_foot = 43,
BONE_r_thigh = 51,
BONE_r_calf = 52,
BONE_r_foot = 53,
};
int ConvertPedNode2BoneTag(int node);

View File

@ -16,147 +16,60 @@
#include "World.h"
#include "PlayerPed.h"
#include "Wanted.h"
#include "CutsceneHead.h"
#include "RpAnimBlend.h"
#include "ModelIndices.h"
#include "TempColModels.h"
#include "ColStore.h"
#include "Radar.h"
#include "Pools.h"
#include "crossplatform.h"
const struct {
const char *szTrackName;
int iTrackId;
} musicNameIdAssoc[] = {
{ "JB", STREAMED_SOUND_NEWS_INTRO },
{ "BET", STREAMED_SOUND_BANK_INTRO },
{ "L1_LG", STREAMED_SOUND_CUTSCENE_LUIGI1_LG },
{ "L2_DSB", STREAMED_SOUND_CUTSCENE_LUIGI2_DSB },
{ "L3_DM", STREAMED_SOUND_CUTSCENE_LUIGI3_DM },
{ "L4_PAP", STREAMED_SOUND_CUTSCENE_LUIGI4_PAP },
{ "L5_TFB", STREAMED_SOUND_CUTSCENE_LUIGI5_TFB },
{ "J0_DM2", STREAMED_SOUND_CUTSCENE_JOEY0_DM2 },
{ "J1_LFL", STREAMED_SOUND_CUTSCENE_JOEY1_LFL },
{ "J2_KCL", STREAMED_SOUND_CUTSCENE_JOEY2_KCL },
{ "J3_VH", STREAMED_SOUND_CUTSCENE_JOEY3_VH },
{ "J4_ETH", STREAMED_SOUND_CUTSCENE_JOEY4_ETH },
{ "J5_DST", STREAMED_SOUND_CUTSCENE_JOEY5_DST },
{ "J6_TBJ", STREAMED_SOUND_CUTSCENE_JOEY6_TBJ },
{ "T1_TOL", STREAMED_SOUND_CUTSCENE_TONI1_TOL },
{ "T2_TPU", STREAMED_SOUND_CUTSCENE_TONI2_TPU },
{ "T3_MAS", STREAMED_SOUND_CUTSCENE_TONI3_MAS },
{ "T4_TAT", STREAMED_SOUND_CUTSCENE_TONI4_TAT },
{ "T5_BF", STREAMED_SOUND_CUTSCENE_TONI5_BF },
{ "S0_MAS", STREAMED_SOUND_CUTSCENE_SAL0_MAS },
{ "S1_PF", STREAMED_SOUND_CUTSCENE_SAL1_PF },
{ "S2_CTG", STREAMED_SOUND_CUTSCENE_SAL2_CTG },
{ "S3_RTC", STREAMED_SOUND_CUTSCENE_SAL3_RTC },
{ "S5_LRQ", STREAMED_SOUND_CUTSCENE_SAL5_LRQ },
{ "S4_BDBA", STREAMED_SOUND_CUTSCENE_SAL4_BDBA },
{ "S4_BDBB", STREAMED_SOUND_CUTSCENE_SAL4_BDBB },
{ "S2_CTG2", STREAMED_SOUND_CUTSCENE_SAL2_CTG2 },
{ "S4_BDBD", STREAMED_SOUND_CUTSCENE_SAL4_BDBD },
{ "S5_LRQB", STREAMED_SOUND_CUTSCENE_SAL5_LRQB },
{ "S5_LRQC", STREAMED_SOUND_CUTSCENE_SAL5_LRQC },
{ "A1_SS0", STREAMED_SOUND_CUTSCENE_ASUKA_1_SSO },
{ "A2_PP", STREAMED_SOUND_CUTSCENE_ASUKA_2_PP },
{ "A3_SS", STREAMED_SOUND_CUTSCENE_ASUKA_3_SS },
{ "A4_PDR", STREAMED_SOUND_CUTSCENE_ASUKA_4_PDR },
{ "A5_K2FT", STREAMED_SOUND_CUTSCENE_ASUKA_5_K2FT},
{ "K1_KBO", STREAMED_SOUND_CUTSCENE_KENJI1_KBO },
{ "K2_GIS", STREAMED_SOUND_CUTSCENE_KENJI2_GIS },
{ "K3_DS", STREAMED_SOUND_CUTSCENE_KENJI3_DS },
{ "K4_SHI", STREAMED_SOUND_CUTSCENE_KENJI4_SHI },
{ "K5_SD", STREAMED_SOUND_CUTSCENE_KENJI5_SD },
{ "R0_PDR2", STREAMED_SOUND_CUTSCENE_RAY0_PDR2 },
{ "R1_SW", STREAMED_SOUND_CUTSCENE_RAY1_SW },
{ "R2_AP", STREAMED_SOUND_CUTSCENE_RAY2_AP },
{ "R3_ED", STREAMED_SOUND_CUTSCENE_RAY3_ED },
{ "R4_GF", STREAMED_SOUND_CUTSCENE_RAY4_GF },
{ "R5_PB", STREAMED_SOUND_CUTSCENE_RAY5_PB },
{ "R6_MM", STREAMED_SOUND_CUTSCENE_RAY6_MM },
{ "D1_STOG", STREAMED_SOUND_CUTSCENE_DONALD1_STOG },
{ "D2_KK", STREAMED_SOUND_CUTSCENE_DONALD2_KK },
{ "D3_ADO", STREAMED_SOUND_CUTSCENE_DONALD3_ADO },
{ "D5_ES", STREAMED_SOUND_CUTSCENE_DONALD5_ES },
{ "D7_MLD", STREAMED_SOUND_CUTSCENE_DONALD7_MLD },
{ "D4_GTA", STREAMED_SOUND_CUTSCENE_DONALD4_GTA },
{ "D4_GTA2", STREAMED_SOUND_CUTSCENE_DONALD4_GTA2 },
{ "D6_STS", STREAMED_SOUND_CUTSCENE_DONALD6_STS },
{ "A6_BAIT", STREAMED_SOUND_CUTSCENE_ASUKA6_BAIT },
{ "A7_ETG", STREAMED_SOUND_CUTSCENE_ASUKA7_ETG },
{ "A8_PS", STREAMED_SOUND_CUTSCENE_ASUKA8_PS },
{ "A9_ASD", STREAMED_SOUND_CUTSCENE_ASUKA9_ASD },
{ "K4_SHI2", STREAMED_SOUND_CUTSCENE_KENJI4_SHI2 },
{ "C1_TEX", STREAMED_SOUND_CUTSCENE_CATALINA1_TEX },
{ "EL_PH1", STREAMED_SOUND_CUTSCENE_ELBURRO1_PH1 },
{ "EL_PH2", STREAMED_SOUND_CUTSCENE_ELBURRO2_PH2 },
{ "EL_PH3", STREAMED_SOUND_CUTSCENE_ELBURRO3_PH3 },
{ "EL_PH4", STREAMED_SOUND_CUTSCENE_ELBURRO4_PH4 },
{ "YD_PH1", STREAMED_SOUND_CUTSCENE_YARDIE_PH1 },
{ "YD_PH2", STREAMED_SOUND_CUTSCENE_YARDIE_PH2 },
{ "YD_PH3", STREAMED_SOUND_CUTSCENE_YARDIE_PH3 },
{ "YD_PH4", STREAMED_SOUND_CUTSCENE_YARDIE_PH4 },
{ "HD_PH1", STREAMED_SOUND_CUTSCENE_HOODS_PH1 },
{ "HD_PH2", STREAMED_SOUND_CUTSCENE_HOODS_PH2 },
{ "HD_PH3", STREAMED_SOUND_CUTSCENE_HOODS_PH3 },
{ "HD_PH4", STREAMED_SOUND_CUTSCENE_HOODS_PH4 },
{ "HD_PH5", STREAMED_SOUND_CUTSCENE_HOODS_PH5 },
{ "MT_PH1", STREAMED_SOUND_CUTSCENE_MARTY_PH1 },
{ "MT_PH2", STREAMED_SOUND_CUTSCENE_MARTY_PH2 },
{ "MT_PH3", STREAMED_SOUND_CUTSCENE_MARTY_PH3 },
{ "MT_PH4", STREAMED_SOUND_CUTSCENE_MARTY_PH4 },
{ NULL, 0 }
};
static bool bModelsRemovedForCutscene;
static int32 NumberOfSavedWeapons;
static eWeaponType SavedWeaponIDs[TOTAL_WEAPON_SLOTS];
static int32 SavedWeaponAmmo[TOTAL_WEAPON_SLOTS];
int
FindCutsceneAudioTrackId(const char *szCutsceneName)
{
for (int i = 0; musicNameIdAssoc[i].szTrackName; i++) {
if (!CGeneral::faststricmp(musicNameIdAssoc[i].szTrackName, szCutsceneName))
return musicNameIdAssoc[i].iTrackId;
}
return -1;
}
bool CCutsceneMgr::ms_running;
bool CCutsceneMgr::ms_cutsceneProcessing;
char CCutsceneMgr::ms_cAppendAnimName[NUMCUTSCENEOBJECTS][NAMELENGTH];
char CCutsceneMgr::ms_cAppendObjectName[NUMCUTSCENEOBJECTS][NAMELENGTH];
int CCutsceneMgr::ms_numAppendObjectNames;
CDirectory *CCutsceneMgr::ms_pCutsceneDir;
CCutsceneObject *CCutsceneMgr::ms_pCutsceneObjects[NUMCUTSCENEOBJECTS];
int32 CCutsceneMgr::ms_numCutsceneObjs;
bool CCutsceneMgr::ms_loaded;
bool CCutsceneMgr::ms_animLoaded;
bool CCutsceneMgr::ms_hasFileInfo;
bool CCutsceneMgr::ms_wasCutsceneSkipped;
bool CCutsceneMgr::ms_useLodMultiplier;
char CCutsceneMgr::ms_cutsceneName[CUTSCENENAMESIZE];
CAnimBlendAssocGroup CCutsceneMgr::ms_cutsceneAssociations;
CVector CCutsceneMgr::ms_cutsceneOffset;
float CCutsceneMgr::ms_cutsceneTimer;
bool CCutsceneMgr::ms_cutsceneProcessing;
bool CCutsceneMgr::ms_running;
bool CCutsceneMgr::ms_animLoaded;
uint32 CCutsceneMgr::ms_cutsceneLoadStatus;
RpAtomic *
CalculateBoundingSphereRadiusCB(RpAtomic *atomic, void *data)
{
float radius = RpAtomicGetBoundingSphere(atomic)->radius;
RwV3d center = RpAtomicGetBoundingSphere(atomic)->center;
for (RwFrame *frame = RpAtomicGetFrame(atomic); RwFrameGetParent(frame); frame = RwFrameGetParent(frame))
RwV3dTransformPoints(&center, &center, 1, RwFrameGetMatrix(frame));
float size = RwV3dLength(&center) + radius;
if (size > *(float *)data)
*(float *)data = size;
return atomic;
}
void
CCutsceneMgr::Initialise(void)
CCutsceneMgr::Initialise(void *dir)
{
ms_numCutsceneObjs = 0;
ms_loaded = false;
ms_cutsceneLoadStatus = CUTSCENE_NOT_LOADED;
ms_running = false;
ms_animLoaded = false;
ms_cutsceneProcessing = false;
ms_useLodMultiplier = false;
ms_wasCutsceneSkipped = false;
ms_hasFileInfo = false;
//ms_numCutsceneObjs = 0;
//ms_loaded = false;
if (gMakeResources) {
ms_pCutsceneDir = new CDirectory(CUTSCENEDIRSIZE);
ms_pCutsceneDir->ReadDirFile("ANIM\\CUTS.DIR");
}
else
ms_pCutsceneDir = (CDirectory*)dir;
ms_pCutsceneDir = new CDirectory(CUTSCENEDIRSIZE);
ms_pCutsceneDir->ReadDirFile("ANIM\\CUTS.DIR");
//numUncompressedAnims = 0;
//uncompressedAnims[0][0] = '\0';
}
void CCutsceneMgr::Write(base::cRelocatableChunkWriter& writer)
{
writer.AllocateRaw(ms_pCutsceneDir, sizeof(*ms_pCutsceneDir), 4, false, true);
writer.AllocateRaw(ms_pCutsceneDir->entries, sizeof(CDirectory::DirectoryInfo) * ms_pCutsceneDir->numEntries, 4, false, true);
writer.AddPatch(ms_pCutsceneDir);
}
void
@ -168,257 +81,157 @@ CCutsceneMgr::Shutdown(void)
void
CCutsceneMgr::LoadCutsceneData(const char *szCutsceneName)
{
int file;
uint32 size;
uint32 offset;
CPlayerPed *pPlayerPed;
ms_cutsceneProcessing = true;
if (!strcasecmp(szCutsceneName, "jb"))
ms_useLodMultiplier = true;
CTimer::Stop();
ms_pCutsceneDir->numEntries = 0;
ms_pCutsceneDir->ReadDirFile("ANIM\\CUTS.DIR");
CStreaming::RemoveUnusedModelsInLoadedList();
CGame::DrasticTidyUpMemory(true);
strcpy(ms_cutsceneName, szCutsceneName);
file = CFileMgr::OpenFile("ANIM\\CUTS.IMG", "rb");
// Load animations
sprintf(gString, "%s.IFP", szCutsceneName);
if (ms_pCutsceneDir->FindItem(gString, offset, size)) {
CStreaming::MakeSpaceFor(size << 11);
CStreaming::ImGonnaUseStreamingMemory();
CFileMgr::Seek(file, offset << 11, SEEK_SET);
CAnimManager::LoadAnimFile(file, false);
ms_cutsceneAssociations.CreateAssociations(szCutsceneName);
CStreaming::IHaveUsedStreamingMemory();
ms_animLoaded = true;
} else {
ms_animLoaded = false;
}
// Load camera data
sprintf(gString, "%s.DAT", szCutsceneName);
if (ms_pCutsceneDir->FindItem(gString, offset, size)) {
CFileMgr::Seek(file, offset << 11, SEEK_SET);
TheCamera.LoadPathSplines(file);
}
CFileMgr::CloseFile(file);
if (CGeneral::faststricmp(ms_cutsceneName, "end")) {
DMAudio.ChangeMusicMode(MUSICMODE_CUTSCENE);
int trackId = FindCutsceneAudioTrackId(szCutsceneName);
if (trackId != -1) {
printf("Start preload audio %s\n", szCutsceneName);
DMAudio.PreloadCutSceneMusic(trackId);
printf("End preload audio %s\n", szCutsceneName);
}
}
ms_cutsceneTimer = 0.0f;
ms_loaded = true;
ms_cutsceneOffset = CVector(0.0f, 0.0f, 0.0f);
pPlayerPed = FindPlayerPed();
CTimer::Update();
pPlayerPed->m_pWanted->ClearQdCrimes();
pPlayerPed->bIsVisible = false;
pPlayerPed->m_fCurrentStamina = pPlayerPed->m_fMaxStamina;
CPad::GetPad(0)->SetDisablePlayerControls(PLAYERCONTROL_CUTSCENE);
CWorld::Players[CWorld::PlayerInFocus].MakePlayerSafe(true);
}
void
CCutsceneMgr::SetHeadAnim(const char *animName, CObject *pObject)
{
CCutsceneHead *pCutsceneHead = (CCutsceneHead*)pObject;
char szAnim[CUTSCENENAMESIZE * 2];
sprintf(szAnim, "%s_%s", ms_cutsceneName, animName);
pCutsceneHead->PlayAnimation(szAnim);
}
void
CCutsceneMgr::FinishCutscene()
{
CCutsceneMgr::ms_cutsceneTimer = TheCamera.GetCutSceneFinishTime() * 0.001f;
TheCamera.FinishCutscene();
FindPlayerPed()->bIsVisible = true;
CWorld::Players[CWorld::PlayerInFocus].MakePlayerSafe(false);
}
void
CCutsceneMgr::SetupCutsceneToStart(void)
{
TheCamera.SetCamCutSceneOffSet(ms_cutsceneOffset);
TheCamera.TakeControlWithSpline(JUMP_CUT);
TheCamera.SetWideScreenOn();
ms_cutsceneOffset.z++;
for (int i = ms_numCutsceneObjs - 1; i >= 0; i--) {
assert(RwObjectGetType(ms_pCutsceneObjects[i]->m_rwObject) == rpCLUMP);
if (CAnimBlendAssociation *pAnimBlendAssoc = RpAnimBlendClumpGetFirstAssociation((RpClump*)ms_pCutsceneObjects[i]->m_rwObject)) {
assert(pAnimBlendAssoc->hierarchy->sequences[0].HasTranslation());
ms_pCutsceneObjects[i]->SetPosition(ms_cutsceneOffset + ((KeyFrameTrans*)pAnimBlendAssoc->hierarchy->sequences[0].GetKeyFrame(0))->translation);
CWorld::Add(ms_pCutsceneObjects[i]);
pAnimBlendAssoc->SetRun();
} else {
ms_pCutsceneObjects[i]->SetPosition(ms_cutsceneOffset);
}
}
CTimer::Update();
CTimer::Update();
ms_running = true;
ms_cutsceneTimer = 0.0f;
}
void
CCutsceneMgr::SetCutsceneAnim(const char *animName, CObject *pObject)
{
CAnimBlendAssociation *pNewAnim;
CAnimBlendClumpData *pAnimBlendClumpData;
assert(RwObjectGetType(pObject->m_rwObject) == rpCLUMP);
RpAnimBlendClumpRemoveAllAssociations((RpClump*)pObject->m_rwObject);
pNewAnim = ms_cutsceneAssociations.CopyAnimation(animName);
pNewAnim->SetCurrentTime(0.0f);
pNewAnim->flags |= ASSOC_HAS_TRANSLATION;
pNewAnim->flags &= ~ASSOC_RUNNING;
pAnimBlendClumpData = *RPANIMBLENDCLUMPDATA(pObject->m_rwObject);
pAnimBlendClumpData->link.Prepend(&pNewAnim->link);
}
CCutsceneHead *
CCutsceneMgr::AddCutsceneHead(CObject *pObject, int modelId)
{
CCutsceneHead *pHead = new CCutsceneHead(pObject);
pHead->SetModelIndex(modelId);
CWorld::Add(pHead);
ms_pCutsceneObjects[ms_numCutsceneObjs++] = pHead;
return pHead;
}
CCutsceneObject *
CCutsceneMgr::CreateCutsceneObject(int modelId)
{
CBaseModelInfo *pModelInfo;
CColModel *pColModel;
float radius;
RpClump *clump;
CCutsceneObject *pCutsceneObject;
if (modelId >= MI_CUTOBJ01 && modelId <= MI_CUTOBJ05) {
pModelInfo = CModelInfo::GetModelInfo(modelId);
pColModel = &CTempColModels::ms_colModelCutObj[modelId - MI_CUTOBJ01];
radius = 0.0f;
pModelInfo->SetColModel(pColModel);
clump = (RpClump*)pModelInfo->GetRwObject();
assert(RwObjectGetType((RwObject*)clump) == rpCLUMP);
RpClumpForAllAtomics(clump, CalculateBoundingSphereRadiusCB, &radius);
pColModel->boundingSphere.radius = radius;
pColModel->boundingBox.min = CVector(-radius, -radius, -radius);
pColModel->boundingBox.max = CVector(radius, radius, radius);
}
pCutsceneObject = new CCutsceneObject();
pCutsceneObject->SetModelIndex(modelId);
ms_pCutsceneObjects[ms_numCutsceneObjs++] = pCutsceneObject;
return pCutsceneObject;
LoadCutsceneData_overlay(szCutsceneName);
}
void
CCutsceneMgr::DeleteCutsceneData(void)
{
if (!ms_loaded) return;
DeleteCutsceneData_overlay();
if (bModelsRemovedForCutscene)
LoadEverythingBecauseCutsceneDeletedAllOfIt();
}
ms_cutsceneProcessing = false;
ms_useLodMultiplier = false;
void
CCutsceneMgr::RemoveEverythingBecauseCutsceneDoesntFitInMemory()
{
//CStreaming::ms_disableStreaming = true;
CWorld::ClearExcitingStuffFromArea(FindPlayerCoors(), 120.0f, true);
CColStore::RemoveAllCollision();
CWorld::bProcessCutsceneOnly = true;
/*ms_cutsceneProcessing = true;
for (--ms_numCutsceneObjs; ms_numCutsceneObjs >= 0; ms_numCutsceneObjs--) {
CWorld::Remove(ms_pCutsceneObjects[ms_numCutsceneObjs]);
ms_pCutsceneObjects[ms_numCutsceneObjs]->DeleteRwObject();
delete ms_pCutsceneObjects[ms_numCutsceneObjs];
ms_pCutsceneObjects[ms_numCutsceneObjs] = nil;
for (int i = CPools::GetPedPool()->GetSize() - 1; i >= 0; i--) {
CPed *pPed = CPools::GetPedPool()->GetSlot(i);
if (pPed) {
if (!pPed->IsPlayer() && pPed->CanBeDeleted()) {
CWorld::Remove(pPed);
delete pPed;
}
}
}
ms_numCutsceneObjs = 0;
if (ms_animLoaded)
CAnimManager::RemoveLastAnimFile();
ms_animLoaded = false;
TheCamera.RestoreWithJumpCut();
TheCamera.SetWideScreenOff();
ms_running = false;
ms_loaded = false;
FindPlayerPed()->bIsVisible = true;
CPad::GetPad(0)->SetEnablePlayerControls(PLAYERCONTROL_CUTSCENE);
CWorld::Players[CWorld::PlayerInFocus].MakePlayerSafe(false);
if (CGeneral::faststricmp(ms_cutsceneName, "end")) {
DMAudio.StopCutSceneMusic();
if (CGeneral::faststricmp(ms_cutsceneName, "bet"))
DMAudio.ChangeMusicMode(MUSICMODE_GAME);
for (int i = CPools::GetVehiclePool()->GetSize() - 1; i >= 0; i--) {
CVehicle *pVehicle = CPools::GetVehiclePool()->GetSlot(i);
if (pVehicle) {
if (pVehicle->CanBeDeleted()) {
CWorld::Remove(pVehicle);
delete pVehicle;
}
}
}
CTimer::Stop();
CGame::DrasticTidyUpMemory(TheCamera.GetScreenFadeStatus() == FADE_2);
CTimer::Update();
CWorld::bProcessCutsceneOnly = true;
//bIsEverythingRemovedFromTheWorldForTheBiggestFuckoffCutsceneEver = true;*/
CStreaming::RemoveCurrentZonesModels();
while (CStreaming::RemoveLoadedVehicle());
CRadar::RemoveRadarSections();
CStreaming::SetModelIsDeletable(MI_MALE01);
CStreaming::SetModelTxdIsDeletable(MI_MALE01);
CStreaming::SetModelIsDeletable(MI_COLT45);
CStreaming::SetModelTxdIsDeletable(MI_COLT45);
CStreaming::SetModelIsDeletable(MI_NIGHTSTICK);
CStreaming::SetModelTxdIsDeletable(MI_NIGHTSTICK);
CStreaming::SetModelIsDeletable(MI_MISSILE);
CStreaming::SetModelTxdIsDeletable(MI_MISSILE);
/*for (int i = CPools::GetDummyPool()->GetSize() - 1; i >= 0; i--) {
CDummy* pDummy = CPools::GetDummyPool()->GetSlot(i);
if (pDummy)
pDummy->DeleteRwObject();
}
for (int i = CPools::GetObjectPool()->GetSize() - 1; i >= 0; i--) {
CObject* pObject = CPools::GetObjectPool()->GetSlot(i);
if (pObject)
pObject->DeleteRwObject();
}
for (int i = CPools::GetBuildingPool()->GetSize() - 1; i >= 0; i--) {
CBuilding* pBuilding = CPools::GetBuildingPool()->GetSlot(i);
if (pBuilding && pBuilding->m_rwObject != nil && pBuilding->bIsBIGBuilding && pBuilding->bStreamBIGBuilding) {
if (pBuilding->bIsBIGBuilding)
CStreaming::RequestModel(pBuilding->GetModelIndex(), 0);
if (!pBuilding->bImBeingRendered)
pBuilding->DeleteRwObject();
}
}*/
CPlayerPed *pPlayerPed = FindPlayerPed();
pPlayerPed->RemoveWeaponAnims(0, -1000.0f);
NumberOfSavedWeapons = 0;
for (int i = 0; i < TOTAL_WEAPON_SLOTS; i++) {
if (pPlayerPed->m_weapons[i].m_eWeaponType != WEAPONTYPE_UNARMED) {
SavedWeaponIDs[NumberOfSavedWeapons] = pPlayerPed->m_weapons[i].m_eWeaponType;
SavedWeaponAmmo[NumberOfSavedWeapons] = pPlayerPed->m_weapons[i].m_nAmmoTotal;
NumberOfSavedWeapons++;
}
}
pPlayerPed->ClearWeapons();
bModelsRemovedForCutscene = true;
//CGame::DrasticTidyUpMemory(true);
}
void
CCutsceneMgr::LoadEverythingBecauseCutsceneDeletedAllOfIt()
{
bModelsRemovedForCutscene = false;
CStreaming::LoadInitialPeds();
CStreaming::LoadInitialWeapons();
//CStreaming::LoadInitialVehicles();
CPlayerPed *pPlayerPed = FindPlayerPed();
for (int i = 0; i < NumberOfSavedWeapons; i++) {
int32 weaponModelId = CWeaponInfo::GetWeaponInfo(SavedWeaponIDs[i])->m_nModelId;
uint8 flags = CStreaming::ms_aInfoForModel[weaponModelId].m_flags;
CStreaming::RequestModel(weaponModelId, STREAMFLAGS_DONT_REMOVE);
CStreaming::LoadAllRequestedModels(false);
if (CWeaponInfo::GetWeaponInfo(SavedWeaponIDs[i])->m_nModel2Id != -1) {
CStreaming::RequestModel(CWeaponInfo::GetWeaponInfo(SavedWeaponIDs[i])->m_nModel2Id, 0);
CStreaming::LoadAllRequestedModels(false);
}
if (!(flags & STREAMFLAGS_DONT_REMOVE))
CStreaming::SetModelIsDeletable(weaponModelId);
pPlayerPed->GiveWeapon(SavedWeaponIDs[i], SavedWeaponAmmo[i], true);
}
NumberOfSavedWeapons = 0;
}
void
CCutsceneMgr::Update(void)
{
enum {
CUTSCENE_LOADING_0 = 0,
CUTSCENE_LOADING_AUDIO,
CUTSCENE_LOADING_2,
CUTSCENE_LOADING_3,
CUTSCENE_LOADING_4
};
switch (ms_cutsceneLoadStatus) {
case CUTSCENE_LOADING_AUDIO:
SetupCutsceneToStart();
if (CGeneral::faststricmp(ms_cutsceneName, "end"))
DMAudio.PlayPreloadedCutSceneMusic();
ms_cutsceneLoadStatus++;
break;
case CUTSCENE_LOADING_2:
case CUTSCENE_LOADING_3:
ms_cutsceneLoadStatus++;
break;
case CUTSCENE_LOADING_4:
ms_cutsceneLoadStatus = CUTSCENE_LOADING_0;
break;
default:
break;
}
if (!ms_running) return;
ms_cutsceneTimer += CTimer::GetTimeStepNonClippedInSeconds();
if (CGeneral::faststricmp(ms_cutsceneName, "end") && TheCamera.Cams[TheCamera.ActiveCam].Mode == CCam::MODE_FLYBY && ms_cutsceneLoadStatus == CUTSCENE_LOADING_0) {
if (CPad::GetPad(0)->GetCrossJustDown()
|| (CGame::playingIntro && CPad::GetPad(0)->GetStartJustDown())
|| CPad::GetPad(0)->GetLeftMouseJustDown()
|| CPad::GetPad(0)->GetEnterJustDown()
|| CPad::GetPad(0)->GetCharJustDown(' '))
FinishCutscene();
}
if (ms_cutsceneLoadStatus != CUTSCENE_NOT_LOADED)
Update_overlay();
}
bool CCutsceneMgr::HasCutsceneFinished(void) { return TheCamera.GetPositionAlongSpline() == 1.0f; }
void
CCutsceneMgr::LoadAnimationUncompressed(char const* name)
{
strcpy(ms_aUncompressedCutsceneAnims[ms_numUncompressedCutsceneAnims], name);
// Because that's how CAnimManager knows the end of array
++ms_numUncompressedCutsceneAnims;
assert(ms_numUncompressedCutsceneAnims < ARRAY_SIZE(ms_aUncompressedCutsceneAnims));
ms_aUncompressedCutsceneAnims[ms_numUncompressedCutsceneAnims][0] = '\0';
}
bool
CCutsceneMgr::IsCutsceneSkipButtonBeingPressed()
{
return (CPad::GetPad(0)->GetCrossJustDown()
|| CPad::GetPad(0)->GetLeftMouseJustDown()
|| CPad::GetPad(0)->GetEnterJustDown()
|| CPad::GetPad(0)->GetCharJustDown(' '));
}
void
CCutsceneMgr::AppendToNextCutscene(const char *object, const char *anim)
{
strcpy(ms_cAppendObjectName[ms_numAppendObjectNames], object);
strlwr(ms_cAppendObjectName[ms_numAppendObjectNames]);
strcpy(ms_cAppendAnimName[ms_numAppendObjectNames], anim);
strlwr(ms_cAppendAnimName[ms_numAppendObjectNames]);
ms_numAppendObjectNames++;
}

View File

@ -1,14 +1,69 @@
#pragma once
#include "CutsceneObject.h"
#define CUTSCENENAMESIZE 8
class CDirectory;
class CAnimBlendAssocGroup;
class CCutsceneHead;
enum {
CUTSCENE_NOT_LOADED = 0,
CUTSCENE_LOADING,
CUTSCENE_LOADED,
};
enum {
CUTSCENE_PLAYING_0 = 0,
CUTSCENE_STARTED,
CUTSCENE_PLAYING_2,
CUTSCENE_PLAYING_3,
CUTSCENE_PLAYING_4,
};
enum
{
NAMELENGTH = 32,
NUM_CUTS_PARTICLE_EFFECTS = 8,
NUM_CUTS_MAX_TEXTS = 64,
NUM_CUTS_UNCOMPRESSED_ANIMS = 8,
TEXT_KEY_SIZE = 8,
CUTSCENENAMESIZE = 8
};
struct sToHideItem
{
float x, y, z;
char name[NAMELENGTH];
};
// TODO: figure out from SA
// this is unused in LCS anyway
struct sParticleEffect
{
char name[NAMELENGTH];
bool bPlayed; // ??
int iTime;
int unk1;
int unk2;
char name2[NAMELENGTH];
float x;
float y;
float z;
float unkX;
float unkY;
float unkZ;
bool unk10;
bool unk11;
};
struct sAttachInfo
{
int attachToId, objectId, boneId;
};
class CCutsceneMgr
{
static bool ms_running;
static CCutsceneObject *ms_pCutsceneObjects[NUMCUTSCENEOBJECTS];
@ -21,31 +76,104 @@ class CCutsceneMgr
static CAnimBlendAssocGroup ms_cutsceneAssociations;
static CVector ms_cutsceneOffset;
static float ms_cutsceneTimer;
static bool ms_wasCutsceneSkipped;
static bool ms_cutsceneProcessing;
static bool ms_useCutsceneShadows;
static bool ms_hasFileInfo;
static int ms_numLoadObjectNames;
static char ms_cAppendAnimName[NUMCUTSCENEOBJECTS][NAMELENGTH];
static char ms_cAppendObjectName[NUMCUTSCENEOBJECTS][NAMELENGTH];
static int ms_numAppendObjectNames;
public:
static CDirectory *ms_pCutsceneDir;
static uint32 ms_cutsceneLoadStatus;
static bool mCutsceneSkipFading;
static int mCutsceneSkipFadeTime;
static float m_fPrevCarDensity;
static float m_fPrevPedDensity;
static bool m_PrevExtraColourOn;
static uint32 m_PrevExtraColour;
static uint32 ms_iNumParticleEffects;
static sParticleEffect ms_pParticleEffects[NUM_CUTS_PARTICLE_EFFECTS];
static sToHideItem ms_crToHideItems[NUMCUTSCENEOBJECTS];
static uint32 ms_iNumHiddenEntities;
static CEntity *ms_pHiddenEntities[NUMCUTSCENEOBJECTS];
static int ms_numAttachObjectToBones;
static bool ms_bRepeatObject[NUMCUTSCENEOBJECTS];
static sAttachInfo ms_iAttachObjectToBone[NUMCUTSCENEOBJECTS];
static uint32 ms_numUncompressedCutsceneAnims;
static char ms_aUncompressedCutsceneAnims[NUM_CUTS_UNCOMPRESSED_ANIMS][NAMELENGTH];
static uint32 ms_iTextDuration[NUM_CUTS_MAX_TEXTS];
static uint32 ms_iTextStartTime[NUM_CUTS_MAX_TEXTS];
static char ms_cTextOutput[NUM_CUTS_MAX_TEXTS][TEXT_KEY_SIZE];
static uint32 ms_currTextOutput;
static uint32 ms_numTextOutput;
static uint32 ms_iModelIndex[NUMCUTSCENEOBJECTS];
static char ms_cLoadAnimName[NUMCUTSCENEOBJECTS][NAMELENGTH];
static char ms_cLoadObjectName[NUMCUTSCENEOBJECTS][NAMELENGTH];
static uint32 ms_cutscenePlayStatus;
static void StartCutscene();
static void StartCutsceneProcessing() { ms_cutsceneProcessing = true; }
static bool IsRunning(void) { return ms_running; }
static bool HasLoaded(void) { return ms_loaded; }
static bool IsCutsceneProcessing(void) { return ms_cutsceneProcessing; }
static bool WasCutsceneSkipped(void) { return ms_wasCutsceneSkipped; }
static bool UseLodMultiplier(void) { return ms_useLodMultiplier; }
static CCutsceneObject* GetCutsceneObject(int id) { return ms_pCutsceneObjects[id]; }
static int GetCutsceneTimeInMilleseconds(void) { return 1000.0f * ms_cutsceneTimer; }
static uint32 GetCutsceneTimeInMilleseconds(void);
static char *GetCutsceneName(void) { return ms_cutsceneName; }
static void SetCutsceneOffset(const CVector& vec) { ms_cutsceneOffset = vec; }
static bool HasCutsceneFinished(void);
static void Initialise(void);
static void Initialise(void *dir = nil);
static void Shutdown(void);
static void LoadCutsceneData(const char *szCutsceneName);
static void FinishCutscene(void);
static void SetHeadAnim(const char *animName, CObject *pObject);
static void SetupCutsceneToStart(void);
static void SetCutsceneAnim(const char *animName, CObject *pObject);
static CCutsceneHead *AddCutsceneHead(CObject *pObject, int modelId);
static void SetCutsceneAnimToLoop(const char *animName);
static CCutsceneHead *SetHeadAnim(const char*, CObject *pObject);
static CCutsceneObject *CreateCutsceneObject(int modelId);
static void DeleteCutsceneData(void);
static void LoadAnimationUncompressed(char const*);
static void Update(void);
static void AttachObjectToParent(CObject *pObject, CEntity *pAttachTo);
static void AttachObjectToFrame(CObject *pObject, CEntity *pAttachTo, const char *frame);
static void AttachObjectToBone(CObject *pObject, CObject *pAttachTo, int frame);
static void RemoveEverythingBecauseCutsceneDoesntFitInMemory();
static void LoadEverythingBecauseCutsceneDeletedAllOfIt();
static void DisableCutsceneShadows() { ms_useCutsceneShadows = false; }
static void LoadCutsceneData_overlay(const char* szCutsceneName);
static bool LoadCutsceneData_postload(bool b = false);
static void Update_overlay(void);
static void DeleteCutsceneData_overlay(void);
static bool IsCutsceneSkipButtonBeingPressed();
static void AppendToNextCutscene(const char *object, const char *anim);
static void LoadCutsceneData_preload();
static void LoadCutsceneData_loading();
static void HideRequestedObjects();
static bool PresubBodge();
static void Write(base::cRelocatableChunkWriter& writer);
};

File diff suppressed because it is too large Load Diff

View File

@ -17,6 +17,8 @@ void FrameUpdateCallBackSkinned(AnimBlendFrameData *frame, void *arg);
void FrameUpdateCallBackWithVelocityExtractionSkinned(AnimBlendFrameData *frame, void *arg);
void FrameUpdateCallBackWith3dVelocityExtractionSkinned(AnimBlendFrameData *frame, void *arg);
void FrameUpdateCallBackNonSkinnedCompressed(AnimBlendFrameData *frame, void *arg);
void FrameUpdateCallBackSkinnedCompressed(AnimBlendFrameData *frame, void *arg);
void
FrameUpdateCallBackNonSkinned(AnimBlendFrameData *frame, void *arg)
@ -228,12 +230,11 @@ FrameUpdateCallBackWith3dVelocityExtractionNonSkinned(AnimBlendFrameData *frame,
RwMatrixUpdate(mat);
}
#ifdef PED_SKIN
void
FrameUpdateCallBackSkinned(AnimBlendFrameData *frame, void *arg)
{
CVector vec, pos(0.0f, 0.0f, 0.0f);
float transBlendAmount = 0.0f;
CQuaternion q, rot(0.0f, 0.0f, 0.0f, 0.0f);
float totalBlendAmount = 0.0f;
RpHAnimStdInterpFrame *xform = frame->hanimFrame;
@ -257,13 +258,13 @@ FrameUpdateCallBackSkinned(AnimBlendFrameData *frame, void *arg)
for(node = updateData->nodes; *node; node++){
if((*node)->sequence){
(*node)->Update(vec, q, 1.0f-totalBlendAmount);
if((*node)->sequence->HasTranslation())
if((*node)->sequence->HasTranslation()){
pos += vec;
#ifdef FIX_BUGS
transBlendAmount += (*node)->association->blendAmount;
}
if(DotProduct(rot, q) < 0.0f)
rot -= q;
else
#endif
rot += q;
}
++*node;
@ -278,12 +279,12 @@ FrameUpdateCallBackSkinned(AnimBlendFrameData *frame, void *arg)
}
if((frame->flag & AnimBlendFrameData::IGNORE_TRANSLATION) == 0){
xform->t.x = pos.x;
xform->t.y = pos.y;
xform->t.z = pos.z;
xform->t.x += frame->resetPos.x;
xform->t.y += frame->resetPos.y;
xform->t.z += frame->resetPos.z;
xform->t.x = transBlendAmount*pos.x;
xform->t.y = transBlendAmount*pos.y;
xform->t.z = transBlendAmount*pos.z;
xform->t.x += (1.0f-transBlendAmount)*frame->resetPos.x;
xform->t.y += (1.0f-transBlendAmount)*frame->resetPos.y;
xform->t.z += (1.0f-transBlendAmount)*frame->resetPos.z;
}
}
@ -319,11 +320,9 @@ FrameUpdateCallBackWithVelocityExtractionSkinned(AnimBlendFrameData *frame, void
for(node = updateData->nodes; *node; node++){
if((*node)->sequence){
bool nodelooped = (*node)->Update(vec, q, 1.0f-totalBlendAmount);
#ifdef FIX_BUGS
if(DotProduct(rot, q) < 0.0f)
rot -= q;
else
#endif
rot += q;
if((*node)->sequence->HasTranslation()){
pos += vec;
@ -442,4 +441,228 @@ FrameUpdateCallBackWith3dVelocityExtractionSkinned(AnimBlendFrameData *frame, vo
}
}
void
FrameUpdateCallBackOffscreen(AnimBlendFrameData *frame, void *arg)
{
if(frame->flag & AnimBlendFrameData::VELOCITY_EXTRACTION && gpAnimBlendClump->velocity2d)
FrameUpdateCallBackWithVelocityExtractionSkinned(frame, arg);
}
void
FrameUpdateCallBackNonSkinnedCompressed(AnimBlendFrameData *frame, void *arg)
{
CVector vec, pos(0.0f, 0.0f, 0.0f);
CQuaternion q, rot(0.0f, 0.0f, 0.0f, 0.0f);
float totalBlendAmount = 0.0f;
CVector trans(0.0f, 0.0f, 0.0f);
CVector cur(0.0f, 0.0f, 0.0f);
CVector end(0.0f, 0.0f, 0.0f);
bool looped = false;
RwMatrix *mat = RwFrameGetMatrix(frame->frame);
CAnimBlendNode **node;
AnimBlendFrameUpdateData *updateData = (AnimBlendFrameUpdateData*)arg;
if(frame->flag & AnimBlendFrameData::VELOCITY_EXTRACTION &&
gpAnimBlendClump->velocity2d){
if(updateData->foobar)
for(node = updateData->nodes; *node; node++)
if((*node)->sequence && (*node)->association->IsPartial())
totalBlendAmount += (*node)->association->blendAmount;
for(node = updateData->nodes; *node; node++)
if((*node)->sequence && (*node)->sequence->HasTranslation()){
if((*node)->association->HasTranslation()){
(*node)->GetCurrentTranslationCompressed(vec, 1.0f-totalBlendAmount);
cur += vec;
}
}
for(node = updateData->nodes; *node; node++){
if((*node)->sequence){
bool nodelooped = (*node)->UpdateCompressed(vec, q, 1.0f-totalBlendAmount);
#ifdef FIX_BUGS
if(DotProduct(rot, q) < 0.0f)
rot -= q;
else
#endif
rot += q;
if((*node)->sequence->HasTranslation()){
pos += vec;
if((*node)->association->HasTranslation()){
trans += vec;
looped |= nodelooped;
if(nodelooped){
(*node)->GetEndTranslationCompressed(vec, 1.0f-totalBlendAmount);
end += vec;
}
}
}
}
++*node;
}
if((frame->flag & AnimBlendFrameData::IGNORE_ROTATION) == 0){
RwMatrixSetIdentity(mat);
rot.Normalise();
rot.Get(mat);
}
if((frame->flag & AnimBlendFrameData::IGNORE_TRANSLATION) == 0){
*gpAnimBlendClump->velocity3d = trans - cur;
if(looped)
*gpAnimBlendClump->velocity3d += end;
mat->pos.x = (pos - trans).x + frame->resetPos.x;
mat->pos.y = (pos - trans).y + frame->resetPos.y;
mat->pos.z = (pos - trans).z + frame->resetPos.z;
}
RwMatrixUpdate(mat);
}else{
if(updateData->foobar)
for(node = updateData->nodes; *node; node++)
if((*node)->sequence && (*node)->association->IsPartial())
totalBlendAmount += (*node)->association->blendAmount;
for(node = updateData->nodes; *node; node++){
if((*node)->sequence){
(*node)->UpdateCompressed(vec, q, 1.0f-totalBlendAmount);
if((*node)->sequence->HasTranslation())
pos += vec;
#ifdef FIX_BUGS
if(DotProduct(rot, q) < 0.0f)
rot -= q;
else
#endif
rot += q;
}
++*node;
}
if((frame->flag & AnimBlendFrameData::IGNORE_ROTATION) == 0){
RwMatrixSetIdentity(mat);
rot.Normalise();
rot.Get(mat);
}
if((frame->flag & AnimBlendFrameData::IGNORE_TRANSLATION) == 0){
mat->pos.x = pos.x;
mat->pos.y = pos.y;
mat->pos.z = pos.z;
mat->pos.x += frame->resetPos.x;
mat->pos.y += frame->resetPos.y;
mat->pos.z += frame->resetPos.z;
}
RwMatrixUpdate(mat);
}
}
void
FrameUpdateCallBackSkinnedCompressed(AnimBlendFrameData *frame, void *arg)
{
CVector vec, pos(0.0f, 0.0f, 0.0f);
CQuaternion q, rot(0.0f, 0.0f, 0.0f, 0.0f);
float totalBlendAmount = 0.0f;
CVector trans(0.0f, 0.0f, 0.0f);
CVector cur(0.0f, 0.0f, 0.0f);
CVector end(0.0f, 0.0f, 0.0f);
bool looped = false;
RpHAnimStdInterpFrame *xform = frame->hanimFrame;
CAnimBlendNode **node;
AnimBlendFrameUpdateData *updateData = (AnimBlendFrameUpdateData*)arg;
if(frame->flag & AnimBlendFrameData::VELOCITY_EXTRACTION &&
gpAnimBlendClump->velocity2d){
if(updateData->foobar)
for(node = updateData->nodes; *node; node++)
if((*node)->sequence && (*node)->association->IsPartial())
totalBlendAmount += (*node)->association->blendAmount;
for(node = updateData->nodes; *node; node++)
if((*node)->sequence && (*node)->sequence->HasTranslation()){
if((*node)->association->HasTranslation()){
(*node)->GetCurrentTranslationCompressed(vec, 1.0f-totalBlendAmount);
cur += vec;
}
}
for(node = updateData->nodes; *node; node++){
if((*node)->sequence){
bool nodelooped = (*node)->UpdateCompressed(vec, q, 1.0f-totalBlendAmount);
#ifdef FIX_BUGS
if(DotProduct(rot, q) < 0.0f)
rot -= q;
else
#endif
rot += q;
if((*node)->sequence->HasTranslation()){
pos += vec;
if((*node)->association->HasTranslation()){
trans += vec;
looped |= nodelooped;
if(nodelooped){
(*node)->GetEndTranslationCompressed(vec, 1.0f-totalBlendAmount);
end += vec;
}
}
}
}
++*node;
}
if((frame->flag & AnimBlendFrameData::IGNORE_ROTATION) == 0){
rot.Normalise();
xform->q.imag.x = rot.x;
xform->q.imag.y = rot.y;
xform->q.imag.z = rot.z;
xform->q.real = rot.w;
}
if((frame->flag & AnimBlendFrameData::IGNORE_TRANSLATION) == 0){
*gpAnimBlendClump->velocity3d = trans - cur;
if(looped)
*gpAnimBlendClump->velocity3d += end;
xform->t.x = (pos - trans).x + frame->resetPos.x;
xform->t.y = (pos - trans).y + frame->resetPos.y;
xform->t.z = (pos - trans).z + frame->resetPos.z;
}
}else{
float transBlendAmount = 0.0f;
if(updateData->foobar)
for(node = updateData->nodes; *node; node++)
if((*node)->sequence && (*node)->association->IsPartial())
totalBlendAmount += (*node)->association->blendAmount;
for(node = updateData->nodes; *node; node++){
if((*node)->sequence){
(*node)->UpdateCompressed(vec, q, 1.0f-totalBlendAmount);
if((*node)->sequence->HasTranslation()){
pos += vec;
transBlendAmount += (*node)->association->blendAmount;
}
if(DotProduct(rot, q) < 0.0f)
rot -= q;
else
rot += q;
}
++*node;
}
if((frame->flag & AnimBlendFrameData::IGNORE_ROTATION) == 0){
rot.Normalise();
xform->q.imag.x = rot.x;
xform->q.imag.y = rot.y;
xform->q.imag.z = rot.z;
xform->q.real = rot.w;
}
if((frame->flag & AnimBlendFrameData::IGNORE_TRANSLATION) == 0){
xform->t.x = transBlendAmount*pos.x;
xform->t.y = transBlendAmount*pos.y;
xform->t.z = transBlendAmount*pos.z;
xform->t.x += (1.0f-transBlendAmount)*frame->resetPos.x;
xform->t.y += (1.0f-transBlendAmount)*frame->resetPos.y;
xform->t.z += (1.0f-transBlendAmount)*frame->resetPos.z;
}
}
}

View File

@ -10,9 +10,7 @@
#include "AnimBlendAssociation.h"
#include "AnimManager.h"
#include "RpAnimBlend.h"
#ifdef PED_SKIN
#include "PedModelInfo.h"
#endif
RwInt32 ClumpOffset;
@ -142,7 +140,6 @@ FrameInitCBskin(AnimBlendFrameData *frameData, void*)
frameData->flag = 0;
}
#ifdef PED_SKIN
void
RpAnimBlendClumpInitSkinned(RpClump *clump)
{
@ -156,7 +153,7 @@ RpAnimBlendClumpInitSkinned(RpClump *clump)
RpAnimBlendAllocateData(clump);
clumpData = *RPANIMBLENDCLUMPDATA(clump);
atomic = IsClumpSkinned(clump);
atomic = GetFirstAtomic(clump);
assert(atomic);
skin = RpSkinGeometryGetSkin(RpAtomicGetGeometry(atomic));
assert(skin);
@ -171,12 +168,15 @@ RpAnimBlendClumpInitSkinned(RpClump *clump)
for(i = 0; i < numBones; i++){
frames[i].nodeID = HIERNODEID(hier, i);
frames[i].resetPos = boneTab[i];
#ifdef LIBRW
frames[i].hanimFrame = (RpHAnimStdInterpFrame*)rpHANIMHIERARCHYGETINTERPFRAME(hier, i);
#else
frames[i].hanimFrame = (RpHAnimStdInterpFrame*)rtANIMGETINTERPFRAME(hier->currentAnim, i);
#endif
}
clumpData->ForAllFrames(FrameInitCBskin, nil);
clumpData->frames[0].flag |= AnimBlendFrameData::VELOCITY_EXTRACTION;
}
#endif
void
RpAnimBlendClumpInitNotSkinned(RpClump *clump)
@ -200,11 +200,9 @@ RpAnimBlendClumpInitNotSkinned(RpClump *clump)
void
RpAnimBlendClumpInit(RpClump *clump)
{
#ifdef PED_SKIN
if(IsClumpSkinned(clump))
RpAnimBlendClumpInitSkinned(clump);
else
#endif
RpAnimBlendClumpInitNotSkinned(clump);
}
@ -364,7 +362,6 @@ FillFrameArrayCBnonskin(AnimBlendFrameData *frame, void *arg)
frames[CVisibilityPlugins::GetFrameHierarchyId(frame->frame)] = frame;
}
#ifdef PED_SKIN
void
RpAnimBlendClumpFillFrameArraySkin(RpClump *clump, AnimBlendFrameData **frames)
{
@ -374,22 +371,18 @@ RpAnimBlendClumpFillFrameArraySkin(RpClump *clump, AnimBlendFrameData **frames)
for(i = PED_MID; i < PED_NODE_MAX; i++)
frames[i] = &clumpData->frames[RpHAnimIDGetIndex(hier, ConvertPedNode2BoneTag(i))];
}
#endif
void
RpAnimBlendClumpFillFrameArray(RpClump *clump, AnimBlendFrameData **frames)
{
#ifdef PED_SKIN
if(IsClumpSkinned(clump))
RpAnimBlendClumpFillFrameArraySkin(clump, frames);
else
#endif
(*RPANIMBLENDCLUMPDATA(clump))->ForAllFrames(FillFrameArrayCBnonskin, frames);
}
AnimBlendFrameData *pFrameDataFound;
// FrameFindCallBack on PS2
void
FrameFindByNameCBnonskin(AnimBlendFrameData *frame, void *arg)
{
@ -398,7 +391,6 @@ FrameFindByNameCBnonskin(AnimBlendFrameData *frame, void *arg)
pFrameDataFound = frame;
}
#ifdef PED_SKIN
void
FrameFindByNameCBskin(AnimBlendFrameData *frame, void *arg)
{
@ -406,25 +398,58 @@ FrameFindByNameCBskin(AnimBlendFrameData *frame, void *arg)
if(name && CGeneral::faststricmp(name, (char*)arg) == 0)
pFrameDataFound = frame;
}
#endif
void
FrameFindByBoneCB(AnimBlendFrameData *frame, void *arg)
{
if(frame->nodeID == (int32)(uintptr)arg)
pFrameDataFound = frame;
}
AnimBlendFrameData*
RpAnimBlendClumpFindFrame(RpClump *clump, const char *name)
{
pFrameDataFound = nil;
#ifdef PED_SKIN
if(IsClumpSkinned(clump))
(*RPANIMBLENDCLUMPDATA(clump))->ForAllFrames(FrameFindByNameCBskin, (void*)name);
else
#endif
(*RPANIMBLENDCLUMPDATA(clump))->ForAllFrames(FrameFindByNameCBnonskin, (void*)name);
return pFrameDataFound;
}
AnimBlendFrameData*
RpAnimBlendClumpFindBone(RpClump *clump, uint32 boneTag)
{
pFrameDataFound = nil;
(*RPANIMBLENDCLUMPDATA(clump))->ForAllFrames(FrameFindByBoneCB, (void*)boneTag);
return pFrameDataFound;
}
void
RpAnimBlendClumpUpdateAnimations(RpClump *clump, float timeDelta)
RpAnimBlendNodeUpdateKeyframes(AnimBlendFrameData *frames, AnimBlendFrameUpdateData *updateData, int32 numNodes)
{
CAnimBlendNode **node;
int i;
for(node = updateData->nodes; *node; node++){
CAnimBlendAssociation *a = (*node)->association;
for(i = 0; i < numNodes; i++)
if((frames[i].flag & AnimBlendFrameData::VELOCITY_EXTRACTION) == 0 ||
gpAnimBlendClump->velocity2d == nil){
if((*node)[i].sequence)
(*node)[i].FindKeyFrame(a->currentTime - a->timeStep);
}
}
}
// TODO:
// CAnimBlendClumpData::LoadFramesIntoSPR
// CAnimBlendClumpData::ForAllFramesInSPR
void
RpAnimBlendClumpUpdateAnimations(RpClump *clump, float timeDelta, bool doRender)
{
int i;
CAnimBlendAssociation *assoc;
AnimBlendFrameUpdateData updateData;
float totalLength = 0.0f;
float totalBlend = 0.0f;
@ -440,30 +465,53 @@ RpAnimBlendClumpUpdateAnimations(RpClump *clump, float timeDelta)
updateData.foobar = 0;
for(link = clumpData->link.next; link; link = next){
next = link->next;
CAnimBlendAssociation *assoc = CAnimBlendAssociation::FromLink(link);
assoc = CAnimBlendAssociation::FromLink(link);
if(assoc->UpdateBlend(timeDelta)){
CAnimManager::UncompressAnimation(assoc->hierarchy);
updateData.nodes[i++] = assoc->GetNode(0);
if(assoc->flags & ASSOC_MOVEMENT){
totalLength += assoc->hierarchy->totalLength/assoc->speed * assoc->blendAmount;
totalBlend += assoc->blendAmount;
if(assoc->hierarchy->sequences){
CAnimManager::UncompressAnimation(assoc->hierarchy);
if(i < 11)
updateData.nodes[i++] = assoc->GetNode(0);
if(assoc->flags & ASSOC_MOVEMENT){
totalLength += assoc->hierarchy->totalLength/assoc->speed * assoc->blendAmount;
totalBlend += assoc->blendAmount;
}else
updateData.foobar = 1;
}else
updateData.foobar = 1;
debug("anim %s is not loaded\n", assoc->hierarchy->name);
}
}
updateData.nodes[i] = nil;
#ifdef PED_SKIN
if(IsClumpSkinned(clump))
clumpData->ForAllFrames(FrameUpdateCallBackSkinned, &updateData);
else
#endif
clumpData->ForAllFrames(FrameUpdateCallBackNonSkinned, &updateData);
for(link = clumpData->link.next; link; link = link->next){
CAnimBlendAssociation *assoc = CAnimBlendAssociation::FromLink(link);
float relSpeed = totalLength == 0.0f ? 1.0f : totalBlend/totalLength;
assoc->UpdateTime(timeDelta, relSpeed);
assoc = CAnimBlendAssociation::FromLink(link);
assoc->UpdateTimeStep(timeDelta, totalLength == 0.0f ? 1.0f : totalBlend/totalLength);
}
updateData.nodes[i] = nil;
#ifdef ANIM_COMPRESSION
if(clumpData->frames[0].flag & AnimBlendFrameData::COMPRESSED){
if(IsClumpSkinned(clump))
clumpData->ForAllFrames(FrameUpdateCallBackSkinnedCompressed, &updateData);
else
clumpData->ForAllFrames(FrameUpdateCallBackNonSkinnedCompressed, &updateData);
}else
#endif
if(doRender){
if(clumpData->frames[0].flag & AnimBlendFrameData::UPDATE_KEYFRAMES)
RpAnimBlendNodeUpdateKeyframes(clumpData->frames, &updateData, clumpData->numFrames);
if(IsClumpSkinned(clump))
clumpData->ForAllFrames(FrameUpdateCallBackSkinned, &updateData);
else
clumpData->ForAllFrames(FrameUpdateCallBackNonSkinned, &updateData);
clumpData->frames[0].flag &= ~AnimBlendFrameData::UPDATE_KEYFRAMES;
}else{
clumpData->ForAllFrames(FrameUpdateCallBackOffscreen, &updateData);
clumpData->frames[0].flag |= AnimBlendFrameData::UPDATE_KEYFRAMES;
}
for(link = clumpData->link.next; link; link = link->next){
assoc = CAnimBlendAssociation::FromLink(link);
assoc->UpdateTime(timeDelta, totalLength == 0.0f ? 1.0f : totalBlend/totalLength);
}
RwFrameUpdateObjects(RpClumpGetFrame(clump));
}

View File

@ -26,6 +26,7 @@ void RpAnimBlendClumpInit(RpClump *clump);
bool RpAnimBlendClumpIsInitialized(RpClump *clump);
void RpAnimBlendClumpFillFrameArray(RpClump* clump, AnimBlendFrameData** frames);
AnimBlendFrameData *RpAnimBlendClumpFindFrame(RpClump *clump, const char *name);
AnimBlendFrameData *RpAnimBlendClumpFindBone(RpClump *clump, uint32 boneTag);
void FillFrameArrayCallBack(AnimBlendFrameData *frame, void *arg);
CAnimBlendAssociation *RpAnimBlendClumpGetAssociation(RpClump *clump, uint32 id);
CAnimBlendAssociation *RpAnimBlendClumpGetMainAssociation(RpClump *clump, CAnimBlendAssociation **assocRet, float *blendRet);
@ -34,9 +35,14 @@ CAnimBlendAssociation *RpAnimBlendClumpGetMainAssociation_N(RpClump *clump, int
CAnimBlendAssociation *RpAnimBlendClumpGetMainPartialAssociation_N(RpClump *clump, int n);
CAnimBlendAssociation *RpAnimBlendClumpGetFirstAssociation(RpClump *clump, uint32 mask);
CAnimBlendAssociation *RpAnimBlendClumpGetFirstAssociation(RpClump *clump);
void RpAnimBlendClumpUpdateAnimations(RpClump* clump, float timeDelta);
void RpAnimBlendNodeUpdateKeyframes(AnimBlendFrameData *frames, AnimBlendFrameUpdateData *updateData, int32 numNodes);
void RpAnimBlendClumpUpdateAnimations(RpClump* clump, float timeDelta, bool doRender = true);
extern CAnimBlendClumpData *gpAnimBlendClump;
void FrameUpdateCallBackNonSkinned(AnimBlendFrameData *frame, void *arg);
void FrameUpdateCallBackSkinned(AnimBlendFrameData *frame, void *arg);
void FrameUpdateCallBackOffscreen(AnimBlendFrameData *frame, void *arg);
void FrameUpdateCallBackNonSkinnedCompressed(AnimBlendFrameData *frame, void *arg);
void FrameUpdateCallBackSkinnedCompressed(AnimBlendFrameData *frame, void *arg);

View File

@ -8,8 +8,6 @@
#include "SurfaceTable.h"
#include "sampman.h"
const int CollisionSoundIntensity = 60;
void
cAudioManager::ReportCollision(CEntity *entity1, CEntity *entity2, uint8 surface1, uint8 surface2, float collisionPower,
float velocity)
@ -18,7 +16,7 @@ cAudioManager::ReportCollision(CEntity *entity1, CEntity *entity2, uint8 surface
CVector v1;
CVector v2;
if(!m_bIsInitialised || m_nCollisionEntity < 0 || m_nUserPause ||
if(!m_bIsInitialised || m_nCollisionEntity < 0 || m_bIsPaused ||
(velocity < 0.0016f && collisionPower < 0.01f))
return;
@ -32,7 +30,7 @@ cAudioManager::ReportCollision(CEntity *entity1, CEntity *entity2, uint8 surface
}
CVector pos = (v1 + v2) * 0.5f;
distSquared = GetDistanceSquared(pos);
if(distSquared < SQR(CollisionSoundIntensity)) {
if(distSquared < SQR(COLLISION_MAX_DIST)) {
m_sCollisionManager.m_sQueue.m_pEntity1 = entity1;
m_sCollisionManager.m_sQueue.m_pEntity2 = entity2;
m_sCollisionManager.m_sQueue.m_bSurface1 = surface1;
@ -48,8 +46,8 @@ cAudioManager::ReportCollision(CEntity *entity1, CEntity *entity2, uint8 surface
void
cAudioCollisionManager::AddCollisionToRequestedQueue()
{
int32 collisionsIndex;
int32 i;
uint32 collisionsIndex;
uint32 i;
if (m_bCollisionsInQueue < NUMAUDIOCOLLISIONS)
@ -139,7 +137,7 @@ cAudioManager::ServiceCollisions()
m_sCollisionManager.m_bCollisionsInQueue = 0;
}
static const int32 gOneShotCol[] = {SFX_COL_TARMAC_1,
static const uint32 gOneShotCol[] = {SFX_COL_TARMAC_1,
SFX_COL_TARMAC_1,
SFX_COL_GRASS_1,
SFX_COL_GRAVEL_1,
@ -171,7 +169,9 @@ static const int32 gOneShotCol[] = {SFX_COL_TARMAC_1,
SFX_TYRE_BUMP,
SFX_COL_CARDBOARD_1,
SFX_COL_TARMAC_1,
SFX_COL_GATE};
SFX_COL_GATE,
SFX_COL_SAND_1,
SFX_COL_TARMAC_1 };
void
cAudioManager::SetUpOneShotCollisionSound(const cAudioCollision &col)
@ -179,7 +179,7 @@ cAudioManager::SetUpOneShotCollisionSound(const cAudioCollision &col)
uint16 s1;
uint16 s2;
int32 emittingVol;
uint32 emittingVol;
float ratio;
static uint16 counter = 28;
@ -198,11 +198,11 @@ cAudioManager::SetUpOneShotCollisionSound(const cAudioCollision &col)
s1 = SURFACE_CAR_PANEL;
ratio = Min(1.f, 2.f * ratio);
}
emittingVol = 40.f * ratio;
emittingVol = 40 * ratio;
if(emittingVol) {
m_sQueueSample.m_fDistance = Sqrt(col.m_fDistance);
m_sQueueSample.m_nVolume =
ComputeVolume(emittingVol, CollisionSoundIntensity, m_sQueueSample.m_fDistance);
ComputeVolume(emittingVol, COLLISION_MAX_DIST, m_sQueueSample.m_fDistance);
if(m_sQueueSample.m_nVolume > 0) {
m_sQueueSample.m_nSampleIndex = gOneShotCol[s1];
switch(m_sQueueSample.m_nSampleIndex) {
@ -219,7 +219,7 @@ cAudioManager::SetUpOneShotCollisionSound(const cAudioCollision &col)
m_sQueueSample.m_nSampleIndex += m_anRandomTable[3] % 4;
break;
case SFX_COL_PED_1:
m_sQueueSample.m_nSampleIndex += m_anRandomTable[4] % 5;
m_sQueueSample.m_nSampleIndex += m_anRandomTable[4] % 2;
break;
case SFX_COL_WOOD_CRATES_1:
m_sQueueSample.m_nSampleIndex += m_anRandomTable[4] % 4;
@ -266,9 +266,9 @@ cAudioManager::SetUpOneShotCollisionSound(const cAudioCollision &col)
SET_EMITTING_VOLUME(emittingVol);
RESET_LOOP_OFFSETS
m_sQueueSample.m_fSpeedMultiplier = 4.0f;
m_sQueueSample.m_MaxDistance = CollisionSoundIntensity;
m_sQueueSample.m_MaxDistance = COLLISION_MAX_DIST;
m_sQueueSample.m_bStatic = TRUE;
m_sQueueSample.m_bReverb = TRUE;
SET_SOUND_REVERB(TRUE);
SET_SOUND_REFLECTION(FALSE);
AddSampleToRequestedQueue();
}
@ -279,12 +279,12 @@ cAudioManager::SetUpOneShotCollisionSound(const cAudioCollision &col)
void
cAudioManager::SetUpLoopingCollisionSound(const cAudioCollision &col, uint8 counter)
{
bool8 distCalculated = FALSE;
if(col.m_fIntensity2 > 0.0016f) {
uint8 emittingVol = SetLoopingCollisionRequestedSfxFreqAndGetVol(col);
if(emittingVol) {
m_sQueueSample.m_fDistance = Sqrt(col.m_fDistance);
m_sQueueSample.m_nVolume =
ComputeVolume(emittingVol, CollisionSoundIntensity, m_sQueueSample.m_fDistance);
CalculateDistance(distCalculated, m_sQueueSample.m_fDistance);
m_sQueueSample.m_nVolume = ComputeVolume(emittingVol, COLLISION_MAX_DIST, m_sQueueSample.m_fDistance);
if(m_sQueueSample.m_nVolume > 0) {
m_sQueueSample.m_nCounter = counter;
m_sQueueSample.m_vecPos = col.m_vecPosition;
@ -293,12 +293,12 @@ cAudioManager::SetUpLoopingCollisionSound(const cAudioCollision &col, uint8 coun
m_sQueueSample.m_nPriority = 7;
m_sQueueSample.m_nLoopCount = 0;
SET_EMITTING_VOLUME(emittingVol);
SET_LOOP_OFFSETS(m_sQueueSample.m_nSampleIndex);
SET_LOOP_OFFSETS(m_sQueueSample.m_nSampleIndex)
m_sQueueSample.m_fSpeedMultiplier = 4.0f;
m_sQueueSample.m_MaxDistance = CollisionSoundIntensity;
m_sQueueSample.m_MaxDistance = COLLISION_MAX_DIST;
m_sQueueSample.m_bStatic = FALSE;
m_sQueueSample.m_nFramesToPlay = 5;
m_sQueueSample.m_bReverb = TRUE;
SET_SOUND_REVERB(TRUE);
SET_SOUND_REFLECTION(FALSE);
AddSampleToRequestedQueue();
}
@ -325,8 +325,8 @@ cAudioManager::SetLoopingCollisionRequestedSfxFreqAndGetVol(const cAudioCollisio
m_sQueueSample.m_nSampleIndex = SFX_BOAT_WATER_LOOP;
m_sQueueSample.m_nFrequency = 6050.f * ratio + 16000;
vol = 30.f * ratio;
} else if(surface1 == SURFACE_GRAVEL || surface2 == SURFACE_GRAVEL || surface1 == SURFACE_MUD_DRY ||
surface2 == SURFACE_MUD_DRY || surface1 == SURFACE_SAND || surface2 == SURFACE_SAND) {
} else if(surface1 == SURFACE_GRAVEL || surface2 == SURFACE_GRAVEL || surface1 == SURFACE_MUD_DRY || surface2 == SURFACE_MUD_DRY ||
surface1 == SURFACE_SAND || surface2 == SURFACE_SAND || surface1 == SURFACE_SAND_BEACH || surface2 == SURFACE_SAND_BEACH) {
ratio = GetCollisionRatio(audioCollision.m_fIntensity2, 0.0001f, 0.09f, 0.0899f);
m_sQueueSample.m_nSampleIndex = SFX_GRAVEL_SKID;
m_sQueueSample.m_nFrequency = 6000.f * ratio + 10000;
@ -351,11 +351,12 @@ cAudioManager::GetCollisionOneShotRatio(uint32 a, float b)
case SURFACE_TARMAC:
case SURFACE_PAVEMENT:
case SURFACE_STEEP_CLIFF:
case SURFACE_TRANSPARENT_STONE: return GetCollisionRatio(b, 10.f, 60.f, 50.f);
case SURFACE_TRANSPARENT_STONE:
case SURFACE_CONCRETE_BEACH: return GetCollisionRatio(b, 10.f, 60.f, 50.f);
case SURFACE_GRASS:
case SURFACE_CARDBOARDBOX:
case SURFACE_GRAVEL:
case SURFACE_MUD_DRY: return GetCollisionRatio(b, 0.f, 2.f, 2.f);
case SURFACE_MUD_DRY:
case SURFACE_CARDBOARDBOX: return GetCollisionRatio(b, 0.f, 2.f, 2.f);
case SURFACE_CAR: return GetCollisionRatio(b, 6.f, 50.f, 44.f);
case SURFACE_GLASS:
case SURFACE_METAL_CHAIN_FENCE: return GetCollisionRatio(b, 0.1f, 10.f, 9.9f);
@ -364,7 +365,7 @@ cAudioManager::GetCollisionOneShotRatio(uint32 a, float b)
case SURFACE_GARAGE_DOOR: return GetCollisionRatio(b, 20.f, 100.f, 80.f);
case SURFACE_CAR_PANEL: return GetCollisionRatio(b, 0.f, 4.f, 4.f);
case SURFACE_SCAFFOLD_POLE:
case SURFACE_METAL_GATE:
case SURFACE_METAL_GATE:
case SURFACE_LAMP_POST: return GetCollisionRatio(b, 1.f, 10.f, 9.f);
case SURFACE_FIRE_HYDRANT: return GetCollisionRatio(b, 1.f, 15.f, 14.f);
case SURFACE_GIRDER: return GetCollisionRatio(b, 8.f, 50.f, 42.f);
@ -372,7 +373,8 @@ cAudioManager::GetCollisionOneShotRatio(uint32 a, float b)
case SURFACE_SAND:
case SURFACE_WATER:
case SURFACE_RUBBER:
case SURFACE_WHEELBASE: return GetCollisionRatio(b, 0.f, 10.f, 10.f);
case SURFACE_WHEELBASE:
case SURFACE_SAND_BEACH: return GetCollisionRatio(b, 0.f, 10.f, 10.f);
case SURFACE_WOOD_CRATES: return GetCollisionRatio(b, 1.f, 4.f, 3.f);
case SURFACE_WOOD_BENCH: return GetCollisionRatio(b, 0.1f, 5.f, 4.9f);
case SURFACE_WOOD_SOLID: return GetCollisionRatio(b, 0.1f, 40.f, 39.9f);

View File

@ -1,6 +1,6 @@
#pragma once
#define NUMAUDIOCOLLISIONS 10
#define NUMAUDIOCOLLISIONS 14
class CEntity;
@ -54,4 +54,4 @@ public:
void AddCollisionToRequestedQueue();
};
VALIDATE_SIZE(cAudioCollisionManager, 852);
VALIDATE_SIZE(cAudioCollisionManager, 0x354);

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -3,17 +3,15 @@
#include "audio_enums.h"
#include "AudioCollision.h"
#include "PolRadio.h"
#include "VehicleModelInfo.h"
#include "Vehicle.h"
class tSound
{
public:
int32 m_nEntityIndex; // audio entity index
#if GTA_VERSION >= GTA3_PC_10
uint32 m_nCounter; // I'm not sure what this is but it looks like a virtual counter to determine the same sound in queue
// Values higher than 255 are used by reflections
#else
uint8 m_nCounter;
#endif
uint32 m_nSampleIndex; // An index of sample from AudioSamples.h
uint8 m_nBankIndex; // A sound bank index. IDK what's the point of it here since samples are hardcoded anyway
bool8 m_bIs2D; // If TRUE then sound is played in 2D space (such as frontend or police radio)
@ -31,14 +29,12 @@ public:
uint8 m_nEmittingVolume; // The volume in 3D space, provided to 3D audio engine
#endif
float m_fSpeedMultiplier; // Used for doppler effect. 0.0f - unaffected by doppler
#if GTA_VERSION >= GTA3_PC_10
float m_MaxDistance; // The maximum distance at which sound could be heard. Minimum distance = MaxDistance / 5 or MaxDistance / 4 in case of emitting volume (useless if m_bIs2D == TRUE)
#else
uint32 m_MaxDistance;
#endif
bool8 m_bStatic; // If TRUE then sound parameters cannot be changed during playback (frequency, position, etc.)
CVector m_vecPos; // Position of sound in 3D space. Unused if m_bIs2D == TRUE
#if !defined(GTA_PS2) || defined(AUDIO_REVERB) // GTA_PS2 because this field exists on mobile but not on PS2
bool8 m_bReverb; // Toggles reverb effect
#endif
#ifdef AUDIO_REFLECTIONS
uint8 m_nReflectionDelay; // Number of frames before reflection could be played. This is calculated internally by AudioManager and shouldn't be set by queued sample
bool8 m_bReflections; // Add sound reflections
@ -47,6 +43,7 @@ public:
// 0 = L 100% R 0%
// 63 = L 100% R 100%
// 127 = L 0% R 100%
uint8 m_nFrontRearPan; // Used on PS2 for surround panning
#ifndef FIX_BUGS
uint32 m_nFramesToPlay; // Number of frames the sound would be played (if it stops being queued).
// This one is being set by queued sample for looping sounds, otherwise calculated inside AudioManager
@ -57,19 +54,15 @@ public:
// all fields below are internal to AudioManager calculations and aren't set by queued sample
bool8 m_bIsBeingPlayed; // Set to TRUE when the sound was added or changed on current frame to avoid it being overwritten
bool8 m_bIsPlayingFinished; // Not sure about the name. Set to TRUE when sampman channel becomes free
#if GTA_VERSION < GTA3_PC_10
int32 unk; // Only on PS2, used by static non-looped sounds (AFAIK)
// Looks like it's keeping a number of frames left to play with the purpose of setting m_bIsPlayingFinished=TRUE once value reaches 0
// Default value is -3 for whatever reason
#endif
uint32 m_nFinalPriority; // Actual value used to compare priority, calculated using volume and m_nPriority. Lesser value means higher priority
int8 m_nVolumeChange; // How much m_nVolume should reduce per each frame.
#if defined(FIX_BUGS) && defined(EXTERNAL_3D_SOUND)
int8 m_nEmittingVolumeChange; // same as above but for m_nEmittingVolume
#endif
uint8 field_51_lcs;
};
VALIDATE_SIZE(tSound, 92);
VALIDATE_SIZE(tSound, 96);
class CPhysical;
class CAutomobile;
@ -96,7 +89,7 @@ public:
CVector m_vecPos;
float m_fDistance;
uint8 m_nVolume;
int8 m_nProcess;
int8 m_nLoadingTimeout; // how many iterations we gonna wait until dropping the sample if it's still not loaded (only useful on PS2)
#if defined(EXTERNAL_3D_SOUND) && defined(FIX_BUGS)
uint8 m_nEmittingVolume;
#endif
@ -107,28 +100,38 @@ VALIDATE_SIZE(tPedComment, 28);
class cPedComments
{
public:
tPedComment m_asPedComments[NUM_PED_COMMENTS_BANKS][NUM_PED_COMMENTS_SLOTS];
uint8 m_nIndexMap[NUM_PED_COMMENTS_BANKS][NUM_PED_COMMENTS_SLOTS];
uint8 m_nCommentsInBank[NUM_PED_COMMENTS_BANKS];
uint8 m_nActiveBank;
tPedComment m_aPedCommentQueue[NUM_SOUND_QUEUES][NUM_PED_COMMENTS_SLOTS];
uint8 m_aPedCommentOrderList[NUM_SOUND_QUEUES][NUM_PED_COMMENTS_SLOTS];
uint8 m_nPedCommentCount[NUM_SOUND_QUEUES];
uint8 m_nActiveQueue;
#ifdef GTA_PC
bool8 m_bDelay;
uint32 m_nDelayTimer;
#endif
cPedComments()
{
for (int i = 0; i < NUM_PED_COMMENTS_SLOTS; i++)
for (int j = 0; j < NUM_PED_COMMENTS_BANKS; j++) {
m_asPedComments[j][i].m_nProcess = -1;
m_nIndexMap[j][i] = NUM_PED_COMMENTS_SLOTS;
for (int j = 0; j < NUM_SOUND_QUEUES; j++) {
m_aPedCommentQueue[j][i].m_nLoadingTimeout = -1;
m_aPedCommentOrderList[j][i] = NUM_PED_COMMENTS_SLOTS;
}
for (int i = 0; i < NUM_PED_COMMENTS_BANKS; i++)
m_nCommentsInBank[i] = 0;
m_nActiveBank = 0;
for (int i = 0; i < NUM_SOUND_QUEUES; i++)
m_nPedCommentCount[i] = 0;
m_nActiveQueue = 0;
}
void Add(tPedComment *com);
void Process();
};
VALIDATE_SIZE(cPedComments, 1164);
VALIDATE_SIZE(cPedComments, 0x490);
#ifdef FIX_BUGS // LCS extends the number of mission slots but not audio channels, the game would crash on ClearMissionAudio trying to stop channels that don't exist
#define MISSION_AUDIO_SLOTS (2)
#else
#define MISSION_AUDIO_SLOTS (5)
#endif
// name made up
class cAudioScriptObjectManager
@ -166,6 +169,7 @@ public:
class cVehicleParams
{
public:
int32 m_VehicleType;
bool8 m_bDistanceCalculated;
float m_fDistance;
CVehicle *m_pVehicle;
@ -175,6 +179,7 @@ public:
cVehicleParams()
{
m_VehicleType = -1;
m_bDistanceCalculated = false;
m_fDistance = 0.0f;
m_pVehicle = nil;
@ -184,8 +189,9 @@ public:
}
};
VALIDATE_SIZE(cVehicleParams, 0x18);
VALIDATE_SIZE(cVehicleParams, 0x1C);
#if GTA_VERSION < GTAVC_PC_10
enum {
/*
REFLECTION_YMAX = 0, top
@ -202,38 +208,59 @@ enum {
REFLECTION_UP,
MAX_REFLECTIONS,
};
#else
enum {
REFLECTION_NORTH = 0,
REFLECTION_SOUTH,
REFLECTION_WEST,
REFLECTION_EAST,
REFLECTION_CEIL_NORTH,
REFLECTION_CEIL_SOUTH,
REFLECTION_CEIL_WEST,
REFLECTION_CEIL_EAST,
MAX_REFLECTIONS,
};
#endif
enum PLAY_STATUS { PLAY_STATUS_STOPPED = 0, PLAY_STATUS_PLAYING, PLAY_STATUS_FINISHED };
enum LOADING_STATUS { LOADING_STATUS_NOT_LOADED = 0, LOADING_STATUS_LOADED, LOADING_STATUS_FAILED };
enum LOADING_STATUS { LOADING_STATUS_NOT_LOADED = 0, LOADING_STATUS_LOADED, LOADING_STATUS_LOADING };
class cAudioManager
{
public:
bool8 m_bIsInitialised;
bool8 m_bIsSurround; // unused until VC
bool8 m_bIsSurround; // used on PS2
bool8 m_bReduceReleasingPriority;
uint8 m_nActiveSamples;
bool8 m_bDoubleVolume; // unused
#if GTA_VERSION >= GTA3_PC_10
bool8 m_bDynamicAcousticModelingStatus;
#endif
uint8 m_nChannelOffset;
float m_fSpeedOfSound;
bool8 m_bTimerJustReset;
int32 m_nTimer;
uint32 m_nTimer;
tSound m_sQueueSample;
uint8 m_nActiveSampleQueue;
tSound m_asSamples[NUM_SOUNDS_SAMPLES_BANKS][NUM_CHANNELS_GENERIC];
uint8 m_abSampleQueueIndexTable[NUM_SOUNDS_SAMPLES_BANKS][NUM_CHANNELS_GENERIC];
uint8 m_SampleRequestQueuesStatus[NUM_SOUNDS_SAMPLES_BANKS];
uint8 m_nActiveQueue;
tSound m_aRequestedQueue[NUM_SOUND_QUEUES][NUM_CHANNELS_GENERIC];
uint8 m_aRequestedOrderList[NUM_SOUND_QUEUES][NUM_CHANNELS_GENERIC];
uint8 m_nRequestedCount[NUM_SOUND_QUEUES];
tSound m_asActiveSamples[NUM_CHANNELS_GENERIC];
tAudioEntity m_asAudioEntities[NUM_AUDIOENTITIES];
int32 m_anAudioEntityIndices[NUM_AUDIOENTITIES];
int32 m_nAudioEntitiesTotal;
uint32 m_aAudioEntityOrderList[NUM_AUDIOENTITIES];
uint32 m_nAudioEntitiesCount;
#ifdef AUDIO_REFLECTIONS
CVector m_avecReflectionsPos[MAX_REFLECTIONS];
float m_afReflectionsDistances[MAX_REFLECTIONS];
#endif
cAudioScriptObjectManager m_sAudioScriptObjectManager;
bool8 field_4348_lcs;
// miami
bool8 m_bIsPlayerShutUp;
uint8 m_nPlayerMood;
uint32 m_nPlayerMoodTimer;
uint32 field_4B38_vc;
bool8 m_bGenericSfx;
cPedComments m_sPedComments;
int32 m_nFireAudioEntity;
int32 m_nWaterCannonEntity;
@ -244,24 +271,36 @@ public:
int32 m_nCollisionEntity;
cAudioCollisionManager m_sCollisionManager;
int32 m_nProjectileEntity;
int32 m_nEscalatorEntity;
int32 m_nExtraSoundsEntity;
#ifdef GTA_BRIDGE
int32 m_nBridgeEntity;
#endif
// Mission audio stuff
CVector m_vecMissionAudioPosition;
bool8 m_bIsMissionAudio2D;
uint32 m_nMissionAudioSampleIndex;
uint8 m_nMissionAudioLoadingStatus;
uint8 m_nMissionAudioPlayStatus;
bool8 m_bIsMissionAudioPlaying;
int32 m_nMissionAudioFramesToPlay;
bool8 m_bIsMissionAudioAllowedToPlay;
// So instead of making an array of struct they've added [MISSION_AUDIO_SLOTS] to every field...
// Only someone with a VERY EXTRAORDINARY mind could have come up with that
CVector m_vecMissionAudioPosition[MISSION_AUDIO_SLOTS];
bool8 m_bIsMissionAudio2D[MISSION_AUDIO_SLOTS];
uint32 m_nMissionAudioSampleIndex[MISSION_AUDIO_SLOTS];
uint8 m_nMissionAudioLoadingStatus[MISSION_AUDIO_SLOTS];
uint8 m_nMissionAudioPlayStatus[MISSION_AUDIO_SLOTS];
bool8 m_bIsMissionAudioPlaying[MISSION_AUDIO_SLOTS];
int32 m_nMissionAudioFramesToPlay[MISSION_AUDIO_SLOTS]; // possibly unsigned
bool8 m_bIsMissionAudioAllowedToPlay[MISSION_AUDIO_SLOTS];
bool8 m_bIsMissionAudioPhoneCall[MISSION_AUDIO_SLOTS];
uint8 m_nGlobalSfxVolumeMultiplier; // used to lower sfx volume during phone calls
int32 m_anRandomTable[5];
uint8 m_nTimeSpent;
bool8 m_nUserPause;
bool8 m_nPreviousUserPause;
bool8 m_bIsPaused;
bool8 m_bWasPaused;
uint32 m_FrameCounter;
uint32 field_5644_lcs;
uint32 field_5648_lcs;
uint8 field_564C_lcs;
cAudioManager();
~cAudioManager();
@ -269,23 +308,25 @@ public:
void Terminate();
void Service();
int32 CreateEntity(eAudioType type, void *entity);
void DestroyEntity(int32 id);
void DestroyEntity(int32 id); // inlined in vc
bool8 GetEntityStatus(int32 id);
void SetEntityStatus(int32 id, bool8 status);
void *GetEntityPointer(int32 id);
void PlayOneShot(int32 index, uint16 sound, float vol);
void SetEffectsMasterVolume(uint8 volume);
void SetMusicMasterVolume(uint8 volume);
void SetMP3BoostVolume(uint8 volume);
void SetEffectsFadeVol(uint8 volume);
void SetMusicFadeVol(uint8 volume);
void SetMonoMode(bool8 mono);
void SetOutputMode(bool8 surround);
void ResetTimers(uint32 time);
void DestroyAllGameCreatedEntities();
#ifdef GTA_PC
uint8 GetNum3DProvidersAvailable();
char *Get3DProviderName(uint8 id);
int8 GetCurrent3DProviderIndex();
int8 AutoDetect3DProviders();
int8 SetCurrent3DProvider(uint8 which);
void SetSpeakerConfig(int32 conf);
bool8 IsMP3RadioChannelAvailable();
@ -300,29 +341,32 @@ public:
#endif
void ServiceSoundEffects();
uint32 FL(float f); // not used
uint8 ComputeVolume(uint8 emittingVolume, float maxDistance, float distance);
void TranslateEntity(Const CVector *v1, CVector *v2);
int32 ComputeFrontRearMix(float, CVector *);
int32 ComputePan(float, CVector *);
uint32 ComputeDopplerEffectedFrequency(uint32 oldFreq, float position1, float position2, float speedMultiplier); // inlined on PS2
uint32 ComputeDopplerEffectedFrequency(uint32 oldFreq, float position1, float position2, float speedMultiplier);
int32 RandomDisplacement(uint32 seed);
void InterrogateAudioEntities(); // inlined on PS2
void AddSampleToRequestedQueue();
void AddDetailsToRequestedOrderList(uint8 sample); // inlined on PS2
void InterrogateAudioEntities(); // inlined
void AddSampleToRequestedQueue(uint8 unk_lcs = 0);
void AddDetailsToRequestedOrderList(uint8 sample); // inlined in vc
#ifdef AUDIO_REFLECTIONS
void AddReflectionsToRequestedQueue();
void UpdateReflections();
#endif
void AddReleasingSounds();
void ProcessActiveQueues();
void ClearRequestedQueue(); // inlined on PS2
void ClearRequestedQueue(); // inlined in vc
void ClearActiveSamples();
void GenerateIntegerRandomNumberTable(); // inlined on PS2
void GenerateIntegerRandomNumberTable();
#ifdef GTA_PS2
void LoadBankIfNecessary(uint8 bank); // this is used only on PS2 but technically not a platform code
#endif
void DirectlyEnqueueSample(uint32 sample, uint8 bank, uint32 counter, uint32 priority, uint32 freq, uint8 volume, uint8 framesToPlay, uint32 notStereo = 0);
#ifdef EXTERNAL_3D_SOUND // actually must have been && AUDIO_MSS as well
void AdjustSamplesVolume();
uint8 ComputeEmittingVolume(uint8 emittingVolume, float maxDistance, float distance);
void AdjustSamplesVolume(); // inlined
uint8 ComputeEmittingVolume(uint8 emittingVolume, float maxDistance, float distance); // inlined
#endif
// audio logic
@ -332,145 +376,186 @@ public:
void PostTerminateGameSpecificShutdown();
void ResetAudioLogicTimers(uint32 timer);
void ProcessReverb();
float GetDistanceSquared(const CVector &v);
float GetDistanceSquared(const CVector &v); // inlined in vc
void CalculateDistance(bool8 &condition, float dist);
CVehicle *FindVehicleOfPlayer();
void ProcessSpecial();
void ProcessEntity(int32 sound);
void ProcessPhysical(int32 id);
// vehicles
void ProcessVehicle(CVehicle *vehicle);
bool8 ProcessCarHeli(cVehicleParams &params);
void ProcessRainOnVehicle(cVehicleParams &params);
bool8 ProcessReverseGear(cVehicleParams &params);
void ProcessModelCarEngine(cVehicleParams &params);
void ProcessModelHeliVehicle(cVehicleParams &params);
void ProcessModelVehicle(cVehicleParams &params);
bool8 ProcessVehicleFlatTyre(cVehicleParams &params);
bool8 ProcessVehicleRoadNoise(cVehicleParams &params);
bool8 ProcessWetRoadNoise(cVehicleParams &params);
bool8 ProcessVehicleEngine(cVehicleParams &params);
void UpdateGasPedalAudio(CAutomobile *automobile); // inlined on PS2
void UpdateGasPedalAudio(CVehicle *veh, int vehType);
void PlayerJustGotInCar();
void PlayerJustLeftCar();
void AddPlayerCarSample(uint8 emittingVolume, uint32 freq, uint32 sample, uint8 bank, uint8 counter, bool8 notLooping);
void ProcessCesna(cVehicleParams &params);
void ProcessPlayersVehicleEngine(cVehicleParams &params, CAutomobile *automobile);
void ProcessPlayersVehicleEngine(cVehicleParams &params, CVehicle *veh);
bool8 ProcessVehicleSkidding(cVehicleParams &params);
float GetVehicleDriveWheelSkidValue(uint8 wheel, CAutomobile *automobile, cTransmission *transmission, float velocityChange);
float GetVehicleNonDriveWheelSkidValue(uint8 wheel, CAutomobile *automobile, cTransmission *transmission, float velocityChange); // inlined on PS2
void ProcessVehicleHorn(cVehicleParams &params);
bool8 UsesSiren(uint32 model); // inlined on PS2
bool8 UsesSirenSwitching(uint32 model); // inlined on PS2
float GetVehicleDriveWheelSkidValue(CVehicle *veh, tWheelState wheelState, float gasPedalAudio, cTransmission *transmission, float velocityChange);
float GetVehicleNonDriveWheelSkidValue(CVehicle *veh, tWheelState wheelState, cTransmission *transmission, float velocityChange);
bool8 ProcessVehicleHorn(cVehicleParams &params);
bool8 UsesSiren(cVehicleParams &params);
bool8 UsesSirenSwitching(cVehicleParams &params);
bool8 ProcessVehicleSirenOrAlarm(cVehicleParams &params);
bool8 UsesReverseWarning(uint32 model); // inlined on PS2
bool8 UsesReverseWarning(uint32 model);
bool8 ProcessVehicleReverseWarning(cVehicleParams &params);
bool8 ProcessVehicleDoors(cVehicleParams &params);
bool8 ProcessAirBrakes(cVehicleParams &params);
bool8 HasAirBrakes(uint32 model); // inlined on PS2
bool8 HasAirBrakes(uint32 model);
bool8 ProcessEngineDamage(cVehicleParams &params);
bool8 ProcessCarBombTick(cVehicleParams &params);
void ProcessVehicleOneShots(cVehicleParams &params);
#ifdef GTA_TRAIN
bool8 ProcessTrainNoise(cVehicleParams &params);
#endif
bool8 ProcessFerryNoise(cVehicleParams &params);
bool8 ProcessBoatEngine(cVehicleParams &params);
bool8 ProcessBoatMovingOverWater(cVehicleParams &params);
bool8 ProcessHelicopter(cVehicleParams &params);
void ProcessPlane(cVehicleParams &params); // inlined on PS2
void ProcessPlane(cVehicleParams &params);
void ProcessJumbo(cVehicleParams &params);
void ProcessJumboTaxi(); // inlined on PS2
void ProcessJumboTaxi();
void ProcessJumboAccel(CPlane *plane);
void ProcessJumboTakeOff(CPlane *plane); // inlined on PS2
void ProcessJumboFlying(); // inlined on PS2
void ProcessJumboLanding(CPlane *plane); // inlined on PS2
void ProcessJumboDecel(CPlane *plane); // inlined on PS2
void ProcessJumboTakeOff(CPlane *plane);
void ProcessJumboFlying();
void ProcessJumboLanding(CPlane *plane);
void ProcessJumboDecel(CPlane *plane);
bool8 SetupJumboTaxiSound(uint8 vol);
bool8 SetupJumboWhineSound(uint8 emittingVol, uint32 freq);
bool8 SetupJumboEngineSound(uint8 vol, uint32 freq);
bool8 SetupJumboFlySound(uint8 emittingVol);
bool8 SetupJumboRumbleSound(uint8 emittingVol);
int32 GetJumboTaxiFreq(); // inlined on PS2
int32 GetJumboTaxiFreq(); // inlined in vc
// peds
void ProcessPed(CPhysical *ped); // inlined on PS2
void ProcessPedHeadphones(cPedParams &params);
void ProcessPed(CPhysical *ped);
void ProcessPedOneShots(cPedParams &params);
void SetPedTalkingStatus(CPed *ped, bool8 status);
void SetPlayersMood(uint8 mood, uint32 time);
void ProcessPlayerMood();
// ped comments
void SetupPedComments(cPedParams &params, uint16 sound);
int32 GetPedCommentSfx(CPed *ped, uint16 sound);
void GetPhrase(uint32 &phrase, uint32 &prevPhrase, uint32 sample, uint32 maxOffset); // inlined on PS2
uint32 GetPlayerTalkSfx(uint16 sound); // inlined on PS2
uint32 GetCopTalkSfx(uint16 sound);
uint32 GetSwatTalkSfx(uint16 sound);
uint32 GetFBITalkSfx(uint16 sound);
uint32 GetArmyTalkSfx(uint16 sound);
uint32 GetMedicTalkSfx(uint16 sound);
uint32 GetFiremanTalkSfx(uint16 sound); // inlined on PS2
uint32 GetBusinessMaleOldTalkSfx(uint16 sound);
uint32 GetBusinessMaleYoungTalkSfx(uint16 sound, uint32 model);
uint32 GetMafiaTalkSfx(uint16 sound);
uint32 GetTriadTalkSfx(uint16 sound);
uint32 GetDiabloTalkSfx(uint16 sound);
uint32 GetYakuzaTalkSfx(uint16 sound);
uint32 GetYardieTalkSfx(uint16 sound);
uint32 GetColumbianTalkSfx(uint16 sound);
uint32 GetHoodTalkSfx(uint16 sound);
uint32 GetBlackCriminalTalkSfx(uint16 sound);
uint32 GetWhiteCriminalTalkSfx(uint16 sound);
uint32 GetCasualMaleOldTalkSfx(uint16 sound);
uint32 GetCasualMaleYoungTalkSfx(uint16 sound);
uint32 GetBlackCasualFemaleTalkSfx(uint16 sound);
uint32 GetWhiteCasualFemaleTalkSfx(uint16 sound);
uint32 GetFemaleNo3TalkSfx(uint16 sound);
uint32 GetWhiteBusinessFemaleTalkSfx(uint16 sound, uint32 model);
uint32 GetBlackFatFemaleTalkSfx(uint16 sound);
uint32 GetWhiteFatMaleTalkSfx(uint16 sound);
uint32 GetBlackFatMaleTalkSfx(uint16 sound);
uint32 GetWhiteFatFemaleTalkSfx(uint16 sound);
uint32 GetBlackFemaleProstituteTalkSfx(uint16 sound);
uint32 GetWhiteFemaleProstituteTalkSfx(uint16 sound);
uint32 GetBlackProjectMaleTalkSfx(uint16 sound, uint32 model);
uint32 GetBlackProjectFemaleOldTalkSfx(uint16 sound);
uint32 GetBlackProjectFemaleYoungTalkSfx(uint16 sound);
uint32 GetChinatownMaleOldTalkSfx(uint16 sound);
uint32 GetChinatownMaleYoungTalkSfx(uint16 sound);
uint32 GetChinatownFemaleOldTalkSfx(uint16 sound);
uint32 GetChinatownFemaleYoungTalkSfx(uint16 sound);
uint32 GetLittleItalyMaleTalkSfx(uint16 sound);
uint32 GetLittleItalyFemaleOldTalkSfx(uint16 sound);
uint32 GetLittleItalyFemaleYoungTalkSfx(uint16 sound);
uint32 GetWhiteDockerMaleTalkSfx(uint16 sound);
uint32 GetBlackDockerMaleTalkSfx(uint16 sound);
uint32 GetScumMaleTalkSfx(uint16 sound);
uint32 GetScumFemaleTalkSfx(uint16 sound);
uint32 GetWhiteWorkerMaleTalkSfx(uint16 sound);
uint32 GetBlackWorkerMaleTalkSfx(uint16 sound);
uint32 GetBlackBusinessFemaleTalkSfx(uint16 sound);
uint32 GetSupermodelMaleTalkSfx(uint16 sound);
uint32 GetSupermodelFemaleTalkSfx(uint16 sound);
uint32 GetStewardMaleTalkSfx(uint16 sound);
uint32 GetStewardFemaleTalkSfx(uint16 sound);
uint32 GetFanMaleTalkSfx(uint16 sound, uint32 model);
uint32 GetFanFemaleTalkSfx(uint16 sound);
uint32 GetHospitalMaleTalkSfx(uint16 sound);
uint32 GetHospitalFemaleTalkSfx(uint16 sound); // inlined on PS2
uint32 GetWhiteConstructionWorkerTalkSfx(uint16 sound);
uint32 GetBlackConstructionWorkerTalkSfx(uint16 sound);
uint32 GetShopperFemaleTalkSfx(uint16 sound, uint32 model);
uint32 GetStudentMaleTalkSfx(uint16 sound);
uint32 GetStudentFemaleTalkSfx(uint16 sound);
uint32 GetPedCommentSfx(CPed *ped, uint16 sound);
void GetPhrase(uint32 &phrase, uint32 &prevPhrase, uint32 sample, uint32 maxOffset);
uint32 GetPlayerTalkSfx(CPed *ped, uint16 sound);
uint32 GetMariaTalkSfx(CPed *ped, uint16 sound);
uint32 GetDonaldLoveTalkSfx(CPed *ped, uint16 sound);
uint32 GetJdOtooleTalkSfx(CPed *ped, uint16 sound);
uint32 GetleonMcaffreyTalkSfx(CPed *ped, uint16 sound);
uint32 GetSalvatoreTalkSfx(CPed *ped, uint16 sound);
uint32 GetToshikoTalkSfx(CPed *ped, uint16 sound);
uint32 GetMickeyHamfistsTalkSfx(CPed *ped, uint16 sound);
uint32 GetBiker1TalkSfx(CPed *ped, uint16 sound);
uint32 GetBiker2TalkSfx(CPed *ped, uint16 sound);
uint32 GetGrdAng1TalkSfx(CPed *ped, uint16 sound);
uint32 GetGrdAng2TalkSfx(CPed *ped, uint16 sound);
uint32 GetGenericMaleTalkSfx(CPed *ped, uint16 sound); // inlined in vc
uint32 GetGenericFemaleTalkSfx(CPed *ped, uint16 sound); // inlined in vc
uint32 GetDefaultTalkSfx(CPed *ped, uint16 sound);
uint32 GetCopTalkSfx(CPed *ped, uint16 sound);
uint32 GetSwatTalkSfx(CPed *ped, uint16 sound);
uint32 GetFBITalkSfx(CPed *ped, uint16 sound);
uint32 GetArmyTalkSfx(CPed *ped, uint16 sound);
uint32 GetMedicTalkSfx(CPed *ped, uint16 sound);
uint32 GetFiremanTalkSfx(CPed *ped, uint16 sound);
uint32 GetWFYG1TalkSfx(CPed *ped, uint16 sound);
uint32 GetWFYG2TalkSfx(CPed *ped, uint16 sound);
uint32 GetHFYSTTalkSfx(CPed *ped, uint16 sound);
uint32 GetHFOSTTalkSfx(CPed *ped, uint16 sound);
uint32 GetHMYSTTalkSfx(CPed *ped, uint16 sound);
uint32 GetHMOSTTalkSfx(CPed *ped, uint16 sound);
uint32 GetHFYRITalkSfx(CPed *ped, uint16 sound);
uint32 GetHFORITalkSfx(CPed *ped, uint16 sound);
uint32 GetHMYRITalkSfx(CPed *ped, uint16 sound);
uint32 GetHMORITalkSfx(CPed *ped, uint16 sound);
uint32 GetHFYBETalkSfx(CPed *ped, uint16 sound);
uint32 GetHFOBETalkSfx(CPed *ped, uint16 sound);
uint32 GetHMYBETalkSfx(CPed *ped, uint16 sound);
uint32 GetHMOBETalkSfx(CPed *ped, uint16 sound);
uint32 GetHFYBUTalkSfx(CPed *ped, uint16 sound);
uint32 GetHFYMDTalkSfx(CPed *ped, uint16 sound);
uint32 GetHFYCGTalkSfx(CPed *ped, uint16 sound);
uint32 GetHFYPRTalkSfx(CPed *ped, uint16 sound);
uint32 GetHFOTRTalkSfx(CPed *ped, uint16 sound);
uint32 GetHMOTRTalkSfx(CPed *ped, uint16 sound);
uint32 GetHMOCATalkSfx(CPed *ped, uint16 sound);
uint32 GetBMYCRTalkSfx(CPed *ped, uint16 sound);
uint32 GetBFYSTTalkSfx(CPed *ped, uint16 sound);
uint32 GetBFOSTTalkSfx(CPed *ped, uint16 sound);
uint32 GetBMYSTTalkSfx(CPed *ped, uint16 sound);
uint32 GetBMOSTTalkSfx(CPed *ped, uint16 sound);
uint32 GetBFYRITalkSfx(CPed *ped, uint16 sound);
uint32 GetBFORITalkSfx(CPed *ped, uint16 sound);
uint32 GetBMYRITalkSfx(CPed *ped, uint16 sound);
uint32 GetBFYBETalkSfx(CPed *ped, uint16 sound);
uint32 GetBMYBETalkSfx(CPed *ped, uint16 sound);
uint32 GetBFOBETalkSfx(CPed *ped, uint16 sound);
uint32 GetBMOBETalkSfx(CPed *ped, uint16 sound);
uint32 GetBMYBUTalkSfx(CPed *ped, uint16 sound);
uint32 GetBFYPRTalkSfx(CPed *ped, uint16 sound);
uint32 GetBFOTRTalkSfx(CPed *ped, uint16 sound);
uint32 GetBMOTRTalkSfx(CPed *ped, uint16 sound);
uint32 GetBMYPITalkSfx(CPed *ped, uint16 sound);
uint32 GetBMYBBTalkSfx(CPed *ped, uint16 sound);
uint32 GetWMYCRTalkSfx(CPed *ped, uint16 sound);
uint32 GetWFYSTTalkSfx(CPed *ped, uint16 sound);
uint32 GetWFYSKTalkSfx(CPed *ped, uint16 sound);
uint32 GetWMYSKTalkSfx(CPed *ped, uint16 sound);
uint32 GetWFOSTTalkSfx(CPed *ped, uint16 sound);
uint32 GetWMYSTTalkSfx(CPed *ped, uint16 sound);
uint32 GetWMOSTTalkSfx(CPed *ped, uint16 sound);
uint32 GetWFYRITalkSfx(CPed *ped, uint16 sound);
uint32 GetWFORITalkSfx(CPed *ped, uint16 sound);
uint32 GetWMYRITalkSfx(CPed *ped, uint16 sound);
uint32 GetWMORITalkSfx(CPed *ped, uint16 sound);
uint32 GetWFYBETalkSfx(CPed *ped, uint16 sound);
uint32 GetWMYBETalkSfx(CPed *ped, uint16 sound);
uint32 GetWFOBETalkSfx(CPed *ped, uint16 sound);
uint32 GetWMOBETalkSfx(CPed *ped, uint16 sound);
uint32 GetWMYCWTalkSfx(CPed *ped, uint16 sound);
uint32 GetWMYGOTalkSfx(CPed *ped, uint16 sound);
uint32 GetWFOGOTalkSfx(CPed *ped, uint16 sound);
uint32 GetWMOGOTalkSfx(CPed *ped, uint16 sound);
uint32 GetWFYLGTalkSfx(CPed *ped, uint16 sound);
uint32 GetWMYLGTalkSfx(CPed *ped, uint16 sound);
uint32 GetWFYBUTalkSfx(CPed *ped, uint16 sound);
uint32 GetWMYBUTalkSfx(CPed *ped, uint16 sound);
uint32 GetWMOBUTalkSfx(CPed *ped, uint16 sound);
uint32 GetWFYPRTalkSfx(CPed *ped, uint16 sound);
uint32 GetWFOTRTalkSfx(CPed *ped, uint16 sound);
uint32 GetWMOTRTalkSfx(CPed *ped, uint16 sound);
uint32 GetWMYPITalkSfx(CPed *ped, uint16 sound);
uint32 GetWMOCATalkSfx(CPed *ped, uint16 sound);
uint32 GetWFYSHTalkSfx(CPed *ped, uint16 sound);
uint32 GetWFOSHTalkSfx(CPed *ped, uint16 sound);
uint32 GetJFOTOTalkSfx(CPed *ped, uint16 sound);
uint32 GetJMOTOTalkSfx(CPed *ped, uint16 sound);
uint32 GetHNTalkSfx(CPed *ped, uint16 sound);
uint32 GetBKTalkSfx(CPed *ped, uint16 sound);
uint32 GetCBTalkSfx(CPed *ped, uint16 sound);
uint32 GetSGTalkSfx(CPed *ped, uint16 sound);
uint32 GetCLTalkSfx(CPed *ped, uint16 sound);
uint32 GetGDTalkSfx(CPed *ped, uint16 sound);
uint32 GetPGTalkSfx(CPed *ped, uint16 sound);
uint32 GetViceWhiteTalkSfx(CPed *ped, uint16 sound);
uint32 GetViceBlackTalkSfx(CPed *ped, uint16 sound);
uint32 GetBMODKTalkSfx(CPed *ped, uint16 sound);
uint32 GetHMYAPTalkSfx(CPed *ped, uint16 sound);
uint32 GetWFYJGTalkSfx(CPed *ped, uint16 sound);
uint32 GetWMYJGTalkSfx(CPed *ped, uint16 sound);
uint32 GetSpecialCharacterTalkSfx(CPed *ped, int32 model, uint16 sound);
uint32 GetSpecialCharacterTalkSfx(uint32 modelIndex, uint16 sound);
uint32 GetEightBallTalkSfx(uint16 sound); // inlined on PS2
uint32 GetSalvatoreTalkSfx(uint16 sound); // inlined on PS2
uint32 GetMistyTalkSfx(uint16 sound);
uint32 GetOldJapTalkSfx(uint16 sound); // inlined on PS2
uint32 GetCatalinaTalkSfx(uint16 sound); // inlined on PS2
uint32 GetBomberTalkSfx(uint16 sound); // inlined on PS2
uint32 GetSecurityGuardTalkSfx(uint16 sound);
uint32 GetChunkyTalkSfx(uint16 sound); // inlined on PS2
uint32 GetAsianTaxiDriverTalkSfx(uint16 sound); // inlined on PS2
uint32 GetPimpTalkSfx(uint16 sound);
uint32 GetNormalMaleTalkSfx(uint16 sound);
uint32 GetGenericMaleTalkSfx(uint16 sound);
uint32 GetGenericFemaleTalkSfx(uint16 sound);
void DebugPlayPedComment(int32 sound);
// particles
void ProcessExplosions(int32 explosion);
@ -478,51 +563,43 @@ public:
void ProcessWaterCannon(int32);
// script objects
void ProcessScriptObject(int32 id); // inlined on PS2
void ProcessScriptObject(int32 id);
void ProcessOneShotScriptObject(uint8 sound);
void ProcessLoopingScriptObject(uint8 sound);
void ProcessPornCinema(uint8 sound);
void ProcessWorkShopScriptObject(uint8 sound);
void ProcessSawMillScriptObject(uint8 sound);
void ProcessLaunderetteScriptObject(uint8 sound);
void ProcessShopScriptObject(uint8 sound);
void ProcessAirportScriptObject(uint8 sound);
void ProcessCinemaScriptObject(uint8 sound);
void ProcessDocksScriptObject(uint8 sound);
void ProcessHomeScriptObject(uint8 sound);
void ProcessPoliceCellBeatingScriptObject(uint8 sound);
// misc
void ProcessWeather(int32 id);
void ProcessFrontEnd();
void ProcessCrane();
//void ProcessCrane();
void ProcessProjectiles();
void ProcessEscalators();
void ProcessExtraSounds();
void ProcessGarages();
void ProcessFireHydrant();
// bridge
void ProcessBridge(); // inlined on PS2
void ProcessBridgeWarning();
void ProcessBridgeMotor();
void ProcessBridgeOneShots();
#ifdef GTA_BRIDGE
void ProcessBridge();
#endif
// mission audio
const char *GetMissionAudioLoadedLabel(uint8 slot);
bool8 MissionScriptAudioUsesPoliceChannel(uint32 soundMission);
void PreloadMissionAudio(Const char *name);
uint8 GetMissionAudioLoadingStatus();
void SetMissionAudioLocation(float x, float y, float z);
void PlayLoadedMissionAudio();
bool8 IsMissionAudioSampleFinished();
bool8 IsMissionAudioSamplePlaying() { return m_nMissionAudioPlayStatus == PLAY_STATUS_PLAYING; }
bool8 ShouldDuckMissionAudio() { return IsMissionAudioSamplePlaying(); }
void ClearMissionAudio();
void PreloadMissionAudio(uint8 slot, Const char *name);
uint8 GetMissionAudioLoadingStatus(uint8 slot);
void SetMissionAudioLocation(uint8 slot, float x, float y, float z);
void PlayLoadedMissionAudio(uint8 slot);
bool8 ShouldDuckMissionAudio(uint8 slot);
bool8 IsMissionAudioSamplePlaying(uint8 slot);
bool8 IsMissionAudioSampleFinished(uint8 slot);
void ClearMissionAudio(uint8 slot); // inlined in vc
void ProcessMissionAudioSlot(uint8 slot);
void ProcessMissionAudio();
// police radio
void InitialisePoliceRadioZones();
void InitialisePoliceRadio();
void ResetPoliceRadio();
void SetMissionScriptPoliceAudio(uint32 sfx);
void SetMissionScriptPoliceAudio(uint32 sfx); // inlined and optimized
int8 GetMissionScriptPoliceAudioPlayingStatus();
void DoPoliceRadioCrackle();
void ServicePoliceRadio();
@ -531,7 +608,7 @@ public:
void SetupSuspectLastSeenReport();
void ReportCrime(eCrimeType crime, const CVector &pos);
void PlaySuspectLastSeen(float x, float y, float z);
void AgeCrimes(); // inlined on PS2
void AgeCrimes(); // inlined in vc
// collision stuff
void ReportCollision(CEntity *entity1, CEntity *entity2, uint8 surface1, uint8 surface2, float collisionPower, float intensity2);
@ -541,7 +618,9 @@ public:
uint32 SetLoopingCollisionRequestedSfxFreqAndGetVol(const cAudioCollision &audioCollision);
float GetCollisionOneShotRatio(uint32 a, float b);
float GetCollisionLoopingRatio(uint32 a, uint32 b, float c); // not used
float GetCollisionRatio(float a, float b, float c, float d); // inlined on PS2
float GetCollisionRatio(float a, float b, float c, float d); // inlined in vc
float Sqrt(float v) const { return v <= 0.0f ? 0.0f : ::Sqrt(v); }
};
/*
@ -570,9 +649,26 @@ public:
#else
#define SET_SOUND_REFLECTION(b)
#endif
#if defined(AUDIO_MSS) && !defined(PS2_AUDIO_CHANNELS)
static_assert(sizeof(cAudioManager) == 19220, "cAudioManager: error");
#ifdef AUDIO_REVERB
#define SET_SOUND_REVERB(b) m_sQueueSample.m_bReverb = b
#else
#define SET_SOUND_REVERB(b)
#endif
#ifndef GTA_PS2
#define CHANNEL_PLAYER_VEHICLE_ENGINE m_nActiveSamples
#endif
//#if defined(AUDIO_MSS) && !defined(PS2_AUDIO_CHANNELS)
//static_assert(sizeof(cAudioManager) == 0x5558, "cAudioManager: error");
//#endif
extern cAudioManager AudioManager;
enum
{
PED_COMMENT_VOLUME = 127,
PED_COMMENT_VOLUME_BEHIND_WALL = 31,
COLLISION_MAX_DIST = 60,
};

File diff suppressed because it is too large Load Diff

View File

@ -93,6 +93,8 @@ cAudioScriptObject::SaveAllAudioScriptObjects(uint8 *buf, uint32 *size)
void
PlayOneShotScriptObject(uint8 id, CVector const &pos)
{
if (!DMAudio.IsAudioInitialised()) return;
cAudioScriptObject *audioScriptObject = new cAudioScriptObject();
audioScriptObject->Posn = pos;
audioScriptObject->AudioId = id;

View File

@ -63,9 +63,18 @@ cDMAudio::DestroyAllGameCreatedEntities(void)
}
void
cDMAudio::SetMonoMode(bool8 mono)
cDMAudio::SetOutputMode(bool8 surround)
{
AudioManager.SetMonoMode(mono);
AudioManager.SetOutputMode(surround);
}
void
cDMAudio::SetMP3BoostVolume(uint8 volume)
{
uint8 vol = volume;
if (vol > MAX_VOLUME) vol = MAX_VOLUME;
AudioManager.SetMP3BoostVolume(vol);
}
void
@ -116,6 +125,11 @@ cDMAudio::Get3DProviderName(uint8 id)
return AudioManager.Get3DProviderName(id);
}
int8 cDMAudio::AutoDetect3DProviders(void)
{
return AudioManager.AutoDetect3DProviders();
}
int8
cDMAudio::GetCurrent3DProviderIndex(void)
{
@ -238,13 +252,13 @@ cDMAudio::PlayFrontEndSound(uint16 frontend, uint32 volume)
}
void
cDMAudio::PlayRadioAnnouncement(uint8 announcement)
cDMAudio::PlayRadioAnnouncement(uint32 announcement)
{
MusicManager.PlayAnnouncement(announcement);
}
void
cDMAudio::PlayFrontEndTrack(uint8 track, bool8 frontendFlag)
cDMAudio::PlayFrontEndTrack(uint32 track, bool8 frontendFlag)
{
MusicManager.PlayFrontEndTrack(track, frontendFlag);
}
@ -268,7 +282,7 @@ cDMAudio::ChangeMusicMode(uint8 mode)
}
void
cDMAudio::PreloadCutSceneMusic(uint8 track)
cDMAudio::PreloadCutSceneMusic(uint32 track)
{
MusicManager.PreloadCutSceneMusic(track);
}
@ -286,39 +300,51 @@ cDMAudio::StopCutSceneMusic(void)
}
void
cDMAudio::PreloadMissionAudio(Const char *missionAudio)
cDMAudio::PreloadMissionAudio(uint8 slot, Const char *missionAudio)
{
AudioManager.PreloadMissionAudio(missionAudio);
AudioManager.PreloadMissionAudio(slot, missionAudio);
}
uint8
cDMAudio::GetMissionAudioLoadingStatus(void)
cDMAudio::GetMissionAudioLoadingStatus(uint8 slot)
{
return AudioManager.GetMissionAudioLoadingStatus();
return AudioManager.GetMissionAudioLoadingStatus(slot);
}
void
cDMAudio::SetMissionAudioLocation(float x, float y, float z)
cDMAudio::SetMissionAudioLocation(uint8 slot, float x, float y, float z)
{
AudioManager.SetMissionAudioLocation(x, y, z);
AudioManager.SetMissionAudioLocation(slot, x, y, z);
}
void
cDMAudio::PlayLoadedMissionAudio(void)
cDMAudio::PlayLoadedMissionAudio(uint8 slot)
{
AudioManager.PlayLoadedMissionAudio();
AudioManager.PlayLoadedMissionAudio(slot);
}
bool8
cDMAudio::IsMissionAudioSampleFinished(void)
cDMAudio::IsMissionAudioSamplePlaying(uint8 slot)
{
return AudioManager.IsMissionAudioSampleFinished();
return AudioManager.IsMissionAudioSamplePlaying(slot);
}
bool8
cDMAudio::IsMissionAudioSampleFinished(uint8 slot)
{
return AudioManager.IsMissionAudioSampleFinished(slot);
}
void
cDMAudio::ClearMissionAudio(void)
cDMAudio::ClearMissionAudio(uint8 slot)
{
AudioManager.ClearMissionAudio();
AudioManager.ClearMissionAudio(slot);
}
const char *
cDMAudio::GetMissionAudioLoadedLabel(uint8 slot)
{
return AudioManager.GetMissionAudioLoadedLabel(slot);
}
uint8
@ -334,7 +360,49 @@ cDMAudio::SetRadioInCar(uint32 radio)
}
void
cDMAudio::SetRadioChannel(uint8 radio, int32 pos)
cDMAudio::SetRadioChannel(uint32 radio, int32 pos)
{
MusicManager.SetRadioChannelByScript(radio, pos);
}
void
cDMAudio::SetStartingTrackPositions(bool8 isStartGame)
{
MusicManager.SetStartingTrackPositions(isStartGame);
}
float *
cDMAudio::GetListenTimeArray()
{
return MusicManager.GetListenTimeArray();
}
uint32
cDMAudio::GetFavouriteRadioStation()
{
return MusicManager.GetFavouriteRadioStation();
}
int32
cDMAudio::GetRadioPosition(uint32 station)
{
return MusicManager.GetRadioPosition(station);
}
void
cDMAudio::SetPedTalkingStatus(CPed *ped, bool8 status)
{
return AudioManager.SetPedTalkingStatus(ped, status);
}
void
cDMAudio::SetPlayersMood(uint8 mood, uint32 time)
{
return AudioManager.SetPlayersMood(mood, time);
}
void
cDMAudio::ShutUpPlayerTalking(bool8 state)
{
AudioManager.m_bIsPlayerShutUp = state;
}

View File

@ -7,6 +7,9 @@
#define AEHANDLE_IS_FAILED(h) ((h)<0)
#define AEHANDLE_IS_OK(h) ((h)>=0)
#define NO_AUDIO_PROVIDER -3
#define AUDIO_PROVIDER_NOT_DETERMINED -99
class cAudioScriptObject;
class CEntity;
@ -27,7 +30,8 @@ public:
void PlayOneShot(int32 audioEntity, uint16 oneShot, float volume);
void DestroyAllGameCreatedEntities(void);
void SetMonoMode(bool8 mono);
void SetOutputMode(bool8 surround);
void SetMP3BoostVolume(uint8 volume);
void SetEffectsMasterVolume(uint8 volume);
void SetMusicMasterVolume(uint8 volume);
void SetEffectsFadeVol(uint8 volume);
@ -36,6 +40,8 @@ public:
uint8 GetNum3DProvidersAvailable(void);
char *Get3DProviderName(uint8 id);
int8 AutoDetect3DProviders(void);
int8 GetCurrent3DProviderIndex(void);
int8 SetCurrent3DProvider(uint8 which);
@ -65,27 +71,37 @@ public:
void ReportCollision(CEntity *entityA, CEntity *entityB, uint8 surfaceTypeA, uint8 surfaceTypeB, float collisionPower, float velocity);
void PlayFrontEndSound(uint16 frontend, uint32 volume);
void PlayRadioAnnouncement(uint8 announcement);
void PlayFrontEndTrack(uint8 track, bool8 frontendFlag);
void PlayRadioAnnouncement(uint32 announcement);
void PlayFrontEndTrack(uint32 track, bool8 frontendFlag);
void StopFrontEndTrack(void);
void ResetTimers(uint32 time);
void ChangeMusicMode(uint8 mode);
void PreloadCutSceneMusic(uint8 track);
void PreloadCutSceneMusic(uint32 track);
void PlayPreloadedCutSceneMusic(void);
void StopCutSceneMusic(void);
void PreloadMissionAudio(Const char *missionAudio);
uint8 GetMissionAudioLoadingStatus(void);
void SetMissionAudioLocation(float x, float y, float z);
void PlayLoadedMissionAudio(void);
bool8 IsMissionAudioSampleFinished(void);
void ClearMissionAudio(void);
void PreloadMissionAudio(uint8 slot, Const char *missionAudio);
uint8 GetMissionAudioLoadingStatus(uint8 slot);
void SetMissionAudioLocation(uint8 slot, float x, float y, float z);
void PlayLoadedMissionAudio(uint8 slot);
bool8 IsMissionAudioSamplePlaying(uint8 slot);
bool8 IsMissionAudioSampleFinished(uint8 slot);
void ClearMissionAudio(uint8 slot);
const char *GetMissionAudioLoadedLabel(uint8 slot);
uint8 GetRadioInCar(void);
void SetRadioInCar(uint32 radio);
void SetRadioChannel(uint8 radio, int32 pos);
void SetRadioChannel(uint32 radio, int32 pos);
void SetStartingTrackPositions(bool8 isStartGame);
float *GetListenTimeArray();
uint32 GetFavouriteRadioStation();
int32 GetRadioPosition(uint32 station);
void SetPedTalkingStatus(class CPed *ped, bool8 status);
void SetPlayersMood(uint8 mood, uint32 time);
void ShutUpPlayerTalking(bool8 state);
};
extern cDMAudio DMAudio;

File diff suppressed because it is too large Load Diff

View File

@ -11,41 +11,53 @@ public:
};
class CVehicle;
class CPed;
class cMusicManager
{
public:
bool8 m_bIsInitialised;
bool8 m_bDisabled;
uint8 m_nMusicMode;
uint8 m_nNextTrack;
uint8 m_nPlayingTrack;
bool8 m_bFrontendTrackFinished;
bool8 m_bPlayInFrontend;
bool8 m_bSetNextStation;
uint8 m_nAnnouncement;
bool8 m_bPreviousPlayerInCar;
bool8 m_bPlayerInCar;
uint8 m_nVolumeLatency;
uint8 m_nCurrentVolume;
uint8 m_nMaxVolume;
uint32 m_nAnnouncement;
bool8 m_bAnnouncementInProgress;
tStreamedSample m_aTracks[TOTAL_STREAMED_SOUNDS];
bool8 m_bResetTimers;
uint32 m_nResetTime;
uint32 m_nLastTrackServiceTime;
uint32 m_nTimer;
bool8 m_bDoTrackService;
bool8 m_bIgnoreTimeDelay;
bool8 m_bVerifyAmbienceTrackStartedToPlay;
bool8 m_bRadioSetByScript;
uint8 m_nRadioStationScript;
int32 m_nRadioPosition;
uint8 m_nRadioInCar;
uint32 m_nRadioInCar;
uint32 m_nFrontendTrack;
uint32 m_nPlayingTrack;
uint8 m_nUpcomingMusicMode;
uint8 m_nMusicMode;
bool8 m_FrontendLoopFlag;
bool8 m_bTrackChangeStarted;
uint32 m_nNextTrack;
bool8 m_nNextLoopFlag;
bool8 m_bVerifyNextTrackStartedToPlay;
bool8 m_bGameplayAllowsRadio;
bool8 m_bRadioStreamReady;
int8 nFramesSinceCutsceneEnded;
bool8 m_bUserResumedGame;
bool8 m_bMusicModeChangeStarted;
uint8 m_nMusicModeToBeSet;
bool8 m_bEarlyFrontendTrack;
float aListenTimeArray[NUM_RADIOS];
float m_nLastTrackServiceTime;
public:
cMusicManager();
bool8 IsInitialised() { return m_bIsInitialised; }
uint32 GetMusicMode() { return m_nMusicMode; }
uint8 GetNextTrack() { return m_nNextTrack; }
uint8 GetMusicMode() { return m_nMusicMode; }
uint32 GetCurrentTrack() { return m_nPlayingTrack; }
void ResetMusicAfterReload();
void SetStartingTrackPositions(bool8 isNewGameTimer);
bool8 Initialise();
void Terminate();
@ -55,35 +67,47 @@ public:
bool8 PlayerInCar();
void DisplayRadioStationName();
void PlayAnnouncement(uint8);
void PlayFrontEndTrack(uint8, bool8);
void PreloadCutSceneMusic(uint8);
void PlayAnnouncement(uint32);
void PlayFrontEndTrack(uint32, bool8);
void PreloadCutSceneMusic(uint32);
void PlayPreloadedCutSceneMusic(void);
void StopCutSceneMusic(void);
uint8 GetRadioInCar(void);
uint32 GetRadioInCar(void);
void SetRadioInCar(uint32);
void SetRadioChannelByScript(uint8, int32);
void SetRadioChannelByScript(uint32, int32);
void ResetMusicAfterReload();
void ResetTimers(int32);
void ResetTimers(uint32);
void Service();
void ServiceFrontEndMode();
void ServiceGameMode();
void ServiceAmbience();
void ServiceTrack();
void ServiceTrack(CVehicle *veh, CPed *ped);
bool8 UsesPoliceRadio(CVehicle *veh);
uint32 GetTrackStartPos(uint8);
bool8 UsesTaxiRadio(CVehicle *veh);
uint32 GetTrackStartPos(uint32 track);
void ComputeAmbienceVol(bool8 reset, uint8& outVolume);
bool8 ServiceAnnouncement();
uint8 GetCarTuning();
uint8 GetNextCarTuning();
uint32 GetCarTuning();
uint32 GetNextCarTuning();
bool8 ChangeRadioChannel();
void RecordRadioStats();
void SetUpCorrectAmbienceTrack();
float *GetListenTimeArray();
uint32 GetRadioPosition(uint32 station);
uint32 GetFavouriteRadioStation();
void SetMalibuClubTrackPos(uint8 pos);
void SetStripClubTrackPos(uint8 pos);
bool8 CheckForMusicInterruptions();
void Enable();
void Disable();
};
VALIDATE_SIZE(cMusicManager, 0x95C);
extern cMusicManager MusicManager;
extern bool8 g_bAnnouncementReadPosAlready; // we have a symbol of this so it was declared in .h
float GetHeightScale();

View File

@ -22,8 +22,6 @@ struct tPoliceRadioZone {
};
tPoliceRadioZone ZoneSfx[NUMAUDIOZONES];
char SubZo2Label[8];
char SubZo3Label[8];
uint32 g_nMissionAudioSfx = TOTAL_AUDIO_SAMPLES;
int8 g_nMissionAudioPlayingStatus = PLAY_STATUS_FINISHED;
@ -40,46 +38,22 @@ cAudioManager::InitialisePoliceRadioZones()
strcpy(ZoneSfx[i].m_aName, name); \
ZoneSfx[i].m_nSampleIndex = sample;
SETZONESFX(0, "HOSPI_2", SFX_POLICE_RADIO_ROCKFORD);
SETZONESFX(1, "CONSTRU", SFX_POLICE_RADIO_FORT_STAUNTON);
SETZONESFX(2, "STADIUM", SFX_POLICE_RADIO_ASPATRIA);
SETZONESFX(3, "YAKUSA", SFX_POLICE_RADIO_TORRINGTON);
SETZONESFX(4, "SHOPING", SFX_POLICE_RADIO_BEDFORD_POINT);
SETZONESFX(5, "COM_EAS", SFX_POLICE_RADIO_NEWPORT);
SETZONESFX(6, "PARK", SFX_POLICE_RADIO_BELLEVILLE_PARK);
SETZONESFX(7, "UNIVERS", SFX_POLICE_RADIO_LIBERTY_CAMPUS);
SETZONESFX(8, "BIG_DAM", SFX_POLICE_RADIO_COCHRANE_DAM);
SETZONESFX(9, "SUB_IND", SFX_POLICE_RADIO_PIKE_CREEK);
SETZONESFX(10, "SWANKS", SFX_POLICE_RADIO_CEDAR_GROVE);
SETZONESFX(11, "PROJECT", SFX_POLICE_RADIO_WICHITA_GARDENS);
SETZONESFX(12, "AIRPORT", SFX_POLICE_RADIO_FRANCIS_INTERNATIONAL_AIRPORT);
SETZONESFX(13, "PORT_W", SFX_POLICE_RADIO_CALLAHAN_POINT);
SETZONESFX(14, "PORT_S", SFX_POLICE_RADIO_ATLANTIC_QUAYS);
SETZONESFX(15, "PORT_E", SFX_POLICE_RADIO_PORTLAND_HARBOUR);
SETZONESFX(16, "PORT_I", SFX_POLICE_RADIO_TRENTON);
SETZONESFX(17, "CHINA", SFX_POLICE_RADIO_CHINATOWN);
SETZONESFX(18, "REDLIGH", SFX_POLICE_RADIO_RED_LIGHT_DISTRICT);
SETZONESFX(19, "TOWERS", SFX_POLICE_RADIO_HEPBURN_HEIGHTS);
SETZONESFX(20, "LITTLEI", SFX_POLICE_RADIO_SAINT_MARKS);
SETZONESFX(21, "HARWOOD", SFX_POLICE_RADIO_HARWOOD);
SETZONESFX(22, "EASTBAY", SFX_POLICE_RADIO_PORTLAND_BEACH);
SETZONESFX(23, "S_VIEW", SFX_POLICE_RADIO_PORTLAND_STRAIGHTS);
SETZONESFX(24, "CITYZON", SFX_POLICE_RADIO_LIBERTY_CITY);
SETZONESFX(25, "IND_ZON", SFX_POLICE_RADIO_PORTLAND);
SETZONESFX(26, "COM_ZON", SFX_POLICE_RADIO_STAUNTON_ISLAND);
SETZONESFX(27, "SUB_ZON", SFX_POLICE_RADIO_SHORESIDE_VALE);
SETZONESFX(28, "SUB_ZO2", SFX_POLICE_RADIO_SHORESIDE_VALE);
SETZONESFX(29, "SUB_ZO3", SFX_POLICE_RADIO_SHORESIDE_VALE);
SETZONESFX(30, "A", SFX_POLICE_RADIO_ROCKFORD);
SETZONESFX(31, "A", SFX_POLICE_RADIO_ROCKFORD);
SETZONESFX(32, "A", SFX_POLICE_RADIO_ROCKFORD);
SETZONESFX(33, "A", SFX_POLICE_RADIO_ROCKFORD);
SETZONESFX(34, "A", SFX_POLICE_RADIO_ROCKFORD);
SETZONESFX(0, "VICE_C", SFX_SFX_POLICE_RADIO_VICE_CITY);
SETZONESFX(1, "IND_ZON", SFX_SFX_POLICE_RADIO_VICE_CITY_BEACH);
SETZONESFX(2, "COM_ZON", SFX_SFX_POLICE_RADIO_VICE_CITY_MAINLAND);
SETZONESFX(3, "BEACH1", SFX_SFX_POLICE_RADIO_OCEAN_BEACH);
SETZONESFX(4, "BEACH2", SFX_SFX_POLICE_RADIO_WASHINGTON_BEACH);
SETZONESFX(5, "BEACH3", SFX_SFX_POLICE_RADIO_VICE_POINT);
SETZONESFX(6, "GOLFC", SFX_SFX_POLICE_RADIO_LEAF_LINKS);
SETZONESFX(7, "STARI", SFX_SFX_POLICE_RADIO_STARFISH_ISLAND);
SETZONESFX(8, "DOCKS", SFX_SFX_POLICE_RADIO_VICEPORT);
SETZONESFX(9, "HAVANA", SFX_SFX_POLICE_RADIO_LITTLE_HAVANA);
SETZONESFX(10, "HAITI", SFX_SFX_POLICE_RADIO_LITTLE_HAITI);
SETZONESFX(11, "PORNI", SFX_SFX_POLICE_RADIO_PRAWN_ISLAND);
SETZONESFX(12, "DTOWN", SFX_SFX_POLICE_RADIO_DOWNTOWN);
SETZONESFX(13, "A_PORT", SFX_SFX_POLICE_RADIO_ESCOBAR_INTERNATIONAL);
#undef SETZONESFX
strcpy(SubZo2Label, "SUB_ZO2");
strcpy(SubZo3Label, "SUB_ZO3");
}
void
@ -88,8 +62,9 @@ cAudioManager::InitialisePoliceRadio()
m_sPoliceRadioQueue.Reset();
for (int32 i = 0; i < ARRAY_SIZE(m_aCrimes); i++)
m_aCrimes[i].type = CRIME_NONE;
#if !defined(GTA_PS2) || defined(AUDIO_REVERB)
SampleManager.SetChannelReverbFlag(CHANNEL_POLICE_RADIO, FALSE);
#endif
gSpecialSuspectLastSeenReport = FALSE;
for (int32 i = 0; i < ARRAY_SIZE(gMinTimeToNextReport); i++)
gMinTimeToNextReport[i] = m_FrameCounter;
@ -134,7 +109,7 @@ cAudioManager::DoPoliceRadioCrackle()
SET_EMITTING_VOLUME(m_sQueueSample.m_nVolume);
SET_LOOP_OFFSETS(SFX_POLICE_RADIO_CRACKLE)
m_sQueueSample.m_bStatic = FALSE;
m_sQueueSample.m_bReverb = FALSE;
SET_SOUND_REVERB(FALSE);
m_sQueueSample.m_nPan = 63;
m_sQueueSample.m_nFramesToPlay = 3;
SET_SOUND_REFLECTION(FALSE);
@ -144,34 +119,39 @@ cAudioManager::DoPoliceRadioCrackle()
void
cAudioManager::ServicePoliceRadio()
{
/*
int32 wantedLevel = 0; // uninitialized variable
static uint32 nLastSeen = 300;
if(!m_bIsInitialised) return;
if(!m_nUserPause) {
if(!m_bIsPaused) {
bool8 crimeReport = SetupCrimeReport();
#ifdef FIX_BUGS // Crash at 0x5fe6ef
if(CReplay::IsPlayingBack() || !FindPlayerPed() || !FindPlayerPed()->m_pWanted)
return;
#endif
wantedLevel = FindPlayerPed()->m_pWanted->GetWantedLevel();
if(!crimeReport) {
if(wantedLevel != 0) {
if(nLastSeen != 0) {
CPlayerPed *playerPed = FindPlayerPed();
if (playerPed) {
wantedLevel = playerPed->m_pWanted->GetWantedLevel();
if (!crimeReport) {
if (wantedLevel != 0) {
if (nLastSeen != 0)
#ifdef FIX_BUGS
nLastSeen -= CTimer::GetLogicalFramesPassed();
nLastSeen -= CTimer::GetLogicalFramesPassed();
#else
--nLastSeen;
nLastSeen--;
#endif
} else {
nLastSeen = m_anRandomTable[1] % 1000 + 2000;
SetupSuspectLastSeenReport();
else {
nLastSeen = m_anRandomTable[1] % 1000 + 2000;
SetupSuspectLastSeenReport();
}
}
}
}
}
ServicePoliceRadioChannel(wantedLevel);
*/
}
void
@ -179,23 +159,23 @@ cAudioManager::ServicePoliceRadioChannel(uint8 wantedLevel)
{
bool8 processed = FALSE;
uint32 sample;
int32 freq;
uint32 freq;
static int cWait = 0;
static bool8 bChannelOpen = FALSE;
static uint8 bMissionAudioPhysicalPlayingStatus = PLAY_STATUS_STOPPED;
static int32 PoliceChannelFreq = 5500;
static uint32 PoliceChannelFreq = 22050;
if (!m_bIsInitialised) return;
if (m_nUserPause) {
if (m_bIsPaused) {
if (SampleManager.GetChannelUsedFlag(CHANNEL_POLICE_RADIO)) SampleManager.StopChannel(CHANNEL_POLICE_RADIO);
if (g_nMissionAudioSfx != TOTAL_AUDIO_SAMPLES && bMissionAudioPhysicalPlayingStatus == PLAY_STATUS_PLAYING &&
if (g_nMissionAudioSfx != NO_SAMPLE && bMissionAudioPhysicalPlayingStatus == PLAY_STATUS_PLAYING &&
SampleManager.IsStreamPlaying(1)) {
SampleManager.PauseStream(TRUE, 1);
}
} else {
if (m_nPreviousUserPause && g_nMissionAudioSfx != TOTAL_AUDIO_SAMPLES &&
if (m_bWasPaused && g_nMissionAudioSfx != NO_SAMPLE &&
bMissionAudioPhysicalPlayingStatus == PLAY_STATUS_PLAYING) {
SampleManager.PauseStream(FALSE, 1);
}
@ -208,7 +188,7 @@ cAudioManager::ServicePoliceRadioChannel(uint8 wantedLevel)
#endif
return;
}
if (g_nMissionAudioSfx != TOTAL_AUDIO_SAMPLES && !bChannelOpen) {
if (g_nMissionAudioSfx != NO_SAMPLE && !bChannelOpen) {
if (g_nMissionAudioPlayingStatus != PLAY_STATUS_STOPPED) {
if (g_nMissionAudioPlayingStatus == PLAY_STATUS_PLAYING && bMissionAudioPhysicalPlayingStatus == PLAY_STATUS_STOPPED &&
SampleManager.IsStreamPlaying(1)) {
@ -220,7 +200,7 @@ cAudioManager::ServicePoliceRadioChannel(uint8 wantedLevel)
} else {
bMissionAudioPhysicalPlayingStatus = PLAY_STATUS_FINISHED;
g_nMissionAudioPlayingStatus = PLAY_STATUS_FINISHED;
g_nMissionAudioSfx = TOTAL_AUDIO_SAMPLES;
g_nMissionAudioSfx = NO_SAMPLE;
cWait = 30;
}
return;
@ -235,25 +215,23 @@ cAudioManager::ServicePoliceRadioChannel(uint8 wantedLevel)
}
}
if (bChannelOpen) DoPoliceRadioCrackle();
if ((g_nMissionAudioSfx == TOTAL_AUDIO_SAMPLES || g_nMissionAudioPlayingStatus != PLAY_STATUS_PLAYING) &&
if ((g_nMissionAudioSfx == NO_SAMPLE || g_nMissionAudioPlayingStatus != PLAY_STATUS_PLAYING) &&
!SampleManager.GetChannelUsedFlag(CHANNEL_POLICE_RADIO) && m_sPoliceRadioQueue.m_nSamplesInQueue != 0) {
sample = m_sPoliceRadioQueue.Remove();
if (wantedLevel == 0) {
if (gSpecialSuspectLastSeenReport) {
gSpecialSuspectLastSeenReport = FALSE;
} else if (((sample >= SFX_POLICE_RADIO_MESSAGE_NOISE_1) && (sample <= SFX_POLICE_RADIO_MESSAGE_NOISE_3)) || sample == TOTAL_AUDIO_SAMPLES) {
} else if (sample == SFX_POLICE_RADIO_MESSAGE_NOISE_1) {
bChannelOpen = FALSE;
processed = TRUE;
}
}
if (sample == TOTAL_AUDIO_SAMPLES) {
if (sample == NO_SAMPLE) {
if (!processed) cWait = 30;
} else {
SampleManager.InitialiseChannel(CHANNEL_POLICE_RADIO, sample, SFX_BANK_0);
switch (sample) {
case SFX_POLICE_RADIO_MESSAGE_NOISE_1:
case SFX_POLICE_RADIO_MESSAGE_NOISE_2:
case SFX_POLICE_RADIO_MESSAGE_NOISE_3:
freq = m_anRandomTable[4] % 2000 + 10025;
bChannelOpen = bChannelOpen == FALSE;
break;
@ -267,8 +245,8 @@ cAudioManager::ServicePoliceRadioChannel(uint8 wantedLevel)
#endif
SampleManager.SetChannelVolume(CHANNEL_POLICE_RADIO, 100);
SampleManager.SetChannelPan(CHANNEL_POLICE_RADIO, 63);
#ifndef GTA_PS2
SampleManager.SetChannelLoopCount(CHANNEL_POLICE_RADIO, 1);
#ifndef GTA_PS2
SampleManager.SetChannelLoopPoints(CHANNEL_POLICE_RADIO, 0, -1);
#endif
SampleManager.StartChannel(CHANNEL_POLICE_RADIO);
@ -312,49 +290,54 @@ cAudioManager::SetupCrimeReport()
for (int j = 0; j < NUMAUDIOZONES; j++) {
if (strcmp(zone->name, ZoneSfx[j].m_aName) == 0) {
sampleIndex = ZoneSfx[j].m_nSampleIndex;
m_sPoliceRadioQueue.Add(m_anRandomTable[4] % 3 + SFX_POLICE_RADIO_MESSAGE_NOISE_1);
m_sPoliceRadioQueue.Add(SFX_POLICE_RADIO_MESSAGE_NOISE_1);
m_sPoliceRadioQueue.Add(m_anRandomTable[0] % 3 + SFX_WEVE_GOT);
m_sPoliceRadioQueue.Add(m_anRandomTable[1] % 2 + SFX_A_10_1);
m_sPoliceRadioQueue.Add(SFX_A_10);
switch (m_aCrimes[i].type) {
case CRIME_PED_BURNED: m_aCrimes[i].type = CRIME_HIT_PED; break;
case CRIME_COP_BURNED: m_aCrimes[i].type = CRIME_HIT_COP; break;
case CRIME_PED_BURNED:
case CRIME_HIT_PED_NASTYWEAPON:
m_aCrimes[i].type = CRIME_HIT_PED;
break;
case CRIME_COP_BURNED:
case CRIME_HIT_COP_NASTYWEAPON:
m_aCrimes[i].type = CRIME_HIT_COP;
break;
case CRIME_VEHICLE_BURNED: m_aCrimes[i].type = CRIME_STEAL_CAR; break;
case CRIME_DESTROYED_CESSNA: m_aCrimes[i].type = CRIME_SHOOT_HELI; break;
case CRIME_EXPLOSION: m_aCrimes[i].type = CRIME_STEAL_CAR; break; // huh?
default: break;
}
m_sPoliceRadioQueue.Add(m_aCrimes[i].type + SFX_CRIME_1 - 1);
#ifdef FIX_BUGS
m_sPoliceRadioQueue.Add(m_aCrimes[i].type + SFX_SFX_CRIME_1 - 1);
#else
m_sPoliceRadioQueue.Add(m_aCrimes[i].type + SFX_SFX_CRIME_1);
#endif
m_sPoliceRadioQueue.Add(SFX_IN);
if (sampleIndex == SFX_POLICE_RADIO_SHORESIDE_VALE &&
(strcmp(zone->name, SubZo2Label) == 0 || strcmp(zone->name, SubZo3Label) == 0)) {
rangeX = zone->maxx - zone->minx;
rangeY = zone->maxy - zone->miny;
halfX = 0.5f * rangeX + zone->minx;
halfY = 0.5f * rangeY + zone->miny;
quarterX = 0.25f * rangeX;
quarterY = 0.25f * rangeY;
if (m_aCrimes[i].position.y > halfY + quarterY) {
m_sPoliceRadioQueue.Add(SFX_NORTH);
m_sPoliceRadioQueue.Add(SFX_EAST);
} else {
rangeX = zone->maxx - zone->minx;
rangeY = zone->maxy - zone->miny;
halfX = 0.5f * rangeX + zone->minx;
halfY = 0.5f * rangeY + zone->miny;
quarterX = 0.25f * rangeX;
quarterY = 0.25f * rangeY;
if (m_aCrimes[i].position.y > halfY + quarterY) {
m_sPoliceRadioQueue.Add(SFX_NORTH);
processed = TRUE;
} else if (m_aCrimes[i].position.y < halfY - quarterY) {
m_sPoliceRadioQueue.Add(SFX_SOUTH);
processed = TRUE;
}
if (m_aCrimes[i].position.x > halfX + quarterX)
m_sPoliceRadioQueue.Add(SFX_EAST);
else if (m_aCrimes[i].position.x < halfX - quarterX)
m_sPoliceRadioQueue.Add(SFX_WEST);
else if (!processed)
m_sPoliceRadioQueue.Add(SFX_CENTRAL);
m_sPoliceRadioQueue.Add(sampleIndex);
m_sPoliceRadioQueue.Add(m_anRandomTable[2] % 3 + SFX_POLICE_RADIO_MESSAGE_NOISE_1);
m_sPoliceRadioQueue.Add(TOTAL_AUDIO_SAMPLES);
processed = TRUE;
} else if (m_aCrimes[i].position.y < halfY - quarterY) {
m_sPoliceRadioQueue.Add(SFX_SOUTH);
processed = TRUE;
}
if (m_aCrimes[i].position.x > halfX + quarterX)
m_sPoliceRadioQueue.Add(SFX_EAST);
else if (m_aCrimes[i].position.x < halfX - quarterX)
m_sPoliceRadioQueue.Add(SFX_WEST);
else if (!processed)
m_sPoliceRadioQueue.Add(SFX_CENTRAL);
m_sPoliceRadioQueue.Add(sampleIndex);
m_sPoliceRadioQueue.Add(SFX_POLICE_RADIO_MESSAGE_NOISE_1);
m_sPoliceRadioQueue.Add(NO_SAMPLE);
break;
}
}
@ -364,173 +347,117 @@ cAudioManager::SetupCrimeReport()
return TRUE;
}
Const uint32 gCarColourTable[][3] = {
{NO_SAMPLE, SFX_SFX_POLICE_RADIO_BLACK, NO_SAMPLE},
{NO_SAMPLE, SFX_SFX_POLICE_RADIO_WHITE, NO_SAMPLE},
{NO_SAMPLE, SFX_SFX_POLICE_RADIO_BLUE, NO_SAMPLE},
{NO_SAMPLE, SFX_SFX_POLICE_RADIO_RED, NO_SAMPLE},
{SFX_POLICE_RADIO_DARK, SFX_SFX_POLICE_RADIO_BLUE, NO_SAMPLE},
{NO_SAMPLE, SFX_SFX_POLICE_RADIO_PURPLE, NO_SAMPLE},
{NO_SAMPLE, SFX_SFX_POLICE_RADIO_YELLOW, NO_SAMPLE},
{SFX_POLICE_RADIO_BRIGHT, SFX_SFX_POLICE_RADIO_BLUE, NO_SAMPLE},
{SFX_POLICE_RADIO_LIGHT, SFX_SFX_POLICE_RADIO_BLUE, SFX_SFX_POLICE_RADIO_GREY},
{SFX_POLICE_RADIO_LIGHT, NO_SAMPLE, NO_SAMPLE},
{SFX_POLICE_RADIO_DARK, NO_SAMPLE, NO_SAMPLE},
{SFX_POLICE_RADIO_DARK, NO_SAMPLE, NO_SAMPLE},
{SFX_POLICE_RADIO_DARK, SFX_SFX_POLICE_RADIO_RED, NO_SAMPLE},
{NO_SAMPLE, SFX_SFX_POLICE_RADIO_RED, NO_SAMPLE},
{NO_SAMPLE, SFX_SFX_POLICE_RADIO_RED, NO_SAMPLE},
{NO_SAMPLE, SFX_SFX_POLICE_RADIO_RED, NO_SAMPLE},
{NO_SAMPLE, SFX_SFX_POLICE_RADIO_RED, NO_SAMPLE},
{NO_SAMPLE, SFX_SFX_POLICE_RADIO_RED, NO_SAMPLE},
{NO_SAMPLE, SFX_SFX_POLICE_RADIO_RED, NO_SAMPLE},
{SFX_POLICE_RADIO_LIGHT, NO_SAMPLE, NO_SAMPLE},
{SFX_POLICE_RADIO_DARK, NO_SAMPLE, NO_SAMPLE},
{SFX_POLICE_RADIO_DARK, NO_SAMPLE, NO_SAMPLE},
{SFX_POLICE_RADIO_DARK, NO_SAMPLE, NO_SAMPLE},
{NO_SAMPLE, SFX_SFX_POLICE_RADIO_ORANGE, NO_SAMPLE},
{NO_SAMPLE, SFX_SFX_POLICE_RADIO_ORANGE, NO_SAMPLE},
{NO_SAMPLE, SFX_SFX_POLICE_RADIO_ORANGE, NO_SAMPLE},
{NO_SAMPLE, SFX_SFX_POLICE_RADIO_ORANGE, NO_SAMPLE},
{NO_SAMPLE, SFX_SFX_POLICE_RADIO_ORANGE, NO_SAMPLE},
{NO_SAMPLE, SFX_SFX_POLICE_RADIO_ORANGE, NO_SAMPLE},
{SFX_POLICE_RADIO_LIGHT, NO_SAMPLE, NO_SAMPLE},
{SFX_POLICE_RADIO_DARK, NO_SAMPLE, NO_SAMPLE},
{SFX_POLICE_RADIO_DARK, NO_SAMPLE, NO_SAMPLE},
{SFX_POLICE_RADIO_DARK, NO_SAMPLE, NO_SAMPLE},
{NO_SAMPLE, SFX_SFX_POLICE_RADIO_YELLOW, NO_SAMPLE},
{NO_SAMPLE, SFX_SFX_POLICE_RADIO_YELLOW, NO_SAMPLE},
{NO_SAMPLE, SFX_SFX_POLICE_RADIO_YELLOW, NO_SAMPLE},
{NO_SAMPLE, SFX_SFX_POLICE_RADIO_YELLOW, NO_SAMPLE},
{NO_SAMPLE, SFX_SFX_POLICE_RADIO_YELLOW, NO_SAMPLE},
{NO_SAMPLE, SFX_SFX_POLICE_RADIO_YELLOW, NO_SAMPLE},
{SFX_POLICE_RADIO_LIGHT, NO_SAMPLE, NO_SAMPLE},
{SFX_POLICE_RADIO_DARK, NO_SAMPLE, NO_SAMPLE},
{SFX_POLICE_RADIO_DARK, NO_SAMPLE, NO_SAMPLE},
{SFX_POLICE_RADIO_DARK, NO_SAMPLE, NO_SAMPLE},
{NO_SAMPLE, SFX_SFX_POLICE_RADIO_GREEN, NO_SAMPLE},
{NO_SAMPLE, SFX_SFX_POLICE_RADIO_GREEN, NO_SAMPLE},
{NO_SAMPLE, SFX_SFX_POLICE_RADIO_GREEN, NO_SAMPLE},
{NO_SAMPLE, SFX_SFX_POLICE_RADIO_GREEN, NO_SAMPLE},
{NO_SAMPLE, SFX_SFX_POLICE_RADIO_GREEN, NO_SAMPLE},
{NO_SAMPLE, SFX_SFX_POLICE_RADIO_GREEN, NO_SAMPLE},
{SFX_POLICE_RADIO_LIGHT, NO_SAMPLE, NO_SAMPLE},
{SFX_POLICE_RADIO_DARK, NO_SAMPLE, NO_SAMPLE},
{SFX_POLICE_RADIO_DARK, NO_SAMPLE, NO_SAMPLE},
{SFX_POLICE_RADIO_DARK, NO_SAMPLE, NO_SAMPLE},
{NO_SAMPLE, SFX_SFX_POLICE_RADIO_BLUE, NO_SAMPLE},
{NO_SAMPLE, SFX_SFX_POLICE_RADIO_BLUE, NO_SAMPLE},
{NO_SAMPLE, SFX_SFX_POLICE_RADIO_BLUE, NO_SAMPLE},
{NO_SAMPLE, SFX_SFX_POLICE_RADIO_BLUE, NO_SAMPLE},
{NO_SAMPLE, SFX_SFX_POLICE_RADIO_BLUE, NO_SAMPLE},
{NO_SAMPLE, SFX_SFX_POLICE_RADIO_BLUE, NO_SAMPLE},
{SFX_POLICE_RADIO_LIGHT, NO_SAMPLE, NO_SAMPLE},
{SFX_POLICE_RADIO_DARK, NO_SAMPLE, NO_SAMPLE},
{SFX_POLICE_RADIO_DARK, NO_SAMPLE, NO_SAMPLE},
{SFX_POLICE_RADIO_DARK, NO_SAMPLE, NO_SAMPLE},
{NO_SAMPLE, SFX_SFX_POLICE_RADIO_PURPLE, NO_SAMPLE},
{NO_SAMPLE, SFX_SFX_POLICE_RADIO_PURPLE, NO_SAMPLE},
{NO_SAMPLE, SFX_SFX_POLICE_RADIO_PURPLE, NO_SAMPLE},
{NO_SAMPLE, SFX_SFX_POLICE_RADIO_PURPLE, NO_SAMPLE},
{NO_SAMPLE, SFX_SFX_POLICE_RADIO_PURPLE, NO_SAMPLE},
{NO_SAMPLE, SFX_SFX_POLICE_RADIO_PURPLE, NO_SAMPLE},
{SFX_POLICE_RADIO_LIGHT, NO_SAMPLE, NO_SAMPLE},
{SFX_POLICE_RADIO_DARK, NO_SAMPLE, NO_SAMPLE},
{SFX_POLICE_RADIO_DARK, NO_SAMPLE, NO_SAMPLE},
{SFX_POLICE_RADIO_DARK, NO_SAMPLE, NO_SAMPLE},
{NO_SAMPLE, SFX_SFX_POLICE_RADIO_SILVER, NO_SAMPLE},
{NO_SAMPLE, SFX_SFX_POLICE_RADIO_SILVER, NO_SAMPLE},
{NO_SAMPLE, SFX_SFX_POLICE_RADIO_SILVER, NO_SAMPLE},
{NO_SAMPLE, SFX_SFX_POLICE_RADIO_SILVER, NO_SAMPLE},
{NO_SAMPLE, SFX_SFX_POLICE_RADIO_SILVER, NO_SAMPLE},
{NO_SAMPLE, SFX_SFX_POLICE_RADIO_SILVER, NO_SAMPLE},
{SFX_POLICE_RADIO_LIGHT, NO_SAMPLE, NO_SAMPLE},
{SFX_POLICE_RADIO_LIGHT, NO_SAMPLE, NO_SAMPLE},
{SFX_POLICE_RADIO_LIGHT, NO_SAMPLE, NO_SAMPLE},
{SFX_POLICE_RADIO_LIGHT, NO_SAMPLE, NO_SAMPLE},
{SFX_POLICE_RADIO_LIGHT, NO_SAMPLE, NO_SAMPLE},
{SFX_POLICE_RADIO_LIGHT, NO_SAMPLE, NO_SAMPLE},
{SFX_POLICE_RADIO_LIGHT, NO_SAMPLE, NO_SAMPLE},
{SFX_POLICE_RADIO_LIGHT, NO_SAMPLE, NO_SAMPLE},
{SFX_POLICE_RADIO_LIGHT, NO_SAMPLE, NO_SAMPLE},
{SFX_POLICE_RADIO_LIGHT, NO_SAMPLE, NO_SAMPLE},
{SFX_POLICE_RADIO_LIGHT, NO_SAMPLE, NO_SAMPLE},
{SFX_POLICE_RADIO_DARK, NO_SAMPLE, NO_SAMPLE},
{SFX_POLICE_RADIO_DARK, NO_SAMPLE, NO_SAMPLE},
{SFX_POLICE_RADIO_DARK, NO_SAMPLE, NO_SAMPLE},
{SFX_POLICE_RADIO_DARK, NO_SAMPLE, NO_SAMPLE},
{SFX_POLICE_RADIO_DARK, NO_SAMPLE, NO_SAMPLE}
};
void
cAudioManager::SetupSuspectLastSeenReport()
{
CVehicle *veh;
uint8 color1;
int32 main_color;
int32 sample;
uint32 main_color;
uint32 sample;
int32 color_pre_modifier;
int32 color_post_modifier;
const int32 gCarColourTable[][3] = {
{TOTAL_AUDIO_SAMPLES, SFX_POLICE_RADIO_BLACK, TOTAL_AUDIO_SAMPLES},
{TOTAL_AUDIO_SAMPLES, SFX_POLICE_RADIO_WHITE, TOTAL_AUDIO_SAMPLES},
{TOTAL_AUDIO_SAMPLES, SFX_POLICE_RADIO_BLUE, TOTAL_AUDIO_SAMPLES},
{TOTAL_AUDIO_SAMPLES, SFX_POLICE_RADIO_RED, TOTAL_AUDIO_SAMPLES},
{SFX_POLICE_RADIO_DARK, SFX_POLICE_RADIO_BLUE, TOTAL_AUDIO_SAMPLES},
{TOTAL_AUDIO_SAMPLES, SFX_POLICE_RADIO_PURPLE, TOTAL_AUDIO_SAMPLES},
{TOTAL_AUDIO_SAMPLES, SFX_POLICE_RADIO_YELLOW, TOTAL_AUDIO_SAMPLES},
{SFX_POLICE_RADIO_BRIGHT, SFX_POLICE_RADIO_BLUE, TOTAL_AUDIO_SAMPLES},
{SFX_POLICE_RADIO_LIGHT, SFX_POLICE_RADIO_BLUE, SFX_POLICE_RADIO_GREY},
#ifdef FIX_BUGS
{SFX_POLICE_RADIO_LIGHT, SFX_POLICE_RADIO_RED, TOTAL_AUDIO_SAMPLES},
{SFX_POLICE_RADIO_DARK, SFX_POLICE_RADIO_RED, TOTAL_AUDIO_SAMPLES},
{SFX_POLICE_RADIO_DARK, SFX_POLICE_RADIO_RED, TOTAL_AUDIO_SAMPLES},
#else
{SFX_POLICE_RADIO_LIGHT, TOTAL_AUDIO_SAMPLES, TOTAL_AUDIO_SAMPLES},
{SFX_POLICE_RADIO_DARK, TOTAL_AUDIO_SAMPLES, TOTAL_AUDIO_SAMPLES},
{SFX_POLICE_RADIO_DARK, TOTAL_AUDIO_SAMPLES, TOTAL_AUDIO_SAMPLES},
#endif
{SFX_POLICE_RADIO_DARK, SFX_POLICE_RADIO_RED, TOTAL_AUDIO_SAMPLES},
{TOTAL_AUDIO_SAMPLES, SFX_POLICE_RADIO_RED, TOTAL_AUDIO_SAMPLES},
{TOTAL_AUDIO_SAMPLES, SFX_POLICE_RADIO_RED, TOTAL_AUDIO_SAMPLES},
{TOTAL_AUDIO_SAMPLES, SFX_POLICE_RADIO_RED, TOTAL_AUDIO_SAMPLES},
{TOTAL_AUDIO_SAMPLES, SFX_POLICE_RADIO_RED, TOTAL_AUDIO_SAMPLES},
{TOTAL_AUDIO_SAMPLES, SFX_POLICE_RADIO_RED, TOTAL_AUDIO_SAMPLES},
{TOTAL_AUDIO_SAMPLES, SFX_POLICE_RADIO_RED, TOTAL_AUDIO_SAMPLES},
#ifdef FIX_BUGS
{SFX_POLICE_RADIO_LIGHT, SFX_POLICE_RADIO_RED, TOTAL_AUDIO_SAMPLES},
{SFX_POLICE_RADIO_DARK, SFX_POLICE_RADIO_ORANGE, TOTAL_AUDIO_SAMPLES},
{SFX_POLICE_RADIO_DARK, SFX_POLICE_RADIO_ORANGE, TOTAL_AUDIO_SAMPLES},
{SFX_POLICE_RADIO_DARK, SFX_POLICE_RADIO_ORANGE, TOTAL_AUDIO_SAMPLES},
#else
{SFX_POLICE_RADIO_LIGHT, TOTAL_AUDIO_SAMPLES, TOTAL_AUDIO_SAMPLES},
{SFX_POLICE_RADIO_DARK, TOTAL_AUDIO_SAMPLES, TOTAL_AUDIO_SAMPLES},
{SFX_POLICE_RADIO_DARK, TOTAL_AUDIO_SAMPLES, TOTAL_AUDIO_SAMPLES},
{SFX_POLICE_RADIO_DARK, TOTAL_AUDIO_SAMPLES, TOTAL_AUDIO_SAMPLES},
#endif
{TOTAL_AUDIO_SAMPLES, SFX_POLICE_RADIO_ORANGE, TOTAL_AUDIO_SAMPLES},
{TOTAL_AUDIO_SAMPLES, SFX_POLICE_RADIO_ORANGE, TOTAL_AUDIO_SAMPLES},
{TOTAL_AUDIO_SAMPLES, SFX_POLICE_RADIO_ORANGE, TOTAL_AUDIO_SAMPLES},
{TOTAL_AUDIO_SAMPLES, SFX_POLICE_RADIO_ORANGE, TOTAL_AUDIO_SAMPLES},
{TOTAL_AUDIO_SAMPLES, SFX_POLICE_RADIO_ORANGE, TOTAL_AUDIO_SAMPLES},
{TOTAL_AUDIO_SAMPLES, SFX_POLICE_RADIO_ORANGE, TOTAL_AUDIO_SAMPLES},
#ifdef FIX_BUGS
{SFX_POLICE_RADIO_LIGHT, SFX_POLICE_RADIO_ORANGE, TOTAL_AUDIO_SAMPLES},
{SFX_POLICE_RADIO_DARK, SFX_POLICE_RADIO_YELLOW, TOTAL_AUDIO_SAMPLES},
{SFX_POLICE_RADIO_DARK, SFX_POLICE_RADIO_YELLOW, TOTAL_AUDIO_SAMPLES},
{SFX_POLICE_RADIO_DARK, SFX_POLICE_RADIO_YELLOW, TOTAL_AUDIO_SAMPLES},
#else
{SFX_POLICE_RADIO_LIGHT, TOTAL_AUDIO_SAMPLES, TOTAL_AUDIO_SAMPLES},
{SFX_POLICE_RADIO_DARK, TOTAL_AUDIO_SAMPLES, TOTAL_AUDIO_SAMPLES},
{SFX_POLICE_RADIO_DARK, TOTAL_AUDIO_SAMPLES, TOTAL_AUDIO_SAMPLES},
{SFX_POLICE_RADIO_DARK, TOTAL_AUDIO_SAMPLES, TOTAL_AUDIO_SAMPLES},
#endif
{TOTAL_AUDIO_SAMPLES, SFX_POLICE_RADIO_YELLOW, TOTAL_AUDIO_SAMPLES},
{TOTAL_AUDIO_SAMPLES, SFX_POLICE_RADIO_YELLOW, TOTAL_AUDIO_SAMPLES},
{TOTAL_AUDIO_SAMPLES, SFX_POLICE_RADIO_YELLOW, TOTAL_AUDIO_SAMPLES},
{TOTAL_AUDIO_SAMPLES, SFX_POLICE_RADIO_YELLOW, TOTAL_AUDIO_SAMPLES},
{TOTAL_AUDIO_SAMPLES, SFX_POLICE_RADIO_YELLOW, TOTAL_AUDIO_SAMPLES},
{TOTAL_AUDIO_SAMPLES, SFX_POLICE_RADIO_YELLOW, TOTAL_AUDIO_SAMPLES},
#ifdef FIX_BUGS
{SFX_POLICE_RADIO_LIGHT, SFX_POLICE_RADIO_YELLOW, TOTAL_AUDIO_SAMPLES},
{SFX_POLICE_RADIO_DARK, SFX_POLICE_RADIO_GREEN, TOTAL_AUDIO_SAMPLES},
{SFX_POLICE_RADIO_DARK, SFX_POLICE_RADIO_GREEN, TOTAL_AUDIO_SAMPLES},
{SFX_POLICE_RADIO_DARK, SFX_POLICE_RADIO_GREEN, TOTAL_AUDIO_SAMPLES},
#else
{SFX_POLICE_RADIO_LIGHT, TOTAL_AUDIO_SAMPLES, TOTAL_AUDIO_SAMPLES},
{SFX_POLICE_RADIO_DARK, TOTAL_AUDIO_SAMPLES, TOTAL_AUDIO_SAMPLES},
{SFX_POLICE_RADIO_DARK, TOTAL_AUDIO_SAMPLES, TOTAL_AUDIO_SAMPLES},
{SFX_POLICE_RADIO_DARK, TOTAL_AUDIO_SAMPLES, TOTAL_AUDIO_SAMPLES},
#endif
{TOTAL_AUDIO_SAMPLES, SFX_POLICE_RADIO_GREEN, TOTAL_AUDIO_SAMPLES},
{TOTAL_AUDIO_SAMPLES, SFX_POLICE_RADIO_GREEN, TOTAL_AUDIO_SAMPLES},
{TOTAL_AUDIO_SAMPLES, SFX_POLICE_RADIO_GREEN, TOTAL_AUDIO_SAMPLES},
{TOTAL_AUDIO_SAMPLES, SFX_POLICE_RADIO_GREEN, TOTAL_AUDIO_SAMPLES},
{TOTAL_AUDIO_SAMPLES, SFX_POLICE_RADIO_GREEN, TOTAL_AUDIO_SAMPLES},
{TOTAL_AUDIO_SAMPLES, SFX_POLICE_RADIO_GREEN, TOTAL_AUDIO_SAMPLES},
#ifdef FIX_BUGS
{SFX_POLICE_RADIO_LIGHT, SFX_POLICE_RADIO_GREEN, TOTAL_AUDIO_SAMPLES},
{SFX_POLICE_RADIO_DARK, SFX_POLICE_RADIO_BLUE, TOTAL_AUDIO_SAMPLES},
{SFX_POLICE_RADIO_DARK, SFX_POLICE_RADIO_BLUE, TOTAL_AUDIO_SAMPLES},
{SFX_POLICE_RADIO_DARK, SFX_POLICE_RADIO_BLUE, TOTAL_AUDIO_SAMPLES},
#else
{SFX_POLICE_RADIO_LIGHT, TOTAL_AUDIO_SAMPLES, TOTAL_AUDIO_SAMPLES},
{SFX_POLICE_RADIO_DARK, TOTAL_AUDIO_SAMPLES, TOTAL_AUDIO_SAMPLES},
{SFX_POLICE_RADIO_DARK, TOTAL_AUDIO_SAMPLES, TOTAL_AUDIO_SAMPLES},
{SFX_POLICE_RADIO_DARK, TOTAL_AUDIO_SAMPLES, TOTAL_AUDIO_SAMPLES},
#endif
{TOTAL_AUDIO_SAMPLES, SFX_POLICE_RADIO_BLUE, TOTAL_AUDIO_SAMPLES},
{TOTAL_AUDIO_SAMPLES, SFX_POLICE_RADIO_BLUE, TOTAL_AUDIO_SAMPLES},
{TOTAL_AUDIO_SAMPLES, SFX_POLICE_RADIO_BLUE, TOTAL_AUDIO_SAMPLES},
{TOTAL_AUDIO_SAMPLES, SFX_POLICE_RADIO_BLUE, TOTAL_AUDIO_SAMPLES},
{TOTAL_AUDIO_SAMPLES, SFX_POLICE_RADIO_BLUE, TOTAL_AUDIO_SAMPLES},
{TOTAL_AUDIO_SAMPLES, SFX_POLICE_RADIO_BLUE, TOTAL_AUDIO_SAMPLES},
#ifdef FIX_BUGS
{SFX_POLICE_RADIO_LIGHT, SFX_POLICE_RADIO_BLUE, TOTAL_AUDIO_SAMPLES},
{SFX_POLICE_RADIO_DARK, SFX_POLICE_RADIO_PURPLE, TOTAL_AUDIO_SAMPLES},
{SFX_POLICE_RADIO_DARK, SFX_POLICE_RADIO_PURPLE, SFX_POLICE_RADIO_BLUE},
{SFX_POLICE_RADIO_DARK, SFX_POLICE_RADIO_PURPLE, TOTAL_AUDIO_SAMPLES},
#else
{SFX_POLICE_RADIO_LIGHT, TOTAL_AUDIO_SAMPLES, TOTAL_AUDIO_SAMPLES},
{SFX_POLICE_RADIO_DARK, TOTAL_AUDIO_SAMPLES, TOTAL_AUDIO_SAMPLES},
{SFX_POLICE_RADIO_DARK, TOTAL_AUDIO_SAMPLES, TOTAL_AUDIO_SAMPLES},
{SFX_POLICE_RADIO_DARK, TOTAL_AUDIO_SAMPLES, TOTAL_AUDIO_SAMPLES},
#endif
{TOTAL_AUDIO_SAMPLES, SFX_POLICE_RADIO_PURPLE, TOTAL_AUDIO_SAMPLES},
{TOTAL_AUDIO_SAMPLES, SFX_POLICE_RADIO_PURPLE, TOTAL_AUDIO_SAMPLES},
#ifdef FIX_BUGS
{TOTAL_AUDIO_SAMPLES, SFX_POLICE_RADIO_PURPLE, SFX_POLICE_RADIO_GREY},
#else
{TOTAL_AUDIO_SAMPLES, SFX_POLICE_RADIO_PURPLE, TOTAL_AUDIO_SAMPLES},
#endif
{TOTAL_AUDIO_SAMPLES, SFX_POLICE_RADIO_PURPLE, TOTAL_AUDIO_SAMPLES},
{TOTAL_AUDIO_SAMPLES, SFX_POLICE_RADIO_PURPLE, TOTAL_AUDIO_SAMPLES},
{TOTAL_AUDIO_SAMPLES, SFX_POLICE_RADIO_PURPLE, TOTAL_AUDIO_SAMPLES},
#ifdef FIX_BUGS
{SFX_POLICE_RADIO_LIGHT, SFX_POLICE_RADIO_PURPLE, TOTAL_AUDIO_SAMPLES},
{SFX_POLICE_RADIO_DARK, SFX_POLICE_RADIO_SILVER, TOTAL_AUDIO_SAMPLES},
{SFX_POLICE_RADIO_DARK, SFX_POLICE_RADIO_SILVER, TOTAL_AUDIO_SAMPLES},
{SFX_POLICE_RADIO_DARK, SFX_POLICE_RADIO_SILVER, TOTAL_AUDIO_SAMPLES},
#else
{SFX_POLICE_RADIO_LIGHT, TOTAL_AUDIO_SAMPLES, TOTAL_AUDIO_SAMPLES},
{SFX_POLICE_RADIO_DARK, TOTAL_AUDIO_SAMPLES, TOTAL_AUDIO_SAMPLES},
{SFX_POLICE_RADIO_DARK, TOTAL_AUDIO_SAMPLES, TOTAL_AUDIO_SAMPLES},
{SFX_POLICE_RADIO_DARK, TOTAL_AUDIO_SAMPLES, TOTAL_AUDIO_SAMPLES},
#endif
{TOTAL_AUDIO_SAMPLES, SFX_POLICE_RADIO_SILVER, TOTAL_AUDIO_SAMPLES},
{TOTAL_AUDIO_SAMPLES, SFX_POLICE_RADIO_SILVER, TOTAL_AUDIO_SAMPLES},
{TOTAL_AUDIO_SAMPLES, SFX_POLICE_RADIO_SILVER, TOTAL_AUDIO_SAMPLES},
{TOTAL_AUDIO_SAMPLES, SFX_POLICE_RADIO_SILVER, TOTAL_AUDIO_SAMPLES},
{TOTAL_AUDIO_SAMPLES, SFX_POLICE_RADIO_SILVER, TOTAL_AUDIO_SAMPLES},
#ifdef FIX_BUGS
{SFX_POLICE_RADIO_LIGHT, SFX_POLICE_RADIO_SILVER, TOTAL_AUDIO_SAMPLES},
#else
{TOTAL_AUDIO_SAMPLES, SFX_POLICE_RADIO_SILVER, TOTAL_AUDIO_SAMPLES},
#endif
{SFX_POLICE_RADIO_LIGHT, TOTAL_AUDIO_SAMPLES, TOTAL_AUDIO_SAMPLES},
{SFX_POLICE_RADIO_LIGHT, TOTAL_AUDIO_SAMPLES, TOTAL_AUDIO_SAMPLES},
{SFX_POLICE_RADIO_LIGHT, TOTAL_AUDIO_SAMPLES, TOTAL_AUDIO_SAMPLES},
{SFX_POLICE_RADIO_LIGHT, TOTAL_AUDIO_SAMPLES, TOTAL_AUDIO_SAMPLES},
{SFX_POLICE_RADIO_LIGHT, TOTAL_AUDIO_SAMPLES, TOTAL_AUDIO_SAMPLES},
{SFX_POLICE_RADIO_LIGHT, TOTAL_AUDIO_SAMPLES, TOTAL_AUDIO_SAMPLES},
{SFX_POLICE_RADIO_LIGHT, TOTAL_AUDIO_SAMPLES, TOTAL_AUDIO_SAMPLES},
{SFX_POLICE_RADIO_LIGHT, TOTAL_AUDIO_SAMPLES, TOTAL_AUDIO_SAMPLES},
{SFX_POLICE_RADIO_LIGHT, TOTAL_AUDIO_SAMPLES, TOTAL_AUDIO_SAMPLES},
{SFX_POLICE_RADIO_LIGHT, TOTAL_AUDIO_SAMPLES, TOTAL_AUDIO_SAMPLES},
{SFX_POLICE_RADIO_LIGHT, TOTAL_AUDIO_SAMPLES, TOTAL_AUDIO_SAMPLES},
{SFX_POLICE_RADIO_DARK, TOTAL_AUDIO_SAMPLES, TOTAL_AUDIO_SAMPLES},
{SFX_POLICE_RADIO_DARK, TOTAL_AUDIO_SAMPLES, TOTAL_AUDIO_SAMPLES},
{SFX_POLICE_RADIO_DARK, TOTAL_AUDIO_SAMPLES, TOTAL_AUDIO_SAMPLES},
{SFX_POLICE_RADIO_DARK, TOTAL_AUDIO_SAMPLES, TOTAL_AUDIO_SAMPLES},
{SFX_POLICE_RADIO_DARK, TOTAL_AUDIO_SAMPLES, TOTAL_AUDIO_SAMPLES}
};
uint32 color_pre_modifier;
uint32 color_post_modifier;
if (MusicManager.m_nMusicMode != MUSICMODE_CUTSCENE) {
veh = FindPlayerVehicle();
veh = FindVehicleOfPlayer();
if (veh != nil) {
if (POLICE_RADIO_QUEUE_MAX_SAMPLES - m_sPoliceRadioQueue.m_nSamplesInQueue > 9) {
color1 = veh->m_currentColour1;
@ -541,136 +468,188 @@ cAudioManager::SetupSuspectLastSeenReport()
color_pre_modifier = gCarColourTable[color1][0];
color_post_modifier = gCarColourTable[color1][2];
switch (veh->GetModelIndex()) {
#ifdef FIX_BUGS
case MI_COLUMB:
main_color = SFX_POLICE_RADIO_BLUE;
color_pre_modifier = color_post_modifier = TOTAL_AUDIO_SAMPLES;
#endif
case MI_LANDSTAL:
case MI_BLISTA: sample = SFX_POLICE_RADIO_CRUISER; break;
#ifdef FIX_BUGS
case MI_YARDIE:
color_pre_modifier = TOTAL_AUDIO_SAMPLES;
main_color = SFX_POLICE_RADIO_RED;
color_post_modifier = SFX_POLICE_RADIO_YELLOW;
sample = SFX_POLICE_RADIO_CONVERTIBLE; break;
case MI_DIABLOS:
main_color = SFX_POLICE_RADIO_BLACK;
#endif
case MI_PATRIOT:
case MI_RANCHER:
case MI_FBIRANCH:
case MI_SANDKING:
sample = SFX_SFX_POLICE_RADIO_OFFROAD;
break;
case MI_IDAHO:
case MI_STALLION: sample = SFX_POLICE_RADIO_CONVERTIBLE; break;
#ifdef FIX_BUGS
case MI_YAKUZA:
color_pre_modifier = TOTAL_AUDIO_SAMPLES;
main_color = SFX_POLICE_RADIO_SILVER;
color_post_modifier = SFX_POLICE_RADIO_RED;
#endif
case MI_MANANA:
case MI_ESPERANT:
case MI_CUBAN:
case MI_STALLION:
case MI_SABRE:
case MI_SABRETUR:
case MI_VIRGO:
case MI_BLISTAC:
sample = SFX_SFX_POLICE_RADIO_TUDOOR;
break;
case MI_STINGER:
case MI_INFERNUS:
case MI_CHEETAH:
case MI_BANSHEE: sample = SFX_POLICE_RADIO_SPORTS_CAR; break;
#ifdef FIX_BUGS
case MI_MAFIA:
color_pre_modifier = color_post_modifier = TOTAL_AUDIO_SAMPLES;
main_color = SFX_POLICE_RADIO_GREY;
case MI_KURUMA:
#endif
case MI_PEREN:
case MI_SENTINEL:
case MI_FBICAR: sample = SFX_POLICE_RADIO_SALOON; break;
case MI_PATRIOT:
case MI_BOBCAT: sample = SFX_POLICE_RADIO_PICKUP; break;
case MI_FIRETRUCK: sample = SFX_POLICE_RADIO_FIRE_TRUCK; break;
#ifdef FIX_BUGS
case MI_BANSHEE:
case MI_PHEONIX:
case MI_COMET:
case MI_DELUXO:
case MI_HOTRING:
sample = SFX_SFX_POLICE_RADIO_SPORTS_CAR;
break;
case MI_LINERUN:
case MI_FLATBED:
#endif
sample = SFX_SFX_POLICE_RADIO_RIG;
break;
case MI_PEREN:
case MI_REGINA:
sample = SFX_SFX_POLICE_RADIO_STATION_WAGON;
break;
case MI_SENTINEL:
case MI_FBICAR:
case MI_WASHING:
case MI_SENTXS:
case MI_ADMIRAL:
case MI_GLENDALE:
case MI_OCEANIC:
case MI_HERMES:
case MI_GREENWOO:
sample = SFX_SFX_POLICE_RADIO_SEDAN;
break;
case MI_RIO:
sample = SFX_SFX_POLICE_RADIO_CRUISER;
break;
case MI_FIRETRUCK:
sample = SFX_SFX_POLICE_RADIO_FIRE_TRUCK;
break;
case MI_TRASH:
case MI_BARRACKS: sample = SFX_POLICE_RADIO_TRUCK; break;
case MI_STRETCH: sample = SFX_POLICE_RADIO_LIMO; break;
#ifdef FIX_BUGS
case MI_CORPSE:
#endif
case MI_MANANA:
case MI_ESPERANT: sample = SFX_POLICE_RADIO_2_DOOR; break;
#ifdef FIX_BUGS
case MI_HOODS:
color_pre_modifier = TOTAL_AUDIO_SAMPLES;
main_color = SFX_POLICE_RADIO_BLUE;
color_post_modifier = SFX_POLICE_RADIO_GREEN;
case MI_BELLYUP:
case MI_YANKEE:
case MI_TOYZ:
case MI_MRWONGS:
case MI_PANLANT:
#endif
sample = SFX_SFX_POLICE_RADIO_GARBAGE_TRUCK;
break;
case MI_STRETCH:
case MI_LOVEFIST:
sample = SFX_SFX_POLICE_RADIO_STRETCH;
break;
case MI_VOODOO:
sample = SFX_SFX_POLICE_RADIO_LOWRIDER;
break;
case MI_PONY:
case MI_MULE:
case MI_MOONBEAM:
case MI_ENFORCER:
case MI_SECURICA:
case MI_RUMPO: sample = SFX_POLICE_RADIO_VAN; break;
case MI_AMBULAN: sample = SFX_POLICE_RADIO_AMBULANCE; break;
case MI_RUMPO:
case MI_GANGBUR:
case MI_YANKEE:
case MI_TOPFUN:
case MI_BURRITO:
case MI_SPAND:
sample = SFX_SFX_POLICE_RADIO_VAN;
break;
case MI_MULE:
case MI_BARRACKS:
case MI_PACKER:
case MI_FLATBED:
sample = SFX_SFX_POLICE_RADIO_TRUCK;
break;
case MI_AMBULAN:
sample = SFX_SFX_POLICE_RADIO_AMBULANCE;
break;
case MI_TAXI:
case MI_CABBIE:
case MI_BORGNINE: sample = SFX_POLICE_RADIO_TAXI; break;
case MI_BORGNINE:
sample = SFX_SFX_POLICE_RADIO_TAXI;
break;
case MI_BOBCAT:
case MI_WALTON:
sample = SFX_SFX_POLICE_RADIO_PICKUP;
break;
case MI_MRWHOOP:
sample = SFX_POLICE_RADIO_ICE_CREAM_VAN;
sample = SFX_SFX_POLICE_RADIO_ICE_CREAM_VAN;
break;
case MI_BFINJECT: sample = SFX_POLICE_RADIO_BUGGY; break;
case MI_POLICE: sample = SFX_POLICE_RADIO_POLICE_CAR; break;
#ifdef FIX_BUGS
case MI_BFINJECT:
sample = SFX_SFX_POLICE_RADIO_BUGGY;
break;
case MI_HUNTER:
case MI_CHOPPER:
case MI_SEASPAR:
case MI_SPARROW:
case MI_MAVERICK:
case MI_VCNMAV:
case MI_POLMAV:
sample = SFX_SFX_POLICE_RADIO_HELICOPTER;
break;
case MI_POLICE:
sample = SFX_SFX_POLICE_RADIO_POLICE_CAR;
break;
case MI_ENFORCER:
sample = SFX_SFX_POLICE_RADIO_SWAT_VAN;
break;
case MI_PREDATOR:
case MI_SQUALO:
case MI_SPEEDER:
case MI_REEFER:
case MI_GHOST:
#endif
case MI_PREDATOR: sample = SFX_POLICE_RADIO_BOAT; break;
case MI_BUS:
case MI_COACH: sample = SFX_POLICE_RADIO_BUS; break;
case MI_RHINO:
sample = SFX_POLICE_RADIO_TANK;
main_color = TOTAL_AUDIO_SAMPLES;
color_post_modifier = TOTAL_AUDIO_SAMPLES;
sample = SFX_SFX_POLICE_RADIO_SPEEDBOAT;
break;
case MI_TRAIN:
sample = SFX_POLICE_RADIO_SUBWAY_CAR;
main_color = TOTAL_AUDIO_SAMPLES;
color_post_modifier = TOTAL_AUDIO_SAMPLES;
case MI_BUS:
sample = SFX_SFX_POLICE_RADIO_BUS;
break;
case MI_RHINO:
sample = SFX_SFX_POLICE_RADIO_TANK;
break;
case MI_ANGEL:
case MI_PCJ600:
case MI_FREEWAY:
case MI_SANCHEZ:
sample = SFX_SFX_POLICE_RADIO_MOTOBIKE;
break;
case MI_COACH:
sample = SFX_SFX_POLICE_RADIO_COACH;
break;
case MI_HEARSE:
sample = SFX_SFX_POLICE_RADIO_HEARSE;
break;
case MI_PIZZABOY:
case MI_FAGGIO:
sample = SFX_SFX_POLICE_RADIO_MOPED;
break;
case MI_DEADDODO:
case MI_SKIMMER:
sample = SFX_SFX_POLICE_RADIO_PLANE;
break;
case MI_REEFER:
case MI_TROPIC:
case MI_COASTG:
case MI_MARQUIS:
case MI_JETMAX:
sample = SFX_SFX_POLICE_RADIO_BOAT;
break;
case MI_CADDY:
sample = SFX_SFX_POLICE_RADIO_GOLF_CART;
break;
case MI_DINGHY:
sample = SFX_SFX_POLICE_RADIO_DINGHY;
break;
default:
debug("\n *** UNKNOWN CAR MODEL INDEX %d *** ", veh->GetModelIndex());
//debug("\n *** UNKNOWN CAR MODEL INDEX %d *** ", veh->GetModelIndex());
return;
}
m_sPoliceRadioQueue.Add(m_anRandomTable[4] % 3 + SFX_POLICE_RADIO_MESSAGE_NOISE_1);
m_sPoliceRadioQueue.Add(SFX_POLICE_RADIO_MESSAGE_NOISE_1);
m_sPoliceRadioQueue.Add(SFX_POLICE_RADIO_SUSPECT);
if (m_anRandomTable[3] % 2)
m_sPoliceRadioQueue.Add(SFX_POLICE_RADIO_LAST_SEEN);
#ifdef FIX_BUGS
if (main_color == SFX_POLICE_RADIO_ORANGE && color_pre_modifier == TOTAL_AUDIO_SAMPLES)
#else
if (main_color == SFX_POLICE_RADIO_ORANGE)
#endif
m_sPoliceRadioQueue.Add(SFX_POLICE_RADIO_IN_AN);
else
m_sPoliceRadioQueue.Add(SFX_POLICE_RADIO_IN_A);
if (color_pre_modifier != TOTAL_AUDIO_SAMPLES)
m_sPoliceRadioQueue.Add(SFX_POLICE_RADIO_IN_A);
if (color_pre_modifier != NO_SAMPLE)
m_sPoliceRadioQueue.Add(color_pre_modifier);
if (main_color != TOTAL_AUDIO_SAMPLES)
if (main_color != NO_SAMPLE)
m_sPoliceRadioQueue.Add(main_color);
if (color_post_modifier != TOTAL_AUDIO_SAMPLES)
if (color_post_modifier != NO_SAMPLE)
m_sPoliceRadioQueue.Add(color_post_modifier);
m_sPoliceRadioQueue.Add(sample);
m_sPoliceRadioQueue.Add(m_anRandomTable[0] % 3 + SFX_POLICE_RADIO_MESSAGE_NOISE_1);
m_sPoliceRadioQueue.Add(TOTAL_AUDIO_SAMPLES);
m_sPoliceRadioQueue.Add(SFX_POLICE_RADIO_MESSAGE_NOISE_1);
m_sPoliceRadioQueue.Add(NO_SAMPLE);
}
}
} else if (POLICE_RADIO_QUEUE_MAX_SAMPLES - m_sPoliceRadioQueue.m_nSamplesInQueue > 4) {
m_sPoliceRadioQueue.Add(SFX_POLICE_RADIO_MESSAGE_NOISE_1);
m_sPoliceRadioQueue.Add(SFX_POLICE_RADIO_SUSPECT);
m_sPoliceRadioQueue.Add(SFX_POLICE_RADIO_ON_FOOT);
m_sPoliceRadioQueue.Add(m_anRandomTable[0] % 3 + SFX_POLICE_RADIO_MESSAGE_NOISE_1);
m_sPoliceRadioQueue.Add(TOTAL_AUDIO_SAMPLES);
m_sPoliceRadioQueue.Add(SFX_POLICE_RADIO_MESSAGE_NOISE_1);
m_sPoliceRadioQueue.Add(NO_SAMPLE);
}
}
}
@ -688,9 +667,8 @@ cAudioManager::ReportCrime(eCrimeType type, const CVector &pos)
m_aCrimes[i].timer = 0;
return;
}
} else {
} else
lastCrime = i;
}
}
if (lastCrime < ARRAY_SIZE(m_aCrimes)) {
@ -713,8 +691,8 @@ cAudioManager::PlaySuspectLastSeen(float x, float y, float z)
float halfY;
float quarterX;
float quarterY;
int32 sample;
bool8 processed = false;
uint32 sample;
bool8 processed = FALSE;
CVector vec = CVector(x, y, z);
if (!m_bIsInitialised) return;
@ -726,41 +704,34 @@ cAudioManager::PlaySuspectLastSeen(float x, float y, float z)
for (int i = 0; i < NUMAUDIOZONES; i++) {
if (strcmp(zone->name, ZoneSfx[i].m_aName) == 0) {
sample = ZoneSfx[i].m_nSampleIndex;
m_sPoliceRadioQueue.Add(m_anRandomTable[4] % 3 + SFX_POLICE_RADIO_MESSAGE_NOISE_1);
m_sPoliceRadioQueue.Add(SFX_POLICE_RADIO_MESSAGE_NOISE_1);
m_sPoliceRadioQueue.Add(SFX_POLICE_RADIO_SUSPECT);
m_sPoliceRadioQueue.Add(SFX_POLICE_RADIO_LAST_SEEN);
m_sPoliceRadioQueue.Add(SFX_IN);
if (sample == SFX_POLICE_RADIO_SHORESIDE_VALE &&
(strcmp(zone->name, SubZo2Label) == 0 ||
strcmp(zone->name, SubZo3Label) == 0)) {
rangeX = zone->maxx - zone->minx;
rangeY = zone->maxy - zone->miny;
halfX = 0.5f * rangeX + zone->minx;
halfY = 0.5f * rangeY + zone->miny;
quarterX = 0.25f * rangeX;
quarterY = 0.25f * rangeY;
if (vec.y > halfY + quarterY) {
m_sPoliceRadioQueue.Add(SFX_NORTH);
m_sPoliceRadioQueue.Add(SFX_EAST);
} else {
rangeX = zone->maxx - zone->minx;
rangeY = zone->maxy - zone->miny;
halfX = 0.5f * rangeX + zone->minx;
halfY = 0.5f * rangeY + zone->miny;
quarterX = 0.25f * rangeX;
quarterY = 0.25f * rangeY;
if (vec.y > halfY + quarterY) {
m_sPoliceRadioQueue.Add(SFX_NORTH);
processed = TRUE;
} else if (vec.y < halfY - quarterY) {
m_sPoliceRadioQueue.Add(SFX_SOUTH);
processed = TRUE;
}
if (vec.x > halfX + quarterX)
m_sPoliceRadioQueue.Add(SFX_EAST);
else if (vec.x < halfX - quarterX)
m_sPoliceRadioQueue.Add(SFX_WEST);
else if (!processed)
m_sPoliceRadioQueue.Add(SFX_CENTRAL);
processed = TRUE;
} else if (vec.y < halfY - quarterY) {
m_sPoliceRadioQueue.Add(SFX_SOUTH);
processed = TRUE;
}
if (vec.x > halfX + quarterX)
m_sPoliceRadioQueue.Add(SFX_EAST);
else if (vec.x < halfX - quarterX)
m_sPoliceRadioQueue.Add(SFX_WEST);
else if (!processed)
m_sPoliceRadioQueue.Add(SFX_CENTRAL);
m_sPoliceRadioQueue.Add(sample);
m_sPoliceRadioQueue.Add(m_anRandomTable[2] % 3 + SFX_POLICE_RADIO_MESSAGE_NOISE_1);
m_sPoliceRadioQueue.Add(TOTAL_AUDIO_SAMPLES);
m_sPoliceRadioQueue.Add(SFX_POLICE_RADIO_MESSAGE_NOISE_1);
m_sPoliceRadioQueue.Add(NO_SAMPLE);
gSpecialSuspectLastSeenReport = TRUE;
break;
}
@ -774,7 +745,7 @@ cAudioManager::AgeCrimes()
{
for (uint8 i = 0; i < ARRAY_SIZE(m_aCrimes); i++) {
if (m_aCrimes[i].type != CRIME_NONE) {
if (++m_aCrimes[i].timer > 1500) m_aCrimes[i].type = CRIME_NONE;
if (++m_aCrimes[i].timer > 1200) m_aCrimes[i].type = CRIME_NONE;
}
}
}

View File

@ -50,7 +50,7 @@ public:
}
return FALSE;
}
uint32 Remove()
{
if (m_nSamplesInQueue != 0) {
@ -59,8 +59,9 @@ public:
m_nRemoveOffset = (m_nRemoveOffset + 1) % POLICE_RADIO_QUEUE_MAX_SAMPLES;
return sample;
}
return TOTAL_AUDIO_SAMPLES;
return NO_SAMPLE;
}
};
VALIDATE_SIZE(cPoliceRadioQueue, 244);

View File

@ -2,19 +2,20 @@
enum eRadioStation
{
HEAD_RADIO,
DOUBLE_CLEF,
JAH_RADIO,
RISE_FM,
LIPS_106,
GAME_FM,
MSX_FM,
FLASHBACK,
CHATTERBOX,
WILDSTYLE,
FLASH_FM,
KCHAT,
FEVER,
V_ROCK,
VCPR,
RADIO_ESPANTOSO,
EMOTION,
WAVE,
USERTRACK,
POLICE_RADIO = 10,
NUM_RADIOS = 10,
RADIO_OFF = 11,
NUM_RADIOS = 11,
POLICE_RADIO = 11,
RADIO_OFF = 10,
//TAXI_RADIO,
};
enum eMusicMode
@ -26,204 +27,83 @@ enum eMusicMode
MUSICMODE_DISABLED,
};
enum ePlayerMood
{
PLAYER_MOOD_CALM = 0,
PLAYER_MOOD_PISSED_OFF,
PLAYER_MOOD_ANGRY,
PLAYER_MOOD_WISECRACKING,
MAX_PLAYER_MOODS,
};
enum eStreamedSounds
{
STREAMED_SOUND_RADIO_HEAD,
STREAMED_SOUND_RADIO_CLASSIC,
STREAMED_SOUND_RADIO_DOUBLE,
STREAMED_SOUND_RADIO_KJAH,
STREAMED_SOUND_RADIO_RISE,
STREAMED_SOUND_RADIO_LIPS,
STREAMED_SOUND_RADIO_GAME,
STREAMED_SOUND_RADIO_MUNDO,
STREAMED_SOUND_RADIO_MSX,
STREAMED_SOUND_RADIO_FLASH,
STREAMED_SOUND_RADIO_CHAT,
STREAMED_SOUND_RADIO_LCJ,
STREAMED_SOUND_RADIO_LCFR,
STREAMED_SOUND_RADIO_MP3_PLAYER,
STREAMED_SOUND_RADIO_POLICE,
STREAMED_SOUND_CITY_AMBIENT,
STREAMED_SOUND_WATER_AMBIENT,
STREAMED_SOUND_ANNOUNCE_COMMERCIAL_OPEN,
STREAMED_SOUND_ANNOUNCE_SUBURBAN_OPEN,
STREAMED_SOUND_NEWS_INTRO,
STREAMED_SOUND_BANK_INTRO,
STREAMED_SOUND_CUTSCENE_LUIGI1_LG,
STREAMED_SOUND_CUTSCENE_LUIGI2_DSB,
STREAMED_SOUND_CUTSCENE_LUIGI3_DM,
STREAMED_SOUND_CUTSCENE_LUIGI4_PAP,
STREAMED_SOUND_CUTSCENE_LUIGI5_TFB,
STREAMED_SOUND_CUTSCENE_JOEY0_DM2,
STREAMED_SOUND_CUTSCENE_JOEY1_LFL,
STREAMED_SOUND_CUTSCENE_JOEY2_KCL,
STREAMED_SOUND_CUTSCENE_JOEY3_VH,
STREAMED_SOUND_CUTSCENE_JOEY4_ETH,
STREAMED_SOUND_CUTSCENE_JOEY5_DST,
STREAMED_SOUND_CUTSCENE_JOEY6_TBJ,
STREAMED_SOUND_CUTSCENE_TONI1_TOL,
STREAMED_SOUND_CUTSCENE_TONI2_TPU,
STREAMED_SOUND_CUTSCENE_TONI3_MAS,
STREAMED_SOUND_CUTSCENE_TONI4_TAT,
STREAMED_SOUND_CUTSCENE_TONI5_BF,
STREAMED_SOUND_CUTSCENE_SAL0_MAS,
STREAMED_SOUND_CUTSCENE_SAL1_PF,
STREAMED_SOUND_CUTSCENE_SAL2_CTG,
STREAMED_SOUND_CUTSCENE_SAL3_RTC,
STREAMED_SOUND_CUTSCENE_SAL5_LRQ,
STREAMED_SOUND_CUTSCENE_SAL4_BDBA,
STREAMED_SOUND_CUTSCENE_SAL4_BDBB,
STREAMED_SOUND_CUTSCENE_SAL2_CTG2,
STREAMED_SOUND_CUTSCENE_SAL4_BDBD,
STREAMED_SOUND_CUTSCENE_SAL5_LRQB,
STREAMED_SOUND_CUTSCENE_SAL5_LRQC,
STREAMED_SOUND_CUTSCENE_ASUKA_1_SSO,
STREAMED_SOUND_CUTSCENE_ASUKA_2_PP,
STREAMED_SOUND_CUTSCENE_ASUKA_3_SS,
STREAMED_SOUND_CUTSCENE_ASUKA_4_PDR,
STREAMED_SOUND_CUTSCENE_ASUKA_5_K2FT,
STREAMED_SOUND_CUTSCENE_KENJI1_KBO,
STREAMED_SOUND_CUTSCENE_KENJI2_GIS,
STREAMED_SOUND_CUTSCENE_KENJI3_DS,
STREAMED_SOUND_CUTSCENE_KENJI4_SHI,
STREAMED_SOUND_CUTSCENE_KENJI5_SD,
STREAMED_SOUND_CUTSCENE_RAY0_PDR2,
STREAMED_SOUND_CUTSCENE_RAY1_SW,
STREAMED_SOUND_CUTSCENE_RAY2_AP,
STREAMED_SOUND_CUTSCENE_RAY3_ED,
STREAMED_SOUND_CUTSCENE_RAY4_GF,
STREAMED_SOUND_CUTSCENE_RAY5_PB,
STREAMED_SOUND_CUTSCENE_RAY6_MM,
STREAMED_SOUND_CUTSCENE_DONALD1_STOG,
STREAMED_SOUND_CUTSCENE_DONALD2_KK,
STREAMED_SOUND_CUTSCENE_DONALD3_ADO,
STREAMED_SOUND_CUTSCENE_DONALD5_ES,
STREAMED_SOUND_CUTSCENE_DONALD7_MLD,
STREAMED_SOUND_CUTSCENE_DONALD4_GTA,
STREAMED_SOUND_CUTSCENE_DONALD4_GTA2,
STREAMED_SOUND_CUTSCENE_DONALD6_STS,
STREAMED_SOUND_CUTSCENE_ASUKA6_BAIT,
STREAMED_SOUND_CUTSCENE_ASUKA7_ETG,
STREAMED_SOUND_CUTSCENE_ASUKA8_PS,
STREAMED_SOUND_CUTSCENE_ASUKA9_ASD,
STREAMED_SOUND_CUTSCENE_KENJI4_SHI2,
STREAMED_SOUND_CUTSCENE_CATALINA1_TEX,
STREAMED_SOUND_CUTSCENE_ELBURRO1_PH1,
STREAMED_SOUND_CUTSCENE_ELBURRO2_PH2,
STREAMED_SOUND_CUTSCENE_ELBURRO3_PH3,
STREAMED_SOUND_CUTSCENE_ELBURRO4_PH4,
STREAMED_SOUND_CUTSCENE_YARDIE_PH1,
STREAMED_SOUND_CUTSCENE_YARDIE_PH2,
STREAMED_SOUND_CUTSCENE_YARDIE_PH3,
STREAMED_SOUND_CUTSCENE_YARDIE_PH4,
STREAMED_SOUND_CUTSCENE_HOODS_PH1,
STREAMED_SOUND_CUTSCENE_HOODS_PH2,
STREAMED_SOUND_CUTSCENE_HOODS_PH3,
STREAMED_SOUND_CUTSCENE_HOODS_PH4,
STREAMED_SOUND_CUTSCENE_HOODS_PH5,
STREAMED_SOUND_CUTSCENE_MARTY_PH1,
STREAMED_SOUND_CUTSCENE_MARTY_PH2,
STREAMED_SOUND_CUTSCENE_MARTY_PH3,
STREAMED_SOUND_CUTSCENE_MARTY_PH4,
STREAMED_SOUND_SAWMILL,
STREAMED_SOUND_HAVANA_CITY_AMBIENT, // CITY
STREAMED_SOUND_HAVANA_WATER_AMBIENT, // WATER
STREAMED_SOUND_HAVANA_BEACH_AMBIENT, // WATER
STREAMED_SOUND_MALL_AMBIENT, // CITY
STREAMED_SOUND_STRIPCLUB_AMBIENT, // CITY
STREAMED_SOUND_MALIBU_AMBIENT, // CITY
STREAMED_SOUND_HOTEL_AMBIENT, // CITY
STREAMED_SOUND_DIRTRING_AMBIENT, // CITY
STREAMED_SOUND_LAW4RIOT_AMBIENT, // CITY
STREAMED_SOUND_AMBSIL_AMBIENT, // CITY
STREAMED_SOUND_RADIO_POLICE,
STREAMED_SOUND_RADIO_TAXI,
STREAMED_SOUND_NEWS_A,
STREAMED_SOUND_NEWS_B,
STREAMED_SOUND_NEWS_C,
STREAMED_SOUND_NEWS_D,
STREAMED_SOUND_NEWS_E,
STREAMED_SOUND_NEWS_F,
STREAMED_SOUND_NEWS_G,
STREAMED_SOUND_NEWS_H,
STREAMED_SOUND_NEWS_I,
STREAMED_SOUND_NEWS_J,
STREAMED_SOUND_NEWS_K,
STREAMED_SOUND_NEWS_L,
STREAMED_SOUND_NEWS_M,
STREAMED_SOUND_NEWS_N,
STREAMED_SOUND_CUTSCENE_BIKER,
STREAMED_SOUND_CUTSCENE_BONEVOY,
STREAMED_SOUND_CUTSCENE_CAMPAIN,
STREAMED_SOUND_CUTSCENE_CASHCHP,
STREAMED_SOUND_CUTSCENE_CONTBAN,
STREAMED_SOUND_CUTSCENE_CRAZY69,
STREAMED_SOUND_CUTSCENE_CUTTEST,
STREAMED_SOUND_CUTSCENE_DEADLY,
STREAMED_SOUND_CUTSCENE_DONPROB,
STREAMED_SOUND_CUTSCENE_DRIVNMR,
STREAMED_SOUND_CUTSCENE_ELECTON,
STREAMED_SOUND_CUTSCENE_FINAL,
STREAMED_SOUND_CUTSCENE_FINAL_2,
STREAMED_SOUND_CUTSCENE_HOMSWET,
STREAMED_SOUND_CUTSCENE_HOTWHEL,
STREAMED_SOUND_CUTSCENE_KIDNAPP,
STREAMED_SOUND_CUTSCENE_LANDGRB,
STREAMED_SOUND_CUTSCENE_MORGUE,
STREAMED_SOUND_CUTSCENE_OVERDOS,
STREAMED_SOUND_CUTSCENE_RUFJUST,
STREAMED_SOUND_CUTSCENE_SAYONAR,
STREAMED_SOUND_CUTSCENE_SICILAN,
STREAMED_SOUND_CUTSCENE_THEOFER,
STREAMED_SOUND_CUTSCENE_INTRO,
STREAMED_SOUND_CUTSCENE_FINALE,
STREAMED_SOUND_MISSION_COMPLETED,
STREAMED_SOUND_GAME_COMPLETED,
STREAMED_SOUND_MISSION_LIB_A1,
STREAMED_SOUND_MISSION_LIB_A2,
STREAMED_SOUND_MISSION_LIB_A,
STREAMED_SOUND_MISSION_LIB_B,
STREAMED_SOUND_MISSION_LIB_C,
STREAMED_SOUND_MISSION_LIB_D,
STREAMED_SOUND_MISSION_L2_A,
STREAMED_SOUND_MISSION_J4T_1,
STREAMED_SOUND_MISSION_J4T_2,
STREAMED_SOUND_MISSION_J4T_3,
STREAMED_SOUND_MISSION_J4T_4,
STREAMED_SOUND_MISSION_J4_A,
STREAMED_SOUND_MISSION_J4_B,
STREAMED_SOUND_MISSION_J4_C,
STREAMED_SOUND_MISSION_J4_D,
STREAMED_SOUND_MISSION_J4_E,
STREAMED_SOUND_MISSION_J4_F,
STREAMED_SOUND_MISSION_J6_1,
STREAMED_SOUND_MISSION_J6_A,
STREAMED_SOUND_MISSION_J6_B,
STREAMED_SOUND_MISSION_J6_C,
STREAMED_SOUND_MISSION_J6_D,
STREAMED_SOUND_MISSION_T4_A,
STREAMED_SOUND_MISSION_S1_A,
STREAMED_SOUND_MISSION_S1_A1,
STREAMED_SOUND_MISSION_S1_B,
STREAMED_SOUND_MISSION_S1_C,
STREAMED_SOUND_MISSION_S1_C1,
STREAMED_SOUND_MISSION_S1_D,
STREAMED_SOUND_MISSION_S1_E,
STREAMED_SOUND_MISSION_S1_F,
STREAMED_SOUND_MISSION_S1_G,
STREAMED_SOUND_MISSION_S1_H,
STREAMED_SOUND_MISSION_S1_I,
STREAMED_SOUND_MISSION_S1_J,
STREAMED_SOUND_MISSION_S1_K,
STREAMED_SOUND_MISSION_S1_L,
STREAMED_SOUND_MISSION_S3_A,
STREAMED_SOUND_MISSION_S3_B,
STREAMED_SOUND_MISSION_EL3_A,
STREAMED_SOUND_MISSION_MF1_A,
STREAMED_SOUND_MISSION_MF2_A,
STREAMED_SOUND_MISSION_MF3_A,
STREAMED_SOUND_MISSION_MF3_B,
STREAMED_SOUND_MISSION_MF3_B1,
STREAMED_SOUND_MISSION_MF3_C,
STREAMED_SOUND_MISSION_MF4_A,
STREAMED_SOUND_MISSION_MF4_B,
STREAMED_SOUND_MISSION_MF4_C,
STREAMED_SOUND_MISSION_A1_A,
STREAMED_SOUND_MISSION_A3_A,
STREAMED_SOUND_MISSION_A5_A,
STREAMED_SOUND_MISSION_A4_A,
STREAMED_SOUND_MISSION_A4_B,
STREAMED_SOUND_MISSION_A4_C,
STREAMED_SOUND_MISSION_A4_D,
STREAMED_SOUND_MISSION_K1_A,
STREAMED_SOUND_MISSION_K3_A,
STREAMED_SOUND_MISSION_R1_A,
STREAMED_SOUND_MISSION_R2_A,
STREAMED_SOUND_MISSION_R2_B,
STREAMED_SOUND_MISSION_R2_C,
STREAMED_SOUND_MISSION_R2_D,
STREAMED_SOUND_MISSION_R2_E,
STREAMED_SOUND_MISSION_R2_F,
STREAMED_SOUND_MISSION_R2_G,
STREAMED_SOUND_MISSION_R2_H,
STREAMED_SOUND_MISSION_R5_A,
STREAMED_SOUND_MISSION_R6_A,
STREAMED_SOUND_MISSION_R6_A1,
STREAMED_SOUND_MISSION_R6_B,
STREAMED_SOUND_MISSION_LO2_A,
STREAMED_SOUND_MISSION_LO6_A,
STREAMED_SOUND_MISSION_YD2_A,
STREAMED_SOUND_MISSION_YD2_B,
STREAMED_SOUND_MISSION_YD2_C,
STREAMED_SOUND_MISSION_YD2_C1,
STREAMED_SOUND_MISSION_YD2_D,
STREAMED_SOUND_MISSION_YD2_E,
STREAMED_SOUND_MISSION_YD2_F,
STREAMED_SOUND_MISSION_YD2_G,
STREAMED_SOUND_MISSION_YD2_H,
STREAMED_SOUND_MISSION_YD2_ASS,
STREAMED_SOUND_MISSION_YD2_OK,
STREAMED_SOUND_MISSION_H5_A,
STREAMED_SOUND_MISSION_H5_B,
STREAMED_SOUND_MISSION_H5_C,
STREAMED_SOUND_MISSION_AMMU_A,
STREAMED_SOUND_MISSION_AMMU_B,
STREAMED_SOUND_MISSION_AMMU_C,
STREAMED_SOUND_MISSION_DOOR_1,
STREAMED_SOUND_MISSION_DOOR_2,
STREAMED_SOUND_MISSION_DOOR_3,
STREAMED_SOUND_MISSION_DOOR_4,
STREAMED_SOUND_MISSION_DOOR_5,
STREAMED_SOUND_MISSION_DOOR_6,
STREAMED_SOUND_MISSION_T3_A,
STREAMED_SOUND_MISSION_T3_B,
STREAMED_SOUND_MISSION_T3_C,
STREAMED_SOUND_MISSION_K1_B,
STREAMED_SOUND_MISSION_CAT1,
TOTAL_STREAMED_SOUNDS,
NO_TRACK,
};
@ -242,15 +122,18 @@ enum eAudioType
AUDIOTYPE_EXPLOSION,
AUDIOTYPE_FIRE,
AUDIOTYPE_WEATHER,
AUDIOTYPE_CRANE,
AUDIOTYPE_SCRIPTOBJECT,
#ifdef GTA_BRIDGE
AUDIOTYPE_BRIDGE,
#endif
AUDIOTYPE_COLLISION,
AUDIOTYPE_FRONTEND,
AUDIOTYPE_PROJECTILE,
AUDIOTYPE_GARAGE,
AUDIOTYPE_FIREHYDRANT,
AUDIOTYPE_WATERCANNON,
AUDIOTYPE_ESCALATOR,
AUDIOTYPE_EXTRA_SOUNDS,
AUDIOTYPE_POLICERADIO,
TOTAL_AUDIO_TYPES,
};
@ -258,21 +141,40 @@ enum eAudioType
#ifdef GTA_PS2
enum
{
NUM_CHANNELS_GENERIC = 43,
NUM_CHANNELS_GENERIC = 40,
CHANNEL_POLICE_RADIO = NUM_CHANNELS_GENERIC,
CHANNEL_MISSION_AUDIO,
CHANNEL_MISSION_AUDIO_1,
CHANNEL_MISSION_AUDIO_2,
CHANNEL_PLAYER_VEHICLE_ENGINE,
NUM_CHANNELS
NUM_CHANNELS,
NUM_CHANNELS_DTS_GENERIC = 18,
CHANNEL_DTS_POLICE_RADIO = NUM_CHANNELS_DTS_GENERIC,
CHANNEL_DTS_MISSION_AUDIO_1,
CHANNEL_DTS_MISSION_AUDIO_2,
CHANNEL_DTS_PLAYER_VEHICLE_ENGINE,
};
#else
enum
{
#ifdef PS2_AUDIO_CHANNELS
NUM_CHANNELS_GENERIC = 43,
NUM_CHANNELS_GENERIC = 40,
#else
NUM_CHANNELS_GENERIC = 27,
NUM_CHANNELS_GENERIC = 20,
#endif
CHANNEL_POLICE_RADIO,
CHANNEL_MISSION_AUDIO_1,
CHANNEL_MISSION_AUDIO_2,
NUM_CHANNELS
};
#endif
enum
{
MISSION_AUDIO_SLOT_1,
MISSION_AUDIO_SLOT_2,
MISSION_AUDIO_POLRADIO_CRIME_OR_COLOR,
MISSION_AUDIO_POLRADIO_AREA_OR_CAR,
MISSION_AUDIO_PLAYER_COMMENT,
MISSION_AUDIO_COUNT
};

View File

@ -511,6 +511,13 @@ protected:
uint32 m_nChannels;
const char* m_pPath;
bool m_bFileNotOpenedYet;
CMP3File() :
m_pMH(nil),
m_bOpened(false),
m_nRate(0),
m_bFileNotOpenedYet(false),
m_nChannels(0) {}
public:
CMP3File(const char *path) :
m_pMH(nil),
@ -618,6 +625,69 @@ public:
}
};
class CADFFile : public CMP3File
{
static ssize_t r_read(void* fh, void* buf, size_t size)
{
size_t bytesRead = fread(buf, 1, size, (FILE*)fh);
uint8* _buf = (uint8*)buf;
for (size_t i = 0; i < size; i++)
_buf[i] ^= 0x22;
return bytesRead;
}
static off_t r_seek(void* fh, off_t pos, int seekType)
{
fseek((FILE*)fh, pos, seekType);
return ftell((FILE*)fh);
}
static void r_close(void* fh)
{
fclose((FILE*)fh);
}
public:
CADFFile(const char* path)
{
m_pMH = mpg123_new(nil, nil);
if (m_pMH)
{
mpg123_param(m_pMH, MPG123_FLAGS, MPG123_SEEKBUFFER | MPG123_GAPLESS, 0.0);
m_bOpened = true;
m_bFileNotOpenedYet = true;
m_pPath = path;
// It's possible to move this to audioFileOpsThread(), but effect isn't noticable + probably not compatible with our current cutscene audio handling
#if 1
FileOpen();
#endif
}
}
void FileOpen()
{
if(!m_bFileNotOpenedYet) return;
long rate = 0;
int channels = 0;
int encoding = 0;
FILE *f = fopen(m_pPath, "rb");
m_bOpened = f && mpg123_replace_reader_handle(m_pMH, r_read, r_seek, r_close) == MPG123_OK
&& mpg123_open_handle(m_pMH, f) == MPG123_OK && mpg123_getformat(m_pMH, &rate, &channels, &encoding) == MPG123_OK;
m_nRate = rate;
m_nChannels = channels;
if(IsOpened()) {
mpg123_format_none(m_pMH);
mpg123_format(m_pMH, rate, channels, encoding);
}
m_bFileNotOpenedYet = false;
}
};
#endif
#define VAG_LINE_SIZE (0x10)
#define VAG_SAMPLES_IN_LINE (28)
@ -1208,6 +1278,8 @@ bool CStream::Open(const char* filename, uint32 overrideSampleRate)
#ifdef AUDIO_OAL_USE_MPG123
else if (!strcasecmp(&m_aFilename[strlen(m_aFilename) - strlen(".mp3")], ".mp3"))
m_pSoundFile = new CMP3File(m_aFilename);
else if (!strcasecmp(&m_aFilename[strlen(m_aFilename) - strlen(".adf")], ".adf"))
m_pSoundFile = new CADFFile(m_aFilename);
#endif
else if (!strcasecmp(&m_aFilename[strlen(m_aFilename) - strlen(".vb")], ".VB"))
m_pSoundFile = new CVbFile(m_aFilename, overrideSampleRate);
@ -1500,7 +1572,7 @@ int32 CStream::FillBuffers()
void CStream::ClearBuffers()
{
if ( !HasSource() ) return;
ALint buffersQueued[2];
alGetSourcei(m_pAlSources[0], AL_BUFFERS_QUEUED, &buffersQueued[0]);
alGetSourcei(m_pAlSources[1], AL_BUFFERS_QUEUED, &buffersQueued[1]);

View File

@ -6,10 +6,10 @@
#define MAX_FREQ DIGITALRATE
struct tSample {
int32 nOffset;
uint32 nOffset;
uint32 nSize;
int32 nFrequency;
int32 nLoopStart;
uint32 nFrequency;
uint32 nLoopStart;
int32 nLoopEnd;
};
@ -23,94 +23,111 @@ struct tSample {
enum
{
SFX_BANK_0,
#ifdef GTA_PS2
SFX_BANK_GENERIC_EXTRA,
SFX_BANK_PED_COMMENTS,
SFX_BANK_FRONT_END_MENU,
#else
SFX_BANK_GENERIC_EXTRA = SFX_BANK_0,
SFX_BANK_FRONT_END_MENU = SFX_BANK_0,
SFX_BANK_PED_COMMENTS,
MAX_SFX_BANKS,
INVALID_SFX_BANK,
#endif
CAR_SFX_BANKS_OFFSET,
SFX_BANK_PACARD = CAR_SFX_BANKS_OFFSET,
SFX_BANK_PATHFINDER,
SFX_BANK_PONTIAC = CAR_SFX_BANKS_OFFSET,
SFX_BANK_PORSCHE,
SFX_BANK_SPIDER,
SFX_BANK_MERC,
SFX_BANK_TRUCK,
SFX_BANK_HOTROD,
SFX_BANK_COBRA,
SFX_BANK_NONE,
SFX_BANK_PONTIAC_SLOW,
SFX_BANK_CADILLAC,
SFX_BANK_PATHFINDER,
SFX_BANK_PACARD,
SFX_BANK_GOLF_CART,
SFX_BANK_CAR_CHAINSAW,
SFX_BANK_RC,
SFX_BANK_RC_HELI,
SFX_BANK_CAR_UNUSED_4,
PS2BANK(SFX_BANK_FRONT_END_MENU),
// bikes
SFX_BANK_VTWIN,
SFX_BANK_MOPED,
SFX_BANK_HONDA250,
SFX_BANK_SPORTS_BIKE,
SFX_BANK_BIKE_UNUSED_1,
SFX_BANK_BIKE_UNUSED_2,
SFX_BANK_BIKE_UNUSED_3,
SFX_BANK_BIKE_UNUSED_4,
SFX_BANK_BIKE_UNUSED_5,
SFX_BANK_BIKE_UNUSED_6,
PS2BANK(SFX_BANK_TRAIN),
// heli
SFX_BANK_HELI_APACHE,
SFX_BANK_HELI_UNUSED_1,
SFX_BANK_HELI_UNUSED_2,
SFX_BANK_HELI_UNUSED_3,
SFX_BANK_HELI_UNUSED_4,
PS2BANK(SFX_BANK_BUILDING_CLUB_1),
PS2BANK(SFX_BANK_BUILDING_CLUB_2),
PS2BANK(SFX_BANK_BUILDING_CLUB_3),
PS2BANK(SFX_BANK_BUILDING_CLUB_4),
PS2BANK(SFX_BANK_BUILDING_CLUB_5),
PS2BANK(SFX_BANK_BUILDING_CLUB_6),
PS2BANK(SFX_BANK_BUILDING_CLUB_7),
PS2BANK(SFX_BANK_BUILDING_CLUB_8),
PS2BANK(SFX_BANK_BUILDING_CLUB_9),
PS2BANK(SFX_BANK_BUILDING_CLUB_10),
PS2BANK(SFX_BANK_BUILDING_CLUB_11),
PS2BANK(SFX_BANK_BUILDING_CLUB_12),
PS2BANK(SFX_BANK_BUILDING_CLUB_RAGGA),
PS2BANK(SFX_BANK_BUILDING_STRIP_CLUB_1),
PS2BANK(SFX_BANK_BUILDING_STRIP_CLUB_2),
PS2BANK(SFX_BANK_BUILDING_WORKSHOP),
PS2BANK(SFX_BANK_BUILDING_PIANO_BAR),
PS2BANK(SFX_BANK_BUILDING_SAWMILL),
PS2BANK(SFX_BANK_BUILDING_DOG_FOOD_FACTORY),
PS2BANK(SFX_BANK_BUILDING_LAUNDERETTE),
PS2BANK(SFX_BANK_BUILDING_RESTAURANT_CHINATOWN),
PS2BANK(SFX_BANK_BUILDING_RESTAURANT_ITALY),
PS2BANK(SFX_BANK_BUILDING_RESTAURANT_GENERIC_1),
PS2BANK(SFX_BANK_BUILDING_RESTAURANT_GENERIC_2),
PS2BANK(SFX_BANK_BUILDING_AIRPORT),
PS2BANK(SFX_BANK_BUILDING_SHOP),
PS2BANK(SFX_BANK_BUILDING_CINEMA),
PS2BANK(SFX_BANK_BUILDING_DOCKS),
PS2BANK(SFX_BANK_BUILDING_HOME),
PS2BANK(SFX_BANK_BUILDING_PORN_1),
PS2BANK(SFX_BANK_BUILDING_PORN_2),
PS2BANK(SFX_BANK_BUILDING_PORN_3),
PS2BANK(SFX_BANK_BUILDING_POLICE_BALL),
// plane
SFX_BANK_PLANE_SEAPLANE,
SFX_BANK_PLANE_UNUSED_1,
SFX_BANK_PLANE_UNUSED_2,
SFX_BANK_PLANE_UNUSED_3,
SFX_BANK_PLANE_UNUSED_4,
PS2BANK(SFX_BANK_BUILDING_BANK_ALARM),
PS2BANK(SFX_BANK_BUILDING_RAVE_INDUSTRIAL),
PS2BANK(SFX_BANK_BUILDING_RAVE_COMMERCIAL),
PS2BANK(SFX_BANK_BUILDING_RAVE_SUBURBAN),
PS2BANK(SFX_BANK_BUILDING_RAVE_COMMERCIAL_2),
PS2BANK(SFX_BANK_BUILDING_39),
PS2BANK(SFX_BANK_BUILDING_40),
PS2BANK(SFX_BANK_BUILDING_41),
PS2BANK(SFX_BANK_BUILDING_42),
PS2BANK(SFX_BANK_BUILDING_43),
PS2BANK(SFX_BANK_BUILDING_44),
PS2BANK(SFX_BANK_BUILDING_45),
PS2BANK(SFX_BANK_BUILDING_46),
PS2BANK(SFX_BANK_BUILDING_47),
PS2BANK(SFX_BANK_GENERIC_EXTRA),
SFX_BANK_PED_COMMENTS,
PS2BANK(SFX_BANK_BUILDING_SNORING),
PS2BANK(SFX_BANK_BUILDING_BAR_1),
PS2BANK(SFX_BANK_BUILDING_BAR_2),
PS2BANK(SFX_BANK_BUILDING_BAR_3),
PS2BANK(SFX_BANK_BUILDING_BAR_4),
PS2BANK(SFX_BANK_BUILDING_MALIBU_1),
PS2BANK(SFX_BANK_BUILDING_MALIBU_2),
PS2BANK(SFX_BANK_BUILDING_MALIBU_3),
PS2BANK(SFX_BANK_BUILDING_STRIP_1),
PS2BANK(SFX_BANK_BUILDING_STRIP_2),
PS2BANK(SFX_BANK_BUILDING_STRIP_3),
PS2BANK(SFX_BANK_BUILDING_CHURCH),
PS2BANK(SFX_BANK_BUILDING_FAN_1),
PS2BANK(SFX_BANK_BUILDING_FAN_2),
PS2BANK(SFX_BANK_BUILDING_INSECT_1),
PS2BANK(SFX_BANK_BUILDING_INSECT_2),
PS2BANK(SFX_BANK_BUILDING_18),
PS2BANK(SFX_BANK_BUILDING_19),
PS2BANK(SFX_BANK_BUILDING_20),
PS2BANK(SFX_BANK_BUILDING_21),
PS2BANK(SFX_BANK_FOOTSTEPS_GRASS),
PS2BANK(SFX_BANK_FOOTSTEPS_GRAVEL),
PS2BANK(SFX_BANK_FOOTSTEPS_WOOD),
PS2BANK(SFX_BANK_FOOTSTEPS_METAL),
PS2BANK(SFX_BANK_FOOTSTEPS_WATER),
PS2BANK(SFX_BANK_FOOTSTEPS_SAND),
#ifdef GTA_PS2
MAX_SFX_BANKS,
INVALID_SFX_BANK
#endif
};
#define MAX_PEDSFX 7
#define PED_BLOCKSIZE 79000
#define MISSION_AUDIO_BLOCKSIZE 160000
#define MAXPROVIDERS 64
#ifdef EXTERNAL_3D_SOUND
#define MAXCHANNELS (NUM_CHANNELS_GENERIC+1)
#define MAXCHANNELS_SURROUND (MAXCHANNELS-4)
#define MAX2DCHANNELS 1
#define MAX2DCHANNELS 3
#else
#define MAXCHANNELS 0
#define MAXCHANNELS_SURROUND 0
#define MAX2DCHANNELS NUM_CHANNELS
#endif
#define MAX_STREAMS 2
#define MAX_STREAMS 1
#define DIGITALRATE 32000
#define DIGITALBITS 16
@ -120,23 +137,29 @@ enum
#define MAX_DIGITAL_MIXER_CHANNELS (MAXCHANNELS+MAX_STREAMS*2+MAX2DCHANNELS)
#else
#define MAX_DIGITAL_MIXER_CHANNELS (MAXCHANNELS+MAX_STREAMS*2)
#endif
#endif
static_assert( NUM_CHANNELS == MAXCHANNELS + MAX2DCHANNELS, "The number of channels doesn't match with an enum" );
extern int gBankStartOffset[67];
class cSampleManager
{
uint8 m_nEffectsVolume;
uint8 m_nMusicVolume;
uint8 m_nMP3BoostVolume;
uint8 m_nEffectsFadeVolume;
uint8 m_nMusicFadeVolume;
bool8 m_nMonoMode;
char unk;
char m_szCDRomRootPath[80];
bool8 m_bInitialised;
uint8 m_nNumberOfProviders;
char *m_aAudioProviders[MAXPROVIDERS];
tSample m_aSamples[TOTAL_AUDIO_SAMPLES];
char m_MiscomPath[260];
char m_WavFilesPath[260];
char m_MP3FilesPath[188];
void *m_aChannels[18];
public:
@ -157,8 +180,10 @@ public:
int8 GetCurrent3DProviderIndex(void);
int8 SetCurrent3DProvider(uint8 which);
int8 AutoDetect3DProviders();
#endif
bool8 IsMP3RadioChannelAvailable(void);
void ReleaseDigitalHandle (void);
@ -174,26 +199,30 @@ public:
void SetEffectsMasterVolume(uint8 nVolume);
void SetMusicMasterVolume (uint8 nVolume);
void SetMP3BoostVolume (uint8 nVolume);
void SetEffectsFadeVolume (uint8 nVolume);
void SetMusicFadeVolume (uint8 nVolume);
void SetMonoMode (bool8 nMode);
bool8 LoadSampleBank (uint8 nBank);
void UnloadSampleBank (uint8 nBank);
bool8 IsSampleBankLoaded(uint8 nBank);
int8 IsSampleBankLoaded(uint8 nBank);
uint8 IsMissionAudioLoaded(uint8 nSlot, uint32 nSample);
bool8 LoadMissionAudio (uint8 nSlot, uint32 nSample);
bool8 IsPedCommentLoaded(uint32 nComment);
uint8 IsPedCommentLoaded(uint32 nComment);
bool8 LoadPedComment (uint32 nComment);
int32 GetBankContainingSound(uint32 offset);
int32 _GetPedCommentSlot(uint32 nComment);
int32 GetSampleBaseFrequency (uint32 nSample);
int32 GetSampleLoopStartOffset(uint32 nSample);
uint32 GetSampleBaseFrequency (uint32 nSample);
uint32 GetSampleLoopStartOffset(uint32 nSample);
int32 GetSampleLoopEndOffset (uint32 nSample);
uint32 GetSampleLength (uint32 nSample);
bool8 UpdateReverb(void);
bool8 UpdateReverb(void);
void SetChannelReverbFlag (uint32 nChannel, bool8 nReverbFlag);
bool8 InitialiseChannel (uint32 nChannel, uint32 nSfx, uint8 nBank);
@ -211,463 +240,93 @@ public:
void StartChannel (uint32 nChannel);
void StopChannel (uint32 nChannel);
void PreloadStreamedFile (uint8 nFile, uint8 nStream = 0);
void PreloadStreamedFile (uint32 nFile, uint8 nStream = 0);
void PauseStream (bool8 nPauseFlag, uint8 nStream = 0);
void StartPreloadedStreamedFile (uint8 nStream = 0);
bool8 StartStreamedFile (uint8 nFile, uint32 nPos, uint8 nStream = 0);
bool8 StartStreamedFile (uint32 nFile, uint32 nPos, uint8 nStream = 0);
void StopStreamedFile (uint8 nStream = 0);
int32 GetStreamedFilePosition (uint8 nStream = 0);
void SetStreamedVolumeAndPan(uint8 nVolume, uint8 nPan, bool8 nEffectFlag, uint8 nStream = 0);
int32 GetStreamedFileLength (uint8 nStream = 0);
bool8 IsStreamPlaying (uint8 nStream = 0);
void SetStreamedFileLoopFlag (bool8 nLoopFlag, uint8 nStream = 0);
#ifdef AUDIO_OAL
void Service(void);
#endif
bool8 InitialiseSampleBanks(void);
uint8 GetMusicVolume() const { return m_nMusicVolume; }
uint8 GetMusicFadeVolume() const { return m_nMusicFadeVolume; }
};
extern cSampleManager SampleManager;
extern uint32 BankStartOffset[MAX_SFX_BANKS];
#ifdef AUDIO_OAL
extern int defaultProvider;
#endif
#if defined(OPUS_AUDIO_PATHS)
static char StreamedNameTable[][25] = {
"AUDIO\\HEAD.OPUS", "AUDIO\\CLASS.OPUS", "AUDIO\\KJAH.OPUS", "AUDIO\\RISE.OPUS", "AUDIO\\LIPS.OPUS", "AUDIO\\GAME.OPUS",
"AUDIO\\MSX.OPUS", "AUDIO\\FLASH.OPUS", "AUDIO\\CHAT.OPUS", "AUDIO\\HEAD.OPUS", "AUDIO\\POLICE.OPUS", "AUDIO\\CITY.OPUS",
"AUDIO\\WATER.OPUS", "AUDIO\\COMOPEN.OPUS", "AUDIO\\SUBOPEN.OPUS", "AUDIO\\JB.OPUS", "AUDIO\\BET.OPUS", "AUDIO\\L1_LG.OPUS",
"AUDIO\\L2_DSB.OPUS", "AUDIO\\L3_DM.OPUS", "AUDIO\\L4_PAP.OPUS", "AUDIO\\L5_TFB.OPUS", "AUDIO\\J0_DM2.OPUS", "AUDIO\\J1_LFL.OPUS",
"AUDIO\\J2_KCL.OPUS", "AUDIO\\J3_VH.OPUS", "AUDIO\\J4_ETH.OPUS", "AUDIO\\J5_DST.OPUS", "AUDIO\\J6_TBJ.OPUS", "AUDIO\\T1_TOL.OPUS",
"AUDIO\\T2_TPU.OPUS", "AUDIO\\T3_MAS.OPUS", "AUDIO\\T4_TAT.OPUS", "AUDIO\\T5_BF.OPUS", "AUDIO\\S0_MAS.OPUS", "AUDIO\\S1_PF.OPUS",
"AUDIO\\S2_CTG.OPUS", "AUDIO\\S3_RTC.OPUS", "AUDIO\\S5_LRQ.OPUS", "AUDIO\\S4_BDBA.OPUS", "AUDIO\\S4_BDBB.OPUS", "AUDIO\\S2_CTG2.OPUS",
"AUDIO\\S4_BDBD.OPUS", "AUDIO\\S5_LRQB.OPUS", "AUDIO\\S5_LRQC.OPUS", "AUDIO\\A1_SSO.OPUS", "AUDIO\\A2_PP.OPUS", "AUDIO\\A3_SS.OPUS",
"AUDIO\\A4_PDR.OPUS", "AUDIO\\A5_K2FT.OPUS", "AUDIO\\K1_KBO.OPUS", "AUDIO\\K2_GIS.OPUS", "AUDIO\\K3_DS.OPUS", "AUDIO\\K4_SHI.OPUS",
"AUDIO\\K5_SD.OPUS", "AUDIO\\R0_PDR2.OPUS", "AUDIO\\R1_SW.OPUS", "AUDIO\\R2_AP.OPUS", "AUDIO\\R3_ED.OPUS", "AUDIO\\R4_GF.OPUS",
"AUDIO\\R5_PB.OPUS", "AUDIO\\R6_MM.OPUS", "AUDIO\\D1_STOG.OPUS", "AUDIO\\D2_KK.OPUS", "AUDIO\\D3_ADO.OPUS", "AUDIO\\D5_ES.OPUS",
"AUDIO\\D7_MLD.OPUS", "AUDIO\\D4_GTA.OPUS", "AUDIO\\D4_GTA2.OPUS", "AUDIO\\D6_STS.OPUS", "AUDIO\\A6_BAIT.OPUS", "AUDIO\\A7_ETG.OPUS",
"AUDIO\\A8_PS.OPUS", "AUDIO\\A9_ASD.OPUS", "AUDIO\\K4_SHI2.OPUS", "AUDIO\\C1_TEX.OPUS", "AUDIO\\EL_PH1.OPUS", "AUDIO\\EL_PH2.OPUS",
"AUDIO\\EL_PH3.OPUS", "AUDIO\\EL_PH4.OPUS", "AUDIO\\YD_PH1.OPUS", "AUDIO\\YD_PH2.OPUS", "AUDIO\\YD_PH3.OPUS", "AUDIO\\YD_PH4.OPUS",
"AUDIO\\HD_PH1.OPUS", "AUDIO\\HD_PH2.OPUS", "AUDIO\\HD_PH3.OPUS", "AUDIO\\HD_PH4.OPUS", "AUDIO\\HD_PH5.OPUS", "AUDIO\\MT_PH1.OPUS",
"AUDIO\\MT_PH2.OPUS", "AUDIO\\MT_PH3.OPUS", "AUDIO\\MT_PH4.OPUS", "AUDIO\\MISCOM.OPUS", "AUDIO\\END.OPUS", "AUDIO\\lib_a1.OPUS",
"AUDIO\\lib_a2.OPUS", "AUDIO\\lib_a.OPUS", "AUDIO\\lib_b.OPUS", "AUDIO\\lib_c.OPUS", "AUDIO\\lib_d.OPUS", "AUDIO\\l2_a.OPUS",
"AUDIO\\j4t_1.OPUS", "AUDIO\\j4t_2.OPUS", "AUDIO\\j4t_3.OPUS", "AUDIO\\j4t_4.OPUS", "AUDIO\\j4_a.OPUS", "AUDIO\\j4_b.OPUS",
"AUDIO\\j4_c.OPUS", "AUDIO\\j4_d.OPUS", "AUDIO\\j4_e.OPUS", "AUDIO\\j4_f.OPUS", "AUDIO\\j6_1.OPUS", "AUDIO\\j6_a.OPUS",
"AUDIO\\j6_b.OPUS", "AUDIO\\j6_c.OPUS", "AUDIO\\j6_d.OPUS", "AUDIO\\t4_a.OPUS", "AUDIO\\s1_a.OPUS", "AUDIO\\s1_a1.OPUS",
"AUDIO\\s1_b.OPUS", "AUDIO\\s1_c.OPUS", "AUDIO\\s1_c1.OPUS", "AUDIO\\s1_d.OPUS", "AUDIO\\s1_e.OPUS", "AUDIO\\s1_f.OPUS",
"AUDIO\\s1_g.OPUS", "AUDIO\\s1_h.OPUS", "AUDIO\\s1_i.OPUS", "AUDIO\\s1_j.OPUS", "AUDIO\\s1_k.OPUS", "AUDIO\\s1_l.OPUS",
"AUDIO\\s3_a.OPUS", "AUDIO\\s3_b.OPUS", "AUDIO\\el3_a.OPUS", "AUDIO\\mf1_a.OPUS", "AUDIO\\mf2_a.OPUS", "AUDIO\\mf3_a.OPUS",
"AUDIO\\mf3_b.OPUS", "AUDIO\\mf3_b1.OPUS", "AUDIO\\mf3_c.OPUS", "AUDIO\\mf4_a.OPUS", "AUDIO\\mf4_b.OPUS", "AUDIO\\mf4_c.OPUS",
"AUDIO\\a1_a.OPUS", "AUDIO\\a3_a.OPUS", "AUDIO\\a5_a.OPUS", "AUDIO\\a4_a.OPUS", "AUDIO\\a4_b.OPUS", "AUDIO\\a4_c.OPUS",
"AUDIO\\a4_d.OPUS", "AUDIO\\k1_a.OPUS", "AUDIO\\k3_a.OPUS", "AUDIO\\r1_a.OPUS", "AUDIO\\r2_a.OPUS", "AUDIO\\r2_b.OPUS",
"AUDIO\\r2_c.OPUS", "AUDIO\\r2_d.OPUS", "AUDIO\\r2_e.OPUS", "AUDIO\\r2_f.OPUS", "AUDIO\\r2_g.OPUS", "AUDIO\\r2_h.OPUS",
"AUDIO\\r5_a.OPUS", "AUDIO\\r6_a.OPUS", "AUDIO\\r6_a1.OPUS", "AUDIO\\r6_b.OPUS", "AUDIO\\lo2_a.OPUS", "AUDIO\\lo6_a.OPUS",
"AUDIO\\yd2_a.OPUS", "AUDIO\\yd2_b.OPUS", "AUDIO\\yd2_c.OPUS", "AUDIO\\yd2_c1.OPUS", "AUDIO\\yd2_d.OPUS", "AUDIO\\yd2_e.OPUS",
"AUDIO\\yd2_f.OPUS", "AUDIO\\yd2_g.OPUS", "AUDIO\\yd2_h.OPUS", "AUDIO\\yd2_ass.OPUS", "AUDIO\\yd2_ok.OPUS", "AUDIO\\h5_a.OPUS",
"AUDIO\\h5_b.OPUS", "AUDIO\\h5_c.OPUS", "AUDIO\\ammu_a.OPUS", "AUDIO\\ammu_b.OPUS", "AUDIO\\ammu_c.OPUS", "AUDIO\\door_1.OPUS",
"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
#ifdef PS2_AUDIO_PATHS
static char PS2StreamedNameTable[][25]=
{
"AUDIO\\MUSIC\\HEAD.VB",
"AUDIO\\MUSIC\\CLASS.VB",
"AUDIO\\MUSIC\\KJAH.VB",
"AUDIO\\MUSIC\\RISE.VB",
"AUDIO\\MUSIC\\LIPS.VB",
"AUDIO\\MUSIC\\GAME.VB",
"AUDIO\\MUSIC\\MSX.VB",
"AUDIO\\MUSIC\\FLASH.VB",
"AUDIO\\MUSIC\\CHAT.VB",
"AUDIO\\MUSIC\\HEAD.VB",
"AUDIO\\MUSIC\\POLICE.VB",
"AUDIO\\MUSIC\\CITY.VB",
"AUDIO\\MUSIC\\WATER.VB",
"AUDIO\\MUSIC\\COMOPEN.VB",
"AUDIO\\MUSIC\\SUBOPEN.VB",
"AUDIO\\OTHER\\JB.VB",
"AUDIO\\OTHER\\BET.VB",
"AUDIO\\LUIGI\\L1_LG.VB",
"AUDIO\\LUIGI\\L2_DSB.VB",
"AUDIO\\LUIGI\\L3_DM.VB",
"AUDIO\\LUIGI\\L4_PAP.VB",
"AUDIO\\LUIGI\\L5_TFB.VB",
"AUDIO\\JOEY\\J0_DM2.VB",
"AUDIO\\JOEY\\J1_LFL.VB",
"AUDIO\\JOEY\\J2_KCL.VB",
"AUDIO\\JOEY\\J3_VH.VB",
"AUDIO\\JOEY\\J4_ETH.VB",
"AUDIO\\JOEY\\J5_DST.VB",
"AUDIO\\JOEY\\J6_TBJ.VB",
"AUDIO\\TONI\\T1_TOL.VB",
"AUDIO\\TONI\\T2_TPU.VB",
"AUDIO\\TONI\\T3_MAS.VB",
"AUDIO\\TONI\\T4_TAT.VB",
"AUDIO\\TONI\\T5_BF.VB",
"AUDIO\\SAL\\S0_MAS.VB",
"AUDIO\\SAL\\S1_PF.VB",
"AUDIO\\SAL\\S2_CTG.VB",
"AUDIO\\SAL\\S3_RTC.VB",
"AUDIO\\SAL\\S5_LRQ.VB",
"AUDIO\\EBALL\\S4_BDBA.VB",
"AUDIO\\EBALL\\S4_BDBB.VB",
"AUDIO\\SAL\\S2_CTG2.VB",
"AUDIO\\SAL\\S4_BDBD.VB",
"AUDIO\\SAL\\S5_LRQB.VB",
"AUDIO\\SAL\\S5_LRQC.VB",
"AUDIO\\ASUKA\\A1_SSO.VB",
"AUDIO\\ASUKA\\A2_PP.VB",
"AUDIO\\ASUKA\\A3_SS.VB",
"AUDIO\\ASUKA\\A4_PDR.VB",
"AUDIO\\ASUKA\\A5_K2FT.VB",
"AUDIO\\KENJI\\K1_KBO.VB",
"AUDIO\\KENJI\\K2_GIS.VB",
"AUDIO\\KENJI\\K3_DS.VB",
"AUDIO\\KENJI\\K4_SHI.VB",
"AUDIO\\KENJI\\K5_SD.VB",
"AUDIO\\RAY\\R0_PDR2.VB",
"AUDIO\\RAY\\R1_SW.VB",
"AUDIO\\RAY\\R2_AP.VB",
"AUDIO\\RAY\\R3_ED.VB",
"AUDIO\\RAY\\R4_GF.VB",
"AUDIO\\RAY\\R5_PB.VB",
"AUDIO\\RAY\\R6_MM.VB",
"AUDIO\\LOVE\\D1_STOG.VB",
"AUDIO\\LOVE\\D2_KK.VB",
"AUDIO\\LOVE\\D3_ADO.VB",
"AUDIO\\LOVE\\D5_ES.VB",
"AUDIO\\LOVE\\D7_MLD.VB",
"AUDIO\\LOVE\\D4_GTA.VB",
"AUDIO\\LOVE\\D4_GTA2.VB",
"AUDIO\\LOVE\\D6_STS.VB",
"AUDIO\\ASUKA\\A6_BAIT.VB",
"AUDIO\\ASUKA\\A7_ETG.VB",
"AUDIO\\ASUKA\\A8_PS.VB",
"AUDIO\\ASUKA\\A9_ASD.VB",
"AUDIO\\SHOP\\K4_SHI2.VB",
"AUDIO\\OTHER\\C1_TEX.VB",
"AUDIO\\PHONE\\EL_PH1.VB",
"AUDIO\\PHONE\\EL_PH2.VB",
"AUDIO\\PHONE\\EL_PH3.VB",
"AUDIO\\PHONE\\EL_PH4.VB",
"AUDIO\\PHONE\\YD_PH1.VB",
"AUDIO\\PHONE\\YD_PH2.VB",
"AUDIO\\PHONE\\YD_PH3.VB",
"AUDIO\\PHONE\\YD_PH4.VB",
"AUDIO\\PHONE\\HD_PH1.VB",
"AUDIO\\PHONE\\HD_PH2.VB",
"AUDIO\\PHONE\\HD_PH3.VB",
"AUDIO\\PHONE\\HD_PH4.VB",
"AUDIO\\PHONE\\HD_PH5.VB",
"AUDIO\\PHONE\\MT_PH1.VB",
"AUDIO\\PHONE\\MT_PH2.VB",
"AUDIO\\PHONE\\MT_PH3.VB",
"AUDIO\\PHONE\\MT_PH4.VB",
"AUDIO\\MUSIC\\MISCOM.VB",
"AUDIO\\MUSIC\\END.VB",
"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",
"AUDIO\\CLASS.WAV",
"AUDIO\\KJAH.WAV",
"AUDIO\\RISE.WAV",
"AUDIO\\LIPS.WAV",
"AUDIO\\GAME.WAV",
"AUDIO\\MSX.WAV",
"AUDIO\\FLASH.WAV",
"AUDIO\\CHAT.WAV",
"AUDIO\\HEAD.WAV",
"AUDIO\\POLICE.WAV",
"AUDIO\\CITY.WAV",
"AUDIO\\WATER.WAV",
"AUDIO\\COMOPEN.WAV",
"AUDIO\\SUBOPEN.WAV",
"AUDIO\\JB.MP3",
"AUDIO\\BET.MP3",
"AUDIO\\L1_LG.MP3",
"AUDIO\\L2_DSB.MP3",
"AUDIO\\L3_DM.MP3",
"AUDIO\\L4_PAP.MP3",
"AUDIO\\L5_TFB.MP3",
"AUDIO\\J0_DM2.MP3",
"AUDIO\\J1_LFL.MP3",
"AUDIO\\J2_KCL.MP3",
"AUDIO\\J3_VH.MP3",
"AUDIO\\J4_ETH.MP3",
"AUDIO\\J5_DST.MP3",
"AUDIO\\J6_TBJ.MP3",
"AUDIO\\T1_TOL.MP3",
"AUDIO\\T2_TPU.MP3",
"AUDIO\\T3_MAS.MP3",
"AUDIO\\T4_TAT.MP3",
"AUDIO\\T5_BF.MP3",
"AUDIO\\S0_MAS.MP3",
"AUDIO\\S1_PF.MP3",
"AUDIO\\S2_CTG.MP3",
"AUDIO\\S3_RTC.MP3",
"AUDIO\\S5_LRQ.MP3",
"AUDIO\\S4_BDBA.MP3",
"AUDIO\\S4_BDBB.MP3",
"AUDIO\\S2_CTG2.MP3",
"AUDIO\\S4_BDBD.MP3",
"AUDIO\\S5_LRQB.MP3",
"AUDIO\\S5_LRQC.MP3",
"AUDIO\\A1_SSO.WAV",
"AUDIO\\A2_PP.WAV",
"AUDIO\\A3_SS.WAV",
"AUDIO\\A4_PDR.WAV",
"AUDIO\\A5_K2FT.WAV",
"AUDIO\\K1_KBO.MP3",
"AUDIO\\K2_GIS.MP3",
"AUDIO\\K3_DS.MP3",
"AUDIO\\K4_SHI.MP3",
"AUDIO\\K5_SD.MP3",
"AUDIO\\R0_PDR2.MP3",
"AUDIO\\R1_SW.MP3",
"AUDIO\\R2_AP.MP3",
"AUDIO\\R3_ED.MP3",
"AUDIO\\R4_GF.MP3",
"AUDIO\\R5_PB.MP3",
"AUDIO\\R6_MM.MP3",
"AUDIO\\D1_STOG.MP3",
"AUDIO\\D2_KK.MP3",
"AUDIO\\D3_ADO.MP3",
"AUDIO\\D5_ES.MP3",
"AUDIO\\D7_MLD.MP3",
"AUDIO\\D4_GTA.MP3",
"AUDIO\\D4_GTA2.MP3",
"AUDIO\\D6_STS.MP3",
"AUDIO\\A6_BAIT.WAV",
"AUDIO\\A7_ETG.WAV",
"AUDIO\\A8_PS.WAV",
"AUDIO\\A9_ASD.WAV",
"AUDIO\\K4_SHI2.MP3",
"AUDIO\\C1_TEX.MP3",
"AUDIO\\EL_PH1.MP3",
"AUDIO\\EL_PH2.MP3",
"AUDIO\\EL_PH3.MP3",
"AUDIO\\EL_PH4.MP3",
"AUDIO\\YD_PH1.MP3",
"AUDIO\\YD_PH2.MP3",
"AUDIO\\YD_PH3.MP3",
"AUDIO\\YD_PH4.MP3",
"AUDIO\\HD_PH1.MP3",
"AUDIO\\HD_PH2.MP3",
"AUDIO\\HD_PH3.MP3",
"AUDIO\\HD_PH4.MP3",
"AUDIO\\HD_PH5.MP3",
"AUDIO\\MT_PH1.MP3",
"AUDIO\\MT_PH2.MP3",
"AUDIO\\MT_PH3.MP3",
"AUDIO\\MT_PH4.MP3",
"AUDIO\\MISCOM.WAV",
"AUDIO\\END.MP3",
"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[][40] = {
"AUDIO\\MUSIC\\HEAD",
"AUDIO\\MUSIC\\DOUBLE",
"AUDIO\\MUSIC\\KJAH",
"AUDIO\\MUSIC\\RISE",
"AUDIO\\MUSIC\\LIPS",
"AUDIO\\MUSIC\\MUNDO",
"AUDIO\\MUSIC\\MSX",
"AUDIO\\MUSIC\\FLASH",
"AUDIO\\MUSIC\\LCJ",
"AUDIO\\MUSIC\\LCFR",
"AUDIO\\MUSIC\\MISCOM2",
"AUDIO\\MUSIC\\CITY",
"AUDIO\\MUSIC\\WATER",
"AUDIO\\MUSIC\\SAWMILL",
"AUDIO\\MUSIC\\CITY",
"AUDIO\\MUSIC\\WATER",
"AUDIO\\MUSIC\\WATER",
"AUDIO\\MUSIC\\CITY",
"AUDIO\\MUSIC\\CITY",
"AUDIO\\MUSIC\\CITY",
"AUDIO\\MUSIC\\CITY",
"AUDIO\\MUSIC\\CITY",
"AUDIO\\MUSIC\\CITY",
"AUDIO\\MUSIC\\CITY",
"AUDIO\\MUSIC\\POLICE",
"AUDIO\\MUSIC\\TAXI",
"AUDIO\\NEWS\\NEWS_A",
"AUDIO\\NEWS\\NEWS_B",
"AUDIO\\NEWS\\NEWS_C",
"AUDIO\\NEWS\\NEWS_D",
"AUDIO\\NEWS\\NEWS_E",
"AUDIO\\NEWS\\NEWS_F",
"AUDIO\\NEWS\\NEWS_G",
"AUDIO\\NEWS\\NEWS_H",
"AUDIO\\NEWS\\NEWS_I",
"AUDIO\\NEWS\\NEWS_J",
"AUDIO\\NEWS\\NEWS_K",
"AUDIO\\NEWS\\NEWS_L",
"AUDIO\\NEWS\\NEWS_M",
"AUDIO\\NEWS\\NEWS_N",
"AUDIO\\CUTSCENE\\BIKER",
"AUDIO\\CUTSCENE\\BONEVOY",
"AUDIO\\CUTSCENE\\CAMPAIN",
"AUDIO\\CUTSCENE\\CASHCHP",
"AUDIO\\CUTSCENE\\CONTBAN",
"AUDIO\\CUTSCENE\\CRAZY69",
"AUDIO\\CUTSCENE\\CRAZY69",
"AUDIO\\CUTSCENE\\DEADLY",
"AUDIO\\CUTSCENE\\DONPROB",
"AUDIO\\CUTSCENE\\DRIVNMR",
"AUDIO\\CUTSCENE\\ELECTON",
"AUDIO\\CUTSCENE\\FINAL",
"AUDIO\\CUTSCENE\\FINAL_2",
"AUDIO\\CUTSCENE\\HOMSWET",
"AUDIO\\CUTSCENE\\HOTWHEL",
"AUDIO\\CUTSCENE\\KIDNAPP",
"AUDIO\\CUTSCENE\\LANDGRB",
"AUDIO\\CUTSCENE\\MORGUE",
"AUDIO\\CUTSCENE\\OVERDOS",
"AUDIO\\CUTSCENE\\RUFJUST",
"AUDIO\\CUTSCENE\\SAYONAR",
"AUDIO\\CUTSCENE\\SICILAN",
"AUDIO\\CUTSCENE\\THEOFER",
"AUDIO\\CUTSCENE\\INTRO",
"AUDIO\\MUSIC\\FINALE",
"AUDIO\\MUSIC\\MISCOM2"
};

File diff suppressed because it is too large Load Diff

View File

@ -115,6 +115,11 @@ cSampleManager::SetMusicMasterVolume(uint8 nVolume)
{
}
void
cSampleManager::SetMP3BoostVolume(uint8 nVolume)
{
}
void
cSampleManager::SetEffectsFadeVolume(uint8 nVolume)
{
@ -126,7 +131,7 @@ cSampleManager::SetMusicFadeVolume(uint8 nVolume)
}
void
cSampleManager::SetMonoMode(uint8 nMode)
cSampleManager::SetMonoMode(bool8 nMode)
{
}
@ -143,20 +148,36 @@ cSampleManager::UnloadSampleBank(uint8 nBank)
ASSERT( nBank < MAX_SFX_BANKS );
}
bool8
int8
cSampleManager::IsSampleBankLoaded(uint8 nBank)
{
ASSERT( nBank < MAX_SFX_BANKS );
return FALSE;
return LOADING_STATUS_NOT_LOADED;
}
uint8
cSampleManager::IsMissionAudioLoaded(uint8 nSlot, uint32 nSample)
{
ASSERT(nSlot < MISSION_AUDIO_COUNT);
return LOADING_STATUS_NOT_LOADED;
}
bool8
cSampleManager::LoadMissionAudio(uint8 nSlot, uint32 nSample)
{
ASSERT(nSlot < MISSION_AUDIO_COUNT);
return FALSE;
}
uint8
cSampleManager::IsPedCommentLoaded(uint32 nComment)
{
ASSERT( nComment < TOTAL_AUDIO_SAMPLES );
return FALSE;
return LOADING_STATUS_NOT_LOADED;
}
@ -179,14 +200,14 @@ cSampleManager::GetBankContainingSound(uint32 offset)
return INVALID_SFX_BANK;
}
int32
uint32
cSampleManager::GetSampleBaseFrequency(uint32 nSample)
{
ASSERT( nSample < TOTAL_AUDIO_SAMPLES );
return 0;
}
int32
uint32
cSampleManager::GetSampleLoopStartOffset(uint32 nSample)
{
ASSERT( nSample < TOTAL_AUDIO_SAMPLES );
@ -301,7 +322,7 @@ cSampleManager::StopChannel(uint32 nChannel)
}
void
cSampleManager::PreloadStreamedFile(uint8 nFile, uint8 nStream)
cSampleManager::PreloadStreamedFile(uint32 nFile, uint8 nStream)
{
ASSERT( nStream < MAX_STREAMS );
}
@ -319,7 +340,7 @@ cSampleManager::StartPreloadedStreamedFile(uint8 nStream)
}
bool8
cSampleManager::StartStreamedFile(uint8 nFile, uint32 nPos, uint8 nStream)
cSampleManager::StartStreamedFile(uint32 nFile, uint32 nPos, uint8 nStream)
{
ASSERT( nStream < MAX_STREAMS );
@ -341,7 +362,7 @@ cSampleManager::GetStreamedFilePosition(uint8 nStream)
}
void
cSampleManager::SetStreamedVolumeAndPan(uint8 nVolume, uint8 nPan, uint8 nEffectFlag, uint8 nStream)
cSampleManager::SetStreamedVolumeAndPan(uint8 nVolume, uint8 nPan, bool8 nEffectFlag, uint8 nStream)
{
ASSERT( nStream < MAX_STREAMS );
}
@ -369,4 +390,14 @@ cSampleManager::InitialiseSampleBanks(void)
return TRUE;
}
void
cSampleManager::SetStreamedFileLoopFlag(bool8 nLoopFlag, uint8 nChannel)
{
}
int8 cSampleManager::AutoDetect3DProviders()
{
return -1;
}
#endif

View File

@ -66,14 +66,14 @@ int usingEAX3=0;
ALCdevice *ALDevice = NULL;
ALCcontext *ALContext = NULL;
unsigned int _maxSamples;
float _fPrevEaxRatioDestination;
float _fPrevEaxRatioDestination;
bool _effectsSupported = false;
bool _usingEFX;
float _fEffectsLevel;
ALuint ALEffect = AL_EFFECT_NULL;
ALuint ALEffectSlot = AL_EFFECTSLOT_NULL;
struct
{
{
const char *id;
char name[256];
int sources;
@ -92,7 +92,7 @@ OggOpusFile *fpSampleDataHandle;
#else
FILE *fpSampleDataHandle;
#endif
bool8 bSampleBankLoaded [MAX_SFX_BANKS];
int8 gBankLoaded [MAX_SFX_BANKS];
int32 nSampleBankDiscStartOffset [MAX_SFX_BANKS];
int32 nSampleBankSize [MAX_SFX_BANKS];
uintptr nSampleBankMemoryStartAddress[MAX_SFX_BANKS];
@ -102,6 +102,12 @@ int32 nPedSlotSfx [MAX_PEDSFX];
int32 nPedSlotSfxAddr[MAX_PEDSFX];
uint8 nCurrentPedSlot;
uint32 nMissionSlotSfx[MISSION_AUDIO_SLOTS] = { UINT32_MAX, UINT32_MAX };
uintptr nMissionSlotSfxStartAddress;
uint32 gPlayerTalkSfx = UINT32_MAX;
void *gPlayerTalkData = 0;
CChannel aChannel[NUM_CHANNELS];
uint8 nChannelVolume[NUM_CHANNELS];
@ -126,6 +132,7 @@ char _mp3DirectoryPath[MAX_PATH];
CStream *aStream[MAX_STREAMS];
uint8 nStreamPan [MAX_STREAMS];
uint8 nStreamVolume[MAX_STREAMS];
bool8 nStreamLoopedFlag[MAX_STREAMS];
uint32 _CurMP3Index;
int32 _CurMP3Pos;
bool8 _bIsMp3Active;
@ -157,7 +164,7 @@ static void
add_providers()
{
SampleManager.SetNum3DProvidersAvailable(0);
static ALDeviceList DeviceList;
ALDeviceList *pDeviceList = &DeviceList;
@ -170,7 +177,7 @@ add_providers()
int i = pDeviceList->GetDefaultDevice();
{
if ( n < MAXPROVIDERS )
{
{
providers[n].id = pDeviceList->GetDeviceName(i);
strcpy(providers[n].name, "OPENAL SOFT");
providers[n].sources = pDeviceList->GetMaxNumSources(i);
@ -183,10 +190,10 @@ add_providers()
|| pDeviceList->IsExtensionSupported(i, ADEXT_EAX3)
|| pDeviceList->IsExtensionSupported(i, ADEXT_EAX4)
|| pDeviceList->IsExtensionSupported(i, ADEXT_EAX5) )
{
{
providers[n - 1].bSupportsFx = true;
if ( n < MAXPROVIDERS )
{
{
providers[n].id = pDeviceList->GetDeviceName(i);
strcpy(providers[n].name, "OPENAL SOFT EAX");
providers[n].sources = pDeviceList->GetMaxNumSources(i);
@ -196,7 +203,7 @@ add_providers()
}
if ( n < MAXPROVIDERS )
{
{
providers[n].id = pDeviceList->GetDeviceName(i);
strcpy(providers[n].name, "OPENAL SOFT EAX3");
providers[n].sources = pDeviceList->GetMaxNumSources(i);
@ -210,7 +217,7 @@ add_providers()
for(int j=n;j<MAXPROVIDERS;j++)
SampleManager.Set3DProviderName(j, NULL);
// devices are gone now
//defaultProvider = pDeviceList->GetDefaultDevice();
//if ( defaultProvider > MAXPROVIDERS )
@ -233,7 +240,7 @@ release_existing()
alAuxiliaryEffectSloti(ALEffectSlot, AL_EFFECTSLOT_EFFECT, AL_EFFECT_NULL);
}
}
DEV("release_existing()\n");
}
@ -284,7 +291,7 @@ set_new_provider(int index)
}
//SampleManager.SetSpeakerConfig(speaker_type);
if ( IsFXSupported() )
{
for ( int32 i = 0; i < MAXCHANNELS; i++ )
@ -300,7 +307,7 @@ set_new_provider(int index)
static bool8
IsThisTrackAt16KHz(uint32 track)
{
return track == STREAMED_SOUND_RADIO_CHAT;
return false;// track == STREAMED_SOUND_RADIO_KCHAT || track == STREAMED_SOUND_RADIO_VCPR || track == STREAMED_SOUND_RADIO_POLICE;
}
cSampleManager::cSampleManager(void)
@ -313,6 +320,80 @@ cSampleManager::~cSampleManager(void)
}
int gBankStartOffset[67];
void
SetUpDebugBanksInfo()
{
gBankStartOffset[3] = SFX_FE_BACK;
gBankStartOffset[4] = SFX_CAR_ACCEL_1;
gBankStartOffset[5] = SFX_CAR_ACCEL_2;
gBankStartOffset[9] = SFX_CAR_ACCEL_6;
gBankStartOffset[10] = SFX_CAR_ACCEL_7;
gBankStartOffset[1] = SFX_EMPTY;
gBankStartOffset[11] = SFX_CAR_ACCEL_8;
gBankStartOffset[7] = SFX_CAR_ACCEL_4;
gBankStartOffset[15] = SFX_CAR_ACCEL_12;
gBankStartOffset[13] = SFX_CAR_ACCEL_10;
gBankStartOffset[16] = SFX_CAR_CHAINSAW_IDLE;
gBankStartOffset[0] = SFX_AIR_BRAKES;
gBankStartOffset[17] = SFX_RC_IDLE;
gBankStartOffset[6] = SFX_CAR_ACCEL_3;
gBankStartOffset[19] = SFX_CAR_ACCEL_16;
gBankStartOffset[12] = SFX_CAR_ACCEL_9;
gBankStartOffset[2] = SFX_AMBULAN_VOICE_1_VAN_1;
gBankStartOffset[21] = SFX_CAR_ACCEL_18;
gBankStartOffset[22] = SFX_CAR_ACCEL_19;
gBankStartOffset[8] = SFX_CAR_ACCEL_5;
gBankStartOffset[23] = SFX_CAR_ACCEL_20;
gBankStartOffset[14] = SFX_CAR_ACCEL_11;
gBankStartOffset[20] = SFX_CAR_ACCEL_17;
gBankStartOffset[18] = SFX_CAR_RC_HELI;
gBankStartOffset[25] = SFX_CAR_AFTER_ACCEL_21;
gBankStartOffset[26] = SFX_CAR_FINGER_OFF_ACCEL_21;
gBankStartOffset[27] = SFX_CAR_ACCEL_22;
gBankStartOffset[28] = SFX_CAR_AFTER_ACCEL_22;
gBankStartOffset[29] = SFX_CAR_FINGER_OFF_ACCEL_22;
gBankStartOffset[24] = SFX_CAR_ACCEL_21;
gBankStartOffset[30] = SFX_HELI_APACHE_1;
gBankStartOffset[31] = SFX_HELI_UNUSED_1;
gBankStartOffset[32] = SFX_HELI_UNUSED_2;
gBankStartOffset[33] = SFX_HELI_UNUSED_3;
gBankStartOffset[34] = SFX_HELI_UNUSED_4;
gBankStartOffset[35] = SFX_SEAPLANE_LOW;
gBankStartOffset[37] = SFX_PLANE_UNUSED_2;
gBankStartOffset[38] = SFX_PLANE_UNUSED_3;
gBankStartOffset[39] = SFX_PLANE_UNUSED_4;
gBankStartOffset[40] = SFX_BUILDINGS_BANK_ALARM;
gBankStartOffset[41] = SFX_BUILDING_SNORE;
gBankStartOffset[36] = SFX_PLANE_UNUSED_1;
gBankStartOffset[43] = SFX_BUILDING_BAR_2;
gBankStartOffset[44] = SFX_BUILDING_BAR_3;
gBankStartOffset[45] = SFX_BUILDING_BAR_4;
gBankStartOffset[46] = SFX_BUILDING_MALIBU_1;
gBankStartOffset[47] = SFX_BUILDING_MALIBU_2;
gBankStartOffset[42] = SFX_BUILDING_BAR_1;
gBankStartOffset[49] = SFX_BUILDING_STRIP_1;
gBankStartOffset[50] = SFX_BUILDING_STRIP_2;
gBankStartOffset[51] = SFX_BUILDING_STRIP_3;
gBankStartOffset[52] = SFX_BUILDING_CHURCH;
gBankStartOffset[53] = SFX_BUILDING_FAN_1;
gBankStartOffset[48] = SFX_BUILDING_MALIBU_3;
gBankStartOffset[55] = SFX_BUILDING_INSECTS_1;
gBankStartOffset[56] = SFX_BUILDING_INSECTS_2;
gBankStartOffset[54] = SFX_BUILDING_FAN_2;
gBankStartOffset[57] = SFX_CLUB_1;
gBankStartOffset[58] = SFX_CLUB_2;
gBankStartOffset[59] = SFX_CLUB_3;
gBankStartOffset[60] = SFX_CLUB_4;
gBankStartOffset[61] = SFX_FOOTSTEP_GRASS_1;
gBankStartOffset[62] = SFX_FOOTSTEP_GRAVEL_1;
gBankStartOffset[63] = SFX_FOOTSTEP_WOOD_1;
gBankStartOffset[64] = SFX_FOOTSTEP_METAL_1;
gBankStartOffset[65] = SFX_FOOTSTEP_WATER_1;
gBankStartOffset[66] = SFX_FOOTSTEP_SAND_1;
}
void cSampleManager::SetSpeakerConfig(int32 nConfig)
{
@ -365,6 +446,31 @@ int8 cSampleManager::SetCurrent3DProvider(uint8 nProvider)
return curprovider;
}
int8
cSampleManager::AutoDetect3DProviders()
{
if (!AudioManager.IsAudioInitialised())
return -1;
if (defaultProvider >= 0 && defaultProvider < m_nNumberOfProviders) {
if (set_new_provider(defaultProvider))
return defaultProvider;
}
for (uint32 i = 0; i < GetNum3DProvidersAvailable(); i++)
{
char* providername = Get3DProviderName(i);
if (!strcasecmp(providername, "OPENAL SOFT")) {
SetCurrent3DProvider(i);
if (GetCurrent3DProviderIndex() == i)
return i;
}
}
return -1;
}
static bool8
_ResolveLink(char const *path, char *out)
{
@ -733,7 +839,7 @@ cSampleManager::Initialise(void)
{
if ( _bSampmanInitialised )
return TRUE;
SetUpDebugBanksInfo();
EFXInit();
for(int i = 0; i < MAX_STREAMS; i++)
@ -781,7 +887,7 @@ cSampleManager::Initialise(void)
for ( int32 i = 0; i < MAX_SFX_BANKS; i++ )
{
bSampleBankLoaded[i] = FALSE;
gBankLoaded[i] = LOADING_STATUS_NOT_LOADED;
nSampleBankDiscStartOffset[i] = 0;
nSampleBankSize[i] = 0;
nSampleBankMemoryStartAddress[i] = 0;
@ -840,7 +946,7 @@ cSampleManager::Initialise(void)
alDistanceModel(AL_INVERSE_DISTANCE_CLAMPED);
if ( alcIsExtensionPresent(ALDevice, (ALCchar*)ALC_EXT_EFX_NAME) )
{
{
_effectsSupported = providers[index].bSupportsFx;
alGenAuxiliaryEffectSlots(1, &ALEffectSlot);
alGenEffects(1, &ALEffect);
@ -849,14 +955,14 @@ cSampleManager::Initialise(void)
alGenSources(MAX_STREAMS*2, ALStreamSources[0]);
for ( int32 i = 0; i < MAX_STREAMS; i++ )
{
alGenBuffers(NUM_STREAMBUFFERS, ALStreamBuffers[i]);
alGenBuffers(NUM_STREAMBUFFERS, ALStreamBuffers[i]);
alSourcei(ALStreamSources[i][0], AL_SOURCE_RELATIVE, AL_TRUE);
alSource3f(ALStreamSources[i][0], AL_POSITION, 0.0f, 0.0f, 0.0f);
alSourcef(ALStreamSources[i][0], AL_GAIN, 1.0f);
alSourcei(ALStreamSources[i][1], AL_SOURCE_RELATIVE, AL_TRUE);
alSource3f(ALStreamSources[i][1], AL_POSITION, 0.0f, 0.0f, 0.0f);
alSourcef(ALStreamSources[i][1], AL_GAIN, 1.0f);
}
}
CChannel::InitChannels();
@ -875,7 +981,7 @@ cSampleManager::Initialise(void)
aChannel[i].SetReverbMix(ALEffectSlot, 0.0f);
}
}
{
for ( int32 i = 0; i < TOTAL_STREAMED_SOUNDS; i++ )
nStreamLength[i] = 0;
@ -894,14 +1000,25 @@ cSampleManager::Initialise(void)
for ( int32 i = 0; i < TOTAL_STREAMED_SOUNDS; i++ )
{
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)))
bool opened = false;
char filename[MAX_PATH];
sprintf(filename, "%s.VB", StreamedNameTable[i]);
if ( aStream[0] )
opened = aStream[0]->Open(filename, IsThisTrackAt16KHz(i) ? 16000 : 32000);
if ( !opened )
{
sprintf(filename, "%s.MP3", StreamedNameTable[i]);
if ( aStream[0] )
{
opened = aStream[0]->Open(filename, IsThisTrackAt16KHz(i) ? 16000 : 32000);
}
}
if ( opened )
{
uint32 tatalms = aStream[0]->GetLengthMS();
aStream[0]->Close();
nStreamLength[i] = tatalms;
} else
USERERROR("Can't open '%s'\n", StreamedNameTable[i]);
@ -936,7 +1053,18 @@ cSampleManager::Initialise(void)
nSampleBankMemoryStartAddress[SFX_BANK_PED_COMMENTS] = (uintptr)malloc(PED_BLOCKSIZE*MAX_PEDSFX);
ASSERT(nSampleBankMemoryStartAddress[SFX_BANK_PED_COMMENTS] != 0);
nMissionSlotSfxStartAddress = (uintptr)malloc(MISSION_AUDIO_BLOCKSIZE*MISSION_AUDIO_SLOTS);
ASSERT(nMissionSlotSfxStartAddress != 0);
// Find biggest player comment
uint32 nMaxPedSize = 0;
for (uint32 i = PLAYER_COMMENTS_START; i <= PLAYER_COMMENTS_END; i++)
nMaxPedSize = Max(nMaxPedSize, m_aSamples[i].nSize);
gPlayerTalkData = malloc(nMaxPedSize);
ASSERT(gPlayerTalkData != 0);
LoadSampleBank(SFX_BANK_0);
}
@ -1035,7 +1163,7 @@ cSampleManager::Terminate(void)
for ( int32 i = 0; i < NUM_CHANNELS; i++ )
aChannel[i].Term();
if ( IsFXSupported() )
{
if ( alIsEffect(ALEffect) )
@ -1053,7 +1181,7 @@ cSampleManager::Terminate(void)
ALEffectSlot = AL_EFFECTSLOT_NULL;
}
}
for ( int32 i = 0; i < MAX_STREAMS; i++ )
{
alDeleteBuffers(NUM_STREAMBUFFERS, ALStreamBuffers[i]);
@ -1077,7 +1205,7 @@ cSampleManager::Terminate(void)
_fPrevEaxRatioDestination = 0.0f;
_usingEFX = false;
_fEffectsLevel = 0.0f;
_DeleteMP3Entries();
CStream::Terminate();
@ -1096,6 +1224,21 @@ cSampleManager::Terminate(void)
free((void *)nSampleBankMemoryStartAddress[SFX_BANK_PED_COMMENTS]);
nSampleBankMemoryStartAddress[SFX_BANK_PED_COMMENTS] = 0;
}
if ( nMissionSlotSfxStartAddress != 0 )
{
free((void*)nMissionSlotSfxStartAddress);
nMissionSlotSfxStartAddress = 0;
for ( uint32 i = 0; i < MISSION_AUDIO_SLOTS; i++ )
nMissionSlotSfx[i] = UINT32_MAX;
}
if ( gPlayerTalkData != 0 )
{
free(gPlayerTalkData);
gPlayerTalkData = 0;
}
_bSampmanInitialised = FALSE;
}
@ -1139,6 +1282,12 @@ cSampleManager::SetMusicMasterVolume(uint8 nVolume)
m_nMusicVolume = nVolume;
}
void
cSampleManager::SetMP3BoostVolume(uint8 nVolume)
{
m_nMP3BoostVolume = nVolume;
}
void
cSampleManager::SetEffectsFadeVolume(uint8 nVolume)
{
@ -1153,7 +1302,7 @@ cSampleManager::SetMusicFadeVolume(uint8 nVolume)
}
void
cSampleManager::SetMonoMode(uint8 nMode)
cSampleManager::SetMonoMode(bool8 nMode)
{
m_nMonoMode = nMode;
}
@ -1194,7 +1343,7 @@ cSampleManager::LoadSampleBank(uint8 nBank)
if ( fread((void *)nSampleBankMemoryStartAddress[nBank], 1, nSampleBankSize[nBank], fpSampleDataHandle) != nSampleBankSize[nBank] )
return FALSE;
#endif
bSampleBankLoaded[nBank] = TRUE;
gBankLoaded[nBank] = LOADING_STATUS_LOADED;
return TRUE;
}
@ -1204,18 +1353,63 @@ cSampleManager::UnloadSampleBank(uint8 nBank)
{
ASSERT( nBank < MAX_SFX_BANKS);
bSampleBankLoaded[nBank] = FALSE;
gBankLoaded[nBank] = LOADING_STATUS_NOT_LOADED;
}
bool8
int8
cSampleManager::IsSampleBankLoaded(uint8 nBank)
{
ASSERT( nBank < MAX_SFX_BANKS);
return bSampleBankLoaded[nBank];
return gBankLoaded[nBank];
}
uint8
cSampleManager::IsMissionAudioLoaded(uint8 nSlot, uint32 nSample)
{
ASSERT(nSlot != MISSION_AUDIO_POLRADIO_CRIME_OR_COLOR && nSlot != MISSION_AUDIO_POLRADIO_AREA_OR_CAR); // these are not used in LCS
switch (nSlot)
{
case MISSION_AUDIO_SLOT_1:
case MISSION_AUDIO_SLOT_2:
return nMissionSlotSfx[nSlot] == nSample ? LOADING_STATUS_LOADED : LOADING_STATUS_NOT_LOADED;
case MISSION_AUDIO_PLAYER_COMMENT:
return nSample == gPlayerTalkSfx ? LOADING_STATUS_LOADED : LOADING_STATUS_NOT_LOADED;
}
return FALSE;
}
bool8
cSampleManager::LoadMissionAudio(uint8 nSlot, uint32 nSample)
{
ASSERT(nSlot != MISSION_AUDIO_POLRADIO_CRIME_OR_COLOR && nSlot != MISSION_AUDIO_POLRADIO_AREA_OR_CAR); // these are not used in LCS
ASSERT(nSample < TOTAL_AUDIO_SAMPLES);
if (fseek(fpSampleDataHandle, m_aSamples[nSample].nOffset, SEEK_SET) != 0)
return FALSE;
switch (nSlot)
{
case MISSION_AUDIO_SLOT_1:
case MISSION_AUDIO_SLOT_2:
if (fread((void*)(nMissionSlotSfxStartAddress + nSlot*MISSION_AUDIO_BLOCKSIZE), 1, m_aSamples[nSample].nSize, fpSampleDataHandle) != m_aSamples[nSample].nSize)
return FALSE;
nMissionSlotSfx[nSlot] = nSample;
break;
case MISSION_AUDIO_PLAYER_COMMENT:
if (fread(gPlayerTalkData, 1, m_aSamples[nSample].nSize, fpSampleDataHandle) != m_aSamples[nSample].nSize)
return FALSE;
gPlayerTalkSfx = nSample;
break;
}
return TRUE;
}
uint8
cSampleManager::IsPedCommentLoaded(uint32 nComment)
{
ASSERT( nComment < TOTAL_AUDIO_SAMPLES );
@ -1230,10 +1424,10 @@ cSampleManager::IsPedCommentLoaded(uint32 nComment)
uint8 slot = nCurrentPedSlot - i - 1;
#endif
if ( nComment == nPedSlotSfx[slot] )
return TRUE;
return LOADING_STATUS_LOADED;
}
return FALSE;
return LOADING_STATUS_NOT_LOADED;
}
@ -1275,14 +1469,6 @@ cSampleManager::LoadPedComment(uint32 nComment)
break;
}
case MUSICMODE_FRONTEND:
{
if ( MusicManager.GetNextTrack() == STREAMED_SOUND_GAME_COMPLETED )
return FALSE;
break;
}
}
}
@ -1291,7 +1477,7 @@ cSampleManager::LoadPedComment(uint32 nComment)
int samplesSize = m_aSamples[nComment].nSize / 2;
op_pcm_seek(fpSampleDataHandle, m_aSamples[nComment].nOffset / 2);
while (samplesSize > 0) {
int size = op_read(fpSampleDataHandle, (opus_int16 *)(nSampleBankMemoryStartAddress[SFX_BANK_PED_COMMENTS] + PED_BLOCKSIZE * nCurrentPedSlot + samplesRead),
int size = op_read(fpSampleDataHandle, (opus_int16 *)(nSampleBankMemoryStartAddress[SAMPLEBANK_PED] + PED_BLOCKSIZE * nCurrentPedSlot + samplesRead),
samplesSize, NULL);
if (size <= 0) {
return FALSE;
@ -1327,14 +1513,14 @@ cSampleManager::GetBankContainingSound(uint32 offset)
return INVALID_SFX_BANK;
}
int32
uint32
cSampleManager::GetSampleBaseFrequency(uint32 nSample)
{
ASSERT( nSample < TOTAL_AUDIO_SAMPLES );
return m_aSamples[nSample].nFrequency;
}
int32
uint32
cSampleManager::GetSampleLoopStartOffset(uint32 nSample)
{
ASSERT( nSample < TOTAL_AUDIO_SAMPLES );
@ -1363,29 +1549,25 @@ bool8 cSampleManager::UpdateReverb(void)
if ( AudioManager.m_FrameCounter & 15 )
return FALSE;
float fRatio = 0.0f;
#ifdef AUDIO_REFLECTIONS
float y = AudioManager.m_afReflectionsDistances[REFLECTION_TOP] + AudioManager.m_afReflectionsDistances[REFLECTION_BOTTOM];
float x = AudioManager.m_afReflectionsDistances[REFLECTION_LEFT] + AudioManager.m_afReflectionsDistances[REFLECTION_RIGHT];
float z = AudioManager.m_afReflectionsDistances[REFLECTION_UP];
#else
float x = 0.0f;
float y = 0.0f;
float z = 0.0f;
#define MIN_DIST 0.5f
#define CALCULATE_RATIO(value, maxDist, maxRatio) (value > MIN_DIST && value < maxDist ? value / maxDist * maxRatio : 0)
fRatio += CALCULATE_RATIO(AudioManager.m_afReflectionsDistances[REFLECTION_CEIL_NORTH], 10.0f, 1/2.f);
fRatio += CALCULATE_RATIO(AudioManager.m_afReflectionsDistances[REFLECTION_CEIL_SOUTH], 10.0f, 1/2.f);
fRatio += CALCULATE_RATIO(AudioManager.m_afReflectionsDistances[REFLECTION_CEIL_WEST], 10.0f, 1/2.f);
fRatio += CALCULATE_RATIO(AudioManager.m_afReflectionsDistances[REFLECTION_CEIL_EAST], 10.0f, 1/2.f);
fRatio += CALCULATE_RATIO((AudioManager.m_afReflectionsDistances[REFLECTION_NORTH] + AudioManager.m_afReflectionsDistances[REFLECTION_SOUTH]) / 2.f, 4.0f, 1/3.f);
fRatio += CALCULATE_RATIO((AudioManager.m_afReflectionsDistances[REFLECTION_WEST] + AudioManager.m_afReflectionsDistances[REFLECTION_EAST]) / 2.f, 4.0f, 1/3.f);
#undef CALCULATE_RATIO
#undef MIN_DIST
#endif
float normy = norm(y, 5.0f, 40.0f);
float normx = norm(x, 5.0f, 40.0f);
float normz = norm(z, 5.0f, 40.0f);
#define ZR(v, a, b) (((v)==0)?(a):(b))
#define CALCRATIO(x,y,z,min,max,val) (ZR(y, ZR(x, ZR(z, min, max), min), ZR(x, ZR(z, min, max), ZR(z, min, val))))
float fRatio = CALCRATIO(normx, normy, normz, 0.3f, 0.5f, (normy+normx+normz)/3.0f);
#undef CALCRATIO
#undef ZR
fRatio = Clamp(fRatio, usingEAX3==1 ? 0.0f : 0.30f, 1.0f);
fRatio = Clamp(fRatio, 0.0f, 0.6f);
if ( fRatio == _fPrevEaxRatioDestination )
return FALSE;
@ -1396,6 +1578,7 @@ bool8 cSampleManager::UpdateReverb(void)
if ( usingEAX3 )
#endif
{
fRatio = Min(fRatio * 1.67f, 1.0f);
if ( EAX3ListenerInterpolate(&StartEAX3, &FinishEAX3, fRatio, &EAX3Params, false) )
{
EAX_SetAll(&EAX3Params);
@ -1410,16 +1593,17 @@ bool8 cSampleManager::UpdateReverb(void)
}
*/
_fEffectsLevel = 1.0f - fRatio * 0.5f;
_fEffectsLevel = fRatio * 0.75f;
}
}
else
{
if ( _usingEFX )
_fEffectsLevel = (1.0f - fRatio) * 0.4f;
_fEffectsLevel = fRatio * 0.8f;
else
_fEffectsLevel = (1.0f - fRatio) * 0.7f;
_fEffectsLevel = fRatio * 0.22f;
}
_fEffectsLevel = Min(_fEffectsLevel, 1.0f);
_fPrevEaxRatioDestination = fRatio;
@ -1459,15 +1643,42 @@ cSampleManager::InitialiseChannel(uint32 nChannel, uint32 nSfx, uint8 nBank)
addr = nSampleBankMemoryStartAddress[nBank] + m_aSamples[nSfx].nOffset - m_aSamples[BankStartOffset[nBank]].nOffset;
}
else if ( nSfx >= PLAYER_COMMENTS_START && nSfx <= PLAYER_COMMENTS_END )
{
if ( !IsMissionAudioLoaded(MISSION_AUDIO_PLAYER_COMMENT, nSfx) )
return FALSE;
addr = (uintptr)gPlayerTalkData;
}
else
{
if ( !IsPedCommentLoaded(nSfx) )
for ( uint32 i = 0; i < MISSION_AUDIO_SLOTS; i++ ) {
if ( IsMissionAudioLoaded(i, nSfx) ) {
addr = nMissionSlotSfxStartAddress + i * MISSION_AUDIO_BLOCKSIZE;
goto MissionAudioFound;
}
}
int32 i;
for ( i = 0; i < _TODOCONST(3); i++ )
{
int32 slot = nCurrentPedSlot - i - 1;
#ifdef FIX_BUGS
if (slot < 0)
slot += ARRAY_SIZE(nPedSlotSfx);
#endif
if ( nSfx == nPedSlotSfx[slot] )
{
addr = (nSampleBankMemoryStartAddress[SFX_BANK_PED_COMMENTS] + PED_BLOCKSIZE * slot);
break;
}
}
if (i == _TODOCONST(3))
return FALSE;
int32 slot = _GetPedCommentSlot(nSfx);
addr = (nSampleBankMemoryStartAddress[SFX_BANK_PED_COMMENTS] + PED_BLOCKSIZE * slot);
}
MissionAudioFound:
if ( GetChannelUsedFlag(nChannel) )
{
TRACE("Stopping channel %d - really!!!", nChannel);
@ -1496,12 +1707,11 @@ cSampleManager::SetChannelEmittingVolume(uint32 nChannel, uint32 nVolume)
nChannelVolume[nChannel] = vol;
// reduce channel volume when JB.MP3 or S4_BDBD.MP3 playing
if ( MusicManager.GetMusicMode() == MUSICMODE_CUTSCENE
&& MusicManager.GetNextTrack() != STREAMED_SOUND_NEWS_INTRO
&& MusicManager.GetNextTrack() != STREAMED_SOUND_CUTSCENE_SAL4_BDBD )
{
nChannelVolume[nChannel] = vol / 4;
if (MusicManager.GetMusicMode() == MUSICMODE_CUTSCENE ) {
if (MusicManager.GetCurrentTrack() == STREAMED_SOUND_CUTSCENE_FINALE)
nChannelVolume[nChannel] = 0;
else
nChannelVolume[nChannel] >>= 2;
}
// no idea, does this one looks like a bug or it's SetChannelVolume ?
@ -1529,21 +1739,21 @@ cSampleManager::SetChannelVolume(uint32 nChannel, uint32 nVolume)
ASSERT( nChannel >= MAXCHANNELS );
ASSERT( nChannel < NUM_CHANNELS );
if ( nChannel == CHANNEL_POLICE_RADIO )
if( nChannel >= CHANNEL_POLICE_RADIO )
{
uint32 vol = nVolume;
if ( vol > MAX_VOLUME ) vol = MAX_VOLUME;
nChannelVolume[nChannel] = vol;
// reduce the volume for JB.MP3 and S4_BDBD.MP3
if ( MusicManager.GetMusicMode() == MUSICMODE_CUTSCENE
&& MusicManager.GetNextTrack() != STREAMED_SOUND_NEWS_INTRO
&& MusicManager.GetNextTrack() != STREAMED_SOUND_CUTSCENE_SAL4_BDBD )
{
nChannelVolume[nChannel] = vol / 4;
// increase the volume for JB.MP3 and S4_BDBD.MP3
if (MusicManager.GetMusicMode() == MUSICMODE_CUTSCENE ) {
if (MusicManager.GetCurrentTrack() == STREAMED_SOUND_CUTSCENE_FINALE)
nChannelVolume[nChannel] = 0;
else
nChannelVolume[nChannel] >>= 2;
}
aChannel[nChannel].SetVolume(m_nEffectsFadeVolume*vol*m_nEffectsVolume >> 14);
}
}
@ -1554,7 +1764,7 @@ cSampleManager::SetChannelPan(uint32 nChannel, uint32 nPan)
ASSERT( nChannel >= MAXCHANNELS );
ASSERT( nChannel < NUM_CHANNELS );
if ( nChannel == CHANNEL_POLICE_RADIO )
if ( nChannel >= CHANNEL_POLICE_RADIO )
{
aChannel[nChannel].SetPan(nPan);
}
@ -1609,8 +1819,10 @@ cSampleManager::StopChannel(uint32 nChannel)
}
void
cSampleManager::PreloadStreamedFile(uint8 nFile, uint8 nStream)
cSampleManager::PreloadStreamedFile(uint32 nFile, uint8 nStream)
{
char filename[MAX_PATH];
ASSERT( nStream < MAX_STREAMS );
if ( nFile < TOTAL_STREAMED_SOUNDS )
@ -1618,12 +1830,15 @@ cSampleManager::PreloadStreamedFile(uint8 nFile, uint8 nStream)
CStream *stream = aStream[nStream];
stream->Close();
#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() )
sprintf(filename, "%s.VB", StreamedNameTable[nFile]);
bool opened = stream->Open(filename, IsThisTrackAt16KHz(nFile) ? 16000 : 32000);
if ( !opened )
{
sprintf(filename, "%s.MP3", StreamedNameTable[nFile]);
opened = stream->Open(filename, IsThisTrackAt16KHz(nFile) ? 16000 : 32000);
}
if ( opened && !stream->Setup() )
{
stream->Close();
}
@ -1657,12 +1872,12 @@ cSampleManager::StartPreloadedStreamedFile(uint8 nStream)
}
bool8
cSampleManager::StartStreamedFile(uint8 nFile, uint32 nPos, uint8 nStream)
cSampleManager::StartStreamedFile(uint32 nFile, uint32 nPos, uint8 nStream)
{
uint32 i = 0;
uint32 position = nPos;
char filename[MAX_PATH];
if ( nFile >= TOTAL_STREAMED_SOUNDS )
return FALSE;
@ -1672,7 +1887,7 @@ cSampleManager::StartStreamedFile(uint8 nFile, uint32 nPos, uint8 nStream)
{
do
{
// Switched to MP3 player just now
// Just switched to MP3 player
if ( !_bIsMp3Active && i == 0 )
{
if ( nPos > nStreamLength[STREAMED_SOUND_RADIO_MP3_PLAYER] )
@ -1682,12 +1897,21 @@ cSampleManager::StartStreamedFile(uint8 nFile, uint32 nPos, uint8 nStream)
// Try to continue from previous song, if already started
if(!_GetMP3PosFromStreamPos(&position, &e) && !e) {
nFile = 0;
sprintf(filename, "%s.VB", StreamedNameTable[nFile]);
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() ) {
bool opened = stream->Open(filename, IsThisTrackAt16KHz(nFile) ? 16000 : 32000);
if ( !opened )
{
sprintf(filename, "%s.MP3", StreamedNameTable[nFile]);
opened = stream->Open(filename, IsThisTrackAt16KHz(nFile) ? 16000 : 32000);
}
if ( opened && stream->Setup() ) {
stream->SetLoopCount(nStreamLoopedFlag[nStream] ? 0 : 1);
nStreamLoopedFlag[nStream] = TRUE;
if (position != 0)
stream->SetPosMS(position);
@ -1700,6 +1924,7 @@ cSampleManager::StartStreamedFile(uint8 nFile, uint32 nPos, uint8 nStream)
return FALSE;
} else {
if (e->pLinkPath != NULL)
aStream[nStream]->Open(e->pLinkPath, IsThisTrackAt16KHz(nFile) ? 16000 : 32000);
else {
@ -1708,7 +1933,7 @@ cSampleManager::StartStreamedFile(uint8 nFile, uint32 nPos, uint8 nStream)
aStream[nStream]->Open(filename);
}
if (aStream[nStream]->Setup()) {
if (position != 0)
aStream[nStream]->SetPosMS(position);
@ -1735,13 +1960,20 @@ cSampleManager::StartStreamedFile(uint8 nFile, uint32 nPos, uint8 nStream)
{
nFile = 0;
_bIsMp3Active = FALSE;
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);
sprintf(filename, "%s.VB", StreamedNameTable[nFile]);
if (stream->Setup()) {
CStream* stream = aStream[nStream];
bool opened = stream->Open(filename, IsThisTrackAt16KHz(nFile) ? 16000 : 32000);
if ( !opened )
{
sprintf(filename, "%s.MP3", StreamedNameTable[nFile]);
opened = stream->Open(filename, IsThisTrackAt16KHz(nFile) ? 16000 : 32000);
}
if (opened && stream->Setup()) {
stream->SetLoopCount(nStreamLoopedFlag[nStream] ? 0 : 1);
nStreamLoopedFlag[nStream] = TRUE;
if (position != 0)
stream->SetPosMS(position);
@ -1759,6 +1991,7 @@ cSampleManager::StartStreamedFile(uint8 nFile, uint32 nPos, uint8 nStream)
else {
strcpy(filename, _mp3DirectoryPath);
strcat(filename, mp3->aFilename);
aStream[nStream]->Open(filename, IsThisTrackAt16KHz(nFile) ? 16000 : 32000);
}
@ -1779,13 +2012,21 @@ cSampleManager::StartStreamedFile(uint8 nFile, uint32 nPos, uint8 nStream)
position = 0;
nFile = 0;
}
sprintf(filename, "%s.VB", StreamedNameTable[nFile]);
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() ) {
bool opened = stream->Open(filename, IsThisTrackAt16KHz(nFile) ? 16000 : 32000);
if ( !opened )
{
sprintf(filename, "%s.MP3", StreamedNameTable[nFile]);
opened = stream->Open(filename, IsThisTrackAt16KHz(nFile) ? 16000 : 32000);
}
if ( opened && stream->Setup() ) {
stream->SetLoopCount(nStreamLoopedFlag[nStream] ? 0 : 1);
nStreamLoopedFlag[nStream] = TRUE;
if (position != 0)
stream->SetPosMS(position);
@ -1841,15 +2082,20 @@ cSampleManager::GetStreamedFilePosition(uint8 nStream)
}
void
cSampleManager::SetStreamedVolumeAndPan(uint8 nVolume, uint8 nPan, uint8 nEffectFlag, uint8 nStream)
cSampleManager::SetStreamedVolumeAndPan(uint8 nVolume, uint8 nPan, bool8 nEffectFlag, uint8 nStream)
{
ASSERT( nStream < MAX_STREAMS );
float boostMult = 0.0f;
if ( nVolume > MAX_VOLUME )
nVolume = MAX_VOLUME;
if ( nPan > MAX_VOLUME )
nPan = MAX_VOLUME;
if ( MusicManager.GetRadioInCar() == USERTRACK && !MusicManager.CheckForMusicInterruptions() )
boostMult = m_nMP3BoostVolume / 64.f;
nStreamVolume[nStream] = nVolume;
nStreamPan [nStream] = nPan;
@ -1858,10 +2104,14 @@ cSampleManager::SetStreamedVolumeAndPan(uint8 nVolume, uint8 nPan, uint8 nEffect
if ( stream->IsOpened() )
{
if ( nEffectFlag )
stream->SetVolume(m_nEffectsFadeVolume*nVolume*m_nEffectsVolume >> 14);
if ( nEffectFlag ) {
if ( nStream == 1 || nStream == 2 )
stream->SetVolume(128*nVolume*m_nEffectsVolume >> 14);
else
stream->SetVolume(m_nEffectsFadeVolume*nVolume*m_nEffectsVolume >> 14);
}
else
stream->SetVolume(m_nMusicFadeVolume*nVolume*m_nMusicVolume >> 14);
stream->SetVolume((m_nMusicFadeVolume*nVolume*(uint32)(m_nMusicVolume * boostMult + m_nMusicVolume)) >> 14);
stream->SetPan(nPan);
}
@ -1941,7 +2191,7 @@ cSampleManager::InitialiseSampleBanks(void)
fclose(fpSampleDescHandle);
fpSampleDescHandle = NULL;
for ( int32 i = 0; i < TOTAL_AUDIO_SAMPLES; i++ )
for ( uint32 i = 0; i < TOTAL_AUDIO_SAMPLES; i++ )
{
#ifdef FIX_BUGS
if (nBank >= MAX_SFX_BANKS) break;
@ -1958,4 +2208,11 @@ cSampleManager::InitialiseSampleBanks(void)
return TRUE;
}
void
cSampleManager::SetStreamedFileLoopFlag(bool8 nLoopFlag, uint8 nChannel)
{
nStreamLoopedFlag[nChannel] = nLoopFlag;
}
#endif

View File

@ -16,8 +16,10 @@ enum eSound
SOUND_CAR_DOOR_OPEN_BACK_RIGHT,
SOUND_CAR_WINDSHIELD_CRACK,
SOUND_CAR_JUMP,
SOUND_E,
SOUND_F,
SOUND_CAR_JUMP_2,
SOUND_CAR_TYRE_POP,
SOUND_16,
SOUND_17,
SOUND_CAR_ENGINE_START,
SOUND_CAR_LIGHT_BREAK,
SOUND_CAR_HYDRAULIC_1,
@ -31,29 +33,33 @@ enum eSound
SOUND_CAR_TANK_TURRET_ROTATE,
SOUND_CAR_BOMB_TICK,
SOUND_PLANE_ON_GROUND,
SOUND_HELI_BLADE,
SOUND_32,
SOUND_STEP_START,
SOUND_STEP_END,
SOUND_FALL_LAND,
SOUND_FALL_COLLAPSE,
SOUND_FIGHT_PUNCH_33,
SOUND_FIGHT_KICK_34,
SOUND_FIGHT_HEADBUTT_35,
SOUND_FIGHT_PUNCH_36,
SOUND_FIGHT_PUNCH_37,
SOUND_FIGHT_CLOSE_PUNCH_38,
SOUND_FIGHT_PUNCH_39,
SOUND_FIGHT_PUNCH_OR_KICK_BELOW_40,
SOUND_FIGHT_PUNCH_41,
SOUND_FIGHT_PUNCH_FROM_BEHIND_42,
SOUND_FIGHT_KNEE_OR_KICK_43,
SOUND_FIGHT_KICK_44,
SOUND_2D,
SOUND_FIGHT_37,
SOUND_FIGHT_38,
SOUND_FIGHT_39,
SOUND_FIGHT_40,
SOUND_FIGHT_41,
SOUND_FIGHT_42,
SOUND_FIGHT_43,
SOUND_FIGHT_44,
SOUND_FIGHT_45,
SOUND_FIGHT_46,
SOUND_FIGHT_47,
SOUND_FIGHT_48,
SOUND_49,
SOUND_WEAPON_BAT_ATTACK,
SOUND_WEAPON_KNIFE_ATTACK,
SOUND_WEAPON_CHAINSAW_IDLE,
SOUND_WEAPON_CHAINSAW_ATTACK,
SOUND_WEAPON_CHAINSAW_MADECONTACT,
SOUND_WEAPON_SHOT_FIRED,
SOUND_WEAPON_RELOAD,
SOUND_WEAPON_AK47_BULLET_ECHO,
SOUND_WEAPON_UZI_BULLET_ECHO,
SOUND_WEAPON_M16_BULLET_ECHO,
SOUND_WEAPON_FLAMETHROWER_FIRE,
SOUND_WEAPON_SNIPER_SHOT_NO_ZOOM,
SOUND_WEAPON_ROCKET_SHOT_NO_ZOOM,
@ -66,8 +72,8 @@ enum eSound
SOUND_GARAGE_BOMB1_SET,
SOUND_GARAGE_BOMB2_SET,
SOUND_GARAGE_BOMB3_SET,
SOUND_40,
SOUND_41,
SOUND_70,
SOUND_71,
SOUND_GARAGE_VEHICLE_DECLINED,
SOUND_GARAGE_VEHICLE_ACCEPTED,
SOUND_GARAGE_DOOR_CLOSED,
@ -76,8 +82,8 @@ enum eSound
SOUND_PICKUP_WEAPON_BOUGHT,
SOUND_PICKUP_WEAPON,
SOUND_PICKUP_HEALTH,
SOUND_PICKUP_ERROR,
SOUND_4B,
SOUND_80,
SOUND_81,
SOUND_PICKUP_ADRENALINE,
SOUND_PICKUP_ARMOUR,
SOUND_PICKUP_BONUS,
@ -87,7 +93,7 @@ enum eSound
SOUND_PICKUP_PACMAN_PACKAGE,
SOUND_PICKUP_FLOAT_PACKAGE,
SOUND_BOMB_TIMED_ACTIVATED,
SOUND_55,
SOUND_91,
SOUND_BOMB_ONIGNITION_ACTIVATED,
SOUND_BOMB_TICK,
SOUND_RAMPAGE_START,
@ -104,12 +110,16 @@ enum eSound
SOUND_PED_HIT,
SOUND_PED_LAND,
SOUND_PED_BULLET_HIT,
SOUND_PED_BOMBER,
SOUND_PED_BURNING,
SOUND_PED_ARREST_FBI,
SOUND_PED_ARREST_SWAT,
SOUND_PED_PLAYER_REACTTOCOP,
SOUND_PED_ARREST_COP,
SOUND_PED_MIAMIVICE_EXITING_CAR,
SOUND_PED_COP_HELIPILOTPHRASE,
SOUND_PED_PULLOUTWEAPON,
SOUND_PED_HELI_PLAYER_FOUND,
SOUND_PED_VCPA_PLAYER_FOUND,
SOUND_PED_ON_FIRE,
SOUND_PED_AIMING,
SOUND_PED_HANDS_UP,
SOUND_PED_HANDS_COWER,
SOUND_PED_FLEE_SPRINT,
@ -117,30 +127,40 @@ enum eSound
SOUND_PED_MUGGING,
SOUND_PED_CAR_JACKED,
SOUND_PED_ROBBED,
SOUND_PED_ACCIDENTREACTION1,
SOUND_PED_INNOCENT,
SOUND_PED_PLAYER_AFTERSEX,
SOUND_PED_PLAYER_BEFORESEX,
SOUND_PED_COP_TARGETING, // also used for medics
SOUND_PED_COP_MANYCOPSAROUND, // also used for medics
SOUND_PED_GUNAIMEDAT2,
SOUND_PED_COP_ALONE, // also used for medics
SOUND_PED_GUNAIMEDAT3,
SOUND_PED_COP_ASK_FOR_ID,
SOUND_PED_COP_LITTLECOPSAROUND, // also used for medics
SOUND_PED_PLAYER_FARFROMCOPS, // also used for medics
SOUND_PED_TAXI_WAIT,
SOUND_PED_ATTACK,
SOUND_PED_DEFEND,
SOUND_PED_PURSUIT_ARMY,
SOUND_PED_PURSUIT_FBI,
SOUND_PED_PURSUIT_SWAT,
SOUND_PED_PURSUIT_COP,
SOUND_PED_HEALING,
SOUND_PED_7B,
SOUND_PED_LEAVE_VEHICLE,
SOUND_PED_EVADE,
SOUND_PED_FLEE_RUN,
SOUND_PED_CRASH_VEHICLE,
SOUND_PED_CRASH_CAR,
SOUND_PED_ANNOYED_DRIVER,
SOUND_PED_147,
SOUND_PED_SOLICIT,
SOUND_PED_JEER,
SOUND_PED_150,
SOUND_PED_EXTINGUISHING_FIRE,
SOUND_PED_WAIT_DOUBLEBACK,
SOUND_PED_CHAT_SEXY,
SOUND_PED_CHAT_SEXY_FEMALE,
SOUND_PED_CHAT_SEXY_MALE,
SOUND_PED_CHAT_EVENT,
SOUND_PED_PED_COLLISION,
SOUND_PED_CHAT,
SOUND_PED_BODYCAST_HIT,
SOUND_PED_TAXI_CALL,
SOUND_INJURED_PED_MALE_OUCH,
SOUND_INJURED_PED_FEMALE,
SOUND_INJURED_PED_MALE_PRISON,
SOUND_RACE_START_3,
SOUND_RACE_START_2,
SOUND_RACE_START_1,
@ -151,143 +171,101 @@ enum eSound
SOUND_CAR_PED_COLLISION,
SOUND_CLOCK_TICK,
SOUND_PART_MISSION_COMPLETE,
SOUND_FRONTEND_MENU_STARTING,
SOUND_FRONTEND_MENU_NEW_PAGE,
SOUND_FRONTEND_MENU_NAVIGATION,
SOUND_FRONTEND_MENU_SETTING_CHANGE,
SOUND_FRONTEND_MENU_BACK,
SOUND_FRONTEND_STEREO,
SOUND_FRONTEND_MONO,
SOUND_FRONTEND_AUDIO_TEST,
SOUND_FRONTEND_FAIL,
SOUND_FRONTEND_RADIO_TURN_OFF,
SOUND_FRONTEND_RADIO_CHANGE,
SOUND_FRONTEND_MENU_STARTING, // same sound as SOUND_HUD
// TODO(Miami): What are 170-175??
SOUND_FRONTEND_RADIO_TURN_OFF = 176, // those 2 are same sound
SOUND_FRONTEND_RADIO_TURN_ON,
SOUND_FRONTEND_HURRICANE, // yes, frontend
SOUND_HUD,
SOUND_AMMUNATION_WELCOME_1,
SOUND_AMMUNATION_WELCOME_2,
SOUND_AMMUNATION_WELCOME_3,
SOUND_180,
SOUND_181,
SOUND_182,
SOUND_LIGHTNING,
SOUND_A5,
SOUND_TOTAL_SOUNDS,
SOUND_NO_SOUND,
SOUND_BULLETTRACE_1,
SOUND_BULLETTRACE_2,
SOUND_186, // makes same sound as 40
SOUND_187, // makes same sound as 46
SOUND_MELEE_ATTACK_START,
SOUND_SKATING,
SOUND_WEAPON_MINIGUN_ATTACK,
SOUND_WEAPON_MINIGUN_2,
SOUND_WEAPON_MINIGUN_3,
SOUND_AMMUNATION_IMRAN_ARM_BOMB,
SOUND_RADIO_CHANGE,
SOUND_FRONTEND_HIGHLIGHT_OPTION,
SOUND_FRONTEND_ENTER_OR_ADJUST,
SOUND_FRONTEND_BACK,
SOUND_FRONTEND_FAIL,
SOUND_FRONTEND_AUDIO_TEST,
SOUND_INJURED_PED_MALE_OUCH,
SOUND_INJURED_PED_FEMALE,
SOUND_SHIRT_WIND_FLAP,
SOUND_SET_203,
SOUND_TOTAL_SOUNDS = 204,
SOUND_NO_SOUND = 205,
};
enum eScriptSounds {
SCRIPT_SOUND_0 = 0,
SCRIPT_SOUND_1,
SCRIPT_SOUND_2,
SCRIPT_SOUND_3,
SCRIPT_SOUND_PARTY_1_LOOP_S,
SCRIPT_SOUND_PARTY_1_LOOP_L,
SCRIPT_SOUND_PARTY_2_LOOP_S,
SCRIPT_SOUND_PARTY_2_LOOP_L,
SCRIPT_SOUND_PARTY_3_LOOP_S,
SCRIPT_SOUND_PARTY_3_LOOP_L,
SCRIPT_SOUND_PARTY_4_LOOP_S,
SCRIPT_SOUND_PARTY_4_LOOP_L,
SCRIPT_SOUND_PARTY_5_LOOP_S,
SCRIPT_SOUND_PARTY_5_LOOP_L,
SCRIPT_SOUND_PARTY_6_LOOP_S,
SCRIPT_SOUND_PARTY_6_LOOP_L,
SCRIPT_SOUND_PARTY_7_LOOP_S,
SCRIPT_SOUND_PARTY_7_LOOP_L,
SCRIPT_SOUND_PARTY_8_LOOP_S,
SCRIPT_SOUND_PARTY_8_LOOP_L,
SCRIPT_SOUND_PARTY_9_LOOP_S,
SCRIPT_SOUND_PARTY_9_LOOP_L,
SCRIPT_SOUND_PARTY_10_LOOP_S,
SCRIPT_SOUND_PARTY_10_LOOP_L,
SCRIPT_SOUND_PARTY_11_LOOP_S,
SCRIPT_SOUND_PARTY_11_LOOP_L,
SCRIPT_SOUND_PARTY_12_LOOP_S,
SCRIPT_SOUND_PARTY_12_LOOP_L,
SCRIPT_SOUND_PARTY_13_LOOP_S,
SCRIPT_SOUND_PARTY_13_LOOP_L,
SCRIPT_SOUND_STRIP_CLUB_LOOP_1_S,
SCRIPT_SOUND_STRIP_CLUB_LOOP_1_L,
SCRIPT_SOUND_STRIP_CLUB_LOOP_2_S,
SCRIPT_SOUND_STRIP_CLUB_LOOP_2_L,
SCRIPT_SOUND_WORK_SHOP_LOOP_S,
SCRIPT_SOUND_WORK_SHOP_LOOP_L,
SCRIPT_SOUND_SAWMILL_LOOP_S,
SCRIPT_SOUND_SAWMILL_LOOP_L,
SCRIPT_SOUND_38,
SCRIPT_SOUND_39,
SCRIPT_SOUND_LAUNDERETTE_LOOP_S,
SCRIPT_SOUND_LAUNDERETTE_LOOP_L,
SCRIPT_SOUND_CHINATOWN_RESTAURANT_S,
SCRIPT_SOUND_CHINATOWN_RESTAURANT_L,
SCRIPT_SOUND_CIPRIANI_RESAURANT_S,
SCRIPT_SOUND_CIPRIANI_RESAURANT_L,
SCRIPT_SOUND_46_S,
SCRIPT_SOUND_47_L,
SCRIPT_SOUND_MARCO_BISTRO_S,
SCRIPT_SOUND_MARCO_BISTRO_L,
SCRIPT_SOUND_AIRPORT_LOOP_S,
SCRIPT_SOUND_AIRPORT_LOOP_L,
SCRIPT_SOUND_SHOP_LOOP_S,
SCRIPT_SOUND_SHOP_LOOP_L,
SCRIPT_SOUND_CINEMA_LOOP_S,
SCRIPT_SOUND_CINEMA_LOOP_L,
SCRIPT_SOUND_DOCKS_LOOP_S,
SCRIPT_SOUND_DOCKS_LOOP_L,
SCRIPT_SOUND_HOME_LOOP_S,
SCRIPT_SOUND_HOME_LOOP_L,
SCRIPT_SOUND_FRANKIE_PIANO,
SCRIPT_SOUND_PARTY_1_LOOP,
SCRIPT_SOUND_PORN_CINEMA_1_S,
SCRIPT_SOUND_PORN_CINEMA_1_L,
SCRIPT_SOUND_PORN_CINEMA_2_S,
SCRIPT_SOUND_PORN_CINEMA_2_L,
SCRIPT_SOUND_PORN_CINEMA_3_S,
SCRIPT_SOUND_PORN_CINEMA_3_L,
SCRIPT_SOUND_BANK_ALARM_LOOP_S,
SCRIPT_SOUND_BANK_ALARM_LOOP_L,
SCRIPT_SOUND_POLICE_BALL_LOOP_S,
SCRIPT_SOUND_POLICE_BALL_LOOP_L,
SCRIPT_SOUND_RAVE_LOOP_INDUSTRIAL_S,
SCRIPT_SOUND_RAVE_LOOP_INDUSTRIAL_L,
SCRIPT_SOUND_74,
SCRIPT_SOUND_75,
SCRIPT_SOUND_POLICE_CELL_BEATING_LOOP_S,
SCRIPT_SOUND_POLICE_CELL_BEATING_LOOP_L,
SCRIPT_SOUND_INJURED_PED_MALE_OUCH_S,
SCRIPT_SOUND_INJURED_PED_MALE_OUCH_L,
SCRIPT_SOUND_INJURED_PED_FEMALE_OUCH_S,
SCRIPT_SOUND_INJURED_PED_FEMALE_OUCH_L,
SCRIPT_SOUND_EVIDENCE_PICKUP,
SCRIPT_SOUND_UNLOAD_GOLD,
SCRIPT_SOUND_RAVE_1_LOOP_S,
SCRIPT_SOUND_RAVE_1_LOOP_L,
SCRIPT_SOUND_RAVE_2_LOOP_S,
SCRIPT_SOUND_RAVE_2_LOOP_L,
SCRIPT_SOUND_RAVE_3_LOOP_S,
SCRIPT_SOUND_RAVE_3_LOOP_L,
SCRIPT_SOUND_MISTY_SEX_S,
SCRIPT_SOUND_MISTY_SEX_L,
SCRIPT_SOUND_GATE_START_CLUNK,
SCRIPT_SOUND_GATE_STOP_CLUNK,
SCRIPT_SOUND_BANK_ALARM_LOOP = 0,
SCRIPT_SOUND_PART_MISSION_COMPLETE,
SCRIPT_SOUND_CHUNKY_RUN_SHOUT,
SCRIPT_SOUND_SECURITY_GUARD_AWAY_SHOUT,
SCRIPT_SOUND_POLICE_CELL_DOOR_SLIDING_LOOP,
SCRIPT_SOUND_POLICE_CELL_DOOR_CLUNK,
SCRIPT_SOUND_GARAGE_DOOR_SLIDING_LOOP,
SCRIPT_SOUND_GARAGE_DOOR_CLUNK,
SCRIPT_SOUND_SNORING_LOOP,
SCRIPT_SOUND_RACE_START_3,
SCRIPT_SOUND_RACE_START_2,
SCRIPT_SOUND_RACE_START_1,
SCRIPT_SOUND_RACE_START_GO,
SCRIPT_SOUND_SWAT_PED_SHOUT,
SCRIPT_SOUND_PRETEND_FIRE_LOOP,
SCRIPT_SOUND_AMMUNATION_CHAT_1,
SCRIPT_SOUND_AMMUNATION_CHAT_2,
SCRIPT_SOUND_AMMUNATION_CHAT_3,
SCRIPT_SOUND_SHOOTING_RANGE_TARGET_MOVING_LOOP,
SCRIPT_SOUND_SHOOTING_RANGE_TARGET_HIT,
SCRIPT_SOUND_AMMUNATION_BUY_WEAPON,
SCRIPT_SOUND_AMMUNATION_BUY_WEAPON_DENIED,
SCRIPT_SOUND_WMYCW_TICKET_SPEECH,
SCRIPT_SOUND_IMRAN_ARM_BOMB,
SCRIPT_SOUND_ANDY_SNIPER_SHOT,
SCRIPT_SOUND_WILLIE_CARD_SWIPE,
SCRIPT_SOUND_MALE_AMBULANCE_OUCH,
SCRIPT_SOUND_FEMALE_AMBULANCE_OUCH,
SCRIPT_SOUND_BUILDING_BAR_1,
SCRIPT_SOUND_BUILDING_BAR_2,
SCRIPT_SOUND_BUILDING_BAR_3,
SCRIPT_SOUND_BUILDING_BAR_4,
SCRIPT_SOUND_BUILDING_BIKER_BAR,
SCRIPT_SOUND_BUILDING_CHURCH,
SCRIPT_SOUND_BUILDING_CLUB,
SCRIPT_SOUND_BUILDING_CUBA_1,
SCRIPT_SOUND_BUILDING_CUBA_2,
SCRIPT_SOUND_BUILDING_VOODOO,
SCRIPT_SOUND_BUILDING_MUSIC_SHOP,
SCRIPT_SOUND_BUILDING_STRIPCLUB_1,
SCRIPT_SOUND_BUILDING_STRIPCLUB_2,
SCRIPT_SOUND_BUILDING_SUPERSWEEP,
SCRIPT_SOUND_SEAPLANE_LOW_FUEL,
SCRIPT_SOUND_NEW_BUILDING_BAR_1,
SCRIPT_SOUND_NEW_BUILDING_BAR_2,
SCRIPT_SOUND_NEW_BUILDING_BAR_3,
SCRIPT_SOUND_NEW_BUILDING_BAR_4,
SCRIPT_SOUND_NEW_BUILDING_MALIBU_1,
SCRIPT_SOUND_NEW_BUILDING_MALIBU_2,
SCRIPT_SOUND_NEW_BUILDING_MALIBU_3,
SCRIPT_SOUND_NEW_BUILDING_STRIP_1,
SCRIPT_SOUND_NEW_BUILDING_STRIP_2,
SCRIPT_SOUND_NEW_BUILDING_STRIP_3,
SCRIPT_SOUND_NEW_BUILDING_CHURCH,
SCRIPT_SOUND_NEW_BUILDING_FAN_1,
SCRIPT_SOUND_NEW_BUILDING_FAN_2,
SCRIPT_SOUND_NEW_BUILDING_INSECT_1,
SCRIPT_SOUND_NEW_BUILDING_INSECT_2,
SCRIPT_SOUND_NEW_WATERFALL,
SCRIPT_SOUND_BULLET_HIT_GROUND_1,
SCRIPT_SOUND_BULLET_HIT_GROUND_2,
SCRIPT_SOUND_BULLET_HIT_GROUND_3,
SCRIPT_SOUND_BULLET_HIT_WATER, // no sound
SCRIPT_SOUND_TRAIN_ANNOUNCEMENT_1,
SCRIPT_SOUND_TRAIN_ANNOUNCEMENT_2,
SCRIPT_SOUND_PAYPHONE_RINGING,
SCRIPT_SOUND_113,
SCRIPT_SOUND_GLASS_BREAK_L,
SCRIPT_SOUND_GLASS_BREAK_S,
SCRIPT_SOUND_GLASS_CRACK,
@ -296,6 +274,7 @@ enum eScriptSounds {
SCRIPT_SOUND_BOX_DESTROYED_2,
SCRIPT_SOUND_METAL_COLLISION,
SCRIPT_SOUND_TIRE_COLLISION,
SCRIPT_SOUND_HIT_BALL,
SCRIPT_SOUND_GUNSHELL_DROP,
SCRIPT_SOUND_GUNSHELL_DROP_SOFT,
SCRIPT_SOUND_TOTAL,

View File

@ -20,3 +20,25 @@ CBuilding::ReplaceWithNewModel(int32 id)
if(m_level == LEVEL_GENERIC || m_level == CGame::currLevel)
CStreaming::RequestModel(id, STREAMFLAGS_DONT_REMOVE);
}
bool
IsBuildingPointerValid(CBuilding* pBuilding)
{
if (!pBuilding)
return false;
if (pBuilding->GetIsATreadable()) {
int index = CPools::GetTreadablePool()->GetJustIndex_NoFreeAssert((CTreadable*)pBuilding);
#ifdef FIX_BUGS
return index >= 0 && index < CPools::GetTreadablePool()->GetSize();
#else
return index >= 0 && index <= CPools::GetTreadablePool()->GetSize();
#endif
} else {
int index = CPools::GetBuildingPool()->GetJustIndex_NoFreeAssert(pBuilding);
#ifdef FIX_BUGS
return index >= 0 && index < CPools::GetBuildingPool()->GetSize();
#else
return index >= 0 && index <= CPools::GetBuildingPool()->GetSize();
#endif
}
}

View File

@ -17,5 +17,4 @@ public:
virtual bool GetIsATreadable(void) { return false; }
};
VALIDATE_SIZE(CBuilding, 0x64);
bool IsBuildingPointerValid(CBuilding*);

View File

@ -8,10 +8,5 @@ public:
static void *operator new(size_t) throw();
static void operator delete(void*, size_t) throw();
int16 m_nodeIndices[2][12]; // first car, then ped
bool GetIsATreadable(void) { return true; }
};
VALIDATE_SIZE(CTreadable, 0x94);

View File

@ -2,15 +2,29 @@
#include "SurfaceTable.h"
struct CColBox
struct CBox
{
CVector min;
CVector max;
CVector GetSize(void) { return max - min; }
void Set(const CVector &min, const CVector &max) { this->min = min; this->max = max; }
};
struct CColBox : public CBox
{
uint8 surface;
uint8 piece;
void Set(const CVector &min, const CVector &max, uint8 surf = SURFACE_DEFAULT, uint8 piece = 0);
CVector GetSize(void) { return max - min; }
void Set(const CVector &min, const CVector &max, uint8 surf, uint8 piece);
using CBox::Set;
CColBox& operator=(const CColBox &other);
};
};
// no name for this
// bounds for a number of triangles
struct CColTriBBox : public CBox
{
int32 first;
int32 last;
};

View File

@ -4,9 +4,9 @@ struct CColLine
{
// NB: this has to be compatible with two CVuVectors
CVector p0;
int pad0;
// int pad0;
CVector p1;
int pad1;
// int pad1;
CColLine(void) { };
CColLine(const CVector &p0, const CVector &p1) { this->p0 = p0; this->p1 = p1; };

View File

@ -1,10 +1,17 @@
#include "common.h"
#include "main.h"
#include "ColModel.h"
#include "Collision.h"
#include "Game.h"
#include "MemoryHeap.h"
#include "Pools.h"
CColModel::CColModel(void)
{
boundingSphere.Set(0.0001f, CVector(0.0f, 0.0f, 0.0f));
boundingBox.Set(CVector(0.0f, 0.0f, 0.0f), CVector(0.0f, 0.0f, 0.0f));
numTriBBoxes = 0;
triBBoxes = nil;
numSpheres = 0;
spheres = nil;
numLines = 0;
@ -15,31 +22,58 @@ CColModel::CColModel(void)
vertices = nil;
triangles = nil;
trianglePlanes = nil;
level = CGame::currLevel;
ownsCollisionVolumes = true;
level = LEVEL_GENERIC; // generic col slot
// ownsCollisionVolumes = true;
}
CColModel::~CColModel(void)
{
RemoveCollisionVolumes();
RemoveTrianglePlanes();
if(!gNASTY_NASTY_MEM_SHUTDOWN_HACK){
RemoveTrianglePlanes();
RemoveCollisionVolumes();
}
}
//--LCS: no pool used, but maybe we better keep it?
void*
CColModel::operator new(size_t) throw()
{
CColModel* node = CPools::GetColModelPool()->New();
assert(node);
return node;
}
void
CColModel::operator delete(void *p, size_t) throw()
{
CPools::GetColModelPool()->Delete((CColModel*)p);
}
void
CColModel::RemoveCollisionVolumes(void)
{
if(ownsCollisionVolumes){
RwFree(spheres);
RwFree(lines);
RwFree(boxes);
RwFree(vertices);
RwFree(triangles);
#ifdef FIX_BUGS
// why is this missing?
if(ownsCollisionVolumes)
#endif
if(!gUseChunkFiles){
delete[] triBBoxes;
delete[] spheres;
delete[] lines;
delete[] boxes;
delete[] vertices;
delete[] triangles;
}
CCollision::RemoveTrianglePlanes(this);
numSpheres = 0;
numTriBBoxes = 0;
numLines = 0;
numBoxes = 0;
numTriangles = 0;
spheres = nil;
#ifdef FIX_BUGS
triBBoxes = nil;
#endif
lines = nil;
boxes = nil;
vertices = nil;
@ -52,7 +86,7 @@ CColModel::CalculateTrianglePlanes(void)
PUSH_MEMID(MEMID_COLLISION);
// HACK: allocate space for one more element to stuff the link pointer into
trianglePlanes = (CColTrianglePlane*)RwMalloc(sizeof(CColTrianglePlane) * (numTriangles+1));
trianglePlanes = new CColTrianglePlane[numTriangles+1];
REGISTER_MEMPTR(&trianglePlanes);
for(int i = 0; i < numTriangles; i++)
trianglePlanes[i].Set(vertices, triangles[i]);
@ -63,8 +97,10 @@ CColModel::CalculateTrianglePlanes(void)
void
CColModel::RemoveTrianglePlanes(void)
{
RwFree(trianglePlanes);
trianglePlanes = nil;
if(trianglePlanes){
delete[] trianglePlanes;
trianglePlanes = nil;
}
}
void
@ -96,20 +132,33 @@ CColModel::operator=(const CColModel &other)
boundingSphere = other.boundingSphere;
boundingBox = other.boundingBox;
// copy tri bboxes
if(other.numTriBBoxes){
if(numTriBBoxes != other.numTriBBoxes){
numTriBBoxes = other.numTriBBoxes;
delete[] triBBoxes;
triBBoxes = new CColTriBBox[numTriBBoxes];
}
for(i = 0; i < numTriBBoxes; i++)
triBBoxes[i] = other.triBBoxes[i];
}else{
numTriBBoxes = 0;
delete[] triBBoxes;
triBBoxes = nil;
}
// copy spheres
if(other.numSpheres){
if(numSpheres != other.numSpheres){
numSpheres = other.numSpheres;
if(spheres)
RwFree(spheres);
spheres = (CColSphere*)RwMalloc(numSpheres*sizeof(CColSphere));
delete[] spheres;
spheres = new CColSphere[numSpheres];
}
for(i = 0; i < numSpheres; i++)
spheres[i] = other.spheres[i];
}else{
numSpheres = 0;
if(spheres)
RwFree(spheres);
delete[] spheres;
spheres = nil;
}
@ -117,16 +166,14 @@ CColModel::operator=(const CColModel &other)
if(other.numLines){
if(numLines != other.numLines){
numLines = other.numLines;
if(lines)
RwFree(lines);
lines = (CColLine*)RwMalloc(numLines*sizeof(CColLine));
delete[] lines;
lines = new CColLine[numLines];
}
for(i = 0; i < numLines; i++)
lines[i] = other.lines[i];
}else{
numLines = 0;
if(lines)
RwFree(lines);
delete[] lines;
lines = nil;
}
@ -134,23 +181,21 @@ CColModel::operator=(const CColModel &other)
if(other.numBoxes){
if(numBoxes != other.numBoxes){
numBoxes = other.numBoxes;
if(boxes)
RwFree(boxes);
boxes = (CColBox*)RwMalloc(numBoxes*sizeof(CColBox));
delete[] boxes;
boxes = new CColBox[numBoxes];
}
for(i = 0; i < numBoxes; i++)
boxes[i] = other.boxes[i];
}else{
numBoxes = 0;
if(boxes)
RwFree(boxes);
delete[] boxes;
boxes = nil;
}
// copy mesh
if(other.numTriangles){
// copy vertices
numVerts = 0;
numVerts = -1;
for(i = 0; i < other.numTriangles; i++){
if(other.triangles[i].a > numVerts)
numVerts = other.triangles[i].a;
@ -160,10 +205,9 @@ CColModel::operator=(const CColModel &other)
numVerts = other.triangles[i].c;
}
numVerts++;
if(vertices)
RwFree(vertices);
delete[] vertices;
if(numVerts){
vertices = (CompressedVector*)RwMalloc(numVerts*sizeof(CompressedVector));
vertices = new CompressedVector[numVerts];
for(i = 0; i < numVerts; i++)
vertices[i] = other.vertices[i];
}
@ -171,20 +215,54 @@ CColModel::operator=(const CColModel &other)
// copy triangles
if(numTriangles != other.numTriangles){
numTriangles = other.numTriangles;
if(triangles)
RwFree(triangles);
triangles = (CColTriangle*)RwMalloc(numTriangles*sizeof(CColTriangle));
delete[] triangles;
triangles = new CColTriangle[numTriangles];
}
for(i = 0; i < numTriangles; i++)
triangles[i] = other.triangles[i];
}else{
numTriangles = 0;
if(triangles)
RwFree(triangles);
delete[] triangles;
triangles = nil;
if(vertices)
RwFree(vertices);
delete[] vertices;
vertices = nil;
}
return *this;
}
bool
CColModel::Write(base::cRelocatableChunkWriter &writer, bool allocSpace)
{
int numVerts = -1;
for(int i = 0; i < numTriangles; i++){
if(triangles[i].a > numVerts)
numVerts = triangles[i].a;
if(triangles[i].b > numVerts)
numVerts = triangles[i].b;
if(triangles[i].c > numVerts)
numVerts = triangles[i].c;
}
numVerts++;
if(allocSpace)
writer.AllocateRaw(this, sizeof(*this), 16, false, true);
writer.AllocateRaw(spheres, sizeof(*spheres)*numSpheres, 16, false, true);
writer.AddPatch(&spheres);
writer.AllocateRaw(lines, sizeof(*lines)*numLines, 16, false, true);
writer.AddPatch(&lines);
writer.AllocateRaw(boxes, sizeof(*boxes)*numBoxes, 16, false, true);
writer.AddPatch(&boxes);
if(triBBoxes && numTriBBoxes != 0){
writer.AllocateRaw(triBBoxes, sizeof(*triBBoxes)*numTriBBoxes, 16, false, true);
writer.AddPatch(&triBBoxes);
}else
triBBoxes = nil;
if(numTriangles != 0){
writer.AllocateRaw(vertices, sizeof(*vertices)*numVerts, 2, false, true);
writer.AddPatch(&vertices);
writer.AllocateRaw(triangles, sizeof(*triangles)*numTriangles, 2, false, true);
writer.AddPatch(&triangles);
RemoveTrianglePlanes();
}
return 1;
}

Some files were not shown because too many files have changed in this diff Show More