Misc decomp 53 (#703)

* some btl_state work

* msg_draw_speech_bubble

* cleaners

* btl_state_stuff

* btl_state_update_next_enemy wip

* btl_state stuff

* disable_x fx + cleanup

* wip

* fxstuff

* path funcs & cleanup

* clean

* model_api funcs

* two action commands

* action_cmd progress

* UnkFunc001

* air raid func

* cleanup, data migration, goodies

* remove data file

* git subrepo pull --force tools/splat

subrepo:
  subdir:   "tools/splat"
  merged:   "a847090eac"
upstream:
  origin:   "https://github.com/ethteck/splat.git"
  branch:   "master"
  commit:   "a847090eac"
git-subrepo:
  version:  "0.4.3"
  origin:   "https://github.com/ingydotnet/git-subrepo"
  commit:   "2f68596"

* fix build

* more cleanup

* clean

* PR comments
This commit is contained in:
Ethan Roseman 2022-05-05 10:08:16 -04:00 committed by GitHub
parent 8a170a33ac
commit 179998098c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
305 changed files with 7141 additions and 8252 deletions

1
.gitignore vendored
View File

@ -10,6 +10,7 @@ venv/
ctx.c
expected/
.vscode/launch.json
.vscode/*.log
/tools/star-rod
/tools/to_rename.txt
/ver/current

View File

@ -262,10 +262,10 @@ typedef struct PlayerData {
/* 0x29E */ s16 enemyFirstStrikes;
/* 0x2A0 */ u16 powerBounces;
/* 0x2A2 */ u16 battlesCount;
/* 0x2A4 */ s16 battlesWon;
/* 0x2A4 */ u16 battlesWon;
/* 0x2A6 */ s16 unk_2A6;
/* 0x2A8 */ s16 battlesFled;
/* 0x2AA */ s16 trainingsDone;
/* 0x2AA */ u16 trainingsDone;
/* 0x2AC */ s32 walkingStepsTaken;
/* 0x2B0 */ s32 runningStepsTaken;
/* 0x2B4 */ u32 totalCoinsEarned;
@ -928,7 +928,8 @@ typedef struct BattleStatus {
/* 0x049 */ char unk_49[3];
/* 0x04C */ s8 unk_4C[16];
/* 0x05C */ s8 unk_5C[16];
/* 0x06C */ char unk_6C[0x4];
/* 0x06C */ s16 unk_6C;
/* 0x06E */ s16 unk_6E;
/* 0x070 */ s16 menuDisableFlags; /* 1 = jump, 2 = hammer, 4 = items */
/* 0x072 */ char unk_72[2];
/* 0x074 */ s32 unk_74;
@ -949,7 +950,7 @@ typedef struct BattleStatus {
/* 0x089 */ s8 hpDrainCount;
/* 0x08A */ s8 nextMerleeSpellType;
/* 0x08B */ s8 hustleTurns; /* numTurns from hustle drink, normally 0 */
/* 0x08C */ char unk_8C;
/* 0x08C */ s8 unk_8C;
/* 0x08D */ s8 unk_8D;
/* 0x08E */ s8 initialEnemyCount; /* used for SP award bonus */
/* 0x08F */ char unk_8F[1];
@ -1219,7 +1220,7 @@ typedef struct ItemEntity {
/* 0x28 */ u32* savedReadPos;
/* 0x2C */ char unk_2C[2];
/* 0x2E */ u8 unkCounter;
/* 0x2F */ u8 unk_2F;
/* 0x2F */ u8 alpha;
/* 0x30 */ f32 scale;
/* 0x34 */ Vec3s unk_34;
/* 0x3A */ char unk_3A[2];
@ -1577,9 +1578,9 @@ typedef struct SelectableTarget {
/* 0x0C */ s16 unk_0C;
/* 0x0E */ s16 unk_0E;
/* 0x10 */ s8 unk_10;
/* 0x11 */ u8 homeCol; /* from xpos --> 0-3 */
/* 0x12 */ u8 homeRow; /* from ypos --> 0-3 */
/* 0x13 */ u8 layer; /* from zpos? --> 0-1 */
/* 0x11 */ s8 homeCol; /* from xpos --> 0-3 */
/* 0x12 */ s8 homeRow; /* from ypos --> 0-3 */
/* 0x13 */ s8 layer; /* from zpos? --> 0-1 */
} SelectableTarget; // size = 0x14
typedef struct ActorPartMovement {
@ -1779,15 +1780,6 @@ typedef struct DecorationTable {
/* 0x8C6 */ DecorationUnk unk_8C6[2];
} DecorationTable; // size = 0x8E8
typedef struct Encounter {
/* 0x00 */ s32 count;
/* 0x04 */ struct Enemy* enemy[16];
/* 0x44 */ s16 battle;
/* 0x46 */ s16 stage;
/* 0x48 */ s16 encounterID;
/* 0x4A */ char unk_4C[0x12];
} Encounter; // size = 0x5C
typedef struct PlayerPathElement {
/* 0x00 */ s8 isJumping;
/* 0x03 */ char unk_01[3];
@ -1884,7 +1876,7 @@ typedef struct Actor {
/* 0x120 */ s16 flyTime;
/* 0x122 */ s16 flyArcAmplitude;
/* 0x124 */ char unk_124[16];
/* 0x134 */ s8 unk_134;
/* 0x134 */ u8 unk_134;
/* 0x135 */ u8 footStepCounter;
/* 0x136 */ u8 actorType;
/* 0x137 */ char unk_137;
@ -1964,7 +1956,7 @@ typedef struct Actor {
/* 0x223 */ s8 chillOutAmount; /* attack reduction */
/* 0x224 */ s8 chillOutTurns;
/* 0x225 */ char unk_225[3];
/* 0x228 */ struct EffectInstance* unk_228;
/* 0x228 */ struct EffectInstance* icePillarEffect;
/* 0x22C */ struct SelectableTarget targetData[24];
/* 0x40C */ s8 targetListLength;
/* 0x40D */ s8 targetIndexList[24]; /* into targetData */
@ -1981,7 +1973,7 @@ typedef struct Actor {
/* 0x434 */ s16 renderMode; /* initially 0xD, set to 0x22 if any part is transparent */
/* 0x436 */ s16 hudElementDataIndex;
/* 0x438 */ s32 unk_438[2]; /* ??? see FUN_80253974 */
/* 0x440 */ struct EffectInstance* debuffIcon; // TODO: figure out the type of data field of debuffIcon
/* 0x440 */ struct EffectInstance* debuffEffect;
} Actor; // size = 0x444
typedef struct BackgroundHeader {
@ -2046,7 +2038,7 @@ typedef struct PlayerStatus {
/* 0x0BC */ u16 unk_BC;
/* 0x0BE */ s8 renderMode;
/* 0x0BF */ s8 unk_BF;
/* 0x0C0 */ s16 decorationList;
/* 0x0C0 */ s16 timeInAir;
/* 0x0C2 */ s16 unk_C2;
/* 0x0C4 */ char unk_C4;
/* 0x0C5 */ s8 unk_C5;
@ -2071,49 +2063,6 @@ typedef struct PlayerStatus {
/* 0x281 */ char unk_281[7];
} PlayerStatus; // size = 0x288
typedef struct EncounterStatus {
/* 0x000 */ s32 flags;
/* 0x004 */ s8 eFirstStrike; /* 0 = none, 1 = player, 2 = enemy */
/* 0x005 */ s8 hitType; /* 1 = none/enemy, 2 = jump */
/* 0x006 */ s8 hitTier; /* 0 = normal, 1 = super, 2 = ultra */
/* 0x007 */ char unk_07;
/* 0x008 */ s8 unk_08;
/* 0x009 */ s8 battleOutcome; /* 0 = won, 1 = lost */
/* 0x00A */ s8 unk_0A;
/* 0x00B */ s8 merleeCoinBonus; /* triple coins when != 0 */
/* 0x00C */ u8 damageTaken; /* valid after battle */
/* 0x00D */ char unk_0D;
/* 0x00E */ s16 coinsEarned; /* valid after battle */
/* 0x010 */ char unk_10;
/* 0x011 */ u8 allowFleeing;
/* 0x012 */ s8 unk_12;
/* 0x013 */ u8 dropWhackaBump;
/* 0x014 */ s32 songID;
/* 0x018 */ s32 unk_18;
/* 0x01C */ s8 numEncounters; /* number of encounters for current map (in list) */
/* 0x01D */ s8 currentAreaIndex;
/* 0x01E */ u8 currentMapIndex;
/* 0x01F */ u8 currentEntryIndex;
/* 0x020 */ s8 mapID;
/* 0x021 */ s8 resetMapEncounterFlags;
/* 0x021 */ char unk_22[2];
/* 0x024 */ s32* npcGroupList;
/* 0x028 */ struct Encounter* encounterList[24];
/* 0x088 */ struct Encounter* currentEncounter;
/* 0x08C */ struct Enemy* currentEnemy;
/* 0x090 */ s32 fadeOutAmount;
/* 0x094 */ s32 unk_94;
/* 0x098 */ s32 fadeOutAccel;
/* 0x09C */ s32 battleStartCountdown;
/* 0x0A0 */ s8 unk_A0;
/* 0x0A1 */ char unk_A1[0x1];
/* 0x0A2 */ s16 unk_A2;
/* 0x0A4 */ char unk_A4[0xC];
/* 0x0B0 */ s32 defeatFlags[60][12];
/* 0xFB0 */ s16 recentMaps[2];
/* 0xFB4 */ char unk_FB4[4];
} EncounterStatus; // size = 0xFB8
typedef struct SaveDataHeader {
/* 0x0000 */ char magicString[16]; /* "Mario Story 006" string */
/* 0x0010 */ s8 pad[0x20]; /* always zero */
@ -2162,9 +2111,9 @@ typedef struct SaveData {
/* 0x1304 */ char unk_1304[0x7C];
} SaveData; // size = 0x1380
typedef struct {
typedef struct Path {
/* 0x00 */ s32 numVectors;
/* 0x04 */ s32 unk_04;
/* 0x04 */ f32* unk_04;
/* 0x08 */ Vec3f* staticVectorList;
/* 0x0C */ Vec3f* vectors;
/* 0x10 */ s32 timeElapsed;

View File

@ -602,6 +602,25 @@ typedef struct FireFlowerFXData {
/* 0x40 */ Vec3i unk_40;
} FireFlowerFXData; // size = 0x4C
typedef struct DisableXFXData {
/* 0x00 */ s32 type;
/* 0x04 */ s32 unk_04;
/* 0x08 */ Vec3f pos;
/* 0x14 */ f32 unk_14;
/* 0x18 */ f32 unk_18;
/* 0x1C */ f32 unk_1C;
/* 0x20 */ f32 unk_20;
/* 0x24 */ s32 alpha;
/* 0x28 */ s32 unk_28;
/* 0x2C */ s32 unk_2C;
/* 0x30 */ f32 unk_30;
/* 0x34 */ f32 scale;
/* 0x38 */ s32 unk_38;
/* 0x3C */ s32 unk_3C;
/* 0x40 */ f32 unk_40;
/* 0x44 */ s32 unk_44;
} DisableXFXData; // size = 0x48
typedef struct FireBreathFXData {
/* 0x00 */ s32 type;
/* 0x04 */ s32 numChildren;
@ -783,7 +802,7 @@ typedef struct EffectDataQuizStage {
typedef struct EffectDataQuizVannaT {
/* 0x00 */ char unk_00[0x4];
/* 0x04 */ Vec3f position;
/* 0x10 */ s32 vanishTimer;
/* 0x10 */ s32 vanishTimer;
/* 0x14 */ s32 lifetime;
/* 0x18 */ s32 fadeInAmt; // 0 = all-black, FF = fully-visible
/* 0x1C */ s32 anim;

View File

@ -93,7 +93,7 @@ FX_MAIN(fx_3D_main);
void blast_main(s32, f32, f32, f32, f32, s32);
EffectInstance* fire_flower_main(s32, f32, f32, f32, s32);
FX_MAIN(recover_main);
FX_MAIN(disable_x_main);
EffectInstance* disable_x_main(s32, f32, f32, f32, s32);
FX_MAIN(bombette_breaking_main);
FX_MAIN(firework_main);
FX_MAIN(confetti_main);

View File

@ -2600,6 +2600,7 @@ enum BattleStatusFlags2 {
BS_FLAGS2_400 = 0x00000400,
BS_FLAGS2_800 = 0x00000800,
BS_FLAGS2_NO_TARGET_AVAILABLE = 0x00001000,
BS_FLAGS2_10000 = 0x00010000,
BS_FLAGS2_1000000 = 0x01000000,
BS_FLAGS2_2000000 = 0x02000000,
BS_FLAGS2_4000000 = 0x04000000,
@ -2660,13 +2661,42 @@ enum BattleStates2 {
BATTLE_STATE2_PLAYER_DEFEATED = 0x0000000A,
BATTLE_STATE2_UNK_B = 0x0000000B,
BATTLE_STATE2_UNK_C = 0x0000000C,
BATTLE_STATE2_UNK_D = 0x0000000D,
BATTLE_STATE2_UNK_E = 0x0000000E,
BATTLE_STATE2_UNK_F = 0x0000000F,
BATTLE_STATE2_UNK_10 = 0x00000010,
BATTLE_STATE2_UNK_14 = 0x00000014,
BATTLE_STATE2_UNK_15 = 0x00000015,
BATTLE_STATE2_UNK_16 = 0x00000016,
BATTLE_STATE2_UNK_17 = 0x00000017,
BATTLE_STATE2_UNK_18 = 0x00000018,
BATTLE_STATE2_UNK_1E = 0x0000001E,
BATTLE_STATE2_UNK_1F = 0x0000001F,
BATTLE_STATE2_UNK_20 = 0x00000020,
BATTLE_STATE2_UNK_21 = 0x00000021,
BATTLE_STATE2_UNK_22 = 0x00000022,
BATTLE_STATE2_UNK_28 = 0x00000028,
BATTLE_STATE2_UNK_29 = 0x00000029,
BATTLE_STATE2_UNK_2A = 0x0000002A,
BATTLE_STATE2_UNK_2B = 0x0000002B,
BATTLE_STATE2_UNK_2C = 0x0000002C,
BATTLE_STATE2_UNK_33 = 0x00000033,
BATTLE_STATE2_UNK_34 = 0x00000034,
BATTLE_STATE2_UNK_35 = 0x00000035,
BATTLE_STATE2_UNK_36 = 0x00000036,
BATTLE_STATE2_UNK_3D = 0x0000003D,
BATTLE_STATE2_UNK_3E = 0x0000003E,
BATTLE_STATE2_UNK_3F = 0x0000003F,
BATTLE_STATE2_UNK_40 = 0x00000040,
BATTLE_STATE2_UNK_41 = 0x00000041,
BATTLE_STATE2_UNK_46 = 0x00000046,
BATTLE_STATE2_UNK_64 = 0x00000064,
BATTLE_STATE2_UNK_C8 = 0x000000C8,
BATTLE_STATE2_UNK_C9 = 0x000000C9,
BATTLE_STATE2_UNK_CA = 0x000000CA,
BATTLE_STATE2_UNK_CB = 0x000000CB,
BATTLE_STATE2_UNK_CC = 0x000000CC,
BATTLE_STATE2_UNK_CD = 0x000000CD,
};
enum DebuffTypes {

View File

@ -388,7 +388,7 @@ s32 is_point_within_region(s32 shape, f32 pointX, f32 pointY, f32 centerX, f32 c
PlayerData* get_player_data(void);
s32 npc_raycast_down_around(s32, f32*, f32*, f32*, f32*, f32, f32);
s32 npc_raycast_down_sides(s32, f32*, f32*, f32*, f32*);
s32 npc_raycast_down_sides(s32 ignoreFlags, f32* posX, f32* posY, f32* posZ, f32* hitDepth);
s32 npc_raycast_up(s32, f32*, f32*, f32*, f32*);
s32 player_raycast_up_corners(PlayerStatus*, f32*, f32*, f32*, f32*, f32);
s32 player_raycast_below_cam_relative(PlayerStatus* playerStatus, f32* outX, f32* outY, f32* outZ, f32* outLength,
@ -412,6 +412,10 @@ void partner_clear_player_tracking(Npc* partner);
void set_background_color_blend(u8 r, u8 g, u8 b, u8 a);
void partner_set_tether_distance(f32);
void btl_delete_player_actor(Actor* player);
void kill_all_scripts(void);
s32 does_script_exist(s32 id);
s32 does_script_exist_by_ref(Evt* script);
Evt* start_script(EvtScript* source, s32 priority, s32 initialState);
@ -476,6 +480,8 @@ s32 check_input_hammer(void);
Npc* resolve_npc(Evt* script, s32 npcIdOrPtr);
void enable_npc_blur(Npc* npc);
void disable_npc_blur(Npc* npc);
void enable_partner_blur(void);
void disable_partner_blur(void);
f32 dist2D(f32 ax, f32 ay, f32 bx, f32 by);
f32 dist3D(f32 ax, f32 ay, f32 az, f32 bx, f32 by, f32 bz);
@ -560,6 +566,7 @@ void load_partner_actor(void);
void dispatch_event_partner(s32);
void dispatch_event_player(s32);
s32 btl_are_all_enemies_defeated(void);
s32 btl_check_enemies_defeated(void);
s32 btl_check_player_defeated(void);
void btl_show_battle_message(s32, s32);
void btl_update_ko_status(void);
@ -789,6 +796,7 @@ s32 get_defense(Actor* actor, s32* defenseTable, s32 elementFlags);
void func_8024EDC0(void);
void remove_all_effects(void);
void update_effects(void);
void update_cameras(void);
void clear_render_tasks(void);

View File

@ -157,6 +157,8 @@ void update_model_animator(s32);
void update_model_animator_with_transform(s32 animatorID, Mtx* mtx);
void set_mdl_custom_gfx_set(Model*, s32, u32);
s32 step_model_animator(ModelAnimator* animator);
AnimatorNode* get_animator_node_for_tree_index(ModelAnimator* animator, s32 treeIndex);
AnimatorNode* get_animator_node_with_id(ModelAnimator* animator, s32 id);
void animator_update_model_transforms(ModelAnimator* animator, Mtx* rootTransform);
void render_animated_model(s32 animatorID, Mtx* rootTransform);
void animator_node_update_model_transform(ModelAnimator* animator, f32 (*flipMtx)[4], AnimatorNode* node,

View File

@ -243,7 +243,7 @@ typedef struct Enemy {
/* 0x0A */ s16 spawnPos[3];
/* 0x10 */ Vec3s unk_10;
/* 0x16 */ char unk_16[2];
/* 0x18 */ struct NpcSettings* npcSettings;
/* 0x18 */ NpcSettings* npcSettings;
/* 0x1C */ EvtScript* initBytecode;
/* 0x20 */ EvtScript* interactBytecode;
/* 0x24 */ EvtScript* aiBytecode;
@ -287,6 +287,60 @@ typedef struct Enemy {
/* 0xDC */ char unk_DC[20];
} Enemy; // size = 0xF0
typedef struct Encounter {
/* 0x00 */ s32 count;
/* 0x04 */ Enemy* enemy[16];
/* 0x44 */ s16 battle;
/* 0x46 */ s16 stage;
/* 0x48 */ s16 encounterID;
/* 0x4A */ char unk_4C[0x12];
} Encounter; // size = 0x5C
typedef struct EncounterStatus {
/* 0x000 */ s32 flags;
/* 0x004 */ s8 eFirstStrike; /* 0 = none, 1 = player, 2 = enemy */
/* 0x005 */ s8 hitType; /* 1 = none/enemy, 2 = jump */
/* 0x006 */ s8 hitTier; /* 0 = normal, 1 = super, 2 = ultra */
/* 0x007 */ char unk_07;
/* 0x008 */ s8 unk_08;
/* 0x009 */ s8 battleOutcome; /* 0 = won, 1 = lost */
/* 0x00A */ s8 unk_0A;
/* 0x00B */ s8 merleeCoinBonus; /* triple coins when != 0 */
/* 0x00C */ u8 damageTaken; /* valid after battle */
/* 0x00D */ char unk_0D;
/* 0x00E */ s16 coinsEarned; /* valid after battle */
/* 0x010 */ char unk_10;
/* 0x011 */ u8 allowFleeing;
/* 0x012 */ s8 unk_12;
/* 0x013 */ u8 dropWhackaBump;
/* 0x014 */ s32 songID;
/* 0x018 */ s32 unk_18;
/* 0x01C */ s8 numEncounters; /* number of encounters for current map (in list) */
/* 0x01D */ s8 currentAreaIndex;
/* 0x01E */ u8 currentMapIndex;
/* 0x01F */ u8 currentEntryIndex;
/* 0x020 */ s8 mapID;
/* 0x021 */ s8 resetMapEncounterFlags;
/* 0x021 */ char unk_22[2];
/* 0x024 */ s32* npcGroupList;
/* 0x028 */ Encounter* encounterList[24];
/* 0x088 */ Encounter* currentEncounter;
/* 0x08C */ Enemy* currentEnemy;
/* 0x090 */ s32 fadeOutAmount;
/* 0x094 */ s32 unk_94;
/* 0x098 */ s32 fadeOutAccel;
/* 0x09C */ s32 battleStartCountdown;
/* 0x0A0 */ s8 unk_A0;
/* 0x0A1 */ char unk_A1[0x1];
/* 0x0A2 */ s16 unk_A2;
/* 0x0A4 */ char unk_A4[0xC];
/* 0x0B0 */ s32 defeatFlags[60][12];
/* 0xFB0 */ s16 recentMaps[2];
/* 0xFB4 */ char unk_FB4[4];
} EncounterStatus; // size = 0xFB8
extern EncounterStatus gCurrentEncounter;
s32 basic_ai_check_player_dist(EnemyDetectVolume* arg0, Enemy* arg1, f32 arg2, f32 arg3, s8 arg4);
/// The default Npc::onUpdate and Npc::onRender callback.

View File

@ -210,7 +210,7 @@ extern ALBankFile* nuAuSndBank_ptr;
extern ALSndId* nuAuSndId;
extern ALSynConfig nuAuSynConfig;
extern ALSeqpConfig nuAuSeqpConfig;
extern ALSndpConfig nuAnSndpConfig;
extern ALSndpConfig nuAuSndpConfig;
extern u8 nuAuTaskStop;
extern u8 nuAuPreNMI;
extern NUAuPreNMIFunc nuAuPreNMIFunc;
@ -239,9 +239,6 @@ extern u32 nuAuDebAcmdLenMax; /* Maximum length of the audio command list */
extern s16 nuAuFrameSampleSize; /* Number of samples created at one time */
extern s16 nuAuExtraSampleSize; /* Number of extra samples */
extern ALSynConfig nuAuSynConfig;
extern ALSeqpConfig nuAuSeqpConfig;
extern ALSndpConfig nuAuSndpConfig;
/*----------------------------------------------------------------------*/
/*----------------------------------------------------------------------*/

View File

@ -78,7 +78,6 @@ extern CollisionData gCollisionData;
extern s8 D_800A0900;
extern f32 GravityParamsStartFall[];
extern s16 D_800F7B80;
extern EncounterStatus gCurrentEncounter;
extern u8* D_801512F0;
extern s16 D_80151308;
extern s32 gEntityHideMode;

View File

@ -6,3 +6,4 @@ colorama
ninja_syntax
msgpack
pylibyaml
tqdm

File diff suppressed because it is too large Load Diff

View File

@ -1024,7 +1024,7 @@ void btl_delete_actor(Actor* actor) {
delete_shadow(actor->shadow.id);
remove_all_status_icons(actor->hudElementDataIndex);
remove_effect(actor->debuffIcon); // ???
remove_effect(actor->debuffEffect);
if (actor->unk_200 != NULL) {
actor->unk_200[3][9] = 0;
@ -1067,7 +1067,7 @@ void btl_delete_player_actor(Actor* player) {
delete_shadow(player->shadow.id);
remove_all_status_icons(player->hudElementDataIndex);
remove_effect(player->debuffIcon); // ???
remove_effect(player->debuffEffect);
if (player->unk_200 != NULL) {
player->unk_200[3][9] = 0;

View File

@ -2064,8 +2064,8 @@ void load_player_actor(void) {
player->shadow.id = create_shadow_type(0, player->currentPos.x, player->currentPos.y, player->currentPos.z);
player->shadowScale = player->size.x / 24.0;
player->hudElementDataIndex = create_status_icon_set();
player->debuffIcon = fx_disable_x(0, -142.0f, 34.0f, 1.0f, 0);
player->unk_228 = NULL;
player->debuffEffect = fx_disable_x(0, -142.0f, 34.0f, 1.0f, 0);
player->icePillarEffect = NULL;
if (is_ability_active(ABILITY_ZAP_TAP)) {
player->staticStatus = STATUS_STATIC;
@ -2318,8 +2318,8 @@ void load_partner_actor(void) {
partnerActor->shadow.id = create_shadow_type(0, partnerActor->currentPos.x, partnerActor->currentPos.y, partnerActor->currentPos.z);
partnerActor->shadowScale = partnerActor->size.x / 24.0;
partnerActor->hudElementDataIndex = create_status_icon_set();
partnerActor->debuffIcon = fx_disable_x(0, -142.0f, 34.0f, 1.0f, 0);
partnerActor->unk_228 = NULL;
partnerActor->debuffEffect = fx_disable_x(0, -142.0f, 34.0f, 1.0f, 0);
partnerActor->icePillarEffect = NULL;
takeTurnScript = start_script(partnerActor->takeTurnScriptSource, EVT_PRIORITY_A, 0);
partnerActor->takeTurnID = takeTurnScript->id;
@ -2589,8 +2589,8 @@ Actor* create_actor(Formation formation) {
takeTurnScript->owner1.enemyID = actor->enemyIndex | 0x200;
actor->shadow.id = create_shadow_type(0, actor->currentPos.x, actor->currentPos.y, actor->currentPos.z);
actor->shadowScale = actor->size.x / 24.0;
actor->debuffIcon = fx_disable_x(0, -142.0f, 34.0f, 1.0f, 0);
actor->unk_228 = NULL;
actor->debuffEffect = fx_disable_x(0, -142.0f, 34.0f, 1.0f, 0);
actor->icePillarEffect = NULL;
actor->hudElementDataIndex = create_status_icon_set();
return actor;
}
@ -2754,7 +2754,7 @@ s32 inflict_status(Actor* target, s32 statusTypeKey, s32 duration) {
if (target->debuff != statusTypeKey) {
target->status = statusTypeKey;
}
((s32*)target->debuffIcon->data)[15] = 0;
((DisableXFXData*)target->debuffEffect->data)->unk_3C = 0;
target->debuff = statusTypeKey;
target->debuffDuration = duration;
if ((s8)duration > 9) {
@ -2764,11 +2764,11 @@ s32 inflict_status(Actor* target, s32 statusTypeKey, s32 duration) {
switch (statusTypeKey) {
case STATUS_FROZEN:
if (target->actorID != ACTOR_PARTNER) {
effect = target->unk_228;
effect = target->icePillarEffect;
if (effect != NULL) {
effect->flags |= EFFECT_INSTANCE_FLAGS_10;
}
target->unk_228 = fx_ice_pillar(0, target->currentPos.x, target->currentPos.y,
target->icePillarEffect = fx_ice_pillar(0, target->currentPos.x, target->currentPos.y,
target->currentPos.z, 1.0f, 0);
create_status_debuff(target->hudElementDataIndex, STATUS_FROZEN);
}
@ -3502,7 +3502,7 @@ void btl_update_ko_status(void) {
player->koDuration = player->debuffDuration;
if (player->koDuration > 0) {
player->koStatus = STATUS_DAZE;
((s32*)player->debuffIcon->data)[15] = player->koDuration;
((DisableXFXData*)player->debuffEffect->data)->unk_3C = player->koDuration;
if (koDuration == 0) {
sfx_play_sound(SOUND_2107);
@ -3517,7 +3517,7 @@ void btl_update_ko_status(void) {
if (partner->koDuration > 0) {
partner->koStatus = STATUS_DAZE;
((s32*)partner->debuffIcon->data)[15] = partner->koDuration;
((DisableXFXData*)partner->debuffEffect->data)->unk_3C = partner->koDuration;
}
}
@ -3528,7 +3528,7 @@ void btl_update_ko_status(void) {
enemy->koDuration = enemy->debuffDuration;
if (enemy->koDuration > 0) {
enemy->koStatus = STATUS_DAZE;
((s32*)enemy->debuffIcon->data)[15] = enemy->koDuration;
((DisableXFXData*)enemy->debuffEffect->data)->unk_3C = enemy->koDuration;
}
}
}

View File

@ -1997,7 +1997,7 @@ ApiStatus ClearStatusEffects(Evt* script, s32 isInitialCall) {
actor->koStatus = 0;
actor->koDuration = 0;
((s32*)actor->debuffIcon->data)[15] = 0;
((DisableXFXData*)actor->debuffEffect->data)->unk_3C = 0;
actor->attackBoost = 0;
actor->defenseBoost = 0;
actor->isGlowing = 0;

View File

@ -5,6 +5,7 @@
#include "hud_element.h"
extern s32 D_80077C40;
extern EnemyDrops D_80077EB8;
extern s8 D_8009A654;
extern s16 D_8009A668;

View File

@ -1,6 +1,8 @@
#include "common.h"
#include "hud_element.h"
extern s32 D_8008FA78;
extern HudScript HudScript_YellowArrow[];
extern HudScript HudScript_MenuFlee[];
@ -83,7 +85,9 @@ extern HudScript HudScript_MoveBlueOrbDisabled[];
extern HudScript HudScript_MoveGreenOrbDisabled[];
extern HudScript HudScript_MoveRedOrbDisabled[];
extern u8 D_802AD000;
extern s32 D_802ACC60;
extern s32 D_802ACC6C;
extern s8 D_802AD000;
extern u8 D_802AD001;
extern s16 D_802AD006;
extern s16 D_802AD008;
@ -99,6 +103,16 @@ extern s32 D_802AD054;
extern s32 D_802AD058;
extern s8 D_802AD068;
extern s32 main_menu_numOptions;
extern s32 D_802AD0A8;
extern s32 D_802AD0B0;
extern s32 D_802AD0BB[];
extern s32 D_802AD100;
extern s32 D_802AD104;
extern s32 battle_menu_isEnabled;
extern s32 battle_menu_isMessageDisabled;
extern s32 battle_menu_messageIDs[];
extern s32 battle_menu_submenuIDs;
extern HudScript* main_battle_menu_JumpHudScripts;
extern s8 D_802AD10A;
extern s8 D_802AD10D;
extern s8 D_802AD10E;
@ -149,7 +163,7 @@ extern s32 D_802AD690[];
extern s32 D_802AD6C0[];
extern s32 D_802AD6D4;
s16 D_802AB340[] = { 0x001C, 0x0028 };
s16 D_802AB340[] = { 28, 40 };
s16 D_802AB344[] = { 0, -2 };
@ -169,22 +183,28 @@ HudScript* battle_menu_ItemHudScripts[] = { HudScript_MenuItem, HudScript_MenuIt
HudScript* battle_menu_StarPowerHudScripts[] = { HudScript_MenuStarPower, HudScript_MenuStarPowerDisabled };
HudScript* battle_menu_StarPowerMovesHudScripts[] = { HudScript_MenuStarPower, HudScript_MenuStarPowerDisabled, HudScript_Eldstar, HudScript_EldstarDisabled,
HudScript* battle_menu_StarPowerMovesHudScripts[] = {
HudScript_MenuStarPower, HudScript_MenuStarPowerDisabled, HudScript_Eldstar, HudScript_EldstarDisabled,
HudScript_Mamar, HudScript_MamarDisabled, HudScript_Skolar, HudScript_SkolarDisabled,
HudScript_Muskular, HudScript_MuskularDisabled, HudScript_Misstar, HudScript_MisstarDisabled,
HudScript_Klevar, HudScript_KlevarDisabled, HudScript_Kalmar, HudScript_KalmarDisabled,
HudScript_StarBeam, HudScript_StarBeamDisabled, HudScript_PeachBeam, HudScript_PeachBeamDisabled,
HudScript_MenuStarPower, HudScript_MenuStarPowerDisabled, HudScript_MenuStarPower, HudScript_MenuStarPowerDisabled };
HudScript_MenuStarPower, HudScript_MenuStarPowerDisabled, HudScript_MenuStarPower, HudScript_MenuStarPowerDisabled
};
HudScript* battle_menu_PartnerHudScripts[] = { HudScript_Partner0, HudScript_Goombario, HudScript_Kooper, HudScript_Bombette,
HudScript* battle_menu_PartnerHudScripts[] = {
HudScript_Partner0, HudScript_Goombario, HudScript_Kooper, HudScript_Bombette,
HudScript_Parakarry, HudScript_Partner0, HudScript_Watt, HudScript_Sushie,
HudScript_Lakilester, HudScript_Bow, HudScript_PartnerA, HudScript_PartnerA,
HudScript_PartnerA, HudScript_PartnerA, HudScript_PartnerA, HudScript_PartnerA };
HudScript_PartnerA, HudScript_PartnerA, HudScript_PartnerA, HudScript_PartnerA
};
HudScript* battle_menu_DisabledPartnerHudScripts[] = { HudScript_Partner0Disabled, HudScript_GoombarioDisabled, HudScript_KooperDisabled, HudScript_BombetteDisabled,
HudScript* battle_menu_DisabledPartnerHudScripts[] = {
HudScript_Partner0Disabled, HudScript_GoombarioDisabled, HudScript_KooperDisabled, HudScript_BombetteDisabled,
HudScript_ParakarryDisabled, HudScript_Partner0Disabled, HudScript_WattDisabled, HudScript_SushieDisabled,
HudScript_LakilesterDisabled, HudScript_BowDisabled, HudScript_PartnerADisabled, HudScript_PartnerADisabled,
HudScript_PartnerADisabled, HudScript_PartnerADisabled, HudScript_PartnerADisabled, HudScript_PartnerADisabled };
HudScript_PartnerADisabled, HudScript_PartnerADisabled, HudScript_PartnerADisabled, HudScript_PartnerADisabled
};
HudScript* battle_menu_StrategiesHudScript[] = { HudScript_MenuStrategies };
@ -219,9 +239,15 @@ s32 D_802AB4F0[] = { 0x2, 0x1, 0x4, 0x6, 0x3, 0x5, 0x1A, 0x3, 0x34, 0x39, 0x31,
// s8 D_802AB513
s32 D_802AB520[] = { 0x00000000, 0x00090012, 0x000A001A, 0x000B001C, 0x000C0017, 0x009D0001, 0x000E000B, 0x000F0012, 0x00100003, 0x000D0000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 };
s32 D_802AB520[] = {
0x00000000, 0x00090012, 0x000A001A, 0x000B001C, 0x000C0017, 0x009D0001, 0x000E000B, 0x000F0012, 0x00100003,
0x000D0000, 0x00000000, 0x00000000, 0x00000000, 0x00000000
};
s32 D_802AB558[] = { 0x00000000, 0x00090002, 0x000A0005, 0x000B0006, 0x000C0002, 0x009D0002, 0x000E0002, 0x000F0002, 0x00100002, 0x000D0002, 0x00000000, 0x00000000, 0x00000000, 0x00000000 };
s32 D_802AB558[] = {
0x00000000, 0x00090002, 0x000A0005, 0x000B0006, 0x000C0002, 0x009D0002, 0x000E0002, 0x000F0002, 0x00100002,
0x000D0002, 0x00000000, 0x00000000, 0x00000000, 0x00000000
};
HudScript* battle_menu_PartnerMoveHudScripts[] = {
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
@ -245,7 +271,10 @@ HudScript* battle_menu_TwinkStarPowerHudScripts[] = { HudScript_MenuStarPower, H
// Dash
s32 D_802AB734[] = { 0x001D0057 };
s32 D_802AB738[] = { 0x00000000, 0x001D0007, 0x001D0008, 0x001D0009, 0x001D000A, 0x001D000B, 0x001D000C, 0x001D000D, 0x001D000E, 0x001D000F, 0x001D0010, 0x001D0011, 0x001D0012, 0x00000000 };
s32 D_802AB738[] = {
0x00000000, 0x001D0007, 0x001D0008, 0x001D0009, 0x001D000A, 0x001D000B, 0x001D000C, 0x001D000D, 0x001D000E,
0x001D000F, 0x001D0010, 0x001D0011, 0x001D0012, 0x00000000
};
void func_802A1000(void) {
D_802AD006 = 255;
@ -296,10 +325,212 @@ void func_802A10B8(void) {
hud_element_free(D_802AD058);
}
s32 func_802A11B0(void);
INCLUDE_ASM(s32, "415D90", func_802A11B0);
void btl_draw_menu_wheel(void);
// various issues
#ifdef NON_MATCHING
extern s8 D_802AD002;
extern s8 D_802AD004;
extern s16 D_802AD00A;
extern s32 D_802AD060;
extern s32 D_802AD064;
extern s8 D_802AD06B;
extern f32 D_802AD06C;
extern f32 D_802AD070;
void btl_draw_menu_wheel(void) {
s32 id;
s32 opacity;
f32 temp_f24;
f32 theta;
s32 cond;
f32 x;
f32 y;
f32 scale;
s32 i;
s32 new_var;
switch (D_802AD000) {
case 1:
func_80144218(-1);
id = D_802AD048;
hud_element_set_transform_rotation(id, 0.0f, 0.0f, 0.0f);
hud_element_set_alpha(id, (D_802AD006 * 254) / 255);
hud_element_set_render_pos(id, 3940 - D_802AD00A, D_802AD00A + 212);
func_80144238(id);
id = D_802AD044;
hud_element_set_alpha(id, (D_802AD006 * 254) / 255);
hud_element_set_render_pos(id, 40 - D_802AD00A, D_802AD00A + 212);
func_80144238(id);
break;
case -1:
case 2:
case 10:
case 20:
case 30:
opacity = (D_802AD006 * D_802AD008) / 255;
func_80144218(-1);
temp_f24 = (D_802AD100 - D_802AD002) * 28;
cond = FALSE;
if (D_802AD06C > temp_f24) {
D_802AD06C -= D_802AD070;
if (D_802AD06C < temp_f24) {
D_802AD06C = temp_f24;
cond = TRUE;
}
} else if (D_802AD06C < temp_f24) {
D_802AD06C += D_802AD070;
if (D_802AD06C > temp_f24) {
D_802AD06C = temp_f24;
cond = TRUE;
}
} else {
cond = TRUE;
}
if (!cond) {
D_802AD070 = (D_802AD070 * (D_802AD070 + 1.0) * (D_802AD070 + 1.0));
} else {
D_802AD004 = 0;
D_802AD070 = 0.3f;
}
theta = D_802AD06C;
for (i = 0; i < main_menu_numOptions; i++, theta += 28.0f) {
x = 0.0f;
y = 0.0f;
add_vec2D_polar(&x, &y, 87.0f, theta);
id = D_802AD028[i];
x = D_802AD060 + x;
y = D_802AD064 + y;
hud_element_set_transform_pos(id, x, -y, 0.0f);
hud_element_set_render_pos(id, 0, 0);
hud_element_set_alpha(id, (opacity * 150) / 255);
if (theta == 56.0f && cond == TRUE) {
hud_element_set_scale(id, 1.6f);
} else {
hud_element_set_scale(id, 1.0f);
}
func_80144238(id);
if (i == D_802AD06B + D_802AD002) {
x = 0.0f;
y = 0.0f;
add_vec2D_polar(&x, &y, 87.0f, 56.0f);
x = D_802AD060 + x;
y = D_802AD064 + y;
id = D_802AD040;
hud_element_set_transform_pos(id, x, -y, 0.0f);
hud_element_set_render_pos(id, 0, 0);
hud_element_set_alpha(id, (opacity * 180) / 255);
hud_element_set_scale(id, 1.2f);
if (!cond) {
hud_element_set_flags(id, 2);
} else {
hud_element_clear_flags(id, 2);
}
func_80144238(id);
}
}
scale = (fabsf(fabsf((D_802AD06C - ((D_802AD100 - D_802AD002) * 28)) * (45.0 / 28.0)) - 22.5) / 22.5) + 0.01;
if (cond) {
scale = 1.0f;
}
id = D_802AD04C;
hud_element_set_transform_rotation_pivot(id, 0, 0);
hud_element_set_transform_rotation(id, 0.0f, 0.0f, -43.0f);
hud_element_set_scale(id, scale);
hud_element_set_transform_scale(id, 1.0f, 1.8f, 1.0f);
hud_element_set_alpha(id, (opacity * 200) / 255);
hud_element_set_render_pos(id, 79, 176);
func_80144238(id);
id = D_802AD048;
scale = (D_802AD06C - ((D_802AD100 - D_802AD002) * 28)) * (45.0 / 28.0);
hud_element_set_transform_rotation(id, 0.0f, 0.0f, -scale);
hud_element_set_transform_rotation_pivot(id, 18, -20);
hud_element_set_scale(id, 0.95f);
hud_element_set_alpha(id, (opacity * 254) / 255);
hud_element_set_render_pos(id, 40 - D_802AD00A, D_802AD00A + 212);
func_80144238(id);
id = D_802AD044;
hud_element_set_alpha(id, (opacity * 254) / 255);
hud_element_set_render_pos(id, 40 - D_802AD00A, D_802AD00A + 212);
hud_element_set_scale(id, 1.0f);
func_80144238(id);
theta = D_802AD06C;
for (i = 0; i < main_menu_numOptions; i++, theta += 28.0f) {
s32 l;
s32 t;
s32 new_var;
x = 0.0f;
y = 0.0f;
add_vec2D_polar(&x, &y, 87.0f, theta);
x = D_802AD060 + x;
l = x;
y = D_802AD064 + y;
t = y;
btl_draw_prim_quad(0, 0, 0, 0, l - 12, t - 12, 24, 24);
id = D_802AD010[i];
hud_element_set_render_pos(id, l, t);
hud_element_set_alpha(id, (opacity * 180) / 255);
if (i == D_802AD06B + D_802AD002) {
hud_element_set_alpha(id, opacity);
}
hud_element_draw_clipped(id);
}
if (cond) {
s32 msgX;
s32 msgY;
msgX = D_802AD060 + 20;
msgY = D_802AD064;
msgY -= 34;
btl_draw_prim_quad(0, 0, 0, 0, D_802AD060 + 46, msgY, 48, 16);
draw_msg(battle_menu_messageIDs[D_802AD002 + D_802AD06B], msgX, msgY, opacity, 0x35, 0);
}
if ((gBattleStatus.flags1 & 0x02000000) || (gBattleStatus.flags2 & 0x40)) {
D_802AD104 = 0;
}
if (D_802AD104 != 0) {
id = D_802AD05C;
hud_element_set_alpha(id, (opacity * 200) / 255);
hud_element_draw_clipped(id);
id = D_802AD050;
hud_element_set_alpha(id, opacity);
hud_element_draw_clipped(id);
id = D_802AD054;
hud_element_set_alpha(id, opacity);
hud_element_draw_clipped(id);
id = D_802AD058;
hud_element_set_alpha(id, opacity);
hud_element_draw_clipped(id);
}
break;
}
}
#else
INCLUDE_ASM(s32, "415D90", btl_draw_menu_wheel);
#endif
// Very similar to func_802A45D8 - maybe can be used to reduce fake matches there
void func_802A2684(void) {
@ -857,122 +1088,116 @@ s32 func_802A58D0(void) {
INCLUDE_ASM(s32, "415D90", btl_state_update_player_menu);
//requires above to be decomped
#ifdef NON_EQUIVALENT
void btl_state_draw_player_menu(void) {
switch (gBattleState2) {
case 1:
case BATTLE_STATE2_UNK_1:
btl_draw_menu_wheel();
break;
case 2:
case 3:
case 4:
case 5:
case 10:
case 11:
case 12:
case 13:
case 14:
case 20:
case 21:
case 22:
case 23:
case 24:
case 30:
case 31:
case 32:
case 33:
case 34:
case 40:
case 41:
case 42:
case 43:
case 44:
case 51:
case 52:
case 53:
case 54:
case 61:
case 62:
case 63:
case 64:
case 65:
case 200:
case 201:
case BATTLE_STATE2_UNK_2:
case BATTLE_STATE2_UNK_3:
case BATTLE_STATE2_UNK_4:
case BATTLE_STATE2_UNK_5:
case BATTLE_STATE2_PLAYER_DEFEATED:
case BATTLE_STATE2_UNK_B:
case BATTLE_STATE2_UNK_C:
case BATTLE_STATE2_UNK_D:
case BATTLE_STATE2_UNK_14:
case BATTLE_STATE2_UNK_15:
case BATTLE_STATE2_UNK_16:
case BATTLE_STATE2_UNK_17:
case BATTLE_STATE2_UNK_18:
case BATTLE_STATE2_UNK_1E:
case BATTLE_STATE2_UNK_1F:
case BATTLE_STATE2_UNK_20:
case BATTLE_STATE2_UNK_21:
case BATTLE_STATE2_UNK_22:
case BATTLE_STATE2_UNK_28:
case BATTLE_STATE2_UNK_29:
case BATTLE_STATE2_UNK_2A:
case BATTLE_STATE2_UNK_2B:
case BATTLE_STATE2_UNK_2C:
case BATTLE_STATE2_UNK_3D:
case BATTLE_STATE2_UNK_3E:
case BATTLE_STATE2_UNK_3F:
btl_draw_menu_wheel();
break;
case 202:
case BATTLE_STATE2_UNK_40:
case BATTLE_STATE2_UNK_41:
case BATTLE_STATE2_UNK_C8:
case BATTLE_STATE2_UNK_C9:
btl_draw_menu_wheel();
break;
case 203:
case BATTLE_STATE2_UNK_CA:
btl_draw_menu_wheel();
break;
case 204:
case BATTLE_STATE2_UNK_CB:
btl_draw_menu_wheel();
break;
case 205:
case BATTLE_STATE2_UNK_CC:
btl_draw_menu_wheel();
break;
case BATTLE_STATE2_UNK_CD:
btl_draw_menu_wheel();
break;
}
}
#else
INCLUDE_ASM(s32, "415D90", btl_state_draw_player_menu);
#endif
static const f32 padding = 0.0f;
INCLUDE_ASM(s32, "415D90", btl_state_update_partner_menu);
void btl_state_draw_partner_menu(void) {
switch (gBattleState2) {
case 2:
case BATTLE_STATE2_UNK_2:
btl_draw_menu_wheel();
break;
case 3:
case 4:
case 5:
case 6:
case 10:
case 11:
case 12:
case 13:
case 14:
case 20:
case 21:
case 22:
case 23:
case 24:
case 30:
case 31:
case 32:
case 33:
case 34:
case 40:
case 41:
case 42:
case 43:
case 44:
case 51:
case 52:
case 53:
case 54:
case 61:
case 62:
case 63:
case 64:
case 65:
case 200:
case 201:
case BATTLE_STATE2_UNK_3:
case BATTLE_STATE2_UNK_4:
case BATTLE_STATE2_UNK_5:
case BATTLE_STATE2_UNK_6:
case BATTLE_STATE2_PLAYER_DEFEATED:
case BATTLE_STATE2_UNK_B:
case BATTLE_STATE2_UNK_C:
case BATTLE_STATE2_UNK_D:
case BATTLE_STATE2_UNK_E:
case BATTLE_STATE2_UNK_14:
case BATTLE_STATE2_UNK_15:
case BATTLE_STATE2_UNK_16:
case BATTLE_STATE2_UNK_17:
case BATTLE_STATE2_UNK_18:
case BATTLE_STATE2_UNK_1E:
case BATTLE_STATE2_UNK_1F:
case BATTLE_STATE2_UNK_20:
case BATTLE_STATE2_UNK_21:
case BATTLE_STATE2_UNK_22:
case BATTLE_STATE2_UNK_28:
case BATTLE_STATE2_UNK_29:
case BATTLE_STATE2_UNK_2A:
case BATTLE_STATE2_UNK_2B:
case BATTLE_STATE2_UNK_2C:
case BATTLE_STATE2_UNK_33:
case BATTLE_STATE2_UNK_34:
case BATTLE_STATE2_UNK_35:
case BATTLE_STATE2_UNK_36:
case BATTLE_STATE2_UNK_3D:
case BATTLE_STATE2_UNK_3E:
case BATTLE_STATE2_UNK_3F:
case BATTLE_STATE2_UNK_40:
case BATTLE_STATE2_UNK_41:
case BATTLE_STATE2_UNK_C8:
case BATTLE_STATE2_UNK_C9:
btl_draw_menu_wheel();
break;
case 202:
case BATTLE_STATE2_UNK_CA:
btl_draw_menu_wheel();
break;
case 203:
case BATTLE_STATE2_UNK_CB:
btl_draw_menu_wheel();
break;
case 204:
case BATTLE_STATE2_UNK_CC:
btl_draw_menu_wheel();
break;
case 205:
case BATTLE_STATE2_UNK_CD:
btl_draw_menu_wheel();
break;
}
@ -982,38 +1207,179 @@ s32 func_802A9B30(void) {
return (gBattleStatus.flags2 & BS_FLAGS2_4) <= 0;
}
INCLUDE_ASM(s32, "415D90", btl_state_update_peach_menu);
// Needs the above jtbl to be decompiled and then this will work
// Ordering shenanigans
#ifdef NON_MATCHING
void btl_state_draw_peach_menu(void) {
void btl_state_update_peach_menu(void) {
BattleStatus* battleStatus = &gBattleStatus;
Actor* player = battleStatus->playerActor;
Actor* partner = battleStatus->partnerActor;
s32 temp_s0_2;
s32 phi_v0;
switch (gBattleState2) {
case 0:
func_8024E40C(2);
btl_cam_move(0xA);
if (!(gBattleStatus.flags1 & 0x100000)) {
gBattleState2 = 0xB;
break;
}
player->state.currentPos.x = player->homePos.x;
player->state.currentPos.z = player->homePos.z;
gBattleState2 = 0xA;
player->state.goalPos.x = partner->homePos.x;
player->state.goalPos.z = partner->homePos.z;
player->state.moveTime = 4;
player->state.angle = 0.0f;
break;
case 10:
if (player->state.moveTime != 0) {
player->currentPos.x += (player->state.goalPos.x - player->currentPos.x) / player->state.moveTime;
player->currentPos.z += (player->state.goalPos.z - player->currentPos.z) / player->state.moveTime;
partner->currentPos.x += (player->state.currentPos.x - partner->currentPos.x) / player->state.moveTime;
partner->currentPos.z += (player->state.currentPos.z - partner->currentPos.z) / player->state.moveTime;
}
player->currentPos.z -= sin_rad(player->state.angle * TAU / 360.0f) * 16.0f;
player->yaw = clamp_angle(-player->state.angle);
partner->currentPos.z += sin_rad(player->state.angle * TAU / 360.0f) * 16.0f;
partner->yaw = clamp_angle(-player->state.angle);
player->state.angle += 90.0f;
if (player->state.moveTime != 0) {
player->state.moveTime--;
break;
}
player->currentPos.x = player->state.goalPos.x;
player->currentPos.z = player->state.goalPos.z;
partner->currentPos.x = player->state.currentPos.x;
partner->currentPos.z = player->state.currentPos.z;
player->homePos.x = player->currentPos.x;
player->homePos.z = player->currentPos.z;
partner->homePos.x = partner->currentPos.x;
partner->homePos.z = partner->currentPos.z;
gBattleStatus.flags1 &= ~0x100000;
case 11:
gBattleStatus.flags1 |= 2;
player->flags &= ~0x4000000;
player->flags |= 0x08000000;
if (partner != NULL) {
partner->flags |= 0x4000000;
partner->flags |= 0x08000000;
}
battleStatus->selectedMoveID = 0;
battle_menu_submenuIDs = 8;
battle_menu_isEnabled = TRUE;
battle_menu_isMessageDisabled = 0;
main_battle_menu_JumpHudScripts = battle_menu_PeachStarPowerHudScripts[0];
battle_menu_messageIDs = D_802AB728[0];
if (!(battleStatus->menuDisableFlags & 0x100)) {
battle_menu_isEnabled = FALSE;
battle_menu_isMessageDisabled = 0x48;
main_battle_menu_JumpHudScripts = battle_menu_PeachStarPowerHudScripts[1];
}
if (func_802A9B30()) {
D_802AD104 = 1;
phi_v0 = 2 - 0;
main_menu_numOptions = 1;
} else {
D_802AD104 = 0;
phi_v0 = 2 - 0;
main_menu_numOptions = 1;
}
D_802AD0A8 = 0;
D_802AD0B0 = 0;
D_802AD100 = phi_v0;
func_802A1000();
D_802ACC60 = 8;
gBattleState2 = 1;
break;
case 1:
btl_draw_menu_wheel();
set_animation(0, 0, 0xC0009);
temp_s0_2 = func_802A11B0();
if (D_802ACC60 != 0) {
D_802ACC60--;
break;
}
if (temp_s0_2 != 0) {
set_animation(0, 0, 0xA0002);
battleStatus->currentSubmenu = D_802AD0BB[temp_s0_2 - 1];
func_802A1030();
D_802ACC60 = 8;
D_802ACC6C = 4;
gBattleState2 = 2;
}
break;
case 2:
btl_draw_menu_wheel();
break;
case 3:
btl_draw_menu_wheel();
if (func_802A11B0() != 0) {
battleStatus->unk_6C = 4;
battleStatus->unk_6E = 5;
battleStatus->moveCategory = 8;
battleStatus->selectedMoveID = 0x81;
battleStatus->selectedItemID = 0xA;
battleStatus->currentTargetListFlags = D_8008FA78;
btl_set_state(0x11);
}
break;
case 4:
btl_draw_menu_wheel();
func_802A1050();
gBattleState2 = 1;
btl_state_update_peach_menu();
btl_state_update_peach_menu();
break;
case 5:
btl_draw_menu_wheel();
func_802A10B8();
break;
case 6:
case 7:
case 8:
btl_show_variable_battle_message(0x50, 60, 0);
D_802AD607 = 1;
gBattleState2 = 9;
break;
case 9:
if (!btl_is_popup_displayed()) {
D_802AD607 = 0;
D_802ACC60 = 0;
gBattleState2 = 1;
}
break;
}
}
#else
INCLUDE_ASM(s32, "415D90", btl_state_draw_peach_menu);
INCLUDE_ASM(s32, "415D90", btl_state_update_peach_menu);
#endif
void btl_state_draw_peach_menu(void) {
switch (gBattleState2) {
case BATTLE_STATE2_UNK_1:
btl_draw_menu_wheel();
break;
case BATTLE_STATE2_UNK_2:
btl_draw_menu_wheel();
break;
case BATTLE_STATE2_UNK_3:
btl_draw_menu_wheel();
break;
case BATTLE_STATE2_UNK_4:
btl_draw_menu_wheel();
break;
case BATTLE_STATE2_UNK_5:
btl_draw_menu_wheel();
break;
case BATTLE_STATE2_UNK_6:
case BATTLE_STATE2_UNK_7:
case BATTLE_STATE2_UNK_8:
case BATTLE_STATE2_UNK_9:
break;
}
}
static const f32 padding2 = 0.0f;
s32 func_802AA0A4(void) {
return (gBattleStatus.flags2 & 2) <= 0;
}
@ -1022,25 +1388,25 @@ INCLUDE_ASM(s32, "415D90", btl_state_update_twink_menu); // look into m2c bug
void btl_state_draw_twink_menu(void) {
switch (gBattleState2) {
case 1:
case BATTLE_STATE2_UNK_1:
btl_draw_menu_wheel();
break;
case 2:
case BATTLE_STATE2_UNK_2:
btl_draw_menu_wheel();
break;
case 3:
case BATTLE_STATE2_UNK_3:
btl_draw_menu_wheel();
break;
case 4:
case BATTLE_STATE2_UNK_4:
btl_draw_menu_wheel();
break;
case 5:
case BATTLE_STATE2_UNK_5:
btl_draw_menu_wheel();
break;
case 6:
case 7:
case 8:
case 9:
case BATTLE_STATE2_UNK_6:
case BATTLE_STATE2_UNK_7:
case BATTLE_STATE2_UNK_8:
case BATTLE_STATE2_UNK_9:
break;
}
}

View File

@ -591,9 +591,9 @@ void update_player(void) {
update_partner_timers();
if ((playerStatus->decorationList > 100) || (playerStatus->position.y < -2000.0f)) {
if ((playerStatus->timeInAir > 100) || (playerStatus->position.y < -2000.0f)) {
if (!(playerStatus->animFlags & PLAYER_STATUS_ANIM_FLAGS_10000000)) {
playerStatus->decorationList = 0;
playerStatus->timeInAir = 0;
playerStatus->position.x = playerStatus->lastGoodPosition.x;
playerStatus->position.y = playerStatus->lastGoodPosition.y;
playerStatus->position.z = playerStatus->lastGoodPosition.z;
@ -608,7 +608,7 @@ void update_player(void) {
partner->pos.z = playerStatus->lastGoodPosition.z;
partner->moveToPos.y = playerStatus->lastGoodPosition.y;
} else {
playerStatus->decorationList = 10;
playerStatus->timeInAir = 10;
}
}
}
@ -718,7 +718,7 @@ void phys_update_standard(void) {
if (
collision_main_above() < 0 &&
playerStatus->decorationList == 0 &&
playerStatus->timeInAir == 0 &&
playerStatus->animFlags & PLAYER_STATUS_ANIM_FLAGS_USING_PEACH_PHYSICS
) {
func_800E4F10();
@ -1119,7 +1119,7 @@ s32 func_800E06D8(void) {
s32 temp = playerStatus->interactingWithID;
s32 wall;
if (playerStatus->decorationList || playerStatus->inputEnabledCounter) {
if (playerStatus->timeInAir || playerStatus->inputEnabledCounter) {
return FALSE;
}
if (gCollisionStatus.currentWall == -1) {
@ -1176,7 +1176,7 @@ void check_for_interactables(void) {
return;
}
if (playerStatus->decorationList != NULL) {
if (playerStatus->timeInAir != 0) {
return;
}

View File

@ -93,7 +93,7 @@ void reset_player_status(void) {
playerStatus->overlapPushAmount = 0.0f;
playerStatus->overlapPushYaw = 0.0f;
playerStatus->anim = 0;
playerStatus->decorationList = 0;
playerStatus->timeInAir = 0;
playerStatus->position.x = 0.0f;
playerStatus->position.y = 0.0f;
playerStatus->position.z = 0.0f;

View File

@ -225,9 +225,9 @@ void phys_update_action_state(void) {
}
}
if (playerStatus->decorationList != 0) {
if (playerStatus->timeInAir != 0) {
if (playerStatus->gravityIntegrator[0] <= 0.0f && D_800F7B90 > 0.0f) {
playerStatus->unk_C2 = playerStatus->decorationList;
playerStatus->unk_C2 = playerStatus->timeInAir;
}
D_800F7B90 = playerStatus->gravityIntegrator[0];
}

View File

@ -204,7 +204,7 @@ void func_800E2BB0(void) {
void phys_update_jump(void) {
PlayerStatus* playerStatus = &gPlayerStatus;
if (playerStatus->decorationList != 0) {
if (playerStatus->timeInAir != 0) {
switch (playerStatus->actionState) {
case ACTION_STATE_LAUNCH:
func_800E2BB0();
@ -389,7 +389,7 @@ void phys_player_land(void) {
f32 moveAngle;
f32 moveMagnitude;
playerStatus->decorationList = 0;
playerStatus->timeInAir = 0;
playerStatus->unk_C2 = 0;
playerStatus->flags &= ~PLAYER_STATUS_FLAGS_800000;
playerStatus->landPos.x = playerStatus->position.x;
@ -659,7 +659,7 @@ void collision_main_lateral(void) {
playerStatus->position.x += playerStatus->extraVelocity.x;
playerStatus->position.z += playerStatus->extraVelocity.z;
if (playerStatus->decorationList == 0) {
if (playerStatus->timeInAir == 0) {
playerStatus->position.y += playerStatus->extraVelocity.y;
}
@ -874,7 +874,7 @@ void phys_main_collision_below(void) {
if (collHeightHalf + (temp_f24 * 0.5f) < outLength) {
result = -1;
}
if (playerStatus->decorationList == 0) {
if (playerStatus->timeInAir == 0) {
collisionStatus->currentFloor = result;
}
if (result >= 0) {
@ -1063,7 +1063,7 @@ void check_input_midair_jump(void) {
if (!(gPlayerStatus.flags & (PLAYER_STATUS_FLAGS_800000 | PLAYER_STATUS_FLAGS_10 | PLAYER_STATUS_FLAGS_FLYING)) &&
!(gPlayerStatus.animFlags & 0x4001) &&
gPlayerStatus.unk_C2 >= 6 &&
gPlayerStatus.decorationList < 0x12 &&
gPlayerStatus.timeInAir < 18 &&
gPlayerStatus.pressedButtons & A_BUTTON) {
switch (gPlayerData.bootsLevel) {

View File

@ -39,7 +39,7 @@ void func_800EFD08(void) {
D_8010CFF4 = D_8010CFF0;
}
D_8010CFF0 = playerStatus->decorationList;
D_8010CFF0 = playerStatus->timeInAir;
switch (colliderType) {
case 6:
@ -70,11 +70,11 @@ void func_800F0248(void) {
PlayerStatus* playerStatus = &gPlayerStatus;
f32 sin, cos, x, y, z;
if (playerStatus->actionState == ACTION_STATE_JUMP && playerStatus->decorationList == 1 && D_80109492 == 5) {
if (playerStatus->actionState == ACTION_STATE_JUMP && playerStatus->timeInAir == 1 && D_80109492 == 5) {
fx_flower_splash(
playerStatus->position.x,
playerStatus->position.y + 14.0f,
playerStatus->position.z,
playerStatus->position.x,
playerStatus->position.y + 14.0f,
playerStatus->position.z,
D_8010948C
);
D_8010948C = clamp_angle(D_8010948C + 35.0f);
@ -88,7 +88,7 @@ void func_800F0248(void) {
}
if (
playerStatus->actionState != ACTION_STATE_WALK && playerStatus->actionState != ACTION_STATE_RUN &&
playerStatus->actionState != ACTION_STATE_WALK && playerStatus->actionState != ACTION_STATE_RUN &&
(playerStatus->actionState != ACTION_STATE_SPIN || playerStatus->fallState != 0)
) {
D_80109490 = 0;
@ -127,7 +127,7 @@ void func_800F0864(void) {
if (
(
playerStatus->actionState != ACTION_STATE_WALK && playerStatus->actionState != ACTION_STATE_RUN &&
playerStatus->actionState != ACTION_STATE_WALK && playerStatus->actionState != ACTION_STATE_RUN &&
(playerStatus->actionState != ACTION_STATE_SPIN || playerStatus->fallState != 0) &&
playerStatus->actionState != ACTION_STATE_LAND && playerStatus->actionState != ACTION_STATE_IDLE
) || playerStatus->flags >= 0
@ -140,10 +140,10 @@ void func_800F0864(void) {
D_801094A4 = 0;
sin_cos_rad((clamp_angle(-playerStatus->currentYaw) * TAU) / 360.0f, &sin, &cos);
fx_footprint(
playerStatus->position.x + (playerStatus->colliderDiameter * sin * 0.2f),
playerStatus->position.y + 1.5f,
playerStatus->position.z + (playerStatus->colliderDiameter * cos * 0.2f),
-playerStatus->currentYaw,
playerStatus->position.x + (playerStatus->colliderDiameter * sin * 0.2f),
playerStatus->position.y + 1.5f,
playerStatus->position.z + (playerStatus->colliderDiameter * cos * 0.2f),
-playerStatus->currentYaw,
D_801094A8
);
D_801094A8 = !D_801094A8;

555
src/919B0.c Normal file
View File

@ -0,0 +1,555 @@
#include "common.h"
#include "ui/a_button_unpressed.png.inc.c"
#include "ui/a_button_unpressed.pal.inc.c"
#include "ui/a_button_pressed.png.inc.c"
#include "ui/a_button_pressed.pal.inc.c"
#include "ui/analog_stick.png.inc.c"
#include "ui/analog_stick.pal.inc.c"
#include "ui/analog_stick_left.png.inc.c"
#include "ui/analog_stick_left.pal.inc.c"
#include "ui/analog_stick2.png.inc.c"
#include "ui/analog_stick2.pal.inc.c"
#include "ui/analog_stick_right.png.inc.c"
#include "ui/analog_stick_right.pal.inc.c"
#include "ui/analog_stick3.png.inc.c"
#include "ui/analog_stick3.pal.inc.c"
#include "ui/analog_stick_down.png.inc.c"
#include "ui/analog_stick_down.pal.inc.c"
#include "ui/analog_stick_up.png.inc.c"
#include "ui/analog_stick_up.pal.inc.c"
#include "ui/unk_bar.png.inc.c"
#include "ui/unk_bar.pal.inc.c"
#include "ui/ok.png.inc.c"
#include "ui/ok.pal.inc.c"
#include "ui/start_button.png.inc.c"
#include "ui/start_button.pal.inc.c"
#include "ui/start_button2.png.inc.c"
#include "ui/start_button2.pal.inc.c"
#include "ui/start.png.inc.c"
#include "ui/start.pal.inc.c"
#include "ui/hammer.png.inc.c"
#include "ui/hammer.pal.inc.c"
#include "ui/hammer.disabled.pal.inc.c"
#include "ui/super_hammer.png.inc.c"
#include "ui/super_hammer.pal.inc.c"
#include "ui/super_hammer.disabled.pal.inc.c"
#include "ui/ultra_hammer.png.inc.c"
#include "ui/ultra_hammer.pal.inc.c"
#include "ui/ultra_hammer.disabled.pal.inc.c"
#include "ui/boots.png.inc.c"
#include "ui/boots.pal.inc.c"
#include "ui/boots.disabled.pal.inc.c"
#include "ui/super_boots.png.inc.c"
#include "ui/super_boots.pal.inc.c"
#include "ui/super_boots.disabled.pal.inc.c"
#include "ui/ultra_boots.png.inc.c"
#include "ui/ultra_boots.pal.inc.c"
#include "ui/ultra_boots.disabled.pal.inc.c"
#include "ui/item.png.inc.c"
#include "ui/item.pal.inc.c"
#include "ui/item.disabled.pal.inc.c"
#include "ui/star_spirit.png.inc.c"
#include "ui/star_spirit.pal.inc.c"
#include "ui/star_spirit.disabled.pal.inc.c"
#include "ui/arrow_left.png.inc.c"
#include "ui/arrow_left.pal.inc.c"
#include "ui/arrow_right.png.inc.c"
#include "ui/arrow_right.pal.inc.c"
#include "ui/point_right.png.inc.c"
#include "ui/point_right.pal.inc.c"
#include "ui/pip.png.inc.c"
#include "ui/pip.pal.inc.c"
#include "ui/pip2.png.inc.c"
#include "ui/pip2.pal.inc.c"
#include "ui/coin_sparkle.png.inc.c"
#include "ui/coin_sparkle.pal.inc.c"
#include "ui/coin_sparkle2.png.inc.c"
#include "ui/coin_sparkle2.pal.inc.c"
#include "ui/coin_sparkle3.png.inc.c"
#include "ui/coin_sparkle3.pal.inc.c"
#include "ui/coin_sparkle4.png.inc.c"
#include "ui/coin_sparkle4.pal.inc.c"
#include "ui/coin_sparkle5.png.inc.c"
#include "ui/coin_sparkle5.pal.inc.c"
#include "ui/coin_sparkle6.png.inc.c"
#include "ui/coin_sparkle6.pal.inc.c"
#include "ui/coin_sparkle7.png.inc.c"
#include "ui/coin_sparkle7.pal.inc.c"
#include "ui/status_sp_shine.png.inc.c"
#include "ui/star_piece_sparkle.png.inc.c"
#include "ui/star_piece_sparkle.pal.inc.c"
#include "ui/star_piece_sparkle2.png.inc.c"
#include "ui/star_piece_sparkle2.pal.inc.c"
#include "ui/star_piece_sparkle3.png.inc.c"
#include "ui/star_piece_sparkle3.pal.inc.c"
#include "ui/menu_times.png.inc.c"
#include "ui/menu_times.pal.inc.c"
#include "ui/fp_cost.png.inc.c"
#include "ui/fp_cost.pal.inc.c"
#include "ui/fp_cost.reduced.pal.inc.c"
#include "ui/fp_cost.reduced2x.pal.inc.c"
#include "ui/fp_cost.notenough.pal.inc.c"
#include "ui/pow_cost.png.inc.c"
#include "ui/pow_cost.pal.inc.c"
#include "ui/pow_cost.reduced.pal.inc.c"
#include "ui/pow_cost.reduced2x.pal.inc.c"
#include "ui/pow_cost.notenough.pal.inc.c"
#include "ui/green_arrow_down.png.inc.c"
#include "ui/green_arrow_down.pal.inc.c"
#include "ui/green_arrow_up.png.inc.c"
#include "ui/green_arrow_up.pal.inc.c"
#include "ui/kaime.png.inc.c"
#include "ui/kaime.pal.inc.c"
#include "ui/unused_1.png.inc.c"
#include "ui/unused_1.pal.inc.c"
#include "ui/unused_2.png.inc.c"
#include "ui/unused_2.pal.inc.c"
#include "ui/unused_3.png.inc.c"
#include "ui/unused_3.pal.inc.c"
#include "ui/red_bar1.png.inc.c"
#include "ui/red_bar1.pal.inc.c"
#include "ui/empty_bar.png.inc.c"
#include "ui/empty_bar.pal.inc.c"
#include "ui/red_bar2.png.inc.c"
#include "ui/red_bar2.pal.inc.c"
#include "ui/eldstar.png.inc.c"
#include "ui/eldstar.pal.inc.c"
#include "ui/eldstar.disabled.pal.inc.c"
#include "ui/mamar.png.inc.c"
#include "ui/mamar.pal.inc.c"
#include "ui/mamar.disabled.pal.inc.c"
#include "ui/skolar.png.inc.c"
#include "ui/skolar.pal.inc.c"
#include "ui/skolar.disabled.pal.inc.c"
#include "ui/muskular.png.inc.c"
#include "ui/muskular.pal.inc.c"
#include "ui/muskular.disabled.pal.inc.c"
#include "ui/misstar.png.inc.c"
#include "ui/misstar.pal.inc.c"
#include "ui/misstar.disabled.pal.inc.c"
#include "ui/klevar.png.inc.c"
#include "ui/klevar.pal.inc.c"
#include "ui/klevar.disabled.pal.inc.c"
#include "ui/kalmar.png.inc.c"
#include "ui/kalmar.pal.inc.c"
#include "ui/kalmar.disabled.pal.inc.c"
#include "ui/all_spirits.png.inc.c"
#include "ui/all_spirits.pal.inc.c"
#include "ui/all_spirits.disabled.pal.inc.c"
#include "ui/peach_beam.png.inc.c"
#include "ui/peach_beam.pal.inc.c"
#include "ui/peach_beam.disabled.pal.inc.c"
#include "ui/mario_head.png.inc.c"
#include "ui/mario_head.pal.inc.c"
#include "ui/partner0.png.inc.c"
#include "ui/partner0.pal.inc.c"
#include "ui/partner0.disabled.pal.inc.c"
#include "ui/goombario.png.inc.c"
#include "ui/goombario.pal.inc.c"
#include "ui/goombario.disabled.pal.inc.c"
#include "ui/kooper.png.inc.c"
#include "ui/kooper.pal.inc.c"
#include "ui/kooper.disabled.pal.inc.c"
#include "ui/bombette.png.inc.c"
#include "ui/bombette.pal.inc.c"
#include "ui/bombette.disabled.pal.inc.c"
#include "ui/parakarry.png.inc.c"
#include "ui/parakarry.pal.inc.c"
#include "ui/parakarry.disabled.pal.inc.c"
#include "ui/bow.png.inc.c"
#include "ui/bow.pal.inc.c"
#include "ui/bow.disabled.pal.inc.c"
#include "ui/watt.png.inc.c"
#include "ui/watt.pal.inc.c"
#include "ui/watt.disabled.pal.inc.c"
#include "ui/sushie.png.inc.c"
#include "ui/sushie.pal.inc.c"
#include "ui/sushie.disabled.pal.inc.c"
#include "ui/lakilester.png.inc.c"
#include "ui/lakilester.pal.inc.c"
#include "ui/lakilester.disabled.pal.inc.c"
#include "ui/partner9.png.inc.c"
#include "ui/partner9.pal.inc.c"
#include "ui/partner9.disabled.pal.inc.c"
#include "ui/partner10.png.inc.c"
#include "ui/partner10.pal.inc.c"
#include "ui/partner10.disabled.pal.inc.c"
#include "ui/partner11.png.inc.c"
#include "ui/partner11.pal.inc.c"
#include "ui/partner11.disabled.pal.inc.c"
#include "ui/status_times.png.inc.c"
#include "ui/status_times.pal.inc.c"
#include "ui/status_slash.png.inc.c"
#include "ui/status_slash.pal.inc.c"
#include "ui/0.png.inc.c"
#include "ui/0.pal.inc.c"
#include "ui/1.png.inc.c"
#include "ui/1.pal.inc.c"
#include "ui/2.png.inc.c"
#include "ui/2.pal.inc.c"
#include "ui/3.png.inc.c"
#include "ui/3.pal.inc.c"
#include "ui/4.png.inc.c"
#include "ui/4.pal.inc.c"
#include "ui/5.png.inc.c"
#include "ui/5.pal.inc.c"
#include "ui/6.png.inc.c"
#include "ui/6.pal.inc.c"
#include "ui/7.png.inc.c"
#include "ui/7.pal.inc.c"
#include "ui/8.png.inc.c"
#include "ui/8.pal.inc.c"
#include "ui/9.png.inc.c"
#include "ui/9.pal.inc.c"
#include "ui/hp.png.inc.c"
#include "ui/hp.pal.inc.c"
#include "ui/fp.png.inc.c"
#include "ui/fp.pal.inc.c"
#include "ui/status_sp_increment_1.png.inc.c"
#include "ui/status_sp_increment_1.pal.inc.c"
#include "ui/status_sp_increment_2.png.inc.c"
#include "ui/status_sp_increment_2.pal.inc.c"
#include "ui/status_sp_increment_3.png.inc.c"
#include "ui/status_sp_increment_3.pal.inc.c"
#include "ui/status_sp_increment_4.png.inc.c"
#include "ui/status_sp_increment_4.pal.inc.c"
#include "ui/status_sp_increment_5.png.inc.c"
#include "ui/status_sp_increment_5.pal.inc.c"
#include "ui/status_sp_increment_6.png.inc.c"
#include "ui/status_sp_increment_6.pal.inc.c"
#include "ui/status_sp_increment_7.png.inc.c"
#include "ui/status_sp_increment_7.pal.inc.c"
#include "ui/status_sp_empty_increment.png.inc.c"
#include "ui/status_sp_empty_increment.pal.inc.c"
#include "ui/status_sp_star_1.png.inc.c"
#include "ui/status_sp_star_1.pal.inc.c"
#include "ui/status_sp_star_2.png.inc.c"
#include "ui/status_sp_star_2.pal.inc.c"
#include "ui/status_sp_star_3.png.inc.c"
#include "ui/status_sp_star_3.pal.inc.c"
#include "ui/status_sp_star_4.png.inc.c"
#include "ui/status_sp_star_4.pal.inc.c"
#include "ui/status_sp_star_5.png.inc.c"
#include "ui/status_sp_star_5.pal.inc.c"
#include "ui/status_sp_star_6.png.inc.c"
#include "ui/status_sp_star_6.pal.inc.c"
#include "ui/status_sp_star_7.png.inc.c"
#include "ui/status_sp_star_7.pal.inc.c"
#include "ui/status_sp_star_empty.png.inc.c"
#include "ui/status_sp_star_empty.pal.inc.c"
#include "ui/coins0.png.inc.c"
#include "ui/coins0.pal.inc.c"
#include "ui/coins1.png.inc.c"
#include "ui/coins1.pal.inc.c"
#include "ui/coins2.png.inc.c"
#include "ui/coins2.pal.inc.c"
#include "ui/coins3.png.inc.c"
#include "ui/coins3.pal.inc.c"
#include "ui/coins4.png.inc.c"
#include "ui/coins4.pal.inc.c"
#include "ui/coins5.png.inc.c"
#include "ui/coins5.pal.inc.c"
#include "ui/coins6.png.inc.c"
#include "ui/coins6.pal.inc.c"
#include "ui/coins7.png.inc.c"
#include "ui/coins7.pal.inc.c"
#include "ui/coins8.png.inc.c"
#include "ui/coins8.pal.inc.c"
#include "ui/coins9.png.inc.c"
#include "ui/coins9.pal.inc.c"
#include "ui/star_points0.png.inc.c"
#include "ui/star_points0.pal.inc.c"
#include "ui/star_points1.png.inc.c"
#include "ui/star_points1.pal.inc.c"
#include "ui/star_points2.png.inc.c"
#include "ui/star_points2.pal.inc.c"
#include "ui/star_points3.png.inc.c"
#include "ui/star_points3.pal.inc.c"
#include "ui/star_points4.png.inc.c"
#include "ui/star_points4.pal.inc.c"
#include "ui/star_points5.png.inc.c"
#include "ui/star_points5.pal.inc.c"
#include "ui/star_points6.png.inc.c"
#include "ui/star_points6.pal.inc.c"
#include "ui/star_points7.png.inc.c"
#include "ui/star_points7.pal.inc.c"
#include "ui/bluepip.png.inc.c"
#include "ui/bluepip.pal.inc.c"
#include "ui/bluepip2.png.inc.c"
#include "ui/bluepip2.pal.inc.c"
#include "ui/charge_jump.png.inc.c"
#include "ui/charge_jump.pal.inc.c"
#include "ui/charge_hammer.png.inc.c"
#include "ui/charge_hammer.pal.inc.c"
#include "ui/charge_goombario.png.inc.c"
#include "ui/charge_goombario.pal.inc.c"
#include "ui/exclamation.png.inc.c"
#include "ui/exclamation.pal.inc.c"
#include "ui/sleeping.png.inc.c"
#include "ui/sleeping.pal.inc.c"
#include "ui/sleeping2.png.inc.c"
#include "ui/sleeping2.pal.inc.c"
#include "ui/sleeping3.png.inc.c"
#include "ui/sleeping3.pal.inc.c"
#include "ui/shocked.png.inc.c"
#include "ui/shocked.pal.inc.c"
#include "ui/shocked2.png.inc.c"
#include "ui/shocked2.pal.inc.c"
#include "ui/shocked3.png.inc.c"
#include "ui/shocked3.pal.inc.c"
#include "ui/shocked4.png.inc.c"
#include "ui/shocked4.pal.inc.c"
#include "ui/dizzy.png.inc.c"
#include "ui/dizzy.pal.inc.c"
#include "ui/dizzy2.png.inc.c"
#include "ui/dizzy2.pal.inc.c"
#include "ui/dizzy3.png.inc.c"
#include "ui/dizzy3.pal.inc.c"
#include "ui/dizzy4.png.inc.c"
#include "ui/dizzy4.pal.inc.c"
#include "ui/poisoned.png.inc.c"
#include "ui/poisoned.pal.inc.c"
#include "ui/poisoned2.png.inc.c"
#include "ui/poisoned2.pal.inc.c"
#include "ui/frozen.png.inc.c"
#include "ui/frozen.pal.inc.c"
#include "ui/frozen2.png.inc.c"
#include "ui/frozen2.pal.inc.c"
#include "ui/frozen3.png.inc.c"
#include "ui/frozen3.pal.inc.c"
#include "ui/frozen4.png.inc.c"
#include "ui/frozen4.pal.inc.c"
#include "ui/timed.png.inc.c"
#include "ui/timed.pal.inc.c"
#include "ui/timed2.png.inc.c"
#include "ui/timed2.pal.inc.c"
#include "ui/timed3.png.inc.c"
#include "ui/timed3.pal.inc.c"
#include "ui/timed4.png.inc.c"
#include "ui/timed4.pal.inc.c"
#include "ui/downed.png.inc.c"
#include "ui/downed.pal.inc.c"
#include "ui/downed2.png.inc.c"
#include "ui/downed2.pal.inc.c"
#include "ui/shrink.png.inc.c"
#include "ui/shrink.pal.inc.c"
#include "ui/shrink2.png.inc.c"
#include "ui/shrink2.pal.inc.c"
#include "ui/shrink3.png.inc.c"
#include "ui/shrink3.pal.inc.c"
#include "ui/shrink4.png.inc.c"
#include "ui/shrink4.pal.inc.c"
#include "ui/transparent.png.inc.c"
#include "ui/transparent.pal.inc.c"
#include "ui/transparent2.png.inc.c"
#include "ui/transparent2.pal.inc.c"
#include "ui/transparent3.png.inc.c"
#include "ui/transparent3.pal.inc.c"
#include "ui/transparent4.png.inc.c"
#include "ui/transparent4.pal.inc.c"
#include "ui/transparent5.png.inc.c"
#include "ui/transparent5.pal.inc.c"
#include "ui/transparent6.png.inc.c"
#include "ui/transparent6.pal.inc.c"
#include "ui/peril.png.inc.c"
#include "ui/peril.pal.inc.c"
#include "ui/danger.png.inc.c"
#include "ui/danger.pal.inc.c"
#include "ui/refund.png.inc.c"
#include "ui/refund.pal.inc.c"
#include "ui/happy.png.inc.c"
#include "ui/happy.pal.inc.c"
#include "ui/hp_drain.png.inc.c"
#include "ui/hp_drain.pal.inc.c"
#include "ui/diamond.png.inc.c"
#include "ui/diamond.pal.inc.c"
#include "ui/diamond.disabled.pal.inc.c"
#include "ui/orb_blue.png.inc.c"
#include "ui/orb_blue.pal.inc.c"
#include "ui/orb_blue.disabled.pal.inc.c"
#include "ui/orb_green.png.inc.c"
#include "ui/orb_green.pal.inc.c"
#include "ui/orb_green.disabled.pal.inc.c"
#include "ui/orb_red.png.inc.c"
#include "ui/orb_red.pal.inc.c"
#include "ui/orb_red.disabled.pal.inc.c"
Gfx D_801041A0[] = {
gsSPEndDisplayList(),
};
#include "ui/stat_heart.png.inc.c"
Gfx D_801045A8[] = {
gsSPEndDisplayList(),
};
#include "ui/stat_flower.png.inc.c"

View File

@ -1,13 +0,0 @@
#include "common.h"
Gfx D_801041A0[] = {
gsSPEndDisplayList(),
};
#include "ui/stat_heart.png.inc.c"
Gfx D_801045A8[] = {
gsSPEndDisplayList(),
};
#include "ui/stat_flower.png.inc.c"

View File

@ -7,7 +7,7 @@ INCLUDE_ASM(void, "9d10_len_1080", update_camera_mode_4, Camera* camera);
void update_camera_mode_2(Camera* camera);
INCLUDE_ASM(void, "9d10_len_1080", update_camera_mode_2, Camera* camera);
void update_camera_mode_2(Camera* camera);
void update_camera_mode_1(Camera* camera);
INCLUDE_ASM(void, "9d10_len_1080", update_camera_mode_1, Camera* camera);
void update_camera_mode_0(Camera* camera) {

View File

@ -523,7 +523,7 @@ void func_8013559C(ItemEntity* itemEntity) {
}
} else {
if (physicsData->unk_1C < 0xA) {
itemEntity->unk_2F = physicsData->unk_1C * 28;
itemEntity->alpha = physicsData->unk_1C * 28;
itemEntity->flags |= 0x80000;
}
}

View File

@ -2382,99 +2382,97 @@ ApiStatus ChooseNextTarget(Evt* script, s32 isInitialCall) {
#ifdef NON_MATCHING
s32 func_8026E558(Evt* script, s32 isInitialCall) {
Bytecode* args = script->ptrReadPos;
Actor* actor;
f32 y;
f32 x;
f32 z;
s32 temp_s0_3;
s32 actorID;
s32 temp_s2;
s8 temp_v0_4;
SelectableTarget* target;
s32 outVar;
Actor* actor;
f32 x, y, z;
s32 outVal;
s32 row;
s32 column;
s32 layer;
s32 phi_a2;
s32 i;
actor = (Actor *) evt_get_variable(script, *args++);
actorID = evt_get_variable(script, *args++);
temp_s2 = evt_get_variable(script, *args++);
temp_s0_3 = *args++;
outVar = *args++;
if (actor == ACTOR_SELF) {
actor = (Actor *) script->owner1.actor;
if (actorID == ACTOR_SELF) {
actorID = script->owner1.actorID;
}
actor = get_actor((s32) actor);
actor = get_actor(actorID);
x = actor->currentPos.x;
y = actor->currentPos.y;
z = actor->currentPos.z;
outVal = -1;
if (y < 40.0f) {
phi_a2 = -1;
row = 0;
} else {
phi_a2 = -1;
} else if (y < 85.0f) {
row = 1;
if (!(y < 85.0f)) {
row = 3;
if (y < 100.0f) {
row = 2;
}
}
} else if (y < 100.0f) {
row = 2;
} else {
row = 3;
}
column = 0;
if (!(x < 25.0f)) {
if (x < 25.0f) {
column = 0;
} else if (x < 65.0f) {
column = 1;
if (!(x < 65.0f)) {
column = 3;
if (x < 105.0f) {
column = 2;
}
}
} else if (x < 105.0f) {
column = 2;
} else {
column = 3;
}
layer = 1;
if (z < -30.0f) {
layer = 0;
} else {
layer = 1;
}
switch (temp_s2) {
case 0:
for (i = 0; i < actor->targetListLength; i++) {
target = &actor->targetData[actor->targetIndexList[i]];
SelectableTarget* target = &actor->targetData[actor->targetIndexList[i]];
if (target->homeCol == column && target->layer == layer && target->homeRow < row) {
actor->targetActorID = target->actorID;
actor->targetPartIndex = target->partID;
phi_a2 = 0;
outVal = 0;
}
}
break;
case 1:
for (i = 0; i < actor->targetListLength; i++) {
target = &actor->targetData[actor->targetIndexList[i]];
SelectableTarget* target = &actor->targetData[actor->targetIndexList[i]];
if (target->homeCol == column && target->layer == layer && target->homeRow < row) {
actor->targetActorID = target->actorID;
actor->targetPartIndex = target->partID;
phi_a2 = 0;
outVal = 0;
}
}
break;
case -1:
for (i = 0; i < actor->targetListLength; i++) {
target = &actor->targetData[actor->targetIndexList[i]];
SelectableTarget* target = &actor->targetData[actor->targetIndexList[i]];
if (target->homeCol == column && target->layer == layer && target->homeRow < row) {
actor->targetActorID = target->actorID;
actor->targetPartIndex = target->partID;
phi_a2 = 0;
outVal = 0;
}
}
break;
}
evt_set_variable(script, temp_s0_3, phi_a2);
evt_set_variable(script, outVar, outVal);
return ApiStatus_DONE2;
}
#else
s32 func_8026E558(Evt*, s32);
INCLUDE_ASM(s32, "actor_api", func_8026E558);
#endif

View File

@ -7,6 +7,7 @@ extern s32 D_80294280;
extern s32 D_802A9620;
extern HudScript HudScript_BlueMeter[];
extern HudScript HudScript_AButton[];
extern HudScript HudScript_MashAButton[];
extern HudScript HudScript_RunAwayOK[];
s32 func_8024FAFC(s32);
@ -82,7 +83,105 @@ ApiStatus func_802A916C_425CBC(Evt* script, s32 isInitialCall) {
return ApiStatus_DONE2;
}
INCLUDE_ASM(s32, "battle/action_cmd/07", func_802A9228_425D78);
void func_802A9228_425D78(void) {
ActionCommandStatus* actionCommandStatus = &gActionCommandStatus;
BattleStatus* battleStatus = &gBattleStatus;
s32 id;
switch (actionCommandStatus->state) {
case 0:
btl_set_popup_duration(99);
id = actionCommandStatus->hudElements[0];
if (actionCommandStatus->unk_61 != 0) {
hud_element_clear_flags(id, 2);
}
hud_element_set_alpha(id, 255);
id = actionCommandStatus->hudElements[1];
hud_element_set_alpha(id, 255);
if (actionCommandStatus->unk_61 != 0) {
hud_element_clear_flags(id, 2);
}
id = actionCommandStatus->hudElements[2];
hud_element_set_alpha(id, 255);
if (actionCommandStatus->unk_61 != 0) {
hud_element_clear_flags(id, 2);
}
actionCommandStatus->state = 1;
break;
case 1:
btl_set_popup_duration(99);
actionCommandStatus->hudElementX += 20;
if (actionCommandStatus->hudElementX > 50) {
actionCommandStatus->hudElementX = 50;
}
hud_element_set_render_pos(actionCommandStatus->hudElements[0], actionCommandStatus->hudElementX, actionCommandStatus->hudElementY);
hud_element_set_render_pos(actionCommandStatus->hudElements[1], actionCommandStatus->hudElementX, actionCommandStatus->hudElementY + 28);
hud_element_set_render_pos(actionCommandStatus->hudElements[2], actionCommandStatus->hudElementX + 31, actionCommandStatus->hudElementY + 14);
break;
case 10:
btl_set_popup_duration(99);
if (actionCommandStatus->unk_4E != 0) {
actionCommandStatus->unk_4E--;
return;
}
hud_element_set_script(actionCommandStatus->hudElements[0], HudScript_MashAButton);
battleStatus->actionSuccess = 0;
D_802A9620 = 1;
actionCommandStatus->unk_5D = 0;
actionCommandStatus->state = 0xB;
actionCommandStatus->unk_54 = actionCommandStatus->unk_52;
// fallthrough
case 11:
btl_set_popup_duration(99);
if (battleStatus->currentButtonsPressed & BUTTON_A) {
s32 fillAmt = battleStatus->unk_434[actionCommandStatus->unk_50] * 6;
if (actionCommandStatus->unk_5D == 0) {
actionCommandStatus->barFillLevel += fillAmt;
}
}
if (actionCommandStatus->barFillLevel > 10000) {
actionCommandStatus->barFillLevel = 10000;
actionCommandStatus->unk_5D = 3;
}
if (actionCommandStatus->unk_5D != 0) {
actionCommandStatus->unk_5D--;
if (actionCommandStatus->unk_5D == 0) {
actionCommandStatus->barFillLevel = 0;
battleStatus->actionSuccess++;
}
}
battleStatus->unk_84 = actionCommandStatus->barFillLevel / 100;
if (actionCommandStatus->unk_54 != 0) {
actionCommandStatus->unk_54--;
return;
}
btl_set_popup_duration(0);
actionCommandStatus->unk_54 = 5;
actionCommandStatus->state = 0xC;
break;
case 12:
if (actionCommandStatus->unk_54 != 0) {
actionCommandStatus->unk_54--;
return;
}
func_80268C9C();
break;
}
}
void func_802A94D8_426028(void) {
ActionCommandStatus* actionCommandStatus = &gActionCommandStatus;

View File

@ -4,7 +4,7 @@
#define NAMESPACE action_command_0A
extern s32 D_802942E0;
extern s32 HudScript_MashAButton;
extern HudScript HudScript_MashAButton[];
extern HudScript HudScript_100pct[];
extern HudScript HudScript_BlueMeter[];
extern HudScript HudScript_AButton[];
@ -59,7 +59,106 @@ ApiStatus func_802A9000_4273B0(Evt* script, s32 isInitialCall) {
#include "common/MashActionCommandInit.inc.c"
INCLUDE_ASM(s32, "battle/action_cmd/0A", func_802A928C_42763C);
void func_802A928C_42763C(void) {
ActionCommandStatus* actionCommandStatus = &gActionCommandStatus;
BattleStatus* battleStatus = &gBattleStatus;
s32 id;
s32 cutoff;
switch (actionCommandStatus->state) {
case 0:
btl_set_popup_duration(99);
id = actionCommandStatus->hudElements[0];
hud_element_set_alpha(id, 255);
if (actionCommandStatus->unk_61 != 0) {
hud_element_clear_flags(id, 2);
}
id = actionCommandStatus->hudElements[1];
hud_element_set_alpha(id, 255);
if (actionCommandStatus->unk_61 != 0) {
hud_element_clear_flags(id, 2);
}
actionCommandStatus->state = 1;
break;
case 1:
btl_set_popup_duration(99);
actionCommandStatus->hudElementX += 20;
if (actionCommandStatus->hudElementX > 50) {
actionCommandStatus->hudElementX = 50;
}
hud_element_set_render_pos(actionCommandStatus->hudElements[0], actionCommandStatus->hudElementX, actionCommandStatus->hudElementY);
hud_element_set_render_pos(actionCommandStatus->hudElements[1], actionCommandStatus->hudElementX, actionCommandStatus->hudElementY + 28);
break;
case 10:
btl_set_popup_duration(99);
if (actionCommandStatus->unk_4E != 0) {
actionCommandStatus->unk_4E--;
return;
}
hud_element_set_script(actionCommandStatus->hudElements[0], HudScript_MashAButton);
actionCommandStatus->barFillLevel = 0;
actionCommandStatus->state = 0xB;
actionCommandStatus->unk_54 = actionCommandStatus->unk_52;
// fallthrough
case 11:
btl_set_popup_duration(99);
if (battleStatus->currentButtonsPressed & BUTTON_A) {
actionCommandStatus->barFillLevel += battleStatus->unk_434[actionCommandStatus->unk_50] * 15;
}
if (actionCommandStatus->barFillLevel >= 10000) {
id = actionCommandStatus->hudElements[2];
actionCommandStatus->barFillLevel = 10000;
actionCommandStatus->unk_68 = 1;
hud_element_set_render_pos(id, actionCommandStatus->hudElementX + 50, actionCommandStatus->hudElementY + 28);
hud_element_clear_flags(id, 2);
}
battleStatus->unk_84 = actionCommandStatus->barFillLevel / 100;
if (actionCommandStatus->unk_54 != 0) {
actionCommandStatus->unk_54--;
return;
}
if (actionCommandStatus->barFillLevel == 0) {
battleStatus->actionSuccess = -1;
} else {
battleStatus->actionSuccess = actionCommandStatus->barFillLevel / 100;
}
cutoff = actionCommandStatus->mashMeterCutoffs[actionCommandStatus->mashMeterIntervals - 1];
if (battleStatus->actionSuccess >= cutoff) {
battleStatus->unk_86 = 1;
} else {
battleStatus->unk_86 = -2;
}
if (battleStatus->actionSuccess == 100) {
func_80269160();
}
btl_set_popup_duration(0);
actionCommandStatus->unk_54 = 5;
actionCommandStatus->state = 0xC;
break;
case 12:
if (actionCommandStatus->unk_54 != 0) {
actionCommandStatus->unk_54--;
return;
}
func_80268C9C();
break;
}
}
#include "common/UnkActionCommandFunc1.inc.c"

View File

@ -9,8 +9,13 @@ void func_80268834(s32, s32, s16, s32);
extern HudScript HudScript_BlueMeter[];
extern HudScript HudScript_AButton[];
extern HudScript HudScript_MashAButton[];
extern HudScript HudScript_100pct[];
extern s32 D_80294340;
s32 D_802A9852_4292C0[] = { 0, 25, 50, 75, 75, 0, 0, 0 };
BSS s32 air_lift_bss_pre[2];
BSS s32 air_lift_bss_0;
ApiStatus func_802A9000_428A70(Evt* script, s32 isInitialCall) {
@ -80,7 +85,7 @@ ApiStatus func_802A9184_428BF4(Evt* script, s32 isInitialCall) {
mashMeterCutoff = actionCommandStatus->mashMeterCutoffs[actionCommandStatus->mashMeterIntervals - 1];
actionCommandStatus->unk_5C = 0;
battleStatus->flags1 &= ~0x8000;
battleStatus->flags1 &= ~BS_FLAGS1_8000;
actionCommandStatus->state = 10;
battleStatus->unk_82 = mashMeterCutoff;
@ -89,7 +94,147 @@ ApiStatus func_802A9184_428BF4(Evt* script, s32 isInitialCall) {
return ApiStatus_DONE2;
}
INCLUDE_ASM(s32, "battle/action_cmd/air_lift", func_802A9278_428CE8);
void func_802A9278_428CE8(void) {
ActionCommandStatus* actionCommandStatus = &gActionCommandStatus;
BattleStatus* battleStatus = &gBattleStatus;
s32 id;
switch (actionCommandStatus->state) {
case 0:
btl_set_popup_duration(99);
id = actionCommandStatus->hudElements[0];
hud_element_set_alpha(id, 255);
if (actionCommandStatus->unk_61 != 0) {
hud_element_clear_flags(id, 2);
}
id = actionCommandStatus->hudElements[1];
hud_element_set_alpha(id, 255);
if (actionCommandStatus->unk_61 != 0) {
hud_element_clear_flags(id, 2);
}
actionCommandStatus->state = 1;
break;
case 1:
btl_set_popup_duration(99);
if (actionCommandStatus->unk_6C != 0) {
actionCommandStatus->unk_6C--;
return;
}
actionCommandStatus->hudElementX += 20;
if (actionCommandStatus->hudElementX > 50) {
actionCommandStatus->hudElementX = 50;
}
hud_element_set_render_pos(actionCommandStatus->hudElements[0], actionCommandStatus->hudElementX, actionCommandStatus->hudElementY);
hud_element_set_render_pos(actionCommandStatus->hudElements[1], actionCommandStatus->hudElementX, actionCommandStatus->hudElementY + 28);
break;
case 10:
btl_set_popup_duration(99);
if (actionCommandStatus->unk_4E != 0) {
actionCommandStatus->unk_4E--;
return;
}
hud_element_set_script(actionCommandStatus->hudElements[0], HudScript_MashAButton);
air_lift_bss_0 = 1;
actionCommandStatus->unk_54 = actionCommandStatus->unk_52;
sfx_play_sound_with_params(0x80000041, 0, 0, 0);
actionCommandStatus->state = 0xB;
// fallthrough
case 11:
btl_set_popup_duration(99);
if (actionCommandStatus->unk_68 == 0) {
if (actionCommandStatus->unk_5A != 0) {
s32 a = actionCommandStatus->mashMeterCutoffs[actionCommandStatus->mashMeterIntervals];
actionCommandStatus->barFillLevel -= D_802A9852_4292C0[actionCommandStatus->barFillLevel / a / 20];
if (actionCommandStatus->barFillLevel < 0) {
actionCommandStatus->barFillLevel = 0;
}
} else {
actionCommandStatus->barFillLevel -= 10;
if (actionCommandStatus->barFillLevel < 0) {
actionCommandStatus->barFillLevel = 0;
}
}
}
if (battleStatus->unk_83 != 0 && (battleStatus->currentButtonsPressed & BUTTON_A)) {
if (actionCommandStatus->unk_5A != 0) {
s32 a = battleStatus->unk_434[actionCommandStatus->unk_50];
s32 b = actionCommandStatus->unk_5A * 820;
actionCommandStatus->barFillLevel += (a * b) / 10000;
} else {
actionCommandStatus->barFillLevel += 100;
if (actionCommandStatus->barFillLevel >= 500) {
actionCommandStatus->barFillLevel = 500;
}
}
}
if (actionCommandStatus->barFillLevel > 10000) {
actionCommandStatus->barFillLevel = 10000;
actionCommandStatus->unk_68 = 1;
id = actionCommandStatus->hudElements[2];
hud_element_set_render_pos(id, actionCommandStatus->hudElementX + 50, actionCommandStatus->hudElementY + 28);
hud_element_clear_flags(id, 2);
}
battleStatus->actionSuccess = actionCommandStatus->barFillLevel / 100;
if (battleStatus->unk_84 < battleStatus->actionSuccess) {
battleStatus->unk_84 = battleStatus->actionSuccess;
}
sfx_adjust_env_sound_params(0x80000041, 0, 0, battleStatus->actionSuccess * 12);
if (actionCommandStatus->unk_54 != 0) {
actionCommandStatus->unk_54--;
return;
}
if (actionCommandStatus->unk_5A == 0) {
battleStatus->unk_84 = 0;
}
battleStatus->actionSuccess = battleStatus->unk_84;
if (rand_int(99) < battleStatus->actionSuccess) {
battleStatus->unk_86 = 1;
battleStatus->actionSuccess = 1;
} else {
battleStatus->unk_86 = -2;
battleStatus->actionSuccess = -1;
}
if (battleStatus->actionSuccess == 1) {
func_80269160();
}
btl_set_popup_duration(0);
sfx_stop_sound(0x80000041);
actionCommandStatus->unk_54 = 20;
actionCommandStatus->state = 0xC;
break;
case 12:
if (actionCommandStatus->unk_5A == 0) {
actionCommandStatus->barFillLevel -= 100;
if (actionCommandStatus->barFillLevel < 0) {
actionCommandStatus->barFillLevel = 0;
}
}
if (actionCommandStatus->unk_54 != 0) {
actionCommandStatus->unk_54--;
return;
}
func_80268C9C();
break;
}
}
void func_802A96EC_42915C(void) {
ActionCommandStatus* actionCommandStatus = &gActionCommandStatus;

View File

@ -1,4 +1,5 @@
#include "common.h"
#include "battle/battle.h"
#include "hud_element.h"
#define NAMESPACE action_command_air_raid
@ -6,9 +7,15 @@
extern HudScript HudScript_BlueMeter[];
extern HudScript HudScript_StickNeutral[];
extern HudScript HudScript_100pct[];
extern HudScript HudScript_StickMashLeft[];
extern s32 D_80294360;
s32 D_802A9970_429C90[] = { 0, 25, 50, 75, 75, };
s32 D_802A9984_429CA4[] = { 40, 70, 99, 200, };
s32 D_802A9994_429CB4[] = { 35, 60, 80, 99, 200, };
s32 D_802A99A8_429CC8[] = { 35, 35, 60, 80, 99, 200, };
ApiStatus func_802A9000_429320(void) {
ActionCommandStatus* actionCommandStatus = &gActionCommandStatus;
BattleStatus* battleStatus = &gBattleStatus;
@ -60,7 +67,167 @@ ApiStatus func_802A9000_429320(void) {
#include "common/MashActionCommandInit.inc.c"
INCLUDE_ASM(s32, "battle/action_cmd/air_raid", func_802A9294_4295B4);
void func_802A9294_4295B4(void) {
ActionCommandStatus* actionCommandStatus = &gActionCommandStatus;
BattleStatus* battleStatus = &gBattleStatus;
Actor* partner = battleStatus->partnerActor;
s32 cutoff;
s32 id;
switch (actionCommandStatus->state) {
case 0:
btl_set_popup_duration(99);
id = actionCommandStatus->hudElements[0];
hud_element_set_alpha(id, 255);
if (actionCommandStatus->unk_61 != 0) {
hud_element_clear_flags(id, 2);
}
id = actionCommandStatus->hudElements[1];
hud_element_set_alpha(id, 255);
if (actionCommandStatus->unk_61 != 0) {
hud_element_clear_flags(id, 2);
}
actionCommandStatus->state = 1;
break;
case 1:
btl_set_popup_duration(99);
if (actionCommandStatus->unk_6C != 0) {
actionCommandStatus->unk_6C--;
return;
}
actionCommandStatus->hudElementX += 20;
if (actionCommandStatus->hudElementX > 50) {
actionCommandStatus->hudElementX = 50;
}
hud_element_set_render_pos(actionCommandStatus->hudElements[0], actionCommandStatus->hudElementX, actionCommandStatus->hudElementY);
hud_element_set_render_pos(actionCommandStatus->hudElements[1], actionCommandStatus->hudElementX, actionCommandStatus->hudElementY + 28);
break;
case 10:
btl_set_popup_duration(99);
if (actionCommandStatus->unk_4E != 0) {
actionCommandStatus->unk_4E--;
return;
}
hud_element_set_script(actionCommandStatus->hudElements[0], HudScript_StickMashLeft);
actionCommandStatus->barFillLevel = 0;
battleStatus->unk_85 = 0;
actionCommandStatus->unk_5C = 0;
actionCommandStatus->unk_54 = actionCommandStatus->unk_52;
sfx_play_sound_with_params(0x80000041, 0, 0, 0);
actionCommandStatus->state = 11;
// fallthrough
case 11:
btl_set_popup_duration(99);
if (actionCommandStatus->unk_68 == 0) {
cutoff = actionCommandStatus->mashMeterCutoffs[actionCommandStatus->mashMeterIntervals];
actionCommandStatus->barFillLevel -= D_802A9970_429C90[actionCommandStatus->barFillLevel / cutoff / 20];
if (actionCommandStatus->barFillLevel < 0) {
actionCommandStatus->barFillLevel = 0;
}
if (actionCommandStatus->unk_68 == 0) {
if ( // todo remove assignment from conditional
(!(battleStatus->currentButtonsDown & BUTTON_STICK_LEFT) || (actionCommandStatus->unk_5C = 1, !(battleStatus->currentButtonsDown & BUTTON_STICK_LEFT))) &&
(actionCommandStatus->unk_5C != 0))
{
actionCommandStatus->barFillLevel += (battleStatus->unk_434[actionCommandStatus->unk_50] * 850) / 100;
actionCommandStatus->unk_5C = 0;
}
if (battleStatus->currentButtonsPressed & BUTTON_STICK_RIGHT) {
actionCommandStatus->barFillLevel -= (battleStatus->unk_434[actionCommandStatus->unk_50] * 850) / 100;
}
}
}
if (actionCommandStatus->barFillLevel < 0) {
actionCommandStatus->barFillLevel = 0;
}
if (actionCommandStatus->barFillLevel > 10000) {
id = actionCommandStatus->hudElements[2];
actionCommandStatus->barFillLevel = 10000;
actionCommandStatus->unk_68 = 1;
hud_element_set_render_pos(id, actionCommandStatus->hudElementX + 50, actionCommandStatus->hudElementY + 28);
hud_element_clear_flags(id, 2);
}
battleStatus->unk_84 = actionCommandStatus->barFillLevel / 100;
sfx_adjust_env_sound_params(0x80000041, 0, 0, battleStatus->unk_84 * 12);
switch (partner->actorBlueprint->level) {
case 0:
if (battleStatus->unk_84 >= D_802A9984_429CA4[battleStatus->unk_85]) {
battleStatus->unk_85++;
}
if (battleStatus->unk_85 > 0 && battleStatus->unk_84 < D_802A9984_429CA4[battleStatus->unk_85 - 1]) {
battleStatus->unk_85--;
}
break;
case 1:
if (battleStatus->unk_84 >= D_802A9994_429CB4[battleStatus->unk_85]) {
battleStatus->unk_85++;
}
if (battleStatus->unk_85 > 0 && battleStatus->unk_84 < D_802A9994_429CB4[battleStatus->unk_85 - 1]) {
battleStatus->unk_85--;
}
break;
case 2:
if (battleStatus->unk_84 >= D_802A99A8_429CC8[battleStatus->unk_85]) {
battleStatus->unk_85++;
}
if (battleStatus->unk_85 > 0 && battleStatus->unk_84 < D_802A99A8_429CC8[battleStatus->unk_85 - 1]) {
battleStatus->unk_85--;
}
break;
}
if (actionCommandStatus->unk_54 != 0) {
actionCommandStatus->unk_54--;
return;
}
if (actionCommandStatus->barFillLevel == 0) {
battleStatus->actionSuccess = -1;
} else {
battleStatus->actionSuccess = actionCommandStatus->barFillLevel / 100;
}
cutoff = actionCommandStatus->mashMeterCutoffs[actionCommandStatus->mashMeterIntervals - 1];
if (battleStatus->actionSuccess <= cutoff) {
battleStatus->unk_86 = -2;
} else {
battleStatus->unk_86 = 1;
}
if (battleStatus->actionSuccess == 100) {
func_80269160();
}
btl_set_popup_duration(0);
sfx_stop_sound(0x80000041);
actionCommandStatus->unk_54 = 5;
actionCommandStatus->state = 12;
break;
case 12:
if (actionCommandStatus->unk_54 != 0) {
actionCommandStatus->unk_54--;
return;
}
func_80268C9C();
break;
}
}
#include "common/UnkActionCommandFunc1.inc.c"

View File

@ -24,7 +24,7 @@ Stage NAMESPACE = {
.shape = "arn_bt01_shape",
.hit = "arn_bt01_hit",
.bg = "arn_bg",
.preBattle = N(beforeBattle_802278F0),
.postBattle = N(afterBattle_80227910),
.preBattle = &N(beforeBattle_802278F0),
.postBattle = &N(afterBattle_80227910),
.foregroundModelList = N(foregroundModelList_80227920),
};

View File

@ -41,7 +41,7 @@ Stage NAMESPACE = {
.shape = "arn_bt02_shape",
.hit = "arn_bt02_hit",
.bg = "arn_bg",
.preBattle = N(beforeBattle_80227A0C),
.postBattle = N(afterBattle_80227A48),
.preBattle = &N(beforeBattle_80227A0C),
.postBattle = &N(afterBattle_80227A48),
.foregroundModelList = N(foregroundModelList_80227A58),
};

View File

@ -24,7 +24,7 @@ Stage NAMESPACE = {
.shape = "arn_bt03_shape",
.hit = "arn_bt03_hit",
.bg = "arn_bg",
.preBattle = N(beforeBattle_80227A90),
.postBattle = N(afterBattle_80227AB0),
.preBattle = &N(beforeBattle_80227A90),
.postBattle = &N(afterBattle_80227AB0),
.foregroundModelList = N(foregroundModelList_80227AC0),
};

View File

@ -24,7 +24,7 @@ Stage NAMESPACE = {
.texture = "arn_tex",
.shape = "arn_bt04_shape",
.hit = "arn_bt04_hit",
.preBattle = N(beforeBattle_80227B00),
.postBattle = N(afterBattle_80227B3C),
.preBattle = &N(beforeBattle_80227B00),
.postBattle = &N(afterBattle_80227B3C),
.foregroundModelList = N(foregroundModelList_80227B4C),
};

View File

@ -24,7 +24,7 @@ Stage NAMESPACE = {
.texture = "arn_tex",
.shape = "arn_bt05_shape",
.hit = "arn_bt05_hit",
.preBattle = N(beforeBattle_80227B80),
.postBattle = N(afterBattle_80227BBC),
.preBattle = &N(beforeBattle_80227B80),
.postBattle = &N(afterBattle_80227BBC),
.foregroundModelList = N(foregroundModelList_80227BCC),
};

View File

@ -23,7 +23,7 @@ Stage NAMESPACE = {
.texture = "arn_tex",
.shape = "arn_bt06_shape",
.hit = "arn_bt06_hit",
.preBattle = N(beforeBattle_80227C00),
.postBattle = N(afterBattle_80227C20),
.preBattle = &N(beforeBattle_80227C00),
.postBattle = &N(afterBattle_80227C20),
.foregroundModelList = N(foregroundModelList_80227C30),
};

View File

@ -18,6 +18,6 @@ Stage NAMESPACE = {
.texture = "dgb_tex",
.shape = "dgb_bt01_shape",
.hit = "dgb_bt01_hit",
.preBattle = N(beforeBattle_8021B050),
.postBattle = N(afterBattle_8021B070),
.preBattle = &N(beforeBattle_8021B050),
.postBattle = &N(afterBattle_8021B070),
};

View File

@ -18,6 +18,6 @@ Stage NAMESPACE = {
.texture = "dgb_tex",
.shape = "dgb_bt02_shape",
.hit = "dgb_bt02_hit",
.preBattle = N(beforeBattle_8021B0B0),
.postBattle = N(afterBattle_8021B0D0),
.preBattle = &N(beforeBattle_8021B0B0),
.postBattle = &N(afterBattle_8021B0D0),
};

View File

@ -18,6 +18,6 @@ Stage NAMESPACE = {
.texture = "dgb_tex",
.shape = "dgb_bt03_shape",
.hit = "dgb_bt03_hit",
.preBattle = N(beforeBattle_8021B110),
.postBattle = N(afterBattle_8021B130),
.preBattle = &N(beforeBattle_8021B110),
.postBattle = &N(afterBattle_8021B130),
};

View File

@ -23,7 +23,7 @@ Stage NAMESPACE = {
.texture = "dgb_tex",
.shape = "dgb_bt04_shape",
.hit = "dgb_bt04_hit",
.preBattle = N(beforeBattle_8021B170),
.postBattle = N(afterBattle_8021B190),
.preBattle = &N(beforeBattle_8021B170),
.postBattle = &N(afterBattle_8021B190),
.foregroundModelList = N(foregroundModelList_8021B1A0),
};

View File

@ -18,6 +18,6 @@ Stage NAMESPACE = {
.texture = "dgb_tex",
.shape = "dgb_bt05_shape",
.hit = "dgb_bt05_hit",
.preBattle = N(beforeBattle_8021B1D0),
.postBattle = N(afterBattle_8021B1F0),
.preBattle = &N(beforeBattle_8021B1D0),
.postBattle = &N(afterBattle_8021B1F0),
};

View File

@ -75,7 +75,7 @@ Stage NAMESPACE = {
.shape = "nok_bt02_shape",
.hit = "nok_bt02_hit",
.bg = "nok_bg",
.preBattle = N(beforeBattle_802256E8),
.postBattle = N(afterBattle_8022589C),
.preBattle = &N(beforeBattle_802256E8),
.postBattle = &N(afterBattle_8022589C),
.foregroundModelList = N(foregroundModelList_802258AC),
};

View File

@ -178,7 +178,7 @@ Stage NAMESPACE = {
.shape = "hos_bt01_shape",
.hit = "hos_bt01_hit",
.bg = "hos_bg",
.preBattle = N(beforeBattle_80224BD0),
.postBattle = N(afterBattle_80225598),
.preBattle = &N(beforeBattle_80224BD0),
.postBattle = &N(afterBattle_80225598),
.foregroundModelList = N(foregroundModelList_802255A8),
};

View File

@ -98,6 +98,6 @@ Stage NAMESPACE = {
.shape = "hos_bt02_shape",
.hit = "hos_bt02_hit",
.bg = "nok_bg",
.preBattle = N(beforeBattle_802258E0),
.postBattle = N(afterBattle_80225E20),
.preBattle = &N(beforeBattle_802258E0),
.postBattle = &N(afterBattle_80225E20),
};

View File

@ -18,6 +18,6 @@ EvtScript N(afterBattle_802238EC) = {
Stage NAMESPACE = {
.texture = "isk_tex",
.shape = "isk_bt00_shape",
.preBattle = N(beforeBattle_802238B0),
.postBattle = N(afterBattle_802238EC),
.preBattle = &N(beforeBattle_802238B0),
.postBattle = &N(afterBattle_802238EC),
};

View File

@ -19,6 +19,6 @@ Stage NAMESPACE = {
.texture = "isk_tex",
.shape = "isk_bt01_shape",
.hit = "isk_bt01_hit",
.preBattle = N(beforeBattle_80223930),
.postBattle = N(afterBattle_8022396C),
.preBattle = &N(beforeBattle_80223930),
.postBattle = &N(afterBattle_8022396C),
};

View File

@ -24,7 +24,7 @@ Stage NAMESPACE = {
.texture = "isk_tex",
.shape = "isk_bt02_shape",
.hit = "isk_bt02_hit",
.preBattle = N(beforeBattle_802239B0),
.postBattle = N(afterBattle_802239EC),
.preBattle = &N(beforeBattle_802239B0),
.postBattle = &N(afterBattle_802239EC),
.foregroundModelList = N(foregroundModelList_802239FC),
};

View File

@ -30,7 +30,7 @@ Stage NAMESPACE = {
.texture = "isk_tex",
.shape = "isk_bt02_shape",
.hit = "isk_bt02_hit",
.preBattle = N(beforeBattle_80223D90),
.postBattle = N(afterBattle_80223E44),
.preBattle = &N(beforeBattle_80223D90),
.postBattle = &N(afterBattle_80223E44),
.foregroundModelList = N(foregroundModelList_80223E54),
};

View File

@ -26,7 +26,7 @@ Stage NAMESPACE = {
.texture = "isk_tex",
.shape = "isk_bt02_shape",
.hit = "isk_bt02_hit",
.preBattle = N(beforeBattle_80223E90),
.postBattle = N(afterBattle_80223EF4),
.preBattle = &N(beforeBattle_80223E90),
.postBattle = &N(afterBattle_80223EF4),
.foregroundModelList = N(foregroundModelList_80223F04),
};

View File

@ -20,6 +20,6 @@ Stage NAMESPACE = {
.shape = "isk_bt03_shape",
.hit = "isk_bt03_hit",
.bg = "sbk3_bg",
.preBattle = N(beforeBattle_80223A40),
.postBattle = N(afterBattle_80223A7C),
.preBattle = &N(beforeBattle_80223A40),
.postBattle = &N(afterBattle_80223A7C),
};

View File

@ -19,6 +19,6 @@ Stage NAMESPACE = {
.texture = "isk_tex",
.shape = "isk_bt03_shape",
.hit = "isk_bt03_hit",
.preBattle = N(beforeBattle_80223D10),
.postBattle = N(afterBattle_80223D4C),
.preBattle = &N(beforeBattle_80223D10),
.postBattle = &N(afterBattle_80223D4C),
};

View File

@ -43,7 +43,7 @@ Stage NAMESPACE = {
.texture = "isk_tex",
.shape = "isk_bt04_shape",
.hit = "isk_bt04_hit",
.preBattle = N(beforeBattle_80223AC0),
.postBattle = N(afterBattle_80223B08),
.preBattle = &N(beforeBattle_80223AC0),
.postBattle = &N(afterBattle_80223B08),
.foregroundModelList = N(foregroundModelList_80223B24),
};

View File

@ -38,6 +38,6 @@ Stage NAMESPACE = {
.texture = "isk_tex",
.shape = "isk_bt05_shape",
.hit = "isk_bt05_hit",
.preBattle = N(beforeBattle_80223B60),
.postBattle = N(afterBattle_80223BA8),
.preBattle = &N(beforeBattle_80223B60),
.postBattle = &N(afterBattle_80223BA8),
};

View File

@ -35,6 +35,6 @@ Stage NAMESPACE = {
.texture = "isk_tex",
.shape = "isk_bt06_shape",
.hit = "isk_bt06_hit",
.preBattle = N(beforeBattle_80223BF0),
.postBattle = N(afterBattle_80223C38),
.preBattle = &N(beforeBattle_80223BF0),
.postBattle = &N(afterBattle_80223C38),
};

View File

@ -37,6 +37,6 @@ Stage NAMESPACE = {
.texture = "isk_tex",
.shape = "isk_bt06_shape",
.hit = "isk_bt06_hit",
.preBattle = N(beforeBattle_80223F40),
.postBattle = N(afterBattle_80223F9C),
.preBattle = &N(beforeBattle_80223F40),
.postBattle = &N(afterBattle_80223F9C),
};

View File

@ -35,6 +35,6 @@ Stage NAMESPACE = {
.texture = "isk_tex",
.shape = "isk_bt07_shape",
.hit = "isk_bt07_hit",
.preBattle = N(beforeBattle_80223C80),
.postBattle = N(afterBattle_80223CC8),
.preBattle = &N(beforeBattle_80223C80),
.postBattle = &N(afterBattle_80223CC8),
};

View File

@ -35,6 +35,6 @@ Stage NAMESPACE = {
.texture = "isk_tex",
.shape = "isk_bt08_shape",
.hit = "isk_bt08_hit",
.preBattle = N(beforeBattle_80223FE0),
.postBattle = N(afterBattle_80224028),
.preBattle = &N(beforeBattle_80223FE0),
.postBattle = &N(afterBattle_80224028),
};

View File

@ -18,6 +18,6 @@ EvtScript N(afterBattle_8021FD2C) = {
Stage NAMESPACE = {
.texture = "isk_tex",
.shape = "isk_bt00_shape",
.preBattle = N(beforeBattle_8021FCF0),
.postBattle = N(afterBattle_8021FD2C),
.preBattle = &N(beforeBattle_8021FCF0),
.postBattle = &N(afterBattle_8021FD2C),
};

View File

@ -19,6 +19,6 @@ Stage NAMESPACE = {
.texture = "isk_tex",
.shape = "isk_bt01_shape",
.hit = "isk_bt01_hit",
.preBattle = N(beforeBattle_8021FD70),
.postBattle = N(afterBattle_8021FDAC),
.preBattle = &N(beforeBattle_8021FD70),
.postBattle = &N(afterBattle_8021FDAC),
};

View File

@ -24,7 +24,7 @@ Stage NAMESPACE = {
.texture = "isk_tex",
.shape = "isk_bt02_shape",
.hit = "isk_bt02_hit",
.preBattle = N(beforeBattle_8021FDF0),
.postBattle = N(afterBattle_8021FE2C),
.preBattle = &N(beforeBattle_8021FDF0),
.postBattle = &N(afterBattle_8021FE2C),
.foregroundModelList = N(foregroundModelList_8021FE3C),
};

View File

@ -30,7 +30,7 @@ Stage NAMESPACE = {
.texture = "isk_tex",
.shape = "isk_bt02_shape",
.hit = "isk_bt02_hit",
.preBattle = N(beforeBattle_8021FE80),
.postBattle = N(afterBattle_8021FF34),
.preBattle = &N(beforeBattle_8021FE80),
.postBattle = &N(afterBattle_8021FF34),
.foregroundModelList = N(foregroundModelList_8021FF44),
};

View File

@ -26,7 +26,7 @@ Stage NAMESPACE = {
.texture = "isk_tex",
.shape = "isk_bt02_shape",
.hit = "isk_bt02_hit",
.preBattle = N(beforeBattle_8021FF80),
.postBattle = N(afterBattle_8021FFE4),
.preBattle = &N(beforeBattle_8021FF80),
.postBattle = &N(afterBattle_8021FFE4),
.foregroundModelList = N(foregroundModelList_8021FFF4),
};

View File

@ -20,6 +20,6 @@ Stage NAMESPACE = {
.shape = "isk_bt03_shape",
.hit = "isk_bt03_hit",
.bg = "sbk3_bg",
.preBattle = N(beforeBattle_80220030),
.postBattle = N(afterBattle_8022006C),
.preBattle = &N(beforeBattle_80220030),
.postBattle = &N(afterBattle_8022006C),
};

View File

@ -19,6 +19,6 @@ Stage NAMESPACE = {
.texture = "isk_tex",
.shape = "isk_bt03_shape",
.hit = "isk_bt03_hit",
.preBattle = N(beforeBattle_802200B0),
.postBattle = N(afterBattle_802200EC),
.preBattle = &N(beforeBattle_802200B0),
.postBattle = &N(afterBattle_802200EC),
};

View File

@ -42,7 +42,7 @@ Stage NAMESPACE = {
.texture = "isk_tex",
.shape = "isk_bt04_shape",
.hit = "isk_bt04_hit",
.preBattle = N(beforeBattle_80220130),
.postBattle = N(afterBattle_80220178),
.preBattle = &N(beforeBattle_80220130),
.postBattle = &N(afterBattle_80220178),
.foregroundModelList = N(foregroundModelList_80220194),
};

View File

@ -37,6 +37,6 @@ Stage NAMESPACE = {
.texture = "isk_tex",
.shape = "isk_bt05_shape",
.hit = "isk_bt05_hit",
.preBattle = N(beforeBattle_802201D0),
.postBattle = N(afterBattle_80220218),
.preBattle = &N(beforeBattle_802201D0),
.postBattle = &N(afterBattle_80220218),
};

View File

@ -34,6 +34,6 @@ Stage NAMESPACE = {
.texture = "isk_tex",
.shape = "isk_bt06_shape",
.hit = "isk_bt06_hit",
.preBattle = N(beforeBattle_80220260),
.postBattle = N(afterBattle_802202A8),
.preBattle = &N(beforeBattle_80220260),
.postBattle = &N(afterBattle_802202A8),
};

View File

@ -36,6 +36,6 @@ Stage NAMESPACE = {
.texture = "isk_tex",
.shape = "isk_bt06_shape",
.hit = "isk_bt06_hit",
.preBattle = N(beforeBattle_802202F0),
.postBattle = N(afterBattle_8022034C),
.preBattle = &N(beforeBattle_802202F0),
.postBattle = &N(afterBattle_8022034C),
};

View File

@ -34,6 +34,6 @@ Stage NAMESPACE = {
.texture = "isk_tex",
.shape = "isk_bt07_shape",
.hit = "isk_bt07_hit",
.preBattle = N(beforeBattle_80220390),
.postBattle = N(afterBattle_802203D8),
.preBattle = &N(beforeBattle_80220390),
.postBattle = &N(afterBattle_802203D8),
};

View File

@ -36,8 +36,8 @@ Stage NAMESPACE = {
.shape = "iwa_bt01_shape",
.hit = "iwa_bt01_hit",
.bg = "iwa_bg\0",
.preBattle = N(beforeBattle_80220860),
.postBattle = N(afterBattle_80220894),
.preBattle = &N(beforeBattle_80220860),
.postBattle = &N(afterBattle_80220894),
.foregroundModelList = N(foregroundModelList_802208A4),
.specialFormationSize = 1,
.specialFormation = &N(specialFormation_802208E4),

View File

@ -26,7 +26,7 @@ Stage NAMESPACE = {
.shape = "iwa_bt01_shape",
.hit = "iwa_bt01_hit",
.bg = "iwa_bg",
.preBattle = N(beforeBattle_80221510),
.postBattle = N(afterBattle_80221544),
.preBattle = &N(beforeBattle_80221510),
.postBattle = &N(afterBattle_80221544),
.foregroundModelList = N(foregroundModelList_80221554),
};

View File

@ -34,8 +34,8 @@ Stage NAMESPACE = {
.shape = "iwa_bt02_shape",
.hit = "iwa_bt02_hit",
.bg = "iwa_bg",
.preBattle = N(beforeBattle_80221590),
.postBattle = N(afterBattle_802215B0),
.preBattle = &N(beforeBattle_80221590),
.postBattle = &N(afterBattle_802215B0),
.foregroundModelList = N(foregroundModelList_802215C0),
};

View File

@ -125,6 +125,6 @@ Stage NAMESPACE = {
.shape = "jan_bt00_shape",
.hit = "jan_bt00_hit",
.bg = "yos_bg",
.preBattle = N(beforeBattle_802271C4),
.postBattle = N(afterBattle_80227298),
.preBattle = &N(beforeBattle_802271C4),
.postBattle = &N(afterBattle_80227298),
};

View File

@ -133,7 +133,7 @@ Stage NAMESPACE = {
.shape = "jan_bt01_shape",
.hit = "jan_bt01_hit",
.bg = "yos_bg",
.preBattle = N(beforeBattle_80227994),
.postBattle = N(afterBattle_80227A6C),
.preBattle = &N(beforeBattle_80227994),
.postBattle = &N(afterBattle_80227A6C),
.foregroundModelList = N(foregroundModelList_80227A7C),
};

View File

@ -133,7 +133,7 @@ Stage NAMESPACE = {
.shape = "jan_bt01_shape",
.hit = "jan_bt01_hit",
.bg = "yos_bg",
.preBattle = N(beforeBattle_80228174),
.postBattle = N(afterBattle_8022824C),
.preBattle = &N(beforeBattle_80228174),
.postBattle = &N(afterBattle_8022824C),
.foregroundModelList = N(foregroundModelList_8022825C),
};

View File

@ -24,7 +24,7 @@ Stage NAMESPACE = {
.shape = "jan_bt02_shape",
.hit = "jan_bt02_hit",
.bg = "yos_bg",
.preBattle = N(beforeBattle_80228290),
.postBattle = N(afterBattle_802282CC),
.preBattle = &N(beforeBattle_80228290),
.postBattle = &N(afterBattle_802282CC),
.foregroundModelList = N(foregroundModelList_802282DC),
};

View File

@ -25,7 +25,7 @@ Stage NAMESPACE = {
.shape = "jan_bt03_shape",
.hit = "jan_bt03_hit",
.bg = "jan_bg",
.preBattle = N(beforeBattle_80228320),
.postBattle = N(afterBattle_80228370),
.preBattle = &N(beforeBattle_80228320),
.postBattle = &N(afterBattle_80228370),
.foregroundModelList = N(foregroundModelList_80228380),
};

View File

@ -25,7 +25,7 @@ Stage NAMESPACE = {
.shape = "jan_bt03_shape",
.hit = "jan_bt03_hit",
.bg = "jan_bg",
.preBattle = N(beforeBattle_802283C0),
.postBattle = N(afterBattle_80228410),
.preBattle = &N(beforeBattle_802283C0),
.postBattle = &N(afterBattle_80228410),
.foregroundModelList = N(foregroundModelList_80228420),
};

View File

@ -25,7 +25,7 @@ Stage NAMESPACE = {
.shape = "jan_bt04_shape",
.hit = "jan_bt04_hit",
.bg = "jan_bg",
.preBattle = N(beforeBattle_80228460),
.postBattle = N(afterBattle_802284B0),
.preBattle = &N(beforeBattle_80228460),
.postBattle = &N(afterBattle_802284B0),
.foregroundModelList = N(foregroundModelList_802284C0),
};

View File

@ -25,7 +25,7 @@ Stage NAMESPACE = {
.shape = "jan_bt04_shape",
.hit = "jan_bt04_hit",
.bg = "jan_bg",
.preBattle = N(beforeBattle_802284F0),
.postBattle = N(afterBattle_80228540),
.preBattle = &N(beforeBattle_802284F0),
.postBattle = &N(afterBattle_80228540),
.foregroundModelList = N(foregroundModelList_80228550),
};

View File

@ -125,6 +125,6 @@ Stage NAMESPACE = {
.shape = "jan_bt00_shape",
.hit = "jan_bt00_hit",
.bg = "yos_bg",
.preBattle = N(beforeBattle_8021E1F4),
.postBattle = N(afterBattle_8021E2C8),
.preBattle = &N(beforeBattle_8021E1F4),
.postBattle = &N(afterBattle_8021E2C8),
};

View File

@ -133,7 +133,7 @@ Stage NAMESPACE = {
.shape = "jan_bt01_shape",
.hit = "jan_bt01_hit",
.bg = "yos_bg",
.preBattle = N(beforeBattle_8021E9C4),
.postBattle = N(afterBattle_8021EA9C),
.preBattle = &N(beforeBattle_8021E9C4),
.postBattle = &N(afterBattle_8021EA9C),
.foregroundModelList = N(foregroundModelList_8021EAAC),
};

View File

@ -133,7 +133,7 @@ Stage NAMESPACE = {
.shape = "jan_bt01_shape",
.hit = "jan_bt01_hit",
.bg = "yos_bg",
.preBattle = N(beforeBattle_8021F1A4),
.postBattle = N(afterBattle_8021F27C),
.preBattle = &N(beforeBattle_8021F1A4),
.postBattle = &N(afterBattle_8021F27C),
.foregroundModelList = N(foregroundModelList_8021F28C),
};

View File

@ -24,7 +24,7 @@ Stage NAMESPACE = {
.shape = "jan_bt02_shape",
.hit = "jan_bt02_hit",
.bg = "yos_bg",
.preBattle = N(beforeBattle_8021F2C0),
.postBattle = N(afterBattle_8021F2FC),
.preBattle = &N(beforeBattle_8021F2C0),
.postBattle = &N(afterBattle_8021F2FC),
.foregroundModelList = N(foregroundModelList_8021F30C),
};

View File

@ -25,7 +25,7 @@ Stage NAMESPACE = {
.shape = "jan_bt03_shape",
.hit = "jan_bt03_hit",
.bg = "jan_bg",
.preBattle = N(beforeBattle_8021F350),
.postBattle = N(afterBattle_8021F3A0),
.preBattle = &N(beforeBattle_8021F350),
.postBattle = &N(afterBattle_8021F3A0),
.foregroundModelList = N(foregroundModelList_8021F3B0),
};

View File

@ -25,7 +25,7 @@ Stage NAMESPACE = {
.shape = "jan_bt03_shape",
.hit = "jan_bt03_hit",
.bg = "jan_bg",
.preBattle = N(beforeBattle_8021F3F0),
.postBattle = N(afterBattle_8021F440),
.preBattle = &N(beforeBattle_8021F3F0),
.postBattle = &N(afterBattle_8021F440),
.foregroundModelList = N(foregroundModelList_8021F450),
};

View File

@ -25,7 +25,7 @@ Stage NAMESPACE = {
.shape = "jan_bt04_shape",
.hit = "jan_bt04_hit",
.bg = "jan_bg",
.preBattle = N(beforeBattle_8021F490),
.postBattle = N(afterBattle_8021F4E0),
.preBattle = &N(beforeBattle_8021F490),
.postBattle = &N(afterBattle_8021F4E0),
.foregroundModelList = N(foregroundModelList_8021F4F0),
};

View File

@ -25,7 +25,7 @@ Stage NAMESPACE = {
.shape = "jan_bt04_shape",
.hit = "jan_bt04_hit",
.bg = "jan_bg",
.preBattle = N(beforeBattle_8021F520),
.postBattle = N(afterBattle_8021F570),
.preBattle = &N(beforeBattle_8021F520),
.postBattle = &N(afterBattle_8021F570),
.foregroundModelList = N(foregroundModelList_8021F580),
};

View File

@ -308,7 +308,7 @@ Stage NAMESPACE = {
.texture = "kgr_tex",
.shape = "kgr_bt01_shape",
.hit = "kgr_bt01_hit",
.preBattle = N(beforeBattle_8021D3B4),
.postBattle = N(afterBattle_8021D598),
.preBattle = &N(beforeBattle_8021D3B4),
.postBattle = &N(afterBattle_8021D598),
.foregroundModelList = N(foregroundModelList_8021D5A8),
};

View File

@ -18,6 +18,6 @@ Stage NAMESPACE = {
.texture = "kmr_tex",
.shape = "kmr_bt02_shape",
.bg = "kmr_bg",
.preBattle = N(beforeBattle_8021FDA0),
.postBattle = N(afterBattle_8021FDC0),
.preBattle = &N(beforeBattle_8021FDA0),
.postBattle = &N(afterBattle_8021FDC0),
};

View File

@ -31,7 +31,7 @@ Stage NAMESPACE = {
.shape = "kmr_bt03_shape",
.hit = "kmr_bt03_hit",
.bg = "kmr_bg",
.preBattle = N(beforeBattle_80220188),
.postBattle = N(afterBattle_80220200),
.preBattle = &N(beforeBattle_80220188),
.postBattle = &N(afterBattle_80220200),
.foregroundModelList = N(foregroundModelList_80220210),
};

View File

@ -31,7 +31,7 @@ Stage NAMESPACE = {
.shape = "kmr_bt04_shape",
.hit = "kmr_bt04_hit",
.bg = "kmr_bg",
.preBattle = N(beforeBattle_802205D8),
.postBattle = N(afterBattle_80220650),
.preBattle = &N(beforeBattle_802205D8),
.postBattle = &N(afterBattle_80220650),
.foregroundModelList = N(foregroundModelList_80220660),
};

View File

@ -26,7 +26,7 @@ Stage NAMESPACE = {
.shape = "kmr_bt05_shape",
.hit = "kmr_bt05_hit",
.bg = "kmr_bg",
.preBattle = N(beforeBattle_80220A28),
.postBattle = N(afterBattle_80220A5C),
.preBattle = &N(beforeBattle_80220A28),
.postBattle = &N(afterBattle_80220A5C),
.foregroundModelList = N(foregroundModelList_80220A6C),
};

View File

@ -33,7 +33,7 @@ Stage NAMESPACE = {
.shape = "kmr_bt06_shape",
.hit = "kmr_bt06_hit",
.bg = "kmr_bg",
.preBattle = N(beforeBattle_80220E28),
.postBattle = N(afterBattle_80220EAC),
.preBattle = &N(beforeBattle_80220E28),
.postBattle = &N(afterBattle_80220EAC),
.foregroundModelList = N(foregroundModelList_80220EBC),
};

View File

@ -18,6 +18,6 @@ Stage NAMESPACE = {
.texture = "kmr_tex",
.shape = "kmr_bt02_shape",
.bg = "kmr_bg",
.preBattle = N(beforeBattle_80224700),
.postBattle = N(afterBattle_80224720),
.preBattle = &N(beforeBattle_80224700),
.postBattle = &N(afterBattle_80224720),
};

View File

@ -31,7 +31,7 @@ Stage NAMESPACE = {
.shape = "kmr_bt03_shape",
.hit = "kmr_bt03_hit",
.bg = "kmr_bg",
.preBattle = N(beforeBattle_80224AE8),
.postBattle = N(afterBattle_80224B60),
.preBattle = &N(beforeBattle_80224AE8),
.postBattle = &N(afterBattle_80224B60),
.foregroundModelList = N(foregroundModelList_80224B70),
};

View File

@ -31,7 +31,7 @@ Stage NAMESPACE = {
.shape = "kmr_bt04_shape",
.hit = "kmr_bt04_hit",
.bg = "kmr_bg",
.preBattle = N(beforeBattle_80224F38),
.postBattle = N(afterBattle_80224FB0),
.preBattle = &N(beforeBattle_80224F38),
.postBattle = &N(afterBattle_80224FB0),
.foregroundModelList = N(foregroundModelList_80224FC0),
};

View File

@ -26,7 +26,7 @@ Stage NAMESPACE = {
.shape = "kmr_bt05_shape",
.hit = "kmr_bt05_hit",
.bg = "kmr_bg",
.preBattle = N(beforeBattle_80225388),
.postBattle = N(afterBattle_802253BC),
.preBattle = &N(beforeBattle_80225388),
.postBattle = &N(afterBattle_802253BC),
.foregroundModelList = N(foregroundModelList_802253CC),
};

View File

@ -34,7 +34,7 @@ Stage NAMESPACE = {
.shape = "kmr_bt06_shape",
.hit = "kmr_bt06_hit",
.bg = "kmr_bg",
.preBattle = N(beforeBattle_80225788),
.postBattle = N(afterBattle_8022580C),
.preBattle = &N(beforeBattle_80225788),
.postBattle = &N(afterBattle_8022580C),
.foregroundModelList = N(foregroundModelList_8022581C),
};

Some files were not shown because too many files have changed in this diff Show More