mirror of
https://github.com/HarbourMasters/SpaghettiKart
synced 2026-07-11 15:29:16 -04:00
+7
-7
@@ -15,7 +15,7 @@
|
||||
#include "code_80005FD0.h"
|
||||
#include "code_80071F00.h"
|
||||
#include "code_8008C1D0.h"
|
||||
#include "code_802AAA70.h"
|
||||
#include "collision.h"
|
||||
#include <sounds.h>
|
||||
#include "audio/external.h"
|
||||
#include "common_textures.h"
|
||||
@@ -342,7 +342,7 @@ void func_802976D8(Vec3s arg0) {
|
||||
arg0[2] = 0;
|
||||
}
|
||||
|
||||
void func_802976EC(UnkActorInner *arg0, Vec3s arg1) {
|
||||
void func_802976EC(Collision *arg0, Vec3s arg1) {
|
||||
f32 x, y, z;
|
||||
|
||||
if (arg0->unk34 == 0) {
|
||||
@@ -498,7 +498,7 @@ void update_obj_kiwano_fruit(struct KiwanoFruit *fruit) {
|
||||
}
|
||||
switch (fruit->state) { /* irregular */
|
||||
case 0:
|
||||
if ((func_802ABD10(player->unk_110.unk3A) & 0xFF) != 8) {
|
||||
if ((get_surface_type(player->unk_110.unk3A) & 0xFF) != 8) {
|
||||
return;
|
||||
}
|
||||
fruit->state = 1;
|
||||
@@ -838,7 +838,7 @@ void func_80298C94(void) {
|
||||
|
||||
for (index = 0; index < 4; index++){
|
||||
// wtf is up with the << 0x18 >> 0x18? is it some weird type conversion?
|
||||
if (((gPlayers[index].unk_000 & 0xC000) != 0) && (((func_802ABD10(gPlayers[index].unk_110.unk3A) << 0x18) >> 0x18) == 8)) {
|
||||
if (((gPlayers[index].unk_000 & 0xC000) != 0) && (((get_surface_type(gPlayers[index].unk_110.unk3A) << 0x18) >> 0x18) == 8)) {
|
||||
func_80298AC0(&gPlayers[index]);
|
||||
}
|
||||
}
|
||||
@@ -1973,8 +1973,8 @@ void place_palm_trees(struct ActorSpawnData *spawnData) {
|
||||
temp_v1 = (struct PalmTree *) &gActorList[temp];
|
||||
|
||||
temp_v1->visibilityStates[0] = temp_s0->someId;
|
||||
func_802ADDC8((UnkActorInner *) &temp_v1->unk30, 5.0f, temp_v1->pos[0], temp_v1->pos[1], temp_v1->pos[2]);
|
||||
func_802976EC((UnkActorInner *) &temp_v1->unk30, temp_v1->unk10);
|
||||
func_802ADDC8((Collision *) &temp_v1->unk30, 5.0f, temp_v1->pos[0], temp_v1->pos[1], temp_v1->pos[2]);
|
||||
func_802976EC((Collision *) &temp_v1->unk30, temp_v1->unk10);
|
||||
temp_s0++;
|
||||
}
|
||||
}
|
||||
@@ -2014,7 +2014,7 @@ void place_falling_rocks(struct ActorSpawnData *spawnData) {
|
||||
temp_v1 = (struct FallingRock *) &gActorList[temp];
|
||||
|
||||
temp_v1->unk_06 = temp_s0->someId;
|
||||
func_802AAAAC((UnkActorInner *) &temp_v1->unk30);
|
||||
func_802AAAAC((Collision *) &temp_v1->unk30);
|
||||
temp_s0++;
|
||||
}
|
||||
}
|
||||
|
||||
+1
-1
@@ -12,7 +12,7 @@ void func_802972B8(Camera*, struct Actor*);
|
||||
void func_80297340(Camera*);
|
||||
void func_80297524(uintptr_t, s32, s32);
|
||||
void func_802976D8(Vec3s);
|
||||
void func_802976EC(UnkActorInner*, Vec3s);
|
||||
void func_802976EC(Collision*, Vec3s);
|
||||
void func_80297760(struct Actor*, Vec3f);
|
||||
void func_802977B0(Player*);
|
||||
void func_802977E4(Player*);
|
||||
|
||||
@@ -7,14 +7,14 @@
|
||||
#include "waypoints.h"
|
||||
#include "code_80005FD0.h"
|
||||
#include "code_80091750.h"
|
||||
#include "code_802AAA70.h"
|
||||
#include "collision.h"
|
||||
#include "actors.h"
|
||||
#include "actors_extended.h"
|
||||
#include "audio/external.h"
|
||||
#include "code_80071F00.h"
|
||||
#include "code_8008C1D0.h"
|
||||
|
||||
void func_802B0210(UnkActorInner *arg0, UnkActorInner *arg1) {
|
||||
void func_802B0210(Collision *arg0, Collision *arg1) {
|
||||
arg1->unk30 = arg0->unk30;
|
||||
arg1->unk32 = arg0->unk32;
|
||||
arg1->unk34 = arg0->unk34;
|
||||
@@ -1241,7 +1241,7 @@ void update_obj_green_shell(struct ShellActor *shell) {
|
||||
func_802AD950(&shell->unk30, 4.0f, shell->pos[0], shell->pos[1], shell->pos[2], somePos2[0], somePos2[1], somePos2[2]);
|
||||
func_802B4E30((struct Actor *) shell);
|
||||
if ((shell->unk30.unk3C[0] < 0.0f) || (shell->unk30.unk3C[1] < 0.0f)) {
|
||||
func_802AC098(&shell->unk30, shell->velocity);
|
||||
shell_collision(&shell->unk30, shell->velocity);
|
||||
func_800C98B8(shell->pos, shell->velocity, 0x19008054U);
|
||||
shell->flags |= 0x80;
|
||||
}
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
#include "common_structs.h"
|
||||
#include "actor_types.h"
|
||||
|
||||
void func_802B0210(UnkActorInner*, UnkActorInner*);
|
||||
void func_802B0210(Collision*, Collision*);
|
||||
void func_802B02B4(struct ShellActor*, s32);
|
||||
void func_802B039C(struct BananaActor*);
|
||||
void func_802B0464(s16);
|
||||
|
||||
@@ -24,8 +24,6 @@ extern OSMesg D_80194028[];
|
||||
extern OSMesg D_80194038[];
|
||||
extern OSMesg D_8019403C[];
|
||||
|
||||
extern u8 D_800EA3A0[];
|
||||
extern u8 D_800EA3A4[];
|
||||
extern OSMesgQueue *D_800EA3A8;
|
||||
extern OSMesgQueue *D_800EA3AC;
|
||||
extern OSMesgQueue *D_800EA3B0;
|
||||
|
||||
+1
-1
@@ -8,7 +8,7 @@
|
||||
#include "waypoints.h"
|
||||
#include "variables.h"
|
||||
#include "code_8001F980.h"
|
||||
#include "code_802AAA70.h"
|
||||
#include "collision.h"
|
||||
#include "code_80057C60.h"
|
||||
#include "code_80005FD0.h"
|
||||
#include "main.h"
|
||||
|
||||
+1
-1
@@ -37,7 +37,7 @@ typedef struct {
|
||||
/* 0x48 */ s32 unk_48;
|
||||
/* 0x4C */ s32 unk_4C;
|
||||
/* 0x50 */ s32 unk_50;
|
||||
/* 0x54 */ UnkActorInner unk_54;
|
||||
/* 0x54 */ Collision unk_54;
|
||||
// When you hit a wall (or another driver) the camera's pos and lookAt bounce up and down. This is the velocity(?) of that bouncing
|
||||
/* 0x94 */ UnkCameraInner unk_94;
|
||||
// Timer for wall-hit bounce. Counts up instead of down
|
||||
|
||||
+17
-17
@@ -10,7 +10,7 @@
|
||||
#include "audio/external.h"
|
||||
#include "code_800029B0.h"
|
||||
#include <defines.h>
|
||||
#include "code_802AAA70.h"
|
||||
#include "collision.h"
|
||||
#include "memory.h"
|
||||
#include "code_80091750.h"
|
||||
#include "skybox_and_splitscreen.h"
|
||||
@@ -230,10 +230,10 @@ void func_80003040(void) {
|
||||
place_segment_06(D_06009570);
|
||||
break;
|
||||
case COURSE_BOWSER_CASTLE:
|
||||
func_802AF8BC(0x7001350, 0x32, 0, 0, 0);
|
||||
find_vtx_and_set_colours(0x7001350, 0x32, 0, 0, 0);
|
||||
break;
|
||||
case COURSE_BANSHEE_BOARDWALK:
|
||||
func_802AF8BC(0x7000878, -0x80, 0, 0, 0);
|
||||
find_vtx_and_set_colours(0x7000878, -0x80, 0, 0, 0);
|
||||
break;
|
||||
case COURSE_YOSHI_VALLEY:
|
||||
vec3f_set(position, -2300.0f, 0.0f, 634.0f);
|
||||
@@ -256,13 +256,13 @@ void func_80003040(void) {
|
||||
place_segment_06(D_06014330);
|
||||
break;
|
||||
case COURSE_SHERBET_LAND:
|
||||
func_802AF8BC(0x7001EB8, -0x4C, 0xFF, 0xFF, 0xFF);
|
||||
func_802AF8BC(0x7002308, -0x6A, 0xFF, 0xFF, 0xFF);
|
||||
find_vtx_and_set_colours(0x7001EB8, -0x4C, 0xFF, 0xFF, 0xFF);
|
||||
find_vtx_and_set_colours(0x7002308, -0x6A, 0xFF, 0xFF, 0xFF);
|
||||
break;
|
||||
case COURSE_RAINBOW_ROAD:
|
||||
func_802AF8BC(0x7002068, -0x6A, 0xFF, 0xFF, 0xFF);
|
||||
func_802AF8BC(0x7001E18, -0x6A, 0xFF, 0xFF, 0xFF);
|
||||
func_802AF8BC(0x7001318, -1, 0xFF, 0xFF, 0);
|
||||
find_vtx_and_set_colours(0x7002068, -0x6A, 0xFF, 0xFF, 0xFF);
|
||||
find_vtx_and_set_colours(0x7001E18, -0x6A, 0xFF, 0xFF, 0xFF);
|
||||
find_vtx_and_set_colours(0x7001318, -1, 0xFF, 0xFF, 0);
|
||||
break;
|
||||
case COURSE_WARIO_STADIUM:
|
||||
vec3f_set(position, -131.0f, 83.0f, 286.0f);
|
||||
@@ -271,17 +271,17 @@ void func_80003040(void) {
|
||||
addActorToEmptySlot(position, rotation, velocity, ACTOR_WARIO_STADIUM_SIGN);
|
||||
vec3f_set(position, -2622.0f, 79.0f, 739.0f);
|
||||
addActorToEmptySlot(position, rotation, velocity, ACTOR_WARIO_STADIUM_SIGN);
|
||||
func_802AF8BC(0x7000C50, 0x64, 0xFF, 0xFF, 0xFF);
|
||||
func_802AF8BC(0x7000BD8, 0x64, 0xFF, 0xFF, 0xFF);
|
||||
func_802AF8BC(0x7000B60, 0x64, 0xFF, 0xFF, 0xFF);
|
||||
func_802AF8BC(0x7000AE8, 0x64, 0xFF, 0xFF, 0xFF);
|
||||
func_802AF8BC(0x7000CC8, 0x64, 0xFF, 0xFF, 0xFF);
|
||||
func_802AF8BC(0x7000D50, 0x64, 0xFF, 0xFF, 0xFF);
|
||||
func_802AF8BC(0x7000DD0, 0x64, 0xFF, 0xFF, 0xFF);
|
||||
func_802AF8BC(0x7000E48, 0x64, 0xFF, 0xFF, 0xFF);
|
||||
find_vtx_and_set_colours(0x7000C50, 0x64, 0xFF, 0xFF, 0xFF);
|
||||
find_vtx_and_set_colours(0x7000BD8, 0x64, 0xFF, 0xFF, 0xFF);
|
||||
find_vtx_and_set_colours(0x7000B60, 0x64, 0xFF, 0xFF, 0xFF);
|
||||
find_vtx_and_set_colours(0x7000AE8, 0x64, 0xFF, 0xFF, 0xFF);
|
||||
find_vtx_and_set_colours(0x7000CC8, 0x64, 0xFF, 0xFF, 0xFF);
|
||||
find_vtx_and_set_colours(0x7000D50, 0x64, 0xFF, 0xFF, 0xFF);
|
||||
find_vtx_and_set_colours(0x7000DD0, 0x64, 0xFF, 0xFF, 0xFF);
|
||||
find_vtx_and_set_colours(0x7000E48, 0x64, 0xFF, 0xFF, 0xFF);
|
||||
break;
|
||||
case COURSE_DK_JUNGLE:
|
||||
func_802AF8BC(0x7003FA8, 0x78, 0xFF, 0xFF, 0xFF);
|
||||
find_vtx_and_set_colours(0x7003FA8, 0x78, 0xFF, 0xFF, 0xFF);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
|
||||
+5
-5
@@ -10,7 +10,7 @@
|
||||
#include "code_8001F980.h"
|
||||
#include "code_80027D00.h"
|
||||
#include "code_80071F00.h"
|
||||
#include "code_802AAA70.h"
|
||||
#include "collision.h"
|
||||
#include "variables.h"
|
||||
#include <actor_types.h>
|
||||
#include "vehicles.h"
|
||||
@@ -3095,7 +3095,7 @@ GLOBAL_ASM("asm/non_matchings/code_80005FD0/func_8000D100.s")
|
||||
|
||||
s16 func_8000D24C(f32 posX, f32 posY, f32 posZ, s32 *pathIndex) {
|
||||
UNUSED s32 pad;
|
||||
UnkActorInner sp24;
|
||||
Collision sp24;
|
||||
|
||||
func_802ADDC8(&sp24, 10.0f, posX, posY, posZ);
|
||||
return func_8000C0BC(posX, posY, posZ, func_802ABD40(sp24.unk3A), pathIndex);
|
||||
@@ -3469,7 +3469,7 @@ GLOBAL_ASM("asm/non_matchings/code_80005FD0/func_8000DBAC.s")
|
||||
#endif
|
||||
|
||||
void func_8000DD78(void) {
|
||||
UnkActorInner *var_s2;
|
||||
Collision *var_s2;
|
||||
f32 startingXPos;
|
||||
f32 startingZPos;
|
||||
f32 startingYPos;
|
||||
@@ -3532,7 +3532,7 @@ extern f32 D_80162FB0;
|
||||
extern f32 D_80162FC0;
|
||||
extern s16 D_8016347C;
|
||||
extern s16 D_8016347E;
|
||||
extern ? D_80164038;
|
||||
extern Collision D_80164038;
|
||||
extern u16 D_8016443E;
|
||||
extern s32 D_8016455C;
|
||||
extern u16 D_801645CE;
|
||||
@@ -3558,7 +3558,7 @@ void func_8000DF8C(s32 arg0) {
|
||||
s32 sp48; /* compiler-managed */
|
||||
s32 sp44;
|
||||
Player *var_v0;
|
||||
UnkActorInner *temp_a0_4;
|
||||
Collision *temp_a0_4;
|
||||
f32 temp_f0;
|
||||
f32 temp_f0_2;
|
||||
f32 temp_f0_3;
|
||||
|
||||
+1
-1
@@ -160,7 +160,7 @@ extern s8 D_8018EDF3;
|
||||
extern f32 D_800DCA4C[];
|
||||
|
||||
// See bss_80005FD0.s
|
||||
extern UnkActorInner D_80162E70;
|
||||
extern Collision D_80162E70;
|
||||
extern s16 D_80162EB0;
|
||||
extern u16 D_801631E0[8];
|
||||
extern s32 D_80163488;
|
||||
|
||||
+9
-9
@@ -9,7 +9,7 @@
|
||||
#include "code_8001F980.h"
|
||||
#include "code_80027D00.h"
|
||||
#include "code_8008C1D0.h"
|
||||
#include "code_802AAA70.h"
|
||||
#include "collision.h"
|
||||
#include "waypoints.h"
|
||||
#include "audio/external.h"
|
||||
|
||||
@@ -1016,8 +1016,8 @@ GLOBAL_ASM("asm/non_matchings/code_80027D00/func_8002934C.s")
|
||||
#endif
|
||||
|
||||
#ifdef MIPS_TO_C
|
||||
//generated by m2c commit eefca95b040d7ee0c617bc58f9ac6cd1cf7bce87 on Aug-17-2023
|
||||
? func_802AFA34(Player *, KartBoundingBoxCorner *, f32, f32, f32); /* extern */
|
||||
//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc
|
||||
//s32 process_collision(Player *, KartBoundingBoxCorner *, f32, f32, f32); /* extern */
|
||||
|
||||
void func_80029B4C(Player *player, f32 arg1, f32 arg2, f32 arg3) {
|
||||
f32 sp94;
|
||||
@@ -1071,7 +1071,7 @@ void func_80029B4C(Player *player, f32 arg1, f32 arg2, f32 arg3) {
|
||||
player->boundingBoxCorners[0].cornerPos[0] = sp8C + player->pos[0];
|
||||
player->boundingBoxCorners[0].cornerPos[1] = sp90 + player->pos[1];
|
||||
player->boundingBoxCorners[0].cornerPos[2] = sp94 + player->pos[2];
|
||||
func_802AFA34(player, player->boundingBoxCorners, sp80, sp84, sp88);
|
||||
process_collision(player, player->boundingBoxCorners, sp80, sp84, sp88);
|
||||
temp_f14 = -sp48;
|
||||
temp_f2_2 = (f64) temp_f14;
|
||||
sp8C = (f32) (temp_f2_2 + 3.6);
|
||||
@@ -1086,7 +1086,7 @@ void func_80029B4C(Player *player, f32 arg1, f32 arg2, f32 arg3) {
|
||||
player->boundingBoxCorners[1].cornerPos[0] = sp8C + player->pos[0];
|
||||
player->boundingBoxCorners[1].cornerPos[1] = sp90 + player->pos[1];
|
||||
player->boundingBoxCorners[1].cornerPos[2] = sp94 + player->pos[2];
|
||||
func_802AFA34(player, &player->boundingBoxCorners[1], sp80, sp84, sp88);
|
||||
process_collision(player, &player->boundingBoxCorners[1], sp80, sp84, sp88);
|
||||
temp_f12 = sp34 + 4.0f;
|
||||
sp8C = (f32) (sp38 - 2.6);
|
||||
sp94 = temp_f12;
|
||||
@@ -1099,7 +1099,7 @@ void func_80029B4C(Player *player, f32 arg1, f32 arg2, f32 arg3) {
|
||||
player->boundingBoxCorners[2].cornerPos[0] = sp8C + player->pos[0];
|
||||
player->boundingBoxCorners[2].cornerPos[1] = sp90 + player->pos[1];
|
||||
player->boundingBoxCorners[2].cornerPos[2] = sp94 + player->pos[2];
|
||||
func_802AFA34(player, &player->boundingBoxCorners[2], sp80, sp84, sp88);
|
||||
process_collision(player, &player->boundingBoxCorners[2], sp80, sp84, sp88);
|
||||
sp8C = (f32) (sp28 + 2.6);
|
||||
sp94 = sp40;
|
||||
sp90 = -player->boundingBoxSize;
|
||||
@@ -1110,7 +1110,7 @@ void func_80029B4C(Player *player, f32 arg1, f32 arg2, f32 arg3) {
|
||||
player->boundingBoxCorners[3].cornerPos[0] = sp8C + player->pos[0];
|
||||
player->boundingBoxCorners[3].cornerPos[1] = sp90 + player->pos[1];
|
||||
player->boundingBoxCorners[3].cornerPos[2] = sp94 + player->pos[2];
|
||||
func_802AFA34(player, &player->boundingBoxCorners[3], sp80, sp84, sp88);
|
||||
process_collision(player, &player->boundingBoxCorners[3], sp80, sp84, sp88);
|
||||
if (!(player->unk_0BC & 8)) {
|
||||
move_f32_towards(&player->unk_230, (player->boundingBoxCorners[0].cornerGroundY + player->boundingBoxCorners[2].cornerGroundY) / 2.0f, 0.5f);
|
||||
move_f32_towards(&player->unk_23C, (player->boundingBoxCorners[1].cornerGroundY + player->boundingBoxCorners[3].cornerGroundY) / 2.0f, 0.5f);
|
||||
@@ -1139,7 +1139,7 @@ void func_80029B4C(Player *player, f32 arg1, f32 arg2, f32 arg3) {
|
||||
if (((player->unk_0BC & 8) == 8) && ((player->unk_0CA & 2) == 2)) {
|
||||
player->unk_0C4 = (s16) (s32) player->unk_D9C;
|
||||
}
|
||||
temp_t5 = func_802ABD10(player->unk_110.unk3A) & 0xFF;
|
||||
temp_t5 = get_surface_type(player->unk_110.unk3A) & 0xFF;
|
||||
var_v1 = temp_t5 & 0xFFFF;
|
||||
player->unk_0F8 = temp_t5;
|
||||
if (var_v1 == 0xFE) {
|
||||
@@ -1202,7 +1202,7 @@ void func_8002A194(Player *player, f32 arg1, f32 arg2, f32 arg3) {
|
||||
player->unk_1FC = (player->boundingBoxCorners[1].cornerGroundY + player->boundingBoxCorners[0].cornerGroundY) / 2;
|
||||
player->unk_1F8 = (player->boundingBoxCorners[3].cornerGroundY + player->boundingBoxCorners[2].cornerGroundY) / 2;
|
||||
}
|
||||
player->unk_0F8 = (u8)func_802ABD10(player->unk_110.unk3A);
|
||||
player->unk_0F8 = (u8)get_surface_type(player->unk_110.unk3A);
|
||||
player->boundingBoxCorners[3].surfaceType = player->unk_0F8;
|
||||
player->boundingBoxCorners[2].surfaceType = player->unk_0F8;
|
||||
player->boundingBoxCorners[1].surfaceType = player->unk_0F8;
|
||||
|
||||
+1
-1
@@ -18,7 +18,7 @@
|
||||
#include "sounds.h"
|
||||
#include <actors.h>
|
||||
#include "race_logic.h"
|
||||
#include "code_802AAA70.h"
|
||||
#include "collision.h"
|
||||
#include "code_8008C1D0.h"
|
||||
#include "code_80091440.h"
|
||||
#include "code_80091750.h"
|
||||
|
||||
+1
-1
@@ -9,7 +9,7 @@
|
||||
#include "memory.h"
|
||||
#include "code_80071F00.h"
|
||||
#include "code_80086E70.h"
|
||||
#include "code_802AAA70.h"
|
||||
#include "collision.h"
|
||||
#include "audio/external.h"
|
||||
#include "variables.h"
|
||||
|
||||
|
||||
+1
-1
@@ -165,7 +165,7 @@ extern s32 gPlayerCountSelection1;
|
||||
extern f32 D_80183DA8[];
|
||||
extern f32 D_80183DC8[];
|
||||
extern f32 gVBlankTimer;
|
||||
extern UnkActorInner D_8018C3B0;
|
||||
extern Collision D_8018C3B0;
|
||||
extern Player *gPlayerOne;
|
||||
extern Player *gPlayerOneCopy;
|
||||
extern s16 gCurrentCourseId;
|
||||
|
||||
+1
-1
@@ -4,7 +4,7 @@
|
||||
#include "math_util.h"
|
||||
#include "main.h"
|
||||
#include <actor_types.h>
|
||||
#include "code_802AAA70.h"
|
||||
#include "collision.h"
|
||||
|
||||
void func_80091440(s8 arg0) {
|
||||
if ((gPlayers[arg0].unk_044 & 0x800) == 0) {
|
||||
|
||||
+1
-1
@@ -145,7 +145,7 @@ void load_credits(void) {
|
||||
D_8015F588 = 0;
|
||||
D_800DC5BC = 0;
|
||||
D_800DC5C8 = 0;
|
||||
D_8015F580 = (mk64_surface_map_ram *) gNextFreeMemoryAddress;
|
||||
gSurfaceMap = (mk64_surface_map_ram *) gNextFreeMemoryAddress;
|
||||
camera->pos[0] = 1400.0f;
|
||||
camera->pos[1] = 300.0f;
|
||||
camera->pos[2] = 1400.0f;
|
||||
|
||||
+12
-12
@@ -12,7 +12,7 @@
|
||||
#include "podium_ceremony_actors.h"
|
||||
#include "code_80281780.h"
|
||||
#include "code_80005FD0.h"
|
||||
#include "code_802AAA70.h"
|
||||
#include "collision.h"
|
||||
#include "code_80281C40.h"
|
||||
|
||||
u8 defaultCharacterIds[] = {
|
||||
@@ -124,19 +124,19 @@ void load_ceremony_cutscene(void) {
|
||||
D_8015F588 = (u16)0;
|
||||
D_800DC5BC = (u16)0;
|
||||
D_800DC5C8 = (u16)0;
|
||||
D_8015F580 = (mk64_surface_map_ram *) gNextFreeMemoryAddress;
|
||||
gSurfaceMap = (mk64_surface_map_ram *) gNextFreeMemoryAddress;
|
||||
// @bug these segmented addresses need to be symbols for mobility
|
||||
// This syntax is required to match
|
||||
func_802AF5AC(0x70067E8, -1);
|
||||
func_802AF5AC(0x700AEF8, -1);
|
||||
func_802AF5AC(0x700A970, 8);
|
||||
func_802AF5AC(0x700AC30, 8);
|
||||
func_802AF5AC(0x7000CE0, 0x10);
|
||||
func_802AF5AC(0x7000E88, 0x10);
|
||||
func_802AF5AC(0x700A618, -1);
|
||||
func_802AF5AC(0x700A618, -1);
|
||||
func_802AF5AC(0x70023F8, 1);
|
||||
func_802AF5AC(0x7002478, 1);
|
||||
set_vertex_data_with_default_section_id(0x70067E8, -1);
|
||||
set_vertex_data_with_default_section_id(0x700AEF8, -1);
|
||||
set_vertex_data_with_default_section_id(0x700A970, 8);
|
||||
set_vertex_data_with_default_section_id(0x700AC30, 8);
|
||||
set_vertex_data_with_default_section_id(0x7000CE0, 0x10);
|
||||
set_vertex_data_with_default_section_id(0x7000E88, 0x10);
|
||||
set_vertex_data_with_default_section_id(0x700A618, -1);
|
||||
set_vertex_data_with_default_section_id(0x700A618, -1);
|
||||
set_vertex_data_with_default_section_id(0x70023F8, 1);
|
||||
set_vertex_data_with_default_section_id(0x7002478, 1);
|
||||
func_80295C6C();
|
||||
debug_switch_character_ceremony_cutscene();
|
||||
func_802818BC();
|
||||
|
||||
-2679
File diff suppressed because it is too large
Load Diff
@@ -1,38 +0,0 @@
|
||||
#ifndef CODE_802AAA70_H
|
||||
#define CODE_802AAA70_H
|
||||
|
||||
#include "common_structs.h"
|
||||
|
||||
void nullify_displaylist(uintptr_t);
|
||||
void func_802AAAAC(UnkActorInner*);
|
||||
f32 func_802AAB4C(Player*);
|
||||
s8 func_802ABD10(u16);
|
||||
s16 func_802ABD40(u16);
|
||||
s16 func_802ABD7C(u16);
|
||||
s16 func_802ABDB8(u16);
|
||||
s16 func_802ABDF4(u16);
|
||||
f32 func_802ABE30(f32, f32, f32, u16);
|
||||
f32 func_802ABEAC(UnkActorInner*, Vec3f);
|
||||
void process_shell_collision(Vec3f, f32, Vec3f, f32);
|
||||
void func_802AC098(UnkActorInner*, f32*);
|
||||
void func_802AC114(Vec3f, f32, Vec3f, f32);
|
||||
void func_802AD950(UnkActorInner*, f32, f32, f32, f32, f32, f32, f32);
|
||||
s32 func_802ADDC8(UnkActorInner*, f32, f32, f32, f32);
|
||||
f32 func_802AE1C0(f32, f32, f32);
|
||||
void func_802AED6C(Vtx*, s32, s32);
|
||||
s32 func_802AEE1C(s16, s16, s16, s16, s16, s16, s16, s16);
|
||||
s32 func_802AF0FC(s16, s16, s16, s16, u16);
|
||||
void func_802AF314();
|
||||
void func_802AF588(s32);
|
||||
void func_802AF5AC(s32, s8);
|
||||
void func_802AF5D8(u32, s8, u16);
|
||||
void func_802AF7B4(uintptr_t, s32, s32);
|
||||
void func_802AF83C(Vtx*, u32, s32, s8, u8, u8, u8);
|
||||
void func_802AF8BC(Gfx*, s8, u8, u8, u8);
|
||||
void func_802AF9F0(Vec3f, f32, Vec3f);
|
||||
|
||||
extern Vtx *D_8015F668[];
|
||||
extern s16 D_8015F6EE;
|
||||
extern f32 D_8015F8E4;
|
||||
|
||||
#endif
|
||||
+2214
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,37 @@
|
||||
#ifndef collision_H
|
||||
#define collision_H
|
||||
|
||||
#include "common_structs.h"
|
||||
|
||||
void nullify_displaylist(uintptr_t);
|
||||
void func_802AAAAC(Collision*);
|
||||
f32 func_802AAB4C(Player*);
|
||||
s8 get_surface_type(u16);
|
||||
s16 func_802ABD40(u16);
|
||||
s16 func_802ABD7C(u16);
|
||||
s16 func_802ABDB8(u16);
|
||||
s16 func_802ABDF4(u16);
|
||||
f32 func_802ABE30(f32, f32, f32, u16);
|
||||
f32 func_802ABEAC(Collision*, Vec3f);
|
||||
void process_shell_collision(Vec3f, f32, Vec3f, f32);
|
||||
void func_802AC114(Vec3f, f32, Vec3f, f32);
|
||||
u16 func_802AD950(Collision*, f32, f32, f32, f32, f32, f32, f32);
|
||||
u16 func_802ADDC8(Collision*, f32, f32, f32, f32);
|
||||
f32 func_802AE1C0(f32, f32, f32);
|
||||
void set_vtx_buffer(uintptr_t, u32, u32);
|
||||
s32 is_line_intersecting_rectangle(s16, s16, s16, s16, s16, s16, s16, s16);
|
||||
s32 is_triangle_intersecting_bounding_box(s16, s16, s16, s16, u16);
|
||||
void func_802AF314();
|
||||
void set_vertex_data_with_defaults(Gfx*);
|
||||
void set_vertex_data_with_default_section_id(Gfx*, s8);
|
||||
void find_and_set_vertex_data(Gfx*, s8, u16);
|
||||
void find_and_set_tile_size(uintptr_t, s32, s32);
|
||||
void set_vertex_colours(u32, u32, s32, s8, u8, u8, u8);
|
||||
void find_vtx_and_set_colours(uintptr_t, s8, u8, u8, u8);
|
||||
void subtract_scaled_vector(Vec3f, f32, Vec3f);
|
||||
|
||||
extern Vtx *vtxBuffer[];
|
||||
extern s16 D_8015F6EE;
|
||||
extern f32 D_8015F8E4;
|
||||
|
||||
#endif
|
||||
@@ -29,7 +29,7 @@
|
||||
#include <podium_ceremony_actors.h>
|
||||
#include <code_80281780.h>
|
||||
#include <code_80281C40.h>
|
||||
#include <code_802AAA70.h>
|
||||
#include <collision.h>
|
||||
#include <common_textures.h>
|
||||
#include <credits.h>
|
||||
#include <data_segment2.h>
|
||||
|
||||
+2
-2
@@ -23,7 +23,7 @@
|
||||
#include "hud_renderer.h"
|
||||
#include "code_80071F00.h"
|
||||
#include "code_80091750.h"
|
||||
#include "code_802AAA70.h"
|
||||
#include "collision.h"
|
||||
#include "main.h"
|
||||
#include "code_80086E70.h"
|
||||
|
||||
@@ -1485,7 +1485,7 @@ UNUSED void func_8004A5E4(Vec3f arg0, Vec3su arg1, f32 arg2, u8 *texture, Vtx *a
|
||||
func_8004A414(arg0, arg1, arg2, texture, arg4, 16, 16, 16, 16);
|
||||
}
|
||||
|
||||
void func_8004A630(UnkActorInner *arg0, Vec3f arg1, f32 arg2) {
|
||||
void func_8004A630(Collision *arg0, Vec3f arg1, f32 arg2) {
|
||||
if (func_80041924(arg0, arg1) != 0) {
|
||||
D_80183E50[0] = arg1[0];
|
||||
D_80183E50[1] = func_802ABE30(arg1[0], 0.0f, arg1[2], arg0->unk3A) + 0.8;
|
||||
|
||||
+2
-2
@@ -162,7 +162,7 @@ void func_8004A488(Vec3f, Vec3su, f32, u8*, Vtx*, s32, s32, s32, s32);
|
||||
void func_8004A4FC(Vec3f, Vec3su, f32, u8*, Vtx*, s32, s32, s32, s32);
|
||||
void func_8004A570(Vec3f, Vec3su, f32, u8*, Vtx*, s32, s32, s32, s32);
|
||||
void func_8004A5E4(Vec3f, Vec3su, f32, u8*, Vtx*);
|
||||
void func_8004A630(UnkActorInner*, Vec3f, f32);
|
||||
void func_8004A630(Collision*, Vec3f, f32);
|
||||
void func_8004A6EC(s32, f32);
|
||||
void func_8004A7AC(s32, f32);
|
||||
void func_8004A870(s32, f32);
|
||||
@@ -430,7 +430,7 @@ extern Vec3f D_80183E50;
|
||||
extern Vec3f D_80183E70;
|
||||
extern Vec3su D_80183E80;
|
||||
extern Vec3su D_80183E98;
|
||||
extern UnkActorInner D_8018C830;
|
||||
extern Collision D_8018C830;
|
||||
extern u8 *D_8018D1E0;
|
||||
|
||||
extern s32 D_8018D3E0; // some alpha
|
||||
|
||||
@@ -23,6 +23,8 @@ struct UnkStruct_8015F584 {
|
||||
u16 unk2;
|
||||
};
|
||||
|
||||
extern struct UnkStruct_8015F584 D_8014F110[];
|
||||
|
||||
void create_thread(OSThread*, OSId, void (*entry)(void *), void*, void*, OSPri);
|
||||
void main_func();
|
||||
void thread1_idle(void*);
|
||||
|
||||
+2
-2
@@ -8,7 +8,7 @@
|
||||
#include "objects.h"
|
||||
|
||||
#include "memory.h"
|
||||
#include "code_802AAA70.h"
|
||||
#include "collision.h"
|
||||
#include "code_8001F980.h"
|
||||
|
||||
#pragma intrinsic (sqrtf)
|
||||
@@ -439,7 +439,7 @@ s32 func_800418E8(f32 arg0, f32 arg1, Vec3f arg2) {
|
||||
return atan2s(arg0 - arg2[1], arg1 - arg2[2]);
|
||||
}
|
||||
|
||||
s32 func_80041924(UnkActorInner *arg0, Vec3f arg1) {
|
||||
s32 func_80041924(Collision *arg0, Vec3f arg1) {
|
||||
s32 ret = 0;
|
||||
|
||||
func_802ADDC8(arg0, 10.0f, arg1[0], arg1[1], arg1[2]);
|
||||
|
||||
+1
-1
@@ -58,7 +58,7 @@ s32 func_80041770(f32, f32, f32, f32);
|
||||
u16 func_800417B4(u16, u16);
|
||||
s32 func_800418AC(f32, f32, Vec3f);
|
||||
s32 func_800418E8(f32, f32, Vec3f);
|
||||
s32 func_80041924(UnkActorInner*, Vec3f);
|
||||
s32 func_80041924(Collision*, Vec3f);
|
||||
s32 func_80041980(Vec3f, Camera*, u16);
|
||||
void func_800419F8();
|
||||
void func_80041A78(Mat4, s32, s32);
|
||||
|
||||
+110
-103
@@ -3,13 +3,14 @@
|
||||
#include <common_structs.h>
|
||||
#include <defines.h>
|
||||
#include <types.h>
|
||||
#include <course.h>
|
||||
#include <packed_displaylist_symbols_gen.h>
|
||||
#include "main.h"
|
||||
#include "actors.h"
|
||||
#include "math_util.h"
|
||||
#include "memory.h"
|
||||
#include "code_80281780.h"
|
||||
#include "code_802AAA70.h"
|
||||
#include "collision.h"
|
||||
#include "render_courses.h"
|
||||
#include "skybox_and_splitscreen.h"
|
||||
|
||||
@@ -23,7 +24,7 @@ s32 D_802B87C8 = 0;
|
||||
s32 D_802B87CC = 0;
|
||||
s16 D_802B87D0 = 0;
|
||||
s16 D_802B87D4 = 0;
|
||||
s16 D_802B87D8 = 0;
|
||||
s16 currentScreenSection = 0;
|
||||
|
||||
s32 func_80290C20(Camera *camera) {
|
||||
if (camera->unk_54.unk34 == 0) {
|
||||
@@ -38,28 +39,28 @@ s32 func_80290C20(Camera *camera) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
void func_80290CAC(uintptr_t arg0) {
|
||||
void parse_course_displaylists(uintptr_t arg0) {
|
||||
s32 segment = SEGMENT_NUMBER2(arg0);
|
||||
s32 offset = SEGMENT_OFFSET(arg0);
|
||||
struct Unk0CAC *data = (struct Unk0CAC *) VIRTUAL_TO_PHYSICAL2(gSegmentTable[segment] + offset);
|
||||
TrackSections *data = (TrackSections *) VIRTUAL_TO_PHYSICAL2(gSegmentTable[segment] + offset);
|
||||
|
||||
while(data->unk0 != 0) {
|
||||
if ((data->unk6 & 0x8000) != 0) {
|
||||
while(data->addr != 0) {
|
||||
if (data->flags & 0x8000) {
|
||||
D_8015F59C = 1;
|
||||
} else {
|
||||
D_8015F59C = 0;
|
||||
}
|
||||
if ((data->unk6 & 0x2000) != 0) {
|
||||
if (data->flags & 0x2000) {
|
||||
D_8015F5A0 = 1;
|
||||
} else {
|
||||
D_8015F5A0 = 0;
|
||||
}
|
||||
if ((data->unk6 & 0x4000) != 0) {
|
||||
if (data->flags & 0x4000) {
|
||||
D_8015F5A4 = 1;
|
||||
} else {
|
||||
D_8015F5A4 = 0;
|
||||
}
|
||||
func_802AF5D8(data->unk0, data->unk4, data->unk5);
|
||||
find_and_set_vertex_data(data->addr, data->surfaceType, data->sectionId);
|
||||
data++;
|
||||
}
|
||||
}
|
||||
@@ -792,6 +793,8 @@ void render_luigi_raceway(struct UnkStruct_800DC5EC *arg0) {
|
||||
|
||||
D_800DC5DC = 88;
|
||||
D_800DC5E0 = 72;
|
||||
|
||||
// Render only the first player camera onto the television billboard. Screen agnostic screens of other players).
|
||||
if ((gActiveScreenMode == SCREEN_MODE_1P) && (sp22 >= 10) && (sp22 < 17)) {
|
||||
|
||||
prevFrame = (s16)sRenderedFramebuffer - 1;
|
||||
@@ -801,29 +804,33 @@ void render_luigi_raceway(struct UnkStruct_800DC5EC *arg0) {
|
||||
} else if (prevFrame >= 3) {
|
||||
prevFrame = 0;
|
||||
}
|
||||
D_802B87D8++;
|
||||
if (D_802B87D8 >= 6) {
|
||||
D_802B87D8 = 0;
|
||||
currentScreenSection++;
|
||||
if (currentScreenSection >= 6) {
|
||||
currentScreenSection = 0;
|
||||
}
|
||||
switch (D_802B87D8) {
|
||||
case 0:
|
||||
func_802A7658(D_800DC5DC, D_800DC5E0, 64, 32, (u16 *) PHYSICAL_TO_VIRTUAL(gPhysicalFramebuffers[prevFrame]), (u16 *) PHYSICAL_TO_VIRTUAL(gSegmentTable[5] + 0xF800));
|
||||
break;
|
||||
case 1:
|
||||
func_802A7658(D_800DC5DC + 64, D_800DC5E0, 64, 32, (u16 *) PHYSICAL_TO_VIRTUAL(gPhysicalFramebuffers[prevFrame]), (u16 *) PHYSICAL_TO_VIRTUAL(gSegmentTable[5] + 0x10800));
|
||||
break;
|
||||
case 2:
|
||||
func_802A7658(D_800DC5DC, D_800DC5E0 + 32, 64, 32, (u16 *) PHYSICAL_TO_VIRTUAL(gPhysicalFramebuffers[prevFrame]), (u16 *) PHYSICAL_TO_VIRTUAL(gSegmentTable[5] + 0x11800));
|
||||
break;
|
||||
case 3:
|
||||
func_802A7658(D_800DC5DC + 64, D_800DC5E0 + 32, 64, 32, (u16 *) PHYSICAL_TO_VIRTUAL(gPhysicalFramebuffers[prevFrame]), (u16 *) PHYSICAL_TO_VIRTUAL(gSegmentTable[5] + 0x12800));
|
||||
break;
|
||||
case 4:
|
||||
func_802A7658(D_800DC5DC, D_800DC5E0 + 64, 64, 32, (u16 *) PHYSICAL_TO_VIRTUAL(gPhysicalFramebuffers[prevFrame]), (u16 *) PHYSICAL_TO_VIRTUAL(gSegmentTable[5] + 0x13800));
|
||||
break;
|
||||
case 5:
|
||||
func_802A7658(D_800DC5DC + 64, D_800DC5E0 + 64, 64, 32, (u16 *) PHYSICAL_TO_VIRTUAL(gPhysicalFramebuffers[prevFrame]), (u16 *) PHYSICAL_TO_VIRTUAL(gSegmentTable[5] + 0x14800));
|
||||
break;
|
||||
/**
|
||||
* The jumbo television screen is split into six sections each section is copied one at a time.
|
||||
* This is done to fit within the n64's texture size requirements; 64x32
|
||||
*/
|
||||
switch (currentScreenSection) {
|
||||
case 0:
|
||||
copy_framebuffer(D_800DC5DC, D_800DC5E0, 64, 32, (u16 *) PHYSICAL_TO_VIRTUAL(gPhysicalFramebuffers[prevFrame]), (u16 *) PHYSICAL_TO_VIRTUAL(gSegmentTable[5] + 0xF800));
|
||||
break;
|
||||
case 1:
|
||||
copy_framebuffer(D_800DC5DC + 64, D_800DC5E0, 64, 32, (u16 *) PHYSICAL_TO_VIRTUAL(gPhysicalFramebuffers[prevFrame]), (u16 *) PHYSICAL_TO_VIRTUAL(gSegmentTable[5] + 0x10800));
|
||||
break;
|
||||
case 2:
|
||||
copy_framebuffer(D_800DC5DC, D_800DC5E0 + 32, 64, 32, (u16 *) PHYSICAL_TO_VIRTUAL(gPhysicalFramebuffers[prevFrame]), (u16 *) PHYSICAL_TO_VIRTUAL(gSegmentTable[5] + 0x11800));
|
||||
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] + 0x12800));
|
||||
break;
|
||||
case 4:
|
||||
copy_framebuffer(D_800DC5DC, D_800DC5E0 + 64, 64, 32, (u16 *) PHYSICAL_TO_VIRTUAL(gPhysicalFramebuffers[prevFrame]), (u16 *) PHYSICAL_TO_VIRTUAL(gSegmentTable[5] + 0x13800));
|
||||
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] + 0x14800));
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1000,28 +1007,28 @@ void render_wario_stadium(struct UnkStruct_800DC5EC *arg0) {
|
||||
} else if (prevFrame >= 3) {
|
||||
prevFrame = 0;
|
||||
}
|
||||
D_802B87D8++;
|
||||
if (D_802B87D8 > 5) {
|
||||
D_802B87D8 = 0;
|
||||
currentScreenSection++;
|
||||
if (currentScreenSection > 5) {
|
||||
currentScreenSection = 0;
|
||||
}
|
||||
switch (D_802B87D8) {
|
||||
switch (currentScreenSection) {
|
||||
case 0:
|
||||
func_802A7658(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:
|
||||
func_802A7658(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:
|
||||
func_802A7658(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:
|
||||
func_802A7658(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:
|
||||
func_802A7658(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:
|
||||
func_802A7658(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;
|
||||
}
|
||||
}
|
||||
@@ -1292,18 +1299,18 @@ void func_80295D88(void) {
|
||||
func_80295D6C();
|
||||
D_8015F58C = 0;
|
||||
D_8015F588 = 0;
|
||||
D_8015F580 = (mk64_surface_map_ram *) gNextFreeMemoryAddress;
|
||||
gSurfaceMap = (mk64_surface_map_ram *) gNextFreeMemoryAddress;
|
||||
D_800DC5BC = 0;
|
||||
D_800DC5C8 = 0;
|
||||
switch (gCurrentCourseId) {
|
||||
case COURSE_MARIO_RACEWAY:
|
||||
func_802AF588(d_course_mario_raceway_packed_dl_1140);
|
||||
set_vertex_data_with_defaults(d_course_mario_raceway_packed_dl_1140);
|
||||
if (gScreenModeSelection == SCREEN_MODE_1P) {
|
||||
func_802AF588(d_course_mario_raceway_packed_dl_8E8);
|
||||
set_vertex_data_with_defaults(d_course_mario_raceway_packed_dl_8E8);
|
||||
} else {
|
||||
func_802AF588(d_course_mario_raceway_packed_dl_2D68);
|
||||
set_vertex_data_with_defaults(d_course_mario_raceway_packed_dl_2D68);
|
||||
}
|
||||
func_80290CAC((uintptr_t) D_06009650);
|
||||
parse_course_displaylists((uintptr_t) D_06009650);
|
||||
func_80295C6C();
|
||||
D_8015F8E4 = D_8015F6EE - 10.0f;
|
||||
break;
|
||||
@@ -1326,15 +1333,15 @@ void func_80295D88(void) {
|
||||
nullify_displaylist(d_course_choco_mountain_packed_dl_340);
|
||||
nullify_displaylist(d_course_choco_mountain_packed_dl_3C8);
|
||||
}
|
||||
func_80290CAC((uintptr_t) &D_060072D0);
|
||||
parse_course_displaylists((uintptr_t) &D_060072D0);
|
||||
func_802B5CAC(0x238E, 0x31C7, D_8015F590);
|
||||
func_80295C6C();
|
||||
D_8015F8E4 = -80.0f;
|
||||
break;
|
||||
case COURSE_BOWSER_CASTLE:
|
||||
func_80290CAC((uintptr_t) D_060093D8);
|
||||
parse_course_displaylists((uintptr_t) D_060093D8);
|
||||
func_80295C6C();
|
||||
func_802AF8BC(d_course_bowsers_castle_packed_dl_1350, 0x32, 0, 0, 0);
|
||||
find_vtx_and_set_colours(d_course_bowsers_castle_packed_dl_1350, 0x32, 0, 0, 0);
|
||||
D_8015F8E4 = -50.0f;
|
||||
break;
|
||||
case COURSE_BANSHEE_BOARDWALK:
|
||||
@@ -1342,42 +1349,42 @@ void func_80295D88(void) {
|
||||
D_801625EC = 0;
|
||||
D_801625F4 = 0;
|
||||
D_801625F0 = 0;
|
||||
func_80290CAC((uintptr_t) D_0600B458);
|
||||
parse_course_displaylists((uintptr_t) D_0600B458);
|
||||
func_80295C6C();
|
||||
func_802AF8BC(d_course_banshee_boardwalk_packed_dl_878, 128, 0, 0, 0);
|
||||
find_vtx_and_set_colours(d_course_banshee_boardwalk_packed_dl_878, 128, 0, 0, 0);
|
||||
D_8015F8E4 = -80.0f;
|
||||
break;
|
||||
case COURSE_YOSHI_VALLEY:
|
||||
func_802B5D64((uintptr_t) D_06016558, -0x38F0, 0x1C70, 1);
|
||||
func_80290CAC((uintptr_t) D_06018240);
|
||||
parse_course_displaylists((uintptr_t) D_06018240);
|
||||
func_80295C6C();
|
||||
D_8015F8E4 = D_8015F6EE - 10.0f;
|
||||
break;
|
||||
case COURSE_FRAPPE_SNOWLAND:
|
||||
func_80290CAC((uintptr_t) D_060079A0);
|
||||
parse_course_displaylists((uintptr_t) D_060079A0);
|
||||
func_80295C6C();
|
||||
D_8015F8E4 = -50.0f;
|
||||
break;
|
||||
case COURSE_KOOPA_BEACH:
|
||||
func_80290CAC((uintptr_t) D_06018FD8);
|
||||
parse_course_displaylists((uintptr_t) D_06018FD8);
|
||||
func_80295C6C();
|
||||
func_802AF8BC(d_course_koopa_troopa_beach_packed_dl_ADE0, -0x6A, 255, 255, 255);
|
||||
func_802AF8BC(d_course_koopa_troopa_beach_packed_dl_A540, -0x6A, 255, 255, 255);
|
||||
func_802AF8BC(d_course_koopa_troopa_beach_packed_dl_9E70, -0x6A, 255, 255, 255);
|
||||
func_802AF8BC(d_course_koopa_troopa_beach_packed_dl_358, -0x6A, 255, 255, 255);
|
||||
find_vtx_and_set_colours(d_course_koopa_troopa_beach_packed_dl_ADE0, -0x6A, 255, 255, 255);
|
||||
find_vtx_and_set_colours(d_course_koopa_troopa_beach_packed_dl_A540, -0x6A, 255, 255, 255);
|
||||
find_vtx_and_set_colours(d_course_koopa_troopa_beach_packed_dl_9E70, -0x6A, 255, 255, 255);
|
||||
find_vtx_and_set_colours(d_course_koopa_troopa_beach_packed_dl_358, -0x6A, 255, 255, 255);
|
||||
break;
|
||||
case COURSE_ROYAL_RACEWAY:
|
||||
func_80290CAC((uintptr_t) D_0600DC28);
|
||||
parse_course_displaylists((uintptr_t) D_0600DC28);
|
||||
func_80295C6C();
|
||||
D_8015F8E4 = -60.0f;
|
||||
break;
|
||||
case COURSE_LUIGI_RACEWAY:
|
||||
func_80290CAC((uintptr_t) D_0600FF28);
|
||||
parse_course_displaylists((uintptr_t) D_0600FF28);
|
||||
func_80295C6C();
|
||||
D_8015F8E4 = D_8015F6EE - 10.0f;
|
||||
break;
|
||||
case COURSE_MOO_MOO_FARM:
|
||||
func_80290CAC((uintptr_t) D_060144B8);
|
||||
parse_course_displaylists((uintptr_t) D_060144B8);
|
||||
func_80295C6C();
|
||||
D_8015F8E4 = D_8015F6EE - 10.0f;
|
||||
break;
|
||||
@@ -1387,76 +1394,76 @@ void func_80295D88(void) {
|
||||
D_801625F0 = 4;
|
||||
D_802B87B0 = 993;
|
||||
D_802B87B4 = 1000;
|
||||
func_80290CAC((uintptr_t) D_06023B68);
|
||||
parse_course_displaylists((uintptr_t) D_06023B68);
|
||||
func_80295C6C();
|
||||
D_8015F8E4 = D_8015F6EE - 10.0f;
|
||||
break;
|
||||
case COURSE_KALAMARI_DESERT:
|
||||
func_80290CAC((uintptr_t) D_06023070);
|
||||
parse_course_displaylists((uintptr_t) D_06023070);
|
||||
func_80295C6C();
|
||||
D_8015F8E4 = D_8015F6EE - 10.0f;
|
||||
break;
|
||||
case COURSE_SHERBET_LAND:
|
||||
func_80290CAC((uintptr_t) D_06009C20);
|
||||
parse_course_displaylists((uintptr_t) D_06009C20);
|
||||
func_80295C6C();
|
||||
D_8015F8E4 = -18.0f;
|
||||
func_802AF8BC(d_course_sherbet_land_packed_dl_1EB8, -0x4C, 255, 255, 255);
|
||||
func_802AF8BC(d_course_sherbet_land_packed_dl_2308, -0x6A, 255, 255, 255);
|
||||
find_vtx_and_set_colours(d_course_sherbet_land_packed_dl_1EB8, -0x4C, 255, 255, 255);
|
||||
find_vtx_and_set_colours(d_course_sherbet_land_packed_dl_2308, -0x6A, 255, 255, 255);
|
||||
break;
|
||||
case COURSE_RAINBOW_ROAD:
|
||||
D_800DC5C8 = 1;
|
||||
func_80290CAC((uintptr_t) D_06016440);
|
||||
parse_course_displaylists((uintptr_t) D_06016440);
|
||||
func_80295C6C();
|
||||
D_8015F8E4 = 0.0f;
|
||||
func_802AF8BC(d_course_rainbow_road_packed_dl_2068, -0x6A, 255, 255, 255);
|
||||
func_802AF8BC(d_course_rainbow_road_packed_dl_1E18, -0x6A, 255, 255, 255);
|
||||
func_802AF8BC(d_course_rainbow_road_packed_dl_1318, 255, 255, 255, 0);
|
||||
find_vtx_and_set_colours(d_course_rainbow_road_packed_dl_2068, -0x6A, 255, 255, 255);
|
||||
find_vtx_and_set_colours(d_course_rainbow_road_packed_dl_1E18, -0x6A, 255, 255, 255);
|
||||
find_vtx_and_set_colours(d_course_rainbow_road_packed_dl_1318, 255, 255, 255, 0);
|
||||
if (gGamestate != CREDITS_SEQUENCE) {
|
||||
func_802AF8BC(d_course_rainbow_road_packed_dl_1FB8, -0x6A, 255, 255, 255);
|
||||
find_vtx_and_set_colours(d_course_rainbow_road_packed_dl_1FB8, -0x6A, 255, 255, 255);
|
||||
}
|
||||
break;
|
||||
case COURSE_WARIO_STADIUM:
|
||||
func_80290CAC((uintptr_t) D_0600CC38);
|
||||
parse_course_displaylists((uintptr_t) D_0600CC38);
|
||||
func_80295C6C();
|
||||
D_8015F8E4 = D_8015F6EE - 10.0f;
|
||||
func_802AF8BC(d_course_wario_stadium_packed_dl_C50, 100, 255, 255, 255);
|
||||
func_802AF8BC(d_course_wario_stadium_packed_dl_BD8, 100, 255, 255, 255);
|
||||
func_802AF8BC(d_course_wario_stadium_packed_dl_B60, 100, 255, 255, 255);
|
||||
func_802AF8BC(d_course_wario_stadium_packed_dl_AE8, 100, 255, 255, 255);
|
||||
func_802AF8BC(d_course_wario_stadium_packed_dl_CC8, 100, 255, 255, 255);
|
||||
func_802AF8BC(d_course_wario_stadium_packed_dl_D50, 100, 255, 255, 255);
|
||||
func_802AF8BC(d_course_wario_stadium_packed_dl_DD0, 100, 255, 255, 255);
|
||||
func_802AF8BC(d_course_wario_stadium_packed_dl_E48, 100, 255, 255, 255);
|
||||
find_vtx_and_set_colours(d_course_wario_stadium_packed_dl_C50, 100, 255, 255, 255);
|
||||
find_vtx_and_set_colours(d_course_wario_stadium_packed_dl_BD8, 100, 255, 255, 255);
|
||||
find_vtx_and_set_colours(d_course_wario_stadium_packed_dl_B60, 100, 255, 255, 255);
|
||||
find_vtx_and_set_colours(d_course_wario_stadium_packed_dl_AE8, 100, 255, 255, 255);
|
||||
find_vtx_and_set_colours(d_course_wario_stadium_packed_dl_CC8, 100, 255, 255, 255);
|
||||
find_vtx_and_set_colours(d_course_wario_stadium_packed_dl_D50, 100, 255, 255, 255);
|
||||
find_vtx_and_set_colours(d_course_wario_stadium_packed_dl_DD0, 100, 255, 255, 255);
|
||||
find_vtx_and_set_colours(d_course_wario_stadium_packed_dl_E48, 100, 255, 255, 255);
|
||||
break;
|
||||
case COURSE_BLOCK_FORT:
|
||||
func_802AF5AC(d_course_block_fort_packed_dl_15C0, 1);
|
||||
set_vertex_data_with_default_section_id(d_course_block_fort_packed_dl_15C0, 1);
|
||||
func_80295C6C();
|
||||
D_8015F8E4 = D_8015F6EE - 10.0f;
|
||||
break;
|
||||
case COURSE_SKYSCRAPER:
|
||||
func_802AF5AC(d_course_skyscraper_packed_dl_1110, 1);
|
||||
func_802AF5AC(d_course_skyscraper_packed_dl_258, 1);
|
||||
set_vertex_data_with_default_section_id(d_course_skyscraper_packed_dl_1110, 1);
|
||||
set_vertex_data_with_default_section_id(d_course_skyscraper_packed_dl_258, 1);
|
||||
func_80295C6C();
|
||||
|
||||
D_8015F8E4 = -480.0f;
|
||||
break;
|
||||
case COURSE_DOUBLE_DECK:
|
||||
func_802AF5AC(d_course_double_deck_packed_dl_738, 1);
|
||||
set_vertex_data_with_default_section_id(d_course_double_deck_packed_dl_738, 1);
|
||||
func_80295C6C();
|
||||
D_8015F8E4 = D_8015F6EE - 10.0f;
|
||||
break;
|
||||
case COURSE_DK_JUNGLE:
|
||||
func_80290CAC((uintptr_t) D_06014338);
|
||||
parse_course_displaylists((uintptr_t) D_06014338);
|
||||
func_80295C6C();
|
||||
D_8015F8E4 = -475.0f;
|
||||
func_802AF8BC(d_course_dks_jungle_parkway_packed_dl_3FA8, 120, 255, 255, 255);
|
||||
find_vtx_and_set_colours(d_course_dks_jungle_parkway_packed_dl_3FA8, 120, 255, 255, 255);
|
||||
break;
|
||||
case COURSE_BIG_DONUT:
|
||||
func_802AF5AC(d_course_big_donut_packed_dl_1018, 6);
|
||||
func_802AF5AC(d_course_big_donut_packed_dl_450, 6);
|
||||
func_802AF5AC(d_course_big_donut_packed_dl_AC0, 6);
|
||||
func_802AF5AC(d_course_big_donut_packed_dl_B58, 6);
|
||||
func_802AF5AC(d_course_big_donut_packed_dl_230, 6);
|
||||
set_vertex_data_with_default_section_id(d_course_big_donut_packed_dl_1018, 6);
|
||||
set_vertex_data_with_default_section_id(d_course_big_donut_packed_dl_450, 6);
|
||||
set_vertex_data_with_default_section_id(d_course_big_donut_packed_dl_AC0, 6);
|
||||
set_vertex_data_with_default_section_id(d_course_big_donut_packed_dl_B58, 6);
|
||||
set_vertex_data_with_default_section_id(d_course_big_donut_packed_dl_230, 6);
|
||||
func_80295C6C();
|
||||
D_8015F8E4 = 100.0f;
|
||||
break;
|
||||
@@ -1483,8 +1490,8 @@ void func_802966A0(void) {
|
||||
D_802B87C4 = 0;
|
||||
}
|
||||
// waterfall animation
|
||||
func_802AF7B4(d_course_koopa_troopa_beach_packed_dl_9D58, 0, D_802B87BC);
|
||||
func_802AF7B4(d_course_koopa_troopa_beach_packed_dl_9CD0, 0, D_802B87C4);
|
||||
find_and_set_tile_size(d_course_koopa_troopa_beach_packed_dl_9D58, 0, D_802B87BC);
|
||||
find_and_set_tile_size(d_course_koopa_troopa_beach_packed_dl_9CD0, 0, D_802B87C4);
|
||||
D_802B87CC = random_int(300) / 40;
|
||||
if (D_802B87C8 < 0) {
|
||||
D_802B87C8 = random_int(300) / 40;
|
||||
@@ -1492,7 +1499,7 @@ void func_802966A0(void) {
|
||||
D_802B87C8 = -(random_int(300) / 40);
|
||||
}
|
||||
// Waterfall bubbling effect? (unused)
|
||||
func_802AF7B4(d_course_koopa_troopa_beach_packed_dl_2E8, D_802B87C8, D_802B87CC);
|
||||
find_and_set_tile_size(d_course_koopa_troopa_beach_packed_dl_2E8, D_802B87C8, D_802B87CC);
|
||||
break;
|
||||
case COURSE_BANSHEE_BOARDWALK:
|
||||
D_802B87BC++;
|
||||
@@ -1500,31 +1507,31 @@ void func_802966A0(void) {
|
||||
if (D_802B87BC >= 0x100) {
|
||||
D_802B87BC = 0;
|
||||
}
|
||||
func_802AF7B4((uintptr_t) D_0600B278, 0, D_802B87BC);
|
||||
find_and_set_tile_size((uintptr_t) D_0600B278, 0, D_802B87BC);
|
||||
break;
|
||||
case COURSE_ROYAL_RACEWAY:
|
||||
D_802B87BC -= 20;
|
||||
if (D_802B87BC < 0) {
|
||||
D_802B87BC = 0xFF;
|
||||
}
|
||||
func_802AF7B4(d_course_royal_raceway_packed_dl_A6A8, 0, D_802B87BC);
|
||||
func_802AF7B4(d_course_royal_raceway_packed_dl_A648, 0, D_802B87BC);
|
||||
find_and_set_tile_size(d_course_royal_raceway_packed_dl_A6A8, 0, D_802B87BC);
|
||||
find_and_set_tile_size(d_course_royal_raceway_packed_dl_A648, 0, D_802B87BC);
|
||||
break;
|
||||
case COURSE_DK_JUNGLE:
|
||||
D_802B87BC += 2;
|
||||
if (D_802B87BC > 255) {
|
||||
D_802B87BC = 0;
|
||||
}
|
||||
func_802AF7B4(d_course_dks_jungle_parkway_packed_dl_3DD0, 0, D_802B87BC);
|
||||
func_802AF7B4(d_course_dks_jungle_parkway_packed_dl_3E40, 0, D_802B87BC);
|
||||
func_802AF7B4(d_course_dks_jungle_parkway_packed_dl_3EB0, 0, D_802B87BC);
|
||||
func_802AF7B4(d_course_dks_jungle_parkway_packed_dl_3F30, 0, D_802B87BC);
|
||||
func_802AF7B4(d_course_dks_jungle_parkway_packed_dl_36A8, 0, D_802B87BC);
|
||||
find_and_set_tile_size(d_course_dks_jungle_parkway_packed_dl_3DD0, 0, D_802B87BC);
|
||||
find_and_set_tile_size(d_course_dks_jungle_parkway_packed_dl_3E40, 0, D_802B87BC);
|
||||
find_and_set_tile_size(d_course_dks_jungle_parkway_packed_dl_3EB0, 0, D_802B87BC);
|
||||
find_and_set_tile_size(d_course_dks_jungle_parkway_packed_dl_3F30, 0, D_802B87BC);
|
||||
find_and_set_tile_size(d_course_dks_jungle_parkway_packed_dl_36A8, 0, D_802B87BC);
|
||||
D_802B87C4 -= 20;
|
||||
if (D_802B87C4 < 0) {
|
||||
D_802B87C4 = 0xFF;
|
||||
}
|
||||
func_802AF7B4(d_course_dks_jungle_parkway_packed_dl_9880, 0, D_802B87C4);
|
||||
find_and_set_tile_size(d_course_dks_jungle_parkway_packed_dl_9880, 0, D_802B87C4);
|
||||
func_80298C94();
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -1,16 +1,9 @@
|
||||
#ifndef RENDER_COURSES_H
|
||||
#define RENDER_COURSES_H
|
||||
|
||||
struct Unk0CAC {
|
||||
s32 unk0;
|
||||
u8 unk4;
|
||||
u8 unk5;
|
||||
u16 unk6;
|
||||
};
|
||||
|
||||
void func_8029122C(struct UnkStruct_800DC5EC*, s32);
|
||||
s32 func_80290C20(Camera*);
|
||||
void func_80290CAC(uintptr_t);
|
||||
void parse_course_displaylists(uintptr_t);
|
||||
void load_surface_map(uintptr_t, struct UnkStruct_800DC5EC*);
|
||||
void func_80291198();
|
||||
void func_802911C4();
|
||||
@@ -155,7 +148,7 @@ extern s32 gGamestate;
|
||||
extern s32 gModeSelection;
|
||||
extern u16 gNumActors;
|
||||
extern s32 D_8015F58C;
|
||||
extern mk64_surface_map_ram *D_8015F580;
|
||||
extern mk64_surface_map_ram *gSurfaceMap;
|
||||
extern s32 gCCSelection;
|
||||
|
||||
#endif
|
||||
|
||||
@@ -1274,16 +1274,16 @@ void func_802A74BC(void) {
|
||||
}
|
||||
}
|
||||
|
||||
void func_802A7658(s32 arg0, s32 arg1, s32 arg2, s32 arg3, u16 *source, u16 *target) {
|
||||
void copy_framebuffer(s32 arg0, s32 arg1, s32 width, s32 height, u16 *source, u16 *target) {
|
||||
s32 var_v1;
|
||||
s32 var_a1;
|
||||
s32 targetIndex;
|
||||
s32 sourceIndex;
|
||||
|
||||
targetIndex = 0;
|
||||
for (var_v1 = 0; var_v1 < arg3; var_v1++) {
|
||||
for (var_v1 = 0; var_v1 < height; var_v1++) {
|
||||
sourceIndex = ((arg1 + var_v1) * 320) + arg0;
|
||||
for (var_a1 = 0; var_a1 < arg2; var_a1++, targetIndex++, sourceIndex++) {
|
||||
for (var_a1 = 0; var_a1 < width; var_a1++, targetIndex++, sourceIndex++) {
|
||||
target[targetIndex] = source[sourceIndex];
|
||||
}
|
||||
}
|
||||
@@ -1309,12 +1309,12 @@ void func_802A7728(void) {
|
||||
} else if (temp_v0 > 2) {
|
||||
temp_v0 = 0;
|
||||
}
|
||||
func_802A7658(D_800DC5DC, D_800DC5E0, 64, 32, (u16 *) PHYSICAL_TO_VIRTUAL(gPhysicalFramebuffers[temp_v0]), (u16 *) PHYSICAL_TO_VIRTUAL(gSegmentTable[5]+0x8800));
|
||||
func_802A7658(D_800DC5DC + 64, D_800DC5E0, 64, 32, (u16 *) PHYSICAL_TO_VIRTUAL(gPhysicalFramebuffers[temp_v0]), (u16 *) PHYSICAL_TO_VIRTUAL(gSegmentTable[5]+0x9800));
|
||||
func_802A7658(D_800DC5DC, D_800DC5E0 + 32, 64, 32, (u16 *) PHYSICAL_TO_VIRTUAL(gPhysicalFramebuffers[temp_v0]), (u16 *) PHYSICAL_TO_VIRTUAL(gSegmentTable[5]+0xA800));
|
||||
func_802A7658(D_800DC5DC + 64, D_800DC5E0 + 32, 64, 32, (u16 *) PHYSICAL_TO_VIRTUAL(gPhysicalFramebuffers[temp_v0]), (u16 *) PHYSICAL_TO_VIRTUAL(gSegmentTable[5]+0xB800));
|
||||
func_802A7658(D_800DC5DC, D_800DC5E0 + 64, 64, 32, (u16 *) PHYSICAL_TO_VIRTUAL(gPhysicalFramebuffers[temp_v0]), (u16 *) PHYSICAL_TO_VIRTUAL(gSegmentTable[5]+0xC800));
|
||||
func_802A7658(D_800DC5DC + 64, D_800DC5E0 + 64, 64, 32, (u16 *) PHYSICAL_TO_VIRTUAL(gPhysicalFramebuffers[temp_v0]), (u16 *) PHYSICAL_TO_VIRTUAL(gSegmentTable[5]+0xD800));
|
||||
copy_framebuffer(D_800DC5DC, D_800DC5E0, 64, 32, (u16 *) PHYSICAL_TO_VIRTUAL(gPhysicalFramebuffers[temp_v0]), (u16 *) PHYSICAL_TO_VIRTUAL(gSegmentTable[5]+0x8800));
|
||||
copy_framebuffer(D_800DC5DC + 64, D_800DC5E0, 64, 32, (u16 *) PHYSICAL_TO_VIRTUAL(gPhysicalFramebuffers[temp_v0]), (u16 *) PHYSICAL_TO_VIRTUAL(gSegmentTable[5]+0x9800));
|
||||
copy_framebuffer(D_800DC5DC, D_800DC5E0 + 32, 64, 32, (u16 *) PHYSICAL_TO_VIRTUAL(gPhysicalFramebuffers[temp_v0]), (u16 *) PHYSICAL_TO_VIRTUAL(gSegmentTable[5]+0xA800));
|
||||
copy_framebuffer(D_800DC5DC + 64, D_800DC5E0 + 32, 64, 32, (u16 *) PHYSICAL_TO_VIRTUAL(gPhysicalFramebuffers[temp_v0]), (u16 *) PHYSICAL_TO_VIRTUAL(gSegmentTable[5]+0xB800));
|
||||
copy_framebuffer(D_800DC5DC, D_800DC5E0 + 64, 64, 32, (u16 *) PHYSICAL_TO_VIRTUAL(gPhysicalFramebuffers[temp_v0]), (u16 *) PHYSICAL_TO_VIRTUAL(gSegmentTable[5]+0xC800));
|
||||
copy_framebuffer(D_800DC5DC + 64, D_800DC5E0 + 64, 64, 32, (u16 *) PHYSICAL_TO_VIRTUAL(gPhysicalFramebuffers[temp_v0]), (u16 *) PHYSICAL_TO_VIRTUAL(gSegmentTable[5]+0xD800));
|
||||
}
|
||||
|
||||
void func_802A7940(void) {
|
||||
@@ -1332,10 +1332,10 @@ void func_802A7940(void) {
|
||||
} else if (temp_v0 > 2) {
|
||||
temp_v0 = 0;
|
||||
}
|
||||
func_802A7658(D_800DC5DC, D_800DC5E0, 0x40, 0x20, (u16 *) PHYSICAL_TO_VIRTUAL(gPhysicalFramebuffers[temp_v0]), (u16 *) PHYSICAL_TO_VIRTUAL(gSegmentTable[5] + 0xF800));
|
||||
func_802A7658(D_800DC5DC + 0x40, D_800DC5E0, 0x40, 0x20, (u16 *) PHYSICAL_TO_VIRTUAL(gPhysicalFramebuffers[temp_v0]), (u16 *) PHYSICAL_TO_VIRTUAL(gSegmentTable[5] + 0x10800));
|
||||
func_802A7658(D_800DC5DC, D_800DC5E0 + 0x20, 0x40, 0x20, (u16 *) PHYSICAL_TO_VIRTUAL(gPhysicalFramebuffers[temp_v0]), (u16 *) PHYSICAL_TO_VIRTUAL(gSegmentTable[5] + 0x11800));
|
||||
func_802A7658(D_800DC5DC + 0x40, D_800DC5E0 + 0x20, 0x40, 0x20, (u16 *) PHYSICAL_TO_VIRTUAL(gPhysicalFramebuffers[temp_v0]), (u16 *) PHYSICAL_TO_VIRTUAL(gSegmentTable[5] + 0x12800));
|
||||
func_802A7658(D_800DC5DC, D_800DC5E0 + 0x40, 0x40, 0x20, (u16 *) PHYSICAL_TO_VIRTUAL(gPhysicalFramebuffers[temp_v0]), (u16 *) PHYSICAL_TO_VIRTUAL(gSegmentTable[5] + 0x13800));
|
||||
func_802A7658(D_800DC5DC + 0x40, D_800DC5E0 + 0x40, 0x40, 0x20, (u16 *) PHYSICAL_TO_VIRTUAL(gPhysicalFramebuffers[temp_v0]), (u16 *) PHYSICAL_TO_VIRTUAL(gSegmentTable[5] + 0x14800));
|
||||
copy_framebuffer(D_800DC5DC, D_800DC5E0, 0x40, 0x20, (u16 *) PHYSICAL_TO_VIRTUAL(gPhysicalFramebuffers[temp_v0]), (u16 *) PHYSICAL_TO_VIRTUAL(gSegmentTable[5] + 0xF800));
|
||||
copy_framebuffer(D_800DC5DC + 0x40, D_800DC5E0, 0x40, 0x20, (u16 *) PHYSICAL_TO_VIRTUAL(gPhysicalFramebuffers[temp_v0]), (u16 *) PHYSICAL_TO_VIRTUAL(gSegmentTable[5] + 0x10800));
|
||||
copy_framebuffer(D_800DC5DC, D_800DC5E0 + 0x20, 0x40, 0x20, (u16 *) PHYSICAL_TO_VIRTUAL(gPhysicalFramebuffers[temp_v0]), (u16 *) PHYSICAL_TO_VIRTUAL(gSegmentTable[5] + 0x11800));
|
||||
copy_framebuffer(D_800DC5DC + 0x40, D_800DC5E0 + 0x20, 0x40, 0x20, (u16 *) PHYSICAL_TO_VIRTUAL(gPhysicalFramebuffers[temp_v0]), (u16 *) PHYSICAL_TO_VIRTUAL(gSegmentTable[5] + 0x12800));
|
||||
copy_framebuffer(D_800DC5DC, D_800DC5E0 + 0x40, 0x40, 0x20, (u16 *) PHYSICAL_TO_VIRTUAL(gPhysicalFramebuffers[temp_v0]), (u16 *) PHYSICAL_TO_VIRTUAL(gSegmentTable[5] + 0x13800));
|
||||
copy_framebuffer(D_800DC5DC + 0x40, D_800DC5E0 + 0x40, 0x40, 0x20, (u16 *) PHYSICAL_TO_VIRTUAL(gPhysicalFramebuffers[temp_v0]), (u16 *) PHYSICAL_TO_VIRTUAL(gSegmentTable[5] + 0x14800));
|
||||
}
|
||||
|
||||
@@ -48,7 +48,7 @@ void func_802A6BB0();
|
||||
void func_802A6E94();
|
||||
void func_802A7178();
|
||||
void func_802A74BC();
|
||||
void func_802A7658(s32, s32, s32, s32, u16*, u16*);
|
||||
void copy_framebuffer(s32, s32, s32, s32, u16*, u16*);
|
||||
void func_802A7728();
|
||||
void func_802A7940();
|
||||
|
||||
|
||||
+1
-1
@@ -9,7 +9,7 @@
|
||||
#include "math_util.h"
|
||||
#include "code_80027D00.h"
|
||||
#include "code_80057C60.h"
|
||||
#include "code_802AAA70.h"
|
||||
#include "collision.h"
|
||||
#include "render_courses.h"
|
||||
#include "spawn_players.h"
|
||||
#include "code_80005FD0.h"
|
||||
|
||||
Reference in New Issue
Block a user