Commit Graph

198 Commits

Author SHA1 Message Date
Daan Vanden Bosch
db9d15b78a Fixed bug in computation of inverse rotation of section. The bug manifested while manually translating an entity across a rotated section. 2019-11-04 18:01:11 +01:00
Daan Vanden Bosch
8212348a81 Made event rendering more robust. Added call_now option to ListProperty.observe_list. 2019-11-04 17:19:57 +01:00
jtuu
e7a39168ae [VM] Print a warning instead of throwing an error when a unimplemented opcode is encountered. 2019-11-01 21:05:20 +02:00
jtuu
4441435302 [VM] Implemented opcode set_episode and made it possible to load the entire quest in the VM. 2019-11-01 21:04:50 +02:00
jtuu
89a119e90d Modified the function convert_quest_from_model to do a deep copy of the given object.
Added a couple other cloning functions.
2019-11-01 18:13:32 +02:00
Daan Vanden Bosch
af5c27a565 Removed unnecessary console.log statements. 2019-10-31 19:11:58 +01:00
Daan Vanden Bosch
ee76fb8aea Merge remote-tracking branch 'github/master' 2019-10-31 19:11:20 +01:00
Daan Vanden Bosch
f1fa19238d Event DAG edges are now shown with lines. 2019-10-31 19:11:14 +01:00
jtuu
c726cd3461 [VM] Implemented gettime opcode. 2019-10-30 23:00:06 +02:00
jtuu
260c070f34 [VM] Implemented get_random opcode and added a unit test for it. 2019-10-30 21:02:35 +02:00
Daan Vanden Bosch
95da6e9e57 Logging when duplicate events are encountered. 2019-10-29 15:26:10 +01:00
Daan Vanden Bosch
5f1b3d5ff1 Quest events are now grouped in DAGs. 2019-10-29 15:22:46 +01:00
Daan Vanden Bosch
dff39bd194 Improved events view UI. 2019-10-27 23:21:58 +01:00
Daan Vanden Bosch
13fd0a984c Fixed bug in QuestModel. 2019-10-27 22:47:38 +01:00
Daan Vanden Bosch
2ed9659d9b Only the current area's event chains are now shown. 2019-10-27 22:40:26 +01:00
Daan Vanden Bosch
d6ebb8e21a Added simple transparency to entities. Seems to work for most entities except for those that use translucent texture to emulate light rays etc. 2019-10-27 16:45:30 +01:00
jtuu
27e0d2fd6d [VM] Added a unit test for float arithmetic. 2019-10-17 23:57:47 +03:00
jtuu
f42d66e7e1 [VM] Transform float arithmethic arguments to valid 32-bit floats. 2019-10-17 23:53:15 +03:00
jtuu
48f525a3bd [VM] Fixed floating point arithmetic opcodes.
They were broken because they weren't actually using floats.
2019-10-17 22:11:59 +03:00
jtuu
2906c8b577 [VM] Added unit tests for integer arithmetic. 2019-10-17 21:48:21 +03:00
jtuu
fc2e7647fe [VM] Throw error on division by zero. 2019-10-17 21:38:47 +03:00
jtuu
cd52ca4576 [VM] Made the implementation of opcodes letb and letw more correct. 2019-10-17 20:02:53 +03:00
jtuu
4b7e03931c [VM] Implemented opcodes leta, flet and fleti. 2019-10-17 19:58:31 +03:00
jtuu
da6cdc7d74 [VM] Reset state more thoroughly when halting and loading new object code. 2019-10-17 18:44:05 +03:00
jtuu
755e38c76a Removed unused imports. 2019-10-17 17:53:20 +03:00
jtuu
4e9507cd3e Changed argument type of VirtualMachineIO.prototype.error from string to Error.
Also lint.
2019-10-17 17:50:19 +03:00
jtuu
bcc24e7a47 [VM] Added a unit test for window_msg. 2019-10-17 15:56:22 +03:00
jtuu
064f0659e4 Moved a function to test utils. 2019-10-17 15:14:13 +03:00
jtuu
cb81b988e5 [VM] Made the methods for getting register values public to enable unit tests.
Also renamed them so it's more obvious what they do.
2019-10-17 14:45:59 +03:00
jtuu
416e15e68e [VM] Changed some warnings into errors and added source locations to warnings. 2019-10-17 14:40:47 +03:00
jtuu
f3c26f9eda [VM] Added an interface for handling the virtual machine's IO. 2019-10-17 14:21:45 +03:00
jtuu
f8dc1af8ea Split VM code into separate files. 2019-10-15 15:34:30 +03:00
jtuu
9facc6357c Dispose threads when VM halts. 2019-10-11 15:02:54 +03:00
jtuu
c7b27846c8 [VM] Quick and dirty implementation of window_msg, add_msg and winend. 2019-10-11 12:49:20 +03:00
jtuu
21299646e4 [VM] Implemented arg_pushs and arg_pusha. 2019-10-11 11:11:06 +03:00
jtuu
2909b1bb3e Reworked VirtualMachineMemoryBuffer to extend ArrayBufferCursor. 2019-10-11 10:49:47 +03:00
jtuu
6ed419cf35 Use undefined instead of null as the empty value. 2019-10-11 09:14:34 +03:00
Daan Vanden Bosch
9b1bc675a2 Fixed compilation issues and fixed bug in SimpleListProperty (length was not correctly initialized). 2019-10-11 00:04:01 +02:00
Daan Vanden Bosch
a5dd34cda7 Merge remote-tracking branch 'github/master' 2019-10-10 23:12:04 +02:00
Daan Vanden Bosch
ff8f02fe5b Refactored events model and added a basic view for it behind a feature flag. 2019-10-10 23:11:52 +02:00
jtuu
f8c75d7dad [VM] Reworked the argument stack to emulate the PSOBB client more accurately. 2019-10-10 21:07:21 +03:00
jtuu
5248dbe0a0 [VM] Reworked register storage to emulate the PSOBB client more accurately. 2019-10-10 21:07:21 +03:00
Daan Vanden Bosch
c287fdeb2f Renamed event-related types. Updated feature list. 2019-10-10 19:47:38 +02:00
Daan Vanden Bosch
9803bfe125 Wave data is now parsed/written and converted to models. 2019-10-10 13:47:43 +02:00
jtuu
dbe4f3ab78 [VM] Implemented stack_push(m) and stack_pop(m) opcodes. 2019-10-07 20:52:44 +03:00
Daan Vanden Bosch
345c9ab0dc Improved typing of ListProperty. 2019-10-07 18:26:45 +02:00
Daan Vanden Bosch
295bb71c15 Merge remote-tracking branch 'github/master' 2019-10-05 21:12:11 +02:00
Daan Vanden Bosch
0583b7499e Added ASM editor history navigation with mouse buttons and keyboard. 2019-10-05 21:11:58 +02:00
jtuu
f0d1d67b24 Lint and remove console.logs. 2019-10-04 14:21:51 +03:00
jtuu
3a8b189b0a [VM] Implemented conditional jump opcodes.
jmp_on, jmp_off, jmp_=, jmpi_=, jmp_!=, jmpi_!=, ujmp_>, ujmpi_>, jmp_>, jmpi_>, ujmp_<, ujmpi_<, jmp_<, jmpi_<, ujmp_>=, ujmpi_>=, jmp_>=, jmpi_>=, ujmp_<=, ujmpi_<=, jmp_<=, jmpi_<=
2019-10-04 14:17:34 +03:00
Daan Vanden Bosch
efed622e94 Fixed regression. 2019-10-03 17:28:48 +02:00
Daan Vanden Bosch
421487e21f String segment strings are now displayed with "\n" escape sequence instead of "<cr>". 2019-10-03 17:06:23 +02:00
Daan Vanden Bosch
544ed46263 "Go to label definition" now works with arguments passed via the stack. 2019-10-03 16:40:43 +02:00
Daan Vanden Bosch
ee4a293d3e Fixed some bugs. 2019-10-03 00:18:11 +02:00
Daan Vanden Bosch
b85b7147a6 Removed an unnecessary todo and added a useful one. 2019-10-03 00:07:40 +02:00
Daan Vanden Bosch
f67752e277 "Go to label definition" now works fully for instructions with inline arguments. 2019-10-02 23:59:24 +02:00
Daan Vanden Bosch
90f0e0f7bd Basic go to label definition functionality. 2019-10-02 23:34:09 +02:00
Daan Vanden Bosch
971444f847 F5 keybinding for "Run in VM". Bugfix for feature flags. 2019-10-02 21:15:35 +02:00
jtuu
1a7e9ee9ac [VM] Put the "run in VM" button behind a feature flag called "vm". 2019-10-02 21:46:20 +03:00
jtuu
d9110f0041 [VM] Push entire Arg object to stack instead of just its value. 2019-10-02 21:46:19 +03:00
jtuu
2e672c12b2 [VM] Implemented shift_left and shift_right opcodes. 2019-10-02 21:46:17 +03:00
jtuu
c628c30e1b [VM] Compare opcode numbers not the objects. 2019-10-02 21:46:13 +03:00
jtuu
78ed5c8071 [VM] Implemented opcodes for basic numeric operations. 2019-10-02 21:46:11 +03:00
jtuu
bdd7e8b174 [VM] Assign arguments to variables to make accessing them terser. 2019-10-02 21:46:09 +03:00
jtuu
806ab0ddd5 [VM] Implement arg_pushr, b, w, and s correctly. Remove arg_pusha and o because they are tricky and low priority. 2019-10-02 21:46:07 +03:00
jtuu
98acdbf7f9 [VM] Added arg stack. 2019-10-02 21:46:05 +03:00
jtuu
80a4aa784f [VM] Added a button to run the current quest in the VM.
Made the VM work with output from the assembler.
Added some comments to the VM and cleaned it up a little bit.
2019-10-02 21:43:53 +03:00
Daan Vanden Bosch
bffd8f51d9 Fixed unit tests. 2019-10-02 20:20:59 +02:00
Daan Vanden Bosch
ed571b9061 Added asm meta data to IR. 2019-10-02 19:57:43 +02:00
Daan Vanden Bosch
7bde9988e8 Tiny bugfix. 2019-10-02 18:32:00 +02:00
Daan Vanden Bosch
fc5a34946e Opcode is now structured cloning-safe. All IR is now structured cloning-safe. 2019-10-02 14:25:47 +02:00
Daan Vanden Bosch
16b89a01d0 Param is now structured cloning-safe. 2019-10-02 13:56:00 +02:00
Daan Vanden Bosch
fa76002d1c Instruction is now structured cloning-safe. 2019-10-02 13:44:55 +02:00
Daan Vanden Bosch
431c0545f2 Added the basic Monaco machinery for providing symbol definitions. 2019-10-02 13:28:14 +02:00
Daan Vanden Bosch
825f14dc90 Fixed a disassembler bug: va list arg_push* instructions would not be output when in automatic stack management mode. 2019-10-01 22:47:01 +02:00
Daan Vanden Bosch
df2bb7a6ab Fixed an assembler and a disassembler bug. 2019-10-01 22:18:14 +02:00
Daan Vanden Bosch
edc6428a3d Fixed regression. 2019-10-01 18:36:35 +02:00
Daan Vanden Bosch
9b3d280e4f Upgraded all dependencies and fixed linting warnings/errors resulting from eslint upgrade. 2019-10-01 18:30:26 +02:00
Daan Vanden Bosch
c64ba16c7a The ASM editor command palette can now be opened with ctrl-shift-p. 2019-10-01 17:41:28 +02:00
Daan Vanden Bosch
75c19cf112 The 3D view is now focused when dropping an entity on it. 2019-10-01 17:10:19 +02:00
Daan Vanden Bosch
b6619644d1 When the mouse leaves the 3D view while hovering over an entity it is now correctly de-highlighted. 2019-09-29 18:58:32 +02:00
Daan Vanden Bosch
4bf2148b39 Entities can be rotated via the entity info view. 2019-09-29 18:53:01 +02:00
Daan Vanden Bosch
1498b37f67 Reduced GC pressure while rotating entities. 2019-09-28 21:31:04 +02:00
Daan Vanden Bosch
9e2858dae2 Entities can now be rotated around their y-axis by right-click dragging. 2019-09-28 21:11:57 +02:00
Daan Vanden Bosch
5d6f04c2c4 Small fix for bug in QuestEntityControls. 2019-09-25 01:01:34 +02:00
Daan Vanden Bosch
83eade32dc Refactored QuestEntityControls to make it easier to add behavior. 2019-09-25 00:53:06 +02:00
Daan Vanden Bosch
d97872d528 The selected entity can now be deleted with the delete key. 2019-09-24 19:47:22 +02:00
Daan Vanden Bosch
e57f095a49 All entities from the NPC and object lists are now scaled to fit nicely in their square. 2019-09-23 16:07:46 +02:00
Daan Vanden Bosch
1fe3015ce5 All objects are now correctly filtered based on area. 2019-09-23 14:47:14 +02:00
Daan Vanden Bosch
9859e15806 Objects area now filtered based on the selected area. Fixed some typos in object names. 2019-09-22 16:14:38 +02:00
Daan Vanden Bosch
f40b1fb168 NPCs in the NPC list are now filtered according to the selected area. Objects can now be added via drag and drop from the object list. 2019-09-22 15:18:46 +02:00
Daan Vanden Bosch
f0d474ad40 The EntityListView now shows renders of entities instead of green squares. 2019-09-21 21:47:00 +02:00
Daan Vanden Bosch
3d9b003e39 Fixed regression: hovered entities are now highlighted again. 2019-09-21 19:03:30 +02:00
Daan Vanden Bosch
dbb5b65b74 Reduced garbage creation for increased performance. 2019-09-21 14:54:42 +02:00
Daan Vanden Bosch
79b85fc859 Entity creation is now undoable. Fixed a bug that occurred when you started to translate an entity and then moved the cursor outside of the 3D-view. 2019-09-21 14:39:04 +02:00
Daan Vanden Bosch
a97b56cecc Simplified and deduplicated entity transformation code. 2019-09-21 12:48:34 +02:00
Daan Vanden Bosch
6e666b0ea5 Entity drag and drop code doesn't use custom events anymore for increased performance and simplicity. Made code more typesafe and decoupled. Fixed some bugs. 2019-09-20 22:27:19 +02:00
Daan Vanden Bosch
4293a3862b Fixed visual bug due to order of model loading. 2019-09-19 22:30:39 +02:00
Daan Vanden Bosch
7ae4ad428c Basic entity creation via drag and drop. 2019-09-19 22:20:17 +02:00
Daan Vanden Bosch
859d85da45 ASM editor view is now sized correctly again. 2019-09-17 12:47:03 +02:00