#ifndef GUARD_BATTLE_MAIN_H #define GUARD_BATTLE_MAIN_H struct TrainerMoney { u8 classId; u8 value; }; #define TYPE_NAME_LENGTH 6 #define ABILITY_NAME_LENGTH 12 // defines for the u8 array gTypeEffectiveness #define TYPE_EFFECT_ATK_TYPE(i)((gTypeEffectiveness[i + 0])) #define TYPE_EFFECT_DEF_TYPE(i)((gTypeEffectiveness[i + 1])) #define TYPE_EFFECT_MULTIPLIER(i)((gTypeEffectiveness[i + 2])) // defines for the gTypeEffectiveness multipliers #define TYPE_MUL_NO_EFFECT 0 #define TYPE_MUL_NOT_EFFECTIVE 5 #define TYPE_MUL_NORMAL 10 #define TYPE_MUL_SUPER_EFFECTIVE 20 // special type table Ids #define TYPE_FORESIGHT 0xFE #define TYPE_ENDTABLE 0xFF // defines for the 'DoBounceEffect' function #define BOUNCE_MON 0x0 #define BOUNCE_HEALTHBOX 0x1 void CB2_InitBattle(void); void BattleMainCB2(void); void CB2_QuitRecordedBattle(void); void sub_8038528(struct Sprite* sprite); void sub_8038A04(void); // unused void VBlankCB_Battle(void); void nullsub_17(void); void sub_8038B74(struct Sprite *sprite); void sub_8038D64(void); u32 sub_80391E0(u8 arrayId, u8 caseId); u32 sub_80397C4(u32 setId, u32 tableId); void oac_poke_opponent(struct Sprite *sprite); void SpriteCallbackDummy_2(struct Sprite *sprite); void SpriteCB_FaintOpponentMon(struct Sprite *sprite); void sub_8039AD8(struct Sprite *sprite); void sub_8039B2C(struct Sprite *sprite); void sub_8039B58(struct Sprite *sprite); void sub_8039BB4(struct Sprite *sprite); void sub_80105DC(struct Sprite *sprite); void sub_8039C00(struct Sprite *sprite); void DoBounceEffect(u8 battlerId, u8 b, s8 c, s8 d); void EndBounceEffect(u8 battlerId, bool8 b); void sub_8039E44(struct Sprite *sprite); void sub_8039E60(struct Sprite *sprite); void sub_8039E84(struct Sprite *sprite); void sub_8039E9C(struct Sprite *sprite); void nullsub_20(void); void BeginBattleIntro(void); void SwitchInClearSetData(void); void FaintClearSetData(void); void sub_803B3AC(void); // unused void sub_803B598(void); // unused void BattleTurnPassed(void); u8 IsRunningFromBattleImpossible(void); void sub_803BDA0(u8 battlerId); void SwapTurnOrder(u8 id1, u8 id2); u8 GetWhoStrikesFirst(u8 battlerId1, u8 battlerId2, bool8 ignoreChosenMoves); void RunBattleScriptCommands_PopCallbacksStack(void); void RunBattleScriptCommands(void); bool8 TryRunFromBattle(u8 battlerId); extern const u8 gTypeEffectiveness[336]; extern const u8 gTypeNames[][TYPE_NAME_LENGTH + 1]; extern const struct TrainerMoney gTrainerMoneyTable[]; extern const u8 gAbilityNames[][ABILITY_NAME_LENGTH + 1]; extern const u8 *const gAbilityDescriptionPointers[]; extern const u8 gStatusConditionString_PoisonJpn[8]; extern const u8 gStatusConditionString_SleepJpn[8]; extern const u8 gStatusConditionString_ParalysisJpn[8]; extern const u8 gStatusConditionString_BurnJpn[8]; extern const u8 gStatusConditionString_IceJpn[8]; extern const u8 gStatusConditionString_ConfusionJpn[8]; extern const u8 gStatusConditionString_LoveJpn[8]; extern const u8 *const gStatusConditionStringsTable[7][2]; #endif // GUARD_BATTLE_MAIN_H