#include <ultra64.h>
#include "functions.h"
#include "variables.h"
#include "math.h"
#include <bk_math.h>
void chVacationTextTrigger_update(Actor* this);
ActorInfo gChVacationTextTrigger = {
MARKER_1E3_VACATION_TEXT_TRIGGER, ACTOR_374_VACATION_TEXT_TRIGGER, 0x0,
0x0, NULL,
chVacationTextTrigger_update, actor_update_func_80326224, func_80325340,
0, 0, 0.0f, 0
};
* @brief Returns if player is within a specified horizontal radius of the
* supplied x,z positions.
*/
static bool __playerIsWithinTrigger(s32 x, s32 z, s32 distance) {
s32 player_position[3];
player_getPosition_s32(player_position);
return (SQ(x - player_position[0]) + SQ(z - player_position[2])) < SQ(distance);
}
void chVacationTextTrigger_update(Actor* this) {
if (volatileFlag_get(VOLATILE_FLAG_13_HAS_TRIGGERED_MUMBO_VACATION_TEXT)) {
marker_despawn(this->marker);
return;
}
if (__playerIsWithinTrigger(0, -107, 188) != 0) {
gcdialog_showDialog(VER_SELECT(ASSET_DA9_DIALOG_MUMBO_CCW_VACATION, 0x0A27, 0, 0), 4, NULL, NULL, NULL, NULL);
volatileFlag_set(VOLATILE_FLAG_13_HAS_TRIGGERED_MUMBO_VACATION_TEXT, 1);
}
}