Commit Graph
100 Commits
Author SHA1 Message Date
Jan 41faee0979 Restructure template code for arraypointer and singlepointer to better reuse code instead of duplicating it 2021-02-28 17:09:39 +01:00
Jan 9578a24c49 Fix ZCG new operation 2 needs parenthesis if precendence is equal 2021-02-28 17:04:39 +01:00
Jan 5b7f33b63d implement loadzone singlepointer 2021-02-20 16:46:00 +01:00
Jan 04491e21f2 zoneload member skeleton 2021-02-20 15:44:26 +01:00
Jan 5be0b28323 Implement ZoneLoad skeleton 2021-02-20 14:40:14 +01:00
Jan 447e729964 prevent shuffling usedtypes when building rendering context 2021-02-20 12:36:12 +01:00
Jan fe121853e2 render zoneload header 2021-02-20 12:28:38 +01:00
Jan 5db8c3adf1 fix image formats not being inside all image formats array 2021-02-20 10:49:25 +01:00
Jan df549b811d fix custom bit size not being applied to variables 2021-02-20 10:46:04 +01:00
Jan 989bc9fc30 Fix enum parent type not being set 2021-02-20 10:45:44 +01:00
Jan 44e739ba44 fix rendering context only adding asset types instead of the other way around 2021-02-20 10:45:29 +01:00
Jan b4f1e09315 Change cpp unit test framework to catch2 for all cpp unit test projects 2021-02-20 10:44:33 +01:00
Jan 7ff87c2b73 fix setting custom align 2021-02-20 03:40:35 +01:00
Jan a2fe10bba6 make zonecode use the new zonecode generator to generate its code 2021-02-20 03:30:45 +01:00
Jan ed47d514e1 do not make dummy output for zoneload template 2021-02-20 03:30:23 +01:00
Jan 60a689f58c forward declare every struct and union to be able to self-reference 2021-02-20 03:30:00 +01:00
Jan a2029da1d5 Implement asset struct tests rendering 2021-02-20 03:14:00 +01:00
Jan d4a98b7c52 add basis for code rendering 2021-02-20 02:33:40 +01:00
Jan 48afb4d514 Remove unused info fields for custom fastfile align 2021-02-20 00:34:19 +01:00
Jan a6f547f1df add post processors for leafs, memberleafs, unions and usages 2021-02-20 00:32:26 +01:00
Jan 42851bcaf8 add unit tests for game 2021-02-19 23:23:46 +01:00
Jan e09793818f add unit tests for sequence architecture 2021-02-19 23:17:53 +01:00
Jan 5a7b184aa2 add placeholder test classes 2021-02-19 23:06:23 +01:00
Jan 0d9405cb4a add action sequence tests 2021-02-19 23:06:13 +01:00
Jan 0fcb3d388a implement reordering seequence 2021-02-19 21:34:37 +01:00
Jan 0cafabc44e implement set block sequence 2021-02-19 20:44:46 +01:00
Jan 48e3738c05 implement parsing for reusable and scriptstring and string 2021-02-19 20:23:11 +01:00
Jan 873c23fb56 implement name sequence parsing 2021-02-19 19:42:10 +01:00
Jan 3ffcac04dd implement count sequence parsing 2021-02-19 19:37:38 +01:00
Jan 4a0395c5df parse asset 2021-02-19 17:54:36 +01:00
Jan 550eb1e4d3 implement parsing of actions 2021-02-19 17:39:35 +01:00
Jan 524e188db1 fix evaluation not resolving correctly due to being unfinished 2021-02-19 17:02:49 +01:00
Jan 7c51c26255 Calculate size and alignment in post processor 2021-02-19 16:23:16 +01:00
Jan 1264be4274 Parse game and block commands 2021-02-19 10:03:34 +01:00
Jan 2747e1f0f2 resolve forward declarations 2021-02-19 01:11:06 +01:00
Jan e51babaeb4 parse variables 2021-02-19 00:39:33 +01:00
Jan cce9494856 parse typedefs 2021-02-19 00:15:00 +01:00
Jan f0753c7e3c handle variable defines in child block close 2021-02-18 22:21:58 +01:00
Jan fb55cdb468 parse struct and union sequences 2021-02-18 21:55:13 +01:00
Jan 57547854c4 Parse forward declarations 2021-02-18 18:38:00 +01:00
Jan 83b7cd77c7 add parsed definitions to repostiory 2021-02-18 18:29:17 +01:00
Jan 031d851c43 Parse enum members 2021-02-18 18:10:49 +01:00
Jan 5d5fc86923 create enum definitions from headers 2021-02-18 17:15:46 +01:00
Jan 3c1599c1a0 Set closing block variable names 2021-02-18 15:59:22 +01:00
Jan bb877f87bb Add sequences for commands 2021-02-18 14:41:27 +01:00
Jan cef9b08efb Measure how long reading the header file takes 2021-02-14 10:46:29 +01:00
Jan b25d64e5e7 Fix define directive not accepting define names with digits in them 2021-02-14 10:33:08 +01:00
Jan e685348abd Add blocks to header parsing state that manipulate which sequences are valid 2021-02-14 10:27:47 +01:00
Jan 3f08be0564 Add stream proxy for declaring pack values 2021-02-14 10:27:18 +01:00
Jan efa39a8ac3 Restructure StreamProxies to use common basis for matching directives 2021-02-14 10:26:18 +01:00
Jan e277de4517 Fix lexer calculing hex number length 1 too long 2021-02-14 10:24:23 +01:00
Jan e40f1ec0b7 Add blocks and built in types to zcg cpp 2021-02-14 00:53:23 +01:00
Jan 216125739c Cache lines in Lexer and show original input when running into an error 2021-02-13 23:16:19 +01:00
Jan 40fedc905d Add header sequences for zcg cpp 2021-02-13 18:18:47 +01:00
Jan f14357537e add unit tests for not consuming matchers 2021-02-13 16:18:53 +01:00
Jan 32f815c378 Make sure captures work with transforms 2021-02-13 16:01:58 +01:00
Jan 37232e3176 Matcher and sequence testing stuffs 2021-02-13 14:54:34 +01:00
Jan 0f70f9586c Implement sequence matcher and parser magic 2021-02-13 00:12:26 +01:00
Jan fe1f391bcc Add keywords to header lexer of zcg cpp 2021-02-12 00:38:38 +01:00
Jan 87b7921c73 Add Header Lexer for ZCG cpp 2021-02-12 00:01:41 +01:00
Jan 8b8f1d4f2a Add unit tests for IncludingStreamProxy 2021-02-11 13:44:18 +01:00
Jan e99e66cec5 Separate command files to a single command file per asset and include them in the main command file 2021-02-11 11:51:36 +01:00
Jan 751cb2cd6e Add c preprocessor proxies to command file parser to support defines and include 2021-02-11 11:51:06 +01:00
Jan 1822979a8b Add implementation for ZCG cpp defines proxy 2021-02-10 23:46:15 +01:00
Jan f9ef7cc35b Add Tests for ZCG cpp 2021-02-10 18:03:50 +01:00
Jan 31497d804c Change catch2 version to 2.13.4 2021-02-10 16:47:16 +01:00
Jan c283bda1f4 Add catch2 submodule 2021-02-10 16:45:16 +01:00
Jan e93c20faf8 Optimize ParserFileStream making unused temp copies of path opject 2021-02-10 15:36:22 +01:00
Jan f91c7f6afc Extract include directive matcher code into separated methods to improve readability 2021-02-10 15:29:54 +01:00
Jan d876bc5e25 Add file inclusion for ZCG cpp 2021-02-10 14:21:58 +01:00
Jan 21440daf27 Change ZCG cpp to be able to handle multiple tasks 2021-02-08 18:02:27 +01:00
Jan 22b95e337a Add PrettyPrinter to ZCG cpp 2021-02-08 18:02:16 +01:00
Jan 6c45c99687 Add Repository Implementation for ZCG cpp 2021-02-08 17:06:00 +01:00
Jan 3b716965a5 Add information and computations to ZCG cpp 2021-02-08 14:33:57 +01:00
Jan 65cf1ef9c2 Add ZCG cpp domain classes 2021-02-07 23:31:45 +01:00
Jan 584492d1ef Implement ZCG CPP workflow basis 2021-02-07 17:28:19 +01:00
Jan c09c685369 Create project for ZoneCodeGenerator rewrite in c++ 2020-11-01 23:12:28 +01:00
Jan 911e43d4c2 add dumping of iw4 vehicle files 2020-10-27 22:35:26 +01:00
Jan 3b1e62e398 Add dumping of iw4 weapon files 2020-10-26 01:00:24 +01:00
Jan b5141bcd1c Use countof and enum num entries to get the amount of entries in t6 weaponfulldef 2020-10-25 19:51:34 +01:00
Jan eb97560e0d Add dumping of T6 physconstraints 2020-10-25 13:14:16 +01:00
Jan a925bd505d Fix assets being added to their pools twice when loaded from a fastfile 2020-10-25 11:41:26 +01:00
Jan 6cca00b8d8 Add dumping of t6 physpreset, tracer and zbarrier in their respective infostring files 2020-10-24 13:46:37 +02:00
Jan 71c291ade2 Fix t6 weapondumper not freeing temporary fulldef 2020-10-24 12:50:54 +02:00
Jan 7868916a25 Add dumping of T6 vehicles as vehiclefiles 2020-10-24 02:48:16 +02:00
Jan c68debc3da Add T6 playeranimtype from zombie mode for dumping weapons 2020-10-23 16:22:24 +02:00
Jan 70da70de65 Dump t6 weapon explosiontag in weaponfile 2020-10-23 15:55:30 +02:00
Jan eed7164b5b Save scriptstrings per zone and not per asset since that solves all problems with multiple assets of the same zone referencing the same struct in memory that has scriptstring indices 2020-10-23 15:54:27 +02:00
Jan f8e7a10789 Also remove string reference in scriptstring callback from WeaponDumper 2020-10-23 13:35:50 +02:00
Jan 2e61f46544 Make InfoStringDumper scriptstring callback return std::string instead of const std::string& since a reference is not needed 2020-10-23 13:26:32 +02:00
Jan 99195232bb Add dumping of hideTags and noteTrackSoundMap to weapons for T6 2020-10-23 12:55:07 +02:00
Jan 991bcf6d58 Make sure that assets that use scriptstrings always have an empty scriptstring at position 0 2020-10-23 12:54:51 +02:00
Jan 3cfcfa0c5d Make sure scriptstring arrays are being reallocated when they are reusable so if it is being referenced again the scriptstring indices are the ones of the zone instead of the asset that originally loaded them 2020-10-23 12:54:18 +02:00
Jan 6cca45fc26 Add scriptstring value callback to weapon loading of t6 2020-10-23 12:52:44 +02:00
Jan 068add0eef Fix script string indices being off by one due to inserting empty script string that is not necessarly in the zone 2020-10-23 12:51:18 +02:00
Jan 7acf07a4b4 Use offsetof macro instead of fixed offset values for weaponfields of t6 2020-10-20 17:30:10 +02:00
Jan c86139b0fa Add dumping of t6 weapons 2020-10-20 12:49:20 +02:00
Jan d942c5a625 Make AbstractAssetDumper use the XAssetInfo instead of the raw asset pointer to be able to access dependencies and scriptstrings 2020-10-20 12:48:53 +02:00
Jan ab217bb1a9 Fix AddonMapEnts dumping code not including necessary headers 2020-10-19 08:29:58 +02:00
Jan fc336a1019 Add dumping of iw4 addonmapents 2020-10-18 17:41:52 +02:00