document player and cpu (#534)

* document player and cpu

* cpu_descisions_branch_item to cpu_decisions_branch_item
This commit is contained in:
coco875 2024-01-18 00:19:54 +01:00 committed by GitHub
parent bd15658807
commit a86b3b0a2e
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
22 changed files with 250 additions and 248 deletions

View File

@ -21,7 +21,7 @@ glabel jpt_800ED4A0
.section .text
glabel func_8001AC10
glabel cpu_use_item_strategy
/* 01B810 8001AC10 000478C0 */ sll $t7, $a0, 3
/* 01B814 8001AC14 01E47823 */ subu $t7, $t7, $a0
/* 01B818 8001AC18 000F7900 */ sll $t7, $t7, 4
@ -100,7 +100,7 @@ glabel L8001ACAC
/* 01B938 8001AD38 85A50002 */ lh $a1, 2($t5)
/* 01B93C 8001AD3C 8FA40030 */ lw $a0, 0x30($sp)
/* 01B940 8001AD40 02002825 */ move $a1, $s0
/* 01B944 8001AD44 0C006ADD */ jal func_8001AB74
/* 01B944 8001AD44 0C006ADD */ jal cpu_decisions_branch_item
/* 01B948 8001AD48 00403025 */ move $a2, $v0
/* 01B94C 8001AD4C 10000003 */ b .L8001AD5C
/* 01B950 8001AD50 00000000 */ nop

View File

@ -257,7 +257,7 @@ glabel func_80009B60
/* 00AABC 80009EBC 318D0001 */ andi $t5, $t4, 1
/* 00AAC0 80009EC0 11ED0003 */ beq $t7, $t5, .L80009ED0
/* 00AAC4 80009EC4 AFAD0030 */ sw $t5, 0x30($sp)
/* 00AAC8 80009EC8 0C006B04 */ jal func_8001AC10
/* 00AAC8 80009EC8 0C006B04 */ jal cpu_use_item_strategy
/* 00AACC 80009ECC 01802025 */ move $a0, $t4
.L80009ED0:
/* 00AAD0 80009ED0 8FA400D0 */ lw $a0, 0xd0($sp)

View File

@ -255,10 +255,10 @@ typedef struct {
/* 0x0010 */ s16 currentItemCopy; // Has no effect on what item the players has, It is just a synced copy
/* 0x0012 */ s16 unk_012;
/* 0x0014 */ Vec3f pos;
/* 0x0020 */ f32 rotX;
/* 0x0024 */ f32 rotY;
/* 0x0028 */ f32 rotZ;
/* 0x002C */ Vec3s unk_02C;
/* 0x0020 */ f32 copy_rotation_x;
/* 0x0024 */ f32 copy_rotation_y;
/* 0x0028 */ f32 copy_rotation_z;
/* 0x002C */ Vec3s rotation;
/* 0x0032 */ char unk_032[0x2];
/* 0x0034 */ Vec3f velocity;
/* 0x0040 */ s16 unk_040;

View File

@ -290,22 +290,24 @@
/**
* @brief Item IDs
*/
#define ITEM_NONE 0
#define ITEM_BANANA 1
#define ITEM_BANANA_BUNCH 2
#define ITEM_GREEN_SHELL 3
#define ITEM_TRIPLE_GREEN_SHELL 4
#define ITEM_RED_SHELL 5
#define ITEM_TRIPLE_RED_SHELL 6
#define ITEM_BLUE_SPINY_SHELL 7
#define ITEM_THUNDERBOLT 8
#define ITEM_FAKE_ITEM_BOX 9
#define ITEM_STAR 10
#define ITEM_BOO 11
#define ITEM_MUSHROOM 12
#define ITEM_DOUBLE_MUSHROOM 13
#define ITEM_TRIPLE_MUSHROOM 14
#define ITEM_SUPER_MUSHROOM 15
typedef enum {
/* 0x00 */ ITEM_NONE = 0,
/* 0x01 */ ITEM_BANANA,
/* 0x02 */ ITEM_BANANA_BUNCH,
/* 0x03 */ ITEM_GREEN_SHELL,
/* 0x04 */ ITEM_TRIPLE_GREEN_SHELL,
/* 0x05 */ ITEM_RED_SHELL,
/* 0x06 */ ITEM_TRIPLE_RED_SHELL,
/* 0x07 */ ITEM_BLUE_SPINY_SHELL,
/* 0x08 */ ITEM_THUNDERBOLT,
/* 0x09 */ ITEM_FAKE_ITEM_BOX,
/* 0x0A */ ITEM_STAR,
/* 0x0B */ ITEM_BOO,
/* 0x0C */ ITEM_MUSHROOM,
/* 0x0D */ ITEM_DOUBLE_MUSHROOM,
/* 0x0E */ ITEM_TRIPLE_MUSHROOM,
/* 0x0F */ ITEM_SUPER_MUSHROOM
} ITEMS;
/**
* @brief Balloon status

View File

@ -93,8 +93,8 @@ void camera_init(f32 posX, f32 posY, f32 posZ, UNUSED s16 rot, u32 arg4, s32 cam
camera->unk_94.unk_0 = 0.0f;
player += cameraId;
camera->unk_2C = player->unk_02C[1];
camera->unk_AC = player->unk_02C[1];
camera->unk_2C = player->rotation[1];
camera->unk_AC = player->rotation[1];
switch (gActiveScreenMode) {
case SCREEN_MODE_1P:
case SCREEN_MODE_2P_SPLITSCREEN_VERTICAL:
@ -637,7 +637,7 @@ void func_8001E0C4(Camera *camera, Player *player, s8 arg2) {
} else {
var_a2 = (player->unk_078 / 3) + 0x87;
}
adjust_angle(&camera->unk_2C, player->unk_02C[1], var_a2);
adjust_angle(&camera->unk_2C, player->rotation[1], var_a2);
func_8001CA78(player, camera, sp60, &sp74, &sp70, &sp6C, camera->unk_2C, arg2);
camera->someBitFlags &= ~0x0004;
temp_t7 = func_802ADDC8(&camera->unk_54, test, sp74, sp70, sp6C);
@ -717,7 +717,7 @@ void func_8001E45C(Camera *camera, Player *player, s8 arg2) {
}
} else {
move_s16_towards(&camera->unk_B0, 0, 0.05f);
var_a3 = ((s16) camera->unk_2C / 182) - ((s16) player->unk_02C[1] / 182);
var_a3 = ((s16) camera->unk_2C / 182) - ((s16) player->rotation[1] / 182);
if (player->unk_078 == 0) {
if ((player->effects & 0x20) == 0x20) {
var_a3 = 0x02D8;
@ -742,7 +742,7 @@ void func_8001E45C(Camera *camera, Player *player, s8 arg2) {
(player->unk_110.unk3C[0] <= 0.0f) || (player->unk_110.unk3C[1] <= 0.0f) || ((player->effects & 0x20000) == 0x20000)) {
func_8001CCEC(player, camera, sp64, &sp84, &sp80, &sp7C, &sp58, (s32) camera->unk_2C, (s32) arg2);
} else {
adjust_angle(&camera->unk_2C, (s16) (player->unk_02C[1] + camera->unk_B0), var_a3);
adjust_angle(&camera->unk_2C, (s16) (player->rotation[1] + camera->unk_B0), var_a3);
func_8001CCEC(player, camera, sp64, &sp84, &sp80, &sp7C, &sp58, (s32) camera->unk_2C, (s32) arg2);
}
temp = 3;
@ -780,8 +780,8 @@ void func_8001E8E8(Camera *camera, Player *player, s8 arg2) {
UNUSED f32 pad4[10];
camera->unk_B0 = 0;
camera->unk_2C = player->unk_02C[1];
func_8001D53C(player, camera, sp5C, &sp7C, &sp78, &sp74, (s16) (s32) player->unk_02C[1], (s16) (s32) arg2);
camera->unk_2C = player->rotation[1];
func_8001D53C(player, camera, sp5C, &sp7C, &sp78, &sp74, (s16) (s32) player->rotation[1], (s16) (s32) arg2);
func_802ADDC8(&camera->unk_54, 5.0f, sp7C, sp78, sp74);
camera->lookAt[0] = sp5C[0];
camera->lookAt[1] = sp5C[1];
@ -839,7 +839,7 @@ void func_8001EA0C(Camera *camera, Player *player, s8 arg2) {
}
} else {
move_s16_towards(&camera->unk_B0, 0, 0.05f);
var_a3 = ((s16) camera->unk_2C / 182) - ((s16) player->unk_02C[1] / 182);
var_a3 = ((s16) camera->unk_2C / 182) - ((s16) player->rotation[1] / 182);
if (player->unk_078 == 0) {
if ((player->effects & 0x20) == 0x20) {
var_a3 = 0x02D8;
@ -864,7 +864,7 @@ void func_8001EA0C(Camera *camera, Player *player, s8 arg2) {
(player->unk_110.unk3C[0] <= 0.0f) || (player->unk_110.unk3C[1] <= 0.0f) || ((player->effects & 0x20000) == 0x20000)) {
func_8001D944(player, camera, sp64, &sp84, &sp80, &sp7C, &sp58, (s32) camera->unk_2C, (s32) arg2);
} else {
adjust_angle(&camera->unk_2C, (s16) (player->unk_02C[1] + camera->unk_B0), var_a3);
adjust_angle(&camera->unk_2C, (s16) (player->rotation[1] + camera->unk_B0), var_a3);
func_8001D944(player, camera, sp64, &sp84, &sp80, &sp7C, &sp58, (s32) camera->unk_2C, (s32) arg2);
}
temp = 3;
@ -1134,8 +1134,8 @@ void func_8001F87C(s32 cameraId) {
if ((playerIndex == 7) && (D_80164A2C == 0x0000003C)) {
D_80164A28 = 2;
D_80152300[id] = 1;
cameras[id].rot[1] = gPlayerOne[playerIndex].unk_02C[1];
cameras[id].unk_2C = gPlayerOne[playerIndex].unk_02C[1];
cameras[id].rot[1] = gPlayerOne[playerIndex].rotation[1];
cameras[id].unk_2C = gPlayerOne[playerIndex].rotation[1];
}
}
}

View File

@ -663,7 +663,7 @@ void func_800065D0(s32 playerId, Player *player) {
a = (s16) gPathIndexByPlayerId[playerId];
b = gNearestWaypointByPlayerId[playerId];
temp_t2 = (s16) ((s16) player->unk_02C[1] / 182);
temp_t2 = (s16) ((s16) player->rotation[1] / 182);
temp_t3 = (s16) ((s16) D_80164590[a][b] / 182);
var_t1 = temp_t2 - temp_t3;
@ -1792,7 +1792,7 @@ void func_80009B60(s32 playerId) {
func_80011E38(playerId);
}
if ((playerId & 1) != (D_80163378 & 1)) {
func_8001AC10(playerId);
cpu_use_item_strategy(playerId);
}
func_800099EC(playerId, player);
D_80162FD0 = 0;
@ -1874,9 +1874,9 @@ void func_80009B60(s32 playerId) {
func_8000BBD8(stackPadding1A, D_80163090[playerId], D_80163448);
}
}
player->unk_02C[1] = -get_angle_between_points(player->pos, D_80162FA0);
player->rotation[1] = -get_angle_between_points(player->pos, D_80162FA0);
} else {
player->unk_02C[1] = D_80164590[D_80163448][(D_801630E0 + 4) % D_80164430];
player->rotation[1] = D_80164590[D_80163448][(D_801630E0 + 4) % D_80164430];
}
}
func_8003680C(player, 0);
@ -1887,7 +1887,7 @@ void func_80009B60(s32 playerId) {
player->effects |= 0x10;
}
if (D_801630E8[playerId] != 0) {
D_80163300[playerId] = -get_angle_between_points(&player->rotX, player->pos);
D_80163300[playerId] = -get_angle_between_points(&player->copy_rotation_x, player->pos);
var_a0_2 = (D_801631DC[(D_80162FCE + 2) % D_80164430] * 0x168) / 65535;
var_a1 = (D_80163300[playerId] * 0x168) / 65535;
if (var_a0_2 < -0xB4) {
@ -1993,8 +1993,8 @@ void func_80009B60(s32 playerId) {
// MISMATCH2
// This fixes part of the register allocation problems, makes fixing others
// harder though. Needs more investigation
// var_a2 = (-get_angle_between_points(player->pos, D_80162FA0)) - (var_a1 = player->unk_02C[1]);
stackPadding19 = -get_angle_between_points(player->pos, D_80162FA0) - player->unk_02C[1];
// var_a2 = (-get_angle_between_points(player->pos, D_80162FA0)) - (var_a1 = player->rotation[1]);
stackPadding19 = -get_angle_between_points(player->pos, D_80162FA0) - player->rotation[1];
var_a1 = stackPadding19;
var_a2 = var_a1;
if ((s16) temp_f2 < var_a1) {
@ -5586,7 +5586,7 @@ void func_80015314(s32 playerId, UNUSED f32 arg1, s32 cameraId) {
temp_a0 = camera1;
temp_a1 += playerId;
temp_a0 += cameraId;
temp_a0->unk_2C = temp_a1->unk_02C[1];
temp_a0->unk_2C = temp_a1->rotation[1];
func_80015390(temp_a0, temp_a1, 0);
}
@ -5619,7 +5619,7 @@ void func_80015390(Camera *camera, UNUSED Player *player, UNUSED s32 arg2) {
var_a2 = 0xA0 + (temp_s1->unk_078 / 16);
}
if (!((temp_s1->effects & 0x80) || (temp_s1->effects & 0x40))) {
adjust_angle(&camera->unk_2C, temp_s1->unk_02C[1], var_a2);
adjust_angle(&camera->unk_2C, temp_s1->rotation[1], var_a2);
}
func_8001D794(temp_s1, camera, sp64, &sp84, &sp80, &sp7C, camera->unk_2C);
func_802ADDC8(&camera->unk_54, 10.0f, sp84, sp80, sp7C);
@ -7574,7 +7574,7 @@ void func_8001AB00(void) {
}
}
void func_8001AB74(s32 arg0, s16 *arg1, s32 arg2) {
void cpu_decisions_branch_item(s32 arg0, s16 *arg1, s32 arg2) {
s32 value = -1;
switch (arg2) {
case ITEM_FAKE_ITEM_BOX:
@ -7623,7 +7623,7 @@ void func_8001ABEC(struct struct_801642D8 *arg0) {
// The use of several different actor types might make getting a match hard(er),
// might have to get creative/ugly with just a single generic `Actor` variable.
// https://decomp.me/scratch/FOlbG
void func_8001AC10(s32 playerId) {
void cpu_use_item_strategy(s32 playerId) {
s32 var_v0;
Player *player;
TrackWaypoint *waypoint;
@ -7641,7 +7641,7 @@ void func_8001AC10(s32 playerId) {
case 0:
temp_s0->actorIndex = -1;
if ((((playerId * 0x14) + 0x64) < D_80164450[playerId]) && (temp_s0->unk_04 >= 0x259) && (temp_s0->unk_06 < 3) && (gLapCountByPlayerId[playerId] < 3)) {
func_8001AB74(playerId, &temp_s0->unk_00, gen_random_item_cpu((s16)gLapCountByPlayerId[playerId], gGPCurrentRaceRankByPlayerId[playerId]));
cpu_decisions_branch_item(playerId, &temp_s0->unk_00, gen_random_item_cpu((s16)gLapCountByPlayerId[playerId], gGPCurrentRaceRankByPlayerId[playerId]));
} else {
func_8001ABE0(playerId, temp_s0);
}
@ -8072,7 +8072,7 @@ void func_8001AC10(s32 playerId) {
}
}
#else
GLOBAL_ASM("asm/non_matchings/code_80005FD0/func_8001AC10.s")
GLOBAL_ASM("asm/non_matchings/code_80005FD0/cpu_use_item_strategy.s")
#endif
void func_8001BE78(void) {
@ -8106,7 +8106,7 @@ void func_8001BE78(void) {
temp_s1->pos[0] = (f32) temp_s0->posX;
temp_s1->pos[1] = func_802AE1C0((f32) temp_s0->posX, 2000.0f, (f32) temp_s0->posZ) + temp_s1->boundingBoxSize;
temp_s1->pos[2] = (f32) temp_s0->posZ;
temp_s1->unk_02C[1] = (s16) *D_80164590[i];
temp_s1->rotation[1] = (s16) *D_80164590[i];
func_8003680C(temp_s1, 0);
temp_s1++;
D_80163410[i] = 0;

View File

@ -236,10 +236,10 @@ void func_8001A518(s32, s32, s32);
void func_8001A588(u16*, Camera*, Player*, s8, s32);
void func_8001AAAC(s16, s16, s16);
void func_8001AB00(void);
void func_8001AB74(s32, s16*, s32);
void cpu_decisions_branch_item(s32, s16*, s32);
void func_8001ABE0(s32, D_801642D8_entry*);
void func_8001ABEC(struct struct_801642D8*);
void func_8001AC10(s32);
void cpu_use_item_strategy(s32);
void func_8001BE78(void);

View File

@ -2812,7 +2812,7 @@ void func_8005D794(Player* player, UnkPlayerStruct258* arg1, f32 arg2, f32 arg3,
arg1->unk_000[2] = arg4;
arg1->unk_000[0] = arg2;
arg1->unk_000[1] = arg3;
arg1->unk_020 = -player->unk_02C[1];
arg1->unk_020 = -player->rotation[1];
arg1->unk_014 = arg5;
arg1->unk_010 = arg6;
}
@ -3689,7 +3689,7 @@ void func_800612F8(Player *player, UNUSED s32 arg1, UNUSED s32 arg2, UNUSED s8 a
for (var_s2 = 0; var_s2 < 10; var_s2++){
player->unk_258[0x1E + var_s2].unk_01C = 1;
player->unk_258[0x1E + var_s2].unk_028 = player->pos[1] + 5.0f;
player->unk_258[0x1E + var_s2].unk_020 = (0x1C70 * var_s2) - player->unk_02C[1];
player->unk_258[0x1E + var_s2].unk_020 = (0x1C70 * var_s2) - player->rotation[1];
player->unk_258[0x1E + var_s2].unk_024 = (random_int(0x0064U) / 100.0f) + 1.5;
player->unk_258[0x1E + var_s2].unk_03A = 0;
player->unk_258[0x1E + var_s2].unk_012 = 1;
@ -3707,7 +3707,7 @@ void func_80061430(Player *player, UNUSED s32 arg1, UNUSED s32 arg2, UNUSED s8 a
for (var_s2 = 0; var_s2 < 7; var_s2++){
player->unk_258[0x1E + var_s2].unk_01C = 1;
player->unk_258[0x1E + var_s2].unk_028 = player->pos[1] - 4.0f;
player->unk_258[0x1E + var_s2].unk_020 = (0x1C70 * var_s2) - player->unk_02C[1];
player->unk_258[0x1E + var_s2].unk_020 = (0x1C70 * var_s2) - player->rotation[1];
// ???
player->unk_258[0x1E + var_s2].unk_024 = (random_int(0x0064U) / 100.0f) + 1.9;
player->unk_258[0x1E + var_s2].unk_024 = (random_int(0x0064U) / 100.0f) + 1.5;
@ -3732,7 +3732,7 @@ void func_800615AC(Player *player, s16 arg1, UNUSED s32 arg2, UNUSED s8 arg3) {
player->unk_258[0x1E + arg1].unk_01C = 1;
player->unk_258[0x1E + arg1].unk_000[0] = player->pos[0];
player->unk_258[0x1E + arg1].unk_000[2] = player->pos[2];
player->unk_258[0x1E + arg1].unk_020 = -player->unk_02C[1] + sp28[arg1];
player->unk_258[0x1E + arg1].unk_020 = -player->rotation[1] + sp28[arg1];
player->unk_258[0x1E + arg1].unk_018 = random_int(1U) + 2.0f;
temp_f0 = random_int(4U);
temp_f0 -= test;
@ -3828,7 +3828,7 @@ void func_80061D4C(Player *player, s16 arg1, UNUSED s32 arg2, UNUSED s8 arg3) {
player->unk_258[0x1E + arg1].unk_000[0] = player->pos[0];
player->unk_258[0x1E + arg1].unk_000[1] = player->pos[1] + 2.0f;
player->unk_258[0x1E + arg1].unk_000[2] = player->pos[2];
player->unk_258[0x1E + arg1].unk_020 = -player->unk_02C[1] + sp20[arg1];
player->unk_258[0x1E + arg1].unk_020 = -player->rotation[1] + sp20[arg1];
player->unk_258[0x1E + arg1].unk_018 = random_int(3U) + 2.0f;
player->unk_258[0x1E + arg1].unk_014 = random_int(4U);
player->unk_258[0x1E + arg1].unk_014 -= test;
@ -3870,8 +3870,8 @@ void func_80061EF4(Player *player, s16 arg1, s32 arg2, UNUSED s8 arg3) {
} else {
player->unk_258[0x1E + arg1].unk_020 -= 0x888;
}
player->unk_258[0x1E + arg1].unk_000[2] = player->pos[2] + (coss(player->unk_258[0x1E + arg1].unk_020 - player->unk_02C[1] - player->unk_0C0) * 5.0f);
player->unk_258[0x1E + arg1].unk_000[0] = player->pos[0] + (sins(player->unk_258[0x1E + arg1].unk_020 - player->unk_02C[1] - player->unk_0C0) * 5.0f);
player->unk_258[0x1E + arg1].unk_000[2] = player->pos[2] + (coss(player->unk_258[0x1E + arg1].unk_020 - player->rotation[1] - player->unk_0C0) * 5.0f);
player->unk_258[0x1E + arg1].unk_000[0] = player->pos[0] + (sins(player->unk_258[0x1E + arg1].unk_020 - player->rotation[1] - player->unk_0C0) * 5.0f);
} else if (player->unk_258[0x1E + arg2].unk_01E > 0) {
func_8005D794(player, &player->unk_258[0x1E + arg1], 0.0f, var_f2, 0.0f, (s8) var_t0, (s8) var_t1);
func_8005D7D8(&player->unk_258[0x1E + arg1], 3, 0.5f);
@ -3882,8 +3882,8 @@ void func_80061EF4(Player *player, s16 arg1, s32 arg2, UNUSED s8 arg3) {
} else {
player->unk_258[0x1E + arg1].unk_020 -= 0x888;
}
player->unk_258[0x1E + arg1].unk_000[2] = player->pos[2] + (coss(player->unk_258[0x1E + arg1].unk_020 - player->unk_02C[1] - player->unk_0C0) * 5.0f);
player->unk_258[0x1E + arg1].unk_000[0] = player->pos[0] + (sins(player->unk_258[0x1E + arg1].unk_020 - player->unk_02C[1] - player->unk_0C0) * 5.0f);
player->unk_258[0x1E + arg1].unk_000[2] = player->pos[2] + (coss(player->unk_258[0x1E + arg1].unk_020 - player->rotation[1] - player->unk_0C0) * 5.0f);
player->unk_258[0x1E + arg1].unk_000[0] = player->pos[0] + (sins(player->unk_258[0x1E + arg1].unk_020 - player->rotation[1] - player->unk_0C0) * 5.0f);
}
}
}
@ -3925,8 +3925,8 @@ void func_800621BC(Player* player, s16 arg1, s32 arg2, UNUSED s8 arg3) {
player->unk_258[30 + arg1].unk_020 -= 2184;
}
player->unk_258[30 + arg1].unk_000[2] = player->pos[2] + (coss((player->unk_258[30 + arg1].unk_020 - player->unk_02C[1]) - player->unk_0C0) * 5.0f);
player->unk_258[30 + arg1].unk_000[0] = player->pos[0] + (sins((player->unk_258[30 + arg1].unk_020 - player->unk_02C[1]) - player->unk_0C0) * 5.0f);
player->unk_258[30 + arg1].unk_000[2] = player->pos[2] + (coss((player->unk_258[30 + arg1].unk_020 - player->rotation[1]) - player->unk_0C0) * 5.0f);
player->unk_258[30 + arg1].unk_000[0] = player->pos[0] + (sins((player->unk_258[30 + arg1].unk_020 - player->rotation[1]) - player->unk_0C0) * 5.0f);
return;
}
@ -3943,8 +3943,8 @@ void func_800621BC(Player* player, s16 arg1, s32 arg2, UNUSED s8 arg3) {
}
new_var = new_var2;
new_var->unk_258[30 + arg1].unk_000[2] = new_var->pos[2] + (coss((new_var->unk_258[30 + arg1].unk_020 - new_var->unk_02C[1]) - new_var->unk_0C0) * 5.0f);
new_var->unk_258[30 + arg1].unk_000[0] = new_var->pos[0] + (sins((new_var->unk_258[30 + arg1].unk_020 - new_var->unk_02C[1]) - new_var->unk_0C0) * 5.0f);
new_var->unk_258[30 + arg1].unk_000[2] = new_var->pos[2] + (coss((new_var->unk_258[30 + arg1].unk_020 - new_var->rotation[1]) - new_var->unk_0C0) * 5.0f);
new_var->unk_258[30 + arg1].unk_000[0] = new_var->pos[0] + (sins((new_var->unk_258[30 + arg1].unk_020 - new_var->rotation[1]) - new_var->unk_0C0) * 5.0f);
}
}
}
@ -3954,7 +3954,7 @@ void func_80062484(Player* player, UnkPlayerStruct258* arg1, s32 arg2) {
arg1->unk_000[1] = player->unk_074 + 1.0f;
arg1->unk_000[2] = player->pos[2];
arg1->unk_000[0] = player->pos[0];
arg1->unk_020 = (arg2 * 0x1998) - player->unk_02C[1];
arg1->unk_020 = (arg2 * 0x1998) - player->rotation[1];
arg1->unk_012 = 4;
arg1->unk_01E = 0;
}
@ -4051,7 +4051,7 @@ void func_800624D8(Player *player, UNUSED s32 arg1, UNUSED s32 arg2, UNUSED s8 a
void func_800628C0(Player* player, UNUSED s8 arg1, UNUSED s8 arg2, s8 arg3) {
player->unk_258[20 + arg3].unk_01C = 1;
player->unk_258[20 + arg3].unk_020 = -player->unk_02C[1];
player->unk_258[20 + arg3].unk_020 = -player->rotation[1];
player->unk_258[20 + arg3].unk_012 = 2;
player->unk_258[20 + arg3].unk_01E = 0;
player->unk_258[20 + arg3].unk_00C = 0.2f;
@ -4059,7 +4059,7 @@ void func_800628C0(Player* player, UNUSED s8 arg1, UNUSED s8 arg2, s8 arg3) {
void func_80062914(Player* player, UNUSED s8 arg1, UNUSED s8 arg2, s8 arg3) {
player->unk_258[20 + arg3].unk_01C = 1;
player->unk_258[20 + arg3].unk_020 = -player->unk_02C[1];
player->unk_258[20 + arg3].unk_020 = -player->rotation[1];
player->unk_258[20 + arg3].unk_012 = 4;
player->unk_258[20 + arg3].unk_01E = 0;
player->unk_258[20 + arg3].unk_00C = 1.0f;
@ -4067,7 +4067,7 @@ void func_80062914(Player* player, UNUSED s8 arg1, UNUSED s8 arg2, s8 arg3) {
void func_80062968(Player* player, UNUSED s8 arg1, UNUSED s8 arg2, s8 arg3) {
player->unk_258[20 + arg3].unk_01C = 1;
player->unk_258[20 + arg3].unk_020 = -player->unk_02C[1];
player->unk_258[20 + arg3].unk_020 = -player->rotation[1];
player->unk_258[20 + arg3].unk_012 = 5;
player->unk_258[20 + arg3].unk_01E = 0;
player->unk_258[20 + arg3].unk_00C = 0.2f;
@ -4075,7 +4075,7 @@ void func_80062968(Player* player, UNUSED s8 arg1, UNUSED s8 arg2, s8 arg3) {
void func_800629BC(Player* player, UNUSED s8 arg1, UNUSED s8 arg2, s8 arg3) {
player->unk_258[20 + arg3].unk_01C = 1;
player->unk_258[20 + arg3].unk_020 = -player->unk_02C[1];
player->unk_258[20 + arg3].unk_020 = -player->rotation[1];
player->unk_258[20 + arg3].unk_012 = 6;
player->unk_258[20 + arg3].unk_01E = 0;
player->unk_258[20 + arg3].unk_00C = 0.2f;
@ -4674,8 +4674,8 @@ void func_80064C74(Player* player, s16 arg1, UNUSED s8 arg2, UNUSED s8 arg3) {
player->unk_258[30 + arg1].unk_020 -= 2184;
}
player->unk_258[30 + arg1].unk_000[2] = player->pos[2] + (coss(player->unk_258[30 + arg1].unk_020 - player->unk_02C[1] - player->unk_0C0) * 5.0f);
player->unk_258[30 + arg1].unk_000[0] = player->pos[0] + (sins(player->unk_258[30 + arg1].unk_020 - player->unk_02C[1] - player->unk_0C0) * 5.0f);
player->unk_258[30 + arg1].unk_000[2] = player->pos[2] + (coss(player->unk_258[30 + arg1].unk_020 - player->rotation[1] - player->unk_0C0) * 5.0f);
player->unk_258[30 + arg1].unk_000[0] = player->pos[0] + (sins(player->unk_258[30 + arg1].unk_020 - player->rotation[1] - player->unk_0C0) * 5.0f);
player->unk_258[30 + arg1].unk_000[1] = player->pos[1] - 1.0f;
player->unk_258[30 + arg1].unk_00C += 0.4;
++player->unk_258[30 + arg1].unk_01E;
@ -5248,9 +5248,9 @@ void func_80067D3C(Player *player, s8 arg1, u8 *texture, s8 arg3, f32 arg4, s32
sp74[0] = 0;
sp74[1] = player->unk_048[arg1];
sp74[2] = 0;
sp7C[0] = player->pos[0] + (sins((0x4000 & 0xFFFFFFFF) - (player->unk_02C[1] + player->unk_0C0)) * arg4);
sp7C[0] = player->pos[0] + (sins((0x4000 & 0xFFFFFFFF) - (player->rotation[1] + player->unk_0C0)) * arg4);
sp7C[1] = player->pos[1] + player->boundingBoxSize - sp54[player->characterId] - 2.0f;
sp7C[2] = player->pos[2] + (coss((0x4000 & 0xFFFFFFFF) - (player->unk_02C[1] + player->unk_0C0)) * arg4);
sp7C[2] = player->pos[2] + (coss((0x4000 & 0xFFFFFFFF) - (player->rotation[1] + player->unk_0C0)) * arg4);
func_800652D4(sp7C, sp74, player->unk_258[20 + arg3].unk_00C * player->size);
gSPDisplayList(gDisplayListHead++, D_0D008DB8);
gDPLoadTextureBlock(gDisplayListHead++, texture, G_IM_FMT_I, G_IM_SIZ_8b, 32, 32, 0, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD);
@ -5275,9 +5275,9 @@ void func_8006801C(Player *player, s8 arg1, u8 *texture, s8 arg3, f32 arg4, s32
sp74[0] = 0;
sp74[1] = player->unk_048[arg1];
sp74[2] = 0;
sp7C[0] = player->pos[0] + (sins((0x4000 & 0xFFFFFFFF) - (player->unk_02C[1] + player->unk_0C0)) * arg4);
sp7C[0] = player->pos[0] + (sins((0x4000 & 0xFFFFFFFF) - (player->rotation[1] + player->unk_0C0)) * arg4);
sp7C[1] = player->pos[1] + player->boundingBoxSize - sp54[player->characterId] - 2.0f;
sp7C[2] = player->pos[2] + (coss((0x4000 & 0xFFFFFFFF) - (player->unk_02C[1] + player->unk_0C0)) * arg4);
sp7C[2] = player->pos[2] + (coss((0x4000 & 0xFFFFFFFF) - (player->rotation[1] + player->unk_0C0)) * arg4);
func_800652D4(sp7C, sp74, player->unk_258[20 + arg3].unk_00C * player->size * 0.8);
gSPDisplayList(gDisplayListHead++, D_0D008DB8);
gDPLoadTextureBlock(gDisplayListHead++, texture, G_IM_FMT_I, G_IM_SIZ_8b, 32, 32, 0, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD);
@ -5624,8 +5624,8 @@ void func_8006A50C(Player *player, f32 arg1, f32 arg2, s8 arg3, s8 arg4, s16 arg
D_8018D7D0[arg3][arg4] = 0;
D_8018D800[arg3][arg4] = 5;
D_8018D830[arg3][arg4] = 1;
D_8018D620[arg3][arg4] = -player->unk_02C[1] - player->unk_0C0;
func_80062B18(&someX, &someY, &someZ, arg1, 4.0f, arg2 + -3.8, -player->unk_02C[1], 0);
D_8018D620[arg3][arg4] = -player->rotation[1] - player->unk_0C0;
func_80062B18(&someX, &someY, &someZ, arg1, 4.0f, arg2 + -3.8, -player->rotation[1], 0);
D_8018D4D0[arg3][arg4] = player->pos[0] + someX;
D_8018D590[arg3][arg4] = player->pos[2] + someZ;
D_8018D530[arg3][arg4] = (player->pos[1] - player->boundingBoxSize) + someY;
@ -5669,7 +5669,7 @@ void func_8006A7C0(Player *player, f32 arg1, f32 arg2, s8 arg3, s8 arg4) {
D_8018D6B0[arg3][arg4] = 0.0f;
D_8018D710[arg3][arg4] = 0.0f;
}
D_8018D620[arg3][arg4] = -player->unk_02C[1] - player->unk_0C0;
D_8018D620[arg3][arg4] = -player->rotation[1] - player->unk_0C0;
move_s16_towards(&D_8018D890[arg3][arg4], player->unk_094 * 182.0f, 0.1f);
}
if (D_8018D830[arg3][arg4] == 1) {
@ -5750,7 +5750,7 @@ void func_8006AFD0(Player *player, s8 arg1, s16 arg2, s8 arg3) {
envRed = (envColors[player->characterId] >> 0x10) & 0xFF;
envGreen = (envColors[player->characterId] >> 0x08) & 0xFF;
envBlue = (envColors[player->characterId] >> 0x00) & 0xFF;
temp_t1 = (((player->unk_048[arg3] + player->unk_02C[1] + player->unk_0C0) & 0xFFFF) / 128);
temp_t1 = (((player->unk_048[arg3] + player->rotation[1] + player->unk_0C0) & 0xFFFF) / 128);
temp_t1 <<= 7;
if (arg3 == arg1) {
var_f20 = 0.3f;

View File

@ -4557,7 +4557,7 @@ void func_8007D070(void) {
temp_s2 = random_int(0x012CU);
temp_s3 = random_int(0x1000U) - 0x800;
temp_t5 = random_int(0x000FU) - 5;
gObjectList[objectIndex].direction_angle[1] = D_8018CF1C->unk_02C[1] + 0x8000;
gObjectList[objectIndex].direction_angle[1] = D_8018CF1C->rotation[1] + 0x8000;
temp_t2 = (D_8018CF14->rot[1] + temp_s3);
gObjectList[objectIndex].origin_pos[0] = D_8018CF1C->pos[0] + (sins(temp_t2) * temp_s2);
gObjectList[objectIndex].origin_pos[1] = temp_t5;

View File

@ -303,7 +303,7 @@ void func_8008C73C(Player *player, s8 arg1) {
}
player->unk_0B6 |= 0x80;
player->unk_0C0 = 0; player->unk_07C = 0; player->unk_078 = 0; player->unk_0AE = player->unk_02C[1]; player->unk_0B2 = 2;
player->unk_0C0 = 0; player->unk_07C = 0; player->unk_078 = 0; player->unk_0AE = player->rotation[1]; player->unk_0B2 = 2;
D_80165190[0][arg1] = 1;
D_80165190[1][arg1] = 1;
D_80165190[2][arg1] = 1;
@ -327,7 +327,7 @@ void func_8008C8C4(Player* player, s8 playerId) {
player->effects &= ~0x80;
player->effects &= ~0x40;
player->unk_0A8 = 0;
player->unk_02C[1] = player->unk_0AE;
player->rotation[1] = player->unk_0AE;
player->unk_07C = 0;
player->unk_0C0 = 0;
player->effects &= ~0x800;
@ -367,7 +367,7 @@ void func_8008C9EC(Player *player, s8 arg1) {
}
}
if ((player->effects & 0x80) == 0x80) {
player->unk_02C[1] -= sp30[player->unk_0B2];
player->rotation[1] -= sp30[player->unk_0B2];
D_8018D920[arg1] -= sp30[player->unk_0B2];
stackPadding1 = (u16)D_8018D920[arg1] / (0x10000 / (0x168 / (sp30[player->unk_0B2] / 182)));
if (stackPadding1 == 0) {
@ -380,7 +380,7 @@ void func_8008C9EC(Player *player, s8 arg1) {
}
}
} else {
player->unk_02C[1] += sp30[player->unk_0B2];
player->rotation[1] += sp30[player->unk_0B2];
D_8018D920[arg1] -= sp30[player->unk_0B2];
stackPadding2 = (u16)D_8018D920[arg1] / (0x10000 / (0x168 / (sp30[player->unk_0B2] / 182)));
if (stackPadding2 == 0) {
@ -588,7 +588,7 @@ void func_8008D554(Player* player) {
void func_8008D570(Player *player, s8 arg1) {
func_8008C354(player, arg1);
player->unk_0AE = player->unk_02C[1];
player->unk_0AE = player->rotation[1];
player->effects |= 0x80000;
player->effects &= ~0x10;
player->statusEffects &= ~0x1000;
@ -614,10 +614,10 @@ void func_8008D698(Player* player, s8 arg1) {
s16 temp;
if (player->unk_0B2 == 0) {
player->unk_02C[1] = player->unk_0AE;
player->rotation[1] = player->unk_0AE;
temp = 0;
} else {
player->unk_02C[1] -= 1820;
player->rotation[1] -= 1820;
D_8018D920[arg1] -= 1820;
temp = ((u16) D_8018D920[arg1] / 1820);
}
@ -636,7 +636,7 @@ void func_8008D760(Player* player) {
player->unk_0A8 = 0;
player->unk_07C = 0;
player->unk_0C0 = 0;
player->unk_02C[1] = player->unk_0AE;
player->rotation[1] = player->unk_0AE;
player->effects &= 0xFFF7FFFF;
player->kartGravity = gKartGravityTable[player->characterId];
player->type &= 0xFF7F;
@ -645,7 +645,7 @@ void func_8008D760(Player* player) {
void func_8008D7B0(Player* player, s8 arg1) {
func_8008C354(player, arg1);
player->unk_0AE = player->unk_02C[1];
player->unk_0AE = player->rotation[1];
player->effects |= 0x800000;
player->effects &= ~0x10;
player->statusEffects &= 0xFFFDFFFF;
@ -667,10 +667,10 @@ void func_8008D8B4(Player* player, s8 arg1) {
s16 temp;
if (player->unk_0B2 == 0) {
player->unk_02C[1] = player->unk_0AE;
player->rotation[1] = player->unk_0AE;
temp = 0;
} else {
player->unk_02C[1] -= 1820;
player->rotation[1] -= 1820;
D_8018D920[arg1] -= 1820;
temp = ((u16) (D_8018D920[arg1]) / 1820);
}
@ -689,7 +689,7 @@ void func_8008D97C(Player *player) {
player->unk_0A8 = 0;
player->unk_07C = 0;
player->unk_0C0 = 0;
player->unk_02C[1] = player->unk_0AE;
player->rotation[1] = player->unk_0AE;
player->effects &= 0xFF7FFFFF;
player->kartGravity = gKartGravityTable[player->characterId];
}
@ -864,7 +864,7 @@ void func_8008DF98(Player* player, s8 arg1) {
player->unk_0B0 = 0;
player->size = 1.0f;
D_8018D930[arg1] = gCourseTimer;
player->unk_0AE = player->unk_02C[1];
player->unk_0AE = player->rotation[1];
player->unk_0B2 = 2;
player->unk_0C0 = 0;
player->unk_07C = 0;
@ -894,7 +894,7 @@ void func_8008E118(Player *player, s8 arg1) {
player->unk_0A8 = 0;
player->unk_07C = 0;
player->unk_0C0 = 0;
player->unk_02C[1] = player->unk_0AE;
player->rotation[1] = player->unk_0AE;
func_8008E3C0(player, arg1);
D_80165190[0][arg1] = 1;
D_80165190[1][arg1] = 1;
@ -902,7 +902,7 @@ void func_8008E118(Player *player, s8 arg1) {
D_80165190[3][arg1] = 1;
func_8008DABC(player, arg1);
} else if ((player->effects & 0x20000) == 0x20000) {
player->unk_02C[1] -= 0x5B0;
player->rotation[1] -= 0x5B0;
D_8018D920[arg1] -= 0x5B0;
test = (u16)D_8018D920[arg1] / 1456;
if (test == 0) {
@ -912,7 +912,7 @@ void func_8008E118(Player *player, s8 arg1) {
player->effects &= ~0x20000;
player->unk_07C = 0;
player->unk_0C0 = 0;
player->unk_02C[1] = player->unk_0AE;
player->rotation[1] = player->unk_0AE;
D_80165190[0][arg1] = 1;
D_80165190[1][arg1] = 1;
D_80165190[2][arg1] = 1;
@ -950,7 +950,7 @@ void func_8008E3C0(Player* player, UNUSED s8 arg1) {
player->effects |= 0x08000000;
if ((player->effects & 0x20000) == 0x20000) {
player->unk_02C[1] = player->unk_0AE;
player->rotation[1] = player->unk_0AE;
}
player->effects &= ~0x20000;
@ -1263,7 +1263,7 @@ void func_8008F0E8(Player* player) {
void func_8008F104(Player* player, s8 arg1) {
func_8008C354(player, arg1);
player->unk_0AE = player->unk_02C[1];
player->unk_0AE = player->rotation[1];
player->unk_0B2 = 2;
player->unk_0C0 = 0;
player->unk_07C = 0;
@ -1282,7 +1282,7 @@ void func_8008F1B8(Player* player, s8 arg1) {
player->unk_08C = (player->unk_210 * 0.05);
if (player->unk_0B2 < 0) {
if ((player->unk_044 & 0x80) == 0x80) {
player->unk_02C[1] += 182;
player->rotation[1] += 182;
D_8018D920[arg1] += 182;
temp = ((u16) D_8018D920[arg1] / 182);
@ -1293,7 +1293,7 @@ void func_8008F1B8(Player* player, s8 arg1) {
}
} else {
player->unk_02C[1] -= 182;
player->rotation[1] -= 182;
D_8018D920[arg1] -= 182;
temp = ((u16) D_8018D920[arg1] / 182);
if (temp == 180) {
@ -1304,7 +1304,7 @@ void func_8008F1B8(Player* player, s8 arg1) {
}
} else {
if ((player->unk_0B2 & 1) != 0) {
player->unk_02C[1] -= 364;
player->rotation[1] -= 364;
D_8018D920[arg1] -= 364;
temp = ((u16) D_8018D920[arg1] / 364);
if (temp < 71) {
@ -1314,7 +1314,7 @@ void func_8008F1B8(Player* player, s8 arg1) {
player->unk_044 &= ~0x40;
return;
}
player->unk_02C[1] += 364;
player->rotation[1] += 364;
D_8018D920[arg1] += 364;
temp = ((u16) D_8018D920[arg1] / 364);
if (temp >= 110) {
@ -1800,7 +1800,7 @@ void func_80090778(Player* player) {
player->unk_0A8 = 0;
player->unk_07C = 0;
player->unk_0C0 = 0;
player->unk_02C[1] = player->unk_0AE;
player->rotation[1] = player->unk_0AE;
}
func_8008E3C0(player, playerIndex);
}
@ -1896,7 +1896,7 @@ void func_80090970(Player *player, s8 arg1, s8 arg2) {
player->unk_0CA &= ~0x0001;
}
} else {
move_f32_towards(&player->pos[1], player->rotY + 40.0f, 0.02f);
move_f32_towards(&player->pos[1], player->copy_rotation_y + 40.0f, 0.02f);
player->unk_0C6 -= 8;
if (player->unk_0C6 < 9) {
player->unk_0C6 = 0;
@ -1908,7 +1908,7 @@ void func_80090970(Player *player, s8 arg1, s8 arg2) {
case 2:
func_80090178(player, arg1, sp44, sp38);
// Fakematch found by Verti, who knows what's going on here
player->unk_02C[1] = (u16) -get_angle_between_points(sp44, sp38) & 0xFFFF;
player->rotation[1] = (u16) -get_angle_between_points(sp44, sp38) & 0xFFFF;
player->pos[0] = sp44[0];
player->pos[1] = sp44[1] + 40.0f;
player->pos[2] = sp44[2];
@ -1923,8 +1923,8 @@ void func_80090970(Player *player, s8 arg1, s8 arg2) {
player->pos[0] = sp44[0];
player->pos[1] = sp44[1] + 40.0f;
player->pos[2] = sp44[2];
player->pos[2] = player->pos[2] + coss((arg1 * 0x1C70) - player->unk_02C[1]) * -5.0f;
player->pos[0] = player->pos[0] + sins((arg1 * 0x1C70) - player->unk_02C[1]) * -5.0f;
player->pos[2] = player->pos[2] + coss((arg1 * 0x1C70) - player->rotation[1]) * -5.0f;
player->pos[0] = player->pos[0] + sins((arg1 * 0x1C70) - player->rotation[1]) * -5.0f;
player->unk_0C6 += 8;
if (player->unk_0C6 >= 0xF0) {
player->unk_0C6 = 0x00FF;
@ -1935,8 +1935,8 @@ void func_80090970(Player *player, s8 arg1, s8 arg2) {
break;
case 4:
if ((player->unk_0C8 == 0x0096) || (player->unk_0C8 == 0x00C8) || (player->unk_0C8 == 0x00FA)) {
player->pos[2] = player->pos[2] + coss(-player->unk_02C[1]) * -10.0f;
player->pos[0] = player->pos[0] + sins(-player->unk_02C[1]) * -10.0f;
player->pos[2] = player->pos[2] + coss(-player->rotation[1]) * -10.0f;
player->pos[0] = player->pos[0] + sins(-player->rotation[1]) * -10.0f;
}
if (player->unk_0C8 == 0x00FC) {
waypoint = D_80164550[0];
@ -2019,7 +2019,7 @@ func_800910E4_label:
void func_800911B4(Player* player, s8 arg1) {
s32 temp_v0;
player->unk_0AE = player->unk_02C[1];
player->unk_0AE = player->rotation[1];
player->unk_044 |= 0x1800;
player->unk_044 &= ~0x0400;
player->unk_044 |= 0x2000;
@ -2066,7 +2066,7 @@ void func_80091298(Player *player, s8 arg1) {
if (player->unk_0B2 == 0) {
var_v1 = 0;
} else {
player->unk_02C[1] -= 0xE38;
player->rotation[1] -= 0xE38;
D_8018D920[arg1] -= 0xE38;
var_v1 = (u16)D_8018D920[arg1] / 3640;
}

View File

@ -60,7 +60,7 @@ void func_80280038(void) {
gCurrentCourseId = gCreditsCourseId;
mtxf_identity(matrix);
render_set_position(matrix, 0);
func_80295A38(D_800DC5EC);
render_course(D_800DC5EC);
render_course_actors(D_800DC5EC);
func_80058090(0);
func_80058538(0);

View File

@ -2344,10 +2344,10 @@ void func_8004F168(s32 arg0, s32 playerId, s32 characterId) {
temp_a1 = ((D_8018D2D8[arg0] + D_8018D2F8) - ((s16) D_8018D2B8 / 2)) + D_8018D2E8 + (s32) (player->pos[2] * D_8018D2A0);
if (characterId != 8) {
if ((gGPCurrentRaceRankByPlayerId[playerId] == 0) && (gModeSelection != BATTLE) && (gModeSelection != TIME_TRIALS)) {
func_80046424((s32) temp_a0, (s32) temp_a1, (player->unk_02C[1] + 0x8000) & 0xFFFF, 1.0f, (u8 *) common_texture_minimap_kart_character[characterId], common_vtx_player_minimap_icon, 8, 8, 8, 8);
func_80046424((s32) temp_a0, (s32) temp_a1, (player->rotation[1] + 0x8000) & 0xFFFF, 1.0f, (u8 *) common_texture_minimap_kart_character[characterId], common_vtx_player_minimap_icon, 8, 8, 8, 8);
// return;
} else {
func_800463B0((s32) temp_a0, (s32) temp_a1, (player->unk_02C[1] + 0x8000) & 0xFFFF, 1.0f, (u8 *) common_texture_minimap_kart_character[characterId], common_vtx_player_minimap_icon, 8, 8, 8, 8);
func_800463B0((s32) temp_a0, (s32) temp_a1, (player->rotation[1] + 0x8000) & 0xFFFF, 1.0f, (u8 *) common_texture_minimap_kart_character[characterId], common_vtx_player_minimap_icon, 8, 8, 8, 8);
}
//return;
} else {

View File

@ -852,7 +852,7 @@ void func_8002934C(Player *player, Camera *camera, s8 arg2, s8 playerId) {
u16 var_a0;
player->unk_048[arg2] = atan2s(player->pos[0] - camera->pos[0], player->pos[2] - camera->pos[2]);
player->animFrameSelector[arg2] = (u16) ( (((player->unk_048[arg2]) + player->unk_02C[1] + player->unk_0C0))) / 128;
player->animFrameSelector[arg2] = (u16) ( (((player->unk_048[arg2]) + player->rotation[1] + player->unk_0C0))) / 128;
temp_f2 = (gCharacterSize[player->characterId] * 18.0f) * player->size;
temp_f0 = player->unk_230 - player->unk_23C;
@ -872,9 +872,9 @@ void func_8002934C(Player *player, Camera *camera, s8 arg2, s8 playerId) {
}
else {
if (((player->animFrameSelector[arg2]) >= 0) && ((player->animFrameSelector[arg2]) < 0x101)) {
var_f0 = player->rotY - player->pos[1];
var_f0 = player->copy_rotation_y - player->pos[1];
} else {
var_f0 = player->pos[1] - player->rotY;
var_f0 = player->pos[1] - player->copy_rotation_y;
}
player->unk_0D4[arg2] = (s16) ((s32) (((f64) func_802B7C40(var_f0 / temp_f2)) * 0.5));
}
@ -882,7 +882,7 @@ void func_8002934C(Player *player, Camera *camera, s8 arg2, s8 playerId) {
player->unk_0D4[arg2] = (s16) ((s32) player->unk_D9C);
}
func_80029200(player, arg2);
temp_a0 = ((player->unk_048[arg2] + player->unk_02C[1]) + player->unk_0C0);
temp_a0 = ((player->unk_048[arg2] + player->rotation[1]) + player->unk_0C0);
temp_a0 = (s16) player->unk_0D4[arg2] * sins((u16) temp_a0) + player->unk_0CC[arg2] * coss((u16) temp_a0);
move_s16_towards(&player->unk_050[arg2], temp_a0, 0.5f);
var_a0 = player->animFrameSelector[arg2];
@ -918,7 +918,7 @@ void func_8002934C(Player *player, Camera *camera, s8 arg2, s8 playerId) {
&& ((player->unk_0CA & 2) == 2)) {
player->unk_050[arg2] = 0;
}
var_a0 = (player->unk_048[arg2] + player->unk_02C[1] + player->unk_0C0);
var_a0 = (player->unk_048[arg2] + player->rotation[1] + player->unk_0C0);
if (((player->effects & 0x80) == 0x80)
|| ((player->effects & 0x40) == 0x40)
|| ((player->effects & 0x80000) == 0x80000)
@ -1016,7 +1016,7 @@ void func_80029B4C(Player *player, UNUSED f32 arg1, f32 arg2, UNUSED f32 arg3) {
var_f12 = 18.0f * (gCharacterSize[player->characterId] / 2);
}
calculate_orientation_matrix(sp5C, 0.0f, 1.0f, 0.0f, (player->unk_02C[1] + player->unk_0C0));
calculate_orientation_matrix(sp5C, 0.0f, 1.0f, 0.0f, (player->rotation[1] + player->unk_0C0));
sp8C[0] = var_f12 - 3.6;
sp8C[1] = -player->boundingBoxSize;
sp8C[2] = var_f12 - 2.0f;
@ -1089,7 +1089,7 @@ void func_80029B4C(Player *player, UNUSED f32 arg1, f32 arg2, UNUSED f32 arg3) {
move_s16_towards(&player->slopeAccel, func_802B7C40(temp_f0_2 / temp_f2_3), 0.5f);
}
else {
temp_f0_2 = player->rotY - arg2;
temp_f0_2 = player->copy_rotation_y - arg2;
temp_v0 = func_802B7C40(temp_f0_2 / temp_f2_3);
if (temp_f0_2 >= 0.0f) {
temp_v0 /= 4;
@ -1125,7 +1125,7 @@ void func_8002A194(Player *player, f32 arg1, f32 arg2, f32 arg3) {
UNUSED s32 pad2;
f32 temp_f0;
temp_v1 = -player->unk_02C[1] - player->unk_0C0;
temp_v1 = -player->rotation[1] - player->unk_0C0;
if ((player->effects & LIGHTNING_EFFECT) == LIGHTNING_EFFECT) {
var_f20 = (((gCharacterSize[player->characterId] * 18) / 2) * (player->size * 1.5)) - 1;
} else {
@ -1169,7 +1169,7 @@ void func_8002A194(Player *player, f32 arg1, f32 arg2, f32 arg3) {
temp_f0 = (player->unk_1F8 - player->unk_1FC);
move_s16_towards(&player->slopeAccel, func_802B7C40(temp_f0 / var_f20), 0.5f);
} else {
temp_f0 = player->rotY - arg2;
temp_f0 = player->copy_rotation_y - arg2;
temp_v0 = func_802B7C40(temp_f0 / var_f20);
if (temp_f0 >= 0.0f) {
var_a1 = temp_v0 * 2;
@ -1425,8 +1425,8 @@ void func_8002AE38(Player *player, s8 arg1, f32 arg2, f32 arg3, f32 arg4, f32 ar
s16 temp_a0;
s32 var_v1;
sp28 = (sins(-player->unk_02C[1]) * player->unk_094) + arg2;
temp_f16 = (coss(-player->unk_02C[1]) * player->unk_094) + arg3;
sp28 = (sins(-player->rotation[1]) * player->unk_094) + arg2;
temp_f16 = (coss(-player->rotation[1]) * player->unk_094) + arg3;
if (
((player->effects & 0x800) != 0x800) &&
((player->effects & 0x10) != 0x10) &&
@ -1695,8 +1695,8 @@ void func_8002B9CC(Player *player, s8 arg1, UNUSED s32 arg2) {
func_8008C73C(player, arg1);
}
}
temp = (-(s16)get_angle_between_points(player->pos, &player->rotX));
temp2 = (player->unk_02C[1] - player->unk_0C0);
temp = (-(s16)get_angle_between_points(player->pos, &player->copy_rotation_x));
temp2 = (player->rotation[1] - player->unk_0C0);
temp = temp - temp2;
player->unk_234 = temp / 182;
@ -1732,14 +1732,14 @@ void func_8002BB9C(Player *player, f32 *arg1, f32 *arg2, UNUSED s8 arg3, UNUSED
mtxf_translate_vec3f_mat3(sp58, sp64);
sp4C[0] = player->rotX;
sp4C[0] = player->copy_rotation_x;
sp4C[1] = 0;
sp4C[2] = player->rotZ;
sp4C[2] = player->copy_rotation_z;
mtxf_translate_vec3f_mat3(sp4C, sp64);
var_v0 = -(s16)get_angle_between_points(sp58, sp4C);
t0 = player->unk_02C[1];
t0 = player->rotation[1];
var_v0 = 0x10000 + (t0 - var_v0);
var_v0 /= 182;
@ -1758,9 +1758,9 @@ void func_8002BB9C(Player *player, f32 *arg1, f32 *arg2, UNUSED s8 arg3, UNUSED
}
if ((player->unk_07C >> 0x10) < 0) {
player->unk_02C[1] -= sp30[var_v0];
player->rotation[1] -= sp30[var_v0];
} else {
player->unk_02C[1] += sp30[var_v0];
player->rotation[1] += sp30[var_v0];
}
}
@ -2160,7 +2160,7 @@ void func_8002D028(Player *player, s8 arg1) {
sp4C[2] = D_80165230[D_80165270[arg1]];
temp = -(s16)get_angle_between_points(player->pos, sp4C);
temp2 = player->unk_02C[1];
temp2 = player->rotation[1];
temp = (temp - temp2);
thing0 = 8;
@ -2179,8 +2179,8 @@ void func_8002D028(Player *player, s8 arg1) {
temp_f18 = sqrtf((sp4C[0] - player->pos[0]) * (sp4C[0] - player->pos[0])+ (sp4C[2] - player->pos[2]) * (sp4C[2] - player->pos[2]));
if (temp_f18 <= 8.0f) {
adjust_angle(&player->unk_02C[1], -0x8000, 0x016C);
if ((player->unk_02C[1] < (-0x7F41)) || (player->unk_02C[1] > 0x7F41)) {
adjust_angle(&player->rotation[1], -0x8000, 0x016C);
if ((player->rotation[1] < (-0x7F41)) || (player->rotation[1] > 0x7F41)) {
player->type &= ~0x0200;
}
player->unk_08C = 0;
@ -2272,7 +2272,7 @@ void func_8002D268(Player *player, UNUSED Camera *camera, s8 arg2, s8 playerId)
spB0 = -1 * player->kartGravity;
spAC = 0 * (player->unk_064[2] + sp16C[2]);
}
temp_f2_2 = ((player->rotZ - player->pos[2]) * coss(player->unk_02C[1] + player->unk_0C0)) + (-(player->rotX - player->pos[0]) * sins(player->unk_02C[1] + player->unk_0C0));
temp_f2_2 = ((player->copy_rotation_z - player->pos[2]) * coss(player->rotation[1] + player->unk_0C0)) + (-(player->copy_rotation_x - player->pos[0]) * sins(player->rotation[1] + player->unk_0C0));
if (temp_f2_2 > 0.1) {
player->unk_044 |= 8;
} else {
@ -2324,9 +2324,9 @@ void func_8002D268(Player *player, UNUSED Camera *camera, s8 arg2, s8 playerId)
posY = player->pos[1];
posZ = player->pos[2];
player->rotX = player->pos[0];
player->rotZ = player->pos[2];
player->rotY = player->pos[1];
player->copy_rotation_x = player->pos[0];
player->copy_rotation_z = player->pos[2];
player->copy_rotation_y = player->pos[1];
spFC = posX + player->velocity[0] + D_8018CE10[playerId].unk_04[0];
spF8 = posY + player->velocity[1];
spF4 = posZ + player->velocity[2] + D_8018CE10[playerId].unk_04[2];
@ -2339,14 +2339,14 @@ void func_8002D268(Player *player, UNUSED Camera *camera, s8 arg2, s8 playerId)
spF8 += player->kartHopVelocity;
spF8 -= 0.02;
}
func_802AD950(&player->unk_110, player->boundingBoxSize, spFC, spF8, spF4, player->rotX, player->rotY, player->rotZ);
func_802AD950(&player->unk_110, player->boundingBoxSize, spFC, spF8, spF4, player->copy_rotation_x, player->copy_rotation_y, player->copy_rotation_z);
player->unk_058 = 0.0f;
player->unk_060 = 0.0f;
player->unk_05C = 1.0f;
if ((player->unk_044 & 1) != 1) {
calculate_orientation_matrix(player->orientationMatrix, player->unk_058, player->unk_05C, player->unk_060, player->unk_02C[1]);
calculate_orientation_matrix(player->orientationMatrix, player->unk_058, player->unk_05C, player->unk_060, player->rotation[1]);
} else {
calculate_orientation_matrix(player->orientationMatrix, player->unk_058, player->unk_05C, player->unk_060, player->unk_02C[1] + 0x8000);
calculate_orientation_matrix(player->orientationMatrix, player->unk_058, player->unk_05C, player->unk_060, player->rotation[1] + 0x8000);
}
player->effects |= 8;
player->unk_0C2 += 1;
@ -2503,7 +2503,7 @@ void func_8002E4C4(Player *player) {
player->kartHopVelocity = 0.0f;
player->pos[1] = func_802AE1C0(player->pos[0], D_80164510[player_index] + 10.0f, player->pos[2]) + player->boundingBoxSize;
if (((player->pos[1] - D_80164510[player_index]) > 1200.0f) || ((player->pos[1] - D_80164510[player_index]) < -1200.0f)) {
player->pos[1] = player->rotY;
player->pos[1] = player->copy_rotation_y;
}
player->velocity[1] = 0.0f;
}
@ -2558,10 +2558,10 @@ void func_8002E594(Player *player, UNUSED Camera *camera, s8 arg2, s8 arg3) {
}
func_8002C7E4(player, arg3, arg2);
if (sp46 == 1) {
calculate_orientation_matrix(player->orientationMatrix, player->unk_058, player->unk_05C, player->unk_060, (s16) ((s32) player->unk_02C[1]));
calculate_orientation_matrix(player->orientationMatrix, player->unk_058, player->unk_05C, player->unk_060, (s16) ((s32) player->rotation[1]));
calculate_orientation_matrix(player->unk_150, player->unk_058, player->unk_05C, player->unk_060, (s16) ((s32) player->unk_0AE));
} else {
calculate_orientation_matrix(player->orientationMatrix, player->unk_058, player->unk_05C, player->unk_060, (s16) ((s32) player->unk_02C[1]));
calculate_orientation_matrix(player->orientationMatrix, player->unk_058, player->unk_05C, player->unk_060, (s16) ((s32) player->rotation[1]));
}
spEC[2] = func_80030150(player, arg3);
if (sp46 == 1) {
@ -2595,16 +2595,16 @@ void func_8002E594(Player *player, UNUSED Camera *camera, s8 arg2, s8 arg3) {
posY = player->pos[1];
posZ = player->pos[2];
player->rotX = player->pos[0];
player->rotY = player->pos[1];
player->rotZ = player->pos[2];
player->copy_rotation_x = player->pos[0];
player->copy_rotation_y = player->pos[1];
player->copy_rotation_z = player->pos[2];
spD0 = posX + player->velocity[0] + D_8018CE10[arg3].unk_04[0];
spCC = posY + player->velocity[1];
spC8 = posZ + player->velocity[2] + D_8018CE10[arg3].unk_04[2];
func_8002AAC0(player);
spCC += player->kartHopVelocity;
func_802AD950(&player->unk_110, player->boundingBoxSize, spD0, spCC, spC8, player->rotX, player->rotY, player->rotZ);
func_802AD950(&player->unk_110, player->boundingBoxSize, spD0, spCC, spC8, player->copy_rotation_x, player->copy_rotation_y, player->copy_rotation_z);
player->effects |= 8;
player->unk_0C2 += 1;
player->unk_058 = 0.0f;
@ -2788,16 +2788,16 @@ void control_cpu_movement(Player *player, UNUSED Camera *camera, s8 arg2, s8 arg
sp68[2] = player->velocity[2];
sp68[0] += (((spF4[0] + sp84) + spD0[0]) - (sp68[0] * (0.12 * player->kartFriction))) / 6000.0;
sp68[2] += (((spF4[2] + sp7C) + spD0[2]) - (sp68[2] * (0.12 * player->kartFriction))) / 6000.0;
player->rotX = player->pos[0];
player->rotY = test;
player->rotZ = player->pos[2];
player->copy_rotation_x = player->pos[0];
player->copy_rotation_y = test;
player->copy_rotation_z = player->pos[2];
spCC = player->pos[0] + player->velocity[0];
spC4 = player->pos[2] + player->velocity[2];
player->unk_0C0 = 0;
player->kartHopJerk = 0;
player->kartHopAcceleration = 0;
player->kartHopVelocity = 0;
calculate_orientation_matrix(player->orientationMatrix, player->unk_058, player->unk_05C, player->unk_060, player->unk_02C[1]);
calculate_orientation_matrix(player->orientationMatrix, player->unk_058, player->unk_05C, player->unk_060, player->rotation[1]);
player->unk_0C2 = 0;
player->effects &= ~2;
player->effects &= ~8;
@ -2869,9 +2869,9 @@ void func_8002F730(Player *player, UNUSED Camera *camera, UNUSED s8 arg2, s8 arg
spB8 = player->pos[2];
player->rotX = player->pos[0];
player->rotY = player->pos[1];
player->rotZ = player->pos[2];
player->copy_rotation_x = player->pos[0];
player->copy_rotation_y = player->pos[1];
player->copy_rotation_z = player->pos[2];
spCC = player->velocity[0] + spC0;
spC8 = player->velocity[1] + sp44;
@ -2880,11 +2880,11 @@ void func_8002F730(Player *player, UNUSED Camera *camera, UNUSED s8 arg2, s8 arg
func_8002AAC0(player);
spC8 += player->kartHopVelocity;
func_802AD950(&player->unk_110, player->boundingBoxSize, spCC, spC8, spC4, player->rotX, player->rotY, player->rotZ);
func_802AD950(&player->unk_110, player->boundingBoxSize, spCC, spC8, spC4, player->copy_rotation_x, player->copy_rotation_y, player->copy_rotation_z);
player->unk_058 = 0.0f;
player->unk_05C = 1.0f;
player->unk_060 = 0.0f;
calculate_orientation_matrix(player->orientationMatrix, 0.0f, 1.0f, 0.0f, (s16) (s32) player->unk_02C[1]);
calculate_orientation_matrix(player->orientationMatrix, 0.0f, 1.0f, 0.0f, (s16) (s32) player->rotation[1]);
player->effects &= ~8;
sp78 = player->unk_110.unk3C[2];
if (sp78 <= 0.0f) {
@ -4601,7 +4601,7 @@ void func_80037BB4(Player *player, Vec3f arg1) {
} else {
if (player->unk_078 < 0) {
if (((player->effects & 0x20000000) != 0x20000000) || (player->unk_228 >= 0x64)) {
player->unk_02C[1] += player->unk_078;
player->rotation[1] += player->unk_078;
}
if (!(player->type & PLAYER_CPU)) {
if (gModeSelection == BATTLE) {
@ -4614,7 +4614,7 @@ void func_80037BB4(Player *player, Vec3f arg1) {
}
} else {
if (((player->effects & 0x20000000) != 0x20000000) || (player->unk_228 >= 0x64)) {
player->unk_02C[1] += player->unk_078;
player->rotation[1] += player->unk_078;
}
if (!(player->type & PLAYER_CPU)) {
if (gModeSelection == BATTLE) {
@ -4969,7 +4969,7 @@ void func_80038C6C(Player *player, UNUSED Camera *camera, s8 arg2, s8 arg3) {
player->topSpeed = 250.0f;
func_8002B830(player, arg3, arg2);
func_8002CD48(player, arg3, arg2);
player->unk_02C[1] += player->unk_078;
player->rotation[1] += player->unk_078;
spF0[0] = 0;
spF0[1] = 0;
spF0[2] = 0;
@ -5001,9 +5001,9 @@ void func_80038C6C(Player *player, UNUSED Camera *camera, s8 arg2, s8 arg3) {
posY = player->pos[1];
posZ = player->pos[2];
player->rotX = player->pos[0];
player->rotY = player->pos[1];
player->rotZ = player->pos[2];
player->copy_rotation_x = player->pos[0];
player->copy_rotation_y = player->pos[1];
player->copy_rotation_z = player->pos[2];
spEC = posX + player->velocity[0];
spE8 = posY + player->velocity[1];
@ -5011,11 +5011,11 @@ void func_80038C6C(Player *player, UNUSED Camera *camera, s8 arg2, s8 arg3) {
func_8002AAC0(player);
spE8 += player->kartHopVelocity;
spE8 -= 0.02;
func_802AD950(&player->unk_110, player->boundingBoxSize, spEC, spE8, spE4, player->rotX, player->rotY, player->rotZ);
func_802AD950(&player->unk_110, player->boundingBoxSize, spEC, spE8, spE4, player->copy_rotation_x, player->copy_rotation_y, player->copy_rotation_z);
player->unk_058 = 0;
player->unk_060 = 0;
player->unk_05C = 1.0f;
calculate_orientation_matrix(player->orientationMatrix, 0, 1.0f, 0, player->unk_02C[1]);
calculate_orientation_matrix(player->orientationMatrix, 0, 1.0f, 0, player->rotation[1]);
player->effects |= 8;
player->unk_0C2 += 1;
sp98 = player->unk_110.unk3C[2];

View File

@ -15,7 +15,7 @@
#include "code_80071F00.h"
#include "code_8008C1D0.h"
void func_802B0210(Collision *arg0, Collision *arg1) {
void copy_collision(Collision *arg0, Collision *arg1) {
arg1->unk30 = arg0->unk30;
arg1->unk32 = arg0->unk32;
arg1->unk34 = arg0->unk34;
@ -192,7 +192,7 @@ void func_802B0788(s16 rawStickY, struct BananaBunchParent *banana_bunch, Player
var_f12 = (player->unk_094 * 0.75f) + 4.5f + var_f0;
}
vec3f_set(velocity, 0.0f, var_f0, var_f12);
func_802B64C4(velocity, player->unk_02C[1] + player->unk_0C0);
func_802B64C4(velocity, player->rotation[1] + player->unk_0C0);
banana->velocity[0] = velocity[0];
banana->velocity[1] = velocity[1];
banana->velocity[2] = velocity[2];
@ -429,7 +429,7 @@ void update_actor_triple_shell(TripleShellParent *parent, s16 shellType) {
someVelocity[0] = 0;
someVelocity[1] = 0;
someVelocity[2] = 8;
func_802B64C4(someVelocity, player->unk_02C[1] + player->unk_0C0);
func_802B64C4(someVelocity, player->rotation[1] + player->unk_0C0);
shell->velocity[0] = someVelocity[0];
shell->velocity[1] = someVelocity[1];
shell->velocity[2] = someVelocity[2];
@ -454,7 +454,7 @@ void update_actor_triple_shell(TripleShellParent *parent, s16 shellType) {
someVelocity[0] = 0;
someVelocity[1] = 0;
someVelocity[2] = 8;
func_802B64C4(someVelocity, player->unk_02C[1] + player->unk_0C0);
func_802B64C4(someVelocity, player->rotation[1] + player->unk_0C0);
shell->velocity[0] = someVelocity[0];
shell->velocity[1] = someVelocity[1];
shell->velocity[2] = someVelocity[2];
@ -479,7 +479,7 @@ void update_actor_triple_shell(TripleShellParent *parent, s16 shellType) {
someVelocity[0] = 0;
someVelocity[1] = 0;
someVelocity[2] = 8;
func_802B64C4(someVelocity, player->unk_02C[1] + player->unk_0C0);
func_802B64C4(someVelocity, player->rotation[1] + player->unk_0C0);
shell->velocity[0] = someVelocity[0];
shell->velocity[1] = someVelocity[1];
shell->velocity[2] = someVelocity[2];
@ -664,7 +664,7 @@ s32 use_red_shell_item(Player *player) {
func_802B4E30((struct Actor *)shell);
shell->state = HELD_SHELL;
shell->rotVelocity = 0;
shell->rotAngle = player->unk_02C[1] - 0x8000;
shell->rotAngle = player->rotation[1] - 0x8000;
shell->playerId = player - gPlayerOne;
return actorIndex;
}
@ -738,7 +738,7 @@ void update_actor_banana(struct BananaActor *banana) {
temp_f0 = (player->unk_094 * 0.75f) + 3.5f + pad3;
}
vec3f_set(someVelocity, 0, pad3, temp_f0);
func_802B64C4(someVelocity, player->unk_02C[1] + player->unk_0C0);
func_802B64C4(someVelocity, player->rotation[1] + player->unk_0C0);
banana->velocity[0] = someVelocity[0];
banana->velocity[1] = someVelocity[1];
banana->velocity[2] = someVelocity[2];
@ -784,7 +784,7 @@ void update_actor_banana(struct BananaActor *banana) {
someVelocity[0] = 0.0f;
someVelocity[1] = 0.0f;
someVelocity[2] = -5.0f;
func_802B64C4(someVelocity, player->unk_02C[1] + player->unk_0C0);
func_802B64C4(someVelocity, player->rotation[1] + player->unk_0C0);
unkX = player->pos[0] + someVelocity[0];
unkY = player->pos[1] + someVelocity[1];
unkZ = player->pos[2] + someVelocity[2];
@ -1044,7 +1044,7 @@ void use_thunder_item(Player *player) {
}
// Handles item use?
void func_802B2FA0(Player *player) {
void player_use_item(Player *player) {
s32 playerId = player - gPlayerOne;
switch (player->currentItemCopy) {
@ -1122,7 +1122,7 @@ void func_802B30EC(void) {
if (((player->type & PLAYER_HUMAN) != 0) && (player->currentItemCopy != ITEM_NONE) && ((player->type & PLAYER_START_SEQUENCE) == 0)) {
if ((controller->buttonPressed & Z_TRIG) != 0) {
controller->buttonPressed &= ~Z_TRIG;
func_802B2FA0(player);
player_use_item(player);
}
}
}
@ -1158,7 +1158,7 @@ void update_actor_green_shell(struct ShellActor *shell) {
switch (shell->state) {
case HELD_SHELL:
player = &gPlayers[shell->playerId];
func_802B0210(&player->unk_110, &shell->unk30);
copy_collision(&player->unk_110, &shell->unk30);
somePosVel[0] = 0.0f;
somePosVel[1] = player->boundingBoxSize;
somePosVel[2] = -(player->boundingBoxSize + shell->boundingBoxSize + 2.0f);
@ -1185,7 +1185,7 @@ void update_actor_green_shell(struct ShellActor *shell) {
somePosVel[0] = 0.0f;
somePosVel[1] = 0.0f;
somePosVel[2] = -var_f2;
func_802B64C4(somePosVel, player->unk_02C[1] + player->unk_0C0);
func_802B64C4(somePosVel, player->rotation[1] + player->unk_0C0);
shell->velocity[0] = somePosVel[0];
shell->velocity[1] = somePosVel[1];
shell->velocity[2] = somePosVel[2];
@ -1234,7 +1234,7 @@ void update_actor_green_shell(struct ShellActor *shell) {
somePosVel[0] = 0.0f;
somePosVel[1] = 0.0f;
somePosVel[2] = var_f2;
func_802B64C4(somePosVel, player->unk_02C[1] + player->unk_0C0);
func_802B64C4(somePosVel, player->rotation[1] + player->unk_0C0);
shell->velocity[0] = somePosVel[0];
shell->velocity[1] = somePosVel[1];
shell->velocity[2] = somePosVel[2];
@ -1537,7 +1537,7 @@ void update_actor_red_blue_shell(struct ShellActor *shell) {
switch (shell->state) {
case HELD_SHELL:
player = &gPlayers[shell->playerId];
func_802B0210(&player->unk_110, &shell->unk30);
copy_collision(&player->unk_110, &shell->unk30);
somePosVel[0] = 0.0f;
somePosVel[1] = player->boundingBoxSize;
somePosVel[2] = -(player->boundingBoxSize + shell->boundingBoxSize + 2.0f);
@ -1612,7 +1612,7 @@ void update_actor_red_blue_shell(struct ShellActor *shell) {
somePosVel[0] = 0.0f;
somePosVel[1] = 0.0f;
somePosVel[2] = temp_f0;
func_802B64C4(somePosVel, (s16) (player->unk_02C[1] + player->unk_0C0));
func_802B64C4(somePosVel, (s16) (player->rotation[1] + player->unk_0C0));
shell->velocity[0] = somePosVel[0];
shell->velocity[1] = somePosVel[1];
shell->velocity[2] = somePosVel[2];

View File

@ -4,7 +4,7 @@
#include "common_structs.h"
#include "actor_types.h"
void func_802B0210(Collision*, Collision*);
void copy_collision(Collision*, Collision*);
void func_802B02B4(struct ShellActor*, s32);
void func_802B039C(struct BananaActor*);
void func_802B0464(s16);
@ -27,7 +27,7 @@ void func_802B2914(struct BananaBunchParent*, Player*, s16);
s32 use_fake_itembox_item(Player*);
s32 use_banana_item(Player*);
void use_thunder_item(Player*);
void func_802B2FA0(Player*);
void player_use_item(Player*);
void func_802B30EC(void);
void update_actor_green_shell(struct ShellActor*);
void func_802B3B44(struct ShellActor*);

View File

@ -502,7 +502,7 @@ void start_race(void) {
f32 func_8028EE8C(s32 arg0) {
f32 temp_v0 = gPlayers[arg0].pos[2];
f32 temp_v1 = gPlayers[arg0].rotZ;
f32 temp_v1 = gPlayers[arg0].copy_rotation_z;
f32 temp_f14 = D_8015F8D0[2] - temp_v0;
f32 temp_f16 = temp_v1 - D_8015F8D0[2];
return gCourseTimer - ((0.01666666f * temp_f14) / (temp_f14 + temp_f16));

View File

@ -1258,7 +1258,7 @@ void func_8029569C(void) {
}
}
void func_80295A38(struct UnkStruct_800DC5EC *arg0) {
void render_course(struct UnkStruct_800DC5EC *arg0) {
func_802B5D64((uintptr_t) D_800DC610, D_802B87D4, 0, 1);
if (creditsRenderMode) {

View File

@ -27,7 +27,7 @@ void render_double_deck(struct UnkStruct_800DC5EC*);
void render_dks_jungle_parkway(struct UnkStruct_800DC5EC*);
void render_big_donut(struct UnkStruct_800DC5EC*);
void func_8029569C(void);
void func_80295A38(struct UnkStruct_800DC5EC*);
void render_course(struct UnkStruct_800DC5EC*);
void func_80295BF8(s32);
void func_80295C6C(void);
void func_80295D50(s16, s16);

View File

@ -803,7 +803,7 @@ void func_802A59A4(void) {
} else {
gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->mtxLookAt[0]), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
}
func_80295A38(D_800DC5EC);
render_course(D_800DC5EC);
if (D_800DC5C8 == 1) {
gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->mtxLookAt[0]), G_MTX_NOPUSH | G_MTX_MUL | G_MTX_PROJECTION);
mtxf_identity(matrix);
@ -857,7 +857,7 @@ void func_802A5CB4(void) {
} else {
gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->mtxLookAt[0]), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
}
func_80295A38(D_800DC5EC);
render_course(D_800DC5EC);
if (D_800DC5C8 == 1) {
gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->mtxLookAt[0]), G_MTX_NOPUSH | G_MTX_MUL | G_MTX_PROJECTION);
@ -913,7 +913,7 @@ void func_802A5FAC(void) {
} else {
gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->mtxLookAt[1]), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
}
func_80295A38(D_800DC5F0);
render_course(D_800DC5F0);
if (D_800DC5C8 == 1) {
gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->mtxLookAt[1]), G_MTX_NOPUSH | G_MTX_MUL | G_MTX_PROJECTION);
mtxf_identity(matrix);
@ -971,7 +971,7 @@ void func_802A62A4(void) {
} else {
gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->mtxLookAt[0]), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
}
func_80295A38(D_800DC5EC);
render_course(D_800DC5EC);
if (D_800DC5C8 == 1) {
gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->mtxLookAt[0]), G_MTX_NOPUSH | G_MTX_MUL | G_MTX_PROJECTION);
mtxf_identity(matrix);
@ -1028,7 +1028,7 @@ void func_802A65B8(void) {
} else {
gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->mtxLookAt[1]), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
}
func_80295A38(D_800DC5F0);
render_course(D_800DC5F0);
if (D_800DC5C8 == 1) {
gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->mtxLookAt[1]), G_MTX_NOPUSH | G_MTX_MUL | G_MTX_PROJECTION);
mtxf_identity(matrix);
@ -1082,7 +1082,7 @@ void func_802A68CC(void) {
} else {
gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->mtxLookAt[0]), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
}
func_80295A38(D_800DC5EC);
render_course(D_800DC5EC);
if (D_800DC5C8 == 1) {
gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->mtxLookAt[0]), G_MTX_NOPUSH | G_MTX_MUL | G_MTX_PROJECTION);
mtxf_identity(matrix);
@ -1136,7 +1136,7 @@ void func_802A6BB0(void) {
} else {
gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->mtxLookAt[1]), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
}
func_80295A38(D_800DC5F0);
render_course(D_800DC5F0);
if (D_800DC5C8 == 1) {
gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->mtxLookAt[1]), G_MTX_NOPUSH | G_MTX_MUL | G_MTX_PROJECTION);
mtxf_identity(matrix);
@ -1191,7 +1191,7 @@ void func_802A6E94(void) {
} else {
gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->mtxLookAt[2]), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
}
func_80295A38(D_800DC5F4);
render_course(D_800DC5F4);
if (D_800DC5C8 == 1) {
gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->mtxLookAt[2]), G_MTX_NOPUSH | G_MTX_MUL | G_MTX_PROJECTION);
mtxf_identity(matrix);
@ -1254,7 +1254,7 @@ void func_802A7178(void) {
} else {
gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->mtxLookAt[3]), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
}
func_80295A38(D_800DC5F8);
render_course(D_800DC5F8);
if (D_800DC5C8 == 1) {
gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->mtxLookAt[3]), G_MTX_NOPUSH | G_MTX_MUL | G_MTX_PROJECTION);
mtxf_identity(matrix);

View File

@ -153,12 +153,12 @@ u16 func_8001FD78(Player *player, f32 posX, UNUSED f32 arg2, f32 posZ) {
ret = FALSE;
sp58 = (70.0f * coss(((player->unk_0C0 - player->unk_02C[1]) - 0x71C))) + player->pos[2];
sp64 = (70.0f * sins(((player->unk_0C0 - player->unk_02C[1]) - 0x71C))) + player->pos[0];
sp54 = (70.0f * coss(((player->unk_0C0 - player->unk_02C[1]) + 0x71C))) + player->pos[2];
sp60 = (70.0f * sins(((player->unk_0C0 - player->unk_02C[1]) + 0x71C))) + player->pos[0];
sp50 = (10.0f * coss(((player->unk_0C0 - player->unk_02C[1]) + 0x1C70))) + player->pos[2];
sp5c = (10.0f * sins(((player->unk_0C0 - player->unk_02C[1]) + 0x1C70))) + player->pos[0];
sp58 = (70.0f * coss(((player->unk_0C0 - player->rotation[1]) - 0x71C))) + player->pos[2];
sp64 = (70.0f * sins(((player->unk_0C0 - player->rotation[1]) - 0x71C))) + player->pos[0];
sp54 = (70.0f * coss(((player->unk_0C0 - player->rotation[1]) + 0x71C))) + player->pos[2];
sp60 = (70.0f * sins(((player->unk_0C0 - player->rotation[1]) + 0x71C))) + player->pos[0];
sp50 = (10.0f * coss(((player->unk_0C0 - player->rotation[1]) + 0x1C70))) + player->pos[2];
sp5c = (10.0f * sins(((player->unk_0C0 - player->rotation[1]) + 0x1C70))) + player->pos[0];
temp_f14 = ((sp58 - posZ) * (sp60 - posX)) - ((sp54 - posZ) * (sp64 - posX));
thing0 = ((sp54 - posZ) * (sp5c - posX)) - ((sp50 - posZ) * (sp60 - posX));
@ -1230,8 +1230,8 @@ void render_player_shadow(Player *player, s8 arg1, s8 arg2) {
UNUSED Vec3f pad2;
f32 var_f2;
temp_t9 = (u16)(player->unk_048[arg2] + player->unk_02C[1] + player->unk_0C0) / 128; // << 7) & 0xFFFF;
spC0 = -player->unk_02C[1] - player->unk_0C0;
temp_t9 = (u16)(player->unk_048[arg2] + player->rotation[1] + player->unk_0C0) / 128; // << 7) & 0xFFFF;
spC0 = -player->rotation[1] - player->unk_0C0;
spB0 = -coss(temp_t9 << 7) * 2;
spAC = -sins(temp_t9 << 7) * 2;
@ -1305,8 +1305,8 @@ void render_player_shadow_credits(Player *player, s8 playerId, s8 arg2) {
UNUSED Vec3f pad3;
Vec3f sp94 = { 9.0f, 7.0f, 5.0f };
temp_t9 = (u16)(player->unk_048[arg2] + player->unk_02C[1] + player->unk_0C0) / 128;
spC0 = -player->unk_02C[1] - player->unk_0C0;
temp_t9 = (u16)(player->unk_048[arg2] + player->rotation[1] + player->unk_0C0) / 128;
spC0 = -player->rotation[1] - player->unk_0C0;
spB0 = -coss(temp_t9 << 7) * 3;
spAC = -sins(temp_t9 << 7) * 3;
@ -1365,7 +1365,7 @@ void kart_render(Player *player, s8 playerId, s8 arg2, s8 arg3) {
sp154[0] = player->pos[0] + sp148;
sp154[2] = player->pos[2] + sp140;
} else {
thing = (u16)(player->unk_048[arg2] + player->unk_02C[1] + player->unk_0C0);
thing = (u16)(player->unk_048[arg2] + player->rotation[1] + player->unk_0C0);
temp_v1 = player->unk_0CC[arg2] * sins(thing);
if ((player->effects & 8) == 8) {
sp14C[0] = cameras[arg2].rot[0] - 0x4000;
@ -1496,7 +1496,7 @@ void ghost_render(Player *player, s8 playerId, s8 arg2, s8 arg3) {
} else {
spC2 = 0x0070;
}
thing = (u16)(player->unk_048[arg2] - player->unk_02C[1]);
thing = (u16)(player->unk_048[arg2] - player->rotation[1]);
spD4[0] = (-(s16)(sins(thing) * (0.0f * 0.0f)) * 0.8);
spD4[1] = player->unk_048[arg2];
spD4[2] = player->unk_050[arg2];
@ -1552,9 +1552,9 @@ void func_80025DE8(Player *player, s8 playerId, s8 arg2, s8 arg3) {
Vec3f sp9C;
Vec3s sp94;
sp9C[0] = player->pos[0] + (sins(-player->unk_02C[1]) * -1.5);
sp9C[0] = player->pos[0] + (sins(-player->rotation[1]) * -1.5);
sp9C[1] = ((player->pos[1] - player->boundingBoxSize) + player->unk_108) + 0.1;
sp9C[2] = player->pos[2] + (coss(-player->unk_02C[1]) * -1.5);
sp9C[2] = player->pos[2] + (coss(-player->rotation[1]) * -1.5);
sp94[0] = -0x00B6;
sp94[1] = player->unk_048[arg2];
sp94[2] = player->unk_050[arg2];

View File

@ -111,22 +111,22 @@ void spawn_player(Player *player, s8 playerIndex, f32 startingRow, f32 startingC
ret = func_802AE1C0(startingRow, arg4 + 50.0f, startingColumn) + player->boundingBoxSize;
player->pos[2] = startingColumn;
player->pos[1] = ret;
player->rotX = startingRow;
player->rotY = ret;
player->copy_rotation_x = startingRow;
player->copy_rotation_y = ret;
D_80164510[playerIndex] = ret;
player->unk_02C[0] = 0;
player->rotZ = startingColumn;
player->rotation[0] = 0;
player->copy_rotation_z = startingColumn;
player->unk_05C = 1.0f;
player->unk_058 = 0.0f;
player->unk_060 = 0.0f;
player->velocity[0] = 0.0f;
player->velocity[1] = 0.0f;
player->velocity[2] = 0.0f;
player->unk_02C[1] = arg5;
player->unk_02C[2] = 0;
player->rotation[1] = arg5;
player->rotation[2] = 0;
player->unk_0FA = 0;
player->unk_002 = 0;
@ -359,8 +359,8 @@ void spawn_player(Player *player, s8 playerIndex, f32 startingRow, f32 startingC
if (gModeSelection == BATTLE) {
func_8006B7E4(player, playerIndex);
}
calculate_orientation_matrix(player->unk_150, player->unk_058, player->unk_05C, player->unk_060, player->unk_02C[1]);
calculate_orientation_matrix(player->orientationMatrix, player->unk_058, player->unk_05C, player->unk_060, player->unk_02C[1]);
calculate_orientation_matrix(player->unk_150, player->unk_058, player->unk_05C, player->unk_060, player->rotation[1]);
calculate_orientation_matrix(player->orientationMatrix, player->unk_058, player->unk_05C, player->unk_060, player->rotation[1]);
}
void func_80039AE4(void) {
@ -1110,18 +1110,18 @@ void func_8003D080(void) {
switch (gModeSelection) {
case GRAND_PRIX:
if (gCurrentCourseId == COURSE_TOADS_TURNPIKE) {
camera_init(0.0f, player->pos[1], D_80165230[7], player->unk_02C[1], 8, 0);
camera_init(0.0f, player->pos[1], D_80165230[7], player->rotation[1], 8, 0);
} else {
camera_init((D_80165210[7] + D_80165210[6]) / 2, player->pos[1], D_80165230[7], player->unk_02C[1], 8, 0);
camera_init((D_80165210[7] + D_80165210[6]) / 2, player->pos[1], D_80165230[7], player->rotation[1], 8, 0);
}
break;
case TIME_TRIALS:
camera_init(player->pos[0], player->pos[1], player->pos[2], player->unk_02C[1], 1, 0);
camera_init(player->pos[0], player->pos[1], player->pos[2], player->rotation[1], 1, 0);
break;
default:
camera_init(player->pos[0], player->pos[1], player->pos[2], player->unk_02C[1], 10, 0);
camera_init(player->pos[0], player->pos[1], player->pos[2], player->rotation[1], 10, 0);
break;
}
break;
@ -1130,45 +1130,45 @@ void func_8003D080(void) {
case SCREEN_MODE_2P_SPLITSCREEN_VERTICAL:
switch (gModeSelection) {
case GRAND_PRIX:
camera_init(player->pos[0], player->pos[1], player->pos[2], player->unk_02C[1], 1, 0);
camera_init(player->pos[0], player->pos[1], player->pos[2], player->rotation[1], 1, 0);
player++;
camera_init(player->pos[0], player->pos[1], player->pos[2], player->unk_02C[1], 1, 1);
camera_init(player->pos[0], player->pos[1], player->pos[2], player->rotation[1], 1, 1);
break;
case BATTLE:
camera_init(player->pos[0], player->pos[1], player->pos[2], player->unk_02C[1], 9, 0);
camera_init(player->pos[0], player->pos[1], player->pos[2], player->rotation[1], 9, 0);
player++;
camera_init(player->pos[0], player->pos[1], player->pos[2], player->unk_02C[1], 9, 1);
camera_init(player->pos[0], player->pos[1], player->pos[2], player->rotation[1], 9, 1);
break;
default:
camera_init(player->pos[0], player->pos[1], player->pos[2], player->unk_02C[1], 1, 0);
camera_init(player->pos[0], player->pos[1], player->pos[2], player->rotation[1], 1, 0);
player++;
camera_init(player->pos[0], player->pos[1], player->pos[2], player->unk_02C[1], 1, 1);
camera_init(player->pos[0], player->pos[1], player->pos[2], player->rotation[1], 1, 1);
break;
}
break;
case SCREEN_MODE_3P_4P_SPLITSCREEN:
if (gModeSelection == BATTLE) {
camera_init(player->pos[0], player->pos[1], player->pos[2], player->unk_02C[1], 9, 0);
camera_init(player->pos[0], player->pos[1], player->pos[2], player->rotation[1], 9, 0);
player++;
camera_init(player->pos[0], player->pos[1], player->pos[2], player->unk_02C[1], 9, 1);
camera_init(player->pos[0], player->pos[1], player->pos[2], player->rotation[1], 9, 1);
player++;
camera_init(player->pos[0], player->pos[1], player->pos[2], player->unk_02C[1], 9, 2);
camera_init(player->pos[0], player->pos[1], player->pos[2], player->rotation[1], 9, 2);
if (gPlayerCountSelection1 == 4) {
player++;
camera_init(player->pos[0], player->pos[1], player->pos[2], player->unk_02C[1], 9, 3);
camera_init(player->pos[0], player->pos[1], player->pos[2], player->rotation[1], 9, 3);
}
} else {
camera_init(player->pos[0], player->pos[1], player->pos[2], player->unk_02C[1], 1, 0);
camera_init(player->pos[0], player->pos[1], player->pos[2], player->rotation[1], 1, 0);
player++;
camera_init(player->pos[0], player->pos[1], player->pos[2], player->unk_02C[1], 1, 1);
camera_init(player->pos[0], player->pos[1], player->pos[2], player->rotation[1], 1, 1);
player++;
camera_init(player->pos[0], player->pos[1], player->pos[2], player->unk_02C[1], 1, 2);
camera_init(player->pos[0], player->pos[1], player->pos[2], player->rotation[1], 1, 2);
if (gPlayerCountSelection1 == 4) {
player++;
camera_init(player->pos[0], player->pos[1], player->pos[2], player->unk_02C[1], 1, 3);
camera_init(player->pos[0], player->pos[1], player->pos[2], player->rotation[1], 1, 3);
}
}
break;
@ -1176,24 +1176,24 @@ void func_8003D080(void) {
} else {
switch (gActiveScreenMode) {
case SCREEN_MODE_1P:
camera_init(player->pos[0], player->pos[1], player->pos[2], player->unk_02C[1], 3, 0);
camera_init(player->pos[0], player->pos[1], player->pos[2], player->rotation[1], 3, 0);
break;
case SCREEN_MODE_2P_SPLITSCREEN_HORIZONTAL:
case SCREEN_MODE_2P_SPLITSCREEN_VERTICAL:
camera_init(player->pos[0], player->pos[1], player->pos[2], player->unk_02C[1], 3, 0);
camera_init(player->pos[0], player->pos[1], player->pos[2], player->rotation[1], 3, 0);
player++;
camera_init(player->pos[0], player->pos[1], player->pos[2], player->unk_02C[1], 3, 1);
camera_init(player->pos[0], player->pos[1], player->pos[2], player->rotation[1], 3, 1);
break;
case SCREEN_MODE_3P_4P_SPLITSCREEN:
camera_init(player->pos[0], player->pos[1], player->pos[2], player->unk_02C[1], 3, 0);
camera_init(player->pos[0], player->pos[1], player->pos[2], player->rotation[1], 3, 0);
player++;
camera_init(player->pos[0], player->pos[1], player->pos[2], player->unk_02C[1], 3, 1);
camera_init(player->pos[0], player->pos[1], player->pos[2], player->rotation[1], 3, 1);
player++;
camera_init(player->pos[0], player->pos[1], player->pos[2], player->unk_02C[1], 3, 2);
camera_init(player->pos[0], player->pos[1], player->pos[2], player->rotation[1], 3, 2);
player++;
camera_init(player->pos[0], player->pos[1], player->pos[2], player->unk_02C[1], 3, 3);
camera_init(player->pos[0], player->pos[1], player->pos[2], player->rotation[1], 3, 3);
break;
}
}
@ -1255,8 +1255,8 @@ void func_8003DB5C(void) {
Player *player = gPlayerOne;
s32 playerId;
camera_init(player->pos[0], player->pos[1], player->pos[2], player->unk_02C[1], 3, 0);
camera_init(player->pos[0], player->pos[1], player->pos[2], player->unk_02C[1], 3, 1);
camera_init(player->pos[0], player->pos[1], player->pos[2], player->rotation[1], 3, 0);
camera_init(player->pos[0], player->pos[1], player->pos[2], player->rotation[1], 3, 1);
for (playerId = 0; playerId < NUM_PLAYERS; playerId++, player++) {
load_kart_palette(player, playerId, 1, 0);

View File

@ -343,10 +343,10 @@ Variable Name | Memory Address
[func_8001A588](@ref func_8001A588) | 0x8001A588
[func_8001AAAC](@ref func_8001AAAC) | 0x8001AAAC
[func_8001AB00](@ref func_8001AB00) | 0x8001AB00
[func_8001AB74](@ref func_8001AB74) | 0x8001AB74
[cpu_decisions_branch_item](@ref cpu_decisions_branch_item) | 0x8001AB74
[func_8001ABE0](@ref func_8001ABE0) | 0x8001ABE0
[func_8001ABEC](@ref func_8001ABEC) | 0x8001ABEC
[func_8001AC10](@ref func_8001AC10) | 0x8001AC10
[cpu_use_item_strategy](@ref cpu_use_item_strategy) | 0x8001AC10
[func_8001BE78](@ref func_8001BE78) | 0x8001BE78
[func_8001C05C](@ref func_8001C05C) | 0x8001C05C
[func_8001C14C](@ref func_8001C14C) | 0x8001C14C
@ -5097,7 +5097,7 @@ Variable Name | Memory Address
[render_dks_jungle_parkway](@ref render_dks_jungle_parkway) | 0x80295310
[render_big_donut](@ref render_big_donut) | 0x802954E8
[func_8029569C](@ref func_8029569C) | 0x8029569C
[func_80295A38](@ref func_80295A38) | 0x80295A38
[render_course](@ref render_course) | 0x80295A38
[func_80295BF8](@ref func_80295BF8) | 0x80295BF8
[func_80295C6C](@ref func_80295C6C) | 0x80295C6C
[func_80295D50](@ref func_80295D50) | 0x80295D50
@ -5357,7 +5357,7 @@ Variable Name | Memory Address
[find_vtx_and_set_colours](@ref find_vtx_and_set_colours) | 0x802AF8BC
[subtract_scaled_vector](@ref subtract_scaled_vector) | 0x802AF9F0
[process_collision](@ref process_collision) | 0x802AFA34
[func_802B0210](@ref func_802B0210) | 0x802B0210
[copy_collision](@ref copy_collision) | 0x802B0210
[func_802B02B4](@ref func_802B02B4) | 0x802B02B4
[func_802B039C](@ref func_802B039C) | 0x802B039C
[func_802B0464](@ref func_802B0464) | 0x802B0464
@ -5380,7 +5380,7 @@ Variable Name | Memory Address
[use_fake_itembox_item](@ref use_fake_itembox_item) | 0x802B2C40
[use_banana_item](@ref use_banana_item) | 0x802B2D70
[use_thunder_item](@ref use_thunder_item) | 0x802B2EBC
[func_802B2FA0](@ref func_802B2FA0) | 0x802B2FA0
[player_use_item](@ref player_use_item) | 0x802B2FA0
[func_802B30EC](@ref func_802B30EC) | 0x802B30EC
[update_actor_green_shell](@ref update_actor_green_shell) | 0x802B32C4
[func_802B3B44](@ref func_802B3B44) | 0x802B3B44