Commit Graph
100 Commits
Author SHA1 Message Date
Jan 55f48c9bc2 Add InfoString loading 2021-03-25 11:14:51 +01:00
Jan 613943b28c Move GDT and info string prefix constants into objconstants file 2021-03-25 11:12:46 +01:00
Jan 5551ff8df7 Move InfoString headers from Common to ObjCommon 2021-03-24 16:35:12 +01:00
Jan 628abd9b12 Fix missing cstring header for InfoStringFromStructConverter 2021-03-24 15:56:52 +01:00
Jan 2d97185c8f Move fields and string arrays for info string assets to common component 2021-03-24 15:50:36 +01:00
Jan abcce11b00 Split InfoString classes into multiple files depending on loading and writing code 2021-03-24 13:51:21 +01:00
Jan 9e00ad60e7 Add asset loader for font icon 2021-03-24 12:33:42 +01:00
Jan 79c1284193 Add asset loader for localize files 2021-03-23 17:16:36 +01:00
Jan 3ed63415a7 Add T6 assetloader for string tables 2021-03-23 01:30:10 +01:00
Jan 3529214596 Fix CsvStream not reading values properly 2021-03-23 01:28:54 +01:00
Jan 0ff06cad72 Add AssetLoaders for Qdb, ScriptParseTree and Slug 2021-03-23 01:28:33 +01:00
Jan 74f2bff716 Fix not using correct struct for ObjLoader for ddldef 2021-03-23 00:44:24 +01:00
Jan 5fbcbaf3c7 Fix not straight up inserting scriptstrings on loading from zone 2021-03-23 00:42:41 +01:00
Jan 4380a6c9f2 Set last byte of rawfile buffer to 0 when loading asset 2021-03-22 23:32:55 +01:00
Jan a18f001130 Dump zones in zone_dump/zone_raw subfolder 2021-03-22 13:23:24 +01:00
Jan 6f6d25da4a Always duplicate temp loaddef for T6 instead of only duplicating it if resource size is bigger than 0 2021-03-22 12:30:02 +01:00
Jan 1058ee7881 Write null memory at end of t6 fastfiles like the original linker does because the game's reader needs it for some reason 2021-03-22 09:49:42 +01:00
Jan d99eb0ab24 Use asset identified by name and type when writing asset dependency to make sure that the pointer always matches one that would have been written to the zone already even when using an asset from another loaded zone 2021-03-21 21:29:02 +01:00
Jan a2ef445455 Fix adding offsets on strings and assets 2021-03-21 10:19:51 +01:00
Jan c4aec3e147 Preserve zone definition meta data order 2021-03-21 10:19:27 +01:00
Jan 1d33cf2adf Save offset for reusing for any type that has a reusable reference 2021-03-20 16:04:17 +01:00
Jan 5cd5ae5533 Add metadata from zone definition as keyvaluepairs to zone for T6 2021-03-20 14:08:22 +01:00
Jan 5e08469635 Use custom parser values instead of simple parser values for parsing Zone definitions 2021-03-20 14:07:48 +01:00
Jan ef36d6cdc5 Use _strdup instead of strdup when using msvc 2021-03-19 16:41:18 +01:00
Jan 29e5898c2b Get rid of implicit size conversion warnings in ipak entry read stream 2021-03-19 16:41:04 +01:00
Jan dfaf5eba6b Define _CRT_SECURE_NO_WARNINGS to get rid of warnings for using functions like strcpy 2021-03-19 16:40:39 +01:00
Jan 2f700a48a9 Make sure fastfile offset is taken after alignment, marking following is done on the originally written data and writing partially uses the original data when writing dynamic sized data
too lazy to split into single commits
2021-03-19 15:09:44 +01:00
Jan 5443ed4261 Add scriptstrings from loaded zones to newly linked zone 2021-03-18 20:03:00 +01:00
Jan 2a6d7c84c2 Add ZoneScriptString class to store zone script strings 2021-03-18 16:55:30 +01:00
Jan 8736280ea8 Fix zone writing code not setting ptr following 2021-03-18 13:02:31 +01:00
Jan 0a4886e7ab Make sure zone memory can allocate blocks that are larger than its default maximum size and throw an error if allocation failed 2021-03-18 11:48:41 +01:00
Jan 50808bfad7 Fix xchunk processor not resetting input buffer size 2021-03-18 11:47:55 +01:00
Jan 2add1ba22d Make sure xchunk write size can specified to be smaller than xchunk size to respect zlib to add size instead of removing size due to not being able to compress 2021-03-18 11:47:41 +01:00
Jan 7c0504603e Basic write template based on load template 2021-03-18 10:58:07 +01:00
Jan 58eb64114c Add missing headers for gcc 2021-03-17 23:32:42 +01:00
Jan 1c35f43c25 Add noexcept specifier to XChunkException and WritingException 2021-03-17 23:25:58 +01:00
Jan 0bd4160956 Use static variable for void* PTR_INSERT and PTR_FOLLOWING instead of constexpr because thats incompatible with g++ 2021-03-17 23:16:09 +01:00
Jan 724e221ba4 Write XChunks in fastfiles 2021-03-17 22:25:47 +01:00
Jan f22012d282 Move XChunk processors to ZoneCommon 2021-03-16 20:42:48 +01:00
Jan ca1329323b Add header writing to IW4 ZoneWriterFactory 2021-03-16 13:30:36 +01:00
Jan c9f88e5e93 Use ZoneConstants class for IW4 2021-03-16 13:19:56 +01:00
Jan 03775944ce Add skeleton for IW4 writing 2021-03-16 12:52:26 +01:00
Jan 4feea62280 ZoneWriting stuff 2021-03-16 12:37:15 +01:00
Jan 9d26c9c927 Add ZoneWriting basis 2021-03-15 22:36:07 +01:00
Jan 301f6e3e7a Use unique_ptr for ZoneLoading 2021-03-14 12:34:50 +01:00
Jan 94230cefb0 Make empty linking asset if asset is ignored 2021-03-13 19:32:51 +01:00
Jan d65f906ecb Remove FxImpactTable asset name 2021-03-13 15:48:55 +01:00
Jan b8cfdba5ec Make ZoneDefinition parser recognize strings as asset names 2021-03-13 15:48:26 +01:00
Jan cff70daccb Make comment removing preprocessor not recognize comments when inside a string 2021-03-13 15:48:04 +01:00
Jan 8a227d1171 Fix SimpleLexer not initializing read numbers property 2021-03-13 15:47:42 +01:00
Jan a84a4051f9 Write ZoneDefinition entry in parenthesis if there are unparsable character sequences 2021-03-13 15:10:03 +01:00
Jan 0db526d1c8 Check for already loaded assets when loading asset dependencies 2021-03-13 14:54:56 +01:00
Jan 5f6d976748 Fix ZoneDefinition parser condition for leaving out slashes 2021-03-13 14:54:36 +01:00
Jan a7860c7c76 Add AssetLoader basis 2021-03-13 14:27:20 +01:00
Jan 83080db991 Include filesize when opening a file with searchpaths 2021-03-13 10:27:18 +01:00
Jan 62247cecda Create directories for output fastfile for linker 2021-03-13 10:25:37 +01:00
Jan a57201d78d Rename AssetLoading from Linker to ZoneCreation 2021-03-12 11:20:02 +01:00
Jan 43966e8e00 Remove unused xblocks vector in Zone 2021-03-12 10:57:31 +01:00
Jan b360816190 Add AssetLoaders for linker that handle asset types for their specific game 2021-03-12 10:55:55 +01:00
Jan 792509d11d Read assetlists for ignoring assets 2021-03-11 14:04:53 +01:00
Jan 88b5eefe24 Create CsvStream class to replace CsvWriter 2021-03-11 12:43:33 +01:00
Jan 9b15afa70e Make ZoneDefinition sequences also accept eof instead of new line 2021-03-10 15:17:36 +01:00
Jan 8798779b39 Add ZoneDefinition Lexer 2021-03-10 14:58:02 +01:00
Jan c47ea48b6b Open search paths for assets, gdts and source in Linker 2021-03-10 12:26:09 +01:00
Jan 8c7926e745 Add document describing folder structure 2021-03-09 14:30:58 +01:00
Jan 6b80a1f951 Add sequences for ZoneDefinition includes and ignores 2021-03-09 11:20:05 +01:00
Jan 00462b9228 Include parsing when include ZoneCommon 2021-03-09 11:19:49 +01:00
Jan f3e8100526 Add ZoneDefinition Parsing 2021-03-09 11:04:34 +01:00
Jan 88ff98f334 Add Simple Parsing implementations for basic parsers 2021-03-09 11:04:04 +01:00
Jan 8d9080066f Extract commonly used Parser code to new Parser component 2021-03-08 20:06:34 +01:00
Jan d96f813e73 Restructure ZoneDefinitionWriting 2021-03-08 17:28:24 +01:00
Jan e6a91c0305 add linker basis 2021-03-08 12:46:27 +01:00
Jan 39a1485be6 Add T6 attachment unique dumper 2021-03-07 17:51:02 +01:00
Jan 7e9dfe9127 move iw4 string arrays to commoniw4 header 2021-03-07 15:33:21 +01:00
Jan ba1bca775b Move T6 string arrays to CommonT6 header 2021-03-07 15:30:48 +01:00
Jan 5db7eaeec3 Add T6 Attachment dumper 2021-03-07 15:25:58 +01:00
Jan b891f9527e Change the condition under which assets are dumped inside a gdt:
Make the parameter --gdt to manually make the tool dump as a gdt
2021-03-07 15:25:47 +01:00
Jan 313e9e9f1a Remove reference asset names from info strings 2021-03-06 21:20:13 +01:00
Jan 78107b74e0 add newline to gdt unit tests prints 2021-03-06 14:24:16 +01:00
Jan 603994ce61 Make sure gdt values are escaped 2021-03-06 14:13:46 +01:00
Jan ea7b1eadae Make dumpers works as gdt dumpers and raw dumpers 2021-03-06 13:25:08 +01:00
Jan fc59a09d02 Make unlinker open a gdt file if not raw specified 2021-03-06 12:09:00 +01:00
Jan aa972614e5 Extract Gdt reading and writing classes to GdtStream file 2021-03-06 10:47:25 +01:00
Jan defc388210 Rename GDT to Gdt to keep naming schema 2021-03-06 00:57:09 -08:00
Jan 82a08d0850 Add unit tests for writing gdts 2021-03-06 09:40:05 +01:00
Jan 78ebeaaa7b Add Gdt parsing 2021-03-06 09:28:14 +01:00
Jan abb268a819 Add AssetDumperContext to bundle context fields for dumping
(cherry picked from commit ed8331280392ef3a2b4657c5dbd0880463d85f2c)
2021-03-05 18:11:56 +01:00
Jan 88c48e8107 Add dynamic allocation alignment to be able to load T6 MemoryBlock asset which isnt used at all so why am i doing this again 2021-03-05 09:23:37 +01:00
Jan 286eaadd1c Update changelog for 0.0.2 2021-03-04 19:17:47 +01:00
Jan bedd44eb6b Move scripts to scripts folder and remove unused docker image stuff 2021-03-04 08:46:18 -08:00
Jan ba699d36df Add docker based gitlab ci config 2021-03-04 07:45:29 -08:00
Jan 6937e7441c also specify image for test stage 2021-03-04 13:16:45 +01:00
Jan f9d515f141 reenable gitlab buildpipeline for gcc linux builds 2021-03-04 13:15:57 +01:00
Jan 159414d39c Fix type alignment macro inconsistencies 2021-03-04 13:06:36 +01:00
Jan 9ed749c9d2 Get rid of inheritence on Vector4 struct to prevent offsetof macro giving out a warning on gcc 2021-03-04 03:45:14 -08:00
Jan 35d9110783 Add alignment specifiers for gcc specifically to match MSVC alignments 2021-03-04 03:29:16 -08:00
Jan 3c9a9c038d Add alignment macros for asset definition that make use of parameter values 2021-03-04 11:41:09 +01:00
Jan 5f3aa2a460 Implement defines with parameters to ZoneCodeGenerator 2021-03-04 11:37:06 +01:00
Jan 29b962e949 Add offset of members to assetstructtests 2021-03-04 09:04:25 +01:00
Jan a10b3b7d3c Change ZoneLoad alloc method getting alignment via alignof to alignment value being specified directly via number 2021-03-04 08:44:23 +01:00