Commit graph

1454 commits

Author SHA1 Message Date
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
Vsevolod Kremianskii
ed0e1d4809 Extract normal and shadow mapping into a separate shader source 2021-05-16 13:14:45 +07:00
Vsevolod Kremianskii
a937fab08b Use prefix "s" for sampler uniforms 2021-05-16 13:03:36 +07:00
Vsevolod Kremianskii
5f290bc18b Check center of AABB as part of frustum culling 2021-05-16 12:48:31 +07:00
Vsevolod Kremianskii
34c7764ef3 Separate bump maps from normal maps on shader level 2021-05-16 11:52:35 +07:00
Vsevolod Kremianskii
5ab41db41c Fix animation blending
- Take channel freeze into account
- Clear other channels when initiating animation in Blend mode
2021-05-16 09:47:43 +07:00
Vsevolod Kremianskii
9e28de7041 Drop support for swizzled normal maps 2021-05-16 09:11:28 +07:00
Vsevolod Kremianskii
bb2b5b255b Move bone map to boneNodeName conversion to MdlReader 2021-05-16 09:07:03 +07:00
Vsevolod Kremianskii
5fce19c95b Take animations in Model ctor 2021-05-16 08:38:35 +07:00
Vsevolod Kremianskii
ee09ba6209 Generalize attribute accessors in Mesh 2021-05-16 08:16:34 +07:00
Vsevolod Kremianskii
91643240fd Do not play same animation twice 2021-05-15 16:08:03 +07:00
Vsevolod Kremianskii
5ff803f0aa Use deque, not fixed array for animation channels
Erase finished animation channels.
2021-05-15 16:02:17 +07:00
Vsevolod Kremianskii
2d3540b73f Exclusively use node names to bind animations to model nodes
This both makes for a cleaner API and fixes stunt animations.
2021-05-15 15:13:38 +07:00
Vsevolod Kremianskii
bb9d0e1f41 Make self-illum color influence object color in shaders 2021-05-15 13:52:19 +07:00
Vsevolod Kremianskii
ef5782909f Fix determining reference point for selection and dialog 2021-05-15 13:37:16 +07:00
Vsevolod Kremianskii
30b9f2b40b Recompute model AABB on attachment 2021-05-15 11:52:03 +07:00
Vsevolod Kremianskii
eec6b8e403 Reimplement AABB debugging 2021-05-15 11:45:03 +07:00
Vsevolod Kremianskii
a6c6230e2b Fix loading emitter properties 2021-05-15 11:31:08 +07:00
Vsevolod Kremianskii
62f140454e Remove outdated models diagram
[ci skip]
2021-05-15 11:17:35 +07:00
Vsevolod Kremianskii
3160e177f9 Offset bone matrices by 1 to prevent out of bound access 2021-05-15 10:47:47 +07:00
Vsevolod Kremianskii
5817ba0a79 Revert to reading bone map from MDL
Some models use more than 16 bones per node.
2021-05-15 10:14:59 +07:00