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
Jannik Vogel
270b0ce8be
Script: Correct colour/size for object-radar-blips
2016-08-31 00:28:58 +02:00
Jannik Vogel
635d10abfa
Script: Implement 0188
2016-08-31 00:28:58 +02:00
Jannik Vogel
6117be689d
Script: Support MarkerOnly in 018B
2016-08-31 00:23:02 +02:00
Jannik Vogel
2fdde9a94f
Draw colored radar-blips
2016-08-31 00:23:02 +02:00
Jannik Vogel
c379c5d5e4
Extend BlipData with colour/size
2016-08-31 00:23:02 +02:00
Jannik Vogel
7d96f28ab9
Seperate radar blip setup and drawing
2016-08-31 00:23:02 +02:00
Jannik Vogel
d9e202faba
MapRenderer::draw cleanup
2016-08-31 00:23:02 +02:00
Jannik Vogel
10dba6dbf3
Use a triangle-fan for radar-sprites (allows outline drawing)
2016-08-31 00:23:02 +02:00
Jannik Vogel
de62bd2bd9
Only draw arrow-markers which are not hidden
2016-08-31 00:23:02 +02:00
Jannik Vogel
e99cfd3979
Only draw radar-blips which are not hidden
2016-08-31 00:23:02 +02:00
Jannik Vogel
2d3a8856da
Draw blips after radar-north and player-marker
2016-08-31 00:23:02 +02:00
Jannik Vogel
e2a27711b2
Script: Implement opcode_0363
2016-08-31 00:12:38 +02:00
Daniel Evans
cd0f15bdb9
Use plain references for Local and Global script types
2016-08-30 19:57:47 +01:00
Daniel Evans
23752c33fa
Fix post-mission cleanup: actually destroy objects
2016-08-30 19:57:47 +01:00
Daniel Evans
34bdfbacfa
Remove old script modules
2016-08-30 19:57:47 +01:00
Daniel Evans
51cd277610
Implement various object related opcodes
2016-08-30 19:57:38 +01:00
Daniel Evans
0dd292ba28
Implement text opcodes
2016-08-30 19:56:41 +01:00
Daniel Evans
6f8364a9e8
Implement game opcodes
2016-08-30 19:56:39 +01:00
Daniel Evans
4aea8cc6aa
Implement arithmetic opcodes
2016-08-30 19:51:25 +01:00
Daniel Evans
4344bf40c3
Implement VM opcodes
2016-08-30 19:51:25 +01:00
Daniel Evans
e6c62d15e5
Add generated stubs from script interface descriptions
2016-08-30 19:51:19 +01:00
Daniel Evans
d25c1a45a6
Add Script interfaces to support generated functions
2016-08-30 19:46:59 +01:00
Mischa Aster Alff
a56b25d4cd
Change default object timeOff from 0 to 24
...
Remove now-useless check in ObjectRenderer
2016-08-28 14:32:34 +02:00
Mischa Aster Alff
397e8ecba8
Take TOBJ data into account when building render lists
2016-08-28 14:25:03 +02:00
Jannik Vogel
8e2dca9cfa
MinGW: rwengine depends on mman
2016-08-23 23:09:52 +02:00
Jannik Vogel
bdfa30729f
Replace uses of cmath constants by glm
2016-08-23 23:05:22 +02:00
Daniel Evans
3a53089d68
Merge pull request #190 from tsjost/fix/timecheat
...
Add method to modify game time properly
2016-08-23 00:28:54 +01:00
Daniel Evans
f82d48d52a
Add constants for non alphanumeric symbols
2016-08-23 00:05:25 +01:00
Daniel Evans
3123571894
Convert save games to use GameStringChar
2016-08-23 00:05:18 +01:00
Daniel Evans
67aa5150ca
Replace mb strings with 16-bit char strings
...
The game indexes into the font map directly, it doesn't use any font
encoding scheme like UTF-16. This corrects the behaviour and removes
dependancy on iconv.
2016-08-21 17:40:35 +01:00
Timmy Sjöstedt
03d27a0e80
Implemented method to modify game time properly
2016-08-17 01:03:31 +02:00
Daniel Evans
e449a25071
Replace hack with correct font-map lookup function
2016-08-16 21:46:53 +01:00
Daniel Evans
222c3df68d
Correct header guards in text related headers
2016-08-16 21:46:53 +01:00
Christoph Heiss
664451f63c
Fix -Winconsistent-missing-override warnings
...
Fixes all occurences of this warning:
warning: '<method-name>' overrides a member function but is not marked
'override' [-Winconsistent-missing-override]
2016-08-14 18:57:18 +02:00
Christoph Heiss
180ca626a5
Fix -Wmismatched-tags warnings
...
Fixes all occurences of this warning:
warning: '<type>' defined as a struct here but previously declared as a class
[-Wmismatched-tags]
2016-08-14 18:57:18 +02:00
Daniel Evans
771fafbd0e
Merge pull request #203 from danhedron/fix-vehicle-doors
...
Fix entering & exiting vehicle animations
2016-08-14 00:37:12 +01:00
Kamil Rytarowski
0ef224df90
Add preliminary NetBSD support
...
The iconv(3) function on NetBSD has a custom prototype due to old mistake in
the POSIX specification. The issue has been resolved but we keep using original
form with a constified parameter.
2016-08-13 21:33:04 +02:00
Daniel Evans
2f0b24c6ea
Merge pull request #188 from danhedron/feature/cleanup-script
...
Script cleanup and remove old tool
2016-08-12 23:36:26 +01:00
Daniel Evans
e7d14ffc25
Add right side animations to vehicle entering / exit list
2016-08-12 23:31:04 +01:00
Daniel Evans
9ac62d6521
Fix crash when entering vehicles without doors
2016-08-12 23:26:00 +01:00
Daniel Evans
ebc312bc9e
Merge pull request #198 from JayFoxRox/seats
...
Refactor seat storage, fixes entering wrong seat
2016-08-12 19:27:05 +01:00
Jannik Vogel
b0a2e79599
Refactor seat storage, fixes entering wrong seat
2016-08-12 16:39:29 +02:00
Jannik Vogel
a70931ee7c
Remove screen-door fade-in effect
2016-08-12 15:57:17 +02:00
Jannik Vogel
778ca63803
Script: Initialize globals from SCMFile
2016-08-12 02:14:15 +02:00
Jannik Vogel
6277d7981b
Script: Refactor player_near_point script functions 0xF5 - 0xFA
2016-08-12 02:14:15 +02:00
Jannik Vogel
f82beeefac
Avoid error in substr if short modelname in LOD selection
2016-08-12 02:14:15 +02:00
Jannik Vogel
f591c66422
Avoid crash if scriptOnMissionFlag is not linked
2016-08-12 02:14:15 +02:00
Jannik Vogel
571fd08631
Replace strcasecmp with boost::iequals
2016-08-12 02:14:15 +02:00
Jannik Vogel
cb347143f8
Cleanup: Replace non-std C++ code
2016-08-12 02:14:15 +02:00
Jannik Vogel
bda0107bb1
Cleanup: include-what-you-use
2016-08-12 02:14:15 +02:00
Jannik Vogel
9d34a16fbc
Cleanup: Remove empty FileArchive.hpp
2016-08-12 02:14:15 +02:00
Jannik Vogel
623e3c16a5
Fix Bullet #include paths
2016-08-12 02:14:15 +02:00
Daniel Evans
6ad05a3110
Remove unused UnimplementedOpcode exception
2016-08-12 01:02:24 +01:00
Daniel Evans
8a985309f9
Remove breakpoint system from ScriptMachine
2016-08-12 01:02:24 +01:00
Daniel Evans
0a982c1fca
Remove useless include
2016-08-12 01:02:24 +01:00
Daniel Evans
d414991d68
Correct script include guards
2016-08-12 01:02:24 +01:00
Daniel Evans
d9aded5415
Cleanup SCMFile
2016-08-12 01:02:24 +01:00
Daniel Evans
81c1bb947d
Improve debug output of script
2016-08-12 01:02:24 +01:00
Daniel Evans
d8841c7561
Remove include directory from rwengine for consistency
2016-08-07 14:41:45 +01:00
Daniel Evans
85b24231f5
Don't glob for files in rwengine CMakeLists.txt
2016-08-07 14:30:21 +01:00
darkf
0242868caa
Use boost::make_iterator_range, as older boost lacks ranges in filesystem iterators
2016-08-06 08:43:28 -07:00
darkf
62532107ee
Rewrite SaveGame::getAllSaveGameInfo to use boost::filesystem
2016-08-03 18:31:47 -07:00
darkf
40705a6666
Rewrite findPathRealCase to use boost::filesystem, move it to FileIndex
2016-08-03 18:31:47 -07:00
Timmy Sjöstedt
756ddf2df2
Removed GL_ARB_explicit_attrib_location extension
2016-08-03 19:00:20 +02:00
Timmy Sjöstedt
1500b6acbb
Removed GL_ARB_uniform_buffer_object extension
2016-08-03 18:56:50 +02:00
darkf
6d6d772653
Open binary files in binary mode
2016-08-02 04:38:35 -07:00