djsrv
6b756b3213
DIRECTOR: LINGO: Rename codeFactory to registerFactory
2021-06-22 18:16:53 -04:00
djsrv
0a87b2ab2e
DIRECTOR: LINGO: Eliminate argstack
2021-06-22 18:16:53 -04:00
djsrv
0a708b9c8f
DIRECTOR: LINGO: Move compiler logic to new class
2021-06-22 18:16:53 -04:00
djsrv
a4df3c3d8e
DIRECTOR: LINGO: Eliminate Lingo::varCreate
...
This function just complicates things.
2021-06-22 18:16:53 -04:00
djsrv
34d8aabc4b
DIRECTOR: LINGO: Add DatumType enum
2021-06-22 18:16:53 -04:00
djsrv
e3f75a9bc4
DIRECTOR: LINGO: Implement b_delete/cb_delete
2021-06-10 11:51:50 -04:00
djsrv
35e68aece3
DIRECTOR: LINGO: Fix chunk refs with start < 1
2021-06-08 21:20:19 -04:00
djsrv
f747445e15
DIRECTOR: LINGO: Implement kTEAString properties
2021-06-08 20:06:29 -04:00
djsrv
ed8ca876e3
DIRECTOR: Use version from VWCF for loading
2021-06-07 14:48:48 -04:00
Eugene Sandulenko
5d41772b5e
DIRECTOR: Added more comments
2020-08-21 00:36:19 +02:00
djsrv
a5948cfc37
DIRECTOR: LINGO: Evaluate field ref on pop
...
This simplifies handling of fields, since most of the time it should be
treated as a string. Where we actually need a raw reference, pop(false)
is used.
2020-08-20 15:53:31 -04:00
djsrv
60fe2ea32e
DIRECTOR: LINGO: Eliminate lazy vars
...
Now normal var refs are evaluated on pop. To get the reference itself,
use pop(false)
2020-08-20 15:34:13 -04:00
djsrv
6db398a74d
DIRECTOR: LINGO: Use findVarV4 in cb_v4assign
2020-08-19 18:55:34 -04:00
djsrv
6fe741d2af
DIRECTOR: LINGO: Implement findVarV4
2020-08-19 18:55:34 -04:00
djsrv
df7cc8e2c2
DIRECTOR: LINGO: Mark objectcall warnings BUILDBOT
2020-08-19 15:09:45 -04:00
djsrv
febf4592ba
DIRECTOR: LINGO: Handle varType in cb_objectcall
2020-08-19 15:06:27 -04:00
djsrv
b95495725a
DIRECTOR: LINGO: Remove unnecessary non-eval pop
...
cb_varrefpush no longer pushes a lazy var, so suppressing its evaluation
is no longer necessary.
2020-08-19 14:42:49 -04:00
djsrv
0345a04e7a
DIRECTOR: LINGO: cb_objectpush -> cb_varrefpush
...
The opcode isn't used just for objects.
2020-08-18 16:34:40 -04:00
djsrv
b67df72543
DIRECTOR: LINGO: Push regular var in cb_objectpush
2020-08-18 16:12:29 -04:00
djsrv
191ab2da4e
DIRECTOR: LINGO: Fix cb_objectcall lazy vars
...
Only the first arg is treated as a lazy var.
2020-08-18 15:53:45 -04:00
djsrv
cd91e0fc2a
DIRECTOR: LINGO: Push lazy var in cb_objectpush
2020-08-18 15:31:53 -04:00
Roland van Laar
f071de48a3
DIRECTOR: LINGO: implement put ... after chunkexpr
...
The D4 lingo `put ... after chunkexpr` uses opcode 34 (0x22) for
cb_v4assign.
We convert the SYMBOL to a VAR due to cb_objectpush pushing
variables as SYMBOLS to the stack.
2020-08-18 16:10:02 +02:00
djsrv
7feaa01003
DIRECTOR: LINGO: Reuse LC::call in cb_objectcall
2020-08-17 21:19:55 -04:00
djsrv
19a0e574be
DIRECTOR: LINGO: Mark kThePerFrameHook as writable
2020-08-17 21:19:54 -04:00
Roland van Laar
5848462bdb
DIRECTOR:LINGO: Specify arg names on dump scripts
...
Dumped lingo (lscr) files now contain the argument names on functions.
2020-08-17 21:04:09 +02:00
Roland van Laar
062bf46ee5
DIRECTOR: Integer comparison fixes
2020-08-16 21:51:36 +02:00
Roland van Laar
5ee19d2264
DIRECTOR: LINGO: Fix prop, value order
...
The stack was read as if the order was a list, not a stack.
2020-08-15 15:42:01 +02:00
djsrv
e1583465a2
DIRECTOR: LINGO: Fix v4 field props
2020-08-14 18:08:23 -04:00
djsrv
a0c7ce4bca
DIRECTOR: LINGO: Fix copy/paste error
2020-08-14 18:00:38 -04:00
djsrv
465281569a
DIRECTOR: LINGO: Add missing V4 the entity fields
2020-08-14 00:15:54 -04:00
djsrv
baacf3c1ab
DIRECTOR: Replace SeekableSubReadStreamEndian
...
Use the superclass SeekableReadStreamEndian.
2020-08-12 17:26:55 -04:00
djsrv
0ff7274993
DIRECTOR: Multiply version numbers by 100
...
To accomodate minor version.
2020-08-10 15:00:55 -04:00
djsrv
dabc82efdb
DIRECTOR: LINGO: Don't add scripts w/o cast member
2020-08-04 21:25:58 -04:00
djsrv
0ccf8ab395
DIRECTOR: LINGO: Handle unused script flag
...
Appears in Lingo Expo/Simulation/MECH.
Any scripts that have this are empty and have no cast member.
2020-08-03 16:57:37 -04:00
djsrv
d0002d5ef1
DIRECTOR: LINGO: Uniformly use 1-indexed script id
2020-08-03 16:57:37 -04:00
djsrv
039d2b3fd6
DIRECTOR: LINGO: Remove "maybe" in Lscr debug
...
We know the script type/cast member id for sure now.
2020-07-29 11:25:07 -04:00
djsrv
908f381ac1
DIRECTOR: LINGO: Fix D4 generic events
2020-07-29 11:25:07 -04:00
djsrv
8d29257e99
DIRECTOR: LINGO: Implement tell
2020-07-28 11:33:19 -04:00
Roland van Laar
9219568792
DIRECTOR: LINGO: Revert use lctxIndex in lscr dumps
...
This reverts commit 274be05986 .
The castIds are repaired during the loading of the scripts
and thus can be dumped based on their castId again.
2020-07-27 00:48:51 +02:00
Roland van Laar
30e6f0a01d
DIRECTOR: LINGO: Add scripts to the correct cast
...
Repair the castIds of script when the scripts are loaded.
The castIds that are defined in the scripts can be wrong.
A better way to link scripts with casts is via the scriptId.
To achieve this casts need to be fetched by their scriptId.
This commit implements the necessary getCastMemberByScript functions
to enable fetching a cast by it's scriptId.
Also removes the old way of repairing the castId coupling.
2020-07-27 00:48:51 +02:00
Roland van Laar
372a7f984f
DIRECTOR: LINGO: Only replace string that is a var
...
cb_objectcall accepts strings that should be variables.
When a string isn't known as a variable it should be popped
back to the stack as a string.
The check was for VOIDSYM, however a non-existing var results in
a VOID.
2020-07-26 23:35:01 +02:00
Roland van Laar
274be05986
DIRECTOR: LINGO: use lctxIndex in lscr dumps
...
Dumpfiles for Lingoscripts (lscr) were named based on the castId.
The castId read from the script is not always unique causing
name clashes for the dumps.
The lctxIndex for scripts is unique, resolving the name clash.
2020-07-26 16:44:42 +02:00
djsrv
dc3216dab8
DIRECTOR: LINGO: Fix cb_objectfieldassign
2020-07-24 00:13:51 -04:00
Eugene Sandulenko
88604526e9
DIRECTOR: Added more entity mapping to bytecode
2020-07-23 23:40:19 +02:00
Eugene Sandulenko
4909f7661c
DIRECTOR: LINGO: Trigger buildbot on unmapped cb_v4theentitypush()
2020-07-23 22:40:13 +02:00
Eugene Sandulenko
1d8b821290
DIRECTOR: LINGO: Mapped more fields in bytecode
2020-07-23 22:36:16 +02:00
Eugene Sandulenko
7cdd4ce4f5
DIRECTOR: LINGO: Map 'the immediate of sprite'
2020-07-23 10:33:02 +02:00
djsrv
bfcd0e2f1f
DIRECTOR: LINGO: Add missing v4 the entity
2020-07-22 16:45:04 -04:00
djsrv
2b75427213
DIRECTOR: LINGO: Fix put before/after field
2020-07-22 16:01:12 -04:00
djsrv
3a694d7496
DIRECTOR: LINGO: Handle more ARGCNORETs
2020-07-22 12:38:01 -04:00