diff options
Diffstat (limited to 'include')
-rw-r--r-- | include/battle.h | 37 | ||||
-rw-r--r-- | include/battle_controllers.h | 196 | ||||
-rw-r--r-- | include/battle_script_commands.h | 2 | ||||
-rw-r--r-- | include/battle_util.h | 7 | ||||
-rw-r--r-- | include/constants/abilities.h | 2 | ||||
-rw-r--r-- | include/constants/battle.h | 112 | ||||
-rw-r--r-- | include/overworld.h | 2 | ||||
-rw-r--r-- | include/rom3.h | 73 |
8 files changed, 272 insertions, 159 deletions
diff --git a/include/battle.h b/include/battle.h index 510db80f6..59eee8407 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 @@ -297,20 +293,20 @@ struct BattleStruct /* 0x2000000 */ /*0x15DDF*/ u8 unk15DDF; /*0x15DE0*/ u8 filler15DE0[0x220]; /*0x16000*/ u8 turnEffectsTracker; - /*0x16001*/ u8 turnEffectsBank; + /*0x16001*/ u8 turnEffectsBattlerId; /*0x16002*/ u8 animTurn; /*0x16003*/ u8 scriptingActive; /*0x16004*/ u8 wrappedMove[8]; /*0x1600C*/ u8 cmd49StateTracker; /*0x1600D*/ u8 unk1600D; - /*0x1600E*/ u8 turncountersTracker; + /*0x1600E*/ u8 turnCountersTracker; /*0x1600F*/ u8 getexpStateTracker; /*0x16010*/ u8 moveTarget[4]; /*0x16014*/ u8 unk16014; /*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; @@ -361,7 +357,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; @@ -458,8 +454,8 @@ struct BattleStruct /* 0x2000000 */ /*0x1610D*/ u8 unk1610D; /*0x1610E*/ u8 unk1610E; /*0x1610F*/ u8 unk1610F; - /*0x16110*/ u8 sub80170DC_Tracker; - /*0x16111*/ u8 sub80170DC_Bank; + /*0x16110*/ u8 wishPerishSongState; + /*0x16111*/ u8 wishPerishSongBattlerId; /*0x16112*/ u8 unk16112; /*0x16113*/ u8 unk16113; /*0x16114*/ u8 unk16114; @@ -634,17 +630,6 @@ void BtlController_EmitBattleAnimation(u8 a, u8 b, u16 c); //0x34 void BtlController_EmitResetActionMoveSelection(u8 a, u8 b); //0x36 void BtlController_EmitCmd55(u8 a, u8 b); //0x37 -#define REQUEST_ALL_BATTLE 0x0 -#define REQUEST_SPECIES_BATTLE 0x1 -#define REQUEST_HELDITEM_BATTLE 0x2 -#define REQUEST_MOVES_PP_BATTLE 0x3 -#define REQUEST_PPMOVE1_BATTLE 0x9 -#define REQUEST_PPMOVE2_BATTLE 0xA -#define REQUEST_PPMOVE3_BATTLE 0xB -#define REQUEST_PPMOVE4_BATTLE 0xC -#define REQUEST_STATUS_BATTLE 0x28 -#define REQUEST_HP_BATTLE 0x2A - void MarkBattlerForControllerExec(u8 bank); extern u8 gBattleTextBuff1[]; @@ -730,7 +715,7 @@ void debug_sub_8010800(void); // asm/battle_3.o u8 CheckMoveLimitations(u8 bank, u8 unusableMoves, u8 check); -u8 UpdateTurnCounters(void); +u8 DoFieldEndTurnEffects(void); u8 TurnBasedEffects(void); u8 HandleFaintedMonActions(); u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 move); @@ -740,7 +725,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 new file mode 100644 index 000000000..5dae99ecd --- /dev/null +++ b/include/battle_controllers.h @@ -0,0 +1,196 @@ +#ifndef GUARD_BATTLE_CONTROLLERS_H +#define GUARD_BATTLE_CONTROLLERS_H + +enum +{ + REQUEST_ALL_BATTLE, + REQUEST_SPECIES_BATTLE, + REQUEST_HELDITEM_BATTLE, + REQUEST_MOVES_PP_BATTLE, + REQUEST_MOVE1_BATTLE, + REQUEST_MOVE2_BATTLE, + REQUEST_MOVE3_BATTLE, + REQUEST_MOVE4_BATTLE, + REQUEST_PP_DATA_BATTLE, + REQUEST_PPMOVE1_BATTLE, + REQUEST_PPMOVE2_BATTLE, + REQUEST_PPMOVE3_BATTLE, + REQUEST_PPMOVE4_BATTLE, + REQUEST_UNUSED_13_BATTLE, + REQUEST_UNUSED_14_BATTLE, + REQUEST_UNUSED_15_BATTLE, + REQUEST_UNUSED_16_BATTLE, + REQUEST_OTID_BATTLE, + REQUEST_EXP_BATTLE, + REQUEST_HP_EV_BATTLE, + REQUEST_ATK_EV_BATTLE, + REQUEST_DEF_EV_BATTLE, + REQUEST_SPEED_EV_BATTLE, + REQUEST_SPATK_EV_BATTLE, + REQUEST_SPDEF_EV_BATTLE, + REQUEST_FRIENDSHIP_BATTLE, + REQUEST_POKERUS_BATTLE, + REQUEST_MET_LOCATION_BATTLE, + REQUEST_MET_LEVEL_BATTLE, + REQUEST_MET_GAME_BATTLE, + REQUEST_POKEBALL_BATTLE, + REQUEST_ALL_IVS_BATTLE, + REQUEST_HP_IV_BATTLE, + REQUEST_ATK_IV_BATTLE, + REQUEST_DEF_IV_BATTLE, + REQUEST_SPEED_IV_BATTLE, + REQUEST_SPATK_IV_BATTLE, + REQUEST_SPDEF_IV_BATTLE, + REQUEST_PERSONALITY_BATTLE, + REQUEST_CHECKSUM_BATTLE, + REQUEST_STATUS_BATTLE, + REQUEST_LEVEL_BATTLE, + REQUEST_HP_BATTLE, + REQUEST_MAX_HP_BATTLE, + REQUEST_ATK_BATTLE, + REQUEST_DEF_BATTLE, + REQUEST_SPEED_BATTLE, + REQUEST_SPATK_BATTLE, + REQUEST_SPDEF_BATTLE, + REQUEST_COOL_BATTLE, + REQUEST_BEAUTY_BATTLE, + REQUEST_CUTE_BATTLE, + REQUEST_SMART_BATTLE, + REQUEST_TOUGH_BATTLE, + REQUEST_SHEEN_BATTLE, + REQUEST_COOL_RIBBON_BATTLE, + REQUEST_BEAUTY_RIBBON_BATTLE, + REQUEST_CUTE_RIBBON_BATTLE, + REQUEST_SMART_RIBBON_BATTLE, + REQUEST_TOUGH_RIBBON_BATTLE, +}; + +enum +{ + CONTROLLER_GETMONDATA, + CONTROLLER_GETRAWMONDATA, + CONTROLLER_SETMONDATA, + CONTROLLER_SETRAWMONDATA, + CONTROLLER_LOADMONSPRITE, + CONTROLLER_SWITCHINANIM, + CONTROLLER_RETURNMONTOBALL, + CONTROLLER_DRAWTRAINERPIC, + CONTROLLER_TRAINERSLIDE, + CONTROLLER_TRAINERSLIDEBACK, + CONTROLLER_FAINTANIMATION, + CONTROLLER_PALETTEFADE, + CONTROLLER_SUCCESSBALLTHROWANIM, + CONTROLLER_BALLTHROWANIM, + CONTROLLER_PAUSE, + CONTROLLER_MOVEANIMATION, + CONTROLLER_PRINTSTRING, + CONTROLLER_PRINTSTRINGPLAYERONLY, + CONTROLLER_CHOOSEACTION, + CONTROLLER_UNKNOWNYESNOBOX, + CONTROLLER_CHOOSEMOVE, + CONTROLLER_OPENBAG, + CONTROLLER_CHOOSEPOKEMON, + CONTROLLER_23, + CONTROLLER_HEALTHBARUPDATE, + CONTROLLER_EXPUPDATE, + CONTROLLER_STATUSICONUPDATE, + CONTROLLER_STATUSANIMATION, + CONTROLLER_STATUSXOR, + CONTROLLER_DATATRANSFER, + CONTROLLER_DMA3TRANSFER, + CONTROLLER_31, + CONTROLLER_32, + CONTROLLER_TWORETURNVALUES, + CONTROLLER_CHOSENMONRETURNVALUE, + CONTROLLER_ONERETURNVALUE, + CONTROLLER_ONERETURNVALUE_DUPLICATE, + CONTROLLER_37, + CONTROLLER_38, + CONTROLLER_39, + CONTROLLER_40, + CONTROLLER_HITANIMATION, + CONTROLLER_42, + CONTROLLER_EFFECTIVENESSSOUND, + CONTROLLER_PLAYFANFAREORBGM, + CONTROLLER_FAINTINGCRY, + CONTROLLER_INTROSLIDE, + CONTROLLER_INTROTRAINERBALLTHROW, + CONTROLLER_DRAWPARTYSTATUSSUMMARY, + CONTROLLER_HIDEPARTYSTATUSSUMMARY, + CONTROLLER_ENDBOUNCE, + CONTROLLER_SPRITEINVISIBILITY, + CONTROLLER_BATTLEANIMATION, + CONTROLLER_LINKSTANDBYMSG, + CONTROLLER_RESETACTIONMOVESELECTION, + CONTROLLER_55, + /*new controllers should go here*/ + CONTROLLER_TERMINATOR_NOP, + CONTROLLER_CMDS_COUNT +}; + +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..385490438 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 @@ -15,7 +15,7 @@ #define MOVE_LIMITATION_DISABLED (1 << 2) #define MOVE_LIMITATION_TORMENTED (1 << 3) #define MOVE_LIMITATION_TAUNT (1 << 4) -#define MOVE_LIMITATION_IMPRISON (1 << 5) +#define MOVE_LIMITATION_IMPRISON (1 << 5) #define ABILITYEFFECT_ON_SWITCHIN 0x0 #define ABILITYEFFECT_ENDTURN 0x1 @@ -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/abilities.h b/include/constants/abilities.h index 4e2c4056c..4ad54c86f 100644 --- a/include/constants/abilities.h +++ b/include/constants/abilities.h @@ -80,4 +80,6 @@ #define ABILITY_CACOPHONY 76 #define ABILITY_AIR_LOCK 77 +#define ABILITIES_COUNT 78 + #endif // GUARD_CONSTANTS_ABILITIES_H diff --git a/include/constants/battle.h b/include/constants/battle.h index c33e0abb4..5aa1772d1 100644 --- a/include/constants/battle.h +++ b/include/constants/battle.h @@ -1,5 +1,5 @@ -#ifndef GUARD_CONSTANTS_BATTLE_CONSTANTS_H -#define GUARD_CONSTANTS_BATTLE_CONSTANTS_H +#ifndef GUARD_CONSTANTS_BATTLE_H +#define GUARD_CONSTANTS_BATTLE_H /* * A battler may be in one of four positions on the field. The first bit determines @@ -43,6 +43,7 @@ #define BIT_SIDE 1 #define BIT_FLANK 2 +// Battle Type Flags #define BATTLE_TYPE_DOUBLE 0x0001 #define BATTLE_TYPE_LINK 0x0002 #define BATTLE_TYPE_WILD 0x0004 @@ -63,67 +64,68 @@ #define SECRET_BASE_OPPONENT 0x400 #define LINK_BATTLE_OPPONENT 0x800 -#define BATTLE_WON 0x1 -#define BATTLE_LOST 0x2 -#define BATTLE_DREW 0x3 -#define BATTLE_RAN 0x4 -#define BATTLE_PLAYER_TELEPORTED 0x5 -#define BATTLE_POKE_FLED 0x6 -#define BATTLE_CAUGHT 0x7 -#define BATTLE_OUT_OF_BALLS 0x8 -#define BATTLE_OPPONENT_TELEPORTED 0xA - -#define OUTCOME_LINK_BATTLE_RUN 0x80 +// Battle Outcome defines +#define B_OUTCOME_WON 0x1 +#define B_OUTCOME_LOST 0x2 +#define B_OUTCOME_DREW 0x3 +#define B_OUTCOME_RAN 0x4 +#define B_OUTCOME_PLAYER_TELEPORTED 0x5 +#define B_OUTCOME_MON_FLED 0x6 +#define B_OUTCOME_CAUGHT 0x7 +#define B_OUTCOME_NO_SAFARI_BALLS 0x8 +#define B_OUTCOME_FORFEITED 0x9 +#define B_OUTCOME_MON_TELEPORTED 0xA +#define B_OUTCOME_LINK_BATTLE_RAN 0x80 // Non-volatile status conditions // These persist remain outside of battle and after switching out -#define STATUS1_NONE 0x0 -#define STATUS_SLEEP 0x7 -#define STATUS_POISON 0x8 -#define STATUS_BURN 0x10 -#define STATUS_FREEZE 0x20 -#define STATUS_PARALYSIS 0x40 -#define STATUS_TOXIC_POISON 0x80 -#define STATUS_TOXIC_COUNTER 0xF00 -#define STATUS_PSN_ANY ((STATUS_POISON | STATUS_TOXIC_POISON)) -#define STATUS_ANY ((STATUS_SLEEP | STATUS_POISON | STATUS_BURN | STATUS_FREEZE | STATUS_PARALYSIS | STATUS_TOXIC_POISON)) +#define STATUS1_NONE 0x0 +#define STATUS1_SLEEP 0x7 +#define STATUS1_POISON 0x8 +#define STATUS1_BURN 0x10 +#define STATUS1_FREEZE 0x20 +#define STATUS1_PARALYSIS 0x40 +#define STATUS1_TOXIC_POISON 0x80 +#define STATUS1_TOXIC_COUNTER 0xF00 +#define STATUS1_PSN_ANY (STATUS1_POISON | STATUS1_TOXIC_POISON) +#define STATUS1_ANY (STATUS1_SLEEP | STATUS1_POISON | STATUS1_BURN | STATUS1_FREEZE | STATUS1_PARALYSIS | STATUS1_TOXIC_POISON) // Volatile status ailments // These are removed after exiting the battle or switching out -#define STATUS2_CONFUSION 0x00000007 -#define STATUS2_FLINCHED 0x00000008 -#define STATUS2_UPROAR 0x00000070 -#define STATUS2_BIDE 0x00000300 //two bits 0x100 0x200 -#define STATUS2_LOCK_CONFUSE 0x00000C00 -#define STATUS2_MULTIPLETURNS 0x00001000 -#define STATUS2_WRAPPED 0x0000E000 -#define STATUS2_INFATUATION 0x000F0000 +#define STATUS2_CONFUSION 0x00000007 +#define STATUS2_FLINCHED 0x00000008 +#define STATUS2_UPROAR 0x00000070 +#define STATUS2_BIDE 0x00000300 // two bits 0x100, 0x200 +#define STATUS2_LOCK_CONFUSE 0x00000C00 +#define STATUS2_MULTIPLETURNS 0x00001000 +#define STATUS2_WRAPPED 0x0000E000 +#define STATUS2_INFATUATION 0x000F0000 // 4 bits, one for every battler #define STATUS2_INFATUATED_WITH(battler) (gBitTable[battler] << 16) -#define STATUS2_FOCUS_ENERGY 0x00100000 -#define STATUS2_TRANSFORMED 0x00200000 -#define STATUS2_RECHARGE 0x00400000 -#define STATUS2_RAGE 0x00800000 -#define STATUS2_SUBSTITUTE 0x01000000 -#define STATUS2_DESTINY_BOND 0x02000000 -#define STATUS2_ESCAPE_PREVENTION 0x04000000 -#define STATUS2_NIGHTMARE 0x08000000 -#define STATUS2_CURSED 0x10000000 -#define STATUS2_FORESIGHT 0x20000000 -#define STATUS2_DEFENSE_CURL 0x40000000 -#define STATUS2_TORMENT 0x80000000 +#define STATUS2_FOCUS_ENERGY 0x00100000 +#define STATUS2_TRANSFORMED 0x00200000 +#define STATUS2_RECHARGE 0x00400000 +#define STATUS2_RAGE 0x00800000 +#define STATUS2_SUBSTITUTE 0x01000000 +#define STATUS2_DESTINY_BOND 0x02000000 +#define STATUS2_ESCAPE_PREVENTION 0x04000000 +#define STATUS2_NIGHTMARE 0x08000000 +#define STATUS2_CURSED 0x10000000 +#define STATUS2_FORESIGHT 0x20000000 +#define STATUS2_DEFENSE_CURL 0x40000000 +#define STATUS2_TORMENT 0x80000000 // Seems like per-battler statuses. Not quite sure how to categorize these -#define STATUS3_LEECHSEED_BANK 0x3 +#define STATUS3_LEECHSEED_BATTLER 0x3 #define STATUS3_LEECHSEED 0x4 -#define STATUS3_ALWAYS_HITS 0x18 //two bits +#define STATUS3_ALWAYS_HITS 0x18 // two bits #define STATUS3_PERISH_SONG 0x20 #define STATUS3_ON_AIR 0x40 #define STATUS3_UNDERGROUND 0x80 #define STATUS3_MINIMIZED 0x100 #define STATUS3_ROOTED 0x400 #define STATUS3_CHARGED_UP 0x200 -#define STATUS3_YAWN 0x1800 //two bits -#define STATUS3_IMPRISIONED 0x2000 +#define STATUS3_YAWN 0x1800 // two bits +#define STATUS3_IMPRISONED_OTHERS 0x2000 #define STATUS3_GRUDGE 0x4000 #define STATUS3_CANT_SCORE_A_CRIT 0x8000 #define STATUS3_MUDSPORT 0x10000 @@ -131,7 +133,7 @@ #define STATUS3_UNDERWATER 0x40000 #define STATUS3_INTIMIDATE_POKES 0x80000 #define STATUS3_TRACE 0x100000 -#define STATUS3_SEMI_INVULNERABLE ((STATUS3_UNDERGROUND | STATUS3_ON_AIR | STATUS3_UNDERWATER)) +#define STATUS3_SEMI_INVULNERABLE (STATUS3_UNDERGROUND | STATUS3_ON_AIR | STATUS3_UNDERWATER) // Not really sure what a "hitmarker" is. #define HITMARKER_x10 0x00000010 @@ -142,7 +144,7 @@ #define HITMARKER_NO_ATTACKSTRING 0x00000200 #define HITMARKER_ATTACKSTRING_PRINTED 0x00000400 #define HITMARKER_NO_PPDEDUCT 0x00000800 -#define HITMARKER_PURSUIT_TRAP 0x00001000 +#define HITMARKER_SWAP_ATTACKER_TARGET 0x00001000 #define HITMARKER_IGNORE_SAFEGUARD 0x00002000 #define HITMARKER_SYNCHRONISE_EFFECT 0x00004000 #define HITMARKER_RUN 0x00008000 @@ -157,9 +159,9 @@ #define HITMARKER_GRUDGE 0x01000000 #define HITMARKER_OBEYS 0x02000000 #define HITMARKER_x4000000 0x04000000 -#define HITMARKER_x8000000 0x08000000 -#define HITMARKER_FAINTED(bank) ((gBitTable[bank] << 0x1C)) -#define HITMARKER_UNK(bank) ((0x10000000 << bank)) +#define HITMARKER_CHARGING 0x08000000 +#define HITMARKER_FAINTED(battler) (gBitTable[battler] << 0x1C) +#define HITMARKER_UNK(battler) (0x10000000 << battler) // Per-side statuses that affect an entire party #define SIDE_STATUS_REFLECT (1 << 0) @@ -235,7 +237,7 @@ #define MOVE_EFFECT_RAPIDSPIN 0x23 #define MOVE_EFFECT_REMOVE_PARALYSIS 0x24 #define MOVE_EFFECT_ATK_DEF_DOWN 0x25 -#define MOVE_EFFECT_RECOIL_33_PARALYSIS 0x26 +#define MOVE_EFFECT_RECOIL_33 0x26 #define MOVE_EFFECT_ATK_PLUS_2 0x27 #define MOVE_EFFECT_DEF_PLUS_2 0x28 #define MOVE_EFFECT_SPD_PLUS_2 0x29 @@ -322,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/overworld.h b/include/overworld.h index 9d00194be..958eb57ff 100644 --- a/include/overworld.h +++ b/include/overworld.h @@ -127,7 +127,7 @@ void CB2_ReturnToFieldLink(void); // sub_805465C void c2_exit_to_overworld_1_sub_8080DEC(void); // sub_80546B8 -void c2_exit_to_overworld_1_continue_scripts_restart_music(void); +void CB2_ReturnToFieldContinueScriptPlayMapMusic(void); void sub_80546F0(void); // sub_805470C void CB2_ContinueSavedGame(void); 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 |