Commit graph

1424 commits

Author SHA1 Message Date
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
Vsevolod Kremianskii
c2fdc464dd Improve lightning emitter rendering 2021-05-18 23:58:16 +07:00
Vsevolod Kremianskii
7be6d68b6b Add barebone lightning emitter implementation 2021-05-18 23:19:42 +07:00
Vsevolod Kremianskii
e3a94bf5cd Load all known emitter modes 2021-05-18 21:39:51 +07:00
Vsevolod Kremianskii
6415dc2c41 Implement gravity-type P2P emitters
While at it, improve particle spawing:

- Increase maximum number of particles to 64
- Birthrate take priority over particle lifetime
2021-05-18 15:24:36 +07:00
Vsevolod Kremianskii
e27a77b1e9 Combine Object and ActionQueue 2021-05-18 12:21:07 +07:00
Vsevolod Kremianskii
6c47a9de8e Make ObjectSelector, CreatureFinder and Perception part of Area 2021-05-18 11:44:51 +07:00
Vsevolod Kremianskii
eaaaa834bb Remove unused DebugOverlay class 2021-05-18 11:22:41 +07:00
Vsevolod Kremianskii
3ea7c3f869 Flatten CreatureAttributes/Abilities/Skills structure 2021-05-18 11:15:26 +07:00
Vsevolod Kremianskii
2113d13a0d Use Bezier curves for emitter constraints 2021-05-18 08:37:04 +07:00
Vsevolod Kremianskii
fc32d64642 Revert StateManager to stateutil
It's just easier to use that way.
2021-05-18 06:01:05 +07:00
Vsevolod Kremianskii
81bf3dfeaf Take emitters spread value into account 2021-05-16 15:16:46 +07:00
Vsevolod Kremianskii
8aa5ee92ca Fix particle animation 2021-05-16 14:34:08 +07:00
Vsevolod Kremianskii
c4985f8684 Disable back-face culling for particles, grass and etc. 2021-05-16 14:08:25 +07:00
Vsevolod Kremianskii
81349e79f0 Fix loading anim node controllers 2021-05-16 13:47:30 +07:00
Vsevolod Kremianskii
b7c93cb9fa Do not crash on Bezier float controllers 2021-05-16 13:33:30 +07:00