2214 Commits

Author SHA1 Message Date
Sergeanur
a16fcd8d6a Fixes from master 2021-09-02 19:22:50 +03:00
Sergeanur
a04a84e00b Audio: small refactoring 2021-09-02 18:50:46 +03:00
Sergeanur
abe6c22f56 Fix heli sound 2021-09-02 12:25:52 +03:00
Sergeanur
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
Fire-Head
4b747e567a replace ugly else if with switch 2021-08-30 23:34:06 +03:00
Sergeanur
320624edc8 Audio: ps2 code ifdef
# Conflicts:
#	src/audio/AudioManager.h
2021-08-30 11:26:19 +03:00
Sergeanur
355c260bf2 Fix Squalo render out poly 2021-08-29 13:29:06 +03:00
Sergeanur
9a7b469f4e Audio: fixing bugs, fixing types, making code more accurate to original 2021-08-29 09:42:32 +03:00
Nikolay
8ef1e29a5c fix 2021-08-28 14:19:51 +03:00
Nikolay Korolev
7a80acf6a1 fix debug teleport 2021-08-26 21:56:31 +03:00
Nikolay Korolev
b2daa0e502 Merge remote-tracking branch 'upstream/miami' into miami 2021-08-26 21:14:38 +03:00
Nikolay Korolev
915888d275 fixed debug teleport 2021-08-26 21:14:26 +03:00
Sergeanur
a94812b28d Fix acceleration sound on exiting the vehicle 2021-08-26 08:15:18 +03:00
Sergeanur
8de1ffb84d Fix reflections with audio time scale 2021-08-26 07:53:07 +03:00
Nikolay Korolev
b7db2a12d4 keep noinline only for broken vs versions 2021-08-26 01:47:17 +03:00
Sergeanur
f87f14b432 Refactor cPedComments 2021-08-25 13:41:53 +03:00
Sergeanur
c8492ab5e0 Audio: refactoring, type fixes, renaming cAudioManager fields 2021-08-25 08:49:58 +03:00
Sergeanur
d4a2113a8a Audio: fix PS2 ifdefs 2021-08-24 15:25:51 +03:00
Sergeanur
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
Sergeanur
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
Sergeanur
38f4ea7aa3 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 13:11:36 +03:00
erorcun
e9a61ca38c Adjust plane free cam values for sparks to be visible in Dodo 2021-08-23 21:56:22 +03:00
Sergeanur
ef0ba763b9 Make ped comments update position and volume + fix cPedComments::Process 2021-08-23 11:16:53 +03:00
Sergeanur
ceb65eafa5 Make ped comments update position and volume 2021-08-23 11:15:03 +03:00
erorcun
6110f74ad6 Add forgotten bit from X11 detection 2021-08-22 13:00:33 +03:00
erorcun
09f693b9b9 Cam: Fix can't look to right on BEHINDCAR 2021-08-22 12:25:43 +03:00
erorcun
285fee01f2 PedIK: fix fix 2021-08-22 12:23:12 +03:00
erorcun
d81890f6a8 Add forgotten bit from X11 detection 2021-08-22 01:57:01 +03:00
erorcun
c52aebe8e7 Fix an original bug about entering boat sometimes takes 2 key press 2021-08-21 19:07:26 +03:00
erorcun
f86bdb2cdb Fix map teleport Z coordinate 2021-08-21 17:15:30 +03:00
erorcun
d4ce6bcde0 Fix a bug about switching to previous weapon unintendedly 2021-08-21 16:34:26 +03:00
erorcun
e33b56b49a VC bits 2021-08-21 15:13:23 +03:00
Sergeanur
7c80093efa Remove cMissionAudio, move cAMCrime array outside of cPoliceRadioQueue (R* vision) 2021-08-21 13:02:07 +03:00
Sergeanur
b683c047dc Remove cMissionAudio, move cAMCrime array outside of cPoliceRadioQueue (R* vision) 2021-08-21 12:18:45 +03:00
Sergeanur
fe51abd534 Audio: bits of PS2 code 2021-08-21 08:42:00 +03:00
erorcun
80b7d52eeb Auto switch to remote grenade after detonator 2021-08-20 21:59:50 +03:00
erorcun
0256790e1c Fix some auto-aim problems 2021-08-20 21:26:19 +03:00
Nikolay Korolev
8b7f469ae1 fix 2021-08-20 20:39:27 +03:00
Nikolay Korolev
7d5b1e6c2e fix 2021-08-20 20:38:24 +03:00
Nikolay Korolev
11f2d941f1 small refactoring 2021-08-20 17:54:42 +03:00
Nikolay Korolev
aa104bb0aa small refactoring 2021-08-20 17:49:51 +03:00
Sergeanur
239367663b Rename unknown audio field 2021-08-20 15:45:18 +03:00
Sergeanur
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
Sergeanur
ef0b5f857d A few small audio changes 2021-08-20 14:28:18 +03:00
Sergeanur
c168786b42 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
* reverse a few PS2 bits
2021-08-20 13:02:58 +03:00
aap
c8623cfe09 CAutomobile fixes 2021-08-20 10:30:31 +02:00
aap
0e5ffb8c34 CAutomobile fixes 2021-08-20 10:29:33 +02:00
withmorten
843b43001a update librw 2021-08-19 17:03:38 +02:00
withmorten
d3e7ab933d update librw 2021-08-19 17:02:26 +02:00
Sergeanur
a9798d0645 Fix police yelling from empty or destroyed boats 2021-08-19 12:03:27 +03:00
Sergeanur
71e0895dc6 Add AUDIO_REVERB define 2021-08-19 10:53:14 +03:00
Sergeanur
51ba90dd52 Audio: ifdef more things that aren't on ps2 2021-08-19 08:45:56 +03:00
Sergeanur
eda2c05448 Audio: ifdef more things that aren't on ps2 2021-08-18 21:07:33 +03:00
Sergeanur
2120d4d3ce Fix acceleration sound playing when exiting the vehicle, code fixes in ProcessPlayersVehicleEngine 2021-08-18 18:37:43 +03:00
Sergeanur
01c70dfb76 Fix acceleration sound playing when exiting the vehicle 2021-08-18 18:37:10 +03:00
Sergeanur
296e7ed9ad Possible fix of ProcessVehicleOneShots crash 2021-08-18 17:31:34 +03:00
Sergeanur
a13089cd2e Port audio changes from master 2021-08-18 15:49:06 +03:00
Sergeanur
597802ff2e One more type fix 2021-08-18 15:37:31 +03:00
Sergeanur
5c562c3adc More type fixes in audio 2021-08-18 15:31:58 +03:00
withmorten
dff327df40 Merge pull request #1304 from AGraber/patch-1
re3 -> reVC on Switch build workflow file
2021-08-18 02:02:27 +02:00
Adrian Graber
ba07534d99 re3 -> reVC on Switch build workflow file 2021-08-18 02:00:44 +02:00
aap
a9604a88c2 update librw 2021-08-17 23:21:51 +02:00
aap
d4175c5315 update librw 2021-08-17 23:21:27 +02:00
aap
6b4b11d80e fix opengl; update librw 2021-08-17 12:59:30 +02:00
aap
dc4ee41b70 fix opengl; update librw 2021-08-17 12:58:52 +02:00
Sergeanur
16ff379ebe Add AUDIO_REFLECTIONS define, fix a bunch of types, fix heli chatter intensity 2021-08-17 13:58:48 +03:00
Sergeanur
2526503743 Remove FIX_BUGS that wasn't needed 2021-08-17 10:50:53 +03:00
erorcun
e0ecbeee39 Auto-detect X11 dependency 2021-08-16 21:06:52 +03:00
erorcun
79856dac25 Fix impossible bullets & turn speed on heavy guns 2021-08-16 21:06:06 +03:00
erorcun
8641e9d0bb Switch PR & remove X11 part from CMakeLists 2021-08-16 20:02:40 +03:00
erorcun
e73e965d5b Merge pull request #1300 from erorcun/miami
Auto-detect X11 dependency
2021-08-16 19:07:03 +03:00
erorcun
4e40c6f2ed Auto-detect X11 dependency 2021-08-16 15:20:40 +03:00
Sergeanur
176cadff05 Merge branch 'master' into miami
# Conflicts:
#	src/audio/AudioLogic.cpp
2021-08-16 14:31:40 +03:00
Sergeanur
076b324539 Fix ped comments playing at full volume behind the wall 2021-08-16 14:21:51 +03:00
Sergeanur
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
Sergeanur
76f2191476 Remove not needed entry from config 2021-08-16 10:31:35 +03:00
Sergeanur
bcb5b4f94d Remove not needed entry from config 2021-08-16 10:29:44 +03:00
Sergeanur
d6fbf9fbe7 PS2 audio reflections 2021-08-16 10:02:29 +03:00
Sergeanur
c7e05c74b9 Fix cAudioManager::ProcessVehicleEngine return type, rename Sound Intensity 2021-08-16 10:00:10 +03:00
Sergeanur
ab03fbb6c8 Make UpdateReflections a bit more binary exact + small code changes to sync with miami 2021-08-16 09:59:08 +03:00
Sergeanur
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
97aeb85d84 some CAutomobile fixes 2021-08-16 00:25:47 +02:00
Nikolay Korolev
7d1cfe50af Merge remote-tracking branch 'upstream/miami' into miami 2021-08-15 23:30:52 +03:00
Nikolay Korolev
dec09bde1c fix 2021-08-15 23:30:25 +03:00
erorcun
9deabc7b60 Merge pull request #1295 from erorcun/miami
Fix impossible bullets
2021-08-15 18:44:30 +03:00
Nikolay Korolev
6bdfb0d386 merged correct switch 2021-08-15 18:41:59 +03:00
Nikolay Korolev
26e5a7eed1 bruh 2021-08-15 18:41:19 +03:00
Nikolay Korolev
4b4aefe339 bruh 2021-08-15 18:40:38 +03:00
Nikolay Korolev
042284de8b actual fix 2021-08-15 18:36:48 +03:00
Nikolay Korolev
c48f6e9bda actual fix 2021-08-15 18:35:47 +03:00
erorcun
435b8fe52e Fix impossible bullets 2021-08-15 18:34:43 +03:00
Nikolay Korolev
3441714a13 lil fix 2021-08-15 18:28:34 +03:00
Nikolay Korolev
5fe04940be lil fix 2021-08-15 18:27:30 +03:00
Sergeanur
854ee12d9d Fix ifdef for audio reflection members 2021-08-15 14:11:20 +03:00
Sergeanur
5ddd0649e3 Fix cAudioManager::ProcessVehicleEngine return type, document PS2 changes, rename Sound Intensity 2021-08-15 13:14:16 +03:00
Sergeanur
886650a887 Fix CW build 2021-08-15 13:12:10 +03:00
erorcun
747ae04279 Fix premature .ini saving leading to missing bindings 2021-08-15 04:07:48 +03:00
erorcun
f4e723e690 Fix .ini fix for glfw 2021-08-15 03:59:12 +03:00
erorcun
0db14d718c All the sliders, unite 2021-08-15 03:39:38 +03:00
erorcun
fd52285074 Fix premature .ini saving leading to missing bindings 2021-08-15 03:29:49 +03:00
Nikolay Korolev
eadf0496bf fixed heli buoyancy 2021-08-14 23:31:32 +03:00
erorcun
4a5f7464c1 Switch PR & remove X11 part from CMakeLists 2021-08-14 18:09:07 +03:00
Nikolay Korolev
958e2f36bb ginput script 2021-08-14 16:44:09 +03:00
erorcun
3a95c77c9e Revert "map memory usage high default"
This reverts commit 81c6c5e47a.
2021-08-13 00:51:05 +03:00
erorcun
df89e5091e Revert "map memory usage high default"
This reverts commit b7c7c883d7.
2021-08-13 00:16:16 +03:00
withmorten
81c6c5e47a map memory usage high default 2021-08-12 23:08:33 +02:00
withmorten
b7c7c883d7 map memory usage high default 2021-08-12 23:07:54 +02:00
Sergeanur
0a2df3ca4c Fix sampman_null 2021-08-12 15:03:38 +03:00
Sergeanur
8759c2edf0 Sync fixes from miami 2021-08-12 15:01:58 +03:00
Sergeanur
92c5cf1877 Sync audio changes from master 2021-08-12 14:57:16 +03:00
Sergeanur
43fbf297c8 Waypoint text fix 2021-08-12 14:15:49 +03:00
Sergeanur
033d89a9ab Refactor cAudioManager::ProcessActiveQueues, fix doppler effect 2021-08-12 13:01:07 +03:00
Sergeanur
f1545daeae Rename unused audio member 2021-08-12 11:46:10 +03:00
Sergeanur
4f8993e19b Replace static_assert with #error 2021-08-12 11:39:34 +03:00
Sergeanur
2ef43e8d1a Fix sampman_null 2021-08-12 11:39:34 +03:00
Sergeanur
ce78081a7f Put more things under ifdef 2021-08-12 11:39:34 +03:00
Sergeanur
6c2d179aad Add define to enable/disable external 3d audio simulation 2021-08-12 11:39:34 +03:00
Nikolay Korolev
b99edf9a6b mission retry fix 2021-08-12 11:23:10 +03:00
Sergeanur
2eb0390dc9 Fix unset emitting volume for sawmill 2021-08-11 13:35:50 +03:00
Sergeanur
f131f70761 Fix unset emitting volume for moan sound 2021-08-11 12:10:48 +03:00
Sergeanur
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
Sergeanur
463fdab6a4 Fix a bunch of CModelInfo::GetModelInfo->GetColModel calls, part 2 2021-08-11 08:42:26 +03:00
Sergeanur
d7a28c4d2b Fix a bunch of CModelInfo::GetModelInfo->GetColModel calls 2021-08-11 08:35:01 +03:00
Sergeanur
0544beb00d Add sprite to the waypoint marker 2021-08-11 08:15:30 +03:00
Sergeanur
1f98f01dcb Fix a bunch of CModelInfo::GetModelInfo->GetColModel calls 2021-08-09 18:14:19 +03:00
Sergeanur
8ea411e4c5 Add sprite to the waypoint marker 2021-08-09 18:07:42 +03:00
withmorten
ab5965cc8d fix steam saves 2021-08-09 16:36:15 +02:00
withmorten
858f913fac small fix 2021-08-09 16:34:05 +02:00
Nikolay Korolev
3869369703 Merge remote-tracking branch 'upstream/miami' into miami 2021-08-09 00:07:50 +03:00
Nikolay Korolev
2ee32abf84 fix bug in CCurves 2021-08-09 00:07:02 +03:00
Barracuda6
42ad9c4378 Comment out text following #endif 2021-08-08 18:09:56 +03:00
Sergeanur
76a22c0d13 Fix 2021-08-08 18:02:23 +03:00
Sergeanur
f887d515fa Sync fix from miami 2021-08-08 17:53:01 +03:00
Nikolay Korolev
e17504a36a Merge branch 'master' into miami 2021-08-08 17:43:07 +03:00
Nikolay Korolev
4673f509f6 Revert "small fix"
This reverts commit bd96584433.
2021-08-08 17:42:32 +03:00
Nikolay Korolev
35dd465c19 Revert "small fix"
This reverts commit bd96584433.
2021-08-08 17:41:35 +03:00
Nikolay Korolev
8d9508bda4 Merge branch 'master' into miami 2021-08-08 17:34:28 +03:00
Nikolay Korolev
bd96584433 small fix 2021-08-08 17:34:03 +03:00
Nikolay Korolev
873840a6a5 merge 2021-08-08 17:19:49 +03:00
Nikolay Korolev
947f67dfb7 small fix 2021-08-08 17:17:20 +03:00
Nikolay Korolev
478bdcc1ca merge 2021-08-08 17:14:21 +03:00
Nikolay Korolev
63046894b0 small refactoring 2021-08-08 16:57:37 +03:00
Nikolay Korolev
668311a444 Merge branch 'master' into miami 2021-08-08 15:44:18 +03:00
Nikolay Korolev
15f770531c fixed tab 2021-08-08 15:42:44 +03:00
Nikolay Korolev
88b4c7b50b merge 2021-08-08 15:34:02 +03:00
Nikolay
e947081622 Merge pull request #1266 from Nick007J/miami
Mission replay
2021-08-07 18:47:28 +03:00
aap
bec1cbc1cb CVehicle fixes and cleanup 2021-08-04 13:54:26 +02:00
aap
4f461bd7be CVehicle fixes and cleanup 2021-08-04 13:54:04 +02:00
Nikolay Korolev
80d00fe31a more cherry-pick fix 2021-08-03 22:20:14 +03:00
Nikolay Korolev
6fbb7da82d cherrypick fixes 2021-08-03 22:14:58 +03:00
Nikolay Korolev
5a22896197 move debug 2021-08-03 21:53:45 +03:00
Nikolay Korolev
8bcbee4ea7 move debug script stuff to a separate file 2021-08-03 21:53:42 +03:00
Nikolay Korolev
5999ddc76d Merge remote-tracking branch 'upstream/miami' into miami 2021-08-03 21:44:18 +03:00
aap
4a047f56bc CPhysical fixes and cleanup 2021-08-02 20:02:57 +02:00
aap
09748d094a CPhysical fixes and cleanup 2021-08-02 20:02:35 +02:00
erorcun
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
Sergeanur
cb5586e658 Merge pull request #1268 from Nick007J/master
move debug stuff to a separate file
2021-08-02 15:06:40 +03:00
Sergeanur
865ce46fdb Fix waypoint disappearing after each save 2021-08-02 14:26:00 +03:00
Nikolay Korolev
2b99f2634b sync 2021-08-01 14:00:16 +03:00
Nikolay Korolev
6d7dec96af move debug script stuff to a separate file 2021-08-01 13:58:15 +03:00
erorcun
418bf3ab69 Fix R* optimization that prevents peds to spawn 2021-08-01 13:56:24 +03:00
erorcun
192190769d Add ped and car density slider to menu, remove dumb collision "optimization" 2021-08-01 13:56:09 +03:00
Nikolay Korolev
1479093d33 Merge remote-tracking branch 'upstream/miami' into miami 2021-08-01 12:54:20 +03:00
Nikolay Korolev
70080f1fdb mission replay 2021-08-01 12:54:05 +03:00
erorcun
0542b1bd4d Fix radio scroll when player controls disabled 2021-07-31 23:03:59 +03:00
erorcun
e80cbf8bb2 Fix radio scroll when player controls disabled 2021-07-31 22:57:54 +03:00
Magnus Larsen
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
Sergeanur
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
Sergeanur
232b5a04ba Merge pull request #1251 from Sergeanur/HigherDrawDist
Make cars and peds to not despawn when you look away
2021-07-31 20:07:29 +03:00
Sergeanur
9d25e7f315 Merge pull request #1248 from davicr/radar-cutscene-bugfix
Fix blip rendering during scripted sequences
2021-07-31 20:06:20 +03:00
aap
3c5bae164f CVisibilityPlugins and CRenderer fixes 2021-07-29 19:43:47 +02:00
aap
30061396e8 CVisibilityPlugins and CRenderer fixes; pulled MLO back in 2021-07-29 19:43:06 +02:00
Sergeanur
7bacf3b6f4 Reverse unused audio functions 2021-07-29 01:52:49 +03:00
Sergeanur
cce97588fe Reverse unused audio functions from mobile
# Conflicts:
#	src/audio/AudioManager.h
2021-07-29 00:43:04 +03:00
Sergeanur
6cea1de9e6 Reverse unused audio functions from mobile 2021-07-29 00:40:32 +03:00
Sergeanur
81673ab304 Fix comments 2021-07-28 10:36:18 +03:00
Sergeanur
2aa37813d2 cAudioManager declaration reordering 2021-07-28 10:32:43 +03:00
Sergeanur
8960ffaf0b Get rid of audio getters 2021-07-28 09:39:57 +03:00
Sergeanur
61176acbad Ped comments ordering and type fix + vice function(s) fix 2021-07-28 09:17:38 +03:00
Sergeanur
49ee711c75 AudioLogic type fixes and reordering (after peds) 2021-07-28 00:55:22 +03:00
Sergeanur
16f892b667 AudioLogic type fixes and reordering (before peds) 2021-07-28 00:41:34 +03:00
Sergeanur
9dbaa7a77f PolRadio type fixes 2021-07-27 22:38:57 +03:00
Sergeanur
d0666a8702 One more type fix 2021-07-27 22:38:35 +03:00
Sergeanur
16e2e3d091 Type fix 2021-07-27 22:32:47 +03:00
Sergeanur
7aa8d7c073 AudioManager.cpp reordering 2021-07-27 22:29:40 +03:00
Sergeanur
782d38c6b7 Sort AudioCollision functions into original order 2021-07-27 22:02:25 +03:00
Sergeanur
5240dce018 cAudioManager::GetCollisionOneShotRatio cleanup 2021-07-27 22:01:17 +03:00
erorcun
1eedf7f0ae Merge pull request #1257 from Nopey/fixbugs_pedgaplist
Fix bug triggering gnNumTempPedList assertion
2021-07-27 21:51:28 +03:00
Magnus Larsen
55e83982c3 Remove static_assert from previous commit 2021-07-27 00:23:40 -07:00
Magnus Larsen
388dd5cb00 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.
2021-07-26 19:50:10 -07:00
withmorten
d77ed4608f fix 2021-07-26 20:25:36 +02:00
Sergeanur
c0488b3190 Fix stuck looking flag when answering phone and idle weapon animation 2021-07-26 20:40:55 +03:00
Sergeanur
1180f32d9c Fix bike kick sound 2021-07-26 11:33:56 +03:00
Sergeanur
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
Sergeanur
250727c9ca Fix muzzleflash rotation 2021-07-26 09:52:39 +03:00
Sergeanur
f7a2c265b3 Remove deceiving comment 2021-07-26 09:16:43 +03:00
Sergeanur
f19a1aebd4 Remove deceiving comment 2021-07-26 09:16:20 +03:00
Sergeanur
bc3734cae3 Fix smooth spray when shooting with colt or usi while using PC controls 2021-07-26 09:13:16 +03:00
Sergeanur
cafc0f3c10 Fix ridiculously accurate bullets when you shoot behind with enabled free camera 2021-07-26 08:28:01 +03:00
Sergeanur
123f2fda9b Fix ridiculously accurate bullets when you shoot behind with enabled free camera 2021-07-26 08:22:57 +03:00
Sergeanur
1aac4d802f Fix Tommy looking at one spot due to crouching + shooting 2021-07-26 07:41:34 +03:00
Sergeanur
f73dfa12e6 Make cars and peds to not despawn when you look away 2021-07-26 04:43:26 +03:00
Sergeanur
6a94299eac Fix 2021-07-26 04:42:15 +03:00
Sergeanur
ed9c911a0e Fix traffic light corona facing wrong side 2021-07-26 04:40:23 +03:00
Sergeanur
a064b3a687 Audio changes:
- Reorder AudioCollision.cpp functions into original order
- Add missing cAudioCollision::Reset()
- Move cAudioCollision ctor into .h (like original)
- Fix argument types for ped comment functions and more
- Fix wrong names of ped comment functions
- Fix incorrect ped comments
- Remove getters
- Reorder declarations of cAudioManager
- Wrap PC only functions around ifdef
- Add cAudioManager methods from PS2 and mobile
2021-07-26 04:34:55 +03:00
Sergeanur
a510a03b8a Small fix 2021-07-25 22:27:00 +03:00
Sergeanur
5032d24ad8 Fix 2021-07-25 19:59:02 +03:00
Sergeanur
601f63f4fb Sync fix from master 2021-07-25 19:50:00 +03:00
Sergeanur
bf757fc960 Fix CPlayerInfo distance types 2021-07-24 00:59:19 +03:00
Nikolay Korolev
a7e673c2ec sync 2021-07-24 00:47:04 +03:00
Sergeanur
3adf37a3a9 Fix aiming with flamethrower with PC controls 2021-07-22 22:54:30 +03:00
Sergeanur
aec797671e Fix aiming with minigun and flamethrower with PC controls 2021-07-22 22:15:27 +03:00
Davi
bd3c3849fe Properly fix blip rendering during scripted sequences
Changes conditionals from "DrawBlips" and "ShowRadarTrace", "ShowRadarTraceWithHeight" to allow blips to be rendered during scripted sequences when "MENU_MAP" is enabled.
2021-07-22 16:10:15 -03:00
Sergeanur
1d1f10d68c Fixes from miami 2021-07-22 20:56:15 +03:00
Sergeanur
5e34b1efcf Possible fix of RemoveAndAdd crash 2021-07-22 20:37:49 +03:00
Sergeanur
953e4fc4ff Fix falling damage 2021-07-22 20:07:51 +03:00
Sergeanur
bbbe9b2632 Fix enum use 2021-07-22 07:06:54 +03:00
Sergeanur
a1444b992f Fix Predator shooting sound 2021-07-22 07:01:04 +03:00
withmorten
76558e9313 fix garbage data written in garage save block 2021-07-19 23:44:01 +02:00
withmorten
a437d2bc26 fix garbage data written in garage save block 2021-07-19 23:43:51 +02:00
Sergeanur
d0404cbdb7 render -> renderer (original name) 2021-07-18 00:04:26 +03:00
Sergeanur
c937bdbfea render -> renderer (original name) 2021-07-18 00:03:57 +03:00
withmorten
8018e40ebf Merge pull request #1217 from Nopey/master
Fix debug script loader crashing missions
2021-07-15 23:09:28 +02:00
withmorten
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
Sergeanur
780cd225e9 Make PS2 VB files work together with PC audio files 2021-07-15 18:06:12 +03:00
Sergeanur
2ce36a48b9 Make PS2 VB files work together with PC audio files 2021-07-15 18:06:02 +03:00
Sergeanur
02c4ada807 Remove stupid cast 2021-07-15 00:49:46 +03:00
Sergeanur
4f78733836 Remove stupid cast 2021-07-15 00:47:11 +03:00
Magnus Larsen
fb5a207abc Fix NearPed count going negative 2021-07-13 17:45:01 +02:00
erorcun
d2e594db2b Merge pull request #1236 from Nopey/fix_nearPeds
Fix NearPed count going negative
2021-07-13 18:10:59 +03:00
Magnus Larsen
894495689f Fix NearPed count going negative 2021-07-12 23:51:28 -07:00
Adrian Graber
7f544f9049 Fix artifact path 2021-07-13 01:32:43 +02:00
Adrian Graber
6665b16ba2 Nintendo Switch support 2021-07-13 01:18:49 +02:00
Adrian Graber
207378c947 Use svcGetInfo definitions from libnx
Co-authored-by: Anonymous Maarten <madebr@users.noreply.github.com>
2021-07-13 00:50:49 +02:00
Adrian Graber
a7b38e1b34 Save current usable memory for Switch application 2021-07-13 00:50:49 +02:00
Adrian Graber
5cab196718 Finish cmake stuff for Switch build
* SDL2 for OpenAL not needed anymore
* Add re3_platform_target function and use that instead of manually building NRO
2021-07-13 00:50:49 +02:00
Adrian Graber
3bde84f6c8 Move assets to dedicated folder and redefine GLFW mappings for Switch 2021-07-13 00:50:49 +02:00
Adrian Graber
a99a04ed49 Add Switch controller asset and configuration
* Add GXT string for the Nintendo Switch Controller
* Add frontend and button textures for Nintendo Switch controllers
* Fix wrong #ifndef when hiding screen resolution option on GTA_HANDHELD
2021-07-13 00:50:49 +02:00
Adrian Graber
b09b489ae7 Fix WINDOWS -> WIN32 on cmake 2021-07-13 00:50:49 +02:00
Anonymous Maarten
a247d53367 cmake: fix OpenAL on Switch + using X11 on Linux 2021-07-13 00:50:49 +02:00
Adrian Graber
ca5d3c8811 Replace GTA_SWITCH macro and use GAMEPAD_MENU
* Replace GTA_SWITCH macro with __SWITCH__ for platform specific stuff and GTA_HANDHELD for the rest (which could be used by other ports)
* Use GAMEPAD_MENU on GTA_HANDHELD, which will replace the usual controller setup (which contains some useless features for handhelds)
* Fix some identation inconsistencies
* Disable PC_PLAYER_CONTROLS on GTA_HANDHELD builds
2021-07-13 00:50:49 +02:00
Adrian Graber
02ec56e8f7 Add platform specific functions for glfw vibration
With implementation for Switch vibration through libnx hid/pad API
2021-07-13 00:50:45 +02:00
Adrian Graber
6da20aa723 Enable Gamepad Menu on Switch 2021-07-13 00:49:21 +02:00
Adrian Graber
28f266302f Add Nintendo Switch initial support 2021-07-13 00:49:13 +02:00
withmorten
523b23339c disable USE_CUTSCENE_SHADOW_FOR_PED if COMPATIBLE_SAVES isn't defined 2021-07-13 00:21:11 +02:00
Sergeanur
c982700a69 Enable cutscene shadows 2021-07-13 01:00:00 +03:00
withmorten
b69cee3801 fix premake 2021-07-12 23:28:05 +02:00
withmorten
a4b92fe9be fix premake 2021-07-12 23:26:49 +02:00
withmorten
6c097398d1 fix FixGarages 2021-07-12 22:47:17 +02:00
withmorten
2f7ae611ed Vanilla config for Windows and win-x86 only 2021-07-12 04:26:27 +02:00
withmorten
f50026828a Vanilla config for Windows and win-x86 only 2021-07-12 04:24:10 +02:00
withmorten
ac3905123e fix 2021-07-12 03:10:02 +02:00
Sergeanur
3f5fdc39a5 Reorganize config.h 2021-07-12 03:58:34 +03:00
Sergeanur
b4364c3672 Reorganize config.h 2021-07-12 03:34:37 +03:00
erorcun
3515363df5 Merge pull request #1218 from withmorten/ini
switch out current ini_parser.hpp with pulzed/mINI
2021-07-12 02:40:15 +03:00
withmorten
6f52ad190e miami: switch out current ini_parser.hpp with pulzed/mINI 2021-07-12 01:23:46 +02:00
withmorten
c0cbf8045f switch out current ini_parser.hpp with pulzed/mINI 2021-07-12 01:19:22 +02:00
erorcun
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
erorcun
a8fd3f828a Merge pull request #1149 from withmorten/saves
finish COMPATIBLE_SAVES and FIX_INCOMPATIBLE_SAVES
2021-07-12 01:06:59 +03:00
erorcun
291213ed40 Unite all sliders 2021-07-12 00:51:45 +03:00
erorcun
2a6f9c2757 Add ped and car density slider to menu, remove dumb collision "optimization" 2021-07-12 00:12:25 +03:00
Sergeanur
dc29e7c044 Add PED DENSITY and CAR DENSITY lines to GXT 2021-07-11 23:55:11 +03:00
Sergeanur
11434f96cc Add PED DENSITY and CAR DENSITY lines to GXT 2021-07-11 23:52:55 +03:00
withmorten
f686065769 get rid of // done comments in audiomanager.h 2021-07-11 03:59:37 +02:00
withmorten
3194fdb2c1 fix the fix (and another fix) 2021-07-11 03:34:43 +02:00
withmorten
58de524d70 tiny diff fix 2021-07-11 03:26:59 +02:00
withmorten
d7ceb4870c tiny diff fixes 2021-07-11 03:26:21 +02:00
withmorten
8a114514d9 fix hotring flap stat line 2021-07-11 00:30:26 +02:00
erorcun
9f0a96ac89 Physical: division by zero fix 2021-07-10 23:27:00 +03:00
erorcun
e9baf31ad8 Physical: division by zero fix 2021-07-10 23:24:27 +03:00
erorcun
d82dbf91ef Merge/sync fixes after threaded audio 2021-07-10 23:14:13 +03:00
erorcun
db4ae18e5d Remove waiting for stream closure in multi-thread audio 2021-07-10 23:14:08 +03:00
erorcun
5458632c40 Multi-threaded audio fixes 2021-07-10 23:13:51 +03:00
erorcun
ab73c2f539 Multi-threaded audio streams
Under MULTITHREADED_AUDIO define.
2021-07-10 23:13:42 +03:00
Magnus Larsen
12efd1209b Fix Cheat menu debug script loader 2021-07-10 10:18:32 -07:00
Magnus Larsen
33c45e4ae0 Fix debug script loader crashing missions
* open_script is now exposed in Script.h, perhaps it should be namespaced
as a static method on CTheScripts? I'm unsure what is preferred.
* I've moved the joypad code out of open_script to prevent buttons held
  down at mission load time from changing the scriptToLoad.
2021-07-10 09:34:17 -07:00
withmorten
011aafa043 finish COMPATIBLE_SAVES and FIX_INCOMPATIBLE_SAVES 2021-07-10 17:30:27 +02:00
withmorten
6f103a3b82 finish COMPATIBLE_SAVES and FIX_INCOMPATIBLE_SAVES 2021-07-10 02:06:43 +02:00
withmorten
61c2398b67 readme: fix lto option 2021-07-10 01:17:38 +02:00
withmorten
71f28c8cf5 readme: fix lto option 2021-07-10 01:17:03 +02:00
withmorten
41f3d4d9d7 recompile german.gxt 2021-07-10 01:07:47 +02:00
withmorten
df8ef2d58d Merge pull request #1135 from RuesanG/patch-2
Update reVC German.txt
2021-07-10 01:07:13 +02:00
withmorten
4eb9a149e4 recompile german.gxt 2021-07-10 01:06:34 +02:00
withmorten
f09da45823 Merge pull request #1134 from RuesanG/master
German is 100%
2021-07-10 01:06:01 +02:00
Sergeanur
ddf2b09e55 Update GXT compiler with fix of German 2021-07-10 02:04:35 +03:00
Sergeanur
d824a321b9 Update GXT compiler with fix of German 2021-07-10 02:02:42 +03:00
withmorten
026cd10f3f Update german.txt 2021-07-10 00:43:26 +02:00
withmorten
9a68f94c54 Update german.txt 2021-07-10 00:43:22 +02:00
withmorten
a7ab4cc23a Update german.txt 2021-07-10 00:20:26 +02:00
withmorten
5b390ade40 Update german.txt 2021-07-10 00:19:02 +02:00
IgorPolyakov
f184c43b9b Update russian.txt 2021-07-10 01:10:25 +03:00
withmorten
ffe199290b fix jittery cars at 15fps 2021-07-09 18:51:27 +02:00
withmorten
37b6d491e7 fix jittery cars at 15fps 2021-07-09 18:50:33 +02:00
withmorten
0b269571d7 add librw defines to vanilla defines undefs 2021-07-09 18:05:26 +02:00
withmorten
e2ae17d994 add librw defines to vanilla defines undefs 2021-07-09 18:02:36 +02:00
Sergeanur
72f6780905 Use CPad functions to check key states in script loader 2021-07-08 03:37:14 +03:00
Sergeanur
47f153fe76 Use CPad functions to check key states in script loader 2021-07-08 03:24:47 +03:00
withmorten
79c010f082 fix macro redefinition warnings on win-glfw build 2021-07-08 01:44:55 +02:00
withmorten
f9a2f1daf7 fix macro redefinition warnings on win-glfw build 2021-07-08 01:40:58 +02:00
withmorten
e6544a6983 fix sampman_null build 2021-07-07 01:59:16 +02:00
withmorten
dadc56ccf9 fix sampman_null build 2021-07-07 01:54:16 +02:00
mssx86
37a43ebf45 fix: printHash.sh; replace echo -n, check if $1 is set. 2021-07-05 22:40:30 +02:00
mssx86
c5e896c420 fix: add missing limits.h includes to enable bulding on musl. 2021-07-05 22:40:21 +02:00
erorcun
164623d58e Merge pull request #1188 from mssx86/echo_to_printf
fix: printHash.sh; replace echo -n, check if $1 is set.
2021-07-05 21:04:05 +03:00
erorcun
386b113603 Merge pull request #1187 from mssx86/musl_fix
fix: add missing limits.h includes to enable bulding on musl.
2021-07-05 20:50:18 +03:00
withmorten
0b27a3dc23 fix cmake workflow 2021-07-05 19:08:52 +02:00
withmorten
8916fe1820 fix cmake workflow 2021-07-05 19:07:47 +02:00
erorcun
74fd58513b Merge pull request #1203 from AGraber/miami_librw_update
miami: Update librw
2021-07-04 19:34:47 +03:00
erorcun
ab7513cc85 Merge pull request #1202 from AGraber/librw_update
Update librw
2021-07-04 19:34:28 +03:00
Adrian Graber
2029ac3d62 Update librw 2021-07-04 18:17:22 +02:00
Adrian Graber
6edb8d9610 Update librw 2021-07-04 18:14:24 +02:00
withmorten
10d7b303a5 Update README.md 2021-07-03 23:11:35 +02:00
withmorten
52e4cd19ce Update README.md 2021-07-03 23:10:50 +02:00
withmorten
70876d3cde fix screenshot name 2021-07-03 16:43:35 +02:00
erorcun
3750124dcc Add MacOS to Readme 2021-07-03 16:41:10 +03:00
erorcun
1d51734d0b Fix Mac M1 premake 2021-07-03 16:39:27 +03:00
erorcun
ec45ba68cd Add MacOS to Readme 2021-07-03 16:34:55 +03:00
Sergeanur
77f31105de Fix overflow in audio code 2021-07-03 15:57:48 +03:00
Sergeanur
3ed4cdf109 Fix overflow in audio code 2021-07-03 15:57:08 +03:00
erorcun
3136ce6451 Fix Mac M1 premake 2021-07-03 15:33:40 +03:00
withmorten
a92dcaa0b1 premake: add no-full-paths option for CI builds, rename lto to with-lto 2021-07-03 03:03:25 +02:00
withmorten
060c1181bc fix previous PED_SKIN commit, add comments 2021-07-03 02:52:54 +02:00
withmorten
be6e273930 premake: add no-full-paths option for CI builds, rename lto to with-lto 2021-07-03 02:40:25 +02:00
erorcun
1c0878f65b Sanitizer fixes 2 2021-07-03 02:57:32 +03:00
withmorten
43631ba203 smol fix 2 2021-07-03 01:40:26 +02:00
withmorten
f9f854c4a8 smol fix 2021-07-03 01:36:44 +02:00
withmorten
63d9d9c148 disable PED_SKIN and PEDS_REPORT_CRIMES_ON_PHONE when COMPATIBLE_SAVES is disabled 2021-07-03 01:32:04 +02:00
erorcun
51042e15aa Remove redundant part of 'Sanitizer fixes 2' 2021-07-03 01:53:43 +03:00
erorcun
a8549e86a7 Sanitizer fixes 2 2021-07-03 01:42:24 +03:00
erorcun
424a6d90bd 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-03 01:30:54 +03:00
erorcun
70fa7fc239 Sanitizer fixes 2021-07-03 01:28:32 +03:00
erorcun
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
Sergeanur
987e09515b Fix use of integer in RemoveBuildingsNotInArea call 2021-07-02 10:33:45 +03:00
Sergeanur
9ea3549743 GameLogic - type fixes 2021-07-02 10:30:39 +03:00
Sergeanur
ae4bfef590 Refactor OnscreenTimer 2021-07-02 10:22:34 +03:00
Sergeanur
7df71c9673 Refactor OnscreenTimer 2021-07-02 10:18:22 +03:00
Sergeanur
8e6e46a919 Fix collision loading for mission entities 2021-07-02 00:18:38 +03:00
withmorten
65219365db fix compilation when ctype.h is included 2021-07-01 21:51:52 +02:00
withmorten
f7816c577f fix compilation when ctype.h is included 2021-07-01 21:49:01 +02:00
Sergeanur
3988fec6e7 Fix sound of water when changing MSAA or windowed/fullscreen mode 2021-07-01 21:39:15 +03:00
mssx86
de64bbe875 fix: printHash.sh; replace echo -n, check if $1 is set. 2021-07-01 20:14:46 +03:00
mssx86
b8e80a67ea fix: add missing limits.h includes to enable bulding on musl. 2021-07-01 20:12:28 +03:00
withmorten
2d38eb923d zero out work_buff before writing padding in save 2021-07-01 18:09:32 +02:00
withmorten
2071abd295 zero out work_buff before writing padding in save 2021-07-01 18:08:48 +02:00
Sergeanur
cb72fee941 fix 2021-06-30 21:45:19 +03:00
Sergeanur
a3964dfd4a Pause radio when game is paused 2021-06-30 21:36:11 +03:00
Sergeanur
a73a2c9179 Pause radio when game is paused 2021-06-30 21:21:45 +03:00
Sergeanur
b1c9340fd3 Fix unused code 2021-06-30 21:16:48 +03:00
withmorten
abe57fefa0 fix some string sizes to be MAX_PATH 2021-06-30 16:28:07 +02:00
withmorten
3383d8c6e7 fix some string sizes to be MAX_PATH 2021-06-30 16:23:44 +02:00
Sergeanur
d31a7e24a8 Fix text in elevator cam 2021-06-30 13:53:10 +03:00
erorcun
cac1c5bd42 Saner loop 2021-06-30 04:12:59 +03:00
erorcun
9f0daee186 Sanitizer fixes 2021-06-30 03:31:10 +03:00
withmorten
de4699a97e fix no VALIDATE_SAVE_SIZE build 2021-06-28 18:14:15 +02:00
erorcun
fdbd414299 Fix MP3 finding stack crash 2021-06-28 17:44:48 +03:00
erorcun
22e8e0eff8 Fix MP3 finding stack crash 2021-06-28 17:35:25 +03:00
withmorten
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
withmorten
cb3b3855b8 rename clamp macro to Clamp to fix compilation with g++11 2021-06-28 13:31:35 +02:00
Sergeanur
f8297df9c5 Redo ReadSaveBuf + common.h cleanup 2021-06-28 05:12:54 +03:00
erorcun
cc235be3aa Less invasive red tint on Delete Game page 2021-06-27 18:14:34 +03:00
erorcun
53a4b6936b Revert "Use PS2-y global names on SampMan"
We know that they changed all those names on PC.

This reverts commit 091a65996e.
2021-06-27 17:59:50 +03:00
erorcun
091a65996e Use PS2-y global names on SampMan 2021-06-27 17:53:14 +03:00
erorcun
3587cb029e Remove waiting for stream closure in multi-thread audio 2021-06-27 14:42:52 +03:00
erorcun
a923728877 Fix map texture leak 2021-06-27 00:34:46 +03:00
erorcun
05a29c7e6c Multi-threaded audio fixes 2021-06-27 00:00:07 +03:00
Leandro Guedes
ab38b0089e reVC: Update Linux 64bit build download link 2021-06-26 19:24:50 +02:00
withmorten
4819d195d8 fix WriteSaveHeader 2021-06-26 19:19:45 +02:00
withmorten
f3a931e1c9 Revert "Revert "Redo ReadSaveBuf + common.h cleanup""
This reverts commit af7573ddbe.
2021-06-26 19:14:46 +02:00
Sergeanur
090fa619b4 Merge pull request #1155 from leanndroguedes/master
re3: Update Linux 64bit build download link
2021-06-26 18:22:31 +03:00
Leandro Guedes
2c92accb8e re3: Update Linux 64bit build download link 2021-06-26 12:11:29 -03:00
erorcun
9c8ef3cca0 Merge pull request #1151 from erorcun/miami
Multi-threaded audio streams on OAL
2021-06-26 16:28:43 +03:00
erorcun
107c4df69c Multi-threaded audio streams
Under MULTITHREADED_AUDIO define.
2021-06-26 16:24:23 +03:00
withmorten
9ab4f1a2d9 fix screenshot name space 2021-06-26 13:13:43 +02:00
withmorten
171d9fd036 fix screenshot name space 2021-06-26 13:13:07 +02:00
withmorten
d8f5e86ede swap out codewarrior reVC.mcp with xml export 2021-06-26 03:43:40 +02:00
withmorten
036eff2c48 swap out codewarrior re3.mcp with xml export 2021-06-26 03:32:08 +02:00
withmorten
85d60b36da fix tabs in premake 2021-06-26 03:20:18 +02:00
withmorten
fff899ec16 fix tabs in premake 2021-06-26 03:19:52 +02:00
Sergeanur
225530ef04 Fix premature CTimer calls 2021-06-26 04:12:04 +03:00
Sergeanur
6cb8c11285 Fix premature CTimer calls 2021-06-26 04:09:45 +03:00
Sergeanur
3092b9a46e Small timer fix 2021-06-26 01:56:29 +03:00
erorcun
9b5caa190e Pool fixes
Mostly for Linux
2021-06-26 00:27:20 +03:00
erorcun
af7573ddbe Revert "Redo ReadSaveBuf + common.h cleanup"
This reverts commit 2b67aba94c.
2021-06-26 00:25:59 +03:00
withmorten
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
withmorten
4bab6d5356 Merge pull request #1147 from withmorten/githash
add no-git-hash option to premake
2021-06-25 19:51:45 +02:00
Sergeanur
2b67aba94c Redo ReadSaveBuf + common.h cleanup 2021-06-25 19:03:51 +03:00
erorcun
9382e86d38 Fix Particle FPE 2021-06-25 18:29:38 +03:00
erorcun
0b057f34c9 Update invite link 2021-06-25 16:24:26 +03:00
erorcun
6152f02333 Update invite link 2021-06-25 16:22:20 +03:00
withmorten
4e3fc35401 add no-git-hash option to premake 2021-06-25 02:41:40 +02:00
withmorten
84fb48825d add no-git-hash option to premake 2021-06-25 02:40:42 +02:00
withmorten
5341840943 fix cmake build. 2021-06-25 02:38:50 +02:00
withmorten
a83ecc123d fix cmake build? 2021-06-25 02:32:41 +02:00
Sergeanur
f46461331c Refactor CTimer::Update 2021-06-25 02:40:56 +03:00
Sergeanur
1f082a85cb Refactor CTimer::Update 2021-06-25 02:33:40 +03:00
Sergeanur
4660491243 Timer fix 2021-06-25 02:22:07 +03:00
Sergeanur
e5aa150557 Frontend fix 2021-06-25 00:40:00 +03:00
Sergeanur
14c71f39ff High FPS Fixes 2021-06-25 00:39:47 +03:00
Sergeanur
b8cf8c53e7 Don't restart OAL device when switching EAX 2021-06-24 21:34:33 +03:00
Sergeanur
5156626582 Make sampman stream functions default to stream 0 + type fixes 2021-06-24 21:34:33 +03:00
majestic
fe65f20a30 forgotten field in CBaseModelInfo::Shutdown 2021-06-24 21:34:33 +03:00
Sergeanur
4b8b0a6d74 Small fix 2021-06-24 21:34:33 +03:00
Sergeanur
0f0cb40151 Fix use of enum in ped comment banks switch 2021-06-24 21:34:33 +03:00
Sergeanur
2b8ae07ec6 forgot 2021-06-24 21:34:33 +03:00
Sergeanur
1b5dbc4b41 Add macros to set sample loop offsets 2021-06-24 21:34:33 +03:00
Sergeanur
6426963807 Fix cAudioManager::ProcessCarHeli 2021-06-24 21:34:33 +03:00
Sergeanur
23755fdfb4 Fix bullet trace sound offset 2021-06-24 21:34:33 +03:00
Sergeanur
793e1223de fix 2021-06-24 21:34:33 +03:00
Sergeanur
fad64667a7 Fix some timer calls 2021-06-24 21:34:33 +03:00
Sergeanur
6e4a2947ea Fix sin & cos calls 2021-06-24 21:34:33 +03:00
Sergeanur
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
Sergeanur
be019c6126 Undef PS2_AUDIO_CHANNELS for SQUEEZE_PERFORMANCE and VANILLA_DEFINES
# Conflicts:
#	src/core/config.h
2021-06-24 21:34:33 +03:00
Sergeanur
02655313e9 Increase the number of audio channels to PS2 count and some small audio fixes 2021-06-24 21:34:33 +03:00
Sergeanur
59ed4d0029 Fix MAX_DIGITAL_MIXER_CHANNELS 2021-06-24 21:34:33 +03:00
majestic
42e655b4cc some fixes for CPed 2021-06-24 21:34:32 +03:00
Sergeanur
5bcdb933a7 Use bool8 in audio code 2021-06-24 21:34:32 +03:00
Sergeanur
bd94c16e78 Fix C3dMarkers::PlaceMarker calls in Radar 2021-06-24 21:34:32 +03:00
erorcun
618d689dff Pool fixes + peds not forming circle fix 2021-06-24 21:34:28 +03:00
Sergeanur
5c1af537af Don't restart OAL device when switching EAX 2021-06-24 21:32:44 +03:00
Sergeanur
a446dbefaa Fix police scanner on high fps 2021-06-24 21:32:44 +03:00
Sergeanur
2592da2273 Remove frameTime, fix pause mode timer 2021-06-24 21:32:44 +03:00
Sergeanur
b90784da90 Make times more accurate 2021-06-24 21:32:44 +03:00
Sergeanur
f741101e44 Fix redone + add hud fix 2021-06-24 21:32:44 +03:00
Sergeanur
cacec36dd1 Fix cut off sfx on high framerates 2021-06-24 21:32:44 +03:00
Sergeanur
f2390deaa9 Make sampman stream functions default to stream 0 2021-06-24 21:32:44 +03:00
Sergeanur
8fc99387f5 Fix use of enum in ped comment banks switch 2021-06-24 21:32:44 +03:00
Sergeanur
939d0c59a3 Add macros to set sample loop offsets 2021-06-24 21:32:44 +03:00
Sergeanur
edc25a689f Fix typo 2021-06-24 21:32:44 +03:00
Sergeanur
68b5270fe4 Fix some timer calls 2021-06-24 21:32:43 +03:00
Sergeanur
a11bf19b93 Fix sin & cos calls 2021-06-24 21:32:43 +03:00
Sergeanur
2ad3a75be5 Fix IsSphereVisible calls 2021-06-24 21:32:43 +03:00
aap
50058371ef CEntity and C(Vu)Vector fixes and cleanup 2021-06-24 21:32:43 +03:00
Sergeanur
ce0a097392 Undef PS2_AUDIO_CHANNELS for SQUEEZE_PERFORMANCE and VANILLA_DEFINES 2021-06-24 21:32:43 +03:00
Sergeanur
1e084dfab7 Set number of stereo sources 2021-06-24 21:32:43 +03:00
Sergeanur
5a55d3a949 Patch PolRadio 2021-06-24 21:32:43 +03:00
Sergeanur
7a2dbd9112 Increase the number of audio channels to PS2 count and some small audio fixes 2021-06-24 21:32:43 +03:00
Sergeanur
c9804510d1 This means sound should be panned right, not volume 2021-06-24 21:32:43 +03:00
Sergeanur
c37f4c3c1a Fix cAudioManager::SetupJumboFlySound 2021-06-24 21:32:43 +03:00
Sergeanur
319bf9d8d2 Fix return type 2021-06-24 21:32:43 +03:00
Sergeanur
786e101acf Use bool8 in audio code 2021-06-24 21:32:43 +03:00
Sergeanur
596e12b897 Fix C3dMarkers::PlaceMarker calls in Radar 2021-06-24 21:32:43 +03:00
Sergeanur
4a9d890ae9 Fix quiet police scanner on OpenAL 2021-06-24 21:32:43 +03:00
Sergeanur
873c4fc81e Make gang members react to sexy females 2021-06-24 21:32:43 +03:00
Sergeanur
f518676b76 fabs -> fabsf 2021-06-24 21:32:43 +03:00
Sergeanur
0f6583560d small RoadBlock fix 2021-06-24 21:32:43 +03:00
Sergeanur
6537dfe7f1 Use some GetMatrix/SetMatrix logic based on SA + CutsceneHead fix 2021-06-24 21:32:43 +03:00
aap
f2b59f5097 update librw 2021-06-24 21:32:43 +03:00
erorcun
8ae4859398 Fix FPE 2021-06-24 21:32:43 +03:00
aap
c4f231deb4 experiment: sorted building list for new renderer 2021-06-24 21:32:43 +03:00
aap
c58d98a39e fix new renderer 2021-06-24 21:32:43 +03:00
aap
77ca9c593f fix postfx fix 2021-06-24 21:32:43 +03:00
erorcun
8488dc791a Pointless fixes 2021-06-24 21:32:39 +03:00
Sergeanur
0c41734c20 Fix quiet police scanner on OpenAL 2021-05-17 17:46:33 +03:00
Sergeanur
3a7cb9c5ce Fix oneshot audio crash 2021-05-17 08:06:05 +03:00
Sergeanur
8a728faeb6 Fixes to sfx names 2021-05-16 13:17:35 +03:00
Sergeanur
2fc431d1bb Complete sfx enum, rename some sounds + fixes of missing ped comments 2021-05-12 03:26:54 +03:00
Sergeanur
fc1bfcbc21 fabs -> fabsf 2021-05-10 09:13:32 +03:00
Sergeanur
4da733145e fix 2021-05-10 02:45:29 +03:00
Sergeanur
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
Sergeanur
1817727a66 Small Acos fix 2021-05-10 02:36:18 +03:00
aap
ceb22d71dd update librw 2021-03-02 22:23:05 +01:00
erorcun
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
df1ad8e122 fix postfx 2021-02-28 15:29:58 +01:00
aap
82245789ed proper radar clipping 2021-02-28 14:55:14 +01:00
aap
931bc690cd proper radar clipping 2021-02-28 14:55:01 +01:00
aap
d2b5a422e4 update librw 2021-02-28 14:17:14 +01:00
aap
087174c6a6 update librw; little fix 2021-02-28 14:15:22 +01:00
erorcun
a311f643f9 Fixes 2021-02-28 15:50:51 +03:00
Sergeanur
9fce8636b0 Fix muzzleflash rotation 2021-02-26 20:37:22 +02:00
Sergeanur
c5303c2ea4 Fix muzzleflash rotation 2021-02-26 20:31:26 +02:00
Sergeanur
478f6e07d4 Uhh, right
# Conflicts:
#	src/audio/AudioManager.h
2021-02-26 11:08:32 +02:00
Sergeanur
5bdbb5f802 Uhh, right 2021-02-26 11:05:37 +02:00
Sergeanur
b01d6be3f4 PoliceRadio -> PolRadio (original name) 2021-02-26 10:57:11 +02:00
Sergeanur
59c9ae29cf PoliceRadio -> PolRadio (original name) 2021-02-26 10:56:26 +02:00
Sergeanur
82ebd8aae1 Fix controls 2021-02-22 17:47:58 +02:00
Haydn Trigg
d506f8588c Fix stack corruption in HandleGraphEvent 2021-02-21 17:15:21 +01:00
withmorten
a3f1601fd1 Merge pull request 'Fix potential stack corruption in HandleGraphEvent in 64bit arch' (#2) from HaydnTrigg/re3:master into master 2021-02-21 16:13:56 +00:00
erorcun
1d336d851d Fix Radio Off text more 2021-02-21 18:22:02 +03:00
Haydn Trigg
620155ac8d Fix stack corruption in HandleGraphEvent 2021-02-21 11:38:32 +00:00
erorcun
71cf666bbd A saner way to remove Stingers, may fix Physical crash 2021-02-20 23:58:08 +03:00
erorcun
040c6f9027 Fix split second Radio Off text 2021-02-19 22:56:39 +03:00
erorcun
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
aap
9a7fa47857 make debug render groups optional 2021-02-19 18:41:31 +01:00
withmorten
111ccf5d34 remove nightly 2021-02-19 18:21:20 +01:00
withmorten
0b1d3669bc remove nightly 2021-02-19 18:21:04 +01:00
withmorten
8128e8e817 tiny sync with miami 2021-02-19 16:33:37 +01:00
withmorten
60bc816af5 nil -> false 2021-02-19 16:32:25 +01:00
withmorten
73fce903b8 nil -> false 2021-02-19 16:23:52 +01:00
erorcun
3d5f0ef318 Update librw to fix Mac hi-dpi 2021-02-19 17:00:03 +03:00
erorcun
b52356f6b5 Update librw to fix Mac hi-dpi 2021-02-19 16:56:42 +03:00
erorcun
139c6bfcf3 Fix MP3 player 2021-02-19 14:30:41 +03:00
RuesanG
c274c05ce3 Update reVC German.txt 2021-02-19 03:59:22 +01:00
RuesanG
53631f97db Add files via upload 2021-02-19 03:41:59 +01:00
RuesanG
006254fc9c Add files via upload
Fixed strings
2021-02-19 03:37:59 +01:00
erorcun
bf7280b55b Get keyboard input from X11 on Linux 2021-02-19 02:36:47 +03:00
erorcun
dfa0c8bf19 Merge branch 'miami' of https://github.com/GTAmodding/re3 into miami 2021-02-19 02:30:02 +03:00
withmorten
4eea06e620 name error strings to REVC 2021-02-18 22:59:40 +01:00
withmorten
781617d484 add NoMovies ini option, rename gDrawVersionText, always save ini after loading 2021-02-18 22:55:26 +01:00
withmorten
48cec4a786 add NoMovies ini option, rename gDrawVersionText, always save ini after loading 2021-02-18 22:40:32 +01:00
erorcun
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
6245a17e16 update librw; render groups only if extension supported 2021-02-18 20:31:46 +01:00
nick7
1402b9ed72 CMake: MSS / mpg123 compilation fixes 2021-02-18 20:00:43 +01:00
aap
3457ff48ce d3d9 debug render groups 2021-02-18 13:08:29 +01:00
aap
253021866c d3d9 debug render groups 2021-02-18 13:08:22 +01:00
aap
146ad3b4a1 fix last commit 2021-02-18 12:23:33 +01:00
aap
e8b435a624 fix last commit 2021-02-18 12:23:26 +01:00
aap
996772faf2 add debug render groups 2021-02-18 12:21:52 +01:00
aap
9db87fc636 add debug render groups 2021-02-18 12:21:47 +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
aap
1a429bb3c4 update librw 2021-02-18 11:10:11 +01:00
Sergeanur
cba1f85026 Add russian support 2021-02-18 11:34:23 +02:00
aap
59bf3a1cc4 update librw; gl cleanup 2021-02-18 01:58:42 +01:00
aap
a4412e8d63 update librw; gl cleanup 2021-02-18 01:58:36 +01:00
aap
c3af33f97d add ps2 particle.txd 2021-02-18 01:19:16 +01:00
Fire-Head
68cc5fe965 remove particle 2021-02-18 00:50:39 +03:00
Fire-Head
5ce7a0bde4 add updated vanilla-friendly upscale-free ps2 particle 2021-02-18 00:44:52 +03:00
Fire-Head
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
withmorten
8dca3182a6 update librw 2021-02-17 14:38:01 +01:00
withmorten
6227aee863 update librw 2021-02-17 14:34:38 +01:00
Sergeanur
ac88a00f06 Fix endless vibration in pause menu 2021-02-17 15:09:16 +02:00
Sergeanur
ee6b7152c7 Fix endless vibration in pause menu 2021-02-17 15:04:53 +02:00
erorcun
a73a3380d7 Merge branch 'miami' of https://github.com/GTAmodding/re3 into miami 2021-02-17 16:00:22 +03:00
erorcun
691c8e7702 Fix fuzzy #ifdef 2021-02-17 15:59:05 +03:00
withmorten
0b6fad7619 update librw 2021-02-17 13:58:59 +01:00
erorcun
75d8dd2bf2 Show Radio Off on interiors that don't want radio 2021-02-17 15:58:52 +03:00
withmorten
53e3bc6092 update librw 2021-02-17 13:58:31 +01:00
withmorten
f603f4397d fix premake workflows 2021-02-17 13:40:42 +01:00
withmorten
7db2df33e8 fix premake workflows 2021-02-17 13:33:52 +01:00
aap
0810abd294 update librw; get rid of glew 2021-02-17 13:14:26 +01:00
aap
b4c96bca93 update librw; get rid of glew 2021-02-17 13:12:33 +01:00
aap
ed38118008 add hires particle.txd 2021-02-17 11:03:17 +01:00
aap
c488ce166e add hires particle.txd 2021-02-17 11:03:05 +01:00
Steve Wills
2b6628aa65 Fix seg fault when configuring controller 2021-02-17 01:12:39 +03:00
erorcun
4d8f340827 Merge pull request #1050 from swills/controller_config_segfault_fix
Fix seg fault when configuring controller
2021-02-16 22:29:55 +03:00
Adrian Graber
88c11e92d3 Fix buffer overflow on re3_sem_open/close 2021-02-16 18:26:07 +01:00
erorcun
eccf87acc7 Merge pull request #1090 from AGraber/patch-1
Fix buffer overflow on re3_sem_open/close
2021-02-16 20:19:07 +03:00
Adrian Graber
19b39f49fa Fix buffer overflow on re3_sem_open/close 2021-02-16 18:12:21 +01:00
Steve Wills
e482ab6292 Fix mistake 2021-02-16 11:13:20 -05:00
Steve Wills
20d9498fdb Put fix behind ifdef 2021-02-16 10:55:11 -05:00
erorcun
1bfd7c0345 Fix FindClose->closedir 2021-02-16 18:31:00 +03:00
Adrian Graber
ee287f6120 Only include sys/syscall.h when __linux__ is defined 2021-02-16 18:29:55 +03:00
Adrian Graber
48227bd350 Add unnamed semaphore define toggle for CdStreamPosix 2021-02-16 18:29:41 +03:00
erorcun
1a64053da5 Merge pull request #986 from AGraber/nx-upstream
Add toggle for (un)named semaphores and prevent linux header inclusion on non-linux paltforms
2021-02-16 18:27:31 +03:00
erorcun
5ee4931fb6 Fix FindClose->closedir 2021-02-16 18:26:44 +03:00
erorcun
4368841f02 Fix rare stream deadlock on Windows 2021-02-16 17:55:42 +03:00
erorcun
49fd99119d Fix rare stream deadlock on Windows 2021-02-16 17:45:29 +03:00
erorcun
b451be6c7f PR rules 2021-02-16 16:53:05 +03:00
erorcun
7c382c85b8 Add PR rules to Readme 2021-02-16 16:52:55 +03:00
erorcun
179b11151e Add PR rules to Readme 2021-02-16 16:49:42 +03:00
erorcun
3baccc9d3e PR rules 2021-02-16 16:46:09 +03:00
Fire-Head
63e5afda0b fix mailbox particle 2021-02-15 21:25:18 +03:00
aap
edc77d7f00 removed some f suffixes from shaders 2021-02-15 15:06:45 +01:00
aap
adf688635a removed some f suffixes from shaders 2021-02-15 15:06:37 +01:00
withmorten
a58d76d27d Revert "always console for windows Debug builds"
This reverts commit a76c962aa3.
2021-02-15 14:58:19 +01:00
withmorten
fec39e87c0 Revert "always console for windows Debug builds"
This reverts commit a826091dc9.
2021-02-15 14:57:19 +01:00
withmorten
a76c962aa3 always console for windows Debug builds 2021-02-15 14:27:35 +01:00
withmorten
a826091dc9 always console for windows Debug builds 2021-02-15 14:24:07 +01:00
erorcun
5ce5000b14 Try to fix streams stop after a while 2 2021-02-15 05:09:46 +03:00
Fire-Head
a3eae736e7 readme update 2021-02-15 00:58:42 +03:00
Fire-Head
6fcea142a2 readme update 2021-02-15 00:54:43 +03:00
Steve Wills
a666de46aa Fix seg fault when configuring controller
Since controllerAction can be -2 (line 2105)
2021-02-14 14:06:37 -05:00
erorcun
e604be65d9 More compatible she-bang line 2021-02-14 21:11:15 +03:00
Fire-Head
0681fe3eca cannon fix 2021-02-14 20:11:58 +03:00
Nikolay Korolev
3d90a146d8 Merge remote-tracking branch 'upstream/miami' into miami 2021-02-14 20:09:16 +03:00
Nikolay Korolev
6ba0d2e6bd fail 2021-02-14 20:08:55 +03:00
erorcun
70b919137d (Test) Try to fix streams stop after a while 2021-02-14 18:07:21 +03:00
withmorten
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
Sergeanur
9f6f9a7af3 Merge pull request #1024 from IlDucci/miami
[Miami] Updating font widths.
2021-02-14 07:53:45 +02:00
withmorten
49d9aa8188 even more readme fixes 2021-02-14 03:11:52 +01:00
Fire-Head
f5fdb91a43 reVC logo 2021-02-14 01:01:33 +03:00
Sergeanur
83fdad7e0d Update invite link 2021-02-13 20:09:16 +02:00
withmorten
44511e28a8 more readme fixes 2021-02-13 17:16:53 +01:00
withmorten
e5d5160492 glfw window icon 2021-02-13 17:09:12 +01:00
IlDucci
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
withmorten
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
erorcun
035f0010d8 fix 2021-02-12 21:26:03 +03:00
erorcun
0ec16a5b0e Fix XInput hotplug 2021-02-12 21:10:52 +03:00
erorcun
80e4b3db55 Fix sha1 on premake linux 2021-02-12 21:10:39 +03:00
Filip Gawin
0c60ceeb33 Cmake version for hash 2021-02-12 21:09:46 +03:00
erorcun
2c784d979a Remove version text, add toggleable debug info(with commit hash!) 2021-02-12 21:09:23 +03:00
Sergeanur
e98164ec41 Sync aspect ratio setting with master 2021-02-12 18:00:20 +02:00
Sergeanur
b1698948e6 Update TXDs 2021-02-12 12:59:39 +02:00
Sergeanur
df336f5ba2 Convert TXDs to VC version, delete unused controller shadows 2021-02-12 09:20:35 +02:00
Sergeanur
aadc39eccd Add missing rtpng.h 2021-02-12 08:46:32 +02:00
Sergeanur
c5042dcdf6 Add english strings to translations as stubs, also translation notice 2021-02-12 08:14:10 +02:00
Sergeanur
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
withmorten
031195f11d better controller menu txds 2021-02-11 21:51:22 +01:00
withmorten
46e229c069 use better quality button textures, add generic.txd 2021-02-11 21:36:55 +01:00
Sergeanur
438277408b Use VEHICLE_FIREWEAPON in GXTs 2021-02-11 18:36:40 +02:00
Sergeanur
998d88763d Fix RC cars detonation button 2021-02-11 18:03:47 +02:00
Sergeanur
e4320c02cf Enable BIND_VEHICLE_FIREWEAPON 2021-02-11 17:16:01 +02:00
Sergeanur
579ad052ed Fix black screen during credits 2021-02-11 13:30:04 +02:00
Nikolay Korolev
7c74c01741 fixed attractors 2021-02-11 13:35:56 +03:00
Sergeanur
9d8e32d9b2 Merge pull request #1026 from Sergeanur/VC/ControllerMenu
Controller menu
2021-02-11 12:31:13 +02:00
Sergeanur
28f9160bca Fix crash when falling from bike while shooting 2021-02-11 12:13:03 +02:00
Sergeanur
4f27a28762 More fixes 2021-02-11 05:03:41 +02:00
Sergeanur
9f3f0ee2d2 Fix borders 2021-02-11 04:36:00 +02:00
Sergeanur
7c485560c5 Translated string fix 2021-02-11 04:28:21 +02:00
withmorten
84ede57205 startproject now depends on librw 2021-02-10 18:48:43 +01:00
erorcun
6d56fb41c6 Merge branch 'miami' of https://github.com/GTAmodding/re3 into miami 2021-02-10 15:27:04 +03:00
erorcun
775db94a96 Ped jump teleport/kill fix 2021-02-10 15:26:42 +03:00
Sergeanur
3c7a7bc8a7 Fixes 2021-02-10 13:42:59 +02:00
Sergeanur
5072c8b6f0 Merge branch 'miami' into VC/ControllerMenu
* miami:
  Fix repeating pickup sound on revenue pickup
2021-02-10 12:22:12 +02:00
Sergeanur
ca85e44c9e Fix repeating pickup sound on revenue pickup 2021-02-10 12:21:21 +02:00
Sergeanur
5f3e68ec45 Save vibration setting 2021-02-10 09:16:04 +02:00
Sergeanur
d6068c421d Add undef 2021-02-10 09:08:02 +02:00
Sergeanur
bf8687590e Add textures 2021-02-10 09:03:13 +02:00
Sergeanur
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
Sergeanur
12330e38cb Controller menu 2021-02-10 08:57:51 +02:00
aap
26bbbe0037 fix clouds 2021-02-09 20:02:29 +01:00
erorcun
94eed33940 Merge branch 'miami' of https://github.com/GTAmodding/re3 into miami 2021-02-08 13:24:49 +03:00
erorcun
b464bb7fd4 Merge branch 'miami' of https://github.com/GTAmodding/re3 into VCSanim 2021-02-08 13:23:19 +03:00
erorcun
2cad49940e Use our synonyms for attack anims again 2021-02-07 21:13:54 +03:00
erorcun
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
IlDucci
b864103976 Restoring original sorting. 2021-02-05 13:53:24 +01:00
Nikolay Korolev
102d105e0a fix 2021-02-05 14:45:03 +03:00
IlDucci
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
Nikolay Korolev
09de511c37 fixed plane AI 2021-02-05 11:31:54 +03:00
withmorten
a78212ea80 fix MASTER crashes 2021-02-04 23:43:04 +01:00
withmorten
8553120fdb add missing ASCII_STRCMP stuff 2021-02-04 19:47:47 +01:00
withmorten
42342745f3 CHud::Draw fix 2021-02-04 18:29:47 +01:00
withmorten
958c828a2c readme fix 2021-02-04 01:42:42 +01:00
withmorten
1525b105e2 reduce warnings in msvc librw build 2021-02-03 23:29:25 +01:00
withmorten
bba01a42e1 sync readme with master 2021-02-03 21:40:04 +01:00
erorcun
ca48ebcb6e MP3 player fixes 2021-02-03 23:03:00 +03:00
Nikolay Korolev
ca65c76419 fix 2021-02-03 22:46:04 +03:00
Sergeanur
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
withmorten
edc3c48e05 add gamefiles and dlls to premake workflows 2021-02-03 20:28:34 +01:00
IlDucci
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
erorcun
2ea365e5da Merge pull request #1018 from erorcun/miami
OAL Loops, fixes
2021-02-02 22:40:32 +03:00
erorcun
713562685a OAL Loops, fixes 2021-02-02 22:30:13 +03:00
withmorten
1b293a3cfb no advanced script log when log level is 0 2021-02-02 11:32:20 +01:00
withmorten
4281730b16 fix UB and potential crashes when doing ice cream 2021-02-02 11:27:30 +01:00
erorcun
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
erorcun
902e539c0d Overhaul MusicManager - fix radio bugs, scroll to prev station, radio off text 2021-02-01 14:18:17 +03:00
Sergeanur
3e0dbf42d4 Add radio off text 2021-01-31 23:46:45 +02:00
shfil
264d7d98d7 fix realloc 2021-01-31 15:01:46 +01:00
Adrian Graber
b60baf46f6 Only include sys/syscall.h when __linux__ is defined 2021-01-31 14:27:06 +01:00
Adrian Graber
d76b58cc72 Add unnamed semaphore define toggle for CdStreamPosix 2021-01-31 14:27:00 +01:00
withmorten
2e37001881 fix UB and new renderer crashes 2021-01-31 01:19:25 +01:00
Nikolay Korolev
e5190481e4 Merge remote-tracking branch 'upstream/miami' into miami 2021-01-31 01:46:33 +03:00
Nikolay Korolev
2420325c02 fix 2021-01-31 01:45:07 +03:00
withmorten
5dfe396af3 use macro for waterlevel z offset 2021-01-30 20:13:25 +01:00
Sergeanur
c193ade58b Font fixes 2021-01-30 20:46:37 +02:00
Nikolay Korolev
8b08098d4e fix 2021-01-30 20:26:10 +03:00
Nikolay Korolev
dbf5c06144 fixed bike bomb 2021-01-30 14:53:51 +03:00
withmorten
990637bf52 waterlevel: use macro for 400.0f 2021-01-29 17:57:51 +01:00
erorcun
f5f153dbfd Merge branch 'miami' of https://github.com/GTAmodding/re3 into miami 2021-01-29 19:16:40 +03:00
erorcun
c4328afce7 Even more fixes & shorten quit screen 2021-01-29 19:16:26 +03:00
withmorten
7db28f9f7f fix NewRender typo 2021-01-29 16:43:17 +01:00
withmorten
934aa92a9b add NewRenderer ini read/write, fix backfaceculling read 2021-01-29 16:41:34 +01:00
erorcun
982b024c5c CdStreamPosix fixes 2021-01-29 16:25:32 +03:00
aap
595a000f6a fix shutdown 2021-01-29 13:43:50 +01:00
withmorten
8482180706 waterlevel fix fix 2021-01-29 01:20:20 +01:00
withmorten
2fc6b542bc waterlevel fix 2021-01-29 01:18:32 +01:00
erorcun
810bad9fd8 Fix some UBs 2021-01-29 01:44:33 +03:00
Nikolay Korolev
7056f9954f fix 2021-01-28 23:25:15 +03:00
aap
9e3c192376 fix some little UB 2021-01-28 15:35:35 +01:00
erorcun
e1e4be9017 Use previous naming & fix LineOfSightSectorList too 2021-01-28 03:57:12 +03:00
erorcun
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
erorcun
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
kusst
8a7c7efe85 ifdefs + fix progressbar being under dialogbox 2021-01-27 23:56:23 +01:00
erorcun
be88a42bad Fix some Collision NaN/inf's 2021-01-28 00:51:43 +03:00
erorcun
9c2f067403 Change joystick DB with latest offical one 2021-01-27 22:19:17 +03:00
erorcun
a216bb56ee Attempt to fix input delays on GLFW 2021-01-27 22:19:10 +03:00
erorcun
ab939e059b Clean up POSIX streaming code 2021-01-27 22:19:00 +03:00
Sergeanur
e8a10748a4 fix fix 2021-01-27 20:39:22 +02:00
Sergeanur
97cf189d15 Fix subtitle shadow 2021-01-27 20:19:22 +02:00
Sergeanur
97351ad2c2 Use original animation names from VCS 2021-01-27 18:50:24 +02:00
kusst
e1e13d14a4 Also change progressbar color 2021-01-27 03:36:22 +01:00
kusst
30c26e5a9c Change text color in texture conversion dialog...
...so it matches VC style.
2021-01-27 00:35:57 +01:00
Sergeanur
2d2625bf75 Fix anim id in replay 2021-01-26 19:39:05 +02:00
withmorten
3948a1f726 add Vanilla config to premake and premake CI 2021-01-26 11:30:46 +01:00
Sergeanur
c5ff13abca Update OpenAL 2021-01-25 18:50:27 +02:00
erorcun
202ccd4c56 Support pads without L2-R2, add comments 2021-01-25 16:58:02 +03:00
withmorten
9d4053419b Merge pull request #977 from withmorten/miami-cw
make building with Codewarrior 7 possible
2021-01-25 14:06:53 +01:00
aap
453a16c978 modelinfo and visibility plg fixes 2021-01-24 23:25:12 +01:00
shfil
513d418771 Add cmake option for sanitizers 2021-01-24 21:35:53 +01:00
erorcun
071e503856 Ped: car enter anim. fix 2021-01-24 20:12:36 +03:00
withmorten
29fb996b00 make building with Codewarrior 7 possible 2021-01-24 17:08:34 +01:00
erorcun
b728f8de64 Fix out of bound binding orders 2021-01-24 19:08:07 +03:00
shfil
ca1de3cd17 Fix CCollision::DistToLine 2021-01-24 12:35:45 +01:00
Nikolay Korolev
4e477a17b2 mission cleanup fix 2021-01-23 23:17:41 +03:00
Nikolay Korolev
de32fbe75e another backport 2021-01-23 23:16:38 +03:00
Nikolay Korolev
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
Zach Charo
77051ddc78 Update Vehicle.cpp 2021-01-23 13:38:45 -06:00
erorcun
770456d0c8 Merge branch 'miami' of https://github.com/GTAmodding/re3 into miami 2021-01-23 16:50:55 +03:00
erorcun
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
erorcun
45c2488e36 Migrate from old .ini to new .ini 2021-01-23 16:04:19 +03:00
erorcun
73f1340afb Store all settings in .INI 2021-01-23 15:59:38 +03:00
Nikolay Korolev
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
2814f2e8cf wrong path node array 2021-01-23 12:49:54 +01:00
erorcun
10120eb12f Merge pull request #979 from erorcun/miami
Includes overhaul, fix some compiler warnings
2021-01-23 03:34:15 +03:00
erorcun
f85b5e99ed Includes overhaul, fix some compiler warnings 2021-01-23 03:23:16 +03:00
withmorten
cc6d5374d5 fix config.h 2021-01-22 18:41:58 +01:00
withmorten
1d3e84b712 small premake fix 2021-01-22 16:39:28 +01:00
withmorten
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
withmorten
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
Nikolay Korolev
50cde66067 fix 2021-01-22 00:14:30 +03:00
Nikolay Korolev
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
Sergeanur
c7c7eff918 Get rid of bitfields in CPool
# Conflicts:
#	src/core/templates.h
2021-01-20 19:24:08 +02:00
Sergeanur
3b52b683e3 Sync matrix with master 2021-01-20 19:20:11 +02:00
withmorten
8590457d41 free cam inversion fix 2021-01-20 13:57:03 +01:00
Sergeanur
9b820cc0b6 Fix CFont::PrintStringFromBottom 2021-01-20 14:23:03 +02:00
aap
2c1c5debca pc radar fix 2021-01-19 21:35:25 +01:00
Nikolay Korolev
03cf1e7535 Merge remote-tracking branch 'upstream/miami' into miami 2021-01-19 00:00:12 +03:00
Nikolay Korolev
8b80a8803b fix 2021-01-18 23:59:54 +03:00
aap
d01deec11d wrong ifdef 2021-01-18 20:03:30 +01:00
withmorten
20dabf0b49 fix 2021-01-18 17:30:18 +01:00
withmorten
df4e22e3d0 some free cam fixes for controller 2021-01-18 17:25:31 +01:00
withmorten
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
aap
913a001375 vehicle fixes 2021-01-17 10:00:41 +01:00
Nikolay Korolev
72b25cd3a8 Merge remote-tracking branch 'upstream/miami' into miami 2021-01-16 20:04:41 +03:00
Nikolay Korolev
df98d04d79 fix 2021-01-16 20:04:17 +03:00
Sergeanur
21a6ed247b Use of sized bool types for CFont 2021-01-16 16:06:11 +02:00
Nikolay Korolev
32ab01cd32 consistency fix 2021-01-16 13:42:04 +03:00
Nikolay Korolev
7ea77d8da4 more fix 2021-01-16 13:32:41 +03:00
Nikolay
193fb2a381 fix 2021-01-16 13:24:22 +03:00
Filip Gawin
6bebde8279 Port debug messagess for audio cache 2021-01-16 01:38:18 +01:00
Sergeanur
19749effce Fix Jumbo Sound reseting when walking 2021-01-15 17:54:21 +02:00
withmorten
d5ce8b1ea3 add the bad crack "features" behind SECUROM define 2021-01-14 23:16:42 +01:00
Filip Gawin
7541fa7cb7 Revert extra checks before autolinking 2021-01-14 22:26:36 +01:00
Filip Gawin
5acbf9ef59 fix 2021-01-14 22:20:40 +01:00
Filip Gawin
1082b13830 RE3_NO_AUTOLINK to CMAKE_NO_AUTOLINK 2021-01-14 22:15:36 +01:00
Filip Gawin
a0a88b4663 Merge branch 'miami' of github.com:GTAmodding/re3 into miami 2021-01-14 22:06:43 +01:00
Filip Gawin
c7b905c0ec More checks before autolinking 2021-01-14 22:06:27 +01:00
Nikolay Korolev
0b0d286f5c incoming "fuck" commit 2021-01-14 23:15:12 +03:00
shfil
42df203389 Fix(?) 2021-01-14 18:26:51 +01:00
Filip Gawin
70358d90b4 Backport fix from re3 2021-01-14 15:30:33 +01:00
Filip Gawin
57cc70c6af Update FindX files 2021-01-14 15:22:02 +01:00
Filip Gawin
85f93ef135 Get rid of travis 2021-01-14 15:05:49 +01:00
Filip Gawin
40d3a900a0 Fix 2021-01-14 15:05:27 +01:00
Filip Gawin
7c8933f8c4 Port conan to miami 2021-01-14 15:03:54 +01:00
Nikolay Korolev
6a93cc49be fix 2021-01-14 00:15:45 +03:00
erorcun
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
Nikolay Korolev
9f914dcd10 Merge remote-tracking branch 'upstream/miami' into miami 2021-01-13 22:03:21 +03:00
Nikolay Korolev
daf1de550c fix 2021-01-13 22:02:28 +03:00
withmorten
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
Sergeanur
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
Filip Gawin
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
erorcun
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
erorcun
3553f467b2 move TODO to Readme 2021-01-13 03:50:59 +03:00
erorcun
542a5393ac Fix build without FIX_BUGS, divide to 0 fixes 2021-01-13 03:08:50 +03:00
withmorten
5d4917a5d7 Merge pull request #956 from withmorten/miami
more securom fixes
2021-01-13 00:32:39 +01:00
withmorten
e122a75dd2 more securom fixes 2021-01-13 00:28:51 +01:00
withmorten
2b91af4493 Merge pull request #955 from withmorten/miami
move stuff back into class; securom comments
2021-01-13 00:22:51 +01:00
withmorten
232d990e6d move stuff back into class; securom comments 2021-01-13 00:18:58 +01:00
Sergeanur
92b1e8ab75 More font fixes 2021-01-13 01:01:04 +02:00
Nikolay Korolev
4505b8795a fix 2021-01-13 01:37:25 +03:00
aap
b407f6a011 fix CreateInstance virtual overload order 2021-01-12 23:32:45 +01:00
aap
faab9f4aa4 escalator fix 2021-01-12 23:28:13 +01:00
aap
8858df2185 ProcessWheel bug 2021-01-12 22:58:50 +01:00
aap
0afa027ab4 bug of the decade 2021-01-12 21:28:13 +01:00
Nikolay Korolev
6cfc61ac0e big oof 2021-01-12 20:54:52 +03:00
aap
99a6976f53 colmodel fix 2021-01-12 12:42:29 +01:00
withmorten
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
Sergeanur
7e888a6379 Fix collective commands 2021-01-12 02:29:10 +02:00
aap
afcb794d59 Merge pull request #947 from withmorten/miami
fix CPed struct, GetWantedLevel
2021-01-11 22:46:06 +01:00
Nikolay Korolev
daf5cfe425 Merge remote-tracking branch 'upstream/miami' into miami 2021-01-12 00:43:45 +03:00
Nikolay Korolev
42e4e7c063 fix 2021-01-12 00:43:26 +03:00
Fire-Head
f728c58383 Merge branch 'miami' of https://github.com/GTAmodding/re3 into miami 2021-01-11 21:10:28 +03:00
Fire-Head
e2095bf70b fix explosion jet 2021-01-11 21:10:24 +03:00
Nikolay Korolev
c7052b3d6f fuck 2021-01-11 20:51:18 +03:00
withmorten
4a8a1af885 fix CPed struct, GetWantedLevel 2021-01-11 18:43:04 +01:00
Nikolay Korolev
81b5e66dd4 fixes 2021-01-11 17:18:25 +03:00
erorcun
b5711b21dc Automobile: fix 2021-01-11 01:10:24 +03:00
Sergeanur
585300cd33 More font fix 2021-01-10 22:37:11 +02:00
Fire-Head
adc7127055 fix pickup coronas 2021-01-10 22:24:21 +03:00
aap
ebca91e0d0 update librw 2021-01-10 18:43:44 +01:00
Nikolay
d90de7f13c Merge pull request #943 from x87/miami
Update command definitions
2021-01-10 12:25:18 +03:00
Seemann
c2265e29d2 Update command definitions 2021-01-09 23:59:47 -05:00
aap
e906a807f1 moved new renderer 2021-01-09 18:22:09 +01: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
Sergeanur
322d93ab0c Fix font 2021-01-09 16:55:45 +02:00
aap
e473d234fd cam sector fix 2021-01-09 12:11:34 +01:00
Fire-Head
6b78bab99a Merge branch 'miami' of https://github.com/GTAmodding/re3 into miami 2021-01-09 03:38:39 +03:00
Fire-Head
8e7cce0634 useless fix 2021-01-09 03:37:59 +03:00
Nikolay
b7f9bfda4a fail 2021-01-09 02:41:27 +03:00
Fire-Head
91c6389754 Merge branch 'miami' of https://github.com/GTAmodding/re3 into miami 2021-01-09 01:02:17 +03:00
Fire-Head
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
Sergeanur
faa9e6441b Use original names 2021-01-08 21:53:11 +02:00
Sergeanur
68e8c1ce04 Add multisampling 2021-01-08 20:22:08 +02:00
Sergeanur
c6c55d0130 Train anims in enum 2021-01-08 18:24:53 +02:00
Nikolay Korolev
e92666d988 wtf 2021-01-08 18:57:59 +03:00
aap
8be0567924 little fixes 2021-01-08 13:51:42 +01:00
Nikolay Korolev
824ca7599c wtf 2021-01-08 13:07:36 +03:00
Nikolay Korolev
f8569a74cb fix 2021-01-08 12:59:51 +03:00
aap
d820df0dbe small cleanup 2021-01-08 01:44:19 +01:00
Sergeanur
556b9ae574 Fix gOneShotCol 2021-01-08 00:47:21 +02:00
Sergeanur
24d73aeb71 Fix garage messages position 2021-01-08 00:04:38 +02:00
Sergeanur
debf39fe64 Fix font on green screen counter 2021-01-07 23:47:17 +02:00
Sergeanur
c423c59365 Add MPG123_QUIET to mp3 files 2021-01-07 22:15:55 +02:00
Sergeanur
6b0fa20b8b Make opus available alongside other formats 2021-01-07 22:01:44 +02:00
Sergeanur
0428b5b694 Fix pickup text 2021-01-07 21:55:41 +02:00
Sergeanur
c2672bd630 Fix char in stats 2021-01-07 21:00:20 +02:00
Sergeanur
eecf095077 Add missing GXT line 2021-01-07 20:57:17 +02:00
Nikolay Korolev
9d6db921bd fail 2021-01-07 18:31:54 +03:00
Nikolay Korolev
db1bdfd62d minor refactoring 2021-01-07 18:30:35 +03:00
Sergeanur
0845abf640 Fix 16KHz track 2021-01-07 15:16:24 +02:00
Nikolay
08ddef6a93 Merge pull request #929 from majesticCoding/miami
GET_WHEELIE_STATS fix
2021-01-06 23:04:39 +03:00
majestic
f61e2d04f1 GET_WHEELIE_STATS fix 2021-01-06 11:56:13 -08:00
Sergeanur
0b73b13b9a Cleanup and fixes for new decoders 2021-01-06 20:23:30 +02:00
Filip Gawin
ff9d6e4fd6 Fixes for CVbFile 2021-01-06 18:15:32 +01:00
Filip Gawin
2bcb2a40e4 Small fixes for new wav decoder 2021-01-06 17:57:43 +01:00
Filip Gawin
d9e2b1f0de Remove fastmath from premake's config 2021-01-06 17:24:22 +01:00
Sergeanur
a51757429e Implementing our own WAV decoder to replace SndFile 2021-01-06 15:52:12 +02:00
Sergeanur
bc363a74f5 Add support of PS2 audio streams to OpenAL 2021-01-05 21:06:17 +02:00
erorcun
bafaa6acc6 sand fix 2021-01-05 18:53:00 +03:00
Sergeanur
f639aae2ae Fix chainsaw sound 2021-01-05 13:04:42 +02:00
erorcun
0d3e6a3dce Vehicle: Automobile: more pointless fixes 2021-01-05 04:41:24 +03:00
Sergeanur
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
Nikolay Korolev
a6680e38d5 Merge remote-tracking branch 'upstream/miami' into miami 2021-01-05 00:48:40 +03:00
Nikolay Korolev
6fa081e004 fix 2021-01-05 00:48:25 +03:00
Sergeanur
6753d39dd0 Fix uninitialized filed in cAudioManager 2021-01-04 23:11:31 +02:00
Sergeanur
09c213738b Fix CEntity::UpdateRwFrame 2021-01-04 22:27:51 +02:00
Sergeanur
a346461ea8 Increase number of stream buffers, plus ALStreamSources fix 2021-01-04 22:27:32 +02:00
Sergeanur
4f9bfb4387 Fix missing ifdef 2021-01-04 21:55:41 +02:00
Sergeanur
7adac51152 Handle stereo panning in OAL manually for streams 2021-01-04 20:11:04 +02:00
Nikolay Korolev
601f77b5c8 Merge remote-tracking branch 'upstream/miami' into miami 2021-01-04 21:03:31 +03:00
Nikolay Korolev
2d072325ad fix 2021-01-04 21:03:19 +03:00
Sergeanur
2db0d7cfa1 Double the volume for mission audio in OAL + small fix 2021-01-04 15:08:02 +02:00
erorcun
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
erorcun
22e8202d27 Entity/Physical proof-read 1 2021-01-04 13:41:41 +03:00
Sergeanur
1efbd7ead2 Fix unlimited rotation in Phnom Penh '86 2021-01-04 10:58:12 +02:00
Nikolay Korolev
33f467453e dumb 2021-01-03 23:36:32 +03:00
erorcun
5b081398b5 Frontend: disable windowed mode selector while in game 2021-01-03 22:00:25 +03:00
Nikolay Korolev
21e151cadd hud fix 2021-01-03 20:06:29 +03:00
Nikolay Korolev
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
TheOfficialFloW
0c2ea268d1 Fix typo in ProcessMissionAudioSlot. 2021-01-03 16:56:12 +01:00
Nikolay Korolev
06fd054eb3 fixed intro text line defaults 2021-01-03 18:56:05 +03:00
Sergeanur
2e06e4b6b8 Fix speed of sound 2021-01-03 16:43:58 +02:00
erorcun
c4479a0185 Ped: PlayerPed: fixes 2021-01-03 17:33:50 +03:00
TheOfficialFloW
e46b06491c Fix nFramesForPretendPlaying. 2021-01-03 14:59:16 +01:00
Nikolay Korolev
5e019ed9f8 fixed array size 2021-01-03 13:57:27 +03:00
Nikolay Korolev
29e0cfa98b fix 2021-01-03 12:52:26 +03:00
Sergeanur
9ae3fac08e Fix ServiceTrack 2021-01-03 00:52:30 +02:00
Sergeanur
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
Sergeanur
30bc51ae9e Pad2 fix 2021-01-02 13:42:49 +02:00
erorcun
2268365c3b Vehicle: Automobile: fixes and style things 2021-01-02 14:41:53 +03:00
Sergeanur
42e4a068bb CVarConsole 2021-01-02 13:32:25 +02:00
Sergeanur
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
Filip Gawin
55af046c92 Encode files to UTF-8 2021-01-01 21:07:39 +01:00
Nikolay Korolev
a7f053776a Merge remote-tracking branch 'upstream/miami' into miami 2021-01-01 23:06:44 +03:00
Nikolay Korolev
c75c4603fc bad stuff 2021-01-01 23:06:20 +03:00
aap
ec00a1eb0d rain fix 2021-01-01 18:37:17 +01:00
Sergeanur
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
Nikolay Korolev
4604b45852 Merge remote-tracking branch 'upstream/miami' into miami 2021-01-01 14:53:37 +03:00
Nikolay Korolev
9fd93e8e57 merge master to miami 2021-01-01 14:53:20 +03:00
Sergeanur
4f3e4cd542 Restore some marker code 2021-01-01 12:58:14 +02:00
Sergeanur
ccf6232039 small CWorld fixes 2021-01-01 12:47:22 +02: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
Filip Gawin
9d29b33ff4 Merge branch 'miami' of github.com:GTAmodding/re3 into miami 2020-12-31 22:06:55 +01:00
Filip Gawin
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
Filip Gawin
ed9c288db8 Fix CMoneyMessages::RegisterOne 2020-12-31 21:46:16 +01:00
Nikolay Korolev
a9bf0fa97e Merge remote-tracking branch 'upstream/miami' into miami 2020-12-31 19:30:11 +03:00
Nikolay Korolev
56ea1c7be7 fixed some bugs (saves might be broken though) 2020-12-31 19:29:13 +03:00
shfil
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
Filip Gawin
f77c8990ce Update mss32.lib 2020-12-30 01:46:05 +01:00
shfil
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
Sergeanur
1867a6c47b Add sdk to gitignore
# Conflicts:
#	.gitignore
2020-12-29 20:24:57 +02:00
Filip Gawin
3a59d9075f Move mss dummy headers into vendor 2020-12-29 19:20:36 +01:00
Filip Gawin
a73f5340a2 Remove sdk 2020-12-29 18:59:40 +01:00
Sergeanur
2bc843fdcd More menu error sound fix 2020-12-29 14:03:59 +02:00
Sergeanur
b9e97ab79d Reorder CEntity functions into their original order 2020-12-29 13:55:26 +02:00
Sergeanur
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
Fire-Head
ad560ffaf9 multiple instances sema fix 2020-12-28 23:13:20 +03:00
Sergeanur
5ebcef2718 Use enum in frontend 2020-12-28 20:48:30 +02:00
Sergeanur
6b52fb5fb6 Add shadow to subtitles with cutscene borders off 2020-12-28 15:04:07 +02:00
erorcun
5780200ba3 Fix original wanted stars position 2020-12-28 15:29:21 +03:00
erorcun
7b2f17826a Ped: Real weapon fix 2020-12-28 03:52:23 +03:00
erorcun
d3f2f4f6ac Ped: WeaponInfo: little fixes and renamings 2020-12-28 03:25:26 +03:00
erorcun
2dbe3d5b83 fix 2020-12-27 23:54:21 +03:00
erorcun
9e7cb046b3 move cfo populate func. 2020-12-27 23:46:15 +03:00
erorcun
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
Sergeanur
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
erorcun
904746054c Fix peds running to see dead peds in water 2020-12-27 17:33:32 +03:00
Sergeanur
759f91ce91 Fix drive-by machine gun sound 2020-12-27 10:58:33 +02:00
erorcun
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
Sergeanur
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
Nikolay Korolev
f6fe5c96c9 Merge remote-tracking branch 'upstream/miami' into miami 2020-12-26 12:56:34 +03:00
Nikolay Korolev
149aef929d fixed replay 2020-12-26 12:56:20 +03:00
Sergeanur
3b2558bb9e Add optimize off to fix compiler bug CBike::ProcessControl 2020-12-26 11:54:35 +02:00
erorcun
57098a77ec Backface cull. in INI, mouse sensitivity fix, aspect ratio auto as default 2020-12-26 12:10:04 +03:00
Sergeanur
99a3fe0a13 Fix not being able to hit lying peds with melee weapon 2020-12-26 10:04:26 +02:00
Sergeanur
441b3864f3 cPedParams ctor 2020-12-26 07:53:30 +02:00
Sergeanur
18bea3cfa5 Fix weapon pickup sound 2020-12-26 07:31:53 +02:00
Sergeanur
783d1edaf1 cVehicleParams ctor 2020-12-25 20:27:37 +02:00
Sergeanur
977a1a08e9 Merge pull request #897 from Sergeanur/VC/aud
cAudioManager::ProcessOneShotScriptObject
2020-12-25 20:10:20 +02:00
Sergeanur
90ef1d2d31 cAudioManager::ProcessBoatEngine 2020-12-25 19:59:45 +02:00
Sergeanur
9345efbafb cPedParams fixes 2020-12-25 17:42:40 +02:00
Sergeanur
fa6eb3a64f cAudioManager::ProcessOneShotScriptObject 2020-12-25 17:22:18 +02:00
Sergeanur
587c788ce3 Fix 2020-12-25 17:20:57 +02:00
Sergeanur
356f101078 Fix cAudioManager::ProcessPedOneShots crash 2020-12-25 16:24:20 +02:00
Sergeanur
e00b8a93bf Fix use of strncmp 2020-12-25 15:18:48 +02:00
shfil
dc72729a40 Merge pull request #895 from ShFil119/miami_audio
More audio
2020-12-25 14:02:47 +01:00
Filip Gawin
cf8799d116 More audio enums 2020-12-25 13:51:09 +01:00
Sergeanur
c0be4a3f7d Fix cMusicManager::SetRadioChannelByScript 2020-12-25 12:06:08 +02:00
erorcun
3b85457020 Merge pull request #894 from erorcun/miami
signed/unsigned fixes, and some other fixes
2020-12-25 12:56:31 +03:00
erorcun
a50244dc16 signed/unsigned fixes, and some other fixes 2020-12-25 12:54:41 +03:00
Nikolay Korolev
5f98b4fdca Merge remote-tracking branch 'upstream/miami' into miami 2020-12-25 12:12:09 +03:00
Sergeanur
4846564c78 cMusicManager::ServiceGameMode fix 2020-12-25 11:11:37 +02:00
Nikolay Korolev
86f04884de fix garage 2020-12-25 12:11:22 +03:00
Sergeanur
bf52620175 Fix debug menu memory leak 2020-12-25 10:57:39 +02:00
Sergeanur
e14ed9c7dd Restore original Cheat_strncmp 2020-12-25 10:44:20 +02:00
Sergeanur
74276ae878 More type fix 2020-12-25 09:29:23 +02:00
Sergeanur
1cc8a1d247 Small audio code fix 2020-12-25 09:13:01 +02:00
Sergeanur
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
Sergeanur
0768026938 Fix chainsaw sounds lol 2020-12-25 08:33:43 +02:00
Filip Gawin
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
Filip Gawin
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
shfil
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
erorcun
05fb47bdb0 Fix wrong call on free cam (now it's faster) 2020-12-21 02:36:09 +03:00
erorcun
9b9545b92a Car entering cancel test 2020-12-21 02:06:00 +03:00
erorcun
26aed6611e fix auto duck cancel bug 2020-12-21 01:15:40 +03:00
erorcun
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
Sergeanur
2e90ce9cc5 uncomment InitRadioStationPositionList 2020-12-20 13:41:29 +02:00
Sergeanur
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
Nikolay
867133e93d Merge pull request #891 from Nick007J/miami
merge master to miami
2020-12-19 19:15:52 +03:00
Nikolay Korolev
b6298915dd fixed cmakelists 2020-12-19 16:21:33 +03:00
Nikolay Korolev
196a13b1cc removed renderer stuff 2020-12-19 14:52:32 +03:00
Nikolay Korolev
76a564df2e fixed review stuff 2020-12-19 14:33:22 +03:00
Nikolay Korolev
17efc38e35 removed cullzones stuff from renderer 2020-12-19 12:27:16 +03:00
Nikolay Korolev
bf90fed2b7 fixes 2020-12-19 11:49:19 +03:00
Nikolay Korolev
e3aac6263f Merge remote-tracking branch 'upstream/miami' into miami 2020-12-19 03:21:32 +03:00
Nikolay Korolev
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
Sergeanur
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
Sergeanur
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
erorcun
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
withmorten
ce9eafcd51 sync WaterLevelInit with master, and other small fixes 2020-12-15 21:55:04 +01:00
erorcun
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
Walied K. Yassen
37d3188ce7 Few bug fixes in CAutomobile 2020-12-15 12:20:55 +02:00
Sergeanur
8f2abc6750 fix 2020-12-15 05:11:45 +02:00
Sergeanur
e970e5f246 Use SetMoveState 2020-12-15 04:25:12 +02:00
Sergeanur
ac95138c18 More fixes 2020-12-15 04:16:29 +02:00
Sergeanur
ab3e258f19 SetPedState fixes 2020-12-15 03:25:05 +02:00
erorcun
0f5893ed60 Fix language initialization call order 2020-12-14 02:46:55 +03:00
erorcun
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
Nikolay Korolev
6d61f9d2e1 fixed replay bugs 2020-12-12 23:17:16 +03:00
Nikolay Korolev
bfe382c315 better fix 2020-12-12 21:06:14 +03:00
erorcun
b3f97cdce4 style change 2020-12-12 20:39:34 +03:00
Nikolay Korolev
229b8f304a fixed a bug 2020-12-12 20:37:26 +03:00
Nikolay Korolev
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
IlDucci
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
Nikolay Korolev
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
erorcun
c504cf02e4 Vehicle cam object collision fix 2020-12-09 07:15:04 +03:00
erorcun
95fe5004c8 Fix 2020-12-09 06:36:51 +03:00
erorcun
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
erorcun
ba0c9e8b29 Merge branch 'miami' of https://github.com/GTAmodding/re3 into miami 2020-12-09 06:34:04 +03:00
erorcun
b473adcf80 Frontend cleanup, .INI, CFO, scrollable pages 2020-12-09 06:32:33 +03:00
erorcun
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
Filip Gawin
5a7e62e4a9 Update Readme 2020-12-08 18:47:58 +01:00
Filip Gawin
6ba442577f Add basic clang format file 2020-12-08 18:38:22 +01:00
Filip Gawin
99e54aed80 remove appveyor for now, our bintray account is still locked 2020-12-08 18:33:58 +01:00
Nikolay Korolev
016ff5b4aa sync with upstream 2020-12-08 12:00:24 +03:00
Sergeanur
f3e9c82432 Pool fixes from master 2020-12-08 07:52:03 +02:00
Sergeanur
579efc05fc Fix bike's fInAirXRes 2020-12-08 05:26:48 +02:00
Sergeanur
aae4f3319f Fixes 2020-12-08 03:29:08 +02:00
Sergeanur
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
Sergeanur
64049f0f81 Fix font bug 2020-12-07 22:56:22 +02:00
Sergeanur
4b4f59a5d4 Add texts 2020-12-07 17:09:31 +02:00
withmorten
4c0744260d uint8 enums fixed 2020-12-07 01:59:17 +01:00
withmorten
912e71be53 int8 enums fixed 2020-12-07 01:30:38 +01:00
withmorten
16ed00aede uint16 enums fixed 2020-12-07 01:22:51 +01:00
withmorten
e6a7a9353c uint32 enums fixed 2020-12-07 01:20:14 +01:00
withmorten
7ad86595e4 int32 enum fixed 2020-12-07 01:19:10 +01:00
Walied K. Yassen
190bcf68f3 Implement DAMAGE_EFFECT_SMASH_VEGPALM and code style fixes 2020-12-07 01:11:40 +02:00
Nikolay Korolev
406f646949 pool stuff fix 2020-12-06 21:28:40 +03:00
Nikolay Korolev
17a939e38d quick fix 2020-12-06 19:34:43 +03:00
Nikolay Korolev
f6818f9654 Merge remote-tracking branch 'upstream/miami' into miami 2020-12-06 19:32:07 +03:00
Nikolay
b5cdc33e7c Merge pull request #865 from Nick007J/miami
script from other platforms and unused commands
2020-12-06 19:31:20 +03:00
Nikolay Korolev
fe918d41c2 garages revision + some fixes 2020-12-06 19:30:51 +03:00
Nikolay Korolev
a82188ac07 lil fix 2020-12-05 12:12:56 +03:00
Nikolay Korolev
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
shfil
bee2408413 Fix discord invite 2020-12-03 16:48:36 +01:00
aap
0d166081ad animviewer fixes 2020-12-03 11:30:46 +01:00
erorcun
a37ce3ee9f Merge pull request #863 from erorcun/miami
AnimViewer done, comment cleanup
2020-12-03 13:06:55 +03:00
erorcun
ab3e810a95 AnimViewer done, comment cleanup 2020-12-03 05:22:58 +03:00
erorcun
469deeb141 Merge pull request #861 from erorcun/miami
Stats page
2020-12-03 05:22:42 +03:00
erorcun
8b47774aee Stats page 2020-12-03 02:09:35 +03:00
erorcun
774aa1570f Merge pull request #853 from erorcun/miami
PlayerPed and "Redefine controls" menu done, fixes
2020-12-02 14:35:06 +03:00
erorcun
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
Sergeanur
43d5831394 cAudioManager::ProcessPedOneShots + fixes 2020-12-01 23:38:36 +02:00
Sergeanur
a259b6b8ab TexturePools
# Conflicts:
#	src/core/Game.cpp
#	src/rw/RwHelper.cpp
2020-12-01 22:54:19 +02:00
Sergeanur
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
majestic
cd23695116 skimmer shadow 2020-11-30 23:52:35 -08:00
Sergeanur
5a3a058ed3 Make texture conversion work a bit faster
# Conflicts:
#	src/core/config.h
2020-12-01 03:51:31 +02:00
Sergeanur
16abbad6b2 Add multisampling to librw
# Conflicts:
#	src/core/config.h
#	vendor/librw
2020-12-01 03:42:40 +02:00
withmorten
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
Walied K. Yassen
1dcd7c5b14 Fix the code style issues 2020-11-30 08:36:06 +02:00
Walied K. Yassen
ac7ea2b9fa Implement the missing damage effects and fix the existing ones 2020-11-30 02:09:35 +02:00
Walied K. Yassen
a1ab82b188 Implement MI_BEACHBALL behaviours 2020-11-29 09:14:15 +02:00
Walied K. Yassen
afe70003f4 Fix MI_RCBOMB gravity force and treat MI_PETROLPUMP2 as explosive 2020-11-29 08:53:54 +02:00
Walied K. Yassen
03ef438a72 Fix CObject::DeleteAllTempObjectsInArea not considering the given point 2020-11-29 04:20:28 +02:00
Nikolay Korolev
8cb3c07151 some nasty FIX_BUGS for SLIDE_OBJECT 2020-11-28 21:26:38 +03:00
Zach Charo
b47c505438 Update Script.cpp
Case sensitivity fix. Causes compile issue on linux.
2020-11-28 13:36:38 +02:00
Sergeanur
2e3d5162f7 Readme update 2020-11-27 18:33:59 +02:00
erorcun
53162e23b6 Update README.md 2020-11-27 00:41:29 +03:00
Sergeanur
164f16c85b Some TODOs done in Peds code 2020-11-25 19:39:57 +02:00
Sergeanur
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
Sergeanur
a35b3b4602 Script commands split to original files 2020-11-24 14:06:48 +02:00
erorcun
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
Sergeanur
3289bfaa87 Darkel done 2020-11-22 23:18:35 +02:00
Sergeanur
87e6edd554 Renderer fix 2020-11-22 23:16:21 +02:00
Nikolay
2b53f267a7 one more fix
# Conflicts:
#	src/control/Restart.cpp
2020-11-22 23:13:43 +02:00
Nikolay
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
Sergeanur
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
erorcun
54214dd2c4 Fix mouse lock/high-dpi 2020-11-18 17:42:21 +03:00
Greg V
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
Greg V
4091d00057 Add non-amd64 architectures for bsd 2020-11-18 17:12:57 +03:00
Greg V
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
Greg V
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
Greg V
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
Filip Gawin
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
erorcun
1d600c640a Merge pull request #816 from erorcun/miami
Frontend: Stats, Map, Audio inputs, Radio selector
2020-11-18 01:45:28 +03:00
erorcun
c6f53d25b0 Frontend: Stats, Map, Audio inputs, Radio selector 2020-11-18 00:33:45 +03:00
Sergeanur
e71da86a5c pragma twice 2020-11-16 15:05:29 +02:00
Sergeanur
cdd30f4da5 Move ColStore to collision 2020-11-16 12:49:23 +02:00
Nikolay Korolev
15b7126243 small fix of fix 2020-11-16 12:28:20 +03:00
Nikolay Korolev
0ac621588e small fix 2020-11-16 12:22:55 +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
Sergeanur
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
Nikolay Korolev
26c6908d25 car AI revision 2020-11-14 14:21:56 +03:00
Nikolay Korolev
6682e56f71 small fix 2020-11-13 17:53:03 +03:00
Nikolay Korolev
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
Nikolay Korolev
a3f24d1bbf Merge remote-tracking branch 'upstream/miami' into miami 2020-11-13 13:20:07 +03:00
Nikolay Korolev
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
erorcun
4f8029ad7c Merge branch 'miami' of https://github.com/GTAmodding/re3 into miami 2020-11-12 17:37:04 +03:00
erorcun
b67ed1988f Peds: Remove redundant lines 2020-11-12 17:36:41 +03:00
Nikolay Korolev
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
Nikolay
a76c6b2307 damn 2020-11-11 13:40:11 +03:00
Nikolay
984708dfd3 damn 2020-11-11 13:36:10 +03:00
Nikolay
a8b5303207 Update src/control/Pickups.cpp
Co-authored-by: Sergeanur <s.anureev@yandex.ua>
2020-11-11 13:19:21 +03:00
Nikolay Korolev
35874b5fd2 fix 2020-11-11 12:27:40 +03:00
Nikolay Korolev
a67d4c70d7 Merge remote-tracking branch 'upstream/miami' into miami 2020-11-11 12:22:57 +03:00
Nikolay Korolev
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
Nikolay Korolev
612a6dd06c Merge remote-tracking branch 'upstream/miami' into miami 2020-11-11 00:08:54 +03:00
Nikolay Korolev
ef2089cafb CWorld done 2020-11-11 00:08:32 +03:00
Sergeanur
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
majestic
cf6a9a8341 CGlass indices fix 2020-11-09 06:18:49 -08:00
Sergeanur
51e7f44433 Pickup fix 2020-11-08 22:40:05 +02:00
Sergeanur
23d294fef5 Possibly fix pickup money text 2020-11-08 21:59:13 +02:00
Roman Masanin
fb2173c396 to make Serge and _R4K_ happy 2020-11-08 22:33:30 +03:00
Roman Masanin
363a2c6098 marked stupied code(dotProduct and AudioEvents) 2020-11-08 22:26:14 +03:00
Roman Masanin
0853a47a3f returned bad code, becouse no one knows what to do with it 2020-11-08 21:23:29 +03:00
erorcun
fe5d0c9cdf Font: Hud: Use orig. text dimensions, fix right-align calculations 2020-11-08 20:49:47 +03:00
Roman Masanin
95bd5b073a pointers into referencies! 2020-11-08 20:31:24 +03:00
Roman Masanin
a553ac8716 fix for merge fix 2020-11-08 17:49:10 +03:00
Roman Masanin
f8cc86c227 fix merge 2020-11-08 16:23:20 +03:00
Roman Masanin
23d23f6462 merge upstream 2020-11-08 16:23:05 +03:00
Sergeanur
a2e0373d22 Pickups fix 2020-11-08 15:00:54 +02:00
Sergeanur
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
Filip Gawin
e24513d2ad Sfx audio logic 2020-11-06 18:42:52 +01:00
aap
ee8366adba RwRenderStateGet 2020-11-05 17:46:28 +02:00
Sergeanur
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
Roman Masanin
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
Nikolay Korolev
e473123a6a fixes 2020-11-03 00:07:25 +03:00
Nikolay Korolev
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
Nikolay Korolev
bae6c24209 fix 2020-11-02 15:54:42 +03:00
Roman Masanin
174424c520 fix serviceSoundEffects an cleanup 2020-11-02 12:05:23 +03:00
Roman Masanin
cebf32c46c mark code 2020-11-01 23:38:45 +03:00
Roman Masanin
5ea9285c5b changes in switch, and mark code 2020-11-01 22:42:45 +03:00
Roman Masanin
55c4346610 Merge branch 'miami' of https://github.com/GTAmodding/re3 into miamiDev 2020-11-01 22:35:46 +03:00
Nikolay Korolev
5edd9e75da finished script and replay 2020-11-01 18:21:05 +03:00
Nikolay Korolev
45c09224f7 fixed KYFC 2020-11-01 16:34:39 +03:00
Nikolay Korolev
370d693f9d the driver fix 2020-11-01 15:15:23 +03:00
Nikolay Korolev
63a27fbc5f overflow fix 2020-11-01 13:55:29 +03:00
Sergeanur
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
Sergeanur
20ea2fde84 Also fix SetModelIndex in CAutomobile and CTrain ctors 2020-11-01 09:46:25 +02:00
majestic
c124e7381c CObject::Render 2020-11-01 00:25:35 -07:00
Sergeanur
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
Sergeanur
0e1257cf17 Disable loading screen 2020-10-30 20:32:41 +02:00
Sergeanur
b8d2c4e452 Add VB file list 2020-10-30 10:34:13 +02:00
Filip Gawin
a25005a84c Add option to enable asan
# Conflicts:
#	premake5.lua
2020-10-28 10:10:44 +02:00
Sergeanur
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
Sergeanur
9a3758bfc1 Fix undefined colorId for pickups 2020-10-26 16:39:43 +02:00
Roman Masanin
c3cbf4353d Fix build and use enum in ProcessPlayerMood 2020-10-26 14:02:11 +03:00
Roman Masanin
4bcd176944 fix merge 2020-10-26 00:17:21 +03:00
Roman Masanin
44bbcbd14a merge upstream 2020-10-26 00:16:46 +03:00
Roman Masanin
96ccb1333b cleanup processVehicleOneShots, processVehicleX done 2020-10-26 00:14:59 +03:00
Roman Masanin
04b841c719 processVehicleOneShots 2020-10-26 00:11:04 +03:00
Nikolay Korolev
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
erorcun
0a36629502 Finalize frontend sounds, player setup screen 2020-10-25 18:01:09 +03:00
Roman Masanin
211ab16ddb skiding 2020-10-25 16:14:29 +03:00
erorcun
5b8437172a Fix weapon icon drawing 2020-10-25 15:27:49 +03:00
shfil
62cb4da833 Upload to bintray when creating tags 2020-10-25 12:15:16 +01:00
Sergeanur
6647dd043d Remove redundant includes 2020-10-25 13:08:28 +02:00
Sergeanur
a520243563 cAudioManager::ProcessFrontEnd done 2020-10-25 12:00:57 +02:00
Sergeanur
93b318cfdf DMAudio fixes 2020-10-25 09:42:24 +02:00
erorcun
de09a80a35 Messages fix and update librw 2020-10-25 01:21:18 +03:00
Sergeanur
d1394c6994 Fix WindModifiers 2020-10-24 22:28:44 +03:00
Roman Masanin
a12789c632 Merge branch 'miami' of https://github.com/GTAmodding/re3 into miamiDev 2020-10-24 22:26:56 +03:00
Roman Masanin
63c7df9f09 mark reflections done 2020-10-24 22:26:45 +03:00
Roman Masanin
c4707fe887 fix merging errors 2020-10-24 22:06:45 +03:00
Sergeanur
04845a72bc Model indices edits 2020-10-24 21:33:15 +03:00
Roman Masanin
a9db60a1d9 jumbo 2020-10-24 20:47:03 +03:00
Roman Masanin
beae41b207 fires 2020-10-24 19:43:11 +03:00
erorcun
29a2d810a7 WaterLevel (Beachtoys) 2020-10-24 19:31:18 +03:00
Roman Masanin
19ffb9c8df model heli 2020-10-24 19:24:48 +03:00
Adrian Graber
28fb26f792 Join CdStream threads to wait for them to exit 2020-10-24 18:14:41 +03:00
erorcun
07d1637342 Merge pull request #779 from Sergeanur/VC/Pickups
Pickups Done
2020-10-24 17:56:21 +03:00
erorcun
088065e0a8 Merge pull request #778 from majesticCoding/miami
Fluff done, FireInstantHit fix
2020-10-24 17:56:03 +03:00
erorcun
0913abe616 Merge pull request #780 from Sergeanur/VC/ObjectData
ObjectData
2020-10-24 17:55:40 +03:00
Sergeanur
3d14097bf6 Fix playback of vanilla opus 2020-10-24 16:37:39 +03:00
Roman Masanin
39b7075502 merge Upstream 2020-10-24 14:20:08 +03:00
Sergeanur
a0efb89aa0 more ScriptSounds 2020-10-23 18:35:37 +03:00
majestic
6a89fe401a Fluff done, FireInstantHit fix 2020-10-23 07:51:24 -07:00
Sergeanur
ca497e2cbd ScriptSounds 2020-10-23 16:56:34 +03:00
Sergeanur
1544683bdc Missed nil 2020-10-23 13:23:42 +03:00
Sergeanur
d237bb694b Small CPedModelInfo fixes 2020-10-23 13:11:51 +03:00
Sergeanur
89a7007c6a ObjectData 2020-10-23 08:41:23 +03:00
Sergeanur
281e45ce01 Timer fix 2020-10-23 08:38:36 +03:00
erorcun
08d78fb6ff Timer, main 2020-10-23 04:26:52 +03:00
erorcun
1587815fca satisfy mr.casepath 2020-10-23 04:25:55 +03:00
Sergeanur
1cdc647324 Fix argument type 2020-10-22 22:05:50 +03:00
Sergeanur
ee61f19253 Police Radio + fixes 2020-10-22 12:38:09 +03:00
erorcun
86002b093f EmergencyPed, PedDebug, message fix 2020-10-21 21:27:13 +03:00
Sergeanur
ff2665942e CTempColModels stuff 2020-10-21 21:24:18 +03:00
Sergeanur
2709531f09 Rename CObject flag 2020-10-21 21:14:40 +03:00
Sergeanur
e9a89236a2 Pickups Done 2020-10-21 21:00:13 +03:00
erorcun
0265804003 Cross-platform fix and a little style change 2020-10-21 03:55:35 +03:00
majestic
1fef3e106c Fluff done 2020-10-20 16:03:41 -07:00
majestic
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
majestic
815cc0559e Merge branch 'miami' of https://github.com/GTAmodding/re3 into miami 2020-10-20 15:40:16 -07:00
erorcun
0750f04019 Messages, fix Font 2020-10-20 22:24:56 +03:00
erorcun
42fbe7572e Messages, fix Font 2020-10-20 22:19:05 +03:00
Roman Masanin
0594ed5b46 peds 2020-10-18 23:03:03 +03:00
Nikolay Korolev
a1112183de fix 2020-10-18 22:53:25 +03:00
Nikolay Korolev
6173e1dd10 fix 2020-10-18 22:52:49 +03:00
Nikolay Korolev
e2c29a3b28 fix 2020-10-18 22:15:44 +03:00
Nikolay Korolev
fb80236214 fixed ped attractor crash 2020-10-18 21:17:37 +03:00
Nikolay Korolev
bc42b3a78e Merge remote-tracking branch 'upstream/miami' into miami 2020-10-18 20:35:19 +03:00
erorcun
1858904ce0 Merge pull request #769 from Sergeanur/VC/Pickups
Partial Pickups
2020-10-18 20:01:32 +03:00
erorcun
10758088ef Merge pull request #766 from Fire-Head/miami
Glass
2020-10-18 19:59:11 +03:00
erorcun
4bfc75c2f9 Merge pull request #763 from theR4K/miami
SpecialFX
2020-10-18 19:57:47 +03:00
erorcun
70f9832e14 Merge branch 'miami' into miami 2020-10-18 19:45:11 +03:00
erorcun
497c179245 Merge pull request #772 from Nick007J/miami
Original save/load support + bugfixes
2020-10-18 19:37:49 +03:00
erorcun
20ab7d1739 Merge branch 'miami' of https://github.com/GTAmodding/re3 into miami 2020-10-18 19:31:39 +03:00
erorcun
937290db09 Fix attractor even more 2020-10-18 19:31:02 +03:00
Nikolay Korolev
d7789661cd Merge remote-tracking branch 'upstream/miami' into miami 2020-10-18 17:30:51 +03:00
Sergeanur
8697eebbc2 Merge branch 'miami' into VC/Pickups
# Conflicts:
#	src/control/Pickups.cpp
2020-10-18 17:17:11 +03:00
Sergeanur
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
erorcun
1b59b2c9bc Attractor obj. fixes 2020-10-18 16:38:36 +03:00
Nikolay Korolev
8d92a0681a fix in ped attractor 2020-10-18 15:39:27 +03:00
eray orçunus
ab071163e5 Fix ped buoyancy 2020-10-18 14:34:20 +03:00
eray orçunus
f60e3d667a Minor things 2020-10-18 13:53:17 +03:00
shfil
cafe4e38db Script.cpp missing breaks 2020-10-18 13:37:17 +03:00
Nikolay Korolev
c856d88691 object field renamed 2020-10-18 12:34:34 +03:00
Sergeanur
b3385015e5 Merge remote-tracking branch 'origin/miami' into VC/Pickups 2020-10-18 04:54:01 +03:00
Roman Masanin
1e3aabf654 fix bugs 2020-10-17 21:30:48 +03:00
Nikolay Korolev
720abca826 finished save/load 2020-10-17 20:45:07 +03:00
Roman Masanin
3cbccd2ad3 typo fixes 2020-10-17 19:05:41 +03:00
Nikolay Korolev
cae3990eac Merge remote-tracking branch 'upstream/miami' into miami 2020-10-17 18:50:41 +03:00
Nikolay Korolev
1195f3db7b saves part 1 2020-10-17 18:50:16 +03:00
erorcun
4e4e0e8e04 Merge pull request #765 from erorcun/miami
Radar, WaterCannon, win/glfw skels
2020-10-17 18:39:56 +03:00
Sergeanur
588fb26728 Fix player model not changing in cutscenes 2020-10-17 18:26:48 +03:00
eray orçunus
dc80884ab5 Fix management issue 2020-10-17 18:07:20 +03:00
Sergeanur
e465cea07b Pickup arrays done 2020-10-17 18:05:23 +03:00
eray orçunus
b98864d134 Radar, WaterCannon, win/glfw skels 2020-10-17 17:35:26 +03:00
Sergeanur
7fc70179ed Pickup save/load 2020-10-17 17:06:38 +03:00
Roman Masanin
eeee5012b7 model cars and other audio stuff 2020-10-17 16:57:36 +03:00
Sergeanur
7f3b51dd17 Small inner fix 2020-10-17 16:04:11 +03:00
Sergeanur
63666391d4 More Pickup stuff 2020-10-17 15:57:12 +03:00
Nikolay Korolev
0cf2c8505e cranes done 2020-10-17 14:18:20 +03:00
Nikolay Korolev
40434eadfd small fix 2020-10-17 12:31:14 +03:00
Sergeanur
ef47dad566 Partial Pickups 2020-10-17 08:23:01 +03:00
Roman Masanin
97fc5224e7 road noise 2020-10-17 02:22:02 +03:00
Roman Masanin
894a1ae93a siren and horn 2020-10-17 00:27:28 +03:00
Nikolay Korolev
000c5edc4a Merge remote-tracking branch 'upstream/miami' into miami 2020-10-15 22:52:01 +03:00
Roman Masanin
63c2b98c5e fix build 2020-10-15 16:04:03 +03:00
Roman Masanin
34b4efe242 fix bullet traces rener and some renaming 2020-10-15 15:42:10 +03:00
Fire-Head
e4ac934dbf Miami Glass 2020-10-15 00:33:57 +03:00
eray orçunus
7bf2373fed update librw 2020-10-14 18:04:58 +03:00
Nikolay Korolev
2634d3b427 Merge remote-tracking branch 'upstream/miami' into miami 2020-10-14 15:05:11 +03:00
erorcun
971b7cba65 Merge pull request #761 from erorcun/SampleMan
SampleManager
2020-10-13 13:18:49 +03:00
shfil
3b40e003ab Fix typo in fire.cpp 2020-10-12 22:51:49 +02:00
Sergeanur
6450fd2692 Fix zone saving on 64 bit 2020-10-12 22:54:46 +03:00
erorcun
1e11c1eac6 Merge pull request #762 from Nick007J/miami
Control update
2020-10-12 21:52:59 +03:00
Roman Masanin
a4fd1a9f39 sirenes and more marks for audio. also fix cAudioMrg size 2020-10-12 20:55:19 +03:00
erorcun
4e07297503 Update sampman_miles.cpp 2020-10-12 20:51:52 +03:00
eray orçunus
342da2430b Merge branch 'miami' of https://github.com/GTAmodding/re3 into new 2020-10-12 20:47:34 +03:00
eray orçunus
be6b97b5d8 Streaming and cross-platform fixes 2020-10-12 20:30:49 +03:00
eray orçunus
d18a55f429 SampleManager 2020-10-12 20:22:39 +03:00
Roman Masanin
e34261d3ef mark some audio stuff and fix frameCounter 2020-10-12 18:09:58 +03:00
Nikolay Korolev
d3788a9c70 Merge remote-tracking branch 'upstream/miami' into miami 2020-10-12 13:57:25 +03:00
Roman Masanin
417646819c Merge branch 'miami' of https://github.com/GTAmodding/re3 into miami 2020-10-12 13:42:57 +03:00
Roman Masanin
56bb7d721a mark file and fix screen offset 2020-10-12 13:41:57 +03:00
Roman Masanin
e6a1ea9d4f CBrightLight::render 2020-10-12 13:28:06 +03:00
erorcun
96f36d16ae Merge pull request #753 from majesticCoding/miami
CWaterCreatures
2020-10-12 12:37:47 +03:00
eray orçunus
40020f4e1e Fix forgotten wanted/busted text 2020-10-12 12:36:15 +03:00
eray orçunus
b1e235535c Cutscene aspect ratio fix 2020-10-12 12:16:24 +03:00
Nikolay Korolev
49c48f2ec2 sync with upstream 2020-10-12 12:11:53 +03:00
erorcun
9e0b23f065 Merge pull request #758 from erorcun/miami
Hud, Fire, OnscreenBlaBla
2020-10-12 11:13:46 +03:00
eray orçunus
8a622a0e72 Hud, Fire, OnscreenBlaBla 2020-10-12 06:42:54 +03:00
Sergeanur
239e09ad07 Merge pull request #759 from Sergeanur/VC/ZoneSaveLoad
Zones saving and loading
2020-10-12 04:16:30 +03:00
Roman Masanin
ca1d899413 final step 2020-10-11 22:29:49 +03:00
Roman Masanin
7a3e1ef19a SpecialFX almost done 2020-10-11 21:40:11 +03:00
Nikolay Korolev
28b47b601f fix 2020-10-11 18:14:35 +03:00
Nikolay Korolev
91a274da2b small fix 2020-10-11 13:11:25 +03:00
Nikolay Korolev
68779a4dac small fix 2020-10-11 13:05:41 +03:00
Nikolay Korolev
49ad471b2d removed extra header 2020-10-11 12:58:23 +03:00
Nikolay Korolev
552f308e9e sync with upstream 2020-10-11 12:58:11 +03:00
Nikolay Korolev
c4d4821327 Control updates 2020-10-11 12:56:33 +03:00
Sergeanur
a5ea709edc Merge pull request #760 from Sergeanur/VC/TextFinish
Finish Text stuff
2020-10-11 10:42:19 +03:00
Sergeanur
b0becb5a2d UnicodeMakeUpperCase move + arg fix 2020-10-11 10:39:04 +03:00
Sergeanur
9dba2386bb Merge branch 'master' into VC/TextFinish
# Conflicts:
#	src/text/Text.cpp
2020-10-11 10:34:47 +03:00
Sergeanur
43af5d9c1f Merge branch 'miami' into VC/TextFinish 2020-10-11 10:33:56 +03:00
majestic
e7ef45a606 CWaterCreatures 2020-10-10 17:49:54 -07:00
Sergeanur
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
Sergeanur
6fe6d0cb9a Finish Text stuff 2020-10-11 00:56:16 +03:00
Sergeanur
dd039677a0 Zones saving and loading 2020-10-10 23:50:00 +03:00
Nikolay
63611408b1 bug fix 2020-10-10 18:19:49 +03:00
Roman Masanin
881db86895 CSpecialFX and some other classes 2020-10-09 20:29:38 +03:00
eray orçunus
a01b14f301 Fix sniper and water creatures bug, mark some files 2020-10-09 12:24:21 +03:00
majestic
c091a5c11a CWaterCreatures 2020-10-08 19:28:31 -07:00
eray orçunus
ed82c55475 Fix POSIX streaming 2020-10-09 02:19:49 +03:00
eray orçunus
570ccb7db1 Merge branch 'miami' of https://github.com/GTAmodding/re3 into new 2020-10-08 22:45:37 +03:00
erorcun
b3b21e0af3 Merge pull request #756 from erorcun/miami
Fixes, some thanks to ASan
2020-10-08 22:44:32 +03:00
eray orçunus
73a3e9d5bb Fixes, some thanks to ASan 2020-10-08 22:41:51 +03:00
erorcun
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
Roman Masanin
e52c5ca1bb fix for wheelie cras 2020-10-08 20:34:59 +03:00
majestic
9a10501698 Merge branch 'miami' of https://github.com/GTAmodding/re3 into miami 2020-10-08 09:31:57 -07:00
eray orçunus
a252e3a02a update librw 2020-10-08 18:47:41 +03:00
Filip Gawin
6bae5a6031 Fix unsigned comparison in CStreaming::MakeSpaceFor(int32 size) 2020-10-08 18:45:07 +03:00
eray orçunus
fec01aeff1 Fix some sanitizer errors, improve POSIX streamer 2020-10-08 17:58:18 +03:00
Andrew Udvare
1a3e254b6c CdStreamPosix: fix type issues 2020-10-08 17:53:32 +03:00
Andrew Udvare
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
Andrew Udvare
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
Andrew Udvare
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
erorcun
3435d6656c Merge pull request #748 from theR4K/miamiUpstream
CExplosion and some audio
2020-10-08 16:15:18 +03:00
majestic
7861992fe6 CWaterCreatures 2020-10-08 05:59:08 -07:00
majestic
f5e6a3a274 Merge branch 'miami' of https://github.com/GTAmodding/re3 into miami 2020-10-07 18:07:15 -07:00
erorcun
fa373c7fdb Merge branch 'miami' into miami 2020-10-08 01:29:35 +03:00
erorcun
8b7bf76260 Merge pull request #735 from theR4K/miami
car fly cheat enhancement
2020-10-08 00:59:10 +03:00
eray orçunus
da39624f1c Pad, BulletInfo, ProjectileInfo, fixes 2020-10-08 00:26:24 +03:00
majestic
6556dc1fdf Merge branch 'miami' of https://github.com/GTAmodding/re3 into miami 2020-10-05 13:14:49 -07:00
Roman Masanin
a6a1de5006 rename var 2020-10-05 19:05:13 +03:00
Filip Gawin
e3571510ae Fix build on clang 2020-10-05 17:40:44 +02:00
Roman Masanin
4fd93fea51 fix mistakes 2020-10-05 17:24:57 +03:00
Roman Masanin
e3273d7268 CExplosion done 2020-10-05 16:14:48 +03:00
majestic
fd0602a9ac Merge branch 'miami' of https://github.com/GTAmodding/re3 into miami 2020-10-05 04:44:02 -07:00
eray orçunus
6f3f581d8a Fix Audio 2020-10-05 13:59:40 +03:00
Roman Masanin
4867d9949d some audio and part of CExplosion 2020-10-05 03:04:35 +03:00
eray orçunus
49ae7da5ce Fix Linux audio path 2020-10-05 01:25:56 +03:00
Roman Masanin
1b3144f978 back to the future style wheels on flying 2020-10-04 19:03:34 +03:00
Roman Masanin
063a80ecfb now BETTER_ALLCARSDODO_CHEAT tweak original cheat to be useful. 2020-10-03 02:26:49 +03:00
Roman Masanin
55d94c99b8 Merge remote-tracking branch 'upstream/miami' into miami 2020-10-03 01:52:37 +03:00
majestic
3a2be9a4ed Merge branch 'miami' of https://github.com/GTAmodding/re3 into miami 2020-10-02 13:43:29 -07:00
shfil
9d53b738cc Merge pull request #737 from theR4K/miamiDev
just ProcessActiveQueues
2020-10-02 20:11:00 +02:00
Nikolay Korolev
8761763d95 fixed cargen check 2020-10-02 20:43:24 +03:00
Roman Masanin
1991f9b362 revert some changes and little fix 2020-10-02 20:35:16 +03:00
erorcun
72f342245d Merge pull request #731 from erorcun/miami
Population done, mouse AUX buttons, Frontend, Hud, fixes
2020-10-02 17:39:15 +03:00
Roman Masanin
6ff138ca76 fix build(bcs func CheckForAnAudioFileOnCD not used anymore) 2020-10-02 05:03:29 +03:00
Roman Masanin
064f2e66e1 letter 'c' is done 2020-10-02 04:59:06 +03:00
Roman Masanin
e5a48faf89 merged from upstream 2020-10-02 04:03:17 +03:00
Roman Masanin
63e5faef11 rewieved some audio functions 2020-10-02 03:55:26 +03:00
Roman Masanin
e54b540bd4 final processActiveQueues 2020-10-02 00:11:51 +03:00
Roman Masanin
311cffa901 second pass processActiveQueues 2020-10-01 23:48:35 +03:00
Roman Masanin
eb0e89d3ea half done processActiveQueues 2020-10-01 23:11:20 +03:00
majestic
2f9dd8bad9 Merge branch 'miami' of https://github.com/GTAmodding/re3 into miami 2020-10-01 05:02:53 -07:00
Roman Masanin
049c993ce0 fix ternary operator 2020-10-01 02:45:24 +03:00
Roman Masanin
fe46aa5cc2 better flying cars, some refractoring and fixes 2020-10-01 02:20:09 +03:00
Filip Gawin
4ec5e44b68 Mark audio code which is the same in re3 as done 2020-09-30 18:14:50 +02:00
Nikolay Korolev
0a58e3e430 fixed bad bug 2020-09-30 16:25:21 +03:00
Nikolay Korolev
4c582b19eb Merge remote-tracking branch 'upstream/miami' into miami 2020-09-30 15:19:55 +03:00
Nikolay Korolev
6068188453 Merge remote-tracking branch 'upstream/miami' into miami 2020-09-30 15:19:37 +03:00
Roman Masanin
db0758690e new implementation for car fly enhancment 2020-09-30 13:37:43 +03:00
majestic
d4efd003bc Merge branch 'miami' of https://github.com/GTAmodding/re3 into miami 2020-09-30 03:13:32 -07:00
eray orçunus
f740588780 Merge branch 'miami' of https://github.com/GTAmodding/re3 into miami 2020-09-30 02:44:02 +03:00
eray orçunus
f71953077d Population and many small classes done, mouse AUX buttons, Frontend, Hud, fixes 2020-09-30 02:41:42 +03:00
Sergeanur
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
Filip Gawin
73e4350320 Use Const instead of const (last commit) 2020-09-30 02:19:04 +03:00
Filip Gawin
6c59d97520 Fix warning ISO C++11 does not allow conversion from string literal to
'char *
2020-09-30 02:18:55 +03:00
Filip Gawin
855c6a3c05 Fix build (if -> ifdef) 2020-09-30 02:18:46 +03:00
Filip Gawin
ff2998bee3 Make frequency more consistent with vanilla 2020-09-30 02:18:38 +03:00
Sergeanur
2129cc2906 Fix arg types 2020-09-30 02:18:11 +03:00
Nikolay Korolev
9cce324316 fixed cargen
# Conflicts:
#	src/vehicles/CarGen.cpp
2020-09-30 02:18:03 +03:00
shfil
f35fd97c76 Merge pull request #722 from theR4K/master
fix for frequency miscalculation
2020-09-30 02:17:14 +03:00
Filip Gawin
35656fe0e8 Add target arm64
# Conflicts:
#	premake5.lua
2020-09-30 02:16:50 +03:00
shfil
35d7591def some SilentPatch fixes
# Conflicts:
#	src/core/Camera.cpp
#	src/weapons/Weapon.cpp
2020-09-30 02:14:10 +03:00
erorcun
f9dc00a458 Merge pull request #718 from Nick007J/miami
VC replays
2020-09-29 23:00:50 +03:00
erorcun
1fa852f118 Merge pull request #727 from erorcun/miami
Restore All Cars are Heli cheat
2020-09-29 22:42:08 +03:00
eray orçunus
7646ceeaaa Merge branch 'miami' of https://github.com/GTAmodding/re3 into miami 2020-09-29 02:30:48 +03:00
eray orçunus
a0588ef8b1 Restore All Cars are Heli cheat 2020-09-29 02:29:10 +03:00
erorcun
e2314c7852 Merge pull request #717 from theR4K/miami
Helicopters not ringing, and other audio stuff
2020-09-29 01:48:11 +03:00
Roman Masanin
a729f32c83 TEMPORALY remove flying cars 2020-09-29 01:39:59 +03:00
Roman Masanin
a5269b998b reverse compare 2020-09-28 21:11:24 +03:00
Roman Masanin
c317d3d9b1 tiny style fix 2020-09-28 21:09:06 +03:00
shfil
bc0bdd02f4 Merge pull request #721 from theR4K/miamiUpstream
fix for original bug in flying cars cheat
2020-09-28 20:07:14 +02:00
Roman Masanin
ca73f0344c fixed original bug, when heli go ma if cars fly cheat activated 2020-09-28 01:38:05 +03:00
Roman Masanin
b956be0f44 another clamp 2020-09-27 04:22:59 +03:00
Roman Masanin
f67275be13 correction of defects and another two audio functions 2020-09-27 03:35:15 +03:00
eray orçunus
a5d6c952a7 Credits & fixes 2020-09-27 02:36:49 +03:00
Sergeanur
4cfc61da14 Use enums in aVehicleSettings 2020-09-27 02:26:35 +03:00
Roman Masanin
c403df0861 processEngineDamage 2020-09-27 02:03:36 +03:00
Roman Masanin
bb2e601e13 Merge remote-tracking branch 'upstream/miami' into miami 2020-09-26 21:38:37 +03:00
Nikolay Korolev
c5699a9b30 now fixed properly 2020-09-26 21:35:09 +03:00
Nikolay Korolev
3c5624bc56 fixed tabs 2020-09-26 21:16:55 +03:00
Nikolay Korolev
f7d5021ac5 VC replays 2020-09-26 21:10:23 +03:00
Roman Masanin
4c220b1f95 return bridge, crane and fix structures in fluff.h 2020-09-26 21:07:51 +03:00
Roman Masanin
356c50ec1e mark completed functions in audioManager.h 2020-09-26 20:50:51 +03:00
Roman Masanin
ec8ac117ed Improve dodo cheat to allow fly on cars 2020-09-26 20:36:07 +03:00
Roman Masanin
c61160fee3 small fixes and cleanup 2020-09-26 20:24:25 +03:00
Roman Masanin
1bd497effc complete cleanup heli and flatTyre 2020-09-26 14:32:14 +03:00
Sergeanur
4d1182bdb1 Fix coronas reflections 2020-09-26 14:24:21 +03:00
Roman Masanin
e256eaf014 cleanup carHeli 2020-09-26 05:41:10 +03:00
Sergeanur
dd93a90ab2 Fix MASTER build with glfw 2020-09-26 05:14:24 +03:00
Roman Masanin
a75ddd0d0c processVehicleOneShots for heli, and heli blade fix 2020-09-26 04:10:00 +03:00
Sergeanur
c3d7a73c0b Fix OpenGL Z-write
# Conflicts:
#	src/core/main.cpp
2020-09-26 00:26:43 +03:00
Roman Masanin
6e3523d594 flat tyre and minimal refractoring 2020-09-25 23:27:28 +03:00
Roman Masanin
4d1023ca30 safe before clean up 2020-09-25 04:57:11 +03:00
Roman Masanin
f097b9c972 fix deaddodo 2020-09-25 03:10:11 +03:00
Roman Masanin
4414288b86 remove anther goto 2020-09-25 02:30:51 +03:00
Roman Masanin
b3cbe3d338 removed some goto 2020-09-25 02:17:58 +03:00
Roman Masanin
1d22c78f9f processCarHeli half done 2020-09-25 01:43:19 +03:00
guyE
01845812a1 Experiment 2020-09-24 12:45:45 +03:00
eray orçunus
dbc458a4d7 CPed and CCivilianPed funcs done 2020-09-24 01:54:37 +03:00
Sergeanur
288f99d507 Add .gitattributes for better language stats 2020-09-23 16:09:46 +03:00
Roman Masanin
b2e3d90734 ProcessEscalators + some fixes 2020-09-22 19:32:05 +03:00
Sergeanur
a043902d9a Merge pull request #703 from Nick007J/miami
script fixes + LCS cheat
2020-09-22 15:38:50 +03:00
Roman Masanin
a9c3fdd63f rewisited:
ProcessReverseGear
ProcessWeather
ProcessScriptObject
ProcessExtraSounds
ProcessEntity
and so, more info in my repo
2020-09-22 03:28:14 +03:00
Sergeanur
bde17bb395 Merge pull request #706 from theR4K/miami
Miami
2020-09-21 19:55:51 +03:00
Roman Masanin
579d96534d fix enum edditing effects for oal target and small improvements 2020-09-21 03:21:17 +03:00
Roman Masanin
0f119ed371 cleanup processVehicleEngine and some fixes 2020-09-21 02:49:35 +03:00
Roman Masanin
5b9e4c4780 some style and bug fixes, updated sfx enum, and implemented processVehicleEngine 2020-09-21 01:55:22 +03:00
shfil
3bad82db3b Fix build (renamed var name in definiton file) 2020-09-19 20:45:57 +02:00
Sergeanur
ec2f4fde93 Fixes to MusicManager 2020-09-19 16:40:30 +03:00
Roman Masanin
223cd11835 just more cleanup... 2020-09-18 20:32:25 +03:00
Roman Masanin
5f810ff21c cleanup processVehicle 2020-09-18 19:14:36 +03:00
Roman Masanin
7f77e8a441 cleanup processPlayerVehicleEngine 2020-09-18 19:11:28 +03:00
Roman Masanin
3ab01fa6a3 fix conditions for processPlayerVehicleEngine 2020-09-18 18:11:49 +03:00
Roman Masanin
c19c5ca083 Merge branch 'miami' of https://github.com/GTAmodding/re3 into miami 2020-09-15 23:24:22 +03:00
Roman Masanin
2d3d5d67ee revisit processVehicle 2020-09-15 22:06:18 +03:00
Sergeanur
dff49e9c23 Fix RotateY 2020-09-15 00:31:32 +03:00
Roman Masanin
97550b4fd9 Merge branch 'miami' of https://github.com/GTAmodding/re3 into miami 2020-09-14 21:47:15 +03:00
Roman Masanin
16dab00bec finish work on ProcessPlayerVehicleEngine and cleanup 2020-09-14 21:47:00 +03:00
Sergeanur
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
Roman Masanin
8f948228d5 Merge branch 'miami' of https://github.com/GTAmodding/re3 into miami 2020-09-13 21:45:53 +03:00
Roman Masanin
aa2f1b6b29 vehicle audio(first part) and temp fix for openAL 2020-09-13 21:45:42 +03:00
Nikolay Korolev
084efb1f14 Merge remote-tracking branch 'upstream/miami' into miami 2020-09-13 12:06:44 +03:00
Sergeanur
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
Nikolay Korolev
e5faeea2e5 wall climb cheat from LCS 2020-09-11 18:46:16 +03:00
Nikolay Korolev
f0b15ee053 Merge remote-tracking branch 'upstream/miami' into miami 2020-09-11 16:39:35 +03:00
erorcun
e9a7ab789d Merge pull request #701 from erorcun/miami
Peds objectives and wait states done, fixes
2020-09-10 03:21:23 +03:00
Sergeanur
bc0a97af04 Add missing file 2020-09-10 01:08:44 +03:00
Sergeanur
f6c0bcf201 Fix getter types 2020-09-10 00:57:14 +03:00
Sergeanur
7aca08a954 player mood enum 2020-09-10 00:32:51 +03:00
Sergeanur
c5b411c1ed Fix crash on assert 2020-09-09 22:36:53 +03:00
Sergeanur
f0ccbcb281 CStats::PopulateFavoriteRadioStationList 2020-09-09 20:37:36 +03:00
Sergeanur
4f4b1f9145 cMusicManager, cDMAudio, radio position save/load, a few commands implemented 2020-09-09 19:37:44 +03:00
erorcun
350b1ec67e Merge pull request #698 from majesticCoding/miami
cheats, fixes, cosmetic changes
2020-09-06 10:14:55 +03:00
eray orçunus
3f402d23ff Peds objectives and wait states done, fixes 2020-09-05 20:28:50 +03:00
Sergeanur
9b47625115 More stinger fix 2020-09-02 21:03:02 +03:00
Sergeanur
fa7334c74f Stinger fixes 2020-09-02 20:55:28 +03:00
Nikolay Korolev
3e4f7b7bdf fixes 2020-09-02 14:13:52 +03:00
eray orçunus
16e10d788a Enable Stinger 2020-09-01 21:10:35 +03:00
majestic
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
Sergeanur
3bb0e78e1c Rename vars 2020-09-01 12:35:59 +03:00
Sergeanur
6778640b52 Rename states 2020-08-31 21:35:26 +03:00
Sergeanur
df67c73d81 vars rename 2020-08-31 21:21:50 +03:00
Sergeanur
024f0a5027 use SetOrientation 2020-08-31 21:15:04 +03:00
Sergeanur
8a0a29c64e Stinger done 2020-08-31 21:09:48 +03:00
Nikolay Korolev
647ddfa05e more fix 2020-08-31 17:18:37 +03:00
Nikolay Korolev
4ffca8954f Merge remote-tracking branch 'upstream/miami' into miami 2020-08-31 00:07:38 +03:00
Nikolay Korolev
ed799fb555 script inaccuracy 2020-08-31 00:07:29 +03:00
erorcun
b7456c604d Merge pull request #697 from erorcun/miami
CGame done, Peds, fixes
2020-08-30 23:24:39 +03:00
Fire-Head
c22d252246 fix melee car damage 2020-08-30 17:50:03 +03:00
eray orçunus
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
Fire_Head
a8999bbf38 Merge pull request #1 from GTAmodding/miami
Miami
2020-08-27 20:35:14 +03:00
Fire-Head
210c7b8785 bike shooting fix + trace temp fix 2020-08-27 20:27:28 +03:00
Fire-Head
a38702a7d2 weapons 2020-08-27 19:52:43 +03:00
Nikolay Korolev
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
Sergeanur
963e85f047 Fix 2020-08-24 23:01:51 +03:00
Sergeanur
14ed50a559 Remote done 2020-08-24 22:52:07 +03:00
Sergeanur
041d342faf PlayerSkin done 2020-08-24 22:37:38 +03:00
Sergeanur
85cf043e4a Compilation fix 2020-08-24 22:14:05 +03:00
Sergeanur
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
Sergeanur
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
Nikolay Korolev
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
majestic
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
Sergeanur
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
Sergeanur
dab6d6dd6d Merge remote-tracking branch 'origin/miami' into miami
# Conflicts:
#	src/core/config.h
2020-08-19 23:35:10 +03:00
Sergeanur
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
Nikolay Korolev
1c275695c4 fix submodules 2020-08-16 18:49:27 +03:00
Nikolay Korolev
cc66df18ac Merge remote-tracking branch 'upstream/miami' into miami 2020-08-16 18:41:17 +03:00
Nikolay Korolev
d303c33c2e CarCtrl finished, minor Script things 2020-08-16 18:39:11 +03:00
eray orçunus
980dd1b5a1 2 new opcodes 2020-08-16 17:10:59 +03:00
Nikolay Korolev
7669b97ac6 sync with upstream 2020-08-16 14:46:20 +03:00
Nikolay Korolev
b612e84be8 submodule 2020-08-15 18:58:33 +03:00
Sergeanur
9956b27767 Merge branch 'master' into miami
# Conflicts:
#	src/control/Darkel.cpp
#	src/core/main.cpp
2020-08-15 15:13:46 +03:00
erorcun
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
eray orçunus
8b3ca9564b Continue to Frontend, fix savegame list bug 2020-08-14 22:44:12 +03:00
eray orçunus
f403a63a5c Wheelie opcode 2020-08-14 18:54:01 +03:00
Sergeanur
56388472cb Remove III files 2020-08-14 15:25:02 +03:00
Sergeanur
0ae41be16b Merge remote-tracking branch 'origin/master' into miami
# Conflicts:
#	librw
2020-08-14 14:35:54 +03:00
Sergeanur
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
eray orçunus
80a83d48f3 Guardian Angels fix 2020-08-14 02:41:18 +03:00
eray orçunus
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
majestic
2d1b48267d improved mission switcher 2020-08-10 14:04:33 -07:00
Sergeanur
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
majestic
70029752f5 CWindModifiers 2020-08-09 21:42:12 -07:00
majestic
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
Fire-Head
d2d8bea51e rem pobj assert 2020-08-09 01:30:57 +03:00
Fire_Head
dbaeaa45cf Merge pull request #682 from Fire-Head/miami
static shadows fix, cutscene shadows switches
2020-08-08 18:15:51 +03:00
Fire-Head
1a72701903 Revert "little emergecy fix for shadows with librw"
This reverts commit 658f94f155.
2020-08-08 18:14:01 +03:00
Fire-Head
265b07a8d9 Update Ped.cpp 2020-08-08 18:04:46 +03:00
Fire-Head
d2e090317f static shadows fix, cutscene shadows switches 2020-08-08 15:06:45 +03:00
Nikolay Korolev
db406e3c82 submodules 2020-08-08 13:07:55 +03:00
Sergeanur
0328cb04d7 build fix 2020-08-07 20:07:57 +03:00
Sergeanur
2d9b898271 more rename for reVC 2020-08-07 19:59:32 +03:00
Sergeanur
b5cd52b9b3 rename for reVC 2020-08-07 19:58:21 +03:00
Sergeanur
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
Sergeanur
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
Fire_Head
6fcc75032e Update CutsceneShadow.h 2020-08-05 17:13:21 +03:00
Fire-Head
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
majestic
394134f774 CEscalators done 2020-08-03 15:31:42 -07:00
Sergeanur
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
erorcun
bda383c9cd Merge pull request #669 from erorcun/miami
new opcodes, buyable properties, minor fixes
2020-08-01 17:58:54 +03:00
Fire-Head
f6663b01bc Update CutsceneShadow.h 2020-07-31 21:34:52 +03:00
Fire-Head
224fd77641 NULL -> nil 2020-07-31 21:21:58 +03:00
eray orçunus
eafa9cc107 new opcodes, buyable properties, minor fixes 2020-07-30 15:32:34 +03:00
Fire-Head
e2ded2d6ce cutsceneshadow fixes 2020-07-30 01:32:21 +03:00
eray orçunus
4a55f19761 Fix Win32 OAL build 2020-07-29 19:24:17 +03:00
Sergeanur
9df1d08348 Fixes after merge 2020-07-29 15:41:00 +03:00
Sergeanur
86cc86ac12 Merge remote-tracking branch 'origin/master' into miami 2020-07-29 15:35:25 +03:00
Sergeanur
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
Fire-Head
f2f19ccea3 Update RwHelper.cpp 2020-07-29 12:41:53 +03:00
Fire_Head
52e77c6634 Merge pull request #1 from GTAmodding/miami
Miami
2020-07-29 12:20:02 +03:00
Fire-Head
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
erorcun
3d91d4fc6a Merge pull request #667 from erorcun/miami
Fix casepath chaos
2020-07-28 18:33:27 +03:00
eray orçunus
c87b639a84 Fix casepath chaos 2020-07-28 17:56:47 +03:00
erorcun
ef7afe5f2f Merge pull request #665 from erorcun/miami
CCopPed, except spike traps
2020-07-28 17:05:20 +03:00
eray orçunus
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
erorcun
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
eray orçunus
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
erorcun
b05cb3f1a3 Merge pull request #662 from erorcun/miami
90% fixes, 10% skel refactoring
2020-07-24 21:07:23 +03:00
eray orçunus
ad6094ca1d 90% fixes, 10% skel refactoring 2020-07-24 21:02:55 +03:00
erorcun
53e7cbbd5a Merge pull request #661 from erorcun/miami
64-bit on Windows
2020-07-24 20:36:26 +03:00
eray orçunus
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
Sergeanur
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
erorcun
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
erorcun
7e54a226e2 README 64-bit preparation 2020-07-22 15:21:51 +03:00
eray orçunus
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
majestic
1ff27e3363 cosmetic fixes 2020-07-20 09:49:39 -07:00
aap
e74b569115 CPlane done 2020-07-19 00:56:30 +02:00
Sergeanur
a1412d1cdb Fix OneShotPriority overflow 2020-07-18 14:15:06 +03:00
Sergeanur
eaf569eb6d Merge remote-tracking branch 'origin/master' into miami 2020-07-18 13:31:32 +03:00
Sergeanur
87eb96453a Add compatibility with RW 3.4 2020-07-18 13:30:51 +03:00
Sergeanur
dd717b2d93 Actual fix now xD 2020-07-18 13:27:31 +03:00
Sergeanur
cf5dd6289e Fix TempVertexBuffer overflow 2020-07-18 13:09:21 +03:00
Sergeanur
30384bb4ef Merge branch 'master' into miami
# Conflicts:
#	src/render/Credits.cpp
2020-07-17 21:15:47 +03:00
Sergeanur
de8759eabd Merge branch 'master' into miami
# Conflicts:
#	src/control/Record.cpp
#	src/vehicles/Automobile.cpp
2020-07-17 13:53:11 +03:00
Sergeanur
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
Sergeanur
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
erorcun
30723cf723 Merge pull request #654 from erorcun/miami
VC fighting, Peds, many fixes including ghost bikes
2020-07-10 00:06:16 +03:00
eray orçunus
67a3c7d2ee VC fighting, Peds, many fixes including ghost bikes 2020-07-09 17:01:07 +03:00
erorcun
592a6cc792 Merge pull request #653 from Domiiniik/miami
CDarkel miami hud colors.
2020-07-08 18:32:11 +03:00
Dominik
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
Dominik
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
eray orçunus
c483a044b5 Noskillx's PR + fix .set loading 2020-07-06 19:26:41 +03:00
eray orçunus
70fa4ab79c Frontend: Stats, Briefs, gta_vc.set, slider ranges, fixes 2020-07-06 16:38:00 +03:00
eray orçunus
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
eray orçunus
716740f918 Peds & fixes 2020-07-04 15:31:28 +03:00
Fire-Head
4c65ec28d6 NULL->nil 2020-07-03 20:26:35 +03:00
Nikolay Korolev
49a8dd7459 fixed typo 2020-07-03 15:21:11 +03:00
Nikolay Korolev
9bb8b39956 fixed typo 2020-07-03 15:17:02 +03:00
Nikolay Korolev
48ebbb7292 ice cream attractor + bike respray 2020-07-03 11:08:19 +03:00
Fire-Head
d4004805f5 miami pobj 2020-07-03 02:18:06 +03:00
aap
2141247e08 CBoat and friends 2020-07-01 18:04:02 +02:00
Nikolay Korolev
389123cff3 fix 2020-07-01 16:06:16 +03:00
Nikolay Korolev
ade5dff217 script logging for miami 2020-07-01 15:43:19 +03:00
Sergeanur
8045bec6a5 Merge branch 'master' into miami
# Conflicts:
#	src/audio/AudioLogic.cpp
#	src/audio/AudioManager.h
2020-06-30 19:12:06 +03:00
Sergeanur
cbed027c0e Merge branch 'master' into miami 2020-06-30 08:24:05 +03:00
Sergeanur
87fa69385c remove TheText.Load() from CGame::Initialise 2020-06-30 07:48:09 +03:00
Sergeanur
1d2d5fe6ae Merge branch 'master' into miami
# Conflicts:
#	src/render/MBlur.cpp
#	src/render/MBlur.h
2020-06-30 07:45:54 +03:00
Sergeanur
6f81e84bd4 Restore original code of CControllerState::CheckForInput 2020-06-30 07:44:51 +03:00
Filip Gawin
6cf698badd Fix glfw.cpp 2020-06-29 16:24:40 +02:00
aap
94ce376a76 cleanup 2020-06-29 12:12:43 +02:00
Sergeanur
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
eray orçunus
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
eray orçunus
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
eray orçunus
d6a853bd60 killing peds increase chaos level 2020-06-20 22:44:31 +03:00
eray orçunus
cc60ad1946 ducking & anim fix 2020-06-20 20:26:27 +03:00
eray orçunus
2d2833f2e4 more weapon fixes 2020-06-20 17:30:28 +03:00
eray orçunus
fd3cd2c26a Merge branch 'miami' of https://github.com/GTAmodding/re3 into miami 2020-06-20 16:23:42 +03:00
eray orçunus
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
Nikolay Korolev
144f12525e fix 2020-06-20 13:51:39 +03:00
Nikolay Korolev
eab6741afe fix 2020-06-20 13:26:27 +03:00
Nikolay Korolev
e9e533b0cb bikes in garages + bugfix 2020-06-18 00:03:43 +03:00
eray orçunus
e44704dc82 Ped, Weapon and fixes 2020-06-17 21:24:59 +03:00
eray orçunus
e9d5d42ea9 fix clipped subtitles 2020-06-17 11:11:44 +03:00
Nikolay Korolev
f54af8b973 fixed bar brawl 2020-06-17 02:33:03 +03:00
erorcun
ee456481cb Merge pull request #632 from majesticCoding/miami
expanded modelIndices, more original cheats, slightly edited CStreami…
2020-06-16 23:08:16 +03:00
erorcun
d322a8033e Merge branch 'miami' into miami 2020-06-16 23:02:21 +03:00
erorcun
812b26b668 Update ModelIndices.h 2020-06-16 22:58:42 +03:00
eray orçunus
a822692c26 fix crash-VC pickup scaling 2020-06-16 22:55:28 +03:00
erorcun
7ae0b8ef06 Merge pull request #633 from aap/miami
CCam done
2020-06-16 20:48:46 +03:00
erorcun
6f0304f90e Merge pull request #634 from erorcun/miami
some cutscene opcodes and heli guns
2020-06-16 20:46:44 +03:00
eray orçunus
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
eray orçunus
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
eray orçunus
595576b151 Merge branch 'miami' of https://github.com/GTAmodding/re3 into miami 2020-06-15 23:49:59 +03:00
eray orçunus
c4e129509b Peds & fixes continues 2020-06-15 23:43:20 +03:00
aap
62024217b7 more CCam 2020-06-15 20:50:01 +02:00
Sergeanur
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
eray orçunus
686d6e9834 Fix vehicle cam. zoom values 2020-06-15 16:17:22 +03:00
eray orçunus
ef4c8f53c5 Merge branch 'miami' of https://github.com/GTAmodding/re3 into miami 2020-06-15 00:26:27 +03:00
eray orçunus
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
erorcun
f64d3ad7de Merge pull request #631 from erorcun/miami
Peds, mission switcher & fixes
2020-06-14 22:59:02 +03:00
eray orçunus
db6110e996 Peds, mission switcher & fixes 2020-06-14 22:57:26 +03:00
majestic
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
Nikolay Korolev
f78f707935 script fix 2020-06-13 02:02:59 +03:00
Nikolay Korolev
3900366a6b debug fix 2020-06-12 22:39:33 +03:00
Nikolay Korolev
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
majestic
2cc8ecbb90 removed extern from RwImVertexIndex SmokeTrailIndices and additional rotational variables for minigun 2020-06-11 01:36:45 -07:00
majestic
94e3c30054 original multiplying rotational cords for minigun 2020-06-11 00:59:23 -07:00
majestic
669db1a293 minigun rotation fix 2020-06-10 23:26:51 -07:00
majestic
cf8fcada6e m_density renamed to m_opacity 2020-06-10 14:01:37 -07:00
majestic
287987b8fe SmokeTrail(s) moved to Fluff, variables' names fixed, floats rounded 2020-06-10 13:47:48 -07:00
majestic
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
eray orçunus
dba2b052a6 Peds, bike center of mass and reversing fixes 2020-06-09 01:29:55 +03:00
Sergeanur
0321f3b55f Merge branch 'master' into miami
# Conflicts:
#	src/audio/audio_enums.h
#	src/core/AnimViewer.cpp
2020-06-08 18:03:00 +03:00
Sergeanur
85d845c5ce Merge pull request #623 from Sergeanur/VC/MissionAudio
Mission audio
2020-06-08 17:32:57 +03:00
Sergeanur
95e9fe7693 fixes 2020-06-08 16:22:49 +03:00
Sergeanur
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
Sergeanur
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
Sergeanur
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
Sergeanur
36a6d124aa Mission audio slots 2020-06-08 10:34:31 +03:00
Sergeanur
0afb1d9e24 Scale font shadow 2020-06-08 10:30:09 +03:00
Nikolay Korolev
2de3c6d67b some fixes to heli AI (not all yet) 2020-06-08 02:34:53 +03:00
Nikolay Korolev
b498ad800c Merge remote-tracking branch 'upstream/miami' into miami 2020-06-08 02:04:58 +03:00
Nikolay Korolev
d48749f797 fixed attached ped 2020-06-08 02:04:37 +03:00
eray orçunus
94e9101ce0 more fixes 2020-06-08 01:51:11 +03:00
Nikolay Korolev
16a5c2f676 fixes 2020-06-08 01:21:49 +03:00
Nikolay Korolev
5ec46bcdfb Merge remote-tracking branch 'upstream/miami' into miami 2020-06-08 01:01:39 +03:00
eray orçunus
a77b181e32 CarCtrl fixes 2020-06-08 00:59:43 +03:00
Nikolay Korolev
5a09eeea27 more accurate code 2020-06-08 00:53:25 +03:00
eray orçunus
e07b6fdce7 Message box, letterbox and ped attaching 2020-06-07 21:44:54 +03:00
Nikolay Korolev
23f20ceaf8 fix 2020-06-07 19:35:05 +03:00
Nikolay Korolev
27eaa10873 Merge remote-tracking branch 'upstream/miami' into miami 2020-06-07 19:32:51 +03:00
Nikolay Korolev
2f9becbac6 fix 2020-06-07 19:31:15 +03:00
eray orçunus
6cc39e9bdb Merge branch 'miami' of https://github.com/GTAmodding/re3 into miami 2020-06-07 19:13:27 +03:00
eray orçunus
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
Nikolay Korolev
c5a24eaf70 Merge remote-tracking branch 'upstream/miami' into miami 2020-06-07 18:20:00 +03:00
Nikolay Korolev
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
Nikolay Korolev
b14e034344 fix 2020-06-07 17:52:14 +03:00
Nikolay Korolev
d0213e466c more script commands 2020-06-07 15:49:25 +03:00
Nikolay Korolev
0b156f1d26 some stats tweaks; saves dead again 2020-06-07 15:23:52 +03:00
Sergeanur
fe3a3ad8b5 cleanup 2020-06-07 15:19:29 +03:00
Nikolay Korolev
c50a61d52a fixed some arithmetic 2020-06-07 15:08:58 +03:00
eray orçunus
de4323f949 Merge branch 'miami' of https://github.com/GTAmodding/re3 into miami 2020-06-07 12:46:15 +03:00
eray orçunus
d1a02e6ddc New ped objectives 2020-06-07 12:45:53 +03:00
Nikolay Korolev
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
Sergeanur
a44510d1df more font 2020-06-07 10:36:37 +03:00
Sergeanur
0d0e519e68 Merge branch 'miami' into Font 2020-06-07 05:13:44 +03:00
Sergeanur
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
Sergeanur
91e2b427ef more font stuff 2020-06-07 05:12:01 +03:00
Sergeanur
fc7e35e1cd fixes 2020-06-07 04:20:02 +03:00
Sergeanur
24bf4c2cba Merge branch 'miami' into Font
# Conflicts:
#	src/render/Font.cpp
#	src/render/Font.h
2020-06-07 04:16:10 +03:00
Sergeanur
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
Sergeanur
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
eray orçunus
db9057f5a8 fix 2020-06-06 22:24:30 +03:00
eray orçunus
096ecc1d14 Some wait states 2020-06-06 22:16:59 +03:00
eray orçunus
fc0498b3a8 CFont crash workaround 2020-06-06 19:25:37 +03:00
eray orçunus
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
Sergeanur
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
majestic
f014b29fc4 Update Pad.cpp 2020-06-05 14:31:17 -07:00
majestic
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
eray orçunus
d3736ccb17 Merge branch 'miami' of https://github.com/GTAmodding/re3 into miami 2020-06-05 23:20:16 +03:00
eray orçunus
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
Nikolay Korolev
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
Nikolay Korolev
d325a3d247 basic bike support in traffic, script and car gen; some heli AI 2020-06-05 11:22:15 +03:00
majestic
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
shfil
4a7f0849ab Update links to bintray on miami branch 2020-06-04 21:36:06 +02:00
shfil
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
Sergeanur
07c6752cf7 Merge branch 'master' into miami
# Conflicts:
#	src/peds/Ped.cpp
2020-06-04 05:10:50 +03:00
Sergeanur
a6e4619378 Revert "fix accident~"
This reverts commit 04de93796b.
2020-06-04 04:42:42 +03:00
Sergeanur
07d336ddf0 Merge branch 'master' into miami
# Conflicts:
#	src/peds/Ped.cpp
#	src/peds/Ped.h
2020-06-04 04:32:49 +03:00
majestic
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
erorcun
1e2b087601 Merge pull request #614 from erorcun/miami
Peds, eSound and PedState enum, fixes
2020-06-03 17:06:07 +03:00
eray orçunus
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
Sergeanur
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
erorcun
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
eray orçunus
abef04c637 Merge branch 'miami' of https://github.com/GTAmodding/re3 into miami 2020-06-01 18:35:04 +03:00
eray orçunus
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
Nikolay Korolev
0631bd9d89 fix 2020-05-31 23:16:24 +03:00
Nikolay Korolev
815d3e0f61 fix 2020-05-31 22:50:32 +03:00
Nikolay Korolev
f945dbc0fb dumb 2020-05-31 21:01:36 +03:00
Nikolay Korolev
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
Nikolay Korolev
49a897c3b3 better name 2020-05-30 20:09:58 +03:00
Nikolay Korolev
09c9e16cb1 roadblocks 2020-05-30 20:08:31 +03:00
eray orçunus
dd162c3aa0 Merge branch 'miami' of https://github.com/GTAmodding/re3 into miami 2020-05-29 22:05:52 +03:00
eray orçunus
529cec5653 R to freeroam, idle anims, weapon and cam enum fix 2020-05-29 22:05:33 +03:00
Nikolay Korolev
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
Fire-Head
8280e04b23 rem unnecessary asserts 2020-05-28 02:40:23 +03:00
Fire_Head
7f30a2ae1b cockbuilding ejaculation fix 2020-05-28 00:45:45 +03:00
Fire-Head
fab2c8699c surfacetable included 2020-05-28 00:36:52 +03:00
Fire-Head
98af5e4ddb fix SURFACE_SAND 2020-05-28 00:28:36 +03:00
Fire-Head
895580c724 seagulls, ships 2020-05-28 00:15:37 +03:00
Fire_Head
e4649b41e1 Merge pull request #2 from GTAmodding/miami
Miami
2020-05-27 21:51:40 +03:00
Fire-Head
63d0bdc863 VC Water 2020-05-27 21:50:01 +03:00
aap
717b0a6514 librw update 2020-05-27 20:42:15 +02:00
Sergeanur
53ac163a3e Merge branch 'master' into miami
# Conflicts:
#	src/audio/AudioLogic.cpp
#	src/vehicles/Automobile.h
2020-05-27 20:50:40 +03:00
Nikolay Korolev
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
Sergeanur
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
Sergeanur
408faf8a66 Support of original mp3/wav/adf 2020-05-27 03:29:54 +03:00
Fire-Head
90947a608f fix linux build 2020-05-27 03:18:02 +03:00
Fire-Head
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
Fire_Head
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
Sergeanur
1991aa388b Very basic compatibility with original sfx.raw/sdt 2020-05-26 18:25:34 +03:00
Sergeanur
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
Nikolay Korolev
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
blingu
79c652e115 Ped.h include not needed 2020-05-24 17:48:13 +02:00
blingu
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
Nikolay Korolev
6235e2140e fixed filename 2020-05-24 17:23:14 +03:00
Nikolay Korolev
8705562559 how did saving even work in original III? 2020-05-24 15:58:25 +03:00
Nikolay Korolev
8c510a8d5b script fix 2020-05-24 15:00:45 +03:00
Nikolay Korolev
e248cbcc7d say goodbye to your saves 2020-05-24 14:01:01 +03:00
Nikolay Korolev
9c93cc7d6f Merge remote-tracking branch 'upstream/miami' into miami 2020-05-24 13:48:41 +03:00
Nikolay Korolev
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
eray orçunus
4870d9a31b Menu borders and weapon fixes 2020-05-24 03:05:48 +03:00
Nikolay Korolev
6a7bd0e330 Merge remote-tracking branch 'upstream/miami' into miami 2020-05-24 00:19:25 +03:00
Sergeanur
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
Nikolay Korolev
2966be41ba Merge remote-tracking branch 'upstream/miami' into miami 2020-05-23 20:07:30 +03:00
Nikolay Korolev
607175f02a set pieces 2020-05-23 20:06:52 +03:00
eray orçunus
5276abb0fb Merge branch 'miami' of https://github.com/GTAmodding/re3 into miami 2020-05-23 18:04:52 +03:00
eray orçunus
c3b41d79a2 Cleanup and one needed function 2020-05-23 18:04:33 +03:00
erorcun
530b5ff58d Merge pull request #581 from erorcun/miami
Compatibility with VC weapon.dat + new shotguns
2020-05-23 17:15:12 +03:00
eray orçunus
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
Nikolay Korolev
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
Nikolay Korolev
7b7b0fb5f2 removed debug 2020-05-23 02:18:16 +03:00
Nikolay Korolev
f8a509ffb3 fixes 2020-05-23 02:17:27 +03:00
Nikolay Korolev
b9115b4429 Merge remote-tracking branch 'upstream/miami' into miami 2020-05-23 01:43:17 +03:00
Nikolay Korolev
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
Nikolay Korolev
6e51ed3c53 Merge remote-tracking branch 'upstream/miami' into miami 2020-05-22 23:35:19 +03:00
erorcun
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
erorcun
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
erorcun
4fd1771f71 Merge pull request #577 from erorcun/miami
VC CMenuManager struct, ctor etc.
2020-05-22 15:24:08 +03:00
eray orçunus
a5f23a0342 VC CMenuManager struct, ctor etc. 2020-05-22 03:48:12 +03:00
Nikolay Korolev
5a18e69425 Merge remote-tracking branch 'upstream/miami' into miami 2020-05-22 02:42:43 +03:00
Nikolay Korolev
864847a6fe new script commands - mostly stubs 2020-05-22 02:42:04 +03:00
Xinerki
900d5a4ce0 focus loss improvement
for u aap
2020-05-21 21:48:39 +03:00
Xinerki
e0345732c0 wasted/busted text color
how did nobody change it yet
2020-05-21 17:50:08 +03:00
Xinerki
0db3d03c3c sorry my bad 2020-05-21 17:36:12 +03:00
Xinerki
1c00e3cf2c vehicle cheats and debug cheat string display 2020-05-21 17:28:03 +03:00
Xinerki
6692f5b2aa make reloadables optional 2020-05-21 16:47:48 +03:00
Xinerki
6912cfe98a menu map color change 2020-05-21 16:26:56 +03:00
Xinerki
46c6b0d29d fancy HUD.TXD reloader
TODO: make optional with defines, also add more reload options
2020-05-21 16:25:46 +03:00
Xinerki
3e75de9709 radardisc shadow
thank tomasak
2020-05-21 15:46:53 +03:00
Xinerki
1cb7b9876f scuffed InitAfterFocusLoss implementation 2020-05-21 14:23:12 +03:00
Xinerki
b4060a4789 add freecam toggle in control settings
comes with a free config save!
2020-05-21 13:06:09 +03:00
Xinerki
2db26d304f approach separation differently 2020-05-21 12:45:45 +03:00
Xinerki
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
Nikolay Korolev
7e5342e9f0 script revision 2020-05-21 11:22:25 +03:00
Nikolay Korolev
510261cb05 Merge remote-tracking branch 'upstream/miami' into miami 2020-05-20 23:54:22 +03:00
Nikolay Korolev
0085ed894f script revision 2020-05-20 23:47:44 +03:00
eray orçunus
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
Nikolay Korolev
f33a01e8c8 Merge remote-tracking branch 'upstream/miami' into miami 2020-05-20 20:40:36 +03:00
Nikolay Korolev
d84650fbe5 script revision 2020-05-20 20:40:04 +03:00
eray orçunus
2ab3fb5dd0 Fixes for melees and various things 2020-05-20 20:21:27 +03:00
Sergeanur
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
Nikolay Korolev
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
erorcun
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
Nikolay Korolev
46d1889344 slightly restructured ped flags for convenience 2020-05-19 21:34:28 +03:00
Nikolay Korolev
e967db4a3c fixed annoying bug 2020-05-19 21:10:40 +03:00
Nikolay Korolev
41d7b3244b Merge remote-tracking branch 'upstream/miami' into miami 2020-05-19 20:54:10 +03:00
Nikolay Korolev
4c822e8375 script revision 2020-05-19 20:54:05 +03:00
eray orçunus
99574ebfc6 Merge branch 'miami' of https://github.com/GTAmodding/re3 into miami 2020-05-19 17:46:18 +03:00
eray orçunus
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
Xinerki
ffd175c705 fix frontend control config menu a little
thank erorcun
2020-05-19 14:23:59 +03:00
Xinerki
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
Xinerki
9e14e8553f match frontend to vc more; isolate crgba 2020-05-19 13:47:55 +03:00
Nikolay Korolev
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
Xinerki
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
Xinerki
d425358181 Load VC frontend textures and use some 2020-05-19 10:07:15 +03:00
Nikolay Korolev
a27fc8d9d9 Merge remote-tracking branch 'upstream/miami' into miami 2020-05-19 01:49:51 +03:00
Nikolay Korolev
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
Sergeanur
af22bb1495 CText 2020-05-18 01:28:40 +03:00
Nikolay Korolev
5ab2c85e97 some debug changes 2020-05-18 00:34:24 +03:00
eray orçunus
f71cfdf8ef Merge branch 'miami' of https://github.com/GTAmodding/re3 into miami 2020-05-18 00:27:36 +03:00
eray orçunus
96151ec0f0 TransformToNode crash fix? 2020-05-18 00:27:04 +03:00
Nikolay Korolev
ad8a8913d9 a few more stubs 2020-05-18 00:20:26 +03:00
Nikolay Korolev
fd2948f045 sync with upstream 2020-05-17 23:32:32 +03:00
Nikolay Korolev
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
eray orçunus
7bd6c70318 just in case 2020-05-17 22:17:43 +03:00
Nikolay Korolev
d5d2f6a822 sync with upstream 2020-05-17 21:48:21 +03:00
Nikolay Korolev
3cc20d7962 sync with upstream 2020-05-17 21:48:12 +03:00
Nikolay Korolev
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
eray orçunus
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
Sergeanur
37480fb617 Fix compilation errors 2020-05-17 00:33:52 +03:00
Sergeanur
77f97ad2ad Merge branch 'master' into miami
# Conflicts:
#	src/animation/AnimManager.cpp
#	src/audio/AudioManager.cpp
2020-05-16 23:58:44 +03:00
Nikolay Korolev
5c8888d2ed Merge remote-tracking branch 'upstream/miami' into miami 2020-05-16 23:09:34 +03:00
Nikolay Korolev
b587d835e8 more script stuff 2020-05-16 23:06:33 +03:00
Sergeanur
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
Nikolay Korolev
e3291b0cb1 gangs, script and replay fixes 2020-05-16 17:00:40 +03:00
eray orçunus
40ee29fb99 Weapon fixes 2020-05-16 15:07:09 +03:00
aap
793a6a6d7e bla 2020-05-16 13:07:08 +02:00
Nikolay Korolev
7b89baceaa Merge remote-tracking branch 'upstream/miami' into miami 2020-05-16 14:01:58 +03:00
Nikolay Korolev
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
Nikolay Korolev
81e711517d Merge pull request #551 from Nick007J/miami
Ped attractors + weather
2020-05-16 13:40:20 +03:00
Nikolay Korolev
6556cb0db9 Merge remote-tracking branch 'upstream/miami' into miami 2020-05-16 13:40:00 +03:00
Nikolay Korolev
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
Nikolay Korolev
9067469f7c more attractor fixes 2020-05-16 11:30:58 +03:00
Nikolay Korolev
cf5db73117 a few fixes 2020-05-16 11:22:12 +03:00
Nikolay Korolev
03c4a979c8 removed duplicate code 2020-05-16 10:53:20 +03:00
Nikolay Korolev
5abd466b5d Merge remote-tracking branch 'upstream/miami' into miami 2020-05-16 10:52:58 +03:00
Nikolay Korolev
5491a51daa remove debug 2020-05-16 10:39:18 +03:00
Sergeanur
76dd769085 Merge branch 'master' into miami 2020-05-16 05:07:39 +03:00
Nikolay Korolev
a4562c5720 fixed spaces/tabs 2020-05-16 02:15:24 +03:00
Nikolay Korolev
f864698696 ped attractors 2020-05-16 02:10:23 +03:00
Nikolay Korolev
21329b8440 sync with upstream 2020-05-16 01:50:45 +03:00
Nikolay Korolev
08b2138c7e ped attractors done 2020-05-16 01:49:30 +03:00
erorcun
8ff72f0728 Merge pull request #550 from erorcun/miami
Weapon layer in Peds
2020-05-15 21:30:57 +03:00
eray orçunus
acd1ea9909 Weapon layer in Peds 2020-05-15 21:21:25 +03:00
aap
1fde2ba468 CPedIK 2020-05-15 19:41:44 +02:00
Nikolay Korolev
09a0207e55 Merge remote-tracking branch 'upstream/miami' into miami 2020-05-14 22:29:23 +03:00
Sergeanur
ede6b7db6a Fix compilation 2020-05-14 17:15:26 +03:00
Sergeanur
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
Nikolay Korolev
d031943f2a more pedattractor 2020-05-14 13:46:11 +03:00
Nikolay Korolev
d426588496 Merge remote-tracking branch 'upstream/miami' into miami 2020-05-13 17:55:12 +03:00
Nikolay Korolev
81ea6f0258 ped attractor: start 2020-05-13 11:38:05 +03:00
Sergeanur
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
Sergeanur
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
Nikolay Korolev
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
Nikolay Korolev
ca6ed7f00f fix garages 2020-05-12 16:21:00 +03:00
Nikolay Korolev
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
Nikolay Korolev
9647587447 Merge remote-tracking branch 'upstream/miami' into miami 2020-05-12 02:00:26 +03:00
Nikolay Korolev
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
Nikolay Korolev
9b23e33c36 sync with upstream 2020-05-11 21:21:09 +03:00
Sergeanur
d9db03d606 Merge remote-tracking branch 'origin/master' into miami
# Conflicts:
#	src/render/Renderer.cpp
2020-05-11 21:08:29 +03:00
Sergeanur
5f1c3fa208 Merge remote-tracking branch 'origin/miami' into miami 2020-05-11 21:07:36 +03:00
Sergeanur
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
Nikolay Korolev
5f5babe7fe Merge remote-tracking branch 'upstream/miami' into miami 2020-05-11 21:05:01 +03:00
Nikolay Korolev
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
Nikolay Korolev
2f085ea5f5 Merge remote-tracking branch 'upstream/miami' into miami 2020-05-11 01:00:50 +03:00
Nikolay Korolev
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
Nikolay Korolev
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
Nikolay Korolev
00cdcef36a some updates for script 2020-05-10 17:54:13 +03:00
Nikolay Korolev
512f5657f7 Merge remote-tracking branch 'upstream/miami' into miami 2020-05-10 15:24:09 +03:00
Nikolay Korolev
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
Nikolay Korolev
4b892e9eb9 fix boats 2020-05-10 13:20:01 +03:00
Nikolay Korolev
662246b9e2 fix boat 2020-05-10 12:56:13 +03:00
Nikolay Korolev
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
Nikolay Korolev
a827f0dd55 sync with upstream 2020-05-10 12:26:32 +03:00
Nikolay Korolev
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
Sergeanur
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
Nikolay Korolev
3de003a8e7 new curves + boat fix 2020-05-09 22:11:40 +03:00
Nikolay Korolev
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
Nikolay Korolev
609caad7a4 Merge remote-tracking branch 'upstream/miami' into miami 2020-05-09 20:21:36 +03:00
Nikolay Korolev
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
eray orçunus
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
Sergeanur
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
Nikolay Korolev
e30b538cd3 fix 2020-05-09 00:07:35 +03:00
Nikolay Korolev
46d891b745 fix 2020-05-09 00:00:06 +03:00
Nikolay Korolev
3d394c2f95 Merge remote-tracking branch 'upstream/miami' into miami 2020-05-08 23:30:04 +03:00
Nikolay Korolev
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
Nikolay Korolev
f902136b6a fix 2020-05-08 18:50:16 +03:00
Nikolay Korolev
75943a57b2 gang 2020-05-08 18:48:44 +03:00
Sergeanur
1ef8d61f36 Merge branch 'master' into miami 2020-05-08 17:49:19 +03:00
Nikolay Korolev
756e4dd068 Merge remote-tracking branch 'upstream/miami' into miami 2020-05-08 17:06:25 +03:00
Nikolay Korolev
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
Nikolay Korolev
c11a20cb4f zone info commands + fix 2020-05-08 16:16:46 +03:00
Nikolay Korolev
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
Nikolay Korolev
db26700352 final fix 2020-05-08 11:49:40 +03:00
Nikolay Korolev
09dc1f9e1e Merge remote-tracking branch 'upstream/miami' into miami 2020-05-08 11:44:21 +03:00
Nikolay Korolev
49cf53644a reasonable spawns 2020-05-08 11:43:27 +03:00
Nikolay Korolev
44c5cdf453 tmp stuff 2020-05-08 11:11:09 +03:00
Sergeanur
a483243c52 Merge remote-tracking branch 'origin/master' into miami
# Conflicts:
#	src/core/FileLoader.cpp
2020-05-08 00:58:39 +03:00
Nikolay Korolev
b99346e6ca sync with upstream 2020-05-07 23:22:15 +03:00
Nikolay Korolev
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
Nikolay Korolev
5780b4503e sync with upstream 2020-05-07 16:59:40 +03:00
Nikolay Korolev
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
Sergeanur
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
Sergeanur
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
Sergeanur
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
Nikolay Korolev
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
Nikolay Korolev
31ebbf348f Merge remote-tracking branch 'upstream/miami' into miami 2020-05-06 21:16:38 +03:00
Nikolay Korolev
599b7301c8 script stubs + REQUEST_COLLISION 2020-05-06 21:15:58 +03:00
Nikolay Korolev
03cecb6f1c Merge pull request #516 from Nick007J/miami
miami (script + other) stuff
2020-05-06 19:43:45 +03:00
Nikolay Korolev
f34431a506 Merge remote-tracking branch 'upstream/miami' into miami 2020-05-06 19:34:36 +03:00
Sergeanur
6ad66fb2d7 Merge remote-tracking branch 'origin/master' into miami
# Conflicts:
#	src/render/Renderer.cpp
2020-05-06 19:32:57 +03:00
Nikolay Korolev
53107d3b71 added flag 2020-05-06 19:24:33 +03:00
Nikolay Korolev
0930d70134 IsStatic 2020-05-06 19:20:45 +03:00
Nikolay Korolev
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
Sergeanur
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
Sergeanur
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
Nikolay Korolev
bd4d5d7c47 Merge remote-tracking branch 'upstream/miami' into miami 2020-05-06 16:55:45 +03:00
Nikolay Korolev
15520fe77d fix memory corruption 2020-05-06 16:55:04 +03:00
Nikolay Korolev
3b08efa2ad Merge remote-tracking branch 'upstream/miami' into miami 2020-05-06 16:46:33 +03:00
Sergeanur
bb55430f75 Merge remote-tracking branch 'origin/master' into miami 2020-05-06 16:44:30 +03:00
Nikolay Korolev
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
Nikolay Korolev
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
Nikolay Korolev
8c036ec671 sync with master 2020-05-06 14:42:41 +03:00
Sergeanur
bb8b6348ec Fix appveyor 2020-05-06 14:11:21 +03:00
Sergeanur
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
Nikolay Korolev
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
Nikolay Korolev
a7036475c3 not needed 2020-05-06 01:16:54 +03:00
Nikolay Korolev
e5da4c2b4d Merge remote-tracking branch 'upstream/miami' into miami 2020-05-06 01:11:18 +03:00
Nikolay Korolev
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
Nikolay Korolev
35bf340401 colstore support in script 2020-05-06 00:21:26 +03:00
Nikolay Korolev
f0896ceba7 Merge remote-tracking branch 'upstream/miami' into miami 2020-05-05 21:46:00 +03:00
Nikolay Korolev
1291dd534b script stuff 2020-05-05 21:45:43 +03:00
Sergeanur
0b61ae11ec Fix appveyour 2020-05-05 21:05:51 +03:00
Sergeanur
a02b4c9592 Merge branch 'master' into miami 2020-05-05 20:54:54 +03:00
Sergeanur
42a64a2379 appveyor update 2020-05-05 20:54:44 +03:00
Sergeanur
4bd4d24802 Merge branch 'master' into miami
# Conflicts:
#	premake5.lua
2020-05-05 20:42:11 +03:00
Nikolay Korolev
f45ea0a1cf Merge remote-tracking branch 'upstream/miami' into miami 2020-05-05 20:22:17 +03:00
Nikolay Korolev
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
Nikolay Korolev
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
Nikolay Korolev
6b4b708fa7 skipped one def 2020-05-05 19:06:24 +03:00
Sergeanur
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
Sergeanur
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
Nikolay Korolev
2a29c6c214 Merge remote-tracking branch 'upstream/miami' into miami 2020-05-05 18:20:37 +03:00
Nikolay Korolev
edeb8736f1 remove ifdefs 2020-05-05 18:20:10 +03:00
Sergeanur
7afa4f8316 Revert "Remove ColStore"
This reverts commit 0163a7bc46.
2020-05-05 18:14:31 +03:00
Sergeanur
0aab36c5a7 Merge branch 'master' into miami 2020-05-05 18:14:19 +03:00
Sergeanur
cb8ffbac73 Revert "Remove #endif"
This reverts commit 7200a783ee.
2020-05-05 18:07:43 +03:00
Sergeanur
74b522af71 Merge branch 'master' into miami 2020-05-05 18:07:33 +03:00
Sergeanur
c2b9ddc5b8 Revert "Remove Miami stuff"
This reverts commit 9960c41193.
2020-05-05 18:04:43 +03:00
511 changed files with 189082 additions and 112325 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.

13
.github/pull_request_template.md vendored Normal file
View File

@@ -0,0 +1,13 @@
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.
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 R* 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 R* supported/outsourced
- Code that increase maintainability

View File

@@ -1,4 +1,4 @@
name: re3 conan+cmake
name: reVC conan+cmake
on:
pull_request:
push:
@@ -23,11 +23,11 @@ jobs:
# - os: 'windows-latest'
# platform: 'd3d9'
# audio: 'miles'
- os: 'ubuntu-latest'
- os: 'ubuntu-18.04'
platform: 'gl3'
gl3_gfxlib: 'glfw'
audio: 'openal'
# - os: 'ubuntu-latest'
# - os: 'ubuntu-18.04'
# platform: 'gl3'
# gl3_gfxlib: 'sdl2'
# audio: 'openal'
@@ -63,8 +63,9 @@ jobs:
python -m pip install conan
conan config init
conan config set log.print_run_commands=True
conan remote add bincrafters https://api.bintray.com/conan/bincrafters/public-conan
conan remote add madebr_ps2dev https://api.bintray.com/conan/madebr/ps2dev
conan config set general.revisions_enabled=1
conan remote add bincrafters https://bincrafters.jfrog.io/artifactory/api/conan/public-conan
# conan remote add madebr_ps2dev https://api.bintray.com/conan/madebr/ps2dev
- name: "Add os=playstation2 + gcc.version=3.2 to .conan/settings.yml"
shell: python
run: |
@@ -85,7 +86,7 @@ jobs:
fi
- name: "Export Playstation 2 CMake toolchain conan recipe"
run: |
conan export vendor/librw/cmake/ps2toolchain ps2dev-cmaketoolchain/master@
conan export vendor/librw/cmake/ps2/cmaketoolchain ps2dev-cmaketoolchain/master@
- name: "Export librw conan recipe"
run: |
conan export vendor/librw librw/master@
@@ -95,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 }} reVC/master@ -if build -o reVC: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 reVC:build_type=RelWithDebInfo -s librw:build_type=RelWithDebInfo
env:
CONAN_SYSREQUIRES_MODE: enabled
- name: "Build re3 (conan build)"
- name: "Build reVC (conan build)"
run: |
conan build ${{ github.workspace }} -if build -bf build -pf package
- name: "Package re3 (conan package)"
- name: "Package reVC (conan package)"
run: |
conan package ${{ github.workspace }} -if build -bf build -pf package
- name: "Create binary package (cpack)"
@@ -112,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

29
.github/workflows/build-switch.yml vendored Normal file
View File

@@ -0,0 +1,29 @@
name: reVC cmake devkitA64 (Nintendo Switch)
on:
pull_request:
push:
release:
types: published
jobs:
build-nintendo-switch:
runs-on: ubuntu-latest
container: devkitpro/devkita64:latest
steps:
- uses: actions/checkout@v2
with:
submodules: 'true'
- name: "Build files"
run: |
/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
run: |
cpack
- name: "Archive binary package (github artifacts)"
uses: actions/upload-artifact@v2
with:
name: "switch-gl3"
path: build/*.tar.xz
if-no-files-found: error

View File

@@ -1,4 +1,4 @@
name: re3 premake amd64
name: reVC premake amd64
on:
pull_request:
@@ -6,13 +6,9 @@ on:
release:
types: published
env:
GLEW_VER: "2.1.0"
GLFW_VER: "3.3.2"
GLEW_BASE: "glew-2.1.0"
GLFW_BASE: "glfw-3.3.2.bin.WIN64"
GLEW_FILE: "glew-2.1.0-win32.zip"
GLFW_FILE: "glfw-3.3.2.bin.WIN64.zip"
GLEW_URL: "https://github.com/nigels-com/glew/releases/download/glew-2.1.0/glew-2.1.0-win32.zip"
GLFW_URL: "https://github.com/glfw/glfw/releases/download/3.3.2/glfw-3.3.2.bin.WIN64.zip"
jobs:
build:
@@ -20,18 +16,13 @@ jobs:
strategy:
matrix:
platform: [win-amd64-librw_d3d9-oal, win-amd64-librw_gl3_glfw-oal]
buildtype: [Debug, Release, Vanilla]
buildtype: [Debug, Release]
steps:
- name: Add msbuild to PATH
uses: microsoft/setup-msbuild@v1.0.2
- uses: actions/checkout@v2
with:
submodules: 'true'
- if: ${{ matrix.platform }} == "win-amd64-librw_gl3_glfw-mss"
name: Download glew
uses: carlosperate/download-file-action@v1.0.3
with:
file-url: ${{env.GLEW_URL}}
- if: ${{ matrix.platform }} == "win-amd64-librw_gl3_glfw-mss"
name: Download glfw
uses: carlosperate/download-file-action@v1.0.3
@@ -40,21 +31,20 @@ jobs:
- if: ${{ matrix.platform }} == "win-amd64-librw_gl3_glfw-mss"
name: Unpack archives
run: |
7z x ${{env.GLEW_FILE}}
7z x ${{env.GLFW_FILE}}
- name: Configure build
run: |
./premake5 vs2019 --with-librw --glewdir=${{env.GLEW_BASE}} --glfwdir64=${{env.GLFW_BASE}}
./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/reVC.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 reVC_${{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}}/reVC.exe ./gamefiles/
mv ./bin/${{matrix.platform}}/${{matrix.buildtype}}/reVC.pdb ./gamefiles/
- name: Move dynamic dependencies to gamefiles
run: |
mv ./vendor/mpg123/dist/Win64/libmpg123-0.dll ./gamefiles/
@@ -62,12 +52,12 @@ jobs:
- name: Upload artifact to actions
uses: actions/upload-artifact@v2
with:
name: re3_${{matrix.buildtype}}_${{matrix.platform}}
name: reVC_${{matrix.buildtype}}_${{matrix.platform}}
path: ./gamefiles/*
# - name: Upload artifact to Bintray
# uses: hpcsc/upload-bintray-docker-action@v1
# with:
# repository: re3
# repository: reVC
# 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: reVC premake x86
on:
pull_request:
@@ -6,13 +6,9 @@ on:
release:
types: published
env:
GLEW_VER: "2.1.0"
GLFW_VER: "3.3.2"
GLEW_BASE: "glew-2.1.0"
GLFW_BASE: "glfw-3.3.2.bin.WIN32"
GLEW_FILE: "glew-2.1.0-win32.zip"
GLFW_FILE: "glfw-3.3.2.bin.WIN32.zip"
GLEW_URL: "https://github.com/nigels-com/glew/releases/download/glew-2.1.0/glew-2.1.0-win32.zip"
GLFW_URL: "https://github.com/glfw/glfw/releases/download/3.3.2/glfw-3.3.2.bin.WIN32.zip"
jobs:
build:
@@ -27,11 +23,6 @@ jobs:
- uses: actions/checkout@v2
with:
submodules: 'true'
- if: ${{ matrix.platform }} == "win-x86-librw_gl3_glfw-mss"
name: Download glew
uses: carlosperate/download-file-action@v1.0.3
with:
file-url: ${{env.GLEW_URL}}
- if: ${{ matrix.platform }} == "win-x86-librw_gl3_glfw-mss"
name: Download glfw
uses: carlosperate/download-file-action@v1.0.3
@@ -40,21 +31,20 @@ jobs:
- if: ${{ matrix.platform }} == "win-x86-librw_gl3_glfw-mss"
name: Unpack archives
run: |
7z x ${{env.GLEW_FILE}}
7z x ${{env.GLFW_FILE}}
- name: Configure build
run: |
./premake5 vs2019 --with-librw --glewdir=${{env.GLEW_BASE}} --glfwdir32=${{env.GLFW_BASE}}
./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/reVC.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 reVC_${{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}}/reVC.exe ./gamefiles/
mv ./bin/${{matrix.platform}}/${{matrix.buildtype}}/reVC.pdb ./gamefiles/
- if: contains(matrix.platform, 'oal')
name: Move dynamic dependencies to gamefiles
run: |
@@ -63,12 +53,12 @@ jobs:
- name: Upload artifact to actions
uses: actions/upload-artifact@v2
with:
name: re3_${{matrix.buildtype}}_${{matrix.platform}}
name: reVC_${{matrix.buildtype}}_${{matrix.platform}}
path: ./gamefiles/*
# - name: Upload artifact to Bintray
# uses: hpcsc/upload-bintray-docker-action@v1
# with:
# repository: re3
# repository: reVC
# package: ${{matrix.buildtype}}_${{matrix.platform}}
# version: 1.0-$(echo ${GITHUB_SHA}
# sourcePath: ./bin/${{matrix.platform}}/${{matrix.buildtype}}

3
.gitignore vendored
View File

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

View File

@@ -26,6 +26,24 @@
"compilerArgs": ["-ggdb"],
"cStandard": "gnu11",
"cppStandard": "gnu++14"
},
{
"name": "devkitPro aarch64 (Nintendo Switch)",
"compilerPath": "${env:DEVKITPRO}/devkitA64/bin/aarch64-none-elf-g++",
"includePath": [
"${default}",
"${env:DEVKITPRO}/portlibs/switch/include",
"${env:DEVKITPRO}/libnx/include"
],
"intelliSenseMode": "gcc-arm64",
"cStandard": "gnu11",
"cppStandard": "gnu++11",
"defines": [
"__SWITCH__",
"LIBRW",
"RW_GL3",
"AUDIO_OAL"
]
}
],
"version": 4

View File

@@ -2,8 +2,13 @@
"C_Cpp.default.cStandard": "gnu11",
"C_Cpp.default.cppStandard": "gnu++14",
"C_Cpp.default.includePath": [
"src",
"src/animation",
"src/audio",
"src/audio/eax",
"src/audio/oal",
"src/buildings",
"src/collision",
"src/control",
"src/core",
"src/entities",
@@ -13,9 +18,10 @@
"src/modelinfo",
"src/objects",
"src/peds",
"src/render",
"src/renderer",
"src/rw",
"src/save",
"src/save/glfw",
"src/skel",
"src/text",
"src/vehicles",

View File

@@ -1,15 +1,27 @@
cmake_minimum_required(VERSION 3.8)
cmake_minimum_required(VERSION 3.14)
set(EXECUTABLE re3)
set(PROJECT RE3)
set(EXECUTABLE reVC)
set(PROJECT REVC)
project(${EXECUTABLE} C CXX)
set(${PROJECT}_AUTHOR "${PROJECT} Team")
list(APPEND CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/cmake")
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 reVC_platform_target)
function(reVC_platform_target)
endfunction()
endif()
if(WIN32)
set(${PROJECT}_AUDIOS "OAL" "MSS")
else()
@@ -66,6 +78,8 @@ if(${PROJECT}_INSTALL)
set(os "-apple")
elseif(UNIX)
set(os "-linux")
elseif(NINTENDO_SWITCH)
set(os "-switch")
else()
set(compiler "-UNK")
message(WARNING "Unknown os. Created cpack package will be wrong. (override using cpack -P)")
@@ -81,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()

View File

@@ -1,40 +1,36 @@
<img src="https://github.com/GTAmodding/re3/blob/master/logo.png?raw=true" alt="re3 logo" width="200">
<img src="https://github.com/GTAmodding/re3/blob/miami/res/images/logo_1024.png?raw=true" alt="reVC 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)
<a href="https://discord.gg/ERYg58ttcE"><img src="https://img.shields.io/badge/discord-join-7289DA.svg?logo=discord&longCache=true&style=flat" /></a>
[![Build Status](https://img.shields.io/endpoint.svg?url=https%3A%2F%2Factions-badge.atrox.dev%2FGTAmodding%2Fre3%2Fbadge%3Fref%3Dmiami&style=flat)](https://actions-badge.atrox.dev/GTAmodding/re3/goto?ref=miami)
<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).
It has been tested and works on Windows, Linux and FreeBSD, on x86, amd64, arm and arm64.\
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.
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/).
We cannot build for PS2 or Xbox yet. If you're interested in doing so, get in touch with us.
## Installation
- 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 nightly 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-latest-gl3.zip)
- [MacOS 64bit](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 gamefiles and in case of OpenAL the required dlls.
- reVC requires game assets to work, so you **must** own [a copy of GTA Vice City](https://store.steampowered.com/app/12110/Grand_Theft_Auto_Vice_City/).
- Build reVC or download the latest build:
- [Windows D3D9 MSS 32bit](https://nightly.link/GTAmodding/re3/workflows/reVC_msvc_x86/miami/reVC_Release_win-x86-librw_d3d9-mss.zip)
- [Windows D3D9 64bit](https://nightly.link/GTAmodding/re3/workflows/reVC_msvc_amd64/miami/reVC_Release_win-amd64-librw_d3d9-oal.zip)
- [Windows OpenGL 64bit](https://nightly.link/GTAmodding/re3/workflows/reVC_msvc_amd64/miami/reVC_Release_win-amd64-librw_gl3_glfw-oal.zip)
- [Linux 64bit](https://nightly.link/GTAmodding/re3/workflows/build-cmake-conan/miami/ubuntu-18.04-gl3.zip)
- [MacOS 64bit x86-64](https://nightly.link/GTAmodding/re3/workflows/build-cmake-conan/miami/macos-latest-gl3.zip)
- Extract the downloaded zip over your GTA VC directory and run reVC. The zip includes the binary, updated and additional gamefiles and in case of OpenAL the required dlls.
## Screenshots
![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)
![screen_ 1613087332](https://user-images.githubusercontent.com/1521437/107714111-f84f3200-6ccc-11eb-902e-d757481d579a.png)
![screen_ 1613086852](https://user-images.githubusercontent.com/1521437/107714115-fa18f580-6ccc-11eb-9de5-eb4cd04865d3.png)
![screen_ 1613086989](https://user-images.githubusercontent.com/1521437/107714103-f38a7e00-6ccc-11eb-88a3-c8c2033c51d6.png)
![screen_ 1613087193](https://user-images.githubusercontent.com/1521437/107714106-f4bbab00-6ccc-11eb-96a9-13821d9b9684.png)
## Improvements
@@ -44,25 +40,22 @@ 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
* Settings stored in reVC.ini file instead of gta_vc.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)
* 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
* ...
@@ -75,11 +68,10 @@ 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)
* compare CodeWarrior build with original binary for more accurate code (very tedious)
## Modding
@@ -93,9 +85,9 @@ 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.
When using premake, you may want to point GTA_VC_RE_DIR environment variable to GTA Vice City 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.
Clone the repository with `git clone --recursive -b miami https://github.com/GTAmodding/re3.git reVC`. Then `cd reVC` into the cloned repository.
<details><summary>Linux Premake</summary>
@@ -110,11 +102,17 @@ 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 install .. reVC/master@ -if build -o reVC:audio=openal -o librw:platform=gl3 -o librw:gl3_gfxlib=glfw --build missing -s reVC: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)
@@ -125,22 +123,36 @@ For FreeBSD using premake, proceed: [Building on FreeBSD](https://github.com/GTA
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.
- Open build/reVC.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 `--lto` option if you want the project to be compiled with Link Time Optimization.
> :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: There are various settings in [config.h](https://github.com/GTAmodding/re3/tree/miami/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.
> :information_source: reVC 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.
If you feel the need, you can also use CodeWarrior 7 to compile reVC using the supplied codewarrior/reVC.mcp project - this requires the original RW34 libraries, and the DX8 SDK. The build is unstable compared to the MSVC builds though, and is mostly meant to serve as a reference.
## 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.
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.
@@ -158,7 +170,8 @@ 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 and we made very quick progress
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.

27
autoconf/LICENSE.txt Normal file
View File

@@ -0,0 +1,27 @@
Copyright (c) 2016 Blizzard Entertainment and individual contributors.
All rights reserved.
Redistribution and use in source and binary forms, with or without modification,
are permitted provided that the following conditions are met:
1. Redistributions of source code must retain the above copyright notice,
this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright notice,
this list of conditions and the following disclaimer in the documentation
and/or other materials provided with the distribution.
3. Neither the name of Premake nor the names of its contributors may be
used to endorse or promote products derived from this software without
specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

305
autoconf/api.lua Normal file
View File

@@ -0,0 +1,305 @@
---
-- Autoconfiguration.
-- Copyright (c) 2016 Blizzard Entertainment
-- Enhanced by re3
---
local p = premake
local autoconf = p.modules.autoconf
autoconf.cache = {}
autoconf.parameters = ""
---
-- register autoconfigure api.
---
p.api.register {
name = "autoconfigure",
scope = "config",
kind = "table"
}
---
-- Check for a particular include file.
--
-- @cfg : Current config.
-- @variable : The variable to store the result, such as 'HAVE_STDINT_H'.
-- @filename : The header file to check for.
---
function check_include(cfg, variable, filename)
local res = autoconf.cache_compile(cfg, variable, function ()
p.outln('#include <' .. filename .. '>')
p.outln('int main(void) { return 0; }')
end)
if res.value then
autoconf.set_value(cfg, variable, 1)
end
end
---
-- Check for size of a particular type.
--
-- @cfg : Current config.
-- @variable : The variable to use, such as 'SIZEOF_SIZE_T', this method will also add "'HAVE_' .. variable".
-- @type : The type to check.
-- @headers : An optional array of header files to include.
-- @defines : An optional array of defines to define.
---
function check_type_size(cfg, variable, type, headers, defines)
check_include(cfg, 'HAVE_SYS_TYPES_H', 'sys/types.h')
check_include(cfg, 'HAVE_STDINT_H', 'stdint.h')
check_include(cfg, 'HAVE_STDDEF_H', 'stddef.h')
local res = autoconf.cache_compile(cfg, variable .. cfg.platform,
function ()
if cfg.autoconf['HAVE_SYS_TYPES_H'] then
p.outln('#include <sys/types.h>')
end
if cfg.autoconf['HAVE_STDINT_H'] then
p.outln('#include <stdint.h>')
end
if cfg.autoconf['HAVE_STDDEF_H'] then
p.outln('#include <stddef.h>')
end
autoconf.include_defines(defines)
autoconf.include_headers(headers)
p.outln("")
p.outln("#define SIZE (sizeof(" .. type .. "))")
p.outln("char info_size[] = {'I', 'N', 'F', 'O', ':', 's','i','z','e','[',")
p.outln(" ('0' + ((SIZE / 10000)%10)),")
p.outln(" ('0' + ((SIZE / 1000)%10)),")
p.outln(" ('0' + ((SIZE / 100)%10)),")
p.outln(" ('0' + ((SIZE / 10)%10)),")
p.outln(" ('0' + (SIZE %10)),")
p.outln(" ']', '\\0'};")
p.outln("")
p.outln("int main(int argc, char *argv[]) {")
p.outln(" int require = 0;")
p.outln(" require += info_size[argc];")
p.outln(" (void)argv;")
p.outln(" return require;")
p.outln("}")
end,
function (e)
-- if the compile step succeeded, we should have a binary with 'INFO:size[*****]'
-- somewhere in there.
local content = io.readfile(e.binary)
if content then
local size = string.find(content, 'INFO:size')
if size then
e.size = tonumber(string.sub(content, size+10, size+14))
end
end
end
)
if res.size then
autoconf.set_value(cfg, 'HAVE_' .. variable, 1)
autoconf.set_value(cfg, variable, res.size)
end
end
---
-- Check if the given struct or class has the specified member variable
--
-- @cfg : current config.
-- @variable : variable to store the result.
-- @type : the name of the struct or class you are interested in
-- @member : the member which existence you want to check
-- @headers : an optional array of header files to include.
-- @defines : An optional array of defines to define.
---
function check_struct_has_member(cfg, variable, type, member, headers, defines)
local res = autoconf.cache_compile(cfg, variable, function ()
autoconf.include_defines(defines)
autoconf.include_headers(headers)
p.outln('int main(void) {')
p.outln(' (void)sizeof(((' .. type .. '*)0)->' .. member ..');')
p.outln(' return 0;')
p.outln('}')
end)
if res.value then
autoconf.set_value(cfg, variable, 1)
end
end
---
-- Check if a symbol exists as a function, variable, or macro
--
-- @cfg : current config.
-- @variable : variable to store the result.
-- @symbol : The symbol to check for.
-- @headers : an optional array of header files to include.
-- @defines : An optional array of defines to define.
---
function check_symbol_exists(cfg, variable, symbol, headers, defines)
local h = headers
local res = autoconf.cache_compile(cfg, variable, function ()
autoconf.include_defines(defines)
autoconf.include_headers(headers)
p.outln('int main(int argc, char** argv) {')
p.outln(' (void)argv;')
p.outln('#ifndef ' .. symbol)
p.outln(' return ((int*)(&' .. symbol .. '))[argc];')
p.outln('#else')
p.outln(' (void)argc;')
p.outln(' return 0;')
p.outln('#endif')
p.outln('}')
end)
if res.value then
autoconf.set_value(cfg, variable, 1)
end
end
---
-- try compiling a piece of c/c++
---
function autoconf.try_compile(cfg, cpp)
local ts = autoconf.toolset(cfg)
if ts then
return ts.try_compile(cfg, cpp, autoconf.parameters)
else
p.warnOnce('autoconf', 'no toolset found, autoconf always failing.')
end
end
function autoconf.cache_compile(cfg, entry, func, post)
if not autoconf.cache[entry] then
local cpp = p.capture(func)
local res = autoconf.try_compile(cfg, cpp)
if res then
local e = { binary = res, value = true }
if post then
post(e)
end
autoconf.cache[entry] = e
else
autoconf.cache[entry] = { }
end
end
return autoconf.cache[entry]
end
---
-- get the current configured toolset, or the default.
---
function autoconf.toolset(cfg)
local ts = p.config.toolset(cfg)
if not ts then
local tools = {
-- Actually we always return nil on msc. see msc.lua
['vs2010'] = p.tools.msc,
['vs2012'] = p.tools.msc,
['vs2013'] = p.tools.msc,
['vs2015'] = p.tools.msc,
['vs2017'] = p.tools.msc,
['vs2019'] = p.tools.msc,
['gmake'] = premake.tools.gcc,
['gmake2'] = premake.tools.gcc,
['codelite'] = premake.tools.gcc,
['xcode4'] = premake.tools.clang,
}
ts = tools[_ACTION]
end
return ts
end
---
-- store the value of the variable in the configuration
---
function autoconf.set_value(cfg, variable, value)
cfg.autoconf[variable] = value
end
---
-- write the cfg.autoconf table to the file
---
function autoconf.writefile(cfg, filename)
if cfg.autoconf then
local file = io.open(filename, "w+")
for variable, value in pairs(cfg.autoconf) do
file:write('#define ' .. variable .. ' ' .. tostring(value) .. (_eol or '\n'))
end
file:close()
end
end
---
-- Utility method to add a table of headers.
---
function autoconf.include_headers(headers)
if headers ~= nil then
if type(headers) == "table" then
for _, v in ipairs(headers) do
p.outln('#include <' .. v .. '>')
end
else
p.outln('#include <' .. headers .. '>')
end
end
end
function autoconf.include_defines(defines)
if defines ~= nil then
if type(defines) == "table" then
for _, v in ipairs(defines) do
p.outln('#define ' .. v)
end
else
p.outln('#define ' .. defines)
end
end
end
---
-- attach ourselfs to the running action.
---
p.override(p.action, 'call', function (base, name)
local a = p.action.get(name)
-- store the old callback.
local onBaseProject = a.onProject or a.onproject
-- override it with our own.
a.onProject = function(prj)
-- go through each configuration, and call the setup configuration methods.
for cfg in p.project.eachconfig(prj) do
cfg.autoconf = {}
if cfg.autoconfigure then
verbosef('Running auto config steps for "%s/%s".', prj.name, cfg.name)
for file, func in pairs(cfg.autoconfigure) do
func(cfg)
if not (file ~= "dontWrite") then
os.mkdir(cfg.objdir)
local filename = path.join(cfg.objdir, file)
autoconf.writefile(cfg, filename)
end
end
end
end
-- then call the old onProject.
if onBaseProject then
onBaseProject(prj)
end
end
-- now call the original action.call methods
base(name)
end)

18
autoconf/autoconf.lua Normal file
View File

@@ -0,0 +1,18 @@
---
-- Autoconfiguration.
-- Copyright (c) 2016 Blizzard Entertainment
---
local p = premake
if not premake.modules.autoconf then
p.modules.autoconf = {}
p.modules.autoconf._VERSION = p._VERSION
verbosef('Loading autoconf module...')
include('api.lua')
include('msc.lua')
include('clang.lua')
include('gcc.lua')
end
return p.modules.autoconf

27
autoconf/clang.lua Normal file
View File

@@ -0,0 +1,27 @@
---
-- Autoconfiguration.
-- Copyright (c) 2016 Blizzard Entertainment
---
local p = premake
local clang = p.tools.clang
function clang.try_compile(cfg, text, parameters)
-- write the text to a temporary file.
local cppFile = path.join(cfg.objdir, "temp.cpp")
if not io.writefile(cppFile, text) then
return nil
end
if parameters == nil then
parameters = ""
end
local outFile = path.join(cfg.objdir, "temp.out")
-- compile that text file.
if os.execute('clang "' .. cppFile .. '" ' .. parameters .. ' -o "' .. outFile ..'" &> /dev/null') then
return outFile
else
return nil
end
end

27
autoconf/gcc.lua Normal file
View File

@@ -0,0 +1,27 @@
---
-- Autoconfiguration.
-- Copyright (c) 2016 Blizzard Entertainment
---
local p = premake
local gcc = p.tools.gcc
function gcc.try_compile(cfg, text, parameters)
-- write the text to a temporary file.
local cppFile = path.join(cfg.objdir, "temp.cpp")
if not io.writefile(cppFile, text) then
return nil
end
if parameters == nil then
parameters = ""
end
local outFile = path.join(cfg.objdir, "temp.out")
-- compile that text file.
if os.execute('gcc "' .. cppFile .. '" ' .. parameters .. ' -o "' .. outFile ..'" &> /dev/null') then
return outFile
else
return nil
end
end

62
autoconf/msc.lua Normal file
View File

@@ -0,0 +1,62 @@
---
-- Autoconfiguration.
-- Copyright (c) 2016 Blizzard Entertainment
---
local p = premake
local msc = p.tools.msc
-- "parameters" is unused, matter of fact this file is unused - re3
function msc.try_compile(cfg, text, parameters)
return nil
--[[
-- write the text to a temporary file.
local cppFile = path.join(cfg.objdir, "temp.cpp")
if not io.writefile(cppFile, text) then
return nil
end
-- write out a batch file.
local batch = p.capture(function ()
p.outln('@echo off')
p.outln('SET mypath=%~dp0')
p.outln('pushd %mypath%')
local map = {
vs2010 = 'VS100COMNTOOLS',
vs2012 = 'VS110COMNTOOLS',
vs2013 = 'VS120COMNTOOLS',
vs2015 = 'VS140COMNTOOLS',
vs2017 = 'VS141COMNTOOLS',
vs2019 = 'VS142COMNTOOLS',
}
local a = map[_ACTION]
if a then
a = path.translate(os.getenv(a), '/')
a = path.join(a, '../../VC/vcvarsall.bat')
if cfg.platform == 'x86' then
p.outln('call "' .. a .. '" > NUL')
else
p.outln('call "' .. a .. '" amd64 > NUL')
end
p.outln('cl.exe /nologo temp.cpp > NUL')
else
error('Unsupported Visual Studio version: ' .. _ACTION)
end
end)
local batchFile = path.join(cfg.objdir, "compile.bat")
if not io.writefile(batchFile, batch) then
return nil
end
if os.execute(batchFile) then
return path.join(cfg.objdir, "temp.exe")
else
return nil
end
--]]
end

View File

@@ -28,7 +28,7 @@ find_package_handle_standard_args(MilesSDK DEFAULT_MSG MilesSDK_LIBRARIES MilesS
if(NOT TARGET MilesSDK::MilesSDK)
add_library(MilesSDK::MilesSDK UNKNOWN IMPORTED)
set_target_properties(MilesSDK::MilesSDK PROPERTIES
IMPORTED_LOCATION "${MilesSDK_LIBRARIES}
IMPORTED_LOCATION "${MilesSDK_LIBRARIES}"
INTERFACE_INCLUDE_DIRECTORIES "${MilesSDK_INCLUDE_DIR}"
)
endif()

View File

@@ -18,7 +18,7 @@ find_path(mpg123_INCLUDE_DIR mpg123.h
PATH_SUFFIXES include
)
find_library(mpg123_LIBRARIES NAMES mpg123 mpg123-0
find_library(mpg123_LIBRARIES NAMES mpg123 mpg123-0 libmpg123-0
HINTS ${PKG_MPG123_LIBRARIES}
PATHS "${mpg123_DIR}"
PATH_SUFFIXES lib

View File

@@ -0,0 +1,38 @@
if(NOT COMMAND nx_generate_nacp)
message(FATAL_ERROR "The `nx_generate_nacp` cmake command is not available. Please use an appropriate Nintendo Switch toolchain.")
endif()
if(NOT COMMAND nx_create_nro)
message(FATAL_ERROR "The `nx_create_nro` cmake command is not available. Please use an appropriate Nintendo Switch toolchain.")
endif()
set(CMAKE_EXECUTABLE_SUFFIX ".elf")
function(reVC_platform_target TARGET)
cmake_parse_arguments(RPT "INSTALL" "" "" ${ARGN})
get_target_property(TARGET_TYPE "${TARGET}" TYPE)
if(TARGET_TYPE STREQUAL "EXECUTABLE")
nx_generate_nacp(${TARGET}.nacp
NAME "${TARGET}"
AUTHOR "${${PROJECT}_AUTHOR}"
VERSION "1.0.0-${GIT_SHA1}"
)
nx_create_nro(${TARGET}
NACP ${TARGET}.nacp
ICON "${PROJECT_SOURCE_DIR}/res/images/logo_256.jpg"
)
if(${PROJECT}_INSTALL AND RPT_INSTALL)
get_target_property(TARGET_OUTPUT_NAME ${TARGET} OUTPUT_NAME)
if(NOT TARGET_OUTPUT_NAME)
set(TARGET_OUTPUT_NAME "${TARGET}")
endif()
install(FILES "${CMAKE_CURRENT_BINARY_DIR}/${TARGET_OUTPUT_NAME}.nro"
DESTINATION "."
)
endif()
endif()
endfunction()

Binary file not shown.

16096
codewarrior/reVC.mcp.xml Normal file

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 ReVCConan(ConanFile):
name = "reVC"
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("reVC with opus support requires a libsndfile built with external libs (=ogg/flac/opus/vorbis)")
@property
def _re3_audio(self):
def _reVC_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("{}" reVC)
""").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["REVC_AUDIO"] = self._reVC_audio
cmake.definitions["REVC_WITH_OPUS"] = self.options.with_opus
cmake.definitions["REVC_INSTALL"] = True
cmake.definitions["REVC_VENDORED_LIBRW"] = False
env = {}
if self._os_is_playstation2:
cmake.definitions["CMAKE_TOOLCHAIN_FILE"] = self.deps_user_info["ps2dev-cmaketoolchain"].cmake_toolchain_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.

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
# 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
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
# 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
# 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
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
# 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
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
# 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
# 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

BIN
logo.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 24 KiB

View File

@@ -1,88 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
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)"
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-xdpi="96"
inkscape:export-ydpi="96">
<defs
id="defs2" />
<sodipodi:namedview
inkscape:window-maximized="1"
inkscape:window-y="0"
inkscape:window-x="0"
inkscape:window-height="1359"
inkscape:window-width="2560"
inkscape:snap-page="true"
inkscape:showpageshadow="false"
inkscape:pagecheckerboard="false"
showgrid="false"
inkscape:document-rotation="0"
inkscape:current-layer="g837"
inkscape:document-units="mm"
inkscape:cy="544.84615"
inkscape:cx="415.73725"
inkscape:zoom="0.7"
inkscape:pageshadow="2"
inkscape:pageopacity="0"
borderopacity="1"
bordercolor="#000000"
pagecolor="#606060"
id="base"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0"
lock-margins="false"
units="px" />
<metadata
id="metadata5">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g
id="g837"
transform="matrix(2.1130708,0,0,2.1130708,14.956432,63.50059)">
<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"
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
id="g1475"
inkscape:label="Text"
style="display:inline"
transform="translate(-51.547657,-77.439255)">
<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;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:#000000;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"
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="path1452"
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"
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>
</svg>

Before

Width:  |  Height:  |  Size: 9.2 KiB

View File

@@ -1,10 +1,3 @@
newoption {
trigger = "glewdir",
value = "PATH",
description = "Directory of GLEW",
default = "vendor/glew-2.1.0"
}
newoption {
trigger = "glfwdir64",
value = "PATH",
@@ -35,10 +28,22 @@ newoption {
}
newoption {
trigger = "lto",
description = "Use link time optimization"
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
@@ -63,10 +68,10 @@ function getarch(a)
return a
end
workspace "re3"
workspace "reVC"
language "C++"
configurations { "Debug", "Release", "Vanilla" }
startproject "re3"
configurations { "Debug", "Release" }
startproject "reVC"
location "build"
symbols "Full"
staticruntime "off"
@@ -77,11 +82,12 @@ workspace "re3"
end
filter { "system:windows" }
configurations { "Vanilla" }
platforms {
"win-x86-RW33_d3d8-mss",
"win-x86-RW34_d3d8-mss",
"win-x86-librw_d3d9-mss",
"win-x86-librw_gl3_glfw-mss",
"win-x86-RW33_d3d8-oal",
"win-x86-RW34_d3d8-oal",
"win-x86-librw_d3d9-oal",
"win-x86-librw_gl3_glfw-oal",
"win-amd64-librw_d3d9-oal",
@@ -116,13 +122,10 @@ workspace "re3"
filter "configurations:not Debug"
defines { "NDEBUG" }
optimize "Speed"
if(_OPTIONS["lto"]) then
if(_OPTIONS["with-lto"]) then
flags { "LinkTimeOptimization" }
end
filter "configurations:Vanilla"
defines { "VANILLA_DEFINES" }
filter { "platforms:win*" }
system "windows"
@@ -144,12 +147,18 @@ workspace "re3"
filter { "platforms:*arm*" }
architecture "ARM"
filter { "platforms:macosx-arm64-*" }
filter { "platforms:macosx-arm64-*", "files:**.cpp"}
buildoptions { "-target", "arm64-apple-macos11", "-std=gnu++14" }
filter { "platforms:macosx-amd64-*" }
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
@@ -158,7 +167,6 @@ workspace "re3"
filter "platforms:*librw_gl3_glfw*"
defines { "RW_GL3" }
includedirs { path.join(_OPTIONS["glewdir"], "include") }
if(not _OPTIONS["with-librw"]) then
libdirs { path.join(Librw, "lib/%{getsys(cfg.system)}-%{getarch(cfg.architecture)}-gl3/%{cfg.buildcfg}") }
end
@@ -169,9 +177,6 @@ workspace "re3"
filter "platforms:*amd64-librw_gl3_glfw*"
includedirs { path.join(_OPTIONS["glfwdir64"], "include") }
filter "platforms:win*librw_gl3_glfw*"
defines { "GLEW_STATIC" }
filter {}
function setpaths (gamepath, exepath)
@@ -196,6 +201,7 @@ project "librw"
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"
@@ -212,8 +218,14 @@ project "librw"
includedirs { "/usr/local/include" }
libdirs { "/usr/local/lib" }
filter "platforms:macosx*"
-- Support MacPorts and Homebrew
-- 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" }
@@ -222,7 +234,7 @@ project "librw"
filter "platforms:*gl3_glfw*"
staticruntime "off"
filter "platforms:*RW33*"
filter "platforms:*RW34*"
flags { "ExcludeFromBuild" }
filter {}
end
@@ -231,9 +243,9 @@ local function addSrcFiles( prefix )
return prefix .. "/*cpp", prefix .. "/*.h", prefix .. "/*.c", prefix .. "/*.ico", prefix .. "/*.rc"
end
project "re3"
project "reVC"
kind "WindowedApp"
targetname "re3"
targetname "reVC"
targetdir "bin/%{cfg.platform}/%{cfg.buildcfg}"
if(_OPTIONS["with-librw"]) then
@@ -254,7 +266,7 @@ project "re3"
files { addSrcFiles("src/modelinfo") }
files { addSrcFiles("src/objects") }
files { addSrcFiles("src/peds") }
files { addSrcFiles("src/render") }
files { addSrcFiles("src/renderer") }
files { addSrcFiles("src/rw") }
files { addSrcFiles("src/save") }
files { addSrcFiles("src/skel") }
@@ -263,7 +275,11 @@ project "re3"
files { addSrcFiles("src/vehicles") }
files { addSrcFiles("src/weapons") }
files { addSrcFiles("src/extras") }
files { "src/extras/GitSHA1.cpp" } -- this won't be in repo in first build
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" }
@@ -279,7 +295,7 @@ project "re3"
includedirs { "src/modelinfo" }
includedirs { "src/objects" }
includedirs { "src/peds" }
includedirs { "src/render" }
includedirs { "src/renderer" }
includedirs { "src/rw" }
includedirs { "src/save/" }
includedirs { "src/skel/" }
@@ -289,12 +305,19 @@ project "re3"
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" }
@@ -313,8 +336,8 @@ project "re3"
defines { "AUDIO_OAL" }
filter {}
if(os.getenv("GTA_III_RE_DIR")) then
setpaths(os.getenv("GTA_III_RE_DIR") .. "/", "%(cfg.buildtarget.name)")
if(os.getenv("GTA_VC_RE_DIR")) then
setpaths(os.getenv("GTA_VC_RE_DIR") .. "/", "%(cfg.buildtarget.name)")
end
filter "platforms:win*"
@@ -324,18 +347,39 @@ project "re3"
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
prebuildcommands { '"%{prj.location}..\\printHash.bat" "%{prj.location}..\\src\\extras\\GitSHA1.cpp"' }
if(not _OPTIONS["no-git-hash"]) then
prebuildcommands { '"%{prj.location}..\\printHash.bat" "%{prj.location}..\\src\\extras\\GitSHA1.cpp"' }
end
filter "platforms:not win*"
prebuildcommands { '"%{prj.location}/../printHash.sh" "%{prj.location}/../src/extras/GitSHA1.cpp"' }
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" }
@@ -359,6 +403,12 @@ project "re3"
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" }
@@ -369,10 +419,10 @@ project "re3"
links { "opusfile" }
end
filter "platforms:*RW33*"
filter "platforms:*RW34*"
includedirs { "sdk/rwsdk/include/d3d8" }
libdirs { "sdk/rwsdk/lib/d3d8/release" }
links { "rwcore", "rpworld", "rpmatfx", "rpskin", "rphanim", "rtbmp", "rtquat", "rtcharse", "rpanisot" }
links { "rwcore", "rpworld", "rpmatfx", "rpskin", "rphanim", "rtbmp", "rtquat", "rtanim", "rtcharse", "rpanisot" }
defines { "RWLIBS" }
linkoptions "/SECTION:_rwcseg,ER!W /MERGE:_rwcseg=.text"
@@ -395,27 +445,33 @@ project "re3"
libdirs { "sdk/dx8sdk/lib" }
filter "platforms:win-x86*gl3_glfw*"
libdirs { path.join(_OPTIONS["glewdir"], "lib/Release/Win32") }
libdirs { path.join(_OPTIONS["glfwdir32"], "lib-" .. string.gsub(_ACTION or '', "vs", "vc")) }
links { "opengl32", "glew32s", "glfw3" }
links { "opengl32", "glfw3" }
filter "platforms:win-amd64*gl3_glfw*"
libdirs { path.join(_OPTIONS["glewdir"], "lib/Release/x64") }
libdirs { path.join(_OPTIONS["glfwdir64"], "lib-" .. string.gsub(_ACTION or '', "vs", "vc")) }
links { "opengl32", "glew32s", "glfw3" }
links { "opengl32", "glfw3" }
filter "platforms:linux*gl3_glfw*"
links { "GL", "GLEW", "glfw" }
links { "GL", "glfw" }
filter "platforms:bsd*gl3_glfw*"
links { "GL", "GLEW", "glfw", "sysinfo" }
links { "GL", "glfw", "sysinfo" }
includedirs { "/usr/local/include" }
libdirs { "/usr/local/lib" }
filter "platforms:macosx*gl3_glfw*"
links { "GLEW", "glfw" }
filter "platforms:macosx-arm64-*gl3_glfw*"
links { "glfw" }
linkoptions { "-framework OpenGL" }
includedirs { "/opt/local/include" }
includedirs { "/usr/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

@@ -1,12 +1,14 @@
#!/usr/bin/env bash
#!/usr/bin/env sh
if [ -z "${1}" ]
then
printf "%s\n" "Input the path to the file for writing the commit hash to."
else
printf "%s" "#define GIT_SHA1 \"" > $1
> $1
if (command -v "git" >/dev/null) then
git rev-parse --short HEAD | tr -d '\n' >> $1
fi
echo -n "#define GIT_SHA1 \"" > $1
if (command -v "git" >/dev/null) then
git rev-parse --short HEAD | tr -d '\n' >> $1
printf "%s\n" "\"" >> $1
printf "%s\n" "const char* g_GIT_SHA1 = GIT_SHA1;" >> $1
fi
echo "\"" >> $1
echo "const char* g_GIT_SHA1 = GIT_SHA1;" >> $1

162
res/images/logo.svg Normal file
View File

@@ -0,0 +1,162 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
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="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_final.png"
inkscape:export-xdpi="96"
inkscape:export-ydpi="96">
<defs
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"
inkscape:window-x="0"
inkscape:window-height="1359"
inkscape:window-width="2560"
inkscape:snap-page="true"
inkscape:showpageshadow="false"
inkscape:pagecheckerboard="false"
showgrid="false"
inkscape:document-rotation="0"
inkscape:current-layer="svg8"
inkscape:document-units="mm"
inkscape:cy="624.20389"
inkscape:cx="108.63858"
inkscape:zoom="0.7"
inkscape:pageshadow="2"
inkscape:pageopacity="0"
borderopacity="1"
bordercolor="#000000"
pagecolor="#606060"
id="base"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0"
lock-margins="false"
units="px" />
<metadata
id="metadata5">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g
id="g837"
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.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
id="g1475"
inkscape:label="Text"
style="display:inline"
transform="translate(-51.547657,-77.439255)">
<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;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:#000000;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"
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="path1452"
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.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>

After

Width:  |  Height:  |  Size: 21 KiB

BIN
res/images/logo_1024.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 57 KiB

BIN
res/images/logo_256.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

View File

@@ -39,7 +39,7 @@ target_compile_definitions(${EXECUTABLE}
PRIVATE
$<IF:$<CONFIG:DEBUG>,DEBUG,NDEBUG>
LIBRW
${PROJECT}_NO_AUTOLINK
CMAKE_NO_AUTOLINK
)
if(LIBRW_PLATFORM_D3D9)
@@ -50,12 +50,17 @@ if(LIBRW_PLATFORM_D3D9)
endif()
target_compile_definitions(${EXECUTABLE} PRIVATE CMAKE_BUILD)
target_compile_definitions(${EXECUTABLE} PRIVATE USE_OUR_VERSIONING)
if(${PROJECT}_AUDIO STREQUAL "OAL")
find_package(OpenAL REQUIRED)
target_include_directories(${EXECUTABLE} PRIVATE ${OPENAL_INCLUDE_DIR})
target_link_libraries(${EXECUTABLE} PRIVATE ${OPENAL_LIBRARY})
target_compile_definitions(${EXECUTABLE} PRIVATE ${OPENAL_DEFINITIONS})
if(TARGET OpenAL::OpenAL)
target_link_libraries(${EXECUTABLE} PRIVATE OpenAL::OpenAL)
else()
target_include_directories(${EXECUTABLE} PRIVATE ${OPENAL_INCLUDE_DIR})
target_link_libraries(${EXECUTABLE} PRIVATE ${OPENAL_LIBRARY})
target_compile_definitions(${EXECUTABLE} PRIVATE ${OPENAL_DEFINITIONS})
endif()
target_compile_definitions(${EXECUTABLE} PRIVATE AUDIO_OAL)
elseif(${PROJECT}_AUDIO STREQUAL "MSS")
find_package(MilesSDK REQUIRED)
@@ -119,13 +124,35 @@ elseif(CMAKE_CXX_COMPILER_ID STREQUAL "MSVC")
)
endif()
if(NINTENDO_SWITCH)
set(${PROJECT}_C_CXX_EXTENSIONS ON)
else()
set(${PROJECT}_C_CXX_EXTENSIONS OFF)
endif()
if(LIBRW_PLATFORM_GL3 AND LIBRW_GL3_GFXLIB STREQUAL "GLFW")
include(CheckSymbolExists)
set(CMAKE_REQUIRED_LIBRARIES glfw)
set(CMAKE_REQUIRED_DEFINITIONS -DGLFW_EXPOSE_NATIVE_X11)
check_symbol_exists(glfwGetX11Display "GLFW/glfw3.h;GLFW/glfw3native.h" GLFW_HAS_X11)
unset(CMAKE_REQUIRED_DEFINITIONS)
unset(CMAKE_REQUIRED_LIBRARIES)
if (GLFW_HAS_X11)
find_package(X11 REQUIRED)
target_link_libraries(${EXECUTABLE} PRIVATE X11::X11)
target_compile_definitions(${EXECUTABLE} PRIVATE GET_KEYBOARD_INPUT_FROM_X11)
endif (GLFW_HAS_X11)
endif()
set_target_properties(${EXECUTABLE}
PROPERTIES
C_STANDARD 11
C_EXTENSIONS OFF
C_EXTENSIONS ${${PROJECT}_C_CXX_EXTENSIONS}
C_STANDARD_REQUIRED ON
CXX_STANDARD 11
CXX_EXTENSIONS OFF
CXX_EXTENSIONS ${${PROJECT}_C_CXX_EXTENSIONS}
CXX_STANDARD_REQUIRED ON
)
@@ -139,3 +166,5 @@ if(${PROJECT}_INSTALL)
install(FILES $<TARGET_PDB_FILE:${EXECUTABLE}> DESTINATION "." OPTIONAL)
endif()
endif()
reVC_platform_target(${EXECUTABLE} INSTALL)

View File

@@ -12,6 +12,7 @@
#include "General.h"
#include "RwHelper.h"
#include "ModelIndices.h"
#include "ModelInfo.h"
#include "AnimManager.h"
#include "RpAnimBlend.h"
@@ -20,8 +21,11 @@
CAnimBlendAssocGroup::CAnimBlendAssocGroup(void)
{
animBlock = nil;
assocList = nil;
numAssociations = 0;
firstAnimId = 0;
groupId = -1;
}
CAnimBlendAssocGroup::~CAnimBlendAssocGroup(void)
@@ -42,7 +46,7 @@ CAnimBlendAssocGroup::DestroyAssociations(void)
CAnimBlendAssociation*
CAnimBlendAssocGroup::GetAnimation(uint32 id)
{
return &assocList[id];
return &assocList[id - firstAnimId];
}
CAnimBlendAssociation*
@@ -52,6 +56,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,7 +106,7 @@ strcmpIgnoringDigits(const char *s1, const char *s2)
c2 = __ascii_toupper(c2);
#endif
if(c1 != c2)
if(c1 && c2 && c1 != c2)
return false;
}
}
@@ -111,6 +116,15 @@ GetModelFromName(const char *name)
{
int i;
CBaseModelInfo *mi;
char playername[32];
if(strncasecmp(name, "CSplay", 6) == 0 &&
strncasecmp(CModelInfo::GetModelInfo(MI_PLAYER)->GetModelName(), "ig", 2) == 0){
strcpy(playername, CModelInfo::GetModelInfo(MI_PLAYER)->GetModelName());
playername[0] = 'C';
playername[1] = 'S';
name = playername;
}
for(i = 0; i < MODELINFOSIZE; i++){
mi = CModelInfo::GetModelInfo(i);
@@ -127,8 +141,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 +150,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 +171,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 +180,8 @@ 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;
}

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);

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;

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;
int 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,16 @@ 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 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

@@ -3,7 +3,6 @@
#include "AnimBlendClumpData.h"
#include "MemoryMgr.h"
CAnimBlendClumpData::CAnimBlendClumpData(void)
{
numFrames = 0;

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,57 @@
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_MEDIC,
ASSOCGRP_SUNBATHE,
ASSOCGRP_PLAYER_IDLE,
ASSOCGRP_RIOT,
ASSOCGRP_STRIP,
ASSOCGRP_LANCE,
ASSOCGRP_PLAYER,
ASSOCGRP_PLAYERROCKET,
ASSOCGRP_PLAYER1ARMED,
ASSOCGRP_PLAYER2ARMED,
ASSOCGRP_PLAYERBBBAT,
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,
@@ -31,6 +64,9 @@ enum AssocGroupId
ASSOCGRP_ROCKETBACK,
ASSOCGRP_ROCKETLEFT,
ASSOCGRP_ROCKETRIGHT,
ASSOCGRP_CHAINSAWBACK,
ASSOCGRP_CHAINSAWLEFT,
ASSOCGRP_CHAINSAWRIGHT,
#endif
NUM_ANIM_ASSOC_GROUPS
@@ -39,11 +75,15 @@ enum AssocGroupId
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 +117,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 +138,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

@@ -42,9 +42,6 @@ enum AnimationId
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,
@@ -54,42 +51,6 @@ enum AnimationId
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,
@@ -106,6 +67,23 @@ enum AnimationId
/**/
ANIM_STD_PARTIAL_PUNCH,
/* names made up */
ANIM_STD_FIGHT_JAB,
ANIM_STD_FIGHT_ELBOW_L,
ANIM_STD_FIGHT_ELBOW_R,
ANIM_STD_FIGHT_BKICK_L,
ANIM_STD_FIGHT_BKICK_R,
/**/
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 +102,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 +128,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,6 +169,9 @@ 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_XPRESS_SCRATCH,
@@ -190,15 +179,12 @@ enum AnimationId
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 +192,96 @@ 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,
};

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,94 +16,92 @@
#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"
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 }
{ "ASS_1", STREAMED_SOUND_CUTSCENE_ASS_1 },
{ "ASS_2", STREAMED_SOUND_CUTSCENE_ASS_2 },
{ "BANK_1", STREAMED_SOUND_CUTSCENE_BANK_1 },
{ "BANK_2A", STREAMED_SOUND_CUTSCENE_BANK_2A },
{ "BANK_2B", STREAMED_SOUND_CUTSCENE_BANK_2B },
{ "BANK_3A", STREAMED_SOUND_CUTSCENE_BANK_3A },
{ "BANK_3B", STREAMED_SOUND_CUTSCENE_BANK_3B },
{ "BANK_4", STREAMED_SOUND_CUTSCENE_BANK_4 },
{ "BIKE_1", STREAMED_SOUND_CUTSCENE_BIKE_1 },
{ "BIKE_2", STREAMED_SOUND_CUTSCENE_BIKE_2 },
{ "BIKE_3", STREAMED_SOUND_CUTSCENE_BIKE_3 },
{ "BUD_1", STREAMED_SOUND_CUTSCENE_BUD_1 },
{ "BUD_2", STREAMED_SOUND_CUTSCENE_BUD_2 },
{ "BUD_3", STREAMED_SOUND_CUTSCENE_BUD_3 },
{ "CAP_1", STREAMED_SOUND_CUTSCENE_CAP_1 },
{ "CAR_1", STREAMED_SOUND_CUTSCENE_CAR_1 },
{ "CNT_1A", STREAMED_SOUND_CUTSCENE_CNT_1A },
{ "CNT_1B", STREAMED_SOUND_CUTSCENE_CNT_1B },
{ "CNT_2", STREAMED_SOUND_CUTSCENE_CNT_2 },
{ "COK_1", STREAMED_SOUND_CUTSCENE_COK_1 },
{ "COK_2A", STREAMED_SOUND_CUTSCENE_COK_2A },
{ "COK_2B", STREAMED_SOUND_CUTSCENE_COK_2B },
{ "COK_3", STREAMED_SOUND_CUTSCENE_COK_3 },
{ "COK_4A", STREAMED_SOUND_CUTSCENE_COK_4A },
{ "COK_4A2", STREAMED_SOUND_CUTSCENE_COK_4A2 },
{ "COK_4B", STREAMED_SOUND_CUTSCENE_COK_4B },
{ "COL_1", STREAMED_SOUND_CUTSCENE_COL_1 },
{ "COL_2", STREAMED_SOUND_CUTSCENE_COL_2 },
{ "COL_3A", STREAMED_SOUND_CUTSCENE_COL_3A },
{ "COL_4A", STREAMED_SOUND_CUTSCENE_COL_4A },
{ "COL_5A", STREAMED_SOUND_CUTSCENE_COL_5A },
{ "COL_5B", STREAMED_SOUND_CUTSCENE_COL_5B },
{ "CUB_1", STREAMED_SOUND_CUTSCENE_CUB_1 },
{ "CUB_2", STREAMED_SOUND_CUTSCENE_CUB_2 },
{ "CUB_3", STREAMED_SOUND_CUTSCENE_CUB_3 },
{ "CUB_4", STREAMED_SOUND_CUTSCENE_CUB_4 },
{ "DRUG_1", STREAMED_SOUND_CUTSCENE_DRUG_1 },
{ "FIN", STREAMED_SOUND_CUTSCENE_FIN },
{ "FIN_2", STREAMED_SOUND_CUTSCENE_FIN2 },
{ "FINALE", STREAMED_SOUND_CUTSCENE_FINALE },
{ "HAT_1", STREAMED_SOUND_CUTSCENE_HAT_1 },
{ "HAT_2", STREAMED_SOUND_CUTSCENE_HAT_2 },
{ "HAT_3", STREAMED_SOUND_CUTSCENE_HAT_3 },
{ "ICE_1", STREAMED_SOUND_CUTSCENE_ICE_1 },
{ "INT_A", STREAMED_SOUND_CUTSCENE_INT_A },
{ "INT_B", STREAMED_SOUND_CUTSCENE_INT_B },
{ "INT_D", STREAMED_SOUND_CUTSCENE_INT_D },
{ "INT_M", STREAMED_SOUND_CUTSCENE_INT_M },
{ "LAW_1A", STREAMED_SOUND_CUTSCENE_LAW_1A },
{ "LAW_1B", STREAMED_SOUND_CUTSCENE_LAW_1B },
{ "LAW_2A", STREAMED_SOUND_CUTSCENE_LAW_2A },
{ "LAW_2B", STREAMED_SOUND_CUTSCENE_LAW_2B },
{ "LAW_2C", STREAMED_SOUND_CUTSCENE_LAW_2C },
{ "LAW_3", STREAMED_SOUND_CUTSCENE_LAW_3 },
{ "LAW_4", STREAMED_SOUND_CUTSCENE_LAW_4 },
{ "PHIL_1", STREAMED_SOUND_CUTSCENE_PHIL_1 },
{ "PHIL_2", STREAMED_SOUND_CUTSCENE_PHIL_2 },
{ "PORN_1", STREAMED_SOUND_CUTSCENE_PORN_1 },
{ "PORN_2", STREAMED_SOUND_CUTSCENE_PORN_2 },
{ "PORN_3", STREAMED_SOUND_CUTSCENE_PORN_3 },
{ "PORN_4", STREAMED_SOUND_CUTSCENE_PORN_4 },
{ "RESC_1A", STREAMED_SOUND_CUTSCENE_RESC_1A },
{ "ROK_1", STREAMED_SOUND_CUTSCENE_ROK_1 },
{ "ROK_2", STREAMED_SOUND_CUTSCENE_ROK_2 },
{ "ROK_3A", STREAMED_SOUND_CUTSCENE_ROK_3A },
{ "STRIPA", STREAMED_SOUND_CUTSCENE_STRIPA },
{ "TAX_1", STREAMED_SOUND_CUTSCENE_TAX_1 },
{ "TEX_1", STREAMED_SOUND_CUTSCENE_TEX_1 },
{ "TEX_2", STREAMED_SOUND_CUTSCENE_TEX_2 },
{ "TEX_3", STREAMED_SOUND_CUTSCENE_TEX_3 },
{ "GSPOT", STREAMED_SOUND_CUTSCENE_GLIGHT },
{ "FIST", STREAMED_SOUND_CUTSCENE_FIST },
{ "EL_PH1", STREAMED_SOUND_CUTSCENE_ELBURRO1_PH1 },
{ "EL_PH2", STREAMED_SOUND_CUTSCENE_ELBURRO2_PH2 },
{ NULL, 0 }
};
int
@@ -128,7 +126,18 @@ char CCutsceneMgr::ms_cutsceneName[CUTSCENENAMESIZE];
CAnimBlendAssocGroup CCutsceneMgr::ms_cutsceneAssociations;
CVector CCutsceneMgr::ms_cutsceneOffset;
float CCutsceneMgr::ms_cutsceneTimer;
bool CCutsceneMgr::ms_wasCutsceneSkipped;
uint32 CCutsceneMgr::ms_cutsceneLoadStatus;
bool CCutsceneMgr::ms_useCutsceneShadows = true;
bool bCamLoaded;
bool bIsEverythingRemovedFromTheWorldForTheBiggestFuckoffCutsceneEver; // pls don't shrink the name :P
int32 NumberOfSavedWeapons;
eWeaponType SavedWeaponIDs[TOTAL_WEAPON_SLOTS];
int32 SavedWeaponAmmo[TOTAL_WEAPON_SLOTS];
char uncompressedAnims[8][32];
uint32 numUncompressedAnims;
RpAtomic *
CalculateBoundingSphereRadiusCB(RpAtomic *atomic, void *data)
@@ -150,13 +159,17 @@ CCutsceneMgr::Initialise(void)
{
ms_numCutsceneObjs = 0;
ms_loaded = false;
ms_wasCutsceneSkipped = false;
ms_running = false;
ms_useLodMultiplier = false;
ms_animLoaded = false;
ms_cutsceneProcessing = false;
ms_useLodMultiplier = false;
ms_pCutsceneDir = new CDirectory(CUTSCENEDIRSIZE);
ms_pCutsceneDir->ReadDirFile("ANIM\\CUTS.DIR");
numUncompressedAnims = 0;
uncompressedAnims[0][0] = '\0';
}
void
@@ -174,9 +187,10 @@ CCutsceneMgr::LoadCutsceneData(const char *szCutsceneName)
CPlayerPed *pPlayerPed;
ms_cutsceneProcessing = true;
if (!strcasecmp(szCutsceneName, "jb"))
ms_useLodMultiplier = true;
CTimer::Stop();
ms_wasCutsceneSkipped = false;
CTimer::Suspend();
if (!bIsEverythingRemovedFromTheWorldForTheBiggestFuckoffCutsceneEver)
CStreaming::RemoveCurrentZonesModels();
ms_pCutsceneDir->numEntries = 0;
ms_pCutsceneDir->ReadDirFile("ANIM\\CUTS.DIR");
@@ -185,32 +199,42 @@ CCutsceneMgr::LoadCutsceneData(const char *szCutsceneName)
CGame::DrasticTidyUpMemory(true);
strcpy(ms_cutsceneName, szCutsceneName);
file = CFileMgr::OpenFile("ANIM\\CUTS.IMG", "rb");
RwStream *stream;
stream = RwStreamOpen(rwSTREAMFILENAME, rwSTREAMREAD, "ANIM\\CUTS.IMG");
assert(stream);
// 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);
RwStreamSkip(stream, offset << 11);
CAnimManager::LoadAnimFile(stream, true, uncompressedAnims);
ms_cutsceneAssociations.CreateAssociations(szCutsceneName);
CStreaming::IHaveUsedStreamingMemory();
ms_animLoaded = true;
} else {
ms_animLoaded = false;
}
RwStreamClose(stream, nil);
// Load camera data
file = CFileMgr::OpenFile("ANIM\\CUTS.IMG", "rb");
sprintf(gString, "%s.DAT", szCutsceneName);
if (ms_pCutsceneDir->FindItem(gString, offset, size)) {
CStreaming::ImGonnaUseStreamingMemory();
CFileMgr::Seek(file, offset << 11, SEEK_SET);
TheCamera.LoadPathSplines(file);
CStreaming::IHaveUsedStreamingMemory();
bCamLoaded = true;
} else {
bCamLoaded = false;
}
CFileMgr::CloseFile(file);
if (CGeneral::faststricmp(ms_cutsceneName, "end")) {
if (CGeneral::faststricmp(ms_cutsceneName, "finale")) {
DMAudio.ChangeMusicMode(MUSICMODE_CUTSCENE);
int trackId = FindCutsceneAudioTrackId(szCutsceneName);
if (trackId != -1) {
@@ -225,30 +249,23 @@ CCutsceneMgr::LoadCutsceneData(const char *szCutsceneName)
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);
CTimer::Resume();
}
void
CCutsceneMgr::FinishCutscene()
{
CCutsceneMgr::ms_cutsceneTimer = TheCamera.GetCutSceneFinishTime() * 0.001f;
TheCamera.FinishCutscene();
ms_wasCutsceneSkipped = true;
if (bCamLoaded) {
CCutsceneMgr::ms_cutsceneTimer = TheCamera.GetCutSceneFinishTime() * 0.001f;
TheCamera.FinishCutscene();
}
FindPlayerPed()->bIsVisible = true;
CWorld::Players[CWorld::PlayerInFocus].MakePlayerSafe(false);
@@ -257,9 +274,11 @@ CCutsceneMgr::FinishCutscene()
void
CCutsceneMgr::SetupCutsceneToStart(void)
{
TheCamera.SetCamCutSceneOffSet(ms_cutsceneOffset);
TheCamera.TakeControlWithSpline(JUMP_CUT);
TheCamera.SetWideScreenOn();
if (bCamLoaded) {
TheCamera.SetCamCutSceneOffSet(ms_cutsceneOffset);
TheCamera.TakeControlWithSpline(JUMP_CUT);
TheCamera.SetWideScreenOn();
}
ms_cutsceneOffset.z++;
@@ -267,12 +286,27 @@ CCutsceneMgr::SetupCutsceneToStart(void)
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]);
if (ms_pCutsceneObjects[i]->m_pAttachTo != nil) {
pAnimBlendAssoc->flags &= (~ASSOC_HAS_TRANSLATION);
} else {
if (pAnimBlendAssoc->hierarchy->IsCompressed()){
KeyFrameTransCompressed *keyFrames = ((KeyFrameTransCompressed*)pAnimBlendAssoc->hierarchy->sequences[0].GetKeyFrameCompressed(0));
CVector trans;
keyFrames->GetTranslation(&trans);
ms_pCutsceneObjects[i]->SetPosition(ms_cutsceneOffset + trans);
}else{
KeyFrameTrans *keyFrames = ((KeyFrameTrans*)pAnimBlendAssoc->hierarchy->sequences[0].GetKeyFrame(0));
ms_pCutsceneObjects[i]->SetPosition(ms_cutsceneOffset + keyFrames->translation);
}
}
pAnimBlendAssoc->SetRun();
} else {
ms_pCutsceneObjects[i]->SetPosition(ms_cutsceneOffset);
}
CWorld::Add(ms_pCutsceneObjects[i]);
if (RwObjectGetType(ms_pCutsceneObjects[i]->m_rwObject) == rpCLUMP) {
ms_pCutsceneObjects[i]->UpdateRpHAnim();
}
}
CTimer::Update();
@@ -288,25 +322,55 @@ CCutsceneMgr::SetCutsceneAnim(const char *animName, CObject *pObject)
CAnimBlendClumpData *pAnimBlendClumpData;
assert(RwObjectGetType(pObject->m_rwObject) == rpCLUMP);
debug("Give cutscene anim %s\n", animName);
RpAnimBlendClumpRemoveAllAssociations((RpClump*)pObject->m_rwObject);
pNewAnim = ms_cutsceneAssociations.GetAnimation(animName);
if (!pNewAnim) {
debug("\n\nHaven't I told you I can't find the fucking animation %s\n\n\n", animName);
return;
}
if (pNewAnim->hierarchy->IsCompressed())
pNewAnim->hierarchy->keepCompressed = true;
CStreaming::ImGonnaUseStreamingMemory();
pNewAnim = ms_cutsceneAssociations.CopyAnimation(animName);
CStreaming::IHaveUsedStreamingMemory();
pNewAnim->SetCurrentTime(0.0f);
pNewAnim->flags |= ASSOC_HAS_TRANSLATION;
pNewAnim->flags &= ~ASSOC_RUNNING;
pAnimBlendClumpData = *RPANIMBLENDCLUMPDATA(pObject->m_rwObject);
pAnimBlendClumpData->link.Prepend(&pNewAnim->link);
if (pNewAnim->hierarchy->keepCompressed)
pAnimBlendClumpData->frames->flag |= AnimBlendFrameData::COMPRESSED;
}
void
CCutsceneMgr::SetCutsceneAnimToLoop(const char* animName)
{
ms_cutsceneAssociations.GetAnimation(animName)->flags |= ASSOC_REPEAT;
}
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;
return nil;
}
void UpdateCutsceneObjectBoundingBox(RpClump* clump, int modelId)
{
if (modelId >= MI_CUTOBJ01 && modelId <= MI_CUTOBJ05) {
CColModel* pColModel = &CTempColModels::ms_colModelCutObj[modelId - MI_CUTOBJ01];
float radius = 0.0f;
RpClumpForAllAtomics(clump, CalculateBoundingSphereRadiusCB, &radius);
pColModel->boundingSphere.radius = radius;
pColModel->boundingBox.min = CVector(-radius, -radius, -radius);
pColModel->boundingBox.max = CVector(radius, radius, radius);
}
}
CCutsceneObject *
@@ -314,20 +378,25 @@ CCutsceneMgr::CreateCutsceneObject(int modelId)
{
CBaseModelInfo *pModelInfo;
CColModel *pColModel;
float radius;
RpClump *clump;
CCutsceneObject *pCutsceneObject;
CStreaming::ImGonnaUseStreamingMemory();
debug("Created cutscene object %s\n", CModelInfo::GetModelInfo(modelId)->GetModelName());
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);
UpdateCutsceneObjectBoundingBox((RpClump*)pModelInfo->GetRwObject(), modelId);
} else if (modelId >= MI_SPECIAL01 && modelId <= MI_SPECIAL21) {
pModelInfo = CModelInfo::GetModelInfo(modelId);
if (pModelInfo->GetColModel() == &CTempColModels::ms_colModelPed1) {
CColModel *colModel = new CColModel();
colModel->boundingSphere.radius = 2.0f;
colModel->boundingSphere.center = CVector(0.0f, 0.0f, 0.0f);
pModelInfo->SetColModel(colModel, true);
}
pColModel = pModelInfo->GetColModel();
float radius = 2.0f;
pColModel->boundingSphere.radius = radius;
pColModel->boundingBox.min = CVector(-radius, -radius, -radius);
pColModel->boundingBox.max = CVector(radius, radius, radius);
@@ -335,7 +404,10 @@ CCutsceneMgr::CreateCutsceneObject(int modelId)
pCutsceneObject = new CCutsceneObject();
pCutsceneObject->SetModelIndex(modelId);
if (ms_useCutsceneShadows)
pCutsceneObject->CreateShadow();
ms_pCutsceneObjects[ms_numCutsceneObjs++] = pCutsceneObject;
CStreaming::IHaveUsedStreamingMemory();
return pCutsceneObject;
}
@@ -343,9 +415,11 @@ void
CCutsceneMgr::DeleteCutsceneData(void)
{
if (!ms_loaded) return;
CTimer::Suspend();
ms_cutsceneProcessing = false;
ms_useLodMultiplier = false;
ms_useCutsceneShadows = true;
for (--ms_numCutsceneObjs; ms_numCutsceneObjs >= 0; ms_numCutsceneObjs--) {
CWorld::Remove(ms_pCutsceneObjects[ms_numCutsceneObjs]);
@@ -355,12 +429,27 @@ CCutsceneMgr::DeleteCutsceneData(void)
}
ms_numCutsceneObjs = 0;
for (int i = MI_SPECIAL01; i < MI_SPECIAL21; i++) {
CBaseModelInfo *minfo = CModelInfo::GetModelInfo(i);
CColModel *colModel = minfo->GetColModel();
if (colModel != &CTempColModels::ms_colModelPed1) {
delete colModel;
minfo->SetColModel(&CTempColModels::ms_colModelPed1);
}
}
if (ms_animLoaded)
CAnimManager::RemoveLastAnimFile();
ms_animLoaded = false;
TheCamera.RestoreWithJumpCut();
TheCamera.SetWideScreenOff();
numUncompressedAnims = 0;
uncompressedAnims[0][0] = '\0';
if (bCamLoaded) {
TheCamera.RestoreWithJumpCut();
TheCamera.SetWideScreenOff();
TheCamera.DeleteCutSceneCamDataMemory();
}
ms_running = false;
ms_loaded = false;
@@ -368,14 +457,42 @@ CCutsceneMgr::DeleteCutsceneData(void)
CPad::GetPad(0)->SetEnablePlayerControls(PLAYERCONTROL_CUTSCENE);
CWorld::Players[CWorld::PlayerInFocus].MakePlayerSafe(false);
if (CGeneral::faststricmp(ms_cutsceneName, "end")) {
if (CGeneral::faststricmp(ms_cutsceneName, "finale")) {
DMAudio.StopCutSceneMusic();
if (CGeneral::faststricmp(ms_cutsceneName, "bet"))
DMAudio.ChangeMusicMode(MUSICMODE_GAME);
DMAudio.ChangeMusicMode(MUSICMODE_GAME);
}
CTimer::Stop();
CGame::DrasticTidyUpMemory(TheCamera.GetScreenFadeStatus() == FADE_2);
CTimer::Update();
CStreaming::ms_disableStreaming = false;
CWorld::bProcessCutsceneOnly = false;
if(bCamLoaded)
CGame::DrasticTidyUpMemory(TheCamera.GetScreenFadeStatus() == FADE_2);
CPad::GetPad(0)->Clear(false);
if (bIsEverythingRemovedFromTheWorldForTheBiggestFuckoffCutsceneEver) {
CStreaming::LoadInitialPeds();
CStreaming::LoadInitialWeapons();
CStreaming::LoadInitialVehicles();
bIsEverythingRemovedFromTheWorldForTheBiggestFuckoffCutsceneEver = false;
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;
}
CTimer::Resume();
}
void
@@ -392,7 +509,7 @@ CCutsceneMgr::Update(void)
switch (ms_cutsceneLoadStatus) {
case CUTSCENE_LOADING_AUDIO:
SetupCutsceneToStart();
if (CGeneral::faststricmp(ms_cutsceneName, "end"))
if (CGeneral::faststricmp(ms_cutsceneName, "finale"))
DMAudio.PlayPreloadedCutSceneMusic();
ms_cutsceneLoadStatus++;
break;
@@ -410,15 +527,157 @@ CCutsceneMgr::Update(void)
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();
for (int i = 0; i < ms_numCutsceneObjs; i++) {
int modelId = ms_pCutsceneObjects[i]->GetModelIndex();
if (modelId >= MI_CUTOBJ01 && modelId <= MI_CUTOBJ05)
UpdateCutsceneObjectBoundingBox(ms_pCutsceneObjects[i]->GetClump(), modelId);
if (ms_pCutsceneObjects[i]->m_pAttachTo != nil && modelId >= MI_SPECIAL01 && modelId <= MI_SPECIAL21)
UpdateCutsceneObjectBoundingBox(ms_pCutsceneObjects[i]->GetClump(), modelId);
}
if (bCamLoaded)
if (CGeneral::faststricmp(ms_cutsceneName, "finale") && 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();
}
}
bool CCutsceneMgr::HasCutsceneFinished(void) { return !bCamLoaded || TheCamera.GetPositionAlongSpline() == 1.0f; }
void
CCutsceneMgr::LoadAnimationUncompressed(char const* name)
{
strcpy(uncompressedAnims[numUncompressedAnims], name);
// Because that's how CAnimManager knows the end of array
++numUncompressedAnims;
assert(numUncompressedAnims < ARRAY_SIZE(uncompressedAnims));
uncompressedAnims[numUncompressedAnims][0] = '\0';
}
void
CCutsceneMgr::AttachObjectToParent(CObject *pObject, CEntity *pAttachTo)
{
((CCutsceneObject*)pObject)->m_pAttachmentObject = nil;
((CCutsceneObject*)pObject)->m_pAttachTo = RpClumpGetFrame(pAttachTo->GetClump());
debug("Attach %s to %s\n", CModelInfo::GetModelInfo(pObject->GetModelIndex())->GetModelName(), CModelInfo::GetModelInfo(pAttachTo->GetModelIndex())->GetModelName());
}
void
CCutsceneMgr::AttachObjectToFrame(CObject *pObject, CEntity *pAttachTo, const char *frame)
{
((CCutsceneObject*)pObject)->m_pAttachmentObject = nil;
((CCutsceneObject*)pObject)->m_pAttachTo = RpAnimBlendClumpFindFrame(pAttachTo->GetClump(), frame)->frame;
debug("Attach %s to component %s of %s\n",
CModelInfo::GetModelInfo(pObject->GetModelIndex())->GetModelName(),
frame,
CModelInfo::GetModelInfo(pAttachTo->GetModelIndex())->GetModelName());
if (RwObjectGetType(pObject->m_rwObject) == rpCLUMP) {
RpClump *clump = (RpClump*)pObject->m_rwObject;
if (IsClumpSkinned(clump))
RpAtomicGetBoundingSphere(GetFirstAtomic(clump))->radius *= 1.1f;
}
}
bool CCutsceneMgr::HasCutsceneFinished(void) { return TheCamera.GetPositionAlongSpline() == 1.0f; }
void
CCutsceneMgr::AttachObjectToBone(CObject *pObject, CObject *pAttachTo, int bone)
{
RpHAnimHierarchy *hanim = GetAnimHierarchyFromSkinClump(pAttachTo->GetClump());
RwInt32 id = RpHAnimIDGetIndex(hanim, bone);
RwMatrix *matrixArray = RpHAnimHierarchyGetMatrixArray(hanim);
((CCutsceneObject*)pObject)->m_pAttachmentObject = pAttachTo;
((CCutsceneObject*)pObject)->m_pAttachTo = &matrixArray[id];
debug("Attach %s to %s\n",
CModelInfo::GetModelInfo(pObject->GetModelIndex())->GetModelName(),
CModelInfo::GetModelInfo(pAttachTo->GetModelIndex())->GetModelName());
}
void
CCutsceneMgr::RemoveEverythingFromTheWorldForTheBiggestFuckoffCutsceneEver()
{
CStreaming::ms_disableStreaming = true;
CColStore::RemoveAllCollision();
CWorld::bProcessCutsceneOnly = true;
ms_cutsceneProcessing = true;
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;
}
}
}
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;
}
}
}
bIsEverythingRemovedFromTheWorldForTheBiggestFuckoffCutsceneEver = true;
CStreaming::RemoveCurrentZonesModels();
CStreaming::SetModelIsDeletable(MI_MALE01);
CStreaming::SetModelTxdIsDeletable(MI_MALE01);
CStreaming::SetModelIsDeletable(MI_TAXI_D);
CStreaming::SetModelTxdIsDeletable(MI_TAXI_D);
CStreaming::SetModelIsDeletable(MI_NIGHTSTICK);
CStreaming::SetModelTxdIsDeletable(MI_NIGHTSTICK);
CStreaming::SetModelIsDeletable(MI_MISSILE);
CStreaming::SetModelTxdIsDeletable(MI_MISSILE);
CStreaming::SetModelIsDeletable(MI_POLICE);
CStreaming::SetModelTxdIsDeletable(MI_POLICE);
while (CStreaming::RemoveLoadedVehicle()) ;
CRadar::RemoveRadarSections();
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();
CGame::DrasticTidyUpMemory(true);
}

View File

@@ -21,7 +21,9 @@ 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;
public:
static CDirectory *ms_pCutsceneDir;
static uint32 ms_cutsceneLoadStatus;
@@ -30,6 +32,7 @@ public:
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; }
@@ -41,11 +44,18 @@ public:
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 void SetCutsceneAnimToLoop(const char *animName);
static CCutsceneHead *AddCutsceneHead(CObject *pObject, int modelId);
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 RemoveEverythingFromTheWorldForTheBiggestFuckoffCutsceneEver();
static void DisableCutsceneShadows() { ms_useCutsceneShadows = false; }
};

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,29 +8,46 @@
#include "SurfaceTable.h"
#include "sampman.h"
const int CollisionSoundIntensity = 60;
cAudioCollisionManager::cAudioCollisionManager()
void
cAudioManager::ReportCollision(CEntity *entity1, CEntity *entity2, uint8 surface1, uint8 surface2, float collisionPower,
float velocity)
{
m_sQueue.m_pEntity1 = nil;
m_sQueue.m_pEntity2 = nil;
m_sQueue.m_bSurface1 = SURFACE_DEFAULT;
m_sQueue.m_bSurface2 = SURFACE_DEFAULT;
m_sQueue.m_fIntensity2 = 0.0f;
m_sQueue.m_fIntensity1 = 0.0f;
m_sQueue.m_vecPosition = CVector(0.0f, 0.0f, 0.0f);
float distSquared;
CVector v1;
CVector v2;
for (int i = 0; i < NUMAUDIOCOLLISIONS; i++)
m_bIndicesTable[i] = NUMAUDIOCOLLISIONS;
if(!m_bIsInitialised || m_nCollisionEntity < 0 || m_bIsPaused ||
(velocity < 0.0016f && collisionPower < 0.01f))
return;
m_bCollisionsInQueue = 0;
if(entity1->IsBuilding()) {
v1 = v2 = entity2->GetPosition();
} else if(entity2->IsBuilding()) {
v1 = v2 = entity1->GetPosition();
} else {
v1 = entity1->GetPosition();
v2 = entity2->GetPosition();
}
CVector pos = (v1 + v2) * 0.5f;
distSquared = GetDistanceSquared(pos);
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;
m_sCollisionManager.m_sQueue.m_bSurface2 = surface2;
m_sCollisionManager.m_sQueue.m_fIntensity1 = collisionPower;
m_sCollisionManager.m_sQueue.m_fIntensity2 = velocity;
m_sCollisionManager.m_sQueue.m_vecPosition = pos;
m_sCollisionManager.m_sQueue.m_fDistance = distSquared;
m_sCollisionManager.AddCollisionToRequestedQueue();
}
}
void
cAudioCollisionManager::AddCollisionToRequestedQueue()
{
int32 collisionsIndex;
int32 i;
uint32 collisionsIndex;
uint32 i;
if (m_bCollisionsInQueue < NUMAUDIOCOLLISIONS)
@@ -55,286 +72,17 @@ cAudioCollisionManager::AddCollisionToRequestedQueue()
m_bIndicesTable[i] = collisionsIndex;
}
float
cAudioManager::GetCollisionLoopingRatio(uint32 a, uint32 b, float c) const
{
return GetCollisionRatio(c, 0.0f, 0.02f, 0.02f);
}
float
cAudioManager::GetCollisionOneShotRatio(int32 a, float b) const
{
float result;
switch(a) {
case SURFACE_DEFAULT:
case SURFACE_TARMAC:
case SURFACE_PAVEMENT:
case SURFACE_STEEP_CLIFF:
case SURFACE_TRANSPARENT_STONE: result = GetCollisionRatio(b, 10.f, 60.f, 50.f); break;
case SURFACE_GRASS:
case SURFACE_CARDBOARDBOX: result = GetCollisionRatio(b, 0.f, 2.f, 2.f); break;
case SURFACE_GRAVEL: result = GetCollisionRatio(b, 0.f, 2.f, 2.f); break;
case SURFACE_MUD_DRY: result = GetCollisionRatio(b, 0.f, 2.f, 2.f); break;
case SURFACE_CAR: result = GetCollisionRatio(b, 6.f, 50.f, 44.f); break;
case SURFACE_GLASS: result = GetCollisionRatio(b, 0.1f, 10.f, 9.9f); break;
case SURFACE_TRANSPARENT_CLOTH:
case SURFACE_THICK_METAL_PLATE: result = GetCollisionRatio(b, 30.f, 130.f, 100.f); break;
case SURFACE_GARAGE_DOOR: result = GetCollisionRatio(b, 20.f, 100.f, 80.f); break;
case SURFACE_CAR_PANEL: result = GetCollisionRatio(b, 0.f, 4.f, 4.f); break;
case SURFACE_SCAFFOLD_POLE:
case SURFACE_METAL_GATE: result = GetCollisionRatio(b, 1.f, 10.f, 9.f); break;
case SURFACE_LAMP_POST: result = GetCollisionRatio(b, 1.f, 10.f, 9.f); break;
case SURFACE_FIRE_HYDRANT: result = GetCollisionRatio(b, 1.f, 15.f, 14.f); break;
case SURFACE_GIRDER: result = GetCollisionRatio(b, 8.f, 50.f, 42.f); break;
case SURFACE_METAL_CHAIN_FENCE: result = GetCollisionRatio(b, 0.1f, 10.f, 9.9f); break;
case SURFACE_PED: result = GetCollisionRatio(b, 0.f, 20.f, 20.f); break;
case SURFACE_SAND: result = GetCollisionRatio(b, 0.f, 10.f, 10.f); break;
case SURFACE_WATER: result = GetCollisionRatio(b, 0.f, 10.f, 10.f); break;
case SURFACE_WOOD_CRATES: result = GetCollisionRatio(b, 1.f, 4.f, 3.f); break;
case SURFACE_WOOD_BENCH: result = GetCollisionRatio(b, 0.1f, 5.f, 4.9f); break;
case SURFACE_WOOD_SOLID: result = GetCollisionRatio(b, 0.1f, 40.f, 39.9f); break;
case SURFACE_RUBBER:
case SURFACE_WHEELBASE: result = GetCollisionRatio(b, 0.f, 10.f, 10.f); break;
case SURFACE_PLASTIC: result = GetCollisionRatio(b, 0.1f, 4.f, 3.9f); break;
case SURFACE_HEDGE: result = GetCollisionRatio(b, 0.f, 0.5f, 0.5f); break;
case SURFACE_CONTAINER: result = GetCollisionRatio(b, 4.f, 40.f, 36.f); break;
case SURFACE_NEWS_VENDOR: result = GetCollisionRatio(b, 0.f, 5.f, 5.f); break;
default: result = 0.f; break;
}
return result;
}
float
cAudioManager::GetCollisionRatio(float a, float b, float c, float d) const
{
float e;
e = a;
if(a <= b) return 0.0f;
if(c <= a) e = c;
return (e - b) / d;
}
uint32
cAudioManager::SetLoopingCollisionRequestedSfxFreqAndGetVol(const cAudioCollision &audioCollision)
{
uint8 surface1 = audioCollision.m_bSurface1;
uint8 surface2 = audioCollision.m_bSurface2;
int32 vol;
float ratio;
if(surface1 == SURFACE_GRASS || surface2 == SURFACE_GRASS || surface1 == SURFACE_HEDGE ||
surface2 == SURFACE_HEDGE) {
ratio = GetCollisionRatio(audioCollision.m_fIntensity2, 0.0001f, 0.09f, 0.0899f);
m_sQueueSample.m_nSampleIndex = SFX_RAIN;
m_sQueueSample.m_nFrequency = 13000.f * ratio + 35000;
vol = 50.f * ratio;
} else if(surface1 == SURFACE_WATER || surface2 == SURFACE_WATER) {
ratio = GetCollisionRatio(audioCollision.m_fIntensity2, 0.0001f, 0.09f, 0.0899f);
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) {
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;
vol = 50.f * ratio;
} else if(surface1 == SURFACE_PED || surface2 == SURFACE_PED) {
return 0;
} else {
ratio = GetCollisionRatio(audioCollision.m_fIntensity2, 0.0001f, 0.09f, 0.0899f);
m_sQueueSample.m_nSampleIndex = SFX_SCRAPE_CAR_1;
m_sQueueSample.m_nFrequency = 10000.f * ratio + 10000;
vol = 40.f * ratio;
}
if(audioCollision.m_nBaseVolume < 2) vol = audioCollision.m_nBaseVolume * vol / 2;
return vol;
}
void
cAudioManager::SetUpLoopingCollisionSound(const cAudioCollision &col, uint8 counter)
{
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);
if(m_sQueueSample.m_nVolume) {
m_sQueueSample.m_nCounter = counter;
m_sQueueSample.m_vecPos = col.m_vecPosition;
m_sQueueSample.m_nBankIndex = SFX_BANK_0;
m_sQueueSample.m_bIs2D = false;
m_sQueueSample.m_nReleasingVolumeModificator = 7;
m_sQueueSample.m_nLoopCount = 0;
m_sQueueSample.m_nEmittingVolume = emittingVol;
m_sQueueSample.m_nLoopStart =
SampleManager.GetSampleLoopStartOffset(m_sQueueSample.m_nSampleIndex);
m_sQueueSample.m_nLoopEnd =
SampleManager.GetSampleLoopEndOffset(m_sQueueSample.m_nSampleIndex);
m_sQueueSample.m_fSpeedMultiplier = 4.0f;
m_sQueueSample.m_fSoundIntensity = CollisionSoundIntensity;
m_sQueueSample.m_bReleasingSoundFlag = false;
m_sQueueSample.m_nReleasingVolumeDivider = 5;
m_sQueueSample.m_bReverbFlag = true;
m_sQueueSample.m_bRequireReflection = false;
AddSampleToRequestedQueue();
}
}
}
}
static const int32 gOneShotCol[] = {SFX_COL_TARMAC_1,
SFX_COL_TARMAC_1,
SFX_COL_GRASS_1,
SFX_COL_GRAVEL_1,
SFX_COL_MUD_1,
SFX_COL_TARMAC_1,
SFX_COL_CAR_1,
SFX_COL_GRASS_1,
SFX_COL_SCAFFOLD_POLE_1,
SFX_COL_GARAGE_DOOR_1,
SFX_COL_CAR_PANEL_1,
SFX_COL_THICK_METAL_PLATE_1,
SFX_COL_SCAFFOLD_POLE_1,
SFX_COL_LAMP_POST_1,
SFX_COL_HYDRANT_1,
SFX_COL_HYDRANT_1,
SFX_COL_METAL_CHAIN_FENCE_1,
SFX_COL_PED_1,
SFX_COL_SAND_1,
SFX_SPLASH_1,
SFX_COL_WOOD_CRATES_1,
SFX_COL_WOOD_BENCH_1,
SFX_COL_WOOD_SOLID_1,
SFX_COL_GRASS_1,
SFX_COL_GRASS_1,
SFX_COL_VEG_1,
SFX_COL_TARMAC_1,
SFX_COL_CONTAINER_1,
SFX_COL_NEWS_VENDOR_1,
SFX_TYRE_BUMP,
SFX_COL_CARDBOARD_1,
SFX_COL_TARMAC_1,
SFX_COL_GATE};
void
cAudioManager::SetUpOneShotCollisionSound(const cAudioCollision &col)
{
int16 s1;
int16 s2;
int32 emittingVol;
float ratio;
static uint16 counter = 28;
for(int32 i = 0; i < 2; i++) {
if(i) {
s1 = col.m_bSurface2;
s2 = col.m_bSurface1;
} else {
s1 = col.m_bSurface1;
s2 = col.m_bSurface2;
}
ratio = GetCollisionOneShotRatio(s1, col.m_fIntensity1);
if(s1 == SURFACE_CAR && s2 == SURFACE_PED) ratio /= 4.0f;
if(s1 == SURFACE_CAR && ratio < 0.6f) {
s1 = SURFACE_CAR_PANEL;
ratio = Min(1.f, 2.f * ratio);
}
emittingVol = 40.f * ratio;
if(emittingVol) {
m_sQueueSample.m_fDistance = Sqrt(col.m_fDistance);
m_sQueueSample.m_nVolume =
ComputeVolume(emittingVol, CollisionSoundIntensity, m_sQueueSample.m_fDistance);
if(m_sQueueSample.m_nVolume) {
m_sQueueSample.m_nSampleIndex = gOneShotCol[s1];
switch(m_sQueueSample.m_nSampleIndex) {
case SFX_COL_TARMAC_1:
m_sQueueSample.m_nSampleIndex += m_anRandomTable[3] % 5;
break;
case SFX_COL_CAR_PANEL_1:
m_sQueueSample.m_nSampleIndex += m_anRandomTable[0] % 6;
break;
case SFX_COL_LAMP_POST_1:
m_sQueueSample.m_nSampleIndex += m_anRandomTable[1] % 2;
break;
case SFX_COL_METAL_CHAIN_FENCE_1:
m_sQueueSample.m_nSampleIndex += m_anRandomTable[3] % 4;
break;
case SFX_COL_PED_1:
m_sQueueSample.m_nSampleIndex += m_anRandomTable[4] % 5;
break;
case SFX_COL_WOOD_CRATES_1:
m_sQueueSample.m_nSampleIndex += m_anRandomTable[4] % 4;
break;
case SFX_COL_WOOD_BENCH_1:
m_sQueueSample.m_nSampleIndex += m_anRandomTable[1] % 4;
break;
case SFX_COL_VEG_1:
m_sQueueSample.m_nSampleIndex += m_anRandomTable[2] % 5;
break;
case SFX_COL_NEWS_VENDOR_1:
m_sQueueSample.m_nSampleIndex += m_anRandomTable[2] % 3;
break;
case SFX_COL_CAR_1:
m_sQueueSample.m_nSampleIndex += m_anRandomTable[1] % 5;
break;
case SFX_COL_CARDBOARD_1:
m_sQueueSample.m_nSampleIndex += m_anRandomTable[3] % 2;
break;
default: break;
}
switch(s1) {
case SURFACE_GLASS: m_sQueueSample.m_nFrequency = 13500; break;
case SURFACE_GIRDER: m_sQueueSample.m_nFrequency = 8819; break;
case SURFACE_WATER:
m_sQueueSample.m_nFrequency =
2 * SampleManager.GetSampleBaseFrequency(m_sQueueSample.m_nSampleIndex);
break;
case SURFACE_RUBBER: m_sQueueSample.m_nFrequency = 6000; break;
case SURFACE_PLASTIC: m_sQueueSample.m_nFrequency = 8000; break;
default:
m_sQueueSample.m_nFrequency =
SampleManager.GetSampleBaseFrequency(m_sQueueSample.m_nSampleIndex);
break;
}
m_sQueueSample.m_nFrequency += RandomDisplacement(m_sQueueSample.m_nFrequency / 16);
m_sQueueSample.m_nCounter = counter++;
if(counter >= 255) counter = 28;
m_sQueueSample.m_vecPos = col.m_vecPosition;
m_sQueueSample.m_nBankIndex = SFX_BANK_0;
m_sQueueSample.m_bIs2D = false;
m_sQueueSample.m_nReleasingVolumeModificator = 11;
m_sQueueSample.m_nLoopCount = 1;
m_sQueueSample.m_nEmittingVolume = emittingVol;
m_sQueueSample.m_nLoopStart = 0;
m_sQueueSample.m_nLoopEnd = -1;
m_sQueueSample.m_fSpeedMultiplier = 4.0f;
m_sQueueSample.m_fSoundIntensity = CollisionSoundIntensity;
m_sQueueSample.m_bReleasingSoundFlag = true;
m_sQueueSample.m_bReverbFlag = true;
m_sQueueSample.m_bRequireReflection = false;
AddSampleToRequestedQueue();
}
}
}
}
void
cAudioManager::ServiceCollisions()
{
int i, j;
bool abRepeatedCollision1[NUMAUDIOCOLLISIONS];
bool abRepeatedCollision2[NUMAUDIOCOLLISIONS];
bool8 abRepeatedCollision1[NUMAUDIOCOLLISIONS];
bool8 abRepeatedCollision2[NUMAUDIOCOLLISIONS];
m_sQueueSample.m_nEntityIndex = m_nCollisionEntity;
for (int i = 0; i < NUMAUDIOCOLLISIONS; i++)
abRepeatedCollision1[i] = abRepeatedCollision2[i] = false;
abRepeatedCollision1[i] = abRepeatedCollision2[i] = FALSE;
for (i = 0; i < m_sCollisionManager.m_bCollisionsInQueue; i++) {
for (j = 0; j < NUMAUDIOCOLLISIONS; j++) {
@@ -344,8 +92,8 @@ cAudioManager::ServiceCollisions()
&& (m_sCollisionManager.m_asCollisions1[index].m_bSurface1 == m_sCollisionManager.m_asCollisions2[j].m_bSurface1)
&& (m_sCollisionManager.m_asCollisions1[index].m_bSurface2 == m_sCollisionManager.m_asCollisions2[j].m_bSurface2)
) {
abRepeatedCollision1[index] = true;
abRepeatedCollision2[j] = true;
abRepeatedCollision1[index] = TRUE;
abRepeatedCollision2[j] = TRUE;
m_sCollisionManager.m_asCollisions1[index].m_nBaseVolume = ++m_sCollisionManager.m_asCollisions2[j].m_nBaseVolume;
SetUpLoopingCollisionSound(m_sCollisionManager.m_asCollisions1[index], j);
break;
@@ -389,37 +137,269 @@ cAudioManager::ServiceCollisions()
m_sCollisionManager.m_bCollisionsInQueue = 0;
}
static const uint32 gOneShotCol[] = {SFX_COL_TARMAC_1,
SFX_COL_TARMAC_1,
SFX_COL_GRASS_1,
SFX_COL_GRAVEL_1,
SFX_COL_MUD_1,
SFX_COL_TARMAC_1,
SFX_COL_CAR_1,
SFX_COL_GRASS_1,
SFX_COL_SCAFFOLD_POLE_1,
SFX_COL_GARAGE_DOOR_1,
SFX_COL_CAR_PANEL_1,
SFX_COL_THICK_METAL_PLATE_1,
SFX_COL_SCAFFOLD_POLE_1,
SFX_COL_LAMP_POST_1,
SFX_COL_HYDRANT_1,
SFX_COL_HYDRANT_1,
SFX_COL_METAL_CHAIN_FENCE_1,
SFX_COL_PED_1,
SFX_COL_SAND_1,
SFX_SPLASH_1,
SFX_COL_WOOD_CRATES_1,
SFX_COL_WOOD_BENCH_1,
SFX_COL_WOOD_SOLID_1,
SFX_COL_GRASS_1,
SFX_COL_GRASS_1,
SFX_COL_VEG_1,
SFX_COL_TARMAC_1,
SFX_COL_CONTAINER_1,
SFX_COL_NEWS_VENDOR_1,
SFX_TYRE_BUMP,
SFX_COL_CARDBOARD_1,
SFX_COL_TARMAC_1,
SFX_COL_GATE,
SFX_COL_SAND_1,
SFX_COL_TARMAC_1 };
void
cAudioManager::ReportCollision(CEntity *entity1, CEntity *entity2, uint8 surface1, uint8 surface2, float collisionPower,
float velocity)
cAudioManager::SetUpOneShotCollisionSound(const cAudioCollision &col)
{
float distSquared;
CVector v1;
CVector v2;
uint16 s1;
uint16 s2;
if(!m_bIsInitialised || m_nCollisionEntity < 0 || m_nUserPause ||
(velocity < 0.0016f && collisionPower < 0.01f))
return;
uint32 emittingVol;
float ratio;
if(entity1->IsBuilding()) {
v1 = v2 = entity2->GetPosition();
} else if(entity2->IsBuilding()) {
v1 = v2 = entity1->GetPosition();
} else {
v1 = entity1->GetPosition();
v2 = entity2->GetPosition();
}
CVector pos = (v1 + v2) * 0.5f;
distSquared = GetDistanceSquared(pos);
if(distSquared < SQR(CollisionSoundIntensity)) {
m_sCollisionManager.m_sQueue.m_pEntity1 = entity1;
m_sCollisionManager.m_sQueue.m_pEntity2 = entity2;
m_sCollisionManager.m_sQueue.m_bSurface1 = surface1;
m_sCollisionManager.m_sQueue.m_bSurface2 = surface2;
m_sCollisionManager.m_sQueue.m_fIntensity1 = collisionPower;
m_sCollisionManager.m_sQueue.m_fIntensity2 = velocity;
m_sCollisionManager.m_sQueue.m_vecPosition = pos;
m_sCollisionManager.m_sQueue.m_fDistance = distSquared;
m_sCollisionManager.AddCollisionToRequestedQueue();
static uint16 counter = 28;
for(int32 i = 0; i < 2; i++) {
if(i) {
s1 = col.m_bSurface2;
s2 = col.m_bSurface1;
} else {
s1 = col.m_bSurface1;
s2 = col.m_bSurface2;
}
ratio = GetCollisionOneShotRatio(s1, col.m_fIntensity1);
if(s1 == SURFACE_CAR && s2 == SURFACE_PED) ratio /= 4.0f;
if(s1 == SURFACE_CAR && ratio < 0.6f) {
s1 = SURFACE_CAR_PANEL;
ratio = Min(1.f, 2.f * ratio);
}
emittingVol = 40 * ratio;
if(emittingVol) {
m_sQueueSample.m_fDistance = Sqrt(col.m_fDistance);
m_sQueueSample.m_nVolume =
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) {
case SFX_COL_TARMAC_1:
m_sQueueSample.m_nSampleIndex += m_anRandomTable[3] % 5;
break;
case SFX_COL_CAR_PANEL_1:
m_sQueueSample.m_nSampleIndex += m_anRandomTable[0] % 6;
break;
case SFX_COL_LAMP_POST_1:
m_sQueueSample.m_nSampleIndex += m_anRandomTable[1] % 2;
break;
case SFX_COL_METAL_CHAIN_FENCE_1:
m_sQueueSample.m_nSampleIndex += m_anRandomTable[3] % 4;
break;
case SFX_COL_PED_1:
m_sQueueSample.m_nSampleIndex += m_anRandomTable[4] % 2;
break;
case SFX_COL_WOOD_CRATES_1:
m_sQueueSample.m_nSampleIndex += m_anRandomTable[4] % 4;
break;
case SFX_COL_WOOD_BENCH_1:
m_sQueueSample.m_nSampleIndex += m_anRandomTable[1] % 4;
break;
case SFX_COL_VEG_1:
m_sQueueSample.m_nSampleIndex += m_anRandomTable[2] % 5;
break;
case SFX_COL_NEWS_VENDOR_1:
m_sQueueSample.m_nSampleIndex += m_anRandomTable[2] % 3;
break;
case SFX_COL_CAR_1:
m_sQueueSample.m_nSampleIndex += m_anRandomTable[1] % 5;
break;
case SFX_COL_CARDBOARD_1:
m_sQueueSample.m_nSampleIndex += m_anRandomTable[3] % 2;
break;
default: break;
}
switch(s1) {
case SURFACE_GLASS: m_sQueueSample.m_nFrequency = 13500; break;
case SURFACE_GIRDER: m_sQueueSample.m_nFrequency = 8819; break;
case SURFACE_WATER:
m_sQueueSample.m_nFrequency =
2 * SampleManager.GetSampleBaseFrequency(m_sQueueSample.m_nSampleIndex);
break;
case SURFACE_RUBBER: m_sQueueSample.m_nFrequency = 6000; break;
case SURFACE_PLASTIC: m_sQueueSample.m_nFrequency = 8000; break;
default:
m_sQueueSample.m_nFrequency =
SampleManager.GetSampleBaseFrequency(m_sQueueSample.m_nSampleIndex);
break;
}
m_sQueueSample.m_nFrequency += RandomDisplacement(m_sQueueSample.m_nFrequency / 16);
m_sQueueSample.m_nCounter = counter++;
if(counter >= 255) counter = 28;
m_sQueueSample.m_vecPos = col.m_vecPosition;
m_sQueueSample.m_nBankIndex = SFX_BANK_0;
m_sQueueSample.m_bIs2D = FALSE;
m_sQueueSample.m_nPriority = 11;
m_sQueueSample.m_nLoopCount = 1;
SET_EMITTING_VOLUME(emittingVol);
RESET_LOOP_OFFSETS
m_sQueueSample.m_fSpeedMultiplier = 4.0f;
m_sQueueSample.m_MaxDistance = COLLISION_MAX_DIST;
m_sQueueSample.m_bStatic = TRUE;
SET_SOUND_REVERB(TRUE);
SET_SOUND_REFLECTION(FALSE);
AddSampleToRequestedQueue();
}
}
}
}
void
cAudioManager::SetUpLoopingCollisionSound(const cAudioCollision &col, uint8 counter)
{
bool8 distCalculated = FALSE;
if(col.m_fIntensity2 > 0.0016f) {
uint8 emittingVol = SetLoopingCollisionRequestedSfxFreqAndGetVol(col);
if(emittingVol) {
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;
m_sQueueSample.m_nBankIndex = SFX_BANK_0;
m_sQueueSample.m_bIs2D = FALSE;
m_sQueueSample.m_nPriority = 7;
m_sQueueSample.m_nLoopCount = 0;
SET_EMITTING_VOLUME(emittingVol);
SET_LOOP_OFFSETS(m_sQueueSample.m_nSampleIndex)
m_sQueueSample.m_fSpeedMultiplier = 4.0f;
m_sQueueSample.m_MaxDistance = COLLISION_MAX_DIST;
m_sQueueSample.m_bStatic = FALSE;
m_sQueueSample.m_nFramesToPlay = 5;
SET_SOUND_REVERB(TRUE);
SET_SOUND_REFLECTION(FALSE);
AddSampleToRequestedQueue();
}
}
}
}
uint32
cAudioManager::SetLoopingCollisionRequestedSfxFreqAndGetVol(const cAudioCollision &audioCollision)
{
uint8 surface1 = audioCollision.m_bSurface1;
uint8 surface2 = audioCollision.m_bSurface2;
int32 vol;
float ratio;
if(surface1 == SURFACE_GRASS || surface2 == SURFACE_GRASS || surface1 == SURFACE_HEDGE ||
surface2 == SURFACE_HEDGE) {
ratio = GetCollisionRatio(audioCollision.m_fIntensity2, 0.0001f, 0.09f, 0.0899f);
m_sQueueSample.m_nSampleIndex = SFX_RAIN;
m_sQueueSample.m_nFrequency = 13000.f * ratio + 35000;
vol = 50.f * ratio;
} else if(surface1 == SURFACE_WATER || surface2 == SURFACE_WATER) {
ratio = GetCollisionRatio(audioCollision.m_fIntensity2, 0.0001f, 0.09f, 0.0899f);
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 || 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;
vol = 50.f * ratio;
} else if(surface1 == SURFACE_PED || surface2 == SURFACE_PED) {
return 0;
} else {
ratio = GetCollisionRatio(audioCollision.m_fIntensity2, 0.0001f, 0.09f, 0.0899f);
m_sQueueSample.m_nSampleIndex = SFX_SCRAPE_CAR_1;
m_sQueueSample.m_nFrequency = 10000.f * ratio + 10000;
vol = 40.f * ratio;
}
if(audioCollision.m_nBaseVolume < 2) vol = audioCollision.m_nBaseVolume * vol / 2;
return vol;
}
float
cAudioManager::GetCollisionOneShotRatio(uint32 a, float b)
{
switch(a) {
case SURFACE_DEFAULT:
case SURFACE_TARMAC:
case SURFACE_PAVEMENT:
case SURFACE_STEEP_CLIFF:
case SURFACE_TRANSPARENT_STONE:
case SURFACE_CONCRETE_BEACH: return GetCollisionRatio(b, 10.f, 60.f, 50.f);
case SURFACE_GRASS:
case SURFACE_GRAVEL:
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);
case SURFACE_TRANSPARENT_CLOTH:
case SURFACE_THICK_METAL_PLATE: return GetCollisionRatio(b, 30.f, 130.f, 100.f);
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_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);
case SURFACE_PED: return GetCollisionRatio(b, 0.f, 20.f, 20.f);
case SURFACE_SAND:
case SURFACE_WATER:
case SURFACE_RUBBER:
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);
case SURFACE_PLASTIC: return GetCollisionRatio(b, 0.1f, 4.f, 3.9f);
case SURFACE_HEDGE: return GetCollisionRatio(b, 0.f, 0.5f, 0.5f);
case SURFACE_CONTAINER: return GetCollisionRatio(b, 4.f, 40.f, 36.f);
case SURFACE_NEWS_VENDOR: return GetCollisionRatio(b, 0.f, 5.f, 5.f);
default: break;
}
return 0.f;
}
float
cAudioManager::GetCollisionLoopingRatio(uint32 a, uint32 b, float c)
{
return GetCollisionRatio(c, 0.0f, 0.02f, 0.02f);
}
float
cAudioManager::GetCollisionRatio(float a, float b, float c, float d)
{
float e;
e = a;
if(a <= b) return 0.0f;
if(c <= a) e = c;
return (e - b) / d;
}

View File

@@ -17,7 +17,18 @@ public:
float m_fDistance;
int32 m_nBaseVolume;
// no methods
cAudioCollision() { Reset(); }
void Reset()
{
m_pEntity1 = nil;
m_pEntity2 = nil;
m_bSurface1 = 0;
m_bSurface2 = 0;
m_fIntensity1 = m_fIntensity2 = 0.0f;
m_vecPosition = CVector(0.0f, 0.0f, 0.0f);
m_fDistance = 0.0f;
}
};
VALIDATE_SIZE(cAudioCollision, 40);
@@ -31,8 +42,16 @@ public:
uint8 m_bCollisionsInQueue;
cAudioCollision m_sQueue;
cAudioCollisionManager();
cAudioCollisionManager()
{
m_sQueue.Reset();
for(int i = 0; i < NUMAUDIOCOLLISIONS; i++)
m_bIndicesTable[i] = NUMAUDIOCOLLISIONS;
m_bCollisionsInQueue = 0;
}
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

@@ -2,40 +2,66 @@
#include "audio_enums.h"
#include "AudioCollision.h"
#include "PoliceRadio.h"
#include "PolRadio.h"
#include "VehicleModelInfo.h"
#include "Vehicle.h"
class tSound
{
public:
int32 m_nEntityIndex;
int32 m_nCounter;
int32 m_nSampleIndex;
uint8 m_nBankIndex;
bool m_bIs2D;
int32 m_nReleasingVolumeModificator;
uint32 m_nFrequency;
uint8 m_nVolume;
float m_fDistance;
int32 m_nLoopCount;
int32 m_nLoopStart;
int32 m_nEntityIndex; // audio entity index
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
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)
uint32 m_nPriority; // The multiplier for the sound priority (see m_nFinalPriority below). Lesser value means higher priority
uint32 m_nFrequency; // Sound frequency, plain and simple
uint8 m_nVolume; // Sound volume (0..127), only used as an actual volume without EXTERNAL_3D_SOUND (see m_nEmittingVolume)
float m_fDistance; // Distance to camera (useless if m_bIs2D == TRUE)
uint32 m_nLoopCount; // 0 - always loop, 1 - don't loop, other values never seen
#ifndef GTA_PS2
// Loop offsets
uint32 m_nLoopStart;
int32 m_nLoopEnd;
uint8 m_nEmittingVolume;
float m_fSpeedMultiplier;
float m_fSoundIntensity;
bool m_bReleasingSoundFlag;
CVector m_vecPos;
bool m_bReverbFlag;
uint8 m_nLoopsRemaining;
bool m_bRequireReflection; // Used for oneshots
uint8 m_nOffset;
int32 m_nReleasingVolumeDivider;
bool m_bIsProcessed;
bool m_bLoopEnded;
int32 m_nCalculatedVolume;
int8 m_nVolumeChange;
#endif
#ifdef EXTERNAL_3D_SOUND
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
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)
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
#endif
uint8 m_nPan; // Sound panning (0-127). Controls the volume of the playback coming from left and right speaker. Calculated internally unless m_bIs2D==TRUE.
// 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
#else
float m_nFramesToPlay; // Made into float for high fps fix
#endif
// 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
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
};
VALIDATE_SIZE(tSound, 92);
VALIDATE_SIZE(tSound, 96);
class CPhysical;
class CAutomobile;
@@ -45,8 +71,8 @@ class tAudioEntity
public:
eAudioType m_nType;
void *m_pEntity;
bool m_bIsUsed;
uint8 m_bStatus;
bool8 m_bIsUsed;
bool8 m_bStatus;
int16 m_awAudioEvent[NUM_AUDIOENTITY_EVENTS];
float m_afVolume[NUM_AUDIOENTITY_EVENTS];
uint8 m_AudioEvents;
@@ -57,12 +83,15 @@ VALIDATE_SIZE(tAudioEntity, 40);
class tPedComment
{
public:
int32 m_nSampleIndex;
uint32 m_nSampleIndex;
int32 m_nEntityIndex;
CVector m_vecPos;
float m_fDistance;
uint8 m_bVolume;
int8 m_nProcess;
uint8 m_nVolume;
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
};
VALIDATE_SIZE(tPedComment, 28);
@@ -70,44 +99,34 @@ 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);
class CEntity;
class cMissionAudio
{
public:
CVector m_vecPos;
bool m_bPredefinedProperties;
int32 m_nSampleIndex;
uint8 m_nLoadingStatus;
uint8 m_nPlayStatus;
bool m_bIsPlaying;
int32 m_nMissionAudioCounter;
bool m_bIsPlayed;
};
VALIDATE_SIZE(cMissionAudio, 32);
#define MISSION_AUDIO_SLOTS (2)
// name made up
class cAudioScriptObjectManager
@@ -122,6 +141,7 @@ public:
class cTransmission;
class CEntity;
class CPlane;
class CVehicle;
class CPed;
@@ -129,7 +149,7 @@ class CPed;
class cPedParams
{
public:
bool m_bDistanceCalculated;
bool8 m_bDistanceCalculated;
float m_fDistance;
CPed *m_pPed;
@@ -144,15 +164,17 @@ public:
class cVehicleParams
{
public:
bool m_bDistanceCalculated;
int32 m_VehicleType;
bool8 m_bDistanceCalculated;
float m_fDistance;
CVehicle *m_pVehicle;
cTransmission *m_pTransmission;
int32 m_nIndex;
uint32 m_nIndex;
float m_fVelocityChange;
cVehicleParams()
{
m_VehicleType = -1;
m_bDistanceCalculated = false;
m_fDistance = 0.0f;
m_pVehicle = nil;
@@ -162,8 +184,9 @@ public:
}
};
VALIDATE_SIZE(cVehicleParams, 0x18);
VALIDATE_SIZE(cVehicleParams, 0x1C);
#if GTA_VERSION < GTAVC_PC_10
enum {
/*
REFLECTION_YMAX = 0, top
@@ -180,326 +203,447 @@ 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_LOADING };
class cAudioManager
{
public:
bool m_bIsInitialised;
bool m_bReverb; // unused
bool m_bFifthFrameFlag;
bool8 m_bIsInitialised;
bool8 m_bIsSurround; // used on PS2
bool8 m_bReduceReleasingPriority;
uint8 m_nActiveSamples;
uint8 field_4; // unused
bool m_bDynamicAcousticModelingStatus;
bool8 m_bDoubleVolume; // unused
bool8 m_bDynamicAcousticModelingStatus;
uint8 m_nChannelOffset;
float m_fSpeedOfSound;
bool m_bTimerJustReset;
int32 m_nTimer;
bool8 m_bTimerJustReset;
uint32 m_nTimer;
tSound m_sQueueSample;
uint8 m_nActiveSampleQueue;
tSound m_asSamples[NUM_SOUNDS_SAMPLES_BANKS][NUM_SOUNDS_SAMPLES_SLOTS];
uint8 m_abSampleQueueIndexTable[NUM_SOUNDS_SAMPLES_BANKS][NUM_SOUNDS_SAMPLES_SLOTS];
uint8 m_SampleRequestQueuesStatus[NUM_SOUNDS_SAMPLES_BANKS];
tSound m_asActiveSamples[NUM_SOUNDS_SAMPLES_SLOTS];
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;
CVector m_avecReflectionsPos[NUM_AUDIO_REFLECTIONS];
float m_afReflectionsDistances[NUM_AUDIO_REFLECTIONS];
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;
// 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;
int32 m_nPoliceChannelEntity;
cPoliceRadioQueue m_sPoliceRadioQueue;
cAMCrime m_aCrimes[10];
int32 m_nFrontEndEntity;
int32 m_nCollisionEntity;
cAudioCollisionManager m_sCollisionManager;
int32 m_nProjectileEntity;
int32 m_nEscalatorEntity;
int32 m_nExtraSoundsEntity;
#ifdef GTA_BRIDGE
int32 m_nBridgeEntity;
cMissionAudio m_sMissionAudio;
#endif
// Mission audio stuff
// 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;
uint8 m_nUserPause;
uint8 m_nPreviousUserPause;
bool8 m_bIsPaused;
bool8 m_bWasPaused;
uint32 m_FrameCounter;
cAudioManager();
~cAudioManager();
// getters
uint32 GetFrameCounter() const { return m_FrameCounter; }
float GetReflectionsDistance(int32 idx) const { return m_afReflectionsDistances[idx]; }
int32 GetRandomNumber(int32 idx) const { return m_anRandomTable[idx]; }
int32 GetRandomNumberInRange(int32 idx, int32 low, int32 high) const { return (m_anRandomTable[idx] % (high - low + 1)) + low; }
bool ShouldDuckMissionAudio() const { return m_sMissionAudio.m_nPlayStatus == 1; }
// "Should" be in alphabetic order, except "getXTalkSfx"
void AddDetailsToRequestedOrderList(uint8 sample);
void AddPlayerCarSample(uint8 emittingVolume, int32 freq, uint32 sample, uint8 bank,
uint8 counter, bool notLooping);
void AddReflectionsToRequestedQueue();
void AddReleasingSounds();
void AddSampleToRequestedQueue();
void AgeCrimes();
void CalculateDistance(bool &condition, float dist);
bool CheckForAnAudioFileOnCD() const;
void ClearActiveSamples();
void ClearMissionAudio();
void ClearRequestedQueue();
int32 ComputeDopplerEffectedFrequency(uint32 oldFreq, float position1, float position2,
float speedMultiplier) const;
int32 ComputePan(float, CVector *);
uint8 ComputeVolume(uint8 emittingVolume, float soundIntensity, float distance) const;
int32 CreateEntity(eAudioType type, void *entity);
void DestroyAllGameCreatedEntities();
void DestroyEntity(int32 id);
void DoPoliceRadioCrackle();
// functions returning talk sfx,
// order from GetPedCommentSfx
uint32 GetPlayerTalkSfx(int16 sound);
uint32 GetCopTalkSfx(int16 sound);
uint32 GetSwatTalkSfx(int16 sound);
uint32 GetFBITalkSfx(int16 sound);
uint32 GetArmyTalkSfx(int16 sound);
uint32 GetMedicTalkSfx(int16 sound);
uint32 GetFiremanTalkSfx(int16 sound);
uint32 GetNormalMaleTalkSfx(int16 sound);
uint32 GetTaxiDriverTalkSfx(int16 sound);
uint32 GetPimpTalkSfx(int16 sound);
uint32 GetMafiaTalkSfx(int16 sound);
uint32 GetTriadTalkSfx(int16 sound);
uint32 GetDiabloTalkSfx(int16 sound);
uint32 GetYakuzaTalkSfx(int16 sound);
uint32 GetYardieTalkSfx(int16 sound);
uint32 GetColumbianTalkSfx(int16 sound);
uint32 GetHoodTalkSfx(int16 sound);
uint32 GetBlackCriminalTalkSfx(int16 sound);
uint32 GetWhiteCriminalTalkSfx(int16 sound);
uint32 GetMaleNo2TalkSfx(int16 sound);
uint32 GetBlackProjectMaleTalkSfx(int16 sound, int32 model);
uint32 GetWhiteFatMaleTalkSfx(int16 sound);
uint32 GetBlackFatMaleTalkSfx(int16 sound);
uint32 GetBlackCasualFemaleTalkSfx(int16 sound);
uint32 GetWhiteCasualFemaleTalkSfx(int16 sound);
uint32 GetFemaleNo3TalkSfx(int16 sound);
uint32 GetBlackFatFemaleTalkSfx(int16 sound);
uint32 GetWhiteFatFemaleTalkSfx(int16 sound);
uint32 GetBlackFemaleProstituteTalkSfx(int16 sound);
uint32 GetWhiteFemaleProstituteTalkSfx(int16 sound);
uint32 GetBlackProjectFemaleOldTalkSfx(int16 sound);
uint32 GetBlackProjectFemaleYoungTalkSfx(int16 sound);
uint32 GetChinatownMaleOldTalkSfx(int16 sound);
uint32 GetChinatownMaleYoungTalkSfx(int16 sound);
uint32 GetChinatownFemaleOldTalkSfx(int16 sound);
uint32 GetChinatownFemaleYoungTalkSfx(int16 sound);
uint32 GetLittleItalyMaleTalkSfx(int16 sound);
uint32 GetLittleItalyFemaleOldTalkSfx(int16 sound);
uint32 GetLittleItalyFemaleYoungTalkSfx(int16 sound);
uint32 GetWhiteDockerMaleTalkSfx(int16 sound);
uint32 GetBlackDockerMaleTalkSfx(int16 sound);
uint32 GetScumMaleTalkSfx(int16 sound);
uint32 GetScumFemaleTalkSfx(int16 sound);
uint32 GetWhiteWorkerMaleTalkSfx(int16 sound);
uint32 GetBlackWorkerMaleTalkSfx(int16 sound);
uint32 GetBusinessMaleYoungTalkSfx(int16 sound, int32 model);
uint32 GetBusinessMaleOldTalkSfx(int16 sound);
uint32 GetWhiteBusinessFemaleTalkSfx(int16 sound, int32 model);
uint32 GetBlackBusinessFemaleTalkSfx(int16 sound);
uint32 GetSupermodelMaleTalkSfx(int16 sound);
uint32 GetSupermodelFemaleTalkSfx(int16 sound);
uint32 GetStewardMaleTalkSfx(int16 sound);
uint32 GetStewardFemaleTalkSfx(int16 sound);
uint32 GetFanMaleTalkSfx(int16 sound, int32 model);
uint32 GetFanFemaleTalkSfx(int16 sound);
uint32 GetHospitalMaleTalkSfx(int16 sound);
uint32 GetHospitalFemaleTalkSfx(int16 sound);
uint32 GetWhiteConstructionWorkerTalkSfx(int16 sound);
uint32 GetBlackConstructionWorkerTalkSfx(int16 sound);
uint32 GetShopperFemaleTalkSfx(int16 sound, int32 model);
uint32 GetStudentMaleTalkSfx(int16 sound);
uint32 GetStudentFemaleTalkSfx(int16 sound);
uint32 GetCasualMaleOldTalkSfx(int16 sound);
uint32 GetSpecialCharacterTalkSfx(int32 modelIndex, int32 sound);
uint32 GetEightTalkSfx(int16 sound);
uint32 GetFrankieTalkSfx(int16 sound);
uint32 GetMistyTalkSfx(int16 sound);
uint32 GetOJGTalkSfx(int16 sound);
uint32 GetCatatalinaTalkSfx(int16 sound);
uint32 GetBomberTalkSfx(int16 sound);
uint32 GetSecurityGuardTalkSfx(int16 sound);
uint32 GetChunkyTalkSfx(int16 sound);
uint32 GetGenericMaleTalkSfx(int16 sound);
uint32 GetGenericFemaleTalkSfx(int16 sound);
// end of functions returning talk sfx
void GenerateIntegerRandomNumberTable();
char *Get3DProviderName(uint8 id) const;
uint8 GetCDAudioDriveLetter() const;
int8 GetCurrent3DProviderIndex() const;
float GetCollisionLoopingRatio(uint32 a, uint32 b, float c) const; // not used
float GetCollisionOneShotRatio(int32 a, float b) const;
float GetCollisionRatio(float a, float b, float c, float d) const;
float GetDistanceSquared(const CVector &v) const;
int32 GetJumboTaxiFreq() const;
uint8 GetMissionAudioLoadingStatus() const;
int8 GetMissionScriptPoliceAudioPlayingStatus() const;
uint8 GetNum3DProvidersAvailable() const;
int32 GetPedCommentSfx(CPed *ped, int32 sound);
void GetPhrase(uint32 &phrase, uint32 &prevPhrase, uint32 sample, uint32 maxOffset) const;
float GetVehicleDriveWheelSkidValue(uint8 wheel, CAutomobile *automobile,
cTransmission *transmission, float velocityChange);
float GetVehicleNonDriveWheelSkidValue(uint8 wheel, CAutomobile *automobile,
cTransmission *transmission, float velocityChange);
bool HasAirBrakes(int32 model) const;
void Initialise();
void InitialisePoliceRadio();
void InitialisePoliceRadioZones();
void InterrogateAudioEntities();
bool IsAudioInitialised() const;
bool IsMissionAudioSampleFinished();
bool IsMP3RadioChannelAvailable() const;
bool MissionScriptAudioUsesPoliceChannel(int32 soundMission) const;
void PlayLoadedMissionAudio();
void PlayOneShot(int32 index, uint16 sound, float vol);
void PlaySuspectLastSeen(float x, float y, float z);
void PlayerJustGotInCar() const;
void PlayerJustLeftCar() const;
void PostInitialiseGameSpecificSetup();
void PostTerminateGameSpecificShutdown();
void PreInitialiseGameSpecificSetup() const;
void PreloadMissionAudio(Const char *name);
void PreTerminateGameSpecificShutdown();
/// processX - main logic of adding new sounds
void ProcessActiveQueues();
bool ProcessAirBrakes(cVehicleParams& params);
void ProcessAirportScriptObject(uint8 sound);
bool ProcessBoatEngine(cVehicleParams& params);
bool ProcessBoatMovingOverWater(cVehicleParams& params);
void ProcessBridge();
void ProcessBridgeMotor();
void ProcessBridgeOneShots();
void ProcessBridgeWarning();
bool ProcessCarBombTick(cVehicleParams& params);
void ProcessCesna(cVehicleParams& params);
void ProcessCinemaScriptObject(uint8 sound);
void ProcessCrane();
void ProcessDocksScriptObject(uint8 sound);
bool ProcessEngineDamage(cVehicleParams& params);
void ProcessEntity(int32 sound);
void ProcessExplosions(int32 explosion);
void ProcessFireHydrant();
void ProcessFires(int32 entity);
void ProcessFrontEnd();
void ProcessGarages();
bool ProcessHelicopter(cVehicleParams& params);
void ProcessHomeScriptObject(uint8 sound);
void ProcessJumbo(cVehicleParams& params);
void ProcessJumboAccel(CPlane *plane);
void ProcessJumboDecel(CPlane *plane);
void ProcessJumboFlying();
void ProcessJumboLanding(CPlane *plane);
void ProcessJumboTakeOff(CPlane *plane);
void ProcessJumboTaxi();
void ProcessLaunderetteScriptObject(uint8 sound);
void ProcessLoopingScriptObject(uint8 sound);
void ProcessMissionAudio();
void ProcessModelCarEngine(cVehicleParams& params);
void ProcessOneShotScriptObject(uint8 sound);
void ProcessPed(CPhysical *ped);
void ProcessPedHeadphones(cPedParams &params);
void ProcessPedOneShots(cPedParams &params);
void ProcessPhysical(int32 id);
void ProcessPlane(cVehicleParams& params);
void ProcessPlayersVehicleEngine(cVehicleParams& params, CAutomobile *automobile);
void ProcessPoliceCellBeatingScriptObject(uint8 sound);
void ProcessPornCinema(uint8 sound);
void ProcessProjectiles();
void ProcessRainOnVehicle(cVehicleParams& params);
void ProcessReverb() const;
bool ProcessReverseGear(cVehicleParams& params);
void ProcessSawMillScriptObject(uint8 sound);
void ProcessScriptObject(int32 id);
void ProcessShopScriptObject(uint8 sound);
void ProcessSpecial();
bool ProcessTrainNoise(cVehicleParams& params);
void ProcessVehicle(CVehicle *vehicle);
bool ProcessVehicleDoors(cVehicleParams& params);
void ProcessVehicleEngine(cVehicleParams& params);
void ProcessVehicleHorn(cVehicleParams& params);
void ProcessVehicleOneShots(cVehicleParams& params);
bool ProcessVehicleReverseWarning(cVehicleParams& params);
bool ProcessVehicleRoadNoise(cVehicleParams& params);
bool ProcessVehicleSirenOrAlarm(cVehicleParams& params);
bool ProcessVehicleSkidding(cVehicleParams& params);
void ProcessWaterCannon(int32);
void ProcessWeather(int32 id);
bool ProcessWetRoadNoise(cVehicleParams& params);
void ProcessWorkShopScriptObject(uint8 sound);
int32 RandomDisplacement(uint32 seed) const;
void ReacquireDigitalHandle() const;
void ReleaseDigitalHandle() const;
void ReportCollision(CEntity *entity1, CEntity *entity2, uint8 surface1, uint8 surface2,
float collisionPower, float intensity2);
void ReportCrime(eCrimeType crime, const CVector &pos);
void ResetAudioLogicTimers(uint32 timer);
void ResetPoliceRadio();
void ResetTimers(uint32 time);
void Service();
void ServiceCollisions();
void ServicePoliceRadio();
void ServicePoliceRadioChannel(uint8 wantedLevel);
void ServiceSoundEffects();
int8 SetCurrent3DProvider(uint8 which);
void SetDynamicAcousticModelingStatus(uint8 status);
void SetEffectsFadeVol(uint8 volume) const;
void SetEffectsMasterVolume(uint8 volume) const;
void SetEntityStatus(int32 id, uint8 status);
uint32 SetLoopingCollisionRequestedSfxFreqAndGetVol(const cAudioCollision &audioCollision);
void SetMissionAudioLocation(float x, float y, float z);
void SetMissionScriptPoliceAudio(int32 sfx) const;
void SetMonoMode(uint8 mono);
void SetMusicFadeVol(uint8 volume) const;
void SetMusicMasterVolume(uint8 volume) const;
void SetSpeakerConfig(int32 conf) const;
void SetUpLoopingCollisionSound(const cAudioCollision &col, uint8 counter);
void SetUpOneShotCollisionSound(const cAudioCollision &col);
bool SetupCrimeReport();
bool SetupJumboEngineSound(uint8 vol, uint32 freq);
bool SetupJumboFlySound(uint8 emittingVol);
bool SetupJumboRumbleSound(uint8 emittingVol);
bool SetupJumboTaxiSound(uint8 vol);
bool SetupJumboWhineSound(uint8 emittingVol, uint32 freq);
void SetupPedComments(cPedParams &params, uint16 sound);
void SetupSuspectLastSeenReport();
void Terminate();
void TranslateEntity(Const CVector *v1, CVector *v2) const;
void UpdateGasPedalAudio(CAutomobile *automobile);
void UpdateReflections();
bool UsesReverseWarning(int32 model) const;
bool UsesSiren(int32 model) const;
bool UsesSirenSwitching(int32 model) const;
void Service();
int32 CreateEntity(eAudioType type, void *entity);
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 SetOutputMode(bool8 surround);
void ResetTimers(uint32 time);
void DestroyAllGameCreatedEntities();
#ifdef GTA_PC
// only used in pc
void AdjustSamplesVolume();
uint8 ComputeEmittingVolume(uint8 emittingVolume, float intensity, float dist);
uint8 GetNum3DProvidersAvailable();
char *Get3DProviderName(uint8 id);
int8 GetCurrent3DProviderIndex();
int8 AutoDetect3DProviders();
int8 SetCurrent3DProvider(uint8 which);
void SetSpeakerConfig(int32 conf);
bool8 IsMP3RadioChannelAvailable();
void ReleaseDigitalHandle();
void ReacquireDigitalHandle();
#ifdef AUDIO_REFLECTIONS
void SetDynamicAcousticModelingStatus(bool8 status);
#endif
bool8 CheckForAnAudioFileOnCD();
char GetCDAudioDriveLetter();
bool8 IsAudioInitialised();
#endif
void ServiceSoundEffects();
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);
int32 RandomDisplacement(uint32 seed);
void InterrogateAudioEntities(); // inlined
void AddSampleToRequestedQueue();
void AddDetailsToRequestedOrderList(uint8 sample); // inlined in vc
#ifdef AUDIO_REFLECTIONS
void AddReflectionsToRequestedQueue();
void UpdateReflections();
#endif
void AddReleasingSounds();
void ProcessActiveQueues();
void ClearRequestedQueue(); // inlined in vc
void ClearActiveSamples();
void GenerateIntegerRandomNumberTable();
#ifdef GTA_PS2
void LoadBankIfNecessary(uint8 bank); // this is used only on PS2 but technically not a platform code
#endif
#ifdef EXTERNAL_3D_SOUND // actually must have been && AUDIO_MSS as well
void AdjustSamplesVolume(); // inlined
uint8 ComputeEmittingVolume(uint8 emittingVolume, float maxDistance, float distance); // inlined
#endif
// audio logic
void PreInitialiseGameSpecificSetup();
void PostInitialiseGameSpecificSetup();
void PreTerminateGameSpecificShutdown();
void PostTerminateGameSpecificShutdown();
void ResetAudioLogicTimers(uint32 timer);
void ProcessReverb();
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 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(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, CVehicle *veh);
bool8 ProcessVehicleSkidding(cVehicleParams &params);
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);
bool8 ProcessVehicleReverseWarning(cVehicleParams &params);
bool8 ProcessVehicleDoors(cVehicleParams &params);
bool8 ProcessAirBrakes(cVehicleParams &params);
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 ProcessBoatEngine(cVehicleParams &params);
bool8 ProcessBoatMovingOverWater(cVehicleParams &params);
void ProcessPlane(cVehicleParams &params);
void ProcessJumbo(cVehicleParams &params);
void ProcessJumboTaxi();
void ProcessJumboAccel(CPlane *plane);
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 in vc
// peds
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);
uint32 GetPedCommentSfx(CPed *ped, uint16 sound);
void GetPhrase(uint32 &phrase, uint32 &prevPhrase, uint32 sample, uint32 maxOffset);
uint32 GetPlayerTalkSfx(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);
void DebugPlayPedComment(int32 sound);
// particles
void ProcessExplosions(int32 explosion);
void ProcessFires(int32 entity);
void ProcessWaterCannon(int32);
// script objects
void ProcessScriptObject(int32 id);
void ProcessOneShotScriptObject(uint8 sound);
void ProcessLoopingScriptObject(uint8 sound);
// misc
void ProcessWeather(int32 id);
void ProcessFrontEnd();
//void ProcessCrane();
void ProcessProjectiles();
void ProcessEscalators();
void ProcessExtraSounds();
void ProcessGarages();
void ProcessFireHydrant();
#ifdef GTA_BRIDGE
void ProcessBridge();
void ProcessBridgeWarning();
void ProcessBridgeMotor();
void ProcessBridgeOneShots();
#endif
// mission audio
const char *GetMissionAudioLoadedLabel(uint8 slot);
bool8 MissionScriptAudioUsesPoliceChannel(uint32 soundMission);
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); // inlined and optimized
int8 GetMissionScriptPoliceAudioPlayingStatus();
void DoPoliceRadioCrackle();
void ServicePoliceRadio();
void ServicePoliceRadioChannel(uint8 wantedLevel);
bool8 SetupCrimeReport();
void SetupSuspectLastSeenReport();
void ReportCrime(eCrimeType crime, const CVector &pos);
void PlaySuspectLastSeen(float x, float y, float z);
void AgeCrimes(); // inlined in vc
// collision stuff
void ReportCollision(CEntity *entity1, CEntity *entity2, uint8 surface1, uint8 surface2, float collisionPower, float intensity2);
void ServiceCollisions();
void SetUpOneShotCollisionSound(const cAudioCollision &col);
void SetUpLoopingCollisionSound(const cAudioCollision &col, uint8 counter);
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 in vc
float Sqrt(float v) const { return v <= 0.0f ? 0.0f : ::Sqrt(v); }
};
#ifdef AUDIO_MSS
static_assert(sizeof(cAudioManager) == 19220, "cAudioManager: error");
/*
Manual loop points are not on PS2 so let's have these macros to avoid massive ifndefs.
Setting these manually was pointless anyway since they never change from sdt values.
What were they thinking?
*/
#ifndef GTA_PS2
#define RESET_LOOP_OFFSETS \
m_sQueueSample.m_nLoopStart = 0; \
m_sQueueSample.m_nLoopEnd = -1;
#define SET_LOOP_OFFSETS(sample) \
m_sQueueSample.m_nLoopStart = SampleManager.GetSampleLoopStartOffset(sample); \
m_sQueueSample.m_nLoopEnd = SampleManager.GetSampleLoopEndOffset(sample);
#else
#define RESET_LOOP_OFFSETS
#define SET_LOOP_OFFSETS(sample)
#endif
#ifdef EXTERNAL_3D_SOUND
#define SET_EMITTING_VOLUME(vol) m_sQueueSample.m_nEmittingVolume = vol
#else
#define SET_EMITTING_VOLUME(vol)
#endif
#ifdef AUDIO_REFLECTIONS
#define SET_SOUND_REFLECTION(b) m_sQueueSample.m_bReflections = b
#else
#define SET_SOUND_REFLECTION(b)
#endif
#ifdef AUDIO_REVERB
#define SET_SOUND_REVERB(b) m_sQueueSample.m_bReverb = b
#else
#define SET_SOUND_REVERB(b)
#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

@@ -3,6 +3,7 @@
#include "AudioScriptObject.h"
#include "Pools.h"
#include "DMAudio.h"
#include "SaveBuf.h"
cAudioScriptObject::cAudioScriptObject()
{
@@ -23,25 +24,25 @@ cAudioScriptObject::Reset()
}
void *
cAudioScriptObject::operator new(size_t sz)
cAudioScriptObject::operator new(size_t sz) throw()
{
return CPools::GetAudioScriptObjectPool()->New();
}
void *
cAudioScriptObject::operator new(size_t sz, int handle)
cAudioScriptObject::operator new(size_t sz, int handle) throw()
{
return CPools::GetAudioScriptObjectPool()->New(handle);
}
void
cAudioScriptObject::operator delete(void *p, size_t sz)
cAudioScriptObject::operator delete(void *p, size_t sz) throw()
{
CPools::GetAudioScriptObjectPool()->Delete((cAudioScriptObject *)p);
}
void
cAudioScriptObject::operator delete(void *p, int handle)
cAudioScriptObject::operator delete(void *p, int handle) throw()
{
CPools::GetAudioScriptObjectPool()->Delete((cAudioScriptObject *)p);
}
@@ -53,12 +54,14 @@ cAudioScriptObject::LoadAllAudioScriptObjects(uint8 *buf, uint32 size)
CheckSaveHeader(buf, 'A', 'U', 'D', '\0', size - SAVE_HEADER_SIZE);
int32 pool_size = ReadSaveBuf<int32>(buf);
int32 pool_size;
ReadSaveBuf(&pool_size, buf);
for (int32 i = 0; i < pool_size; i++) {
int handle = ReadSaveBuf<int32>(buf);
int32 handle;
ReadSaveBuf(&handle, buf);
cAudioScriptObject *p = new(handle) cAudioScriptObject;
assert(p != nil);
*p = ReadSaveBuf<cAudioScriptObject>(buf);
ReadSaveBuf(p, buf);
p->AudioEntity = DMAudio.CreateLoopingScriptObject(p);
}
@@ -90,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

@@ -12,10 +12,10 @@ public:
void Reset(); /// ok
static void* operator new(size_t);
static void* operator new(size_t, int);
static void operator delete(void*, size_t);
static void operator delete(void*, int);
static void* operator new(size_t) throw();
static void* operator new(size_t, int) throw();
static void operator delete(void*, size_t) throw();
static void operator delete(void*, int) throw();
static void LoadAllAudioScriptObjects(uint8 *buf, uint32 size);
static void SaveAllAudioScriptObjects(uint8 *buf, uint32 *size);

View File

@@ -38,8 +38,14 @@ cDMAudio::DestroyEntity(int32 audioEntity)
AudioManager.DestroyEntity(audioEntity);
}
bool8
cDMAudio::GetEntityStatus(int32 audioEntity)
{
return AudioManager.GetEntityStatus(audioEntity);
}
void
cDMAudio::SetEntityStatus(int32 audioEntity, uint8 status)
cDMAudio::SetEntityStatus(int32 audioEntity, bool8 status)
{
AudioManager.SetEntityStatus(audioEntity, status);
}
@@ -57,9 +63,18 @@ cDMAudio::DestroyAllGameCreatedEntities(void)
}
void
cDMAudio::SetMonoMode(uint8 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
@@ -110,6 +125,11 @@ cDMAudio::Get3DProviderName(uint8 id)
return AudioManager.Get3DProviderName(id);
}
int8 cDMAudio::AutoDetect3DProviders(void)
{
return AudioManager.AutoDetect3DProviders();
}
int8
cDMAudio::GetCurrent3DProviderIndex(void)
{
@@ -128,7 +148,7 @@ cDMAudio::SetSpeakerConfig(int32 config)
AudioManager.SetSpeakerConfig(config);
}
bool
bool8
cDMAudio::IsMP3RadioChannelAvailable(void)
{
return AudioManager.IsMP3RadioChannelAvailable();
@@ -147,12 +167,14 @@ cDMAudio::ReacquireDigitalHandle(void)
}
void
cDMAudio::SetDynamicAcousticModelingStatus(uint8 status)
cDMAudio::SetDynamicAcousticModelingStatus(bool8 status)
{
#ifdef AUDIO_REFLECTIONS
AudioManager.SetDynamicAcousticModelingStatus(status);
#endif
}
bool
bool8
cDMAudio::CheckForAnAudioFileOnCD(void)
{
return AudioManager.CheckForAnAudioFileOnCD();
@@ -164,12 +186,18 @@ cDMAudio::GetCDAudioDriveLetter(void)
return AudioManager.GetCDAudioDriveLetter();
}
bool
bool8
cDMAudio::IsAudioInitialised(void)
{
return AudioManager.IsAudioInitialised();
}
void
cDMAudio::ResetPoliceRadio()
{
AudioManager.ResetPoliceRadio();
}
void
cDMAudio::ReportCrime(eCrimeType crime, const CVector &pos)
{
@@ -182,7 +210,7 @@ cDMAudio::CreateLoopingScriptObject(cAudioScriptObject *scriptObject)
int32 audioEntity = AudioManager.CreateEntity(AUDIOTYPE_SCRIPTOBJECT, scriptObject);
if ( AEHANDLE_IS_OK(audioEntity) )
AudioManager.SetEntityStatus(audioEntity, true);
AudioManager.SetEntityStatus(audioEntity, TRUE);
return audioEntity;
}
@@ -200,7 +228,7 @@ cDMAudio::CreateOneShotScriptObject(cAudioScriptObject *scriptObject)
if ( AEHANDLE_IS_OK(audioEntity) )
{
AudioManager.SetEntityStatus(audioEntity, true);
AudioManager.SetEntityStatus(audioEntity, TRUE);
AudioManager.PlayOneShot(audioEntity, scriptObject->AudioId, 0.0f);
}
}
@@ -224,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, uint8 frontendFlag)
cDMAudio::PlayFrontEndTrack(uint32 track, bool8 frontendFlag)
{
MusicManager.PlayFrontEndTrack(track, frontendFlag);
}
@@ -254,7 +282,7 @@ cDMAudio::ChangeMusicMode(uint8 mode)
}
void
cDMAudio::PreloadCutSceneMusic(uint8 track)
cDMAudio::PreloadCutSceneMusic(uint32 track)
{
MusicManager.PreloadCutSceneMusic(track);
}
@@ -272,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);
}
bool
cDMAudio::IsMissionAudioSampleFinished(void)
bool8
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
@@ -320,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;
@@ -22,11 +25,13 @@ public:
int32 CreateEntity(eAudioType type, void *UID);
void DestroyEntity(int32 audioEntity);
void SetEntityStatus(int32 audioEntity, uint8 status);
bool8 GetEntityStatus(int32 audioEntity);
void SetEntityStatus(int32 audioEntity, bool8 status);
void PlayOneShot(int32 audioEntity, uint16 oneShot, float volume);
void DestroyAllGameCreatedEntities(void);
void SetMonoMode(uint8 mono);
void SetOutputMode(bool8 surround);
void SetMP3BoostVolume(uint8 volume);
void SetEffectsMasterVolume(uint8 volume);
void SetMusicMasterVolume(uint8 volume);
void SetEffectsFadeVol(uint8 volume);
@@ -35,23 +40,26 @@ public:
uint8 GetNum3DProvidersAvailable(void);
char *Get3DProviderName(uint8 id);
int8 AutoDetect3DProviders(void);
int8 GetCurrent3DProviderIndex(void);
int8 SetCurrent3DProvider(uint8 which);
void SetSpeakerConfig(int32 config);
bool IsMP3RadioChannelAvailable(void);
bool8 IsMP3RadioChannelAvailable(void);
void ReleaseDigitalHandle(void);
void ReacquireDigitalHandle(void);
void SetDynamicAcousticModelingStatus(uint8 status);
void SetDynamicAcousticModelingStatus(bool8 status);
bool CheckForAnAudioFileOnCD(void);
bool8 CheckForAnAudioFileOnCD(void);
char GetCDAudioDriveLetter(void);
bool IsAudioInitialised(void);
bool8 IsAudioInitialised(void);
void ResetPoliceRadio();
void ReportCrime(eCrimeType crime, CVector const &pos);
int32 CreateLoopingScriptObject(cAudioScriptObject *scriptObject);
@@ -63,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, uint8 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);
bool 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,79 +11,103 @@ public:
};
class CVehicle;
class CPed;
class cMusicManager
{
public:
bool m_bIsInitialised;
bool m_bDisabled;
uint8 m_nMusicMode;
uint8 m_nNextTrack;
uint8 m_nPlayingTrack;
bool m_bFrontendTrackFinished;
bool m_bPlayInFrontend;
bool m_bSetNextStation;
uint8 m_nAnnouncement;
bool m_bPreviousPlayerInCar;
bool m_bPlayerInCar;
bool m_bAnnouncementInProgress;
bool8 m_bIsInitialised;
bool8 m_bDisabled;
bool8 m_bSetNextStation;
uint8 m_nVolumeLatency;
uint8 m_nCurrentVolume;
uint8 m_nMaxVolume;
uint32 m_nAnnouncement;
bool8 m_bAnnouncementInProgress;
tStreamedSample m_aTracks[TOTAL_STREAMED_SOUNDS];
bool m_bResetTimers;
bool8 m_bResetTimers;
uint32 m_nResetTime;
uint32 m_nLastTrackServiceTime;
uint32 m_nTimer;
bool m_bDoTrackService;
bool m_bIgnoreTimeDelay;
bool m_bVerifyAmbienceTrackStartedToPlay;
bool m_bRadioSetByScript;
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();
bool IsInitialised() { return m_bIsInitialised; }
uint32 GetMusicMode() { return m_nMusicMode; }
uint8 GetNextTrack() { return m_nNextTrack; }
bool8 IsInitialised() { return m_bIsInitialised; }
uint8 GetMusicMode() { return m_nMusicMode; }
uint32 GetCurrentTrack() { return m_nPlayingTrack; }
bool Initialise();
void ResetMusicAfterReload();
void SetStartingTrackPositions(bool8 isNewGameTimer);
bool8 Initialise();
void Terminate();
void ChangeMusicMode(uint8 mode);
void StopFrontEndTrack();
bool PlayerInCar();
bool8 PlayerInCar();
void DisplayRadioStationName();
void PlayAnnouncement(uint8);
void PlayFrontEndTrack(uint8, uint8);
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);
bool UsesPoliceRadio(CVehicle *veh);
uint32 GetTrackStartPos(uint8);
bool8 UsesPoliceRadio(CVehicle *veh);
bool8 UsesTaxiRadio(CVehicle *veh);
uint32 GetTrackStartPos(uint32 track);
void ComputeAmbienceVol(uint8 reset, uint8& outVolume);
bool ServiceAnnouncement();
void ComputeAmbienceVol(bool8 reset, uint8& outVolume);
bool8 ServiceAnnouncement();
uint8 GetCarTuning();
uint8 GetNextCarTuning();
bool ChangeRadioChannel();
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();

750
src/audio/PolRadio.cpp Normal file
View File

@@ -0,0 +1,750 @@
#include "common.h"
#include "DMAudio.h"
#include "AudioManager.h"
#include "AudioSamples.h"
#include "MusicManager.h"
#include "PlayerPed.h"
#include "PolRadio.h"
#include "Replay.h"
#include "Vehicle.h"
#include "World.h"
#include "Zones.h"
#include "sampman.h"
#include "Wanted.h"
struct tPoliceRadioZone {
char m_aName[8];
uint32 m_nSampleIndex;
int32 field_12;
};
tPoliceRadioZone ZoneSfx[NUMAUDIOZONES];
uint32 g_nMissionAudioSfx = TOTAL_AUDIO_SAMPLES;
int8 g_nMissionAudioPlayingStatus = PLAY_STATUS_FINISHED;
bool8 gSpecialSuspectLastSeenReport;
uint32 gMinTimeToNextReport[NUM_CRIME_TYPES];
void
cAudioManager::InitialisePoliceRadioZones()
{
for (int32 i = 0; i < NUMAUDIOZONES; i++)
memset(ZoneSfx[i].m_aName, 0, 8);
#define SETZONESFX(i, name, sample) \
strcpy(ZoneSfx[i].m_aName, name); \
ZoneSfx[i].m_nSampleIndex = sample;
SETZONESFX(0, "VICE_C", SFX_POLICE_RADIO_VICE_CITY);
SETZONESFX(1, "IND_ZON", SFX_POLICE_RADIO_VICE_CITY_BEACH);
SETZONESFX(2, "COM_ZON", SFX_POLICE_RADIO_VICE_CITY_MAINLAND);
SETZONESFX(3, "BEACH1", SFX_POLICE_RADIO_OCEAN_BEACH);
SETZONESFX(4, "BEACH2", SFX_POLICE_RADIO_WASHINGTON_BEACH);
SETZONESFX(5, "BEACH3", SFX_POLICE_RADIO_VICE_POINT);
SETZONESFX(6, "GOLFC", SFX_POLICE_RADIO_LEAF_LINKS);
SETZONESFX(7, "STARI", SFX_POLICE_RADIO_STARFISH_ISLAND);
SETZONESFX(8, "DOCKS", SFX_POLICE_RADIO_VICEPORT);
SETZONESFX(9, "HAVANA", SFX_POLICE_RADIO_LITTLE_HAVANA);
SETZONESFX(10, "HAITI", SFX_POLICE_RADIO_LITTLE_HAITI);
SETZONESFX(11, "PORNI", SFX_POLICE_RADIO_PRAWN_ISLAND);
SETZONESFX(12, "DTOWN", SFX_POLICE_RADIO_DOWNTOWN);
SETZONESFX(13, "A_PORT", SFX_POLICE_RADIO_ESCOBAR_INTERNATIONAL);
#undef SETZONESFX
}
void
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;
}
void
cAudioManager::ResetPoliceRadio()
{
if (!m_bIsInitialised) return;
if (SampleManager.GetChannelUsedFlag(CHANNEL_POLICE_RADIO)) SampleManager.StopChannel(CHANNEL_POLICE_RADIO);
InitialisePoliceRadio();
}
void
cAudioManager::SetMissionScriptPoliceAudio(uint32 sfx)
{
if (!m_bIsInitialised) return;
if (g_nMissionAudioPlayingStatus != PLAY_STATUS_PLAYING) {
g_nMissionAudioPlayingStatus = PLAY_STATUS_STOPPED;
g_nMissionAudioSfx = sfx;
}
}
int8
cAudioManager::GetMissionScriptPoliceAudioPlayingStatus()
{
return g_nMissionAudioPlayingStatus;
}
void
cAudioManager::DoPoliceRadioCrackle()
{
m_sQueueSample.m_nEntityIndex = m_nPoliceChannelEntity;
m_sQueueSample.m_nCounter = 0;
m_sQueueSample.m_nSampleIndex = SFX_POLICE_RADIO_CRACKLE;
m_sQueueSample.m_nBankIndex = SFX_BANK_0;
m_sQueueSample.m_bIs2D = TRUE;
m_sQueueSample.m_nPriority = 10;
m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(SFX_POLICE_RADIO_CRACKLE);
m_sQueueSample.m_nVolume = m_anRandomTable[2] % 20 + 15;
m_sQueueSample.m_nLoopCount = 0;
SET_EMITTING_VOLUME(m_sQueueSample.m_nVolume);
SET_LOOP_OFFSETS(SFX_POLICE_RADIO_CRACKLE)
m_sQueueSample.m_bStatic = FALSE;
SET_SOUND_REVERB(FALSE);
m_sQueueSample.m_nPan = 63;
m_sQueueSample.m_nFramesToPlay = 3;
SET_SOUND_REFLECTION(FALSE);
AddSampleToRequestedQueue();
}
void
cAudioManager::ServicePoliceRadio()
{
int32 wantedLevel = 0; // uninitialized variable
static uint32 nLastSeen = 300;
if(!m_bIsInitialised) return;
if(!m_bIsPaused) {
bool8 crimeReport = SetupCrimeReport();
#ifdef FIX_BUGS // Crash at 0x5fe6ef
if(CReplay::IsPlayingBack() || !FindPlayerPed() || !FindPlayerPed()->m_pWanted)
return;
#endif
CPlayerPed *playerPed = FindPlayerPed();
if (playerPed) {
wantedLevel = playerPed->m_pWanted->GetWantedLevel();
if (!crimeReport) {
if (wantedLevel != 0) {
if (nLastSeen != 0)
#ifdef FIX_BUGS
nLastSeen -= CTimer::GetLogicalFramesPassed();
#else
nLastSeen--;
#endif
else {
nLastSeen = m_anRandomTable[1] % 1000 + 2000;
SetupSuspectLastSeenReport();
}
}
}
}
}
ServicePoliceRadioChannel(wantedLevel);
}
void
cAudioManager::ServicePoliceRadioChannel(uint8 wantedLevel)
{
bool8 processed = FALSE;
uint32 sample;
uint32 freq;
static int cWait = 0;
static bool8 bChannelOpen = FALSE;
static uint8 bMissionAudioPhysicalPlayingStatus = PLAY_STATUS_STOPPED;
static uint32 PoliceChannelFreq = 22050;
if (!m_bIsInitialised) return;
if (m_bIsPaused) {
if (SampleManager.GetChannelUsedFlag(CHANNEL_POLICE_RADIO)) SampleManager.StopChannel(CHANNEL_POLICE_RADIO);
if (g_nMissionAudioSfx != NO_SAMPLE && bMissionAudioPhysicalPlayingStatus == PLAY_STATUS_PLAYING &&
SampleManager.IsStreamPlaying(1)) {
SampleManager.PauseStream(TRUE, 1);
}
} else {
if (m_bWasPaused && g_nMissionAudioSfx != NO_SAMPLE &&
bMissionAudioPhysicalPlayingStatus == PLAY_STATUS_PLAYING) {
SampleManager.PauseStream(FALSE, 1);
}
if (m_sPoliceRadioQueue.m_nSamplesInQueue == 0) bChannelOpen = FALSE;
if (cWait) {
#ifdef FIX_BUGS
cWait -= CTimer::GetLogicalFramesPassed();
#else
--cWait;
#endif
return;
}
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)) {
bMissionAudioPhysicalPlayingStatus = PLAY_STATUS_PLAYING;
}
if (bMissionAudioPhysicalPlayingStatus == PLAY_STATUS_PLAYING) {
if (SampleManager.IsStreamPlaying(1)) {
DoPoliceRadioCrackle();
} else {
bMissionAudioPhysicalPlayingStatus = PLAY_STATUS_FINISHED;
g_nMissionAudioPlayingStatus = PLAY_STATUS_FINISHED;
g_nMissionAudioSfx = NO_SAMPLE;
cWait = 30;
}
return;
}
} else if (!SampleManager.GetChannelUsedFlag(CHANNEL_POLICE_RADIO)) {
SampleManager.PreloadStreamedFile(g_nMissionAudioSfx, 1);
SampleManager.SetStreamedVolumeAndPan(MAX_VOLUME, 63, TRUE, 1);
SampleManager.StartPreloadedStreamedFile(1);
g_nMissionAudioPlayingStatus = PLAY_STATUS_PLAYING;
bMissionAudioPhysicalPlayingStatus = PLAY_STATUS_STOPPED;
return;
}
}
if (bChannelOpen) DoPoliceRadioCrackle();
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) {
bChannelOpen = FALSE;
processed = TRUE;
}
}
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:
freq = m_anRandomTable[4] % 2000 + 10025;
bChannelOpen = bChannelOpen == FALSE;
break;
default: freq = SampleManager.GetSampleBaseFrequency(sample); break;
}
PoliceChannelFreq = freq;
#ifdef USE_TIME_SCALE_FOR_AUDIO
SampleManager.SetChannelFrequency(CHANNEL_POLICE_RADIO, freq * CTimer::GetTimeScale());
#else
SampleManager.SetChannelFrequency(CHANNEL_POLICE_RADIO, freq);
#endif
SampleManager.SetChannelVolume(CHANNEL_POLICE_RADIO, 100);
SampleManager.SetChannelPan(CHANNEL_POLICE_RADIO, 63);
SampleManager.SetChannelLoopCount(CHANNEL_POLICE_RADIO, 1);
#ifndef GTA_PS2
SampleManager.SetChannelLoopPoints(CHANNEL_POLICE_RADIO, 0, -1);
#endif
SampleManager.StartChannel(CHANNEL_POLICE_RADIO);
}
if (processed) ResetPoliceRadio();
}
}
}
bool8
cAudioManager::SetupCrimeReport()
{
int16 audioZoneId;
CZone *zone;
float rangeX;
float rangeY;
float halfX;
float halfY;
float quarterX;
float quarterY;
int i;
uint32 sampleIndex;
bool8 processed = FALSE;
if (MusicManager.m_nMusicMode == MUSICMODE_CUTSCENE) return FALSE;
if (POLICE_RADIO_QUEUE_MAX_SAMPLES - m_sPoliceRadioQueue.m_nSamplesInQueue <= 9) {
AgeCrimes();
return TRUE;
}
for (i = 0; i < ARRAY_SIZE(m_aCrimes); i++) {
if (m_aCrimes[i].type != CRIME_NONE)
break;
}
if (i == ARRAY_SIZE(m_aCrimes)) return FALSE;
audioZoneId = CTheZones::FindAudioZone(&m_aCrimes[i].position);
if (audioZoneId >= 0 && audioZoneId < NUMAUDIOZONES) {
zone = CTheZones::GetAudioZone(audioZoneId);
for (int j = 0; j < NUMAUDIOZONES; j++) {
if (strcmp(zone->name, ZoneSfx[j].m_aName) == 0) {
sampleIndex = ZoneSfx[j].m_nSampleIndex;
m_sPoliceRadioQueue.Add(SFX_POLICE_RADIO_MESSAGE_NOISE_1);
m_sPoliceRadioQueue.Add(m_anRandomTable[0] % 3 + SFX_WEVE_GOT);
m_sPoliceRadioQueue.Add(SFX_A_10);
switch (m_aCrimes[i].type) {
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;
}
#ifdef FIX_BUGS
m_sPoliceRadioQueue.Add(m_aCrimes[i].type + SFX_CRIME_1 - 1);
#else
m_sPoliceRadioQueue.Add(m_aCrimes[i].type + SFX_CRIME_1);
#endif
m_sPoliceRadioQueue.Add(SFX_IN);
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(SFX_POLICE_RADIO_MESSAGE_NOISE_1);
m_sPoliceRadioQueue.Add(NO_SAMPLE);
break;
}
}
}
m_aCrimes[i].type = CRIME_NONE;
AgeCrimes();
return TRUE;
}
Const uint32 gCarColourTable[][3] = {
{NO_SAMPLE, SFX_POLICE_RADIO_BLACK, NO_SAMPLE},
{NO_SAMPLE, SFX_POLICE_RADIO_WHITE, NO_SAMPLE},
{NO_SAMPLE, SFX_POLICE_RADIO_BLUE, NO_SAMPLE},
{NO_SAMPLE, SFX_POLICE_RADIO_RED, NO_SAMPLE},
{SFX_POLICE_RADIO_DARK, SFX_POLICE_RADIO_BLUE, NO_SAMPLE},
{NO_SAMPLE, SFX_POLICE_RADIO_PURPLE, NO_SAMPLE},
{NO_SAMPLE, SFX_POLICE_RADIO_YELLOW, NO_SAMPLE},
{SFX_POLICE_RADIO_BRIGHT, SFX_POLICE_RADIO_BLUE, NO_SAMPLE},
{SFX_POLICE_RADIO_LIGHT, SFX_POLICE_RADIO_BLUE, 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_POLICE_RADIO_RED, NO_SAMPLE},
{NO_SAMPLE, SFX_POLICE_RADIO_RED, NO_SAMPLE},
{NO_SAMPLE, SFX_POLICE_RADIO_RED, NO_SAMPLE},
{NO_SAMPLE, SFX_POLICE_RADIO_RED, NO_SAMPLE},
{NO_SAMPLE, SFX_POLICE_RADIO_RED, NO_SAMPLE},
{NO_SAMPLE, SFX_POLICE_RADIO_RED, NO_SAMPLE},
{NO_SAMPLE, 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_POLICE_RADIO_ORANGE, NO_SAMPLE},
{NO_SAMPLE, SFX_POLICE_RADIO_ORANGE, NO_SAMPLE},
{NO_SAMPLE, SFX_POLICE_RADIO_ORANGE, NO_SAMPLE},
{NO_SAMPLE, SFX_POLICE_RADIO_ORANGE, NO_SAMPLE},
{NO_SAMPLE, SFX_POLICE_RADIO_ORANGE, NO_SAMPLE},
{NO_SAMPLE, 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_POLICE_RADIO_YELLOW, NO_SAMPLE},
{NO_SAMPLE, SFX_POLICE_RADIO_YELLOW, NO_SAMPLE},
{NO_SAMPLE, SFX_POLICE_RADIO_YELLOW, NO_SAMPLE},
{NO_SAMPLE, SFX_POLICE_RADIO_YELLOW, NO_SAMPLE},
{NO_SAMPLE, SFX_POLICE_RADIO_YELLOW, NO_SAMPLE},
{NO_SAMPLE, 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_POLICE_RADIO_GREEN, NO_SAMPLE},
{NO_SAMPLE, SFX_POLICE_RADIO_GREEN, NO_SAMPLE},
{NO_SAMPLE, SFX_POLICE_RADIO_GREEN, NO_SAMPLE},
{NO_SAMPLE, SFX_POLICE_RADIO_GREEN, NO_SAMPLE},
{NO_SAMPLE, SFX_POLICE_RADIO_GREEN, NO_SAMPLE},
{NO_SAMPLE, 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_POLICE_RADIO_BLUE, NO_SAMPLE},
{NO_SAMPLE, SFX_POLICE_RADIO_BLUE, NO_SAMPLE},
{NO_SAMPLE, SFX_POLICE_RADIO_BLUE, NO_SAMPLE},
{NO_SAMPLE, SFX_POLICE_RADIO_BLUE, NO_SAMPLE},
{NO_SAMPLE, SFX_POLICE_RADIO_BLUE, NO_SAMPLE},
{NO_SAMPLE, 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_POLICE_RADIO_PURPLE, NO_SAMPLE},
{NO_SAMPLE, SFX_POLICE_RADIO_PURPLE, NO_SAMPLE},
{NO_SAMPLE, SFX_POLICE_RADIO_PURPLE, NO_SAMPLE},
{NO_SAMPLE, SFX_POLICE_RADIO_PURPLE, NO_SAMPLE},
{NO_SAMPLE, SFX_POLICE_RADIO_PURPLE, NO_SAMPLE},
{NO_SAMPLE, 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_POLICE_RADIO_SILVER, NO_SAMPLE},
{NO_SAMPLE, SFX_POLICE_RADIO_SILVER, NO_SAMPLE},
{NO_SAMPLE, SFX_POLICE_RADIO_SILVER, NO_SAMPLE},
{NO_SAMPLE, SFX_POLICE_RADIO_SILVER, NO_SAMPLE},
{NO_SAMPLE, SFX_POLICE_RADIO_SILVER, NO_SAMPLE},
{NO_SAMPLE, 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;
uint32 main_color;
uint32 sample;
uint32 color_pre_modifier;
uint32 color_post_modifier;
if (MusicManager.m_nMusicMode != MUSICMODE_CUTSCENE) {
veh = FindVehicleOfPlayer();
if (veh != nil) {
if (POLICE_RADIO_QUEUE_MAX_SAMPLES - m_sPoliceRadioQueue.m_nSamplesInQueue > 9) {
color1 = veh->m_currentColour1;
if (color1 >= ARRAY_SIZE(gCarColourTable)) {
debug("\n *** UNKNOWN CAR COLOUR %d *** ", color1);
} else {
main_color = gCarColourTable[color1][1];
color_pre_modifier = gCarColourTable[color1][0];
color_post_modifier = gCarColourTable[color1][2];
switch (veh->GetModelIndex()) {
case MI_LANDSTAL:
case MI_PATRIOT:
case MI_RANCHER:
case MI_FBIRANCH:
case MI_SANDKING:
sample = SFX_POLICE_RADIO_OFFROAD;
break;
case MI_IDAHO:
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_POLICE_RADIO_TUDOOR;
break;
case MI_STINGER:
case MI_INFERNUS:
case MI_CHEETAH:
case MI_BANSHEE:
case MI_PHEONIX:
case MI_COMET:
case MI_DELUXO:
case MI_HOTRING:
sample = SFX_POLICE_RADIO_SPORTS_CAR;
break;
case MI_LINERUN:
sample = SFX_POLICE_RADIO_RIG;
break;
case MI_PEREN:
case MI_REGINA:
sample = 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_POLICE_RADIO_SEDAN;
break;
case MI_RIO:
sample = SFX_POLICE_RADIO_CRUISER;
break;
case MI_FIRETRUCK:
sample = SFX_POLICE_RADIO_FIRE_TRUCK;
break;
case MI_TRASH:
sample = SFX_POLICE_RADIO_GARBAGE_TRUCK;
break;
case MI_STRETCH:
case MI_LOVEFIST:
sample = SFX_POLICE_RADIO_STRETCH;
break;
case MI_VOODOO:
sample = SFX_POLICE_RADIO_LOWRIDER;
break;
case MI_PONY:
case MI_MOONBEAM:
case MI_SECURICA:
case MI_RUMPO:
case MI_GANGBUR:
case MI_YANKEE:
case MI_TOPFUN:
case MI_BURRITO:
case MI_SPAND:
sample = SFX_POLICE_RADIO_VAN;
break;
case MI_MULE:
case MI_BARRACKS:
case MI_PACKER:
case MI_FLATBED:
sample = SFX_POLICE_RADIO_TRUCK;
break;
case MI_AMBULAN:
sample = SFX_POLICE_RADIO_AMBULANCE;
break;
case MI_TAXI:
case MI_CABBIE:
case MI_ZEBRA:
case MI_KAUFMAN:
sample = SFX_POLICE_RADIO_TAXI;
break;
case MI_BOBCAT:
case MI_WALTON:
sample = SFX_POLICE_RADIO_PICKUP;
break;
case MI_MRWHOOP:
sample = SFX_POLICE_RADIO_ICE_CREAM_VAN;
break;
case MI_BFINJECT:
sample = 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_POLICE_RADIO_HELICOPTER;
break;
case MI_POLICE:
sample = SFX_POLICE_RADIO_POLICE_CAR;
break;
case MI_ENFORCER:
sample = SFX_POLICE_RADIO_SWAT_VAN;
break;
case MI_PREDATOR:
case MI_SQUALO:
case MI_SPEEDER:
sample = SFX_POLICE_RADIO_SPEEDBOAT;
break;
case MI_BUS:
sample = SFX_POLICE_RADIO_BUS;
break;
case MI_RHINO:
sample = SFX_POLICE_RADIO_TANK;
break;
case MI_ANGEL:
case MI_PCJ600:
case MI_FREEWAY:
case MI_SANCHEZ:
sample = SFX_POLICE_RADIO_MOTOBIKE;
break;
case MI_COACH:
sample = SFX_POLICE_RADIO_COACH;
break;
case MI_ROMERO:
sample = SFX_POLICE_RADIO_HEARSE;
break;
case MI_PIZZABOY:
case MI_FAGGIO:
sample = SFX_POLICE_RADIO_MOPED;
break;
case MI_DEADDODO:
case MI_SKIMMER:
sample = SFX_POLICE_RADIO_PLANE;
break;
case MI_REEFER:
case MI_TROPIC:
case MI_COASTG:
case MI_MARQUIS:
case MI_JETMAX:
sample = SFX_POLICE_RADIO_BOAT;
break;
case MI_CADDY:
sample = SFX_POLICE_RADIO_GOLF_CART;
break;
case MI_DINGHY:
sample = SFX_POLICE_RADIO_DINGHY;
break;
default:
//debug("\n *** UNKNOWN CAR MODEL INDEX %d *** ", veh->GetModelIndex());
return;
}
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);
m_sPoliceRadioQueue.Add(SFX_POLICE_RADIO_IN_A);
if (color_pre_modifier != NO_SAMPLE)
m_sPoliceRadioQueue.Add(color_pre_modifier);
if (main_color != NO_SAMPLE)
m_sPoliceRadioQueue.Add(main_color);
if (color_post_modifier != NO_SAMPLE)
m_sPoliceRadioQueue.Add(color_post_modifier);
m_sPoliceRadioQueue.Add(sample);
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(SFX_POLICE_RADIO_MESSAGE_NOISE_1);
m_sPoliceRadioQueue.Add(NO_SAMPLE);
}
}
}
void
cAudioManager::ReportCrime(eCrimeType type, const CVector &pos)
{
int32 lastCrime = ARRAY_SIZE(m_aCrimes);
if (m_bIsInitialised && MusicManager.m_nMusicMode != MUSICMODE_CUTSCENE && FindPlayerPed()->m_pWanted->GetWantedLevel() > 0 &&
(type > CRIME_NONE || type < NUM_CRIME_TYPES) && m_FrameCounter >= gMinTimeToNextReport[type]) {
for (int32 i = 0; i < ARRAY_SIZE(m_aCrimes); i++) {
if (m_aCrimes[i].type != CRIME_NONE) {
if (m_aCrimes[i].type == type) {
m_aCrimes[i].position = pos;
m_aCrimes[i].timer = 0;
return;
}
} else
lastCrime = i;
}
if (lastCrime < ARRAY_SIZE(m_aCrimes)) {
m_aCrimes[lastCrime].type = type;
m_aCrimes[lastCrime].position = pos;
m_aCrimes[lastCrime].timer = 0;
gMinTimeToNextReport[type] = m_FrameCounter + 500;
}
}
}
void
cAudioManager::PlaySuspectLastSeen(float x, float y, float z)
{
int16 audioZone;
CZone *zone;
float rangeX;
float rangeY;
float halfX;
float halfY;
float quarterX;
float quarterY;
uint32 sample;
bool8 processed = FALSE;
CVector vec = CVector(x, y, z);
if (!m_bIsInitialised) return;
if (MusicManager.m_nMusicMode != MUSICMODE_CUTSCENE && POLICE_RADIO_QUEUE_MAX_SAMPLES - m_sPoliceRadioQueue.m_nSamplesInQueue > 9) {
audioZone = CTheZones::FindAudioZone(&vec);
if (audioZone >= 0 && audioZone < NUMAUDIOZONES) {
zone = CTheZones::GetAudioZone(audioZone);
for (int i = 0; i < NUMAUDIOZONES; i++) {
if (strcmp(zone->name, ZoneSfx[i].m_aName) == 0) {
sample = ZoneSfx[i].m_nSampleIndex;
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);
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);
m_sPoliceRadioQueue.Add(sample);
m_sPoliceRadioQueue.Add(SFX_POLICE_RADIO_MESSAGE_NOISE_1);
m_sPoliceRadioQueue.Add(NO_SAMPLE);
gSpecialSuspectLastSeenReport = TRUE;
break;
}
}
}
}
}
void
cAudioManager::AgeCrimes()
{
for (uint8 i = 0; i < ARRAY_SIZE(m_aCrimes); i++) {
if (m_aCrimes[i].type != CRIME_NONE) {
if (++m_aCrimes[i].timer > 1200) m_aCrimes[i].type = CRIME_NONE;
}
}
}

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