Commit graph

448 commits

Author SHA1 Message Date
Vsevolod Kremianskii
20dcb93eae feat: Implement four more script routines
GetHitDice, GetClassByPosition, GetHasSkill and GetPCSpeaker.
2020-11-15 16:43:45 +07:00
Vsevolod Kremianskii
7f31d47359 fix: Character faces doors when unlocking them 2020-11-15 14:20:48 +07:00
Vsevolod Kremianskii
b3a363edbf feat: Play character animation when unlocking doors 2020-11-15 14:17:42 +07:00
Vsevolod Kremianskii
fad3f9054e feat: Implement contextual actions
Currently, only door unlocking is supported.
2020-11-15 13:58:39 +07:00
Vsevolod Kremianskii
e51b219d7f feat: Load contextual actions from the environment 2020-11-15 12:49:07 +07:00
Vsevolod Kremianskii
ac57c7f8ed feat: Add empty contextual action bar 2020-11-15 12:08:15 +07:00
Vsevolod Kremianskii
ad209bcb7a fix: Stop player and camera movement when opening party selection 2020-11-15 11:18:28 +07:00
Vsevolod Kremianskii
40651d368f refactor: Resources are always loaded from the main thread
Not a fan of mutexes in Resources and AudioFiles.
2020-11-15 10:52:35 +07:00
Vsevolod Kremianskii
c0e5abec4a fix: Stop player movement when switching camera type 2020-11-15 10:41:23 +07:00
Vsevolod Kremianskii
52e837d843 fix: Stop player movement when switching to conversation 2020-11-15 10:34:41 +07:00
Vsevolod Kremianskii
9b6533b21d feat: Load whether sound is positional from sound blueprint 2020-11-15 10:27:25 +07:00
Vsevolod Kremianskii
595648e024 feat: Sound can be explicitly set as positional or not 2020-11-15 10:20:02 +07:00
Vsevolod Kremianskii
a557e31bad refactor: Accept sound position in a constructor 2020-11-15 10:08:34 +07:00
Vsevolod Kremianskii
5052957434 refactor: Move listener position setting to the Game class 2020-11-15 10:01:02 +07:00
Vsevolod Kremianskii
fac35895e0 feat: Implement 3D sounds 2020-11-15 00:43:05 +07:00
Vsevolod Kremianskii
cfa652575e refactor: Confine all OpenAL calls to the audio thread
To make sure, return SoundHandle, not SoundInstance from the
AudioPlayer.
2020-11-14 23:42:18 +07:00
Vsevolod Kremianskii
62477aeb02 perf: Load music files in the audio thread
This fixes stuttering when switching between menus and areas.
2020-11-14 18:20:47 +07:00
Vsevolod Kremianskii
3ebd70f5db refactor: Combine features and general local uniforms 2020-11-14 17:18:22 +07:00
Vsevolod Kremianskii
92f6cab491 refactor: Set general local uniforms through a UBO 2020-11-14 17:01:56 +07:00
Vsevolod Kremianskii
4a06af4689 refactor: Store lighting and skeletal uniforms as smart pointers
This is to avoid passing large structs on the stack.
2020-11-14 16:15:40 +07:00
Vsevolod Kremianskii
4841f3b280 perf: Set skeletal animation uniforms through a UBO 2020-11-14 15:56:54 +07: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