Daniel Evans
0e87037397
Merge pull request #486 from husho/morelocateopcodes
...
Locate opcodes
2018-05-24 13:02:06 +01:00
NFS_MONSTR
5da89a871b
Fix #432
2018-05-23 22:45:39 +03:00
husho
09fa9edaca
Locate opcodes
2018-05-23 21:27:33 +03:00
husho
d753d8cf20
Fixed warnings
2018-05-23 16:56:07 +03:00
husho
3ad651986c
Minor changes
2018-05-23 14:42:50 +03:00
husho
a8f5326c1f
Don't update doors every tick
2018-05-23 14:17:39 +03:00
husho
5d27eb33e9
Garages controller and basic functionality
2018-05-23 14:05:13 +03:00
Daniel Evans
de8131924d
Merge pull request #450 from husho/objphy
...
[Ready] Fixed script objects falling through the ground
2018-05-22 23:35:59 +01:00
Daniel Evans
c226432e88
Merge pull request #474 from NFSMONSTR/fix_loading_zonecylinder_texture
...
Fixed loading ZoneCylinder texture
2018-05-22 23:21:56 +01:00
husho
5c1dbbd8b6
Added pickups
2018-05-22 23:19:19 +03:00
husho
214095ba02
Improved game loop to support game speed
2018-05-22 22:40:51 +03:00
husho
cf3196c928
Fixed crash on new game, fixed missions not failing
...
on death/arrest
2018-05-22 01:42:18 +03:00
darkf
17077627fb
Merge pull request #447 from ShFil119/small_impr
...
[Ready] Perfect forwarding and some forgotten stuff
2018-05-21 17:07:01 -05:00
darkf
a8110de63e
Merge pull request #473 from husho/patch-3
...
Fixed: mission is not restarting if player is in vehicle
2018-05-21 17:03:58 -05:00
Daniel Evans
d343a1a0bb
Merge pull request #481 from dracc/aldoxtor-363
...
New opcodes as written by @aldoxtor
2018-05-21 13:43:37 +01:00
Lucas Eriksson
5869a6903a
Implemented some various opcodes
...
As written by @husho in #411 .
Continuation of #435 .
2018-05-20 15:03:22 +02:00
husho
972eaf2c08
F: mission not restarting if player is in vehicle
2018-05-20 01:41:42 +03:00
husho
1ecba29a62
Clear world on player restart, fixed 0395 opcode
2018-05-19 20:00:23 +03:00
NFS_MONSTR
7d6bc6a22e
Minor fixes
2018-05-19 17:47:27 +03:00
NFS_MONSTR
b019d187d6
Fixed loading ZoneCylinder texture
2018-05-19 17:13:47 +03:00
husho
97224fccd0
Attempt to fix physics of script objects
2018-05-18 11:43:57 +03:00
Daniel Evans
b77ca47fd4
Merge pull request #446 from husho/respawn
...
[Ready] Respawn functionality
2018-05-18 02:35:10 +01:00
Daniel Evans
370a969dac
Merge pull request #437 from dracc/mission-412
...
[Ready] Improved mission clean up logic and implemented related opcodes
2018-05-18 02:10:13 +01:00
Filip Gawin
09c5d36398
Set ptr to const if possible
...
Also:
- make args name matching in header
and source file,
- make more ptrs to const ref,
2018-05-16 19:17:13 +02:00
Filip Gawin
4e1948c23c
Rearrange passing args to functions/ctors
...
Kill extra shared_ptr by passing them using const reference.
Use perfect forwarding for strings.
Remove redundant std::move.
2018-05-16 19:17:13 +02:00
Filip Gawin
0c4e38a95b
Add missing override
2018-05-16 19:15:44 +02:00
Filip Gawin
1e6a26e3c3
Replace deprecated stdint.h with cstding
2018-05-16 19:15:44 +02:00
Lucas Eriksson
2346e03a60
Improved mission clean up logic and implemented related opcodes
2018-05-15 20:42:46 +02:00
husho
4aa326f747
Forgot 1 opcode
2018-05-15 21:14:18 +03:00
husho
fafd58df6e
Added respawn functionality
2018-05-15 21:07:40 +03:00
husho
ea55baf07d
Added stats opcodes
2018-05-15 21:03:59 +03:00
Daniel Evans
c6f5b5406b
Merge pull request #448 from husho/vehiclehealth
...
[Ready] Vehicle health
2018-05-15 13:13:19 +01:00
Daniel Evans
274fe20f17
Merge pull request #438 from dracc/locate-408
...
[Ready] Implemented some locate opcodes
2018-05-14 23:03:36 +01:00
Daniel Evans
f6932305ee
Merge pull request #455 from NFSMONSTR/454
...
Fix #454
2018-05-14 22:44:13 +01:00
Daniel Evans
a8cafe7396
Merge pull request #433 from NFSMONSTR/add_transparent_pickups2
...
Added transparency for pickups
2018-05-14 22:13:05 +01:00
husho
3c41e43a85
Little fix
2018-05-14 18:49:28 +03:00
husho
127c8168b3
Vehicle health
2018-05-14 10:37:33 +03:00
NFS_MONSTR
6c76a130af
fix 454
2018-05-13 01:47:03 +03:00
Daniel Evans
9831314162
Merge pull request #436 from dracc/blip-409
...
Implemented blip opcodes
2018-05-11 10:06:38 +01:00
NFS_MONSTR
45ee3ad0d4
Fixed bugs caused by adding switching glBlendFunc
2018-05-09 23:34:30 +03:00
NFS_MONSTR
a2edb79644
Fixed building
2018-05-09 23:34:25 +03:00
NFS_MONSTR
deafe08f1e
little changes
2018-05-09 23:34:01 +03:00
NFS_MONSTR
b8cab132f3
Added enum for blending modes
2018-05-09 23:33:55 +03:00
NFS_MONSTR
cfdcf32159
[WIP]Added transparency for pickups and selecting blend mode
2018-05-09 23:33:35 +03:00
Lucas Eriksson
a7bf0f9ea5
New opcodes as written by @aldoxtor
...
Updated according to requested changes and comments in #363
2018-05-09 10:48:19 +02:00
darkf
b7fb22f95c
Merge pull request #440 from mole99/buoys
...
Make buoys float again
2018-05-07 10:43:48 -05:00
Lucas Eriksson
263f861a7c
Implemented some locate opcodes
2018-05-07 10:05:29 +02:00
husho
558d44b379
fixed build
2018-05-06 20:19:30 +03:00
Miloslav Číž
db28b7b87a
Address simple TODOs in the code ( #350 )
...
* Make player gain money from getting into a taxi
* Remove redundant condition in VehicleObject
* Add documenting comment on SpecialModel
* Limit collecting money from each taxi to only once
2018-05-06 10:32:12 -05:00
darkf
512f1d2885
Merge pull request #439 from christoph-heiss/new-opcodes
...
Implement random number opcodes [0098, 0099, 0208, 0209].
2018-05-06 10:26:28 -05:00
Filip Gawin
63de965e3f
Fix condition in sorting
...
I forgot push suitable rebased commit.
2018-05-06 10:24:07 -05:00
mole99
1d54996adc
Reformatting changes
2018-05-06 16:20:00 +02:00
mole99
08d02fd5de
Prevent other objects than buoys from floating
...
As there is no way to distinguish whether an object should float on water or not, the names of the objects have to be hardcoded
2018-05-06 14:53:42 +02:00
Lucas Eriksson
36e73abfd0
Implemented blip opcodes as per #409
...
Renamed some functions and updated comments accordingly.
2018-05-06 11:43:51 +02:00
mole99
afb7f3f96f
Make buoys float again
...
Until now buoys would just fall down, we need to apply the force with an impulse to make it work. To update the object in debug mode, a tickPhysics function had to be created, like the vehicles already use.
2018-05-05 13:54:26 +02:00
Christoph Heiss
73ddf887f5
Implement opcodes 0098, 0099, 0208 and 0209.
...
These opcodes are relevant for generating random values.
2018-05-01 22:57:16 +02:00
Christoph Heiss
5745da77d2
Remove unimplemented warnings from implemented opcodes.
2018-05-01 22:57:07 +02:00
darkf
464a1e39b9
Merge pull request #414 from ShFil119/fix/transparent_objects
...
Fix order of transparent objects
2018-04-30 04:55:46 -05:00
darkf
107d2c7aa5
Merge pull request #330 from ShFil119/fix/deference_null_pointer
...
Some potential deference of null pointers
2018-04-30 04:49:58 -05:00
darkf
0df204b430
Merge pull request #398 from ShFil119/various
...
Various, small changes
2018-04-30 04:42:41 -05:00
Filip Gawin
2d5d70c1b2
More constexpr
2018-04-17 16:15:17 +02:00
Filip Gawin
5f5e9f7504
Set args as const if possible
2018-04-17 16:15:17 +02:00
Filip Gawin
2aa6d3b3b3
More nullptr
2018-04-17 16:15:17 +02:00
Filip Gawin
cf5efb9560
Use "= default" for trivial ctor/dtor
2018-04-17 16:15:17 +02:00
Filip Gawin
ecbb0599ed
Allow to pause and resume sounds
...
There's a lot of unneeded operation,
I mean coping strings and searching in loops.
We can get rid of it with extra method (passing
by sound by ref) or coping code.
PS cutscene's sound loses sync, because cutscene
doesn't stop.
2018-04-17 16:09:31 +02:00
Filip Gawin
248d8ef727
Fix order of transparent objects
...
As https://learnopengl.com/Advanced-OpenGL/Blending
suggests transparent objects should be last.
2018-03-17 19:38:05 +01:00
Daniel Evans
c328132e92
Implement opcodes 0181 and 0182
2018-02-22 00:34:11 +00:00
Anonymous Maarten
2305bb4a33
rwengine: tabs2space of GTA3ModuleImpl.inl
...
sed -i 's/\t/ /' GTA3ModuleImpl.inl
2018-02-14 23:58:57 +00:00
Filip Gawin
96ed30bc02
Three emplace_backs more
2018-02-14 22:32:08 +00:00
Filip Gawin
1ae0768725
Move temp data(instead of copying)
2018-02-14 22:32:08 +00:00
Anonymous Maarten
4ebc66b544
rwengine+rwgame: add missing includes
2018-02-13 22:15:26 +00:00
Filip Gawin
240b44af8b
More fixes double promotion
2018-02-12 09:54:25 +00:00
Christoph Heiss
00bac4c531
Fix build on macOS.
2018-02-09 22:58:49 +00:00
Christoph Heiss
256e5e73ad
Fix seat assignment on boats.
2018-02-09 22:53:23 +00:00
Lucas Eriksson
3e96ad9c92
Stop using default initialization onglm datatypes.
...
It results in undefined behaviour with glm 0.9.9
2018-02-09 22:33:10 +00:00
Filip Gawin
5bf92e5a0b
Use range loops in SaveGame.cpp
...
I've added const at the beginning of file,
arrays converted to type std::array.
2018-02-06 19:19:09 +00:00
Filip Gawin
73a5daab82
Use range loop
2018-02-06 19:19:09 +00:00
Filip Gawin
de77efe225
Add check character for player
2018-02-02 18:12:28 +01:00
Filip Gawin
edcd918f72
Add check reading simplemodel
2018-02-02 18:12:15 +01:00
Florin9doi
e3e3642ec2
Save game location for Windows; fixes #375
2018-02-02 15:32:24 +00:00
Daniel Evans
e2eff314fd
Weather: Fix linker error with old GLM
2018-02-01 02:43:48 +00:00
Daniel Evans
61e39aa505
Vehicle Object Component Rule evaluation
2018-02-01 02:43:48 +00:00
Daniel Evans
b35188ab94
correct comprules parsing. Use hex digits
2018-02-01 02:43:48 +00:00
Daniel Evans
9f68e4c95d
Interpolate between weather types too
2018-01-30 01:54:15 +00:00
Daniel Evans
4490d91ee1
Load weather data into GLM types instead
2018-01-30 01:48:33 +00:00
Daniel Evans
5d4231f922
Use the WeatherCondition enum without directly indexing into entries
2018-01-30 01:48:33 +00:00
Daniel Evans
d3306922b2
Split Weather Data from the loader
...
- WeatherLoader now just a namespace with a single function
2018-01-30 01:48:33 +00:00
Florin9doi
e5694b383c
Map flashing
2018-01-29 23:50:44 +00:00
Daniel Evans
6f9c3db52e
Overahaul of rwviewer to simplify the code and improve usability
...
- Shared ViewerWidget has been removed. Now multiple instances exist
2018-01-27 21:44:18 +00:00
Daniel Evans
7743626acb
Boats have a different DFF structure
2018-01-27 21:36:21 +00:00
Daniel Evans
65f51bc3c2
Skeleton collision effect handling
2018-01-15 21:50:13 +00:00
Daniel Evans
4f0109b17e
Tidy up code in object physics handling
2018-01-15 21:50:13 +00:00
Daniel Evans
1c57fb5d98
Refactor Collision Procesing
2018-01-15 21:50:13 +00:00
Daniel Evans
ec9236422b
Remove Custom material callback flag
2018-01-15 21:50:13 +00:00
Daniel Evans
869f09ba01
Prevent characters falling through the ground when placed
...
This was occuring when loading saves created in portland
2018-01-15 01:13:27 +00:00
Daniel Evans
1ed182c3f2
Correct splash texture loading
2018-01-13 18:56:27 +00:00
Filip Gawin
a60bc20585
Fix misaligned memory(UB)
...
X86 is able to deal with
misaligned memory, but it can hurt perf.
Other arch like for example mips
is not able to digest it.
So in order of portability we should get
rid of this UB.
2018-01-13 00:49:17 +00:00
Filip Gawin
09b7ead012
Add forgotten virtual dtor
2018-01-13 00:49:17 +00:00
Filip Gawin
3db102a13e
braced initializer
2018-01-08 23:00:30 +00:00
Anonymous Maarten
91b4ec3ac7
rwengine: iwyu: reduce warnings in script subdirectory (+tabs2space)
2018-01-08 22:52:48 +00:00
Anonymous Maarten
c0a4d627af
rwengine: iwyu: reduce warnings in render subdirectory
2018-01-08 22:52:48 +00:00
Anonymous Maarten
d07beff43e
rwengine: iwyu: reduce warnings in objects subdirectory
2018-01-08 22:52:48 +00:00
Anonymous Maarten
0fc83a97e4
rwengine: iwyu: reduce warnings in loaders subdirectory
2018-01-08 22:52:48 +00:00
Anonymous Maarten
e381a6c700
rwengine: iwyu: reduce warnings in items subdirectory
2018-01-08 22:52:48 +00:00
Anonymous Maarten
fb58dfb082
rwengine: iwyu: reduce warnings in engine subdirectory
2018-01-08 22:52:48 +00:00
Anonymous Maarten
a7203e00a0
rwengine: iwyu: reduce warnings in dynamics subdirectory
2018-01-08 22:52:48 +00:00
Anonymous Maarten
e60fd6af6b
rwengine: iwyu: fix warnings in data subdirectory
2018-01-08 22:52:48 +00:00
Anonymous Maarten
9b98133a91
rwengine: iwyu: no warnings in core subdirectory
2018-01-08 22:52:48 +00:00
Anonymous Maarten
428efd8fb1
openrw: iwyu: reduce warnings in audio subdirectory
2018-01-08 22:52:48 +00:00
Anonymous Maarten
b6b53ffdad
rwengine: iwyu: reduce warnings in ai subdirectory
2018-01-08 22:52:48 +00:00
Anonymous Maarten
29188f26f2
rwengine: iwyu: fix TextureArchive and BinaryStream
2018-01-08 22:52:48 +00:00
Anonymous Maarten
90acef28f7
rwlib: iwyu: reduce warnings
...
- use mapping file
- forward define FileContentsInfo, CutsceneTracks, GameTexts
- no more "#pragma once"
- add mapping file
2018-01-08 22:52:48 +00:00
Filip Gawin
6d80ce6424
Cleanup, use c++11 override
...
Maybe some of replace with
final, what do think?
2018-01-08 22:35:21 +00:00
Filip Gawin
caa5575573
Add check reading animation ptr
2018-01-08 23:09:43 +01:00
Filip Gawin
8cc8be5603
Small change, new -> make_shared.
2018-01-05 06:51:58 +00:00
Anonymous Maarten
382c28c9e3
rwengine: fix "initialization of 'specialPrefix' is skipped by 'default' label
...
vs2017: Compiler error C2361
2018-01-05 06:21:34 +00:00
Filip Gawin
ef4456e623
size() -> empty()
...
Empty has always
computational complexity O(1).
2017-12-17 01:48:49 +00:00
Miloslav Číž
57284fdade
Fix particle rendering transform matrix
2017-11-20 21:48:00 +00:00
Filip Gawin
d934f1c9b0
Forgotten flush of packet
2017-11-17 22:53:42 +00:00
Miloslav Číž
7715dbaf6e
Make vehicle wheels steer smoothly
2017-11-17 21:09:05 +01:00
Anonymous Maarten
c5523d6728
rwengine: Remove usused SCMTypeInfoTable
2017-11-17 00:50:50 +00:00
Anonymous Maarten
6142e0bf80
rwengine: remove unused ScriptDisassembly
2017-11-17 00:50:50 +00:00
Anonymous Maarten
deb7db5faf
rwengine: remove ScriptFunctionMeta->conditional + extended definition
...
Not used anywhere
2017-11-17 00:50:50 +00:00
Anonymous Maarten
4bf95cd903
rwengine: SCMMicrocode is not used anywhere
2017-11-17 00:50:50 +00:00
Anonymous Maarten
5299f4df08
spelling: yeild -> yield
2017-11-17 00:50:50 +00:00
Anonymous Maarten
85ac15078a
rwengine: Removed unused functions and defines
2017-11-17 00:50:50 +00:00
Anonymous Maarten
1378931eba
rwengine: throw runtime_error on shader error instead of straight exit
2017-11-17 00:50:50 +00:00
Anonymous Maarten
32fb5eb409
rwlib: LoaderIMG accepts rwfs::path
2017-11-17 00:50:50 +00:00
Anonymous Maarten
820c4bd25c
rwengine: GameData accepts rwfs::path as path of game data
2017-11-17 00:50:50 +00:00
Daniel Evans
9c48b4424a
Add build time option for CXX17 or boost filesystem
2017-10-31 00:55:19 +00:00
Anonymous Maarten
a40a2706a9
cmake: add support for include-what-you-use to check #include's
...
The output is currently very verbose and includes many false positives.
Adding a mapping file should solve this.
See
https://github.com/include-what-you-use/include-what-you-use/blob/master/docs/IWYUMappings.md
2017-10-29 20:40:57 +00:00
Anonymous Maarten
5dc707aaed
cmake: make OpenAL an imported target
2017-10-29 20:40:57 +00:00
Anonymous Maarten
6ccf85b770
cmake: make bullet an imported target
2017-10-29 20:40:57 +00:00
Anonymous Maarten
9f1ba0fe76
cmake: make ffmpeg an imported target
2017-10-29 20:40:57 +00:00
Anonymous Maarten
47dbea1bb4
cmake: make glm an imported target
2017-10-29 20:40:57 +00:00
Anonymous Maarten
f5a237bf7b
cmake: reformat rwengine/CMakeLists.txt
2017-10-29 20:40:57 +00:00
Anonymous Maarten
1926795d63
cmake: use rwengine::interface + no more add_definitions & include_directories
2017-10-29 20:40:57 +00:00
Filip
b9d306ae70
Improving handling game shaders ( #302 )
...
* move delete to earlier stage
* lines for better readability
* Added detach shader
* Addition forgotten glDeleteProgram
https://github.com/rwengine/openrw/search?utf8=%E2%9C%93&q=glDeleteProgram&type=
In project there's no necessary clearing call of glDeleteProgram.
* Removing/Closing shader programs
Each shader program should be taken care by glDeleteProgram.
To make it works/usefull, each shader's raw ptr will convertet to unique_ptr
in next commit.
* Converting ShaderProgram's ptr to unique
Actually deleting isn't handled,
so this commit removes memory leak.
2017-10-29 18:47:52 +00:00
Filip
c54cfa0ae8
Avoid making unnecessary copies ( #337 )
...
* frames.emplace_back
* vehicleColours.emplace_back
* colours.emplace_back
* waterBlocks.emplace_back
* state.garages.emplace_back
* bonedata->frames.emplace_back
* lines.emplace_back
* circleVerts.emplace_back
* geo.emplace_back
* Water renderer
* perf_colours.emplace_back
2017-10-29 17:14:07 +00:00
Filip Gawin
9aa01b69e1
Resolve cases found by gcc-5
2017-10-26 21:22:08 +01:00
Filip Gawin
512ac6f5ee
Fix double promotion
2017-10-25 01:17:46 +01:00
Daniel Evans
43047269ab
Offset vehicle spawn height to account for dimensions
...
Should prevent vehicles spawning in, and falling through, the ground.
2017-10-19 23:42:41 +01:00
Anonymous Maarten
14ef8c2539
rwengine: incorporate review
2017-10-18 21:52:29 +01:00
Anonymous Maarten
8012a5065d
rwengine: Store btOverlappingPairCallback in GameWorld
...
Should fix this memory leak:
==16721== 8 bytes in 1 blocks are definitely lost in loss record 7 of 264
==16721== at 0x4C2F1CA: operator new(unsigned long) (vg_replace_malloc.c:334)
==16721== by 0x7E7B5D: GameWorld::GameWorld(Logger*, GameData*) (GameWorld.cpp:100)
==16721== by 0x76EC0B: std::_MakeUniq<GameWorld>::__single_object std::make_unique<GameWorld, Logger*,
GameData*>(Logger*&&, GameData*&&) (unique_ptr.h:825)
==16721== by 0x760F50: RWGame::newGame() (RWGame.cpp:107)
==16721== by 0x78E713: LoadingState::enter() (LoadingState.cpp:9)
==16721== by 0x76602B: void StateManager::enter<LoadingState, RWGame*, RWGame::RWGame(Logger&, int, ch
ar**)::{lambda()#1}>(RWGame*&&, RWGame::RWGame(Logger&, int, char**)::{lambda()#1}&&) (StateManager.hpp:4
0)
==16721== by 0x760842: RWGame::RWGame(Logger&, int, char**) (RWGame.cpp:81)
==16721== by 0x750385: main (main.cpp:13)
2017-10-18 21:52:29 +01:00
Anonymous Maarten
a610ea2387
rwengine: store btCollisionShape along btRigidBody in Part
...
Should fix this memory leak:
==16721== 103 bytes in 1 blocks are definitely lost in loss record 181 of 264
==16721== at 0x4C2EB6B: malloc (vg_replace_malloc.c:299)
==16721== by 0x58F1AF3: ??? (in /usr/lib64/libLinearMath.so.2.83)
==16721== by 0x83E3C9: btBoxShape::operator new(unsigned long) (btBoxShape.h:34)
==16721== by 0x83CD75: VehicleObject::createObjectHinge(VehicleObject::Part*) (VehicleObject.cpp:722)
==16721== by 0x83C251: VehicleObject::setPartLocked(VehicleObject::Part*, bool) (VehicleObject.cpp:610)
==16721== by 0x83C2D0: VehicleObject::setPartTarget(VehicleObject::Part*, bool, float) (VehicleObject.cpp:623)
==16721== by 0x7B10CD: Activities::EnterVehicle::update(CharacterObject*, CharacterController*) (CharacterController.cpp:226)
==16721== by 0x7B062D: CharacterController::updateActivity() (CharacterController.cpp:26)
==16721== by 0x7B09FE: CharacterController::update(float) (CharacterController.cpp:98)
==16721== by 0x8EBBFA: DefaultAIController::update(float) (DefaultAIController.cpp:87)
==16721== by 0x82ED5A: CharacterObject::tick(float) (CharacterObject.cpp:240)
==16721== by 0x763630: RWGame::tick(float) (RWGame.cpp:506)
==16721==
==16721== 120 bytes in 5 blocks are definitely lost in loss record 187 of 264
==16721== at 0x4C2F1CA: operator new(unsigned long) (vg_replace_malloc.c:334)
==16721== by 0x8EBA26: DefaultAIController::update(float) (DefaultAIController.cpp:63)
==16721== by 0x82ED5A: CharacterObject::tick(float) (CharacterObject.cpp:240)
==16721== by 0x763630: RWGame::tick(float) (RWGame.cpp:506)
==16721== by 0x763128: RWGame::run() (RWGame.cpp:420)
==16721== by 0x750394: main (main.cpp:15)
2017-10-18 21:52:29 +01:00
Anonymous Maarten
eba262b789
rwengine: make Activity a std::unique_ptr
...
Should fix this memory leak:
==16721== 120 bytes in 5 blocks are definitely lost in loss record 187 of 264
==16721== at 0x4C2F1CA: operator new(unsigned long) (vg_replace_malloc.c:334)
==16721== by 0x8EBA26: DefaultAIController::update(float) (DefaultAIController.cpp:63)
==16721== by 0x82ED5A: CharacterObject::tick(float) (CharacterObject.cpp:240)
==16721== by 0x763630: RWGame::tick(float) (RWGame.cpp:506)
==16721== by 0x763128: RWGame::run() (RWGame.cpp:420)
==16721== by 0x750394: main (main.cpp:15)
2017-10-18 21:52:29 +01:00
Anonymous Maarten
e448f610ff
rwengine: make Renderer a shared_ptr
...
Should fix this memory leak:
==16721== 912 (600 direct, 312 indirect) bytes in 1 blocks are definitely lost in loss record 225 of 264
==16721== at 0x4C2F1CA: operator new(unsigned long) (vg_replace_malloc.c:334)
==16721== by 0x84A697: GameRenderer::GameRenderer(Logger*, GameData*) (GameRenderer.cpp:71)
==16721== by 0x75FC7D: RWGame::RWGame(Logger&, int, char**) (RWGame.cpp:35)
==16721== by 0x750385: main (main.cpp:13)
2017-10-18 21:52:29 +01:00
Anonymous Maarten
8175666092
rwengine: make AnimationBone a shared pointer
...
Should fix this memory leak:
==10780== 4,341,444 (269,712 direct, 4,071,732 indirect) bytes in 3,746 blocks are definitely lost in los
s record 2,652 of 2,654
==10780== at 0x4C2F1CA: operator new(unsigned long) (vg_replace_malloc.c:334)
==10780== by 0x8219B2: LoaderIFP::loadFromMemory(char*) (LoaderIFP.cpp:82)
==10780== by 0x7C22C0: GameData::loadIFP(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (GameData.cpp:506)
==10780== by 0x7BD838: GameData::load() (GameData.cpp:59)
==10780== by 0x75CD35: RWGame::RWGame(Logger&, int, char**) (RWGame.cpp:51)
==10780== by 0x74CDE5: main (main.cpp:13)
==10780==
==10780== 6,516,576 (13,968 direct, 6,502,608 indirect) bytes in 194 blocks are definitely lost in loss record 2,654 of 2,654
==10780== at 0x4C2F1CA: operator new(unsigned long) (vg_replace_malloc.c:334)
==10780== by 0x8219B2: LoaderIFP::loadFromMemory(char*) (LoaderIFP.cpp:82)
==10780== by 0x7C22C0: GameData::loadIFP(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (GameData.cpp:506)
==10780== by 0x7E7ECC: GameWorld::loadCutscene(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (GameWorld.cpp:693)
==10780== by 0x87453E: opcode_02e4(ScriptArguments const&, char const*) (GTA3ModuleImpl.inl:8245)
==10780== by 0x8D8149: void script_bind::call_unpacked<0u, 2u, void>::call<void (*)(ScriptArguments const&, char const*), ScriptArguments const&, char const*>(void (*)(ScriptArguments const&, char const*), ScriptArguments const&, ScriptArguments const&, char const*&&) (ScriptModule.hpp:80)
==10780== by 0x8D2765: void script_bind::call_unpacked<1u, 1u, void, char const*>::call<void (*)(ScriptArguments const&, char const*), ScriptArguments const&>(void (*)(ScriptArguments const&, char const*), ScriptArguments const&, ScriptArguments const&) (ScriptModule.hpp:90)
==10780== by 0x8C7EFE: void script_bind::call_unpacked<2u, 0u, void, ScriptArguments const&, char const*>::call<void (*)(ScriptArguments const&, char const*)>(void (*)(ScriptArguments const&, char const*), ScriptArguments const&) (ScriptModule.hpp:90)
==10780== by 0x8B5A05: void script_bind::binder<void, ScriptArguments const&, char const*>::call<void (*)(ScriptArguments const&, char const*)>(void (*)(ScriptArguments const&, char const*), ScriptArguments const&) (ScriptModule.hpp:104)
==10780== by 0x8A2E3A: void script_bind::do_unpacked_call<void, ScriptArguments const&, char const*>(void (* const&)(ScriptArguments const&, char const*), ScriptArguments const&) (ScriptModule.hpp:137)
==10780== by 0x893BB0: void ScriptModule::bind<void (*)(ScriptArguments const&, char const*)>(unsigned short, int, void (*)(ScriptArguments const&, char const*))::{lambda(ScriptArguments const&)#1}::operator()(ScriptArguments const&) const (ScriptModule.hpp:166)
==10780== by 0x8B5A8D: std::_Function_handler<void (ScriptArguments const&), void ScriptModule::bind<void (*)(ScriptArguments const&, char const*)>(unsigned short, int, void (*)(ScriptArguments const&, char const*))::{lambda(ScriptArguments const&)#1}>::_M_invoke(std::_Any_data const&, ScriptArguments const&) (std_function.h:316)
2017-10-18 21:52:29 +01:00
Anonymous Maarten
5e330346ec
rwengine: delete corona VisualFX on delete of PickupObject
...
Should fix this memory leak:
==31441== 1,184 (1,144 direct, 40 indirect) bytes in 11 blocks are definitely lost in loss record 2,344 of 2,723
==31441== at 0x4C2F1CA: operator new(unsigned long) (vg_replace_malloc.c:334)
==31441== by 0x7E30D5: GameWorld::createEffect(VisualFX::EffectType) (GameWorld.cpp:495)
==31441== by 0x82CE16: PickupObject::PickupObject(GameWorld*, glm::tvec3<float, (glm::precision)0> const&, BaseModelInfo*, PickupObject::PickupType) (PickupObject.cpp:126)
==31441== by 0x82C505: ItemPickup::ItemPickup(GameWorld*, glm::tvec3<float, (glm::precision)0> const&, BaseModelInfo*, PickupObject::PickupType, WeaponData*) (ItemPickup.cpp:11)
==31441== by 0x7E2953: GameWorld::createPickup(glm::tvec3<float, (glm::precision)0> const&, int, int) (GameWorld.cpp:389)
==31441== by 0x86D209: opcode_0213(ScriptArguments const&, int, int, glm::tvec3<float, (glm::precision)0>, ScriptObjectType<PickupObject>&) (GTA3ModuleImpl.inl:6350)
==31441== by 0x8DC0EF: void script_bind::call_unpacked<0u, 7u, void>::call<void (*)(ScriptArguments const&, int, int, glm::tvec3<float, (glm::precision)0>, ScriptObjectType<PickupObject>&), ScriptArguments const&, int&, int&, glm::tvec3<float, (glm::precision)0>&, ScriptObjectType<PickupObject> >(void (*)(ScriptArguments const&, int, int, glm::tvec3<float, (glm::precision)0>, ScriptObjectType<PickupObject>&), ScriptArguments const&, ScriptArguments const&, int&, int&, glm::tvec3<float, (glm::precision)0>&, ScriptObjectType<PickupObject>&&) (ScriptModule.hpp:80)
==31441== by 0x8D9B82: void script_bind::call_unpacked<1u, 6u, void, ScriptObjectType<PickupObject>&>::call<void (*)(ScriptArguments const&, int, int, glm::tvec3<float, (glm::precision)0>, ScriptObjectType<PickupObject>&), ScriptArguments const&, int&, int&, glm::tvec3<float, (glm::precision)0> >(void (*)(ScriptArguments const&, int, int, glm::tvec3<float, (glm::precision)0>, ScriptObjectType<PickupObject>&), ScriptArguments const&, ScriptArguments const&, int&, int&, glm::tvec3<float, (glm::precision)0>&&) (ScriptModule.hpp:90)
==31441== by 0x8D6753: void script_bind::call_unpacked<2u, 3u, void, glm::tvec3<float, (glm::precision)0>, ScriptObjectType<PickupObject>&>::call<void (*)(ScriptArguments const&, int, int, glm::tvec3<float, (glm::precision)0>, ScriptObjectType<PickupObject>&), ScriptArguments const&, int&, int>(void (*)(ScriptArguments const&, int, int, glm::tvec3<float, (glm::precision)0>, ScriptObjectType<PickupObject>&), ScriptArguments const&, ScriptArguments const&, int&, int&&) (ScriptModule.hpp:90)
==31441== by 0x8D213D: void script_bind::call_unpacked<3u, 2u, void, int, glm::tvec3<float, (glm::precision)0>, ScriptObjectType<PickupObject>&>::call<void (*)(ScriptArguments const&, int, int, glm::tvec3<float, (glm::precision)0>, ScriptObjectType<PickupObject>&), ScriptArguments const&, int>(void (*)(ScriptArguments const&, int, int, glm::tvec3<float, (glm::precision)0>, ScriptObjectType<PickupObject>&), ScriptArguments const&, ScriptArguments const&, int&&) (ScriptModule.hpp:90)
==31441== by 0x8CBEE0: void script_bind::call_unpacked<4u, 1u, void, int, int, glm::tvec3<float, (glm::precision)0>, ScriptObjectType<PickupObject>&>::call<void (*)(ScriptArguments const&, int, int, glm::tvec3<float, (glm::precision)0>, ScriptObjectType<PickupObject>&), ScriptArguments const&>(void (*)(ScriptArguments const&, int, int, glm::tvec3<float, (glm::precision)0>, ScriptObjectType<PickupObject>&), ScriptArguments const&, ScriptArguments const&) (ScriptModule.hpp:90)
==31441== by 0x8C0078: void script_bind::call_unpacked<5u, 0u, void, ScriptArguments const&, int, int, glm::tvec3<float, (glm::precision)0>, ScriptObjectType<PickupObject>&>::call<void (*)(ScriptArguments const&, int, int, glm::tvec3<float, (glm::precision)0>, ScriptObjectType<PickupObject>&)>(void (*)(ScriptArguments const&, int, int, glm::tvec3<float, (glm::precision)0>, ScriptObjectType<PickupObject>&), ScriptArguments const&) (ScriptModule.hpp:90)
2017-10-18 21:52:29 +01:00
Anonymous Maarten
8e98cf2311
rwengine: Pass CharacterController to the CharacterObject constructor
...
The CharacterObject should remove the CharacterController upon
destruction.
Should fix this memory leak:
==31441== 480 (360 direct, 120 indirect) bytes in 5 blocks are definitely lost in loss record 2,038 of 2,723
==31441== at 0x4C2F1CA: operator new(unsigned long) (vg_replace_malloc.c:334)
==31441== by 0x7E2370: GameWorld::createPedestrian(unsigned short, glm::tvec3<float, (glm::precision)0> const&, glm::tquat<float, (glm::precision)0> const&, unsigned int) (GameWorld.cpp:334)
==31441== by 0x8E2F01: TrafficDirector::populateNearby(ViewCamera const&, float, int) (TrafficDirector.cpp:164)
==31441== by 0x7E1170: GameWorld::createTraffic(ViewCamera const&) (GameWorld.cpp:176)
==31441== by 0x75C616: RWGame::tick(float) (RWGame.cpp:531)
==31441== by 0x75BF18: RWGame::run() (RWGame.cpp:420)
==31441== by 0x749184: main (main.cpp:15)
2017-10-18 21:52:29 +01:00
Anonymous Maarten
c2da40d0a0
rwlib/rwengine: Use AnimationPtr instead of Animation*
...
Should fix these memory leaks:
==31441== 3,694,699 (17,248 direct, 3,677,451 indirect) bytes in 196 blocks are definitely lost in loss record 2,720 of 2,723
==31441== at 0x4C2F1CA: operator new(unsigned long) (vg_replace_malloc.c:334)
==31441== by 0x81D98E: LoaderIFP::loadFromMemory(char*) (LoaderIFP.cpp:69)
==31441== by 0x7BE5D2: GameData::loadIFP(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (GameData.cpp:506)
==31441== by 0x7B9B4A: GameData::load() (GameData.cpp:59)
==31441== by 0x7590C5: RWGame::RWGame(Logger&, int, char**) (RWGame.cpp:51)
==31441== by 0x749175: main (main.cpp:13)
==31441==
==31441== 5,298,984 (1,080 direct, 5,297,904 indirect) bytes in 15 blocks are definitely lost in loss record 2,722 of 2,723
==31441== at 0x4C2F1CA: operator new(unsigned long) (vg_replace_malloc.c:334)
==31441== by 0x820253: __gnu_cxx::new_allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, AnimationBone*> > >::allocate(unsigned long, void const*) (new_allocator.h:111)
==31441== by 0x820175: std::allocator_traits<std::allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, AnimationBone*> > > >::allocate(std::allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, AnimationBone*> > >&, unsigned long) (alloc_traits.h:436)
==31441== by 0x81FFB4: std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, AnimationBone*>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, AnimationBone*> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, AnimationBone*> > >::_M_get_node() (stl_tree.h:588)
==31441== by 0x81FE03: std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, AnimationBone*> >* std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, AnimationBone*>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, AnimationBone*> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, AnimationBone*> > >::_M_create_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, AnimationBone*> const&>(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, AnimationBone*> const&) (stl_tree.h:642)
==31441== by 0x81FC26: std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, AnimationBone*> >* std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, AnimationBone*>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, AnimationBone*> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, AnimationBone*> > >::_Alloc_node::operator()<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, AnimationBone*> const&>(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, AnimationBone*> const&) const (stl_tree.h:556)
==31441== by 0x81F620: std::_Rb_tree_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, AnimationBone*> > std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, AnimationBone*>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, AnimationBone*> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, AnimationBone*> > >::_M_insert_<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, AnimationBone*> const&, std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, AnimationBone*>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, AnimationBone*> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, AnimationBone*> > >::_Alloc_node>(std::_Rb_tree_node_base*, std::_Rb_tree_node_base*, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, AnimationBone*> const&, std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, AnimationBone*>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, AnimationBone*> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, AnimationBone*> > >::_Alloc_node&) (stl_tree.h:1753)
==31441== by 0x81EDFD: std::pair<std::_Rb_tree_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, AnimationBone*> >, bool> std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, AnimationBone*>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, AnimationBone*> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, AnimationBone*> > >::_M_insert_unique<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, AnimationBone*> const&>(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, AnimationBone*> const&) (stl_tree.h:2096)
==31441== by 0x81E9F0: std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, AnimationBone*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, AnimationBone*> > >::insert(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, AnimationBone*> const&) (stl_map.h:796)
==31441== by 0x81E0BB: LoaderIFP::loadFromMemory(char*) (LoaderIFP.cpp:132)
==31441== by 0x7BE5D2: GameData::loadIFP(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (GameData.cpp:506)
==31441== by 0x7E4060: GameWorld::loadCutscene(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (GameWorld.cpp:692)
2017-10-18 21:52:29 +01:00
Anonymous Maarten
7e4e1db85d
rwlib: Use ClumpPtr instead of Clump*
...
Should fix these memory leaks:
==22737== 14,598,040 (131,472 direct, 14,466,568 indirect) bytes in 2,739 blocks are definitely lost in loss record 3,124 of 3,126
==22737== at 0x4C2F1CA: operator new(unsigned long) (vg_replace_malloc.c:334)
==22737== by 0x90FE4B: LoaderDFF::loadFromMemory(std::shared_ptr<FileContentsInfo>) (LoaderDFF.cpp:443)
==22737== by 0x7BCC86: GameData::loadModel(unsigned short) (GameData.cpp:474)
==22737== by 0x7DF7BC: GameWorld::createInstance(unsigned short, glm::tvec3<float, (glm::precision)0> const&, glm::tquat<float, (glm::precision)0> const&) (GameWorld.cpp:144)
==22737== by 0x7DF44C: GameWorld::placeItems(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (GameWorld.cpp:120)
==22737== by 0x758D38: RWGame::newGame() (RWGame.cpp:116)
==22737== by 0x786389: LoadingState::enter() (LoadingState.cpp:9)
==22737== by 0x75DC59: void StateManager::enter<LoadingState, RWGame*, RWGame::RWGame(Logger&, int, char**)::{lambda()#1}>(RWGame*&&, RWGame::RWGame(Logger&, int, char**)::{lambda()#1}&&) (StateManager.hpp:40)
==22737== by 0x758484: RWGame::RWGame(Logger&, int, char**) (RWGame.cpp:81)
==22737== by 0x747815: main (main.cpp:13)
2017-10-18 21:52:29 +01:00
Filip Gawin
c5ade22377
Implement 0197-01B0
2017-10-17 22:26:15 +01:00
Filip Gawin
863d69656d
Implement 00b0, 00b1
2017-10-17 22:26:15 +01:00
Filip Gawin
5cb1cd884c
Implement 00a3, 00a4
...
As you can see, they are copies
of 0056, 0057.
32a64aa214/rwengine/src/script/modules/GTA3ModuleImpl.inl (L939)
2017-10-17 22:26:15 +01:00
Tomi Lähteenmäki
4bf1d3795b
Fix jumping in newer bullet version ( #328 )
...
* Fix jumping in newer bullet version
* Added check for bullet version
jump() was changed in bullet version 2.84
2017-10-16 22:37:02 +01:00
Christoph Heiss
a347c07961
Use memcpy instead of mempcpy as mempcpy is glibc-specific.
...
This fixes #324 on macOS.
The only difference between memcpy and mempcpy is that mempcpy returns
a pointer one after the last written byte - the return value is unused.
2017-10-13 23:20:23 +01:00
Daniel Evans
8e86786e5b
Update Character movement at each physics sub-step
2017-10-13 21:40:40 +01:00
Daniel Evans
c915521436
Use a sliding range within a larger UBO for object data.
...
Improves performance quite considerably (30%) on Ivy Bridge
2017-10-13 19:58:27 +01:00
Christoph Heiss
6cab5ee31a
Fix some warnings
...
openrw/rwengine/src/engine/GameData.cpp:358:26: warning: moving a temporary object prevents copy elision [-Wpessimizing-move]
textureslots[slot] = std::move(loadTextureArchive(name));
^
openrw/rwengine/src/engine/GameData.cpp:358:26: note: remove std::move call here
textureslots[slot] = std::move(loadTextureArchive(name));
^~~~~~~~~~ ~
openrw/rwengine/src/objects/CharacterObject.cpp:16:18: warning: unused variable 'enter_offset' [-Wunused-variable]
static glm::vec3 enter_offset(0.81756252f, 0.34800607f, -0.486281008f);
^
In file included from openrw/rwgame/RWGame.cpp:5:
openrw/rwgame/states/BenchmarkState.hpp:33:23: warning: 'BenchmarkState::getCamera' hides overloaded virtual function
[-Woverloaded-virtual]
const ViewCamera& getCamera();
^
openrw/rwgame/State.hpp:51:31: note: hidden overloaded virtual function 'State::getCamera' declared here: different number of
parameters (1 vs 0)
virtual const ViewCamera& getCamera(float alpha);
^
In file included from openrw/rwgame/RWGame.cpp:6:
openrw/rwgame/states/IngameState.hpp:53:18: warning: 'draw' overrides a member function but is not marked 'override'
[-Winconsistent-missing-override]
virtual void draw(GameRenderer* r);
^
openrw/rwgame/State.hpp:28:18: note: overridden virtual function is here
virtual void draw(GameRenderer* r) {
^
In file included from openrw/rwgame/RWGame.cpp:6:
openrw/rwgame/states/IngameState.hpp:60:23: warning: 'getCamera' overrides a member function but is not marked 'override'
[-Winconsistent-missing-override]
const ViewCamera& getCamera(float alpha);
^
openrw/rwgame/State.hpp:51:31: note: overridden virtual function is here
virtual const ViewCamera& getCamera(float alpha);
^
openrw/rwgame/RWGame.cpp:242:22: warning: unused variable 'vehicleModel' [-Wunused-variable]
uint16_t vehicleModel = 110; // @todo Which cars are spawned?!
^
In file included from openrw/rwengine/src/script/modules/GTA3Module.cpp:1:
In file included from openrw/rwengine/src/engine/GameState.hpp:7:
openrw/rwengine/src/engine/ScreenText.hpp:140:63: warning: suggest braces around initialization of subobject [-Wmissing-braces]
const std::array<GameString, sizeof...(args)> vals = {args...};
^~~~
{ }
openrw/rwengine/src/script/modules/GTA3ModuleImpl.inl:5669:16: note: in instantiation of function template specialization
'ScreenText::format<std::__1::basic_string<unsigned short, std::__1::char_traits<unsigned short>, std::__1::allocator<unsigned short> > >'
requested here
ScreenText::format(
^
In file included from openrw/rwengine/src/script/modules/GTA3Module.cpp:1:
In file included from openrw/rwengine/src/engine/GameState.hpp:7:
openrw/rwengine/src/engine/ScreenText.hpp:140:63: warning: suggest braces around initialization of subobject [-Wmissing-braces]
const std::array<GameString, sizeof...(args)> vals = {args...};
^~~~
{ }
openrw/rwengine/src/script/modules/GTA3ModuleImpl.inl:10214:18: note: in instantiation of function template specialization
'ScreenText::format<std::__1::basic_string<unsigned short, std::__1::char_traits<unsigned short>, std::__1::allocator<unsigned short> >,
std::__1::basic_string<unsigned short, std::__1::char_traits<unsigned short>, std::__1::allocator<unsigned short> > >' requested here
ScreenText::format(script::gxt(args, gxtEntry),
^
openrw/rwgame/State.cpp:40:42: warning: unused parameter 'alpha' [-Wunused-parameter]
const ViewCamera& State::getCamera(float alpha) {
^
openrw/rwengine/src/render/ObjectRenderer.cpp:20:17: warning: unused variable 'kWorldDrawDistanceFactor'
[-Wunused-const-variable]
constexpr float kWorldDrawDistanceFactor = kDrawDistanceFactor;
^
2017-10-13 19:54:10 +01:00
Filip Gawin
7b706e11d4
Fix text colors
...
On gtamodding.com is list
https://www.gtamodding.com/wiki/GXT#Tokens
2017-10-13 19:48:12 +01:00
Aldoxtor
7b0b82c502
implement isPlayer()
2017-10-08 18:29:14 +01:00
Daniel Evans
7f2c512f50
Use Renderer in place of raw GL calls in more places
...
Additionally, fix setBlend() enabling blending on every draw
2017-10-08 18:18:28 +01:00
Filip Gawin
6d67728b4f
Fix opcode 00bc
...
After some researches I found that,
script with opcode 03d5 removes only short
connected with sound, not cutscene's text.
Example:
aa12022061/19_8ball.sc (L164)
But in case of cutscenes, script doesn't do anything,
so logically suspecting, all opcodes connected with key word NOW,
are flushing currently used text.
aa12022061/19_8ball.sc (L862)
2017-10-08 14:37:16 +01:00
Filip Gawin
26e7d57905
Fix opcode 03d5
...
As you can see in script:
https://github.com/Lighnat0r/GTA-III-SCM-Converted/search?utf8=%E2%9C%93&q=03d5&type=
Opcode 03d5 is cleaning only after 00BC.
00BC is using HighPriority, not Big.
2017-10-08 14:37:16 +01:00
Filip Gawin
cc61d3858d
Implement opcodes arg = abs(arg)
...
Commit implements 0094, 0095,
0096, 0097
2017-09-28 22:21:53 +01:00
Filip Gawin
ca819e9ddc
Implement opcodes feet --> meters
...
Implement 0425, 042D.
2017-09-28 22:21:53 +01:00
Filip Gawin
a6d153b163
Implement opcodes int <--> float
...
Implements 008c, 008d, 008e, 008f,
0090, 0091, 0092, 0093.
2017-09-28 22:21:53 +01:00
Filip Gawin
c16f565136
Implement 02f6 02f7
2017-09-28 22:21:53 +01:00
Filip Gawin
11e90c61e5
Simplify condition
...
Like suggested in #293 .
2017-09-19 14:23:31 +01:00
Filip Gawin
391e993d1f
Simplify condition and increase readability
2017-09-19 14:23:31 +01:00
Filip Gawin
27113e540f
Deleting "empty", duplicated variables in CharacterState
...
All objects inherites variables: rotation and position from GameObject,
CharacterObject contains also CharacterState with empty,
never used position and rotation. They are not even initialized.
https://github.com/rwengine/openrw/search?utf8=%E2%9C%93&q=currentState&type=
https://github.com/rwengine/openrw/search?p=1&q=getCurrentState&type=&utf8=%E2%9C%93
2017-09-19 14:23:31 +01:00
Filip Gawin
2890280934
Convert default initialization to value initialization
...
Default initialization has a problem,
it doesn't initialize POD class,
so it's safer to use value initialization,
especially for "outside" class (like bullet).
2017-09-19 14:23:31 +01:00
Anonymous Maarten
02c60311ee
rwlib/rwengine: make use of RW_ASSERT instead of assert
2017-09-16 22:19:39 +01:00
darkf
afe4928678
SoundManager: use av_frame_free, not av_free
2017-09-16 19:50:51 +01:00
darkf
8fd6d2f125
SoundManager: Set log level to error on release, warning on debug
2017-09-16 19:50:51 +01:00
darkf
f4f0f28a14
Support older libavcodec versions and update .travis.yml for new dependencies
2017-09-16 19:50:51 +01:00
darkf
ec2e940924
Remove libsndfile dependency
2017-09-16 19:50:51 +01:00
darkf
d69fdffdd1
Remove mman-win32 dependency
2017-09-16 19:50:51 +01:00
darkf
8e26431665
Remove dependency on libMAD (hurrah!)
2017-09-16 19:50:51 +01:00
darkf
4f60dcb663
Replace Music with Sound
2017-09-16 19:50:51 +01:00
darkf
c474bbe280
Implement FFmpeg audio decoder
2017-09-16 19:50:51 +01:00
Filip
8b067f4f69
Replacing "new" operators with make_unique/shared ( #306 )
...
* Replace "new" operator with std::make_unique for BS in BinaryStream.cpp
* Replace "new" operator with std::make_unique for textureArchive in TextureArchive.cpp
* Replace "new" operator with std::make_unique for variables in LoaderIDE.cpp
* Addition constructor for InstanceData
* Replace "new" operator with std::make_shared for instance in LoaderIPL.cpp
2017-09-12 02:00:03 +01:00
Daniel Evans
b7ae0a54e4
Fix unused variable warning in rwengine
2017-09-12 01:44:22 +01:00
Aldoxtor
7a8c602c75
add missing override
2017-09-12 01:40:31 +01:00
Aldoxtor
fd5acc2be2
fixing magic numbers in playAnimation()
2017-09-12 01:35:24 +01:00
Anonymous Maarten
17bfa2cf74
rwengine: check for valid reads in DAT readers (in debug mode)
2017-09-12 00:55:41 +01:00
Anonymous Maarten
2e62a115bd
rwengine: Ignore lines in DAT files starting with '*'
...
Last line starts with asterisk and would cause an uninitialized
DynamicsObjectDataPtr object to be inserted.
2017-09-12 00:55:41 +01:00
Anonymous Maarten
3488baae18
rwengine: Do not copy EndOfArgList to locals of created thread
...
integerValue RW_ERRORs for non-integer types
2017-09-12 00:55:41 +01:00
Anonymous Maarten
4700adb8c0
rwengine: std::map::end returns an iterator to the past-the-end element
...
Use std::map::rbegin instead
2017-09-12 00:55:41 +01:00
Anonymous Maarten
692ba92167
rwengine: extracting a float from a stream does not extract the f suffix
...
On Visual Studio 2017
std::istringstream ss("0.4f,0.8f,");
float f1, f2;
ss >> f1; /* Will leave the f suffix available on the stream. */
ss.ignore(2, ','); /* Ignore until the comma. */
ss >> f2;
...
2017-09-12 00:55:41 +01:00
Filip Gawin
9e20ad6c20
‘ObjectRenderer::m_errorTexture’ will be initialized after [-Wreorder]
2017-08-03 11:52:24 +01:00
Filip Gawin
950a83d4ba
removing warning: ‘VehicleObject::mHasSpecial’ will be initialized after [-Wreorder]
2017-08-03 11:52:24 +01:00
ShFil119
d08c2686e1
Replace manual conversion with glm's function
...
Glm allows to use angle manipulation functions. One of them is conversion degrees to radians.
It gives optimal precision and isn't strictly connected with float.
https://glm.g-truc.net/0.9.4/api/a00136.html#ga4fb76e28851c9ff6653532566084e091
// Please close https://github.com/rwengine/openrw/pull/295 New pull request prevents trash in history, and it's easier to read.
2017-06-18 18:10:46 +02:00
Aldoxtor
963f490cf0
small clean up
2017-04-21 20:24:32 +01:00
Aldoxtor
4fdf3a2280
add missing headers
2017-04-21 20:24:32 +01:00
vflyson
79bdd78952
Implement in-car perks
2017-03-15 21:41:39 +00:00
vflyson
a0beb47c5d
Prevent Rhino's front wheels from changing steering angle
2017-03-13 22:15:22 +00:00
Daniel Evans
cf767d161f
Use the correct animation group for each character
2017-03-03 20:31:57 +00:00
Daniel Evans
974d7e826a
Use AnimCycle IDs instead of Animation* in CharacterController
2017-03-03 20:31:57 +00:00
Daniel Evans
adb0214351
Add interface for using AnimCycle in CharacterObject
2017-03-03 20:31:57 +00:00
Daniel Evans
4644c60c17
Replace AnimGroup implementation with animation table
2017-03-03 20:31:57 +00:00
Daniel Evans
a59fb1ae56
Extract AnimGroup to own header and cleanup
2017-03-03 20:31:57 +00:00
Anonymous Maarten
a725a51baa
spelling: recieve -> receive
2017-02-20 01:01:30 +00:00
Daniel Evans
aec738c396
Remove un-needed assert in WaterRenderer
...
Values above height count are valid and indicate water disabled.
2017-02-19 01:51:01 +00:00
vflyson
01241f33d9
make it possible to scroll down to the fist
2017-02-19 00:57:30 +00:00
Vincent Flyson
edcf62c04a
apply various colors to pickups' coronas, use the correct texture ( #269 )
...
* apply various colors to pickups' coronas, use the correct texture
* give coronas the pulsating effect
2017-02-16 20:12:06 +00:00
Daniel Evans
d6e2057f8f
Apply LOD multiplier correctly when rendering
2017-02-08 21:45:01 +00:00
Daniel Evans
e1f7d11c82
Fix off-by-one error in Simple Model atomic lookup
2017-02-08 21:45:01 +00:00
Daniel Evans
308d1d6deb
Implement Building LOD transitions
2017-02-08 21:45:01 +00:00
Daniel Evans
5f6f3fe66f
Implement vehicle LOD rendering
2017-02-08 21:45:01 +00:00
Daniel Evans
d84b492412
Remove all traces of Skeleton
2017-02-08 21:45:01 +00:00
Daniel Evans
94456aa732
Convert CutsceneObject to use Frame animation
2017-02-08 21:44:25 +00:00
Daniel Evans
a6396ec6e8
Remove forward movement from Character Animation
2017-02-08 21:44:25 +00:00
Daniel Evans
ec5f1d7b55
Change Animator to animate Frames directly instead of Skeleton
2017-02-08 21:44:25 +00:00
Daniel Evans
3163a5dd57
Initial CharacterObject Clump implementation
2017-02-08 21:44:25 +00:00
Daniel Evans
1514bd2cc5
Implement Vehicle dynamics with Frames instead of Skeleton
2017-02-08 21:44:25 +00:00
Daniel Evans
f64104600e
Add a clump instance for each VehicleObject
2017-02-08 21:44:25 +00:00
Daniel Evans
80c9b73ac5
Initial Instance Object Rendering via atomics
2017-02-08 21:44:25 +00:00
Daniel Evans
729085d08c
Re-implement vehicle parts for changed frame interfaces
2017-02-08 21:44:25 +00:00
Daniel Evans
0a0be3c52a
Use new Clump structures in rwviewer + remove old renderer
2017-02-08 21:44:25 +00:00
Daniel Evans
d798509f93
Use Atomic instead of ModelFrame in ObjectRenderer
2017-02-08 21:44:25 +00:00
Daniel Evans
a0eaf5b8b0
Move Atomic and Geometry out of Clump class
2017-02-08 21:44:25 +00:00
Daniel Evans
8e4d73fca9
Rename Model -> Clump
2017-02-08 21:44:25 +00:00
Daniel Evans
3b3f1c8631
Spawn locale appropriate pedestrians near the camera
2017-02-08 20:30:30 +00:00
Daniel Evans
b1582bae4a
Name save file variables
2017-02-08 20:30:30 +00:00
Daniel Evans
162ff258c8
Load ped group data
2017-02-08 20:30:30 +00:00
Daniel Evans
79533fac8a
Load ped type relationship data
2017-02-08 20:30:30 +00:00
Daniel Evans
b0e7cbdadd
Add PedType save game block details
2017-02-08 20:30:30 +00:00
Daniel Evans
4f5987c7b0
Load and associated pedstats with ped models
2017-02-08 20:30:29 +00:00
Daniel Evans
3247fafa90
Load game zones from save file block
2017-01-30 00:24:44 +00:00
Daniel Evans
bb6698e373
Implement Hierarchy of game ZoneData
...
This allows querying of the most specific ZoneData for a given point
2017-01-30 00:24:44 +00:00
Daniel Evans
f12186dede
Implement 0373, fix stuck player after "Drive Misty For Me"
...
Leave opcode unimplemented directive, as behaviour is likely not correct
2017-01-16 22:36:38 +00:00
haphzd
e6ec1b69f0
Bring back culling events counter
2016-12-10 22:19:38 +03:00
Daniel Evans
eb71f59594
Update character look direction when setting orientation
2016-12-06 22:43:01 +00:00
Daniel Evans
b9740b3b8a
Only face movement direction when not strafing
2016-12-04 01:06:27 +00:00
Daniel Evans
920d3f86fe
Use look angles for weapon hitscans
2016-12-04 01:06:27 +00:00
Daniel Evans
ddb62ed3cd
Rewrite of camera and character look code
...
Make states responsible for interpolating camera transformation
Apply look direction to character orientation
2016-12-04 01:06:27 +00:00
Daniel Evans
c00145e551
Reduce code duplication for DFF texture lookup
2016-12-03 21:59:37 +00:00
Daniel Evans
d75c476221
Remove global texture list and use a slot name to lookup textures
2016-12-03 21:59:37 +00:00
Daniel Evans
8d10c80196
Remove all traces of WorkContext
2016-12-02 01:00:22 +00:00
Daniel Evans
b65a513bbb
Remove usages of WorkContext
2016-12-02 00:56:38 +00:00
Daniel Evans
7ad8ae5e40
Make loadTXD synchronous only
2016-12-02 00:42:38 +00:00
Daniel Evans
c63d12b70a
Merge pull request #250 from JohnPaulHarold/openal_headers
...
OpenAL headers, fix for OSX compile
2016-11-22 21:00:49 +00:00
John-Paul Harold
9a1d1033e7
Fix OpenAL includes (fixes OSX build)
2016-11-21 11:19:29 +00:00
Daniel Evans
d0e01465ff
Merge pull request #248 from danhedron/input-fixup
...
Input fixup
2016-11-20 00:15:08 +00:00
Daniel Evans
9c8690bfae
Fix Control enum order which was causing excessive aliasing
2016-11-19 23:50:34 +00:00
Daniel Evans
57edc3648b
Detect event starts by double-buffering state
2016-11-19 23:50:34 +00:00
Jannik Vogel
d5ff5601be
Fixup BT_BULLET_VERSION check
...
Bullet 2.83.5 was 283, 2.83.6 was 284, 2.84 (API changes affecting OpenRW) was 285, 2.85.1 is still 285.
We want to check for 2.84 and upwards, so our check must be for 285.
2016-11-07 22:38:38 +01:00
Daniel Evans
9f2fb5aa19
Merge pull request #245 from danhedron/physics-cleanup-1
...
Physics cleanup
2016-11-04 20:41:30 +00:00
Daniel Evans
6ce9ecedcc
Rewrite collision model data assignment
2016-11-03 23:26:09 +00:00
Daniel Evans
ca5649b840
Rewrite LoaderCOL and CollisionModel
2016-11-03 23:25:57 +00:00
Jannik Vogel
10c4f6dc86
Adapt for Bullet >= 2.84
2016-10-29 01:02:07 +02:00
Daniel Evans
684e32f4a9
Simplify Script system by removing SCMOpcodes
...
This was just a useless container for a set of modules. We only have
one module now so don't bother with it. This means we can remove some
more raw new & deletes from RWGame too.
2016-10-24 21:29:41 +01:00
Daniel Evans
fb4d9ea8c3
Use unique_ptr for GameWorld instance
2016-10-24 21:29:41 +01:00
Daniel Evans
ad998e8a80
Avoid allocating RWGame members where possible
...
These objects don't need to be dynamically allocated, they can
take on the same lifetime as RWGame itself.
2016-10-19 22:34:51 +01:00
Daniel Evans
657a726a9b
Initialise logging outside of RWGame
2016-10-19 22:34:51 +01:00
Daniel Evans
5c78930c1b
Remove InventoryItem and WeaponItem
...
They served no purpose other than to awkwardly implement weapon firing
This is now handled in the Weapon::fire* functions, and everything else
has been changed to reference weapon data or inventory indices directly
2016-10-19 22:14:52 +01:00
Daniel Evans
e31c30efe9
Improve loading of hard-coded models
2016-10-10 20:49:44 +01:00
Daniel Evans
a861309936
Change special and cutscene logic to load and unload models
2016-10-07 01:04:48 +01:00
Daniel Evans
e1ab5b1f69
Use ObjectRenderer to draw Goals and Arrows
2016-10-05 22:38:35 +01:00
Daniel Evans
9b45a31834
Remove BackgroundLoader.hpp
2016-10-05 22:38:35 +01:00
Daniel Evans
62ad6b8628
Remove monolithic model list
2016-10-05 22:38:03 +01:00
Daniel Evans
6951434be8
Load objects directly
2016-09-27 22:49:08 +01:00
Daniel Evans
218ffdf66c
Load and associate model data when creating objects
2016-09-27 22:49:07 +01:00
Daniel Evans
6888fa3558
Load and associate MODELFILE entries
2016-09-27 22:48:48 +01:00
Daniel Evans
996a82c4bf
Overhaul Model data handling to improve accuracy
2016-09-27 22:48:45 +01:00
Daniel Evans
479aaab666
Fix header guard in LoaderIDE.hpp
2016-09-11 02:59:03 +01:00
Daniel Evans
46a68de406
Fix header guard in ModelData.hpp
2016-09-11 02:59:02 +01:00
Daniel Evans
707ee4b32a
Rename ObjectData.hpp -> ModelData.hpp
2016-09-11 02:59:02 +01:00
Daniel Evans
e888d04303
clang-format files in rwengine/src/render
2016-09-09 21:13:20 +01:00
Daniel Evans
1e4d7ea133
clang-format files in rwengine/src/data
2016-09-09 21:13:20 +01:00
Daniel Evans
6444bca8db
clang-format files in rwengine/src/loaders
2016-09-09 21:13:19 +01:00
Daniel Evans
83cfb4d1e3
clang-format files in rwengine/src/audio
2016-09-09 21:13:19 +01:00
Daniel Evans
869c15a4ea
clang-format files in rwengine/src/script/modules
2016-09-09 21:13:19 +01:00
Daniel Evans
b064ad2aeb
clang-format files in rwengine/src/script
2016-09-09 21:13:19 +01:00
Daniel Evans
f2eede5301
clang-format files in rwengine/src/objects
2016-09-09 21:13:19 +01:00
Daniel Evans
305737cc3d
clang-format files in rwengine/src/items
2016-09-09 21:13:19 +01:00
Daniel Evans
80e6317c24
clang-format files in rwengine/src/engine
2016-09-09 21:13:19 +01:00
Daniel Evans
8534d7ff5d
clang-format files in rwengine/src/dynamics
2016-09-09 21:13:18 +01:00
Daniel Evans
d5e853d23f
clang-format files in rwengine/src/ai
2016-09-09 21:13:18 +01:00
Daniel Evans
9aa3af6703
clang-format files in rwengine/src/core
2016-09-09 21:13:18 +01:00
Daniel Evans
36a2c57d91
clang-format files in rwengine/src
2016-09-09 21:13:18 +01:00
Daniel Evans
43c2f00f47
Correct header guard and missing include in CollisionModel
2016-09-09 20:16:51 +01:00
Daniel Evans
239d19a310
Don't cast from wide chars to chars on windows
2016-09-09 00:07:17 +01:00
PerikiyoXD
62d0bf796a
Fixed .native() and some cast errors
...
Signed-off-by: PerikiyoXD <perikiyoxd@gmail.com>
2016-09-08 21:17:30 +02:00
Daniel Evans
0abfc695fb
Remove GameData::openFile
...
The openFile API is not useful for implementing the correct
behaviour, so the underlying FileIndex method will be removed
soon.
2016-09-07 22:06:38 +01:00
Daniel Evans
0be8586135
Improve indentation of loadLevelFile
2016-09-07 22:06:38 +01:00
Daniel Evans
930e10ce16
Rename parseDAT to loadLevelFile
...
There are many dat files in the game, but this function
only deals with the the level files
2016-09-07 22:06:38 +01:00
dan
5e0659fccf
Remove now unused fixPath function
2016-09-07 22:06:38 +01:00
dan
810c6658d0
use openFilePath to open data files
2016-09-07 22:06:38 +01:00
Daniel Evans
03309d76d9
Don't defer loading IDE files
2016-09-07 01:34:42 +01:00
dan
306f6fa9d7
Use findFilePath when loading data files
...
This should make file loading more reliable for case sensitive
operating systems.
2016-09-07 00:42:27 +01:00
Daniel Evans
674ce55af3
Replace findPathRealCase with FileIndex methods
...
This introduces indexGameDirectory and findFilePath.
indexGameDirectory indexes the files in the game directory.
findFilePath returns the on-disk location of a case-insensitive
game data path.
2016-09-06 00:23:25 +01:00
Jannik Vogel
fd6be733e0
Use correct int-width in State block 16 and 17
2016-09-02 15:33:45 +02:00
Daniel Evans
95a0e31484
Merge pull request #222 from JayFoxRox/radar-blips
...
Coloured radar-blips and radardisc z-order
2016-09-01 21:00:28 +01:00
haphzd
ae75254848
Fix mingw build
2016-09-01 00:56:14 +03:00
Daniel Evans
904817cb9e
Merge pull request #221 from JayFoxRox/hide-objects
...
Script: Implement opcode_0363 (Object visibility)
2016-08-31 22:08:25 +01:00
Daniel Evans
53a77d26ed
Merge pull request #220 from Mischa-Alff/tobj
...
Fixes #219 : Take TOBJ data into account when building render lists
2016-08-31 22:07:50 +01:00
Jannik Vogel
1e265b0e9c
Script: Correct colour/size for location-radar-blips
2016-08-31 00:28:58 +02:00