+
; function ptrs for each actor type
; inputs:
; de: actor ptr
+; actor_soam_ptr: next soam item
actor_update_table:
dw actor_update_null
dw actor_update_dust
ret
actor_update_dust:
+ ; load oam ptr
+ ld a, [actor_soam_ptr]
+ ld h, a
+ ld a, [actor_soam_ptr+1]
+ ld l, a
+
+ ld a, 20
+ ld [hl+], a
+ ld [hl+], a
+
+ ld a, PLAYER_TILE_IDLE1
+ ld [hl+], a
+
+ xor a, a
+ ld [hl+], a
+
+ ; store soam ptr again
+ ld a, l
+ ld [actor_soam_ptr+1], a
+ ld a, h
+ ld [actor_soam_ptr], a
+
ret
; updates all active actors from
; the current actor table
actors_update:
+ ; reset soam ptr
+ xor a, a
+ ldlo a, shadow_oam
+ add a, 10 * oamsize ; starting at oam 10
+ ld [actor_soam_ptr+1], a
+ ldhi a, shadow_oam
+ ld [actor_soam_ptr], a
+
ld b, ACTORS_MAX ; loop counter
ld de, actor_table
@loop:
actor_table: .adv ACTORS_MAX * actor_size
+actor_soam_ptr: .adv 2
+
#define PLAYER_DEFAULT_HP 3
#define PLAYER_DEFAULT_MP 3
#define PLAYER_DEFAULT_DEF 0