diff options
author | Astatin <[email protected]> | 2025-05-09 17:44:37 +0200 |
---|---|---|
committer | Astatin <[email protected]> | 2025-05-09 17:44:37 +0200 |
commit | b0f9e2e6d53983faa9d213b40d2bd6a23473e134 (patch) | |
tree | e8bf5eedd762203972afa10c6be79692767a3d2f /entity/utils.gbasm | |
parent | 507a9876b85f47ff81cc9150bea858eec064ba05 (diff) |
Refactoring the animations/directions + entities turn function with macros + finishing froge
Diffstat (limited to 'entity/utils.gbasm')
-rw-r--r-- | entity/utils.gbasm | 116 |
1 files changed, 116 insertions, 0 deletions
diff --git a/entity/utils.gbasm b/entity/utils.gbasm index 944faa8..8dea589 100644 --- a/entity/utils.gbasm +++ b/entity/utils.gbasm @@ -141,3 +141,119 @@ Spawn_object: ; Texture in D, XY in BC, jump table thingy in E POP HL .skip_spawn_loot: RET + +.MACRODEF ENTITY_HEALTH_CHECK Skip_turn Drop_Function + LD A, L + AND $f0 + ADD $06 + LD L, A + + LD A, (HL) + CP $00 + JR NZ, =$end + + LD A, L + AND $f0 + LD L, A + + LD (HL), $00 + LD A, $mem_enemies_alive_count + DEC A + LD $mem_enemies_alive_count, A + + CALL $Drop_Function + + JP $Skip_turn + $end: +.END + +.MACRODEF ENTITY_FREEZE_SHIVER Skip_turn + LD A, $mem_moving_animation_step + CP $00 + JP NZ, =$end + LD A, L + AND $f0 + ADD $08 + LD L, A + LD A, $01 + CP (HL) + JR NZ, =$end + RES 3, D + CALL =RNG_Step + CP $55 + JP NC, $Skip_turn + LD A, L + AND $f0 + OR $0a + LD L, A + LD (HL), $04 + + CALL =RNG_Step + CP $55 + JP NC, $Skip_turn + + LD A, $00 + LD (HL-), A + RES 1, (HL) + JP $Skip_turn + $end: +.END + +.MACRODEF ENTITY_STATUS_SKIP_TURN Skip_Turn + LD A, L + AND $f0 + ADD $08 + LD L, A + + BIT 0, (HL) + JP NZ, $Skip_turn +.END + +Entity_End_movement: + LD A, $mem_moving_animation_step + CP $0f + RET NZ + + LD A, L + AND $f0 + OR $0a + LD L, A + LD (HL), $00 + LD A, D + RES 3, A + BIT 3, D + LD D, A + RET Z + LD A, $01 + .ADD_A_TO_DIRECTION_BC + RET + +.MACRODEF RESET_BLINKING_MODE + LD A, $mem_moving_animation_step + CP $00 + JP NZ, =$end + + LD A, L + AND $f0 + OR $07 + LD L, A + RES 3, (HL) + + $end: +.END + +.MACRODEF ENTITY_TRY_ATTACK Sight_check Attack_Function Attack_end + LD A, $mem_moving_animation_step + CP $00 + JP NZ, $Attack_end + + CALL $Sight_check + LD A, $00 + CP E + JR Z, =$next + + CALL $Attack_Function + JP $Attack_end + + $next: +.END |