#include #include "functions.h" #include "variables.h" extern void func_8035644C(s32); typedef struct { enum mumbotoken_e uid; }ActorLocal_MumboToken; void func_802E0B10(Actor *this); enum mumbotoken_e func_802E0CB0(Actor *this); /* .data */ ActorInfo D_803685A0 = { MARKER_39_MUMBO_TOKEN, ACTOR_2D_MUMBO_TOKEN, ASSET_41A_SPRITE_MUMBO_TOKEN, 0, NULL, func_802E0B10, actor_update_func_80326224, func_80325934, 2000, 0, 0.0f, 0 }; /* .bss */ enum mumbotoken_e D_8037E610; /* .code */ void chMumboToken_collect(ActorMarker *marker, ActorMarker *other_marker){ Actor *this; this = marker_getActor(marker); mumboscore_set(func_802E0CB0(this), TRUE); func_8030E760(0x401, 1.0f, 0x7fff); timedFunc_set_1(0.75f, func_8035644C, FILEPROG_4_MUMBO_TOKEN_TEXT); fxSparkle_mumboToken(&marker->propPtr->x); item_inc(ITEM_1C_MUMBO_TOKEN); marker_despawn(marker); } enum mumbotoken_e func_802E0A90(Actor *this){ s32 id; s32 pos[3]; map_get(); pos[0] = (s32)this->position[0]; pos[1] = (s32)this->position[1]; pos[2] = (s32)this->position[2]; id = func_80307164(pos); if(id < 0){ return 0; } else{ return func_80306DBC(id) - 199; } } void func_802E0B10(Actor *this){ ActorLocal_MumboToken *local; f32 sp28[3]; local = (ActorLocal_MumboToken *)&this->local; if(!this->initialized){ this->initialized = TRUE; if(local->uid == NULL){ if(!this->unk44_2){ local->uid = D_8037E610; } else{ local->uid = func_802E0A90(this); } } if( mumboscore_get(local->uid) || volatileFlag_get(VOLATILE_FLAG_1) || volatileFlag_get(VOLATILE_FLAG_2_FF_IN_MINIGAME) || volatileFlag_get(VOLATILE_FLAG_1F_IN_CHARACTER_PARADE) ){ marker_despawn(this->marker); return; } }//L802E0BD4 if(!func_8032BBE8(this)){ marker_setCollisionScripts(this->marker, chMumboToken_collect, NULL, NULL); } if(this->marker->unk14_21 && randf() < 0.1){ sp28[0] = this->position[0] + randf2(-30.0f, 30.0f); sp28[1] = this->position[1] + randf2(25.0f, 55.0f); sp28[2] = this->position[2] + randf2(-30.0f, 30.0f); func_803525A0(sp28); } } enum mumbotoken_e func_802E0CB0(Actor *this){ ActorLocal_MumboToken *local; f32 sp28[3]; local = (ActorLocal_MumboToken *)&this->local; return local->uid; } void func_802E0CB8(enum mumbotoken_e mumbo_token_id){ D_8037E610 = mumbo_token_id; }