diff options
author | YamaArashi <shadow962@live.com> | 2017-01-02 03:01:17 -0800 |
---|---|---|
committer | YamaArashi <shadow962@live.com> | 2017-01-02 03:10:02 -0800 |
commit | 1ae67805bcf7ba402ce2a73b2fbf04b26ded377b (patch) | |
tree | 606936d2c31097c007cf4a4db41e0acd64456073 | |
parent | 98062c69d613fb1b9e2345924dd34d0bbdcfcc90 (diff) |
battle type constants
-rw-r--r-- | include/battle.h | 16 | ||||
-rw-r--r-- | src/battle_ai.c | 20 | ||||
-rw-r--r-- | src/battle_setup.c | 20 | ||||
-rw-r--r-- | src/calculate_base_damage.c | 29 | ||||
-rw-r--r-- | src/link.c | 5 | ||||
-rw-r--r-- | src/sound.c | 3 | ||||
-rw-r--r-- | src/text.c | 3 |
7 files changed, 60 insertions, 36 deletions
diff --git a/include/battle.h b/include/battle.h index 06daeb081..14cbb3a1b 100644 --- a/include/battle.h +++ b/include/battle.h @@ -1,6 +1,22 @@ #ifndef GUARD_BATTLE_H #define GUARD_BATTLE_H +#define BATTLE_TYPE_DOUBLE 0x0001 +#define BATTLE_TYPE_LINK 0x0002 +#define BATTLE_TYPE_WILD 0x0004 +#define BATTLE_TYPE_TRAINER 0x0008 +#define BATTLE_TYPE_FIRST_BATTLE 0x0010 +#define BATTLE_TYPE_20 0x0020 +#define BATTLE_TYPE_40 0x0040 +#define BATTLE_TYPE_SAFARI 0x0080 +#define BATTLE_TYPE_BATTLE_TOWER 0x0100 +#define BATTLE_TYPE_WALLY_TUTORIAL 0x0200 +#define BATTLE_TYPE_ROAMER 0x0400 +#define BATTLE_TYPE_EREADER_TRAINER 0x0800 +#define BATTLE_TYPE_KYOGRE_GROUDON 0x1000 +#define BATTLE_TYPE_LEGENDARY 0x2000 +#define BATTLE_TYPE_REGI 0x4000 + struct Trainer { /*0x00*/ u8 partyFlags; diff --git a/src/battle_ai.c b/src/battle_ai.c index 29fe7e0e0..6875ca745 100644 --- a/src/battle_ai.c +++ b/src/battle_ai.c @@ -101,19 +101,23 @@ void sub_81070D4(void) s32 i; u8 *data = (u8 *)&unk_2016A00; - for(i = 0; (u32)i < 48; i++) + for (i = 0; (u32)i < 48; i++) data[i] = 0; - if((gBattleTypeFlags & 8) && gTrainerBattleOpponent != 0x400 && !(gBattleTypeFlags & 0x982)) + + if ((gBattleTypeFlags & BATTLE_TYPE_TRAINER) + && gTrainerBattleOpponent != 0x400 + && !(gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_SAFARI | BATTLE_TYPE_BATTLE_TOWER | BATTLE_TYPE_EREADER_TRAINER))) { - for(i = 0; i < 4; i++) + for (i = 0; i < 4; i++) { - if(gTrainers[gTrainerBattleOpponent].items[i] != 0) + if (gTrainers[gTrainerBattleOpponent].items[i] != 0) { unk_2016A00.items[unk_2016A00.unk8] = gTrainers[gTrainerBattleOpponent].items[i]; unk_2016A00.unk8++; } } } + sub_810715C(); } @@ -140,7 +144,7 @@ void sub_810715C(void) unk_2016C00.unk20 = 0; gUnknown_02024C07 = gUnknown_02024A60; - if(gBattleTypeFlags & 1) + if(gBattleTypeFlags & BATTLE_TYPE_DOUBLE) { gUnknown_02024C08 = Random() & 2; @@ -150,11 +154,11 @@ void sub_810715C(void) else gUnknown_02024C08 = gUnknown_02024A60 ^ 1; - if(gBattleTypeFlags & 0x80) + if(gBattleTypeFlags & BATTLE_TYPE_SAFARI) unk_2016800.aiFlags = 0x40000000; - else if(gBattleTypeFlags & 0x400) + else if(gBattleTypeFlags & BATTLE_TYPE_ROAMER) unk_2016800.aiFlags = 0x20000000; - else if(gBattleTypeFlags & 0x10) + else if(gBattleTypeFlags & BATTLE_TYPE_FIRST_BATTLE) unk_2016800.aiFlags = 0x80000000; else unk_2016800.aiFlags = gTrainers[gTrainerBattleOpponent].aiFlags; diff --git a/src/battle_setup.c b/src/battle_setup.c index ed43b4437..fbdd37616 100644 --- a/src/battle_setup.c +++ b/src/battle_setup.c @@ -177,7 +177,7 @@ void sub_8081A5C(void) player_bitmagic(); sub_80597F4(); gMain.field_8 = sub_8081C8C; - gBattleTypeFlags = 1024; + gBattleTypeFlags = BATTLE_TYPE_ROAMER; task_add_01_battle_start(GetWildBattleTransition(), 0); sav12_xor_increment(7); sav12_xor_increment(8); @@ -189,7 +189,7 @@ void sub_8081AA4(void) player_bitmagic(); sub_80597F4(); gMain.field_8 = sub_80C824C; - gBattleTypeFlags = 128; + gBattleTypeFlags = BATTLE_TYPE_SAFARI; task_add_01_battle_start(GetWildBattleTransition(), 0); } @@ -206,7 +206,7 @@ void sub_8081AFC(void) CreateMaleMon(&gEnemyParty[0], SPECIES_RALTS, 5); ScriptContext2_Enable(); gMain.field_8 = c2_exit_to_overworld_1_continue_scripts_restart_music; - gBattleTypeFlags = 512; + gBattleTypeFlags = BATTLE_TYPE_WALLY_TUTORIAL; task_add_01_battle_start(8, 0); } @@ -224,7 +224,7 @@ void sub_8081B78(void) { ScriptContext2_Enable(); gMain.field_8 = sub_8081CEC; - gBattleTypeFlags = 0x2000; + gBattleTypeFlags = BATTLE_TYPE_LEGENDARY; task_add_01_battle_start(GetWildBattleTransition(), 0); sav12_xor_increment(7); sav12_xor_increment(8); @@ -234,7 +234,7 @@ void sub_8081BB8(void) { ScriptContext2_Enable(); gMain.field_8 = sub_8081CEC; - gBattleTypeFlags = 0x2000; + gBattleTypeFlags = BATTLE_TYPE_LEGENDARY; task_add_01_battle_start(0, BGM_BATTLE34); sav12_xor_increment(7); sav12_xor_increment(8); @@ -244,7 +244,7 @@ void sub_8081BF8(void) { ScriptContext2_Enable(); gMain.field_8 = sub_8081CEC; - gBattleTypeFlags = 12288; + gBattleTypeFlags = BATTLE_TYPE_LEGENDARY | BATTLE_TYPE_KYOGRE_GROUDON; if (gGameVersion == 2) task_add_01_battle_start(0xB, BGM_BATTLE34); // KYOGRE else @@ -257,7 +257,7 @@ void sub_8081C50(void) { ScriptContext2_Enable(); gMain.field_8 = sub_8081CEC; - gBattleTypeFlags = 24576; + gBattleTypeFlags = BATTLE_TYPE_LEGENDARY | BATTLE_TYPE_REGI; task_add_01_battle_start(0xA, BGM_BATTLE36); sav12_xor_increment(7); sav12_xor_increment(8); @@ -523,7 +523,7 @@ void sub_80821D8(void) if (sub_811AAE8() == TRUE) { - gBattleTypeFlags = 16; + gBattleTypeFlags = BATTLE_TYPE_FIRST_BATTLE; gMain.field_8 = sub_8082228; SetMainCallback2(sub_800E7C4); prev_quest_postbuffer_cursor_backup_reset(); @@ -733,7 +733,7 @@ void trainer_flag_clear(u16 flag) void sub_80825E4(void) { - gBattleTypeFlags = 8; + gBattleTypeFlags = BATTLE_TYPE_TRAINER; gMain.field_8 = sub_808260C; task_add_01_battle_start_with_music_and_stats(); ScriptContext1_Stop(); @@ -776,7 +776,7 @@ void do_choose_name_or_words_screen(void) void sub_80826B0(void) { - gBattleTypeFlags = 8; + gBattleTypeFlags = BATTLE_TYPE_TRAINER; gMain.field_8 = do_choose_name_or_words_screen; task_add_01_battle_start_with_music_and_stats(); ScriptContext1_Stop(); diff --git a/src/calculate_base_damage.c b/src/calculate_base_damage.c index b572011ce..29b00370d 100644 --- a/src/calculate_base_damage.c +++ b/src/calculate_base_damage.c @@ -10,6 +10,7 @@ #include "abilities.h" #include "hold_effects.h" #include "event_data.h" +#include "battle.h" extern u8 gPlayerPartyCount; extern struct Pokemon gPlayerParty[6]; @@ -113,33 +114,33 @@ s32 CalculateBaseDamage(struct BattlePokemon *attacker, struct BattlePokemon *de if (attacker->ability == ABILITY_HUGE_POWER || attacker->ability == ABILITY_PURE_POWER) attack *= 2; - if (!(gBattleTypeFlags & 0x902)) + if (!(gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_BATTLE_TOWER | BATTLE_TYPE_EREADER_TRAINER))) { - if ((gBattleTypeFlags & 8) + if ((gBattleTypeFlags & BATTLE_TYPE_TRAINER) && gTrainerBattleOpponent != 1024 && FlagGet(BADGE01_GET) && !battle_side_get_owner(a7)) attack = (110 * attack) / 100; - if (!(gBattleTypeFlags & 0x902)) + if (!(gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_BATTLE_TOWER | BATTLE_TYPE_EREADER_TRAINER))) { - if ((gBattleTypeFlags & 8) + if ((gBattleTypeFlags & BATTLE_TYPE_TRAINER) && gTrainerBattleOpponent != 1024 && FlagGet(BADGE05_GET) && !battle_side_get_owner(a8)) defense = (110 * defense) / 100; - if (!(gBattleTypeFlags & 0x902)) + if (!(gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_BATTLE_TOWER | BATTLE_TYPE_EREADER_TRAINER))) { - if ((gBattleTypeFlags & 8) + if ((gBattleTypeFlags & BATTLE_TYPE_TRAINER) && gTrainerBattleOpponent != 1024 && FlagGet(BADGE07_GET) && !battle_side_get_owner(a7)) spAttack = (110 * spAttack) / 100; - if (!(gBattleTypeFlags & 0x902)) + if (!(gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_BATTLE_TOWER | BATTLE_TYPE_EREADER_TRAINER))) { - if ((gBattleTypeFlags & 8) + if ((gBattleTypeFlags & BATTLE_TYPE_TRAINER) && gTrainerBattleOpponent != 1024 && FlagGet(BADGE07_GET) && !battle_side_get_owner(a8)) @@ -164,9 +165,9 @@ s32 CalculateBaseDamage(struct BattlePokemon *attacker, struct BattlePokemon *de if (attackerHoldEffect == HOLD_EFFECT_CHOICE_BAND) attack = (150 * attack) / 100; - if (attackerHoldEffect == HOLD_EFFECT_SOUL_DEW && !(gBattleTypeFlags & 0x100) && (attacker->species == SPECIES_LATIAS || attacker->species == SPECIES_LATIOS)) + if (attackerHoldEffect == HOLD_EFFECT_SOUL_DEW && !(gBattleTypeFlags & BATTLE_TYPE_BATTLE_TOWER) && (attacker->species == SPECIES_LATIAS || attacker->species == SPECIES_LATIOS)) spAttack = (150 * spAttack) / 100; - if (defenderHoldEffect == HOLD_EFFECT_SOUL_DEW && !(gBattleTypeFlags & 0x100) && (defender->species == SPECIES_LATIAS || defender->species == SPECIES_LATIOS)) + if (defenderHoldEffect == HOLD_EFFECT_SOUL_DEW && !(gBattleTypeFlags & BATTLE_TYPE_BATTLE_TOWER) && (defender->species == SPECIES_LATIAS || defender->species == SPECIES_LATIOS)) spDefense = (150 * spDefense) / 100; if (attackerHoldEffect == HOLD_EFFECT_DEEP_SEA_TOOTH && attacker->species == SPECIES_CLAMPERL) spAttack *= 2; @@ -236,13 +237,13 @@ s32 CalculateBaseDamage(struct BattlePokemon *attacker, struct BattlePokemon *de if ((a4 & 1) && gCritMultiplier == 1) { - if ((gBattleTypeFlags & 1) && sub_803C348(2) == 2) + if ((gBattleTypeFlags & BATTLE_TYPE_DOUBLE) && sub_803C348(2) == 2) damage = 2 * (damage / 3); else damage /= 2; } - if ((gBattleTypeFlags & 1) && gBattleMoves[move].target == 8 && sub_803C348(2) == 2) + if ((gBattleTypeFlags & BATTLE_TYPE_DOUBLE) && gBattleMoves[move].target == 8 && sub_803C348(2) == 2) damage /= 2; if (damage == 0) @@ -280,13 +281,13 @@ s32 CalculateBaseDamage(struct BattlePokemon *attacker, struct BattlePokemon *de if ((a4 & 2) && gCritMultiplier == 1) { - if ((gBattleTypeFlags & 1) && sub_803C348(2) == 2) + if ((gBattleTypeFlags & BATTLE_TYPE_DOUBLE) && sub_803C348(2) == 2) damage = 2 * (damage / 3); else damage /= 2; } - if ((gBattleTypeFlags & 1) && gBattleMoves[move].target == 8 && sub_803C348(2) == 2) + if ((gBattleTypeFlags & BATTLE_TYPE_DOUBLE) && gBattleMoves[move].target == 8 && sub_803C348(2) == 2) damage /= 2; if (!sub_8018324(0xE, 0, ABILITY_CLOUD_NINE, 0, 0) && !sub_8018324(0xE, 0, ABILITY_AIR_LOCK, 0, 0)) diff --git a/src/link.c b/src/link.c index 76a112607..25a7ce270 100644 --- a/src/link.c +++ b/src/link.c @@ -11,6 +11,7 @@ #include "menu.h" #include "sound.h" #include "save.h" +#include "battle.h" #define SIO_MULTI_CNT ((struct SioMultiCnt *)REG_ADDR_SIOCNT) @@ -1107,7 +1108,7 @@ static void sub_800837C(void) if (count == totalCount) { - gBattleTypeFlags &= 0xFFDF; + gBattleTypeFlags &= ~BATTLE_TYPE_20; gLinkVSyncDisabled = TRUE; CloseLink(); gLinkCallback = NULL; @@ -1131,7 +1132,7 @@ static void sub_80083E0(void) if (count == totalCount) { - gBattleTypeFlags &= 0xFFDF; + gBattleTypeFlags &= ~BATTLE_TYPE_20; gLinkVSyncDisabled = TRUE; CloseLink(); gLinkCallback = 0; diff --git a/src/sound.c b/src/sound.c index 7345dde85..aa12ba477 100644 --- a/src/sound.c +++ b/src/sound.c @@ -5,6 +5,7 @@ #include "task.h" #include "songs.h" #include "m4a.h" +#include "battle.h" struct Fanfare { @@ -329,7 +330,7 @@ void PlayCry4(u16 species, s8 pan, u8 mode) } else { - if (!(gBattleTypeFlags & 0x40)) + if (!(gBattleTypeFlags & BATTLE_TYPE_40)) m4aMPlayVolumeControl(&gMPlay_BGM, 0xFFFF, 85); PlayCryInternal(species, pan, 125, 10, mode); } diff --git a/src/text.c b/src/text.c index 2a2d2c0d3..fb6118b65 100644 --- a/src/text.c +++ b/src/text.c @@ -5,6 +5,7 @@ #include "songs.h" #include "palette.h" #include "sound.h" +#include "battle.h" enum { @@ -2911,7 +2912,7 @@ static bool8 PlayerCanInterruptWait(struct Window *win) retVal = TRUE; break; case 1: - retVal &= ~(gBattleTypeFlags >> 1); + retVal = (gBattleTypeFlags & BATTLE_TYPE_LINK) ? FALSE : TRUE; break; } |