summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorcamthesaxman <camthesaxman@users.noreply.github.com>2019-07-31 00:13:42 -0500
committercamthesaxman <camthesaxman@users.noreply.github.com>2019-07-31 00:13:42 -0500
commitb74a0c3122113b5ebef469739745e2b8fd420c50 (patch)
treee6bd06cc852ca638f9dc9a0d7c8a12b7ee394a5a /include
parentd7a754386ce491791fe8216fdcb0f4fb72240774 (diff)
resolve more battle system differences
Diffstat (limited to 'include')
-rw-r--r--include/battle.h16
-rw-r--r--include/battle_controllers.h67
-rw-r--r--include/battle_script_commands.h2
-rw-r--r--include/battle_util.h5
-rw-r--r--include/constants/battle.h4
-rw-r--r--include/rom3.h73
6 files changed, 78 insertions, 89 deletions
diff --git a/include/battle.h b/include/battle.h
index bc9307f57..d7396da58 100644
--- a/include/battle.h
+++ b/include/battle.h
@@ -69,10 +69,6 @@
#define TYPE_FORESIGHT 0xFE
#define TYPE_ENDTABLE 0xFF
-// physical/special types
-#define TYPE_IS_PHYSICAL(type) ((type) < TYPE_MYSTERY)
-#define TYPE_IS_SPECIAL(type) ((type) > TYPE_MYSTERY)
-
struct DisableStruct
{
/*0x00*/ u32 transformedMonPersonality;
@@ -97,12 +93,12 @@ struct DisableStruct
/*0x13*/ u8 tauntTimer1:4;
/*0x13*/ u8 tauntTimer2:4;
/*0x14*/ u8 bankPreventingEscape;
- /*0x15*/ u8 bankWithSureHit;
+ /*0x15*/ u8 battlerWithSureHit;
/*0x16*/ u8 isFirstTurn;
/*0x17*/ u8 unk17;
/*0x18*/ u8 truantCounter : 1;
/*0x18*/ u8 unk18_a : 3;
- /*0x18*/ u8 unk18_b : 4;
+ /*0x18*/ u8 mimickedMoves : 4;
/*0x19*/ u8 rechargeCounter;
/*0x1A*/ u8 unk1A[2];
};
@@ -240,7 +236,7 @@ struct BattleResults
u8 unk2; // 0x2
u8 unk3; // 0x3
u8 unk4; // 0x4
- u8 unk5_0:1; // 0x5
+ u8 playerMonWasDamaged:1; // 0x5
u8 unk5_1:1; // 0x5
u16 poke1Species; // 0x6
u8 pokeString1[10]; // 0x8
@@ -310,7 +306,7 @@ struct BattleStruct /* 0x2000000 */
/*0x16015*/ u8 unk16015;
/*0x16016*/ u8 unk16016;
/*0x16017*/ u8 unk16017;
- /*0x16018*/ u8 expGetterID;
+ /*0x16018*/ u8 expGetterMonId;
/*0x16019*/ u8 unk16019;
/*0x1601A*/ u8 atk5A_StateTracker; //also atk5B, statetracker
/*0x1601B*/ u8 wildVictorySong;
@@ -408,7 +404,7 @@ struct BattleStruct /* 0x2000000 */
/*0x1609F*/ u8 unk1609F;
/*0x160A0*/ u8 stringMoveType;
/*0x160A1*/ u8 animTargetsHit;
- /*0x160A2*/ u8 expGetterBank;
+ /*0x160A2*/ u8 expGetterBattlerId;
/*0x160A3*/ u8 unk160A3;
/*0x160A4*/ u8 animArg1;
/*0x160A5*/ u8 animArg2;
@@ -776,7 +772,7 @@ u8 GetMoveTarget(u16 move, u8 useMoveTarget);
// asm/battle_4.o
void AI_CalcDmg(u8, u8);
u8 TypeCalc(u16 move, u8 bank_atk, u8 bank_def);
-u8 BankGetTurnOrder(u8 bank);
+u8 GetBattlerTurnOrderNum(u8 bank);
// asm/battle_5.o
void nullsub_91(void);
diff --git a/include/battle_controllers.h b/include/battle_controllers.h
index b5f2f886d..5dae99ecd 100644
--- a/include/battle_controllers.h
+++ b/include/battle_controllers.h
@@ -128,4 +128,69 @@ enum
CONTROLLER_CMDS_COUNT
};
-#endif \ No newline at end of file
+struct HpAndStatus
+{
+ u16 hp;
+ u32 status;
+};
+
+struct DisableStruct;
+
+// emitters
+void HandleLinkBattleSetup(void);
+void SetUpBattleVarsAndBirchPoochyena();
+void sub_800B950(void);
+void InitLinkBtlControllers(void);
+void PrepareBufferDataTransferLink(u8 a, u16, u8 *c);
+void sub_800C35C(void);
+void BtlController_EmitGetMonData(u8 a, u8 b, u8 c);
+void BtlController_EmitGetRawMonData(u8 a, u8 b, u8 c);
+void BtlController_EmitLoadMonSprite(u8 a);
+void BtlController_EmitSwitchInAnim(u8, u8, u8);
+void BtlController_EmitReturnMonToBall(u8 a, u8 b);
+void BtlController_EmitDrawTrainerPic(u8 a);
+void BtlController_EmitTrainerSlide(u8 a);
+void BtlController_EmitTrainerSlideBack(u8 a);
+void BtlController_EmitFaintAnimation(u8 a);
+void BtlController_EmitPaletteFade(u8 a);
+void BtlController_EmitSuccessBallThrowAnim(u8 a);
+void BtlController_EmitBallThrowAnim(u8 a, u8 b);
+void BtlController_EmitMoveAnimation(u8 a, u16 b, u8 c, u16 d, s32 e, u8 f, struct DisableStruct *g);
+void BtlController_EmitPrintString(u8 a, u16 b);
+void BtlController_EmitPrintSelectionString(u8 a, u16 stringID);
+void BtlController_EmitChooseAction(u8 a, u8 b, u16 c);
+void BtlController_EmitChooseMove(u8 a, u8 b, u8 c, u8 *d);
+void BtlController_EmitChooseItem(u8 a, u8 *b);
+void BtlController_EmitChoosePokemon(u8 a, u8 b, u8 c, u8 d, u8 *e);
+void BtlController_EmitCmd23(u8 a);
+void BtlController_EmitHealthBarUpdate(u8 a, u16 b);
+void BtlController_EmitExpUpdate(u8 a, u8 b, u16 c);
+void BtlController_EmitStatusIconUpdate(u8 a, u32 b, u32 c);
+void BtlController_EmitStatusAnimation(u8 a, u8 b, u32 c);
+void BtlController_EmitStatusXor(u8 a, u8 b);
+void BtlController_EmitDataTransfer(u8, u16, u8 *);
+void BtlController_EmitTwoReturnValues(u8 a, u8 b, u16 c);
+void BtlController_EmitChosenMonReturnValue(u8 a, u8 b, u8 *c);
+void BtlController_EmitOneReturnValue(u8 a, u16 b);
+void BtlController_EmitOneReturnValue_Duplicate(u8 a, u16 b);
+void BtlController_EmitCmd37(u8 a);
+void BtlController_EmitCmd38(u8 a, u8 b);
+void BtlController_EmitCmd39(u8 a);
+void BtlController_EmitCmd40(u8 a);
+void BtlController_EmitHitAnimation(u8 a);
+void BtlController_EmitCmd42(u8 a);
+void BtlController_EmitPlaySE(u8 a, u16 b);
+void BtlController_EmitPlayFanfareOrBGM(u8 a, u16 b);
+void BtlController_EmitFaintingCry(u8 a);
+void BtlController_EmitIntroSlide(u8 a, u8 b);
+void BtlController_EmitIntroTrainerBallThrow(u8 a);
+void BtlController_EmitDrawPartyStatusSummary(u8 a, struct HpAndStatus *hpAndStatus, u8 c); //0x30
+void BtlController_EmitHidePartyStatusSummary(u8 a);
+void BtlController_EmitEndBounceEffect(u8 a);
+void BtlController_EmitSpriteInvisibility(u8 a, u8 b);
+void BtlController_EmitBattleAnimation(u8 a, u8 b, u16 c);
+void BtlController_EmitLinkStandbyMsg(u8 a, u8 b);
+void BtlController_EmitResetActionMoveSelection(u8 a, u8 b);
+void BtlController_EmitCmd55(u8 a, u8 b);
+
+#endif // GUARD_BATTLE_CONTROLLERS_H \ No newline at end of file
diff --git a/include/battle_script_commands.h b/include/battle_script_commands.h
index 030844ec3..36f54c6a8 100644
--- a/include/battle_script_commands.h
+++ b/include/battle_script_commands.h
@@ -52,7 +52,7 @@
void AI_CalcDmg(u8 bankAtk, u8 bankDef);
u8 TypeCalc(u16 move, u8 bankAtk, u8 bankDef);
u8 AI_TypeCalc(u16 move, u16 targetSpecies, u8 targetAbility);
-u8 BankGetTurnOrder(u8 bank);
+u8 GetBattlerTurnOrderNum(u8 bank);
void SetMoveEffect(bool8 primary, u8 certain);
void BattleDestroyYesNoCursorAt(u8 cursorPosition);
void BattleCreateYesNoCursorAt(u8 cursorPosition);
diff --git a/include/battle_util.h b/include/battle_util.h
index 3d178b487..e116eab16 100644
--- a/include/battle_util.h
+++ b/include/battle_util.h
@@ -1,7 +1,7 @@
#ifndef GUARD_BATTLE_UTIL_H
#define GUARD_BATTLE_UTIL_H
-#define BS_GET_TARGET 0
+#define BS_TARGET 0
#define BS_GET_ATTACKER 1
#define BS_GET_EFFECT_BANK 2
#define BS_GET_SCRIPTING_BANK 10
@@ -47,6 +47,9 @@
#define ITEMEFFECT_MOVE_END 0x3
#define ITEMEFFECT_KINGSROCK_SHELLBELL 0x4
+#define WEATHER_HAS_EFFECT ((!AbilityBattleEffects(ABILITYEFFECT_CHECK_ON_FIELD, 0, ABILITY_CLOUD_NINE, 0, 0) && !AbilityBattleEffects(ABILITYEFFECT_CHECK_ON_FIELD, 0, ABILITY_AIR_LOCK, 0, 0)))
+#define WEATHER_HAS_EFFECT2 ((!ABILITY_ON_FIELD2(ABILITY_CLOUD_NINE) && !ABILITY_ON_FIELD2(ABILITY_AIR_LOCK)))
+
void TryClearRageStatuses(void);
void BattleScriptPush(const u8* BS_ptr);
void PressurePPLoseOnUsingImprision(u8 bankAtk);
diff --git a/include/constants/battle.h b/include/constants/battle.h
index 5835bf439..5aa1772d1 100644
--- a/include/constants/battle.h
+++ b/include/constants/battle.h
@@ -324,9 +324,7 @@
#define ABILITYEFFECT_COUNT_ON_FIELD 0x12
#define ABILITYEFFECT_CHECK_ON_FIELD 0x13
-#define WEATHER_HAS_EFFECT ((!AbilityBattleEffects(ABILITYEFFECT_CHECK_ON_FIELD, 0, ABILITY_CLOUD_NINE, 0, 0) && !AbilityBattleEffects(ABILITYEFFECT_CHECK_ON_FIELD, 0, ABILITY_AIR_LOCK, 0, 0)))
-
-#define BS_GET_TARGET 0
+#define BS_TARGET 0
#define BS_GET_ATTACKER 1
#define BS_GET_EFFECT_BANK 2
#define BS_GET_gBank1 3
diff --git a/include/rom3.h b/include/rom3.h
deleted file mode 100644
index 2b889c78b..000000000
--- a/include/rom3.h
+++ /dev/null
@@ -1,73 +0,0 @@
-#ifndef GUARD_ROM3_H
-#define GUARD_ROM3_H
-
-struct HpAndStatus
-{
- u16 hp;
- u32 status;
-};
-
-struct DisableStruct;
-
-void sub_800B858(void);
-void SetUpBattleVarsAndBirchPoochyena();
-void sub_800B950(void);
-void sub_800B9A8(void);
-void sub_800BA78(void);
-void sub_800BD54(void);
-void CreateTasksForSendRecvLinkBuffers(void);
-void PrepareBufferDataTransferLink(u8 a, u16, u8 *c);
-void Task_HandleSendLinkBuffersData(u8);
-void sub_800C35C(void);
-void Task_HandleCopyReceivedLinkBuffersData(u8);
-void BtlController_EmitGetMonData(u8 a, u8 b, u8 c);
-void BtlController_EmitGetRawMonData(u8 a, u8 b, u8 c);
-void BtlController_EmitLoadMonSprite(u8 a);
-void BtlController_EmitSwitchInAnim(u8, u8, u8);
-void BtlController_EmitReturnMonToBall(u8 a, u8 b);
-void BtlController_EmitDrawTrainerPic(u8 a);
-void BtlController_EmitTrainerSlide(u8 a);
-void BtlController_EmitTrainerSlideBack(u8 a);
-void BtlController_EmitFaintAnimation(u8 a);
-void BtlController_EmitPaletteFade(u8 a);
-void BtlController_EmitSuccessBallThrowAnim(u8 a);
-void BtlController_EmitBallThrowAnim(u8 a, u8 b);
-void BtlController_EmitMoveAnimation(u8 a, u16 b, u8 c, u16 d, s32 e, u8 f, struct DisableStruct *g);
-void BtlController_EmitPrintString(u8 a, u16 b);
-void BtlController_EmitPrintSelectionString(u8 a, u16 stringID);
-void BtlController_EmitChooseAction(u8 a, u8 b, u16 c);
-void BtlController_EmitChooseMove(u8 a, u8 b, u8 c, u8 *d);
-void BtlController_EmitChooseItem(u8 a, u8 *b);
-void BtlController_EmitChoosePokemon(u8 a, u8 b, u8 c, u8 d, u8 *e);
-void BtlController_EmitCmd23(u8 a);
-void BtlController_EmitHealthBarUpdate(u8 a, u16 b);
-void BtlController_EmitExpUpdate(u8 a, u8 b, u16 c);
-void BtlController_EmitStatusIconUpdate(u8 a, u32 b, u32 c);
-void BtlController_EmitStatusAnimation(u8 a, u8 b, u32 c);
-void BtlController_EmitStatusXor(u8 a, u8 b);
-void BtlController_EmitDataTransfer(u8, u16, u8 *);
-void BtlController_EmitTwoReturnValues(u8 a, u8 b, u16 c);
-void BtlController_EmitChosenMonReturnValue(u8 a, u8 b, u8 *c);
-void BtlController_EmitOneReturnValue(u8 a, u16 b);
-void BtlController_EmitOneReturnValue_Duplicate(u8 a, u16 b);
-void BtlController_EmitCmd37(u8 a);
-void BtlController_EmitCmd38(u8 a, u8 b);
-void BtlController_EmitCmd39(u8 a);
-void BtlController_EmitCmd40(u8 a);
-void BtlController_EmitHitAnimation(u8 a);
-void BtlController_EmitCmd42(u8 a);
-void BtlController_EmitPlaySE(u8 a, u16 b);
-void BtlController_EmitPlayFanfareOrBGM(u8 a, u16 b);
-void BtlController_EmitFaintingCry(u8 a);
-void BtlController_EmitIntroSlide(u8 a, u8 b);
-void BtlController_EmitIntroTrainerBallThrow(u8 a);
-void BtlController_EmitDrawPartyStatusSummary(u8 a, struct HpAndStatus *hpAndStatus, u8 c); //0x30
-void BtlController_EmitHidePartyStatusSummary(u8 a);
-void BtlController_EmitEndBounceEffect(u8 a);
-void BtlController_EmitSpriteInvisibility(u8 a, u8 b);
-void BtlController_EmitBattleAnimation(u8 a, u8 b, u16 c);
-void BtlController_EmitLinkStandbyMsg(u8 a, u8 b);
-void BtlController_EmitResetActionMoveSelection(u8 a, u8 b);
-void BtlController_EmitCmd55(u8 a, u8 b);
-
-#endif // GUARD_ROM3_H