Commit Graph

566 Commits

Author SHA1 Message Date
Daan Vanden Bosch
206cc3ebb0 More .dat object properties are now parsed. 2019-08-12 20:34:47 +02:00
Daan Vanden Bosch
1a1a52bd43 Seaside area at night variant 1 can now be used to add a second tower map. 2019-08-12 17:55:04 +02:00
Daan Vanden Bosch
29b2e754dd Fixed float parsing bug in assembly lexer. 2019-08-12 17:18:42 +02:00
Daan Vanden Bosch
6c17c36b61 Split NPC counts off into its own dockable component. 2019-08-11 21:59:36 +02:00
Daan Vanden Bosch
66127253d3 Split code into one module per tool + core and application module. 2019-08-10 22:09:06 +02:00
Daan Vanden Bosch
cf1cd26c41 Fixed a bug in area variants computation. 2019-08-10 19:37:34 +02:00
Daan Vanden Bosch
ecbab0637d Area variants now change automatically when bb_map_designate instructions are added, deleted or changed. The 3D view also updates automatically. 2019-08-10 18:11:27 +02:00
Daan Vanden Bosch
2d551a1951 Separated most of quest domain models from quest parsing code and made quest parsing data structures more structured cloning-friendly. All areas for the quest's episode are now shown in the area selector with the number of entities in them in parentheses. 2019-08-10 00:27:57 +02:00
Daan Vanden Bosch
7cfcf5222c Script editor now supports line comments. 2019-08-08 11:02:06 +02:00
Daan Vanden Bosch
269b9cbd25 Removed unnecessary default quest character. 2019-08-07 22:31:02 +02:00
Daan Vanden Bosch
48b683f514 Fixed .qst embedded file naming bug. Implemented simpler PRS compression algorithm that seems to cause fewer errors during roundtrip tests. 2019-08-07 22:28:03 +02:00
Daan Vanden Bosch
194df177ab When creating a new quest and saving it, the filename of a quest that was loaded earlier was shown. This is now fixed. 2019-08-07 14:22:47 +02:00
Daan Vanden Bosch
c8ae97d8f6 Fixed bug in assembler. 2019-08-07 13:57:59 +02:00
Daan Vanden Bosch
d32c56ed02 Improved quest unit test. 2019-08-07 09:03:25 +02:00
Daan Vanden Bosch
fbef785410 Refactored opcode types to make them structurally clonable. 2019-08-07 08:43:47 +02:00
Daan Vanden Bosch
b928738d06 Float literal arguments passed via the stack are now handled correctly in the assembler and disassembler. 2019-08-06 17:37:34 +02:00
Daan Vanden Bosch
d3efe94837 Started working on a quest script VM. It has a call stack, supports threading, waiting for vsync and can execute some instructions at the moment. 2019-08-06 17:07:12 +02:00
Daan Vanden Bosch
054b1c99fb Fixed bugs in DFA code. All dynamic label references are now detected unless they're computed in a way which is too complex to analyse at the moment. 2019-08-06 01:14:57 +02:00
Daan Vanden Bosch
9284cf4a8a Fixed assembler bug related to arg_pushr. 2019-08-05 22:33:07 +02:00
Daan Vanden Bosch
2fc55cdc1a Dynamically referenced object code segments are now parsed correctly. 2019-08-05 16:56:39 +02:00
Daan Vanden Bosch
1ba7d3b6a7 All bugs resulting from opcode typing changes have been fixed. 2019-08-05 00:14:39 +02:00
Daan Vanden Bosch
dbe1b06fa6 Only one bug remains after opcode typing changes. 2019-08-04 22:59:32 +02:00
Daan Vanden Bosch
8e5472044b Fixed most issues resulting from opcode typing changes. 2019-08-04 19:50:02 +02:00
Daan Vanden Bosch
7aefdb688c Opcode code is now generated from yaml definitions. 2019-08-04 17:52:01 +02:00
Daan Vanden Bosch
fba6ac3e10 Created yaml file with opcode definitions (70% complete). 2019-08-03 23:23:55 +02:00
Daan Vanden Bosch
83d32dfe99 Added basic algorithm to compute the possible values of a register at a specific program point. 2019-08-02 00:13:19 +02:00
Daan Vanden Bosch
76c3169fd3 Added ValueSet, an efficient integer set. 2019-08-01 19:37:26 +02:00
Daan Vanden Bosch
d9ff4308e0 Added control flow graph creation algorithm. 2019-07-31 21:37:17 +02:00
Daan Vanden Bosch
ccb31854c3 Object code is now parsed recursively from its entry labels to ensure all segments are parsed as the correct type. 2019-07-30 23:15:23 +02:00
Daan Vanden Bosch
a1cec18636 Fixed bugs in assembler. 2019-07-30 16:39:50 +02:00
Daan Vanden Bosch
7d89c870cc Fixed bugs in bin object code parsing and the assembler. 2019-07-29 23:46:11 +02:00
Daan Vanden Bosch
1da64b8632 Data segments are now supported in quest script assembly. 2019-07-29 21:59:16 +02:00
Daan Vanden Bosch
3edb861693 Object code and labels are now represented by segments. Each segment describes the instructions or data denoted by a label. 2019-07-29 01:02:22 +02:00
Daan Vanden Bosch
f95e7ea220 All unit tests pass again. Removed dependency on text-encoding. Refactored cursors to reuse more code. 2019-07-27 21:47:49 +02:00
Daan Vanden Bosch
4eeda19837 Jest tests are working again. 2019-07-27 17:13:00 +02:00
Daan Vanden Bosch
e859477727 Linting works again. Static asset generation is working as before but has been bugged since an earlier change. 2019-07-27 15:40:30 +02:00
Daan Vanden Bosch
d5bfa67d82 Ejected from create-react-app. Development server and production builds are working. Using css modules now. 2019-07-27 01:49:19 +02:00
Daan Vanden Bosch
f86a895900 Made most simple quest properties editable. 2019-07-25 22:43:27 +02:00
Daan Vanden Bosch
7f4569d40a Fixed bug in assembly worker. Improved undo stack management in quest editor. Improved robustness of quest editor layout persistence. 2019-07-25 17:02:35 +02:00
Daan Vanden Bosch
7f404ff35a Fixed bug in quest editor UI persister. 2019-07-24 23:28:22 +02:00
Daan Vanden Bosch
50eaf43082 Script editor is now readonly if no quest is loaded. Fixed a bug in the assembly worker. Fixed wrong opcode. 2019-07-24 22:53:20 +02:00
Daan Vanden Bosch
1d253e78f8 Bin files are now parsed completely. Fixed bugs related to global key binds. The URL hash is now used for remembering which tool is active between browser refreshes. 2019-07-24 22:15:38 +02:00
Daan Vanden Bosch
7f34ed9d69 Changing an entity's position via the entity info component now results in an action on the undo stack. 2019-07-24 20:47:20 +02:00
Daan Vanden Bosch
5bd8feb766 Script editor undo is now integrated with general undo system. 2019-07-24 20:10:34 +02:00
Daan Vanden Bosch
c0e3ac924a Improved global keybind handling. General quest editor undo stack is now disabled when the script editor is focussed. 2019-07-24 18:07:32 +02:00
Daan Vanden Bosch
52376193ae Quest editor layout is now persisted. 2019-07-24 16:44:17 +02:00
Daan Vanden Bosch
25b7a4869b Fixed bug with golden layout. 2019-07-24 15:53:18 +02:00
Daan Vanden Bosch
11c00e1af7 Fixed bug that would let the camera pan when pressing arrow keys anywhere. 2019-07-24 15:48:39 +02:00
Daan Vanden Bosch
ed41a2398b Put all user settings persistence code in its own module. 2019-07-24 14:31:49 +02:00
Daan Vanden Bosch
3fd812012a Tweaked look and feel. 2019-07-24 13:48:01 +02:00
Daan Vanden Bosch
350ae884e8 Now using golden-layout in quest editor. 2019-07-23 18:39:47 +02:00
Daan Vanden Bosch
e4f78a9d82 Improved asm editor performance with a web worker. 2019-07-23 15:54:42 +02:00
Daan Vanden Bosch
1840bf6575 Added assembler worker code. 2019-07-23 11:03:35 +02:00
Daan Vanden Bosch
fdebfabbda Changed button text. 2019-07-22 23:29:10 +02:00
Daan Vanden Bosch
a9f46ae4f3 Added complete assembler error checking to the editor. Improved editor autocompletion. Script asm modifications are now persisted when saving. 2019-07-22 22:51:44 +02:00
Daan Vanden Bosch
1408b2ffdc Improved asm editor highlighting. 2019-07-22 19:28:12 +02:00
Daan Vanden Bosch
769e6a8619 Added basic assembler. 2019-07-22 16:03:58 +02:00
Daan Vanden Bosch
cb7f088f22 Fixed bug in prs compression code. Improved prs compression performance by about 5x. Instructions are now written as object code in quest bin files. 2019-07-22 12:31:20 +02:00
Daan Vanden Bosch
73e199d724 Quest script assembly can now be viewed. 2019-07-21 20:44:34 +02:00
Daan Vanden Bosch
99d401e785 Linting and eliminated mobx warning. 2019-07-21 10:44:33 +02:00
Daan Vanden Bosch
14dd8dabff Improved quest script instruction set model. 2019-07-21 00:11:26 +02:00
Daan Vanden Bosch
7e5e34d770 New quests can now be created. The created quests don't have initialization code yet. 2019-07-20 21:18:09 +02:00
Daan Vanden Bosch
402bd0d1ef Linting. 2019-07-20 00:15:36 +02:00
Daan Vanden Bosch
15327d1478 Huge performance improvement when translating quest entities. 2019-07-20 00:14:51 +02:00
Daan Vanden Bosch
f670718637 Simplified mesh creation. Some performance improvements. Added debug mode to quest viewer that shows per-section colored area render geometry. 2019-07-19 21:49:59 +02:00
Daan Vanden Bosch
a181847647 Ninja render geometry is now parsed correctly. 2019-07-19 19:34:48 +02:00
Daan Vanden Bosch
8c21ea59c9 Quest editor now has undo/redo. 2019-07-18 15:39:23 +02:00
Daan Vanden Bosch
7b7daa29ac Refactored entity controls. The selection doesn't change anymore while controlling the camera. 2019-07-17 21:59:41 +02:00
Daan Vanden Bosch
8223107921 Refactored model loading code. 2019-07-17 19:37:48 +02:00
Daan Vanden Bosch
3122c256fb Refactored xj parsing code somewhat. 2019-07-16 17:12:57 +02:00
Daan Vanden Bosch
769e0e8377 Fixed issues with textures and tweaked lighting and ground color in quest renderer. 2019-07-13 21:48:18 +02:00
Daan Vanden Bosch
f23fe0091b Walls are not rendered anymore in the quest editor. 2019-07-13 18:58:11 +02:00
Daan Vanden Bosch
7c85081bb0 Objects are now rendered with textures in the quest editor. 2019-07-13 18:12:09 +02:00
Daan Vanden Bosch
60dcbae9b4 Textures are now repeated with mirroring. 2019-07-13 17:40:48 +02:00
Daan Vanden Bosch
46eb7cfdd0 Textures can now be applied to XJ models in the model viewer. 2019-07-13 17:09:28 +02:00
Daan Vanden Bosch
ff40ab7264 Using alpha test instead of transparency in npc models. 2019-07-13 13:43:18 +02:00
Daan Vanden Bosch
8163cd2299 Fixed bug in texture application and tweaked quest renderer camera settings. 2019-07-12 23:55:37 +02:00
Daan Vanden Bosch
ac31ea83f6 The quest editor now shows most enemies with textures. 2019-07-12 21:01:07 +02:00
Daan Vanden Bosch
43ca288221 Textures can now be applied to models in the model viewer. 2019-07-12 18:52:49 +02:00
Daan Vanden Bosch
81c3668706 Fixed bugs in model viewer. Model viewer now automatically pauses when unmounted. NJ texture coordinates are now parsed. 2019-07-12 13:10:51 +02:00
Daan Vanden Bosch
cb5e9427f7 Upgraded dependency minor/patch versions. 2019-07-11 17:40:23 +02:00
Daan Vanden Bosch
36cb131920 Added XVM texture viewer. 2019-07-11 17:30:23 +02:00
Daan Vanden Bosch
a60c69a3ef Refactored area render geometry code. 2019-07-09 20:22:18 +02:00
Daan Vanden Bosch
f1b3df9754 Refactored BufferCursor into a hierarchy of cursors and a ResizableBuffer to improve code clarity. 2019-07-08 23:56:05 +02:00
Daan Vanden Bosch
4e540acf0c Refactored area collision detection geometry parsing code. 2019-07-07 01:16:12 +02:00
Daan Vanden Bosch
9c71c3deb8 Clearer naming of NJ types. 2019-07-06 21:55:02 +02:00
Daan Vanden Bosch
ee7756487d Put player models in the canonical order. 2019-07-04 14:53:39 +02:00
Daan Vanden Bosch
7335042c53 The selected class and animation are now highlighted in the model viewer. 2019-07-03 14:27:44 +02:00
Daan Vanden Bosch
27fdefe74a Two small bugfixes. 2019-07-03 13:29:07 +02:00
Daan Vanden Bosch
f06d6d22e8 Added list of standard player animations to model viewer. 2019-07-03 12:37:40 +02:00
Daan Vanden Bosch
d982c6b1c9 Fixed bug that resulted in vertices being weigthed to the wrong bones. 2019-07-03 11:35:57 +02:00
Daan Vanden Bosch
7da5505124 Fix light in place so that it doesn't rotate with the camera in model viewer. 2019-07-03 10:53:22 +02:00
Daan Vanden Bosch
81c4d03325 Improved idle performance by not rendering at all when there's no user interaction or animation running in any of the renderers. Fixed memory leak. Fixed issues with current frame display and manual frame change in model viewer. 2019-07-03 00:43:17 +02:00
Daan Vanden Bosch
3c8f7ba01e Added lint task and enforced code style in static_generation and test. 2019-07-02 21:20:11 +02:00
Daan Vanden Bosch
19681d69a3 Enforced stricter eslint rules. 2019-07-02 20:56:33 +02:00
Daan Vanden Bosch
3498a10385 Added prettier and unleashed on the code base. 2019-07-02 18:08:06 +02:00
Daan Vanden Bosch
37690ef1e6 Code style consistency. 2019-07-02 17:00:24 +02:00
Daan Vanden Bosch
3c398d6133 Small tweaks. 2019-07-02 13:59:45 +02:00
Daan Vanden Bosch
017eb3e3e0 PSO v2 NJM files can now be parsed. 2019-07-01 21:20:09 +02:00
Daan Vanden Bosch
f19f2df2d2 Added various improvements. 2019-07-01 15:01:40 +02:00
Daan Vanden Bosch
e8226d94be Bugfix: respect the original bone's rotation order in animation keyframes. 2019-07-01 13:05:58 +02:00
Daan Vanden Bosch
6579a53d62 Added some functionality to the model viewer to aid in debugging. 2019-07-01 12:13:05 +02:00
Daan Vanden Bosch
43a4c7503d Refactored binary data format code. 2019-07-01 08:53:16 +02:00
Daan Vanden Bosch
8d9016bb30 Added all standard player models to the model viewer. 2019-06-30 23:55:28 +02:00
Daan Vanden Bosch
342ca81045 Fixed bug in model viewer that prevented animations from playing after changing the model. 2019-06-30 20:03:37 +02:00
Daan Vanden Bosch
a162b6ae62 Added model viewer and refactored the renderer into two separate renderers. 2019-06-30 19:55:30 +02:00
Daan Vanden Bosch
d2d83c82cb Bone weights are now extracted from nj files. 2019-06-30 02:07:59 +02:00
Daan Vanden Bosch
6b1e2e15c3 Models now use skeletons for animation. 2019-06-30 01:28:10 +02:00
Daan Vanden Bosch
3203e0a649 Improved ninja parsing and animation. 2019-06-29 23:18:52 +02:00
Daan Vanden Bosch
a36e177eef Extracting more data from njm files. 2019-06-29 19:09:38 +02:00
Daan Vanden Bosch
de3de9256b Started working on animation support in model viewer. 2019-06-27 18:50:22 +02:00
Daan Vanden Bosch
a639eb683f Some renaming. 2019-06-26 17:47:53 +02:00
Daan Vanden Bosch
056eb50b04 Added support for several formats and PRC decryption. 2019-06-26 17:21:05 +02:00
Daan Vanden Bosch
ab9a6afd54 Fixed bug in quest parsing code. 2019-06-23 02:45:56 +02:00
Daan Vanden Bosch
2ec99ea005 Improved the way npc flags are handled in dat files. 2019-06-22 20:41:26 +02:00
Daan Vanden Bosch
a21d31ce3a Fixed detection of barbarous wolves, pouilly slimes, sinow golds, yowies and kondrieu. 2019-06-22 20:29:16 +02:00
Daan Vanden Bosch
fe3859b782 Hunt methods are now sortable. 2019-06-22 17:05:42 +02:00
Daan Vanden Bosch
5f7a4d5c1d Filter out more quests that don't drop items. 2019-06-22 14:58:57 +02:00
Daan Vanden Bosch
15e652a5f4 Visual bug fix and improved help text for hunt optimizer. 2019-06-22 12:23:24 +02:00
Daan Vanden Bosch
2cec75224e Visual bug fix. 2019-06-22 12:08:03 +02:00
Daan Vanden Bosch
adaa36031e Hunt method times can now be customized by the user. 2019-06-22 01:12:39 +02:00
Daan Vanden Bosch
71feaf7867 Quests are now loaded from a json file generated from quest files. 2019-06-22 00:27:04 +02:00
Daan Vanden Bosch
4a91cb2a29 Added log library. 2019-06-21 20:06:55 +02:00
Daan Vanden Bosch
4b3695dd6f Basic damage calculations are done for DPS calculator. 2019-06-20 18:20:04 +02:00
Daan Vanden Bosch
3bc50a1e63 Now extracting shield and armor stats from ItemPMT for Ephinea. 2019-06-20 18:11:36 +02:00
Daan Vanden Bosch
a684bb65c8 Renamed ItemKind to ItemType for consistency with NpcType. 2019-06-20 14:06:11 +02:00
Daan Vanden Bosch
4a3f5991ed Now using ItemPMT.bin and unitxt_j.prs for item kind list. 2019-06-19 22:14:48 +02:00
Daan Vanden Bosch
d973a31b35 Added server selector so users see only Ephinea is supported. 2019-06-16 20:48:13 +02:00
Daan Vanden Bosch
d35b2356e7 Started working on DPS calculator. 2019-06-16 20:31:48 +02:00
Daan Vanden Bosch
d6f422335d Make sure section ids icons overflow nicely in hunt optimizer. 2019-06-16 13:02:40 +02:00
Daan Vanden Bosch
00c6dc804a Removed unnecessary import. 2019-06-16 12:57:17 +02:00
Daan Vanden Bosch
a71457642c Added section ID icons to hunt optimizer. 2019-06-16 12:55:49 +02:00
Daan Vanden Bosch
414c34221b Added help text to hunt optimizer. 2019-06-16 12:28:44 +02:00
Daan Vanden Bosch
30464680cb Items in the optimization result are now shown in the same order as the wanted list. 2019-06-16 11:43:10 +02:00
Daan Vanden Bosch
a6cb937485 All valid section IDs are now shown in the hunt optimization results instead of just one random one. 2019-06-15 23:00:46 +02:00
Daan Vanden Bosch
58b8c66a89 Fixed bug that made DataTable background and border dissappear while antd animates dropdowns in Chrome. 2019-06-13 13:41:15 +02:00
Daan Vanden Bosch
16ff2645a3 Method times can now be edited in-memory if some code is uncommented. 2019-06-12 19:53:03 +02:00
Daan Vanden Bosch
f169f72002 Quest editor should be the default tool. 2019-06-12 10:49:18 +02:00
Daan Vanden Bosch
e183cb4751 Formatted time nicely. 2019-06-12 10:24:27 +02:00
Daan Vanden Bosch
0060f0c2e9 Small UI tweak. 2019-06-12 10:07:50 +02:00
Daan Vanden Bosch
ce2d8e10cf Added DataTable wrapper for MultiGrid and refactored code to use DataTable. 2019-06-12 10:06:06 +02:00
Daan Vanden Bosch
e2b1cc9282 Added unstyled methods table to hunt optimizer. 2019-06-11 23:04:28 +02:00
Daan Vanden Bosch
76620f612c Converted drop tables to json. 2019-06-11 14:34:57 +02:00
Daan Vanden Bosch
f78de96ef5 Store items in json format. Fixed bug in HuntOptimizerStore. 2019-06-11 13:37:46 +02:00
Daan Vanden Bosch
e3c47d73c9 Store wanted items in localStorage. 2019-06-11 13:13:54 +02:00
Daan Vanden Bosch
ee42d6bf5b Added totals row to hunt optimizer results table. 2019-06-06 21:40:12 +02:00
Daan Vanden Bosch
308352ed27 Added support for splitting pan arms in the hunt optimizer. Fixed a bug. 2019-06-06 20:30:14 +02:00
Daan Vanden Bosch
92ee40de65 Hunt optimizer now takes rare enemies into account. 2019-06-06 15:42:02 +02:00
Daan Vanden Bosch
db6f8371b1 More hunt optimizer UI improvements. 2019-06-06 12:47:19 +02:00
Daan Vanden Bosch
ccbc040576 Improved hunt optimizer UI. 2019-06-06 02:24:21 +02:00
Daan Vanden Bosch
45c9df039a Hunt optimizer is working but isn't very user-friendly yet. 2019-06-05 16:49:00 +02:00
Daan Vanden Bosch
63a703e708 Fixed bug in LP solver call. 2019-06-04 17:04:20 +02:00
Daan Vanden Bosch
72ecdac71d Set up basic LP algorithm to optimize hunts. Fixed errors in data. 2019-06-04 17:01:51 +02:00
Daan Vanden Bosch
734ed1016d Added Loadable and PerServer. Refactored code to make data loading and per-server data simpler. 2019-06-03 21:41:18 +02:00
Daan Vanden Bosch
6cfcb6fac0 Customized antd theme. 2019-06-01 17:57:27 +02:00
Daan Vanden Bosch
0c9218be16 Hunt methods are now loaded for ephinea. 2019-06-01 16:02:06 +02:00
Daan Vanden Bosch
0dc55b5eb7 Removed blueprintjs and added antd, refactored all code to use antd. Added list of wanted items to hunt optimizer. 2019-05-31 23:20:13 +02:00
Daan Vanden Bosch
f324886240 Added script for downloading ephinea drop table in TSV format. Added HuntOptimizer component and error boundary. 2019-05-30 17:57:31 +02:00
Daan Vanden Bosch
f31570d5f5 Refactored code so that new tools can now be added easily. 2019-05-29 21:43:06 +02:00
Daan Vanden Bosch
15883a13e1 BluePrint React components are now used everywhere instead of css classes. Styling is now done in css files instead of setting the style prop. 2019-05-29 17:59:47 +02:00
Daan Vanden Bosch
eed7b5d68e All state changes now happen via mobx actions. Fixed bug that allowed users to save .qst files with names that are too long (and thus corrupting the file). 2019-05-29 17:04:06 +02:00
Daan Vanden Bosch
ea2896bb74 All code now conforms to typical TypeScript conventions. 2019-05-29 14:46:29 +02:00
Daan Vanden Bosch
ad5372fa98 Reformatted most of the code to comply to TypeScript conventions. 2019-05-29 01:37:00 +02:00
Daan Vanden Bosch
119b2cb71a Converted all tests to TypeScript. 2019-05-28 22:24:28 +02:00
Daan Vanden Bosch
77486f8bd4 Converted Phantasmal Quest Editor code to TypeScript. 2019-05-28 18:40:29 +02:00
Daan Vanden Bosch
94239000fd Initial commit from Create React App 2019-05-28 13:44:17 +02:00