Anonymous Maarten
c758160d09
spelling: seperate -> separate
2018-01-05 06:21:34 +00:00
Anonymous Maarten
21c722f7cc
run_tests: fix 'Type has to implement operator<< to be printable' (MSVC compiler)
...
fixes:
error C2338: Type has to implement operator<< to be printable
error C2679: binary '<<': no operator found which takes a right-hand
operand of type 'const boost::filesystem::path::string_type' (or there
is no acceptable conversion)
2018-01-05 06:21:34 +00:00
Anonymous Maarten
4dc7da89ad
tests: boost 1.64 has a print_log_value<nullptr_t> implementation
...
fixes:
error C2766: explicit specialization;
'boost::test_tools::tt_detail::print_log_value<std::nullptr_t>' has
already been defined
C:\Boost\include\boost-1_64\boost/test/tools/detail/print_helper.hpp(169):
note: see previous definition of 'print_log_value<std::nullptr_t>
2017-12-17 01:31:09 +00:00
Anonymous Maarten
820c4bd25c
rwengine: GameData accepts rwfs::path as path of game data
2017-11-17 00:50:50 +00:00
Anonymous Maarten
55dd0beea0
rwgame: allow configuration files from all places (not only config path)
...
- add it as an argument to the rwgame executable
- update the tests
2017-11-17 00:50:50 +00:00
Anonymous Maarten
adc8255d4b
tests: test_FileIndex needs include of rw/filesystem.hpp
2017-10-31 08:17:34 +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
7e1da8dc0a
tests: increase test timeout
...
The GameData tests take relatively long and might time out.
2017-10-29 20:40:57 +00:00
Anonymous Maarten
8f4c770a26
cmake/tests: Fix naming and timing of ItemTests test suite
2017-10-29 20:40:57 +00:00
Anonymous Maarten
9e8a96ab7e
tests: execute each test separately by CTest
...
Disabled by default because empty test suites fail and would cause
Travis to fail.
There can be empty test suites when testing with no data.
2017-10-29 20:40:57 +00:00
Anonymous Maarten
a9f8f27b21
cmake: add coverage support
2017-10-29 20:40:57 +00:00
Anonymous Maarten
f06d9f5eb2
rwgame+rwviewer: fix -Wunused-variable warnings
2017-10-29 20:40:57 +00:00
Anonymous Maarten
1af5d74faa
tests: Include main test function from boost/test/unit_test.hpp
...
See https://bugzilla.redhat.com/show_bug.cgi?id=1446852
2017-10-29 20:40:57 +00:00
Anonymous Maarten
e663d061b7
tests: capitalize test name (test_name.cpp -> test_Name.cpp)
2017-10-29 20:40:57 +00:00
Anonymous Maarten
63d7898aa1
tests: tests have no PNG dependency
2017-10-29 20:40:57 +00:00
Anonymous Maarten
06c4bf09f7
cmake: make OpenGL 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
e555331748
cmake: be more specific about Boost library to link with
...
CMake 3.2's FindBoost.cmake does not support boost:: namespaces
2017-10-29 20:40:57 +00:00
Anonymous Maarten
66a28acaa4
cmake: make SDL2 an imported target
2017-10-29 20:40:57 +00:00
Anonymous Maarten
579a36cec7
cmake: reformat tests/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
Anonymous Maarten
14ef8c2539
rwengine: incorporate review
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
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
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
Anonymous Maarten
06c0f58ae8
config: add test about non-existing configuration directory
2017-08-15 15:58:01 +01:00
Anonymous Maarten
a92f24cbb4
config: unknown data will be kept in memory and saved onto disk
2017-08-15 15:58:01 +01:00
Anonymous Maarten
7a86c199b0
tests: only include GameConfig.hpp in source file (no header file)
...
This reduces compile time from 1m19s to 9s when touching GameConfig.hpp.
(Executed from rwgame/build/tests)
before:
$ make >/dev/null
$ touch ../../rwgame/GameConfig.hpp
$ time make>/dev/null
real 1m18.643s
user 1m13.069s
sys 0m5.266s
after:
$ make >/dev/null
$ touch ../../rwgame/GameConfig.hpp
$ time make>/dev/null
real 0m9.247s
user 0m8.374s
sys 0m0.836s
2017-08-15 15:58:01 +01:00
Anonymous Maarten
b1976fbcf2
tests: test_globals.hpp has a dependency on boost/test/unit_test.hpp
2017-08-15 15:58:01 +01:00
Anonymous Maarten
9e9e684a44
tests: only include test_globals.hpp when needed
2017-08-15 15:58:01 +01: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
9cf939433c
tests: set the test module name to openrw
2017-02-20 01:01:30 +00:00
Anonymous Maarten
e28e429b86
rwgame+config: show an error dialog when an error occurred on parsing the config file
2017-02-20 01:01:30 +00:00
Anonymous Maarten
76f2665acf
config: log parsing Errors to a ParseResult object (which is queryable)
2017-02-20 01:01:30 +00:00
Anonymous Maarten
e0813e4378
config: fix TempFile.touch() + TempFile test + extra doc of getValidConfig
2017-02-20 01:01:30 +00:00
Anonymous Maarten
90001b11ac
config: fix reading of illegal values
...
The parser would crash when trying to convert e.g. "d" to an integer.
2017-02-20 01:01:30 +00:00
Anonymous Maarten
66b09a64a5
config: added default INI string test + simplified tests + removed WTF
2017-02-20 01:01:30 +00:00
Anonymous Maarten
8f5664498c
config: saveConfig + tests added
2017-02-20 01:01:30 +00:00
Anonymous Maarten
ed185f2526
config: add tests on reading good and bad configuration files
2017-02-20 01:01:30 +00:00
Anonymous Maarten
05db65dbbc
config: allow reading INI from string, file, default and current config
...
This (slightly more complicated implementation) allows us,
once a configuration menu has been implemented,
to store the current/new configuration to a INI file.
The definitions of the parameters in rwgame/GameConfig.cpp
is limited to one location.
2017-02-20 01:01:30 +00:00
Anonymous Maarten
a725a51baa
spelling: recieve -> receive
2017-02-20 01:01:30 +00:00
Anonymous Maarten
65b14fcb9c
config: use boost::property_tree for INI read and default generation
...
* remove inih
* input.invert_y has now behavior as described on wiki
2017-02-20 01:01:30 +00:00
Anonymous Maarten
d2b706b874
tests: added test for comments in INI files
...
tests: test whitespaces and comments handling in config unit test
2017-02-20 01:01:30 +00:00
Daniel Evans
d84b492412
Remove all traces of Skeleton
2017-02-08 21:45:01 +00:00
Daniel Evans
ec5f1d7b55
Change Animator to animate Frames directly instead of Skeleton
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
ac8d6733cb
Add clone methods to Clump, Atomic and ModelFrame to permit copying
2017-02-08 21:44:25 +00:00
Daniel Evans
34c70b0be2
Allow ModelFrame, Atomic, Geometry to exist outside of a Clump
...
This changes the Clump data structure to simplify it and move some
of the concerns into the Atomic and Frame types.
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
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
4f5987c7b0
Load and associated pedstats with ped models
2017-02-08 20:30:29 +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
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
9c8690bfae
Fix Control enum order which was causing excessive aliasing
2016-11-19 23:50:34 +00:00
Daniel Evans
d62e8a6cd2
Make MenuEntry height a property of the Menu
2016-10-24 21:29:41 +01:00
Daniel Evans
613d386488
Improve Menu system implementation
2016-10-24 21:29:41 +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
462479b992
Remove ResourceHandle.hpp
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
707ee4b32a
Rename ObjectData.hpp -> ModelData.hpp
2016-09-11 02:59:02 +01:00
Daniel Evans
3015b7f3e0
clang-format files in tests
2016-09-09 21:13:22 +01:00
Daniel Evans
7b7e65e002
Fix file include path in test_FileIndex.cpp
2016-09-09 21:13:15 +01: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
d7dea62f04
remove unused method FileIndex::findFile
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
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
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
d8841c7561
Remove include directory from rwengine for consistency
2016-08-07 14:41:45 +01:00
darkf
196f9f6d25
Rewrite FileIndex to use boost::filesystem instead of POSIX
2016-08-03 18:31:47 -07:00
Daniel Evans
07945e767e
Merge pull request #168 from danhedron/feature/build-hash
...
Add Git SHA1 hash to RWGame for versioning
2016-08-01 19:42:14 +01:00
Daniel Evans
ded631dad6
Add Git SHA1 hash to RWGame for versioning
2016-08-01 19:34:53 +01:00
Daniel Evans
f860e4c9a7
Overhaul object transformation handling
...
Objects must now write back to their position and rotations using
updateTransform(position, rotation) to updae their transform. This
allows the getPosition and getRotation methods to become non virtual
2016-07-02 20:37:04 +01:00
Daniel Evans
600333e20b
Merge pull request #159 from danhedron/feature/traffic-vehicles
...
Parked traffic and out-of-view spawning
2016-06-29 23:04:00 +01:00
Daniel Evans
30e4a7faf1
Merge pull request #137 from haphzd/patch-1
...
File loading improvements
2016-06-29 22:26:58 +01:00
Daniel Evans
69e7d32f3a
Use view frustum for traffic spawning and cleanup
2016-06-27 22:33:22 +01:00
haphzd
593aa73bda
Use existing file loading method for SCM
2016-06-26 13:25:26 +03:00
Jannik Vogel
9bfb9f8002
CMake: Use FindSDL2.cmake
2016-06-22 23:58:27 +02:00
Christoph Heiss
649f7b144d
Replace SFML with SDL2
...
This entirely replaces all remaining SFML pieces with SDL2 and
brings OpenRW up to OpenGL 3.3
2016-06-22 12:29:39 +02:00
Daniel Evans
dd70e41bbd
Add TESTS_NODATA to build tests without data
2016-06-16 21:22:18 +01:00
Daniel Evans
81fe7166bd
Disable broken object tests until the correct behaviour is known
2016-06-03 23:17:39 +01:00
Daniel Evans
5f4400f362
Fix character test to actually be correct
2016-05-28 01:32:48 +01:00
Daniel Evans
eef34c972a
Script pickups: implement weapon pickups, improve pickup code
2016-05-25 23:00:52 +01:00
Daniel Evans
b7ac33caec
Improve activities: canSkip(), let player cancel vehicle enter.
...
Closes #32
2016-05-24 23:49:01 +01:00
Daniel Evans
2ee4a6e533
Add configuration file to replace OPENRW_GAME_PATH env var
...
This will permit the storage of other user settings like language and
video settings.
2016-05-20 02:10:11 +01:00
Daniel Evans
9f85f283cb
CMake: FindSFML+FindMAD, set library paths as SYSTEM, remove dead stuff.
2016-05-19 22:30:06 +01:00
Timmy Sjöstedt
b8062714a9
Work around Boost having moved stuff around, fixes #20
2016-05-19 22:28:01 +02:00
Daniel Evans
5721333fb0
Overhaul script text display with new text logic system.
...
Logic for displaying text now belongs in ScreenText, which will
handle type specific text display.
2016-05-07 18:29:08 +01:00
Daniel Evans
e7faa60926
Make unit tests work again, fixing tests & code
2016-05-02 17:38:04 +01:00
Daniel Evans
8a5be54b91
Overhaul animation system and character activities
...
Replaces animator with a simpler system that can overlay multiple
animations
Character animation split into two layers, motion and action.
Walking, running and jumping animations are played on the first
layer, actions such as firing can be overlayed on the second.
More work is needed to limit overlap to only the weapons that make
sense.
2016-04-17 04:54:19 +01:00
Daniel Evans
f3b81c5690
Bring tests back up to compiling and running. Only a few are failing
2016-04-15 01:06:10 +01:00
Daniel Evans
691bba5dca
New inventory implementation and split char state
2016-04-10 18:57:40 +01:00
Daniel Evans
14269d8ae5
Move first of lower level code into rwlib; tear out GLEW.
2016-04-07 01:13:46 +01:00
Daniel Evans
bf1c8bb0ca
Fix crashes from mixing player / character references
2015-07-01 23:16:06 +01:00
Daniel Evans
7ceaac370c
Load Weapon inventory data from save files
2015-06-14 21:52:47 +01:00
Daniel Evans
5d3ac6218e
Implement Game Object ID allocation
2015-04-29 21:03:53 +01:00
Daniel Evans
85b1ab120f
Move GameState out of GameWorld ownership
2015-04-27 03:55:18 +01:00
Daniel Evans
5db4c28f04
Refactor Object Definition information to GameData
2015-04-24 18:10:42 +01:00
Daniel Evans
a4f0ef7f44
Fix test crash caused by double free
2015-04-24 15:36:46 +01:00
Daniel Evans
e04f9a8d40
Move GameData from GameWorld
2015-04-18 01:11:17 +01:00
Daniel Evans
b672e41acf
Remove Logger ownership from GameWorld
2015-04-03 03:07:08 +01:00
Daniel Evans
d1e7dcdcd1
Overhaul Loader framework for Models
...
- Replace background model loader with generic background loader
- Replace ModelHandle object with generic resource handle
2015-04-03 03:04:50 +01:00
Daniel Evans
abf43f07c8
New File handling implementation
...
- move FileHandle into a separate header
- Implement FileIndex, a system to normalize filenames and sources
2015-04-03 03:04:50 +01:00
Daniel Evans
fe4926e5d6
Add object lifetime values, clean up spawned traffic
2015-02-18 16:00:55 +00:00
Daniel Evans
9407ee3135
Add test implementation of pedestrian spawning
2015-02-18 15:29:39 +00:00
Daniel Evans
2ccc1fc33c
Add initial TrafficDirector open spawn point methods
2015-02-17 01:31:20 +00:00
Daniel Evans
2344024f08
Text rendering
2015-02-07 22:55:06 +00:00
Daniel Evans
77f2277a68
Improved vehicle door dynamics with opening doors
2014-12-14 20:45:58 +00:00
Daniel Evans
25a3a0183b
Overhaul vehicle part system with VehicleObject::Part
2014-12-14 01:32:00 +00:00
Daniel Evans
330fa56b77
Fix animation test case
2014-12-12 00:36:45 +00:00
Daniel Evans
1fb8162a7c
Fix broken object data test cases
2014-12-11 18:34:39 +00:00
Daniel Evans
584618e991
Overhaul animation support with Skeleton class.
...
Move frame transform data into Skeleton instead of Animator.
Animator now responsible for mutating Skeleton state.
Skeleton is more flexible for things like vehicle skeletons.
2014-12-11 17:48:47 +00:00
Daniel Evans
7d92fbb9f2
Huge rwviewer changes for new objects.
...
+ Change to Object Viewer to list all object types
2014-09-19 00:10:05 +01:00
Daniel Evans
cfca1cbdc8
Refactor Object data into heirarchy
...
+ All Object Data classes inheirt from ObjectInformation which stores
the ID and class_type, which maps to the IDE name.
- Remove all object mappings except for objectTypes, which now stores
all of them.
2014-09-17 03:13:02 +01:00
Daniel Evans
c3956ac888
Refactor some text data loading to seperate class
2014-09-13 03:29:32 +01:00
Daniel Evans
f7398f17f8
Refactor character movement.
2014-08-26 22:54:26 +01:00
Daniel Evans
4d78cacd84
Improve CMake detection of platform libraries
2014-08-16 23:02:34 +01:00
Timmy Sjöstedt
70cadb7a86
Fixed another Bullet inclusion path.
2014-08-16 00:20:58 +02:00
Timmy Sjöstedt
460473f461
Link OpenGL with CMake find package.
2014-08-16 00:20:13 +02:00
Timmy Sjöstedt
a854a11dc3
Added linking to iconv
...
TODO make it cmake-y
2014-08-16 00:19:04 +02:00
Daniel Evans
ba7eb63941
Refactor and cleanup camera control.
...
rwengine
+ Make renderWorld() take a ViewCamera parameter.
+ add rotation and getView to ViewCamera
+ correct directions for vehicle and character movement.
rwgame
+ Remove GenericState
+ Add State::getCamera() to control the ViewCamera used for rendering
+ Clean up state camera control
+ Remove now unused view parameters from main
2014-08-12 21:15:26 +01:00
Daniel Evans
5aaead1974
Fix potential non-return in LoaderIMG
2014-08-11 18:16:18 +01:00
Daniel Evans
b1c82e3582
Fix compilation under clang, fix majority of warnings
2014-08-11 17:58:43 +01:00
Daniel Evans
6c78b0c3c5
Refactor DFF Loader, underlying stream handling
...
+ Fix some model related memory leaks
2014-08-04 22:24:37 +01:00
Daniel Evans
aa841c0ed3
Merge branch 'script-tool'
...
Conflicts:
rwengine/include/engine/GameObject.hpp
rwengine/include/engine/GameWorld.hpp
rwengine/include/render/GameRenderer.hpp
rwengine/src/render/GameRenderer.cpp
2014-07-30 13:55:39 +01:00
Daniel Evans
688ee493b4
Add GXT loading support and i18n of prints.
2014-07-28 06:20:39 +01:00
Daniel Evans
5b9c95d346
Add Initial Cutscene playback implementation
...
+ Add CutsceneData structures to store the data required.
+ Implement screen fading in and out (todo: splash screen fading)
+ Add GameData::openFile2() returns a handle to open file memory + size
+ Fix fog implementation
+ Add screenspace rect to GameRenderer for fades and cinematics
2014-07-28 02:27:55 +01:00
Daniel Evans
c3e2172f3b
Initial Script Machine implementation + some ops
2014-07-23 23:57:21 +01:00
Daniel Evans
c35c2c636a
Add thrown projectiles, support for queued deletion
2014-07-20 21:21:51 +01:00
Daniel Evans
770a87dd2b
Add correct collision response for molotov + rpg
2014-07-17 01:46:24 +01:00
Daniel Evans
f8f17db68f
add ProjectileObject with support for grenades
2014-07-14 01:29:05 +01:00
Daniel Evans
b8860722fd
Further implement weapons and pickups
...
Inventory can now by cycled
Weapon Pickups are created infront of the spawn
2014-07-04 21:06:56 +01:00
Daniel Evans
0214a29ca3
Implement character inventory items, with weapon
2014-06-29 22:14:46 +01:00
Daniel Evans
1673e439fd
Cleanup test
2014-06-28 17:20:49 +01:00