core2/code_78E50.c done, misc documentation
This commit is contained in:
@@ -8,8 +8,8 @@ extern void func_803255FC(Actor *);
|
||||
extern void func_80325760(Actor *);
|
||||
|
||||
|
||||
Actor *func_802D2964(ActorMarker *marker, Gfx **gfx, Mtx **mtx, Vtx **vtx);
|
||||
void func_802D1CF0(Actor *this);
|
||||
Actor *chMumbo_draw(ActorMarker *marker, Gfx **gfx, Mtx **mtx, Vtx **vtx);
|
||||
void chMumbo_update(Actor *this);
|
||||
|
||||
/* .data */
|
||||
ActorAnimationInfo D_80367490[] = {
|
||||
@@ -28,7 +28,7 @@ ActorAnimationInfo D_80367490[] = {
|
||||
ActorInfo D_803674E0 = {
|
||||
0x6, 0x7, 0x3C6,
|
||||
0x1, D_80367490,
|
||||
func_802D1CF0, func_80326224, func_802D2964,
|
||||
chMumbo_update, func_80326224, chMumbo_draw,
|
||||
0, 0, 0.0f, 0
|
||||
};
|
||||
s32 D_80367504[3] = {0.0f, 0.0f, 0.0f};
|
||||
@@ -42,39 +42,39 @@ u8 D_8037DDF2;
|
||||
u8 D_8037DDF3;
|
||||
|
||||
/* .code */
|
||||
s32 func_802D1680(s32 arg0) {
|
||||
static bool __chMumbo_actorExists(enum actor_e actorId) {
|
||||
f32 var[3];
|
||||
|
||||
if (func_80304E24(arg0, var) != 0) {
|
||||
return 1;
|
||||
if (nodeProp_findPositionFromActorId(actorId, var) != 0) {
|
||||
return TRUE;
|
||||
}
|
||||
return 0;
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
s32 func_802D16AC(void) {
|
||||
s32 ret = 2;
|
||||
enum transformation_e func_802D16AC(void) {
|
||||
s32 ret = TRANSFORM_2_TERMITE;
|
||||
|
||||
func_802D1680(0x1F);
|
||||
if (func_802D1680(0x20) != 0) {
|
||||
ret = 3;
|
||||
__chMumbo_actorExists(0x1F);
|
||||
if (__chMumbo_actorExists(0x20)) {
|
||||
ret = TRANSFORM_3_PUMPKIN;
|
||||
}
|
||||
if (func_802D1680(0x21) != 0) {
|
||||
ret = 5;
|
||||
if (__chMumbo_actorExists(0x21)) {
|
||||
ret = TRANSFORM_5_CROC;
|
||||
}
|
||||
if (func_802D1680(0x22) != 0) {
|
||||
ret = 4;
|
||||
if (__chMumbo_actorExists(0x22)) {
|
||||
ret = TRANSFORM_4_WALRUS;
|
||||
}
|
||||
if (func_802D1680(0x23) != 0) {
|
||||
ret = 6;
|
||||
if (__chMumbo_actorExists(0x23)) {
|
||||
ret = TRANSFORM_6_BEE;
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
void func_802D1724(void){
|
||||
void chmumbo_func_802D1724(void){
|
||||
D_8037DDF0 = func_802D16AC();
|
||||
}
|
||||
|
||||
s32 func_802D1748(enum transformation_e trans_id){
|
||||
static s32 __transformation_getCost(enum transformation_e trans_id){
|
||||
switch(trans_id){
|
||||
case TRANSFORM_2_TERMITE:
|
||||
return 5;
|
||||
@@ -91,39 +91,39 @@ s32 func_802D1748(enum transformation_e trans_id){
|
||||
}
|
||||
|
||||
|
||||
enum bkprog_e func_802D17A0(enum transformation_e trans_id){
|
||||
static enum bkprog_e __bkProgId_from_transformationId(enum transformation_e trans_id){
|
||||
return (trans_id - TRANSFORM_2_TERMITE) + BKPROG_90_PAID_TERMITE_COST;
|
||||
}
|
||||
|
||||
bool func_802D17A8(s32 x, s32 z, s32 dist) {
|
||||
s32 sp1C[3];
|
||||
bool chMumbo_withinHorzDistToPlayer(s32 x, s32 z, s32 dist) {
|
||||
s32 player_position[3];
|
||||
|
||||
func_8028EB3C(sp1C);
|
||||
return (x - sp1C[0]) * (x - sp1C[0]) + (z - sp1C[2]) * (z - sp1C[2]) < dist * dist;
|
||||
player_getPosition_s32(player_position);
|
||||
return (x - player_position[0]) * (x - player_position[0]) + (z - player_position[2]) * (z - player_position[2]) < dist * dist;
|
||||
}
|
||||
|
||||
|
||||
bool func_802D181C(s32 arg0) {
|
||||
s32 sp1C[3] = D_80367504;
|
||||
return (func_803049CC(arg0, sp1C))? TRUE : FALSE;
|
||||
bool chMumbo_func_802D181C(s32 arg0) {
|
||||
s32 search_start_cube[3] = D_80367504;
|
||||
return (cubeList_findNodePropByActorId(arg0, search_start_cube))? TRUE : FALSE;
|
||||
}
|
||||
|
||||
void func_802D186C(Actor *this) {
|
||||
void chMumbo_func_802D186C(Actor *this) {
|
||||
if (this->unk44_31 == 0) {
|
||||
this->unk44_31 = func_8030ED2C(SFX_5F_MUMBO_BUGABUGOW_MUFFLED, 3);
|
||||
sfxsource_setSampleRate(this->unk44_31, 0x7FFF);
|
||||
}
|
||||
}
|
||||
|
||||
void func_802D18B4(Actor *this) {
|
||||
s32 phi_v0;
|
||||
void chMumbo_func_802D18B4(Actor *this) {
|
||||
bool player_is_within_range;
|
||||
|
||||
if (map_get() == MAP_7A_GL_CRYPT) {
|
||||
phi_v0 = func_802D17A8(1107, 0, 188);
|
||||
player_is_within_range = chMumbo_withinHorzDistToPlayer(1107, 0, 188);
|
||||
} else {
|
||||
phi_v0 = func_802D17A8(0, -107, 188);
|
||||
player_is_within_range = chMumbo_withinHorzDistToPlayer(0, -107, 188);
|
||||
}
|
||||
if(phi_v0 || func_803203FC(1) || func_803203FC(UNKFLAGS1_1F_IN_CHARACTER_PARADE)){
|
||||
if(player_is_within_range || func_803203FC(1) || func_803203FC(UNKFLAGS1_1F_IN_CHARACTER_PARADE)){
|
||||
func_80328AC8(this, 2);
|
||||
if( !func_8031FF1C(BKPROG_11_HAS_MET_MUMBO)
|
||||
|| (!func_8031FF1C(BKPROG_DC_HAS_HAD_ENOUGH_TOKENS_BEFORE) && this->unk38_0)
|
||||
@@ -133,19 +133,18 @@ void func_802D18B4(Actor *this) {
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void func_802D1970(Actor *this){
|
||||
void chMumbo_func_802D1970(Actor *this){
|
||||
actor_loopAnimation(this);
|
||||
func_802D18B4(this);
|
||||
chMumbo_func_802D18B4(this);
|
||||
}
|
||||
|
||||
void func_802D1998(ActorMarker *caller, enum asset_e text_id, s32 arg2){
|
||||
static void __chMumbo_textCallback(ActorMarker *caller, enum asset_e text_id, s32 arg2){
|
||||
Actor *this;
|
||||
|
||||
this = marker_getActor(caller);
|
||||
switch(text_id){
|
||||
case 0xD8F: //L802D1A04
|
||||
func_80311480((this->unk38_0) ? 0xDAA : 0xDAB, 0xe, this->position, this->marker, func_802D1998, NULL);
|
||||
func_80311480((this->unk38_0) ? 0xDAA : 0xDAB, 0xe, this->position, this->marker, __chMumbo_textCallback, NULL);
|
||||
return;
|
||||
|
||||
case 0xd90: //L802D1A40
|
||||
@@ -191,18 +190,18 @@ void func_802D1998(ActorMarker *caller, enum asset_e text_id, s32 arg2){
|
||||
func_80328A84(this, 4);
|
||||
}
|
||||
|
||||
void func_802D1B8C(Actor *this, enum transformation_e transform_id) {
|
||||
void chMumbo_func_802D1B8C(Actor *this, enum transformation_e transform_id) {
|
||||
if (this->unk10_12 != 0) {
|
||||
func_80311480(func_8031FF44(BK_PROG_BB_MUMBO_MISTAKE_INDEX, 2) + 0xDAF, 0xE, this->position, this->marker, func_802D1998, NULL);
|
||||
func_80311480(func_8031FF44(BK_PROG_BB_MUMBO_MISTAKE_INDEX, 2) + 0xDAF, 0xE, this->position, this->marker, __chMumbo_textCallback, NULL);
|
||||
return;
|
||||
}
|
||||
if (func_8031FF1C(BKPROG_12_HAS_TRANSFORMED_BEFORE)) {
|
||||
if (this->velocity[0] == 0.0f) {
|
||||
func_80311480(transform_id + 0xD8F, 6, this->position, this->marker, func_802D1998, NULL);
|
||||
func_80311480(transform_id + 0xD8F, 6, this->position, this->marker, __chMumbo_textCallback, NULL);
|
||||
return;
|
||||
}
|
||||
if (map_get() == MAP_7A_GL_CRYPT && transform_id == TRANSFORM_3_PUMPKIN && !func_8031FF1C(BKPROG_F7_HAS_TRANSFORMED_IN_CRYPT)) {
|
||||
func_80311480(0xDAD, 6, this->position, this->marker, func_802D1998, NULL);
|
||||
func_80311480(0xDAD, 6, this->position, this->marker, __chMumbo_textCallback, NULL);
|
||||
func_80320004(BKPROG_F7_HAS_TRANSFORMED_IN_CRYPT, TRUE);
|
||||
return;
|
||||
}
|
||||
@@ -210,11 +209,11 @@ void func_802D1B8C(Actor *this, enum transformation_e transform_id) {
|
||||
func_80328A84(this, 4U);
|
||||
return;
|
||||
}
|
||||
func_80311480(0xD90, 0xE, this->position, this->marker, func_802D1998, NULL);
|
||||
func_80311480(0xD90, 0xE, this->position, this->marker, __chMumbo_textCallback, NULL);
|
||||
}
|
||||
|
||||
void func_802D1CF0(Actor *this) {
|
||||
s32 sp58[6];
|
||||
void chMumbo_update(Actor *this) {
|
||||
s32 face_buttons[6];
|
||||
f32 sp4C[3];
|
||||
bool sp48;
|
||||
bool sp44;
|
||||
@@ -231,10 +230,10 @@ void func_802D1CF0(Actor *this) {
|
||||
this->initialized = TRUE;
|
||||
this->marker->propPtr->unk8_3 = FALSE;
|
||||
this->unk60 = 0.0f;
|
||||
if (func_802D181C(0x201)) {
|
||||
if (chMumbo_func_802D181C(0x201)) {
|
||||
this->unk60 = 1.0f;
|
||||
func_80328A84(this, 7U);
|
||||
} else if (func_802D181C(0x202)) {
|
||||
} else if (chMumbo_func_802D181C(0x202)) {
|
||||
this->unk60 = 2.0f;
|
||||
func_80328A84(this, 8U);
|
||||
}
|
||||
@@ -243,10 +242,10 @@ void func_802D1CF0(Actor *this) {
|
||||
if(!this->unk16C_4){
|
||||
this->unk38_31 = 0;
|
||||
if( player_getTransformation() == TRANSFORM_1_BANJO
|
||||
&& !func_8031FF1C(func_802D17A0(D_8037DDF0))
|
||||
&& !func_8031FF1C(__bkProgId_from_transformationId(D_8037DDF0))
|
||||
&& (map_get() != MAP_7A_GL_CRYPT)
|
||||
){
|
||||
this->unk38_31 = func_802D1748(D_8037DDF0);
|
||||
this->unk38_31 = __transformation_getCost(D_8037DDF0);
|
||||
}
|
||||
this->unk38_0 = (item_getCount(ITEM_1C_MUMBO_TOKEN) >= this->unk38_31);
|
||||
this->unk10_12 = 0;
|
||||
@@ -262,14 +261,14 @@ void func_802D1CF0(Actor *this) {
|
||||
switch(this->state){
|
||||
case 1: //L802D1F2C
|
||||
this->unk130 = func_80325760;
|
||||
func_802D186C(this);
|
||||
chMumbo_func_802D186C(this);
|
||||
if (actor_animationIsAt(this, 0.1f) != 0) {
|
||||
FUNC_8030E624(SFX_5D_BANJO_RAAOWW, 1.0f, 6000);
|
||||
}
|
||||
if (actor_animationIsAt(this, 0.4f) != 0) {
|
||||
FUNC_8030E624(SFX_5E_BANJO_PHEWWW, 1.0f, 6000);
|
||||
}
|
||||
func_802D1970(this);
|
||||
chMumbo_func_802D1970(this);
|
||||
break;
|
||||
|
||||
case 2: //L802D1F90
|
||||
@@ -283,7 +282,7 @@ void func_802D1CF0(Actor *this) {
|
||||
&& !func_803203FC(UNKFLAGS1_1F_IN_CHARACTER_PARADE)
|
||||
) {
|
||||
func_80328A84(this, 3);
|
||||
func_80311480(0xD8F, 0xE, this->position, this->marker, func_802D1998, NULL);
|
||||
func_80311480(0xD8F, 0xE, this->position, this->marker, __chMumbo_textCallback, NULL);
|
||||
func_80320004(BKPROG_11_HAS_MET_MUMBO, TRUE);
|
||||
break;
|
||||
}
|
||||
@@ -294,7 +293,7 @@ void func_802D1CF0(Actor *this) {
|
||||
&& this->unk38_0
|
||||
){
|
||||
func_80328A84(this, 3);
|
||||
func_80311480(0xDAA, 0xE, this->position, this->marker, func_802D1998, NULL);
|
||||
func_80311480(0xDAA, 0xE, this->position, this->marker, __chMumbo_textCallback, NULL);
|
||||
func_80320004(BKPROG_DC_HAS_HAD_ENOUGH_TOKENS_BEFORE, TRUE);
|
||||
break;
|
||||
}
|
||||
@@ -309,18 +308,18 @@ void func_802D1CF0(Actor *this) {
|
||||
|
||||
case 4: //L802D20E4
|
||||
actor_loopAnimation(this);
|
||||
sp48 = (map_get() == MAP_7A_GL_CRYPT) ? func_802D17A8(0x442, 0, 0x3C) : func_802D17A8(0, -0x5A, 0x3C);
|
||||
sp48 = (map_get() == MAP_7A_GL_CRYPT) ? chMumbo_withinHorzDistToPlayer(0x442, 0, 0x3C) : chMumbo_withinHorzDistToPlayer(0, -0x5A, 0x3C);
|
||||
if( sp48
|
||||
&& func_8028ECAC() == 0
|
||||
&& func_8028F20C()
|
||||
&& func_8028EFC8()
|
||||
){
|
||||
func_8024E55C(0, &sp58);
|
||||
if(sp58[FACE_BUTTON(BUTTON_B)] == 1){
|
||||
func_8024E55C(0, face_buttons);
|
||||
if(face_buttons[FACE_BUTTON(BUTTON_B)] == 1){
|
||||
if (D_8037DDF0 == TRANSFORM_7_WISHWASHY) {
|
||||
this->unk38_31 = 0;
|
||||
} else if (player_getTransformation() == TRANSFORM_1_BANJO && !func_8031FF1C(func_802D17A0(D_8037DDF0)) && map_get() != MAP_7A_GL_CRYPT){
|
||||
this->unk38_31 = func_802D1748(D_8037DDF0);
|
||||
} else if (player_getTransformation() == TRANSFORM_1_BANJO && !func_8031FF1C(__bkProgId_from_transformationId(D_8037DDF0)) && map_get() != MAP_7A_GL_CRYPT){
|
||||
this->unk38_31 = __transformation_getCost(D_8037DDF0);
|
||||
}
|
||||
this->unk38_0 = (D_8037DDF0 == TRANSFORM_7_WISHWASHY) || (item_getCount(ITEM_1C_MUMBO_TOKEN) >= this->unk38_31);
|
||||
if (this->unk38_0) {
|
||||
@@ -332,7 +331,7 @@ void func_802D1CF0(Actor *this) {
|
||||
&& randf() < 0.01
|
||||
&& sp48
|
||||
) {
|
||||
func_80311480(0xDAE, 6, NULL, this->marker, func_802D1998, NULL);
|
||||
func_80311480(0xDAE, 6, NULL, this->marker, __chMumbo_textCallback, NULL);
|
||||
func_80320004(0xBA, 1);
|
||||
this->unk138_24 = TRUE;
|
||||
func_80328A84(this, 3);
|
||||
@@ -394,7 +393,7 @@ void func_802D1CF0(Actor *this) {
|
||||
func_8028FB88(TRANSFORM_1_BANJO);
|
||||
} else if (func_8028FB88(D_8037DDF0)) {
|
||||
if (D_8037DDF0 != TRANSFORM_7_WISHWASHY) {
|
||||
if (func_8031FF74(func_802D17A0(D_8037DDF0), TRUE)) {
|
||||
if (func_8031FF74(__bkProgId_from_transformationId(D_8037DDF0), TRUE)) {
|
||||
this->velocity[0] = 1.0f;
|
||||
}
|
||||
this->unk38_31 = 0;
|
||||
@@ -411,15 +410,15 @@ void func_802D1CF0(Actor *this) {
|
||||
if (!this->unk138_24) {
|
||||
func_8028F918(0);
|
||||
}
|
||||
func_8025A7DC(0x1D);
|
||||
func_8025A7DC(COMUSIC_1D_MUMBO_TRANSFORMATION);
|
||||
if (player_getTransformation() != TRANSFORM_1_BANJO) {
|
||||
func_80328A84(this, 3);
|
||||
func_802D1B8C(this, D_8037DDF0);
|
||||
chMumbo_func_802D1B8C(this, D_8037DDF0);
|
||||
break;
|
||||
}
|
||||
if (this->unk138_24) {
|
||||
func_80328A84(this, 3);
|
||||
func_80311480(0xDAF, 6, NULL, this->marker, func_802D1998, NULL);
|
||||
func_80311480(0xDAF, 6, NULL, this->marker, __chMumbo_textCallback, NULL);
|
||||
break;
|
||||
}
|
||||
gcpausemenu_80314AC8(1);
|
||||
@@ -428,12 +427,12 @@ void func_802D1CF0(Actor *this) {
|
||||
break;
|
||||
|
||||
case 7: //L802D2704
|
||||
func_802D186C(this);
|
||||
chMumbo_func_802D186C(this);
|
||||
if (func_803203FC(BKPROG_11_HAS_MET_MUMBO) == 0) {
|
||||
if (map_get() == MAP_7A_GL_CRYPT) {
|
||||
sp48 = func_802D17A8(0x453, 0, 0xBC);
|
||||
sp48 = chMumbo_withinHorzDistToPlayer(0x453, 0, 0xBC);
|
||||
} else {
|
||||
sp48 = func_802D17A8(0, -0x6B, 0xBC);
|
||||
sp48 = chMumbo_withinHorzDistToPlayer(0, -0x6B, 0xBC);
|
||||
}
|
||||
if (sp48 != 0) {
|
||||
func_80311480(0xDA7, 7, NULL, NULL, NULL, NULL);
|
||||
@@ -444,12 +443,12 @@ void func_802D1CF0(Actor *this) {
|
||||
break;
|
||||
|
||||
case 8: //L802D2790
|
||||
func_802D186C(this);
|
||||
chMumbo_func_802D186C(this);
|
||||
if (func_803203FC(BKPROG_12_HAS_TRANSFORMED_BEFORE) == 0) {
|
||||
if (map_get() == MAP_7A_GL_CRYPT) {
|
||||
sp48 = func_802D17A8(0x453, 0, 0xBC);
|
||||
sp48 = chMumbo_withinHorzDistToPlayer(0x453, 0, 0xBC);
|
||||
} else {
|
||||
sp48 = func_802D17A8(0, -0x6B, 0xBC);
|
||||
sp48 = chMumbo_withinHorzDistToPlayer(0, -0x6B, 0xBC);
|
||||
}
|
||||
if (sp48 != 0) {
|
||||
func_80311480(0xDA8, 7, NULL, NULL, NULL, NULL);
|
||||
@@ -478,7 +477,7 @@ void func_802D1CF0(Actor *this) {
|
||||
}
|
||||
}
|
||||
|
||||
Actor *func_802D2964(ActorMarker *marker, Gfx **gfx, Mtx **mtx, Vtx **vtx) {
|
||||
Actor *chMumbo_draw(ActorMarker *marker, Gfx **gfx, Mtx **mtx, Vtx **vtx) {
|
||||
Actor *this = marker_getActor(marker);
|
||||
Actor *out;
|
||||
f32 sp44[3];
|
||||
@@ -503,7 +502,7 @@ Actor *func_802D2964(ActorMarker *marker, Gfx **gfx, Mtx **mtx, Vtx **vtx) {
|
||||
return out;
|
||||
}
|
||||
|
||||
void func_802D2B94(s32 this, s32 gfx){
|
||||
void func_802D2B94(s32 this, s32 arg1){
|
||||
s32 xform;
|
||||
xform = player_getTransformation();
|
||||
if(xform == TRANSFORM_1_BANJO || xform == TRANSFORM_7_WISHWASHY || D_8037DDF2)
|
||||
@@ -516,7 +515,7 @@ void func_802D2B94(s32 this, s32 gfx){
|
||||
func_80311480(func_8031FF74(BKPROG_83_MAGIC_GET_WEAK_TEXT, TRUE) ? 0xf5C: 0xf5b, 0xe, NULL, NULL, NULL, NULL);
|
||||
}
|
||||
|
||||
void func_802D2C24(s32 this, s32 gfx){
|
||||
void func_802D2C24(s32 this, s32 arg1){
|
||||
s32 xform;
|
||||
xform = player_getTransformation();
|
||||
if(xform == TRANSFORM_1_BANJO || xform == TRANSFORM_7_WISHWASHY || D_8037DDF1)
|
||||
|
Reference in New Issue
Block a user