diff --git a/courses/all_course_offsets.h b/courses/all_course_offsets.h index 5136da6ff..268e02837 100644 --- a/courses/all_course_offsets.h +++ b/courses/all_course_offsets.h @@ -11,8 +11,8 @@ extern Gfx *luigi_raceway_dls[]; extern Gfx *mario_raceway_dls[]; extern Gfx *moo_moo_farm_dls[]; extern Gfx *royal_raceway_dls[]; -extern Gfx *sherbet_land_dls[]; -extern Gfx *sherbet_land_dls_2[]; +extern Gfx *d_course_sherbet_land_section_dl1[]; +extern Gfx *d_course_sherbet_land_section_dl2[]; extern Gfx *wario_stadium_dls[]; extern Gfx toads_turnpike_dl_0[]; diff --git a/courses/koopa_troopa_beach/course_data.c b/courses/koopa_troopa_beach/course_data.c index aa2c1f2a2..e1a7f2b00 100644 --- a/courses/koopa_troopa_beach/course_data.c +++ b/courses/koopa_troopa_beach/course_data.c @@ -9229,156 +9229,84 @@ TrackSections d_course_koopa_troopa_beach_addr[] = { { 0x00000000, 0, 0, 0x0000 }, }; -Gfx *d_course_koopa_troopa_beach_dl_list1[] = { - d_course_koopa_troopa_beach_dl_90, d_course_koopa_troopa_beach_dl_278, - d_course_koopa_troopa_beach_dl_188, d_course_koopa_troopa_beach_dl_3C0, - d_course_koopa_troopa_beach_dl_4B0, d_course_koopa_troopa_beach_dl_6E0, - d_course_koopa_troopa_beach_dl_5A0, d_course_koopa_troopa_beach_dl_828, - d_course_koopa_troopa_beach_dl_960, d_course_koopa_troopa_beach_dl_B98, - d_course_koopa_troopa_beach_dl_A58, d_course_koopa_troopa_beach_dl_CF0, - d_course_koopa_troopa_beach_dl_E48, d_course_koopa_troopa_beach_dl_10D0, - d_course_koopa_troopa_beach_dl_F60, d_course_koopa_troopa_beach_dl_1218, - d_course_koopa_troopa_beach_dl_13B8, d_course_koopa_troopa_beach_dl_15E0, - d_course_koopa_troopa_beach_dl_1498, d_course_koopa_troopa_beach_dl_1708, - d_course_koopa_troopa_beach_dl_1818, d_course_koopa_troopa_beach_dl_1988, - d_course_koopa_troopa_beach_dl_18E0, d_course_koopa_troopa_beach_dl_1A50, - d_course_koopa_troopa_beach_dl_1AD8, d_course_koopa_troopa_beach_dl_1C48, - d_course_koopa_troopa_beach_dl_1BB8, d_course_koopa_troopa_beach_dl_1D20, - d_course_koopa_troopa_beach_dl_1DE0, d_course_koopa_troopa_beach_dl_1FE8, - d_course_koopa_troopa_beach_dl_1EB0, d_course_koopa_troopa_beach_dl_20C8, - d_course_koopa_troopa_beach_dl_2200, d_course_koopa_troopa_beach_dl_2440, - d_course_koopa_troopa_beach_dl_22C8, d_course_koopa_troopa_beach_dl_2540, - d_course_koopa_troopa_beach_dl_2660, d_course_koopa_troopa_beach_dl_2898, - d_course_koopa_troopa_beach_dl_2760, d_course_koopa_troopa_beach_dl_2988, - d_course_koopa_troopa_beach_dl_2AA0, d_course_koopa_troopa_beach_dl_2CC0, - d_course_koopa_troopa_beach_dl_2B78, d_course_koopa_troopa_beach_dl_2DC0, - d_course_koopa_troopa_beach_dl_2EC0, d_course_koopa_troopa_beach_dl_30E0, - d_course_koopa_troopa_beach_dl_2FB0, d_course_koopa_troopa_beach_dl_3218, - d_course_koopa_troopa_beach_dl_3308, d_course_koopa_troopa_beach_dl_3550, - d_course_koopa_troopa_beach_dl_33F8, d_course_koopa_troopa_beach_dl_36D8, - d_course_koopa_troopa_beach_dl_37B8, d_course_koopa_troopa_beach_dl_3A10, - d_course_koopa_troopa_beach_dl_38A8, d_course_koopa_troopa_beach_dl_3BB8, - d_course_koopa_troopa_beach_dl_3CC0, d_course_koopa_troopa_beach_dl_3F20, - d_course_koopa_troopa_beach_dl_3DC0, d_course_koopa_troopa_beach_dl_40C0, - d_course_koopa_troopa_beach_dl_41D0, d_course_koopa_troopa_beach_dl_4450, - d_course_koopa_troopa_beach_dl_42D8, d_course_koopa_troopa_beach_dl_45D0, - d_course_koopa_troopa_beach_dl_4700, d_course_koopa_troopa_beach_dl_49F0, - d_course_koopa_troopa_beach_dl_4840, d_course_koopa_troopa_beach_dl_4BC8, - d_course_koopa_troopa_beach_dl_4D08, d_course_koopa_troopa_beach_dl_4FF8, - d_course_koopa_troopa_beach_dl_4E70, d_course_koopa_troopa_beach_dl_51C8, - d_course_koopa_troopa_beach_dl_52D8, d_course_koopa_troopa_beach_dl_5500, - d_course_koopa_troopa_beach_dl_53B8, d_course_koopa_troopa_beach_dl_5628, - d_course_koopa_troopa_beach_dl_5778, d_course_koopa_troopa_beach_dl_5A50, - d_course_koopa_troopa_beach_dl_58E0, d_course_koopa_troopa_beach_dl_5BB8, - d_course_koopa_troopa_beach_dl_5D28, d_course_koopa_troopa_beach_dl_5F58, - d_course_koopa_troopa_beach_dl_5E28, d_course_koopa_troopa_beach_dl_6050, - d_course_koopa_troopa_beach_dl_61D0, d_course_koopa_troopa_beach_dl_6410, - d_course_koopa_troopa_beach_dl_62F8, d_course_koopa_troopa_beach_dl_64F0, - d_course_koopa_troopa_beach_dl_6660, d_course_koopa_troopa_beach_dl_6898, - d_course_koopa_troopa_beach_dl_67A0, d_course_koopa_troopa_beach_dl_6968, - d_course_koopa_troopa_beach_dl_6AC0, d_course_koopa_troopa_beach_dl_6D10, - d_course_koopa_troopa_beach_dl_6C18, d_course_koopa_troopa_beach_dl_6E18, - d_course_koopa_troopa_beach_dl_6F70, d_course_koopa_troopa_beach_dl_71C8, - d_course_koopa_troopa_beach_dl_7100, d_course_koopa_troopa_beach_dl_7338, - d_course_koopa_troopa_beach_dl_7478, d_course_koopa_troopa_beach_dl_7718, - d_course_koopa_troopa_beach_dl_7640, d_course_koopa_troopa_beach_dl_78E8, - d_course_koopa_troopa_beach_dl_79E8, d_course_koopa_troopa_beach_dl_7C08, - d_course_koopa_troopa_beach_dl_7B50, d_course_koopa_troopa_beach_dl_7D58, - d_course_koopa_troopa_beach_dl_7E38, d_course_koopa_troopa_beach_dl_8048, - d_course_koopa_troopa_beach_dl_7F68, d_course_koopa_troopa_beach_dl_8150, - d_course_koopa_troopa_beach_dl_8228, d_course_koopa_troopa_beach_dl_8448, - d_course_koopa_troopa_beach_dl_8368, d_course_koopa_troopa_beach_dl_8550, - d_course_koopa_troopa_beach_dl_8650, d_course_koopa_troopa_beach_dl_8878, - d_course_koopa_troopa_beach_dl_8790, d_course_koopa_troopa_beach_dl_8958, - d_course_koopa_troopa_beach_dl_8A98, d_course_koopa_troopa_beach_dl_8D48, - d_course_koopa_troopa_beach_dl_8C48, d_course_koopa_troopa_beach_dl_8E30, - d_course_koopa_troopa_beach_dl_9008, d_course_koopa_troopa_beach_dl_9288, - d_course_koopa_troopa_beach_dl_9188, d_course_koopa_troopa_beach_dl_9378, - d_course_koopa_troopa_beach_dl_9548, d_course_koopa_troopa_beach_dl_9798, - d_course_koopa_troopa_beach_dl_96A0, d_course_koopa_troopa_beach_dl_98A0, - d_course_koopa_troopa_beach_dl_9A30, d_course_koopa_troopa_beach_dl_9C38, - d_course_koopa_troopa_beach_dl_9B58, d_course_koopa_troopa_beach_dl_9D98, - d_course_koopa_troopa_beach_dl_9ED8, d_course_koopa_troopa_beach_dl_A0D0, - d_course_koopa_troopa_beach_dl_9FE8, d_course_koopa_troopa_beach_dl_A220, - d_course_koopa_troopa_beach_dl_A340, d_course_koopa_troopa_beach_dl_A608, - d_course_koopa_troopa_beach_dl_A4D8, d_course_koopa_troopa_beach_dl_A780, - d_course_koopa_troopa_beach_dl_A8D0, d_course_koopa_troopa_beach_dl_AB88, - d_course_koopa_troopa_beach_dl_AA38, d_course_koopa_troopa_beach_dl_AC68, +Gfx *d_course_koopa_troopa_beach_section_dl1[] = { +// NORTH EAST SOUTH WEST + d_course_koopa_troopa_beach_dl_90, d_course_koopa_troopa_beach_dl_278, d_course_koopa_troopa_beach_dl_188, d_course_koopa_troopa_beach_dl_3C0, + d_course_koopa_troopa_beach_dl_4B0, d_course_koopa_troopa_beach_dl_6E0, d_course_koopa_troopa_beach_dl_5A0, d_course_koopa_troopa_beach_dl_828, + d_course_koopa_troopa_beach_dl_960, d_course_koopa_troopa_beach_dl_B98, d_course_koopa_troopa_beach_dl_A58, d_course_koopa_troopa_beach_dl_CF0, + d_course_koopa_troopa_beach_dl_E48, d_course_koopa_troopa_beach_dl_10D0, d_course_koopa_troopa_beach_dl_F60, d_course_koopa_troopa_beach_dl_1218, + d_course_koopa_troopa_beach_dl_13B8, d_course_koopa_troopa_beach_dl_15E0, d_course_koopa_troopa_beach_dl_1498, d_course_koopa_troopa_beach_dl_1708, + d_course_koopa_troopa_beach_dl_1818, d_course_koopa_troopa_beach_dl_1988, d_course_koopa_troopa_beach_dl_18E0, d_course_koopa_troopa_beach_dl_1A50, + d_course_koopa_troopa_beach_dl_1AD8, d_course_koopa_troopa_beach_dl_1C48, d_course_koopa_troopa_beach_dl_1BB8, d_course_koopa_troopa_beach_dl_1D20, + d_course_koopa_troopa_beach_dl_1DE0, d_course_koopa_troopa_beach_dl_1FE8, d_course_koopa_troopa_beach_dl_1EB0, d_course_koopa_troopa_beach_dl_20C8, + d_course_koopa_troopa_beach_dl_2200, d_course_koopa_troopa_beach_dl_2440, d_course_koopa_troopa_beach_dl_22C8, d_course_koopa_troopa_beach_dl_2540, + d_course_koopa_troopa_beach_dl_2660, d_course_koopa_troopa_beach_dl_2898, d_course_koopa_troopa_beach_dl_2760, d_course_koopa_troopa_beach_dl_2988, + d_course_koopa_troopa_beach_dl_2AA0, d_course_koopa_troopa_beach_dl_2CC0, d_course_koopa_troopa_beach_dl_2B78, d_course_koopa_troopa_beach_dl_2DC0, + d_course_koopa_troopa_beach_dl_2EC0, d_course_koopa_troopa_beach_dl_30E0, d_course_koopa_troopa_beach_dl_2FB0, d_course_koopa_troopa_beach_dl_3218, + d_course_koopa_troopa_beach_dl_3308, d_course_koopa_troopa_beach_dl_3550, d_course_koopa_troopa_beach_dl_33F8, d_course_koopa_troopa_beach_dl_36D8, + d_course_koopa_troopa_beach_dl_37B8, d_course_koopa_troopa_beach_dl_3A10, d_course_koopa_troopa_beach_dl_38A8, d_course_koopa_troopa_beach_dl_3BB8, + d_course_koopa_troopa_beach_dl_3CC0, d_course_koopa_troopa_beach_dl_3F20, d_course_koopa_troopa_beach_dl_3DC0, d_course_koopa_troopa_beach_dl_40C0, + d_course_koopa_troopa_beach_dl_41D0, d_course_koopa_troopa_beach_dl_4450, d_course_koopa_troopa_beach_dl_42D8, d_course_koopa_troopa_beach_dl_45D0, + d_course_koopa_troopa_beach_dl_4700, d_course_koopa_troopa_beach_dl_49F0, d_course_koopa_troopa_beach_dl_4840, d_course_koopa_troopa_beach_dl_4BC8, + d_course_koopa_troopa_beach_dl_4D08, d_course_koopa_troopa_beach_dl_4FF8, d_course_koopa_troopa_beach_dl_4E70, d_course_koopa_troopa_beach_dl_51C8, + d_course_koopa_troopa_beach_dl_52D8, d_course_koopa_troopa_beach_dl_5500, d_course_koopa_troopa_beach_dl_53B8, d_course_koopa_troopa_beach_dl_5628, + d_course_koopa_troopa_beach_dl_5778, d_course_koopa_troopa_beach_dl_5A50, d_course_koopa_troopa_beach_dl_58E0, d_course_koopa_troopa_beach_dl_5BB8, + d_course_koopa_troopa_beach_dl_5D28, d_course_koopa_troopa_beach_dl_5F58, d_course_koopa_troopa_beach_dl_5E28, d_course_koopa_troopa_beach_dl_6050, + d_course_koopa_troopa_beach_dl_61D0, d_course_koopa_troopa_beach_dl_6410, d_course_koopa_troopa_beach_dl_62F8, d_course_koopa_troopa_beach_dl_64F0, + d_course_koopa_troopa_beach_dl_6660, d_course_koopa_troopa_beach_dl_6898, d_course_koopa_troopa_beach_dl_67A0, d_course_koopa_troopa_beach_dl_6968, + d_course_koopa_troopa_beach_dl_6AC0, d_course_koopa_troopa_beach_dl_6D10, d_course_koopa_troopa_beach_dl_6C18, d_course_koopa_troopa_beach_dl_6E18, + d_course_koopa_troopa_beach_dl_6F70, d_course_koopa_troopa_beach_dl_71C8, d_course_koopa_troopa_beach_dl_7100, d_course_koopa_troopa_beach_dl_7338, + d_course_koopa_troopa_beach_dl_7478, d_course_koopa_troopa_beach_dl_7718, d_course_koopa_troopa_beach_dl_7640, d_course_koopa_troopa_beach_dl_78E8, + d_course_koopa_troopa_beach_dl_79E8, d_course_koopa_troopa_beach_dl_7C08, d_course_koopa_troopa_beach_dl_7B50, d_course_koopa_troopa_beach_dl_7D58, + d_course_koopa_troopa_beach_dl_7E38, d_course_koopa_troopa_beach_dl_8048, d_course_koopa_troopa_beach_dl_7F68, d_course_koopa_troopa_beach_dl_8150, + d_course_koopa_troopa_beach_dl_8228, d_course_koopa_troopa_beach_dl_8448, d_course_koopa_troopa_beach_dl_8368, d_course_koopa_troopa_beach_dl_8550, + d_course_koopa_troopa_beach_dl_8650, d_course_koopa_troopa_beach_dl_8878, d_course_koopa_troopa_beach_dl_8790, d_course_koopa_troopa_beach_dl_8958, + d_course_koopa_troopa_beach_dl_8A98, d_course_koopa_troopa_beach_dl_8D48, d_course_koopa_troopa_beach_dl_8C48, d_course_koopa_troopa_beach_dl_8E30, + d_course_koopa_troopa_beach_dl_9008, d_course_koopa_troopa_beach_dl_9288, d_course_koopa_troopa_beach_dl_9188, d_course_koopa_troopa_beach_dl_9378, + d_course_koopa_troopa_beach_dl_9548, d_course_koopa_troopa_beach_dl_9798, d_course_koopa_troopa_beach_dl_96A0, d_course_koopa_troopa_beach_dl_98A0, + d_course_koopa_troopa_beach_dl_9A30, d_course_koopa_troopa_beach_dl_9C38, d_course_koopa_troopa_beach_dl_9B58, d_course_koopa_troopa_beach_dl_9D98, + d_course_koopa_troopa_beach_dl_9ED8, d_course_koopa_troopa_beach_dl_A0D0, d_course_koopa_troopa_beach_dl_9FE8, d_course_koopa_troopa_beach_dl_A220, + d_course_koopa_troopa_beach_dl_A340, d_course_koopa_troopa_beach_dl_A608, d_course_koopa_troopa_beach_dl_A4D8, d_course_koopa_troopa_beach_dl_A780, + d_course_koopa_troopa_beach_dl_A8D0, d_course_koopa_troopa_beach_dl_AB88, d_course_koopa_troopa_beach_dl_AA38, d_course_koopa_troopa_beach_dl_AC68, }; -Gfx *d_course_koopa_troopa_beach_dl_list2[] = { - d_course_koopa_troopa_beach_dl_118, d_course_koopa_troopa_beach_dl_328, - d_course_koopa_troopa_beach_dl_218, d_course_koopa_troopa_beach_dl_458, - d_course_koopa_troopa_beach_dl_530, d_course_koopa_troopa_beach_dl_790, - d_course_koopa_troopa_beach_dl_658, d_course_koopa_troopa_beach_dl_8F0, - d_course_koopa_troopa_beach_dl_9E0, d_course_koopa_troopa_beach_dl_C50, - d_course_koopa_troopa_beach_dl_B10, d_course_koopa_troopa_beach_dl_DB8, - d_course_koopa_troopa_beach_dl_EE0, d_course_koopa_troopa_beach_dl_1178, - d_course_koopa_troopa_beach_dl_1040, d_course_koopa_troopa_beach_dl_1310, - d_course_koopa_troopa_beach_dl_1430, d_course_koopa_troopa_beach_dl_1680, - d_course_koopa_troopa_beach_dl_1558, d_course_koopa_troopa_beach_dl_17B0, - d_course_koopa_troopa_beach_dl_1878, d_course_koopa_troopa_beach_dl_19E8, - d_course_koopa_troopa_beach_dl_1940, d_course_koopa_troopa_beach_dl_1AA8, - d_course_koopa_troopa_beach_dl_1B50, d_course_koopa_troopa_beach_dl_1CB0, - d_course_koopa_troopa_beach_dl_1C00, d_course_koopa_troopa_beach_dl_1D88, - d_course_koopa_troopa_beach_dl_1E40, d_course_koopa_troopa_beach_dl_2058, - d_course_koopa_troopa_beach_dl_1F68, d_course_koopa_troopa_beach_dl_2178, - d_course_koopa_troopa_beach_dl_2258, d_course_koopa_troopa_beach_dl_24C0, - d_course_koopa_troopa_beach_dl_2390, d_course_koopa_troopa_beach_dl_25D8, - d_course_koopa_troopa_beach_dl_26E0, d_course_koopa_troopa_beach_dl_2910, - d_course_koopa_troopa_beach_dl_2800, d_course_koopa_troopa_beach_dl_2A18, - d_course_koopa_troopa_beach_dl_2B08, d_course_koopa_troopa_beach_dl_2D50, - d_course_koopa_troopa_beach_dl_2C28, d_course_koopa_troopa_beach_dl_2E38, - d_course_koopa_troopa_beach_dl_2F30, d_course_koopa_troopa_beach_dl_3198, - d_course_koopa_troopa_beach_dl_3050, d_course_koopa_troopa_beach_dl_3278, - d_course_koopa_troopa_beach_dl_3370, d_course_koopa_troopa_beach_dl_3628, - d_course_koopa_troopa_beach_dl_34B8, d_course_koopa_troopa_beach_dl_3730, - d_course_koopa_troopa_beach_dl_3830, d_course_koopa_troopa_beach_dl_3B10, - d_course_koopa_troopa_beach_dl_3980, d_course_koopa_troopa_beach_dl_3C28, - d_course_koopa_troopa_beach_dl_3D40, d_course_koopa_troopa_beach_dl_4028, - d_course_koopa_troopa_beach_dl_3EA8, d_course_koopa_troopa_beach_dl_4138, - d_course_koopa_troopa_beach_dl_4260, d_course_koopa_troopa_beach_dl_4548, - d_course_koopa_troopa_beach_dl_43C0, d_course_koopa_troopa_beach_dl_4670, - d_course_koopa_troopa_beach_dl_47C0, d_course_koopa_troopa_beach_dl_4B28, - d_course_koopa_troopa_beach_dl_4948, d_course_koopa_troopa_beach_dl_4C70, - d_course_koopa_troopa_beach_dl_4DC0, d_course_koopa_troopa_beach_dl_5120, - d_course_koopa_troopa_beach_dl_4F58, d_course_koopa_troopa_beach_dl_5248, - d_course_koopa_troopa_beach_dl_5358, d_course_koopa_troopa_beach_dl_55D0, - d_course_koopa_troopa_beach_dl_5480, d_course_koopa_troopa_beach_dl_56D0, - d_course_koopa_troopa_beach_dl_5840, d_course_koopa_troopa_beach_dl_5B48, - d_course_koopa_troopa_beach_dl_59C8, d_course_koopa_troopa_beach_dl_5C88, - d_course_koopa_troopa_beach_dl_5DB8, d_course_koopa_troopa_beach_dl_6000, - d_course_koopa_troopa_beach_dl_5EE0, d_course_koopa_troopa_beach_dl_6128, - d_course_koopa_troopa_beach_dl_6268, d_course_koopa_troopa_beach_dl_6498, - d_course_koopa_troopa_beach_dl_6398, d_course_koopa_troopa_beach_dl_65B8, - d_course_koopa_troopa_beach_dl_6718, d_course_koopa_troopa_beach_dl_6918, - d_course_koopa_troopa_beach_dl_6830, d_course_koopa_troopa_beach_dl_6A28, - d_course_koopa_troopa_beach_dl_6B88, d_course_koopa_troopa_beach_dl_6DB8, - d_course_koopa_troopa_beach_dl_6CA0, d_course_koopa_troopa_beach_dl_6ED0, - d_course_koopa_troopa_beach_dl_7060, d_course_koopa_troopa_beach_dl_72B0, - d_course_koopa_troopa_beach_dl_7168, d_course_koopa_troopa_beach_dl_73F8, - d_course_koopa_troopa_beach_dl_75A0, d_course_koopa_troopa_beach_dl_7840, - d_course_koopa_troopa_beach_dl_76A8, d_course_koopa_troopa_beach_dl_7978, - d_course_koopa_troopa_beach_dl_7AE0, d_course_koopa_troopa_beach_dl_7CE0, - d_course_koopa_troopa_beach_dl_7BA0, d_course_koopa_troopa_beach_dl_7DD0, - d_course_koopa_troopa_beach_dl_7EE0, d_course_koopa_troopa_beach_dl_80E0, - d_course_koopa_troopa_beach_dl_7FC8, d_course_koopa_troopa_beach_dl_81B8, - d_course_koopa_troopa_beach_dl_82D8, d_course_koopa_troopa_beach_dl_84D0, - d_course_koopa_troopa_beach_dl_83D0, d_course_koopa_troopa_beach_dl_85E8, - d_course_koopa_troopa_beach_dl_8710, d_course_koopa_troopa_beach_dl_88F0, - d_course_koopa_troopa_beach_dl_8800, d_course_koopa_troopa_beach_dl_8A20, - d_course_koopa_troopa_beach_dl_8BB0, d_course_koopa_troopa_beach_dl_8DC0, - d_course_koopa_troopa_beach_dl_8CC8, d_course_koopa_troopa_beach_dl_8F50, - d_course_koopa_troopa_beach_dl_90F0, d_course_koopa_troopa_beach_dl_92E8, - d_course_koopa_troopa_beach_dl_9210, d_course_koopa_troopa_beach_dl_9498, - d_course_koopa_troopa_beach_dl_9618, d_course_koopa_troopa_beach_dl_9818, - d_course_koopa_troopa_beach_dl_9720, d_course_koopa_troopa_beach_dl_99A0, - d_course_koopa_troopa_beach_dl_9AE0, d_course_koopa_troopa_beach_dl_9D00, - d_course_koopa_troopa_beach_dl_9BC8, d_course_koopa_troopa_beach_dl_9E60, - d_course_koopa_troopa_beach_dl_9F78, d_course_koopa_troopa_beach_dl_A190, - d_course_koopa_troopa_beach_dl_A070, d_course_koopa_troopa_beach_dl_A2E8, - d_course_koopa_troopa_beach_dl_A428, d_course_koopa_troopa_beach_dl_A6F0, - d_course_koopa_troopa_beach_dl_A578, d_course_koopa_troopa_beach_dl_A828, - d_course_koopa_troopa_beach_dl_A9A0, d_course_koopa_troopa_beach_dl_AC10, - d_course_koopa_troopa_beach_dl_AAE8, d_course_koopa_troopa_beach_dl_AD40, +Gfx *d_course_koopa_troopa_beach_section_dl2[] = { +// NORTH EAST SOUTH WEST + d_course_koopa_troopa_beach_dl_118, d_course_koopa_troopa_beach_dl_328, d_course_koopa_troopa_beach_dl_218, d_course_koopa_troopa_beach_dl_458, + d_course_koopa_troopa_beach_dl_530, d_course_koopa_troopa_beach_dl_790, d_course_koopa_troopa_beach_dl_658, d_course_koopa_troopa_beach_dl_8F0, + d_course_koopa_troopa_beach_dl_9E0, d_course_koopa_troopa_beach_dl_C50, d_course_koopa_troopa_beach_dl_B10, d_course_koopa_troopa_beach_dl_DB8, + d_course_koopa_troopa_beach_dl_EE0, d_course_koopa_troopa_beach_dl_1178, d_course_koopa_troopa_beach_dl_1040, d_course_koopa_troopa_beach_dl_1310, + d_course_koopa_troopa_beach_dl_1430, d_course_koopa_troopa_beach_dl_1680, d_course_koopa_troopa_beach_dl_1558, d_course_koopa_troopa_beach_dl_17B0, + d_course_koopa_troopa_beach_dl_1878, d_course_koopa_troopa_beach_dl_19E8, d_course_koopa_troopa_beach_dl_1940, d_course_koopa_troopa_beach_dl_1AA8, + d_course_koopa_troopa_beach_dl_1B50, d_course_koopa_troopa_beach_dl_1CB0, d_course_koopa_troopa_beach_dl_1C00, d_course_koopa_troopa_beach_dl_1D88, + d_course_koopa_troopa_beach_dl_1E40, d_course_koopa_troopa_beach_dl_2058, d_course_koopa_troopa_beach_dl_1F68, d_course_koopa_troopa_beach_dl_2178, + d_course_koopa_troopa_beach_dl_2258, d_course_koopa_troopa_beach_dl_24C0, d_course_koopa_troopa_beach_dl_2390, d_course_koopa_troopa_beach_dl_25D8, + d_course_koopa_troopa_beach_dl_26E0, d_course_koopa_troopa_beach_dl_2910, d_course_koopa_troopa_beach_dl_2800, d_course_koopa_troopa_beach_dl_2A18, + d_course_koopa_troopa_beach_dl_2B08, d_course_koopa_troopa_beach_dl_2D50, d_course_koopa_troopa_beach_dl_2C28, d_course_koopa_troopa_beach_dl_2E38, + d_course_koopa_troopa_beach_dl_2F30, d_course_koopa_troopa_beach_dl_3198, d_course_koopa_troopa_beach_dl_3050, d_course_koopa_troopa_beach_dl_3278, + d_course_koopa_troopa_beach_dl_3370, d_course_koopa_troopa_beach_dl_3628, d_course_koopa_troopa_beach_dl_34B8, d_course_koopa_troopa_beach_dl_3730, + d_course_koopa_troopa_beach_dl_3830, d_course_koopa_troopa_beach_dl_3B10, d_course_koopa_troopa_beach_dl_3980, d_course_koopa_troopa_beach_dl_3C28, + d_course_koopa_troopa_beach_dl_3D40, d_course_koopa_troopa_beach_dl_4028, d_course_koopa_troopa_beach_dl_3EA8, d_course_koopa_troopa_beach_dl_4138, + d_course_koopa_troopa_beach_dl_4260, d_course_koopa_troopa_beach_dl_4548, d_course_koopa_troopa_beach_dl_43C0, d_course_koopa_troopa_beach_dl_4670, + d_course_koopa_troopa_beach_dl_47C0, d_course_koopa_troopa_beach_dl_4B28, d_course_koopa_troopa_beach_dl_4948, d_course_koopa_troopa_beach_dl_4C70, + d_course_koopa_troopa_beach_dl_4DC0, d_course_koopa_troopa_beach_dl_5120, d_course_koopa_troopa_beach_dl_4F58, d_course_koopa_troopa_beach_dl_5248, + d_course_koopa_troopa_beach_dl_5358, d_course_koopa_troopa_beach_dl_55D0, d_course_koopa_troopa_beach_dl_5480, d_course_koopa_troopa_beach_dl_56D0, + d_course_koopa_troopa_beach_dl_5840, d_course_koopa_troopa_beach_dl_5B48, d_course_koopa_troopa_beach_dl_59C8, d_course_koopa_troopa_beach_dl_5C88, + d_course_koopa_troopa_beach_dl_5DB8, d_course_koopa_troopa_beach_dl_6000, d_course_koopa_troopa_beach_dl_5EE0, d_course_koopa_troopa_beach_dl_6128, + d_course_koopa_troopa_beach_dl_6268, d_course_koopa_troopa_beach_dl_6498, d_course_koopa_troopa_beach_dl_6398, d_course_koopa_troopa_beach_dl_65B8, + d_course_koopa_troopa_beach_dl_6718, d_course_koopa_troopa_beach_dl_6918, d_course_koopa_troopa_beach_dl_6830, d_course_koopa_troopa_beach_dl_6A28, + d_course_koopa_troopa_beach_dl_6B88, d_course_koopa_troopa_beach_dl_6DB8, d_course_koopa_troopa_beach_dl_6CA0, d_course_koopa_troopa_beach_dl_6ED0, + d_course_koopa_troopa_beach_dl_7060, d_course_koopa_troopa_beach_dl_72B0, d_course_koopa_troopa_beach_dl_7168, d_course_koopa_troopa_beach_dl_73F8, + d_course_koopa_troopa_beach_dl_75A0, d_course_koopa_troopa_beach_dl_7840, d_course_koopa_troopa_beach_dl_76A8, d_course_koopa_troopa_beach_dl_7978, + d_course_koopa_troopa_beach_dl_7AE0, d_course_koopa_troopa_beach_dl_7CE0, d_course_koopa_troopa_beach_dl_7BA0, d_course_koopa_troopa_beach_dl_7DD0, + d_course_koopa_troopa_beach_dl_7EE0, d_course_koopa_troopa_beach_dl_80E0, d_course_koopa_troopa_beach_dl_7FC8, d_course_koopa_troopa_beach_dl_81B8, + d_course_koopa_troopa_beach_dl_82D8, d_course_koopa_troopa_beach_dl_84D0, d_course_koopa_troopa_beach_dl_83D0, d_course_koopa_troopa_beach_dl_85E8, + d_course_koopa_troopa_beach_dl_8710, d_course_koopa_troopa_beach_dl_88F0, d_course_koopa_troopa_beach_dl_8800, d_course_koopa_troopa_beach_dl_8A20, + d_course_koopa_troopa_beach_dl_8BB0, d_course_koopa_troopa_beach_dl_8DC0, d_course_koopa_troopa_beach_dl_8CC8, d_course_koopa_troopa_beach_dl_8F50, + d_course_koopa_troopa_beach_dl_90F0, d_course_koopa_troopa_beach_dl_92E8, d_course_koopa_troopa_beach_dl_9210, d_course_koopa_troopa_beach_dl_9498, + d_course_koopa_troopa_beach_dl_9618, d_course_koopa_troopa_beach_dl_9818, d_course_koopa_troopa_beach_dl_9720, d_course_koopa_troopa_beach_dl_99A0, + d_course_koopa_troopa_beach_dl_9AE0, d_course_koopa_troopa_beach_dl_9D00, d_course_koopa_troopa_beach_dl_9BC8, d_course_koopa_troopa_beach_dl_9E60, + d_course_koopa_troopa_beach_dl_9F78, d_course_koopa_troopa_beach_dl_A190, d_course_koopa_troopa_beach_dl_A070, d_course_koopa_troopa_beach_dl_A2E8, + d_course_koopa_troopa_beach_dl_A428, d_course_koopa_troopa_beach_dl_A6F0, d_course_koopa_troopa_beach_dl_A578, d_course_koopa_troopa_beach_dl_A828, + d_course_koopa_troopa_beach_dl_A9A0, d_course_koopa_troopa_beach_dl_AC10, d_course_koopa_troopa_beach_dl_AAE8, d_course_koopa_troopa_beach_dl_AD40, }; diff --git a/courses/koopa_troopa_beach/course_data.h b/courses/koopa_troopa_beach/course_data.h index 0ba1be885..f4d090dfb 100644 --- a/courses/koopa_troopa_beach/course_data.h +++ b/courses/koopa_troopa_beach/course_data.h @@ -367,7 +367,7 @@ extern Gfx d_course_koopa_troopa_beach_dl_18D68[]; extern struct ActorSpawnData d_course_koopa_troopa_beach_item_box_spawns[]; extern struct ActorSpawnData d_course_koopa_troopa_beach_tree_spawn[]; extern TrackSections d_course_koopa_troopa_beach_addr[]; -extern Gfx *d_course_koopa_troopa_beach_dl_list1[]; -extern Gfx *d_course_koopa_troopa_beach_dl_list2[]; +extern Gfx *d_course_koopa_troopa_beach_section_dl1[]; +extern Gfx *d_course_koopa_troopa_beach_section_dl2[]; #endif diff --git a/courses/sherbet_land/course_offsets.c b/courses/sherbet_land/course_offsets.c index a55981bdf..5aa28213d 100644 --- a/courses/sherbet_land/course_offsets.c +++ b/courses/sherbet_land/course_offsets.c @@ -27,152 +27,46 @@ const course_texture sherbet_land_textures[] = { {0x00000000, 0x0000, 0x0000, 0x0}, }; -const Gfx *sherbet_land_dls[] = { - d_course_sherbet_land_dl_0, - d_course_sherbet_land_dl_158, - d_course_sherbet_land_dl_C0, - d_course_sherbet_land_dl_1A8, - d_course_sherbet_land_dl_280, - d_course_sherbet_land_dl_3B8, - d_course_sherbet_land_dl_310, - d_course_sherbet_land_dl_400, - d_course_sherbet_land_dl_4E8, - d_course_sherbet_land_dl_638, - d_course_sherbet_land_dl_560, - d_course_sherbet_land_dl_6A0, - d_course_sherbet_land_dl_768, - d_course_sherbet_land_dl_880, - d_course_sherbet_land_dl_7A0, - d_course_sherbet_land_dl_8E8, - d_course_sherbet_land_dl_9A0, - d_course_sherbet_land_dl_B08, - d_course_sherbet_land_dl_A28, - d_course_sherbet_land_dl_BC0, - d_course_sherbet_land_dl_C88, - d_course_sherbet_land_dl_DF0, - d_course_sherbet_land_dl_D10, - d_course_sherbet_land_dl_EC8, - d_course_sherbet_land_dl_F68, - d_course_sherbet_land_dl_10D8, - d_course_sherbet_land_dl_1028, - d_course_sherbet_land_dl_11C8, - d_course_sherbet_land_dl_1238, - d_course_sherbet_land_dl_1368, - d_course_sherbet_land_dl_12F0, - d_course_sherbet_land_dl_1440, - d_course_sherbet_land_dl_1480, - d_course_sherbet_land_dl_1508, - d_course_sherbet_land_dl_14C0, - d_course_sherbet_land_dl_1570, - d_course_sherbet_land_dl_1598, - d_course_sherbet_land_dl_1638, - d_course_sherbet_land_dl_15F0, - d_course_sherbet_land_dl_1698, - d_course_sherbet_land_dl_16C0, - d_course_sherbet_land_dl_1778, - d_course_sherbet_land_dl_1730, - d_course_sherbet_land_dl_17D8, - d_course_sherbet_land_dl_1828, - d_course_sherbet_land_dl_18E8, - d_course_sherbet_land_dl_18A0, - d_course_sherbet_land_dl_1920, - d_course_sherbet_land_dl_19A0, - d_course_sherbet_land_dl_1A58, - d_course_sherbet_land_dl_19F0, - d_course_sherbet_land_dl_1A90, - d_course_sherbet_land_dl_1AF8, - d_course_sherbet_land_dl_1BA8, - d_course_sherbet_land_dl_1B50, - d_course_sherbet_land_dl_1C20, - d_course_sherbet_land_dl_1C48, - d_course_sherbet_land_dl_1D60, - d_course_sherbet_land_dl_1D08, - d_course_sherbet_land_dl_1E10, - d_course_sherbet_land_dl_1E88, - d_course_sherbet_land_dl_2010, - d_course_sherbet_land_dl_1F70, - d_course_sherbet_land_dl_20D0, - d_course_sherbet_land_dl_2190, - d_course_sherbet_land_dl_22F8, - d_course_sherbet_land_dl_2288, - d_course_sherbet_land_dl_2370, - d_course_sherbet_land_dl_2438, - d_course_sherbet_land_dl_25A0, - d_course_sherbet_land_dl_2530, - d_course_sherbet_land_dl_25F8, +const Gfx *d_course_sherbet_land_section_dl1[] = { +// NORTH EAST SOUTH WEST + d_course_sherbet_land_dl_0, d_course_sherbet_land_dl_158, d_course_sherbet_land_dl_C0, d_course_sherbet_land_dl_1A8, + d_course_sherbet_land_dl_280, d_course_sherbet_land_dl_3B8, d_course_sherbet_land_dl_310, d_course_sherbet_land_dl_400, + d_course_sherbet_land_dl_4E8, d_course_sherbet_land_dl_638, d_course_sherbet_land_dl_560, d_course_sherbet_land_dl_6A0, + d_course_sherbet_land_dl_768, d_course_sherbet_land_dl_880, d_course_sherbet_land_dl_7A0, d_course_sherbet_land_dl_8E8, + d_course_sherbet_land_dl_9A0, d_course_sherbet_land_dl_B08, d_course_sherbet_land_dl_A28, d_course_sherbet_land_dl_BC0, + d_course_sherbet_land_dl_C88, d_course_sherbet_land_dl_DF0, d_course_sherbet_land_dl_D10, d_course_sherbet_land_dl_EC8, + d_course_sherbet_land_dl_F68, d_course_sherbet_land_dl_10D8, d_course_sherbet_land_dl_1028, d_course_sherbet_land_dl_11C8, + d_course_sherbet_land_dl_1238, d_course_sherbet_land_dl_1368, d_course_sherbet_land_dl_12F0, d_course_sherbet_land_dl_1440, + d_course_sherbet_land_dl_1480, d_course_sherbet_land_dl_1508, d_course_sherbet_land_dl_14C0, d_course_sherbet_land_dl_1570, + d_course_sherbet_land_dl_1598, d_course_sherbet_land_dl_1638, d_course_sherbet_land_dl_15F0, d_course_sherbet_land_dl_1698, + d_course_sherbet_land_dl_16C0, d_course_sherbet_land_dl_1778, d_course_sherbet_land_dl_1730, d_course_sherbet_land_dl_17D8, + d_course_sherbet_land_dl_1828, d_course_sherbet_land_dl_18E8, d_course_sherbet_land_dl_18A0, d_course_sherbet_land_dl_1920, + d_course_sherbet_land_dl_19A0, d_course_sherbet_land_dl_1A58, d_course_sherbet_land_dl_19F0, d_course_sherbet_land_dl_1A90, + d_course_sherbet_land_dl_1AF8, d_course_sherbet_land_dl_1BA8, d_course_sherbet_land_dl_1B50, d_course_sherbet_land_dl_1C20, + d_course_sherbet_land_dl_1C48, d_course_sherbet_land_dl_1D60, d_course_sherbet_land_dl_1D08, d_course_sherbet_land_dl_1E10, + d_course_sherbet_land_dl_1E88, d_course_sherbet_land_dl_2010, d_course_sherbet_land_dl_1F70, d_course_sherbet_land_dl_20D0, + d_course_sherbet_land_dl_2190, d_course_sherbet_land_dl_22F8, d_course_sherbet_land_dl_2288, d_course_sherbet_land_dl_2370, + d_course_sherbet_land_dl_2438, d_course_sherbet_land_dl_25A0, d_course_sherbet_land_dl_2530, d_course_sherbet_land_dl_25F8, }; -const Gfx *sherbet_land_dls_2[] = { - d_course_sherbet_land_dl_26D0, - d_course_sherbet_land_dl_28A0, - d_course_sherbet_land_dl_27F0, - d_course_sherbet_land_dl_2918, - d_course_sherbet_land_dl_2A38, - d_course_sherbet_land_dl_2BE0, - d_course_sherbet_land_dl_2B08, - d_course_sherbet_land_dl_2C58, - d_course_sherbet_land_dl_2D78, - d_course_sherbet_land_dl_2F48, - d_course_sherbet_land_dl_2E28, - d_course_sherbet_land_dl_2FE8, - d_course_sherbet_land_dl_30E0, - d_course_sherbet_land_dl_3260, - d_course_sherbet_land_dl_3150, - d_course_sherbet_land_dl_3320, - d_course_sherbet_land_dl_33E0, - d_course_sherbet_land_dl_35A8, - d_course_sherbet_land_dl_3490, - d_course_sherbet_land_dl_36A8, - d_course_sherbet_land_dl_3770, - d_course_sherbet_land_dl_3940, - d_course_sherbet_land_dl_3840, - d_course_sherbet_land_dl_3A50, - d_course_sherbet_land_dl_3AE0, - d_course_sherbet_land_dl_3C48, - d_course_sherbet_land_dl_3BA8, - d_course_sherbet_land_dl_3D40, - d_course_sherbet_land_dl_3D98, - d_course_sherbet_land_dl_3EB8, - d_course_sherbet_land_dl_3E58, - d_course_sherbet_land_dl_3FA0, - d_course_sherbet_land_dl_3FC0, - d_course_sherbet_land_dl_3FE8, - d_course_sherbet_land_dl_3FD8, - d_course_sherbet_land_dl_4000, - d_course_sherbet_land_dl_4010, - d_course_sherbet_land_dl_4020, - d_course_sherbet_land_dl_4018, - d_course_sherbet_land_dl_4028, - d_course_sherbet_land_dl_4030, - d_course_sherbet_land_dl_4040, - d_course_sherbet_land_dl_4038, - d_course_sherbet_land_dl_4048, - d_course_sherbet_land_dl_4050, - d_course_sherbet_land_dl_4060, - d_course_sherbet_land_dl_4058, - d_course_sherbet_land_dl_4068, - d_course_sherbet_land_dl_4070, - d_course_sherbet_land_dl_4080, - d_course_sherbet_land_dl_4078, - d_course_sherbet_land_dl_4088, - d_course_sherbet_land_dl_4090, - d_course_sherbet_land_dl_40A0, - d_course_sherbet_land_dl_4098, - d_course_sherbet_land_dl_40A8, - d_course_sherbet_land_dl_40B0, - d_course_sherbet_land_dl_41B8, - d_course_sherbet_land_dl_4180, - d_course_sherbet_land_dl_4280, - d_course_sherbet_land_dl_42E0, - d_course_sherbet_land_dl_4470, - d_course_sherbet_land_dl_43C8, - d_course_sherbet_land_dl_4570, - d_course_sherbet_land_dl_4618, - d_course_sherbet_land_dl_4798, - d_course_sherbet_land_dl_4710, - d_course_sherbet_land_dl_4868, - d_course_sherbet_land_dl_4930, - d_course_sherbet_land_dl_4A98, - d_course_sherbet_land_dl_4A20, - d_course_sherbet_land_dl_4B20, +const Gfx *d_course_sherbet_land_section_dl2[] = { +// NORTH EAST SOUTH WEST + d_course_sherbet_land_dl_26D0, d_course_sherbet_land_dl_28A0, d_course_sherbet_land_dl_27F0, d_course_sherbet_land_dl_2918, + d_course_sherbet_land_dl_2A38, d_course_sherbet_land_dl_2BE0, d_course_sherbet_land_dl_2B08, d_course_sherbet_land_dl_2C58, + d_course_sherbet_land_dl_2D78, d_course_sherbet_land_dl_2F48, d_course_sherbet_land_dl_2E28, d_course_sherbet_land_dl_2FE8, + d_course_sherbet_land_dl_30E0, d_course_sherbet_land_dl_3260, d_course_sherbet_land_dl_3150, d_course_sherbet_land_dl_3320, + d_course_sherbet_land_dl_33E0, d_course_sherbet_land_dl_35A8, d_course_sherbet_land_dl_3490, d_course_sherbet_land_dl_36A8, + d_course_sherbet_land_dl_3770, d_course_sherbet_land_dl_3940, d_course_sherbet_land_dl_3840, d_course_sherbet_land_dl_3A50, + d_course_sherbet_land_dl_3AE0, d_course_sherbet_land_dl_3C48, d_course_sherbet_land_dl_3BA8, d_course_sherbet_land_dl_3D40, + d_course_sherbet_land_dl_3D98, d_course_sherbet_land_dl_3EB8, d_course_sherbet_land_dl_3E58, d_course_sherbet_land_dl_3FA0, + d_course_sherbet_land_dl_3FC0, d_course_sherbet_land_dl_3FE8, d_course_sherbet_land_dl_3FD8, d_course_sherbet_land_dl_4000, + d_course_sherbet_land_dl_4010, d_course_sherbet_land_dl_4020, d_course_sherbet_land_dl_4018, d_course_sherbet_land_dl_4028, + d_course_sherbet_land_dl_4030, d_course_sherbet_land_dl_4040, d_course_sherbet_land_dl_4038, d_course_sherbet_land_dl_4048, + d_course_sherbet_land_dl_4050, d_course_sherbet_land_dl_4060, d_course_sherbet_land_dl_4058, d_course_sherbet_land_dl_4068, + d_course_sherbet_land_dl_4070, d_course_sherbet_land_dl_4080, d_course_sherbet_land_dl_4078, d_course_sherbet_land_dl_4088, + d_course_sherbet_land_dl_4090, d_course_sherbet_land_dl_40A0, d_course_sherbet_land_dl_4098, d_course_sherbet_land_dl_40A8, + d_course_sherbet_land_dl_40B0, d_course_sherbet_land_dl_41B8, d_course_sherbet_land_dl_4180, d_course_sherbet_land_dl_4280, + d_course_sherbet_land_dl_42E0, d_course_sherbet_land_dl_4470, d_course_sherbet_land_dl_43C8, d_course_sherbet_land_dl_4570, + d_course_sherbet_land_dl_4618, d_course_sherbet_land_dl_4798, d_course_sherbet_land_dl_4710, d_course_sherbet_land_dl_4868, + d_course_sherbet_land_dl_4930, d_course_sherbet_land_dl_4A98, d_course_sherbet_land_dl_4A20, d_course_sherbet_land_dl_4B20, }; diff --git a/enhancements/flycam.patch b/enhancements/flycam.patch index d233db4a6..c1dfafba1 100644 --- a/enhancements/flycam.patch +++ b/enhancements/flycam.patch @@ -431,7 +431,7 @@ diff --git a/src/racing/render_courses.c b/src/racing/render_courses.c index c2a84aa..338e2bd 100644 --- a/src/racing/render_courses.c +++ b/src/racing/render_courses.c -@@ -180,6 +180,11 @@ void load_surface_map(uintptr_t addr, struct UnkStruct_800DC5EC *arg1) { +@@ -180,6 +180,11 @@ void render_course_section(uintptr_t addr, struct UnkStruct_800DC5EC *arg1) { arg1->pathCounter = temp_v1; temp_v1 = ((temp_v1 - 1) * 4) + var_a3; diff --git a/include/defines.h b/include/defines.h index 91d2bbd27..475bee8b3 100644 --- a/include/defines.h +++ b/include/defines.h @@ -324,6 +324,13 @@ typedef enum KART_AI_BEHAVIOURS { BEHAVIOUR_MAX_SPEED }; +enum DIRECTION { + NORTH, + EAST, + SOUTH, + WEST +}; + /** * @brief Balloon status */ diff --git a/include/waypoints.h b/include/waypoints.h index 7334a49c7..538616b9c 100644 --- a/include/waypoints.h +++ b/include/waypoints.h @@ -7,7 +7,7 @@ typedef struct { /* 0x00 */ s16 posX; /* 0x02 */ s16 posY; /* 0x04 */ s16 posZ; - /* 0x06 */ u16 trackSegment; + /* 0x06 */ u16 courseSection; } TrackWaypoint; // size = 0x08 /** diff --git a/models/koopa_troopa_beach/models.json b/models/koopa_troopa_beach/models.json index bc4840716..25eefb29f 100644 --- a/models/koopa_troopa_beach/models.json +++ b/models/koopa_troopa_beach/models.json @@ -14,7 +14,7 @@ }, { "file": "courses/koopa_troopa_beach/course_data.c", - "out_dir": "koopa_troopa_beach/segments/list1", + "out_dir": "koopa_troopa_beach/segments/list2", "models": [ "d_course_koopa_troopa_beach_dl_118", "d_course_koopa_troopa_beach_dl_328", "d_course_koopa_troopa_beach_dl_218", "d_course_koopa_troopa_beach_dl_458", diff --git a/src/code_80005FD0.c b/src/code_80005FD0.c index d641ffddf..807835387 100644 --- a/src/code_80005FD0.c +++ b/src/code_80005FD0.c @@ -1349,7 +1349,7 @@ s32 func_80008E58(s32 payerId, s32 pathIndex) { f32 posY; f32 posZ; Player *player; - s32 trackSegment; + s32 courseSection; UNUSED s32 stackPadding; player = &gPlayers[payerId]; @@ -1357,9 +1357,9 @@ s32 func_80008E58(s32 payerId, s32 pathIndex) { posY = player->pos[1]; posZ = player->pos[2]; stackPadding = pathIndex; - trackSegment = func_802ABD40(player->unk_110.unk3A); - D_80163318[payerId] = trackSegment; - D_80162FCE = func_8000C0BC(posX, posY, posZ, trackSegment, &pathIndex); + courseSection = get_course_section(player->unk_110.unk3A); + D_80163318[payerId] = courseSection; + D_80162FCE = func_8000C0BC(posX, posY, posZ, courseSection, &pathIndex); gNearestWaypointByPlayerId[payerId] = D_80162FCE; if(pathIndex) {}; gPathIndexByPlayerId[payerId] = pathIndex; @@ -2311,7 +2311,7 @@ s16 func_8000BD94(f32 posX, f32 posY, f32 posZ, s32 pathIndex) { return nearestWaypointIndex; } -s16 func_8000C0BC(f32 posX, f32 posY, f32 posZ, u16 trackSegment, s32 *pathIndex) { +s16 func_8000C0BC(f32 posX, f32 posY, f32 posZ, u16 courseSection, s32 *pathIndex) { TrackWaypoint *pathWaypoints; TrackWaypoint *considerWaypoint; f32 x_dist; @@ -2337,7 +2337,7 @@ s16 func_8000C0BC(f32 posX, f32 posY, f32 posZ, u16 trackSegment, s32 *pathIndex pathWaypointCount = gWaypointCountByPathIndex[temp_t0]; considerWaypoint = &pathWaypoints[0]; for (considerWaypointIndex = 0; considerWaypointIndex < pathWaypointCount; considerWaypointIndex++, considerWaypoint++) { - if ((considerWaypoint->trackSegment == trackSegment) || (gCurrentCourseId == COURSE_AWARD_CEREMONY)) { + if ((considerWaypoint->courseSection == courseSection) || (gCurrentCourseId == COURSE_AWARD_CEREMONY)) { var_t1 = 1; x_dist = (f32) considerWaypoint->posX - posX; y_dist = (f32) considerWaypoint->posY - posY; @@ -2357,7 +2357,7 @@ s16 func_8000C0BC(f32 posX, f32 posY, f32 posZ, u16 trackSegment, s32 *pathIndex considerWaypoint = &pathWaypoints[0]; pathWaypointCount = gWaypointCountByPathIndex[considerPathIndex]; for (considerWaypointIndex = 0; considerWaypointIndex < pathWaypointCount; considerWaypointIndex++, considerWaypoint++) { - if (considerWaypoint->trackSegment == trackSegment) { + if (considerWaypoint->courseSection == courseSection) { x_dist = (f32) considerWaypoint->posX - posX; y_dist = (f32) considerWaypoint->posY - posY; z_dist = (f32) considerWaypoint->posZ - posZ; @@ -2403,11 +2403,11 @@ s16 func_8000C0BC(f32 posX, f32 posY, f32 posZ, u16 trackSegment, s32 *pathIndex /** * Tries to find the waypoint nearest to (posX, posY, posZ) - * Only consider waypoints in the same segment as trackSegment + * Only consider waypoints in the same segment as courseSection * Only considers waypoints within 500 units of (posX, posY, posZ) * Looks 3 waypoints behind and 6 waypoints ahead of waypointIndex **/ -s16 func_8000C884(f32 posX, f32 posY, f32 posZ, s16 waypointIndex, s32 pathIndex, u16 trackSegment) { +s16 func_8000C884(f32 posX, f32 posY, f32 posZ, s16 waypointIndex, s32 pathIndex, u16 courseSection) { s16 nearestWaypointIndex; s16 searchIndex; s16 considerIndex; @@ -2429,7 +2429,7 @@ s16 func_8000C884(f32 posX, f32 posY, f32 posZ, s16 waypointIndex, s32 pathIndex // This is done to ensure we access D_80164550 at a valid index considerIndex = (searchIndex + pathWaypointCount) % pathWaypointCount; considerWaypoint = &pathWaypoints[considerIndex]; - if (considerWaypoint->trackSegment == trackSegment) { + if (considerWaypoint->courseSection == courseSection) { x_dist = considerWaypoint->posX - posX; y_dist = considerWaypoint->posY - posY; z_dist = considerWaypoint->posZ - posZ; @@ -2521,15 +2521,15 @@ void func_8000CBF8(UNUSED f32 posX, UNUSED f32 posY, f32 posZ, s16 *waypointInde } s16 func_8000CC88(f32 posX, f32 posY, f32 posZ, Player *player, s32 playerId, s32 *pathIndex) { - u16 trackSegment; + u16 courseSection; s16 ret; - trackSegment = func_802ABD40(player->unk_110.unk3A); - if ((trackSegment <= 0) || (trackSegment >= 0x33)) { - trackSegment = D_80163318[playerId]; + courseSection = get_course_section(player->unk_110.unk3A); + if ((courseSection <= 0) || (courseSection >= 0x33)) { + courseSection = D_80163318[playerId]; } - D_80163318[playerId] = trackSegment; - ret = func_8000C0BC(posX, posY, posZ, trackSegment, pathIndex); + D_80163318[playerId] = courseSection; + ret = func_8000C0BC(posX, posY, posZ, courseSection, pathIndex); gPathIndexByPlayerId[playerId] = *pathIndex; return ret; } @@ -2542,7 +2542,7 @@ s16 func_8000CD24(f32 posX, f32 posY, f32 posZ, s16 waypointIndex, Player *playe TrackWaypoint *temp_v1; if ((player->type & 0x4000) && !(player->type & 0x1000)) { - sp5E = func_8000C884(posX, posY, posZ, waypointIndex, pathIndex, (u16) func_802ABD40(player->unk_110.unk3A)); + sp5E = func_8000C884(posX, posY, posZ, waypointIndex, pathIndex, (u16) get_course_section(player->unk_110.unk3A)); if (sp5E == -1) { sp5E = func_8000CC88(posX, posY, posZ, player, playerId, &pathIndex); } @@ -2558,7 +2558,7 @@ s16 func_8000CD24(f32 posX, f32 posY, f32 posZ, s16 waypointIndex, Player *playe } if (playerId == ((s32) D_80163488 % 8)) { func_802ADDC8(&player->unk_110, 10.0f, posX, posY, posZ); - D_80163318[playerId] = func_802ABD40(player->unk_110.unk3A); + D_80163318[playerId] = get_course_section(player->unk_110.unk3A); sp5E = func_8000C884(posX, posY, posZ, waypointIndex, pathIndex, D_80163318[playerId]); if (sp5E == -1) { sp5E = func_8000C9DC(posX, posY, posZ, waypointIndex, pathIndex); @@ -2582,7 +2582,7 @@ s16 func_8000CD24(f32 posX, f32 posY, f32 posZ, s16 waypointIndex, Player *playe player->pos[1] = posY; player->pos[2] = posZ; func_802ADDC8(&player->unk_110, 10.0f, posX, posY, posZ); - D_80163318[playerId] = func_802ABD40(player->unk_110.unk3A); + D_80163318[playerId] = get_course_section(player->unk_110.unk3A); } } } else { @@ -2635,7 +2635,7 @@ s16 func_8000D24C(f32 posX, f32 posY, f32 posZ, s32 *pathIndex) { Collision sp24; func_802ADDC8(&sp24, 10.0f, posX, posY, posZ); - return func_8000C0BC(posX, posY, posZ, func_802ABD40(sp24.unk3A), pathIndex); + return func_8000C0BC(posX, posY, posZ, get_course_section(sp24.unk3A), pathIndex); } s16 func_8000D2B4(f32 posX, f32 posY, f32 posZ, s16 waypointIndex, s32 pathIndex) { @@ -4013,7 +4013,7 @@ s32 func_80011014(TrackWaypoint *pathDest, TrackWaypoint *path, s32 numPathPoint pathDest->posZ = (s16) temp_f22; - pathDest->trackSegment = func_802ABD40(D_80162E70.unk3A); + pathDest->courseSection = get_course_section(D_80162E70.unk3A); if (var_f20_2 < -500.0) { var_f20_2 = var_f28; @@ -4075,7 +4075,7 @@ s32 process_path_data(TrackWaypoint *dest, TrackWaypoint *src) { temp_a0 = src->posX; temp_a2 = src->posY; temp_a3 = src->posZ; - temp_t0 = src->trackSegment; + temp_t0 = src->courseSection; src++; if (((temp_a0 & 0xFFFF) == 0x8000) && ((temp_a2 & 0xFFFF) == 0x8000) && ((temp_a3 & 0xFFFF) == 0x8000)) { break; } if (gIsMirrorMode != 0) { @@ -4086,7 +4086,7 @@ s32 process_path_data(TrackWaypoint *dest, TrackWaypoint *src) { var_v1++; dest->posY = temp_a2; dest->posZ = temp_a3; - dest->trackSegment = temp_t0; + dest->courseSection = temp_t0; dest++; } return var_v1; diff --git a/src/code_80086E70.c b/src/code_80086E70.c index af7e2339d..79a6b9d74 100644 --- a/src/code_80086E70.c +++ b/src/code_80086E70.c @@ -1415,11 +1415,11 @@ UNUSED void func_8008A850(s32 arg0) { } UNUSED s32 func_8008A870(Player *player) { - return func_802ABD40(player->unk_110.unk3A); + return get_course_section(player->unk_110.unk3A); } s32 func_8008A890(Camera *camera) { - return func_802ABD40(camera->unk_54.unk3A); + return get_course_section(camera->unk_54.unk3A); } s32 func_8008A8B0(s16 arg0, s16 arg1) { diff --git a/src/racing/collision.c b/src/racing/collision.c index 92bb12ac1..bcbb3fef1 100644 --- a/src/racing/collision.c +++ b/src/racing/collision.c @@ -81,7 +81,7 @@ f32 func_802AAB4C(Player *player) { } return D_8015F8E4; case COURSE_DK_JUNGLE: - temp_v1 = func_802ABD40(player->unk_110.unk3A) & 0xFF; + temp_v1 = get_course_section(player->unk_110.unk3A) & 0xFF; if (temp_v1 == 0xFF) { if ((get_surface_type(player->unk_110.unk3A) & 0xFF) == CAVE) { return -475.0f; @@ -497,7 +497,7 @@ s8 get_surface_type(u16 index) { return tile->surfaceType; } -s16 func_802ABD40(u16 index) { +s16 get_course_section(u16 index) { mk64_surface_map_ram *tile = &gSurfaceMap[index]; return tile->flags & 0xFF; } diff --git a/src/racing/collision.h b/src/racing/collision.h index 9dd6859f5..859a51587 100644 --- a/src/racing/collision.h +++ b/src/racing/collision.h @@ -13,7 +13,7 @@ s32 func_802AAE4C(Collision*, f32, f32, f32, f32, u16); s32 func_802AB288(Collision*, f32, f32, f32, f32, u16); s32 func_802AB6C4(Collision*, f32, f32, f32, f32, u16); s8 get_surface_type(u16); -s16 func_802ABD40(u16); +s16 get_course_section(u16); s16 func_802ABD7C(u16); s16 func_802ABDB8(u16); s16 func_802ABDF4(u16); diff --git a/src/racing/render_courses.c b/src/racing/render_courses.c index 22c4bdd24..a0dea7f8b 100644 --- a/src/racing/render_courses.c +++ b/src/racing/render_courses.c @@ -71,117 +71,117 @@ void parse_course_displaylists(uintptr_t addr) { extern u32 isFlycam; -void load_surface_map(uintptr_t addr, struct UnkStruct_800DC5EC *arg1) { +void render_course_section(uintptr_t sectionAddr, struct UnkStruct_800DC5EC *arg1) { Player *player = arg1->player; Camera *camera = arg1->camera; - u32 segment = SEGMENT_NUMBER2(addr); - u32 offset = SEGMENT_OFFSET(addr); + u32 segment = SEGMENT_NUMBER2(sectionAddr); + u32 offset = SEGMENT_OFFSET(sectionAddr); //! @todo Should be Gfx* - s32 *gfx = (s32 *) VIRTUAL_TO_PHYSICAL2(gSegmentTable[segment] + offset); - s16 var_a3; - s16 temp_v1; + s32 *sectionGfx = (s32 *) VIRTUAL_TO_PHYSICAL2(gSegmentTable[segment] + offset); + s16 direction; + s16 section; s16 sp1E; s16 temp_v0_3; u16 rot; if (gIsMirrorMode) { rot = (u16) camera->rot[1]; if (rot < 0x2000) { - var_a3 = 2; + direction = SOUTH; } else if (rot < 0x6000) { - var_a3 = 3; + direction = WEST; } else if (rot < 0xA000) { - var_a3 = 0; + direction = NORTH; } else if (rot < 0xE000) { - var_a3 = 1; + direction = EAST; } else { - var_a3 = 2; + direction = SOUTH; } } else { rot = (u16) camera->rot[1]; if (rot < 0x2000) { - var_a3 = 2; + direction = SOUTH; } else if (rot < 0x6000) { - var_a3 = 1; + direction = EAST; } else if (rot < 0xA000) { - var_a3 = 0; + direction = NORTH; } else if (rot < 0xE000) { - var_a3 = 3; + direction = WEST; } else { - var_a3 = 2; + direction = SOUTH; } } - arg1->playerDirection = var_a3; + arg1->playerDirection = direction; if (D_80152300[camera - camera1] == 1) { - sp1E = func_802ABD40(camera->unk_54.unk3A); - temp_v0_3 = func_802ABD40(player->unk_110.unk3A); - temp_v1 = sp1E - temp_v0_3; - if ((temp_v1 < 2) && (temp_v1 >= -1)) { + sp1E = get_course_section(camera->unk_54.unk3A); + temp_v0_3 = get_course_section(player->unk_110.unk3A); + section = sp1E - temp_v0_3; + if ((section < 2) && (section >= -1)) { if (sp1E == 255) { if (temp_v0_3 == 255) { - temp_v1 = arg1->pathCounter; + section = arg1->pathCounter; } else if (player->unk_110.unk3C[2] > 30.0f) { - temp_v1 = arg1->pathCounter; + section = arg1->pathCounter; } else { - temp_v1 = temp_v0_3; + section = temp_v0_3; } } else if (camera->unk_54.unk3C[2] > 30.0f) { - temp_v1 = arg1->pathCounter; + section = arg1->pathCounter; } else { - temp_v1 = sp1E; + section = sp1E; } } else { switch(gCurrentCourseId) { case COURSE_BOWSER_CASTLE: if ((temp_v0_3 >= 0x11) && (temp_v0_3 < 0x18)) { - temp_v1 = temp_v0_3; + section = temp_v0_3; } else if ((temp_v0_3 == 255) && (sp1E != 255)) { - temp_v1 = sp1E; + section = sp1E; } else if ((temp_v0_3 != 255) && (sp1E == 255)) { - temp_v1 = temp_v0_3; + section = temp_v0_3; } else { - temp_v1 = arg1->pathCounter; + section = arg1->pathCounter; } break; case COURSE_CHOCO_MOUNTAIN: if ((temp_v0_3 >= 0xE) && (temp_v0_3 < 0x16)) { - temp_v1 = temp_v0_3; + section = temp_v0_3; } else if ((temp_v0_3 == 255) && (sp1E != 255)) { - temp_v1 = sp1E; + section = sp1E; } else if ((temp_v0_3 != 255) && (sp1E == 255)) { - temp_v1 = temp_v0_3; + section = temp_v0_3; } else { - temp_v1 = arg1->pathCounter; + section = arg1->pathCounter; } break; default: if (temp_v0_3 == 255) { - temp_v1 = arg1->pathCounter; + section = arg1->pathCounter; } else if (player->unk_110.unk3C[2] > 30.0f) { - temp_v1 = arg1->pathCounter; + section = arg1->pathCounter; } else { - temp_v1 = temp_v0_3; + section = temp_v0_3; } break; } } } else { - temp_v1 = func_802ABD40(camera->unk_54.unk3A); + section = get_course_section(camera->unk_54.unk3A); if (camera->unk_54.unk3C[2] > 30.0f) { - temp_v1 = arg1->pathCounter; - } else if (temp_v1 == 255) { - temp_v1 = arg1->pathCounter; + section = arg1->pathCounter; + } else if (section == 255) { + section = arg1->pathCounter; } } - arg1->pathCounter = temp_v1; - temp_v1 = ((temp_v1 - 1) * 4) + var_a3; + arg1->pathCounter = section; + section = ((section - 1) * 4) + direction; - gSPDisplayList(gDisplayListHead++, gfx[temp_v1]); + gSPDisplayList(gDisplayListHead++, sectionGfx[section]); } void func_80291198(void) { @@ -287,7 +287,7 @@ void func_8029122C(struct UnkStruct_800DC5EC *arg0, s32 playerId) { gDPSetBlendMask(gDisplayListHead++, 0xFF); gDPSetCombineMode(gDisplayListHead++, G_CC_MODULATEIA, G_CC_MODULATEIA); gSPClearGeometryMode(gDisplayListHead++, G_CULL_BACK); - load_surface_map((uintptr_t)d_course_koopa_troopa_beach_dl_list2, arg0); + render_course_section((uintptr_t)d_course_koopa_troopa_beach_section_dl2, arg0); gSPTexture(gDisplayListHead++, 0xFFFF, 0xFFFF, 1, 1, G_OFF); gSPSetGeometryMode(gDisplayListHead++, G_CULL_BACK); gDPSetAlphaCompare(gDisplayListHead++, G_AC_NONE); @@ -305,7 +305,7 @@ void func_8029122C(struct UnkStruct_800DC5EC *arg0, s32 playerId) { mtxf_identity(matrix); render_set_position(matrix, 0); - load_surface_map((uintptr_t) sherbet_land_dls_2, arg0); + render_course_section((uintptr_t) d_course_sherbet_land_section_dl2, arg0); gDPSetAlphaCompare(gDisplayListHead++, G_AC_NONE); if ((func_80290C20(arg0->camera) == 1) && (func_802AAB4C(player) < player->pos[1])) { @@ -322,7 +322,7 @@ void func_8029122C(struct UnkStruct_800DC5EC *arg0, s32 playerId) { mtxf_identity(matrix); render_set_position(matrix, 0); gSPClearGeometryMode(gDisplayListHead++, G_CULL_BACK); - load_surface_map((uintptr_t) &d_course_rainbow_road_dl_list, arg0); + render_course_section((uintptr_t) &d_course_rainbow_road_dl_list, arg0); gSPSetGeometryMode(gDisplayListHead++, G_CULL_BACK); gDPSetAlphaCompare(gDisplayListHead++, G_AC_NONE); gDPPipeSync(gDisplayListHead++); @@ -510,7 +510,7 @@ void func_8029122C(struct UnkStruct_800DC5EC *arg0, s32 playerId) { void render_mario_raceway(struct UnkStruct_800DC5EC *arg0) { UNUSED s32 pad; u16 sp22 = arg0->pathCounter; - u16 temp_t0 = arg0->playerDirection; + u16 playerDirection = arg0->playerDirection; gSPClearGeometryMode(gDisplayListHead++, G_LIGHTING); @@ -533,20 +533,20 @@ void render_mario_raceway(struct UnkStruct_800DC5EC *arg0) { case 1: case 2: case 17: - if ((temp_t0 == 2) || (temp_t0 == 1)) { + if ((playerDirection == 2) || (playerDirection == 1)) { func_802911C4(); } break; case 3: - if (temp_t0 != 0) { + if (playerDirection != 0) { func_802911C4(); } break; case 4: - if (temp_t0 == 0) { + if (playerDirection == 0) { func_80291198(); } else { - if (temp_t0 == 1) { + if (playerDirection == 1) { func_80291198(); } func_802911C4(); @@ -554,7 +554,7 @@ void render_mario_raceway(struct UnkStruct_800DC5EC *arg0) { break; case 5: case 6: - if ((temp_t0 == 2) || (temp_t0 == 3)) { + if ((playerDirection == 2) || (playerDirection == 3)) { func_802911C4(); } else { func_80291198(); @@ -562,37 +562,37 @@ void render_mario_raceway(struct UnkStruct_800DC5EC *arg0) { break; case 7: func_80291198(); - if ((temp_t0 == 2) || (temp_t0 == 3)) { + if ((playerDirection == 2) || (playerDirection == 3)) { func_802911C4(); } break; case 8: case 9: - if (temp_t0 != 1) { + if (playerDirection != 1) { func_802911C4(); } /* fallthrough */ case 10: - if (temp_t0 != 2) { + if (playerDirection != 2) { func_80291198(); } break; case 11: - if (temp_t0 == 0) { + if (playerDirection == 0) { func_802911C4(); func_80291198(); - } else if (temp_t0 == 3) { + } else if (playerDirection == 3) { func_802911C4(); } break; case 12: - if ((temp_t0 == 0) || (temp_t0 == 3)) { + if ((playerDirection == 0) || (playerDirection == 3)) { func_802911C4(); } break; case 13: case 14: - if (temp_t0 != 1) { + if (playerDirection != 1) { case 15: case 16: func_802911C4(); @@ -608,7 +608,7 @@ void render_mario_raceway(struct UnkStruct_800DC5EC *arg0) { // d_course_mario_raceway_packed_dl_14A0 gSPDisplayList(gDisplayListHead++, ((uintptr_t)0x070014A0)); - load_surface_map((uintptr_t) mario_raceway_dls, arg0); + render_course_section((uintptr_t) mario_raceway_dls, arg0); gDPSetCombineMode(gDisplayListHead++, G_CC_MODULATEIDECALA, G_CC_MODULATEIDECALA); gDPSetRenderMode(gDisplayListHead++, G_RM_AA_ZB_TEX_EDGE, G_RM_AA_ZB_TEX_EDGE2); gSPClearGeometryMode(gDisplayListHead++, G_CULL_BACK); @@ -655,7 +655,7 @@ void render_choco_mountain(struct UnkStruct_800DC5EC *arg0) { gSPDisplayList(gDisplayListHead++, ((uintptr_t)0x07005868)); gSPClearGeometryMode(gDisplayListHead++, G_LIGHTING); - load_surface_map((uintptr_t) choco_mountain_dls, arg0); + render_course_section((uintptr_t) choco_mountain_dls, arg0); gSPClearGeometryMode(gDisplayListHead++, G_CULL_BACK); gDPSetRenderMode(gDisplayListHead++, G_RM_FOG_SHADE_A, G_RM_AA_ZB_TEX_EDGE2); @@ -693,7 +693,7 @@ void render_bowsers_castle(struct UnkStruct_800DC5EC *arg0) { if (D_802B87BC > 255) { D_802B87BC = 0; } - load_surface_map((uintptr_t) bowsers_castle_dls, arg0); + render_course_section((uintptr_t) bowsers_castle_dls, arg0); gDPSetCombineMode(gDisplayListHead++, G_CC_MODULATEIA, G_CC_MODULATEIA); gDPSetRenderMode(gDisplayListHead++, G_RM_AA_ZB_TEX_EDGE, G_RM_AA_ZB_TEX_EDGE2); @@ -732,7 +732,7 @@ void render_banshee_boardwalk(struct UnkStruct_800DC5EC *arg0) { // d_course_banshee_boardwalk_packed_dl_69B0 gSPDisplayList(gDisplayListHead++, ((uintptr_t)0x070069B0)); - load_surface_map((uintptr_t) banshee_boardwalk_dls, arg0); + render_course_section((uintptr_t) banshee_boardwalk_dls, arg0); gSPSetGeometryMode(gDisplayListHead++, G_CULL_BACK); gDPSetCombineMode(gDisplayListHead++, G_CC_MODULATEIA, G_CC_MODULATEIA); @@ -766,7 +766,7 @@ void render_yoshi_valley(struct UnkStruct_800DC5EC *arg0) { gDPSetCombineMode(gDisplayListHead++, G_CC_MODULATEI, G_CC_MODULATEI); gDPSetRenderMode(gDisplayListHead++, G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2); gSPClearGeometryMode(gDisplayListHead++, G_LIGHTING); - load_surface_map((uintptr_t) d_course_yoshi_valley_dl_list, arg0); + render_course_section((uintptr_t) d_course_yoshi_valley_dl_list, arg0); gDPPipeSync(gDisplayListHead++); } @@ -785,7 +785,7 @@ void render_frappe_snowland(struct UnkStruct_800DC5EC *arg0) { gDPSetCombineMode(gDisplayListHead++, G_CC_MODULATEIA, G_CC_MODULATEIA); gDPSetRenderMode(gDisplayListHead++, G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2); - load_surface_map((uintptr_t) d_course_frappe_snowland_dl_list, arg0); + render_course_section((uintptr_t) d_course_frappe_snowland_dl_list, arg0); } void render_koopa_troopa_beach(struct UnkStruct_800DC5EC *arg0) { @@ -805,7 +805,7 @@ void render_koopa_troopa_beach(struct UnkStruct_800DC5EC *arg0) { gDPSetRenderMode(gDisplayListHead++, G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2); // d_course_koopa_troopa_beach_packed_dl_9688 gSPDisplayList(gDisplayListHead++, ((uintptr_t)0x07009688)); - load_surface_map((uintptr_t) d_course_koopa_troopa_beach_dl_list1, arg0); + render_course_section((uintptr_t) d_course_koopa_troopa_beach_section_dl1, arg0); gSPClearGeometryMode(gDisplayListHead++, G_CULL_BACK); gDPSetCombineMode(gDisplayListHead++, G_CC_MODULATEIDECALA, G_CC_MODULATEIDECALA); gDPSetRenderMode(gDisplayListHead++, G_RM_AA_ZB_TEX_EDGE, G_RM_AA_ZB_TEX_EDGE2); @@ -833,7 +833,7 @@ void render_royal_raceway(struct UnkStruct_800DC5EC *arg0) { // d_course_royal_raceway_packed_dl_A648 gSPDisplayList(gDisplayListHead++, ((uintptr_t)0x0700A648)); - load_surface_map((uintptr_t) royal_raceway_dls, arg0); + render_course_section((uintptr_t) royal_raceway_dls, arg0); // d_course_royal_raceway_packed_dl_11A8 gSPDisplayList(gDisplayListHead++, ((uintptr_t)0x070011A8)); @@ -865,7 +865,7 @@ void render_luigi_raceway(struct UnkStruct_800DC5EC *arg0) { gDPSetCombineMode(gDisplayListHead++, G_CC_MODULATEIA, G_CC_MODULATEIA); gDPSetRenderMode(gDisplayListHead++, G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2); - load_surface_map((uintptr_t) luigi_raceway_dls, arg0); + render_course_section((uintptr_t) luigi_raceway_dls, arg0); gDPSetCombineMode(gDisplayListHead++, G_CC_MODULATEIDECALA, G_CC_MODULATEIDECALA); gDPSetRenderMode(gDisplayListHead++, G_RM_AA_ZB_TEX_EDGE, G_RM_AA_ZB_TEX_EDGE2); @@ -922,7 +922,7 @@ void render_luigi_raceway(struct UnkStruct_800DC5EC *arg0) { void render_moo_moo_farm(struct UnkStruct_800DC5EC *arg0) { UNUSED s32 pad[13]; s16 temp_s0 = arg0->pathCounter; - s16 temp_s1 = arg0->playerDirection; + s16 playerDirection = arg0->playerDirection; func_802B5D64((uintptr_t) D_800DC610, D_802B87D4, 0, 1); gSPTexture(gDisplayListHead++, 0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON); @@ -936,21 +936,21 @@ void render_moo_moo_farm(struct UnkStruct_800DC5EC *arg0) { gSPDisplayList(gDisplayListHead++, ((uintptr_t)0x07005640)); gSPFogPosition(gDisplayListHead++, D_802B87B0, D_802B87B4); - load_surface_map((uintptr_t) moo_moo_farm_dls, arg0); + render_course_section((uintptr_t) moo_moo_farm_dls, arg0); if ((temp_s0 < 14) && (temp_s0 > 10)) { - if ((temp_s1 == 2) || (temp_s1 == 3) || (temp_s1 == 1)) + if ((playerDirection == 2) || (playerDirection == 3) || (playerDirection == 1)) // gSPDisplayList(gDisplayListHead++, d_course_moo_moo_farm_dl_13FF8); } else if (temp_s0 < 16) { gSPDisplayList(gDisplayListHead++, d_course_moo_moo_farm_dl_13FF8); } else if (temp_s0 < 19) { - if (temp_s1 != 2) + if (playerDirection != 2) gSPDisplayList(gDisplayListHead++, d_course_moo_moo_farm_dl_13FF8); } else if (temp_s0 < 20) { - if (temp_s1 == 0) + if (playerDirection == 0) gSPDisplayList(gDisplayListHead++, d_course_moo_moo_farm_dl_13FF8); } @@ -958,28 +958,28 @@ void render_moo_moo_farm(struct UnkStruct_800DC5EC *arg0) { gDPSetRenderMode(gDisplayListHead++, G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2); if ((temp_s0 >= 16) && (temp_s0 < 24)) { - if ((temp_s1 == 2) || (temp_s1 == 3)) + if ((playerDirection == 2) || (playerDirection == 3)) // d_course_moo_moo_farm_packed_dl_5410 gSPDisplayList(gDisplayListHead++, ((uintptr_t)0x07005410)); } else if (temp_s0 < 9) { - if (temp_s1 == 2) + if (playerDirection == 2) // d_course_moo_moo_farm_packed_dl_5410 gSPDisplayList(gDisplayListHead++, ((uintptr_t)0x07005410)); } if (temp_s0 < 4) { - if (temp_s1 != 0) + if (playerDirection != 0) gSPDisplayList(gDisplayListHead++, d_course_moo_moo_farm_dl_14060); } else if (temp_s0 < 8) { - if (temp_s1 == 2) + if (playerDirection == 2) gSPDisplayList(gDisplayListHead++, d_course_moo_moo_farm_dl_14060); } else if (temp_s0 >= 22) { gSPDisplayList(gDisplayListHead++, d_course_moo_moo_farm_dl_14060); } else if (temp_s0 >= 18) { - if ((temp_s1 == 0) || (temp_s1 == 3)) + if ((playerDirection == 0) || (playerDirection == 3)) gSPDisplayList(gDisplayListHead++, d_course_moo_moo_farm_dl_14060); } @@ -1003,7 +1003,7 @@ void render_toads_turnpike(struct UnkStruct_800DC5EC *arg0) { gDPSetCombineMode(gDisplayListHead++, G_CC_MODULATEI, G_CC_PASS2); gDPSetRenderMode(gDisplayListHead++, G_RM_FOG_SHADE_A, G_RM_AA_ZB_OPA_SURF2); - load_surface_map((uintptr_t) d_course_toads_turnpike_dl_list, arg0); + render_course_section((uintptr_t) d_course_toads_turnpike_dl_list, arg0); gDPSetRenderMode(gDisplayListHead++, G_RM_FOG_SHADE_A, G_RM_AA_ZB_TEX_EDGE2); gDPSetCombineMode(gDisplayListHead++, G_CC_DECALRGBA, G_CC_PASS2); @@ -1034,7 +1034,7 @@ void render_kalimari_desert(struct UnkStruct_800DC5EC *arg0) { gDPSetCombineMode(gDisplayListHead++, G_CC_MODULATEI, G_CC_MODULATEI); gDPSetRenderMode(gDisplayListHead++, G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2); - load_surface_map((uintptr_t) kalimari_desert_dls, arg0); + render_course_section((uintptr_t) kalimari_desert_dls, arg0); // d_course_kalimari_desert_packed_dl_1ED8 gSPDisplayList(gDisplayListHead++, ((uintptr_t)0x07001ED8)); // d_course_kalimari_desert_packed_dl_1B18 @@ -1058,7 +1058,7 @@ void render_sherbet_land(struct UnkStruct_800DC5EC *arg0) { gSPSetGeometryMode(gDisplayListHead++, G_SHADING_SMOOTH); gDPSetCombineMode(gDisplayListHead++, G_CC_MODULATEI, G_CC_MODULATEI); gDPSetRenderMode(gDisplayListHead++, G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2); - load_surface_map((uintptr_t) sherbet_land_dls, arg0); + render_course_section((uintptr_t) d_course_sherbet_land_section_dl1, arg0); } void render_rainbow_road(UNUSED struct UnkStruct_800DC5EC *arg0) { @@ -1088,7 +1088,7 @@ void render_wario_stadium(struct UnkStruct_800DC5EC *arg0) { gDPSetCombineMode(gDisplayListHead++, G_CC_MODULATERGBA, G_CC_MODULATERGBA); gDPSetRenderMode(gDisplayListHead++, G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2); - load_surface_map((uintptr_t) wario_stadium_dls, arg0); + render_course_section((uintptr_t) wario_stadium_dls, arg0); // d_course_wario_stadium_packed_dl_A228 gSPDisplayList(gDisplayListHead++, ((uintptr_t)0x0700A228)); @@ -1201,7 +1201,7 @@ void render_dks_jungle_parkway(struct UnkStruct_800DC5EC *arg0) { gSPTexture(gDisplayListHead++, 0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON); gDPSetCombineMode(gDisplayListHead++, G_CC_MODULATEIDECALA, G_CC_MODULATEIDECALA); gDPSetRenderMode(gDisplayListHead++, G_RM_AA_ZB_TEX_EDGE, G_RM_AA_ZB_TEX_EDGE2); - load_surface_map((uintptr_t) d_course_dks_jungle_parkway_unknown_dl_list, arg0); + render_course_section((uintptr_t) d_course_dks_jungle_parkway_unknown_dl_list, arg0); gSPSetGeometryMode(gDisplayListHead++, G_CULL_BACK); } diff --git a/src/racing/render_courses.h b/src/racing/render_courses.h index 61a755f52..ad386d123 100644 --- a/src/racing/render_courses.h +++ b/src/racing/render_courses.h @@ -4,7 +4,7 @@ void func_8029122C(struct UnkStruct_800DC5EC*, s32); s32 func_80290C20(Camera*); void parse_course_displaylists(uintptr_t); -void load_surface_map(uintptr_t, struct UnkStruct_800DC5EC*); +void render_course_section(uintptr_t, struct UnkStruct_800DC5EC*); void func_80291198(void); void func_802911C4(void); void render_mario_raceway(struct UnkStruct_800DC5EC*); diff --git a/tools/blender/extract_models.py b/tools/blender/extract_models.py index 09ffd6a0d..14cd3a66d 100644 --- a/tools/blender/extract_models.py +++ b/tools/blender/extract_models.py @@ -38,10 +38,15 @@ for model in models: args_blender.append(file) args_blender.append(obj) args_blender.append(out_file) - subprocess.run([blender]+args_blender) + result = subprocess.run([blender]+args_blender) + if result.returncode != 0: + failed.append(out_file) args_blender.pop() args_blender.pop() args_blender.pop() -print("Failed to export:") -print("\n".join(failed)) +if len(failed) == 0: + print("All models exported successfully") +else: + print("Failed to export:") + print("\n".join(failed)) \ No newline at end of file diff --git a/tools/blender/fast64 b/tools/blender/fast64 index 34e114318..27bd13b0d 160000 --- a/tools/blender/fast64 +++ b/tools/blender/fast64 @@ -1 +1 @@ -Subproject commit 34e114318a1953daf4732d02236a30ce4d672527 +Subproject commit 27bd13b0d1515a912d4e95d47ee3bd46adaba98f