@@ -257,11 +257,58 @@ void func_8001A714(unk_func_8001A024* arg0, s32 arg1) {
257257 func_80015094 (arg0 -> unk_0C );
258258}
259259
260- #pragma GLOBAL_ASM("asm/us/nonmatchings/1AB70/func_8001AA18.s")
260+ s32 func_8001AA18 (unk_func_8001A024 * arg0 , s32 arg1 ) {
261+ s32 i ;
262+ s32 var_v0 ;
263+ s32 sp24 ;
264+ s32 sp20 ;
265+ unk_func_8001A024_008 * temp_v0_2 ;
266+
267+ sp24 = -1 ;
268+ sp20 = arg0 -> unk_02 ;
269+ if (arg0 -> unk_00 & 1 ) {
270+ if (arg1 == 1 ) {
271+ var_v0 = func_80019CA8 (arg0 -> unk_04 );
272+ } else {
273+ var_v0 = func_80019C08 (arg0 -> unk_04 );
274+ }
275+ if (var_v0 != 0 ) {
276+ arg0 -> unk_00 &= 0xFFFE ;
277+ arg0 -> unk_08 [sp20 ].unk_00 &= 0xFFFE ;
278+ func_8001A714 (arg0 , sp20 );
279+ arg0 -> unk_03 = sp20 ;
280+ sp24 = sp20 ;
281+ arg0 -> unk_02 ++ ;
282+ if (arg0 -> unk_02 >= arg0 -> unk_01 ) {
283+ arg0 -> unk_02 = 0 ;
284+ }
285+ }
286+ } else {
287+ for (i = 0 ; i < arg0 -> unk_01 ; i ++ ) {
288+ temp_v0_2 = & arg0 -> unk_08 [sp20 ];
289+ if (temp_v0_2 -> unk_00 & 1 ) {
290+ arg0 -> unk_00 |= 1 ;
291+ if (temp_v0_2 -> unk_00 & 2 ) {
292+ func_800198E4 (arg0 -> unk_04 , * temp_v0_2 -> unk_14 .ptr , temp_v0_2 -> unk_10 );
293+ } else {
294+ func_800198E4 (arg0 -> unk_04 , temp_v0_2 -> unk_14 .unk_02 , temp_v0_2 -> unk_10 );
295+ }
296+ arg0 -> unk_02 = sp20 ;
297+ break ;
298+ } else {
299+ sp20 += 1 ;
300+ if (sp20 >= arg0 -> unk_01 ) {
301+ sp20 = 0 ;
302+ }
303+ }
304+ }
305+ }
306+ return sp24 ;
307+ }
261308
262309s32 func_8001ABAC (unk_func_8001A024 * arg0 , s32 arg1 ) {
263310 UNUSED s32 pad ;
264- unk_D_86002F58_004_000_010_02C sp48 ;
311+ arg1_func_80010CA8 sp48 ;
265312 s32 sp44 ;
266313 s32 var_s1 ;
267314 unk_func_8001A024_008 * temp_s0 ;
@@ -317,7 +364,47 @@ s32 func_8001ABAC(unk_func_8001A024* arg0, s32 arg1) {
317364 return sp44 ;
318365}
319366
320- #pragma GLOBAL_ASM("asm/us/nonmatchings/1AB70/func_8001AD90.s")
367+ s32 func_8001AD90 (unk_func_8001A024 * arg0 , s32 arg1 ) {
368+ s32 i ;
369+ s32 var_a2 ;
370+ s32 var_s0 ;
371+ unk_func_8001A024_008 * temp_a0 ;
372+ unk_func_8001A024_008 * temp_s1 ;
373+
374+ var_a2 = -1 ;
375+ var_s0 = arg0 -> unk_02 ;
376+ temp_a0 = arg0 -> unk_08 ;
377+
378+ for (i = 0 ; i < arg0 -> unk_01 ; i ++ ) {
379+ temp_s1 = & arg0 -> unk_08 [var_s0 ];
380+ if (temp_s1 -> unk_00 & 1 ) {
381+ while (func_80001C90 () == 0 ) {}
382+
383+ if (temp_s1 -> unk_00 & 2 ) {
384+ func_800198E4 (arg0 -> unk_04 , * temp_s1 -> unk_14 .ptr , temp_s1 -> unk_10 );
385+ } else {
386+ func_800198E4 (arg0 -> unk_04 , temp_s1 -> unk_14 .unk_02 , temp_s1 -> unk_10 );
387+ }
388+ func_80019CA8 (arg0 -> unk_04 );
389+ arg0 -> unk_08 [var_s0 ].unk_00 &= ~1 ;
390+ func_8001A714 (arg0 , var_s0 );
391+ arg0 -> unk_02 = var_s0 ;
392+ var_a2 = var_s0 ;
393+ arg0 -> unk_02 ++ ;
394+ arg0 -> unk_03 = var_s0 ;
395+ if (arg0 -> unk_02 >= arg0 -> unk_01 ) {
396+ arg0 -> unk_02 = 0 ;
397+ }
398+ break ;
399+ } else {
400+ var_s0 += 1 ;
401+ if (var_s0 >= arg0 -> unk_01 ) {
402+ var_s0 = 0 ;
403+ }
404+ }
405+ }
406+ return var_a2 ;
407+ }
321408
322409void func_8001AEEC (unk_func_8001A024 * arg0 , s32 arg1 ) {
323410 s32 i ;
@@ -434,7 +521,7 @@ unk_func_8001B1FC* func_8001B1FC(unk_D_86002F58_004_000_010* arg0, s16 arg1, s16
434521}
435522
436523void func_8001B2D8 (unk_func_8001B1FC * arg0 , unk_func_80026268_arg0 * arg1 , u16 arg2 ) {
437- unk_D_86002F58_004_000_010_02C sp2C ;
524+ arg1_func_80010CA8 sp2C ;
438525 s16 tmp1 = (s16 )(D_8006FF00 [arg1 -> unk_00 .unk_00 - 1 ].unk_14 >> 0x10 ) >> 6 ;
439526 s16 tmp2 = (s16 )(D_8006FF00 [arg1 -> unk_00 .unk_00 - 1 ].unk_14 >> 6 ) >> 4 ;
440527 s16 tmp3 = (s16 )(D_8006FF00 [arg1 -> unk_00 .unk_00 - 1 ].unk_14 << 6 ) >> 6 ;
@@ -462,7 +549,7 @@ void func_8001B2D8(unk_func_8001B1FC* arg0, unk_func_80026268_arg0* arg1, u16 ar
462549}
463550
464551void func_8001B480 (unk_func_8001B1FC * arg0 , s32 arg1 , u16 arg2 ) {
465- unk_D_86002F58_004_000_010_02C sp34 ;
552+ arg1_func_80010CA8 sp34 ;
466553 s16 tmp1 = (s16 )(D_8006FF00 [arg1 - 1 ].unk_14 >> 0x10 ) >> 6 ;
467554 s16 tmp2 = (s16 )(D_8006FF00 [arg1 - 1 ].unk_14 >> 6 ) >> 4 ;
468555 s16 tmp3 = (s16 )(D_8006FF00 [arg1 - 1 ].unk_14 << 6 ) >> 6 ;
0 commit comments