10#include "sprite/npc/WorldGoombario.h"
13#include "sprite/npc/WorldKooper.h"
16#include "sprite/npc/WorldBombette.h"
19#include "sprite/npc/WorldParakarry.h"
22#include "sprite/npc/Goompa.h"
25#include "sprite/npc/WorldWatt.h"
28#include "sprite/npc/WorldSushie.h"
31#include "sprite/npc/WorldLakilester.h"
34#include "sprite/npc/WorldBow.h"
37#include "sprite/npc/Goombaria.h"
40#include "sprite/npc/Twink.h"
172 .
dmaStart = &world_partner_goombario_ROM_START,
173 .dmaEnd = &world_partner_goombario_ROM_END,
174 .dmaDest = &world_partner_goombario_VRAM,
181 .idle = ANIM_WorldGoombario_Idle,
187 .dmaStart = &world_partner_kooper_ROM_START,
188 .dmaEnd = &world_partner_kooper_ROM_END,
189 .dmaDest = &world_partner_kooper_VRAM,
196 .idle = ANIM_WorldKooper_Idle,
204 .dmaStart = &world_partner_bombette_ROM_START,
205 .dmaEnd = &world_partner_bombette_ROM_END,
206 .dmaDest = &world_partner_bombette_VRAM,
213 .idle = ANIM_WorldBombette_Idle,
220 .dmaStart = &world_partner_parakarry_ROM_START,
221 .dmaEnd = &world_partner_parakarry_ROM_END,
222 .dmaDest = &world_partner_parakarry_VRAM,
229 .idle = ANIM_WorldParakarry_Idle,
235 .dmaStart = &world_partner_goompa_ROM_START,
236 .dmaEnd = &world_partner_goompa_ROM_END,
237 .dmaDest = &world_partner_goompa_VRAM,
244 .idle = ANIM_Goompa_Idle,
247 .dmaStart = &world_partner_watt_ROM_START,
248 .dmaEnd = &world_partner_watt_ROM_END,
249 .dmaDest = &world_partner_watt_VRAM,
256 .idle = ANIM_WorldWatt_Idle,
263 .dmaStart = &world_partner_sushie_ROM_START,
264 .dmaEnd = &world_partner_sushie_ROM_END,
265 .dmaDest = &world_partner_sushie_VRAM,
272 .idle = ANIM_WorldSushie_Idle,
279 .dmaStart = &world_partner_lakilester_ROM_START,
280 .dmaEnd = &world_partner_lakilester_ROM_END,
281 .dmaDest = &world_partner_lakilester_VRAM,
288 .idle = ANIM_WorldLakilester_Idle,
295 .dmaStart = &world_partner_bow_ROM_START,
296 .dmaEnd = &world_partner_bow_ROM_END,
297 .dmaDest = &world_partner_bow_VRAM,
304 .idle = ANIM_WorldBow_Idle,
310 .dmaStart = &world_partner_goombaria_ROM_START,
311 .dmaEnd = &world_partner_goombaria_ROM_END,
312 .dmaDest = &world_partner_goombaria_VRAM,
319 .idle = ANIM_Goombaria_Idle,
324 .dmaStart = &world_partner_twink_ROM_START,
325 .dmaEnd = &world_partner_twink_ROM_END,
326 .dmaDest = &world_partner_twink_VRAM,
333 .idle = ANIM_Twink_Idle,
348 ANIM_WorldGoombario_Still,
349 ANIM_WorldGoombario_Walk,
350 ANIM_WorldGoombario_Jump,
351 ANIM_WorldGoombario_Fall,
352 ANIM_WorldGoombario_Idle,
353 ANIM_WorldGoombario_Idle,
354 ANIM_WorldGoombario_Run,
355 ANIM_WorldGoombario_Talk,
356 ANIM_WorldGoombario_Hurt
359 ANIM_WorldKooper_Still,
360 ANIM_WorldKooper_Walk,
361 ANIM_WorldKooper_Jump,
362 ANIM_WorldKooper_Fall,
363 ANIM_WorldKooper_Still,
364 ANIM_WorldKooper_Idle,
365 ANIM_WorldKooper_Run,
366 ANIM_WorldKooper_Talk,
367 ANIM_WorldKooper_Hurt
370 ANIM_WorldBombette_Still,
371 ANIM_WorldBombette_Walk,
372 ANIM_WorldBombette_Jump,
373 ANIM_WorldBombette_Fall,
374 ANIM_WorldBombette_Still,
375 ANIM_WorldBombette_Idle,
376 ANIM_WorldBombette_Run,
377 ANIM_WorldBombette_Talk,
378 ANIM_WorldBombette_Hurt
381 ANIM_WorldParakarry_Still,
382 ANIM_WorldParakarry_Walk,
383 ANIM_WorldParakarry_FlyFast,
384 ANIM_WorldParakarry_Walk,
385 ANIM_WorldParakarry_Walk,
386 ANIM_WorldParakarry_Idle,
387 ANIM_WorldParakarry_Run,
388 ANIM_WorldParakarry_Talk,
389 ANIM_WorldParakarry_Hurt
403 ANIM_WorldWatt_Still,
407 ANIM_WorldWatt_Still,
414 ANIM_WorldSushie_Still,
415 ANIM_WorldSushie_Walk,
416 ANIM_WorldSushie_Walk,
417 ANIM_WorldSushie_Walk,
418 ANIM_WorldSushie_Still,
419 ANIM_WorldSushie_Idle,
420 ANIM_WorldSushie_Run,
421 ANIM_WorldSushie_Talk,
422 ANIM_WorldSushie_Hurt
425 ANIM_WorldLakilester_Still,
426 ANIM_WorldLakilester_Walk,
427 ANIM_WorldLakilester_Walk,
428 ANIM_WorldLakilester_Walk,
429 ANIM_WorldLakilester_Still,
430 ANIM_WorldLakilester_Idle,
431 ANIM_WorldLakilester_Run,
432 ANIM_WorldLakilester_Talk,
433 ANIM_WorldLakilester_TiredTalk
447 ANIM_Goombaria_Still,
471 world_use_item_ROM_START,
472 world_use_item_ROM_END,
486 script->varTable[10] = invSlot;
500 if (collisionID >= 0) {
589 *partner = partnerEntry;
590 blueprintPtr = &blueprint;
602 Npc* npc = *partnerNpcPtr;
609 Npc* npc = *partnerNpcPtr;
626 static u32 PartnerCommand;
639 partnerStatus->
stickX = 0;
640 partnerStatus->
stickY = 0;
647 playerStatus->
animFlags &= ~PA_FLAG_INTERRUPT_USE_PARTNER;
668 switch (PartnerCommand) {
1061 if (partner == NULL) {
1177 s32 isPlayerJumping;
1183 isPlayerJumping = FALSE;
1186 if ((!currentSnapshot->
isJumping || !isPlayerJumping) &&
1187 ((currentSnapshot->
pos.
x != playerStatus->
pos.
x) || (currentSnapshot->
pos.
y != playerStatus->
pos.
y)
1188 || (currentSnapshot->
pos.
z != playerStatus->
pos.
z))) {
1194 currentSnapshot->
pos.
x = playerStatus->
pos.
x;
1195 currentSnapshot->
pos.
y = playerStatus->
pos.
y;
1196 currentSnapshot->
pos.
z = playerStatus->
pos.
z;
1197 currentSnapshot->
isJumping = isPlayerJumping;
1217 partner->
pos.
x = playerStatus->
pos.
x;
1218 partner->
pos.
y = playerStatus->
pos.
y;
1219 partner->
pos.
z = playerStatus->
pos.
z;
1222 partner->
flags = partner->
flags & ~PA_FLAG_OPENED_HIDDEN_PANEL;
1235 f32 moveHistoryX, moveHistoryY, moveHistoryZ;
1247 moveHistoryX = currentSnapshot->
pos.
x;
1248 moveHistoryZ = currentSnapshot->
pos.
z;
1255 if (distance >= 50.0) {
1266 distance =
dist2D(x, z, moveHistoryX, moveHistoryZ);
1267 yaw =
atan2(x, z, moveHistoryX, moveHistoryZ);
1269 distance =
dist2D(x, z, playerStatus->
pos.
x, playerStatus->
pos.
z);
1270 if (distance >= 50.0) {
1302 moveHistoryX = currentSnapshot->
pos.
x;
1303 moveHistoryZ = currentSnapshot->
pos.
z;
1334 moveHistoryX = currentSnapshot->
pos.
x;
1335 moveHistoryZ = currentSnapshot->
pos.
z;
1350 moveHistoryX = partner->
pos.
x;
1351 moveHistoryY = playerStatus->
pos.
y;
1352 moveHistoryZ = partner->
pos.
z;
1363 moveHistoryX = currentSnapshot->
pos.
x;
1364 moveHistoryY = currentSnapshot->
pos.
y;
1365 moveHistoryZ = currentSnapshot->
pos.
z;
1392 if (partner->
jumpVel > 20.0) {
1413 if (partner->
jumpVel <= 0.0f) {
1416 if (partner->
pos.
y < -2000.0f) {
1418 partner->
flags &= ~NPC_FLAG_JUMPING;
1421 partner->
pos.
x = playerStatus->
pos.
x;
1422 partner->
pos.
y = playerStatus->
pos.
y;
1423 partner->
pos.
z = playerStatus->
pos.
z;
1427 if (partner->
jumpVel <= 0.0f) {
1430 y = partner->
pos.
y + distance;
1435 partner->
flags &= ~NPC_FLAG_JUMPING;
1442 if (distance < 5.0) {
1443 partner->
pos.
x = playerStatus->
pos.
x;
1444 partner->
pos.
y = playerStatus->
pos.
y;
1445 partner->
pos.
z = playerStatus->
pos.
z;
1457 moveHistoryX = currentSnapshot->
pos.
x;
1458 moveHistoryZ = currentSnapshot->
pos.
z;
1485 if (distance > 2.0f) {
1550 yaw =
atan2(partner->
pos.
x, partner->
pos.
z, moveHistoryX, moveHistoryZ);
1562 moveHistoryX = currentSnapshot->
pos.
x;
1563 moveHistoryZ = currentSnapshot->
pos.
z;
1573 yaw =
atan2(partner->
pos.
x, partner->
pos.
z, moveHistoryX, moveHistoryZ);
1585 moveHistoryX = currentSnapshot->
pos.
x;
1586 moveHistoryZ = currentSnapshot->
pos.
z;
1614 if (partner->
jumpVel <= 0.0f) {
1617 if (partner->
jumpVel <= 0.0f) {
1620 y = partner->
pos.
y + distance;
1627 partner->
flags &= ~NPC_FLAG_JUMPING;
1671 if (partner->
jumpVel <= 0.0f) {
1674 if (partner->
pos.
y < -2000.0f) {
1676 partner->
flags &= ~NPC_FLAG_JUMPING;
1679 partner->
pos.
x = playerStatus->
pos.
x;
1680 partner->
pos.
y = playerStatus->
pos.
y;
1681 partner->
pos.
z = playerStatus->
pos.
z;
1687 y = partner->
pos.
y + distance;
1691 partner->
flags &= ~NPC_FLAG_JUMPING;
1704static const f32 padding = 0.0f;
1748 partner->
flags &= ~NPC_FLAG_GRAVITY;
1755 s32 isPlayerJumping = FALSE;
1757 effectiveY = playerStatus->
pos.
y;
1762 if ((!currentSnapshot->
isJumping || !isPlayerJumping) && (currentSnapshot->
pos.
x != playerStatus->
pos.
x || currentSnapshot->
pos.
y != effectiveY
1763 || currentSnapshot->
pos.
z != playerStatus->
pos.
z)) {
1769 currentSnapshot->
pos.
x = playerStatus->
pos.
x;
1770 currentSnapshot->
pos.
y = effectiveY;
1771 currentSnapshot->
pos.
z = playerStatus->
pos.
z;
1772 currentSnapshot->
isJumping = isPlayerJumping;
1780 f32 x, y, z, hitDepth;
1797 partner->
pos.
x = playerStatus->
pos.
x;
1798 partner->
pos.
y = playerStatus->
pos.
y;
1799 partner->
pos.
z = playerStatus->
pos.
z;
1802 partner->
flags &= ~NPC_FLAG_JUMPING;
1824 y = playerStatus->
pos.
y;
1828 if (playerStatus->
curSpeed != 0.0f) {
1831 if (y < playerStatus->
pos.
y) {
1832 var_f0 = playerStatus->
pos.
y + 10.0f - partner->
pos.
y;
1834 var_f0 = y + 10.0f - partner->
pos.
y;
1842 if (partner->
pos.
y + D_800F84F8 <= y + partner->collisionHeight) {
1868 f32 moveHistoryX, moveHistoryY, moveHistoryZ;
1881 moveHistoryX = currentSnapshot->
pos.
x;
1882 moveHistoryY = currentSnapshot->
pos.
y;
1883 moveHistoryZ = currentSnapshot->
pos.
z;
1887 partner->
pos.
y = y + (moveHistoryY + 20.0f + var_f12 - y) * 0.125f;
1891 if (distance >= 50.0) {
1892 if (partner->
pos.
y >= playerStatus->
pos.
y) {
1903 yaw =
atan2(x, z, moveHistoryX, moveHistoryZ);
1904 distance =
dist2D(x, z, moveHistoryX, moveHistoryZ);
1906 if (partner->
pos.
y >= playerStatus->
pos.
y) {
1907 if (partner->
moveSpeed >= distance * 0.25f) {
1910 partner->
moveSpeed += distance * 0.0625f;
1942 moveHistoryX = currentSnapshot->
pos.
x;
1943 moveHistoryZ = currentSnapshot->
pos.
z;
1947 if (partner->
flags & 0x4000) {
1960 moveHistoryX = currentSnapshot->
pos.
x;
1961 moveHistoryY = currentSnapshot->
pos.
y;
1962 moveHistoryZ = currentSnapshot->
pos.
z;
1998 if (partner->
jumpVel > 20.0) {
2011 if (partner->
jumpVel <= 0.0f) {
2015 if (partner->
jumpVel <= 0.0f) {
2034 moveHistoryX = currentSnapshot->
pos.
x;
2035 moveHistoryZ = currentSnapshot->
pos.
z;
2056 if (distance > 2.0f) {
2094 yaw =
atan2(partner->
pos.
x, partner->
pos.
z, moveHistoryX, moveHistoryZ);
2102 moveHistoryX = currentSnapshot->
pos.
x;
2103 moveHistoryZ = currentSnapshot->
pos.
z;
2138 partner->
pos.
y += (playerStatus->
pos.
y - partner->
pos.
y) / 10.0f;
2149 partner->
pos.
x += (x - partner->
pos.
x) / 5.0f;
2150 partner->
pos.
z += (z - partner->
pos.
z) / 5.0f;
2197 tempMoveToX = partner->
pos.
x;
2198 tempMoveToY = partner->
pos.
y;
2199 tempMoveToZ = partner->
pos.
z;
2200 partner->
flags &= ~NPC_FLAG_GRAVITY;
2201 partner->
flags &= ~NPC_FLAG_FLYING;
2202 tempPosX = playerStatus->
pos.
x;
2206 tempPosZ = playerStatus->
pos.
z;
2214 partner->
yaw =
atan2(tempMoveToX, tempMoveToZ, tempPosX, tempPosZ);
2217 tempMoveToY = tempPosY - tempMoveToY;
2226 if (partner->
jumpVel <= 0.0f) {
2232 tempDuration = 10.0f;
2234 partner->
scale.
x = tempDuration / 10.0f;
2262 f32 x, y, z, hitDepth;
2265 f32 moveToX, moveToY, moveToZ;
2295 moveToX = playerStatus->
pos.
x;
2296 moveToY = playerStatus->
pos.
y;
2297 moveToZ = playerStatus->
pos.
z;
2301 moveToX = playerStatus->
pos.
x;
2302 moveToY = playerStatus->
pos.
y;
2303 moveToZ = playerStatus->
pos.
z;
2308 x = partner->
pos.
x = playerStatus->
pos.
x;
2310 z = partner->
pos.
z = playerStatus->
pos.
z;
2315 partner->
yaw =
atan2(x, z, moveToX, moveToZ);
2334 if (partner->
jumpVel <= 0.0f) {
2340 if (var_f0 > 10.0f) {
2344 partner->
scale.
x = (10.0f - var_f0) / 10.0f;
2363 partner->
pos.
y = playerStatus->
pos.
y;
2365 partner->
pos.
y = playerStatus->
pos.
y;
2461 isFacingLeft = TRUE;
2464 isFacingLeft = FALSE;
2468 isFacingLeft = TRUE;
2472 isFacingLeft = FALSE;
2477 return isFacingLeft;
2506 playerStatus->
pos.
x, playerStatus->
pos.
y, playerStatus->
pos.
z, 1.0f,
2507 &playerScreenX, &playerScreenY, &playerScreenZ, &W);
2509 &partnerScreenX, &partnerScreenY, &partnerScreenZ, &W);
2510 playerScreenX =
fabsf(playerScreenX - partnerScreenX);
2511 playerScreenY =
fabsf(playerScreenY - partnerScreenY);
2512 playerScreenZ =
fabsf(playerScreenZ - partnerScreenZ);
2514 playerScreenY <= partner->collisionHeight + playerStatus->
colliderHeight && playerScreenZ <= 4.0)
2546 partner->
pos.
y = playerStatus->
pos.
y;
2548 if (partner->
jumpVel != 0.0f) {
2551 if (partner->
jumpVel <= 0.0f) {
2555 if (partner->
jumpVel <= 0.0f) {
2570 partner->
flags &= ~NPC_FLAG_JUMPING;
2581 if (
fabs(partner->
pos.
y - playerStatus->
pos.
y) > 5.0) {
2582 partner->
pos.
y += (playerStatus->
pos.
y - partner->
pos.
y) * 0.5f;
2591 partner->
flags &= ~NPC_FLAG_IGNORE_WORLD_COLLISION;
s32 world_bombette_can_use_ability(Npc *npc)
void world_bombette_init(Npc *)
s32 world_bombette_test_first_strike(Npc *, Npc *)
s32 world_bombette_can_open_menus(Npc *)
void world_bombette_pre_battle(Npc *)
void world_bow_init(Npc *)
void world_bow_pre_battle(Npc *)
b8 keepUsingPartnerOnMapChange
union Evt::@9 owner2
Initially -1.
@ PARTNER_ANIM_INDEX_WALK
@ PS_FLAG_NO_STATIC_COLLISION
@ COLLIDER_FLAG_IGNORE_PLAYER
@ ENTITY_TYPE_TRUMPET_PLANT
@ ENTITY_TYPE_BELLBELL_PLANT
@ ENTITY_TYPE_SCRIPT_SPRING
@ ENTITY_TYPE_PINK_FLOWER
@ ENTITY_TYPE_HUGE_BLUE_SWITCH
@ ENTITY_TYPE_BLUE_SWITCH
@ ENTITY_TYPE_GREEN_STOMP_SWITCH
@ ENTITY_TYPE_CYMBAL_PLANT
@ ENTITY_TYPE_SIMPLE_SPRING
@ ENTITY_TYPE_SPINNING_FLOWER
@ PA_FLAG_INTERRUPT_USE_PARTNER
forces actions with bow, parakarry, watt, and lakilester to end (sushie not tested)
@ PA_FLAG_OPENED_HIDDEN_PANEL
@ PA_FLAG_FORCED_PARTNER_ABILITY_END
@ ACTION_STATE_TALK
Reading signs doesn't count.
@ ACTION_STATE_HIT_FIRE
Causes Mario to fly up and take damage. Used for fire bars.
@ PARTNER_CMD_INSTA_SWITCH
@ PARTNER_CMD_INSTA_TAKE_OUT
@ PARTNER_CMD_INSTA_PUT_AWAY
@ PARTNER_CMD_USE_ABILITY
@ NPC_FLAG_TOUCHES_GROUND
@ NPC_FLAG_IGNORE_PLAYER_COLLISION
@ NPC_FLAG_COLLDING_FORWARD_WITH_WORLD
@ NPC_FLAG_COLLIDING_WITH_NPC
@ NPC_FLAG_COLLDING_WITH_WORLD
@ EVT_FLAG_RUN_IMMEDIATELY
don't wait for next update_scripts call
Worker * get_worker(s32 idx)
b32 npc_raycast_down_around(s32, f32 *, f32 *, f32 *, f32 *, f32, f32)
void disable_npc_blur(Npc *npc)
void sort_consumables(void)
Bubbles up player inventory items such that all ITEM_NONE values are at the bottom.
s32 disable_player_input(void)
s32 get_collider_flags(s32 colliderID)
s32 suspend_all_script(s32 id)
u32 dma_copy(Addr romStart, Addr romEnd, void *vramDest)
void enable_npc_blur(Npc *npc)
s32 enable_player_input(void)
f32 dist2D(f32 ax, f32 ay, f32 bx, f32 by)
f32 player_get_side_angle(void)
u32 get_entity_type(s32 arg0)
s32 is_starting_conversation(void)
Evt * start_script(EvtScript *source, s32 priority, s32 initialState)
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 kill_script_by_ID(s32 id)
s32 resume_all_script(s32 id)
s32 does_script_exist(s32 id)
void set_time_freeze_mode(s32)
Time freeze modes: 0: none 1: NPCs move, can't be interacted with 2: NPCs don't move,...
s32 create_worker_frontUI(void(*updateFunc)(void), void(*drawFunc)(void))
void add_vec2D_polar(f32 *x, f32 *y, f32 r, f32 theta)
f32 get_clamped_angle_diff(f32, f32)
EvtScript EVS_WorldGoombaria_UseAbility
EvtScript EVS_WorldGoombaria_Update
EvtScript EVS_WorldGoombaria_TakeOut
EvtScript EVS_WorldGoombaria_PutAway
void world_goombaria_init(Npc *partner)
s32 world_goombario_can_open_menus(Npc *partner)
void world_goombario_init(Npc *partner)
void world_goombario_pre_battle(Npc *partner)
void world_goompa_init(Npc *partner)
s32 world_kooper_test_first_strike(Npc *, Npc *)
void world_kooper_init(Npc *)
void world_kooper_post_battle(Npc *)
void world_kooper_pre_battle(Npc *)
void world_lakilester_init(Npc *)
void world_lakilester_pre_battle(Npc *)
void world_lakilester_post_battle(Npc *)
s32 npc_try_snap_to_ground(Npc *npc, f32 velocity)
s32 create_basic_npc(NpcBlueprint *blueprint)
void npc_surface_spawn_fx(Npc *npc, SurfaceInteractMode mode)
void free_npc_by_index(s32 listIndex)
void npc_do_world_collision(Npc *npc)
Npc * get_npc_by_index(s32 listIndex)
void npc_move_heading(Npc *npc, f32 speed, f32 yaw)
void world_parakarry_init(Npc *)
void world_parakarry_post_battle(Npc *)
void world_parakarry_pre_battle(Npc *)
BSS PlayerPathElement gPlayerMoveHistory[40]
HudScript HES_BombetteDisabled
void partner_init_after_battle(s32 partnerID)
s32 partner_can_use_ability(void)
BSS s32 gPlayerMoveHistoryIndex
s32 func_800EA52C(s32 partnerID)
HudScript HES_StatusDigit6
s32 partner_init_get_out(Npc *npc)
HudScript HES_StatusSPIncrement6
HudScript * TimesHudScript
HudScript HES_StatusDigit1
void partner_walking_follow_player(Npc *partner)
HudScript * wDisabledPartnerHudScripts[]
void switch_to_partner(s32 partnerID)
HudScript * SlashHudScript
void partner_reset_data(void)
UseItemStruct UseItemDmaArgs
s32 func_800EA4B0(s32 collisionID)
PartnerAnimations gPartnerAnimations[]
HudScript HES_StatusSPIncrement4
void partner_disable_input(void)
HudScript HES_StatusStar1
HudScript HES_StatusSPIncrement3
HudScript HES_PartnerADisabled
HudScript HES_StatusDigit8
void partner_resume_ability_script(void)
PartnerStatus gPartnerStatus
void partner_walking_update_motion(Npc *partner)
HudScript HES_BowDisabled
void partner_clear_player_tracking(Npc *partner)
void partner_flying_update_player_tracking(Npc *partner)
HudScript HES_LakilesterDisabled
HudScript * DigitHudScripts[]
HudScript * wPartnerHudScripts[]
HudScript HES_StatusDigit3
HudScript * SPStarHudScripts[]
HudScript HES_StatusDigit5
HudScript HES_StatusDigit2
HudScript HES_StatusDigit7
HudScript HES_SushieDisabled
void partner_walking_update_player_tracking(Npc *partner)
HudScript * SPIncrementHudScripts[]
BSS s32 PartnerCommandState
void func_800EA5B8(Npc *partner)
HudScript HES_KooperDisabled
HudScript HES_GoombarioDisabled
void partner_kill_ability_script(void)
void create_partner_npc(void)
void partner_free_npc(void)
s32 partner_is_flying(void)
HudScript HES_StatusStar2
HudScript HES_ParakarryDisabled
HudScript HES_StatusDigit9
HudScript HES_StatusStar3
void partner_enable_input(void)
s32 StatusBarSPIncrementOffsets[]
s32 partner_init_put_away(Npc *partner)
s32 partner_use_ability(void)
HudScript HES_StatusSlash
BSS s32 wPartnerCurrentScriptID
HudScript HES_StatusSPIncrement7
s32 partner_test_enemy_collision(Npc *enemy)
BSS s32 NextPartnerCommand
void enable_partner_ai(void)
s32 use_consumable(s32 invSlot)
BSS Evt * wPartnerCurrentScript
void func_800EF414(s32 posX, s32 posZ)
s32 partner_put_away(Npc *partner)
HudScript HES_Partner0Disabled
void partner_flying_follow_player(Npc *)
HudScript HES_WattDisabled
HudScript HES_StatusTimes
BSS s16 wPartnerFollowState
s32 partner_force_player_flip_done(void)
s32 partner_can_open_world_menus(void)
void partner_flying_update_motion(Npc *partner)
BSS s32 wCurrentPartnerId
s32 world_partner_can_open_menus_default(Npc *partner)
EvtScript * partner_get_enter_map_script(void)
HudScript HES_StatusStar7
void remove_consumable(void)
BSS WorldPartner * wPartner
HudScript HES_StatusStar5
HudScript HES_StatusSPIncrement5
void partner_handle_before_battle(void)
s32 partner_get_out(Npc *partner)
HudScript HES_StatusSPIncrement2
void partner_walking_enable(Npc *partner, s32 val)
void partner_flying_enable(Npc *partner, s32 val)
BSS f32 wPartnerTetherDistance
void _use_partner_ability(void)
void func_800EB2A4(s32 partnerID)
void partner_handle_after_battle(void)
void partner_set_tether_distance(f32 dist)
HudScript HES_StatusStar6
void func_800EF3D4(s32 arg0)
s32 partner_is_idle(Npc *partner)
void partner_reset_tether_distance(void)
void partner_do_player_collision(Npc *partner)
void partner_suspend_ability_script(void)
HudScript HES_StatusStar4
HudScript HES_StatusDigit0
HudScript HES_StatusDigit4
void partner_move_to_goal(Npc *, s32)
EvtScript EVS_World_UseItem
HudScript HES_StatusSPIncrement1
void partner_set_goal_pos(s32 x, s32 z)
void partner_initialize_data(void)
void * dmaDest
Always 0x802BD100
PartnerBoolFunc canUseAbility
PartnerTesHitFunc testFirstStrike
PartnerBoolFunc canPlayerOpenMenus
void sfx_play_sound(s32 soundID)
#define NPC_DISPOSE_POS_Z
#define NPC_DISPOSE_POS_X
#define COLLISION_WITH_ENTITY_BIT
#define NPC_DISPOSE_POS_Y
void(* onRender)(struct Npc *)
void(* onUpdate)(struct Npc *)
void world_sushie_pre_battle(Npc *)
void world_sushie_init(Npc *)
void world_sushie_post_battle(Npc *)
void world_twink_init(Npc *partner)
Entity * TweesterTouchingPartner
PlayerStatus * gPlayerStatusPtr
GameStatus * gGameStatusPtr
s32 NpcHitQueryColliderID
PlayerStatus gPlayerStatus
void world_watt_init(Npc *)
void world_watt_pre_battle(Npc *)
void world_watt_post_battle(Npc *)
EvtScript EVS_WorldBombette_TakeOut
EvtScript EVS_WorldBombette_Update
EvtScript EVS_WorldBombette_PutAway
EvtScript EVS_WorldBombette_UseAbility
EvtScript EVS_WorldBow_Update
EvtScript EVS_WorldBow_PutAway
EvtScript EVS_WorldBow_TakeOut
EvtScript EVS_WorldBow_UseAbility
EvtScript EVS_WorldGoombario_UseAbility
EvtScript EVS_WorldGoombario_TakeOut
EvtScript EVS_WorldGoombario_Update
EvtScript EVS_WorldGoombario_PutAway
EvtScript EVS_WorldGoompa_TakeOut
EvtScript EVS_WorldGoompa_PutAway
EvtScript EVS_WorldGoompa_UseAbility
EvtScript EVS_WorldGoompa_Update
EvtScript EVS_WorldKooper_TakeOut
EvtScript EVS_WorldKooper_UseAbility
EvtScript EVS_WorldKooper_Update
EvtScript EVS_WorldKooper_PutAway
EvtScript EVS_WorldLakilester_PutAway
EvtScript EVS_WorldLakilester_TakeOut
EvtScript EVS_WorldLakilester_UseAbility
EvtScript EVS_WorldLakilester_Update
EvtScript EVS_WorldLakilester_EnterMap
EvtScript EVS_WorldParakarry_UseAbility
EvtScript EVS_WorldParakarry_PutAway
EvtScript EVS_WorldParakarry_Update
EvtScript EVS_WorldParakarry_TakeOut
EvtScript EVS_WorldSushie_PutAway
EvtScript EVS_WorldSushie_EnterMap
EvtScript EVS_WorldSushie_TakeOut
EvtScript EVS_WorldSushie_UseAbility
EvtScript EVS_WorldSushie_Update
EvtScript EVS_WorldTwink_TakeOut
EvtScript EVS_WorldTwink_UseAbility
EvtScript EVS_WorldTwink_PutAway
EvtScript EVS_WorldTwink_Update
EvtScript EVS_WorldWatt_PutAway
EvtScript EVS_WorldWatt_EnterMap
EvtScript EVS_WorldWatt_Update
EvtScript EVS_WorldWatt_UseAbility
EvtScript EVS_WorldWatt_TakeOut