Commit graph

468 commits

Author SHA1 Message Date
Vsevolod Kremianskii
430c6498f8 fix: Ignore MinDistance of a Sound for now
It should specify the radius, in which the sound is at the maximum
volume.
2020-11-16 09:19:25 +07:00
Ziemas
6f33cc8eb0 feat: implement SoundObjectPlay script function 2020-11-15 22:32:59 +01:00
Vsevolod Kremianskii
f8bceecf3a fix: Delay trigger's onExit script execution 2020-11-16 01:26:40 +07:00
Vsevolod Kremianskii
7c549f9b0e feat: Implement more script routines
GetExitingObject, GetPosition, GetFacing, GetDistanceToObject,
GetDistanceToObject2D.
2020-11-16 01:19:18 +07:00
Vsevolod Kremianskii
f2f9ed06ae feat: Implement GetModule and GetTag script functions 2020-11-16 00:39:49 +07:00
Vsevolod Kremianskii
339cf04703 feat: Implement global string script routines 2020-11-16 00:34:05 +07:00
Vsevolod Kremianskii
cbdbed6d6d feat: Implement string script routines 2020-11-16 00:25:20 +07:00
Vsevolod Kremianskii
5146f26af5 feat: Implement multiple conversion script routines 2020-11-16 00:03:39 +07:00
Vsevolod Kremianskii
9d6b107fb5 refactor: Return normal, not squared distances from public functions
This is to reduce ambiguity at the cost of performance.
2020-11-15 23:43:08 +07:00
Vsevolod Kremianskii
117012b750 feat: Implement ExecuteScript and GetRunScriptVar 2020-11-15 20:47:00 +07:00
Vsevolod Kremianskii
3c4b1c87f9 feat: Implement running OnExit trigger scripts 2020-11-15 20:36:43 +07:00
Vsevolod Kremianskii
7cc49a7a6e feat: Implement CreateItemOnObject 2020-11-15 20:28:29 +07:00
Vsevolod Kremianskii
9a24364115 refactor: Do not explicitly use player tag in GetObjectByTag 2020-11-15 20:05:41 +07:00
Vsevolod Kremianskii
7537960c03 build: Link against libatomic on Unix systems 2020-11-15 07:58:05 -05:00
Vsevolod Kremianskii
414a805f46 feat: Implement more script routines
ShipBuild, IsNPCPartyMember, SetPartyLeader, ClearAllActions.
2020-11-15 19:50:44 +07:00
Vsevolod Kremianskii
6498128b00 chore: Reorder routine declarations 2020-11-15 19:11:53 +07:00
Vsevolod Kremianskii
c7752b2e87 perf: Do not unbind textures
It is redundant and reduces performance.
2020-11-15 18:56:47 +07:00
Vsevolod Kremianskii
aa128580ab refactor: Split script routine implementations into multiple files 2020-11-15 18:17:21 +07:00
Vsevolod Kremianskii
2b89855ed6 feat: Implement math and dice rolling script routines 2020-11-15 17:57:41 +07:00
Vsevolod Kremianskii
28168f9a23 reactor: Make CreatureAttributes a class 2020-11-15 17:08:52 +07:00
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