Commit graph

1247 commits

Author SHA1 Message Date
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
5b90c6d542 Add Python script to analyze extracted resources 2021-04-12 21:36:17 +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
0523998163 Add NCS disassembling step to extract_resources.py 2021-04-12 16:47:17 +07:00
Vsevolod Kremianskii
e01bc053f3 Add Python script to extract and convert resources 2021-04-12 16:06:53 +07:00
Vsevolod Kremianskii
2a95fbfb3f Ignore case when extracting BIF files 2021-04-12 13:42:14 +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
b00bb7bb00 Add tool to "unwrap" audio files 2021-04-10 16:49:12 +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