Various cleanup (#410)

This commit is contained in:
MegaMech
2023-09-09 18:01:01 -06:00
committed by GitHub
parent 233e9217e7
commit 70207db13b
24 changed files with 222 additions and 204 deletions
+13 -144
View File
@@ -564,29 +564,9 @@ void update_obj_kiwano_fruit(struct KiwanoFruit *fruit) {
}
}
void update_obj_paddle_wheel(struct PaddleWheelBoat *boat) {
boat->wheelRot += 0x38E;
}
#include "actors/boat.inc.c"
// wheels
void update_obj_train_engine(struct TrainCar *arg0) {
arg0->wheelRot -= 0x666;
if (arg0->unk_08 != 0.0f) {
arg0->unk_08 = 0.0f;
func_800C9D80(arg0->pos, arg0->velocity, 0x51018000);
}
}
// wheels
void update_obj_train_car1(struct TrainCar *tender) {
tender->wheelRot -= 0x4FA;
}
// wheels
void update_obj_train_car2(struct TrainCar *arg0) {
arg0->wheelRot -= 0x666;
}
#include "actors/train.inc.c"
void update_obj_piranha_plant(struct PiranhaPlant *arg0) {
if ((arg0->flags & 0x800) == 0) {
@@ -1981,121 +1961,10 @@ void place_palm_trees(struct ActorSpawnData *spawnData) {
}
}
void func_8029CF0C(struct ActorSpawnData *spawnData, struct FallingRock *rock) {
s32 segment = SEGMENT_NUMBER2(spawnData);
s32 offset = SEGMENT_OFFSET(spawnData);
struct ActorSpawnData *temp_v0 = (struct ActorSpawnData *) VIRTUAL_TO_PHYSICAL2(gSegmentTable[segment] + offset);
Vec3s sp24 = {60, 120, 180};
temp_v0 += rock->unk_06;
rock->respawnTimer = sp24[rock->unk_06]; // * 2
rock->pos[0] = (f32) temp_v0->pos[0] * gCourseDirection;
rock->pos[1] = (f32) temp_v0->pos[1] + 10.0f;
rock->pos[2] = (f32) temp_v0->pos[2];
vec3f_set(rock->velocity, 0, 0, 0);
vec3s_set(rock->rot, 0, 0, 0);
}
#include "actors/falling_rocks.inc.c"
void place_falling_rocks(struct ActorSpawnData *spawnData) {
s32 addr = SEGMENT_NUMBER2(spawnData);
s32 offset = SEGMENT_OFFSET(spawnData);
// Casting this to prevent warning does not work.
struct ActorSpawnData *temp_s0 = (struct ActorSpawnData *) VIRTUAL_TO_PHYSICAL2(gSegmentTable[addr] + offset);
struct FallingRock *temp_v1;
Vec3f startingPos;
Vec3f startingVelocity;
Vec3s startingRot;
s16 temp;
while (temp_s0->pos[0] != -0x8000) {
startingPos[0] = temp_s0->pos[0] * gCourseDirection;
startingPos[1] = temp_s0->pos[1] + 10.0f;
startingPos[2] = temp_s0->pos[2];
vec3f_set(startingVelocity, 0, 0, 0);
vec3s_set(startingRot, 0, 0, 0);
temp = addActorToEmptySlot(startingPos, startingRot, startingVelocity, ACTOR_FALLING_ROCK);
temp_v1 = (struct FallingRock *) &gActorList[temp];
temp_v1->unk_06 = temp_s0->someId;
func_802AAAAC((Collision *) &temp_v1->unk30);
temp_s0++;
}
}
void update_obj_falling_rocks(struct FallingRock *rock) {
Vec3f unkVec;
f32 pad0;
f32 pad1;
if (rock->respawnTimer != 0) {
rock->respawnTimer -= 1;
return;
}
if (rock->pos[1] < D_8015F8E4) {
func_8029CF0C(d_course_choco_mountain_falling_rock_spawns, rock);
}
rock->rot[0] += (s16) ((rock->velocity[2] * 5461.0f) / 20.0f);
rock->rot[2] += (s16) ((rock->velocity[0] * 5461.0f) / 20.0f);
rock->velocity[1] -= 0.1;
if (rock->velocity[1] < (-2.0f)) {
rock->velocity[1] = -2.0f;
}
rock->pos[0] += rock->velocity[0];
rock->pos[1] += rock->velocity[1];
rock->pos[2] += rock->velocity[2];
pad1 = rock->velocity[1];
func_802ADDC8(&rock->unk30, 10.0f, rock->pos[0], rock->pos[1], rock->pos[2]);
pad0 = rock->unk30.unk3C[2];
if (pad0 < 0.0f) {
unkVec[0] = -rock->unk30.unk60[0];
unkVec[1] = -rock->unk30.unk60[1];
unkVec[2] = -rock->unk30.unk60[2];
rock->pos[0] += unkVec[0] * rock->unk30.unk3C[2];
rock->pos[1] += unkVec[1] * rock->unk30.unk3C[2];
rock->pos[2] += unkVec[2] * rock->unk30.unk3C[2];
func_802AC114(unkVec, pad0, rock->velocity, 2.0f);
rock->velocity[1] = -1.2f * pad1;
func_800C98B8(rock->pos, rock->velocity, 0x1900800FU);
}
pad0 = rock->unk30.unk3C[0];
if (pad0 < 0.0f) {
unkVec[1] = -rock->unk30.unk48[1];
if (unkVec[1] == 0.0f) {
rock->velocity[1] *= -1.2f;
return;
}
else {
unkVec[0] = -rock->unk30.unk48[0];
unkVec[2] = -rock->unk30.unk48[2];
rock->pos[0] += unkVec[0] * rock->unk30.unk3C[0];
rock->pos[1] += unkVec[1] * rock->unk30.unk3C[0];
rock->pos[2] += unkVec[2] * rock->unk30.unk3C[0];
func_802AC114(unkVec, pad0, rock->velocity, 2.0f);
rock->velocity[1] = -1.2f * pad1;
func_800C98B8(rock->pos, rock->velocity, 0x1900800FU);
}
}
pad0 = rock->unk30.unk3C[1];
if (pad0 < 0.0f) {
unkVec[1] = -rock->unk30.unk54[1];
if (unkVec[1] == 0.0f) {
rock->velocity[1] *= -1.2f;
}
else {
unkVec[0] = -rock->unk30.unk54[0];
unkVec[2] = -rock->unk30.unk54[2];
rock->pos[0] += unkVec[0] * rock->unk30.unk3C[1];
rock->pos[1] += unkVec[1] * rock->unk30.unk3C[1];
rock->pos[2] += unkVec[2] * rock->unk30.unk3C[1];
pad1 = rock->velocity[1];
func_802AC114(unkVec, pad0, rock->velocity, 2.0f);
rock->velocity[1] = -1.2f * pad1;
func_800C98B8(rock->pos, rock->velocity, 0x1900800FU);
}
}
}
// This function may be better named "init_trees_cacti_shrubs"
void place_segment_06(struct ActorSpawnData *arg0) {
// Trees, cacti, shrubs, etc.
void spawn_foliage(struct ActorSpawnData *arg0) {
UNUSED s32 pad[4];
Vec3f position;
Vec3f velocity;
@@ -2269,7 +2138,7 @@ void place_course_actors(void) {
gNumPermanentActors = 0;
switch (gCurrentCourseId) {
case COURSE_MARIO_RACEWAY:
place_segment_06(d_course_mario_raceway_tree_spawns);
spawn_foliage(d_course_mario_raceway_tree_spawns);
place_piranha_plants(d_course_mario_raceway_piranha_plant_spawns);
place_all_item_boxes(d_course_mario_raceway_item_box_spawns);
vec3f_set(position, 150.0f, 40.0f, -1300.0f);
@@ -2285,21 +2154,21 @@ void place_course_actors(void) {
place_falling_rocks(d_course_choco_mountain_falling_rock_spawns);
break;
case COURSE_BOWSER_CASTLE:
place_segment_06(d_course_bowsers_castle_tree_spawn);
spawn_foliage(d_course_bowsers_castle_tree_spawn);
place_all_item_boxes(d_course_bowsers_castle_item_box_spawns);
break;
case COURSE_BANSHEE_BOARDWALK:
place_all_item_boxes(d_course_banshee_boardwalk_item_box_spawns);
break;
case COURSE_YOSHI_VALLEY:
place_segment_06(d_course_yoshi_valley_tree_spawn);
spawn_foliage(d_course_yoshi_valley_tree_spawn);
place_all_item_boxes(d_course_yoshi_valley_item_box_spawns);
vec3f_set(position, -2300.0f, 0.0f, 634.0f);
position[0] *= gCourseDirection;
addActorToEmptySlot(position, rotation, velocity, ACTOR_YOSHI_VALLEY_EGG);
break;
case COURSE_FRAPPE_SNOWLAND:
place_segment_06(d_course_frappe_snowland_tree_spawns);
spawn_foliage(d_course_frappe_snowland_tree_spawns);
place_all_item_boxes(d_course_frappe_snowland_item_box_spawns);
break;
case COURSE_KOOPA_BEACH:
@@ -2308,17 +2177,17 @@ void place_course_actors(void) {
place_palm_trees(d_course_koopa_troopa_beach_tree_spawn);
break;
case COURSE_ROYAL_RACEWAY:
place_segment_06(d_course_royal_raceway_tree_spawn);
spawn_foliage(d_course_royal_raceway_tree_spawn);
place_all_item_boxes(d_course_royal_raceway_item_box_spawns);
place_piranha_plants(d_course_royal_raceway_piranha_plant_spawn);
break;
case COURSE_LUIGI_RACEWAY:
place_segment_06(d_course_luigi_raceway_tree_spawn);
spawn_foliage(d_course_luigi_raceway_tree_spawn);
place_all_item_boxes(d_course_luigi_raceway_item_box_spawns);
break;
case COURSE_MOO_MOO_FARM:
if (gPlayerCountSelection1 != 4) {
place_segment_06(d_course_moo_moo_farm_tree_spawn);
spawn_foliage(d_course_moo_moo_farm_tree_spawn);
}
place_all_item_boxes(d_course_moo_moo_farm_item_box_spawns);
break;
@@ -2326,7 +2195,7 @@ void place_course_actors(void) {
place_all_item_boxes(d_course_toads_turnpike_item_box_spawns);
break;
case COURSE_KALAMARI_DESERT:
place_segment_06(d_course_kalimari_desert_cactus_spawn);
spawn_foliage(d_course_kalimari_desert_cactus_spawn);
place_all_item_boxes(d_course_kalimari_desert_item_box_spawns);
vec3f_set(position, -1680.0f, 2.0f, 35.0f);
position[0] *= gCourseDirection;
+1 -1
View File
@@ -72,7 +72,7 @@ void place_palm_trees(struct ActorSpawnData*);
void func_8029CF0C(struct ActorSpawnData*, struct FallingRock*);
void place_falling_rocks(struct ActorSpawnData*);
void update_obj_falling_rocks(struct FallingRock*);
void place_segment_06(struct ActorSpawnData*);
void spawn_foliage(struct ActorSpawnData*);
void place_all_item_boxes(struct ActorSpawnData*);
void init_kiwano_fruit(void);
void destroy_all_actors(void);
+3
View File
@@ -0,0 +1,3 @@
void update_obj_paddle_wheel(struct PaddleWheelBoat *boat) {
boat->wheelRot += 0x38E;
}
+112
View File
@@ -0,0 +1,112 @@
void func_8029CF0C(struct ActorSpawnData *spawnData, struct FallingRock *rock) {
s32 segment = SEGMENT_NUMBER2(spawnData);
s32 offset = SEGMENT_OFFSET(spawnData);
struct ActorSpawnData *temp_v0 = (struct ActorSpawnData *) VIRTUAL_TO_PHYSICAL2(gSegmentTable[segment] + offset);
Vec3s sp24 = {60, 120, 180};
temp_v0 += rock->unk_06;
rock->respawnTimer = sp24[rock->unk_06]; // * 2
rock->pos[0] = (f32) temp_v0->pos[0] * gCourseDirection;
rock->pos[1] = (f32) temp_v0->pos[1] + 10.0f;
rock->pos[2] = (f32) temp_v0->pos[2];
vec3f_set(rock->velocity, 0, 0, 0);
vec3s_set(rock->rot, 0, 0, 0);
}
void place_falling_rocks(struct ActorSpawnData *spawnData) {
s32 addr = SEGMENT_NUMBER2(spawnData);
s32 offset = SEGMENT_OFFSET(spawnData);
// Casting this to prevent warning does not work.
struct ActorSpawnData *temp_s0 = (struct ActorSpawnData *) VIRTUAL_TO_PHYSICAL2(gSegmentTable[addr] + offset);
struct FallingRock *temp_v1;
Vec3f startingPos;
Vec3f startingVelocity;
Vec3s startingRot;
s16 temp;
while (temp_s0->pos[0] != -0x8000) {
startingPos[0] = temp_s0->pos[0] * gCourseDirection;
startingPos[1] = temp_s0->pos[1] + 10.0f;
startingPos[2] = temp_s0->pos[2];
vec3f_set(startingVelocity, 0, 0, 0);
vec3s_set(startingRot, 0, 0, 0);
temp = addActorToEmptySlot(startingPos, startingRot, startingVelocity, ACTOR_FALLING_ROCK);
temp_v1 = (struct FallingRock *) &gActorList[temp];
temp_v1->unk_06 = temp_s0->someId;
func_802AAAAC((Collision *) &temp_v1->unk30);
temp_s0++;
}
}
void update_obj_falling_rocks(struct FallingRock *rock) {
Vec3f unkVec;
f32 pad0;
f32 pad1;
if (rock->respawnTimer != 0) {
rock->respawnTimer -= 1;
return;
}
if (rock->pos[1] < D_8015F8E4) {
func_8029CF0C(d_course_choco_mountain_falling_rock_spawns, rock);
}
rock->rot[0] += (s16) ((rock->velocity[2] * 5461.0f) / 20.0f);
rock->rot[2] += (s16) ((rock->velocity[0] * 5461.0f) / 20.0f);
rock->velocity[1] -= 0.1;
if (rock->velocity[1] < (-2.0f)) {
rock->velocity[1] = -2.0f;
}
rock->pos[0] += rock->velocity[0];
rock->pos[1] += rock->velocity[1];
rock->pos[2] += rock->velocity[2];
pad1 = rock->velocity[1];
func_802ADDC8(&rock->unk30, 10.0f, rock->pos[0], rock->pos[1], rock->pos[2]);
pad0 = rock->unk30.unk3C[2];
if (pad0 < 0.0f) {
unkVec[0] = -rock->unk30.unk60[0];
unkVec[1] = -rock->unk30.unk60[1];
unkVec[2] = -rock->unk30.unk60[2];
rock->pos[0] += unkVec[0] * rock->unk30.unk3C[2];
rock->pos[1] += unkVec[1] * rock->unk30.unk3C[2];
rock->pos[2] += unkVec[2] * rock->unk30.unk3C[2];
func_802AC114(unkVec, pad0, rock->velocity, 2.0f);
rock->velocity[1] = -1.2f * pad1;
func_800C98B8(rock->pos, rock->velocity, 0x1900800FU);
}
pad0 = rock->unk30.unk3C[0];
if (pad0 < 0.0f) {
unkVec[1] = -rock->unk30.unk48[1];
if (unkVec[1] == 0.0f) {
rock->velocity[1] *= -1.2f;
return;
}
else {
unkVec[0] = -rock->unk30.unk48[0];
unkVec[2] = -rock->unk30.unk48[2];
rock->pos[0] += unkVec[0] * rock->unk30.unk3C[0];
rock->pos[1] += unkVec[1] * rock->unk30.unk3C[0];
rock->pos[2] += unkVec[2] * rock->unk30.unk3C[0];
func_802AC114(unkVec, pad0, rock->velocity, 2.0f);
rock->velocity[1] = -1.2f * pad1;
func_800C98B8(rock->pos, rock->velocity, 0x1900800FU);
}
}
pad0 = rock->unk30.unk3C[1];
if (pad0 < 0.0f) {
unkVec[1] = -rock->unk30.unk54[1];
if (unkVec[1] == 0.0f) {
rock->velocity[1] *= -1.2f;
}
else {
unkVec[0] = -rock->unk30.unk54[0];
unkVec[2] = -rock->unk30.unk54[2];
rock->pos[0] += unkVec[0] * rock->unk30.unk3C[1];
rock->pos[1] += unkVec[1] * rock->unk30.unk3C[1];
rock->pos[2] += unkVec[2] * rock->unk30.unk3C[1];
pad1 = rock->velocity[1];
func_802AC114(unkVec, pad0, rock->velocity, 2.0f);
rock->velocity[1] = -1.2f * pad1;
func_800C98B8(rock->pos, rock->velocity, 0x1900800FU);
}
}
}
+19
View File
@@ -0,0 +1,19 @@
// wheels
void update_obj_train_engine(struct TrainCar *arg0) {
arg0->wheelRot -= 0x666;
if (arg0->unk_08 != 0.0f) {
arg0->unk_08 = 0.0f;
func_800C9D80(arg0->pos, arg0->velocity, 0x51018000);
}
}
// wheels
void update_obj_train_car1(struct TrainCar *tender) {
tender->wheelRot -= 0x4FA;
}
// wheels
void update_obj_train_car2(struct TrainCar *arg0) {
arg0->wheelRot -= 0x666;
}
+6
View File
@@ -10,6 +10,12 @@
#include <sounds.h>
#include "port_eu.h"
/** bss
s8 D_8018EF10;
*/
// Requires void in the argument list to match properly.
void func_800C13F0(void) {
}
+1 -1
View File
@@ -352,7 +352,7 @@ void func_80282C40(struct struct_80283430 *arg0, struct struct_80282C40 *arg1, s
j++;
goto dummy_label_888430;
while(1) {
while(TRUE) {
do {
dummy_label_888430: ;
+2 -2
View File
@@ -305,7 +305,7 @@ void func_80003040(void) {
switch (gCurrentCourseId) {
case COURSE_MARIO_RACEWAY:
dma_textures(D_0F04F45C, 0x35B, 0x800);
place_segment_06(d_course_mario_raceway_tree_spawns);
spawn_foliage(d_course_mario_raceway_tree_spawns);
break;
case COURSE_BOWSER_CASTLE:
find_vtx_and_set_colours(0x7001350, 0x32, 0, 0, 0);
@@ -331,7 +331,7 @@ void func_80003040(void) {
dma_textures(D_0F0532F8, 0x400, 0x800);
dma_textures(D_0F05363C, 0x400, 0x800);
dma_textures(D_0F053950, 0x400, 0x800);
place_segment_06(d_course_moo_moo_farm_tree_spawn);
spawn_foliage(d_course_moo_moo_farm_tree_spawn);
break;
case COURSE_SHERBET_LAND:
find_vtx_and_set_colours(0x7001EB8, -0x4C, 0xFF, 0xFF, 0xFF);
+6
View File
@@ -20,6 +20,11 @@
#include "bomb_kart.h"
#include "courses/all_course_data.h"
//Collision D_80162E70;
//s16 D_80162EB0; LIkely a float.
// Strings, presented by google translate!
// Note that these are EUC-JP encoded, see:
// https://en.wikipedia.org/wiki/Extended_Unix_Code#EUC-JP
@@ -5789,6 +5794,7 @@ void func_800122D8(void) {
//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc
extern s16 D_80162EB0;
// arg1 struct tbd
void func_80012780(TrainCarStuff *trainCar, void *arg1, s16 arg2) {
trainCar->position[0] = (f32) arg1->unk0;
trainCar->position[1] = (f32) D_80162EB0;
+1 -1
View File
@@ -5121,7 +5121,7 @@ s32 func_8009A374(MkAnimation *arg0) {
while (D_8018DEE0[var_a1].visible != 0) {
var_a1++;
if (var_a1 >= 0x10) {
while(1){}
while(TRUE);
}
}
temp_v1 = &D_8018DEE0[var_a1];
+7 -1
View File
@@ -505,7 +505,13 @@ void setup_game_memory(void) {
init_seg_8028DF00();
gHeapEndPtr = SEG_8028DF00;
set_segment_base_addr(0, (void *) SEG_START);
initialize_memory_pool((uintptr_t) &D_801978D0, (uintptr_t) 0x80242F00);
// Memory pool size of 0xAB630
// todo: is it possible to shift this value?
#ifdef AVOID_UB
initialize_memory_pool((uintptr_t) &_mainSegNoloadEnd, (uintptr_t) (&_mainSegNoloadEnd[0] + 0xAB630));
#else
initialize_memory_pool((uintptr_t) &_mainSegNoloadEnd, (uintptr_t) 0x80242F00);
#endif
func_80000BEC();
osInvalDCache((void *) SEG_802BA370, 0x5810);
osPiStartDma(&gDmaIoMesg, 0, 0, (uintptr_t) &_data_802BA370SegmentRomStart, (void *) SEG_802BA370, 0x5810, &gDmaMesgQueue);
+1 -1
View File
@@ -974,7 +974,7 @@ void displaylist_unpack(uintptr_t *data, uintptr_t finalDisplaylistOffset, u32 a
sGfxSeekPosition = 0;
sPackedSeekPosition = 0;
while(1) {
while(TRUE) {
// Seek to the next byte
opcode = packed_dl[sPackedSeekPosition++];
+2
View File
@@ -61,6 +61,8 @@ s32 __osSpSetPc(void *);
s32 __osSpDeviceBusy(void);
s32 __osSiDeviceBusy(void);
s32 __osSpRawStartDma(u32 dir, void *sp_ptr, void *dram_ptr, size_t size);
void __osSetHWIntrRoutine(OSHWIntr interrupt, s32 (*handler)(void));
s32 __osLeoInterrupt();
void __osViInit(void);
OSViContext *__osViGetCurrentContext(void);
OSViContext *__osViGetCurrentContext2(void);
+1 -2
View File
@@ -11,8 +11,7 @@ typedef struct {
u32 instr03;
} exceptionPreamble;
extern u32 D_80194040; // maybe initialized?
extern s32 __osLeoInterrupt;
u32 D_80194040;
u64 osClockRate = 62500000;
u32 D_800EA5E8 = 0;