mirror of
https://github.com/HarbourMasters/SpaghettiKart
synced 2026-07-26 06:38:04 -04:00
+2
-1
@@ -1,4 +1,5 @@
|
||||
#include <PR/ultratypes.h>
|
||||
#include <macros.h>
|
||||
|
||||
#include "data.h"
|
||||
#include "effects.h"
|
||||
@@ -440,4 +441,4 @@ u16 D_803B7192; // unconfirmed
|
||||
u32 gAudioRandom;
|
||||
s32 gAudioErrorFlags;
|
||||
u32 D_803B71A0[4]; // unconfirmed
|
||||
u8 D_803B71B0[4]; // unconfirmed
|
||||
ALIGNED8 u8 D_803B71B0[4]; // unconfirmed
|
||||
|
||||
+2
-2
@@ -56,8 +56,8 @@ extern s16 gAiBufferLengths[NUMAIBUFFERS]; // osAiSetNextBuffer nbytes
|
||||
extern u16 D_803B7192; // unconfirmed
|
||||
extern u32 gAudioRandom;
|
||||
extern s32 gAudioErrorFlags;
|
||||
extern u32 D_803B71A0[4]; // unconfirmed
|
||||
extern u8 D_803B71B0[4]; // unconfirmed
|
||||
extern u32 D_803B71A0[]; // unconfirmed
|
||||
extern u8 D_803B71B0[]; // unconfirmed
|
||||
|
||||
extern struct ReverbSettingsEU sReverbSettings[];
|
||||
extern struct AudioSessionSettingsEU gAudioSessionPresets[];
|
||||
|
||||
@@ -116,7 +116,6 @@ void *unk_pool1_lookup(s32 poolIdx, s32 id);
|
||||
void func_800BA8B0(s32, s32);
|
||||
|
||||
extern s32 D_800EA5D0;
|
||||
extern u8 D_803B71B0[];
|
||||
|
||||
extern s32 gMaxAudioCmds;
|
||||
extern s16 gTempoInternalToExternal;
|
||||
|
||||
+2
-3
@@ -26,7 +26,6 @@
|
||||
|
||||
extern s32 D_802BA038;
|
||||
extern s16 D_802BA048;
|
||||
|
||||
s16 gCurrentCourseId = 0;
|
||||
s16 gCurrentlyLoadedCourseId = 0xFF;
|
||||
u16 D_800DC5A8 = 0;
|
||||
@@ -52,7 +51,7 @@ u16 D_800DC5E4 = 0;
|
||||
//! @todo gPlayerWinningIndex (D_800DC5E8) accessed as word, D_800DC5EB as u8
|
||||
s32 gPlayerWinningIndex = 0;
|
||||
|
||||
struct UnkStruct_800DC5EC D_8015F480[4];
|
||||
ALIGNED16 struct UnkStruct_800DC5EC D_8015F480[4];
|
||||
struct UnkStruct_800DC5EC *D_800DC5EC = &D_8015F480[0];
|
||||
struct UnkStruct_800DC5EC *D_800DC5F0 = &D_8015F480[1];
|
||||
struct UnkStruct_800DC5EC *D_800DC5F4 = &D_8015F480[2];
|
||||
@@ -66,7 +65,7 @@ Lights1 D_800DC610[] = {
|
||||
gdSPDefLights1(175, 175, 175, 255, 255, 255, 0, 0, 120),
|
||||
gdSPDefLights1(115, 115, 115, 255, 255, 255, 0, 0, 120),
|
||||
};
|
||||
static s32 pad_800029B0 = 0x80000000;
|
||||
UNUSED s32 pad_800029B0 = 0x80000000;
|
||||
s16 gCreditsCourseId = COURSE_LUIGI_RACEWAY;
|
||||
s16 gPlaceItemBoxes = 1;
|
||||
|
||||
|
||||
+7
-4
@@ -5722,7 +5722,7 @@ void func_8006A7C0(Player *player, f32 arg1, f32 arg2, s8 arg3, s8 arg4) {
|
||||
}
|
||||
}
|
||||
|
||||
void func_8006AFD0(Player *player, s8 arg1, s16 arg2, s8 arg3) {
|
||||
void render_battle_balloon(Player *player, s8 arg1, s16 arg2, s8 arg3) {
|
||||
Mat4 sp140;
|
||||
Vec3f sp134;
|
||||
Vec3s sp12C;
|
||||
@@ -5848,16 +5848,19 @@ void func_8006B9CC(Player* player, s8 arg1) {
|
||||
|
||||
void func_8006BA94(Player* player, s8 playerIndex, s8 arg2) {
|
||||
if (gPlayerBalloonStatus[playerIndex][0] != BALLOON_STATUS_GONE) {
|
||||
func_8006AFD0(player, playerIndex, 0, arg2);
|
||||
render_battle_balloon(player, playerIndex, 0, arg2);
|
||||
}
|
||||
if (gPlayerBalloonStatus[playerIndex][1] != BALLOON_STATUS_GONE) {
|
||||
func_8006AFD0(player, playerIndex, 1, arg2);
|
||||
render_battle_balloon(player, playerIndex, 1, arg2);
|
||||
}
|
||||
if (gPlayerBalloonStatus[playerIndex][2] != BALLOON_STATUS_GONE) {
|
||||
func_8006AFD0(player, playerIndex, 2, arg2);
|
||||
render_battle_balloon(player, playerIndex, 2, arg2);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Used in podium ceremony.
|
||||
*/
|
||||
void render_balloon(Vec3f arg0, f32 arg1, s16 arg2, s16 arg3) {
|
||||
Mat4 sp108;
|
||||
Vec3f spFC;
|
||||
|
||||
+1
-1
@@ -221,7 +221,7 @@ void func_8006A01C(Player*, s8, s16, s8);
|
||||
void func_8006A280(Player*, s8, s16, s8);
|
||||
void func_8006A50C(Player*, f32, f32, s8, s8, s16);
|
||||
void func_8006A7C0(Player*, f32, f32, s8, s8);
|
||||
void func_8006AFD0(Player*, s8, s16, s8);
|
||||
void render_battle_balloon(Player*, s8, s16, s8);
|
||||
|
||||
void func_8006B7E4(Player*, s8);
|
||||
void func_8006B87C(Player*, s8);
|
||||
|
||||
+1
-1
@@ -616,7 +616,7 @@ void init_cloud_object(s32 objectIndex, s32 arg1, CloudData *arg2) {
|
||||
temp_v0->unk_09E = arg2->posY;
|
||||
temp_v0->sizeScaling = (f32) arg2->scalePercent / 100.0;
|
||||
temp_v0->activeTexture = &D_8018D220[arg2->subType];
|
||||
func_80073404(objectIndex, 0x40U, 0x20U, &D_0D005FB0);
|
||||
func_80073404(objectIndex, 0x40U, 0x20U, &D_0D005FB0[0]);
|
||||
temp_v0->primAlpha = 0x00FF;
|
||||
}
|
||||
|
||||
|
||||
+17
-5
@@ -90,7 +90,7 @@ s32 gControllerPak1NumPagesFree;
|
||||
s32 gControllerPak1FileNote;
|
||||
s32 gControllerPak2FileNote;
|
||||
s32 code_80091750_bss_pad2;
|
||||
SaveData gSaveData;
|
||||
ALIGNED8 SaveData gSaveData;
|
||||
|
||||
u8 D_8018ED90;
|
||||
u8 D_8018ED91;
|
||||
@@ -1152,7 +1152,7 @@ s32 D_800E84A0[] = {
|
||||
};
|
||||
|
||||
Vtx *D_800E84C0[] = {
|
||||
D_02007BB8, D_02007CD8, D_02007DF8,
|
||||
&D_02007BB8[0], &D_02007BB8[18], &D_02007BB8[36],
|
||||
};
|
||||
|
||||
Gfx *D_800E84CC[] = {
|
||||
@@ -2791,6 +2791,15 @@ Gfx *func_800959F8(Gfx *displayListHead, Vtx *arg1) {
|
||||
} else {
|
||||
index = ((gTextColor * 2) + ((s32) gGlobalTimer % 2)) - 4;
|
||||
}
|
||||
#ifdef AVOID_UB
|
||||
if (arg1 == D_02007BB8) {
|
||||
gSPDisplayList(displayListHead++, D_800E84CC[index]);
|
||||
} else if (arg1 == &D_02007BB8[18]) {
|
||||
gSPDisplayList(displayListHead++, D_800E84EC[index]);
|
||||
} else if (arg1 == &D_02007BB8[36]) {
|
||||
gSPDisplayList(displayListHead++, D_800E850C[index]);
|
||||
}
|
||||
#else
|
||||
if (arg1 == D_02007BB8) {
|
||||
gSPDisplayList(displayListHead++, D_800E84CC[index]);
|
||||
} else if (arg1 == D_02007CD8) {
|
||||
@@ -2798,6 +2807,9 @@ Gfx *func_800959F8(Gfx *displayListHead, Vtx *arg1) {
|
||||
} else if (arg1 == D_02007DF8) {
|
||||
gSPDisplayList(displayListHead++, D_800E850C[index]);
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
return displayListHead;
|
||||
}
|
||||
|
||||
@@ -2863,16 +2875,16 @@ func_80095BD0_label2:
|
||||
gDPLoadTextureTile_4b(displayListHead++, arg1, G_IM_FMT_I, arg4, 0, 0, 0, arg4, arg5, 0, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD);
|
||||
switch (arg4) {
|
||||
default:
|
||||
var_a1 = D_02007CD8;
|
||||
var_a1 = &D_02007BB8[18];
|
||||
break;
|
||||
case 16:
|
||||
var_a1 = D_02007CD8;
|
||||
var_a1 = &D_02007BB8[18];
|
||||
break;
|
||||
case 26:
|
||||
var_a1 = D_02007BB8;
|
||||
break;
|
||||
case 30:
|
||||
var_a1 = D_02007DF8;
|
||||
var_a1 = &D_02007BB8[36];
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
+2
-3
@@ -211,8 +211,7 @@ void thread9_crash_screen(UNUSED void *arg0)
|
||||
// Run only on the first iteration.
|
||||
if (sCounter == 0) {
|
||||
crash_screen_draw_square(pFramebuffer);
|
||||
//#define SKIP_DRAW_SQUARE
|
||||
#ifndef SKIP_DRAW_SQUARE
|
||||
#ifndef DEBUG
|
||||
while(TRUE)
|
||||
{
|
||||
read_controllers();
|
||||
@@ -231,7 +230,7 @@ void thread9_crash_screen(UNUSED void *arg0)
|
||||
}
|
||||
}
|
||||
#endif
|
||||
#ifdef CRASH_SCREEN_ENHANCEMENT
|
||||
#if DEBUG
|
||||
crash_screen_draw(thread);
|
||||
#else
|
||||
crash_screen_draw_info(pFramebuffer, thread);
|
||||
|
||||
+100
-43
@@ -3,7 +3,7 @@
|
||||
#include <PR/ultratypes.h>
|
||||
#include <PR/gbi.h>
|
||||
#include "data_segment2.h"
|
||||
#include <assets/startup_logo.h>"
|
||||
#include <assets/startup_logo.h>
|
||||
|
||||
Gfx D_02007650[] = {
|
||||
gsDPPipeSync(),
|
||||
@@ -104,168 +104,168 @@ Gfx D_02007818[] = {
|
||||
|
||||
Gfx D_02007838[] = {
|
||||
gsSPVertex(D_02007BB8, 2, 0),
|
||||
gsSPVertex(D_02007BD8, 2, 2),
|
||||
gsSPVertex(&D_02007BB8[2], 2, 2),
|
||||
gsSPDisplayList(common_rectangle_display),
|
||||
gsSPEndDisplayList(),
|
||||
};
|
||||
|
||||
Gfx D_02007858[] = {
|
||||
gsSPVertex(D_02007BB8, 2, 0),
|
||||
gsSPVertex(D_02007BF8, 2, 2),
|
||||
gsSPVertex(&D_02007BB8[4], 2, 2),
|
||||
gsSPDisplayList(common_rectangle_display),
|
||||
gsSPEndDisplayList(),
|
||||
};
|
||||
|
||||
Gfx D_02007878[] = {
|
||||
gsSPVertex(D_02007BB8, 2, 0),
|
||||
gsSPVertex(D_02007C18, 2, 2),
|
||||
gsSPVertex(&D_02007BB8[6], 2, 2),
|
||||
gsSPDisplayList(common_rectangle_display),
|
||||
gsSPEndDisplayList(),
|
||||
};
|
||||
|
||||
Gfx D_02007898[] = {
|
||||
gsSPVertex(D_02007BB8, 2, 0),
|
||||
gsSPVertex(D_02007C38, 2, 2),
|
||||
gsSPVertex(&D_02007BB8[8], 2, 2),
|
||||
gsSPDisplayList(common_rectangle_display),
|
||||
gsSPEndDisplayList(),
|
||||
};
|
||||
|
||||
Gfx D_020078B8[] = {
|
||||
gsSPVertex(D_02007BB8, 2, 0),
|
||||
gsSPVertex(D_02007C58, 2, 2),
|
||||
gsSPVertex(&D_02007BB8[10], 2, 2),
|
||||
gsSPDisplayList(common_rectangle_display),
|
||||
gsSPEndDisplayList(),
|
||||
};
|
||||
|
||||
Gfx D_020078D8[] = {
|
||||
gsSPVertex(D_02007BB8, 2, 0),
|
||||
gsSPVertex(D_02007C78, 2, 2),
|
||||
gsSPVertex(&D_02007BB8[12], 2, 2),
|
||||
gsSPDisplayList(common_rectangle_display),
|
||||
gsSPEndDisplayList(),
|
||||
};
|
||||
|
||||
Gfx D_020078F8[] = {
|
||||
gsSPVertex(D_02007BB8, 2, 0),
|
||||
gsSPVertex(D_02007C98, 2, 2),
|
||||
gsSPVertex(&D_02007BB8[14], 2, 2),
|
||||
gsSPDisplayList(common_rectangle_display),
|
||||
gsSPEndDisplayList(),
|
||||
};
|
||||
|
||||
Gfx D_02007918[] = {
|
||||
gsSPVertex(D_02007BB8, 2, 0),
|
||||
gsSPVertex(D_02007CB8, 2, 2),
|
||||
gsSPVertex(&D_02007BB8[16], 2, 2),
|
||||
gsSPDisplayList(common_rectangle_display),
|
||||
gsSPEndDisplayList(),
|
||||
};
|
||||
|
||||
Gfx D_02007938[] = {
|
||||
gsSPVertex(D_02007CD8, 2, 0),
|
||||
gsSPVertex(D_02007CF8, 2, 2),
|
||||
gsSPVertex(&D_02007BB8[18], 2, 0),
|
||||
gsSPVertex(&D_02007BB8[20], 2, 2),
|
||||
gsSPDisplayList(common_rectangle_display),
|
||||
gsSPEndDisplayList(),
|
||||
};
|
||||
|
||||
Gfx D_02007958[] = {
|
||||
gsSPVertex(D_02007CD8, 2, 0),
|
||||
gsSPVertex(D_02007D18, 2, 2),
|
||||
gsSPVertex(&D_02007BB8[18], 2, 0),
|
||||
gsSPVertex(&D_02007BB8[22], 2, 2),
|
||||
gsSPDisplayList(common_rectangle_display),
|
||||
gsSPEndDisplayList(),
|
||||
};
|
||||
|
||||
Gfx D_02007978[] = {
|
||||
gsSPVertex(D_02007CD8, 2, 0),
|
||||
gsSPVertex(D_02007D38, 2, 2),
|
||||
gsSPVertex(&D_02007BB8[18], 2, 0),
|
||||
gsSPVertex(&D_02007BB8[24], 2, 2),
|
||||
gsSPDisplayList(common_rectangle_display),
|
||||
gsSPEndDisplayList(),
|
||||
};
|
||||
|
||||
Gfx D_02007998[] = {
|
||||
gsSPVertex(D_02007CD8, 2, 0),
|
||||
gsSPVertex(D_02007D58, 2, 2),
|
||||
gsSPVertex(&D_02007BB8[18], 2, 0),
|
||||
gsSPVertex(&D_02007BB8[26], 2, 2),
|
||||
gsSPDisplayList(common_rectangle_display),
|
||||
gsSPEndDisplayList(),
|
||||
};
|
||||
|
||||
Gfx D_020079B8[] = {
|
||||
gsSPVertex(D_02007CD8, 2, 0),
|
||||
gsSPVertex(D_02007D78, 2, 2),
|
||||
gsSPVertex(&D_02007BB8[18], 2, 0),
|
||||
gsSPVertex(&D_02007BB8[28], 2, 2),
|
||||
gsSPDisplayList(common_rectangle_display),
|
||||
gsSPEndDisplayList(),
|
||||
};
|
||||
|
||||
Gfx D_020079D8[] = {
|
||||
gsSPVertex(D_02007CD8, 2, 0),
|
||||
gsSPVertex(D_02007D98, 2, 2),
|
||||
gsSPVertex(&D_02007BB8[18], 2, 0),
|
||||
gsSPVertex(&D_02007BB8[30], 2, 2),
|
||||
gsSPDisplayList(common_rectangle_display),
|
||||
gsSPEndDisplayList(),
|
||||
};
|
||||
|
||||
Gfx D_020079F8[] = {
|
||||
gsSPVertex(D_02007CD8, 2, 0),
|
||||
gsSPVertex(D_02007DB8, 2, 2),
|
||||
gsSPVertex(&D_02007BB8[18], 2, 0),
|
||||
gsSPVertex(&D_02007BB8[32], 2, 2),
|
||||
gsSPDisplayList(common_rectangle_display),
|
||||
gsSPEndDisplayList(),
|
||||
};
|
||||
|
||||
Gfx D_02007A18[] = {
|
||||
gsSPVertex(D_02007CD8, 2, 0),
|
||||
gsSPVertex(D_02007DD8, 2, 2),
|
||||
gsSPVertex(&D_02007BB8[18], 2, 0),
|
||||
gsSPVertex(&D_02007BB8[34], 2, 2),
|
||||
gsSPDisplayList(common_rectangle_display),
|
||||
gsSPEndDisplayList(),
|
||||
};
|
||||
|
||||
Gfx D_02007A38[] = {
|
||||
gsSPVertex(D_02007DF8, 2, 0),
|
||||
gsSPVertex(D_02007E18, 2, 2),
|
||||
gsSPVertex(&D_02007BB8[36], 2, 0),
|
||||
gsSPVertex(&D_02007BB8[38], 2, 2),
|
||||
gsSPDisplayList(common_rectangle_display),
|
||||
gsSPEndDisplayList(),
|
||||
};
|
||||
|
||||
Gfx D_02007A58[] = {
|
||||
gsSPVertex(D_02007DF8, 2, 0),
|
||||
gsSPVertex(D_02007E38, 2, 2),
|
||||
gsSPVertex(&D_02007BB8[36], 2, 0),
|
||||
gsSPVertex(&D_02007BB8[40], 2, 2),
|
||||
gsSPDisplayList(common_rectangle_display),
|
||||
gsSPEndDisplayList(),
|
||||
};
|
||||
|
||||
Gfx D_02007A78[] = {
|
||||
gsSPVertex(D_02007DF8, 2, 0),
|
||||
gsSPVertex(D_02007E58, 2, 2),
|
||||
gsSPVertex(&D_02007BB8[36], 2, 0),
|
||||
gsSPVertex(&D_02007BB8[42], 2, 2),
|
||||
gsSPDisplayList(common_rectangle_display),
|
||||
gsSPEndDisplayList(),
|
||||
};
|
||||
|
||||
Gfx D_02007A98[] = {
|
||||
gsSPVertex(D_02007DF8, 2, 0),
|
||||
gsSPVertex(D_02007E78, 2, 2),
|
||||
gsSPVertex(&D_02007BB8[36], 2, 0),
|
||||
gsSPVertex(&D_02007BB8[44], 2, 2),
|
||||
gsSPDisplayList(common_rectangle_display),
|
||||
gsSPEndDisplayList(),
|
||||
};
|
||||
|
||||
Gfx D_02007AB8[] = {
|
||||
gsSPVertex(D_02007DF8, 2, 0),
|
||||
gsSPVertex(D_02007E98, 2, 2),
|
||||
gsSPVertex(&D_02007BB8[36], 2, 0),
|
||||
gsSPVertex(&D_02007BB8[46], 2, 2),
|
||||
gsSPDisplayList(common_rectangle_display),
|
||||
gsSPEndDisplayList(),
|
||||
};
|
||||
|
||||
Gfx D_02007AD8[] = {
|
||||
gsSPVertex(D_02007DF8, 2, 0),
|
||||
gsSPVertex(D_02007EB8, 2, 2),
|
||||
gsSPVertex(&D_02007BB8[36], 2, 0),
|
||||
gsSPVertex(&D_02007BB8[48], 2, 2),
|
||||
gsSPDisplayList(common_rectangle_display),
|
||||
gsSPEndDisplayList(),
|
||||
};
|
||||
|
||||
Gfx D_02007AF8[] = {
|
||||
gsSPVertex(D_02007DF8, 2, 0),
|
||||
gsSPVertex(D_02007ED8, 2, 2),
|
||||
gsSPVertex(&D_02007BB8[36], 2, 0),
|
||||
gsSPVertex(&D_02007BB8[50], 2, 2),
|
||||
gsSPDisplayList(common_rectangle_display),
|
||||
gsSPEndDisplayList(),
|
||||
};
|
||||
|
||||
Gfx D_02007B18[] = {
|
||||
gsSPVertex(D_02007DF8, 2, 0),
|
||||
gsSPVertex(D_02007EF8, 2, 2),
|
||||
gsSPVertex(&D_02007BB8[36], 2, 0),
|
||||
gsSPVertex(&D_02007BB8[52], 2, 2),
|
||||
gsSPDisplayList(common_rectangle_display),
|
||||
gsSPEndDisplayList(),
|
||||
};
|
||||
@@ -281,8 +281,64 @@ UNUSED Vtx D_02007B38[] = {
|
||||
{{{ 0, 0, 0}, 0, { 0, 448}, {0xff, 0x00, 0x00, 0xff}}},
|
||||
};
|
||||
|
||||
//! @todo Place all these vertices in a single array
|
||||
// Access the correct vertex using sym[value]
|
||||
#ifdef AVOID_UB
|
||||
Vtx D_02007BB8[] = {
|
||||
{{{ 0, 65520, 0}, 0, { 0, 0}, {0xff, 0xff, 0xff, 0xff}}},
|
||||
{{{26, 65520, 0}, 0, {1600, 0}, {0xff, 0xff, 0xff, 0xff}}},
|
||||
{{{26, 0, 0}, 0, {1600, 960}, {0x00, 0x00, 0xff, 0xff}}},
|
||||
{{{ 0, 0, 0}, 0, { 0, 960}, {0x00, 0x00, 0xff, 0xff}}},
|
||||
{{{26, 0, 0}, 0, {1600, 960}, {0x00, 0xff, 0x00, 0xff}}},
|
||||
{{{ 0, 0, 0}, 0, { 0, 960}, {0x00, 0xff, 0x00, 0xff}}},
|
||||
{{{26, 0, 0}, 0, {1600, 960}, {0xff, 0x00, 0x00, 0xff}}},
|
||||
{{{ 0, 0, 0}, 0, { 0, 960}, {0xff, 0x00, 0x00, 0xff}}},
|
||||
{{{26, 0, 0}, 0, {1600, 960}, {0xff, 0xff, 0x00, 0xff}}},
|
||||
{{{ 0, 0, 0}, 0, { 0, 960}, {0xff, 0xff, 0x00, 0xff}}},
|
||||
{{{26, 0, 0}, 0, {1600, 960}, {0xff, 0x00, 0x00, 0xff}}},
|
||||
{{{ 0, 0, 0}, 0, { 0, 960}, {0xff, 0x00, 0x00, 0xff}}},
|
||||
{{{26, 0, 0}, 0, {1600, 960}, {0xff, 0x00, 0x00, 0xff}}},
|
||||
{{{ 0, 0, 0}, 0, { 0, 960}, {0xff, 0x00, 0x00, 0xff}}},
|
||||
{{{26, 0, 0}, 0, {1600, 960}, {0xff, 0x00, 0x00, 0xff}}},
|
||||
{{{ 0, 0, 0}, 0, { 0, 960}, {0xff, 0x00, 0x00, 0xff}}},
|
||||
{{{26, 0, 0}, 0, {1600, 960}, {0xff, 0x00, 0x00, 0xff}}},
|
||||
{{{ 0, 0, 0}, 0, { 0, 960}, {0xff, 0x00, 0x00, 0xff}}},
|
||||
{{{ 0, 65520, 0}, 0, { 0, 0}, {0xff, 0xff, 0xff, 0xff}}},
|
||||
{{{16, 65520, 0}, 0, {960, 0}, {0xff, 0xff, 0xff, 0xff}}},
|
||||
{{{16, 0, 0}, 0, {960, 960}, {0x00, 0x00, 0xff, 0xff}}},
|
||||
{{{ 0, 0, 0}, 0, { 0, 960}, {0x00, 0x00, 0xff, 0xff}}},
|
||||
{{{16, 0, 0}, 0, {960, 960}, {0x00, 0xff, 0x00, 0xff}}},
|
||||
{{{ 0, 0, 0}, 0, { 0, 960}, {0x00, 0xff, 0x00, 0xff}}},
|
||||
{{{16, 0, 0}, 0, {960, 960}, {0xff, 0x00, 0x00, 0xff}}},
|
||||
{{{ 0, 0, 0}, 0, { 0, 960}, {0xff, 0x00, 0x00, 0xff}}},
|
||||
{{{16, 0, 0}, 0, {960, 960}, {0xff, 0xff, 0x00, 0xff}}},
|
||||
{{{ 0, 0, 0}, 0, { 0, 960}, {0xff, 0xff, 0x00, 0xff}}},
|
||||
{{{16, 0, 0}, 0, {960, 960}, {0xff, 0x00, 0x00, 0xff}}},
|
||||
{{{ 0, 0, 0}, 0, { 0, 960}, {0xff, 0x00, 0x00, 0xff}}},
|
||||
{{{16, 0, 0}, 0, {960, 960}, {0xff, 0x00, 0x00, 0xff}}},
|
||||
{{{ 0, 0, 0}, 0, { 0, 960}, {0xff, 0x00, 0x00, 0xff}}},
|
||||
{{{16, 0, 0}, 0, {960, 960}, {0xff, 0x00, 0x00, 0xff}}},
|
||||
{{{ 0, 0, 0}, 0, { 0, 960}, {0xff, 0x00, 0x00, 0xff}}},
|
||||
{{{16, 0, 0}, 0, {960, 960}, {0xff, 0x00, 0x00, 0xff}}},
|
||||
{{{ 0, 0, 0}, 0, { 0, 960}, {0xff, 0x00, 0x00, 0xff}}},
|
||||
{{{ 0, 65504, 0}, 0, { 0, 0}, {0xff, 0xff, 0xff, 0xff}}},
|
||||
{{{30, 65504, 0}, 0, {1856, 0}, {0xff, 0xff, 0xff, 0xff}}},
|
||||
{{{30, 0, 0}, 0, {1856, 1984}, {0x00, 0x00, 0xff, 0xff}}},
|
||||
{{{ 0, 0, 0}, 0, { 0, 1984}, {0x00, 0x00, 0xff, 0xff}}},
|
||||
{{{30, 0, 0}, 0, {1856, 1984}, {0x00, 0xff, 0x00, 0xff}}},
|
||||
{{{ 0, 0, 0}, 0, { 0, 1984}, {0x00, 0xff, 0x00, 0xff}}},
|
||||
{{{30, 0, 0}, 0, {1856, 1984}, {0xff, 0x00, 0x00, 0xff}}},
|
||||
{{{ 0, 0, 0}, 0, { 0, 1984}, {0xff, 0x00, 0x00, 0xff}}},
|
||||
{{{30, 0, 0}, 0, {1856, 1984}, {0xff, 0xff, 0x00, 0xff}}},
|
||||
{{{ 0, 0, 0}, 0, { 0, 1984}, {0xff, 0xff, 0x00, 0xff}}},
|
||||
{{{30, 0, 0}, 0, {1856, 1984}, {0xff, 0x00, 0x00, 0xff}}},
|
||||
{{{ 0, 0, 0}, 0, { 0, 1984}, {0xff, 0x00, 0x00, 0xff}}},
|
||||
{{{30, 0, 0}, 0, {1856, 1984}, {0xff, 0x00, 0x00, 0xff}}},
|
||||
{{{ 0, 0, 0}, 0, { 0, 1984}, {0xff, 0x00, 0x00, 0xff}}},
|
||||
{{{30, 0, 0}, 0, {1856, 1984}, {0xff, 0x00, 0x00, 0xff}}},
|
||||
{{{ 0, 0, 0}, 0, { 0, 1984}, {0xff, 0x00, 0x00, 0xff}}},
|
||||
{{{30, 0, 0}, 0, {1856, 1984}, {0xff, 0x00, 0x00, 0xff}}},
|
||||
{{{ 0, 0, 0}, 0, { 0, 1984}, {0xff, 0x00, 0x00, 0xff}}},
|
||||
};
|
||||
#else
|
||||
Vtx D_02007BB8[] = {
|
||||
{{{ 0, 65520, 0}, 0, { 0, 0}, {0xff, 0xff, 0xff, 0xff}}},
|
||||
{{{26, 65520, 0}, 0, {1600, 0}, {0xff, 0xff, 0xff, 0xff}}},
|
||||
@@ -417,6 +473,7 @@ Vtx D_02007EF8[] = {
|
||||
{{{30, 0, 0}, 0, {1856, 1984}, {0xff, 0x00, 0x00, 0xff}}},
|
||||
{{{ 0, 0, 0}, 0, { 0, 1984}, {0xff, 0x00, 0x00, 0xff}}},
|
||||
};
|
||||
#endif
|
||||
|
||||
Gfx D_02007F18[] = {
|
||||
gsDPPipeSync(),
|
||||
|
||||
@@ -0,0 +1,13 @@
|
||||
#include <ultra64.h>
|
||||
#include <macros.h>
|
||||
|
||||
/**
|
||||
* Trig tables get loaded into memory at this location.
|
||||
* See trig_tables.c for the real file.
|
||||
*/
|
||||
|
||||
#ifdef VERSION_EU
|
||||
ALIGNED8 u8 trigTablesPadding[0x5750];
|
||||
#else
|
||||
ALIGNED8 u8 trigTablesPadding[0x5810];
|
||||
#endif
|
||||
@@ -51,6 +51,7 @@ extern Gfx D_02008058[];
|
||||
extern Gfx common_rectangle_display[];
|
||||
|
||||
extern Vtx D_02007BB8[];
|
||||
#ifndef AVOID_UB
|
||||
extern Vtx D_02007BD8[];
|
||||
extern Vtx D_02007BF8[];
|
||||
extern Vtx D_02007C18[];
|
||||
@@ -77,5 +78,7 @@ extern Vtx D_02007E98[];
|
||||
extern Vtx D_02007EB8[];
|
||||
extern Vtx D_02007ED8[];
|
||||
extern Vtx D_02007EF8[];
|
||||
#endif
|
||||
|
||||
|
||||
#endif
|
||||
|
||||
+9
-10
@@ -1,4 +1,6 @@
|
||||
#define STRANGE_MAIN_HEADER_H
|
||||
#ifndef GCC
|
||||
#define D_800DC510_AS_U16
|
||||
#endif
|
||||
#include <ultra64.h>
|
||||
#include <PR/os.h>
|
||||
#include <PR/ucode.h>
|
||||
@@ -83,11 +85,11 @@ Player *gPlayerTwoCopy = &gPlayers[1];
|
||||
UNUSED Player *gPlayerThreeCopy = &gPlayers[2];
|
||||
UNUSED Player *gPlayerFourCopy = &gPlayers[3];
|
||||
|
||||
s32 D_800FD850[3];
|
||||
UNUSED s32 D_800FD850[3];
|
||||
struct GfxPool gGfxPools[2];
|
||||
struct GfxPool *gGfxPool;
|
||||
|
||||
s32 gfxPool_padding; // is this necessary?
|
||||
UNUSED s32 gfxPool_padding; // is this necessary?
|
||||
struct VblankHandler gGameVblankHandler;
|
||||
struct VblankHandler sSoundVblankHandler;
|
||||
OSMesgQueue gDmaMesgQueue, gGameVblankQueue, gGfxVblankQueue, unused_gMsgQueue, gIntrMesgQueue, gSPTaskMesgQueue;
|
||||
@@ -103,15 +105,14 @@ OSMesgQueue gSIEventMesgQueue;
|
||||
OSMesg gSIEventMesgBuf[3];
|
||||
|
||||
OSContStatus gControllerStatuses[4];
|
||||
|
||||
OSContPad gControllerPads[4];
|
||||
u8 gControllerBits;
|
||||
|
||||
struct UnkStruct_8015F584 D_8014F110[1024];
|
||||
u16 gNumActors;
|
||||
u16 gMatrixObjectCount;
|
||||
s32 gTickSpeed;
|
||||
f32 D_80150118;
|
||||
|
||||
u16 wasSoftReset;
|
||||
u16 D_8015011E;
|
||||
|
||||
@@ -120,9 +121,6 @@ s32 gGotoMode;
|
||||
UNUSED s32 D_80150128;
|
||||
UNUSED s32 D_8015012C;
|
||||
f32 gCameraZoom[4]; // look like to be the fov of each character
|
||||
//f32 D_80150134;
|
||||
//f32 D_80150138;
|
||||
//f32 D_8015013C;
|
||||
UNUSED s32 D_80150140;
|
||||
UNUSED s32 D_80150144;
|
||||
f32 gScreenAspect;
|
||||
@@ -133,6 +131,7 @@ UNUSED f32 D_80150154;
|
||||
struct D_80150158 gD_80150158[16];
|
||||
uintptr_t gSegmentTable[16];
|
||||
Gfx *gDisplayListHead;
|
||||
|
||||
struct SPTask *gGfxSPTask;
|
||||
s32 D_801502A0;
|
||||
s32 D_801502A4;
|
||||
@@ -161,8 +160,8 @@ ALIGNED8 u8 gAudioThreadStack[STACKSIZE];
|
||||
UNUSED OSThread D_8015CD30;
|
||||
UNUSED ALIGNED8 u8 D_8015CD30_Stack[STACKSIZE / 2];
|
||||
|
||||
u8 gGfxSPTaskYieldBuffer[4352];
|
||||
u32 gGfxSPTaskStack[256];
|
||||
ALIGNED8 u8 gGfxSPTaskYieldBuffer[4352];
|
||||
ALIGNED8 u32 gGfxSPTaskStack[256];
|
||||
OSMesg gPIMesgBuf[32];
|
||||
OSMesgQueue gPIMesgQueue;
|
||||
|
||||
|
||||
+15
-9
@@ -136,23 +136,21 @@ extern Player *gPlayerEight;
|
||||
extern Player *gPlayerOneCopy;
|
||||
extern Player *gPlayerTwoCopy;
|
||||
|
||||
extern s32 D_800FD850[];
|
||||
extern struct GfxPool gGfxPools[];
|
||||
extern struct GfxPool *gGfxPool;
|
||||
|
||||
extern s32 gfxPool_padding;
|
||||
extern struct VblankHandler gGameVblankHandler;
|
||||
extern struct VblankHandler sSoundVblankHandler;
|
||||
extern OSMesgQueue gDmaMesgQueue, gGameVblankQueue, gGfxVblankQueue, unused_gMsgQueue, gIntrMesgQueue, gSPTaskMesgQueue;
|
||||
extern OSMesgQueue sSoundMesgQueue;
|
||||
extern OSMesg sSoundMesgBuf[];
|
||||
extern OSMesg gDmaMesgBuf[], gGameMesgBuf;
|
||||
extern OSMesg sSoundMesgBuf[1];
|
||||
extern OSMesg gDmaMesgBuf[1], gGameMesgBuf;
|
||||
extern OSMesg gGfxMesgBuf[];
|
||||
extern OSMesg gIntrMesgBuf[], gSPTaskMesgBuf[];
|
||||
extern OSMesg gIntrMesgBuf[16], gSPTaskMesgBuf[16];
|
||||
extern OSMesg gMainReceivedMesg;
|
||||
extern OSIoMesg gDmaIoMesg;
|
||||
extern OSMesgQueue gSIEventMesgQueue;
|
||||
extern OSMesg gSIEventMesgBuf[];
|
||||
extern OSMesg gSIEventMesgBuf[3];
|
||||
|
||||
extern OSContStatus gControllerStatuses[];
|
||||
|
||||
@@ -203,11 +201,19 @@ extern u8 gGfxSPTaskYieldBuffer[];
|
||||
extern u32 gGfxSPTaskStack[];
|
||||
extern OSMesg gPIMesgBuf[];
|
||||
extern OSMesgQueue gPIMesgQueue;
|
||||
|
||||
void race_logic_loop(void);
|
||||
extern s32 gGamestate;
|
||||
#ifndef STRANGE_MAIN_HEADER_H
|
||||
extern s32 D_800DC510;
|
||||
#ifndef D_800DC510_AS_U16
|
||||
// Prevent overlapping writes in gcc
|
||||
// Whether D_800DC510 was intended to be a separate variable in main.c from the rest of the game is unknown
|
||||
#ifdef GCC
|
||||
extern u16 D_800DC510;
|
||||
#else
|
||||
extern s32 D_800DC510;
|
||||
#endif
|
||||
#endif
|
||||
|
||||
extern u16 D_800DC514;
|
||||
extern u16 creditsRenderMode;
|
||||
extern u16 gDemoMode;
|
||||
extern u16 gEnableDebugMode;
|
||||
|
||||
@@ -1,10 +1,15 @@
|
||||
#include "libultra_internal.h"
|
||||
|
||||
OSThreadTail __osThreadTail = {NULL, -1};
|
||||
#ifndef AVOID_UB
|
||||
OSThread *__osThreadTail = NULL;
|
||||
u32 __osTest = -1;
|
||||
OSThread *__osRunQueue = (OSThread *) &__osThreadTail;
|
||||
OSThread *__osActiveQueue = (OSThread *) &__osThreadTail;
|
||||
OSThread *__osRunningThread = NULL;
|
||||
OSThread *__osFaultedThread = NULL;
|
||||
#else
|
||||
OSThread_ListHead __osThreadTail_fix = {NULL, -1, (OSThread *) &__osThreadTail_fix, (OSThread *) &__osThreadTail_fix, NULL, 0};
|
||||
#endif
|
||||
|
||||
void __osDequeueThread(OSThread **queue, OSThread *thread) {
|
||||
register OSThread **a2;
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
#include "ultra64.h"
|
||||
#include "osint.h"
|
||||
#include "piint.h"
|
||||
#include "libultra_internal.h"
|
||||
|
||||
extern OSThread *__osRunQueue;
|
||||
static void __osLeoResume(void);
|
||||
static void __osLeoAbnormalResume(void);
|
||||
extern u8 leoDiskStack[OS_PIM_STACKSIZE]; //technically should have a OS_LEO_STACKSIZE or something..
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
#ifndef _LIBULTRA_INTERNAL_H_
|
||||
#define _LIBULTRA_INTERNAL_H_
|
||||
#include <ultra64.h>
|
||||
#include <PR/os_thread.h>
|
||||
#include "macros.h"
|
||||
|
||||
typedef struct __OSEventState
|
||||
@@ -15,15 +16,41 @@ typedef struct __osThreadTail
|
||||
OSPri priority;
|
||||
} OSThreadTail;
|
||||
|
||||
/*
|
||||
* This define is needed because the original definitions in __osDequeueThread.c are declared
|
||||
* seperately instead of part of a single struct, however some code alises over this memory
|
||||
* assuming a unified structure. To fix this, we declare the full type here and then alias the
|
||||
* symbol names to the correct members in AVOID_UB.
|
||||
*/
|
||||
typedef struct
|
||||
{
|
||||
/*0x00*/ struct OSThread_s *next;
|
||||
/*0x04*/ OSPri priority;
|
||||
/*0x08*/ struct OSThread_s *queue;
|
||||
/*0x0C*/ struct OSThread_s *tlnext;
|
||||
/*0x10*/ struct OSThread_s *unk10;
|
||||
/*0x14*/ u32 unk14;
|
||||
} OSThread_ListHead;
|
||||
#ifdef AVOID_UB
|
||||
|
||||
// Now fix the symbols to the new one.
|
||||
extern OSThread_ListHead __osThreadTail_fix;
|
||||
|
||||
#define __osThreadTail __osThreadTail_fix.next
|
||||
#define D_80334894 __osThreadTail_fix.priority
|
||||
#define __osRunQueue __osThreadTail_fix.queue
|
||||
#define __osActiveQueue __osThreadTail_fix.tlnext
|
||||
#define __osRunningThread __osThreadTail_fix.unk10
|
||||
#else
|
||||
// Original OSThread_ListHead definitions
|
||||
extern OSThreadTail __osThreadTail;
|
||||
extern OSThread *__osThreadTail;
|
||||
extern OSThread *__osActiveQueue;
|
||||
extern OSThread *__osRunQueue;
|
||||
extern OSThread *__osRunningThread;
|
||||
|
||||
#endif
|
||||
|
||||
// Original EEPROM definitions
|
||||
extern ALIGNED8 u32 D_80365E00[15];
|
||||
extern u32 D_80365E00[15];
|
||||
extern u32 D_80365E3C;
|
||||
|
||||
typedef struct {
|
||||
|
||||
@@ -7,7 +7,7 @@ unsigned long long __ull_rem(unsigned long long a0, unsigned long long a1)
|
||||
return a0 % a1;
|
||||
}
|
||||
unsigned long long __ull_div(unsigned long long a0, unsigned long long a1)
|
||||
{
|
||||
{
|
||||
return a0 / a1;
|
||||
}
|
||||
|
||||
@@ -34,19 +34,19 @@ unsigned long long __ll_mul(unsigned long long a0, unsigned long long a1)
|
||||
void __ull_divremi(unsigned long long *div, unsigned long long *rem, unsigned long long a2, unsigned short a3)
|
||||
{
|
||||
*div = a2 / a3;
|
||||
*rem = a2 % a3;
|
||||
}
|
||||
*rem = a2 % a3;
|
||||
}
|
||||
long long __ll_mod(long long a0, long long a1)
|
||||
{
|
||||
long long tmp = a0 % a1;
|
||||
if ((tmp < 0 && a1 > 0) || (tmp > 0 && a1 < 0))
|
||||
{
|
||||
|
||||
tmp += a1;
|
||||
tmp += a1;
|
||||
}
|
||||
return tmp;
|
||||
}
|
||||
|
||||
|
||||
long long __ll_rshift(long long a0, long long a1)
|
||||
{
|
||||
return a0 >> a1;
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
#include "libultra_internal.h"
|
||||
|
||||
void __osCleanupThread(void);
|
||||
extern OSThread *__osActiveQueue;
|
||||
|
||||
|
||||
// Don't warn about pointer->u64 cast
|
||||
|
||||
@@ -1,8 +1,7 @@
|
||||
#include "libultra_internal.h"
|
||||
#include "controller.h"
|
||||
|
||||
extern u64 osClockRate;
|
||||
extern u8 D_80365D20;
|
||||
extern u8 _osContNumControllers;
|
||||
extern OSTimer D_80196548;
|
||||
extern OSMesgQueue _osContMesgQueue;
|
||||
extern OSMesg _osContMesgBuff[4];
|
||||
|
||||
+2
-21
@@ -1,30 +1,11 @@
|
||||
#include "libultra_internal.h"
|
||||
#include "controller.h"
|
||||
#include "macros.h"
|
||||
#include "controller.h"
|
||||
|
||||
extern u8 __osContLastCmd;
|
||||
extern u8 _osLastSentSiCmd;
|
||||
|
||||
extern OSPifRam __osEepPifRam;
|
||||
|
||||
typedef struct {
|
||||
u8 unk00;
|
||||
u8 unk01;
|
||||
u8 unk02;
|
||||
u8 unk03;
|
||||
u8 unk04;
|
||||
u8 unk05;
|
||||
u8 unk06;
|
||||
u8 unk07;
|
||||
} unkStruct3;
|
||||
|
||||
typedef struct {
|
||||
u8 unk00;
|
||||
u8 unk01;
|
||||
u8 unk02;
|
||||
u8 unk03;
|
||||
unkStruct3 unk04;
|
||||
} unkStruct2;
|
||||
|
||||
s32 __osEepStatus(OSMesgQueue *, OSContStatus *);
|
||||
void __osPackEepReadData(u8);
|
||||
|
||||
|
||||
@@ -7,25 +7,6 @@ OSPifRam __osEepPifRam;
|
||||
|
||||
extern u8 __osContLastCmd;
|
||||
|
||||
typedef struct {
|
||||
u8 unk00;
|
||||
u8 unk01;
|
||||
u8 unk02;
|
||||
u8 unk03;
|
||||
u8 unk04;
|
||||
u8 unk05;
|
||||
u8 unk06;
|
||||
u8 unk07;
|
||||
} unkStruct3;
|
||||
|
||||
typedef struct {
|
||||
u8 unk00;
|
||||
u8 unk01;
|
||||
u8 unk02;
|
||||
u8 unk03;
|
||||
unkStruct3 unk04;
|
||||
} unkStruct2;
|
||||
|
||||
s32 __osEepStatus(OSMesgQueue *, OSContStatus *);
|
||||
void __osPackEepWriteData(u8, u8 *);
|
||||
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
#ifndef _OSINT_H
|
||||
#define _OSINT_H
|
||||
#include "libultra_internal.h"
|
||||
#include <macros.h>
|
||||
|
||||
//maybe should be in exceptasm.h?
|
||||
extern void __osEnqueueAndYield(OSThread **);
|
||||
@@ -15,10 +16,14 @@ extern void __osTimerInterrupt(void);
|
||||
extern u32 __osProbeTLB(void *);
|
||||
extern int __osSpDeviceBusy(void);
|
||||
|
||||
#ifdef AVOID_UB
|
||||
extern OSThread_ListHead __osThreadTail_fix;
|
||||
#else
|
||||
extern OSThread *__osRunningThread;
|
||||
extern OSThread *__osActiveQueue;
|
||||
extern OSThread *__osFaultedThread;
|
||||
extern OSThread *__osRunQueue;
|
||||
#endif
|
||||
|
||||
extern OSTimer *__osTimerList;
|
||||
extern OSTimer __osBaseTimer;
|
||||
|
||||
@@ -7,6 +7,7 @@
|
||||
#include <PR/rcp.h>
|
||||
#include "buffers/trig_tables.h"
|
||||
#include "math.h"
|
||||
#include "memory.h"
|
||||
|
||||
#pragma intrinsic (sqrtf,fabs)
|
||||
|
||||
|
||||
@@ -22,6 +22,7 @@ s32 render_set_position(Mat4, s32);
|
||||
f32 func_802B51E8(Vec3f, Vec3f);
|
||||
s32 get_angle_between_two_vectors(Vec3f, Vec3f);
|
||||
u32 func_802B5258(Vec3f, Vec3s);
|
||||
void func_802B5794(Mat4, Vec3f, Vec3f);
|
||||
void vec3f_set(Vec3f, f32, f32, f32);
|
||||
void vec3s_set(Vec3s, s16, s16, s16);
|
||||
void *vec3f_copy_return(Vec3f, Vec3f);
|
||||
|
||||
@@ -26,6 +26,7 @@ struct UnkStruct_802B8CD4 D_802B8CD4[] = {
|
||||
0
|
||||
};
|
||||
s32 D_802B8CE4 = 0; // pad
|
||||
s32 memoryPadding[2];
|
||||
|
||||
/**
|
||||
* @brief Returns the address of the next available memory location and updates the memory pointer
|
||||
|
||||
@@ -563,19 +563,19 @@ UNUSED void func_80046C78(s32 arg0, s32 arg1, u16 arg2, f32 arg3, u8 *texture) {
|
||||
}
|
||||
|
||||
UNUSED void func_80046CDC(s32 arg0, s32 arg1, u16 arg2, f32 arg3, u8 *texture) {
|
||||
func_800464D0(arg0, arg1, arg2, arg3, texture, &D_0D005FB0, 64, 32, 64, 32);
|
||||
func_800464D0(arg0, arg1, arg2, arg3, texture, D_0D005FB0, 64, 32, 64, 32);
|
||||
}
|
||||
|
||||
UNUSED void func_80046D40(Vec3f arg0, Vec3su arg1, f32 arg2, u8 *texture) {
|
||||
func_80046808(arg0, arg1, arg2, texture, &D_0D005FB0, 64, 32, 64, 32);
|
||||
func_80046808(arg0, arg1, arg2, texture, D_0D005FB0, 64, 32, 64, 32);
|
||||
}
|
||||
|
||||
UNUSED void func_80046D90(s32 arg0, s32 arg1, u16 arg2, f32 arg3, u8 *texture) {
|
||||
func_800464D0(arg0, arg1, arg2, arg3, texture, D_0D0060B0, 64, 64, 64, 32);
|
||||
func_800464D0(arg0, arg1, arg2, arg3, texture, common_vtx_hedgehog, 64, 64, 64, 32);
|
||||
}
|
||||
|
||||
UNUSED void func_80046DF4(s32 arg0, s32 arg1, u16 arg2, f32 arg3, s32 arg4, u8 *texture) {
|
||||
func_800465B8(arg0, arg1, arg2, arg3, arg4, texture, D_0D0060B0, 64, 64, 64, 32);
|
||||
func_800465B8(arg0, arg1, arg2, arg3, arg4, texture, common_vtx_hedgehog, 64, 64, 64, 32);
|
||||
}
|
||||
|
||||
void load_texture_and_tlut(u8 *tlut, u8 *texture, s32 width, s32 height) {
|
||||
@@ -3528,7 +3528,7 @@ void func_80053D74(s32 objectIndex, UNUSED s32 arg1, s32 vertexIndex) {
|
||||
D_80183E80[2] = (s16) (temp_v0->unk_084[6] + 0x8000);
|
||||
rsp_set_matrix_transformation(temp_v0->pos, (u16 *) D_80183E80, temp_v0->sizeScaling);
|
||||
set_color_render((s32) temp_v0->unk_084[0], (s32) temp_v0->unk_084[1], (s32) temp_v0->unk_084[2], (s32) temp_v0->unk_084[3], (s32) temp_v0->unk_084[4], (s32) temp_v0->unk_084[5], (s32) temp_v0->primAlpha);
|
||||
gSPVertex(gDisplayListHead++, &D_0D0060B0[vertexIndex], 4, 0);
|
||||
gSPVertex(gDisplayListHead++, &common_vtx_hedgehog[vertexIndex], 4, 0);
|
||||
gSPDisplayList(gDisplayListHead++, common_rectangle_display);
|
||||
}
|
||||
}
|
||||
@@ -3906,7 +3906,7 @@ void draw_crabs(s32 objectIndex, s32 cameraId) {
|
||||
camera = &camera1[cameraId];
|
||||
func_8004A6EC(objectIndex, 0.5f);
|
||||
gObjectList[objectIndex].orientation[1] = func_800418AC(gObjectList[objectIndex].pos[0], gObjectList[objectIndex].pos[2], camera->pos);
|
||||
draw_2d_texture_at(gObjectList[objectIndex].pos, gObjectList[objectIndex].orientation, gObjectList[objectIndex].sizeScaling, (u8 *) gObjectList[objectIndex].activeTLUT, gObjectList[objectIndex].activeTexture, D_0D0060B0, 0x00000040, 0x00000040, 0x00000040, 0x00000020);
|
||||
draw_2d_texture_at(gObjectList[objectIndex].pos, gObjectList[objectIndex].orientation, gObjectList[objectIndex].sizeScaling, (u8 *) gObjectList[objectIndex].activeTLUT, gObjectList[objectIndex].activeTexture, common_vtx_hedgehog, 0x00000040, 0x00000040, 0x00000040, 0x00000020);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4161,7 +4161,7 @@ void render_object_neon(s32 cameraId) {
|
||||
object = &gObjectList[objectIndex];
|
||||
if ((object->state >= 2) && (is_obj_index_flag_status_inactive(objectIndex, 0x00080000) != 0) && (is_object_visible_on_camera(objectIndex, camera, 0x2AABU) != 0)) {
|
||||
object->orientation[1] = angle_between_object_camera(objectIndex, camera);
|
||||
draw_2d_texture_at(object->pos, object->orientation, object->sizeScaling, (u8 *) object->activeTLUT, object->activeTexture, D_0D0060B0, 0x00000040, 0x00000040, 0x00000040, 0x00000020);
|
||||
draw_2d_texture_at(object->pos, object->orientation, object->sizeScaling, (u8 *) object->activeTLUT, object->activeTexture, common_vtx_hedgehog, 0x00000040, 0x00000040, 0x00000040, 0x00000020);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2955,7 +2955,7 @@ void init_obj_lakitu_red_flag_countdown(s32 objectIndex, s32 arg1) {
|
||||
D_8018D168 = 0;
|
||||
}
|
||||
init_texture_object(objectIndex, (u8 *) common_tlut_lakitu_countdown, gTextureLakituNoLights1, 0x38U, (u16) 0x00000048);
|
||||
gObjectList[objectIndex].vertex = D_0D005EB0;
|
||||
gObjectList[objectIndex].vertex = common_vtx_lakitu;
|
||||
gObjectList[objectIndex].sizeScaling = 0.15f;
|
||||
set_object_flag_status_false(objectIndex, 0x00000010);
|
||||
func_80072488(objectIndex);
|
||||
@@ -3048,7 +3048,7 @@ void init_obj_lakitu_red_flag(s32 objectIndex, s32 playerIndex) {
|
||||
init_texture_object(objectIndex, common_tlut_lakitu_checkered_flag, gTextureLakituCheckeredFlag01, 0x48U, (u16) 0x00000038);
|
||||
temp_v0 = &gObjectList[objectIndex];
|
||||
temp_v0->activeTexture = D_8018C028;
|
||||
temp_v0->vertex = D_0D006730;
|
||||
temp_v0->vertex = common_vtx_also_lakitu;
|
||||
temp_v0->pos[2] = 5000.0f;
|
||||
temp_v0->pos[1] = 5000.0f;
|
||||
temp_v0->pos[0] = 5000.0f;
|
||||
@@ -3298,7 +3298,7 @@ void func_8007A060(s32 objectIndex, s32 playerIndex) {
|
||||
init_texture_object(objectIndex, common_tlut_lakitu_second_lap, gTextureLakituSecondLap01, 0x48U, (u16) 0x00000038);
|
||||
temp_v0 = &gObjectList[objectIndex];
|
||||
temp_v0->activeTexture = D_8018C028;
|
||||
temp_v0->vertex = D_0D006730;
|
||||
temp_v0->vertex = common_vtx_also_lakitu;
|
||||
temp_v0->pos[2] = 5000.0f;
|
||||
temp_v0->pos[1] = 5000.0f;
|
||||
temp_v0->pos[0] = 5000.0f;
|
||||
@@ -3346,7 +3346,7 @@ void func_8007A228(s32 objectIndex, s32 playerIndex) {
|
||||
init_texture_object(objectIndex, common_tlut_lakitu_final_lap, gTextureLakituFinalLap01, 0x48U, (u16) 0x00000038);
|
||||
temp_v0 = &gObjectList[objectIndex];
|
||||
temp_v0->activeTexture = D_8018C028;
|
||||
temp_v0->vertex = D_0D006730;
|
||||
temp_v0->vertex = common_vtx_also_lakitu;
|
||||
temp_v0->pos[2] = 5000.0f;
|
||||
temp_v0->pos[1] = 5000.0f;
|
||||
temp_v0->pos[0] = 5000.0f;
|
||||
@@ -3392,7 +3392,7 @@ void func_8007A3F0(s32 objectIndex, s32 arg1) {
|
||||
func_800791F0(objectIndex, arg1);
|
||||
init_texture_object(objectIndex, common_tlut_lakitu_reverse, gTextureLakituReverse01, 0x48U, (u16) 0x00000038);
|
||||
gObjectList[objectIndex].activeTexture = D_8018C028;
|
||||
gObjectList[objectIndex].vertex = D_0D006730;
|
||||
gObjectList[objectIndex].vertex = common_vtx_also_lakitu;
|
||||
gObjectList[objectIndex].pos[2] = var;
|
||||
gObjectList[objectIndex].pos[1] = var;
|
||||
gObjectList[objectIndex].pos[0] = var;
|
||||
@@ -6698,7 +6698,7 @@ void func_8008311C(s32 objectIndex, s32 arg1) {
|
||||
temp_s0 = &gObjectList[objectIndex];
|
||||
temp_s0->activeTLUT = d_course_yoshi_valley_hedgehog_tlut;
|
||||
temp_s0->activeTexture = d_course_yoshi_valley_hedgehog;
|
||||
temp_s0->vertex = D_0D0060B0;
|
||||
temp_s0->vertex = common_vtx_hedgehog;
|
||||
temp_s0->sizeScaling = 0.2f;
|
||||
temp_s0->itemDisplay = 0;
|
||||
func_80072488(objectIndex);
|
||||
@@ -6754,7 +6754,7 @@ void func_800833D0(s32 objectIndex, s32 arg1) {
|
||||
break;
|
||||
}
|
||||
if (gObjectList[objectIndex].itemDisplay == 0) {
|
||||
gObjectList[objectIndex].vertex = D_0D0060B0;
|
||||
gObjectList[objectIndex].vertex = common_vtx_hedgehog;
|
||||
} else {
|
||||
gObjectList[objectIndex].vertex = D_0D006130;
|
||||
}
|
||||
@@ -6897,7 +6897,7 @@ void func_80083A94(s32 objectIndex) {
|
||||
|
||||
void func_80083B0C(s32 objectIndex) {
|
||||
init_texture_object(objectIndex, d_course_frappe_snowland_snowman_tlut, d_course_frappe_snowland_snowman_body, 0x40U, (u16) 0x00000040);
|
||||
gObjectList[objectIndex].vertex = D_0D0060B0;
|
||||
gObjectList[objectIndex].vertex = common_vtx_hedgehog;
|
||||
gObjectList[objectIndex].sizeScaling = 0.1f;
|
||||
gObjectList[objectIndex].itemDisplay = 0;
|
||||
func_80072488(objectIndex);
|
||||
|
||||
Reference in New Issue
Block a user