︙ | | | ︙ | |
708
709
710
711
712
713
714
715
716
717
718
719
720
721
|
LASTIMAGE
MOVED
MOVING
NEXTWARP
PLAYERMOVING
POSTINIT
SUNK
Input constants:
'BACK = 8
'TAB = 9
'CENTER = 12
'ENTER = 13
'SHIFT = 16
|
>
|
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
|
LASTIMAGE
MOVED
MOVING
NEXTWARP
PLAYERMOVING
POSTINIT
SUNK
XCREATE
Input constants:
'BACK = 8
'TAB = 9
'CENTER = 12
'ENTER = 13
'SHIFT = 16
|
︙ | | | ︙ | |
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
|
object. The direction of movement is specified by the Dir variable.
This flag is also used for connected movement, for a different purpose.
NextR : any
This variable is normally zero, but when there is a collision by the
CollisionLayers, it can be programmed to destroy an object and create
another one which represents the combination of the two. In this case,
the NextR variable of the destroyed object points to the new one. (Note:
This feature is not yet fully implemented.)
Player : bool [c] [ro]
If this object is the player. This is used implicitly as the From of
some messages sent by the game engine, and has a few other purposes.
(Normally, a level should have exactly one object of such a class,
although this is not mandatory; any number (including zero) is allowed.)
|
|
<
|
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
|
object. The direction of movement is specified by the Dir variable.
This flag is also used for connected movement, for a different purpose.
NextR : any
This variable is normally zero, but when there is a collision by the
CollisionLayers, it can be programmed to destroy an object and create
another one which represents the combination of the two. In this case,
the NextR variable of the destroyed object points to the new one.
Player : bool [c] [ro]
If this object is the player. This is used implicitly as the From of
some messages sent by the game engine, and has a few other purposes.
(Normally, a level should have exactly one object of such a class,
although this is not mandatory; any number (including zero) is allowed.)
|
︙ | | | ︙ | |
2395
2396
2397
2398
2399
2400
2401
2402
2403
2404
2405
2406
2407
2408
2409
|
Of the return value, bit0 means to prevent the movement, bit1 means to
not send any more COLLIDEBY messages, bit2 means to pretend the movement
attempt is successful even if it isn't (there is no effect for creating
objects; this bit is meaningful only for moves), and bit4 means that if
necessary, it will try to destroy this object to make room. From is the
object attempting to move here, and Arg1 and Arg2 are its location (if
attempting to create an object, then From, Arg1, and Arg2 are all zero).
Arg3 is the class of the object being moved or created.
COLLIDING
Called when deferred movement is being performed if the move cannot
occur due to a collision with some other object. From is the object
that it is colliding with, Arg1 and Arg2 are its location, and Arg3
is the type of collision (0 if this object is trying to move into a
stationary object, 1 if another object is trying to move into this
|
|
>
>
>
>
>
|
2395
2396
2397
2398
2399
2400
2401
2402
2403
2404
2405
2406
2407
2408
2409
2410
2411
2412
2413
2414
|
Of the return value, bit0 means to prevent the movement, bit1 means to
not send any more COLLIDEBY messages, bit2 means to pretend the movement
attempt is successful even if it isn't (there is no effect for creating
objects; this bit is meaningful only for moves), and bit4 means that if
necessary, it will try to destroy this object to make room. From is the
object attempting to move here, and Arg1 and Arg2 are its location (if
attempting to create an object, then From, Arg1, and Arg2 are all zero).
Arg3 is the class of the object being moved or created. If the return
value is a class, then it will destroy this one, and if moving also the
object moving, and attempt to create an object of the specified class
instead and set the NextR of both old objects to the new one. If the
return value is an object, it is treated as 1 but creation will return
the specified object instead of the one which is trying to be created.
COLLIDING
Called when deferred movement is being performed if the move cannot
occur due to a collision with some other object. From is the object
that it is colliding with, Arg1 and Arg2 are its location, and Arg3
is the type of collision (0 if this object is trying to move into a
stationary object, 1 if another object is trying to move into this
|
︙ | | | ︙ | |
2435
2436
2437
2438
2439
2440
2441
2442
2443
2444
2445
2446
2447
2448
2449
2450
2451
2452
2453
2454
2455
2456
2457
2458
2459
2460
2461
2462
2463
2464
2465
2466
2467
|
the Inertia is not automatically changed.
CREATE
Sent when the object is created by the Create instruction. This is done
after the object is created, but before sending any other messages. The
From is the object that created it. The return value will be used as the
Arg3 of the SUNK and CREATED messages it might send if appropriate. From
is the object which executed the Create instruction to create it.
CREATED
Sent to all objects whose Arrivals care about objects in the location
where an object has just been created. From is the newly created object,
Arg1 and Arg2 are the X and Y coordinates where the object was created,
and Arg3 is the return value from the CREATE message.
DEPARTED
Sent during the trigger phase if the Departed value is nonzero. Arg1 is
the saved Departed value. The Departed variable will usually be set
automatically; see the section about variables.
DESTROY
Received when the object is about to be destroyed. Arg3 is the reason:
0 for the Destroy or ,Destroy instruction, 1 due to this object moving
into something sharp, 2 due to something sharp moving into this one,
3 for a conflict with CollisionLayers, or 4 for crushing. The return
value is false to allow it to be destroyed or true to keep the object.
DESTROYED
Sent to all objects whose Departures care about objects in the location
where an object has just been destroyed (if its VisualOnly flag isn't
set). From is the object which has just been destroyed. Arg3 is the
reason, as for the DESTROY message.
|
|
>
>
|
>
>
>
>
|
>
|
2440
2441
2442
2443
2444
2445
2446
2447
2448
2449
2450
2451
2452
2453
2454
2455
2456
2457
2458
2459
2460
2461
2462
2463
2464
2465
2466
2467
2468
2469
2470
2471
2472
2473
2474
2475
2476
2477
2478
2479
|
the Inertia is not automatically changed.
CREATE
Sent when the object is created by the Create instruction. This is done
after the object is created, but before sending any other messages. The
From is the object that created it. The return value will be used as the
Arg3 of the SUNK and CREATED messages it might send if appropriate. From
is the object which executed the Create instruction to create it, or zero
if it was sent after a XCREATE message due to objects being replaced
after a collision.
CREATED
Sent to all objects whose Arrivals care about objects in the location
where an object has just been created. From is the newly created object,
Arg1 and Arg2 are the X and Y coordinates where the object was created,
and Arg3 is the return value from the CREATE message.
DEPARTED
Sent during the trigger phase if the Departed value is nonzero. Arg1 is
the saved Departed value. The Departed variable will usually be set
automatically; see the section about variables.
DESTROY
Received when the object is about to be destroyed. Arg3 is the reason:
0 for the Destroy or ,Destroy instruction, 1 due to this object moving
into something sharp, 2 due to something sharp moving into this one,
3 for a conflict with CollisionLayers, 4 for crushing, 5 if it was
destroyed due to COLLIDEBY returning a class or object to be created
in its place to substitute for it, or 6 if it was trying to move into
another place but could not and COLLIDEBY told it to create a different
object in its place (in which case From is the object that it collided
with). The return value is false to allow it to be destroyed or true to
keep the object.
DESTROYED
Sent to all objects whose Departures care about objects in the location
where an object has just been destroyed (if its VisualOnly flag isn't
set). From is the object which has just been destroyed. Arg3 is the
reason, as for the DESTROY message.
|
︙ | | | ︙ | |
2574
2575
2576
2577
2578
2579
2580
2581
2582
2583
2584
2585
2586
2587
|
has been exchanged with. Arg3 is the return value from the corresponding
FLOATED message. The other cases this is used is when an object moves or
is created but is not the least dense object at that location. In this
case, From is zero, and the return value is not used. For creation, Arg3
is the return value of the corresponding CREATE message; for movement,
Arg3 is always zero. (This has nothing to do with sinking in water.)
=== Hit values ===
This section describes the bits of the return value of the HIT and HITBY
messages; these values are also used as the Arg3 of those messages.
Some descriptions below are marked with an asterisk. If the Compatible
|
>
>
>
>
>
>
>
>
>
>
>
>
>
|
2586
2587
2588
2589
2590
2591
2592
2593
2594
2595
2596
2597
2598
2599
2600
2601
2602
2603
2604
2605
2606
2607
2608
2609
2610
2611
2612
|
has been exchanged with. Arg3 is the return value from the corresponding
FLOATED message. The other cases this is used is when an object moves or
is created but is not the least dense object at that location. In this
case, From is zero, and the return value is not used. For creation, Arg3
is the return value of the corresponding CREATE message; for movement,
Arg3 is always zero. (This has nothing to do with sinking in water.)
XCREATE
This message is received by an object which has been just created due to
a COLLIDEBY message returning a class. From is the object at the target
location that a collision with layers occurred (which is now destroyed).
Arg1 is the class of the attempted creation or object trying to move
here, Arg2 is the image of the attempted creation or object trying to
move here, and Arg3 is the object trying to move here (or zero if it was
trying to create an object). If the return value is zero, then it will
continue with CREATE, CREATED, SUNK, and FLOATED messages like with a
usual creation, but if a number other than zero then they are skipped.
If the return value is an object, then the Create command will return
the specified object.
=== Hit values ===
This section describes the bits of the return value of the HIT and HITBY
messages; these values are also used as the Arg3 of those messages.
Some descriptions below are marked with an asterisk. If the Compatible
|
︙ | | | ︙ | |