2#include "../src/world/partners.h"
3#include "sprite/npc/WorldKooper.h"
4#include "sprite/player.h"
7#define NAMESPACE world_kooper
73 kooper->collisionHeight = 37;
74 kooper->collisionDiameter = 24;
215 #define USE_STATE functionTemp[0]
256 switch (
script->USE_STATE) {
308 if (
kooper->duration != 0) {
327 kooper->collisionHeight = 12;
358 if (
kooper->jumpVel < 0.0f) {
382 kooper->planarFlyDist = 0.0f;
412 #define TEST_COLLISION_AT_ANGLE(testAngle) \
414 posX = kooper->pos.x, \
415 posY = kooper->pos.y, \
416 posZ = kooper->pos.z, \
417 npc_test_move_taller_with_slipping(COLLIDER_FLAG_IGNORE_SHELL, \
418 &posX, &posY, &posZ, kooper->moveSpeed, testAngle, \
419 kooper->collisionHeight, kooper->collisionDiameter / 2) \
465 if (
kooper->moveSpeed > 14.0) {
466 kooper->moveSpeed = 14.0f;
490 if (
kooper->moveSpeed < 0.01) {
491 kooper->moveSpeed = 0.01f;
492 kooper->planarFlyDist += 1.0;
500 if (
kooper->planarFlyDist > 140.0f) {
505 }
else if (
kooper->planarFlyDist > 105.0f) {
507 if (
kooper->moveSpeed < 0.01) {
508 kooper->moveSpeed = 0.01f;
509 kooper->planarFlyDist += 1.0;
522 kooper->collisionHeight, (
kooper->collisionDiameter / 2));
532 if (
kooper->moveSpeed < 0.01) {
533 kooper->moveSpeed = 0.01f;
534 kooper->planarFlyDist += 1.0;
564 kooper->moveSpeed += 4.0/3.0;
566 if (
kooper->moveSpeed > 14.0) {
567 kooper->moveSpeed = 14.0f;
594 posY =
kooper->pos.y + 8.0f;
605 if (
kooper->planarFlyDist + 15.0f <
kooper->moveSpeed) {
607 }
else if (
kooper->planarFlyDist + 15.0f < 35.0f) {
609 if (
kooper->moveSpeed < 4.0) {
629 kooper->collisionHeight = 24;
s32 partner_use_ability(void)
BSS s32 PopupMenu_SelectedIndex
@ TWEESTER_PARTNER_ATTRACT
@ TWEESTER_PARTNER_RELEASE
@ ITEM_ENTITY_FLAG_CANT_COLLECT
@ PARTNER_ACTION_KOOPER_GATHER
@ PARTNER_ACTION_KOOPER_TOSS
@ COLLIDER_FLAG_IGNORE_PLAYER
@ COLLIDER_FLAG_IGNORE_SHELL
@ SOUND_KOOPER_SHELL_SWIRL
@ SOUND_KOOPER_SHELL_KICK
@ SOUND_QUICK_PLAYER_JUMP
@ ACTION_STATE_HIT_FIRE
Causes Mario to fly up and take damage. Used for fire bars.
@ CAMERA_MOVE_IGNORE_PLAYER_Y
@ NPC_FLAG_IGNORE_WORLD_COLLISION
@ NPC_FLAG_IGNORE_PLAYER_COLLISION
@ NPC_FLAG_COLLIDING_WITH_NPC
@ NPC_FLAG_IGNORE_CAMERA_FOR_YAW
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)
ItemEntity * get_item_entity(s32 itemEntityIndex)
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 start_bounce_b(void)
void set_action_state(s32 actionState)
b32 npc_test_move_taller_with_slipping(s32, f32 *, f32 *, f32 *, f32, f32, f32, f32)
b32 npc_raycast_up(s32, f32 *, f32 *, f32 *, f32 *)
void suggest_player_anim_allow_backward(AnimID anim)
void partner_walking_enable(Npc *partner, s32 val)
void set_item_entity_flags(s32 itemEntityIndex, s32 flag)
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)
ApiStatus HasItem(Evt *script, b32 isInitialCall)
#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
s32 NpcHitQueryColliderID
PlayerStatus gPlayerStatus
EvtScript EVS_WorldKooper_TakeOut
s32 N check_for_item_collision(Npc *kooper)
void N pre_battle(Npc *kooper)
void fx_damage_stars(s32, f32, f32, f32, f32, f32, f32, s32)
s32 N test_first_strike(Npc *kooper, Npc *enemy)
#define TEST_COLLISION_AT_ANGLE(testAngle)
void auto_collect_item_entity(s32)
EvtScript EVS_WorldKooper_UseAbility
s32 entity_try_partner_interaction_trigger(s32)
s32 test_item_entity_position(f32, f32, f32, f32)
void N vertical_hit_interactable_entity(Npc *kooper)
void N try_cancel_tweester(Npc *kooper)
void N post_battle(Npc *npc)
EvtScript EVS_WorldKooper_Update
s32 N lateral_hit_interactable_entity(Npc *npc)
@ SHELL_TOSS_HITBOX_HIT_ENEMY
@ SHELL_TOSS_HITBOX_ENABLED
@ SHELL_TOSS_HITBOX_DISABLED
EvtScript EVS_WorldKooper_PutAway