Routines |
Prev: D664 | Up: Map | Next: D7C5 |
|
|||||||||||||||
Character state variables/ flags.
|
|||||||||||||||
Bandit_State_Reference | D71E | DEFB $04 | The current character state. | ||||||||||||
Bandit_Timer_01 | D71F | DEFB $08 | Character timer 1. | ||||||||||||
Bandit_Timer_02 | D720 | DEFB $08 | Character timer 2. | ||||||||||||
Bandit_Timer_03 | D721 | DEFB $00 | Character timer 3. | ||||||||||||
Bandit_Timer_04 | D722 | DEFB $55 | Character timer 4. | ||||||||||||
D723 | DEFB $08 | ||||||||||||||
D724 | DEFB $08 | ||||||||||||||
This routine looks at the current character state and routes to the correct subroutine.
|
|||||||||||||||
Bandit_Open_Routing | D725 | LD HL,$D71E | A=Bandit_State_Reference. | ||||||||||||
D728 | LD A,(HL) | ||||||||||||||
D729 | DEC A | Work out which routine to use based on the current state.
|
|||||||||||||
D72A | JR Z,Bandit_Open_01 | ||||||||||||||
D72C | DEC A | ||||||||||||||
D72D | JR Z,Bandit_Open_02 | ||||||||||||||
D72F | DEC A | ||||||||||||||
D730 | JR Z,Bandit_Open_03 | ||||||||||||||
D732 | JR Bandit_Open_04 | ||||||||||||||
Handle door frame 1 countdown/ transition to door frame 2.
|
|||||||||||||||
Bandit_Open_01 | D734 | LD A,($D71F) | Decrease Bandit_Timer_01 by one, return if result is not zero. | ||||||||||||
D737 | DEC A | ||||||||||||||
D738 | LD ($D71F),A | ||||||||||||||
D73B | RET NZ | ||||||||||||||
D73C | INC (HL) | Move onto next character state. | |||||||||||||
D73D | CALL Draw_DoorFrame02 | Pass character frame index (draw | 00) to Draw_DoorFrame02 and return. | |||||||||||||
D740 | RET | ||||||||||||||
Handle door frame 2 countdown/ transition to door frame 3.
|
|||||||||||||||
Bandit_Open_02 | D741 | LD A,($D720) | Decrease Bandit_Timer_02 by one, return if result is not zero. | ||||||||||||
D744 | DEC A | ||||||||||||||
D745 | LD ($D720),A | ||||||||||||||
D748 | RET NZ | ||||||||||||||
D749 | INC (HL) | Move onto next character state. | |||||||||||||
D74A | CALL Draw_DoorFrame03 | Pass character frame index (draw | 00) to Draw_DoorFrame03 and return. | |||||||||||||
D74D | RET | ||||||||||||||
Handle door frame 3 countdown/ transition to door frame 4.
|
|||||||||||||||
Bandit_Open_03 | D74E | LD A,($D721) | Decrease Bandit_Timer_03 by one, return if result is not zero. | ||||||||||||
D751 | DEC A | ||||||||||||||
D752 | LD ($D721),A | ||||||||||||||
D755 | RET NZ | ||||||||||||||
D756 | INC (HL) | Move onto next character state. | |||||||||||||
D757 | CALL Draw_DoorFrame04 | Pass character frame index (draw | 00) to Draw_DoorFrame04 and return. | |||||||||||||
D75A | RET | ||||||||||||||
Handle door frame 4 timer...
|
|||||||||||||||
Bandit_Open_04 | D75B | LD DE,$CED8 | Calls Hit_Detection with DE=$CED8. | ||||||||||||
D75E | CALL Hit_Detection | ||||||||||||||
D761 | LD A,($D722) | Decrease Bandit_Timer_04 by one, return if result is not zero. | |||||||||||||
D764 | DEC A | ||||||||||||||
D765 | LD ($D722),A | ||||||||||||||
D768 | RET NZ | ||||||||||||||
D769 | INC A | Writes $01 to D2FE. | |||||||||||||
D76A | LD ($D2FE),A | ||||||||||||||
D76D | CALL Reset___ | Call Reset___. | |||||||||||||
D770 | RET | Return. | |||||||||||||
This routine looks at the current character state and routes to the correct subroutine.
|
|||||||||||||||
Bandit_Close_Routing | D771 | LD HL,$D71E | A=Bandit_State_Reference. | ||||||||||||
D774 | LD A,(HL) | ||||||||||||||
D775 | DEC A | Work out which routine to use based on the current state.
|
|||||||||||||
D776 | JR Z,Bandit_Shot_Action | ||||||||||||||
D778 | DEC A | ||||||||||||||
D779 | JR Z,Bandit_Close_04 | ||||||||||||||
D77B | DEC A | ||||||||||||||
D77C | JR Z,Bandit_Close_03 | ||||||||||||||
D77E | DEC A | ||||||||||||||
D77F | JR Z,Bandit_Close_02 | ||||||||||||||
D781 | JR Bandit_Close_01 | ||||||||||||||
Handles the transition to the (shot | 01) frame in the open doorway.
|
|||||||||||||||
Bandit_Shot_Action | D783 | INC (HL) | Move onto next character state. | ||||||||||||
D784 | INC A | Move onto next character frame (i.e. shot | 01). | |||||||||||||
D785 | CALL Draw_DoorFrame04 | Call Draw_DoorFrame04 and return. | |||||||||||||
D788 | RET | ||||||||||||||
Handle "floor frame in open doorway" countdown.
|
|||||||||||||||
Bandit_Close_04 | D789 | LD A,($D71F) | Decrease Bandit_Timer_01 by one, return if result is not zero. | ||||||||||||
D78C | DEC A | ||||||||||||||
D78D | LD ($D71F),A | ||||||||||||||
D790 | RET NZ | ||||||||||||||
D791 | INC (HL) | Move onto next character state. | |||||||||||||
D792 | LD A,$02 | Pass character frame index (floor | 02) to Draw_DoorFrame04 and return. | |||||||||||||
D794 | CALL Draw_DoorFrame04 | ||||||||||||||
D797 | RET | ||||||||||||||
Handle door frame 4 countdown/ transition to door frame 3.
|
|||||||||||||||
Bandit_Close_03 | D798 | LD A,($D720) | Decrease Bandit_Timer_02 by one, return if result is not zero. | ||||||||||||
D79B | DEC A | ||||||||||||||
D79C | LD ($D720),A | ||||||||||||||
D79F | RET NZ | ||||||||||||||
D7A0 | INC (HL) | Move onto next character state. | |||||||||||||
D7A1 | LD A,$02 | Pass character frame index (floor | 02), pass it to Draw_DoorFrame03 and return. | |||||||||||||
D7A3 | CALL Draw_DoorFrame03 | ||||||||||||||
D7A6 | RET | ||||||||||||||
Handle door frame 3 countdown/ transition to door frame 2.
|
|||||||||||||||
Bandit_Close_02 | D7A7 | LD A,($D721) | Decrease Bandit_Timer_03 by one, return if result is not zero. | ||||||||||||
D7AA | DEC A | ||||||||||||||
D7AB | LD ($D721),A | ||||||||||||||
D7AE | RET NZ | ||||||||||||||
D7AF | INC (HL) | Move onto next character state. | |||||||||||||
D7B0 | LD A,$02 | Pass character frame index (floor | 02), pass it to Draw_DoorFrame02 and return. | |||||||||||||
D7B2 | CALL Draw_DoorFrame02 | ||||||||||||||
D7B5 | RET | ||||||||||||||
Handle door frame 2 countdown/ transition to door frame 1.
|
|||||||||||||||
Bandit_Close_01 | D7B6 | LD A,($D722) | Decrease Bandit_Timer_04 by one, return if result is not zero. | ||||||||||||
D7B9 | DEC A | ||||||||||||||
D7BA | LD ($D722),A | ||||||||||||||
D7BD | RET NZ | ||||||||||||||
D7BE | CALL Draw_DoorFrame1 | Call Draw_DoorFrame1 (i.e. no character/ door is shut). | |||||||||||||
D7C1 | CALL Reset___ | Call Reset___. | |||||||||||||
D7C4 | RET | Return. |
Prev: D664 | Up: Map | Next: D7C5 |