Compare commits

...

1948 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 ef0ba763b9 Make ped comments update position and volume + fix cPedComments::Process 2021-08-23 11:16:53 +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 d4ce6bcde0 Fix a bug about switching to previous weapon unintendedly 2021-08-21 16:34:26 +03:00
Sergeanur 7c80093efa Remove cMissionAudio, move cAMCrime array outside of cPoliceRadioQueue (R* vision) 2021-08-21 13:02:07 +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 11f2d941f1 small refactoring 2021-08-20 17:54:42 +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
aap c8623cfe09 CAutomobile fixes 2021-08-20 10:30:31 +02:00
withmorten 843b43001a update librw 2021-08-19 17:03:38 +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 2120d4d3ce Fix acceleration sound playing when exiting the vehicle, code fixes in ProcessPlayersVehicleEngine 2021-08-18 18:37:43 +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
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 dc4ee41b70 fix opengl; update librw 2021-08-17 12:58:52 +02: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 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 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 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
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 042284de8b actual fix 2021-08-15 18:36:48 +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
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
withmorten 81c6c5e47a map memory usage high default 2021-08-12 23:08:33 +02:00
Sergeanur 0a2df3ca4c Fix sampman_null 2021-08-12 15:03:38 +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
Nikolay Korolev b99edf9a6b mission retry fix 2021-08-12 11:23:10 +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
withmorten ab5965cc8d fix steam saves 2021-08-09 16:36:15 +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 8d9508bda4 Merge branch 'master' into miami 2021-08-08 17:34:28 +03:00
Nikolay Korolev 873840a6a5 merge 2021-08-08 17:19:49 +03:00
Nikolay Korolev 478bdcc1ca merge 2021-08-08 17:14:21 +03:00
Nikolay Korolev 668311a444 Merge branch 'master' into miami 2021-08-08 15:44:18 +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
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
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
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 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
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 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 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 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 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 ed9c911a0e Fix traffic light corona facing wrong side 2021-07-26 04:40:23 +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
Sergeanur aec797671e Fix aiming with minigun and flamethrower with PC controls 2021-07-22 22:15:27 +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
Sergeanur c937bdbfea render -> renderer (original name) 2021-07-18 00:03:57 +03: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 02c4ada807 Remove stupid cast 2021-07-15 00:49:46 +03:00
Magnus Larsen fb5a207abc Fix NearPed count going negative 2021-07-13 17:45:01 +02: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
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 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
Sergeanur 3f5fdc39a5 Reorganize config.h 2021-07-12 03:58:34 +03:00
withmorten 6f52ad190e miami: switch out current ini_parser.hpp with pulzed/mINI 2021-07-12 01:23:46 +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
Sergeanur dc29e7c044 Add PED DENSITY and CAR DENSITY lines to GXT 2021-07-11 23:55:11 +03:00
withmorten f686065769 get rid of // done comments in audiomanager.h 2021-07-11 03:59:37 +02:00
withmorten 58de524d70 tiny diff fix 2021-07-11 03:26:59 +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
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 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
Sergeanur ddf2b09e55 Update GXT compiler with fix of German 2021-07-10 02:04:35 +03:00
withmorten 026cd10f3f
Update german.txt 2021-07-10 00:43:26 +02:00
withmorten ffe199290b fix jittery cars at 15fps 2021-07-09 18:51:27 +02:00
withmorten 0b269571d7 add librw defines to vanilla defines undefs 2021-07-09 18:05:26 +02:00
Sergeanur 72f6780905 Use CPad functions to check key states in script loader 2021-07-08 03:37:14 +03:00
withmorten 79c010f082 fix macro redefinition warnings on win-glfw build 2021-07-08 01:44:55 +02:00
withmorten e6544a6983 fix sampman_null build 2021-07-07 01:59: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
withmorten 0b27a3dc23 fix cmake workflow 2021-07-05 19:08:52 +02:00
erorcun 74fd58513b
Merge pull request #1203 from AGraber/miami_librw_update
miami: Update librw
2021-07-04 19:34:47 +03:00
Adrian Graber 2029ac3d62 Update librw 2021-07-04 18:17:22 +02:00
withmorten 10d7b303a5
Update README.md 2021-07-03 23:11:35 +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
Sergeanur 3ed4cdf109 Fix overflow in audio code 2021-07-03 15:57:08 +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
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
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 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
Sergeanur 3988fec6e7 Fix sound of water when changing MSAA or windowed/fullscreen mode 2021-07-01 21:39:15 +03:00
withmorten 2d38eb923d zero out work_buff before writing padding in save 2021-07-01 18:09:32 +02:00
Sergeanur cb72fee941 fix 2021-06-30 21:45:19 +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
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
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
Sergeanur f8297df9c5 Redo ReadSaveBuf + common.h cleanup 2021-06-28 05:12:54 +03:00
erorcun 3587cb029e Remove waiting for stream closure in multi-thread audio 2021-06-27 14:42:52 +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
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 d8f5e86ede swap out codewarrior reVC.mcp with xml export 2021-06-26 03:43:40 +02:00
withmorten 85d60b36da fix tabs in premake 2021-06-26 03:20:18 +02:00
Sergeanur 225530ef04 Fix premature CTimer calls 2021-06-26 04:12:04 +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
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
withmorten 4e3fc35401 add no-git-hash option to premake 2021-06-25 02:41:40 +02:00
withmorten 5341840943 fix cmake build. 2021-06-25 02:38:50 +02:00
Sergeanur f46461331c Refactor CTimer::Update 2021-06-25 02:40:56 +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 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 82245789ed proper radar clipping 2021-02-28 14:55:14 +01:00
aap d2b5a422e4 update librw 2021-02-28 14:17:14 +01:00
erorcun a311f643f9 Fixes 2021-02-28 15:50:51 +03: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 b01d6be3f4 PoliceRadio -> PolRadio (original name) 2021-02-26 10:57:11 +02:00
Haydn Trigg d506f8588c Fix stack corruption in HandleGraphEvent 2021-02-21 17:15:21 +01:00
erorcun 1d336d851d Fix Radio Off text more 2021-02-21 18:22:02 +03: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
withmorten 111ccf5d34
remove nightly 2021-02-19 18:21:20 +01:00
withmorten 60bc816af5 nil -> false 2021-02-19 16:32:25 +01:00
erorcun 3d5f0ef318 Update librw to fix Mac hi-dpi 2021-02-19 17:00:03 +03:00
RuesanG c274c05ce3
Update reVC German.txt 2021-02-19 03:59:22 +01: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
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 3457ff48ce d3d9 debug render groups 2021-02-18 13:08:29 +01:00
aap 146ad3b4a1 fix last commit 2021-02-18 12:23:33 +01:00
aap 996772faf2 add debug render groups 2021-02-18 12:21:52 +01:00
aap 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
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
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
Sergeanur ac88a00f06 Fix endless vibration in pause menu 2021-02-17 15:09:16 +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 f603f4397d fix premake workflows 2021-02-17 13:40:42 +01:00
aap 0810abd294 update librw; get rid of glew 2021-02-17 13:14:26 +01:00
aap ed38118008 add hires particle.txd 2021-02-17 11:03:17 +01:00
Steve Wills 2b6628aa65 Fix seg fault when configuring controller 2021-02-17 01:12:39 +03:00
Adrian Graber 88c11e92d3 Fix buffer overflow on re3_sem_open/close 2021-02-16 18:26:07 +01: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 4368841f02 Fix rare stream deadlock on Windows 2021-02-16 17:55:42 +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
Fire-Head 63e5afda0b fix mailbox particle 2021-02-15 21:25:18 +03: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 a76c962aa3 always console for windows Debug builds 2021-02-15 14:27:35 +01:00
erorcun 5ce5000b14 Try to fix streams stop after a while 2 2021-02-15 05:09:46 +03:00
Fire-Head 6fcea142a2 readme update 2021-02-15 00:54:43 +03: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
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
442 changed files with 160182 additions and 103783 deletions

View File

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

View File

@ -1,4 +1,4 @@
name: re3 conan+cmake
name: reVC conan+cmake
on:
pull_request:
push:
@ -96,13 +96,13 @@ jobs:
conan export re3mss miles-sdk/master@
- name: "Download/build dependencies (conan install)"
run: |
conan install ${{ github.workspace }} re3/master@ -if build -o re3:audio=${{ matrix.audio }} -o librw:platform=${{ matrix.platform }} -o librw:gl3_gfxlib=${{ matrix.gl3_gfxlib || 'glfw' }} --build missing -pr:h ./host_profile -pr:b default -s re3:build_type=RelWithDebInfo -s librw:build_type=RelWithDebInfo
conan install ${{ github.workspace }} 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)"
@ -113,5 +113,5 @@ jobs:
uses: actions/upload-artifact@v2
with:
name: "${{ matrix.os }}-${{ matrix.platform }}"
path: build/*.zip
path: build/*.tar.xz
if-no-files-found: error

View File

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

View File

@ -1,4 +1,4 @@
name: re3 premake amd64
name: reVC premake amd64
on:
pull_request:
@ -37,14 +37,14 @@ jobs:
./premake5 vs2019 --with-librw --no-full-paths --glfwdir64=${{env.GLFW_BASE}}
- name: Build
run: |
msbuild -m build/re3.sln /property:Configuration=${{matrix.buildtype}} /property:Platform=${{matrix.platform}}
msbuild -m build/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/
@ -52,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:
@ -37,14 +37,14 @@ jobs:
./premake5 vs2019 --with-librw --no-full-paths --glfwdir32=${{env.GLFW_BASE}}
- name: Build
run: |
msbuild -m build/re3.sln /property:Configuration=${{matrix.buildtype}} /property:Platform=${{matrix.platform}}
msbuild -m build/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: |
@ -53,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}}

4
.gitignore vendored
View File

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

View File

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

View File

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

View File

@ -1,6 +1,6 @@
<img src="https://github.com/GTAmodding/re3/blob/master/res/images/logo_1024.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)
[![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
@ -12,29 +12,25 @@ 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 build:
- [Windows D3D9 MSS 32bit](https://nightly.link/GTAmodding/re3/workflows/re3_msvc_x86/master/re3_Release_win-x86-librw_d3d9-mss.zip)
- [Windows D3D9 64bit](https://nightly.link/GTAmodding/re3/workflows/re3_msvc_amd64/master/re3_Release_win-amd64-librw_d3d9-oal.zip)
- [Windows OpenGL 64bit](https://nightly.link/GTAmodding/re3/workflows/re3_msvc_amd64/master/re3_Release_win-amd64-librw_gl3_glfw-oal.zip)
- [Linux 64bit](https://nightly.link/GTAmodding/re3/workflows/build-cmake-conan/master/ubuntu-18.04-gl3.zip)
- [MacOS 64bit x86-64](https://nightly.link/GTAmodding/re3/workflows/build-cmake-conan/master/macos-latest-gl3.zip)
- Extract the downloaded zip over your GTA 3 directory and run re3. The zip includes the binary, updated and additional gamefiles and in case of OpenAL the required dlls.
- 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)
* 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,7 +68,6 @@ 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
@ -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,7 +102,7 @@ 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>
@ -131,8 +123,8 @@ 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).
@ -140,11 +132,11 @@ Microsoft recently discontinued its downloads of the DX9 SDK. You can download a
> :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.

View File

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

File diff suppressed because it is too large Load Diff

View File

@ -5,8 +5,8 @@ import shutil
import textwrap
class Re3Conan(ConanFile):
name = "re3"
class 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
# Diffuse Colour Modifier Table (Red,Green,Blue,Amount)
# SUNNY CLOUDY RAINY, FOGGY
0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 # Midnight
0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 # 1am
0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 # 2am
0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 # 3am
0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 # 4am
0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 # 5am
0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 # 6am
0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 # 7am
0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 # 8am
0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 # 9am
0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 # 10am
0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 # 11am
0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 # Midday
0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 # 1pm
0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 # 2pm
0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 # 3pm
0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 # 4pm
0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 # 5pm
0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 # 6pm
0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 # 7pm
0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 # 8pm
0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 # 9pm
0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 # 10pm
0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 # 11pm
# Specular Colour Table (Red,Green,Blue,Amount)
# SUNNY CLOUDY RAINY, FOGGY
81, 150, 178, 100 178, 178, 178, 50 178, 178, 178, 75 178, 178, 178, 20 # Midnight
81, 150, 178, 100 178, 178, 178, 50 178, 178, 178, 75 178, 178, 178, 20 # 1am
81, 150, 178, 100 178, 178, 178, 50 178, 178, 178, 75 178, 178, 178, 20 # 2am
81, 150, 178, 100 178, 178, 178, 50 178, 178, 178, 75 178, 178, 178, 20 # 3am
81, 150, 178, 100 178, 178, 178, 50 178, 178, 178, 75 178, 178, 178, 20 # 4am
178, 178, 178, 100 178, 178, 178, 50 178, 178, 178, 75 178, 178, 178, 20 # 5am
178, 178, 178, 100 178, 178, 178, 50 178, 178, 178, 75 178, 178, 178, 20 # 6am
178, 178, 178, 100 178, 178, 178, 50 178, 178, 178, 75 178, 178, 178, 20 # 7am
178, 178, 178, 100 178, 178, 178, 50 178, 178, 178, 75 178, 178, 178, 20 # 8am
178, 178, 178, 100 178, 178, 178, 50 178, 178, 178, 75 178, 178, 178, 20 # 9am
178, 178, 178, 100 178, 178, 178, 50 178, 178, 178, 75 178, 178, 178, 20 # 10am
178, 178, 178, 100 178, 178, 178, 50 178, 178, 178, 75 178, 178, 178, 20 # 11am
178, 178, 178, 100 178, 178, 178, 50 178, 178, 178, 75 178, 178, 178, 20 # Midday
178, 178, 178, 100 178, 178, 178, 50 178, 178, 178, 75 178, 178, 178, 20 # 1pm
178, 178, 178, 100 178, 178, 178, 50 178, 178, 178, 75 178, 178, 178, 20 # 2pm
178, 178, 178, 100 178, 178, 178, 50 178, 178, 178, 75 178, 178, 178, 20 # 3pm
178, 178, 178, 100 178, 178, 178, 50 178, 178, 178, 75 178, 178, 178, 20 # 4pm
178, 178, 178, 100 178, 178, 178, 50 178, 178, 178, 75 178, 178, 178, 20 # 5pm
178, 178, 178, 100 178, 178, 178, 50 178, 178, 178, 75 178, 178, 178, 20 # 6pm
178, 178, 178, 100 178, 178, 178, 50 178, 178, 178, 75 178, 178, 178, 20 # 7pm
178, 178, 178, 100 178, 178, 178, 50 178, 178, 178, 75 178, 178, 178, 20 # 8pm
178, 178, 178, 100 178, 178, 178, 50 178, 178, 178, 75 178, 178, 178, 20 # 9pm
81, 150, 178, 100 178, 178, 178, 50 178, 178, 178, 75 178, 178, 178, 20 # 10pm
81, 150, 178, 100 178, 178, 178, 50 178, 178, 178, 75 178, 178, 178, 20 # 11pm
# Fresnel RO Table
# SUNNY CLOUDY RAINY, FOGGY EXTRASUNNY HURRICANE EXTRACOLOURS
0.4 0.4 0.4 0.4 0.4 0.4 0.4 # Midnight
0.4 0.4 0.4 0.4 0.4 0.4 0.4 # 1am
0.4 0.4 0.4 0.4 0.4 0.4 0.4 # 2am
0.4 0.4 0.4 0.4 0.4 0.4 0.4 # 3am
0.4 0.4 0.4 0.4 0.4 0.4 0.4 # 4am
0.4 0.4 0.4 0.4 0.4 0.4 0.4 # 5am
0.4 0.4 0.4 0.4 0.4 0.4 0.4 # 6am
0.4 0.4 0.4 0.4 0.4 0.4 0.4 # 7am
0.4 0.4 0.4 0.4 0.4 0.4 0.4 # 8am
0.4 0.4 0.4 0.4 0.4 0.4 0.4 # 9am
0.4 0.4 0.4 0.4 0.4 0.4 0.4 # 10am
0.4 0.4 0.4 0.4 0.4 0.4 0.4 # 11am
0.4 0.4 0.4 0.4 0.4 0.4 0.4 # Midday
0.4 0.4 0.4 0.4 0.4 0.4 0.4 # 1pm
0.4 0.4 0.4 0.4 0.4 0.4 0.4 # 2pm
0.4 0.4 0.4 0.4 0.4 0.4 0.4 # 3pm
0.4 0.4 0.4 0.4 0.4 0.4 0.4 # 4pm
0.4 0.4 0.4 0.4 0.4 0.4 0.4 # 5pm
0.4 0.4 0.4 0.4 0.4 0.4 0.4 # 6pm
0.4 0.4 0.4 0.4 0.4 0.4 0.4 # 7pm
0.4 0.4 0.4 0.4 0.4 0.4 0.4 # 8pm
0.4 0.4 0.4 0.4 0.4 0.4 0.4 # 9pm
0.4 0.4 0.4 0.4 0.4 0.4 0.4 # 10pm
0.4 0.4 0.4 0.4 0.4 0.4 0.4 # 11pm
# Specular Power Table (ther higher, the tighter the highlite)
# SUNNY CLOUDY RAINY, FOGGY EXTRASUNNY HURRICANE EXTRACOLOURS
25 15 70 10 15 15 18 # Midnight
25 15 70 10 15 15 18 # 1am
25 15 70 10 15 15 18 # 2am
25 15 70 10 15 15 18 # 3am
25 15 70 10 15 15 18 # 4am
25 15 70 10 15 15 18 # 5am
25 15 70 10 15 15 18 # 6am
25 15 70 10 15 15 18 # 7am
25 15 70 10 15 15 18 # 8am
25 15 70 10 15 15 18 # 9am
25 15 70 10 15 15 18 # 10am
25 15 70 10 15 15 18 # 11am
25 15 70 10 15 15 18 # Midday
25 15 70 10 15 15 18 # 1pm
25 15 70 10 15 15 18 # 2pm
25 15 70 10 15 15 18 # 3pm
25 15 70 10 15 15 18 # 4pm
25 15 70 10 15 15 18 # 5pm
25 15 70 10 15 15 18 # 6pm
25 15 70 10 15 15 18 # 7pm
25 15 70 10 15 15 18 # 8pm
25 15 70 10 15 15 18 # 9pm
25 15 70 10 15 15 18 # 10pm
25 15 70 10 15 15 18 # 11pm
# Diffuse Colour Modifier Table (Red,Green,Blue,Amount)
# SUNNY CLOUDY RAINY, FOGGY EXTRASUNNY HURRICANE EXTRACOLOURS
0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 # Midnight
0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 # 1am
0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 # 2am
0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 # 3am
0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 # 4am
0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 # 5am
0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 # 6am
0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 # 7am
0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 # 8am
0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 # 9am
0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 # 10am
0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 # 11am
0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 # Midday
0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 # 1pm
0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 # 2pm
0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 # 3pm
0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 # 4pm
0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 # 5pm
0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 # 6pm
0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 # 7pm
0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 # 8pm
0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 # 9pm
0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 # 10pm
0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 # 11pm
# Specular Colour Table (Red,Green,Blue,Ignored)
# SUNNY CLOUDY RAINY, FOGGY EXTRASUNNY HURRICANE EXTRACOLOURS
178, 178, 178, 100 140, 140, 150, 50 220, 220, 220, 75 255, 255, 255, 20 178, 178, 178, 100 178, 178, 178, 75 178, 178, 178, 100 # Midnight
178, 178, 178, 100 140, 140, 150, 50 220, 220, 220, 75 255, 255, 255, 20 178, 178, 178, 100 178, 178, 178, 75 178, 178, 178, 100 # 1am
178, 178, 178, 100 140, 140, 150, 50 220, 220, 220, 75 255, 255, 255, 20 178, 178, 178, 100 178, 178, 178, 75 178, 178, 178, 100 # 2am
178, 178, 178, 100 140, 140, 150, 50 220, 220, 220, 75 255, 255, 255, 20 178, 178, 178, 100 178, 178, 178, 75 178, 178, 178, 100 # 3am
178, 178, 178, 100 140, 140, 150, 50 220, 220, 220, 75 255, 255, 255, 20 178, 178, 178, 100 178, 178, 178, 75 178, 178, 178, 100 # 4am
178, 178, 178, 100 140, 140, 150, 50 220, 220, 220, 75 255, 255, 255, 20 178, 178, 178, 100 178, 178, 178, 75 178, 178, 178, 100 # 5am
178, 178, 178, 100 140, 140, 150, 50 220, 220, 220, 75 255, 255, 255, 20 178, 178, 178, 100 178, 178, 178, 75 178, 178, 178, 100 # 6am
178, 178, 178, 100 140, 140, 150, 50 220, 220, 220, 75 255, 255, 255, 20 178, 178, 178, 100 178, 178, 178, 75 178, 178, 178, 100 # 7am
178, 178, 178, 100 140, 140, 150, 50 220, 220, 220, 75 255, 255, 255, 20 178, 178, 178, 100 178, 178, 178, 75 178, 178, 178, 100 # 8am
178, 178, 178, 100 140, 140, 150, 50 220, 220, 220, 75 255, 255, 255, 20 178, 178, 178, 100 178, 178, 178, 75 178, 178, 178, 100 # 9am
178, 178, 178, 100 140, 140, 150, 50 220, 220, 220, 75 255, 255, 255, 20 178, 178, 178, 100 178, 178, 178, 75 178, 178, 178, 100 # 10am
178, 178, 178, 100 140, 140, 150, 50 220, 220, 220, 75 255, 255, 255, 20 178, 178, 178, 100 178, 178, 178, 75 178, 178, 178, 100 # 11am
178, 178, 178, 100 140, 140, 150, 50 220, 220, 220, 75 255, 255, 255, 20 178, 178, 178, 100 178, 178, 178, 75 178, 178, 178, 100 # Midday
178, 178, 178, 100 140, 140, 150, 50 220, 220, 220, 75 255, 255, 255, 20 178, 178, 178, 100 178, 178, 178, 75 178, 178, 178, 100 # 1pm
178, 178, 178, 100 140, 140, 150, 50 220, 220, 220, 75 255, 255, 255, 20 178, 178, 178, 100 178, 178, 178, 75 178, 178, 178, 100 # 2pm
178, 178, 178, 100 140, 140, 150, 50 220, 220, 220, 75 255, 255, 255, 20 178, 178, 178, 100 178, 178, 178, 75 178, 178, 178, 100 # 3pm
178, 178, 178, 100 140, 140, 150, 50 220, 220, 220, 75 255, 255, 255, 20 178, 178, 178, 100 178, 178, 178, 75 178, 178, 178, 100 # 4pm
178, 178, 178, 100 140, 140, 150, 50 220, 220, 220, 75 255, 255, 255, 20 178, 178, 178, 100 178, 178, 178, 75 178, 178, 178, 100 # 5pm
178, 178, 178, 100 140, 140, 150, 50 220, 220, 220, 75 255, 255, 255, 20 178, 178, 178, 100 178, 178, 178, 75 178, 178, 178, 100 # 6pm
178, 178, 178, 100 140, 140, 150, 50 220, 220, 220, 75 255, 255, 255, 20 178, 178, 178, 100 178, 178, 178, 75 178, 178, 178, 100 # 7pm
178, 178, 178, 100 140, 140, 150, 50 220, 220, 220, 75 255, 255, 255, 20 178, 178, 178, 100 178, 178, 178, 75 178, 178, 178, 100 # 8pm
178, 178, 178, 100 140, 140, 150, 50 220, 220, 220, 75 255, 255, 255, 20 178, 178, 178, 100 178, 178, 178, 75 178, 178, 178, 100 # 9pm
178, 178, 178, 100 140, 140, 150, 50 220, 220, 220, 75 255, 255, 255, 20 178, 178, 178, 100 178, 178, 178, 75 178, 178, 178, 100 # 10pm
178, 178, 178, 100 140, 140, 150, 50 220, 220, 220, 75 255, 255, 255, 20 178, 178, 178, 100 178, 178, 178, 75 178, 178, 178, 100 # 11pm

Binary file not shown.

View File

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

View File

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

View File

@ -68,10 +68,10 @@ function getarch(a)
return a
end
workspace "re3"
workspace "reVC"
language "C++"
configurations { "Debug", "Release" }
startproject "re3"
startproject "reVC"
location "build"
symbols "Full"
staticruntime "off"
@ -84,10 +84,10 @@ workspace "re3"
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",
@ -234,7 +234,7 @@ project "librw"
filter "platforms:*gl3_glfw*"
staticruntime "off"
filter "platforms:*RW33*"
filter "platforms:*RW34*"
flags { "ExcludeFromBuild" }
filter {}
end
@ -243,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
@ -336,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*"
@ -419,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"

View File

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

Before

Width:  |  Height:  |  Size: 9.2 KiB

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 24 KiB

After

Width:  |  Height:  |  Size: 57 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 18 KiB

After

Width:  |  Height:  |  Size: 30 KiB

View File

@ -167,4 +167,4 @@ if(${PROJECT}_INSTALL)
endif()
endif()
re3_platform_target(${EXECUTABLE} INSTALL)
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;
int32 numNodes; // taken from CAnimBlendClumpData::numFrames
int16 numNodes; // taken from CAnimBlendClumpData::numFrames
int16 groupId; // ID of CAnimBlendAssocGroup this is in
// NB: Order of these depends on order of nodes in Clump this was built from
CAnimBlendNode *nodes;
CAnimBlendHierarchy *hierarchy;
@ -44,8 +46,8 @@ public:
float currentTime;
float speed;
float timeStep;
int32 animId;
int32 flags;
int16 animId;
int16 flags;
int32 callbackType;
void (*callback)(CAnimBlendAssociation*, void*);
void *callbackArg;
@ -76,16 +78,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

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

View File

@ -54,4 +54,4 @@ public:
void AddCollisionToRequestedQueue();
};
VALIDATE_SIZE(cAudioCollisionManager, 852);
VALIDATE_SIZE(cAudioCollisionManager, 0x354);

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

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

File diff suppressed because it is too large Load Diff

View File

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

View File

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

View File

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

File diff suppressed because it is too large Load Diff

View File

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

View File

@ -22,8 +22,6 @@ struct tPoliceRadioZone {
};
tPoliceRadioZone ZoneSfx[NUMAUDIOZONES];
char SubZo2Label[8];
char SubZo3Label[8];
uint32 g_nMissionAudioSfx = TOTAL_AUDIO_SAMPLES;
int8 g_nMissionAudioPlayingStatus = PLAY_STATUS_FINISHED;
@ -40,46 +38,22 @@ cAudioManager::InitialisePoliceRadioZones()
strcpy(ZoneSfx[i].m_aName, name); \
ZoneSfx[i].m_nSampleIndex = sample;
SETZONESFX(0, "HOSPI_2", SFX_POLICE_RADIO_ROCKFORD);
SETZONESFX(1, "CONSTRU", SFX_POLICE_RADIO_FORT_STAUNTON);
SETZONESFX(2, "STADIUM", SFX_POLICE_RADIO_ASPATRIA);
SETZONESFX(3, "YAKUSA", SFX_POLICE_RADIO_TORRINGTON);
SETZONESFX(4, "SHOPING", SFX_POLICE_RADIO_BEDFORD_POINT);
SETZONESFX(5, "COM_EAS", SFX_POLICE_RADIO_NEWPORT);
SETZONESFX(6, "PARK", SFX_POLICE_RADIO_BELLEVILLE_PARK);
SETZONESFX(7, "UNIVERS", SFX_POLICE_RADIO_LIBERTY_CAMPUS);
SETZONESFX(8, "BIG_DAM", SFX_POLICE_RADIO_COCHRANE_DAM);
SETZONESFX(9, "SUB_IND", SFX_POLICE_RADIO_PIKE_CREEK);
SETZONESFX(10, "SWANKS", SFX_POLICE_RADIO_CEDAR_GROVE);
SETZONESFX(11, "PROJECT", SFX_POLICE_RADIO_WICHITA_GARDENS);
SETZONESFX(12, "AIRPORT", SFX_POLICE_RADIO_FRANCIS_INTERNATIONAL_AIRPORT);
SETZONESFX(13, "PORT_W", SFX_POLICE_RADIO_CALLAHAN_POINT);
SETZONESFX(14, "PORT_S", SFX_POLICE_RADIO_ATLANTIC_QUAYS);
SETZONESFX(15, "PORT_E", SFX_POLICE_RADIO_PORTLAND_HARBOUR);
SETZONESFX(16, "PORT_I", SFX_POLICE_RADIO_TRENTON);
SETZONESFX(17, "CHINA", SFX_POLICE_RADIO_CHINATOWN);
SETZONESFX(18, "REDLIGH", SFX_POLICE_RADIO_RED_LIGHT_DISTRICT);
SETZONESFX(19, "TOWERS", SFX_POLICE_RADIO_HEPBURN_HEIGHTS);
SETZONESFX(20, "LITTLEI", SFX_POLICE_RADIO_SAINT_MARKS);
SETZONESFX(21, "HARWOOD", SFX_POLICE_RADIO_HARWOOD);
SETZONESFX(22, "EASTBAY", SFX_POLICE_RADIO_PORTLAND_BEACH);
SETZONESFX(23, "S_VIEW", SFX_POLICE_RADIO_PORTLAND_STRAIGHTS);
SETZONESFX(24, "CITYZON", SFX_POLICE_RADIO_LIBERTY_CITY);
SETZONESFX(25, "IND_ZON", SFX_POLICE_RADIO_PORTLAND);
SETZONESFX(26, "COM_ZON", SFX_POLICE_RADIO_STAUNTON_ISLAND);
SETZONESFX(27, "SUB_ZON", SFX_POLICE_RADIO_SHORESIDE_VALE);
SETZONESFX(28, "SUB_ZO2", SFX_POLICE_RADIO_SHORESIDE_VALE);
SETZONESFX(29, "SUB_ZO3", SFX_POLICE_RADIO_SHORESIDE_VALE);
SETZONESFX(30, "A", SFX_POLICE_RADIO_ROCKFORD);
SETZONESFX(31, "A", SFX_POLICE_RADIO_ROCKFORD);
SETZONESFX(32, "A", SFX_POLICE_RADIO_ROCKFORD);
SETZONESFX(33, "A", SFX_POLICE_RADIO_ROCKFORD);
SETZONESFX(34, "A", SFX_POLICE_RADIO_ROCKFORD);
SETZONESFX(0, "VICE_C", SFX_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
strcpy(SubZo2Label, "SUB_ZO2");
strcpy(SubZo3Label, "SUB_ZO3");
}
void
@ -88,8 +62,9 @@ cAudioManager::InitialisePoliceRadio()
m_sPoliceRadioQueue.Reset();
for (int32 i = 0; i < ARRAY_SIZE(m_aCrimes); i++)
m_aCrimes[i].type = CRIME_NONE;
#if !defined(GTA_PS2) || defined(AUDIO_REVERB)
SampleManager.SetChannelReverbFlag(CHANNEL_POLICE_RADIO, FALSE);
#endif
gSpecialSuspectLastSeenReport = FALSE;
for (int32 i = 0; i < ARRAY_SIZE(gMinTimeToNextReport); i++)
gMinTimeToNextReport[i] = m_FrameCounter;
@ -134,7 +109,7 @@ cAudioManager::DoPoliceRadioCrackle()
SET_EMITTING_VOLUME(m_sQueueSample.m_nVolume);
SET_LOOP_OFFSETS(SFX_POLICE_RADIO_CRACKLE)
m_sQueueSample.m_bStatic = FALSE;
m_sQueueSample.m_bReverb = FALSE;
SET_SOUND_REVERB(FALSE);
m_sQueueSample.m_nPan = 63;
m_sQueueSample.m_nFramesToPlay = 3;
SET_SOUND_REFLECTION(FALSE);
@ -149,24 +124,27 @@ cAudioManager::ServicePoliceRadio()
if(!m_bIsInitialised) return;
if(!m_nUserPause) {
if(!m_bIsPaused) {
bool8 crimeReport = SetupCrimeReport();
#ifdef FIX_BUGS // Crash at 0x5fe6ef
if(CReplay::IsPlayingBack() || !FindPlayerPed() || !FindPlayerPed()->m_pWanted)
return;
#endif
wantedLevel = FindPlayerPed()->m_pWanted->GetWantedLevel();
if(!crimeReport) {
if(wantedLevel != 0) {
if(nLastSeen != 0) {
CPlayerPed *playerPed = FindPlayerPed();
if (playerPed) {
wantedLevel = playerPed->m_pWanted->GetWantedLevel();
if (!crimeReport) {
if (wantedLevel != 0) {
if (nLastSeen != 0)
#ifdef FIX_BUGS
nLastSeen -= CTimer::GetLogicalFramesPassed();
nLastSeen -= CTimer::GetLogicalFramesPassed();
#else
--nLastSeen;
nLastSeen--;
#endif
} else {
nLastSeen = m_anRandomTable[1] % 1000 + 2000;
SetupSuspectLastSeenReport();
else {
nLastSeen = m_anRandomTable[1] % 1000 + 2000;
SetupSuspectLastSeenReport();
}
}
}
}
@ -179,23 +157,23 @@ cAudioManager::ServicePoliceRadioChannel(uint8 wantedLevel)
{
bool8 processed = FALSE;
uint32 sample;
int32 freq;
uint32 freq;
static int cWait = 0;
static bool8 bChannelOpen = FALSE;
static uint8 bMissionAudioPhysicalPlayingStatus = PLAY_STATUS_STOPPED;
static int32 PoliceChannelFreq = 5500;
static uint32 PoliceChannelFreq = 22050;
if (!m_bIsInitialised) return;
if (m_nUserPause) {
if (m_bIsPaused) {
if (SampleManager.GetChannelUsedFlag(CHANNEL_POLICE_RADIO)) SampleManager.StopChannel(CHANNEL_POLICE_RADIO);
if (g_nMissionAudioSfx != TOTAL_AUDIO_SAMPLES && bMissionAudioPhysicalPlayingStatus == PLAY_STATUS_PLAYING &&
if (g_nMissionAudioSfx != NO_SAMPLE && bMissionAudioPhysicalPlayingStatus == PLAY_STATUS_PLAYING &&
SampleManager.IsStreamPlaying(1)) {
SampleManager.PauseStream(TRUE, 1);
}
} else {
if (m_nPreviousUserPause && g_nMissionAudioSfx != TOTAL_AUDIO_SAMPLES &&
if (m_bWasPaused && g_nMissionAudioSfx != NO_SAMPLE &&
bMissionAudioPhysicalPlayingStatus == PLAY_STATUS_PLAYING) {
SampleManager.PauseStream(FALSE, 1);
}
@ -208,7 +186,7 @@ cAudioManager::ServicePoliceRadioChannel(uint8 wantedLevel)
#endif
return;
}
if (g_nMissionAudioSfx != TOTAL_AUDIO_SAMPLES && !bChannelOpen) {
if (g_nMissionAudioSfx != NO_SAMPLE && !bChannelOpen) {
if (g_nMissionAudioPlayingStatus != PLAY_STATUS_STOPPED) {
if (g_nMissionAudioPlayingStatus == PLAY_STATUS_PLAYING && bMissionAudioPhysicalPlayingStatus == PLAY_STATUS_STOPPED &&
SampleManager.IsStreamPlaying(1)) {
@ -220,7 +198,7 @@ cAudioManager::ServicePoliceRadioChannel(uint8 wantedLevel)
} else {
bMissionAudioPhysicalPlayingStatus = PLAY_STATUS_FINISHED;
g_nMissionAudioPlayingStatus = PLAY_STATUS_FINISHED;
g_nMissionAudioSfx = TOTAL_AUDIO_SAMPLES;
g_nMissionAudioSfx = NO_SAMPLE;
cWait = 30;
}
return;
@ -235,25 +213,23 @@ cAudioManager::ServicePoliceRadioChannel(uint8 wantedLevel)
}
}
if (bChannelOpen) DoPoliceRadioCrackle();
if ((g_nMissionAudioSfx == TOTAL_AUDIO_SAMPLES || g_nMissionAudioPlayingStatus != PLAY_STATUS_PLAYING) &&
if ((g_nMissionAudioSfx == NO_SAMPLE || g_nMissionAudioPlayingStatus != PLAY_STATUS_PLAYING) &&
!SampleManager.GetChannelUsedFlag(CHANNEL_POLICE_RADIO) && m_sPoliceRadioQueue.m_nSamplesInQueue != 0) {
sample = m_sPoliceRadioQueue.Remove();
if (wantedLevel == 0) {
if (gSpecialSuspectLastSeenReport) {
gSpecialSuspectLastSeenReport = FALSE;
} else if (((sample >= SFX_POLICE_RADIO_MESSAGE_NOISE_1) && (sample <= SFX_POLICE_RADIO_MESSAGE_NOISE_3)) || sample == TOTAL_AUDIO_SAMPLES) {
} else if (sample == SFX_POLICE_RADIO_MESSAGE_NOISE_1) {
bChannelOpen = FALSE;
processed = TRUE;
}
}
if (sample == TOTAL_AUDIO_SAMPLES) {
if (sample == NO_SAMPLE) {
if (!processed) cWait = 30;
} else {
SampleManager.InitialiseChannel(CHANNEL_POLICE_RADIO, sample, SFX_BANK_0);
switch (sample) {
case SFX_POLICE_RADIO_MESSAGE_NOISE_1:
case SFX_POLICE_RADIO_MESSAGE_NOISE_2:
case SFX_POLICE_RADIO_MESSAGE_NOISE_3:
freq = m_anRandomTable[4] % 2000 + 10025;
bChannelOpen = bChannelOpen == FALSE;
break;
@ -267,8 +243,8 @@ cAudioManager::ServicePoliceRadioChannel(uint8 wantedLevel)
#endif
SampleManager.SetChannelVolume(CHANNEL_POLICE_RADIO, 100);
SampleManager.SetChannelPan(CHANNEL_POLICE_RADIO, 63);
#ifndef GTA_PS2
SampleManager.SetChannelLoopCount(CHANNEL_POLICE_RADIO, 1);
#ifndef GTA_PS2
SampleManager.SetChannelLoopPoints(CHANNEL_POLICE_RADIO, 0, -1);
#endif
SampleManager.StartChannel(CHANNEL_POLICE_RADIO);
@ -312,49 +288,54 @@ cAudioManager::SetupCrimeReport()
for (int j = 0; j < NUMAUDIOZONES; j++) {
if (strcmp(zone->name, ZoneSfx[j].m_aName) == 0) {
sampleIndex = ZoneSfx[j].m_nSampleIndex;
m_sPoliceRadioQueue.Add(m_anRandomTable[4] % 3 + SFX_POLICE_RADIO_MESSAGE_NOISE_1);
m_sPoliceRadioQueue.Add(SFX_POLICE_RADIO_MESSAGE_NOISE_1);
m_sPoliceRadioQueue.Add(m_anRandomTable[0] % 3 + SFX_WEVE_GOT);
m_sPoliceRadioQueue.Add(m_anRandomTable[1] % 2 + SFX_A_10_1);
m_sPoliceRadioQueue.Add(SFX_A_10);
switch (m_aCrimes[i].type) {
case CRIME_PED_BURNED: m_aCrimes[i].type = CRIME_HIT_PED; break;
case CRIME_COP_BURNED: m_aCrimes[i].type = CRIME_HIT_COP; break;
case CRIME_PED_BURNED:
case CRIME_HIT_PED_NASTYWEAPON:
m_aCrimes[i].type = CRIME_HIT_PED;
break;
case CRIME_COP_BURNED:
case CRIME_HIT_COP_NASTYWEAPON:
m_aCrimes[i].type = CRIME_HIT_COP;
break;
case CRIME_VEHICLE_BURNED: m_aCrimes[i].type = CRIME_STEAL_CAR; break;
case CRIME_DESTROYED_CESSNA: m_aCrimes[i].type = CRIME_SHOOT_HELI; break;
case CRIME_EXPLOSION: m_aCrimes[i].type = CRIME_STEAL_CAR; break; // huh?
default: break;
}
#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);
if (sampleIndex == SFX_POLICE_RADIO_SHORESIDE_VALE &&
(strcmp(zone->name, SubZo2Label) == 0 || strcmp(zone->name, SubZo3Label) == 0)) {
rangeX = zone->maxx - zone->minx;
rangeY = zone->maxy - zone->miny;
halfX = 0.5f * rangeX + zone->minx;
halfY = 0.5f * rangeY + zone->miny;
quarterX = 0.25f * rangeX;
quarterY = 0.25f * rangeY;
if (m_aCrimes[i].position.y > halfY + quarterY) {
m_sPoliceRadioQueue.Add(SFX_NORTH);
m_sPoliceRadioQueue.Add(SFX_EAST);
} else {
rangeX = zone->maxx - zone->minx;
rangeY = zone->maxy - zone->miny;
halfX = 0.5f * rangeX + zone->minx;
halfY = 0.5f * rangeY + zone->miny;
quarterX = 0.25f * rangeX;
quarterY = 0.25f * rangeY;
if (m_aCrimes[i].position.y > halfY + quarterY) {
m_sPoliceRadioQueue.Add(SFX_NORTH);
processed = TRUE;
} else if (m_aCrimes[i].position.y < halfY - quarterY) {
m_sPoliceRadioQueue.Add(SFX_SOUTH);
processed = TRUE;
}
if (m_aCrimes[i].position.x > halfX + quarterX)
m_sPoliceRadioQueue.Add(SFX_EAST);
else if (m_aCrimes[i].position.x < halfX - quarterX)
m_sPoliceRadioQueue.Add(SFX_WEST);
else if (!processed)
m_sPoliceRadioQueue.Add(SFX_CENTRAL);
m_sPoliceRadioQueue.Add(sampleIndex);
m_sPoliceRadioQueue.Add(m_anRandomTable[2] % 3 + SFX_POLICE_RADIO_MESSAGE_NOISE_1);
m_sPoliceRadioQueue.Add(TOTAL_AUDIO_SAMPLES);
processed = TRUE;
} else if (m_aCrimes[i].position.y < halfY - quarterY) {
m_sPoliceRadioQueue.Add(SFX_SOUTH);
processed = TRUE;
}
if (m_aCrimes[i].position.x > halfX + quarterX)
m_sPoliceRadioQueue.Add(SFX_EAST);
else if (m_aCrimes[i].position.x < halfX - quarterX)
m_sPoliceRadioQueue.Add(SFX_WEST);
else if (!processed)
m_sPoliceRadioQueue.Add(SFX_CENTRAL);
m_sPoliceRadioQueue.Add(sampleIndex);
m_sPoliceRadioQueue.Add(SFX_POLICE_RADIO_MESSAGE_NOISE_1);
m_sPoliceRadioQueue.Add(NO_SAMPLE);
break;
}
}
@ -364,173 +345,117 @@ cAudioManager::SetupCrimeReport()
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;
int32 main_color;
int32 sample;
uint32 main_color;
uint32 sample;
int32 color_pre_modifier;
int32 color_post_modifier;
const int32 gCarColourTable[][3] = {
{TOTAL_AUDIO_SAMPLES, SFX_POLICE_RADIO_BLACK, TOTAL_AUDIO_SAMPLES},
{TOTAL_AUDIO_SAMPLES, SFX_POLICE_RADIO_WHITE, TOTAL_AUDIO_SAMPLES},
{TOTAL_AUDIO_SAMPLES, SFX_POLICE_RADIO_BLUE, TOTAL_AUDIO_SAMPLES},
{TOTAL_AUDIO_SAMPLES, SFX_POLICE_RADIO_RED, TOTAL_AUDIO_SAMPLES},
{SFX_POLICE_RADIO_DARK, SFX_POLICE_RADIO_BLUE, TOTAL_AUDIO_SAMPLES},
{TOTAL_AUDIO_SAMPLES, SFX_POLICE_RADIO_PURPLE, TOTAL_AUDIO_SAMPLES},
{TOTAL_AUDIO_SAMPLES, SFX_POLICE_RADIO_YELLOW, TOTAL_AUDIO_SAMPLES},
{SFX_POLICE_RADIO_BRIGHT, SFX_POLICE_RADIO_BLUE, TOTAL_AUDIO_SAMPLES},
{SFX_POLICE_RADIO_LIGHT, SFX_POLICE_RADIO_BLUE, SFX_POLICE_RADIO_GREY},
#ifdef FIX_BUGS
{SFX_POLICE_RADIO_LIGHT, SFX_POLICE_RADIO_RED, TOTAL_AUDIO_SAMPLES},
{SFX_POLICE_RADIO_DARK, SFX_POLICE_RADIO_RED, TOTAL_AUDIO_SAMPLES},
{SFX_POLICE_RADIO_DARK, SFX_POLICE_RADIO_RED, TOTAL_AUDIO_SAMPLES},
#else
{SFX_POLICE_RADIO_LIGHT, TOTAL_AUDIO_SAMPLES, TOTAL_AUDIO_SAMPLES},
{SFX_POLICE_RADIO_DARK, TOTAL_AUDIO_SAMPLES, TOTAL_AUDIO_SAMPLES},
{SFX_POLICE_RADIO_DARK, TOTAL_AUDIO_SAMPLES, TOTAL_AUDIO_SAMPLES},
#endif
{SFX_POLICE_RADIO_DARK, SFX_POLICE_RADIO_RED, TOTAL_AUDIO_SAMPLES},
{TOTAL_AUDIO_SAMPLES, SFX_POLICE_RADIO_RED, TOTAL_AUDIO_SAMPLES},
{TOTAL_AUDIO_SAMPLES, SFX_POLICE_RADIO_RED, TOTAL_AUDIO_SAMPLES},
{TOTAL_AUDIO_SAMPLES, SFX_POLICE_RADIO_RED, TOTAL_AUDIO_SAMPLES},
{TOTAL_AUDIO_SAMPLES, SFX_POLICE_RADIO_RED, TOTAL_AUDIO_SAMPLES},
{TOTAL_AUDIO_SAMPLES, SFX_POLICE_RADIO_RED, TOTAL_AUDIO_SAMPLES},
{TOTAL_AUDIO_SAMPLES, SFX_POLICE_RADIO_RED, TOTAL_AUDIO_SAMPLES},
#ifdef FIX_BUGS
{SFX_POLICE_RADIO_LIGHT, SFX_POLICE_RADIO_RED, TOTAL_AUDIO_SAMPLES},
{SFX_POLICE_RADIO_DARK, SFX_POLICE_RADIO_ORANGE, TOTAL_AUDIO_SAMPLES},
{SFX_POLICE_RADIO_DARK, SFX_POLICE_RADIO_ORANGE, TOTAL_AUDIO_SAMPLES},
{SFX_POLICE_RADIO_DARK, SFX_POLICE_RADIO_ORANGE, TOTAL_AUDIO_SAMPLES},
#else
{SFX_POLICE_RADIO_LIGHT, TOTAL_AUDIO_SAMPLES, TOTAL_AUDIO_SAMPLES},
{SFX_POLICE_RADIO_DARK, TOTAL_AUDIO_SAMPLES, TOTAL_AUDIO_SAMPLES},
{SFX_POLICE_RADIO_DARK, TOTAL_AUDIO_SAMPLES, TOTAL_AUDIO_SAMPLES},
{SFX_POLICE_RADIO_DARK, TOTAL_AUDIO_SAMPLES, TOTAL_AUDIO_SAMPLES},
#endif
{TOTAL_AUDIO_SAMPLES, SFX_POLICE_RADIO_ORANGE, TOTAL_AUDIO_SAMPLES},
{TOTAL_AUDIO_SAMPLES, SFX_POLICE_RADIO_ORANGE, TOTAL_AUDIO_SAMPLES},
{TOTAL_AUDIO_SAMPLES, SFX_POLICE_RADIO_ORANGE, TOTAL_AUDIO_SAMPLES},
{TOTAL_AUDIO_SAMPLES, SFX_POLICE_RADIO_ORANGE, TOTAL_AUDIO_SAMPLES},
{TOTAL_AUDIO_SAMPLES, SFX_POLICE_RADIO_ORANGE, TOTAL_AUDIO_SAMPLES},
{TOTAL_AUDIO_SAMPLES, SFX_POLICE_RADIO_ORANGE, TOTAL_AUDIO_SAMPLES},
#ifdef FIX_BUGS
{SFX_POLICE_RADIO_LIGHT, SFX_POLICE_RADIO_ORANGE, TOTAL_AUDIO_SAMPLES},
{SFX_POLICE_RADIO_DARK, SFX_POLICE_RADIO_YELLOW, TOTAL_AUDIO_SAMPLES},
{SFX_POLICE_RADIO_DARK, SFX_POLICE_RADIO_YELLOW, TOTAL_AUDIO_SAMPLES},
{SFX_POLICE_RADIO_DARK, SFX_POLICE_RADIO_YELLOW, TOTAL_AUDIO_SAMPLES},
#else
{SFX_POLICE_RADIO_LIGHT, TOTAL_AUDIO_SAMPLES, TOTAL_AUDIO_SAMPLES},
{SFX_POLICE_RADIO_DARK, TOTAL_AUDIO_SAMPLES, TOTAL_AUDIO_SAMPLES},
{SFX_POLICE_RADIO_DARK, TOTAL_AUDIO_SAMPLES, TOTAL_AUDIO_SAMPLES},
{SFX_POLICE_RADIO_DARK, TOTAL_AUDIO_SAMPLES, TOTAL_AUDIO_SAMPLES},
#endif
{TOTAL_AUDIO_SAMPLES, SFX_POLICE_RADIO_YELLOW, TOTAL_AUDIO_SAMPLES},
{TOTAL_AUDIO_SAMPLES, SFX_POLICE_RADIO_YELLOW, TOTAL_AUDIO_SAMPLES},
{TOTAL_AUDIO_SAMPLES, SFX_POLICE_RADIO_YELLOW, TOTAL_AUDIO_SAMPLES},
{TOTAL_AUDIO_SAMPLES, SFX_POLICE_RADIO_YELLOW, TOTAL_AUDIO_SAMPLES},
{TOTAL_AUDIO_SAMPLES, SFX_POLICE_RADIO_YELLOW, TOTAL_AUDIO_SAMPLES},
{TOTAL_AUDIO_SAMPLES, SFX_POLICE_RADIO_YELLOW, TOTAL_AUDIO_SAMPLES},
#ifdef FIX_BUGS
{SFX_POLICE_RADIO_LIGHT, SFX_POLICE_RADIO_YELLOW, TOTAL_AUDIO_SAMPLES},
{SFX_POLICE_RADIO_DARK, SFX_POLICE_RADIO_GREEN, TOTAL_AUDIO_SAMPLES},
{SFX_POLICE_RADIO_DARK, SFX_POLICE_RADIO_GREEN, TOTAL_AUDIO_SAMPLES},
{SFX_POLICE_RADIO_DARK, SFX_POLICE_RADIO_GREEN, TOTAL_AUDIO_SAMPLES},
#else
{SFX_POLICE_RADIO_LIGHT, TOTAL_AUDIO_SAMPLES, TOTAL_AUDIO_SAMPLES},
{SFX_POLICE_RADIO_DARK, TOTAL_AUDIO_SAMPLES, TOTAL_AUDIO_SAMPLES},
{SFX_POLICE_RADIO_DARK, TOTAL_AUDIO_SAMPLES, TOTAL_AUDIO_SAMPLES},
{SFX_POLICE_RADIO_DARK, TOTAL_AUDIO_SAMPLES, TOTAL_AUDIO_SAMPLES},
#endif
{TOTAL_AUDIO_SAMPLES, SFX_POLICE_RADIO_GREEN, TOTAL_AUDIO_SAMPLES},
{TOTAL_AUDIO_SAMPLES, SFX_POLICE_RADIO_GREEN, TOTAL_AUDIO_SAMPLES},
{TOTAL_AUDIO_SAMPLES, SFX_POLICE_RADIO_GREEN, TOTAL_AUDIO_SAMPLES},
{TOTAL_AUDIO_SAMPLES, SFX_POLICE_RADIO_GREEN, TOTAL_AUDIO_SAMPLES},
{TOTAL_AUDIO_SAMPLES, SFX_POLICE_RADIO_GREEN, TOTAL_AUDIO_SAMPLES},
{TOTAL_AUDIO_SAMPLES, SFX_POLICE_RADIO_GREEN, TOTAL_AUDIO_SAMPLES},
#ifdef FIX_BUGS
{SFX_POLICE_RADIO_LIGHT, SFX_POLICE_RADIO_GREEN, TOTAL_AUDIO_SAMPLES},
{SFX_POLICE_RADIO_DARK, SFX_POLICE_RADIO_BLUE, TOTAL_AUDIO_SAMPLES},
{SFX_POLICE_RADIO_DARK, SFX_POLICE_RADIO_BLUE, TOTAL_AUDIO_SAMPLES},
{SFX_POLICE_RADIO_DARK, SFX_POLICE_RADIO_BLUE, TOTAL_AUDIO_SAMPLES},
#else
{SFX_POLICE_RADIO_LIGHT, TOTAL_AUDIO_SAMPLES, TOTAL_AUDIO_SAMPLES},
{SFX_POLICE_RADIO_DARK, TOTAL_AUDIO_SAMPLES, TOTAL_AUDIO_SAMPLES},
{SFX_POLICE_RADIO_DARK, TOTAL_AUDIO_SAMPLES, TOTAL_AUDIO_SAMPLES},
{SFX_POLICE_RADIO_DARK, TOTAL_AUDIO_SAMPLES, TOTAL_AUDIO_SAMPLES},
#endif
{TOTAL_AUDIO_SAMPLES, SFX_POLICE_RADIO_BLUE, TOTAL_AUDIO_SAMPLES},
{TOTAL_AUDIO_SAMPLES, SFX_POLICE_RADIO_BLUE, TOTAL_AUDIO_SAMPLES},
{TOTAL_AUDIO_SAMPLES, SFX_POLICE_RADIO_BLUE, TOTAL_AUDIO_SAMPLES},
{TOTAL_AUDIO_SAMPLES, SFX_POLICE_RADIO_BLUE, TOTAL_AUDIO_SAMPLES},
{TOTAL_AUDIO_SAMPLES, SFX_POLICE_RADIO_BLUE, TOTAL_AUDIO_SAMPLES},
{TOTAL_AUDIO_SAMPLES, SFX_POLICE_RADIO_BLUE, TOTAL_AUDIO_SAMPLES},
#ifdef FIX_BUGS
{SFX_POLICE_RADIO_LIGHT, SFX_POLICE_RADIO_BLUE, TOTAL_AUDIO_SAMPLES},
{SFX_POLICE_RADIO_DARK, SFX_POLICE_RADIO_PURPLE, TOTAL_AUDIO_SAMPLES},
{SFX_POLICE_RADIO_DARK, SFX_POLICE_RADIO_PURPLE, SFX_POLICE_RADIO_BLUE},
{SFX_POLICE_RADIO_DARK, SFX_POLICE_RADIO_PURPLE, TOTAL_AUDIO_SAMPLES},
#else
{SFX_POLICE_RADIO_LIGHT, TOTAL_AUDIO_SAMPLES, TOTAL_AUDIO_SAMPLES},
{SFX_POLICE_RADIO_DARK, TOTAL_AUDIO_SAMPLES, TOTAL_AUDIO_SAMPLES},
{SFX_POLICE_RADIO_DARK, TOTAL_AUDIO_SAMPLES, TOTAL_AUDIO_SAMPLES},
{SFX_POLICE_RADIO_DARK, TOTAL_AUDIO_SAMPLES, TOTAL_AUDIO_SAMPLES},
#endif
{TOTAL_AUDIO_SAMPLES, SFX_POLICE_RADIO_PURPLE, TOTAL_AUDIO_SAMPLES},
{TOTAL_AUDIO_SAMPLES, SFX_POLICE_RADIO_PURPLE, TOTAL_AUDIO_SAMPLES},
#ifdef FIX_BUGS
{TOTAL_AUDIO_SAMPLES, SFX_POLICE_RADIO_PURPLE, SFX_POLICE_RADIO_GREY},
#else
{TOTAL_AUDIO_SAMPLES, SFX_POLICE_RADIO_PURPLE, TOTAL_AUDIO_SAMPLES},
#endif
{TOTAL_AUDIO_SAMPLES, SFX_POLICE_RADIO_PURPLE, TOTAL_AUDIO_SAMPLES},
{TOTAL_AUDIO_SAMPLES, SFX_POLICE_RADIO_PURPLE, TOTAL_AUDIO_SAMPLES},
{TOTAL_AUDIO_SAMPLES, SFX_POLICE_RADIO_PURPLE, TOTAL_AUDIO_SAMPLES},
#ifdef FIX_BUGS
{SFX_POLICE_RADIO_LIGHT, SFX_POLICE_RADIO_PURPLE, TOTAL_AUDIO_SAMPLES},
{SFX_POLICE_RADIO_DARK, SFX_POLICE_RADIO_SILVER, TOTAL_AUDIO_SAMPLES},
{SFX_POLICE_RADIO_DARK, SFX_POLICE_RADIO_SILVER, TOTAL_AUDIO_SAMPLES},
{SFX_POLICE_RADIO_DARK, SFX_POLICE_RADIO_SILVER, TOTAL_AUDIO_SAMPLES},
#else
{SFX_POLICE_RADIO_LIGHT, TOTAL_AUDIO_SAMPLES, TOTAL_AUDIO_SAMPLES},
{SFX_POLICE_RADIO_DARK, TOTAL_AUDIO_SAMPLES, TOTAL_AUDIO_SAMPLES},
{SFX_POLICE_RADIO_DARK, TOTAL_AUDIO_SAMPLES, TOTAL_AUDIO_SAMPLES},
{SFX_POLICE_RADIO_DARK, TOTAL_AUDIO_SAMPLES, TOTAL_AUDIO_SAMPLES},
#endif
{TOTAL_AUDIO_SAMPLES, SFX_POLICE_RADIO_SILVER, TOTAL_AUDIO_SAMPLES},
{TOTAL_AUDIO_SAMPLES, SFX_POLICE_RADIO_SILVER, TOTAL_AUDIO_SAMPLES},
{TOTAL_AUDIO_SAMPLES, SFX_POLICE_RADIO_SILVER, TOTAL_AUDIO_SAMPLES},
{TOTAL_AUDIO_SAMPLES, SFX_POLICE_RADIO_SILVER, TOTAL_AUDIO_SAMPLES},
{TOTAL_AUDIO_SAMPLES, SFX_POLICE_RADIO_SILVER, TOTAL_AUDIO_SAMPLES},
#ifdef FIX_BUGS
{SFX_POLICE_RADIO_LIGHT, SFX_POLICE_RADIO_SILVER, TOTAL_AUDIO_SAMPLES},
#else
{TOTAL_AUDIO_SAMPLES, SFX_POLICE_RADIO_SILVER, TOTAL_AUDIO_SAMPLES},
#endif
{SFX_POLICE_RADIO_LIGHT, TOTAL_AUDIO_SAMPLES, TOTAL_AUDIO_SAMPLES},
{SFX_POLICE_RADIO_LIGHT, TOTAL_AUDIO_SAMPLES, TOTAL_AUDIO_SAMPLES},
{SFX_POLICE_RADIO_LIGHT, TOTAL_AUDIO_SAMPLES, TOTAL_AUDIO_SAMPLES},
{SFX_POLICE_RADIO_LIGHT, TOTAL_AUDIO_SAMPLES, TOTAL_AUDIO_SAMPLES},
{SFX_POLICE_RADIO_LIGHT, TOTAL_AUDIO_SAMPLES, TOTAL_AUDIO_SAMPLES},
{SFX_POLICE_RADIO_LIGHT, TOTAL_AUDIO_SAMPLES, TOTAL_AUDIO_SAMPLES},
{SFX_POLICE_RADIO_LIGHT, TOTAL_AUDIO_SAMPLES, TOTAL_AUDIO_SAMPLES},
{SFX_POLICE_RADIO_LIGHT, TOTAL_AUDIO_SAMPLES, TOTAL_AUDIO_SAMPLES},
{SFX_POLICE_RADIO_LIGHT, TOTAL_AUDIO_SAMPLES, TOTAL_AUDIO_SAMPLES},
{SFX_POLICE_RADIO_LIGHT, TOTAL_AUDIO_SAMPLES, TOTAL_AUDIO_SAMPLES},
{SFX_POLICE_RADIO_LIGHT, TOTAL_AUDIO_SAMPLES, TOTAL_AUDIO_SAMPLES},
{SFX_POLICE_RADIO_DARK, TOTAL_AUDIO_SAMPLES, TOTAL_AUDIO_SAMPLES},
{SFX_POLICE_RADIO_DARK, TOTAL_AUDIO_SAMPLES, TOTAL_AUDIO_SAMPLES},
{SFX_POLICE_RADIO_DARK, TOTAL_AUDIO_SAMPLES, TOTAL_AUDIO_SAMPLES},
{SFX_POLICE_RADIO_DARK, TOTAL_AUDIO_SAMPLES, TOTAL_AUDIO_SAMPLES},
{SFX_POLICE_RADIO_DARK, TOTAL_AUDIO_SAMPLES, TOTAL_AUDIO_SAMPLES}
};
uint32 color_pre_modifier;
uint32 color_post_modifier;
if (MusicManager.m_nMusicMode != MUSICMODE_CUTSCENE) {
veh = FindPlayerVehicle();
veh = FindVehicleOfPlayer();
if (veh != nil) {
if (POLICE_RADIO_QUEUE_MAX_SAMPLES - m_sPoliceRadioQueue.m_nSamplesInQueue > 9) {
color1 = veh->m_currentColour1;
@ -541,136 +466,189 @@ cAudioManager::SetupSuspectLastSeenReport()
color_pre_modifier = gCarColourTable[color1][0];
color_post_modifier = gCarColourTable[color1][2];
switch (veh->GetModelIndex()) {
#ifdef FIX_BUGS
case MI_COLUMB:
main_color = SFX_POLICE_RADIO_BLUE;
color_pre_modifier = color_post_modifier = TOTAL_AUDIO_SAMPLES;
#endif
case MI_LANDSTAL:
case MI_BLISTA: sample = SFX_POLICE_RADIO_CRUISER; break;
#ifdef FIX_BUGS
case MI_YARDIE:
color_pre_modifier = TOTAL_AUDIO_SAMPLES;
main_color = SFX_POLICE_RADIO_RED;
color_post_modifier = SFX_POLICE_RADIO_YELLOW;
sample = SFX_POLICE_RADIO_CONVERTIBLE; break;
case MI_DIABLOS:
main_color = SFX_POLICE_RADIO_BLACK;
#endif
case MI_PATRIOT:
case MI_RANCHER:
case MI_FBIRANCH:
case MI_SANDKING:
sample = SFX_POLICE_RADIO_OFFROAD;
break;
case MI_IDAHO:
case MI_STALLION: sample = SFX_POLICE_RADIO_CONVERTIBLE; break;
#ifdef FIX_BUGS
case MI_YAKUZA:
color_pre_modifier = TOTAL_AUDIO_SAMPLES;
main_color = SFX_POLICE_RADIO_SILVER;
color_post_modifier = SFX_POLICE_RADIO_RED;
#endif
case MI_MANANA:
case MI_ESPERANT:
case MI_CUBAN:
case MI_STALLION:
case MI_SABRE:
case MI_SABRETUR:
case MI_VIRGO:
case MI_BLISTAC:
sample = SFX_POLICE_RADIO_TUDOOR;
break;
case MI_STINGER:
case MI_INFERNUS:
case MI_CHEETAH:
case MI_BANSHEE: sample = SFX_POLICE_RADIO_SPORTS_CAR; break;
#ifdef FIX_BUGS
case MI_MAFIA:
color_pre_modifier = color_post_modifier = TOTAL_AUDIO_SAMPLES;
main_color = SFX_POLICE_RADIO_GREY;
case MI_KURUMA:
#endif
case MI_PEREN:
case MI_SENTINEL:
case MI_FBICAR: sample = SFX_POLICE_RADIO_SALOON; break;
case MI_PATRIOT:
case MI_BOBCAT: sample = SFX_POLICE_RADIO_PICKUP; break;
case MI_FIRETRUCK: sample = SFX_POLICE_RADIO_FIRE_TRUCK; break;
#ifdef FIX_BUGS
case MI_BANSHEE:
case MI_PHEONIX:
case MI_COMET:
case MI_DELUXO:
case MI_HOTRING:
sample = SFX_POLICE_RADIO_SPORTS_CAR;
break;
case MI_LINERUN:
case MI_FLATBED:
#endif
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:
case MI_BARRACKS: sample = SFX_POLICE_RADIO_TRUCK; break;
case MI_STRETCH: sample = SFX_POLICE_RADIO_LIMO; break;
#ifdef FIX_BUGS
case MI_CORPSE:
#endif
case MI_MANANA:
case MI_ESPERANT: sample = SFX_POLICE_RADIO_2_DOOR; break;
#ifdef FIX_BUGS
case MI_HOODS:
color_pre_modifier = TOTAL_AUDIO_SAMPLES;
main_color = SFX_POLICE_RADIO_BLUE;
color_post_modifier = SFX_POLICE_RADIO_GREEN;
case MI_BELLYUP:
case MI_YANKEE:
case MI_TOYZ:
case MI_MRWONGS:
case MI_PANLANT:
#endif
sample = SFX_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_MULE:
case MI_MOONBEAM:
case MI_ENFORCER:
case MI_SECURICA:
case MI_RUMPO: sample = SFX_POLICE_RADIO_VAN; break;
case MI_AMBULAN: sample = SFX_POLICE_RADIO_AMBULANCE; break;
case MI_RUMPO:
case MI_GANGBUR:
case MI_YANKEE:
case MI_TOPFUN:
case MI_BURRITO:
case MI_SPAND:
sample = SFX_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_BORGNINE: sample = SFX_POLICE_RADIO_TAXI; break;
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_POLICE: sample = SFX_POLICE_RADIO_POLICE_CAR; break;
#ifdef FIX_BUGS
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:
case MI_REEFER:
case MI_GHOST:
#endif
case MI_PREDATOR: sample = SFX_POLICE_RADIO_BOAT; break;
sample = SFX_POLICE_RADIO_SPEEDBOAT;
break;
case MI_BUS:
case MI_COACH: sample = SFX_POLICE_RADIO_BUS; break;
sample = SFX_POLICE_RADIO_BUS;
break;
case MI_RHINO:
sample = SFX_POLICE_RADIO_TANK;
main_color = TOTAL_AUDIO_SAMPLES;
color_post_modifier = TOTAL_AUDIO_SAMPLES;
break;
case MI_TRAIN:
sample = SFX_POLICE_RADIO_SUBWAY_CAR;
main_color = TOTAL_AUDIO_SAMPLES;
color_post_modifier = TOTAL_AUDIO_SAMPLES;
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());
//debug("\n *** UNKNOWN CAR MODEL INDEX %d *** ", veh->GetModelIndex());
return;
}
m_sPoliceRadioQueue.Add(m_anRandomTable[4] % 3 + SFX_POLICE_RADIO_MESSAGE_NOISE_1);
m_sPoliceRadioQueue.Add(SFX_POLICE_RADIO_MESSAGE_NOISE_1);
m_sPoliceRadioQueue.Add(SFX_POLICE_RADIO_SUSPECT);
if (m_anRandomTable[3] % 2)
m_sPoliceRadioQueue.Add(SFX_POLICE_RADIO_LAST_SEEN);
#ifdef FIX_BUGS
if (main_color == SFX_POLICE_RADIO_ORANGE && color_pre_modifier == TOTAL_AUDIO_SAMPLES)
#else
if (main_color == SFX_POLICE_RADIO_ORANGE)
#endif
m_sPoliceRadioQueue.Add(SFX_POLICE_RADIO_IN_AN);
else
m_sPoliceRadioQueue.Add(SFX_POLICE_RADIO_IN_A);
if (color_pre_modifier != TOTAL_AUDIO_SAMPLES)
m_sPoliceRadioQueue.Add(SFX_POLICE_RADIO_IN_A);
if (color_pre_modifier != NO_SAMPLE)
m_sPoliceRadioQueue.Add(color_pre_modifier);
if (main_color != TOTAL_AUDIO_SAMPLES)
if (main_color != NO_SAMPLE)
m_sPoliceRadioQueue.Add(main_color);
if (color_post_modifier != TOTAL_AUDIO_SAMPLES)
if (color_post_modifier != NO_SAMPLE)
m_sPoliceRadioQueue.Add(color_post_modifier);
m_sPoliceRadioQueue.Add(sample);
m_sPoliceRadioQueue.Add(m_anRandomTable[0] % 3 + SFX_POLICE_RADIO_MESSAGE_NOISE_1);
m_sPoliceRadioQueue.Add(TOTAL_AUDIO_SAMPLES);
m_sPoliceRadioQueue.Add(SFX_POLICE_RADIO_MESSAGE_NOISE_1);
m_sPoliceRadioQueue.Add(NO_SAMPLE);
}
}
} else if (POLICE_RADIO_QUEUE_MAX_SAMPLES - m_sPoliceRadioQueue.m_nSamplesInQueue > 4) {
m_sPoliceRadioQueue.Add(SFX_POLICE_RADIO_MESSAGE_NOISE_1);
m_sPoliceRadioQueue.Add(SFX_POLICE_RADIO_SUSPECT);
m_sPoliceRadioQueue.Add(SFX_POLICE_RADIO_ON_FOOT);
m_sPoliceRadioQueue.Add(m_anRandomTable[0] % 3 + SFX_POLICE_RADIO_MESSAGE_NOISE_1);
m_sPoliceRadioQueue.Add(TOTAL_AUDIO_SAMPLES);
m_sPoliceRadioQueue.Add(SFX_POLICE_RADIO_MESSAGE_NOISE_1);
m_sPoliceRadioQueue.Add(NO_SAMPLE);
}
}
}
@ -688,9 +666,8 @@ cAudioManager::ReportCrime(eCrimeType type, const CVector &pos)
m_aCrimes[i].timer = 0;
return;
}
} else {
} else
lastCrime = i;
}
}
if (lastCrime < ARRAY_SIZE(m_aCrimes)) {
@ -713,8 +690,8 @@ cAudioManager::PlaySuspectLastSeen(float x, float y, float z)
float halfY;
float quarterX;
float quarterY;
int32 sample;
bool8 processed = false;
uint32 sample;
bool8 processed = FALSE;
CVector vec = CVector(x, y, z);
if (!m_bIsInitialised) return;
@ -726,41 +703,34 @@ cAudioManager::PlaySuspectLastSeen(float x, float y, float z)
for (int i = 0; i < NUMAUDIOZONES; i++) {
if (strcmp(zone->name, ZoneSfx[i].m_aName) == 0) {
sample = ZoneSfx[i].m_nSampleIndex;
m_sPoliceRadioQueue.Add(m_anRandomTable[4] % 3 + SFX_POLICE_RADIO_MESSAGE_NOISE_1);
m_sPoliceRadioQueue.Add(SFX_POLICE_RADIO_MESSAGE_NOISE_1);
m_sPoliceRadioQueue.Add(SFX_POLICE_RADIO_SUSPECT);
m_sPoliceRadioQueue.Add(SFX_POLICE_RADIO_LAST_SEEN);
m_sPoliceRadioQueue.Add(SFX_IN);
if (sample == SFX_POLICE_RADIO_SHORESIDE_VALE &&
(strcmp(zone->name, SubZo2Label) == 0 ||
strcmp(zone->name, SubZo3Label) == 0)) {
rangeX = zone->maxx - zone->minx;
rangeY = zone->maxy - zone->miny;
halfX = 0.5f * rangeX + zone->minx;
halfY = 0.5f * rangeY + zone->miny;
quarterX = 0.25f * rangeX;
quarterY = 0.25f * rangeY;
if (vec.y > halfY + quarterY) {
m_sPoliceRadioQueue.Add(SFX_NORTH);
m_sPoliceRadioQueue.Add(SFX_EAST);
} else {
rangeX = zone->maxx - zone->minx;
rangeY = zone->maxy - zone->miny;
halfX = 0.5f * rangeX + zone->minx;
halfY = 0.5f * rangeY + zone->miny;
quarterX = 0.25f * rangeX;
quarterY = 0.25f * rangeY;
if (vec.y > halfY + quarterY) {
m_sPoliceRadioQueue.Add(SFX_NORTH);
processed = TRUE;
} else if (vec.y < halfY - quarterY) {
m_sPoliceRadioQueue.Add(SFX_SOUTH);
processed = TRUE;
}
if (vec.x > halfX + quarterX)
m_sPoliceRadioQueue.Add(SFX_EAST);
else if (vec.x < halfX - quarterX)
m_sPoliceRadioQueue.Add(SFX_WEST);
else if (!processed)
m_sPoliceRadioQueue.Add(SFX_CENTRAL);
processed = TRUE;
} else if (vec.y < halfY - quarterY) {
m_sPoliceRadioQueue.Add(SFX_SOUTH);
processed = TRUE;
}
if (vec.x > halfX + quarterX)
m_sPoliceRadioQueue.Add(SFX_EAST);
else if (vec.x < halfX - quarterX)
m_sPoliceRadioQueue.Add(SFX_WEST);
else if (!processed)
m_sPoliceRadioQueue.Add(SFX_CENTRAL);
m_sPoliceRadioQueue.Add(sample);
m_sPoliceRadioQueue.Add(m_anRandomTable[2] % 3 + SFX_POLICE_RADIO_MESSAGE_NOISE_1);
m_sPoliceRadioQueue.Add(TOTAL_AUDIO_SAMPLES);
m_sPoliceRadioQueue.Add(SFX_POLICE_RADIO_MESSAGE_NOISE_1);
m_sPoliceRadioQueue.Add(NO_SAMPLE);
gSpecialSuspectLastSeenReport = TRUE;
break;
}
@ -774,7 +744,7 @@ cAudioManager::AgeCrimes()
{
for (uint8 i = 0; i < ARRAY_SIZE(m_aCrimes); i++) {
if (m_aCrimes[i].type != CRIME_NONE) {
if (++m_aCrimes[i].timer > 1500) m_aCrimes[i].type = CRIME_NONE;
if (++m_aCrimes[i].timer > 1200) m_aCrimes[i].type = CRIME_NONE;
}
}
}

View File

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

File diff suppressed because it is too large Load Diff

View File

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

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

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

View File

@ -66,14 +66,14 @@ int usingEAX3=0;
ALCdevice *ALDevice = NULL;
ALCcontext *ALContext = NULL;
unsigned int _maxSamples;
float _fPrevEaxRatioDestination;
float _fPrevEaxRatioDestination;
bool _effectsSupported = false;
bool _usingEFX;
float _fEffectsLevel;
ALuint ALEffect = AL_EFFECT_NULL;
ALuint ALEffectSlot = AL_EFFECTSLOT_NULL;
struct
{
{
const char *id;
char name[256];
int sources;
@ -92,7 +92,7 @@ OggOpusFile *fpSampleDataHandle;
#else
FILE *fpSampleDataHandle;
#endif
bool8 bSampleBankLoaded [MAX_SFX_BANKS];
int8 gBankLoaded [MAX_SFX_BANKS];
int32 nSampleBankDiscStartOffset [MAX_SFX_BANKS];
int32 nSampleBankSize [MAX_SFX_BANKS];
uintptr nSampleBankMemoryStartAddress[MAX_SFX_BANKS];
@ -102,6 +102,11 @@ int32 nPedSlotSfx [MAX_PEDSFX];
int32 nPedSlotSfxAddr[MAX_PEDSFX];
uint8 nCurrentPedSlot;
#ifdef FIX_BUGS
uint32 gPlayerTalkSfx = UINT32_MAX;
void *gPlayerTalkData = 0;
#endif
CChannel aChannel[NUM_CHANNELS];
uint8 nChannelVolume[NUM_CHANNELS];
@ -126,6 +131,7 @@ char _mp3DirectoryPath[MAX_PATH];
CStream *aStream[MAX_STREAMS];
uint8 nStreamPan [MAX_STREAMS];
uint8 nStreamVolume[MAX_STREAMS];
bool8 nStreamLoopedFlag[MAX_STREAMS];
uint32 _CurMP3Index;
int32 _CurMP3Pos;
bool8 _bIsMp3Active;
@ -157,7 +163,7 @@ static void
add_providers()
{
SampleManager.SetNum3DProvidersAvailable(0);
static ALDeviceList DeviceList;
ALDeviceList *pDeviceList = &DeviceList;
@ -170,7 +176,7 @@ add_providers()
int i = pDeviceList->GetDefaultDevice();
{
if ( n < MAXPROVIDERS )
{
{
providers[n].id = pDeviceList->GetDeviceName(i);
strcpy(providers[n].name, "OPENAL SOFT");
providers[n].sources = pDeviceList->GetMaxNumSources(i);
@ -183,10 +189,10 @@ add_providers()
|| pDeviceList->IsExtensionSupported(i, ADEXT_EAX3)
|| pDeviceList->IsExtensionSupported(i, ADEXT_EAX4)
|| pDeviceList->IsExtensionSupported(i, ADEXT_EAX5) )
{
{
providers[n - 1].bSupportsFx = true;
if ( n < MAXPROVIDERS )
{
{
providers[n].id = pDeviceList->GetDeviceName(i);
strcpy(providers[n].name, "OPENAL SOFT EAX");
providers[n].sources = pDeviceList->GetMaxNumSources(i);
@ -196,7 +202,7 @@ add_providers()
}
if ( n < MAXPROVIDERS )
{
{
providers[n].id = pDeviceList->GetDeviceName(i);
strcpy(providers[n].name, "OPENAL SOFT EAX3");
providers[n].sources = pDeviceList->GetMaxNumSources(i);
@ -210,7 +216,7 @@ add_providers()
for(int j=n;j<MAXPROVIDERS;j++)
SampleManager.Set3DProviderName(j, NULL);
// devices are gone now
//defaultProvider = pDeviceList->GetDefaultDevice();
//if ( defaultProvider > MAXPROVIDERS )
@ -233,7 +239,7 @@ release_existing()
alAuxiliaryEffectSloti(ALEffectSlot, AL_EFFECTSLOT_EFFECT, AL_EFFECT_NULL);
}
}
DEV("release_existing()\n");
}
@ -284,7 +290,7 @@ set_new_provider(int index)
}
//SampleManager.SetSpeakerConfig(speaker_type);
if ( IsFXSupported() )
{
for ( int32 i = 0; i < MAXCHANNELS; i++ )
@ -300,7 +306,7 @@ set_new_provider(int index)
static bool8
IsThisTrackAt16KHz(uint32 track)
{
return track == STREAMED_SOUND_RADIO_CHAT;
return track == STREAMED_SOUND_RADIO_KCHAT || track == STREAMED_SOUND_RADIO_VCPR || track == STREAMED_SOUND_RADIO_POLICE;
}
cSampleManager::cSampleManager(void)
@ -365,6 +371,31 @@ int8 cSampleManager::SetCurrent3DProvider(uint8 nProvider)
return curprovider;
}
int8
cSampleManager::AutoDetect3DProviders()
{
if (!AudioManager.IsAudioInitialised())
return -1;
if (defaultProvider >= 0 && defaultProvider < m_nNumberOfProviders) {
if (set_new_provider(defaultProvider))
return defaultProvider;
}
for (uint32 i = 0; i < GetNum3DProvidersAvailable(); i++)
{
char* providername = Get3DProviderName(i);
if (!strcasecmp(providername, "OPENAL SOFT")) {
SetCurrent3DProvider(i);
if (GetCurrent3DProviderIndex() == i)
return i;
}
}
return -1;
}
static bool8
_ResolveLink(char const *path, char *out)
{
@ -781,7 +812,7 @@ cSampleManager::Initialise(void)
for ( int32 i = 0; i < MAX_SFX_BANKS; i++ )
{
bSampleBankLoaded[i] = FALSE;
gBankLoaded[i] = LOADING_STATUS_NOT_LOADED;
nSampleBankDiscStartOffset[i] = 0;
nSampleBankSize[i] = 0;
nSampleBankMemoryStartAddress[i] = 0;
@ -840,7 +871,7 @@ cSampleManager::Initialise(void)
alDistanceModel(AL_INVERSE_DISTANCE_CLAMPED);
if ( alcIsExtensionPresent(ALDevice, (ALCchar*)ALC_EXT_EFX_NAME) )
{
{
_effectsSupported = providers[index].bSupportsFx;
alGenAuxiliaryEffectSlots(1, &ALEffectSlot);
alGenEffects(1, &ALEffect);
@ -849,14 +880,14 @@ cSampleManager::Initialise(void)
alGenSources(MAX_STREAMS*2, ALStreamSources[0]);
for ( int32 i = 0; i < MAX_STREAMS; i++ )
{
alGenBuffers(NUM_STREAMBUFFERS, ALStreamBuffers[i]);
alGenBuffers(NUM_STREAMBUFFERS, ALStreamBuffers[i]);
alSourcei(ALStreamSources[i][0], AL_SOURCE_RELATIVE, AL_TRUE);
alSource3f(ALStreamSources[i][0], AL_POSITION, 0.0f, 0.0f, 0.0f);
alSourcef(ALStreamSources[i][0], AL_GAIN, 1.0f);
alSourcei(ALStreamSources[i][1], AL_SOURCE_RELATIVE, AL_TRUE);
alSource3f(ALStreamSources[i][1], AL_POSITION, 0.0f, 0.0f, 0.0f);
alSourcef(ALStreamSources[i][1], AL_GAIN, 1.0f);
}
}
CChannel::InitChannels();
@ -875,7 +906,7 @@ cSampleManager::Initialise(void)
aChannel[i].SetReverbMix(ALEffectSlot, 0.0f);
}
}
{
for ( int32 i = 0; i < TOTAL_STREAMED_SOUNDS; i++ )
nStreamLength[i] = 0;
@ -894,14 +925,15 @@ cSampleManager::Initialise(void)
for ( int32 i = 0; i < TOTAL_STREAMED_SOUNDS; i++ )
{
if(aStream[0] && (
if ( aStream[0] && (
#ifdef PS2_AUDIO_PATHS
aStream[0]->Open(PS2StreamedNameTable[i], IsThisTrackAt16KHz(i) ? 16000 : 32000) ||
#endif
aStream[0]->Open(StreamedNameTable[i], IsThisTrackAt16KHz(i) ? 16000 : 32000)))
aStream[0]->Open(StreamedNameTable[i], IsThisTrackAt16KHz(i) ? 16000 : 32000)) )
{
uint32 tatalms = aStream[0]->GetLengthMS();
aStream[0]->Close();
nStreamLength[i] = tatalms;
} else
USERERROR("Can't open '%s'\n", StreamedNameTable[i]);
@ -936,7 +968,17 @@ cSampleManager::Initialise(void)
nSampleBankMemoryStartAddress[SFX_BANK_PED_COMMENTS] = (uintptr)malloc(PED_BLOCKSIZE*MAX_PEDSFX);
ASSERT(nSampleBankMemoryStartAddress[SFX_BANK_PED_COMMENTS] != 0);
#ifdef FIX_BUGS
// Find biggest player comment
uint32 nMaxPedSize = 0;
for (uint32 i = PLAYER_COMMENTS_START; i <= PLAYER_COMMENTS_END; i++)
nMaxPedSize = Max(nMaxPedSize, m_aSamples[i].nSize);
gPlayerTalkData = malloc(nMaxPedSize);
ASSERT(gPlayerTalkData != 0);
#endif
LoadSampleBank(SFX_BANK_0);
}
@ -1035,7 +1077,7 @@ cSampleManager::Terminate(void)
for ( int32 i = 0; i < NUM_CHANNELS; i++ )
aChannel[i].Term();
if ( IsFXSupported() )
{
if ( alIsEffect(ALEffect) )
@ -1053,7 +1095,7 @@ cSampleManager::Terminate(void)
ALEffectSlot = AL_EFFECTSLOT_NULL;
}
}
for ( int32 i = 0; i < MAX_STREAMS; i++ )
{
alDeleteBuffers(NUM_STREAMBUFFERS, ALStreamBuffers[i]);
@ -1077,7 +1119,7 @@ cSampleManager::Terminate(void)
_fPrevEaxRatioDestination = 0.0f;
_usingEFX = false;
_fEffectsLevel = 0.0f;
_DeleteMP3Entries();
CStream::Terminate();
@ -1096,6 +1138,14 @@ cSampleManager::Terminate(void)
free((void *)nSampleBankMemoryStartAddress[SFX_BANK_PED_COMMENTS]);
nSampleBankMemoryStartAddress[SFX_BANK_PED_COMMENTS] = 0;
}
#ifdef FIX_BUGS
if ( gPlayerTalkData != 0 )
{
free(gPlayerTalkData);
gPlayerTalkData = 0;
}
#endif
_bSampmanInitialised = FALSE;
}
@ -1139,6 +1189,12 @@ cSampleManager::SetMusicMasterVolume(uint8 nVolume)
m_nMusicVolume = nVolume;
}
void
cSampleManager::SetMP3BoostVolume(uint8 nVolume)
{
m_nMP3BoostVolume = nVolume;
}
void
cSampleManager::SetEffectsFadeVolume(uint8 nVolume)
{
@ -1153,7 +1209,7 @@ cSampleManager::SetMusicFadeVolume(uint8 nVolume)
}
void
cSampleManager::SetMonoMode(uint8 nMode)
cSampleManager::SetMonoMode(bool8 nMode)
{
m_nMonoMode = nMode;
}
@ -1194,7 +1250,7 @@ cSampleManager::LoadSampleBank(uint8 nBank)
if ( fread((void *)nSampleBankMemoryStartAddress[nBank], 1, nSampleBankSize[nBank], fpSampleDataHandle) != nSampleBankSize[nBank] )
return FALSE;
#endif
bSampleBankLoaded[nBank] = TRUE;
gBankLoaded[nBank] = LOADING_STATUS_LOADED;
return TRUE;
}
@ -1204,18 +1260,45 @@ cSampleManager::UnloadSampleBank(uint8 nBank)
{
ASSERT( nBank < MAX_SFX_BANKS);
bSampleBankLoaded[nBank] = FALSE;
gBankLoaded[nBank] = LOADING_STATUS_NOT_LOADED;
}
bool8
int8
cSampleManager::IsSampleBankLoaded(uint8 nBank)
{
ASSERT( nBank < MAX_SFX_BANKS);
return bSampleBankLoaded[nBank];
return gBankLoaded[nBank];
}
#ifdef FIX_BUGS
uint8
cSampleManager::IsMissionAudioLoaded(uint8 nSlot, uint32 nSample)
{
ASSERT(nSlot == MISSION_AUDIO_PLAYER_COMMENT); // only MISSION_AUDIO_PLAYER_COMMENT is supported on PC
return nSample == gPlayerTalkSfx ? LOADING_STATUS_LOADED : LOADING_STATUS_NOT_LOADED;
}
bool8
cSampleManager::LoadMissionAudio(uint8 nSlot, uint32 nSample)
{
ASSERT(nSlot == MISSION_AUDIO_PLAYER_COMMENT); // only MISSION_AUDIO_PLAYER_COMMENT is supported on PC
ASSERT(nSample < TOTAL_AUDIO_SAMPLES);
if (fseek(fpSampleDataHandle, m_aSamples[nSample].nOffset, SEEK_SET) != 0)
return FALSE;
if (fread(gPlayerTalkData, 1, m_aSamples[nSample].nSize, fpSampleDataHandle) != m_aSamples[nSample].nSize)
return FALSE;
gPlayerTalkSfx = nSample;
return TRUE;
}
#endif
uint8
cSampleManager::IsPedCommentLoaded(uint32 nComment)
{
ASSERT( nComment < TOTAL_AUDIO_SAMPLES );
@ -1230,10 +1313,10 @@ cSampleManager::IsPedCommentLoaded(uint32 nComment)
uint8 slot = nCurrentPedSlot - i - 1;
#endif
if ( nComment == nPedSlotSfx[slot] )
return TRUE;
return LOADING_STATUS_LOADED;
}
return FALSE;
return LOADING_STATUS_NOT_LOADED;
}
@ -1275,14 +1358,6 @@ cSampleManager::LoadPedComment(uint32 nComment)
break;
}
case MUSICMODE_FRONTEND:
{
if ( MusicManager.GetNextTrack() == STREAMED_SOUND_GAME_COMPLETED )
return FALSE;
break;
}
}
}
@ -1291,7 +1366,7 @@ cSampleManager::LoadPedComment(uint32 nComment)
int samplesSize = m_aSamples[nComment].nSize / 2;
op_pcm_seek(fpSampleDataHandle, m_aSamples[nComment].nOffset / 2);
while (samplesSize > 0) {
int size = op_read(fpSampleDataHandle, (opus_int16 *)(nSampleBankMemoryStartAddress[SFX_BANK_PED_COMMENTS] + PED_BLOCKSIZE * nCurrentPedSlot + samplesRead),
int size = op_read(fpSampleDataHandle, (opus_int16 *)(nSampleBankMemoryStartAddress[SAMPLEBANK_PED] + PED_BLOCKSIZE * nCurrentPedSlot + samplesRead),
samplesSize, NULL);
if (size <= 0) {
return FALSE;
@ -1327,14 +1402,14 @@ cSampleManager::GetBankContainingSound(uint32 offset)
return INVALID_SFX_BANK;
}
int32
uint32
cSampleManager::GetSampleBaseFrequency(uint32 nSample)
{
ASSERT( nSample < TOTAL_AUDIO_SAMPLES );
return m_aSamples[nSample].nFrequency;
}
int32
uint32
cSampleManager::GetSampleLoopStartOffset(uint32 nSample)
{
ASSERT( nSample < TOTAL_AUDIO_SAMPLES );
@ -1363,29 +1438,25 @@ bool8 cSampleManager::UpdateReverb(void)
if ( AudioManager.m_FrameCounter & 15 )
return FALSE;
float fRatio = 0.0f;
#ifdef AUDIO_REFLECTIONS
float y = AudioManager.m_afReflectionsDistances[REFLECTION_TOP] + AudioManager.m_afReflectionsDistances[REFLECTION_BOTTOM];
float x = AudioManager.m_afReflectionsDistances[REFLECTION_LEFT] + AudioManager.m_afReflectionsDistances[REFLECTION_RIGHT];
float z = AudioManager.m_afReflectionsDistances[REFLECTION_UP];
#else
float x = 0.0f;
float y = 0.0f;
float z = 0.0f;
#define MIN_DIST 0.5f
#define CALCULATE_RATIO(value, maxDist, maxRatio) (value > MIN_DIST && value < maxDist ? value / maxDist * maxRatio : 0)
fRatio += CALCULATE_RATIO(AudioManager.m_afReflectionsDistances[REFLECTION_CEIL_NORTH], 10.0f, 1/2.f);
fRatio += CALCULATE_RATIO(AudioManager.m_afReflectionsDistances[REFLECTION_CEIL_SOUTH], 10.0f, 1/2.f);
fRatio += CALCULATE_RATIO(AudioManager.m_afReflectionsDistances[REFLECTION_CEIL_WEST], 10.0f, 1/2.f);
fRatio += CALCULATE_RATIO(AudioManager.m_afReflectionsDistances[REFLECTION_CEIL_EAST], 10.0f, 1/2.f);
fRatio += CALCULATE_RATIO((AudioManager.m_afReflectionsDistances[REFLECTION_NORTH] + AudioManager.m_afReflectionsDistances[REFLECTION_SOUTH]) / 2.f, 4.0f, 1/3.f);
fRatio += CALCULATE_RATIO((AudioManager.m_afReflectionsDistances[REFLECTION_WEST] + AudioManager.m_afReflectionsDistances[REFLECTION_EAST]) / 2.f, 4.0f, 1/3.f);
#undef CALCULATE_RATIO
#undef MIN_DIST
#endif
float normy = norm(y, 5.0f, 40.0f);
float normx = norm(x, 5.0f, 40.0f);
float normz = norm(z, 5.0f, 40.0f);
#define ZR(v, a, b) (((v)==0)?(a):(b))
#define CALCRATIO(x,y,z,min,max,val) (ZR(y, ZR(x, ZR(z, min, max), min), ZR(x, ZR(z, min, max), ZR(z, min, val))))
float fRatio = CALCRATIO(normx, normy, normz, 0.3f, 0.5f, (normy+normx+normz)/3.0f);
#undef CALCRATIO
#undef ZR
fRatio = Clamp(fRatio, usingEAX3==1 ? 0.0f : 0.30f, 1.0f);
fRatio = Clamp(fRatio, 0.0f, 0.6f);
if ( fRatio == _fPrevEaxRatioDestination )
return FALSE;
@ -1396,6 +1467,7 @@ bool8 cSampleManager::UpdateReverb(void)
if ( usingEAX3 )
#endif
{
fRatio = Min(fRatio * 1.67f, 1.0f);
if ( EAX3ListenerInterpolate(&StartEAX3, &FinishEAX3, fRatio, &EAX3Params, false) )
{
EAX_SetAll(&EAX3Params);
@ -1410,16 +1482,17 @@ bool8 cSampleManager::UpdateReverb(void)
}
*/
_fEffectsLevel = 1.0f - fRatio * 0.5f;
_fEffectsLevel = fRatio * 0.75f;
}
}
else
{
if ( _usingEFX )
_fEffectsLevel = (1.0f - fRatio) * 0.4f;
_fEffectsLevel = fRatio * 0.8f;
else
_fEffectsLevel = (1.0f - fRatio) * 0.7f;
_fEffectsLevel = fRatio * 0.22f;
}
_fEffectsLevel = Min(_fEffectsLevel, 1.0f);
_fPrevEaxRatioDestination = fRatio;
@ -1459,13 +1532,34 @@ cSampleManager::InitialiseChannel(uint32 nChannel, uint32 nSfx, uint8 nBank)
addr = nSampleBankMemoryStartAddress[nBank] + m_aSamples[nSfx].nOffset - m_aSamples[BankStartOffset[nBank]].nOffset;
}
#ifdef FIX_BUGS
else if ( nSfx >= PLAYER_COMMENTS_START && nSfx <= PLAYER_COMMENTS_END )
{
if ( !IsMissionAudioLoaded(MISSION_AUDIO_PLAYER_COMMENT, nSfx) )
return FALSE;
addr = (uintptr)gPlayerTalkData;
}
#endif
else
{
if ( !IsPedCommentLoaded(nSfx) )
int32 i;
for ( i = 0; i < _TODOCONST(3); i++ )
{
int32 slot = nCurrentPedSlot - i - 1;
#ifdef FIX_BUGS
if (slot < 0)
slot += ARRAY_SIZE(nPedSlotSfx);
#endif
if ( nSfx == nPedSlotSfx[slot] )
{
addr = (nSampleBankMemoryStartAddress[SFX_BANK_PED_COMMENTS] + PED_BLOCKSIZE * slot);
break;
}
}
if (i == _TODOCONST(3))
return FALSE;
int32 slot = _GetPedCommentSlot(nSfx);
addr = (nSampleBankMemoryStartAddress[SFX_BANK_PED_COMMENTS] + PED_BLOCKSIZE * slot);
}
if ( GetChannelUsedFlag(nChannel) )
@ -1496,12 +1590,11 @@ cSampleManager::SetChannelEmittingVolume(uint32 nChannel, uint32 nVolume)
nChannelVolume[nChannel] = vol;
// reduce channel volume when JB.MP3 or S4_BDBD.MP3 playing
if ( MusicManager.GetMusicMode() == MUSICMODE_CUTSCENE
&& MusicManager.GetNextTrack() != STREAMED_SOUND_NEWS_INTRO
&& MusicManager.GetNextTrack() != STREAMED_SOUND_CUTSCENE_SAL4_BDBD )
{
nChannelVolume[nChannel] = vol / 4;
if (MusicManager.GetMusicMode() == MUSICMODE_CUTSCENE ) {
if (MusicManager.GetCurrentTrack() == STREAMED_SOUND_CUTSCENE_FINALE)
nChannelVolume[nChannel] = 0;
else
nChannelVolume[nChannel] >>= 2;
}
// no idea, does this one looks like a bug or it's SetChannelVolume ?
@ -1536,14 +1629,14 @@ cSampleManager::SetChannelVolume(uint32 nChannel, uint32 nVolume)
nChannelVolume[nChannel] = vol;
// reduce the volume for JB.MP3 and S4_BDBD.MP3
if ( MusicManager.GetMusicMode() == MUSICMODE_CUTSCENE
&& MusicManager.GetNextTrack() != STREAMED_SOUND_NEWS_INTRO
&& MusicManager.GetNextTrack() != STREAMED_SOUND_CUTSCENE_SAL4_BDBD )
{
nChannelVolume[nChannel] = vol / 4;
// increase the volume for JB.MP3 and S4_BDBD.MP3
if (MusicManager.GetMusicMode() == MUSICMODE_CUTSCENE ) {
if (MusicManager.GetCurrentTrack() == STREAMED_SOUND_CUTSCENE_FINALE)
nChannelVolume[nChannel] = 0;
else
nChannelVolume[nChannel] >>= 2;
}
aChannel[nChannel].SetVolume(m_nEffectsFadeVolume*vol*m_nEffectsVolume >> 14);
}
}
@ -1609,8 +1702,8 @@ cSampleManager::StopChannel(uint32 nChannel)
}
void
cSampleManager::PreloadStreamedFile(uint8 nFile, uint8 nStream)
{
cSampleManager::PreloadStreamedFile(uint32 nFile, uint8 nStream)
{
ASSERT( nStream < MAX_STREAMS );
if ( nFile < TOTAL_STREAMED_SOUNDS )
@ -1618,7 +1711,6 @@ cSampleManager::PreloadStreamedFile(uint8 nFile, uint8 nStream)
CStream *stream = aStream[nStream];
stream->Close();
#ifdef PS2_AUDIO_PATHS
if(!stream->Open(PS2StreamedNameTable[nFile], IsThisTrackAt16KHz(nFile) ? 16000 : 32000))
#endif
@ -1657,12 +1749,12 @@ cSampleManager::StartPreloadedStreamedFile(uint8 nStream)
}
bool8
cSampleManager::StartStreamedFile(uint8 nFile, uint32 nPos, uint8 nStream)
cSampleManager::StartStreamedFile(uint32 nFile, uint32 nPos, uint8 nStream)
{
uint32 i = 0;
uint32 position = nPos;
char filename[MAX_PATH];
if ( nFile >= TOTAL_STREAMED_SOUNDS )
return FALSE;
@ -1672,7 +1764,7 @@ cSampleManager::StartStreamedFile(uint8 nFile, uint32 nPos, uint8 nStream)
{
do
{
// Switched to MP3 player just now
// Just switched to MP3 player
if ( !_bIsMp3Active && i == 0 )
{
if ( nPos > nStreamLength[STREAMED_SOUND_RADIO_MP3_PLAYER] )
@ -1682,12 +1774,15 @@ cSampleManager::StartStreamedFile(uint8 nFile, uint32 nPos, uint8 nStream)
// Try to continue from previous song, if already started
if(!_GetMP3PosFromStreamPos(&position, &e) && !e) {
nFile = 0;
CStream *stream = aStream[nStream];
#ifdef PS2_AUDIO_PATHS
if(!stream->Open(PS2StreamedNameTable[nFile], IsThisTrackAt16KHz(nFile) ? 16000 : 32000))
#endif
stream->Open(StreamedNameTable[nFile], IsThisTrackAt16KHz(nFile) ? 16000 : 32000);
if ( stream->Setup() ) {
stream->SetLoopCount(nStreamLoopedFlag[nStream] ? 0 : 1);
nStreamLoopedFlag[nStream] = TRUE;
if (position != 0)
stream->SetPosMS(position);
@ -1700,6 +1795,7 @@ cSampleManager::StartStreamedFile(uint8 nFile, uint32 nPos, uint8 nStream)
return FALSE;
} else {
if (e->pLinkPath != NULL)
aStream[nStream]->Open(e->pLinkPath, IsThisTrackAt16KHz(nFile) ? 16000 : 32000);
else {
@ -1708,7 +1804,7 @@ cSampleManager::StartStreamedFile(uint8 nFile, uint32 nPos, uint8 nStream)
aStream[nStream]->Open(filename);
}
if (aStream[nStream]->Setup()) {
if (position != 0)
aStream[nStream]->SetPosMS(position);
@ -1735,6 +1831,7 @@ cSampleManager::StartStreamedFile(uint8 nFile, uint32 nPos, uint8 nStream)
{
nFile = 0;
_bIsMp3Active = FALSE;
CStream *stream = aStream[nStream];
#ifdef PS2_AUDIO_PATHS
if(!stream->Open(PS2StreamedNameTable[nFile], IsThisTrackAt16KHz(nFile) ? 16000 : 32000))
@ -1742,6 +1839,8 @@ cSampleManager::StartStreamedFile(uint8 nFile, uint32 nPos, uint8 nStream)
stream->Open(StreamedNameTable[nFile], IsThisTrackAt16KHz(nFile) ? 16000 : 32000);
if (stream->Setup()) {
stream->SetLoopCount(nStreamLoopedFlag[nStream] ? 0 : 1);
nStreamLoopedFlag[nStream] = TRUE;
if (position != 0)
stream->SetPosMS(position);
@ -1759,6 +1858,7 @@ cSampleManager::StartStreamedFile(uint8 nFile, uint32 nPos, uint8 nStream)
else {
strcpy(filename, _mp3DirectoryPath);
strcat(filename, mp3->aFilename);
aStream[nStream]->Open(filename, IsThisTrackAt16KHz(nFile) ? 16000 : 32000);
}
@ -1779,13 +1879,18 @@ cSampleManager::StartStreamedFile(uint8 nFile, uint32 nPos, uint8 nStream)
position = 0;
nFile = 0;
}
strcpy(filename, StreamedNameTable[nFile]);
CStream *stream = aStream[nStream];
#ifdef PS2_AUDIO_PATHS
if(!stream->Open(PS2StreamedNameTable[nFile], IsThisTrackAt16KHz(nFile) ? 16000 : 32000))
#endif
stream->Open(StreamedNameTable[nFile], IsThisTrackAt16KHz(nFile) ? 16000 : 32000);
if ( stream->Setup() ) {
stream->SetLoopCount(nStreamLoopedFlag[nStream] ? 0 : 1);
nStreamLoopedFlag[nStream] = TRUE;
if (position != 0)
stream->SetPosMS(position);
@ -1841,15 +1946,20 @@ cSampleManager::GetStreamedFilePosition(uint8 nStream)
}
void
cSampleManager::SetStreamedVolumeAndPan(uint8 nVolume, uint8 nPan, uint8 nEffectFlag, uint8 nStream)
cSampleManager::SetStreamedVolumeAndPan(uint8 nVolume, uint8 nPan, bool8 nEffectFlag, uint8 nStream)
{
ASSERT( nStream < MAX_STREAMS );
float boostMult = 0.0f;
if ( nVolume > MAX_VOLUME )
nVolume = MAX_VOLUME;
if ( nPan > MAX_VOLUME )
nPan = MAX_VOLUME;
if ( MusicManager.GetRadioInCar() == USERTRACK && !MusicManager.CheckForMusicInterruptions() )
boostMult = m_nMP3BoostVolume / 64.f;
nStreamVolume[nStream] = nVolume;
nStreamPan [nStream] = nPan;
@ -1858,10 +1968,14 @@ cSampleManager::SetStreamedVolumeAndPan(uint8 nVolume, uint8 nPan, uint8 nEffect
if ( stream->IsOpened() )
{
if ( nEffectFlag )
stream->SetVolume(m_nEffectsFadeVolume*nVolume*m_nEffectsVolume >> 14);
if ( nEffectFlag ) {
if ( nStream == 1 || nStream == 2 )
stream->SetVolume(128*nVolume*m_nEffectsVolume >> 14);
else
stream->SetVolume(m_nEffectsFadeVolume*nVolume*m_nEffectsVolume >> 14);
}
else
stream->SetVolume(m_nMusicFadeVolume*nVolume*m_nMusicVolume >> 14);
stream->SetVolume((m_nMusicFadeVolume*nVolume*(uint32)(m_nMusicVolume * boostMult + m_nMusicVolume)) >> 14);
stream->SetPan(nPan);
}
@ -1941,7 +2055,7 @@ cSampleManager::InitialiseSampleBanks(void)
fclose(fpSampleDescHandle);
fpSampleDescHandle = NULL;
for ( int32 i = 0; i < TOTAL_AUDIO_SAMPLES; i++ )
for ( uint32 i = 0; i < TOTAL_AUDIO_SAMPLES; i++ )
{
#ifdef FIX_BUGS
if (nBank >= MAX_SFX_BANKS) break;
@ -1958,4 +2072,11 @@ cSampleManager::InitialiseSampleBanks(void)
return TRUE;
}
void
cSampleManager::SetStreamedFileLoopFlag(bool8 nLoopFlag, uint8 nChannel)
{
nStreamLoopedFlag[nChannel] = nLoopFlag;
}
#endif

View File

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

View File

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

View File

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

View File

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

View File

@ -2,15 +2,21 @@
#include "SurfaceTable.h"
struct CColBox
struct CBox
{
CVector min;
CVector max;
CVector GetSize(void) { return max - min; }
void Set(const CVector &min, const CVector &max) { this->min = min; this->max = max; }
};
struct CColBox : public CBox
{
uint8 surface;
uint8 piece;
void Set(const CVector &min, const CVector &max, uint8 surf = SURFACE_DEFAULT, uint8 piece = 0);
CVector GetSize(void) { return max - min; }
void Set(const CVector &min, const CVector &max, uint8 surf, uint8 piece);
using CBox::Set;
CColBox& operator=(const CColBox &other);
};

View File

@ -1,7 +1,9 @@
#include "common.h"
#include "ColModel.h"
#include "Collision.h"
#include "Game.h"
#include "MemoryHeap.h"
#include "Pools.h"
CColModel::CColModel(void)
{
@ -15,14 +17,27 @@ CColModel::CColModel(void)
vertices = nil;
triangles = nil;
trianglePlanes = nil;
level = CGame::currLevel;
level = LEVEL_GENERIC; // generic col slot
ownsCollisionVolumes = true;
}
CColModel::~CColModel(void)
{
RemoveCollisionVolumes();
RemoveTrianglePlanes();
}
void*
CColModel::operator new(size_t) throw()
{
CColModel* node = CPools::GetColModelPool()->New();
assert(node);
return node;
}
void
CColModel::operator delete(void *p, size_t) throw()
{
CPools::GetColModelPool()->Delete((CColModel*)p);
}
void
@ -34,6 +49,7 @@ CColModel::RemoveCollisionVolumes(void)
RwFree(boxes);
RwFree(vertices);
RwFree(triangles);
CCollision::RemoveTrianglePlanes(this);
}
numSpheres = 0;
numLines = 0;

View File

@ -9,14 +9,14 @@
struct CColModel
{
CColSphere boundingSphere;
CColBox boundingBox;
CSphere boundingSphere;
CBox boundingBox;
int16 numSpheres;
int16 numLines;
int16 numBoxes;
int16 numTriangles;
int32 level;
bool ownsCollisionVolumes; // missing on PS2
int8 numLines;
uint8 level; // colstore slot but probably still named level
bool ownsCollisionVolumes;
CColSphere *spheres;
CColLine *lines;
CColBox *boxes;
@ -33,5 +33,7 @@ struct CColModel
void SetLinkPtr(CLink<CColModel*>*);
void GetTrianglePoint(CVector &v, int i) const;
void *operator new(size_t) throw();
void operator delete(void *p, size_t) throw();
CColModel& operator=(const CColModel& other);
};

View File

@ -1,5 +1,6 @@
#include "common.h"
#include "ColSphere.h"
#include "General.h"
void
CColSphere::Set(float radius, const CVector &center, uint8 surf, uint8 piece)
@ -8,4 +9,19 @@ CColSphere::Set(float radius, const CVector &center, uint8 surf, uint8 piece)
this->center = center;
this->surface = surf;
this->piece = piece;
}
bool
CColSphere::IntersectRay(CVector const& from, CVector const& dir, CVector &entry, CVector &exit)
{
CVector distToCenter = from - center;
float distToTouchSqr = distToCenter.MagnitudeSqr() - sq(radius);
float root1, root2;
if (!CGeneral::SolveQuadratic(1.0f, DotProduct(distToCenter, dir) * 2.f, distToTouchSqr, root1, root2))
return false;
entry = from + dir * root1;
exit = from + dir * root2;
return true;
}

View File

@ -2,12 +2,20 @@
#include "SurfaceTable.h"
struct CColSphere
struct CSphere
{
// NB: this has to be compatible with a CVuVector
CVector center;
float radius;
void Set(float radius, const CVector &center) { this->center = center; this->radius = radius; }
};
struct CColSphere : public CSphere
{
uint8 surface;
uint8 piece;
void Set(float radius, const CVector &center, uint8 surf = SURFACE_DEFAULT, uint8 piece = 0);
void Set(float radius, const CVector &center, uint8 surf, uint8 piece);
bool IntersectRay(CVector const &from, CVector const &dir, CVector &entry, CVector &exit);
using CSphere::Set;
};

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