Commit graph

1439 commits

Author SHA1 Message Date
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
b7acbd448f Streamline extraction and JSON analysis scripts
- If directory is not specified, open a file dialog to choose it
- Extract common code into reo_shared.py
2021-05-31 09:31:22 +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
9afb2745d4 Split scripts into subdirectories 2021-05-31 06:22:29 +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
45de5e7699 fixup! Add install commands to CMake 2021-05-22 08:38:29 +07:00
05cdef97c8 Add install commands to CMake
Signed-off-by: William Brawner <me@wbrawner.com>
2021-05-22 08:38:29 +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
Vsevolod Kremianskii
0f830e33b0 Load creature Force Powers from UTC 2021-05-19 12:17:03 +07:00
Vsevolod Kremianskii
8688e9d37b Load Force Powers from 2DA 2021-05-19 12:06:27 +07:00
Vsevolod Kremianskii
04cea53ecd Add feat-based actions to the action bar
Actions are grouped into slots. Actions within each slot can be scrolled
using the mouse wheel.
2021-05-19 11:39:05 +07:00
Vsevolod Kremianskii
ba0e987bb1 Add feats to creature attributes
- Load feats from UTC
- Implement GetHasFeat
2021-05-19 10:25:20 +07:00
Vsevolod Kremianskii
081b4877b8 Load feats from 2DA 2021-05-19 10:10:55 +07:00
Vsevolod Kremianskii
20879ccb7d Update CONTRIBUTORS
- Add wbrawner
- Sort contributors in alphabetical order
2021-05-19 09:14:41 +07:00
0e33206e47 Include check for negative index in setting party leader 2021-05-19 09:08:01 +07:00
7d77aab3fc Implement portrait click actions 2021-05-19 09:08:01 +07:00
Vsevolod Kremianskii
95f9fce3c4 Fix render order between particles and grass clusters 2021-05-19 01:22:05 +07:00