Commit graph

1292 commits

Author SHA1 Message Date
Vsevolod Kremianskii
c287a57472 Load light flares from MDL 2021-05-03 20:36:49 +07:00
Vsevolod Kremianskii
1751023903 Implement danglymeshes 2021-05-03 18:37:38 +07:00
Vsevolod Kremianskii
2212f0ff00 Merge ScriptObject and Object
ScriptObject is redundant, now, that variables store id, not pointers.
2021-05-03 13:52:22 +07:00
Vsevolod Kremianskii
e5fab733b5 Fix non-English language support
Non-ASCII characters have codes larger than 127. When used as indices,
these must be treated as unsigned.
2021-05-03 12:20:42 +07:00
Vsevolod Kremianskii
0a4f7f7fe5 Ensure no framebuffer is bound after pipeline initialization
This fixes the black screen bug at TSL startup.
2021-05-03 11:19:50 +07:00
Vsevolod Kremianskii
028694c440 Do not update and draw in main loop if window is out of focus 2021-05-03 10:08:51 +07:00
Vsevolod Kremianskii
25253405ce Revert to storing object id, not object pointer in scripts
- This is how vanilla does it
- It will supposedly be easier to save delayed actions this way
2021-04-22 17:53:55 +07:00
Vsevolod Kremianskii
0e0f018b5b Add tool to convert LIP to JSON and vice versa 2021-04-22 14:02:43 +07:00
Vsevolod Kremianskii
b6c5a9a8cd Refactor save games
SAV file is now an ERF archive with GFF (and later TGA) files.
2021-04-22 11:00:11 +07:00
Vsevolod Kremianskii
e3b5f3eba1 Improve shadows
- Treat lights with radius of 1000 and higher as directional
- Use orthographic projection for directional shadow lights
2021-04-21 09:51:26 +07:00
Vsevolod Kremianskii
874a4006b6 Fix CTD in danm14aa 2021-04-20 10:27:58 +07:00
Vsevolod Kremianskii
31290dc7d0 Set g_shipBuild to true by default
Due to excessive log output.
2021-04-20 10:17:12 +07:00
Vsevolod Kremianskii
43ada622db Implement area fog 2021-04-20 10:06:10 +07:00
Vsevolod Kremianskii
ea783f0f33 Fix CTD when object blueprint is missing 2021-04-20 08:23:21 +07:00
Vsevolod Kremianskii
7179d5e862 Revise UTC and UTI loading
Based on resource analysis.
2021-04-13 13:18:18 +07:00
Vsevolod Kremianskii
624e0c61bf Revise UTW, UTT, UTS, UTP, UTE and UTD loading
Based on resource analysis.
2021-04-13 09:46:29 +07:00
Ziemas
6e0cf0e802 Simplify recieve frame logic. 2021-04-13 07:22:39 +07:00
Ziemas
8b6c5d138f Update FFMPEG API usage.
Stop using deprecated functions.
2021-04-13 07:22:39 +07:00
Vsevolod Kremianskii
9c8dcdb841 Tweak list of fields loaded from blueprints
Based on their usage from resource analysis.
2021-04-12 23:28:45 +07:00
Vsevolod Kremianskii
572acc03bc Load all UTI fields 2021-04-12 20:15:18 +07:00
Vsevolod Kremianskii
fb74b91e04 Load all UTC fields 2021-04-12 20:04:23 +07:00
Vsevolod Kremianskii
2f7261de54 Load all UTP fields 2021-04-12 18:52:08 +07:00
Vsevolod Kremianskii
56a4c94e8c Fix rendering transparent textures with additive blending
E.g., map on the Endar Spire bridge.
2021-04-12 17:56:00 +07:00
Vsevolod Kremianskii
66d2a68c45 Load all UTD fields 2021-04-12 13:42:06 +07:00
Vsevolod Kremianskii
75927cca92 Load all UTW fields 2021-04-12 11:45:55 +07:00
Vsevolod Kremianskii
0823cc1d5c Load all UTT fields 2021-04-12 11:20:07 +07:00
Vsevolod Kremianskii
44b96010bb Remove _facing from SpatialObject
It already has _orientation, which could be used to retrieve facing.
2021-04-12 10:15:17 +07:00
Vsevolod Kremianskii
99dc0a494b Load all UTS fields 2021-04-12 08:43:30 +07:00
Vsevolod Kremianskii
6df8c67403 Replace getInt with getEnum where applicable 2021-04-12 07:59:35 +07:00
Vsevolod Kremianskii
d5c9c6fdf8 Implement loading Encounter from GIT and UTE
Also:

- Add getEnum method to GffStruct
- Rename _heartbeat to _onHeartbeat
2021-04-12 07:55:03 +07:00
Vsevolod Kremianskii
1c6e3e05cc Revert to reading individual fields in MdlReader
This is to account for endianess.
2021-04-11 12:20:37 +07:00
Vsevolod Kremianskii
c95d00b1a3 Fix CI compilation with Boost::Endian 2021-04-11 07:27:50 +07:00
Vsevolod Kremianskii
5c9f7f6c21 Revert to writing individual fields in TlkWriter
This is slower, but takes endianess into account.
2021-04-11 06:52:23 +07:00
Vsevolod Kremianskii
e21f3c66bf Use Boost::Endian for byte order conversion
Less code to maintain and faster due to intristics.
2021-04-11 06:39:03 +07:00
Vsevolod Kremianskii
6905d35e1f Implement JSON to TLK tool
While at it, make TLK to JSON tool output SoundResRef.
2021-04-10 15:13:52 +07:00
Vsevolod Kremianskii
ddb680c120 Separate TalkTable and TlkReader classes 2021-04-10 12:15:46 +07:00
Vsevolod Kremianskii
7b1847e324 Use high-precision clock in Stopwatch 2021-04-08 14:55:12 +07:00
Vsevolod Kremianskii
1830e87b87 Display damage ranges on equipment screen 2021-04-07 21:43:20 +07:00
Vsevolod Kremianskii
9c75b29493 Display hit points, attack and defense bonuses on equipment screen 2021-04-07 18:13:55 +07:00
Vsevolod Kremianskii
25dd7e3a4b Show defense and saving throws on the character screen 2021-04-07 17:27:50 +07:00
Vsevolod Kremianskii
e641da973e Display 3D model on character screen 2021-04-07 16:44:32 +07:00
Vsevolod Kremianskii
2e125d889c Rename RenderWindow to Window 2021-04-07 14:09:44 +07:00
Vsevolod Kremianskii
fa94998898 Fix CTD if movie file is not found 2021-04-07 14:04:03 +07:00
Vsevolod Kremianskii
bddee04453 Rename Game init/deinit to initSubsystems/deinitSubsytems 2021-04-07 14:01:30 +07:00
Vsevolod Kremianskii
4b0cd35fe4 Rename Program members 2021-04-07 13:51:38 +07:00
Vsevolod Kremianskii
2a6bb68088 Remove adding hard-coded follow action to followers
It is already assigned by the AI script.
2021-04-07 13:05:43 +07:00
Vsevolod Kremianskii
b789c1c9de Replace ModelSceneNode::Classification with ModelUsage 2021-04-07 12:26:17 +07:00
Vsevolod Kremianskii
1aa8e1f50d Load portraits by PortraitId first, Appearance_Type second 2021-04-07 11:51:44 +07:00
Vsevolod Kremianskii
1c91fc707f Replace portraitutil with Portraits class 2021-04-07 11:20:57 +07:00
Vsevolod Kremianskii
cf9667451f Fix distance check on perception 2021-04-07 09:10:53 +07:00
Vsevolod Kremianskii
970ea065f8 Add map-based getFromLookup* overloads 2021-04-07 09:04:45 +07:00
Vsevolod Kremianskii
b71284cd1f Explicitly mark swapBytes as inline 2021-04-07 08:44:20 +07:00
Vsevolod Kremianskii
9a8fe2ecaf Fix infinite loop on combat round deletion 2021-04-07 08:34:09 +07:00
Vsevolod Kremianskii
6014bfdb1e Store local variables in ScriptObject instead of Game 2021-04-06 23:51:34 +07:00
Vsevolod Kremianskii
2360a99e4b Store RunScriptVar in ExecutionContext instead of Game 2021-04-06 23:39:39 +07:00
Vsevolod Kremianskii
8b2613b717 Refactor blueprints
Blueprint loading is once again part of respective object classes. This
is because blueprints are not stateful and thus there is no need to
cache them separately.
2021-04-06 23:33:55 +07:00
Vsevolod Kremianskii
a9b840a264 Refactor combat so as to make it driven by the AI script 2021-04-06 12:01:49 +07:00
Vsevolod Kremianskii
097af6e93f Set "user action" flag on attack action added by player 2021-04-05 18:54:48 +07:00
Vsevolod Kremianskii
62ac46376f Reset selected and hilighted object hostility 2021-04-05 18:51:14 +07:00
Vsevolod Kremianskii
db3ee5fcb8 Run onUsed placeable scripts on click 2021-04-05 18:30:11 +07:00
Vsevolod Kremianskii
f006d0ea1a Enable loading modules from MOD files 2021-04-05 16:10:17 +07:00
Vsevolod Kremianskii
b72ab32248 Fix writing ERF/MOD files 2021-04-05 15:43:47 +07:00
Vsevolod Kremianskii
20501ba4ab Remove unused CombatState enum 2021-04-04 08:21:08 +07:00
Vsevolod Kremianskii
9f955664fb Add tool to convert ASCII PTH to PTH
This is inteded to be used alongside KotorBlender.
2021-03-31 13:55:15 +07:00
Vsevolod Kremianskii
2730abb00b Fix refreshing the combat action queue, deactivate with delay 2021-03-29 20:03:43 +07:00
Vsevolod Kremianskii
c94432e1ae Fix color glitches in selection overlay 2021-03-29 14:37:00 +07:00
Vsevolod Kremianskii
fb876e216f Make animation resolving and model building part of Creature 2021-03-28 09:39:15 +07:00
Vsevolod Kremianskii
272fb6b0d4 Run end of combat round script for creatures 2021-03-27 19:14:49 +07:00
Vsevolod Kremianskii
a52e914b1b Ensure all scripting messages are written to script debug channel 2021-03-27 19:05:30 +07:00
Vsevolod Kremianskii
40e48cc02c Refactor combat to take advantage of k_ai_master
Still doesn't work properly.
2021-03-27 18:49:33 +07:00
Vsevolod Kremianskii
c3ba96b222 Rename rp folder in libgame into d20 2021-03-27 10:27:50 +07:00
Vsevolod Kremianskii
6a17b286e9 Cleanup Routines, unify code style in routine implementations 2021-03-26 16:44:24 +07:00
Vsevolod Kremianskii
f124889100 Optimize SceneGraph.prepareGrass
Cull early grass clusters that are too far away.
2021-03-25 00:45:20 +07:00
Vsevolod Kremianskii
80061cc43f Drop Action source files
They were redundant.
2021-03-25 00:34:31 +07:00
Vsevolod Kremianskii
d40e4550fb Cleanup ByteCode handler registration 2021-03-25 00:12:16 +07:00
Vsevolod Kremianskii
eee68dad71 Add getEnum helper function to Routines 2021-03-25 00:07:32 +07:00
Vsevolod Kremianskii
70956e438d Store ExecutionContext as a smart pointer in Variable
This is to save space.
2021-03-24 23:51:42 +07:00
Vsevolod Kremianskii
50584354ad Replace Variable ctors with static factory functions
This is to make variable creation more robust at the cost of being more
verbose.
2021-03-24 23:12:44 +07:00
Vsevolod Kremianskii
07de49a78b Use macros to declare routine implementations 2021-03-24 22:16:59 +07:00
Vsevolod Kremianskii
fe683324e2 Implement more combat-related script routines 2021-03-23 22:41:33 +07:00
Vsevolod Kremianskii
c6deb588ec Implement more combat-related routines 2021-03-23 20:46:05 +07:00
Vsevolod Kremianskii
8a7885e19e Implement get*Target combat routines 2021-03-23 19:59:16 +07:00
Vsevolod Kremianskii
581984f7c0 Implement Get/SetNPCAIStyle 2021-03-23 18:37:16 +07:00
Vsevolod Kremianskii
59db8ae15c Implement GetRacialType routine 2021-03-23 17:35:14 +07:00
Vsevolod Kremianskii
d3e6a859af Add global variable to toggle shipBuild return value 2021-03-23 16:17:52 +07:00
Vsevolod Kremianskii
9e436508bd Implement perception criteria when searching for nth nearest creature 2021-03-23 16:05:19 +07:00
Vsevolod Kremianskii
ff9d939c32 fix: Invert the order of components when reading vector from stack 2021-03-23 15:42:08 +07:00
Vsevolod Kremianskii
d58c356ef4 Add line-of-sight check to perception 2021-03-23 15:36:56 +07:00
Vsevolod Kremianskii
6d35fdb455 Implement creature perception (sight and hearing) 2021-03-23 15:01:25 +07:00
Vsevolod Kremianskii
9c5be9b87a Refactor resource management
- Move GameID into libgame
- Move resource provider registration into Game
- Move GUI background loading into GameGUI
2021-03-23 13:21:24 +07:00
Vsevolod Kremianskii
32bc207b14 Check MDL signature as part of BinaryReader.load 2021-03-23 11:05:17 +07:00
Vsevolod Kremianskii
ecba6c70b6 When reading MDL, determine game by function pointers 2021-03-23 10:58:55 +07:00
Vsevolod Kremianskii
6f4ec13ab0 Fix animation blending not working 2021-03-23 10:17:28 +07:00
Vsevolod Kremianskii
48ae0226ea Simplify AnimatedProperty 2021-03-23 10:02:27 +07:00
Vsevolod Kremianskii
c71a513401 ci: Remove Azure from APT sources
This should fix the GitHub actions build.
2021-03-23 09:47:45 +07:00
Vsevolod Kremianskii
76ef2b481e Fix animating light properties 2021-03-23 00:28:01 +07:00
Vsevolod Kremianskii
8ee6fa3bdc Fill Danglymesh struct when loading MDL 2021-03-22 22:50:11 +07:00
Vsevolod Kremianskii
e65ecd6ca4 Refactor animation keyframes 2021-03-22 22:40:36 +07:00
Vsevolod Kremianskii
2e47ae21ed Refactor Model 2021-03-22 19:46:32 +07:00
Vsevolod Kremianskii
a0d95f16e5 Cleanup MdlReader 2021-03-22 19:30:26 +07:00
Vsevolod Kremianskii
ac55ac6a8d Read Danglymesh header and AABB tree from MDL 2021-03-22 19:27:54 +07:00
Vsevolod Kremianskii
100f318c81 Refactor MDL model loading
Read structs directly from memory.
2021-03-22 18:41:33 +07:00
Vsevolod Kremianskii
e5a41b92db Read ALL known controller types 2021-03-22 14:24:39 +07:00
Vsevolod Kremianskii
11cb6cea28 Color is a light-only controller 2021-03-22 13:57:23 +07:00
Vsevolod Kremianskii
4b075ab56c Remove redundant MdlReader.openMDX function 2021-03-22 13:55:00 +07:00
Vsevolod Kremianskii
d531e40a0f Refactor MDL controllers
Loading code was getting untidy with all the switch cases and functions.
2021-03-22 10:10:05 +07:00
Vsevolod Kremianskii
3ee16a5a24 Implement MDL reference nodes 2021-03-22 02:09:24 +07:00
Vsevolod Kremianskii
3019831286 Fix regression where not all particles were drawn 2021-03-21 16:23:44 +07:00
Vsevolod Kremianskii
3c32d4f752 Make dynamic room lighting not part of "enhanced graphics" mode 2021-03-20 15:44:24 +07:00
Vsevolod Kremianskii
f4f3ac7b91 Update room visibility less frequently
When in a third-person camera mode, room visibility must only be updated
when the party leader changes rooms.
2021-03-20 15:23:52 +07:00
Vsevolod Kremianskii
801a6b5200 Rename onScreen to culledOut 2021-03-20 15:13:50 +07:00
Vsevolod Kremianskii
48bc91a675 Add ERF/MOD writer 2021-03-20 14:24:22 +07:00
Vsevolod Kremianskii
9a98be39d5 Reimplement instanced particle drawing 2021-03-20 12:06:51 +07:00
Vsevolod Kremianskii
639dadc4d4 Pass large UBO structs as smart pointers 2021-03-20 11:46:23 +07:00
Vsevolod Kremianskii
7011d0ff8d Revert to using a separate UBO for all major features 2021-03-20 10:49:09 +07:00
Vsevolod Kremianskii
edccb17f6b Make grass density dependant on surface area 2021-03-19 23:37:26 +07:00
Vsevolod Kremianskii
a29b1e7a08 fix: Fix writing PTH files 2021-03-19 17:35:36 +07:00
Vsevolod Kremianskii
e84ada326b fix: Fix CTD when no PTH file is found 2021-03-19 17:18:08 +07:00
Vsevolod Kremianskii
5f5f173552 Render multiple grass clusters per face based on density 2021-03-19 13:28:01 +07:00
Vsevolod Kremianskii
cdd4c09536 Use a dedicated grass mesh 2021-03-19 13:15:03 +07:00
Vsevolod Kremianskii
08fc51f3aa Improve grass rendering 2021-03-19 12:31:42 +07:00
Vsevolod Kremianskii
a1d65ab1f3 feat: Implement grass
Grass is placed at grass face centroids - must be evenly distributed
across these faces in the future.
2021-03-19 01:42:05 +07:00
Vsevolod Kremianskii
9143e884fc perf: Make drawSingle non-virtual in SceneNode 2021-03-18 23:47:56 +07:00
Vsevolod Kremianskii
f545fcc195 feat: Load area grass properties 2021-03-18 23:35:49 +07:00
Vsevolod Kremianskii
5a8f02083b feat: Add method to return grass surfaces to Surfaces 2021-03-18 23:21:23 +07:00
Vsevolod Kremianskii
0be6771175 feat: Load surface walkability from surfacemat.2da 2021-03-18 23:17:54 +07:00
Vsevolod Kremianskii
0fc2713d52 Disable particle grouping
Since it doesn't really help performance.
2021-03-17 18:27:42 +07:00
Vsevolod Kremianskii
3bbe40d507 Revert to using squared distances for slight performance gain 2021-03-17 18:16:30 +07:00
Vsevolod Kremianskii
49b6bdb0fb Set non-squared drawDistance in game objects 2021-03-17 17:31:34 +07:00
Vsevolod Kremianskii
71d43a4fd3 refactor: Move skeletal uniforms into a separate UBO
So as to stay within 16K size limit, guaranteed by OpenGL.
2021-03-17 16:13:56 +07:00
Vsevolod Kremianskii
cab17fe23e perf: Use vec4 to pass text char transform, not mat4
12 bytes vs 64 bytes per character.
2021-03-17 15:58:09 +07:00
Vsevolod Kremianskii
38c87b1e96 perf: Extract particle position from transform in shader 2021-03-17 15:42:51 +07:00
Vsevolod Kremianskii
957df9984c Optimize text rendering
Might not work on all GPUs due to UBO size limit, need to split into
multiple UBOs.
2021-03-17 13:01:52 +07:00
Vsevolod Kremianskii
0beb844668 Cleanup font on destruction 2021-03-17 10:03:54 +07:00
Vsevolod Kremianskii
d38e19471e perf: Use triangle strip when drawing fonts 2021-03-17 09:49:06 +07:00
Vsevolod Kremianskii
cee087458a refactor: Replace verb render with draw everywhere except pipelines 2021-03-16 15:33:30 +07:00
Vsevolod Kremianskii
4eda8ce7a7 refactor: Replace dynamic casts with static casts in game objects 2021-03-16 15:13:57 +07:00
Vsevolod Kremianskii
ff86a296b0 refactor: Replace dynamic casts with static casts in scene nodes 2021-03-16 13:50:43 +07:00
Vsevolod Kremianskii
c17774d82c fix: Only creatures must cast shadows
This fixes shadowing artifacts in some areas.
2021-03-16 13:24:26 +07:00
Vsevolod Kremianskii
db3ffa9ebe perf: Use static pointer casts in ActionExecutor
No point dynamic casts, since we know the type in advance.
2021-03-16 12:38:32 +07:00
Vsevolod Kremianskii
2ff1314e2e refactor: Replace multiple UBOs with a single one 2021-03-16 11:53:11 +07:00
Vsevolod Kremianskii
4acc288419 Replace min FPS with 1% Low in ProfileOverlay 2021-03-16 09:42:39 +07:00
Vsevolod Kremianskii
d32d974545 Replace FPS counter with ProfileOverlay 2021-03-16 00:33:24 +07:00
Vsevolod Kremianskii
46fa5eccb8 refactor: Minor refactoring of RenderWindow 2021-03-15 22:53:05 +07:00
Vsevolod Kremianskii
18a78eb9f1 Use Core OpenGL profile
Because why not - we do not use anything from the Compatibility profile.
2021-03-15 22:10:59 +07:00
Vsevolod Kremianskii
66aa13a0f3 fix: Party member must not enter combat during conversations 2021-03-14 15:27:23 +07:00
Vsevolod Kremianskii
b56080df2f fix: Fix ActionPlayAnimation semantic 2021-03-14 15:18:19 +07:00
Vsevolod Kremianskii
1f49f09f1b fix: RemovePartyMember must not destroy the creature 2021-03-14 15:06:33 +07:00
Vsevolod Kremianskii
9799711e41 fix: Prevent *mortal* friendlies attacking each other 2021-03-14 14:52:49 +07:00
Vsevolod Kremianskii
4d0483f487 feat: Load faction dispositions from repute.2da 2021-03-14 14:38:51 +07:00
Vsevolod Kremianskii
b6210747af fix: Do not show Unlock action for KeyRequired doors 2021-03-14 13:57:02 +07:00
Vsevolod Kremianskii
a45ad2fe27 feat: Implement MoveToLocation and FollowLeader actions 2021-03-14 13:57:02 +07:00
Vsevolod Kremianskii
c07cf9ee5d feat: Implement playing Ready animation 2021-03-14 13:14:32 +07:00
Vsevolod Kremianskii
f4909ea1c3 feat: Index data directory in current path 2021-03-14 10:29:01 +07:00
Vsevolod Kremianskii
498d6efd8d feat: Implement ActionWait 2021-03-14 10:11:33 +07:00
Vsevolod Kremianskii
3d29f31eb2 feat: Implement pause/resume conversation actions
When paused, conversation entries cannot be skipped by clicking the
mouse.
2021-03-14 09:51:59 +07:00
Vsevolod Kremianskii
3e2567a26f feat: Initial find nearest creature by criterias implementation 2021-03-12 22:24:31 +07:00
Vsevolod Kremianskii
914bca91b2 feat: Add CreatureType enumeration 2021-03-12 15:13:32 +07:00
Vsevolod Kremianskii
9c1a7080ef feat: Implement GetCurrentAction routine 2021-03-12 14:34:32 +07:00
Vsevolod Kremianskii
6c1e445452 fix: Fix enemies being spotted through doors 2021-03-12 13:49:02 +07:00
Vsevolod Kremianskii
de2de5151e fix: Only blend animations when there is a previous animation
Hopefully this fixes animation "ghosting" with dead creatures.
2021-03-12 13:37:52 +07:00
Vsevolod Kremianskii
2ada61a1bc fix: Do not render fully transparent model nodes 2021-03-12 12:38:23 +07:00
Vsevolod Kremianskii
0199f8e8fd perf: Drop redundant particle sorting 2021-03-12 12:38:23 +07:00
Vsevolod Kremianskii
34a154f674 fix: Tweak and refactor collision detection
This fixes camera artifacts when colliding with doors, among other
things.
2021-03-12 12:38:23 +07:00
Vsevolod Kremianskii
3328cfe3e8 chore: Drop redundant _maxNodeIndex in Model 2021-03-11 20:45:39 +07:00
Vsevolod Kremianskii
d84ba3fd3d feat: Add a switch to toggle walkmesh rendering 2021-03-11 20:36:16 +07:00
Vsevolod Kremianskii
e1b3ff3676 fix: Update animation regardless of the object being on screen 2021-03-11 19:57:32 +07:00
Vsevolod Kremianskii
b510e2c06d fix: Fix loading OnUserDefined from placeable blueprints
Endar Spire is now effectively completable!
2021-03-11 19:43:09 +07:00
Vsevolod Kremianskii
3b03676b35 fix: Complete animation action if animation in not supported 2021-03-11 19:34:47 +07:00
Vsevolod Kremianskii
0a4fb262e6 chore: Log routine arguments when calling a routine from script 2021-03-11 19:20:55 +07:00
Vsevolod Kremianskii
5efd1e02b8 chore: Log caller tag when executing a script 2021-03-11 19:04:49 +07:00
Vsevolod Kremianskii
c120f8382e feat: Add Stopwatch utility class 2021-03-11 18:19:45 +07:00
Vsevolod Kremianskii
cee4c4b048 refactor: Move talktable management from Resources into Strings 2021-03-11 17:02:06 +07:00
Vsevolod Kremianskii
be572da467 feat(tools): Add tool to create RIM archives from folders 2021-03-11 16:12:28 +07:00
Vsevolod Kremianskii
0e9aa13753 refactor: Rename *File classes to *Reader 2021-03-11 14:58:55 +07:00
Vsevolod Kremianskii
5d8bd9823d feat(game): Load DescIdentified property from item blueprint 2021-03-11 13:59:35 +07:00
Vsevolod Kremianskii
b51293430b feat(launcher): Add check box to toggle ehanced graphics mode 2021-03-10 14:11:28 +07:00
Vsevolod Kremianskii
f2642d915e fix: Fix levelling up not increasing the character level 2021-03-10 13:43:33 +07:00
Vsevolod Kremianskii
1054cb1cf6 feat: Run creatures spawn script, when created with CreateObject 2021-03-10 13:24:17 +07:00
Vsevolod Kremianskii
f6c08f1d21 fix: Friendly1 and Friendly2 are not mutual enemies after all (?) 2021-03-10 12:48:09 +07:00
Vsevolod Kremianskii
55180b4a53 fix(tools): Fix converting Vector GFF fields from JSON to GFF 2021-03-10 11:14:24 +07:00
Vsevolod Kremianskii
675e933844 refactor: Differentiate GOG TSL from Steam TSL
Steam TSL has slightly different cursors in the executable.
2021-03-10 00:58:11 +07:00
Vsevolod Kremianskii
abe3dbd30c feat: Add overload to attach renderbuffer to framebuffer color 2021-03-09 23:25:39 +07:00
Vsevolod Kremianskii
5bd736222a fix: Unbind shadows framebuffer after initializing it
This fixes TSL startup issue.
2021-03-09 23:03:23 +07:00
Vsevolod Kremianskii
e280a8a612 fix: Do not block k_ai_master from running
Quite a lot depends on it, not just combat.
2021-03-09 17:45:55 +07:00
Vsevolod Kremianskii
fcfed090a5 ci: Fix CI build (hopefully) 2021-03-09 16:16:33 +07:00
Vsevolod Kremianskii
2a5e99ec8b fix: Quaternions in GFF are stored as WXYZ, not XYZW 2021-03-09 15:55:03 +07:00
Vsevolod Kremianskii
c11b8aed66 chore: Tweak log messages 2021-03-09 15:41:36 +07:00
Vsevolod Kremianskii
f792f71578 refactor: Split debug messages into configurable channels 2021-03-09 15:21:55 +07:00
Vsevolod Kremianskii
c13addca92 chore: Remove excessive logging 2021-03-09 14:38:03 +07:00
Vsevolod Kremianskii
9d925a90aa fix: Must not be able to pick replies when entry is not skippable 2021-03-09 13:12:47 +07:00
Vsevolod Kremianskii
d4ff311cc1 fix: Bind default textures per framebuffer, not per shader program 2021-03-09 00:25:05 +07:00
Vsevolod Kremianskii
58fb95d942 fix: Fix loading TPC cubemaps 2021-03-08 23:49:40 +07:00
Vsevolod Kremianskii
5d7a7a3c9f fix: Friendly1 and Friendly2 factions are mutual enemies 2021-03-08 23:27:00 +07:00
Vsevolod Kremianskii
2a93c816dc fix: Change material walkability to match MDLops 2021-03-08 23:02:24 +07:00
Vsevolod Kremianskii
802141c3cf feat: Add a toggle for debugging pathfinding 2021-03-08 22:50:17 +07:00
Vsevolod Kremianskii
fdb53ee494 fix: If item texture variation is not found, use the first variation 2021-03-08 22:35:29 +07:00
Vsevolod Kremianskii
100e0b25b4 fix: Fix render order of particles
An ugly hack that is probably worse than simply rendering particles one
by one (?).
2021-03-08 19:58:41 +07:00
Vsevolod Kremianskii
4d46f9c292 chore: Drop experimental multiplayer code
It was supposed to be rewritten either way.
2021-03-08 14:56:18 +07:00
Vsevolod Kremianskii
32e81a037b build: Make libvideo non-optional 2021-03-08 14:45:59 +07:00