-
Notifications
You must be signed in to change notification settings - Fork 0
SB3 Quirks
Seemann edited this page Apr 26, 2024
·
9 revisions
- getters/setters can be used in two ways, using
prop=val
orval=prop
syntax or alternatively as a function call:
Player.Create($PLAYER_CHAR, 0,0,0,0)
$PLAYER_CHAR = Player.Create(0,0,0,0)
Player.CanMove($PLAYER_CHAR, False)
Player.CanMove($PLAYER_CHAR) = False
-
string literals in commands don't support escape sequences ("\t" compiles as "\t"), but strings inside
hex..end
do (preserved under SB3_COMPAT) -
opcode 00d6: can be compiled without arguments
-
second argument in Alloc command is optional and 0 by default (preserved under SB3_COMPAT)
-
hardcoded indexes in opcodes 05B6, 0A66, 0A67, 0A68, 0A6E (preserved under SB3_COMPAT)
05B6: 1 // index in debug.bin
- anonymous enums in classes
0@ = Actor.Create(Fireman, 0, 0, 0, 0)
- decompiler respects arbitrary param order defined in SCM.INI which produces weird class syntax (preserved under SB3_COMPAT)
0@ = Text.ScanString("", "%d", 1@, 2@) // here 1@ and 2@ are outputs, not inputs, but you won't tell this by reading the line