diff options
author | Astatin <[email protected]> | 2024-09-19 18:56:32 +0900 |
---|---|---|
committer | Astatin <astatin@redacted> | 2024-09-19 18:56:32 +0900 |
commit | ec1f79b44203735f581c7f85b6c23216aaf587a6 (patch) | |
tree | 0ae669440b2dce7f2e23cfadebb3dc0ab42efcba /bunny.gbasm | |
parent | fa37dcacf1ff0de66f5c4eed7b89be6006d6d77b (diff) |
Read action buttons and set it in the entity direction highest nibble
Diffstat (limited to 'bunny.gbasm')
-rw-r--r-- | bunny.gbasm | 313 |
1 files changed, 0 insertions, 313 deletions
diff --git a/bunny.gbasm b/bunny.gbasm deleted file mode 100644 index d19b161..0000000 --- a/bunny.gbasm +++ /dev/null @@ -1,313 +0,0 @@ -Initialize_Bunny: - LD HL, $mem_entities_list - LD A, $01 - LD (HL+), A - - LD A, $mem_number_of_rooms - CALL =RNG_Bound - SLA A - SLA A - ADD $80 - LD C, A - - LD B, $c8 - - LD A, (BC) - LD D, A - INC BC - LD A, (BC) - INC A - CALL =RNG_Bound - ADD D - - LD (HL+), A - - INC BC - - LD A, (BC) - LD D, A - INC BC - LD A, (BC) - INC A - CALL =RNG_Bound - ADD D - LD (HL+), A - INC HL - LD BC, =Move_Bunny - LD A, B - LD (HL+), A - LD A, C - LD (HL+), A - INC HL - INC HL - - LD A, $0d - LD (HL+), A - LD A, $mem_bunny_x - LD (HL+), A - LD A, $mem_bunny_y - LD (HL+), A - LD A, $03 - LD (HL+), A - LD BC, =Fox_AI - LD A, B - LD (HL+), A - LD A, C - LD (HL+), A - INC HL - INC HL - - LD A, $0d - LD (HL+), A - LD A, $mem_bunny_x - LD (HL+), A - LD A, $mem_bunny_y - LD (HL+), A - LD A, $03 - LD (HL+), A - LD BC, =Fox_AI - LD A, B - LD (HL+), A - LD A, C - LD (HL+), A - INC HL - INC HL - - LD A, $0d - LD (HL+), A - LD A, $mem_bunny_x - LD (HL+), A - LD A, $mem_bunny_y - LD (HL+), A - LD A, $03 - LD (HL+), A - LD BC, =Fox_AI - LD A, B - LD (HL+), A - LD A, C - LD (HL+), A - INC HL - INC HL - - LD A, $0d - LD (HL+), A - LD A, $mem_bunny_x - LD (HL+), A - LD A, $mem_bunny_y - LD (HL+), A - LD A, $03 - LD (HL+), A - LD BC, =Fox_AI - LD A, B - LD (HL+), A - LD A, C - LD (HL+), A - INC HL - INC HL - - LD A, $0d - LD (HL+), A - LD A, $mem_bunny_x - LD (HL+), A - LD A, $mem_bunny_y - LD (HL+), A - LD A, $03 - LD (HL+), A - LD BC, =Fox_AI - LD A, B - LD (HL+), A - LD A, C - LD (HL+), A - INC HL - INC HL - - LD A, $0d - LD (HL+), A - LD A, $mem_bunny_x - LD (HL+), A - LD A, $mem_bunny_y - LD (HL+), A - LD A, $03 - LD (HL+), A - LD BC, =Fox_AI - LD A, B - LD (HL+), A - LD A, C - LD (HL+), A - INC HL - INC HL - - LD A, $0d - LD (HL+), A - LD A, $mem_bunny_x - LD (HL+), A - LD A, $mem_bunny_y - LD (HL+), A - LD A, $03 - LD (HL+), A - LD BC, =Fox_AI - LD A, B - LD (HL+), A - LD A, C - LD (HL+), A - INC HL - INC HL - - LD A, $0d - LD (HL+), A - LD A, $mem_bunny_x - LD (HL+), A - LD A, $mem_bunny_y - LD (HL+), A - LD A, $03 - LD (HL+), A - LD BC, =Fox_AI - LD A, B - LD (HL+), A - LD A, C - LD (HL+), A - INC HL - INC HL - - -Fix_Bunny_screen: - LD A, $mem_bunny_x - SUB $05 - LD $mem_viewport_x, A - - LD A, $mem_bunny_y - SUB $04 - LD $mem_viewport_y, A - - LD A, $mem_viewport_x - SWAP A - AND $f0 - OR $08 - LD $reg_viewport_x, A - - LD A, $mem_viewport_y - SWAP A - AND $f0 - OR $08 - LD $reg_viewport_y, A - - RET - -Move_Bunny: - PUSH HL - LD C, $00 ; (bit 0 = has_scrolled, bit 1 = has ended movement) - LD A, $mem_bunny_direction - BIT 3, A - JR NZ, =Move_Bunny.check_collision - - LD A, $mem_button_direction - CP $00 - JP Z, =Move_Bunny.end - SET 3, A - LD $mem_bunny_direction, A - - Move_Bunny.check_collision: - LD A, $mem_moving_animation_step - CP $00 - JR NZ, =Move_Bunny.check_collision.end - - ; THIS ASSUMES THAT THE BUNNY IS ALWAYS THE FIRST ENTITY IN THE LIST - LD HL, $mem_entities_list - LD A, $mem_bunny_direction - - PUSH BC - CALL =Get_Position_After_Move - LD A, C - CALL =Is_Collisionable - - PUSH AF - PUSH HL - LD HL, $9ba0 - CALL =Print_8bit - POP HL - - CALL =Carve_Entity_Collision_Map - POP AF - POP BC - CP $00 - JR Z, =Move_Bunny.check_collision.end - - Move_Bunny.check_collision.collision: - LD A, $mem_bunny_direction - RES 3, A - LD $mem_bunny_direction, A - JP =Move_Bunny.end - - Move_Bunny.check_collision.end: - - Move_Bunny.check_direction: - LD A, $mem_bunny_direction - - DEC A - LD B, $01 ; Direction of the movement (+1) - BIT 0, A - JR NZ, =Move_Bunny.check_direction_end - LD B, $FF ; Direction of the movement (-1) - - Move_Bunny.check_direction_end: - - BIT 1, A - JR NZ, =Move_Bunny.vertical_viewport_move - - Move_Bunny.horizontal_viewport_move: - SET 0, C - LD A, $reg_viewport_x - ADD B - LD $reg_viewport_x, A - JP =Move_Bunny.check_end_of_movement - - Move_Bunny.vertical_viewport_move: - SET 0, C - LD A, $reg_viewport_y - ADD B - LD $reg_viewport_y, A - - Move_Bunny.check_end_of_movement: - LD A, $mem_moving_animation_step - INC A - AND $0f - LD $mem_moving_animation_step, A - JR NZ, =Move_Bunny.end - SET 1, C - LD A, $mem_bunny_direction - RES 3, A - LD $mem_bunny_direction, A - AND $07 - DEC A - - BIT 1, A - JR NZ, =Move_Bunny.vertical_tile_move - - Move_Bunny.horizontal_tile_move: - BIT 0, C - JR Z, =Move_Bunny.horizontal_tile_move.move_viewport_end - LD A, $mem_viewport_x - ADD B - LD $mem_viewport_x, A - Move_Bunny.horizontal_tile_move.move_viewport_end: - LD A, $mem_bunny_x - ADD B - LD $mem_bunny_x, A - JP =Move_Bunny.end - - Move_Bunny.vertical_tile_move: - BIT 0, C - JR Z, =Move_Bunny.vertical_tile_move.move_viewport_end - LD A, $mem_viewport_y - ADD B - LD $mem_viewport_y, A - Move_Bunny.vertical_tile_move.move_viewport_end: - LD A, $mem_bunny_y - ADD B - LD $mem_bunny_y, A - - Move_Bunny.end: - LD A, C - LD $mem_map_loading_flags, A - POP HL - RET |