diff options
author | DizzyEggg <jajkodizzy@wp.pl> | 2017-09-27 23:43:45 +0200 |
---|---|---|
committer | DizzyEggg <jajkodizzy@wp.pl> | 2017-09-27 23:43:45 +0200 |
commit | 69928d3904a610791d5e34e32364d9ee5f9392ee (patch) | |
tree | fab7333ead815c4561e7cc97c8f303323c3f94f6 /include | |
parent | d769ec137447c52062b48153851bd2824055b6df (diff) |
battle 4 up to 0xE5
Diffstat (limited to 'include')
-rw-r--r-- | include/battle.h | 87 | ||||
-rw-r--r-- | include/battle_message.h | 17 | ||||
-rw-r--r-- | include/mail.h | 19 |
3 files changed, 58 insertions, 65 deletions
diff --git a/include/battle.h b/include/battle.h index f84a75cba..a0a50faf7 100644 --- a/include/battle.h +++ b/include/battle.h @@ -112,7 +112,7 @@ #define STATUS3_ROOTED 0x400 #define STATUS3_CHARGED_UP 0x200 #define STATUS3_YAWN 0x1800 //two bits -#define STATUS3_IMPRISIONED 0x2000 +#define STATUS3_IMPRISONED_OTHERS 0x2000 #define STATUS3_GRUDGE 0x4000 #define STATUS3_CANT_SCORE_A_CRIT 0x8000 #define STATUS3_MUDSPORT 0x10000 @@ -172,7 +172,7 @@ #define ABILITYEFFECT_CHECK_BANK_SIDE 0xD #define ABILITYEFFECT_FIELD_SPORT 0xE #define ABILITYEFFECT_CHECK_FIELD_EXCEPT_BANK 0xF -#define ABILITYEFFECT_COUNT_OTHER_SIZE 0x10 +#define ABILITYEFFECT_COUNT_OTHER_SIDE 0x10 #define ABILITYEFFECT_COUNT_BANK_SIDE 0x11 #define ABILITYEFFECT_COUNT_ON_FIELD 0x12 #define ABILITYEFFECT_CHECK_ON_FIELD 0x13 @@ -206,6 +206,15 @@ #define WEATHER_HAIL (1 << 7) #define WEATHER_HAIL_ANY ((WEATHER_HAIL)) +#define BATTLE_TERRAIN_GRASS 0 +#define BATTLE_TERRAIN_LONG_GRASS 1 +#define BATTLE_TERRAIN_SAND 2 +#define BATTLE_TERRAIN_UNDERWATER 3 +#define BATTLE_TERRAIN_WATER 4 +#define BATTLE_TERRAIN_POND 5 +#define BATTLE_TERRAIN_ROCK 6 +#define BATTLE_TERRAIN_CAVE 7 + // array entries for battle communication #define CURSOR_POSITION 0x1 #define MOVE_EFFECT_BYTE 0x3 @@ -554,46 +563,7 @@ struct BattleStruct u8 wildVictorySong; u8 dynamicMoveType; u8 wrappedBy[4]; - u8 field_18; - u8 field_19; - u8 field_1A; - u8 field_1B; - u8 field_1C; - u8 field_1D; - u8 field_1E; - u8 field_1F; - u8 field_20; - u8 field_21; - u8 field_22; - u8 field_23; - u8 field_24; - u8 field_25; - u8 field_26; - u8 field_27; - u8 field_28; - u8 field_29; - u8 field_2A; - u8 field_2B; - u8 field_2C; - u8 field_2D; - u8 field_2E; - u8 field_2F; - u8 field_30; - u8 field_31; - u8 field_32; - u8 field_33; - u8 field_34; - u8 field_35; - u8 field_36; - u8 field_37; - u8 field_38; - u8 field_39; - u8 field_3A; - u8 field_3B; - u8 field_3C; - u8 field_3D; - u8 field_3E; - u8 field_3F; + u16 assistPossibleMoves[5 * 4]; // 5 mons, each of them knowing 4 moves u8 field_40; u8 field_41; u8 field_42; @@ -710,28 +680,6 @@ extern struct BattleStruct* gBattleStruct; var2[offsetof(struct structName, offsetField)] = value; \ } -// This is a leftover from R/S direct use of ewram addresses -#define GET_CHANGED_ITEM_PTR_VIA_MEME_ACCESS(bank, varName) \ -{ \ - void** memes1 = (void**)(&gBattleStruct); \ - void* memes2 = (void*)((u32)(bank * 2 + offsetof(struct BattleStruct, changedItems))); \ - varName = (u16*)(((void*)(*memes1) + (u32)(memes2))); \ -} - -#define GET_USED_ITEM_PTR_VIA_MEME_ACCESS(bank, varName) \ -{ \ - void** memes1 = (void**)(&gBattleStruct); \ - void* memes2 = (void*)((u32)(bank * 2 + offsetof(struct BattleStruct, usedHeldItems))); \ - varName = (u16*)(((void*)(*memes1) + (u32)(memes2))); \ -} - -#define GET_HP_SWITCHOUT_PTR_VIA_MEME_ACCESS(bank, varName) \ -{ \ - void** memes1 = (void**)(&gBattleStruct); \ - void* memes2 = (void*)((u32)(bank * 2 + offsetof(struct BattleStruct, hpOnSwitchout))); \ - varName = (u16*)(((void*)(*memes1) + (u32)(memes2))); \ -} - #define GET_MOVE_TYPE(move, typeArg) \ { \ if (gBattleStruct->dynamicMoveType) \ @@ -917,15 +865,24 @@ void BattleMainCB2(void); void ResetSentPokesToOpponentValue(void); bool8 CanRunFromBattle(u8 bank); bool8 IsRunningFromBattleImpossible(void); +void PressurePPLoseOnUsingPerishSong(u8 bankAtk); +void PressurePPLoseOnUsingImprision(u8 bankAtk); // battle_3 +#define MOVE_LIMITATION_ZEROMOVE (1 << 0) +#define MOVE_LIMITATION_PP (1 << 1) +#define MOVE_LIMITATION_DISABLED (1 << 2) +#define MOVE_LIMITATION_TORMENTED (1 << 3) +#define MOVE_LIMITATION_TAUNT (1 << 4) +#define MOVE_LIMITATION_IMPRISION (1 << 5) + void BattleScriptPush(const u8* bsPtr); void BattleScriptPushCursor(void); void BattleScriptPop(void); u8 sub_803FB4C(void); // msg, can't select a move u8 CheckMoveLimitations(u8 bank, u8 unusableMoves, u8 check); bool8 AreAllMovesUnusable(void); -u8 IsImprisoned(u8 bank, u16 move); +u8 GetImprisonedMovesCount(u8 bank, u16 move); u8 UpdateTurnCounters(void); u8 TurnBasedEffects(void); bool8 sub_8041364(void); diff --git a/include/battle_message.h b/include/battle_message.h index 3e28fa5e5..6e6616cf0 100644 --- a/include/battle_message.h +++ b/include/battle_message.h @@ -82,6 +82,14 @@ textVar[3] = B_BUFF_EOS; \ } +#define PREPARE_ABILITY_BUFFER(textVar, abilityId) \ +{ \ + textVar[0] = B_BUFF_PLACEHOLDER_BEGIN; \ + textVar[1] = B_BUFF_ABILITY; \ + textVar[2] = abilityId; \ + textVar[3] = B_BUFF_EOS; \ +} + #define PREPARE_TYPE_BUFFER(textVar, typeId) \ { \ textVar[0] = B_BUFF_PLACEHOLDER_BEGIN; \ @@ -142,6 +150,15 @@ textVar[4] = B_BUFF_EOS; \ } +#define PREPARE_ITEM_BUFFER(textVar, item) \ +{ \ + textVar[0] = B_BUFF_PLACEHOLDER_BEGIN; \ + textVar[1] = B_BUFF_ITEM; \ + textVar[2] = item; \ + textVar[3] = (item & 0xFF00) >> 8; \ + textVar[4] = B_BUFF_EOS; \ +} + #define PREPARE_SPECIES_BUFFER(textVar, species) \ { \ textVar[0] = B_BUFF_PLACEHOLDER_BEGIN; \ diff --git a/include/mail.h b/include/mail.h new file mode 100644 index 000000000..16ca1f676 --- /dev/null +++ b/include/mail.h @@ -0,0 +1,19 @@ +#ifndef GUARD_MAIL_H +#define GUARD_MAIL_H + +#include "items.h" + +#define IS_ITEM_MAIL(itemId)((itemId == ITEM_ORANGE_MAIL \ + || itemId == ITEM_HARBOR_MAIL \ + || itemId == ITEM_GLITTER_MAIL \ + || itemId == ITEM_MECH_MAIL \ + || itemId == ITEM_WOOD_MAIL \ + || itemId == ITEM_WAVE_MAIL \ + || itemId == ITEM_BEAD_MAIL \ + || itemId == ITEM_SHADOW_MAIL \ + || itemId == ITEM_TROPIC_MAIL \ + || itemId == ITEM_DREAM_MAIL \ + || itemId == ITEM_FAB_MAIL \ + || itemId == ITEM_RETRO_MAIL)) + +#endif // GUARD_MAIL_H |