From 9417d846c85162ef536d3d974beb6b82c43e088e Mon Sep 17 00:00:00 2001 From: Lukas Krickl Date: Sun, 9 Mar 2025 12:11:16 +0100 Subject: [PATCH] actor: Removed old animation code --- src/actor.s | 261 --------------------------------------------------- src/player.s | 1 - 2 files changed, 262 deletions(-) diff --git a/src/actor.s b/src/actor.s index 356fbfb..f5303c2 100644 --- a/src/actor.s +++ b/src/actor.s @@ -49,206 +49,6 @@ actor_anim_table_bat: .db BAT_TILE_IDLE2 .db BAT_TILE_IDLE2 - ; loads initial actor target positions - ; inputs: - ; bc: actor_ptr - ; returns: - ; actors current y/x pos in target_y/x -actor_ld_anim_target: - ; bc = actor type - - inc bc ; bc = y - ld a, [bc] - ld [anim_target_y], a - - inc bc ; bc = x - ld a, [bc] - ld [anim_target_x], a - - dec bc - dec bc ; bc = back to origin - ret - - ; generic actor movement calls - ; up, down, left, right - ; inputs: - ; bc: actor_ptr - ; actor_soam_ptr: next soam item -actor_up: - ld a, ANIM_MOVE_TILE_SIZE - ld [anim_move_y], a - ld a, ANIM_STEP_UP - ld [anim_step_y], a - - xor a, a - ld [anim_step_x], a - ld [anim_move_x], a - - ; calculate target position - ld d, ANIM_MOVE_TILE_SIZE - ld a, [anim_target_y] - sub a, d - ld [anim_target_y], a - - ret - -actor_down: - ld a, ANIM_MOVE_TILE_SIZE - ld [anim_move_y], a - ld a, ANIM_STEP_DOWN - ld [anim_step_y], a - - xor a, a - ld [anim_step_x], a - ld [anim_move_x], a - - ; calculate target position - ld d, ANIM_MOVE_TILE_SIZE - ld a, [anim_target_y] - add a, d - ld [anim_target_y], a - - ret - -actor_left: - ld a, ANIM_MOVE_TILE_SIZE - ld [anim_move_x], a - ld a, ANIM_STEP_LEFT - ld [anim_step_x], a - - xor a, a - ld [anim_step_y], a - ld [anim_move_y], a - - ; calculate target position - ld d, ANIM_MOVE_TILE_SIZE - ld a, [anim_target_x] - sub a, d - ld [anim_target_x], a - - ret - -actor_right: - ld a, ANIM_MOVE_TILE_SIZE - ld [anim_move_x], a - ld a, ANIM_STEP_RIGHT - ld [anim_step_x], a - - xor a, a - ld [anim_step_y], a - ld [anim_move_y], a - - ; calculate target position - ld d, ANIM_MOVE_TILE_SIZE - ld a, [anim_target_x] - add a, d - ld [anim_target_x], a - - ret - - ; verify actor animation - ; by checking for collision - ; clear anim memory if check fails - ; inputs: - ; bc: actor ptr - ; anim_target_y/x: target position -actor_anim_verify: - push bc - - ; TODO implement - ld a, [anim_target_y] - sub a, ANIM_MOVE_TILE_SIZE / 2 ; -8 to be in center - ld d, a - ld a, [anim_target_x] - sub a, ANIM_MOVE_TILE_SIZE / 2 ; -8 to be in center - ld e, a - ld a, RF_WALL | RF_DOOR | RF_ACTOR | RF_PLAYER - call room_get_flag_masked - - pop bc - - ret z - push af - call anim_clear - pop af - ret - - ; macro version of actor_tile_update_rf_flag - ; inputs: - ; $1: RF FLAG to set / unset - ; $2: offset / tile - ; bc: original y/x position ptr - ; anim_target_y/x: target position - ; returns: - ; sets the $1 flag at target_y/x - ; unsets $1 at [bc] and [bc+1] - ; preserves registers -#macro update_rf_flag - ; first unset existing flags - - ; sub 8 to positions to center on tile - ld a, [bc] - sub a, ANIM_MOVE_TILE_SIZE / 2 ; -8 to be in center - ld d, a ; d = y pos - inc bc ; bc = x pos - ld a, [bc] - sub a, ANIM_MOVE_TILE_SIZE / 2 ; -8 to be in center - ld e, a ; e = x pos - call room_get_flag_ptr - - ; unset flag - ld a, [hl] - and a, 0xFF ^ $1 - ld [hl], a - - - ; then set the new position's flag - ld a, [anim_target_y] - sub a, ANIM_MOVE_TILE_SIZE / 2 ; -8 to be in center - ld d, a ; d = y pos - ld a, [anim_target_x] - sub a, ANIM_MOVE_TILE_SIZE / 2 ; -8 to be in center - ld e, a ; e = x pos - call room_get_flag_ptr - - ; set flag - ld a, [hl] - or a, $1 - ld [hl], a - -@skip: -#endmacro - - ; same as actor_tile_update_rf_flags - ; but decs hl before calling and - ; increments again after -player_tile_update_rf_flags: - push_all - update_rf_flag RF_PLAYER - pop_all - ret - - ; marks the current actor's tile - ; as occupied by an actor - ; also removes the flag from the actor's current tile - ; this only works for the default case of - ; an acotr needing a single tile. - ; inputs: - ; bc: (actor ptr) original y/x position ptr - ; anim_target_y/x: target position - ; returns: - ; sets the RF_ACTOR flag at target_y/x - ; unsets RF_ACTOR at [bc] and [bc+1] - ; preserves registers -actor_tile_update_rf_flags: - push_all - - inc bc ; bc = y pos - - update_rf_flag RF_ACTOR - - pop_all - ret ; function ptrs for each actor type ; inputs: @@ -264,7 +64,6 @@ actor_update_null: ; actor_end_turn turn_finish - call anim_clear jp who_next ; bat actor @@ -372,66 +171,6 @@ actors_update: ret - ; simple move animation - ; moves 1 pixel per frame - ; inputs: - ; hl: ptr to y/x positon - ; anim_move_x/y: y/x offset - ; anim_step_x/y: y/x step per frame - ; returns: - ; a == 0 if both y and x are 0 - ; hl is left unchanged -anim_move: - ; y pos - ld a, [anim_move_y] - ld b, a ; exit code == b - - cp a, 0 - jr z, @no_y REL ; if move is 0 do nothing - - dec a - ld [anim_move_y], a ; a-- - - ld a, [hl] - ld b, a - ld a, [anim_step_y] - add a, b ; a = y + step - ld [hl], a -@no_y: - - inc hl - - ; x pos - ld a, [anim_move_x] - cp a, 0 - jr z, @no_x REL ; if move is 0 do nothing - - dec a - ld [anim_move_x], a ; a-- - - ld a, [hl] - ld b, a - ld a, [anim_step_x] - add a, b ; a = x + step - ld [hl], a - -@no_x: - dec hl - ; exit code - ld a, b - - ret - - ; clear anim memory -anim_clear: - xor a, a - ld [anim_move_y], a - ld [anim_move_x], a - ld [anim_step_y], a - ld [anim_step_x], a - ld [anim_target_y], a - ld [anim_target_x], a - ret ; draws cursor at the active actor's location ; inputs: diff --git a/src/player.s b/src/player.s index a47cd3d..947ccf5 100644 --- a/src/player.s +++ b/src/player.s @@ -241,7 +241,6 @@ player_collision_check: call anim_abort_walk jr @skip REL @no_collision: - ; call z, player_tile_update_rf_flags @skip: ret -- 2.30.2