Commit graph

1496 commits

Author SHA1 Message Date
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
Vsevolod Kremianskii
4c7d588af9 Fix bump mapping
- Use tangent space normals from MDL
- Fix tangent space to world space transform
2021-05-15 09:52:14 +07:00
Vsevolod Kremianskii
5eefe157e7 Make bones influence normals in VS 2021-05-15 08:41:31 +07:00
Vsevolod Kremianskii
e1366255dc Fix loading Size Y emitter property 2021-05-15 07:52:35 +07:00
Vsevolod Kremianskii
bd41b81dc2 Fix CI build 2021-05-15 07:49:42 +07:00
Vsevolod Kremianskii
740440ca78 Major refactoring of the scene management system 2021-05-14 23:31:05 +07:00
Vsevolod Kremianskii
aeffc4b453 Rename ModelNodeSceneNode to MeshSceneNode 2021-05-13 15:16:49 +07:00
Vsevolod Kremianskii
366d8d739d Major graphics/model refactoring
- Decouple Model and ModelNode from MdlReader
- Make Emitter a nested struct under ModelNode
- Read all known controller types
2021-05-13 14:54:23 +07:00
Vsevolod Kremianskii
277a94bec7 Simplify materials
- Remove specular parameter (shininess is enough)
- Explicit default material is removed
- Default roughness is set to 0.5
2021-05-12 12:20:43 +07:00