5#include "sprite/npc/BattleWatt.h"
14#define LERP_COMPONENT(a, b, alpha) ((a) * (255 - (alpha)) + (b) * (alpha)) / 255;
16#define PAL_ANIM_END 0xFF
62s16
FearPaletteAnimXOffsets[] = { -2, 2, 0, 0, -2, 2, 0, 0, 0, 0, -2, 2, 0, 0, 0, 0, 0, 0,
PAL_ANIM_END };
64s16
ParalyzePaletteAnimXOffsets[] = { -2, 2, 0, 0, -2, 2, 0, 0, 0, 0, -2, 2, 0, 0, 0, 0, 0, 0,
PAL_ANIM_END };
201 for (i = 0; i < numParts; i++) {
210 decorations->
yaw[j] = actor->
yaw;
247 actor->
flags &= ~ACTOR_FLAG_BLUR_ENABLED;
297 decorations->
yaw[i] = playerActor->
yaw;
328 playerActor->
flags &= ~ACTOR_FLAG_BLUR_ENABLED;
348 playerActor->
flags &= ~ACTOR_FLAG_BLUR_ENABLED;
363 decorations->
yaw[i] = actor->
yaw;
381 Matrix4f mtxRotX, mtxRotY, mtxRotZ, mtxRotation;
383 Matrix4f mtxPivotOn, mtxPivotOff, mtxTranslate;
390 f32 rotX, rotY, rotZ;
397 s32 opacityLossIncrement;
405 actor->
flags &= ~ACTOR_FLAG_BLUR_ENABLED;
439 x = decorations->
posX[bufPos];
440 y = decorations->
posY[bufPos];
441 z = decorations->
posZ[bufPos];
443 yaw = decorations->
yaw[bufPos];
448 rotX = decorations->
rotX[bufPos] * 2;
449 rotY = decorations->
rotY[bufPos] * 2;
450 rotZ = decorations->
rotZ[bufPos] * 2;
452 blurOpacityBase = 120;
453 opacityLossIncrement = 20;
455 blurOpacityBase = 50;
456 opacityLossIncrement = 8;
457 }
else if (opacity < 100) {
458 blurOpacityBase = 70;
459 opacityLossIncrement = 10;
460 }
else if (opacity < 150) {
461 blurOpacityBase = 100;
462 opacityLossIncrement = 15;
466 guTranslateF(mtxPivotOn, -pivotOffsetX, -pivotOffsetY, 0.0f);
467 guTranslateF(mtxPivotOff, pivotOffsetX, pivotOffsetY, 0.0f);
468 guRotateF(mtxRotX, rotX, 1.0f, 0.0f, 0.0f);
469 guRotateF(mtxRotY, rotY, 0.0f, 1.0f, 0.0f);
470 guRotateF(mtxRotZ, rotZ, 0.0f, 0.0f, 1.0f);
471 guMtxCatF(mtxRotX, mtxRotY, mtxTransform);
472 guMtxCatF(mtxTransform, mtxRotZ, mtxRotation);
476 guMtxCatF(mtxScale, mtxPivotOn, mtxTemp);
477 guMtxCatF(mtxTemp, mtxRotation, mtxTransform);
478 guMtxCatF(mtxTransform, mtxPivotOff, mtxTemp);
479 guMtxCatF(mtxTemp, mtxTranslate, mtxTransform);
480 prevOpacity = partTable->
opacity;
481 partTable->
opacity = blurOpacityBase - (drawIdx * opacityLossIncrement);
483 partTable->
opacity = prevOpacity;
494 for (i = 0; i < numParts; i++) {
504 decorations->
yaw[j] = actor->
yaw;
525 Matrix4f mtxRotX, mtxRotY, mtxRotZ, mtxRotation;
531 s32 i, bufPos, strideIdx, drawIdx;
533 f32 rotX, rotY, rotZ;
539 s32 opacityLossIncrement;
547 guMtxCatF(mtxTemp, mtxRotZ, mtxRotation);
551 guMtxCatF(mtxScale, mtxRotation, mtxActor);
555 for (i = 0; i < numParts; i++) {
565 actor->
flags &= ~ACTOR_FLAG_BLUR_ENABLED;
610 x = decorations->
posX[bufPos];
611 y = decorations->
posY[bufPos];
612 z = decorations->
posZ[bufPos];
614 yaw = decorations->
yaw[bufPos];
619 rotX = decorations->
rotX[bufPos] * 2;
620 rotY = decorations->
rotY[bufPos] * 2;
621 rotZ = decorations->
rotZ[bufPos] * 2;
623 blurOpacityBase = 120;
624 opacityLossIncrement = 20;
626 blurOpacityBase = 50;
627 opacityLossIncrement = 8;
628 }
else if (opacity < 100) {
629 blurOpacityBase = 70;
630 opacityLossIncrement = 10;
631 }
else if (opacity < 150) {
632 blurOpacityBase = 100;
633 opacityLossIncrement = 15;
645 guRotateF(mtxRotX, rotX, 1.0f, 0.0f, 0.0f);
646 guRotateF(mtxRotY, rotY, 0.0f, 1.0f, 0.0f);
647 guRotateF(mtxRotZ, rotZ, 0.0f, 0.0f, 1.0f);
649 guMtxCatF(mtxTemp, mtxRotZ, mtxRotation);
651 guMtxCatF(mtxScale, mtxPivotOn, mtxTransform);
652 guMtxCatF(mtxTransform, mtxRotation, mtxTemp);
653 guMtxCatF(mtxTemp, mtxPivotOff, mtxTransform);
656 guMtxCatF(mtxTransform, mtxActor, mtxTemp);
658 guMtxCatF(mtxTransform, mtxPartScale, mtxTemp);
660 guMtxCatF(mtxTemp, mtxTranslate, mtxTransform);
663 blurOpacity = blurOpacityBase - drawIdx * opacityLossIncrement;
728 for (i = 0; i < numParts; i++) {
744 yaw = actorPart->
yaw = actor->
yaw;
749 yaw = actorPart->
yaw;
757 shadow->
flags &= ~ENTITY_FLAG_HIDDEN;
760 y1 = actorPart->
curPos.
y + 12.0;
762 y1 = actorPart->
curPos.
y - 12.0;
788 shadow->
flags &= ~ENTITY_FLAG_HIDDEN;
834 Matrix4f mtxRotX, mtxRotY, mtxRotZ, mtxRotation;
836 Matrix4f mtxPivotOn, mtxPivotOff, mtxTranslate;
837 Matrix4f mtxTemp, mtxActor, mtxTransform, mtxPartScale;
842 f32 actorPosX, actorPosY, actorPosZ;
843 f32 partPosX, partPosY, partPosZ, partYaw;
898 if (effect != NULL) {
948 guMtxCatF(mtxTemp, mtxRotZ, mtxRotation);
954 guMtxCatF(mtxPivotOn, mtxScale, mtxTemp);
955 guMtxCatF(mtxTemp, mtxScaleMod, mtxScale);
956 guMtxCatF(mtxScale, mtxRotation, mtxTransform);
957 guMtxCatF(mtxTransform, mtxPivotOff, mtxActor);
961 for (i = 0; i < numParts; i++) {
970 partYaw = part->
yaw = actor->
yaw;
997 part->
flags &= ~ACTOR_PART_FLAG_TRANSPARENT;
1001 animChanged = FALSE;
1003 decorChanged = FALSE;
1017 decorChanged = TRUE;
1027 if (!decorChanged) {
1030 decorChanged = TRUE;
1124 }
else if (!animChanged) {
1195 guMtxCatF(mtxTemp, mtxRotZ, mtxRotation);
1197 guMtxCatF(mtxScale, mtxPivotOn, mtxTransform);
1198 guMtxCatF(mtxTransform, mtxRotation, mtxTemp);
1199 guMtxCatF(mtxTemp, mtxPivotOff, mtxTransform);
1202 guMtxCatF(mtxTransform, mtxActor, mtxTemp);
1204 guMtxCatF(mtxTransform, mtxPartScale, mtxTemp);
1206 guMtxCatF(mtxTemp, mtxTranslate, mtxTransform);
1231 Matrix4f mtxRotX, mtxRotY, mtxRotZ, mtxRotation, mtxScale;
1232 Matrix4f mtxPivotOn, mtxPivotOff, mtxTranslate;
1233 Matrix4f mtxTemp, mtxTransform, mtxMirror;
1236 f32 actorPosX, actorPosY, actorPosZ;
1237 f32 partPosX, partPosY, partPosZ;
1274 guMtxCatF(mtxTemp, mtxRotZ, mtxRotation);
1281 guMtxCatF(mtxPivotOn, mtxScale, mtxTemp);
1282 guMtxCatF(mtxTemp, mtxRotation, mtxTransform);
1283 guMtxCatF(mtxTransform, mtxPivotOff, mtxActor);
1287 for (i = 0; i < numParts; i++) {
1297 partYaw = part->
yaw = actor->
yaw;
1306 partYaw = part->
yaw;
1346 guMtxCatF(mtxTemp, mtxRotZ, mtxRotation);
1350 guMtxCatF(mtxScale, mtxPivotOn, mtxTemp);
1351 guMtxCatF(mtxTemp, mtxRotation, mtxTransform);
1352 guMtxCatF(mtxTransform, mtxPivotOff, mtxTemp);
1354 guMtxCatF(mtxTemp, mtxActor, mtxTransform);
1356 guMtxCatF(mtxTemp, mtxPartScale, mtxTransform);
1358 guMtxCatF(mtxTransform, mtxTranslate, mtxTemp);
1359 guMtxCatF(mtxTemp, mtxMirror, mtxTransform);
1384 Actor* actor = data;
1399 f32 x, y, z, distance;
1408 shadow->
flags &= ~ENTITY_FLAG_HIDDEN;
1411 shadow->
alpha = 128;
1416 distance = 32767.0f;
1422 if (distance > 200.0f) {
1442 Matrix4f mtxRotX, mtxRotY, mtxRotZ, mtxRotation;
1444 Matrix4f mtxPivotOn, mtxPivotOff, mtxTranslate;
1451 f32 playerPosX, playerPosY, playerPosZ, playerYaw;
1452 s32 animChanged, palChanged, decorChanged, cond4;
1463 playerYaw = playerParts->
yaw = player->
yaw;
1536 if (effect != NULL) {
1594 playerParts->
flags &= ~ACTOR_PART_FLAG_TRANSPARENT;
1597 animChanged = FALSE;
1599 decorChanged = FALSE;
1605 && (partner != NULL))
1642 decorChanged = TRUE;
1657 decorChanged = TRUE;
1697 if (!decorChanged) {
1700 decorChanged = TRUE;
1711 if (!decorChanged) {
1718 }
else if (!animChanged) {
1826 playerPosX, playerPosY, playerPosZ,
1838 playerParts->
curPos.
x = playerPosX;
1839 playerParts->
curPos.
y = playerPosY;
1840 playerParts->
curPos.
z = playerPosZ;
1841 guTranslateF(mtxTranslate, playerPosX, playerPosY, playerPosZ);
1856 guMtxCatF(mtxTemp, mtxRotZ, mtxRotation);
1863 guMtxCatF(mtxScale, mtxPivotOn, mtxTemp);
1864 guMtxCatF(mtxTemp, mtxRotation, mtxTransform);
1865 guMtxCatF(mtxTransform, mtxPivotOff, mtxTemp);
1866 guMtxCatF(mtxTemp, mtxTranslate, mtxTransform);
1878 Matrix4f mtxRotX, mtxRotY, mtxRotZ, mtxRotation, mtxScale;
1879 Matrix4f mtxPivotOn, mtxPivotOff, mtxTranslate;
1880 Matrix4f mtxTemp, mtxTransform, mtxMirror;
1883 f32 playerYaw = player->
yaw;
1891 part->
yaw = playerYaw;
1908 guMtxCatF(mtxTemp, mtxRotZ, mtxRotation);
1915 guMtxCatF(mtxScale, mtxPivotOn, mtxTemp);
1916 guMtxCatF(mtxTemp, mtxRotation, mtxTemp);
1917 guMtxCatF(mtxTemp, mtxPivotOff, mtxTemp);
1918 guMtxCatF(mtxTemp, mtxTranslate, mtxTransform);
1919 guMtxCatF(mtxTransform, mtxMirror, mtxTransform);
1939 opacity = opacity * 120 / 255;
1942 if (opacity == 255) {
1948 if (opacity == 255) {
2018 *dest = *src | 0xFFFE;
2042 opacity = (opacity * 120) / 255;
2086 opacity = (opacity * 120) / 255;
2111 opacity = (opacity * 120) / 255;
2153 opacity = (opacity * 120) / 255;
2208 if (palIn != NULL) {
2265 if (palIn != NULL) {
2267 *palOut++ = *palIn++;
2278 if (!skipAnimation) {
2292 switch (paletteType) {
2297 if (palIn != NULL) {
2299 *palOut++ = *palIn++;
2309 if (palIn != NULL) {
2311 *palOut++ = *palIn++;
2320 if (palIn != NULL) {
2349 if (!skipAnimation) {
2386 if (palIn != NULL) {
2413 if (!skipAnimation) {
2455 if (palIn != NULL) {
2457 *palOut++ = *palIn++;
2464 if (palIn != NULL) {
2466 *palOut++ = *palIn++;
2512 if (palIn != NULL) {
2552 if (!skipAnimation) {
2577 if (!skipAnimation) {
2613 if (palIn != NULL) {
2648 s32 brightnessLevel;
2670 if (palIn != NULL) {
2672 *palOut++ = *palIn++;
2683 if (!skipAnimation) {
2698 switch (brightnessLevel) {
2704 if (palIn != NULL) {
2706 *palOut++ = *palIn++;
2717 if (palIn != NULL) {
2719 *palOut++ = *palIn++;
2730 if (palIn != NULL) {
2732 *palOut++ = *palIn++;
2749 if (!skipAnimation) {
2782 if (palIn != NULL) {
2784 *palOut++ = *palIn++;
2795 if (!skipAnimation) {
2810 switch (brightness) {
2815 if (palIn != NULL) {
2817 *palOut++ = *palIn++;
2828 if (palIn != NULL) {
2830 *palOut++ = *palIn++;
2841 if (palIn != NULL) {
2843 *palOut++ = *palIn++;
2860 if (!skipAnimation) {
2907 if (color2 != NULL) {
2909 *color1++ = *color2++;
2919 *palOut++ = *color2++;
2931 if (!skipAnimation && decorations->
nextPalTime != 0) {
2934 if (!skipAnimation) {
2968 if (blendAlpha == 255) {
3027 if (color2 != NULL) {
3029 *color1++ = *color2++;
3034 if (!hasDifferentIntervals) {
3050 if (skipAnimation) {
3061 if (!skipAnimation) {
3091 if (blendAlpha == 255) {
3101 if (skipAnimation) {
3112 if (!skipAnimation) {
3142 if (blendAlpha == 255) {
3202 if (color2 != NULL) {
3204 *color1++ = *color2++;
3218 if (skipAnimation) {
3229 if (!skipAnimation) {
3261 if (blendAlpha == 255) {
3270 if (skipAnimation) {
3281 if (!skipAnimation) {
3313 if (blendAlpha == 255) {
3388 gbuf[i] = (
cosine(decorations->
glowPhase + (25 * i) + 45) + 1.0) * 112.0;
3389 bbuf[i] = (
cosine(decorations->
glowPhase + (25 * i) + 90) + 1.0) * 112.0;
3397 alpha = (alpha * 120) / 255;
3401 color = (rbuf[i] << 0x18) | (gbuf[i] << 0x10) | (bbuf[i] << 8) | alpha;
3409 if (!isReflection) {
3474 if (!isReflection) {
3498 if (!isReflection) {
3526 if (!isReflection) {
3543 switch (decorations->
type[i]) {
3587 switch (decorations->
type[idx]) {
3641 switch (decorations->
state[idx]) {
3644 decorations->
state[idx] = 1;
3650 effect = decorations->
effect[idx];
3672 switch (decorations->
state[idx]) {
3674 if (part->
yaw > 90.0f) {
3680 decorations->
state[idx] = TRUE;
3686 decorations->
state[idx] = FALSE;
3700 switch (decorations->
state[idx]) {
3703 decorations->
state[idx] = 1;
3724 switch (decorations->
state[idx]) {
3727 decorations->
state[idx] = 1;
3737 effect = decorations->
effect[idx];
3762 switch (decorations->
state[idx]) {
3765 decorations->
state[idx] = 1;
3768 effect = decorations->
effect[idx];
3784 switch (decorations->
state[idx]) {
3788 decorations->
state[idx] = 1;
3791 effect = decorations->
effect[idx];
3808 switch (decorations->
state[idx]) {
3811 decorations->
state[idx] = 1;
3814 effect = decorations->
effect[idx];
3828 f32 angle, sinA, cosA;
3830 switch (decorations->
state[idx]) {
3833 decorations->
state[idx] = 1;
3860 switch (decorations->
state[idx]) {
3863 decorations->
state[idx] = 1;
3891 switch (decorations->
state[idx]) {
3894 decorations->
state[idx] = 1;
3901 effect = decorations->
effect[idx];
3928 switch (decorations->
state[idx]) {
3931 decorations->
state[idx] = 1;
void appendGfx_enemy_actor_reflection(void *data)
void _remove_part_decoration(ActorPart *part, s32 idx)
void disable_partner_blur(void)
void add_part_decor_steam(ActorPart *, s32)
void func_unkB_draw_npc(ActorPart *, s32, Matrix4f)
void appendGfx_player_actor_reflection(void *arg0)
void set_actor_pal_adjustment(Actor *actor, s32 arg1)
void update_nonplayer_actor_blur_history(b32 isPartner, Actor *actor)
void render_with_watt_idle_palettes(b32 arg0, ActorPart *part, s32 yaw, Matrix4f mtx, b32 skipAnimation)
void remove_part_decor_bowser_aura(ActorPart *part, s32 idx)
void add_part_decor_sparkles(ActorPart *, s32)
void remove_part_decor_sweat(ActorPart *part, s32 idx)
void update_hero_shadows(void)
void appendGfx_partner_actor(void *data)
void appendGfx_partner_actor_reflection(void *data)
void render_with_player_debuff_palettes(b32 arg0, ActorPart *part, s32 yaw, Matrix4f mtx, b32 skipAnimation, s32 isPoison)
void enable_status_transparent(s16)
void remove_part_decor_none(ActorPart *part, s32 idx)
void enable_status_icon_boost_hammer(s32 iconID)
void add_part_decor_fiery_trail(ActorPart *, s32)
s32 get_npc_anim_for_status(u32 *, s32)
u8 bWattIdlePalettesAnim[]
void remove_part_decor_steam(ActorPart *part, s32 idx)
void force_disable_partner_blur(void)
void func_unkB_draw_player(ActorPart *, s32, Matrix4f)
void render_with_fear_palettes(b32 arg0, ActorPart *part, s32 yaw, Matrix4f mtx, b32 skipAnimation)
void render_without_adjusted_palettes(b32 arg0, ActorPart *part, s32 yaw, Matrix4f mtx, b32 skipAnimation)
void render_with_watt_attack_palettes(b32 arg0, ActorPart *part, s32 yaw, Matrix4f mtx, b32 skipAnimation)
void appendGfx_npc_actor(s32 isPartner, s32 actorIndex)
void add_part_decor_golden_flames(ActorPart *, s32)
void disable_player_blur(void)
void func_unkA_draw_npc(ActorPart *, s32, Matrix4f)
void add_part_decor_radiating_stars(ActorPart *, s32)
void render_with_sleep_palettes(b32 arg0, ActorPart *part, s32 yaw, Matrix4f mtx, b32 skipAnimation)
void appendGfx_npc_actor_reflection(s32, Actor *)
void force_disable_actor_blur(Actor *actor)
void enable_partner_blur(void)
s32 update_part_glow(b32 isNpcSprite, ActorPart *part, s32 yaw, b32 isReflection)
#define LERP_COMPONENT(a, b, alpha)
void clear_part_flash_mode(ActorPart *part)
void enable_player_blur(void)
s16 ParalyzePaletteAnimXOffsets[]
void appendGfx_partner_actor_blur(void *data)
void add_part_decor_seeing_stars(ActorPart *, s32)
void force_disable_player_blur_immediately(void)
void _add_part_decoration(ActorPart *actorPart)
void add_part_decor_sweat(ActorPart *, s32)
void add_part_decor_smoky_trail(ActorPart *, s32)
void reset_partner_blur(void)
void remove_part_decor_red_flames(ActorPart *part, s32 idx)
void part_glow_on(b32 arg0, ActorPart *part, s32 yaw, b32 arg3)
void appendGfx_nonplayer_actor_blur(b32 isPartner, Actor *actor)
void remove_part_decor_seeing_stars(ActorPart *part, s32 idx)
void render_with_berserk_palettes(b32 arg0, ActorPart *part, s32 yaw, Matrix4f mtx, b32 skipAnimation)
s32 get_flash_damage_intensity(ActorPart *part)
u8 WattAttackPalettesAnim[]
s32 render_with_adjusted_palettes(b32 isNpcSprite, ActorPart *part, s32 yaw, Matrix4f mtx, b32 skipAnimation)
void enable_status_chill_out(s32 iconID)
void remove_part_decor_radiating_stars(ActorPart *part, s32 idx)
void disable_actor_blur(Actor *actor)
void enable_status_debuff(s16)
void remove_part_decor_sparkles(ActorPart *part, s32 idx)
void enable_status_icon_boost_jump(s32 iconID)
void render_with_pal_blending(b32 arg0, ActorPart *part, s32 yaw, s32 arg3, Matrix4f mtx, s32 skipAnimation)
void update_enemy_actor_blur_history(Actor *actor)
void remove_part_decor_golden_flames(ActorPart *part, s32 idx)
void add_part_decor_bowser_aura(ActorPart *, s32)
void create_status_icon_boost_jump(s32 iconID)
void part_flash_off(b32 isNpcSprite, ActorPart *part, s32 yaw, b32 isReflection)
void update_nonplayer_actor_shadow(b32 isPartner, Actor *actor)
void render_with_palset_blending(b32 arg0, ActorPart *part, s32 yaw, Matrix4f mtx, b32 skipAnimation)
void enable_status_static(s32 iconID)
s32 update_part_flash(b32 isNpcSprite, ActorPart *part, s32 yaw, b32 isReflection)
s16 FearPaletteAnimXOffsets[]
void render_with_paralyze_palettes(b32 arg0, ActorPart *part, s32 yaw, Matrix4f mtx, b32 skipAnimation)
void force_disable_player_blur(void)
void appendGfx_enemy_actor(void *data)
void set_status_icons_properties(s32 iconID, f32 x, f32 y, f32 z, s32 arg, s32 arg2, s32 radius, s32 offsetY)
void make_flash_palettes(ActorPart *)
void update_player_actor_blur_history(Actor *actor)
void add_part_decor_whirlwind(ActorPart *, s32)
void create_status_icon_boost_hammer(s32 iconID)
void remove_part_decor_whirlwind(ActorPart *part, s32 idx)
s32 get_player_anim_for_status(s32 animID)
void func_unkA_draw_player(ActorPart *, s32, Matrix4f)
void render_with_static_palettes(b32 arg0, ActorPart *part, s32 yaw, Matrix4f mtx, b32 skipAnimation)
void remove_part_decor_smoky_trail(ActorPart *part, s32 idx)
void update_partner_actor_blur_history(Actor *actor)
void render_with_poison_palettes(b32 arg0, ActorPart *part, s32 yaw, Matrix4f mtx, b32 skipAnimation)
void appendGfx_player_actor_blur(Actor *actor)
void update_player_actor_shadow(void)
void update_enemy_shadows(void)
void part_glow_off(b32 isNpcSprite, ActorPart *part, s32 yaw, b32 isReflection)
s16 SparkleSpawnIntervals[]
void set_status_icons_offset(s32 iconID, s32 offsetY, s32 arg2)
void mtx_mirror_y(Matrix4f mtx)
void enable_actor_blur(Actor *actor)
void create_status_icon_peril(s32 iconID)
void part_flash_on(b32 arg0, ActorPart *part, s32 yaw, b32 arg3)
void add_part_decor_none(ActorPart *, s32)
void create_status_icon_danger(s32 iconID)
void create_status_chill_out(s32 iconID)
void add_part_decor_red_flames(ActorPart *, s32)
void remove_part_decor_fiery_trail(ActorPart *part, s32 idx)
void appendGfx_player_actor(void *arg0)
void appendGfx_enemy_actor_blur(void *data)
void reset_player_blur(void)
void reset_actor_blur(Actor *actor)
struct EffectInstance * disableEffect
struct EffectInstance * effect[2]
u16 ** originalPalettesList
#define ACTOR_BLUR_FRAMES
struct ActorBlueprint * actorBlueprint
struct ActorPart * partsTable
struct EffectInstance * icePillarEffect
u16 copiedPalettes[2][27][16]
u16 * adjustedPalettes[27]
DecorDataSparkles sparkles
struct ActorPart * nextPart
struct DecorationTable * decorationTable
DecorationData decorData[2]
DecorGoldenFlames goldenFlames
DecorBowserAura bowserAura
#define npc_raycast_down_sides
struct DisableXFXData * disableX
struct WaterBlockFXData * waterBlock
struct EnergyInOutFXData * energyInOut
struct StarsOrbitingFXData * starsOrbiting
struct WhirlwindFXData * whirlwind
struct PartnerBuffFXData * partnerBuff
struct Effect65FXData * unk_65
struct IcePillarFXData * icePillar
struct EndingDecalsFXData * endingDecals
@ FX_INSTANCE_FLAG_DISMISS
@ IMGFX_COLOR_BUF_SET_MODULATE
@ BS_FLAGS1_SHOW_PLAYER_DECORATIONS
@ ACTOR_PAL_ADJUST_BLEND_PALETTES_VARYING_INTERVALS
@ ACTOR_PAL_ADJUST_WATT_IDLE
@ ACTOR_PAL_ADJUST_POISON
@ ACTOR_PAL_ADJUST_BLEND_PALSETS
@ ACTOR_PAL_ADJUST_PARALYZE
@ ACTOR_PAL_ADJUST_WATT_ATTACK
@ ACTOR_PAL_ADJUST_PLAYER_POISON
@ ACTOR_PAL_ADJUST_BLEND_PALETTES_UNIFORM_INTERVALS
@ ACTOR_PAL_ADJUST_STATIC
@ ACTOR_PAL_ADJUST_PLAYER_DEBUFF
@ ACTOR_PAL_ADJUST_BERSERK
@ DAMAGE_INTENSITY_EXTREME
@ DAMAGE_INTENSITY_MEDIUM
@ ACTOR_DECORATION_SEEING_STARS
@ ACTOR_DECORATION_GREY_SMOKE_TRAIL
@ ACTOR_DECORATION_RED_FLAMES
@ ACTOR_DECORATION_WHIRLWIND
@ ACTOR_DECORATION_RADIAL_STAR_EMITTER
@ ACTOR_DECORATION_BOWSER_AURA
@ ACTOR_DECORATION_STEAM_EMITTER
@ ACTOR_DECORATION_GOLDEN_FLAMES
@ ACTOR_DECORATION_SPARKLES
@ ACTOR_DECORATION_FIRE_SMOKE_TRAIL
@ BS_FLAGS2_OVERRIDE_INACTIVE_PARTNER
@ BS_FLAGS2_PLAYER_TURN_USED
@ BS_FLAGS2_NO_PLAYER_PAL_ADJUST
@ BS_FLAGS2_OVERRIDE_INACTIVE_PLAYER
@ BS_FLAGS2_PARTNER_TURN_USED
@ BS_FLAGS2_HIDE_BUFF_COUNTERS
@ STATUS_KEY_INACTIVE_DIZZY
@ STATUS_KEY_INACTIVE_SLEEP
@ STATUS_KEY_INACTIVE_BERSERK
@ RENDER_MODE_SURFACE_XLU_LAYER3
@ ACTOR_FLAG_INVISIBLE
Actor is not rendered.
@ ACTOR_FLAG_NO_INACTIVE_ANIM
@ ACTOR_FLAG_BLUR_ENABLED
@ ACTOR_FLAG_NO_SHADOW
Hide shadow.
@ ACTOR_FLAG_SHOW_STATUS_ICONS
@ ACTOR_FLAG_UPSIDE_DOWN
HP bar offset below actor (e.g. Swooper when upside-down).
@ ACTOR_FLAG_NO_ATTACK
Skip attack turn.
@ ACTOR_FLAG_USING_IDLE_ANIM
@ ACTOR_PART_FLAG_NO_STATUS_ANIMS
@ ACTOR_PART_FLAG_NO_SHADOW
@ ACTOR_PART_FLAG_HAS_PAL_EFFECT
@ ACTOR_PART_FLAG_USE_ABSOLUTE_POSITION
@ ACTOR_PART_FLAG_NO_DECORATIONS
@ ACTOR_PART_FLAG_TRANSPARENT
@ ACTOR_PART_FLAG_INVISIBLE
void create_status_debuff(s32, s32)
void create_status_transparent(s32, s32)
s32 is_ability_active(s32 arg0)
s32 player_team_is_ability_active(Actor *actor, s32 ability)
void remove_status_icon_boost_hammer(s32)
void set_standard_shadow_scale(Shadow *shadow, f32 scale)
void create_status_static(s32, s32)
Shadow * get_shadow_by_index(s32 index)
void remove_status_icon_boost_jump(s32)
void remove_status_icon_peril(s32)
void set_actor_glow_pal(Actor *actor, s32 arg1)
void remove_status_icon_danger(s32)
#define NPC_DISPOSE_POS_Z
#define UNPACK_PAL_B(color)
#define UNPACK_PAL_R(color)
#define SPRITE_WORLD_SCALE_D
#define UNPACK_PAL_A(color)
#define NPC_DISPOSE_POS_X
#define NPC_DISPOSE_POS_Y
#define UNPACK_PAL_G(color)
#define PACK_PAL_RGBA(r, g, b, a)
s32 spr_draw_npc_sprite(s32 spriteInstanceID, s32 yaw, s32 arg2, PAL_PTR *paletteList, Matrix4f mtx)
s32 spr_update_sprite(s32 spriteInstanceID, s32 animID, f32 timeScale)
s32 spr_get_notify_value(s32 spriteIndex)
void set_npc_imgfx_all(s32 spriteIdx, ImgFXType imgfxType, s32 imgfxArg1, s32 imgfxArg2, s32 imgfxArg3, s32 imgfxArg4, s32 imgfxArg5)
s32 spr_get_npc_color_variations(s32 npcSpriteID)
void set_player_imgfx_all(s32 animID, ImgFXType imgfxType, s32 arg2, s32 arg3, s32 arg4, s32 arg5, s32 arg6)
PAL_PTR * spr_get_npc_palettes(s32 npcSpriteID)
s32 spr_draw_player_sprite(s32 spriteInstanceID, s32 yaw, s32 alphaIn, PAL_PTR *paletteList, Matrix4f mtx)
PAL_PTR * spr_get_player_palettes(s32 spriteIndex)
s32 spr_update_player_sprite(s32 spriteInstanceID, s32 animID, f32 timeScale)
#define SPR_PLAYER_COLOR_VARIATIONS
#define SPR_PEACH_BTL_PAL_STRIDE
@ DRAW_SPRITE_OVERRIDE_ALPHA
@ DRAW_SPRITE_OVERRIDE_PALETTES
ActorOffsets bActorOffsets[]
struct EffectInstance * waterBlockEffect
struct EffectInstance * cloudNineEffect
struct Actor * partnerActor
struct Actor * playerActor
struct Actor * enemyActors[24]
struct EffectInstance * buffEffect
GameStatus * gGameStatusPtr
BattleStatus gBattleStatus