126
edits
Jestar jokin (talk | contribs) m (Undo revision 10914 by Jestar jokin (Talk)) |
Jestar jokin (talk | contribs) m (Undo revision 10913 by Jestar jokin (Talk)) |
||
Line 7: | Line 7: | ||
|- | |- | ||
|opcode||The instruction's opcode, with the appropriate bits set according to the parameters. | |opcode||The instruction's opcode, with the appropriate bits set according to the parameters. | ||
|- | |- | ||
|result||A result pointer. (A standard word pointer, always a LE word.) | |result||A result pointer. (A standard word pointer, always a LE word.) | ||
|- | |- | ||
|var||A var pointer. Same as above, but is not written to. Because this is always a var, the opcode is not affected like with normal parameter/pointers. | |var||A var pointer. Same as above, but is not written to. Because this is always a var, the opcode is not affected like with normal parameter/pointers. | ||
Line 24: | Line 20: | ||
|value[p16]||A 16-bit parameter. This is always encoded as a word LE, and may be a pointer or constant. | |value[p16]||A 16-bit parameter. This is always encoded as a word LE, and may be a pointer or constant. | ||
|- | |- | ||
|value[v16]||A variable number of word LE parameters. These are encoded as a sequence of aux[8] param[p16]; param; aux contains the parameter bit to describe param. A byte of $FF terminates the sequence. | |value[v16]||A variable number of word LE parameters. These are encoded as a sequence of aux[8] param[p16]; param; aux contains the parameter bit to describe param. A byte of $FF terminates the sequence. | ||
|- | |- | ||
|value[o]||The offset word for parameter value. This is only encoded if needed, but always at the position indicated. If not specified, the offset word occurs immediately after the parameter. | |value[o]||The offset word for parameter value. This is only encoded if needed, but always at the position indicated. If not specified, the offset word occurs immediately after the parameter. | ||
|- | |- | ||
|value[c]||An ASCII character. Because some instructions use null-terminated strings and some use $FF, the exact format of a string is described in the instruction. | |value[c]||An ASCII character. (Because some instructions use null-terminated strings and some use $FF, the exact format of a string is described in the instruction) | ||
|- | |||
|(term)||An optional term. | |||
|- | |- | ||
|term...||One or more terms. | |term...||One or more terms. | ||
Line 60: | Line 58: | ||
opcode actor[p8] sub-opcode... $FF | opcode actor[p8] sub-opcode... $FF | ||
sub- | sub-opcode can be any of the following: | ||
$01 costume[p8] | $01 costume[p8] | ||
$02 xspeed[p8] yspeed[p8] | $02 xspeed[p8] yspeed[p8] | ||
Line 181: | Line 178: | ||
===Operation=== | ===Operation=== | ||
Starts the given animation for the given actor. | Starts the given animation for the given actor. | ||
==arrayOp ($27)== | |||
parameters depend on auxiliary opcode | |||
===Encoding=== | |||
opcode $01 array[p8] | |||
opcode $02 dest[p8] src[p8] | |||
opcode $03 array[p8] index[p8] data[p8] | |||
opcode $04 result array[p8] index[p8] | |||
opcode $05 array[p8] size[p8] | |||
===Operation=== | |||
Miscellaneous actions on Arrays (referred to by resource number). | |||
{| border="1" cellpadding="2" width=100% | |||
|- style="background:whitesmoke" | |||
|Opcode||Meaning||Description | |||
|- | |||
|$01||load array||Ensures that the Array is loaded into memory. [I don't know what this does.] | |||
|- | |||
|$02||copy array||Creates a duplicate of src at resource number dest. The old Array at dest is lost. | |||
|- | |||
|$03||write entry||Writes the byte data at offset index of Array array. Out of bounds accesses cause undefined behaviour. | |||
|- | |||
|$04||read entry||Sets result to the byte of data at offset index of Array array. Out of bounds accesses cause undefined behaviour. | |||
|- | |||
|$05||create entry||Allocates or frees an Array. The Array array is initialised to size size; if size is zero, the Array is freed. | |||
|} | |||
Line 200: | Line 226: | ||
===Operation=== | ===Operation=== | ||
Replaces the currently running script with another one. The current script is terminated immediately and the new script | Replaces the currently running script with another one. The current script is terminated immediately and the new script, resource number script, is executed in the same thread. The new script has its local variables initialised to the list args. Uninitialised variables have undefined values. | ||
Line 211: | Line 237: | ||
sub-opcode can be any of the following: | sub-opcode can be any of the following: | ||
$01 | $01 | ||
$02 | |||
$03 | |||
$04 | |||
$05 | |||
$06 | |||
$07 | |||
$08 | $08 | ||
$0A cursornum[p8] charletter[p8] | $0A cursornum[p8] charletter[p8] | ||
Line 230: | Line 261: | ||
|$02||SO_CURSOR_OFF||Turns the cursor off. | |$02||SO_CURSOR_OFF||Turns the cursor off. | ||
|- | |- | ||
|$03||SO_USERPUT_ON|| | |$03||SO_USERPUT_ON||??? Becomes 1 | ||
|- | |- | ||
|$04||SO_USERPUT_OFF|| | |$04||SO_USERPUT_OFF||??? Becomes 0 | ||
|- | |- | ||
|$05||SO_CURSOR_SOFT_ON||Increments the cursor's state? | |$05||SO_CURSOR_SOFT_ON||Increments the cursor's state? | ||
Line 238: | Line 269: | ||
|$06||SO_CURSOR_SOFT_OFF||Decrements the cursor's state? | |$06||SO_CURSOR_SOFT_OFF||Decrements the cursor's state? | ||
|- | |- | ||
|$07||SO_USERPUT_SOFT_ON|| | |$07||SO_USERPUT_SOFT_ON||??? Incremented | ||
|- | |- | ||
|$08||SO_USERPUT_SOFT_OFF|| | |$08||SO_USERPUT_SOFT_OFF||??? Decremented | ||
|- | |- | ||
|$0A||SO_CURSOR_IMAGE||Changes the cursor image to a new one, based on image in a character set. Only used in Loom. | |$0A||SO_CURSOR_IMAGE||Changes the cursor image to a new one, based on image in a character set. Only used in Loom. | ||
Line 409: | Line 440: | ||
$01 value[p16] | $01 value[p16] | ||
$02 | $02 | ||
$03 | |||
$04 | |||
$05 | $05 | ||
$06 nested-opcode | $06 nested-opcode | ||
Line 449: | Line 481: | ||
===Operation=== | ===Operation=== | ||
object := owner.inventory[index] | object := owner.inventory[index] ??? | ||
Line 469: | Line 500: | ||
===Operation=== | ===Operation=== | ||
Freezes all scripts (by setting the high bit on each script's status). If flag is >= $80, all freeze resistent scripts will also be frozen. If flag is 0, all scripts are unfrozen. Freezing effects are cumulative - i.e. if script A is frozen twice, and unfrozen once, it will still be frozen until it is unfrozen a second time. A script's frozen status is indicated by the high bit. | Freezes all scripts (by setting the high bit on each script's status). If flag is >= $80, all freeze resistent scripts will also be frozen. If flag is 0, all scripts are unfrozen. Freezing effects are cumulative - i.e. if script A is frozen twice, and unfrozen once, it will still be frozen until it is unfrozen a second time. A script's frozen status is indicated by the high bit. | ||
==getActorCostume ($71)== | ==getActorCostume ($71)== | ||
Line 604: | Line 634: | ||
===Encoding=== | ===Encoding=== | ||
opcode result | opcode result actor[p16] | ||
===Operation=== | ===Operation=== | ||
Line 611: | Line 641: | ||
==getObjectState ($0F)== | ==getObjectState ($0F)== | ||
This opcode behaves differently in small header V5 games. | |||
===Encoding=== | ===Encoding=== | ||
Line 658: | Line 689: | ||
===Operation=== | ===Operation=== | ||
Returns the entry point for the response code/script for when the given verb is applied to the given object? | Returns the entry point for the response code/script for when the given verb is applied to the given object? | ||
Line 878: | Line 909: | ||
Target is a byte offset (measured from after this instruction), which will be added to the instruction pointer. | Target is a byte offset (measured from after this instruction), which will be added to the instruction pointer. | ||
Line 941: | Line 957: | ||
===Variants=== | ===Variants=== | ||
In SCUMM V3 and V4, this opcode is used for drawObject. | In SCUMM V3 and V4, this opcode is used for drawObject. | ||
Line 1,051: | Line 1,058: | ||
==resourceRoutines ($0C)== | ==resourceRoutines ($0C)== | ||
==roomOp ($33)== | ==roomOp ($33)== | ||
==saveRestoreVerbs ($AB)== | ==saveRestoreVerbs ($AB)== | ||
==setCameraAt ($32)== | ==setCameraAt ($32)== | ||
==setObjectName ($54)== | ==setObjectName ($54)== | ||
==setOwnerOf ($29)== | ==setOwnerOf ($29)== | ||
==setState ($07)== | ==setState ($07)== | ||
==setVarRange ($26)== | |||
non-standard encoding | non-standard encoding | ||
Line 1,310: | Line 1,094: | ||
This sets a number of variables to the given parameters. The starting variable is given as "result", and the number of variables to modify is given as "number". This is followed by the same number of values, which will be put into the variable locations. The values are constants, and can be either 16-bit, if the highest bit of the opcode is set, i.e. $A6; or 8-bit, if the highest bit of the opcode is not set, i.e. $26. Note that all values are affected by the opcode's high bit; you can't mix 8 and 16-bit values. | This sets a number of variables to the given parameters. The starting variable is given as "result", and the number of variables to modify is given as "number". This is followed by the same number of values, which will be put into the variable locations. The values are constants, and can be either 16-bit, if the highest bit of the opcode is set, i.e. $A6; or 8-bit, if the highest bit of the opcode is not set, i.e. $26. Note that all values are affected by the opcode's high bit; you can't mix 8 and 16-bit values. | ||
descumm example | ===descumm example=== | ||
setVarRange(Var[178],9,[0,0,0,0,0,0,0,0,0]); | setVarRange(Var[178],9,[0,0,0,0,0,0,0,0,0]); | ||
Line 1,317: | Line 1,101: | ||
==soundKludge ($4C)== | ==soundKludge ($4C)== | ||
==startMusic ($01)== | ==startMusic ($01)== | ||
==startObject ($37)== | ==startObject ($37)== | ||
==startScript ($0A)== | |||
one parameter plus varargs, extra encoding in opcode | one parameter plus varargs, extra encoding in opcode | ||
Line 1,382: | Line 1,125: | ||
|7||6||5||4 0 | |7||6||5||4 0 | ||
|- | |- | ||
|P1|| | |P1||Q||F||$0A | ||
|} | |} | ||
==startSound ($1C)== | ==startSound ($1C)== | ||
==stopMusic ($20)== | ==stopMusic ($20)== | ||
==stopObjectCode ($00)== | ==stopObjectCode ($00)== | ||
==stopObjectScript ($6E)== | ==stopObjectScript ($6E)== | ||
==stopScript ($62)== | ==stopScript ($62)== | ||
==stopSound ($3C)== | ==stopSound ($3C)== | ||
Line 1,509: | Line 1,180: | ||
|} | |} | ||
==wait ($AE)== | |||
==walkActorTo ($1E)== | |||
==walkActorToActor ($0D)== | |||
==walkActorToObject ($36)== | |||
=Table of Parameters= | |||
This is a work in progress and is missing opcodes. | |||
This table shows a summary of the opcodes and their parameters in a concise fashion. The information has been gleaned from the descumm source code, so some instruction names might not match those listed above. | |||
Currently it is missing: | |||
comparisons (lessThan, greaterThanEqual, equalZero etc) | |||
drawObject | |||
do_resource | |||
do_if_state_code (comparisons) | |||
do_print_ego | |||
do_varset_code | |||
do_unconditional_jump | |||
loadRoomWithEgo | |||
do_cursor_command | |||
doSentence | |||
do_expr_code | |||
do_load_code_to_string (sub-opcode of 0x27) | |||
do_actorops | |||
do_pseudoRoom(buf) | |||
do_room_ops(buf) | |||
do_verbops(buf, opcode) | |||
setVarRange | |||
do_matrix_ops(buf, opcode) | |||
Some instructions listed here are actually sub-opcodes, i.e. "WaitForCamera" is actually the "Wait" opcode with a sub-opcode representing "For Camera". | |||
=== | Argument types: | ||
{| border="1" | * V = variable | ||
|- style="background:whitesmoke" | * B = byte | ||
| | * W = word | ||
* L = list | |||
* J = jump (used by almost all boolean expressions, comparisons) | |||
* D = delay; 24-bit constant (only used by delay instruction, funnily enough) | |||
* A = ASCII (0-terminated string?); used by "setObjectName" | |||
* V|B or V|W = either a variable or a byte/word | |||
* None, if it does not take that argument. | |||
If an instruction returns a value, the result pointer follows immediately after the opcode and before any arguments. | |||
{| border="1" style="text-align:center" width=100% cellpadding=2 | |||
! Instruction | |||
! Returns a Value | |||
! Arg 1 | |||
! Arg 2 | |||
! Arg 3 | |||
|- | |||
|align="left" |actorFollowCamera | |||
|style="color:silver; background:whitesmoke" |False | |||
|V|B | |||
|style="color:silver; background:whitesmoke" |None | |||
|style="color:silver; background:whitesmoke" |None | |||
|- | |||
|align="left" |actorFromPos | |||
|True | |||
|V|W | |||
|V|W | |||
|style="color:silver; background:whitesmoke" |None | |||
|- | |||
|align="left" |animateCostume | |||
|style="color:silver; background:whitesmoke" |False | |||
|V|B | |||
|V|B | |||
|style="color:silver; background:whitesmoke" |None | |||
|- | |||
|align="left" |beginOverride | |||
|style="color:silver; background:whitesmoke" |False | |||
|style="color:silver; background:whitesmoke" |None | |||
|style="color:silver; background:whitesmoke" |None | |||
|style="color:silver; background:whitesmoke" |None | |||
|- | |||
|align="left" |breakHere | |||
|style="color:silver; background:whitesmoke" |False | |||
|style="color:silver; background:whitesmoke" |None | |||
|style="color:silver; background:whitesmoke" |None | |||
|style="color:silver; background:whitesmoke" |None | |||
|- | |||
|align="left" |chainScript | |||
|style="color:silver; background:whitesmoke" |False | |||
|V|B | |||
|L | |||
|style="color:silver; background:whitesmoke" |None | |||
|- | |||
|align="left" |classOfIs | |||
|style="color:silver; background:whitesmoke" |False | |||
|V|W | |||
|L | |||
|J | |||
|- | |||
|align="left" |CopyString | |||
|style="color:silver; background:whitesmoke" |False | |||
|V|B | |||
|V|B | |||
|style="color:silver; background:whitesmoke" |None | |||
|- | |||
|align="left" |CreateString | |||
|style="color:silver; background:whitesmoke" |False | |||
|V|B | |||
|V|B | |||
|style="color:silver; background:whitesmoke" |None | |||
|- | |||
|align="left" |cutscene | |||
|style="color:silver; background:whitesmoke" |False | |||
|L | |||
|style="color:silver; background:whitesmoke" |None | |||
|style="color:silver; background:whitesmoke" |None | |||
|- | |||
|align="left" |debug? | |||
|style="color:silver; background:whitesmoke" |False | |||
|V|W | |||
|style="color:silver; background:whitesmoke" |None | |||
|style="color:silver; background:whitesmoke" |None | |||
|- | |||
|align="left" |delay | |||
|style="color:silver; background:whitesmoke" |False | |||
|D | |||
|style="color:silver; background:whitesmoke" |None | |||
|style="color:silver; background:whitesmoke" |None | |||
|- | |||
|align="left" |delayVariable | |||
|style="color:silver; background:whitesmoke" |False | |||
|V | |||
|style="color:silver; background:whitesmoke" |None | |||
|style="color:silver; background:whitesmoke" |None | |||
|- | |||
|align="left" |deleteVerbs | |||
|style="color:silver; background:whitesmoke" |False | |||
|V|B | |||
|V|B | |||
|V|B | |||
|- | |||
|align="left" |dummy | |||
|style="color:silver; background:whitesmoke" |False | |||
|style="color:silver; background:whitesmoke" |None | |||
|style="color:silver; background:whitesmoke" |None | |||
|style="color:silver; background:whitesmoke" |None | |||
|- | |||
|align="left" |endCutscene | |||
|style="color:silver; background:whitesmoke" |False | |||
|style="color:silver; background:whitesmoke" |None | |||
|style="color:silver; background:whitesmoke" |None | |||
|style="color:silver; background:whitesmoke" |None | |||
|- | |||
|align="left" |endOverride | |||
|style="color:silver; background:whitesmoke" |False | |||
|style="color:silver; background:whitesmoke" |None | |||
|style="color:silver; background:whitesmoke" |None | |||
|style="color:silver; background:whitesmoke" |None | |||
|- | |||
|align="left" |faceActor | |||
|style="color:silver; background:whitesmoke" |False | |||
|V|B | |||
|V|W | |||
|style="color:silver; background:whitesmoke" |None | |||
|- | |||
|align="left" |findInventory | |||
|True | |||
|V|B | |||
|V|B | |||
|style="color:silver; background:whitesmoke" |None | |||
|- | |||
|align="left" |findObject | |||
|True | |||
|V|W | |||
|V|W | |||
|style="color:silver; background:whitesmoke" |None | |||
|- | |||
|align="left" |freezeScripts | |||
|style="color:silver; background:whitesmoke" |False | |||
|V|B | |||
|style="color:silver; background:whitesmoke" |None | |||
|style="color:silver; background:whitesmoke" |None | |||
|- | |||
|align="left" |getActorCostume | |||
|True | |||
|V|B | |||
|style="color:silver; background:whitesmoke" |None | |||
|style="color:silver; background:whitesmoke" |None | |||
|- | |||
|align="left" |getActorElevation | |||
|True | |||
|V|B | |||
|style="color:silver; background:whitesmoke" |None | |||
|style="color:silver; background:whitesmoke" |None | |||
|- | |||
|align="left" |getActorFacing | |||
|True | |||
|V|B | |||
|style="color:silver; background:whitesmoke" |None | |||
|style="color:silver; background:whitesmoke" |None | |||
|- | |||
|align="left" |getActorMoving | |||
|True | |||
|V|B | |||
|style="color:silver; background:whitesmoke" |None | |||
|style="color:silver; background:whitesmoke" |None | |||
|- | |||
|align="left" |getActorRoom | |||
|True | |||
|V|B | |||
|style="color:silver; background:whitesmoke" |None | |||
|style="color:silver; background:whitesmoke" |None | |||
|- | |||
|align="left" |getActorScale | |||
|True | |||
|V|B | |||
|style="color:silver; background:whitesmoke" |None | |||
|style="color:silver; background:whitesmoke" |None | |||
|- | |||
|align="left" |getActorWalkBox | |||
|True | |||
|V|B | |||
|style="color:silver; background:whitesmoke" |None | |||
|style="color:silver; background:whitesmoke" |None | |||
|- | |||
|align="left" |getActorWidth | |||
|True | |||
|V|B | |||
|style="color:silver; background:whitesmoke" |None | |||
|style="color:silver; background:whitesmoke" |None | |||
|- | |||
|align="left" |getActorX | |||
|True | |||
|V|W | |||
|style="color:silver; background:whitesmoke" |None | |||
|style="color:silver; background:whitesmoke" |None | |||
|- | |||
|align="left" |getActorY | |||
|True | |||
|V|W | |||
|style="color:silver; background:whitesmoke" |None | |||
|style="color:silver; background:whitesmoke" |None | |||
|- | |||
|align="left" |getClosestObjActor | |||
|True | |||
|V|W | |||
|style="color:silver; background:whitesmoke" |None | |||
|style="color:silver; background:whitesmoke" |None | |||
|- | |||
|align="left" |getDist | |||
|True | |||
|V|W | |||
|V|W | |||
|style="color:silver; background:whitesmoke" |None | |||
|- | |||
|align="left" |getInventoryCount | |||
|True | |||
|V|B | |||
|style="color:silver; background:whitesmoke" |None | |||
|style="color:silver; background:whitesmoke" |None | |||
|- | |||
|align="left" |getObjectOwner | |||
|True | |||
|V|W | |||
|style="color:silver; background:whitesmoke" |None | |||
|style="color:silver; background:whitesmoke" |None | |||
|- | |||
|align="left" |getObjectState | |||
|True | |||
|V|W | |||
|style="color:silver; background:whitesmoke" |None | |||
|style="color:silver; background:whitesmoke" |None | |||
|- | |||
|align="left" |getRandomNr | |||
|True | |||
|V|B | |||
|style="color:silver; background:whitesmoke" |None | |||
|style="color:silver; background:whitesmoke" |None | |||
|- | |||
|align="left" |GetStringChar | |||
|True | |||
|V|B | |||
|V|B | |||
|style="color:silver; background:whitesmoke" |None | |||
|- | |||
|align="left" |getStringWidth | |||
|True | |||
|V|B | |||
|style="color:silver; background:whitesmoke" |None | |||
|style="color:silver; background:whitesmoke" |None | |||
|- | |||
|align="left" |getVerbEntryPoint | |||
|True | |||
|V|W | |||
|V|W | |||
|style="color:silver; background:whitesmoke" |None | |||
|- | |||
|align="left" |isActorInBox | |||
|style="color:silver; background:whitesmoke" |False | |||
|V|B | |||
|V|B | |||
|J | |||
|- | |||
|align="left" |isScriptRunning | |||
|True | |||
|V|B | |||
|style="color:silver; background:whitesmoke" |None | |||
|style="color:silver; background:whitesmoke" |None | |||
|- | |||
|align="left" |isSoundRunning | |||
|True | |||
|V|B | |||
|style="color:silver; background:whitesmoke" |None | |||
|style="color:silver; background:whitesmoke" |None | |||
|- | |||
|align="left" |lights | |||
|style="color:silver; background:whitesmoke" |False | |||
|V|B | |||
|B | |||
|B | |||
|- | |||
|align="left" |loadRoom | |||
|style="color:silver; background:whitesmoke" |False | |||
|V|B | |||
|style="color:silver; background:whitesmoke" |None | |||
|style="color:silver; background:whitesmoke" |None | |||
|- | |||
|align="left" |oldRoomEffect-fadein | |||
|style="color:silver; background:whitesmoke" |False | |||
|V|W | |||
|style="color:silver; background:whitesmoke" |None | |||
|style="color:silver; background:whitesmoke" |None | |||
|- | |||
|align="left" |oldRoomEffect-set | |||
|style="color:silver; background:whitesmoke" |False | |||
|V|W | |||
|style="color:silver; background:whitesmoke" |None | |||
|style="color:silver; background:whitesmoke" |None | |||
|- | |||
|align="left" |panCameraTo | |||
|style="color:silver; background:whitesmoke" |False | |||
|V|W | |||
|style="color:silver; background:whitesmoke" |None | |||
|style="color:silver; background:whitesmoke" |None | |||
|- | |||
|align="left" |pickupObject | |||
|style="color:silver; background:whitesmoke" |False | |||
|V|W | |||
|V|B | |||
|style="color:silver; background:whitesmoke" |None | |||
|- | |||
|align="left" |putActor | |||
|style="color:silver; background:whitesmoke" |False | |||
|V|B | |||
|V|W | |||
|V|W | |||
|- | |||
|align="left" |putActorAtObject | |||
|style="color:silver; background:whitesmoke" |False | |||
|V|B | |||
|V|W | |||
|style="color:silver; background:whitesmoke" |None | |||
|- | |||
|align="left" |putActorInRoom | |||
|style="color:silver; background:whitesmoke" |False | |||
|V|B | |||
|V|B | |||
|style="color:silver; background:whitesmoke" |None | |||
|- | |||
|align="left" |restoreVerbs | |||
|style="color:silver; background:whitesmoke" |False | |||
|V|B | |||
|V|B | |||
|V|B | |||
|- | |||
|align="left" |saveLoadGame | |||
|True | |||
|V|B | |||
|style="color:silver; background:whitesmoke" |None | |||
|style="color:silver; background:whitesmoke" |None | |||
|- | |||
|align="left" |saveVerbs | |||
|style="color:silver; background:whitesmoke" |False | |||
|V|B | |||
|V|B | |||
|V|B | |||
|- | |||
|align="left" |setCameraAt | |||
|style="color:silver; background:whitesmoke" |False | |||
|V|W | |||
|style="color:silver; background:whitesmoke" |None | |||
|style="color:silver; background:whitesmoke" |None | |||
|- | |||
|align="left" |setClass | |||
|style="color:silver; background:whitesmoke" |False | |||
|V|W | |||
|L | |||
|style="color:silver; background:whitesmoke" |None | |||
|- | |||
|align="left" |setObjectName | |||
|style="color:silver; background:whitesmoke" |False | |||
|V|W | |||
|A | |||
|style="color:silver; background:whitesmoke" |None | |||
|- | |||
|align="left" |setOwnerOf | |||
|style="color:silver; background:whitesmoke" |False | |||
|V|W | |||
|V|B | |||
|style="color:silver; background:whitesmoke" |None | |||
|- | |- | ||
| | |align="left" |setState | ||
|style="color:silver; background:whitesmoke" |False | |||
|V|W | |||
|V|B | |||
|style="color:silver; background:whitesmoke" |None | |||
|- | |- | ||
| | |align="left" |SetStringChar | ||
|style="color:silver; background:whitesmoke" |False | |||
|V|B | |||
|V|B | |||
|V|B | |||
|- | |- | ||
| | |align="left" |soundKludge | ||
|style="color:silver; background:whitesmoke" |False | |||
|L | |||
|style="color:silver; background:whitesmoke" |None | |||
|style="color:silver; background:whitesmoke" |None | |||
|- | |- | ||
| | |align="left" |startMusic | ||
|style="color:silver; background:whitesmoke" |False | |||
|V|B | |||
|style="color:silver; background:whitesmoke" |None | |||
|style="color:silver; background:whitesmoke" |None | |||
|- | |- | ||
| | |align="left" |startObject | ||
|style="color:silver; background:whitesmoke" |False | |||
|V|W | |||
|V|B | |||
|L | |||
|- | |- | ||
| | |align="left" |startScript | ||
|style="color:silver; background:whitesmoke" |False | |||
|V|B | |||
|L | |||
|style="color:silver; background:whitesmoke" |None | |||
|- | |- | ||
| | |align="left" |startSound | ||
|style="color:silver; background:whitesmoke" |False | |||
|V|B | |||
|style="color:silver; background:whitesmoke" |None | |||
|style="color:silver; background:whitesmoke" |None | |||
|- | |- | ||
| | |align="left" |stopMusic | ||
|style="color:silver; background:whitesmoke" |False | |||
|style="color:silver; background:whitesmoke" |None | |||
|style="color:silver; background:whitesmoke" |None | |||
|style="color:silver; background:whitesmoke" |None | |||
|- | |- | ||
| | |align="left" |stopObjectCode | ||
|style="color:silver; background:whitesmoke" |False | |||
|style="color:silver; background:whitesmoke" |None | |||
|style="color:silver; background:whitesmoke" |None | |||
|style="color:silver; background:whitesmoke" |None | |||
|- | |- | ||
| | |align="left" |stopObjectScript | ||
|style="color:silver; background:whitesmoke" |False | |||
|V|W | |||
|style="color:silver; background:whitesmoke" |None | |||
|style="color:silver; background:whitesmoke" |None | |||
|- | |- | ||
| | |align="left" |stopScript | ||
|style="color:silver; background:whitesmoke" |False | |||
|V|B | |||
|style="color:silver; background:whitesmoke" |None | |||
|style="color:silver; background:whitesmoke" |None | |||
|- | |- | ||
| | |align="left" |stopSound | ||
|style="color:silver; background:whitesmoke" |False | |||
|V|B | |||
|style="color:silver; background:whitesmoke" |None | |||
|style="color:silver; background:whitesmoke" |None | |||
|- | |- | ||
| | |align="left" |systemOps | ||
|style="color:silver; background:whitesmoke" |False | |||
|B | |||
|style="color:silver; background:whitesmoke" |None | |||
|style="color:silver; background:whitesmoke" |None | |||
|- | |- | ||
| | |align="left" |WaitForActor | ||
|style="color:silver; background:whitesmoke" |False | |||
|V|B | |||
|style="color:silver; background:whitesmoke" |None | |||
|style="color:silver; background:whitesmoke" |None | |||
|- | |- | ||
| | |align="left" |WaitForCamera | ||
|style="color:silver; background:whitesmoke" |False | |||
|style="color:silver; background:whitesmoke" |None | |||
|style="color:silver; background:whitesmoke" |None | |||
|style="color:silver; background:whitesmoke" |None | |||
|- | |- | ||
| | |align="left" |WaitForMessage | ||
| | |style="color:silver; background:whitesmoke" |False | ||
|style="color:silver; background:whitesmoke" |None | |||
|style="color:silver; background:whitesmoke" |None | |||
= | |style="color:silver; background:whitesmoke" |None | ||
| | |||
|- | |- | ||
| | |align="left" |WaitForSentence | ||
|style="color:silver; background:whitesmoke" |False | |||
|style="color:silver; background:whitesmoke" |None | |||
|style="color:silver; background:whitesmoke" |None | |||
|style="color:silver; background:whitesmoke" |None | |||
|- | |- | ||
| | |align="left" |walkActorTo | ||
|style="color:silver; background:whitesmoke" |False | |||
|V|B | |||
|V|W | |||
|V|W | |||
|- | |- | ||
| | |align="left" |walkActorToActor | ||
|style="color:silver; background:whitesmoke" |False | |||
|V|B | |||
|V|B | |||
|B | |||
|- | |- | ||
| | |align="left" |walkActorToObject | ||
|style="color:silver; background:whitesmoke" |False | |||
|V|B | |||
|V|W | |||
|style="color:silver; background:whitesmoke" |None | |||
|} | |} | ||
edits