Prev: 44479 Up: Map Next: 44596
44496: Player Movement
PlayerMovement 44496 CALL StoreEntity Call StoreEntity.
44499 CALL 41356 Call 41356.
44502 LD A,16 Write 16 to 38573.
44504 LD (38573),A
44507 LD A,(IX+2)
44510 AND A
44511 JP NZ,43397
Initialise the player movement (0000 == no movement).
44514 LD DE,0 DE=0000.
44517 CALL HandlerControls Call HandlerControls.
Check if the player is under the influence of an orchid.
44520 LD A,(IX+5) A=the colour of the player.
44523 CP 71 If the player is not using attribute 71 (white) then jump to 44596.
44525 JR NZ,44596
Controllers for player controls.
Handle "fire".
44527 BIT 4,C Jump to 44596 if "fire" was pressed.
44529 JR Z,44596
Handle "right".
44531 BIT 1,C Jump to PlayerMovement_Left if "right" was pressed.
44533 JR Z,PlayerMovement_Left
Update movement for moving right.
44535 LD A,E E=E+32.
44536 ADD A,32
44538 LD E,A
Handle "left".
PlayerMovement_Left 44539 BIT 0,C Jump to PlayerMovement_Down if "left" was pressed.
44541 JR Z,PlayerMovement_Down
Update movement for moving left.
44543 LD A,E E=E-32.
44544 SUB 32
44546 LD E,A
Handle "down".
PlayerMovement_Down 44547 BIT 2,C Jump to PlayerMovement_Up if "down" was pressed.
44549 JR Z,PlayerMovement_Up
Update movement for moving down.
44551 LD A,D D=D-32.
44552 SUB 32
44554 LD D,A
Handle "up".
PlayerMovement_Up 44555 BIT 3,C Jump to PlayerMovement_0 if "up" was pressed.
44557 JR Z,PlayerMovement_0
Update movement for moving up.
44559 LD A,D D=D+32.
44560 ADD A,32
44562 LD D,A
Update the player Actor Entity.
PlayerMovement_0 44563 LD (IX+6),E Write E to IX+6.
44566 LD (IX+7),D Write D to IX+7.
44569 CALL 45032 Call 45032.
44572 LD BC,5646 BC=5646.
44575 CALL 47132 Call 47132.
44578 CALL 44619 Call 44619.
44581 CALL 43757 Call 43757.
44584 LD (IX+3),E Write E to IX+3 (sprite x co-ordinate).
44587 LD (IX+4),D Write D to IX+4 (sprite y co-ordinate).
44590 CALL NZ,48971
44593 JP 44381 Jump to 44381.
Prev: 44479 Up: Map Next: 44596