Commit graph

1292 commits

Author SHA1 Message Date
077b2bba70 Add isKotOR() util method
Signed-off-by: William Brawner <me@wbrawner.com>
2021-06-10 08:38:14 +07:00
bd0698eb0d Remove unnecessary whitespace
Signed-off-by: William Brawner <me@wbrawner.com>
2021-06-10 08:38:14 +07:00
143288876b Remove unnecessary initialization of shared_ptrs
Signed-off-by: William Brawner <me@wbrawner.com>
2021-06-10 08:38:14 +07:00
a0f6e13ac7 Use binding struct in Character menu 2021-06-10 08:38:14 +07:00
f3465b742a Add Slider control 2021-06-10 08:38:14 +07:00
Vsevolod Kremianskii
1690864689 Add placeholders for all script routines
Except those used for mini-games.
2021-06-06 13:22:37 +07:00
Vsevolod Kremianskii
8d5cdbdc7d Fix blaster bolts trajectory 2021-06-05 09:53:49 +07:00
Vsevolod Kremianskii
79a4af45ad Fix erasing animation channels in Blend mode
This fixes combat animations being stuck.
2021-06-05 09:53:46 +07:00
Vsevolod Kremianskii
582b87b540 Implement saving/loading party members and global variables
While at it, refactor GFF field construction.
2021-06-05 02:50:21 +07:00
Vsevolod Kremianskii
842a8fe3b0 Implement two-weapon fighting: penalties, off-hand attacks 2021-06-05 00:57:51 +07:00
Vsevolod Kremianskii
93b389fcd4 Implement critical hits in combat 2021-06-05 00:26:29 +07:00
Vsevolod Kremianskii
b1c14c7879 Fix loading danglymesh constraints
Constraints are now read from two separate data regions.
2021-05-31 19:53:50 +07:00
Vsevolod Kremianskii
b032fe40ae Replace blend mode wrappers in Context with getters/setters 2021-05-31 16:40:08 +07:00
Vsevolod Kremianskii
61ac0f320d Implement screenshots in SaveLoad menu
Also refactor item selection in ListBox.
2021-05-31 16:09:37 +07:00
Vsevolod Kremianskii
bdedd88d9d Implement taking screenshots
This will later be used for save games. While at it, replace
Context::with* functions with getters/setters to decrease nestedness.
2021-05-31 14:29:33 +07:00
Vsevolod Kremianskii
58d40cf1ec Cleanup Equipment class 2021-05-31 08:58:51 +07:00
59badb7d25 Pass InGameMenu to Equipment constructor
Signed-off-by: William Brawner <me@wbrawner.com>
2021-05-31 08:55:14 +07:00
46bb9d42f6 Refactor InGameMenu::getBtn* and GUI::getControl(Ptr) for brevity
Signed-off-by: William Brawner <me@wbrawner.com>
2021-05-31 08:55:14 +07:00
6fd62fc65c Move EquipmentBindingHelper methods to InGameMenu
All of the menu items will need these methods, not just Equipment, so it
makes more sense for the methods to be on the menu itself.
2021-05-31 08:55:14 +07:00
a64325c0e0 Add EquipmentBindingHelper
Signed-off-by: William Brawner <me@wbrawner.com>
2021-05-31 08:55:14 +07:00
034b4abc03 Use shared_ptr for gui controls
Signed-off-by: William Brawner <me@wbrawner.com>
2021-05-31 08:55:14 +07:00
c59d7ceeaf Add GUI::getControlPtr method
Signed-off-by: William Brawner <me@wbrawner.com>
2021-05-31 08:55:14 +07:00
eea92b7d57 Fix code style issues in Equipment header
Signed-off-by: William Brawner <me@wbrawner.com>
2021-05-31 08:55:14 +07:00
3fa39263b6 Fix namespace issues in Equipment header 2021-05-31 08:55:14 +07:00
47f7361c35 Use binding struct in Equipment
This replaces the previous approach of grabbing controls with their
string constants whenever needed.

Signed-off-by: William Brawner <me@wbrawner.com>
2021-05-31 08:55:14 +07:00
Vsevolod Kremianskii
6ec1627655 Revert to the latest stable version of GLM
There is virtually no difference, except that it feels right to use a
stable version as a dependancy, not one from trunk.
2021-05-31 07:47:20 +07:00
Vsevolod Kremianskii
f34b0fd3f4 Treat UseFeat as normal attack
Until special attacks are properly implemented.
2021-05-27 09:27:50 +07:00
Vsevolod Kremianskii
65a97e671d Cleanup dependency injection
- Prefer injecting references, not pointers
- Do not inject a Services reference into a component it manages
2021-05-27 09:09:58 +07:00
Vsevolod Kremianskii
9166d49f08 Replace OpenLock with UseSkill(Security) action 2021-05-27 07:20:46 +07:00
Vsevolod Kremianskii
b993989ae3 Add use feat actions to the action queue 2021-05-26 23:16:40 +07:00
Vsevolod Kremianskii
64e3617544 Drop HDR support in PBR mode
- Final picture is less smudged
- Shaders are cleaner and easier to read
2021-05-26 10:26:42 +07:00
Vsevolod Kremianskii
4f46dbcf93 Implement fading lights
Merge with the shadow fading algorithm.
2021-05-25 14:31:08 +07:00
Vsevolod Kremianskii
54f4b00579 Speed up animation transition 2021-05-25 13:02:02 +07:00
Vsevolod Kremianskii
953e6946c5 Take Phong material properties into account in PBR shaders 2021-05-25 12:55:06 +07:00
Vsevolod Kremianskii
e9047a267b Implement ambient-only lights 2021-05-25 10:12:03 +07:00
Vsevolod Kremianskii
67cfbd92ad HDR is always enabled in PBR mode 2021-05-22 18:15:43 +07:00
Vsevolod Kremianskii
76bb4113dc Convert featureutil into Features class 2021-05-22 15:24:13 +07:00
Vsevolod Kremianskii
abe9aabc96 Convert stateutil to Context
Fits better into the new DI architecture.
2021-05-22 13:24:42 +07:00
Vsevolod Kremianskii
0619449409 Simplify Meshes API 2021-05-22 12:48:19 +07:00
Vsevolod Kremianskii
fe6abcc412 Refactor dependency injection
- Add Service class per module
- Services store and initialize dependencies
- To reduce number of dependenices passed, Service Locator pattern is
  used
2021-05-22 11:20:24 +07:00
Vsevolod Kremianskii
f5c0837fc3 Add service locator classes 2021-05-21 12:12:57 +07:00
Vsevolod Kremianskii
ec065ab68b Simplify null checks in ctors 2021-05-20 21:07:35 +07:00
Vsevolod Kremianskii
e9d0aeac5f Replace all remaining singletons with dependency injection
Needs major cleanup, but allegedly the code is more controllable now.
2021-05-20 20:26:54 +07:00
Vsevolod Kremianskii
b12ccfd9aa Convert Scripts from singleton to injectable dependency 2021-05-20 14:03:57 +07:00
Vsevolod Kremianskii
df1c0adccd Convert all audio singletons to injectable dependencies 2021-05-20 13:54:23 +07:00
Vsevolod Kremianskii
1fee22c581 Convert all game singletons to injectable dependencies 2021-05-19 15:59:41 +07:00
Vsevolod Kremianskii
0ecac52e73 Convert Cursors from singleton to member variable 2021-05-19 15:08:04 +07:00
Vsevolod Kremianskii
1512309a27 Convert Window from singleton to injected dependency
While at, simplify constructors in GameGUI class hierarchy.
2021-05-19 14:58:56 +07:00
Vsevolod Kremianskii
609afc7cf7 Rename SceneLeaf to SceneNodeElement 2021-05-19 12:42:26 +07:00
Vsevolod Kremianskii
be8ecf6a43 Implement PC walking
Press B to walk instead of running.
2021-05-19 12:33:38 +07:00