5#include "sprite/npc/WorldSushie.h"
7#include "sprite/player.h"
9#define NAMESPACE world_sushie
107 f32 moveAngle, moveSpeed;
123 if (moveSpeed != 0.0f) {
188 sushie->moveSpeed = moveSpeed;
189 if (moveSpeed != 0.0f) {
193 y =
sushie->moveToPos.y + -6.0f;
214 y =
sushie->moveToPos.y + -6.0f;
217 moveSpeed, moveAngle,
depth,
sushie->collisionDiameter))
225 y =
sushie->moveToPos.y + -6.0f;
228 moveSpeed, moveAngle,
depth,
sushie->collisionDiameter))
267 if (
sushie->moveToPos.y < y + 5.0f) {
268 sushie->moveToPos.y = y + 5.0f;
366 #define USE_STATE functionTemp[0]
394 switch (
script->USE_STATE) {
428 script->functionTemp[2] = 0;
464 sushie->renderYaw = 90.0f;
474 sushie->moveToPos.y = y - (
sushie->collisionHeight * 0.5f);
484 if (
sushie->duration != 0) {
485 if (
sushie->duration == 2) {
521 if (
sushie->jumpVel <= 0.0f) {
528 if (
sushie->duration != 0) {
547 script->functionTemp[2] = 0;
555 script->functionTemp[2]++;
556 if (
script->functionTemp[2] > 20) {
557 script->functionTemp[2] -= 40;
560 if (
script->functionTemp[2] == 5) {
637 y =
sushie->moveToPos.y + 100.0f;
674 if (
sushie->jumpVel <= 0.0f) {
680 if (
sushie->jumpVel <= 0.0f) {
692 if (
sushie->duration != 0) {
717 if (
sushie->duration == 0) {
747 sushie->collisionHeight = 24;
748 sushie->collisionDiameter = 36;
921 script->functionTemp[0] = 0;
925 switch (
script->functionTemp[0]) {
948 if (
script->varTable[12] == 0) {
957 script->functionTemp[1] = 25;
958 script->functionTemp[0] = 1;
964 if (!(
script->functionTemp[1] & 3)) {
969 script->functionTemp[1]--;
970 if (
script->functionTemp[1] == 0) {
971 if (
script->varTable[12] == 1) {
s32 partner_use_ability(void)
BSS s32 PopupMenu_SelectedIndex
b8 keepUsingPartnerOnMapChange
@ TWEESTER_PARTNER_ATTRACT
@ TWEESTER_PARTNER_RELEASE
@ PS_FLAG_MOVEMENT_LOCKED
@ COLLIDER_FLAG_DOCK_WALL
@ COLLIDER_FLAG_IGNORE_PLAYER
@ COLLIDER_FLAGS_SURFACE_TYPE_MASK
@ SOUND_ID_TRIGGER_CHANGE_SOUND
@ SOUND_QUICK_PLAYER_JUMP
@ SOUND_SUSHIE_RIDE_MOVING
@ NPC_FLAG_IGNORE_WORLD_COLLISION
@ NPC_FLAG_IGNORE_PLAYER_COLLISION
@ NPC_FLAG_IGNORE_CAMERA_FOR_YAW
b32 npc_raycast_down_around(s32, f32 *, f32 *, f32 *, f32 *, f32, f32)
void suggest_player_anim_always_forward(AnimID anim)
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)
f32 player_check_collision_below(f32, s32 *colliderID)
void partner_walking_update_player_tracking(Npc *partner)
s32 disable_player_static_collisions(void)
s32 enable_player_input(void)
f32 dist2D(f32 ax, f32 ay, f32 bx, f32 by)
void partner_kill_ability_script(void)
void enable_player_shadow(void)
void set_action_state(s32 actionState)
HitID npc_raycast_up_corners(s32 ignoreFlags, f32 *posX, f32 *posY, f32 *posZ, f32 *hitDepth, f32 yaw, f32 radius)
b32 npc_test_move_taller_with_slipping(s32, f32 *, f32 *, f32 *, f32, f32, f32, f32)
void get_collider_center(s32 colliderID, f32 *x, f32 *y, f32 *z)
void suggest_player_anim_allow_backward(AnimID anim)
s32 test_ray_colliders(s32 ignoreFlags, f32 startX, f32 startY, f32 startZ, f32 dirX, f32 dirY, f32 dirZ, f32 *hitX, f32 *hitY, f32 *hitZ, f32 *hitDepth, f32 *hitNx, f32 *hitNy, f32 *hitNz)
void partner_walking_enable(Npc *partner, s32 val)
s32 enable_player_static_collisions(void)
void sin_cos_rad(f32 rad, f32 *outSinTheta, f32 *outCosTheta)
void add_vec2D_polar(f32 *x, f32 *y, f32 r, f32 theta)
void disable_player_shadow(void)
void enable_npc_shadow(Npc *npc)
void disable_npc_shadow(Npc *npc)
void npc_set_imgfx_params(Npc *npc, s32 arg1, s32 arg2, s32 arg3, s32 arg4, s32 arg5, s32 arg6)
Npc * get_npc_unsafe(s32 npcID)
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_get_out(Npc *partner)
void sfx_play_sound_at_npc(s32 soundID, s32 arg1, s32 npcID)
#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.
void set_player_imgfx_all(s32 animID, ImgFXType imgfxType, s32 arg2, s32 arg3, s32 arg4, s32 arg5, s32 arg6)
Entity * TweesterTouchingPartner
PlayerStatus * gPlayerStatusPtr
CollisionStatus gCollisionStatus
PartnerStatus gPartnerStatus
GameStatus * gGameStatusPtr
s32 NpcHitQueryColliderID
PlayerStatus gPlayerStatus
void N sync_player_position(void)
EvtScript EVS_WorldSushie_PutAway
void N try_cancel_tweester(Npc *sushie)
EvtScript EVS_WorldSushie_EnterMap
void N post_battle(Npc *sushie)
EvtScript EVS_WorldSushie_TakeOut
void N test_for_water_level(s32 ignoreFlags, f32 posX, f32 posY, f32 posZ, f32 yaw, f32 radius)
EvtScript EVS_WorldSushie_UseAbility
void N update_riding_physics(Npc *sushie)
EvtScript EVS_WorldSushie_Update
HitID N test_ray_to_wall_center(s32 unused, f32 *x, f32 *y, f32 *z, f32 length, f32 radius, f32 *yaw)
void N pre_battle(Npc *sushie)
void N get_movement_from_input(f32 *outAngle, f32 *outSpeed)