Go to most recent revision | Details | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
950 | leency | 1 | ; , ID (AX) |
2 | paint_ball: |
||
3 | pushad |
||
4 | |||
5 | movzx bx, byte [eax*2 + lineCoord - 4] |
||
6 | movzx cx, byte [eax*2 + lineCoord - 3] |
||
7 | |||
8 | movzx eax, byte [eax + lineBall - 2] |
||
9 | test eax, eax |
||
10 | jz @F |
||
11 | |||
12 | mov edx,[tableColor+eax*4] |
||
13 | |||
14 | imul bx, bx, 37 |
||
15 | add bx, 11 |
||
16 | shl ebx, 16 |
||
17 | mov bx, 19 ; ebx=[x start]*65536+[x size] |
||
18 | |||
19 | imul cx, cx, 37 |
||
20 | add cx, 57 |
||
21 | shl ecx, 16 |
||
22 | mov cx, 19 ; ecx=[y start]*65536+[y size] |
||
23 | |||
24 | mcall 13 |
||
25 | @@: |
||
26 | popad |
||
27 | ret |
||
28 | |||
29 | |||
30 | ; [current] |
||
31 | choice_ball: |
||
32 | pushad |
||
33 | mov eax, [current] |
||
34 | movzx bx, byte [eax*2 + lineCoord - 4] |
||
35 | movzx cx, byte [eax*2 + lineCoord - 3] |
||
36 | |||
37 | imul bx, bx, 37 |
||
38 | add bx, 3 |
||
39 | shl ebx, 16 |
||
40 | mov bx, 34 ; ebx=[x start]*65536+[x size] |
||
41 | |||
42 | imul cx, cx, 37 |
||
43 | add cx, 49 |
||
44 | shl ecx, 16 |
||
45 | mov cx, 34 ; ecx=[y start]*65536+[y size] |
||
46 | |||
47 | mov edx,0x0 |
||
48 | mcall 13 |
||
49 | popad |
||
50 | ret |
||
51 | |||
52 | ; (eax) |
||
53 | redraw_cell: |
||
54 | pushad |
||
55 | or eax, 0x80000000 |
||
56 | mov edx,eax |
||
57 | mcall 8 |
||
58 | |||
59 | and edx, 0x7FFFFFFF |
||
60 | movzx bx, byte [edx*2 + lineCoord - 4] |
||
61 | movzx cx, byte [edx*2 + lineCoord - 3] |
||
62 | |||
63 | imul bx, bx, 37 |
||
64 | add bx, 3 |
||
65 | shl ebx, 16 |
||
66 | mov bx, 34 ; ebx=[x start]*65536+[x size] |
||
67 | |||
68 | imul cx, cx, 37 |
||
69 | add cx, 49 |
||
70 | shl ecx, 16 |
||
71 | mov cx, 34 ; ecx=[y start]*65536+[y size] |
||
72 | |||
73 | mov esi, 0x00B8C2D3 |
||
74 | mcall 8 |
||
75 | |||
76 | popad |
||
77 | ret |
||
78 | |||
79 | ; |
||
80 | vanish_balls: |
||
81 | |||
82 | mov [countVanishBall], 0 |
||
83 | mov al, [findUpDown] |
||
84 | cmp al, 4 |
||
85 | jb @F |
||
86 | |||
87 | add [countVanishBall], al |
||
88 | mov ah, 1 |
||
89 | call zero_vanish_matrix |
||
90 | mov ah, 2 |
||
91 | call zero_vanish_matrix |
||
92 | @@: |
||
93 | mov al, [findRightLeft] |
||
94 | cmp al, 4 |
||
95 | jb @F |
||
96 | |||
97 | add [countVanishBall], al |
||
98 | mov ah, 3 |
||
99 | call zero_vanish_matrix |
||
100 | mov ah, 4 |
||
101 | call zero_vanish_matrix |
||
102 | @@: |
||
103 | mov al, [findUpRight_DownLeft] |
||
104 | cmp al, 4 |
||
105 | jb @F |
||
106 | |||
107 | add [countVanishBall], al |
||
108 | mov ah, 7 |
||
109 | call zero_vanish_matrix |
||
110 | mov ah, 8 |
||
111 | call zero_vanish_matrix |
||
112 | @@: |
||
113 | mov al, [findUpLeft_DownRight] |
||
114 | cmp al, 4 |
||
115 | jb @F |
||
116 | |||
117 | add [countVanishBall], al |
||
118 | mov ah, 5 |
||
119 | call zero_vanish_matrix |
||
120 | mov ah, 6 |
||
121 | call zero_vanish_matrix |
||
122 | @@: |
||
123 | ret |
||
124 | |||
125 | ;ฎกญใซ๏ฅโ ฌ โเจๆใ ฏฎ แฎฎโข งญ ็ฅญจ๎ ah |
||
126 | zero_vanish_matrix: |
||
127 | |||
128 | mov ecx, 81 |
||
129 | mov edi, lineBall |
||
130 | xor al, al |
||
131 | |||
132 | .cycle_zeros: |
||
133 | mov dl, [edi] |
||
134 | shr dl, 4 |
||
135 | cmp dl, 0x0F |
||
136 | je @F |
||
137 | cmp dl, ah |
||
138 | je @F |
||
139 | inc edi |
||
140 | jmp .temp |
||
141 | @@: |
||
142 | stosb |
||
143 | push eax |
||
144 | mov eax, edi |
||
145 | sub eax, lineBall - 1 |
||
146 | call redraw_cell |
||
147 | pop eax |
||
148 | .temp: |
||
149 | loop .cycle_zeros |
||
150 | ret |
||
151 | |||
152 | ; |
||
153 | paint_new_color: |
||
154 | movzx eax, [newColor1] |
||
155 | mov edx, [tableColor + eax*4] |
||
156 | mov ebx, 123*65536 + 19 |
||
157 | mov ecx, 15*65536 + 19 |
||
158 | mcall 13 |
||
159 | movzx eax, [newColor2] |
||
160 | mov edx, [tableColor + eax*4] |
||
161 | mov ebx, 160*65536 + 19 |
||
162 | mov ecx, 15*65536 + 19 |
||
163 | mcall 13 |
||
164 | movzx eax, [newColor3] |
||
165 | mov edx, [tableColor + eax*4] |
||
166 | mov ebx, 197*65536 + 19 |
||
167 | mov ecx, 15*65536 + 19 |
||
168 | mcall 13 |
||
169 | ret |
||
170 | |||
171 | ; |
||
172 | redraw_score: |
||
173 | mov ebx, 8*65536 + 100 |
||
174 | mov ecx, 20*65536 + 20 |
||
175 | mov edx, 0x0 |
||
176 | mcall 13 |
||
177 | |||
178 | mov ebx, 0xB0000 |
||
179 | mov ecx, [score] |
||
180 | mov edx, 15*65536 + 27 |
||
181 | mov esi, 0x10ffffff |
||
182 | mcall 47 |
||
183 | ret |