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;
297 decorations->
yaw[i] = playerActor->
yaw;
363 decorations->
yaw[i] = actor->
yaw;
390 f32 rotX, rotY, rotZ;
401 decorations =
partTable->decorationTable;
457 }
else if (opacity < 100) {
460 }
else if (opacity < 150) {
494 for (i = 0; i < numParts; i++) {
504 decorations->
yaw[
j] = actor->
yaw;
533 f32 rotX, rotY, rotZ;
555 for (i = 0; i < numParts; i++) {
561 decorations =
partTable->decorationTable;
628 }
else if (opacity < 100) {
631 }
else if (opacity < 150) {
728 for (i = 0; i < numParts; i++) {
898 if (effect !=
NULL) {
961 for (i = 0; i < numParts; i++) {
1162 if (
part->spriteInstanceID >= 0) {
1212 if (
part->spriteInstanceID >= 0) {
1287 for (i = 0; i < numParts; i++) {
1313 if (
part->idleAnimations ==
NULL) {
1384 Actor* actor = data;
1411 shadow->
alpha = 128;
1536 if (effect !=
NULL) {
1883 f32 playerYaw = player->
yaw;
1887 dx +=
part->palAnimPosOffset[0];
1889 dy +=
part->palAnimPosOffset[1];
1891 part->yaw = playerYaw;
1933 if (
part->opacity < 255) {
1935 opacity =
part->opacity;
1939 opacity = opacity * 120 / 255;
1942 if (opacity == 255) {
1948 if (opacity == 255) {
1957 switch (
part->decorationTable->paletteAdjustment) {
2018 *dest = *
src | 0xFFFE;
2036 if (
part->opacity < 255) {
2038 opacity =
part->opacity;
2042 opacity = (opacity * 120) / 255;
2079 if (
part->opacity < 255) {
2081 opacity =
part->opacity;
2086 opacity = (opacity * 120) / 255;
2105 if (
part->opacity < 255) {
2107 opacity =
part->opacity;
2111 opacity = (opacity * 120) / 255;
2147 if (
part->opacity < 255) {
2149 opacity =
part->opacity;
2153 opacity = (opacity * 120) / 255;
2170 part->verticalStretch = 1;
2171 part->palAnimPosOffset[0] = 0;
2172 part->palAnimPosOffset[1] = 0;
2407 part->palAnimPosOffset[0] = 0;
2547 part->palAnimPosOffset[1] = 0;
2810 switch (brightness) {
2907 if (color2 !=
NULL) {
2909 *color1++ = *color2++;
3027 if (color2 !=
NULL) {
3029 *color1++ = *color2++;
3202 if (color2 !=
NULL) {
3204 *color1++ = *color2++;
3336 switch (
part->decorationTable->glowState) {
3349 if (
part->decorationTable->glowStateChanged) {
3350 part->decorationTable->glowStateChanged =
FALSE;
3393 if (
part->opacity < 255) {
3394 alpha =
part->opacity;
3397 alpha = (alpha * 120) / 255;
3401 color = (
rbuf[i] << 0x18) | (
gbuf[i] << 0x10) | (
bbuf[i] << 8) | alpha;
3416 switch (
part->decorationTable->flashState) {
3541 decorations =
actorPart->decorationTable;
3543 switch (decorations->
type[i]) {
3587 switch (decorations->
type[
idx]) {
3666 part->decorationTable->effect[
idx]->data.aura->fadeTime = 5;
3674 if (
part->yaw > 90.0f) {
3699 decorations =
part->decorationTable;
3755 part->decorationTable->effect[
idx]->data.aura->fadeTime = 5;
3844 part->curPos.y + 1.5f,
3867 y =
part->curPos.y + (
part->size.y / 2);
3868 z =
part->curPos.z - 5.0f;
3920 part->decorationTable->effect[
idx]->data.aura->fadeTime = 5;
3941 data->
pos.
y = (
part->curPos.y + (scale * 41.0f));
BSS s32 PopupMenu_SelectedIndex
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 StarsOrbitingFXData * starsOrbiting
struct IcePillarFXData * icePillar
struct EnergyInOutFXData * energyInOut
EffectInstanceDataPtr data
struct Effect65FXData * unk_65
struct PartnerBuffFXData * partnerBuff
struct EndingDecalsFXData * endingDecals
struct WhirlwindFXData * whirlwind
@ 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 Actor * partnerActor
struct Actor * playerActor
GameStatus * gGameStatusPtr
BattleStatus gBattleStatus