Files
pmd-sky/asm/include/overlay_29_0232CEAC.inc
cecilarmitais ba4d07a4b1 Decomp ten stat-boost move effects; drop a conflicting Boost*Stat extern
DoMoveTag0x1AB, DoMoveDoubleTeam, DoMoveMinimize, DoMoveAmnesia,
DoMoveBoostAttack1, DoMoveBoostDefense1, DoMoveBoostDefense2, DoMoveDefenseCurl,
DoMoveGrowth and DoMoveFamish.

Eight forward to BoostOffensiveStat / BoostDefensiveStat / BoostHitChanceStat
with ATK_STAT_IDX or SPATK_STAT_IDX and a stage count. These take
struct StatIndex by value, per move_orb_effects.h, which is why the asm loads the
global's word into r2.

src/overlay_29_0232E250.c declared those globals as s32 and BoostDefensiveStat
with an (s32, s16) tail, both contradicting move_orb_effects.h. Since the two
declarations lived in different translation units the compiler never saw the
disagreement and the ROM still matched. Replaced with an include of the canonical
header; DoMoveDefendOrder is unchanged and still matches.

Authored by Claude (Opus 5) under human direction. All ten matched on the first
candidate once the canonical StatIndex signature was used. Confirmed by a
matching build: build/pmdsky.us/pmdsky.us.nds: OK. None carries a region
conditional, so US alone is sufficient.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-19 16:39:20 -07:00

7 lines
135 B
C++

#pragma once
.public CalcDamageFixedWrapper
.public GetDamageSourceWrapper
.public GetMoveCategory
.public GetMoveType
.public GetSize