aboutsummaryrefslogtreecommitdiff
path: root/animations/laser.gbasm
diff options
context:
space:
mode:
authorAstatin <[email protected]>2025-01-22 18:20:43 +0900
committerAstatin <[email protected]>2025-01-22 18:20:43 +0900
commit57326c9acf9cbb025d54093fb90fd70614659400 (patch)
treec8f396d56119fbfba1718e1891b9e9bd659f698f /animations/laser.gbasm
parent02038990a93c0b4cf58269b5456327ea64b998b7 (diff)
Add laser animation and change animation steps to decrement
Diffstat (limited to 'animations/laser.gbasm')
-rw-r--r--animations/laser.gbasm124
1 files changed, 124 insertions, 0 deletions
diff --git a/animations/laser.gbasm b/animations/laser.gbasm
new file mode 100644
index 0000000..fba2df4
--- /dev/null
+++ b/animations/laser.gbasm
@@ -0,0 +1,124 @@
+Laser_Animation:
+ INC HL
+
+ LD A, (HL+)
+ ADD $80
+ LD D, A
+ LD A, $mem_viewport_x
+ LD B, A
+ SUB $82
+ CP D
+ RET NC
+ ADD $0e
+ CP D
+ RET C
+ LD A, D
+ SUB $80
+ SUB B
+ AND $0f
+ SWAP A
+ LD B, A
+
+ LD A, (HL+)
+ ADD $80
+ LD D, A
+ LD A, $mem_viewport_y
+ LD C, A
+ SUB $82
+ CP D
+ RET NC
+ ADD $0d
+ CP D
+ RET C
+ LD A, D
+ SUB $80
+ SUB C
+ AND $0f
+ SWAP A
+ ADD $06
+ LD C, A
+
+ LD E, (HL)
+ DEC E
+ DEC E
+ CP E
+ JP C, =.End_animation
+ LD (HL), E
+
+ DEC HL
+ DEC HL
+ DEC HL
+ LD A, (HL+)
+ SWAP A
+ SRA A
+ SRA A
+ AND $03
+ INC A
+ LD D, A
+
+ LD A, $04
+ ADD B
+ LD B, A
+
+ LD A, $04
+ ADD C
+ LD C, A
+
+ LD A, $0f
+ AND E
+ CP $00
+ JR NZ =.Skip_move_animation_tile
+
+ PUSH BC
+
+ LD B, (HL)
+ INC HL
+ LD C, (HL)
+
+ LD A, $01
+ .ADD_A_TO_DIRECTION_BC
+
+ LD (HL), C
+ DEC HL
+ LD (HL), B
+
+ POP BC
+
+ .Skip_move_animation_tile:
+
+ LD A, $0f
+ AND E
+ CPL
+ INC A
+ ADD $0f
+
+ .ADD_A_TO_DIRECTION_BC
+
+ .ADD_MOVING_ANIMATION_OFFSET
+
+ PUSH HL
+ LD HL, $mem_oam_buffer
+ LD A, $mem_oam_buffer_low
+ LD L, A
+ ADD $08
+ LD $mem_oam_buffer_low, A
+
+ LD A, C
+ LD (HL+), A
+
+ LD A, B
+ LD (HL+), A
+ LD A, $64
+ LD (HL+), A
+ LD A, $00
+ LD (HL+), A
+
+ POP HL
+ RET
+
+ .End_animation:
+ LD A, L
+ AND $fc
+ LD L, A
+ LD (HL), $00
+ RET