126 {
128 s32 temp_a2 = data->
unk_00;
129 f32 sp48;
130 f32 sp4C;
133 s32 sp54;
134 s32 envR, envG, envB;
135 s32 sp18[4];
136 f32 sp28[4];
137 f32 sp38[4];
138 s32 i;
139
140 s32 t3;
141 s32 v0;
142 s32 temp_a0;
143 s32 s3;
144 s32 temp_v0_2;
145 s32 temp_v0_3;
146 s32 temp_v1;
147 s32 var_a0;
148 s32 var_a1;
149 s32 var_a2;
150 s32 uly;
151 s32 var_t2_2;
152 s32 var_t4;
153 s32 t6;
154 s32 var_v1;
155
159
161 f32 temp_f12 = data->
unk_1C[i];
162 f32 temp_f14 = data->
unk_2C[i];
163 f32 temp_f0 = data->
unk_3C[i];
164 s32 temp_s5 = temp_s1->
unk_10;
165 s32 height = temp_s1->
unk_14;
166
167 if (i == 0) {
169 } else {
170 var_a2 = temp_f0;
171 sp48 = temp_f12;
172 sp4C = temp_f14;
173 }
174
175 sp18[i] = var_a2;
176 sp28[i] = sp48;
177 sp38[i] = sp4C;
178
179 if ((var_a2 != 0) && !(sp48 < 0.0f) && !(sp4C < 0.0f) && !(sp48 >= 320.0f) && !(sp4C >= 240.0f)) {
181 temp_v1 = (data->
unk_5C * temp_a0) >> 9;
182 temp_v0_2 = (data->
unk_60 * temp_a0) >> 9;
183 temp_v0_3 = (data->
unk_64 * temp_a0) >> 9;
184
186 (temp_v1 * temp_a0) >> 8,
187 (temp_v0_2 * temp_a0) >> 8,
188 (temp_v0_3 * temp_a0) >> 8,
189 255
190 );
191
192 envR = temp_v1 + 32;
193 envG = temp_v0_2 + 32;
194 envB = temp_v0_3 + 32;
195 if (envR > 127) {
196 envR = 127;
197 }
198 if (envG > 127) {
199 envG = 127;
200 }
201 if (envB > 127) {
202 envB = 127;
203 }
204
205 gDPSetEnvColor(
gMainGfxPos++, envR, envG, envB, 0);
206
207 s3 = sp48 - temp_s5;
208 t6 = s3 + temp_s5 * 2;
209 v0 = sp4C - temp_s5;
210 var_a0 = v0 + 2 * temp_s5;
211 t3 = uly = sp4C - temp_s5;
212
213 if (s3 < 0) {
214 var_a1 = -s3;
215 } else {
216 var_a1 = 0;
217 }
218
219 if (t3 < 0) {
220 var_v1 = -uly;
221 } else {
222 var_v1 = 0;
223 }
224
227 }
230 }
231
232 var_t2_2 = var_v1 / height;
233 sp54 = (var_a0 - t3) / height;
234
235 while (var_t2_2 < sp54) {
236 uly = t3 + var_t2_2 * height;
238 break;
239 }
240
242 (s32) (s3 * temp_s1->
unk_08) * 4,
246
247 for (var_t4 = 0; var_t4 < 2; var_t4++) {
250 s3 + var_a1,
251 0,
252 t6 - 1,
253 height - 1,
254 0,
255 G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMIRROR | G_TX_WRAP, 9, 8, G_TX_NOLOD, G_TX_NOLOD
256 );
258 (s3 + var_a1) * 4,
259 uly * 4,
260 t6 * 4,
261 (uly + height) * 4,
262 G_TX_RENDERTILE,
263 ((u32) (s3 + var_a1) % 0x200) * 32,
264 0,
265 0x0400,
266 0x0400
267 );
269 }
270 var_t2_2++;
271 }
272 }
273 }
274
276 data->
unk_3C[i + 1] = sp18[i];
277 data->
unk_1C[i + 1] = sp28[i];
278 data->
unk_2C[i + 1] = sp38[i];
279 }
280}
#define VIRTUAL_TO_PHYSICAL(addr)