Commit graph

529 commits

Author SHA1 Message Date
Vsevolod Kremianskii
4841f3b280 perf: Set skeletal animation uniforms through a UBO 2020-11-14 15:56:54 +07:00
UW Admin
8d7b55e7cf feat: basic combat architecture. 2020-11-14 01:08:25 -05:00
Vsevolod Kremianskii
8c86674dfe chore: Add this_thread::yield to the end of the audio and main loops 2020-11-14 12:51:47 +07:00
Vsevolod Kremianskii
e70170a531 perf: Cache feature uniforms per shader program
This reduces the overhead of binding UBO.
2020-11-14 12:42:26 +07:00
Vsevolod Kremianskii
ee4f558f96 perf: Set lighting uniforms through a uniform block object 2020-11-14 12:32:36 +07:00
Vsevolod Kremianskii
60b85c7da3 fix: Fix sound and transparent mesh comparators 2020-11-14 11:28:30 +07:00
Ziemas
dc5a7f19df fix: typo in gl code 2020-11-14 11:06:43 +07:00
Vsevolod Kremianskii
5a75ceed9e perf: Use UBO to set feature uniforms
This yields a small performance improvement.
2020-11-14 08:57:25 +07:00
Vsevolod Kremianskii
969b9fa8c0 perf: Set sampler uniforms once at program initialization 2020-11-14 07:40:02 +07:00
Ziemas
49ca2e139e Always assign texture sampler uniforms
Ensures that different sampler types don't end up pointing at the same
texture unit.

Fixes rendering on the intel mesa driver.
2020-11-13 23:49:51 +01:00
Ziemas
f5174886d8 Fix invalid enum error for texture wrap setting 2020-11-13 23:20:39 +01:00
Vsevolod Kremianskii
989151adf7 refactor: Area::updateTriggers is redundant 2020-11-13 08:39:16 +07:00
Brian Allred
a70264c394 fix: Fix building on Windows (broken by previous fix) 2020-11-13 08:29:19 +07:00
Brian Allred
0c74db9a6d fix: Fix building on certain Linux distros 2020-11-13 08:29:19 +07:00
Vsevolod Kremianskii
b9c9fae714 fix: Fix setLocal*/getLocal* routines when called on self 2020-11-12 16:10:07 +07:00
Vsevolod Kremianskii
fce3fcd98e refactor: Refactor actions and conversation
This allows the party to get past the first door on the Endar Spire, as
scripted by the game designers.
2020-11-12 15:41:15 +07:00
Vsevolod Kremianskii
243c1d985c feat: Implement SetLocked/GetLocked routines 2020-11-12 13:52:00 +07:00
Vsevolod Kremianskii
675914f5c8 feat: Implement conversation with doors 2020-11-12 13:37:54 +07:00
Vsevolod Kremianskii
e38d8a80cc feat: Implement globals/locals routines for TSL 2020-11-12 13:12:53 +07:00
Vsevolod Kremianskii
3ae146aaa3 feat: Implement GetPartyMemberByIndex routine 2020-11-12 13:11:37 +07:00
Vsevolod Kremianskii
8b8871e641 chore: Log unimplemented script routines 2020-11-12 13:00:47 +07:00
Vsevolod Kremianskii
9191757d19 feat: Improve triggers
- Triggers track objects that are inside
- Triggers are triggered for all creatures, not just party leader
2020-11-12 12:55:41 +07:00
Vsevolod Kremianskii
bd0c6c4124 refactor: Move trigger intersection test inside the Trigger 2020-11-12 12:37:05 +07:00
Vsevolod Kremianskii
e6f6eebe93 feat: Implement IsObjectPartyMember routine 2020-11-12 12:27:20 +07:00
Vsevolod Kremianskii
2fc6fd71c3 feat: Implement OnEnter script for triggers 2020-11-12 12:09:09 +07:00
Vsevolod Kremianskii
4ec98e768e feat: Implement static cameras
This includes refactoring of the camera handling: camera type is moved
into the Game class.
2020-11-12 11:38:04 +07:00
Vsevolod Kremianskii
6c1b8b244c fix: Non-selectable objects do not contribute to ray casting 2020-11-11 16:08:11 +07:00
Vsevolod Kremianskii
d5fba043c1 fix: Increase max conversation distance 2020-11-11 16:02:53 +07:00
Vsevolod Kremianskii
3995514034 fix: Do not set default hilight color for main menu 2020-11-11 15:53:18 +07:00
Vsevolod Kremianskii
7c7efa624f fix: Fix creature appearance
When loading texture name from racetex, do not append a number to it.
2020-11-11 15:52:18 +07:00
Vsevolod Kremianskii
59965c3824 fix: Check collision with doors 2020-11-11 15:28:22 +07:00
Vsevolod Kremianskii
34c61a1825 perf: Make scene node visibility check earlier 2020-11-11 14:46:14 +07:00
Vsevolod Kremianskii
53ce918a64 fix: Use talkdummy node for object selection and conversations
This improves interaction with non-character creatures.
2020-11-11 14:42:12 +07:00
Vsevolod Kremianskii
5434305274 feat: Add ability to print debug info on selected object 2020-11-11 14:34:11 +07:00
Vsevolod Kremianskii
58358ce367 refactor: Move scene graph filling into the scene graph itself 2020-11-11 13:57:29 +07:00
Vsevolod Kremianskii
44f43df928 fix: Limit max walkmesh collision distance
This fixes collision detection bugs, e.g. in danm13.
2020-11-11 09:43:38 +07:00
Vsevolod Kremianskii
fa4ce53c65 feat: Add program option to immediately load a module 2020-11-11 09:09:03 +07:00
Vsevolod Kremianskii
a26082e9ea fix: Fix rancor and hutt transparency issues 2020-11-11 00:40:05 +07:00
Vsevolod Kremianskii
6bd8682257 feat: Disable frustum culling for individual model nodes
It produces visual artifacts, e.g. in tar_m02aa.
2020-11-11 00:37:20 +07:00
Vsevolod Kremianskii
34eebd3de4 fix: Improve mesh transparency identification
This fixes certain visual artifacts, e.g. in danm16.
2020-11-11 00:30:56 +07:00
Vsevolod Kremianskii
164aaed883 fix: Make lightsabers not affected by lighting 2020-11-10 23:36:03 +07:00
Vsevolod Kremianskii
95886c7dcf fix: Use transparency hint when sorting transparent meshes
This fixes certain visual artifacts.
2020-11-10 23:24:05 +07:00
Vsevolod Kremianskii
e1180766b4 feat: Implement frustum culling and distance sorting in the octree
Unused yet because of a performance penalty.
2020-11-10 22:50:24 +07:00
Vsevolod Kremianskii
4f0de94510 fix: Character models are always considered opaque
This fixes certain visual artifacts.
2020-11-10 19:22:12 +07:00
Vsevolod Kremianskii
375a92d7ef perf: Frustum cull individual model nodes as well as game objects
This adds up to 40 percent increase in FPS relative to a culling based
on glm::project.
2020-11-10 18:15:26 +07:00
Vsevolod Kremianskii
a490021d78 feat: Implement proper frustum culling
This yields a 30 percent improvement in FPS on my machine.
2020-11-10 17:19:57 +07:00
Vsevolod Kremianskii
ac0ad1b026 refactor: Move PthFile and DlgFile into game namespace 2020-11-10 14:49:01 +07:00
Vsevolod Kremianskii
743d0ebfd5 refactor: Move MdlFile and BwmFile to format folder 2020-11-10 14:27:59 +07:00
Vsevolod Kremianskii
7cf42df34c refactor: Move Mp3File and WavFile into format folder 2020-11-10 14:23:16 +07:00
Vsevolod Kremianskii
c6d381b11b refactor: Do not use glm in libresource and libscript 2020-11-10 14:07:02 +07:00