Document render/update objects (#565)

* Document objects related code.
  * Including render/update objects code
* Various renamings
This commit is contained in:
coco875
2024-03-04 17:02:45 +01:00
committed by GitHub
parent 1aa6824d33
commit f99e242d97
72 changed files with 3063 additions and 3014 deletions
-3
View File
@@ -1,3 +0,0 @@
void update_actor_paddle_wheel(struct PaddleWheelBoat *boat) {
boat->wheelRot += 0x38E;
}
+45
View File
@@ -0,0 +1,45 @@
#include <ultra64.h>
#include <macros.h>
#include <actor_types.h>
#include "camera.h"
#include "main.h"
#include "actors.h"
#include "courses/all_course_data.h"
#include <PR/gbi.h>
// This likely attaches the paddle wheel to the boat
void render_actor_paddle_boat(Camera *arg0, struct PaddleWheelBoat *boat, UNUSED Mat4 arg2, u16 pathCounter) {
UNUSED s32 pad[3];
Vec3f sp120;
Mat4 spE0;
Mat4 spA0;
Mat4 sp60;
f32 temp;
if ((pathCounter > 20) && (pathCounter < 25)) { return; }
temp = is_within_render_distance(arg0->pos, boat->pos, arg0->rot[1], 90000.0f, gCameraZoom[arg0 - camera1], 9000000.0f);
if (temp < 0.0f) { return; }
gSPSetLights1(gDisplayListHead++, D_800DC610[1]);
gSPSetGeometryMode(gDisplayListHead++, G_SHADE | G_LIGHTING | G_SHADING_SMOOTH);
mtxf_pos_rotation_xyz(spE0, boat->pos, boat->boatRot);
if (render_set_position(spE0, 1) != 0) {
gSPDisplayList(gDisplayListHead++, &d_course_dks_jungle_parkway_dl_E730);
gSPDisplayList(gDisplayListHead++, &d_course_dks_jungle_parkway_dl_E058);
mtxf_rotate_x(spE0, boat->wheelRot);
vec3f_set(sp120, 0, 16.0f, -255.0f);
mtxf_translate(spA0, sp120);
mtxf_multiplication(sp60, spE0, spA0);
if (render_set_position(sp60, 3) != 0) {
gSPClearGeometryMode(gDisplayListHead++, G_CULL_BACK);
gSPDisplayList(gDisplayListHead++, &d_course_dks_jungle_parkway_dl_FC28);
gSPPopMatrix(gDisplayListHead++, G_MTX_MODELVIEW);
gSPSetGeometryMode(gDisplayListHead++, G_CULL_BACK);
}
}
}
+11
View File
@@ -0,0 +1,11 @@
#include <ultra64.h>
#include <actor_types.h>
/**
* @brief Rotates paddle boat's wheel.
*
* @param boat
*/
void update_actor_paddle_boat(struct PaddleWheelBoat *boat) {
boat->wheelRot += 0x38E;
}
+4 -4
View File
@@ -200,7 +200,7 @@ void setup_race(void) {
func_802969F8();
func_80005310();
func_8003D080();
init_object_list();
init_hud();
D_800DC510 = 0;
gNumSpawnedShells = 0;
D_800DC5B8 = 0;
@@ -353,11 +353,11 @@ void func_80003040(void) {
break;
case COURSE_WARIO_STADIUM:
vec3f_set(position, -131.0f, 83.0f, 286.0f);
addActorToEmptySlot(position, rotation, velocity, ACTOR_WARIO_STADIUM_SIGN);
addActorToEmptySlot(position, rotation, velocity, ACTOR_WARIO_SIGN);
vec3f_set(position, -2353.0f, 72.0f, -1608.0f);
addActorToEmptySlot(position, rotation, velocity, ACTOR_WARIO_STADIUM_SIGN);
addActorToEmptySlot(position, rotation, velocity, ACTOR_WARIO_SIGN);
vec3f_set(position, -2622.0f, 79.0f, 739.0f);
addActorToEmptySlot(position, rotation, velocity, ACTOR_WARIO_STADIUM_SIGN);
addActorToEmptySlot(position, rotation, velocity, ACTOR_WARIO_SIGN);
// d_course_wario_stadium_packed_dl_C50
find_vtx_and_set_colours(0x07000C50, 0x64, 0xFF, 0xFF, 0xFF);
// d_course_wario_stadium_packed_dl_BD8
+12 -12
View File
@@ -103,7 +103,7 @@ void func_80004A1C(animation_type_1 *arg0, s16 *arg1, animation_type_3_triplet a
}
}
void func_80004C30(animation_type_1 *arg0, animation_type_2 *arg1, s16 arg2) {
void func_80004C30(animation_type_1 *arg0, animation_type_2 *arg1, s16 timeCycle) {
UNUSED u32 *temp;
s16 *sp40;
s32 some_offset;
@@ -116,8 +116,8 @@ void func_80004C30(animation_type_1 *arg0, animation_type_2 *arg1, s16 arg2) {
D_80162D7A = 0;
D_80162D76 = 0;
for (someIndex = 0; someIndex < 3; someIndex++) {
if (arg2 < (*temp_v0)[someIndex].some_limiter) {
some_offset = arg2;
if (timeCycle < (*temp_v0)[someIndex].some_limiter) {
some_offset = timeCycle;
} else {
some_offset = 0;
}
@@ -142,7 +142,7 @@ void func_80004C30(animation_type_1 *arg0, animation_type_2 *arg1, s16 arg2) {
gSPPopMatrix(gDisplayListHead++, G_MTX_MODELVIEW);
D_80162D7A -= 1;
}
func_80004A1C(arg0, sp40, *temp_v0, (s32) arg2);
func_80004A1C(arg0, sp40, *temp_v0, (s32) timeCycle);
D_80162D78 = 0;
temp_v0++;
break;
@@ -151,7 +151,7 @@ void func_80004C30(animation_type_1 *arg0, animation_type_2 *arg1, s16 arg2) {
} while (new_var != 3);
}
s16 func_80004DFC(animation_type_1 *arg0, animation_type_2 **arg1, s16 arg2, s16 arg3) {
s16 func_80004DFC(animation_type_1 *arg0, animation_type_2 **arg1, s16 arg2, s16 timeCycle) {
animation_type_1 *sp24;
animation_type_2 *temp_v0;
animation_type_2 **sp20;
@@ -159,15 +159,15 @@ s16 func_80004DFC(animation_type_1 *arg0, animation_type_2 **arg1, s16 arg2, s16
sp24 = segmented_to_virtual(arg0);
sp20 = segmented_to_virtual(arg1); // Convert the array's address
temp_v0 = segmented_to_virtual(sp20[arg2]); // Convert an array element's address
if (arg3 >= temp_v0->animation_length) {
arg3 = 0;
if (timeCycle >= temp_v0->animation_length) {
timeCycle = 0;
}
func_80004C30(sp24, temp_v0, arg3);
arg3++;
if (arg3 >= temp_v0->animation_length) {
arg3 = 0;
func_80004C30(sp24, temp_v0, timeCycle);
timeCycle++;
if (timeCycle >= temp_v0->animation_length) {
timeCycle = 0;
}
return arg3;
return timeCycle;
}
s16 func_80004EAC(void *addr, s16 offset) {
+101 -101
View File
@@ -12,11 +12,11 @@
#include "actors_extended.h"
#include "render_player.h"
#include "player_controller.h"
#include "code_80071F00.h"
#include "update_objects.h"
#include "collision.h"
#include <actor_types.h>
#include "vehicles.h"
#include "hud_renderer.h"
#include "render_objects.h"
#include "code_80057C60.h"
#include "bomb_kart.h"
#include "courses/all_course_data.h"
@@ -139,7 +139,7 @@ s32 D_8016359C;
TrainStuff gTrainList[NUM_TRAINS];
u16 isCrossingTriggeredByIndex[2];
u16 D_801637BC[2];
PaddleWheelBoatStuff gFerries[NUM_PADDLE_WHEEL_BOATS];
PaddleBoatStuff gPaddleBoats[NUM_PADDLE_BOATS];
VehicleStuff gBoxTruckList[NUM_RACE_BOX_TRUCKS];
VehicleStuff gSchoolBusList[NUM_RACE_SCHOOL_BUSES];
VehicleStuff gTankerTruckList[NUM_RACE_TANKER_TRUCKS];
@@ -551,7 +551,7 @@ s16 func_80005FD0(Vec3f arg0, Vec3f arg1) {
s16 temp_ret;
s16 phi_v1;
temp_ret = get_angle_between_points(arg0, arg1);
temp_ret = get_angle_between_two_vectors(arg0, arg1);
phi_v1 = temp_ret;
if (gIsMirrorMode != 0) {
phi_v1 = -temp_ret;
@@ -1608,9 +1608,9 @@ block_25:
GLOBAL_ASM("asm/non_matchings/code_80005FD0/func_8000929C.s")
#endif
void func_800097E0(void) {
void update_vehicles(void) {
s32 i;
func_8000EF20();
generate_player_smoke();
D_8016337C++;
if (gCurrentCourseId == COURSE_AWARD_CEREMONY) {
@@ -1629,10 +1629,10 @@ void func_800097E0(void) {
switch(gCurrentCourseId) {
case COURSE_KALAMARI_DESERT:
func_80012AC0();
update_vehicle_trains();
break;
case COURSE_DK_JUNGLE:
func_800133C4();
update_vehicle_paddle_boats();
break;
case COURSE_TOADS_TURNPIKE:
func_8001487C();
@@ -1876,7 +1876,7 @@ void func_80009B60(s32 playerId) {
func_8000BBD8(stackPadding1A, D_80163090[playerId], D_80163448);
}
}
player->rotation[1] = -get_angle_between_points(player->pos, D_80162FA0);
player->rotation[1] = -get_angle_between_two_vectors(player->pos, D_80162FA0);
} else {
player->rotation[1] = D_80164590[D_80163448][(D_801630E0 + 4) % D_80164430];
}
@@ -1889,7 +1889,7 @@ void func_80009B60(s32 playerId) {
player->effects |= 0x10;
}
if (D_801630E8[playerId] != 0) {
D_80163300[playerId] = -get_angle_between_points(&player->copy_rotation_x, player->pos);
D_80163300[playerId] = -get_angle_between_two_vectors(&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) {
@@ -1995,8 +1995,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->rotation[1]);
stackPadding19 = -get_angle_between_points(player->pos, D_80162FA0) - player->rotation[1];
// var_a2 = (-get_angle_between_two_vectors(player->pos, D_80162FA0)) - (var_a1 = player->rotation[1]);
stackPadding19 = -get_angle_between_two_vectors(player->pos, D_80162FA0) - player->rotation[1];
var_a1 = stackPadding19;
var_a2 = var_a1;
if ((s16) temp_f2 < var_a1) {
@@ -3174,7 +3174,7 @@ void func_8000DF8C(s32 bombKartId) {
D_80162FC0[0] = temp_v0_2->posX + sp118;
D_80162FC0[1] = temp_v0_2->posY;
D_80162FC0[2] = temp_v0_2->posZ + temp_f0_3;
spC2 = (get_angle_between_points(D_80162FB0, D_80162FC0) * 0xFFFF) / 65520;
spC2 = (get_angle_between_two_vectors(D_80162FB0, D_80162FC0) * 0xFFFF) / 65520;
break;
case 2:
var_s1 = (var_s1 + 4) % 360;
@@ -3194,7 +3194,7 @@ void func_8000DF8C(s32 bombKartId) {
D_80162FC0[0] = temp_v0_2->posX + sp118;
D_80162FC0[1] = temp_v0_2->posY;
D_80162FC0[2] = temp_v0_2->posZ + temp_f0_3;
spC2 = (get_angle_between_points(D_80162FB0, D_80162FC0) * 0xFFFF) / 65520;
spC2 = (get_angle_between_two_vectors(D_80162FB0, D_80162FC0) * 0xFFFF) / 65520;
break;
case 3:
var_f20 = bombKart->yPos + 3.5f;
@@ -3218,7 +3218,7 @@ void func_8000DF8C(s32 bombKartId) {
D_80162FC0[0] = temp_v0_4->posX;
D_80162FC0[1] = temp_v0_4->posY;
D_80162FC0[2] = temp_v0_4->posZ;
spC2 = (get_angle_between_points(D_80162FB0, D_80162FC0) * 0xFFFF) / 65520;
spC2 = (get_angle_between_two_vectors(D_80162FB0, D_80162FC0) * 0xFFFF) / 65520;
} else {
D_80162FB0[0] = var_f22;
D_80162FB0[1] = var_f20;
@@ -3226,7 +3226,7 @@ void func_8000DF8C(s32 bombKartId) {
D_80162FC0[0] = -2409.197f;
D_80162FC0[1] = 0.0f;
D_80162FC0[2] = -355.254f;
spC2 = (get_angle_between_points(D_80162FB0, D_80162FC0) * 0xFFFF) / 65520;
spC2 = (get_angle_between_two_vectors(D_80162FB0, D_80162FC0) * 0xFFFF) / 65520;
}
temp_f14 = ((D_80162FB0[0] + D_80162FC0[0]) * 0.5f) - var_f22;
temp_f16 = ((D_80162FB0[2] + D_80162FC0[2]) * 0.5f) - var_f24;
@@ -3256,7 +3256,7 @@ void func_8000DF8C(s32 bombKartId) {
D_80162FC0[1] = temp_v0_4->posY;
D_80162FC0[2] = temp_v0_4->posZ;
var_f20 += 3.0f - (var_s1 * 0.3f);
spC2 = (get_angle_between_points(D_80162FB0, D_80162FC0) * 0xFFFF) / 65520;
spC2 = (get_angle_between_two_vectors(D_80162FB0, D_80162FC0) * 0xFFFF) / 65520;
break;
default:
break;
@@ -3383,7 +3383,7 @@ void func_8000EEDC(void) {
}
}
void func_8000EF20(void) {
void generate_player_smoke(void) {
s32 someIndex;
f32 var_f20;
struct Actor *temp_s1;
@@ -3395,33 +3395,33 @@ void func_8000EF20(void) {
temp_s1 = &gActorList[var_s0->actorIndex];
var_s0->unk14++;
switch (var_s0->unk10) {
case 0:
if (var_s0->unk14 < 0xA) {
var_f20 = 0.3f;
} else {
var_f20 = 0.9f;
}
break;
case 1:
if (var_s0->unk14 < 0xA) {
var_f20 = 0.15f;
} else {
var_f20 = 0.45f;
}
break;
case 2:
if (var_s0->unk14 < 0xA) {
var_f20 = 0.15f;
} else {
var_f20 = 0.45f;
}
break;
default:
var_f20 = 1.0f;
break;
case 0:
if (var_s0->unk14 < 0xA) {
var_f20 = 0.3f;
} else {
var_f20 = 0.9f;
}
break;
case 1:
if (var_s0->unk14 < 0xA) {
var_f20 = 0.15f;
} else {
var_f20 = 0.45f;
}
break;
case 2:
if (var_s0->unk14 < 0xA) {
var_f20 = 0.15f;
} else {
var_f20 = 0.45f;
}
break;
default:
var_f20 = 1.0f;
break;
}
if (!(var_s0->unk14 & 1)) {
func_80076D70(temp_s1->pos, ((random_int(30) + 20) * var_f20) / 50.0f, var_s0->unk10);
init_smoke_particle(temp_s1->pos, ((random_int(30) + 20) * var_f20) / 50.0f, var_s0->unk10);
}
}
}
@@ -3930,7 +3930,7 @@ s16 func_80010CB0(s32 pathIndex, s32 waypointIndex) {
sp24[0] = temp_v0->posX;
sp24[1] = temp_v0->posY;
sp24[2] = temp_v0->posZ;
ret = get_angle_between_points(sp30, sp24);
ret = get_angle_between_two_vectors(sp30, sp24);
return -ret;
}
@@ -4452,7 +4452,7 @@ void init_course_vehicles(void) {
VehicleStuff *tempSchoolBus;
VehicleStuff *tempTankerTruck;
VehicleStuff *tempCar;
PaddleWheelBoatStuff *tempPaddleWheelBoat;
PaddleBoatStuff *tempPaddleWheelBoat;
Vec3s paddleWheelBoatRot;
s32 loopIndex;
s32 loopIndex2;
@@ -4497,8 +4497,8 @@ void init_course_vehicles(void) {
}
break;
case COURSE_DK_JUNGLE:
for(loopIndex = 0; loopIndex < NUM_ACTIVE_PADDLE_WHEEL_BOATS; loopIndex++) {
tempPaddleWheelBoat = &gFerries[loopIndex];
for(loopIndex = 0; loopIndex < NUM_ACTIVE_PADDLE_BOATS; loopIndex++) {
tempPaddleWheelBoat = &gPaddleBoats[loopIndex];
if(tempPaddleWheelBoat->isActive == 1) {
origXPos = tempPaddleWheelBoat->position[0];
origZPos = tempPaddleWheelBoat->position[2];
@@ -4506,7 +4506,7 @@ void init_course_vehicles(void) {
tempPaddleWheelBoat->velocity[0] = tempPaddleWheelBoat->position[0] - origXPos;
tempPaddleWheelBoat->velocity[2] = tempPaddleWheelBoat->position[2] - origZPos;
vec3s_set(paddleWheelBoatRot, 0, tempPaddleWheelBoat->rotY, 0);
tempPaddleWheelBoat->actorIndex = addActorToEmptySlot(tempPaddleWheelBoat->position, paddleWheelBoatRot, tempPaddleWheelBoat->velocity, ACTOR_PADDLE_WHEEL_BOAT);
tempPaddleWheelBoat->actorIndex = addActorToEmptySlot(tempPaddleWheelBoat->position, paddleWheelBoatRot, tempPaddleWheelBoat->velocity, ACTOR_PADDLE_BOAT);
}
}
break;
@@ -4632,7 +4632,7 @@ void func_80012A48(TrainCarStuff *trainCar, s16 arg1) {
trainCarActor->velocity[2] = trainCar->velocity[2];
}
void func_80012AC0(void) {
void update_vehicle_trains(void) {
UNUSED s32 pad[3];
f32 temp_f20;
TrainCarStuff *car;
@@ -4812,13 +4812,13 @@ void func_800131DC(s32 playerId) {
}
void func_800132F4(void) {
PaddleWheelBoatStuff *var_a1;
PaddleBoatStuff *var_a1;
s32 i;
PathNoY *temp_a2;
u16 temp;
for (i = 0; i < NUM_ACTIVE_PADDLE_WHEEL_BOATS; i++) {
for (i = 0; i < NUM_ACTIVE_PADDLE_BOATS; i++) {
temp = i * 0xB4;
var_a1 = &gFerries[i];
var_a1 = &gPaddleBoats[i];
temp_a2 = &D_80163598[temp];
var_a1->position[0] = temp_a2->x;
var_a1->position[1] = D_80162EB2;
@@ -4840,11 +4840,11 @@ void func_800132F4(void) {
D_801630FC = 0;
}
void func_800133C4(void) {
PaddleWheelBoatStuff *ferry;
void update_vehicle_paddle_boats(void) {
PaddleBoatStuff *paddleBoat;
PathNoY *waypoint;
s32 i;
struct Actor *ferryActor;
struct Actor *paddleBoatActor;
f32 temp_f26;
f32 temp_f28;
f32 temp_f30;
@@ -4857,92 +4857,92 @@ void func_800133C4(void) {
Vec3f sp78;
s32 pad2;
D_801630FC += 1;
for (i = 0; i < NUM_ACTIVE_PADDLE_WHEEL_BOATS; i++) {
ferry = &gFerries[i];
if (ferry->isActive == 1) {
temp_f26 = ferry->position[0];
temp_f28 = ferry->position[1];
temp_f30 = ferry->position[2];
func_8000DBAC(ferry->position, &ferry->waypointIndex, ferry->someMultiplier);
ferry->someFlags = func_800061DC(ferry->position, 2000.0f, ferry->someFlags);
if ((((s16) D_801630FC % 10) == 0) && (ferry->someFlags != 0)) {
sp78[0] = (f32) ((f64) ferry->position[0] - 30.0);
sp78[1] = (f32) ((f64) ferry->position[1] + 180.0);
sp78[2] = (f32) ((f64) ferry->position[2] + 45.0);
func_80006114(sp78, ferry->position, ferry->rotY);
for (i = 0; i < NUM_ACTIVE_PADDLE_BOATS; i++) {
paddleBoat = &gPaddleBoats[i];
if (paddleBoat->isActive == 1) {
temp_f26 = paddleBoat->position[0];
temp_f28 = paddleBoat->position[1];
temp_f30 = paddleBoat->position[2];
func_8000DBAC(paddleBoat->position, &paddleBoat->waypointIndex, paddleBoat->someMultiplier);
paddleBoat->someFlags = func_800061DC(paddleBoat->position, 2000.0f, paddleBoat->someFlags);
if ((((s16) D_801630FC % 10) == 0) && (paddleBoat->someFlags != 0)) {
sp78[0] = (f32) ((f64) paddleBoat->position[0] - 30.0);
sp78[1] = (f32) ((f64) paddleBoat->position[1] + 180.0);
sp78[2] = (f32) ((f64) paddleBoat->position[2] + 45.0);
func_80006114(sp78, paddleBoat->position, paddleBoat->rotY);
func_80075A6C(i, sp78, 1.1f);
sp78[0] = (f32) ((f64) ferry->position[0] + 30.0);
sp78[1] = (f32) ((f64) ferry->position[1] + 180.0);
sp78[2] = (f32) ((f64) ferry->position[2] + 45.0);
func_80006114(sp78, ferry->position, ferry->rotY);
sp78[0] = (f32) ((f64) paddleBoat->position[0] + 30.0);
sp78[1] = (f32) ((f64) paddleBoat->position[1] + 180.0);
sp78[2] = (f32) ((f64) paddleBoat->position[2] + 45.0);
func_80006114(sp78, paddleBoat->position, paddleBoat->rotY);
func_80075A6C(i, sp78, 1.1f);
}
if (random_int(100) == 0) {
if (random_int(2) == 0) {
func_800C98B8(ferry->position, ferry->velocity, SOUND_ARG_LOAD(0x19, 0x01, 0x80, 0x47));
func_800C98B8(paddleBoat->position, paddleBoat->velocity, SOUND_ARG_LOAD(0x19, 0x01, 0x80, 0x47));
} else {
func_800C98B8(ferry->position, ferry->velocity, SOUND_ARG_LOAD(0x19, 0x01, 0x80, 0x48));
func_800C98B8(paddleBoat->position, paddleBoat->velocity, SOUND_ARG_LOAD(0x19, 0x01, 0x80, 0x48));
}
}
sp94[0] = temp_f26;
sp94[1] = temp_f28;
sp94[2] = temp_f30;
waypoint = &D_80163598[(ferry->waypointIndex + 5) % D_8016359C];
waypoint = &D_80163598[(paddleBoat->waypointIndex + 5) % D_8016359C];
sp88[0] = (f32) waypoint->x;
sp88[1] = (f32) D_80162EB0;
sp88[2] = (f32) waypoint->z;
temp_a1 = func_80005FD0(sp94, sp88);
temp = temp_a1 - ferry->rotY;
temp = temp_a1 - paddleBoat->rotY;
var_v1 = temp;
if (var_v1 < 0) {
var_v1 = -var_v1;
}
if (var_v1 >= 0x1771) {
if (ferry->someMultiplier > 0.2) {
ferry->someMultiplier -= 0.04;
if (paddleBoat->someMultiplier > 0.2) {
paddleBoat->someMultiplier -= 0.04;
}
if (var_v1 >= 0x3D) {
var_v1 = 0x003C;
}
} else {
if (ferry->someMultiplier < 2.0) {
ferry->someMultiplier += 0.02;
if (paddleBoat->someMultiplier < 2.0) {
paddleBoat->someMultiplier += 0.02;
}
if (var_v1 >= 0x1F) {
var_v1 = 0x001E;
}
}
if (temp >= 0x8000) {
ferry->rotY -= var_v1;
paddleBoat->rotY -= var_v1;
} else if (temp > 0) {
ferry->rotY += var_v1;
paddleBoat->rotY += var_v1;
} else if (temp < -0x7FFF) {
ferry->rotY += var_v1;
paddleBoat->rotY += var_v1;
} else if (temp < 0) {
ferry->rotY -= var_v1;
paddleBoat->rotY -= var_v1;
}
ferry->velocity[0] = ferry->position[0] - temp_f26;
ferry->velocity[1] = ferry->position[1] - temp_f28;
ferry->velocity[2] = ferry->position[2] - temp_f30;
ferryActor = &gActorList[ferry->actorIndex];
ferryActor->pos[0] = ferry->position[0];
ferryActor->pos[1] = ferry->position[1];
ferryActor->pos[2] = ferry->position[2];
paddleBoat->velocity[0] = paddleBoat->position[0] - temp_f26;
paddleBoat->velocity[1] = paddleBoat->position[1] - temp_f28;
paddleBoat->velocity[2] = paddleBoat->position[2] - temp_f30;
paddleBoatActor = &gActorList[paddleBoat->actorIndex];
paddleBoatActor->pos[0] = paddleBoat->position[0];
paddleBoatActor->pos[1] = paddleBoat->position[1];
paddleBoatActor->pos[2] = paddleBoat->position[2];
if (gIsMirrorMode != 0) {
ferryActor->rot[1] = -ferry->rotY;
paddleBoatActor->rot[1] = -paddleBoat->rotY;
} else {
ferryActor->rot[1] = ferry->rotY;
paddleBoatActor->rot[1] = paddleBoat->rotY;
}
ferryActor->velocity[0] = ferry->velocity[0];
ferryActor->velocity[1] = ferry->velocity[1];
ferryActor->velocity[2] = ferry->velocity[2];
paddleBoatActor->velocity[0] = paddleBoat->velocity[0];
paddleBoatActor->velocity[1] = paddleBoat->velocity[1];
paddleBoatActor->velocity[2] = paddleBoat->velocity[2];
}
}
}
void func_80013854(Player *player) {
s32 someIndex;
PaddleWheelBoatStuff *tempPaddleWheelBoat;
PaddleBoatStuff *tempPaddleWheelBoat;
f32 x_diff;
f32 y_diff;
f32 z_diff;
@@ -4954,8 +4954,8 @@ void func_80013854(Player *player) {
playerX = player->pos[0];
playerY = player->pos[1];
playerZ = player->pos[2];
for (someIndex = 0; someIndex < NUM_ACTIVE_PADDLE_WHEEL_BOATS; someIndex++) {
tempPaddleWheelBoat = &gFerries[someIndex];
for (someIndex = 0; someIndex < NUM_ACTIVE_PADDLE_BOATS; someIndex++) {
tempPaddleWheelBoat = &gPaddleBoats[someIndex];
if (tempPaddleWheelBoat->isActive == 1) {
x_diff = playerX - tempPaddleWheelBoat->position[0];
y_diff = playerY - tempPaddleWheelBoat->position[1];
@@ -5091,7 +5091,7 @@ void func_80013D20(VehicleStuff *vehicle) {
sp34[0] = vehicle->position[1];
sp34[1] = 0.0f;
sp34[2] = sqrtf((temp_f0_3 * temp_f0_3) + (temp_f2_2 * temp_f2_2));
thing = get_angle_between_points(sp40, sp34);
thing = get_angle_between_two_vectors(sp40, sp34);
adjust_angle(&vehicle->rotation[0], -thing, 100);
vehicle->velocity[0] = vehicle->position[0] - sp5C;
vehicle->velocity[1] = vehicle->position[1] - sp58;
@@ -8176,7 +8176,7 @@ void func_8001C14C(void) {
void func_8001C3C4(s32 cameraId) {
if (gCurrentCourseId == COURSE_AWARD_CEREMONY) {
if (gBombKarts[0].waypointIndex >= 16) {
func_80057114(3);
func_80057114(PLAYER_FOUR);
}
} else {
if (gModeSelection == VERSUS) {
+4 -4
View File
@@ -83,7 +83,7 @@ void func_80009000(s32);
void func_800090F0(s32, Player*);
f32 func_80009258(s32, f32, f32);
void func_8000929C(s32, Player*);
void func_800097E0(void);
void update_vehicles(void);
void func_800098FC(s32, Player*);
void func_800099EC(s32, Player*);
void func_80009B60(s32);
@@ -123,7 +123,7 @@ s32 func_8000EDC8(s32);
s32 func_8000EE10(s32);
void func_8000EE58(s32);
void func_8000EEDC(void);
void func_8000EF20(void);
void generate_player_smoke(void);
void func_8000F0E0(void);
void func_8000F124(void);
@@ -159,13 +159,13 @@ void init_course_vehicles(void);
void func_80012780(TrainCarStuff*, s16*, u16);
void func_800127E0(void);
void func_80012A48(TrainCarStuff*, s16);
void func_80012AC0(void);
void update_vehicle_trains(void);
void func_80012DC0(s32, Player*);
void func_80013054(void);
void func_800131DC(s32);
void func_800132F4(void);
void func_800133C4(void);
void update_vehicle_paddle_boats(void);
void func_80013854(Player*);
void func_800139E4(f32, f32, s32, s32, VehicleStuff*, TrackWaypoint*);
f32 func_80013C74(s16, s16);
+266 -267
View File
File diff suppressed because it is too large Load Diff
+36 -26
View File
@@ -7,6 +7,16 @@
// code_80057C60
#define RENDER_SCREEN_MODE_1P_PLAYER_ONE PLAYER_ONE+SCREEN_MODE_1P
#define RENDER_SCREEN_MODE_2P_HORIZONTAL_PLAYER_ONE PLAYER_ONE+SCREEN_MODE_2P_SPLITSCREEN_HORIZONTAL
#define RENDER_SCREEN_MODE_2P_HORIZONTAL_PLAYER_TWO PLAYER_TWO+SCREEN_MODE_2P_SPLITSCREEN_HORIZONTAL
#define RENDER_SCREEN_MODE_2P_VERTICAL_PLAYER_ONE PLAYER_ONE+SCREEN_MODE_2P_SPLITSCREEN_VERTICAL+1
#define RENDER_SCREEN_MODE_2P_VERTICAL_PLAYER_TWO PLAYER_TWO+SCREEN_MODE_2P_SPLITSCREEN_VERTICAL+1
#define RENDER_SCREEN_MODE_3P_4P_PLAYER_ONE PLAYER_ONE+SCREEN_MODE_3P_4P_SPLITSCREEN+5
#define RENDER_SCREEN_MODE_3P_4P_PLAYER_TWO PLAYER_TWO+SCREEN_MODE_3P_4P_SPLITSCREEN+5
#define RENDER_SCREEN_MODE_3P_4P_PLAYER_THREE PLAYER_THREE+SCREEN_MODE_3P_4P_SPLITSCREEN+5
#define RENDER_SCREEN_MODE_3P_4P_PLAYER_FOUR PLAYER_FOUR+SCREEN_MODE_3P_4P_SPLITSCREEN+5
typedef struct {
char unk_00[0x4];
Vec3f unk_04;
@@ -23,21 +33,21 @@ void func_80057CE4(void);
void func_80057DD0(void);
void func_80057FC4(u32);
void func_80058090(u32);
void func_800581C8(void);
void func_800582CC(void);
void func_80058394(void);
void func_8005845C(void);
void func_80058538(u32);
void func_80058640(void);
void func_800586FC(void);
void func_800587A4(void);
void func_8005884C(void);
void func_800588F4(s32);
void func_80058B58(s32);
void render_object(u32);
void render_object_p1(void);
void render_object_p2(void);
void render_object_p3(void);
void render_object_p4(void);
void render_player_snow_effect(u32);
void render_player_snow_effect_one(void);
void render_player_snow_effect_two(void);
void render_player_snow_effect_three(void);
void render_player_snow_effect_four(void);
void render_object_for_player(s32);
void render_snowing_effect(s32);
void func_80058BF4(void);
void func_80058C20(u32);
void func_80058DB4(u32);
void render_hud(u32);
void func_80058F48(void);
void func_80058F78(void);
void func_80059AC8(void);
@@ -47,23 +57,23 @@ void func_8005902C(void);
void func_800590D4(void);
void func_800591B4(void);
void func_80059358(void);
void func_80059360(void);
void render_hud_2p_horizontal_player_two_horizontal_player_one(void);
void func_800593F0(void);
void func_800593F8(void);
void func_80059488(s32);
void render_hud_2p_horizontal_player_two(void);
void draw_simplified_hud(s32);
void func_800594F0(void);
void func_800594F8(void);
void render_hud_2p_vertical_player_one(void);
void func_80059528(void);
void func_80059530(void);
void func_80059560(s32);
void render_hud_2p_vertical_player_two(void);
void render_hud_lap_3p_4p(s32);
void func_800596A8(void);
void func_800596D8(void);
void render_hud_1p_multi(void);
void func_80059710(void);
void func_80059718(void);
void render_hud_2p_multi(void);
void func_80059750(void);
void func_80059780(void);
void render_hud_3p_multi(void);
void func_800597B8(void);
void func_800597E8(void);
void render_hud_4p_multi(void);
void func_80059820(s32);
void randomize_seed_from_controller(s32);
void func_8005994C(void);
@@ -77,7 +87,7 @@ void func_8005A14C(s32);
void func_8005A380(void);
void func_8005A3C0(void);
void func_8005A71C(void);
void update_obj(void);
void update_object(void);
void func_8005A99C(void);
void func_8005AA34(void);
void func_8005AA4C(void);
@@ -311,7 +321,7 @@ extern s8 D_8016579C;
extern u16 D_8016579E;
extern u16 D_801657A2;
extern s8 D_801657AE;
extern s8 D_801657B0;
extern s8 gHUDDisable;
extern s8 D_801657B2;
extern s8 D_801657B4;
extern s8 D_801657B8[];
@@ -380,7 +390,7 @@ extern f32 D_80183DA8[];
// extern s32 gIndexLakituList[]; -> objects.h
extern f32 D_80183DC8[];
// extern s32 D_80183DD8[]; -> bomb_kart.h
// extern s32 gIndexObjectBombKart[]; -> bomb_kart.h
// extern s32 gNextFreeObjectParticle1; -> objects.h
extern Vec3f D_80183E40;
+19 -19
View File
@@ -8,7 +8,7 @@
#include "code_80057C60.h"
#include "code_8006E9C0.h"
#include "code_80086E70.h"
#include "code_80071F00.h"
#include "update_objects.h"
#include "objects.h"
#include "bomb_kart.h"
#include "save.h"
@@ -20,10 +20,10 @@
#include "main.h"
#include "menus.h"
#include "data/other_textures.h"
#include "hud_renderer.h"
#include "render_objects.h"
#include "code_80091750.h"
void init_object_list(void) {
void init_hud(void) {
reset_object_variable();
func_8006FA94();
@@ -543,8 +543,8 @@ void func_8006FA94(void) {
D_801657B2 = 0;
D_801657D8 = D_801657B2;
D_8018D214 = D_801657D8;
D_801657B0 = D_8018D214;
D_801657AE = D_801657B0;
gHUDDisable = D_8018D214;
D_801657AE = gHUDDisable;
D_8018D20C = 0;
D_8018D2F8 = 0;
D_8018D2F0 = D_8018D2F8;
@@ -600,7 +600,7 @@ void init_object_list_index(void) {
}
for(loopIndex = 0; loopIndex < NUM_BOMB_KARTS_VERSUS; loopIndex++) {
find_unused_obj_index(&D_80183DD8[loopIndex]);
find_unused_obj_index(&gIndexObjectBombKart[loopIndex]);
}
}
@@ -616,7 +616,7 @@ void func_80070250(s32 objectIndex, s32 arg1, StarSpawn *arg2) {
temp_v0->sizeScaling = (f32) arg2->pos[2] / 100.0;
temp_v0->activeTexture = &D_8018D220[arg2->id];
func_80073404(objectIndex, 0x40U, 0x20U, &D_0D005FB0);
temp_v0->unk_0A0 = 0x00FF;
temp_v0->primAlpha = 0x00FF;
}
void func_80070328(StarSpawn *arg0) {
@@ -780,7 +780,7 @@ void init_course_object(void) {
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;
gObjectList[objectId].primAlpha = gThowmpSpawnList[i].unk_6;
}
// Handle the big statue's fire breath
objectId = indexObjectList2[0];
@@ -805,7 +805,7 @@ void init_course_object(void) {
}
break;
case COURSE_BANSHEE_BOARDWALK:
if (gGamestate != 9) {
if (gGamestate != CREDITS_SEQUENCE) {
objectId = indexObjectList1[0];
init_texture_object(objectId, d_course_banshee_boardwalk_bat_tlut, *d_course_banshee_boardwalk_bat, 0x20U, (u16) 0x00000040);
gObjectList[objectId].orientation[0] = 0;
@@ -816,10 +816,10 @@ void init_course_object(void) {
}
break;
case COURSE_YOSHI_VALLEY:
for (i = 0; i < 4; i++) {
for (i = 0; i < NUM_YV_FLAG_POLES; i++) {
init_object(indexObjectList1[i], 0);
}
if (gGamestate != 9) {
if (gGamestate != CREDITS_SEQUENCE) {
for (i = 0; i < NUM_HEDGEHOGS; i++) {
objectId = indexObjectList2[i];
init_object(objectId, 0);
@@ -836,7 +836,7 @@ void init_course_object(void) {
for (i = 0; i < NUM_SNOWFLAKES; i++) {
find_unused_obj_index(&gObjectParticle1[i]);
}
if (gGamestate != 9) {
if (gGamestate != CREDITS_SEQUENCE) {
for (i = 0; i < NUM_SNOWMEN; i++) {
objectId = indexObjectList2[i];
init_object(objectId, 0);
@@ -853,7 +853,7 @@ void init_course_object(void) {
}
break;
case COURSE_KOOPA_BEACH:
if (gGamestate != 9) {
if (gGamestate != CREDITS_SEQUENCE) {
for (i = 0; i < NUM_CRABS; i++) {
objectId = indexObjectList1[i];
init_object(objectId, 0);
@@ -875,7 +875,7 @@ void init_course_object(void) {
}
break;
case COURSE_ROYAL_RACEWAY:
if (gGamestate != 9) {
if (gGamestate != CREDITS_SEQUENCE) {
if (gModeSelection == GRAND_PRIX) {
func_80070714();
}
@@ -886,7 +886,7 @@ void init_course_object(void) {
}
break;
case COURSE_LUIGI_RACEWAY:
if (gGamestate != 9) {
if (gGamestate != CREDITS_SEQUENCE) {
if (gModeSelection == GRAND_PRIX) {
func_80070714();
}
@@ -899,7 +899,7 @@ void init_course_object(void) {
}
break;
case COURSE_MOO_MOO_FARM:
if (gGamestate != 9) {
if (gGamestate != CREDITS_SEQUENCE) {
if ((gPlayerCount == 1) || ((gPlayerCount == 2) && (gModeSelection == VERSUS))) {
switch (gCCSelection) { /* switch 2; irregular */
case CC_50: /* switch 2 */
@@ -955,7 +955,7 @@ void init_course_object(void) {
}
break;
case COURSE_KALAMARI_DESERT:
if (gGamestate != 9) {
if (gGamestate != CREDITS_SEQUENCE) {
find_unused_obj_index(&D_8018CF10);
init_object(D_8018CF10, 0);
for (i = 0; i < 50; i++) {
@@ -975,7 +975,7 @@ void init_course_object(void) {
}
break;
case COURSE_RAINBOW_ROAD:
if (gGamestate != 9) {
if (gGamestate != CREDITS_SEQUENCE) {
for (i = 0; i < NUM_NEON_SIGNS; i++) {
init_object(indexObjectList1[i], 0);
}
@@ -986,7 +986,7 @@ void init_course_object(void) {
break;
case COURSE_DK_JUNGLE:
for (i = 0; i < NUM_TORCHES; i++) {
func_800770F0(i);
init_smoke_particles(i);
// wtf?
if (D_8018CF10){}
}
+3 -3
View File
@@ -2,9 +2,9 @@
#define CODE_8006E9C0_H
#include "common_structs.h"
#include "code_80071F00.h"
#include "update_objects.h"
void init_object_list(void);
void init_hud(void);
void reset_object_variable(void);
void func_8006EB10(void);
void clear_object_list(void);
@@ -35,7 +35,7 @@ extern s16 D_800E5520[];
extern s16 D_800E5548[];
extern u8 *gCourseOutlineTextures[0x14]; // 800e54d0
// These are found in data_code_80071F00
// These are found in data_update_objects
extern StarSpawn D_800E6A38[]; /* unable to generate initializer */
extern StarSpawn D_800E6AA8[]; /* unable to generate initializer */
extern StarSpawn D_800E6B00[]; /* unable to generate initializer */
+220 -220
View File
@@ -9,7 +9,7 @@
#include "math_util.h"
#include "math_util_2.h"
#include "racing/memory.h"
#include "code_80071F00.h"
#include "update_objects.h"
#include "collision.h"
#include "audio/external.h"
#include "main.h"
@@ -18,13 +18,13 @@
void func_80086E70(s32 objectIndex) {
gObjectList[objectIndex].unk_0AE = 1;// * 0xE0)) = 1;
set_object_flag_unk_054_false(objectIndex, 8);
set_object_flag_status_false(objectIndex, 8);
}
void func_80086EAC(s32 objectIndex, s32 arg1, s16 arg2) {
gObjectList[objectIndex].unk_0DD = arg1;
gObjectList[objectIndex].unk_0AE = arg2;
set_object_flag_unk_054_false(objectIndex, 8);
set_object_flag_status_false(objectIndex, 8);
}
void func_80086EF0(s32 objectIndex) {
@@ -41,7 +41,7 @@ void func_80086F60(s32 objectIndex) {
gObjectList[objectIndex].unk_0AE = 0;
gObjectList[objectIndex].unk_0DD = 0;
gObjectList[objectIndex].unk_0DE = 0;
set_object_flag_unk_054_false(objectIndex, 8);
set_object_flag_status_false(objectIndex, 8);
}
bool func_80086FA4(s32 objectIndex) {
@@ -53,12 +53,12 @@ bool func_80086FA4(s32 objectIndex) {
}
void func_80086FD4(s32 objectIndex) {
set_object_flag_unk_054_false(objectIndex, 8);
set_object_flag_status_false(objectIndex, 8);
gObjectList[objectIndex].unk_0AE += 1;
}
void func_8008701C(s32 objectIndex, s32 arg1) {
set_object_flag_unk_054_false(objectIndex, 8);
set_object_flag_status_false(objectIndex, 8);
gObjectList[objectIndex].unk_0AE = arg1;
}
@@ -66,13 +66,13 @@ s32 func_80087060(s32 objectIndex, s32 arg1) {
s32 sp1C;
sp1C = 0;
if (is_obj_index_flag_unk_054_inactive(objectIndex, 8) != FALSE) {
set_object_flag_unk_054_true(objectIndex, 8);
if (is_obj_index_flag_status_inactive(objectIndex, 8) != FALSE) {
set_object_flag_status_true(objectIndex, 8);
gObjectList[objectIndex].unk_0B0 = arg1;
}
gObjectList[objectIndex].unk_0B0--;
if (gObjectList[objectIndex].unk_0B0 < 0) {
set_object_flag_unk_054_false(objectIndex, 8);
set_object_flag_status_false(objectIndex, 8);
sp1C = 1;
}
return sp1C;
@@ -82,13 +82,13 @@ s32 func_80087104(s32 objectIndex, u16 arg1) {
s32 sp24;
sp24 = 0;
if (is_obj_index_flag_unk_054_inactive(objectIndex, 8) != FALSE) {
set_object_flag_unk_054_true(objectIndex, 8);
if (is_obj_index_flag_status_inactive(objectIndex, 8) != FALSE) {
set_object_flag_status_true(objectIndex, 8);
gObjectList[objectIndex].unk_0B0 = random_int(arg1);
}
gObjectList[objectIndex].unk_0B0--;
if (gObjectList[objectIndex].unk_0B0 < 0) {
set_object_flag_unk_054_false(objectIndex, 8);
set_object_flag_status_false(objectIndex, 8);
sp24 = 1;
}
return sp24;
@@ -98,13 +98,13 @@ s32 func_800871AC(s32 objectIndex, s32 arg1) {
s32 sp24;
sp24 = 0;
if (is_obj_index_flag_unk_054_inactive(objectIndex, 8) != FALSE) {
set_object_flag_unk_054_true(objectIndex, 8);
if (is_obj_index_flag_status_inactive(objectIndex, 8) != FALSE) {
set_object_flag_status_true(objectIndex, 8);
gObjectList[objectIndex].unk_0B0 = (s16) arg1;
}
gObjectList[objectIndex].unk_0B0--;
if (gObjectList[objectIndex].unk_0B0 < 0) {
set_object_flag_unk_054_false(objectIndex, 8);
set_object_flag_status_false(objectIndex, 8);
func_80086FD4(objectIndex);
sp24 = 1;
}
@@ -112,12 +112,12 @@ s32 func_800871AC(s32 objectIndex, s32 arg1) {
}
UNUSED void func_80087258(s32 objectIndex, UNUSED s32 arg1, f32 arg2) {
gObjectList[objectIndex].unk_028[1] += arg2;
gObjectList[objectIndex].unk_028[2] -= arg2;
gObjectList[objectIndex].offset[1] += arg2;
gObjectList[objectIndex].offset[2] -= arg2;
}
UNUSED s32 func_80087294(s32 objectIndex, Player *player) {
return func_80041770(player->pos[0], gObjectList[objectIndex].pos[0], player->pos[2], gObjectList[objectIndex].pos[2]);
UNUSED s32 get_angle_between_player_object(s32 objectIndex, Player *player) {
return get_angle_between_xy(player->pos[0], gObjectList[objectIndex].pos[0], player->pos[2], gObjectList[objectIndex].pos[2]);
}
s32 angle_between_object_camera(s32 objectIndex, Camera *camera) {
@@ -173,41 +173,41 @@ void func_80087620(s32 objectIndex) {
}
void func_800876A0(s32 objectIndex) {
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]);
gObjectList[objectIndex].offset[0] += gObjectList[objectIndex].unk_034 * sins(gObjectList[objectIndex].direction_angle[1]);
gObjectList[objectIndex].offset[2] += gObjectList[objectIndex].unk_034 * coss(gObjectList[objectIndex].direction_angle[1]);
}
void func_80087710(s32 objectIndex) {
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 object_add_velocity_offset_xyz(s32 objectIndex) {
gObjectList[objectIndex].offset[0] += gObjectList[objectIndex].velocity[0];
gObjectList[objectIndex].offset[1] += gObjectList[objectIndex].velocity[1];
gObjectList[objectIndex].offset[2] += gObjectList[objectIndex].velocity[2];
}
void func_8008775C(s32 objectIndex) {
gObjectList[objectIndex].unk_028[0] += gObjectList[objectIndex].velocity[0];
gObjectList[objectIndex].unk_028[2] += gObjectList[objectIndex].velocity[2];
void object_add_velocity_offset_xz(s32 objectIndex) {
gObjectList[objectIndex].offset[0] += gObjectList[objectIndex].velocity[0];
gObjectList[objectIndex].offset[2] += gObjectList[objectIndex].velocity[2];
}
UNUSED void func_80087798(s32 objectIndex) {
gObjectList[objectIndex].unk_028[0] += gObjectList[objectIndex].velocity[0];
UNUSED void object_add_velocity_offset_x(s32 objectIndex) {
gObjectList[objectIndex].offset[0] += gObjectList[objectIndex].velocity[0];
}
void func_800877C4(s32 objectIndex) {
gObjectList[objectIndex].unk_028[1] += gObjectList[objectIndex].velocity[1];
void object_add_velocity_offset_y(s32 objectIndex) {
gObjectList[objectIndex].offset[1] += gObjectList[objectIndex].velocity[1];
}
UNUSED void func_800877F0(s32 objectIndex) {
gObjectList[objectIndex].unk_028[2] += gObjectList[objectIndex].velocity[2];
UNUSED void object_add_velocity_offset_z(s32 objectIndex) {
gObjectList[objectIndex].offset[2] += gObjectList[objectIndex].velocity[2];
}
void func_8008781C(s32 arg0) {
func_8008751C(arg0);
func_8008775C(arg0);
object_add_velocity_offset_xz(arg0);
}
void func_80087844(s32 arg0) {
func_8008757C(arg0);
func_80087710(arg0);
object_add_velocity_offset_xyz(arg0);
}
f32 func_8008786C(f32 arg0, f32 arg1, f32 arg2, f32 arg3, f32 arg4) {
@@ -218,17 +218,17 @@ s32 func_8008789C(s32 objectIndex, s32 arg1) {
s32 sp24;
sp24 = 0;
if (is_obj_index_flag_unk_054_inactive(objectIndex, 8) != FALSE) {
set_object_flag_unk_054_true(objectIndex, 8);
if (is_obj_index_flag_status_inactive(objectIndex, 8) != FALSE) {
set_object_flag_status_true(objectIndex, 8);
func_8008751C(objectIndex);
gObjectList[objectIndex].unk_0B0 = arg1;
}
gObjectList[objectIndex].unk_0B0--;
if (gObjectList[objectIndex].unk_0B0 < 0) {
set_object_flag_unk_054_false(objectIndex, 8);
set_object_flag_status_false(objectIndex, 8);
sp24 = 1;
} else {
func_8008775C(objectIndex);
object_add_velocity_offset_xz(objectIndex);
}
return sp24;
}
@@ -237,17 +237,17 @@ s32 func_80087954(s32 objectIndex, s32 arg1) {
s32 sp24;
sp24 = 0;
if (is_obj_index_flag_unk_054_inactive(objectIndex, 8) != FALSE) {
set_object_flag_unk_054_true(objectIndex, 8);
if (is_obj_index_flag_status_inactive(objectIndex, 8) != FALSE) {
set_object_flag_status_true(objectIndex, 8);
func_80087620(objectIndex);
gObjectList[objectIndex].unk_0B0 = arg1;
}
gObjectList[objectIndex].unk_0B0--;
if (gObjectList[objectIndex].unk_0B0 < 0) {
set_object_flag_unk_054_false(objectIndex, 8);
set_object_flag_status_false(objectIndex, 8);
sp24 = 1;
} else {
func_8008775C(objectIndex);
object_add_velocity_offset_xz(objectIndex);
}
return sp24;
}
@@ -259,8 +259,8 @@ bool func_80087A0C(s32 objectIndex, s16 arg1, s16 arg2, s16 arg3, s16 arg4) {
bool sp2C;
sp2C = FALSE;
if (is_obj_index_flag_unk_054_inactive(objectIndex, 8) != FALSE) {
set_object_flag_unk_054_true(objectIndex, 8);
if (is_obj_index_flag_status_inactive(objectIndex, 8) != FALSE) {
set_object_flag_status_true(objectIndex, 8);
temp_v0 = arg2 - arg1;
temp_a0 = arg4 - arg3;
dist = sqrtf((temp_v0 * temp_v0) + (temp_a0 * temp_a0));
@@ -271,10 +271,10 @@ bool func_80087A0C(s32 objectIndex, s16 arg1, s16 arg2, s16 arg3, s16 arg4) {
}
gObjectList[objectIndex].unk_0B0--;
if (gObjectList[objectIndex].unk_0B0 < 0) {
set_object_flag_unk_054_false(objectIndex, 8);
set_object_flag_status_false(objectIndex, 8);
sp2C = TRUE;
} else {
func_8008775C(objectIndex);
object_add_velocity_offset_xz(objectIndex);
}
return sp2C;
}
@@ -283,13 +283,13 @@ s32 func_80087B84(s32 objectIndex, f32 arg1, f32 arg2) {
s32 sp24;
sp24 = 0;
if (is_obj_index_flag_unk_054_inactive(objectIndex, 8) != FALSE) {
set_object_flag_unk_054_true(objectIndex, 8);
if (is_obj_index_flag_status_inactive(objectIndex, 8) != FALSE) {
set_object_flag_status_true(objectIndex, 8);
gObjectList[objectIndex].velocity[1] = -arg1;
}
func_800877C4(objectIndex);
object_add_velocity_offset_y(objectIndex);
if (gObjectList[objectIndex].pos[1] <= arg2) {
set_object_flag_unk_054_false(objectIndex, 8);
set_object_flag_status_false(objectIndex, 8);
func_80086FD4(objectIndex);
sp24 = 1;
}
@@ -300,19 +300,19 @@ 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) != FALSE) {
set_object_flag_unk_054_true(objectIndex, 8);
if (is_obj_index_flag_status_inactive(objectIndex, 8) != FALSE) {
set_object_flag_status_true(objectIndex, 8);
gObjectList[objectIndex].velocity[1] = arg1;
gObjectList[objectIndex].unk_0B0 = (s16) arg3;
}
gObjectList[objectIndex].unk_0B0--;
if (gObjectList[objectIndex].unk_0B0 < 0) {
set_object_flag_unk_054_false(objectIndex, 8);
set_object_flag_status_false(objectIndex, 8);
func_80086FD4(objectIndex);
sp24 = 1;
} else {
gObjectList[objectIndex].velocity[1] -= arg2;
func_800877C4(objectIndex);
object_add_velocity_offset_y(objectIndex);
}
return sp24;
}
@@ -321,15 +321,15 @@ s32 func_80087D24(s32 objectIndex, f32 arg1, f32 arg2, f32 arg3) {
s32 sp24;
sp24 = 0;
if (is_obj_index_flag_unk_054_inactive(objectIndex, 8) != 0) {
set_object_flag_unk_054_true(objectIndex, 8);
if (is_obj_index_flag_status_inactive(objectIndex, 8) != 0) {
set_object_flag_status_true(objectIndex, 8);
gObjectList[objectIndex].velocity[1] = arg1;
}
gObjectList[objectIndex].velocity[1] -= arg2;
func_800877C4(objectIndex);
if (gObjectList[objectIndex].unk_028[1] <= arg3) {
set_object_flag_unk_054_false(objectIndex, 8);
gObjectList[objectIndex].unk_028[1] = arg3;
object_add_velocity_offset_y(objectIndex);
if (gObjectList[objectIndex].offset[1] <= arg3) {
set_object_flag_status_false(objectIndex, 8);
gObjectList[objectIndex].offset[1] = arg3;
func_80086FD4(objectIndex);
sp24 = 1;
}
@@ -341,11 +341,11 @@ bool func_80087E08(s32 objectIndex, f32 arg1, f32 arg2, f32 arg3, s16 arg4, s32
UNUSED s32 pad;
sp2C = FALSE;
if (is_obj_index_flag_unk_054_inactive(objectIndex, 8) != 0) {
set_object_flag_unk_054_true(objectIndex, 8);
gObjectList[objectIndex].unk_028[2] = 0.0f;
gObjectList[objectIndex].unk_028[1] = 0.0f;
gObjectList[objectIndex].unk_028[0] = 0.0f;
if (is_obj_index_flag_status_inactive(objectIndex, 8) != 0) {
set_object_flag_status_true(objectIndex, 8);
gObjectList[objectIndex].offset[2] = 0.0f;
gObjectList[objectIndex].offset[1] = 0.0f;
gObjectList[objectIndex].offset[0] = 0.0f;
gObjectList[objectIndex].unk_034 = arg3;
gObjectList[objectIndex].velocity[1] = arg1;
gObjectList[objectIndex].direction_angle[1] = arg4;
@@ -354,12 +354,12 @@ bool func_80087E08(s32 objectIndex, f32 arg1, f32 arg2, f32 arg3, s16 arg4, s32
}
gObjectList[objectIndex].unk_0B0--;
if (gObjectList[objectIndex].unk_0B0 < 0) {
set_object_flag_unk_054_false(objectIndex, 8);
set_object_flag_status_false(objectIndex, 8);
func_80086FD4(objectIndex);
sp2C = TRUE;
} else {
gObjectList[objectIndex].velocity[1] -= arg2;
func_80087710(objectIndex);
object_add_velocity_offset_xyz(objectIndex);
}
return sp2C;
}
@@ -369,24 +369,24 @@ UNUSED s32 func_80087F14(s32 objectIndex, f32 arg1, f32 arg2, f32 arg3, s16 arg4
UNUSED s32 stackPadding;
sp2C = 0;
if (is_obj_index_flag_unk_054_inactive(objectIndex, 8) != 0) {
set_object_flag_unk_054_true(objectIndex, 8);
gObjectList[objectIndex].unk_028[2] = 0.0f;
gObjectList[objectIndex].unk_028[1] = 0.0f;
gObjectList[objectIndex].unk_028[0] = 0.0f;
if (is_obj_index_flag_status_inactive(objectIndex, 8) != 0) {
set_object_flag_status_true(objectIndex, 8);
gObjectList[objectIndex].offset[2] = 0.0f;
gObjectList[objectIndex].offset[1] = 0.0f;
gObjectList[objectIndex].offset[0] = 0.0f;
gObjectList[objectIndex].unk_034 = arg3;
gObjectList[objectIndex].velocity[1] = arg1;
gObjectList[objectIndex].direction_angle[1] = arg4;
func_8008751C(objectIndex);
gObjectList[objectIndex].unk_0B0 = gVBlankTimer;
}
if (gObjectList[objectIndex].unk_028[1] <= arg5) {
set_object_flag_unk_054_false(objectIndex, 8);
if (gObjectList[objectIndex].offset[1] <= arg5) {
set_object_flag_status_false(objectIndex, 8);
func_80086FD4(objectIndex);
sp2C = 1;
} else {
gObjectList[objectIndex].velocity[1] -= arg2;
func_80087710(objectIndex);
object_add_velocity_offset_xyz(objectIndex);
}
return sp2C;
}
@@ -395,13 +395,13 @@ void func_80088038(s32 objectIndex, f32 arg1, u16 arg2) {
f32 temp_f4;
f32 sp20;
temp_f4 = gObjectList[objectIndex].unk_028[0];
sp20 = gObjectList[objectIndex].unk_028[2];
temp_f4 = gObjectList[objectIndex].offset[0];
sp20 = gObjectList[objectIndex].offset[2];
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].velocity[0] = gObjectList[objectIndex].unk_028[0] - temp_f4;
gObjectList[objectIndex].velocity[2] = gObjectList[objectIndex].unk_028[2] - sp20;
gObjectList[objectIndex].offset[0] = sins(gObjectList[objectIndex].unk_0C4) * arg1;
gObjectList[objectIndex].offset[2] = coss(gObjectList[objectIndex].unk_0C4) * arg1;
gObjectList[objectIndex].velocity[0] = gObjectList[objectIndex].offset[0] - temp_f4;
gObjectList[objectIndex].velocity[2] = gObjectList[objectIndex].offset[2] - sp20;
}
UNUSED void func_800880DC(void) {
@@ -449,9 +449,9 @@ void func_80088228(s32 objectIndex) {
but for some unholy reason that doesn't match
*/
temp_v0->unk_084[8] = *((s16*)temp_v0->controlPoints - 1);
temp_v0->unk_028[0] = temp_v0->controlPoints[0].pos[0];
temp_v0->unk_028[1] = temp_v0->controlPoints[0].pos[1];
temp_v0->unk_028[2] = temp_v0->controlPoints[0].pos[2];
temp_v0->offset[0] = temp_v0->controlPoints[0].pos[0];
temp_v0->offset[1] = temp_v0->controlPoints[0].pos[1];
temp_v0->offset[2] = temp_v0->controlPoints[0].pos[2];
func_80086FD4(objectIndex);
}
@@ -463,9 +463,9 @@ s32 func_800882B0(s32 objectIndex, s32 arg1) {
s32 var_v1;
var_v1 = 0;
temp_f0 = (s32)((D_80165760[1] - gObjectList[objectIndex].unk_028[0]) * (D_80165760[1] - gObjectList[objectIndex].unk_028[0]));
temp_f12 = (s32)((D_80165770[1] - gObjectList[objectIndex].unk_028[1]) * (D_80165770[1] - gObjectList[objectIndex].unk_028[1]));
temp_f2 = (s32)((D_80165780[1] - gObjectList[objectIndex].unk_028[2]) * (D_80165780[1] - gObjectList[objectIndex].unk_028[2]));
temp_f0 = (s32)((D_80165760[1] - gObjectList[objectIndex].offset[0]) * (D_80165760[1] - gObjectList[objectIndex].offset[0]));
temp_f12 = (s32)((D_80165770[1] - gObjectList[objectIndex].offset[1]) * (D_80165770[1] - gObjectList[objectIndex].offset[1]));
temp_f2 = (s32)((D_80165780[1] - gObjectList[objectIndex].offset[2]) * (D_80165780[1] - gObjectList[objectIndex].offset[2]));
if ((temp_f0 + temp_f12 + temp_f2 - (arg1 * arg1)) <= 0) {
var_v1 = 1;
}
@@ -509,12 +509,12 @@ s32 func_8008847C(s32 objectIndex) {
s32 sp2C;
sp2C = 0;
set_object_flag_unk_054_false(objectIndex, 0x00800000);
if (is_obj_index_flag_unk_054_active(objectIndex, 0x00000400) != 0) {
set_object_flag_status_false(objectIndex, 0x00800000);
if (is_obj_flag_status_active(objectIndex, 0x00000400) != 0) {
func_802ADDC8(&D_8018C3B0, 10.0f, gObjectList[objectIndex].pos[0], 20.0f, gObjectList[objectIndex].pos[2]);
if (D_8018C3B0.unk34 == 1) {
sp2C = 1;
set_object_flag_unk_054_true(objectIndex, 0x00800000);
set_object_flag_status_true(objectIndex, 0x00800000);
}
gObjectList[objectIndex].unk_044 = func_802ABE30(gObjectList[objectIndex].pos[0], 0.0f, gObjectList[objectIndex].pos[2], D_8018C3B0.unk3A);
}
@@ -525,12 +525,12 @@ s32 func_80088538(s32 objectIndex) {
s32 sp2C;
sp2C = 0;
set_object_flag_unk_054_false(objectIndex, 0x00800000);
if (is_obj_index_flag_unk_054_active(objectIndex, 0x00000400) != 0) {
set_object_flag_status_false(objectIndex, 0x00800000);
if (is_obj_flag_status_active(objectIndex, 0x00000400) != 0) {
func_802ADDC8(&D_8018C3B0, 10.0f, gObjectList[objectIndex].pos[0], 20.0f, gObjectList[objectIndex].pos[2]);
if (D_8018C3B0.unk34 == 1) {
sp2C = 1;
set_object_flag_unk_054_true(objectIndex, 0x00800000);
set_object_flag_status_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_0B8[0] = atan2s(D_8018C3B0.orientationVector[2], D_8018C3B0.orientationVector[1]) + 0x4000;
@@ -543,12 +543,12 @@ s32 func_8008861C(s32 objectIndex) {
s32 sp2C;
sp2C = 0;
set_object_flag_unk_054_false(objectIndex, 0x00800000);
if (is_obj_index_flag_unk_054_active(objectIndex, 0x00000400) != 0) {
set_object_flag_status_false(objectIndex, 0x00800000);
if (is_obj_flag_status_active(objectIndex, 0x00000400) != 0) {
func_802ADDC8(&D_8018C3B0, 10.0f, gObjectList[objectIndex].pos[0], 20.0f, gObjectList[objectIndex].pos[2]);
if (D_8018C3B0.unk34 == 1) {
sp2C = 1;
set_object_flag_unk_054_true(objectIndex, 0x00800000);
set_object_flag_status_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_01C[0] = D_8018C3B0.orientationVector[0];
@@ -561,26 +561,26 @@ s32 func_8008861C(s32 objectIndex) {
void func_800886F4(s32 objectIndex) {
func_802ADDC8(&D_8018C3B0, 10.0f, gObjectList[objectIndex].pos[0], 20.0f, gObjectList[objectIndex].pos[2]);
if (D_8018C3B0.unk34 == 1) {
set_object_flag_unk_054_true(objectIndex, 0x00800000);
set_object_flag_status_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_0B8[0] = atan2s(D_8018C3B0.orientationVector[2], D_8018C3B0.orientationVector[1]) + 0x4000;
gObjectList[objectIndex].unk_0B8[2] = atan2s(D_8018C3B0.orientationVector[0], D_8018C3B0.orientationVector[1]);
return;
}
set_object_flag_unk_054_false(objectIndex, 0x00800000);
set_object_flag_status_false(objectIndex, 0x00800000);
}
void func_800887C0(s32 objectIndex) {
func_802ADDC8(&D_8018C3B0, 10.0f, gObjectList[objectIndex].pos[0], 20.0f, gObjectList[objectIndex].pos[2]);
if (D_8018C3B0.unk34 == 1) {
set_object_flag_unk_054_true(objectIndex, 0x00800000);
set_object_flag_status_true(objectIndex, 0x00800000);
gObjectList[objectIndex].unk_044 = func_802ABE30(gObjectList[objectIndex].pos[0], 0.0f, gObjectList[objectIndex].pos[2], D_8018C3B0.unk3A);
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);
set_object_flag_status_false(objectIndex, 0x00800000);
}
/**
@@ -1038,7 +1038,7 @@ void func_80089474(s32 objectIndex, s32 playerId, f32 arg2, f32 arg3, u32 soundB
Player *player;
player = &gPlayerOne[playerId];
if (is_obj_index_flag_unk_054_active(objectIndex, 0x04000000) != 0) {
if (is_obj_flag_status_active(objectIndex, 0x04000000) != 0) {
func_80072180();
}
if ((func_8008933C(player, objectIndex, arg2, arg3) >= 4.0) && ((player->type & PLAYER_CPU) != PLAYER_CPU)) {
@@ -1063,10 +1063,10 @@ s32 func_800895E4(s32 objectIndex) {
var_s6 = 0;
player = gPlayerOne;
if (is_obj_index_flag_unk_054_active(objectIndex, 0x00000200) != 0) {
if (is_obj_flag_status_active(objectIndex, 0x00000200) != 0) {
for (var_s1 = 0; var_s1 < D_8018D158; var_s1++, player++) {
if ((gObjectList[objectIndex].state != 0) && (has_collided_horizontally_with_player(objectIndex, player) != 0)) {
if (is_obj_index_flag_unk_054_active(objectIndex, 0x04000000) != 0) {
if (is_obj_flag_status_active(objectIndex, 0x04000000) != 0) {
func_80072180();
}
var_s6 = 1;
@@ -1081,11 +1081,11 @@ void func_800896D4(s32 objectIndex, f32 arg1, f32 arg2) {
s32 var_s1;
player = gPlayerOne;
if (is_obj_index_flag_unk_054_active(objectIndex, 0x00000200) != 0) {
if (is_obj_flag_status_active(objectIndex, 0x00000200) != 0) {
for (var_s1 = 0; var_s1 < D_8018D158; var_s1++, player++) {
if ((gObjectList[objectIndex].state != 0) && !(player->effects & (STAR_EFFECT | BOO_EFFECT)) && (has_collided_horizontally_with_player(objectIndex, player) != 0)) {
func_8008933C(player, objectIndex, arg1, arg2 * 1.1);
if (is_obj_index_flag_unk_054_active(objectIndex, 0x04000000) != 0) {
if (is_obj_flag_status_active(objectIndex, 0x04000000) != 0) {
func_80072180();
}
}
@@ -1098,15 +1098,15 @@ void func_80089820(s32 objectIndex, f32 arg1, f32 arg2, u32 arg3) {
s32 var_s1;
player = gPlayerOne;
set_object_flag_unk_054_false(objectIndex, 0x02000000);
if (is_obj_index_flag_unk_054_active(objectIndex, 0x00000200) != 0) {
set_object_flag_status_false(objectIndex, 0x02000000);
if (is_obj_flag_status_active(objectIndex, 0x00000200) != 0) {
for (var_s1 = 0; var_s1 < D_8018D158; var_s1++, player++) {
if ((gObjectList[objectIndex].state != 0) && !(player->effects & BOO_EFFECT)) {
if ((player->type & PLAYER_EXISTS) && !(player->type & PLAYER_INVISIBLE_OR_BOMB) && (has_collided_horizontally_with_player(objectIndex, player) != 0)) {
if (player->effects & STAR_EFFECT) {
set_object_flag_unk_054_true(objectIndex, 0x02000000);
set_object_flag_status_true(objectIndex, 0x02000000);
} else {
if (is_obj_index_flag_unk_054_active(objectIndex, 0x04000000) != 0) {
if (is_obj_flag_status_active(objectIndex, 0x04000000) != 0) {
func_80072180();
}
if ((func_8008933C(player, objectIndex, arg1, arg2 * 1.1) >= 4.0) && ((player->type & PLAYER_CPU) != PLAYER_CPU)) {
@@ -1124,11 +1124,11 @@ void func_80089A04(s32 objectIndex, f32 arg1, f32 arg2) {
s32 var_s1;
player = gPlayerOne;
if (is_obj_index_flag_unk_054_active(objectIndex, 0x00000200) != 0) {
if (is_obj_flag_status_active(objectIndex, 0x00000200) != 0) {
for (var_s1 = 0; var_s1 < D_8018D158; var_s1++, player++) {
if ((gObjectList[objectIndex].state != 0) && !(player->effects & (BOO_EFFECT | STAR_EFFECT)) && (has_collided_with_player(objectIndex, player) != 0)) {
func_8008933C(player, objectIndex, arg1, arg2 * 1.1);
if (is_obj_index_flag_unk_054_active(objectIndex, 0x04000000) != 0) {
if (is_obj_flag_status_active(objectIndex, 0x04000000) != 0) {
func_80072180();
}
}
@@ -1145,12 +1145,12 @@ s32 func_80089B50(s32 objectIndex) {
test = 0;
sp40 = 0;
player = gPlayerOne;
if (is_obj_index_flag_unk_054_active(objectIndex, 0x00000200) != 0) {
if (is_obj_flag_status_active(objectIndex, 0x00000200) != 0) {
for (var_s1 = 0; var_s1 < D_8018D158; var_s1++, player++, test++) {
if ((gObjectList[objectIndex].state != 0) && !(player->effects & 0x81000000) && (player->type & PLAYER_EXISTS) && !(player->type & PLAYER_INVISIBLE_OR_BOMB) && (has_collided_horizontally_with_player(objectIndex, player) != 0)) {
if (!(player->effects & STAR_EFFECT)) {
player->soundEffects |= REVERSE_SOUND_EFFECT;
if (is_obj_index_flag_unk_054_active(objectIndex, 0x04000000) != 0) {
if (is_obj_flag_status_active(objectIndex, 0x04000000) != 0) {
func_80072180();
}
} else {
@@ -1170,13 +1170,13 @@ s32 func_80089CBC(s32 objectIndex, f32 arg1) {
var_s7 = 0;
player = gPlayerOne;
if (is_obj_index_flag_unk_054_active(objectIndex, 0x00000200) != 0) {
if (is_obj_flag_status_active(objectIndex, 0x00000200) != 0) {
for (var_s1 = 0; var_s1 < D_8018D158; var_s1++, player++) {
if ((gObjectList[objectIndex].state != 0) && !(player->effects & 0x81000000)) {
if ((player->type & PLAYER_EXISTS) && !(player->type & PLAYER_INVISIBLE_OR_BOMB) && (has_collided_with_player_and_within_height(objectIndex, player, arg1) != 0)) {
if (!(player->effects & STAR_EFFECT)) {
player->soundEffects |= REVERSE_SOUND_EFFECT;
if (is_obj_index_flag_unk_054_active(objectIndex, 0x04000000) != 0) {
if (is_obj_flag_status_active(objectIndex, 0x04000000) != 0) {
func_80072180();
}
}
@@ -1195,7 +1195,7 @@ s32 func_80089E18(s32 objectIndex) {
var_s6 = 0;
player = gPlayerOne;
if (is_obj_index_flag_unk_054_active(objectIndex, 0x00000200) != 0) {
if (is_obj_flag_status_active(objectIndex, 0x00000200) != 0) {
for (var_s1 = 0; var_s1 < D_8018D158; var_s1++, player++) {
if ((gObjectList[objectIndex].state != 0) && !(player->effects & 0x800000C0) && (has_collided_horizontally_with_player(objectIndex, player) != 0)) {
if (player->effects & STAR_EFFECT) {
@@ -1216,12 +1216,12 @@ s32 func_80089F24(s32 objectIndex) {
var_s7 = 0;
player = gPlayerOne;
if (is_obj_index_flag_unk_054_active(objectIndex, 0x00000200) != 0) {
if (is_obj_flag_status_active(objectIndex, 0x00000200) != 0) {
for (var_s1 = 0; var_s1 < D_8018D158; var_s1++, player++) {
if ((gObjectList[objectIndex].state != 0) && !(player->effects & 0x800002C0)) {
if ((player->type & PLAYER_EXISTS) && !(player->type & PLAYER_INVISIBLE_OR_BOMB) && (has_collided_horizontally_with_player(objectIndex, player) != 0)) {
var_s7 = 1;
if (is_obj_index_flag_unk_054_active(objectIndex, 0x04000000) != 0) {
if (is_obj_flag_status_active(objectIndex, 0x04000000) != 0) {
func_80072180();
}
player->soundEffects |= 0x200000;
@@ -1262,14 +1262,14 @@ s32 func_8008A0B4(s32 objectIndex, Player *player, Camera *camera, u16 arg3) {
return var_t0;
}
s32 func_8008A140(s32 objectIndex, Camera *camera, u16 arg2) {
bool is_object_visible_on_camera(s32 objectIndex, Camera *camera, u16 angle) {
u16 temp_t2;
s32 var_t0;
var_t0 = 0;
temp_t2 = (func_80041770(camera->pos[0], gObjectList[objectIndex].pos[0], camera->pos[2], gObjectList[objectIndex].pos[2]) + ((s32) arg2 / 2)) - camera->rot[1];
if ((temp_t2 >= 0) && (arg2 >= temp_t2)) {
var_t0 = 1;
var_t0 = FALSE;
temp_t2 = (get_angle_between_xy(camera->pos[0], gObjectList[objectIndex].pos[0], camera->pos[2], gObjectList[objectIndex].pos[2]) + ((s32) angle / 2)) - camera->rot[1];
if ((temp_t2 >= 0) && (angle >= temp_t2)) {
var_t0 = TRUE;
}
return var_t0;
}
@@ -1280,7 +1280,7 @@ void func_8008A1D0(s32 objectIndex, s32 cameraId, s32 arg2, s32 arg3) {
Camera *camera;
camera = &camera1[cameraId];
set_object_flag_unk_054_false(objectIndex, 0x00140000);
set_object_flag_status_false(objectIndex, 0x00100000 | VISIBLE);
temp_v0 = get_horizontal_distance_to_camera(objectIndex, camera);
if (temp_v0 < 0x2711U) {
var_a2 = 0x5555;
@@ -1289,10 +1289,10 @@ void func_8008A1D0(s32 objectIndex, s32 cameraId, s32 arg2, s32 arg3) {
} else {
var_a2 = 0x2AAB;
}
if ((func_8008A140(objectIndex, camera, var_a2) != 0) && ((u32) (arg3 * arg3) >= temp_v0)) {
set_object_flag_unk_054_true(objectIndex, 0x00040000);
if ((is_object_visible_on_camera(objectIndex, camera, var_a2) != 0) && ((u32) (arg3 * arg3) >= temp_v0)) {
set_object_flag_status_true(objectIndex, VISIBLE);
if (temp_v0 >= (u32) (arg2 * arg2)) {
set_object_flag_unk_054_true(objectIndex, 0x00100000);
set_object_flag_status_true(objectIndex, 0x00100000);
}
}
}
@@ -1304,7 +1304,7 @@ UNUSED void func_8008A2CC(s32 objectIndex, s32 cameraId, u16 arg2) {
u16 var_a2;
camera = &camera1[cameraId];
set_object_flag_unk_054_false(objectIndex, 0x00040000);
set_object_flag_status_false(objectIndex, VISIBLE);
if (no_init < 0x2711U) {
var_a2 = 0x5555;
} else if (no_init < 0x9C41U) {
@@ -1312,40 +1312,40 @@ UNUSED void func_8008A2CC(s32 objectIndex, s32 cameraId, u16 arg2) {
} else {
var_a2 = arg2;
}
if (func_8008A140(objectIndex, camera, var_a2) != 0) {
set_object_flag_unk_054_true(objectIndex, 0x00040000);
if (is_object_visible_on_camera(objectIndex, camera, var_a2) != 0) {
set_object_flag_status_true(objectIndex, VISIBLE);
}
}
s32 func_8008A364(s32 objectIndex, s32 cameraId, u16 arg2, s32 arg3) {
Camera *camera;
u32 var_v1;
u32 dist;
u16 var_a2;
camera = &camera1[cameraId];
set_object_flag_unk_054_false(objectIndex, 0x00060000);
var_v1 = get_horizontal_distance_to_camera(objectIndex, camera);
if (var_v1 < (arg3 * arg3)) {
set_object_flag_unk_054_true(objectIndex, 0x00020000);
if (var_v1 < 0x2711U) {
set_object_flag_status_false(objectIndex, 0x00020000 | VISIBLE);
dist = get_horizontal_distance_to_camera(objectIndex, camera);
if (dist < (arg3 * arg3)) {
set_object_flag_status_true(objectIndex, 0x00020000);
if (dist < 0x2711U) {
var_a2 = 0x5555;
} else if (var_v1 < 0x9C41U) {
} else if (dist < 0x9C41U) {
var_a2 = 0x4000;
} else {
var_a2 = arg2;
}
if (func_8008A140(objectIndex, camera, var_a2) != 0) {
set_object_flag_unk_054_true(objectIndex, 0x00040000);
if (is_object_visible_on_camera(objectIndex, camera, var_a2) != 0) {
set_object_flag_status_true(objectIndex, VISIBLE);
}
}
return var_v1;
return dist;
}
void func_8008A454(s32 objectIndex, s32 cameraId, s32 arg2) {
if (get_horizontal_distance_to_camera(objectIndex, &camera1[cameraId]) < (u32) (arg2 * arg2)) {
set_object_flag_unk_054_true(objectIndex, 0x00000020);
set_object_flag_status_true(objectIndex, 0x00000020);
} else {
set_object_flag_unk_054_false(objectIndex, 0x00000020);
set_object_flag_status_false(objectIndex, 0x00000020);
}
}
@@ -1353,16 +1353,16 @@ void func_8008A4CC(s32 objectIndex) {
s32 loopIndex;
Camera *camera;
set_object_flag_unk_054_false(objectIndex, 0x00070000);
set_object_flag_status_false(objectIndex, 0x00070000);
for (loopIndex = 0, camera = camera1; loopIndex < gPlayerCountSelection1; loopIndex++, camera++) {
if (gObjectList[objectIndex].state != 0) {
if ((D_8018CF68[loopIndex] >= (gObjectList[objectIndex].unk_0DF - 1)) && ((gObjectList[objectIndex].unk_0DF + 1) >= D_8018CF68[loopIndex])) {
set_object_flag_unk_054_true(objectIndex, 0x00010000);
set_object_flag_status_true(objectIndex, 0x00010000);
if (D_8018CF68[loopIndex] == gObjectList[objectIndex].unk_0DF) {
set_object_flag_unk_054_true(objectIndex, 0x00020000);
set_object_flag_status_true(objectIndex, 0x00020000);
}
if (func_8008A140(objectIndex, camera, 0x2AABU) != 0) {
set_object_flag_unk_054_true(objectIndex, 0x00040000);
if (is_object_visible_on_camera(objectIndex, camera, 0x2AABU) != 0) {
set_object_flag_status_true(objectIndex, VISIBLE);
}
}
}
@@ -1373,10 +1373,10 @@ UNUSED void func_8008A610(s32 objectIndex) {
s32 loopIndex;
Camera *camera;
set_object_flag_unk_054_false(objectIndex, 0x00040000);
set_object_flag_status_false(objectIndex, VISIBLE);
for (camera = camera1, loopIndex = 0; loopIndex < gPlayerCountSelection1; loopIndex++, camera++) {
if ((gObjectList[objectIndex].state != 0) && (func_8008A140(objectIndex, camera, 0x2AABU) != 0)) {
set_object_flag_unk_054_true(objectIndex, 0x00040000);
if ((gObjectList[objectIndex].state != 0) && (is_object_visible_on_camera(objectIndex, camera, 0x2AABU) != 0)) {
set_object_flag_status_true(objectIndex, VISIBLE);
}
}
}
@@ -1386,17 +1386,17 @@ void func_8008A6DC(s32 objectIndex, f32 arg1) {
s32 loopIndex;
Camera *camera;
set_object_flag_unk_054_false(objectIndex, 0x00060000);
set_object_flag_status_false(objectIndex, 0x00060000);
for (camera = camera1, loopIndex = 0; loopIndex < gPlayerCountSelection1; loopIndex++, camera++) {
if ((gObjectList[objectIndex].state != 0) && (is_within_horizontal_distance_to_camera(objectIndex, camera, arg1) != 0)) {
set_object_flag_unk_054_true(objectIndex, 0x00020000);
set_object_flag_status_true(objectIndex, 0x00020000);
if (arg1 <= 500.0) {
var_a2 = 0x4000;
} else {
var_a2 = 0x2AAB;
}
if (func_8008A140(objectIndex, camera, var_a2) != 0) {
set_object_flag_unk_054_true(objectIndex, 0x00040000);
if (is_object_visible_on_camera(objectIndex, camera, var_a2) != 0) {
set_object_flag_status_true(objectIndex, VISIBLE);
}
}
}
@@ -1468,9 +1468,9 @@ void func_8008AA3C(s32 objectIndex) {
but for some unholy reason that doesn't match
*/
temp_v0->unk_084[8] = *((s16*)temp_v0->controlPoints - 1);
temp_v0->unk_028[0] = temp_v0->controlPoints[0].pos[0];
temp_v0->unk_028[1] = temp_v0->controlPoints[0].pos[1];
temp_v0->unk_028[2] = temp_v0->controlPoints[0].pos[2];
temp_v0->offset[0] = temp_v0->controlPoints[0].pos[0];
temp_v0->offset[1] = temp_v0->controlPoints[0].pos[1];
temp_v0->offset[2] = temp_v0->controlPoints[0].pos[2];
temp_v0->unk_09A = (s16) (10000 / temp_v0->controlPoints[0].velocity);
func_8008A920(objectIndex);
func_80086FD4(objectIndex);
@@ -1481,9 +1481,9 @@ void func_8008AB10(s32 objectIndex) {
Objects *temp_v0;
temp_v0 = &gObjectList[objectIndex];
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->offset[0] += temp_v0->velocity[0];
temp_v0->offset[1] += temp_v0->velocity[1];
temp_v0->offset[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;
@@ -1611,9 +1611,9 @@ void func_8008B038(s32 objectIndex) {
Objects *temp_v0;
temp_v0 = &gObjectList[objectIndex];
temp_v0->unk_028[0] = (D_80183DA8[0] * D_80165760[0]) + (D_80183DA8[1] * D_80165760[1]) + (D_80183DA8[2] * D_80165760[2]) + (D_80183DA8[3] * D_80165760[3]);
temp_v0->unk_028[1] = (D_80183DA8[0] * D_80165770[0]) + (D_80183DA8[1] * D_80165770[1]) + (D_80183DA8[2] * D_80165770[2]) + (D_80183DA8[3] * D_80165770[3]);
temp_v0->unk_028[2] = (D_80183DA8[0] * D_80165780[0]) + (D_80183DA8[1] * D_80165780[1]) + (D_80183DA8[2] * D_80165780[2]) + (D_80183DA8[3] * D_80165780[3]);
temp_v0->offset[0] = (D_80183DA8[0] * D_80165760[0]) + (D_80183DA8[1] * D_80165760[1]) + (D_80183DA8[2] * D_80165760[2]) + (D_80183DA8[3] * D_80165760[3]);
temp_v0->offset[1] = (D_80183DA8[0] * D_80165770[0]) + (D_80183DA8[1] * D_80165770[1]) + (D_80183DA8[2] * D_80165770[2]) + (D_80183DA8[3] * D_80165770[3]);
temp_v0->offset[2] = (D_80183DA8[0] * D_80165780[0]) + (D_80183DA8[1] * D_80165780[1]) + (D_80183DA8[2] * D_80165780[2]) + (D_80183DA8[3] * D_80165780[3]);
}
void func_8008B17C(s32 objectIndex, f32 arg1) {
@@ -1686,7 +1686,7 @@ void func_8008B3E4(s32 objectIndex) {
Objects *temp_v0;
SplineData *spline;
if (is_obj_index_flag_unk_054_inactive(objectIndex, 8) != 0) {
if (is_obj_index_flag_status_inactive(objectIndex, 8) != 0) {
temp_v0 = &gObjectList[objectIndex];
temp_v0->unk_084[9] = 0;
temp_v0->timer = 0;
@@ -1698,7 +1698,7 @@ void func_8008B3E4(s32 objectIndex) {
*/
temp_v0->unk_084[8] = *(((s16*)temp_v0->controlPoints) - 1);
set_object_flag_unk_054_true(objectIndex, 8);
set_object_flag_status_true(objectIndex, 8);
}
}
@@ -1726,7 +1726,7 @@ void func_8008B478(s32 objectIndex, s32 arg1) {
sp34 = ((f32)gObjectList[objectIndex].timer / 10000.0);
// Calculate the curve at `t`
func_8008B17C(objectIndex, sp34);
if (is_obj_index_flag_unk_054_active(objectIndex, 0x800) != 0) {
if (is_obj_flag_status_active(objectIndex, 0x800) != 0) {
// Calculate the curve's derivative at `t`
func_8008AFE0(objectIndex, sp34);
}
@@ -1765,7 +1765,7 @@ void func_8008B6A4(s32 objectIndex) {
// Have to do it this way due to the u16 cast
temp_v0->unk_084[9] = (u16) temp_v0->unk_084[9] + 1;
if ((u16)temp_v0->unk_084[9] == (u16)temp_v0->unk_084[8]) {
set_object_flag_unk_054_false(objectIndex, 8);
set_object_flag_status_false(objectIndex, 8);
} else {
func_8008B44C(objectIndex);
}
@@ -1801,18 +1801,18 @@ void set_obj_origin_pos(s32 objectIndex, f32 arg1, f32 arg2, f32 arg3) {
gObjectList[objectIndex].origin_pos[2] = arg3;
}
void func_8008B80C(s32 objectIndex, f32 arg1, f32 arg2, f32 arg3) {
gObjectList[objectIndex].unk_028[0] = arg1;
gObjectList[objectIndex].unk_028[1] = arg2;
gObjectList[objectIndex].unk_028[2] = arg3;
void set_obj_origin_offset(s32 objectIndex, f32 arg1, f32 arg2, f32 arg3) {
gObjectList[objectIndex].offset[0] = arg1;
gObjectList[objectIndex].offset[1] = arg2;
gObjectList[objectIndex].offset[2] = arg3;
}
void func_8008B844(s32 objectIndex) {
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;
gObjectList[objectIndex].pos[0] = gObjectList[objectIndex].offset[0] + temp_f0;
gObjectList[objectIndex].pos[1] = gObjectList[objectIndex].offset[1] + temp_f0;
gObjectList[objectIndex].pos[2] = gObjectList[objectIndex].offset[2] + temp_f0;
}
void set_obj_direction_angle(s32 objectIndex, u16 arg1, u16 arg2, u16 arg3) {
@@ -1849,63 +1849,63 @@ void func_8008B928(s32 objectIndex, s16 arg1, s16 arg2, s16 arg3, SplineData *sp
temp_s0->direction_angle[0] = get_x_direction_angle(objectIndex);
}
UNUSED void func_8008BA40(s32 objectIndex, s16 arg1, u16 arg2) {
s16 test;
UNUSED void object_origin_pos_randomize_around_x(s32 objectIndex, s16 x, u16 arg2) {
s16 offset_x;
test = random_int(arg2) - (arg2 / 2);
gObjectList[objectIndex].origin_pos[0] = arg1 + test;
offset_x = random_int(arg2) - (arg2 / 2);
gObjectList[objectIndex].origin_pos[0] = x + offset_x;
}
void func_8008BAB4(s32 objectIndex, s16 arg1, u16 arg2) {
s16 test;
void object_origin_pos_randomize_around_y(s32 objectIndex, s16 y, u16 arg2) {
s16 offset_y;
test = random_int(arg2) - (arg2 / 2);
gObjectList[objectIndex].origin_pos[1] = arg1 + test;
offset_y = random_int(arg2) - (arg2 / 2);
gObjectList[objectIndex].origin_pos[1] = y + offset_y;
}
UNUSED void func_8008BB28(s32 objectIndex, s16 arg1, u16 arg2) {
s16 test;
UNUSED void object_origin_pos_randomize_around_z(s32 objectIndex, s16 z, u16 arg2) {
s16 offset_z;
test = random_int(arg2) - (arg2 / 2);
gObjectList[objectIndex].origin_pos[2] = arg1 + test;
offset_z = random_int(arg2) - (arg2 / 2);
gObjectList[objectIndex].origin_pos[2] = z + offset_z;
}
UNUSED void func_8008BB9C(s32 objectIndex, s16 arg1, s16 arg2, u16 arg3, u16 arg4) {
s16 sp1E;
s16 temp_v0;
UNUSED void object_origin_pos_randomize_around_xy(s32 objectIndex, s16 x, s16 y, u16 arg3, u16 arg4) {
s16 offset_x;
s16 offset_y;
sp1E = random_int(arg3) - ((s32) arg3 / 2);
temp_v0 = random_int(arg4) - ((s32) arg4 / 2);
gObjectList[objectIndex].origin_pos[0] = arg1 + sp1E;
gObjectList[objectIndex].origin_pos[1] = arg2 + temp_v0;
offset_x = random_int(arg3) - ((s32) arg3 / 2);
offset_y = random_int(arg4) - ((s32) arg4 / 2);
gObjectList[objectIndex].origin_pos[0] = x + offset_x;
gObjectList[objectIndex].origin_pos[1] = y + offset_y;
}
UNUSED void func_8008BC58(s32 objectIndex, s16 arg1, s16 arg2, u16 arg3, u16 arg4) {
s16 sp1E;
s16 temp_v0;
UNUSED void object_origin_pos_randomize_around_xz(s32 objectIndex, s16 x, s16 z, u16 arg3, u16 arg4) {
s16 offset_x;
s16 offset_z;
sp1E = random_int(arg3) - ((s32) arg3 / 2);
temp_v0 = random_int(arg4) - ((s32) arg4 / 2);
gObjectList[objectIndex].origin_pos[0] = arg1 + sp1E;
gObjectList[objectIndex].origin_pos[2] = arg2 + temp_v0;
offset_x = random_int(arg3) - ((s32) arg3 / 2);
offset_z = random_int(arg4) - ((s32) arg4 / 2);
gObjectList[objectIndex].origin_pos[0] = x + offset_x;
gObjectList[objectIndex].origin_pos[2] = z + offset_z;
}
void func_8008BD14(s32 objectIndex, s16 arg1, s16 arg2, s16 arg3, u16 arg4, u16 arg5, u16 arg6) {
s16 sp1E;
s16 sp1C;
s16 temp_v0;
void object_origin_pos_randomize_around_xyz(s32 objectIndex, s16 x, s16 y, s16 z, u16 arg4, u16 arg5, u16 arg6) {
s16 offset_x;
s16 offset_y;
s16 offset_z;
sp1E = random_int(arg4) - ((s32) arg4 / 2);
sp1C = random_int(arg5) - ((s32) arg5 / 2);
temp_v0 = random_int(arg6) - ((s32) arg6 / 2);
gObjectList[objectIndex].origin_pos[0] = arg1 + sp1E;
gObjectList[objectIndex].origin_pos[1] = arg2 + sp1C;
gObjectList[objectIndex].origin_pos[2] = arg3 + temp_v0;
offset_x = random_int(arg4) - ((s32) arg4 / 2);
offset_y = random_int(arg5) - ((s32) arg5 / 2);
offset_z = random_int(arg6) - ((s32) arg6 / 2);
gObjectList[objectIndex].origin_pos[0] = x + offset_x;
gObjectList[objectIndex].origin_pos[1] = y + offset_y;
gObjectList[objectIndex].origin_pos[2] = z + offset_z;
}
void func_8008BE0C(s32 objectIndex, s16 arg1, u16 arg2) {
gObjectList[objectIndex].origin_pos[0] = gPlayerOneCopy->pos[0] + (sins(arg2) * arg1);
gObjectList[objectIndex].origin_pos[2] = gPlayerOneCopy->pos[2] + (coss(arg2) * arg1);
void object_origin_pos_around_player_one(s32 objectIndex, s16 dist, u16 angle) {
gObjectList[objectIndex].origin_pos[0] = gPlayerOneCopy->pos[0] + (sins(angle) * dist);
gObjectList[objectIndex].origin_pos[2] = gPlayerOneCopy->pos[2] + (coss(angle) * dist);
}
UNUSED void func_8008BEA4(s32 objectIndex, u16 arg1, u16 arg2) {
@@ -1914,13 +1914,13 @@ UNUSED void func_8008BEA4(s32 objectIndex, u16 arg1, u16 arg2) {
thing = random_int(arg1);
thing2 = camera1->rot[1] + random_int(arg2) - ((s32) arg2 / 2);
func_8008BE0C(objectIndex, thing, thing2);
object_origin_pos_around_player_one(objectIndex, thing, thing2);
}
void func_8008BF18(s32 objectIndex) {
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 object_calculate_new_pos_offset(s32 objectIndex) {
gObjectList[objectIndex].pos[0] = gObjectList[objectIndex].origin_pos[0] + gObjectList[objectIndex].offset[0];
gObjectList[objectIndex].pos[1] = gObjectList[objectIndex].origin_pos[1] + gObjectList[objectIndex].offset[1];
gObjectList[objectIndex].pos[2] = gObjectList[objectIndex].origin_pos[2] + gObjectList[objectIndex].offset[2];
}
void func_8008BF64(s32 objectIndex) {
+16 -16
View File
@@ -17,7 +17,7 @@ s32 func_80087060(s32, s32);
s32 func_80087104(s32, u16);
s32 func_800871AC(s32, s32);
void func_80087258(s32, s32, f32);
s32 func_80087294(s32, Player*);
s32 get_angle_between_player_object(s32, Player*);
s32 angle_between_object_camera(s32, Camera*);
u16 get_x_direction_angle(s32);
s32 get_y_direction_angle(s32);
@@ -30,11 +30,11 @@ void func_8008751C(s32);
void func_8008757C(s32);
void func_80087620(s32);
void func_800876A0(s32);
void func_80087710(s32);
void func_8008775C(s32);
void func_80087798(s32);
void func_800877C4(s32);
void func_800877F0(s32);
void object_add_velocity_offset_xyz(s32);
void object_add_velocity_offset_xz(s32);
void object_add_velocity_offset_x(s32);
void object_add_velocity_offset_y(s32);
void object_add_velocity_offset_z(s32);
void func_8008781C(s32);
void func_80087844(s32);
f32 func_8008786C(f32, f32, f32, f32, f32);
@@ -93,7 +93,7 @@ s32 func_80089E18(s32);
s32 func_80089F24(s32);
s32 func_8008A060(s32, Camera*, u16);
s32 func_8008A0B4(s32, Player*, Camera*, u16);
s32 func_8008A140(s32, Camera*, u16);
s32 is_object_visible_on_camera(s32, Camera*, u16);
void func_8008A1D0(s32, s32, s32, s32);
void func_8008A2CC(s32, s32, u16);
s32 func_8008A364(s32, s32, u16, s32);
@@ -145,22 +145,22 @@ void func_8008B6A4(s32);
void func_8008B724(s32);
void func_8008B78C(s32);
void set_obj_origin_pos(s32, f32, f32, f32);
void func_8008B80C(s32, f32, f32, f32);
void set_obj_origin_offset(s32, f32, f32, f32);
void func_8008B844(s32);
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, SplineData*);
void func_8008BA40(s32, s16, u16);
void func_8008BAB4(s32, s16, u16);
void func_8008BB28(s32, s16, u16);
void func_8008BB9C(s32, s16, s16, u16, u16);
void func_8008BC58(s32, s16, s16, u16, u16);
void func_8008BD14(s32, s16, s16, s16, u16, u16, u16);
void func_8008BE0C(s32, s16, u16);
void object_origin_pos_randomize_around_x(s32, s16, u16);
void object_origin_pos_randomize_around_y(s32, s16, u16);
void object_origin_pos_randomize_around_z(s32, s16, u16);
void object_origin_pos_randomize_around_xy(s32, s16, s16, u16, u16);
void object_origin_pos_randomize_around_xz(s32, s16, s16, u16, u16);
void object_origin_pos_randomize_around_xyz(s32, s16, s16, s16, u16, u16, u16);
void object_origin_pos_around_player_one(s32, s16, u16);
void func_8008BEA4(s32, u16, u16);
void func_8008BFC0(s32);
void func_8008BF18(s32);
void object_calculate_new_pos_offset(s32);
void func_8008BF64(s32);
void func_8008BFFC(s32);
void func_8008C1B8(s32);
+428 -427
View File
File diff suppressed because it is too large Load Diff
+10 -10
View File
@@ -11,7 +11,7 @@ extern u32 _course_mario_raceway_dl_mio0SegmentRomStart[];
typedef struct {
/* 0x00 */ s32 type; // id maybe?
/* 0x04 */ s32 unk4; // sound mode, maybe some other stuff
/* 0x04 */ s32 cursor; // sound mode, maybe some other stuff
/* 0x08 */ s32 unk8; // This is used but I can't tell what for
/* 0x0C */ s32 column;
/* 0x10 */ s32 row;
@@ -90,8 +90,8 @@ void func_80091EE4(void);
void func_80091FA4(void);
void func_80092148(void);
void func_800921B4(void);
void func_800921C0(s32, s32, s32);
void func_80092224(s32, s32, s32);
void text_rainbow_effect(s32, s32, s32);
void set_text_color_rainbow_if_selected(s32, s32, s32);
void func_80092258(void);
void func_80092290(s32, s32*, s32*);
void func_80092500(void);
@@ -193,7 +193,7 @@ void func_8009B998(void);
Gfx *func_8009B9D0(Gfx*, MkTexture*);
Gfx *func_8009BA74(Gfx*, MkTexture*, s32, s32);
Gfx *func_8009BC9C(Gfx*, MkTexture*, s32, s32, s32, s32);
Gfx *func_8009BEF0(Gfx*, MkTexture*, f32, f32, s32, f32,f32);
Gfx *print_letter(Gfx*, MkTexture*, f32, f32, s32, f32,f32);
Gfx *func_8009C204(Gfx*, MkTexture*, s32, s32, s32);
Gfx *func_8009C434(Gfx*, struct_8018DEE0_entry*, s32, s32, s32);
Gfx *func_8009C708(Gfx*, struct_8018DEE0_entry *, s32, s32, s32, s32);
@@ -266,11 +266,11 @@ void func_800A3E60(struct_8018D9E0_entry*);
void func_800A4550(s32, s32, s32);
void func_800A474C(s32, s32, s32);
void func_800A4A24(struct_8018D9E0_entry*);
void func_800A4B38(struct_8018D9E0_entry*);
void func_800A4BC8(struct_8018D9E0_entry*);
void func_800A4EF8(struct_8018D9E0_entry*);
void func_800A5084(struct_8018D9E0_entry*);
void func_800A5360(struct_8018D9E0_entry*);
void render_pause_menu(struct_8018D9E0_entry*);
void render_pause_menu_time_trials(struct_8018D9E0_entry*);
void render_pause_menu_versus(struct_8018D9E0_entry*);
void render_pause_grand_prix(struct_8018D9E0_entry*);
void render_pause_battle(struct_8018D9E0_entry*);
void func_800A54EC(void);
void func_800A5738(struct_8018D9E0_entry*);
void func_800A6034(struct_8018D9E0_entry*);
@@ -498,7 +498,7 @@ extern char *D_800E7728[];
extern char *D_800E7730;
extern char *D_800E7734[];
extern char *D_800E7744[];
extern char *D_800E775C[];
extern char *gTextPauseButton[];
extern char *D_800E7778[];
extern char D_800E7780[];
extern char *D_800E77A0[];
+97 -97
View File
@@ -12,8 +12,8 @@ typedef struct {
/** @cond */
extern s8 common_tlut_finish_line_banner[];
extern s8 common_texture_particle_fire[];
extern u8 common_tlut_finish_line_banner[];
extern u8 common_texture_particle_fire[];
extern Vtx D_0D001200[];
extern Vtx D_0D001210[];
extern Vtx D_0D001240[];
@@ -52,7 +52,7 @@ extern Vtx D_0D001E28[];
extern Vtx D_0D001E58[];
extern Vtx D_0D001E88[];
extern Vtx D_0D001EB8[];
extern s8 common_texture_item_box_question_mark[];
extern u8 common_texture_item_box_question_mark[];
extern Gfx D_0D002EE8[];
extern Vtx common_fake_item_box_question_mark_vertices[];
extern Gfx common_model_fake_itembox[];
@@ -70,13 +70,13 @@ extern Gfx D_0D003278[];
extern Gfx D_0D003288[];
extern Vtx common_vtx_banana[];
extern Vtx common_vtx_flat_banana[];
extern s8 common_texture_banana[];
extern s8 common_texture_flat_banana[];
extern u8 common_texture_banana[];
extern u8 common_texture_flat_banana[];
extern Gfx common_model_banana[];
extern Gfx common_model_flat_banana[];
extern s8 common_tlut_trees_import[];
extern s8 common_tlut_green_shell[];
extern s8 common_tlut_blue_shell[];
extern u8 common_tlut_trees_import[];
extern u8 common_tlut_green_shell[];
extern u8 common_tlut_blue_shell[];
extern Vtx D_0D005238[];
extern Vtx D_0D005278[];
extern Gfx D_0D0052B8[];
@@ -141,10 +141,10 @@ extern Gfx D_0D0069F8[];
extern Gfx D_0D006A10[];
extern Gfx D_0D006A28[];
extern Gfx D_0D006A40[];
extern s8 D_0D006A58[];
extern s8 D_0D006AD8[];
extern s8 common_tlut_debug_font[];
extern s8 common_texture_debug_font[];
extern u8 D_0D006A58[];
extern u8 D_0D006AD8[];
extern u8 common_tlut_debug_font[];
extern u8 common_texture_debug_font[];
extern Gfx D_0D0076F8[];
extern Gfx D_0D007780[];
extern Gfx D_0D0077A0[];
@@ -254,29 +254,29 @@ extern f32 D_0D009568[][4];
extern f32 D_0D0096B8[][4];
extern f32 D_0D009808[][4];
extern s32 unkPad;
extern s8 common_texture_speedometer[];
extern s8 common_texture_speedometer_needle[];
extern s8 common_texture_hud_lap[];
extern u8 common_texture_speedometer[];
extern u8 common_texture_speedometer_needle[];
extern u8 common_texture_hud_lap[];
extern u8 common_texture_hud_123[];
extern s8 common_texture_hud_lap_time[];
extern s8 common_texture_hud_lap_1_on_3[];
extern s8 common_texture_hud_lap_2_on_3[];
extern s8 common_texture_hud_lap_3_on_3[];
extern s8 common_texture_hud_total_time[];
extern s8 common_texture_hud_time[];
extern u8 common_texture_hud_lap_time[];
extern u8 common_texture_hud_lap_1_on_3[];
extern u8 common_texture_hud_lap_2_on_3[];
extern u8 common_texture_hud_lap_3_on_3[];
extern u8 common_texture_hud_total_time[];
extern u8 common_texture_hud_time[];
extern u8 common_texture_hud_normal_digit[];
extern u8 common_texture_hud_place[][4096];
extern s8 D_0D00E258[];
extern s8 D_0D00F258[];
extern s8 D_0D010258[];
extern s8 D_0D011258[];
extern s8 D_0D012258[];
extern s8 D_0D013258[];
extern s8 D_0D014258[];
extern u8 D_0D00E258[];
extern u8 D_0D00F258[];
extern u8 D_0D010258[];
extern u8 D_0D011258[];
extern u8 D_0D012258[];
extern u8 D_0D013258[];
extern u8 D_0D014258[];
extern u8 D_0D015258[][2048];
extern s8 D_0D015A58[];
extern s8 D_0D016258[];
extern s8 D_0D016A58[];
extern u8 D_0D015A58[];
extern u8 D_0D016258[];
extern u8 D_0D016A58[];
extern u8 common_tlut_player_emblem[];
extern s16 tlutPad[];
extern u8 common_texture_player_emblem[][2048];
@@ -285,57 +285,57 @@ extern u8 common_texture_hud_type_C_rank_font[][256];
extern u8 common_tlut_hud_type_C_rank_tiny_font[];
extern u8 common_texture_hud_type_C_rank_tiny_font[][64];
extern u8 common_texture_character_portrait_border[];
extern s8 common_tlut_portrait_mario[];
extern s8 common_tlut_portrait_luigi[];
extern s8 common_tlut_portrait_peach[];
extern s8 common_tlut_portrait_toad[];
extern s8 common_tlut_portrait_yoshi[];
extern s8 common_tlut_portrait_donkey_kong[];
extern s8 common_tlut_portrait_wario[];
extern s8 common_tlut_portrait_bowser[];
extern s8 common_tlut_portrait_bomb_kart_and_question_mark[];
extern s8 common_texture_portrait_mario[];
extern s8 common_texture_portrait_luigi[];
extern s8 common_texture_portrait_peach[];
extern s8 common_texture_portrait_toad[];
extern s8 common_texture_portrait_yoshi[];
extern s8 common_texture_portrait_donkey_kong[];
extern s8 common_texture_portrait_wario[];
extern u8 common_tlut_portrait_mario[];
extern u8 common_tlut_portrait_luigi[];
extern u8 common_tlut_portrait_peach[];
extern u8 common_tlut_portrait_toad[];
extern u8 common_tlut_portrait_yoshi[];
extern u8 common_tlut_portrait_donkey_kong[];
extern u8 common_tlut_portrait_wario[];
extern u8 common_tlut_portrait_bowser[];
extern u8 common_tlut_portrait_bomb_kart_and_question_mark[];
extern u8 common_texture_portrait_mario[];
extern u8 common_texture_portrait_luigi[];
extern u8 common_texture_portrait_peach[];
extern u8 common_texture_portrait_toad[];
extern u8 common_texture_portrait_yoshi[];
extern u8 common_texture_portrait_donkey_kong[];
extern u8 common_texture_portrait_wario[];
extern u8 common_texture_portrait_bowser[];
extern u8 common_texture_portrait_bomb_kart[];
extern u8 common_texture_portrait_question_mark[];
extern s8 common_tlut_item_window_none[];
extern s8 common_tlut_item_window_banana[];
extern s8 common_tlut_item_window_banana_bunch[];
extern s8 common_tlut_item_window_mushroom[];
extern s8 common_tlut_item_window_double_mushroom[];
extern s8 common_tlut_item_window_triple_mushroom[];
extern s8 common_tlut_item_window_super_mushroom[];
extern s8 common_tlut_item_window_blue_shell[];
extern s8 common_tlut_item_window_boo[];
extern s8 common_tlut_item_window_green_shell[];
extern s8 common_tlut_item_window_triple_green_shell[];
extern s8 common_tlut_item_window_red_shell[];
extern s8 common_tlut_item_window_triple_red_shell[];
extern s8 common_tlut_item_window_star[];
extern s8 common_tlut_item_window_thunder_bolt[];
extern s8 common_tlut_item_window_fake_item_box[];
extern u8 common_tlut_item_window_none[];
extern u8 common_tlut_item_window_banana[];
extern u8 common_tlut_item_window_banana_bunch[];
extern u8 common_tlut_item_window_mushroom[];
extern u8 common_tlut_item_window_double_mushroom[];
extern u8 common_tlut_item_window_triple_mushroom[];
extern u8 common_tlut_item_window_super_mushroom[];
extern u8 common_tlut_item_window_blue_shell[];
extern u8 common_tlut_item_window_boo[];
extern u8 common_tlut_item_window_green_shell[];
extern u8 common_tlut_item_window_triple_green_shell[];
extern u8 common_tlut_item_window_red_shell[];
extern u8 common_tlut_item_window_triple_red_shell[];
extern u8 common_tlut_item_window_star[];
extern u8 common_tlut_item_window_thunder_bolt[];
extern u8 common_tlut_item_window_fake_item_box[];
extern u8 common_texture_item_window_none[];
extern s8 common_texture_item_window_banana[];
extern s8 common_texture_item_window_banana_bunch[];
extern s8 common_texture_item_window_mushroom[];
extern s8 common_texture_item_window_double_mushroom[];
extern s8 common_texture_item_window_triple_mushroom[];
extern s8 common_texture_item_window_super_mushroom[];
extern s8 common_texture_item_window_blue_shell[];
extern s8 common_texture_item_window_boo[];
extern s8 common_texture_item_window_green_shell[];
extern s8 common_texture_item_window_triple_green_shell[];
extern s8 common_texture_item_window_red_shell[];
extern s8 common_texture_item_window_triple_red_shell[];
extern s8 common_texture_item_window_star[];
extern s8 common_texture_item_window_thunder_bolt[];
extern s8 common_texture_item_window_fake_item_box[];
extern u8 common_texture_item_window_banana[];
extern u8 common_texture_item_window_banana_bunch[];
extern u8 common_texture_item_window_mushroom[];
extern u8 common_texture_item_window_double_mushroom[];
extern u8 common_texture_item_window_triple_mushroom[];
extern u8 common_texture_item_window_super_mushroom[];
extern u8 common_texture_item_window_blue_shell[];
extern u8 common_texture_item_window_boo[];
extern u8 common_texture_item_window_green_shell[];
extern u8 common_texture_item_window_triple_green_shell[];
extern u8 common_texture_item_window_red_shell[];
extern u8 common_texture_item_window_triple_red_shell[];
extern u8 common_texture_item_window_star[];
extern u8 common_texture_item_window_thunder_bolt[];
extern u8 common_texture_item_window_fake_item_box[];
extern u8 common_tlut_lakitu_countdown[][512];
extern u8 common_tlut_lakitu_checkered_flag[];
extern u8 common_tlut_lakitu_second_lap[];
@@ -344,31 +344,31 @@ extern u8 common_tlut_lakitu_reverse[];
extern u8 common_tlut_lakitu_fishing[];
extern u8 common_texture_particle_leaf[];
extern s8 common_tlut_traffic_light[];
extern s8 common_texture_traffic_light_01[];
extern s8 common_texture_traffic_light_02[];
extern s8 common_texture_traffic_light_03[];
extern s8 common_texture_traffic_light_04[];
extern s8 common_texture_traffic_light_05[];
extern s8 common_texture_traffic_light_06[];
extern s8 common_texture_traffic_light_07[];
extern s8 common_texture_traffic_light_08[];
extern s8 common_texture_traffic_light_09[];
extern s8 common_texture_traffic_light_10[];
extern s8 common_texture_unused_particle_leaf[];
extern u8 common_tlut_traffic_light[];
extern u8 common_texture_traffic_light_01[];
extern u8 common_texture_traffic_light_02[];
extern u8 common_texture_traffic_light_03[];
extern u8 common_texture_traffic_light_04[];
extern u8 common_texture_traffic_light_05[];
extern u8 common_texture_traffic_light_06[];
extern u8 common_texture_traffic_light_07[];
extern u8 common_texture_traffic_light_08[];
extern u8 common_texture_traffic_light_09[];
extern u8 common_texture_traffic_light_10[];
extern u8 common_texture_unused_particle_leaf[];
extern u8 D_0D0293D8[];
extern s8 D_0D029458[];
extern u8 D_0D029458[];
extern u8 common_texture_bomb[][1024];
extern s8 D_0D029C58[];
extern s8 D_0D02A058[];
extern s8 D_0D02A458[];
extern u8 D_0D029C58[];
extern u8 D_0D02A058[];
extern u8 D_0D02A458[];
extern u8 common_tlut_bomb[];
extern u8 D_0D02AA58[];
extern u8 common_texture_particle_spark[][1024];
extern u8 common_texture_particle_smoke[][1024];
extern s8 common_texture_minimap_finish_line[];
extern s8 common_texture_minimap_kart_character[][128];
extern s8 common_texture_minimap_progress_dot[];
extern u8 common_texture_minimap_finish_line[];
extern u8 common_texture_minimap_kart_character[][128];
extern u8 common_texture_minimap_progress_dot[];
/** @endcond */
+94 -94
View File
@@ -18,23 +18,23 @@
// Somehow these symbols need to be linked in. For now, raw addresses are used.
/*
extern s8 D_03004000[];
extern s8 D_03004800[];
extern s8 D_03005000[];
extern s8 D_03005800[];
extern s8 D_03006000[];
extern s8 D_03006800[];
extern s8 D_03007000[];
extern s8 D_03007800[];
extern s8 D_03008000[];
extern s8 D_03008800[];
extern u8 D_03004000[];
extern u8 D_03004800[];
extern u8 D_03005000[];
extern u8 D_03005800[];
extern u8 D_03006000[];
extern u8 D_03006800[];
extern u8 D_03007000[];
extern u8 D_03007800[];
extern u8 D_03008000[];
extern u8 D_03008800[];
*/
s8 common_tlut_finish_line_banner[] = { // tlut
u8 common_tlut_finish_line_banner[] = { // tlut
#include "assets/finish_line_banner/common_tlut_finish_line_banner.inc.c"
};
s8 common_texture_particle_fire[] = { // tlut
u8 common_texture_particle_fire[] = { // tlut
#include "textures/common/common_texture_particle_fire.rgba16.inc.c"
};
@@ -396,7 +396,7 @@ Vtx D_0D001EB8[] = {
};
// D_0D001EE8
s8 common_texture_item_box_question_mark[] = {
u8 common_texture_item_box_question_mark[] = {
#include "textures/common/common_texture_item_box_question_mark.rgba16.inc.c"
};
@@ -578,11 +578,11 @@ Vtx common_vtx_flat_banana[] = {
// D_0D003348
s8 common_texture_banana[] = {
u8 common_texture_banana[] = {
#include "textures/common/common_texture_banana.rgba16.inc.c"
};
s8 common_texture_flat_banana[] = {
u8 common_texture_flat_banana[] = {
#include "textures/common/common_texture_flat_banana.rgba16.inc.c"
};
@@ -632,15 +632,15 @@ Gfx common_model_flat_banana[] = {
// tlut size 8x29
//! @todo What is this?
s8 common_tlut_trees_import[] = {
u8 common_tlut_trees_import[] = {
#include "assets/trees/common_tlut_trees_import.inc.c"
};
s8 common_tlut_green_shell[] = {
u8 common_tlut_green_shell[] = {
#include "assets/greenshell/common_tlut_green_shell.inc.c"
};
// 5038
s8 common_tlut_blue_shell[] = {
u8 common_tlut_blue_shell[] = {
#include "assets/blueshell/common_tlut_blue_shell.inc.c"
};
@@ -1269,20 +1269,20 @@ Gfx D_0D006A40[] = {
// Texture Block shadow i4
s8 D_0D006A58[] = {
u8 D_0D006A58[] = {
#include "textures/common/132B50_06A58.i4.inc.c"
};
s8 D_0D006AD8[] = {
u8 D_0D006AD8[] = {
#include "textures/common/132B50_06AD8.ia8.inc.c"
};
// tlut
s8 common_tlut_debug_font[] = {
u8 common_tlut_debug_font[] = {
#include "assets/debug_font/common_tlut_debug_font.inc.c"
};
s8 common_texture_debug_font[] = {
u8 common_texture_debug_font[] = {
#include "assets/debug_font/common_texture_debug_font.inc.c"
};
@@ -2566,17 +2566,17 @@ f32 D_0D009808[][4] = {
};
// Odometer speedometer
s8 common_texture_speedometer[] = {
u8 common_texture_speedometer[] = {
#include "textures/common/common_texture_speedometer.i4.inc.c"
};
// i8? odometer needle
s8 common_texture_speedometer_needle[] = {
u8 common_texture_speedometer_needle[] = {
#include "textures/common/common_texture_speedometer_needle.i4.inc.c"
};
// Lap UI Texture
s8 common_texture_hud_lap[] = {
u8 common_texture_hud_lap[] = {
#include "textures/common/common_texture_hud_lap.rgba16.inc.c"
};
@@ -2586,32 +2586,32 @@ u8 common_texture_hud_123[] = {
};
// Lap
s8 common_texture_hud_lap_time[] = {
u8 common_texture_hud_lap_time[] = {
#include "textures/common/common_texture_hud_lap_time.rgba16.inc.c"
};
// 1/3
s8 common_texture_hud_lap_1_on_3[] = {
u8 common_texture_hud_lap_1_on_3[] = {
#include "textures/common/common_texture_hud_lap_1_on_3.rgba16.inc.c"
};
// 2/3
s8 common_texture_hud_lap_2_on_3[] = {
u8 common_texture_hud_lap_2_on_3[] = {
#include "textures/common/common_texture_hud_lap_2_on_3.rgba16.inc.c"
};
// 3/3
s8 common_texture_hud_lap_3_on_3[] = {
u8 common_texture_hud_lap_3_on_3[] = {
#include "textures/common/common_texture_hud_lap_3_on_3.rgba16.inc.c"
};
// total
s8 common_texture_hud_total_time[] = {
u8 common_texture_hud_total_time[] = {
#include "textures/common/common_texture_hud_total_time.rgba16.inc.c"
};
// time
s8 common_texture_hud_time[] = {
u8 common_texture_hud_time[] = {
#include "textures/common/common_texture_hud_time.rgba16.inc.c"
};
@@ -2773,83 +2773,83 @@ u8 common_texture_character_portrait_border[] = {
};
// 1A4D8 mario tlut
s8 common_tlut_portrait_mario[] = {
u8 common_tlut_portrait_mario[] = {
#include "assets/character_portraits/common_tlut_portrait_mario.inc.c"
};
// 1A6D8 luigi tlut
s8 common_tlut_portrait_luigi[] = {
u8 common_tlut_portrait_luigi[] = {
#include "assets/character_portraits/common_tlut_portrait_luigi.inc.c"
};
// 1A8D8 peach tlut
s8 common_tlut_portrait_peach[] = {
u8 common_tlut_portrait_peach[] = {
#include "assets/character_portraits/common_tlut_portrait_peach.inc.c"
};
// 1AAD8 toad tlut
s8 common_tlut_portrait_toad[] = {
u8 common_tlut_portrait_toad[] = {
#include "assets/character_portraits/common_tlut_portrait_toad.inc.c"
};
// 1ACD8 yoshi tlut
s8 common_tlut_portrait_yoshi[] = {
u8 common_tlut_portrait_yoshi[] = {
#include "assets/character_portraits/common_tlut_portrait_yoshi.inc.c"
};
// 1AED8 dk tlut
s8 common_tlut_portrait_donkey_kong[] = {
u8 common_tlut_portrait_donkey_kong[] = {
#include "assets/character_portraits/common_tlut_portrait_donkey_kong.inc.c"
};
// 1B0D8 wario tlut
s8 common_tlut_portrait_wario[] = {
u8 common_tlut_portrait_wario[] = {
#include "assets/character_portraits/common_tlut_portrait_wario.inc.c"
};
// 1B2D8 bowser tlut
s8 common_tlut_portrait_bowser[] = {
u8 common_tlut_portrait_bowser[] = {
#include "assets/character_portraits/common_tlut_portrait_bowser.inc.c"
};
// 1B4D8 bob-omb tlut and question mark?
s8 common_tlut_portrait_bomb_kart_and_question_mark[] = {
u8 common_tlut_portrait_bomb_kart_and_question_mark[] = {
#include "assets/character_portraits/common_tlut_portrait_bomb_kart_and_question_mark.inc.c"
};
// Mario
s8 common_texture_portrait_mario[] = {
u8 common_texture_portrait_mario[] = {
#include "assets/character_portraits/common_texture_portrait_mario.inc.c"
};
// Luigi
s8 common_texture_portrait_luigi[] = {
u8 common_texture_portrait_luigi[] = {
#include "assets/character_portraits/common_texture_portrait_luigi.inc.c"
};
// Peach
s8 common_texture_portrait_peach[] = {
u8 common_texture_portrait_peach[] = {
#include "assets/character_portraits/common_texture_portrait_peach.inc.c"
};
// Toad
s8 common_texture_portrait_toad[] = {
u8 common_texture_portrait_toad[] = {
#include "assets/character_portraits/common_texture_portrait_toad.inc.c"
};
// Yoshi
s8 common_texture_portrait_yoshi[] = {
u8 common_texture_portrait_yoshi[] = {
#include "assets/character_portraits/common_texture_portrait_yoshi.inc.c"
};
// Donkey Kong
s8 common_texture_portrait_donkey_kong[] = {
u8 common_texture_portrait_donkey_kong[] = {
#include "assets/character_portraits/common_texture_portrait_donkey_kong.inc.c"
};
// Wario
s8 common_texture_portrait_wario[] = {
u8 common_texture_portrait_wario[] = {
#include "assets/character_portraits/common_texture_portrait_wario.inc.c"
};
@@ -2869,67 +2869,67 @@ u8 common_texture_portrait_question_mark[] = {
};
// 1DED8 tlut item frames
s8 common_tlut_item_window_none[] = {
u8 common_tlut_item_window_none[] = {
#include "assets/item_window/common_tlut_item_window_none.inc.c"
};
s8 common_tlut_item_window_banana[] = {
u8 common_tlut_item_window_banana[] = {
#include "assets/item_window/common_tlut_item_window_banana.inc.c"
};
s8 common_tlut_item_window_banana_bunch[] = {
u8 common_tlut_item_window_banana_bunch[] = {
#include "assets/item_window/common_tlut_item_window_banana_bunch.inc.c"
};
s8 common_tlut_item_window_mushroom[] = {
u8 common_tlut_item_window_mushroom[] = {
#include "assets/item_window/common_tlut_item_window_mushroom.inc.c"
};
s8 common_tlut_item_window_double_mushroom[] = {
u8 common_tlut_item_window_double_mushroom[] = {
#include "assets/item_window/common_tlut_item_window_double_mushroom.inc.c"
};
s8 common_tlut_item_window_triple_mushroom[] = {
u8 common_tlut_item_window_triple_mushroom[] = {
#include "assets/item_window/common_tlut_item_window_triple_mushroom.inc.c"
};
s8 common_tlut_item_window_super_mushroom[] = {
u8 common_tlut_item_window_super_mushroom[] = {
#include "assets/item_window/common_tlut_item_window_super_mushroom.inc.c"
};
s8 common_tlut_item_window_blue_shell[] = {
u8 common_tlut_item_window_blue_shell[] = {
#include "assets/item_window/common_tlut_item_window_blue_shell.inc.c"
};
s8 common_tlut_item_window_boo[] = {
u8 common_tlut_item_window_boo[] = {
#include "assets/item_window/common_tlut_item_window_boo.inc.c"
};
s8 common_tlut_item_window_green_shell[] = {
u8 common_tlut_item_window_green_shell[] = {
#include "assets/item_window/common_tlut_item_window_green_shell.inc.c"
};
s8 common_tlut_item_window_triple_green_shell[] = {
u8 common_tlut_item_window_triple_green_shell[] = {
#include "assets/item_window/common_tlut_item_window_triple_green_shell.inc.c"
};
s8 common_tlut_item_window_red_shell[] = {
u8 common_tlut_item_window_red_shell[] = {
#include "assets/item_window/common_tlut_item_window_red_shell.inc.c"
};
s8 common_tlut_item_window_triple_red_shell[] = {
u8 common_tlut_item_window_triple_red_shell[] = {
#include "assets/item_window/common_tlut_item_window_triple_red_shell.inc.c"
};
s8 common_tlut_item_window_star[] = {
u8 common_tlut_item_window_star[] = {
#include "assets/item_window/common_tlut_item_window_star.inc.c"
};
s8 common_tlut_item_window_thunder_bolt[] = {
u8 common_tlut_item_window_thunder_bolt[] = {
#include "assets/item_window/common_tlut_item_window_thunder_bolt.inc.c"
};
s8 common_tlut_item_window_fake_item_box[] = {
u8 common_tlut_item_window_fake_item_box[] = {
#include "assets/item_window/common_tlut_item_window_fake_item_box.inc.c"
};
@@ -2938,63 +2938,63 @@ u8 common_texture_item_window_none[] = {
#include "assets/item_window/common_texture_item_window_none.inc.c"
};
s8 common_texture_item_window_banana[] = {
u8 common_texture_item_window_banana[] = {
#include "assets/item_window/common_texture_item_window_banana.inc.c"
};
s8 common_texture_item_window_banana_bunch[] = {
u8 common_texture_item_window_banana_bunch[] = {
#include "assets/item_window/common_texture_item_window_banana_bunch.inc.c"
};
s8 common_texture_item_window_mushroom[] = {
u8 common_texture_item_window_mushroom[] = {
#include "assets/item_window/common_texture_item_window_mushroom.inc.c"
};
s8 common_texture_item_window_double_mushroom[] = {
u8 common_texture_item_window_double_mushroom[] = {
#include "assets/item_window/common_texture_item_window_double_mushroom.inc.c"
};
s8 common_texture_item_window_triple_mushroom[] = {
u8 common_texture_item_window_triple_mushroom[] = {
#include "assets/item_window/common_texture_item_window_triple_mushroom.inc.c"
};
s8 common_texture_item_window_super_mushroom[] = {
u8 common_texture_item_window_super_mushroom[] = {
#include "assets/item_window/common_texture_item_window_super_mushroom.inc.c"
};
s8 common_texture_item_window_blue_shell[] = {
u8 common_texture_item_window_blue_shell[] = {
#include "assets/item_window/common_texture_item_window_blue_shell.inc.c"
};
s8 common_texture_item_window_boo[] = {
u8 common_texture_item_window_boo[] = {
#include "assets/item_window/common_texture_item_window_boo.inc.c"
};
s8 common_texture_item_window_green_shell[] = {
u8 common_texture_item_window_green_shell[] = {
#include "assets/item_window/common_texture_item_window_green_shell.inc.c"
};
s8 common_texture_item_window_triple_green_shell[] = {
u8 common_texture_item_window_triple_green_shell[] = {
#include "assets/item_window/common_texture_item_window_triple_green_shell.inc.c"
};
s8 common_texture_item_window_red_shell[] = {
u8 common_texture_item_window_red_shell[] = {
#include "assets/item_window/common_texture_item_window_red_shell.inc.c"
};
s8 common_texture_item_window_triple_red_shell[] = {
u8 common_texture_item_window_triple_red_shell[] = {
#include "assets/item_window/common_texture_item_window_triple_red_shell.inc.c"
};
s8 common_texture_item_window_star[] = {
u8 common_texture_item_window_star[] = {
#include "assets/item_window/common_texture_item_window_star.inc.c"
};
s8 common_texture_item_window_thunder_bolt[] = {
u8 common_texture_item_window_thunder_bolt[] = {
#include "assets/item_window/common_texture_item_window_thunder_bolt.inc.c"
};
s8 common_texture_item_window_fake_item_box[] = {
u8 common_texture_item_window_fake_item_box[] = {
#include "assets/item_window/common_texture_item_window_fake_item_box.inc.c"
};
@@ -3039,49 +3039,49 @@ u8 common_tlut_lakitu_fishing[] = {
};
// unused traffic light tlut
UNUSED s8 common_tlut_traffic_light[] = {
UNUSED u8 common_tlut_traffic_light[] = {
#include "assets/unused_traffic_light/common_tlut_traffic_light.inc.c"
};
// unused traffic light textures
UNUSED s8 common_texture_traffic_light_01[] = {
UNUSED u8 common_texture_traffic_light_01[] = {
#include "assets/unused_traffic_light/common_texture_traffic_light_01.inc.c"
};
UNUSED s8 common_texture_traffic_light_02[] = {
UNUSED u8 common_texture_traffic_light_02[] = {
#include "assets/unused_traffic_light/common_texture_traffic_light_02.inc.c"
};
UNUSED s8 common_texture_traffic_light_03[] = {
UNUSED u8 common_texture_traffic_light_03[] = {
#include "assets/unused_traffic_light/common_texture_traffic_light_03.inc.c"
};
UNUSED s8 common_texture_traffic_light_04[] = {
UNUSED u8 common_texture_traffic_light_04[] = {
#include "assets/unused_traffic_light/common_texture_traffic_light_04.inc.c"
};
UNUSED s8 common_texture_traffic_light_05[] = {
UNUSED u8 common_texture_traffic_light_05[] = {
#include "assets/unused_traffic_light/common_texture_traffic_light_05.inc.c"
};
UNUSED s8 common_texture_traffic_light_06[] = {
UNUSED u8 common_texture_traffic_light_06[] = {
#include "assets/unused_traffic_light/common_texture_traffic_light_06.inc.c"
};
UNUSED s8 common_texture_traffic_light_07[] = {
UNUSED u8 common_texture_traffic_light_07[] = {
#include "assets/unused_traffic_light/common_texture_traffic_light_07.inc.c"
};
UNUSED s8 common_texture_traffic_light_08[] = {
UNUSED u8 common_texture_traffic_light_08[] = {
#include "assets/unused_traffic_light/common_texture_traffic_light_08.inc.c"
};
UNUSED s8 common_texture_traffic_light_09[] = {
UNUSED u8 common_texture_traffic_light_09[] = {
#include "assets/unused_traffic_light/common_texture_traffic_light_09.inc.c"
};
UNUSED s8 common_texture_traffic_light_10[] = {
UNUSED u8 common_texture_traffic_light_10[] = {
#include "assets/unused_traffic_light/common_texture_traffic_light_10.inc.c"
};
@@ -3091,7 +3091,7 @@ u8 common_texture_particle_leaf[] = {
};
// leaf
UNUSED s8 common_texture_unused_particle_leaf[] = {
UNUSED u8 common_texture_unused_particle_leaf[] = {
#include "textures/common/common_texture_unused_particle_leaf.rgba16.inc.c"
};
@@ -3102,7 +3102,7 @@ u8 D_0D0293D8[] = {
};
// Smoke?
s8 D_0D029458[] = {
u8 D_0D029458[] = {
#include "textures/common/132B50_29458.i8.inc.c"
};
@@ -3163,11 +3163,11 @@ u8 common_texture_particle_smoke[][1024] = {
};
// minimap cars
s8 common_texture_minimap_finish_line[] = {
u8 common_texture_minimap_finish_line[] = {
#include "assets/minimap_icons/common_texture_minimap_finish_line.inc.c"
};
s8 common_texture_minimap_kart_character[][128] = {
u8 common_texture_minimap_kart_character[][128] = {
{ // Mario
#include "assets/minimap_icons/common_texture_minimap_kart_mario.inc.c"
},
@@ -3194,6 +3194,6 @@ s8 common_texture_minimap_kart_character[][128] = {
},
};
s8 common_texture_minimap_progress_dot[] = {
u8 common_texture_minimap_progress_dot[] = {
#include "assets/minimap_icons/common_texture_minimap_progress_dot.inc.c"
};
+2 -2
View File
@@ -18,7 +18,7 @@
#include <code_8003DC40.h>
#include <code_80057C60.h>
#include <code_8006E9C0.h>
#include <code_80071F00.h>
#include <update_objects.h>
#include <code_80086E70.h>
#include <effects.h>
#include <code_80091440.h>
@@ -34,7 +34,7 @@
#include <credits.h>
#include <data_segment2.h>
#include <buffers.h>
#include <hud_renderer.h>
#include <render_objects.h>
#include <kart_dma.h>
#include <main.h>
#include <math_util_2.h>
+2 -2
View File
@@ -11,7 +11,7 @@
#include "code_80005FD0.h"
#include "render_player.h"
#include "player_controller.h"
#include "hud_renderer.h"
#include "render_objects.h"
#include "code_80057C60.h"
#include "effects.h"
#include "audio/external.h"
@@ -1908,7 +1908,7 @@ void func_80090970(Player *player, s8 playerId, s8 arg2) {
case 2:
func_80090178(player, playerId, sp44, sp38);
// Fakematch found by Verti, who knows what's going on here
player->rotation[1] = (u16) -get_angle_between_points(sp44, sp38) & 0xFFFF;
player->rotation[1] = (u16) -get_angle_between_two_vectors(sp44, sp38) & 0xFFFF;
player->pos[0] = sp44[0];
player->pos[1] = sp44[1] + 40.0f;
player->pos[2] = sp44[2];
+1 -1
View File
@@ -682,7 +682,7 @@ void play_sound_congratulation(UNUSED struct CinematicCamera *camera) {
}
/**
* Played in ceremony opening with ballons.
* Played in ceremony opening with balloons.
*/
void play_sound_balloon_pop(UNUSED struct CinematicCamera *camera) {
play_sound2(SOUND_CEREMONY_BALLOON_POP);
+3 -3
View File
@@ -63,8 +63,8 @@ void func_80280038(void) {
render_set_position(matrix, 0);
render_course(D_800DC5EC);
render_course_actors(D_800DC5EC);
func_80058090(0);
func_80058538(0);
render_object(PLAYER_ONE+SCREEN_MODE_1P);
render_player_snow_effect(PLAYER_ONE+SCREEN_MODE_1P);
transition_sliding_borders();
func_80281C40();
init_rdp();
@@ -165,7 +165,7 @@ void load_credits(void) {
camera->up[2] = 0.0f;
init_cinematic_camera();
func_80003040();
init_object_list();
init_hud();
func_80093E60();
func_80092688();
if (D_800DC5EC) {}
+1 -1
View File
@@ -157,7 +157,7 @@ void load_ceremony_cutscene(void) {
debug_switch_character_ceremony_cutscene();
func_802818BC();
func_8003D080();
init_object_list();
init_hud();
func_8001C05C();
balloons_and_fireworks_init();
func_802816B8();
+3 -2
View File
@@ -6,13 +6,14 @@
#include "main.h"
#include "math_util.h"
#include "skybox_and_splitscreen.h"
#include "hud_renderer.h"
#include "render_objects.h"
#include "code_80057C60.h"
#include "code_80091750.h"
#include "podium_ceremony_actors.h"
#include "ceremony_and_credits.h"
#include "podium_ceremony_actors.h"
#include "render_player.h"
#include "defines.h"
struct UnkStruct80287560 {
s16 unk0;
@@ -79,7 +80,7 @@ void func_80281D00(void) {
render_players_on_screen_one();
gSPDisplayList(gDisplayListHead++, VIRTUAL_TO_PHYSICAL2(&D_80284EE0));
update_actors_loop();
func_80058090(0);
render_object(PLAYER_ONE+SCREEN_MODE_1P);
func_80021B0C();
gSPDisplayList(gDisplayListHead++, VIRTUAL_TO_PHYSICAL2(&D_80284EE0));
func_80093F10();
+2 -2
View File
@@ -9,7 +9,7 @@
#include "memory.h"
#include "common_textures.h"
#include "render_player.h"
#include "hud_renderer.h"
#include "render_objects.h"
#include "podium_ceremony_actors.h"
#include "camera_junk.h"
#include "player_controller.h"
@@ -471,7 +471,7 @@ void podium_ceremony_loop(void) {
func_8005A070();
if (D_802874D8.unk1C != 0) {
func_8001C14C();
func_800097E0();
update_vehicles();
}
func_80281D00();
func_80281540();
+1 -1
View File
@@ -3,7 +3,7 @@
#include "common_structs.h"
enum ActorType {
enum CeremonyActorType {
Initial,
Balloon,
FireworkCone,
+26 -26
View File
@@ -18,7 +18,7 @@
#include "profiler.h"
#include "race_logic.h"
#include "skybox_and_splitscreen.h"
#include "hud_renderer.h"
#include "render_objects.h"
#include "effects.h"
#include "code_80281780.h"
#include "audio/external.h"
@@ -612,7 +612,7 @@ void race_logic_loop(void) {
sNumVBlanks = 0;
profiler_log_thread5_time(LEVEL_SCRIPT_EXECUTE);
D_8015F788 = 0;
func_802A59A4();
render_player_one_1p_screen();
if (!gEnableDebugMode) {
D_800DC514 = FALSE;
} else {
@@ -684,11 +684,11 @@ void race_logic_loop(void) {
}
D_8015F788 = 0;
if (gPlayerWinningIndex == 0) {
func_802A5FAC();
func_802A5CB4();
render_player_two_2p_screen_vertical();
render_player_one_2p_screen_vertical();
} else {
func_802A5CB4();
func_802A5FAC();
render_player_one_2p_screen_vertical();
render_player_two_2p_screen_vertical();
}
break;
@@ -730,11 +730,11 @@ void race_logic_loop(void) {
}
D_8015F788 = 0;
if (gPlayerWinningIndex == 0) {
func_802A65B8();
func_802A62A4();
render_player_two_2p_screen_horizontal();
render_player_one_2p_screen_horizontal();
} else {
func_802A62A4();
func_802A65B8();
render_player_one_2p_screen_horizontal();
render_player_two_2p_screen_horizontal();
}
break;
@@ -802,25 +802,25 @@ void race_logic_loop(void) {
}
D_8015F788 = 0;
if (gPlayerWinningIndex == 0) {
func_802A6BB0();
func_802A6E94();
func_802A7178();
func_802A68CC();
render_player_two_3p_4p_screen();
render_player_three_3p_4p_screen();
render_player_four_3p_4p_screen();
render_player_one_3p_4p_screen();
} else if (gPlayerWinningIndex == 1) {
func_802A68CC();
func_802A6E94();
func_802A7178();
func_802A6BB0();
render_player_one_3p_4p_screen();
render_player_three_3p_4p_screen();
render_player_four_3p_4p_screen();
render_player_two_3p_4p_screen();
} else if (gPlayerWinningIndex == 2) {
func_802A68CC();
func_802A6BB0();
func_802A7178();
func_802A6E94();
render_player_one_3p_4p_screen();
render_player_two_3p_4p_screen();
render_player_four_3p_4p_screen();
render_player_three_3p_4p_screen();
} else {
func_802A68CC();
func_802A6BB0();
func_802A6E94();
func_802A7178();
render_player_one_3p_4p_screen();
render_player_two_3p_4p_screen();
render_player_three_3p_4p_screen();
render_player_four_3p_4p_screen();
}
break;
}
+7 -7
View File
@@ -400,8 +400,8 @@ f32 func_80041724(f32 x, f32 z, u16 angle) {
return (coss(angle) * z) + (sinAngle * x);
}
s32 func_80041770(f32 arg0, f32 arg1, f32 arg2, f32 arg3) {
return atan2s(arg1 - arg0, arg3 - arg2);
s32 get_angle_between_xy(f32 x1, f32 x2, f32 y1, f32 y2) {
return atan2s(x2 - x1, y2 - y1);
}
u16 func_800417B4(u16 angle1, u16 angle2) {
@@ -450,14 +450,14 @@ s32 func_80041924(Collision *arg0, Vec3f arg1) {
return ret;
}
s32 func_80041980(Vec3f arg0, Camera *arg1, u16 arg2) {
bool is_particle_on_screen(Vec3f arg0, Camera *arg1, u16 arg2) {
u16 temp_t9;
s32 ret;
ret = 0;
temp_t9 = (func_80041770(arg1->pos[0], arg0[0], arg1->pos[2], arg0[2]) + (arg2 / 2)) - arg1->rot[1];
ret = FALSE;
temp_t9 = (get_angle_between_xy(arg1->pos[0], arg0[0], arg1->pos[2], arg0[2]) + (arg2 / 2)) - arg1->rot[1];
if ((temp_t9 >= 0) && (arg2 >= temp_t9)) {
ret = 1;
ret = TRUE;
}
return ret;
}
@@ -630,7 +630,7 @@ void func_80041D34(void) {
}
}
void func_80041EF4(void) {
void set_matrix_hud_screen(void) {
gDPSetTexturePersp(gDisplayListHead++, G_TP_PERSP);
gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->mtxOrtho), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_PROJECTION);
}
+3 -3
View File
@@ -54,12 +54,12 @@ Vec3f *vec3f_cross_product(Vec3f, Vec3f, Vec3f);
s32 func_80041658(f32, f32);
f32 func_800416D8(f32, f32, u16);
f32 func_80041724(f32, f32, u16);
s32 func_80041770(f32, f32, f32, f32);
s32 get_angle_between_xy(f32, f32, f32, f32);
u16 func_800417B4(u16, u16);
s32 func_800418AC(f32, f32, Vec3f);
s32 func_800418E8(f32, f32, Vec3f);
s32 func_80041924(Collision*, Vec3f);
s32 func_80041980(Vec3f, Camera*, u16);
s32 is_particle_on_screen(Vec3f, Camera*, u16);
void func_800419F8(void);
void mtfx_translation_x_y(Mat4, s32, s32);
void mtxf_u16_rotate_z(Mat4, u16);
@@ -68,7 +68,7 @@ void mtxf_rotate_z_scale_x_y(Mat4, u16, f32);
void mtxf_translation_x_y_rotate_z_scale_x_y(Mat4, s32, s32, u16, f32);
void func_80041D24(void);
void func_80041D34(void);
void func_80041EF4(void);
void set_matrix_hud_screen(void);
void func_80042330(s32, s32, u16, f32);
void mtxf_set_matrix_transformation(Mat4, Vec3f, Vec3su, f32);
void mtxf_set_matrix_scale_transl(Mat4, Vec3f, Vec3f, f32);
+14 -14
View File
@@ -258,20 +258,20 @@ void options_menu_act(struct Controller *controller, u16 arg1) {
sp2C = TRUE;
sp38->unk8 = -1;
}
if (sp2C && gSoundMode != sp38->unk4) {
if (sp2C && gSoundMode != sp38->cursor) {
gSaveData.main.soundMode = gSoundMode;
write_save_data_grand_prix_points_and_sound_mode();
update_save_data_backup();
sp38->unk4 = gSoundMode;
sp38->cursor = gSoundMode;
}
if (btnAndStick & B_BUTTON) {
func_8009E280();
play_sound2(SOUND_MENU_GO_BACK);
if (gSoundMode != sp38->unk4) {
if (gSoundMode != sp38->cursor) {
gSaveData.main.soundMode = gSoundMode;
write_save_data_grand_prix_points_and_sound_mode();
update_save_data_backup();
sp38->unk4 = gSoundMode;
sp38->cursor = gSoundMode;
}
return;
}
@@ -305,7 +305,7 @@ void options_menu_act(struct Controller *controller, u16 arg1) {
switch (sp2C) {
case PFS_INVALID_DATA:
D_8018EDEC = 0x46;
sp38->unk4 = 0;
sp38->cursor = 0;
play_sound2(SOUND_MENU_SELECT);
break;
case PFS_NO_ERROR:
@@ -486,7 +486,7 @@ void options_menu_act(struct Controller *controller, u16 arg1) {
D_8018EDEC = 0x38;
} else {
D_8018EDEC = 0x3A;
sp38->unk4 = 0;
sp38->cursor = 0;
}
play_sound2(SOUND_MENU_SELECT);
}
@@ -540,7 +540,7 @@ void options_menu_act(struct Controller *controller, u16 arg1) {
} else {
D_8018EDEC = 0x3A;
play_sound2(SOUND_MENU_SELECT);
sp38->unk4 = 0;
sp38->cursor = 0;
}
}
// return?
@@ -549,9 +549,9 @@ void options_menu_act(struct Controller *controller, u16 arg1) {
case 0x3A:
{
if (arg1 == 0) {
sp38->unk4 += 1;
sp38->cursor += 1;
}
if (sp38->unk4 >= 3) {
if (sp38->cursor >= 3) {
D_8018EDEC = 0x3B;
}
break;
@@ -584,9 +584,9 @@ void options_menu_act(struct Controller *controller, u16 arg1) {
case 0x46:
{
if (arg1 == 0) {
sp38->unk4 += 1;
sp38->cursor += 1;
}
if (sp38->unk4 >= 3) {
if (sp38->cursor >= 3) {
D_8018EDEC = 0x47;
}
break;
@@ -1986,12 +1986,12 @@ void func_800B44BC(void) {
}
// Likely checks that the user is actually in the menus and not racing.
s32 func_800B4520(void) {
bool func_800B4520(void) {
if ((D_8018E7B0 == 2) || (D_8018E7B0 == 3) || (D_8018E7B0 == 4) || (D_8018E7B0 == 7)) {
return 1;
return TRUE;
}
return 0;
return FALSE;
}
UNUSED void func_800B4560(s32 arg0, s32 arg1) {
+3 -3
View File
@@ -1696,7 +1696,7 @@ void func_8002B9CC(Player *player, s8 arg1, UNUSED s32 arg2) {
func_8008C73C(player, arg1);
}
}
temp = (-(s16)get_angle_between_points(player->pos, &player->copy_rotation_x));
temp = (-(s16)get_angle_between_two_vectors(player->pos, &player->copy_rotation_x));
temp2 = (player->rotation[1] - player->unk_0C0);
temp = temp - temp2;
player->unk_234 = temp / 182;
@@ -1739,7 +1739,7 @@ void func_8002BB9C(Player *player, f32 *arg1, f32 *arg2, UNUSED s8 arg3, UNUSED
mtxf_translate_vec3f_mat3(sp4C, sp64);
var_v0 = -(s16)get_angle_between_points(sp58, sp4C);
var_v0 = -(s16)get_angle_between_two_vectors(sp58, sp4C);
t0 = player->rotation[1];
var_v0 = 0x10000 + (t0 - var_v0);
var_v0 /= 182;
@@ -2160,7 +2160,7 @@ void func_8002D028(Player *player, s8 arg1) {
sp4C[1] = 0;
sp4C[2] = D_80165230[D_80165270[arg1]];
temp = -(s16)get_angle_between_points(player->pos, sp4C);
temp = -(s16)get_angle_between_two_vectors(player->pos, sp4C);
temp2 = player->rotation[1];
temp = (temp - temp2);
+87 -115
View File
@@ -17,7 +17,7 @@
#include "waypoints.h"
#include "macros.h"
#include "code_80005FD0.h"
#include "code_80071F00.h"
#include "update_objects.h"
#include "effects.h"
#include "collision.h"
#include "audio/external.h"
@@ -33,7 +33,7 @@ u8 *D_802BA054;
u8 *D_802BA058;
struct Actor *D_802BA05C;
struct Actor *gActorHotAirBalloonItemBox;
s8 gTLUTRedShell[512]; // tlut 256
u16 D_802BA260;
@@ -414,7 +414,7 @@ void func_8029794C(Vec3f arg0, Vec3s arg1, f32 arg2) {
Mat4 sp20;
arg0[1] += 2.0f;
func_802B5F74(sp20, arg0, arg1);
mtxf_pos_rotation_xyz(sp20, arg0, arg1);
mtxf_scale(sp20, arg2);
if (render_set_position(sp20, 0) != 0) {
@@ -571,7 +571,7 @@ void update_actor_kiwano_fruit(struct KiwanoFruit *fruit) {
}
}
#include "actors/boat.inc.c"
#include "actors/paddle_boat/update.inc.c"
#include "actors/train.inc.c"
@@ -893,7 +893,7 @@ void func_80298D7C(Camera *camera, Mat4 arg1, UNUSED struct Actor *actor) {
test &= 0xF;
test = (s16)test;
if (test == 6) {
func_802B5F74(sp90, spD4, sp88);
mtxf_pos_rotation_xyz(sp90, spD4, sp88);
if (!(gMatrixObjectCount < MTX_OBJECT_POOL_SIZE)) { break; }
render_set_position(sp90, 0);
goto dummylabel;
@@ -1302,12 +1302,12 @@ void render_actor_banana(Camera *camera, UNUSED Mat4 arg1, struct BananaActor *b
func_802972B8(camera, (struct Actor *) banana);
if (banana->state == 5) {
func_802B5F74(sp3C, banana->pos, banana->rot);
mtxf_pos_rotation_xyz(sp3C, banana->pos, banana->rot);
} else {
sp7C[0] = 0;
sp7C[1] = 0;
sp7C[2] = 0;
func_802B5F74(sp3C, banana->pos, sp7C);
mtxf_pos_rotation_xyz(sp3C, banana->pos, sp7C);
}
maxObjectsReached = render_set_position(sp3C, 0) == 0;
@@ -1405,41 +1405,7 @@ UNUSED void func_8029AE14() {
}
// This likely attaches the paddle wheel to the boat
void func_8029AE1C(Camera *arg0, struct PaddleWheelBoat *boat, UNUSED Mat4 arg2, u16 arg3) {
UNUSED s32 pad[3];
Vec3f sp120;
Mat4 spE0;
Mat4 spA0;
Mat4 sp60;
f32 temp;
if ((arg3 > 20) && (arg3 < 25)) { return; }
temp = is_within_render_distance(arg0->pos, boat->pos, arg0->rot[1], 90000.0f, gCameraZoom[arg0 - camera1], 9000000.0f);
if (temp < 0.0f) { return; }
gSPSetLights1(gDisplayListHead++, D_800DC610[1]);
gSPSetGeometryMode(gDisplayListHead++, G_SHADE | G_LIGHTING | G_SHADING_SMOOTH);
func_802B5F74(spE0, boat->pos, boat->boatRot);
if (render_set_position(spE0, 1) != 0) {
gSPDisplayList(gDisplayListHead++, &d_course_dks_jungle_parkway_dl_E730);
gSPDisplayList(gDisplayListHead++, &d_course_dks_jungle_parkway_dl_E058);
mtxf_rotate_x(spE0, boat->wheelRot);
vec3f_set(sp120, 0, 16.0f, -255.0f);
mtxf_translate(spA0, sp120);
mtxf_multiplication(sp60, spE0, spA0);
if (render_set_position(sp60, 3) != 0) {
gSPClearGeometryMode(gDisplayListHead++, G_CULL_BACK);
gSPDisplayList(gDisplayListHead++, &d_course_dks_jungle_parkway_dl_FC28);
gSPPopMatrix(gDisplayListHead++, G_MTX_MODELVIEW);
gSPSetGeometryMode(gDisplayListHead++, G_CULL_BACK);
}
}
}
#include "actors/paddle_boat/render.inc.c"
void func_8029B06C(Camera *arg0, struct Actor *arg1) {
UNUSED s32 pad[6];
@@ -1451,7 +1417,7 @@ void func_8029B06C(Camera *arg0, struct Actor *arg1) {
gSPTexture(gDisplayListHead++, 0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON);
gSPClearGeometryMode(gDisplayListHead++, G_LIGHTING);
func_802B5F74(spD8, arg1->pos, arg1->rot);
mtxf_pos_rotation_xyz(spD8, arg1->pos, arg1->rot);
if (render_set_position(spD8, 0) != 0) {
switch(arg1->state) {
@@ -1495,7 +1461,7 @@ void func_8029B2E4(Camera *arg0, struct Actor *arg1) {
gSPClearGeometryMode(gDisplayListHead++, G_LIGHTING);
func_802B5F74(spC8, arg1->pos, arg1->rot);
mtxf_pos_rotation_xyz(spC8, arg1->pos, arg1->rot);
if (render_set_position(spC8, 0) != 0) {
if (gActiveScreenMode == SCREEN_MODE_1P) {
@@ -1526,7 +1492,7 @@ void func_8029B4E0(Camera *arg0, struct Actor *arg1) {
gSPClearGeometryMode(gDisplayListHead++, G_LIGHTING);
func_802B5F74(spC8, arg1->pos, arg1->rot);
mtxf_pos_rotation_xyz(spC8, arg1->pos, arg1->rot);
mtxf_scale(spC8, 0.1f);
if (render_set_position(spC8, 0) != 0) {
@@ -1558,7 +1524,7 @@ void func_8029B6EC(Camera *camera, struct Actor* arg1) {
gSPTexture(gDisplayListHead++, 0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON);
gSPClearGeometryMode(gDisplayListHead++, G_LIGHTING);
func_802B5F74(spC8, arg1->pos, arg1->rot);
mtxf_pos_rotation_xyz(spC8, arg1->pos, arg1->rot);
if (render_set_position(spC8, 0) != 0) {
if (gActiveScreenMode == SCREEN_MODE_1P) {
@@ -1580,7 +1546,7 @@ void func_8029B6EC(Camera *camera, struct Actor* arg1) {
}
// Spins train wheels?
void func_8029B8E8(Camera *camera, struct TrainCar *actor) {
void render_actor_train_engine(Camera *camera, struct TrainCar *actor) {
UNUSED s32 pad[2];
s32 maxObjectsReached;
Vec3f sp160;
@@ -1594,7 +1560,7 @@ void func_8029B8E8(Camera *camera, struct TrainCar *actor) {
gSPClearGeometryMode(gDisplayListHead++, G_LIGHTING);
func_802B5F74(sp120, actor->pos, actor->rot);
mtxf_pos_rotation_xyz(sp120, actor->pos, actor->rot);
maxObjectsReached = render_set_position(sp120, 0) == 0;
if (maxObjectsReached) { return; }
@@ -1706,7 +1672,7 @@ void func_8029B8E8(Camera *camera, struct TrainCar *actor) {
gSPSetGeometryMode(gDisplayListHead++, G_CULL_BACK);
}
void func_8029BFB0(Camera *camera, struct TrainCar *actor) {
void render_actor_train_tender(Camera *camera, struct TrainCar *actor) {
Mat4 sp120;
Vec3f sp160;
Mat4 spE0;
@@ -1718,7 +1684,7 @@ void func_8029BFB0(Camera *camera, struct TrainCar *actor) {
gSPClearGeometryMode(gDisplayListHead++, G_LIGHTING);
func_802B5F74(sp120, actor->pos, actor->rot);
mtxf_pos_rotation_xyz(sp120, actor->pos, actor->rot);
if (render_set_position(sp120, 0) == 0) { return; }
if (temp_f0 < 250000.0f) {
@@ -1776,7 +1742,7 @@ void func_8029BFB0(Camera *camera, struct TrainCar *actor) {
gSPSetGeometryMode(gDisplayListHead++, G_CULL_BACK);
}
void func_8029C3CC(Camera *camera, struct TrainCar *actor) {
void render_actor_passenger_car(Camera *camera, struct TrainCar *actor) {
Mat4 sp120;
Vec3f sp160;
Mat4 spE0;
@@ -1788,7 +1754,7 @@ void func_8029C3CC(Camera *camera, struct TrainCar *actor) {
gSPClearGeometryMode(gDisplayListHead++, G_LIGHTING);
func_802B5F74(sp120, actor->pos, actor->rot);
mtxf_pos_rotation_xyz(sp120, actor->pos, actor->rot);
if (render_set_position(sp120, 0) == 0) { return; }
@@ -1915,14 +1881,14 @@ void render_actor_falling_rock(Camera *camera, struct FallingRock *rock) {
sp98[1] = 0;
sp98[2] = 0;
sp8C[1] = temp_f0 + 2.0f;
func_802B5F74(sp4C, sp8C, sp98);
mtxf_pos_rotation_xyz(sp4C, sp8C, sp98);
if (render_set_position(sp4C, 0) == 0) {
return;
}
gSPDisplayList(gDisplayListHead++, d_course_choco_mountain_dl_6F88);
}
}
func_802B5F74(sp4C, rock->pos, rock->rot);
mtxf_pos_rotation_xyz(sp4C, rock->pos, rock->rot);
if (render_set_position(sp4C, 0) == 0) {
return;
}
@@ -2170,10 +2136,10 @@ void place_course_actors(void) {
place_all_item_boxes(d_course_mario_raceway_item_box_spawns);
vec3f_set(position, 150.0f, 40.0f, -1300.0f);
position[0] *= gCourseDirection;
addActorToEmptySlot(position, rotation, velocity, ACTOR_MARIO_RACEWAY_SIGN);
addActorToEmptySlot(position, rotation, velocity, ACTOR_MARIO_SIGN);
vec3f_set(position, 2520.0f, 0.0f, 1240.0f);
position[0] *= gCourseDirection;
actor = &gActorList[addActorToEmptySlot(position, rotation, velocity, ACTOR_MARIO_RACEWAY_SIGN)];
actor = &gActorList[addActorToEmptySlot(position, rotation, velocity, ACTOR_MARIO_SIGN)];
actor->flags |= 0x4000;
break;
case COURSE_CHOCO_MOUNTAIN:
@@ -2252,13 +2218,13 @@ void place_course_actors(void) {
place_all_item_boxes(d_course_wario_stadium_item_box_spawns);
vec3f_set(position, -131.0f, 83.0f, 286.0f);
position[0] *= gCourseDirection;
addActorToEmptySlot(position, rotation, velocity, ACTOR_WARIO_STADIUM_SIGN);
addActorToEmptySlot(position, rotation, velocity, ACTOR_WARIO_SIGN);
vec3f_set(position, -2353.0f, 72.0f, -1608.0f);
position[0] *= gCourseDirection;
addActorToEmptySlot(position, rotation, velocity, ACTOR_WARIO_STADIUM_SIGN);
addActorToEmptySlot(position, rotation, velocity, ACTOR_WARIO_SIGN);
vec3f_set(position, -2622.0f, 79.0f, 739.0f);
position[0] *= gCourseDirection;
addActorToEmptySlot(position, rotation, velocity, ACTOR_WARIO_STADIUM_SIGN);
addActorToEmptySlot(position, rotation, velocity, ACTOR_WARIO_SIGN);
break;
case COURSE_BLOCK_FORT:
place_all_item_boxes(d_course_block_fort_item_box_spawns);
@@ -2696,7 +2662,7 @@ s32 func_8029F2FC(Player *player, struct PiranhaPlant *plant) {
return 0;
}
s32 func_8029F408(Player *player, struct YoshiValleyEgg *egg) {
bool func_8029F408(Player *player, struct YoshiValleyEgg *egg) {
UNUSED f32 pad[5];
f32 z_dist;
f32 xz_dist;
@@ -2708,31 +2674,36 @@ s32 func_8029F408(Player *player, struct YoshiValleyEgg *egg) {
x_dist = egg->pos[0] - player->pos[0];
if ((x_dist < thing2) && (x_dist < -thing)) {
return 0;
return FALSE;
}
if (x_dist > thing) {
return 0;
return FALSE;
}
z_dist = egg->pos[2] - player->pos[2];
if ((z_dist < thing2) && (z_dist < -thing)) {
return 0;
return FALSE;
}
if (z_dist > thing) {
return 0;
return FALSE;
}
xz_dist = sqrtf((x_dist * x_dist) + (z_dist * z_dist));
if (xz_dist > thing) {
return 0;
return FALSE;
}
func_802977B0(player);
y_dist = player->pos[1] - egg->pos[1];
if (y_dist < thing2) {
return 0;
return FALSE;
}
totalBox = player->boundingBoxSize + egg->boundingBoxSize;
if (totalBox < xz_dist) {
return 0;
return FALSE;
}
if ((player->type & PLAYER_HUMAN) != 0) {
if ((player->effects & STAR_EFFECT) != 0) {
egg->flags |= 0x400;
@@ -2748,7 +2719,8 @@ s32 func_8029F408(Player *player, struct YoshiValleyEgg *egg) {
} else {
func_8008DABC(player, player - gPlayerOne);
}
return 1;
return TRUE;
}
s32 func_8029F69C(Player *player, struct Actor *actor) {
@@ -2816,7 +2788,7 @@ s32 func_8029F69C(Player *player, struct Actor *actor) {
sp20[1] = actor->pos[1];
sp20[2] = actor->pos[2];
if (((gCurrentCourseId == COURSE_MARIO_RACEWAY) || (gCurrentCourseId == COURSE_YOSHI_VALLEY) || (gCurrentCourseId == COURSE_ROYAL_RACEWAY) || (gCurrentCourseId == COURSE_LUIGI_RACEWAY)) && (player->unk_094 > 1.0f)) {
func_80077AB0(sp20, 0);
spawn_leaf(sp20, 0);
}
if (xz_dist < 0.1f) {
sqrtf((sp48 * sp48) + (sp44 * sp44));
@@ -3156,7 +3128,7 @@ void func_802A0450(Player *player, struct Actor *actor) {
}
break;
case ACTOR_BANANA:
if (player->effects & 0x800008C0) { break; }
if (player->effects & (BOO_EFFECT | 0x8C0)) { break; }
if (player->soundEffects & 1) { break; }
temp_v1 = actor->rot[0];
if (((temp_lo == temp_v1) && (actor->flags & 0x1000)) || (func_8029FB80(player, actor) != 1)) { break; }
@@ -3227,7 +3199,7 @@ void func_802A0450(Player *player, struct Actor *actor) {
func_8029F2FC(player, (struct PiranhaPlant *) actor);
}
break;
case ACTOR_MARIO_RACEWAY_SIGN:
case ACTOR_MARIO_SIGN:
if (!(player->effects & BOO_EFFECT)) {
func_8029F1F8(player, actor);
}
@@ -3498,21 +3470,21 @@ void update_actor_fake_item_box(struct FakeItemBox *fake_item_box) {
}
}
void func_802A14BC(f32 arg0, f32 arg1, f32 arg2) {
Vec3f sp34;
Vec3f sp28;
Vec3s sp20;
s16 temp_a0;
void func_802A14BC(f32 x, f32 y, f32 z) {
Vec3f pos;
Vec3f velocity;
Vec3s rot;
s16 id;
if (gModeSelection == TIME_TRIALS) { return; }
vec3s_set(sp20, 0, 0, 0);
vec3f_set(sp28, 0, 0, 0);
sp34[0] = arg0;
sp34[1] = arg1;
sp34[2] = arg2;
temp_a0 = addActorToEmptySlot(sp34, sp20, sp28, 43);
D_802BA05C = &gActorList[temp_a0];
vec3s_set(rot, 0, 0, 0);
vec3f_set(velocity, 0, 0, 0);
pos[0] = x;
pos[1] = y;
pos[2] = z;
id = addActorToEmptySlot(pos, rot, velocity, ACTOR_HOT_AIR_BALLOON_ITEM_BOX);
gActorHotAirBalloonItemBox = &gActorList[id];
}
void update_actor_item_box_hot_air_balloon(struct ItemBox *itemBox) {
@@ -3602,14 +3574,14 @@ void func_802A171C(Camera *camera, struct FakeItemBox *fakeItemBox) {
someRot[0] = 0;
someRot[1] = fakeItemBox->rot[1];
someRot[2] = 0;
func_802B5F74(someMatrix2, fakeItemBox->pos, someRot);
mtxf_pos_rotation_xyz(someMatrix2, fakeItemBox->pos, someRot);
mtxf_scale(someMatrix2, fakeItemBox->sizeScaling);
if (fakeItemBox->state != 2) {
if (!render_set_position(someMatrix2, 0)) { return; }
gSPDisplayList(gDisplayListHead++, common_model_fake_itembox);
func_802B5F74(someMatrix2, fakeItemBox->pos, fakeItemBox->rot);
mtxf_pos_rotation_xyz(someMatrix2, fakeItemBox->pos, fakeItemBox->rot);
mtxf_scale(someMatrix2, fakeItemBox->sizeScaling);
if (!render_set_position(someMatrix2, 0)) { return; }
@@ -3634,7 +3606,7 @@ void func_802A171C(Camera *camera, struct FakeItemBox *fakeItemBox) {
gSPClearGeometryMode(gDisplayListHead++, G_CULL_BACK);
gDPSetBlendMask(gDisplayListHead++, 0xFF);
thing = fakeItemBox->someTimer;
func_802B5F74(someMatrix2, fakeItemBox->pos, fakeItemBox->rot);
mtxf_pos_rotation_xyz(someMatrix2, fakeItemBox->pos, fakeItemBox->rot);
if (thing < 10.0f) {
someMultiplier = 1.0f;
} else {
@@ -3736,28 +3708,28 @@ void func_802A1EA0(Camera *camera, struct ItemBox *item_box) {
someVec2[0] = item_box->pos[0];
someVec2[1] = item_box->resetDistance + 2.0f;
someVec2[2] = item_box->pos[2];
func_802B5F74(someMatrix1, someVec2, someRot);
mtxf_pos_rotation_xyz(someMatrix1, someVec2, someRot);
if (!render_set_position(someMatrix1, 0)) { return; }
gSPDisplayList(gDisplayListHead++, D_0D002EE8);
someRot[1] = item_box->rot[1] * 2;
someVec2[1] = item_box->pos[1];
func_802B5F74(someMatrix1, someVec2, someRot);
mtxf_pos_rotation_xyz(someMatrix1, someVec2, someRot);
if (!render_set_position(someMatrix1, 0)) { return; }
gSPDisplayList(gDisplayListHead++, itemBoxQuestionMarkModel);
}
if (item_box->state == 5) {
func_802B5F74(someMatrix1, item_box->pos, item_box->rot);
mtxf_pos_rotation_xyz(someMatrix1, item_box->pos, item_box->rot);
if (!render_set_position(someMatrix1, 0)) { return; }
gSPDisplayList(gDisplayListHead++, itemBoxQuestionMarkModel);
}
if (item_box->state != 3) {
func_802B5F74(someMatrix1, item_box->pos, item_box->rot);
mtxf_pos_rotation_xyz(someMatrix1, item_box->pos, item_box->rot);
if (!render_set_position(someMatrix1, 0)) { return; }
@@ -3782,7 +3754,7 @@ void func_802A1EA0(Camera *camera, struct ItemBox *item_box) {
gSPClearGeometryMode(gDisplayListHead++, G_CULL_BACK);
gDPSetBlendMask(gDisplayListHead++, 0xFF);
thing = item_box->someTimer;
func_802B5F74(someMatrix1, item_box->pos, item_box->rot);
mtxf_pos_rotation_xyz(someMatrix1, item_box->pos, item_box->rot);
if (thing < 10.0f) {
someMultiplier = 1.0f;
} else {
@@ -3858,7 +3830,7 @@ void func_802A1EA0(Camera *camera, struct ItemBox *item_box) {
}
}
void func_802A269C(Camera *arg0, struct Actor *arg1) {
void render_actor_wario_sign(Camera *arg0, struct Actor *arg1) {
Mat4 sp38;
f32 unk = is_within_render_distance(arg0->pos, arg1->pos, arg0->rot[1], 0, gCameraZoom[arg0 - camera1], 16000000.0f);
@@ -3866,7 +3838,7 @@ void func_802A269C(Camera *arg0, struct Actor *arg1) {
gSPSetGeometryMode(gDisplayListHead++, G_SHADING_SMOOTH);
gSPClearGeometryMode(gDisplayListHead++, G_LIGHTING);
func_802B5F74(sp38, arg1->pos, arg1->rot);
mtxf_pos_rotation_xyz(sp38, arg1->pos, arg1->rot);
if (render_set_position(sp38, 0) != 0) {
gSPDisplayList(gDisplayListHead++, d_course_wario_stadium_dl_sign);
@@ -3902,7 +3874,7 @@ void func_802A27A0(Camera *arg0, Mat4 arg1, struct YoshiValleyEgg *egg, u16 arg3
sp5C[0] = 0;
sp5C[1] = egg->eggRot;
sp5C[2] = 0;
func_802B5F74(sp60, egg->pos, sp5C);
mtxf_pos_rotation_xyz(sp60, egg->pos, sp5C);
if (render_set_position(sp60, 0) == 0) { return; }
gSPSetGeometryMode(gDisplayListHead++, G_LIGHTING);
@@ -3919,7 +3891,7 @@ void func_802A27A0(Camera *arg0, Mat4 arg1, struct YoshiValleyEgg *egg, u16 arg3
}
}
void func_802A29BC(Camera *arg0, UNUSED Mat4 arg1, struct Actor *arg2) {
void render_actor_mario_sign(Camera *arg0, UNUSED Mat4 arg1, struct Actor *arg2) {
Mat4 sp40;
f32 unk;
s16 temp = arg2->flags;
@@ -3930,7 +3902,7 @@ void func_802A29BC(Camera *arg0, UNUSED Mat4 arg1, struct Actor *arg2) {
if (!(unk < 0.0f)) {
gSPSetGeometryMode(gDisplayListHead++, G_SHADING_SMOOTH);
gSPClearGeometryMode(gDisplayListHead++, G_LIGHTING);
func_802B5F74(sp40, arg2->pos, arg2->rot);
mtxf_pos_rotation_xyz(sp40, arg2->pos, arg2->rot);
if (render_set_position(sp40, 0) != 0) {
gSPDisplayList(gDisplayListHead++, d_course_mario_raceway_dl_sign);
}
@@ -3943,7 +3915,7 @@ void func_802A2AD0(Camera *arg0, struct RailroadCrossing *rr_crossing) {
f32 unk = is_within_render_distance(arg0->pos, rr_crossing->pos, arg0->rot[1], 0.0f, gCameraZoom[arg0 - camera1], 4000000.0f);
if (!(unk < 0.0f)) {
func_802B5F74(sp40, rr_crossing->pos, rr_crossing->rot);
mtxf_pos_rotation_xyz(sp40, rr_crossing->pos, rr_crossing->rot);
if (render_set_position(sp40, 0) != 0) {
gSPSetGeometryMode(gDisplayListHead++, G_LIGHTING);
@@ -3980,7 +3952,7 @@ void func_802A2C78(Camera *arg0, UNUSED Mat4 arg1, struct Actor *arg2) {
if (((temp_v0 & 0x400) == 0) && (temp_f0 < 250000.0f)) {
func_8029794C(arg2->pos, arg2->rot, 2.0f);
}
func_802B5F74(sp68, arg2->pos, spA8);
mtxf_pos_rotation_xyz(sp68, arg2->pos, spA8);
if (render_set_position(sp68, 0) != 0) {
gDPSetTextureLUT(gDisplayListHead++, G_TT_NONE);
@@ -4014,7 +3986,7 @@ void func_802A2C78(Camera *arg0, UNUSED Mat4 arg1, struct Actor *arg2) {
}
void func_802A2F34(struct UnkStruct_800DC5EC *arg0) {
Camera *temp_s1 = arg0->camera;
Camera *camera = arg0->camera;
struct Actor *actor;
s32 i;
D_8015F8DC = 0;
@@ -4028,13 +4000,13 @@ void func_802A2F34(struct UnkStruct_800DC5EC *arg0) {
switch(actor->type) {
case ACTOR_FAKE_ITEM_BOX:
func_802A171C(temp_s1, (struct FakeItemBox *) actor);
func_802A171C(camera, (struct FakeItemBox *) actor);
break;
case ACTOR_ITEM_BOX:
func_802A1EA0(temp_s1, (struct ItemBox *) actor);
func_802A1EA0(camera, (struct ItemBox *) actor);
break;
case ACTOR_HOT_AIR_BALLOON_ITEM_BOX:
func_802A1EA0(temp_s1, (struct ItemBox *) actor);
func_802A1EA0(camera, (struct ItemBox *) actor);
break;
}
}
@@ -4138,13 +4110,13 @@ void render_course_actors(struct UnkStruct_800DC5EC *arg0) {
render_actor_piranha_plant(camera, D_801502C0, (struct PiranhaPlant *) actor);
break;
case ACTOR_TRAIN_ENGINE:
func_8029B8E8(camera, (struct TrainCar *) actor);
render_actor_train_engine(camera, (struct TrainCar *) actor);
break;
case ACTOR_TRAIN_TENDER:
func_8029BFB0(camera, (struct TrainCar *) actor);
render_actor_train_tender(camera, (struct TrainCar *) actor);
break;
case ACTOR_TRAIN_PASSENGER_CAR:
func_8029C3CC(camera, (struct TrainCar *) actor);
render_actor_passenger_car(camera, (struct TrainCar *) actor);
break;
case ACTOR_COW:
render_actor_cow(camera, D_801502C0, actor);
@@ -4152,17 +4124,17 @@ void render_course_actors(struct UnkStruct_800DC5EC *arg0) {
case 0x14:
func_8029AC18(camera, D_801502C0, actor);
break;
case ACTOR_MARIO_RACEWAY_SIGN:
func_802A29BC(camera, D_801502C0, actor);
case ACTOR_MARIO_SIGN:
render_actor_mario_sign(camera, D_801502C0, actor);
break;
case ACTOR_WARIO_STADIUM_SIGN:
func_802A269C(camera, actor);
case ACTOR_WARIO_SIGN:
render_actor_wario_sign(camera, actor);
break;
case ACTOR_PALM_TREE:
func_802A2C78(camera, D_801502C0, actor);
break;
case ACTOR_PADDLE_WHEEL_BOAT:
func_8029AE1C(camera, (struct PaddleWheelBoat *) actor, D_801502C0, pathCounter);
case ACTOR_PADDLE_BOAT:
render_actor_paddle_boat(camera, (struct PaddleWheelBoat *) actor, D_801502C0, pathCounter);
break;
case ACTOR_BOX_TRUCK:
func_8029B06C(camera, actor);
@@ -4223,8 +4195,8 @@ void update_course_actors(void) {
case ACTOR_BANANA:
update_actor_banana((struct BananaActor *) actor);
break;
case ACTOR_PADDLE_WHEEL_BOAT:
update_actor_paddle_wheel((struct PaddleWheelBoat *) actor);
case ACTOR_PADDLE_BOAT:
update_actor_paddle_boat((struct PaddleWheelBoat *) actor);
break;
case ACTOR_TRAIN_ENGINE:
update_actor_train_engine((struct TrainCar *) actor);
@@ -4256,10 +4228,10 @@ void update_course_actors(void) {
case ACTOR_TRIPLE_RED_SHELL:
update_actor_triple_shell((TripleShellParent *) actor, ACTOR_RED_SHELL);
break;
case ACTOR_MARIO_RACEWAY_SIGN:
case ACTOR_MARIO_SIGN:
update_actor_mario_raceway_sign(actor);
break;
case ACTOR_WARIO_STADIUM_SIGN:
case ACTOR_WARIO_SIGN:
update_actor_wario_stadium_sign(actor);
break;
case ACTOR_RAILROAD_CROSSING:
+8 -9
View File
@@ -21,7 +21,7 @@ void render_actor_cow(Camera*, Mat4, struct Actor*);
void update_actor_yoshi_valley_egg(struct YoshiValleyEgg*);
void update_actor_trees_cacti_shrubs(struct Actor*);
void update_actor_kiwano_fruit(struct KiwanoFruit*);
void update_actor_paddle_wheel(struct PaddleWheelBoat*);
void update_actor_paddle_boat(struct PaddleWheelBoat*);
void update_actor_train_engine(struct TrainCar*);
void update_actor_train_car1(struct TrainCar*);
void update_actor_train_car2(struct TrainCar*);
@@ -53,14 +53,14 @@ void update_actor_wario_stadium_sign(struct Actor*);
void update_actor_railroad_crossing(struct RailroadCrossing*);
void update_actor_mario_raceway_sign(struct Actor*);
void func_8029AC18(Camera*, Mat4, struct Actor*);
void func_8029AE1C(Camera*, struct PaddleWheelBoat*, Mat4, u16);
void render_actor_paddle_boat(Camera*, struct PaddleWheelBoat*, Mat4, u16);
void func_8029B06C(Camera*, struct Actor*);
void func_8029B2E4(Camera*, struct Actor*);
void func_8029B4E0(Camera*, struct Actor*);
void func_8029B6EC(Camera*, struct Actor*);
void func_8029B8E8(Camera*, struct TrainCar*);
void func_8029BFB0(Camera*, struct TrainCar*);
void func_8029C3CC(Camera*, struct TrainCar*);
void render_actor_train_engine(Camera*, struct TrainCar*);
void render_actor_train_tender(Camera*, struct TrainCar*);
void render_actor_passenger_car(Camera*, struct TrainCar*);
void render_actor_falling_rock(Camera*, struct FallingRock*);
void place_piranha_plants(struct ActorSpawnData*);
void place_palm_trees(struct ActorSpawnData*);
@@ -98,9 +98,9 @@ void update_actor_item_box_hot_air_balloon(struct ItemBox*);
void update_actor_item_box(struct ItemBox*);
void func_802A171C(Camera*, struct FakeItemBox*);
void func_802A1EA0(Camera*, struct ItemBox*);
void func_802A269C(Camera*, struct Actor*);
void render_actor_wario_sign(Camera*, struct Actor*);
void func_802A27A0(Camera*, Mat4, struct YoshiValleyEgg*, u16);
void func_802A29BC(Camera*, Mat4, struct Actor*);
void render_actor_mario_sign(Camera*, Mat4, struct Actor*);
void func_802A2AD0(Camera*, struct RailroadCrossing*);
void func_802A2C78(Camera*, Mat4, struct Actor*);
void func_802A2F34(struct UnkStruct_800DC5EC*);
@@ -114,7 +114,7 @@ extern void func_800C99E0(Vec3f, s32);
extern u8 *D_802BA050;
extern u8 *D_802BA054;
extern u8 *D_802BA058;
extern struct Actor *D_802BA05C;
extern struct Actor *gActorHotAirBalloonItemBox;
extern s8 gTLUTRedShell[]; // tlut 256
extern u16 D_802BA260; // Box Truck sub-type?
@@ -124,7 +124,6 @@ extern s16 gCurrentCourseId;
extern u16 isCrossingTriggeredByIndex[];
extern Lights1 D_800DC610[];
extern s8 common_tlut_trees_import[];
extern Gfx D_0D005338[];
extern Gfx D_0D005368[];
extern Gfx D_0D007B20[];
+1 -1
View File
@@ -12,7 +12,7 @@
#include "actors.h"
#include "actors_extended.h"
#include "audio/external.h"
#include "code_80071F00.h"
#include "update_objects.h"
#include "effects.h"
#include "sounds.h"
+26 -26
View File
@@ -78,7 +78,7 @@ f32 func_802B51E8(Vec3f arg0, Vec3f arg1) {
return (sub_x * sub_x) + (sub_y * sub_y) + sub_z + sub_z;
}
s32 get_angle_between_points(Vec3f arg0, Vec3f arg1) {
s32 get_angle_between_two_vectors(Vec3f arg0, Vec3f arg1) {
f32 temp_v1;
f32 temp_v2;
temp_v1 = arg1[0] - arg0[0];
@@ -87,7 +87,7 @@ s32 get_angle_between_points(Vec3f arg0, Vec3f arg1) {
return atan2s(temp_v1, temp_v2);
}
// get_angle_between_points
// get_angle_between_two_vectors
u32 func_802B5258(Vec3f arg0, Vec3s arg1) {
f32 temp_v1;
f32 temp_v2;
@@ -483,7 +483,7 @@ void mtxf_scale(Mat4 mat, f32 coef) {
}
// look like create a translation and rotation matrix with arg1 position and arg2 rotation
void func_802B5F74(Mat4 arg0, Vec3f arg1, Vec3s arg2) {
void mtxf_pos_rotation_xyz(Mat4 out, Vec3f pos, Vec3s orientation) {
f32 sine1;
f32 cosine1;
f32 sine2;
@@ -491,28 +491,28 @@ void func_802B5F74(Mat4 arg0, Vec3f arg1, Vec3s arg2) {
f32 sine3;
f32 cosine3;
sine1 = sins(arg2[0]);
cosine1 = coss(arg2[0]);
sine2 = sins(arg2[1]);
cosine2 = coss(arg2[1]);
sine3 = sins(arg2[2]);
cosine3 = coss(arg2[2]);
arg0[0][0] = (cosine2 * cosine3) + ((sine1 * sine2) * sine3);
arg0[1][0] = (-cosine2 * sine3) + ((sine1 * sine2) * cosine3);
arg0[2][0] = cosine1 * sine2;
arg0[3][0] = arg1[0];
arg0[0][1] = cosine1 * sine3;
arg0[1][1] = cosine1 * cosine3;
arg0[2][1] = -sine1;
arg0[3][1] = arg1[1];
arg0[0][2] = (-sine2 * cosine3) + ((sine1 * cosine2) * sine3);
arg0[1][2] = (sine2 * sine3) + ((sine1 * cosine2) * cosine3);
arg0[2][2] = cosine1 * cosine2;
arg0[3][2] = arg1[2];
arg0[0][3] = 0.0f;
arg0[1][3] = 0.0f;
arg0[2][3] = 0.0f;
arg0[3][3] = 1.0f;
sine1 = sins(orientation[0]);
cosine1 = coss(orientation[0]);
sine2 = sins(orientation[1]);
cosine2 = coss(orientation[1]);
sine3 = sins(orientation[2]);
cosine3 = coss(orientation[2]);
out[0][0] = (cosine2 * cosine3) + ((sine1 * sine2) * sine3);
out[1][0] = (-cosine2 * sine3) + ((sine1 * sine2) * cosine3);
out[2][0] = cosine1 * sine2;
out[3][0] = pos[0];
out[0][1] = cosine1 * sine3;
out[1][1] = cosine1 * cosine3;
out[2][1] = -sine1;
out[3][1] = pos[1];
out[0][2] = (-sine2 * cosine3) + ((sine1 * cosine2) * sine3);
out[1][2] = (sine2 * sine3) + ((sine1 * cosine2) * cosine3);
out[2][2] = cosine1 * cosine2;
out[3][2] = pos[2];
out[0][3] = 0.0f;
out[1][3] = 0.0f;
out[2][3] = 0.0f;
out[3][3] = 1.0f;
}
UNUSED void func_802B60B4(Mat4 arg0, Vec3s arg1, Vec3s arg2) {
@@ -1143,7 +1143,7 @@ f32 is_within_render_distance(Vec3f cameraPos, Vec3f objectPos, u16 orientationY
return -1.0f;
}
angleObject = get_angle_between_points(cameraPos, objectPos);
angleObject = get_angle_between_two_vectors(cameraPos, objectPos);
minus_fov_angle = (orientationY - extended_fov);
plus_fov_angle = (orientationY + extended_fov);
+2 -2
View File
@@ -19,7 +19,7 @@ double fabs(double x);
s32 func_802B4F60(s32, Vec3f, s32, f32, f32);
s32 render_set_position(Mat4, s32);
f32 func_802B51E8(Vec3f, Vec3f);
s32 get_angle_between_points(Vec3f, Vec3f);
s32 get_angle_between_two_vectors(Vec3f, Vec3f);
u32 func_802B5258(Vec3f, Vec3s);
void vec3f_set(Vec3f, f32, f32, f32);
void vec3s_set(Vec3s, s16, s16, s16);
@@ -40,7 +40,7 @@ void func_802B5CAC(s16, s16, Vec3f);
void func_802B5D30(s16, s16, s32);
void func_802B5D64(uintptr_t, s16, s16, s32);
void mtxf_scale(Mat4, f32);
void func_802B5F74(Mat4, Vec3f, Vec3s);
void mtxf_pos_rotation_xyz(Mat4, Vec3f, Vec3s);
void mtxf_translate_vec3f_mat3(Vec3f, Mat3);
void mtxf_translate_vec3f_mat4(Vec3f, Mat4);
void func_802B64C4(Vec3f, s16);
+2 -2
View File
@@ -11,7 +11,7 @@
#include "main.h"
#include "code_800029B0.h"
#include "code_80057C60.h"
#include "code_80071F00.h"
#include "update_objects.h"
#include "code_80091750.h"
#include "code_80005FD0.h"
#include "spawn_players.h"
@@ -670,7 +670,7 @@ void func_8028F474(void) {
}
case 1:
case 2:
func_800097E0();
update_vehicles();
break;
}
}
+14 -14
View File
@@ -199,7 +199,7 @@ void func_802911C4(void) {
}
}
void func_8029122C(struct UnkStruct_800DC5EC *arg0, s32 arg1) {
void func_8029122C(struct UnkStruct_800DC5EC *arg0, s32 playerId) {
UNUSED s32 pad;
Player *player = arg0->player;
Mat4 matrix;
@@ -212,22 +212,22 @@ void func_8029122C(struct UnkStruct_800DC5EC *arg0, s32 arg1) {
pathCounter = (u16) arg0->pathCounter;
cameraRot = (u16) arg0->camera->rot[1];
playerDirection = arg0->playerDirection;
switch (arg1) {
case 0:
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_MUL | G_MTX_PROJECTION);
switch (playerId) {
case PLAYER_ONE:
gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->mtxPersp[PLAYER_ONE]), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_PROJECTION);
gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->mtxLookAt[PLAYER_ONE]), G_MTX_NOPUSH | G_MTX_MUL | G_MTX_PROJECTION);
break;
case 1:
gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->mtxPersp[1]), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_PROJECTION);
gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->mtxLookAt[1]), G_MTX_NOPUSH | G_MTX_MUL | G_MTX_PROJECTION);
case PLAYER_TWO:
gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->mtxPersp[PLAYER_TWO]), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_PROJECTION);
gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->mtxLookAt[PLAYER_TWO]), G_MTX_NOPUSH | G_MTX_MUL | G_MTX_PROJECTION);
break;
case 2:
gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->mtxPersp[2]), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_PROJECTION);
gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->mtxLookAt[2]), G_MTX_NOPUSH | G_MTX_MUL | G_MTX_PROJECTION);
case PLAYER_THREE:
gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->mtxPersp[PLAYER_THREE]), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_PROJECTION);
gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->mtxLookAt[PLAYER_THREE]), G_MTX_NOPUSH | G_MTX_MUL | G_MTX_PROJECTION);
break;
case 3:
gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->mtxPersp[3]), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_PROJECTION);
gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->mtxLookAt[3]), G_MTX_NOPUSH | G_MTX_MUL | G_MTX_PROJECTION);
case PLAYER_FOUR:
gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->mtxPersp[PLAYER_FOUR]), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_PROJECTION);
gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->mtxLookAt[PLAYER_FOUR]), G_MTX_NOPUSH | G_MTX_MUL | G_MTX_PROJECTION);
break;
}
mtxf_identity(matrix);
+65 -65
View File
@@ -766,7 +766,7 @@ void func_802A5760(void) {
}
}
void func_802A59A4(void) {
void render_player_one_1p_screen(void) {
Camera *camera = &cameras[0];
UNUSED s32 pad[4];
u16 perspNorm;
@@ -810,23 +810,23 @@ void func_802A59A4(void) {
render_set_position(matrix, 0);
}
render_course_actors(D_800DC5EC);
func_80058090(0);
render_object(RENDER_SCREEN_MODE_1P_PLAYER_ONE);
render_players_on_screen_one();
func_8029122C(D_800DC5EC, 0);
func_8029122C(D_800DC5EC, PLAYER_ONE);
func_80021B0C();
func_802A2F34(D_800DC5EC);
func_80058538(0);
render_player_snow_effect(RENDER_SCREEN_MODE_1P_PLAYER_ONE);
func_80058BF4();
if (D_800DC5B8 != 0) {
func_80058C20(0);
func_80058C20(RENDER_SCREEN_MODE_1P_PLAYER_ONE);
}
func_80093A5C(0);
func_80093A5C(RENDER_SCREEN_MODE_1P_PLAYER_ONE);
if (D_800DC5B8 != 0) {
func_80058DB4(0);
render_hud(RENDER_SCREEN_MODE_1P_PLAYER_ONE);
}
}
void func_802A5CB4(void) {
void render_player_one_2p_screen_vertical(void) {
Camera *camera = &cameras[0];
UNUSED s32 pad[2];
u16 perspNorm;
@@ -866,24 +866,24 @@ void func_802A5CB4(void) {
render_set_position(matrix, 0);
}
render_course_actors(D_800DC5EC);
func_80058090(1);
render_object(RENDER_SCREEN_MODE_2P_HORIZONTAL_PLAYER_ONE);
render_players_on_screen_one();
func_8029122C(D_800DC5EC, 0);
func_8029122C(D_800DC5EC, PLAYER_ONE);
func_80021B0C();
func_802A2F34(D_800DC5EC);
func_80058538(1);
render_player_snow_effect(RENDER_SCREEN_MODE_2P_HORIZONTAL_PLAYER_ONE);
func_80058BF4();
if (D_800DC5B8 != 0) {
func_80058C20(1);
func_80058C20(RENDER_SCREEN_MODE_2P_HORIZONTAL_PLAYER_ONE);
}
func_80093A5C(1);
func_80093A5C(RENDER_SCREEN_MODE_2P_HORIZONTAL_PLAYER_ONE);
if (D_800DC5B8 != 0) {
func_80058DB4(1);
render_hud(RENDER_SCREEN_MODE_2P_HORIZONTAL_PLAYER_ONE);
}
D_8015F788 += 1;
}
void func_802A5FAC(void) {
void render_player_two_2p_screen_vertical(void) {
Camera *camera = &cameras[1];
UNUSED s32 pad[2];
u16 perspNorm;
@@ -920,24 +920,24 @@ void func_802A5FAC(void) {
render_set_position(matrix, 0);
}
render_course_actors(D_800DC5F0);
func_80058090(2);
render_object(RENDER_SCREEN_MODE_2P_HORIZONTAL_PLAYER_TWO);
render_players_on_screen_two();
func_8029122C(D_800DC5F0, 1);
func_8029122C(D_800DC5F0, PLAYER_TWO);
func_80021C78();
func_802A2F34(D_800DC5F0);
func_80058BF4();
func_80058538(2);
render_player_snow_effect(RENDER_SCREEN_MODE_2P_HORIZONTAL_PLAYER_TWO);
if (D_800DC5B8 != 0) {
func_80058C20(2);
func_80058C20(RENDER_SCREEN_MODE_2P_HORIZONTAL_PLAYER_TWO);
}
func_80093A5C(2);
func_80093A5C(RENDER_SCREEN_MODE_2P_HORIZONTAL_PLAYER_TWO);
if (D_800DC5B8 != 0) {
func_80058DB4(2);
render_hud(RENDER_SCREEN_MODE_2P_HORIZONTAL_PLAYER_TWO);
}
D_8015F788 += 1;
}
void func_802A62A4(void) {
void render_player_one_2p_screen_horizontal(void) {
Camera *camera = &cameras[0];
UNUSED s32 pad[2];
u16 perspNorm;
@@ -978,24 +978,24 @@ void func_802A62A4(void) {
render_set_position(matrix, 0);
}
render_course_actors(D_800DC5EC);
func_80058090(3);
render_object(RENDER_SCREEN_MODE_2P_VERTICAL_PLAYER_ONE);
render_players_on_screen_one();
func_8029122C(D_800DC5EC, 0);
func_8029122C(D_800DC5EC, PLAYER_ONE);
func_80021B0C();
func_802A2F34(D_800DC5EC);
func_80058538(3);
render_player_snow_effect(RENDER_SCREEN_MODE_2P_VERTICAL_PLAYER_ONE);
func_80058BF4();
if (D_800DC5B8 != 0) {
func_80058C20(3);
func_80058C20(RENDER_SCREEN_MODE_2P_VERTICAL_PLAYER_ONE);
}
func_80093A5C(3);
func_80093A5C(RENDER_SCREEN_MODE_2P_VERTICAL_PLAYER_ONE);
if (D_800DC5B8 != 0) {
func_80058DB4(3);
render_hud(RENDER_SCREEN_MODE_2P_VERTICAL_PLAYER_ONE);
}
D_8015F788 += 1;
}
void func_802A65B8(void) {
void render_player_two_2p_screen_horizontal(void) {
Camera *camera = &cameras[1];
UNUSED s32 pad[2];
u16 perspNorm;
@@ -1035,24 +1035,24 @@ void func_802A65B8(void) {
render_set_position(matrix, 0);
}
render_course_actors(D_800DC5F0);
func_80058090(4);
render_object(RENDER_SCREEN_MODE_2P_VERTICAL_PLAYER_TWO);
render_players_on_screen_two();
func_8029122C(D_800DC5F0, 1);
func_8029122C(D_800DC5F0, PLAYER_TWO);
func_80021C78();
func_802A2F34(D_800DC5F0);
func_80058538(4);
render_player_snow_effect(RENDER_SCREEN_MODE_2P_VERTICAL_PLAYER_TWO);
func_80058BF4();
if (D_800DC5B8 != 0) {
func_80058C20(4);
func_80058C20(RENDER_SCREEN_MODE_2P_VERTICAL_PLAYER_TWO);
}
func_80093A5C(4);
func_80093A5C(RENDER_SCREEN_MODE_2P_VERTICAL_PLAYER_TWO);
if (D_800DC5B8 != 0) {
func_80058DB4(4);
render_hud(RENDER_SCREEN_MODE_2P_VERTICAL_PLAYER_TWO);
}
D_8015F788 += 1;
}
void func_802A68CC(void) {
void render_player_one_3p_4p_screen(void) {
Camera *camera = camera1;
UNUSED s32 pad[2];
u16 perspNorm;
@@ -1089,24 +1089,24 @@ void func_802A68CC(void) {
render_set_position(matrix, 0);
}
render_course_actors(D_800DC5EC);
func_80058090(8);
render_object(RENDER_SCREEN_MODE_3P_4P_PLAYER_ONE);
render_players_on_screen_one();
func_8029122C(D_800DC5EC, 0);
func_8029122C(D_800DC5EC, PLAYER_ONE);
func_80021B0C();
func_802A2F34(D_800DC5EC);
func_80058538(8);
render_player_snow_effect(RENDER_SCREEN_MODE_3P_4P_PLAYER_ONE);
func_80058BF4();
if (D_800DC5B8 != 0) {
func_80058C20(8);
func_80058C20(RENDER_SCREEN_MODE_3P_4P_PLAYER_ONE);
}
func_80093A5C(8);
func_80093A5C(RENDER_SCREEN_MODE_3P_4P_PLAYER_ONE);
if (D_800DC5B8 != 0) {
func_80058DB4(8);
render_hud(RENDER_SCREEN_MODE_3P_4P_PLAYER_ONE);
}
D_8015F788 += 1;
}
void func_802A6BB0(void) {
void render_player_two_3p_4p_screen(void) {
Camera *camera = camera2;
UNUSED s32 pad[2];
u16 perspNorm;
@@ -1143,24 +1143,24 @@ void func_802A6BB0(void) {
render_set_position(matrix, 0);
}
render_course_actors(D_800DC5F0);
func_80058090(9);
render_object(RENDER_SCREEN_MODE_3P_4P_PLAYER_TWO);
render_players_on_screen_two();
func_8029122C(D_800DC5F0, 1);
func_8029122C(D_800DC5F0, PLAYER_TWO);
func_80021C78();
func_802A2F34(D_800DC5F0);
func_80058538(9);
render_player_snow_effect(RENDER_SCREEN_MODE_3P_4P_PLAYER_TWO);
func_80058BF4();
if (D_800DC5B8 != 0) {
func_80058C20(9);
func_80058C20(RENDER_SCREEN_MODE_3P_4P_PLAYER_TWO);
}
func_80093A5C(9);
func_80093A5C(RENDER_SCREEN_MODE_3P_4P_PLAYER_TWO);
if (D_800DC5B8 != 0) {
func_80058DB4(9);
render_hud(RENDER_SCREEN_MODE_3P_4P_PLAYER_TWO);
}
D_8015F788 += 1;
}
void func_802A6E94(void) {
void render_player_three_3p_4p_screen(void) {
Camera *camera = camera3;
UNUSED s32 pad[2];
u16 perspNorm;
@@ -1198,24 +1198,24 @@ void func_802A6E94(void) {
render_set_position(matrix, 0);
}
render_course_actors(D_800DC5F4);
func_80058090(10);
render_object(RENDER_SCREEN_MODE_3P_4P_PLAYER_THREE);
render_players_on_screen_three();
func_8029122C(D_800DC5F4, 2);
func_8029122C(D_800DC5F4, PLAYER_THREE);
func_80021D40();
func_802A2F34(D_800DC5F4);
func_80058538(10);
render_player_snow_effect(RENDER_SCREEN_MODE_3P_4P_PLAYER_THREE);
func_80058BF4();
if (D_800DC5B8 != 0) {
func_80058C20(10);
func_80058C20(RENDER_SCREEN_MODE_3P_4P_PLAYER_THREE);
}
func_80093A5C(10);
func_80093A5C(RENDER_SCREEN_MODE_3P_4P_PLAYER_THREE);
if (D_800DC5B8 != 0) {
func_80058DB4(10);
render_hud(RENDER_SCREEN_MODE_3P_4P_PLAYER_THREE);
}
D_8015F788 += 1;
}
void func_802A7178(void) {
void render_player_four_3p_4p_screen(void) {
Camera *camera = camera4;
UNUSED s32 pad[2];
u16 perspNorm;
@@ -1227,9 +1227,9 @@ void func_802A7178(void) {
func_802A5760();
if (gPlayerCountSelection1 == 3) {
func_80093A5C(11);
func_80093A5C(RENDER_SCREEN_MODE_3P_4P_PLAYER_FOUR);
if (D_800DC5B8 != 0) {
func_80058DB4(11);
render_hud(RENDER_SCREEN_MODE_3P_4P_PLAYER_FOUR);
}
D_8015F788 += 1;
return;
@@ -1261,19 +1261,19 @@ void func_802A7178(void) {
render_set_position(matrix, 0);
}
render_course_actors(D_800DC5F8);
func_80058090(11);
render_object(RENDER_SCREEN_MODE_3P_4P_PLAYER_FOUR);
render_players_on_screen_four();
func_8029122C(D_800DC5F8, 3);
func_8029122C(D_800DC5F8, PLAYER_FOUR);
func_80021DA8();
func_802A2F34(D_800DC5F8);
func_80058538(11);
render_player_snow_effect(RENDER_SCREEN_MODE_3P_4P_PLAYER_FOUR);
func_80058BF4();
if (D_800DC5B8 != 0) {
func_80058C20(11);
func_80058C20(RENDER_SCREEN_MODE_3P_4P_PLAYER_FOUR);
}
func_80093A5C(0xB);
func_80093A5C(RENDER_SCREEN_MODE_3P_4P_PLAYER_FOUR);
if (D_800DC5B8 != 0) {
func_80058DB4(11);
render_hud(RENDER_SCREEN_MODE_3P_4P_PLAYER_FOUR);
}
D_8015F788 += 1;
}
+9 -9
View File
@@ -40,15 +40,15 @@ void func_802A54A8(void);
void func_802A5590(void);
void func_802A5678(void);
void func_802A5760(void);
void func_802A59A4(void);
void func_802A5CB4(void);
void func_802A5FAC(void);
void func_802A62A4(void);
void func_802A65B8(void);
void func_802A68CC(void);
void func_802A6BB0(void);
void func_802A6E94(void);
void func_802A7178(void);
void render_player_one_1p_screen(void);
void render_player_one_2p_screen_vertical(void);
void render_player_two_2p_screen_vertical(void);
void render_player_one_2p_screen_horizontal(void);
void render_player_two_2p_screen_horizontal(void);
void render_player_one_3p_4p_screen(void);
void render_player_two_3p_4p_screen(void);
void render_player_three_3p_4p_screen(void);
void render_player_four_3p_4p_screen(void);
void func_802A74BC(void);
void copy_framebuffer(s32, s32, s32, s32, u16*, u16*);
void func_802A7728(void);
File diff suppressed because it is too large Load Diff
+57 -58
View File
@@ -1,5 +1,5 @@
#ifndef hud_renderer_H
#define hud_renderer_H
#ifndef RENDER_OBJECTS_H
#define RENDER_OBJECTS_H
#include "common_structs.h"
#include "main.h"
@@ -22,17 +22,17 @@ void func_800437F8(s32, s32, u16, f32, Vtx*, s32);
void func_800438C4(s32, s32, u16, f32, Vtx*, s32);
void func_8004398C(s32, s32, u16, f32, Vtx*, s32);
s32 func_80043A54(s32);
void func_80043A84(u8*, s32, s32);
void func_80043C28(u8*, s32, s32);
void func_80043D50(u8*, s32, s32);
void func_80043EF8(u8*, s32, s32, s32);
void load_texture_block_rgba32_nomirror(u8*, s32, s32);
void load_texture_tile_rgba32_nomirror(u8*, s32, s32);
void load_texture_block_rgba16_mirror(u8*, s32, s32);
void load_texture_block_rgba16_nomirror(u8*, s32, s32, s32);
void func_800440B8(u8*, s32, s32);
void func_800441E0(u8*, s32, s32);
void func_80044388(u8*, s32, s32);
void func_800444B0(u8*, s32, s32);
void func_80044658(u8*, s32, s32);
void func_8004477C(u8*, s32, s32);
void load_texture_tile_rgba16_nomirror(u8*, s32, s32);
void load_texture_block_ia16_nomirror(u8*, s32, s32);
void load_texture_tile_ia16_nomirror(u8*, s32, s32);
void load_texture_block_ia8_nomirror(u8*, s32, s32);
void load_texture_tile_ia8_nomirror(u8*, s32, s32);
void load_texture_block_i8_nomirror(u8*, s32, s32);
void func_80044AB8(u8*, s32, s32);
void func_80044BF8(u8*, s32, s32);
@@ -74,7 +74,7 @@ void func_80046CDC(s32, s32, u16, f32, u8*);
void func_80046D40(Vec3f, Vec3su, f32, u8*);
void func_80046D90(s32, s32, u16, f32, u8*);
void func_80046DF4(s32, s32, u16, f32, s32, u8*);
void func_80046E60(u8*, u8*, s32, s32);
void load_texture_and_tlut(u8*, u8*, s32, s32);
void func_80046F60(u8*, u8*, s32, s32, s32);
void func_80047068(u8*, u8*, Vtx*, s32, s32, s32, s32);
@@ -98,7 +98,7 @@ void func_80047F40(Vec3f, Vec3su, f32, u8*, u8*, Vtx*, s32, s32, s32, s32);
void func_80047FBC(Vec3f, Vec3su, f32, u8*, u8*, Vtx*, s32, s32, s32, s32);
void func_80048038(Vec3f, Vec3su, f32, u8*, u8*, Vtx*, s32, s32, s32, s32);
void func_800480B4(Vec3f, Vec3su, f32, u8*, u8*, Vtx*, s32, s32, s32, s32);
void draw_2d_texture_at(Vec3f, Vec3su, f32, u8*, u8*, Vtx*, s32, s32, s32, s32);
void func_80048130(Vec3f, Vec3su, f32, u8*, u8*, Vtx*, s32, s32, s32, s32, s32);
void func_800481B4(Vec3f, Vec3su, f32, u8*, u8*, Vtx*, s32, s32, s32);
void func_80048228(Vec3f, Vec3su, f32, s32, u8*, u8*, Vtx*, s32, s32, s32, s32);
@@ -189,7 +189,7 @@ void func_8004B02C(void);
void func_8004B05C(u8*);
void func_8004B138(s32, s32, s32, s32);
void func_8004B180(s32, s32, s32, s32);
void func_8004B1C8(s32, s32, s32, s32, s32, s32, s32);
void set_color_render(s32, s32, s32, s32, s32, s32, s32);
void func_8004B254(s32, s32, s32);
void set_transparency(s32);
void func_8004B310(s32);
@@ -214,7 +214,7 @@ void func_8004C024(s16, s16, s16, u16, u16, u16, u16);
void func_8004C148(s16, s16, s16, u16, u16, u16, u16);
void func_8004C354(void);
void func_8004C35C(void);
void func_8004C364(s32, s32, u32, u32, u8*);
void draw_hud_2d_texture(s32, s32, u32, u32, u8*);
void func_8004C450(s32, s32, u32, u32, u8*);
void func_8004C53C(s32, s32, u32, u32, u8*);
void func_8004C628(s32, s32, u32, u32, u8*);
@@ -222,15 +222,15 @@ void func_8004C8D4(s16, s16);
void func_8004C91C(s32, s32, u8*, s32, s32, s32);
void func_8004C9D8(s32, s32, s32, u8*, s32, s32, s32, s32);
void func_8004CA58(s32, s32, f32, u8*, s32, s32);
void func_8004CAD0(s32, s32, u8*);
void func_8004CB00(s32, s32, u8*);
void func_8004CB30(s32, s32, u8*);
void func_8004CB60(s32, s32, u8*);
void func_8004CB90(s32, s32, u8*);
void draw_hud_2d_texture_8x8(s32, s32, u8*);
void draw_hud_2d_texture_8x16(s32, s32, u8*);
void draw_hud_2d_texture_16x16(s32, s32, u8*);
void draw_hud_2d_texture_32x8(s32, s32, u8*);
void draw_hud_2d_texture_32x16(s32, s32, u8*);
void func_8004CBC0(s32, s32, f32, u8*);
void func_8004CBF4(s32, s32, u8*);
void draw_hud_2d_texture_32x32(s32, s32, u8*);
void func_8004CC24(s32, s32, u8*);
void func_8004CC54(s32, s32, u8*);
void draw_hud_2d_texture_40x32(s32, s32, u8*);
void func_8004CC84(s32, s32, u8*);
void func_8004CCB4(s32, s32, u8*);
void func_8004CCE4(s32, s32, f32, u8*);
@@ -282,9 +282,9 @@ void func_8004E568(s32, s32, u8*, u8*);
void func_8004E59C(s32, s32, s32, u8*, u8*);
void func_8004E5D8(s32, s32, u8*, u8*);
void func_8004E604(s32, s32, u8*, u8*);
void func_8004E638(s32);
void draw_item_window(s32);
void func_8004E6C4(s32);
void func_8004E78C(s32);
void draw_simplified_lap_count(s32);
void func_8004E800(s32);
void func_8004E998(s32);
void func_8004EB30(s32);
@@ -300,9 +300,9 @@ void func_8004F3E4(s32);
s32 func_8004F674(s32*, s32);
void print_timer(s32, s32, s32);
void func_8004F950(s32, s32, s32, s32);
void func_8004F9CC(s32, s32, s32);
void func_8004FA78(s32);
void func_8004FC78(s16, s16, s8);
void print_timer_rainbow(s32, s32, s32);
void render_hud_timer(s32);
void draw_lap_count(s16, s16, s8);
void func_8004FDB4(f32, f32, s16, s16, s16, s32, s32, s32, s32);
void func_80050320(void);
@@ -313,8 +313,8 @@ void func_80050C68(void);
void func_80050E34(s32, s32);
void func_800514BC(void);
void func_80051638(s32);
void func_800517C8(void);
void render_object_leaf_particle(s32);
void render_object_snowflakes_particles(void);
void func_800518F8(s32, s16, s16);
void func_800519D4(s32, s16, s16);
void func_80051ABC(s16, s32);
@@ -328,35 +328,34 @@ void func_80052080(void);
void func_800520C0(s32);
void func_8005217C(s32);
void func_800523B8(s32, s32, u32);
void func_800524B4(s32);
void func_800524B4(s32);
void func_80052590(s32);
void func_800527D8(s32);
void render_object_boos(s32);
void render_object_bat(s32);
void render_object_trash_bin(s32);
void func_8005285C(s32);
void func_800528EC(s32);
void func_80052C60(s32);
void render_ice_block(s32);
void func_80052D70(s32);
void func_80052E30(s32);
void func_80052F20(s32);
void render_object_snowmans_list_2(s32);
void func_8005309C(s32);
void func_8005327C(s32);
void func_800532A4(s32);
void render_object_snowmans_list_1(s32);
void render_object_snowmans(s32);
void render_lakitu(s32);
void func_800534A4(s32);
void func_800534E8(s32);
void func_800536C8(s32);
void func_80053870(s32);
void render_object_thwomps_model(s32);
void render_object_thwomps(s32);
void func_80053D74(s32, s32, s32);
void func_80053E6C(s32);
void func_800540CC(s32, s32);
void func_800541BC(s32);
void func_80054324(s32, s32);
void func_80054414(s32);
void func_8005457C(s32, s32);
void func_80054664(s32);
void render_object_train_smoke_particle(s32, s32);
void render_object_train_smoke_particles(s32);
void render_object_paddle_boat_smoke_particle(s32, s32);
void render_object_paddle_boat_smoke_particles(s32);
void render_object_bowser_flame_particle(s32, s32);
void render_object_bowser_flame(s32);
void func_8005477C(s32, u8, Vec3f);
void func_80054938(s32);
void render_object_smoke_particles(s32);
void func_80054AFC(s32, Vec3f);
void func_80054BE8(s32);
void func_80054D00(s32, s32);
@@ -364,28 +363,28 @@ void func_80054E10(s32);
void func_80054EB8(s32);
void func_80054F04(s32);
void func_800550A4(s32);
void render_object_moles(s32);
void func_80055164(s32);
void func_80055228(s32);
void func_800552BC(s32);
void func_80055380(s32);
void func_80055458(s32, s32);
void func_80055528(s32);
void render_object_seagulls(s32);
void draw_crabs(s32, s32);
void render_object_crabs(s32);
void func_800555BC(s32, s32);
void func_8005568C(s32);
void render_object_hedgehogs(s32);
void func_800557AC(void);
void func_800557B4(s32, u32, u32);
void func_8005592C(s32);
void render_object_train_penguins(s32);
void func_80055AB8(s32, s32);
void func_80055C38(s32);
void render_object_chain_chomps(s32);
void func_80055CCC(s32, s32);
void func_80055E68(s32);
void render_object_hot_air_balloon(s32);
void func_80055EF4(s32, s32);
void func_80055F48(s32);
void func_80055FA0(s32, s32);
void func_80056160(s32);
void func_80056188(s32);
void render_object_neon(s32);
void func_800562E4(s32, s32, s32);
void func_800563DC(s32, s32, s32);
void func_800568A0(s32, s32);
@@ -393,7 +392,7 @@ void func_8005669C(s32, s32, s32);
void func_800569F4(s32);
void func_80056A40(s32, s32);
void func_80056A94(s32);
void func_80056AC0(s32);
void render_object_bomb_kart(s32);
void func_80056E24(s32, Vec3f);
void func_80056FCC(s32);
+1 -1
View File
@@ -16,7 +16,7 @@
#include "buffers.h"
#include "waypoints.h"
#include "player_controller.h"
#include "hud_renderer.h"
#include "render_objects.h"
#include "common_textures.h"
#include "skybox_and_splitscreen.h"
#include "spawn_players.h"
File diff suppressed because it is too large Load Diff
+34 -34
View File
@@ -1,5 +1,5 @@
#ifndef CODE_80071F00_H
#define CODE_80071F00_H
#ifndef UPDATE_OBJECTS_H
#define UPDATE_OBJECTS_H
#include "code_80004740.h"
#include "common_structs.h"
@@ -16,11 +16,11 @@ s32 add_unused_obj_index(s32*, s32*, s32);
void delete_object_wrapper(s32*);
void func_80072120(s32*, s32);
void func_80072180(void);
void set_object_flag_unk_054_true(s32, s32);
void set_object_flag_unk_054_false(s32, s32);
void set_object_flag_status_true(s32, s32);
void set_object_flag_status_false(s32, s32);
void func_80072214(s32, s32);
s32 is_obj_index_flag_unk_054_active(s32, s32);
s32 is_obj_index_flag_unk_054_inactive(s32, s32);
s32 is_obj_flag_status_active(s32, s32);
s32 is_obj_index_flag_status_inactive(s32, s32);
void func_800722A4(s32, s32);
void func_800722CC(s32, s32);
void func_800722F8(s32, s32);
@@ -148,33 +148,33 @@ void func_80076958(s32);
void func_800769D8(s32);
void func_80076AEC(s32);
void func_80076B7C(void);
void update_particle_bowser_castle(void);
void func_80076C9C(s32, Vec3f, s16);
void func_80076D70(Vec3f, f32, s16);
void update_flame_particle(void);
void init_object_smoke_paticle(s32, Vec3f, s16);
void init_smoke_particle(Vec3f, f32, s16);
void func_80076DC4(s32);
void func_80076E14(s32);
void func_80076ED8(s32);
void func_80076F2C(void);
void func_80076FEC(s32, s32);
void func_800770F0(s32);
void init_object_smoke_particle(s32, s32);
void init_smoke_particles(s32);
void func_800773D8(f32*, s32);
void func_80077428(s32);
void func_80077450(s32);
void func_80077584(s32);
void func_80077640(void);
void init_leaf_particle(s32, Vec3f, s32);
s32 func_80077A54(Vec3f, s32);
void func_80077AB0(Vec3f, s32);
void init_object_leaf_particle(s32, Vec3f, s32);
s32 init_leaf_particle(Vec3f, s32);
void spawn_leaf(Vec3f, s32);
void func_80077B14(s32);
void func_80077B3C(s32);
void func_80077BCC(s32);
void func_80077C9C(void);
void update_leaf(void);
void func_80077E20(s32);
void func_80078220(s32);
void func_80078288(s32);
void func_800786EC(s32);
void func_80078790(void);
void func_80078838(void);
void update_snowflakes(void);
void func_800788F8(s32, u16, Camera*);
void func_800789AC(s32, Camera*, Vec4s*);
void func_80078C68(void);
@@ -195,7 +195,7 @@ void func_8007A778(s32, Player*, Camera*);
void func_8007A884(void);
void func_8007A88C(s32);
void func_8007A910(s32);
void update_obj_laikitu(s32);
void update_object_lakitu(s32);
void func_8007AA44(s32);
void func_8007ABFC(s32, s32);
void consume_item(s32);
@@ -209,13 +209,13 @@ void func_8007B34C(s32);
void func_8007BB9C(s32);
void func_8007BBBC(s32);
void func_8007BD04(s32);
void func_8007BDA8(void);
void update_cheep_cheep_race(void);
void init_var_cheep_cheep(s32);
void func_8007BEC8(s32);
void func_8007BFB0(s32);
void func_8007C280(void);
void func_8007C2F8(s32);
void func_8007C340(void);
void update_cheep_cheep_ending(void);
void update_cheep_cheep(s32);
void wrapper_update_boos(void);
void func_8007C360(s32, Camera*);
void func_8007C420(s32, Player*, Camera*);
void func_8007C4A4(s32);
@@ -227,7 +227,7 @@ void func_8007C7B4(s32, s32);
void func_8007C91C(s32);
s32 func_8007C9F8(void);
void func_8007CA70(void);
void func_8007CC00(void);
void update_boos(void);
void func_8007CE0C(s32);
void func_8007CEDC(s32);
void func_8007D070(void);
@@ -241,11 +241,11 @@ void func_8007D8D4(s32, s32);
void func_8007DA4C(s32);
void func_8007DA74(s32);
void func_8007DAF8(s32, s32);
void func_8007DB44(void);
void update_bat(void);
void func_8007DDC0(s32);
void init_bb_trash_bin(s32);
void func_8007E00C(s32);
void func_8007E1AC(void);
void update_trash_bin(void);
void func_8007E1F4(s32);
void func_8007E358(s32);
void func_8007E3EC(s32);
@@ -297,16 +297,16 @@ void func_80081AFC(s32, s32);
void func_80081D34(s32);
void func_80081FF4(s32, s32);
void func_800821AC(s32, s32);
void func_800821FC(void);
void update_moles(void);
void func_8008241C(s32, s32);
void func_80082714(s32, s32);
void func_8008275C(s32);
void func_80082870(void);
void update_seagulls(void);
void init_ktb_crab(s32);
void func_80082B34(s32, s32);
void func_80082C30(s32);
void func_80082E18(s32);
void func_80082E5C(void);
void update_crabs(void);
void func_80082F1C(s32, s32);
void func_80083018(s32, s32);
void func_80083060(s32);
@@ -315,7 +315,7 @@ void func_8008311C(s32, s32);
void func_80083248(s32);
void func_800833D0(s32, s32);
void func_80083474(s32);
void func_800834B8(void);
void update_hedgehogs(void);
void func_80083538(s32, Vec3f, s32, s32);
void func_800836F0(Vec3f);
void func_8008379C(s32);
@@ -325,7 +325,7 @@ void func_80083A94(s32);
void func_80083B0C(s32);
void func_80083BE4(s32);
void func_80083C04(s32);
void func_80083D60(void);
void update_snowmen(void);
void func_80083F18(s32);
void func_80083FD0(s32, s32, s32);
void func_8008421C(s32, s32);
@@ -339,13 +339,13 @@ void func_80085024(void);
void func_8008502C(s32, s32);
void func_80085080(s32);
void func_800850B0(s32, s32);
void func_800853DC(s32);
void init_hot_air_balloon(s32);
void func_80085534(s32);
void func_80085768(s32);
void func_800857C0(void);
void update_hot_air_balloon(void);
void func_80085878(s32, s32);
void func_800859C8(s32, s32);
void func_80085AA8(void);
void update_chain_chomps(void);
void func_80085BB4(s32);
void init_obj_neon_mushroom(s32);
void func_80085CA0(s32);
@@ -355,7 +355,7 @@ void func_80085EF8(s32);
void func_80085F74(s32);
void func_80086074(s32, s32);
void func_80086110(s32, s32);
void update_obj_neon(s32, s32);
void update_object_neon(s32, s32);
void update_neon(void);
void func_8008629C(s32, s32);
void func_80086424(s32);
@@ -376,7 +376,7 @@ extern Vtx D_800E4470[];
extern Vtx D_800E44B0[];
extern u8 *gItemWindowTLUTs[];
extern u8 *gItemWindowTextures[];
extern u8 *D_800E4570[];
extern u8 *gHudLapTextures[];
extern u8 *gPortraitTLUTs[];
extern u8 *gPortraitTextures[];