* Battle courses
This commit is contained in:
MegaMech
2024-08-11 23:36:56 -06:00
committed by GitHub
parent 2cdd3a9de8
commit 3476fe0dbb
14 changed files with 312 additions and 24 deletions
+72
View File
@@ -30,6 +30,22 @@
#include <assets/kalimari_desert_vertices.h>
#include <assets/kalimari_desert_data.h>
#include <assets/big_donut_displaylists.h>
#include <assets/big_donut_vertices.h>
#include <assets/big_donut_data.h>
#include <assets/skyscraper_displaylists.h>
#include <assets/skyscraper_vertices.h>
#include <assets/skyscraper_data.h>
#include <assets/block_fort_displaylists.h>
#include <assets/block_fort_vertices.h>
#include <assets/block_fort_data.h>
#include <assets/double_deck_displaylists.h>
#include <assets/double_deck_vertices.h>
#include <assets/double_deck_data.h>
#include <assert.h>
#include <course_offsets.h>
@@ -1531,6 +1547,62 @@ NewCourseTable gNewCourseTable[] = {
.textures = kalimari_desert_textures,
.displaylists = d_course_kalimari_desert_packed_dls,
.dlSize = 5328
}, { // sherbet
.data = NULL,
.vtx = NULL,
.vtxSize = 0,
.textures = NULL,
.displaylists = NULL,
.dlSize = 0
}, { // rainbow
.data = NULL,
.vtx = NULL,
.vtxSize = 0,
.textures = NULL,
.displaylists = NULL,
.dlSize = 0
}, { // wario
.data = NULL,
.vtx = NULL,
.vtxSize = 0,
.textures = NULL,
.displaylists = NULL,
.dlSize = 0
}, { // block fort
.data = d_course_block_fort_dl,
.vtx = d_course_block_fort_vertex,
.vtxSize = 1088,
.textures = block_fort_textures,
.displaylists = d_course_block_fort_packed_dls,
.dlSize = 699
}, { // skyscraper
.data = d_course_skyscraper_dl,
.vtx = d_course_skyscraper_vertex,
.vtxSize = 1086,
.textures = skyscraper_textures,
.displaylists = d_course_skyscraper_packed_dls,
.dlSize = 548
}, { // double decker
.data = d_course_double_deck_dl,
.vtx = d_course_double_deck_vertex,
.vtxSize = 555,
.textures = double_deck_textures,
.displaylists = d_course_double_deck_packed_dls,
.dlSize = 234
}, { // dk jungle
.data = NULL,
.vtx = NULL,
.vtxSize = 0,
.textures = NULL,
.displaylists = NULL,
.dlSize = 0
}, { // big donut
.data = d_course_big_donut_dl,
.vtx = d_course_big_donut_vertex,
.vtxSize = 1165,
.textures = big_donut_textures,
.displaylists = d_course_big_donut_packed_dls,
.dlSize = 528
}
};
+24 -24
View File
@@ -1173,7 +1173,7 @@ void render_block_fort(UNUSED struct UnkStruct_800DC5EC *arg0) {
gSPSetGeometryMode(gDisplayListHead++, G_SHADING_SMOOTH);
gSPClearGeometryMode(gDisplayListHead++, G_LIGHTING);
// d_course_block_fort_packed_dl_15C0
gSPDisplayList(gDisplayListHead++, ((uintptr_t)0x070015C0));
gSPDisplayList(gDisplayListHead++, ((uintptr_t)segmented_gfx_to_virtual(0x070015C0)));
}
@@ -1183,21 +1183,21 @@ void render_skyscraper(UNUSED struct UnkStruct_800DC5EC *arg0) {
gSPSetGeometryMode(gDisplayListHead++, G_SHADING_SMOOTH);
gSPClearGeometryMode(gDisplayListHead++, G_LIGHTING);
// d_course_skyscraper_packed_dl_FE8
gSPDisplayList(gDisplayListHead++, ((uintptr_t)0x07000FE8));
gSPDisplayList(gDisplayListHead++, ((uintptr_t)segmented_gfx_to_virtual(0x07000FE8)));
// d_course_skyscraper_packed_dl_C60
gSPDisplayList(gDisplayListHead++, ((uintptr_t)0x07000C60));
gSPDisplayList(gDisplayListHead++, ((uintptr_t)segmented_gfx_to_virtual(0x07000C60)));
// d_course_skyscraper_packed_dl_B70
gSPDisplayList(gDisplayListHead++, ((uintptr_t)0x07000B70));
gSPDisplayList(gDisplayListHead++, ((uintptr_t)segmented_gfx_to_virtual(0x07000B70)));
// d_course_skyscraper_packed_dl_6B8
gSPDisplayList(gDisplayListHead++, ((uintptr_t)0x070006B8));
gSPDisplayList(gDisplayListHead++, ((uintptr_t)segmented_gfx_to_virtual(0x070006B8)));
// d_course_skyscraper_packed_dl_570
gSPDisplayList(gDisplayListHead++, ((uintptr_t)0x07000570));
gSPDisplayList(gDisplayListHead++, ((uintptr_t)segmented_gfx_to_virtual(0x07000570)));
gSPClearGeometryMode(gDisplayListHead++, G_CULL_BACK);
// d_course_skyscraper_packed_dl_10C8
gSPDisplayList(gDisplayListHead++, ((uintptr_t)0x070010C8));
gSPDisplayList(gDisplayListHead++, ((uintptr_t)segmented_gfx_to_virtual(0x070010C8)));
gSPSetGeometryMode(gDisplayListHead++, G_CULL_BACK);
// d_course_skyscraper_packed_dl_258
gSPDisplayList(gDisplayListHead++, ((uintptr_t)0x07000258));
gSPDisplayList(gDisplayListHead++, ((uintptr_t)segmented_gfx_to_virtual(0x07000258)));
}
@@ -1209,7 +1209,7 @@ void render_double_deck(UNUSED struct UnkStruct_800DC5EC *arg0) {
gSPClearGeometryMode(gDisplayListHead++, G_LIGHTING);
gSPClearGeometryMode(gDisplayListHead++, G_CULL_BACK);
// d_course_double_deck_packed_dl_738
gSPDisplayList(gDisplayListHead++, ((uintptr_t)0x07000738));
gSPDisplayList(gDisplayListHead++, ((uintptr_t)segmented_gfx_to_virtual(0x07000738)));
gSPSetGeometryMode(gDisplayListHead++, G_CULL_BACK);
}
@@ -1249,16 +1249,16 @@ void render_big_donut(struct UnkStruct_800DC5EC *arg0) {
gDPSetCombineMode(gDisplayListHead++, G_CC_SHADE, G_CC_SHADE);
gDPSetRenderMode(gDisplayListHead++, G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2);
// d_course_big_donut_packed_dl_DE8
gSPDisplayList(gDisplayListHead++, ((uintptr_t)0x07000DE8));
gSPDisplayList(gDisplayListHead++, ((uintptr_t)segmented_gfx_to_virtual(0x07000DE8)));
}
// d_course_big_donut_packed_dl_450
gSPDisplayList(gDisplayListHead++, ((uintptr_t)0x07000450));
gSPDisplayList(gDisplayListHead++, ((uintptr_t)segmented_gfx_to_virtual(0x07000450)));
// d_course_big_donut_packed_dl_AC0
gSPDisplayList(gDisplayListHead++, ((uintptr_t)0x07000AC0));
gSPDisplayList(gDisplayListHead++, ((uintptr_t)segmented_gfx_to_virtual(0x07000AC0)));
// d_course_big_donut_packed_dl_D20
gSPDisplayList(gDisplayListHead++, ((uintptr_t)0x07000D20));
gSPDisplayList(gDisplayListHead++, ((uintptr_t)segmented_gfx_to_virtual(0x07000D20)));
// d_course_big_donut_packed_dl_230
gSPDisplayList(gDisplayListHead++, ((uintptr_t)0x07000230));
gSPDisplayList(gDisplayListHead++, ((uintptr_t)segmented_gfx_to_virtual(0x07000230)));
}
void func_8029569C(void) {
@@ -1616,22 +1616,22 @@ void func_80295D88(void) {
break;
case COURSE_BLOCK_FORT:
// d_course_block_fort_packed_dl_15C0
generate_collision_mesh_with_default_section_id((Gfx *)0x070015C0, 1);
generate_collision_mesh_with_default_section_id((Gfx *)segmented_gfx_to_virtual(0x070015C0), 1);
func_80295C6C();
D_8015F8E4 = gCourseMinY - 10.0f;
break;
case COURSE_SKYSCRAPER:
// d_course_skyscraper_packed_dl_1110
generate_collision_mesh_with_default_section_id((Gfx *)0x07001110, 1);
generate_collision_mesh_with_default_section_id((Gfx *)segmented_gfx_to_virtual(0x07001110), 1);
// d_course_skyscraper_packed_dl_258
generate_collision_mesh_with_default_section_id((Gfx *)0x07000258, 1);
generate_collision_mesh_with_default_section_id((Gfx *)segmented_gfx_to_virtual(0x07000258), 1);
func_80295C6C();
D_8015F8E4 = -480.0f;
break;
case COURSE_DOUBLE_DECK:
// d_course_double_deck_packed_dl_738
generate_collision_mesh_with_default_section_id((Gfx *)0x07000738, 1);
generate_collision_mesh_with_default_section_id((Gfx *) segmented_gfx_to_virtual(0x07000738), 1);
func_80295C6C();
D_8015F8E4 = gCourseMinY - 10.0f;
break;
@@ -1640,19 +1640,19 @@ void func_80295D88(void) {
func_80295C6C();
D_8015F8E4 = -475.0f;
// d_course_dks_jungle_parkway_packed_dl_3FA8
find_vtx_and_set_colours((uintptr_t)0x07003FA8, 120, 255, 255, 255);
find_vtx_and_set_colours((uintptr_t)segmented_gfx_to_virtual(0x07003FA8), 120, 255, 255, 255);
break;
case COURSE_BIG_DONUT:
// d_course_big_donut_packed_dl_1018
generate_collision_mesh_with_default_section_id((Gfx *)0x07001018, 6);
generate_collision_mesh_with_default_section_id((Gfx *) segmented_gfx_to_virtual(0x07001018), 6);
// d_course_big_donut_packed_dl_450
generate_collision_mesh_with_default_section_id((Gfx *)0x07000450, 6);
generate_collision_mesh_with_default_section_id((Gfx *)segmented_gfx_to_virtual(0x07000450), 6);
// d_course_big_donut_packed_dl_AC0
generate_collision_mesh_with_default_section_id((Gfx *)0x07000AC0, 6);
generate_collision_mesh_with_default_section_id((Gfx *)segmented_gfx_to_virtual(0x07000AC0), 6);
// d_course_big_donut_packed_dl_B58
generate_collision_mesh_with_default_section_id((Gfx *)0x07000B58, 6);
generate_collision_mesh_with_default_section_id((Gfx *)segmented_gfx_to_virtual(0x07000B58), 6);
// d_course_big_donut_packed_dl_230
generate_collision_mesh_with_default_section_id((Gfx *)0x07000230, 6);
generate_collision_mesh_with_default_section_id((Gfx *)segmented_gfx_to_virtual(0x07000230), 6);
func_80295C6C();
D_8015F8E4 = 100.0f;
break;
+22
View File
@@ -0,0 +1,22 @@
:config:
segments:
- [0x06, 0x88CC50]
- [0x07, 0x800000]
header:
code:
- '#include <libultraship.h>'
header:
- '#include <libultraship.h>'
- '#include <libultra/gbi.h>'
- '#include <align_asset_macro.h>'
references_packed_displaylists: true
d_course_big_donut_dl:
symbol: d_course_big_donut_dl
type: gfx
offset: 0x0
otr_mode: index
d_course_big_donut_item_box_spawns:
symbol: d_course_big_donut_item_box_spawns
type: mk64:spawn_data
count: 25
offset: 0x58
+17
View File
@@ -0,0 +1,17 @@
:config:
vram:
addr: 0x800E8700 # not used for anything
offset: 0x965A74
no_compression: true
header:
code:
- '#include <libultraship.h>'
header:
- '#include <libultraship.h>'
- '#include <libultra/gbi.h>'
- '#include <align_asset_macro.h>'
d_course_big_donut_packed_dls:
symbol: d_course_big_donut_packed_dls
type: blob
offset: 0x965A74
size: 0x7EC
+15
View File
@@ -0,0 +1,15 @@
:config:
segments:
- [0x0F, 0x963EF0]
header:
code:
- '#include <libultraship.h>'
header:
- '#include <libultraship.h>'
- '#include <libultra/gbi.h>'
- '#include <align_asset_macro.h>'
d_course_big_donut_vertex:
symbol: d_course_big_donut_vertex
type: mk64:course_vtx
count: 1165
offset: 0x0
+22
View File
@@ -0,0 +1,22 @@
:config:
segments:
- [0x06, 0x885630]
- [0x07, 0x800000]
header:
code:
- '#include <libultraship.h>'
header:
- '#include <libultraship.h>'
- '#include <libultra/gbi.h>'
- '#include <align_asset_macro.h>'
references_packed_displaylists: true
d_course_block_fort_dl:
symbol: d_course_block_fort_dl
type: gfx
offset: 0x0
otr_mode: index
d_course_block_fort_item_box_spawns:
symbol: d_course_block_fort_item_box_spawns
type: mk64:spawn_data
count: 37
offset: 0x38
+17
View File
@@ -0,0 +1,17 @@
:config:
vram:
addr: 0x800E8700 # not used for anything
offset: 0x953058
no_compression: true
header:
code:
- '#include <libultraship.h>'
header:
- '#include <libultraship.h>'
- '#include <libultra/gbi.h>'
- '#include <align_asset_macro.h>'
d_course_block_fort_packed_dls:
symbol: d_course_block_fort_packed_dls
type: blob
offset: 0x953058
size: 0x829
+15
View File
@@ -0,0 +1,15 @@
:config:
segments:
- [0x0F, 0x951780]
header:
code:
- '#include <libultraship.h>'
header:
- '#include <libultraship.h>'
- '#include <libultra/gbi.h>'
- '#include <align_asset_macro.h>'
d_course_block_fort_vertex:
symbol: d_course_block_fort_vertex
type: mk64:course_vtx
count: 1088
offset: 0x0
+22
View File
@@ -0,0 +1,22 @@
:config:
segments:
- [0x06, 0x8858A0]
- [0x07, 0x800000]
header:
code:
- '#include <libultraship.h>'
header:
- '#include <libultraship.h>'
- '#include <libultra/gbi.h>'
- '#include <align_asset_macro.h>'
references_packed_displaylists: true
d_course_double_deck_dl:
symbol: d_course_double_deck_dl
type: gfx
offset: 0x0
otr_mode: index
d_course_double_deck_item_box_spawns:
symbol: d_course_double_deck_item_box_spawns
type: mk64:spawn_data
count: 43
offset: 0x28
+17
View File
@@ -0,0 +1,17 @@
:config:
vram:
addr: 0x800E8700 # not used for anything
offset: 0x9562F4
no_compression: true
header:
code:
- '#include <libultraship.h>'
header:
- '#include <libultraship.h>'
- '#include <libultra/gbi.h>'
- '#include <align_asset_macro.h>'
d_course_double_deck_packed_dls:
symbol: d_course_double_deck_packed_dls
type: blob
offset: 0x9562F4
size: 0x373
+15
View File
@@ -0,0 +1,15 @@
:config:
segments:
- [0x0F, 0x955620]
header:
code:
- '#include <libultraship.h>'
header:
- '#include <libultraship.h>'
- '#include <libultra/gbi.h>'
- '#include <align_asset_macro.h>'
d_course_double_deck_vertex:
symbol: d_course_double_deck_vertex
type: mk64:course_vtx
count: 555
offset: 0x0
+22
View File
@@ -0,0 +1,22 @@
:config:
segments:
- [0x06, 0x885780]
- [0x07, 0x800000]
header:
code:
- '#include <libultraship.h>'
header:
- '#include <libultraship.h>'
- '#include <libultra/gbi.h>'
- '#include <align_asset_macro.h>'
references_packed_displaylists: true
d_course_skyscraper_dl:
symbol: d_course_skyscraper_dl
type: gfx
offset: 0x0
otr_mode: index
d_course_skyscraper_item_box_spawns:
symbol: d_course_skyscraper_item_box_spawns
type: mk64:spawn_data
count: 25
offset: 0x80
+17
View File
@@ -0,0 +1,17 @@
:config:
vram:
addr: 0x800E8700 # not used for anything
offset: 0x954F08
no_compression: true
header:
code:
- '#include <libultraship.h>'
header:
- '#include <libultraship.h>'
- '#include <libultra/gbi.h>'
- '#include <align_asset_macro.h>'
d_course_skyscraper_packed_dls:
symbol: d_course_skyscraper_packed_dls
type: blob
offset: 0x954F08
size: 0x711
+15
View File
@@ -0,0 +1,15 @@
:config:
segments:
- [0x0F, 0x953890]
header:
code:
- '#include <libultraship.h>'
header:
- '#include <libultraship.h>'
- '#include <libultra/gbi.h>'
- '#include <align_asset_macro.h>'
d_course_skyscraper_vertex:
symbol: d_course_skyscraper_vertex
type: mk64:course_vtx
count: 1086
offset: 0x0