Commit Graph
402 Commits
Author SHA1 Message Date
djsrv d71d4d2b5f DIRECTOR: LINGO: Support keyless exprs in prop lists 2022-09-16 15:36:46 -04:00
Roland van Laar 0c0863ce42 DIRECTOR: LINGO: Add floats and ints to proparrays
Implement the use of integers and floats as keys in property arrays.
Property arrays in lingo use the following syntax: [#a: "text"].
They are better known as HashMaps in CPP.

It resolves a bug in Star Trek Omnipedia which uses integers for keys.

- Includes lingo tests.
2022-09-14 21:50:53 +02:00
Misty De Meoanddjsrv 8e5702b0be DIRECTOR: handle method end statements
Co-authored-by: djsrv <dservilla@gmail.com>
2021-11-20 01:19:49 +01:00
djsrv 4796729a58 DIRECTOR: LINGO: Terminate when stmt with newline 2021-08-24 22:41:33 -04:00
djsrv 7ddf6ecde2 DIRECTOR: LINGO: Fix memory leak 2021-07-20 17:48:10 -04:00
djsrv 7f5eb2b1fc DIRECTOR: LINGO: Remove unused tokens from grammar 2021-07-20 17:47:01 -04:00
djsrv 75378c2ce1 DIRECTOR: LINGO: Handle stray end clauses 2021-07-20 17:45:47 -04:00
djsrv 545d34c022 DIRECTOR: LINGO: Eliminate when preprocessor 2021-07-15 16:31:47 -04:00
djsrv f43026398f DIRECTOR: LINGO: Fix assert line numbers 2021-06-25 01:52:40 -04:00
djsrv 9198d7364a DIRECTOR: LINGO: Move field funcs from LB to LC
field, delete, and hilite were implemented as their own instructions in
the original. This also avoids having refs evaluated by LC::call.
2021-06-24 00:26:15 -04:00
djsrv 784f8fe9d3 DIRECTOR: LINGO: Allow expression after sprite 2021-06-22 18:16:53 -04:00
djsrv 32534e2d7a DIRECTOR: LINGO: Move tokens out of CMDID 2021-06-22 18:16:53 -04:00
djsrv ace4d11cf7 DIRECTOR: LINGO: Allow trailing comma in function args 2021-06-22 18:16:53 -04:00
djsrv 8abdb0df16 DIRECTOR: LINGO: Allow missing end if
It just outputs a warning instead of failing now.
2021-06-22 18:16:53 -04:00
djsrv 16ad72c042 DIRECTOR: LINGO: Fix calling window with multiple args 2021-06-22 18:16:53 -04:00
djsrv 509b34579f DIRECTOR: LINGO: Change chunk ref args to exprs 2021-06-22 18:16:53 -04:00
djsrv e093f59aa2 DIRECTOR: LINGO: Allow trailing comma 2021-06-22 18:16:53 -04:00
djsrv 76195e62f4 DIRECTOR: LINGO: Allow stray end ifs 2021-06-22 18:16:53 -04:00
djsrv 46785dbe26 DIRECTOR: LINGO: Fix list definitions 2021-06-22 18:16:53 -04:00
djsrv c66377b5e8 DIRECTOR: LINGO: Reimplement repeat with in 2021-06-22 18:16:53 -04:00
djsrv ac5dbe3492 DIRECTOR: LINGO: Create CMDID symbol 2021-06-22 18:16:53 -04:00
djsrv a825a68f55 DIRECTOR: LINGO: Reimplement open 2021-06-22 18:16:53 -04:00
djsrv 1a311812cf DIRECTOR: LINGO: Reimplement chunk expressions 2021-06-22 18:16:53 -04:00
djsrv d393fa5472 DIRECTOR: LINGO: Reimplement 'the' 2021-06-22 18:16:53 -04:00
djsrv 510681249b DIRECTOR: LINGO: Clean up token types 2021-06-22 18:16:53 -04:00
djsrv 0980939740 DIRECTOR: LINGO: Reimplement cast/object refs 2021-06-22 18:16:53 -04:00
djsrv 744fbc8628 DIRECTOR: LINGO: Reimplement intersects/within 2021-06-22 18:16:53 -04:00
djsrv a5865079a1 DIRECTOR: LINGO: Reimplement when 2021-06-22 18:16:53 -04:00
djsrv 3f1df58337 DIRECTOR: LINGO: Reimplement tell 2021-06-22 18:16:53 -04:00
djsrv 884db621b4 DIRECTOR: LINGO: Reimplement scummvmAssertError 2021-06-22 18:16:53 -04:00
djsrv 41caf423dd DIRECTOR: LINGO: Reimplement go command 2021-06-22 18:16:53 -04:00
djsrv 553b4beafd DIRECTOR: LINGO: Create FrameNode and MovieNode 2021-06-22 18:16:53 -04:00
djsrv 4d6e4558c9 DIRECTOR: LINGO: Reimplement playAccel 2021-06-22 18:16:53 -04:00
djsrv 68200d4542 DIRECTOR: LINGO: Reimplement play command 2021-06-22 18:16:53 -04:00
djsrv 25b606c9b1 DIRECTOR: LINGO: Parse all variants of cmd args 2021-06-22 18:16:53 -04:00
djsrv 7649e2d44c DIRECTOR: LINGO: Reimplement exit 2021-06-22 18:16:53 -04:00
djsrv a6cfb4e275 DIRECTOR: LINGO: Reimplement lists 2021-06-22 18:16:53 -04:00
djsrv 4f29ef7b29 DIRECTOR: LINGO: Reimplement basic var instructions 2021-06-22 18:16:53 -04:00
djsrv ad934d5960 DIRECTOR: LINGO: Add missing newlines 2021-06-22 18:16:53 -04:00
djsrv d9a1057cd6 DIRECTOR: LINGO: Reimplement loops 2021-06-22 18:16:53 -04:00
djsrv 52a056f91c DIRECTOR: LINGO: Reimplement if statements 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 f726a6ed89 DIRECTOR: LINGO: Rewrite grammar to build AST 2021-06-22 18:16:53 -04:00
djsrv c147a5c979 DIRECTOR: LINGO: Implement chunk refs 2020-08-21 21:52:54 -04:00
djsrv 20e54db2ae DIRECTOR: LINGO: Implement errors 2020-08-21 00:20:22 -04:00
djsrv 34393fde5e DIRECTOR: LINGO: Remove c_lazyeval 2020-08-20 23:41:51 -04:00
djsrv 518c90ec8f DIRECTOR: LINGO: Pass me as arg to factory methods 2020-08-17 21:19:55 -04:00
djsrv 319fa7ee0f DIRECTOR: LINGO: Recombine CASTNAME and CASTNUM
The original tries to immediately fetch a cast member by name and
turn it into a cast number.

Only cast numbers are not immediately checked for existence.
2020-08-15 11:58:33 -04:00
djsrv 992213b97c DIRECTOR: LINGO: Lazily fetch cast members
Cast members should be fetched until they're actually needed, so
`the loaded of cast x`, etc. will work.
2020-08-14 18:00:38 -04:00
djsrv 19e1d7e544 DIRECTOR: LINGO: Compile put to b_put 2020-08-06 11:50:34 -04:00