381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
|
(<label> <code...>)
Make a code block whose entry point is the specified label.
(<message> <code...>)
Make a code block whose entry point is the specified message.
(<key> <code...>)
(This is not implemented yet.)
=== Data types ===
The following data types are available:
* Number: A 32-bit integer. Whether it is treated as signed or unsigned
depends on the context. In some cases, it is used as bit field data.
* Class: A class name with a $ prefix.
* Message: A message name. User-defined message names have a # prefix;
standard message names have no prefix.
* Object: A reference to an object. There are no literals of this type.
* String: A string in quotation marks. There are no string manipulation
functions; the only thing that can be done with a string is to display it.
* Sound: A sound.
Some things are not their own types, and are other uses of numbers:
* Null: A null class or null object is represented as zero.
* Boolean: When a boolean is required as input to some instruction, zero
is false, and most other values (of any type) are true, except for sounds
|
>
>
>
|
>
>
>
>
>
>
|
>
|
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
|
(<label> <code...>)
Make a code block whose entry point is the specified label.
(<message> <code...>)
Make a code block whose entry point is the specified message.
(<key> <code...>)
Add a code block for key dispatch. This cannot be combined with a KEY
message in the same class; it causes the KEY message to be automatically
defined for this class. If this class has the Input flag and the first
instruction is not IgnoreKey, then it is entered into an internal list
of key codes to not ignore. Otherwise, the automatic KEY messages (for
all classes with them, not only this one) will have the effect of the
IgnoreKey instruction when an unrecognized key is specified. You can
still call the KEY message by yourself; Arg1 is the key code, and if
Arg3 is true then the implicit IgnoreKey will not be executed (although
any explicit IgnoreKey will still work).
=== Data types ===
The following data types are available:
* Number: A 32-bit integer. Whether it is treated as signed or unsigned
depends on the context. In some cases, it is used as bit field data.
* Class: A class name with a $ prefix.
* Message: A message name. User-defined message names have a # prefix;
standard message names have no prefix.
* Object: A reference to an object. There are no literals of this type.
* String: A string in quotation marks. There are no string manipulation
functions; the only thing that can be done with a string is to display it.
* Sound: A named sound effect. Values of this type cannot be compared with
anything, even other values of the same type.
Some things are not their own types, and are other uses of numbers:
* Null: A null class or null object is represented as zero.
* Boolean: When a boolean is required as input to some instruction, zero
is false, and most other values (of any type) are true, except for sounds
|