Files
banjo-kazooie/src/lair/code_C6C0.c
2024-09-19 12:32:04 +02:00

58 lines
1.7 KiB
C

#include <ultra64.h>
#include "functions.h"
#include "variables.h"
extern void func_8028F3D8(f32[3], f32, void(*)(ActorMarker *), ActorMarker *);
void func_80392B6C(Actor *this);
/* .data */
ActorInfo D_80394D20 = { 0x29C, 0x3C9, 0x0, 0x0, NULL, func_80392B6C, func_80326224, func_80325340, 0, 0, 0.0f, 0};
/* .code */
void func_80392AB0(ActorMarker *marker, enum asset_e text_id, s32 arg2){
comusic_8025AB44(COMUSIC_A9_TOOTY, 0, 2000);
func_8025AABC(0xA9);
gcparade_beginFFParade();
}
void func_80392AF4(ActorMarker *marker, enum asset_e text_id, s32 arg2){
ncStaticCamera_setToNode(arg2);
}
void func_80392B1C(ActorMarker *marker) {
func_8028E6EC(0);
gcdialog_showText(0x1040, 8, NULL, marker, func_80392AB0, func_80392AF4);
}
void func_80392B6C(Actor *this) {
NodeProp* phi_a0;
s32 sp28;
if (!this->volatile_initialized) {
this->volatile_initialized = TRUE;
if (fileProgressFlag_get(FILEPROG_A6_FURNACE_FUN_COMPLETE)) {
marker_despawn(this->marker);
return;
}
phi_a0 = func_80304C38(0x3BE, this);
if (this == NULL) {
this->unk1C[0] = -1300.0f;
this->unk1C[1] = 250.0f;
this->unk1C[2] = -3422.0f;
} else {
nodeprop_getPosition(phi_a0, this->unk1C);
}
}
if (mapSpecificFlags_get(7) != 0) {
sp28 = ml_distance_vec3f(this->position, this->unk1C) / 350.0;
comusic_playTrack(COMUSIC_A9_TOOTY);
mapSpecificFlags_set(7, 0);
mapSpecificFlags_set(9, 1);
ncStaticCamera_setToNode(0x10);
func_8028F918(0);
func_8028F85C(this->position);
func_8028F3D8(this->unk1C, (f32) sp28, &func_80392B1C, this->marker);
}
}