Rename some Object related function and property (#531)
* rename some variables
This commit is contained in:
parent
7fd1bd2edf
commit
6716570e2a
|
|
@ -49,7 +49,7 @@ glabel func_80082F1C
|
|||
/* 083BBC 80082FBC 46802120 */ cvt.s.w $f4, $f4
|
||||
/* 083BC0 80082FC0 44058000 */ mfc1 $a1, $f16
|
||||
/* 083BC4 80082FC4 44072000 */ mfc1 $a3, $f4
|
||||
/* 083BC8 80082FC8 0C022DF5 */ jal func_8008B7D4
|
||||
/* 083BC8 80082FC8 0C022DF5 */ jal set_obj_origin_pos
|
||||
/* 083BCC 80082FCC 00000000 */ nop
|
||||
/* 083BD0 80082FD0 44800000 */ mtc1 $zero, $f0
|
||||
/* 083BD4 80082FD4 02002025 */ move $a0, $s0
|
||||
|
|
@ -62,7 +62,7 @@ glabel func_80082F1C
|
|||
/* 083BF0 80082FF0 02002025 */ move $a0, $s0
|
||||
/* 083BF4 80082FF4 00002825 */ move $a1, $zero
|
||||
/* 083BF8 80082FF8 00003825 */ move $a3, $zero
|
||||
/* 083BFC 80082FFC 0C022E22 */ jal func_8008B888
|
||||
/* 083BFC 80082FFC 0C022E22 */ jal set_obj_direction_angle
|
||||
/* 083C00 80083000 94460006 */ lhu $a2, 6($v0)
|
||||
/* 083C04 80083004 8FBF001C */ lw $ra, 0x1c($sp)
|
||||
/* 083C08 80083008 8FB00018 */ lw $s0, 0x18($sp)
|
||||
|
|
|
|||
|
|
@ -16,7 +16,7 @@ glabel func_80086074
|
|||
/* 086CAC 800860AC 8C460004 */ lw $a2, 4($v0)
|
||||
/* 086CB0 800860B0 8C470008 */ lw $a3, 8($v0)
|
||||
/* 086CB4 800860B4 44054000 */ mfc1 $a1, $f8
|
||||
/* 086CB8 800860B8 0C022DF5 */ jal func_8008B7D4
|
||||
/* 086CB8 800860B8 0C022DF5 */ jal set_obj_origin_pos
|
||||
/* 086CBC 800860BC 00000000 */ nop
|
||||
/* 086CC0 800860C0 8FA80024 */ lw $t0, 0x24($sp)
|
||||
/* 086CC4 800860C4 3C0A0600 */ lui $t2, %hi(d_course_rainbow_road_static_tluts) # $t2, 0x600
|
||||
|
|
|
|||
|
|
@ -8538,7 +8538,7 @@ Gfx d_course_koopa_troopa_beach_dl_16990[] =
|
|||
gsSPEndDisplayList(),
|
||||
};
|
||||
|
||||
// 0x60169b0
|
||||
//! 0x60169b
|
||||
u32 d_course_koopa_troopa_beach_unk4[] = {
|
||||
0x00000001,
|
||||
0x00000002,
|
||||
|
|
|
|||
|
|
@ -10867,7 +10867,7 @@ animation_type_2 *d_course_yoshi_valley_unk4[] = {
|
|||
&d_course_yoshi_valley_unk3,
|
||||
};
|
||||
|
||||
// 0x06014798
|
||||
//! 0x06014798
|
||||
u32 d_course_yoshi_valley_unk5[] = {
|
||||
0x00000001,
|
||||
0x00000002,
|
||||
|
|
|
|||
|
|
@ -10,11 +10,11 @@ typedef struct
|
|||
{
|
||||
/* 0x00 */ f32 sizeScaling;
|
||||
/* 0x04 */ Vec3f pos;
|
||||
/* 0x10 */ Vec3f unk_010;
|
||||
/* 0x10 */ Vec3f origin_pos;
|
||||
/* 0x1C */ Vec3f unk_01C;
|
||||
/* 0x28 */ Vec3f unk_028;
|
||||
/* 0x34 */ f32 unk_034;
|
||||
/* 0x38 */ Vec3f unk_038;
|
||||
/* 0x38 */ Vec3f velocity;
|
||||
/* 0x44 */ f32 unk_044;
|
||||
/* 0x48 */ s32 unk_048;
|
||||
/* 0x4C */ s32 unk_04C;
|
||||
|
|
@ -31,7 +31,7 @@ typedef struct
|
|||
**/
|
||||
/* 0x68 */ u8 *tlutList; // I feel like this should actually be `u8 (*tlutList)[512]`, but that causes mismatches
|
||||
/* 0x6C */ u8 *textureList;
|
||||
/* 0x70 */ Gfx *unk_070;
|
||||
/* 0x70 */ Gfx *model;
|
||||
/* 0x74 */ Vtx *vertex;
|
||||
/* 0x78 */ s8 unk_078[0x04];
|
||||
/* 0x7C */ Vec4s *unk_07C;
|
||||
|
|
@ -50,9 +50,9 @@ typedef struct
|
|||
/* 0xAC */ s16 unk_0AC;
|
||||
/* 0xAE */ s16 unk_0AE;
|
||||
/* 0xB0 */ s16 unk_0B0;
|
||||
/* 0xB2 */ Vec3su unk_0B2; // rotation, I think
|
||||
/* 0xB2 */ Vec3su orientation; // rotation, I think
|
||||
/* 0xB8 */ Vec3su unk_0B8;
|
||||
/* 0xBE */ Vec3su unk_0BE;
|
||||
/* 0xBE */ Vec3su direction_angle;
|
||||
/* 0xC4 */ u16 unk_0C4;
|
||||
/* 0xC6 */ u16 unk_0C6;
|
||||
/* 0xC8 */ u16 boundingBoxSize;
|
||||
|
|
@ -86,11 +86,11 @@ typedef struct
|
|||
{
|
||||
/* 0x00 */ f32 sizeScaling;
|
||||
/* 0x04 */ Vec3f pos;
|
||||
/* 0x10 */ Vec3f unk_010;
|
||||
/* 0x10 */ Vec3f origin_pos;
|
||||
/* 0x1C */ Vec3f unk_01C;
|
||||
/* 0x28 */ Vec3f unk_028;
|
||||
/* 0x34 */ f32 unk_034;
|
||||
/* 0x38 */ Vec3f unk_038;
|
||||
/* 0x38 */ Vec3f velocity;
|
||||
/* 0x44 */ f32 unk_044;
|
||||
/* 0x48 */ s32 unk_048;
|
||||
/* 0x4C */ s32 unk_04C;
|
||||
|
|
@ -107,7 +107,7 @@ typedef struct
|
|||
**/
|
||||
/* 0x68 */ u8 *tlutList; // I feel like this should actually be `u8 (*tlutList)[512]`, but that causes mismatches
|
||||
/* 0x6C */ u8 *textureList;
|
||||
/* 0x70 */ Gfx *unk_070;
|
||||
/* 0x70 */ Gfx *model;
|
||||
/* 0x74 */ Vtx *vertex;
|
||||
/* 0x78 */ s8 unk_078[0x04];
|
||||
/* 0x7C */ Vec4s *unk_07C;
|
||||
|
|
@ -126,9 +126,9 @@ typedef struct
|
|||
/* 0xAC */ s16 unk_0AC;
|
||||
/* 0xAE */ s16 unk_0AE;
|
||||
/* 0xB0 */ s16 unk_0B0;
|
||||
/* 0xB2 */ Vec3su unk_0B2; // rotation, I think
|
||||
/* 0xB2 */ Vec3su orientation; // rotation, I think
|
||||
/* 0xB8 */ Vec3su unk_0B8;
|
||||
/* 0xBE */ Vec3su unk_0BE;
|
||||
/* 0xBE */ Vec3su direction_angle;
|
||||
/* 0xC4 */ u16 unk_0C4;
|
||||
/* 0xC6 */ u16 unk_0C6;
|
||||
/* 0xC8 */ u16 unk_0C8;
|
||||
|
|
@ -165,9 +165,10 @@ typedef struct
|
|||
extern s32 D_80183DA0;
|
||||
|
||||
//! Lakitu?
|
||||
extern s32 D_80183DB8[];
|
||||
extern s32 gIndexLakituList[];
|
||||
|
||||
#define DELETED_OBJECT_ID -1
|
||||
#define NULL_OBJECT_ID -1
|
||||
|
||||
//! Appears to be a list of object list indices for the Item Window part of the HUD
|
||||
extern s32 gItemWindowObjectByPlayerId[];
|
||||
|
|
@ -303,7 +304,7 @@ extern s32 indexObjectList3[];
|
|||
*/
|
||||
extern s32 indexObjectList4[];
|
||||
|
||||
#define D_8018C1B0_SIZE 128
|
||||
#define gObjectParticle1_SIZE 128
|
||||
#define NUM_MAX_MOLES 0x1F
|
||||
#define NUM_GROUP1_MOLES 8
|
||||
#define NUM_GROUP2_MOLES 11
|
||||
|
|
@ -330,38 +331,38 @@ extern s32 D_8018CF10;
|
|||
* Segments of the fire breath from the statues in Bowser's Castle
|
||||
* Potentially other things
|
||||
*/
|
||||
extern s32 D_8018C1B0[];
|
||||
extern s32 gObjectParticle1[];
|
||||
|
||||
//! Next free spot in D_8018C1B0? Wraps back around to 0 if it gets bigger than D_8018C1B0_SIZE
|
||||
extern s32 D_80183E38;
|
||||
//! Next free spot in gObjectParticle1? Wraps back around to 0 if it gets bigger than gObjectParticle1_SIZE
|
||||
extern s32 gNextFreeObjectParticle1;
|
||||
|
||||
//! Used for cycling through snowflakes in func_80078790
|
||||
extern s16 D_8018D174;
|
||||
|
||||
#define D_8018C3F0_SIZE 128
|
||||
#define gObjectParticle2_SIZE 128
|
||||
|
||||
/**
|
||||
* List of object list indices used for:
|
||||
* Bats in Banshee's Boardwalk (but only 1 player mode?)
|
||||
*/
|
||||
extern s32 D_8018C3F0[];
|
||||
extern s32 gObjectParticle2[];
|
||||
|
||||
//! Next free spot in D_8018C3F0? Wraps back around to 0 if it gets bigger than D_8018C3F0_SIZE
|
||||
extern s32 D_80183E4C;
|
||||
//! Next free spot in gObjectParticle2? Wraps back around to 0 if it gets bigger than gObjectParticle2_SIZE
|
||||
extern s32 gNextFreeObjectParticle2;
|
||||
|
||||
//! Controls number of come object type placed into D_8018C3F0 on Frappe Snowland. So, maybe snowmen/snowflakes?
|
||||
//! Controls number of come object type placed into gObjectParticle2 on Frappe Snowland. So, maybe snowmen/snowflakes?
|
||||
extern s32 D_8018D3BC;
|
||||
|
||||
#define D_8018C630_SIZE 128
|
||||
extern s32 D_8018C630[];
|
||||
//! Next free spot in D_8018C630?
|
||||
extern s32 D_80183E5C;
|
||||
#define gObjectParticle3_SIZE 128
|
||||
extern s32 gObjectParticle3[];
|
||||
//! Next free spot in gObjectParticle3?
|
||||
extern s32 gNextFreeObjectParticle3;
|
||||
extern s16 D_80165730;
|
||||
|
||||
//! Tracking a count of some object type, don't know what object type yet
|
||||
extern s16 D_80165738;
|
||||
|
||||
#define D_8018C870_SIZE 0x40
|
||||
#define gObjectParticle4_SIZE 0x40
|
||||
|
||||
#define NUM_TORCHES 8
|
||||
|
||||
|
|
@ -374,30 +375,30 @@ extern s16 gTorchSpawns[];
|
|||
* and, seemingly for the trail that shells leave behind them.
|
||||
* I think they're using the same texture, which would explain the dual use
|
||||
*/
|
||||
extern s32 D_8018C870[];
|
||||
extern s32 gObjectParticle4[];
|
||||
|
||||
//! Next free spot in D_8018C870? Wraps back around to 0 if it gets bigger than D_8018C870_SIZE
|
||||
extern s32 D_80183E6C;
|
||||
//! Next free spot in gObjectParticle4? Wraps back around to 0 if it gets bigger than gObjectParticle4_SIZE
|
||||
extern s32 gNextFreeObjectParticle4;
|
||||
|
||||
// Maximum number of leaves that can be falling?
|
||||
#define D_8018C970_SIZE 0x40
|
||||
#define gLeafParticle_SIZE 0x40
|
||||
// Number of leaves to spawn each bonk?
|
||||
#define D_8018C970_SPAWN_SIZE 0x14
|
||||
#define gLeafParticle_SPAWN_SIZE 0x14
|
||||
|
||||
/**
|
||||
* Seemingly a list of object list indices used for the leaves that sometimes fall
|
||||
* trees when you bonk into them
|
||||
*/
|
||||
extern s32 D_8018C970[];
|
||||
extern s32 gLeafParticle[];
|
||||
|
||||
//! Next free spot in D_8018C970? Wraps back around to 0 if it gets bigger than D_8018C970_SIZE
|
||||
extern s32 D_80183E7C;
|
||||
//! Next free spot in gLeafParticle? Wraps back around to 0 if it gets bigger than gLeafParticle_SIZE
|
||||
extern s32 gNextFreeLeafParticle;
|
||||
|
||||
#define D_8018CC80_SIZE 0x64
|
||||
|
||||
/**
|
||||
* List of object list indices used by the clouds and stars in some stages
|
||||
* Also used for snowflakes like D_8018C1B0? Not sure what's up with that
|
||||
* Also used for snowflakes like gObjectParticle1? Not sure what's up with that
|
||||
*/
|
||||
extern s32 D_8018CC80[];
|
||||
|
||||
|
|
|
|||
|
|
@ -232,25 +232,25 @@ Mtx D_80183D60;
|
|||
s32 D_80183DA0;
|
||||
f32 D_80183DA8[4];
|
||||
//! Lakitu?
|
||||
s32 D_80183DB8[4];
|
||||
s32 gIndexLakituList[4];
|
||||
f32 D_80183DC8[4];
|
||||
//! Indexes for the objects associated with the Bomb Karts
|
||||
s32 D_80183DD8[NUM_BOMB_KARTS_MAX];
|
||||
UNUSED s32 D_80183DF8[16];
|
||||
//! Next free spot in D_8018C1B0? Wraps back around to 0 if it gets bigger than D_8018C1B0_SIZE
|
||||
s32 D_80183E38;
|
||||
//! Next free spot in gObjectParticle1? Wraps back around to 0 if it gets bigger than gObjectParticle1_SIZE
|
||||
s32 gNextFreeObjectParticle1;
|
||||
Vec3f D_80183E40;
|
||||
//! Next free spot in D_8018C3F0? Wraps back around to 0 if it gets bigger than D_8018C3F0_SIZE
|
||||
s32 D_80183E4C;
|
||||
//! Next free spot in gObjectParticle2? Wraps back around to 0 if it gets bigger than gObjectParticle2_SIZE
|
||||
s32 gNextFreeObjectParticle2;
|
||||
Vec3f D_80183E50;
|
||||
//! Next free spot in D_8018C630?
|
||||
s32 D_80183E5C;
|
||||
//! Next free spot in gObjectParticle3?
|
||||
s32 gNextFreeObjectParticle3;
|
||||
UNUSED s32 D_80183E60[3];
|
||||
//! Next free spot in D_8018C870? Wraps back around to 0 if it gets bigger than D_8018C870_SIZE
|
||||
s32 D_80183E6C;
|
||||
//! Next free spot in gObjectParticle4? Wraps back around to 0 if it gets bigger than gObjectParticle4_SIZE
|
||||
s32 gNextFreeObjectParticle4;
|
||||
Vec3f D_80183E70;
|
||||
//! Next free spot in D_8018C970? Wraps back around to 0 if it gets bigger than D_8018C970_SIZE
|
||||
s32 D_80183E7C;
|
||||
//! Next free spot in gLeafParticle? Wraps back around to 0 if it gets bigger than gLeafParticle_SIZE
|
||||
s32 gNextFreeLeafParticle;
|
||||
Vec3su D_80183E80;
|
||||
//! Appears to be a list of object list indices for the Item Window part of the HUD
|
||||
s32 gItemWindowObjectByPlayerId[4];
|
||||
|
|
@ -303,32 +303,32 @@ Collision D_8018C0B0[4];
|
|||
* Segments of the fire breath from the statues in Bowser's Castle
|
||||
* Potentially other things
|
||||
*/
|
||||
s32 D_8018C1B0[D_8018C3F0_SIZE];
|
||||
s32 gObjectParticle1[gObjectParticle2_SIZE];
|
||||
Collision D_8018C3B0;
|
||||
/**
|
||||
* List of object list indices used for:
|
||||
* Bats in Banshee's Boardwalk (but only 1 player mode?)
|
||||
*/
|
||||
s32 D_8018C3F0[D_8018C3F0_SIZE];
|
||||
s32 gObjectParticle2[gObjectParticle2_SIZE];
|
||||
// Maybe some unused Collision?
|
||||
UNUSED Collision D_8018C5F0;
|
||||
s32 D_8018C630[D_8018C630_SIZE];
|
||||
s32 gObjectParticle3[gObjectParticle3_SIZE];
|
||||
Collision D_8018C830;
|
||||
/**
|
||||
* List of object list indices. Used both for the fires in the DK Jungle cave
|
||||
* and, seemingly for the trail that shells leave behind them.
|
||||
* I think they're using the same texture, which would explain the dual use
|
||||
*/
|
||||
s32 D_8018C870[D_8018C870_SIZE];
|
||||
s32 gObjectParticle4[gObjectParticle4_SIZE];
|
||||
/**
|
||||
* Seemingly a list of object list indices used for the leaves that sometimes fall
|
||||
* trees when you bonk into them
|
||||
*/
|
||||
s32 D_8018C970[D_8018C970_SIZE];
|
||||
s32 gLeafParticle[gLeafParticle_SIZE];
|
||||
hud_player playerHUD[4];
|
||||
/**
|
||||
* List of object list indices used by the clouds and stars in some stages
|
||||
* Also used for snowflakes like D_8018C1B0? Not sure what's up with that
|
||||
* Also used for snowflakes like gObjectParticle1? Not sure what's up with that
|
||||
*/
|
||||
s32 D_8018CC80[D_8018CC80_SIZE];
|
||||
struct_D_8018CE10 D_8018CE10[8];
|
||||
|
|
@ -699,7 +699,7 @@ void func_8005884C(void) {
|
|||
func_80058B58(3);
|
||||
}
|
||||
|
||||
void func_800588F4(s32 arg0) {
|
||||
void func_800588F4(s32 cameraId) {
|
||||
|
||||
switch (gCurrentCourseId) {
|
||||
case COURSE_MARIO_RACEWAY:
|
||||
|
|
@ -707,68 +707,68 @@ void func_800588F4(s32 arg0) {
|
|||
case COURSE_CHOCO_MOUNTAIN:
|
||||
break;
|
||||
case COURSE_BOWSER_CASTLE:
|
||||
func_80053870(arg0);
|
||||
func_80054664(arg0);
|
||||
func_80053870(cameraId);
|
||||
func_80054664(cameraId);
|
||||
break;
|
||||
case COURSE_BANSHEE_BOARDWALK:
|
||||
if (gGamestate != CREDITS_SEQUENCE) {
|
||||
func_800527D8(arg0);
|
||||
func_80052590(arg0);
|
||||
func_8005217C(arg0);
|
||||
func_800524B4(arg0);
|
||||
func_800527D8(cameraId);
|
||||
func_80052590(cameraId);
|
||||
func_8005217C(cameraId);
|
||||
func_800524B4(cameraId);
|
||||
}
|
||||
break;
|
||||
case COURSE_YOSHI_VALLEY:
|
||||
func_80055228(arg0);
|
||||
func_80055228(cameraId);
|
||||
if (gGamestate != CREDITS_SEQUENCE) {
|
||||
func_8005568C(arg0);
|
||||
func_8005568C(cameraId);
|
||||
}
|
||||
break;
|
||||
case COURSE_FRAPPE_SNOWLAND:
|
||||
if (gGamestate != CREDITS_SEQUENCE) {
|
||||
func_8005327C(arg0);
|
||||
func_8005327C(cameraId);
|
||||
}
|
||||
break;
|
||||
case COURSE_KOOPA_BEACH:
|
||||
if (gGamestate != CREDITS_SEQUENCE) {
|
||||
func_80055528(arg0);
|
||||
func_80055528(cameraId);
|
||||
}
|
||||
if (gGamestate != CREDITS_SEQUENCE) {
|
||||
|
||||
if ((gPlayerCount == 1) || (gPlayerCount == 2)) {
|
||||
func_80055380(arg0);
|
||||
func_80055380(cameraId);
|
||||
}
|
||||
} else {
|
||||
func_80055380(arg0);
|
||||
func_80055380(cameraId);
|
||||
}
|
||||
break;
|
||||
case COURSE_ROYAL_RACEWAY:
|
||||
break;
|
||||
case COURSE_LUIGI_RACEWAY:
|
||||
if (D_80165898 != 0) {
|
||||
func_80055E68(arg0);
|
||||
func_80055E68(cameraId);
|
||||
}
|
||||
break;
|
||||
case COURSE_MOO_MOO_FARM:
|
||||
if (gGamestate != CREDITS_SEQUENCE) {
|
||||
func_800550A4(arg0);
|
||||
func_800550A4(cameraId);
|
||||
}
|
||||
break;
|
||||
case COURSE_TOADS_TURNPIKE:
|
||||
break;
|
||||
case COURSE_KALAMARI_DESERT:
|
||||
func_800541BC(arg0);
|
||||
func_800541BC(cameraId);
|
||||
break;
|
||||
case COURSE_SHERBET_LAND:
|
||||
if (gGamestate != CREDITS_SEQUENCE) {
|
||||
func_80052E30(arg0);
|
||||
func_80052E30(cameraId);
|
||||
}
|
||||
func_8005592C(arg0);
|
||||
func_8005592C(cameraId);
|
||||
break;
|
||||
case COURSE_RAINBOW_ROAD:
|
||||
if (gGamestate != CREDITS_SEQUENCE) {
|
||||
func_80056188(arg0);
|
||||
func_80055C38(arg0);
|
||||
func_80056188(cameraId);
|
||||
func_80055C38(cameraId);
|
||||
}
|
||||
break;
|
||||
case COURSE_WARIO_STADIUM:
|
||||
|
|
@ -781,19 +781,19 @@ void func_800588F4(s32 arg0) {
|
|||
break;
|
||||
case COURSE_DK_JUNGLE:
|
||||
if (gGamestate != CREDITS_SEQUENCE) {
|
||||
func_80054414(arg0);
|
||||
func_80054414(cameraId);
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
func_80054938(arg0);
|
||||
func_80051638(arg0);
|
||||
func_80054938(cameraId);
|
||||
func_80051638(cameraId);
|
||||
|
||||
if (D_80165730 != 0) {
|
||||
func_80053E6C(arg0);
|
||||
func_80053E6C(cameraId);
|
||||
}
|
||||
if (gModeSelection == BATTLE) {
|
||||
func_80056AC0(arg0);
|
||||
func_80056AC0(cameraId);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -1247,7 +1247,7 @@ void func_8005995C(void) {
|
|||
void func_80059A88(s32 playerId) {
|
||||
func_80059820(playerId);
|
||||
if (!gDemoMode) {
|
||||
func_8007A948(playerId);
|
||||
update_obj_laikitu(playerId);
|
||||
func_8007BB9C(playerId);
|
||||
}
|
||||
}
|
||||
|
|
@ -1334,7 +1334,7 @@ void func_80059D00(void) {
|
|||
func_80059820(PLAYER_TWO);
|
||||
func_80078C70(2);
|
||||
}
|
||||
func_8005A74C();
|
||||
update_obj();
|
||||
break;
|
||||
case SCREEN_MODE_2P_SPLITSCREEN_VERTICAL:
|
||||
randomize_seed_from_controller(PLAYER_ONE);
|
||||
|
|
@ -1353,7 +1353,7 @@ void func_80059D00(void) {
|
|||
}
|
||||
func_80078C70(2);
|
||||
func_8005D1F4(1);
|
||||
func_8005A74C();
|
||||
update_obj();
|
||||
break;
|
||||
case SCREEN_MODE_2P_SPLITSCREEN_HORIZONTAL:
|
||||
randomize_seed_from_controller(PLAYER_ONE);
|
||||
|
|
@ -1372,7 +1372,7 @@ void func_80059D00(void) {
|
|||
}
|
||||
func_80078C70(4);
|
||||
func_8005D1F4(1);
|
||||
func_8005A74C();
|
||||
update_obj();
|
||||
break;
|
||||
case SCREEN_MODE_3P_4P_SPLITSCREEN:
|
||||
randomize_seed_from_controller(PLAYER_ONE);
|
||||
|
|
@ -1405,7 +1405,7 @@ void func_80059D00(void) {
|
|||
}
|
||||
func_8005D1F4(3);
|
||||
}
|
||||
func_8005A74C();
|
||||
update_obj();
|
||||
break;
|
||||
}
|
||||
func_800744CC();
|
||||
|
|
@ -1427,7 +1427,7 @@ void func_8005A070(void) {
|
|||
} else if (gGamestate == CREDITS_SEQUENCE) {
|
||||
func_80059820(PLAYER_ONE);
|
||||
func_80078C70(0);
|
||||
func_8005A74C();
|
||||
update_obj();
|
||||
} else {
|
||||
func_80059D00();
|
||||
}
|
||||
|
|
@ -1447,10 +1447,10 @@ void func_8005A14C(s32 playerId) {
|
|||
lapCount = gLapCountByPlayerId[playerId];
|
||||
if (player->type & PLAYER_EXISTS) {
|
||||
if (player->effects & 0x204C0) {
|
||||
gObjectList[objectIndex].unk_0BE[2] += 0x1000;
|
||||
gObjectList[objectIndex].direction_angle[2] += 0x1000;
|
||||
} else {
|
||||
if (gObjectList[objectIndex].unk_0BE[2] != 0) {
|
||||
gObjectList[objectIndex].unk_0BE[2] += 0x1000;
|
||||
if (gObjectList[objectIndex].direction_angle[2] != 0) {
|
||||
gObjectList[objectIndex].direction_angle[2] += 0x1000;
|
||||
}
|
||||
}
|
||||
if (player->effects & LIGHTNING_EFFECT) {
|
||||
|
|
@ -1459,9 +1459,9 @@ void func_8005A14C(s32 playerId) {
|
|||
f32_step_towards(&gObjectList[objectIndex].sizeScaling, 0.6f, 0.02f);
|
||||
}
|
||||
if (player->effects & 0x04000000) {
|
||||
u16_step_up_towards(&gObjectList[objectIndex].unk_0BE[0], 0x0C00U, 0x0100U);
|
||||
u16_step_up_towards(&gObjectList[objectIndex].direction_angle[0], 0x0C00U, 0x0100U);
|
||||
} else {
|
||||
u16_step_down_towards(&gObjectList[objectIndex].unk_0BE[0], 0, 0x00000100);
|
||||
u16_step_down_towards(&gObjectList[objectIndex].direction_angle[0], 0, 0x00000100);
|
||||
}
|
||||
if (player->effects & 0x03000000) {
|
||||
func_80087D24(objectIndex, 6.0f, 1.5f, 0.0f);
|
||||
|
|
@ -1474,9 +1474,9 @@ void func_8005A14C(s32 playerId) {
|
|||
gObjectList[objectIndex].unk_0A0 = 0x00FF;
|
||||
}
|
||||
if (lapCount >= 3) {
|
||||
gObjectList[objectIndex].unk_0BE[2] = 0;
|
||||
gObjectList[objectIndex].unk_0BE[1] = 0;
|
||||
gObjectList[objectIndex].unk_0BE[0] = 0;
|
||||
gObjectList[objectIndex].direction_angle[2] = 0;
|
||||
gObjectList[objectIndex].direction_angle[1] = 0;
|
||||
gObjectList[objectIndex].direction_angle[0] = 0;
|
||||
gObjectList[objectIndex].unk_028[2] = 0.0f;
|
||||
gObjectList[objectIndex].unk_028[1] = 0.0f;
|
||||
gObjectList[objectIndex].unk_028[0] = 0.0f;
|
||||
|
|
@ -1576,14 +1576,14 @@ void func_8005A71C(void) {
|
|||
}
|
||||
}
|
||||
|
||||
void func_8005A74C(void) {
|
||||
void update_obj(void) {
|
||||
switch (gCurrentCourseId) {
|
||||
case COURSE_MARIO_RACEWAY:
|
||||
case COURSE_CHOCO_MOUNTAIN:
|
||||
break;
|
||||
case COURSE_BOWSER_CASTLE:
|
||||
func_80081208();
|
||||
func_80076B84();
|
||||
update_particle_bowser_castle();
|
||||
break;
|
||||
case COURSE_BANSHEE_BOARDWALK:
|
||||
if (gGamestate != CREDITS_SEQUENCE) {
|
||||
|
|
@ -1637,7 +1637,7 @@ void func_8005A74C(void) {
|
|||
break;
|
||||
case COURSE_RAINBOW_ROAD:
|
||||
if (gGamestate != CREDITS_SEQUENCE) {
|
||||
func_800861E0();
|
||||
update_neon();
|
||||
func_80085AA8();
|
||||
}
|
||||
break;
|
||||
|
|
|
|||
|
|
@ -77,7 +77,7 @@ void func_8005A14C(s32);
|
|||
void func_8005A380(void);
|
||||
void func_8005A3C0(void);
|
||||
void func_8005A71C(void);
|
||||
void func_8005A74C(void);
|
||||
void update_obj(void);
|
||||
void func_8005A99C(void);
|
||||
void func_8005AA34(void);
|
||||
void func_8005AA4C(void);
|
||||
|
|
@ -395,21 +395,21 @@ extern Mtx D_80183D60;
|
|||
// extern s32 D_80183DA0; -> objects.h
|
||||
|
||||
extern f32 D_80183DA8[];
|
||||
// extern s32 D_80183DB8[]; -> objects.h
|
||||
// extern s32 gIndexLakituList[]; -> objects.h
|
||||
|
||||
extern f32 D_80183DC8[];
|
||||
// extern s32 D_80183DD8[]; -> bomb_kart.h
|
||||
// extern s32 D_80183E38; -> objects.h
|
||||
// extern s32 gNextFreeObjectParticle1; -> objects.h
|
||||
|
||||
extern Vec3f D_80183E40;
|
||||
// extern s32 D_80183E4C; -> objects.h
|
||||
// extern s32 gNextFreeObjectParticle2; -> objects.h
|
||||
|
||||
extern Vec3f D_80183E50;
|
||||
// extern s32 D_80183E5C; -> objects.h
|
||||
// extern s32 D_80183E6C; -> objects.h
|
||||
// extern s32 gNextFreeObjectParticle3; -> objects.h
|
||||
// extern s32 gNextFreeObjectParticle4; -> objects.h
|
||||
|
||||
extern Vec3f D_80183E70;
|
||||
// extern s32 D_80183E7C; -> objects.h
|
||||
// extern s32 gNextFreeLeafParticle; -> objects.h
|
||||
|
||||
extern Vec3su D_80183E80;
|
||||
// extern s32 gItemWindowObjectByPlayerId[]; -> objects.h
|
||||
|
|
@ -424,15 +424,15 @@ extern u8 D_80183FA8[4][0x2000];
|
|||
extern u8 *D_8018C028;
|
||||
// extern s32 indexObjectList4[]; -> objects.h
|
||||
// extern Collision D_8018C0B0[]; -> objects.h
|
||||
// extern s32 D_8018C1B0[]; -> objects.h
|
||||
// extern s32 gObjectParticle1[]; -> objects.h
|
||||
|
||||
extern Collision D_8018C3B0;
|
||||
// extern s32 D_8018C3F0[]; -> objects.h
|
||||
// extern s32 D_8018C630[]; -> objects.h
|
||||
// extern s32 gObjectParticle2[]; -> objects.h
|
||||
// extern s32 gObjectParticle3[]; -> objects.h
|
||||
|
||||
extern Collision D_8018C830;
|
||||
// extern s32 D_8018C870[]; -> objects.h
|
||||
// extern s32 D_8018C970[]; -> objects.h
|
||||
// extern s32 gObjectParticle4[]; -> objects.h
|
||||
// extern s32 gLeafParticle[]; -> objects.h
|
||||
|
||||
extern hud_player playerHUD[];
|
||||
// extern s32 D_8018CC80[]; -> objects.h
|
||||
|
|
|
|||
|
|
@ -141,7 +141,7 @@ s32 D_8018D380;
|
|||
s32 D_8018D384;
|
||||
s32 D_8018D388;
|
||||
UNUSED s32 D_8018D390[11];
|
||||
//! Controls number of come object type placed into D_8018C3F0 on Frappe Snowland. So, maybe snowmen/snowflakes?
|
||||
//! Controls number of come object type placed into gObjectParticle2 on Frappe Snowland. So, maybe snowmen/snowflakes?
|
||||
s32 D_8018D3BC;
|
||||
//! Limit on some object type (ice chips?) in Sherbet Land
|
||||
s32 D_8018D3C0;
|
||||
|
|
|
|||
|
|
@ -65,24 +65,24 @@ void reset_object_variable(void) {
|
|||
void func_8006EB10(void) {
|
||||
s32 i;
|
||||
|
||||
for (i = 0; i < 128; i++) {
|
||||
D_8018C1B0[i] = -1;
|
||||
for (i = 0; i < gObjectParticle1_SIZE; i++) {
|
||||
gObjectParticle1[i] = NULL_OBJECT_ID;
|
||||
}
|
||||
|
||||
for (i = 0; i < 128; i++) {
|
||||
D_8018C3F0[i] = -1;
|
||||
for (i = 0; i < gObjectParticle2_SIZE; i++) {
|
||||
gObjectParticle2[i] = NULL_OBJECT_ID;
|
||||
}
|
||||
|
||||
for (i = 0; i < 128; i++) {
|
||||
D_8018C630[i] = -1;
|
||||
for (i = 0; i < gObjectParticle3_SIZE; i++) {
|
||||
gObjectParticle3[i] = NULL_OBJECT_ID;
|
||||
}
|
||||
|
||||
for (i = 0; i < 64; i++) {
|
||||
D_8018C870[i] = -1;
|
||||
for (i = 0; i < gObjectParticle4_SIZE; i++) {
|
||||
gObjectParticle4[i] = NULL_OBJECT_ID;
|
||||
}
|
||||
|
||||
// Has to be on one line, because IDO hates you :)
|
||||
for (i = 0; i < D_8018C970_SIZE; i++) { D_8018C970[i] = -1; }
|
||||
for (i = 0; i < gLeafParticle_SIZE; i++) { gLeafParticle[i] = NULL_OBJECT_ID; }
|
||||
|
||||
D_8018CFA8 = 0;
|
||||
D_8018CF90 = D_8018CFA8;
|
||||
|
|
@ -112,11 +112,11 @@ void func_8006EB10(void) {
|
|||
D_8018D070 = D_8018D098;
|
||||
D_8018D048 = D_8018D070;
|
||||
D_8018D020 = D_8018D048;
|
||||
D_80183E7C = 0;
|
||||
D_80183E6C = D_80183E7C;
|
||||
D_80183E5C = D_80183E6C;
|
||||
D_80183E4C = D_80183E5C;
|
||||
D_80183E38 = D_80183E4C;
|
||||
gNextFreeLeafParticle = 0;
|
||||
gNextFreeObjectParticle4 = gNextFreeLeafParticle;
|
||||
gNextFreeObjectParticle3 = gNextFreeObjectParticle4;
|
||||
gNextFreeObjectParticle2 = gNextFreeObjectParticle3;
|
||||
gNextFreeObjectParticle1 = gNextFreeObjectParticle2;
|
||||
}
|
||||
|
||||
void clear_object_list() {
|
||||
|
|
@ -710,7 +710,7 @@ void func_80070250(s32 objectIndex, s32 arg1, StarSpawn *arg2) {
|
|||
temp_v0 = &gObjectList[objectIndex];
|
||||
temp_v0->unk_0D5 = arg2->id;
|
||||
temp_v0->currentItem = ITEM_NONE;
|
||||
temp_v0->unk_0BE[1] = arg2->pos[0];
|
||||
temp_v0->direction_angle[1] = arg2->pos[0];
|
||||
temp_v0->unk_09E = arg2->pos[1];
|
||||
temp_v0->sizeScaling = (f32) arg2->pos[2] / 100.0;
|
||||
temp_v0->activeTexture = &D_8018D220[arg2->id];
|
||||
|
|
@ -753,7 +753,7 @@ void func_800703E0(s32 objectIndex, s32 arg1, StarSpawn *arg2) {
|
|||
temp_v0 = &gObjectList[objectIndex];
|
||||
temp_v0->unk_0D5 = arg2->id; // No idea, all 0's for stars
|
||||
temp_v0->currentItem = ITEM_BANANA;
|
||||
temp_v0->unk_0BE[1] = arg2->pos[0]; // No idea
|
||||
temp_v0->direction_angle[1] = arg2->pos[0]; // No idea
|
||||
temp_v0->unk_09E = arg2->pos[1]; // screen Y position
|
||||
temp_v0->sizeScaling = (f32)arg2->pos[2] / 100.0; // some type of scaling on the texture
|
||||
temp_v0->activeTexture = D_0D0293D8;
|
||||
|
|
@ -852,8 +852,8 @@ void init_course_object(void) {
|
|||
func_80070714();
|
||||
}
|
||||
for (i = 0; i < D_80165738; i++) {
|
||||
find_unused_obj_index(&D_8018C630[i]);
|
||||
init_object(D_8018C630[i], 0);
|
||||
find_unused_obj_index(&gObjectParticle3[i]);
|
||||
init_object(gObjectParticle3[i], 0);
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
|
@ -876,8 +876,8 @@ void init_course_object(void) {
|
|||
for (i = 0; i < gNumActiveThwomps; i++) {
|
||||
objectId = indexObjectList1[i];
|
||||
init_object(objectId, 0);
|
||||
gObjectList[objectId].unk_010[0] = gThowmpSpawnList[i].startX * xOrientation;
|
||||
gObjectList[objectId].unk_010[2] = gThowmpSpawnList[i].startZ;
|
||||
gObjectList[objectId].origin_pos[0] = gThowmpSpawnList[i].startX * xOrientation;
|
||||
gObjectList[objectId].origin_pos[2] = gThowmpSpawnList[i].startZ;
|
||||
gObjectList[objectId].unk_0D5 = gThowmpSpawnList[i].unk_4;
|
||||
gObjectList[objectId].unk_0A0 = gThowmpSpawnList[i].unk_6;
|
||||
}
|
||||
|
|
@ -894,9 +894,9 @@ void init_course_object(void) {
|
|||
gObjectList[objectId].pos[0] = gFireBreathsSpawns[i][0] * xOrientation;
|
||||
gObjectList[objectId].pos[1] = gFireBreathsSpawns[i][1];
|
||||
gObjectList[objectId].pos[2] = gFireBreathsSpawns[i][2];
|
||||
gObjectList[objectId].unk_0BE[1] = 0;
|
||||
gObjectList[objectId].direction_angle[1] = 0;
|
||||
if (i % 2U) {
|
||||
gObjectList[objectId].unk_0BE[1] += 0x8000;
|
||||
gObjectList[objectId].direction_angle[1] += 0x8000;
|
||||
}
|
||||
}
|
||||
for (i = 0; i < 32; i++) {
|
||||
|
|
@ -907,9 +907,9 @@ void init_course_object(void) {
|
|||
if (gGamestate != 9) {
|
||||
objectId = indexObjectList1[0];
|
||||
init_texture_object(objectId, d_course_banshee_boardwalk_bat_tlut, *d_course_banshee_boardwalk_bat, 0x20U, (u16) 0x00000040);
|
||||
gObjectList[objectId].unk_0B2[0] = 0;
|
||||
gObjectList[objectId].unk_0B2[1] = 0;
|
||||
gObjectList[objectId].unk_0B2[2] = 0x8000;
|
||||
gObjectList[objectId].orientation[0] = 0;
|
||||
gObjectList[objectId].orientation[1] = 0;
|
||||
gObjectList[objectId].orientation[2] = 0x8000;
|
||||
init_object(indexObjectList1[1], 0);
|
||||
init_object(indexObjectList1[2], 0);
|
||||
}
|
||||
|
|
@ -922,9 +922,9 @@ void init_course_object(void) {
|
|||
for (i = 0; i < NUM_HEDGEHOGS; i++) {
|
||||
objectId = indexObjectList2[i];
|
||||
init_object(objectId, 0);
|
||||
gObjectList[objectId].pos[0] = gObjectList[objectId].unk_010[0] = gHedgehogSpawns[i].pos[0] * xOrientation;
|
||||
gObjectList[objectId].pos[0] = gObjectList[objectId].origin_pos[0] = gHedgehogSpawns[i].pos[0] * xOrientation;
|
||||
gObjectList[objectId].pos[1] = gObjectList[objectId].unk_044 = gHedgehogSpawns[i].pos[1] + 6.0;
|
||||
gObjectList[objectId].pos[2] = gObjectList[objectId].unk_010[2] = gHedgehogSpawns[i].pos[2];
|
||||
gObjectList[objectId].pos[2] = gObjectList[objectId].origin_pos[2] = gHedgehogSpawns[i].pos[2];
|
||||
gObjectList[objectId].unk_0D5 = gHedgehogSpawns[i].unk_06;
|
||||
gObjectList[objectId].unk_09C = gHedgehogPatrolPoints[i][0] * xOrientation;
|
||||
gObjectList[objectId].unk_09E = gHedgehogPatrolPoints[i][2];
|
||||
|
|
@ -933,20 +933,20 @@ void init_course_object(void) {
|
|||
break;
|
||||
case COURSE_FRAPPE_SNOWLAND:
|
||||
for (i = 0; i < NUM_SNOWFLAKES; i++) {
|
||||
find_unused_obj_index(&D_8018C1B0[i]);
|
||||
find_unused_obj_index(&gObjectParticle1[i]);
|
||||
}
|
||||
if (gGamestate != 9) {
|
||||
for (i = 0; i < NUM_SNOWMEN; i++) {
|
||||
objectId = indexObjectList2[i];
|
||||
init_object(objectId, 0);
|
||||
gObjectList[objectId].unk_010[0] = gSnowmanSpawns[i].pos[0] * xOrientation;
|
||||
gObjectList[objectId].unk_010[1] = gSnowmanSpawns[i].pos[1] + 5.0 + 3.0;
|
||||
gObjectList[objectId].unk_010[2] = gSnowmanSpawns[i].pos[2];
|
||||
gObjectList[objectId].origin_pos[0] = gSnowmanSpawns[i].pos[0] * xOrientation;
|
||||
gObjectList[objectId].origin_pos[1] = gSnowmanSpawns[i].pos[1] + 5.0 + 3.0;
|
||||
gObjectList[objectId].origin_pos[2] = gSnowmanSpawns[i].pos[2];
|
||||
objectId = indexObjectList1[i];
|
||||
init_object(objectId, 0);
|
||||
gObjectList[objectId].unk_010[0] = gSnowmanSpawns[i].pos[0] * xOrientation;
|
||||
gObjectList[objectId].unk_010[1] = gSnowmanSpawns[i].pos[1] + 3.0;
|
||||
gObjectList[objectId].unk_010[2] = gSnowmanSpawns[i].pos[2];
|
||||
gObjectList[objectId].origin_pos[0] = gSnowmanSpawns[i].pos[0] * xOrientation;
|
||||
gObjectList[objectId].origin_pos[1] = gSnowmanSpawns[i].pos[1] + 3.0;
|
||||
gObjectList[objectId].origin_pos[2] = gSnowmanSpawns[i].pos[2];
|
||||
gObjectList[objectId].unk_0D5 = gSnowmanSpawns[i].unk_6;
|
||||
}
|
||||
}
|
||||
|
|
@ -956,10 +956,10 @@ void init_course_object(void) {
|
|||
for (i = 0; i < NUM_CRABS; i++) {
|
||||
objectId = indexObjectList1[i];
|
||||
init_object(objectId, 0);
|
||||
gObjectList[objectId].pos[0] = gObjectList[objectId].unk_010[0] = gCrabSpawns[i].startX * xOrientation;
|
||||
gObjectList[objectId].pos[0] = gObjectList[objectId].origin_pos[0] = gCrabSpawns[i].startX * xOrientation;
|
||||
gObjectList[objectId].unk_01C[0] = gCrabSpawns[i].patrolX * xOrientation;
|
||||
|
||||
gObjectList[objectId].pos[2] = gObjectList[objectId].unk_010[2] = gCrabSpawns[i].startZ;
|
||||
gObjectList[objectId].pos[2] = gObjectList[objectId].origin_pos[2] = gCrabSpawns[i].startZ;
|
||||
gObjectList[objectId].unk_01C[2] = gCrabSpawns[i].patrolZ;
|
||||
}
|
||||
}
|
||||
|
|
@ -979,8 +979,8 @@ void init_course_object(void) {
|
|||
func_80070714();
|
||||
}
|
||||
for (i = 0; i < D_80165738; i++) {
|
||||
find_unused_obj_index(&D_8018C630[i]);
|
||||
init_object(D_8018C630[i], 0);
|
||||
find_unused_obj_index(&gObjectParticle3[i]);
|
||||
init_object(gObjectParticle3[i], 0);
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
|
@ -992,8 +992,8 @@ void init_course_object(void) {
|
|||
D_80165898 = 0;
|
||||
init_object(indexObjectList1[0], 0);
|
||||
for (i = 0; i < D_80165738; i++) {
|
||||
find_unused_obj_index(&D_8018C630[i]);
|
||||
init_object(D_8018C630[i], 0);
|
||||
find_unused_obj_index(&gObjectParticle3[i]);
|
||||
init_object(gObjectParticle3[i], 0);
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
|
@ -1040,16 +1040,16 @@ void init_course_object(void) {
|
|||
find_unused_obj_index(&indexObjectList1[i]);
|
||||
}
|
||||
for (i = 0; i < NUM_MAX_MOLES; i++) {
|
||||
find_unused_obj_index(&D_8018C1B0[i]);
|
||||
objectId = D_8018C1B0[i];
|
||||
find_unused_obj_index(&gObjectParticle1[i]);
|
||||
objectId = gObjectParticle1[i];
|
||||
init_object(objectId, 0);
|
||||
gObjectList[objectId].pos[0] = gMoleSpawns[i][0] * xOrientation;
|
||||
gObjectList[objectId].pos[2] = gMoleSpawns[i][2];
|
||||
func_800887C0(objectId);
|
||||
gObjectList[objectId].sizeScaling = 0.7f;
|
||||
}
|
||||
for (i = 0; i < D_8018C3F0_SIZE; i++) {
|
||||
find_unused_obj_index(&D_8018C3F0[i]);
|
||||
for (i = 0; i < gObjectParticle2_SIZE; i++) {
|
||||
find_unused_obj_index(&gObjectParticle2[i]);
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
|
@ -1058,13 +1058,13 @@ void init_course_object(void) {
|
|||
find_unused_obj_index(&D_8018CF10);
|
||||
init_object(D_8018CF10, 0);
|
||||
for (i = 0; i < 50; i++) {
|
||||
find_unused_obj_index(&D_8018C1B0[i]);
|
||||
find_unused_obj_index(&gObjectParticle1[i]);
|
||||
}
|
||||
for (i = 0; i < 5; i++) {
|
||||
find_unused_obj_index(&D_8018C3F0[i]);
|
||||
find_unused_obj_index(&gObjectParticle2[i]);
|
||||
}
|
||||
for (i = 0; i < 32; i++) {
|
||||
find_unused_obj_index(&D_8018C630[i]);
|
||||
find_unused_obj_index(&gObjectParticle3[i]);
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
|
@ -1106,8 +1106,8 @@ void init_hud_one_player(void) {
|
|||
D_8018D150 = 0;
|
||||
D_8018CFCC = 1.0f;
|
||||
find_unused_obj_index(&D_80183DA0);
|
||||
find_unused_obj_index(&D_80183DB8[0]);
|
||||
find_unused_obj_index(&D_80183DB8[1]);
|
||||
find_unused_obj_index(&gIndexLakituList[0]);
|
||||
find_unused_obj_index(&gIndexLakituList[1]);
|
||||
find_unused_obj_index(&gItemWindowObjectByPlayerId[0]);
|
||||
find_unused_obj_index(&gItemWindowObjectByPlayerId[1]);
|
||||
init_object_list_index();
|
||||
|
|
@ -1185,8 +1185,8 @@ void init_hud_one_player(void) {
|
|||
void init_hud_two_player_vertical(void) {
|
||||
find_unused_obj_index(&D_80183DA0);
|
||||
|
||||
find_unused_obj_index(&D_80183DB8[0]);
|
||||
find_unused_obj_index(&D_80183DB8[1]);
|
||||
find_unused_obj_index(&gIndexLakituList[0]);
|
||||
find_unused_obj_index(&gIndexLakituList[1]);
|
||||
|
||||
find_unused_obj_index(&gItemWindowObjectByPlayerId[0]);
|
||||
find_unused_obj_index(&gItemWindowObjectByPlayerId[1]);
|
||||
|
|
@ -1255,8 +1255,8 @@ void init_hud_two_player_vertical(void) {
|
|||
void init_hud_two_player_horizontal() {
|
||||
find_unused_obj_index(&D_80183DA0);
|
||||
|
||||
find_unused_obj_index(&D_80183DB8[0]);
|
||||
find_unused_obj_index(&D_80183DB8[1]);
|
||||
find_unused_obj_index(&gIndexLakituList[0]);
|
||||
find_unused_obj_index(&gIndexLakituList[1]);
|
||||
|
||||
find_unused_obj_index(&gItemWindowObjectByPlayerId[0]);
|
||||
find_unused_obj_index(&gItemWindowObjectByPlayerId[1]);
|
||||
|
|
@ -1331,10 +1331,10 @@ void init_hud_two_player_horizontal() {
|
|||
void init_hud_three_four_player(void) {
|
||||
find_unused_obj_index(&D_80183DA0);
|
||||
|
||||
find_unused_obj_index(&D_80183DB8[0]);
|
||||
find_unused_obj_index(&D_80183DB8[1]);
|
||||
find_unused_obj_index(&D_80183DB8[2]);
|
||||
find_unused_obj_index(&D_80183DB8[3]);
|
||||
find_unused_obj_index(&gIndexLakituList[0]);
|
||||
find_unused_obj_index(&gIndexLakituList[1]);
|
||||
find_unused_obj_index(&gIndexLakituList[2]);
|
||||
find_unused_obj_index(&gIndexLakituList[3]);
|
||||
|
||||
find_unused_obj_index(&gItemWindowObjectByPlayerId[0]);
|
||||
find_unused_obj_index(&gItemWindowObjectByPlayerId[1]);
|
||||
|
|
|
|||
1318
src/code_80071F00.c
1318
src/code_80071F00.c
File diff suppressed because it is too large
Load Diff
|
|
@ -12,11 +12,13 @@ typedef struct {
|
|||
u16 id;
|
||||
} StarSpawn;
|
||||
|
||||
/** @cond */
|
||||
|
||||
void func_80077D5C(s32);
|
||||
s32 find_unused_obj_index(s32*);
|
||||
void delete_object(s32*);
|
||||
s32 func_80071FBC(void);
|
||||
s32 func_80072044(s32*, s32*, s32);
|
||||
s32 add_unused_obj_index(s32*, s32*, s32);
|
||||
void delete_object_wrapper(s32*);
|
||||
void func_80072120(s32*, s32);
|
||||
void func_80072180(void);
|
||||
|
|
@ -66,7 +68,7 @@ void func_80073404(s32, u8, u8, Vtx*);
|
|||
void init_texture_object(s32, u8*, u8*, u8, u16);
|
||||
void func_8007348C(s32, u8*, u8, u8, Vtx *);
|
||||
void func_800734D4(void);
|
||||
void func_800734DC(s32);
|
||||
void update_neon_texture(s32);
|
||||
void func_80073514(s32);
|
||||
void func_80073568(void);
|
||||
void func_800735BC(s32, Gfx*, f32);
|
||||
|
|
@ -151,7 +153,7 @@ void func_80076958(s32);
|
|||
void func_800769D8(s32);
|
||||
void func_80076AEC(s32);
|
||||
void func_80076B7C(void);
|
||||
void func_80076B84(void);
|
||||
void update_particle_bowser_castle(void);
|
||||
void func_80076C9C(s32, Vec3f, s16);
|
||||
void func_80076D70(Vec3f, f32, s16);
|
||||
void func_80076DC4(s32);
|
||||
|
|
@ -165,7 +167,7 @@ void func_80077428(s32);
|
|||
void func_80077450(s32);
|
||||
void func_80077584(s32);
|
||||
void func_80077640(void);
|
||||
void func_80077700(s32, Vec3f, s32);
|
||||
void init_leaf_particle(s32, Vec3f, s32);
|
||||
s32 func_80077A54(Vec3f, s32);
|
||||
void func_80077AB0(Vec3f, s32);
|
||||
void func_80077B14(s32);
|
||||
|
|
@ -198,7 +200,7 @@ void func_8007A778(s32, Player*, Camera*);
|
|||
void func_8007A884(void);
|
||||
void func_8007A88C(s32);
|
||||
void func_8007A910(s32);
|
||||
void func_8007A948(s32);
|
||||
void update_obj_laikitu(s32);
|
||||
void func_8007AA44(s32);
|
||||
void func_8007ABFC(s32, s32);
|
||||
void consume_item(s32);
|
||||
|
|
@ -213,7 +215,7 @@ void func_8007BB9C(s32);
|
|||
void func_8007BBBC(s32);
|
||||
void func_8007BD04(s32);
|
||||
void func_8007BDA8(void);
|
||||
void func_8007BDE0(s32);
|
||||
void init_var_cheep_cheep(s32);
|
||||
void func_8007BEC8(s32);
|
||||
void func_8007BFB0(s32);
|
||||
void func_8007C280(void);
|
||||
|
|
@ -350,7 +352,7 @@ void func_80085878(s32, s32);
|
|||
void func_800859C8(s32, s32);
|
||||
void func_80085AA8(void);
|
||||
void func_80085BB4(s32);
|
||||
void func_80085C20(s32);
|
||||
void init_obj_neon_mushroom(s32);
|
||||
void func_80085CA0(s32);
|
||||
void func_80085DB8(s32);
|
||||
void func_80085E38(s32);
|
||||
|
|
@ -358,8 +360,8 @@ void func_80085EF8(s32);
|
|||
void func_80085F74(s32);
|
||||
void func_80086074(s32, s32);
|
||||
void func_80086110(s32, s32);
|
||||
void func_80086158(s32, s32);
|
||||
void func_800861E0(void);
|
||||
void update_obj_neon(s32, s32);
|
||||
void update_neon(void);
|
||||
void func_8008629C(s32, s32);
|
||||
void func_80086424(s32);
|
||||
void func_80086528(s32, s32);
|
||||
|
|
@ -406,4 +408,6 @@ extern s8 D_800E5DB4[];
|
|||
extern s16 *D_800E633C[];
|
||||
extern s16 *D_800E672C[2];
|
||||
|
||||
/** @endcond */
|
||||
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -98,7 +98,7 @@ s32 func_800871AC(s32 objectIndex, s32 arg1) {
|
|||
s32 sp24;
|
||||
|
||||
sp24 = 0;
|
||||
if (is_obj_index_flag_unk_054_inactive(objectIndex, 8) != 0) {
|
||||
if (is_obj_index_flag_unk_054_inactive(objectIndex, 8) != FALSE) {
|
||||
set_object_flag_unk_054_true(objectIndex, 8);
|
||||
gObjectList[objectIndex].unk_0B0 = (s16) arg1;
|
||||
}
|
||||
|
|
@ -124,80 +124,80 @@ s32 angle_between_object_camera(s32 objectIndex, Camera *camera) {
|
|||
return atan2s(gObjectList[objectIndex].pos[0] - camera->pos[0], gObjectList[objectIndex].pos[2] - camera->pos[2]);
|
||||
}
|
||||
|
||||
u16 func_80087324(s32 objectIndex) {
|
||||
return -atan2s(gObjectList[objectIndex].unk_038[1], gObjectList[objectIndex].unk_038[2]);
|
||||
u16 get_x_direction_angle(s32 objectIndex) {
|
||||
return -atan2s(gObjectList[objectIndex].velocity[1], gObjectList[objectIndex].velocity[2]);
|
||||
}
|
||||
|
||||
s32 func_80087368(s32 objectIndex) {
|
||||
return atan2s(gObjectList[objectIndex].unk_038[0], gObjectList[objectIndex].unk_038[2]);
|
||||
s32 get_y_direction_angle(s32 objectIndex) {
|
||||
return atan2s(gObjectList[objectIndex].velocity[0], gObjectList[objectIndex].velocity[2]);
|
||||
}
|
||||
|
||||
UNUSED void func_800873A4(s32 objectIndex) {
|
||||
gObjectList[objectIndex].unk_0BE[0] = func_800417B4(gObjectList[objectIndex].unk_0BE[0], func_80087324(objectIndex));
|
||||
gObjectList[objectIndex].direction_angle[0] = func_800417B4(gObjectList[objectIndex].direction_angle[0], get_x_direction_angle(objectIndex));
|
||||
}
|
||||
|
||||
void func_800873F4(s32 objectIndex) {
|
||||
gObjectList[objectIndex].unk_0BE[1] = func_800417B4(gObjectList[objectIndex].unk_0BE[1], func_80087368(objectIndex));
|
||||
gObjectList[objectIndex].direction_angle[1] = func_800417B4(gObjectList[objectIndex].direction_angle[1], get_y_direction_angle(objectIndex));
|
||||
}
|
||||
|
||||
UNUSED void func_80087444(s32 objectIndex) {
|
||||
gObjectList[objectIndex].unk_038[0] = gObjectList[objectIndex].unk_034 * sins(gObjectList[objectIndex].unk_0BE[1]);
|
||||
gObjectList[objectIndex].velocity[0] = gObjectList[objectIndex].unk_034 * sins(gObjectList[objectIndex].direction_angle[1]);
|
||||
}
|
||||
|
||||
UNUSED void func_8008748C(s32 objectIndex) {
|
||||
gObjectList[objectIndex].unk_038[1] = gObjectList[objectIndex].unk_034 * coss(gObjectList[objectIndex].unk_0BE[0]);
|
||||
gObjectList[objectIndex].velocity[1] = gObjectList[objectIndex].unk_034 * coss(gObjectList[objectIndex].direction_angle[0]);
|
||||
}
|
||||
|
||||
UNUSED void func_800874D4(s32 objectIndex) {
|
||||
gObjectList[objectIndex].unk_038[2] = gObjectList[objectIndex].unk_034 * coss(gObjectList[objectIndex].unk_0BE[1]);
|
||||
gObjectList[objectIndex].velocity[2] = gObjectList[objectIndex].unk_034 * coss(gObjectList[objectIndex].direction_angle[1]);
|
||||
}
|
||||
|
||||
void func_8008751C(s32 objectIndex) {
|
||||
gObjectList[objectIndex].unk_038[0] = gObjectList[objectIndex].unk_034 * sins(gObjectList[objectIndex].unk_0BE[1]);
|
||||
gObjectList[objectIndex].unk_038[2] = gObjectList[objectIndex].unk_034 * coss(gObjectList[objectIndex].unk_0BE[1]);
|
||||
gObjectList[objectIndex].velocity[0] = gObjectList[objectIndex].unk_034 * sins(gObjectList[objectIndex].direction_angle[1]);
|
||||
gObjectList[objectIndex].velocity[2] = gObjectList[objectIndex].unk_034 * coss(gObjectList[objectIndex].direction_angle[1]);
|
||||
}
|
||||
|
||||
void func_8008757C(s32 objectIndex) {
|
||||
f32 sp24;
|
||||
|
||||
sp24 = coss(gObjectList[objectIndex].unk_0BE[0]);
|
||||
gObjectList[objectIndex].unk_038[0] = (gObjectList[objectIndex].unk_034 * sp24) * sins(gObjectList[objectIndex].unk_0BE[1]);
|
||||
gObjectList[objectIndex].unk_038[1] = -gObjectList[objectIndex].unk_034 * sins(gObjectList[objectIndex].unk_0BE[0]);
|
||||
sp24 = coss(gObjectList[objectIndex].unk_0BE[0]);
|
||||
gObjectList[objectIndex].unk_038[2] = (gObjectList[objectIndex].unk_034 * sp24) * coss(gObjectList[objectIndex].unk_0BE[1]);
|
||||
sp24 = coss(gObjectList[objectIndex].direction_angle[0]);
|
||||
gObjectList[objectIndex].velocity[0] = (gObjectList[objectIndex].unk_034 * sp24) * sins(gObjectList[objectIndex].direction_angle[1]);
|
||||
gObjectList[objectIndex].velocity[1] = -gObjectList[objectIndex].unk_034 * sins(gObjectList[objectIndex].direction_angle[0]);
|
||||
sp24 = coss(gObjectList[objectIndex].direction_angle[0]);
|
||||
gObjectList[objectIndex].velocity[2] = (gObjectList[objectIndex].unk_034 * sp24) * coss(gObjectList[objectIndex].direction_angle[1]);
|
||||
}
|
||||
|
||||
void func_80087620(s32 objectIndex) {
|
||||
gObjectList[objectIndex].unk_038[0] = gObjectList[objectIndex].unk_034 * sins(gObjectList[objectIndex].unk_0BE[1] + 0x8000);
|
||||
gObjectList[objectIndex].unk_038[2] = gObjectList[objectIndex].unk_034 * coss(gObjectList[objectIndex].unk_0BE[1] + 0x8000);
|
||||
gObjectList[objectIndex].velocity[0] = gObjectList[objectIndex].unk_034 * sins(gObjectList[objectIndex].direction_angle[1] + 0x8000);
|
||||
gObjectList[objectIndex].velocity[2] = gObjectList[objectIndex].unk_034 * coss(gObjectList[objectIndex].direction_angle[1] + 0x8000);
|
||||
}
|
||||
|
||||
void func_800876A0(s32 objectIndex) {
|
||||
gObjectList[objectIndex].unk_028[0] += gObjectList[objectIndex].unk_034 * sins(gObjectList[objectIndex].unk_0BE[1]);
|
||||
gObjectList[objectIndex].unk_028[2] += gObjectList[objectIndex].unk_034 * coss(gObjectList[objectIndex].unk_0BE[1]);
|
||||
gObjectList[objectIndex].unk_028[0] += gObjectList[objectIndex].unk_034 * sins(gObjectList[objectIndex].direction_angle[1]);
|
||||
gObjectList[objectIndex].unk_028[2] += gObjectList[objectIndex].unk_034 * coss(gObjectList[objectIndex].direction_angle[1]);
|
||||
}
|
||||
|
||||
void func_80087710(s32 objectIndex) {
|
||||
gObjectList[objectIndex].unk_028[0] += gObjectList[objectIndex].unk_038[0];
|
||||
gObjectList[objectIndex].unk_028[1] += gObjectList[objectIndex].unk_038[1];
|
||||
gObjectList[objectIndex].unk_028[2] += gObjectList[objectIndex].unk_038[2];
|
||||
gObjectList[objectIndex].unk_028[0] += gObjectList[objectIndex].velocity[0];
|
||||
gObjectList[objectIndex].unk_028[1] += gObjectList[objectIndex].velocity[1];
|
||||
gObjectList[objectIndex].unk_028[2] += gObjectList[objectIndex].velocity[2];
|
||||
}
|
||||
|
||||
void func_8008775C(s32 objectIndex) {
|
||||
gObjectList[objectIndex].unk_028[0] += gObjectList[objectIndex].unk_038[0];
|
||||
gObjectList[objectIndex].unk_028[2] += gObjectList[objectIndex].unk_038[2];
|
||||
gObjectList[objectIndex].unk_028[0] += gObjectList[objectIndex].velocity[0];
|
||||
gObjectList[objectIndex].unk_028[2] += gObjectList[objectIndex].velocity[2];
|
||||
}
|
||||
|
||||
UNUSED void func_80087798(s32 objectIndex) {
|
||||
gObjectList[objectIndex].unk_028[0] += gObjectList[objectIndex].unk_038[0];
|
||||
gObjectList[objectIndex].unk_028[0] += gObjectList[objectIndex].velocity[0];
|
||||
}
|
||||
|
||||
void func_800877C4(s32 objectIndex) {
|
||||
gObjectList[objectIndex].unk_028[1] += gObjectList[objectIndex].unk_038[1];
|
||||
gObjectList[objectIndex].unk_028[1] += gObjectList[objectIndex].velocity[1];
|
||||
}
|
||||
|
||||
UNUSED void func_800877F0(s32 objectIndex) {
|
||||
gObjectList[objectIndex].unk_028[2] += gObjectList[objectIndex].unk_038[2];
|
||||
gObjectList[objectIndex].unk_028[2] += gObjectList[objectIndex].velocity[2];
|
||||
}
|
||||
|
||||
void func_8008781C(s32 arg0) {
|
||||
|
|
@ -218,7 +218,7 @@ s32 func_8008789C(s32 objectIndex, s32 arg1) {
|
|||
s32 sp24;
|
||||
|
||||
sp24 = 0;
|
||||
if (is_obj_index_flag_unk_054_inactive(objectIndex, 8) != 0) {
|
||||
if (is_obj_index_flag_unk_054_inactive(objectIndex, 8) != FALSE) {
|
||||
set_object_flag_unk_054_true(objectIndex, 8);
|
||||
func_8008751C(objectIndex);
|
||||
gObjectList[objectIndex].unk_0B0 = arg1;
|
||||
|
|
@ -237,7 +237,7 @@ s32 func_80087954(s32 objectIndex, s32 arg1) {
|
|||
s32 sp24;
|
||||
|
||||
sp24 = 0;
|
||||
if (is_obj_index_flag_unk_054_inactive(objectIndex, 8) != 0) {
|
||||
if (is_obj_index_flag_unk_054_inactive(objectIndex, 8) != FALSE) {
|
||||
set_object_flag_unk_054_true(objectIndex, 8);
|
||||
func_80087620(objectIndex);
|
||||
gObjectList[objectIndex].unk_0B0 = arg1;
|
||||
|
|
@ -252,27 +252,27 @@ s32 func_80087954(s32 objectIndex, s32 arg1) {
|
|||
return sp24;
|
||||
}
|
||||
|
||||
s32 func_80087A0C(s32 objectIndex, s16 arg1, s16 arg2, s16 arg3, s16 arg4) {
|
||||
s16 sp36;
|
||||
bool func_80087A0C(s32 objectIndex, s16 arg1, s16 arg2, s16 arg3, s16 arg4) {
|
||||
s16 dist;
|
||||
s16 temp_a0;
|
||||
s16 temp_v0;
|
||||
s32 sp2C;
|
||||
bool sp2C;
|
||||
|
||||
sp2C = 0;
|
||||
if (is_obj_index_flag_unk_054_inactive(objectIndex, 8) != 0) {
|
||||
sp2C = FALSE;
|
||||
if (is_obj_index_flag_unk_054_inactive(objectIndex, 8) != FALSE) {
|
||||
set_object_flag_unk_054_true(objectIndex, 8);
|
||||
temp_v0 = arg2 - arg1;
|
||||
temp_a0 = arg4 - arg3;
|
||||
sp36 = sqrtf((temp_v0 * temp_v0) + (temp_a0 * temp_a0));
|
||||
gObjectList[objectIndex].unk_010[1] = 0.0f;
|
||||
gObjectList[objectIndex].unk_0BE[1] = atan2s(temp_v0, temp_a0);
|
||||
dist = sqrtf((temp_v0 * temp_v0) + (temp_a0 * temp_a0));
|
||||
gObjectList[objectIndex].origin_pos[1] = 0.0f;
|
||||
gObjectList[objectIndex].direction_angle[1] = atan2s(temp_v0, temp_a0);
|
||||
func_8008751C(objectIndex);
|
||||
gObjectList[objectIndex].unk_0B0 = sp36 / gObjectList[objectIndex].unk_034;
|
||||
gObjectList[objectIndex].unk_0B0 = dist / gObjectList[objectIndex].unk_034;
|
||||
}
|
||||
gObjectList[objectIndex].unk_0B0--;
|
||||
if (gObjectList[objectIndex].unk_0B0 < 0) {
|
||||
set_object_flag_unk_054_false(objectIndex, 8);
|
||||
sp2C = 1;
|
||||
sp2C = TRUE;
|
||||
} else {
|
||||
func_8008775C(objectIndex);
|
||||
}
|
||||
|
|
@ -283,9 +283,9 @@ s32 func_80087B84(s32 objectIndex, f32 arg1, f32 arg2) {
|
|||
s32 sp24;
|
||||
|
||||
sp24 = 0;
|
||||
if (is_obj_index_flag_unk_054_inactive(objectIndex, 8) != 0) {
|
||||
if (is_obj_index_flag_unk_054_inactive(objectIndex, 8) != FALSE) {
|
||||
set_object_flag_unk_054_true(objectIndex, 8);
|
||||
gObjectList[objectIndex].unk_038[1] = -arg1;
|
||||
gObjectList[objectIndex].velocity[1] = -arg1;
|
||||
}
|
||||
func_800877C4(objectIndex);
|
||||
if (gObjectList[objectIndex].pos[1] <= arg2) {
|
||||
|
|
@ -300,9 +300,9 @@ s32 func_80087C48(s32 objectIndex, f32 arg1, f32 arg2, s32 arg3) {
|
|||
s32 sp24;
|
||||
|
||||
sp24 = 0;
|
||||
if (is_obj_index_flag_unk_054_inactive(objectIndex, 8) != 0) {
|
||||
if (is_obj_index_flag_unk_054_inactive(objectIndex, 8) != FALSE) {
|
||||
set_object_flag_unk_054_true(objectIndex, 8);
|
||||
gObjectList[objectIndex].unk_038[1] = arg1;
|
||||
gObjectList[objectIndex].velocity[1] = arg1;
|
||||
gObjectList[objectIndex].unk_0B0 = (s16) arg3;
|
||||
}
|
||||
gObjectList[objectIndex].unk_0B0--;
|
||||
|
|
@ -311,7 +311,7 @@ s32 func_80087C48(s32 objectIndex, f32 arg1, f32 arg2, s32 arg3) {
|
|||
func_80086FD4(objectIndex);
|
||||
sp24 = 1;
|
||||
} else {
|
||||
gObjectList[objectIndex].unk_038[1] -= arg2;
|
||||
gObjectList[objectIndex].velocity[1] -= arg2;
|
||||
func_800877C4(objectIndex);
|
||||
}
|
||||
return sp24;
|
||||
|
|
@ -323,9 +323,9 @@ s32 func_80087D24(s32 objectIndex, f32 arg1, f32 arg2, f32 arg3) {
|
|||
sp24 = 0;
|
||||
if (is_obj_index_flag_unk_054_inactive(objectIndex, 8) != 0) {
|
||||
set_object_flag_unk_054_true(objectIndex, 8);
|
||||
gObjectList[objectIndex].unk_038[1] = arg1;
|
||||
gObjectList[objectIndex].velocity[1] = arg1;
|
||||
}
|
||||
gObjectList[objectIndex].unk_038[1] -= arg2;
|
||||
gObjectList[objectIndex].velocity[1] -= arg2;
|
||||
func_800877C4(objectIndex);
|
||||
if (gObjectList[objectIndex].unk_028[1] <= arg3) {
|
||||
set_object_flag_unk_054_false(objectIndex, 8);
|
||||
|
|
@ -347,8 +347,8 @@ bool func_80087E08(s32 objectIndex, f32 arg1, f32 arg2, f32 arg3, s16 arg4, s32
|
|||
gObjectList[objectIndex].unk_028[1] = 0.0f;
|
||||
gObjectList[objectIndex].unk_028[0] = 0.0f;
|
||||
gObjectList[objectIndex].unk_034 = arg3;
|
||||
gObjectList[objectIndex].unk_038[1] = arg1;
|
||||
gObjectList[objectIndex].unk_0BE[1] = arg4;
|
||||
gObjectList[objectIndex].velocity[1] = arg1;
|
||||
gObjectList[objectIndex].direction_angle[1] = arg4;
|
||||
func_8008751C(objectIndex);
|
||||
gObjectList[objectIndex].unk_0B0 = arg5;
|
||||
}
|
||||
|
|
@ -358,7 +358,7 @@ bool func_80087E08(s32 objectIndex, f32 arg1, f32 arg2, f32 arg3, s16 arg4, s32
|
|||
func_80086FD4(objectIndex);
|
||||
sp2C = TRUE;
|
||||
} else {
|
||||
gObjectList[objectIndex].unk_038[1] -= arg2;
|
||||
gObjectList[objectIndex].velocity[1] -= arg2;
|
||||
func_80087710(objectIndex);
|
||||
}
|
||||
return sp2C;
|
||||
|
|
@ -375,8 +375,8 @@ UNUSED s32 func_80087F14(s32 objectIndex, f32 arg1, f32 arg2, f32 arg3, s16 arg4
|
|||
gObjectList[objectIndex].unk_028[1] = 0.0f;
|
||||
gObjectList[objectIndex].unk_028[0] = 0.0f;
|
||||
gObjectList[objectIndex].unk_034 = arg3;
|
||||
gObjectList[objectIndex].unk_038[1] = arg1;
|
||||
gObjectList[objectIndex].unk_0BE[1] = arg4;
|
||||
gObjectList[objectIndex].velocity[1] = arg1;
|
||||
gObjectList[objectIndex].direction_angle[1] = arg4;
|
||||
func_8008751C(objectIndex);
|
||||
gObjectList[objectIndex].unk_0B0 = gVBlankTimer;
|
||||
}
|
||||
|
|
@ -385,7 +385,7 @@ UNUSED s32 func_80087F14(s32 objectIndex, f32 arg1, f32 arg2, f32 arg3, s16 arg4
|
|||
func_80086FD4(objectIndex);
|
||||
sp2C = 1;
|
||||
} else {
|
||||
gObjectList[objectIndex].unk_038[1] -= arg2;
|
||||
gObjectList[objectIndex].velocity[1] -= arg2;
|
||||
func_80087710(objectIndex);
|
||||
}
|
||||
return sp2C;
|
||||
|
|
@ -400,8 +400,8 @@ void func_80088038(s32 objectIndex, f32 arg1, u16 arg2) {
|
|||
gObjectList[objectIndex].unk_0C4 += arg2;
|
||||
gObjectList[objectIndex].unk_028[0] = sins(gObjectList[objectIndex].unk_0C4) * arg1;
|
||||
gObjectList[objectIndex].unk_028[2] = coss(gObjectList[objectIndex].unk_0C4) * arg1;
|
||||
gObjectList[objectIndex].unk_038[0] = gObjectList[objectIndex].unk_028[0] - temp_f4;
|
||||
gObjectList[objectIndex].unk_038[2] = gObjectList[objectIndex].unk_028[2] - sp20;
|
||||
gObjectList[objectIndex].velocity[0] = gObjectList[objectIndex].unk_028[0] - temp_f4;
|
||||
gObjectList[objectIndex].velocity[2] = gObjectList[objectIndex].unk_028[2] - sp20;
|
||||
}
|
||||
|
||||
UNUSED void func_800880DC(void) {
|
||||
|
|
@ -429,11 +429,11 @@ void func_80088178(s32 objectIndex, s32 arg1) {
|
|||
|
||||
temp_v1 = &gObjectList[objectIndex];
|
||||
temp_a1 = atan2s(D_80165760[1] - D_80165760[0], D_80165780[1] - D_80165780[0]);
|
||||
temp_a1 -= temp_v1->unk_0BE[1];
|
||||
temp_a1 -= temp_v1->direction_angle[1];
|
||||
if (temp_a1 > 0) {
|
||||
temp_v1->unk_0BE[1] += (arg1 << 8);
|
||||
temp_v1->direction_angle[1] += (arg1 << 8);
|
||||
} else if (temp_a1 < 0) {
|
||||
temp_v1->unk_0BE[1] -= (arg1 << 8);
|
||||
temp_v1->direction_angle[1] -= (arg1 << 8);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -573,9 +573,9 @@ void func_800887C0(s32 objectIndex) {
|
|||
if (D_8018C3B0.unk34 == 1) {
|
||||
set_object_flag_unk_054_true(objectIndex, 0x00800000);
|
||||
gObjectList[objectIndex].unk_044 = func_802ABE30(gObjectList[objectIndex].pos[0], 0.0f, gObjectList[objectIndex].pos[2], D_8018C3B0.unk3A);
|
||||
gObjectList[objectIndex].unk_038[0] = D_8018C3B0.orientationVector[0];
|
||||
gObjectList[objectIndex].unk_038[1] = D_8018C3B0.orientationVector[1];
|
||||
gObjectList[objectIndex].unk_038[2] = D_8018C3B0.orientationVector[2];
|
||||
gObjectList[objectIndex].velocity[0] = D_8018C3B0.orientationVector[0];
|
||||
gObjectList[objectIndex].velocity[1] = D_8018C3B0.orientationVector[1];
|
||||
gObjectList[objectIndex].velocity[2] = D_8018C3B0.orientationVector[2];
|
||||
return;
|
||||
}
|
||||
set_object_flag_unk_054_false(objectIndex, 0x00800000);
|
||||
|
|
@ -882,8 +882,8 @@ bool has_collided_with_player_and_within_height(s32 objectIndex, Player *player,
|
|||
bool var_v1;
|
||||
|
||||
var_v1 = FALSE;
|
||||
x = gObjectList[objectIndex].pos[0] - player->pos[0];
|
||||
y = gObjectList[objectIndex].pos[1] - player->pos[1];
|
||||
x = gObjectList[objectIndex].pos[0] - player->pos[0];
|
||||
y = gObjectList[objectIndex].pos[1] - player->pos[1];
|
||||
z = gObjectList[objectIndex].pos[2] - player->pos[2];
|
||||
distance = gObjectList[objectIndex].boundingBoxSize + player->boundingBoxSize;
|
||||
// abs(y)
|
||||
|
|
@ -1014,15 +1014,15 @@ f32 func_8008933C(Player *player, s32 objectIndex, f32 arg2, f32 arg3) {
|
|||
player->unk_046 |= 2;
|
||||
player->effects |= 0x8000;
|
||||
temp_v1->unk_18[6] = 4;
|
||||
something = (player->pos[0] - temp_v0->pos[0]) * temp_v0->unk_038[0];
|
||||
something = (player->pos[0] - temp_v0->pos[0]) * temp_v0->velocity[0];
|
||||
if (something >= 0.0f) {
|
||||
temp_v1->unk_04[0] = (-player->velocity[0] * arg2) + (temp_v0->unk_038[0] * arg3);
|
||||
temp_v1->unk_04[0] = (-player->velocity[0] * arg2) + (temp_v0->velocity[0] * arg3);
|
||||
} else {
|
||||
temp_v1->unk_04[0] = -player->velocity[0] * arg2;
|
||||
}
|
||||
something = (player->pos[2] - temp_v0->pos[2]) * temp_v0->unk_038[2];
|
||||
something = (player->pos[2] - temp_v0->pos[2]) * temp_v0->velocity[2];
|
||||
if (something >= 0.0f) {
|
||||
temp_v1->unk_04[2] = (-player->velocity[2] * arg2) + (temp_v0->unk_038[2] * arg3);
|
||||
temp_v1->unk_04[2] = (-player->velocity[2] * arg2) + (temp_v0->velocity[2] * arg3);
|
||||
} else {
|
||||
temp_v1->unk_04[2] = -player->velocity[2] * arg2;
|
||||
}
|
||||
|
|
@ -1235,7 +1235,7 @@ s32 func_8008A060(s32 objectIndex, Camera *camera, u16 arg2) {
|
|||
s32 var_v1;
|
||||
|
||||
var_v1 = 0;
|
||||
temp_t3 = (((u16)camera->rot[1] - gObjectList[objectIndex].unk_0BE[1]) + (arg2 >> 1));
|
||||
temp_t3 = (((u16)camera->rot[1] - gObjectList[objectIndex].direction_angle[1]) + (arg2 >> 1));
|
||||
|
||||
//! @warning Always true
|
||||
if ((temp_t3 >= 0) && (arg2 >= temp_t3)) {
|
||||
|
|
@ -1438,9 +1438,9 @@ void func_8008A920(s32 objectIndex) {
|
|||
Vec4s *temp_v0;
|
||||
|
||||
temp_v0 = gObjectList[objectIndex].unk_07C;
|
||||
gObjectList[objectIndex].unk_038[0] = (f32) (temp_v0[1][0] - temp_v0[0][0]) / (f32) temp_v0[0][3];
|
||||
gObjectList[objectIndex].unk_038[1] = (f32) (temp_v0[1][1] - temp_v0[0][1]) / (f32) temp_v0[0][3];
|
||||
gObjectList[objectIndex].unk_038[2] = (f32) (temp_v0[1][2] - temp_v0[0][2]) / (f32) temp_v0[0][3];
|
||||
gObjectList[objectIndex].velocity[0] = (f32) (temp_v0[1][0] - temp_v0[0][0]) / (f32) temp_v0[0][3];
|
||||
gObjectList[objectIndex].velocity[1] = (f32) (temp_v0[1][1] - temp_v0[0][1]) / (f32) temp_v0[0][3];
|
||||
gObjectList[objectIndex].velocity[2] = (f32) (temp_v0[1][2] - temp_v0[0][2]) / (f32) temp_v0[0][3];
|
||||
}
|
||||
|
||||
void func_8008A9B8(s32 objectIndex) {
|
||||
|
|
@ -1478,9 +1478,9 @@ void func_8008AB10(s32 objectIndex) {
|
|||
Objects *temp_v0;
|
||||
|
||||
temp_v0 = &gObjectList[objectIndex];
|
||||
temp_v0->unk_028[0] += temp_v0->unk_038[0];
|
||||
temp_v0->unk_028[1] += temp_v0->unk_038[1];
|
||||
temp_v0->unk_028[2] += temp_v0->unk_038[2];
|
||||
temp_v0->unk_028[0] += temp_v0->velocity[0];
|
||||
temp_v0->unk_028[1] += temp_v0->velocity[1];
|
||||
temp_v0->unk_028[2] += temp_v0->velocity[2];
|
||||
temp_v0->timer += (u16)temp_v0->unk_09A;
|
||||
if (temp_v0->timer >= 0x2710) {
|
||||
temp_v0->unk_084[9] = (u16)temp_v0->unk_084[9] + 1;
|
||||
|
|
@ -1574,9 +1574,9 @@ void func_8008AE9C(s32 objectIndex) {
|
|||
Objects *temp_v0;
|
||||
|
||||
temp_v0 = &gObjectList[objectIndex];
|
||||
temp_v0->unk_038[0] = (D_80183DC8[0] * D_80165760[0]) + (D_80183DC8[1] * D_80165760[1]) + (D_80183DC8[2] * D_80165760[2]) + (D_80183DC8[3] * D_80165760[3]);
|
||||
temp_v0->unk_038[1] = (D_80183DC8[0] * D_80165770[0]) + (D_80183DC8[1] * D_80165770[1]) + (D_80183DC8[2] * D_80165770[2]) + (D_80183DC8[3] * D_80165770[3]);
|
||||
temp_v0->unk_038[2] = (D_80183DC8[0] * D_80165780[0]) + (D_80183DC8[1] * D_80165780[1]) + (D_80183DC8[2] * D_80165780[2]) + (D_80183DC8[3] * D_80165780[3]);
|
||||
temp_v0->velocity[0] = (D_80183DC8[0] * D_80165760[0]) + (D_80183DC8[1] * D_80165760[1]) + (D_80183DC8[2] * D_80165760[2]) + (D_80183DC8[3] * D_80165760[3]);
|
||||
temp_v0->velocity[1] = (D_80183DC8[0] * D_80165770[0]) + (D_80183DC8[1] * D_80165770[1]) + (D_80183DC8[2] * D_80165770[2]) + (D_80183DC8[3] * D_80165770[3]);
|
||||
temp_v0->velocity[2] = (D_80183DC8[0] * D_80165780[0]) + (D_80183DC8[1] * D_80165780[1]) + (D_80183DC8[2] * D_80165780[2]) + (D_80183DC8[3] * D_80165780[3]);
|
||||
}
|
||||
|
||||
void func_8008AFE0(s32 objectIndex, f32 arg1) {
|
||||
|
|
@ -1778,10 +1778,10 @@ void func_8008B78C(s32 objectIndex) {
|
|||
}
|
||||
}
|
||||
|
||||
void func_8008B7D4(s32 objectIndex, f32 arg1, f32 arg2, f32 arg3) {
|
||||
gObjectList[objectIndex].unk_010[0] = arg1;
|
||||
gObjectList[objectIndex].unk_010[1] = arg2;
|
||||
gObjectList[objectIndex].unk_010[2] = arg3;
|
||||
void set_obj_origin_pos(s32 objectIndex, f32 arg1, f32 arg2, f32 arg3) {
|
||||
gObjectList[objectIndex].origin_pos[0] = arg1;
|
||||
gObjectList[objectIndex].origin_pos[1] = arg2;
|
||||
gObjectList[objectIndex].origin_pos[2] = arg3;
|
||||
}
|
||||
|
||||
void func_8008B80C(s32 objectIndex, f32 arg1, f32 arg2, f32 arg3) {
|
||||
|
|
@ -1791,66 +1791,66 @@ void func_8008B80C(s32 objectIndex, f32 arg1, f32 arg2, f32 arg3) {
|
|||
}
|
||||
|
||||
void func_8008B844(s32 objectIndex) {
|
||||
f32 temp_f0 = gObjectList[objectIndex].unk_010[0];
|
||||
f32 temp_f0 = gObjectList[objectIndex].origin_pos[0];
|
||||
|
||||
gObjectList[objectIndex].pos[0] = gObjectList[objectIndex].unk_028[0] + temp_f0;
|
||||
gObjectList[objectIndex].pos[1] = gObjectList[objectIndex].unk_028[1] + temp_f0;
|
||||
gObjectList[objectIndex].pos[2] = gObjectList[objectIndex].unk_028[2] + temp_f0;
|
||||
}
|
||||
|
||||
void func_8008B888(s32 objectIndex, u16 arg1, u16 arg2, u16 arg3) {
|
||||
gObjectList[objectIndex].unk_0BE[0] = arg1;
|
||||
gObjectList[objectIndex].unk_0BE[1] = arg2;
|
||||
gObjectList[objectIndex].unk_0BE[2] = arg3;
|
||||
void set_obj_direction_angle(s32 objectIndex, u16 arg1, u16 arg2, u16 arg3) {
|
||||
gObjectList[objectIndex].direction_angle[0] = arg1;
|
||||
gObjectList[objectIndex].direction_angle[1] = arg2;
|
||||
gObjectList[objectIndex].direction_angle[2] = arg3;
|
||||
}
|
||||
|
||||
void func_8008B8BC(s32 objectIndex, u16 arg1, u16 arg2, u16 arg3) {
|
||||
gObjectList[objectIndex].unk_0B2[0] = arg1;
|
||||
gObjectList[objectIndex].unk_0B2[1] = arg2;
|
||||
gObjectList[objectIndex].unk_0B2[2] = arg3;
|
||||
void set_obj_orientation(s32 objectIndex, u16 arg1, u16 arg2, u16 arg3) {
|
||||
gObjectList[objectIndex].orientation[0] = arg1;
|
||||
gObjectList[objectIndex].orientation[1] = arg2;
|
||||
gObjectList[objectIndex].orientation[2] = arg3;
|
||||
}
|
||||
|
||||
void func_8008B8F0(s32 objectIndex, f32 arg1, f32 arg2, f32 arg3) {
|
||||
gObjectList[objectIndex].unk_038[0] = arg1;
|
||||
gObjectList[objectIndex].unk_038[1] = arg2;
|
||||
gObjectList[objectIndex].unk_038[2] = arg3;
|
||||
void set_obj_velocity(s32 objectIndex, f32 arg1, f32 arg2, f32 arg3) {
|
||||
gObjectList[objectIndex].velocity[0] = arg1;
|
||||
gObjectList[objectIndex].velocity[1] = arg2;
|
||||
gObjectList[objectIndex].velocity[2] = arg3;
|
||||
}
|
||||
|
||||
void func_8008B928(s32 objectIndex, s16 arg1, s16 arg2, s16 arg3, s16 arg4[][4]) {
|
||||
Objects *temp_s0;
|
||||
|
||||
temp_s0 = &gObjectList[objectIndex];
|
||||
temp_s0->unk_010[0] = (f32) arg1;
|
||||
temp_s0->unk_010[1] = (f32) arg2;
|
||||
temp_s0->origin_pos[0] = (f32) arg1;
|
||||
temp_s0->origin_pos[1] = (f32) arg2;
|
||||
temp_s0->unk_080 = arg4;
|
||||
temp_s0->unk_010[2] = (f32) arg3;
|
||||
temp_s0->unk_038[0] = (f32) (arg4[1][1] - arg4[0][1]);
|
||||
temp_s0->unk_038[1] = (f32) (arg4[1][2] - arg4[0][2]);
|
||||
temp_s0->unk_038[2] = (f32) (arg4[1][3] - arg4[0][3]);
|
||||
temp_s0->unk_0BE[1] = func_80087368(objectIndex);
|
||||
temp_s0->unk_038[2] = func_800416D8(temp_s0->unk_038[2], temp_s0->unk_038[0], -temp_s0->unk_0BE[1]);
|
||||
temp_s0->unk_0BE[0] = func_80087324(objectIndex);
|
||||
temp_s0->origin_pos[2] = (f32) arg3;
|
||||
temp_s0->velocity[0] = (f32) (arg4[1][1] - arg4[0][1]);
|
||||
temp_s0->velocity[1] = (f32) (arg4[1][2] - arg4[0][2]);
|
||||
temp_s0->velocity[2] = (f32) (arg4[1][3] - arg4[0][3]);
|
||||
temp_s0->direction_angle[1] = get_y_direction_angle(objectIndex);
|
||||
temp_s0->velocity[2] = func_800416D8(temp_s0->velocity[2], temp_s0->velocity[0], -temp_s0->direction_angle[1]);
|
||||
temp_s0->direction_angle[0] = get_x_direction_angle(objectIndex);
|
||||
}
|
||||
|
||||
UNUSED void func_8008BA40(s32 objectIndex, s16 arg1, u16 arg2) {
|
||||
s16 test;
|
||||
|
||||
test = random_int(arg2) - (arg2 / 2);
|
||||
gObjectList[objectIndex].unk_010[0] = arg1 + test;
|
||||
gObjectList[objectIndex].origin_pos[0] = arg1 + test;
|
||||
}
|
||||
|
||||
void func_8008BAB4(s32 objectIndex, s16 arg1, u16 arg2) {
|
||||
s16 test;
|
||||
|
||||
test = random_int(arg2) - (arg2 / 2);
|
||||
gObjectList[objectIndex].unk_010[1] = arg1 + test;
|
||||
gObjectList[objectIndex].origin_pos[1] = arg1 + test;
|
||||
}
|
||||
|
||||
UNUSED void func_8008BB28(s32 objectIndex, s16 arg1, u16 arg2) {
|
||||
s16 test;
|
||||
|
||||
test = random_int(arg2) - (arg2 / 2);
|
||||
gObjectList[objectIndex].unk_010[2] = arg1 + test;
|
||||
gObjectList[objectIndex].origin_pos[2] = arg1 + test;
|
||||
}
|
||||
|
||||
UNUSED void func_8008BB9C(s32 objectIndex, s16 arg1, s16 arg2, u16 arg3, u16 arg4) {
|
||||
|
|
@ -1859,8 +1859,8 @@ UNUSED void func_8008BB9C(s32 objectIndex, s16 arg1, s16 arg2, u16 arg3, u16 arg
|
|||
|
||||
sp1E = random_int(arg3) - ((s32) arg3 / 2);
|
||||
temp_v0 = random_int(arg4) - ((s32) arg4 / 2);
|
||||
gObjectList[objectIndex].unk_010[0] = arg1 + sp1E;
|
||||
gObjectList[objectIndex].unk_010[1] = arg2 + temp_v0;
|
||||
gObjectList[objectIndex].origin_pos[0] = arg1 + sp1E;
|
||||
gObjectList[objectIndex].origin_pos[1] = arg2 + temp_v0;
|
||||
}
|
||||
|
||||
UNUSED void func_8008BC58(s32 objectIndex, s16 arg1, s16 arg2, u16 arg3, u16 arg4) {
|
||||
|
|
@ -1869,8 +1869,8 @@ UNUSED void func_8008BC58(s32 objectIndex, s16 arg1, s16 arg2, u16 arg3, u16 arg
|
|||
|
||||
sp1E = random_int(arg3) - ((s32) arg3 / 2);
|
||||
temp_v0 = random_int(arg4) - ((s32) arg4 / 2);
|
||||
gObjectList[objectIndex].unk_010[0] = arg1 + sp1E;
|
||||
gObjectList[objectIndex].unk_010[2] = arg2 + temp_v0;
|
||||
gObjectList[objectIndex].origin_pos[0] = arg1 + sp1E;
|
||||
gObjectList[objectIndex].origin_pos[2] = arg2 + temp_v0;
|
||||
}
|
||||
|
||||
void func_8008BD14(s32 objectIndex, s16 arg1, s16 arg2, s16 arg3, u16 arg4, u16 arg5, u16 arg6) {
|
||||
|
|
@ -1881,17 +1881,17 @@ void func_8008BD14(s32 objectIndex, s16 arg1, s16 arg2, s16 arg3, u16 arg4, u16
|
|||
sp1E = random_int(arg4) - ((s32) arg4 / 2);
|
||||
sp1C = random_int(arg5) - ((s32) arg5 / 2);
|
||||
temp_v0 = random_int(arg6) - ((s32) arg6 / 2);
|
||||
gObjectList[objectIndex].unk_010[0] = arg1 + sp1E;
|
||||
gObjectList[objectIndex].unk_010[1] = arg2 + sp1C;
|
||||
gObjectList[objectIndex].unk_010[2] = arg3 + temp_v0;
|
||||
gObjectList[objectIndex].origin_pos[0] = arg1 + sp1E;
|
||||
gObjectList[objectIndex].origin_pos[1] = arg2 + sp1C;
|
||||
gObjectList[objectIndex].origin_pos[2] = arg3 + temp_v0;
|
||||
}
|
||||
|
||||
void func_8008BE0C(s32 objectIndex, s16 arg1, u16 arg2) {
|
||||
gObjectList[objectIndex].unk_010[0] = gPlayerOneCopy->pos[0] + (sins(arg2) * arg1);
|
||||
gObjectList[objectIndex].unk_010[2] = gPlayerOneCopy->pos[2] + (coss(arg2) * arg1);
|
||||
gObjectList[objectIndex].origin_pos[0] = gPlayerOneCopy->pos[0] + (sins(arg2) * arg1);
|
||||
gObjectList[objectIndex].origin_pos[2] = gPlayerOneCopy->pos[2] + (coss(arg2) * arg1);
|
||||
}
|
||||
|
||||
void func_8008BEA4(s32 objectIndex, u16 arg1, u16 arg2) {
|
||||
UNUSED void func_8008BEA4(s32 objectIndex, u16 arg1, u16 arg2) {
|
||||
u16 thing;
|
||||
u16 thing2;
|
||||
|
||||
|
|
@ -1901,9 +1901,9 @@ void func_8008BEA4(s32 objectIndex, u16 arg1, u16 arg2) {
|
|||
}
|
||||
|
||||
void func_8008BF18(s32 objectIndex) {
|
||||
gObjectList[objectIndex].pos[0] = gObjectList[objectIndex].unk_010[0] + gObjectList[objectIndex].unk_028[0];
|
||||
gObjectList[objectIndex].pos[1] = gObjectList[objectIndex].unk_010[1] + gObjectList[objectIndex].unk_028[1];
|
||||
gObjectList[objectIndex].pos[2] = gObjectList[objectIndex].unk_010[2] + gObjectList[objectIndex].unk_028[2];
|
||||
gObjectList[objectIndex].pos[0] = gObjectList[objectIndex].origin_pos[0] + gObjectList[objectIndex].unk_028[0];
|
||||
gObjectList[objectIndex].pos[1] = gObjectList[objectIndex].origin_pos[1] + gObjectList[objectIndex].unk_028[1];
|
||||
gObjectList[objectIndex].pos[2] = gObjectList[objectIndex].origin_pos[2] + gObjectList[objectIndex].unk_028[2];
|
||||
}
|
||||
|
||||
void func_8008BF64(s32 objectIndex) {
|
||||
|
|
@ -1913,9 +1913,9 @@ void func_8008BF64(s32 objectIndex) {
|
|||
D_80183E40[0] = temp_v0->pos[0];
|
||||
D_80183E40[1] = temp_v0->pos[1];
|
||||
D_80183E40[2] = temp_v0->pos[2];
|
||||
D_80183E80[0] = temp_v0->unk_0BE[0];
|
||||
D_80183E80[1] = temp_v0->unk_0BE[1];
|
||||
D_80183E80[2] = temp_v0->unk_0BE[2];
|
||||
D_80183E80[0] = temp_v0->direction_angle[0];
|
||||
D_80183E80[1] = temp_v0->direction_angle[1];
|
||||
D_80183E80[2] = temp_v0->direction_angle[2];
|
||||
}
|
||||
|
||||
void func_8008BFC0(s32 objectIndex) {
|
||||
|
|
|
|||
|
|
@ -18,8 +18,8 @@ s32 func_800871AC(s32, s32);
|
|||
void func_80087258(s32, s32, f32);
|
||||
s32 func_80087294(s32, Player*);
|
||||
s32 angle_between_object_camera(s32, Camera*);
|
||||
u16 func_80087324(s32);
|
||||
s32 func_80087368(s32);
|
||||
u16 get_x_direction_angle(s32);
|
||||
s32 get_y_direction_angle(s32);
|
||||
void func_800873A4(s32);
|
||||
void func_800873F4(s32);
|
||||
void func_80087444(s32);
|
||||
|
|
@ -143,12 +143,12 @@ void func_8008B620(s32);
|
|||
void func_8008B6A4(s32);
|
||||
void func_8008B724(s32);
|
||||
void func_8008B78C(s32);
|
||||
void func_8008B7D4(s32, f32, f32, f32);
|
||||
void set_obj_origin_pos(s32, f32, f32, f32);
|
||||
void func_8008B80C(s32, f32, f32, f32);
|
||||
void func_8008B844(s32);
|
||||
void func_8008B888(s32, u16, u16, u16);
|
||||
void func_8008B8BC(s32, u16, u16, u16);
|
||||
void func_8008B8F0(s32, f32, f32, f32);
|
||||
void set_obj_direction_angle(s32, u16, u16, u16);
|
||||
void set_obj_orientation(s32, u16, u16, u16);
|
||||
void set_obj_velocity(s32, f32, f32, f32);
|
||||
void func_8008B928(s32, s16, s16, s16, s16[][4]);
|
||||
void func_8008BA40(s32, s16, u16);
|
||||
void func_8008BAB4(s32, s16, u16);
|
||||
|
|
|
|||
|
|
@ -2835,7 +2835,7 @@ void func_80050E34(s32 playerId, s32 arg1) {
|
|||
object->pos[0] = object->unk_028[0] + ((f32) (spD0 + 0x20));
|
||||
object->pos[1] = object->unk_028[1] + ((f32) (spC4 + spCC));
|
||||
object->pos[2] = object->unk_028[2];
|
||||
rsp_set_matrix_transformation(object->pos, object->unk_0BE, object->sizeScaling);
|
||||
rsp_set_matrix_transformation(object->pos, object->direction_angle, object->sizeScaling);
|
||||
gSPDisplayList(gDisplayListHead++, D_0D0069E0);
|
||||
} else {
|
||||
gDPLoadTLUT_pal256(gDisplayListHead++, gPortraitTLUTs[characterId]);
|
||||
|
|
@ -2850,7 +2850,7 @@ void func_80050E34(s32 playerId, s32 arg1) {
|
|||
object->pos[0] = object->unk_028[0] + ((f32) (spD0 + 0x20));
|
||||
object->pos[1] = object->unk_028[1] + ((f32) (spC4 + spCC));
|
||||
object->pos[2] = object->unk_028[2];
|
||||
rsp_set_matrix_transformation(object->pos, object->unk_0BE, object->sizeScaling);
|
||||
rsp_set_matrix_transformation(object->pos, object->direction_angle, object->sizeScaling);
|
||||
if (spB8 != 0) {
|
||||
gSPDisplayList(gDisplayListHead++, D_0D0069F8);
|
||||
} else {
|
||||
|
|
@ -2868,7 +2868,7 @@ void func_80050E34(s32 playerId, s32 arg1) {
|
|||
gSPDisplayList(gDisplayListHead++, D_0D007A40);
|
||||
func_8004B35C(D_8018D3E4, D_8018D3E8, D_8018D3EC, 0x000000FF);
|
||||
func_80044924(common_texture_character_portrait_border, 0x00000020, 0x00000020);
|
||||
rsp_set_matrix_transformation(object->pos, object->unk_0BE, object->sizeScaling);
|
||||
rsp_set_matrix_transformation(object->pos, object->direction_angle, object->sizeScaling);
|
||||
gSPDisplayList(gDisplayListHead++, D_0D0069E0);
|
||||
}
|
||||
}
|
||||
|
|
@ -2914,8 +2914,8 @@ void func_80051638(UNUSED s32 arg0) {
|
|||
gSPDisplayList(gDisplayListHead++, D_0D0079C8);
|
||||
gSPClearGeometryMode(gDisplayListHead++, G_CULL_BOTH);
|
||||
func_80043D50(common_texture_particle_leaf, 0x00000020, 0x00000010);
|
||||
for(someIndex = 0; someIndex < D_8018C970_SIZE; someIndex++) {
|
||||
leafIndex = D_8018C970[someIndex];
|
||||
for(someIndex = 0; someIndex < gLeafParticle_SIZE; someIndex++) {
|
||||
leafIndex = gLeafParticle[someIndex];
|
||||
if (leafIndex != -1) {
|
||||
object = &gObjectList[leafIndex];
|
||||
if ((object->state >= 2) && (object->unk_0D5 == 7) && (gMatrixHudCount <= MTX_HUD_POOL_SIZE_MAX)) {
|
||||
|
|
@ -2936,7 +2936,7 @@ void func_800517C8(void) {
|
|||
gDPSetCombineLERP(gDisplayListHead++, 1, 0, SHADE, 0, 0, 0, 0, TEXEL0, 1, 0, SHADE, 0, 0, 0, 0, TEXEL0);
|
||||
func_80044F34(D_0D0293D8, 0x10, 0x10);
|
||||
for (someIndex = 0; someIndex < NUM_SNOWFLAKES; someIndex++) {
|
||||
snowflakeIndex = D_8018C1B0[someIndex];
|
||||
snowflakeIndex = gObjectParticle1[someIndex];
|
||||
if (gObjectList[snowflakeIndex].state >= 2) {
|
||||
rsp_set_matrix_gObjectList(snowflakeIndex);
|
||||
gSPDisplayList(gDisplayListHead++, D_0D006980);
|
||||
|
|
@ -3099,7 +3099,7 @@ void func_8005217C(s32 arg0) {
|
|||
object = &gObjectList[temp_a3];
|
||||
if (object->state >= 2) {
|
||||
if (is_obj_index_flag_unk_054_active(temp_a3, 0x00000010) != 0) {
|
||||
rsp_set_matrix_transformation(object->pos, object->unk_0BE, object->sizeScaling);
|
||||
rsp_set_matrix_transformation(object->pos, object->direction_angle, object->sizeScaling);
|
||||
func_800520C0(temp_a3);
|
||||
|
||||
gSPDisplayList(gDisplayListHead++, D_0D007828);
|
||||
|
|
@ -3121,14 +3121,14 @@ void func_8005217C(s32 arg0) {
|
|||
|
||||
void func_800523B8(s32 objectIndex, s32 arg1, u32 arg2) {
|
||||
UNUSED s32 pad[2];
|
||||
Objects *temp_v1;
|
||||
Objects *object;
|
||||
Camera *camera = &camera1[arg1];
|
||||
|
||||
temp_v1 = &gObjectList[objectIndex];
|
||||
temp_v1->unk_0B2[1] = func_800418AC(temp_v1->pos[0], temp_v1->pos[2], camera->pos);
|
||||
func_800484BC(temp_v1->pos, temp_v1->unk_0B2, temp_v1->sizeScaling, temp_v1->unk_0A0, (u8 *) temp_v1->activeTLUT, temp_v1->activeTexture, temp_v1->vertex, 0x00000030, 0x00000028, 0x00000030, 0x00000028);
|
||||
object = &gObjectList[objectIndex];
|
||||
object->orientation[1] = func_800418AC(object->pos[0], object->pos[2], camera->pos);
|
||||
func_800484BC(object->pos, object->orientation, object->sizeScaling, object->unk_0A0, (u8 *) object->activeTLUT, object->activeTexture, object->vertex, 0x00000030, 0x00000028, 0x00000030, 0x00000028);
|
||||
if ((is_obj_index_flag_unk_054_active(objectIndex, 0x00000020) != 0) && (arg2 < 0x15F91U)) {
|
||||
func_8004A630(&D_8018C830, temp_v1->pos, 0.4f);
|
||||
func_8004A630(&D_8018C830, object->pos, 0.4f);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -3150,33 +3150,33 @@ void func_800524B4(s32 arg0) {
|
|||
|
||||
void func_80052590(s32 cameraId) {
|
||||
s32 var_s2;
|
||||
s32 temp_s0;
|
||||
s32 objectIndex;
|
||||
Camera *temp_s7;
|
||||
|
||||
temp_s0 = indexObjectList1[0];
|
||||
objectIndex = indexObjectList1[0];
|
||||
temp_s7 = &camera1[cameraId];
|
||||
func_80046F60(gObjectList[temp_s0].activeTLUT, gObjectList[temp_s0].activeTexture, 0x00000020, 0x00000040, 5);
|
||||
D_80183E80[0] = gObjectList[temp_s0].unk_0B2[0];
|
||||
D_80183E80[2] = gObjectList[temp_s0].unk_0B2[2];
|
||||
func_80046F60(gObjectList[objectIndex].activeTLUT, gObjectList[objectIndex].activeTexture, 0x00000020, 0x00000040, 5);
|
||||
D_80183E80[0] = gObjectList[objectIndex].orientation[0];
|
||||
D_80183E80[2] = gObjectList[objectIndex].orientation[2];
|
||||
if ((D_8018CFB0 != 0) || (D_8018CFC8 != 0)) {
|
||||
for (var_s2 = 0; var_s2 < 40; var_s2++) {
|
||||
temp_s0 = D_8018C3F0[var_s2];
|
||||
if (temp_s0 == -1) continue;
|
||||
objectIndex = gObjectParticle2[var_s2];
|
||||
if (objectIndex == -1) continue;
|
||||
|
||||
if ((gObjectList[temp_s0].state >= 2) && (gMatrixHudCount < 0x2EF)) {
|
||||
D_80183E80[1] = func_800418AC(gObjectList[temp_s0].pos[0], gObjectList[temp_s0].pos[2], temp_s7->pos);
|
||||
func_800431B0(gObjectList[temp_s0].pos, D_80183E80, gObjectList[temp_s0].sizeScaling, D_0D0062B0);
|
||||
if ((gObjectList[objectIndex].state >= 2) && (gMatrixHudCount < 0x2EF)) {
|
||||
D_80183E80[1] = func_800418AC(gObjectList[objectIndex].pos[0], gObjectList[objectIndex].pos[2], temp_s7->pos);
|
||||
func_800431B0(gObjectList[objectIndex].pos, D_80183E80, gObjectList[objectIndex].sizeScaling, D_0D0062B0);
|
||||
}
|
||||
}
|
||||
}
|
||||
if ((D_8018CFE8 != 0) || (D_8018D000 != 0)) {
|
||||
for (var_s2 = 0; var_s2 < 30; var_s2++) {
|
||||
temp_s0 = D_8018C630[var_s2];
|
||||
if (temp_s0 == -1) continue;
|
||||
objectIndex = gObjectParticle3[var_s2];
|
||||
if (objectIndex == -1) continue;
|
||||
|
||||
if ((gObjectList[temp_s0].state >= 2) && (gMatrixHudCount < 0x2EF)) {
|
||||
D_80183E80[1] = func_800418AC(gObjectList[temp_s0].pos[0], gObjectList[temp_s0].pos[2], temp_s7->pos);
|
||||
func_800431B0(gObjectList[temp_s0].pos, D_80183E80, gObjectList[temp_s0].sizeScaling, D_0D0062B0);
|
||||
if ((gObjectList[objectIndex].state >= 2) && (gMatrixHudCount < 0x2EF)) {
|
||||
D_80183E80[1] = func_800418AC(gObjectList[objectIndex].pos[0], gObjectList[objectIndex].pos[2], temp_s7->pos);
|
||||
func_800431B0(gObjectList[objectIndex].pos, D_80183E80, gObjectList[objectIndex].sizeScaling, D_0D0062B0);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -3192,7 +3192,7 @@ void func_800527D8(s32 cameraId) {
|
|||
if (is_obj_index_flag_unk_054_active(objectIndex, 0x00040000) != 0) {
|
||||
object = &gObjectList[objectIndex];
|
||||
if (object->state >= 2) {
|
||||
func_80043220(object->pos, object->unk_0B2, object->sizeScaling, object->unk_070);
|
||||
func_80043220(object->pos, object->orientation, object->sizeScaling, object->model);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -3227,8 +3227,8 @@ void func_800528EC(s32 arg0) {
|
|||
gSPSetGeometryMode(gDisplayListHead++, G_SHADE | G_LIGHTING | G_SHADING_SMOOTH);
|
||||
func_800441E0(d_course_sherbet_land_ice, 0x00000020, 0x00000020);
|
||||
if (gPlayerCountSelection1 < 3) {
|
||||
for (var_s3 = 0; var_s3 < D_8018C3F0_SIZE; var_s3++) {
|
||||
objectIndex = D_8018C3F0[var_s3];
|
||||
for (var_s3 = 0; var_s3 < gObjectParticle2_SIZE; var_s3++) {
|
||||
objectIndex = gObjectParticle2[var_s3];
|
||||
if (objectIndex != -1) {
|
||||
object = &gObjectList[objectIndex];
|
||||
if (object->state > 0) {
|
||||
|
|
@ -3239,8 +3239,8 @@ void func_800528EC(s32 arg0) {
|
|||
}
|
||||
}
|
||||
} else {
|
||||
for (var_s3 = 0; var_s3 < D_8018C3F0_SIZE; var_s3++) {
|
||||
objectIndex = D_8018C3F0[var_s3];
|
||||
for (var_s3 = 0; var_s3 < gObjectParticle2_SIZE; var_s3++) {
|
||||
objectIndex = gObjectParticle2[var_s3];
|
||||
if (objectIndex != -1) {
|
||||
object = &gObjectList[objectIndex];
|
||||
if ((object->state > 0) && (arg0 == object->unk_084[7]) && (gMatrixHudCount <= MTX_HUD_POOL_SIZE_MAX)) {
|
||||
|
|
@ -3266,7 +3266,7 @@ void func_80052C60(s32 arg0) {
|
|||
gSPLight(gDisplayListHead++, &D_800E4620.l[0], LIGHT_1);
|
||||
gSPLight(gDisplayListHead++, &D_800E4620.a, LIGHT_2);
|
||||
for (playerId = 0; playerId < gPlayerCountSelection1; playerId++) {
|
||||
objectIndex = D_80183DB8[playerId];
|
||||
objectIndex = gIndexLakituList[playerId];
|
||||
if (objectIndex) {}
|
||||
if (func_80072320(objectIndex, 4) != 0) {
|
||||
func_8005285C(playerId);
|
||||
|
|
@ -3281,7 +3281,7 @@ void func_80052D70(s32 playerId) {
|
|||
Player *temp_v1;
|
||||
|
||||
temp_v1 = &gPlayerOne[playerId];
|
||||
test = D_80183DB8[playerId];
|
||||
test = gIndexLakituList[playerId];
|
||||
if (func_80072320(test, 8) != 0) {
|
||||
D_80183E40[0] = temp_v1->pos[0];
|
||||
D_80183E40[1] = temp_v1->unk_074 - 6.5;
|
||||
|
|
@ -3313,18 +3313,18 @@ void func_80052F20(s32 cameraId) {
|
|||
Camera *sp44;
|
||||
s32 someIndex;
|
||||
s32 objectIndex;
|
||||
Objects *temp_s1;
|
||||
Objects *object;
|
||||
|
||||
sp44 = &camera1[cameraId];
|
||||
func_80046E60(d_course_frappe_snowland_snow_tlut, d_course_frappe_snowland_snow, 0x00000020, 0x00000020);
|
||||
for (someIndex = 0; someIndex < D_8018C3F0_SIZE; someIndex++) {
|
||||
objectIndex = D_8018C3F0[someIndex];
|
||||
for (someIndex = 0; someIndex < gObjectParticle2_SIZE; someIndex++) {
|
||||
objectIndex = gObjectParticle2[someIndex];
|
||||
if (objectIndex != -1) {
|
||||
temp_s1 = &gObjectList[objectIndex];
|
||||
if (temp_s1->state > 0) {
|
||||
object = &gObjectList[objectIndex];
|
||||
if (object->state > 0) {
|
||||
func_8008A364(objectIndex, cameraId, 0x2AABU, 0x000001F4);
|
||||
if (is_obj_index_flag_unk_054_active(objectIndex, 0x00040000) != 0) {
|
||||
temp_s1->unk_0B2[1] = func_800418AC(temp_s1->pos[0], temp_s1->pos[2], sp44->pos);
|
||||
object->orientation[1] = func_800418AC(object->pos[0], object->pos[2], sp44->pos);
|
||||
rsp_set_matrix_gObjectList(objectIndex);
|
||||
gSPDisplayList(gDisplayListHead++, D_0D0069E0);
|
||||
}
|
||||
|
|
@ -3345,15 +3345,15 @@ void func_8005309C(s32 cameraId) {
|
|||
if (gObjectList[objectIndex].state >= 2) {
|
||||
func_8008A364(objectIndex, cameraId, 0x2AABU, 0x00000258);
|
||||
if (is_obj_index_flag_unk_054_active(objectIndex, 0x00040000) != 0) {
|
||||
D_80183E80[0] = (s16) gObjectList[objectIndex].unk_0B2[0];
|
||||
D_80183E80[0] = (s16) gObjectList[objectIndex].orientation[0];
|
||||
D_80183E80[1] = func_800418AC(gObjectList[objectIndex].pos[0], gObjectList[objectIndex].pos[2], camera->pos);
|
||||
D_80183E80[2] = (u16) gObjectList[objectIndex].unk_0B2[2];
|
||||
D_80183E80[2] = (u16) gObjectList[objectIndex].orientation[2];
|
||||
if (is_obj_index_flag_unk_054_active(objectIndex, 0x00000010) != 0) {
|
||||
func_800480B4(gObjectList[objectIndex].pos, (u16 *) D_80183E80, gObjectList[objectIndex].sizeScaling, (u8 *) gObjectList[objectIndex].activeTLUT, gObjectList[objectIndex].activeTexture, gObjectList[objectIndex].vertex, 0x00000040, 0x00000040, 0x00000040, 0x00000020);
|
||||
}
|
||||
objectIndex = indexObjectList2[var_s4];
|
||||
D_80183E80[0] = (s16) gObjectList[objectIndex].unk_0B2[0];
|
||||
D_80183E80[2] = (u16) gObjectList[objectIndex].unk_0B2[2];
|
||||
D_80183E80[0] = (s16) gObjectList[objectIndex].orientation[0];
|
||||
D_80183E80[2] = (u16) gObjectList[objectIndex].orientation[2];
|
||||
func_800480B4(gObjectList[objectIndex].pos, (u16 *) D_80183E80, gObjectList[objectIndex].sizeScaling, (u8 *) gObjectList[objectIndex].activeTLUT, gObjectList[objectIndex].activeTexture, gObjectList[objectIndex].vertex, 0x00000040, 0x00000040, 0x00000040, 0x00000020);
|
||||
}
|
||||
}
|
||||
|
|
@ -3373,17 +3373,17 @@ void func_800532A4(s32 cameraId) {
|
|||
s32 objectIndex;
|
||||
Objects *object;
|
||||
|
||||
objectIndex = D_80183DB8[cameraId];
|
||||
objectIndex = gIndexLakituList[cameraId];
|
||||
camera = &camera1[cameraId];
|
||||
if (is_obj_index_flag_unk_054_active(objectIndex, 0x00000010) != 0) {
|
||||
object = &gObjectList[objectIndex];
|
||||
object->unk_0B2[0] = 0;
|
||||
object->unk_0B2[1] = func_800418AC(object->pos[0], object->pos[2], camera->pos);
|
||||
object->unk_0B2[2] = 0x8000;
|
||||
object->orientation[0] = 0;
|
||||
object->orientation[1] = func_800418AC(object->pos[0], object->pos[2], camera->pos);
|
||||
object->orientation[2] = 0x8000;
|
||||
if (func_80072354(objectIndex, 2) != 0) {
|
||||
func_800480B4(object->pos, object->unk_0B2, object->sizeScaling, (u8 *) object->activeTLUT, object->activeTexture, object->vertex, (s32) object->textureWidth, (s32) object->textureHeight, (s32) object->textureWidth, (s32) object->textureHeight / 2);
|
||||
func_800480B4(object->pos, object->orientation, object->sizeScaling, (u8 *) object->activeTLUT, object->activeTexture, object->vertex, (s32) object->textureWidth, (s32) object->textureHeight, (s32) object->textureWidth, (s32) object->textureHeight / 2);
|
||||
} else {
|
||||
func_800485C4(object->pos, object->unk_0B2, object->sizeScaling, (s32) object->unk_0A0, (u8 *) object->activeTLUT, object->activeTexture, object->vertex, (s32) object->textureWidth, (s32) object->textureHeight, (s32) object->textureWidth, (s32) object->textureHeight / 2);
|
||||
func_800485C4(object->pos, object->orientation, object->sizeScaling, (s32) object->unk_0A0, (u8 *) object->activeTLUT, object->activeTexture, object->vertex, (s32) object->textureWidth, (s32) object->textureHeight, (s32) object->textureWidth, (s32) object->textureHeight / 2);
|
||||
}
|
||||
if (gScreenModeSelection == SCREEN_MODE_1P) {
|
||||
var_f0 = object->pos[0] - D_8018CF14->pos[0];
|
||||
|
|
@ -3439,13 +3439,13 @@ void func_800534E8(s32 objectIndex) {
|
|||
void func_800536C8(s32 objectIndex) {
|
||||
if ((gObjectList[objectIndex].state >= 2) && (func_80072354(objectIndex, 0x00000040) != 0)) {
|
||||
func_8004A7AC(objectIndex, 1.75f);
|
||||
rsp_set_matrix_transformation(gObjectList[objectIndex].pos, gObjectList[objectIndex].unk_0B2, gObjectList[objectIndex].sizeScaling);
|
||||
rsp_set_matrix_transformation(gObjectList[objectIndex].pos, gObjectList[objectIndex].orientation, gObjectList[objectIndex].sizeScaling);
|
||||
func_800534E8(objectIndex);
|
||||
gSPDisplayList(gDisplayListHead++, D_0D007828);
|
||||
gDPSetTextureLUT(gDisplayListHead++, G_TT_RGBA16);
|
||||
gDPLoadTLUT_pal256(gDisplayListHead++, d_course_bowsers_castle_thwomp_tlut);
|
||||
rsp_load_texture_mask(gObjectList[objectIndex].activeTexture, 0x00000010, 0x00000040, 4);
|
||||
gSPDisplayList(gDisplayListHead++, gObjectList[objectIndex].unk_070);
|
||||
gSPDisplayList(gDisplayListHead++, gObjectList[objectIndex].model);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -3455,7 +3455,7 @@ void func_80053870(s32 cameraId) {
|
|||
s32 stackPadding0;
|
||||
s16 minusone, plusone;
|
||||
Camera *camera;
|
||||
Objects *temp_v0;
|
||||
Objects *object;
|
||||
|
||||
camera = &camera1[cameraId];
|
||||
if (cameraId == 0) {
|
||||
|
|
@ -3486,12 +3486,12 @@ void func_80053870(s32 cameraId) {
|
|||
gSPClearGeometryMode(gDisplayListHead++, G_CULL_BOTH);
|
||||
gSPSetGeometryMode(gDisplayListHead++, G_SHADE | G_LIGHTING | G_SHADING_SMOOTH);
|
||||
func_80043D50(d_course_bowsers_castle_thwomp_side, 0x00000020, 0x00000020);
|
||||
for (var_s2 = 0; var_s2 < D_8018C630_SIZE; var_s2++) {
|
||||
temp_s1 = D_8018C630[var_s2];
|
||||
for (var_s2 = 0; var_s2 < gObjectParticle3_SIZE; var_s2++) {
|
||||
temp_s1 = gObjectParticle3[var_s2];
|
||||
if (temp_s1 != -1) {
|
||||
temp_v0 = &gObjectList[temp_s1];
|
||||
if ((temp_v0->state > 0) && (temp_v0->unk_0D5 == 3) && (gMatrixHudCount <= MTX_HUD_POOL_SIZE_MAX)) {
|
||||
rsp_set_matrix_transformation(temp_v0->pos, temp_v0->unk_0B2, temp_v0->sizeScaling);
|
||||
object = &gObjectList[temp_s1];
|
||||
if ((object->state > 0) && (object->unk_0D5 == 3) && (gMatrixHudCount <= MTX_HUD_POOL_SIZE_MAX)) {
|
||||
rsp_set_matrix_transformation(object->pos, object->orientation, object->sizeScaling);
|
||||
gSPVertex(gDisplayListHead++, D_0D005C00, 3, 0);
|
||||
gSPDisplayList(gDisplayListHead++, D_0D006930);
|
||||
}
|
||||
|
|
@ -3505,14 +3505,14 @@ void func_80053870(s32 cameraId) {
|
|||
func_8004B3C8(0);
|
||||
D_80183E80[0] = 0;
|
||||
D_80183E80[2] = 0x8000;
|
||||
for (var_s2 = 0; var_s2 < D_8018C3F0_SIZE; var_s2++) {
|
||||
temp_s1 = D_8018C3F0[var_s2];
|
||||
for (var_s2 = 0; var_s2 < gObjectParticle2_SIZE; var_s2++) {
|
||||
temp_s1 = gObjectParticle2[var_s2];
|
||||
if (temp_s1 != -1) {
|
||||
temp_v0 = &gObjectList[temp_s1];
|
||||
if ((temp_v0->state >= 2) && (temp_v0->unk_0D5 == 2) && (gMatrixHudCount <= MTX_HUD_POOL_SIZE_MAX)) {
|
||||
func_8004B138(0x000000FF, 0x000000FF, 0x000000FF, (s32) temp_v0->unk_0A0);
|
||||
D_80183E80[1] = func_800418AC(temp_v0->pos[0], temp_v0->pos[2], camera->pos);
|
||||
func_800431B0(temp_v0->pos, D_80183E80, temp_v0->sizeScaling, D_0D005AE0);
|
||||
object = &gObjectList[temp_s1];
|
||||
if ((object->state >= 2) && (object->unk_0D5 == 2) && (gMatrixHudCount <= MTX_HUD_POOL_SIZE_MAX)) {
|
||||
func_8004B138(0x000000FF, 0x000000FF, 0x000000FF, (s32) object->unk_0A0);
|
||||
D_80183E80[1] = func_800418AC(object->pos[0], object->pos[2], camera->pos);
|
||||
func_800431B0(object->pos, D_80183E80, object->sizeScaling, D_0D005AE0);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -3542,14 +3542,14 @@ void func_80053E6C(s32 arg0) {
|
|||
D_80183E80[1] = 0x8000;
|
||||
rsp_load_texture(D_8018D4BC, 0x40, 0x20);
|
||||
for (var_s1 = 0; var_s1 < D_80165738; var_s1++) {
|
||||
objectIndex = D_8018C630[var_s1];
|
||||
objectIndex = gObjectParticle3[var_s1];
|
||||
if ((objectIndex != -1) && (gObjectList[objectIndex].state >= 2)) {
|
||||
func_80053D74(objectIndex, arg0, 0);
|
||||
}
|
||||
}
|
||||
rsp_load_texture(D_8018D4C0, 0x40, 0x20);
|
||||
for (var_s1 = 0; var_s1 < D_80165738; var_s1++) {
|
||||
objectIndex = D_8018C630[var_s1];
|
||||
objectIndex = gObjectParticle3[var_s1];
|
||||
if ((objectIndex != -1) && (gObjectList[objectIndex].state >= 2)) {
|
||||
func_80053D74(objectIndex, arg0, 4);
|
||||
}
|
||||
|
|
@ -3591,7 +3591,7 @@ void func_800541BC(s32 cameraId) {
|
|||
|
||||
for (i = 0; i < 128; i++) {
|
||||
// Need to make a way to increase this array for each train.
|
||||
func_800540CC(D_8018C3F0[i], cameraId);
|
||||
func_800540CC(gObjectParticle2[i], cameraId);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -3599,14 +3599,14 @@ void func_800541BC(s32 cameraId) {
|
|||
|
||||
if ((gTrainList[0].someFlags != 0) && (func_80041980(&gTrainList[0].locomotive.position, camera, 0x4000U) != 0)) {
|
||||
|
||||
for (i = 0; i < D_8018C3F0_SIZE; i++) {
|
||||
func_800540CC(D_8018C3F0[i], cameraId);
|
||||
for (i = 0; i < gObjectParticle2_SIZE; i++) {
|
||||
func_800540CC(gObjectParticle2[i], cameraId);
|
||||
}
|
||||
|
||||
}
|
||||
if ((gTrainList[1].someFlags != 0) && (func_80041980(&gTrainList[1].locomotive.position, camera, 0x4000U) != 0)) {
|
||||
for (i = 0; i < D_8018C630_SIZE; i++) {
|
||||
func_800540CC(D_8018C630[i], cameraId);
|
||||
for (i = 0; i < gObjectParticle3_SIZE; i++) {
|
||||
func_800540CC(gObjectParticle3[i], cameraId);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
|
@ -3639,13 +3639,13 @@ void func_80054414(s32 cameraId) {
|
|||
D_80183E80[0] = 0;
|
||||
D_80183E80[2] = 0x8000;
|
||||
if ((gFerries[0].someFlags != 0) && (func_80041980(gFerries[0].position, camera, 0x4000U) != 0)) {
|
||||
for (i = 0; i < D_8018C3F0_SIZE; i++) {
|
||||
func_80054324(D_8018C3F0[i], cameraId);
|
||||
for (i = 0; i < gObjectParticle2_SIZE; i++) {
|
||||
func_80054324(gObjectParticle2[i], cameraId);
|
||||
}
|
||||
}
|
||||
if ((gFerries[1].someFlags != 0) && (func_80041980(gFerries[1].position, camera, 0x4000U) != 0)) {
|
||||
for (i = 0; i < D_8018C630_SIZE; i++) {
|
||||
func_80054324(D_8018C630[i], cameraId);
|
||||
for (i = 0; i < gObjectParticle3_SIZE; i++) {
|
||||
func_80054324(gObjectParticle3[i], cameraId);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -3676,8 +3676,8 @@ void func_80054664(s32 cameraId) {
|
|||
func_8004B414(0, 0, 0, 0x000000FF);
|
||||
D_80183E80[0] = 0;
|
||||
D_80183E80[2] = 0x8000;
|
||||
for (var_s0 = 0; var_s0 < D_8018C1B0_SIZE; var_s0++) {
|
||||
objectIndex = D_8018C1B0[var_s0];
|
||||
for (var_s0 = 0; var_s0 < gObjectParticle1_SIZE; var_s0++) {
|
||||
objectIndex = gObjectParticle1[var_s0];
|
||||
if ((objectIndex != -1) && (gObjectList[objectIndex].state >= 3)) {
|
||||
func_8005457C(objectIndex, cameraId);
|
||||
}
|
||||
|
|
@ -3720,8 +3720,8 @@ void func_80054938(s32 cameraId) {
|
|||
func_8004B72C(255, 255, 255, 255, 255, 255, 255);
|
||||
D_80183E80[0] = 0;
|
||||
D_80183E80[2] = 0x8000;
|
||||
for (var_s0 = 0; var_s0 < D_8018C870_SIZE; var_s0++) {
|
||||
objectIndex = D_8018C870[var_s0];
|
||||
for (var_s0 = 0; var_s0 < gObjectParticle4_SIZE; var_s0++) {
|
||||
objectIndex = gObjectParticle4[var_s0];
|
||||
if (objectIndex != -1) {
|
||||
object = &gObjectList[objectIndex];
|
||||
if (object->state >= 2) {
|
||||
|
|
@ -3741,7 +3741,7 @@ void func_80054938(s32 cameraId) {
|
|||
void func_80054AFC(s32 objectIndex, Vec3f arg1) {
|
||||
D_80183E80[0] = func_800418E8(gObjectList[objectIndex].pos[2], gObjectList[objectIndex].pos[1], arg1);
|
||||
D_80183E80[1] = func_800418AC(gObjectList[objectIndex].pos[0], gObjectList[objectIndex].pos[2], arg1);
|
||||
D_80183E80[2] = (u16) gObjectList[objectIndex].unk_0B2[2];
|
||||
D_80183E80[2] = (u16) gObjectList[objectIndex].orientation[2];
|
||||
func_8004B138((s32) gObjectList[objectIndex].unk_084[0], (s32) gObjectList[objectIndex].unk_084[1], (s32) gObjectList[objectIndex].unk_084[2], (s32) gObjectList[objectIndex].unk_0A0);
|
||||
rsp_set_matrix_transformation(gObjectList[objectIndex].pos, (u16 *) D_80183E80, gObjectList[objectIndex].sizeScaling);
|
||||
gSPVertex(gDisplayListHead++, D_0D005AE0, 4, 0);
|
||||
|
|
@ -3758,8 +3758,8 @@ void func_80054BE8(s32 cameraId) {
|
|||
func_800444B0(D_8018D488, 0x00000020, 0x00000020);
|
||||
func_8004B35C(0x000000FF, 0x000000FF, 0, 0x000000FF);
|
||||
D_80183E80[0] = 0;
|
||||
for (var_s0 = 0; var_s0 < D_8018C630_SIZE; var_s0++) {
|
||||
temp_a0 = D_8018C630[var_s0];
|
||||
for (var_s0 = 0; var_s0 < gObjectParticle3_SIZE; var_s0++) {
|
||||
temp_a0 = gObjectParticle3[var_s0];
|
||||
if ((temp_a0 != -1) && (gObjectList[temp_a0].state >= 2)) {
|
||||
func_80054AFC(temp_a0, camera->pos);
|
||||
}
|
||||
|
|
@ -3773,9 +3773,9 @@ void func_80054D00(s32 objectIndex, s32 cameraId) {
|
|||
if (gObjectList[objectIndex].state >= 3) {
|
||||
func_8008A364(objectIndex, cameraId, 0x2AABU, 0x0000012C);
|
||||
if (is_obj_index_flag_unk_054_active(objectIndex, 0x00040000) != 0) {
|
||||
D_80183E80[0] = (s16) gObjectList[objectIndex].unk_0B2[0];
|
||||
D_80183E80[0] = (s16) gObjectList[objectIndex].orientation[0];
|
||||
D_80183E80[1] = func_800418AC(gObjectList[objectIndex].pos[0], gObjectList[objectIndex].pos[2], camera->pos);
|
||||
D_80183E80[2] = (u16) gObjectList[objectIndex].unk_0B2[2];
|
||||
D_80183E80[2] = (u16) gObjectList[objectIndex].orientation[2];
|
||||
func_80048130(gObjectList[objectIndex].pos, (u16 *) D_80183E80, gObjectList[objectIndex].sizeScaling, (u8 *) gObjectList[objectIndex].activeTLUT, gObjectList[objectIndex].activeTexture, D_0D0062B0, 0x00000020, 0x00000040, 0x00000020, 0x00000040, 5);
|
||||
}
|
||||
}
|
||||
|
|
@ -3787,9 +3787,9 @@ void func_80054E10(s32 objectIndex) {
|
|||
D_80183E50[0] = gObjectList[objectIndex].pos[0];
|
||||
D_80183E50[1] = gObjectList[objectIndex].unk_044 + 0.8;
|
||||
D_80183E50[2] = gObjectList[objectIndex].pos[2];
|
||||
D_80183E70[0] = gObjectList[objectIndex].unk_038[0];
|
||||
D_80183E70[1] = gObjectList[objectIndex].unk_038[1];
|
||||
D_80183E70[2] = gObjectList[objectIndex].unk_038[2];
|
||||
D_80183E70[0] = gObjectList[objectIndex].velocity[0];
|
||||
D_80183E70[1] = gObjectList[objectIndex].velocity[1];
|
||||
D_80183E70[2] = gObjectList[objectIndex].velocity[2];
|
||||
func_8004A9B8(gObjectList[objectIndex].sizeScaling);
|
||||
}
|
||||
}
|
||||
|
|
@ -3800,7 +3800,7 @@ void func_80054EB8(UNUSED s32 unused) {
|
|||
s32 someIndex;
|
||||
|
||||
for (someIndex = 0; someIndex < NUM_MAX_MOLES; someIndex++) {
|
||||
func_80054E10(D_8018C1B0[someIndex]);
|
||||
func_80054E10(gObjectParticle1[someIndex]);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -3813,13 +3813,13 @@ void func_80054F04(s32 cameraId) {
|
|||
sp44 = &camera1[cameraId];
|
||||
gSPDisplayList(gDisplayListHead++, D_0D0079C8);
|
||||
func_80043D50(d_course_moo_moo_farm_mole_dirt, 0x00000010, 0x00000010);
|
||||
for (var_s2 = 0; var_s2 < D_8018C3F0_SIZE; var_s2++) {
|
||||
objectIndex = D_8018C3F0[var_s2];
|
||||
for (var_s2 = 0; var_s2 < gObjectParticle2_SIZE; var_s2++) {
|
||||
objectIndex = gObjectParticle2[var_s2];
|
||||
object = &gObjectList[objectIndex];
|
||||
if (object->state > 0) {
|
||||
func_8008A364(objectIndex, cameraId, 0x2AABU, 0x000000C8);
|
||||
if ((is_obj_index_flag_unk_054_active(objectIndex, 0x00040000) != 0) && (gMatrixHudCount <= MTX_HUD_POOL_SIZE_MAX)) {
|
||||
object->unk_0B2[1] = func_800418AC(object->pos[0], object->pos[2], sp44->pos);
|
||||
object->orientation[1] = func_800418AC(object->pos[0], object->pos[2], sp44->pos);
|
||||
rsp_set_matrix_gObjectList(objectIndex);
|
||||
gSPDisplayList(gDisplayListHead++, D_0D006980);
|
||||
}
|
||||
|
|
@ -3847,11 +3847,11 @@ void func_800550A4(s32 arg0) {
|
|||
void func_80055164(s32 objectIndex) {
|
||||
if (gObjectList[objectIndex].state >= 2) {
|
||||
gSPDisplayList(gDisplayListHead++, D_0D0077A0);
|
||||
rsp_set_matrix_transformation(gObjectList[objectIndex].pos, gObjectList[objectIndex].unk_0BE, gObjectList[objectIndex].sizeScaling);
|
||||
rsp_set_matrix_transformation(gObjectList[objectIndex].pos, gObjectList[objectIndex].direction_angle, gObjectList[objectIndex].sizeScaling);
|
||||
if (gIsGamePaused == 0) {
|
||||
gObjectList[objectIndex].unk_0A2 = func_80004DFC((animation_type_1 *) gObjectList[objectIndex].unk_070, (animation_type_2 **) gObjectList[objectIndex].vertex, 0, gObjectList[objectIndex].unk_0A2);
|
||||
gObjectList[objectIndex].unk_0A2 = func_80004DFC((animation_type_1 *) gObjectList[objectIndex].model, (animation_type_2 **) gObjectList[objectIndex].vertex, 0, gObjectList[objectIndex].unk_0A2);
|
||||
} else {
|
||||
func_80004DFC((animation_type_1 *) gObjectList[objectIndex].unk_070, (animation_type_2 **) gObjectList[objectIndex].vertex, 0, gObjectList[objectIndex].unk_0A2);
|
||||
func_80004DFC((animation_type_1 *) gObjectList[objectIndex].model, (animation_type_2 **) gObjectList[objectIndex].vertex, 0, gObjectList[objectIndex].unk_0A2);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -3871,12 +3871,12 @@ void func_80055228(s32 cameraId) {
|
|||
|
||||
void func_800552BC(s32 objectIndex) {
|
||||
if (gObjectList[objectIndex].state >= 2) {
|
||||
rsp_set_matrix_transformation(gObjectList[objectIndex].pos, gObjectList[objectIndex].unk_0BE, gObjectList[objectIndex].sizeScaling);
|
||||
rsp_set_matrix_transformation(gObjectList[objectIndex].pos, gObjectList[objectIndex].direction_angle, gObjectList[objectIndex].sizeScaling);
|
||||
gSPDisplayList(gDisplayListHead++, D_0D0077D0);
|
||||
if (gIsGamePaused == 0) {
|
||||
gObjectList[objectIndex].unk_0A2 = func_80004DFC((animation_type_1 *) gObjectList[objectIndex].unk_070, (animation_type_2 **) gObjectList[objectIndex].vertex, 0, gObjectList[objectIndex].unk_0A2);
|
||||
gObjectList[objectIndex].unk_0A2 = func_80004DFC((animation_type_1 *) gObjectList[objectIndex].model, (animation_type_2 **) gObjectList[objectIndex].vertex, 0, gObjectList[objectIndex].unk_0A2);
|
||||
} else {
|
||||
func_80004DFC((animation_type_1 *) gObjectList[objectIndex].unk_070, (animation_type_2 **) gObjectList[objectIndex].vertex, 0, gObjectList[objectIndex].unk_0A2);
|
||||
func_80004DFC((animation_type_1 *) gObjectList[objectIndex].model, (animation_type_2 **) gObjectList[objectIndex].vertex, 0, gObjectList[objectIndex].unk_0A2);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -3903,8 +3903,8 @@ void func_80055458(s32 objectIndex, s32 cameraId) {
|
|||
if (gObjectList[objectIndex].state >= 2) {
|
||||
camera = &camera1[cameraId];
|
||||
func_8004A6EC(objectIndex, 0.5f);
|
||||
gObjectList[objectIndex].unk_0B2[1] = func_800418AC(gObjectList[objectIndex].pos[0], gObjectList[objectIndex].pos[2], camera->pos);
|
||||
func_800480B4(gObjectList[objectIndex].pos, gObjectList[objectIndex].unk_0B2, gObjectList[objectIndex].sizeScaling, (u8 *) gObjectList[objectIndex].activeTLUT, gObjectList[objectIndex].activeTexture, D_0D0060B0, 0x00000040, 0x00000040, 0x00000040, 0x00000020);
|
||||
gObjectList[objectIndex].orientation[1] = func_800418AC(gObjectList[objectIndex].pos[0], gObjectList[objectIndex].pos[2], camera->pos);
|
||||
func_800480B4(gObjectList[objectIndex].pos, gObjectList[objectIndex].orientation, gObjectList[objectIndex].sizeScaling, (u8 *) gObjectList[objectIndex].activeTLUT, gObjectList[objectIndex].activeTexture, D_0D0060B0, 0x00000040, 0x00000040, 0x00000040, 0x00000020);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -3927,8 +3927,8 @@ void func_800555BC(s32 objectIndex, s32 cameraId) {
|
|||
if (gObjectList[objectIndex].state >= 2) {
|
||||
camera = &camera1[cameraId];
|
||||
func_8004A870(objectIndex, 0.7f);
|
||||
gObjectList[objectIndex].unk_0B2[1] = func_800418AC(gObjectList[objectIndex].pos[0], gObjectList[objectIndex].pos[2], camera->pos);
|
||||
func_800480B4(gObjectList[objectIndex].pos, gObjectList[objectIndex].unk_0B2, gObjectList[objectIndex].sizeScaling, (u8 *) gObjectList[objectIndex].activeTLUT, gObjectList[objectIndex].activeTexture, gObjectList[objectIndex].vertex, 64, 64, 64, 32);
|
||||
gObjectList[objectIndex].orientation[1] = func_800418AC(gObjectList[objectIndex].pos[0], gObjectList[objectIndex].pos[2], camera->pos);
|
||||
func_800480B4(gObjectList[objectIndex].pos, gObjectList[objectIndex].orientation, gObjectList[objectIndex].sizeScaling, (u8 *) gObjectList[objectIndex].activeTLUT, gObjectList[objectIndex].activeTexture, gObjectList[objectIndex].vertex, 64, 64, 64, 32);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -3963,27 +3963,27 @@ UNUSED void func_800557AC() {
|
|||
|
||||
void func_800557B4(s32 objectIndex, u32 arg1, u32 arg2) {
|
||||
Vec3f sp34;
|
||||
Objects *temp_s0;
|
||||
Objects *object;
|
||||
|
||||
temp_s0 = &gObjectList[objectIndex];
|
||||
if (temp_s0->state >= 2) {
|
||||
object = &gObjectList[objectIndex];
|
||||
if (object->state >= 2) {
|
||||
if (is_obj_index_flag_unk_054_active(objectIndex, 0x00000020) != 0) {
|
||||
if (func_80072320(objectIndex, 4) != 0) {
|
||||
if (arg2 >= arg1) {
|
||||
sp34[0] = temp_s0->pos[0];
|
||||
sp34[1] = temp_s0->pos[1] - 1.0;
|
||||
sp34[2] = temp_s0->pos[2];
|
||||
rsp_set_matrix_transformation_inverted_x_y_orientation(sp34, temp_s0->unk_0B2, temp_s0->sizeScaling);
|
||||
sp34[0] = object->pos[0];
|
||||
sp34[1] = object->pos[1] - 1.0;
|
||||
sp34[2] = object->pos[2];
|
||||
rsp_set_matrix_transformation_inverted_x_y_orientation(sp34, object->orientation, object->sizeScaling);
|
||||
gSPDisplayList(gDisplayListHead++, D_0D0077D0);
|
||||
func_80004DFC((animation_type_1 *) temp_s0->unk_070, (animation_type_2 **) temp_s0->vertex, (s16) temp_s0->unk_0D8, (s16) temp_s0->itemDisplay);
|
||||
func_80004DFC((animation_type_1 *) object->model, (animation_type_2 **) object->vertex, (s16) object->unk_0D8, (s16) object->itemDisplay);
|
||||
}
|
||||
} else if (arg1 < 0x15F91U) {
|
||||
func_8004A7AC(objectIndex, 1.5f);
|
||||
}
|
||||
}
|
||||
rsp_set_matrix_transformation(temp_s0->pos, temp_s0->unk_0B2, temp_s0->sizeScaling);
|
||||
rsp_set_matrix_transformation(object->pos, object->orientation, object->sizeScaling);
|
||||
gSPDisplayList(gDisplayListHead++, D_0D0077D0);
|
||||
func_80004DFC((animation_type_1 *) temp_s0->unk_070, (animation_type_2 **) temp_s0->vertex, (s16) temp_s0->unk_0D8, (s16) temp_s0->itemDisplay);
|
||||
func_80004DFC((animation_type_1 *) object->model, (animation_type_2 **) object->vertex, (s16) object->unk_0D8, (s16) object->itemDisplay);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -4045,9 +4045,9 @@ void func_80055AB8(s32 objectIndex, s32 cameraId) {
|
|||
D_80183E80[2] = 0x8000;
|
||||
func_800468E0(D_80183E40, D_80183E80, 0.54f, d_course_rainbow_road_sphere, D_0D0062B0, 0x00000020, 0x00000040, 0x00000020, 0x00000040, 5);
|
||||
} else {
|
||||
rsp_set_matrix_transformation(gObjectList[objectIndex].pos, gObjectList[objectIndex].unk_0BE, gObjectList[objectIndex].sizeScaling);
|
||||
rsp_set_matrix_transformation(gObjectList[objectIndex].pos, gObjectList[objectIndex].direction_angle, gObjectList[objectIndex].sizeScaling);
|
||||
gSPDisplayList(gDisplayListHead++, D_0D0077D0);
|
||||
func_80004DFC((animation_type_1 *) gObjectList[objectIndex].unk_070, (animation_type_2 **) gObjectList[objectIndex].vertex, 0, (s16) gObjectList[objectIndex].itemDisplay);
|
||||
func_80004DFC((animation_type_1 *) gObjectList[objectIndex].model, (animation_type_2 **) gObjectList[objectIndex].vertex, 0, (s16) gObjectList[objectIndex].itemDisplay);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -4076,16 +4076,16 @@ void func_80055CCC(s32 objectIndex, s32 cameraId) {
|
|||
test = gObjectList[objectIndex].pos[1] - gObjectList[objectIndex].unk_044;
|
||||
func_8004A6EC(objectIndex, (20.0 / test) + 0.5);
|
||||
if (is_obj_index_flag_unk_054_inactive(objectIndex, 0x00100000) != 0) {
|
||||
func_80043328(gObjectList[objectIndex].pos, (u16 *) gObjectList[objectIndex].unk_0BE, gObjectList[objectIndex].sizeScaling, d_course_luigi_raceway_dl_F960);
|
||||
func_80043328(gObjectList[objectIndex].pos, (u16 *) gObjectList[objectIndex].direction_angle, gObjectList[objectIndex].sizeScaling, d_course_luigi_raceway_dl_F960);
|
||||
gSPDisplayList(gDisplayListHead++, d_course_luigi_raceway_dl_F650);
|
||||
} else {
|
||||
D_80183E80[0] = (s16) gObjectList[objectIndex].unk_0BE[0];
|
||||
D_80183E80[0] = (s16) gObjectList[objectIndex].direction_angle[0];
|
||||
D_80183E80[1] = (s16) (func_800418AC(gObjectList[objectIndex].pos[0], gObjectList[objectIndex].pos[2], camera->pos) + 0x8000);
|
||||
D_80183E80[2] = (u16) gObjectList[objectIndex].unk_0BE[2];
|
||||
D_80183E80[2] = (u16) gObjectList[objectIndex].direction_angle[2];
|
||||
func_80043328(gObjectList[objectIndex].pos, D_80183E80, gObjectList[objectIndex].sizeScaling, d_course_luigi_raceway_dl_FBE0);
|
||||
gSPDisplayList(gDisplayListHead++, d_course_luigi_raceway_dl_FA20);
|
||||
if (gPlayerCountSelection1 == 1) {
|
||||
gObjectList[objectIndex].unk_0BE[1] = 0;
|
||||
gObjectList[objectIndex].direction_angle[1] = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -4110,7 +4110,7 @@ void func_80055EF4(s32 objectIndex, UNUSED s32 arg1) {
|
|||
|
||||
object = &gObjectList[objectIndex];
|
||||
if (object->state >= 2) {
|
||||
func_80043220(object->pos, object->unk_0BE, object->sizeScaling, object->unk_070);
|
||||
func_80043220(object->pos, object->direction_angle, object->sizeScaling, object->model);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -4131,11 +4131,11 @@ void func_80055FA0(s32 objectIndex, UNUSED s32 arg1) {
|
|||
if (object->state >= 2) {
|
||||
gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->mtxPersp[0]), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_PROJECTION);
|
||||
gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->mtxLookAt[0]), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
|
||||
mtxf_set_matrix_transformation(someMatrix1,object->pos, object->unk_0BE, object->sizeScaling);
|
||||
mtxf_set_matrix_transformation(someMatrix1,object->pos, object->direction_angle, object->sizeScaling);
|
||||
convert_to_fixed_point_matrix(&gGfxPool->mtxHud[gMatrixHudCount], someMatrix1);
|
||||
gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->mtxHud[gMatrixHudCount++]), G_MTX_NOPUSH | G_MTX_MUL | G_MTX_MODELVIEW);
|
||||
gSPDisplayList(gDisplayListHead++, D_0D0077A0);
|
||||
gSPDisplayList(gDisplayListHead++, object->unk_070);
|
||||
gSPDisplayList(gDisplayListHead++, object->model);
|
||||
gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->mtxLookAt[0]), G_MTX_NOPUSH | G_MTX_MUL | G_MTX_PROJECTION);
|
||||
mtxf_identity(someMatrix2);
|
||||
render_set_position(someMatrix2, 0);
|
||||
|
|
@ -4158,8 +4158,8 @@ void func_80056188(s32 cameraId) {
|
|||
if (D_8018E838[cameraId] == 0) {
|
||||
object = &gObjectList[objectIndex];
|
||||
if ((object->state >= 2) && (is_obj_index_flag_unk_054_inactive(objectIndex, 0x00080000) != 0) && (func_8008A140(objectIndex, camera, 0x2AABU) != 0)) {
|
||||
object->unk_0B2[1] = angle_between_object_camera(objectIndex, camera);
|
||||
func_800480B4(object->pos, object->unk_0B2, object->sizeScaling, (u8 *) object->activeTLUT, object->activeTexture, D_0D0060B0, 0x00000040, 0x00000040, 0x00000040, 0x00000020);
|
||||
object->orientation[1] = angle_between_object_camera(objectIndex, camera);
|
||||
func_800480B4(object->pos, object->orientation, object->sizeScaling, (u8 *) object->activeTLUT, object->activeTexture, D_0D0060B0, 0x00000040, 0x00000040, 0x00000040, 0x00000020);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -404,32 +404,32 @@ s32 func_80041770(f32 arg0, f32 arg1, f32 arg2, f32 arg3) {
|
|||
return atan2s(arg1 - arg0, arg3 - arg2);
|
||||
}
|
||||
|
||||
u16 func_800417B4(u16 arg0, u16 arg1) {
|
||||
u16 ret;
|
||||
u16 func_800417B4(u16 angle1, u16 angle2) {
|
||||
u16 out_angle;
|
||||
|
||||
if ((arg0 >> 8) != (arg1 >> 8)) {
|
||||
ret = arg1 - arg0;
|
||||
if (ret < 0x400) {
|
||||
ret = arg0 + 0x80;
|
||||
} else if (ret < 0x800) {
|
||||
ret = arg0 + 0x200;
|
||||
} else if (ret < 0x4000) {
|
||||
ret = arg0 + 0x400;
|
||||
} else if (ret < 0x8000) {
|
||||
ret = arg0 + 0x700;
|
||||
} else if (ret < 0xC000) {
|
||||
ret = arg0 - 0x700;
|
||||
}else if (ret < 0xF800) {
|
||||
ret = arg0 - 0x400;
|
||||
} else if (ret < 0xFC00) {
|
||||
ret = arg0 - 0x200;
|
||||
if ((angle1 >> 8) != (angle2 >> 8)) {
|
||||
out_angle = angle2 - angle1;
|
||||
if (out_angle < 0x400) {
|
||||
out_angle = angle1 + 0x80;
|
||||
} else if (out_angle < 0x800) {
|
||||
out_angle = angle1 + 0x200;
|
||||
} else if (out_angle < 0x4000) {
|
||||
out_angle = angle1 + 0x400;
|
||||
} else if (out_angle < 0x8000) {
|
||||
out_angle = angle1 + 0x700;
|
||||
} else if (out_angle < 0xC000) {
|
||||
out_angle = angle1 - 0x700;
|
||||
}else if (out_angle < 0xF800) {
|
||||
out_angle = angle1 - 0x400;
|
||||
} else if (out_angle < 0xFC00) {
|
||||
out_angle = angle1 - 0x200;
|
||||
} else {
|
||||
ret = arg0 - 0x80;
|
||||
out_angle = angle1 - 0x80;
|
||||
}
|
||||
} else {
|
||||
ret = arg1;
|
||||
out_angle = angle2;
|
||||
}
|
||||
return ret;
|
||||
return out_angle;
|
||||
}
|
||||
|
||||
s32 func_800418AC(f32 arg0, f32 arg1, Vec3f arg2) {
|
||||
|
|
@ -463,13 +463,13 @@ s32 func_80041980(Vec3f arg0, Camera *arg1, u16 arg2) {
|
|||
}
|
||||
|
||||
void func_800419F8(void) {
|
||||
Vec3f sp18;
|
||||
Vec3f pos;
|
||||
Vec3f vec;
|
||||
|
||||
sp18[0] = 0.0f;
|
||||
sp18[1] = 0.0f;
|
||||
sp18[2] = 120.0f;
|
||||
vec3f_rotate_x_y(vec, sp18, D_80165834);
|
||||
pos[0] = 0.0f;
|
||||
pos[1] = 0.0f;
|
||||
pos[2] = 120.0f;
|
||||
vec3f_rotate_x_y(vec, pos, D_80165834);
|
||||
D_80165840[0] = vec[0];
|
||||
D_80165840[1] = vec[1];
|
||||
D_80165840[2] = vec[2];
|
||||
|
|
@ -808,12 +808,12 @@ void mtxf_set_matrix_gObjectList(s32 objectIndex, Mat4 transformMatrix) {
|
|||
f32 cosZ;
|
||||
f32 cosX;
|
||||
|
||||
sinX = sins(temp_s0->unk_0B2[0]);
|
||||
cosX = coss(temp_s0->unk_0B2[0]);
|
||||
sinY = sins(temp_s0->unk_0B2[1]);
|
||||
cosY = coss(temp_s0->unk_0B2[1]);
|
||||
sinZ = sins(temp_s0->unk_0B2[2]);
|
||||
cosZ = coss(temp_s0->unk_0B2[2]);
|
||||
sinX = sins(temp_s0->orientation[0]);
|
||||
cosX = coss(temp_s0->orientation[0]);
|
||||
sinY = sins(temp_s0->orientation[1]);
|
||||
cosY = coss(temp_s0->orientation[1]);
|
||||
sinZ = sins(temp_s0->orientation[2]);
|
||||
cosZ = coss(temp_s0->orientation[2]);
|
||||
|
||||
transformMatrix[0][0] = temp_s0->sizeScaling * ((cosY * cosZ) + (sinX * sinY * sinZ));
|
||||
transformMatrix[1][0] = temp_s0->sizeScaling * ((-cosY * sinZ) + sinX * sinY * cosZ);
|
||||
|
|
|
|||
|
|
@ -1104,7 +1104,7 @@ Variable Name | Memory Address
|
|||
[func_8005A380](@ref func_8005A380) | 0x8005A380
|
||||
[func_8005A3C0](@ref func_8005A3C0) | 0x8005A3C0
|
||||
[func_8005A71C](@ref func_8005A71C) | 0x8005A71C
|
||||
[func_8005A74C](@ref func_8005A74C) | 0x8005A74C
|
||||
[update_obj](@ref update_obj) | 0x8005A74C
|
||||
[func_8005A99C](@ref func_8005A99C) | 0x8005A99C
|
||||
[func_8005AA34](@ref func_8005AA34) | 0x8005AA34
|
||||
[func_8005AA4C](@ref func_8005AA4C) | 0x8005AA4C
|
||||
|
|
@ -1280,7 +1280,7 @@ Variable Name | Memory Address
|
|||
[find_unused_obj_index](@ref find_unused_obj_index) | 0x80071F00
|
||||
[delete_object](@ref delete_object) | 0x80071F6C
|
||||
[func_80071FBC](@ref func_80071FBC) | 0x80071FBC
|
||||
[func_80072044](@ref func_80072044) | 0x80072044
|
||||
[add_unused_obj_index](@ref add_unused_obj_index) | 0x80072044
|
||||
[delete_object_wrapper](@ref delete_object_wrapper) | 0x80072100
|
||||
[func_80072120](@ref func_80072120) | 0x80072120
|
||||
[func_80072180](@ref func_80072180) | 0x80072180
|
||||
|
|
@ -1330,7 +1330,7 @@ Variable Name | Memory Address
|
|||
[init_texture_object](@ref init_texture_object) | 0x80073444
|
||||
[func_8007348C](@ref func_8007348C) | 0x80073488
|
||||
[func_800734D4](@ref func_800734D4) | 0x800734D4
|
||||
[func_800734DC](@ref func_800734DC) | 0x800734DC
|
||||
[update_neon_texture](@ref update_neon_texture) | 0x800734DC
|
||||
[func_80073514](@ref func_80073514) | 0x80073514
|
||||
[func_80073568](@ref func_80073568) | 0x80073568
|
||||
[func_80073570](@ref func_80073570) | 0x80073570
|
||||
|
|
@ -1419,7 +1419,7 @@ Variable Name | Memory Address
|
|||
[func_800769D8](@ref func_800769D8) | 0x800769D8
|
||||
[func_80076AEC](@ref func_80076AEC) | 0x80076AEC
|
||||
[func_80076B7C](@ref func_80076B7C) | 0x80076B7C
|
||||
[func_80076B84](@ref func_80076B84) | 0x80076B84
|
||||
[update_particle_bowser_castle](@ref update_particle_bowser_castle) | 0x80076B84
|
||||
[func_80076C9C](@ref func_80076C9C) | 0x80076C9C
|
||||
[func_80076D70](@ref func_80076D70) | 0x80076D70
|
||||
[func_80076DC4](@ref func_80076DC4) | 0x80076DC4
|
||||
|
|
@ -1434,7 +1434,7 @@ Variable Name | Memory Address
|
|||
[func_80077450](@ref func_80077450) | 0x80077450
|
||||
[func_80077584](@ref func_80077584) | 0x80077584
|
||||
[func_80077640](@ref func_80077640) | 0x80077640
|
||||
[func_80077700](@ref func_80077700) | 0x80077700
|
||||
[init_leaf_particle](@ref init_leaf_particle) | 0x80077700
|
||||
[func_80077A54](@ref func_80077A54) | 0x80077A54
|
||||
[func_80077AB0](@ref func_80077AB0) | 0x80077AB0
|
||||
[func_80077B14](@ref func_80077B14) | 0x80077B14
|
||||
|
|
@ -1464,29 +1464,29 @@ Variable Name | Memory Address
|
|||
[func_800790E4](@ref func_800790E4) | 0x800790E4
|
||||
[func_80079114](@ref func_80079114) | 0x80079114
|
||||
[func_800791F0](@ref func_800791F0) | 0x800791F0
|
||||
[func_800792D8](@ref func_800792D8) | 0x800792D8
|
||||
[func_80079380](@ref func_80079380) | 0x80079380
|
||||
[func_8007963C](@ref func_8007963C) | 0x8007963C
|
||||
[func_80079700](@ref func_80079700) | 0x80079700
|
||||
[init_obj_laikitu_red_flag_countdown](@ref init_obj_laikitu_red_flag_countdown) | 0x800792D8
|
||||
[update_obj_laikitu_countdown](@ref update_obj_laikitu_countdown) | 0x80079380
|
||||
[init_obj_laikitu_red_flag](@ref init_obj_laikitu_red_flag) | 0x8007963C
|
||||
[update_obj_laikitu_red_flag](@ref update_obj_laikitu_red_flag) | 0x80079700
|
||||
[func_800797AC](@ref func_800797AC) | 0x800797AC
|
||||
[func_80079860](@ref func_80079860) | 0x80079860
|
||||
[func_8007993C](@ref func_8007993C) | 0x8007993C
|
||||
[func_800799A8](@ref func_800799A8) | 0x800799A8
|
||||
[init_obj_laikitu_red_flag_fishing](@ref init_obj_laikitu_red_flag_fishing) | 0x800799A8
|
||||
[func_80079A5C](@ref func_80079A5C) | 0x80079A5C
|
||||
[func_80079B40](@ref func_80079B40) | 0x80079B40
|
||||
[func_80079D44](@ref func_80079D44) | 0x80079D44
|
||||
[update_obj_laikitu_fishing](@ref update_obj_laikitu_fishing) | 0x80079B40
|
||||
[update_obj_laikitu_fishing2](@ref update_obj_laikitu_fishing2) | 0x80079D44
|
||||
[func_8007A060](@ref func_8007A060) | 0x8007A060
|
||||
[func_8007A124](@ref func_8007A124) | 0x8007A124
|
||||
[update_obj_laikitu_second_lap](@ref update_obj_laikitu_second_lap) | 0x8007A124
|
||||
[func_8007A228](@ref func_8007A228) | 0x8007A228
|
||||
[func_8007A2EC](@ref func_8007A2EC) | 0x8007A2EC
|
||||
[update_obj_laikitu_final_lap](@ref update_obj_laikitu_final_lap) | 0x8007A2EC
|
||||
[func_8007A3F0](@ref func_8007A3F0) | 0x8007A3F0
|
||||
[func_8007A4D4](@ref func_8007A4D4) | 0x8007A4D4
|
||||
[update_obj_laikitu_reverse](@ref update_obj_laikitu_reverse) | 0x8007A4D4
|
||||
[func_8007A66C](@ref func_8007A66C) | 0x8007A66C
|
||||
[func_8007A778](@ref func_8007A778) | 0x8007A778
|
||||
[func_8007A884](@ref func_8007A884) | 0x8007A884
|
||||
[func_8007A88C](@ref func_8007A88C) | 0x8007A88C
|
||||
[func_8007A910](@ref func_8007A910) | 0x8007A910
|
||||
[func_8007A948](@ref func_8007A948) | 0x8007A948
|
||||
[update_obj_laikitu](@ref update_obj_laikitu) | 0x8007A948
|
||||
[func_8007AA44](@ref func_8007AA44) | 0x8007AA44
|
||||
[func_8007ABFC](@ref func_8007ABFC) | 0x8007ABFC
|
||||
[consume_item](@ref consume_item) | 0x8007AC9C
|
||||
|
|
@ -1501,7 +1501,7 @@ Variable Name | Memory Address
|
|||
[func_8007BBBC](@ref func_8007BBBC) | 0x8007BBBC
|
||||
[func_8007BD04](@ref func_8007BD04) | 0x8007BD04
|
||||
[func_8007BDA8](@ref func_8007BDA8) | 0x8007BDA8
|
||||
[func_8007BDE0](@ref func_8007BDE0) | 0x8007BDE0
|
||||
[init_var_cheep_cheep](@ref init_var_cheep_cheep) | 0x8007BDE0
|
||||
[func_8007BEC8](@ref func_8007BEC8) | 0x8007BEC8
|
||||
[func_8007BFB0](@ref func_8007BFB0) | 0x8007BFB0
|
||||
[func_8007C280](@ref func_8007C280) | 0x8007C280
|
||||
|
|
@ -1639,7 +1639,7 @@ Variable Name | Memory Address
|
|||
[func_800859C8](@ref func_800859C8) | 0x800859C8
|
||||
[func_80085AA8](@ref func_80085AA8) | 0x80085AA8
|
||||
[func_80085BB4](@ref func_80085BB4) | 0x80085BB4
|
||||
[func_80085C20](@ref func_80085C20) | 0x80085C20
|
||||
[init_obj_neon_mushroom](@ref init_obj_neon_mushroom) | 0x80085C20
|
||||
[func_80085CA0](@ref func_80085CA0) | 0x80085CA0
|
||||
[func_80085DB8](@ref func_80085DB8) | 0x80085DB8
|
||||
[func_80085E38](@ref func_80085E38) | 0x80085E38
|
||||
|
|
@ -1647,8 +1647,8 @@ Variable Name | Memory Address
|
|||
[func_80085F74](@ref func_80085F74) | 0x80085F74
|
||||
[func_80086074](@ref func_80086074) | 0x80086074
|
||||
[func_80086110](@ref func_80086110) | 0x80086110
|
||||
[func_80086158](@ref func_80086158) | 0x80086158
|
||||
[func_800861E0](@ref func_800861E0) | 0x800861E0
|
||||
[update_obj_neon](@ref update_obj_neon) | 0x80086158
|
||||
[update_neon](@ref update_neon) | 0x800861E0
|
||||
[func_8008629C](@ref func_8008629C) | 0x8008629C
|
||||
[func_80086424](@ref func_80086424) | 0x80086424
|
||||
[func_80086528](@ref func_80086528) | 0x80086528
|
||||
|
|
@ -1672,8 +1672,8 @@ Variable Name | Memory Address
|
|||
[func_80087258](@ref func_80087258) | 0x80087258
|
||||
[func_80087294](@ref func_80087294) | 0x80087294
|
||||
[angle_between_object_camera](@ref angle_between_object_camera) | 0x800872D8
|
||||
[func_80087324](@ref func_80087324) | 0x80087324
|
||||
[func_80087368](@ref func_80087368) | 0x80087368
|
||||
[get_x_direction_angle](@ref get_x_direction_angle) | 0x80087324
|
||||
[get_y_direction_angle](@ref get_y_direction_angle) | 0x80087368
|
||||
[func_800873A4](@ref func_800873A4) | 0x800873A4
|
||||
[func_800873F4](@ref func_800873F4) | 0x800873F4
|
||||
[func_80087444](@ref func_80087444) | 0x80087444
|
||||
|
|
@ -1797,12 +1797,12 @@ Variable Name | Memory Address
|
|||
[func_8008B6A4](@ref func_8008B6A4) | 0x8008B6A4
|
||||
[func_8008B724](@ref func_8008B724) | 0x8008B724
|
||||
[func_8008B78C](@ref func_8008B78C) | 0x8008B78C
|
||||
[func_8008B7D4](@ref func_8008B7D4) | 0x8008B7D4
|
||||
[set_obj_origin_pos](@ref set_obj_origin_pos) | 0x8008B7D4
|
||||
[func_8008B80C](@ref func_8008B80C) | 0x8008B80C
|
||||
[func_8008B844](@ref func_8008B844) | 0x8008B844
|
||||
[func_8008B888](@ref func_8008B888) | 0x8008B888
|
||||
[func_8008B8BC](@ref func_8008B8BC) | 0x8008B8BC
|
||||
[func_8008B8F0](@ref func_8008B8F0) | 0x8008B8F0
|
||||
[set_obj_direction_angle](@ref set_obj_direction_angle) | 0x8008B888
|
||||
[set_obj_orientation](@ref set_obj_orientation) | 0x8008B8BC
|
||||
[set_obj_velocity](@ref set_obj_velocity) | 0x8008B8F0
|
||||
[func_8008B928](@ref func_8008B928) | 0x8008B928
|
||||
[func_8008BA40](@ref func_8008BA40) | 0x8008BA40
|
||||
[func_8008BAB4](@ref func_8008BAB4) | 0x8008BAB4
|
||||
|
|
@ -4586,19 +4586,19 @@ Variable Name | Memory Address
|
|||
[D_80183D60](@ref D_80183D60) | 0x80183D60
|
||||
[D_80183DA0](@ref D_80183DA0) | 0x80183DA0
|
||||
[D_80183DA8](@ref D_80183DA8) | 0x80183DA8
|
||||
[D_80183DB8](@ref D_80183DB8) | 0x80183DB8
|
||||
[gIndexLakituList](@ref gIndexLakituList) | 0x80183DB8
|
||||
[D_80183DC8](@ref D_80183DC8) | 0x80183DC8
|
||||
[D_80183DD8](@ref D_80183DD8) | 0x80183DD8
|
||||
[D_80183DF8](@ref D_80183DF8) | 0x80183DF8
|
||||
[D_80183E38](@ref D_80183E38) | 0x80183E38
|
||||
[gNextFreeObjectParticle1](@ref gNextFreeObjectParticle1) | 0x80183E38
|
||||
[D_80183E40](@ref D_80183E40) | 0x80183E40
|
||||
[D_80183E4C](@ref D_80183E4C) | 0x80183E4C
|
||||
[gNextFreeObjectParticle2](@ref gNextFreeObjectParticle2) | 0x80183E4C
|
||||
[D_80183E50](@ref D_80183E50) | 0x80183E50
|
||||
[D_80183E5C](@ref D_80183E5C) | 0x80183E5C
|
||||
[gNextFreeObjectParticle3](@ref gNextFreeObjectParticle3) | 0x80183E5C
|
||||
[D_80183E60](@ref D_80183E60) | 0x80183E60
|
||||
[D_80183E6C](@ref D_80183E6C) | 0x80183E6C
|
||||
[gNextFreeObjectParticle4](@ref gNextFreeObjectParticle4) | 0x80183E6C
|
||||
[D_80183E70](@ref D_80183E70) | 0x80183E70
|
||||
[D_80183E7C](@ref D_80183E7C) | 0x80183E7C
|
||||
[gNextFreeLeafParticle](@ref gNextFreeLeafParticle) | 0x80183E7C
|
||||
[D_80183E80](@ref D_80183E80) | 0x80183E80
|
||||
[gItemWindowObjectByPlayerId](@ref gItemWindowObjectByPlayerId) | 0x80183E88
|
||||
[D_80183E98](@ref D_80183E98) | 0x80183E98
|
||||
|
|
@ -4610,14 +4610,14 @@ Variable Name | Memory Address
|
|||
[D_8018C028](@ref D_8018C028) | 0x8018C028
|
||||
[indexObjectList4](@ref indexObjectList4) | 0x8018C030
|
||||
[D_8018C0B0](@ref D_8018C0B0) | 0x8018C0B0
|
||||
[D_8018C1B0](@ref D_8018C1B0) | 0x8018C1B0
|
||||
[gObjectParticle1](@ref gObjectParticle1) | 0x8018C1B0
|
||||
[D_8018C3B0](@ref D_8018C3B0) | 0x8018C3B0
|
||||
[D_8018C3F0](@ref D_8018C3F0) | 0x8018C3F0
|
||||
[gObjectParticle2](@ref gObjectParticle2) | 0x8018C3F0
|
||||
[D_8018C5F0](@ref D_8018C5F0) | 0x8018C5F0
|
||||
[D_8018C630](@ref D_8018C630) | 0x8018C630
|
||||
[gObjectParticle3](@ref gObjectParticle3) | 0x8018C630
|
||||
[D_8018C830](@ref D_8018C830) | 0x8018C830
|
||||
[D_8018C870](@ref D_8018C870) | 0x8018C870
|
||||
[D_8018C970](@ref D_8018C970) | 0x8018C970
|
||||
[gObjectParticle4](@ref gObjectParticle4) | 0x8018C870
|
||||
[gLeafParticle](@ref gLeafParticle) | 0x8018C970
|
||||
[playerHUD](@ref playerHUD) | 0x8018CA70
|
||||
[D_8018CC80](@ref D_8018CC80) | 0x8018CC80
|
||||
[D_8018CE10](@ref D_8018CE10) | 0x8018CE10
|
||||
|
|
|
|||
Loading…
Reference in New Issue