mirror of
https://github.com/FireEmblemUniverse/fireemblem8u.git
synced 2024-11-23 13:19:53 +00:00
1087 lines
37 KiB
C
1087 lines
37 KiB
C
#pragma once
|
|
|
|
#include "global.h"
|
|
#include "proc.h"
|
|
#include "anime.h"
|
|
#include "bmitem.h"
|
|
|
|
enum ekr_battle_unit_position {
|
|
EKR_POS_L,
|
|
EKR_POS_R
|
|
};
|
|
|
|
int GetAnimPosition(struct Anim * anim);
|
|
|
|
enum ekr_hit_identifer {
|
|
EKR_HITTED = 0,
|
|
EKR_MISS
|
|
};
|
|
|
|
int CheckRoundMiss(s16);
|
|
|
|
struct ProcEkrBattleDeamon {
|
|
PROC_HEADER;
|
|
|
|
/* 29 */
|
|
};
|
|
|
|
struct ProcEkrBattle {
|
|
PROC_HEADER;
|
|
|
|
/* 29 */ u8 speedup;
|
|
/* 2A */ u8 _pad_2A[0x2C - 0x2A];
|
|
/* 2C */ s16 timer;
|
|
/* 2E */ s16 end;
|
|
/* 30 */ u8 _pad_30[0x44 - 0x30];
|
|
/* 44 */ int side;
|
|
/* 48 */ int counter;
|
|
/* 4C */ u8 _pad_4C[0x54 - 0x4C];
|
|
/* 54 */ int is_quote;
|
|
/* 58 */ int unk58;
|
|
/* 5C */ struct Anim * anim;
|
|
};
|
|
|
|
struct ProcEkrLvupFan {
|
|
PROC_HEADER;
|
|
|
|
/* 29 */ u8 _pad_29[0x2C - 0x29];
|
|
/* 2C */ s16 timer;
|
|
};
|
|
|
|
struct EkrGaugeStruct1 {
|
|
u8 _pad_00[0x3C - 0x0];
|
|
void *unk3C;
|
|
};
|
|
|
|
struct ProcEkrGauge {
|
|
PROC_HEADER;
|
|
|
|
/* 29 */ u8 battle_init; /* 1 in battle-starting and 0 after battle started */
|
|
/* 2A */ u8 valid;
|
|
/* 2B */ u8 _pad_2B[0x32 - 0x2B];
|
|
/* 32 */ s16 unk32;
|
|
/* 34 */ u8 _pad_34[0x3A - 0x34];
|
|
/* 3A */ s16 unk3A;
|
|
/* 3C */ u8 _pad_3C[0x44 - 0x3C];
|
|
/* 44 */ int unk44;
|
|
/* 48 */ int unk48;
|
|
/* 4C */ int unk4C;
|
|
/* 50 */ int unk50;
|
|
/* 54 */
|
|
};
|
|
|
|
enum gEkrDistanceType_index {
|
|
EKR_DISTANCE_CLOSE,
|
|
EKR_DISTANCE_FAR,
|
|
EKR_DISTANCE_FARFAR,
|
|
EKR_DISTANCE_MONOCOMBAT,
|
|
EKR_DISTANCE_PROMOTION,
|
|
|
|
EKR_DISTANCE_MAX
|
|
};
|
|
extern s16 gEkrDistanceType;
|
|
|
|
struct ProcEfxSpdQuake {
|
|
PROC_HEADER;
|
|
|
|
/* 29 */ STRUCT_PAD(0x29, 0x2C);
|
|
/* 2C */ s16 timer;
|
|
/* 2E */ STRUCT_PAD(0x2E, 0x44);
|
|
/* 44 */ const s16 * vecs;
|
|
/* 48 */ STRUCT_PAD(0x48, 0x5C);
|
|
/* 5C */ struct Anim * anim;
|
|
};
|
|
|
|
void NewEfxspdquake(struct Anim * anim);
|
|
void sub_8055A64(struct ProcEfxSpdQuake * proc);
|
|
void sub_8055B38(struct ProcEfxSpdQuake * proc);
|
|
|
|
struct ProcEkrBattleStarting {
|
|
PROC_HEADER;
|
|
|
|
/* 29 */ STRUCT_PAD(0x29, 0x2C);
|
|
|
|
/* 2C */ s16 timer;
|
|
/* 2E */ s16 terminator;
|
|
|
|
/* 30 */ STRUCT_PAD(0x30, 0x32);
|
|
|
|
/* 32 */ s16 x1;
|
|
/* 34 */ s16 x2;
|
|
|
|
/* 36 */ STRUCT_PAD(0x36, 0x3A);
|
|
|
|
/* 3A */ s16 y1;
|
|
/* 3C */ s16 y2;
|
|
};
|
|
|
|
void NewEkrBattleStarting(void);
|
|
void ekrBaStart_InitScreen(struct ProcEkrBattleStarting * proc);
|
|
void ekrBaStart_SreenFailIn(struct ProcEkrBattleStarting * proc);
|
|
void ekrBaStart_InitBattleScreen(struct ProcEkrBattleStarting * proc);
|
|
void ekrBaStart_ExecEkrBattle6C(struct ProcEkrBattleStarting * proc);
|
|
void ekrBaStart_8055FE8(struct ProcEkrBattleStarting * proc);
|
|
void ekrBaStart_8056024(struct ProcEkrBattleStarting * proc);
|
|
void ekrBaStart_8056078(struct ProcEkrBattleStarting * proc);
|
|
|
|
struct ProcEkrBattleEnding {
|
|
PROC_HEADER;
|
|
|
|
/* 29 */ STRUCT_PAD(0x29, 0x2C);
|
|
|
|
/* 2C */ s16 timer;
|
|
/* 2E */ s16 terminator;
|
|
|
|
/* 30 */ STRUCT_PAD(0x30, 0x32);
|
|
|
|
/* 32 */ s16 x1;
|
|
/* 34 */ s16 x2;
|
|
|
|
/* 36 */ STRUCT_PAD(0x36, 0x3A);
|
|
|
|
/* 3A */ s16 y1;
|
|
/* 3C */ s16 y2;
|
|
};
|
|
|
|
void NewEkrbattleending(void);
|
|
void ekrBattleEnding_80560F0(struct ProcEkrBattleEnding * proc);
|
|
void ekrBattleEnding_8056170(struct ProcEkrBattleEnding * proc);
|
|
void ekrBattleEnding_80561C8(struct ProcEkrBattleEnding * proc);
|
|
void ekrBattleEnding_8056228(struct ProcEkrBattleEnding * proc);
|
|
void ekrBattleEnding_8056288(struct ProcEkrBattleEnding * proc);
|
|
void ekrBattleEnding_8056310(struct ProcEkrBattleEnding * proc);
|
|
void ekrBattleEnding_8056390(struct ProcEkrBattleEnding * proc);
|
|
void ekrBattleEnding_8056484(struct ProcEkrBattleEnding * proc);
|
|
|
|
struct ProcEkrBaseKaiten {
|
|
PROC_HEADER;
|
|
|
|
/* 29 */ u8 unk29;
|
|
/* 2A */ u16 unk2A;
|
|
/* 2C */ s16 timer;
|
|
/* 2E */ s16 terminator;
|
|
/* 30 */ u16 unk30;
|
|
|
|
/* 32 */ s16 x1;
|
|
/* 34 */ s16 x2;
|
|
/* 36 */ s16 unk36;
|
|
|
|
/* 38 */ STRUCT_PAD(0x38, 0x3A);
|
|
|
|
/* 3A */ s16 y1;
|
|
/* 3C */ s16 y2;
|
|
/* 3E */ s16 unk3E;
|
|
|
|
/* 40 */ STRUCT_PAD(0x40, 0x44);
|
|
|
|
/* 44 */ int type;
|
|
|
|
/* 48 */ STRUCT_PAD(0x48, 0x5C);
|
|
|
|
/* 5C */ struct Anim * anim;
|
|
/* 60 */ const u16 * unk60;
|
|
};
|
|
|
|
void NewEkrBaseKaiten(int identifier);
|
|
void EkrBaseKaitenMain(struct ProcEkrBaseKaiten * proc);
|
|
|
|
struct ProcUnitKakudai {
|
|
PROC_HEADER;
|
|
|
|
/* 29 */ STRUCT_PAD(0x29, 0x2C);
|
|
|
|
/* 2C */ s16 timer;
|
|
/* 2E */ s16 terminator;
|
|
/* 30 */ u16 unk30;
|
|
|
|
/* 32 */ s16 x1;
|
|
/* 34 */ s16 x2;
|
|
/* 36 */ s16 left_pos;
|
|
/* 38 */ s16 right_pos;
|
|
/* 3A */ s16 y1;
|
|
/* 3C */ s16 y2;
|
|
|
|
/* 3E */ STRUCT_PAD(0x3E, 0x44);
|
|
|
|
/* 44 */ int type;
|
|
|
|
/* 48 */ STRUCT_PAD(0x48, 0x4C);
|
|
|
|
/* 4C */ u32 valid_l;
|
|
/* 50 */ u32 valid_r;
|
|
/* 54 */ void * pOaml;
|
|
/* 58 */ void * pOamr;
|
|
};
|
|
|
|
void NewEkrUnitKakudai(int identifier);
|
|
void UnitKakudaiPrepareAnimScript(struct ProcUnitKakudai * proc);
|
|
void UnitKakudaiMain(struct ProcUnitKakudai * proc);
|
|
void UnitKakudaiEndNop(struct ProcUnitKakudai * proc);
|
|
|
|
struct ProcEkrIntroWindow {
|
|
PROC_HEADER;
|
|
|
|
/* 29 */ STRUCT_PAD(0x29, 0x2C);
|
|
|
|
/* 2C */ s16 timer;
|
|
/* 2E */ s16 terminator;
|
|
/* 30 */ s16 ymax;
|
|
|
|
/* 32 */ STRUCT_PAD(0x32, 0x44);
|
|
|
|
/* 44 */ int type;
|
|
/* 48 */ int ymax_name;
|
|
};
|
|
|
|
void NewEkrWindowAppear(int identifier, int);
|
|
bool CheckEkrWindowAppearUnexist(void);
|
|
void EkrWindowAppearMain(struct ProcEkrIntroWindow * proc);
|
|
void NewEkrNamewinAppear(int identifier, int duration, int delay);
|
|
bool CheckEkrNamewinAppearUnexist(void);
|
|
void EkrNamewinAppearDelay(struct ProcEkrIntroWindow * proc);
|
|
void EkrNamewinAppearMain(struct ProcEkrIntroWindow * proc);
|
|
void NewEkrBaseAppear(int identifier, int duration);
|
|
bool CheckEkrBaseAppearUnexist(void);
|
|
void EkrBaseAppearMain(struct ProcEkrIntroWindow * proc);
|
|
|
|
extern struct ProcCmd ProcScr_ekrWindowAppear[];
|
|
extern struct ProcCmd ProcScr_ekrNamewinAppear[];
|
|
extern struct ProcCmd ProcScr_ekrBaseAppear[];
|
|
|
|
extern int gEkrWindowAppearExist;
|
|
extern int gEkrNamewinAppearExist;
|
|
extern int gProcEkrBaseAppearExist;
|
|
|
|
struct ProcEkrChienCHR {
|
|
PROC_HEADER;
|
|
|
|
/* 29 */ STRUCT_PAD(0x29, 0x5C);
|
|
|
|
/* 5C */ struct Anim * anim;
|
|
};
|
|
|
|
enum AnimRoundData_type_identifier {
|
|
ANIM_ROUND_HIT_CLOSE,
|
|
ANIM_ROUND_CRIT_CLOSE,
|
|
ANIM_ROUND_NONCRIT_FAR,
|
|
ANIM_ROUND_CRIT_FAR,
|
|
ANIM_ROUND_TAKING_MISS_CLOSE,
|
|
ANIM_ROUND_TAKING_MISS_FAR,
|
|
ANIM_ROUND_TAKING_HIT_CLOSE,
|
|
ANIM_ROUND_STANDING,
|
|
ANIM_ROUND_TAKING_HIT_FAR,
|
|
ANIM_ROUND_MISS_CLOSE,
|
|
ANIM_ROUND_MAX,
|
|
|
|
ANIM_ROUND_INVALID = -1,
|
|
};
|
|
|
|
enum anim_round_type {
|
|
ANIM_ROUND_BIT8 = 0x0100,
|
|
ANIM_ROUND_PIERCE = 0x0200,
|
|
ANIM_ROUND_GREAT_SHIELD = 0x0400,
|
|
ANIM_ROUND_SURE_SHOT = 0x0800,
|
|
ANIM_ROUND_SILENCER = 0x1000,
|
|
ANIM_ROUND_POISON = 0x2000,
|
|
ANIM_ROUND_BIT14 = 0x4000,
|
|
ANIM_ROUND_DEVIL = 0x8000,
|
|
};
|
|
|
|
extern u16 gAnimRoundData[];
|
|
s16 GetBattleAnimRoundType(int index);
|
|
s16 GetBattleAnimRoundTypeFlags(int);
|
|
|
|
#define GetRoundFlagByAnim(aAnim) (GetBattleAnimRoundTypeFlags((aAnim->nextRoundId - 1) * 2 + GetAnimPosition(aAnim)))
|
|
|
|
extern u16 gEfxHpLut[];
|
|
|
|
enum banim_mode_index {
|
|
BANIM_MODE_NORMAL_ATK,
|
|
BANIM_MODE_NORMAL_ATK_PRIORITY_L,
|
|
BANIM_MODE_CRIT_ATK,
|
|
BANIM_MODE_CRIT_ATK_PRIORITY_L,
|
|
BANIM_MODE_RANGED_ATK,
|
|
BANIM_MODE_RANGED_CRIT_ATK,
|
|
BANIM_MODE_CLOSE_DODGE,
|
|
BANIM_MODE_RANGED_DODGE,
|
|
BANIM_MODE_STANDING,
|
|
BANIM_MODE_STANDING2,
|
|
BANIM_MODE_RANGED_STANDING,
|
|
BANIM_MODE_MISSED_ATK,
|
|
|
|
BANIM_MODE_INVALID = -1,
|
|
};
|
|
|
|
struct BanimRoundScript {
|
|
u8 frame_front;
|
|
u8 priority_front;
|
|
u8 frame_back;
|
|
u8 priority_back;
|
|
};
|
|
|
|
#define SPECIAL_BANIM_WTYPE (0x100 | ITYPE_ITEM)
|
|
|
|
struct BattleAnimDef {
|
|
u16 wtype;
|
|
u16 index;
|
|
};
|
|
|
|
// extern const struct BanimRoundScript BanimDefaultModeConfig[ANIM_ROUND_MAX * 4];
|
|
extern const u8 BanimDefaultModeConfig[ANIM_ROUND_MAX * 4];
|
|
|
|
struct ProcEkrSubAnimeEmulator {
|
|
PROC_HEADER;
|
|
|
|
/* 29 */ u8 type;
|
|
/* 2A */ u8 valid;
|
|
/* 2C */ s16 timer;
|
|
/* 2E */ s16 scr_cur;
|
|
|
|
STRUCT_PAD(0x30, 0x32);
|
|
|
|
/* 32 */ s16 x1;
|
|
/* 34 */ s16 x2;
|
|
|
|
STRUCT_PAD(0x36, 0x3A);
|
|
|
|
/* 3A */ s16 y1;
|
|
/* 3C */ s16 y2;
|
|
|
|
STRUCT_PAD(0x3E, 0x44);
|
|
|
|
/* 44 */ u32 * anim_scr;
|
|
/* 48 */ void * sprite;
|
|
/* 4C */ int oam2Base;
|
|
/* 50 */ int oamBase;
|
|
};
|
|
|
|
struct ProcEkrSubAnimeEmulator * NewEkrsubAnimeEmulator(int x, int y, u32 * anim_scr, int type, int oam2Base, int oamBase, ProcPtr parent);
|
|
void EkrsubAnimeEmulatorMain(struct ProcEkrSubAnimeEmulator * proc);
|
|
|
|
struct ProcEfxSoundSE {
|
|
PROC_HEADER;
|
|
|
|
STRUCT_PAD(0x29, 0x2C);
|
|
|
|
/* 2C */ s16 timer;
|
|
|
|
STRUCT_PAD(0x2E, 0x44);
|
|
|
|
/* 44 */ int volume;
|
|
/* 48 */ int index;
|
|
};
|
|
|
|
void EfxPlaySE(int songid, int volume);
|
|
void Loop6C_efxSoundSE(struct ProcEfxSoundSE * proc);
|
|
void DoM4aSongNumStop(int);
|
|
void EfxOverrideBgm(int songid, int volume);
|
|
void StopBGM1(void);
|
|
void UnregisterEfxSoundSeExist(void);
|
|
void RegisterEfxSoundSeExist(void);
|
|
int CheckEfxSoundSeExist(void);
|
|
|
|
/**
|
|
* 00: PID
|
|
* 04: songid
|
|
* size = 08
|
|
*/
|
|
extern int gBanimBossBGMs[];
|
|
|
|
enum banim_faction_palette_idx {
|
|
BANIMPAL_BLUE = 0,
|
|
BANIMPAL_RED = 1,
|
|
BANIMPAL_GREEN = 2,
|
|
BANIMPAL_PURPLE = 3,
|
|
};
|
|
|
|
extern int gEkrDebugTimer, gEkrDebugUnk1;
|
|
|
|
extern u16 gBanimIdx_bak[2];
|
|
extern s16 gBanimUniquePal[2];
|
|
|
|
extern struct BattleUnit *gpEkrBattleUnitLeft;
|
|
extern struct BattleUnit *gpEkrBattleUnitRight;
|
|
extern struct Font gBanimFont;
|
|
|
|
extern struct Anim *gAnims[4];
|
|
extern void *gUnknown_02000010[2];
|
|
extern int gEkrDebugUnk2;
|
|
extern int gCtrlC01Blocking;
|
|
|
|
#define C01_BLOCKING_PRE_BATTLE(anim) (gCtrlC01Blocking == 1)
|
|
#define C01_BLOCKING_IN_BATTLE(anim) ((anim)->state3 & ANIM_BIT3_C01_BLOCKING_IN_BATTLE)
|
|
|
|
extern s16 gEkrXPosReal[2];
|
|
extern s16 gEkrYPosReal[2];
|
|
extern u16 gEkrXPosBase[2];
|
|
extern u16 gEkrYPosBase[2];
|
|
extern struct Vec2 gEkrBg0QuakeVec;
|
|
extern void *gUnknown_0200003C[2];
|
|
extern void *gUnknown_02000044[2];
|
|
extern void *gBanimTerrainPaletteMaybe[2];
|
|
extern u16 *gpEfxUnitPaletteBackup[2];
|
|
extern int *gpBanimModesLeft;
|
|
extern int *gpBanimModesRight;
|
|
extern struct ProcEkrBattle *gpProcEkrBattle;
|
|
extern struct ProcEkrGauge *gpProcEkrGauge;
|
|
extern u8 gBanimLeftImgSheetBuf[0x1000];
|
|
extern u8 gBanimRightImgSheetBuf[0x1000];
|
|
extern u16 gBanimPaletteLeft[0x50];
|
|
extern u16 gBanimPaletteRight[0x50];
|
|
extern u32 gBanimOaml[0x1600];
|
|
extern u32 gBanimOamr2[0x1600];
|
|
extern u16 gEfxPal[];
|
|
extern u16 gEfxTerrainPalette[];
|
|
extern u16 gObjBuf_EkrSideHitDmgCrit[];
|
|
extern u8 gUnk_Banim_02016DC8[];
|
|
extern u8 gUnk_Banim_02016E48[0x200];
|
|
extern u8 gUnk_Banim_02017048[0x200];
|
|
extern u8 gUnk_Banim_02017248[0x200];
|
|
extern u8 gUnk_Banim_02017448[0x200];
|
|
extern struct Text gBanimText[20];
|
|
extern u16 gEkrGaugeDecoder[];
|
|
extern u32 gEkrBattleEndFlag;
|
|
|
|
extern int gBanimLinkArenaFlag;
|
|
extern int gBattleDeamonActive;
|
|
extern struct ProcEkrBattleDeamon * gpProcEkrBattleDeamon;
|
|
extern s16 gEkrDebugModeMaybe;
|
|
extern s16 gBanimBG;
|
|
extern s16 gEkrInitialHitSide;
|
|
extern s16 gEkrSnowWeather;
|
|
extern s16 gBanimValid[2];
|
|
extern s16 gBanimPositionIsEnemy[2];
|
|
extern s16 gBanimFactionPal[2];
|
|
extern s16 gEkrSpellAnimIndex[2];
|
|
extern EWRAM_DATA s16 gBanimFloorfx[2];
|
|
extern EWRAM_DATA short gEkrBmLocation[4];
|
|
|
|
extern s16 gEfxHpLutOff[];
|
|
extern s16 gBanimIdx[2];
|
|
extern u8 gEkrPids[2];
|
|
extern struct Unit *gpEkrTriangleUnits[2];
|
|
extern char *gBanimTriAtkPalettes[2];
|
|
extern void * gBanimForceUnitChgDebug[2];
|
|
extern s16 gEkrGaugeHp[2];
|
|
extern s16 gBanimMaxHP[2];
|
|
extern s16 gEkrGaugeHpBak[2];
|
|
extern s16 gEkrGaugeHit[2];
|
|
extern s16 gEkrGaugeDmg[2];
|
|
extern s16 gEkrGaugeCrt[2];
|
|
extern s16 gBanimExpPrevious[2];
|
|
extern s16 gBanimExpGain[2];
|
|
extern s16 gBanimTerrain[2];
|
|
extern s16 gBanimCon[2];
|
|
extern s16 gBanimWtaBonus[2];
|
|
extern s16 gBanimEffectiveness[2];
|
|
extern s16 gBanimUniquePaletteDisabled[2];
|
|
|
|
extern u8 gBanimScrLeft[];
|
|
extern u8 gBanimScrRight[];
|
|
extern u8 gUnk_Banim_020145C8[];
|
|
extern u32 gBanimDoneFlag[];
|
|
extern u32 gEkrBgPosition;
|
|
extern ProcPtr gpProcEfxAnimeDrv;
|
|
extern const void *gpImgSheet[2];
|
|
extern struct ProcEfxBGCOL * gpProcEkrTogiColor;
|
|
extern int gUnk_Banim_0201FB28;
|
|
extern int gEkrBg2ScrollFlip;
|
|
extern u16 * gpBg2ScrollOffsetStart;
|
|
extern u16 * gpBg2ScrollOffset;
|
|
extern u16 gpBg2ScrollOffsetTable1[];
|
|
extern u16 gpBg2ScrollOffsetTable2[];
|
|
extern int gEkrBg1ScrollFlip;
|
|
extern u16 * gpBg1ScrollOffsetStart;
|
|
extern u16 * gpBg1ScrollOffset;
|
|
extern u16 gpBg1ScrollOffsetList1[];
|
|
extern u16 gpBg1ScrollOffsetList2[];
|
|
extern int gUnknown_02020044;
|
|
|
|
extern int gEkrMainBgmPlaying;
|
|
extern int gEfxSoundSeExist;
|
|
// extern ??? gpProcEkrClasschg
|
|
|
|
extern struct ProcCmd gProc_ekrBattleDeamon[];
|
|
extern struct ProcCmd gProc_ekrBattle[];
|
|
extern struct ProcCmd ProcScr_ekrLvupFan[];
|
|
extern struct ProcCmd ProcScr_ekrGauge[];
|
|
// extern ??? gUnknown_085B93D0
|
|
extern u8 gUnknown_085B940C[];
|
|
// extern ??? gUnknown_085B9424
|
|
// extern ??? gUnknown_085B949C
|
|
// extern ??? gUnknown_085B94F0
|
|
// extern ??? gUnknown_085B9544
|
|
extern u16 gUnknown_085B955C[];
|
|
extern u16 gUnknown_085B9574[];
|
|
extern u16 gUnknown_085B958C[];
|
|
extern u16 gUnknown_085B95A4[];
|
|
extern u16 gUnknown_085B95BC[];
|
|
extern u16 gUnknown_085B95D4[];
|
|
extern struct ProcCmd gProc_ekrDispUP[];
|
|
extern struct ProcCmd ProcScr_efxHPBar[];
|
|
extern struct ProcCmd ProcScr_EfxHpBarResire[];
|
|
extern struct ProcCmd ProcScr_EfxAvoid[];
|
|
extern struct ProcCmd ProcScr_efxHPBarLive[];
|
|
extern struct ProcCmd ProcScr_efxNoDamage[];
|
|
extern struct ProcCmd ProcScr_efxNoDamageYure[];
|
|
extern struct ProcCmd ProcScr_efxStatusCHG[];
|
|
extern struct ProcCmd ProcScr_efxDeadEvent[];
|
|
extern struct ProcCmd ProcScr_efxDead[];
|
|
extern struct ProcCmd ProcScr_efxDeadPika[];
|
|
extern struct ProcCmd ProcScr_efxDeadAlpha[];
|
|
extern struct ProcCmd ProcScr_efxDeadDragonAlpha[];
|
|
extern struct ProcCmd gProc_efxFarAttack[];
|
|
extern struct ProcCmd ProcScr_efxQuakePure[];
|
|
// extern ??? EfxQuakePureVecs
|
|
extern struct ProcCmd ProcScr_EfxHitQuakePure[];
|
|
extern struct ProcCmd ProcScr_efxQuake[];
|
|
extern struct ProcCmd ProcScr_EfxHitQuake[];
|
|
extern struct ProcCmd ProcScr_efxFlashBG[];
|
|
extern struct ProcCmd ProcScr_efxWhiteOUT[];
|
|
extern struct ProcCmd ProcScr_efxWhiteIN[];
|
|
extern struct ProcCmd ProcScr_efxBlackOUT[];
|
|
extern struct ProcCmd ProcScr_efxBlackIN[];
|
|
extern struct ProcCmd ProcScr_efxFlashHPBar[];
|
|
extern struct ProcCmd ProcScr_efxHPBarColorChange[];
|
|
extern struct ProcCmd ProcScr_efxFlashUnit[];
|
|
extern struct ProcCmd ProcScr_efxFlashUnitEffectEnd[];
|
|
extern struct ProcCmd ProcScr_efxStatusUnit[];
|
|
extern struct ProcCmd ProcScr_efxWeaponIcon[];
|
|
extern struct ProcCmd ProcScr_efxSpellCast[];
|
|
extern struct ProcCmd ProcScr_efxSPDQuake[];
|
|
extern struct ProcCmd ProcScr_ekrBattleStarting[];
|
|
extern struct ProcCmd ProcScr_ekrBattleEnding[];
|
|
extern struct ProcCmd ProcScr_EkrBaseKaiten[];
|
|
extern const u8 * CONST_DATA Imgs_085B9B84[];
|
|
extern const u8 * CONST_DATA Imgs_085B9BA4[];
|
|
extern u32 * AnimScrs_085B9BC4[];
|
|
extern u32 * AnimScrs_085B9BE4[];
|
|
extern u32 * AnimScrs_085B9C04[];
|
|
extern u32 * AnimScrs_085B9C24[];
|
|
extern u32 * AnimScrs_085B9C44[];
|
|
extern u32 * AnimScrs_085B9C64[];
|
|
extern const u16 * CONST_DATA gUnknown_085B9C84[];
|
|
extern const u16 * CONST_DATA gUnknown_085B9CA4[];
|
|
extern const u16 * CONST_DATA gUnknown_085B9CC4[];
|
|
extern struct ProcCmd ProcScr_ekrUnitKakudai[];
|
|
|
|
extern AnimScr BanimScr_DefaultAnim[];
|
|
extern void *TsaConfs_BanimTmA[];
|
|
extern struct ProcCmd gProc_ekrChienCHR[];
|
|
extern struct ProcCmd gProc_efxAnimeDrvProc[];
|
|
extern struct ProcCmd ProcScr_ekrUnitMainMini[];
|
|
extern struct ProcCmd gProc_ekrTogiInit[];
|
|
extern struct ProcCmd gProc_ekrTogiEnd[];
|
|
extern struct ProcCmd gProc_ekrTogiColor[];
|
|
|
|
extern const s16 gEfxNoDmgBgShakeOff[];
|
|
// extern ??? gUnknown_080DA4BA
|
|
extern const s16 gEfxQuakeVecs[];
|
|
// extern ??? gUnknown_080DA526
|
|
extern const s16 gEfxQuakeVecs2[];
|
|
// extern ??? gUnknown_080DA5BA
|
|
// extern ??? gUnknown_080DA604
|
|
// extern ??? gUnknown_080DA66E
|
|
// extern ??? gUnknown_080DA9F8
|
|
// extern ??? gUnknown_080DAA8E
|
|
extern const u16 gFrameLut_EfxHPBarColorChange1[];
|
|
extern const u16 gFrameLut_EfxHPBarColorChange2[];
|
|
extern const u16 gFrameLut_EfxStatusUnit[];
|
|
extern const u16 gFrameLut_EfxWeaponIcon[];
|
|
extern const u16 gUnknown_080DAE8C[];
|
|
extern const u16 gUnknown_080DAE96[];
|
|
extern const u16 gUnknown_080DAEA0[];
|
|
extern const u16 gUnknown_080DAEAA[];
|
|
extern const u16 gUnknown_080DAEB4[];
|
|
extern const u16 gUnknown_080DAEBE[];
|
|
extern const u16 gUnknown_080DAEC8[];
|
|
extern const u16 gUnknown_080DAED2[];
|
|
extern const u16 gUnknown_080DAEDC[];
|
|
extern const u16 gUnknown_080DAEE6[];
|
|
extern const u8 BattleTypeToAnimModeEndOfDodge[5];
|
|
extern const u8 BanimTypesPosLeft[5];
|
|
extern const u8 BanimTypesPosRight[5];
|
|
extern const u16 BanimLeftDefaultPos[5];
|
|
extern u16 gUnknown_080DAF60[];
|
|
extern const u8 Img_080DB034[];
|
|
extern const u8 Img_080DB538[];
|
|
extern const u8 Img_080DB9C4[];
|
|
extern const u8 Img_080DBE1C[];
|
|
extern const u8 Img_080DC350[];
|
|
extern const u16 Pal_080DC85C[2];
|
|
extern const u16 FrameConfig_AnimaHitBG[];
|
|
// extern ??? gFrameConfig_080DD1F4
|
|
// extern ??? gUnknown_080DD8C6
|
|
// extern ??? gUnknown_080DD8CC
|
|
// extern ??? gUnknown_080DD8D2
|
|
// extern ??? gUnknown_080DD8D8
|
|
// extern ??? gUnknown_080DD8EE
|
|
// extern ??? gUnknown_080DD930
|
|
// extern ??? gUnknown_080DD972
|
|
// extern ??? gUnknown_080DD9A4
|
|
// extern ??? gUnknown_080DE5E4
|
|
// extern ??? gUnknown_080DE624
|
|
// extern ??? gUnknown_080DE8A0
|
|
// extern ??? gUnknown_080DE8C0
|
|
// extern ??? gUnknown_080DE8DC
|
|
// extern ??? gUnknown_080DE900
|
|
// extern ??? gUnknown_080DE924
|
|
// extern ??? gUnknown_080DEA74
|
|
// extern ??? gUnknown_080DEBC8
|
|
// extern ??? gUnknown_080DEBF8
|
|
// extern ??? gUnknown_080DEC0C
|
|
// extern ??? gUnknown_080DEC30
|
|
// extern ??? gFrameConfig_GleipnirBg_Sigil
|
|
// extern ??? gFrameConfig_GleipnirBg_Nebula
|
|
// extern ??? gFrameConfig_GleipnirBg_Fog
|
|
// extern ??? gFrameConfig_efxCrimsonEyeBGFinish1
|
|
// extern ??? gFrameConfig_efxCrimsonEyeBG
|
|
// extern ??? gFrameConfig_efxDarkLongMonsBG01
|
|
// extern ??? gFrameConfig_efxDarkLongMonsBG02
|
|
// extern ??? gFrameConfig_efxGorgonBGDirt
|
|
// extern ??? gFrameConfig_efxGorgonBGTwister
|
|
extern const u16 gFrameConfig_efxGorgonBGFinish[];
|
|
extern const u16 FrameLut_EfxCriricalEffectBGCOL[];
|
|
extern const u16 gUnknown_080DF1EE[];
|
|
extern const u16 gUnknown_080DF26A[];
|
|
extern const u16 gUnknown_080DF2DC[];
|
|
extern const u16 FrameConfig_EfxMagFcastBg1[];
|
|
extern const u16 FrameConfig_EfxMagFcastBg2[];
|
|
extern const u16 FrameConfig_EfxMagFcastBg3[];
|
|
extern const u16 FrameConfig_EfxMagFcastBg4[];
|
|
extern const u16 FrameConf_EfxMagdhisEffectBG[];
|
|
extern const u16 FrameConf_EfxChillEffectBG[];
|
|
extern const u16 FrameConf_EfxChillEffectBGCOL[];
|
|
|
|
extern CONST_DATA struct BattleAnimDef AnimConf_088AEFD8[];
|
|
extern CONST_DATA struct BattleAnimDef AnimConf_088AEFE4[];
|
|
extern CONST_DATA struct BattleAnimDef AnimConf_088AEFF0[];
|
|
extern CONST_DATA struct BattleAnimDef AnimConf_088AEFFC[];
|
|
extern CONST_DATA struct BattleAnimDef AnimConf_088AF008[];
|
|
extern CONST_DATA struct BattleAnimDef AnimConf_088AF018[];
|
|
extern CONST_DATA struct BattleAnimDef AnimConf_088AF028[];
|
|
extern CONST_DATA struct BattleAnimDef AnimConf_088AF038[];
|
|
extern CONST_DATA struct BattleAnimDef AnimConf_088AF048[];
|
|
extern CONST_DATA struct BattleAnimDef AnimConf_088AF054[];
|
|
extern CONST_DATA struct BattleAnimDef AnimConf_088AF060[];
|
|
extern CONST_DATA struct BattleAnimDef AnimConf_088AF080[];
|
|
extern CONST_DATA struct BattleAnimDef AnimConf_088AF0A0[];
|
|
extern CONST_DATA struct BattleAnimDef AnimConf_088AF0AC[];
|
|
extern CONST_DATA struct BattleAnimDef AnimConf_088AF0B8[];
|
|
extern CONST_DATA struct BattleAnimDef AnimConf_088AF0C4[];
|
|
extern CONST_DATA struct BattleAnimDef AnimConf_088AF0D0[];
|
|
extern CONST_DATA struct BattleAnimDef AnimConf_088AF0EC[];
|
|
extern CONST_DATA struct BattleAnimDef AnimConf_088AF108[];
|
|
extern CONST_DATA struct BattleAnimDef AnimConf_088AF114[];
|
|
extern CONST_DATA struct BattleAnimDef AnimConf_088AF120[];
|
|
extern CONST_DATA struct BattleAnimDef AnimConf_088AF12C[];
|
|
extern CONST_DATA struct BattleAnimDef AnimConf_088AF138[];
|
|
extern CONST_DATA struct BattleAnimDef AnimConf_088AF144[];
|
|
extern CONST_DATA struct BattleAnimDef AnimConf_088AF150[];
|
|
extern CONST_DATA struct BattleAnimDef AnimConf_088AF168[];
|
|
extern CONST_DATA struct BattleAnimDef AnimConf_088AF180[];
|
|
extern CONST_DATA struct BattleAnimDef AnimConf_088AF198[];
|
|
extern CONST_DATA struct BattleAnimDef AnimConf_088AF1B0[];
|
|
extern CONST_DATA struct BattleAnimDef AnimConf_088AF1C0[];
|
|
extern CONST_DATA struct BattleAnimDef AnimConf_088AF1D0[];
|
|
extern CONST_DATA struct BattleAnimDef AnimConf_088AF1DC[];
|
|
extern CONST_DATA struct BattleAnimDef AnimConf_088AF1E8[];
|
|
extern CONST_DATA struct BattleAnimDef AnimConf_088AF1F8[];
|
|
extern CONST_DATA struct BattleAnimDef AnimConf_088AF208[];
|
|
extern CONST_DATA struct BattleAnimDef AnimConf_088AF214[];
|
|
extern CONST_DATA struct BattleAnimDef AnimConf_088AF220[];
|
|
extern CONST_DATA struct BattleAnimDef AnimConf_088AF234[];
|
|
extern CONST_DATA struct BattleAnimDef AnimConf_088AF248[];
|
|
extern CONST_DATA struct BattleAnimDef AnimConf_088AF260[];
|
|
extern CONST_DATA struct BattleAnimDef AnimConf_088AF278[];
|
|
extern CONST_DATA struct BattleAnimDef AnimConf_088AF290[];
|
|
extern CONST_DATA struct BattleAnimDef AnimConf_088AF2A8[];
|
|
extern CONST_DATA struct BattleAnimDef AnimConf_088AF2C0[];
|
|
extern CONST_DATA struct BattleAnimDef AnimConf_088AF2D8[];
|
|
extern CONST_DATA struct BattleAnimDef AnimConf_088AF2EC[];
|
|
extern CONST_DATA struct BattleAnimDef AnimConf_088AF300[];
|
|
extern CONST_DATA struct BattleAnimDef AnimConf_088AF318[];
|
|
extern CONST_DATA struct BattleAnimDef AnimConf_088AF330[];
|
|
extern CONST_DATA struct BattleAnimDef AnimConf_088AF348[];
|
|
extern CONST_DATA struct BattleAnimDef AnimConf_088AF360[];
|
|
extern CONST_DATA struct BattleAnimDef AnimConf_088AF36C[];
|
|
extern CONST_DATA struct BattleAnimDef AnimConf_088AF38C[];
|
|
extern CONST_DATA struct BattleAnimDef AnimConf_088AF3AC[];
|
|
extern CONST_DATA struct BattleAnimDef AnimConf_088AF3B8[];
|
|
extern CONST_DATA struct BattleAnimDef AnimConf_088AF3D0[];
|
|
extern CONST_DATA struct BattleAnimDef AnimConf_088AF3E4[];
|
|
extern CONST_DATA struct BattleAnimDef AnimConf_088AF3F0[];
|
|
extern CONST_DATA struct BattleAnimDef AnimConf_088AF3FC[];
|
|
extern CONST_DATA struct BattleAnimDef AnimConf_088AF408[];
|
|
extern CONST_DATA struct BattleAnimDef AnimConf_088AF420[];
|
|
extern CONST_DATA struct BattleAnimDef AnimConf_088AF434[];
|
|
extern CONST_DATA struct BattleAnimDef AnimConf_088AF44C[];
|
|
extern CONST_DATA struct BattleAnimDef AnimConf_088AF468[];
|
|
extern CONST_DATA struct BattleAnimDef AnimConf_088AF480[];
|
|
extern CONST_DATA struct BattleAnimDef AnimConf_088AF498[];
|
|
extern CONST_DATA struct BattleAnimDef AnimConf_088AF4B0[];
|
|
extern CONST_DATA struct BattleAnimDef AnimConf_088AF4C4[];
|
|
extern CONST_DATA struct BattleAnimDef AnimConf_088AF4D0[];
|
|
extern CONST_DATA struct BattleAnimDef AnimConf_088AF4DC[];
|
|
extern CONST_DATA struct BattleAnimDef AnimConf_088AF4E8[];
|
|
extern CONST_DATA struct BattleAnimDef AnimConf_088AF4F8[];
|
|
extern CONST_DATA struct BattleAnimDef AnimConf_088AF504[];
|
|
extern CONST_DATA struct BattleAnimDef AnimConf_088AF510[];
|
|
extern CONST_DATA struct BattleAnimDef AnimConf_088AF528[];
|
|
extern CONST_DATA struct BattleAnimDef AnimConf_088AF53C[];
|
|
extern CONST_DATA struct BattleAnimDef AnimConf_088AF548[];
|
|
extern CONST_DATA struct BattleAnimDef AnimConf_088AF560[];
|
|
extern CONST_DATA struct BattleAnimDef AnimConf_088AF56C[];
|
|
extern CONST_DATA struct BattleAnimDef AnimConf_088AF578[];
|
|
extern CONST_DATA struct BattleAnimDef AnimConf_088AF588[];
|
|
extern CONST_DATA struct BattleAnimDef AnimConf_088AF594[];
|
|
extern CONST_DATA struct BattleAnimDef AnimConf_088AF5A4[];
|
|
extern CONST_DATA struct BattleAnimDef AnimConf_088AF5B0[];
|
|
extern CONST_DATA struct BattleAnimDef AnimConf_088AF5BC[];
|
|
extern CONST_DATA struct BattleAnimDef AnimConf_088AF5C8[];
|
|
extern CONST_DATA struct BattleAnimDef AnimConf_088AF5E0[];
|
|
extern CONST_DATA struct BattleAnimDef AnimConf_088AF5EC[];
|
|
extern CONST_DATA struct BattleAnimDef AnimConf_088AF5F8[];
|
|
extern CONST_DATA struct BattleAnimDef AnimConf_088AF610[];
|
|
extern CONST_DATA struct BattleAnimDef AnimConf_088AF62C[];
|
|
extern CONST_DATA struct BattleAnimDef AnimConf_088AF640[];
|
|
extern CONST_DATA struct BattleAnimDef AnimConf_088AF654[];
|
|
extern CONST_DATA struct BattleAnimDef AnimConf_088AF668[];
|
|
extern CONST_DATA struct BattleAnimDef AnimConf_088AF674[];
|
|
extern CONST_DATA struct BattleAnimDef AnimConf_088AF680[];
|
|
extern CONST_DATA struct BattleAnimDef AnimConf_088AF68C[];
|
|
extern CONST_DATA struct BattleAnimDef AnimConf_088AF6A4[];
|
|
extern CONST_DATA struct BattleAnimDef AnimConf_088AF6BC[];
|
|
extern CONST_DATA struct BattleAnimDef AnimConf_088AF6C8[];
|
|
extern CONST_DATA struct BattleAnimDef AnimConf_088AF6E0[];
|
|
|
|
extern struct BattleAnimDef * gUnitSpecificBanimConfigs[];
|
|
|
|
void SetBanimLinkArenaFlag(int unk);
|
|
int GetBanimLinkArenaFlag(void);
|
|
void NewEkrBattleDeamon(void);
|
|
void EndEkrBattleDeamon(void);
|
|
int IsBattleDeamonActive(void); // battle?
|
|
// ??? ekrBattleDeamon_Destructor(???);
|
|
// ??? nullsub_35(???);
|
|
void NewEkrBattle(void);
|
|
void InBattleMainRoutine(void);
|
|
void MainUpdateEkrBattle(void);
|
|
// ??? nullsub_36(???);
|
|
// ??? ekrBattle_Init(???);
|
|
// ??? ekrBattleMain(???);
|
|
void ekrBattle_HandlePreEventMaybe(struct ProcEkrBattle * proc);
|
|
void ekrBattleWaitPreEvent(struct ProcEkrBattle * proc);
|
|
void ekrBattle_8050134(struct ProcEkrBattle * proc);
|
|
void ekrBattlePrepareDragonIntro(struct ProcEkrBattle * proc);
|
|
void ekrBattleExecDragonIntro(struct ProcEkrBattle * proc);
|
|
void ekrBattleWaitDragonIntro(struct ProcEkrBattle * proc);
|
|
void ekrBattlePostEkrDragonIntro(struct ProcEkrBattle * proc);
|
|
void ekrBattle_8050290(struct ProcEkrBattle * proc);
|
|
void ekrBattleSetFlashingEffect(struct ProcEkrBattle * proc);
|
|
void ekrBattleExecTriangleAtk(struct ProcEkrBattle * proc);
|
|
void ekrBattleWaitTriangleIdle(struct ProcEkrBattle * proc);
|
|
void ekrBattleTriggerNewRoundStart(struct ProcEkrBattle * proc);
|
|
void ekrBattle_80503EC(struct ProcEkrBattle * proc);
|
|
void ekrBattle_StartPromotion(struct ProcEkrBattle * proc);
|
|
void ekrBattle_WaitPromotionIdle(struct ProcEkrBattle * proc);
|
|
void ekrBattleInRoundIdle(struct ProcEkrBattle * proc);
|
|
void ekrBattleOnBattleEnd(struct ProcEkrBattle * proc);
|
|
void ekrBattle_8050600(struct ProcEkrBattle * proc);
|
|
void ekrBattle_WaitForPostBattleAct(struct ProcEkrBattle * proc);
|
|
void ekrBattleExecExpGain(struct ProcEkrBattle * proc);
|
|
void ekrBattle_80508F0(struct ProcEkrBattle * proc);
|
|
void ekrBattle_8050940(struct ProcEkrBattle * proc);
|
|
void ekrBattleWaitExpBarIdle(struct ProcEkrBattle * proc);
|
|
void ekrBattlePostExpBarIdle(struct ProcEkrBattle * proc);
|
|
void ekrBattle_8050AB8(struct ProcEkrBattle * proc);
|
|
void ekrBattleLvupHanlder(struct ProcEkrBattle * proc);
|
|
void ekrBattle_ExecEkrLvup(struct ProcEkrBattle * proc);
|
|
void ekrBattle_WaitEkrLvupIdle(struct ProcEkrBattle * proc);
|
|
void ekrNewEkrPopup(struct ProcEkrBattle * proc);
|
|
void ekrBattle_WaitForPopup(struct ProcEkrBattle * proc);
|
|
void ekrBattle_PostPopup(struct ProcEkrBattle * proc);
|
|
void ekrBattle_TriggerDragonStatusFinished(struct ProcEkrBattle * proc);
|
|
void ekrBattle_WaitEkrDragonEndIdle(struct ProcEkrBattle * proc);
|
|
void ekrBattle_PostDragonStatusEffect(struct ProcEkrBattle * proc);
|
|
void nullsub_69(struct ProcEkrBattle * proc);
|
|
void NewEkrLvlupFan(void);
|
|
void EkrLvupFanMain(struct ProcEkrLvupFan * proc);
|
|
// ??? sub_8050E40(???);
|
|
// ??? ModDec(???);
|
|
void NewEkrGauge(void);
|
|
void EndEkrGauge(void);
|
|
void EkrGauge_Clr4C50(void);
|
|
void EkrGauge_Set4C50(void);
|
|
void EkrGauge_Set4C(void);
|
|
void EkrGauge_Set50(void);
|
|
void EkrGauge_Setup44(u16 val);
|
|
void EkrGauge_Clr323A(s16 x, s16 y);
|
|
void EkrGauge_Setxy323A(s16 x, s16 y);
|
|
void EkrGauge_SetInitFlag(void);
|
|
void EkrGauge_ClrInitFlag(void);
|
|
void EnableEkrGauge(void);
|
|
void DisableEkrGauge(void);
|
|
void sub_8051238(struct EkrGaugeStruct1 *buf, int a, int b);
|
|
void ekrGaugeMain(struct ProcEkrGauge * proc);
|
|
void NewEkrDispUP(void);
|
|
void EndEkrDispUP(void);
|
|
void EkrDispUpClear4C50(void);
|
|
void EkrDispUpSet4C(void);
|
|
void EkrDispUpSet50(void);
|
|
void EkrDispUP_SetPositionUnsync(u16, u16);
|
|
void EkrDispUP_SetPositionSync(u16 a, u16 b);
|
|
void SyncEkrDispUP(void);
|
|
void UnsyncEkrDispUP(void);
|
|
void AsyncEkrDispUP(void);
|
|
void UnAsyncEkrDispUP(void);
|
|
// ??? ekrDispUPMain(???);
|
|
void EfxClearScreenFx(void);
|
|
void sub_8051E00(void);
|
|
void EfxPrepareScreenFx(void);
|
|
int GetBanimInitPosReal(void);
|
|
void SetEkrBg2QuakeVec(int a, int b);
|
|
|
|
void sub_805515C(void);
|
|
void SpellFx_Begin(void);
|
|
void SpellFx_Finish(void);
|
|
void SpellFx_ClearBG1Position(void);
|
|
void SpellFx_ClearBG1(void);
|
|
void SpellFx_SetSomeColorEffect(void);
|
|
void SetDefaultColorEffects_(void);
|
|
void StartBattleAnimHitEffectsDefault(struct Anim * anim, int type);
|
|
void sub_8055288(struct Anim * anim, int type);
|
|
void StartBattleAnimHitEffects(struct Anim * anim, int type, int a, int b);
|
|
void StartBattleAnimResireHitEffects(struct Anim * anim, int type);
|
|
void StartBattleAnimStatusChgHitEffects(struct Anim * anim, int type);
|
|
struct Anim * EfxCreateFrontAnim(struct Anim * anim, const u32 * scr1, const u32 * scr2, const u32 * scr3, const u32 * scr4);
|
|
struct Anim * EfxCreateBackAnim(struct Anim * anim, const u32 * scr1, const u32 * scr2, const u32 * scr3, const u32 * scr4);
|
|
void sub_805560C(struct Anim * anim, const u16 * src1, const u16 * src2);
|
|
void SpellFx_WriteBgMap(struct Anim * anim, const u16 * src1, const u16 * src2);
|
|
void SpellFx_WriteBgMapUnused(u8 pos, const u16 * src1, const u16 * src2);
|
|
void SpellFx_WriteBgMapExt(struct Anim * anim, const u16 * src, int width, int height);
|
|
void SpellFx_RegisterObjGfx(const u16 * img, u32 size);
|
|
void SpellFx_RegisterObjPal(const u16 * pal, u32 size);
|
|
void SpellFx_RegisterBgGfx(const u16 * img, u32 size);
|
|
void SpellFx_RegisterBgPal(const u16 * pal, u32 size);
|
|
void sub_8055860(const u16 * src, u16 * dst, u32 cur, u32 len_src, u32 len_dst);
|
|
void sub_805588C(const u16 * src, u16 * dst, u32 cur, u32 len_src, u32 len_dst);
|
|
void sub_80558BC(const u16 *src, u16 *dst, u32 a, u32 b, u32 c);
|
|
s16 EfxAdvanceFrameLut(s16 * ptime, s16 * pcount, const s16 lut[]);
|
|
void sub_8055980(void);
|
|
int EfxGetCamMovDuration(void);
|
|
void sub_80559B0(u32 val);
|
|
void EfxTmFill(u32 val);
|
|
void SetEkrFrontAnimPostion(int type, s16, s16);
|
|
int Get0201FAC8(void);
|
|
void Set0201FAC8(int);
|
|
|
|
bool sub_8055BB4(void);
|
|
s8 sub_8055BC4(void);
|
|
void BeginAnimsOnBattleAnimations(void);
|
|
void EkrMainEndExec(void);
|
|
void MainUpdate_8055C68(void);
|
|
|
|
void EkrPrepareBanimfx(struct Anim * anim, u16);
|
|
s16 GetEfxHp(int index);
|
|
// ??? GetEfxHpModMaybe(???);
|
|
u16 IsItemDisplayedInBattle(u16 item);
|
|
u16 IsWeaponLegency(u16 item);
|
|
s16 EkrCheckWeaponSieglindeSiegmund(u16 item);
|
|
bool EkrCheckAttackRound(u16 round);
|
|
void SetBattleScriptted(void);
|
|
void SetBattleUnscriptted(void);
|
|
bool CheckBattleScriptted(void);
|
|
// ??? GetEkrHit(???);
|
|
// ??? GetEkrDmg(???);
|
|
// ??? GetEkrCrit(???);
|
|
void BattleAIS_ExecCommands(void);
|
|
// ??? _08058BD4(???);
|
|
// ??? _080596E0(???);
|
|
void AnimScrAdvance(struct Anim * anim);
|
|
void NewEkrChienCHR(struct Anim * anim);
|
|
// ??? EkrChienCHRMain(???);
|
|
void RegisterAISSheetGraphics(struct Anim * anim);
|
|
void ApplyBanimUniquePalette(u32 *, int);
|
|
int GetBanimPalette(int banim_id, enum ekr_battle_unit_position pos);
|
|
void UpdateBanimFrame(void);
|
|
void InitMainAnims(void);
|
|
void InitBattleAnimFrame(int round_type_left, int round_type_right);
|
|
void InitLeftAnim(int);
|
|
void InitRightAnim(int);
|
|
void SwitchAISFrameDataFromBARoundType(struct Anim * anim, int);
|
|
int GetAISLayerId(struct Anim * anim);
|
|
|
|
int CheckRound1(s16);
|
|
int CheckRound2(s16);
|
|
int CheckRoundCrit(struct Anim * anim);
|
|
struct Anim * GetAnimAnotherSide(struct Anim * anim);
|
|
s16 GetAnimRoundType(struct Anim * anim);
|
|
s16 GetAnimNextRoundType(struct Anim * anim);
|
|
s16 GetAnimRoundTypeAnotherSide(struct Anim * anim);
|
|
s16 GetAnimNextRoundTypeAnotherSide(struct Anim * anim);
|
|
void SetAnimStateHidden(int ais_id);
|
|
void SetAnimStateUnHidden(int ais_id);
|
|
|
|
struct BanimUnkStructComm
|
|
{
|
|
/* 00 */ s16 terrain_l; // terrain L
|
|
/* 02 */ s16 pal_l; // pal ID L
|
|
/* 04 */ s16 chr_l; // chr L
|
|
/* 06 */ s16 terrain_r;
|
|
/* 08 */ s16 pal_r;
|
|
/* 0A */ s16 chr_r; // chr R
|
|
/* 0C */ s16 distance;
|
|
/* 0E */ s16 unk0E;
|
|
/* 10 */ u16 unk10;
|
|
/* 14 */ ProcPtr proc14; // sub emulator proc a
|
|
/* 18 */ ProcPtr proc18; // sub emulator proc b
|
|
/* 1C */ void * unk1C;
|
|
/* 20 */ void * unk20;
|
|
/* 24 */ void * unk24;
|
|
};
|
|
|
|
struct AnimBuffer
|
|
{
|
|
/* 00 */ u8 unk_00;
|
|
/* 01 */ u8 genericPalId;
|
|
/* 02 */ u16 xPos;
|
|
/* 04 */ u16 yPos;
|
|
/* 06 */ s16 animId;
|
|
/* 08 */ s16 charPalId;
|
|
/* 0A */ u16 roundType;
|
|
/* 0C */ u16 state2;
|
|
/* 0E */ u16 oam2Tile;
|
|
/* 10 */ u16 oam2Pal;
|
|
/* 14 */ struct Anim * anim1;
|
|
/* 18 */ struct Anim * anim2;
|
|
/* 1C */ void * pImgSheetBuf;
|
|
/* 20 */ void * unk_20; // pal
|
|
/* 24 */ void * unk_24; // rtlOam
|
|
/* 28 */ void * unk_28; // frameData
|
|
/* 2C */ const void * unk_2C; // sheetPointer
|
|
/* 30 */ void * unk_30; // magicEffects
|
|
/* 34 */ void * unk_34; // ProcPtr; Procs_ekrUnitMainMini
|
|
};
|
|
|
|
void sub_805A3DC(struct AnimBuffer * pAnimBuf, struct Anim * anim);
|
|
void sub_805A580(struct Anim *);
|
|
void sub_805A5A8(struct Anim *);
|
|
void InitMainMiniAnim(struct AnimBuffer * pAnimBuf);
|
|
void sub_805A7B4(struct AnimBuffer * pAnimBuf);
|
|
void sub_805A930(struct AnimBuffer * pAnimBuf, int animId, int charPalId);
|
|
void sub_805A940(struct AnimBuffer * pAnimBuf, u16 x, u16 y);
|
|
void sub_805A95C(struct AnimBuffer * pAnimBuf, u16 layer);
|
|
bool sub_805A96C(struct AnimBuffer * pAnimBuf);
|
|
void sub_805A990(struct AnimBuffer * pAnimBuf);
|
|
bool sub_805A9A4(struct AnimBuffer * pAnimBuf);
|
|
void NewEfxAnimeDrvProc(void);
|
|
void EndEfxAnimeDrvProc(void);
|
|
void ExecAllAIS(void);
|
|
void NewEkrUnitMainMini(struct AnimBuffer * pAnimBuf);
|
|
void sub_805AA28(struct AnimBuffer * pAnimBuf);
|
|
// ??? EkrUnitMainMiniMain(???);
|
|
// void sub_805AA68(void *);
|
|
// void sub_805AE14(void *);
|
|
// void sub_805AE40(void *, s16, s16, s16, s16);
|
|
void sub_805AE58(struct BanimUnkStructComm *);
|
|
void sub_805AFA0(s16, s16);
|
|
|
|
struct ProcEkrTogi
|
|
{
|
|
/* 00 */ PROC_HEADER;
|
|
/* 29 */ STRUCT_PAD(0x29, 0x2c);
|
|
/* 2C */ s16 unk_2c;
|
|
/* 2E */ s16 unk_2e;
|
|
};
|
|
|
|
struct ProcEfxBGCOL;
|
|
|
|
void SetBanimArenaFlag(int flag);
|
|
int GetBattleAnimArenaFlag(void);
|
|
void sub_805B034(int x);
|
|
void PlayDeathSoundForArena(void);
|
|
void sub_805B094(void);
|
|
void BeginAnimsOnBattle_Arena(void);
|
|
void ExecBattleAnimArenaExit(void);
|
|
void NewEkrTogiInitPROC(void);
|
|
void ekrTogiInit_Init(ProcPtr proc);
|
|
void ekrTogiInit_LoadGfx(struct ProcEkrTogi * proc);
|
|
void ekrTogiInit_Loop(struct ProcEkrTogi * proc);
|
|
void ekrTogiInit_End(ProcPtr proc);
|
|
void NewEkrTogiEndPROC(void);
|
|
void ekrTogiEnd_Init(struct ProcEkrTogi * proc);
|
|
void ekrTogiEnd_Loop(struct ProcEkrTogi * proc);
|
|
void ekrTogiEnd_End(ProcPtr proc);
|
|
void NewEkrTogiColor(void);
|
|
void EndEkrTogiColor(void);
|
|
void ekrTogiColor_Loop(struct ProcEfxBGCOL * proc);
|
|
|
|
void sub_8070D04(u16 * tm, u16 width, u16 height, int pal, int chr);
|
|
void FillBGRect(u16 * tm, u16 width, u16 height, int pal, int chr);
|
|
void sub_8070DBC(u16 * tm, u16 width, u16 height, int pal, int chr);
|
|
void EfxTmModifyPal(u16 * tm, u16 width, u16 height);
|
|
void EfxTmCpyBG(const void * ptr1, void * ptr2, u16 width, u16 height, int pal, int chr);
|
|
void EfxTmCpyBgHFlip(const u16 * tsa, u16 * tm, u16 width, u16 height, int pal, int chr);
|
|
void EfxTmCpyExt(const u16 * src, s16 src_width, u16 * dst, s16 dst_width, u16 width, u16 hight, int pal, int chr);
|
|
void EfxTmCpyExtHFlip(const u16 * src, s16 src_width, u16 * dst, s16 dst_width, u16 width, u16 hight, int pal, int chr);
|
|
void sub_8071068(u16 * tm, int arg1, int arg2);
|
|
void EkrModifyBarfx(u16 * tm, int);
|
|
bool EkrPalModifyUnused(u16 * src1, u16 * src2, u16 * dst, u16 a, u16 b, u16 c);
|
|
void EfxPalBlackInOut(u16 * pal_buf, int line, int length, int ref);
|
|
void EfxPalWhiteInOut(u16 * pal_buf, int line, int length, int ref);
|
|
void EfxPalFlashingInOut(u16 * pal_buf, int line, int length, int r0, int g0, int b0);
|
|
void EfxPalModifyPetrifyEffect(u16 * pal_buf, int line, int length);
|
|
void EfxSplitColor(u16 * src, u8 * dst, u32 length);
|
|
void EfxSplitColorPetrify(u16 * src, u8 * dst, u32 length);
|
|
void sub_8071574(s8 * src1, s8 * src2, u16 * pal, u32 length, int ref);
|
|
void EfxDecodeSplitedPalette(u16 * dst, s8 * src1, s8 * src2, s16 * src3, u32 length, int ref, int unk);
|
|
void EfxChapterMapFadeOUT(int);
|
|
int sub_80716B0(int a);
|
|
int GetAnimSpriteRotScaleX(u32 header);
|
|
int GetAnimSpriteRotScaleY(u32 header);
|
|
void BanimUpdateSpriteRotScale(void * src, struct AnimSpriteData * out, s16 x, s16 y, int unused);
|
|
|
|
void M4aPlayWithPostionCtrl(int, int, int);
|
|
void EfxPlaySEwithCmdCtrl(struct Anim * anim, int);
|
|
u16 GetEfxSoundType1FromTerrain(u16 terrain);
|
|
int IsAnimSoundInPositionMaybe(struct Anim * anim);
|
|
u16 GetEfxSoundType2FromBaseCon(u16 basecon);
|
|
|
|
enum efx_hp_change_type {
|
|
EFX_HPT_CHANGED = 0,
|
|
EFX_HPT_DEFEATED = 1,
|
|
EFX_HPT_NOT_CHANGE = 2
|
|
};
|
|
|
|
s16 GetEfxHpChangeType(struct Anim * anim);
|
|
void EfxPlayHittedSFX(struct Anim * anim);
|
|
void EfxPlayCriticalHittedSFX(struct Anim * anim);
|
|
int EfxCheckRetaliation(int is_retaliation);
|
|
int EfxCheckStaffType(int weapon);
|
|
void EkrPlayMainBGM(void);
|
|
void EkrRestoreBGM(void);
|
|
int GetBanimBossBGM(struct Unit * unit);
|
|
int GetProperAnimSoundLocation(struct Anim * anim);
|
|
void PlaySFX(int, int, int, int);
|
|
void PlaySfxAutomatically(int songid, int volume, struct Anim * anim);
|
|
|
|
// ??? PutBanimBgIMG(???);
|
|
// ??? PutBanimBgTSA(???);
|
|
void PutBanimBgPAL(int);
|
|
void PutBanimBG(int);
|
|
|
|
int CheckBanimHensei(void);
|
|
void BeginAnimsOnBattle_Hensei(void);
|
|
void ExecEkrHenseiEnd(void);
|
|
void NewEkrHenseiInitPROC(void);
|
|
// ??? sub_8076380(???);
|
|
// ??? sub_80763E0(???);
|
|
// ??? sub_8076400(???);
|
|
// ??? sub_8076464(???);
|
|
void NewEkrHenseiEnd(void);
|
|
// ??? sub_8076484(???);
|
|
// ??? sub_80764B0(???);
|
|
// ??? sub_8076514(???);
|
|
void NewEkrDragonDemonKing(struct Anim * anim);
|