actor: Removed old animation code
authorLukas Krickl <lukas@krickl.dev>
Sun, 9 Mar 2025 11:11:16 +0000 (12:11 +0100)
committerLukas Krickl <lukas@krickl.dev>
Sun, 9 Mar 2025 11:11:16 +0000 (12:11 +0100)
src/actor.s
src/player.s

index 356fbfb307bead725df420821f883c39f1d6333f..f5303c2ad56afe18937e94fd7a66e93b5243a23d 100644 (file)
@@ -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:
index a47cd3d6b933ea1a224619fd659277a0435c4171..947ccf58f3e7ae338e86aa7fa1da281c8a9ccc87 100644 (file)
@@ -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