4#include "sprite/npc/WorldBombette.h"
5#include "sprite/player.h"
7#define NAMESPACE world_bombette
25 while (angle < 360.0f) {
31 npc->collisionHeight, npc->collisionDiameter)
39 if (angle >= 360.0f) {
42 while (angle < 360.0f) {
48 npc->collisionHeight, npc->collisionDiameter)
55 if (angle >= 360.0f) {
219 #define USE_STATE functionTemp[0]
242 switch (
script->USE_STATE) {
301 script->functionTemp[1] = 10;
310 if (
script->functionTemp[1] == 1) {
313 if (
script->functionTemp[1] != 0) {
314 script->functionTemp[1]--;
327 script->functionTemp[1] = 50;
334 if (
script->functionTemp[1] < 45) {
345 y = npc->
pos.
y + 14.0f;
356 script->functionTemp[1] = 2;
367 if (!(
script->functionTemp[1] & 3)) {
376 if (
script->functionTemp[1] == 40) {
391 if (
script->functionTemp[1] != 0) {
392 script->functionTemp[1]--;
397 script->functionTemp[1] = 20;
404 switch (
script->USE_STATE) {
406 if (
script->functionTemp[1] != 0) {
407 script->functionTemp[1]--;
435 script->functionTemp[1] = 3;
439 if (
script->functionTemp[1] != 0) {
440 script->functionTemp[1]--;
458 script->functionTemp[2] = 1;
460 script->functionTemp[2] = -1;
462 script->functionTemp[1] = 10;
468 npc->
rot.
z -= (
script->functionTemp[2] * 79) / 2;
469 npc->
rot.
x -= (
script->functionTemp[2] * 67) / 2;
470 if (
script->functionTemp[1] != 0) {
471 script->functionTemp[1]--;
501 npc->
rot.
z -= (
script->functionTemp[2] * 79) / 2;
502 npc->
rot.
x -= (
script->functionTemp[2] * 67) / 2;
508 switch (
script->USE_STATE) {
617 y = enemy->pos.y + (
f32)(enemy->collisionHeight * 0.5) -
bombette->pos.y;
BSS s32 PopupMenu_SelectedIndex
@ TWEESTER_PARTNER_ATTRACT
@ TWEESTER_PARTNER_RELEASE
@ PARTNER_ACTION_BOMBETTE_2
@ PARTNER_ACTION_BOMBETTE_3
@ COLLIDER_FLAG_IGNORE_PLAYER
@ COLLIDER_FLAGS_SURFACE_TYPE_MASK
@ COLLISION_ONLY_ENTITIES
@ COLLISION_IGNORE_ENTITIES
@ PA_FLAG_INTERRUPT_USE_PARTNER
forces actions with bow, parakarry, watt, and lakilester to end (sushie not tested)
@ SOUND_BOMBETTE_BLAST_LV2
@ SOUND_BOMBETTE_BLAST_LV3
@ SOUND_LOOP_BOMBETTE_FUSE
@ SOUND_BOMBETTE_BLAST_LV1
@ ACTION_STATE_HIT_FIRE
Causes Mario to fly up and take damage. Used for fire bars.
@ NPC_FLAG_IGNORE_WORLD_COLLISION
@ NPC_FLAG_IGNORE_PLAYER_COLLISION
@ NPC_FLAG_COLLIDING_WITH_NPC
@ NPC_FLAG_IGNORE_CAMERA_FOR_YAW
@ NPC_FLAG_COLLDING_WITH_WORLD
b32 npc_raycast_down_around(s32, f32 *, f32 *, f32 *, f32 *, f32, f32)
void disable_npc_blur(Npc *npc)
void partner_walking_update_motion(Npc *partner)
void partner_clear_player_tracking(Npc *partner)
s32 disable_player_input(void)
s32 get_collider_flags(s32 colliderID)
void partner_walking_update_player_tracking(Npc *partner)
void enable_npc_blur(Npc *npc)
s32 enable_player_input(void)
f32 dist2D(f32 ax, f32 ay, f32 bx, f32 by)
void set_action_state(s32 actionState)
b32 npc_test_move_taller_with_slipping(s32, f32 *, f32 *, f32 *, f32, f32, f32, f32)
void exec_ShakeCam1(s32 arg0, s32 arg1, s32 arg2)
void suggest_player_anim_allow_backward(AnimID anim)
void partner_walking_enable(Npc *partner, s32 val)
void sin_cos_rad(f32 rad, f32 *outSinTheta, f32 *outCosTheta)
void add_vec2D_polar(f32 *x, f32 *y, f32 r, f32 theta)
f32 get_clamped_angle_diff(f32, f32)
s32 npc_try_snap_to_ground(Npc *npc, f32 velocity)
void npc_surface_spawn_fx(Npc *npc, SurfaceInteractMode mode)
void npc_do_other_npc_collision(Npc *npc)
EncounterStatus gCurrentEncounter
void npc_move_heading(Npc *npc, f32 speed, f32 yaw)
s32 partner_init_get_out(Npc *npc)
s32 partner_init_put_away(Npc *partner)
s32 partner_put_away(Npc *partner)
s32 partner_force_player_flip_done(void)
s32 partner_get_out(Npc *partner)
void sfx_play_sound_at_npc(s32 soundID, s32 arg1, s32 npcID)
void sfx_stop_sound(s32 soundID)
#define End
Signals the end of EVT script data. A script missing this will likely crash on load.
#define COLLISION_WITH_ENTITY_BIT
#define Call(FUNC, ARGS...)
Calls a given C EVT API function with any number of arguments.
#define Return
Kills the current EVT thread.
Entity * TweesterTouchingPartner
CollisionStatus gCollisionStatus
PartnerStatus gPartnerStatus
GameStatus * gGameStatusPtr
s32 NpcHitQueryColliderID
PlayerStatus gPlayerStatus
void N try_cancel_tweester(Npc *npc)
EvtScript EVS_WorldBombette_TakeOut
void entity_try_partner_interaction_trigger(s32 arg0)
s32 N can_use_ability(Npc *npc)
void N blast_affect_entities(Npc *npc)
s32 N can_open_menus(Npc *npc)
void N pre_battle(Npc *bombette)
EvtScript EVS_WorldBombette_Update
void N init(Npc *bombette)
s32 N test_first_strike(Npc *bombette, Npc *enemy)
EvtScript EVS_WorldBombette_PutAway
EvtScript EVS_WorldBombette_UseAbility