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

564 Commits

Author SHA1 Message Date
Daniel Evans
d64f9a9ffc Add compile time draw distance multiplier for testing.
In the future this should be a runtime option controlled by the game
configuration.
2016-05-21 14:32:23 +01:00
Daniel Evans
1a2a3811f9 Initialise suspension length to 0 2016-05-21 13:11:05 +01:00
Daniel Evans
ca92e1e0aa Fix crash when script attempts to delete null object. Closes #30 2016-05-21 03:00:41 +01:00
Daniel Evans
3e43eb61be Add spawn offset to script set object position function 2016-05-21 02:34:24 +01:00
Christoph Heiss
4c2c42ef6a Fix some OS X/Clang (build) errors.
For rwengine/src/engine/GameData.cpp, `#ifdef __unix__` is used, which
Clang on OS X does not define, thus not finding files while loading.
2016-05-20 16:28:47 +02:00
Timmy Sjöstedt
dff96b7293 Make OpenGLRenderer use correct preprocessor check for profiler 2016-05-20 01:40:11 +02:00
Daniel Evans
9f85f283cb CMake: FindSFML+FindMAD, set library paths as SYSTEM, remove dead stuff. 2016-05-19 22:30:06 +01: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
9bc535d243 Fix uninitalized read in cutscene loading 2016-05-02 17:20:42 +01:00
Daniel Evans
d2f254731a Increase warnings to pedantic and fix rwlib/rwengine warnings 2016-05-01 22:30:15 +01:00
Daniel Evans
0057f76630 fix uninitialized member in GameRenderer 2016-05-01 22:26:59 +01:00
Daniel Evans
185ba23f05 Fix all compiler warnings in rwengine. 2016-04-28 00:54:42 +01:00
Daniel Evans
637a6b97ab Fix compliler error with profiling disabled 2016-04-27 00:18:57 +01:00
Daniel Evans
84c276002c Improve rendering to support screen door transparency for LODs.
The LOD selection and fade logic has been changed to be more.. correct.
The fading now uses screen door transparency so the faded objects don't
need to be sorted with the actually transparent objects.
2016-04-26 23:40:43 +01:00
Daniel Evans
b0a2ae4da5 Implement a trivial profiler for perf. overview 2016-04-26 23:35:04 +01:00
Daniel Evans
3e9b0c64e4 Re-implement object rendering using a depth-sorted approach.
This moves the object rendering logic into ObjectRenderer. This makes
GameRenderer a bit smaller.

There are some rendering logic decisions that haven't been brought
back yet since they may be better placed elsewhere.
2016-04-19 01:20:54 +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
66aed023b2 Remove Loader.hpp since it wasn't used for anything 2016-04-14 23:33:49 +01:00
Daniel Evans
3af1c37f5e Garage vehicle rotations are just directions. 2016-04-14 23:30:05 +01:00
Daniel Evans
8cd50fadf0 Remove mHealth, clean up code & hook up character health & armour 2016-04-14 01:23:21 +01:00
Daniel Evans
07f7b19ca2 Make it possible to fire weapons again 2016-04-13 21:16:27 +01:00
Daniel Evans
46621093f9 Initial chase scene implementation, opening cutscene chase works 2016-04-13 01:47:19 +01:00
Daniel Evans
7888f05ca4 Re-implement map rendering with nice circular minimap 2016-04-12 01:02:09 +01:00
Daniel Evans
93bf5c6eed Add more opcodes to fix unimplemented opcode crash 2016-04-10 22:27:44 +01:00
Daniel Evans
2d510613fc Load player inventory information 2016-04-10 22:25:50 +01:00
Daniel Evans
3663536714 Copy health and armour from loaded save games 2016-04-10 19:21:23 +01:00
Daniel Evans
691bba5dca New inventory implementation and split char state 2016-04-10 18:57:40 +01:00
Daniel Evans
379f3685a7 Add textured quad rendering function and improve text rendering slightly 2016-04-10 18:48:38 +01:00
Daniel Evans
5ef12d6a40 Adjust text kerning for numbers and colons 2016-04-10 05:53:16 +01:00
Daniel Evans
00db7cef3e Add unimplemented message for opcode 0x014D 2016-04-10 04:47:07 +01:00
Daniel Evans
19d98bec70 Load all data containing sections of save files 2016-04-10 04:38:31 +01:00
Daniel Evans
909f00b079 Clean up game state structure to better match save format 2016-04-09 22:29:32 +01:00
Daniel Evans
d7604531eb Migrate first save state struct and update loading 2016-04-09 02:21:22 +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
e2bd2b704e Fix crash caused by thread clobbering 2015-07-09 18:29:38 +01:00
Daniel Evans
243bfb18a8 Overhaul breakpoint handling 2015-07-09 13:58:14 +01:00
Daniel Evans
5461f1a5bb Improve debugger functionality and display
* Display Breakpoint information
* Current instruction is hilighted
2015-07-07 03:48:32 +01:00
Daniel Evans
4ce275c381 Improve debug server functionality and appearence 2015-07-06 00:54:13 +01:00
Daniel Evans
868883fd36 Add Debugger functionality
* Include Angluar JS for UI
* Improve styling slightly
* Add Interrupt/Continue buttons and api URLs
* List of threads when game is paused
2015-07-03 02:52:43 +01:00
Daniel Evans
bf1c8bb0ca Fix crashes from mixing player / character references 2015-07-01 23:16:06 +01:00
Daniel Evans
49695a2dc6 Further game save loading
* Give object types individual id namespaces.
2015-06-24 01:48:26 +01:00
Daniel Evans
7ceaac370c Load Weapon inventory data from save files 2015-06-14 21:52:47 +01:00
Daniel Evans
031844c56f Fix save loading path 2015-06-14 18:18:07 +01:00
Daniel Evans
77ca5d96ea Expand Save Game loading to garage data 2015-06-14 18:08:55 +01:00
Daniel Evans
cd7bb3af15 Proof of concept loading save data from save files 2015-06-14 02:44:51 +01:00
Daniel Evans
5399948e05 Merge branch 'rwng' of github.com:danharibo/openrw into rwng 2015-05-18 02:44:56 +01:00
Daniel Evans
cfa4f37479 Enable CharacterObject::isAlive() 2015-05-18 02:40:07 +01:00
Daniel Evans
228db73c7f Update readme informations 2015-05-10 23:57:13 +01:00
Daniel Evans
c1c2d7341f Make certain AI Behviours and opcodes use sprint 2015-05-09 04:40:41 +01:00
Daniel Evans
279407b254 Fix implementation of object rotation opcode 2015-05-09 04:40:10 +01:00
Daniel Evans
98ce9d90e1 Implement some text based markup 2015-05-09 04:02:15 +01:00
Daniel Evans
8e82604fc3 Fix area indicator rendering.
* Increase alpha value from 1/255.
* Don't clear tick data unless the game is updating.
2015-05-09 00:49:28 +01:00
Daniel Evans
1fe572a7cc Remove not really working vehicle anti-flip 2015-05-09 00:26:24 +01:00
Daniel Evans
8b18712d1f Merge branch 'rwng-disassembly' into rwng
Conflicts:
	rwgame/RWGame.hpp
	rwgame/ingamestate.cpp
2015-05-03 23:31:45 +01:00
Daniel Evans
a690c8c08c Implement Script Disassembly 2015-05-03 18:09:25 +01:00
Daniel Evans
53d2e318a3 Ensure icons.txd is loaded for blip arrow 2015-05-03 05:32:08 +01:00
Daniel Evans
91065b6af4 Initial Save + Load implementation
* Fix VM Global Addressing
* Modify VM structures to simplify storage
* Add explicit GameWorld::createPlayer() method
* Move gameTime to GameState for storage
* Add SaveGame class for reading + writing
* New Dependancy: cereal
2015-05-03 05:23:44 +01:00
Daniel Evans
d6eaf6e1f9 Fix double free crash in delayed object deletion 2015-05-02 20:37:20 +01:00
Daniel Evans
b6bd774a06 Fix ScriptMachine behaviour and global addressing 2015-05-01 06:28:39 +01:00
Daniel Evans
d4f0d7dc0d Update VM var size, expose threads 2015-05-01 04:50:33 +01:00
Daniel Evans
a7da8ea424 Remove raw GameObject pointer usage in GameState 2015-05-01 03:53:42 +01:00
Daniel Evans
60cf899c1e Add GameWorld::findObject(GameObjectID) 2015-05-01 03:52:57 +01:00
Daniel Evans
5cfed3a667 Correct broken test 2015-05-01 02:05:49 +01:00
Daniel Evans
85b9378ab0 Add documentation for ScriptMachine 2015-05-01 01:06:21 +01:00
Daniel Evans
968544ce48 Implement GameObject ID referencing within the VM 2015-04-30 16:08:23 +01:00
Daniel Evans
5d3ac6218e Implement Game Object ID allocation 2015-04-29 21:03:53 +01:00
Timmy Sjöstedt
ac18d0a11b Include glm header for distance2() 2015-04-27 18:49:47 +02:00
Daniel Evans
25f62a0a47 Refactor GameWorld into GameState
+ GameState now contains a GameWorld point to store the runtime world
data
2015-04-27 15:31:39 +01:00
Daniel Evans
0507bfdae6 Fix Dynamic objects not visually moving 2015-04-27 04:12:58 +01:00
Daniel Evans
85b1ab120f Move GameState out of GameWorld ownership 2015-04-27 03:55:18 +01:00
Daniel Evans
1daa5a6fb2 Move GameObject to objects directory 2015-04-27 02:09:56 +01:00
Daniel Evans
d7e122306a Refactor Instance path data into ObjectData 2015-04-24 20:22:39 +01:00
Daniel Evans
5db4c28f04 Refactor Object Definition information to GameData 2015-04-24 18:10:42 +01:00
Daniel Evans
4b2fbbd3d8 Fix AI Graph discombobulation and debug rendering 2015-04-20 02:19:30 +01:00
Daniel Evans
e04f9a8d40 Move GameData from GameWorld 2015-04-18 01:11:17 +01:00
Daniel Evans
8ff137017c Simplify Character Movement 2015-04-14 23:03:34 +01:00
Daniel Evans
367b40d868 Merge branch 'rwng' of bitbucket.org:danharibo/openrw into rwng 2015-04-14 10:33:16 +01:00
Daniel Evans
1827b9cca3 Restore rwviewer to functional state 2015-04-13 01:48:29 +01:00
Daniel Evans
97afc19cfb Add Improved Profiling statistics 2015-04-12 19:47:47 +01:00
Daniel Evans
4cf36b8fd6 Add more rendering metrics for GL performance 2015-04-09 23:54:56 +01:00
Daniel Evans
a0446c0ead Fix pedestrians spawning on vehicle nodes 2015-04-06 18:59:37 +01:00
Daniel Evans
dd7e487a55 Improve DrawParameters to support multiple textures 2015-04-06 14:36:23 +01:00
Daniel Evans
3afc5e38fe Add grouping of gl calls with KHR_debug 2015-04-06 13:43:53 +01:00
Daniel Evans
c6664a5a2d Improve static InstanceObject rendering performance
* Cull against a grid instead of free objects
* Async model loading is disabled as model bounds are required
2015-04-06 04:06:35 +01:00
Daniel Evans
4573b88a5a Improve AIGraph performance with a grid-based index 2015-04-05 21:35:45 +01:00
Daniel Evans
861f36bdde Improve TrafficDirector performance with character list 2015-04-05 18:45:03 +01:00
Daniel Evans
66b7c878c1 Improve game text behaviour
* Fix messages not being cleared
* Implemented clearing help messages
2015-04-05 02:08:51 +01:00
Daniel Evans
c7376273b4 Change handling again 2015-04-05 01:34:11 +01:00
Daniel Evans
bfd85878fd Fix dynamic parts when warping vehicles 2015-04-04 21:59:03 +01:00
Daniel Evans
2e9962ef26 Re-implement functional character jumping 2015-04-04 21:50:08 +01:00
Daniel Evans
27c6afba31 Improve character dynamics, step behaviour 2015-04-04 21:23:53 +01:00
Daniel Evans
2f2551bc47 Improve vehicle handling 2015-04-04 20:32:43 +01:00
Daniel Evans
6b38a3e267 Move CollisionInstance into dynamics 2015-04-04 20:11:48 +01:00
Daniel Evans
2f2e099ca6 Merge ClosestNotMeRaycastCallback into header 2015-04-04 20:00:59 +01:00
Daniel Evans
1d3bcfe42b Optimise AI graph construction and traffic spawning 2015-04-04 17:03:06 +01:00
Daniel Evans
7a62c25fbc Add pedestrian population limit to TrafficDirector 2015-04-04 15:05:16 +01:00
Daniel Evans
853623e7f2 Regenerate Character skeleton on Model change 2015-04-04 14:13:04 +01:00
Daniel Evans
e5e4345170 Document ScriptMachine debugging methods 2015-04-04 13:53:11 +01:00
Daniel Evans
159510cace Add breakpoints to ScriptMachine, remove from GameWorld.
+ Adds breakpoints on program counter values to the ScriptMachine.
+ Adds breakpoint handler for acting on breakpoints
+ Remove GameWorld::script and make RWGame responsible for script
2015-04-04 03:12:28 +01:00
Daniel Evans
a20d170d16 Optimize AIGraph Slightly 2015-04-03 16:15:58 +01:00
Daniel Evans
95b6e6a676 Improve pausing behaviour with State::shouldWorldUpdate() 2015-04-03 15:38:24 +01:00
Daniel Evans
bc54fac53a Merge branch 'rwng' of bitbucket.org:danharibo/openrw into rwng
Conflicts:
	rwgame/RWGame.cpp
2015-04-03 03:17:14 +01:00
Daniel Evans
8b1f539b12 Add LoaderDFF normal calculation for models without 2015-04-03 03:07:08 +01:00
Timmy Sjöstedt
33e9920b48 Initialized physRaycater to null, as to not delete an uninitialized pointer later. 2015-04-03 03:07:08 +01:00
Daniel Evans
e50f2226a9 Implement opcode 2015-04-03 03:07:08 +01:00
Daniel Evans
b672e41acf Remove Logger ownership from GameWorld 2015-04-03 03:07:08 +01:00
Daniel Evans
b280aac859 Remove unused struct from GameWorld 2015-04-03 03:07:08 +01:00
Daniel Evans
97807f24b7 Add method to retrieve current draw settings from Renderer 2015-04-03 03:07:08 +01:00
Daniel Evans
49a8b9b2f4 Change how draw calls are counted 2015-04-03 03:07:08 +01:00
Daniel Evans
6851c5e011 Improve graphics performance
+ Add Framebuffer rendering to store data
+ Re-implement water using projected grid aproach
2015-04-03 03:07:07 +01:00
Daniel Evans
f655e454d6 Implement new VisualFX system for particles etc.
- VisualFX stores data about effects like particles and lighting
- Only particles initial implementation
- World stores active VisualFX
2015-04-03 03:04:50 +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
ce4b8fc83a Remove old file indexing system and IO handling
- Use FileIndex inside GameData to handle normalisation
- Remove old raw pointer API for loading data
2015-04-03 03:04:50 +01:00
Daniel Evans
c264e78696 Replace most cout/cerr prints with logging output 2015-04-03 03:04:50 +01:00
Daniel Evans
a967e190de Remove GameRenderer from GameWorld
- Particle rendering is broken, since objects can't access renderer
2015-04-03 03:04:50 +01:00
Daniel Evans
dfd68abd8e Add new Logger system.
- Supports multiple log recievers.
- Onscreen log needs to be re-written.
- Replaces GameWorld::logX().
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
3801e69e81 Improve TextRenderer kerning and performance 2015-04-03 02:56:37 +01:00
Daniel Evans
a773262328 Fix crash in SoundManager when pausing 2015-04-03 01:26:55 +01:00
Daniel Evans
4faf07cba3 Fix character inWater behaviour 2015-04-01 04:36:52 +01:00
Daniel Evans
15e2082ebc Add LoaderDFF normal calculation for models without 2015-03-30 22:16:43 +01:00
Timmy Sjöstedt
b55cda56b1 Initialized physRaycater to null, as to not delete an uninitialized pointer later. 2015-03-30 18:25:58 +02:00
Daniel Evans
b9462e077d Implement opcode 2015-03-30 03:34:03 +01:00
Daniel Evans
3975816164 Remove Logger ownership from GameWorld 2015-03-30 02:45:58 +01:00
Daniel Evans
798b24ae83 Remove unused struct from GameWorld 2015-03-30 02:03:38 +01:00
Daniel Evans
78253c59ce Add method to retrieve current draw settings from Renderer 2015-03-29 23:18:27 +01:00
Daniel Evans
980ef71e96 Change how draw calls are counted 2015-03-28 13:54:28 +00:00
Daniel Evans
30e059a0b6 Improve graphics performance
+ Add Framebuffer rendering to store data
+ Re-implement water using projected grid aproach
2015-03-28 13:42:29 +00:00
Daniel Evans
2985a70354 Implement new VisualFX system for particles etc.
- VisualFX stores data about effects like particles and lighting
- Only particles initial implementation
- World stores active VisualFX
2015-03-06 16:55:46 +00:00
Daniel Evans
46cd7b8f51 Overhaul Loader framework for Models
- Replace background model loader with generic background loader
- Replace ModelHandle object with generic resource handle
2015-03-06 04:38:22 +00:00
Daniel Evans
dfe6ec3eaa Remove old file indexing system and IO handling
- Use FileIndex inside GameData to handle normalisation
- Remove old raw pointer API for loading data
2015-03-06 01:40:29 +00:00
Daniel Evans
7e83b815c4 Replace most cout/cerr prints with logging output 2015-03-05 17:29:33 +00:00
Daniel Evans
cf0c37dcc2 Remove GameRenderer from GameWorld
- Particle rendering is broken, since objects can't access renderer
2015-03-05 16:36:14 +00:00
Daniel Evans
536b3f9f0c Add new Logger system.
- Supports multiple log recievers.
- Onscreen log needs to be re-written.
- Replaces GameWorld::logX().
2015-03-05 03:37:13 +00:00
Daniel Evans
25f28dbb42 New File handling implementation
- move FileHandle into a separate header
- Implement FileIndex, a system to normalize filenames and sources
2015-02-26 03:57:28 +00:00
Daniel Evans
7f2c5a4645 Initial Traffic wandering algorithm (pedestrians only) 2015-02-26 01:15:17 +00: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
be023b5093 Overhaul texture handling, add TextureData handles.
+ Use shared ptrs to track loaded texture handles
+ Cache textures on models to avoid lookups
2015-02-16 00:36:11 +00:00
Daniel Evans
9eb4c62a04 Improve HUD and UI rendering
+ Add names for some styles to reduce confusion
+ Move some HUD drawing into a seperate file
2015-02-15 12:41:51 +00:00
Daniel Evans
9855bf2967 Improve map rendering, UI viewport
+ UI Viewport is now window sized
+ Map renderer now supports rotating
2015-02-15 01:41:24 +00:00
Daniel Evans
2344024f08 Text rendering 2015-02-07 22:55:06 +00:00
Daniel Evans
538d0c02f9 Add city.wav 2015-02-04 17:16:46 +00:00
Daniel Evans
6cd36bda43 Add arrow above blip target objects / coordinates 2015-01-29 22:39:26 +00:00
Daniel Evans
eed2377e50 Improve vehicle dynamics
- Fix bouyancy not working at all
- Make it difficult to flip a vehicle going around corners
2015-01-28 01:55:35 +00:00
Daniel Evans
dda2d5a245 Make disable input opcode take effect 2015-01-27 15:25:45 +00:00
Daniel Evans
7568eb8d7f Declare opcodes needed to start Luigi mission 2 2015-01-27 15:21:36 +00:00
Daniel Evans
6a4afea4e6 Make it possible to start the 2nd Luigi mission 2015-01-27 15:02:10 +00:00
Daniel Evans
6e1739138d Add big print with number 2015-01-27 13:59:02 +00:00
Daniel Evans
c87a4a7cb1 Re-allocate audio clips when a new clip is loaded 2015-01-27 13:09:16 +00:00
Daniel Evans
abb6576785 Add implementation for more generic pickups 2015-01-27 02:38:08 +00:00
Daniel Evans
206c61e326 Merge branch 'master' of bitbucket.org:danharibo/openrw 2015-01-27 00:50:55 +00:00
Daniel Evans
cafb002d3b Add more blip opcodes, with sprites 2015-01-27 00:48:09 +00:00
Daniel Evans
5271b6e78b Merge branch 'master' of bitbucket.org:danharibo/openrw 2015-01-26 14:40:17 +00:00
Daniel Evans
d7d52dc892 Improve cutscenes to load wav audio too 2015-01-26 14:40:09 +00:00
Daniel Evans
0d730547fa Fix issues with HUD and widescreen mode 2015-01-26 01:32:21 +00:00
Daniel Evans
91cd7c7edd Add blips and some opcodes 2015-01-26 01:16:25 +00:00
Daniel Evans
87ca358717 Adjust game map a little more 2015-01-25 18:42:29 +00:00
Daniel Evans
cbebbbed87 Minor adjustments to the map 2015-01-25 18:31:22 +00:00
Daniel Evans
87435a2576 Add map renderer and ingame radar display 2015-01-25 18:25:55 +00:00
Daniel Evans
9f1162a945 Add entering to any passenger seat 2015-01-23 17:54:17 +00:00
Daniel Evans
a0eef23da8 Re-add cutscene widescreen; eject occupants properly 2015-01-23 17:44:28 +00:00
Daniel Evans
1961661d14 Implement visible goals for locating characters 2015-01-23 17:18:16 +00:00
Daniel Evans
da2ae998f9 Implement object visibility control 2015-01-23 12:25:15 +00:00
Daniel Evans
5d41002b36 Further improve vehicle door dynamics
+ Rename some part target angle names
+ Improve behaviour of opening and closing doors
+ Use different animations for right hand side of vehicle
2015-01-23 02:03:21 +00:00
Daniel Evans
4ea6e14299 Improve vehicle door dynamics
+ Vehicle doors should move in the right direction now
+ Fix debugging draw class for bullet
2015-01-22 20:16:28 +00:00
Daniel Evans
3f40ba0e18 Add AI Goal system, FollowLeader goal.
+ Add support for setting leader, e.g. Misty follows you during "Luigi's Girls".
2015-01-22 15:00:30 +00:00
Daniel Evans
0c84873be2 Add more opcodes, can now finish mission 1 2015-01-22 11:11:16 +00:00
Daniel Evans
185687b1b5 Add and improve functionality for first mission.
+ Improve GoTo activity behaviour, jumping to target.
+ Fixed crash on non-existing audio file
+ Added correct conditional flag to conditional opcodes
+ Fixed seat state on exit from non 0th seat
+ Implement many opcodes
2015-01-21 20:40:31 +00:00
Daniel Evans
eef4a2d87e Move object script functions to seperate module
Not all script functions involving objects have been moved, some
further movement is expected.
2015-01-19 12:20:35 +00:00
Daniel Evans
39ff9df337 Refactor script system to bind named functions.
Replace ugly macros with named functions and binding to script modules
2015-01-16 02:32:31 +00:00
Daniel Evans
698f5a9d91 Fix some Vehicle behaviour
* Remove characters from vehicle occupants on destruction

* Fix Player being warped back to vehicle on critical reset
2014-12-18 03:31:09 +00:00
Daniel Evans
857951d7df Destroy Vehicle Parts that are still active 2014-12-18 02:38:36 +00:00
Daniel Evans
ed62b758d2 Implement more opcodes
* Is Vehicle Flipped, Create character in vehicle, get time of day and many more
2014-12-17 22:53:25 +00:00
Daniel Evans
ff04daf633 Fix Vehicle Collision objects not being destroyed 2014-12-17 19:31:01 +00:00
Daniel Evans
e3c78fd09c Add more opcodes 2014-12-17 00:39:52 +00:00
Daniel Evans
7963becbd1 Add more opcodes and vehicle handling 2014-12-16 19:17:22 +00:00
Daniel Evans
2709e7d252 Implement and declare more opcodes 2014-12-16 03:30:51 +00:00
Daniel Evans
7e4dea5139 More Script Engine improvements and fixes
* Implement and declare many more opcodes
* Fix incorrect behaviour of If / else jump constructs.
2014-12-16 03:03:15 +00:00
Daniel Evans
0ddc8458d1 Add vehicle generator data and opcodes. 2014-12-16 03:03:15 +00:00
Daniel Evans
a55bcc557d Implement some AI and zone opcodes
* Add disabled flag to AI nodes

* Move ZoneData structure into own file

* Add Gang density to ZoneData.
2014-12-16 03:03:04 +00:00
Daniel Evans
646d0c67fc Improve Script debugging output messages 2014-12-15 20:44:36 +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
27104f7b79 Add Jump activity to improve jump dynamics 2014-12-13 01:24:06 +00:00
Daniel Evans
13192c8524 Improve animation interpolation 2014-12-13 00:59:23 +00:00
Daniel Evans
e0b0c4f168 Improve animation interpolation 2014-12-12 12:30:23 +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
668848952b Initial rendering refactor 2014-08-22 14:29:46 +01:00
Daniel Evans
4d78cacd84 Improve CMake detection of platform libraries 2014-08-16 23:02:34 +01:00
Timmy Sjöstedt
7dde2af9f3 Added <string> to ScriptTypes. 2014-08-16 00:21:12 +02:00
Timmy Sjöstedt
dd9863bda3 Add numeric header for DFF loader. 2014-08-15 23:58:03 +02:00
Timmy Sjöstedt
dfafa9e218 Fixed Bullet include paths. 2014-08-15 23:49:58 +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
2f6417e3d0 Fix crash in InstanceObject::changeModel 2014-08-11 20:12:20 +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
97fee9b4a8 Fix many memory leaks code duplication
+ Move collision data construction into CollisionInstance
+ CollisionInstance also handles related cleanup

+ Fix leaks from AINodes
2014-08-10 23:31:59 +01:00
Daniel Evans
d2e19fbdb3 Refactor SubGeometry to use a vector for storage
+ Use memcpy to populate subgeometry data
2014-08-10 20:09:54 +01:00
Daniel Evans
d0188880d3 Fix various warnings 2014-08-06 00:23:50 +01:00
Daniel Evans
6353822f48 Fix character animation 2014-08-05 15:09:42 +01:00
Daniel Evans
eea4118eed Change threading in naieve attempt at fixing crash 2014-08-05 13:41:44 +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
be347e88dc Remove accidentally commited files 2014-08-03 17:51:43 +01:00
Daniel Evans
88008a448b Improve MADStream code, delay audio start. 2014-08-03 17:50:40 +01:00
Daniel Evans
8d839a9e10 Fix missing variable in ObjectData block 2014-08-03 17:42:31 +01:00
Daniel Evans
5a472941f1 Add more info output on shader compilation, fix shaders 2014-08-03 17:29:53 +01:00
Daniel Evans
d270b75141 Improve rendering performance
+ Fix some bad values for glActiveTexture()
+ Move work processing queue into update() to avoid clogging the render
  thread
+ Add some extra values for frames and geometry drawn
2014-08-03 13:37:11 +01:00
Daniel Evans
6a1dacaa54 Implement object opacity and instance fade-out 2014-08-02 21:35:58 +01:00
Daniel Evans
c7256e60fb Implement fade to splash screen 2014-08-01 22:03:00 +01:00
Daniel Evans
97ad0414f7 Add Cutscene Audio, via libmad
+ MADStream probably needs a good look over, for saftey's sake
2014-08-01 21:04:58 +01:00
Daniel Evans
51fa23a04c Implement more correct behaviour for "switch model" opcode 2014-08-01 15:48:11 +01:00
Daniel Evans
a3764efdfd Normalize FOV with aspect ratio 2014-08-01 15:48:05 +01:00
Daniel Evans
8ae618913d Implement more opcodes, fix behaviour in others
+ Fix Model reference offsets (indicated by negative values)
+ Fix Create Instance to use SCM models
+ Add Change instance model opcode
2014-08-01 15:00:36 +01:00
Daniel Evans
c0dc78eb2c Refactor opcodes 2014-08-01 00:33:38 +01:00
Daniel Evans
4214162ed0 Implement some text related opcodes 2014-07-30 15:48:51 +01:00
Daniel Evans
81712a12b1 Use destroyQueued instead of iteration for cutscene cleanup 2014-07-30 13:57:41 +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
02838ce3b4 Implement cutscene objects and animations (sans skinning)
+ Add CutsceneObject for non-interactive animating objects
+ Implement HIER section to load cutscene object data
2014-07-30 13:46:14 +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
3c665e7d2b Add many opcodes, implement some of them.
+ Fix thread-relative jumps
+ GameObject::setHeading(degrees) sets object rotation from a heading.
+ Add More GameState from opcodes.
+ Decouple game hours from the engine clock
+ Add VehicleObject::setRotation()
+ Add GameWorld::getGroundAtPosition(pos) for OpCodes
+ Fix Handling of fixed-point SCM parameters
+ Update IngameState to use GameState::player if it exists
+ Add skip-time button to skip opening cutscene (F12)
2014-07-27 00:44:21 +01:00
Daniel Evans
fa3f2cc3ea Add more opcodes, implement some 2014-07-25 03:38:47 +01:00
Daniel Evans
c3e2172f3b Initial Script Machine implementation + some ops 2014-07-23 23:57:21 +01:00
Daniel Evans
e0a0c4882f Refactor Script loading into engine 2014-07-21 00:34:28 +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
a8c2312b87 Add corona to pickups 2014-07-09 22:28:25 +01:00
Daniel Evans
4c9e2cb24b Remove and re-home debug functionality
Remove the unused command list from rwgame
2014-07-09 20:47:20 +01:00
Daniel Evans
e5cc47132f Initial documentation pass
Add a nice doxygen file.
2014-07-09 05:04:48 +01:00
Daniel Evans
67fbc5afa3 Improve weapon and animation dynamics
Fix issue with 0-rotation animation frames
Improve weapon shot origin alignment (still bad)
2014-07-09 02:06:59 +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
ddf4bd3585 Fix weird nvidia shader compiler error 2014-07-02 13:26:37 +01:00
Daniel Evans
aa7f77009c Refactor objects into a single set to DRY 2014-07-01 23:04:23 +01:00
Daniel Evans
3c57d9278c Refactor object rendering into seperate functions 2014-07-01 22:00:45 +01:00
Daniel Evans
0e48687c27 InventoryItem virtual dtor 2014-06-30 02:19:40 +01:00
Daniel Evans
39cf86f056 Improve vehicle and item interaction 2014-06-30 02:18:02 +01:00
Daniel Evans
799127f8f8 Implement weapon firing, debug tracers 2014-06-30 01:56:45 +01:00
Daniel Evans
0214a29ca3 Implement character inventory items, with weapon 2014-06-29 22:14:46 +01:00
Daniel Evans
87a04d9119 Added weapon scan for HITSCAN
WeaponScans contain data required to affect objects in the world with
weapon damage
2014-06-28 03:22:53 +01:00
Daniel Evans
1244a87665 Add weapon data loading 2014-06-26 17:55:17 +01:00
Daniel Evans
a4591695e9 Flatten low quality water 2014-06-25 01:12:32 +01:00
Daniel Evans
3ccf5ebaa2 Door and bonnet dynamics 2014-06-20 00:47:45 +01:00
Daniel Evans
8cbf1eaefe Animator procedural frame orientation 2014-06-19 19:18:34 +01:00
Daniel Evans
15c41d137d Improve material rendering, fix texture loading 2014-06-19 16:31:01 +01:00
Daniel Evans
74d6bed7f3 Improve vehicle dynamics
Decrease margin on vehicles and world to mitigate poping
Improve frame damage response
2014-06-18 23:05:59 +01:00
Daniel Evans
abf91c9a3c Fix world <=> Vehicle <=> vehicle collision 2014-06-18 07:32:08 +01:00
Daniel Evans
692cfaa335 Fix texture lookup index
Alpha texture name is actually important.
2014-06-18 06:59:24 +01:00
Daniel Evans
9f257ea4c4 Animator update and vehicle frame damage
Refactor Animator to handle frame visibility, removing isFrameVisible()
Make frames be removed if they are damaged due to physics.
2014-06-18 05:08:15 +01:00
Daniel Evans
3a156063d8 Improve renderer and LOD handling 2014-06-17 21:46:54 +01:00
Daniel Evans
9bd39fa89d Improve vehicle behaviour and water interaction 2014-06-17 00:48:19 +01:00
Daniel Evans
4ce4465cc7 Fix vehicle collision triangles 2014-06-16 01:39:44 +01:00
Daniel Evans
7063952d56 Redo uprooting dynamics 2014-06-16 01:29:36 +01:00
Daniel Evans
0a3167d1e9 Refactor shader init and source 2014-06-15 02:12:45 +01:00
Daniel Evans
014bff2a4e Add water dynamics to dynamic instances 2014-06-15 01:34:13 +01:00
Daniel Evans
bec157c598 boat driving force 2014-06-14 20:11:53 +01:00
Daniel Evans
d437e9697e Improve water dynamics and rendering 2014-06-14 18:48:14 +01:00
Daniel Evans
2c16134abd Initial, unstable, water dynamics 2014-06-13 21:54:17 +01:00
Daniel Evans
77aa71df7e Improve water rendering 2014-06-12 00:15:05 +01:00
Daniel Evans
65b5c84b92 Initial dynamic object implementation 2014-06-11 21:00:53 +01:00
Daniel Evans
0cdbb0c09c Fix multi-clump LOD instances 2014-06-10 20:53:50 +01:00
Daniel Evans
04de3c1a8f Fix compiler warnings 2014-06-10 17:51:55 +01:00
Daniel Evans
e060b6d0b1 Fix root frame index bug 2014-06-08 22:40:46 +01:00
Daniel Evans
208a2a9897 Primitive water rendering 2014-06-08 19:04:47 +01:00
Daniel Evans
62d2658c2d Limit vehicle top speeds 2014-06-07 16:38:33 +01:00
Daniel Evans
b2e1c0fad2 Improve vehicle dynamics 2014-06-07 04:11:20 +01:00
Daniel Evans
891b12272c Rename more classes to better names 2014-06-06 17:17:39 +01:00
Daniel Evans
439749e34f Rename Object classes and files 2014-06-06 15:22:26 +01:00
Daniel Evans
61931145fe Threaded model and texture loading 2014-06-06 13:12:20 +01:00
Daniel Evans
f24ceeb42f Overhaul worker interface 2014-06-04 11:53:11 +01:00
Daniel Evans
51e4fb9989 Data Loader interface 2014-06-04 06:02:41 +01:00
Daniel Evans
b99314939b Vehicle exiting animation 2014-06-02 22:18:30 +01:00
Daniel Evans
d56a3badc0 Overhaul animation system; tick alpha
Animators now store Frame keyframes more sensibly
Animators can interpolate between two keyframes on an alpha
Add tick alpha value to the rendering pipeline
2014-06-02 04:58:41 +01:00
Daniel Evans
8e8aef8890 Allow animating with the root translation 2014-06-02 00:08:48 +01:00
Daniel Evans
3be84c02c1 Remove string comparision from getFrameMatrix 2014-06-01 20:18:52 +01:00
Daniel Evans
602218579c Make it possible to interrupt activities 2014-06-01 18:44:43 +01:00
Daniel Evans
6d604ffec0 Fixed TEXDICTION and wheel rendering 2014-06-01 17:41:09 +01:00
Daniel Evans
624fc737d3 Add debug menu vehicle list 2014-06-01 13:17:35 +01:00
Daniel Evans
6eb45bc710 Fix crash when jumping without character 2014-05-31 20:30:03 +01:00
Daniel Evans
12f9bf08a9 Remove some comments 2014-05-31 19:47:04 +01:00
Daniel Evans
38077939bc Fix wheels being not rotated 2014-05-31 19:45:29 +01:00
Daniel Evans
c8f5e7ead2 Fixed more broken vehicle interaction 2014-05-31 19:22:43 +01:00
Daniel Evans
052ce629c4 Refactor Animator to support multiple animations 2014-05-31 12:15:20 +01:00
Daniel Evans
04842a628a Primitive debug menu; vehicle enter animation 2014-05-31 08:18:50 +01:00
Daniel Evans
d7b738cdc1 Replace Activity switch with objects 2014-05-29 11:12:40 +01:00
Daniel Evans
532738077e Initial shift to AIController controlling 2014-05-29 09:34:59 +01:00
Daniel Evans
c5451f5fd4 Fix compiler errors and test problems 2014-05-25 22:30:50 +01:00
Daniel Evans
f289b6d0b0 Connected animation translation to Character movement 2014-03-02 10:38:50 +00:00
Daniel Evans
411b913025 Fixed RT and RTS frame matrix order 2014-03-01 11:30:01 +00:00
Daniel Evans
52d90a9b26 Animations working again 2014-03-01 11:19:33 +00:00