Prev: 47519 Up: Map Next: 47564
47525: Handle Guard Or Wizard
Handles the top half of a guard or of the wizard, who patrol round the room, following the walls. The bottom half is the next object in the table and it is moved with the top half.
Input
IX Address of the top half of the guard
Move the guard and keep the bottom half in step.
HandleGuardOrWizard 47525 CALL SetPixelAdjustments_GuardTop Set the pixel adjustments of a guard.
47528 CALL ApplyGravityAndMove Apply gravity to the guard and move it.
47531 CALL GetGuardSpeeds Work out the speeds of the guard from its direction.
47534 LD (IX+9),L Set the speed in X of the guard.
47537 LD (IX+41),L Set the speed in X of the bottom half.
47540 LD (IX+10),H Set the speed in Y of the guard.
47543 LD (IX+42),H Set the speed in Y of the bottom half.
47546 LD A,(IX+1) Fetch the X coordinate of the guard.
47549 LD (IX+33),A Set the X coordinate of the bottom half.
47552 LD A,(IX+2) Fetch the Y coordinate of the guard.
47555 LD (IX+34),A Set the Y coordinate of the bottom half.
47558 CALL FaceDirectionOfMovement Choose the graphic of the guard from its direction.
47561 JP SetDeadlyFlagsAndDraw Make the guard deadly and flag it to be drawn again.
Prev: 47519 Up: Map Next: 47564