Commit Graph
232 Commits
Author SHA1 Message Date
djsrv 336576c538 DIRECTOR: LINGO: Enforce return values 2020-07-22 12:38:01 -04:00
djsrv 2277a92d8e DIRECTOR: LINGO: Handle ARGC/ARGCNORET 2020-07-19 13:33:35 -04:00
djsrv e95b7979b7 DIRECTOR: LINGO: Replace BLTIN/FBLTIN
They should only be treated differently during execution, not during
parse.
2020-07-19 13:33:35 -04:00
djsrv d6270b7f09 DIRECTOR: LINGO: Add event map comment 2020-07-14 23:09:05 -04:00
djsrv 5c230256c6 DIRECTOR: LINGO: Fix segfault 2020-07-14 13:10:52 -04:00
djsrv 63ea83d057 DIRECTOR: LINGO: Attempt to repair script type/ID 2020-07-14 13:04:44 -04:00
Eugene Sandulenko 75043df8c7 DIRECTOR: LINGO: Improve debugging 2020-07-14 11:25:52 +02:00
Eugene Sandulenko cd232d29e2 DIRECTOR: LINGO: Optimize addNamesV4() 2020-07-13 11:44:06 +02:00
Roland van Laar a12eb79b18 DIRECTOR: LINGO: define size in Lnam header
Lnam headers have their size specified twice.
Use this size as a check if the stream is complete.
2020-07-12 23:26:34 +02:00
djsrv b866d0abb4 DIRECTOR: LINGO: Fix bytecode global var oddities 2020-07-10 14:59:34 -04:00
djsrv e599378565 DIRECTOR: LINGO: Load D4 bytecode event scripts 2020-07-10 14:03:39 -04:00
djsrv 4e33136e38 DIRECTOR: LINGO: Fix segfault when loading factory 2020-07-07 18:05:20 -04:00
djsrv b2c20a07f7 DIRECTOR: LINGO: Refactor Object
This turns Object into a template so any type can easily act as a Lingo
object. For example, script objects no longer own a script context.
They *are* script contexts, and there are custom getters/setters for
methods and properties.
2020-07-07 16:59:55 -04:00
Eugene Sandulenko 18ce56fc1b DIRECTOR: Create path for the dumped scripts 2020-07-07 12:33:40 +02:00
djsrv 1efd5f5c11 DIRECTOR: LINGO: Improve object refcounting 2020-07-06 20:18:57 -04:00
djsrv 856cb27870 DIRECTOR: LINGO: Reorganize Object 2020-07-06 20:18:57 -04:00
djsrv 05b6bb2021 DIRECTOR: Add Cast convenience methods 2020-07-02 11:40:22 -04:00
djsrv 64fdff14eb DIRECTOR: Initialize cast members w/ cast and ID 2020-07-02 11:40:22 -04:00
djsrv 38d17341e2 DIRECTOR: LINGO: Move lingo archive to Cast 2020-07-01 22:07:13 -04:00
djsrv 005618bf25 Revert "DIRECTOR: LINGO: Fix bytecode loading for global scripts"
This reverts commit 45e72aa449.
2020-07-01 13:27:48 -04:00
djsrv fb39572fd5 DIRECTOR: Move _sharedCast to Movie 2020-07-01 13:24:37 -04:00
Eugene Sandulenko 0193472e96 DIRECTOR: LINGO: Reduce remaining include dependencies 2020-07-01 18:16:21 +02:00
Eugene Sandulenko 888e80c9b0 DIRECTOR: LINGO: Reduce header dependency 2020-07-01 18:05:05 +02:00
Scott Percival 52bef2ba43 DIRECTOR: LINGO: Fix name resolution for decodeInstruction 2020-07-01 23:45:28 +08:00
Scott Percival 45e72aa449 DIRECTOR: LINGO: Fix bytecode loading for global scripts 2020-07-01 23:45:27 +08:00
djsrv 5ae6c34074 DIRECTOR: Separate Movie and Cast from Score 2020-07-01 10:50:31 -04:00
djsrv 3303ab985e DIRECTOR: Rename cast.cpp -> castmember.cpp 2020-07-01 10:50:31 -04:00
djsrv b511300bf6 DIRECTOR: LINGO: Fix cb_objectcall pointer issues 2020-06-27 23:07:57 -04:00
djsrv 0906dc3240 DIRECTOR: LINGO: Improve factory method calls 2020-06-25 21:04:00 -04:00
djsrv 3157c9775d DIRECTOR: LINGO: Improve Lscr name resolution 2020-06-25 21:01:51 -04:00
djsrv 16ba15d5b6 DIRECTOR: LINGO Add bytecode instruction 0x02
This just seems to be procret but for methods.
2020-06-25 20:54:28 -04:00
djsrv 4e2184956a DIRECTOR: LINGO: Load factories from Lscr 2020-06-25 15:35:56 -04:00
Roland van Laar 3047a6b47e DIRECTOR: LINGO: Fix messages
The order type and cast id was switched in error and
warning messages.
2020-06-25 21:31:11 +02:00
djsrv 25a20fb28d DIRECTOR: LINGO: Treat scriptType as a bitmask 2020-06-25 12:02:27 -04:00
djsrv a38011e101 DIRECTOR: LINGO: Load cast scripts from Lscr 2020-06-24 16:59:51 -04:00
djsrv bb8704f7d0 DIRECTOR: LINGO: Fix cb_localcall
Which symbol a handler name resolves to depends on the first argument.
2020-06-23 14:14:01 -04:00
djsrv d8c8df88f3 DIRECTOR: LINGO: Implement cb prop instructions 2020-06-23 14:14:01 -04:00
djsrv f7132e73f4 DIRECTOR: LINGO: Read more Lscr fields 2020-06-23 12:46:00 -04:00
djsrv 624c8616d2 DIRECTOR: LINGO: Clean up script creation 2020-06-22 15:51:29 -04:00
Scott Percival 357550820f DIRECTOR: LINGO: Fix LUT codes for text entities 2020-06-20 00:22:03 +08:00
Scott Percival 8135a3a1cc DIRECTOR: LINGO: Tweak cb_objectcall to substitute variables 2020-06-20 00:22:03 +08:00
Scott Percival be2f5815a9 DIRECTOR: LINGO: Fix stack after failed cb_objectcall 2020-06-20 00:22:03 +08:00
djsrv 2ece2c0d3a DIRECTOR: LINGO: Improve globally defining handler
Only movie scripts' handlers should be globally available, and if there
is more than one with the same name, only the first.
2020-06-18 21:49:09 -04:00
djsrv f2ec6cbf63 DIRECTOR: LINGO: Implement b_script 2020-06-18 12:33:38 -04:00
djsrv c4914ea3ca DIRECTOR: LINGO: Add name to ScriptContext 2020-06-18 12:33:38 -04:00
Roland van Laar 0a699b9681 DIRECTOR: LINGO: Implement cb_thepush2
Implement cb_thepush2 for pushing the value of an entity to the stack.
2020-06-18 14:49:37 +00:00
djsrv 612104336f DIRECTOR: LINGO: Rework event handling
Setup for proper event delegation. It probably needs adjustments but
it should be mostly correct for D4.
2020-06-17 20:38:49 -04:00
Scott Percival 7c9ed6febb DIRECTOR: Add new SpriteChannel class
Some sprite properties are considered global across all frames.
This can be seen in Chop Suey where e.g the exitFrame script for
frame 1 will change the visibility on sprite channels that aren't used
until frame 3. This adds a new global list of sprite channel properties
that aren't attached to a Frame.

This just tracks visibility for now, additional properties can be moved
over from Sprite when they are confirmed to be global.
2020-06-17 00:33:26 +08:00
Scott Percival a60e68ae65 DIRECTOR: LINGO: Implement cb_objectcall 2020-06-16 01:20:01 +08:00
djsrv 4109fd0bc6 DIRECTOR: LINGO: Switch variables to DatumHash 2020-06-15 09:29:20 -04:00