Prev: 36390 Up: Map Next: 37191
36710: Apply Movement
Used by the routine at ControlPlayer.
ApplyMovement 36710 BIT 4,(IX+2)
36714 JR NZ,ApplyMovement_0
36716 LD A,E
36717 ADD A,(IX+3)
36720 LD (IX+3),A
ApplyMovement_0 36723 BIT 5,(IX+2)
36727 RET NZ
36728 LD A,D
36729 ADD A,(IX+4)
36732 LD (IX+4),A
36735 RET
This entry point is used by the routine at HandlerKnight.
ApplyMovement_1 36736 AND A
36737 JP P,ApplyMovement_2
36740 NEG
36742 RRCA
36743 RRCA
36744 RRCA
36745 RRCA
36746 AND 15
36748 NEG
36750 RET
ApplyMovement_2 36751 RRCA
36752 RRCA
36753 RRCA
36754 RRCA
36755 AND 15
36757 RET
This entry point is used by the routine at ControlPlayer.
ApplyMovement_3 36758 LD A,(IX+2)
36761 AND 15
36763 RET NZ
36764 LD A,(IX+6)
36767 AND A
36768 JR Z,ApplyMovement_6
36770 JP M,ApplyMovement_9
36773 SUB L
36774 JP P,ApplyMovement_5
ApplyMovement_4 36777 XOR A
ApplyMovement_5 36778 LD (IX+6),A
ApplyMovement_6 36781 LD A,(IX+7)
36784 AND A
36785 RET Z
36786 JP M,ApplyMovement_10
36789 SUB H
36790 JP P,ApplyMovement_8
ApplyMovement_7 36793 XOR A
ApplyMovement_8 36794 LD (IX+7),A
36797 RET
ApplyMovement_9 36798 ADD A,L
36799 JP M,ApplyMovement_5
36802 JR ApplyMovement_4
ApplyMovement_10 36804 ADD A,H
36805 JP M,ApplyMovement_8
36808 JR ApplyMovement_7
This entry point is used by the routine at ControlPlayer.
ApplyMovement_11 36810 PUSH DE
36811 LD A,E
36812 ADD A,(IX+3)
36815 LD E,A
36816 LD D,(IX+4)
36819 LD B,16
36821 CALL ApplyMovement_12
36824 POP DE
36825 PUSH DE
36826 LD E,(IX+3)
36829 LD A,D
36830 ADD A,(IX+4)
36833 LD D,A
36834 LD B,32
36836 CALL ApplyMovement_12
36839 POP DE
36840 RET
ApplyMovement_12 36841 LD HL,24093
36844 LD A,E
36845 SUB 88
36847 JP P,ApplyMovement_13
36850 NEG
ApplyMovement_13 36852 CP (HL)
36853 RET NC
36854 INC HL
36855 LD A,D
36856 SUB 104
36858 JP P,ApplyMovement_14
36861 NEG
ApplyMovement_14 36863 CP (HL)
36864 RET NC
36865 LD A,B
36866 CPL
36867 AND (IX+2)
36870 LD (IX+2),A
36873 RET
This entry point is used by the routine at ControlPlayer.
ApplyMovement_15 36874 PUSH DE
36875 LD A,E
36876 ADD A,(IX+3)
36879 LD E,A
36880 LD D,(IX+4)
36883 LD A,16
36885 EX AF,AF'
36886 CALL ApplyMovement_16
36889 POP DE
36890 PUSH DE
36891 LD E,(IX+3)
36894 LD A,D
36895 ADD A,(IX+4)
36898 LD D,A
36899 LD A,32
36901 EX AF,AF'
36902 CALL ApplyMovement_16
36905 POP DE
36906 RET
ApplyMovement_16 36907 LD C,(IX+1)
36910 LD B,0
36912 LD HL,30077
36915 SLA C
36917 RL B
36919 ADD HL,BC
36920 LD C,(HL)
36921 INC HL
36922 LD B,(HL)
ApplyMovement_17 36923 LD A,(BC)
36924 INC BC
36925 LD L,A
36926 LD A,(BC)
36927 INC BC
36928 LD H,A
36929 OR L
36930 RET Z
36931 PUSH BC
36932 LD BC,30077
36935 AND A
36936 SBC HL,BC
36938 INC HL
36939 LD A,(HL)
36940 CP (IX+1)
36943 JR Z,ApplyMovement_18
36945 LD BC,8
36948 ADD HL,BC
ApplyMovement_18 36949 INC HL
36950 INC HL
36951 LD C,(HL)
36952 INC HL
36953 LD B,(HL)
36954 INC HL
36955 LD A,(HL)
36956 INC HL
36957 BIT 2,A
36959 JR NZ,ApplyMovement_21
36961 BIT 3,A
36963 JR NZ,ApplyMovement_20
36965 LD A,(HL)
36966 SRA A
36968 SRA A
36970 AND 252
36972 ADD A,C
36973 SUB E
36974 NEG
36976 LD C,A
36977 LD A,(HL)
36978 RLCA
36979 RLCA
36980 AND 60
36982 INC HL
36983 CP C
36984 JR C,ApplyMovement_20
36986 LD A,(HL)
36987 SRA A
36989 SRA A
36991 AND 252
36993 ADD A,B
36994 SUB D
36995 LD B,A
36996 LD A,(HL)
36997 INC HL
36998 RLCA
36999 RLCA
37000 AND 60
37002 CP B
37003 JR C,ApplyMovement_20
37005 EX AF,AF'
37006 LD C,A
37007 EX AF,AF'
37008 LD A,C
37009 CPL
37010 AND (IX+2)
ApplyMovement_19 37013 LD (IX+2),A
ApplyMovement_20 37016 POP BC
37017 JR ApplyMovement_17
ApplyMovement_21 37019 LD A,(HL)
37020 SRA A
37022 SRA A
37024 AND 252
37026 ADD A,C
37027 SUB E
37028 NEG
37030 LD C,A
37031 LD A,(HL)
37032 RLCA
37033 RLCA
37034 AND 60
37036 INC HL
37037 CP C
37038 JR C,ApplyMovement_20
37040 LD A,(HL)
37041 SRA A
37043 SRA A
37045 AND 252
37047 ADD A,B
37048 SUB D
37049 LD B,A
37050 LD A,(HL)
37051 INC HL
37052 RLCA
37053 RLCA
37054 AND 60
37056 CP B
37057 JR C,ApplyMovement_20
37059 EX AF,AF'
37060 LD C,A
37061 EX AF,AF'
37062 LD A,C
37063 OR (IX+2)
37066 JR ApplyMovement_19
This entry point is used by the routines at HandlerDoorExit, HandlerRoomItem and GameComplete.
ApplyMovement_22 37068 LD A,(60050)
37071 AND 15
37073 RET NZ
37074 LD A,(60048)
37077 DEC A
37078 CP 48
37080 RET NC
37081 BIT 6,(IX+5)
37085 JR Z,ApplyMovement_23
37087 SRL C
ApplyMovement_23 37089 LD A,(60051)
37092 SUB (IX+3)
37095 CP C
37096 RET NC
37097 BIT 6,(IX+5)
37101 JR NZ,ApplyMovement_24
37103 SRL B
ApplyMovement_24 37105 LD A,(60052)
37108 SUB (IX+4)
37111 NEG
37113 CP B
37114 RET
This entry point is used by the routines at HandlerFoodItem, HandlerCaveDoorLocked and GameComplete.
ApplyMovement_25 37115 LD A,(60051)
37118 SUB (IX+3)
37121 JP P,ApplyMovement_26
37124 NEG
ApplyMovement_26 37126 CP 12
37128 RET NC
37129 LD A,(60052)
37132 SUB (IX+4)
37135 JP P,ApplyMovement_27
37138 NEG
ApplyMovement_27 37140 CP 12
37142 RET
This entry point is used by the routines at HandlerDoorExit, HandlerDoorLocked and GameComplete.
ApplyMovement_28 37143 CALL HandlerCaveDoorLocked_5
37146 LD A,(IX+1)
37149 LD (60049),A
37152 LD A,(IX+2)
37155 RLCA
37156 AND 30
37158 ADD A,(IX+3)
37161 LD (60051),A
37164 LD A,(IX+2)
37167 RRCA
37168 RRCA
37169 RRCA
37170 AND 30
37172 NEG
37174 ADD A,(IX+4)
37177 LD (60052),A
37180 CALL GameComplete_12
37183 LD A,(60050)
37186 OR 15
37188 LD (60050),A
Prev: 36390 Up: Map Next: 37191