1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
|
Set_E_Skip_display:
LD E, $01
RET
Laser_Animation:
INC HL
LD E, $00
LD A, (HL+)
ADD $80
LD D, A
LD A, $mem_viewport_x
LD B, A
SUB $82
CP D
CALL NC, =Set_E_Skip_display
ADD $0e
CP D
CALL C, =Set_E_Skip_display
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
CALL NC, =Set_E_Skip_display
ADD $0d
CP D
CALL C, =Set_E_Skip_display
LD A, D
SUB $80
SUB C
AND $0f
SWAP A
ADD $06
LD C, A
LD A, E
LD $tmp_var_1, A
LD A, (HL)
SUB $02
JP C, =End_animation
LD E, A
LD (HL), A
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, $tmp_var_1
CP $01
RET Z
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
LD A, C
LD (HL+), A
LD A, B
LD (HL+), A
LD A, $vram_animation_index+4
LD (HL+), A
LD A, $00
LD (HL+), A
LD A, L
LD $mem_oam_buffer_low, A
POP HL
RET
|