mirror of
https://github.com/HarbourMasters/SpaghettiKart
synced 2026-08-12 12:18:25 -04:00
Add Courses (#49)
* castle and stadium * castle * boardwalk & snowland * turnpike --------- Co-authored-by: MegaMech <7255464+MegaMech@users.noreply.github.com>
This commit is contained in:
@@ -26,28 +26,28 @@ void render_actor_box_truck(Camera *arg0, struct Actor *arg1) {
|
||||
|
||||
switch(arg1->state) {
|
||||
case 0:
|
||||
gSPDisplayList(gDisplayListHead++, &d_course_toads_turnpike_dl_23858);
|
||||
gSPDisplayList(gDisplayListHead++, d_course_toads_turnpike_dl_23858);
|
||||
break;
|
||||
case 1:
|
||||
gSPDisplayList(gDisplayListHead++, &d_course_toads_turnpike_dl_238A0);
|
||||
gSPDisplayList(gDisplayListHead++, d_course_toads_turnpike_dl_238A0);
|
||||
break;
|
||||
case 2:
|
||||
gSPDisplayList(gDisplayListHead++, &d_course_toads_turnpike_dl_238E8);
|
||||
gSPDisplayList(gDisplayListHead++, d_course_toads_turnpike_dl_238E8);
|
||||
break;
|
||||
}
|
||||
|
||||
if (gActiveScreenMode == SCREEN_MODE_1P) {
|
||||
if (temp_f0 < 160000.0f) {
|
||||
gSPDisplayList(gDisplayListHead++, &toads_turnpike_dl_0);
|
||||
gSPDisplayList(gDisplayListHead++, toads_turnpike_dl_0);
|
||||
} else if (temp_f0 < 640000.0f) {
|
||||
gSPDisplayList(gDisplayListHead++, &toads_turnpike_dl_1);
|
||||
gSPDisplayList(gDisplayListHead++, toads_turnpike_dl_1);
|
||||
} else {
|
||||
gSPDisplayList(gDisplayListHead++, &toads_turnpike_dl_2);
|
||||
gSPDisplayList(gDisplayListHead++, toads_turnpike_dl_2);
|
||||
}
|
||||
} else if (temp_f0 < 160000.0f) {
|
||||
gSPDisplayList(gDisplayListHead++, &toads_turnpike_dl_1);
|
||||
gSPDisplayList(gDisplayListHead++, toads_turnpike_dl_1);
|
||||
} else {
|
||||
gSPDisplayList(gDisplayListHead++, &toads_turnpike_dl_2);
|
||||
gSPDisplayList(gDisplayListHead++, toads_turnpike_dl_2);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -28,16 +28,16 @@ void render_actor_car(Camera *arg0, struct Actor *arg1) {
|
||||
|
||||
if (gActiveScreenMode == SCREEN_MODE_1P) {
|
||||
if (temp_f0 < 160000.0f) {
|
||||
gSPDisplayList(gDisplayListHead++, &toads_turnpike_dl_9);
|
||||
gSPDisplayList(gDisplayListHead++, toads_turnpike_dl_9);
|
||||
} else if (temp_f0 < 640000.0f) {
|
||||
gSPDisplayList(gDisplayListHead++, &toads_turnpike_dl_10);
|
||||
gSPDisplayList(gDisplayListHead++, toads_turnpike_dl_10);
|
||||
} else {
|
||||
gSPDisplayList(gDisplayListHead++, &toads_turnpike_dl_11);
|
||||
gSPDisplayList(gDisplayListHead++, toads_turnpike_dl_11);
|
||||
}
|
||||
} else if (temp_f0 < 160000.0f) {
|
||||
gSPDisplayList(gDisplayListHead++, &toads_turnpike_dl_10);
|
||||
gSPDisplayList(gDisplayListHead++, toads_turnpike_dl_10);
|
||||
} else {
|
||||
gSPDisplayList(gDisplayListHead++, &toads_turnpike_dl_11);
|
||||
gSPDisplayList(gDisplayListHead++, toads_turnpike_dl_11);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -29,16 +29,16 @@ void render_actor_school_bus(Camera *arg0, struct Actor *arg1) {
|
||||
|
||||
if (gActiveScreenMode == SCREEN_MODE_1P) {
|
||||
if (temp_f0 < 160000.0f) {
|
||||
gSPDisplayList(gDisplayListHead++, &toads_turnpike_dl_3);
|
||||
gSPDisplayList(gDisplayListHead++, toads_turnpike_dl_3);
|
||||
} else if (temp_f0 < 640000.0f) {
|
||||
gSPDisplayList(gDisplayListHead++, &toads_turnpike_dl_4);
|
||||
gSPDisplayList(gDisplayListHead++, toads_turnpike_dl_4);
|
||||
} else {
|
||||
gSPDisplayList(gDisplayListHead++, &toads_turnpike_dl_5);
|
||||
gSPDisplayList(gDisplayListHead++, toads_turnpike_dl_5);
|
||||
}
|
||||
} else if (temp_f0 < 160000.0f) {
|
||||
gSPDisplayList(gDisplayListHead++, &toads_turnpike_dl_4);
|
||||
gSPDisplayList(gDisplayListHead++, toads_turnpike_dl_4);
|
||||
} else {
|
||||
gSPDisplayList(gDisplayListHead++, &toads_turnpike_dl_5);
|
||||
gSPDisplayList(gDisplayListHead++, toads_turnpike_dl_5);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -27,16 +27,16 @@ void render_actor_tanker_truck(Camera *camera, struct Actor* arg1) {
|
||||
if (gActiveScreenMode == SCREEN_MODE_1P) {
|
||||
if (temp_f0 < 160000.0f) {
|
||||
|
||||
gSPDisplayList(gDisplayListHead++, &toads_turnpike_dl_6);
|
||||
gSPDisplayList(gDisplayListHead++, toads_turnpike_dl_6);
|
||||
} else if (temp_f0 < 640000.0f) {
|
||||
gSPDisplayList(gDisplayListHead++, &toads_turnpike_dl_7);
|
||||
gSPDisplayList(gDisplayListHead++, toads_turnpike_dl_7);
|
||||
} else {
|
||||
gSPDisplayList(gDisplayListHead++, &toads_turnpike_dl_8);
|
||||
gSPDisplayList(gDisplayListHead++, toads_turnpike_dl_8);
|
||||
}
|
||||
} else if (temp_f0 < 160000.0f) {
|
||||
gSPDisplayList(gDisplayListHead++, &toads_turnpike_dl_7);
|
||||
gSPDisplayList(gDisplayListHead++, toads_turnpike_dl_7);
|
||||
} else {
|
||||
gSPDisplayList(gDisplayListHead++, &toads_turnpike_dl_8);
|
||||
gSPDisplayList(gDisplayListHead++, toads_turnpike_dl_8);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
#include <assets/common_data.h>
|
||||
#include "courses/all_course_data.h"
|
||||
#include <assets/kalimari_desert_data.h>
|
||||
#include <assets/bowsers_castle_data.h>
|
||||
|
||||
/**
|
||||
* @brief Renders the tree actor in Mario rawceay.
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
#include <actors.h>
|
||||
#include <libultra/gbi.h>
|
||||
#include <main.h>
|
||||
#include "courses/wario_stadium/course_data.h"
|
||||
#include <assets/wario_stadium_data.h>
|
||||
|
||||
/**
|
||||
* @brief Renders the Wario sign actor.
|
||||
|
||||
+16
-16
@@ -316,11 +316,11 @@ void func_80003040(void) {
|
||||
break;
|
||||
case COURSE_BOWSER_CASTLE:
|
||||
// d_course_bowsers_castle_packed_dl_1350
|
||||
find_vtx_and_set_colours(0x07001350, 0x32, 0, 0, 0);
|
||||
find_vtx_and_set_colours(segmented_gfx_to_virtual(0x07001350), 0x32, 0, 0, 0);
|
||||
break;
|
||||
case COURSE_BANSHEE_BOARDWALK:
|
||||
// d_course_banshee_boardwalk_packed_dl_878
|
||||
find_vtx_and_set_colours(0x07000878, -0x80, 0, 0, 0);
|
||||
find_vtx_and_set_colours(segmented_gfx_to_virtual(0x07000878), -0x80, 0, 0, 0);
|
||||
break;
|
||||
case COURSE_YOSHI_VALLEY:
|
||||
vec3f_set(position, -2300.0f, 0.0f, 634.0f);
|
||||
@@ -344,17 +344,17 @@ void func_80003040(void) {
|
||||
break;
|
||||
case COURSE_SHERBET_LAND:
|
||||
// d_course_sherbet_land_packed_dl_1EB8
|
||||
find_vtx_and_set_colours(0x07001EB8, -0x4C, 0xFF, 0xFF, 0xFF);
|
||||
find_vtx_and_set_colours(segmented_gfx_to_virtual(0x07001EB8), -0x4C, 0xFF, 0xFF, 0xFF);
|
||||
// d_course_sherbet_land_packed_dl_2308
|
||||
find_vtx_and_set_colours(0x07002308, -0x6A, 0xFF, 0xFF, 0xFF);
|
||||
find_vtx_and_set_colours(segmented_gfx_to_virtual(0x07002308), -0x6A, 0xFF, 0xFF, 0xFF);
|
||||
break;
|
||||
case COURSE_RAINBOW_ROAD:
|
||||
// d_course_rainbow_road_packed_dl_2068
|
||||
find_vtx_and_set_colours(0x07002068, -0x6A, 0xFF, 0xFF, 0xFF);
|
||||
find_vtx_and_set_colours(segmented_gfx_to_virtual(0x07002068), -0x6A, 0xFF, 0xFF, 0xFF);
|
||||
// d_course_rainbow_road_packed_dl_1E18
|
||||
find_vtx_and_set_colours(0x07001E18, -0x6A, 0xFF, 0xFF, 0xFF);
|
||||
find_vtx_and_set_colours(segmented_gfx_to_virtual(0x07001E18), -0x6A, 0xFF, 0xFF, 0xFF);
|
||||
// d_course_rainbow_road_packed_dl_1318
|
||||
find_vtx_and_set_colours(0x07001318, -1, 0xFF, 0xFF, 0);
|
||||
find_vtx_and_set_colours(segmented_gfx_to_virtual(0x07001318), -1, 0xFF, 0xFF, 0);
|
||||
break;
|
||||
case COURSE_WARIO_STADIUM:
|
||||
vec3f_set(position, -131.0f, 83.0f, 286.0f);
|
||||
@@ -364,25 +364,25 @@ void func_80003040(void) {
|
||||
vec3f_set(position, -2622.0f, 79.0f, 739.0f);
|
||||
add_actor_to_empty_slot(position, rotation, velocity, ACTOR_WARIO_SIGN);
|
||||
// d_course_wario_stadium_packed_dl_C50
|
||||
find_vtx_and_set_colours(0x07000C50, 0x64, 0xFF, 0xFF, 0xFF);
|
||||
find_vtx_and_set_colours(segmented_gfx_to_virtual(0x07000C50), 0x64, 0xFF, 0xFF, 0xFF);
|
||||
// d_course_wario_stadium_packed_dl_BD8
|
||||
find_vtx_and_set_colours(0x07000BD8, 0x64, 0xFF, 0xFF, 0xFF);
|
||||
find_vtx_and_set_colours(segmented_gfx_to_virtual(0x07000BD8), 0x64, 0xFF, 0xFF, 0xFF);
|
||||
// d_course_wario_stadium_packed_dl_B60
|
||||
find_vtx_and_set_colours(0x07000B60, 0x64, 0xFF, 0xFF, 0xFF);
|
||||
find_vtx_and_set_colours(segmented_gfx_to_virtual(0x07000B60), 0x64, 0xFF, 0xFF, 0xFF);
|
||||
// d_course_wario_stadium_packed_dl_AE8
|
||||
find_vtx_and_set_colours(0x07000AE8, 0x64, 0xFF, 0xFF, 0xFF);
|
||||
find_vtx_and_set_colours(segmented_gfx_to_virtual(0x07000AE8), 0x64, 0xFF, 0xFF, 0xFF);
|
||||
// d_course_wario_stadium_packed_dl_CC8
|
||||
find_vtx_and_set_colours(0x07000CC8, 0x64, 0xFF, 0xFF, 0xFF);
|
||||
find_vtx_and_set_colours(segmented_gfx_to_virtual(0x07000CC8), 0x64, 0xFF, 0xFF, 0xFF);
|
||||
// d_course_wario_stadium_packed_dl_D50
|
||||
find_vtx_and_set_colours(0x07000D50, 0x64, 0xFF, 0xFF, 0xFF);
|
||||
find_vtx_and_set_colours(segmented_gfx_to_virtual(0x07000D50), 0x64, 0xFF, 0xFF, 0xFF);
|
||||
// d_course_wario_stadium_packed_dl_DD0
|
||||
find_vtx_and_set_colours(0x07000DD0, 0x64, 0xFF, 0xFF, 0xFF);
|
||||
find_vtx_and_set_colours(segmented_gfx_to_virtual(0x07000DD0), 0x64, 0xFF, 0xFF, 0xFF);
|
||||
// d_course_wario_stadium_packed_dl_E48
|
||||
find_vtx_and_set_colours(0x07000E48, 0x64, 0xFF, 0xFF, 0xFF);
|
||||
find_vtx_and_set_colours(segmented_gfx_to_virtual(0x07000E48), 0x64, 0xFF, 0xFF, 0xFF);
|
||||
break;
|
||||
case COURSE_DK_JUNGLE:
|
||||
// d_course_dks_jungle_parkway_packed_dl_3FA8
|
||||
find_vtx_and_set_colours(0x07003FA8, 0x78, 0xFF, 0xFF, 0xFF);
|
||||
find_vtx_and_set_colours(segmented_gfx_to_virtual(0x07003FA8), 0x78, 0xFF, 0xFF, 0xFF);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
|
||||
+2
-1
@@ -34,6 +34,7 @@
|
||||
#include "sounds.h"
|
||||
#include "data/path_spawn_metadata.h"
|
||||
#include <assets/kalimari_desert_data.h>
|
||||
#include <assets/frappe_snowland_data.h>
|
||||
|
||||
s32 unk_code_80005FD0_pad[24];
|
||||
Collision D_80162E70;
|
||||
@@ -4324,7 +4325,7 @@ void func_800120C8(void) {
|
||||
}
|
||||
|
||||
void func_80012190(void) {
|
||||
TrackWaypoint *tree = d_frappe_snowland_tree;
|
||||
TrackWaypoint *tree = NULL; // LOAD_ASSET(d_course_dks_jungle_parkway_unknown_waypoints2);
|
||||
s32 i;
|
||||
|
||||
for (i = 0; ; i++) {
|
||||
|
||||
+6
-1
@@ -26,6 +26,7 @@
|
||||
#include "code_80091750.h"
|
||||
#include "src/data/some_data.h"
|
||||
#include "effects.h"
|
||||
#include <assets/boo_frames.h>
|
||||
|
||||
void init_hud(void) {
|
||||
|
||||
@@ -742,6 +743,10 @@ void func_80070714(void) {
|
||||
D_80165748 = 0xA;
|
||||
}
|
||||
|
||||
const char *sBoardwalkTexList[] = {
|
||||
gTextureBat1, gTextureBat2, gTextureBat3, gTextureBat4
|
||||
};
|
||||
|
||||
void init_course_object(void) {
|
||||
s32 objectId;
|
||||
s32 i;
|
||||
@@ -807,7 +812,7 @@ void init_course_object(void) {
|
||||
case COURSE_BANSHEE_BOARDWALK:
|
||||
if (gGamestate != CREDITS_SEQUENCE) {
|
||||
objectId = indexObjectList1[0];
|
||||
init_texture_object(objectId, d_course_banshee_boardwalk_bat_tlut, *d_course_banshee_boardwalk_bat, 0x20U, (u16) 0x00000040);
|
||||
init_texture_object(objectId, d_course_banshee_boardwalk_bat_tlut, sBoardwalkTexList, 0x20U, (u16) 0x00000040);
|
||||
gObjectList[objectId].orientation[0] = 0;
|
||||
gObjectList[objectId].orientation[1] = 0;
|
||||
gObjectList[objectId].orientation[2] = 0x8000;
|
||||
|
||||
@@ -7,6 +7,9 @@
|
||||
#include <assets/kalimari_desert_data.h>
|
||||
#include <assets/moo_moo_farm_data.h>
|
||||
#include <assets/choco_mountain_data.h>
|
||||
#include <assets/wario_stadium_data.h>
|
||||
#include <assets/bowsers_castle_data.h>
|
||||
#include <assets/frappe_snowland_data.h>
|
||||
|
||||
// @warning Array contains an extra zero element at the end.
|
||||
KartAIBehaviour *gKartAIBehaviourLUT[] = {
|
||||
|
||||
@@ -29,6 +29,8 @@
|
||||
#include <assets/other_textures.h>
|
||||
#include <assets/mario_raceway_data.h>
|
||||
#include <assets/luigi_raceway_data.h>
|
||||
#include <assets/wario_stadium_data.h>
|
||||
#include <assets/frappe_snowland_data.h>
|
||||
|
||||
// Appears to be textures
|
||||
// or tluts
|
||||
|
||||
+34
-70
@@ -13,46 +13,10 @@
|
||||
#include "code_800029B0.h"
|
||||
#include "math_util.h"
|
||||
#include "courses/courseTable.h"
|
||||
#include "courses/all_course_data.h"
|
||||
#include "courses/all_course_packed.h"
|
||||
#include "courses/all_course_model.h"
|
||||
#include "defines.h"
|
||||
#include <assets/mario_raceway_displaylists.h>
|
||||
#include <assets/mario_raceway_vertices.h>
|
||||
#include <assets/mario_raceway_data.h>
|
||||
|
||||
#include <assets/luigi_raceway_displaylists.h>
|
||||
#include <assets/luigi_raceway_vertices.h>
|
||||
#include <assets/luigi_raceway_data.h>
|
||||
|
||||
#include <assets/royal_raceway_displaylists.h>
|
||||
#include <assets/royal_raceway_vertices.h>
|
||||
#include <assets/royal_raceway_data.h>
|
||||
|
||||
#include <assets/kalimari_desert_displaylists.h>
|
||||
#include <assets/kalimari_desert_vertices.h>
|
||||
#include <assets/kalimari_desert_data.h>
|
||||
|
||||
#include <assets/moo_moo_farm_displaylists.h>
|
||||
#include <assets/moo_moo_farm_vertices.h>
|
||||
#include <assets/moo_moo_farm_data.h>
|
||||
|
||||
#include <assets/big_donut_displaylists.h>
|
||||
#include <assets/big_donut_vertices.h>
|
||||
#include <assets/big_donut_data.h>
|
||||
|
||||
#include <assets/choco_mountain_displaylists.h>
|
||||
#include <assets/choco_mountain_vertices.h>
|
||||
#include <assets/choco_mountain_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>
|
||||
@@ -1486,19 +1450,19 @@ NewCourseTable gNewCourseTable[] = {
|
||||
.displaylists = d_course_choco_mountain_packed_dls,
|
||||
.dlSize = 2910
|
||||
}, { // bowser_castle
|
||||
.data = NULL,
|
||||
.vtx = NULL,
|
||||
.vtxSize = 0,
|
||||
.textures = NULL,
|
||||
.displaylists = NULL,
|
||||
.dlSize = 0
|
||||
.data = d_course_bowsers_castle_dl_0,
|
||||
.vtx = d_course_bowsers_castle_vertex,
|
||||
.vtxSize = 9527,
|
||||
.textures = bowsers_castle_textures,
|
||||
.displaylists = d_course_bowsers_castle_packed_dls,
|
||||
.dlSize = 4900
|
||||
}, { // banshee_boardwalk
|
||||
.data = NULL,
|
||||
.vtx = NULL,
|
||||
.vtxSize = 4326,
|
||||
.textures = NULL,
|
||||
.displaylists = NULL,
|
||||
.dlSize = 0
|
||||
.data = d_course_banshee_boardwalk_dl_0,
|
||||
.vtx = d_course_banshee_boardwalk_vertex,
|
||||
.vtxSize = 4945,
|
||||
.textures = banshee_boardwalk_textures,
|
||||
.displaylists = d_course_banshee_boardwalk_packed_dls,
|
||||
.dlSize = 3689
|
||||
}, { // maze
|
||||
.data = NULL,
|
||||
.vtx = NULL,
|
||||
@@ -1507,12 +1471,12 @@ NewCourseTable gNewCourseTable[] = {
|
||||
.displaylists = NULL,
|
||||
.dlSize = 0
|
||||
}, { // snow
|
||||
.data = NULL,
|
||||
.vtx = NULL,
|
||||
.vtxSize = 0,
|
||||
.textures = NULL,
|
||||
.displaylists = NULL,
|
||||
.dlSize = 0
|
||||
.data = d_course_frappe_snowland_dl_0,
|
||||
.vtx = d_course_frappe_snowland_vertex,
|
||||
.vtxSize = 5529,
|
||||
.textures = frappe_snowland_textures,
|
||||
.displaylists = d_course_frappe_snowland_packed_dls,
|
||||
.dlSize = 3274
|
||||
}, { // koopa_troopa_beach
|
||||
.data = NULL,
|
||||
.vtx = NULL,
|
||||
@@ -1542,12 +1506,12 @@ NewCourseTable gNewCourseTable[] = {
|
||||
.displaylists = d_course_moo_moo_farm_packed_dls,
|
||||
.dlSize = 3304
|
||||
}, { // highway
|
||||
.data = NULL,
|
||||
.vtx = NULL,
|
||||
.vtxSize = 0,
|
||||
.textures = NULL,
|
||||
.displaylists = NULL,
|
||||
.dlSize = 0
|
||||
.data = d_course_toads_turnpike_dl_0,
|
||||
.vtx = d_course_toads_turnpike_vertex,
|
||||
.vtxSize = 6359,
|
||||
.textures = toads_turnpike_textures,
|
||||
.displaylists = d_course_toads_turnpike_packed_dls,
|
||||
.dlSize = 3427
|
||||
}, { // kalimari_desert
|
||||
.data = d_course_kalimari_desert_dl_0,
|
||||
.vtx = d_course_kalimari_desert_vertex,
|
||||
@@ -1565,17 +1529,17 @@ NewCourseTable gNewCourseTable[] = {
|
||||
}, { // rainbow
|
||||
.data = NULL,
|
||||
.vtx = NULL,
|
||||
.vtxSize = 0,
|
||||
.vtxSize = 6067,
|
||||
.textures = NULL,
|
||||
.displaylists = NULL,
|
||||
.dlSize = 0
|
||||
}, { // wario
|
||||
.data = NULL,
|
||||
.vtx = NULL,
|
||||
.vtxSize = 0,
|
||||
.textures = NULL,
|
||||
.displaylists = NULL,
|
||||
.dlSize = 0
|
||||
.data = d_course_wario_stadium_dl_0,
|
||||
.vtx = d_course_wario_stadium_vertex,
|
||||
.vtxSize = 6067,
|
||||
.textures = wario_stadium_textures,
|
||||
.displaylists = d_course_wario_stadium_packed_dls,
|
||||
.dlSize = 5272
|
||||
}, { // block fort
|
||||
.data = d_course_block_fort_dl,
|
||||
.vtx = d_course_block_fort_vertex,
|
||||
|
||||
+60
-50
@@ -32,6 +32,12 @@
|
||||
#include <assets/moo_moo_farm_displaylists.h>
|
||||
#include <assets/choco_mountain_data.h>
|
||||
#include <assets/choco_mountain_displaylists.h>
|
||||
#include <assets/wario_stadium_data.h>
|
||||
#include <assets/wario_stadium_displaylists.h>
|
||||
#include <assets/bowsers_castle_data.h>
|
||||
#include <assets/bowsers_castle_displaylists.h>
|
||||
#include <assets/frappe_snowland_data.h>
|
||||
#include <assets/frappe_snowland_displaylists.h>
|
||||
|
||||
s16 D_802B87B0 = 995;
|
||||
s16 D_802B87B4 = 1000;
|
||||
@@ -278,7 +284,7 @@ void func_8029122C(struct UnkStruct_800DC5EC *arg0, s32 playerId) {
|
||||
gDPSetBlendMask(gDisplayListHead++, 0xFF);
|
||||
gDPSetCombineMode(gDisplayListHead++, G_CC_MODULATEIA, G_CC_MODULATEIA);
|
||||
// d_course_banshee_boardwalk_packed_dl_878
|
||||
gSPDisplayList(gDisplayListHead++, 0x07000878);
|
||||
gSPDisplayList(gDisplayListHead++, segmented_gfx_to_virtual(0x07000878));
|
||||
gDPSetAlphaCompare(gDisplayListHead++, G_AC_NONE);
|
||||
gDPPipeSync(gDisplayListHead++);
|
||||
break;
|
||||
@@ -372,7 +378,7 @@ void func_8029122C(struct UnkStruct_800DC5EC *arg0, s32 playerId) {
|
||||
gDPSetRenderMode(gDisplayListHead++, G_RM_AA_ZB_XLU_SURF, G_RM_AA_ZB_XLU_SURF2);
|
||||
gDPSetPrimColor(gDisplayListHead++, 0, 0, 0xFF, 0xFF, 0x00, 0xFF);
|
||||
// d_course_wario_stadium_packed_dl_EC0
|
||||
gSPDisplayList(gDisplayListHead++, 0x07000EC0);
|
||||
gSPDisplayList(gDisplayListHead++, segmented_gfx_to_virtual(0x07000EC0));
|
||||
gSPTexture(gDisplayListHead++, 0xFFFF, 0xFFFF, 1, 1, G_OFF);
|
||||
gSPSetGeometryMode(gDisplayListHead++, G_CULL_BACK);
|
||||
gDPSetAlphaCompare(gDisplayListHead++, G_AC_NONE);
|
||||
@@ -712,7 +718,7 @@ void render_bowsers_castle(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_bowsers_castle_packed_dl_6A80
|
||||
gSPDisplayList(gDisplayListHead++, ((uintptr_t)0x07006A80));
|
||||
gSPDisplayList(gDisplayListHead++, segmented_gfx_to_virtual(0x07006A80));
|
||||
}
|
||||
|
||||
gDPSetCombineMode(gDisplayListHead++, G_CC_MODULATEIA, G_CC_MODULATEIA);
|
||||
@@ -722,12 +728,12 @@ void render_bowsers_castle(struct UnkStruct_800DC5EC *arg0) {
|
||||
if (D_802B87BC > 255) {
|
||||
D_802B87BC = 0;
|
||||
}
|
||||
render_course_segments((uintptr_t) bowsers_castle_dls, arg0);
|
||||
render_course_segments(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);
|
||||
// d_course_bowsers_castle_packed_dl_248
|
||||
gSPDisplayList(gDisplayListHead++, ((uintptr_t)0x07000248));
|
||||
gSPDisplayList(gDisplayListHead++, segmented_gfx_to_virtual(0x07000248));
|
||||
}
|
||||
|
||||
void render_banshee_boardwalk(struct UnkStruct_800DC5EC *arg0) {
|
||||
@@ -740,7 +746,7 @@ void render_banshee_boardwalk(struct UnkStruct_800DC5EC *arg0) {
|
||||
gSPTexture(gDisplayListHead++, 0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON);
|
||||
gDPSetCombineMode(gDisplayListHead++, G_CC_DECALRGBA, G_CC_DECALRGBA);
|
||||
// d_course_banshee_boardwalk_packed_dl_7228
|
||||
gSPDisplayList(gDisplayListHead++, ((uintptr_t)0x07007228));
|
||||
gSPDisplayList(gDisplayListHead++, segmented_gfx_to_virtual(0x07007228));
|
||||
|
||||
gSPFogPosition(gDisplayListHead++, D_802B87B0, D_802B87B4);
|
||||
|
||||
@@ -755,13 +761,13 @@ void render_banshee_boardwalk(struct UnkStruct_800DC5EC *arg0) {
|
||||
gDPSetRenderMode(gDisplayListHead++, G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2);
|
||||
gSPClearGeometryMode(gDisplayListHead++, G_LIGHTING);
|
||||
// d_course_banshee_boardwalk_packed_dl_5CD0
|
||||
gSPDisplayList(gDisplayListHead++, ((uintptr_t)0x07005CD0));
|
||||
gSPDisplayList(gDisplayListHead++, segmented_gfx_to_virtual(0x07005CD0));
|
||||
// d_course_banshee_boardwalk_packed_dl_4E60
|
||||
gSPDisplayList(gDisplayListHead++, ((uintptr_t)0x07004E60));
|
||||
gSPDisplayList(gDisplayListHead++, segmented_gfx_to_virtual(0x07004E60));
|
||||
// d_course_banshee_boardwalk_packed_dl_69B0
|
||||
gSPDisplayList(gDisplayListHead++, ((uintptr_t)0x070069B0));
|
||||
gSPDisplayList(gDisplayListHead++, segmented_gfx_to_virtual(0x070069B0));
|
||||
|
||||
render_course_segments((uintptr_t) banshee_boardwalk_dls, arg0);
|
||||
render_course_segments(banshee_boardwalk_dls, arg0);
|
||||
|
||||
gSPSetGeometryMode(gDisplayListHead++, G_CULL_BACK);
|
||||
gDPSetCombineMode(gDisplayListHead++, G_CC_MODULATEIA, G_CC_MODULATEIA);
|
||||
@@ -769,15 +775,15 @@ void render_banshee_boardwalk(struct UnkStruct_800DC5EC *arg0) {
|
||||
gSPClearGeometryMode(gDisplayListHead++, G_LIGHTING);
|
||||
gSPSetGeometryMode(gDisplayListHead++, G_SHADE | G_SHADING_SMOOTH);
|
||||
// d_course_banshee_boardwalk_packed_dl_580
|
||||
gSPDisplayList(gDisplayListHead++, ((uintptr_t)0x07000580));
|
||||
gSPDisplayList(gDisplayListHead++, segmented_gfx_to_virtual(0x07000580));
|
||||
// d_course_banshee_boardwalk_packed_dl_60
|
||||
gSPDisplayList(gDisplayListHead++, ((uintptr_t)0x07000060));
|
||||
gSPDisplayList(gDisplayListHead++, segmented_gfx_to_virtual(0x07000060));
|
||||
// d_course_banshee_boardwalk_packed_dl_540
|
||||
gSPDisplayList(gDisplayListHead++, ((uintptr_t)0x07000540));
|
||||
gSPDisplayList(gDisplayListHead++, segmented_gfx_to_virtual(0x07000540));
|
||||
|
||||
if (camera->pos[1] < -20.0f) {
|
||||
// d_course_banshee_boardwalk_packed_dl_6310
|
||||
gSPDisplayList(gDisplayListHead++, ((uintptr_t)0x07006310));
|
||||
gSPDisplayList(gDisplayListHead++, segmented_gfx_to_virtual(0x07006310));
|
||||
}
|
||||
spA8[0] = camera->pos[0];
|
||||
spA8[1] = -82.0f;
|
||||
@@ -809,12 +815,12 @@ void render_frappe_snowland(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_frappe_snowland_packed_dl_65E0
|
||||
gSPDisplayList(gDisplayListHead++, ((uintptr_t)0x070065E0));
|
||||
gSPDisplayList(gDisplayListHead++, segmented_gfx_to_virtual(0x070065E0));
|
||||
}
|
||||
|
||||
gDPSetCombineMode(gDisplayListHead++, G_CC_MODULATEIA, G_CC_MODULATEIA);
|
||||
gDPSetRenderMode(gDisplayListHead++, G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2);
|
||||
render_course_segments((uintptr_t) d_course_frappe_snowland_dl_list, arg0);
|
||||
render_course_segments(frappe_snowland_dls, arg0);
|
||||
}
|
||||
|
||||
void render_koopa_troopa_beach(struct UnkStruct_800DC5EC *arg0) {
|
||||
@@ -1037,16 +1043,16 @@ 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);
|
||||
|
||||
render_course_segments((uintptr_t) d_course_toads_turnpike_dl_list, arg0);
|
||||
render_course_segments(toads_turnpike_dls, arg0);
|
||||
|
||||
gDPSetRenderMode(gDisplayListHead++, G_RM_FOG_SHADE_A, G_RM_AA_ZB_TEX_EDGE2);
|
||||
gDPSetCombineMode(gDisplayListHead++, G_CC_DECALRGBA, G_CC_PASS2);
|
||||
// d_course_toads_turnpike_packed_dl_0
|
||||
gSPDisplayList(gDisplayListHead++, ((uintptr_t)0x07000000));
|
||||
gSPDisplayList(gDisplayListHead++, segmented_gfx_to_virtual(0x07000000));
|
||||
// d_course_toads_turnpike_packed_dl_68
|
||||
gSPDisplayList(gDisplayListHead++, ((uintptr_t)0x07000068));
|
||||
gSPDisplayList(gDisplayListHead++, segmented_gfx_to_virtual(0x07000068));
|
||||
// d_course_toads_turnpike_packed_dl_D8
|
||||
gSPDisplayList(gDisplayListHead++, ((uintptr_t)0x070000D8));
|
||||
gSPDisplayList(gDisplayListHead++, segmented_gfx_to_virtual(0x070000D8));
|
||||
gSPClearGeometryMode(gDisplayListHead++, G_FOG);
|
||||
gDPSetCycleType(gDisplayListHead++, G_CYC_1CYCLE);
|
||||
}
|
||||
@@ -1116,21 +1122,21 @@ void render_wario_stadium(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_wario_stadium_packed_dl_A0C8
|
||||
gSPDisplayList(gDisplayListHead++, ((uintptr_t)0x0700A0C8));
|
||||
gSPDisplayList(gDisplayListHead++, segmented_gfx_to_virtual(0x0700A0C8));
|
||||
|
||||
}
|
||||
gDPSetCombineMode(gDisplayListHead++, G_CC_MODULATERGBA, G_CC_MODULATERGBA);
|
||||
gDPSetRenderMode(gDisplayListHead++, G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2);
|
||||
|
||||
render_course_segments((uintptr_t) wario_stadium_dls, arg0);
|
||||
render_course_segments(wario_stadium_dls, arg0);
|
||||
|
||||
// d_course_wario_stadium_packed_dl_A228
|
||||
gSPDisplayList(gDisplayListHead++, ((uintptr_t)0x0700A228));
|
||||
gSPDisplayList(gDisplayListHead++, segmented_gfx_to_virtual(0x0700A228));
|
||||
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);
|
||||
// d_course_wario_stadium_packed_dl_A88
|
||||
gSPDisplayList(gDisplayListHead++, ((uintptr_t)0x07000A88));
|
||||
gSPDisplayList(gDisplayListHead++, segmented_gfx_to_virtual(0x07000A88));
|
||||
gSPSetGeometryMode(gDisplayListHead++, G_CULL_BACK);
|
||||
|
||||
D_800DC5DC = 88;
|
||||
@@ -1148,22 +1154,22 @@ void render_wario_stadium(struct UnkStruct_800DC5EC *arg0) {
|
||||
}
|
||||
switch (currentScreenSection) {
|
||||
case 0:
|
||||
copy_framebuffer(D_800DC5DC, D_800DC5E0, 64, 32, (u16 *) PHYSICAL_TO_VIRTUAL(gPhysicalFramebuffers[prevFrame]), (u16 *) PHYSICAL_TO_VIRTUAL(gSegmentTable[5] + 0x8800));
|
||||
//copy_framebuffer(D_800DC5DC, D_800DC5E0, 64, 32, (u16 *) PHYSICAL_TO_VIRTUAL(gPhysicalFramebuffers[prevFrame]), (u16 *) PHYSICAL_TO_VIRTUAL(gSegmentTable[5] + 0x8800));
|
||||
break;
|
||||
case 1:
|
||||
copy_framebuffer(D_800DC5DC + 64, D_800DC5E0, 64, 32, (u16 *) PHYSICAL_TO_VIRTUAL(gPhysicalFramebuffers[prevFrame]), (u16 *) PHYSICAL_TO_VIRTUAL(gSegmentTable[5] + 0x9800));
|
||||
//copy_framebuffer(D_800DC5DC + 64, D_800DC5E0, 64, 32, (u16 *) PHYSICAL_TO_VIRTUAL(gPhysicalFramebuffers[prevFrame]), (u16 *) PHYSICAL_TO_VIRTUAL(gSegmentTable[5] + 0x9800));
|
||||
break;
|
||||
case 2:
|
||||
copy_framebuffer(D_800DC5DC, D_800DC5E0 + 32, 64, 32, (u16 *) PHYSICAL_TO_VIRTUAL(gPhysicalFramebuffers[prevFrame]), (u16 *) PHYSICAL_TO_VIRTUAL(gSegmentTable[5] + 0xA800));
|
||||
//copy_framebuffer(D_800DC5DC, D_800DC5E0 + 32, 64, 32, (u16 *) PHYSICAL_TO_VIRTUAL(gPhysicalFramebuffers[prevFrame]), (u16 *) PHYSICAL_TO_VIRTUAL(gSegmentTable[5] + 0xA800));
|
||||
break;
|
||||
case 3:
|
||||
copy_framebuffer(D_800DC5DC + 64, D_800DC5E0 + 32, 64, 32, (u16 *) PHYSICAL_TO_VIRTUAL(gPhysicalFramebuffers[prevFrame]), (u16 *) PHYSICAL_TO_VIRTUAL(gSegmentTable[5] + 0xB800));
|
||||
//copy_framebuffer(D_800DC5DC + 64, D_800DC5E0 + 32, 64, 32, (u16 *) PHYSICAL_TO_VIRTUAL(gPhysicalFramebuffers[prevFrame]), (u16 *) PHYSICAL_TO_VIRTUAL(gSegmentTable[5] + 0xB800));
|
||||
break;
|
||||
case 4:
|
||||
copy_framebuffer(D_800DC5DC, D_800DC5E0 + 64, 64, 32, (u16 *) PHYSICAL_TO_VIRTUAL(gPhysicalFramebuffers[prevFrame]), (u16 *) PHYSICAL_TO_VIRTUAL(gSegmentTable[5] + 0xC800));
|
||||
//copy_framebuffer(D_800DC5DC, D_800DC5E0 + 64, 64, 32, (u16 *) PHYSICAL_TO_VIRTUAL(gPhysicalFramebuffers[prevFrame]), (u16 *) PHYSICAL_TO_VIRTUAL(gSegmentTable[5] + 0xC800));
|
||||
break;
|
||||
case 5:
|
||||
copy_framebuffer(D_800DC5DC + 64, D_800DC5E0 + 64, 64, 32, (u16 *) PHYSICAL_TO_VIRTUAL(gPhysicalFramebuffers[prevFrame]), (u16 *) PHYSICAL_TO_VIRTUAL(gSegmentTable[5] + 0xD800));
|
||||
//copy_framebuffer(D_800DC5DC + 64, D_800DC5E0 + 64, 64, 32, (u16 *) PHYSICAL_TO_VIRTUAL(gPhysicalFramebuffers[prevFrame]), (u16 *) PHYSICAL_TO_VIRTUAL(gSegmentTable[5] + 0xD800));
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -1506,9 +1512,10 @@ void func_80295D88(void) {
|
||||
D_8015F8E4 = -80.0f;
|
||||
break;
|
||||
case COURSE_BOWSER_CASTLE:
|
||||
parse_course_displaylists((uintptr_t) d_course_bowsers_castle_addr);
|
||||
TrackSectionsI *section3 = (TrackSectionsI *) LOAD_ASSET(d_course_bowsers_castle_addr);
|
||||
parse_course_displaylists(section3);
|
||||
func_80295C6C();
|
||||
find_vtx_and_set_colours((uintptr_t) d_course_bowsers_castle_packed_dl_1350, 0x32, 0, 0, 0);
|
||||
find_vtx_and_set_colours(segmented_gfx_to_virtual(0x07001350), 0x32, 0, 0, 0);
|
||||
D_8015F8E4 = -50.0f;
|
||||
break;
|
||||
case COURSE_BANSHEE_BOARDWALK:
|
||||
@@ -1516,10 +1523,10 @@ void func_80295D88(void) {
|
||||
D_801625EC = 0;
|
||||
D_801625F4 = 0;
|
||||
D_801625F0 = 0;
|
||||
parse_course_displaylists((uintptr_t) d_course_banshee_boardwalk_track_sections);
|
||||
TrackSectionsI *section4 = (TrackSectionsI *) LOAD_ASSET(d_course_banshee_boardwalk_track_sections);
|
||||
parse_course_displaylists(section4);
|
||||
func_80295C6C();
|
||||
find_vtx_and_set_colours((uintptr_t) d_course_banshee_boardwalk_packed_dl_878, 128, 0, 0,
|
||||
0);
|
||||
find_vtx_and_set_colours(segmented_gfx_to_virtual(0x07000878), 128, 0, 0, 0);
|
||||
D_8015F8E4 = -80.0f;
|
||||
break;
|
||||
case COURSE_YOSHI_VALLEY:
|
||||
@@ -1529,7 +1536,8 @@ void func_80295D88(void) {
|
||||
D_8015F8E4 = gCourseMinY - 10.0f;
|
||||
break;
|
||||
case COURSE_FRAPPE_SNOWLAND:
|
||||
parse_course_displaylists((uintptr_t) d_course_frappe_snowland_addr);
|
||||
TrackSectionsI *section5 = (TrackSectionsI *) LOAD_ASSET(d_course_frappe_snowland_addr);
|
||||
parse_course_displaylists(section5);
|
||||
func_80295C6C();
|
||||
D_8015F8E4 = -50.0f;
|
||||
break;
|
||||
@@ -1569,7 +1577,8 @@ void func_80295D88(void) {
|
||||
D_801625F0 = 4;
|
||||
D_802B87B0 = 993;
|
||||
D_802B87B4 = 1000;
|
||||
parse_course_displaylists((uintptr_t) d_course_toads_turnpike_addr);
|
||||
TrackSectionsI *section10 = (TrackSectionsI *) LOAD_ASSET(d_course_toads_turnpike_addr);
|
||||
parse_course_displaylists(section10);
|
||||
func_80295C6C();
|
||||
D_8015F8E4 = gCourseMinY - 10.0f;
|
||||
break;
|
||||
@@ -1605,25 +1614,26 @@ void func_80295D88(void) {
|
||||
}
|
||||
break;
|
||||
case COURSE_WARIO_STADIUM:
|
||||
parse_course_displaylists((uintptr_t) d_course_wario_stadium_addr);
|
||||
TrackSectionsI *sectionXIV = (TrackSectionsI *) LOAD_ASSET(d_course_wario_stadium_addr);
|
||||
parse_course_displaylists(sectionXIV);
|
||||
func_80295C6C();
|
||||
D_8015F8E4 = gCourseMinY - 10.0f;
|
||||
// d_course_wario_stadium_packed_dl_C50
|
||||
find_vtx_and_set_colours((uintptr_t)0x07000C50, 100, 255, 255, 255);
|
||||
find_vtx_and_set_colours(segmented_gfx_to_virtual(0x07000C50), 100, 255, 255, 255);
|
||||
// d_course_wario_stadium_packed_dl_BD8
|
||||
find_vtx_and_set_colours((uintptr_t)0x07000BD8, 100, 255, 255, 255);
|
||||
find_vtx_and_set_colours(segmented_gfx_to_virtual(0x07000BD8), 100, 255, 255, 255);
|
||||
// d_course_wario_stadium_packed_dl_B60
|
||||
find_vtx_and_set_colours((uintptr_t)0x07000B60, 100, 255, 255, 255);
|
||||
find_vtx_and_set_colours(segmented_gfx_to_virtual(0x07000B60), 100, 255, 255, 255);
|
||||
// d_course_wario_stadium_packed_dl_AE8
|
||||
find_vtx_and_set_colours((uintptr_t)0x07000AE8, 100, 255, 255, 255);
|
||||
find_vtx_and_set_colours(segmented_gfx_to_virtual(0x07000AE8), 100, 255, 255, 255);
|
||||
// d_course_wario_stadium_packed_dl_CC8
|
||||
find_vtx_and_set_colours((uintptr_t)0x07000CC8, 100, 255, 255, 255);
|
||||
find_vtx_and_set_colours(segmented_gfx_to_virtual(0x07000CC8), 100, 255, 255, 255);
|
||||
// d_course_wario_stadium_packed_dl_D50
|
||||
find_vtx_and_set_colours((uintptr_t)0x07000D50, 100, 255, 255, 255);
|
||||
find_vtx_and_set_colours(segmented_gfx_to_virtual(0x07000D50), 100, 255, 255, 255);
|
||||
// d_course_wario_stadium_packed_dl_DD0
|
||||
find_vtx_and_set_colours((uintptr_t)0x07000DD0, 100, 255, 255, 255);
|
||||
find_vtx_and_set_colours(segmented_gfx_to_virtual(0x07000DD0), 100, 255, 255, 255);
|
||||
// d_course_wario_stadium_packed_dl_E48
|
||||
find_vtx_and_set_colours((uintptr_t)0x07000E48, 100, 255, 255, 255);
|
||||
find_vtx_and_set_colours(segmented_gfx_to_virtual(0x07000E48), 100, 255, 255, 255);
|
||||
break;
|
||||
case COURSE_BLOCK_FORT:
|
||||
// d_course_block_fort_packed_dl_15C0
|
||||
@@ -1691,9 +1701,9 @@ void func_802966A0(void) {
|
||||
}
|
||||
// waterfall animation
|
||||
// d_course_koopa_troopa_beach_packed_dl_9D58
|
||||
find_and_set_tile_size((uintptr_t)0x07009D58, 0, D_802B87BC);
|
||||
find_and_set_tile_size(segmented_gfx_to_virtual(0x07009D58), 0, D_802B87BC);
|
||||
// d_course_koopa_troopa_beach_packed_dl_9CD0
|
||||
find_and_set_tile_size((uintptr_t)0x07009CD0, 0, D_802B87C4);
|
||||
find_and_set_tile_size(segmented_gfx_to_virtual(0x07009CD0), 0, D_802B87C4);
|
||||
D_802B87CC = random_int(300) / 40;
|
||||
if (D_802B87C8 < 0) {
|
||||
D_802B87C8 = random_int(300) / 40;
|
||||
@@ -1702,7 +1712,7 @@ void func_802966A0(void) {
|
||||
}
|
||||
// Waterfall bubbling effect? (unused)
|
||||
// d_course_koopa_troopa_beach_packed_dl_2E8
|
||||
find_and_set_tile_size((uintptr_t)0x070002E8, D_802B87C8, D_802B87CC);
|
||||
find_and_set_tile_size(segmented_gfx_to_virtual(0x070002E8), D_802B87C8, D_802B87CC);
|
||||
break;
|
||||
case COURSE_BANSHEE_BOARDWALK:
|
||||
D_802B87BC++;
|
||||
@@ -1710,7 +1720,7 @@ void func_802966A0(void) {
|
||||
if (D_802B87BC >= 0x100) {
|
||||
D_802B87BC = 0;
|
||||
}
|
||||
find_and_set_tile_size((uintptr_t)d_course_banshee_boardwalk_dl_B278, 0, D_802B87BC);
|
||||
find_and_set_tile_size((uintptr_t) LOAD_ASSET(d_course_banshee_boardwalk_dl_B278), 0, D_802B87BC);
|
||||
break;
|
||||
case COURSE_ROYAL_RACEWAY:
|
||||
D_802B87BC -= 20;
|
||||
|
||||
+123
-49
@@ -39,6 +39,73 @@
|
||||
#include <assets/some_data.h>
|
||||
#include <assets/luigi_raceway_data.h>
|
||||
#include <assets/moo_moo_farm_data.h>
|
||||
#include <assets/bowsers_castle_data.h>
|
||||
#include <assets/frappe_snowland_data.h>
|
||||
|
||||
Lights1 D_800E45C0[] = {
|
||||
gdSPDefLights1(
|
||||
100, 0, 0,
|
||||
100, 0, 0, 0, -120, 0
|
||||
),
|
||||
gdSPDefLights1(
|
||||
100, 100, 0,
|
||||
255, 255, 0, 0, -120, 0
|
||||
),
|
||||
gdSPDefLights1(
|
||||
100, 100, 100,
|
||||
255, 255, 255, 0, -120, 0
|
||||
),
|
||||
gdSPDefLights1(
|
||||
100, 0, 0,
|
||||
100, 0, 0, 0, -120, 0
|
||||
),
|
||||
};
|
||||
|
||||
Lights1 D_800E4620 = gdSPDefLights1(
|
||||
150, 180, 250,
|
||||
255, 255, 255, 0, 0, 0
|
||||
);
|
||||
|
||||
Lights1 D_800E4638 = gdSPDefLights1(
|
||||
85, 85, 85,
|
||||
255, 255, 255, 0, -120, 0
|
||||
);
|
||||
|
||||
Lights1 D_800E4650 = gdSPDefLights1(
|
||||
85, 85, 0,
|
||||
255, 255, 0, 0, 120, 0
|
||||
);
|
||||
|
||||
Lights1 D_800E4668 = gdSPDefLights1(
|
||||
85, 85, 85,
|
||||
255, 255, 255, -66, 82, -55
|
||||
);
|
||||
|
||||
Lights1 D_800E4680 = gdSPDefLights1(
|
||||
85, 85, 85,
|
||||
255, 255, 255, 0, 0, 120
|
||||
);
|
||||
|
||||
Lights1 D_800E4698 = gdSPDefLights1(
|
||||
85, 85, 85,
|
||||
255, 255, 255, 0, 0, 120
|
||||
);
|
||||
|
||||
Lights1 D_800E46B0 = gdSPDefLights1(
|
||||
85, 85, 85,
|
||||
255, 255, 255, 0, 0, 120
|
||||
);
|
||||
|
||||
Lights1 D_800E46C8 = gdSPDefLights1(
|
||||
85, 85, 85,
|
||||
255, 255, 255, 0, 0, 120
|
||||
);
|
||||
|
||||
Lights1 D_800E46E0 = gdSPDefLights1(
|
||||
85, 85, 85,
|
||||
255, 255, 255, 0, 0, 120
|
||||
);
|
||||
|
||||
|
||||
void func_800431B0(Vec3f pos, Vec3su orientation, f32 scale, Vtx *vtx) {
|
||||
rsp_set_matrix_transformation(pos, orientation, scale);
|
||||
@@ -3090,15 +3157,15 @@ void func_80052080(void) {
|
||||
|
||||
|
||||
void func_800520C0(s32 arg0) {
|
||||
Lights1 *D_800E45C0l = LOAD_ASSET(D_800E45C0);
|
||||
//Lights1 *D_800E45C0 = LOAD_ASSET(D_800E45C0);
|
||||
if (gObjectList[arg0].unk_0D5 == 0) {
|
||||
D_800E45C0l[0].l[0].l.dir[0] = D_800E45C0l[1].l[0].l.dir[0] = D_800E45C0l[2].l[0].l.dir[0] = D_800E45C0l[3].l[0].l.dir[0] = 0;
|
||||
D_800E45C0l[0].l[0].l.dir[1] = D_800E45C0l[1].l[0].l.dir[1] = D_800E45C0l[2].l[0].l.dir[1] = D_800E45C0l[3].l[0].l.dir[1] = -0x78;
|
||||
D_800E45C0l[0].l[0].l.dir[2] = D_800E45C0l[1].l[0].l.dir[2] = D_800E45C0l[2].l[0].l.dir[2] = D_800E45C0l[3].l[0].l.dir[2] = 0;
|
||||
D_800E45C0[0].l[0].l.dir[0] = D_800E45C0[1].l[0].l.dir[0] = D_800E45C0[2].l[0].l.dir[0] = D_800E45C0[3].l[0].l.dir[0] = 0;
|
||||
D_800E45C0[0].l[0].l.dir[1] = D_800E45C0[1].l[0].l.dir[1] = D_800E45C0[2].l[0].l.dir[1] = D_800E45C0[3].l[0].l.dir[1] = -0x78;
|
||||
D_800E45C0[0].l[0].l.dir[2] = D_800E45C0[1].l[0].l.dir[2] = D_800E45C0[2].l[0].l.dir[2] = D_800E45C0[3].l[0].l.dir[2] = 0;
|
||||
} else {
|
||||
D_800E45C0l[0].l[0].l.dir[0] = D_800E45C0l[1].l[0].l.dir[0] = D_800E45C0l[2].l[0].l.dir[0] = D_800E45C0l[3].l[0].l.dir[0] = 0x63;
|
||||
D_800E45C0l[0].l[0].l.dir[1] = D_800E45C0l[1].l[0].l.dir[1] = D_800E45C0l[2].l[0].l.dir[1] = D_800E45C0l[3].l[0].l.dir[1] = 0x42;
|
||||
D_800E45C0l[0].l[0].l.dir[2] = D_800E45C0l[1].l[0].l.dir[2] = D_800E45C0l[2].l[0].l.dir[2] = D_800E45C0l[3].l[0].l.dir[2] = 0;
|
||||
D_800E45C0[0].l[0].l.dir[0] = D_800E45C0[1].l[0].l.dir[0] = D_800E45C0[2].l[0].l.dir[0] = D_800E45C0[3].l[0].l.dir[0] = 0x63;
|
||||
D_800E45C0[0].l[0].l.dir[1] = D_800E45C0[1].l[0].l.dir[1] = D_800E45C0[2].l[0].l.dir[1] = D_800E45C0[3].l[0].l.dir[1] = 0x42;
|
||||
D_800E45C0[0].l[0].l.dir[2] = D_800E45C0[1].l[0].l.dir[2] = D_800E45C0[2].l[0].l.dir[2] = D_800E45C0[3].l[0].l.dir[2] = 0;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3226,15 +3293,15 @@ void func_800528EC(s32 arg0) {
|
||||
s32 var_s3;
|
||||
s32 objectIndex;
|
||||
Object *object;
|
||||
Lights1 D_800E4620l = *(Lights1 *) LOAD_ASSET(D_800E4620);
|
||||
//Lights1 D_800E4620l = *(Lights1 *) LOAD_ASSET(D_800E4620);
|
||||
|
||||
D_80183E80[0] = D_8016582C[0];
|
||||
D_80183E80[1] = D_8016582C[1];
|
||||
D_80183E80[2] = D_8016582C[2];
|
||||
gSPDisplayList(gDisplayListHead++, D_0D007B00);
|
||||
gSPNumLights(gDisplayListHead++, 1);
|
||||
gSPLight(gDisplayListHead++, &D_800E4620l.l[0], LIGHT_1);
|
||||
gSPLight(gDisplayListHead++, &D_800E4620l.a, LIGHT_2);
|
||||
gSPLight(gDisplayListHead++, &D_800E4620.l[0], LIGHT_1);
|
||||
gSPLight(gDisplayListHead++, &D_800E4620.a, LIGHT_2);
|
||||
gDPSetCombineMode(gDisplayListHead++, G_CC_MODULATEIA, G_CC_MODULATEIA);
|
||||
gSPClearGeometryMode(gDisplayListHead++, G_CULL_BOTH);
|
||||
gSPSetGeometryMode(gDisplayListHead++, G_SHADE | G_LIGHTING | G_SHADING_SMOOTH);
|
||||
@@ -3272,12 +3339,12 @@ void func_800528EC(s32 arg0) {
|
||||
void render_ice_block(s32 arg0) {
|
||||
s32 playerId;
|
||||
s32 objectIndex;
|
||||
Lights1 D_800E4620l = *(Lights1 *) LOAD_ASSET(D_800E4620);
|
||||
D_800E4620l.l[0].l.dir[0] = D_80165840[0];
|
||||
D_800E4620l.l[0].l.dir[1] = D_80165840[1];
|
||||
D_800E4620l.l[0].l.dir[2] = D_80165840[2];
|
||||
gSPLight(gDisplayListHead++, &D_800E4620l.l[0], LIGHT_1);
|
||||
gSPLight(gDisplayListHead++, &D_800E4620l.a, LIGHT_2);
|
||||
//Lights1 D_800E4620l = *(Lights1 *) LOAD_ASSET(D_800E4620);
|
||||
D_800E4620.l[0].l.dir[0] = D_80165840[0];
|
||||
D_800E4620.l[0].l.dir[1] = D_80165840[1];
|
||||
D_800E4620.l[0].l.dir[2] = D_80165840[2];
|
||||
gSPLight(gDisplayListHead++, &D_800E4620.l[0], LIGHT_1);
|
||||
gSPLight(gDisplayListHead++, &D_800E4620.a, LIGHT_2);
|
||||
for (playerId = 0; playerId < gPlayerCountSelection1; playerId++) {
|
||||
objectIndex = gIndexLakituList[playerId];
|
||||
if (objectIndex) {}
|
||||
@@ -3305,12 +3372,12 @@ void func_80052D70(s32 playerId) {
|
||||
|
||||
void func_80052E30(UNUSED s32 arg0) {
|
||||
s32 var_s0;
|
||||
Lights1 D_800E4620l = *(Lights1 *) LOAD_ASSET(D_800E4620);
|
||||
D_800E4620l.l[0].l.dir[0] = D_80165840[0];
|
||||
D_800E4620l.l[0].l.dir[1] = D_80165840[1];
|
||||
D_800E4620l.l[0].l.dir[2] = D_80165840[2];
|
||||
gSPLight(gDisplayListHead++, &D_800E4620l.l[0], LIGHT_1);
|
||||
gSPLight(gDisplayListHead++, &D_800E4620l.a, LIGHT_2);
|
||||
//Lights1 D_800E4620l = *(Lights1 *) LOAD_ASSET(D_800E4620);
|
||||
D_800E4620.l[0].l.dir[0] = D_80165840[0];
|
||||
D_800E4620.l[0].l.dir[1] = D_80165840[1];
|
||||
D_800E4620.l[0].l.dir[2] = D_80165840[2];
|
||||
gSPLight(gDisplayListHead++, &D_800E4620.l[0], LIGHT_1);
|
||||
gSPLight(gDisplayListHead++, &D_800E4620.a, LIGHT_2);
|
||||
D_80183E80[0] = 0;
|
||||
D_80183E80[1] = 0;
|
||||
D_80183E80[2] = 0;
|
||||
@@ -3416,42 +3483,42 @@ void render_lakitu(s32 cameraId) {
|
||||
|
||||
void func_800534A4(UNUSED s32 arg0) {
|
||||
func_800419F8();
|
||||
Lights1 D_800E4638l = *(Lights1 *) LOAD_ASSET(D_800E4638);
|
||||
D_800E4638l.l[0].l.dir[0] = D_80165840[0];
|
||||
D_800E4638l.l[0].l.dir[1] = D_80165840[1];
|
||||
D_800E4638l.l[0].l.dir[2] = D_80165840[2];
|
||||
//Lights1 *D_800E4638l = (Lights1 *) LOAD_ASSET(D_800E4638);
|
||||
D_800E4638.l[0].l.dir[0] = D_80165840[0];
|
||||
D_800E4638.l[0].l.dir[1] = D_80165840[1];
|
||||
D_800E4638.l[0].l.dir[2] = D_80165840[2];
|
||||
}
|
||||
|
||||
void func_800534E8(s32 objectIndex) {
|
||||
|
||||
Lights1 D_800E4638l = *(Lights1 *) LOAD_ASSET(D_800E4638);
|
||||
Lights1 D_800E4650l = *(Lights1 *) LOAD_ASSET(D_800E4650);
|
||||
Lights1 D_800E4668l = *(Lights1 *) LOAD_ASSET(D_800E4668);
|
||||
Lights1 D_800E4680l = *(Lights1 *) LOAD_ASSET(D_800E4680);
|
||||
Lights1 D_800E4698l = *(Lights1 *) LOAD_ASSET(D_800E4698);
|
||||
//Lights1 *D_800E4638l = (Lights1 *) LOAD_ASSET(D_800E4638);
|
||||
//Lights1 *D_800E4650l = (Lights1 *) LOAD_ASSET(D_800E4650);
|
||||
//Lights1 *D_800E4668l = (Lights1 *) LOAD_ASSET(D_800E4668);
|
||||
//Lights1 *D_800E4680l = (Lights1 *) LOAD_ASSET(D_800E4680);
|
||||
//Lights1 *D_800E4698l = (Lights1 *) LOAD_ASSET(D_800E4698);
|
||||
|
||||
|
||||
// Why these don't just use `gSPSetLights1` calls...
|
||||
switch (gObjectList[objectIndex].type) { // hmm very strange 80165C18
|
||||
case 0:
|
||||
gSPLight(gDisplayListHead++, &D_800E4638l.l[0], LIGHT_1);
|
||||
gSPLight(gDisplayListHead++, &D_800E4638l.a, LIGHT_2);
|
||||
gSPLight(gDisplayListHead++, &D_800E4638.l[0], LIGHT_1);
|
||||
gSPLight(gDisplayListHead++, &D_800E4638.a, LIGHT_2);
|
||||
break;
|
||||
case 1:
|
||||
gSPLight(gDisplayListHead++, &D_800E4650l.l[0], LIGHT_1);
|
||||
gSPLight(gDisplayListHead++, &D_800E4650l.a, LIGHT_2);
|
||||
gSPLight(gDisplayListHead++, &D_800E4650.l[0], LIGHT_1);
|
||||
gSPLight(gDisplayListHead++, &D_800E4650.a, LIGHT_2);
|
||||
break;
|
||||
case 2:
|
||||
gSPLight(gDisplayListHead++, &D_800E4668l.l[0], LIGHT_1);
|
||||
gSPLight(gDisplayListHead++, &D_800E4668l.a, LIGHT_2);
|
||||
gSPLight(gDisplayListHead++, &D_800E4668.l[0], LIGHT_1);
|
||||
gSPLight(gDisplayListHead++, &D_800E4668.a, LIGHT_2);
|
||||
break;
|
||||
case 3:
|
||||
gSPLight(gDisplayListHead++, &D_800E4680l.l[0], LIGHT_1);
|
||||
gSPLight(gDisplayListHead++, &D_800E4680l.a, LIGHT_2);
|
||||
gSPLight(gDisplayListHead++, &D_800E4680.l[0], LIGHT_1);
|
||||
gSPLight(gDisplayListHead++, &D_800E4680.a, LIGHT_2);
|
||||
break;
|
||||
case 4:
|
||||
gSPLight(gDisplayListHead++, &D_800E4698l.l[0], LIGHT_1);
|
||||
gSPLight(gDisplayListHead++, &D_800E4698l.a, LIGHT_2);
|
||||
gSPLight(gDisplayListHead++, &D_800E4698.l[0], LIGHT_1);
|
||||
gSPLight(gDisplayListHead++, &D_800E4698.a, LIGHT_2);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
@@ -3478,7 +3545,7 @@ void render_object_thwomps(s32 cameraId) {
|
||||
s16 minusone, plusone;
|
||||
Camera *camera;
|
||||
Object *object;
|
||||
Lights1 D_800E4668l = *(Lights1 *) LOAD_ASSET(D_800E4668);
|
||||
//Lights1 *D_800E4668l = (Lights1 *) LOAD_ASSET(D_800E4668);
|
||||
|
||||
camera = &camera1[cameraId];
|
||||
if (cameraId == PLAYER_ONE) {
|
||||
@@ -3505,8 +3572,8 @@ void render_object_thwomps(s32 cameraId) {
|
||||
gSPDisplayList(gDisplayListHead++, D_0D0079C8);
|
||||
gDPSetCombineMode(gDisplayListHead++, G_CC_MODULATEIA, G_CC_MODULATEIA);
|
||||
gSPNumLights(gDisplayListHead++, 1);
|
||||
gSPLight(gDisplayListHead++, &D_800E4668l.l[0], LIGHT_1);
|
||||
gSPLight(gDisplayListHead++, &D_800E4668l.a, LIGHT_2);
|
||||
gSPLight(gDisplayListHead++, &D_800E4668.l[0], LIGHT_1);
|
||||
gSPLight(gDisplayListHead++, &D_800E4668.a, LIGHT_2);
|
||||
gSPClearGeometryMode(gDisplayListHead++, G_CULL_BOTH);
|
||||
gSPSetGeometryMode(gDisplayListHead++, G_SHADE | G_LIGHTING | G_SHADING_SMOOTH);
|
||||
load_texture_block_rgba16_mirror(d_course_bowsers_castle_thwomp_side, 0x00000020, 0x00000020);
|
||||
@@ -4199,13 +4266,20 @@ void render_object_neon(s32 cameraId) {
|
||||
}
|
||||
}
|
||||
|
||||
Vec3iu D_800E46F8A[] = {
|
||||
{255, 255, 255}, {255, 255, 0}, {255, 0, 0},
|
||||
};
|
||||
u8 D_800E471CA[] = {
|
||||
0, 1, 2, 3, 2, 1, 0,
|
||||
};
|
||||
|
||||
void func_800562E4(s32 arg0, s32 arg1, s32 arg2) {
|
||||
|
||||
Vec3iu *A_800E46F8 = LOAD_ASSET(D_800E46F8);
|
||||
//Vec3iu *A_800E46F8 = LOAD_ASSET(D_800E46F8);
|
||||
|
||||
D_80165860 = A_800E46F8[arg0][0];
|
||||
D_8016586C = A_800E46F8[arg0][1];
|
||||
D_80165878 = A_800E46F8[arg0][2];
|
||||
D_80165860 = D_800E46F8A[arg0][0];
|
||||
D_8016586C = D_800E46F8A[arg0][1];
|
||||
D_80165878 = D_800E46F8A[arg0][2];
|
||||
func_8004B138(D_80165860, D_8016586C, D_80165878, arg2);
|
||||
rsp_set_matrix_transformation(D_80183E40, D_80183E80, 0.2f);
|
||||
func_80044BF8(common_texture_particle_spark[arg1], 32, 32);
|
||||
@@ -4335,7 +4409,7 @@ void func_80056BF0(s32 bombIndex) {
|
||||
BombKart sp40 = gBombKarts[bombIndex];
|
||||
|
||||
temp_v0 = D_801655CC % 6U;
|
||||
thing = D_800E471C[temp_v0];
|
||||
thing = D_800E471CA[temp_v0];
|
||||
bombFrame = common_texture_bomb[thing];
|
||||
D_80183E40[0] = sp40.bombPos[0];
|
||||
D_80183E40[1] = sp40.bombPos[1] + 1.0;
|
||||
|
||||
@@ -449,6 +449,4 @@ extern u8* D_8018D4C0;
|
||||
|
||||
extern u8 *gPortraitTextures[];
|
||||
|
||||
extern u8 d_course_bowsers_castle_thwomp_tlut[]; // Some type of pallette?
|
||||
|
||||
#endif
|
||||
|
||||
+20
-9
@@ -37,6 +37,9 @@
|
||||
#include "memory.h"
|
||||
#include <assets/luigi_raceway_data.h>
|
||||
#include <assets/moo_moo_farm_data.h>
|
||||
#include <assets/bowsers_castle_data.h>
|
||||
#include <assets/frappe_snowland_data.h>
|
||||
#include <assets/boo_frames.h>
|
||||
|
||||
//! @todo unused?
|
||||
f32 D_800E43B0[] = {
|
||||
@@ -4397,7 +4400,7 @@ void func_8007C550(s32 objectIndex) {
|
||||
void func_8007C5B4(s32 objectIndex) {
|
||||
Object *object;
|
||||
|
||||
init_texture_object(objectIndex, d_course_banshee_boardwalk_boo_tlut, D_80165880, 48, 40);
|
||||
init_texture_object(objectIndex, d_course_banshee_boardwalk_boo_tlut, gTextureGhosts, 48, 40);
|
||||
object = &gObjectList[objectIndex];
|
||||
object->pos[0] = 0.0f;
|
||||
object->pos[1] = 0.0f;
|
||||
@@ -7001,12 +7004,16 @@ void func_8008379C(s32 objectIndex) {
|
||||
gObjectList[objectIndex].orientation[2] += gObjectList[objectIndex].primAlpha;
|
||||
}
|
||||
|
||||
static const char*sSnowmanHeadList[] = {
|
||||
d_course_frappe_snowland_snowman_head
|
||||
};
|
||||
|
||||
void func_80083868(s32 objectIndex) {
|
||||
Object *object;
|
||||
|
||||
init_texture_object(objectIndex, d_course_frappe_snowland_snowman_tlut, d_course_frappe_snowland_snowman_head, 0x40U, (u16) 0x00000040);
|
||||
Vtx *vtx = (Vtx *) LOAD_ASSET(D_0D0061B0);
|
||||
init_texture_object(objectIndex, d_course_frappe_snowland_snowman_tlut, sSnowmanHeadList, 0x40U, (u16) 0x00000040);
|
||||
object = &gObjectList[objectIndex];
|
||||
object->vertex = D_0D0061B0;
|
||||
object->vertex = vtx;
|
||||
object->sizeScaling = 0.1f;
|
||||
object->itemDisplay = 0;
|
||||
func_80072488(objectIndex);
|
||||
@@ -7056,7 +7063,7 @@ void func_80083A94(s32 objectIndex) {
|
||||
switch (gObjectList[objectIndex].state) {
|
||||
case 0:
|
||||
break;
|
||||
case 1:
|
||||
case 1: // snowman head
|
||||
func_80083868(objectIndex);
|
||||
break;
|
||||
}
|
||||
@@ -7066,9 +7073,13 @@ void func_80083A94(s32 objectIndex) {
|
||||
func_80083948(objectIndex);
|
||||
}
|
||||
|
||||
static const char*sSnowmanBodyList[] = {
|
||||
d_course_frappe_snowland_snowman_body
|
||||
};
|
||||
|
||||
void func_80083B0C(s32 objectIndex) {
|
||||
Vtx *vtx = (Vtx *) LOAD_ASSET(common_vtx_hedgehog);
|
||||
init_texture_object(objectIndex, d_course_frappe_snowland_snowman_tlut, d_course_frappe_snowland_snowman_body, 0x40U, (u16) 0x00000040);
|
||||
init_texture_object(objectIndex, d_course_frappe_snowland_snowman_tlut, sSnowmanBodyList, 0x40U, (u16) 0x00000040);
|
||||
gObjectList[objectIndex].vertex = vtx;
|
||||
gObjectList[objectIndex].sizeScaling = 0.1f;
|
||||
gObjectList[objectIndex].itemDisplay = 0;
|
||||
@@ -7093,7 +7104,7 @@ void func_80083C04(s32 objectIndex) {
|
||||
switch (object->state) {
|
||||
case 0:
|
||||
break;
|
||||
case 1:
|
||||
case 1: // snowmanbody
|
||||
func_80083B0C(objectIndex);
|
||||
break;
|
||||
case 2:
|
||||
@@ -7148,8 +7159,8 @@ void update_snowmen(void) {
|
||||
for (var_s0 = 0; var_s0 < NUM_SNOWMEN; var_s0++) {
|
||||
var_s4 = indexObjectList1[var_s0];
|
||||
var_s3 = indexObjectList2[var_s0];
|
||||
func_80083A94(var_s3);
|
||||
func_80083C04(var_s4);
|
||||
func_80083A94(var_s3); // snowman head
|
||||
func_80083C04(var_s4); // snowman body
|
||||
if (is_obj_index_flag_status_inactive(var_s4, 0x00001000) != 0) {
|
||||
object = &gObjectList[var_s4];
|
||||
if ((func_8008A8B0(object->unk_0D5 - 1, object->unk_0D5 + 1) != 0) && (func_80089B50(var_s4) != 0)) {
|
||||
|
||||
Reference in New Issue
Block a user