The first commit
This commit is contained in:
123
src/MMM/ch/loggo.c
Normal file
123
src/MMM/ch/loggo.c
Normal file
@@ -0,0 +1,123 @@
|
||||
#include <ultra64.h>
|
||||
#include "functions.h"
|
||||
#include "variables.h"
|
||||
|
||||
extern void ml_vec3f_assign(f32[3], f32, f32, f32);
|
||||
|
||||
void chLoggo_update(Actor *this);
|
||||
|
||||
/* .data */
|
||||
ActorAnimationInfo chLoggoAnimations[] = {
|
||||
{0, 0.0f},
|
||||
{ASSET_238_ANIM_LOGGO_IDLE, 0.8f},
|
||||
{ASSET_240_ANIM_LOGGO_FLUSH, 3.0f}
|
||||
};
|
||||
|
||||
ActorInfo chLoggo = {
|
||||
MARKER_252_LOGGO, ACTOR_37F_LOGGO, ASSET_519_MODEL_LOGGO,
|
||||
0x1, chLoggoAnimations,
|
||||
chLoggo_update, func_80326224, func_80325888,
|
||||
1000, 0, 0.0f, 0
|
||||
};
|
||||
|
||||
/* .code */
|
||||
void __chLoggo_flush(ActorMarker* marker) {
|
||||
Actor* sp1C = marker_getActor(marker);
|
||||
func_8028F918(2);
|
||||
func_80328B8C(sp1C, 2, 0.01, 1);
|
||||
actor_playAnimationOnce(sp1C);
|
||||
sp1C->unk60 = 3.2f;
|
||||
}
|
||||
|
||||
void __chLoggo_textCallback(ActorMarker* caller, enum asset_e text_id, s32 arg3) {
|
||||
__chLoggo_flush(caller);
|
||||
}
|
||||
|
||||
void __chLoggo_collide(ActorMarker* this_marker, ActorMarker *other_marker) {
|
||||
Actor *this = marker_getActor(this_marker);
|
||||
if ((player_getTransformation() == TRANSFORM_3_PUMPKIN) && !func_8031FF1C(BKPROG_89_ENTERED_LOGGO_AS_PUMPKIN)) {
|
||||
if (func_80311480(ASSET_ADF_TEXT_ENTER_LOGGO, 0x2B, this->position, this->marker, &__chLoggo_textCallback, 0) != 0) {
|
||||
actor_collisionOff(this);
|
||||
|
||||
func_80320004(BKPROG_89_ENTERED_LOGGO_AS_PUMPKIN, TRUE);
|
||||
}
|
||||
return;
|
||||
}
|
||||
if ((player_getTransformation() == TRANSFORM_3_PUMPKIN) && func_8031FF1C(BKPROG_89_ENTERED_LOGGO_AS_PUMPKIN)) {
|
||||
actor_collisionOff(this);
|
||||
__chLoggo_flush(this_marker);
|
||||
return;
|
||||
}
|
||||
|
||||
if ((player_getTransformation() == TRANSFORM_1_BANJO) && !func_8031FF1C(BKPROG_88_TRIED_LOGGO_AS_BEAR)){
|
||||
if(func_80311480(ASSET_ADE_TEXT_LOGGO_AS_BEAR, 0x2A, this->position, NULL, NULL, NULL)) {
|
||||
func_80320004(BKPROG_88_TRIED_LOGGO_AS_BEAR, TRUE);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void chLoggo_update(Actor *this){
|
||||
f32 sp44;
|
||||
f32 sp38[3];
|
||||
s32 sp34;
|
||||
|
||||
sp44 = time_getDelta();
|
||||
if(!this->unk16C_4){
|
||||
this->unk16C_4 = TRUE;
|
||||
this->marker->propPtr->unk8_3 = TRUE;
|
||||
actor_collisionOn(this);
|
||||
marker_setCollisionScripts(this->marker, __chLoggo_collide, NULL, NULL);
|
||||
func_80328B8C(this, 1, 0.01f, 1);
|
||||
actor_loopAnimation(this);
|
||||
this->unk60 = 0.0f;
|
||||
if(!func_8031FF1C(BKPROG_8A_EXITED_LOGGO) && levelSpecificFlags_get(0x33)){
|
||||
if(func_80311480(ASSET_AE0_TEXT_EXIT_LOGGO, 4, NULL, NULL, NULL, NULL)){
|
||||
func_80320004(BKPROG_8A_EXITED_LOGGO, TRUE);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
switch(this->state){
|
||||
case 1:
|
||||
sp34 = func_803114B0() ? 12000 : 0;
|
||||
|
||||
if(actor_animationIsAt(this, 0.09f)){
|
||||
func_8030E878(SFX_109_LOGGO_LID_CLAP, randf2(0.975f, 1.025f), MAX(0, 22000 - sp34), this->position, 400.0f, 1000.0f);
|
||||
break;
|
||||
}
|
||||
|
||||
if(actor_animationIsAt(this, 0.37f)){
|
||||
func_8030E878(SFX_20_METAL_CLANK_1, randf2(1.675f, 1.725f), MAX(0, 12000 - sp34), this->position, 400.0f, 1000.0f);
|
||||
break;
|
||||
}
|
||||
|
||||
if(actor_animationIsAt(this, 0.6f)){
|
||||
func_8030E878(SFX_3F_CAULDRON_SQEAK_1, randf2(0.975f, 1.025f), MAX(0, 7000 - sp34), this->position, 400.0f, 1000.0f);
|
||||
break;
|
||||
}
|
||||
|
||||
if(actor_animationIsAt(this, 0.16f)){
|
||||
func_8030E878(SFX_40_CAULDRON_SQEAK_2, randf2(0.975f, 1.025f), MAX(0, 7000 - sp34), this->position, 400.0f, 1000.0f);
|
||||
break;
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
case 2:
|
||||
if(actor_animationIsAt(this, 0.46f)){
|
||||
this->marker->propPtr->unk8_3 = FALSE;
|
||||
FUNC_8030E8B4(SFX_92_TOILET_FLUSH, 1.0f, 32000, this->position, 600, 1500);
|
||||
levelSpecificFlags_set(0x33, TRUE);
|
||||
ml_vec3f_assign(sp38, this->position_x - 50.0f, this->position_y + 50.0f, this->position_z);
|
||||
func_8028F6E4(0x2F, sp38);
|
||||
}
|
||||
|
||||
if(0.0 < this->unk60){
|
||||
this->unk60 -= sp44;
|
||||
}
|
||||
else{
|
||||
func_8031F7D4(0, 0);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
202
src/MMM/ch/motzhand.c
Normal file
202
src/MMM/ch/motzhand.c
Normal file
@@ -0,0 +1,202 @@
|
||||
#include <ultra64.h>
|
||||
#include "functions.h"
|
||||
#include "variables.h"
|
||||
|
||||
typedef struct{
|
||||
f32 alpha; //motzhand_alpha
|
||||
u8 *pattern_ptr;
|
||||
u8 unk8; //pattern_id
|
||||
u8 unk9; //end_current seq?
|
||||
f32 unkC[3];
|
||||
}ActorLocal_Motzhand;
|
||||
|
||||
void chmotzhand_update(Actor *this);
|
||||
Actor *chMotzhand_draw(ActorMarker *marker, Gfx **gfx, Mtx **mtx, Vtx **vtx);
|
||||
|
||||
/* .data */
|
||||
ActorInfo chMotzhand = {
|
||||
MARKER_49_MOTZHAND, ACTOR_3A_MOTZHAND, ASSET_88C_MODEL_MOTZHAND,
|
||||
0x0, NULL,
|
||||
chmotzhand_update, func_80326224, chMotzhand_draw,
|
||||
0, 0, 0.0f, 0
|
||||
};
|
||||
|
||||
u8 sMotzhandPattern1[] = {7, 14, 13, 9, 17, 0xFF};
|
||||
u8 sMotzhandPattern2[] = {10, 18, 15, 9, 14, 13, 9, 17, 11, 15, 0xFF};
|
||||
|
||||
/* .code */
|
||||
void func_80387410(f32 dst[3]){
|
||||
dst[0] = 0.0f;
|
||||
dst[1] = 1500.0f;
|
||||
dst[2] = -2400.0f;
|
||||
}
|
||||
|
||||
void chMotzhand_setState(Actor *this, s32 next_state){
|
||||
ActorLocal_Motzhand * local = (ActorLocal_Motzhand *) &this->local;
|
||||
|
||||
if(next_state == 1 && this->state == 0){
|
||||
func_80335924(this->unk148, 0xa7, 0.0f, 1.8f);
|
||||
func_80387410(this->position);
|
||||
}
|
||||
|
||||
if(next_state == 2){
|
||||
func_80335924(this->unk148, 0xA7, 0.9f, 1.8f);
|
||||
}
|
||||
|
||||
if(next_state == 3){
|
||||
func_80335924(this->unk148, 0xA8, 0.9f, 1.8f);
|
||||
}
|
||||
|
||||
if(next_state == 4){
|
||||
local->alpha = 1.0f;
|
||||
}
|
||||
|
||||
if(next_state == 5){
|
||||
marker_despawn(this->marker);
|
||||
}
|
||||
|
||||
this->state = next_state;
|
||||
}
|
||||
|
||||
Actor *chMotzhand_draw(ActorMarker *marker, Gfx **gfx, Mtx **mtx, Vtx **vtx){
|
||||
Actor *this = marker_getActor(marker);
|
||||
ActorLocal_Motzhand * local = (ActorLocal_Motzhand *) &this->local;
|
||||
f32 sp3C[3];
|
||||
|
||||
if(this->state == 0 || this->state == 5)
|
||||
return this;
|
||||
|
||||
func_8033A238(func_803356A0(this->unk148));
|
||||
|
||||
if(this->state == 4){
|
||||
func_8033A410((s32) (local->alpha * 255.0f));
|
||||
}
|
||||
else{
|
||||
func_8033A410((s32) 255);
|
||||
}
|
||||
|
||||
sp3C[0] = sp3C[1] = sp3C[2] = 0.0f;
|
||||
sp3C[1] = 180.0f;
|
||||
set_model_render_mode(1);
|
||||
func_803391A4(gfx, mtx, this->position, sp3C, 1.0f, NULL, func_80330B1C(marker));
|
||||
this->marker->unk14_21 = func_8033A170();
|
||||
return this;
|
||||
}
|
||||
|
||||
|
||||
void func_80387654(ActorMarker* marker) {
|
||||
Actor* actor = marker_getActor(marker);
|
||||
|
||||
if ((actor->state != 4) && (actor->state != 5)) {
|
||||
chMotzhand_setState(actor, 4);
|
||||
}
|
||||
}
|
||||
|
||||
bool func_8038769C(ActorMarker *marker) {
|
||||
return marker_getActor(marker)->state == 1;
|
||||
}
|
||||
|
||||
// chMotzhand_startPattern
|
||||
void func_803876C8(ActorMarker *marker, s32 arg1){
|
||||
Actor *this = marker_getActor(marker);
|
||||
ActorLocal_Motzhand * local = (ActorLocal_Motzhand *) &this->local;
|
||||
|
||||
local->unk8 = arg1;
|
||||
if(arg1 == TRUE){
|
||||
local->pattern_ptr = sMotzhandPattern1;
|
||||
}
|
||||
else{
|
||||
local->pattern_ptr = sMotzhandPattern2;
|
||||
}
|
||||
|
||||
chMotzhand_setState(this, 2);
|
||||
}
|
||||
|
||||
void func_80387720(ActorMarker *marker) {
|
||||
Actor * this = marker_getActor(marker);
|
||||
ActorLocal_Motzhand * local = (ActorLocal_Motzhand *) &this->local;
|
||||
local->unk9 = TRUE;
|
||||
}
|
||||
|
||||
void chmotzhand_update(Actor *this){
|
||||
ActorLocal_Motzhand * local = (ActorLocal_Motzhand *) &this->local;
|
||||
f32 sp48;
|
||||
f32 sp3C[3];
|
||||
f32 sp30[3];
|
||||
|
||||
sp48 = time_getDelta();
|
||||
|
||||
if(!this->unk16C_4){
|
||||
this->unk16C_4 = TRUE;
|
||||
if(jiggyscore_isSpawned(JIGGY_60_MMM_MOTZHAND)){
|
||||
marker_despawn(this->marker);
|
||||
return;
|
||||
}
|
||||
local->unk8 = FALSE;
|
||||
local->unk9 = FALSE;
|
||||
local->unkC[0] = this->position_x;
|
||||
local->unkC[1] = this->position_y;
|
||||
local->unkC[2] = this->position_z;
|
||||
chMotzhand_setState(this, 1);
|
||||
}//L803877CC
|
||||
|
||||
if(this->state == 2){
|
||||
if(local->unk9){
|
||||
while(*local->pattern_ptr != 0xff){
|
||||
*local->pattern_ptr++; //find_seq end
|
||||
}
|
||||
local->unk9 = FALSE;
|
||||
}//L80387820
|
||||
|
||||
if(0xff == *local->pattern_ptr){
|
||||
func_80387410(sp30);
|
||||
}
|
||||
else{
|
||||
func_80389BCC(*local->pattern_ptr, sp30);
|
||||
sp30[0] += local->unkC[0];
|
||||
sp30[1] += local->unkC[1];
|
||||
sp30[2] += local->unkC[2];
|
||||
}//L80387880
|
||||
|
||||
sp3C[0] = sp30[0] - this->position_x;
|
||||
sp3C[1] = sp30[1] - this->position_y;
|
||||
sp3C[2] = sp30[2] - this->position_z;
|
||||
if(gu_sqrtf(sp3C[0]*sp3C[0] + sp3C[1]*sp3C[1] + sp3C[2]*sp3C[2]) < 5.0f){
|
||||
if(*local->pattern_ptr == 0xff){
|
||||
chMotzhand_setState(this, 1);
|
||||
}
|
||||
else{
|
||||
chMotzhand_setState(this, 3);
|
||||
}
|
||||
}
|
||||
else{//L80387930
|
||||
ml_vec3f_set_length(sp3C, ((local->unk8 == TRUE) ? 150.0f : 225.0f)*sp48);
|
||||
this->position_x = sp3C[0] + this->position_x;
|
||||
this->position_y = sp3C[1] + this->position_y;
|
||||
this->position_z = sp3C[2] + this->position_z;
|
||||
}
|
||||
}//L803879A4
|
||||
|
||||
if(this->state == 3){
|
||||
if(func_80335794(this->unk148) > 0){
|
||||
func_80389D9C(*local->pattern_ptr);
|
||||
if(local->unk9){
|
||||
while(*local->pattern_ptr != 0xff){
|
||||
*local->pattern_ptr++; //find_seq end
|
||||
}
|
||||
local->unk9 = FALSE;
|
||||
}
|
||||
else{//L80387A18
|
||||
*local->pattern_ptr++;
|
||||
}
|
||||
chMotzhand_setState(this, 2);
|
||||
}
|
||||
}//L80387A2C
|
||||
|
||||
if(this->state == 4){
|
||||
local->alpha -= 0.25*sp48;
|
||||
if(local->alpha <= 0.0f){
|
||||
chMotzhand_setState(this, 5);
|
||||
}
|
||||
}
|
||||
}
|
225
src/MMM/ch/napper.c
Normal file
225
src/MMM/ch/napper.c
Normal file
@@ -0,0 +1,225 @@
|
||||
#include <ultra64.h>
|
||||
#include "functions.h"
|
||||
#include "variables.h"
|
||||
|
||||
typedef struct{
|
||||
ActorMarker *jiggy_marker;
|
||||
f32 unk4;
|
||||
f32 unk8;
|
||||
f32 unkC;
|
||||
u8 unk10;
|
||||
} ActorLocal_Napper;
|
||||
|
||||
void chnapper_update(Actor *this);
|
||||
Actor *chnapper_draw(ActorMarker *marker, Gfx **gfx, Mtx **mtx, Vtx **vtx);
|
||||
|
||||
/* .data */
|
||||
ActorInfo chNapper = {
|
||||
MARKER_48_NAPPER, ACTOR_39_NAPPER, ASSET_55E_MODEL_NAPPER,
|
||||
0x0, NULL,
|
||||
chnapper_update, chnapper_update, chnapper_draw,
|
||||
0, 0, 0.0f, 0
|
||||
};
|
||||
|
||||
/* .code */
|
||||
void __chnapper_setState(Actor *this, s32 next_state){
|
||||
ActorLocal_Napper *local = (ActorLocal_Napper *)&this->local;
|
||||
|
||||
local->jiggy_marker->collidable = TRUE;
|
||||
local->unk4 = 0.0f;
|
||||
actor_collisionOff(this);
|
||||
if(next_state == 1)
|
||||
func_80335924(this->unk148, ASSET_A3_ANIM_NAPPER_SLEEPING, 0.2f, 2.5f);
|
||||
|
||||
if(next_state == 2){
|
||||
func_80335924(this->unk148, ASSET_A4_ANIM_NAPPER_AWAKE, 0.2f, 5.0f);
|
||||
actor_collisionOn(this);
|
||||
local->jiggy_marker->collidable = FALSE;
|
||||
local->unk8 = randf2(2.0f, 6.0f);
|
||||
}
|
||||
|
||||
if(next_state == 3){
|
||||
func_80335924(this->unk148, 0xA5, 0.2f, 1.5f);
|
||||
func_80335A8C(this->unk148, 2);
|
||||
func_8030E484(SFX_41_MUMBO_ERGHHH);
|
||||
}
|
||||
|
||||
if(next_state == 4){
|
||||
func_8030E484(SFX_C_TAKING_FLIGHT_LIFTOFF);
|
||||
func_803895B0(0);
|
||||
}
|
||||
|
||||
if(next_state == 5){
|
||||
func_80335924(this->unk148, 0xA6, 2.0f, 4.0f);
|
||||
actor_collisionOn(this);
|
||||
local->jiggy_marker->collidable = FALSE;
|
||||
}
|
||||
|
||||
this->state = next_state;
|
||||
}
|
||||
|
||||
void func_80386ACC(ActorMarker *this_marker, ActorMarker *other_marker){
|
||||
Actor *this = marker_getActor(this_marker);
|
||||
|
||||
if(!this->unk138_24){
|
||||
if(func_80311480(0xad8, 0, NULL, NULL, NULL, NULL)){
|
||||
this->unk138_24 = TRUE;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Actor *chnapper_draw(ActorMarker *marker, Gfx **gfx, Mtx **mtx, Vtx **vtx){
|
||||
Actor *this = marker_getActor(marker);
|
||||
ActorLocal_Napper *local = (ActorLocal_Napper *)&this->local;
|
||||
|
||||
if(this->state == 1){
|
||||
func_8033A45C(1, TRUE);
|
||||
func_8033A45C(2, FALSE);
|
||||
func_8033A45C(3, FALSE);
|
||||
}
|
||||
else {
|
||||
func_8033A45C(1, FALSE);
|
||||
func_8033A45C(2, (local->unk10) ? TRUE : FALSE);
|
||||
func_8033A45C(3, (local->unk10) ? FALSE : TRUE);
|
||||
}
|
||||
|
||||
if(this->state == 1){ //set model alpha
|
||||
func_8033A410(0x80);
|
||||
}
|
||||
else{
|
||||
func_8033A410(0xdc);
|
||||
}
|
||||
|
||||
return func_80325888(marker, gfx, mtx, vtx);
|
||||
}
|
||||
|
||||
void chnapper_update(Actor *this){
|
||||
f32 sp74;
|
||||
f32 sp70;
|
||||
ActorLocal_Napper *local = (ActorLocal_Napper *)&this->local;
|
||||
f32 sp68;
|
||||
Actor *jiggy;
|
||||
f32 sp58[3];
|
||||
f32 sp4C[3];
|
||||
s32 pad;
|
||||
f32 player_position[3];
|
||||
f32 sp30[3];
|
||||
|
||||
sp68 = time_getDelta();
|
||||
|
||||
if(!this->unk16C_4){
|
||||
this->unk16C_4 = TRUE;
|
||||
this->scale = 0.5f;
|
||||
marker_setCollisionScripts(this->marker, func_80386ACC, NULL, NULL);
|
||||
local->unk10 = TRUE;
|
||||
local->jiggy_marker = NULL;
|
||||
local->unk4 = 0.0f;
|
||||
local->unk8 = 0.0f;
|
||||
local->unkC = 1.0f;
|
||||
return;
|
||||
}//L80386CBC
|
||||
|
||||
if(this->state == 0){
|
||||
jiggy = func_80326EEC(ACTOR_46_JIGGY);
|
||||
if(jiggy){
|
||||
local->jiggy_marker = jiggy->marker;
|
||||
this->position_x = jiggy->position_x;\
|
||||
this->position_y = jiggy->position_y;\
|
||||
this->position_z = jiggy->position_z;
|
||||
this->position_y -= 50.0f;
|
||||
__chnapper_setState(this, 1);
|
||||
}
|
||||
else{
|
||||
marker_despawn(this->marker);
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
func_8033568C(this->unk148, &sp70, &sp74);
|
||||
local->unk4 += sp68;
|
||||
|
||||
if(this->state != 1){
|
||||
local->unkC -= sp68;
|
||||
if(local->unkC <= 0.0f){
|
||||
local->unk10 = 1 - local->unk10;
|
||||
if(local->unk10 == 0){
|
||||
local->unkC = randf2(0.1f, 0.2f);
|
||||
|
||||
}
|
||||
else{
|
||||
local->unkC = randf2(1.5f, 5.0f);
|
||||
}
|
||||
}
|
||||
}//L80386DF4
|
||||
|
||||
if(this->state != 4){
|
||||
func_8024C5CC(sp58);
|
||||
sp4C[0] = this->position_x - sp58[0];
|
||||
sp4C[1] = this->position_y - sp58[1];
|
||||
sp4C[2] = this->position_z - sp58[2];
|
||||
ml_vec3f_set_length(sp4C, 5.0f);
|
||||
jiggy = marker_getActor(local->jiggy_marker);
|
||||
jiggy->position_x = sp4C[0] + this->position_x;
|
||||
jiggy->position_y = sp4C[1] + this->position_y;
|
||||
jiggy->position_z = sp4C[2] + this->position_z;
|
||||
}//L80386E98
|
||||
|
||||
if(this->state == 1){
|
||||
if(sp74 < sp70)
|
||||
FUNC_8030E624(SFX_5E_BANJO_PHEWWW, 0.8f, 11000);
|
||||
|
||||
if(sp70 < 0.5 && 0.5 <= sp74)
|
||||
FUNC_8030E624(SFX_5D_BANJO_RAAOWW, 0.8f, 11000);
|
||||
|
||||
if(!func_80389510()){
|
||||
__chnapper_setState(this, 2);
|
||||
}
|
||||
|
||||
if(func_80389530() || func_803203FC(0x1f)){
|
||||
__chnapper_setState(this, 3);
|
||||
}
|
||||
}//L80386F74
|
||||
|
||||
if(this->state == 2 && func_8025773C(&local->unk8, sp68)){
|
||||
player_getPosition(player_position);
|
||||
sp30[0] = player_position[0] - this->position_x;
|
||||
sp30[1] = player_position[1] - this->position_y;
|
||||
sp30[2] = player_position[2] - this->position_z;
|
||||
if( 0.0f < sp30[2]
|
||||
&& gu_sqrtf(sp30[0]*sp30[0] + sp30[1]*sp30[1] + sp30[2]*sp30[2]) < 600.0f
|
||||
){
|
||||
__chnapper_setState(this, 5);
|
||||
}
|
||||
else{//L8038703C
|
||||
local->unk8 = randf2(1.0f, 2.0f);
|
||||
}
|
||||
}//L80387058
|
||||
|
||||
if(this->state == 5){
|
||||
if(4.0f <= local->unk4){
|
||||
__chnapper_setState(this, 2);
|
||||
}
|
||||
|
||||
if(sp70 < 0.35 && 0.35 <= sp74){
|
||||
if(!func_803114B0()){
|
||||
func_8030E6A4(SFX_3F5_UNKNOWN, randf2(0.9f, 1.1f), 0x7fff);
|
||||
}
|
||||
}
|
||||
}//L803870F8
|
||||
|
||||
if(this->state == 3){
|
||||
if(func_80335794(this->unk148) > 0){
|
||||
func_80335924(this->unk148, ASSET_A4_ANIM_NAPPER_AWAKE, 1.0f, 5.0f);
|
||||
func_80335A8C(this->unk148, 1);
|
||||
}
|
||||
|
||||
if(func_80389524())
|
||||
__chnapper_setState(this, 4);
|
||||
}//L80387154
|
||||
|
||||
if(this->state == 4){
|
||||
func_80326224(this);
|
||||
if(0.99 <= this->unk48)
|
||||
marker_despawn(this->marker);
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user