Update gitignore & match more actor funcs (#206)

* import random_u16 to sm64

* rand math decomp

* Match func_80298AC0

* Match some actor funcs

* Renames

* update gitignore for .bin textures

* update player struct member 34 to Vec3f

* Named and documented actor destroy funcs
This commit is contained in:
MegaMech
2022-05-19 14:20:39 -06:00
committed by GitHub
parent bcf65f3883
commit 489e897147
23 changed files with 139 additions and 334 deletions
+1 -1
View File
@@ -5274,7 +5274,7 @@ s32 func_800C21E8(s32, ?); // extern
extern u8 D_800EA108;
extern u8 D_800EA1C0;
void func_800C99E0(s32 arg0, ? arg1) {
void func_800C99E0(Vec3f arg0, s32 arg1) {
s32 temp_t9;
s32 temp_v0;
s32 phi_s0;
+1 -1
View File
@@ -251,7 +251,7 @@ void func_80003040(void) {
gPlayerCountSelection1 = 1;
set_segment_base_addr(0x03, (gPrevLoadedAddress + 0xFFFF7000));
func_8029DAB8();
destroy_all_actors();
switch (gCurrentCourseId) {
case COURSE_MARIO_RACEWAY:
func_802A84F4(&D_0F04F45C, 0x35B, 0x800);
+19 -19
View File
@@ -2964,9 +2964,9 @@ void func_8002D268(Player *player, s32 arg1, s8 arg2, s8 arg3) {
f32 spB0;
f32 spAC;
f32 spA8;
f32 spA0;
f32 sp9C;
f32 sp98;
//f32 spA0;
//f32 sp9C;
Vec3f sp98; // Clearly a vec3f
? sp8C;
s32 sp7C;
f32 sp60;
@@ -3158,9 +3158,9 @@ void func_8002D268(Player *player, s32 arg1, s8 arg2, s8 arg3) {
func_8002C7E4(temp_f12_3, temp_f14_3, player, arg3, arg2);
sp18C = func_80030150(player, arg3);
func_802B63B8(&sp184, temp_a1);
sp98 = player->unk_034;
sp9C = player->unk_038;
spA0 = player->unk_03C;
sp98 = player->unk_034[0];
sp9C = player->unk_034[1];
spA0 = player->unk_034[2];
if (((player->unk_10C < 3) && (player->unk_256 < 3)) || ((player->unk_0BC & 0x2000) == 0x2000)) {
temp_t4 = player->unk_07C >> 0x10;
if ((temp_t4 >= 0x28) || (temp_t4 < -0x27)) {
@@ -3217,9 +3217,9 @@ void func_8002D268(Player *player, s32 arg1, s8 arg2, s8 arg3) {
player->rotY = temp_f12_6;
temp_t9 = &D_8018CE10[arg3];
sp54 = temp_t9;
spFC = temp_t9->unk_04 + (temp_f0_7 + player->unk_034);
spF8 = player->unk_038 + temp_f12_6;
spF4 = temp_t9->unk_0C + (spE8 + player->unk_03C);
spFC = temp_t9->unk_04 + (temp_f0_7 + player->unk_034[0]);
spF8 = player->unk_034[1] + temp_f12_6;
spF4 = temp_t9->unk_0C + (spE8 + player->unk_034[2]);
temp_v0_6 = player->unk_0CA;
if (((temp_v0_6 & 2) != 2) && ((temp_v0_6 & 8) != 8) && ((player->unk_0BC & 0x4000000) != 0x4000000) && ((temp_v0_6 & 1) == 0)) {
func_8002AAC0(temp_f12_6, phi_f14_2, player);
@@ -3359,9 +3359,9 @@ void func_8002D268(Player *player, s32 arg1, s8 arg2, s8 arg3) {
}
player->unk_064 = sp178;
player->unk_06C = sp180;
player->unk_034 = sp98;
player->unk_038 = sp9C;
player->unk_03C = spA0;
player->unk_034[0] = sp98[0];
player->unk_034[1] = sp98[1];
player->unk_034[2] = sp98[2];
temp_v0_18 = &D_80165070[arg3];
temp_v0_18->unk0 = sp98;
temp_v0_18->unk4 = sp9C;
@@ -3372,9 +3372,9 @@ void func_8002D268(Player *player, s32 arg1, s8 arg2, s8 arg3) {
temp_f12_7 = *temp_v0_19;
if (temp_f12_7 < temp_f2_8) {
temp_f0_8 = temp_f12_7 / temp_f2_8;
player->unk_034 *= temp_f0_8;
player->unk_038 *= temp_f0_8;
player->unk_03C *= temp_f0_8;
player->unk_034[0] *= temp_f0_8;
player->unk_034[1] *= temp_f0_8;
player->unk_034[2] *= temp_f0_8;
player->unk_094 = *temp_v0_19;
}
}
@@ -3383,9 +3383,9 @@ void func_8002D268(Player *player, s32 arg1, s8 arg2, s8 arg3) {
if (temp_f2_9 > 1.0f) {
temp_f0_9 = 1.0f / temp_f2_9;
player->unk_094 = 1.0f;
player->unk_034 *= temp_f0_9;
player->unk_038 *= temp_f0_9;
player->unk_03C *= temp_f0_9;
player->unk_034[0] *= temp_f0_9;
player->unk_034[1] *= temp_f0_9;
player->unk_034[2] *= temp_f0_9;
}
}
if (player->unk_124 >= 500.0f) {
@@ -3408,7 +3408,7 @@ void func_8002E4C4(Player *player) {
if (((player->pos[1] - D_80164510[player_index]) > 1200.0f) || ((player->pos[1] - D_80164510[player_index]) < -1200.0f)) {
player->pos[1] = player->rotY;
}
player->unk_038 = 0.0f;
player->unk_034[1] = 0.0f;
}
#ifdef MIPS_TO_C
+3 -3
View File
@@ -64,9 +64,9 @@ void spawn_player(Player *player, s8 playerIndex, f32 arg2, f32 arg3, f32 arg4,
player->unk_05C = 1.0f;
player->unk_058 = 0.0f;
player->unk_060 = 0.0f;
player->unk_034 = 0.0f;
player->unk_038 = 0.0f;
player->unk_03C = 0.0f;
player->unk_034[0] = 0.0f;
player->unk_034[1] = 0.0f;
player->unk_034[2] = 0.0f;
player->unk_02E = arg5;
player->unk_030 = 0;
player->unk_0FA = 0;
+2 -2
View File
@@ -1101,8 +1101,8 @@ void func_8008E4A4(Player* player, s8 arg1) {
player->unk_042 += 0xAAA;
player->unk_08C = 0.0f;
player->unk_09C = 0.0f;
player->unk_034 = 0.0f;
player->unk_03C = 0.0f;
player->unk_034[0] = 0.0f;
player->unk_034[2] = 0.0f;
player->unk_0BC &= ~0xC0;
if ((player->unk_0BC & 8) != 8) {
+80 -111
View File
@@ -9,6 +9,7 @@
f32 sins(u16); /* extern */
f32 coss(u16); /* extern */
void func_800C99E0(Vec3f, s32); // audio external
f32 func_802B80D0(Vec3f, Vec3f, u16, f32, f32, f32); // extern
void func_800C98B8(Vec3f, Vec3f, u32); // extern
void func_8029794C(Vec3f, Vec3s, f32);
@@ -49,12 +50,13 @@ s32 D_802BA058;
struct Actor *D_802BA05C;
s8 D_802BA060[512]; // tlut 256
u16 D_802BA260;
extern u16 gNumActors;
#ifdef MIPS_TO_C
//generated by mips_to_c commit bd0364fa19633bd6201f8007e2d0a7ed87825909
? func_8000EE58(u16, void *, u16, s32); /* extern */
? func_8029E854(void *, void *); /* extern */
? destroy_actor(void *, void *); /* extern */
extern u16 D_8015F6FE;
extern u16 gNumPermanentActors;
extern ? gActorList;
@@ -93,7 +95,7 @@ loop_2:
func_8000EE58(phi_a2, phi_a1, phi_a2, 2);
}
D_8015F6FE += -1;
func_8029E854(phi_a1, phi_a1);
destroy_actor(phi_a1, phi_a1);
return;
}
temp_a2 = phi_a2 + 1;
@@ -124,7 +126,7 @@ loop_12:
/* fallthrough */
case 7: /* switch 1 */
D_8015F6FE += -1;
func_8029E854(phi_a1_2, phi_a1_2);
destroy_actor(phi_a1_2, phi_a1_2);
return;
}
} else {
@@ -158,7 +160,7 @@ loop_23:
func_8000EE58(phi_a2_4, phi_a1_3, phi_a2_4, 2);
block_29:
D_8015F6FE += -1;
func_8029E854(phi_a1_3, phi_a1_3);
destroy_actor(phi_a1_3, phi_a1_3);
return;
}
block_30:
@@ -190,7 +192,7 @@ loop_34:
/* fallthrough */
case 7: /* switch 2 */
D_8015F6FE += -1;
func_8029E854(phi_a1_4, phi_a1_4);
destroy_actor(phi_a1_4, phi_a1_4);
return;
}
} else {
@@ -1265,9 +1267,9 @@ extern f32 D_802B964C; // 0.8f
#ifdef RO_DATA // Needs D_802B964C imported to match
void func_80298AC0(Player *player) {
Vec3f sp64;
s32 segment = (((unsigned int)(D_06013F78)) >> 24);
s32 offset = ((unsigned int)(D_06013F78) & 0x00ffffff);
struct UnkActorSpawnData *data = (gSegmentTable[segment] + offset) - 0x80000000U;
s32 segment = SEGMENT_NUMBER2(D_06013F78);
s32 offset = SEGMENT_OFFSET(D_06013F78);
struct UnkActorSpawnData *data = VIRTUAL_TO_PHYSICAL2(gSegmentTable[segment] + offset);
while (data->pos[0] != -0x8000) {
sp64[0] = data->pos[0] * gCourseDirection;
@@ -1282,7 +1284,7 @@ void func_80298AC0(Player *player) {
if ((player->unk_000 & 0x100) == 0) {
func_800C9060((u8) (player - gPlayerOne), 0x19007018);
}
return;
break;
}
data++;
}
@@ -1319,30 +1321,17 @@ void func_80298C94(void) {
GLOBAL_ASM("asm/non_matchings/code_actors/func_80298C94.s")
#endif
#ifdef MIPS_TO_C
//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307
extern ? D_06013F78;
extern ? gSegmentTable;
void func_80298D10(void) {
s16 *temp_v1;
s16 *temp_v1_2;
s16 *phi_v1;
s32 segment = SEGMENT_NUMBER2(D_06013F78);
s32 offset = SEGMENT_OFFSET(D_06013F78);
struct UnkActorSpawnData80298D10 *temp_v1 = VIRTUAL_TO_PHYSICAL2(gSegmentTable[segment] + offset);
temp_v1 = *(&gSegmentTable + ((&D_06013F78 >> 0x18) * 4)) + (&D_06013F78 & 0xFFFFFF) + 0x80000000;
phi_v1 = temp_v1;
if (*temp_v1 != -0x8000) {
do {
phi_v1->unk6 = phi_v1->unk6 & 0xF;
temp_v1_2 = phi_v1 + 0xA;
temp_v1_2->unk-8 = phi_v1->unk_08;
phi_v1 = temp_v1_2;
} while (phi_v1->unkA != -0x8000);
while (temp_v1->pos[0] != -0x8000) {
temp_v1->pos[1] = temp_v1->unk8;
temp_v1->someId &= 0xF;
temp_v1++;
}
}
#else
GLOBAL_ASM("asm/non_matchings/code_actors/func_80298D10.s")
#endif
// Might just be an s32 array with a u16 in it... However that might work.
Vec3s D_802B87E0[] = {0x0000, 0x0000, 0x0000};
@@ -3017,65 +3006,50 @@ void place_all_item_boxes(struct ActorSpawnData *spawnData) {
}
}
#ifdef MIPS_TO_C
//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307
s32 func_8029EC88(? *, ? *, ? *, ?); // extern
extern ? gActorList;
extern u16 gPlayers;
void func_8029D9F8(void) {
? sp64;
? sp58;
? sp50;
s16 temp_s0;
u16 temp_v0;
u16 *phi_s1;
void init_kiwano_fruit(void) {
Vec3f sp64;
Vec3f sp58;
Vec3s sp50;
Player *phi_s1;
struct Actor *actor;
s16 phi_s0;
s32 i;
phi_s1 = &gPlayers;
phi_s0 = 0;
do {
temp_v0 = *phi_s1;
if (((temp_v0 & 0x4000) != 0) && ((temp_v0 & 0x100) == 0)) {
(&gActorList + (func_8029EC88(&sp64, &sp50, &sp58, 0x2D) * 0x70))->unk_04 = phi_s0;
}
temp_s0 = phi_s0 + 1;
phi_s1 += 0xDD8;
phi_s0 = temp_s0;
} while (temp_s0 != 4);
//phi_s0 = 0;
for (i = 0; i < 4; i++) {
phi_s1 = &gPlayers[i];
//temp_v0 = *phi_s1;
if ((phi_s1->unk_000 & 0x4000) == 0) { continue; }
if ((phi_s1->unk_000 & 0x100) != 0) { continue; }
phi_s0 = func_8029EC88(sp64, sp50, sp58, ACTOR_KIWANO_FRUIT);
actor = &gActorList[phi_s0];
actor->unk_04 = i;
}
}
#else
GLOBAL_ASM("asm/non_matchings/code_actors/func_8029D9F8.s")
#endif
#ifdef MIPS_TO_C
//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307
extern s16 gNumActors;
//extern ? gActorList;
extern s32 D_80162578;
extern struct Actor gActorList[112];
void func_8029DAB8(void) {
struct Actor *temp_v1;
/**
* Destroys actors via zeroing some of the member data
* Key word some. When spawning a new actor,
* members such as pos and rot should be set to prevent using expired data
**/
void destroy_all_actors(void) {
s32 i;
gNumActors = 0;
for (i = 0; i < ACTOR_LIST_SIZE; i++) {
temp_v1 = &gActorList[i];
temp_v1->unk2 = 0;
temp_v1->unk0 = 0;
temp_v1->unk_04 = 0;
temp_v1->unk6 = 0;
temp_v1->unk_08 = 0.0f;
temp_v1->unkC = 0.0f;
gActorList[i].flags = 0;
gActorList[i].type = 0;
gActorList[i].unk_04 = 0;
gActorList[i].state = 0;
gActorList[i].unk_08 = 0.0f;
gActorList[i].boundingBoxSize = 0.0f;
}
}
#else
GLOBAL_ASM("asm/non_matchings/code_actors/func_8029DAB8.s")
#endif
#ifdef MIPS_TO_C
//generated by mips_to_c commit bd0364fa19633bd6201f8007e2d0a7ed87825909
? func_80298D10(); /* extern */
? func_8029D9F8(); /* extern */
? init_kiwano_fruit(); /* extern */
s32 func_8029EC88(f32 *, ? *, ? *, ?); /* extern */
? func_802A14BC(f32, ?, ?); /* extern */
? vec3s_set(? *, ?, ?, ?); /* extern */
@@ -3272,7 +3246,7 @@ void func_8029DB44(void) {
break;
case COURSE_DK_JUNGLE:
place_all_item_boxes(&D_06013EC0);
func_8029D9F8();
init_kiwano_fruit();
func_80298D10();
break;
case COURSE_BIG_DONUT:
@@ -3289,7 +3263,7 @@ GLOBAL_ASM("asm/non_matchings/code_actors/func_8029DB44.s")
//generated by mips_to_c commit bd0364fa19633bd6201f8007e2d0a7ed87825909
? func_800122D8(); /* extern */
? func_80297818(); /* extern */
? func_8029DAB8(); /* extern */
? destroy_all_actors(); /* extern */
? func_8029DB44(); /* extern */
s32 func_802A84F4(? *, ?, ?); /* extern */
? set_segment_base_addr(?, s32); /* extern */
@@ -3458,7 +3432,7 @@ void func_8029E158(void) {
break;
}
func_80297818();
func_8029DAB8();
destroy_all_actors();
func_8029DB44();
func_800122D8();
}
@@ -3466,44 +3440,40 @@ void func_8029E158(void) {
GLOBAL_ASM("asm/non_matchings/code_actors/func_8029E158.s")
#endif
#ifdef MIPS_TO_C
//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307
? func_800C99E0(void *, ?, void *); // extern
void func_8029E7DC(struct Actor *actor) {
s16 temp_v0 = actor->flags;
void func_8029E7DC(void *arg0) {
s16 temp_v0;
temp_v0 = arg0->unk2;
if ((temp_v0 & 0x200) != 0) {
func_800C99E0(arg0 + 0x18, 0x19019053, arg0);
func_800C99E0(actor->pos, 0x19019053);
return;
}
if ((temp_v0 & 0x100) != 0) {
func_800C99E0(arg0 + 0x18, 0x19018010, arg0);
func_800C99E0(actor->pos, 0x19018010);
return;
}
if ((temp_v0 & 0x80) != 0) {
func_800C99E0(arg0 + 0x18, 0x19008054, arg0);
func_800C99E0(actor->pos, 0x19008054);
}
}
#else
GLOBAL_ASM("asm/non_matchings/code_actors/func_8029E7DC.s")
#endif
#ifdef MIPS_TO_C
//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307
? func_8029E7DC(); // extern
extern u16 gNumActors;
void func_8029E854(void *arg0) {
func_8029E7DC();
arg0->unk2 = 0;
arg0->unk0 = 0;
gNumActors = gNumActors - 1;
/**
* This func likely plays an audio track based on flag
* Next, it destroys the actor via zeroing its flags and type.
* Note that the data from its other members still exist.
* Actors are expected to set members such as pos and rot data if used. Not doing so could result in the use of expired data.
*
* This method does not require modification to gActorList directly.
* No popping members of gActorList. The list is always the size of ACTOR_LIST_SIZE.
* Actors are members of gActorList by definition.
*
* @param Actor to destroy
*/
void destroy_actor(struct Actor *actor) {
func_8029E7DC(actor);
actor->flags = 0;
actor->type = 0;
gNumActors--;
}
#else
GLOBAL_ASM("asm/non_matchings/code_actors/func_8029E854.s")
#endif
#ifdef MIPS_TO_C
//generated by m2c commit 685418adfeb3794409e47b45ac5cab60b17d23fd
@@ -3672,7 +3642,6 @@ GLOBAL_ASM("asm/non_matchings/code_actors/func_8029E890.s")
void func_80296D10(struct Actor *, f32 *, s16 *, f32 *, s32); /* extern */
s16 func_8029E890(f32 *, s16 *, f32 *, s16); /* extern */
extern u16 gNumActors;
s16 func_8029EC88(Vec3f pos, Vec3s rot, Vec3f velocity, s16 actorType) {
s32 index;
@@ -3947,7 +3916,7 @@ s32 func_8029F408(Player *player, struct YoshiValleyEgg *egg) {
egg->flags |= 0x400;
egg->pathCenter[1] = 8.0f;
player = temp_a3;
func_800C98B8(temp_a3->pos, &temp_a3->unk_034, 0x19018010, temp_a3);
func_800C98B8(temp_a3->pos, &temp_a3->unk_034[0], 0x19018010, temp_a3);
func_800C90F4(((s32) (player - gPlayerOne) / 3544) & 0xFF, (player->characterId * 0x10) + 0x2900800D);
} else {
player = temp_a3;
@@ -4562,7 +4531,7 @@ void func_802A0450(Player *player, struct Actor *actor) {
player->unk_00C |= 4;
sp42 = temp_t0;
sp36 = temp_v1_2;
func_800C98B8(player->pos, &player->unk_034, 0x19018010, player);
func_800C98B8(player->pos, &player->unk_034[0], 0x19018010, player);
temp_v0_2 = &gPlayers[temp_v1_2];
if (((temp_v0_2->unk_000 & 0x4000) != 0) && (temp_t0 != temp_v1_2)) {
func_800C90F4(temp_v1_2 & 0xFF, (temp_v0_2->characterId * 0x10) + 0x29008006);
@@ -4578,7 +4547,7 @@ void func_802A0450(Player *player, struct Actor *actor) {
player->unk_00C |= 2;
sp42 = temp_t0;
sp36 = temp_v1_3;
func_800C98B8(player->pos, &player->unk_034, 0x19018010, player);
func_800C98B8(player->pos, &player->unk_034[0], 0x19018010, player);
}
temp_v0_3 = &gPlayers[actor->rot[2]];
if (((temp_v0_3->unk_000 & 0x4000) != 0) && (temp_t0 != actor->rot[2])) {
@@ -4601,7 +4570,7 @@ void func_802A0450(Player *player, struct Actor *actor) {
player->unk_00C |= 2;
sp42 = temp_t0;
sp36 = temp_v1_4;
func_800C98B8(player->pos, &player->unk_034, 0x19018010, player);
func_800C98B8(player->pos, &player->unk_034[0], 0x19018010, player);
}
temp_v0_4 = &gPlayers[actor->rot[2]];
if (((temp_v0_4->unk_000 & 0x4000) != 0) && (temp_t0 != actor->rot[2])) {
@@ -4912,7 +4881,7 @@ void update_obj_fake_item_box(struct FakeItemBox *fake_item_box) {
case 2:
if ((fake_item_box->someTimer >= 0x14) || (fake_item_box->someTimer < 0)) {
func_8029E854(fake_item_box);
destroy_actor(fake_item_box);
} else {
fake_item_box->someTimer++;
fake_item_box->rot[0] += 0x444;
@@ -4921,7 +4890,7 @@ void update_obj_fake_item_box(struct FakeItemBox *fake_item_box) {
}
break;
default:
func_8029E854(fake_item_box);
destroy_actor(fake_item_box);
break;
}
}
+13 -13
View File
@@ -327,7 +327,7 @@ s32 func_802B09C0(s16 bananaId) {
#ifdef MIPS_TO_C
//generated by m2c commit 685418adfeb3794409e47b45ac5cab60b17d23fd
? func_800C9060(s32, ?); /* extern */
? func_8029E854(struct BananaBunchParent *, s32); /* extern */
? destroy_actor(struct BananaBunchParent *, s32); /* extern */
? func_802B0648(struct BananaBunchParent *); /* extern */
? func_802B0788(s16, struct BananaBunchParent *, Player *, Player *); /* extern */
s32 func_802B09C0(s16, s32); /* extern */
@@ -450,7 +450,7 @@ void update_obj_banana_bunch(struct BananaBunchParent *banana_bunch) {
}
if (phi_v1_5 == 0) {
sp2C = temp_a3;
func_8029E854(banana_bunch, 1);
destroy_actor(banana_bunch, 1);
temp_a3->unk_00C &= 0xFFFBFFFF;
return;
}
@@ -500,7 +500,7 @@ s32 func_802B0E14(s16 arg0) {
? func_8000EDC8(s32); /* extern */
? func_800C9060(u8, ?); /* extern */
? func_800C90F4(u8, s32); /* extern */
? func_8029E854(struct TripleShellParent *); /* extern */
? destroy_actor(struct TripleShellParent *); /* extern */
s32 func_802B0E14(s16, s16); /* extern */
s32 func_802B19EC(struct TripleShellParent *, Player *, s16, ?); /* extern */
? func_802B64C4(f32 *, s16); /* extern */
@@ -636,7 +636,7 @@ void update_obj_triple_shell(struct TripleShellParent *actor, s16 arg1) {
actor->shellIndices[2] = -1.0f;
}
if (phi_v1_3 == 0) {
func_8029E854(actor);
destroy_actor(actor);
return;
}
temp_v0_5 = &gControllers[actor->playerId];
@@ -1010,7 +1010,7 @@ GLOBAL_ASM("asm/non_matchings/code_802B0210/func_802B1FFC.s")
#ifdef MIPS_TO_C
//generated by m2c commit 685418adfeb3794409e47b45ac5cab60b17d23fd
? func_800C9060(s32, ?, u16); /* extern */
? func_8029E854(struct BananaActor *); /* extern */
? destroy_actor(struct BananaActor *); /* extern */
? func_8029FDC8(f32, struct BananaActor *); /* extern */
? func_802ADDC8(f32, UnkActorInner *, UnkActorInner *, f32, f32, f32, f32); /* extern */
? func_802B4E30(struct BananaActor *); /* extern */
@@ -1264,7 +1264,7 @@ void update_obj_banana(struct BananaActor *banana) {
banana->elderIndex += -0x5B0;
banana->youngerIndex += 0x38E;
if (banana->unk_04 == 0) {
func_8029E854(banana);
destroy_actor(banana);
return;
}
break;
@@ -1316,12 +1316,12 @@ void func_802B2914(struct BananaBunchParent *banana_bunch, Player *player, s16 b
sp4C += player->pos[0];
sp50 += player->pos[1];
sp54 += player->pos[2];
sp60 = player->unk_034;
sp64 = player->unk_038;
sp60 = player->unk_034[0];
sp64 = player->unk_034[1];
sp58 = 0;
sp5A = 0;
sp5C = 0;
sp68 = player->unk_03C;
sp68 = player->unk_034[2];
temp_v0 = func_8029EC88(temp_a0, temp_a1, temp_a2, 6);
temp_t6 = temp_v0;
if (temp_v0 >= 0) {
@@ -1672,7 +1672,7 @@ GLOBAL_ASM("asm/non_matchings/code_802B0210/func_802B30EC.s")
? func_800C9060(u8, ?); /* extern */
? func_800C90F4(u8, s32); /* extern */
? func_800C98B8(f32 *, f32 *, ?); /* extern */
? func_8029E854(f32, struct ShellActor *); /* extern */
? destroy_actor(f32, struct ShellActor *); /* extern */
? func_8029FDC8(f32, struct ShellActor *); /* extern */
f32 func_802ABE30(f32, f32, f32, u16); /* extern */
? func_802AC098(UnkActorInner *, f32 *); /* extern */
@@ -1890,7 +1890,7 @@ void update_obj_green_shell(struct ShellActor *shell) {
shell->rotAngle += 0x5B0;
shell->pos[1] += shell->velocity[1];
if (shell->parentIndex == 0) {
func_8029E854(-5.0f, shell);
destroy_actor(-5.0f, shell);
}
break;
}
@@ -2159,7 +2159,7 @@ GLOBAL_ASM("asm/non_matchings/code_802B0210/func_802B4104.s")
? func_800C9060(u8, ?); /* extern */
? func_800C90F4(u8, s32); /* extern */
? func_800C9D80(f32 *, f32 *, ?); /* extern */
? func_8029E854(f32, struct ShellActor *); /* extern */
? destroy_actor(f32, struct ShellActor *); /* extern */
? func_8029FDC8(f32, struct ShellActor *); /* extern */
f32 func_802ABE30(f32, f32, f32, u16); /* extern */
? func_802AD950(UnkActorInner *, ?, f32, f32, f32, f32, f32, f32); /* extern */
@@ -2464,7 +2464,7 @@ block_16:
shell->rotAngle += 0x5B0;
shell->pos[1] += shell->velocity[1];
if (shell->parentIndex == 0) {
func_8029E854(-5.0f, shell);
destroy_actor(-5.0f, shell);
return;
}
break;