#include #include #include #include #include "code_8006E9C0.h" #include "code_80071F00.h" #include "objects.h" #include "common_textures.h" #include #include #include "audio/external.h" void func_8006FA94(void); void func_80071428(void); void func_80071818(void); void func_80071C28(void); void func_80070148(void); void func_8006EB10(void); void func_80071A20(void); void func_8006E9C0(void) { func_8006EA5C(); func_8006FA94(); switch (gScreenModeSelection) { case SCREEN_MODE_1P: func_80071428(); break; case SCREEN_MODE_2P_SPLITSCREEN_VERTICAL: func_80071818(); break; case SCREEN_MODE_2P_SPLITSCREEN_HORIZONTAL: func_80071A20(); break; case SCREEN_MODE_3P_4P_SPLITSCREEN: func_80071C28(); break; } func_80070148(); } void func_8006EA5C(void) { func_8006EB10(); func_8006ED60(); bzero(D_8018CA70, D_8018CA70_SIZE * sizeof(struct_8018CA70_entry)); D_8018CAE1 = 0; D_8018CAE2 = 0; D_8018CAF1 = 0; D_8018CB65 = 0; D_8018CB66 = 0; D_8018CB75 = 0; D_8018CBE9 = 0; D_8018CBEA = 0; D_8018CBF9 = 0; D_8018CC6D = 0; D_8018CC6E = 0; D_8018CC7D = 0; D_8018CAE0 = 0; D_8018CB64 = 0; D_8018CBE8 = 0; D_8018CC6C = 0; /** D_8018CA70[0].lapCount = 0; D_8018CA70[0].alsoLapCount = 0; D_8018CA70[0].unk_81 = 0; D_8018CA70[1].lapCount = 0; D_8018CA70[1].alsoLapCount = 0; D_8018CA70[1].unk_81 = 0; D_8018CA70[2].lapCount = 0; D_8018CA70[2].alsoLapCount = 0; D_8018CA70[2].unk_81 = 0; D_8018CA70[3].lapCount = 0; D_8018CA70[3].alsoLapCount = 0; D_8018CA70[3].unk_81 = 0; D_8018CA70[0].raceCompleteBool = 0; D_8018CA70[1].raceCompleteBool = 0; D_8018CA70[2].raceCompleteBool = 0; D_8018CA70[3].raceCompleteBool = 0; **/ } #ifdef MIPS_TO_C //generated by m2c commit d9d3d6575355663122de59f6b2882d8f174e2355 on Dec-29-2022 extern ? D_8018C5F0; extern s16 D_8018CF18; extern s16 D_8018CF20; extern s16 D_8018CF48; extern s16 D_8018CF60; extern s16 D_8018CF78; extern s16 D_8018CF90; extern s16 D_8018CFA8; extern s16 D_8018CFB0; extern s16 D_8018CFB8; extern s16 D_8018CFC0; extern s16 D_8018CFC8; extern s16 D_8018CFD0; extern s16 D_8018CFD8; extern s16 D_8018CFE0; extern s16 D_8018CFF0; extern s16 D_8018CFF8; extern s16 D_8018D000; extern s16 D_8018D008; extern s16 D_8018D010; extern s16 D_8018D018; extern s16 D_8018D020; extern s16 D_8018D048; extern s16 D_8018D070; extern s16 D_8018D098; extern s16 D_8018D0C0; extern s16 D_8018D0E8; extern s16 D_8018D110; void func_8006EB10(void) { s32 *var_v1; s32 *var_v1_2; s32 *var_v1_3; s32 *var_v1_4; s32 *var_v1_5; var_v1 = D_8018C1B0; do { var_v1 += 4; var_v1->unk-4 = -1; } while ((u32) var_v1 < (u32) &D_8018C3B0); var_v1_2 = D_8018C3F0; do { var_v1_2 += 4; var_v1_2->unk-4 = -1; } while ((u32) var_v1_2 < (u32) &D_8018C5F0); var_v1_3 = D_8018C630; do { var_v1_3 += 4; var_v1_3->unk-4 = -1; } while ((u32) var_v1_3 < (u32) &D_8018C830); var_v1_4 = D_8018C870; do { var_v1_4 += 4; var_v1_4->unk-4 = -1; } while ((u32) var_v1_4 < (u32) D_8018C970); var_v1_5 = D_8018C970; do { var_v1_5 += 0x10; var_v1_5->unk-10 = -1; var_v1_5->unk-C = -1; var_v1_5->unk-8 = -1; var_v1_5->unk-4 = -1; } while (var_v1_5 != D_8018CA70); D_8018CFA8 = 0; D_8018CF90 = D_8018CFA8; D_8018CF78 = D_8018CF90; D_8018CF60 = D_8018CF78; D_8018CF48 = D_8018CF60; D_8018CF20 = D_8018CF48; D_8018CF18 = D_8018CF20; D_8018CFE0 = 0; D_8018CFD8 = D_8018CFE0; D_8018CFD0 = D_8018CFD8; D_8018CFC8 = D_8018CFD0; D_8018CFC0 = D_8018CFC8; D_8018CFB8 = D_8018CFC0; D_8018CFB0 = D_8018CFB8; D_8018D018 = 0; D_8018D010 = 0; D_8018D008 = 0; D_8018D000 = 0; D_8018CFF8 = 0; D_8018CFF0 = 0; D_8018CFE8 = 0; D_8018D110 = 0; D_8018D0E8 = 0; D_8018D0C0 = 0; D_8018D098 = 0; D_8018D070 = D_8018D098; D_8018D048 = D_8018D070; D_8018D020 = D_8018D048; D_80183E7C = 0; D_80183E6C = D_80183E7C; D_80183E5C = D_80183E6C; D_80183E4C = D_80183E5C; D_80183E38 = D_80183E4C; } #else GLOBAL_ASM("asm/non_matchings/code_8006E9C0/func_8006EB10.s") #endif void func_8006ED60() { bzero(D_80165C18, OBJECT_LIST_SIZE * sizeof(struct_80165C18_entry)); D_80183D5C = -1; } u8 *func_8006ED94(u8 *devAddr, u8 *baseAddress, u32 size, u32 offset) { u8 **tempAddress; u8 *address; address = baseAddress + offset; size = ALIGN16(size); osInvalDCache(address, (size)); osPiStartDma(&gDmaIoMesg, 0, 0, (uintptr_t)&_other_texturesSegmentRomStart[((u32) devAddr) & 0xFFFFFF], address, size, &gDmaMesgQueue); osRecvMesg(&gDmaMesgQueue, &gMainReceivedMesg, 1); tempAddress = &address; mio0decode(*tempAddress, (u8 *) baseAddress); return baseAddress; } void func_8006EE44(void) { D_8018D1E0 = func_8006ED94((u8 *)&gTextureLogoMarioKart64, (u8 *) D_8018D9B0, 0x79E1, 0x20000); } // Some kind of initalization for the Item Window part of the HUD void func_8006EE7C(s32 objectIndex) { struct_80165C18_entry *temp_v0; temp_v0 = &D_80165C18[objectIndex]; temp_v0->unk_0A4 = 0; temp_v0->unk_0D2 = temp_v0->unk_0A4; temp_v0->unk_068 = (s32 *) gTLUTItemWindowNone; temp_v0->unk_060 = (s32 *) gTLUTItemWindowNone; temp_v0->unk_06C = gTextureItemWindowNone; temp_v0->unk_064 = gTextureItemWindowNone; temp_v0->unk_04C = -1; temp_v0->unk_09C = 0x00A0; // Screen X position temp_v0->unk_09E = -0x0020; // Screen Y position temp_v0->unk_000 = 1.0f; } #ifdef MIPS_TO_C //generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc extern s32 D_8018D240; extern s16 D_8018D2B0; extern s16 D_8018D2B8; static s32 gCourseOutlineTextures[0x14] = { (s32) &gTextureCourseOutlineMarioRaceway, (s32) &gTextureCourseOutlineChocoMountain, (s32) &gTextureCourseOutlineBowsersCastle, (s32) &gTextureCourseOutlineBansheeBoardwalk, (s32) &gTextureCourseOutlineYoshiValley, (s32) &gTextureCourseOutlineFrappeSnowland, (s32) &gTextureCourseOutlineKoopaTroopaBeach, (s32) &gTextureCourseOutlineRoyalRaceway, (s32) &gTextureCourseOutlineLuigiRaceway, (s32) &gTextureCourseOutlineMooMooFarm, (s32) &gTextureCourseOutlineToadsTurnpike, (s32) &gTextureCourseOutlineKalimariDesert, (s32) &gTextureCourseOutlineSherbetLand, (s32) &gTextureCourseOutlineRainbowRoad, (s32) &gTextureCourseOutlineWarioStadium, (s32) &gTextureCourseOutlineBlockFort, (s32) &gTextureCourseOutlineSkyscraper, (s32) &gTextureCourseOutlineDoubleDeck, (s32) &gTextureCourseOutlineDksJungleParkway, (s32) &gTextureCourseOutlineBigDonut, }; static s16 D_800E5520[0]; /* unable to generate initializer */ static s16 D_800E5548[0]; /* unable to generate initializer */ static s32 gTextureCourseOutlineBansheeBoardwalk; /* unable to generate initializer */ static s32 gTextureCourseOutlineBigDonut; /* unable to generate initializer */ static s32 gTextureCourseOutlineBlockFort; /* unable to generate initializer */ static s32 gTextureCourseOutlineBowsersCastle; /* unable to generate initializer */ static s32 gTextureCourseOutlineChocoMountain; /* unable to generate initializer */ static s32 gTextureCourseOutlineDksJungleParkway; /* unable to generate initializer */ static s32 gTextureCourseOutlineDoubleDeck; /* unable to generate initializer */ static s32 gTextureCourseOutlineFrappeSnowland; /* unable to generate initializer */ static s32 gTextureCourseOutlineKalimariDesert; /* unable to generate initializer */ static s32 gTextureCourseOutlineKoopaTroopaBeach; /* unable to generate initializer */ static s32 gTextureCourseOutlineLuigiRaceway; /* unable to generate initializer */ static s32 gTextureCourseOutlineMarioRaceway; /* unable to generate initializer */ static s32 gTextureCourseOutlineMooMooFarm; /* unable to generate initializer */ static s32 gTextureCourseOutlineRainbowRoad; /* unable to generate initializer */ static s32 gTextureCourseOutlineRoyalRaceway; /* unable to generate initializer */ static s32 gTextureCourseOutlineSherbetLand; /* unable to generate initializer */ static s32 gTextureCourseOutlineSkyscraper; /* unable to generate initializer */ static s32 gTextureCourseOutlineToadsTurnpike; /* unable to generate initializer */ static s32 gTextureCourseOutlineWarioStadium; /* unable to generate initializer */ static s32 gTextureCourseOutlineYoshiValley; /* unable to generate initializer */ void func_8006EEE8(s32 courseId) { s32 sp1C; s16 *temp_v1; s16 temp_a1; s32 temp_t0; temp_t0 = courseId * 2; temp_a1 = D_800E5520[courseId]; sp1C = temp_t0; D_8018D240 = dma_textures(gCourseOutlineTextures[courseId], (u32) temp_a1, (u32) temp_a1); temp_v1 = &D_800E5548[temp_t0]; D_8018D2B0 = temp_v1->unk0; D_8018D2B8 = temp_v1->unk2; } #else GLOBAL_ASM("asm/non_matchings/code_8006E9C0/func_8006EEE8.s") #endif #ifdef MIPS_TO_C //generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc extern s32 D_8018D248; extern s32 D_8018D9B4; static s32 *gCourseOutlineTextures[0x14] = { gTextureCourseOutlineMarioRaceway, gTextureCourseOutlineChocoMountain, gTextureCourseOutlineBowsersCastle, gTextureCourseOutlineBansheeBoardwalk, gTextureCourseOutlineYoshiValley, gTextureCourseOutlineFrappeSnowland, gTextureCourseOutlineKoopaTroopaBeach, gTextureCourseOutlineRoyalRaceway, gTextureCourseOutlineLuigiRaceway, gTextureCourseOutlineMooMooFarm, gTextureCourseOutlineToadsTurnpike, gTextureCourseOutlineKalimariDesert, gTextureCourseOutlineSherbetLand, gTextureCourseOutlineRainbowRoad, gTextureCourseOutlineWarioStadium, gTextureCourseOutlineBlockFort, gTextureCourseOutlineSkyscraper, gTextureCourseOutlineDoubleDeck, gTextureCourseOutlineDksJungleParkway, gTextureCourseOutlineBigDonut, }; static s16 D_800E5520; /* unable to generate initializer */ static s32 gTextureCourseOutlineBansheeBoardwalk[]; static s32 gTextureCourseOutlineBigDonut[]; static s32 gTextureCourseOutlineBlockFort[]; static s32 gTextureCourseOutlineBowsersCastle[]; static s32 gTextureCourseOutlineChocoMountain[]; static s32 gTextureCourseOutlineDksJungleParkway[]; static s32 gTextureCourseOutlineDoubleDeck[]; static s32 gTextureCourseOutlineFrappeSnowland[]; static s32 gTextureCourseOutlineKalimariDesert[]; static s32 gTextureCourseOutlineKoopaTroopaBeach[]; static s32 gTextureCourseOutlineLuigiRaceway[]; static s32 gTextureCourseOutlineMarioRaceway[]; static s32 gTextureCourseOutlineMooMooFarm[]; static s32 gTextureCourseOutlineRainbowRoad[]; static s32 gTextureCourseOutlineRoyalRaceway[]; static s32 gTextureCourseOutlineSherbetLand[]; static s32 gTextureCourseOutlineSkyscraper[]; static s32 gTextureCourseOutlineToadsTurnpike[]; static s32 gTextureCourseOutlineWarioStadium[]; static s32 gTextureCourseOutlineYoshiValley[]; void func_8006EF60(void) { s16 *var_s0; s16 temp_a2; s16 temp_t6; s32 **var_s3; s32 *var_s4; s32 var_s1; s32 var_s2; var_s4 = &D_8018D248; var_s3 = gCourseOutlineTextures; var_s0 = &D_800E5520; var_s2 = 0; var_s1 = D_8018D9B4 + 0xFFFF0000; do { temp_a2 = *var_s0; temp_t6 = *var_s0; var_s2 += 1; *var_s4 = func_8006ED94(*var_s3, var_s1, (s32) temp_a2, (s32) temp_a2); var_s3 += 4; var_s0 += 2; var_s4 += 4; var_s1 += temp_t6; } while (var_s2 != 0x14); } #else GLOBAL_ASM("asm/non_matchings/code_8006E9C0/func_8006EF60.s") #endif #ifdef MIPS_TO_C //generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc void func_8006EEE8(s16); /* extern */ extern s32 D_0F0D0E50; extern s32 D_801655C8; extern s16 D_80165718; extern s16 D_80165720; extern s16 D_80165728; extern s32 D_80165880; extern f32 D_8018D01C; extern s32 D_8018D220; extern f32 D_8018D2A0; extern s16 D_8018D2B0; extern s16 D_8018D2C0; extern s16 D_8018D2D8; extern s16 D_8018D2E0; extern s16 D_8018D2E8; extern s16 D_8018D300; extern s16 D_8018D308; extern s16 D_8018D310; extern s16 D_8018D318; static ? gTextureExhaust0; /* unable to generate initializer */ static ? gTextureExhaust1; /* unable to generate initializer */ static ? gTextureExhaust2; /* unable to generate initializer */ static ? gTextureExhaust3; /* unable to generate initializer */ static ? gTextureExhaust4; /* unable to generate initializer */ static ? gTextureExhaust5; /* unable to generate initializer */ s16 gCurrentCourseId; /* unable to generate initializer */ void func_8006F008(void) { s16 temp_a0; s16 var_t9; s8 temp_v0; D_801655C8 = 0; D_8018D01C = 1.0f; if (gIsMirrorMode != 0) { D_8018D01C = -1.0f; } D_8018D2C0.unk0 = 0x0101; D_8018D2D8.unk0 = 0x00AA; D_8018D300 = 0x00FF; D_8018D308 = 0x00FF; temp_a0 = gCurrentCourseId; D_8018D310 = 0x00FF; D_8018D318 = 0x00FF; if (temp_a0 < 0x14) { func_8006EEE8(temp_a0); } switch ((u32) gCurrentCourseId) { case 0: D_8018D220 = dma_textures((s32) &gTextureExhaust5, 0x00000443U, 0x00001000U); D_8018D2A0 = 0.022f; D_8018D2E0 = 6; D_8018D2E8 = 0x001C; D_8018D2C0.unk0 = 0x0104; D_8018D2D8.unk0 = 0x00AA; D_80165718 = 0; D_80165720 = 5; D_80165728 = -0x00F0; break; case 1: D_8018D2A0 = 0.022f; D_8018D2C0.unk0 = 0x0109; D_8018D2E0 = 0x0013; var_t9 = 0x0025; block_26: D_8018D2E8 = var_t9; break; case 2: D_8018D2C0.unk0 = 0x0109; D_8018D2A0 = 0.0174f; D_8018D2E0 = 0x000C; D_8018D2E8 = 0x0030; break; case 3: D_80165880 = dma_textures((s32) &D_0F0D0E50, 0x00004CC2U, 0x0000D980U); D_8018D2A0 = 0.016f; D_8018D2C0.unk0 = 0x0106; D_8018D2E0 = 0x0037; D_8018D2E8 = 0x0027; break; case 4: D_8018D220 = dma_textures((s32) &gTextureExhaust0, 0x00000479U, 0x00000C00U); D_8018D2A0 = 0.018f; D_8018D2E0 = 0x003D; D_8018D2E8 = 0x0026; break; case 5: D_8018D2C0.unk0 = 0x0106; D_8018D2A0 = 0.016f; D_8018D2E0 = 0x0024; D_8018D2E8 = 0x0028; D_8018D300 = 0x0048; D_8018D308 = 0x0064; D_8018D310 = 0x00FF; break; case 6: D_8018D220 = dma_textures((s32) &gTextureExhaust3, 0x000003C8U, 0x00001000U); D_8018D2A0 = 0.014f; D_8018D2C0.unk0 = 0x010C; D_8018D2E0 = 0x0028; D_8018D2E8 = 0x0015; break; case 7: D_8018D220 = dma_textures((s32) &gTextureExhaust4, 0x000003F8U, 0x00001000U); D_8018D2C0.unk0 = 0x0106; D_8018D2A0 = 0.014f; D_8018D2E0 = 0x0025; D_8018D2E8 = 0x0032; D_80165718 = -0x0040; D_80165720 = 5; D_80165728 = -0x014A; break; case 8: D_8018D220 = dma_textures((s32) &gTextureExhaust2, 0x000004F4U, 0x00000C00U); D_8018D2A0 = 0.0155f; D_8018D2C0.unk0 = 0x010F; D_8018D2E0 = 0x002D; D_8018D2E8 = 0x003C; D_80165718 = -0x008C; D_80165720 = -0x002C; D_80165728 = -0x00D7; break; case 9: D_8018D220 = dma_textures((s32) &gTextureExhaust0, 0x00000479U, 0x00000C00U); D_8018D2A0 = 0.0155f; D_8018D2C0.unk0 = 0x010F; D_8018D2E0 = 0x0012; D_8018D2E8 = 0x0024; break; case 10: D_8018D2A0 = 0.013f; D_8018D2C0.unk0 = 0x00FC; D_8018D2E0 = 0x0039; D_8018D2E8 = 0x002C; break; case 11: D_8018D2C0.unk0 = 0x0107; D_8018D2D8.unk0 = 0x00A5; D_8018D220 = dma_textures((s32) &gTextureExhaust5, 0x00000443U, 0x00001000U); D_8018D2A0 = 0.015f; D_8018D2E0 = 0x0037; D_8018D2E8 = 0x001B; break; case 12: D_8018D220 = dma_textures((s32) &gTextureExhaust1, 0x00000485U, 0x00000C00U); D_8018D2A0 = 0.015f; D_8018D2C0.unk0 = 0x0106; D_8018D2E0 = 0x0034; D_8018D2E8 = 0x0021; D_8018D300 = 0x0048; D_8018D308 = 0x0064; D_8018D310 = 0x00FF; break; case 13: D_8018D2A0 = 0.0103f; D_8018D2C0.unk0 = 0x0105; D_8018D2D8.unk0 = 0x00A6; D_8018D2E0 = 0x0027; D_8018D2E8 = 0x0037; break; case 14: D_8018D2A0 = 0.0155f; D_8018D2C0.unk0 = 0x0106; D_8018D2E0 = 0x0035; D_8018D2E8 = 0x0023; break; case 15: D_8018D2A0 = 0.0335f; D_8018D2E0 = 0x0020; D_8018D2E8 = 0x0020; break; case 16: D_8018D2A0 = 0.0445f; D_8018D2E0 = 0x0020; D_8018D2E8 = 0x0020; break; case 17: D_8018D2A0 = 0.0285f; D_8018D2E0 = 0x0020; D_8018D2E8 = 0x0020; break; case 18: D_8018D2A0 = 0.0155f; D_8018D2C0.unk0 = 0x00FF; D_8018D2E0 = 0x001D; D_8018D2E8 = 0x002F; break; case 19: D_8018D2A0 = 0.0257f; D_8018D2E0 = 0x0020; var_t9 = 0x001F; goto block_26; } if (gIsMirrorMode != 0) { D_8018D2E0 = D_8018D2B0 - D_8018D2E0; } temp_v0 = D_8018EDF3; if (temp_v0 == 4) { D_8018D2C0.unk0 = 0x00A0; D_8018D2D8.unk0 = 0x0078; return; } if (temp_v0 == 3) { D_8018D2C0.unk0 = 0x00EB; D_8018D2D8.unk0 = 0x00AF; return; } if (temp_v0 == 2) { if (gCurrentCourseId != 0x000A) { D_8018D2C0.unk2 = 0x0109; D_8018D2C0.unk0 = D_8018D2C0.unk2; } else { D_8018D2C0.unk2 = 0x00FF; D_8018D2C0.unk0 = D_8018D2C0.unk2; } D_8018D2D8.unk0 = 0x0041; D_8018D2D8.unk2 = 0x00B4; } } #else GLOBAL_ASM("asm/non_matchings/code_8006E9C0/func_8006F008.s") #endif //#ifdef MIPS_TO_C //generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 //void play_sound2(?); // extern extern u16 D_800DC5FC; extern s8 D_801657E4; extern s8 D_801657E6; extern s8 D_801657E8; extern s8 D_801657F0; extern s8 D_801657F8; extern s8 D_80165808; extern s8 D_80165810; extern s8 D_80165818; extern s8 D_80165820; extern s8 D_80165828; struct UnkStr80165832 { s8 unk0; s8 unk1; }; extern struct UnkStr80165832 D_80165800; extern struct UnkStr80165832 D_80165832; void func_8006F824(s32 arg0) { D_80165808 = D_801657E4; D_80165810 = D_801657E6; D_80165820 = D_801657F0; D_80165818 = D_801657E8; D_80165828 = D_801657F8; D_80165832.unk0 = D_80165800.unk0; D_80165832.unk1 = D_80165800.unk1; if ((arg0 != 0) && (D_800DC5FC == 0)) { play_sound2(SOUND_ACTION_PING); } } //#else //GLOBAL_ASM("asm/non_matchings/code_8006E9C0/func_8006F824.s") //#endif #ifdef MIPS_TO_C //generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 void func_8006F824(?, s8 *, s8 *, s32); // extern extern s8 D_801657E4; extern s8 D_801657E6; extern s8 D_801657E8; extern s8 D_801657F0; extern s8 D_801657F8; extern s8 D_80165800; extern s8 D_80165808; extern s8 D_80165810; extern s8 D_80165818; extern s8 D_80165820; extern s8 D_80165828; extern ? D_80165832; extern s16 D_8018D2D8; extern s8 D_8018EDFC; void func_8006F8CC(void) { s8 temp_a0; if (D_8018EDFC == 0) { D_8018EDFC = 1; D_801657E4 = 0; D_801657E6 = 0; D_80165800.unk1 = 1; D_801657F0 = 0; D_801657E8 = 1; D_80165800.unk0 = D_80165800.unk1; temp_a0 = D_8018EDF3; if (temp_a0 == FOUR_PLAYERS_SELECTED) { if (gModeSelection != BATTLE) { D_801657E4 = 1; D_801657F0 = 1; D_801657F8 = 1; D_80165800.unk1 = 0; D_80165800.unk0 = D_80165800.unk1; } else { D_801657F8 = 0; D_80165800.unk0 = D_80165800.unk1; } } else if (temp_a0 == THREE_PLAYERS_SELECTED) { D_801657E8 = 0; D_801657F8 = 1; } else if (temp_a0 == TWO_PLAYERS_SELECTED) { if (gModeSelection != BATTLE) { D_80165800.unk1 = 0; D_801657E4 = 1; D_801657F0 = 1; D_80165800.unk0 = D_80165800.unk1; } D_8018D2D8.unk0 = 0x41; D_8018D2D8.unk2 = 0xB4; } func_8006F824(0, &D_801657E4, &D_801657F0, 3); } else { D_801657E4 = D_80165808; D_801657E6 = D_80165810; D_801657F0 = D_80165820; D_801657E8 = D_80165818; D_801657F8 = D_80165828; D_80165800.unk0 = D_80165832.unk0; D_80165800.unk1 = D_80165832.unk1; } if (D_800DC51C != 0) { D_801657F0 = 0; } } #else GLOBAL_ASM("asm/non_matchings/code_8006E9C0/func_8006F8CC.s") #endif #ifdef MIPS_TO_C //generated by m2c commit b7eac665cffd02361f73cec283ef16d0a35a0e5b typedef struct { /* 0x00 */ char pad0[4]; /* 0x04 */ f32 unk_04; /* 0x08 */ f32 unk8; /* inferred */ /* 0x0C */ f32 unk_0C; /* 0x10 */ char pad10[0x10]; /* maybe part of unk_0C[5]? */ } struct_D_8018CE10; /* size = 0x20 */ ? func_8006F008(); /* extern */ ? func_8006F8CC(); /* extern */ extern s32 D_801655D8; extern s32 D_801655E8; extern s32 D_801655F8; extern s32 D_80165608; extern s32 D_80165618; extern s32 D_80165628; extern ? D_80165658; extern s16 D_801656F0; extern s8 D_8016576A; extern s8 D_8016579C; extern s8 D_801657AE; extern s8 D_801657B0; extern s8 D_801657B2; extern s8 D_801657D8; extern s8 D_801657E1; extern s8 D_801657E2; extern s8 D_801657E3; extern s8 D_801657E5; extern s32 D_801657FC; extern s32 D_80165804; extern s32 D_8016580C; extern s32 D_80165814; extern s32 D_8016581C; extern s8 D_801658BC; extern s8 D_801658C6; extern s8 D_801658CE; extern s8 D_801658D6; extern s8 D_801658DC; extern s8 D_801658E4; extern s8 D_801658EC; extern s8 D_801658F4; extern ? D_8018CF28; extern ? D_8018CF50; extern ? D_8018CFAC; extern ? D_8018CFB4; extern ? D_8018CFBC; extern ? D_8018CFC4; extern ? D_8018D050; extern ? D_8018D0F0; extern s32 D_8018D114; extern s32 D_8018D160; extern s32 D_8018D168; extern s16 D_8018D16C; extern s32 D_8018D170; extern s16 D_8018D174; extern s32 D_8018D178; extern s16 D_8018D17C; extern s32 D_8018D180; extern s16 D_8018D184; extern s32 D_8018D188; extern s16 D_8018D18C; extern s32 D_8018D190; extern s32 D_8018D1A0; extern s32 D_8018D1B4; extern s32 D_8018D1C4; extern s32 D_8018D1CC; extern s32 D_8018D1DC; extern s32 D_8018D1F0; extern s32 D_8018D1F8; extern s32 D_8018D1FC; extern s32 D_8018D204; extern s32 D_8018D20C; extern s32 D_8018D214; extern s32 D_8018D224; extern s8 D_8018D228; extern s32 D_8018D2A4; extern s32 D_8018D2AC; extern s32 D_8018D2B4; extern s32 D_8018D2BC; extern ? D_8018D2C8; extern s16 D_8018D2F0; extern s16 D_8018D2F8; extern s32 D_8018D320; void func_8006FA94(void) { ? *var_a0_2; ? *var_a1; ? *var_a1_2; ? *var_a2; ? *var_a2_2; ? *var_a3; ? *var_t0; ? *var_v1; Player *temp_v0_3; Player *temp_v0_4; Player *temp_v0_5; Player *var_v0; s16 temp_t7; s16 var_a0; s32 temp_t6; s32 temp_v0; s32 temp_v0_2; s8 temp_ra; struct_D_8018CE10 *var_v1_2; func_8006F8CC(); func_8006F008(); osSetTime(/* u64+0x0 */ 0, /* u64+0x4 */ 0); D_8018D170 = 0; D_8018D190 = 0; D_8018D188 = 0; D_8018D178 = 0; D_8018D1CC = 0; D_801657E2 = 0; D_80165730 = 0; D_801658FE = 0; D_801657E5 = 0; D_801657E3 = D_801657E5; D_801657E1 = D_801657E3; D_801658D6 = 0; D_801658E4 = D_801658D6; D_801658F4 = D_801658E4; D_801658EC = D_801658F4; D_801658DC = D_801658EC; D_801658CE = D_801658DC; D_801658C6 = D_801658CE; D_80165658.unk8 = 0; D_80165658.unk4 = 0; D_80165658.unk0 = 0; temp_ra = D_8018EDF3; D_801658BC = D_801658C6; switch (temp_ra) { /* irregular */ case 1: if (gModeSelection == 0) { D_8018D114 = 0; D_8018D178 = 0x00000096; D_8018D114 = 0x000000F0; } else { D_8018D114 = 1; D_8018D178 = 0x0000000A; D_8018D180 = 0; } break; case 2: if (gScreenModeSelection == 1) { temp_v0 = gModeSelection; if (temp_v0 == 0) { D_8018D114 = 2; D_8018D178 = 0x00000096; D_8018D180 = 0x000000F0; D_8018D2AC = 0x0000003C; } else if (temp_v0 == 2) { D_8018D114 = 3; D_8018D178 = 0x0000001E; D_8018D180 = 0x0000001E; D_8018D2AC = 0x0000003C; } else { D_8018D114 = 4; D_8018D178 = 0x00000028; D_8018D180 = 0x00000028; D_8018D2AC = 0x0000003C; } } else { temp_v0_2 = gModeSelection; if (temp_v0_2 == 0) { D_8018D114 = 5; } else if (temp_v0_2 == 2) { D_8018D114 = 6; } else { D_8018D114 = 7; } } break; case 3: if (gModeSelection == 2) { D_8018D114 = 8; D_8018D178 = 0x00000064; D_8018D180 = 0x00000096; D_8018D2AC = 0x0000003C; } else { D_8018D180 = 9; D_8018D178 = 0x00000064; D_8018D180 = 0x00000096; D_8018D2AC = 0x0000003C; } break; case 4: if (gModeSelection == 2) { D_8018D114 = 0x0000000A; D_8018D178 = 0x0000001E; D_8018D180 = 0x0000001E; } else { D_8018D114 = 0x0000000B; D_8018D178 = 0x0000001E; D_8018D180 = 0x0000001E; } D_8018D2AC = 0x0000000A; break; } if (gEnableDebugMode == 0) { D_8016576A = 0; D_8016579C = 0; } var_a0 = 0; if (temp_ra > 0) { var_a0_2 = &D_8018CFB4; var_a2 = &D_8018CFC4; var_a1 = &D_8018CFAC; var_v1 = &D_8018CFBC; do { var_a0_2 += 1; var_v1 += 1; var_a1 += 1; var_a2 += 1; var_v1->unk-1 = 0; var_a1->unk-1 = 0; var_a2->unk-1 = 0; var_a0_2->unk-1 = 0; } while ((u32) var_a0_2 < (u32) (temp_ra + &D_8018CFB4)); var_a0 = 0; } D_8018D204 = 1; D_8018D1FC = 0; D_8018D224 = 0; D_8018D1F8 = 0; D_8018D1F0 = 0; D_8018D228 = 0xFF; D_80165628 = 0; D_80165618 = 0; temp_t6 = D_80165618; D_80165608 = temp_t6; D_801655F8 = temp_t6; D_801655E8 = temp_t6; D_801655D8 = temp_t6; D_8018D160 = 0; D_8018D1DC = 0; D_8018D1C4 = 0; D_8018D1B4 = 0; D_8018D1A0 = 0; D_8018D168 = 0; D_801656F0 = 0; D_801657B2 = 0; D_801657D8 = D_801657B2; D_8018D214 = (s32) D_801657D8; D_801657B0 = (s8) D_8018D214; D_801657AE = D_801657B0; D_8018D20C = 0; D_8018D2F8 = 0; D_8018D2F0 = D_8018D2F8; D_8018D320 = 3; D_8018D2AC = 0; D_8018D2BC = 0; D_8018D2B4 = D_8018D2BC; D_8018D2A4 = D_8018D2B4; D_8018D2C8.unk0 = 0; D_8018D2C8.unk4 = 0; D_8018D2C8.unk8 = 0; D_8018D2C8.unkC = 0; D_8016581C = 0; D_8016580C = 0; D_80165814 = 0; D_80165804 = 0; D_801657FC = 0; D_8018D18C = -1; temp_t7 = D_8018D18C; D_8018D184 = temp_t7; D_8018D16C = temp_t7; D_8018D17C = temp_t7; D_8018D174 = temp_t7; var_v0 = gPlayerOne; var_t0 = &D_8018CF28; var_a3 = &D_8018CF50; var_v1_2 = D_8018CE10; var_a2_2 = &D_8018D0F0; var_a1_2 = &D_8018D050; do { var_a1_2->unk0 = -32.0f; var_a2_2->unk0 = -32.0f; var_v1_2->unk_0C = 0.0f; var_v1_2->unk8 = 0.0f; var_v1_2->unk_04 = 0.0f; var_a3->unk0 = var_a0; var_t0->unk0 = var_v0; var_v0->unk_040 = -1; temp_v0_3 = var_v0 + 0xDD8; var_t0->unk4 = temp_v0_3; var_a3->unk2 = (s16) (var_a0 + 1); var_v1_2->unk24 = 0.0f; var_v1_2->unk28 = 0.0f; var_v1_2->unk2C = 0.0f; var_a2_2->unk4 = -32.0f; var_a1_2->unk4 = -32.0f; temp_v0_3->unk_040 = -1; temp_v0_4 = temp_v0_3 + 0xDD8; var_a3->unk4 = (s16) (var_a0 + 2); var_t0->unk8 = temp_v0_4; var_v1_2->unk44 = 0.0f; var_v1_2->unk48 = 0.0f; var_v1_2->unk4C = 0.0f; var_a2_2->unk8 = -32.0f; var_a1_2->unk8 = -32.0f; temp_v0_4->unk_040 = -1; temp_v0_5 = temp_v0_4 + 0xDD8; var_t0->unkC = temp_v0_5; var_a3->unk6 = (s16) (var_a0 + 3); var_a0 += 4; var_v1_2->unk64 = 0.0f; var_v1_2->unk68 = 0.0f; var_v1_2->unk6C = 0.0f; var_a2_2->unkC = -32.0f; var_a1_2->unkC = -32.0f; temp_v0_5->unk_040 = -1; var_v0 = temp_v0_5 + 0xDD8; var_a1_2 += 0x10; var_a2_2 += 0x10; var_v1_2 += 0x80; var_a3 += 8; var_t0 += 0x10; } while (var_a0 != (s16) 8); } #else GLOBAL_ASM("asm/non_matchings/code_8006E9C0/func_8006FA94.s") #endif #ifdef MIPS_TO_C //generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc extern s32 D_8018CE24; extern ? D_8018CF24; void func_80070148(void) { s32 *var_s0; var_s0 = &D_8018CE24; do { find_unused_obj_index(var_s0); var_s0 += 0x20; } while (var_s0 != &D_8018CF24); } #else GLOBAL_ASM("asm/non_matchings/code_8006E9C0/func_80070148.s") #endif void func_80070190(void) { s32 loopIndex; for(loopIndex = 0; loopIndex < SOME_OBJECT_INDEX_LIST_SIZE; loopIndex++) { find_unused_obj_index(&D_80183EA0[loopIndex]); find_unused_obj_index(&D_80183F28[loopIndex]); find_unused_obj_index(&D_8018BFA8[loopIndex]); find_unused_obj_index(&D_8018C030[loopIndex]); } for(loopIndex = 0; loopIndex < D_80183DD8_SIZE; loopIndex++) { find_unused_obj_index(&D_80183DD8[loopIndex]); } } #ifdef MIPS_TO_C //generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc extern Vtx D_0D005FB0; extern s32 D_8018D220; void func_80070250(s32 objectIndex, s32 arg1, void *arg2) { struct_80165C18_entry *sp20; f32 var_f6; struct_80165C18_entry *temp_v0; u16 temp_t1; func_800723A4(objectIndex, arg1); temp_v0 = &D_80165C18[objectIndex]; temp_v0->unk_0A4 = 0; temp_v0->unk_0D5 = (u8) arg2->unk6; temp_v0->unk_0C0 = arg2->unk0; temp_v0->unk_09E = (s16) arg2->unk2; temp_t1 = arg2->unk4; var_f6 = (f32) temp_t1; if ((s32) temp_t1 < 0) { var_f6 += 4294967296.0f; } temp_v0->unk_000 = (f32) ((f64) var_f6 / 100.0); sp20 = temp_v0; temp_v0->unk_064 = (arg2->unk6 << 0xA) + D_8018D220; func_80073404(objectIndex, 0x40U, 0x20U, (s32) &D_0D005FB0); temp_v0->unk_0A0 = 0x00FF; } #else GLOBAL_ASM("asm/non_matchings/code_8006E9C0/func_80070250.s") #endif #ifdef MIPS_TO_C //generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc void func_80070250(s32, ?, void *); /* extern */ extern ? D_8018CC80; extern s32 D_8018D1F0; extern s32 D_8018D1F8; extern s8 D_8018D230; void func_80070328(void *arg0) { s32 var_s1; s32 var_s2; void *var_s0; var_s2 = 0; var_s0 = arg0; var_s1 = 0; do { func_80070250(find_unused_obj_index(&D_8018CC80 + (D_8018D1F8 * 4) + var_s1), 1, var_s0); var_s2 += 1; var_s1 += 4; var_s0 += 8; } while (var_s0->unk8 != 0xFFFF); D_8018D1F8 += var_s2; D_8018D1F0 = var_s2; D_8018D230 = 0; } #else GLOBAL_ASM("asm/non_matchings/code_8006E9C0/func_80070328.s") #endif /** * This function is part of the spawning for the "stars" in some stages * * arg2 is a pointer to some type of spawn data for the stars, although it not super clear * what types each element is. It seems like its a bunch of u16's, so maybe a Vec4su? * * The stars in Wario's Stadium, Toad's Turnpike, and Rainbow Road are not part of the skybox. * They are instead objects that seemingly hover in the air around the player * They have no true x/y/z position, instead they seem to be kept in a position relative to the * player they hang around. There is however an x/y position for where they should be on screen * when they are visbile (unk_09E[0] and [1]). * unk_000 is some sort of size scaling on the start texture. * unk_0A2 is an alpha value, used to make the star twinkle. **/ void func_800703E0(s32 objectIndex, s32 arg1, u16 *arg2) { struct_80165C18_entry *temp_v0; func_800723A4(objectIndex, arg1); temp_v0 = &D_80165C18[objectIndex]; temp_v0->unk_0D5 = arg2[3]; // No idea, all 0's for stars temp_v0->unk_0A4 = 1; temp_v0->unk_0BE[1] = arg2[0]; // No idea temp_v0->unk_09E = arg2[1]; // screen Y position temp_v0->unk_000 = (f32)arg2[2] / 100.0; // some type of scaling on the texture temp_v0->unk_064 = D_0D0293D8; func_80073404(objectIndex, 0x10U, 0x10U, D_0D005770); } #ifdef MIPS_TO_C //generated by m2c commit 44f261a363c51a295be8efe3d7ca7f4d2c967e9b on Dec-31-2022 extern ? D_8018CC80; extern s32 D_8018D1F8; extern s8 D_8018D230; void func_800704A0(u16 *arg0) { s32 var_s1; s32 var_s2; u16 *var_s0; var_s2 = 0; var_s0 = arg0; var_s1 = 0; do { func_800703E0(find_unused_obj_index(&D_8018CC80 + (D_8018D1F8 * 4) + var_s1), 1, var_s0); var_s2 += 1; var_s1 += 4; var_s0 += 8; } while (var_s0->unk8 != 0xFFFF); D_8018D1F8 += var_s2; D_8018D1F0 = var_s2; D_8018D230 = 1; } #else GLOBAL_ASM("asm/non_matchings/code_8006E9C0/func_800704A0.s") #endif #ifdef MIPS_TO_C //generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc void func_80070328(? *); /* extern */ void func_800704A0(? *); /* extern */ extern ? D_8018CC80; extern s32 D_8018D1F0; extern s32 D_8018D1F8; static ? D_800E6A38; /* unable to generate initializer */ static ? D_800E6AA8; /* unable to generate initializer */ static ? D_800E6B00; /* unable to generate initializer */ static ? D_800E6B38; /* unable to generate initializer */ static ? D_800E6BA8; /* unable to generate initializer */ static ? D_800E6C10; /* unable to generate initializer */ static ? D_800E6C80; /* unable to generate initializer */ static ? D_800E6DE0; /* unable to generate initializer */ s16 gCurrentCourseId; /* unable to generate initializer */ void func_8007055C(void) { s32 var_s0; s32 var_s1; s32 var_s4; u16 temp_t6; temp_t6 = (u16) gCurrentCourseId; switch (temp_t6) { case 0: func_80070328(&D_800E6C10); break; case 4: func_80070328(&D_800E6AA8); break; case 5: var_s4 = 0x19; var_s0 = 0; if (D_8018EDF3 == 1) { var_s4 = 0x32; } var_s1 = 0; if (var_s4 > 0) { do { find_unused_obj_index(&D_8018CC80 + (D_8018D1F8 * 4) + var_s0); var_s1 += 1; var_s0 += 4; } while (var_s1 != var_s4); } D_8018D1F8 += var_s1; D_8018D1F0 = var_s1; break; case 6: func_80070328(&D_800E6B00); break; case 7: func_80070328(&D_800E6B38); break; case 8: func_80070328(&D_800E6A38); break; case 9: func_80070328(&D_800E6AA8); break; case 10: func_800704A0(&D_800E6C80); break; case 11: func_80070328(&D_800E6C10); break; case 12: func_80070328(&D_800E6BA8); break; case 13: func_800704A0(&D_800E6C80); break; case 14: func_800704A0(&D_800E6DE0); break; } func_8008C23C(); } #else GLOBAL_ASM("asm/non_matchings/code_8006E9C0/func_8007055C.s") #endif void func_80070714(void) { D_80165730 = 1; if (D_8018EDF3 == ONE_PLAYERS_SELECTED) { D_80165738 = 0x64; D_80165740 = 0x3C; D_80165748 = 0x1E; return; } D_80165738 = 0x32; D_80165740 = 0x1E; D_80165748 = 0xA; } #ifdef MIPS_TO_C //generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc void func_800770F0(s32); /* extern */ extern s32 gTLUTBat; extern s32 D_06007DB8; extern s16 D_80165750; extern ? *D_80165758; extern s8 D_80165898; extern ? D_80183EB0; extern ? D_80183EC8; extern ? D_80183EDC; extern ? D_80183F34; extern ? D_80183F3C; extern ? D_80183F50; extern ? D_8018C0B0; extern s32 D_8018C1B0; extern ? D_8018C278; extern s32 D_8018C3F0; extern ? D_8018C404; extern ? D_8018C5F0; extern s32 D_8018C630; extern ? D_8018C6B0; extern s32 D_8018CF10; extern f32 D_8018D01C; extern s8 D_8018D198; extern s32 D_8018D1A0; extern s8 D_8018D1A8; extern ? D_8018D1B3; extern s8 D_8018D1B8; extern s32 D_8018D1C4; extern s32 D_8018D1C8; extern s32 D_8018D1D0; extern s32 D_8018D1D8; extern s32 gGamestate; static ? D_800E5728; /* unable to generate initializer */ static ? D_800E5854; /* unable to generate initializer */ static ? D_800E5894; /* unable to generate initializer */ static ? D_800E58EC; /* unable to generate initializer */ static ? D_800E5E14; /* unable to generate initializer */ static ? D_800E5E8C; /* unable to generate initializer */ static ? D_800E5EE6; /* unable to generate initializer */ static ? D_800E5EE8; /* unable to generate initializer */ static ? D_800E5F80; /* unable to generate initializer */ static ? D_800E5FD0; /* unable to generate initializer */ static ? D_800E6360; /* unable to generate initializer */ static ? D_800E641A; /* unable to generate initializer */ s16 gCurrentCourseId; /* unable to generate initializer */ void func_80070780(void) { struct_80165C18_entry *sp4C; ? *sp48; ? *sp44; ? *var_s1_2; ? *var_s1_4; ? *var_s2_6; ? *var_v1; ? *var_v1_2; ? *var_v1_3; f32 temp_f0; f32 temp_f0_2; f32 temp_f0_3; f32 temp_f0_4; f32 temp_f0_5; f32 temp_f18; f32 temp_f2; f32 temp_f2_2; f32 temp_f4; f32 temp_f4_2; f32 temp_f6; f64 temp_f8; s16 *temp_v1; s16 temp_f10; s16 temp_f6_2; s16 temp_f8_2; s16 temp_t1; s16 temp_t4; s16 temp_t5; s16 temp_t5_2; s32 *var_s0; s32 *var_s0_10; s32 *var_s0_2; s32 *var_s0_3; s32 *var_s0_4; s32 *var_s0_8; s32 *var_s0_9; s32 *var_s1; s32 *var_s1_10; s32 *var_s1_11; s32 *var_s1_12; s32 *var_s1_13; s32 *var_s1_14; s32 *var_s1_3; s32 *var_s1_5; s32 *var_s1_6; s32 *var_s1_7; s32 *var_s1_8; s32 *var_s1_9; s32 *var_s2_2; s32 *var_s2_3; s32 *var_s2_4; s32 *var_s2_5; s32 *var_s2_7; s32 temp_s0; s32 temp_s0_10; s32 temp_s0_2; s32 temp_s0_3; s32 temp_s0_4; s32 temp_s0_5; s32 temp_s0_6; s32 temp_s0_7; s32 temp_s0_8; s32 temp_s0_9; s32 temp_t9; s32 temp_v0; s32 temp_v0_11; s32 var_s2; s32 var_s3; s32 var_s3_2; s32 var_s3_3; s32 var_s3_4; s32 var_s3_5; s8 *var_s0_5; s8 *var_s0_6; s8 *var_s0_7; s8 temp_v0_10; struct_80165C18_entry *temp_v0_12; struct_80165C18_entry *temp_v0_2; struct_80165C18_entry *temp_v0_3; struct_80165C18_entry *temp_v0_4; struct_80165C18_entry *temp_v0_5; struct_80165C18_entry *temp_v0_6; struct_80165C18_entry *temp_v0_7; struct_80165C18_entry *temp_v0_8; struct_80165C18_entry *temp_v0_9; u16 temp_t6; temp_t6 = (u16) gCurrentCourseId; switch (temp_t6) { case 0: if (gGamestate != 9) { if (gModeSelection == GRAND_PRIX) { func_80070714(); } var_s0 = &D_8018C630; var_s3 = 0; if (D_80165738 > 0) { do { find_unused_obj_index(var_s0); func_800723A4(*var_s0, 0); var_s3 += 1; var_s0 += 4; } while (var_s3 < D_80165738); return; } } else { default: return; } break; case 2: D_80165750 = 0x000B; D_80165758 = &D_800E5894; switch (gCCSelection) { /* switch 1; irregular */ case CC_100: /* switch 1 */ case CC_EXTRA: /* switch 1 */ break; case CC_50: /* switch 1 */ D_80165750 = 8; D_80165758 = &D_800E5854; break; case CC_150: /* switch 1 */ D_80165750 = 0x000C; D_80165758 = &D_800E58EC; break; } var_s1 = D_80183EA0; var_s3_2 = 0; if (D_80165750 > 0) { var_s2 = 0; do { temp_s0 = *var_s1; func_800723A4(temp_s0, 0); temp_v1 = D_80165758 + var_s2; var_s3_2 += 1; temp_f6 = (f32) temp_v1->unk0; temp_v0_2 = &D_80165C18[temp_s0]; var_s2 += 8; var_s1 += 4; temp_v0_2->unk_010[0] = temp_f6 * D_8018D01C; temp_v0_2->unk_010[2] = (f32) temp_v1->unk2; temp_v0_2->unk_0D5 = (u8) temp_v1->unk4; temp_v0_2->unk_0A0 = temp_v1->unk6; } while (var_s3_2 < D_80165750); var_s3_2 = 0; } temp_s0_2 = *D_80183F28; func_800723A4(temp_s0_2, 0); var_s1_2 = &D_800E5728; temp_v0_3 = &D_80165C18[temp_s0_2]; var_s2_2 = D_8018BFA8; temp_v0_3->unk_004[1] = 80.0f; temp_v0_3->unk_004[0] = (f32) ((f64) D_8018D01C * -68.0); temp_v0_3->unk_004[2] = -1840.0f; do { temp_s0_3 = *var_s2_2; func_800723A4(temp_s0_3, 0); temp_t9 = var_s3_2 & 1; temp_v0_4 = &D_80165C18[temp_s0_3]; var_s3_2 += 1; var_s2_2 += 4; temp_v0_4->unk_004[1] = (f32) var_s1_2->unk2; temp_v0_4->unk_004[0] = (f32) var_s1_2->unk0 * D_8018D01C; temp_v0_4->unk_0C0 = 0; temp_v0_4->unk_004[2] = (f32) var_s1_2->unk4; if (temp_t9 != 0) { temp_v0_4->unk_0C0 = 0x8000; } var_s1_2 += 6; } while (var_s3_2 < 4); var_s0_2 = D_8018C030; do { func_80071F6C((s32) var_s0_2); var_s0_2 += 4; } while (var_s0_2 != &D_8018C0B0); return; case 3: if (gGamestate != 9) { temp_s0_4 = D_80183EA0->unk0; func_80073444(temp_s0_4, &gTLUTBat, &D_06007DB8, 0x20U, (u16) 0x00000040); temp_v0_5 = &D_80165C18[temp_s0_4]; temp_v0_5->unk_0B2[0] = 0; temp_v0_5->unk_0B2[1] = 0; temp_v0_5->unk_0B2[2] = 0x8000; func_800723A4(D_80183EA0->unk4, 0); func_800723A4(D_80183EA0->unk8, 0); return; } break; case 4: var_s1_3 = D_80183EA0; do { func_800723A4(*var_s1_3, 0); var_s1_3 += 4; } while ((u32) var_s1_3 < (u32) &D_80183EB0); var_s2_3 = D_80183F28; if (gGamestate != 9) { var_v1 = &D_800E5E8C; var_s1_4 = &D_800E5E14; do { temp_s0_5 = *var_s2_3; sp44 = var_v1; func_800723A4(temp_s0_5, 0); temp_f2 = D_8018D01C; temp_f0 = (f32) var_s1_4->unk0 * temp_f2; temp_v0_6 = &D_80165C18[temp_s0_5]; temp_v0_6->unk_010[0] = temp_f0; temp_v0_6->unk_004[0] = temp_f0; temp_f10 = var_s1_4->unk4; temp_t1 = var_s1_4->unk6; temp_t5 = var_v1->unk4; temp_f0_2 = (f32) ((f64) var_s1_4->unk2 + 6.0); temp_f4 = (f32) var_v1->unk0 * temp_f2; var_v1 += 6; var_s2_3 += 4; temp_v0_6->unk_044 = temp_f0_2; temp_v0_6->unk_004[1] = temp_f0_2; var_s1_4 += 8; temp_f0_3 = (f32) temp_f10; temp_v0_6->unk_0D5 = (u8) temp_t1; temp_v0_6->unk_09E = temp_t5; temp_v0_6->unk_010[2] = temp_f0_3; temp_v0_6->unk_004[2] = temp_f0_3; temp_v0_6->unk_09C = (s16) (s32) temp_f4; } while (var_v1 != &D_800E5EE6); return; } break; case 5: var_s1_5 = &D_8018C1B0; do { find_unused_obj_index(var_s1_5); var_s1_5 += 4; } while ((u32) var_s1_5 < (u32) &D_8018C278); var_s1_6 = D_80183EA0; if (gGamestate != 9) { var_v1_2 = &D_800E5EE8; var_s2_4 = D_80183F28; do { temp_s0_6 = *var_s2_4; sp44 = var_v1_2; func_800723A4(temp_s0_6, 0); temp_v0_7 = &D_80165C18[temp_s0_6]; temp_s0_7 = *var_s1_6; temp_v0_7->unk_010[0] = (f32) var_v1_2->unk0 * D_8018D01C; temp_v0_7->unk_010[2] = (f32) var_v1_2->unk4; temp_v0_7->unk_010[1] = (f32) ((f64) var_v1_2->unk2 + 5.0 + 3.0); func_800723A4(temp_s0_7, 0); temp_t4 = var_v1_2->unk4; temp_v0_8 = &D_80165C18[temp_s0_7]; temp_f8 = (f64) var_v1_2->unk2; temp_f4_2 = (f32) var_v1_2->unk0 * D_8018D01C; temp_t5_2 = var_v1_2->unk6; var_v1_2 += 8; var_s1_6 += 4; var_s2_4 += 4; temp_v0_8->unk_0D5 = (u8) temp_t5_2; temp_v0_8->unk_010[0] = temp_f4_2; temp_v0_8->unk_010[1] = (f32) (temp_f8 + 3.0); temp_v0_8->unk_010[2] = (f32) temp_t4; } while (var_v1_2 != &D_800E5F80); return; } break; case 6: var_s1_7 = D_80183EA0; if (gGamestate != 9) { var_v1_3 = &D_800E5F80; do { temp_s0_8 = *var_s1_7; sp48 = var_v1_3; func_800723A4(temp_s0_8, 0); temp_f2_2 = D_8018D01C; temp_f6_2 = var_v1_3->unk4; temp_v0_9 = &D_80165C18[temp_s0_8]; temp_f8_2 = var_v1_3->unk6; temp_f18 = (f32) var_v1_3->unk2; temp_f0_4 = (f32) var_v1_3->unk0 * temp_f2_2; var_v1_3 += 8; var_s1_7 += 4; temp_v0_9->unk_010[0] = temp_f0_4; temp_v0_9->unk_004[0] = temp_f0_4; temp_f0_5 = (f32) temp_f6_2; temp_v0_9->unk_01C[0] = temp_f18 * temp_f2_2; temp_v0_9->unk_010[2] = temp_f0_5; temp_v0_9->unk_004[2] = temp_f0_5; temp_v0_9->unk_01C[2] = (f32) temp_f8_2; } while (var_v1_3 != &D_800E5FD0); } var_s2_5 = D_80183F28; do { temp_s0_9 = *var_s2_5; func_800723A4(temp_s0_9, 0); var_s2_5 += 4; if ((u32) var_s2_5 < (u32) &D_80183F3C) { D_80165C18[temp_s0_9].unk_0D5 = 0; } else { D_80165C18[temp_s0_9].unk_0D5 = 1; } } while (var_s2_5 != &D_80183F50); return; case 7: if (gGamestate != 9) { if (gModeSelection == GRAND_PRIX) { func_80070714(); } var_s0_3 = &D_8018C630; var_s3_3 = 0; if (D_80165738 > 0) { do { find_unused_obj_index(var_s0_3); func_800723A4(*var_s0_3, 0); var_s3_3 += 1; var_s0_3 += 4; } while (var_s3_3 < D_80165738); return; } } break; case 8: if (gGamestate != 9) { if (gModeSelection == GRAND_PRIX) { func_80070714(); } D_80165898 = 0; func_800723A4(D_80183EA0->unk0, 0); var_s0_4 = &D_8018C630; var_s3_4 = 0; if (D_80165738 > 0) { do { find_unused_obj_index(var_s0_4); func_800723A4(*var_s0_4, 0); var_s3_4 += 1; var_s0_4 += 4; } while (var_s3_4 < D_80165738); return; } } break; case 9: if (gGamestate != 9) { temp_v0_10 = D_8018EDF3; var_s1_8 = D_80183EA0; if ((temp_v0_10 == 1) || ((temp_v0_10 == 2) && (gModeSelection == (s32) VERSUS))) { switch (gCCSelection) { /* switch 2; irregular */ case CC_50: /* switch 2 */ D_8018D1C8 = 4; D_8018D1D0 = 6; goto block_75; case CC_100: /* switch 2 */ D_8018D1C8 = 5; D_8018D1D0 = 8; D_8018D1D8 = 8; break; case CC_150: /* switch 2 */ D_8018D1C8 = 5; D_8018D1D0 = 8; D_8018D1D8 = 0x0000000A; break; case CC_EXTRA: /* switch 2 */ D_8018D1C8 = 5; D_8018D1D0 = 8; D_8018D1D8 = 8; break; } } else { D_8018D1C8 = 4; D_8018D1D0 = 6; block_75: D_8018D1D8 = 6; } var_s0_5 = &D_8018D198; do { *var_s0_5 = 0; find_unused_obj_index(var_s1_8); var_s0_5 += 1; var_s1_8 += 4; } while ((u32) var_s0_5 < (u32) &D_8018D1A0); var_s0_6 = &D_8018D1A8; var_s1_9 = D_80183EA0; do { *var_s0_6 = 0; find_unused_obj_index(var_s1_9); var_s0_6 += 1; var_s1_9 += 4; } while ((u32) var_s0_6 < (u32) &D_8018D1B3); var_s0_7 = &D_8018D1B8; var_s1_10 = D_80183EA0; do { *var_s0_7 = 0; find_unused_obj_index(var_s1_10); var_s0_7 += 1; var_s1_10 += 4; } while ((u32) var_s0_7 < (u32) &D_8018D1C4); var_s2_6 = &D_800E6360; var_s1_11 = &D_8018C1B0; do { find_unused_obj_index(var_s1_11); temp_s0_10 = *var_s1_11; func_800723A4(temp_s0_10, 0); temp_v0_12 = &D_80165C18[temp_s0_10]; sp4C = temp_v0_12; temp_v0_12->unk_004[2] = (f32) var_s2_6->unk4; temp_v0_12->unk_004[0] = (f32) var_s2_6->unk0 * D_8018D01C; func_800887C0(temp_s0_10); var_s2_6 += 6; var_s1_11 += 4; temp_v0_12->unk_000 = 0.7f; } while ((u32) var_s2_6 < (u32) &D_800E641A); var_s0_8 = &D_8018C3F0; do { find_unused_obj_index(var_s0_8); var_s0_8 += 4; } while (var_s0_8 != &D_8018C5F0); return; } break; case 11: if (gGamestate != 9) { find_unused_obj_index(&D_8018CF10); func_800723A4(D_8018CF10, 0); var_s1_12 = &D_8018C1B0; do { find_unused_obj_index(var_s1_12); var_s1_12 += 4; } while ((u32) var_s1_12 < (u32) &D_8018C278); var_s0_9 = &D_8018C3F0; do { find_unused_obj_index(var_s0_9); var_s0_9 += 4; } while ((u32) var_s0_9 < (u32) &D_8018C404); var_s0_10 = &D_8018C630; do { find_unused_obj_index(var_s0_10); var_s0_10 += 4; } while (var_s0_10 != &D_8018C6B0); return; } break; case 12: var_s1_13 = D_80183EA0; do { func_800723A4(*var_s1_13, 0); var_s1_13 += 4; } while (var_s1_13 != &D_80183EDC); return; case 13: var_s1_14 = D_80183EA0; if (gGamestate != 9) { do { func_800723A4(*var_s1_14, 0); var_s1_14 += 4; } while ((u32) var_s1_14 < (u32) &D_80183EC8); var_s2_7 = D_80183F28; do { func_800723A4(*var_s2_7, 0); var_s2_7 += 4; } while (var_s2_7 != &D_80183F34); return; } break; case 18: var_s3_5 = 0; do { func_800770F0(var_s3_5); var_s3_5 += 1; } while (var_s3_5 != 8); break; } } #else GLOBAL_ASM("asm/non_matchings/code_8006E9C0/func_80070780.s") #endif #ifdef MIPS_TO_C //generated by m2c commit 44f261a363c51a295be8efe3d7ca7f4d2c967e9b on Dec-30-2022 ? func_8007055C(); /* extern */ ? func_80070780(); /* extern */ extern s32 D_80165638; extern s32 D_80165648; extern s16 D_801656B0; extern s16 D_80165708; extern s16 D_8016579E; extern s16 D_801657A2; extern s8 D_80165888; extern s8 D_80165890; extern s32 D_80183DA0; extern s32 D_80183DBC; extern f32 D_8018CFCC; extern f32 D_8018CFD4; extern f32 D_8018CFEC; extern f32 D_8018CFF4; extern f32 D_8018D00C; extern ? D_8018D028; extern ? D_8018D050; extern ? D_8018D078; extern ? D_8018D098; extern ? D_8018D0A0; extern ? D_8018D0C8; extern ? D_8018D0F0; extern s32 D_8018D150; extern s32 D_8018D158; extern s32 D_8018D380; extern s32 D_8018D384; extern s32 D_8018D388; extern s32 D_8018D3BC; extern s32 D_8018D3C0; extern s32 D_8018D3C4; extern s32 D_8018D3D4; extern s32 D_8018D3D8; extern s32 D_8018D3DC; extern s32 D_8018D3E0; extern s32 D_8018D3E4; extern s32 D_8018D3E8; extern s32 D_8018D3EC; extern s32 D_8018D3F0; extern s32 D_8018D3F4; void func_80071428(void) { ? *var_a0; ? *var_a1; ? *var_a2; ? *var_a3; ? *var_v0; ? *var_v1; f32 temp_f0; f32 temp_f0_2; f32 temp_f0_3; f32 var_f0; D_8018D140 = 0; D_8018D150 = 0; D_8018CFCC = 1.0f; find_unused_obj_index(&D_80183DA0); find_unused_obj_index(D_80183DB8); find_unused_obj_index(&D_80183DBC); find_unused_obj_index(gItemWindowObjectByPlayerId); find_unused_obj_index(gItemWindowObjectByPlayerId + 4); func_80070190(); func_8007055C(); func_8007055C(); func_80070780(); D_8018CA70->speedometerX = 0x0156; D_8018CA70->speedometerY = 0x0106; D_8018CFEC = (f32) (D_8018CA70->speedometerX + 0x18); D_8018CFF4 = (f32) (D_8018CA70->speedometerY + 6); D_8016579E = 0xDD00; D_8018CA70->rankX = 0x0034; D_8018CA70->rankY = 0x00C8; D_8018CA70->slideRankX = 0; D_8018CA70->slideRankY = 0; D_8018CA70->timerX = 0x012C; D_8018CA70->lap1CompletionTimeX = 0x012C; D_8018CA70->lap2CompletionTimeX = 0x012C; D_8018CA70->timerY = 0x0011; D_8018CA70->lapX = -0x0028; D_8018CA70->lapAfterImage1X = -0x0028; D_8018CA70->lapAfterImage2X = -0x0028; D_8018CA70->lapY = 0x0019; D_8018CA70->itemBoxX = 0x00A0; D_8018CA70->itemBoxY = -0x0020; D_8018CA70->slideItemBoxX = 0; D_8018CA70->slideItemBoxY = 0; D_8018CA70->stagingPosition = (s16) *gGPCurrentRaceRankByPlayerId; func_8006EE7C(*gItemWindowObjectByPlayerId); var_f0 = 35.0f; var_v0 = &D_8018D078; var_a3 = &D_8018D0A0; var_a2 = &D_8018D0F0; var_a1 = &D_8018D050; var_a0 = &D_8018D028; var_v1 = &D_8018D0C8; do { var_a1->unk0 = var_f0; var_a2->unk0 = var_f0; var_v0 += 0x10; var_v1->unk4 = 40.0f; temp_f0 = (f32) ((f64) var_f0 + 32.0); var_a0->unk4 = -24.0f; var_a3->unk4 = 0.0f; var_v0->unk-C = 0.0f; var_a1->unk4 = temp_f0; var_a2->unk4 = temp_f0; var_v1->unk8 = 40.0f; var_a0->unk8 = -24.0f; temp_f0_2 = (f32) ((f64) temp_f0 + 32.0); var_a3->unk8 = 0.0f; var_v0->unk-8 = 0.0f; var_v1->unkC = 40.0f; var_a1->unk8 = temp_f0_2; var_a2->unk8 = temp_f0_2; var_a0->unkC = -24.0f; var_a3->unkC = 0.0f; temp_f0_3 = (f32) ((f64) temp_f0_2 + 32.0); var_v0->unk-4 = 0.0f; var_v1 += 0x10; var_a0 += 0x10; var_a1->unkC = temp_f0_3; var_a2->unkC = temp_f0_3; var_a1 += 0x10; var_a2 += 0x10; var_f0 = (f32) ((f64) temp_f0_3 + 32.0); var_a3 += 0x10; var_v1->unk-10 = 40.0f; var_a0->unk-10 = -24.0f; var_a3->unk-10 = 0.0f; var_v0->unk-10 = 0.0f; } while (var_v0 != &D_8018D098); D_8018CFD4 = 1.0f; D_8018D3DC = 0x000000FF; D_8018D3D8 = 0x000000FF; D_8018D3D4 = 0x000000FF; D_8018D3E0 = 0x000000A0; D_8018D3E4 = 0x000000FF; D_8018D3E8 = 0x000000FF; D_8018D3EC = 0x000000FF; D_8018D3F0 = 0x000000FF; D_8018D3F4 = 1; D_8018CA70->unk_4C = 0x0078; D_8018CA70->unk_4A = 0x00A0; D_8018CA70->rankScaling = 0.5f; D_801656B0 = 0; D_80165708 = 0x0028; D_8018D00C = 5.0f; D_8018D388 = 4; D_8018D380 = (s32) 0x00A0; D_8018D384 = (s32) 0x0078; D_8018D3C4 = 0x00000032; D_8018D3BC = (s32) 0x0028; D_8018D3C0 = 0x00000050; D_801657A2 = 0x0333; switch (gModeSelection) { /* irregular */ case 0: D_8018D158 = 8; return; case 1: D_80165638 = (func_800B4F2C(0, 40.0f, &D_8018D3DC, 1, 0x0078, 0x0028) & 0xFFFFF) - 1; D_80165648 = func_800B4E24(0) & 0xFFFFF; D_80165888 = 1; D_80165890 = 1; D_8018D158 = (s32) 1; return; } } #else GLOBAL_ASM("asm/non_matchings/code_8006E9C0/func_80071428.s") #endif #ifdef MIPS_TO_C //generated by m2c commit 44f261a363c51a295be8efe3d7ca7f4d2c967e9b on Dec-31-2022 ? func_8007055C(); /* extern */ ? func_80070780(); /* extern */ extern s16 D_801657A2; extern s32 D_80183DA0; extern s32 D_80183DBC; extern s32 D_8018D158; extern s32 D_8018D3BC; extern s32 D_8018D3C0; extern s32 D_8018D3C4; void func_80071818(void) { find_unused_obj_index(&D_80183DA0); find_unused_obj_index(D_80183DB8); find_unused_obj_index(&D_80183DBC); find_unused_obj_index(gItemWindowObjectByPlayerId); find_unused_obj_index(gItemWindowObjectByPlayerId + 4); func_80070190(); func_8007055C(); func_8007055C(); func_80070780(); D_8018CA70->itemBoxX = -0x0052; D_8018CA70->itemBoxY = 0x0032; D_8018CA70->slideItemBoxX = 0; D_8018CA70->slideItemBoxY = 0; D_8018CA70->unk_4A = 0x0050; D_8018CA70->unk_4C = 0x0078; D_8018CA70->rankX = 0x0032; D_8018CA70->rankY = 0x00D2; D_8018CA70->slideRankX = 0; D_8018CA70->slideRankY = 0; D_8018CA70->timerX = 0x004B; D_8018CA70->timerY = 0x0010; D_8018CA70->lapX = 0x0067; D_8018CA70->lapY = 0x0028; func_8006EE7C(*gItemWindowObjectByPlayerId); D_8018CA70->unkC6 = 0x0043; D_8018CA70->unkC8 = 0x0032; D_8018CA70->unkCA = 0; D_8018CA70->unkCC = 0; D_8018CA70->unkCE = 0x00F0; D_8018CA70->unkD0 = 0x0078; D_8018CA70->unkE6 = 0x00C8; D_8018CA70->unkE8 = 0x00D2; D_8018CA70->unkEA = 0; D_8018CA70->unkEC = 0; D_8018CA70->unkD2 = 0x00DC; D_8018CA70->unkDC = 0x0010; D_8018CA70->unkDE = 0x00F7; D_8018CA70->unkE4 = 0x0028; func_8006EE7C(*(gItemWindowObjectByPlayerId + 4)); D_8018CA70->unk88 = 0.5f; D_8018CA70->stagingPosition = (s16) gGPCurrentRaceRankByPlayerId->unk0; D_8018CA70->unkEE = (s16) gGPCurrentRaceRankByPlayerId->unk4; D_8018CA70->rankScaling = D_8018CA70->unk88; D_8018D3C4 = 0x0000001E; D_8018D3BC = 0x00000018; D_8018D3C0 = 0x00000028; D_801657A2 = 0x0666; switch (gModeSelection) { /* irregular */ case 0: D_8018D158 = 8; return; case 2: block_7: D_8018D158 = 2; return; case 3: goto block_7; } } #else GLOBAL_ASM("asm/non_matchings/code_8006E9C0/func_80071818.s") #endif #ifdef MIPS_TO_C //generated by m2c commit 44f261a363c51a295be8efe3d7ca7f4d2c967e9b on Dec-31-2022 ? func_8007055C(); /* extern */ ? func_80070780(); /* extern */ extern s16 D_801657A2; extern s32 D_80183DA0; extern s32 D_80183DBC; extern s32 D_8018D158; extern s32 D_8018D3BC; extern s32 D_8018D3C0; extern s32 D_8018D3C4; void func_80071A20(void) { find_unused_obj_index(&D_80183DA0); find_unused_obj_index(D_80183DB8); find_unused_obj_index(&D_80183DBC); find_unused_obj_index(gItemWindowObjectByPlayerId); find_unused_obj_index(gItemWindowObjectByPlayerId + 4); func_80070190(); func_8007055C(); func_8007055C(); func_80070780(); D_8018CA70->itemBoxY = 0x0022; D_8018CA70->itemBoxX = -0x0053; D_8018CA70->slideItemBoxX = 0; D_8018CA70->slideItemBoxY = 0; D_8018CA70->unk_4A = 0x00A0; D_8018CA70->unk_4C = 0x003C; D_8018CA70->rankX = 0x0034; D_8018CA70->rankY = 0x0062; D_8018CA70->slideRankX = 0; D_8018CA70->slideRankY = 0; D_8018CA70->timerX = 0x00EA; D_8018CA70->timerY = 0x0010; D_8018CA70->lapX = 0x0101; D_8018CA70->lapY = 0x006A; D_8018CA70->unkC6 = -0x0053; D_8018CA70->unkC8 = 0x008F; D_8018CA70->unkCA = 0; D_8018CA70->unkCC = 0; D_8018CA70->unkCE = 0x00A0; D_8018CA70->unkD0 = 0x00B4; D_8018CA70->unkE6 = 0x0034; D_8018CA70->unkE8 = 0x00D2; D_8018CA70->unkEA = 0; D_8018CA70->unkEC = 0; D_8018CA70->unkD2 = 0x00EA; D_8018CA70->unkDC = 0x007F; D_8018CA70->unkDE = 0x0101; D_8018CA70->unkE4 = 0x00DA; if (gModeSelection == 3) { D_8018CA70->itemBoxY = 0x005E; D_8018CA70->unkC8 = 0x00D0; } D_8018CA70->unk88 = 0.5f; D_8018CA70->stagingPosition = (s16) gGPCurrentRaceRankByPlayerId->unk0; D_8018CA70->unkEE = (s16) gGPCurrentRaceRankByPlayerId->unk4; D_8018CA70->rankScaling = D_8018CA70->unk88; func_8006EE7C(*gItemWindowObjectByPlayerId); func_8006EE7C(*(gItemWindowObjectByPlayerId + 4)); D_8018D3C4 = 0x0000001E; D_8018D3BC = 0x00000018; D_8018D3C0 = 0x00000028; D_801657A2 = 0x0666; switch (gModeSelection) { /* irregular */ case 0: D_8018D158 = 8; return; case 2: block_9: D_8018D158 = 2; return; case 3: goto block_9; } } #else GLOBAL_ASM("asm/non_matchings/code_8006E9C0/func_80071A20.s") #endif #ifdef MIPS_TO_C //generated by m2c commit 44f261a363c51a295be8efe3d7ca7f4d2c967e9b on Dec-31-2022 ? func_80070780(); /* extern */ extern s16 D_801657A2; extern s32 D_80183DA0; extern s32 D_80183DBC; extern s32 D_80183DC0; extern s32 D_80183DC4; extern s32 D_8018D158; extern s32 D_8018D3BC; extern s32 D_8018D3C0; extern s32 D_8018D3C4; void func_80071C28(void) { find_unused_obj_index(&D_80183DA0); find_unused_obj_index(D_80183DB8); find_unused_obj_index(&D_80183DBC); find_unused_obj_index(&D_80183DC0); find_unused_obj_index(&D_80183DC4); find_unused_obj_index(gItemWindowObjectByPlayerId); find_unused_obj_index(gItemWindowObjectByPlayerId + 4); find_unused_obj_index(gItemWindowObjectByPlayerId + 8); find_unused_obj_index(gItemWindowObjectByPlayerId + 0xC); func_80070190(); func_80070780(); D_8018CA70->unkE6 = 0x011A; D_8018CA70->unk16C = 0x00D2; D_8018CA70->unk14C = 0x002D; D_8018CA70->unk168 = 0x00D4; D_8018CA70->unk176 = 0x00C0; D_8018CA70->unk1D0 = 0x002D; D_8018CA70->unk1EE = 0x011A; D_8018CA70->itemBoxX = -0x0036; D_8018CA70->itemBoxY = 0x0036; D_8018CA70->slideItemBoxX = 0; D_8018CA70->slideItemBoxY = 0; D_8018CA70->unk_4A = 0x0050; D_8018CA70->unk_4C = 0x003C; D_8018CA70->rankX = 0x0025; D_8018CA70->rankY = 0x0064; D_8018CA70->slideRankX = 0; D_8018CA70->slideRankY = 0; D_8018CA70->lapX = 0x008C; D_8018CA70->lapY = 0x0060; D_8018CA70->unk_6C = 0x00DE; D_8018CA70->unk_6E = 0x00C8; D_8018CA70->unkC6 = 0x0175; D_8018CA70->unkC8 = 0x0036; D_8018CA70->unkCA = 0; D_8018CA70->unkCC = 0; D_8018CA70->unkCE = 0x00F0; D_8018CA70->unkD0 = 0x003C; D_8018CA70->unkE8 = 0x0064; D_8018CA70->unkEA = 0; D_8018CA70->unkEC = 0; D_8018CA70->unkDE = 0x00B4; D_8018CA70->unkE4 = 0x0060; D_8018CA70->unkF0 = 0x00C8; D_8018CA70->unkF2 = 0x00C8; D_8018CA70->unk14A = -0x0036; D_8018CA70->unk14E = 0; D_8018CA70->unk150 = 0; D_8018CA70->unk152 = 0x0050; D_8018CA70->unk154 = 0x00B4; D_8018CA70->unk16A = 0x0025; D_8018CA70->unk16E = 0; D_8018CA70->unk170 = 0; D_8018CA70->unk162 = 0x008C; D_8018CA70->unk174 = 0x00DE; D_8018CA70->unk1CE = 0x0175; D_8018CA70->unk1D2 = 0; D_8018CA70->unk1D4 = 0; D_8018CA70->unk1D6 = 0x00F0; D_8018CA70->unk1D8 = 0x00B4; D_8018CA70->unk1F0 = 0x00D2; D_8018CA70->unk1F2 = 0; D_8018CA70->unk1F4 = 0; D_8018CA70->unk1E6 = 0x00B4; D_8018CA70->unk1EC = 0x00D4; D_8018CA70->unk1F8 = 0x00C8; D_8018CA70->unk1FA = 0x00C0; if (gModeSelection == 3) { D_8018CA70->itemBoxY = 0x00C8; D_8018CA70->unkC8 = 0x00C8; D_8018CA70->unk14C = 0x00B8; D_8018CA70->unk1D0 = 0x00B8; } D_8018CA70->unk190 = 0.5f; D_8018CA70->unk10C = (f32) D_8018CA70->unk190; D_8018CA70->unk88 = (f32) D_8018CA70->unk190; D_8018CA70->rankScaling = D_8018CA70->unk190; D_8018CA70->stagingPosition = (s16) gGPCurrentRaceRankByPlayerId->unk0; D_8018CA70->unkEE = (s16) gGPCurrentRaceRankByPlayerId->unk4; D_8018CA70->unk172 = (s16) gGPCurrentRaceRankByPlayerId->unk8; D_8018CA70->unk1F6 = (s16) gGPCurrentRaceRankByPlayerId->unkC; func_8006EE7C(*gItemWindowObjectByPlayerId); func_8006EE7C(*(gItemWindowObjectByPlayerId + 4)); func_8006EE7C(*(gItemWindowObjectByPlayerId + 8)); func_8006EE7C(*(gItemWindowObjectByPlayerId + 0xC)); D_8018CA70->unk18C = 1.5f; D_8018CA70->unk108 = (f32) D_8018CA70->unk18C; D_8018CA70->unk84 = (f32) D_8018CA70->unk18C; D_8018CA70->unknownScaling = D_8018CA70->unk18C; D_8018D158 = (s32) D_8018EDF3; D_8018D3C4 = 0x00000014; D_8018D3BC = 0x00000010; D_8018D3C0 = 0x0000001E; D_801657A2 = 0x0888; } #else GLOBAL_ASM("asm/non_matchings/code_8006E9C0/func_80071C28.s") #endif