1
0
mirror of https://github.com/rwengine/openrw.git synced 2024-11-22 10:22:52 +01:00
Commit Graph

517 Commits

Author SHA1 Message Date
Filip Gawin
cfb0016e46 Add timescale debug info 2018-07-24 23:23:40 +01:00
Daniel Evans
2c7d27dd5b
Merge pull request #543 from ShFil119/final
Mark classes as final
2018-07-23 13:10:11 +01:00
mole99
5f2fe96167 Implement basic traffic
This includes spawning vehicles on the road and rudimentary traffic control with changing lanes and braking in front of characters
2018-07-19 21:41:13 +02:00
Filip Gawin
495c831972 Mark classes as final
It lets complier to make extra optimization.

See:
https://gcc.godbolt.org/#compilers:!((compiler:g6,options:'-O2+-Wall++-
xc%2B%2B+-
std%3Dc%2B%2B11',sourcez:MYGwhgzhAECC0G8BQAHArgIxAS2ALiWiOgDdsAnAFzTBFIHtsATaAMwAoBKaAXmgAYA3EgC%2BwpKEgwAQtDzR0WXHESpMOfIWIlGLDt1bYAdrWj0SAU3LlmF4WKQTwUaAGE5C9cvjJFGgsQMzGxcZpbWtvbiOsGs9PTs0gBk0BjcyIEYAHT69o4xLBhg5OyuKcDpWkTAOVz2QAA%3D%3D)),filterAsm:
(commentOnly:!t,directives:!t,intel:!t,labels:!t),version:3
2018-07-07 22:55:10 +02:00
Daniel Evans
83ee9ef568
Merge pull request #526 from madebr/rwlib_changes
Rwlib changes
2018-07-05 22:05:56 +01:00
Daniel Evans
9c22dbbc91
Merge pull request #523 from ShFil119/default_member_initializer
[Ready]Usage of default member initializer
2018-07-05 20:38:55 +01:00
Daniel Evans
caa1e1eee0
Merge pull request #508 from madebr/conan
Add support for Conan
2018-07-03 23:14:46 +01:00
Filip Gawin
76c15c2a82 Usage of default member initializer 2018-07-03 20:08:03 +02:00
Anonymous Maarten
062115f6bd rwgame+rwengine: get background from index + pass as rwfs::path 2018-06-30 04:03:20 +02:00
Anonymous Maarten
36149cf38e rwlib: rw/defines.hpp -> rw/debug.hpp 2018-06-30 04:03:20 +02:00
Daniel Evans
0b8407b618
Merge pull request #534 from ShFil119/icon
Add an SDL window icon to the executable
2018-06-30 01:06:12 +01:00
Filip Gawin
93c55057c8 Add an SDL window icon to the executable, thx @vflyson 2018-06-29 23:15:23 +02:00
Daniel Evans
4c357ad618
Merge pull request #493 from husho/pacman
Big'N'Veiny pickups
2018-06-29 21:15:17 +01:00
husho
f9fc588d64 Fixed: tests weren't working
Fixed: mission timer
Timer was going crazy due to missing 02d9 opcode, update timer 25 times per second

Fixed: mission timer
Don't beep on every timer update
2018-06-26 03:45:52 +03:00
Daniel Evans
7061813afd
Merge pull request #507 from husho/scmfix
Fix: terminate only mission scripts when starting new mission via debug menu
2018-06-26 00:43:19 +01:00
husho
92d2a614b7 Garages continuation 2018-06-24 02:43:24 +03:00
husho
1132a4ba3c Fixed: missions debug menu
starting a mission via debug menu terminated non mission scripts
2018-06-19 21:22:44 +03:00
NFS_MONSTR
f5f1fb3247 Implement some cheats and cheat activated message 2018-06-18 22:15:31 +03:00
husho
6d04746222 [Ready] Payphones (#498)
Payphones
2018-06-17 23:24:34 -05:00
Anonymous Maarten
b6a2b2181d cmake: do not override find modules but wrap them separately 2018-06-14 02:10:54 +02:00
Anonymous Maarten
8f70b36d6f cmake: include all dependencies at top of main CMakeLists.txt 2018-06-14 02:10:54 +02:00
Anonymous Maarten
d2844264d9 rwgame+tests: include SDL2 as "#include <SDL.h>" 2018-06-14 02:10:54 +02:00
husho
23072a5e99 Implement script timer (#500)
Added script timer
2018-06-12 13:05:50 -05:00
Anonymous Maarten
e3c0b00453 cmake: use GNUInstallDirs for install paths + install everything (optionally) 2018-06-08 18:30:25 +02:00
darkf
64ecec3650
Merge pull request #502 from husho/fade2
Fade fix part 2
2018-06-08 09:08:21 -05:00
husho
04c3b62f01 Load splash 2018-06-05 03:01:42 +03:00
husho
ca576ac3cf Refactor: moved getPlayer to World class 2018-06-03 03:40:59 +03:00
darkf
4a9444fdee
Merge pull request #489 from husho/fixawfulframerate
Fixed: accumulated time during pauses caused terrible framerate
2018-05-31 23:22:29 -05:00
darkf
04e857ba0d
Merge pull request #487 from NFSMONSTR/fix432
Fix #432
2018-05-31 23:13:28 -05:00
husho
950ed6d6c9
Minor changes 2018-05-26 22:32:33 +03:00
husho
74df3c7e38 Fixed: accumulated time during pauses, caused terrible framerate 2018-05-26 19:19:57 +03:00
Daniel Evans
b7d657b9ab
Merge pull request #449 from husho/pickups
[Ready] Got some pickups working
2018-05-25 12:56:11 +01:00
Daniel Evans
2b096eb228
Merge pull request #480 from husho/garages
[Ready] Garages
2018-05-24 17:35:40 +01:00
NFS_MONSTR
5da89a871b Fix #432 2018-05-23 22:45:39 +03:00
husho
d753d8cf20 Fixed warnings 2018-05-23 16:56:07 +03:00
husho
5d27eb33e9 Garages controller and basic functionality 2018-05-23 14:05:13 +03:00
Daniel Evans
c226432e88
Merge pull request #474 from NFSMONSTR/fix_loading_zonecylinder_texture
Fixed loading ZoneCylinder texture
2018-05-22 23:21:56 +01:00
husho
5c1dbbd8b6 Added pickups 2018-05-22 23:19:19 +03:00
husho
214095ba02 Improved game loop to support game speed 2018-05-22 22:40:51 +03:00
darkf
f17f2b8c7f
Merge pull request #475 from mole99/window-config
Added window configs
2018-05-21 17:12:35 -05:00
darkf
17077627fb
Merge pull request #447 from ShFil119/small_impr
[Ready] Perfect forwarding and some forgotten stuff
2018-05-21 17:07:01 -05:00
NFS_MONSTR
7d6bc6a22e Minor fixes 2018-05-19 17:47:27 +03:00
mole99
8d7cb91b60 Added window configs 2018-05-19 16:25:34 +02:00
NFS_MONSTR
b019d187d6 Fixed loading ZoneCylinder texture 2018-05-19 17:13:47 +03:00
Filip Gawin
93278ecb4e
Increase tickrate to 1/60
It should reduce level of perceptibility physics bugs and tearing non-interpolated objects.
2018-05-16 20:44:55 +02:00
Filip Gawin
4e1948c23c Rearrange passing args to functions/ctors
Kill extra shared_ptr by passing them using const reference.
Use perfect forwarding for strings.
Remove redundant std::move.
2018-05-16 19:17:13 +02:00
husho
ffeb83d56b Off by 1 error fix 2018-05-16 17:51:33 +03:00
husho
ee2421de41 Missions debug menu 2018-05-15 23:44:34 +03:00
darkf
0df204b430
Merge pull request #398 from ShFil119/various
Various, small changes
2018-04-30 04:42:41 -05:00
Tomi Lähteenmäki
9929f9304f Fix pausing cutscenes 2018-04-27 22:16:33 +03:00
Filip Gawin
2d5d70c1b2 More constexpr 2018-04-17 16:15:17 +02:00
Filip Gawin
2aa6d3b3b3 More nullptr 2018-04-17 16:15:17 +02:00
Filip Gawin
cf5efb9560 Use "= default" for trivial ctor/dtor 2018-04-17 16:15:17 +02:00
Anonymous Maarten
4ebc66b544 rwengine+rwgame: add missing includes 2018-02-13 22:15:26 +00:00
Anonymous Maarten
58f219c04d rwgame: rwgame needs an entry point (main) using vs2017 2018-02-13 22:15:26 +00:00
Christoph Heiss
45107f5afb Fix segfault on pressing Command+q in main menu. 2018-02-09 22:58:49 +00:00
Lucas Eriksson
51a547ee45 Create debugstate submenu weather. 2018-02-09 22:48:09 +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
73a5daab82 Use range loop 2018-02-06 19:19:09 +00:00
Florin9doi
e5694b383c Map flashing 2018-01-29 23:50:44 +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
fb58dfb082 rwengine: iwyu: reduce warnings in engine subdirectory 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
4a3a6daa9f Change type of GameBase dtor to virtual
There's no usage of this class, so
I've set dtor to pure virtual.
2018-01-08 22:35:21 +00:00
Filip Gawin
ef4456e623 size() -> empty()
Empty has always
computational complexity O(1).
2017-12-17 01:48:49 +00:00
Anonymous Maarten
6ab7f642ac rwgame: group command line arguments thematically
New output:
$ ./rwgame --help
I [Game] Build: 815c63cf
Generic options:
  -c [ --config ] PATH     Path of configuration file
  --help                   Show this help message

Window options:
  -w [ --width ] WIDTH     Game resolution width in pixel
  -h [ --height ] HEIGHT   Game resolution height in pixel
  -f [ --fullscreen ]      Enable fullscreen mode

Game options:
  -n [ --newgame ]         Directly start a new game
  -l [ --load ] PATH       Load save file

Developer options:
  -t [ --test ]            Starts a new game in a test location
  -b [ --benchmark ] PATH  Run benchmark from file
2017-11-17 00:50:50 +00:00
Anonymous Maarten
853c1a01b2 rwgame: remove unused unimplemented function definitions 2017-11-17 00:50:50 +00:00
Anonymous Maarten
07a5729cef rwgame: create matrix from vectors (instead of elements) 2017-11-17 00:50:50 +00:00
Anonymous Maarten
a9f009f97f rwgame: do not copy cheat names 2017-11-17 00:50:50 +00:00
Anonymous Maarten
5edead61d0 rwgame: create texture filename in buffer in one go 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
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
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
f06d9f5eb2 rwgame+rwviewer: fix -Wunused-variable warnings 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
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
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
282a6e2714 cmake: reformat rwgame/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
512ac6f5ee Fix double promotion 2017-10-25 01:17:46 +01:00
Anonymous Maarten
fa36c56813 rwgame: close window explicitly at end of event loop to free GL Context 2017-10-18 21:52:29 +01:00
Filip Gawin
bc8652baba Interpolating dynamic objects
How?
Calling stepsimulation each frame,
bullet interpolate vehicles and characters for us.

Removed unneeded code:
"float alpha = fmod(dt, GAME_TIMESTEP) / GAME_TIMESTEP;"
It looks like alpha shift is

I also removed unneeded variable clock
and refactored names to match bullet's example.

We should alse think about problem of
crossing the range of float.
2017-10-18 21:29:17 +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
Waritnan Sookbuntherng
c4f532fd56 Pause chase when the game paused 2017-10-13 19:12:30 +01:00
Daniel Evans
887e0333c8 Improve state access to always get the current scene
Prevents events being recieved by states that are no-longer in effect

Fixes #292
2017-09-17 00:45:58 +01:00
Anonymous Maarten
a1333360c5 rwlib: Add option to abort/break on failed checks or at request
- RW_ABORT/RW_ASSERT/RW_BREAKPOINT are only defined in debug mode
- the callback is needed to unlock the mouse when entering
    the debugger
2017-09-16 22:19:39 +01:00
darkf
1bca493dfa Remove last mman reference 2017-09-16 19:50:51 +01:00
Aldoxtor
7a8c602c75 add missing override 2017-09-12 01:40:31 +01:00
Anonymous Maarten
0308f809d6 config: Add the unknown keys to the what() message 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
Aldoxtor
81734ae2fe initialize some variables in constructor 2017-04-21 20:24:32 +01:00
vflyson
57ad566681 improve the ammo count display logic 2017-03-13 19:15:15 +00:00
vflyson
87fb087485 only allow to scroll through weapons if alive 2017-03-13 19:15:15 +00:00
Anonymous Maarten
d8cda62668 config: fix input string parsing 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