diff --git a/.github/ISSUE_TEMPLATE/01_battle_engine_bugs.yaml b/.github/ISSUE_TEMPLATE/01_battle_engine_bugs.yaml index a1835c551f..38b323146a 100644 --- a/.github/ISSUE_TEMPLATE/01_battle_engine_bugs.yaml +++ b/.github/ISSUE_TEMPLATE/01_battle_engine_bugs.yaml @@ -11,7 +11,7 @@ body: attributes: label: Description description: | - Describe the issue you are experiencing. + Describe the issue you are experiencing. Attach images/videos if possible. placeholder: | Please enter a description of the issue. Here you can also attach log screenshots, gifs or a video diff --git a/.github/ISSUE_TEMPLATE/02_battle_ai_issues.yaml b/.github/ISSUE_TEMPLATE/02_battle_ai_issues.yaml index f9ccbac7eb..bb617b3d5e 100644 --- a/.github/ISSUE_TEMPLATE/02_battle_ai_issues.yaml +++ b/.github/ISSUE_TEMPLATE/02_battle_ai_issues.yaml @@ -11,7 +11,7 @@ body: attributes: label: Description description: | - Describe the issue you are experiencing. + Describe the issue you are experiencing. Attach images/videos if possible. placeholder: | Please enter a description of the issue. Here you can also attach log screenshots, gifs or a video diff --git a/.github/ISSUE_TEMPLATE/03_feature_requests.yaml b/.github/ISSUE_TEMPLATE/03_feature_requests.yaml index 682f0dc098..8d56216265 100644 --- a/.github/ISSUE_TEMPLATE/03_feature_requests.yaml +++ b/.github/ISSUE_TEMPLATE/03_feature_requests.yaml @@ -11,7 +11,7 @@ body: attributes: label: Description description: | - Describe the issue you are experiencing. + Describe the issue you are experiencing. Attach images/videos if possible. placeholder: | Please enter a description of the issue. Here you can also attach log screenshots, gifs or a video diff --git a/.github/ISSUE_TEMPLATE/04_other_errors.yaml b/.github/ISSUE_TEMPLATE/04_other_errors.yaml index dfb0850030..fec54fa150 100644 --- a/.github/ISSUE_TEMPLATE/04_other_errors.yaml +++ b/.github/ISSUE_TEMPLATE/04_other_errors.yaml @@ -11,7 +11,7 @@ body: attributes: label: Description description: | - Describe the issue you are experiencing. + Describe the issue you are experiencing. Attach images/videos if possible. placeholder: | Please enter a description of the issue. Here you can also attach log screenshots, gifs or a video diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml index 9dc46b6e3f..9a6dfeadd9 100644 --- a/.github/ISSUE_TEMPLATE/config.yml +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -1,5 +1,5 @@ blank_issues_enabled: false -contact_links: +contact_links: - name: Rom-Hacking Hideout's Discord server! url: https://discord.gg/6CzjAG6GZk about: You can follow the development of pokeemerald-expansion and be notified of new releases :) \ No newline at end of file diff --git a/INSTALL.md b/INSTALL.md index e74706d6aa..af2e844677 100644 --- a/INSTALL.md +++ b/INSTALL.md @@ -150,9 +150,9 @@ Note that in msys2, Copy is Ctrl+Insert and Paste is Shift+Insert.
Notes... - > Note 1: While not shown, msys uses forward slashes `/` instead of backwards slashes `\` as the directory separator. - > Note 2: If the path has spaces, then the path must be wrapped with quotations, e.g. `cd "Downloads/My Downloads"`. - > Note 3: Windows path names are case-insensitive so adhering to capitalization isn’t needed. + > Note 1: While not shown, msys uses forward slashes `/` instead of backwards slashes `\` as the directory separator. + > Note 2: If the path has spaces, then the path must be wrapped with quotations, e.g. `cd "Downloads/My Downloads"`. + > Note 3: Windows path names are case-insensitive so adhering to capitalization isn’t needed. > Note 4: If libpng was saved elsewhere, you will need to specify the full path to where libpng was downloaded, e.g. `cd c:/devkitpro/msys2` if it was saved there.
diff --git a/asm/macros/battle_script.inc b/asm/macros/battle_script.inc index ffe481086b..cfdc2792b4 100644 --- a/asm/macros/battle_script.inc +++ b/asm/macros/battle_script.inc @@ -1366,6 +1366,12 @@ .byte \battler .endm + .macro trysetoctolock battler:req, failInstr:req + callnative BS_TrySetOctolock + .byte \battler + .4byte \failInstr + .endm + .macro setzeffect callnative BS_SetZEffect .endm @@ -2087,11 +2093,6 @@ .4byte \failInstr .endm - .macro setoctolock battler:req, failInstr:req - various \battler, VARIOUS_SET_OCTOLOCK - .4byte \failInstr - .endm - .macro cutonethirdhpraisestats failInstr:req various BS_ATTACKER, VARIOUS_CUT_1_3_HP_RAISE_STATS .4byte \failInstr diff --git a/data/battle_anim_scripts.s b/data/battle_anim_scripts.s index 07c1970153..4943e887f2 100644 --- a/data/battle_anim_scripts.s +++ b/data/battle_anim_scripts.s @@ -1009,6 +1009,7 @@ gBattleAnims_General:: .4byte General_SaltCureDamage @ B_ANIM_SALT_CURE_DAMAGE .4byte General_DynamaxGrowth @ B_ANIM_DYNAMAX_GROWTH .4byte General_SetWeather @ B_ANIM_MAX_SET_WEATHER + .4byte General_SyrupBombSpeedDrop @ B_ANIM_SYRUP_BOMB_SPEED_DROP .align 2 gBattleAnims_Special:: @@ -16524,6 +16525,113 @@ Move_DOUBLE_SHOCK:: blendoff end +Move_SYRUP_BOMB:: + createvisualtask AnimTask_SyrupBomb, 0x5 + jumpargeq 0x0, FALSE, Move_SYRUP_BOMB_RED + jumpargeq 0x0, TRUE, Move_SYRUP_BOMB_YELLOW + +@ Credits to Dat.H A +Move_SYRUP_BOMB_RED: + loadspritegfx ANIM_TAG_SYRUP_BLOB_RED + loadspritegfx ANIM_TAG_SYRUP_SPLAT_RED + loadspritegfx ANIM_TAG_SYRUP_SHELL_RED + call SyrupBombProjectileRed + call SyrupBombProjectileRed + call SyrupBombProjectileRed + call SyrupBombProjectileRed + call SyrupBombProjectileRed + call SyrupBombProjectileRed + call SyrupBombProjectileRed + call SyrupBombProjectileRed + call SyrupBombProjectileRed + call SyrupBombProjectileRed + createvisualtask AnimTask_ShakeMon2, 5, ANIM_TARGET, 3, 0, 15, 1 + createvisualtask AnimTask_BlendColorCycle, 2, F_PAL_TARGET, 1, 2, 0, 12, RGB(20, 3, 3) + createsprite gSyrupBombRedHitParticleSpriteTemplate, ANIM_TARGET, 2, 42, 27, 20 + createsprite gSyrupBombRedHitParticleSpriteTemplate, ANIM_TARGET, 2, -27, 44, 20 + createsprite gSyrupBombRedHitParticleSpriteTemplate, ANIM_TARGET, 2, 39, -28, 20 + createsprite gSyrupBombRedHitParticleSpriteTemplate, ANIM_TARGET, 2, -42, -42, 20 + playsewithpan SE_M_DIG, SOUND_PAN_TARGET + delay 5 + createsprite gSyrupBombRedShellSpriteTemplate, ANIM_TARGET, 1, ANIM_TARGET, 100 + createsprite gSyrupBombRedHitParticleSpriteTemplate, ANIM_TARGET, 2, 0, 40, 20 + createsprite gSyrupBombRedHitParticleSpriteTemplate, ANIM_TARGET, 2, -8, -44, 20 + createsprite gSyrupBombRedHitParticleSpriteTemplate, ANIM_TARGET, 2, -46, -28, 20 + createsprite gSyrupBombRedHitParticleSpriteTemplate, ANIM_TARGET, 2, 46, 9, 20 + playsewithpan SE_M_DIG, SOUND_PAN_TARGET + delay 5 + waitsound + waitforvisualfinish + end +SyrupBombProjectileRed: + playsewithpan SE_M_BUBBLE3, SOUND_PAN_ATTACKER + createsprite gSyrupRedProjectileSpriteTemplate, ANIM_TARGET, 2, 20, 0, 40, 0 + delay 3 + return + +Move_SYRUP_BOMB_YELLOW: + loadspritegfx ANIM_TAG_SYRUP_BLOB_YELLOW + loadspritegfx ANIM_TAG_SYRUP_SPLAT_YELLOW + loadspritegfx ANIM_TAG_SYRUP_SHELL_YELLOW + call SyrupBombProjectileYellow + call SyrupBombProjectileYellow + call SyrupBombProjectileYellow + call SyrupBombProjectileYellow + call SyrupBombProjectileYellow + call SyrupBombProjectileYellow + call SyrupBombProjectileYellow + call SyrupBombProjectileYellow + call SyrupBombProjectileYellow + call SyrupBombProjectileYellow + createvisualtask AnimTask_ShakeMon2, 5, ANIM_TARGET, 3, 0, 15, 1 + createvisualtask AnimTask_BlendColorCycle, 2, F_PAL_TARGET, 1, 2, 0, 12, RGB(23, 13, 1) + createsprite gSyrupBombYellowHitParticleSpriteTemplate, ANIM_TARGET, 2, 42, 27, 20 + createsprite gSyrupBombYellowHitParticleSpriteTemplate, ANIM_TARGET, 2, -27, 44, 20 + createsprite gSyrupBombYellowHitParticleSpriteTemplate, ANIM_TARGET, 2, 39, -28, 20 + createsprite gSyrupBombYellowHitParticleSpriteTemplate, ANIM_TARGET, 2, -42, -42, 20 + playsewithpan SE_M_DIG, SOUND_PAN_TARGET + delay 5 + createsprite gSyrupBombYellowShellSpriteTemplate, ANIM_TARGET, 1, ANIM_TARGET, 100 + createsprite gSyrupBombYellowHitParticleSpriteTemplate, ANIM_TARGET, 2, 0, 40, 20 + createsprite gSyrupBombYellowHitParticleSpriteTemplate, ANIM_TARGET, 2, -8, -44, 20 + createsprite gSyrupBombYellowHitParticleSpriteTemplate, ANIM_TARGET, 2, -46, -28, 20 + createsprite gSyrupBombYellowHitParticleSpriteTemplate, ANIM_TARGET, 2, 46, 9, 20 + playsewithpan SE_M_DIG, SOUND_PAN_TARGET + delay 5 + waitsound + waitforvisualfinish + end +SyrupBombProjectileYellow: + playsewithpan SE_M_BUBBLE3, SOUND_PAN_ATTACKER + createsprite gSyrupYellowProjectileSpriteTemplate, ANIM_TARGET, 2, 20, 0, 40, 0 + delay 3 + return + +General_SyrupBombSpeedDrop:: + createvisualtask AnimTask_StickySyrup, 0x5 + jumpargeq 0x0, FALSE, SyrupBombSpeedDropRed + jumpargeq 0x0, TRUE, SyrupBombSpeedDropYellow + +SyrupBombSpeedDropRed: + loadspritegfx ANIM_TAG_SYRUP_BLOB_RED + loadspritegfx ANIM_TAG_SYRUP_SHELL_RED + loopsewithpan SE_M_TOXIC, SOUND_PAN_TARGET, 13, 6 + createvisualtask AnimTask_ShakeMon2, 5, ANIM_TARGET, 3, 0, 15, 1 + createvisualtask AnimTask_BlendColorCycle, 2, F_PAL_TARGET, 1, 2, 0, 12, RGB(20, 3, 3) + createsprite gSyrupBombRedShellBSpriteTemplate, ANIM_TARGET, 1, ANIM_TARGET, 60 + waitforvisualfinish + end + +SyrupBombSpeedDropYellow: + loadspritegfx ANIM_TAG_SYRUP_BLOB_YELLOW + loadspritegfx ANIM_TAG_SYRUP_SHELL_YELLOW + loopsewithpan SE_M_TOXIC, SOUND_PAN_TARGET, 13, 6 + createvisualtask AnimTask_ShakeMon2, 5, ANIM_TARGET, 3, 0, 15, 1 + createvisualtask AnimTask_BlendColorCycle, 2, F_PAL_TARGET, 1, 2, 0, 12, RGB(23, 13, 1) + createsprite gSyrupBombYellowShellBSpriteTemplate, ANIM_TARGET, 1, ANIM_TARGET, 60 + waitforvisualfinish + end + Move_TERA_BLAST:: Move_AXE_KICK:: Move_LAST_RESPECTS:: @@ -16572,7 +16680,6 @@ Move_PSYBLADE:: Move_HYDRO_STEAM:: Move_BLOOD_MOON:: Move_MATCHA_GOTCHA:: -Move_SYRUP_BOMB:: Move_IVY_CUDGEL:: end @to do diff --git a/data/battle_scripts_1.s b/data/battle_scripts_1.s index ca6f73e908..5cc9bdf419 100644 --- a/data/battle_scripts_1.s +++ b/data/battle_scripts_1.s @@ -446,33 +446,21 @@ BattleScript_EffectSyrupBomb:: call BattleScript_EffectHit_Ret seteffectwithchance tryfaintmon BS_TARGET - printstring STRINGID_TARGETCOVEREDINSTICKYCANDYSYRUP - waitmessage B_WAIT_TIME_LONG goto BattleScript_MoveEnd +BattleScript_SyrupBombActivates:: + printstring STRINGID_TARGETCOVEREDINSTICKYCANDYSYRUP + waitmessage B_WAIT_TIME_LONG + return + BattleScript_SyrupBombEndTurn:: - setbyte sSTAT_ANIM_PLAYED, FALSE - copybyte sBATTLER, gBattlerTarget - jumpifholdeffect BS_TARGET, HOLD_EFFECT_CLEAR_AMULET, BattleScript_SyrupBombItemNoStatLoss - jumpifability BS_TARGET, ABILITY_CLEAR_BODY, BattleScript_SyrupBombAbilityNoStatLoss - jumpifability BS_TARGET, ABILITY_FULL_METAL_BODY, BattleScript_SyrupBombAbilityNoStatLoss - jumpifability BS_TARGET, ABILITY_WHITE_SMOKE, BattleScript_SyrupBombAbilityNoStatLoss - jumpifstat BS_TARGET, CMP_GREATER_THAN, BIT_SPEED, MIN_STAT_STAGE, BattleScript_SyrupBombLowerSpeed - goto BattleScript_SyrupBombEnd2 -BattleScript_SyrupBombLowerSpeed: - playstatchangeanimation BS_ATTACKER, BIT_SPEED, STAT_CHANGE_NEGATIVE - setbyte sSTAT_ANIM_PLAYED, TRUE + flushtextbox + playanimation BS_ATTACKER, B_ANIM_SYRUP_BOMB_SPEED_DROP setstatchanger STAT_SPEED, 1, TRUE - statbuffchange STAT_CHANGE_ALLOW_PTR, BattleScript_SyrupBombEnd2 - jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_DECREASE, BattleScript_SyrupBombEnd2 + statbuffchange STAT_CHANGE_ALLOW_PTR | STAT_CHANGE_NOT_PROTECT_AFFECTED, BattleScript_SyrupBombTurnDmgEnd printfromtable gStatDownStringIds waitmessage B_WAIT_TIME_LONG -BattleScript_SyrupBombItemNoStatLoss:: - call BattleScript_ItemNoStatLoss - goto BattleScript_SyrupBombEnd2 -BattleScript_SyrupBombAbilityNoStatLoss:: - call BattleScript_AbilityNoStatLoss -BattleScript_SyrupBombEnd2:: +BattleScript_SyrupBombTurnDmgEnd: end2 BattleScript_EffectMatchaGotcha:: @@ -1073,7 +1061,7 @@ BattleScript_EffectOctolock: accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE attackstring ppreduce - setoctolock BS_TARGET, BattleScript_ButItFailed + trysetoctolock BS_TARGET, BattleScript_ButItFailed attackanimation waitanimation printstring STRINGID_CANTESCAPEBECAUSEOFCURRENTMOVE @@ -1081,29 +1069,19 @@ BattleScript_EffectOctolock: goto BattleScript_MoveEnd BattleScript_OctolockEndTurn:: - setbyte sSTAT_ANIM_PLAYED, FALSE - jumpifstat BS_TARGET, CMP_GREATER_THAN, STAT_DEF, MIN_STAT_STAGE, BattleScript_OctolockLowerDef - jumpifstat BS_TARGET, CMP_GREATER_THAN, STAT_SPDEF, MIN_STAT_STAGE, BattleScript_OctolockTryLowerSpDef - goto BattleScript_OctolockEnd2 -BattleScript_OctolockLowerDef: - jumpifability BS_TARGET, ABILITY_BIG_PECKS, BattleScript_OctolockTryLowerSpDef playstatchangeanimation BS_ATTACKER, BIT_DEF | BIT_SPDEF, STAT_CHANGE_NEGATIVE - setbyte sSTAT_ANIM_PLAYED, TRUE setstatchanger STAT_DEF, 1, TRUE - statbuffchange STAT_CHANGE_ALLOW_PTR, BattleScript_OctolockTryLowerSpDef - jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_DECREASE, BattleScript_OctolockTryLowerSpDef - printfromtable gStatUpStringIds + statbuffchange STAT_CHANGE_ALLOW_PTR | STAT_CHANGE_NOT_PROTECT_AFFECTED, BattleScript_OctolockTryLowerSpDef +BattleScript_OctolockTryLowerDef: + printfromtable gStatDownStringIds waitmessage B_WAIT_TIME_LONG BattleScript_OctolockTryLowerSpDef: - jumpifbyte CMP_EQUAL, sSTAT_ANIM_PLAYED, TRUE, BattleScript_OctolockSkipSpDefAnim - playstatchangeanimation BS_ATTACKER, BIT_SPDEF, STAT_CHANGE_NEGATIVE -BattleScript_OctolockSkipSpDefAnim: setstatchanger STAT_SPDEF, 1, TRUE - statbuffchange STAT_CHANGE_ALLOW_PTR, BattleScript_OctolockEnd2 - jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_DECREASE, BattleScript_OctolockEnd2 - printfromtable gStatUpStringIds + statbuffchange STAT_CHANGE_ALLOW_PTR | STAT_CHANGE_NOT_PROTECT_AFFECTED, BattleScript_OctlockTurnDmgEnd +BattleScript_OctolockTurnDmgPrintMsg: + printfromtable gStatDownStringIds waitmessage B_WAIT_TIME_LONG -BattleScript_OctolockEnd2:: +BattleScript_OctlockTurnDmgEnd: end2 BattleScript_EffectPoltergeist: @@ -7367,7 +7345,7 @@ BattleScript_StealthRockFree:: printstring STRINGID_PKMNBLEWAWAYSTEALTHROCK waitmessage B_WAIT_TIME_LONG return - + BattleScript_SteelsurgeFree:: printstring STRINGID_PKMNBLEWAWAYSHARPSTEEL waitmessage B_WAIT_TIME_LONG @@ -8578,13 +8556,6 @@ BattleScript_IntimidateLoop: jumpiftargetally BattleScript_IntimidateLoopIncrement jumpifabsent BS_TARGET, BattleScript_IntimidateLoopIncrement jumpifstatus2 BS_TARGET, STATUS2_SUBSTITUTE, BattleScript_IntimidateLoopIncrement - jumpifability BS_TARGET, ABILITY_HYPER_CUTTER, BattleScript_IntimidatePrevented -.if B_UPDATED_INTIMIDATE >= GEN_8 - jumpifability BS_TARGET, ABILITY_INNER_FOCUS, BattleScript_IntimidatePrevented - jumpifability BS_TARGET, ABILITY_SCRAPPY, BattleScript_IntimidatePrevented - jumpifability BS_TARGET, ABILITY_OWN_TEMPO, BattleScript_IntimidatePrevented - jumpifability BS_TARGET, ABILITY_OBLIVIOUS, BattleScript_IntimidatePrevented -.endif jumpifability BS_TARGET, ABILITY_GUARD_DOG, BattleScript_IntimidateInReverse BattleScript_IntimidateEffect: copybyte sBATTLER, gBattlerAttacker @@ -8617,16 +8588,6 @@ BattleScript_IntimidateContrary_WontIncrease: printstring STRINGID_TARGETSTATWONTGOHIGHER goto BattleScript_IntimidateEffect_WaitString -BattleScript_IntimidatePrevented: - call BattleScript_AbilityPopUp - pause B_WAIT_TIME_LONG - setbyte gBattleCommunication STAT_ATK - stattextbuffer BS_TARGET - printstring STRINGID_STATWASNOTLOWERED - waitmessage B_WAIT_TIME_LONG - call BattleScript_TryAdrenalineOrb - goto BattleScript_IntimidateLoopIncrement - BattleScript_IntimidateInReverse: copybyte sBATTLER, gBattlerTarget call BattleScript_AbilityPopUpTarget @@ -8933,7 +8894,7 @@ BattleScript_AbilityNoStatLoss:: BattleScript_ItemNoStatLoss:: pause B_WAIT_TIME_SHORT - printstring STRINGID_STATWASNOTLOWERED + printstring STRINGID_CLEARAMULETWONTLOWERSTATS waitmessage B_WAIT_TIME_LONG return diff --git a/data/battle_scripts_2.s b/data/battle_scripts_2.s index e8e9358771..46d4d195ea 100644 --- a/data/battle_scripts_2.s +++ b/data/battle_scripts_2.s @@ -245,7 +245,7 @@ BattleScript_TrainerASlideMsgRet:: BattleScript_TrainerASlideMsgEnd2:: call BattleScript_TrainerASlideMsgRet end2 - + BattleScript_TrainerBSlideMsgRet:: handletrainerslidemsg BS_SCRIPTING, 0 trainerslidein B_POSITION_OPPONENT_RIGHT diff --git a/data/contest_ai_scripts.s b/data/contest_ai_scripts.s index ecd3103ae2..affaf31d6d 100644 --- a/data/contest_ai_scripts.s +++ b/data/contest_ai_scripts.s @@ -1,3 +1,4 @@ +#include "config.h" #include "constants/global.h" #include "constants/contest.h" .include "asm/macros.inc" @@ -435,11 +436,11 @@ AI_CGM_BetterWhenAudienceExcited: AI_CGM_BetterWhenAudienceExcited_1stUp: @ BUG: Should be if_appeal_num_eq 0 @ 1st up on 1st appeal excitement will always be 0 -.ifdef BUGFIX +#ifdef BUGFIX if_appeal_num_eq 0, AI_CGM_BetterWhenAudienceExcited_1stAppeal -.else +#else if_appeal_num_not_eq 0, AI_CGM_BetterWhenAudienceExcited_1stAppeal -.endif +#endif if_excitement_eq 4, AI_CGM_BetterWhenAudienceExcited_1AwayFromMax if_excitement_eq 3, AI_CGM_BetterWhenAudienceExcited_2AwayFromMax end @@ -546,11 +547,11 @@ AI_CGM_TargetMonWithJudgesAttention: end AI_CGM_TargetMonWithJudgesAttention_CheckMon1: if_cannot_participate MON_1, AI_CGM_TargetMonWithJudgesAttention_CheckMon2 -.ifdef BUGFIX +#ifdef BUGFIX if_not_used_combo_starter MON_1, AI_CGM_TargetMonWithJudgesAttention_CheckMon2 -.else +#else if_used_combo_starter MON_1, AI_CGM_TargetMonWithJudgesAttention_CheckMon2 -.endif +#endif if_random_less_than 125, AI_CGM_TargetMonWithJudgesAttention_CheckMon2 score +2 if_not_completed_combo MON_1, AI_CGM_TargetMonWithJudgesAttention_CheckMon2 @@ -559,11 +560,11 @@ AI_CGM_TargetMonWithJudgesAttention_CheckMon1: AI_CGM_TargetMonWithJudgesAttention_CheckMon2: if_user_order_eq MON_2, AI_CGM_End if_cannot_participate MON_2, AI_CGM_TargetMonWithJudgesAttention_CheckMon3 -.ifdef BUGFIX +#ifdef BUGFIX if_not_used_combo_starter MON_2, AI_CGM_TargetMonWithJudgesAttention_CheckMon3 -.else +#else if_used_combo_starter MON_2, AI_CGM_TargetMonWithJudgesAttention_CheckMon3 -.endif +#endif if_random_less_than 125, AI_CGM_TargetMonWithJudgesAttention_CheckMon3 score +2 if_not_completed_combo MON_2, AI_CGM_TargetMonWithJudgesAttention_CheckMon3 @@ -572,11 +573,11 @@ AI_CGM_TargetMonWithJudgesAttention_CheckMon2: AI_CGM_TargetMonWithJudgesAttention_CheckMon3: if_user_order_eq MON_3, AI_CGM_End if_cannot_participate MON_3, AI_CGM_End -.ifdef BUGFIX +#ifdef BUGFIX if_not_used_combo_starter MON_3, AI_CGM_End -.else +#else if_used_combo_starter MON_3, AI_CGM_End -.endif +#endif if_random_less_than 125, AI_CGM_End score +2 if_not_completed_combo MON_3, AI_CGM_End diff --git a/data/event_scripts.s b/data/event_scripts.s index 35d0cae2f9..a376866181 100644 --- a/data/event_scripts.s +++ b/data/event_scripts.s @@ -1,3 +1,4 @@ +#include "config.h" #include "config/battle.h" #include "config/item.h" #include "constants/global.h" diff --git a/data/maps/BattleFrontier_BattleTowerLobby/scripts.inc b/data/maps/BattleFrontier_BattleTowerLobby/scripts.inc index 6162d0ada6..a216055b5b 100644 --- a/data/maps/BattleFrontier_BattleTowerLobby/scripts.inc +++ b/data/maps/BattleFrontier_BattleTowerLobby/scripts.inc @@ -415,18 +415,18 @@ BattleFrontier_BattleTowerLobby_EventScript_SaveBeforeLinkMultisChallenge:: @ to the flash, but not data in PokemonStorage. The SaveGame script that follows asks the player to do a full save, @ which they can opt out of. As a result the player can save their party and quit without having saved the PC. @ This allows players to clone pokemon and their held items by withdrawing them (or erase them by despositing). -.ifndef BUGFIX +#ifndef BUGFIX tower_save 0 -.endif +#endif call Common_EventScript_SaveGame setvar VAR_TEMP_CHALLENGE_STATUS, 255 goto_if_eq VAR_RESULT, 0, BattleFrontier_BattleTowerLobby_EventScript_CancelChallengeSaveFailed @ GAME_STAT_ENTERED_BATTLE_TOWER should not be incremented here, for two reasons: @ 1. It is incremented again in BattleFrontier_BattleTowerLobby_EventScript_CableLinkSuccessful or BattleFrontier_BattleTowerLobby_EventScript_WirelessLinkSuccessful -@ 2. If the player tries to save, but fails, the counter will still be incremented even if the player never enters the tower. -.ifndef BUGFIX +@ 2. If the player tries to connect, but fails, the counter will still be incremented even if the player never enters the tower. +#ifndef BUGFIX incrementgamestat GAME_STAT_ENTERED_BATTLE_TOWER -.endif +#endif specialvar VAR_RESULT, IsWirelessAdapterConnected goto_if_eq VAR_RESULT, TRUE, BattleFrontier_BattleTowerLobby_EventScript_TryWirelessLink goto BattleFrontier_BattleTowerLobby_EventScript_TryCableLink diff --git a/data/maps/MossdeepCity_SpaceCenter_1F/scripts.inc b/data/maps/MossdeepCity_SpaceCenter_1F/scripts.inc index 263b071056..e17af35724 100644 --- a/data/maps/MossdeepCity_SpaceCenter_1F/scripts.inc +++ b/data/maps/MossdeepCity_SpaceCenter_1F/scripts.inc @@ -229,11 +229,11 @@ MossdeepCity_SpaceCenter_1F_EventScript_Grunt2:: copyobjectxytoperm LOCALID_STAIR_GRUNT switch VAR_FACING case DIR_WEST, MossdeepCity_SpaceCenter_1F_EventScript_MoveGruntFromStairsWest - #ifdef BUGFIX +#ifdef BUGFIX case DIR_EAST, MossdeepCity_SpaceCenter_1F_EventScript_MoveGruntFromStairsEast - #else +#else case DIR_WEST, MossdeepCity_SpaceCenter_1F_EventScript_MoveGruntFromStairsEast - #endif +#endif applymovement LOCALID_STAIR_GRUNT, MossdeepCity_SpaceCenter_1F_Movement_MoveGruntFromStairs waitmovement 0 setvar VAR_MOSSDEEP_SPACE_CENTER_STAIR_GUARD_STATE, 2 diff --git a/data/scripts/trainer_hill.inc b/data/scripts/trainer_hill.inc index b7f8153514..04bbe05e5a 100644 --- a/data/scripts/trainer_hill.inc +++ b/data/scripts/trainer_hill.inc @@ -13,9 +13,9 @@ TrainerHill_OnWarp: TrainerHill_1F_EventScript_DummyOnWarp:: setvar VAR_TEMP_3, 1 -.ifdef BUGFIX +#ifdef BUGFIX end @ Missing end. By chance, the next byte (0x02 of VAR_TEMP_2) is also the id for the end cmd -.endif +#endif TrainerHill_OnFrame: map_script_2 VAR_TEMP_2, 0, TrainerHill_1F_EventScript_DummyWarpToEntranceCounter diff --git a/graphics/battle_anims/sprites/syrup_bomb_blob.png b/graphics/battle_anims/sprites/syrup_bomb_blob.png new file mode 100644 index 0000000000..b04b361756 Binary files /dev/null and b/graphics/battle_anims/sprites/syrup_bomb_blob.png differ diff --git a/graphics/battle_anims/sprites/syrup_bomb_shell.png b/graphics/battle_anims/sprites/syrup_bomb_shell.png new file mode 100644 index 0000000000..de592c54e6 Binary files /dev/null and b/graphics/battle_anims/sprites/syrup_bomb_shell.png differ diff --git a/graphics/battle_anims/sprites/syrup_bomb_splat.png b/graphics/battle_anims/sprites/syrup_bomb_splat.png new file mode 100644 index 0000000000..ac873086a0 Binary files /dev/null and b/graphics/battle_anims/sprites/syrup_bomb_splat.png differ diff --git a/graphics/battle_anims/sprites/syrup_red.pal b/graphics/battle_anims/sprites/syrup_red.pal new file mode 100644 index 0000000000..2224ce0c84 --- /dev/null +++ b/graphics/battle_anims/sprites/syrup_red.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +30 255 0 +242 242 242 +255 194 173 +255 129 110 +224 51 38 +161 24 26 +110 30 36 +13 2 4 +200 224 240 +200 224 240 +200 224 240 +200 224 240 +200 224 240 +200 224 240 +200 224 240 +200 224 240 diff --git a/graphics/battle_anims/sprites/syrup_yellow.pal b/graphics/battle_anims/sprites/syrup_yellow.pal new file mode 100644 index 0000000000..ff5ac37331 --- /dev/null +++ b/graphics/battle_anims/sprites/syrup_yellow.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +30 255 0 +242 242 242 +255 255 168 +255 235 82 +255 192 0 +185 104 4 +107 59 19 +13 2 4 +200 224 240 +200 224 240 +200 224 240 +200 224 240 +200 224 240 +200 224 240 +200 224 240 +200 224 240 diff --git a/graphics/pokemon/alcremie/berry/Berry_Caramel_Swirl.pal b/graphics/pokemon/alcremie/berry/Berry_Caramel_Swirl.pal new file mode 100644 index 0000000000..5a19b7c4c7 --- /dev/null +++ b/graphics/pokemon/alcremie/berry/Berry_Caramel_Swirl.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +152 208 160 +248 248 248 +248 232 184 +200 168 120 +232 168 96 +144 112 72 +248 248 248 +168 176 176 +248 248 248 +168 176 176 +248 248 248 +168 176 176 +0 120 200 +0 80 144 +0 40 104 +0 0 0 diff --git a/graphics/pokemon/alcremie/berry/Berry_Default.pal b/graphics/pokemon/alcremie/berry/Berry_Default.pal new file mode 100644 index 0000000000..118df4edd1 --- /dev/null +++ b/graphics/pokemon/alcremie/berry/Berry_Default.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +152 208 160 +248 248 248 +248 224 208 +208 160 168 +240 136 144 +128 80 88 +248 224 200 +208 128 136 +248 224 200 +208 160 168 +248 224 200 +208 160 168 +0 120 200 +0 80 144 +0 40 104 +0 0 0 diff --git a/graphics/pokemon/alcremie/berry/Berry_Lemon_Cream.pal b/graphics/pokemon/alcremie/berry/Berry_Lemon_Cream.pal new file mode 100644 index 0000000000..17fd451a87 --- /dev/null +++ b/graphics/pokemon/alcremie/berry/Berry_Lemon_Cream.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +152 208 160 +248 248 248 +248 248 152 +208 184 72 +232 224 0 +112 120 24 +248 248 248 +168 176 176 +248 248 248 +168 176 176 +248 248 248 +168 176 176 +0 120 200 +0 80 144 +0 40 104 +0 0 0 diff --git a/graphics/pokemon/alcremie/berry/Berry_Matcha_Cream.pal b/graphics/pokemon/alcremie/berry/Berry_Matcha_Cream.pal new file mode 100644 index 0000000000..edb69b6883 --- /dev/null +++ b/graphics/pokemon/alcremie/berry/Berry_Matcha_Cream.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +152 208 160 +248 248 248 +232 248 208 +176 208 152 +192 224 96 +104 128 80 +232 248 200 +176 208 152 +232 248 200 +176 208 152 +232 248 200 +176 208 152 +0 120 200 +0 80 144 +0 40 104 +0 0 0 diff --git a/graphics/pokemon/alcremie/berry/Berry_Mint_Cream.pal b/graphics/pokemon/alcremie/berry/Berry_Mint_Cream.pal new file mode 100644 index 0000000000..3a21681b21 --- /dev/null +++ b/graphics/pokemon/alcremie/berry/Berry_Mint_Cream.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +152 208 160 +248 248 248 +208 240 232 +152 168 176 +112 208 200 +72 112 128 +248 248 248 +168 176 176 +248 248 248 +168 176 176 +248 248 248 +168 176 176 +0 120 200 +0 80 144 +0 40 104 +0 0 0 diff --git a/graphics/pokemon/alcremie/berry/Berry_Rainbow_Swirl.pal b/graphics/pokemon/alcremie/berry/Berry_Rainbow_Swirl.pal new file mode 100644 index 0000000000..37a0a40498 --- /dev/null +++ b/graphics/pokemon/alcremie/berry/Berry_Rainbow_Swirl.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +152 208 160 +248 248 248 +248 248 184 +208 192 120 +216 144 88 +120 88 64 +240 160 168 +208 128 136 +176 232 224 +128 160 168 +248 248 112 +216 192 40 +0 120 200 +0 80 144 +0 40 104 +0 0 0 diff --git a/graphics/pokemon/alcremie/berry/Berry_Ruby_Cream.pal b/graphics/pokemon/alcremie/berry/Berry_Ruby_Cream.pal new file mode 100644 index 0000000000..350cfeb22f --- /dev/null +++ b/graphics/pokemon/alcremie/berry/Berry_Ruby_Cream.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +152 208 160 +248 248 248 +248 208 208 +200 152 184 +232 112 192 +128 80 112 +248 208 208 +200 152 184 +248 208 208 +200 152 184 +248 208 208 +200 152 184 +0 120 200 +0 80 144 +0 40 104 +0 0 0 diff --git a/graphics/pokemon/alcremie/berry/Berry_Ruby_Swirl.pal b/graphics/pokemon/alcremie/berry/Berry_Ruby_Swirl.pal new file mode 100644 index 0000000000..e0c66e7fc1 --- /dev/null +++ b/graphics/pokemon/alcremie/berry/Berry_Ruby_Swirl.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +152 208 160 +248 248 248 +248 240 208 +208 184 160 +240 192 128 +128 96 80 +248 176 192 +224 120 128 +248 176 192 +224 120 128 +248 176 192 +224 120 128 +0 120 200 +0 80 144 +0 40 104 +0 0 0 diff --git a/graphics/pokemon/alcremie/berry/Berry_Salted_Cream.pal b/graphics/pokemon/alcremie/berry/Berry_Salted_Cream.pal new file mode 100644 index 0000000000..eca511097a --- /dev/null +++ b/graphics/pokemon/alcremie/berry/Berry_Salted_Cream.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +152 208 160 +248 248 248 +232 232 248 +176 176 184 +112 208 200 +88 88 96 +232 232 248 +176 176 184 +232 232 248 +176 176 184 +232 232 248 +176 176 184 +0 120 200 +0 80 144 +0 40 104 +0 0 0 diff --git a/graphics/pokemon/alcremie/mint_cream/shiny.pal b/graphics/pokemon/alcremie/berry/Berry_Shiny.pal similarity index 66% rename from graphics/pokemon/alcremie/mint_cream/shiny.pal rename to graphics/pokemon/alcremie/berry/Berry_Shiny.pal index f71c66c01e..1fb826a870 100644 --- a/graphics/pokemon/alcremie/mint_cream/shiny.pal +++ b/graphics/pokemon/alcremie/berry/Berry_Shiny.pal @@ -2,18 +2,18 @@ JASC-PAL 0100 16 152 208 160 +216 216 216 +152 152 152 +128 128 128 +88 88 96 72 80 72 248 248 248 -88 88 96 -128 128 128 +168 176 176 +248 248 248 +168 176 176 +248 248 248 +168 176 176 +0 120 200 +0 80 144 +0 40 104 16 16 16 -152 152 152 -136 32 56 -248 88 112 -192 48 72 -168 176 176 -168 176 176 -216 216 216 -0 0 0 -0 0 0 -0 0 0 diff --git a/graphics/pokemon/alcremie/berry/back.png b/graphics/pokemon/alcremie/berry/back.png new file mode 100644 index 0000000000..a2236a94f4 Binary files /dev/null and b/graphics/pokemon/alcremie/berry/back.png differ diff --git a/graphics/pokemon/alcremie/berry/front.png b/graphics/pokemon/alcremie/berry/front.png new file mode 100644 index 0000000000..4bbc456c3e Binary files /dev/null and b/graphics/pokemon/alcremie/berry/front.png differ diff --git a/graphics/pokemon/alcremie/clover/Clover_Caramel_Swirl.pal b/graphics/pokemon/alcremie/clover/Clover_Caramel_Swirl.pal new file mode 100644 index 0000000000..a8b5968386 --- /dev/null +++ b/graphics/pokemon/alcremie/clover/Clover_Caramel_Swirl.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +152 208 160 +248 248 248 +248 232 184 +200 168 120 +232 168 96 +144 112 72 +248 248 248 +168 176 176 +248 248 248 +168 176 176 +248 248 248 +168 176 176 +136 216 64 +24 144 36 +24 80 36 +0 0 0 diff --git a/graphics/pokemon/alcremie/clover/Clover_Default.pal b/graphics/pokemon/alcremie/clover/Clover_Default.pal new file mode 100644 index 0000000000..17fe8cc6b4 --- /dev/null +++ b/graphics/pokemon/alcremie/clover/Clover_Default.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +152 208 160 +248 248 248 +248 224 208 +208 160 168 +240 136 144 +128 80 88 +248 224 200 +208 128 136 +248 224 200 +208 160 168 +248 224 200 +208 160 168 +136 216 64 +24 144 36 +24 80 36 +0 0 0 diff --git a/graphics/pokemon/alcremie/clover/Clover_Lemon_Cream.pal b/graphics/pokemon/alcremie/clover/Clover_Lemon_Cream.pal new file mode 100644 index 0000000000..bd199e2bc4 --- /dev/null +++ b/graphics/pokemon/alcremie/clover/Clover_Lemon_Cream.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +152 208 160 +248 248 248 +248 248 152 +208 184 72 +232 224 0 +112 120 24 +248 248 248 +168 176 176 +248 248 248 +168 176 176 +248 248 248 +168 176 176 +136 216 64 +24 144 36 +24 80 36 +0 0 0 diff --git a/graphics/pokemon/alcremie/clover/Clover_Matcha_Cream.pal b/graphics/pokemon/alcremie/clover/Clover_Matcha_Cream.pal new file mode 100644 index 0000000000..0f4f393f43 --- /dev/null +++ b/graphics/pokemon/alcremie/clover/Clover_Matcha_Cream.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +152 208 160 +248 248 248 +232 248 208 +176 208 152 +192 224 96 +104 128 80 +232 248 200 +176 208 152 +232 248 200 +176 208 152 +232 248 200 +176 208 152 +136 216 64 +24 144 36 +24 80 36 +0 0 0 diff --git a/graphics/pokemon/alcremie/clover/Clover_Mint_Cream.pal b/graphics/pokemon/alcremie/clover/Clover_Mint_Cream.pal new file mode 100644 index 0000000000..08b8f83461 --- /dev/null +++ b/graphics/pokemon/alcremie/clover/Clover_Mint_Cream.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +152 208 160 +248 248 248 +208 240 232 +152 168 176 +112 208 200 +72 112 128 +248 248 248 +168 176 176 +248 248 248 +168 176 176 +248 248 248 +168 176 176 +136 216 64 +24 144 36 +24 80 36 +0 0 0 diff --git a/graphics/pokemon/alcremie/clover/Clover_Rainbow_Swirl.pal b/graphics/pokemon/alcremie/clover/Clover_Rainbow_Swirl.pal new file mode 100644 index 0000000000..4d6514f51e --- /dev/null +++ b/graphics/pokemon/alcremie/clover/Clover_Rainbow_Swirl.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +152 208 160 +248 248 248 +248 248 184 +208 192 120 +216 144 88 +120 88 64 +240 160 168 +208 128 136 +176 232 224 +128 160 168 +248 248 112 +216 192 40 +136 216 64 +24 144 36 +24 80 36 +0 0 0 diff --git a/graphics/pokemon/alcremie/clover/Clover_Ruby_Cream.pal b/graphics/pokemon/alcremie/clover/Clover_Ruby_Cream.pal new file mode 100644 index 0000000000..3243fea802 --- /dev/null +++ b/graphics/pokemon/alcremie/clover/Clover_Ruby_Cream.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +152 208 160 +248 248 248 +248 208 208 +200 152 184 +232 112 192 +128 80 112 +248 208 208 +200 152 184 +248 208 208 +200 152 184 +248 208 208 +200 152 184 +136 216 64 +24 144 36 +24 80 36 +0 0 0 diff --git a/graphics/pokemon/alcremie/clover/Clover_Ruby_Swirl.pal b/graphics/pokemon/alcremie/clover/Clover_Ruby_Swirl.pal new file mode 100644 index 0000000000..fd68b6c2cd --- /dev/null +++ b/graphics/pokemon/alcremie/clover/Clover_Ruby_Swirl.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +152 208 160 +248 248 248 +248 240 208 +208 184 160 +240 192 128 +128 96 80 +248 176 192 +224 120 128 +248 176 192 +224 120 128 +248 176 192 +224 120 128 +136 216 64 +24 144 36 +24 80 36 +0 0 0 diff --git a/graphics/pokemon/alcremie/clover/Clover_Salted_Cream.pal b/graphics/pokemon/alcremie/clover/Clover_Salted_Cream.pal new file mode 100644 index 0000000000..a5c5bc10fc --- /dev/null +++ b/graphics/pokemon/alcremie/clover/Clover_Salted_Cream.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +152 208 160 +248 248 248 +232 232 248 +176 176 184 +112 208 200 +88 88 96 +232 232 248 +176 176 184 +232 232 248 +176 176 184 +232 232 248 +176 176 184 +136 216 64 +24 144 36 +24 80 36 +0 0 0 diff --git a/graphics/pokemon/alcremie/matcha_cream/shiny.pal b/graphics/pokemon/alcremie/clover/Clover_Shiny.pal similarity index 65% rename from graphics/pokemon/alcremie/matcha_cream/shiny.pal rename to graphics/pokemon/alcremie/clover/Clover_Shiny.pal index eb171da47c..6329ca1ecd 100644 --- a/graphics/pokemon/alcremie/matcha_cream/shiny.pal +++ b/graphics/pokemon/alcremie/clover/Clover_Shiny.pal @@ -2,18 +2,18 @@ JASC-PAL 0100 16 152 208 160 +216 216 216 +152 152 152 +128 128 128 +88 88 96 72 80 72 248 248 248 -88 88 96 -128 128 128 -16 16 16 -152 152 152 -216 216 216 -136 32 56 -248 88 112 -192 48 72 +168 176 176 248 248 248 168 176 176 -0 0 0 -0 0 0 -0 0 0 +248 248 248 +168 176 176 +136 216 64 +24 144 36 +24 80 36 +16 16 16 diff --git a/graphics/pokemon/alcremie/clover/back.png b/graphics/pokemon/alcremie/clover/back.png new file mode 100644 index 0000000000..8a8efe5677 Binary files /dev/null and b/graphics/pokemon/alcremie/clover/back.png differ diff --git a/graphics/pokemon/alcremie/clover/front.png b/graphics/pokemon/alcremie/clover/front.png new file mode 100644 index 0000000000..dd30853ee3 Binary files /dev/null and b/graphics/pokemon/alcremie/clover/front.png differ diff --git a/graphics/pokemon/alcremie/flower/Flower_Caramel_Swirl.pal b/graphics/pokemon/alcremie/flower/Flower_Caramel_Swirl.pal new file mode 100644 index 0000000000..33bc209d7a --- /dev/null +++ b/graphics/pokemon/alcremie/flower/Flower_Caramel_Swirl.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +152 208 160 +248 248 248 +248 232 184 +200 168 120 +232 168 96 +144 112 72 +248 248 248 +168 176 176 +248 248 248 +168 176 176 +248 248 248 +168 176 176 +248 248 0 +248 104 40 +152 56 24 +0 0 0 diff --git a/graphics/pokemon/alcremie/flower/Flower_Default.pal b/graphics/pokemon/alcremie/flower/Flower_Default.pal new file mode 100644 index 0000000000..a3184e016f --- /dev/null +++ b/graphics/pokemon/alcremie/flower/Flower_Default.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +152 208 160 +248 248 248 +248 224 208 +208 160 168 +240 136 144 +128 80 88 +248 224 200 +208 128 136 +248 224 200 +208 160 168 +248 224 200 +208 160 168 +248 248 0 +248 104 40 +152 56 24 +0 0 0 diff --git a/graphics/pokemon/alcremie/flower/Flower_Lemon_Cream.pal b/graphics/pokemon/alcremie/flower/Flower_Lemon_Cream.pal new file mode 100644 index 0000000000..df85ea6b88 --- /dev/null +++ b/graphics/pokemon/alcremie/flower/Flower_Lemon_Cream.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +152 208 160 +248 248 248 +248 248 152 +208 184 72 +232 224 0 +112 120 24 +248 248 248 +168 176 176 +248 248 248 +168 176 176 +248 248 248 +168 176 176 +248 248 0 +248 104 40 +152 56 24 +0 0 0 diff --git a/graphics/pokemon/alcremie/flower/Flower_Matcha_Cream.pal b/graphics/pokemon/alcremie/flower/Flower_Matcha_Cream.pal new file mode 100644 index 0000000000..f3b35677c5 --- /dev/null +++ b/graphics/pokemon/alcremie/flower/Flower_Matcha_Cream.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +152 208 160 +248 248 248 +232 248 208 +176 208 152 +192 224 96 +104 128 80 +232 248 200 +176 208 152 +232 248 200 +176 208 152 +232 248 200 +176 208 152 +248 248 0 +248 104 40 +152 56 24 +0 0 0 diff --git a/graphics/pokemon/alcremie/flower/Flower_Mint_Cream.pal b/graphics/pokemon/alcremie/flower/Flower_Mint_Cream.pal new file mode 100644 index 0000000000..b32cc3bb2f --- /dev/null +++ b/graphics/pokemon/alcremie/flower/Flower_Mint_Cream.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +152 208 160 +248 248 248 +208 240 232 +152 168 176 +112 208 200 +72 112 128 +248 248 248 +168 176 176 +248 248 248 +168 176 176 +248 248 248 +168 176 176 +248 248 0 +248 104 40 +152 56 24 +0 0 0 diff --git a/graphics/pokemon/alcremie/flower/Flower_Rainbow_Swirl.pal b/graphics/pokemon/alcremie/flower/Flower_Rainbow_Swirl.pal new file mode 100644 index 0000000000..2b7736025f --- /dev/null +++ b/graphics/pokemon/alcremie/flower/Flower_Rainbow_Swirl.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +152 208 160 +248 248 248 +248 248 184 +208 192 120 +216 144 88 +120 88 64 +240 160 168 +208 128 136 +176 232 224 +128 160 168 +248 248 112 +216 192 40 +248 248 0 +248 104 40 +152 56 24 +0 0 0 diff --git a/graphics/pokemon/alcremie/flower/Flower_Ruby_Cream.pal b/graphics/pokemon/alcremie/flower/Flower_Ruby_Cream.pal new file mode 100644 index 0000000000..6de39b5a3e --- /dev/null +++ b/graphics/pokemon/alcremie/flower/Flower_Ruby_Cream.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +152 208 160 +248 248 248 +248 208 208 +200 152 184 +232 112 192 +128 80 112 +248 208 208 +200 152 184 +248 208 208 +200 152 184 +248 208 208 +200 152 184 +248 248 0 +248 104 40 +152 56 24 +0 0 0 diff --git a/graphics/pokemon/alcremie/flower/Flower_Ruby_Swirl.pal b/graphics/pokemon/alcremie/flower/Flower_Ruby_Swirl.pal new file mode 100644 index 0000000000..fce8994bef --- /dev/null +++ b/graphics/pokemon/alcremie/flower/Flower_Ruby_Swirl.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +152 208 160 +248 248 248 +248 240 208 +208 184 160 +240 192 128 +128 96 80 +248 176 192 +224 120 128 +248 176 192 +224 120 128 +248 176 192 +224 120 128 +248 248 0 +248 104 40 +152 56 24 +0 0 0 diff --git a/graphics/pokemon/alcremie/flower/Flower_Salted_Cream.pal b/graphics/pokemon/alcremie/flower/Flower_Salted_Cream.pal new file mode 100644 index 0000000000..a9c50d230e --- /dev/null +++ b/graphics/pokemon/alcremie/flower/Flower_Salted_Cream.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +152 208 160 +248 248 248 +232 232 248 +176 176 184 +112 208 200 +88 88 96 +232 232 248 +176 176 184 +232 232 248 +176 176 184 +232 232 248 +176 176 184 +248 248 0 +248 104 40 +152 56 24 +0 0 0 diff --git a/graphics/pokemon/alcremie/ruby_swirl/shiny.pal b/graphics/pokemon/alcremie/flower/Flower_Shiny.pal similarity index 65% rename from graphics/pokemon/alcremie/ruby_swirl/shiny.pal rename to graphics/pokemon/alcremie/flower/Flower_Shiny.pal index eb171da47c..ee7ae0fbaa 100644 --- a/graphics/pokemon/alcremie/ruby_swirl/shiny.pal +++ b/graphics/pokemon/alcremie/flower/Flower_Shiny.pal @@ -2,18 +2,18 @@ JASC-PAL 0100 16 152 208 160 +216 216 216 +152 152 152 +128 128 128 +88 88 96 72 80 72 248 248 248 -88 88 96 -128 128 128 -16 16 16 -152 152 152 -216 216 216 -136 32 56 -248 88 112 -192 48 72 +168 176 176 248 248 248 168 176 176 -0 0 0 -0 0 0 -0 0 0 +248 248 248 +168 176 176 +248 248 0 +248 104 40 +152 56 24 +16 16 16 diff --git a/graphics/pokemon/alcremie/flower/back.png b/graphics/pokemon/alcremie/flower/back.png new file mode 100644 index 0000000000..2d018bdabc Binary files /dev/null and b/graphics/pokemon/alcremie/flower/back.png differ diff --git a/graphics/pokemon/alcremie/flower/front.png b/graphics/pokemon/alcremie/flower/front.png new file mode 100644 index 0000000000..20c9af2f46 Binary files /dev/null and b/graphics/pokemon/alcremie/flower/front.png differ diff --git a/graphics/pokemon/alcremie/lemon_cream/back.png b/graphics/pokemon/alcremie/lemon_cream/back.png deleted file mode 100644 index d5a073b54b..0000000000 Binary files a/graphics/pokemon/alcremie/lemon_cream/back.png and /dev/null differ diff --git a/graphics/pokemon/alcremie/lemon_cream/front.png b/graphics/pokemon/alcremie/lemon_cream/front.png deleted file mode 100644 index fefb952fd4..0000000000 Binary files a/graphics/pokemon/alcremie/lemon_cream/front.png and /dev/null differ diff --git a/graphics/pokemon/alcremie/lemon_cream/shiny.pal b/graphics/pokemon/alcremie/lemon_cream/shiny.pal deleted file mode 100644 index d19dc335d5..0000000000 --- a/graphics/pokemon/alcremie/lemon_cream/shiny.pal +++ /dev/null @@ -1,19 +0,0 @@ -JASC-PAL -0100 -16 -152 208 160 -72 80 72 -248 248 248 -88 88 96 -128 128 128 -16 16 16 -152 152 152 -136 32 56 -248 88 112 -192 48 72 -168 176 176 -216 216 216 -0 0 0 -0 0 0 -0 0 0 -0 0 0 diff --git a/graphics/pokemon/alcremie/love/Love_Caramel_Swirl.pal b/graphics/pokemon/alcremie/love/Love_Caramel_Swirl.pal new file mode 100644 index 0000000000..86f59a8d62 --- /dev/null +++ b/graphics/pokemon/alcremie/love/Love_Caramel_Swirl.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +152 208 160 +248 248 248 +248 232 184 +200 168 120 +232 168 96 +144 112 72 +248 248 248 +168 176 176 +248 248 248 +168 176 176 +248 248 248 +168 176 176 +248 152 200 +248 112 120 +216 56 104 +0 0 0 diff --git a/graphics/pokemon/alcremie/love/Love_Default.pal b/graphics/pokemon/alcremie/love/Love_Default.pal new file mode 100644 index 0000000000..9f965e53b0 --- /dev/null +++ b/graphics/pokemon/alcremie/love/Love_Default.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +152 208 160 +248 248 248 +248 224 208 +208 160 168 +240 136 144 +128 80 88 +248 224 200 +208 128 136 +248 224 200 +208 160 168 +248 224 200 +208 160 168 +248 152 200 +248 112 120 +216 56 104 +0 0 0 diff --git a/graphics/pokemon/alcremie/love/Love_Lemon_Cream.pal b/graphics/pokemon/alcremie/love/Love_Lemon_Cream.pal new file mode 100644 index 0000000000..34d9c0dfef --- /dev/null +++ b/graphics/pokemon/alcremie/love/Love_Lemon_Cream.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +152 208 160 +248 248 248 +248 248 152 +208 184 72 +232 224 0 +112 120 24 +248 248 248 +168 176 176 +248 248 248 +168 176 176 +248 248 248 +168 176 176 +248 152 200 +248 112 120 +216 56 104 +0 0 0 diff --git a/graphics/pokemon/alcremie/love/Love_Matcha_Cream.pal b/graphics/pokemon/alcremie/love/Love_Matcha_Cream.pal new file mode 100644 index 0000000000..3d33c04aba --- /dev/null +++ b/graphics/pokemon/alcremie/love/Love_Matcha_Cream.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +152 208 160 +248 248 248 +232 248 208 +176 208 152 +192 224 96 +104 128 80 +232 248 200 +176 208 152 +232 248 200 +176 208 152 +232 248 200 +176 208 152 +248 152 200 +248 112 120 +216 56 104 +0 0 0 diff --git a/graphics/pokemon/alcremie/love/Love_Mint_Cream.pal b/graphics/pokemon/alcremie/love/Love_Mint_Cream.pal new file mode 100644 index 0000000000..2344ddcf82 --- /dev/null +++ b/graphics/pokemon/alcremie/love/Love_Mint_Cream.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +152 208 160 +248 248 248 +208 240 232 +152 168 176 +112 208 200 +72 112 128 +248 248 248 +168 176 176 +248 248 248 +168 176 176 +248 248 248 +168 176 176 +248 152 200 +248 112 120 +216 56 104 +0 0 0 diff --git a/graphics/pokemon/alcremie/love/Love_Rainbow_Swirl.pal b/graphics/pokemon/alcremie/love/Love_Rainbow_Swirl.pal new file mode 100644 index 0000000000..3bb1f61ee8 --- /dev/null +++ b/graphics/pokemon/alcremie/love/Love_Rainbow_Swirl.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +152 208 160 +248 248 248 +248 248 184 +208 192 120 +216 144 88 +120 88 64 +240 160 168 +208 128 136 +176 232 224 +128 160 168 +248 248 112 +216 192 40 +248 152 200 +248 112 120 +216 56 104 +0 0 0 diff --git a/graphics/pokemon/alcremie/love/Love_Ruby_Cream.pal b/graphics/pokemon/alcremie/love/Love_Ruby_Cream.pal new file mode 100644 index 0000000000..0d37782db5 --- /dev/null +++ b/graphics/pokemon/alcremie/love/Love_Ruby_Cream.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +152 208 160 +248 248 248 +248 208 208 +200 152 184 +232 112 192 +128 80 112 +248 208 208 +200 152 184 +248 208 208 +200 152 184 +248 208 208 +200 152 184 +248 152 200 +248 112 120 +216 56 104 +0 0 0 diff --git a/graphics/pokemon/alcremie/love/Love_Ruby_Swirl.pal b/graphics/pokemon/alcremie/love/Love_Ruby_Swirl.pal new file mode 100644 index 0000000000..ad18466c8b --- /dev/null +++ b/graphics/pokemon/alcremie/love/Love_Ruby_Swirl.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +152 208 160 +248 248 248 +248 240 208 +208 184 160 +240 192 128 +128 96 80 +248 176 192 +224 120 128 +248 176 192 +224 120 128 +248 176 192 +224 120 128 +248 152 200 +248 112 120 +216 56 104 +0 0 0 diff --git a/graphics/pokemon/alcremie/love/Love_Salted_Cream.pal b/graphics/pokemon/alcremie/love/Love_Salted_Cream.pal new file mode 100644 index 0000000000..9bb17bbcfd --- /dev/null +++ b/graphics/pokemon/alcremie/love/Love_Salted_Cream.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +152 208 160 +248 248 248 +232 232 248 +176 176 184 +112 208 200 +88 88 96 +232 232 248 +176 176 184 +232 232 248 +176 176 184 +232 232 248 +176 176 184 +248 152 200 +248 112 120 +216 56 104 +0 0 0 diff --git a/graphics/pokemon/alcremie/love/Love_Shiny.pal b/graphics/pokemon/alcremie/love/Love_Shiny.pal new file mode 100644 index 0000000000..8489043934 --- /dev/null +++ b/graphics/pokemon/alcremie/love/Love_Shiny.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +152 208 160 +216 216 216 +152 152 152 +128 128 128 +88 88 96 +72 80 72 +248 248 248 +168 176 176 +248 248 248 +168 176 176 +248 248 248 +168 176 176 +248 152 200 +248 112 120 +216 56 104 +16 16 16 diff --git a/graphics/pokemon/alcremie/love/back.png b/graphics/pokemon/alcremie/love/back.png new file mode 100644 index 0000000000..6c3dd94363 Binary files /dev/null and b/graphics/pokemon/alcremie/love/back.png differ diff --git a/graphics/pokemon/alcremie/love/front.png b/graphics/pokemon/alcremie/love/front.png new file mode 100644 index 0000000000..36cef02d8b Binary files /dev/null and b/graphics/pokemon/alcremie/love/front.png differ diff --git a/graphics/pokemon/alcremie/matcha_cream/back.png b/graphics/pokemon/alcremie/matcha_cream/back.png deleted file mode 100644 index 7a422730b9..0000000000 Binary files a/graphics/pokemon/alcremie/matcha_cream/back.png and /dev/null differ diff --git a/graphics/pokemon/alcremie/matcha_cream/front.png b/graphics/pokemon/alcremie/matcha_cream/front.png deleted file mode 100644 index 28225df1a0..0000000000 Binary files a/graphics/pokemon/alcremie/matcha_cream/front.png and /dev/null differ diff --git a/graphics/pokemon/alcremie/mint_cream/back.png b/graphics/pokemon/alcremie/mint_cream/back.png deleted file mode 100644 index 481ce9c78c..0000000000 Binary files a/graphics/pokemon/alcremie/mint_cream/back.png and /dev/null differ diff --git a/graphics/pokemon/alcremie/mint_cream/front.png b/graphics/pokemon/alcremie/mint_cream/front.png deleted file mode 100644 index 9d525253fa..0000000000 Binary files a/graphics/pokemon/alcremie/mint_cream/front.png and /dev/null differ diff --git a/graphics/pokemon/alcremie/ribbon/Ribbon_Caramel_Swirl.pal b/graphics/pokemon/alcremie/ribbon/Ribbon_Caramel_Swirl.pal new file mode 100644 index 0000000000..c4fce2c7c6 --- /dev/null +++ b/graphics/pokemon/alcremie/ribbon/Ribbon_Caramel_Swirl.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +152 208 160 +248 248 248 +248 232 184 +200 168 120 +232 168 96 +144 112 72 +248 248 248 +168 176 176 +248 248 248 +168 176 176 +248 248 248 +168 176 176 +176 136 176 +144 96 168 +112 72 136 +0 0 0 diff --git a/graphics/pokemon/alcremie/ribbon/Ribbon_Default.pal b/graphics/pokemon/alcremie/ribbon/Ribbon_Default.pal new file mode 100644 index 0000000000..b0ad7cdf74 --- /dev/null +++ b/graphics/pokemon/alcremie/ribbon/Ribbon_Default.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +152 208 160 +248 248 248 +248 224 208 +208 160 168 +240 136 144 +128 80 88 +248 224 200 +208 128 136 +248 224 200 +208 160 168 +248 224 200 +208 160 168 +176 136 176 +144 96 168 +112 72 136 +0 0 0 diff --git a/graphics/pokemon/alcremie/ribbon/Ribbon_Lemon_Cream.pal b/graphics/pokemon/alcremie/ribbon/Ribbon_Lemon_Cream.pal new file mode 100644 index 0000000000..b022d03006 --- /dev/null +++ b/graphics/pokemon/alcremie/ribbon/Ribbon_Lemon_Cream.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +152 208 160 +248 248 248 +248 248 152 +208 184 72 +232 224 0 +112 120 24 +248 248 248 +168 176 176 +248 248 248 +168 176 176 +248 248 248 +168 176 176 +176 136 176 +144 96 168 +112 72 136 +0 0 0 diff --git a/graphics/pokemon/alcremie/ribbon/Ribbon_Matcha_Cream.pal b/graphics/pokemon/alcremie/ribbon/Ribbon_Matcha_Cream.pal new file mode 100644 index 0000000000..4999acd248 --- /dev/null +++ b/graphics/pokemon/alcremie/ribbon/Ribbon_Matcha_Cream.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +152 208 160 +248 248 248 +232 248 208 +176 208 152 +192 224 96 +104 128 80 +232 248 200 +176 208 152 +232 248 200 +176 208 152 +232 248 200 +176 208 152 +176 136 176 +144 96 168 +112 72 136 +0 0 0 diff --git a/graphics/pokemon/alcremie/ribbon/Ribbon_Mint_Cream.pal b/graphics/pokemon/alcremie/ribbon/Ribbon_Mint_Cream.pal new file mode 100644 index 0000000000..2349810b7e --- /dev/null +++ b/graphics/pokemon/alcremie/ribbon/Ribbon_Mint_Cream.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +152 208 160 +248 248 248 +208 240 232 +152 168 176 +112 208 200 +72 112 128 +248 248 248 +168 176 176 +248 248 248 +168 176 176 +248 248 248 +168 176 176 +176 136 176 +144 96 168 +112 72 136 +0 0 0 diff --git a/graphics/pokemon/alcremie/ribbon/Ribbon_Rainbow_Swirl.pal b/graphics/pokemon/alcremie/ribbon/Ribbon_Rainbow_Swirl.pal new file mode 100644 index 0000000000..8c17769478 --- /dev/null +++ b/graphics/pokemon/alcremie/ribbon/Ribbon_Rainbow_Swirl.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +152 208 160 +248 248 248 +248 248 184 +208 192 120 +216 144 88 +120 88 64 +240 160 168 +208 128 136 +176 232 224 +128 160 168 +248 248 112 +216 192 40 +176 136 176 +144 96 168 +112 72 136 +0 0 0 diff --git a/graphics/pokemon/alcremie/ribbon/Ribbon_Ruby_Cream.pal b/graphics/pokemon/alcremie/ribbon/Ribbon_Ruby_Cream.pal new file mode 100644 index 0000000000..6384296180 --- /dev/null +++ b/graphics/pokemon/alcremie/ribbon/Ribbon_Ruby_Cream.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +152 208 160 +248 248 248 +248 208 208 +200 152 184 +232 112 192 +128 80 112 +248 208 208 +200 152 184 +248 208 208 +200 152 184 +248 208 208 +200 152 184 +176 136 176 +144 96 168 +112 72 136 +0 0 0 diff --git a/graphics/pokemon/alcremie/ribbon/Ribbon_Ruby_Swirl.pal b/graphics/pokemon/alcremie/ribbon/Ribbon_Ruby_Swirl.pal new file mode 100644 index 0000000000..e1f9ce61dc --- /dev/null +++ b/graphics/pokemon/alcremie/ribbon/Ribbon_Ruby_Swirl.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +152 208 160 +248 248 248 +248 240 208 +208 184 160 +240 192 128 +128 96 80 +248 176 192 +224 120 128 +248 176 192 +224 120 128 +248 176 192 +224 120 128 +176 136 176 +144 96 168 +112 72 136 +0 0 0 diff --git a/graphics/pokemon/alcremie/ribbon/Ribbon_Salted_Cream.pal b/graphics/pokemon/alcremie/ribbon/Ribbon_Salted_Cream.pal new file mode 100644 index 0000000000..cdf85d28b5 --- /dev/null +++ b/graphics/pokemon/alcremie/ribbon/Ribbon_Salted_Cream.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +152 208 160 +248 248 248 +232 232 248 +176 176 184 +112 208 200 +88 88 96 +232 232 248 +176 176 184 +232 232 248 +176 176 184 +232 232 248 +176 176 184 +176 136 176 +144 96 168 +112 72 136 +0 0 0 diff --git a/graphics/pokemon/alcremie/ribbon/Ribbon_Shiny.pal b/graphics/pokemon/alcremie/ribbon/Ribbon_Shiny.pal new file mode 100644 index 0000000000..b60e7632fe --- /dev/null +++ b/graphics/pokemon/alcremie/ribbon/Ribbon_Shiny.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +152 208 160 +216 216 216 +152 152 152 +128 128 128 +88 88 96 +72 80 72 +248 248 248 +168 176 176 +248 248 248 +168 176 176 +248 248 248 +168 176 176 +176 136 176 +144 96 168 +112 72 136 +16 16 16 diff --git a/graphics/pokemon/alcremie/ribbon/back.png b/graphics/pokemon/alcremie/ribbon/back.png new file mode 100644 index 0000000000..3b595ebb62 Binary files /dev/null and b/graphics/pokemon/alcremie/ribbon/back.png differ diff --git a/graphics/pokemon/alcremie/ribbon/front.png b/graphics/pokemon/alcremie/ribbon/front.png new file mode 100644 index 0000000000..2f1b913cb7 Binary files /dev/null and b/graphics/pokemon/alcremie/ribbon/front.png differ diff --git a/graphics/pokemon/alcremie/ruby_cream/back.png b/graphics/pokemon/alcremie/ruby_cream/back.png deleted file mode 100644 index 45fc28a0e6..0000000000 Binary files a/graphics/pokemon/alcremie/ruby_cream/back.png and /dev/null differ diff --git a/graphics/pokemon/alcremie/ruby_cream/front.png b/graphics/pokemon/alcremie/ruby_cream/front.png deleted file mode 100644 index e64880a8cf..0000000000 Binary files a/graphics/pokemon/alcremie/ruby_cream/front.png and /dev/null differ diff --git a/graphics/pokemon/alcremie/ruby_swirl/back.png b/graphics/pokemon/alcremie/ruby_swirl/back.png deleted file mode 100644 index ae275b897d..0000000000 Binary files a/graphics/pokemon/alcremie/ruby_swirl/back.png and /dev/null differ diff --git a/graphics/pokemon/alcremie/ruby_swirl/front.png b/graphics/pokemon/alcremie/ruby_swirl/front.png deleted file mode 100644 index cb99b49fa2..0000000000 Binary files a/graphics/pokemon/alcremie/ruby_swirl/front.png and /dev/null differ diff --git a/graphics/pokemon/alcremie/salted_cream/back.png b/graphics/pokemon/alcremie/salted_cream/back.png deleted file mode 100644 index f32932d95c..0000000000 Binary files a/graphics/pokemon/alcremie/salted_cream/back.png and /dev/null differ diff --git a/graphics/pokemon/alcremie/salted_cream/front.png b/graphics/pokemon/alcremie/salted_cream/front.png deleted file mode 100644 index 7958715bcc..0000000000 Binary files a/graphics/pokemon/alcremie/salted_cream/front.png and /dev/null differ diff --git a/graphics/pokemon/alcremie/salted_cream/shiny.pal b/graphics/pokemon/alcremie/salted_cream/shiny.pal deleted file mode 100644 index 953c50e5ee..0000000000 --- a/graphics/pokemon/alcremie/salted_cream/shiny.pal +++ /dev/null @@ -1,19 +0,0 @@ -JASC-PAL -0100 -16 -152 208 160 -72 80 72 -248 248 248 -88 88 96 -128 128 128 -16 16 16 -136 32 56 -248 88 112 -192 48 72 -168 176 176 -152 152 152 -216 216 216 -0 0 0 -0 0 0 -0 0 0 -0 0 0 diff --git a/graphics/pokemon/alcremie/star/Star_Caramel_Swirl.pal b/graphics/pokemon/alcremie/star/Star_Caramel_Swirl.pal new file mode 100644 index 0000000000..254db99d41 --- /dev/null +++ b/graphics/pokemon/alcremie/star/Star_Caramel_Swirl.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +152 208 160 +248 248 248 +248 232 184 +200 168 120 +232 168 96 +144 112 72 +248 248 248 +168 176 176 +248 248 248 +168 176 176 +248 248 248 +168 176 176 +248 224 48 +200 176 24 +192 112 16 +0 0 0 diff --git a/graphics/pokemon/alcremie/star/Star_Default.pal b/graphics/pokemon/alcremie/star/Star_Default.pal new file mode 100644 index 0000000000..d99429510a --- /dev/null +++ b/graphics/pokemon/alcremie/star/Star_Default.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +152 208 160 +248 248 248 +248 224 208 +208 160 168 +240 136 144 +128 80 88 +248 224 200 +208 128 136 +248 224 200 +208 160 168 +248 224 200 +208 160 168 +248 224 48 +200 176 24 +192 112 16 +0 0 0 diff --git a/graphics/pokemon/alcremie/star/Star_Lemon_Cream.pal b/graphics/pokemon/alcremie/star/Star_Lemon_Cream.pal new file mode 100644 index 0000000000..ec776c4d90 --- /dev/null +++ b/graphics/pokemon/alcremie/star/Star_Lemon_Cream.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +152 208 160 +248 248 248 +248 248 152 +208 184 72 +232 224 0 +112 120 24 +248 248 248 +168 176 176 +248 248 248 +168 176 176 +248 248 248 +168 176 176 +248 224 48 +200 176 24 +192 112 16 +0 0 0 diff --git a/graphics/pokemon/alcremie/star/Star_Matcha_Cream.pal b/graphics/pokemon/alcremie/star/Star_Matcha_Cream.pal new file mode 100644 index 0000000000..b642f11786 --- /dev/null +++ b/graphics/pokemon/alcremie/star/Star_Matcha_Cream.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +152 208 160 +248 248 248 +232 248 208 +176 208 152 +192 224 96 +104 128 80 +232 248 200 +176 208 152 +232 248 200 +176 208 152 +232 248 200 +176 208 152 +248 224 48 +200 176 24 +192 112 16 +0 0 0 diff --git a/graphics/pokemon/alcremie/star/Star_Mint_Cream.pal b/graphics/pokemon/alcremie/star/Star_Mint_Cream.pal new file mode 100644 index 0000000000..f4fb9991f8 --- /dev/null +++ b/graphics/pokemon/alcremie/star/Star_Mint_Cream.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +152 208 160 +248 248 248 +208 240 232 +152 168 176 +112 208 200 +72 112 128 +248 248 248 +168 176 176 +248 248 248 +168 176 176 +248 248 248 +168 176 176 +248 224 48 +200 176 24 +192 112 16 +0 0 0 diff --git a/graphics/pokemon/alcremie/star/Star_Rainbow_Swirl.pal b/graphics/pokemon/alcremie/star/Star_Rainbow_Swirl.pal new file mode 100644 index 0000000000..a0aa5334c4 --- /dev/null +++ b/graphics/pokemon/alcremie/star/Star_Rainbow_Swirl.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +152 208 160 +248 248 248 +248 248 184 +208 192 120 +216 144 88 +120 88 64 +240 160 168 +208 128 136 +176 232 224 +128 160 168 +248 248 112 +216 192 40 +248 224 48 +200 176 24 +192 112 16 +0 0 0 diff --git a/graphics/pokemon/alcremie/star/Star_Ruby_Cream.pal b/graphics/pokemon/alcremie/star/Star_Ruby_Cream.pal new file mode 100644 index 0000000000..1f66460fb6 --- /dev/null +++ b/graphics/pokemon/alcremie/star/Star_Ruby_Cream.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +152 208 160 +248 248 248 +248 208 208 +200 152 184 +232 112 192 +128 80 112 +248 208 208 +200 152 184 +248 208 208 +200 152 184 +248 208 208 +200 152 184 +248 224 48 +200 176 24 +192 112 16 +0 0 0 diff --git a/graphics/pokemon/alcremie/star/Star_Ruby_Swirl.pal b/graphics/pokemon/alcremie/star/Star_Ruby_Swirl.pal new file mode 100644 index 0000000000..1f00d36c9c --- /dev/null +++ b/graphics/pokemon/alcremie/star/Star_Ruby_Swirl.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +152 208 160 +248 248 248 +248 240 208 +208 184 160 +240 192 128 +128 96 80 +248 176 192 +224 120 128 +248 176 192 +224 120 128 +248 176 192 +224 120 128 +248 224 48 +200 176 24 +192 112 16 +0 0 0 diff --git a/graphics/pokemon/alcremie/star/Star_Salted_Cream.pal b/graphics/pokemon/alcremie/star/Star_Salted_Cream.pal new file mode 100644 index 0000000000..2b0c72d8f6 --- /dev/null +++ b/graphics/pokemon/alcremie/star/Star_Salted_Cream.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +152 208 160 +248 248 248 +232 232 248 +176 176 184 +112 208 200 +88 88 96 +232 232 248 +176 176 184 +232 232 248 +176 176 184 +232 232 248 +176 176 184 +248 224 48 +200 176 24 +192 112 16 +0 0 0 diff --git a/graphics/pokemon/alcremie/star/Star_Shiny.pal b/graphics/pokemon/alcremie/star/Star_Shiny.pal new file mode 100644 index 0000000000..6fb3e1d923 --- /dev/null +++ b/graphics/pokemon/alcremie/star/Star_Shiny.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +152 208 160 +216 216 216 +152 152 152 +128 128 128 +88 88 96 +72 80 72 +248 248 248 +168 176 176 +248 248 248 +168 176 176 +248 248 248 +168 176 176 +248 224 48 +200 176 24 +192 112 16 +16 16 16 diff --git a/graphics/pokemon/alcremie/star/back.png b/graphics/pokemon/alcremie/star/back.png new file mode 100644 index 0000000000..38d32ca657 Binary files /dev/null and b/graphics/pokemon/alcremie/star/back.png differ diff --git a/graphics/pokemon/alcremie/star/front.png b/graphics/pokemon/alcremie/star/front.png new file mode 100644 index 0000000000..41f042229b Binary files /dev/null and b/graphics/pokemon/alcremie/star/front.png differ diff --git a/graphics/pokemon/alcremie/salted_cream/normal.pal b/graphics/pokemon/alcremie/strawberry/Strawberry_Caramel_Swirl.pal similarity index 58% rename from graphics/pokemon/alcremie/salted_cream/normal.pal rename to graphics/pokemon/alcremie/strawberry/Strawberry_Caramel_Swirl.pal index adfd376dc3..78cea9164c 100644 --- a/graphics/pokemon/alcremie/salted_cream/normal.pal +++ b/graphics/pokemon/alcremie/strawberry/Strawberry_Caramel_Swirl.pal @@ -2,18 +2,18 @@ JASC-PAL 0100 16 152 208 160 -88 88 88 248 248 248 -112 208 200 -176 176 176 -16 16 16 -136 32 56 -248 88 112 -192 48 72 +248 232 184 +200 168 120 +232 168 96 +144 112 72 +248 248 248 168 176 176 248 248 248 +168 176 176 248 248 248 -0 0 0 -0 0 0 -0 0 0 +168 176 176 +248 88 112 +192 48 72 +136 32 56 0 0 0 diff --git a/graphics/pokemon/alcremie/strawberry/Strawberry_Default.pal b/graphics/pokemon/alcremie/strawberry/Strawberry_Default.pal new file mode 100644 index 0000000000..b9cb001f7a --- /dev/null +++ b/graphics/pokemon/alcremie/strawberry/Strawberry_Default.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +152 208 160 +248 248 248 +248 224 208 +208 160 168 +240 136 144 +128 80 88 +248 224 200 +208 128 136 +248 224 200 +208 160 168 +248 224 200 +208 160 168 +248 88 112 +192 48 72 +136 32 56 +0 0 0 diff --git a/graphics/pokemon/alcremie/lemon_cream/normal.pal b/graphics/pokemon/alcremie/strawberry/Strawberry_Lemon_Cream.pal similarity index 75% rename from graphics/pokemon/alcremie/lemon_cream/normal.pal rename to graphics/pokemon/alcremie/strawberry/Strawberry_Lemon_Cream.pal index c69c0376e8..0cbfae8eec 100644 --- a/graphics/pokemon/alcremie/lemon_cream/normal.pal +++ b/graphics/pokemon/alcremie/strawberry/Strawberry_Lemon_Cream.pal @@ -2,18 +2,18 @@ JASC-PAL 0100 16 152 208 160 +248 248 248 +248 248 152 +208 184 72 +232 224 0 112 120 24 248 248 248 -232 224 0 -208 184 72 -16 16 16 -248 248 152 -136 32 56 -248 88 112 -192 48 72 168 176 176 248 248 248 -0 0 0 -0 0 0 -0 0 0 +168 176 176 +248 248 248 +168 176 176 +248 88 112 +192 48 72 +136 32 56 0 0 0 diff --git a/graphics/pokemon/alcremie/matcha_cream/normal.pal b/graphics/pokemon/alcremie/strawberry/Strawberry_Matcha_Cream.pal similarity index 75% rename from graphics/pokemon/alcremie/matcha_cream/normal.pal rename to graphics/pokemon/alcremie/strawberry/Strawberry_Matcha_Cream.pal index a5bbc02bc2..918955f1aa 100644 --- a/graphics/pokemon/alcremie/matcha_cream/normal.pal +++ b/graphics/pokemon/alcremie/strawberry/Strawberry_Matcha_Cream.pal @@ -2,18 +2,18 @@ JASC-PAL 0100 16 152 208 160 +248 248 248 +232 248 208 +176 208 152 +192 224 96 104 128 80 232 248 200 -192 224 96 176 208 152 -16 16 16 -232 248 208 -248 248 248 -136 32 56 +232 248 200 +176 208 152 +232 248 200 +176 208 152 248 88 112 192 48 72 -224 248 200 -176 208 152 -0 0 0 -0 0 0 +136 32 56 0 0 0 diff --git a/graphics/pokemon/alcremie/mint_cream/normal.pal b/graphics/pokemon/alcremie/strawberry/Strawberry_Mint_Cream.pal similarity index 75% rename from graphics/pokemon/alcremie/mint_cream/normal.pal rename to graphics/pokemon/alcremie/strawberry/Strawberry_Mint_Cream.pal index 7b56dfdc3e..3978acb218 100644 --- a/graphics/pokemon/alcremie/mint_cream/normal.pal +++ b/graphics/pokemon/alcremie/strawberry/Strawberry_Mint_Cream.pal @@ -2,18 +2,18 @@ JASC-PAL 0100 16 152 208 160 +248 248 248 +208 240 232 +152 168 176 +112 208 200 72 112 128 248 248 248 -112 208 200 -152 168 176 -16 16 16 -208 240 232 -136 32 56 +168 176 176 +248 248 248 +168 176 176 +248 248 248 +168 176 176 248 88 112 192 48 72 -168 176 176 -176 176 176 -248 248 248 -0 0 0 -0 0 0 +136 32 56 0 0 0 diff --git a/graphics/pokemon/alcremie/strawberry/Strawberry_Rainbow_Swirl.pal b/graphics/pokemon/alcremie/strawberry/Strawberry_Rainbow_Swirl.pal new file mode 100644 index 0000000000..10bfc24d1f --- /dev/null +++ b/graphics/pokemon/alcremie/strawberry/Strawberry_Rainbow_Swirl.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +152 208 160 +248 248 248 +248 248 184 +208 192 120 +216 144 88 +120 88 64 +240 160 168 +208 128 136 +176 232 224 +128 160 168 +248 248 112 +216 192 40 +248 88 112 +192 48 72 +136 32 56 +0 0 0 diff --git a/graphics/pokemon/alcremie/ruby_cream/normal.pal b/graphics/pokemon/alcremie/strawberry/Strawberry_Ruby_Cream.pal similarity index 57% rename from graphics/pokemon/alcremie/ruby_cream/normal.pal rename to graphics/pokemon/alcremie/strawberry/Strawberry_Ruby_Cream.pal index 873d673e1b..e95929cab7 100644 --- a/graphics/pokemon/alcremie/ruby_cream/normal.pal +++ b/graphics/pokemon/alcremie/strawberry/Strawberry_Ruby_Cream.pal @@ -2,18 +2,18 @@ JASC-PAL 0100 16 152 208 160 -128 80 112 -240 200 208 -232 112 192 -200 152 184 -16 16 16 248 248 248 -136 32 56 +248 208 208 +200 152 184 +232 112 192 +128 80 112 +248 208 208 +200 152 184 +248 208 208 +200 152 184 +248 208 208 +200 152 184 248 88 112 192 48 72 -240 200 200 -200 144 184 -200 152 192 -240 200 208 -0 0 0 +136 32 56 0 0 0 diff --git a/graphics/pokemon/alcremie/ruby_swirl/normal.pal b/graphics/pokemon/alcremie/strawberry/Strawberry_Ruby_Swirl.pal similarity index 75% rename from graphics/pokemon/alcremie/ruby_swirl/normal.pal rename to graphics/pokemon/alcremie/strawberry/Strawberry_Ruby_Swirl.pal index 5208a45f8f..59e711dd22 100644 --- a/graphics/pokemon/alcremie/ruby_swirl/normal.pal +++ b/graphics/pokemon/alcremie/strawberry/Strawberry_Ruby_Swirl.pal @@ -2,18 +2,18 @@ JASC-PAL 0100 16 152 208 160 +248 248 248 +248 240 208 +208 184 160 +240 192 128 128 96 80 248 176 192 -240 192 128 -208 184 160 -16 16 16 -248 240 208 -248 248 248 -136 32 56 +224 120 128 +248 176 192 +224 120 128 +248 176 192 +224 120 128 248 88 112 192 48 72 -248 176 184 -224 120 128 -0 0 0 -0 0 0 +136 32 56 0 0 0 diff --git a/graphics/pokemon/alcremie/strawberry/Strawberry_Salted_Cream.pal b/graphics/pokemon/alcremie/strawberry/Strawberry_Salted_Cream.pal new file mode 100644 index 0000000000..af57499a4c --- /dev/null +++ b/graphics/pokemon/alcremie/strawberry/Strawberry_Salted_Cream.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +152 208 160 +248 248 248 +232 232 248 +176 176 184 +112 208 200 +88 88 96 +232 232 248 +176 176 184 +232 232 248 +176 176 184 +232 232 248 +176 176 184 +248 88 112 +192 48 72 +136 32 56 +0 0 0 diff --git a/graphics/pokemon/alcremie/ruby_cream/shiny.pal b/graphics/pokemon/alcremie/strawberry/Strawberry_Shiny.pal similarity index 87% rename from graphics/pokemon/alcremie/ruby_cream/shiny.pal rename to graphics/pokemon/alcremie/strawberry/Strawberry_Shiny.pal index 454ec33ff4..6ae9aa96af 100644 --- a/graphics/pokemon/alcremie/ruby_cream/shiny.pal +++ b/graphics/pokemon/alcremie/strawberry/Strawberry_Shiny.pal @@ -2,18 +2,18 @@ JASC-PAL 0100 16 152 208 160 +216 216 216 +152 152 152 +128 128 128 +88 88 96 72 80 72 248 248 248 -88 88 96 -128 128 128 -16 16 16 -216 216 216 -136 32 56 -248 88 112 -192 48 72 +168 176 176 248 248 248 168 176 176 +248 248 248 168 176 176 -152 152 152 -0 0 0 -0 0 0 +248 88 112 +192 48 72 +136 32 56 +16 16 16 diff --git a/graphics/pokemon/alcremie/strawberry/back.png b/graphics/pokemon/alcremie/strawberry/back.png new file mode 100644 index 0000000000..2f3ce5007a Binary files /dev/null and b/graphics/pokemon/alcremie/strawberry/back.png differ diff --git a/graphics/pokemon/alcremie/strawberry/front.png b/graphics/pokemon/alcremie/strawberry/front.png new file mode 100644 index 0000000000..fe7872d2d3 Binary files /dev/null and b/graphics/pokemon/alcremie/strawberry/front.png differ diff --git a/graphics/pokemon/cutiefly/anim_front.png b/graphics/pokemon/cutiefly/anim_front.png new file mode 100644 index 0000000000..3a3a17092f Binary files /dev/null and b/graphics/pokemon/cutiefly/anim_front.png differ diff --git a/graphics/pokemon/cutiefly/front.png b/graphics/pokemon/cutiefly/front.png deleted file mode 100644 index 9e57565222..0000000000 Binary files a/graphics/pokemon/cutiefly/front.png and /dev/null differ diff --git a/graphics/pokemon/dartrix/anim_front.png b/graphics/pokemon/dartrix/anim_front.png new file mode 100644 index 0000000000..6adf234065 Binary files /dev/null and b/graphics/pokemon/dartrix/anim_front.png differ diff --git a/graphics/pokemon/dartrix/front.png b/graphics/pokemon/dartrix/front.png deleted file mode 100644 index 004fa43bdf..0000000000 Binary files a/graphics/pokemon/dartrix/front.png and /dev/null differ diff --git a/graphics/pokemon/decidueye/anim_front.png b/graphics/pokemon/decidueye/anim_front.png new file mode 100644 index 0000000000..f0d7e46bb1 Binary files /dev/null and b/graphics/pokemon/decidueye/anim_front.png differ diff --git a/graphics/pokemon/decidueye/front.png b/graphics/pokemon/decidueye/front.png deleted file mode 100644 index a13a33a2ae..0000000000 Binary files a/graphics/pokemon/decidueye/front.png and /dev/null differ diff --git a/graphics/pokemon/drampa/anim_front.png b/graphics/pokemon/drampa/anim_front.png new file mode 100644 index 0000000000..c263a15727 Binary files /dev/null and b/graphics/pokemon/drampa/anim_front.png differ diff --git a/graphics/pokemon/drampa/back.png b/graphics/pokemon/drampa/back.png index b3460057ef..be44b000bc 100644 Binary files a/graphics/pokemon/drampa/back.png and b/graphics/pokemon/drampa/back.png differ diff --git a/graphics/pokemon/drampa/front.png b/graphics/pokemon/drampa/front.png deleted file mode 100644 index 6aecba6949..0000000000 Binary files a/graphics/pokemon/drampa/front.png and /dev/null differ diff --git a/graphics/pokemon/drampa/normal.pal b/graphics/pokemon/drampa/normal.pal index 7030346278..5639299f95 100644 --- a/graphics/pokemon/drampa/normal.pal +++ b/graphics/pokemon/drampa/normal.pal @@ -1,7 +1,7 @@ JASC-PAL 0100 16 -0 176 232 +152 208 160 16 80 96 16 16 16 88 160 160 diff --git a/graphics/pokemon/drampa/shiny.pal b/graphics/pokemon/drampa/shiny.pal index ecfd998780..1422a88ff1 100644 --- a/graphics/pokemon/drampa/shiny.pal +++ b/graphics/pokemon/drampa/shiny.pal @@ -1,7 +1,7 @@ JASC-PAL 0100 16 -0 176 232 +152 208 160 152 96 56 16 16 16 224 176 112 diff --git a/graphics/pokemon/hakamo_o/anim_front.png b/graphics/pokemon/hakamo_o/anim_front.png index 2b5112a2d5..599bbe3eeb 100644 Binary files a/graphics/pokemon/hakamo_o/anim_front.png and b/graphics/pokemon/hakamo_o/anim_front.png differ diff --git a/graphics/pokemon/hakamo_o/back.png b/graphics/pokemon/hakamo_o/back.png index f994a70e9d..402eabab0d 100644 Binary files a/graphics/pokemon/hakamo_o/back.png and b/graphics/pokemon/hakamo_o/back.png differ diff --git a/graphics/pokemon/jangmo_o/anim_front.png b/graphics/pokemon/jangmo_o/anim_front.png index d462c0adb8..9f3abb0696 100644 Binary files a/graphics/pokemon/jangmo_o/anim_front.png and b/graphics/pokemon/jangmo_o/anim_front.png differ diff --git a/graphics/pokemon/jangmo_o/back.png b/graphics/pokemon/jangmo_o/back.png index 6416369e96..209011dfa7 100644 Binary files a/graphics/pokemon/jangmo_o/back.png and b/graphics/pokemon/jangmo_o/back.png differ diff --git a/graphics/pokemon/kommo_o/anim_front.png b/graphics/pokemon/kommo_o/anim_front.png index 5f1a7382ba..090ef56f0b 100644 Binary files a/graphics/pokemon/kommo_o/anim_front.png and b/graphics/pokemon/kommo_o/anim_front.png differ diff --git a/graphics/pokemon/lycanroc/anim_front.png b/graphics/pokemon/lycanroc/anim_front.png new file mode 100644 index 0000000000..fc853cf24b Binary files /dev/null and b/graphics/pokemon/lycanroc/anim_front.png differ diff --git a/graphics/pokemon/lycanroc/dusk/anim_front.png b/graphics/pokemon/lycanroc/dusk/anim_front.png new file mode 100644 index 0000000000..1df7c94d41 Binary files /dev/null and b/graphics/pokemon/lycanroc/dusk/anim_front.png differ diff --git a/graphics/pokemon/lycanroc/dusk/back.png b/graphics/pokemon/lycanroc/dusk/back.png index d17f1dc635..c9ed8b89bf 100644 Binary files a/graphics/pokemon/lycanroc/dusk/back.png and b/graphics/pokemon/lycanroc/dusk/back.png differ diff --git a/graphics/pokemon/lycanroc/dusk/front.png b/graphics/pokemon/lycanroc/dusk/front.png deleted file mode 100644 index 8e8beb2311..0000000000 Binary files a/graphics/pokemon/lycanroc/dusk/front.png and /dev/null differ diff --git a/graphics/pokemon/lycanroc/dusk/icon.png b/graphics/pokemon/lycanroc/dusk/icon.png index 7ff67638d3..65d8394f4e 100644 Binary files a/graphics/pokemon/lycanroc/dusk/icon.png and b/graphics/pokemon/lycanroc/dusk/icon.png differ diff --git a/graphics/pokemon/lycanroc/dusk/normal.pal b/graphics/pokemon/lycanroc/dusk/normal.pal index 151d43c524..4eb21dce4a 100644 --- a/graphics/pokemon/lycanroc/dusk/normal.pal +++ b/graphics/pokemon/lycanroc/dusk/normal.pal @@ -15,5 +15,5 @@ JASC-PAL 192 176 160 248 248 248 29 204 62 -0 0 0 -0 0 0 +112 45 15 +255 0 255 diff --git a/graphics/pokemon/lycanroc/dusk/shiny.pal b/graphics/pokemon/lycanroc/dusk/shiny.pal index 758e607a84..9fc8da2951 100644 --- a/graphics/pokemon/lycanroc/dusk/shiny.pal +++ b/graphics/pokemon/lycanroc/dusk/shiny.pal @@ -15,5 +15,5 @@ JASC-PAL 192 176 160 248 248 248 168 208 32 -0 0 0 +26 38 56 0 0 0 diff --git a/graphics/pokemon/lycanroc/front.png b/graphics/pokemon/lycanroc/front.png deleted file mode 100644 index a5058205ec..0000000000 Binary files a/graphics/pokemon/lycanroc/front.png and /dev/null differ diff --git a/graphics/pokemon/lycanroc/midnight/anim_front.png b/graphics/pokemon/lycanroc/midnight/anim_front.png new file mode 100644 index 0000000000..fdd549d949 Binary files /dev/null and b/graphics/pokemon/lycanroc/midnight/anim_front.png differ diff --git a/graphics/pokemon/lycanroc/midnight/front.png b/graphics/pokemon/lycanroc/midnight/front.png deleted file mode 100644 index 73a49530dd..0000000000 Binary files a/graphics/pokemon/lycanroc/midnight/front.png and /dev/null differ diff --git a/graphics/pokemon/oranguru/anim_front.png b/graphics/pokemon/oranguru/anim_front.png new file mode 100644 index 0000000000..c3f9a59484 Binary files /dev/null and b/graphics/pokemon/oranguru/anim_front.png differ diff --git a/graphics/pokemon/oranguru/front.png b/graphics/pokemon/oranguru/front.png deleted file mode 100644 index b0ba3510c1..0000000000 Binary files a/graphics/pokemon/oranguru/front.png and /dev/null differ diff --git a/graphics/pokemon/passimian/anim_front.png b/graphics/pokemon/passimian/anim_front.png new file mode 100644 index 0000000000..c69fd6a2e4 Binary files /dev/null and b/graphics/pokemon/passimian/anim_front.png differ diff --git a/graphics/pokemon/passimian/back.png b/graphics/pokemon/passimian/back.png index e27f88bb02..93b992c84d 100644 Binary files a/graphics/pokemon/passimian/back.png and b/graphics/pokemon/passimian/back.png differ diff --git a/graphics/pokemon/passimian/front.png b/graphics/pokemon/passimian/front.png deleted file mode 100644 index 94ebe658c2..0000000000 Binary files a/graphics/pokemon/passimian/front.png and /dev/null differ diff --git a/graphics/pokemon/passimian/normal.pal b/graphics/pokemon/passimian/normal.pal index 26283bf52e..0b663aba07 100644 --- a/graphics/pokemon/passimian/normal.pal +++ b/graphics/pokemon/passimian/normal.pal @@ -2,18 +2,18 @@ JASC-PAL 0100 16 152 208 160 -56 48 32 -96 96 64 -16 16 16 -40 40 24 +54 48 41 +89 83 76 +8 8 8 +238 238 238 +248 248 248 +54 48 41 +82 76 70 +107 100 93 +248 248 248 +186 186 186 +242 179 39 +197 222 95 +144 163 60 +255 255 0 24 200 80 -72 64 48 -248 248 248 -120 160 64 -184 224 104 -192 184 160 -240 128 24 -88 80 56 -248 216 0 -248 248 248 -248 248 248 diff --git a/graphics/pokemon/passimian/shiny.pal b/graphics/pokemon/passimian/shiny.pal index 9b8f0f4a8f..833f0df2fc 100644 --- a/graphics/pokemon/passimian/shiny.pal +++ b/graphics/pokemon/passimian/shiny.pal @@ -2,18 +2,18 @@ JASC-PAL 0100 16 152 208 160 -64 48 32 -112 104 64 -16 16 16 -16 16 120 +14 47 132 +23 68 181 +8 8 8 +115 115 64 +22 70 181 +66 58 40 +91 81 61 +112 112 66 +248 248 248 +186 186 186 +248 248 248 +240 173 29 +156 110 12 +255 255 0 24 200 80 -80 64 48 -16 64 224 -152 64 24 -208 112 32 -192 184 160 -240 240 232 -8 48 216 -248 216 0 -248 240 216 -104 96 64 diff --git a/graphics/pokemon/pikipek/anim_front.png b/graphics/pokemon/pikipek/anim_front.png new file mode 100644 index 0000000000..f7b765876c Binary files /dev/null and b/graphics/pokemon/pikipek/anim_front.png differ diff --git a/graphics/pokemon/pikipek/back.png b/graphics/pokemon/pikipek/back.png index 030eea3c14..2175a1f183 100644 Binary files a/graphics/pokemon/pikipek/back.png and b/graphics/pokemon/pikipek/back.png differ diff --git a/graphics/pokemon/pikipek/front.png b/graphics/pokemon/pikipek/front.png deleted file mode 100644 index a16e45512f..0000000000 Binary files a/graphics/pokemon/pikipek/front.png and /dev/null differ diff --git a/graphics/pokemon/ribombee/anim_front.png b/graphics/pokemon/ribombee/anim_front.png new file mode 100644 index 0000000000..fb1c5ad41a Binary files /dev/null and b/graphics/pokemon/ribombee/anim_front.png differ diff --git a/graphics/pokemon/ribombee/front.png b/graphics/pokemon/ribombee/front.png deleted file mode 100644 index 77a4dd1497..0000000000 Binary files a/graphics/pokemon/ribombee/front.png and /dev/null differ diff --git a/graphics/pokemon/rockruff/anim_front.png b/graphics/pokemon/rockruff/anim_front.png new file mode 100644 index 0000000000..d806387c61 Binary files /dev/null and b/graphics/pokemon/rockruff/anim_front.png differ diff --git a/graphics/pokemon/rockruff/front.png b/graphics/pokemon/rockruff/front.png deleted file mode 100644 index 1199fbb592..0000000000 Binary files a/graphics/pokemon/rockruff/front.png and /dev/null differ diff --git a/graphics/pokemon/rowlet/anim_front.png b/graphics/pokemon/rowlet/anim_front.png new file mode 100644 index 0000000000..eea15ffec1 Binary files /dev/null and b/graphics/pokemon/rowlet/anim_front.png differ diff --git a/graphics/pokemon/rowlet/front.png b/graphics/pokemon/rowlet/front.png deleted file mode 100644 index 55953244ec..0000000000 Binary files a/graphics/pokemon/rowlet/front.png and /dev/null differ diff --git a/graphics/pokemon/togedemaru/anim_front.png b/graphics/pokemon/togedemaru/anim_front.png new file mode 100644 index 0000000000..4e6534e2f8 Binary files /dev/null and b/graphics/pokemon/togedemaru/anim_front.png differ diff --git a/graphics/pokemon/togedemaru/front.png b/graphics/pokemon/togedemaru/front.png deleted file mode 100644 index aa0202eef3..0000000000 Binary files a/graphics/pokemon/togedemaru/front.png and /dev/null differ diff --git a/graphics/pokemon/toucannon/anim_front.png b/graphics/pokemon/toucannon/anim_front.png new file mode 100644 index 0000000000..fd42f4cc3f Binary files /dev/null and b/graphics/pokemon/toucannon/anim_front.png differ diff --git a/graphics/pokemon/toucannon/back.png b/graphics/pokemon/toucannon/back.png index 109a356dd7..fb6e6195ae 100644 Binary files a/graphics/pokemon/toucannon/back.png and b/graphics/pokemon/toucannon/back.png differ diff --git a/graphics/pokemon/toucannon/front.png b/graphics/pokemon/toucannon/front.png deleted file mode 100644 index e9131805ac..0000000000 Binary files a/graphics/pokemon/toucannon/front.png and /dev/null differ diff --git a/graphics/pokemon/toucannon/normal.pal b/graphics/pokemon/toucannon/normal.pal index eeb9ee6b64..d2ba6f1226 100644 --- a/graphics/pokemon/toucannon/normal.pal +++ b/graphics/pokemon/toucannon/normal.pal @@ -2,18 +2,18 @@ JASC-PAL 0100 16 152 208 160 -120 40 24 -32 24 24 -232 232 64 -48 40 40 -88 80 72 -240 168 48 -56 48 48 -168 168 168 -232 112 32 -32 112 168 16 16 16 +32 24 24 +56 48 48 +120 40 24 +37 76 103 +88 80 72 224 48 16 -248 248 248 +32 112 168 +232 112 32 +168 168 168 +240 168 48 112 200 216 -184 184 192 +213 213 222 +232 232 64 +248 248 248 diff --git a/graphics/pokemon/toucannon/shiny.pal b/graphics/pokemon/toucannon/shiny.pal index 44b47e16b3..e60414432f 100644 --- a/graphics/pokemon/toucannon/shiny.pal +++ b/graphics/pokemon/toucannon/shiny.pal @@ -2,18 +2,18 @@ JASC-PAL 0100 16 152 208 160 -72 16 96 -16 24 24 -88 120 200 -48 40 40 -80 88 80 -64 64 168 -48 56 48 -200 208 104 -160 72 184 -24 160 48 16 16 16 +33 38 38 +48 56 48 +77 18 70 +24 92 102 +80 88 80 224 32 104 -248 248 248 +49 131 145 +160 72 184 +200 208 104 +64 64 168 112 200 216 -184 184 192 +213 213 222 +88 120 200 +248 248 248 diff --git a/graphics/pokemon/trumbeak/anim_front.png b/graphics/pokemon/trumbeak/anim_front.png new file mode 100644 index 0000000000..9bb3a97840 Binary files /dev/null and b/graphics/pokemon/trumbeak/anim_front.png differ diff --git a/graphics/pokemon/trumbeak/back.png b/graphics/pokemon/trumbeak/back.png index 552c32d260..a9dc99ea25 100644 Binary files a/graphics/pokemon/trumbeak/back.png and b/graphics/pokemon/trumbeak/back.png differ diff --git a/graphics/pokemon/trumbeak/front.png b/graphics/pokemon/trumbeak/front.png deleted file mode 100644 index b51466e309..0000000000 Binary files a/graphics/pokemon/trumbeak/front.png and /dev/null differ diff --git a/graphics/pokemon/trumbeak/normal.pal b/graphics/pokemon/trumbeak/normal.pal index 315d2898c5..050033cdb5 100644 --- a/graphics/pokemon/trumbeak/normal.pal +++ b/graphics/pokemon/trumbeak/normal.pal @@ -6,7 +6,7 @@ JASC-PAL 96 88 80 16 16 16 64 56 56 -192 192 192 +212 212 212 120 120 128 168 168 168 248 248 248 @@ -15,5 +15,5 @@ JASC-PAL 248 136 64 232 56 48 184 24 24 -120 168 184 -0 0 0 +64 154 184 +115 28 28 diff --git a/graphics/pokemon/trumbeak/shiny.pal b/graphics/pokemon/trumbeak/shiny.pal index 0b87369f2c..3a2e5ce71f 100644 --- a/graphics/pokemon/trumbeak/shiny.pal +++ b/graphics/pokemon/trumbeak/shiny.pal @@ -6,7 +6,7 @@ JASC-PAL 80 96 80 16 16 16 56 64 48 -192 192 192 +212 212 212 136 128 40 216 208 56 248 248 248 @@ -16,4 +16,4 @@ JASC-PAL 240 56 136 200 24 104 120 168 184 -0 0 0 +125 15 68 diff --git a/include/battle.h b/include/battle.h index cd314eb728..7fa841e835 100644 --- a/include/battle.h +++ b/include/battle.h @@ -106,6 +106,7 @@ struct DisableStruct u8 stickyWebDone:1; u8 stealthRockDone:1; u8 syrupBombTimer; + u8 syrupBombIsShiny:1; u8 steelSurgeDone:1; }; diff --git a/include/battle_scripts.h b/include/battle_scripts.h index 3cfc9ace16..bdcf1081b9 100644 --- a/include/battle_scripts.h +++ b/include/battle_scripts.h @@ -481,6 +481,7 @@ extern const u8 BattleScript_SelectingNotAllowedCurrentMove[]; extern const u8 BattleScript_SelectingNotAllowedCurrentMoveInPalace[]; extern const u8 BattleScript_SaltCureExtraDamage[]; extern const u8 BattleScript_SyrupBombEndTurn[]; +extern const u8 BattleScript_SyrupBombActivates[]; // zmoves extern const u8 BattleScript_ZMoveActivateDamaging[]; diff --git a/include/config/battle.h b/include/config/battle.h index e0c3ae2acc..43f8138c1e 100644 --- a/include/config/battle.h +++ b/include/config/battle.h @@ -117,7 +117,6 @@ #define B_SHADOW_TAG_ESCAPE GEN_LATEST // In Gen4+, if both sides have a Pokémon with Shadow Tag, all battlers can escape. Before, neither side could escape this situation. #define B_MOODY_ACC_EVASION GEN_LATEST // In Gen8, Moody CANNOT raise Accuracy and Evasion anymore. #define B_FLASH_FIRE_FROZEN GEN_LATEST // In Gen5+, Flash Fire can trigger even when frozen, when it couldn't before. -#define B_SYNCHRONIZE_NATURE GEN_LATEST // In Gen8, if a Pokémon with Synchronize is leading the party, it's 100% guaranteed that wild Pokémon will have the same Nature, as opposed to 50% previously. In Gen9, it has no out-of-battle effect. #define B_SYNCHRONIZE_TOXIC GEN_LATEST // In Gen5+, if a Pokémon with Synchronize is badly poisoned, the opponent will also become badly poisoned. Previously, the opponent would become regular poisoned. #define B_UPDATED_INTIMIDATE GEN_LATEST // In Gen8, Intimidate doesn't work on opponents with the Inner Focus, Scrappy, Own Tempo or Oblivious abilities. It also activates Rattled. #define B_OBLIVIOUS_TAUNT GEN_LATEST // In Gen6+, Pokémon with Oblivious can't be taunted. @@ -129,6 +128,7 @@ #define B_LEAF_GUARD_PREVENTS_REST GEN_LATEST // In Gen5+, Leaf Guard prevents the use of Rest in harsh sunlight. #define B_SNOW_WARNING GEN_LATEST // In Gen9+, Snow Warning will summon snow instead of hail. #define B_TRANSISTOR_BOOST GEN_LATEST // In Gen9+, Transistor will only boost Electric-type moves by 1.3x as opposed to 1.5x. +#define B_ILLUMINATE_EFFECT GEN_LATEST // In Gen9+, Illuminate prevents accuracy reductions and ignores the target's evasion. // Item settings #define B_HP_BERRIES GEN_LATEST // In Gen4+, berries which restore HP activate immediately after HP drops to half. In Gen3, the effect occurs at the end of the turn. @@ -209,7 +209,7 @@ #define B_WILD_NATURAL_ENEMIES TRUE // If set to TRUE, certain wild mon species will attack other species when partnered in double wild battles (eg. Zangoose vs Seviper) #define B_AFFECTION_MECHANICS FALSE // In Gen6+, there's a stat called affection that can trigger different effects in battle. From LGPE onwards, those effects use friendship instead. #define B_TRAINER_CLASS_POKE_BALLS GEN_LATEST // In Gen7+, trainers will use certain types of Poké Balls depending on their trainer class. -#define B_OBEDIENCE_MECHANICS GEN_7 // In PLA+ (here Gen8+), obedience restrictions also apply to non-outsider Pokémon, albeit based on their level met rather than actual level +#define B_OBEDIENCE_MECHANICS GEN_LATEST // In PLA+ (here Gen8+), obedience restrictions also apply to non-outsider Pokémon, albeit based on their level met rather than actual level #define B_USE_FROSTBITE FALSE // In PLA, Frostbite replaces Freeze. Enabling this flag does the same here. Moves can still be cherry-picked to either Freeze or Frostbite. Freeze-Dry, Secret Power & Tri Attack depend on this config. #define B_OVERWORLD_SNOW GEN_LATEST // In Gen9+, overworld Snow will summon snow instead of hail. diff --git a/include/config/overworld.h b/include/config/overworld.h index e8056236a0..5002be3d28 100644 --- a/include/config/overworld.h +++ b/include/config/overworld.h @@ -10,6 +10,20 @@ // PC settings #define OW_PC_PRESS_B GEN_LATEST // In Gen4, pressing B when holding a Pokémon is equivalent to placing it. In Gen3, it gives the "You're holding a Pokémon!" error. +// Out-of-battle Ability effects +#define OW_SYNCHRONIZE_NATURE GEN_LATEST // In Gen8, if a Pokémon with Synchronize is leading the party, it's 100% guaranteed that wild Pokémon will have the same Nature, as opposed to 50% previously. Stationary Pokémon are excluded in Gen3. In Gen6, all No Eggs Discovered gift Pokémon will have the same Nature, while in Gen7 all gift Pokémon will, regardless of Egg Group - In Gen 8, no gift Pokémon are affected. In Gen9, this ability has no out-of-battle effect. +#define OW_COMPOUND_EYES GEN_LATEST // Prior to Gen9, if a Pokémon with Compound Eyes is leading the party, the wild held item rate is increased to 60%/20%. +#define OW_SUPER_LUCK GEN_LATEST // In Gen8, if a Pokémon with Super Luck is leading the party, the wild held item rate is increased to 60%/20%. +#define OW_CUTE_CHARM GEN_LATEST // Prior to Gen9, if a Pokémon with Cute Charm is leading the party, wild encounters have a 66.7% chance to be forced to be of the opposite gender. +#define OW_ILLUMINATE GEN_LATEST // Prior to Gen9, if a Pokémon with Illuminate is leading the party, the wild encounter rate is doubled. +#define OW_INFILTRATOR GEN_LATEST // In Gen8, if a Pokémon with Infiltrator is leading the party, the wild encounter rate is halved. +#define OW_HARVEST GEN_LATEST // In Gen8, if a Pokémon with Harvest is leading the party, there is a 50% chance to encounter a Grass-type Pokémon. +#define OW_LIGHTNING_ROD GEN_LATEST // In Gen8, if a Pokémon with Lightning Rod is leading the party, there is a 50% chance to encounter an Electric-type Pokémon. +#define OW_STORM_DRAIN GEN_LATEST // In Gen8, if a Pokémon with Storm Drain is leading the party, there is a 50% chance to encounter a Water-type Pokémon. +#define OW_FLASH_FIRE GEN_LATEST // In Gen8, if a Pokémon with Flash Fire is leading the party, there is a 50% chance to encounter a Fire-type Pokémon. +#define OW_MAGNET_PULL GEN_LATEST // Prior to Gen9, if a Pokémon with Magnet Pull is leading the party, there is a 50% chance to encounter a Steel-type Pokémon. +#define OW_STATIC GEN_LATEST // Prior to Gen9, if a Pokémon with Static is leading the party, there is a 50% chance to encounter an Electric-type Pokémon. + // Overworld flags // To use the following features in scripting, replace the 0s with the flag ID you're assigning it to. // Eg: Replace with FLAG_UNUSED_0x264 so you can use that flag to toggle the feature. diff --git a/include/constants/battle_anim.h b/include/constants/battle_anim.h index 54eeb5b055..0a01eb2996 100644 --- a/include/constants/battle_anim.h +++ b/include/constants/battle_anim.h @@ -399,7 +399,12 @@ #define ANIM_TAG_TEAPOT (ANIM_SPRITES_START + 385) #define ANIM_TAG_WOOD_HAMMER_HAMMER (ANIM_SPRITES_START + 386) #define ANIM_TAG_SNOWFLAKES (ANIM_SPRITES_START + 387) - +#define ANIM_TAG_SYRUP_BLOB_RED (ANIM_SPRITES_START + 388) +#define ANIM_TAG_SYRUP_SHELL_RED (ANIM_SPRITES_START + 389) +#define ANIM_TAG_SYRUP_BLOB_YELLOW (ANIM_SPRITES_START + 390) +#define ANIM_TAG_SYRUP_SHELL_YELLOW (ANIM_SPRITES_START + 391) +#define ANIM_TAG_SYRUP_SPLAT_RED (ANIM_SPRITES_START + 392) +#define ANIM_TAG_SYRUP_SPLAT_YELLOW (ANIM_SPRITES_START + 393) // battlers #define ANIM_ATTACKER 0 @@ -553,6 +558,7 @@ #define B_ANIM_SALT_CURE_DAMAGE 38 #define B_ANIM_DYNAMAX_GROWTH 39 #define B_ANIM_MAX_SET_WEATHER 40 +#define B_ANIM_SYRUP_BOMB_SPEED_DROP 41 // special animations table (gBattleAnims_Special) #define B_ANIM_LVL_UP 0 diff --git a/include/constants/battle_script_commands.h b/include/constants/battle_script_commands.h index 1775b9528e..087af0e301 100644 --- a/include/constants/battle_script_commands.h +++ b/include/constants/battle_script_commands.h @@ -221,34 +221,33 @@ #define VARIOUS_TRY_TAR_SHOT 128 #define VARIOUS_CAN_TAR_SHOT_WORK 129 #define VARIOUS_CHECK_POLTERGEIST 130 -#define VARIOUS_SET_OCTOLOCK 131 -#define VARIOUS_CUT_1_3_HP_RAISE_STATS 132 -#define VARIOUS_TRY_END_NEUTRALIZING_GAS 133 -#define VARIOUS_JUMP_IF_UNDER_200 134 -#define VARIOUS_SET_SKY_DROP 135 -#define VARIOUS_CLEAR_SKY_DROP 136 -#define VARIOUS_SKY_DROP_YAWN 137 -#define VARIOUS_JUMP_IF_HOLD_EFFECT 138 -#define VARIOUS_CURE_CERTAIN_STATUSES 139 -#define VARIOUS_TRY_RESET_NEGATIVE_STAT_STAGES 140 -#define VARIOUS_JUMP_IF_LAST_USED_ITEM_BERRY 141 -#define VARIOUS_JUMP_IF_LAST_USED_ITEM_HOLD_EFFECT 142 -#define VARIOUS_SAVE_BATTLER_ITEM 143 -#define VARIOUS_RESTORE_BATTLER_ITEM 144 -#define VARIOUS_BATTLER_ITEM_TO_LAST_USED_ITEM 145 -#define VARIOUS_SET_BEAK_BLAST 146 -#define VARIOUS_SWAP_SIDE_STATUSES 147 -#define VARIOUS_SWAP_STATS 148 -#define VARIOUS_TEATIME_INVUL 149 -#define VARIOUS_TEATIME_TARGETS 150 -#define VARIOUS_TRY_WIND_RIDER_POWER 151 -#define VARIOUS_ACTIVATE_WEATHER_CHANGE_ABILITIES 152 -#define VARIOUS_ACTIVATE_TERRAIN_CHANGE_ABILITIES 153 -#define VARIOUS_STORE_HEALING_WISH 154 -#define VARIOUS_HIT_SWITCH_TARGET_FAILED 155 -#define VARIOUS_TRY_REVIVAL_BLESSING 156 -#define VARIOUS_TRY_TRAINER_SLIDE_MSG_Z_MOVE 157 -#define VARIOUS_TRY_TRAINER_SLIDE_MSG_MEGA_EVOLUTION 158 +#define VARIOUS_CUT_1_3_HP_RAISE_STATS 131 +#define VARIOUS_TRY_END_NEUTRALIZING_GAS 132 +#define VARIOUS_JUMP_IF_UNDER_200 133 +#define VARIOUS_SET_SKY_DROP 134 +#define VARIOUS_CLEAR_SKY_DROP 135 +#define VARIOUS_SKY_DROP_YAWN 136 +#define VARIOUS_JUMP_IF_HOLD_EFFECT 137 +#define VARIOUS_CURE_CERTAIN_STATUSES 138 +#define VARIOUS_TRY_RESET_NEGATIVE_STAT_STAGES 139 +#define VARIOUS_JUMP_IF_LAST_USED_ITEM_BERRY 140 +#define VARIOUS_JUMP_IF_LAST_USED_ITEM_HOLD_EFFECT 141 +#define VARIOUS_SAVE_BATTLER_ITEM 142 +#define VARIOUS_RESTORE_BATTLER_ITEM 143 +#define VARIOUS_BATTLER_ITEM_TO_LAST_USED_ITEM 144 +#define VARIOUS_SET_BEAK_BLAST 145 +#define VARIOUS_SWAP_SIDE_STATUSES 146 +#define VARIOUS_SWAP_STATS 147 +#define VARIOUS_TEATIME_INVUL 148 +#define VARIOUS_TEATIME_TARGETS 149 +#define VARIOUS_TRY_WIND_RIDER_POWER 150 +#define VARIOUS_ACTIVATE_WEATHER_CHANGE_ABILITIES 151 +#define VARIOUS_ACTIVATE_TERRAIN_CHANGE_ABILITIES 152 +#define VARIOUS_STORE_HEALING_WISH 153 +#define VARIOUS_HIT_SWITCH_TARGET_FAILED 154 +#define VARIOUS_TRY_REVIVAL_BLESSING 155 +#define VARIOUS_TRY_TRAINER_SLIDE_MSG_Z_MOVE 156 +#define VARIOUS_TRY_TRAINER_SLIDE_MSG_MEGA_EVOLUTION 157 // Cmd_manipulatedamage #define DMG_CHANGE_SIGN 0 diff --git a/include/constants/battle_string_ids.h b/include/constants/battle_string_ids.h index 1f5539dc62..a9a6b7025b 100644 --- a/include/constants/battle_string_ids.h +++ b/include/constants/battle_string_ids.h @@ -547,7 +547,7 @@ #define STRINGID_NOONEWILLBEABLETORUNAWAY 545 #define STRINGID_DESTINYKNOTACTIVATES 546 #define STRINGID_CLOAKEDINAFREEZINGLIGHT 547 -#define STRINGID_STATWASNOTLOWERED 548 +#define STRINGID_CLEARAMULETWONTLOWERSTATS 548 #define STRINGID_FERVENTWISHREACHED 549 #define STRINGID_AIRLOCKACTIVATES 550 #define STRINGID_PRESSUREENTERS 551 diff --git a/include/constants/species.h b/include/constants/species.h index bbcb6eaefa..7d05c9b0df 100644 --- a/include/constants/species.h +++ b/include/constants/species.h @@ -1,1572 +1,1634 @@ #ifndef GUARD_CONSTANTS_SPECIES_H #define GUARD_CONSTANTS_SPECIES_H -#define SPECIES_NONE 0 -#define SPECIES_BULBASAUR 1 -#define SPECIES_IVYSAUR 2 -#define SPECIES_VENUSAUR 3 -#define SPECIES_CHARMANDER 4 -#define SPECIES_CHARMELEON 5 -#define SPECIES_CHARIZARD 6 -#define SPECIES_SQUIRTLE 7 -#define SPECIES_WARTORTLE 8 -#define SPECIES_BLASTOISE 9 -#define SPECIES_CATERPIE 10 -#define SPECIES_METAPOD 11 -#define SPECIES_BUTTERFREE 12 -#define SPECIES_WEEDLE 13 -#define SPECIES_KAKUNA 14 -#define SPECIES_BEEDRILL 15 -#define SPECIES_PIDGEY 16 -#define SPECIES_PIDGEOTTO 17 -#define SPECIES_PIDGEOT 18 -#define SPECIES_RATTATA 19 -#define SPECIES_RATICATE 20 -#define SPECIES_SPEAROW 21 -#define SPECIES_FEAROW 22 -#define SPECIES_EKANS 23 -#define SPECIES_ARBOK 24 -#define SPECIES_PIKACHU 25 -#define SPECIES_RAICHU 26 -#define SPECIES_SANDSHREW 27 -#define SPECIES_SANDSLASH 28 -#define SPECIES_NIDORAN_F 29 -#define SPECIES_NIDORINA 30 -#define SPECIES_NIDOQUEEN 31 -#define SPECIES_NIDORAN_M 32 -#define SPECIES_NIDORINO 33 -#define SPECIES_NIDOKING 34 -#define SPECIES_CLEFAIRY 35 -#define SPECIES_CLEFABLE 36 -#define SPECIES_VULPIX 37 -#define SPECIES_NINETALES 38 -#define SPECIES_JIGGLYPUFF 39 -#define SPECIES_WIGGLYTUFF 40 -#define SPECIES_ZUBAT 41 -#define SPECIES_GOLBAT 42 -#define SPECIES_ODDISH 43 -#define SPECIES_GLOOM 44 -#define SPECIES_VILEPLUME 45 -#define SPECIES_PARAS 46 -#define SPECIES_PARASECT 47 -#define SPECIES_VENONAT 48 -#define SPECIES_VENOMOTH 49 -#define SPECIES_DIGLETT 50 -#define SPECIES_DUGTRIO 51 -#define SPECIES_MEOWTH 52 -#define SPECIES_PERSIAN 53 -#define SPECIES_PSYDUCK 54 -#define SPECIES_GOLDUCK 55 -#define SPECIES_MANKEY 56 -#define SPECIES_PRIMEAPE 57 -#define SPECIES_GROWLITHE 58 -#define SPECIES_ARCANINE 59 -#define SPECIES_POLIWAG 60 -#define SPECIES_POLIWHIRL 61 -#define SPECIES_POLIWRATH 62 -#define SPECIES_ABRA 63 -#define SPECIES_KADABRA 64 -#define SPECIES_ALAKAZAM 65 -#define SPECIES_MACHOP 66 -#define SPECIES_MACHOKE 67 -#define SPECIES_MACHAMP 68 -#define SPECIES_BELLSPROUT 69 -#define SPECIES_WEEPINBELL 70 -#define SPECIES_VICTREEBEL 71 -#define SPECIES_TENTACOOL 72 -#define SPECIES_TENTACRUEL 73 -#define SPECIES_GEODUDE 74 -#define SPECIES_GRAVELER 75 -#define SPECIES_GOLEM 76 -#define SPECIES_PONYTA 77 -#define SPECIES_RAPIDASH 78 -#define SPECIES_SLOWPOKE 79 -#define SPECIES_SLOWBRO 80 -#define SPECIES_MAGNEMITE 81 -#define SPECIES_MAGNETON 82 -#define SPECIES_FARFETCHD 83 -#define SPECIES_DODUO 84 -#define SPECIES_DODRIO 85 -#define SPECIES_SEEL 86 -#define SPECIES_DEWGONG 87 -#define SPECIES_GRIMER 88 -#define SPECIES_MUK 89 -#define SPECIES_SHELLDER 90 -#define SPECIES_CLOYSTER 91 -#define SPECIES_GASTLY 92 -#define SPECIES_HAUNTER 93 -#define SPECIES_GENGAR 94 -#define SPECIES_ONIX 95 -#define SPECIES_DROWZEE 96 -#define SPECIES_HYPNO 97 -#define SPECIES_KRABBY 98 -#define SPECIES_KINGLER 99 -#define SPECIES_VOLTORB 100 -#define SPECIES_ELECTRODE 101 -#define SPECIES_EXEGGCUTE 102 -#define SPECIES_EXEGGUTOR 103 -#define SPECIES_CUBONE 104 -#define SPECIES_MAROWAK 105 -#define SPECIES_HITMONLEE 106 -#define SPECIES_HITMONCHAN 107 -#define SPECIES_LICKITUNG 108 -#define SPECIES_KOFFING 109 -#define SPECIES_WEEZING 110 -#define SPECIES_RHYHORN 111 -#define SPECIES_RHYDON 112 -#define SPECIES_CHANSEY 113 -#define SPECIES_TANGELA 114 -#define SPECIES_KANGASKHAN 115 -#define SPECIES_HORSEA 116 -#define SPECIES_SEADRA 117 -#define SPECIES_GOLDEEN 118 -#define SPECIES_SEAKING 119 -#define SPECIES_STARYU 120 -#define SPECIES_STARMIE 121 -#define SPECIES_MR_MIME 122 -#define SPECIES_SCYTHER 123 -#define SPECIES_JYNX 124 -#define SPECIES_ELECTABUZZ 125 -#define SPECIES_MAGMAR 126 -#define SPECIES_PINSIR 127 -#define SPECIES_TAUROS 128 -#define SPECIES_MAGIKARP 129 -#define SPECIES_GYARADOS 130 -#define SPECIES_LAPRAS 131 -#define SPECIES_DITTO 132 -#define SPECIES_EEVEE 133 -#define SPECIES_VAPOREON 134 -#define SPECIES_JOLTEON 135 -#define SPECIES_FLAREON 136 -#define SPECIES_PORYGON 137 -#define SPECIES_OMANYTE 138 -#define SPECIES_OMASTAR 139 -#define SPECIES_KABUTO 140 -#define SPECIES_KABUTOPS 141 -#define SPECIES_AERODACTYL 142 -#define SPECIES_SNORLAX 143 -#define SPECIES_ARTICUNO 144 -#define SPECIES_ZAPDOS 145 -#define SPECIES_MOLTRES 146 -#define SPECIES_DRATINI 147 -#define SPECIES_DRAGONAIR 148 -#define SPECIES_DRAGONITE 149 -#define SPECIES_MEWTWO 150 -#define SPECIES_MEW 151 -#define SPECIES_CHIKORITA 152 -#define SPECIES_BAYLEEF 153 -#define SPECIES_MEGANIUM 154 -#define SPECIES_CYNDAQUIL 155 -#define SPECIES_QUILAVA 156 -#define SPECIES_TYPHLOSION 157 -#define SPECIES_TOTODILE 158 -#define SPECIES_CROCONAW 159 -#define SPECIES_FERALIGATR 160 -#define SPECIES_SENTRET 161 -#define SPECIES_FURRET 162 -#define SPECIES_HOOTHOOT 163 -#define SPECIES_NOCTOWL 164 -#define SPECIES_LEDYBA 165 -#define SPECIES_LEDIAN 166 -#define SPECIES_SPINARAK 167 -#define SPECIES_ARIADOS 168 -#define SPECIES_CROBAT 169 -#define SPECIES_CHINCHOU 170 -#define SPECIES_LANTURN 171 -#define SPECIES_PICHU 172 -#define SPECIES_CLEFFA 173 -#define SPECIES_IGGLYBUFF 174 -#define SPECIES_TOGEPI 175 -#define SPECIES_TOGETIC 176 -#define SPECIES_NATU 177 -#define SPECIES_XATU 178 -#define SPECIES_MAREEP 179 -#define SPECIES_FLAAFFY 180 -#define SPECIES_AMPHAROS 181 -#define SPECIES_BELLOSSOM 182 -#define SPECIES_MARILL 183 -#define SPECIES_AZUMARILL 184 -#define SPECIES_SUDOWOODO 185 -#define SPECIES_POLITOED 186 -#define SPECIES_HOPPIP 187 -#define SPECIES_SKIPLOOM 188 -#define SPECIES_JUMPLUFF 189 -#define SPECIES_AIPOM 190 -#define SPECIES_SUNKERN 191 -#define SPECIES_SUNFLORA 192 -#define SPECIES_YANMA 193 -#define SPECIES_WOOPER 194 -#define SPECIES_QUAGSIRE 195 -#define SPECIES_ESPEON 196 -#define SPECIES_UMBREON 197 -#define SPECIES_MURKROW 198 -#define SPECIES_SLOWKING 199 -#define SPECIES_MISDREAVUS 200 -#define SPECIES_UNOWN 201 -#define SPECIES_WOBBUFFET 202 -#define SPECIES_GIRAFARIG 203 -#define SPECIES_PINECO 204 -#define SPECIES_FORRETRESS 205 -#define SPECIES_DUNSPARCE 206 -#define SPECIES_GLIGAR 207 -#define SPECIES_STEELIX 208 -#define SPECIES_SNUBBULL 209 -#define SPECIES_GRANBULL 210 -#define SPECIES_QWILFISH 211 -#define SPECIES_SCIZOR 212 -#define SPECIES_SHUCKLE 213 -#define SPECIES_HERACROSS 214 -#define SPECIES_SNEASEL 215 -#define SPECIES_TEDDIURSA 216 -#define SPECIES_URSARING 217 -#define SPECIES_SLUGMA 218 -#define SPECIES_MAGCARGO 219 -#define SPECIES_SWINUB 220 -#define SPECIES_PILOSWINE 221 -#define SPECIES_CORSOLA 222 -#define SPECIES_REMORAID 223 -#define SPECIES_OCTILLERY 224 -#define SPECIES_DELIBIRD 225 -#define SPECIES_MANTINE 226 -#define SPECIES_SKARMORY 227 -#define SPECIES_HOUNDOUR 228 -#define SPECIES_HOUNDOOM 229 -#define SPECIES_KINGDRA 230 -#define SPECIES_PHANPY 231 -#define SPECIES_DONPHAN 232 -#define SPECIES_PORYGON2 233 -#define SPECIES_STANTLER 234 -#define SPECIES_SMEARGLE 235 -#define SPECIES_TYROGUE 236 -#define SPECIES_HITMONTOP 237 -#define SPECIES_SMOOCHUM 238 -#define SPECIES_ELEKID 239 -#define SPECIES_MAGBY 240 -#define SPECIES_MILTANK 241 -#define SPECIES_BLISSEY 242 -#define SPECIES_RAIKOU 243 -#define SPECIES_ENTEI 244 -#define SPECIES_SUICUNE 245 -#define SPECIES_LARVITAR 246 -#define SPECIES_PUPITAR 247 -#define SPECIES_TYRANITAR 248 -#define SPECIES_LUGIA 249 -#define SPECIES_HO_OH 250 -#define SPECIES_CELEBI 251 -#define SPECIES_TREECKO 252 -#define SPECIES_GROVYLE 253 -#define SPECIES_SCEPTILE 254 -#define SPECIES_TORCHIC 255 -#define SPECIES_COMBUSKEN 256 -#define SPECIES_BLAZIKEN 257 -#define SPECIES_MUDKIP 258 -#define SPECIES_MARSHTOMP 259 -#define SPECIES_SWAMPERT 260 -#define SPECIES_POOCHYENA 261 -#define SPECIES_MIGHTYENA 262 -#define SPECIES_ZIGZAGOON 263 -#define SPECIES_LINOONE 264 -#define SPECIES_WURMPLE 265 -#define SPECIES_SILCOON 266 -#define SPECIES_BEAUTIFLY 267 -#define SPECIES_CASCOON 268 -#define SPECIES_DUSTOX 269 -#define SPECIES_LOTAD 270 -#define SPECIES_LOMBRE 271 -#define SPECIES_LUDICOLO 272 -#define SPECIES_SEEDOT 273 -#define SPECIES_NUZLEAF 274 -#define SPECIES_SHIFTRY 275 -#define SPECIES_TAILLOW 276 -#define SPECIES_SWELLOW 277 -#define SPECIES_WINGULL 278 -#define SPECIES_PELIPPER 279 -#define SPECIES_RALTS 280 -#define SPECIES_KIRLIA 281 -#define SPECIES_GARDEVOIR 282 -#define SPECIES_SURSKIT 283 -#define SPECIES_MASQUERAIN 284 -#define SPECIES_SHROOMISH 285 -#define SPECIES_BRELOOM 286 -#define SPECIES_SLAKOTH 287 -#define SPECIES_VIGOROTH 288 -#define SPECIES_SLAKING 289 -#define SPECIES_NINCADA 290 -#define SPECIES_NINJASK 291 -#define SPECIES_SHEDINJA 292 -#define SPECIES_WHISMUR 293 -#define SPECIES_LOUDRED 294 -#define SPECIES_EXPLOUD 295 -#define SPECIES_MAKUHITA 296 -#define SPECIES_HARIYAMA 297 -#define SPECIES_AZURILL 298 -#define SPECIES_NOSEPASS 299 -#define SPECIES_SKITTY 300 -#define SPECIES_DELCATTY 301 -#define SPECIES_SABLEYE 302 -#define SPECIES_MAWILE 303 -#define SPECIES_ARON 304 -#define SPECIES_LAIRON 305 -#define SPECIES_AGGRON 306 -#define SPECIES_MEDITITE 307 -#define SPECIES_MEDICHAM 308 -#define SPECIES_ELECTRIKE 309 -#define SPECIES_MANECTRIC 310 -#define SPECIES_PLUSLE 311 -#define SPECIES_MINUN 312 -#define SPECIES_VOLBEAT 313 -#define SPECIES_ILLUMISE 314 -#define SPECIES_ROSELIA 315 -#define SPECIES_GULPIN 316 -#define SPECIES_SWALOT 317 -#define SPECIES_CARVANHA 318 -#define SPECIES_SHARPEDO 319 -#define SPECIES_WAILMER 320 -#define SPECIES_WAILORD 321 -#define SPECIES_NUMEL 322 -#define SPECIES_CAMERUPT 323 -#define SPECIES_TORKOAL 324 -#define SPECIES_SPOINK 325 -#define SPECIES_GRUMPIG 326 -#define SPECIES_SPINDA 327 -#define SPECIES_TRAPINCH 328 -#define SPECIES_VIBRAVA 329 -#define SPECIES_FLYGON 330 -#define SPECIES_CACNEA 331 -#define SPECIES_CACTURNE 332 -#define SPECIES_SWABLU 333 -#define SPECIES_ALTARIA 334 -#define SPECIES_ZANGOOSE 335 -#define SPECIES_SEVIPER 336 -#define SPECIES_LUNATONE 337 -#define SPECIES_SOLROCK 338 -#define SPECIES_BARBOACH 339 -#define SPECIES_WHISCASH 340 -#define SPECIES_CORPHISH 341 -#define SPECIES_CRAWDAUNT 342 -#define SPECIES_BALTOY 343 -#define SPECIES_CLAYDOL 344 -#define SPECIES_LILEEP 345 -#define SPECIES_CRADILY 346 -#define SPECIES_ANORITH 347 -#define SPECIES_ARMALDO 348 -#define SPECIES_FEEBAS 349 -#define SPECIES_MILOTIC 350 -#define SPECIES_CASTFORM SPECIES_CASTFORM_NORMAL -#define SPECIES_CASTFORM_NORMAL 351 -#define SPECIES_KECLEON 352 -#define SPECIES_SHUPPET 353 -#define SPECIES_BANETTE 354 -#define SPECIES_DUSKULL 355 -#define SPECIES_DUSCLOPS 356 -#define SPECIES_TROPIUS 357 -#define SPECIES_CHIMECHO 358 -#define SPECIES_ABSOL 359 -#define SPECIES_WYNAUT 360 -#define SPECIES_SNORUNT 361 -#define SPECIES_GLALIE 362 -#define SPECIES_SPHEAL 363 -#define SPECIES_SEALEO 364 -#define SPECIES_WALREIN 365 -#define SPECIES_CLAMPERL 366 -#define SPECIES_HUNTAIL 367 -#define SPECIES_GOREBYSS 368 -#define SPECIES_RELICANTH 369 -#define SPECIES_LUVDISC 370 -#define SPECIES_BAGON 371 -#define SPECIES_SHELGON 372 -#define SPECIES_SALAMENCE 373 -#define SPECIES_BELDUM 374 -#define SPECIES_METANG 375 -#define SPECIES_METAGROSS 376 -#define SPECIES_REGIROCK 377 -#define SPECIES_REGICE 378 -#define SPECIES_REGISTEEL 379 -#define SPECIES_LATIAS 380 -#define SPECIES_LATIOS 381 -#define SPECIES_KYOGRE 382 -#define SPECIES_GROUDON 383 -#define SPECIES_RAYQUAZA 384 -#define SPECIES_JIRACHI 385 -#define SPECIES_DEOXYS SPECIES_DEOXYS_NORMAL -#define SPECIES_DEOXYS_NORMAL 386 -#define SPECIES_TURTWIG 387 -#define SPECIES_GROTLE 388 -#define SPECIES_TORTERRA 389 -#define SPECIES_CHIMCHAR 390 -#define SPECIES_MONFERNO 391 -#define SPECIES_INFERNAPE 392 -#define SPECIES_PIPLUP 393 -#define SPECIES_PRINPLUP 394 -#define SPECIES_EMPOLEON 395 -#define SPECIES_STARLY 396 -#define SPECIES_STARAVIA 397 -#define SPECIES_STARAPTOR 398 -#define SPECIES_BIDOOF 399 -#define SPECIES_BIBAREL 400 -#define SPECIES_KRICKETOT 401 -#define SPECIES_KRICKETUNE 402 -#define SPECIES_SHINX 403 -#define SPECIES_LUXIO 404 -#define SPECIES_LUXRAY 405 -#define SPECIES_BUDEW 406 -#define SPECIES_ROSERADE 407 -#define SPECIES_CRANIDOS 408 -#define SPECIES_RAMPARDOS 409 -#define SPECIES_SHIELDON 410 -#define SPECIES_BASTIODON 411 -#define SPECIES_BURMY SPECIES_BURMY_PLANT_CLOAK -#define SPECIES_BURMY_PLANT_CLOAK 412 -#define SPECIES_WORMADAM SPECIES_WORMADAM_PLANT_CLOAK -#define SPECIES_WORMADAM_PLANT_CLOAK 413 -#define SPECIES_MOTHIM 414 -#define SPECIES_COMBEE 415 -#define SPECIES_VESPIQUEN 416 -#define SPECIES_PACHIRISU 417 -#define SPECIES_BUIZEL 418 -#define SPECIES_FLOATZEL 419 -#define SPECIES_CHERUBI 420 -#define SPECIES_CHERRIM SPECIES_CHERRIM_OVERCAST -#define SPECIES_CHERRIM_OVERCAST 421 -#define SPECIES_SHELLOS SPECIES_SHELLOS_WEST_SEA -#define SPECIES_SHELLOS_WEST_SEA 422 -#define SPECIES_GASTRODON SPECIES_GASTRODON_WEST_SEA -#define SPECIES_GASTRODON_WEST_SEA 423 -#define SPECIES_AMBIPOM 424 -#define SPECIES_DRIFLOON 425 -#define SPECIES_DRIFBLIM 426 -#define SPECIES_BUNEARY 427 -#define SPECIES_LOPUNNY 428 -#define SPECIES_MISMAGIUS 429 -#define SPECIES_HONCHKROW 430 -#define SPECIES_GLAMEOW 431 -#define SPECIES_PURUGLY 432 -#define SPECIES_CHINGLING 433 -#define SPECIES_STUNKY 434 -#define SPECIES_SKUNTANK 435 -#define SPECIES_BRONZOR 436 -#define SPECIES_BRONZONG 437 -#define SPECIES_BONSLY 438 -#define SPECIES_MIME_JR 439 -#define SPECIES_HAPPINY 440 -#define SPECIES_CHATOT 441 -#define SPECIES_SPIRITOMB 442 -#define SPECIES_GIBLE 443 -#define SPECIES_GABITE 444 -#define SPECIES_GARCHOMP 445 -#define SPECIES_MUNCHLAX 446 -#define SPECIES_RIOLU 447 -#define SPECIES_LUCARIO 448 -#define SPECIES_HIPPOPOTAS 449 -#define SPECIES_HIPPOWDON 450 -#define SPECIES_SKORUPI 451 -#define SPECIES_DRAPION 452 -#define SPECIES_CROAGUNK 453 -#define SPECIES_TOXICROAK 454 -#define SPECIES_CARNIVINE 455 -#define SPECIES_FINNEON 456 -#define SPECIES_LUMINEON 457 -#define SPECIES_MANTYKE 458 -#define SPECIES_SNOVER 459 -#define SPECIES_ABOMASNOW 460 -#define SPECIES_WEAVILE 461 -#define SPECIES_MAGNEZONE 462 -#define SPECIES_LICKILICKY 463 -#define SPECIES_RHYPERIOR 464 -#define SPECIES_TANGROWTH 465 -#define SPECIES_ELECTIVIRE 466 -#define SPECIES_MAGMORTAR 467 -#define SPECIES_TOGEKISS 468 -#define SPECIES_YANMEGA 469 -#define SPECIES_LEAFEON 470 -#define SPECIES_GLACEON 471 -#define SPECIES_GLISCOR 472 -#define SPECIES_MAMOSWINE 473 -#define SPECIES_PORYGON_Z 474 -#define SPECIES_GALLADE 475 -#define SPECIES_PROBOPASS 476 -#define SPECIES_DUSKNOIR 477 -#define SPECIES_FROSLASS 478 -#define SPECIES_ROTOM 479 -#define SPECIES_UXIE 480 -#define SPECIES_MESPRIT 481 -#define SPECIES_AZELF 482 -#define SPECIES_DIALGA 483 -#define SPECIES_PALKIA 484 -#define SPECIES_HEATRAN 485 -#define SPECIES_REGIGIGAS 486 -#define SPECIES_GIRATINA SPECIES_GIRATINA_ALTERED -#define SPECIES_GIRATINA_ALTERED 487 -#define SPECIES_CRESSELIA 488 -#define SPECIES_PHIONE 489 -#define SPECIES_MANAPHY 490 -#define SPECIES_DARKRAI 491 -#define SPECIES_SHAYMIN SPECIES_SHAYMIN_LAND -#define SPECIES_SHAYMIN_LAND 492 -#define SPECIES_ARCEUS SPECIES_ARCEUS_NORMAL -#define SPECIES_ARCEUS_NORMAL 493 -#define SPECIES_VICTINI 494 -#define SPECIES_SNIVY 495 -#define SPECIES_SERVINE 496 -#define SPECIES_SERPERIOR 497 -#define SPECIES_TEPIG 498 -#define SPECIES_PIGNITE 499 -#define SPECIES_EMBOAR 500 -#define SPECIES_OSHAWOTT 501 -#define SPECIES_DEWOTT 502 -#define SPECIES_SAMUROTT 503 -#define SPECIES_PATRAT 504 -#define SPECIES_WATCHOG 505 -#define SPECIES_LILLIPUP 506 -#define SPECIES_HERDIER 507 -#define SPECIES_STOUTLAND 508 -#define SPECIES_PURRLOIN 509 -#define SPECIES_LIEPARD 510 -#define SPECIES_PANSAGE 511 -#define SPECIES_SIMISAGE 512 -#define SPECIES_PANSEAR 513 -#define SPECIES_SIMISEAR 514 -#define SPECIES_PANPOUR 515 -#define SPECIES_SIMIPOUR 516 -#define SPECIES_MUNNA 517 -#define SPECIES_MUSHARNA 518 -#define SPECIES_PIDOVE 519 -#define SPECIES_TRANQUILL 520 -#define SPECIES_UNFEZANT 521 -#define SPECIES_BLITZLE 522 -#define SPECIES_ZEBSTRIKA 523 -#define SPECIES_ROGGENROLA 524 -#define SPECIES_BOLDORE 525 -#define SPECIES_GIGALITH 526 -#define SPECIES_WOOBAT 527 -#define SPECIES_SWOOBAT 528 -#define SPECIES_DRILBUR 529 -#define SPECIES_EXCADRILL 530 -#define SPECIES_AUDINO 531 -#define SPECIES_TIMBURR 532 -#define SPECIES_GURDURR 533 -#define SPECIES_CONKELDURR 534 -#define SPECIES_TYMPOLE 535 -#define SPECIES_PALPITOAD 536 -#define SPECIES_SEISMITOAD 537 -#define SPECIES_THROH 538 -#define SPECIES_SAWK 539 -#define SPECIES_SEWADDLE 540 -#define SPECIES_SWADLOON 541 -#define SPECIES_LEAVANNY 542 -#define SPECIES_VENIPEDE 543 -#define SPECIES_WHIRLIPEDE 544 -#define SPECIES_SCOLIPEDE 545 -#define SPECIES_COTTONEE 546 -#define SPECIES_WHIMSICOTT 547 -#define SPECIES_PETILIL 548 -#define SPECIES_LILLIGANT 549 -#define SPECIES_BASCULIN SPECIES_BASCULIN_RED_STRIPED -#define SPECIES_BASCULIN_RED_STRIPED 550 -#define SPECIES_SANDILE 551 -#define SPECIES_KROKOROK 552 -#define SPECIES_KROOKODILE 553 -#define SPECIES_DARUMAKA 554 -#define SPECIES_DARMANITAN SPECIES_DARMANITAN_STANDARD_MODE -#define SPECIES_DARMANITAN_STANDARD_MODE 555 -#define SPECIES_MARACTUS 556 -#define SPECIES_DWEBBLE 557 -#define SPECIES_CRUSTLE 558 -#define SPECIES_SCRAGGY 559 -#define SPECIES_SCRAFTY 560 -#define SPECIES_SIGILYPH 561 -#define SPECIES_YAMASK 562 -#define SPECIES_COFAGRIGUS 563 -#define SPECIES_TIRTOUGA 564 -#define SPECIES_CARRACOSTA 565 -#define SPECIES_ARCHEN 566 -#define SPECIES_ARCHEOPS 567 -#define SPECIES_TRUBBISH 568 -#define SPECIES_GARBODOR 569 -#define SPECIES_ZORUA 570 -#define SPECIES_ZOROARK 571 -#define SPECIES_MINCCINO 572 -#define SPECIES_CINCCINO 573 -#define SPECIES_GOTHITA 574 -#define SPECIES_GOTHORITA 575 -#define SPECIES_GOTHITELLE 576 -#define SPECIES_SOLOSIS 577 -#define SPECIES_DUOSION 578 -#define SPECIES_REUNICLUS 579 -#define SPECIES_DUCKLETT 580 -#define SPECIES_SWANNA 581 -#define SPECIES_VANILLITE 582 -#define SPECIES_VANILLISH 583 -#define SPECIES_VANILLUXE 584 -#define SPECIES_DEERLING SPECIES_DEERLING_SPRING -#define SPECIES_DEERLING_SPRING 585 -#define SPECIES_SAWSBUCK SPECIES_SAWSBUCK_SPRING -#define SPECIES_SAWSBUCK_SPRING 586 -#define SPECIES_EMOLGA 587 -#define SPECIES_KARRABLAST 588 -#define SPECIES_ESCAVALIER 589 -#define SPECIES_FOONGUS 590 -#define SPECIES_AMOONGUSS 591 -#define SPECIES_FRILLISH 592 -#define SPECIES_JELLICENT 593 -#define SPECIES_ALOMOMOLA 594 -#define SPECIES_JOLTIK 595 -#define SPECIES_GALVANTULA 596 -#define SPECIES_FERROSEED 597 -#define SPECIES_FERROTHORN 598 -#define SPECIES_KLINK 599 -#define SPECIES_KLANG 600 -#define SPECIES_KLINKLANG 601 -#define SPECIES_TYNAMO 602 -#define SPECIES_EELEKTRIK 603 -#define SPECIES_EELEKTROSS 604 -#define SPECIES_ELGYEM 605 -#define SPECIES_BEHEEYEM 606 -#define SPECIES_LITWICK 607 -#define SPECIES_LAMPENT 608 -#define SPECIES_CHANDELURE 609 -#define SPECIES_AXEW 610 -#define SPECIES_FRAXURE 611 -#define SPECIES_HAXORUS 612 -#define SPECIES_CUBCHOO 613 -#define SPECIES_BEARTIC 614 -#define SPECIES_CRYOGONAL 615 -#define SPECIES_SHELMET 616 -#define SPECIES_ACCELGOR 617 -#define SPECIES_STUNFISK 618 -#define SPECIES_MIENFOO 619 -#define SPECIES_MIENSHAO 620 -#define SPECIES_DRUDDIGON 621 -#define SPECIES_GOLETT 622 -#define SPECIES_GOLURK 623 -#define SPECIES_PAWNIARD 624 -#define SPECIES_BISHARP 625 -#define SPECIES_BOUFFALANT 626 -#define SPECIES_RUFFLET 627 -#define SPECIES_BRAVIARY 628 -#define SPECIES_VULLABY 629 -#define SPECIES_MANDIBUZZ 630 -#define SPECIES_HEATMOR 631 -#define SPECIES_DURANT 632 -#define SPECIES_DEINO 633 -#define SPECIES_ZWEILOUS 634 -#define SPECIES_HYDREIGON 635 -#define SPECIES_LARVESTA 636 -#define SPECIES_VOLCARONA 637 -#define SPECIES_COBALION 638 -#define SPECIES_TERRAKION 639 -#define SPECIES_VIRIZION 640 -#define SPECIES_TORNADUS SPECIES_TORNADUS_INCARNATE -#define SPECIES_TORNADUS_INCARNATE 641 -#define SPECIES_THUNDURUS SPECIES_THUNDURUS_INCARNATE -#define SPECIES_THUNDURUS_INCARNATE 642 -#define SPECIES_RESHIRAM 643 -#define SPECIES_ZEKROM 644 -#define SPECIES_LANDORUS SPECIES_LANDORUS_INCARNATE -#define SPECIES_LANDORUS_INCARNATE 645 -#define SPECIES_KYUREM 646 -#define SPECIES_KELDEO SPECIES_KELDEO_ORDINARY -#define SPECIES_KELDEO_ORDINARY 647 -#define SPECIES_MELOETTA SPECIES_MELOETTA_ARIA -#define SPECIES_MELOETTA_ARIA 648 -#define SPECIES_GENESECT 649 -#define SPECIES_CHESPIN 650 -#define SPECIES_QUILLADIN 651 -#define SPECIES_CHESNAUGHT 652 -#define SPECIES_FENNEKIN 653 -#define SPECIES_BRAIXEN 654 -#define SPECIES_DELPHOX 655 -#define SPECIES_FROAKIE 656 -#define SPECIES_FROGADIER 657 -#define SPECIES_GRENINJA 658 -#define SPECIES_BUNNELBY 659 -#define SPECIES_DIGGERSBY 660 -#define SPECIES_FLETCHLING 661 -#define SPECIES_FLETCHINDER 662 -#define SPECIES_TALONFLAME 663 -#define SPECIES_SCATTERBUG 664 -#define SPECIES_SPEWPA 665 -#define SPECIES_VIVILLON SPECIES_VIVILLON_ICY_SNOW -#define SPECIES_VIVILLON_ICY_SNOW 666 -#define SPECIES_LITLEO 667 -#define SPECIES_PYROAR 668 -#define SPECIES_FLABEBE SPECIES_FLABEBE_RED_FLOWER -#define SPECIES_FLABEBE_RED_FLOWER 669 -#define SPECIES_FLOETTE SPECIES_FLOETTE_RED_FLOWER -#define SPECIES_FLOETTE_RED_FLOWER 670 -#define SPECIES_FLORGES SPECIES_FLORGES_RED_FLOWER -#define SPECIES_FLORGES_RED_FLOWER 671 -#define SPECIES_SKIDDO 672 -#define SPECIES_GOGOAT 673 -#define SPECIES_PANCHAM 674 -#define SPECIES_PANGORO 675 -#define SPECIES_FURFROU SPECIES_FURFROU_NATURAL -#define SPECIES_FURFROU_NATURAL 676 -#define SPECIES_ESPURR 677 -#define SPECIES_MEOWSTIC SPECIES_MEOWSTIC_MALE -#define SPECIES_MEOWSTIC_MALE 678 -#define SPECIES_HONEDGE 679 -#define SPECIES_DOUBLADE 680 -#define SPECIES_AEGISLASH SPECIES_AEGISLASH_SHIELD -#define SPECIES_AEGISLASH_SHIELD 681 -#define SPECIES_SPRITZEE 682 -#define SPECIES_AROMATISSE 683 -#define SPECIES_SWIRLIX 684 -#define SPECIES_SLURPUFF 685 -#define SPECIES_INKAY 686 -#define SPECIES_MALAMAR 687 -#define SPECIES_BINACLE 688 -#define SPECIES_BARBARACLE 689 -#define SPECIES_SKRELP 690 -#define SPECIES_DRAGALGE 691 -#define SPECIES_CLAUNCHER 692 -#define SPECIES_CLAWITZER 693 -#define SPECIES_HELIOPTILE 694 -#define SPECIES_HELIOLISK 695 -#define SPECIES_TYRUNT 696 -#define SPECIES_TYRANTRUM 697 -#define SPECIES_AMAURA 698 -#define SPECIES_AURORUS 699 -#define SPECIES_SYLVEON 700 -#define SPECIES_HAWLUCHA 701 -#define SPECIES_DEDENNE 702 -#define SPECIES_CARBINK 703 -#define SPECIES_GOOMY 704 -#define SPECIES_SLIGGOO 705 -#define SPECIES_GOODRA 706 -#define SPECIES_KLEFKI 707 -#define SPECIES_PHANTUMP 708 -#define SPECIES_TREVENANT 709 -#define SPECIES_PUMPKABOO SPECIES_PUMPKABOO_AVERAGE -#define SPECIES_PUMPKABOO_AVERAGE 710 -#define SPECIES_GOURGEIST SPECIES_GOURGEIST_AVERAGE -#define SPECIES_GOURGEIST_AVERAGE 711 -#define SPECIES_BERGMITE 712 -#define SPECIES_AVALUGG 713 -#define SPECIES_NOIBAT 714 -#define SPECIES_NOIVERN 715 -#define SPECIES_XERNEAS SPECIES_XERNEAS_NEUTRAL -#define SPECIES_XERNEAS_NEUTRAL 716 -#define SPECIES_YVELTAL 717 -#define SPECIES_ZYGARDE SPECIES_ZYGARDE_50 -#define SPECIES_ZYGARDE_50 SPECIES_ZYGARDE_50_AURA_BREAK -#define SPECIES_ZYGARDE_50_AURA_BREAK 718 -#define SPECIES_DIANCIE 719 -#define SPECIES_HOOPA SPECIES_HOOPA_CONFINED -#define SPECIES_HOOPA_CONFINED 720 -#define SPECIES_VOLCANION 721 -#define SPECIES_ROWLET 722 -#define SPECIES_DARTRIX 723 -#define SPECIES_DECIDUEYE 724 -#define SPECIES_LITTEN 725 -#define SPECIES_TORRACAT 726 -#define SPECIES_INCINEROAR 727 -#define SPECIES_POPPLIO 728 -#define SPECIES_BRIONNE 729 -#define SPECIES_PRIMARINA 730 -#define SPECIES_PIKIPEK 731 -#define SPECIES_TRUMBEAK 732 -#define SPECIES_TOUCANNON 733 -#define SPECIES_YUNGOOS 734 -#define SPECIES_GUMSHOOS 735 -#define SPECIES_GRUBBIN 736 -#define SPECIES_CHARJABUG 737 -#define SPECIES_VIKAVOLT 738 -#define SPECIES_CRABRAWLER 739 -#define SPECIES_CRABOMINABLE 740 -#define SPECIES_ORICORIO SPECIES_ORICORIO_BAILE -#define SPECIES_ORICORIO_BAILE 741 -#define SPECIES_CUTIEFLY 742 -#define SPECIES_RIBOMBEE 743 -#define SPECIES_ROCKRUFF 744 -#define SPECIES_LYCANROC SPECIES_LYCANROC_MIDDAY -#define SPECIES_LYCANROC_MIDDAY 745 -#define SPECIES_WISHIWASHI SPECIES_WISHIWASHI_SOLO -#define SPECIES_WISHIWASHI_SOLO 746 -#define SPECIES_MAREANIE 747 -#define SPECIES_TOXAPEX 748 -#define SPECIES_MUDBRAY 749 -#define SPECIES_MUDSDALE 750 -#define SPECIES_DEWPIDER 751 -#define SPECIES_ARAQUANID 752 -#define SPECIES_FOMANTIS 753 -#define SPECIES_LURANTIS 754 -#define SPECIES_MORELULL 755 -#define SPECIES_SHIINOTIC 756 -#define SPECIES_SALANDIT 757 -#define SPECIES_SALAZZLE 758 -#define SPECIES_STUFFUL 759 -#define SPECIES_BEWEAR 760 -#define SPECIES_BOUNSWEET 761 -#define SPECIES_STEENEE 762 -#define SPECIES_TSAREENA 763 -#define SPECIES_COMFEY 764 -#define SPECIES_ORANGURU 765 -#define SPECIES_PASSIMIAN 766 -#define SPECIES_WIMPOD 767 -#define SPECIES_GOLISOPOD 768 -#define SPECIES_SANDYGAST 769 -#define SPECIES_PALOSSAND 770 -#define SPECIES_PYUKUMUKU 771 -#define SPECIES_TYPE_NULL 772 -#define SPECIES_SILVALLY SPECIES_SILVALLY_NORMAL -#define SPECIES_SILVALLY_NORMAL 773 -#define SPECIES_MINIOR SPECIES_MINIOR_METEOR -#define SPECIES_MINIOR_METEOR SPECIES_MINIOR_METEOR_RED -#define SPECIES_MINIOR_METEOR_RED 774 -#define SPECIES_KOMALA 775 -#define SPECIES_TURTONATOR 776 -#define SPECIES_TOGEDEMARU 777 -#define SPECIES_MIMIKYU SPECIES_MIMIKYU_DISGUISED -#define SPECIES_MIMIKYU_DISGUISED 778 -#define SPECIES_BRUXISH 779 -#define SPECIES_DRAMPA 780 -#define SPECIES_DHELMISE 781 -#define SPECIES_JANGMO_O 782 -#define SPECIES_HAKAMO_O 783 -#define SPECIES_KOMMO_O 784 -#define SPECIES_TAPU_KOKO 785 -#define SPECIES_TAPU_LELE 786 -#define SPECIES_TAPU_BULU 787 -#define SPECIES_TAPU_FINI 788 -#define SPECIES_COSMOG 789 -#define SPECIES_COSMOEM 790 -#define SPECIES_SOLGALEO 791 -#define SPECIES_LUNALA 792 -#define SPECIES_NIHILEGO 793 -#define SPECIES_BUZZWOLE 794 -#define SPECIES_PHEROMOSA 795 -#define SPECIES_XURKITREE 796 -#define SPECIES_CELESTEELA 797 -#define SPECIES_KARTANA 798 -#define SPECIES_GUZZLORD 799 -#define SPECIES_NECROZMA 800 -#define SPECIES_MAGEARNA 801 -#define SPECIES_MARSHADOW 802 -#define SPECIES_POIPOLE 803 -#define SPECIES_NAGANADEL 804 -#define SPECIES_STAKATAKA 805 -#define SPECIES_BLACEPHALON 806 -#define SPECIES_ZERAORA 807 -#define SPECIES_MELTAN 808 -#define SPECIES_MELMETAL 809 -#define SPECIES_GROOKEY 810 -#define SPECIES_THWACKEY 811 -#define SPECIES_RILLABOOM 812 -#define SPECIES_SCORBUNNY 813 -#define SPECIES_RABOOT 814 -#define SPECIES_CINDERACE 815 -#define SPECIES_SOBBLE 816 -#define SPECIES_DRIZZILE 817 -#define SPECIES_INTELEON 818 -#define SPECIES_SKWOVET 819 -#define SPECIES_GREEDENT 820 -#define SPECIES_ROOKIDEE 821 -#define SPECIES_CORVISQUIRE 822 -#define SPECIES_CORVIKNIGHT 823 -#define SPECIES_BLIPBUG 824 -#define SPECIES_DOTTLER 825 -#define SPECIES_ORBEETLE 826 -#define SPECIES_NICKIT 827 -#define SPECIES_THIEVUL 828 -#define SPECIES_GOSSIFLEUR 829 -#define SPECIES_ELDEGOSS 830 -#define SPECIES_WOOLOO 831 -#define SPECIES_DUBWOOL 832 -#define SPECIES_CHEWTLE 833 -#define SPECIES_DREDNAW 834 -#define SPECIES_YAMPER 835 -#define SPECIES_BOLTUND 836 -#define SPECIES_ROLYCOLY 837 -#define SPECIES_CARKOL 838 -#define SPECIES_COALOSSAL 839 -#define SPECIES_APPLIN 840 -#define SPECIES_FLAPPLE 841 -#define SPECIES_APPLETUN 842 -#define SPECIES_SILICOBRA 843 -#define SPECIES_SANDACONDA 844 -#define SPECIES_CRAMORANT 845 -#define SPECIES_ARROKUDA 846 -#define SPECIES_BARRASKEWDA 847 -#define SPECIES_TOXEL 848 -#define SPECIES_TOXTRICITY SPECIES_TOXTRICITY_AMPED -#define SPECIES_TOXTRICITY_AMPED 849 -#define SPECIES_SIZZLIPEDE 850 -#define SPECIES_CENTISKORCH 851 -#define SPECIES_CLOBBOPUS 852 -#define SPECIES_GRAPPLOCT 853 -#define SPECIES_SINISTEA SPECIES_SINISTEA_PHONY -#define SPECIES_SINISTEA_PHONY 854 -#define SPECIES_POLTEAGEIST SPECIES_POLTEAGEIST_PHONY -#define SPECIES_POLTEAGEIST_PHONY 855 -#define SPECIES_HATENNA 856 -#define SPECIES_HATTREM 857 -#define SPECIES_HATTERENE 858 -#define SPECIES_IMPIDIMP 859 -#define SPECIES_MORGREM 860 -#define SPECIES_GRIMMSNARL 861 -#define SPECIES_OBSTAGOON 862 -#define SPECIES_PERRSERKER 863 -#define SPECIES_CURSOLA 864 -#define SPECIES_SIRFETCHD 865 -#define SPECIES_MR_RIME 866 -#define SPECIES_RUNERIGUS 867 -#define SPECIES_MILCERY 868 -#define SPECIES_ALCREMIE SPECIES_ALCREMIE_STRAWBERRY -#define SPECIES_ALCREMIE_STRAWBERRY SPECIES_ALCREMIE_STRAWBERRY_VANILLA_CREAM -#define SPECIES_ALCREMIE_VANILLA_CREAM SPECIES_ALCREMIE_STRAWBERRY_VANILLA_CREAM -#define SPECIES_ALCREMIE_STRAWBERRY_VANILLA_CREAM 869 -#define SPECIES_FALINKS 870 -#define SPECIES_PINCURCHIN 871 -#define SPECIES_SNOM 872 -#define SPECIES_FROSMOTH 873 -#define SPECIES_STONJOURNER 874 -#define SPECIES_EISCUE SPECIES_EISCUE_ICE_FACE -#define SPECIES_EISCUE_ICE_FACE 875 -#define SPECIES_INDEEDEE SPECIES_INDEEDEE_MALE -#define SPECIES_INDEEDEE_MALE 876 -#define SPECIES_MORPEKO SPECIES_MORPEKO_FULL_BELLY -#define SPECIES_MORPEKO_FULL_BELLY 877 -#define SPECIES_CUFANT 878 -#define SPECIES_COPPERAJAH 879 -#define SPECIES_DRACOZOLT 880 -#define SPECIES_ARCTOZOLT 881 -#define SPECIES_DRACOVISH 882 -#define SPECIES_ARCTOVISH 883 -#define SPECIES_DURALUDON 884 -#define SPECIES_DREEPY 885 -#define SPECIES_DRAKLOAK 886 -#define SPECIES_DRAGAPULT 887 -#define SPECIES_ZACIAN SPECIES_ZACIAN_HERO_OF_MANY_BATTLES -#define SPECIES_ZACIAN_HERO_OF_MANY_BATTLES 888 -#define SPECIES_ZAMAZENTA SPECIES_ZAMAZENTA_HERO_OF_MANY_BATTLES -#define SPECIES_ZAMAZENTA_HERO_OF_MANY_BATTLES 889 -#define SPECIES_ETERNATUS 890 -#define SPECIES_KUBFU 891 -#define SPECIES_URSHIFU SPECIES_URSHIFU_SINGLE_STRIKE_STYLE -#define SPECIES_URSHIFU_SINGLE_STRIKE_STYLE 892 -#define SPECIES_ZARUDE 893 -#define SPECIES_REGIELEKI 894 -#define SPECIES_REGIDRAGO 895 -#define SPECIES_GLASTRIER 896 -#define SPECIES_SPECTRIER 897 -#define SPECIES_CALYREX 898 -#define SPECIES_WYRDEER 899 -#define SPECIES_KLEAVOR 900 -#define SPECIES_URSALUNA 901 -#define SPECIES_BASCULEGION SPECIES_BASCULEGION_MALE -#define SPECIES_BASCULEGION_MALE 902 -#define SPECIES_SNEASLER 903 -#define SPECIES_OVERQWIL 904 -#define SPECIES_ENAMORUS SPECIES_ENAMORUS_INCARNATE -#define SPECIES_ENAMORUS_INCARNATE 905 +#define SPECIES_NONE 0 +#define SPECIES_BULBASAUR 1 +#define SPECIES_IVYSAUR 2 +#define SPECIES_VENUSAUR 3 +#define SPECIES_CHARMANDER 4 +#define SPECIES_CHARMELEON 5 +#define SPECIES_CHARIZARD 6 +#define SPECIES_SQUIRTLE 7 +#define SPECIES_WARTORTLE 8 +#define SPECIES_BLASTOISE 9 +#define SPECIES_CATERPIE 10 +#define SPECIES_METAPOD 11 +#define SPECIES_BUTTERFREE 12 +#define SPECIES_WEEDLE 13 +#define SPECIES_KAKUNA 14 +#define SPECIES_BEEDRILL 15 +#define SPECIES_PIDGEY 16 +#define SPECIES_PIDGEOTTO 17 +#define SPECIES_PIDGEOT 18 +#define SPECIES_RATTATA 19 +#define SPECIES_RATICATE 20 +#define SPECIES_SPEAROW 21 +#define SPECIES_FEAROW 22 +#define SPECIES_EKANS 23 +#define SPECIES_ARBOK 24 +#define SPECIES_PIKACHU 25 +#define SPECIES_RAICHU 26 +#define SPECIES_SANDSHREW 27 +#define SPECIES_SANDSLASH 28 +#define SPECIES_NIDORAN_F 29 +#define SPECIES_NIDORINA 30 +#define SPECIES_NIDOQUEEN 31 +#define SPECIES_NIDORAN_M 32 +#define SPECIES_NIDORINO 33 +#define SPECIES_NIDOKING 34 +#define SPECIES_CLEFAIRY 35 +#define SPECIES_CLEFABLE 36 +#define SPECIES_VULPIX 37 +#define SPECIES_NINETALES 38 +#define SPECIES_JIGGLYPUFF 39 +#define SPECIES_WIGGLYTUFF 40 +#define SPECIES_ZUBAT 41 +#define SPECIES_GOLBAT 42 +#define SPECIES_ODDISH 43 +#define SPECIES_GLOOM 44 +#define SPECIES_VILEPLUME 45 +#define SPECIES_PARAS 46 +#define SPECIES_PARASECT 47 +#define SPECIES_VENONAT 48 +#define SPECIES_VENOMOTH 49 +#define SPECIES_DIGLETT 50 +#define SPECIES_DUGTRIO 51 +#define SPECIES_MEOWTH 52 +#define SPECIES_PERSIAN 53 +#define SPECIES_PSYDUCK 54 +#define SPECIES_GOLDUCK 55 +#define SPECIES_MANKEY 56 +#define SPECIES_PRIMEAPE 57 +#define SPECIES_GROWLITHE 58 +#define SPECIES_ARCANINE 59 +#define SPECIES_POLIWAG 60 +#define SPECIES_POLIWHIRL 61 +#define SPECIES_POLIWRATH 62 +#define SPECIES_ABRA 63 +#define SPECIES_KADABRA 64 +#define SPECIES_ALAKAZAM 65 +#define SPECIES_MACHOP 66 +#define SPECIES_MACHOKE 67 +#define SPECIES_MACHAMP 68 +#define SPECIES_BELLSPROUT 69 +#define SPECIES_WEEPINBELL 70 +#define SPECIES_VICTREEBEL 71 +#define SPECIES_TENTACOOL 72 +#define SPECIES_TENTACRUEL 73 +#define SPECIES_GEODUDE 74 +#define SPECIES_GRAVELER 75 +#define SPECIES_GOLEM 76 +#define SPECIES_PONYTA 77 +#define SPECIES_RAPIDASH 78 +#define SPECIES_SLOWPOKE 79 +#define SPECIES_SLOWBRO 80 +#define SPECIES_MAGNEMITE 81 +#define SPECIES_MAGNETON 82 +#define SPECIES_FARFETCHD 83 +#define SPECIES_DODUO 84 +#define SPECIES_DODRIO 85 +#define SPECIES_SEEL 86 +#define SPECIES_DEWGONG 87 +#define SPECIES_GRIMER 88 +#define SPECIES_MUK 89 +#define SPECIES_SHELLDER 90 +#define SPECIES_CLOYSTER 91 +#define SPECIES_GASTLY 92 +#define SPECIES_HAUNTER 93 +#define SPECIES_GENGAR 94 +#define SPECIES_ONIX 95 +#define SPECIES_DROWZEE 96 +#define SPECIES_HYPNO 97 +#define SPECIES_KRABBY 98 +#define SPECIES_KINGLER 99 +#define SPECIES_VOLTORB 100 +#define SPECIES_ELECTRODE 101 +#define SPECIES_EXEGGCUTE 102 +#define SPECIES_EXEGGUTOR 103 +#define SPECIES_CUBONE 104 +#define SPECIES_MAROWAK 105 +#define SPECIES_HITMONLEE 106 +#define SPECIES_HITMONCHAN 107 +#define SPECIES_LICKITUNG 108 +#define SPECIES_KOFFING 109 +#define SPECIES_WEEZING 110 +#define SPECIES_RHYHORN 111 +#define SPECIES_RHYDON 112 +#define SPECIES_CHANSEY 113 +#define SPECIES_TANGELA 114 +#define SPECIES_KANGASKHAN 115 +#define SPECIES_HORSEA 116 +#define SPECIES_SEADRA 117 +#define SPECIES_GOLDEEN 118 +#define SPECIES_SEAKING 119 +#define SPECIES_STARYU 120 +#define SPECIES_STARMIE 121 +#define SPECIES_MR_MIME 122 +#define SPECIES_SCYTHER 123 +#define SPECIES_JYNX 124 +#define SPECIES_ELECTABUZZ 125 +#define SPECIES_MAGMAR 126 +#define SPECIES_PINSIR 127 +#define SPECIES_TAUROS 128 +#define SPECIES_MAGIKARP 129 +#define SPECIES_GYARADOS 130 +#define SPECIES_LAPRAS 131 +#define SPECIES_DITTO 132 +#define SPECIES_EEVEE 133 +#define SPECIES_VAPOREON 134 +#define SPECIES_JOLTEON 135 +#define SPECIES_FLAREON 136 +#define SPECIES_PORYGON 137 +#define SPECIES_OMANYTE 138 +#define SPECIES_OMASTAR 139 +#define SPECIES_KABUTO 140 +#define SPECIES_KABUTOPS 141 +#define SPECIES_AERODACTYL 142 +#define SPECIES_SNORLAX 143 +#define SPECIES_ARTICUNO 144 +#define SPECIES_ZAPDOS 145 +#define SPECIES_MOLTRES 146 +#define SPECIES_DRATINI 147 +#define SPECIES_DRAGONAIR 148 +#define SPECIES_DRAGONITE 149 +#define SPECIES_MEWTWO 150 +#define SPECIES_MEW 151 +#define SPECIES_CHIKORITA 152 +#define SPECIES_BAYLEEF 153 +#define SPECIES_MEGANIUM 154 +#define SPECIES_CYNDAQUIL 155 +#define SPECIES_QUILAVA 156 +#define SPECIES_TYPHLOSION 157 +#define SPECIES_TOTODILE 158 +#define SPECIES_CROCONAW 159 +#define SPECIES_FERALIGATR 160 +#define SPECIES_SENTRET 161 +#define SPECIES_FURRET 162 +#define SPECIES_HOOTHOOT 163 +#define SPECIES_NOCTOWL 164 +#define SPECIES_LEDYBA 165 +#define SPECIES_LEDIAN 166 +#define SPECIES_SPINARAK 167 +#define SPECIES_ARIADOS 168 +#define SPECIES_CROBAT 169 +#define SPECIES_CHINCHOU 170 +#define SPECIES_LANTURN 171 +#define SPECIES_PICHU 172 +#define SPECIES_CLEFFA 173 +#define SPECIES_IGGLYBUFF 174 +#define SPECIES_TOGEPI 175 +#define SPECIES_TOGETIC 176 +#define SPECIES_NATU 177 +#define SPECIES_XATU 178 +#define SPECIES_MAREEP 179 +#define SPECIES_FLAAFFY 180 +#define SPECIES_AMPHAROS 181 +#define SPECIES_BELLOSSOM 182 +#define SPECIES_MARILL 183 +#define SPECIES_AZUMARILL 184 +#define SPECIES_SUDOWOODO 185 +#define SPECIES_POLITOED 186 +#define SPECIES_HOPPIP 187 +#define SPECIES_SKIPLOOM 188 +#define SPECIES_JUMPLUFF 189 +#define SPECIES_AIPOM 190 +#define SPECIES_SUNKERN 191 +#define SPECIES_SUNFLORA 192 +#define SPECIES_YANMA 193 +#define SPECIES_WOOPER 194 +#define SPECIES_QUAGSIRE 195 +#define SPECIES_ESPEON 196 +#define SPECIES_UMBREON 197 +#define SPECIES_MURKROW 198 +#define SPECIES_SLOWKING 199 +#define SPECIES_MISDREAVUS 200 +#define SPECIES_UNOWN 201 +#define SPECIES_WOBBUFFET 202 +#define SPECIES_GIRAFARIG 203 +#define SPECIES_PINECO 204 +#define SPECIES_FORRETRESS 205 +#define SPECIES_DUNSPARCE 206 +#define SPECIES_GLIGAR 207 +#define SPECIES_STEELIX 208 +#define SPECIES_SNUBBULL 209 +#define SPECIES_GRANBULL 210 +#define SPECIES_QWILFISH 211 +#define SPECIES_SCIZOR 212 +#define SPECIES_SHUCKLE 213 +#define SPECIES_HERACROSS 214 +#define SPECIES_SNEASEL 215 +#define SPECIES_TEDDIURSA 216 +#define SPECIES_URSARING 217 +#define SPECIES_SLUGMA 218 +#define SPECIES_MAGCARGO 219 +#define SPECIES_SWINUB 220 +#define SPECIES_PILOSWINE 221 +#define SPECIES_CORSOLA 222 +#define SPECIES_REMORAID 223 +#define SPECIES_OCTILLERY 224 +#define SPECIES_DELIBIRD 225 +#define SPECIES_MANTINE 226 +#define SPECIES_SKARMORY 227 +#define SPECIES_HOUNDOUR 228 +#define SPECIES_HOUNDOOM 229 +#define SPECIES_KINGDRA 230 +#define SPECIES_PHANPY 231 +#define SPECIES_DONPHAN 232 +#define SPECIES_PORYGON2 233 +#define SPECIES_STANTLER 234 +#define SPECIES_SMEARGLE 235 +#define SPECIES_TYROGUE 236 +#define SPECIES_HITMONTOP 237 +#define SPECIES_SMOOCHUM 238 +#define SPECIES_ELEKID 239 +#define SPECIES_MAGBY 240 +#define SPECIES_MILTANK 241 +#define SPECIES_BLISSEY 242 +#define SPECIES_RAIKOU 243 +#define SPECIES_ENTEI 244 +#define SPECIES_SUICUNE 245 +#define SPECIES_LARVITAR 246 +#define SPECIES_PUPITAR 247 +#define SPECIES_TYRANITAR 248 +#define SPECIES_LUGIA 249 +#define SPECIES_HO_OH 250 +#define SPECIES_CELEBI 251 +#define SPECIES_TREECKO 252 +#define SPECIES_GROVYLE 253 +#define SPECIES_SCEPTILE 254 +#define SPECIES_TORCHIC 255 +#define SPECIES_COMBUSKEN 256 +#define SPECIES_BLAZIKEN 257 +#define SPECIES_MUDKIP 258 +#define SPECIES_MARSHTOMP 259 +#define SPECIES_SWAMPERT 260 +#define SPECIES_POOCHYENA 261 +#define SPECIES_MIGHTYENA 262 +#define SPECIES_ZIGZAGOON 263 +#define SPECIES_LINOONE 264 +#define SPECIES_WURMPLE 265 +#define SPECIES_SILCOON 266 +#define SPECIES_BEAUTIFLY 267 +#define SPECIES_CASCOON 268 +#define SPECIES_DUSTOX 269 +#define SPECIES_LOTAD 270 +#define SPECIES_LOMBRE 271 +#define SPECIES_LUDICOLO 272 +#define SPECIES_SEEDOT 273 +#define SPECIES_NUZLEAF 274 +#define SPECIES_SHIFTRY 275 +#define SPECIES_TAILLOW 276 +#define SPECIES_SWELLOW 277 +#define SPECIES_WINGULL 278 +#define SPECIES_PELIPPER 279 +#define SPECIES_RALTS 280 +#define SPECIES_KIRLIA 281 +#define SPECIES_GARDEVOIR 282 +#define SPECIES_SURSKIT 283 +#define SPECIES_MASQUERAIN 284 +#define SPECIES_SHROOMISH 285 +#define SPECIES_BRELOOM 286 +#define SPECIES_SLAKOTH 287 +#define SPECIES_VIGOROTH 288 +#define SPECIES_SLAKING 289 +#define SPECIES_NINCADA 290 +#define SPECIES_NINJASK 291 +#define SPECIES_SHEDINJA 292 +#define SPECIES_WHISMUR 293 +#define SPECIES_LOUDRED 294 +#define SPECIES_EXPLOUD 295 +#define SPECIES_MAKUHITA 296 +#define SPECIES_HARIYAMA 297 +#define SPECIES_AZURILL 298 +#define SPECIES_NOSEPASS 299 +#define SPECIES_SKITTY 300 +#define SPECIES_DELCATTY 301 +#define SPECIES_SABLEYE 302 +#define SPECIES_MAWILE 303 +#define SPECIES_ARON 304 +#define SPECIES_LAIRON 305 +#define SPECIES_AGGRON 306 +#define SPECIES_MEDITITE 307 +#define SPECIES_MEDICHAM 308 +#define SPECIES_ELECTRIKE 309 +#define SPECIES_MANECTRIC 310 +#define SPECIES_PLUSLE 311 +#define SPECIES_MINUN 312 +#define SPECIES_VOLBEAT 313 +#define SPECIES_ILLUMISE 314 +#define SPECIES_ROSELIA 315 +#define SPECIES_GULPIN 316 +#define SPECIES_SWALOT 317 +#define SPECIES_CARVANHA 318 +#define SPECIES_SHARPEDO 319 +#define SPECIES_WAILMER 320 +#define SPECIES_WAILORD 321 +#define SPECIES_NUMEL 322 +#define SPECIES_CAMERUPT 323 +#define SPECIES_TORKOAL 324 +#define SPECIES_SPOINK 325 +#define SPECIES_GRUMPIG 326 +#define SPECIES_SPINDA 327 +#define SPECIES_TRAPINCH 328 +#define SPECIES_VIBRAVA 329 +#define SPECIES_FLYGON 330 +#define SPECIES_CACNEA 331 +#define SPECIES_CACTURNE 332 +#define SPECIES_SWABLU 333 +#define SPECIES_ALTARIA 334 +#define SPECIES_ZANGOOSE 335 +#define SPECIES_SEVIPER 336 +#define SPECIES_LUNATONE 337 +#define SPECIES_SOLROCK 338 +#define SPECIES_BARBOACH 339 +#define SPECIES_WHISCASH 340 +#define SPECIES_CORPHISH 341 +#define SPECIES_CRAWDAUNT 342 +#define SPECIES_BALTOY 343 +#define SPECIES_CLAYDOL 344 +#define SPECIES_LILEEP 345 +#define SPECIES_CRADILY 346 +#define SPECIES_ANORITH 347 +#define SPECIES_ARMALDO 348 +#define SPECIES_FEEBAS 349 +#define SPECIES_MILOTIC 350 +#define SPECIES_CASTFORM SPECIES_CASTFORM_NORMAL +#define SPECIES_CASTFORM_NORMAL 351 +#define SPECIES_KECLEON 352 +#define SPECIES_SHUPPET 353 +#define SPECIES_BANETTE 354 +#define SPECIES_DUSKULL 355 +#define SPECIES_DUSCLOPS 356 +#define SPECIES_TROPIUS 357 +#define SPECIES_CHIMECHO 358 +#define SPECIES_ABSOL 359 +#define SPECIES_WYNAUT 360 +#define SPECIES_SNORUNT 361 +#define SPECIES_GLALIE 362 +#define SPECIES_SPHEAL 363 +#define SPECIES_SEALEO 364 +#define SPECIES_WALREIN 365 +#define SPECIES_CLAMPERL 366 +#define SPECIES_HUNTAIL 367 +#define SPECIES_GOREBYSS 368 +#define SPECIES_RELICANTH 369 +#define SPECIES_LUVDISC 370 +#define SPECIES_BAGON 371 +#define SPECIES_SHELGON 372 +#define SPECIES_SALAMENCE 373 +#define SPECIES_BELDUM 374 +#define SPECIES_METANG 375 +#define SPECIES_METAGROSS 376 +#define SPECIES_REGIROCK 377 +#define SPECIES_REGICE 378 +#define SPECIES_REGISTEEL 379 +#define SPECIES_LATIAS 380 +#define SPECIES_LATIOS 381 +#define SPECIES_KYOGRE 382 +#define SPECIES_GROUDON 383 +#define SPECIES_RAYQUAZA 384 +#define SPECIES_JIRACHI 385 +#define SPECIES_DEOXYS SPECIES_DEOXYS_NORMAL +#define SPECIES_DEOXYS_NORMAL 386 +#define SPECIES_TURTWIG 387 +#define SPECIES_GROTLE 388 +#define SPECIES_TORTERRA 389 +#define SPECIES_CHIMCHAR 390 +#define SPECIES_MONFERNO 391 +#define SPECIES_INFERNAPE 392 +#define SPECIES_PIPLUP 393 +#define SPECIES_PRINPLUP 394 +#define SPECIES_EMPOLEON 395 +#define SPECIES_STARLY 396 +#define SPECIES_STARAVIA 397 +#define SPECIES_STARAPTOR 398 +#define SPECIES_BIDOOF 399 +#define SPECIES_BIBAREL 400 +#define SPECIES_KRICKETOT 401 +#define SPECIES_KRICKETUNE 402 +#define SPECIES_SHINX 403 +#define SPECIES_LUXIO 404 +#define SPECIES_LUXRAY 405 +#define SPECIES_BUDEW 406 +#define SPECIES_ROSERADE 407 +#define SPECIES_CRANIDOS 408 +#define SPECIES_RAMPARDOS 409 +#define SPECIES_SHIELDON 410 +#define SPECIES_BASTIODON 411 +#define SPECIES_BURMY SPECIES_BURMY_PLANT_CLOAK +#define SPECIES_BURMY_PLANT_CLOAK 412 +#define SPECIES_WORMADAM SPECIES_WORMADAM_PLANT_CLOAK +#define SPECIES_WORMADAM_PLANT_CLOAK 413 +#define SPECIES_MOTHIM 414 +#define SPECIES_COMBEE 415 +#define SPECIES_VESPIQUEN 416 +#define SPECIES_PACHIRISU 417 +#define SPECIES_BUIZEL 418 +#define SPECIES_FLOATZEL 419 +#define SPECIES_CHERUBI 420 +#define SPECIES_CHERRIM SPECIES_CHERRIM_OVERCAST +#define SPECIES_CHERRIM_OVERCAST 421 +#define SPECIES_SHELLOS SPECIES_SHELLOS_WEST_SEA +#define SPECIES_SHELLOS_WEST_SEA 422 +#define SPECIES_GASTRODON SPECIES_GASTRODON_WEST_SEA +#define SPECIES_GASTRODON_WEST_SEA 423 +#define SPECIES_AMBIPOM 424 +#define SPECIES_DRIFLOON 425 +#define SPECIES_DRIFBLIM 426 +#define SPECIES_BUNEARY 427 +#define SPECIES_LOPUNNY 428 +#define SPECIES_MISMAGIUS 429 +#define SPECIES_HONCHKROW 430 +#define SPECIES_GLAMEOW 431 +#define SPECIES_PURUGLY 432 +#define SPECIES_CHINGLING 433 +#define SPECIES_STUNKY 434 +#define SPECIES_SKUNTANK 435 +#define SPECIES_BRONZOR 436 +#define SPECIES_BRONZONG 437 +#define SPECIES_BONSLY 438 +#define SPECIES_MIME_JR 439 +#define SPECIES_HAPPINY 440 +#define SPECIES_CHATOT 441 +#define SPECIES_SPIRITOMB 442 +#define SPECIES_GIBLE 443 +#define SPECIES_GABITE 444 +#define SPECIES_GARCHOMP 445 +#define SPECIES_MUNCHLAX 446 +#define SPECIES_RIOLU 447 +#define SPECIES_LUCARIO 448 +#define SPECIES_HIPPOPOTAS 449 +#define SPECIES_HIPPOWDON 450 +#define SPECIES_SKORUPI 451 +#define SPECIES_DRAPION 452 +#define SPECIES_CROAGUNK 453 +#define SPECIES_TOXICROAK 454 +#define SPECIES_CARNIVINE 455 +#define SPECIES_FINNEON 456 +#define SPECIES_LUMINEON 457 +#define SPECIES_MANTYKE 458 +#define SPECIES_SNOVER 459 +#define SPECIES_ABOMASNOW 460 +#define SPECIES_WEAVILE 461 +#define SPECIES_MAGNEZONE 462 +#define SPECIES_LICKILICKY 463 +#define SPECIES_RHYPERIOR 464 +#define SPECIES_TANGROWTH 465 +#define SPECIES_ELECTIVIRE 466 +#define SPECIES_MAGMORTAR 467 +#define SPECIES_TOGEKISS 468 +#define SPECIES_YANMEGA 469 +#define SPECIES_LEAFEON 470 +#define SPECIES_GLACEON 471 +#define SPECIES_GLISCOR 472 +#define SPECIES_MAMOSWINE 473 +#define SPECIES_PORYGON_Z 474 +#define SPECIES_GALLADE 475 +#define SPECIES_PROBOPASS 476 +#define SPECIES_DUSKNOIR 477 +#define SPECIES_FROSLASS 478 +#define SPECIES_ROTOM 479 +#define SPECIES_UXIE 480 +#define SPECIES_MESPRIT 481 +#define SPECIES_AZELF 482 +#define SPECIES_DIALGA 483 +#define SPECIES_PALKIA 484 +#define SPECIES_HEATRAN 485 +#define SPECIES_REGIGIGAS 486 +#define SPECIES_GIRATINA SPECIES_GIRATINA_ALTERED +#define SPECIES_GIRATINA_ALTERED 487 +#define SPECIES_CRESSELIA 488 +#define SPECIES_PHIONE 489 +#define SPECIES_MANAPHY 490 +#define SPECIES_DARKRAI 491 +#define SPECIES_SHAYMIN SPECIES_SHAYMIN_LAND +#define SPECIES_SHAYMIN_LAND 492 +#define SPECIES_ARCEUS SPECIES_ARCEUS_NORMAL +#define SPECIES_ARCEUS_NORMAL 493 +#define SPECIES_VICTINI 494 +#define SPECIES_SNIVY 495 +#define SPECIES_SERVINE 496 +#define SPECIES_SERPERIOR 497 +#define SPECIES_TEPIG 498 +#define SPECIES_PIGNITE 499 +#define SPECIES_EMBOAR 500 +#define SPECIES_OSHAWOTT 501 +#define SPECIES_DEWOTT 502 +#define SPECIES_SAMUROTT 503 +#define SPECIES_PATRAT 504 +#define SPECIES_WATCHOG 505 +#define SPECIES_LILLIPUP 506 +#define SPECIES_HERDIER 507 +#define SPECIES_STOUTLAND 508 +#define SPECIES_PURRLOIN 509 +#define SPECIES_LIEPARD 510 +#define SPECIES_PANSAGE 511 +#define SPECIES_SIMISAGE 512 +#define SPECIES_PANSEAR 513 +#define SPECIES_SIMISEAR 514 +#define SPECIES_PANPOUR 515 +#define SPECIES_SIMIPOUR 516 +#define SPECIES_MUNNA 517 +#define SPECIES_MUSHARNA 518 +#define SPECIES_PIDOVE 519 +#define SPECIES_TRANQUILL 520 +#define SPECIES_UNFEZANT 521 +#define SPECIES_BLITZLE 522 +#define SPECIES_ZEBSTRIKA 523 +#define SPECIES_ROGGENROLA 524 +#define SPECIES_BOLDORE 525 +#define SPECIES_GIGALITH 526 +#define SPECIES_WOOBAT 527 +#define SPECIES_SWOOBAT 528 +#define SPECIES_DRILBUR 529 +#define SPECIES_EXCADRILL 530 +#define SPECIES_AUDINO 531 +#define SPECIES_TIMBURR 532 +#define SPECIES_GURDURR 533 +#define SPECIES_CONKELDURR 534 +#define SPECIES_TYMPOLE 535 +#define SPECIES_PALPITOAD 536 +#define SPECIES_SEISMITOAD 537 +#define SPECIES_THROH 538 +#define SPECIES_SAWK 539 +#define SPECIES_SEWADDLE 540 +#define SPECIES_SWADLOON 541 +#define SPECIES_LEAVANNY 542 +#define SPECIES_VENIPEDE 543 +#define SPECIES_WHIRLIPEDE 544 +#define SPECIES_SCOLIPEDE 545 +#define SPECIES_COTTONEE 546 +#define SPECIES_WHIMSICOTT 547 +#define SPECIES_PETILIL 548 +#define SPECIES_LILLIGANT 549 +#define SPECIES_BASCULIN SPECIES_BASCULIN_RED_STRIPED +#define SPECIES_BASCULIN_RED_STRIPED 550 +#define SPECIES_SANDILE 551 +#define SPECIES_KROKOROK 552 +#define SPECIES_KROOKODILE 553 +#define SPECIES_DARUMAKA 554 +#define SPECIES_DARMANITAN SPECIES_DARMANITAN_STANDARD_MODE +#define SPECIES_DARMANITAN_STANDARD_MODE 555 +#define SPECIES_MARACTUS 556 +#define SPECIES_DWEBBLE 557 +#define SPECIES_CRUSTLE 558 +#define SPECIES_SCRAGGY 559 +#define SPECIES_SCRAFTY 560 +#define SPECIES_SIGILYPH 561 +#define SPECIES_YAMASK 562 +#define SPECIES_COFAGRIGUS 563 +#define SPECIES_TIRTOUGA 564 +#define SPECIES_CARRACOSTA 565 +#define SPECIES_ARCHEN 566 +#define SPECIES_ARCHEOPS 567 +#define SPECIES_TRUBBISH 568 +#define SPECIES_GARBODOR 569 +#define SPECIES_ZORUA 570 +#define SPECIES_ZOROARK 571 +#define SPECIES_MINCCINO 572 +#define SPECIES_CINCCINO 573 +#define SPECIES_GOTHITA 574 +#define SPECIES_GOTHORITA 575 +#define SPECIES_GOTHITELLE 576 +#define SPECIES_SOLOSIS 577 +#define SPECIES_DUOSION 578 +#define SPECIES_REUNICLUS 579 +#define SPECIES_DUCKLETT 580 +#define SPECIES_SWANNA 581 +#define SPECIES_VANILLITE 582 +#define SPECIES_VANILLISH 583 +#define SPECIES_VANILLUXE 584 +#define SPECIES_DEERLING SPECIES_DEERLING_SPRING +#define SPECIES_DEERLING_SPRING 585 +#define SPECIES_SAWSBUCK SPECIES_SAWSBUCK_SPRING +#define SPECIES_SAWSBUCK_SPRING 586 +#define SPECIES_EMOLGA 587 +#define SPECIES_KARRABLAST 588 +#define SPECIES_ESCAVALIER 589 +#define SPECIES_FOONGUS 590 +#define SPECIES_AMOONGUSS 591 +#define SPECIES_FRILLISH 592 +#define SPECIES_JELLICENT 593 +#define SPECIES_ALOMOMOLA 594 +#define SPECIES_JOLTIK 595 +#define SPECIES_GALVANTULA 596 +#define SPECIES_FERROSEED 597 +#define SPECIES_FERROTHORN 598 +#define SPECIES_KLINK 599 +#define SPECIES_KLANG 600 +#define SPECIES_KLINKLANG 601 +#define SPECIES_TYNAMO 602 +#define SPECIES_EELEKTRIK 603 +#define SPECIES_EELEKTROSS 604 +#define SPECIES_ELGYEM 605 +#define SPECIES_BEHEEYEM 606 +#define SPECIES_LITWICK 607 +#define SPECIES_LAMPENT 608 +#define SPECIES_CHANDELURE 609 +#define SPECIES_AXEW 610 +#define SPECIES_FRAXURE 611 +#define SPECIES_HAXORUS 612 +#define SPECIES_CUBCHOO 613 +#define SPECIES_BEARTIC 614 +#define SPECIES_CRYOGONAL 615 +#define SPECIES_SHELMET 616 +#define SPECIES_ACCELGOR 617 +#define SPECIES_STUNFISK 618 +#define SPECIES_MIENFOO 619 +#define SPECIES_MIENSHAO 620 +#define SPECIES_DRUDDIGON 621 +#define SPECIES_GOLETT 622 +#define SPECIES_GOLURK 623 +#define SPECIES_PAWNIARD 624 +#define SPECIES_BISHARP 625 +#define SPECIES_BOUFFALANT 626 +#define SPECIES_RUFFLET 627 +#define SPECIES_BRAVIARY 628 +#define SPECIES_VULLABY 629 +#define SPECIES_MANDIBUZZ 630 +#define SPECIES_HEATMOR 631 +#define SPECIES_DURANT 632 +#define SPECIES_DEINO 633 +#define SPECIES_ZWEILOUS 634 +#define SPECIES_HYDREIGON 635 +#define SPECIES_LARVESTA 636 +#define SPECIES_VOLCARONA 637 +#define SPECIES_COBALION 638 +#define SPECIES_TERRAKION 639 +#define SPECIES_VIRIZION 640 +#define SPECIES_TORNADUS SPECIES_TORNADUS_INCARNATE +#define SPECIES_TORNADUS_INCARNATE 641 +#define SPECIES_THUNDURUS SPECIES_THUNDURUS_INCARNATE +#define SPECIES_THUNDURUS_INCARNATE 642 +#define SPECIES_RESHIRAM 643 +#define SPECIES_ZEKROM 644 +#define SPECIES_LANDORUS SPECIES_LANDORUS_INCARNATE +#define SPECIES_LANDORUS_INCARNATE 645 +#define SPECIES_KYUREM 646 +#define SPECIES_KELDEO SPECIES_KELDEO_ORDINARY +#define SPECIES_KELDEO_ORDINARY 647 +#define SPECIES_MELOETTA SPECIES_MELOETTA_ARIA +#define SPECIES_MELOETTA_ARIA 648 +#define SPECIES_GENESECT 649 +#define SPECIES_CHESPIN 650 +#define SPECIES_QUILLADIN 651 +#define SPECIES_CHESNAUGHT 652 +#define SPECIES_FENNEKIN 653 +#define SPECIES_BRAIXEN 654 +#define SPECIES_DELPHOX 655 +#define SPECIES_FROAKIE 656 +#define SPECIES_FROGADIER 657 +#define SPECIES_GRENINJA 658 +#define SPECIES_BUNNELBY 659 +#define SPECIES_DIGGERSBY 660 +#define SPECIES_FLETCHLING 661 +#define SPECIES_FLETCHINDER 662 +#define SPECIES_TALONFLAME 663 +#define SPECIES_SCATTERBUG 664 +#define SPECIES_SPEWPA 665 +#define SPECIES_VIVILLON SPECIES_VIVILLON_ICY_SNOW +#define SPECIES_VIVILLON_ICY_SNOW 666 +#define SPECIES_LITLEO 667 +#define SPECIES_PYROAR 668 +#define SPECIES_FLABEBE SPECIES_FLABEBE_RED_FLOWER +#define SPECIES_FLABEBE_RED_FLOWER 669 +#define SPECIES_FLOETTE SPECIES_FLOETTE_RED_FLOWER +#define SPECIES_FLOETTE_RED_FLOWER 670 +#define SPECIES_FLORGES SPECIES_FLORGES_RED_FLOWER +#define SPECIES_FLORGES_RED_FLOWER 671 +#define SPECIES_SKIDDO 672 +#define SPECIES_GOGOAT 673 +#define SPECIES_PANCHAM 674 +#define SPECIES_PANGORO 675 +#define SPECIES_FURFROU SPECIES_FURFROU_NATURAL +#define SPECIES_FURFROU_NATURAL 676 +#define SPECIES_ESPURR 677 +#define SPECIES_MEOWSTIC SPECIES_MEOWSTIC_MALE +#define SPECIES_MEOWSTIC_MALE 678 +#define SPECIES_HONEDGE 679 +#define SPECIES_DOUBLADE 680 +#define SPECIES_AEGISLASH SPECIES_AEGISLASH_SHIELD +#define SPECIES_AEGISLASH_SHIELD 681 +#define SPECIES_SPRITZEE 682 +#define SPECIES_AROMATISSE 683 +#define SPECIES_SWIRLIX 684 +#define SPECIES_SLURPUFF 685 +#define SPECIES_INKAY 686 +#define SPECIES_MALAMAR 687 +#define SPECIES_BINACLE 688 +#define SPECIES_BARBARACLE 689 +#define SPECIES_SKRELP 690 +#define SPECIES_DRAGALGE 691 +#define SPECIES_CLAUNCHER 692 +#define SPECIES_CLAWITZER 693 +#define SPECIES_HELIOPTILE 694 +#define SPECIES_HELIOLISK 695 +#define SPECIES_TYRUNT 696 +#define SPECIES_TYRANTRUM 697 +#define SPECIES_AMAURA 698 +#define SPECIES_AURORUS 699 +#define SPECIES_SYLVEON 700 +#define SPECIES_HAWLUCHA 701 +#define SPECIES_DEDENNE 702 +#define SPECIES_CARBINK 703 +#define SPECIES_GOOMY 704 +#define SPECIES_SLIGGOO 705 +#define SPECIES_GOODRA 706 +#define SPECIES_KLEFKI 707 +#define SPECIES_PHANTUMP 708 +#define SPECIES_TREVENANT 709 +#define SPECIES_PUMPKABOO SPECIES_PUMPKABOO_AVERAGE +#define SPECIES_PUMPKABOO_AVERAGE 710 +#define SPECIES_GOURGEIST SPECIES_GOURGEIST_AVERAGE +#define SPECIES_GOURGEIST_AVERAGE 711 +#define SPECIES_BERGMITE 712 +#define SPECIES_AVALUGG 713 +#define SPECIES_NOIBAT 714 +#define SPECIES_NOIVERN 715 +#define SPECIES_XERNEAS SPECIES_XERNEAS_NEUTRAL +#define SPECIES_XERNEAS_NEUTRAL 716 +#define SPECIES_YVELTAL 717 +#define SPECIES_ZYGARDE SPECIES_ZYGARDE_50 +#define SPECIES_ZYGARDE_50 SPECIES_ZYGARDE_50_AURA_BREAK +#define SPECIES_ZYGARDE_50_AURA_BREAK 718 +#define SPECIES_DIANCIE 719 +#define SPECIES_HOOPA SPECIES_HOOPA_CONFINED +#define SPECIES_HOOPA_CONFINED 720 +#define SPECIES_VOLCANION 721 +#define SPECIES_ROWLET 722 +#define SPECIES_DARTRIX 723 +#define SPECIES_DECIDUEYE 724 +#define SPECIES_LITTEN 725 +#define SPECIES_TORRACAT 726 +#define SPECIES_INCINEROAR 727 +#define SPECIES_POPPLIO 728 +#define SPECIES_BRIONNE 729 +#define SPECIES_PRIMARINA 730 +#define SPECIES_PIKIPEK 731 +#define SPECIES_TRUMBEAK 732 +#define SPECIES_TOUCANNON 733 +#define SPECIES_YUNGOOS 734 +#define SPECIES_GUMSHOOS 735 +#define SPECIES_GRUBBIN 736 +#define SPECIES_CHARJABUG 737 +#define SPECIES_VIKAVOLT 738 +#define SPECIES_CRABRAWLER 739 +#define SPECIES_CRABOMINABLE 740 +#define SPECIES_ORICORIO SPECIES_ORICORIO_BAILE +#define SPECIES_ORICORIO_BAILE 741 +#define SPECIES_CUTIEFLY 742 +#define SPECIES_RIBOMBEE 743 +#define SPECIES_ROCKRUFF 744 +#define SPECIES_LYCANROC SPECIES_LYCANROC_MIDDAY +#define SPECIES_LYCANROC_MIDDAY 745 +#define SPECIES_WISHIWASHI SPECIES_WISHIWASHI_SOLO +#define SPECIES_WISHIWASHI_SOLO 746 +#define SPECIES_MAREANIE 747 +#define SPECIES_TOXAPEX 748 +#define SPECIES_MUDBRAY 749 +#define SPECIES_MUDSDALE 750 +#define SPECIES_DEWPIDER 751 +#define SPECIES_ARAQUANID 752 +#define SPECIES_FOMANTIS 753 +#define SPECIES_LURANTIS 754 +#define SPECIES_MORELULL 755 +#define SPECIES_SHIINOTIC 756 +#define SPECIES_SALANDIT 757 +#define SPECIES_SALAZZLE 758 +#define SPECIES_STUFFUL 759 +#define SPECIES_BEWEAR 760 +#define SPECIES_BOUNSWEET 761 +#define SPECIES_STEENEE 762 +#define SPECIES_TSAREENA 763 +#define SPECIES_COMFEY 764 +#define SPECIES_ORANGURU 765 +#define SPECIES_PASSIMIAN 766 +#define SPECIES_WIMPOD 767 +#define SPECIES_GOLISOPOD 768 +#define SPECIES_SANDYGAST 769 +#define SPECIES_PALOSSAND 770 +#define SPECIES_PYUKUMUKU 771 +#define SPECIES_TYPE_NULL 772 +#define SPECIES_SILVALLY SPECIES_SILVALLY_NORMAL +#define SPECIES_SILVALLY_NORMAL 773 +#define SPECIES_MINIOR SPECIES_MINIOR_METEOR +#define SPECIES_MINIOR_METEOR SPECIES_MINIOR_METEOR_RED +#define SPECIES_MINIOR_METEOR_RED 774 +#define SPECIES_KOMALA 775 +#define SPECIES_TURTONATOR 776 +#define SPECIES_TOGEDEMARU 777 +#define SPECIES_MIMIKYU SPECIES_MIMIKYU_DISGUISED +#define SPECIES_MIMIKYU_DISGUISED 778 +#define SPECIES_BRUXISH 779 +#define SPECIES_DRAMPA 780 +#define SPECIES_DHELMISE 781 +#define SPECIES_JANGMO_O 782 +#define SPECIES_HAKAMO_O 783 +#define SPECIES_KOMMO_O 784 +#define SPECIES_TAPU_KOKO 785 +#define SPECIES_TAPU_LELE 786 +#define SPECIES_TAPU_BULU 787 +#define SPECIES_TAPU_FINI 788 +#define SPECIES_COSMOG 789 +#define SPECIES_COSMOEM 790 +#define SPECIES_SOLGALEO 791 +#define SPECIES_LUNALA 792 +#define SPECIES_NIHILEGO 793 +#define SPECIES_BUZZWOLE 794 +#define SPECIES_PHEROMOSA 795 +#define SPECIES_XURKITREE 796 +#define SPECIES_CELESTEELA 797 +#define SPECIES_KARTANA 798 +#define SPECIES_GUZZLORD 799 +#define SPECIES_NECROZMA 800 +#define SPECIES_MAGEARNA 801 +#define SPECIES_MARSHADOW 802 +#define SPECIES_POIPOLE 803 +#define SPECIES_NAGANADEL 804 +#define SPECIES_STAKATAKA 805 +#define SPECIES_BLACEPHALON 806 +#define SPECIES_ZERAORA 807 +#define SPECIES_MELTAN 808 +#define SPECIES_MELMETAL 809 +#define SPECIES_GROOKEY 810 +#define SPECIES_THWACKEY 811 +#define SPECIES_RILLABOOM 812 +#define SPECIES_SCORBUNNY 813 +#define SPECIES_RABOOT 814 +#define SPECIES_CINDERACE 815 +#define SPECIES_SOBBLE 816 +#define SPECIES_DRIZZILE 817 +#define SPECIES_INTELEON 818 +#define SPECIES_SKWOVET 819 +#define SPECIES_GREEDENT 820 +#define SPECIES_ROOKIDEE 821 +#define SPECIES_CORVISQUIRE 822 +#define SPECIES_CORVIKNIGHT 823 +#define SPECIES_BLIPBUG 824 +#define SPECIES_DOTTLER 825 +#define SPECIES_ORBEETLE 826 +#define SPECIES_NICKIT 827 +#define SPECIES_THIEVUL 828 +#define SPECIES_GOSSIFLEUR 829 +#define SPECIES_ELDEGOSS 830 +#define SPECIES_WOOLOO 831 +#define SPECIES_DUBWOOL 832 +#define SPECIES_CHEWTLE 833 +#define SPECIES_DREDNAW 834 +#define SPECIES_YAMPER 835 +#define SPECIES_BOLTUND 836 +#define SPECIES_ROLYCOLY 837 +#define SPECIES_CARKOL 838 +#define SPECIES_COALOSSAL 839 +#define SPECIES_APPLIN 840 +#define SPECIES_FLAPPLE 841 +#define SPECIES_APPLETUN 842 +#define SPECIES_SILICOBRA 843 +#define SPECIES_SANDACONDA 844 +#define SPECIES_CRAMORANT 845 +#define SPECIES_ARROKUDA 846 +#define SPECIES_BARRASKEWDA 847 +#define SPECIES_TOXEL 848 +#define SPECIES_TOXTRICITY SPECIES_TOXTRICITY_AMPED +#define SPECIES_TOXTRICITY_AMPED 849 +#define SPECIES_SIZZLIPEDE 850 +#define SPECIES_CENTISKORCH 851 +#define SPECIES_CLOBBOPUS 852 +#define SPECIES_GRAPPLOCT 853 +#define SPECIES_SINISTEA SPECIES_SINISTEA_PHONY +#define SPECIES_SINISTEA_PHONY 854 +#define SPECIES_POLTEAGEIST SPECIES_POLTEAGEIST_PHONY +#define SPECIES_POLTEAGEIST_PHONY 855 +#define SPECIES_HATENNA 856 +#define SPECIES_HATTREM 857 +#define SPECIES_HATTERENE 858 +#define SPECIES_IMPIDIMP 859 +#define SPECIES_MORGREM 860 +#define SPECIES_GRIMMSNARL 861 +#define SPECIES_OBSTAGOON 862 +#define SPECIES_PERRSERKER 863 +#define SPECIES_CURSOLA 864 +#define SPECIES_SIRFETCHD 865 +#define SPECIES_MR_RIME 866 +#define SPECIES_RUNERIGUS 867 +#define SPECIES_MILCERY 868 +#define SPECIES_ALCREMIE SPECIES_ALCREMIE_STRAWBERRY +#define SPECIES_ALCREMIE_STRAWBERRY SPECIES_ALCREMIE_STRAWBERRY_VANILLA_CREAM +#define SPECIES_ALCREMIE_VANILLA_CREAM SPECIES_ALCREMIE_STRAWBERRY_VANILLA_CREAM +#define SPECIES_ALCREMIE_STRAWBERRY_VANILLA_CREAM 869 +#define SPECIES_FALINKS 870 +#define SPECIES_PINCURCHIN 871 +#define SPECIES_SNOM 872 +#define SPECIES_FROSMOTH 873 +#define SPECIES_STONJOURNER 874 +#define SPECIES_EISCUE SPECIES_EISCUE_ICE_FACE +#define SPECIES_EISCUE_ICE_FACE 875 +#define SPECIES_INDEEDEE SPECIES_INDEEDEE_MALE +#define SPECIES_INDEEDEE_MALE 876 +#define SPECIES_MORPEKO SPECIES_MORPEKO_FULL_BELLY +#define SPECIES_MORPEKO_FULL_BELLY 877 +#define SPECIES_CUFANT 878 +#define SPECIES_COPPERAJAH 879 +#define SPECIES_DRACOZOLT 880 +#define SPECIES_ARCTOZOLT 881 +#define SPECIES_DRACOVISH 882 +#define SPECIES_ARCTOVISH 883 +#define SPECIES_DURALUDON 884 +#define SPECIES_DREEPY 885 +#define SPECIES_DRAKLOAK 886 +#define SPECIES_DRAGAPULT 887 +#define SPECIES_ZACIAN SPECIES_ZACIAN_HERO_OF_MANY_BATTLES +#define SPECIES_ZACIAN_HERO_OF_MANY_BATTLES 888 +#define SPECIES_ZAMAZENTA SPECIES_ZAMAZENTA_HERO_OF_MANY_BATTLES +#define SPECIES_ZAMAZENTA_HERO_OF_MANY_BATTLES 889 +#define SPECIES_ETERNATUS 890 +#define SPECIES_KUBFU 891 +#define SPECIES_URSHIFU SPECIES_URSHIFU_SINGLE_STRIKE_STYLE +#define SPECIES_URSHIFU_SINGLE_STRIKE_STYLE 892 +#define SPECIES_ZARUDE 893 +#define SPECIES_REGIELEKI 894 +#define SPECIES_REGIDRAGO 895 +#define SPECIES_GLASTRIER 896 +#define SPECIES_SPECTRIER 897 +#define SPECIES_CALYREX 898 +#define SPECIES_WYRDEER 899 +#define SPECIES_KLEAVOR 900 +#define SPECIES_URSALUNA 901 +#define SPECIES_BASCULEGION SPECIES_BASCULEGION_MALE +#define SPECIES_BASCULEGION_MALE 902 +#define SPECIES_SNEASLER 903 +#define SPECIES_OVERQWIL 904 +#define SPECIES_ENAMORUS SPECIES_ENAMORUS_INCARNATE +#define SPECIES_ENAMORUS_INCARNATE 905 #define FORMS_START SPECIES_ENAMORUS_INCARNATE // Megas -#define SPECIES_VENUSAUR_MEGA FORMS_START + 1 -#define SPECIES_CHARIZARD_MEGA_X FORMS_START + 2 -#define SPECIES_CHARIZARD_MEGA_Y FORMS_START + 3 -#define SPECIES_BLASTOISE_MEGA FORMS_START + 4 -#define SPECIES_BEEDRILL_MEGA FORMS_START + 5 -#define SPECIES_PIDGEOT_MEGA FORMS_START + 6 -#define SPECIES_ALAKAZAM_MEGA FORMS_START + 7 -#define SPECIES_SLOWBRO_MEGA FORMS_START + 8 -#define SPECIES_GENGAR_MEGA FORMS_START + 9 -#define SPECIES_KANGASKHAN_MEGA FORMS_START + 10 -#define SPECIES_PINSIR_MEGA FORMS_START + 11 -#define SPECIES_GYARADOS_MEGA FORMS_START + 12 -#define SPECIES_AERODACTYL_MEGA FORMS_START + 13 -#define SPECIES_MEWTWO_MEGA_X FORMS_START + 14 -#define SPECIES_MEWTWO_MEGA_Y FORMS_START + 15 -#define SPECIES_AMPHAROS_MEGA FORMS_START + 16 -#define SPECIES_STEELIX_MEGA FORMS_START + 17 -#define SPECIES_SCIZOR_MEGA FORMS_START + 18 -#define SPECIES_HERACROSS_MEGA FORMS_START + 19 -#define SPECIES_HOUNDOOM_MEGA FORMS_START + 20 -#define SPECIES_TYRANITAR_MEGA FORMS_START + 21 -#define SPECIES_SCEPTILE_MEGA FORMS_START + 22 -#define SPECIES_BLAZIKEN_MEGA FORMS_START + 23 -#define SPECIES_SWAMPERT_MEGA FORMS_START + 24 -#define SPECIES_GARDEVOIR_MEGA FORMS_START + 25 -#define SPECIES_SABLEYE_MEGA FORMS_START + 26 -#define SPECIES_MAWILE_MEGA FORMS_START + 27 -#define SPECIES_AGGRON_MEGA FORMS_START + 28 -#define SPECIES_MEDICHAM_MEGA FORMS_START + 29 -#define SPECIES_MANECTRIC_MEGA FORMS_START + 30 -#define SPECIES_SHARPEDO_MEGA FORMS_START + 31 -#define SPECIES_CAMERUPT_MEGA FORMS_START + 32 -#define SPECIES_ALTARIA_MEGA FORMS_START + 33 -#define SPECIES_BANETTE_MEGA FORMS_START + 34 -#define SPECIES_ABSOL_MEGA FORMS_START + 35 -#define SPECIES_GLALIE_MEGA FORMS_START + 36 -#define SPECIES_SALAMENCE_MEGA FORMS_START + 37 -#define SPECIES_METAGROSS_MEGA FORMS_START + 38 -#define SPECIES_LATIAS_MEGA FORMS_START + 39 -#define SPECIES_LATIOS_MEGA FORMS_START + 40 -#define SPECIES_LOPUNNY_MEGA FORMS_START + 41 -#define SPECIES_GARCHOMP_MEGA FORMS_START + 42 -#define SPECIES_LUCARIO_MEGA FORMS_START + 43 -#define SPECIES_ABOMASNOW_MEGA FORMS_START + 44 -#define SPECIES_GALLADE_MEGA FORMS_START + 45 -#define SPECIES_AUDINO_MEGA FORMS_START + 46 -#define SPECIES_DIANCIE_MEGA FORMS_START + 47 +#define SPECIES_VENUSAUR_MEGA FORMS_START + 1 +#define SPECIES_CHARIZARD_MEGA_X FORMS_START + 2 +#define SPECIES_CHARIZARD_MEGA_Y FORMS_START + 3 +#define SPECIES_BLASTOISE_MEGA FORMS_START + 4 +#define SPECIES_BEEDRILL_MEGA FORMS_START + 5 +#define SPECIES_PIDGEOT_MEGA FORMS_START + 6 +#define SPECIES_ALAKAZAM_MEGA FORMS_START + 7 +#define SPECIES_SLOWBRO_MEGA FORMS_START + 8 +#define SPECIES_GENGAR_MEGA FORMS_START + 9 +#define SPECIES_KANGASKHAN_MEGA FORMS_START + 10 +#define SPECIES_PINSIR_MEGA FORMS_START + 11 +#define SPECIES_GYARADOS_MEGA FORMS_START + 12 +#define SPECIES_AERODACTYL_MEGA FORMS_START + 13 +#define SPECIES_MEWTWO_MEGA_X FORMS_START + 14 +#define SPECIES_MEWTWO_MEGA_Y FORMS_START + 15 +#define SPECIES_AMPHAROS_MEGA FORMS_START + 16 +#define SPECIES_STEELIX_MEGA FORMS_START + 17 +#define SPECIES_SCIZOR_MEGA FORMS_START + 18 +#define SPECIES_HERACROSS_MEGA FORMS_START + 19 +#define SPECIES_HOUNDOOM_MEGA FORMS_START + 20 +#define SPECIES_TYRANITAR_MEGA FORMS_START + 21 +#define SPECIES_SCEPTILE_MEGA FORMS_START + 22 +#define SPECIES_BLAZIKEN_MEGA FORMS_START + 23 +#define SPECIES_SWAMPERT_MEGA FORMS_START + 24 +#define SPECIES_GARDEVOIR_MEGA FORMS_START + 25 +#define SPECIES_SABLEYE_MEGA FORMS_START + 26 +#define SPECIES_MAWILE_MEGA FORMS_START + 27 +#define SPECIES_AGGRON_MEGA FORMS_START + 28 +#define SPECIES_MEDICHAM_MEGA FORMS_START + 29 +#define SPECIES_MANECTRIC_MEGA FORMS_START + 30 +#define SPECIES_SHARPEDO_MEGA FORMS_START + 31 +#define SPECIES_CAMERUPT_MEGA FORMS_START + 32 +#define SPECIES_ALTARIA_MEGA FORMS_START + 33 +#define SPECIES_BANETTE_MEGA FORMS_START + 34 +#define SPECIES_ABSOL_MEGA FORMS_START + 35 +#define SPECIES_GLALIE_MEGA FORMS_START + 36 +#define SPECIES_SALAMENCE_MEGA FORMS_START + 37 +#define SPECIES_METAGROSS_MEGA FORMS_START + 38 +#define SPECIES_LATIAS_MEGA FORMS_START + 39 +#define SPECIES_LATIOS_MEGA FORMS_START + 40 +#define SPECIES_LOPUNNY_MEGA FORMS_START + 41 +#define SPECIES_GARCHOMP_MEGA FORMS_START + 42 +#define SPECIES_LUCARIO_MEGA FORMS_START + 43 +#define SPECIES_ABOMASNOW_MEGA FORMS_START + 44 +#define SPECIES_GALLADE_MEGA FORMS_START + 45 +#define SPECIES_AUDINO_MEGA FORMS_START + 46 +#define SPECIES_DIANCIE_MEGA FORMS_START + 47 // Special Mega + Primals -#define SPECIES_RAYQUAZA_MEGA FORMS_START + 48 -#define SPECIES_KYOGRE_PRIMAL FORMS_START + 49 -#define SPECIES_GROUDON_PRIMAL FORMS_START + 50 +#define SPECIES_RAYQUAZA_MEGA FORMS_START + 48 +#define SPECIES_KYOGRE_PRIMAL FORMS_START + 49 +#define SPECIES_GROUDON_PRIMAL FORMS_START + 50 // Alolan Forms -#define SPECIES_RATTATA_ALOLAN FORMS_START + 51 -#define SPECIES_RATICATE_ALOLAN FORMS_START + 52 -#define SPECIES_RAICHU_ALOLAN FORMS_START + 53 -#define SPECIES_SANDSHREW_ALOLAN FORMS_START + 54 -#define SPECIES_SANDSLASH_ALOLAN FORMS_START + 55 -#define SPECIES_VULPIX_ALOLAN FORMS_START + 56 -#define SPECIES_NINETALES_ALOLAN FORMS_START + 57 -#define SPECIES_DIGLETT_ALOLAN FORMS_START + 58 -#define SPECIES_DUGTRIO_ALOLAN FORMS_START + 59 -#define SPECIES_MEOWTH_ALOLAN FORMS_START + 60 -#define SPECIES_PERSIAN_ALOLAN FORMS_START + 61 -#define SPECIES_GEODUDE_ALOLAN FORMS_START + 62 -#define SPECIES_GRAVELER_ALOLAN FORMS_START + 63 -#define SPECIES_GOLEM_ALOLAN FORMS_START + 64 -#define SPECIES_GRIMER_ALOLAN FORMS_START + 65 -#define SPECIES_MUK_ALOLAN FORMS_START + 66 -#define SPECIES_EXEGGUTOR_ALOLAN FORMS_START + 67 -#define SPECIES_MAROWAK_ALOLAN FORMS_START + 68 +#define SPECIES_RATTATA_ALOLAN FORMS_START + 51 +#define SPECIES_RATICATE_ALOLAN FORMS_START + 52 +#define SPECIES_RAICHU_ALOLAN FORMS_START + 53 +#define SPECIES_SANDSHREW_ALOLAN FORMS_START + 54 +#define SPECIES_SANDSLASH_ALOLAN FORMS_START + 55 +#define SPECIES_VULPIX_ALOLAN FORMS_START + 56 +#define SPECIES_NINETALES_ALOLAN FORMS_START + 57 +#define SPECIES_DIGLETT_ALOLAN FORMS_START + 58 +#define SPECIES_DUGTRIO_ALOLAN FORMS_START + 59 +#define SPECIES_MEOWTH_ALOLAN FORMS_START + 60 +#define SPECIES_PERSIAN_ALOLAN FORMS_START + 61 +#define SPECIES_GEODUDE_ALOLAN FORMS_START + 62 +#define SPECIES_GRAVELER_ALOLAN FORMS_START + 63 +#define SPECIES_GOLEM_ALOLAN FORMS_START + 64 +#define SPECIES_GRIMER_ALOLAN FORMS_START + 65 +#define SPECIES_MUK_ALOLAN FORMS_START + 66 +#define SPECIES_EXEGGUTOR_ALOLAN FORMS_START + 67 +#define SPECIES_MAROWAK_ALOLAN FORMS_START + 68 // Galarian Forms -#define SPECIES_MEOWTH_GALARIAN FORMS_START + 69 -#define SPECIES_PONYTA_GALARIAN FORMS_START + 70 -#define SPECIES_RAPIDASH_GALARIAN FORMS_START + 71 -#define SPECIES_SLOWPOKE_GALARIAN FORMS_START + 72 -#define SPECIES_SLOWBRO_GALARIAN FORMS_START + 73 -#define SPECIES_FARFETCHD_GALARIAN FORMS_START + 74 -#define SPECIES_WEEZING_GALARIAN FORMS_START + 75 -#define SPECIES_MR_MIME_GALARIAN FORMS_START + 76 -#define SPECIES_ARTICUNO_GALARIAN FORMS_START + 77 -#define SPECIES_ZAPDOS_GALARIAN FORMS_START + 78 -#define SPECIES_MOLTRES_GALARIAN FORMS_START + 79 -#define SPECIES_SLOWKING_GALARIAN FORMS_START + 80 -#define SPECIES_CORSOLA_GALARIAN FORMS_START + 81 -#define SPECIES_ZIGZAGOON_GALARIAN FORMS_START + 82 -#define SPECIES_LINOONE_GALARIAN FORMS_START + 83 -#define SPECIES_DARUMAKA_GALARIAN FORMS_START + 84 -#define SPECIES_DARMANITAN_GALARIAN SPECIES_DARMANITAN_GALARIAN_STANDARD_MODE -#define SPECIES_DARMANITAN_GALARIAN_STANDARD_MODE FORMS_START + 85 -#define SPECIES_YAMASK_GALARIAN FORMS_START + 86 -#define SPECIES_STUNFISK_GALARIAN FORMS_START + 87 +#define SPECIES_MEOWTH_GALARIAN FORMS_START + 69 +#define SPECIES_PONYTA_GALARIAN FORMS_START + 70 +#define SPECIES_RAPIDASH_GALARIAN FORMS_START + 71 +#define SPECIES_SLOWPOKE_GALARIAN FORMS_START + 72 +#define SPECIES_SLOWBRO_GALARIAN FORMS_START + 73 +#define SPECIES_FARFETCHD_GALARIAN FORMS_START + 74 +#define SPECIES_WEEZING_GALARIAN FORMS_START + 75 +#define SPECIES_MR_MIME_GALARIAN FORMS_START + 76 +#define SPECIES_ARTICUNO_GALARIAN FORMS_START + 77 +#define SPECIES_ZAPDOS_GALARIAN FORMS_START + 78 +#define SPECIES_MOLTRES_GALARIAN FORMS_START + 79 +#define SPECIES_SLOWKING_GALARIAN FORMS_START + 80 +#define SPECIES_CORSOLA_GALARIAN FORMS_START + 81 +#define SPECIES_ZIGZAGOON_GALARIAN FORMS_START + 82 +#define SPECIES_LINOONE_GALARIAN FORMS_START + 83 +#define SPECIES_DARUMAKA_GALARIAN FORMS_START + 84 +#define SPECIES_DARMANITAN_GALARIAN SPECIES_DARMANITAN_GALARIAN_STANDARD_MODE +#define SPECIES_DARMANITAN_GALARIAN_STANDARD_MODE FORMS_START + 85 +#define SPECIES_YAMASK_GALARIAN FORMS_START + 86 +#define SPECIES_STUNFISK_GALARIAN FORMS_START + 87 //Hisuian Forms -#define SPECIES_GROWLITHE_HISUIAN FORMS_START + 88 -#define SPECIES_ARCANINE_HISUIAN FORMS_START + 89 -#define SPECIES_VOLTORB_HISUIAN FORMS_START + 90 -#define SPECIES_ELECTRODE_HISUIAN FORMS_START + 91 -#define SPECIES_TYPHLOSION_HISUIAN FORMS_START + 92 -#define SPECIES_QWILFISH_HISUIAN FORMS_START + 93 -#define SPECIES_SNEASEL_HISUIAN FORMS_START + 94 -#define SPECIES_SAMUROTT_HISUIAN FORMS_START + 95 -#define SPECIES_LILLIGANT_HISUIAN FORMS_START + 96 -#define SPECIES_ZORUA_HISUIAN FORMS_START + 97 -#define SPECIES_ZOROARK_HISUIAN FORMS_START + 98 -#define SPECIES_BRAVIARY_HISUIAN FORMS_START + 99 -#define SPECIES_SLIGGOO_HISUIAN FORMS_START + 100 -#define SPECIES_GOODRA_HISUIAN FORMS_START + 101 -#define SPECIES_AVALUGG_HISUIAN FORMS_START + 102 -#define SPECIES_DECIDUEYE_HISUIAN FORMS_START + 103 +#define SPECIES_GROWLITHE_HISUIAN FORMS_START + 88 +#define SPECIES_ARCANINE_HISUIAN FORMS_START + 89 +#define SPECIES_VOLTORB_HISUIAN FORMS_START + 90 +#define SPECIES_ELECTRODE_HISUIAN FORMS_START + 91 +#define SPECIES_TYPHLOSION_HISUIAN FORMS_START + 92 +#define SPECIES_QWILFISH_HISUIAN FORMS_START + 93 +#define SPECIES_SNEASEL_HISUIAN FORMS_START + 94 +#define SPECIES_SAMUROTT_HISUIAN FORMS_START + 95 +#define SPECIES_LILLIGANT_HISUIAN FORMS_START + 96 +#define SPECIES_ZORUA_HISUIAN FORMS_START + 97 +#define SPECIES_ZOROARK_HISUIAN FORMS_START + 98 +#define SPECIES_BRAVIARY_HISUIAN FORMS_START + 99 +#define SPECIES_SLIGGOO_HISUIAN FORMS_START + 100 +#define SPECIES_GOODRA_HISUIAN FORMS_START + 101 +#define SPECIES_AVALUGG_HISUIAN FORMS_START + 102 +#define SPECIES_DECIDUEYE_HISUIAN FORMS_START + 103 // Misc Forms // Cosplay Pikachu -#define SPECIES_PIKACHU_COSPLAY FORMS_START + 104 -#define SPECIES_PIKACHU_ROCK_STAR FORMS_START + 105 -#define SPECIES_PIKACHU_BELLE FORMS_START + 106 -#define SPECIES_PIKACHU_POP_STAR FORMS_START + 107 -#define SPECIES_PIKACHU_PH_D FORMS_START + 108 -#define SPECIES_PIKACHU_LIBRE FORMS_START + 109 +#define SPECIES_PIKACHU_COSPLAY FORMS_START + 104 +#define SPECIES_PIKACHU_ROCK_STAR FORMS_START + 105 +#define SPECIES_PIKACHU_BELLE FORMS_START + 106 +#define SPECIES_PIKACHU_POP_STAR FORMS_START + 107 +#define SPECIES_PIKACHU_PH_D FORMS_START + 108 +#define SPECIES_PIKACHU_LIBRE FORMS_START + 109 // Cap Pikachu -#define SPECIES_PIKACHU_ORIGINAL_CAP FORMS_START + 110 -#define SPECIES_PIKACHU_HOENN_CAP FORMS_START + 111 -#define SPECIES_PIKACHU_SINNOH_CAP FORMS_START + 112 -#define SPECIES_PIKACHU_UNOVA_CAP FORMS_START + 113 -#define SPECIES_PIKACHU_KALOS_CAP FORMS_START + 114 -#define SPECIES_PIKACHU_ALOLA_CAP FORMS_START + 115 -#define SPECIES_PIKACHU_PARTNER_CAP FORMS_START + 116 -#define SPECIES_PIKACHU_WORLD_CAP FORMS_START + 117 +#define SPECIES_PIKACHU_ORIGINAL_CAP FORMS_START + 110 +#define SPECIES_PIKACHU_HOENN_CAP FORMS_START + 111 +#define SPECIES_PIKACHU_SINNOH_CAP FORMS_START + 112 +#define SPECIES_PIKACHU_UNOVA_CAP FORMS_START + 113 +#define SPECIES_PIKACHU_KALOS_CAP FORMS_START + 114 +#define SPECIES_PIKACHU_ALOLA_CAP FORMS_START + 115 +#define SPECIES_PIKACHU_PARTNER_CAP FORMS_START + 116 +#define SPECIES_PIKACHU_WORLD_CAP FORMS_START + 117 // Pichu -#define SPECIES_PICHU_SPIKY_EARED FORMS_START + 118 +#define SPECIES_PICHU_SPIKY_EARED FORMS_START + 118 // Unown -#define SPECIES_UNOWN_B FORMS_START + 119 -#define SPECIES_UNOWN_C FORMS_START + 120 -#define SPECIES_UNOWN_D FORMS_START + 121 -#define SPECIES_UNOWN_E FORMS_START + 122 -#define SPECIES_UNOWN_F FORMS_START + 123 -#define SPECIES_UNOWN_G FORMS_START + 124 -#define SPECIES_UNOWN_H FORMS_START + 125 -#define SPECIES_UNOWN_I FORMS_START + 126 -#define SPECIES_UNOWN_J FORMS_START + 127 -#define SPECIES_UNOWN_K FORMS_START + 128 -#define SPECIES_UNOWN_L FORMS_START + 129 -#define SPECIES_UNOWN_M FORMS_START + 130 -#define SPECIES_UNOWN_N FORMS_START + 131 -#define SPECIES_UNOWN_O FORMS_START + 132 -#define SPECIES_UNOWN_P FORMS_START + 133 -#define SPECIES_UNOWN_Q FORMS_START + 134 -#define SPECIES_UNOWN_R FORMS_START + 135 -#define SPECIES_UNOWN_S FORMS_START + 136 -#define SPECIES_UNOWN_T FORMS_START + 137 -#define SPECIES_UNOWN_U FORMS_START + 138 -#define SPECIES_UNOWN_V FORMS_START + 139 -#define SPECIES_UNOWN_W FORMS_START + 140 -#define SPECIES_UNOWN_X FORMS_START + 141 -#define SPECIES_UNOWN_Y FORMS_START + 142 -#define SPECIES_UNOWN_Z FORMS_START + 143 -#define SPECIES_UNOWN_EMARK FORMS_START + 144 -#define SPECIES_UNOWN_QMARK FORMS_START + 145 +#define SPECIES_UNOWN_B FORMS_START + 119 +#define SPECIES_UNOWN_C FORMS_START + 120 +#define SPECIES_UNOWN_D FORMS_START + 121 +#define SPECIES_UNOWN_E FORMS_START + 122 +#define SPECIES_UNOWN_F FORMS_START + 123 +#define SPECIES_UNOWN_G FORMS_START + 124 +#define SPECIES_UNOWN_H FORMS_START + 125 +#define SPECIES_UNOWN_I FORMS_START + 126 +#define SPECIES_UNOWN_J FORMS_START + 127 +#define SPECIES_UNOWN_K FORMS_START + 128 +#define SPECIES_UNOWN_L FORMS_START + 129 +#define SPECIES_UNOWN_M FORMS_START + 130 +#define SPECIES_UNOWN_N FORMS_START + 131 +#define SPECIES_UNOWN_O FORMS_START + 132 +#define SPECIES_UNOWN_P FORMS_START + 133 +#define SPECIES_UNOWN_Q FORMS_START + 134 +#define SPECIES_UNOWN_R FORMS_START + 135 +#define SPECIES_UNOWN_S FORMS_START + 136 +#define SPECIES_UNOWN_T FORMS_START + 137 +#define SPECIES_UNOWN_U FORMS_START + 138 +#define SPECIES_UNOWN_V FORMS_START + 139 +#define SPECIES_UNOWN_W FORMS_START + 140 +#define SPECIES_UNOWN_X FORMS_START + 141 +#define SPECIES_UNOWN_Y FORMS_START + 142 +#define SPECIES_UNOWN_Z FORMS_START + 143 +#define SPECIES_UNOWN_EMARK FORMS_START + 144 +#define SPECIES_UNOWN_QMARK FORMS_START + 145 // Castform -#define SPECIES_CASTFORM_SUNNY FORMS_START + 146 -#define SPECIES_CASTFORM_RAINY FORMS_START + 147 -#define SPECIES_CASTFORM_SNOWY FORMS_START + 148 +#define SPECIES_CASTFORM_SUNNY FORMS_START + 146 +#define SPECIES_CASTFORM_RAINY FORMS_START + 147 +#define SPECIES_CASTFORM_SNOWY FORMS_START + 148 // Deoxys -#define SPECIES_DEOXYS_ATTACK FORMS_START + 149 -#define SPECIES_DEOXYS_DEFENSE FORMS_START + 150 -#define SPECIES_DEOXYS_SPEED FORMS_START + 151 +#define SPECIES_DEOXYS_ATTACK FORMS_START + 149 +#define SPECIES_DEOXYS_DEFENSE FORMS_START + 150 +#define SPECIES_DEOXYS_SPEED FORMS_START + 151 // Burmy -#define SPECIES_BURMY_SANDY_CLOAK FORMS_START + 152 -#define SPECIES_BURMY_TRASH_CLOAK FORMS_START + 153 +#define SPECIES_BURMY_SANDY_CLOAK FORMS_START + 152 +#define SPECIES_BURMY_TRASH_CLOAK FORMS_START + 153 // Wormadam -#define SPECIES_WORMADAM_SANDY_CLOAK FORMS_START + 154 -#define SPECIES_WORMADAM_TRASH_CLOAK FORMS_START + 155 +#define SPECIES_WORMADAM_SANDY_CLOAK FORMS_START + 154 +#define SPECIES_WORMADAM_TRASH_CLOAK FORMS_START + 155 // Cherrim -#define SPECIES_CHERRIM_SUNSHINE FORMS_START + 156 +#define SPECIES_CHERRIM_SUNSHINE FORMS_START + 156 // Shellos -#define SPECIES_SHELLOS_EAST_SEA FORMS_START + 157 +#define SPECIES_SHELLOS_EAST_SEA FORMS_START + 157 // Gastrodon -#define SPECIES_GASTRODON_EAST_SEA FORMS_START + 158 +#define SPECIES_GASTRODON_EAST_SEA FORMS_START + 158 // Rotom -#define SPECIES_ROTOM_HEAT FORMS_START + 159 -#define SPECIES_ROTOM_WASH FORMS_START + 160 -#define SPECIES_ROTOM_FROST FORMS_START + 161 -#define SPECIES_ROTOM_FAN FORMS_START + 162 -#define SPECIES_ROTOM_MOW FORMS_START + 163 +#define SPECIES_ROTOM_HEAT FORMS_START + 159 +#define SPECIES_ROTOM_WASH FORMS_START + 160 +#define SPECIES_ROTOM_FROST FORMS_START + 161 +#define SPECIES_ROTOM_FAN FORMS_START + 162 +#define SPECIES_ROTOM_MOW FORMS_START + 163 // Origin Forme -#define SPECIES_DIALGA_ORIGIN FORMS_START + 164 -#define SPECIES_PALKIA_ORIGIN FORMS_START + 165 -#define SPECIES_GIRATINA_ORIGIN FORMS_START + 166 +#define SPECIES_DIALGA_ORIGIN FORMS_START + 164 +#define SPECIES_PALKIA_ORIGIN FORMS_START + 165 +#define SPECIES_GIRATINA_ORIGIN FORMS_START + 166 // Shaymin -#define SPECIES_SHAYMIN_SKY FORMS_START + 167 +#define SPECIES_SHAYMIN_SKY FORMS_START + 167 // Arceus -#define SPECIES_ARCEUS_FIGHTING FORMS_START + 168 -#define SPECIES_ARCEUS_FLYING FORMS_START + 169 -#define SPECIES_ARCEUS_POISON FORMS_START + 170 -#define SPECIES_ARCEUS_GROUND FORMS_START + 171 -#define SPECIES_ARCEUS_ROCK FORMS_START + 172 -#define SPECIES_ARCEUS_BUG FORMS_START + 173 -#define SPECIES_ARCEUS_GHOST FORMS_START + 174 -#define SPECIES_ARCEUS_STEEL FORMS_START + 175 -#define SPECIES_ARCEUS_FIRE FORMS_START + 176 -#define SPECIES_ARCEUS_WATER FORMS_START + 177 -#define SPECIES_ARCEUS_GRASS FORMS_START + 178 -#define SPECIES_ARCEUS_ELECTRIC FORMS_START + 179 -#define SPECIES_ARCEUS_PSYCHIC FORMS_START + 180 -#define SPECIES_ARCEUS_ICE FORMS_START + 181 -#define SPECIES_ARCEUS_DRAGON FORMS_START + 182 -#define SPECIES_ARCEUS_DARK FORMS_START + 183 -#define SPECIES_ARCEUS_FAIRY FORMS_START + 184 +#define SPECIES_ARCEUS_FIGHTING FORMS_START + 168 +#define SPECIES_ARCEUS_FLYING FORMS_START + 169 +#define SPECIES_ARCEUS_POISON FORMS_START + 170 +#define SPECIES_ARCEUS_GROUND FORMS_START + 171 +#define SPECIES_ARCEUS_ROCK FORMS_START + 172 +#define SPECIES_ARCEUS_BUG FORMS_START + 173 +#define SPECIES_ARCEUS_GHOST FORMS_START + 174 +#define SPECIES_ARCEUS_STEEL FORMS_START + 175 +#define SPECIES_ARCEUS_FIRE FORMS_START + 176 +#define SPECIES_ARCEUS_WATER FORMS_START + 177 +#define SPECIES_ARCEUS_GRASS FORMS_START + 178 +#define SPECIES_ARCEUS_ELECTRIC FORMS_START + 179 +#define SPECIES_ARCEUS_PSYCHIC FORMS_START + 180 +#define SPECIES_ARCEUS_ICE FORMS_START + 181 +#define SPECIES_ARCEUS_DRAGON FORMS_START + 182 +#define SPECIES_ARCEUS_DARK FORMS_START + 183 +#define SPECIES_ARCEUS_FAIRY FORMS_START + 184 // Basculin -#define SPECIES_BASCULIN_BLUE_STRIPED FORMS_START + 185 -#define SPECIES_BASCULIN_WHITE_STRIPED FORMS_START + 186 +#define SPECIES_BASCULIN_BLUE_STRIPED FORMS_START + 185 +#define SPECIES_BASCULIN_WHITE_STRIPED FORMS_START + 186 // Darmanitan -#define SPECIES_DARMANITAN_ZEN_MODE FORMS_START + 187 -#define SPECIES_DARMANITAN_GALARIAN_ZEN_MODE FORMS_START + 188 +#define SPECIES_DARMANITAN_ZEN_MODE FORMS_START + 187 +#define SPECIES_DARMANITAN_GALARIAN_ZEN_MODE FORMS_START + 188 // Deerling -#define SPECIES_DEERLING_SUMMER FORMS_START + 189 -#define SPECIES_DEERLING_AUTUMN FORMS_START + 190 -#define SPECIES_DEERLING_WINTER FORMS_START + 191 +#define SPECIES_DEERLING_SUMMER FORMS_START + 189 +#define SPECIES_DEERLING_AUTUMN FORMS_START + 190 +#define SPECIES_DEERLING_WINTER FORMS_START + 191 // Sawsbuck -#define SPECIES_SAWSBUCK_SUMMER FORMS_START + 192 -#define SPECIES_SAWSBUCK_AUTUMN FORMS_START + 193 -#define SPECIES_SAWSBUCK_WINTER FORMS_START + 194 +#define SPECIES_SAWSBUCK_SUMMER FORMS_START + 192 +#define SPECIES_SAWSBUCK_AUTUMN FORMS_START + 193 +#define SPECIES_SAWSBUCK_WINTER FORMS_START + 194 // Therian Forms -#define SPECIES_TORNADUS_THERIAN FORMS_START + 195 -#define SPECIES_THUNDURUS_THERIAN FORMS_START + 196 -#define SPECIES_LANDORUS_THERIAN FORMS_START + 197 -#define SPECIES_ENAMORUS_THERIAN FORMS_START + 198 +#define SPECIES_TORNADUS_THERIAN FORMS_START + 195 +#define SPECIES_THUNDURUS_THERIAN FORMS_START + 196 +#define SPECIES_LANDORUS_THERIAN FORMS_START + 197 +#define SPECIES_ENAMORUS_THERIAN FORMS_START + 198 // Kyurem -#define SPECIES_KYUREM_WHITE FORMS_START + 199 -#define SPECIES_KYUREM_BLACK FORMS_START + 200 +#define SPECIES_KYUREM_WHITE FORMS_START + 199 +#define SPECIES_KYUREM_BLACK FORMS_START + 200 // Keldeo -#define SPECIES_KELDEO_RESOLUTE FORMS_START + 201 +#define SPECIES_KELDEO_RESOLUTE FORMS_START + 201 // Meloetta -#define SPECIES_MELOETTA_PIROUETTE FORMS_START + 202 +#define SPECIES_MELOETTA_PIROUETTE FORMS_START + 202 // Genesect -#define SPECIES_GENESECT_DOUSE_DRIVE FORMS_START + 203 -#define SPECIES_GENESECT_SHOCK_DRIVE FORMS_START + 204 -#define SPECIES_GENESECT_BURN_DRIVE FORMS_START + 205 -#define SPECIES_GENESECT_CHILL_DRIVE FORMS_START + 206 +#define SPECIES_GENESECT_DOUSE_DRIVE FORMS_START + 203 +#define SPECIES_GENESECT_SHOCK_DRIVE FORMS_START + 204 +#define SPECIES_GENESECT_BURN_DRIVE FORMS_START + 205 +#define SPECIES_GENESECT_CHILL_DRIVE FORMS_START + 206 // Greninja -#define SPECIES_GRENINJA_BATTLE_BOND FORMS_START + 207 -#define SPECIES_GRENINJA_ASH FORMS_START + 208 +#define SPECIES_GRENINJA_BATTLE_BOND FORMS_START + 207 +#define SPECIES_GRENINJA_ASH FORMS_START + 208 // Vivillon -#define SPECIES_VIVILLON_POLAR FORMS_START + 209 -#define SPECIES_VIVILLON_TUNDRA FORMS_START + 210 -#define SPECIES_VIVILLON_CONTINENTAL FORMS_START + 211 -#define SPECIES_VIVILLON_GARDEN FORMS_START + 212 -#define SPECIES_VIVILLON_ELEGANT FORMS_START + 213 -#define SPECIES_VIVILLON_MEADOW FORMS_START + 214 -#define SPECIES_VIVILLON_MODERN FORMS_START + 215 -#define SPECIES_VIVILLON_MARINE FORMS_START + 216 -#define SPECIES_VIVILLON_ARCHIPELAGO FORMS_START + 217 -#define SPECIES_VIVILLON_HIGH_PLAINS FORMS_START + 218 -#define SPECIES_VIVILLON_SANDSTORM FORMS_START + 219 -#define SPECIES_VIVILLON_RIVER FORMS_START + 220 -#define SPECIES_VIVILLON_MONSOON FORMS_START + 221 -#define SPECIES_VIVILLON_SAVANNA FORMS_START + 222 -#define SPECIES_VIVILLON_SUN FORMS_START + 223 -#define SPECIES_VIVILLON_OCEAN FORMS_START + 224 -#define SPECIES_VIVILLON_JUNGLE FORMS_START + 225 -#define SPECIES_VIVILLON_FANCY FORMS_START + 226 -#define SPECIES_VIVILLON_POKE_BALL FORMS_START + 227 +#define SPECIES_VIVILLON_POLAR FORMS_START + 209 +#define SPECIES_VIVILLON_TUNDRA FORMS_START + 210 +#define SPECIES_VIVILLON_CONTINENTAL FORMS_START + 211 +#define SPECIES_VIVILLON_GARDEN FORMS_START + 212 +#define SPECIES_VIVILLON_ELEGANT FORMS_START + 213 +#define SPECIES_VIVILLON_MEADOW FORMS_START + 214 +#define SPECIES_VIVILLON_MODERN FORMS_START + 215 +#define SPECIES_VIVILLON_MARINE FORMS_START + 216 +#define SPECIES_VIVILLON_ARCHIPELAGO FORMS_START + 217 +#define SPECIES_VIVILLON_HIGH_PLAINS FORMS_START + 218 +#define SPECIES_VIVILLON_SANDSTORM FORMS_START + 219 +#define SPECIES_VIVILLON_RIVER FORMS_START + 220 +#define SPECIES_VIVILLON_MONSOON FORMS_START + 221 +#define SPECIES_VIVILLON_SAVANNA FORMS_START + 222 +#define SPECIES_VIVILLON_SUN FORMS_START + 223 +#define SPECIES_VIVILLON_OCEAN FORMS_START + 224 +#define SPECIES_VIVILLON_JUNGLE FORMS_START + 225 +#define SPECIES_VIVILLON_FANCY FORMS_START + 226 +#define SPECIES_VIVILLON_POKE_BALL FORMS_START + 227 // Flabébé -#define SPECIES_FLABEBE_YELLOW_FLOWER FORMS_START + 228 -#define SPECIES_FLABEBE_ORANGE_FLOWER FORMS_START + 229 -#define SPECIES_FLABEBE_BLUE_FLOWER FORMS_START + 230 -#define SPECIES_FLABEBE_WHITE_FLOWER FORMS_START + 231 +#define SPECIES_FLABEBE_YELLOW_FLOWER FORMS_START + 228 +#define SPECIES_FLABEBE_ORANGE_FLOWER FORMS_START + 229 +#define SPECIES_FLABEBE_BLUE_FLOWER FORMS_START + 230 +#define SPECIES_FLABEBE_WHITE_FLOWER FORMS_START + 231 // Floette -#define SPECIES_FLOETTE_YELLOW_FLOWER FORMS_START + 232 -#define SPECIES_FLOETTE_ORANGE_FLOWER FORMS_START + 233 -#define SPECIES_FLOETTE_BLUE_FLOWER FORMS_START + 234 -#define SPECIES_FLOETTE_WHITE_FLOWER FORMS_START + 235 -#define SPECIES_FLOETTE_ETERNAL_FLOWER FORMS_START + 236 +#define SPECIES_FLOETTE_YELLOW_FLOWER FORMS_START + 232 +#define SPECIES_FLOETTE_ORANGE_FLOWER FORMS_START + 233 +#define SPECIES_FLOETTE_BLUE_FLOWER FORMS_START + 234 +#define SPECIES_FLOETTE_WHITE_FLOWER FORMS_START + 235 +#define SPECIES_FLOETTE_ETERNAL_FLOWER FORMS_START + 236 // Florges -#define SPECIES_FLORGES_YELLOW_FLOWER FORMS_START + 237 -#define SPECIES_FLORGES_ORANGE_FLOWER FORMS_START + 238 -#define SPECIES_FLORGES_BLUE_FLOWER FORMS_START + 239 -#define SPECIES_FLORGES_WHITE_FLOWER FORMS_START + 240 +#define SPECIES_FLORGES_YELLOW_FLOWER FORMS_START + 237 +#define SPECIES_FLORGES_ORANGE_FLOWER FORMS_START + 238 +#define SPECIES_FLORGES_BLUE_FLOWER FORMS_START + 239 +#define SPECIES_FLORGES_WHITE_FLOWER FORMS_START + 240 // Furfrou -#define SPECIES_FURFROU_HEART_TRIM FORMS_START + 241 -#define SPECIES_FURFROU_STAR_TRIM FORMS_START + 242 -#define SPECIES_FURFROU_DIAMOND_TRIM FORMS_START + 243 -#define SPECIES_FURFROU_DEBUTANTE_TRIM FORMS_START + 244 -#define SPECIES_FURFROU_MATRON_TRIM FORMS_START + 245 -#define SPECIES_FURFROU_DANDY_TRIM FORMS_START + 246 -#define SPECIES_FURFROU_LA_REINE_TRIM FORMS_START + 247 -#define SPECIES_FURFROU_KABUKI_TRIM FORMS_START + 248 -#define SPECIES_FURFROU_PHARAOH_TRIM FORMS_START + 249 +#define SPECIES_FURFROU_HEART_TRIM FORMS_START + 241 +#define SPECIES_FURFROU_STAR_TRIM FORMS_START + 242 +#define SPECIES_FURFROU_DIAMOND_TRIM FORMS_START + 243 +#define SPECIES_FURFROU_DEBUTANTE_TRIM FORMS_START + 244 +#define SPECIES_FURFROU_MATRON_TRIM FORMS_START + 245 +#define SPECIES_FURFROU_DANDY_TRIM FORMS_START + 246 +#define SPECIES_FURFROU_LA_REINE_TRIM FORMS_START + 247 +#define SPECIES_FURFROU_KABUKI_TRIM FORMS_START + 248 +#define SPECIES_FURFROU_PHARAOH_TRIM FORMS_START + 249 // Meowstic -#define SPECIES_MEOWSTIC_FEMALE FORMS_START + 250 +#define SPECIES_MEOWSTIC_FEMALE FORMS_START + 250 // Aegislash -#define SPECIES_AEGISLASH_BLADE FORMS_START + 251 +#define SPECIES_AEGISLASH_BLADE FORMS_START + 251 // Pumpkaboo -#define SPECIES_PUMPKABOO_SMALL FORMS_START + 252 -#define SPECIES_PUMPKABOO_LARGE FORMS_START + 253 -#define SPECIES_PUMPKABOO_SUPER FORMS_START + 254 +#define SPECIES_PUMPKABOO_SMALL FORMS_START + 252 +#define SPECIES_PUMPKABOO_LARGE FORMS_START + 253 +#define SPECIES_PUMPKABOO_SUPER FORMS_START + 254 // Gourgeist -#define SPECIES_GOURGEIST_SMALL FORMS_START + 255 -#define SPECIES_GOURGEIST_LARGE FORMS_START + 256 -#define SPECIES_GOURGEIST_SUPER FORMS_START + 257 +#define SPECIES_GOURGEIST_SMALL FORMS_START + 255 +#define SPECIES_GOURGEIST_LARGE FORMS_START + 256 +#define SPECIES_GOURGEIST_SUPER FORMS_START + 257 // Xerneas -#define SPECIES_XERNEAS_ACTIVE FORMS_START + 258 +#define SPECIES_XERNEAS_ACTIVE FORMS_START + 258 // Zygarde -#define SPECIES_ZYGARDE_10 SPECIES_ZYGARDE_10_AURA_BREAK -#define SPECIES_ZYGARDE_10_AURA_BREAK FORMS_START + 259 -#define SPECIES_ZYGARDE_10_POWER_CONSTRUCT FORMS_START + 260 -#define SPECIES_ZYGARDE_50_POWER_CONSTRUCT FORMS_START + 261 -#define SPECIES_ZYGARDE_COMPLETE FORMS_START + 262 +#define SPECIES_ZYGARDE_10 SPECIES_ZYGARDE_10_AURA_BREAK +#define SPECIES_ZYGARDE_10_AURA_BREAK FORMS_START + 259 +#define SPECIES_ZYGARDE_10_POWER_CONSTRUCT FORMS_START + 260 +#define SPECIES_ZYGARDE_50_POWER_CONSTRUCT FORMS_START + 261 +#define SPECIES_ZYGARDE_COMPLETE FORMS_START + 262 // Hoopa -#define SPECIES_HOOPA_UNBOUND FORMS_START + 263 +#define SPECIES_HOOPA_UNBOUND FORMS_START + 263 // Oricorio -#define SPECIES_ORICORIO_POM_POM FORMS_START + 264 -#define SPECIES_ORICORIO_PAU FORMS_START + 265 -#define SPECIES_ORICORIO_SENSU FORMS_START + 266 +#define SPECIES_ORICORIO_POM_POM FORMS_START + 264 +#define SPECIES_ORICORIO_PAU FORMS_START + 265 +#define SPECIES_ORICORIO_SENSU FORMS_START + 266 // Rockruff -#define SPECIES_ROCKRUFF_OWN_TEMPO FORMS_START + 267 +#define SPECIES_ROCKRUFF_OWN_TEMPO FORMS_START + 267 // Lycanroc -#define SPECIES_LYCANROC_MIDNIGHT FORMS_START + 268 -#define SPECIES_LYCANROC_DUSK FORMS_START + 269 +#define SPECIES_LYCANROC_MIDNIGHT FORMS_START + 268 +#define SPECIES_LYCANROC_DUSK FORMS_START + 269 // Wishiwashi -#define SPECIES_WISHIWASHI_SCHOOL FORMS_START + 270 +#define SPECIES_WISHIWASHI_SCHOOL FORMS_START + 270 // Silvally -#define SPECIES_SILVALLY_FIGHTING FORMS_START + 271 -#define SPECIES_SILVALLY_FLYING FORMS_START + 272 -#define SPECIES_SILVALLY_POISON FORMS_START + 273 -#define SPECIES_SILVALLY_GROUND FORMS_START + 274 -#define SPECIES_SILVALLY_ROCK FORMS_START + 275 -#define SPECIES_SILVALLY_BUG FORMS_START + 276 -#define SPECIES_SILVALLY_GHOST FORMS_START + 277 -#define SPECIES_SILVALLY_STEEL FORMS_START + 278 -#define SPECIES_SILVALLY_FIRE FORMS_START + 279 -#define SPECIES_SILVALLY_WATER FORMS_START + 280 -#define SPECIES_SILVALLY_GRASS FORMS_START + 281 -#define SPECIES_SILVALLY_ELECTRIC FORMS_START + 282 -#define SPECIES_SILVALLY_PSYCHIC FORMS_START + 283 -#define SPECIES_SILVALLY_ICE FORMS_START + 284 -#define SPECIES_SILVALLY_DRAGON FORMS_START + 285 -#define SPECIES_SILVALLY_DARK FORMS_START + 286 -#define SPECIES_SILVALLY_FAIRY FORMS_START + 287 +#define SPECIES_SILVALLY_FIGHTING FORMS_START + 271 +#define SPECIES_SILVALLY_FLYING FORMS_START + 272 +#define SPECIES_SILVALLY_POISON FORMS_START + 273 +#define SPECIES_SILVALLY_GROUND FORMS_START + 274 +#define SPECIES_SILVALLY_ROCK FORMS_START + 275 +#define SPECIES_SILVALLY_BUG FORMS_START + 276 +#define SPECIES_SILVALLY_GHOST FORMS_START + 277 +#define SPECIES_SILVALLY_STEEL FORMS_START + 278 +#define SPECIES_SILVALLY_FIRE FORMS_START + 279 +#define SPECIES_SILVALLY_WATER FORMS_START + 280 +#define SPECIES_SILVALLY_GRASS FORMS_START + 281 +#define SPECIES_SILVALLY_ELECTRIC FORMS_START + 282 +#define SPECIES_SILVALLY_PSYCHIC FORMS_START + 283 +#define SPECIES_SILVALLY_ICE FORMS_START + 284 +#define SPECIES_SILVALLY_DRAGON FORMS_START + 285 +#define SPECIES_SILVALLY_DARK FORMS_START + 286 +#define SPECIES_SILVALLY_FAIRY FORMS_START + 287 // Minior -#define SPECIES_MINIOR_METEOR_ORANGE FORMS_START + 288 -#define SPECIES_MINIOR_METEOR_YELLOW FORMS_START + 289 -#define SPECIES_MINIOR_METEOR_GREEN FORMS_START + 290 -#define SPECIES_MINIOR_METEOR_BLUE FORMS_START + 291 -#define SPECIES_MINIOR_METEOR_INDIGO FORMS_START + 292 -#define SPECIES_MINIOR_METEOR_VIOLET FORMS_START + 293 -#define SPECIES_MINIOR_CORE SPECIES_MINIOR_CORE_RED -#define SPECIES_MINIOR_CORE_RED FORMS_START + 294 -#define SPECIES_MINIOR_CORE_ORANGE FORMS_START + 295 -#define SPECIES_MINIOR_CORE_YELLOW FORMS_START + 296 -#define SPECIES_MINIOR_CORE_GREEN FORMS_START + 297 -#define SPECIES_MINIOR_CORE_BLUE FORMS_START + 298 -#define SPECIES_MINIOR_CORE_INDIGO FORMS_START + 299 -#define SPECIES_MINIOR_CORE_VIOLET FORMS_START + 300 +#define SPECIES_MINIOR_METEOR_ORANGE FORMS_START + 288 +#define SPECIES_MINIOR_METEOR_YELLOW FORMS_START + 289 +#define SPECIES_MINIOR_METEOR_GREEN FORMS_START + 290 +#define SPECIES_MINIOR_METEOR_BLUE FORMS_START + 291 +#define SPECIES_MINIOR_METEOR_INDIGO FORMS_START + 292 +#define SPECIES_MINIOR_METEOR_VIOLET FORMS_START + 293 +#define SPECIES_MINIOR_CORE SPECIES_MINIOR_CORE_RED +#define SPECIES_MINIOR_CORE_RED FORMS_START + 294 +#define SPECIES_MINIOR_CORE_ORANGE FORMS_START + 295 +#define SPECIES_MINIOR_CORE_YELLOW FORMS_START + 296 +#define SPECIES_MINIOR_CORE_GREEN FORMS_START + 297 +#define SPECIES_MINIOR_CORE_BLUE FORMS_START + 298 +#define SPECIES_MINIOR_CORE_INDIGO FORMS_START + 299 +#define SPECIES_MINIOR_CORE_VIOLET FORMS_START + 300 // Mimikyu -#define SPECIES_MIMIKYU_BUSTED FORMS_START + 301 +#define SPECIES_MIMIKYU_BUSTED FORMS_START + 301 // Necrozma -#define SPECIES_NECROZMA_DUSK_MANE FORMS_START + 302 -#define SPECIES_NECROZMA_DAWN_WINGS FORMS_START + 303 -#define SPECIES_NECROZMA_ULTRA FORMS_START + 304 +#define SPECIES_NECROZMA_DUSK_MANE FORMS_START + 302 +#define SPECIES_NECROZMA_DAWN_WINGS FORMS_START + 303 +#define SPECIES_NECROZMA_ULTRA FORMS_START + 304 // Magearna -#define SPECIES_MAGEARNA_ORIGINAL_COLOR FORMS_START + 305 +#define SPECIES_MAGEARNA_ORIGINAL_COLOR FORMS_START + 305 // Cramorant -#define SPECIES_CRAMORANT_GULPING FORMS_START + 306 -#define SPECIES_CRAMORANT_GORGING FORMS_START + 307 +#define SPECIES_CRAMORANT_GULPING FORMS_START + 306 +#define SPECIES_CRAMORANT_GORGING FORMS_START + 307 // Toxtricity -#define SPECIES_TOXTRICITY_LOW_KEY FORMS_START + 308 +#define SPECIES_TOXTRICITY_LOW_KEY FORMS_START + 308 // Sinistea -#define SPECIES_SINISTEA_ANTIQUE FORMS_START + 309 +#define SPECIES_SINISTEA_ANTIQUE FORMS_START + 309 // Polteageist -#define SPECIES_POLTEAGEIST_ANTIQUE FORMS_START + 310 +#define SPECIES_POLTEAGEIST_ANTIQUE FORMS_START + 310 // Alcremie -#define SPECIES_ALCREMIE_RUBY_CREAM SPECIES_ALCREMIE_STRAWBERRY_RUBY_CREAM -#define SPECIES_ALCREMIE_STRAWBERRY_RUBY_CREAM FORMS_START + 311 -#define SPECIES_ALCREMIE_MATCHA_CREAM SPECIES_ALCREMIE_STRAWBERRY_MATCHA_CREAM -#define SPECIES_ALCREMIE_STRAWBERRY_MATCHA_CREAM FORMS_START + 312 -#define SPECIES_ALCREMIE_MINT_CREAM SPECIES_ALCREMIE_STRAWBERRY_MINT_CREAM -#define SPECIES_ALCREMIE_STRAWBERRY_MINT_CREAM FORMS_START + 313 -#define SPECIES_ALCREMIE_LEMON_CREAM SPECIES_ALCREMIE_STRAWBERRY_LEMON_CREAM -#define SPECIES_ALCREMIE_STRAWBERRY_LEMON_CREAM FORMS_START + 314 -#define SPECIES_ALCREMIE_SALTED_CREAM SPECIES_ALCREMIE_STRAWBERRY_SALTED_CREAM -#define SPECIES_ALCREMIE_STRAWBERRY_SALTED_CREAM FORMS_START + 315 -#define SPECIES_ALCREMIE_RUBY_SWIRL SPECIES_ALCREMIE_STRAWBERRY_RUBY_SWIRL -#define SPECIES_ALCREMIE_STRAWBERRY_RUBY_SWIRL FORMS_START + 316 -#define SPECIES_ALCREMIE_CARAMEL_SWIRL SPECIES_ALCREMIE_STRAWBERRY_CARAMEL_SWIRL -#define SPECIES_ALCREMIE_STRAWBERRY_CARAMEL_SWIRL FORMS_START + 317 -#define SPECIES_ALCREMIE_RAINBOW_SWIRL SPECIES_ALCREMIE_STRAWBERRY_RAINBOW_SWIRL -#define SPECIES_ALCREMIE_STRAWBERRY_RAINBOW_SWIRL FORMS_START + 318 +#define SPECIES_ALCREMIE_RUBY_CREAM SPECIES_ALCREMIE_STRAWBERRY_RUBY_CREAM +#define SPECIES_ALCREMIE_MATCHA_CREAM SPECIES_ALCREMIE_STRAWBERRY_MATCHA_CREAM +#define SPECIES_ALCREMIE_MINT_CREAM SPECIES_ALCREMIE_STRAWBERRY_MINT_CREAM +#define SPECIES_ALCREMIE_LEMON_CREAM SPECIES_ALCREMIE_STRAWBERRY_LEMON_CREAM +#define SPECIES_ALCREMIE_SALTED_CREAM SPECIES_ALCREMIE_STRAWBERRY_SALTED_CREAM +#define SPECIES_ALCREMIE_RUBY_SWIRL SPECIES_ALCREMIE_STRAWBERRY_RUBY_SWIRL +#define SPECIES_ALCREMIE_CARAMEL_SWIRL SPECIES_ALCREMIE_STRAWBERRY_CARAMEL_SWIRL +#define SPECIES_ALCREMIE_RAINBOW_SWIRL SPECIES_ALCREMIE_STRAWBERRY_RAINBOW_SWIRL +#define SPECIES_ALCREMIE_STRAWBERRY_RUBY_CREAM FORMS_START + 311 +#define SPECIES_ALCREMIE_STRAWBERRY_MATCHA_CREAM FORMS_START + 312 +#define SPECIES_ALCREMIE_STRAWBERRY_MINT_CREAM FORMS_START + 313 +#define SPECIES_ALCREMIE_STRAWBERRY_LEMON_CREAM FORMS_START + 314 +#define SPECIES_ALCREMIE_STRAWBERRY_SALTED_CREAM FORMS_START + 315 +#define SPECIES_ALCREMIE_STRAWBERRY_RUBY_SWIRL FORMS_START + 316 +#define SPECIES_ALCREMIE_STRAWBERRY_CARAMEL_SWIRL FORMS_START + 317 +#define SPECIES_ALCREMIE_STRAWBERRY_RAINBOW_SWIRL FORMS_START + 318 // Eiscue -#define SPECIES_EISCUE_NOICE_FACE FORMS_START + 319 +#define SPECIES_EISCUE_NOICE_FACE FORMS_START + 319 // Indeedee -#define SPECIES_INDEEDEE_FEMALE FORMS_START + 320 +#define SPECIES_INDEEDEE_FEMALE FORMS_START + 320 // Morpeko -#define SPECIES_MORPEKO_HANGRY FORMS_START + 321 +#define SPECIES_MORPEKO_HANGRY FORMS_START + 321 // Zacian -#define SPECIES_ZACIAN_CROWNED_SWORD FORMS_START + 322 +#define SPECIES_ZACIAN_CROWNED_SWORD FORMS_START + 322 // Zamazenta -#define SPECIES_ZAMAZENTA_CROWNED_SHIELD FORMS_START + 323 +#define SPECIES_ZAMAZENTA_CROWNED_SHIELD FORMS_START + 323 // Eternatus -#define SPECIES_ETERNATUS_ETERNAMAX FORMS_START + 324 +#define SPECIES_ETERNATUS_ETERNAMAX FORMS_START + 324 // Urshifu -#define SPECIES_URSHIFU_RAPID_STRIKE_STYLE FORMS_START + 325 +#define SPECIES_URSHIFU_RAPID_STRIKE_STYLE FORMS_START + 325 // Zarude -#define SPECIES_ZARUDE_DADA FORMS_START + 326 +#define SPECIES_ZARUDE_DADA FORMS_START + 326 // Calyrex -#define SPECIES_CALYREX_ICE_RIDER FORMS_START + 327 -#define SPECIES_CALYREX_SHADOW_RIDER FORMS_START + 328 +#define SPECIES_CALYREX_ICE_RIDER FORMS_START + 327 +#define SPECIES_CALYREX_SHADOW_RIDER FORMS_START + 328 // Basculegion -#define SPECIES_BASCULEGION_FEMALE FORMS_START + 329 +#define SPECIES_BASCULEGION_FEMALE FORMS_START + 329 -#define GEN9_START SPECIES_BASCULEGION_FEMALE +// More Alcremie +#define SPECIES_ALCREMIE_BERRY SPECIES_ALCREMIE_BERRY_VANILLA_CREAM +#define SPECIES_ALCREMIE_BERRY_VANILLA_CREAM FORMS_START + 330 +#define SPECIES_ALCREMIE_BERRY_RUBY_CREAM FORMS_START + 331 +#define SPECIES_ALCREMIE_BERRY_MATCHA_CREAM FORMS_START + 332 +#define SPECIES_ALCREMIE_BERRY_MINT_CREAM FORMS_START + 333 +#define SPECIES_ALCREMIE_BERRY_LEMON_CREAM FORMS_START + 334 +#define SPECIES_ALCREMIE_BERRY_SALTED_CREAM FORMS_START + 335 +#define SPECIES_ALCREMIE_BERRY_RUBY_SWIRL FORMS_START + 336 +#define SPECIES_ALCREMIE_BERRY_CARAMEL_SWIRL FORMS_START + 337 +#define SPECIES_ALCREMIE_BERRY_RAINBOW_SWIRL FORMS_START + 338 +#define SPECIES_ALCREMIE_LOVE SPECIES_ALCREMIE_LOVE_VANILLA_CREAM +#define SPECIES_ALCREMIE_LOVE_VANILLA_CREAM FORMS_START + 339 +#define SPECIES_ALCREMIE_LOVE_RUBY_CREAM FORMS_START + 340 +#define SPECIES_ALCREMIE_LOVE_MATCHA_CREAM FORMS_START + 341 +#define SPECIES_ALCREMIE_LOVE_MINT_CREAM FORMS_START + 342 +#define SPECIES_ALCREMIE_LOVE_LEMON_CREAM FORMS_START + 343 +#define SPECIES_ALCREMIE_LOVE_SALTED_CREAM FORMS_START + 344 +#define SPECIES_ALCREMIE_LOVE_RUBY_SWIRL FORMS_START + 345 +#define SPECIES_ALCREMIE_LOVE_CARAMEL_SWIRL FORMS_START + 346 +#define SPECIES_ALCREMIE_LOVE_RAINBOW_SWIRL FORMS_START + 347 +#define SPECIES_ALCREMIE_STAR SPECIES_ALCREMIE_STAR_VANILLA_CREAM +#define SPECIES_ALCREMIE_STAR_VANILLA_CREAM FORMS_START + 348 +#define SPECIES_ALCREMIE_STAR_RUBY_CREAM FORMS_START + 349 +#define SPECIES_ALCREMIE_STAR_MATCHA_CREAM FORMS_START + 350 +#define SPECIES_ALCREMIE_STAR_MINT_CREAM FORMS_START + 351 +#define SPECIES_ALCREMIE_STAR_LEMON_CREAM FORMS_START + 352 +#define SPECIES_ALCREMIE_STAR_SALTED_CREAM FORMS_START + 353 +#define SPECIES_ALCREMIE_STAR_RUBY_SWIRL FORMS_START + 354 +#define SPECIES_ALCREMIE_STAR_CARAMEL_SWIRL FORMS_START + 355 +#define SPECIES_ALCREMIE_STAR_RAINBOW_SWIRL FORMS_START + 356 +#define SPECIES_ALCREMIE_CLOVER SPECIES_ALCREMIE_CLOVER_VANILLA_CREAM +#define SPECIES_ALCREMIE_CLOVER_VANILLA_CREAM FORMS_START + 357 +#define SPECIES_ALCREMIE_CLOVER_RUBY_CREAM FORMS_START + 358 +#define SPECIES_ALCREMIE_CLOVER_MATCHA_CREAM FORMS_START + 359 +#define SPECIES_ALCREMIE_CLOVER_MINT_CREAM FORMS_START + 360 +#define SPECIES_ALCREMIE_CLOVER_LEMON_CREAM FORMS_START + 361 +#define SPECIES_ALCREMIE_CLOVER_SALTED_CREAM FORMS_START + 362 +#define SPECIES_ALCREMIE_CLOVER_RUBY_SWIRL FORMS_START + 363 +#define SPECIES_ALCREMIE_CLOVER_CARAMEL_SWIRL FORMS_START + 364 +#define SPECIES_ALCREMIE_CLOVER_RAINBOW_SWIRL FORMS_START + 365 +#define SPECIES_ALCREMIE_FLOWER SPECIES_ALCREMIE_FLOWER_VANILLA_CREAM +#define SPECIES_ALCREMIE_FLOWER_VANILLA_CREAM FORMS_START + 366 +#define SPECIES_ALCREMIE_FLOWER_RUBY_CREAM FORMS_START + 367 +#define SPECIES_ALCREMIE_FLOWER_MATCHA_CREAM FORMS_START + 368 +#define SPECIES_ALCREMIE_FLOWER_MINT_CREAM FORMS_START + 369 +#define SPECIES_ALCREMIE_FLOWER_LEMON_CREAM FORMS_START + 370 +#define SPECIES_ALCREMIE_FLOWER_SALTED_CREAM FORMS_START + 371 +#define SPECIES_ALCREMIE_FLOWER_RUBY_SWIRL FORMS_START + 372 +#define SPECIES_ALCREMIE_FLOWER_CARAMEL_SWIRL FORMS_START + 373 +#define SPECIES_ALCREMIE_FLOWER_RAINBOW_SWIRL FORMS_START + 374 +#define SPECIES_ALCREMIE_RIBBON SPECIES_ALCREMIE_RIBBON_VANILLA_CREAM +#define SPECIES_ALCREMIE_RIBBON_VANILLA_CREAM FORMS_START + 375 +#define SPECIES_ALCREMIE_RIBBON_RUBY_CREAM FORMS_START + 376 +#define SPECIES_ALCREMIE_RIBBON_MATCHA_CREAM FORMS_START + 377 +#define SPECIES_ALCREMIE_RIBBON_MINT_CREAM FORMS_START + 378 +#define SPECIES_ALCREMIE_RIBBON_LEMON_CREAM FORMS_START + 379 +#define SPECIES_ALCREMIE_RIBBON_SALTED_CREAM FORMS_START + 380 +#define SPECIES_ALCREMIE_RIBBON_RUBY_SWIRL FORMS_START + 381 +#define SPECIES_ALCREMIE_RIBBON_CARAMEL_SWIRL FORMS_START + 382 +#define SPECIES_ALCREMIE_RIBBON_RAINBOW_SWIRL FORMS_START + 383 -#define SPECIES_SPRIGATITO GEN9_START + 1 -#define SPECIES_FLORAGATO GEN9_START + 2 -#define SPECIES_MEOWSCARADA GEN9_START + 3 -#define SPECIES_FUECOCO GEN9_START + 4 -#define SPECIES_CROCALOR GEN9_START + 5 -#define SPECIES_SKELEDIRGE GEN9_START + 6 -#define SPECIES_QUAXLY GEN9_START + 7 -#define SPECIES_QUAXWELL GEN9_START + 8 -#define SPECIES_QUAQUAVAL GEN9_START + 9 -#define SPECIES_LECHONK GEN9_START + 10 -#define SPECIES_OINKOLOGNE SPECIES_OINKOLOGNE_MALE -#define SPECIES_OINKOLOGNE_MALE GEN9_START + 11 -#define SPECIES_OINKOLOGNE_FEMALE GEN9_START + 12 -#define SPECIES_TAROUNTULA GEN9_START + 13 -#define SPECIES_SPIDOPS GEN9_START + 14 -#define SPECIES_NYMBLE GEN9_START + 15 -#define SPECIES_LOKIX GEN9_START + 16 -#define SPECIES_PAWMI GEN9_START + 17 -#define SPECIES_PAWMO GEN9_START + 18 -#define SPECIES_PAWMOT GEN9_START + 19 -#define SPECIES_TANDEMAUS GEN9_START + 20 -#define SPECIES_MAUSHOLD SPECIES_MAUSHOLD_FAMILY_OF_THREE -#define SPECIES_MAUSHOLD_FAMILY_OF_THREE GEN9_START + 21 -#define SPECIES_MAUSHOLD_FAMILY_OF_FOUR GEN9_START + 22 -#define SPECIES_FIDOUGH GEN9_START + 23 -#define SPECIES_DACHSBUN GEN9_START + 24 -#define SPECIES_SMOLIV GEN9_START + 25 -#define SPECIES_DOLLIV GEN9_START + 26 -#define SPECIES_ARBOLIVA GEN9_START + 27 -#define SPECIES_SQUAWKABILLY SPECIES_SQUAWKABILLY_GREEN_PLUMAGE -#define SPECIES_SQUAWKABILLY_GREEN_PLUMAGE GEN9_START + 28 -#define SPECIES_SQUAWKABILLY_BLUE_PLUMAGE GEN9_START + 29 -#define SPECIES_SQUAWKABILLY_YELLOW_PLUMAGE GEN9_START + 30 -#define SPECIES_SQUAWKABILLY_WHITE_PLUMAGE GEN9_START + 31 -#define SPECIES_NACLI GEN9_START + 32 -#define SPECIES_NACLSTACK GEN9_START + 33 -#define SPECIES_GARGANACL GEN9_START + 34 -#define SPECIES_CHARCADET GEN9_START + 35 -#define SPECIES_ARMAROUGE GEN9_START + 36 -#define SPECIES_CERULEDGE GEN9_START + 37 -#define SPECIES_TADBULB GEN9_START + 38 -#define SPECIES_BELLIBOLT GEN9_START + 39 -#define SPECIES_WATTREL GEN9_START + 40 -#define SPECIES_KILOWATTREL GEN9_START + 41 -#define SPECIES_MASCHIFF GEN9_START + 42 -#define SPECIES_MABOSSTIFF GEN9_START + 43 -#define SPECIES_SHROODLE GEN9_START + 44 -#define SPECIES_GRAFAIAI GEN9_START + 45 -#define SPECIES_BRAMBLIN GEN9_START + 46 -#define SPECIES_BRAMBLEGHAST GEN9_START + 47 -#define SPECIES_TOEDSCOOL GEN9_START + 48 -#define SPECIES_TOEDSCRUEL GEN9_START + 49 -#define SPECIES_KLAWF GEN9_START + 50 -#define SPECIES_CAPSAKID GEN9_START + 51 -#define SPECIES_SCOVILLAIN GEN9_START + 52 -#define SPECIES_RELLOR GEN9_START + 53 -#define SPECIES_RABSCA GEN9_START + 54 -#define SPECIES_FLITTLE GEN9_START + 55 -#define SPECIES_ESPATHRA GEN9_START + 56 -#define SPECIES_TINKATINK GEN9_START + 57 -#define SPECIES_TINKATUFF GEN9_START + 58 -#define SPECIES_TINKATON GEN9_START + 59 -#define SPECIES_WIGLETT GEN9_START + 60 -#define SPECIES_WUGTRIO GEN9_START + 61 -#define SPECIES_BOMBIRDIER GEN9_START + 62 -#define SPECIES_FINIZEN GEN9_START + 63 -#define SPECIES_PALAFIN SPECIES_PALAFIN_ZERO -#define SPECIES_PALAFIN_ZERO GEN9_START + 64 -#define SPECIES_PALAFIN_HERO GEN9_START + 65 -#define SPECIES_VAROOM GEN9_START + 66 -#define SPECIES_REVAVROOM GEN9_START + 67 -#define SPECIES_CYCLIZAR GEN9_START + 68 -#define SPECIES_ORTHWORM GEN9_START + 69 -#define SPECIES_GLIMMET GEN9_START + 70 -#define SPECIES_GLIMMORA GEN9_START + 71 -#define SPECIES_GREAVARD GEN9_START + 72 -#define SPECIES_HOUNDSTONE GEN9_START + 73 -#define SPECIES_FLAMIGO GEN9_START + 74 -#define SPECIES_CETODDLE GEN9_START + 75 -#define SPECIES_CETITAN GEN9_START + 76 -#define SPECIES_VELUZA GEN9_START + 77 -#define SPECIES_DONDOZO GEN9_START + 78 -#define SPECIES_TATSUGIRI SPECIES_TATSUGIRI_CURLY -#define SPECIES_TATSUGIRI_CURLY GEN9_START + 79 -#define SPECIES_TATSUGIRI_DROOPY GEN9_START + 80 -#define SPECIES_TATSUGIRI_STRETCHY GEN9_START + 81 -#define SPECIES_ANNIHILAPE GEN9_START + 82 -#define SPECIES_CLODSIRE GEN9_START + 83 -#define SPECIES_FARIGIRAF GEN9_START + 84 -#define SPECIES_DUDUNSPARCE SPECIES_DUDUNSPARCE_TWO_SEGMENT -#define SPECIES_DUDUNSPARCE_TWO_SEGMENT GEN9_START + 85 -#define SPECIES_DUDUNSPARCE_THREE_SEGMENT GEN9_START + 86 -#define SPECIES_KINGAMBIT GEN9_START + 87 -#define SPECIES_GREAT_TUSK GEN9_START + 88 -#define SPECIES_SCREAM_TAIL GEN9_START + 89 -#define SPECIES_BRUTE_BONNET GEN9_START + 90 -#define SPECIES_FLUTTER_MANE GEN9_START + 91 -#define SPECIES_SLITHER_WING GEN9_START + 92 -#define SPECIES_SANDY_SHOCKS GEN9_START + 93 -#define SPECIES_IRON_TREADS GEN9_START + 94 -#define SPECIES_IRON_BUNDLE GEN9_START + 95 -#define SPECIES_IRON_HANDS GEN9_START + 96 -#define SPECIES_IRON_JUGULIS GEN9_START + 97 -#define SPECIES_IRON_MOTH GEN9_START + 98 -#define SPECIES_IRON_THORNS GEN9_START + 99 -#define SPECIES_FRIGIBAX GEN9_START + 100 -#define SPECIES_ARCTIBAX GEN9_START + 101 -#define SPECIES_BAXCALIBUR GEN9_START + 102 -#define SPECIES_GIMMIGHOUL SPECIES_GIMMIGHOUL_CHEST -#define SPECIES_GIMMIGHOUL_CHEST GEN9_START + 103 -#define SPECIES_GIMMIGHOUL_ROAMING GEN9_START + 104 -#define SPECIES_GHOLDENGO GEN9_START + 105 -#define SPECIES_WO_CHIEN GEN9_START + 106 -#define SPECIES_CHIEN_PAO GEN9_START + 107 -#define SPECIES_TING_LU GEN9_START + 108 -#define SPECIES_CHI_YU GEN9_START + 109 -#define SPECIES_ROARING_MOON GEN9_START + 110 -#define SPECIES_IRON_VALIANT GEN9_START + 111 -#define SPECIES_KORAIDON GEN9_START + 112 -#define SPECIES_MIRAIDON GEN9_START + 113 +#define GEN9_START SPECIES_ALCREMIE_RIBBON_RAINBOW_SWIRL + +#define SPECIES_SPRIGATITO GEN9_START + 1 +#define SPECIES_FLORAGATO GEN9_START + 2 +#define SPECIES_MEOWSCARADA GEN9_START + 3 +#define SPECIES_FUECOCO GEN9_START + 4 +#define SPECIES_CROCALOR GEN9_START + 5 +#define SPECIES_SKELEDIRGE GEN9_START + 6 +#define SPECIES_QUAXLY GEN9_START + 7 +#define SPECIES_QUAXWELL GEN9_START + 8 +#define SPECIES_QUAQUAVAL GEN9_START + 9 +#define SPECIES_LECHONK GEN9_START + 10 +#define SPECIES_OINKOLOGNE SPECIES_OINKOLOGNE_MALE +#define SPECIES_OINKOLOGNE_MALE GEN9_START + 11 +#define SPECIES_OINKOLOGNE_FEMALE GEN9_START + 12 +#define SPECIES_TAROUNTULA GEN9_START + 13 +#define SPECIES_SPIDOPS GEN9_START + 14 +#define SPECIES_NYMBLE GEN9_START + 15 +#define SPECIES_LOKIX GEN9_START + 16 +#define SPECIES_PAWMI GEN9_START + 17 +#define SPECIES_PAWMO GEN9_START + 18 +#define SPECIES_PAWMOT GEN9_START + 19 +#define SPECIES_TANDEMAUS GEN9_START + 20 +#define SPECIES_MAUSHOLD SPECIES_MAUSHOLD_FAMILY_OF_THREE +#define SPECIES_MAUSHOLD_FAMILY_OF_THREE GEN9_START + 21 +#define SPECIES_MAUSHOLD_FAMILY_OF_FOUR GEN9_START + 22 +#define SPECIES_FIDOUGH GEN9_START + 23 +#define SPECIES_DACHSBUN GEN9_START + 24 +#define SPECIES_SMOLIV GEN9_START + 25 +#define SPECIES_DOLLIV GEN9_START + 26 +#define SPECIES_ARBOLIVA GEN9_START + 27 +#define SPECIES_SQUAWKABILLY SPECIES_SQUAWKABILLY_GREEN_PLUMAGE +#define SPECIES_SQUAWKABILLY_GREEN_PLUMAGE GEN9_START + 28 +#define SPECIES_SQUAWKABILLY_BLUE_PLUMAGE GEN9_START + 29 +#define SPECIES_SQUAWKABILLY_YELLOW_PLUMAGE GEN9_START + 30 +#define SPECIES_SQUAWKABILLY_WHITE_PLUMAGE GEN9_START + 31 +#define SPECIES_NACLI GEN9_START + 32 +#define SPECIES_NACLSTACK GEN9_START + 33 +#define SPECIES_GARGANACL GEN9_START + 34 +#define SPECIES_CHARCADET GEN9_START + 35 +#define SPECIES_ARMAROUGE GEN9_START + 36 +#define SPECIES_CERULEDGE GEN9_START + 37 +#define SPECIES_TADBULB GEN9_START + 38 +#define SPECIES_BELLIBOLT GEN9_START + 39 +#define SPECIES_WATTREL GEN9_START + 40 +#define SPECIES_KILOWATTREL GEN9_START + 41 +#define SPECIES_MASCHIFF GEN9_START + 42 +#define SPECIES_MABOSSTIFF GEN9_START + 43 +#define SPECIES_SHROODLE GEN9_START + 44 +#define SPECIES_GRAFAIAI GEN9_START + 45 +#define SPECIES_BRAMBLIN GEN9_START + 46 +#define SPECIES_BRAMBLEGHAST GEN9_START + 47 +#define SPECIES_TOEDSCOOL GEN9_START + 48 +#define SPECIES_TOEDSCRUEL GEN9_START + 49 +#define SPECIES_KLAWF GEN9_START + 50 +#define SPECIES_CAPSAKID GEN9_START + 51 +#define SPECIES_SCOVILLAIN GEN9_START + 52 +#define SPECIES_RELLOR GEN9_START + 53 +#define SPECIES_RABSCA GEN9_START + 54 +#define SPECIES_FLITTLE GEN9_START + 55 +#define SPECIES_ESPATHRA GEN9_START + 56 +#define SPECIES_TINKATINK GEN9_START + 57 +#define SPECIES_TINKATUFF GEN9_START + 58 +#define SPECIES_TINKATON GEN9_START + 59 +#define SPECIES_WIGLETT GEN9_START + 60 +#define SPECIES_WUGTRIO GEN9_START + 61 +#define SPECIES_BOMBIRDIER GEN9_START + 62 +#define SPECIES_FINIZEN GEN9_START + 63 +#define SPECIES_PALAFIN SPECIES_PALAFIN_ZERO +#define SPECIES_PALAFIN_ZERO GEN9_START + 64 +#define SPECIES_PALAFIN_HERO GEN9_START + 65 +#define SPECIES_VAROOM GEN9_START + 66 +#define SPECIES_REVAVROOM GEN9_START + 67 +#define SPECIES_CYCLIZAR GEN9_START + 68 +#define SPECIES_ORTHWORM GEN9_START + 69 +#define SPECIES_GLIMMET GEN9_START + 70 +#define SPECIES_GLIMMORA GEN9_START + 71 +#define SPECIES_GREAVARD GEN9_START + 72 +#define SPECIES_HOUNDSTONE GEN9_START + 73 +#define SPECIES_FLAMIGO GEN9_START + 74 +#define SPECIES_CETODDLE GEN9_START + 75 +#define SPECIES_CETITAN GEN9_START + 76 +#define SPECIES_VELUZA GEN9_START + 77 +#define SPECIES_DONDOZO GEN9_START + 78 +#define SPECIES_TATSUGIRI SPECIES_TATSUGIRI_CURLY +#define SPECIES_TATSUGIRI_CURLY GEN9_START + 79 +#define SPECIES_TATSUGIRI_DROOPY GEN9_START + 80 +#define SPECIES_TATSUGIRI_STRETCHY GEN9_START + 81 +#define SPECIES_ANNIHILAPE GEN9_START + 82 +#define SPECIES_CLODSIRE GEN9_START + 83 +#define SPECIES_FARIGIRAF GEN9_START + 84 +#define SPECIES_DUDUNSPARCE SPECIES_DUDUNSPARCE_TWO_SEGMENT +#define SPECIES_DUDUNSPARCE_TWO_SEGMENT GEN9_START + 85 +#define SPECIES_DUDUNSPARCE_THREE_SEGMENT GEN9_START + 86 +#define SPECIES_KINGAMBIT GEN9_START + 87 +#define SPECIES_GREAT_TUSK GEN9_START + 88 +#define SPECIES_SCREAM_TAIL GEN9_START + 89 +#define SPECIES_BRUTE_BONNET GEN9_START + 90 +#define SPECIES_FLUTTER_MANE GEN9_START + 91 +#define SPECIES_SLITHER_WING GEN9_START + 92 +#define SPECIES_SANDY_SHOCKS GEN9_START + 93 +#define SPECIES_IRON_TREADS GEN9_START + 94 +#define SPECIES_IRON_BUNDLE GEN9_START + 95 +#define SPECIES_IRON_HANDS GEN9_START + 96 +#define SPECIES_IRON_JUGULIS GEN9_START + 97 +#define SPECIES_IRON_MOTH GEN9_START + 98 +#define SPECIES_IRON_THORNS GEN9_START + 99 +#define SPECIES_FRIGIBAX GEN9_START + 100 +#define SPECIES_ARCTIBAX GEN9_START + 101 +#define SPECIES_BAXCALIBUR GEN9_START + 102 +#define SPECIES_GIMMIGHOUL SPECIES_GIMMIGHOUL_CHEST +#define SPECIES_GIMMIGHOUL_CHEST GEN9_START + 103 +#define SPECIES_GIMMIGHOUL_ROAMING GEN9_START + 104 +#define SPECIES_GHOLDENGO GEN9_START + 105 +#define SPECIES_WO_CHIEN GEN9_START + 106 +#define SPECIES_CHIEN_PAO GEN9_START + 107 +#define SPECIES_TING_LU GEN9_START + 108 +#define SPECIES_CHI_YU GEN9_START + 109 +#define SPECIES_ROARING_MOON GEN9_START + 110 +#define SPECIES_IRON_VALIANT GEN9_START + 111 +#define SPECIES_KORAIDON GEN9_START + 112 +#define SPECIES_MIRAIDON GEN9_START + 113 // Paldean Forms -#define SPECIES_TAUROS_PALDEAN_COMBAT_BREED GEN9_START + 114 -#define SPECIES_TAUROS_PALDEAN_BLAZE_BREED GEN9_START + 115 -#define SPECIES_TAUROS_PALDEAN_AQUA_BREED GEN9_START + 116 -#define SPECIES_WOOPER_PALDEAN GEN9_START + 117 +#define SPECIES_TAUROS_PALDEAN_COMBAT_BREED GEN9_START + 114 +#define SPECIES_TAUROS_PALDEAN_BLAZE_BREED GEN9_START + 115 +#define SPECIES_TAUROS_PALDEAN_AQUA_BREED GEN9_START + 116 +#define SPECIES_WOOPER_PALDEAN GEN9_START + 117 // Scarlet and Violet 1.2.0 -#define SPECIES_WALKING_WAKE GEN9_START + 118 -#define SPECIES_IRON_LEAVES GEN9_START + 119 +#define SPECIES_WALKING_WAKE GEN9_START + 118 +#define SPECIES_IRON_LEAVES GEN9_START + 119 // Teal Mask #define SPECIES_DIPPLIN GEN9_START + 120 #define SPECIES_POLTCHAGEIST SPECIES_POLTCHAGEIST_COUNTERFEIT diff --git a/include/graphics.h b/include/graphics.h index 3a849d193c..9a066bfbe2 100644 --- a/include/graphics.h +++ b/include/graphics.h @@ -1368,14 +1368,6 @@ extern const u32 gMonFrontPic_MagearnaOriginalColor[]; extern const u32 gMonFrontPic_CramorantGulping[]; extern const u32 gMonFrontPic_CramorantGorging[]; extern const u32 gMonFrontPic_ToxtricityLowKey[]; -extern const u32 gMonFrontPic_AlcremieRubyCream[]; -extern const u32 gMonFrontPic_AlcremieMatchaCream[]; -extern const u32 gMonFrontPic_AlcremieMintCream[]; -extern const u32 gMonFrontPic_AlcremieLemonCream[]; -extern const u32 gMonFrontPic_AlcremieSaltedCream[]; -extern const u32 gMonFrontPic_AlcremieRubySwirl[]; -extern const u32 gMonFrontPic_AlcremieCaramelSwirl[]; -extern const u32 gMonFrontPic_AlcremieRainbowSwirl[]; extern const u32 gMonFrontPic_EiscueNoiceFace[]; extern const u32 gMonFrontPic_IndeedeeFemale[]; extern const u32 gMonFrontPic_MorpekoHangry[]; @@ -2653,14 +2645,6 @@ extern const u32 gMonBackPic_MagearnaOriginalColor[]; extern const u32 gMonBackPic_CramorantGulping[]; extern const u32 gMonBackPic_CramorantGorging[]; extern const u32 gMonBackPic_ToxtricityLowKey[]; -extern const u32 gMonBackPic_AlcremieRubyCream[]; -extern const u32 gMonBackPic_AlcremieMatchaCream[]; -extern const u32 gMonBackPic_AlcremieMintCream[]; -extern const u32 gMonBackPic_AlcremieLemonCream[]; -extern const u32 gMonBackPic_AlcremieSaltedCream[]; -extern const u32 gMonBackPic_AlcremieRubySwirl[]; -extern const u32 gMonBackPic_AlcremieCaramelSwirl[]; -extern const u32 gMonBackPic_AlcremieRainbowSwirl[]; extern const u32 gMonBackPic_EiscueNoiceFace[]; extern const u32 gMonBackPic_IndeedeeFemale[]; extern const u32 gMonBackPic_MorpekoHangry[]; @@ -3918,14 +3902,6 @@ extern const u32 gMonPalette_MagearnaOriginalColor[]; extern const u32 gMonPalette_CramorantGulping[]; extern const u32 gMonPalette_CramorantGorging[]; extern const u32 gMonPalette_ToxtricityLowKey[]; -extern const u32 gMonPalette_AlcremieRubyCream[]; -extern const u32 gMonPalette_AlcremieMatchaCream[]; -extern const u32 gMonPalette_AlcremieMintCream[]; -extern const u32 gMonPalette_AlcremieLemonCream[]; -extern const u32 gMonPalette_AlcremieSaltedCream[]; -extern const u32 gMonPalette_AlcremieRubySwirl[]; -extern const u32 gMonPalette_AlcremieCaramelSwirl[]; -extern const u32 gMonPalette_AlcremieRainbowSwirl[]; extern const u32 gMonPalette_EiscueNoiceFace[]; extern const u32 gMonPalette_IndeedeeFemale[]; extern const u32 gMonPalette_MorpekoHangry[]; @@ -5178,14 +5154,6 @@ extern const u32 gMonShinyPalette_MagearnaOriginalColor[]; extern const u32 gMonShinyPalette_CramorantGulping[]; extern const u32 gMonShinyPalette_CramorantGorging[]; extern const u32 gMonShinyPalette_ToxtricityLowKey[]; -extern const u32 gMonShinyPalette_AlcremieRubyCream[]; -extern const u32 gMonShinyPalette_AlcremieMatchaCream[]; -extern const u32 gMonShinyPalette_AlcremieMintCream[]; -extern const u32 gMonShinyPalette_AlcremieLemonCream[]; -extern const u32 gMonShinyPalette_AlcremieSaltedCream[]; -extern const u32 gMonShinyPalette_AlcremieRubySwirl[]; -extern const u32 gMonShinyPalette_AlcremieCaramelSwirl[]; -extern const u32 gMonShinyPalette_AlcremieRainbowSwirl[]; extern const u32 gMonShinyPalette_EiscueNoiceFace[]; extern const u32 gMonShinyPalette_IndeedeeFemale[]; extern const u32 gMonShinyPalette_MorpekoHangry[]; @@ -6119,7 +6087,15 @@ extern const u8 gMonIcon_Sirfetchd[]; extern const u8 gMonIcon_MrRime[]; extern const u8 gMonIcon_Runerigus[]; extern const u8 gMonIcon_Milcery[]; -extern const u8 gMonIcon_Alcremie[]; +extern const u8 gMonIcon_AlcremieStrawberryVanillaCream[]; +//extern const u8 gMonIcon_AlcremieStrawberryRubyCream[]; +//extern const u8 gMonIcon_AlcremieStrawberryMatchaCream[]; +//extern const u8 gMonIcon_AlcremieStrawberryMintCream[]; +//extern const u8 gMonIcon_AlcremieStrawberryLemonCream[]; +//extern const u8 gMonIcon_AlcremieStrawberrySaltedCream[]; +//extern const u8 gMonIcon_AlcremieStrawberryRubySwirl[]; +//extern const u8 gMonIcon_AlcremieStrawberryCaramelSwirl[]; +//extern const u8 gMonIcon_AlcremieStrawberryRainbowSwirl[]; extern const u8 gMonIcon_Falinks[]; extern const u8 gMonIcon_Pincurchin[]; extern const u8 gMonIcon_Snom[]; @@ -6433,14 +6409,6 @@ extern const u8 gMonIcon_MagearnaOriginalColor[]; extern const u8 gMonIcon_CramorantGulping[]; extern const u8 gMonIcon_CramorantGorging[]; extern const u8 gMonIcon_ToxtricityLowKey[]; -//extern const u8 gMonIcon_AlcremieStrawberryRubyCream[]; -//extern const u8 gMonIcon_AlcremieStrawberryMatchaCream[]; -//extern const u8 gMonIcon_AlcremieStrawberryMintCream[]; -//extern const u8 gMonIcon_AlcremieStrawberryLemonCream[]; -//extern const u8 gMonIcon_AlcremieStrawberrySaltedCream[]; -//extern const u8 gMonIcon_AlcremieStrawberryRubySwirl[]; -//extern const u8 gMonIcon_AlcremieStrawberryCaramelSwirl[]; -//extern const u8 gMonIcon_AlcremieStrawberryRainbowSwirl[]; extern const u8 gMonIcon_EiscueNoiceFace[]; extern const u8 gMonIcon_IndeedeeFemale[]; extern const u8 gMonIcon_MorpekoHangry[]; @@ -7366,12 +7334,97 @@ extern const u8 gMonFootprint_Sirfetchd[]; extern const u8 gMonFootprint_Mr_Rime[]; extern const u8 gMonFootprint_Runerigus[]; extern const u8 gMonFootprint_Milcery[]; +extern const u32 gMonFrontPic_AlcremieStrawberry[]; +extern const u32 gMonPalette_AlcremieStrawberryVanillaCream[]; +extern const u32 gMonPalette_AlcremieStrawberryRubyCream[]; +extern const u32 gMonPalette_AlcremieStrawberryMatchaCream[]; +extern const u32 gMonPalette_AlcremieStrawberryMintCream[]; +extern const u32 gMonPalette_AlcremieStrawberryLemonCream[]; +extern const u32 gMonPalette_AlcremieStrawberrySaltedCream[]; +extern const u32 gMonPalette_AlcremieStrawberryRubySwirl[]; +extern const u32 gMonPalette_AlcremieStrawberryCaramelSwirl[]; +extern const u32 gMonPalette_AlcremieStrawberryRainbowSwirl[]; +extern const u32 gMonBackPic_AlcremieStrawberry[]; +extern const u32 gMonShinyPalette_AlcremieStrawberry[]; extern const u8 gMonFootprint_Alcremie[]; -extern const u32 gMonFrontPic_Falinks[]; -extern const u32 gMonPalette_Falinks[]; -extern const u32 gMonBackPic_Falinks[]; -extern const u32 gMonShinyPalette_Falinks[]; -extern const u8 gMonIcon_Falinks[]; +extern const u32 gMonFrontPic_AlcremieBerry[]; +extern const u32 gMonPalette_AlcremieBerryVanillaCream[]; +extern const u32 gMonPalette_AlcremieBerryRubyCream[]; +extern const u32 gMonPalette_AlcremieBerryMatchaCream[]; +extern const u32 gMonPalette_AlcremieBerryMintCream[]; +extern const u32 gMonPalette_AlcremieBerryLemonCream[]; +extern const u32 gMonPalette_AlcremieBerrySaltedCream[]; +extern const u32 gMonPalette_AlcremieBerryRubySwirl[]; +extern const u32 gMonPalette_AlcremieBerryCaramelSwirl[]; +extern const u32 gMonPalette_AlcremieBerryRainbowSwirl[]; +extern const u32 gMonBackPic_AlcremieBerry[]; +extern const u32 gMonShinyPalette_AlcremieBerry[]; +//extern const u8 gMonIcon_AlcremieBerry[]; +extern const u32 gMonFrontPic_AlcremieLove[]; +extern const u32 gMonPalette_AlcremieLoveVanillaCream[]; +extern const u32 gMonPalette_AlcremieLoveRubyCream[]; +extern const u32 gMonPalette_AlcremieLoveMatchaCream[]; +extern const u32 gMonPalette_AlcremieLoveMintCream[]; +extern const u32 gMonPalette_AlcremieLoveLemonCream[]; +extern const u32 gMonPalette_AlcremieLoveSaltedCream[]; +extern const u32 gMonPalette_AlcremieLoveRubySwirl[]; +extern const u32 gMonPalette_AlcremieLoveCaramelSwirl[]; +extern const u32 gMonPalette_AlcremieLoveRainbowSwirl[]; +extern const u32 gMonBackPic_AlcremieLove[]; +extern const u32 gMonShinyPalette_AlcremieLove[]; +//extern const u8 gMonIcon_AlcremieLove[]; +extern const u32 gMonFrontPic_AlcremieStar[]; +extern const u32 gMonPalette_AlcremieStarVanillaCream[]; +extern const u32 gMonPalette_AlcremieStarRubyCream[]; +extern const u32 gMonPalette_AlcremieStarMatchaCream[]; +extern const u32 gMonPalette_AlcremieStarMintCream[]; +extern const u32 gMonPalette_AlcremieStarLemonCream[]; +extern const u32 gMonPalette_AlcremieStarSaltedCream[]; +extern const u32 gMonPalette_AlcremieStarRubySwirl[]; +extern const u32 gMonPalette_AlcremieStarCaramelSwirl[]; +extern const u32 gMonPalette_AlcremieStarRainbowSwirl[]; +extern const u32 gMonBackPic_AlcremieStar[]; +extern const u32 gMonShinyPalette_AlcremieStar[]; +//extern const u8 gMonIcon_AlcremieStar[]; +extern const u32 gMonFrontPic_AlcremieClover[]; +extern const u32 gMonPalette_AlcremieCloverVanillaCream[]; +extern const u32 gMonPalette_AlcremieCloverRubyCream[]; +extern const u32 gMonPalette_AlcremieCloverMatchaCream[]; +extern const u32 gMonPalette_AlcremieCloverMintCream[]; +extern const u32 gMonPalette_AlcremieCloverLemonCream[]; +extern const u32 gMonPalette_AlcremieCloverSaltedCream[]; +extern const u32 gMonPalette_AlcremieCloverRubySwirl[]; +extern const u32 gMonPalette_AlcremieCloverCaramelSwirl[]; +extern const u32 gMonPalette_AlcremieCloverRainbowSwirl[]; +extern const u32 gMonBackPic_AlcremieClover[]; +extern const u32 gMonShinyPalette_AlcremieClover[]; +//extern const u8 gMonIcon_AlcremieClover[]; +extern const u32 gMonFrontPic_AlcremieFlower[]; +extern const u32 gMonPalette_AlcremieFlowerVanillaCream[]; +extern const u32 gMonPalette_AlcremieFlowerRubyCream[]; +extern const u32 gMonPalette_AlcremieFlowerMatchaCream[]; +extern const u32 gMonPalette_AlcremieFlowerMintCream[]; +extern const u32 gMonPalette_AlcremieFlowerLemonCream[]; +extern const u32 gMonPalette_AlcremieFlowerSaltedCream[]; +extern const u32 gMonPalette_AlcremieFlowerRubySwirl[]; +extern const u32 gMonPalette_AlcremieFlowerCaramelSwirl[]; +extern const u32 gMonPalette_AlcremieFlowerRainbowSwirl[]; +extern const u32 gMonBackPic_AlcremieFlower[]; +extern const u32 gMonShinyPalette_AlcremieFlower[]; +//extern const u8 gMonIcon_AlcremieFlower[]; +extern const u32 gMonFrontPic_AlcremieRibbon[]; +extern const u32 gMonPalette_AlcremieRibbonVanillaCream[]; +extern const u32 gMonPalette_AlcremieRibbonRubyCream[]; +extern const u32 gMonPalette_AlcremieRibbonMatchaCream[]; +extern const u32 gMonPalette_AlcremieRibbonMintCream[]; +extern const u32 gMonPalette_AlcremieRibbonLemonCream[]; +extern const u32 gMonPalette_AlcremieRibbonSaltedCream[]; +extern const u32 gMonPalette_AlcremieRibbonRubySwirl[]; +extern const u32 gMonPalette_AlcremieRibbonCaramelSwirl[]; +extern const u32 gMonPalette_AlcremieRibbonRainbowSwirl[]; +extern const u32 gMonBackPic_AlcremieRibbon[]; +extern const u32 gMonShinyPalette_AlcremieRibbon[]; +//extern const u8 gMonIcon_AlcremieRibbon[]; extern const u8 gMonFootprint_Falinks[]; extern const u8 gMonFootprint_Pincurchin[]; extern const u8 gMonFootprint_Snom[]; @@ -11130,6 +11183,11 @@ extern const u32 gBattleAnimSpriteGfx_WoodHammerHammer[]; extern const u32 gBattleAnimSpritePal_WoodHammerHammer[]; extern const u32 gBattleAnimSpriteGfx_Snowflakes[]; extern const u32 gBattleAnimSpritePal_Snowflakes[]; +extern const u32 gBattleAnimSpriteGfx_SyrupBlob[]; +extern const u32 gBattleAnimSpriteGfx_SyrupShell[]; +extern const u32 gBattleAnimSpriteGfx_SyrupSplat[]; +extern const u32 gBattleAnimSpritePal_SyrupRed[]; +extern const u32 gBattleAnimSpritePal_SyrupYellow[]; extern const u32 gBattleAnimBgImage_Dark[]; extern const u32 gBattleAnimBgImage_Ghost[]; diff --git a/include/wild_encounter.h b/include/wild_encounter.h index bef89d8950..13e7600684 100644 --- a/include/wild_encounter.h +++ b/include/wild_encounter.h @@ -31,6 +31,7 @@ extern bool8 gIsFishingEncounter; extern bool8 gIsSurfingEncounter; void DisableWildEncounters(bool8 disabled); +u8 PickWildMonNature(void); bool8 StandardWildEncounter(u16 currMetaTileBehavior, u16 previousMetaTileBehavior); bool8 SweetScentWildEncounter(void); bool8 DoesCurrentMapHaveFishingMons(void); diff --git a/sound/cry_tables.inc b/sound/cry_tables.inc index 2fcefe23fd..9226ccd886 100644 --- a/sound/cry_tables.inc +++ b/sound/cry_tables.inc @@ -2082,6 +2082,61 @@ gCryTable:: cry Cry_CalyrexShadowRider @ Basculegion cry Cry_Basculegion + @ Alcremie + cry Cry_Alcremie + cry Cry_Alcremie + cry Cry_Alcremie + cry Cry_Alcremie + cry Cry_Alcremie + cry Cry_Alcremie + cry Cry_Alcremie + cry Cry_Alcremie + cry Cry_Alcremie + cry Cry_Alcremie + cry Cry_Alcremie + cry Cry_Alcremie + cry Cry_Alcremie + cry Cry_Alcremie + cry Cry_Alcremie + cry Cry_Alcremie + cry Cry_Alcremie + cry Cry_Alcremie + cry Cry_Alcremie + cry Cry_Alcremie + cry Cry_Alcremie + cry Cry_Alcremie + cry Cry_Alcremie + cry Cry_Alcremie + cry Cry_Alcremie + cry Cry_Alcremie + cry Cry_Alcremie + cry Cry_Alcremie + cry Cry_Alcremie + cry Cry_Alcremie + cry Cry_Alcremie + cry Cry_Alcremie + cry Cry_Alcremie + cry Cry_Alcremie + cry Cry_Alcremie + cry Cry_Alcremie + cry Cry_Alcremie + cry Cry_Alcremie + cry Cry_Alcremie + cry Cry_Alcremie + cry Cry_Alcremie + cry Cry_Alcremie + cry Cry_Alcremie + cry Cry_Alcremie + cry Cry_Alcremie + cry Cry_Alcremie + cry Cry_Alcremie + cry Cry_Alcremie + cry Cry_Alcremie + cry Cry_Alcremie + cry Cry_Alcremie + cry Cry_Alcremie + cry Cry_Alcremie + cry Cry_Alcremie .else @ Cramorant cry Cry_Unown @@ -2101,6 +2156,7 @@ gCryTable:: cry Cry_Unown cry Cry_Unown cry Cry_Unown + cry Cry_Unown @ Eiscue cry Cry_Unown @ Indeedee @@ -2122,6 +2178,61 @@ gCryTable:: cry Cry_Unown @ Basculegion cry Cry_Unown + @ Alcremie + cry Cry_Unown + cry Cry_Unown + cry Cry_Unown + cry Cry_Unown + cry Cry_Unown + cry Cry_Unown + cry Cry_Unown + cry Cry_Unown + cry Cry_Unown + cry Cry_Unown + cry Cry_Unown + cry Cry_Unown + cry Cry_Unown + cry Cry_Unown + cry Cry_Unown + cry Cry_Unown + cry Cry_Unown + cry Cry_Unown + cry Cry_Unown + cry Cry_Unown + cry Cry_Unown + cry Cry_Unown + cry Cry_Unown + cry Cry_Unown + cry Cry_Unown + cry Cry_Unown + cry Cry_Unown + cry Cry_Unown + cry Cry_Unown + cry Cry_Unown + cry Cry_Unown + cry Cry_Unown + cry Cry_Unown + cry Cry_Unown + cry Cry_Unown + cry Cry_Unown + cry Cry_Unown + cry Cry_Unown + cry Cry_Unown + cry Cry_Unown + cry Cry_Unown + cry Cry_Unown + cry Cry_Unown + cry Cry_Unown + cry Cry_Unown + cry Cry_Unown + cry Cry_Unown + cry Cry_Unown + cry Cry_Unown + cry Cry_Unown + cry Cry_Unown + cry Cry_Unown + cry Cry_Unown + cry Cry_Unown .endif .if P_GEN_9_POKEMON == TRUE cry Cry_Sprigatito @@ -4511,6 +4622,61 @@ gCryTable_Reverse:: cry_reverse Cry_CalyrexShadowRider @ Basculegion cry_reverse Cry_Basculegion + @ Alcremie + cry_reverse Cry_Alcremie + cry_reverse Cry_Alcremie + cry_reverse Cry_Alcremie + cry_reverse Cry_Alcremie + cry_reverse Cry_Alcremie + cry_reverse Cry_Alcremie + cry_reverse Cry_Alcremie + cry_reverse Cry_Alcremie + cry_reverse Cry_Alcremie + cry_reverse Cry_Alcremie + cry_reverse Cry_Alcremie + cry_reverse Cry_Alcremie + cry_reverse Cry_Alcremie + cry_reverse Cry_Alcremie + cry_reverse Cry_Alcremie + cry_reverse Cry_Alcremie + cry_reverse Cry_Alcremie + cry_reverse Cry_Alcremie + cry_reverse Cry_Alcremie + cry_reverse Cry_Alcremie + cry_reverse Cry_Alcremie + cry_reverse Cry_Alcremie + cry_reverse Cry_Alcremie + cry_reverse Cry_Alcremie + cry_reverse Cry_Alcremie + cry_reverse Cry_Alcremie + cry_reverse Cry_Alcremie + cry_reverse Cry_Alcremie + cry_reverse Cry_Alcremie + cry_reverse Cry_Alcremie + cry_reverse Cry_Alcremie + cry_reverse Cry_Alcremie + cry_reverse Cry_Alcremie + cry_reverse Cry_Alcremie + cry_reverse Cry_Alcremie + cry_reverse Cry_Alcremie + cry_reverse Cry_Alcremie + cry_reverse Cry_Alcremie + cry_reverse Cry_Alcremie + cry_reverse Cry_Alcremie + cry_reverse Cry_Alcremie + cry_reverse Cry_Alcremie + cry_reverse Cry_Alcremie + cry_reverse Cry_Alcremie + cry_reverse Cry_Alcremie + cry_reverse Cry_Alcremie + cry_reverse Cry_Alcremie + cry_reverse Cry_Alcremie + cry_reverse Cry_Alcremie + cry_reverse Cry_Alcremie + cry_reverse Cry_Alcremie + cry_reverse Cry_Alcremie + cry_reverse Cry_Alcremie + cry_reverse Cry_Alcremie .else cry_reverse Cry_Unown cry_reverse Cry_Unown @@ -4536,6 +4702,60 @@ gCryTable_Reverse:: cry_reverse Cry_Unown cry_reverse Cry_Unown cry_reverse Cry_Unown + cry_reverse Cry_Unown + cry_reverse Cry_Unown + cry_reverse Cry_Unown + cry_reverse Cry_Unown + cry_reverse Cry_Unown + cry_reverse Cry_Unown + cry_reverse Cry_Unown + cry_reverse Cry_Unown + cry_reverse Cry_Unown + cry_reverse Cry_Unown + cry_reverse Cry_Unown + cry_reverse Cry_Unown + cry_reverse Cry_Unown + cry_reverse Cry_Unown + cry_reverse Cry_Unown + cry_reverse Cry_Unown + cry_reverse Cry_Unown + cry_reverse Cry_Unown + cry_reverse Cry_Unown + cry_reverse Cry_Unown + cry_reverse Cry_Unown + cry_reverse Cry_Unown + cry_reverse Cry_Unown + cry_reverse Cry_Unown + cry_reverse Cry_Unown + cry_reverse Cry_Unown + cry_reverse Cry_Unown + cry_reverse Cry_Unown + cry_reverse Cry_Unown + cry_reverse Cry_Unown + cry_reverse Cry_Unown + cry_reverse Cry_Unown + cry_reverse Cry_Unown + cry_reverse Cry_Unown + cry_reverse Cry_Unown + cry_reverse Cry_Unown + cry_reverse Cry_Unown + cry_reverse Cry_Unown + cry_reverse Cry_Unown + cry_reverse Cry_Unown + cry_reverse Cry_Unown + cry_reverse Cry_Unown + cry_reverse Cry_Unown + cry_reverse Cry_Unown + cry_reverse Cry_Unown + cry_reverse Cry_Unown + cry_reverse Cry_Unown + cry_reverse Cry_Unown + cry_reverse Cry_Unown + cry_reverse Cry_Unown + cry_reverse Cry_Unown + cry_reverse Cry_Unown + cry_reverse Cry_Unown + cry_reverse Cry_Unown .endif .if P_GEN_9_POKEMON == TRUE cry_reverse Cry_Sprigatito diff --git a/src/battle_ai_main.c b/src/battle_ai_main.c index 03a41733aa..7cdd63317b 100644 --- a/src/battle_ai_main.c +++ b/src/battle_ai_main.c @@ -869,6 +869,10 @@ static s32 AI_CheckBadMove(u32 battlerAtk, u32 battlerDef, u32 move, s32 score) && move != MOVE_PLAY_NICE && move != MOVE_NOBLE_ROAR && move != MOVE_TEARFUL_LOOK && move != MOVE_VENOM_DRENCH) RETURN_SCORE_MINUS(10); break; + case ABILITY_ILLUMINATE: + if (B_ILLUMINATE_EFFECT < GEN_9) + break; + // fallthrough case ABILITY_KEEN_EYE: if (moveEffect == EFFECT_ACCURACY_DOWN || moveEffect == EFFECT_ACCURACY_DOWN_2) RETURN_SCORE_MINUS(10); @@ -1292,7 +1296,7 @@ static s32 AI_CheckBadMove(u32 battlerAtk, u32 battlerDef, u32 move, s32 score) case EFFECT_ACCURACY_DOWN_2: if (!ShouldLowerStat(battlerDef, aiData->abilities[battlerDef], STAT_ACC)) ADJUST_SCORE(-10); - else if (aiData->abilities[battlerDef] == ABILITY_KEEN_EYE) + else if (aiData->abilities[battlerDef] == ABILITY_KEEN_EYE || (B_ILLUMINATE_EFFECT >= GEN_9 && aiData->abilities[battlerDef] == ABILITY_ILLUMINATE)) ADJUST_SCORE(-8); break; case EFFECT_EVASION_DOWN: diff --git a/src/battle_ai_switch_items.c b/src/battle_ai_switch_items.c index 5d77dca70b..41f2b69129 100644 --- a/src/battle_ai_switch_items.c +++ b/src/battle_ai_switch_items.c @@ -347,6 +347,7 @@ static bool8 ShouldSwitchIfGameStatePrompt(u32 battler) if (gBattleMons[battler].statStages[STAT_EVASION] > (DEFAULT_STAT_STAGE + 3) && AI_DATA->abilities[opposingBattler] != ABILITY_UNAWARE && AI_DATA->abilities[opposingBattler] != ABILITY_KEEN_EYE + && (B_ILLUMINATE_EFFECT >= GEN_9 && AI_DATA->abilities[opposingBattler] != ABILITY_ILLUMINATE) && !(gBattleMons[battler].status2 & STATUS2_FORESIGHT) && !(gStatuses3[battler] & STATUS3_MIRACLE_EYED)) switchMon = FALSE; diff --git a/src/battle_ai_util.c b/src/battle_ai_util.c index faffe0e6b3..38c7a9550f 100644 --- a/src/battle_ai_util.c +++ b/src/battle_ai_util.c @@ -1996,6 +1996,7 @@ bool32 ShouldLowerAccuracy(u32 battlerAtk, u32 battlerDef, u32 defAbility) && defAbility != ABILITY_WHITE_SMOKE && defAbility != ABILITY_FULL_METAL_BODY && defAbility != ABILITY_KEEN_EYE + && (B_ILLUMINATE_EFFECT >= GEN_9 && defAbility != ABILITY_ILLUMINATE) && AI_DATA->holdEffects[battlerDef] != HOLD_EFFECT_CLEAR_AMULET) return TRUE; return FALSE; diff --git a/src/battle_anim_new.c b/src/battle_anim_new.c index f150afb799..0c99d2a434 100644 --- a/src/battle_anim_new.c +++ b/src/battle_anim_new.c @@ -9148,3 +9148,22 @@ void AnimTask_GetWeatherToSet(u8 taskId) } DestroyAnimVisualTask(taskId); } + +void AnimTask_SyrupBomb(u8 taskId) +{ + struct Pokemon *party = GetBattlerParty(gBattleAnimAttacker); + u32 isShiny = IsMonShiny(&party[gBattlerPartyIndexes[gBattleAnimAttacker]]); + + gDisableStructs[gBattleAnimTarget].syrupBombIsShiny = isShiny; + gBattleAnimArgs[0] = isShiny; + DestroyAnimVisualTask(taskId); +} + +void AnimTask_StickySyrup(u8 taskId) +{ + if (gDisableStructs[gBattleAnimTarget].syrupBombIsShiny) + gBattleAnimArgs[0] = TRUE; + else + gBattleAnimArgs[0] = FALSE; + DestroyAnimVisualTask(taskId); +} diff --git a/src/battle_anim_poison.c b/src/battle_anim_poison.c index 8905f5c475..0ed4e43090 100644 --- a/src/battle_anim_poison.c +++ b/src/battle_anim_poison.c @@ -14,6 +14,7 @@ static void AnimSuckerPunch(struct Sprite *sprite); static void AnimGunkShotParticlesStep(struct Sprite *sprite); static void AnimGunkShotParticles(struct Sprite *sprite); static void AnimGunkShotImpact(struct Sprite *sprite); +static void AnimAnimSyrupBomb(struct Sprite *); static const union AnimCmd sAnim_ToxicBubble[] = { @@ -305,6 +306,123 @@ const struct SpriteTemplate gGunkShotImpactSpriteTemplate = .callback = AnimGunkShotImpact, }; +static const union AnimCmd sAnim_SyrupCoat[] = +{ + ANIMCMD_FRAME(128, 10), + ANIMCMD_FRAME(64, 5), + ANIMCMD_FRAME(0, 45), + ANIMCMD_FRAME(64, 15), + ANIMCMD_FRAME(128, 15), + ANIMCMD_FRAME(192, 20), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_SyrupStick[] = +{ + ANIMCMD_FRAME(192, 5), + ANIMCMD_FRAME(128, 35), + ANIMCMD_FRAME(192, 20), + ANIMCMD_END, +}; + +static const union AnimCmd *const sAnims_SyrupCoat[] = +{ + sAnim_SyrupCoat, +}; + +static const union AnimCmd *const sAnims_SyrupStick[] = +{ + sAnim_SyrupStick, +}; + +const struct SpriteTemplate gSyrupRedProjectileSpriteTemplate = +{ + .tileTag = ANIM_TAG_SYRUP_BLOB_RED, + .paletteTag = ANIM_TAG_SYRUP_BLOB_RED, + .oam = &gOamData_AffineDouble_ObjNormal_16x16, + .anims = gAnims_PoisonProjectile, + .images = NULL, + .affineAnims = gAffineAnims_PoisonProjectile, + .callback = AnimSludgeProjectile, +}; + +const struct SpriteTemplate gSyrupYellowProjectileSpriteTemplate = +{ + .tileTag = ANIM_TAG_SYRUP_BLOB_YELLOW, + .paletteTag = ANIM_TAG_SYRUP_BLOB_YELLOW, + .oam = &gOamData_AffineDouble_ObjNormal_16x16, + .anims = gAnims_PoisonProjectile, + .images = NULL, + .affineAnims = gAffineAnims_PoisonProjectile, + .callback = AnimSludgeProjectile, +}; + +const struct SpriteTemplate gSyrupBombRedHitParticleSpriteTemplate = +{ + .tileTag = ANIM_TAG_SYRUP_SPLAT_RED, + .paletteTag = ANIM_TAG_SYRUP_BLOB_RED, + .oam = &gOamData_AffineNormal_ObjNormal_16x16, + .anims = gAnims_PoisonProjectile, + .images = NULL, + .affineAnims = sAffineAnims_SludgeBombHit, + .callback = AnimSludgeBombHitParticle, +}; + +const struct SpriteTemplate gSyrupBombYellowHitParticleSpriteTemplate = +{ + .tileTag = ANIM_TAG_SYRUP_SPLAT_YELLOW, + .paletteTag = ANIM_TAG_SYRUP_BLOB_YELLOW, + .oam = &gOamData_AffineNormal_ObjNormal_16x16, + .anims = gAnims_PoisonProjectile, + .images = NULL, + .affineAnims = sAffineAnims_SludgeBombHit, + .callback = AnimSludgeBombHitParticle, +}; + +const struct SpriteTemplate gSyrupBombRedShellSpriteTemplate = +{ + .tileTag = ANIM_TAG_SYRUP_SHELL_RED, + .paletteTag = ANIM_TAG_SYRUP_BLOB_RED, + .oam = &gOamData_AffineOff_ObjNormal_64x64, + .anims = sAnims_SyrupCoat, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = AnimAnimSyrupBomb, +}; + +const struct SpriteTemplate gSyrupBombYellowShellSpriteTemplate = +{ + .tileTag = ANIM_TAG_SYRUP_SHELL_YELLOW, + .paletteTag = ANIM_TAG_SYRUP_BLOB_YELLOW, + .oam = &gOamData_AffineOff_ObjNormal_64x64, + .anims = sAnims_SyrupCoat, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = AnimAnimSyrupBomb, +}; + +const struct SpriteTemplate gSyrupBombRedShellBSpriteTemplate = +{ + .tileTag = ANIM_TAG_SYRUP_SHELL_RED, + .paletteTag = ANIM_TAG_SYRUP_BLOB_RED, + .oam = &gOamData_AffineOff_ObjNormal_64x64, + .anims = sAnims_SyrupStick, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = AnimAnimSyrupBomb, +}; + +const struct SpriteTemplate gSyrupBombYellowShellBSpriteTemplate = +{ + .tileTag = ANIM_TAG_SYRUP_SHELL_YELLOW, + .paletteTag = ANIM_TAG_SYRUP_BLOB_YELLOW, + .oam = &gOamData_AffineOff_ObjNormal_64x64, + .anims = sAnims_SyrupStick, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = AnimAnimSyrupBomb, +}; + static void AnimGunkShotImpact(struct Sprite *sprite) { StartSpriteAffineAnim(sprite, gBattleAnimArgs[3]); @@ -534,3 +652,26 @@ static void AnimBubbleEffect_Step(struct Sprite *sprite) if (sprite->affineAnimEnded) DestroyAnimSprite(sprite); } + +static void AnimSyrupBomb_Step(struct Sprite *sprite) +{ + if (sprite->data[1] > sprite->data[0] - 10) + sprite->invisible = sprite->data[1] & 1; + + if (sprite->data[1] == sprite->data[0]) + DestroyAnimSprite(sprite); + + sprite->data[1]++; +} + +static void AnimAnimSyrupBomb(struct Sprite *sprite) +{ + if (gBattleAnimArgs[0] == ANIM_TARGET) + { + sprite->x = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2); + sprite->y = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y) + 2; + } + + sprite->data[0] = gBattleAnimArgs[1]; + sprite->callback = AnimSyrupBomb_Step; +} diff --git a/src/battle_controller_opponent.c b/src/battle_controller_opponent.c index 703d66105b..e697fbb227 100644 --- a/src/battle_controller_opponent.c +++ b/src/battle_controller_opponent.c @@ -561,13 +561,13 @@ static void OpponentHandleChooseMove(u32 battler) if (ShouldUseZMove(battler, gBattlerTarget, chosenMove)) QueueZMove(battler, chosenMove); // If opponent can Mega Evolve, do it. - if (CanMegaEvolve(battler)) + if (CanMegaEvolve(battler)) BtlController_EmitTwoReturnValues(battler, BUFFER_B, 10, (chosenMoveId) | (RET_MEGA_EVOLUTION) | (gBattlerTarget << 8)); // If opponent can Ultra Burst, do it. else if (CanUltraBurst(battler)) BtlController_EmitTwoReturnValues(battler, BUFFER_B, 10, (chosenMoveId) | (RET_ULTRA_BURST) | (gBattlerTarget << 8)); // If opponent can Dynamax and is on final Pokemon, do it. - else if (CanDynamax(battler) && CountAIAliveNonEggMonsExcept(gBattlerPartyIndexes[battler]) == 0) + else if (CanDynamax(battler) && CountAIAliveNonEggMonsExcept(gBattlerPartyIndexes[battler]) == 0) BtlController_EmitTwoReturnValues(battler, BUFFER_B, 10, (chosenMoveId) | (RET_DYNAMAX) | (gBattlerTarget << 8)); else BtlController_EmitTwoReturnValues(battler, BUFFER_B, 10, (chosenMoveId) | (gBattlerTarget << 8)); diff --git a/src/battle_controller_player.c b/src/battle_controller_player.c index e59ea5ba28..e1041582e8 100644 --- a/src/battle_controller_player.c +++ b/src/battle_controller_player.c @@ -707,11 +707,8 @@ static void HandleInputChooseMove(u32 battler) } // Status moves turn into Max Guard when Dynamaxed, targets user. - if ((IsDynamaxed(battler) || gBattleStruct->dynamax.playerSelect) - && gBattleMoves[moveInfo->moves[gMoveSelectionCursor[battler]]].split == SPLIT_STATUS) - { - moveTarget = MOVE_TARGET_USER; - } + if ((IsDynamaxed(battler) || gBattleStruct->dynamax.playerSelect)) + moveTarget = gBattleMoves[GetMaxMove(battler, moveInfo->moves[gMoveSelectionCursor[battler]])].target; if (moveTarget & MOVE_TARGET_USER) gMultiUsePlayerCursor = battler; diff --git a/src/battle_factory.c b/src/battle_factory.c index 5d7a199dc3..4543bfbad4 100644 --- a/src/battle_factory.c +++ b/src/battle_factory.c @@ -741,8 +741,15 @@ u8 GetFactoryMonFixedIV(u8 challengeNum, bool8 isLastBattle) u8 ivSet; bool8 useHigherIV = isLastBattle ? TRUE : FALSE; - if (challengeNum > 8) - ivSet = 7; +// The Factory has an out-of-bounds access when generating the rental draft for round 9 (challengeNum==8), +// or the "elevated" rentals from round 8 (challengeNum+1==8) +// This happens to land on a number higher than 31, which is interpreted as "random IVs" +#ifdef BUGFIX + if (challengeNum >= ARRAY_COUNT(sFixedIVTable)) +#else + if (challengeNum > ARRAY_COUNT(sFixedIVTable)) +#endif + ivSet = ARRAY_COUNT(sFixedIVTable) - 1; else ivSet = challengeNum; diff --git a/src/battle_main.c b/src/battle_main.c index 173fc45468..6b108506f3 100644 --- a/src/battle_main.c +++ b/src/battle_main.c @@ -4253,8 +4253,8 @@ static void HandleTurnActionSelectionState(void) gBattleStruct->mega.toEvolve &= ~(gBitTable[BATTLE_PARTNER(GetBattlerPosition(battler))]); gBattleStruct->burst.toBurst &= ~(gBitTable[BATTLE_PARTNER(GetBattlerPosition(battler))]); - gBattleStruct->dynamax.toDynamax &= ~(gBitTable[battler]); - gBattleStruct->dynamax.usingMaxMove[battler] = FALSE; + gBattleStruct->dynamax.toDynamax &= ~(gBitTable[BATTLE_PARTNER(GetBattlerPosition(battler))]); + gBattleStruct->dynamax.usingMaxMove[BATTLE_PARTNER(GetBattlerPosition(battler))] = FALSE; gBattleStruct->zmove.toBeUsed[BATTLE_PARTNER(GetBattlerPosition(battler))] = MOVE_NONE; BtlController_EmitEndBounceEffect(battler, BUFFER_A); MarkBattlerForControllerExec(battler); @@ -4354,7 +4354,7 @@ static void HandleTurnActionSelectionState(void) gBattleStruct->burst.toBurst |= gBitTable[battler]; else if (gBattleResources->bufferB[battler][2] & RET_DYNAMAX) gBattleStruct->dynamax.toDynamax |= gBitTable[battler]; - + // Max Move check if (ShouldUseMaxMove(battler, gChosenMoveByBattler[battler])) { diff --git a/src/battle_message.c b/src/battle_message.c index 116a42d6bc..e6e87186b4 100644 --- a/src/battle_message.c +++ b/src/battle_message.c @@ -702,7 +702,7 @@ static const u8 sText_PkmnAbsorbingPower[] = _("{B_ATK_NAME_WITH_PREFIX} is abso static const u8 sText_NoOneWillBeAbleToRun[] = _("No one will be able to run away\nduring the next turn!"); static const u8 sText_DestinyKnotActivates[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX} fell in love\nfrom the {B_LAST_ITEM}!"); static const u8 sText_CloakedInAFreezingLight[] = _("{B_ATK_NAME_WITH_PREFIX} became cloaked\nin a freezing light!"); -static const u8 sText_StatWasNotLowered[] = _("{B_DEF_NAME_WITH_PREFIX}'s {B_BUFF1}\nwas not lowered!"); +static const u8 sText_ClearAmuletWontLowerStats[] = _("{B_DEF_NAME_WITH_PREFIX}'s {B_LAST_ITEM} prevents\nits stats from being lowered!"); static const u8 sText_AuraFlaredToLife[] = _("{B_DEF_NAME_WITH_PREFIX}'s aura flared to life!"); static const u8 sText_AirLockActivates[] = _("The effects of weather\ndisappeared."); static const u8 sText_PressureActivates[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX} is exerting its\npressure!"); @@ -924,7 +924,7 @@ const u8 *const gBattleStringsTable[BATTLESTRINGS_COUNT] = [STRINGID_ASANDSTORMKICKEDUP - BATTLESTRINGS_TABLE_START] = sText_ASandstormKickedUp, [STRINGID_BATTLERABILITYRAISEDSTAT - BATTLESTRINGS_TABLE_START] = sText_BattlerAbilityRaisedStat, [STRINGID_FETCHEDPOKEBALL - BATTLESTRINGS_TABLE_START] = sText_FetchedPokeBall, - [STRINGID_STATWASNOTLOWERED - BATTLESTRINGS_TABLE_START] = sText_StatWasNotLowered, + [STRINGID_CLEARAMULETWONTLOWERSTATS - BATTLESTRINGS_TABLE_START] = sText_ClearAmuletWontLowerStats, [STRINGID_CLOAKEDINAFREEZINGLIGHT - BATTLESTRINGS_TABLE_START] = sText_CloakedInAFreezingLight, [STRINGID_DESTINYKNOTACTIVATES - BATTLESTRINGS_TABLE_START] = sText_DestinyKnotActivates, [STRINGID_NOONEWILLBEABLETORUNAWAY - BATTLESTRINGS_TABLE_START] = sText_NoOneWillBeAbleToRun, diff --git a/src/battle_script_commands.c b/src/battle_script_commands.c index 82d184b88f..d98bab5367 100644 --- a/src/battle_script_commands.c +++ b/src/battle_script_commands.c @@ -354,6 +354,7 @@ static void TryUpdateRoundTurnOrder(void); static bool32 ChangeOrderTargetAfterAttacker(void); void ApplyExperienceMultipliers(s32 *expAmount, u8 expGetterMonId, u8 faintedBattler); static void RemoveAllTerrains(void); +static bool8 CanAbilityPreventStatLoss(u16 abilityDef, bool8 isIntimidate); static void Cmd_attackcanceler(void); static void Cmd_accuracycheck(void); @@ -1622,7 +1623,7 @@ u32 GetTotalAccuracy(u32 battlerAtk, u32 battlerDef, u32 move, u32 atkAbility, u gPotentialItemEffectBattler = battlerDef; accStage = gBattleMons[battlerAtk].statStages[STAT_ACC]; evasionStage = gBattleMons[battlerDef].statStages[STAT_EVASION]; - if (atkAbility == ABILITY_UNAWARE || atkAbility == ABILITY_KEEN_EYE) + if (atkAbility == ABILITY_UNAWARE || atkAbility == ABILITY_KEEN_EYE || (B_ILLUMINATE_EFFECT >= GEN_9 && atkAbility == ABILITY_ILLUMINATE)) evasionStage = DEFAULT_STAT_STAGE; if (gBattleMoves[move].ignoresTargetDefenseEvasionStages) evasionStage = DEFAULT_STAT_STAGE; @@ -3637,15 +3638,12 @@ void SetMoveEffect(bool32 primary, u32 certain) break; case MOVE_EFFECT_SYRUP_BOMB: - if (gStatuses4[gEffectBattler] & STATUS4_SYRUP_BOMB) - { - gBattlescriptCurrInstr++; - } - else + if (!(gStatuses4[gEffectBattler] & STATUS4_SYRUP_BOMB)) { gStatuses4[gEffectBattler] |= STATUS4_SYRUP_BOMB; gDisableStructs[gBattlerTarget].syrupBombTimer = 3; - gBattlescriptCurrInstr++; + BattleScriptPush(gBattlescriptCurrInstr + 1); + gBattlescriptCurrInstr = BattleScript_SyrupBombActivates; } break; } @@ -5060,6 +5058,7 @@ static void Cmd_playstatchangeanimation(void) && ability != ABILITY_FULL_METAL_BODY && ability != ABILITY_WHITE_SMOKE && !(ability == ABILITY_KEEN_EYE && currStat == STAT_ACC) + && !(B_ILLUMINATE_EFFECT >= GEN_9 && ability == ABILITY_ILLUMINATE && currStat == STAT_ACC) && !(ability == ABILITY_HYPER_CUTTER && currStat == STAT_ATK) && !(ability == ABILITY_BIG_PECKS && currStat == STAT_DEF)) { @@ -7029,6 +7028,7 @@ static void Cmd_returntoball(void) u32 battler = GetBattlerForBattleScript(cmd->battler); BtlController_EmitReturnMonToBall(battler, BUFFER_A, TRUE); MarkBattlerForControllerExec(battler); + TryBattleFormChange(battler, FORM_CHANGE_BATTLE_SWITCH); gBattlescriptCurrInstr = cmd->nextInstr; } @@ -9547,7 +9547,7 @@ static void Cmd_various(void) { VARIOUS_ARGS(const u8 *failInstr); u16 move = gLastMoves[gBattlerTarget]; - if (move == MOVE_NONE || move == MOVE_UNAVAILABLE || gBattleMoves[move].effect == EFFECT_RECHARGE + if (move == MOVE_NONE || move == MOVE_UNAVAILABLE || gBattleMoves[move].effect == EFFECT_RECHARGE || gBattleMoves[move].instructBanned || gBattleMoves[move].twoTurnMove || IsDynamaxed(gBattlerTarget)) { gBattlescriptCurrInstr = cmd->failInstr; @@ -10351,22 +10351,6 @@ static void Cmd_various(void) } return; } - case VARIOUS_SET_OCTOLOCK: - { - VARIOUS_ARGS(const u8 *failInstr); - if (gDisableStructs[battler].octolock) - { - gBattlescriptCurrInstr = cmd->failInstr; - } - else - { - gDisableStructs[battler].octolock = TRUE; - gBattleMons[battler].status2 |= STATUS2_ESCAPE_PREVENTION; - gDisableStructs[battler].battlerPreventingEscape = gBattlerAttacker; - gBattlescriptCurrInstr = cmd->nextInstr; - } - return; - } case VARIOUS_CHECK_POLTERGEIST: { VARIOUS_ARGS(const u8 *failInstr); @@ -11401,16 +11385,9 @@ static u32 ChangeStatBuffs(s8 statValue, u32 statId, u32 flags, const u8 *BS_ptr return STAT_CHANGE_DIDNT_WORK; } else if ((battlerHoldEffect == HOLD_EFFECT_CLEAR_AMULET - || battlerAbility == ABILITY_CLEAR_BODY - || battlerAbility == ABILITY_FULL_METAL_BODY - || battlerAbility == ABILITY_WHITE_SMOKE) - && (!affectsUser || mirrorArmored) && !certain && gCurrentMove != MOVE_CURSE) + || CanAbilityPreventStatLoss(battlerAbility, GetBattlerAbility(gBattlerAttacker) == ABILITY_INTIMIDATE)) + && (!affectsUser || mirrorArmored) && !certain && gCurrentMove != MOVE_CURSE) { - if (battlerHoldEffect == HOLD_EFFECT_CLEAR_AMULET) - { - RecordItemEffectBattle(battler, HOLD_EFFECT_CLEAR_AMULET); - } - if (flags == STAT_CHANGE_ALLOW_PTR) { if (gSpecialStatuses[battler].statLowered) @@ -11423,7 +11400,9 @@ static u32 ChangeStatBuffs(s8 statValue, u32 statId, u32 flags, const u8 *BS_ptr gBattleScripting.battler = battler; if (battlerHoldEffect == HOLD_EFFECT_CLEAR_AMULET) { + gLastUsedItem = gBattleMons[battler].item; gBattlescriptCurrInstr = BattleScript_ItemNoStatLoss; + RecordItemEffectBattle(battler, HOLD_EFFECT_CLEAR_AMULET); } else { @@ -11459,6 +11438,7 @@ static u32 ChangeStatBuffs(s8 statValue, u32 statId, u32 flags, const u8 *BS_ptr } else if (!certain && ((battlerAbility == ABILITY_KEEN_EYE && statId == STAT_ACC) + || (B_ILLUMINATE_EFFECT >= GEN_9 && battlerAbility == ABILITY_ILLUMINATE && statId == STAT_ACC) || (battlerAbility == ABILITY_HYPER_CUTTER && statId == STAT_ATK) || (battlerAbility == ABILITY_BIG_PECKS && statId == STAT_DEF))) { @@ -15697,6 +15677,25 @@ static bool8 IsFinalStrikeEffect(u16 move) return FALSE; } +static bool8 CanAbilityPreventStatLoss(u16 abilityDef, bool8 byIntimidate) +{ + switch (abilityDef) + { + case ABILITY_CLEAR_BODY: + case ABILITY_FULL_METAL_BODY: + case ABILITY_WHITE_SMOKE: + return TRUE; + case ABILITY_INNER_FOCUS: + case ABILITY_SCRAPPY: + case ABILITY_OWN_TEMPO: + case ABILITY_OBLIVIOUS: + if (byIntimidate && (B_UPDATED_INTIMIDATE >= GEN_8)) + return TRUE; + break; + } + return FALSE; +} + void BS_CheckParentalBondCounter(void) { NATIVE_ARGS(u8 counter, const u8 *jumpInstr); @@ -16264,3 +16263,21 @@ void BS_TryReflectType(void) gBattlescriptCurrInstr = cmd->nextInstr; } } + +void BS_TrySetOctolock(void) +{ + NATIVE_ARGS(u8 battler, const u8 *failInstr); + u32 battler = GetBattlerForBattleScript(cmd->battler); + + if (gDisableStructs[battler].octolock) + { + gBattlescriptCurrInstr = cmd->failInstr; + } + else + { + gDisableStructs[battler].octolock = TRUE; + gBattleMons[battler].status2 |= STATUS2_ESCAPE_PREVENTION; + gDisableStructs[battler].battlerPreventingEscape = gBattlerAttacker; + gBattlescriptCurrInstr = cmd->nextInstr; + } +} diff --git a/src/battle_util.c b/src/battle_util.c index afef74b0f8..244736a50f 100644 --- a/src/battle_util.c +++ b/src/battle_util.c @@ -322,7 +322,6 @@ void HandleAction_UseMove(void) gCurrentMove = gBattleStruct->zmove.toBeUsed[gBattlerAttacker]; } - moveTarget = GetBattlerMoveTargetType(gBattlerAttacker, gCurrentMove); if (gBattleMons[gBattlerAttacker].hp != 0) { @@ -343,6 +342,8 @@ void HandleAction_UseMove(void) gBattleStruct->dynamax.activeSplit = gBattleStruct->dynamax.splits[gBattlerAttacker]; } + moveTarget = GetBattlerMoveTargetType(gBattlerAttacker, gCurrentMove); + // choose target side = BATTLE_OPPOSITE(GetBattlerSide(gBattlerAttacker)); if (IsAffectedByFollowMe(gBattlerAttacker, side, gCurrentMove) @@ -2735,12 +2736,7 @@ u8 DoBattlerEndTurnEffects(void) break; case ENDTURN_OCTOLOCK: { - u16 battlerAbility = GetBattlerAbility(battler); - if (gDisableStructs[battler].octolock - && !(GetBattlerHoldEffect(battler, TRUE) == HOLD_EFFECT_CLEAR_AMULET - || battlerAbility == ABILITY_CLEAR_BODY - || battlerAbility == ABILITY_FULL_METAL_BODY - || battlerAbility == ABILITY_WHITE_SMOKE)) + if (gDisableStructs[battler].octolock) { gBattlerTarget = battler; BattleScriptExecute(BattleScript_OctolockEndTurn); @@ -3037,19 +3033,11 @@ u8 DoBattlerEndTurnEffects(void) case ENDTURN_SYRUP_BOMB: if ((gStatuses4[battler] & STATUS4_SYRUP_BOMB) && (gBattleMons[battler].hp != 0)) { - gDisableStructs[battler].syrupBombTimer--; - if (gDisableStructs[battler].syrupBombTimer == 0) - { + if (gDisableStructs[battler].syrupBombTimer > 0 && --gDisableStructs[battler].syrupBombTimer == 0) gStatuses4[battler] &= ~STATUS4_SYRUP_BOMB; - PREPARE_MOVE_BUFFER(gBattleTextBuff1, MOVE_SYRUP_BOMB); - gBattlescriptCurrInstr = BattleScript_WrapEnds; - } - else if (gDisableStructs[battler].syrupBombTimer != 0) - { - gBattlerTarget = battler; - PREPARE_MOVE_BUFFER(gBattleTextBuff1, MOVE_SYRUP_BOMB); - gBattlescriptCurrInstr = BattleScript_SyrupBombEndTurn; - } + gBattlerTarget = battler; + PREPARE_MOVE_BUFFER(gBattleTextBuff1, MOVE_SYRUP_BOMB); + gBattlescriptCurrInstr = BattleScript_SyrupBombEndTurn; BattleScriptExecute(gBattlescriptCurrInstr); effect++; } @@ -8019,17 +8007,25 @@ u8 IsMonDisobedient(void) return 0; if (B_OBEDIENCE_MECHANICS < GEN_8 && !IsOtherTrainer(gBattleMons[gBattlerAttacker].otId, gBattleMons[gBattlerAttacker].otName)) return 0; - if (FlagGet(FLAG_BADGE08_GET)) + if (FlagGet(FLAG_BADGE08_GET)) // Rain Badge, ignore obedience altogether return 0; obedienceLevel = 10; - if (FlagGet(FLAG_BADGE02_GET)) + if (FlagGet(FLAG_BADGE01_GET)) // Stone Badge + obedienceLevel = 20; + if (FlagGet(FLAG_BADGE02_GET)) // Knuckle Badge obedienceLevel = 30; - if (FlagGet(FLAG_BADGE04_GET)) + if (FlagGet(FLAG_BADGE03_GET)) // Dynamo Badge + obedienceLevel = 40; + if (FlagGet(FLAG_BADGE04_GET)) // Heat Badge obedienceLevel = 50; - if (FlagGet(FLAG_BADGE06_GET)) + if (FlagGet(FLAG_BADGE05_GET)) // Balance Badge + obedienceLevel = 60; + if (FlagGet(FLAG_BADGE06_GET)) // Feather Badge obedienceLevel = 70; + if (FlagGet(FLAG_BADGE07_GET)) // Mind Badge + obedienceLevel = 80; } if (B_OBEDIENCE_MECHANICS >= GEN_8 @@ -8193,10 +8189,10 @@ bool32 IsBattlerProtected(u32 battler, u32 move) // Z-Moves and Max Moves bypass protection (except Max Guard). if ((IsMaxMove(move) || gBattleStruct->zmove.active) - && (!gProtectStructs[battler].maxGuarded + && (!gProtectStructs[battler].maxGuarded || gBattleMoves[move].argument == MAX_EFFECT_BYPASS_PROTECT)) return FALSE; - + // Max Guard is silly about the moves it blocks, including Teatime. if (gProtectStructs[battler].maxGuarded && IsMoveBlockedByMaxGuard(move)) return TRUE; diff --git a/src/data/battle_anim.h b/src/data/battle_anim.h index d342ccbae5..880b98efce 100644 --- a/src/data/battle_anim.h +++ b/src/data/battle_anim.h @@ -1449,6 +1449,12 @@ const struct CompressedSpriteSheet gBattleAnimPicTable[] = {gBattleAnimSpriteGfx_Teapot, 0x1800, ANIM_TAG_TEAPOT}, {gBattleAnimSpriteGfx_WoodHammerHammer, 0x800, ANIM_TAG_WOOD_HAMMER_HAMMER}, {gBattleAnimSpriteGfx_Snowflakes, 0x0700, ANIM_TAG_SNOWFLAKES}, + {gBattleAnimSpriteGfx_SyrupBlob, 0x400, ANIM_TAG_SYRUP_BLOB_RED}, + {gBattleAnimSpriteGfx_SyrupShell, 0x2000, ANIM_TAG_SYRUP_SHELL_RED}, + {gBattleAnimSpriteGfx_SyrupBlob, 0x400, ANIM_TAG_SYRUP_BLOB_YELLOW}, + {gBattleAnimSpriteGfx_SyrupShell, 0x2000, ANIM_TAG_SYRUP_SHELL_YELLOW}, + {gBattleAnimSpriteGfx_SyrupSplat, 0x400, ANIM_TAG_SYRUP_SPLAT_RED}, + {gBattleAnimSpriteGfx_SyrupSplat, 0x400, ANIM_TAG_SYRUP_SPLAT_YELLOW}, }; const struct CompressedSpritePalette gBattleAnimPaletteTable[] = @@ -1898,6 +1904,12 @@ const struct CompressedSpritePalette gBattleAnimPaletteTable[] = {gBattleAnimSpritePal_Teapot, ANIM_TAG_TEAPOT}, {gBattleAnimSpritePal_WoodHammerHammer, ANIM_TAG_WOOD_HAMMER_HAMMER}, {gBattleAnimSpritePal_RainDrops, ANIM_TAG_SNOWFLAKES}, + {gBattleAnimSpritePal_SyrupRed, ANIM_TAG_SYRUP_BLOB_RED}, + {gBattleAnimSpritePal_SyrupRed, ANIM_TAG_SYRUP_SHELL_RED}, + {gBattleAnimSpritePal_SyrupYellow, ANIM_TAG_SYRUP_BLOB_YELLOW}, + {gBattleAnimSpritePal_SyrupYellow, ANIM_TAG_SYRUP_SHELL_YELLOW}, + {gBattleAnimSpritePal_SyrupRed, ANIM_TAG_SYRUP_SPLAT_RED}, + {gBattleAnimSpritePal_SyrupYellow, ANIM_TAG_SYRUP_SPLAT_YELLOW}, }; const struct BattleAnimBackground gBattleAnimBackgroundTable[] = diff --git a/src/data/graphics/pokemon.h b/src/data/graphics/pokemon.h index 34d972b439..89261926cd 100644 --- a/src/data/graphics/pokemon.h +++ b/src/data/graphics/pokemon.h @@ -850,18 +850,18 @@ const u32 gMonFrontPic_HoopaConfined[] = INCBIN_U32("graphics/pokemon/hoopa/anim const u32 gMonFrontPic_Volcanion[] = INCBIN_U32("graphics/pokemon/volcanion/anim_front.4bpp.lz"); #endif #if P_GEN_7_POKEMON == TRUE -const u32 gMonFrontPic_Rowlet[] = INCBIN_U32("graphics/pokemon/rowlet/front.4bpp.lz"); -const u32 gMonFrontPic_Dartrix[] = INCBIN_U32("graphics/pokemon/dartrix/front.4bpp.lz"); -const u32 gMonFrontPic_Decidueye[] = INCBIN_U32("graphics/pokemon/decidueye/front.4bpp.lz"); +const u32 gMonFrontPic_Rowlet[] = INCBIN_U32("graphics/pokemon/rowlet/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Dartrix[] = INCBIN_U32("graphics/pokemon/dartrix/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Decidueye[] = INCBIN_U32("graphics/pokemon/decidueye/anim_front.4bpp.lz"); const u32 gMonFrontPic_Litten[] = INCBIN_U32("graphics/pokemon/litten/front.4bpp.lz"); const u32 gMonFrontPic_Torracat[] = INCBIN_U32("graphics/pokemon/torracat/front.4bpp.lz"); const u32 gMonFrontPic_Incineroar[] = INCBIN_U32("graphics/pokemon/incineroar/front.4bpp.lz"); const u32 gMonFrontPic_Popplio[] = INCBIN_U32("graphics/pokemon/popplio/front.4bpp.lz"); const u32 gMonFrontPic_Brionne[] = INCBIN_U32("graphics/pokemon/brionne/front.4bpp.lz"); const u32 gMonFrontPic_Primarina[] = INCBIN_U32("graphics/pokemon/primarina/front.4bpp.lz"); -const u32 gMonFrontPic_Pikipek[] = INCBIN_U32("graphics/pokemon/pikipek/front.4bpp.lz"); -const u32 gMonFrontPic_Trumbeak[] = INCBIN_U32("graphics/pokemon/trumbeak/front.4bpp.lz"); -const u32 gMonFrontPic_Toucannon[] = INCBIN_U32("graphics/pokemon/toucannon/front.4bpp.lz"); +const u32 gMonFrontPic_Pikipek[] = INCBIN_U32("graphics/pokemon/pikipek/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Trumbeak[] = INCBIN_U32("graphics/pokemon/trumbeak/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Toucannon[] = INCBIN_U32("graphics/pokemon/toucannon/anim_front.4bpp.lz"); const u32 gMonFrontPic_Yungoos[] = INCBIN_U32("graphics/pokemon/yungoos/front.4bpp.lz"); const u32 gMonFrontPic_Gumshoos[] = INCBIN_U32("graphics/pokemon/gumshoos/front.4bpp.lz"); const u32 gMonFrontPic_Grubbin[] = INCBIN_U32("graphics/pokemon/grubbin/anim_front.4bpp.lz"); @@ -870,10 +870,10 @@ const u32 gMonFrontPic_Vikavolt[] = INCBIN_U32("graphics/pokemon/vikavolt/anim_f const u32 gMonFrontPic_Crabrawler[] = INCBIN_U32("graphics/pokemon/crabrawler/front.4bpp.lz"); const u32 gMonFrontPic_Crabominable[] = INCBIN_U32("graphics/pokemon/crabominable/front.4bpp.lz"); const u32 gMonFrontPic_OricorioBaile[] = INCBIN_U32("graphics/pokemon/oricorio/front.4bpp.lz"); -const u32 gMonFrontPic_Cutiefly[] = INCBIN_U32("graphics/pokemon/cutiefly/front.4bpp.lz"); -const u32 gMonFrontPic_Ribombee[] = INCBIN_U32("graphics/pokemon/ribombee/front.4bpp.lz"); -const u32 gMonFrontPic_Rockruff[] = INCBIN_U32("graphics/pokemon/rockruff/front.4bpp.lz"); -const u32 gMonFrontPic_LycanrocMidday[] = INCBIN_U32("graphics/pokemon/lycanroc/front.4bpp.lz"); +const u32 gMonFrontPic_Cutiefly[] = INCBIN_U32("graphics/pokemon/cutiefly/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Ribombee[] = INCBIN_U32("graphics/pokemon/ribombee/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Rockruff[] = INCBIN_U32("graphics/pokemon/rockruff/anim_front.4bpp.lz"); +const u32 gMonFrontPic_LycanrocMidday[] = INCBIN_U32("graphics/pokemon/lycanroc/anim_front.4bpp.lz"); const u32 gMonFrontPic_WishiwashiSolo[] = INCBIN_U32("graphics/pokemon/wishiwashi/front.4bpp.lz"); const u32 gMonFrontPic_Mareanie[] = INCBIN_U32("graphics/pokemon/mareanie/front.4bpp.lz"); const u32 gMonFrontPic_Toxapex[] = INCBIN_U32("graphics/pokemon/toxapex/front.4bpp.lz"); @@ -893,8 +893,8 @@ const u32 gMonFrontPic_Bounsweet[] = INCBIN_U32("graphics/pokemon/bounsweet/fron const u32 gMonFrontPic_Steenee[] = INCBIN_U32("graphics/pokemon/steenee/front.4bpp.lz"); const u32 gMonFrontPic_Tsareena[] = INCBIN_U32("graphics/pokemon/tsareena/front.4bpp.lz"); const u32 gMonFrontPic_Comfey[] = INCBIN_U32("graphics/pokemon/comfey/front.4bpp.lz"); -const u32 gMonFrontPic_Oranguru[] = INCBIN_U32("graphics/pokemon/oranguru/front.4bpp.lz"); -const u32 gMonFrontPic_Passimian[] = INCBIN_U32("graphics/pokemon/passimian/front.4bpp.lz"); +const u32 gMonFrontPic_Oranguru[] = INCBIN_U32("graphics/pokemon/oranguru/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Passimian[] = INCBIN_U32("graphics/pokemon/passimian/anim_front.4bpp.lz"); const u32 gMonFrontPic_Wimpod[] = INCBIN_U32("graphics/pokemon/wimpod/anim_front.4bpp.lz"); const u32 gMonFrontPic_Golisopod[] = INCBIN_U32("graphics/pokemon/golisopod/anim_front.4bpp.lz"); const u32 gMonFrontPic_Sandygast[] = INCBIN_U32("graphics/pokemon/sandygast/front.4bpp.lz"); @@ -905,10 +905,10 @@ const u32 gMonFrontPic_Silvally[] = INCBIN_U32("graphics/pokemon/silvally/front. const u32 gMonFrontPic_MiniorMeteor[] = INCBIN_U32("graphics/pokemon/minior/front.4bpp.lz"); const u32 gMonFrontPic_Komala[] = INCBIN_U32("graphics/pokemon/komala/front.4bpp.lz"); const u32 gMonFrontPic_Turtonator[] = INCBIN_U32("graphics/pokemon/turtonator/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Togedemaru[] = INCBIN_U32("graphics/pokemon/togedemaru/front.4bpp.lz"); +const u32 gMonFrontPic_Togedemaru[] = INCBIN_U32("graphics/pokemon/togedemaru/anim_front.4bpp.lz"); const u32 gMonFrontPic_MimikyuDisguised[] = INCBIN_U32("graphics/pokemon/mimikyu/front.4bpp.lz"); const u32 gMonFrontPic_Bruxish[] = INCBIN_U32("graphics/pokemon/bruxish/front.4bpp.lz"); -const u32 gMonFrontPic_Drampa[] = INCBIN_U32("graphics/pokemon/drampa/front.4bpp.lz"); +const u32 gMonFrontPic_Drampa[] = INCBIN_U32("graphics/pokemon/drampa/anim_front.4bpp.lz"); const u32 gMonFrontPic_Dhelmise[] = INCBIN_U32("graphics/pokemon/dhelmise/front.4bpp.lz"); const u32 gMonFrontPic_JangmoO[] = INCBIN_U32("graphics/pokemon/jangmo_o/anim_front.4bpp.lz"); const u32 gMonFrontPic_HakamoO[] = INCBIN_U32("graphics/pokemon/hakamo_o/anim_front.4bpp.lz"); @@ -1293,8 +1293,8 @@ const u32 gMonFrontPic_HoopaUnbound[] = INCBIN_U32("graphics/pokemon/hoopa/unbou const u32 gMonFrontPic_OricorioPomPom[] = INCBIN_U32("graphics/pokemon/oricorio/pom_pom/front.4bpp.lz"); const u32 gMonFrontPic_OricorioPau[] = INCBIN_U32("graphics/pokemon/oricorio/pau/front.4bpp.lz"); const u32 gMonFrontPic_OricorioSensu[] = INCBIN_U32("graphics/pokemon/oricorio/sensu/front.4bpp.lz"); -const u32 gMonFrontPic_LycanrocMidnight[] = INCBIN_U32("graphics/pokemon/lycanroc/midnight/front.4bpp.lz"); -const u32 gMonFrontPic_LycanrocDusk[] = INCBIN_U32("graphics/pokemon/lycanroc/dusk/front.4bpp.lz"); +const u32 gMonFrontPic_LycanrocMidnight[] = INCBIN_U32("graphics/pokemon/lycanroc/midnight/anim_front.4bpp.lz"); +const u32 gMonFrontPic_LycanrocDusk[] = INCBIN_U32("graphics/pokemon/lycanroc/dusk/anim_front.4bpp.lz"); const u32 gMonFrontPic_WishiwashiSchool[] = INCBIN_U32("graphics/pokemon/wishiwashi/school/front.4bpp.lz"); const u32 gMonFrontPic_MiniorCore[] = INCBIN_U32("graphics/pokemon/minior/core/front.4bpp.lz"); const u32 gMonFrontPic_MimikyuBusted[] = INCBIN_U32("graphics/pokemon/mimikyu/busted/front.4bpp.lz"); @@ -1307,14 +1307,6 @@ const u32 gMonFrontPic_MagearnaOriginalColor[] = INCBIN_U32("graphics/pokemon/ma const u32 gMonFrontPic_CramorantGulping[] = INCBIN_U32("graphics/pokemon/cramorant/gulping/front.4bpp.lz"); const u32 gMonFrontPic_CramorantGorging[] = INCBIN_U32("graphics/pokemon/cramorant/gorging/front.4bpp.lz"); const u32 gMonFrontPic_ToxtricityLowKey[] = INCBIN_U32("graphics/pokemon/toxtricity/low_key/front.4bpp.lz"); -const u32 gMonFrontPic_AlcremieRubyCream[] = INCBIN_U32("graphics/pokemon/alcremie/ruby_cream/front.4bpp.lz"); -const u32 gMonFrontPic_AlcremieMatchaCream[] = INCBIN_U32("graphics/pokemon/alcremie/matcha_cream/front.4bpp.lz"); -const u32 gMonFrontPic_AlcremieMintCream[] = INCBIN_U32("graphics/pokemon/alcremie/mint_cream/front.4bpp.lz"); -const u32 gMonFrontPic_AlcremieLemonCream[] = INCBIN_U32("graphics/pokemon/alcremie/lemon_cream/front.4bpp.lz"); -const u32 gMonFrontPic_AlcremieSaltedCream[] = INCBIN_U32("graphics/pokemon/alcremie/salted_cream/front.4bpp.lz"); -const u32 gMonFrontPic_AlcremieRubySwirl[] = INCBIN_U32("graphics/pokemon/alcremie/ruby_swirl/front.4bpp.lz"); -const u32 gMonFrontPic_AlcremieCaramelSwirl[] = INCBIN_U32("graphics/pokemon/alcremie/caramel_swirl/front.4bpp.lz"); -const u32 gMonFrontPic_AlcremieRainbowSwirl[] = INCBIN_U32("graphics/pokemon/alcremie/rainbow_swirl/front.4bpp.lz"); const u32 gMonFrontPic_EiscueNoiceFace[] = INCBIN_U32("graphics/pokemon/eiscue/noice_face/front.4bpp.lz"); const u32 gMonFrontPic_IndeedeeFemale[] = INCBIN_U32("graphics/pokemon/indeedee/female/front.4bpp.lz"); const u32 gMonFrontPic_MorpekoHangry[] = INCBIN_U32("graphics/pokemon/morpeko/hangry/front.4bpp.lz"); @@ -2625,14 +2617,6 @@ const u32 gMonBackPic_MagearnaOriginalColor[] = INCBIN_U32("graphics/pokemon/mag const u32 gMonBackPic_CramorantGulping[] = INCBIN_U32("graphics/pokemon/cramorant/gulping/back.4bpp.lz"); const u32 gMonBackPic_CramorantGorging[] = INCBIN_U32("graphics/pokemon/cramorant/gorging/back.4bpp.lz"); const u32 gMonBackPic_ToxtricityLowKey[] = INCBIN_U32("graphics/pokemon/toxtricity/low_key/back.4bpp.lz"); -const u32 gMonBackPic_AlcremieRubyCream[] = INCBIN_U32("graphics/pokemon/alcremie/ruby_cream/back.4bpp.lz"); -const u32 gMonBackPic_AlcremieMatchaCream[] = INCBIN_U32("graphics/pokemon/alcremie/matcha_cream/back.4bpp.lz"); -const u32 gMonBackPic_AlcremieMintCream[] = INCBIN_U32("graphics/pokemon/alcremie/mint_cream/back.4bpp.lz"); -const u32 gMonBackPic_AlcremieLemonCream[] = INCBIN_U32("graphics/pokemon/alcremie/lemon_cream/back.4bpp.lz"); -const u32 gMonBackPic_AlcremieSaltedCream[] = INCBIN_U32("graphics/pokemon/alcremie/salted_cream/back.4bpp.lz"); -const u32 gMonBackPic_AlcremieRubySwirl[] = INCBIN_U32("graphics/pokemon/alcremie/ruby_swirl/back.4bpp.lz"); -const u32 gMonBackPic_AlcremieCaramelSwirl[] = INCBIN_U32("graphics/pokemon/alcremie/caramel_swirl/back.4bpp.lz"); -const u32 gMonBackPic_AlcremieRainbowSwirl[] = INCBIN_U32("graphics/pokemon/alcremie/rainbow_swirl/back.4bpp.lz"); const u32 gMonBackPic_EiscueNoiceFace[] = INCBIN_U32("graphics/pokemon/eiscue/noice_face/back.4bpp.lz"); const u32 gMonBackPic_IndeedeeFemale[] = INCBIN_U32("graphics/pokemon/indeedee/female/back.4bpp.lz"); const u32 gMonBackPic_MorpekoHangry[] = INCBIN_U32("graphics/pokemon/morpeko/hangry/back.4bpp.lz"); @@ -3890,14 +3874,6 @@ const u32 gMonPalette_MagearnaOriginalColor[] = INCBIN_U32("graphics/pokemon/mag const u32 gMonPalette_CramorantGulping[] = INCBIN_U32("graphics/pokemon/cramorant/gulping/normal.gbapal.lz"); const u32 gMonPalette_CramorantGorging[] = INCBIN_U32("graphics/pokemon/cramorant/gorging/normal.gbapal.lz"); const u32 gMonPalette_ToxtricityLowKey[] = INCBIN_U32("graphics/pokemon/toxtricity/low_key/normal.gbapal.lz"); -const u32 gMonPalette_AlcremieRubyCream[] = INCBIN_U32("graphics/pokemon/alcremie/ruby_cream/normal.gbapal.lz"); -const u32 gMonPalette_AlcremieMatchaCream[] = INCBIN_U32("graphics/pokemon/alcremie/matcha_cream/normal.gbapal.lz"); -const u32 gMonPalette_AlcremieMintCream[] = INCBIN_U32("graphics/pokemon/alcremie/mint_cream/normal.gbapal.lz"); -const u32 gMonPalette_AlcremieLemonCream[] = INCBIN_U32("graphics/pokemon/alcremie/lemon_cream/normal.gbapal.lz"); -const u32 gMonPalette_AlcremieSaltedCream[] = INCBIN_U32("graphics/pokemon/alcremie/salted_cream/normal.gbapal.lz"); -const u32 gMonPalette_AlcremieRubySwirl[] = INCBIN_U32("graphics/pokemon/alcremie/ruby_swirl/normal.gbapal.lz"); -const u32 gMonPalette_AlcremieCaramelSwirl[] = INCBIN_U32("graphics/pokemon/alcremie/caramel_swirl/normal.gbapal.lz"); -const u32 gMonPalette_AlcremieRainbowSwirl[] = INCBIN_U32("graphics/pokemon/alcremie/rainbow_swirl/normal.gbapal.lz"); const u32 gMonPalette_EiscueNoiceFace[] = INCBIN_U32("graphics/pokemon/eiscue/noice_face/normal.gbapal.lz"); const u32 gMonPalette_IndeedeeFemale[] = INCBIN_U32("graphics/pokemon/indeedee/female/normal.gbapal.lz"); const u32 gMonPalette_MorpekoHangry[] = INCBIN_U32("graphics/pokemon/morpeko/hangry/normal.gbapal.lz"); @@ -5150,14 +5126,6 @@ const u32 gMonShinyPalette_MagearnaOriginalColor[] = INCBIN_U32("graphics/pokemo const u32 gMonShinyPalette_CramorantGulping[] = INCBIN_U32("graphics/pokemon/cramorant/gulping/shiny.gbapal.lz"); const u32 gMonShinyPalette_CramorantGorging[] = INCBIN_U32("graphics/pokemon/cramorant/gorging/shiny.gbapal.lz"); const u32 gMonShinyPalette_ToxtricityLowKey[] = INCBIN_U32("graphics/pokemon/toxtricity/low_key/shiny.gbapal.lz"); -const u32 gMonShinyPalette_AlcremieRubyCream[] = INCBIN_U32("graphics/pokemon/alcremie/ruby_cream/shiny.gbapal.lz"); -const u32 gMonShinyPalette_AlcremieMatchaCream[] = INCBIN_U32("graphics/pokemon/alcremie/matcha_cream/shiny.gbapal.lz"); -const u32 gMonShinyPalette_AlcremieMintCream[] = INCBIN_U32("graphics/pokemon/alcremie/mint_cream/shiny.gbapal.lz"); -const u32 gMonShinyPalette_AlcremieLemonCream[] = INCBIN_U32("graphics/pokemon/alcremie/lemon_cream/shiny.gbapal.lz"); -const u32 gMonShinyPalette_AlcremieSaltedCream[] = INCBIN_U32("graphics/pokemon/alcremie/salted_cream/shiny.gbapal.lz"); -const u32 gMonShinyPalette_AlcremieRubySwirl[] = INCBIN_U32("graphics/pokemon/alcremie/ruby_swirl/shiny.gbapal.lz"); -const u32 gMonShinyPalette_AlcremieCaramelSwirl[] = INCBIN_U32("graphics/pokemon/alcremie/caramel_swirl/shiny.gbapal.lz"); -const u32 gMonShinyPalette_AlcremieRainbowSwirl[] = INCBIN_U32("graphics/pokemon/alcremie/rainbow_swirl/shiny.gbapal.lz"); const u32 gMonShinyPalette_EiscueNoiceFace[] = INCBIN_U32("graphics/pokemon/eiscue/noice_face/shiny.gbapal.lz"); const u32 gMonShinyPalette_IndeedeeFemale[] = INCBIN_U32("graphics/pokemon/indeedee/female/shiny.gbapal.lz"); const u32 gMonShinyPalette_MorpekoHangry[] = INCBIN_U32("graphics/pokemon/morpeko/hangry/shiny.gbapal.lz"); @@ -6091,7 +6059,15 @@ const u8 gMonIcon_Sirfetchd[] = INCBIN_U8("graphics/pokemon/sirfetchd/icon.4bpp" const u8 gMonIcon_MrRime[] = INCBIN_U8("graphics/pokemon/mr_rime/icon.4bpp"); const u8 gMonIcon_Runerigus[] = INCBIN_U8("graphics/pokemon/runerigus/icon.4bpp"); const u8 gMonIcon_Milcery[] = INCBIN_U8("graphics/pokemon/milcery/icon.4bpp"); -const u8 gMonIcon_Alcremie[] = INCBIN_U8("graphics/pokemon/alcremie/icon.4bpp"); +const u8 gMonIcon_AlcremieStrawberryVanillaCream[] = INCBIN_U8("graphics/pokemon/alcremie/icon.4bpp"); +//const u8 gMonIcon_AlcremieStrawberryRubyCream[] = INCBIN_U8("graphics/pokemon/alcremie/ruby_cream/icon.4bpp"); +//const u8 gMonIcon_AlcremieStrawberryMatchaCream[] = INCBIN_U8("graphics/pokemon/alcremie/matcha_cream/icon.4bpp"); +//const u8 gMonIcon_AlcremieStrawberryMintCream[] = INCBIN_U8("graphics/pokemon/alcremie/mint_cream/icon.4bpp"); +//const u8 gMonIcon_AlcremieStrawberryLemonCream[] = INCBIN_U8("graphics/pokemon/alcremie/lemon_cream/icon.4bpp"); +//const u8 gMonIcon_AlcremieStrawberrySaltedCream[] = INCBIN_U8("graphics/pokemon/alcremie/salted_cream/icon.4bpp"); +//const u8 gMonIcon_AlcremieStrawberryRubySwirl[] = INCBIN_U8("graphics/pokemon/alcremie/ruby_swirl/icon.4bpp"); +//const u8 gMonIcon_AlcremieStrawberryCaramelSwirl[] = INCBIN_U8("graphics/pokemon/alcremie/caramel_swirl/icon.4bpp"); +//const u8 gMonIcon_AlcremieStrawberryRainbowSwirl[] = INCBIN_U8("graphics/pokemon/alcremie/rainbow_swirl/icon.4bpp"); const u8 gMonIcon_Falinks[] = INCBIN_U8("graphics/pokemon/falinks/icon.4bpp"); const u8 gMonIcon_Pincurchin[] = INCBIN_U8("graphics/pokemon/pincurchin/icon.4bpp"); const u8 gMonIcon_Snom[] = INCBIN_U8("graphics/pokemon/snom/icon.4bpp"); @@ -6405,14 +6381,6 @@ const u8 gMonIcon_MagearnaOriginalColor[] = INCBIN_U8("graphics/pokemon/magearna const u8 gMonIcon_CramorantGulping[] = INCBIN_U8("graphics/pokemon/cramorant/gulping/icon.4bpp"); const u8 gMonIcon_CramorantGorging[] = INCBIN_U8("graphics/pokemon/cramorant/gorging/icon.4bpp"); const u8 gMonIcon_ToxtricityLowKey[] = INCBIN_U8("graphics/pokemon/toxtricity/low_key/icon.4bpp"); -//const u8 gMonIcon_AlcremieStrawberryRubyCream[] = INCBIN_U8("graphics/pokemon/alcremie/ruby_cream/icon.4bpp"); -//const u8 gMonIcon_AlcremieStrawberryMatchaCream[] = INCBIN_U8("graphics/pokemon/alcremie/matcha_cream/icon.4bpp"); -//const u8 gMonIcon_AlcremieStrawberryMintCream[] = INCBIN_U8("graphics/pokemon/alcremie/mint_cream/icon.4bpp"); -//const u8 gMonIcon_AlcremieStrawberryLemonCream[] = INCBIN_U8("graphics/pokemon/alcremie/lemon_cream/icon.4bpp"); -//const u8 gMonIcon_AlcremieStrawberrySaltedCream[] = INCBIN_U8("graphics/pokemon/alcremie/salted_cream/icon.4bpp"); -//const u8 gMonIcon_AlcremieStrawberryRubySwirl[] = INCBIN_U8("graphics/pokemon/alcremie/ruby_swirl/icon.4bpp"); -//const u8 gMonIcon_AlcremieStrawberryCaramelSwirl[] = INCBIN_U8("graphics/pokemon/alcremie/caramel_swirl/icon.4bpp"); -//const u8 gMonIcon_AlcremieStrawberryRainbowSwirl[] = INCBIN_U8("graphics/pokemon/alcremie/rainbow_swirl/icon.4bpp"); const u8 gMonIcon_EiscueNoiceFace[] = INCBIN_U8("graphics/pokemon/eiscue/noice_face/icon.4bpp"); const u8 gMonIcon_IndeedeeFemale[] = INCBIN_U8("graphics/pokemon/indeedee/female/icon.4bpp"); const u8 gMonIcon_MorpekoHangry[] = INCBIN_U8("graphics/pokemon/morpeko/hangry/icon.4bpp"); @@ -7338,7 +7306,99 @@ const u8 gMonFootprint_Sirfetchd[] = INCBIN_U8("graphics/pokemon/sirfetchd/footp const u8 gMonFootprint_Mr_Rime[] = INCBIN_U8("graphics/pokemon/mr_rime/footprint.1bpp"); const u8 gMonFootprint_Runerigus[] = INCBIN_U8("graphics/pokemon/runerigus/footprint.1bpp"); const u8 gMonFootprint_Milcery[] = INCBIN_U8("graphics/pokemon/milcery/footprint.1bpp"); + +const u32 gMonFrontPic_AlcremieStrawberry[] = INCBIN_U32("graphics/pokemon/alcremie/strawberry/front.4bpp.lz"); +const u32 gMonPalette_AlcremieStrawberryVanillaCream[] = INCBIN_U32("graphics/pokemon/alcremie/strawberry/Strawberry_Default.gbapal.lz"); +const u32 gMonPalette_AlcremieStrawberryRubyCream[] = INCBIN_U32("graphics/pokemon/alcremie/strawberry/Strawberry_Ruby_Cream.gbapal.lz"); +const u32 gMonPalette_AlcremieStrawberryMatchaCream[] = INCBIN_U32("graphics/pokemon/alcremie/strawberry/Strawberry_Matcha_Cream.gbapal.lz"); +const u32 gMonPalette_AlcremieStrawberryMintCream[] = INCBIN_U32("graphics/pokemon/alcremie/strawberry/Strawberry_Mint_Cream.gbapal.lz"); +const u32 gMonPalette_AlcremieStrawberryLemonCream[] = INCBIN_U32("graphics/pokemon/alcremie/strawberry/Strawberry_Lemon_Cream.gbapal.lz"); +const u32 gMonPalette_AlcremieStrawberrySaltedCream[] = INCBIN_U32("graphics/pokemon/alcremie/strawberry/Strawberry_Salted_Cream.gbapal.lz"); +const u32 gMonPalette_AlcremieStrawberryRubySwirl[] = INCBIN_U32("graphics/pokemon/alcremie/strawberry/Strawberry_Ruby_Swirl.gbapal.lz"); +const u32 gMonPalette_AlcremieStrawberryCaramelSwirl[] = INCBIN_U32("graphics/pokemon/alcremie/strawberry/Strawberry_Caramel_Swirl.gbapal.lz"); +const u32 gMonPalette_AlcremieStrawberryRainbowSwirl[] = INCBIN_U32("graphics/pokemon/alcremie/strawberry/Strawberry_Rainbow_Swirl.gbapal.lz"); +const u32 gMonBackPic_AlcremieStrawberry[] = INCBIN_U32("graphics/pokemon/alcremie/strawberry/back.4bpp.lz"); +const u32 gMonShinyPalette_AlcremieStrawberry[] = INCBIN_U32("graphics/pokemon/alcremie/strawberry/Strawberry_Shiny.gbapal.lz"); const u8 gMonFootprint_Alcremie[] = INCBIN_U8("graphics/pokemon/alcremie/footprint.1bpp"); + +const u32 gMonFrontPic_AlcremieBerry[] = INCBIN_U32("graphics/pokemon/alcremie/berry/front.4bpp.lz"); +const u32 gMonPalette_AlcremieBerryVanillaCream[] = INCBIN_U32("graphics/pokemon/alcremie/berry/Berry_Default.gbapal.lz"); +const u32 gMonPalette_AlcremieBerryRubyCream[] = INCBIN_U32("graphics/pokemon/alcremie/berry/Berry_Ruby_Cream.gbapal.lz"); +const u32 gMonPalette_AlcremieBerryMatchaCream[] = INCBIN_U32("graphics/pokemon/alcremie/berry/Berry_Matcha_Cream.gbapal.lz"); +const u32 gMonPalette_AlcremieBerryMintCream[] = INCBIN_U32("graphics/pokemon/alcremie/berry/Berry_Mint_Cream.gbapal.lz"); +const u32 gMonPalette_AlcremieBerryLemonCream[] = INCBIN_U32("graphics/pokemon/alcremie/berry/Berry_Lemon_Cream.gbapal.lz"); +const u32 gMonPalette_AlcremieBerrySaltedCream[] = INCBIN_U32("graphics/pokemon/alcremie/berry/Berry_Salted_Cream.gbapal.lz"); +const u32 gMonPalette_AlcremieBerryRubySwirl[] = INCBIN_U32("graphics/pokemon/alcremie/berry/Berry_Ruby_Swirl.gbapal.lz"); +const u32 gMonPalette_AlcremieBerryCaramelSwirl[] = INCBIN_U32("graphics/pokemon/alcremie/berry/Berry_Caramel_Swirl.gbapal.lz"); +const u32 gMonPalette_AlcremieBerryRainbowSwirl[] = INCBIN_U32("graphics/pokemon/alcremie/berry/Berry_Rainbow_Swirl.gbapal.lz"); +const u32 gMonBackPic_AlcremieBerry[] = INCBIN_U32("graphics/pokemon/alcremie/berry/back.4bpp.lz"); +const u32 gMonShinyPalette_AlcremieBerry[] = INCBIN_U32("graphics/pokemon/alcremie/berry/Berry_Shiny.gbapal.lz"); + +const u32 gMonFrontPic_AlcremieLove[] = INCBIN_U32("graphics/pokemon/alcremie/love/front.4bpp.lz"); +const u32 gMonPalette_AlcremieLoveVanillaCream[] = INCBIN_U32("graphics/pokemon/alcremie/love/Love_Default.gbapal.lz"); +const u32 gMonPalette_AlcremieLoveRubyCream[] = INCBIN_U32("graphics/pokemon/alcremie/love/Love_Ruby_Cream.gbapal.lz"); +const u32 gMonPalette_AlcremieLoveMatchaCream[] = INCBIN_U32("graphics/pokemon/alcremie/love/Love_Matcha_Cream.gbapal.lz"); +const u32 gMonPalette_AlcremieLoveMintCream[] = INCBIN_U32("graphics/pokemon/alcremie/love/Love_Mint_Cream.gbapal.lz"); +const u32 gMonPalette_AlcremieLoveLemonCream[] = INCBIN_U32("graphics/pokemon/alcremie/love/Love_Lemon_Cream.gbapal.lz"); +const u32 gMonPalette_AlcremieLoveSaltedCream[] = INCBIN_U32("graphics/pokemon/alcremie/love/Love_Salted_Cream.gbapal.lz"); +const u32 gMonPalette_AlcremieLoveRubySwirl[] = INCBIN_U32("graphics/pokemon/alcremie/love/Love_Ruby_Swirl.gbapal.lz"); +const u32 gMonPalette_AlcremieLoveCaramelSwirl[] = INCBIN_U32("graphics/pokemon/alcremie/love/Love_Caramel_Swirl.gbapal.lz"); +const u32 gMonPalette_AlcremieLoveRainbowSwirl[] = INCBIN_U32("graphics/pokemon/alcremie/love/Love_Rainbow_Swirl.gbapal.lz"); +const u32 gMonBackPic_AlcremieLove[] = INCBIN_U32("graphics/pokemon/alcremie/love/back.4bpp.lz"); +const u32 gMonShinyPalette_AlcremieLove[] = INCBIN_U32("graphics/pokemon/alcremie/love/Love_Shiny.gbapal.lz"); + +const u32 gMonFrontPic_AlcremieStar[] = INCBIN_U32("graphics/pokemon/alcremie/star/front.4bpp.lz"); +const u32 gMonPalette_AlcremieStarVanillaCream[] = INCBIN_U32("graphics/pokemon/alcremie/star/Star_Default.gbapal.lz"); +const u32 gMonPalette_AlcremieStarRubyCream[] = INCBIN_U32("graphics/pokemon/alcremie/star/Star_Ruby_Cream.gbapal.lz"); +const u32 gMonPalette_AlcremieStarMatchaCream[] = INCBIN_U32("graphics/pokemon/alcremie/star/Star_Matcha_Cream.gbapal.lz"); +const u32 gMonPalette_AlcremieStarMintCream[] = INCBIN_U32("graphics/pokemon/alcremie/star/Star_Mint_Cream.gbapal.lz"); +const u32 gMonPalette_AlcremieStarLemonCream[] = INCBIN_U32("graphics/pokemon/alcremie/star/Star_Lemon_Cream.gbapal.lz"); +const u32 gMonPalette_AlcremieStarSaltedCream[] = INCBIN_U32("graphics/pokemon/alcremie/star/Star_Salted_Cream.gbapal.lz"); +const u32 gMonPalette_AlcremieStarRubySwirl[] = INCBIN_U32("graphics/pokemon/alcremie/star/Star_Ruby_Swirl.gbapal.lz"); +const u32 gMonPalette_AlcremieStarCaramelSwirl[] = INCBIN_U32("graphics/pokemon/alcremie/star/Star_Caramel_Swirl.gbapal.lz"); +const u32 gMonPalette_AlcremieStarRainbowSwirl[] = INCBIN_U32("graphics/pokemon/alcremie/star/Star_Rainbow_Swirl.gbapal.lz"); +const u32 gMonBackPic_AlcremieStar[] = INCBIN_U32("graphics/pokemon/alcremie/star/back.4bpp.lz"); +const u32 gMonShinyPalette_AlcremieStar[] = INCBIN_U32("graphics/pokemon/alcremie/star/Star_Shiny.gbapal.lz"); + +const u32 gMonFrontPic_AlcremieClover[] = INCBIN_U32("graphics/pokemon/alcremie/clover/front.4bpp.lz"); +const u32 gMonPalette_AlcremieCloverVanillaCream[] = INCBIN_U32("graphics/pokemon/alcremie/clover/Clover_Default.gbapal.lz"); +const u32 gMonPalette_AlcremieCloverRubyCream[] = INCBIN_U32("graphics/pokemon/alcremie/clover/Clover_Ruby_Cream.gbapal.lz"); +const u32 gMonPalette_AlcremieCloverMatchaCream[] = INCBIN_U32("graphics/pokemon/alcremie/clover/Clover_Matcha_Cream.gbapal.lz"); +const u32 gMonPalette_AlcremieCloverMintCream[] = INCBIN_U32("graphics/pokemon/alcremie/clover/Clover_Mint_Cream.gbapal.lz"); +const u32 gMonPalette_AlcremieCloverLemonCream[] = INCBIN_U32("graphics/pokemon/alcremie/clover/Clover_Lemon_Cream.gbapal.lz"); +const u32 gMonPalette_AlcremieCloverSaltedCream[] = INCBIN_U32("graphics/pokemon/alcremie/clover/Clover_Salted_Cream.gbapal.lz"); +const u32 gMonPalette_AlcremieCloverRubySwirl[] = INCBIN_U32("graphics/pokemon/alcremie/clover/Clover_Ruby_Swirl.gbapal.lz"); +const u32 gMonPalette_AlcremieCloverCaramelSwirl[] = INCBIN_U32("graphics/pokemon/alcremie/clover/Clover_Caramel_Swirl.gbapal.lz"); +const u32 gMonPalette_AlcremieCloverRainbowSwirl[] = INCBIN_U32("graphics/pokemon/alcremie/clover/Clover_Rainbow_Swirl.gbapal.lz"); +const u32 gMonBackPic_AlcremieClover[] = INCBIN_U32("graphics/pokemon/alcremie/clover/back.4bpp.lz"); +const u32 gMonShinyPalette_AlcremieClover[] = INCBIN_U32("graphics/pokemon/alcremie/clover/Clover_Shiny.gbapal.lz"); + +const u32 gMonFrontPic_AlcremieFlower[] = INCBIN_U32("graphics/pokemon/alcremie/flower/front.4bpp.lz"); +const u32 gMonPalette_AlcremieFlowerVanillaCream[] = INCBIN_U32("graphics/pokemon/alcremie/flower/Flower_Default.gbapal.lz"); +const u32 gMonPalette_AlcremieFlowerRubyCream[] = INCBIN_U32("graphics/pokemon/alcremie/flower/Flower_Ruby_Cream.gbapal.lz"); +const u32 gMonPalette_AlcremieFlowerMatchaCream[] = INCBIN_U32("graphics/pokemon/alcremie/flower/Flower_Matcha_Cream.gbapal.lz"); +const u32 gMonPalette_AlcremieFlowerMintCream[] = INCBIN_U32("graphics/pokemon/alcremie/flower/Flower_Mint_Cream.gbapal.lz"); +const u32 gMonPalette_AlcremieFlowerLemonCream[] = INCBIN_U32("graphics/pokemon/alcremie/flower/Flower_Lemon_Cream.gbapal.lz"); +const u32 gMonPalette_AlcremieFlowerSaltedCream[] = INCBIN_U32("graphics/pokemon/alcremie/flower/Flower_Salted_Cream.gbapal.lz"); +const u32 gMonPalette_AlcremieFlowerRubySwirl[] = INCBIN_U32("graphics/pokemon/alcremie/flower/Flower_Ruby_Swirl.gbapal.lz"); +const u32 gMonPalette_AlcremieFlowerCaramelSwirl[] = INCBIN_U32("graphics/pokemon/alcremie/flower/Flower_Caramel_Swirl.gbapal.lz"); +const u32 gMonPalette_AlcremieFlowerRainbowSwirl[] = INCBIN_U32("graphics/pokemon/alcremie/flower/Flower_Rainbow_Swirl.gbapal.lz"); +const u32 gMonBackPic_AlcremieFlower[] = INCBIN_U32("graphics/pokemon/alcremie/flower/back.4bpp.lz"); +const u32 gMonShinyPalette_AlcremieFlower[] = INCBIN_U32("graphics/pokemon/alcremie/flower/Flower_Shiny.gbapal.lz"); + +const u32 gMonFrontPic_AlcremieRibbon[] = INCBIN_U32("graphics/pokemon/alcremie/ribbon/front.4bpp.lz"); +const u32 gMonPalette_AlcremieRibbonVanillaCream[] = INCBIN_U32("graphics/pokemon/alcremie/ribbon/Ribbon_Default.gbapal.lz"); +const u32 gMonPalette_AlcremieRibbonRubyCream[] = INCBIN_U32("graphics/pokemon/alcremie/ribbon/Ribbon_Ruby_Cream.gbapal.lz"); +const u32 gMonPalette_AlcremieRibbonMatchaCream[] = INCBIN_U32("graphics/pokemon/alcremie/ribbon/Ribbon_Matcha_Cream.gbapal.lz"); +const u32 gMonPalette_AlcremieRibbonMintCream[] = INCBIN_U32("graphics/pokemon/alcremie/ribbon/Ribbon_Mint_Cream.gbapal.lz"); +const u32 gMonPalette_AlcremieRibbonLemonCream[] = INCBIN_U32("graphics/pokemon/alcremie/ribbon/Ribbon_Lemon_Cream.gbapal.lz"); +const u32 gMonPalette_AlcremieRibbonSaltedCream[] = INCBIN_U32("graphics/pokemon/alcremie/ribbon/Ribbon_Salted_Cream.gbapal.lz"); +const u32 gMonPalette_AlcremieRibbonRubySwirl[] = INCBIN_U32("graphics/pokemon/alcremie/ribbon/Ribbon_Ruby_Swirl.gbapal.lz"); +const u32 gMonPalette_AlcremieRibbonCaramelSwirl[] = INCBIN_U32("graphics/pokemon/alcremie/ribbon/Ribbon_Caramel_Swirl.gbapal.lz"); +const u32 gMonPalette_AlcremieRibbonRainbowSwirl[] = INCBIN_U32("graphics/pokemon/alcremie/ribbon/Ribbon_Rainbow_Swirl.gbapal.lz"); +const u32 gMonBackPic_AlcremieRibbon[] = INCBIN_U32("graphics/pokemon/alcremie/ribbon/back.4bpp.lz"); +const u32 gMonShinyPalette_AlcremieRibbon[] = INCBIN_U32("graphics/pokemon/alcremie/ribbon/Ribbon_Shiny.gbapal.lz"); + const u8 gMonFootprint_Falinks[] = INCBIN_U8("graphics/pokemon/falinks/footprint.1bpp"); const u8 gMonFootprint_Pincurchin[] = INCBIN_U8("graphics/pokemon/pincurchin/footprint.1bpp"); const u8 gMonFootprint_Snom[] = INCBIN_U8("graphics/pokemon/snom/footprint.1bpp"); diff --git a/src/data/pokemon/form_change_table_pointers.h b/src/data/pokemon/form_change_table_pointers.h index 61d60559f9..2110788373 100644 --- a/src/data/pokemon/form_change_table_pointers.h +++ b/src/data/pokemon/form_change_table_pointers.h @@ -271,7 +271,69 @@ const struct FormChange *const gFormChangeTablePointers[NUM_SPECIES] = [SPECIES_HATTERENE_GIGANTAMAX] = sHattereneFormChangeTable, [SPECIES_GRIMMSNARL] = sGrimmsnarlFormChangeTable, [SPECIES_GRIMMSNARL_GIGANTAMAX] = sGrimmsnarlFormChangeTable, - [SPECIES_ALCREMIE] = sAlcremieFormChangeTable, + [SPECIES_ALCREMIE_STRAWBERRY_VANILLA_CREAM] = sAlcremieFormChangeTable, + [SPECIES_ALCREMIE_STRAWBERRY_RUBY_CREAM] = sAlcremieFormChangeTable, + [SPECIES_ALCREMIE_STRAWBERRY_MATCHA_CREAM] = sAlcremieFormChangeTable, + [SPECIES_ALCREMIE_STRAWBERRY_MINT_CREAM] = sAlcremieFormChangeTable, + [SPECIES_ALCREMIE_STRAWBERRY_LEMON_CREAM] = sAlcremieFormChangeTable, + [SPECIES_ALCREMIE_STRAWBERRY_SALTED_CREAM] = sAlcremieFormChangeTable, + [SPECIES_ALCREMIE_STRAWBERRY_RUBY_SWIRL] = sAlcremieFormChangeTable, + [SPECIES_ALCREMIE_STRAWBERRY_CARAMEL_SWIRL] = sAlcremieFormChangeTable, + [SPECIES_ALCREMIE_STRAWBERRY_RAINBOW_SWIRL] = sAlcremieFormChangeTable, + [SPECIES_ALCREMIE_BERRY_VANILLA_CREAM] = sAlcremieFormChangeTable, + [SPECIES_ALCREMIE_BERRY_RUBY_CREAM] = sAlcremieFormChangeTable, + [SPECIES_ALCREMIE_BERRY_MATCHA_CREAM] = sAlcremieFormChangeTable, + [SPECIES_ALCREMIE_BERRY_MINT_CREAM] = sAlcremieFormChangeTable, + [SPECIES_ALCREMIE_BERRY_LEMON_CREAM] = sAlcremieFormChangeTable, + [SPECIES_ALCREMIE_BERRY_SALTED_CREAM] = sAlcremieFormChangeTable, + [SPECIES_ALCREMIE_BERRY_RUBY_SWIRL] = sAlcremieFormChangeTable, + [SPECIES_ALCREMIE_BERRY_CARAMEL_SWIRL] = sAlcremieFormChangeTable, + [SPECIES_ALCREMIE_BERRY_RAINBOW_SWIRL] = sAlcremieFormChangeTable, + [SPECIES_ALCREMIE_LOVE_VANILLA_CREAM] = sAlcremieFormChangeTable, + [SPECIES_ALCREMIE_LOVE_RUBY_CREAM] = sAlcremieFormChangeTable, + [SPECIES_ALCREMIE_LOVE_MATCHA_CREAM] = sAlcremieFormChangeTable, + [SPECIES_ALCREMIE_LOVE_MINT_CREAM] = sAlcremieFormChangeTable, + [SPECIES_ALCREMIE_LOVE_LEMON_CREAM] = sAlcremieFormChangeTable, + [SPECIES_ALCREMIE_LOVE_SALTED_CREAM] = sAlcremieFormChangeTable, + [SPECIES_ALCREMIE_LOVE_RUBY_SWIRL] = sAlcremieFormChangeTable, + [SPECIES_ALCREMIE_LOVE_CARAMEL_SWIRL] = sAlcremieFormChangeTable, + [SPECIES_ALCREMIE_LOVE_RAINBOW_SWIRL] = sAlcremieFormChangeTable, + [SPECIES_ALCREMIE_STAR_VANILLA_CREAM] = sAlcremieFormChangeTable, + [SPECIES_ALCREMIE_STAR_RUBY_CREAM] = sAlcremieFormChangeTable, + [SPECIES_ALCREMIE_STAR_MATCHA_CREAM] = sAlcremieFormChangeTable, + [SPECIES_ALCREMIE_STAR_MINT_CREAM] = sAlcremieFormChangeTable, + [SPECIES_ALCREMIE_STAR_LEMON_CREAM] = sAlcremieFormChangeTable, + [SPECIES_ALCREMIE_STAR_SALTED_CREAM] = sAlcremieFormChangeTable, + [SPECIES_ALCREMIE_STAR_RUBY_SWIRL] = sAlcremieFormChangeTable, + [SPECIES_ALCREMIE_STAR_CARAMEL_SWIRL] = sAlcremieFormChangeTable, + [SPECIES_ALCREMIE_STAR_RAINBOW_SWIRL] = sAlcremieFormChangeTable, + [SPECIES_ALCREMIE_CLOVER_VANILLA_CREAM] = sAlcremieFormChangeTable, + [SPECIES_ALCREMIE_CLOVER_RUBY_CREAM] = sAlcremieFormChangeTable, + [SPECIES_ALCREMIE_CLOVER_MATCHA_CREAM] = sAlcremieFormChangeTable, + [SPECIES_ALCREMIE_CLOVER_MINT_CREAM] = sAlcremieFormChangeTable, + [SPECIES_ALCREMIE_CLOVER_LEMON_CREAM] = sAlcremieFormChangeTable, + [SPECIES_ALCREMIE_CLOVER_SALTED_CREAM] = sAlcremieFormChangeTable, + [SPECIES_ALCREMIE_CLOVER_RUBY_SWIRL] = sAlcremieFormChangeTable, + [SPECIES_ALCREMIE_CLOVER_CARAMEL_SWIRL] = sAlcremieFormChangeTable, + [SPECIES_ALCREMIE_CLOVER_RAINBOW_SWIRL] = sAlcremieFormChangeTable, + [SPECIES_ALCREMIE_FLOWER_VANILLA_CREAM] = sAlcremieFormChangeTable, + [SPECIES_ALCREMIE_FLOWER_RUBY_CREAM] = sAlcremieFormChangeTable, + [SPECIES_ALCREMIE_FLOWER_MATCHA_CREAM] = sAlcremieFormChangeTable, + [SPECIES_ALCREMIE_FLOWER_MINT_CREAM] = sAlcremieFormChangeTable, + [SPECIES_ALCREMIE_FLOWER_LEMON_CREAM] = sAlcremieFormChangeTable, + [SPECIES_ALCREMIE_FLOWER_SALTED_CREAM] = sAlcremieFormChangeTable, + [SPECIES_ALCREMIE_FLOWER_RUBY_SWIRL] = sAlcremieFormChangeTable, + [SPECIES_ALCREMIE_FLOWER_CARAMEL_SWIRL] = sAlcremieFormChangeTable, + [SPECIES_ALCREMIE_FLOWER_RAINBOW_SWIRL] = sAlcremieFormChangeTable, + [SPECIES_ALCREMIE_RIBBON_VANILLA_CREAM] = sAlcremieFormChangeTable, + [SPECIES_ALCREMIE_RIBBON_RUBY_CREAM] = sAlcremieFormChangeTable, + [SPECIES_ALCREMIE_RIBBON_MATCHA_CREAM] = sAlcremieFormChangeTable, + [SPECIES_ALCREMIE_RIBBON_MINT_CREAM] = sAlcremieFormChangeTable, + [SPECIES_ALCREMIE_RIBBON_LEMON_CREAM] = sAlcremieFormChangeTable, + [SPECIES_ALCREMIE_RIBBON_SALTED_CREAM] = sAlcremieFormChangeTable, + [SPECIES_ALCREMIE_RIBBON_RUBY_SWIRL] = sAlcremieFormChangeTable, + [SPECIES_ALCREMIE_RIBBON_CARAMEL_SWIRL] = sAlcremieFormChangeTable, + [SPECIES_ALCREMIE_RIBBON_RAINBOW_SWIRL] = sAlcremieFormChangeTable, [SPECIES_ALCREMIE_GIGANTAMAX] = sAlcremieFormChangeTable, [SPECIES_EISCUE_ICE_FACE] = sEiscueFormChangeTable, [SPECIES_EISCUE_NOICE_FACE] = sEiscueFormChangeTable, diff --git a/src/data/pokemon/form_species_table_pointers.h b/src/data/pokemon/form_species_table_pointers.h index e3ef8aa2bd..842ec4294e 100644 --- a/src/data/pokemon/form_species_table_pointers.h +++ b/src/data/pokemon/form_species_table_pointers.h @@ -167,6 +167,68 @@ const u16 *const gFormSpeciesIdTables[NUM_SPECIES] = [SPECIES_SINISTEA_PHONY] = sSinisteaFormSpeciesIdTable, [SPECIES_POLTEAGEIST_PHONY] = sPolteageistFormSpeciesIdTable, [SPECIES_ALCREMIE_STRAWBERRY_VANILLA_CREAM] = sAlcremieFormSpeciesIdTable, + [SPECIES_ALCREMIE_STRAWBERRY_RUBY_CREAM] = sAlcremieFormSpeciesIdTable, + [SPECIES_ALCREMIE_STRAWBERRY_MATCHA_CREAM] = sAlcremieFormSpeciesIdTable, + [SPECIES_ALCREMIE_STRAWBERRY_MINT_CREAM] = sAlcremieFormSpeciesIdTable, + [SPECIES_ALCREMIE_STRAWBERRY_LEMON_CREAM] = sAlcremieFormSpeciesIdTable, + [SPECIES_ALCREMIE_STRAWBERRY_SALTED_CREAM] = sAlcremieFormSpeciesIdTable, + [SPECIES_ALCREMIE_STRAWBERRY_RUBY_SWIRL] = sAlcremieFormSpeciesIdTable, + [SPECIES_ALCREMIE_STRAWBERRY_CARAMEL_SWIRL] = sAlcremieFormSpeciesIdTable, + [SPECIES_ALCREMIE_STRAWBERRY_RAINBOW_SWIRL] = sAlcremieFormSpeciesIdTable, + [SPECIES_ALCREMIE_BERRY_VANILLA_CREAM] = sAlcremieFormSpeciesIdTable, + [SPECIES_ALCREMIE_BERRY_RUBY_CREAM] = sAlcremieFormSpeciesIdTable, + [SPECIES_ALCREMIE_BERRY_MATCHA_CREAM] = sAlcremieFormSpeciesIdTable, + [SPECIES_ALCREMIE_BERRY_MINT_CREAM] = sAlcremieFormSpeciesIdTable, + [SPECIES_ALCREMIE_BERRY_LEMON_CREAM] = sAlcremieFormSpeciesIdTable, + [SPECIES_ALCREMIE_BERRY_SALTED_CREAM] = sAlcremieFormSpeciesIdTable, + [SPECIES_ALCREMIE_BERRY_RUBY_SWIRL] = sAlcremieFormSpeciesIdTable, + [SPECIES_ALCREMIE_BERRY_CARAMEL_SWIRL] = sAlcremieFormSpeciesIdTable, + [SPECIES_ALCREMIE_BERRY_RAINBOW_SWIRL] = sAlcremieFormSpeciesIdTable, + [SPECIES_ALCREMIE_LOVE_VANILLA_CREAM] = sAlcremieFormSpeciesIdTable, + [SPECIES_ALCREMIE_LOVE_RUBY_CREAM] = sAlcremieFormSpeciesIdTable, + [SPECIES_ALCREMIE_LOVE_MATCHA_CREAM] = sAlcremieFormSpeciesIdTable, + [SPECIES_ALCREMIE_LOVE_MINT_CREAM] = sAlcremieFormSpeciesIdTable, + [SPECIES_ALCREMIE_LOVE_LEMON_CREAM] = sAlcremieFormSpeciesIdTable, + [SPECIES_ALCREMIE_LOVE_SALTED_CREAM] = sAlcremieFormSpeciesIdTable, + [SPECIES_ALCREMIE_LOVE_RUBY_SWIRL] = sAlcremieFormSpeciesIdTable, + [SPECIES_ALCREMIE_LOVE_CARAMEL_SWIRL] = sAlcremieFormSpeciesIdTable, + [SPECIES_ALCREMIE_LOVE_RAINBOW_SWIRL] = sAlcremieFormSpeciesIdTable, + [SPECIES_ALCREMIE_STAR_VANILLA_CREAM] = sAlcremieFormSpeciesIdTable, + [SPECIES_ALCREMIE_STAR_RUBY_CREAM] = sAlcremieFormSpeciesIdTable, + [SPECIES_ALCREMIE_STAR_MATCHA_CREAM] = sAlcremieFormSpeciesIdTable, + [SPECIES_ALCREMIE_STAR_MINT_CREAM] = sAlcremieFormSpeciesIdTable, + [SPECIES_ALCREMIE_STAR_LEMON_CREAM] = sAlcremieFormSpeciesIdTable, + [SPECIES_ALCREMIE_STAR_SALTED_CREAM] = sAlcremieFormSpeciesIdTable, + [SPECIES_ALCREMIE_STAR_RUBY_SWIRL] = sAlcremieFormSpeciesIdTable, + [SPECIES_ALCREMIE_STAR_CARAMEL_SWIRL] = sAlcremieFormSpeciesIdTable, + [SPECIES_ALCREMIE_STAR_RAINBOW_SWIRL] = sAlcremieFormSpeciesIdTable, + [SPECIES_ALCREMIE_CLOVER_VANILLA_CREAM] = sAlcremieFormSpeciesIdTable, + [SPECIES_ALCREMIE_CLOVER_RUBY_CREAM] = sAlcremieFormSpeciesIdTable, + [SPECIES_ALCREMIE_CLOVER_MATCHA_CREAM] = sAlcremieFormSpeciesIdTable, + [SPECIES_ALCREMIE_CLOVER_MINT_CREAM] = sAlcremieFormSpeciesIdTable, + [SPECIES_ALCREMIE_CLOVER_LEMON_CREAM] = sAlcremieFormSpeciesIdTable, + [SPECIES_ALCREMIE_CLOVER_SALTED_CREAM] = sAlcremieFormSpeciesIdTable, + [SPECIES_ALCREMIE_CLOVER_RUBY_SWIRL] = sAlcremieFormSpeciesIdTable, + [SPECIES_ALCREMIE_CLOVER_CARAMEL_SWIRL] = sAlcremieFormSpeciesIdTable, + [SPECIES_ALCREMIE_CLOVER_RAINBOW_SWIRL] = sAlcremieFormSpeciesIdTable, + [SPECIES_ALCREMIE_FLOWER_VANILLA_CREAM] = sAlcremieFormSpeciesIdTable, + [SPECIES_ALCREMIE_FLOWER_RUBY_CREAM] = sAlcremieFormSpeciesIdTable, + [SPECIES_ALCREMIE_FLOWER_MATCHA_CREAM] = sAlcremieFormSpeciesIdTable, + [SPECIES_ALCREMIE_FLOWER_MINT_CREAM] = sAlcremieFormSpeciesIdTable, + [SPECIES_ALCREMIE_FLOWER_LEMON_CREAM] = sAlcremieFormSpeciesIdTable, + [SPECIES_ALCREMIE_FLOWER_SALTED_CREAM] = sAlcremieFormSpeciesIdTable, + [SPECIES_ALCREMIE_FLOWER_RUBY_SWIRL] = sAlcremieFormSpeciesIdTable, + [SPECIES_ALCREMIE_FLOWER_CARAMEL_SWIRL] = sAlcremieFormSpeciesIdTable, + [SPECIES_ALCREMIE_FLOWER_RAINBOW_SWIRL] = sAlcremieFormSpeciesIdTable, + [SPECIES_ALCREMIE_RIBBON_VANILLA_CREAM] = sAlcremieFormSpeciesIdTable, + [SPECIES_ALCREMIE_RIBBON_RUBY_CREAM] = sAlcremieFormSpeciesIdTable, + [SPECIES_ALCREMIE_RIBBON_MATCHA_CREAM] = sAlcremieFormSpeciesIdTable, + [SPECIES_ALCREMIE_RIBBON_MINT_CREAM] = sAlcremieFormSpeciesIdTable, + [SPECIES_ALCREMIE_RIBBON_LEMON_CREAM] = sAlcremieFormSpeciesIdTable, + [SPECIES_ALCREMIE_RIBBON_SALTED_CREAM] = sAlcremieFormSpeciesIdTable, + [SPECIES_ALCREMIE_RIBBON_RUBY_SWIRL] = sAlcremieFormSpeciesIdTable, + [SPECIES_ALCREMIE_RIBBON_CARAMEL_SWIRL] = sAlcremieFormSpeciesIdTable, + [SPECIES_ALCREMIE_RIBBON_RAINBOW_SWIRL] = sAlcremieFormSpeciesIdTable, [SPECIES_EISCUE_ICE_FACE] = sEiscueFormSpeciesIdTable, [SPECIES_INDEEDEE_MALE] = sIndeedeeFormSpeciesIdTable, [SPECIES_MORPEKO_FULL_BELLY] = sMorpekoFormSpeciesIdTable, @@ -586,15 +648,6 @@ const u16 *const gFormSpeciesIdTables[NUM_SPECIES] = [SPECIES_SINISTEA_ANTIQUE] = sSinisteaFormSpeciesIdTable, // Polteageist [SPECIES_POLTEAGEIST_ANTIQUE] = sPolteageistFormSpeciesIdTable, - // Alcremie - [SPECIES_ALCREMIE_STRAWBERRY_RUBY_CREAM] = sAlcremieFormSpeciesIdTable, - [SPECIES_ALCREMIE_STRAWBERRY_MATCHA_CREAM] = sAlcremieFormSpeciesIdTable, - [SPECIES_ALCREMIE_STRAWBERRY_MINT_CREAM] = sAlcremieFormSpeciesIdTable, - [SPECIES_ALCREMIE_STRAWBERRY_LEMON_CREAM] = sAlcremieFormSpeciesIdTable, - [SPECIES_ALCREMIE_STRAWBERRY_SALTED_CREAM] = sAlcremieFormSpeciesIdTable, - [SPECIES_ALCREMIE_STRAWBERRY_RUBY_SWIRL] = sAlcremieFormSpeciesIdTable, - [SPECIES_ALCREMIE_STRAWBERRY_CARAMEL_SWIRL] = sAlcremieFormSpeciesIdTable, - [SPECIES_ALCREMIE_STRAWBERRY_RAINBOW_SWIRL] = sAlcremieFormSpeciesIdTable, // Eiscue [SPECIES_EISCUE_NOICE_FACE] = sEiscueFormSpeciesIdTable, // Indeedee diff --git a/src/data/pokemon/form_species_tables.h b/src/data/pokemon/form_species_tables.h index b52b427290..c3a7d7a7d6 100644 --- a/src/data/pokemon/form_species_tables.h +++ b/src/data/pokemon/form_species_tables.h @@ -1230,6 +1230,61 @@ static const u16 sAlcremieFormSpeciesIdTable[] = { SPECIES_ALCREMIE_STRAWBERRY_RUBY_SWIRL, SPECIES_ALCREMIE_STRAWBERRY_CARAMEL_SWIRL, SPECIES_ALCREMIE_STRAWBERRY_RAINBOW_SWIRL, + SPECIES_ALCREMIE_BERRY_VANILLA_CREAM, + SPECIES_ALCREMIE_BERRY_RUBY_CREAM, + SPECIES_ALCREMIE_BERRY_MATCHA_CREAM, + SPECIES_ALCREMIE_BERRY_MINT_CREAM, + SPECIES_ALCREMIE_BERRY_LEMON_CREAM, + SPECIES_ALCREMIE_BERRY_SALTED_CREAM, + SPECIES_ALCREMIE_BERRY_RUBY_SWIRL, + SPECIES_ALCREMIE_BERRY_CARAMEL_SWIRL, + SPECIES_ALCREMIE_BERRY_RAINBOW_SWIRL, + SPECIES_ALCREMIE_LOVE_VANILLA_CREAM, + SPECIES_ALCREMIE_LOVE_RUBY_CREAM, + SPECIES_ALCREMIE_LOVE_MATCHA_CREAM, + SPECIES_ALCREMIE_LOVE_MINT_CREAM, + SPECIES_ALCREMIE_LOVE_LEMON_CREAM, + SPECIES_ALCREMIE_LOVE_SALTED_CREAM, + SPECIES_ALCREMIE_LOVE_RUBY_SWIRL, + SPECIES_ALCREMIE_LOVE_CARAMEL_SWIRL, + SPECIES_ALCREMIE_LOVE_RAINBOW_SWIRL, + SPECIES_ALCREMIE_STAR_VANILLA_CREAM, + SPECIES_ALCREMIE_STAR_RUBY_CREAM, + SPECIES_ALCREMIE_STAR_MATCHA_CREAM, + SPECIES_ALCREMIE_STAR_MINT_CREAM, + SPECIES_ALCREMIE_STAR_LEMON_CREAM, + SPECIES_ALCREMIE_STAR_SALTED_CREAM, + SPECIES_ALCREMIE_STAR_RUBY_SWIRL, + SPECIES_ALCREMIE_STAR_CARAMEL_SWIRL, + SPECIES_ALCREMIE_STAR_RAINBOW_SWIRL, + SPECIES_ALCREMIE_CLOVER_VANILLA_CREAM, + SPECIES_ALCREMIE_CLOVER_RUBY_CREAM, + SPECIES_ALCREMIE_CLOVER_MATCHA_CREAM, + SPECIES_ALCREMIE_CLOVER_MINT_CREAM, + SPECIES_ALCREMIE_CLOVER_LEMON_CREAM, + SPECIES_ALCREMIE_CLOVER_SALTED_CREAM, + SPECIES_ALCREMIE_CLOVER_RUBY_SWIRL, + SPECIES_ALCREMIE_CLOVER_CARAMEL_SWIRL, + SPECIES_ALCREMIE_CLOVER_RAINBOW_SWIRL, + SPECIES_ALCREMIE_FLOWER_VANILLA_CREAM, + SPECIES_ALCREMIE_FLOWER_RUBY_CREAM, + SPECIES_ALCREMIE_FLOWER_MATCHA_CREAM, + SPECIES_ALCREMIE_FLOWER_MINT_CREAM, + SPECIES_ALCREMIE_FLOWER_LEMON_CREAM, + SPECIES_ALCREMIE_FLOWER_SALTED_CREAM, + SPECIES_ALCREMIE_FLOWER_RUBY_SWIRL, + SPECIES_ALCREMIE_FLOWER_CARAMEL_SWIRL, + SPECIES_ALCREMIE_FLOWER_RAINBOW_SWIRL, + SPECIES_ALCREMIE_RIBBON_VANILLA_CREAM, + SPECIES_ALCREMIE_RIBBON_RUBY_CREAM, + SPECIES_ALCREMIE_RIBBON_MATCHA_CREAM, + SPECIES_ALCREMIE_RIBBON_MINT_CREAM, + SPECIES_ALCREMIE_RIBBON_LEMON_CREAM, + SPECIES_ALCREMIE_RIBBON_SALTED_CREAM, + SPECIES_ALCREMIE_RIBBON_RUBY_SWIRL, + SPECIES_ALCREMIE_RIBBON_CARAMEL_SWIRL, + SPECIES_ALCREMIE_RIBBON_RAINBOW_SWIRL, + SPECIES_ALCREMIE_GIGANTAMAX, FORM_SPECIES_END, }; diff --git a/src/data/pokemon/level_up_learnset_pointers.h b/src/data/pokemon/level_up_learnset_pointers.h index 91786b87d0..9c48dbcbaa 100644 --- a/src/data/pokemon/level_up_learnset_pointers.h +++ b/src/data/pokemon/level_up_learnset_pointers.h @@ -883,6 +883,68 @@ const struct LevelUpMove *const gLevelUpLearnsets[NUM_SPECIES] = [SPECIES_RUNERIGUS] = sRunerigusLevelUpLearnset, [SPECIES_MILCERY] = sMilceryLevelUpLearnset, [SPECIES_ALCREMIE_STRAWBERRY_VANILLA_CREAM] = sAlcremieLevelUpLearnset, + [SPECIES_ALCREMIE_STRAWBERRY_RUBY_CREAM] = sAlcremieLevelUpLearnset, + [SPECIES_ALCREMIE_STRAWBERRY_MATCHA_CREAM] = sAlcremieLevelUpLearnset, + [SPECIES_ALCREMIE_STRAWBERRY_MINT_CREAM] = sAlcremieLevelUpLearnset, + [SPECIES_ALCREMIE_STRAWBERRY_LEMON_CREAM] = sAlcremieLevelUpLearnset, + [SPECIES_ALCREMIE_STRAWBERRY_SALTED_CREAM] = sAlcremieLevelUpLearnset, + [SPECIES_ALCREMIE_STRAWBERRY_RUBY_SWIRL] = sAlcremieLevelUpLearnset, + [SPECIES_ALCREMIE_STRAWBERRY_CARAMEL_SWIRL] = sAlcremieLevelUpLearnset, + [SPECIES_ALCREMIE_STRAWBERRY_RAINBOW_SWIRL] = sAlcremieLevelUpLearnset, + [SPECIES_ALCREMIE_BERRY_VANILLA_CREAM] = sAlcremieLevelUpLearnset, + [SPECIES_ALCREMIE_BERRY_RUBY_CREAM] = sAlcremieLevelUpLearnset, + [SPECIES_ALCREMIE_BERRY_MATCHA_CREAM] = sAlcremieLevelUpLearnset, + [SPECIES_ALCREMIE_BERRY_MINT_CREAM] = sAlcremieLevelUpLearnset, + [SPECIES_ALCREMIE_BERRY_LEMON_CREAM] = sAlcremieLevelUpLearnset, + [SPECIES_ALCREMIE_BERRY_SALTED_CREAM] = sAlcremieLevelUpLearnset, + [SPECIES_ALCREMIE_BERRY_RUBY_SWIRL] = sAlcremieLevelUpLearnset, + [SPECIES_ALCREMIE_BERRY_CARAMEL_SWIRL] = sAlcremieLevelUpLearnset, + [SPECIES_ALCREMIE_BERRY_RAINBOW_SWIRL] = sAlcremieLevelUpLearnset, + [SPECIES_ALCREMIE_LOVE_VANILLA_CREAM] = sAlcremieLevelUpLearnset, + [SPECIES_ALCREMIE_LOVE_RUBY_CREAM] = sAlcremieLevelUpLearnset, + [SPECIES_ALCREMIE_LOVE_MATCHA_CREAM] = sAlcremieLevelUpLearnset, + [SPECIES_ALCREMIE_LOVE_MINT_CREAM] = sAlcremieLevelUpLearnset, + [SPECIES_ALCREMIE_LOVE_LEMON_CREAM] = sAlcremieLevelUpLearnset, + [SPECIES_ALCREMIE_LOVE_SALTED_CREAM] = sAlcremieLevelUpLearnset, + [SPECIES_ALCREMIE_LOVE_RUBY_SWIRL] = sAlcremieLevelUpLearnset, + [SPECIES_ALCREMIE_LOVE_CARAMEL_SWIRL] = sAlcremieLevelUpLearnset, + [SPECIES_ALCREMIE_LOVE_RAINBOW_SWIRL] = sAlcremieLevelUpLearnset, + [SPECIES_ALCREMIE_STAR_VANILLA_CREAM] = sAlcremieLevelUpLearnset, + [SPECIES_ALCREMIE_STAR_RUBY_CREAM] = sAlcremieLevelUpLearnset, + [SPECIES_ALCREMIE_STAR_MATCHA_CREAM] = sAlcremieLevelUpLearnset, + [SPECIES_ALCREMIE_STAR_MINT_CREAM] = sAlcremieLevelUpLearnset, + [SPECIES_ALCREMIE_STAR_LEMON_CREAM] = sAlcremieLevelUpLearnset, + [SPECIES_ALCREMIE_STAR_SALTED_CREAM] = sAlcremieLevelUpLearnset, + [SPECIES_ALCREMIE_STAR_RUBY_SWIRL] = sAlcremieLevelUpLearnset, + [SPECIES_ALCREMIE_STAR_CARAMEL_SWIRL] = sAlcremieLevelUpLearnset, + [SPECIES_ALCREMIE_STAR_RAINBOW_SWIRL] = sAlcremieLevelUpLearnset, + [SPECIES_ALCREMIE_CLOVER_VANILLA_CREAM] = sAlcremieLevelUpLearnset, + [SPECIES_ALCREMIE_CLOVER_RUBY_CREAM] = sAlcremieLevelUpLearnset, + [SPECIES_ALCREMIE_CLOVER_MATCHA_CREAM] = sAlcremieLevelUpLearnset, + [SPECIES_ALCREMIE_CLOVER_MINT_CREAM] = sAlcremieLevelUpLearnset, + [SPECIES_ALCREMIE_CLOVER_LEMON_CREAM] = sAlcremieLevelUpLearnset, + [SPECIES_ALCREMIE_CLOVER_SALTED_CREAM] = sAlcremieLevelUpLearnset, + [SPECIES_ALCREMIE_CLOVER_RUBY_SWIRL] = sAlcremieLevelUpLearnset, + [SPECIES_ALCREMIE_CLOVER_CARAMEL_SWIRL] = sAlcremieLevelUpLearnset, + [SPECIES_ALCREMIE_CLOVER_RAINBOW_SWIRL] = sAlcremieLevelUpLearnset, + [SPECIES_ALCREMIE_FLOWER_VANILLA_CREAM] = sAlcremieLevelUpLearnset, + [SPECIES_ALCREMIE_FLOWER_RUBY_CREAM] = sAlcremieLevelUpLearnset, + [SPECIES_ALCREMIE_FLOWER_MATCHA_CREAM] = sAlcremieLevelUpLearnset, + [SPECIES_ALCREMIE_FLOWER_MINT_CREAM] = sAlcremieLevelUpLearnset, + [SPECIES_ALCREMIE_FLOWER_LEMON_CREAM] = sAlcremieLevelUpLearnset, + [SPECIES_ALCREMIE_FLOWER_SALTED_CREAM] = sAlcremieLevelUpLearnset, + [SPECIES_ALCREMIE_FLOWER_RUBY_SWIRL] = sAlcremieLevelUpLearnset, + [SPECIES_ALCREMIE_FLOWER_CARAMEL_SWIRL] = sAlcremieLevelUpLearnset, + [SPECIES_ALCREMIE_FLOWER_RAINBOW_SWIRL] = sAlcremieLevelUpLearnset, + [SPECIES_ALCREMIE_RIBBON_VANILLA_CREAM] = sAlcremieLevelUpLearnset, + [SPECIES_ALCREMIE_RIBBON_RUBY_CREAM] = sAlcremieLevelUpLearnset, + [SPECIES_ALCREMIE_RIBBON_MATCHA_CREAM] = sAlcremieLevelUpLearnset, + [SPECIES_ALCREMIE_RIBBON_MINT_CREAM] = sAlcremieLevelUpLearnset, + [SPECIES_ALCREMIE_RIBBON_LEMON_CREAM] = sAlcremieLevelUpLearnset, + [SPECIES_ALCREMIE_RIBBON_SALTED_CREAM] = sAlcremieLevelUpLearnset, + [SPECIES_ALCREMIE_RIBBON_RUBY_SWIRL] = sAlcremieLevelUpLearnset, + [SPECIES_ALCREMIE_RIBBON_CARAMEL_SWIRL] = sAlcremieLevelUpLearnset, + [SPECIES_ALCREMIE_RIBBON_RAINBOW_SWIRL] = sAlcremieLevelUpLearnset, [SPECIES_FALINKS] = sFalinksLevelUpLearnset, [SPECIES_PINCURCHIN] = sPincurchinLevelUpLearnset, [SPECIES_SNOM] = sSnomLevelUpLearnset, @@ -1442,15 +1504,6 @@ const struct LevelUpMove *const gLevelUpLearnsets[NUM_SPECIES] = [SPECIES_SINISTEA_ANTIQUE] = sSinisteaLevelUpLearnset, // Polteageist [SPECIES_POLTEAGEIST_ANTIQUE] = sPolteageistLevelUpLearnset, - // Alcremie - [SPECIES_ALCREMIE_STRAWBERRY_RUBY_CREAM] = sAlcremieLevelUpLearnset, - [SPECIES_ALCREMIE_STRAWBERRY_MATCHA_CREAM] = sAlcremieLevelUpLearnset, - [SPECIES_ALCREMIE_STRAWBERRY_MINT_CREAM] = sAlcremieLevelUpLearnset, - [SPECIES_ALCREMIE_STRAWBERRY_LEMON_CREAM] = sAlcremieLevelUpLearnset, - [SPECIES_ALCREMIE_STRAWBERRY_SALTED_CREAM] = sAlcremieLevelUpLearnset, - [SPECIES_ALCREMIE_STRAWBERRY_RUBY_SWIRL] = sAlcremieLevelUpLearnset, - [SPECIES_ALCREMIE_STRAWBERRY_CARAMEL_SWIRL] = sAlcremieLevelUpLearnset, - [SPECIES_ALCREMIE_STRAWBERRY_RAINBOW_SWIRL] = sAlcremieLevelUpLearnset, // Eiscue [SPECIES_EISCUE_NOICE_FACE] = sEiscueLevelUpLearnset, // Indeedee diff --git a/src/data/pokemon/species_info.h b/src/data/pokemon/species_info.h index be8cffc417..e03035cdd5 100644 --- a/src/data/pokemon/species_info.h +++ b/src/data/pokemon/species_info.h @@ -1315,26 +1315,6 @@ .bodyColor = BODY_COLOR_PURPLE, \ .noFlip = FALSE -#define ALCREMIE_MISC_INFO(color) \ - .baseHP = 65, \ - .baseAttack = 60, \ - .baseDefense = 75, \ - .baseSpeed = 64, \ - .baseSpAttack = 110, \ - .baseSpDefense = 121, \ - .types = { TYPE_FAIRY, TYPE_FAIRY}, \ - .catchRate = 100, \ - .expYield = 173, \ - .evYield_SpDefense = 2, \ - .genderRatio = MON_FEMALE, \ - .eggCycles = 20, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_MEDIUM_FAST, \ - .eggGroups = { EGG_GROUP_FAIRY, EGG_GROUP_AMORPHOUS}, \ - .abilities = {ABILITY_SWEET_VEIL, ABILITY_NONE, ABILITY_AROMA_VEIL},\ - .bodyColor = color, \ - .noFlip = FALSE - #define MORPEKO_SPECIES_INFO \ { \ .baseHP = 58, \ @@ -20469,8 +20449,93 @@ const struct SpeciesInfo gSpeciesInfo[] = .noFlip = FALSE, }, - [SPECIES_ALCREMIE_STRAWBERRY_VANILLA_CREAM] = { ALCREMIE_MISC_INFO(BODY_COLOR_WHITE) }, +#define ALCREMIE_MISC_INFO(color) \ + .baseHP = 65, \ + .baseAttack = 60, \ + .baseDefense = 75, \ + .baseSpeed = 64, \ + .baseSpAttack = 110, \ + .baseSpDefense = 121, \ + .types = { TYPE_FAIRY, TYPE_FAIRY}, \ + .catchRate = 100, \ + .expYield = 173, \ + .evYield_SpDefense = 2, \ + .genderRatio = MON_FEMALE, \ + .eggCycles = 20, \ + .friendship = STANDARD_FRIENDSHIP, \ + .growthRate = GROWTH_MEDIUM_FAST, \ + .eggGroups = { EGG_GROUP_FAIRY, EGG_GROUP_AMORPHOUS}, \ + .abilities = {ABILITY_SWEET_VEIL, ABILITY_NONE, ABILITY_AROMA_VEIL},\ + .bodyColor = color, \ + .noFlip = FALSE +// For later +#define ALCREMIE_REGULAR_MISC_INFO(color, sweet, cream) \ + ALCREMIE_MISC_INFO(color) + + [SPECIES_ALCREMIE_STRAWBERRY_VANILLA_CREAM] = { ALCREMIE_REGULAR_MISC_INFO(BODY_COLOR_WHITE, Strawberry, VanillaCream), }, + [SPECIES_ALCREMIE_STRAWBERRY_RUBY_CREAM] = { ALCREMIE_REGULAR_MISC_INFO(BODY_COLOR_PINK, Strawberry, RubyCream), }, + [SPECIES_ALCREMIE_STRAWBERRY_MATCHA_CREAM] = { ALCREMIE_REGULAR_MISC_INFO(BODY_COLOR_GREEN, Strawberry, MatchaCream), }, + [SPECIES_ALCREMIE_STRAWBERRY_MINT_CREAM] = { ALCREMIE_REGULAR_MISC_INFO(BODY_COLOR_BLUE, Strawberry, MintCream), }, + [SPECIES_ALCREMIE_STRAWBERRY_LEMON_CREAM] = { ALCREMIE_REGULAR_MISC_INFO(BODY_COLOR_YELLOW, Strawberry, LemonCream), }, + [SPECIES_ALCREMIE_STRAWBERRY_SALTED_CREAM] = { ALCREMIE_REGULAR_MISC_INFO(BODY_COLOR_WHITE, Strawberry, SaltedCream), }, + [SPECIES_ALCREMIE_STRAWBERRY_RUBY_SWIRL] = { ALCREMIE_REGULAR_MISC_INFO(BODY_COLOR_YELLOW, Strawberry, RubySwirl), }, + [SPECIES_ALCREMIE_STRAWBERRY_CARAMEL_SWIRL] = { ALCREMIE_REGULAR_MISC_INFO(BODY_COLOR_BROWN, Strawberry, CaramelSwirl), }, + [SPECIES_ALCREMIE_STRAWBERRY_RAINBOW_SWIRL] = { ALCREMIE_REGULAR_MISC_INFO(BODY_COLOR_YELLOW, Strawberry, RainbowSwirl), }, + [SPECIES_ALCREMIE_BERRY_VANILLA_CREAM] = { ALCREMIE_REGULAR_MISC_INFO(BODY_COLOR_WHITE, Berry, VanillaCream) }, + [SPECIES_ALCREMIE_BERRY_RUBY_CREAM] = { ALCREMIE_REGULAR_MISC_INFO(BODY_COLOR_PINK, Berry, RubyCream) }, + [SPECIES_ALCREMIE_BERRY_MATCHA_CREAM] = { ALCREMIE_REGULAR_MISC_INFO(BODY_COLOR_GREEN, Berry, MatchaCream), }, + [SPECIES_ALCREMIE_BERRY_MINT_CREAM] = { ALCREMIE_REGULAR_MISC_INFO(BODY_COLOR_BLUE, Berry, MintCream), }, + [SPECIES_ALCREMIE_BERRY_LEMON_CREAM] = { ALCREMIE_REGULAR_MISC_INFO(BODY_COLOR_YELLOW, Berry, LemonCream), }, + [SPECIES_ALCREMIE_BERRY_SALTED_CREAM] = { ALCREMIE_REGULAR_MISC_INFO(BODY_COLOR_WHITE, Berry, SaltedCream), }, + [SPECIES_ALCREMIE_BERRY_RUBY_SWIRL] = { ALCREMIE_REGULAR_MISC_INFO(BODY_COLOR_YELLOW, Berry, RubySwirl), }, + [SPECIES_ALCREMIE_BERRY_CARAMEL_SWIRL] = { ALCREMIE_REGULAR_MISC_INFO(BODY_COLOR_BROWN, Berry, CaramelSwirl), }, + [SPECIES_ALCREMIE_BERRY_RAINBOW_SWIRL] = { ALCREMIE_REGULAR_MISC_INFO(BODY_COLOR_YELLOW, Berry, RainbowSwirl), }, + [SPECIES_ALCREMIE_LOVE_VANILLA_CREAM] = { ALCREMIE_REGULAR_MISC_INFO(BODY_COLOR_WHITE, Love, VanillaCream) }, + [SPECIES_ALCREMIE_LOVE_RUBY_CREAM] = { ALCREMIE_REGULAR_MISC_INFO(BODY_COLOR_PINK, Love, RubyCream) }, + [SPECIES_ALCREMIE_LOVE_MATCHA_CREAM] = { ALCREMIE_REGULAR_MISC_INFO(BODY_COLOR_GREEN, Love, MatchaCream), }, + [SPECIES_ALCREMIE_LOVE_MINT_CREAM] = { ALCREMIE_REGULAR_MISC_INFO(BODY_COLOR_BLUE, Love, MintCream), }, + [SPECIES_ALCREMIE_LOVE_LEMON_CREAM] = { ALCREMIE_REGULAR_MISC_INFO(BODY_COLOR_YELLOW, Love, LemonCream), }, + [SPECIES_ALCREMIE_LOVE_SALTED_CREAM] = { ALCREMIE_REGULAR_MISC_INFO(BODY_COLOR_WHITE, Love, SaltedCream), }, + [SPECIES_ALCREMIE_LOVE_RUBY_SWIRL] = { ALCREMIE_REGULAR_MISC_INFO(BODY_COLOR_YELLOW, Love, RubySwirl), }, + [SPECIES_ALCREMIE_LOVE_CARAMEL_SWIRL] = { ALCREMIE_REGULAR_MISC_INFO(BODY_COLOR_BROWN, Love, CaramelSwirl), }, + [SPECIES_ALCREMIE_LOVE_RAINBOW_SWIRL] = { ALCREMIE_REGULAR_MISC_INFO(BODY_COLOR_YELLOW, Love, RainbowSwirl), }, + [SPECIES_ALCREMIE_STAR_VANILLA_CREAM] = { ALCREMIE_REGULAR_MISC_INFO(BODY_COLOR_WHITE, Star, VanillaCream) }, + [SPECIES_ALCREMIE_STAR_RUBY_CREAM] = { ALCREMIE_REGULAR_MISC_INFO(BODY_COLOR_PINK, Star, RubyCream) }, + [SPECIES_ALCREMIE_STAR_MATCHA_CREAM] = { ALCREMIE_REGULAR_MISC_INFO(BODY_COLOR_GREEN, Star, MatchaCream), }, + [SPECIES_ALCREMIE_STAR_MINT_CREAM] = { ALCREMIE_REGULAR_MISC_INFO(BODY_COLOR_BLUE, Star, MintCream), }, + [SPECIES_ALCREMIE_STAR_LEMON_CREAM] = { ALCREMIE_REGULAR_MISC_INFO(BODY_COLOR_YELLOW, Star, LemonCream), }, + [SPECIES_ALCREMIE_STAR_SALTED_CREAM] = { ALCREMIE_REGULAR_MISC_INFO(BODY_COLOR_WHITE, Star, SaltedCream), }, + [SPECIES_ALCREMIE_STAR_RUBY_SWIRL] = { ALCREMIE_REGULAR_MISC_INFO(BODY_COLOR_YELLOW, Star, RubySwirl), }, + [SPECIES_ALCREMIE_STAR_CARAMEL_SWIRL] = { ALCREMIE_REGULAR_MISC_INFO(BODY_COLOR_BROWN, Star, CaramelSwirl), }, + [SPECIES_ALCREMIE_STAR_RAINBOW_SWIRL] = { ALCREMIE_REGULAR_MISC_INFO(BODY_COLOR_YELLOW, Star, RainbowSwirl), }, + [SPECIES_ALCREMIE_CLOVER_VANILLA_CREAM] = { ALCREMIE_REGULAR_MISC_INFO(BODY_COLOR_WHITE, Clover, VanillaCream) }, + [SPECIES_ALCREMIE_CLOVER_RUBY_CREAM] = { ALCREMIE_REGULAR_MISC_INFO(BODY_COLOR_PINK, Clover, RubyCream) }, + [SPECIES_ALCREMIE_CLOVER_MATCHA_CREAM] = { ALCREMIE_REGULAR_MISC_INFO(BODY_COLOR_GREEN, Clover, MatchaCream), }, + [SPECIES_ALCREMIE_CLOVER_MINT_CREAM] = { ALCREMIE_REGULAR_MISC_INFO(BODY_COLOR_BLUE, Clover, MintCream), }, + [SPECIES_ALCREMIE_CLOVER_LEMON_CREAM] = { ALCREMIE_REGULAR_MISC_INFO(BODY_COLOR_YELLOW, Clover, LemonCream), }, + [SPECIES_ALCREMIE_CLOVER_SALTED_CREAM] = { ALCREMIE_REGULAR_MISC_INFO(BODY_COLOR_WHITE, Clover, SaltedCream), }, + [SPECIES_ALCREMIE_CLOVER_RUBY_SWIRL] = { ALCREMIE_REGULAR_MISC_INFO(BODY_COLOR_YELLOW, Clover, RubySwirl), }, + [SPECIES_ALCREMIE_CLOVER_CARAMEL_SWIRL] = { ALCREMIE_REGULAR_MISC_INFO(BODY_COLOR_BROWN, Clover, CaramelSwirl), }, + [SPECIES_ALCREMIE_CLOVER_RAINBOW_SWIRL] = { ALCREMIE_REGULAR_MISC_INFO(BODY_COLOR_YELLOW, Clover, RainbowSwirl), }, + [SPECIES_ALCREMIE_FLOWER_VANILLA_CREAM] = { ALCREMIE_REGULAR_MISC_INFO(BODY_COLOR_WHITE, Flower, VanillaCream) }, + [SPECIES_ALCREMIE_FLOWER_RUBY_CREAM] = { ALCREMIE_REGULAR_MISC_INFO(BODY_COLOR_PINK, Flower, RubyCream) }, + [SPECIES_ALCREMIE_FLOWER_MATCHA_CREAM] = { ALCREMIE_REGULAR_MISC_INFO(BODY_COLOR_GREEN, Flower, MatchaCream), }, + [SPECIES_ALCREMIE_FLOWER_MINT_CREAM] = { ALCREMIE_REGULAR_MISC_INFO(BODY_COLOR_BLUE, Flower, MintCream), }, + [SPECIES_ALCREMIE_FLOWER_LEMON_CREAM] = { ALCREMIE_REGULAR_MISC_INFO(BODY_COLOR_YELLOW, Flower, LemonCream), }, + [SPECIES_ALCREMIE_FLOWER_SALTED_CREAM] = { ALCREMIE_REGULAR_MISC_INFO(BODY_COLOR_WHITE, Flower, SaltedCream), }, + [SPECIES_ALCREMIE_FLOWER_RUBY_SWIRL] = { ALCREMIE_REGULAR_MISC_INFO(BODY_COLOR_YELLOW, Flower, RubySwirl), }, + [SPECIES_ALCREMIE_FLOWER_CARAMEL_SWIRL] = { ALCREMIE_REGULAR_MISC_INFO(BODY_COLOR_BROWN, Flower, CaramelSwirl), }, + [SPECIES_ALCREMIE_FLOWER_RAINBOW_SWIRL] = { ALCREMIE_REGULAR_MISC_INFO(BODY_COLOR_YELLOW, Flower, RainbowSwirl), }, + [SPECIES_ALCREMIE_RIBBON_VANILLA_CREAM] = { ALCREMIE_REGULAR_MISC_INFO(BODY_COLOR_WHITE, Ribbon, VanillaCream) }, + [SPECIES_ALCREMIE_RIBBON_RUBY_CREAM] = { ALCREMIE_REGULAR_MISC_INFO(BODY_COLOR_PINK, Ribbon, RubyCream) }, + [SPECIES_ALCREMIE_RIBBON_MATCHA_CREAM] = { ALCREMIE_REGULAR_MISC_INFO(BODY_COLOR_GREEN, Ribbon, MatchaCream), }, + [SPECIES_ALCREMIE_RIBBON_MINT_CREAM] = { ALCREMIE_REGULAR_MISC_INFO(BODY_COLOR_BLUE, Ribbon, MintCream), }, + [SPECIES_ALCREMIE_RIBBON_LEMON_CREAM] = { ALCREMIE_REGULAR_MISC_INFO(BODY_COLOR_YELLOW, Ribbon, LemonCream), }, + [SPECIES_ALCREMIE_RIBBON_SALTED_CREAM] = { ALCREMIE_REGULAR_MISC_INFO(BODY_COLOR_WHITE, Ribbon, SaltedCream), }, + [SPECIES_ALCREMIE_RIBBON_RUBY_SWIRL] = { ALCREMIE_REGULAR_MISC_INFO(BODY_COLOR_YELLOW, Ribbon, RubySwirl), }, + [SPECIES_ALCREMIE_RIBBON_CARAMEL_SWIRL] = { ALCREMIE_REGULAR_MISC_INFO(BODY_COLOR_BROWN, Ribbon, CaramelSwirl), }, + [SPECIES_ALCREMIE_RIBBON_RAINBOW_SWIRL] = { ALCREMIE_REGULAR_MISC_INFO(BODY_COLOR_YELLOW, Ribbon, RainbowSwirl), }, [SPECIES_FALINKS] = { .baseHP = 65, @@ -24699,15 +24764,6 @@ const struct SpeciesInfo gSpeciesInfo[] = [SPECIES_POLTEAGEIST_ANTIQUE] = POLTEAGEIST_SPECIES_INFO, - [SPECIES_ALCREMIE_STRAWBERRY_RUBY_CREAM] = { ALCREMIE_MISC_INFO(BODY_COLOR_PINK) }, - [SPECIES_ALCREMIE_STRAWBERRY_MATCHA_CREAM] = { ALCREMIE_MISC_INFO(BODY_COLOR_GREEN) }, - [SPECIES_ALCREMIE_STRAWBERRY_MINT_CREAM] = { ALCREMIE_MISC_INFO(BODY_COLOR_BLUE) }, - [SPECIES_ALCREMIE_STRAWBERRY_LEMON_CREAM] = { ALCREMIE_MISC_INFO(BODY_COLOR_YELLOW) }, - [SPECIES_ALCREMIE_STRAWBERRY_SALTED_CREAM] = { ALCREMIE_MISC_INFO(BODY_COLOR_WHITE) }, - [SPECIES_ALCREMIE_STRAWBERRY_RUBY_SWIRL] = { ALCREMIE_MISC_INFO(BODY_COLOR_YELLOW) }, - [SPECIES_ALCREMIE_STRAWBERRY_CARAMEL_SWIRL] = { ALCREMIE_MISC_INFO(BODY_COLOR_BROWN) }, - [SPECIES_ALCREMIE_STRAWBERRY_RAINBOW_SWIRL] = { ALCREMIE_MISC_INFO(BODY_COLOR_YELLOW) }, - [SPECIES_EISCUE_NOICE_FACE] = { .baseHP = 75, diff --git a/src/data/pokemon/teachable_learnset_pointers.h b/src/data/pokemon/teachable_learnset_pointers.h index 77ea6eac64..749ec88d00 100644 --- a/src/data/pokemon/teachable_learnset_pointers.h +++ b/src/data/pokemon/teachable_learnset_pointers.h @@ -883,6 +883,68 @@ const u16 *const gTeachableLearnsets[NUM_SPECIES] = [SPECIES_RUNERIGUS] = sRunerigusTeachableLearnset, [SPECIES_MILCERY] = sMilceryTeachableLearnset, [SPECIES_ALCREMIE_STRAWBERRY_VANILLA_CREAM] = sAlcremieTeachableLearnset, + [SPECIES_ALCREMIE_STRAWBERRY_RUBY_CREAM] = sAlcremieTeachableLearnset, + [SPECIES_ALCREMIE_STRAWBERRY_MATCHA_CREAM] = sAlcremieTeachableLearnset, + [SPECIES_ALCREMIE_STRAWBERRY_MINT_CREAM] = sAlcremieTeachableLearnset, + [SPECIES_ALCREMIE_STRAWBERRY_LEMON_CREAM] = sAlcremieTeachableLearnset, + [SPECIES_ALCREMIE_STRAWBERRY_SALTED_CREAM] = sAlcremieTeachableLearnset, + [SPECIES_ALCREMIE_STRAWBERRY_RUBY_SWIRL] = sAlcremieTeachableLearnset, + [SPECIES_ALCREMIE_STRAWBERRY_CARAMEL_SWIRL] = sAlcremieTeachableLearnset, + [SPECIES_ALCREMIE_STRAWBERRY_RAINBOW_SWIRL] = sAlcremieTeachableLearnset, + [SPECIES_ALCREMIE_BERRY_VANILLA_CREAM] = sAlcremieTeachableLearnset, + [SPECIES_ALCREMIE_BERRY_RUBY_CREAM] = sAlcremieTeachableLearnset, + [SPECIES_ALCREMIE_BERRY_MATCHA_CREAM] = sAlcremieTeachableLearnset, + [SPECIES_ALCREMIE_BERRY_MINT_CREAM] = sAlcremieTeachableLearnset, + [SPECIES_ALCREMIE_BERRY_LEMON_CREAM] = sAlcremieTeachableLearnset, + [SPECIES_ALCREMIE_BERRY_SALTED_CREAM] = sAlcremieTeachableLearnset, + [SPECIES_ALCREMIE_BERRY_RUBY_SWIRL] = sAlcremieTeachableLearnset, + [SPECIES_ALCREMIE_BERRY_CARAMEL_SWIRL] = sAlcremieTeachableLearnset, + [SPECIES_ALCREMIE_BERRY_RAINBOW_SWIRL] = sAlcremieTeachableLearnset, + [SPECIES_ALCREMIE_LOVE_VANILLA_CREAM] = sAlcremieTeachableLearnset, + [SPECIES_ALCREMIE_LOVE_RUBY_CREAM] = sAlcremieTeachableLearnset, + [SPECIES_ALCREMIE_LOVE_MATCHA_CREAM] = sAlcremieTeachableLearnset, + [SPECIES_ALCREMIE_LOVE_MINT_CREAM] = sAlcremieTeachableLearnset, + [SPECIES_ALCREMIE_LOVE_LEMON_CREAM] = sAlcremieTeachableLearnset, + [SPECIES_ALCREMIE_LOVE_SALTED_CREAM] = sAlcremieTeachableLearnset, + [SPECIES_ALCREMIE_LOVE_RUBY_SWIRL] = sAlcremieTeachableLearnset, + [SPECIES_ALCREMIE_LOVE_CARAMEL_SWIRL] = sAlcremieTeachableLearnset, + [SPECIES_ALCREMIE_LOVE_RAINBOW_SWIRL] = sAlcremieTeachableLearnset, + [SPECIES_ALCREMIE_STAR_VANILLA_CREAM] = sAlcremieTeachableLearnset, + [SPECIES_ALCREMIE_STAR_RUBY_CREAM] = sAlcremieTeachableLearnset, + [SPECIES_ALCREMIE_STAR_MATCHA_CREAM] = sAlcremieTeachableLearnset, + [SPECIES_ALCREMIE_STAR_MINT_CREAM] = sAlcremieTeachableLearnset, + [SPECIES_ALCREMIE_STAR_LEMON_CREAM] = sAlcremieTeachableLearnset, + [SPECIES_ALCREMIE_STAR_SALTED_CREAM] = sAlcremieTeachableLearnset, + [SPECIES_ALCREMIE_STAR_RUBY_SWIRL] = sAlcremieTeachableLearnset, + [SPECIES_ALCREMIE_STAR_CARAMEL_SWIRL] = sAlcremieTeachableLearnset, + [SPECIES_ALCREMIE_STAR_RAINBOW_SWIRL] = sAlcremieTeachableLearnset, + [SPECIES_ALCREMIE_CLOVER_VANILLA_CREAM] = sAlcremieTeachableLearnset, + [SPECIES_ALCREMIE_CLOVER_RUBY_CREAM] = sAlcremieTeachableLearnset, + [SPECIES_ALCREMIE_CLOVER_MATCHA_CREAM] = sAlcremieTeachableLearnset, + [SPECIES_ALCREMIE_CLOVER_MINT_CREAM] = sAlcremieTeachableLearnset, + [SPECIES_ALCREMIE_CLOVER_LEMON_CREAM] = sAlcremieTeachableLearnset, + [SPECIES_ALCREMIE_CLOVER_SALTED_CREAM] = sAlcremieTeachableLearnset, + [SPECIES_ALCREMIE_CLOVER_RUBY_SWIRL] = sAlcremieTeachableLearnset, + [SPECIES_ALCREMIE_CLOVER_CARAMEL_SWIRL] = sAlcremieTeachableLearnset, + [SPECIES_ALCREMIE_CLOVER_RAINBOW_SWIRL] = sAlcremieTeachableLearnset, + [SPECIES_ALCREMIE_FLOWER_VANILLA_CREAM] = sAlcremieTeachableLearnset, + [SPECIES_ALCREMIE_FLOWER_RUBY_CREAM] = sAlcremieTeachableLearnset, + [SPECIES_ALCREMIE_FLOWER_MATCHA_CREAM] = sAlcremieTeachableLearnset, + [SPECIES_ALCREMIE_FLOWER_MINT_CREAM] = sAlcremieTeachableLearnset, + [SPECIES_ALCREMIE_FLOWER_LEMON_CREAM] = sAlcremieTeachableLearnset, + [SPECIES_ALCREMIE_FLOWER_SALTED_CREAM] = sAlcremieTeachableLearnset, + [SPECIES_ALCREMIE_FLOWER_RUBY_SWIRL] = sAlcremieTeachableLearnset, + [SPECIES_ALCREMIE_FLOWER_CARAMEL_SWIRL] = sAlcremieTeachableLearnset, + [SPECIES_ALCREMIE_FLOWER_RAINBOW_SWIRL] = sAlcremieTeachableLearnset, + [SPECIES_ALCREMIE_RIBBON_VANILLA_CREAM] = sAlcremieTeachableLearnset, + [SPECIES_ALCREMIE_RIBBON_RUBY_CREAM] = sAlcremieTeachableLearnset, + [SPECIES_ALCREMIE_RIBBON_MATCHA_CREAM] = sAlcremieTeachableLearnset, + [SPECIES_ALCREMIE_RIBBON_MINT_CREAM] = sAlcremieTeachableLearnset, + [SPECIES_ALCREMIE_RIBBON_LEMON_CREAM] = sAlcremieTeachableLearnset, + [SPECIES_ALCREMIE_RIBBON_SALTED_CREAM] = sAlcremieTeachableLearnset, + [SPECIES_ALCREMIE_RIBBON_RUBY_SWIRL] = sAlcremieTeachableLearnset, + [SPECIES_ALCREMIE_RIBBON_CARAMEL_SWIRL] = sAlcremieTeachableLearnset, + [SPECIES_ALCREMIE_RIBBON_RAINBOW_SWIRL] = sAlcremieTeachableLearnset, [SPECIES_FALINKS] = sFalinksTeachableLearnset, [SPECIES_PINCURCHIN] = sPincurchinTeachableLearnset, [SPECIES_SNOM] = sSnomTeachableLearnset, @@ -1442,15 +1504,6 @@ const u16 *const gTeachableLearnsets[NUM_SPECIES] = [SPECIES_SINISTEA_ANTIQUE] = sSinisteaTeachableLearnset, // Polteageist [SPECIES_POLTEAGEIST_ANTIQUE] = sPolteageistTeachableLearnset, - // Alcremie - [SPECIES_ALCREMIE_STRAWBERRY_RUBY_CREAM] = sAlcremieTeachableLearnset, - [SPECIES_ALCREMIE_STRAWBERRY_MATCHA_CREAM] = sAlcremieTeachableLearnset, - [SPECIES_ALCREMIE_STRAWBERRY_MINT_CREAM] = sAlcremieTeachableLearnset, - [SPECIES_ALCREMIE_STRAWBERRY_LEMON_CREAM] = sAlcremieTeachableLearnset, - [SPECIES_ALCREMIE_STRAWBERRY_SALTED_CREAM] = sAlcremieTeachableLearnset, - [SPECIES_ALCREMIE_STRAWBERRY_RUBY_SWIRL] = sAlcremieTeachableLearnset, - [SPECIES_ALCREMIE_STRAWBERRY_CARAMEL_SWIRL] = sAlcremieTeachableLearnset, - [SPECIES_ALCREMIE_STRAWBERRY_RAINBOW_SWIRL] = sAlcremieTeachableLearnset, // Eiscue [SPECIES_EISCUE_NOICE_FACE] = sEiscueTeachableLearnset, // Indeedee diff --git a/src/data/pokemon_graphics/back_pic_coordinates.h b/src/data/pokemon_graphics/back_pic_coordinates.h index 92aa3a6eda..fef9a51f3c 100644 --- a/src/data/pokemon_graphics/back_pic_coordinates.h +++ b/src/data/pokemon_graphics/back_pic_coordinates.h @@ -756,9 +756,9 @@ const struct MonCoords gMonBackPicCoords[NUM_SPECIES + 1] = [SPECIES_VOLCANION] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 3 }, #endif #if P_GEN_7_POKEMON == TRUE - [SPECIES_ROWLET] = { .size = MON_COORDS_SIZE(48, 40), .y_offset = 15 }, - [SPECIES_DARTRIX] = { .size = MON_COORDS_SIZE(56, 56), .y_offset = 4 }, - [SPECIES_DECIDUEYE] = { .size = MON_COORDS_SIZE(48, 64), .y_offset = 0 }, + [SPECIES_ROWLET] = { .size = MON_COORDS_SIZE(43, 36), .y_offset = 15 }, + [SPECIES_DARTRIX] = { .size = MON_COORDS_SIZE(56, 54), .y_offset = 4 }, + [SPECIES_DECIDUEYE] = { .size = MON_COORDS_SIZE(46, 62), .y_offset = 0 }, [SPECIES_LITTEN] = { .size = MON_COORDS_SIZE(64, 48), .y_offset = 11 }, [SPECIES_TORRACAT] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 7 }, [SPECIES_INCINEROAR] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 4 }, @@ -800,7 +800,7 @@ const struct MonCoords gMonBackPicCoords[NUM_SPECIES + 1] = [SPECIES_TSAREENA] = { .size = MON_COORDS_SIZE(56, 56), .y_offset = 6 }, [SPECIES_COMFEY] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 11 }, [SPECIES_ORANGURU] = { .size = MON_COORDS_SIZE(64, 48), .y_offset = 12 }, - [SPECIES_PASSIMIAN] = { .size = MON_COORDS_SIZE(56, 56), .y_offset = 7 }, + [SPECIES_PASSIMIAN] = { .size = MON_COORDS_SIZE(51, 52), .y_offset = 7 }, [SPECIES_WIMPOD] = { .size = MON_COORDS_SIZE(64, 48), .y_offset = 10 }, [SPECIES_GOLISOPOD] = { .size = MON_COORDS_SIZE(64, 48), .y_offset = 9 }, [SPECIES_SANDYGAST] = { .size = MON_COORDS_SIZE(40, 48), .y_offset = 11 }, @@ -816,9 +816,9 @@ const struct MonCoords gMonBackPicCoords[NUM_SPECIES + 1] = [SPECIES_BRUXISH] = { .size = MON_COORDS_SIZE(64, 48), .y_offset = 14 }, [SPECIES_DRAMPA] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 5 }, [SPECIES_DHELMISE] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 3 }, - [SPECIES_JANGMO_O] = { .size = MON_COORDS_SIZE(48, 56), .y_offset = 7 }, - [SPECIES_HAKAMO_O] = { .size = MON_COORDS_SIZE(56, 64), .y_offset = 5 }, - [SPECIES_KOMMO_O] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 2 }, + [SPECIES_JANGMO_O] = { .size = MON_COORDS_SIZE(42, 56), .y_offset = 5 }, + [SPECIES_HAKAMO_O] = { .size = MON_COORDS_SIZE(49, 56), .y_offset = 5 }, + [SPECIES_KOMMO_O] = { .size = MON_COORDS_SIZE(60, 60), .y_offset = 2 }, [SPECIES_TAPU_KOKO] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 2 }, [SPECIES_TAPU_LELE] = { .size = MON_COORDS_SIZE(56, 56), .y_offset = 6 }, [SPECIES_TAPU_BULU] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 1 }, @@ -906,6 +906,68 @@ const struct MonCoords gMonBackPicCoords[NUM_SPECIES + 1] = [SPECIES_RUNERIGUS] = { .size = MON_COORDS_SIZE(64, 48), .y_offset = 9 }, [SPECIES_MILCERY] = { .size = MON_COORDS_SIZE(56, 48), .y_offset = 16 }, [SPECIES_ALCREMIE_STRAWBERRY_VANILLA_CREAM] = { .size = MON_COORDS_SIZE(48, 56), .y_offset = 9 }, + [SPECIES_ALCREMIE_STRAWBERRY_RUBY_CREAM] = { .size = MON_COORDS_SIZE(48, 56), .y_offset = 9 }, + [SPECIES_ALCREMIE_STRAWBERRY_MATCHA_CREAM] = { .size = MON_COORDS_SIZE(48, 56), .y_offset = 9 }, + [SPECIES_ALCREMIE_STRAWBERRY_MINT_CREAM] = { .size = MON_COORDS_SIZE(48, 56), .y_offset = 9 }, + [SPECIES_ALCREMIE_STRAWBERRY_LEMON_CREAM] = { .size = MON_COORDS_SIZE(48, 56), .y_offset = 9 }, + [SPECIES_ALCREMIE_STRAWBERRY_SALTED_CREAM] = { .size = MON_COORDS_SIZE(48, 56), .y_offset = 9 }, + [SPECIES_ALCREMIE_STRAWBERRY_RUBY_SWIRL] = { .size = MON_COORDS_SIZE(48, 56), .y_offset = 9 }, + [SPECIES_ALCREMIE_STRAWBERRY_CARAMEL_SWIRL] = { .size = MON_COORDS_SIZE(48, 56), .y_offset = 9 }, + [SPECIES_ALCREMIE_STRAWBERRY_RAINBOW_SWIRL] = { .size = MON_COORDS_SIZE(48, 56), .y_offset = 9 }, + [SPECIES_ALCREMIE_BERRY_VANILLA_CREAM] = { .size = MON_COORDS_SIZE(48, 56), .y_offset = 9 }, + [SPECIES_ALCREMIE_BERRY_RUBY_CREAM] = { .size = MON_COORDS_SIZE(48, 56), .y_offset = 9 }, + [SPECIES_ALCREMIE_BERRY_MATCHA_CREAM] = { .size = MON_COORDS_SIZE(48, 56), .y_offset = 9 }, + [SPECIES_ALCREMIE_BERRY_MINT_CREAM] = { .size = MON_COORDS_SIZE(48, 56), .y_offset = 9 }, + [SPECIES_ALCREMIE_BERRY_LEMON_CREAM] = { .size = MON_COORDS_SIZE(48, 56), .y_offset = 9 }, + [SPECIES_ALCREMIE_BERRY_SALTED_CREAM] = { .size = MON_COORDS_SIZE(48, 56), .y_offset = 9 }, + [SPECIES_ALCREMIE_BERRY_RUBY_SWIRL] = { .size = MON_COORDS_SIZE(48, 56), .y_offset = 9 }, + [SPECIES_ALCREMIE_BERRY_CARAMEL_SWIRL] = { .size = MON_COORDS_SIZE(48, 56), .y_offset = 9 }, + [SPECIES_ALCREMIE_BERRY_RAINBOW_SWIRL] = { .size = MON_COORDS_SIZE(48, 56), .y_offset = 9 }, + [SPECIES_ALCREMIE_LOVE_VANILLA_CREAM] = { .size = MON_COORDS_SIZE(48, 56), .y_offset = 9 }, + [SPECIES_ALCREMIE_LOVE_RUBY_CREAM] = { .size = MON_COORDS_SIZE(48, 56), .y_offset = 9 }, + [SPECIES_ALCREMIE_LOVE_MATCHA_CREAM] = { .size = MON_COORDS_SIZE(48, 56), .y_offset = 9 }, + [SPECIES_ALCREMIE_LOVE_MINT_CREAM] = { .size = MON_COORDS_SIZE(48, 56), .y_offset = 9 }, + [SPECIES_ALCREMIE_LOVE_LEMON_CREAM] = { .size = MON_COORDS_SIZE(48, 56), .y_offset = 9 }, + [SPECIES_ALCREMIE_LOVE_SALTED_CREAM] = { .size = MON_COORDS_SIZE(48, 56), .y_offset = 9 }, + [SPECIES_ALCREMIE_LOVE_RUBY_SWIRL] = { .size = MON_COORDS_SIZE(48, 56), .y_offset = 9 }, + [SPECIES_ALCREMIE_LOVE_CARAMEL_SWIRL] = { .size = MON_COORDS_SIZE(48, 56), .y_offset = 9 }, + [SPECIES_ALCREMIE_LOVE_RAINBOW_SWIRL] = { .size = MON_COORDS_SIZE(48, 56), .y_offset = 9 }, + [SPECIES_ALCREMIE_STAR_VANILLA_CREAM] = { .size = MON_COORDS_SIZE(48, 56), .y_offset = 9 }, + [SPECIES_ALCREMIE_STAR_RUBY_CREAM] = { .size = MON_COORDS_SIZE(48, 56), .y_offset = 9 }, + [SPECIES_ALCREMIE_STAR_MATCHA_CREAM] = { .size = MON_COORDS_SIZE(48, 56), .y_offset = 9 }, + [SPECIES_ALCREMIE_STAR_MINT_CREAM] = { .size = MON_COORDS_SIZE(48, 56), .y_offset = 9 }, + [SPECIES_ALCREMIE_STAR_LEMON_CREAM] = { .size = MON_COORDS_SIZE(48, 56), .y_offset = 9 }, + [SPECIES_ALCREMIE_STAR_SALTED_CREAM] = { .size = MON_COORDS_SIZE(48, 56), .y_offset = 9 }, + [SPECIES_ALCREMIE_STAR_RUBY_SWIRL] = { .size = MON_COORDS_SIZE(48, 56), .y_offset = 9 }, + [SPECIES_ALCREMIE_STAR_CARAMEL_SWIRL] = { .size = MON_COORDS_SIZE(48, 56), .y_offset = 9 }, + [SPECIES_ALCREMIE_STAR_RAINBOW_SWIRL] = { .size = MON_COORDS_SIZE(48, 56), .y_offset = 9 }, + [SPECIES_ALCREMIE_CLOVER_VANILLA_CREAM] = { .size = MON_COORDS_SIZE(48, 56), .y_offset = 9 }, + [SPECIES_ALCREMIE_CLOVER_RUBY_CREAM] = { .size = MON_COORDS_SIZE(48, 56), .y_offset = 9 }, + [SPECIES_ALCREMIE_CLOVER_MATCHA_CREAM] = { .size = MON_COORDS_SIZE(48, 56), .y_offset = 9 }, + [SPECIES_ALCREMIE_CLOVER_MINT_CREAM] = { .size = MON_COORDS_SIZE(48, 56), .y_offset = 9 }, + [SPECIES_ALCREMIE_CLOVER_LEMON_CREAM] = { .size = MON_COORDS_SIZE(48, 56), .y_offset = 9 }, + [SPECIES_ALCREMIE_CLOVER_SALTED_CREAM] = { .size = MON_COORDS_SIZE(48, 56), .y_offset = 9 }, + [SPECIES_ALCREMIE_CLOVER_RUBY_SWIRL] = { .size = MON_COORDS_SIZE(48, 56), .y_offset = 9 }, + [SPECIES_ALCREMIE_CLOVER_CARAMEL_SWIRL] = { .size = MON_COORDS_SIZE(48, 56), .y_offset = 9 }, + [SPECIES_ALCREMIE_CLOVER_RAINBOW_SWIRL] = { .size = MON_COORDS_SIZE(48, 56), .y_offset = 9 }, + [SPECIES_ALCREMIE_FLOWER_VANILLA_CREAM] = { .size = MON_COORDS_SIZE(48, 56), .y_offset = 9 }, + [SPECIES_ALCREMIE_FLOWER_RUBY_CREAM] = { .size = MON_COORDS_SIZE(48, 56), .y_offset = 9 }, + [SPECIES_ALCREMIE_FLOWER_MATCHA_CREAM] = { .size = MON_COORDS_SIZE(48, 56), .y_offset = 9 }, + [SPECIES_ALCREMIE_FLOWER_MINT_CREAM] = { .size = MON_COORDS_SIZE(48, 56), .y_offset = 9 }, + [SPECIES_ALCREMIE_FLOWER_LEMON_CREAM] = { .size = MON_COORDS_SIZE(48, 56), .y_offset = 9 }, + [SPECIES_ALCREMIE_FLOWER_SALTED_CREAM] = { .size = MON_COORDS_SIZE(48, 56), .y_offset = 9 }, + [SPECIES_ALCREMIE_FLOWER_RUBY_SWIRL] = { .size = MON_COORDS_SIZE(48, 56), .y_offset = 9 }, + [SPECIES_ALCREMIE_FLOWER_CARAMEL_SWIRL] = { .size = MON_COORDS_SIZE(48, 56), .y_offset = 9 }, + [SPECIES_ALCREMIE_FLOWER_RAINBOW_SWIRL] = { .size = MON_COORDS_SIZE(48, 56), .y_offset = 9 }, + [SPECIES_ALCREMIE_RIBBON_VANILLA_CREAM] = { .size = MON_COORDS_SIZE(48, 56), .y_offset = 9 }, + [SPECIES_ALCREMIE_RIBBON_RUBY_CREAM] = { .size = MON_COORDS_SIZE(48, 56), .y_offset = 9 }, + [SPECIES_ALCREMIE_RIBBON_MATCHA_CREAM] = { .size = MON_COORDS_SIZE(48, 56), .y_offset = 9 }, + [SPECIES_ALCREMIE_RIBBON_MINT_CREAM] = { .size = MON_COORDS_SIZE(48, 56), .y_offset = 9 }, + [SPECIES_ALCREMIE_RIBBON_LEMON_CREAM] = { .size = MON_COORDS_SIZE(48, 56), .y_offset = 9 }, + [SPECIES_ALCREMIE_RIBBON_SALTED_CREAM] = { .size = MON_COORDS_SIZE(48, 56), .y_offset = 9 }, + [SPECIES_ALCREMIE_RIBBON_RUBY_SWIRL] = { .size = MON_COORDS_SIZE(48, 56), .y_offset = 9 }, + [SPECIES_ALCREMIE_RIBBON_CARAMEL_SWIRL] = { .size = MON_COORDS_SIZE(48, 56), .y_offset = 9 }, + [SPECIES_ALCREMIE_RIBBON_RAINBOW_SWIRL] = { .size = MON_COORDS_SIZE(48, 56), .y_offset = 9 }, [SPECIES_FALINKS] = { .size = MON_COORDS_SIZE(64, 40), .y_offset = 15 }, [SPECIES_PINCURCHIN] = { .size = MON_COORDS_SIZE(56, 40), .y_offset = 13 }, [SPECIES_SNOM] = { .size = MON_COORDS_SIZE(48, 32), .y_offset = 17 }, @@ -1418,15 +1480,6 @@ const struct MonCoords gMonBackPicCoords[NUM_SPECIES + 1] = [SPECIES_SINISTEA_ANTIQUE] = { .size = MON_COORDS_SIZE(48, 32), .y_offset = 16 }, // Polteageist [SPECIES_POLTEAGEIST_ANTIQUE] = { .size = MON_COORDS_SIZE(64, 40), .y_offset = 13 }, - // Alcremie - [SPECIES_ALCREMIE_STRAWBERRY_RUBY_CREAM] = { .size = MON_COORDS_SIZE(48, 56), .y_offset = 9 }, - [SPECIES_ALCREMIE_STRAWBERRY_MATCHA_CREAM] = { .size = MON_COORDS_SIZE(48, 56), .y_offset = 9 }, - [SPECIES_ALCREMIE_STRAWBERRY_MINT_CREAM] = { .size = MON_COORDS_SIZE(48, 56), .y_offset = 9 }, - [SPECIES_ALCREMIE_STRAWBERRY_LEMON_CREAM] = { .size = MON_COORDS_SIZE(48, 56), .y_offset = 9 }, - [SPECIES_ALCREMIE_STRAWBERRY_SALTED_CREAM] = { .size = MON_COORDS_SIZE(48, 56), .y_offset = 9 }, - [SPECIES_ALCREMIE_STRAWBERRY_RUBY_SWIRL] = { .size = MON_COORDS_SIZE(48, 56), .y_offset = 9 }, - [SPECIES_ALCREMIE_STRAWBERRY_CARAMEL_SWIRL] = { .size = MON_COORDS_SIZE(48, 56), .y_offset = 9 }, - [SPECIES_ALCREMIE_STRAWBERRY_RAINBOW_SWIRL] = { .size = MON_COORDS_SIZE(48, 56), .y_offset = 9 }, // Eiscue [SPECIES_EISCUE_NOICE_FACE] = { .size = MON_COORDS_SIZE(40, 64), .y_offset = 0 }, // Indeedee diff --git a/src/data/pokemon_graphics/back_pic_table.h b/src/data/pokemon_graphics/back_pic_table.h index a2add028b0..5e37a7a308 100644 --- a/src/data/pokemon_graphics/back_pic_table.h +++ b/src/data/pokemon_graphics/back_pic_table.h @@ -882,7 +882,69 @@ const struct CompressedSpriteSheet gMonBackPicTable[NUM_SPECIES + 1] = SPECIES_SPRITE(MR_RIME, gMonBackPic_MrRime), SPECIES_SPRITE(RUNERIGUS, gMonBackPic_Runerigus), SPECIES_SPRITE(MILCERY, gMonBackPic_Milcery), - SPECIES_SPRITE(ALCREMIE, gMonBackPic_Alcremie), + SPECIES_SPRITE(ALCREMIE_STRAWBERRY_VANILLA_CREAM, gMonBackPic_AlcremieStrawberry), + SPECIES_SPRITE(ALCREMIE_STRAWBERRY_RUBY_CREAM, gMonBackPic_AlcremieStrawberry), + SPECIES_SPRITE(ALCREMIE_STRAWBERRY_MATCHA_CREAM, gMonBackPic_AlcremieStrawberry), + SPECIES_SPRITE(ALCREMIE_STRAWBERRY_MINT_CREAM, gMonBackPic_AlcremieStrawberry), + SPECIES_SPRITE(ALCREMIE_STRAWBERRY_LEMON_CREAM, gMonBackPic_AlcremieStrawberry), + SPECIES_SPRITE(ALCREMIE_STRAWBERRY_SALTED_CREAM, gMonBackPic_AlcremieStrawberry), + SPECIES_SPRITE(ALCREMIE_STRAWBERRY_RUBY_SWIRL, gMonBackPic_AlcremieStrawberry), + SPECIES_SPRITE(ALCREMIE_STRAWBERRY_CARAMEL_SWIRL, gMonBackPic_AlcremieStrawberry), + SPECIES_SPRITE(ALCREMIE_STRAWBERRY_RAINBOW_SWIRL, gMonBackPic_AlcremieStrawberry), + SPECIES_SPRITE(ALCREMIE_BERRY_VANILLA_CREAM, gMonBackPic_AlcremieBerry), + SPECIES_SPRITE(ALCREMIE_BERRY_RUBY_CREAM, gMonBackPic_AlcremieBerry), + SPECIES_SPRITE(ALCREMIE_BERRY_MATCHA_CREAM, gMonBackPic_AlcremieBerry), + SPECIES_SPRITE(ALCREMIE_BERRY_MINT_CREAM, gMonBackPic_AlcremieBerry), + SPECIES_SPRITE(ALCREMIE_BERRY_LEMON_CREAM, gMonBackPic_AlcremieBerry), + SPECIES_SPRITE(ALCREMIE_BERRY_SALTED_CREAM, gMonBackPic_AlcremieBerry), + SPECIES_SPRITE(ALCREMIE_BERRY_RUBY_SWIRL, gMonBackPic_AlcremieBerry), + SPECIES_SPRITE(ALCREMIE_BERRY_CARAMEL_SWIRL, gMonBackPic_AlcremieBerry), + SPECIES_SPRITE(ALCREMIE_BERRY_RAINBOW_SWIRL, gMonBackPic_AlcremieBerry), + SPECIES_SPRITE(ALCREMIE_LOVE_VANILLA_CREAM, gMonBackPic_AlcremieLove), + SPECIES_SPRITE(ALCREMIE_LOVE_RUBY_CREAM, gMonBackPic_AlcremieLove), + SPECIES_SPRITE(ALCREMIE_LOVE_MATCHA_CREAM, gMonBackPic_AlcremieLove), + SPECIES_SPRITE(ALCREMIE_LOVE_MINT_CREAM, gMonBackPic_AlcremieLove), + SPECIES_SPRITE(ALCREMIE_LOVE_LEMON_CREAM, gMonBackPic_AlcremieLove), + SPECIES_SPRITE(ALCREMIE_LOVE_SALTED_CREAM, gMonBackPic_AlcremieLove), + SPECIES_SPRITE(ALCREMIE_LOVE_RUBY_SWIRL, gMonBackPic_AlcremieLove), + SPECIES_SPRITE(ALCREMIE_LOVE_CARAMEL_SWIRL, gMonBackPic_AlcremieLove), + SPECIES_SPRITE(ALCREMIE_LOVE_RAINBOW_SWIRL, gMonBackPic_AlcremieLove), + SPECIES_SPRITE(ALCREMIE_STAR_VANILLA_CREAM, gMonBackPic_AlcremieStar), + SPECIES_SPRITE(ALCREMIE_STAR_RUBY_CREAM, gMonBackPic_AlcremieStar), + SPECIES_SPRITE(ALCREMIE_STAR_MATCHA_CREAM, gMonBackPic_AlcremieStar), + SPECIES_SPRITE(ALCREMIE_STAR_MINT_CREAM, gMonBackPic_AlcremieStar), + SPECIES_SPRITE(ALCREMIE_STAR_LEMON_CREAM, gMonBackPic_AlcremieStar), + SPECIES_SPRITE(ALCREMIE_STAR_SALTED_CREAM, gMonBackPic_AlcremieStar), + SPECIES_SPRITE(ALCREMIE_STAR_RUBY_SWIRL, gMonBackPic_AlcremieStar), + SPECIES_SPRITE(ALCREMIE_STAR_CARAMEL_SWIRL, gMonBackPic_AlcremieStar), + SPECIES_SPRITE(ALCREMIE_STAR_RAINBOW_SWIRL, gMonBackPic_AlcremieStar), + SPECIES_SPRITE(ALCREMIE_CLOVER_VANILLA_CREAM, gMonBackPic_AlcremieClover), + SPECIES_SPRITE(ALCREMIE_CLOVER_RUBY_CREAM, gMonBackPic_AlcremieClover), + SPECIES_SPRITE(ALCREMIE_CLOVER_MATCHA_CREAM, gMonBackPic_AlcremieClover), + SPECIES_SPRITE(ALCREMIE_CLOVER_MINT_CREAM, gMonBackPic_AlcremieClover), + SPECIES_SPRITE(ALCREMIE_CLOVER_LEMON_CREAM, gMonBackPic_AlcremieClover), + SPECIES_SPRITE(ALCREMIE_CLOVER_SALTED_CREAM, gMonBackPic_AlcremieClover), + SPECIES_SPRITE(ALCREMIE_CLOVER_RUBY_SWIRL, gMonBackPic_AlcremieClover), + SPECIES_SPRITE(ALCREMIE_CLOVER_CARAMEL_SWIRL, gMonBackPic_AlcremieClover), + SPECIES_SPRITE(ALCREMIE_CLOVER_RAINBOW_SWIRL, gMonBackPic_AlcremieClover), + SPECIES_SPRITE(ALCREMIE_FLOWER_VANILLA_CREAM, gMonBackPic_AlcremieFlower), + SPECIES_SPRITE(ALCREMIE_FLOWER_RUBY_CREAM, gMonBackPic_AlcremieFlower), + SPECIES_SPRITE(ALCREMIE_FLOWER_MATCHA_CREAM, gMonBackPic_AlcremieFlower), + SPECIES_SPRITE(ALCREMIE_FLOWER_MINT_CREAM, gMonBackPic_AlcremieFlower), + SPECIES_SPRITE(ALCREMIE_FLOWER_LEMON_CREAM, gMonBackPic_AlcremieFlower), + SPECIES_SPRITE(ALCREMIE_FLOWER_SALTED_CREAM, gMonBackPic_AlcremieFlower), + SPECIES_SPRITE(ALCREMIE_FLOWER_RUBY_SWIRL, gMonBackPic_AlcremieFlower), + SPECIES_SPRITE(ALCREMIE_FLOWER_CARAMEL_SWIRL, gMonBackPic_AlcremieFlower), + SPECIES_SPRITE(ALCREMIE_FLOWER_RAINBOW_SWIRL, gMonBackPic_AlcremieFlower), + SPECIES_SPRITE(ALCREMIE_RIBBON_VANILLA_CREAM, gMonBackPic_AlcremieRibbon), + SPECIES_SPRITE(ALCREMIE_RIBBON_RUBY_CREAM, gMonBackPic_AlcremieRibbon), + SPECIES_SPRITE(ALCREMIE_RIBBON_MATCHA_CREAM, gMonBackPic_AlcremieRibbon), + SPECIES_SPRITE(ALCREMIE_RIBBON_MINT_CREAM, gMonBackPic_AlcremieRibbon), + SPECIES_SPRITE(ALCREMIE_RIBBON_LEMON_CREAM, gMonBackPic_AlcremieRibbon), + SPECIES_SPRITE(ALCREMIE_RIBBON_SALTED_CREAM, gMonBackPic_AlcremieRibbon), + SPECIES_SPRITE(ALCREMIE_RIBBON_RUBY_SWIRL, gMonBackPic_AlcremieRibbon), + SPECIES_SPRITE(ALCREMIE_RIBBON_CARAMEL_SWIRL, gMonBackPic_AlcremieRibbon), + SPECIES_SPRITE(ALCREMIE_RIBBON_RAINBOW_SWIRL, gMonBackPic_AlcremieRibbon), SPECIES_SPRITE(FALINKS, gMonBackPic_Falinks), SPECIES_SPRITE(PINCURCHIN, gMonBackPic_Pincurchin), SPECIES_SPRITE(SNOM, gMonBackPic_Snom), @@ -1308,15 +1370,6 @@ const struct CompressedSpriteSheet gMonBackPicTable[NUM_SPECIES + 1] = SPECIES_SPRITE(POLTEAGEIST_ANTIQUE, gMonBackPic_Polteageist), - SPECIES_SPRITE(ALCREMIE_RUBY_CREAM, gMonBackPic_AlcremieRubyCream), - SPECIES_SPRITE(ALCREMIE_MATCHA_CREAM, gMonBackPic_AlcremieMatchaCream), - SPECIES_SPRITE(ALCREMIE_MINT_CREAM, gMonBackPic_AlcremieMintCream), - SPECIES_SPRITE(ALCREMIE_LEMON_CREAM, gMonBackPic_AlcremieLemonCream), - SPECIES_SPRITE(ALCREMIE_SALTED_CREAM, gMonBackPic_AlcremieSaltedCream), - SPECIES_SPRITE(ALCREMIE_RUBY_SWIRL, gMonBackPic_AlcremieRubySwirl), - SPECIES_SPRITE(ALCREMIE_CARAMEL_SWIRL, gMonBackPic_AlcremieCaramelSwirl), - SPECIES_SPRITE(ALCREMIE_RAINBOW_SWIRL, gMonBackPic_AlcremieRainbowSwirl), - SPECIES_SPRITE(EISCUE_NOICE_FACE, gMonBackPic_EiscueNoiceFace), SPECIES_SPRITE(INDEEDEE_FEMALE, gMonBackPic_IndeedeeFemale), diff --git a/src/data/pokemon_graphics/footprint_table.h b/src/data/pokemon_graphics/footprint_table.h index edf52b5085..b3dd284a3a 100644 --- a/src/data/pokemon_graphics/footprint_table.h +++ b/src/data/pokemon_graphics/footprint_table.h @@ -883,6 +883,68 @@ const u8 *const gMonFootprintTable[NUM_SPECIES + 1] = [SPECIES_RUNERIGUS] = gMonFootprint_Runerigus, [SPECIES_MILCERY] = gMonFootprint_Milcery, [SPECIES_ALCREMIE_STRAWBERRY_VANILLA_CREAM] = gMonFootprint_Alcremie, + [SPECIES_ALCREMIE_STRAWBERRY_RUBY_CREAM] = gMonFootprint_Alcremie, + [SPECIES_ALCREMIE_STRAWBERRY_MATCHA_CREAM] = gMonFootprint_Alcremie, + [SPECIES_ALCREMIE_STRAWBERRY_MINT_CREAM] = gMonFootprint_Alcremie, + [SPECIES_ALCREMIE_STRAWBERRY_LEMON_CREAM] = gMonFootprint_Alcremie, + [SPECIES_ALCREMIE_STRAWBERRY_SALTED_CREAM] = gMonFootprint_Alcremie, + [SPECIES_ALCREMIE_STRAWBERRY_RUBY_SWIRL] = gMonFootprint_Alcremie, + [SPECIES_ALCREMIE_STRAWBERRY_CARAMEL_SWIRL] = gMonFootprint_Alcremie, + [SPECIES_ALCREMIE_STRAWBERRY_RAINBOW_SWIRL] = gMonFootprint_Alcremie, + [SPECIES_ALCREMIE_BERRY_VANILLA_CREAM] = gMonFootprint_Alcremie, + [SPECIES_ALCREMIE_BERRY_RUBY_CREAM] = gMonFootprint_Alcremie, + [SPECIES_ALCREMIE_BERRY_MATCHA_CREAM] = gMonFootprint_Alcremie, + [SPECIES_ALCREMIE_BERRY_MINT_CREAM] = gMonFootprint_Alcremie, + [SPECIES_ALCREMIE_BERRY_LEMON_CREAM] = gMonFootprint_Alcremie, + [SPECIES_ALCREMIE_BERRY_SALTED_CREAM] = gMonFootprint_Alcremie, + [SPECIES_ALCREMIE_BERRY_RUBY_SWIRL] = gMonFootprint_Alcremie, + [SPECIES_ALCREMIE_BERRY_CARAMEL_SWIRL] = gMonFootprint_Alcremie, + [SPECIES_ALCREMIE_BERRY_RAINBOW_SWIRL] = gMonFootprint_Alcremie, + [SPECIES_ALCREMIE_LOVE_VANILLA_CREAM] = gMonFootprint_Alcremie, + [SPECIES_ALCREMIE_LOVE_RUBY_CREAM] = gMonFootprint_Alcremie, + [SPECIES_ALCREMIE_LOVE_MATCHA_CREAM] = gMonFootprint_Alcremie, + [SPECIES_ALCREMIE_LOVE_MINT_CREAM] = gMonFootprint_Alcremie, + [SPECIES_ALCREMIE_LOVE_LEMON_CREAM] = gMonFootprint_Alcremie, + [SPECIES_ALCREMIE_LOVE_SALTED_CREAM] = gMonFootprint_Alcremie, + [SPECIES_ALCREMIE_LOVE_RUBY_SWIRL] = gMonFootprint_Alcremie, + [SPECIES_ALCREMIE_LOVE_CARAMEL_SWIRL] = gMonFootprint_Alcremie, + [SPECIES_ALCREMIE_LOVE_RAINBOW_SWIRL] = gMonFootprint_Alcremie, + [SPECIES_ALCREMIE_STAR_VANILLA_CREAM] = gMonFootprint_Alcremie, + [SPECIES_ALCREMIE_STAR_RUBY_CREAM] = gMonFootprint_Alcremie, + [SPECIES_ALCREMIE_STAR_MATCHA_CREAM] = gMonFootprint_Alcremie, + [SPECIES_ALCREMIE_STAR_MINT_CREAM] = gMonFootprint_Alcremie, + [SPECIES_ALCREMIE_STAR_LEMON_CREAM] = gMonFootprint_Alcremie, + [SPECIES_ALCREMIE_STAR_SALTED_CREAM] = gMonFootprint_Alcremie, + [SPECIES_ALCREMIE_STAR_RUBY_SWIRL] = gMonFootprint_Alcremie, + [SPECIES_ALCREMIE_STAR_CARAMEL_SWIRL] = gMonFootprint_Alcremie, + [SPECIES_ALCREMIE_STAR_RAINBOW_SWIRL] = gMonFootprint_Alcremie, + [SPECIES_ALCREMIE_CLOVER_VANILLA_CREAM] = gMonFootprint_Alcremie, + [SPECIES_ALCREMIE_CLOVER_RUBY_CREAM] = gMonFootprint_Alcremie, + [SPECIES_ALCREMIE_CLOVER_MATCHA_CREAM] = gMonFootprint_Alcremie, + [SPECIES_ALCREMIE_CLOVER_MINT_CREAM] = gMonFootprint_Alcremie, + [SPECIES_ALCREMIE_CLOVER_LEMON_CREAM] = gMonFootprint_Alcremie, + [SPECIES_ALCREMIE_CLOVER_SALTED_CREAM] = gMonFootprint_Alcremie, + [SPECIES_ALCREMIE_CLOVER_RUBY_SWIRL] = gMonFootprint_Alcremie, + [SPECIES_ALCREMIE_CLOVER_CARAMEL_SWIRL] = gMonFootprint_Alcremie, + [SPECIES_ALCREMIE_CLOVER_RAINBOW_SWIRL] = gMonFootprint_Alcremie, + [SPECIES_ALCREMIE_FLOWER_VANILLA_CREAM] = gMonFootprint_Alcremie, + [SPECIES_ALCREMIE_FLOWER_RUBY_CREAM] = gMonFootprint_Alcremie, + [SPECIES_ALCREMIE_FLOWER_MATCHA_CREAM] = gMonFootprint_Alcremie, + [SPECIES_ALCREMIE_FLOWER_MINT_CREAM] = gMonFootprint_Alcremie, + [SPECIES_ALCREMIE_FLOWER_LEMON_CREAM] = gMonFootprint_Alcremie, + [SPECIES_ALCREMIE_FLOWER_SALTED_CREAM] = gMonFootprint_Alcremie, + [SPECIES_ALCREMIE_FLOWER_RUBY_SWIRL] = gMonFootprint_Alcremie, + [SPECIES_ALCREMIE_FLOWER_CARAMEL_SWIRL] = gMonFootprint_Alcremie, + [SPECIES_ALCREMIE_FLOWER_RAINBOW_SWIRL] = gMonFootprint_Alcremie, + [SPECIES_ALCREMIE_RIBBON_VANILLA_CREAM] = gMonFootprint_Alcremie, + [SPECIES_ALCREMIE_RIBBON_RUBY_CREAM] = gMonFootprint_Alcremie, + [SPECIES_ALCREMIE_RIBBON_MATCHA_CREAM] = gMonFootprint_Alcremie, + [SPECIES_ALCREMIE_RIBBON_MINT_CREAM] = gMonFootprint_Alcremie, + [SPECIES_ALCREMIE_RIBBON_LEMON_CREAM] = gMonFootprint_Alcremie, + [SPECIES_ALCREMIE_RIBBON_SALTED_CREAM] = gMonFootprint_Alcremie, + [SPECIES_ALCREMIE_RIBBON_RUBY_SWIRL] = gMonFootprint_Alcremie, + [SPECIES_ALCREMIE_RIBBON_CARAMEL_SWIRL] = gMonFootprint_Alcremie, + [SPECIES_ALCREMIE_RIBBON_RAINBOW_SWIRL] = gMonFootprint_Alcremie, [SPECIES_FALINKS] = gMonFootprint_Falinks, [SPECIES_PINCURCHIN] = gMonFootprint_Pincurchin, [SPECIES_SNOM] = gMonFootprint_Snom, diff --git a/src/data/pokemon_graphics/front_pic_anims.h b/src/data/pokemon_graphics/front_pic_anims.h index d26b95a4d1..5227946fa4 100644 --- a/src/data/pokemon_graphics/front_pic_anims.h +++ b/src/data/pokemon_graphics/front_pic_anims.h @@ -8378,19 +8378,22 @@ static const union AnimCmd sAnim_Volcanion_1[] = #if P_GEN_7_POKEMON == TRUE static const union AnimCmd sAnim_Rowlet_1[] = { - ANIMCMD_FRAME(0, 1), + ANIMCMD_FRAME(1, 30), + ANIMCMD_FRAME(0, 5), ANIMCMD_END, }; static const union AnimCmd sAnim_Dartrix_1[] = { - ANIMCMD_FRAME(0, 1), + ANIMCMD_FRAME(1, 30), + ANIMCMD_FRAME(0, 5), ANIMCMD_END, }; static const union AnimCmd sAnim_Decidueye_1[] = { - ANIMCMD_FRAME(0, 1), + ANIMCMD_FRAME(1, 50), + ANIMCMD_FRAME(0, 5), ANIMCMD_END, }; @@ -8432,19 +8435,25 @@ static const union AnimCmd sAnim_Primarina_1[] = static const union AnimCmd sAnim_Pikipek_1[] = { - ANIMCMD_FRAME(0, 1), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 20), + ANIMCMD_FRAME(0, 5), ANIMCMD_END, }; static const union AnimCmd sAnim_Trumbeak_1[] = { - ANIMCMD_FRAME(0, 1), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 30), + ANIMCMD_FRAME(0, 5), ANIMCMD_END, }; static const union AnimCmd sAnim_Toucannon_1[] = { - ANIMCMD_FRAME(0, 1), + ANIMCMD_FRAME(1, 40), + ANIMCMD_FRAME(0, 5), ANIMCMD_END, }; @@ -8508,25 +8517,71 @@ static const union AnimCmd sAnim_Oricorio_1[] = static const union AnimCmd sAnim_Cutiefly_1[] = { + ANIMCMD_FRAME(1, 1), ANIMCMD_FRAME(0, 1), + ANIMCMD_FRAME(1, 1), + ANIMCMD_FRAME(0, 1), + ANIMCMD_FRAME(1, 1), + ANIMCMD_FRAME(0, 1), + ANIMCMD_FRAME(1, 1), + ANIMCMD_FRAME(0, 1), + ANIMCMD_FRAME(1, 1), + ANIMCMD_FRAME(0, 1), + ANIMCMD_FRAME(1, 1), + ANIMCMD_FRAME(0, 1), + ANIMCMD_FRAME(1, 1), + ANIMCMD_FRAME(0, 1), + ANIMCMD_FRAME(1, 1), + ANIMCMD_FRAME(0, 35), + ANIMCMD_FRAME(1, 1), + ANIMCMD_FRAME(0, 1), + ANIMCMD_FRAME(1, 1), + ANIMCMD_FRAME(0, 1), + ANIMCMD_FRAME(1, 1), + ANIMCMD_FRAME(0, 1), + ANIMCMD_FRAME(1, 1), + ANIMCMD_FRAME(0, 1), + ANIMCMD_FRAME(1, 1), + ANIMCMD_FRAME(0, 1), + ANIMCMD_FRAME(1, 1), + ANIMCMD_FRAME(0, 1), + ANIMCMD_FRAME(1, 1), + ANIMCMD_FRAME(0, 1), + ANIMCMD_FRAME(1, 1), + ANIMCMD_FRAME(0, 5), ANIMCMD_END, }; static const union AnimCmd sAnim_Ribombee_1[] = { - ANIMCMD_FRAME(0, 1), + ANIMCMD_FRAME(1, 8), + ANIMCMD_FRAME(0, 8), + ANIMCMD_FRAME(1, 8), + ANIMCMD_FRAME(0, 8), + ANIMCMD_FRAME(1, 8), + ANIMCMD_FRAME(0, 8), + ANIMCMD_FRAME(1, 8), + ANIMCMD_FRAME(0, 8), + ANIMCMD_FRAME(1, 8), + ANIMCMD_FRAME(0, 8), + ANIMCMD_FRAME(1, 8), + ANIMCMD_FRAME(0, 8), ANIMCMD_END, }; static const union AnimCmd sAnim_Rockruff_1[] = { - ANIMCMD_FRAME(0, 1), + ANIMCMD_FRAME(1, 9), + ANIMCMD_FRAME(0, 8), + ANIMCMD_FRAME(1, 8), + ANIMCMD_FRAME(0, 5), ANIMCMD_END, }; static const union AnimCmd sAnim_LycanrocMidday_1[] = { - ANIMCMD_FRAME(0, 1), + ANIMCMD_FRAME(1, 40), + ANIMCMD_FRAME(0, 5), ANIMCMD_END, }; @@ -8661,13 +8716,15 @@ static const union AnimCmd sAnim_Comfey_1[] = static const union AnimCmd sAnim_Oranguru_1[] = { - ANIMCMD_FRAME(0, 1), + ANIMCMD_FRAME(1, 20), + ANIMCMD_FRAME(0, 5), ANIMCMD_END, }; static const union AnimCmd sAnim_Passimian_1[] = { - ANIMCMD_FRAME(0, 1), + ANIMCMD_FRAME(1, 30), + ANIMCMD_FRAME(0, 5), ANIMCMD_END, }; @@ -8741,7 +8798,8 @@ static const union AnimCmd sAnim_Turtonator_1[] = static const union AnimCmd sAnim_Togedemaru_1[] = { - ANIMCMD_FRAME(0, 1), + ANIMCMD_FRAME(1, 30), + ANIMCMD_FRAME(0, 5), ANIMCMD_END, }; @@ -8759,7 +8817,8 @@ static const union AnimCmd sAnim_Bruxish_1[] = static const union AnimCmd sAnim_Drampa_1[] = { - ANIMCMD_FRAME(0, 1), + ANIMCMD_FRAME(1, 50), + ANIMCMD_FRAME(0, 50), ANIMCMD_END, }; @@ -8771,17 +8830,15 @@ static const union AnimCmd sAnim_Dhelmise_1[] = static const union AnimCmd sAnim_JANGMO_O_1[] = { - ANIMCMD_FRAME(0, 1), - ANIMCMD_FRAME(1, 25), - ANIMCMD_FRAME(0, 1), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 5), ANIMCMD_END, }; static const union AnimCmd sAnim_HAKAMO_O_1[] = { - ANIMCMD_FRAME(0, 10), ANIMCMD_FRAME(1, 30), - ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(0, 5), ANIMCMD_END, }; @@ -10685,13 +10742,15 @@ static const union AnimCmd sAnim_MimikyuBusted_1[] = static const union AnimCmd sAnim_LycanrocMidnight_1[] = { - ANIMCMD_FRAME(0, 1), + ANIMCMD_FRAME(1, 30), + ANIMCMD_FRAME(0, 5), ANIMCMD_END, }; static const union AnimCmd sAnim_LycanrocDusk_1[] = { - ANIMCMD_FRAME(0, 1), + ANIMCMD_FRAME(1, 40), + ANIMCMD_FRAME(0, 5), ANIMCMD_END, }; #endif @@ -13009,6 +13068,68 @@ const union AnimCmd *const *const gMonFrontAnimsPtrTable[NUM_SPECIES + 1] = [SPECIES_RUNERIGUS] = sAnims_Runerigus, [SPECIES_MILCERY] = sAnims_Milcery, [SPECIES_ALCREMIE_STRAWBERRY_VANILLA_CREAM] = sAnims_Alcremie, + [SPECIES_ALCREMIE_STRAWBERRY_RUBY_CREAM] = sAnims_Alcremie, + [SPECIES_ALCREMIE_STRAWBERRY_MATCHA_CREAM] = sAnims_Alcremie, + [SPECIES_ALCREMIE_STRAWBERRY_MINT_CREAM] = sAnims_Alcremie, + [SPECIES_ALCREMIE_STRAWBERRY_LEMON_CREAM] = sAnims_Alcremie, + [SPECIES_ALCREMIE_STRAWBERRY_SALTED_CREAM] = sAnims_Alcremie, + [SPECIES_ALCREMIE_STRAWBERRY_RUBY_SWIRL] = sAnims_Alcremie, + [SPECIES_ALCREMIE_STRAWBERRY_CARAMEL_SWIRL] = sAnims_Alcremie, + [SPECIES_ALCREMIE_STRAWBERRY_RAINBOW_SWIRL] = sAnims_Alcremie, + [SPECIES_ALCREMIE_BERRY_VANILLA_CREAM] = sAnims_Alcremie, + [SPECIES_ALCREMIE_BERRY_RUBY_CREAM] = sAnims_Alcremie, + [SPECIES_ALCREMIE_BERRY_MATCHA_CREAM] = sAnims_Alcremie, + [SPECIES_ALCREMIE_BERRY_MINT_CREAM] = sAnims_Alcremie, + [SPECIES_ALCREMIE_BERRY_LEMON_CREAM] = sAnims_Alcremie, + [SPECIES_ALCREMIE_BERRY_SALTED_CREAM] = sAnims_Alcremie, + [SPECIES_ALCREMIE_BERRY_RUBY_SWIRL] = sAnims_Alcremie, + [SPECIES_ALCREMIE_BERRY_CARAMEL_SWIRL] = sAnims_Alcremie, + [SPECIES_ALCREMIE_BERRY_RAINBOW_SWIRL] = sAnims_Alcremie, + [SPECIES_ALCREMIE_LOVE_VANILLA_CREAM] = sAnims_Alcremie, + [SPECIES_ALCREMIE_LOVE_RUBY_CREAM] = sAnims_Alcremie, + [SPECIES_ALCREMIE_LOVE_MATCHA_CREAM] = sAnims_Alcremie, + [SPECIES_ALCREMIE_LOVE_MINT_CREAM] = sAnims_Alcremie, + [SPECIES_ALCREMIE_LOVE_LEMON_CREAM] = sAnims_Alcremie, + [SPECIES_ALCREMIE_LOVE_SALTED_CREAM] = sAnims_Alcremie, + [SPECIES_ALCREMIE_LOVE_RUBY_SWIRL] = sAnims_Alcremie, + [SPECIES_ALCREMIE_LOVE_CARAMEL_SWIRL] = sAnims_Alcremie, + [SPECIES_ALCREMIE_LOVE_RAINBOW_SWIRL] = sAnims_Alcremie, + [SPECIES_ALCREMIE_STAR_VANILLA_CREAM] = sAnims_Alcremie, + [SPECIES_ALCREMIE_STAR_RUBY_CREAM] = sAnims_Alcremie, + [SPECIES_ALCREMIE_STAR_MATCHA_CREAM] = sAnims_Alcremie, + [SPECIES_ALCREMIE_STAR_MINT_CREAM] = sAnims_Alcremie, + [SPECIES_ALCREMIE_STAR_LEMON_CREAM] = sAnims_Alcremie, + [SPECIES_ALCREMIE_STAR_SALTED_CREAM] = sAnims_Alcremie, + [SPECIES_ALCREMIE_STAR_RUBY_SWIRL] = sAnims_Alcremie, + [SPECIES_ALCREMIE_STAR_CARAMEL_SWIRL] = sAnims_Alcremie, + [SPECIES_ALCREMIE_STAR_RAINBOW_SWIRL] = sAnims_Alcremie, + [SPECIES_ALCREMIE_CLOVER_VANILLA_CREAM] = sAnims_Alcremie, + [SPECIES_ALCREMIE_CLOVER_RUBY_CREAM] = sAnims_Alcremie, + [SPECIES_ALCREMIE_CLOVER_MATCHA_CREAM] = sAnims_Alcremie, + [SPECIES_ALCREMIE_CLOVER_MINT_CREAM] = sAnims_Alcremie, + [SPECIES_ALCREMIE_CLOVER_LEMON_CREAM] = sAnims_Alcremie, + [SPECIES_ALCREMIE_CLOVER_SALTED_CREAM] = sAnims_Alcremie, + [SPECIES_ALCREMIE_CLOVER_RUBY_SWIRL] = sAnims_Alcremie, + [SPECIES_ALCREMIE_CLOVER_CARAMEL_SWIRL] = sAnims_Alcremie, + [SPECIES_ALCREMIE_CLOVER_RAINBOW_SWIRL] = sAnims_Alcremie, + [SPECIES_ALCREMIE_FLOWER_VANILLA_CREAM] = sAnims_Alcremie, + [SPECIES_ALCREMIE_FLOWER_RUBY_CREAM] = sAnims_Alcremie, + [SPECIES_ALCREMIE_FLOWER_MATCHA_CREAM] = sAnims_Alcremie, + [SPECIES_ALCREMIE_FLOWER_MINT_CREAM] = sAnims_Alcremie, + [SPECIES_ALCREMIE_FLOWER_LEMON_CREAM] = sAnims_Alcremie, + [SPECIES_ALCREMIE_FLOWER_SALTED_CREAM] = sAnims_Alcremie, + [SPECIES_ALCREMIE_FLOWER_RUBY_SWIRL] = sAnims_Alcremie, + [SPECIES_ALCREMIE_FLOWER_CARAMEL_SWIRL] = sAnims_Alcremie, + [SPECIES_ALCREMIE_FLOWER_RAINBOW_SWIRL] = sAnims_Alcremie, + [SPECIES_ALCREMIE_RIBBON_VANILLA_CREAM] = sAnims_Alcremie, + [SPECIES_ALCREMIE_RIBBON_RUBY_CREAM] = sAnims_Alcremie, + [SPECIES_ALCREMIE_RIBBON_MATCHA_CREAM] = sAnims_Alcremie, + [SPECIES_ALCREMIE_RIBBON_MINT_CREAM] = sAnims_Alcremie, + [SPECIES_ALCREMIE_RIBBON_LEMON_CREAM] = sAnims_Alcremie, + [SPECIES_ALCREMIE_RIBBON_SALTED_CREAM] = sAnims_Alcremie, + [SPECIES_ALCREMIE_RIBBON_RUBY_SWIRL] = sAnims_Alcremie, + [SPECIES_ALCREMIE_RIBBON_CARAMEL_SWIRL] = sAnims_Alcremie, + [SPECIES_ALCREMIE_RIBBON_RAINBOW_SWIRL] = sAnims_Alcremie, [SPECIES_FALINKS] = sAnims_Falinks, [SPECIES_PINCURCHIN] = sAnims_Pincurchin, [SPECIES_SNOM] = sAnims_Snom, @@ -13516,14 +13637,6 @@ const union AnimCmd *const *const gMonFrontAnimsPtrTable[NUM_SPECIES + 1] = [SPECIES_TOXTRICITY_LOW_KEY] = sAnims_Toxtricity, [SPECIES_SINISTEA_ANTIQUE] = sAnims_Sinistea, [SPECIES_POLTEAGEIST_ANTIQUE] = sAnims_Polteageist, - [SPECIES_ALCREMIE_STRAWBERRY_RUBY_CREAM] = sAnims_Alcremie, - [SPECIES_ALCREMIE_STRAWBERRY_MATCHA_CREAM] = sAnims_Alcremie, - [SPECIES_ALCREMIE_STRAWBERRY_MINT_CREAM] = sAnims_Alcremie, - [SPECIES_ALCREMIE_STRAWBERRY_LEMON_CREAM] = sAnims_Alcremie, - [SPECIES_ALCREMIE_STRAWBERRY_SALTED_CREAM] = sAnims_Alcremie, - [SPECIES_ALCREMIE_STRAWBERRY_RUBY_SWIRL] = sAnims_Alcremie, - [SPECIES_ALCREMIE_STRAWBERRY_CARAMEL_SWIRL] = sAnims_Alcremie, - [SPECIES_ALCREMIE_STRAWBERRY_RAINBOW_SWIRL] = sAnims_Alcremie, [SPECIES_EISCUE_NOICE_FACE] = sAnims_Eiscue, [SPECIES_INDEEDEE_FEMALE] = sAnims_Indeedee, [SPECIES_MORPEKO_HANGRY] = sAnims_Morpeko, diff --git a/src/data/pokemon_graphics/front_pic_coordinates.h b/src/data/pokemon_graphics/front_pic_coordinates.h index 19c21328c7..9186a39f1a 100644 --- a/src/data/pokemon_graphics/front_pic_coordinates.h +++ b/src/data/pokemon_graphics/front_pic_coordinates.h @@ -737,18 +737,18 @@ const struct MonCoords gMonFrontPicCoords[NUM_SPECIES + 1] = [SPECIES_VOLCANION] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, #endif #if P_GEN_7_POKEMON == TRUE - [SPECIES_ROWLET] = { .size = MON_COORDS_SIZE(32, 40), .y_offset = 12 }, - [SPECIES_DARTRIX] = { .size = MON_COORDS_SIZE(40, 48), .y_offset = 8 }, - [SPECIES_DECIDUEYE] = { .size = MON_COORDS_SIZE(48, 64), .y_offset = 0 }, + [SPECIES_ROWLET] = { .size = MON_COORDS_SIZE(31, 37), .y_offset = 12 }, + [SPECIES_DARTRIX] = { .size = MON_COORDS_SIZE(34, 47), .y_offset = 8 }, + [SPECIES_DECIDUEYE] = { .size = MON_COORDS_SIZE(45, 64), .y_offset = 0 }, [SPECIES_LITTEN] = { .size = MON_COORDS_SIZE(48, 40), .y_offset = 12 }, [SPECIES_TORRACAT] = { .size = MON_COORDS_SIZE(56, 64), .y_offset = 2 }, [SPECIES_INCINEROAR] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, [SPECIES_POPPLIO] = { .size = MON_COORDS_SIZE(40, 48), .y_offset = 11 }, [SPECIES_BRIONNE] = { .size = MON_COORDS_SIZE(48, 56), .y_offset = 6 }, [SPECIES_PRIMARINA] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_PIKIPEK] = { .size = MON_COORDS_SIZE(40, 48), .y_offset = 11 }, - [SPECIES_TRUMBEAK] = { .size = MON_COORDS_SIZE(48, 56), .y_offset = 6 }, - [SPECIES_TOUCANNON] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 2 }, + [SPECIES_PIKIPEK] = { .size = MON_COORDS_SIZE(29, 40), .y_offset = 10 }, + [SPECIES_TRUMBEAK] = { .size = MON_COORDS_SIZE(44, 53), .y_offset = 4 }, + [SPECIES_TOUCANNON] = { .size = MON_COORDS_SIZE(59, 59), .y_offset = 2 }, [SPECIES_YUNGOOS] = { .size = MON_COORDS_SIZE(64, 40), .y_offset = 12 }, [SPECIES_GUMSHOOS] = { .size = MON_COORDS_SIZE(56, 56), .y_offset = 5 }, [SPECIES_GRUBBIN] = { .size = MON_COORDS_SIZE(48, 32), .y_offset = 17 }, @@ -757,10 +757,10 @@ const struct MonCoords gMonFrontPicCoords[NUM_SPECIES + 1] = [SPECIES_CRABRAWLER] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 7 }, [SPECIES_CRABOMINABLE] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, [SPECIES_ORICORIO_BAILE] = { .size = MON_COORDS_SIZE(56, 64), .y_offset = 2 }, - [SPECIES_CUTIEFLY] = { .size = MON_COORDS_SIZE(40, 40), .y_offset = 16 }, - [SPECIES_RIBOMBEE] = { .size = MON_COORDS_SIZE(56, 56), .y_offset = 5 }, - [SPECIES_ROCKRUFF] = { .size = MON_COORDS_SIZE(40, 48), .y_offset = 11 }, - [SPECIES_LYCANROC_MIDDAY] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 6 }, + [SPECIES_CUTIEFLY] = { .size = MON_COORDS_SIZE(33, 35), .y_offset = 16 }, + [SPECIES_RIBOMBEE] = { .size = MON_COORDS_SIZE(32, 47), .y_offset = 5 }, + [SPECIES_ROCKRUFF] = { .size = MON_COORDS_SIZE(37, 39), .y_offset = 11 }, + [SPECIES_LYCANROC_MIDDAY] = { .size = MON_COORDS_SIZE(57, 53), .y_offset = 6 }, [SPECIES_WISHIWASHI_SOLO] = { .size = MON_COORDS_SIZE(40, 24), .y_offset = 15 }, [SPECIES_MAREANIE] = { .size = MON_COORDS_SIZE(48, 40), .y_offset = 14 }, [SPECIES_TOXAPEX] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 2 }, @@ -781,7 +781,7 @@ const struct MonCoords gMonFrontPicCoords[NUM_SPECIES + 1] = [SPECIES_TSAREENA] = { .size = MON_COORDS_SIZE(56, 64), .y_offset = 1 }, [SPECIES_COMFEY] = { .size = MON_COORDS_SIZE(48, 48), .y_offset = 9 }, [SPECIES_ORANGURU] = { .size = MON_COORDS_SIZE(56, 56), .y_offset = 5 }, - [SPECIES_PASSIMIAN] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 2 }, + [SPECIES_PASSIMIAN] = { .size = MON_COORDS_SIZE(57, 60), .y_offset = 2 }, [SPECIES_WIMPOD] = { .size = MON_COORDS_SIZE(40, 40), .y_offset = 14 }, [SPECIES_GOLISOPOD] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, [SPECIES_SANDYGAST] = { .size = MON_COORDS_SIZE(48, 48), .y_offset = 11 }, @@ -792,14 +792,14 @@ const struct MonCoords gMonFrontPicCoords[NUM_SPECIES + 1] = [SPECIES_MINIOR_METEOR_RED] = { .size = MON_COORDS_SIZE(48, 40), .y_offset = 14 }, [SPECIES_KOMALA] = { .size = MON_COORDS_SIZE(48, 40), .y_offset = 12 }, [SPECIES_TURTONATOR] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_TOGEDEMARU] = { .size = MON_COORDS_SIZE(40, 40), .y_offset = 12 }, + [SPECIES_TOGEDEMARU] = { .size = MON_COORDS_SIZE(40, 40), .y_offset = 5 }, [SPECIES_MIMIKYU_DISGUISED] = { .size = MON_COORDS_SIZE(48, 40), .y_offset = 12 }, [SPECIES_BRUXISH] = { .size = MON_COORDS_SIZE(56, 40), .y_offset = 15 }, [SPECIES_DRAMPA] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, [SPECIES_DHELMISE] = { .size = MON_COORDS_SIZE(48, 64), .y_offset = 1 }, - [SPECIES_JANGMO_O] = { .size = MON_COORDS_SIZE(40, 48), .y_offset = 8 }, - [SPECIES_HAKAMO_O] = { .size = MON_COORDS_SIZE(56, 64), .y_offset = 1 }, - [SPECIES_KOMMO_O] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, + [SPECIES_JANGMO_O] = { .size = MON_COORDS_SIZE(36, 43), .y_offset = 5 }, + [SPECIES_HAKAMO_O] = { .size = MON_COORDS_SIZE(53, 61), .y_offset = 1 }, + [SPECIES_KOMMO_O] = { .size = MON_COORDS_SIZE(63, 63), .y_offset = 0 }, [SPECIES_TAPU_KOKO] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 1 }, [SPECIES_TAPU_LELE] = { .size = MON_COORDS_SIZE(48, 56), .y_offset = 6 }, [SPECIES_TAPU_BULU] = { .size = MON_COORDS_SIZE(56, 64), .y_offset = 0 }, @@ -887,6 +887,68 @@ const struct MonCoords gMonFrontPicCoords[NUM_SPECIES + 1] = [SPECIES_RUNERIGUS] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 2 }, [SPECIES_MILCERY] = { .size = MON_COORDS_SIZE(40, 40), .y_offset = 15 }, [SPECIES_ALCREMIE_STRAWBERRY_VANILLA_CREAM] = { .size = MON_COORDS_SIZE(40, 56), .y_offset = 7 }, + [SPECIES_ALCREMIE_STRAWBERRY_RUBY_CREAM] = { .size = MON_COORDS_SIZE(40, 56), .y_offset = 7 }, + [SPECIES_ALCREMIE_STRAWBERRY_MATCHA_CREAM] = { .size = MON_COORDS_SIZE(40, 56), .y_offset = 7 }, + [SPECIES_ALCREMIE_STRAWBERRY_MINT_CREAM] = { .size = MON_COORDS_SIZE(40, 56), .y_offset = 7 }, + [SPECIES_ALCREMIE_STRAWBERRY_LEMON_CREAM] = { .size = MON_COORDS_SIZE(40, 56), .y_offset = 7 }, + [SPECIES_ALCREMIE_STRAWBERRY_SALTED_CREAM] = { .size = MON_COORDS_SIZE(40, 56), .y_offset = 7 }, + [SPECIES_ALCREMIE_STRAWBERRY_RUBY_SWIRL] = { .size = MON_COORDS_SIZE(40, 56), .y_offset = 7 }, + [SPECIES_ALCREMIE_STRAWBERRY_CARAMEL_SWIRL] = { .size = MON_COORDS_SIZE(40, 56), .y_offset = 7 }, + [SPECIES_ALCREMIE_STRAWBERRY_RAINBOW_SWIRL] = { .size = MON_COORDS_SIZE(40, 56), .y_offset = 7 }, + [SPECIES_ALCREMIE_BERRY_VANILLA_CREAM] = { .size = MON_COORDS_SIZE(40, 56), .y_offset = 7 }, + [SPECIES_ALCREMIE_BERRY_RUBY_CREAM] = { .size = MON_COORDS_SIZE(40, 56), .y_offset = 7 }, + [SPECIES_ALCREMIE_BERRY_MATCHA_CREAM] = { .size = MON_COORDS_SIZE(40, 56), .y_offset = 7 }, + [SPECIES_ALCREMIE_BERRY_MINT_CREAM] = { .size = MON_COORDS_SIZE(40, 56), .y_offset = 7 }, + [SPECIES_ALCREMIE_BERRY_LEMON_CREAM] = { .size = MON_COORDS_SIZE(40, 56), .y_offset = 7 }, + [SPECIES_ALCREMIE_BERRY_SALTED_CREAM] = { .size = MON_COORDS_SIZE(40, 56), .y_offset = 7 }, + [SPECIES_ALCREMIE_BERRY_RUBY_SWIRL] = { .size = MON_COORDS_SIZE(40, 56), .y_offset = 7 }, + [SPECIES_ALCREMIE_BERRY_CARAMEL_SWIRL] = { .size = MON_COORDS_SIZE(40, 56), .y_offset = 7 }, + [SPECIES_ALCREMIE_BERRY_RAINBOW_SWIRL] = { .size = MON_COORDS_SIZE(40, 56), .y_offset = 7 }, + [SPECIES_ALCREMIE_LOVE_VANILLA_CREAM] = { .size = MON_COORDS_SIZE(40, 56), .y_offset = 7 }, + [SPECIES_ALCREMIE_LOVE_RUBY_CREAM] = { .size = MON_COORDS_SIZE(40, 56), .y_offset = 7 }, + [SPECIES_ALCREMIE_LOVE_MATCHA_CREAM] = { .size = MON_COORDS_SIZE(40, 56), .y_offset = 7 }, + [SPECIES_ALCREMIE_LOVE_MINT_CREAM] = { .size = MON_COORDS_SIZE(40, 56), .y_offset = 7 }, + [SPECIES_ALCREMIE_LOVE_LEMON_CREAM] = { .size = MON_COORDS_SIZE(40, 56), .y_offset = 7 }, + [SPECIES_ALCREMIE_LOVE_SALTED_CREAM] = { .size = MON_COORDS_SIZE(40, 56), .y_offset = 7 }, + [SPECIES_ALCREMIE_LOVE_RUBY_SWIRL] = { .size = MON_COORDS_SIZE(40, 56), .y_offset = 7 }, + [SPECIES_ALCREMIE_LOVE_CARAMEL_SWIRL] = { .size = MON_COORDS_SIZE(40, 56), .y_offset = 7 }, + [SPECIES_ALCREMIE_LOVE_RAINBOW_SWIRL] = { .size = MON_COORDS_SIZE(40, 56), .y_offset = 7 }, + [SPECIES_ALCREMIE_STAR_VANILLA_CREAM] = { .size = MON_COORDS_SIZE(40, 56), .y_offset = 7 }, + [SPECIES_ALCREMIE_STAR_RUBY_CREAM] = { .size = MON_COORDS_SIZE(40, 56), .y_offset = 7 }, + [SPECIES_ALCREMIE_STAR_MATCHA_CREAM] = { .size = MON_COORDS_SIZE(40, 56), .y_offset = 7 }, + [SPECIES_ALCREMIE_STAR_MINT_CREAM] = { .size = MON_COORDS_SIZE(40, 56), .y_offset = 7 }, + [SPECIES_ALCREMIE_STAR_LEMON_CREAM] = { .size = MON_COORDS_SIZE(40, 56), .y_offset = 7 }, + [SPECIES_ALCREMIE_STAR_SALTED_CREAM] = { .size = MON_COORDS_SIZE(40, 56), .y_offset = 7 }, + [SPECIES_ALCREMIE_STAR_RUBY_SWIRL] = { .size = MON_COORDS_SIZE(40, 56), .y_offset = 7 }, + [SPECIES_ALCREMIE_STAR_CARAMEL_SWIRL] = { .size = MON_COORDS_SIZE(40, 56), .y_offset = 7 }, + [SPECIES_ALCREMIE_STAR_RAINBOW_SWIRL] = { .size = MON_COORDS_SIZE(40, 56), .y_offset = 7 }, + [SPECIES_ALCREMIE_CLOVER_VANILLA_CREAM] = { .size = MON_COORDS_SIZE(40, 56), .y_offset = 7 }, + [SPECIES_ALCREMIE_CLOVER_RUBY_CREAM] = { .size = MON_COORDS_SIZE(40, 56), .y_offset = 7 }, + [SPECIES_ALCREMIE_CLOVER_MATCHA_CREAM] = { .size = MON_COORDS_SIZE(40, 56), .y_offset = 7 }, + [SPECIES_ALCREMIE_CLOVER_MINT_CREAM] = { .size = MON_COORDS_SIZE(40, 56), .y_offset = 7 }, + [SPECIES_ALCREMIE_CLOVER_LEMON_CREAM] = { .size = MON_COORDS_SIZE(40, 56), .y_offset = 7 }, + [SPECIES_ALCREMIE_CLOVER_SALTED_CREAM] = { .size = MON_COORDS_SIZE(40, 56), .y_offset = 7 }, + [SPECIES_ALCREMIE_CLOVER_RUBY_SWIRL] = { .size = MON_COORDS_SIZE(40, 56), .y_offset = 7 }, + [SPECIES_ALCREMIE_CLOVER_CARAMEL_SWIRL] = { .size = MON_COORDS_SIZE(40, 56), .y_offset = 7 }, + [SPECIES_ALCREMIE_CLOVER_RAINBOW_SWIRL] = { .size = MON_COORDS_SIZE(40, 56), .y_offset = 7 }, + [SPECIES_ALCREMIE_FLOWER_VANILLA_CREAM] = { .size = MON_COORDS_SIZE(40, 56), .y_offset = 7 }, + [SPECIES_ALCREMIE_FLOWER_RUBY_CREAM] = { .size = MON_COORDS_SIZE(40, 56), .y_offset = 7 }, + [SPECIES_ALCREMIE_FLOWER_MATCHA_CREAM] = { .size = MON_COORDS_SIZE(40, 56), .y_offset = 7 }, + [SPECIES_ALCREMIE_FLOWER_MINT_CREAM] = { .size = MON_COORDS_SIZE(40, 56), .y_offset = 7 }, + [SPECIES_ALCREMIE_FLOWER_LEMON_CREAM] = { .size = MON_COORDS_SIZE(40, 56), .y_offset = 7 }, + [SPECIES_ALCREMIE_FLOWER_SALTED_CREAM] = { .size = MON_COORDS_SIZE(40, 56), .y_offset = 7 }, + [SPECIES_ALCREMIE_FLOWER_RUBY_SWIRL] = { .size = MON_COORDS_SIZE(40, 56), .y_offset = 7 }, + [SPECIES_ALCREMIE_FLOWER_CARAMEL_SWIRL] = { .size = MON_COORDS_SIZE(40, 56), .y_offset = 7 }, + [SPECIES_ALCREMIE_FLOWER_RAINBOW_SWIRL] = { .size = MON_COORDS_SIZE(40, 56), .y_offset = 7 }, + [SPECIES_ALCREMIE_RIBBON_VANILLA_CREAM] = { .size = MON_COORDS_SIZE(40, 56), .y_offset = 7 }, + [SPECIES_ALCREMIE_RIBBON_RUBY_CREAM] = { .size = MON_COORDS_SIZE(40, 56), .y_offset = 7 }, + [SPECIES_ALCREMIE_RIBBON_MATCHA_CREAM] = { .size = MON_COORDS_SIZE(40, 56), .y_offset = 7 }, + [SPECIES_ALCREMIE_RIBBON_MINT_CREAM] = { .size = MON_COORDS_SIZE(40, 56), .y_offset = 7 }, + [SPECIES_ALCREMIE_RIBBON_LEMON_CREAM] = { .size = MON_COORDS_SIZE(40, 56), .y_offset = 7 }, + [SPECIES_ALCREMIE_RIBBON_SALTED_CREAM] = { .size = MON_COORDS_SIZE(40, 56), .y_offset = 7 }, + [SPECIES_ALCREMIE_RIBBON_RUBY_SWIRL] = { .size = MON_COORDS_SIZE(40, 56), .y_offset = 7 }, + [SPECIES_ALCREMIE_RIBBON_CARAMEL_SWIRL] = { .size = MON_COORDS_SIZE(40, 56), .y_offset = 7 }, + [SPECIES_ALCREMIE_RIBBON_RAINBOW_SWIRL] = { .size = MON_COORDS_SIZE(40, 56), .y_offset = 7 }, [SPECIES_FALINKS] = { .size = MON_COORDS_SIZE(56, 48), .y_offset = 8 }, [SPECIES_PINCURCHIN] = { .size = MON_COORDS_SIZE(40, 40), .y_offset = 15 }, [SPECIES_SNOM] = { .size = MON_COORDS_SIZE(40, 32), .y_offset = 20 }, @@ -1390,8 +1452,8 @@ const struct MonCoords gMonFrontPicCoords[NUM_SPECIES + 1] = // Rockruff [SPECIES_ROCKRUFF_OWN_TEMPO] = { .size = MON_COORDS_SIZE(40, 48), .y_offset = 11 }, // Lycanroc - [SPECIES_LYCANROC_MIDNIGHT] = { .size = MON_COORDS_SIZE(56, 64), .y_offset = 1 }, - [SPECIES_LYCANROC_DUSK] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 3 }, + [SPECIES_LYCANROC_MIDNIGHT] = { .size = MON_COORDS_SIZE(56, 61), .y_offset = 0 }, + [SPECIES_LYCANROC_DUSK] = { .size = MON_COORDS_SIZE(57, 58), .y_offset = 6 }, // Wishiwashi [SPECIES_WISHIWASHI_SCHOOL] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 4 }, // Silvally @@ -1446,14 +1508,6 @@ const struct MonCoords gMonFrontPicCoords[NUM_SPECIES + 1] = // Polteageist [SPECIES_POLTEAGEIST_ANTIQUE] = { .size = MON_COORDS_SIZE(48, 48), .y_offset = 11 }, // Alcremie - [SPECIES_ALCREMIE_STRAWBERRY_RUBY_CREAM] = { .size = MON_COORDS_SIZE(40, 56), .y_offset = 7 }, - [SPECIES_ALCREMIE_STRAWBERRY_MATCHA_CREAM] = { .size = MON_COORDS_SIZE(40, 56), .y_offset = 7 }, - [SPECIES_ALCREMIE_STRAWBERRY_MINT_CREAM] = { .size = MON_COORDS_SIZE(40, 56), .y_offset = 7 }, - [SPECIES_ALCREMIE_STRAWBERRY_LEMON_CREAM] = { .size = MON_COORDS_SIZE(40, 56), .y_offset = 7 }, - [SPECIES_ALCREMIE_STRAWBERRY_SALTED_CREAM] = { .size = MON_COORDS_SIZE(40, 56), .y_offset = 7 }, - [SPECIES_ALCREMIE_STRAWBERRY_RUBY_SWIRL] = { .size = MON_COORDS_SIZE(40, 56), .y_offset = 7 }, - [SPECIES_ALCREMIE_STRAWBERRY_CARAMEL_SWIRL] = { .size = MON_COORDS_SIZE(40, 56), .y_offset = 7 }, - [SPECIES_ALCREMIE_STRAWBERRY_RAINBOW_SWIRL] = { .size = MON_COORDS_SIZE(40, 56), .y_offset = 7 }, // Eiscue [SPECIES_EISCUE_NOICE_FACE] = { .size = MON_COORDS_SIZE(40, 64), .y_offset = 0 }, // Indeedee diff --git a/src/data/pokemon_graphics/front_pic_table.h b/src/data/pokemon_graphics/front_pic_table.h index 4218cdc45f..e865738970 100644 --- a/src/data/pokemon_graphics/front_pic_table.h +++ b/src/data/pokemon_graphics/front_pic_table.h @@ -882,7 +882,69 @@ const struct CompressedSpriteSheet gMonFrontPicTable[NUM_SPECIES + 1] = SPECIES_SPRITE(MR_RIME, gMonFrontPic_MrRime), SPECIES_SPRITE(RUNERIGUS, gMonFrontPic_Runerigus), SPECIES_SPRITE(MILCERY, gMonFrontPic_Milcery), - SPECIES_SPRITE(ALCREMIE, gMonFrontPic_Alcremie), + SPECIES_SPRITE(ALCREMIE_STRAWBERRY_VANILLA_CREAM, gMonFrontPic_AlcremieStrawberry), + SPECIES_SPRITE(ALCREMIE_STRAWBERRY_RUBY_CREAM, gMonFrontPic_AlcremieStrawberry), + SPECIES_SPRITE(ALCREMIE_STRAWBERRY_MATCHA_CREAM, gMonFrontPic_AlcremieStrawberry), + SPECIES_SPRITE(ALCREMIE_STRAWBERRY_MINT_CREAM, gMonFrontPic_AlcremieStrawberry), + SPECIES_SPRITE(ALCREMIE_STRAWBERRY_LEMON_CREAM, gMonFrontPic_AlcremieStrawberry), + SPECIES_SPRITE(ALCREMIE_STRAWBERRY_SALTED_CREAM, gMonFrontPic_AlcremieStrawberry), + SPECIES_SPRITE(ALCREMIE_STRAWBERRY_RUBY_SWIRL, gMonFrontPic_AlcremieStrawberry), + SPECIES_SPRITE(ALCREMIE_STRAWBERRY_CARAMEL_SWIRL, gMonFrontPic_AlcremieStrawberry), + SPECIES_SPRITE(ALCREMIE_STRAWBERRY_RAINBOW_SWIRL, gMonFrontPic_AlcremieStrawberry), + SPECIES_SPRITE(ALCREMIE_BERRY_VANILLA_CREAM, gMonFrontPic_AlcremieBerry), + SPECIES_SPRITE(ALCREMIE_BERRY_RUBY_CREAM, gMonFrontPic_AlcremieBerry), + SPECIES_SPRITE(ALCREMIE_BERRY_MATCHA_CREAM, gMonFrontPic_AlcremieBerry), + SPECIES_SPRITE(ALCREMIE_BERRY_MINT_CREAM, gMonFrontPic_AlcremieBerry), + SPECIES_SPRITE(ALCREMIE_BERRY_LEMON_CREAM, gMonFrontPic_AlcremieBerry), + SPECIES_SPRITE(ALCREMIE_BERRY_SALTED_CREAM, gMonFrontPic_AlcremieBerry), + SPECIES_SPRITE(ALCREMIE_BERRY_RUBY_SWIRL, gMonFrontPic_AlcremieBerry), + SPECIES_SPRITE(ALCREMIE_BERRY_CARAMEL_SWIRL, gMonFrontPic_AlcremieBerry), + SPECIES_SPRITE(ALCREMIE_BERRY_RAINBOW_SWIRL, gMonFrontPic_AlcremieBerry), + SPECIES_SPRITE(ALCREMIE_LOVE_VANILLA_CREAM, gMonFrontPic_AlcremieLove), + SPECIES_SPRITE(ALCREMIE_LOVE_RUBY_CREAM, gMonFrontPic_AlcremieLove), + SPECIES_SPRITE(ALCREMIE_LOVE_MATCHA_CREAM, gMonFrontPic_AlcremieLove), + SPECIES_SPRITE(ALCREMIE_LOVE_MINT_CREAM, gMonFrontPic_AlcremieLove), + SPECIES_SPRITE(ALCREMIE_LOVE_LEMON_CREAM, gMonFrontPic_AlcremieLove), + SPECIES_SPRITE(ALCREMIE_LOVE_SALTED_CREAM, gMonFrontPic_AlcremieLove), + SPECIES_SPRITE(ALCREMIE_LOVE_RUBY_SWIRL, gMonFrontPic_AlcremieLove), + SPECIES_SPRITE(ALCREMIE_LOVE_CARAMEL_SWIRL, gMonFrontPic_AlcremieLove), + SPECIES_SPRITE(ALCREMIE_LOVE_RAINBOW_SWIRL, gMonFrontPic_AlcremieLove), + SPECIES_SPRITE(ALCREMIE_STAR_VANILLA_CREAM, gMonFrontPic_AlcremieStar), + SPECIES_SPRITE(ALCREMIE_STAR_RUBY_CREAM, gMonFrontPic_AlcremieStar), + SPECIES_SPRITE(ALCREMIE_STAR_MATCHA_CREAM, gMonFrontPic_AlcremieStar), + SPECIES_SPRITE(ALCREMIE_STAR_MINT_CREAM, gMonFrontPic_AlcremieStar), + SPECIES_SPRITE(ALCREMIE_STAR_LEMON_CREAM, gMonFrontPic_AlcremieStar), + SPECIES_SPRITE(ALCREMIE_STAR_SALTED_CREAM, gMonFrontPic_AlcremieStar), + SPECIES_SPRITE(ALCREMIE_STAR_RUBY_SWIRL, gMonFrontPic_AlcremieStar), + SPECIES_SPRITE(ALCREMIE_STAR_CARAMEL_SWIRL, gMonFrontPic_AlcremieStar), + SPECIES_SPRITE(ALCREMIE_STAR_RAINBOW_SWIRL, gMonFrontPic_AlcremieStar), + SPECIES_SPRITE(ALCREMIE_CLOVER_VANILLA_CREAM, gMonFrontPic_AlcremieClover), + SPECIES_SPRITE(ALCREMIE_CLOVER_RUBY_CREAM, gMonFrontPic_AlcremieClover), + SPECIES_SPRITE(ALCREMIE_CLOVER_MATCHA_CREAM, gMonFrontPic_AlcremieClover), + SPECIES_SPRITE(ALCREMIE_CLOVER_MINT_CREAM, gMonFrontPic_AlcremieClover), + SPECIES_SPRITE(ALCREMIE_CLOVER_LEMON_CREAM, gMonFrontPic_AlcremieClover), + SPECIES_SPRITE(ALCREMIE_CLOVER_SALTED_CREAM, gMonFrontPic_AlcremieClover), + SPECIES_SPRITE(ALCREMIE_CLOVER_RUBY_SWIRL, gMonFrontPic_AlcremieClover), + SPECIES_SPRITE(ALCREMIE_CLOVER_CARAMEL_SWIRL, gMonFrontPic_AlcremieClover), + SPECIES_SPRITE(ALCREMIE_CLOVER_RAINBOW_SWIRL, gMonFrontPic_AlcremieClover), + SPECIES_SPRITE(ALCREMIE_FLOWER_VANILLA_CREAM, gMonFrontPic_AlcremieFlower), + SPECIES_SPRITE(ALCREMIE_FLOWER_RUBY_CREAM, gMonFrontPic_AlcremieFlower), + SPECIES_SPRITE(ALCREMIE_FLOWER_MATCHA_CREAM, gMonFrontPic_AlcremieFlower), + SPECIES_SPRITE(ALCREMIE_FLOWER_MINT_CREAM, gMonFrontPic_AlcremieFlower), + SPECIES_SPRITE(ALCREMIE_FLOWER_LEMON_CREAM, gMonFrontPic_AlcremieFlower), + SPECIES_SPRITE(ALCREMIE_FLOWER_SALTED_CREAM, gMonFrontPic_AlcremieFlower), + SPECIES_SPRITE(ALCREMIE_FLOWER_RUBY_SWIRL, gMonFrontPic_AlcremieFlower), + SPECIES_SPRITE(ALCREMIE_FLOWER_CARAMEL_SWIRL, gMonFrontPic_AlcremieFlower), + SPECIES_SPRITE(ALCREMIE_FLOWER_RAINBOW_SWIRL, gMonFrontPic_AlcremieFlower), + SPECIES_SPRITE(ALCREMIE_RIBBON_VANILLA_CREAM, gMonFrontPic_AlcremieRibbon), + SPECIES_SPRITE(ALCREMIE_RIBBON_RUBY_CREAM, gMonFrontPic_AlcremieRibbon), + SPECIES_SPRITE(ALCREMIE_RIBBON_MATCHA_CREAM, gMonFrontPic_AlcremieRibbon), + SPECIES_SPRITE(ALCREMIE_RIBBON_MINT_CREAM, gMonFrontPic_AlcremieRibbon), + SPECIES_SPRITE(ALCREMIE_RIBBON_LEMON_CREAM, gMonFrontPic_AlcremieRibbon), + SPECIES_SPRITE(ALCREMIE_RIBBON_SALTED_CREAM, gMonFrontPic_AlcremieRibbon), + SPECIES_SPRITE(ALCREMIE_RIBBON_RUBY_SWIRL, gMonFrontPic_AlcremieRibbon), + SPECIES_SPRITE(ALCREMIE_RIBBON_CARAMEL_SWIRL, gMonFrontPic_AlcremieRibbon), + SPECIES_SPRITE(ALCREMIE_RIBBON_RAINBOW_SWIRL, gMonFrontPic_AlcremieRibbon), SPECIES_SPRITE(FALINKS, gMonFrontPic_Falinks), SPECIES_SPRITE(PINCURCHIN, gMonFrontPic_Pincurchin), SPECIES_SPRITE(SNOM, gMonFrontPic_Snom), @@ -1307,15 +1369,6 @@ const struct CompressedSpriteSheet gMonFrontPicTable[NUM_SPECIES + 1] = SPECIES_SPRITE(POLTEAGEIST_ANTIQUE, gMonFrontPic_Polteageist), - SPECIES_SPRITE(ALCREMIE_RUBY_CREAM, gMonFrontPic_AlcremieRubyCream), - SPECIES_SPRITE(ALCREMIE_MATCHA_CREAM, gMonFrontPic_AlcremieMatchaCream), - SPECIES_SPRITE(ALCREMIE_MINT_CREAM, gMonFrontPic_AlcremieMintCream), - SPECIES_SPRITE(ALCREMIE_LEMON_CREAM, gMonFrontPic_AlcremieLemonCream), - SPECIES_SPRITE(ALCREMIE_SALTED_CREAM, gMonFrontPic_AlcremieSaltedCream), - SPECIES_SPRITE(ALCREMIE_RUBY_SWIRL, gMonFrontPic_AlcremieRubySwirl), - SPECIES_SPRITE(ALCREMIE_CARAMEL_SWIRL, gMonFrontPic_AlcremieCaramelSwirl), - SPECIES_SPRITE(ALCREMIE_RAINBOW_SWIRL, gMonFrontPic_AlcremieRainbowSwirl), - SPECIES_SPRITE(EISCUE_NOICE_FACE, gMonFrontPic_EiscueNoiceFace), SPECIES_SPRITE(INDEEDEE_FEMALE, gMonFrontPic_IndeedeeFemale), diff --git a/src/data/pokemon_graphics/palette_table.h b/src/data/pokemon_graphics/palette_table.h index 66b74a7bbf..9de97d1579 100644 --- a/src/data/pokemon_graphics/palette_table.h +++ b/src/data/pokemon_graphics/palette_table.h @@ -882,7 +882,69 @@ const struct CompressedSpritePalette gMonPaletteTable[NUM_SPECIES + 1] = SPECIES_PAL(MR_RIME, gMonPalette_MrRime), SPECIES_PAL(RUNERIGUS, gMonPalette_Runerigus), SPECIES_PAL(MILCERY, gMonPalette_Milcery), - SPECIES_PAL(ALCREMIE, gMonPalette_Alcremie), + SPECIES_PAL(ALCREMIE_STRAWBERRY_VANILLA_CREAM, gMonPalette_AlcremieStrawberryVanillaCream), + SPECIES_PAL(ALCREMIE_STRAWBERRY_RUBY_CREAM, gMonPalette_AlcremieStrawberryRubyCream), + SPECIES_PAL(ALCREMIE_STRAWBERRY_MATCHA_CREAM, gMonPalette_AlcremieStrawberryMatchaCream), + SPECIES_PAL(ALCREMIE_STRAWBERRY_MINT_CREAM, gMonPalette_AlcremieStrawberryMintCream), + SPECIES_PAL(ALCREMIE_STRAWBERRY_LEMON_CREAM, gMonPalette_AlcremieStrawberryLemonCream), + SPECIES_PAL(ALCREMIE_STRAWBERRY_SALTED_CREAM, gMonPalette_AlcremieStrawberrySaltedCream), + SPECIES_PAL(ALCREMIE_STRAWBERRY_RUBY_SWIRL, gMonPalette_AlcremieStrawberryRubySwirl), + SPECIES_PAL(ALCREMIE_STRAWBERRY_CARAMEL_SWIRL, gMonPalette_AlcremieStrawberryCaramelSwirl), + SPECIES_PAL(ALCREMIE_STRAWBERRY_RAINBOW_SWIRL, gMonPalette_AlcremieStrawberryRainbowSwirl), + SPECIES_PAL(ALCREMIE_BERRY_VANILLA_CREAM, gMonPalette_AlcremieBerryVanillaCream), + SPECIES_PAL(ALCREMIE_BERRY_RUBY_CREAM, gMonPalette_AlcremieBerryRubyCream), + SPECIES_PAL(ALCREMIE_BERRY_MATCHA_CREAM, gMonPalette_AlcremieBerryMatchaCream), + SPECIES_PAL(ALCREMIE_BERRY_MINT_CREAM, gMonPalette_AlcremieBerryMintCream), + SPECIES_PAL(ALCREMIE_BERRY_LEMON_CREAM, gMonPalette_AlcremieBerryLemonCream), + SPECIES_PAL(ALCREMIE_BERRY_SALTED_CREAM, gMonPalette_AlcremieBerrySaltedCream), + SPECIES_PAL(ALCREMIE_BERRY_RUBY_SWIRL, gMonPalette_AlcremieBerryRubySwirl), + SPECIES_PAL(ALCREMIE_BERRY_CARAMEL_SWIRL, gMonPalette_AlcremieBerryCaramelSwirl), + SPECIES_PAL(ALCREMIE_BERRY_RAINBOW_SWIRL, gMonPalette_AlcremieBerryRainbowSwirl), + SPECIES_PAL(ALCREMIE_LOVE_VANILLA_CREAM, gMonPalette_AlcremieLoveVanillaCream), + SPECIES_PAL(ALCREMIE_LOVE_RUBY_CREAM, gMonPalette_AlcremieLoveRubyCream), + SPECIES_PAL(ALCREMIE_LOVE_MATCHA_CREAM, gMonPalette_AlcremieLoveMatchaCream), + SPECIES_PAL(ALCREMIE_LOVE_MINT_CREAM, gMonPalette_AlcremieLoveMintCream), + SPECIES_PAL(ALCREMIE_LOVE_LEMON_CREAM, gMonPalette_AlcremieLoveLemonCream), + SPECIES_PAL(ALCREMIE_LOVE_SALTED_CREAM, gMonPalette_AlcremieLoveSaltedCream), + SPECIES_PAL(ALCREMIE_LOVE_RUBY_SWIRL, gMonPalette_AlcremieLoveRubySwirl), + SPECIES_PAL(ALCREMIE_LOVE_CARAMEL_SWIRL, gMonPalette_AlcremieLoveCaramelSwirl), + SPECIES_PAL(ALCREMIE_LOVE_RAINBOW_SWIRL, gMonPalette_AlcremieLoveRainbowSwirl), + SPECIES_PAL(ALCREMIE_STAR_VANILLA_CREAM, gMonPalette_AlcremieStarVanillaCream), + SPECIES_PAL(ALCREMIE_STAR_RUBY_CREAM, gMonPalette_AlcremieStarRubyCream), + SPECIES_PAL(ALCREMIE_STAR_MATCHA_CREAM, gMonPalette_AlcremieStarMatchaCream), + SPECIES_PAL(ALCREMIE_STAR_MINT_CREAM, gMonPalette_AlcremieStarMintCream), + SPECIES_PAL(ALCREMIE_STAR_LEMON_CREAM, gMonPalette_AlcremieStarLemonCream), + SPECIES_PAL(ALCREMIE_STAR_SALTED_CREAM, gMonPalette_AlcremieStarSaltedCream), + SPECIES_PAL(ALCREMIE_STAR_RUBY_SWIRL, gMonPalette_AlcremieStarRubySwirl), + SPECIES_PAL(ALCREMIE_STAR_CARAMEL_SWIRL, gMonPalette_AlcremieStarCaramelSwirl), + SPECIES_PAL(ALCREMIE_STAR_RAINBOW_SWIRL, gMonPalette_AlcremieStarRainbowSwirl), + SPECIES_PAL(ALCREMIE_CLOVER_VANILLA_CREAM, gMonPalette_AlcremieCloverVanillaCream), + SPECIES_PAL(ALCREMIE_CLOVER_RUBY_CREAM, gMonPalette_AlcremieCloverRubyCream), + SPECIES_PAL(ALCREMIE_CLOVER_MATCHA_CREAM, gMonPalette_AlcremieCloverMatchaCream), + SPECIES_PAL(ALCREMIE_CLOVER_MINT_CREAM, gMonPalette_AlcremieCloverMintCream), + SPECIES_PAL(ALCREMIE_CLOVER_LEMON_CREAM, gMonPalette_AlcremieCloverLemonCream), + SPECIES_PAL(ALCREMIE_CLOVER_SALTED_CREAM, gMonPalette_AlcremieCloverSaltedCream), + SPECIES_PAL(ALCREMIE_CLOVER_RUBY_SWIRL, gMonPalette_AlcremieCloverRubySwirl), + SPECIES_PAL(ALCREMIE_CLOVER_CARAMEL_SWIRL, gMonPalette_AlcremieCloverCaramelSwirl), + SPECIES_PAL(ALCREMIE_CLOVER_RAINBOW_SWIRL, gMonPalette_AlcremieCloverRainbowSwirl), + SPECIES_PAL(ALCREMIE_FLOWER_VANILLA_CREAM, gMonPalette_AlcremieFlowerVanillaCream), + SPECIES_PAL(ALCREMIE_FLOWER_RUBY_CREAM, gMonPalette_AlcremieFlowerRubyCream), + SPECIES_PAL(ALCREMIE_FLOWER_MATCHA_CREAM, gMonPalette_AlcremieFlowerMatchaCream), + SPECIES_PAL(ALCREMIE_FLOWER_MINT_CREAM, gMonPalette_AlcremieFlowerMintCream), + SPECIES_PAL(ALCREMIE_FLOWER_LEMON_CREAM, gMonPalette_AlcremieFlowerLemonCream), + SPECIES_PAL(ALCREMIE_FLOWER_SALTED_CREAM, gMonPalette_AlcremieFlowerSaltedCream), + SPECIES_PAL(ALCREMIE_FLOWER_RUBY_SWIRL, gMonPalette_AlcremieFlowerRubySwirl), + SPECIES_PAL(ALCREMIE_FLOWER_CARAMEL_SWIRL, gMonPalette_AlcremieFlowerCaramelSwirl), + SPECIES_PAL(ALCREMIE_FLOWER_RAINBOW_SWIRL, gMonPalette_AlcremieFlowerRainbowSwirl), + SPECIES_PAL(ALCREMIE_RIBBON_VANILLA_CREAM, gMonPalette_AlcremieRibbonVanillaCream), + SPECIES_PAL(ALCREMIE_RIBBON_RUBY_CREAM, gMonPalette_AlcremieRibbonRubyCream), + SPECIES_PAL(ALCREMIE_RIBBON_MATCHA_CREAM, gMonPalette_AlcremieRibbonMatchaCream), + SPECIES_PAL(ALCREMIE_RIBBON_MINT_CREAM, gMonPalette_AlcremieRibbonMintCream), + SPECIES_PAL(ALCREMIE_RIBBON_LEMON_CREAM, gMonPalette_AlcremieRibbonLemonCream), + SPECIES_PAL(ALCREMIE_RIBBON_SALTED_CREAM, gMonPalette_AlcremieRibbonSaltedCream), + SPECIES_PAL(ALCREMIE_RIBBON_RUBY_SWIRL, gMonPalette_AlcremieRibbonRubySwirl), + SPECIES_PAL(ALCREMIE_RIBBON_CARAMEL_SWIRL, gMonPalette_AlcremieRibbonCaramelSwirl), + SPECIES_PAL(ALCREMIE_RIBBON_RAINBOW_SWIRL, gMonPalette_AlcremieRibbonRainbowSwirl), SPECIES_PAL(FALINKS, gMonPalette_Falinks), SPECIES_PAL(PINCURCHIN, gMonPalette_Pincurchin), SPECIES_PAL(SNOM, gMonPalette_Snom), @@ -1308,15 +1370,6 @@ const struct CompressedSpritePalette gMonPaletteTable[NUM_SPECIES + 1] = SPECIES_PAL(POLTEAGEIST_ANTIQUE, gMonPalette_Polteageist), - SPECIES_PAL(ALCREMIE_RUBY_CREAM, gMonPalette_AlcremieRubyCream), - SPECIES_PAL(ALCREMIE_MATCHA_CREAM, gMonPalette_AlcremieMatchaCream), - SPECIES_PAL(ALCREMIE_MINT_CREAM, gMonPalette_AlcremieMintCream), - SPECIES_PAL(ALCREMIE_LEMON_CREAM, gMonPalette_AlcremieLemonCream), - SPECIES_PAL(ALCREMIE_SALTED_CREAM, gMonPalette_AlcremieSaltedCream), - SPECIES_PAL(ALCREMIE_RUBY_SWIRL, gMonPalette_AlcremieRubySwirl), - SPECIES_PAL(ALCREMIE_CARAMEL_SWIRL, gMonPalette_AlcremieCaramelSwirl), - SPECIES_PAL(ALCREMIE_RAINBOW_SWIRL, gMonPalette_AlcremieRainbowSwirl), - SPECIES_PAL(EISCUE_NOICE_FACE, gMonPalette_EiscueNoiceFace), SPECIES_PAL(INDEEDEE_FEMALE, gMonPalette_IndeedeeFemale), diff --git a/src/data/pokemon_graphics/shiny_palette_table.h b/src/data/pokemon_graphics/shiny_palette_table.h index 3040e7bae2..f7ec441094 100644 --- a/src/data/pokemon_graphics/shiny_palette_table.h +++ b/src/data/pokemon_graphics/shiny_palette_table.h @@ -882,7 +882,69 @@ const struct CompressedSpritePalette gMonShinyPaletteTable[NUM_SPECIES + 1] = SPECIES_SHINY_PAL(MR_RIME, gMonShinyPalette_MrRime), SPECIES_SHINY_PAL(RUNERIGUS, gMonShinyPalette_Runerigus), SPECIES_SHINY_PAL(MILCERY, gMonShinyPalette_Milcery), - SPECIES_SHINY_PAL(ALCREMIE, gMonShinyPalette_Alcremie), + SPECIES_PAL(ALCREMIE_STRAWBERRY_VANILLA_CREAM, gMonShinyPalette_AlcremieStrawberry), + SPECIES_PAL(ALCREMIE_STRAWBERRY_RUBY_CREAM, gMonShinyPalette_AlcremieStrawberry), + SPECIES_PAL(ALCREMIE_STRAWBERRY_MATCHA_CREAM, gMonShinyPalette_AlcremieStrawberry), + SPECIES_PAL(ALCREMIE_STRAWBERRY_MINT_CREAM, gMonShinyPalette_AlcremieStrawberry), + SPECIES_PAL(ALCREMIE_STRAWBERRY_LEMON_CREAM, gMonShinyPalette_AlcremieStrawberry), + SPECIES_PAL(ALCREMIE_STRAWBERRY_SALTED_CREAM, gMonShinyPalette_AlcremieStrawberry), + SPECIES_PAL(ALCREMIE_STRAWBERRY_RUBY_SWIRL, gMonShinyPalette_AlcremieStrawberry), + SPECIES_PAL(ALCREMIE_STRAWBERRY_CARAMEL_SWIRL, gMonShinyPalette_AlcremieStrawberry), + SPECIES_PAL(ALCREMIE_STRAWBERRY_RAINBOW_SWIRL, gMonShinyPalette_AlcremieStrawberry), + SPECIES_PAL(ALCREMIE_BERRY_VANILLA_CREAM, gMonShinyPalette_AlcremieBerry), + SPECIES_PAL(ALCREMIE_BERRY_RUBY_CREAM, gMonShinyPalette_AlcremieBerry), + SPECIES_PAL(ALCREMIE_BERRY_MATCHA_CREAM, gMonShinyPalette_AlcremieBerry), + SPECIES_PAL(ALCREMIE_BERRY_MINT_CREAM, gMonShinyPalette_AlcremieBerry), + SPECIES_PAL(ALCREMIE_BERRY_LEMON_CREAM, gMonShinyPalette_AlcremieBerry), + SPECIES_PAL(ALCREMIE_BERRY_SALTED_CREAM, gMonShinyPalette_AlcremieBerry), + SPECIES_PAL(ALCREMIE_BERRY_RUBY_SWIRL, gMonShinyPalette_AlcremieBerry), + SPECIES_PAL(ALCREMIE_BERRY_CARAMEL_SWIRL, gMonShinyPalette_AlcremieBerry), + SPECIES_PAL(ALCREMIE_BERRY_RAINBOW_SWIRL, gMonShinyPalette_AlcremieBerry), + SPECIES_PAL(ALCREMIE_LOVE_VANILLA_CREAM, gMonShinyPalette_AlcremieLove), + SPECIES_PAL(ALCREMIE_LOVE_RUBY_CREAM, gMonShinyPalette_AlcremieLove), + SPECIES_PAL(ALCREMIE_LOVE_MATCHA_CREAM, gMonShinyPalette_AlcremieLove), + SPECIES_PAL(ALCREMIE_LOVE_MINT_CREAM, gMonShinyPalette_AlcremieLove), + SPECIES_PAL(ALCREMIE_LOVE_LEMON_CREAM, gMonShinyPalette_AlcremieLove), + SPECIES_PAL(ALCREMIE_LOVE_SALTED_CREAM, gMonShinyPalette_AlcremieLove), + SPECIES_PAL(ALCREMIE_LOVE_RUBY_SWIRL, gMonShinyPalette_AlcremieLove), + SPECIES_PAL(ALCREMIE_LOVE_CARAMEL_SWIRL, gMonShinyPalette_AlcremieLove), + SPECIES_PAL(ALCREMIE_LOVE_RAINBOW_SWIRL, gMonShinyPalette_AlcremieLove), + SPECIES_PAL(ALCREMIE_STAR_VANILLA_CREAM, gMonShinyPalette_AlcremieStar), + SPECIES_PAL(ALCREMIE_STAR_RUBY_CREAM, gMonShinyPalette_AlcremieStar), + SPECIES_PAL(ALCREMIE_STAR_MATCHA_CREAM, gMonShinyPalette_AlcremieStar), + SPECIES_PAL(ALCREMIE_STAR_MINT_CREAM, gMonShinyPalette_AlcremieStar), + SPECIES_PAL(ALCREMIE_STAR_LEMON_CREAM, gMonShinyPalette_AlcremieStar), + SPECIES_PAL(ALCREMIE_STAR_SALTED_CREAM, gMonShinyPalette_AlcremieStar), + SPECIES_PAL(ALCREMIE_STAR_RUBY_SWIRL, gMonShinyPalette_AlcremieStar), + SPECIES_PAL(ALCREMIE_STAR_CARAMEL_SWIRL, gMonShinyPalette_AlcremieStar), + SPECIES_PAL(ALCREMIE_STAR_RAINBOW_SWIRL, gMonShinyPalette_AlcremieStar), + SPECIES_PAL(ALCREMIE_CLOVER_VANILLA_CREAM, gMonShinyPalette_AlcremieClover), + SPECIES_PAL(ALCREMIE_CLOVER_RUBY_CREAM, gMonShinyPalette_AlcremieClover), + SPECIES_PAL(ALCREMIE_CLOVER_MATCHA_CREAM, gMonShinyPalette_AlcremieClover), + SPECIES_PAL(ALCREMIE_CLOVER_MINT_CREAM, gMonShinyPalette_AlcremieClover), + SPECIES_PAL(ALCREMIE_CLOVER_LEMON_CREAM, gMonShinyPalette_AlcremieClover), + SPECIES_PAL(ALCREMIE_CLOVER_SALTED_CREAM, gMonShinyPalette_AlcremieClover), + SPECIES_PAL(ALCREMIE_CLOVER_RUBY_SWIRL, gMonShinyPalette_AlcremieClover), + SPECIES_PAL(ALCREMIE_CLOVER_CARAMEL_SWIRL, gMonShinyPalette_AlcremieClover), + SPECIES_PAL(ALCREMIE_CLOVER_RAINBOW_SWIRL, gMonShinyPalette_AlcremieClover), + SPECIES_PAL(ALCREMIE_FLOWER_VANILLA_CREAM, gMonShinyPalette_AlcremieFlower), + SPECIES_PAL(ALCREMIE_FLOWER_RUBY_CREAM, gMonShinyPalette_AlcremieFlower), + SPECIES_PAL(ALCREMIE_FLOWER_MATCHA_CREAM, gMonShinyPalette_AlcremieFlower), + SPECIES_PAL(ALCREMIE_FLOWER_MINT_CREAM, gMonShinyPalette_AlcremieFlower), + SPECIES_PAL(ALCREMIE_FLOWER_LEMON_CREAM, gMonShinyPalette_AlcremieFlower), + SPECIES_PAL(ALCREMIE_FLOWER_SALTED_CREAM, gMonShinyPalette_AlcremieFlower), + SPECIES_PAL(ALCREMIE_FLOWER_RUBY_SWIRL, gMonShinyPalette_AlcremieFlower), + SPECIES_PAL(ALCREMIE_FLOWER_CARAMEL_SWIRL, gMonShinyPalette_AlcremieFlower), + SPECIES_PAL(ALCREMIE_FLOWER_RAINBOW_SWIRL, gMonShinyPalette_AlcremieFlower), + SPECIES_PAL(ALCREMIE_RIBBON_VANILLA_CREAM, gMonShinyPalette_AlcremieRibbon), + SPECIES_PAL(ALCREMIE_RIBBON_RUBY_CREAM, gMonShinyPalette_AlcremieRibbon), + SPECIES_PAL(ALCREMIE_RIBBON_MATCHA_CREAM, gMonShinyPalette_AlcremieRibbon), + SPECIES_PAL(ALCREMIE_RIBBON_MINT_CREAM, gMonShinyPalette_AlcremieRibbon), + SPECIES_PAL(ALCREMIE_RIBBON_LEMON_CREAM, gMonShinyPalette_AlcremieRibbon), + SPECIES_PAL(ALCREMIE_RIBBON_SALTED_CREAM, gMonShinyPalette_AlcremieRibbon), + SPECIES_PAL(ALCREMIE_RIBBON_RUBY_SWIRL, gMonShinyPalette_AlcremieRibbon), + SPECIES_PAL(ALCREMIE_RIBBON_CARAMEL_SWIRL, gMonShinyPalette_AlcremieRibbon), + SPECIES_PAL(ALCREMIE_RIBBON_RAINBOW_SWIRL, gMonShinyPalette_AlcremieRibbon), SPECIES_SHINY_PAL(FALINKS, gMonShinyPalette_Falinks), SPECIES_SHINY_PAL(PINCURCHIN, gMonShinyPalette_Pincurchin), SPECIES_SHINY_PAL(SNOM, gMonShinyPalette_Snom), @@ -1306,15 +1368,6 @@ const struct CompressedSpritePalette gMonShinyPaletteTable[NUM_SPECIES + 1] = SPECIES_SHINY_PAL(POLTEAGEIST_ANTIQUE, gMonShinyPalette_Polteageist), - SPECIES_SHINY_PAL(ALCREMIE_RUBY_CREAM, gMonShinyPalette_AlcremieRubyCream), - SPECIES_SHINY_PAL(ALCREMIE_MATCHA_CREAM, gMonShinyPalette_AlcremieMatchaCream), - SPECIES_SHINY_PAL(ALCREMIE_MINT_CREAM, gMonShinyPalette_AlcremieMintCream), - SPECIES_SHINY_PAL(ALCREMIE_LEMON_CREAM, gMonShinyPalette_AlcremieLemonCream), - SPECIES_SHINY_PAL(ALCREMIE_SALTED_CREAM, gMonShinyPalette_AlcremieSaltedCream), - SPECIES_SHINY_PAL(ALCREMIE_RUBY_SWIRL, gMonShinyPalette_AlcremieRubySwirl), - SPECIES_SHINY_PAL(ALCREMIE_CARAMEL_SWIRL, gMonShinyPalette_AlcremieCaramelSwirl), - SPECIES_SHINY_PAL(ALCREMIE_RAINBOW_SWIRL, gMonShinyPalette_AlcremieRainbowSwirl), - SPECIES_SHINY_PAL(EISCUE_NOICE_FACE, gMonShinyPalette_EiscueNoiceFace), SPECIES_SHINY_PAL(INDEEDEE_FEMALE, gMonShinyPalette_IndeedeeFemale), diff --git a/src/data/text/move_names.h b/src/data/text/move_names.h index 39fd8129b2..01d613751e 100644 --- a/src/data/text/move_names.h +++ b/src/data/text/move_names.h @@ -1968,4 +1968,3 @@ const u8 *const gMaxMoveNames[] = [MOVE_G_MAX_ONE_BLOW - FIRST_MAX_MOVE] = sText_G_Max_One_Blow, [MOVE_G_MAX_RAPID_FLOW - FIRST_MAX_MOVE] = sText_G_Max_Rapid_Flow, }; - \ No newline at end of file diff --git a/src/data/text/species_names.h b/src/data/text/species_names.h index 14b6619654..dd840c1ce6 100644 --- a/src/data/text/species_names.h +++ b/src/data/text/species_names.h @@ -882,6 +882,68 @@ const u8 gSpeciesNames[NUM_SPECIES][POKEMON_NAME_LENGTH + 1] = { [SPECIES_RUNERIGUS] = _("Runerigus"), [SPECIES_MILCERY] = _("Milcery"), [SPECIES_ALCREMIE_STRAWBERRY_VANILLA_CREAM] = _("Alcremie"), + [SPECIES_ALCREMIE_STRAWBERRY_RUBY_CREAM] = _("Alcremie"), + [SPECIES_ALCREMIE_STRAWBERRY_MATCHA_CREAM] = _("Alcremie"), + [SPECIES_ALCREMIE_STRAWBERRY_MINT_CREAM] = _("Alcremie"), + [SPECIES_ALCREMIE_STRAWBERRY_LEMON_CREAM] = _("Alcremie"), + [SPECIES_ALCREMIE_STRAWBERRY_SALTED_CREAM] = _("Alcremie"), + [SPECIES_ALCREMIE_STRAWBERRY_RUBY_SWIRL] = _("Alcremie"), + [SPECIES_ALCREMIE_STRAWBERRY_CARAMEL_SWIRL] = _("Alcremie"), + [SPECIES_ALCREMIE_STRAWBERRY_RAINBOW_SWIRL] = _("Alcremie"), + [SPECIES_ALCREMIE_BERRY_VANILLA_CREAM] = _("Alcremie"), + [SPECIES_ALCREMIE_BERRY_RUBY_CREAM] = _("Alcremie"), + [SPECIES_ALCREMIE_BERRY_MATCHA_CREAM] = _("Alcremie"), + [SPECIES_ALCREMIE_BERRY_MINT_CREAM] = _("Alcremie"), + [SPECIES_ALCREMIE_BERRY_LEMON_CREAM] = _("Alcremie"), + [SPECIES_ALCREMIE_BERRY_SALTED_CREAM] = _("Alcremie"), + [SPECIES_ALCREMIE_BERRY_RUBY_SWIRL] = _("Alcremie"), + [SPECIES_ALCREMIE_BERRY_CARAMEL_SWIRL] = _("Alcremie"), + [SPECIES_ALCREMIE_BERRY_RAINBOW_SWIRL] = _("Alcremie"), + [SPECIES_ALCREMIE_LOVE_VANILLA_CREAM] = _("Alcremie"), + [SPECIES_ALCREMIE_LOVE_RUBY_CREAM] = _("Alcremie"), + [SPECIES_ALCREMIE_LOVE_MATCHA_CREAM] = _("Alcremie"), + [SPECIES_ALCREMIE_LOVE_MINT_CREAM] = _("Alcremie"), + [SPECIES_ALCREMIE_LOVE_LEMON_CREAM] = _("Alcremie"), + [SPECIES_ALCREMIE_LOVE_SALTED_CREAM] = _("Alcremie"), + [SPECIES_ALCREMIE_LOVE_RUBY_SWIRL] = _("Alcremie"), + [SPECIES_ALCREMIE_LOVE_CARAMEL_SWIRL] = _("Alcremie"), + [SPECIES_ALCREMIE_LOVE_RAINBOW_SWIRL] = _("Alcremie"), + [SPECIES_ALCREMIE_STAR_VANILLA_CREAM] = _("Alcremie"), + [SPECIES_ALCREMIE_STAR_RUBY_CREAM] = _("Alcremie"), + [SPECIES_ALCREMIE_STAR_MATCHA_CREAM] = _("Alcremie"), + [SPECIES_ALCREMIE_STAR_MINT_CREAM] = _("Alcremie"), + [SPECIES_ALCREMIE_STAR_LEMON_CREAM] = _("Alcremie"), + [SPECIES_ALCREMIE_STAR_SALTED_CREAM] = _("Alcremie"), + [SPECIES_ALCREMIE_STAR_RUBY_SWIRL] = _("Alcremie"), + [SPECIES_ALCREMIE_STAR_CARAMEL_SWIRL] = _("Alcremie"), + [SPECIES_ALCREMIE_STAR_RAINBOW_SWIRL] = _("Alcremie"), + [SPECIES_ALCREMIE_CLOVER_VANILLA_CREAM] = _("Alcremie"), + [SPECIES_ALCREMIE_CLOVER_RUBY_CREAM] = _("Alcremie"), + [SPECIES_ALCREMIE_CLOVER_MATCHA_CREAM] = _("Alcremie"), + [SPECIES_ALCREMIE_CLOVER_MINT_CREAM] = _("Alcremie"), + [SPECIES_ALCREMIE_CLOVER_LEMON_CREAM] = _("Alcremie"), + [SPECIES_ALCREMIE_CLOVER_SALTED_CREAM] = _("Alcremie"), + [SPECIES_ALCREMIE_CLOVER_RUBY_SWIRL] = _("Alcremie"), + [SPECIES_ALCREMIE_CLOVER_CARAMEL_SWIRL] = _("Alcremie"), + [SPECIES_ALCREMIE_CLOVER_RAINBOW_SWIRL] = _("Alcremie"), + [SPECIES_ALCREMIE_FLOWER_VANILLA_CREAM] = _("Alcremie"), + [SPECIES_ALCREMIE_FLOWER_RUBY_CREAM] = _("Alcremie"), + [SPECIES_ALCREMIE_FLOWER_MATCHA_CREAM] = _("Alcremie"), + [SPECIES_ALCREMIE_FLOWER_MINT_CREAM] = _("Alcremie"), + [SPECIES_ALCREMIE_FLOWER_LEMON_CREAM] = _("Alcremie"), + [SPECIES_ALCREMIE_FLOWER_SALTED_CREAM] = _("Alcremie"), + [SPECIES_ALCREMIE_FLOWER_RUBY_SWIRL] = _("Alcremie"), + [SPECIES_ALCREMIE_FLOWER_CARAMEL_SWIRL] = _("Alcremie"), + [SPECIES_ALCREMIE_FLOWER_RAINBOW_SWIRL] = _("Alcremie"), + [SPECIES_ALCREMIE_RIBBON_VANILLA_CREAM] = _("Alcremie"), + [SPECIES_ALCREMIE_RIBBON_RUBY_CREAM] = _("Alcremie"), + [SPECIES_ALCREMIE_RIBBON_MATCHA_CREAM] = _("Alcremie"), + [SPECIES_ALCREMIE_RIBBON_MINT_CREAM] = _("Alcremie"), + [SPECIES_ALCREMIE_RIBBON_LEMON_CREAM] = _("Alcremie"), + [SPECIES_ALCREMIE_RIBBON_SALTED_CREAM] = _("Alcremie"), + [SPECIES_ALCREMIE_RIBBON_RUBY_SWIRL] = _("Alcremie"), + [SPECIES_ALCREMIE_RIBBON_CARAMEL_SWIRL] = _("Alcremie"), + [SPECIES_ALCREMIE_RIBBON_RAINBOW_SWIRL] = _("Alcremie"), [SPECIES_FALINKS] = _("Falinks"), [SPECIES_PINCURCHIN] = _("Pincurchin"), [SPECIES_SNOM] = _("Snom"), @@ -1446,15 +1508,6 @@ const u8 gSpeciesNames[NUM_SPECIES][POKEMON_NAME_LENGTH + 1] = { [SPECIES_SINISTEA_ANTIQUE] = _("Sinistea"), // Polteageist [SPECIES_POLTEAGEIST_ANTIQUE] = _("Polteageis"), - // Alcremie - [SPECIES_ALCREMIE_STRAWBERRY_RUBY_CREAM] = _("Alcremie"), - [SPECIES_ALCREMIE_STRAWBERRY_MATCHA_CREAM] = _("Alcremie"), - [SPECIES_ALCREMIE_STRAWBERRY_MINT_CREAM] = _("Alcremie"), - [SPECIES_ALCREMIE_STRAWBERRY_LEMON_CREAM] = _("Alcremie"), - [SPECIES_ALCREMIE_STRAWBERRY_SALTED_CREAM] = _("Alcremie"), - [SPECIES_ALCREMIE_STRAWBERRY_RUBY_SWIRL] = _("Alcremie"), - [SPECIES_ALCREMIE_STRAWBERRY_CARAMEL_SWIRL] = _("Alcremie"), - [SPECIES_ALCREMIE_STRAWBERRY_RAINBOW_SWIRL] = _("Alcremie"), // Eiscue [SPECIES_EISCUE_NOICE_FACE] = _("Eiscue"), // Indeedee diff --git a/src/event_object_movement.c b/src/event_object_movement.c index 29969b1f6b..cdd72d668c 100644 --- a/src/event_object_movement.c +++ b/src/event_object_movement.c @@ -1325,7 +1325,7 @@ u8 Unref_TryInitLocalObjectEvent(u8 localId) if (InBattlePyramid()) objectEventCount = GetNumBattlePyramidObjectEvents(); else if (InTrainerHill()) - objectEventCount = 2; + objectEventCount = HILL_TRAINERS_PER_FLOOR; else objectEventCount = gMapHeader.events->objectEventCount; @@ -1641,7 +1641,7 @@ void TrySpawnObjectEvents(s16 cameraX, s16 cameraY) if (InBattlePyramid()) objectCount = GetNumBattlePyramidObjectEvents(); else if (InTrainerHill()) - objectCount = 2; + objectCount = HILL_TRAINERS_PER_FLOOR; else objectCount = gMapHeader.events->objectEventCount; diff --git a/src/field_effect_helpers.c b/src/field_effect_helpers.c index 386c3c76b2..ac4dac3ecb 100755 --- a/src/field_effect_helpers.c +++ b/src/field_effect_helpers.c @@ -32,8 +32,12 @@ static void UpdateBobbingEffect(struct ObjectEvent *, struct Sprite *, struct Sp static void SpriteCB_UnderwaterSurfBlob(struct Sprite *); static u32 ShowDisguiseFieldEffect(u8, u8, u8); -// Used by several field effects to determine which of a group it is -#define sFldEff data[1] +// Data used by all the field effects that share UpdateJumpImpactEffect +#define sJumpElevation data[0] +#define sJumpFldEff data[1] + +// Data used by all the field effects that share WaitFieldEffectSpriteAnim +#define sWaitFldEff data[0] #define sReflectionObjEventId data[0] #define sReflectionObjEventLocalId data[1] @@ -44,7 +48,7 @@ void SetUpReflection(struct ObjectEvent *objectEvent, struct Sprite *sprite, boo { struct Sprite *reflectionSprite; - reflectionSprite = &gSprites[CreateCopySpriteAt(sprite, sprite->x, sprite->y, 0x98)]; + reflectionSprite = &gSprites[CreateCopySpriteAt(sprite, sprite->x, sprite->y, 152)]; reflectionSprite->callback = UpdateObjectReflectionSprite; reflectionSprite->oam.priority = 3; reflectionSprite->oam.paletteNum = gReflectionEffectPaletteMap[reflectionSprite->oam.paletteNum]; @@ -92,9 +96,7 @@ static void LoadObjectReflectionPalette(struct ObjectEvent *objectEvent, struct static void LoadObjectRegularReflectionPalette(struct ObjectEvent *objectEvent, u8 paletteIndex) { - const struct ObjectEventGraphicsInfo *graphicsInfo; - - graphicsInfo = GetObjectEventGraphicsInfo(objectEvent->graphicsId); + const struct ObjectEventGraphicsInfo *graphicsInfo = GetObjectEventGraphicsInfo(objectEvent->graphicsId); if (graphicsInfo->reflectionPaletteTag != OBJ_EVENT_PAL_TAG_NONE) { if (graphicsInfo->paletteSlot == PALSLOT_PLAYER) @@ -111,9 +113,7 @@ static void LoadObjectRegularReflectionPalette(struct ObjectEvent *objectEvent, // This is so the sprite blends in with the dark water metatile underneath the bridge. static void LoadObjectHighBridgeReflectionPalette(struct ObjectEvent *objectEvent, u8 paletteNum) { - const struct ObjectEventGraphicsInfo *graphicsInfo; - - graphicsInfo = GetObjectEventGraphicsInfo(objectEvent->graphicsId); + const struct ObjectEventGraphicsInfo *graphicsInfo = GetObjectEventGraphicsInfo(objectEvent->graphicsId); if (graphicsInfo->reflectionPaletteTag != OBJ_EVENT_PAL_TAG_NONE) { PatchObjectPalette(graphicsInfo->reflectionPaletteTag, paletteNum); @@ -123,11 +123,8 @@ static void LoadObjectHighBridgeReflectionPalette(struct ObjectEvent *objectEven static void UpdateObjectReflectionSprite(struct Sprite *reflectionSprite) { - struct ObjectEvent *objectEvent; - struct Sprite *mainSprite; - - objectEvent = &gObjectEvents[reflectionSprite->sReflectionObjEventId]; - mainSprite = &gSprites[objectEvent->spriteId]; + struct ObjectEvent *objectEvent = &gObjectEvents[reflectionSprite->sReflectionObjEventId]; + struct Sprite *mainSprite = &gSprites[objectEvent->spriteId]; if (!objectEvent->active || !objectEvent->hasReflection || objectEvent->localId != reflectionSprite->sReflectionObjEventLocalId) { reflectionSprite->inUse = FALSE; @@ -172,15 +169,15 @@ static void UpdateObjectReflectionSprite(struct Sprite *reflectionSprite) extern const struct SpriteTemplate *const gFieldEffectObjectTemplatePointers[]; +#define sPrevX data[0] +#define sPrevY data[1] + u8 CreateWarpArrowSprite(void) { - u8 spriteId; - struct Sprite *sprite; - - spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[FLDEFFOBJ_ARROW], 0, 0, 0x52); + u8 spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[FLDEFFOBJ_ARROW], 0, 0, 82); if (spriteId != MAX_SPRITES) { - sprite = &gSprites[spriteId]; + struct Sprite *sprite = &gSprites[spriteId]; sprite->oam.priority = 1; sprite->coordOffsetEnabled = TRUE; sprite->invisible = TRUE; @@ -195,24 +192,24 @@ void SetSpriteInvisible(u8 spriteId) void ShowWarpArrowSprite(u8 spriteId, u8 direction, s16 x, s16 y) { - s16 x2; - s16 y2; - struct Sprite *sprite; - - sprite = &gSprites[spriteId]; - if (sprite->invisible || sprite->data[0] != x || sprite->data[1] != y) + struct Sprite *sprite = &gSprites[spriteId]; + if (sprite->invisible || sprite->sPrevX != x || sprite->sPrevY != y) { + s16 x2, y2; SetSpritePosToMapCoords(x, y, &x2, &y2); sprite = &gSprites[spriteId]; sprite->x = x2 + 8; sprite->y = y2 + 8; sprite->invisible = FALSE; - sprite->data[0] = x; - sprite->data[1] = y; + sprite->sPrevX = x; + sprite->sPrevY = y; StartSpriteAnim(sprite, direction - 1); } } +#undef sPrevX +#undef sPrevY + static const u8 sShadowEffectTemplateIds[] = { FLDEFFOBJ_SHADOW_S, FLDEFFOBJ_SHADOW_M, @@ -227,22 +224,24 @@ const u16 gShadowVerticalOffsets[] = { 16 }; +// Sprite data for FLDEFF_SHADOW +#define sLocalId data[0] +#define sMapNum data[1] +#define sMapGroup data[2] +#define sYOffset data[3] + u32 FldEff_Shadow(void) { - u8 objectEventId; - const struct ObjectEventGraphicsInfo *graphicsInfo; - u8 spriteId; - - objectEventId = GetObjectEventIdByLocalIdAndMap(gFieldEffectArguments[0], gFieldEffectArguments[1], gFieldEffectArguments[2]); - graphicsInfo = GetObjectEventGraphicsInfo(gObjectEvents[objectEventId].graphicsId); - spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[sShadowEffectTemplateIds[graphicsInfo->shadowSize]], 0, 0, 0x94); + u8 objectEventId = GetObjectEventIdByLocalIdAndMap(gFieldEffectArguments[0], gFieldEffectArguments[1], gFieldEffectArguments[2]); + const struct ObjectEventGraphicsInfo *graphicsInfo = GetObjectEventGraphicsInfo(gObjectEvents[objectEventId].graphicsId); + u8 spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[sShadowEffectTemplateIds[graphicsInfo->shadowSize]], 0, 0, 148); if (spriteId != MAX_SPRITES) { gSprites[spriteId].coordOffsetEnabled = TRUE; - gSprites[spriteId].data[0] = gFieldEffectArguments[0]; - gSprites[spriteId].data[1] = gFieldEffectArguments[1]; - gSprites[spriteId].data[2] = gFieldEffectArguments[2]; - gSprites[spriteId].data[3] = (graphicsInfo->height >> 1) - gShadowVerticalOffsets[graphicsInfo->shadowSize]; + gSprites[spriteId].sLocalId = gFieldEffectArguments[0]; + gSprites[spriteId].sMapNum = gFieldEffectArguments[1]; + gSprites[spriteId].sMapGroup = gFieldEffectArguments[2]; + gSprites[spriteId].sYOffset = (graphicsInfo->height >> 1) - gShadowVerticalOffsets[graphicsInfo->shadowSize]; } return 0; } @@ -250,20 +249,18 @@ u32 FldEff_Shadow(void) void UpdateShadowFieldEffect(struct Sprite *sprite) { u8 objectEventId; - struct ObjectEvent *objectEvent; - struct Sprite *linkedSprite; - if (TryGetObjectEventIdByLocalIdAndMap(sprite->data[0], sprite->data[1], sprite->data[2], &objectEventId)) + if (TryGetObjectEventIdByLocalIdAndMap(sprite->sLocalId, sprite->sMapNum, sprite->sMapGroup, &objectEventId)) { FieldEffectStop(sprite, FLDEFF_SHADOW); } else { - objectEvent = &gObjectEvents[objectEventId]; - linkedSprite = &gSprites[objectEvent->spriteId]; + struct ObjectEvent *objectEvent = &gObjectEvents[objectEventId]; + struct Sprite *linkedSprite = &gSprites[objectEvent->spriteId]; sprite->oam.priority = linkedSprite->oam.priority; sprite->x = linkedSprite->x; - sprite->y = linkedSprite->y + sprite->data[3]; + sprite->y = linkedSprite->y + sprite->sYOffset; if (!objectEvent->active || !objectEvent->hasShadow || MetatileBehavior_IsPokeGrass(objectEvent->currentMetatileBehavior) || MetatileBehavior_IsSurfableWaterOrUnderwater(objectEvent->currentMetatileBehavior) @@ -276,6 +273,11 @@ void UpdateShadowFieldEffect(struct Sprite *sprite) } } +#undef sLocalId +#undef sMapNum +#undef sMapGroup +#undef sYOffset + // Sprite data for FLDEFF_TALL_GRASS and FLDEFF_LONG_GRASS #define sElevation data[0] #define sX data[1] @@ -288,18 +290,14 @@ void UpdateShadowFieldEffect(struct Sprite *sprite) u32 FldEff_TallGrass(void) { - s16 x; - s16 y; u8 spriteId; - struct Sprite *sprite; - - x = gFieldEffectArguments[0]; - y = gFieldEffectArguments[1]; + s16 x = gFieldEffectArguments[0]; + s16 y = gFieldEffectArguments[1]; SetSpritePosToOffsetMapCoords(&x, &y, 8, 8); spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[FLDEFFOBJ_TALL_GRASS], x, y, 0); if (spriteId != MAX_SPRITES) { - sprite = &gSprites[spriteId]; + struct Sprite *sprite = &gSprites[spriteId]; sprite->coordOffsetEnabled = TRUE; sprite->oam.priority = gFieldEffectArguments[3]; sprite->sElevation = gFieldEffectArguments[2]; @@ -317,15 +315,12 @@ u32 FldEff_TallGrass(void) void UpdateTallGrassFieldEffect(struct Sprite *sprite) { - u8 mapNum; - u8 mapGroup; u8 metatileBehavior; u8 localId; u8 objectEventId; - struct ObjectEvent *objectEvent; + u8 mapNum = sprite->sCurrentMap >> 8; + u8 mapGroup = sprite->sCurrentMap; - mapNum = sprite->sCurrentMap >> 8; - mapGroup = sprite->sCurrentMap; if (gCamera.active && (gSaveBlock1Ptr->location.mapNum != mapNum || gSaveBlock1Ptr->location.mapGroup != mapGroup)) { sprite->sX -= gCamera.x; @@ -346,11 +341,9 @@ void UpdateTallGrassFieldEffect(struct Sprite *sprite) else { // Check if the object that triggered the effect has moved away - objectEvent = &gObjectEvents[objectEventId]; - if ((objectEvent->currentCoords.x != sprite->sX - || objectEvent->currentCoords.y != sprite->sY) - && (objectEvent->previousCoords.x != sprite->sX - || objectEvent->previousCoords.y != sprite->sY)) + struct ObjectEvent *objectEvent = &gObjectEvents[objectEventId]; + if ((objectEvent->currentCoords.x != sprite->sX || objectEvent->currentCoords.y != sprite->sY) + && (objectEvent->previousCoords.x != sprite->sX || objectEvent->previousCoords.y != sprite->sY)) sprite->sObjectMoved = TRUE; // Metatile behavior var re-used as subpriority @@ -366,31 +359,28 @@ void UpdateTallGrassFieldEffect(struct Sprite *sprite) u32 FldEff_JumpTallGrass(void) { u8 spriteId; - struct Sprite *sprite; SetSpritePosToOffsetMapCoords((s16 *)&gFieldEffectArguments[0], (s16 *)&gFieldEffectArguments[1], 8, 12); spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[FLDEFFOBJ_JUMP_TALL_GRASS], gFieldEffectArguments[0], gFieldEffectArguments[1], 0); if (spriteId != MAX_SPRITES) { - sprite = &gSprites[spriteId]; + struct Sprite *sprite = &gSprites[spriteId]; sprite->coordOffsetEnabled = TRUE; sprite->oam.priority = gFieldEffectArguments[3]; - sprite->sElevation = gFieldEffectArguments[2]; - sprite->sFldEff = FLDEFF_JUMP_TALL_GRASS; + sprite->sJumpElevation = gFieldEffectArguments[2]; + sprite->sJumpFldEff = FLDEFF_JUMP_TALL_GRASS; } return 0; } u8 FindTallGrassFieldEffectSpriteId(u8 localId, u8 mapNum, u8 mapGroup, s16 x, s16 y) { - struct Sprite *sprite; u8 i; - for (i = 0; i < MAX_SPRITES; i ++) { if (gSprites[i].inUse) { - sprite = &gSprites[i]; + struct Sprite *sprite = &gSprites[i]; if (sprite->callback == UpdateTallGrassFieldEffect && (x == sprite->sX && y == sprite->sY) && localId == (u8)(sprite->sLocalId) @@ -404,18 +394,14 @@ u8 FindTallGrassFieldEffectSpriteId(u8 localId, u8 mapNum, u8 mapGroup, s16 x, s u32 FldEff_LongGrass(void) { - s16 x; - s16 y; u8 spriteId; - struct Sprite *sprite; - - x = gFieldEffectArguments[0]; - y = gFieldEffectArguments[1]; + s16 x = gFieldEffectArguments[0]; + s16 y = gFieldEffectArguments[1]; SetSpritePosToOffsetMapCoords(&x, &y, 8, 8); spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[FLDEFFOBJ_LONG_GRASS], x, y, 0); if (spriteId != MAX_SPRITES) { - sprite = &gSprites[spriteId]; + struct Sprite *sprite = &gSprites[spriteId]; sprite->coordOffsetEnabled = TRUE; sprite->oam.priority = ElevationToPriority(gFieldEffectArguments[2]); sprite->sElevation = gFieldEffectArguments[2]; @@ -433,15 +419,12 @@ u32 FldEff_LongGrass(void) void UpdateLongGrassFieldEffect(struct Sprite *sprite) { - u8 mapNum; - u8 mapGroup; u8 metatileBehavior; u8 localId; u8 objectEventId; - struct ObjectEvent *objectEvent; + u8 mapNum = sprite->sCurrentMap >> 8; + u8 mapGroup = sprite->sCurrentMap; - mapNum = sprite->sCurrentMap >> 8; - mapGroup = sprite->sCurrentMap; if (gCamera.active && (gSaveBlock1Ptr->location.mapNum != mapNum || gSaveBlock1Ptr->location.mapGroup != mapGroup)) { sprite->sX -= gCamera.x; @@ -451,7 +434,7 @@ void UpdateLongGrassFieldEffect(struct Sprite *sprite) localId = sprite->sLocalId; mapNum = sprite->sMapNum; mapGroup = sprite->sMapGroup; - metatileBehavior = MapGridGetMetatileBehaviorAt(sprite->data[1], sprite->data[2]); + metatileBehavior = MapGridGetMetatileBehaviorAt(sprite->sX, sprite->sY); if (TryGetObjectEventIdByLocalIdAndMap(localId, mapNum, mapGroup, &objectEventId) || !MetatileBehavior_IsLongGrass(metatileBehavior) || (sprite->sObjectMoved && sprite->animEnded)) @@ -461,11 +444,9 @@ void UpdateLongGrassFieldEffect(struct Sprite *sprite) else { // Check if the object that triggered the effect has moved away - objectEvent = &gObjectEvents[objectEventId]; - if ((objectEvent->currentCoords.x != sprite->data[1] - || objectEvent->currentCoords.y != sprite->data[2]) - && (objectEvent->previousCoords.x != sprite->data[1] - || objectEvent->previousCoords.y != sprite->data[2])) + struct ObjectEvent *objectEvent = &gObjectEvents[objectEventId]; + if ((objectEvent->currentCoords.x != sprite->sX || objectEvent->currentCoords.y != sprite->sY) + && (objectEvent->previousCoords.x != sprite->sX || objectEvent->previousCoords.y != sprite->sY)) sprite->sObjectMoved = TRUE; UpdateObjectEventSpriteInvisibility(sprite, FALSE); @@ -473,6 +454,7 @@ void UpdateLongGrassFieldEffect(struct Sprite *sprite) } } +#undef sElevation #undef sX #undef sY #undef sMapNum @@ -486,41 +468,42 @@ void UpdateLongGrassFieldEffect(struct Sprite *sprite) u32 FldEff_JumpLongGrass(void) { u8 spriteId; - struct Sprite *sprite; SetSpritePosToOffsetMapCoords((s16 *)&gFieldEffectArguments[0], (s16 *)&gFieldEffectArguments[1], 8, 8); spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[FLDEFFOBJ_JUMP_LONG_GRASS], gFieldEffectArguments[0], gFieldEffectArguments[1], 0); if (spriteId != MAX_SPRITES) { - sprite = &gSprites[spriteId]; + struct Sprite *sprite = &gSprites[spriteId]; sprite->coordOffsetEnabled = TRUE; sprite->oam.priority = gFieldEffectArguments[3]; - sprite->sElevation = gFieldEffectArguments[2]; - sprite->sFldEff = FLDEFF_JUMP_LONG_GRASS; + sprite->sJumpElevation = gFieldEffectArguments[2]; + sprite->sJumpFldEff = FLDEFF_JUMP_LONG_GRASS; } return 0; } +// Sprite data for FLDEFF_SHORT_GRASS +#define sLocalId data[0] +#define sMapNum data[1] +#define sMapGroup data[2] +#define sPrevX data[3] +#define sPrevY data[4] + u32 FldEff_ShortGrass(void) { - u8 objectEventId; - struct ObjectEvent *objectEvent; - u8 spriteId; - struct Sprite *sprite; - - objectEventId = GetObjectEventIdByLocalIdAndMap(gFieldEffectArguments[0], gFieldEffectArguments[1], gFieldEffectArguments[2]); - objectEvent = &gObjectEvents[objectEventId]; - spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[FLDEFFOBJ_SHORT_GRASS], 0, 0, 0); + u8 objectEventId = GetObjectEventIdByLocalIdAndMap(gFieldEffectArguments[0], gFieldEffectArguments[1], gFieldEffectArguments[2]); + struct ObjectEvent *objectEvent = &gObjectEvents[objectEventId]; + u8 spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[FLDEFFOBJ_SHORT_GRASS], 0, 0, 0); if (spriteId != MAX_SPRITES) { - sprite = &(gSprites[spriteId]); + struct Sprite *sprite = &(gSprites[spriteId]); sprite->coordOffsetEnabled = TRUE; sprite->oam.priority = gSprites[objectEvent->spriteId].oam.priority; - sprite->data[0] = gFieldEffectArguments[0]; - sprite->data[1] = gFieldEffectArguments[1]; - sprite->data[2] = gFieldEffectArguments[2]; - sprite->data[3] = gSprites[objectEvent->spriteId].x; - sprite->data[4] = gSprites[objectEvent->spriteId].y; + sprite->sLocalId = gFieldEffectArguments[0]; + sprite->sMapNum = gFieldEffectArguments[1]; + sprite->sMapGroup = gFieldEffectArguments[2]; + sprite->sPrevX = gSprites[objectEvent->spriteId].x; + sprite->sPrevY = gSprites[objectEvent->spriteId].y; } return 0; } @@ -528,32 +511,28 @@ u32 FldEff_ShortGrass(void) void UpdateShortGrassFieldEffect(struct Sprite *sprite) { u8 objectEventId; - s16 x; - s16 y; - const struct ObjectEventGraphicsInfo *graphicsInfo; - struct Sprite *linkedSprite; - if (TryGetObjectEventIdByLocalIdAndMap(sprite->data[0], sprite->data[1], sprite->data[2], &objectEventId) || !gObjectEvents[objectEventId].inShortGrass) + if (TryGetObjectEventIdByLocalIdAndMap(sprite->sLocalId, sprite->sMapNum, sprite->sMapGroup, &objectEventId) || !gObjectEvents[objectEventId].inShortGrass) { FieldEffectStop(sprite, FLDEFF_SHORT_GRASS); } else { - graphicsInfo = GetObjectEventGraphicsInfo(gObjectEvents[objectEventId].graphicsId); - linkedSprite = &gSprites[gObjectEvents[objectEventId].spriteId]; - y = linkedSprite->y; - x = linkedSprite->x; - if (x != sprite->data[3] || y != sprite->data[4]) + const struct ObjectEventGraphicsInfo *graphicsInfo = GetObjectEventGraphicsInfo(gObjectEvents[objectEventId].graphicsId); + struct Sprite *linkedSprite = &gSprites[gObjectEvents[objectEventId].spriteId]; + s16 parentY = linkedSprite->y; + s16 parentX = linkedSprite->x; + if (parentX != sprite->sPrevX || parentY != sprite->sPrevY) { - sprite->data[3] = x; - sprite->data[4] = y; + // Parent sprite moved, try to restart the animation + sprite->sPrevX = parentX; + sprite->sPrevY = parentY; if (sprite->animEnded) - { StartSpriteAnim(sprite, 0); - } } - sprite->x = x; - sprite->y = y; + sprite->x = parentX; + sprite->y = parentY; + // Offset the grass sprite halfway down the parent sprite. sprite->y2 = (graphicsInfo->height >> 1) - 8; sprite->subpriority = linkedSprite->subpriority - 1; sprite->oam.priority = linkedSprite->oam.priority; @@ -561,19 +540,29 @@ void UpdateShortGrassFieldEffect(struct Sprite *sprite) } } +#undef sLocalId +#undef sMapNum +#undef sMapGroup +#undef sPrevX +#undef sPrevY + +// Sprite data for FLDEFF_SAND_FOOTPRINTS, FLDEFF_DEEP_SAND_FOOTPRINTS, and FLDEFF_BIKE_TIRE_TRACKS +#define sState data[0] +#define sTimer data[1] +#define sFldEff data[7] + u32 FldEff_SandFootprints(void) { u8 spriteId; - struct Sprite *sprite; SetSpritePosToOffsetMapCoords((s16 *)&gFieldEffectArguments[0], (s16 *)&gFieldEffectArguments[1], 8, 8); spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[FLDEFFOBJ_SAND_FOOTPRINTS], gFieldEffectArguments[0], gFieldEffectArguments[1], gFieldEffectArguments[2]); if (spriteId != MAX_SPRITES) { - sprite = &gSprites[spriteId]; + struct Sprite *sprite = &gSprites[spriteId]; sprite->coordOffsetEnabled = TRUE; sprite->oam.priority = gFieldEffectArguments[3]; - sprite->data[7] = FLDEFF_SAND_FOOTPRINTS; + sprite->sFldEff = FLDEFF_SAND_FOOTPRINTS; StartSpriteAnim(sprite, gFieldEffectArguments[4]); } return 0; @@ -582,16 +571,15 @@ u32 FldEff_SandFootprints(void) u32 FldEff_DeepSandFootprints(void) { u8 spriteId; - struct Sprite *sprite; SetSpritePosToOffsetMapCoords((s16 *)&gFieldEffectArguments[0], (s16 *)&gFieldEffectArguments[1], 8, 8); spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[FLDEFFOBJ_DEEP_SAND_FOOTPRINTS], gFieldEffectArguments[0], gFieldEffectArguments[1], gFieldEffectArguments[2]); if (spriteId != MAX_SPRITES) { - sprite = &gSprites[spriteId]; + struct Sprite *sprite = &gSprites[spriteId]; sprite->coordOffsetEnabled = TRUE; sprite->oam.priority = gFieldEffectArguments[3]; - sprite->data[7] = FLDEFF_DEEP_SAND_FOOTPRINTS; + sprite->sFldEff = FLDEFF_DEEP_SAND_FOOTPRINTS; StartSpriteAnim(sprite, gFieldEffectArguments[4]); } return spriteId; @@ -600,16 +588,15 @@ u32 FldEff_DeepSandFootprints(void) u32 FldEff_BikeTireTracks(void) { u8 spriteId; - struct Sprite *sprite; SetSpritePosToOffsetMapCoords((s16 *)&gFieldEffectArguments[0], (s16 *)&gFieldEffectArguments[1], 8, 8); spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[FLDEFFOBJ_BIKE_TIRE_TRACKS], gFieldEffectArguments[0], gFieldEffectArguments[1], gFieldEffectArguments[2]); if (spriteId != MAX_SPRITES) { - sprite = &gSprites[spriteId]; + struct Sprite *sprite = &gSprites[spriteId]; sprite->coordOffsetEnabled = TRUE; sprite->oam.priority = gFieldEffectArguments[3]; - sprite->data[7] = FLDEFF_BIKE_TIRE_TRACKS; + sprite->sFldEff = FLDEFF_BIKE_TIRE_TRACKS; StartSpriteAnim(sprite, gFieldEffectArguments[4]); } return spriteId; @@ -622,14 +609,14 @@ void (*const gFadeFootprintsTireTracksFuncs[])(struct Sprite *) = { void UpdateFootprintsTireTracksFieldEffect(struct Sprite *sprite) { - gFadeFootprintsTireTracksFuncs[sprite->data[0]](sprite); + gFadeFootprintsTireTracksFuncs[sprite->sState](sprite); } static void FadeFootprintsTireTracks_Step0(struct Sprite *sprite) { // Wait 40 frames before the flickering starts. - if (++sprite->data[1] > 40) - sprite->data[0] = 1; + if (++sprite->sTimer > 40) + sprite->sState = 1; UpdateObjectEventSpriteInvisibility(sprite, FALSE); } @@ -637,36 +624,37 @@ static void FadeFootprintsTireTracks_Step0(struct Sprite *sprite) static void FadeFootprintsTireTracks_Step1(struct Sprite *sprite) { sprite->invisible ^= 1; - sprite->data[1]++; + sprite->sTimer++; UpdateObjectEventSpriteInvisibility(sprite, sprite->invisible); - if (sprite->data[1] > 56) - { - FieldEffectStop(sprite, sprite->data[7]); - } + if (sprite->sTimer > 56) + FieldEffectStop(sprite, sprite->sFldEff); } +#undef sState +#undef sTimer +#undef sFldEff + +// Sprite data for FLDEFF_SPLASH +#define sLocalId data[0] +#define sMapNum data[1] +#define sMapGroup data[2] + u32 FldEff_Splash(void) { - u8 objectEventId; - struct ObjectEvent *objectEvent; - u8 spriteId; - struct Sprite *sprite; - const struct ObjectEventGraphicsInfo *graphicsInfo; - struct Sprite *linkedSprite; - - objectEventId = GetObjectEventIdByLocalIdAndMap(gFieldEffectArguments[0], gFieldEffectArguments[1], gFieldEffectArguments[2]); - objectEvent = &gObjectEvents[objectEventId]; - spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[FLDEFFOBJ_SPLASH], 0, 0, 0); + u8 objectEventId = GetObjectEventIdByLocalIdAndMap(gFieldEffectArguments[0], gFieldEffectArguments[1], gFieldEffectArguments[2]); + struct ObjectEvent *objectEvent = &gObjectEvents[objectEventId]; + u8 spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[FLDEFFOBJ_SPLASH], 0, 0, 0); if (spriteId != MAX_SPRITES) { - graphicsInfo = GetObjectEventGraphicsInfo(objectEvent->graphicsId); - sprite = &gSprites[spriteId]; + struct Sprite *linkedSprite; + const struct ObjectEventGraphicsInfo *graphicsInfo = GetObjectEventGraphicsInfo(objectEvent->graphicsId); + struct Sprite *sprite = &gSprites[spriteId]; sprite->coordOffsetEnabled = TRUE; linkedSprite = &gSprites[objectEvent->spriteId]; sprite->oam.priority = linkedSprite->oam.priority; - sprite->data[0] = gFieldEffectArguments[0]; - sprite->data[1] = gFieldEffectArguments[1]; - sprite->data[2] = gFieldEffectArguments[2]; + sprite->sLocalId = gFieldEffectArguments[0]; + sprite->sMapNum = gFieldEffectArguments[1]; + sprite->sMapGroup = gFieldEffectArguments[2]; sprite->y2 = (graphicsInfo->height >> 1) - 4; PlaySE(SE_PUDDLE); } @@ -677,7 +665,7 @@ void UpdateSplashFieldEffect(struct Sprite *sprite) { u8 objectEventId; - if (sprite->animEnded || TryGetObjectEventIdByLocalIdAndMap(sprite->data[0], sprite->data[1], sprite->data[2], &objectEventId)) + if (sprite->animEnded || TryGetObjectEventIdByLocalIdAndMap(sprite->sLocalId, sprite->sMapNum, sprite->sMapGroup, &objectEventId)) { FieldEffectStop(sprite, FLDEFF_SPLASH); } @@ -689,20 +677,23 @@ void UpdateSplashFieldEffect(struct Sprite *sprite) } } +#undef sLocalId +#undef sMapNum +#undef sMapGroup + u32 FldEff_JumpSmallSplash(void) { u8 spriteId; - struct Sprite *sprite; SetSpritePosToOffsetMapCoords((s16 *)&gFieldEffectArguments[0], (s16 *)&gFieldEffectArguments[1], 8, 12); spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[FLDEFFOBJ_JUMP_SMALL_SPLASH], gFieldEffectArguments[0], gFieldEffectArguments[1], 0); if (spriteId != MAX_SPRITES) { - sprite = &gSprites[spriteId]; + struct Sprite *sprite = &gSprites[spriteId]; sprite->coordOffsetEnabled = TRUE; sprite->oam.priority = gFieldEffectArguments[3]; - sprite->data[0] = gFieldEffectArguments[2]; - sprite->data[1] = FLDEFF_JUMP_SMALL_SPLASH; + sprite->sJumpElevation = gFieldEffectArguments[2]; + sprite->sJumpFldEff = FLDEFF_JUMP_SMALL_SPLASH; } return 0; } @@ -710,44 +701,44 @@ u32 FldEff_JumpSmallSplash(void) u32 FldEff_JumpBigSplash(void) { u8 spriteId; - struct Sprite *sprite; SetSpritePosToOffsetMapCoords((s16 *)&gFieldEffectArguments[0], (s16 *)&gFieldEffectArguments[1], 8, 8); spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[FLDEFFOBJ_JUMP_BIG_SPLASH], gFieldEffectArguments[0], gFieldEffectArguments[1], 0); if (spriteId != MAX_SPRITES) { - sprite = &gSprites[spriteId]; + struct Sprite *sprite = &gSprites[spriteId]; sprite->coordOffsetEnabled = TRUE; sprite->oam.priority = gFieldEffectArguments[3]; - sprite->data[0] = gFieldEffectArguments[2]; - sprite->data[1] = FLDEFF_JUMP_BIG_SPLASH; + sprite->sJumpElevation = gFieldEffectArguments[2]; + sprite->sJumpFldEff = FLDEFF_JUMP_BIG_SPLASH; } return 0; } +// Sprite data for FLDEFF_FEET_IN_FLOWING_WATER +#define sLocalId data[0] +#define sMapNum data[1] +#define sMapGroup data[2] +#define sPrevX data[3] +#define sPrevY data[4] + u32 FldEff_FeetInFlowingWater(void) { - u8 objectEventId; - struct ObjectEvent *objectEvent; - u8 spriteId; - struct Sprite *sprite; - const struct ObjectEventGraphicsInfo *graphicsInfo; - - objectEventId = GetObjectEventIdByLocalIdAndMap(gFieldEffectArguments[0], gFieldEffectArguments[1], gFieldEffectArguments[2]); - objectEvent = &gObjectEvents[objectEventId]; - spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[FLDEFFOBJ_SPLASH], 0, 0, 0); + u8 objectEventId = GetObjectEventIdByLocalIdAndMap(gFieldEffectArguments[0], gFieldEffectArguments[1], gFieldEffectArguments[2]); + struct ObjectEvent *objectEvent = &gObjectEvents[objectEventId]; + u8 spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[FLDEFFOBJ_SPLASH], 0, 0, 0); if (spriteId != MAX_SPRITES) { - graphicsInfo = GetObjectEventGraphicsInfo(objectEvent->graphicsId); - sprite = &gSprites[spriteId]; + const struct ObjectEventGraphicsInfo *graphicsInfo = GetObjectEventGraphicsInfo(objectEvent->graphicsId); + struct Sprite *sprite = &gSprites[spriteId]; sprite->callback = UpdateFeetInFlowingWaterFieldEffect; sprite->coordOffsetEnabled = TRUE; sprite->oam.priority = gSprites[objectEvent->spriteId].oam.priority; - sprite->data[0] = gFieldEffectArguments[0]; - sprite->data[1] = gFieldEffectArguments[1]; - sprite->data[2] = gFieldEffectArguments[2]; - sprite->data[3] = -1; - sprite->data[4] = -1; + sprite->sLocalId = gFieldEffectArguments[0]; + sprite->sMapNum = gFieldEffectArguments[1]; + sprite->sMapGroup = gFieldEffectArguments[2]; + sprite->sPrevX = -1; + sprite->sPrevY = -1; sprite->y2 = (graphicsInfo->height >> 1) - 4; StartSpriteAnim(sprite, 1); } @@ -757,69 +748,70 @@ u32 FldEff_FeetInFlowingWater(void) static void UpdateFeetInFlowingWaterFieldEffect(struct Sprite *sprite) { u8 objectEventId; - struct Sprite *linkedSprite; - struct ObjectEvent *objectEvent; - if (TryGetObjectEventIdByLocalIdAndMap(sprite->data[0], sprite->data[1], sprite->data[2], &objectEventId) || !gObjectEvents[objectEventId].inShallowFlowingWater) + if (TryGetObjectEventIdByLocalIdAndMap(sprite->sLocalId, sprite->sMapNum, sprite->sMapGroup, &objectEventId) || !gObjectEvents[objectEventId].inShallowFlowingWater) { FieldEffectStop(sprite, FLDEFF_FEET_IN_FLOWING_WATER); } else { - objectEvent = &gObjectEvents[objectEventId]; - linkedSprite = &gSprites[objectEvent->spriteId]; + struct ObjectEvent *objectEvent = &gObjectEvents[objectEventId]; + struct Sprite *linkedSprite = &gSprites[objectEvent->spriteId]; sprite->x = linkedSprite->x; sprite->y = linkedSprite->y; sprite->subpriority = linkedSprite->subpriority; UpdateObjectEventSpriteInvisibility(sprite, FALSE); - if (objectEvent->currentCoords.x != sprite->data[3] || objectEvent->currentCoords.y != sprite->data[4]) + if (objectEvent->currentCoords.x != sprite->sPrevX || objectEvent->currentCoords.y != sprite->sPrevY) { - sprite->data[3] = objectEvent->currentCoords.x; - sprite->data[4] = objectEvent->currentCoords.y; + sprite->sPrevX = objectEvent->currentCoords.x; + sprite->sPrevY = objectEvent->currentCoords.y; if (!sprite->invisible) - { PlaySE(SE_PUDDLE); - } } } } +#undef sLocalId +#undef sMapNum +#undef sMapGroup +#undef sPrevX +#undef sPrevY + u32 FldEff_Ripple(void) { - u8 spriteId; - struct Sprite *sprite; - - spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[FLDEFFOBJ_RIPPLE], gFieldEffectArguments[0], gFieldEffectArguments[1], gFieldEffectArguments[2]); + u8 spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[FLDEFFOBJ_RIPPLE], gFieldEffectArguments[0], gFieldEffectArguments[1], gFieldEffectArguments[2]); if (spriteId != MAX_SPRITES) { - sprite = &gSprites[spriteId]; + struct Sprite *sprite = &gSprites[spriteId]; sprite->coordOffsetEnabled = TRUE; sprite->oam.priority = gFieldEffectArguments[3]; - sprite->data[0] = FLDEFF_RIPPLE; + sprite->sWaitFldEff = FLDEFF_RIPPLE; } return 0; } +// Sprite data for FLDEFF_HOT_SPRINGS_WATER +#define sLocalId data[0] +#define sMapNum data[1] +#define sMapGroup data[2] +#define sPrevX data[3] +#define sPrevY data[4] + u32 FldEff_HotSpringsWater(void) { - u8 objectEventId; - struct ObjectEvent *objectEvent; - u8 spriteId; - struct Sprite *sprite; - - objectEventId = GetObjectEventIdByLocalIdAndMap(gFieldEffectArguments[0], gFieldEffectArguments[1], gFieldEffectArguments[2]); - objectEvent = &gObjectEvents[objectEventId]; - spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[FLDEFFOBJ_HOT_SPRINGS_WATER], 0, 0, 0); + u8 objectEventId = GetObjectEventIdByLocalIdAndMap(gFieldEffectArguments[0], gFieldEffectArguments[1], gFieldEffectArguments[2]); + struct ObjectEvent *objectEvent = &gObjectEvents[objectEventId]; + u8 spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[FLDEFFOBJ_HOT_SPRINGS_WATER], 0, 0, 0); if (spriteId != MAX_SPRITES) { - sprite = &gSprites[spriteId]; + struct Sprite *sprite = &gSprites[spriteId]; sprite->coordOffsetEnabled = TRUE; sprite->oam.priority = gSprites[objectEvent->spriteId].oam.priority; - sprite->data[0] = gFieldEffectArguments[0]; - sprite->data[1] = gFieldEffectArguments[1]; - sprite->data[2] = gFieldEffectArguments[2]; - sprite->data[3] = gSprites[objectEvent->spriteId].x; - sprite->data[4] = gSprites[objectEvent->spriteId].y; + sprite->sLocalId = gFieldEffectArguments[0]; + sprite->sMapNum = gFieldEffectArguments[1]; + sprite->sMapGroup = gFieldEffectArguments[2]; + sprite->sPrevX = gSprites[objectEvent->spriteId].x; // Unused + sprite->sPrevY = gSprites[objectEvent->spriteId].y; // Unused } return 0; } @@ -827,17 +819,15 @@ u32 FldEff_HotSpringsWater(void) void UpdateHotSpringsWaterFieldEffect(struct Sprite *sprite) { u8 objectEventId; - const struct ObjectEventGraphicsInfo *graphicsInfo; - struct Sprite *linkedSprite; - if (TryGetObjectEventIdByLocalIdAndMap(sprite->data[0], sprite->data[1], sprite->data[2], &objectEventId) || !gObjectEvents[objectEventId].inHotSprings) + if (TryGetObjectEventIdByLocalIdAndMap(sprite->sLocalId, sprite->sMapNum, sprite->sMapGroup, &objectEventId) || !gObjectEvents[objectEventId].inHotSprings) { FieldEffectStop(sprite, FLDEFF_HOT_SPRINGS_WATER); } else { - graphicsInfo = GetObjectEventGraphicsInfo(gObjectEvents[objectEventId].graphicsId); - linkedSprite = &gSprites[gObjectEvents[objectEventId].spriteId]; + const struct ObjectEventGraphicsInfo *graphicsInfo = GetObjectEventGraphicsInfo(gObjectEvents[objectEventId].graphicsId); + struct Sprite *linkedSprite = &gSprites[gObjectEvents[objectEventId].spriteId]; sprite->x = linkedSprite->x; sprite->y = (graphicsInfo->height >> 1) + linkedSprite->y - 8; sprite->subpriority = linkedSprite->subpriority - 1; @@ -845,19 +835,24 @@ void UpdateHotSpringsWaterFieldEffect(struct Sprite *sprite) } } +#undef sLocalId +#undef sMapNum +#undef sMapGroup +#undef sPrevX +#undef sPrevY + u32 FldEff_UnusedGrass(void) { u8 spriteId; - struct Sprite *sprite; SetSpritePosToOffsetMapCoords((s16 *)&gFieldEffectArguments[0], (s16 *)&gFieldEffectArguments[1], 8, 8); spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[FLDEFFOBJ_UNUSED_GRASS], gFieldEffectArguments[0], gFieldEffectArguments[1], gFieldEffectArguments[2]); if (spriteId != MAX_SPRITES) { - sprite = &gSprites[spriteId]; + struct Sprite *sprite = &gSprites[spriteId]; sprite->coordOffsetEnabled = TRUE; sprite->oam.priority = gFieldEffectArguments[3]; - sprite->data[0] = FLDEFF_UNUSED_GRASS; + sprite->sWaitFldEff = FLDEFF_UNUSED_GRASS; } return 0; } @@ -865,16 +860,15 @@ u32 FldEff_UnusedGrass(void) u32 FldEff_UnusedGrass2(void) { u8 spriteId; - struct Sprite *sprite; SetSpritePosToOffsetMapCoords((s16 *)&gFieldEffectArguments[0], (s16 *)&gFieldEffectArguments[1], 8, 8); spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[FLDEFFOBJ_UNUSED_GRASS_2], gFieldEffectArguments[0], gFieldEffectArguments[1], gFieldEffectArguments[2]); if (spriteId != MAX_SPRITES) { - sprite = &gSprites[spriteId]; + struct Sprite *sprite = &gSprites[spriteId]; sprite->coordOffsetEnabled = TRUE; sprite->oam.priority = gFieldEffectArguments[3]; - sprite->data[0] = FLDEFF_UNUSED_GRASS_2; + sprite->sWaitFldEff = FLDEFF_UNUSED_GRASS_2; } return 0; } @@ -882,16 +876,15 @@ u32 FldEff_UnusedGrass2(void) u32 FldEff_UnusedSand(void) { u8 spriteId; - struct Sprite *sprite; SetSpritePosToOffsetMapCoords((s16 *)&gFieldEffectArguments[0], (s16 *)&gFieldEffectArguments[1], 8, 8); spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[FLDEFFOBJ_UNUSED_SAND], gFieldEffectArguments[0], gFieldEffectArguments[1], gFieldEffectArguments[2]); if (spriteId != MAX_SPRITES) { - sprite = &gSprites[spriteId]; + struct Sprite *sprite = &gSprites[spriteId]; sprite->coordOffsetEnabled = TRUE; sprite->oam.priority = gFieldEffectArguments[3]; - sprite->data[0] = FLDEFF_UNUSED_SAND; + sprite->sWaitFldEff = FLDEFF_UNUSED_SAND; } return 0; } @@ -899,16 +892,15 @@ u32 FldEff_UnusedSand(void) u32 FldEff_WaterSurfacing(void) { u8 spriteId; - struct Sprite *sprite; SetSpritePosToOffsetMapCoords((s16 *)&gFieldEffectArguments[0], (s16 *)&gFieldEffectArguments[1], 8, 8); spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[FLDEFFOBJ_WATER_SURFACING], gFieldEffectArguments[0], gFieldEffectArguments[1], gFieldEffectArguments[2]); if (spriteId != MAX_SPRITES) { - sprite = &gSprites[spriteId]; + struct Sprite *sprite = &gSprites[spriteId]; sprite->coordOffsetEnabled = TRUE; sprite->oam.priority = gFieldEffectArguments[3]; - sprite->data[0] = FLDEFF_WATER_SURFACING; + sprite->sWaitFldEff = FLDEFF_WATER_SURFACING; } return 0; } @@ -933,18 +925,15 @@ void StartAshFieldEffect(s16 x, s16 y, u16 metatileId, s16 delay) u32 FldEff_Ash(void) { - s16 x; - s16 y; u8 spriteId; - struct Sprite *sprite; - x = gFieldEffectArguments[0]; - y = gFieldEffectArguments[1]; + s16 x = gFieldEffectArguments[0]; + s16 y = gFieldEffectArguments[1]; SetSpritePosToOffsetMapCoords(&x, &y, 8, 8); spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[FLDEFFOBJ_ASH], x, y, gFieldEffectArguments[2]); if (spriteId != MAX_SPRITES) { - sprite = &gSprites[spriteId]; + struct Sprite *sprite = &gSprites[spriteId]; sprite->coordOffsetEnabled = TRUE; sprite->oam.priority = gFieldEffectArguments[3]; sprite->sX = gFieldEffectArguments[0]; @@ -998,27 +987,30 @@ static void UpdateAshFieldEffect_End(struct Sprite *sprite) #undef sDelay // Sprite data for FLDEFF_SURF_BLOB -#define tBitfield data[0] -#define tPlayerOffset data[1] -#define tPlayerObjId data[2] - +#define sBitfield data[0] +#define sPlayerOffset data[1] +#define sPlayerObjId data[2] +#define sVelocity data[3] +#define sTimer data[4] +#define sIntervalIdx data[5] +#define sPrevX data[6] +#define sPrevY data[7] u32 FldEff_SurfBlob(void) { u8 spriteId; - struct Sprite *sprite; SetSpritePosToOffsetMapCoords((s16 *)&gFieldEffectArguments[0], (s16 *)&gFieldEffectArguments[1], 8, 8); - spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[FLDEFFOBJ_SURF_BLOB], gFieldEffectArguments[0], gFieldEffectArguments[1], 0x96); + spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[FLDEFFOBJ_SURF_BLOB], gFieldEffectArguments[0], gFieldEffectArguments[1], 150); if (spriteId != MAX_SPRITES) { - sprite = &gSprites[spriteId]; + struct Sprite *sprite = &gSprites[spriteId]; sprite->coordOffsetEnabled = TRUE; sprite->oam.paletteNum = 0; - sprite->tPlayerObjId = gFieldEffectArguments[2]; - sprite->data[3] = -1; - sprite->data[6] = -1; - sprite->data[7] = -1; + sprite->sPlayerObjId = gFieldEffectArguments[2]; + sprite->sVelocity = -1; + sprite->sPrevX = -1; + sprite->sPrevY = -1; } FieldEffectActiveListRemove(FLDEFF_SURF_BLOB); return spriteId; @@ -1027,43 +1019,40 @@ u32 FldEff_SurfBlob(void) void SetSurfBlob_BobState(u8 spriteId, u8 state) { - gSprites[spriteId].data[0] = (gSprites[spriteId].data[0] & ~0xF) | (state & 0xF); + gSprites[spriteId].sBitfield = (gSprites[spriteId].sBitfield & ~0xF) | (state & 0xF); } void SetSurfBlob_DontSyncAnim(u8 spriteId, bool8 dontSync) { - gSprites[spriteId].data[0] = (gSprites[spriteId].data[0] & ~0xF0) | ((dontSync & 0xF) << 4); + gSprites[spriteId].sBitfield = (gSprites[spriteId].sBitfield & ~0xF0) | ((dontSync & 0xF) << 4); } void SetSurfBlob_PlayerOffset(u8 spriteId, bool8 hasOffset, s16 offset) { - gSprites[spriteId].data[0] = (gSprites[spriteId].data[0] & ~0xF00) | ((hasOffset & 0xF) << 8); - gSprites[spriteId].tPlayerOffset = offset; + gSprites[spriteId].sBitfield = (gSprites[spriteId].sBitfield & ~0xF00) | ((hasOffset & 0xF) << 8); + gSprites[spriteId].sPlayerOffset = offset; } static u8 GetSurfBlob_BobState(struct Sprite *sprite) { - return sprite->data[0] & 0xF; + return sprite->sBitfield & 0xF; } // Never TRUE static u8 GetSurfBlob_DontSyncAnim(struct Sprite *sprite) { - return (sprite->data[0] & 0xF0) >> 4; + return (sprite->sBitfield & 0xF0) >> 4; } static u8 GetSurfBlob_HasPlayerOffset(struct Sprite *sprite) { - return (sprite->data[0] & 0xF00) >> 8; + return (sprite->sBitfield & 0xF00) >> 8; } void UpdateSurfBlobFieldEffect(struct Sprite *sprite) { - struct ObjectEvent *playerObj; - struct Sprite *playerSprite; - - playerObj = &gObjectEvents[sprite->tPlayerObjId]; - playerSprite = &gSprites[playerObj->spriteId]; + struct ObjectEvent *playerObj = &gObjectEvents[sprite->sPlayerObjId]; + struct Sprite *playerSprite = &gSprites[playerObj->spriteId]; SynchroniseSurfAnim(playerObj, sprite); SynchroniseSurfPosition(playerObj, sprite); UpdateBobbingEffect(playerObj, playerSprite, sprite); @@ -1096,17 +1085,19 @@ void SynchroniseSurfPosition(struct ObjectEvent *playerObj, struct Sprite *sprit s16 y = playerObj->currentCoords.y; s32 spriteY = sprite->y2; - if (spriteY == 0 && (x != sprite->data[6] || y != sprite->data[7])) + if (spriteY == 0 && (x != sprite->sPrevX || y != sprite->sPrevY)) { - sprite->data[5] = spriteY; - sprite->data[6] = x; - sprite->data[7] = y; - for (i = DIR_SOUTH; i <= DIR_EAST; i++, x = sprite->data[6], y = sprite->data[7]) + // Player is moving while surfing, update position. + sprite->sIntervalIdx = 0; + sprite->sPrevX = x; + sprite->sPrevY = y; + for (i = DIR_SOUTH; i <= DIR_EAST; i++, x = sprite->sPrevX, y = sprite->sPrevY) { MoveCoords(i, &x, &y); if (MapGridGetElevationAt(x, y) == 3) { - sprite->data[5]++; + // While dismounting the surf blob bobs at a slower rate + sprite->sIntervalIdx++; break; } } @@ -1115,46 +1106,54 @@ void SynchroniseSurfPosition(struct ObjectEvent *playerObj, struct Sprite *sprit static void UpdateBobbingEffect(struct ObjectEvent *playerObj, struct Sprite *playerSprite, struct Sprite *sprite) { - u16 intervals[] = {3, 7}; + // The frame interval at which to update the blob's y movement. + // Normally every 4th frame, but every 8th frame while dismounting. + u16 intervals[] = {0x3, 0x7}; + u8 bobState = GetSurfBlob_BobState(sprite); if (bobState != BOB_NONE) { - // Update bobbing position of surf blob - if (((u16)(++sprite->data[4]) & intervals[sprite->data[5]]) == 0) - { - sprite->y2 += sprite->data[3]; - } - if ((sprite->data[4] & 15) == 0) - { - sprite->data[3] = -sprite->data[3]; - } + // Update vertical position of surf blob + if (((u16)(++sprite->sTimer) & intervals[sprite->sIntervalIdx]) == 0) + sprite->y2 += sprite->sVelocity; + + // Reverse bob direction + if ((sprite->sTimer & 15) == 0) + sprite->sVelocity = -sprite->sVelocity; + if (bobState != BOB_JUST_MON) { - // Update bobbing position of player + // Update vertical position of player if (!GetSurfBlob_HasPlayerOffset(sprite)) playerSprite->y2 = sprite->y2; else - playerSprite->y2 = sprite->tPlayerOffset + sprite->y2; + playerSprite->y2 = sprite->sPlayerOffset + sprite->y2; sprite->x = playerSprite->x; sprite->y = playerSprite->y + 8; } } } +#undef sBitfield +#undef sPlayerOffset +#undef sPlayerObjId +#undef sVelocity +#undef sTimer +#undef sIntervalIdx +#undef sPrevX +#undef sPrevY + #define sSpriteId data[0] #define sBobY data[1] #define sTimer data[2] u8 StartUnderwaterSurfBlobBobbing(u8 blobSpriteId) { - u8 spriteId; - struct Sprite *sprite; - // Create a dummy sprite with its own callback // that tracks the actual surf blob sprite and // makes it bob up and down underwater - spriteId = CreateSpriteAtEnd(&gDummySpriteTemplate, 0, 0, -1); - sprite = &gSprites[spriteId]; + u8 spriteId = CreateSpriteAtEnd(&gDummySpriteTemplate, 0, 0, -1); + struct Sprite *sprite = &gSprites[spriteId]; sprite->callback = SpriteCB_UnderwaterSurfBlob; sprite->invisible = TRUE; sprite->sSpriteId = blobSpriteId; @@ -1164,17 +1163,14 @@ u8 StartUnderwaterSurfBlobBobbing(u8 blobSpriteId) static void SpriteCB_UnderwaterSurfBlob(struct Sprite *sprite) { - struct Sprite *blobSprite; + struct Sprite *blobSprite = &gSprites[sprite->sSpriteId]; - blobSprite = &gSprites[sprite->sSpriteId]; + // Update vertical position of surf blob if (((sprite->sTimer++) & 3) == 0) - { blobSprite->y2 += sprite->sBobY; - } + // Reverse direction if ((sprite->sTimer & 15) == 0) - { sprite->sBobY = -sprite->sBobY; - } } #undef sSpriteId @@ -1184,43 +1180,43 @@ static void SpriteCB_UnderwaterSurfBlob(struct Sprite *sprite) u32 FldEff_Dust(void) { u8 spriteId; - struct Sprite *sprite; SetSpritePosToOffsetMapCoords((s16 *)&gFieldEffectArguments[0], (s16 *)&gFieldEffectArguments[1], 8, 12); spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[FLDEFFOBJ_GROUND_IMPACT_DUST], gFieldEffectArguments[0], gFieldEffectArguments[1], 0); if (spriteId != MAX_SPRITES) { - sprite = &gSprites[spriteId]; + struct Sprite *sprite = &gSprites[spriteId]; sprite->coordOffsetEnabled = TRUE; sprite->oam.priority = gFieldEffectArguments[3]; - sprite->data[0] = gFieldEffectArguments[2]; - sprite->data[1] = FLDEFF_DUST; + sprite->sJumpElevation = gFieldEffectArguments[2]; + sprite->sJumpFldEff = FLDEFF_DUST; } return 0; } +// Sprite data for FLDEFF_SAND_PILE +#define sLocalId data[0] +#define sMapNum data[1] +#define sMapGroup data[2] +#define sPrevX data[3] +#define sPrevY data[4] + u32 FldEff_SandPile(void) { - u8 objectEventId; - struct ObjectEvent *objectEvent; - u8 spriteId; - struct Sprite *sprite; - const struct ObjectEventGraphicsInfo *graphicsInfo; - - objectEventId = GetObjectEventIdByLocalIdAndMap(gFieldEffectArguments[0], gFieldEffectArguments[1], gFieldEffectArguments[2]); - objectEvent = &gObjectEvents[objectEventId]; - spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[FLDEFFOBJ_SAND_PILE], 0, 0, 0); + u8 objectEventId = GetObjectEventIdByLocalIdAndMap(gFieldEffectArguments[0], gFieldEffectArguments[1], gFieldEffectArguments[2]); + struct ObjectEvent *objectEvent = &gObjectEvents[objectEventId]; + u8 spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[FLDEFFOBJ_SAND_PILE], 0, 0, 0); if (spriteId != MAX_SPRITES) { - graphicsInfo = GetObjectEventGraphicsInfo(objectEvent->graphicsId); - sprite = &gSprites[spriteId]; + const struct ObjectEventGraphicsInfo *graphicsInfo = GetObjectEventGraphicsInfo(objectEvent->graphicsId); + struct Sprite *sprite = &gSprites[spriteId]; sprite->coordOffsetEnabled = TRUE; sprite->oam.priority = gSprites[objectEvent->spriteId].oam.priority; - sprite->data[0] = gFieldEffectArguments[0]; - sprite->data[1] = gFieldEffectArguments[1]; - sprite->data[2] = gFieldEffectArguments[2]; - sprite->data[3] = gSprites[objectEvent->spriteId].x; - sprite->data[4] = gSprites[objectEvent->spriteId].y; + sprite->sLocalId = gFieldEffectArguments[0]; + sprite->sMapNum = gFieldEffectArguments[1]; + sprite->sMapGroup = gFieldEffectArguments[2]; + sprite->sPrevX = gSprites[objectEvent->spriteId].x; + sprite->sPrevY = gSprites[objectEvent->spriteId].y; sprite->y2 = (graphicsInfo->height >> 1) - 2; SeekSpriteAnim(sprite, 2); } @@ -1230,81 +1226,85 @@ u32 FldEff_SandPile(void) void UpdateSandPileFieldEffect(struct Sprite *sprite) { u8 objectEventId; - s16 x; - s16 y; - if (TryGetObjectEventIdByLocalIdAndMap(sprite->data[0], sprite->data[1], sprite->data[2], &objectEventId) || !gObjectEvents[objectEventId].inSandPile) + if (TryGetObjectEventIdByLocalIdAndMap(sprite->sLocalId, sprite->sMapNum, sprite->sMapGroup, &objectEventId) || !gObjectEvents[objectEventId].inSandPile) { FieldEffectStop(sprite, FLDEFF_SAND_PILE); } else { - y = gSprites[gObjectEvents[objectEventId].spriteId].y; - x = gSprites[gObjectEvents[objectEventId].spriteId].x; - if (x != sprite->data[3] || y != sprite->data[4]) + s16 parentY = gSprites[gObjectEvents[objectEventId].spriteId].y; + s16 parentX = gSprites[gObjectEvents[objectEventId].spriteId].x; + if (parentX != sprite->sPrevX || parentY != sprite->sPrevY) { - sprite->data[3] = x; - sprite->data[4] = y; + sprite->sPrevX = parentX; + sprite->sPrevY = parentY; if (sprite->animEnded) - { StartSpriteAnim(sprite, 0); - } } - sprite->x = x; - sprite->y = y; + sprite->x = parentX; + sprite->y = parentY; sprite->subpriority = gSprites[gObjectEvents[objectEventId].spriteId].subpriority; UpdateObjectEventSpriteInvisibility(sprite, FALSE); } } +#undef sLocalId +#undef sMapNum +#undef sMapGroup +#undef sPrevX +#undef sPrevY + u32 FldEff_Bubbles(void) { u8 spriteId; - struct Sprite *sprite; SetSpritePosToOffsetMapCoords((s16 *)&gFieldEffectArguments[0], (s16 *)&gFieldEffectArguments[1], 8, 0); - spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[FLDEFFOBJ_BUBBLES], gFieldEffectArguments[0], gFieldEffectArguments[1], 0x52); + spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[FLDEFFOBJ_BUBBLES], gFieldEffectArguments[0], gFieldEffectArguments[1], 82); if (spriteId != MAX_SPRITES) { - sprite = &gSprites[spriteId]; + struct Sprite *sprite = &gSprites[spriteId]; sprite->coordOffsetEnabled = TRUE; sprite->oam.priority = 1; } return 0; } +#define sY data[0] + void UpdateBubblesFieldEffect(struct Sprite *sprite) { - sprite->data[0] += 0x80; - sprite->data[0] &= 0x100; - sprite->y -= sprite->data[0] >> 8; + // Move up 1 every other frame. + sprite->sY += ((1 << 8) / 2); + sprite->sY &= (1 << 8); + sprite->y -= sprite->sY >> 8; UpdateObjectEventSpriteInvisibility(sprite, FALSE); if (sprite->invisible || sprite->animEnded) - { FieldEffectStop(sprite, FLDEFF_BUBBLES); - } } +#undef sY + u32 FldEff_BerryTreeGrowthSparkle(void) { u8 spriteId; - struct Sprite *sprite; SetSpritePosToOffsetMapCoords((s16 *)&gFieldEffectArguments[0], (s16 *)&gFieldEffectArguments[1], 8, 4); spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[FLDEFFOBJ_SPARKLE], gFieldEffectArguments[0], gFieldEffectArguments[1], gFieldEffectArguments[2]); if (spriteId != MAX_SPRITES) { - sprite = &gSprites[spriteId]; + struct Sprite *sprite = &gSprites[spriteId]; sprite->coordOffsetEnabled = TRUE; sprite->oam.priority = gFieldEffectArguments[3]; sprite->oam.paletteNum = 5; - sprite->data[0] = FLDEFF_BERRY_TREE_GROWTH_SPARKLE; + sprite->sWaitFldEff = FLDEFF_BERRY_TREE_GROWTH_SPARKLE; } return 0; } // Sprite data for FLDEFF_TREE_DISGUISE / FLDEFF_MOUNTAIN_DISGUISE / FLDEFF_SAND_DISGUISE #define sState data[0] +#define sFldEff data[1] #define sLocalId data[2] #define sMapNum data[3] #define sMapGroup data[4] @@ -1328,7 +1328,6 @@ u32 ShowSandDisguiseFieldEffect(void) static u32 ShowDisguiseFieldEffect(u8 fldEff, u8 fldEffObj, u8 paletteNum) { u8 spriteId; - struct Sprite *sprite; if (TryGetObjectEventIdByLocalIdAndMap(gFieldEffectArguments[0], gFieldEffectArguments[1], gFieldEffectArguments[2], &spriteId)) { @@ -1338,7 +1337,7 @@ static u32 ShowDisguiseFieldEffect(u8 fldEff, u8 fldEffObj, u8 paletteNum) spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[fldEffObj], 0, 0, 0); if (spriteId != MAX_SPRITES) { - sprite = &gSprites[spriteId]; + struct Sprite *sprite = &gSprites[spriteId]; sprite->coordOffsetEnabled ++; sprite->oam.paletteNum = paletteNum; sprite->sFldEff = fldEff; @@ -1405,6 +1404,7 @@ bool8 UpdateRevealDisguise(struct ObjectEvent *objectEvent) } #undef sState +#undef sFldEff #undef sLocalId #undef sMapNum #undef sMapGroup @@ -1421,7 +1421,7 @@ u32 FldEff_Sparkle(void) gFieldEffectArguments[0] += MAP_OFFSET; gFieldEffectArguments[1] += MAP_OFFSET; SetSpritePosToOffsetMapCoords((s16 *)&gFieldEffectArguments[0], (s16 *)&gFieldEffectArguments[1], 8, 8); - spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[FLDEFFOBJ_SMALL_SPARKLE], gFieldEffectArguments[0], gFieldEffectArguments[1], 0x52); + spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[FLDEFFOBJ_SMALL_SPARKLE], gFieldEffectArguments[0], gFieldEffectArguments[1], 82); if (spriteId != MAX_SPRITES) { gSprites[spriteId].oam.priority = gFieldEffectArguments[2]; @@ -1449,7 +1449,9 @@ void UpdateSparkleFieldEffect(struct Sprite *sprite) #undef sEndTimer #define sTimer data[0] +#define sMoveTimer data[1] #define sState data[2] +#define sVelocity data[3] #define sStartY data[4] #define sCounter data[5] #define sAnimCounter data[6] @@ -1615,41 +1617,44 @@ void UpdateRayquazaSpotlightEffect(struct Sprite *sprite) if (sprite->sState == 1) { - if ((sprite->data[1] & 7) == 0) - sprite->y2 += sprite->data[3]; - if ((sprite->data[1] & 15) == 0) - sprite->data[3] = -sprite->data[3]; - sprite->data[1]++; + // Update movement + if ((sprite->sMoveTimer & 7) == 0) + sprite->y2 += sprite->sVelocity; + // Reverse direction + if ((sprite->sMoveTimer & 15) == 0) + sprite->sVelocity = -sprite->sVelocity; + sprite->sMoveTimer++; } sprite->sTimer++; } #undef sTimer +#undef sMoveTimer #undef sState #undef sStartY +#undef sVelocity #undef sCounter #undef sAnimCounter #undef sAnimState -// Used by FLDEFF_JUMP_TALL_GRASS and FLDEFF_JUMP_LONG_GRASS void UpdateJumpImpactEffect(struct Sprite *sprite) { if (sprite->animEnded) { - FieldEffectStop(sprite, sprite->sFldEff); + FieldEffectStop(sprite, sprite->sJumpFldEff); } else { UpdateObjectEventSpriteInvisibility(sprite, FALSE); - SetObjectSubpriorityByElevation(sprite->sElevation, sprite, 0); + SetObjectSubpriorityByElevation(sprite->sJumpElevation, sprite, 0); } } void WaitFieldEffectSpriteAnim(struct Sprite *sprite) { if (sprite->animEnded) - FieldEffectStop(sprite, sprite->data[0]); + FieldEffectStop(sprite, sprite->sWaitFldEff); else UpdateObjectEventSpriteInvisibility(sprite, FALSE); } @@ -1658,8 +1663,6 @@ static void UpdateGrassFieldEffectSubpriority(struct Sprite *sprite, u8 elevatio { u8 i; s16 var, xhi, lyhi, yhi, ylo; - const struct ObjectEventGraphicsInfo UNUSED *graphicsInfo; - struct Sprite *linkedSprite; SetObjectSubpriorityByElevation(elevation, sprite, subpriority); for (i = 0; i < OBJECT_EVENTS_COUNT; i ++) @@ -1667,8 +1670,9 @@ static void UpdateGrassFieldEffectSubpriority(struct Sprite *sprite, u8 elevatio struct ObjectEvent *objectEvent = &gObjectEvents[i]; if (objectEvent->active) { - graphicsInfo = GetObjectEventGraphicsInfo(objectEvent->graphicsId); - linkedSprite = &gSprites[objectEvent->spriteId]; + const struct ObjectEventGraphicsInfo UNUSED *graphicsInfo = GetObjectEventGraphicsInfo(objectEvent->graphicsId); + struct Sprite *linkedSprite = &gSprites[objectEvent->spriteId]; + xhi = sprite->x + sprite->centerToCornerVecX; var = sprite->x - sprite->centerToCornerVecX; if (xhi < linkedSprite->x && var > linkedSprite->x) diff --git a/src/graphics.c b/src/graphics.c index d152d081c0..45c066ad26 100644 --- a/src/graphics.c +++ b/src/graphics.c @@ -451,6 +451,12 @@ const u32 gBattleAnimSpritePal_WoodHammerHammer[] = INCBIN_U32("graphics/battle_ const u32 gBattleAnimSpriteGfx_Snowflakes[] = INCBIN_U32("graphics/battle_anims/sprites/snowflakes.4bpp.lz"); const u32 gBattleAnimSpritePal_Snowflakes[] = INCBIN_U32("graphics/battle_anims/sprites/snowflakes.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_SyrupBlob[] = INCBIN_U32("graphics/battle_anims/sprites/syrup_bomb_blob.4bpp.lz"); +const u32 gBattleAnimSpriteGfx_SyrupShell[] = INCBIN_U32("graphics/battle_anims/sprites/syrup_bomb_shell.4bpp.lz"); +const u32 gBattleAnimSpriteGfx_SyrupSplat[] = INCBIN_U32("graphics/battle_anims/sprites/syrup_bomb_splat.4bpp.lz"); +const u32 gBattleAnimSpritePal_SyrupRed[] = INCBIN_U32("graphics/battle_anims/sprites/syrup_red.gbapal.lz"); +const u32 gBattleAnimSpritePal_SyrupYellow[] = INCBIN_U32("graphics/battle_anims/sprites/syrup_yellow.gbapal.lz"); + // old battle interface data, unused const u32 gOldBattleInterfaceGfx[] = INCBIN_U32("graphics/unused/obi1.4bpp.lz"); diff --git a/src/map_name_popup.c b/src/map_name_popup.c index 9c9c85cf59..75e70dafc1 100644 --- a/src/map_name_popup.c +++ b/src/map_name_popup.c @@ -205,22 +205,45 @@ static bool8 UNUSED StartMenu_ShowMapNamePopup(void) return TRUE; } +// States and data defines for Task_MapNamePopUpWindow +enum { + STATE_SLIDE_IN, + STATE_WAIT, + STATE_SLIDE_OUT, + STATE_UNUSED, + STATE_ERASE, + STATE_END, + STATE_PRINT, // For some reason the first state is numerically last. +}; + +#define POPUP_OFFSCREEN_Y 40 +#define POPUP_SLIDE_SPEED 2 + +#define tState data[0] +#define tOnscreenTimer data[1] +#define tYOffset data[2] +#define tIncomingPopUp data[3] +#define tPrintTimer data[4] + void ShowMapNamePopup(void) { if (FlagGet(FLAG_HIDE_MAP_NAME_POPUP) != TRUE) { if (!FuncIsActiveTask(Task_MapNamePopUpWindow)) { + // New pop up window sPopupTaskId = CreateTask(Task_MapNamePopUpWindow, 90); - SetGpuReg(REG_OFFSET_BG0VOFS, 40); - gTasks[sPopupTaskId].data[0] = 6; - gTasks[sPopupTaskId].data[2] = 40; + SetGpuReg(REG_OFFSET_BG0VOFS, POPUP_OFFSCREEN_Y); + gTasks[sPopupTaskId].tState = STATE_PRINT; + gTasks[sPopupTaskId].tYOffset = POPUP_OFFSCREEN_Y; } else { - if (gTasks[sPopupTaskId].data[0] != 2) - gTasks[sPopupTaskId].data[0] = 2; - gTasks[sPopupTaskId].data[3] = 1; + // There's already a pop up window running. + // Hurry the old pop up offscreen so the new one can appear. + if (gTasks[sPopupTaskId].tState != STATE_SLIDE_OUT) + gTasks[sPopupTaskId].tState = STATE_SLIDE_OUT; + gTasks[sPopupTaskId].tIncomingPopUp = TRUE; } } } @@ -229,61 +252,65 @@ static void Task_MapNamePopUpWindow(u8 taskId) { struct Task *task = &gTasks[taskId]; - switch (task->data[0]) + switch (task->tState) { - case 6: - task->data[4]++; - if (task->data[4] > 30) + case STATE_PRINT: + // Wait, then create and print the pop up window + if (++task->tPrintTimer > 30) { - task->data[0] = 0; - task->data[4] = 0; + task->tState = STATE_SLIDE_IN; + task->tPrintTimer = 0; ShowMapNamePopUpWindow(); } break; - case 0: - task->data[2] -= 2; - if (task->data[2] <= 0 ) + case STATE_SLIDE_IN: + // Slide the window onscreen. + task->tYOffset -= POPUP_SLIDE_SPEED; + if (task->tYOffset <= 0 ) { - task->data[2] = 0; - task->data[0] = 1; + task->tYOffset = 0; + task->tState = STATE_WAIT; gTasks[sPopupTaskId].data[1] = 0; } break; - case 1: - task->data[1]++; - if (task->data[1] > 120 ) + case STATE_WAIT: + // Wait while the window is fully onscreen. + if (++task->tOnscreenTimer > 120) { - task->data[1] = 0; - task->data[0] = 2; + task->tOnscreenTimer = 0; + task->tState = STATE_SLIDE_OUT; } break; - case 2: - task->data[2] += 2; - if (task->data[2] > 39) + case STATE_SLIDE_OUT: + // Slide the window offscreen. + task->tYOffset += POPUP_SLIDE_SPEED; + if (task->tYOffset >= POPUP_OFFSCREEN_Y) { - task->data[2] = 40; - if (task->data[3]) + task->tYOffset = POPUP_OFFSCREEN_Y; + if (task->tIncomingPopUp) { - task->data[0] = 6; - task->data[4] = 0; - task->data[3] = 0; + // A new pop up window is incoming, + // return to the first state to show it. + task->tState = STATE_PRINT; + task->tPrintTimer = 0; + task->tIncomingPopUp = FALSE; } else { - task->data[0] = 4; + task->tState = STATE_ERASE; return; } } break; - case 4: + case STATE_ERASE: ClearStdWindowAndFrame(GetMapNamePopUpWindowId(), TRUE); - task->data[0] = 5; + task->tState = STATE_END; break; - case 5: + case STATE_END: HideMapNamePopUpWindow(); return; } - SetGpuReg(REG_OFFSET_BG0VOFS, task->data[2]); + SetGpuReg(REG_OFFSET_BG0VOFS, task->tYOffset); } void HideMapNamePopUpWindow(void) diff --git a/src/menu_specialized.c b/src/menu_specialized.c index 456845e868..df3685ecfd 100644 --- a/src/menu_specialized.c +++ b/src/menu_specialized.c @@ -588,7 +588,7 @@ static void ConditionGraph_CalcRightHalf(struct ConditionGraph *graph) // No need for conditional, positions on the Beauty line are always above the Cute line ConditionGraph_CalcLine(graph, graph->scanlineRight[0], &graph->curPositions[GRAPH_BEAUTY], &graph->curPositions[GRAPH_CUTE], TRUE, NULL); - // Calculate Cute -> Tough line (includes left scanline because this crosses the halfway point) + // Calculate Cute -> Smart line (includes left scanline because this crosses the halfway point) i = (graph->curPositions[GRAPH_CUTE].y <= graph->curPositions[GRAPH_SMART].y); ConditionGraph_CalcLine(graph, graph->scanlineRight[0], &graph->curPositions[GRAPH_CUTE], &graph->curPositions[GRAPH_SMART], i, graph->scanlineLeft[0]); diff --git a/src/mini_printf.c b/src/mini_printf.c index 9fb4ecfac9..2a8c6e5cb7 100644 --- a/src/mini_printf.c +++ b/src/mini_printf.c @@ -328,7 +328,7 @@ s32 mini_vpprintf(void* buf, const char *fmt, va_list va) break; case 'S' : // preproc encoded string handler ptr = va_arg(va, char*); - len = StringLength(ptr); + len = StringLength((u8*)ptr); if (pad_to > 0) { len = mini_pad(ptr, len, pad_char, pad_to, bf); diff --git a/src/player_pc.c b/src/player_pc.c index 07cc2dba7c..a10cb2ac2b 100644 --- a/src/player_pc.c +++ b/src/player_pc.c @@ -222,7 +222,7 @@ static const struct MenuAction sItemStorage_MenuActions[] = [MENU_EXIT] = { gText_Cancel, {ItemStorage_Exit} } }; -static const struct ItemSlot sNewGamePCItems[] = +static const u16 sNewGamePCItems[][2] = { { ITEM_POTION, 1 }, { ITEM_NONE, 0 } @@ -355,16 +355,20 @@ static const struct WindowTemplate sWindowTemplates_ItemStorage[ITEMPC_WIN_COUNT static const u8 sSwapArrowTextColors[] = {TEXT_COLOR_WHITE, TEXT_COLOR_LIGHT_GRAY, TEXT_COLOR_DARK_GRAY}; -// Macro below is likely a fakematch, equivalent to sNewGamePCItems[i].quantity -#define GET_QUANTITY(i) ((u16)((u16 *)sNewGamePCItems + 1)[i * 2]) void NewGameInitPCItems(void) { u8 i = 0; ClearItemSlots(gSaveBlock1Ptr->pcItems, PC_ITEMS_COUNT); - for(; sNewGamePCItems[i].itemId != ITEM_NONE && GET_QUANTITY(i) && - AddPCItem(sNewGamePCItems[i].itemId, GET_QUANTITY(i)) == TRUE; i++); + + while (TRUE) + { + if (sNewGamePCItems[i][0] == ITEM_NONE || sNewGamePCItems[i][1] == 0) + break; + if (AddPCItem(sNewGamePCItems[i][0], sNewGamePCItems[i][1]) != TRUE) + break; + i++; + } } -#undef GET_QUANTITY void BedroomPC(void) { diff --git a/src/pokemon.c b/src/pokemon.c index 7ffb8c20ce..2c33806619 100644 --- a/src/pokemon.c +++ b/src/pokemon.c @@ -1235,6 +1235,68 @@ static const u16 sSpeciesToNationalPokedexNum[NUM_SPECIES - 1] = SPECIES_TO_NATIONAL(RUNERIGUS), SPECIES_TO_NATIONAL(MILCERY), SPECIES_TO_NATIONAL(ALCREMIE), + [SPECIES_ALCREMIE_STRAWBERRY_RUBY_CREAM - 1] = NATIONAL_DEX_ALCREMIE, + [SPECIES_ALCREMIE_STRAWBERRY_MATCHA_CREAM - 1] = NATIONAL_DEX_ALCREMIE, + [SPECIES_ALCREMIE_STRAWBERRY_MINT_CREAM - 1] = NATIONAL_DEX_ALCREMIE, + [SPECIES_ALCREMIE_STRAWBERRY_LEMON_CREAM - 1] = NATIONAL_DEX_ALCREMIE, + [SPECIES_ALCREMIE_STRAWBERRY_SALTED_CREAM - 1] = NATIONAL_DEX_ALCREMIE, + [SPECIES_ALCREMIE_STRAWBERRY_RUBY_SWIRL - 1] = NATIONAL_DEX_ALCREMIE, + [SPECIES_ALCREMIE_STRAWBERRY_CARAMEL_SWIRL - 1] = NATIONAL_DEX_ALCREMIE, + [SPECIES_ALCREMIE_STRAWBERRY_RAINBOW_SWIRL - 1] = NATIONAL_DEX_ALCREMIE, + [SPECIES_ALCREMIE_BERRY_VANILLA_CREAM - 1] = NATIONAL_DEX_ALCREMIE, + [SPECIES_ALCREMIE_BERRY_RUBY_CREAM - 1] = NATIONAL_DEX_ALCREMIE, + [SPECIES_ALCREMIE_BERRY_MATCHA_CREAM - 1] = NATIONAL_DEX_ALCREMIE, + [SPECIES_ALCREMIE_BERRY_MINT_CREAM - 1] = NATIONAL_DEX_ALCREMIE, + [SPECIES_ALCREMIE_BERRY_LEMON_CREAM - 1] = NATIONAL_DEX_ALCREMIE, + [SPECIES_ALCREMIE_BERRY_SALTED_CREAM - 1] = NATIONAL_DEX_ALCREMIE, + [SPECIES_ALCREMIE_BERRY_RUBY_SWIRL - 1] = NATIONAL_DEX_ALCREMIE, + [SPECIES_ALCREMIE_BERRY_CARAMEL_SWIRL - 1] = NATIONAL_DEX_ALCREMIE, + [SPECIES_ALCREMIE_BERRY_RAINBOW_SWIRL - 1] = NATIONAL_DEX_ALCREMIE, + [SPECIES_ALCREMIE_LOVE_VANILLA_CREAM - 1] = NATIONAL_DEX_ALCREMIE, + [SPECIES_ALCREMIE_LOVE_RUBY_CREAM - 1] = NATIONAL_DEX_ALCREMIE, + [SPECIES_ALCREMIE_LOVE_MATCHA_CREAM - 1] = NATIONAL_DEX_ALCREMIE, + [SPECIES_ALCREMIE_LOVE_MINT_CREAM - 1] = NATIONAL_DEX_ALCREMIE, + [SPECIES_ALCREMIE_LOVE_LEMON_CREAM - 1] = NATIONAL_DEX_ALCREMIE, + [SPECIES_ALCREMIE_LOVE_SALTED_CREAM - 1] = NATIONAL_DEX_ALCREMIE, + [SPECIES_ALCREMIE_LOVE_RUBY_SWIRL - 1] = NATIONAL_DEX_ALCREMIE, + [SPECIES_ALCREMIE_LOVE_CARAMEL_SWIRL - 1] = NATIONAL_DEX_ALCREMIE, + [SPECIES_ALCREMIE_LOVE_RAINBOW_SWIRL - 1] = NATIONAL_DEX_ALCREMIE, + [SPECIES_ALCREMIE_STAR_VANILLA_CREAM - 1] = NATIONAL_DEX_ALCREMIE, + [SPECIES_ALCREMIE_STAR_RUBY_CREAM - 1] = NATIONAL_DEX_ALCREMIE, + [SPECIES_ALCREMIE_STAR_MATCHA_CREAM - 1] = NATIONAL_DEX_ALCREMIE, + [SPECIES_ALCREMIE_STAR_MINT_CREAM - 1] = NATIONAL_DEX_ALCREMIE, + [SPECIES_ALCREMIE_STAR_LEMON_CREAM - 1] = NATIONAL_DEX_ALCREMIE, + [SPECIES_ALCREMIE_STAR_SALTED_CREAM - 1] = NATIONAL_DEX_ALCREMIE, + [SPECIES_ALCREMIE_STAR_RUBY_SWIRL - 1] = NATIONAL_DEX_ALCREMIE, + [SPECIES_ALCREMIE_STAR_CARAMEL_SWIRL - 1] = NATIONAL_DEX_ALCREMIE, + [SPECIES_ALCREMIE_STAR_RAINBOW_SWIRL - 1] = NATIONAL_DEX_ALCREMIE, + [SPECIES_ALCREMIE_CLOVER_VANILLA_CREAM - 1] = NATIONAL_DEX_ALCREMIE, + [SPECIES_ALCREMIE_CLOVER_RUBY_CREAM - 1] = NATIONAL_DEX_ALCREMIE, + [SPECIES_ALCREMIE_CLOVER_MATCHA_CREAM - 1] = NATIONAL_DEX_ALCREMIE, + [SPECIES_ALCREMIE_CLOVER_MINT_CREAM - 1] = NATIONAL_DEX_ALCREMIE, + [SPECIES_ALCREMIE_CLOVER_LEMON_CREAM - 1] = NATIONAL_DEX_ALCREMIE, + [SPECIES_ALCREMIE_CLOVER_SALTED_CREAM - 1] = NATIONAL_DEX_ALCREMIE, + [SPECIES_ALCREMIE_CLOVER_RUBY_SWIRL - 1] = NATIONAL_DEX_ALCREMIE, + [SPECIES_ALCREMIE_CLOVER_CARAMEL_SWIRL - 1] = NATIONAL_DEX_ALCREMIE, + [SPECIES_ALCREMIE_CLOVER_RAINBOW_SWIRL - 1] = NATIONAL_DEX_ALCREMIE, + [SPECIES_ALCREMIE_FLOWER_VANILLA_CREAM - 1] = NATIONAL_DEX_ALCREMIE, + [SPECIES_ALCREMIE_FLOWER_RUBY_CREAM - 1] = NATIONAL_DEX_ALCREMIE, + [SPECIES_ALCREMIE_FLOWER_MATCHA_CREAM - 1] = NATIONAL_DEX_ALCREMIE, + [SPECIES_ALCREMIE_FLOWER_MINT_CREAM - 1] = NATIONAL_DEX_ALCREMIE, + [SPECIES_ALCREMIE_FLOWER_LEMON_CREAM - 1] = NATIONAL_DEX_ALCREMIE, + [SPECIES_ALCREMIE_FLOWER_SALTED_CREAM - 1] = NATIONAL_DEX_ALCREMIE, + [SPECIES_ALCREMIE_FLOWER_RUBY_SWIRL - 1] = NATIONAL_DEX_ALCREMIE, + [SPECIES_ALCREMIE_FLOWER_CARAMEL_SWIRL - 1] = NATIONAL_DEX_ALCREMIE, + [SPECIES_ALCREMIE_FLOWER_RAINBOW_SWIRL - 1] = NATIONAL_DEX_ALCREMIE, + [SPECIES_ALCREMIE_RIBBON_VANILLA_CREAM - 1] = NATIONAL_DEX_ALCREMIE, + [SPECIES_ALCREMIE_RIBBON_RUBY_CREAM - 1] = NATIONAL_DEX_ALCREMIE, + [SPECIES_ALCREMIE_RIBBON_MATCHA_CREAM - 1] = NATIONAL_DEX_ALCREMIE, + [SPECIES_ALCREMIE_RIBBON_MINT_CREAM - 1] = NATIONAL_DEX_ALCREMIE, + [SPECIES_ALCREMIE_RIBBON_LEMON_CREAM - 1] = NATIONAL_DEX_ALCREMIE, + [SPECIES_ALCREMIE_RIBBON_SALTED_CREAM - 1] = NATIONAL_DEX_ALCREMIE, + [SPECIES_ALCREMIE_RIBBON_RUBY_SWIRL - 1] = NATIONAL_DEX_ALCREMIE, + [SPECIES_ALCREMIE_RIBBON_CARAMEL_SWIRL - 1] = NATIONAL_DEX_ALCREMIE, + [SPECIES_ALCREMIE_RIBBON_RAINBOW_SWIRL - 1] = NATIONAL_DEX_ALCREMIE, SPECIES_TO_NATIONAL(FALINKS), SPECIES_TO_NATIONAL(PINCURCHIN), SPECIES_TO_NATIONAL(SNOM), @@ -1794,15 +1856,6 @@ static const u16 sSpeciesToNationalPokedexNum[NUM_SPECIES - 1] = [SPECIES_SINISTEA_ANTIQUE - 1] = NATIONAL_DEX_SINISTEA, // Polteageist [SPECIES_POLTEAGEIST_ANTIQUE - 1] = NATIONAL_DEX_POLTEAGEIST, - // Alcremie - [SPECIES_ALCREMIE_STRAWBERRY_RUBY_CREAM - 1] = NATIONAL_DEX_ALCREMIE, - [SPECIES_ALCREMIE_STRAWBERRY_MATCHA_CREAM - 1] = NATIONAL_DEX_ALCREMIE, - [SPECIES_ALCREMIE_STRAWBERRY_MINT_CREAM - 1] = NATIONAL_DEX_ALCREMIE, - [SPECIES_ALCREMIE_STRAWBERRY_LEMON_CREAM - 1] = NATIONAL_DEX_ALCREMIE, - [SPECIES_ALCREMIE_STRAWBERRY_SALTED_CREAM - 1] = NATIONAL_DEX_ALCREMIE, - [SPECIES_ALCREMIE_STRAWBERRY_RUBY_SWIRL - 1] = NATIONAL_DEX_ALCREMIE, - [SPECIES_ALCREMIE_STRAWBERRY_CARAMEL_SWIRL - 1] = NATIONAL_DEX_ALCREMIE, - [SPECIES_ALCREMIE_STRAWBERRY_RAINBOW_SWIRL - 1] = NATIONAL_DEX_ALCREMIE, // Eiscue [SPECIES_EISCUE_NOICE_FACE - 1] = NATIONAL_DEX_EISCUE, // Indeedee @@ -2886,18 +2939,18 @@ const u8 sMonFrontAnimIdsTable[NUM_SPECIES - 1] = [SPECIES_VOLCANION - 1] = ANIM_V_SHAKE_TWICE, // Gen 7 - [SPECIES_ROWLET - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_DARTRIX - 1] = ANIM_H_STRETCH, - [SPECIES_DECIDUEYE - 1] = ANIM_H_VIBRATE, + [SPECIES_ROWLET - 1] = ANIM_CIRCULAR_STRETCH_TWICE, + [SPECIES_DARTRIX - 1] = ANIM_V_STRETCH, + [SPECIES_DECIDUEYE - 1] = ANIM_SHRINK_GROW_VIBRATE_FAST, [SPECIES_LITTEN - 1] = ANIM_H_STRETCH, [SPECIES_TORRACAT - 1] = ANIM_V_STRETCH, [SPECIES_INCINEROAR - 1] = ANIM_V_SHAKE, [SPECIES_POPPLIO - 1] = ANIM_V_SQUISH_AND_BOUNCE_SLOW, [SPECIES_BRIONNE - 1] = ANIM_SHRINK_GROW, [SPECIES_PRIMARINA - 1] = ANIM_SHAKE_GLOW_BLUE_SLOW, - [SPECIES_PIKIPEK - 1] = ANIM_V_JUMPS_SMALL, + [SPECIES_PIKIPEK - 1] = ANIM_V_SQUISH_AND_BOUNCE, [SPECIES_TRUMBEAK - 1] = ANIM_H_STRETCH, - [SPECIES_TOUCANNON - 1] = ANIM_SHRINK_GROW_VIBRATE_FAST, + [SPECIES_TOUCANNON - 1] = ANIM_SHAKE_GLOW_RED_SLOW, [SPECIES_YUNGOOS - 1] = ANIM_V_STRETCH, [SPECIES_GUMSHOOS - 1] = ANIM_H_SHAKE, [SPECIES_GRUBBIN - 1] = ANIM_H_SLIDE, @@ -2906,7 +2959,7 @@ const u8 sMonFrontAnimIdsTable[NUM_SPECIES - 1] = [SPECIES_CRABRAWLER - 1] = ANIM_V_SHAKE, [SPECIES_CRABOMINABLE - 1] = ANIM_SHRINK_GROW_VIBRATE_FAST, [SPECIES_ORICORIO_BAILE - 1] = ANIM_CONCAVE_ARC_SMALL, - [SPECIES_CUTIEFLY - 1] = ANIM_V_SLIDE_WOBBLE, + [SPECIES_CUTIEFLY - 1] = ANIM_H_SLIDE_WOBBLE, [SPECIES_RIBOMBEE - 1] = ANIM_CONVEX_DOUBLE_ARC_TWICE, [SPECIES_ROCKRUFF - 1] = ANIM_V_STRETCH, [SPECIES_LYCANROC_MIDDAY - 1] = ANIM_V_SHAKE, @@ -2929,8 +2982,8 @@ const u8 sMonFrontAnimIdsTable[NUM_SPECIES - 1] = [SPECIES_STEENEE - 1] = ANIM_V_SQUISH_AND_BOUNCE, [SPECIES_TSAREENA - 1] = ANIM_SHRINK_GROW, [SPECIES_COMFEY - 1] = ANIM_H_SLIDE_WOBBLE, - [SPECIES_ORANGURU - 1] = ANIM_SHRINK_GROW, - [SPECIES_PASSIMIAN - 1] = ANIM_V_SHAKE, + [SPECIES_ORANGURU - 1] = ANIM_SHRINK_GROW_SLOW, + [SPECIES_PASSIMIAN - 1] = ANIM_H_SHAKE, [SPECIES_WIMPOD - 1] = ANIM_V_SHAKE_H_SLIDE_FAST, [SPECIES_GOLISOPOD - 1] = ANIM_SHRINK_GROW_VIBRATE_FAST, [SPECIES_SANDYGAST - 1] = ANIM_CIRCULAR_STRETCH_TWICE, @@ -2941,14 +2994,14 @@ const u8 sMonFrontAnimIdsTable[NUM_SPECIES - 1] = [SPECIES_MINIOR_METEOR_RED - 1] = ANIM_TUMBLING_FRONT_FLIP_TWICE, [SPECIES_KOMALA - 1] = ANIM_H_DIP, [SPECIES_TURTONATOR - 1] = ANIM_SHAKE_GLOW_RED, - [SPECIES_TOGEDEMARU - 1] = ANIM_SHAKE_FLASH_YELLOW, + [SPECIES_TOGEDEMARU - 1] = ANIM_FLASH_YELLOW, [SPECIES_MIMIKYU_DISGUISED - 1] = ANIM_DEEP_V_SQUISH_AND_BOUNCE, [SPECIES_BRUXISH - 1] = ANIM_RISING_WOBBLE, - [SPECIES_DRAMPA - 1] = ANIM_V_SHAKE, + [SPECIES_DRAMPA - 1] = ANIM_V_SHAKE_TWICE, [SPECIES_DHELMISE - 1] = ANIM_SWING_CONVEX, [SPECIES_JANGMO_O - 1] = ANIM_H_STRETCH, [SPECIES_HAKAMO_O - 1] = ANIM_H_STRETCH, - [SPECIES_KOMMO_O - 1] = ANIM_GROW_STUTTER_TWICE, + [SPECIES_KOMMO_O - 1] = ANIM_SHRINK_GROW_VIBRATE_FAST, [SPECIES_TAPU_KOKO - 1] = ANIM_TRIANGLE_DOWN_TWICE, [SPECIES_TAPU_LELE - 1] = ANIM_V_SLIDE_WOBBLE_SMALL, [SPECIES_TAPU_BULU - 1] = ANIM_V_SHAKE_TWICE, @@ -3036,6 +3089,68 @@ const u8 sMonFrontAnimIdsTable[NUM_SPECIES - 1] = [SPECIES_RUNERIGUS - 1] = ANIM_V_SQUISH_AND_BOUNCE, [SPECIES_MILCERY - 1] = ANIM_V_SQUISH_AND_BOUNCE, [SPECIES_ALCREMIE_STRAWBERRY_VANILLA_CREAM - 1] = ANIM_V_SQUISH_AND_BOUNCE, + [SPECIES_ALCREMIE_STRAWBERRY_RUBY_CREAM - 1] = ANIM_V_SQUISH_AND_BOUNCE, + [SPECIES_ALCREMIE_STRAWBERRY_MATCHA_CREAM - 1] = ANIM_V_SQUISH_AND_BOUNCE, + [SPECIES_ALCREMIE_STRAWBERRY_MINT_CREAM - 1] = ANIM_V_SQUISH_AND_BOUNCE, + [SPECIES_ALCREMIE_STRAWBERRY_LEMON_CREAM - 1] = ANIM_V_SQUISH_AND_BOUNCE, + [SPECIES_ALCREMIE_STRAWBERRY_SALTED_CREAM - 1] = ANIM_V_SQUISH_AND_BOUNCE, + [SPECIES_ALCREMIE_STRAWBERRY_RUBY_SWIRL - 1] = ANIM_V_SQUISH_AND_BOUNCE, + [SPECIES_ALCREMIE_STRAWBERRY_CARAMEL_SWIRL - 1] = ANIM_V_SQUISH_AND_BOUNCE, + [SPECIES_ALCREMIE_STRAWBERRY_RAINBOW_SWIRL - 1] = ANIM_V_SQUISH_AND_BOUNCE, + [SPECIES_ALCREMIE_BERRY_VANILLA_CREAM - 1] = ANIM_V_SQUISH_AND_BOUNCE, + [SPECIES_ALCREMIE_BERRY_RUBY_CREAM - 1] = ANIM_V_SQUISH_AND_BOUNCE, + [SPECIES_ALCREMIE_BERRY_MATCHA_CREAM - 1] = ANIM_V_SQUISH_AND_BOUNCE, + [SPECIES_ALCREMIE_BERRY_MINT_CREAM - 1] = ANIM_V_SQUISH_AND_BOUNCE, + [SPECIES_ALCREMIE_BERRY_LEMON_CREAM - 1] = ANIM_V_SQUISH_AND_BOUNCE, + [SPECIES_ALCREMIE_BERRY_SALTED_CREAM - 1] = ANIM_V_SQUISH_AND_BOUNCE, + [SPECIES_ALCREMIE_BERRY_RUBY_SWIRL - 1] = ANIM_V_SQUISH_AND_BOUNCE, + [SPECIES_ALCREMIE_BERRY_CARAMEL_SWIRL - 1] = ANIM_V_SQUISH_AND_BOUNCE, + [SPECIES_ALCREMIE_BERRY_RAINBOW_SWIRL - 1] = ANIM_V_SQUISH_AND_BOUNCE, + [SPECIES_ALCREMIE_LOVE_VANILLA_CREAM - 1] = ANIM_V_SQUISH_AND_BOUNCE, + [SPECIES_ALCREMIE_LOVE_RUBY_CREAM - 1] = ANIM_V_SQUISH_AND_BOUNCE, + [SPECIES_ALCREMIE_LOVE_MATCHA_CREAM - 1] = ANIM_V_SQUISH_AND_BOUNCE, + [SPECIES_ALCREMIE_LOVE_MINT_CREAM - 1] = ANIM_V_SQUISH_AND_BOUNCE, + [SPECIES_ALCREMIE_LOVE_LEMON_CREAM - 1] = ANIM_V_SQUISH_AND_BOUNCE, + [SPECIES_ALCREMIE_LOVE_SALTED_CREAM - 1] = ANIM_V_SQUISH_AND_BOUNCE, + [SPECIES_ALCREMIE_LOVE_RUBY_SWIRL - 1] = ANIM_V_SQUISH_AND_BOUNCE, + [SPECIES_ALCREMIE_LOVE_CARAMEL_SWIRL - 1] = ANIM_V_SQUISH_AND_BOUNCE, + [SPECIES_ALCREMIE_LOVE_RAINBOW_SWIRL - 1] = ANIM_V_SQUISH_AND_BOUNCE, + [SPECIES_ALCREMIE_STAR_VANILLA_CREAM - 1] = ANIM_V_SQUISH_AND_BOUNCE, + [SPECIES_ALCREMIE_STAR_RUBY_CREAM - 1] = ANIM_V_SQUISH_AND_BOUNCE, + [SPECIES_ALCREMIE_STAR_MATCHA_CREAM - 1] = ANIM_V_SQUISH_AND_BOUNCE, + [SPECIES_ALCREMIE_STAR_MINT_CREAM - 1] = ANIM_V_SQUISH_AND_BOUNCE, + [SPECIES_ALCREMIE_STAR_LEMON_CREAM - 1] = ANIM_V_SQUISH_AND_BOUNCE, + [SPECIES_ALCREMIE_STAR_SALTED_CREAM - 1] = ANIM_V_SQUISH_AND_BOUNCE, + [SPECIES_ALCREMIE_STAR_RUBY_SWIRL - 1] = ANIM_V_SQUISH_AND_BOUNCE, + [SPECIES_ALCREMIE_STAR_CARAMEL_SWIRL - 1] = ANIM_V_SQUISH_AND_BOUNCE, + [SPECIES_ALCREMIE_STAR_RAINBOW_SWIRL - 1] = ANIM_V_SQUISH_AND_BOUNCE, + [SPECIES_ALCREMIE_CLOVER_VANILLA_CREAM - 1] = ANIM_V_SQUISH_AND_BOUNCE, + [SPECIES_ALCREMIE_CLOVER_RUBY_CREAM - 1] = ANIM_V_SQUISH_AND_BOUNCE, + [SPECIES_ALCREMIE_CLOVER_MATCHA_CREAM - 1] = ANIM_V_SQUISH_AND_BOUNCE, + [SPECIES_ALCREMIE_CLOVER_MINT_CREAM - 1] = ANIM_V_SQUISH_AND_BOUNCE, + [SPECIES_ALCREMIE_CLOVER_LEMON_CREAM - 1] = ANIM_V_SQUISH_AND_BOUNCE, + [SPECIES_ALCREMIE_CLOVER_SALTED_CREAM - 1] = ANIM_V_SQUISH_AND_BOUNCE, + [SPECIES_ALCREMIE_CLOVER_RUBY_SWIRL - 1] = ANIM_V_SQUISH_AND_BOUNCE, + [SPECIES_ALCREMIE_CLOVER_CARAMEL_SWIRL - 1] = ANIM_V_SQUISH_AND_BOUNCE, + [SPECIES_ALCREMIE_CLOVER_RAINBOW_SWIRL - 1] = ANIM_V_SQUISH_AND_BOUNCE, + [SPECIES_ALCREMIE_FLOWER_VANILLA_CREAM - 1] = ANIM_V_SQUISH_AND_BOUNCE, + [SPECIES_ALCREMIE_FLOWER_RUBY_CREAM - 1] = ANIM_V_SQUISH_AND_BOUNCE, + [SPECIES_ALCREMIE_FLOWER_MATCHA_CREAM - 1] = ANIM_V_SQUISH_AND_BOUNCE, + [SPECIES_ALCREMIE_FLOWER_MINT_CREAM - 1] = ANIM_V_SQUISH_AND_BOUNCE, + [SPECIES_ALCREMIE_FLOWER_LEMON_CREAM - 1] = ANIM_V_SQUISH_AND_BOUNCE, + [SPECIES_ALCREMIE_FLOWER_SALTED_CREAM - 1] = ANIM_V_SQUISH_AND_BOUNCE, + [SPECIES_ALCREMIE_FLOWER_RUBY_SWIRL - 1] = ANIM_V_SQUISH_AND_BOUNCE, + [SPECIES_ALCREMIE_FLOWER_CARAMEL_SWIRL - 1] = ANIM_V_SQUISH_AND_BOUNCE, + [SPECIES_ALCREMIE_FLOWER_RAINBOW_SWIRL - 1] = ANIM_V_SQUISH_AND_BOUNCE, + [SPECIES_ALCREMIE_RIBBON_VANILLA_CREAM - 1] = ANIM_V_SQUISH_AND_BOUNCE, + [SPECIES_ALCREMIE_RIBBON_RUBY_CREAM - 1] = ANIM_V_SQUISH_AND_BOUNCE, + [SPECIES_ALCREMIE_RIBBON_MATCHA_CREAM - 1] = ANIM_V_SQUISH_AND_BOUNCE, + [SPECIES_ALCREMIE_RIBBON_MINT_CREAM - 1] = ANIM_V_SQUISH_AND_BOUNCE, + [SPECIES_ALCREMIE_RIBBON_LEMON_CREAM - 1] = ANIM_V_SQUISH_AND_BOUNCE, + [SPECIES_ALCREMIE_RIBBON_SALTED_CREAM - 1] = ANIM_V_SQUISH_AND_BOUNCE, + [SPECIES_ALCREMIE_RIBBON_RUBY_SWIRL - 1] = ANIM_V_SQUISH_AND_BOUNCE, + [SPECIES_ALCREMIE_RIBBON_CARAMEL_SWIRL - 1] = ANIM_V_SQUISH_AND_BOUNCE, + [SPECIES_ALCREMIE_RIBBON_RAINBOW_SWIRL - 1] = ANIM_V_SQUISH_AND_BOUNCE, [SPECIES_FALINKS - 1] = ANIM_V_SQUISH_AND_BOUNCE, [SPECIES_PINCURCHIN - 1] = ANIM_SHRINK_GROW_VIBRATE, [SPECIES_SNOM - 1] = ANIM_V_SQUISH_AND_BOUNCE, @@ -3334,8 +3449,8 @@ const u8 sMonFrontAnimIdsTable[NUM_SPECIES - 1] = [SPECIES_ORICORIO_PAU - 1] = ANIM_V_SQUISH_AND_BOUNCE, //Todo [SPECIES_ORICORIO_SENSU - 1] = ANIM_V_SQUISH_AND_BOUNCE, //Todo [SPECIES_ROCKRUFF_OWN_TEMPO - 1] = ANIM_V_STRETCH, - [SPECIES_LYCANROC_MIDNIGHT - 1] = ANIM_V_SQUISH_AND_BOUNCE, //Todo - [SPECIES_LYCANROC_DUSK - 1] = ANIM_V_SQUISH_AND_BOUNCE, //Todo + [SPECIES_LYCANROC_MIDNIGHT - 1] = ANIM_SHRINK_GROW_VIBRATE_SLOW, + [SPECIES_LYCANROC_DUSK - 1] = ANIM_V_SHAKE, [SPECIES_WISHIWASHI_SCHOOL - 1] = ANIM_V_SQUISH_AND_BOUNCE, //Todo [SPECIES_SILVALLY_FIGHTING - 1] = ANIM_V_SHAKE, [SPECIES_SILVALLY_FLYING - 1] = ANIM_V_SHAKE, @@ -3379,14 +3494,6 @@ const u8 sMonFrontAnimIdsTable[NUM_SPECIES - 1] = [SPECIES_TOXTRICITY_LOW_KEY - 1] = ANIM_V_SQUISH_AND_BOUNCE, [SPECIES_SINISTEA_ANTIQUE - 1] = ANIM_V_SQUISH_AND_BOUNCE, [SPECIES_POLTEAGEIST_ANTIQUE - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_ALCREMIE_RUBY_CREAM - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_ALCREMIE_MATCHA_CREAM - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_ALCREMIE_MINT_CREAM - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_ALCREMIE_LEMON_CREAM - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_ALCREMIE_SALTED_CREAM - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_ALCREMIE_RUBY_SWIRL - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_ALCREMIE_CARAMEL_SWIRL - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_ALCREMIE_RAINBOW_SWIRL - 1] = ANIM_V_SQUISH_AND_BOUNCE, [SPECIES_EISCUE_NOICE_FACE - 1] = ANIM_V_SQUISH_AND_BOUNCE, [SPECIES_INDEEDEE_FEMALE - 1] = ANIM_V_SQUISH_AND_BOUNCE, [SPECIES_MORPEKO_HANGRY - 1] = ANIM_V_SQUISH_AND_BOUNCE, @@ -8343,29 +8450,33 @@ static s32 GetWildMonTableIdInAlteringCave(u16 species) return 0; } +static inline bool32 CanFirstMonBoostHeldItemRarity(void) +{ + if (GetMonData(&gPlayerParty[0], MON_DATA_SANITY_IS_EGG)) + return FALSE; + else if ((OW_COMPOUND_EYES < GEN_9) && GetMonAbility(&gPlayerParty[0]) == ABILITY_COMPOUND_EYES) + return TRUE; + else if ((OW_SUPER_LUCK == GEN_8) && GetMonAbility(&gPlayerParty[0]) == ABILITY_SUPER_LUCK) + return TRUE; + return FALSE; +} + void SetWildMonHeldItem(void) { if (!(gBattleTypeFlags & (BATTLE_TYPE_LEGENDARY | BATTLE_TYPE_TRAINER | BATTLE_TYPE_PYRAMID | BATTLE_TYPE_PIKE))) { u16 rnd; u16 species; - u16 chanceNoItem = 45; - u16 chanceNotRare = 95; u16 count = (WILD_DOUBLE_BATTLE) ? 2 : 1; u16 i; - - if (!GetMonData(&gPlayerParty[0], MON_DATA_SANITY_IS_EGG, 0) - && (GetMonAbility(&gPlayerParty[0]) == ABILITY_COMPOUND_EYES - || GetMonAbility(&gPlayerParty[0]) == ABILITY_SUPER_LUCK)) - { - chanceNoItem = 20; - chanceNotRare = 80; - } + bool32 itemHeldBoost = CanFirstMonBoostHeldItemRarity(); + u16 chanceNoItem = itemHeldBoost ? 20 : 45; + u16 chanceNotRare = itemHeldBoost ? 80 : 95; for (i = 0; i < count; i++) { if (GetMonData(&gEnemyParty[i], MON_DATA_HELD_ITEM, NULL) != ITEM_NONE) - continue; // prevent ovewriting previously set item + continue; // prevent overwriting previously set item rnd = Random() % 100; species = GetMonData(&gEnemyParty[i], MON_DATA_SPECIES, 0); diff --git a/src/pokemon_animation.c b/src/pokemon_animation.c index d1ecc8c2ea..9ba66ad664 100644 --- a/src/pokemon_animation.c +++ b/src/pokemon_animation.c @@ -781,7 +781,7 @@ static const u8 sSpeciesToBackAnimSet[NUM_SPECIES] = [SPECIES_KROKOROK] = BACK_ANIM_V_STRETCH, [SPECIES_KROOKODILE] = BACK_ANIM_V_SHAKE_LOW, [SPECIES_DARUMAKA] = BACK_ANIM_CONCAVE_ARC_LARGE, - [SPECIES_DARMANITAN_STANDARD_MODE] = BACK_ANIM_V_SHAKE_H_SLIDE, + [SPECIES_DARMANITAN_STANDARD_MODE] = BACK_ANIM_V_SHAKE_H_SLIDE, [SPECIES_MARACTUS] = BACK_ANIM_CONCAVE_ARC_LARGE, [SPECIES_DWEBBLE] = BACK_ANIM_H_SLIDE, [SPECIES_CRUSTLE] = BACK_ANIM_V_SHAKE_LOW, @@ -876,7 +876,7 @@ static const u8 sSpeciesToBackAnimSet[NUM_SPECIES] = [SPECIES_KELDEO_ORDINARY] = BACK_ANIM_JOLT_RIGHT, [SPECIES_MELOETTA_ARIA] = BACK_ANIM_CONVEX_DOUBLE_ARC, [SPECIES_GENESECT] = BACK_ANIM_CIRCLE_COUNTERCLOCKWISE, - + // Gen 6 [SPECIES_CHESPIN] = BACK_ANIM_H_SLIDE, [SPECIES_QUILLADIN] = BACK_ANIM_GROW, @@ -952,18 +952,18 @@ static const u8 sSpeciesToBackAnimSet[NUM_SPECIES] = [SPECIES_VOLCANION] = BACK_ANIM_SHAKE_GLOW_RED, // Gen 7 todo: assign - [SPECIES_ROWLET] = BACK_ANIM_H_VIBRATE, - [SPECIES_DARTRIX] = BACK_ANIM_H_VIBRATE, - [SPECIES_DECIDUEYE] = BACK_ANIM_H_VIBRATE, + [SPECIES_ROWLET] = BACK_ANIM_CONCAVE_ARC_SMALL, + [SPECIES_DARTRIX] = BACK_ANIM_V_STRETCH, + [SPECIES_DECIDUEYE] = BACK_ANIM_SHRINK_GROW_VIBRATE, [SPECIES_LITTEN] = BACK_ANIM_H_VIBRATE, [SPECIES_TORRACAT] = BACK_ANIM_H_VIBRATE, [SPECIES_INCINEROAR] = BACK_ANIM_H_VIBRATE, [SPECIES_POPPLIO] = BACK_ANIM_H_VIBRATE, [SPECIES_BRIONNE] = BACK_ANIM_H_VIBRATE, [SPECIES_PRIMARINA] = BACK_ANIM_H_VIBRATE, - [SPECIES_PIKIPEK] = BACK_ANIM_H_VIBRATE, - [SPECIES_TRUMBEAK] = BACK_ANIM_H_VIBRATE, - [SPECIES_TOUCANNON] = BACK_ANIM_H_VIBRATE, + [SPECIES_PIKIPEK] = BACK_ANIM_SHRINK_GROW, + [SPECIES_TRUMBEAK] = BACK_ANIM_H_STRETCH, + [SPECIES_TOUCANNON] = BACK_ANIM_SHRINK_GROW_VIBRATE, [SPECIES_YUNGOOS] = BACK_ANIM_H_VIBRATE, [SPECIES_GUMSHOOS] = BACK_ANIM_H_VIBRATE, [SPECIES_GRUBBIN] = BACK_ANIM_H_VIBRATE, @@ -971,12 +971,12 @@ static const u8 sSpeciesToBackAnimSet[NUM_SPECIES] = [SPECIES_VIKAVOLT] = BACK_ANIM_H_VIBRATE, [SPECIES_CRABRAWLER] = BACK_ANIM_H_VIBRATE, [SPECIES_CRABOMINABLE] = BACK_ANIM_H_VIBRATE, - [SPECIES_ORICORIO] = BACK_ANIM_H_VIBRATE, - [SPECIES_CUTIEFLY] = BACK_ANIM_H_VIBRATE, - [SPECIES_RIBOMBEE] = BACK_ANIM_H_VIBRATE, - [SPECIES_ROCKRUFF] = BACK_ANIM_H_VIBRATE, - [SPECIES_LYCANROC] = BACK_ANIM_H_VIBRATE, - [SPECIES_WISHIWASHI] = BACK_ANIM_H_VIBRATE, + [SPECIES_ORICORIO_BAILE] = BACK_ANIM_H_VIBRATE, + [SPECIES_CUTIEFLY] = BACK_ANIM_CONCAVE_ARC_LARGE, + [SPECIES_RIBOMBEE] = BACK_ANIM_CONVEX_DOUBLE_ARC, + [SPECIES_ROCKRUFF] = BACK_ANIM_V_STRETCH, + [SPECIES_LYCANROC_MIDDAY] = BACK_ANIM_V_SHAKE, + [SPECIES_WISHIWASHI_SOLO] = BACK_ANIM_H_VIBRATE, [SPECIES_MAREANIE] = BACK_ANIM_H_VIBRATE, [SPECIES_TOXAPEX] = BACK_ANIM_H_VIBRATE, [SPECIES_MUDBRAY] = BACK_ANIM_H_VIBRATE, @@ -995,26 +995,26 @@ static const u8 sSpeciesToBackAnimSet[NUM_SPECIES] = [SPECIES_STEENEE] = BACK_ANIM_H_VIBRATE, [SPECIES_TSAREENA] = BACK_ANIM_H_VIBRATE, [SPECIES_COMFEY] = BACK_ANIM_H_VIBRATE, - [SPECIES_ORANGURU] = BACK_ANIM_H_VIBRATE, - [SPECIES_PASSIMIAN] = BACK_ANIM_H_VIBRATE, + [SPECIES_ORANGURU] = BACK_ANIM_H_SLIDE, + [SPECIES_PASSIMIAN] = BACK_ANIM_H_SHAKE, [SPECIES_WIMPOD] = BACK_ANIM_H_VIBRATE, [SPECIES_GOLISOPOD] = BACK_ANIM_H_VIBRATE, [SPECIES_SANDYGAST] = BACK_ANIM_H_VIBRATE, [SPECIES_PALOSSAND] = BACK_ANIM_H_VIBRATE, [SPECIES_PYUKUMUKU] = BACK_ANIM_H_VIBRATE, [SPECIES_TYPE_NULL] = BACK_ANIM_H_VIBRATE, - [SPECIES_SILVALLY] = BACK_ANIM_H_VIBRATE, - [SPECIES_MINIOR] = BACK_ANIM_H_VIBRATE, + [SPECIES_SILVALLY_NORMAL] = BACK_ANIM_H_VIBRATE, + [SPECIES_MINIOR_METEOR_RED] = BACK_ANIM_H_VIBRATE, [SPECIES_KOMALA] = BACK_ANIM_H_VIBRATE, [SPECIES_TURTONATOR] = BACK_ANIM_H_VIBRATE, - [SPECIES_TOGEDEMARU] = BACK_ANIM_H_VIBRATE, - [SPECIES_MIMIKYU] = BACK_ANIM_H_VIBRATE, + [SPECIES_TOGEDEMARU] = BACK_ANIM_GROW_STUTTER, + [SPECIES_MIMIKYU_DISGUISED] = BACK_ANIM_H_VIBRATE, [SPECIES_BRUXISH] = BACK_ANIM_H_VIBRATE, - [SPECIES_DRAMPA] = BACK_ANIM_H_VIBRATE, + [SPECIES_DRAMPA] = BACK_ANIM_H_SLIDE, [SPECIES_DHELMISE] = BACK_ANIM_H_VIBRATE, - [SPECIES_JANGMO_O] = BACK_ANIM_H_VIBRATE, - [SPECIES_HAKAMO_O] = BACK_ANIM_H_VIBRATE, - [SPECIES_KOMMO_O] = BACK_ANIM_H_VIBRATE, + [SPECIES_JANGMO_O] = BACK_ANIM_GROW_STUTTER, + [SPECIES_HAKAMO_O] = BACK_ANIM_H_STRETCH, + [SPECIES_KOMMO_O] = BACK_ANIM_SHRINK_GROW_VIBRATE, [SPECIES_TAPU_KOKO] = BACK_ANIM_H_VIBRATE, [SPECIES_TAPU_LELE] = BACK_ANIM_H_VIBRATE, [SPECIES_TAPU_BULU] = BACK_ANIM_H_VIBRATE, @@ -1081,13 +1081,13 @@ static const u8 sSpeciesToBackAnimSet[NUM_SPECIES] = [SPECIES_ARROKUDA] = BACK_ANIM_H_VIBRATE, [SPECIES_BARRASKEWDA] = BACK_ANIM_H_VIBRATE, [SPECIES_TOXEL] = BACK_ANIM_H_VIBRATE, - [SPECIES_TOXTRICITY] = BACK_ANIM_H_VIBRATE, + [SPECIES_TOXTRICITY_AMPED] = BACK_ANIM_H_VIBRATE, [SPECIES_SIZZLIPEDE] = BACK_ANIM_H_VIBRATE, [SPECIES_CENTISKORCH] = BACK_ANIM_H_VIBRATE, [SPECIES_CLOBBOPUS] = BACK_ANIM_H_VIBRATE, [SPECIES_GRAPPLOCT] = BACK_ANIM_H_VIBRATE, - [SPECIES_SINISTEA] = BACK_ANIM_H_VIBRATE, - [SPECIES_POLTEAGEIST] = BACK_ANIM_H_VIBRATE, + [SPECIES_SINISTEA_PHONY] = BACK_ANIM_H_VIBRATE, + [SPECIES_POLTEAGEIST_PHONY] = BACK_ANIM_H_VIBRATE, [SPECIES_HATENNA] = BACK_ANIM_H_VIBRATE, [SPECIES_HATTREM] = BACK_ANIM_H_VIBRATE, [SPECIES_HATTERENE] = BACK_ANIM_H_VIBRATE, @@ -1101,15 +1101,77 @@ static const u8 sSpeciesToBackAnimSet[NUM_SPECIES] = [SPECIES_MR_RIME] = BACK_ANIM_H_VIBRATE, [SPECIES_RUNERIGUS] = BACK_ANIM_H_VIBRATE, [SPECIES_MILCERY] = BACK_ANIM_H_VIBRATE, - [SPECIES_ALCREMIE] = BACK_ANIM_H_VIBRATE, + [SPECIES_ALCREMIE_STRAWBERRY_VANILLA_CREAM] = BACK_ANIM_H_VIBRATE, + [SPECIES_ALCREMIE_STRAWBERRY_RUBY_CREAM] = BACK_ANIM_H_VIBRATE, + [SPECIES_ALCREMIE_STRAWBERRY_MATCHA_CREAM] = BACK_ANIM_H_VIBRATE, + [SPECIES_ALCREMIE_STRAWBERRY_MINT_CREAM] = BACK_ANIM_H_VIBRATE, + [SPECIES_ALCREMIE_STRAWBERRY_LEMON_CREAM] = BACK_ANIM_H_VIBRATE, + [SPECIES_ALCREMIE_STRAWBERRY_SALTED_CREAM] = BACK_ANIM_H_VIBRATE, + [SPECIES_ALCREMIE_STRAWBERRY_RUBY_SWIRL] = BACK_ANIM_H_VIBRATE, + [SPECIES_ALCREMIE_STRAWBERRY_CARAMEL_SWIRL] = BACK_ANIM_H_VIBRATE, + [SPECIES_ALCREMIE_STRAWBERRY_RAINBOW_SWIRL] = BACK_ANIM_H_VIBRATE, + [SPECIES_ALCREMIE_BERRY_VANILLA_CREAM] = BACK_ANIM_H_VIBRATE, + [SPECIES_ALCREMIE_BERRY_RUBY_CREAM] = BACK_ANIM_H_VIBRATE, + [SPECIES_ALCREMIE_BERRY_MATCHA_CREAM] = BACK_ANIM_H_VIBRATE, + [SPECIES_ALCREMIE_BERRY_MINT_CREAM] = BACK_ANIM_H_VIBRATE, + [SPECIES_ALCREMIE_BERRY_LEMON_CREAM] = BACK_ANIM_H_VIBRATE, + [SPECIES_ALCREMIE_BERRY_SALTED_CREAM] = BACK_ANIM_H_VIBRATE, + [SPECIES_ALCREMIE_BERRY_RUBY_SWIRL] = BACK_ANIM_H_VIBRATE, + [SPECIES_ALCREMIE_BERRY_CARAMEL_SWIRL] = BACK_ANIM_H_VIBRATE, + [SPECIES_ALCREMIE_BERRY_RAINBOW_SWIRL] = BACK_ANIM_H_VIBRATE, + [SPECIES_ALCREMIE_LOVE_VANILLA_CREAM] = BACK_ANIM_H_VIBRATE, + [SPECIES_ALCREMIE_LOVE_RUBY_CREAM] = BACK_ANIM_H_VIBRATE, + [SPECIES_ALCREMIE_LOVE_MATCHA_CREAM] = BACK_ANIM_H_VIBRATE, + [SPECIES_ALCREMIE_LOVE_MINT_CREAM] = BACK_ANIM_H_VIBRATE, + [SPECIES_ALCREMIE_LOVE_LEMON_CREAM] = BACK_ANIM_H_VIBRATE, + [SPECIES_ALCREMIE_LOVE_SALTED_CREAM] = BACK_ANIM_H_VIBRATE, + [SPECIES_ALCREMIE_LOVE_RUBY_SWIRL] = BACK_ANIM_H_VIBRATE, + [SPECIES_ALCREMIE_LOVE_CARAMEL_SWIRL] = BACK_ANIM_H_VIBRATE, + [SPECIES_ALCREMIE_LOVE_RAINBOW_SWIRL] = BACK_ANIM_H_VIBRATE, + [SPECIES_ALCREMIE_STAR_VANILLA_CREAM] = BACK_ANIM_H_VIBRATE, + [SPECIES_ALCREMIE_STAR_RUBY_CREAM] = BACK_ANIM_H_VIBRATE, + [SPECIES_ALCREMIE_STAR_MATCHA_CREAM] = BACK_ANIM_H_VIBRATE, + [SPECIES_ALCREMIE_STAR_MINT_CREAM] = BACK_ANIM_H_VIBRATE, + [SPECIES_ALCREMIE_STAR_LEMON_CREAM] = BACK_ANIM_H_VIBRATE, + [SPECIES_ALCREMIE_STAR_SALTED_CREAM] = BACK_ANIM_H_VIBRATE, + [SPECIES_ALCREMIE_STAR_RUBY_SWIRL] = BACK_ANIM_H_VIBRATE, + [SPECIES_ALCREMIE_STAR_CARAMEL_SWIRL] = BACK_ANIM_H_VIBRATE, + [SPECIES_ALCREMIE_STAR_RAINBOW_SWIRL] = BACK_ANIM_H_VIBRATE, + [SPECIES_ALCREMIE_CLOVER_VANILLA_CREAM] = BACK_ANIM_H_VIBRATE, + [SPECIES_ALCREMIE_CLOVER_RUBY_CREAM] = BACK_ANIM_H_VIBRATE, + [SPECIES_ALCREMIE_CLOVER_MATCHA_CREAM] = BACK_ANIM_H_VIBRATE, + [SPECIES_ALCREMIE_CLOVER_MINT_CREAM] = BACK_ANIM_H_VIBRATE, + [SPECIES_ALCREMIE_CLOVER_LEMON_CREAM] = BACK_ANIM_H_VIBRATE, + [SPECIES_ALCREMIE_CLOVER_SALTED_CREAM] = BACK_ANIM_H_VIBRATE, + [SPECIES_ALCREMIE_CLOVER_RUBY_SWIRL] = BACK_ANIM_H_VIBRATE, + [SPECIES_ALCREMIE_CLOVER_CARAMEL_SWIRL] = BACK_ANIM_H_VIBRATE, + [SPECIES_ALCREMIE_CLOVER_RAINBOW_SWIRL] = BACK_ANIM_H_VIBRATE, + [SPECIES_ALCREMIE_FLOWER_VANILLA_CREAM] = BACK_ANIM_H_VIBRATE, + [SPECIES_ALCREMIE_FLOWER_RUBY_CREAM] = BACK_ANIM_H_VIBRATE, + [SPECIES_ALCREMIE_FLOWER_MATCHA_CREAM] = BACK_ANIM_H_VIBRATE, + [SPECIES_ALCREMIE_FLOWER_MINT_CREAM] = BACK_ANIM_H_VIBRATE, + [SPECIES_ALCREMIE_FLOWER_LEMON_CREAM] = BACK_ANIM_H_VIBRATE, + [SPECIES_ALCREMIE_FLOWER_SALTED_CREAM] = BACK_ANIM_H_VIBRATE, + [SPECIES_ALCREMIE_FLOWER_RUBY_SWIRL] = BACK_ANIM_H_VIBRATE, + [SPECIES_ALCREMIE_FLOWER_CARAMEL_SWIRL] = BACK_ANIM_H_VIBRATE, + [SPECIES_ALCREMIE_FLOWER_RAINBOW_SWIRL] = BACK_ANIM_H_VIBRATE, + [SPECIES_ALCREMIE_RIBBON_VANILLA_CREAM] = BACK_ANIM_H_VIBRATE, + [SPECIES_ALCREMIE_RIBBON_RUBY_CREAM] = BACK_ANIM_H_VIBRATE, + [SPECIES_ALCREMIE_RIBBON_MATCHA_CREAM] = BACK_ANIM_H_VIBRATE, + [SPECIES_ALCREMIE_RIBBON_MINT_CREAM] = BACK_ANIM_H_VIBRATE, + [SPECIES_ALCREMIE_RIBBON_LEMON_CREAM] = BACK_ANIM_H_VIBRATE, + [SPECIES_ALCREMIE_RIBBON_SALTED_CREAM] = BACK_ANIM_H_VIBRATE, + [SPECIES_ALCREMIE_RIBBON_RUBY_SWIRL] = BACK_ANIM_H_VIBRATE, + [SPECIES_ALCREMIE_RIBBON_CARAMEL_SWIRL] = BACK_ANIM_H_VIBRATE, + [SPECIES_ALCREMIE_RIBBON_RAINBOW_SWIRL] = BACK_ANIM_H_VIBRATE, [SPECIES_FALINKS] = BACK_ANIM_H_VIBRATE, [SPECIES_PINCURCHIN] = BACK_ANIM_H_VIBRATE, [SPECIES_SNOM] = BACK_ANIM_H_VIBRATE, [SPECIES_FROSMOTH] = BACK_ANIM_H_VIBRATE, [SPECIES_STONJOURNER] = BACK_ANIM_H_VIBRATE, - [SPECIES_EISCUE] = BACK_ANIM_H_VIBRATE, - [SPECIES_INDEEDEE] = BACK_ANIM_H_VIBRATE, - [SPECIES_MORPEKO] = BACK_ANIM_H_VIBRATE, + [SPECIES_EISCUE_ICE_FACE] = BACK_ANIM_H_VIBRATE, + [SPECIES_INDEEDEE_MALE] = BACK_ANIM_H_VIBRATE, + [SPECIES_MORPEKO_FULL_BELLY] = BACK_ANIM_H_VIBRATE, [SPECIES_CUFANT] = BACK_ANIM_H_VIBRATE, [SPECIES_COPPERAJAH] = BACK_ANIM_H_VIBRATE, [SPECIES_DRACOZOLT] = BACK_ANIM_H_VIBRATE, @@ -1120,11 +1182,11 @@ static const u8 sSpeciesToBackAnimSet[NUM_SPECIES] = [SPECIES_DREEPY] = BACK_ANIM_H_VIBRATE, [SPECIES_DRAKLOAK] = BACK_ANIM_H_VIBRATE, [SPECIES_DRAGAPULT] = BACK_ANIM_H_VIBRATE, - [SPECIES_ZACIAN] = BACK_ANIM_H_VIBRATE, - [SPECIES_ZAMAZENTA] = BACK_ANIM_H_VIBRATE, + [SPECIES_ZACIAN_HERO_OF_MANY_BATTLES] = BACK_ANIM_H_VIBRATE, + [SPECIES_ZAMAZENTA_HERO_OF_MANY_BATTLES] = BACK_ANIM_H_VIBRATE, [SPECIES_ETERNATUS] = BACK_ANIM_H_VIBRATE, [SPECIES_KUBFU] = BACK_ANIM_H_VIBRATE, - [SPECIES_URSHIFU] = BACK_ANIM_H_VIBRATE, + [SPECIES_URSHIFU_SINGLE_STRIKE_STYLE] = BACK_ANIM_H_VIBRATE, [SPECIES_ZARUDE] = BACK_ANIM_H_VIBRATE, [SPECIES_REGIELEKI] = BACK_ANIM_H_VIBRATE, [SPECIES_REGIDRAGO] = BACK_ANIM_H_VIBRATE, @@ -1134,10 +1196,10 @@ static const u8 sSpeciesToBackAnimSet[NUM_SPECIES] = [SPECIES_WYRDEER] = BACK_ANIM_H_VIBRATE, [SPECIES_KLEAVOR] = BACK_ANIM_H_VIBRATE, [SPECIES_URSALUNA] = BACK_ANIM_H_VIBRATE, - [SPECIES_BASCULEGION] = BACK_ANIM_H_VIBRATE, + [SPECIES_BASCULEGION_MALE] = BACK_ANIM_H_VIBRATE, [SPECIES_SNEASLER] = BACK_ANIM_H_VIBRATE, [SPECIES_OVERQWIL] = BACK_ANIM_H_VIBRATE, - [SPECIES_ENAMORUS] = BACK_ANIM_H_VIBRATE, + [SPECIES_ENAMORUS_INCARNATE] = BACK_ANIM_H_VIBRATE, // Gen 3 Forms [SPECIES_CASTFORM_SUNNY] = BACK_ANIM_SHAKE_GLOW_RED, @@ -1266,8 +1328,8 @@ static const u8 sSpeciesToBackAnimSet[NUM_SPECIES] = [SPECIES_ORICORIO_PAU] = BACK_ANIM_H_VIBRATE, [SPECIES_ORICORIO_SENSU] = BACK_ANIM_H_VIBRATE, [SPECIES_ROCKRUFF_OWN_TEMPO] = BACK_ANIM_H_VIBRATE, - [SPECIES_LYCANROC_MIDNIGHT] = BACK_ANIM_H_VIBRATE, - [SPECIES_LYCANROC_DUSK] = BACK_ANIM_H_VIBRATE, + [SPECIES_LYCANROC_MIDNIGHT] = BACK_ANIM_SHRINK_GROW_VIBRATE, + [SPECIES_LYCANROC_DUSK] = BACK_ANIM_V_SHAKE, [SPECIES_WISHIWASHI_SCHOOL] = BACK_ANIM_H_VIBRATE, [SPECIES_SILVALLY_FIGHTING] = BACK_ANIM_H_VIBRATE, [SPECIES_SILVALLY_FLYING] = BACK_ANIM_H_VIBRATE, @@ -1311,14 +1373,6 @@ static const u8 sSpeciesToBackAnimSet[NUM_SPECIES] = [SPECIES_TOXTRICITY_LOW_KEY] = BACK_ANIM_H_VIBRATE, [SPECIES_SINISTEA_ANTIQUE] = BACK_ANIM_H_VIBRATE, [SPECIES_POLTEAGEIST_ANTIQUE] = BACK_ANIM_H_VIBRATE, - [SPECIES_ALCREMIE_RUBY_CREAM] = BACK_ANIM_H_VIBRATE, - [SPECIES_ALCREMIE_MATCHA_CREAM] = BACK_ANIM_H_VIBRATE, - [SPECIES_ALCREMIE_MINT_CREAM] = BACK_ANIM_H_VIBRATE, - [SPECIES_ALCREMIE_LEMON_CREAM] = BACK_ANIM_H_VIBRATE, - [SPECIES_ALCREMIE_SALTED_CREAM] = BACK_ANIM_H_VIBRATE, - [SPECIES_ALCREMIE_RUBY_SWIRL] = BACK_ANIM_H_VIBRATE, - [SPECIES_ALCREMIE_CARAMEL_SWIRL] = BACK_ANIM_H_VIBRATE, - [SPECIES_ALCREMIE_RAINBOW_SWIRL] = BACK_ANIM_H_VIBRATE, [SPECIES_EISCUE_NOICE_FACE] = BACK_ANIM_H_VIBRATE, [SPECIES_INDEEDEE_FEMALE] = BACK_ANIM_H_VIBRATE, [SPECIES_MORPEKO_HANGRY] = BACK_ANIM_H_VIBRATE, diff --git a/src/pokemon_icon.c b/src/pokemon_icon.c index 953e7990e2..af10fb542b 100644 --- a/src/pokemon_icon.c +++ b/src/pokemon_icon.c @@ -908,7 +908,69 @@ const u8 *const gMonIconTable[NUM_SPECIES + 1] = [SPECIES_MR_RIME] = gMonIcon_MrRime, [SPECIES_RUNERIGUS] = gMonIcon_Runerigus, [SPECIES_MILCERY] = gMonIcon_Milcery, - [SPECIES_ALCREMIE_STRAWBERRY_VANILLA_CREAM] = gMonIcon_Alcremie, + [SPECIES_ALCREMIE_STRAWBERRY_VANILLA_CREAM] = gMonIcon_AlcremieStrawberryVanillaCream, + [SPECIES_ALCREMIE_STRAWBERRY_RUBY_CREAM] = gMonIcon_AlcremieStrawberryVanillaCream,//gMonIcon_AlcremieStrawberryRubyCream, + [SPECIES_ALCREMIE_STRAWBERRY_MATCHA_CREAM] = gMonIcon_AlcremieStrawberryVanillaCream,//gMonIcon_AlcremieStrawberryMatchaCream, + [SPECIES_ALCREMIE_STRAWBERRY_MINT_CREAM] = gMonIcon_AlcremieStrawberryVanillaCream,//gMonIcon_AlcremieStrawberryMintCream, + [SPECIES_ALCREMIE_STRAWBERRY_LEMON_CREAM] = gMonIcon_AlcremieStrawberryVanillaCream,//gMonIcon_AlcremieStrawberryLemonCream, + [SPECIES_ALCREMIE_STRAWBERRY_SALTED_CREAM] = gMonIcon_AlcremieStrawberryVanillaCream,//gMonIcon_AlcremieStrawberrySaltedCream, + [SPECIES_ALCREMIE_STRAWBERRY_RUBY_SWIRL] = gMonIcon_AlcremieStrawberryVanillaCream,//gMonIcon_AlcremieStrawberryRubySwirl, + [SPECIES_ALCREMIE_STRAWBERRY_CARAMEL_SWIRL] = gMonIcon_AlcremieStrawberryVanillaCream,//gMonIcon_AlcremieStrawberryCaramelSwirl, + [SPECIES_ALCREMIE_STRAWBERRY_RAINBOW_SWIRL] = gMonIcon_AlcremieStrawberryVanillaCream,//gMonIcon_AlcremieStrawberryRainbowSwirl, + [SPECIES_ALCREMIE_BERRY_VANILLA_CREAM] = gMonIcon_AlcremieStrawberryVanillaCream, + [SPECIES_ALCREMIE_BERRY_RUBY_CREAM] = gMonIcon_AlcremieStrawberryVanillaCream,//gMonIcon_AlcremieStrawberryRubyCream, + [SPECIES_ALCREMIE_BERRY_MATCHA_CREAM] = gMonIcon_AlcremieStrawberryVanillaCream,//gMonIcon_AlcremieStrawberryMatchaCream, + [SPECIES_ALCREMIE_BERRY_MINT_CREAM] = gMonIcon_AlcremieStrawberryVanillaCream,//gMonIcon_AlcremieStrawberryMintCream, + [SPECIES_ALCREMIE_BERRY_LEMON_CREAM] = gMonIcon_AlcremieStrawberryVanillaCream,//gMonIcon_AlcremieStrawberryLemonCream, + [SPECIES_ALCREMIE_BERRY_SALTED_CREAM] = gMonIcon_AlcremieStrawberryVanillaCream,//gMonIcon_AlcremieStrawberrySaltedCream, + [SPECIES_ALCREMIE_BERRY_RUBY_SWIRL] = gMonIcon_AlcremieStrawberryVanillaCream,//gMonIcon_AlcremieStrawberryRubySwirl, + [SPECIES_ALCREMIE_BERRY_CARAMEL_SWIRL] = gMonIcon_AlcremieStrawberryVanillaCream,//gMonIcon_AlcremieStrawberryCaramelSwirl, + [SPECIES_ALCREMIE_BERRY_RAINBOW_SWIRL] = gMonIcon_AlcremieStrawberryVanillaCream,//gMonIcon_AlcremieStrawberryRainbowSwirl, + [SPECIES_ALCREMIE_LOVE_VANILLA_CREAM] = gMonIcon_AlcremieStrawberryVanillaCream, + [SPECIES_ALCREMIE_LOVE_RUBY_CREAM] = gMonIcon_AlcremieStrawberryVanillaCream,//gMonIcon_AlcremieStrawberryRubyCream, + [SPECIES_ALCREMIE_LOVE_MATCHA_CREAM] = gMonIcon_AlcremieStrawberryVanillaCream,//gMonIcon_AlcremieStrawberryMatchaCream, + [SPECIES_ALCREMIE_LOVE_MINT_CREAM] = gMonIcon_AlcremieStrawberryVanillaCream,//gMonIcon_AlcremieStrawberryMintCream, + [SPECIES_ALCREMIE_LOVE_LEMON_CREAM] = gMonIcon_AlcremieStrawberryVanillaCream,//gMonIcon_AlcremieStrawberryLemonCream, + [SPECIES_ALCREMIE_LOVE_SALTED_CREAM] = gMonIcon_AlcremieStrawberryVanillaCream,//gMonIcon_AlcremieStrawberrySaltedCream, + [SPECIES_ALCREMIE_LOVE_RUBY_SWIRL] = gMonIcon_AlcremieStrawberryVanillaCream,//gMonIcon_AlcremieStrawberryRubySwirl, + [SPECIES_ALCREMIE_LOVE_CARAMEL_SWIRL] = gMonIcon_AlcremieStrawberryVanillaCream,//gMonIcon_AlcremieStrawberryCaramelSwirl, + [SPECIES_ALCREMIE_LOVE_RAINBOW_SWIRL] = gMonIcon_AlcremieStrawberryVanillaCream,//gMonIcon_AlcremieStrawberryRainbowSwirl, + [SPECIES_ALCREMIE_STAR_VANILLA_CREAM] = gMonIcon_AlcremieStrawberryVanillaCream, + [SPECIES_ALCREMIE_STAR_RUBY_CREAM] = gMonIcon_AlcremieStrawberryVanillaCream,//gMonIcon_AlcremieStrawberryRubyCream, + [SPECIES_ALCREMIE_STAR_MATCHA_CREAM] = gMonIcon_AlcremieStrawberryVanillaCream,//gMonIcon_AlcremieStrawberryMatchaCream, + [SPECIES_ALCREMIE_STAR_MINT_CREAM] = gMonIcon_AlcremieStrawberryVanillaCream,//gMonIcon_AlcremieStrawberryMintCream, + [SPECIES_ALCREMIE_STAR_LEMON_CREAM] = gMonIcon_AlcremieStrawberryVanillaCream,//gMonIcon_AlcremieStrawberryLemonCream, + [SPECIES_ALCREMIE_STAR_SALTED_CREAM] = gMonIcon_AlcremieStrawberryVanillaCream,//gMonIcon_AlcremieStrawberrySaltedCream, + [SPECIES_ALCREMIE_STAR_RUBY_SWIRL] = gMonIcon_AlcremieStrawberryVanillaCream,//gMonIcon_AlcremieStrawberryRubySwirl, + [SPECIES_ALCREMIE_STAR_CARAMEL_SWIRL] = gMonIcon_AlcremieStrawberryVanillaCream,//gMonIcon_AlcremieStrawberryCaramelSwirl, + [SPECIES_ALCREMIE_STAR_RAINBOW_SWIRL] = gMonIcon_AlcremieStrawberryVanillaCream,//gMonIcon_AlcremieStrawberryRainbowSwirl, + [SPECIES_ALCREMIE_CLOVER_VANILLA_CREAM] = gMonIcon_AlcremieStrawberryVanillaCream, + [SPECIES_ALCREMIE_CLOVER_RUBY_CREAM] = gMonIcon_AlcremieStrawberryVanillaCream,//gMonIcon_AlcremieStrawberryRubyCream, + [SPECIES_ALCREMIE_CLOVER_MATCHA_CREAM] = gMonIcon_AlcremieStrawberryVanillaCream,//gMonIcon_AlcremieStrawberryMatchaCream, + [SPECIES_ALCREMIE_CLOVER_MINT_CREAM] = gMonIcon_AlcremieStrawberryVanillaCream,//gMonIcon_AlcremieStrawberryMintCream, + [SPECIES_ALCREMIE_CLOVER_LEMON_CREAM] = gMonIcon_AlcremieStrawberryVanillaCream,//gMonIcon_AlcremieStrawberryLemonCream, + [SPECIES_ALCREMIE_CLOVER_SALTED_CREAM] = gMonIcon_AlcremieStrawberryVanillaCream,//gMonIcon_AlcremieStrawberrySaltedCream, + [SPECIES_ALCREMIE_CLOVER_RUBY_SWIRL] = gMonIcon_AlcremieStrawberryVanillaCream,//gMonIcon_AlcremieStrawberryRubySwirl, + [SPECIES_ALCREMIE_CLOVER_CARAMEL_SWIRL] = gMonIcon_AlcremieStrawberryVanillaCream,//gMonIcon_AlcremieStrawberryCaramelSwirl, + [SPECIES_ALCREMIE_CLOVER_RAINBOW_SWIRL] = gMonIcon_AlcremieStrawberryVanillaCream,//gMonIcon_AlcremieStrawberryRainbowSwirl, + [SPECIES_ALCREMIE_FLOWER_VANILLA_CREAM] = gMonIcon_AlcremieStrawberryVanillaCream, + [SPECIES_ALCREMIE_FLOWER_RUBY_CREAM] = gMonIcon_AlcremieStrawberryVanillaCream,//gMonIcon_AlcremieStrawberryRubyCream, + [SPECIES_ALCREMIE_FLOWER_MATCHA_CREAM] = gMonIcon_AlcremieStrawberryVanillaCream,//gMonIcon_AlcremieStrawberryMatchaCream, + [SPECIES_ALCREMIE_FLOWER_MINT_CREAM] = gMonIcon_AlcremieStrawberryVanillaCream,//gMonIcon_AlcremieStrawberryMintCream, + [SPECIES_ALCREMIE_FLOWER_LEMON_CREAM] = gMonIcon_AlcremieStrawberryVanillaCream,//gMonIcon_AlcremieStrawberryLemonCream, + [SPECIES_ALCREMIE_FLOWER_SALTED_CREAM] = gMonIcon_AlcremieStrawberryVanillaCream,//gMonIcon_AlcremieStrawberrySaltedCream, + [SPECIES_ALCREMIE_FLOWER_RUBY_SWIRL] = gMonIcon_AlcremieStrawberryVanillaCream,//gMonIcon_AlcremieStrawberryRubySwirl, + [SPECIES_ALCREMIE_FLOWER_CARAMEL_SWIRL] = gMonIcon_AlcremieStrawberryVanillaCream,//gMonIcon_AlcremieStrawberryCaramelSwirl, + [SPECIES_ALCREMIE_FLOWER_RAINBOW_SWIRL] = gMonIcon_AlcremieStrawberryVanillaCream,//gMonIcon_AlcremieStrawberryRainbowSwirl, + [SPECIES_ALCREMIE_RIBBON_VANILLA_CREAM] = gMonIcon_AlcremieStrawberryVanillaCream, + [SPECIES_ALCREMIE_RIBBON_RUBY_CREAM] = gMonIcon_AlcremieStrawberryVanillaCream,//gMonIcon_AlcremieStrawberryRubyCream, + [SPECIES_ALCREMIE_RIBBON_MATCHA_CREAM] = gMonIcon_AlcremieStrawberryVanillaCream,//gMonIcon_AlcremieStrawberryMatchaCream, + [SPECIES_ALCREMIE_RIBBON_MINT_CREAM] = gMonIcon_AlcremieStrawberryVanillaCream,//gMonIcon_AlcremieStrawberryMintCream, + [SPECIES_ALCREMIE_RIBBON_LEMON_CREAM] = gMonIcon_AlcremieStrawberryVanillaCream,//gMonIcon_AlcremieStrawberryLemonCream, + [SPECIES_ALCREMIE_RIBBON_SALTED_CREAM] = gMonIcon_AlcremieStrawberryVanillaCream,//gMonIcon_AlcremieStrawberrySaltedCream, + [SPECIES_ALCREMIE_RIBBON_RUBY_SWIRL] = gMonIcon_AlcremieStrawberryVanillaCream,//gMonIcon_AlcremieStrawberryRubySwirl, + [SPECIES_ALCREMIE_RIBBON_CARAMEL_SWIRL] = gMonIcon_AlcremieStrawberryVanillaCream,//gMonIcon_AlcremieStrawberryCaramelSwirl, + [SPECIES_ALCREMIE_RIBBON_RAINBOW_SWIRL] = gMonIcon_AlcremieStrawberryVanillaCream,//gMonIcon_AlcremieStrawberryRainbowSwirl, [SPECIES_FALINKS] = gMonIcon_Falinks, [SPECIES_PINCURCHIN] = gMonIcon_Pincurchin, [SPECIES_SNOM] = gMonIcon_Snom, @@ -1279,14 +1341,6 @@ const u8 *const gMonIconTable[NUM_SPECIES + 1] = [SPECIES_TOXTRICITY_LOW_KEY] = gMonIcon_ToxtricityLowKey, [SPECIES_SINISTEA_ANTIQUE] = gMonIcon_Sinistea, [SPECIES_POLTEAGEIST_ANTIQUE] = gMonIcon_Polteageist, - [SPECIES_ALCREMIE_STRAWBERRY_RUBY_CREAM] = gMonIcon_QuestionMark,//gMonIcon_AlcremieStrawberryRubyCream, - [SPECIES_ALCREMIE_STRAWBERRY_MATCHA_CREAM] = gMonIcon_QuestionMark,//gMonIcon_AlcremieStrawberryMatchaCream, - [SPECIES_ALCREMIE_STRAWBERRY_MINT_CREAM] = gMonIcon_QuestionMark,//gMonIcon_AlcremieStrawberryMintCream, - [SPECIES_ALCREMIE_STRAWBERRY_LEMON_CREAM] = gMonIcon_QuestionMark,//gMonIcon_AlcremieStrawberryLemonCream, - [SPECIES_ALCREMIE_STRAWBERRY_SALTED_CREAM] = gMonIcon_QuestionMark,//gMonIcon_AlcremieStrawberrySaltedCream, - [SPECIES_ALCREMIE_STRAWBERRY_RUBY_SWIRL] = gMonIcon_QuestionMark,//gMonIcon_AlcremieStrawberryRubySwirl, - [SPECIES_ALCREMIE_STRAWBERRY_CARAMEL_SWIRL] = gMonIcon_QuestionMark,//gMonIcon_AlcremieStrawberryCaramelSwirl, - [SPECIES_ALCREMIE_STRAWBERRY_RAINBOW_SWIRL] = gMonIcon_QuestionMark,//gMonIcon_AlcremieStrawberryRainbowSwirl, [SPECIES_EISCUE_NOICE_FACE] = gMonIcon_EiscueNoiceFace, [SPECIES_INDEEDEE_FEMALE] = gMonIcon_IndeedeeFemale, [SPECIES_MORPEKO_HANGRY] = gMonIcon_MorpekoHangry, @@ -2360,6 +2414,68 @@ const u8 gMonIconPaletteIndices[] = [SPECIES_RUNERIGUS] = 2, [SPECIES_MILCERY] = 1, [SPECIES_ALCREMIE_STRAWBERRY_VANILLA_CREAM] = 1, + [SPECIES_ALCREMIE_STRAWBERRY_RUBY_CREAM] = 1, + [SPECIES_ALCREMIE_STRAWBERRY_MATCHA_CREAM] = 1, + [SPECIES_ALCREMIE_STRAWBERRY_MINT_CREAM] = 1, + [SPECIES_ALCREMIE_STRAWBERRY_LEMON_CREAM] = 1, + [SPECIES_ALCREMIE_STRAWBERRY_SALTED_CREAM] = 1, + [SPECIES_ALCREMIE_STRAWBERRY_RUBY_SWIRL] = 1, + [SPECIES_ALCREMIE_STRAWBERRY_CARAMEL_SWIRL] = 1, + [SPECIES_ALCREMIE_STRAWBERRY_RAINBOW_SWIRL] = 1, + [SPECIES_ALCREMIE_BERRY_VANILLA_CREAM] = 1, + [SPECIES_ALCREMIE_BERRY_RUBY_CREAM] = 1, + [SPECIES_ALCREMIE_BERRY_MATCHA_CREAM] = 1, + [SPECIES_ALCREMIE_BERRY_MINT_CREAM] = 1, + [SPECIES_ALCREMIE_BERRY_LEMON_CREAM] = 1, + [SPECIES_ALCREMIE_BERRY_SALTED_CREAM] = 1, + [SPECIES_ALCREMIE_BERRY_RUBY_SWIRL] = 1, + [SPECIES_ALCREMIE_BERRY_CARAMEL_SWIRL] = 1, + [SPECIES_ALCREMIE_BERRY_RAINBOW_SWIRL] = 1, + [SPECIES_ALCREMIE_LOVE_VANILLA_CREAM] = 1, + [SPECIES_ALCREMIE_LOVE_RUBY_CREAM] = 1, + [SPECIES_ALCREMIE_LOVE_MATCHA_CREAM] = 1, + [SPECIES_ALCREMIE_LOVE_MINT_CREAM] = 1, + [SPECIES_ALCREMIE_LOVE_LEMON_CREAM] = 1, + [SPECIES_ALCREMIE_LOVE_SALTED_CREAM] = 1, + [SPECIES_ALCREMIE_LOVE_RUBY_SWIRL] = 1, + [SPECIES_ALCREMIE_LOVE_CARAMEL_SWIRL] = 1, + [SPECIES_ALCREMIE_LOVE_RAINBOW_SWIRL] = 1, + [SPECIES_ALCREMIE_STAR_VANILLA_CREAM] = 1, + [SPECIES_ALCREMIE_STAR_RUBY_CREAM] = 1, + [SPECIES_ALCREMIE_STAR_MATCHA_CREAM] = 1, + [SPECIES_ALCREMIE_STAR_MINT_CREAM] = 1, + [SPECIES_ALCREMIE_STAR_LEMON_CREAM] = 1, + [SPECIES_ALCREMIE_STAR_SALTED_CREAM] = 1, + [SPECIES_ALCREMIE_STAR_RUBY_SWIRL] = 1, + [SPECIES_ALCREMIE_STAR_CARAMEL_SWIRL] = 1, + [SPECIES_ALCREMIE_STAR_RAINBOW_SWIRL] = 1, + [SPECIES_ALCREMIE_CLOVER_VANILLA_CREAM] = 1, + [SPECIES_ALCREMIE_CLOVER_RUBY_CREAM] = 1, + [SPECIES_ALCREMIE_CLOVER_MATCHA_CREAM] = 1, + [SPECIES_ALCREMIE_CLOVER_MINT_CREAM] = 1, + [SPECIES_ALCREMIE_CLOVER_LEMON_CREAM] = 1, + [SPECIES_ALCREMIE_CLOVER_SALTED_CREAM] = 1, + [SPECIES_ALCREMIE_CLOVER_RUBY_SWIRL] = 1, + [SPECIES_ALCREMIE_CLOVER_CARAMEL_SWIRL] = 1, + [SPECIES_ALCREMIE_CLOVER_RAINBOW_SWIRL] = 1, + [SPECIES_ALCREMIE_FLOWER_VANILLA_CREAM] = 1, + [SPECIES_ALCREMIE_FLOWER_RUBY_CREAM] = 1, + [SPECIES_ALCREMIE_FLOWER_MATCHA_CREAM] = 1, + [SPECIES_ALCREMIE_FLOWER_MINT_CREAM] = 1, + [SPECIES_ALCREMIE_FLOWER_LEMON_CREAM] = 1, + [SPECIES_ALCREMIE_FLOWER_SALTED_CREAM] = 1, + [SPECIES_ALCREMIE_FLOWER_RUBY_SWIRL] = 1, + [SPECIES_ALCREMIE_FLOWER_CARAMEL_SWIRL] = 1, + [SPECIES_ALCREMIE_FLOWER_RAINBOW_SWIRL] = 1, + [SPECIES_ALCREMIE_RIBBON_VANILLA_CREAM] = 1, + [SPECIES_ALCREMIE_RIBBON_RUBY_CREAM] = 1, + [SPECIES_ALCREMIE_RIBBON_MATCHA_CREAM] = 1, + [SPECIES_ALCREMIE_RIBBON_MINT_CREAM] = 1, + [SPECIES_ALCREMIE_RIBBON_LEMON_CREAM] = 1, + [SPECIES_ALCREMIE_RIBBON_SALTED_CREAM] = 1, + [SPECIES_ALCREMIE_RIBBON_RUBY_SWIRL] = 1, + [SPECIES_ALCREMIE_RIBBON_CARAMEL_SWIRL] = 1, + [SPECIES_ALCREMIE_RIBBON_RAINBOW_SWIRL] = 1, [SPECIES_FALINKS] = 0, [SPECIES_PINCURCHIN] = 0, [SPECIES_SNOM] = 0, @@ -2683,14 +2799,6 @@ const u8 gMonIconPaletteIndices[] = [SPECIES_TOXTRICITY_LOW_KEY] = 2, [SPECIES_SINISTEA_ANTIQUE] = 2, [SPECIES_POLTEAGEIST_ANTIQUE] = 2, - [SPECIES_ALCREMIE_STRAWBERRY_RUBY_CREAM] = 0, - [SPECIES_ALCREMIE_STRAWBERRY_MATCHA_CREAM] = 0, - [SPECIES_ALCREMIE_STRAWBERRY_MINT_CREAM] = 0, - [SPECIES_ALCREMIE_STRAWBERRY_LEMON_CREAM] = 0, - [SPECIES_ALCREMIE_STRAWBERRY_SALTED_CREAM] = 0, - [SPECIES_ALCREMIE_STRAWBERRY_RUBY_SWIRL] = 0, - [SPECIES_ALCREMIE_STRAWBERRY_CARAMEL_SWIRL] = 0, - [SPECIES_ALCREMIE_STRAWBERRY_RAINBOW_SWIRL] = 0, [SPECIES_EISCUE_NOICE_FACE] = 0, [SPECIES_INDEEDEE_FEMALE] = 2, [SPECIES_MORPEKO_HANGRY] = 2, diff --git a/src/pokemon_jump.c b/src/pokemon_jump.c index 12b3b35c7f..c85d01453f 100755 --- a/src/pokemon_jump.c +++ b/src/pokemon_jump.c @@ -704,6 +704,60 @@ static const struct PokemonJumpMons sPokeJumpMons[] = { .species = SPECIES_ALCREMIE_STRAWBERRY_RUBY_SWIRL, .jumpType = JUMP_TYPE_SLOW, }, { .species = SPECIES_ALCREMIE_STRAWBERRY_CARAMEL_SWIRL, .jumpType = JUMP_TYPE_SLOW, }, { .species = SPECIES_ALCREMIE_STRAWBERRY_RAINBOW_SWIRL, .jumpType = JUMP_TYPE_SLOW, }, + { .species = SPECIES_ALCREMIE_BERRY_VANILLA_CREAM, .jumpType = JUMP_TYPE_SLOW, }, + { .species = SPECIES_ALCREMIE_BERRY_RUBY_CREAM, .jumpType = JUMP_TYPE_SLOW, }, + { .species = SPECIES_ALCREMIE_BERRY_MATCHA_CREAM, .jumpType = JUMP_TYPE_SLOW, }, + { .species = SPECIES_ALCREMIE_BERRY_MINT_CREAM, .jumpType = JUMP_TYPE_SLOW, }, + { .species = SPECIES_ALCREMIE_BERRY_LEMON_CREAM, .jumpType = JUMP_TYPE_SLOW, }, + { .species = SPECIES_ALCREMIE_BERRY_SALTED_CREAM, .jumpType = JUMP_TYPE_SLOW, }, + { .species = SPECIES_ALCREMIE_BERRY_RUBY_SWIRL, .jumpType = JUMP_TYPE_SLOW, }, + { .species = SPECIES_ALCREMIE_BERRY_CARAMEL_SWIRL, .jumpType = JUMP_TYPE_SLOW, }, + { .species = SPECIES_ALCREMIE_BERRY_RAINBOW_SWIRL, .jumpType = JUMP_TYPE_SLOW, }, + { .species = SPECIES_ALCREMIE_LOVE_VANILLA_CREAM, .jumpType = JUMP_TYPE_SLOW, }, + { .species = SPECIES_ALCREMIE_LOVE_RUBY_CREAM, .jumpType = JUMP_TYPE_SLOW, }, + { .species = SPECIES_ALCREMIE_LOVE_MATCHA_CREAM, .jumpType = JUMP_TYPE_SLOW, }, + { .species = SPECIES_ALCREMIE_LOVE_MINT_CREAM, .jumpType = JUMP_TYPE_SLOW, }, + { .species = SPECIES_ALCREMIE_LOVE_LEMON_CREAM, .jumpType = JUMP_TYPE_SLOW, }, + { .species = SPECIES_ALCREMIE_LOVE_SALTED_CREAM, .jumpType = JUMP_TYPE_SLOW, }, + { .species = SPECIES_ALCREMIE_LOVE_RUBY_SWIRL, .jumpType = JUMP_TYPE_SLOW, }, + { .species = SPECIES_ALCREMIE_LOVE_CARAMEL_SWIRL, .jumpType = JUMP_TYPE_SLOW, }, + { .species = SPECIES_ALCREMIE_LOVE_RAINBOW_SWIRL, .jumpType = JUMP_TYPE_SLOW, }, + { .species = SPECIES_ALCREMIE_STAR_VANILLA_CREAM, .jumpType = JUMP_TYPE_SLOW, }, + { .species = SPECIES_ALCREMIE_STAR_RUBY_CREAM, .jumpType = JUMP_TYPE_SLOW, }, + { .species = SPECIES_ALCREMIE_STAR_MATCHA_CREAM, .jumpType = JUMP_TYPE_SLOW, }, + { .species = SPECIES_ALCREMIE_STAR_MINT_CREAM, .jumpType = JUMP_TYPE_SLOW, }, + { .species = SPECIES_ALCREMIE_STAR_LEMON_CREAM, .jumpType = JUMP_TYPE_SLOW, }, + { .species = SPECIES_ALCREMIE_STAR_SALTED_CREAM, .jumpType = JUMP_TYPE_SLOW, }, + { .species = SPECIES_ALCREMIE_STAR_RUBY_SWIRL, .jumpType = JUMP_TYPE_SLOW, }, + { .species = SPECIES_ALCREMIE_STAR_CARAMEL_SWIRL, .jumpType = JUMP_TYPE_SLOW, }, + { .species = SPECIES_ALCREMIE_STAR_RAINBOW_SWIRL, .jumpType = JUMP_TYPE_SLOW, }, + { .species = SPECIES_ALCREMIE_CLOVER_VANILLA_CREAM, .jumpType = JUMP_TYPE_SLOW, }, + { .species = SPECIES_ALCREMIE_CLOVER_RUBY_CREAM, .jumpType = JUMP_TYPE_SLOW, }, + { .species = SPECIES_ALCREMIE_CLOVER_MATCHA_CREAM, .jumpType = JUMP_TYPE_SLOW, }, + { .species = SPECIES_ALCREMIE_CLOVER_MINT_CREAM, .jumpType = JUMP_TYPE_SLOW, }, + { .species = SPECIES_ALCREMIE_CLOVER_LEMON_CREAM, .jumpType = JUMP_TYPE_SLOW, }, + { .species = SPECIES_ALCREMIE_CLOVER_SALTED_CREAM, .jumpType = JUMP_TYPE_SLOW, }, + { .species = SPECIES_ALCREMIE_CLOVER_RUBY_SWIRL, .jumpType = JUMP_TYPE_SLOW, }, + { .species = SPECIES_ALCREMIE_CLOVER_CARAMEL_SWIRL, .jumpType = JUMP_TYPE_SLOW, }, + { .species = SPECIES_ALCREMIE_CLOVER_RAINBOW_SWIRL, .jumpType = JUMP_TYPE_SLOW, }, + { .species = SPECIES_ALCREMIE_FLOWER_VANILLA_CREAM, .jumpType = JUMP_TYPE_SLOW, }, + { .species = SPECIES_ALCREMIE_FLOWER_RUBY_CREAM, .jumpType = JUMP_TYPE_SLOW, }, + { .species = SPECIES_ALCREMIE_FLOWER_MATCHA_CREAM, .jumpType = JUMP_TYPE_SLOW, }, + { .species = SPECIES_ALCREMIE_FLOWER_MINT_CREAM, .jumpType = JUMP_TYPE_SLOW, }, + { .species = SPECIES_ALCREMIE_FLOWER_LEMON_CREAM, .jumpType = JUMP_TYPE_SLOW, }, + { .species = SPECIES_ALCREMIE_FLOWER_SALTED_CREAM, .jumpType = JUMP_TYPE_SLOW, }, + { .species = SPECIES_ALCREMIE_FLOWER_RUBY_SWIRL, .jumpType = JUMP_TYPE_SLOW, }, + { .species = SPECIES_ALCREMIE_FLOWER_CARAMEL_SWIRL, .jumpType = JUMP_TYPE_SLOW, }, + { .species = SPECIES_ALCREMIE_FLOWER_RAINBOW_SWIRL, .jumpType = JUMP_TYPE_SLOW, }, + { .species = SPECIES_ALCREMIE_RIBBON_VANILLA_CREAM, .jumpType = JUMP_TYPE_SLOW, }, + { .species = SPECIES_ALCREMIE_RIBBON_RUBY_CREAM, .jumpType = JUMP_TYPE_SLOW, }, + { .species = SPECIES_ALCREMIE_RIBBON_MATCHA_CREAM, .jumpType = JUMP_TYPE_SLOW, }, + { .species = SPECIES_ALCREMIE_RIBBON_MINT_CREAM, .jumpType = JUMP_TYPE_SLOW, }, + { .species = SPECIES_ALCREMIE_RIBBON_LEMON_CREAM, .jumpType = JUMP_TYPE_SLOW, }, + { .species = SPECIES_ALCREMIE_RIBBON_SALTED_CREAM, .jumpType = JUMP_TYPE_SLOW, }, + { .species = SPECIES_ALCREMIE_RIBBON_RUBY_SWIRL, .jumpType = JUMP_TYPE_SLOW, }, + { .species = SPECIES_ALCREMIE_RIBBON_CARAMEL_SWIRL, .jumpType = JUMP_TYPE_SLOW, }, + { .species = SPECIES_ALCREMIE_RIBBON_RAINBOW_SWIRL, .jumpType = JUMP_TYPE_SLOW, }, { .species = SPECIES_PINCURCHIN, .jumpType = JUMP_TYPE_SLOW, }, { .species = SPECIES_SNOM, .jumpType = JUMP_TYPE_SLOW, }, { .species = SPECIES_MORPEKO_FULL_BELLY, .jumpType = JUMP_TYPE_NORMAL, }, diff --git a/src/script_pokemon_util.c b/src/script_pokemon_util.c index ee3cc559f8..19b187bddf 100644 --- a/src/script_pokemon_util.c +++ b/src/script_pokemon_util.c @@ -21,6 +21,7 @@ #include "sprite.h" #include "string_util.h" #include "tv.h" +#include "wild_encounter.h" #include "constants/items.h" #include "constants/battle_frontier.h" @@ -66,7 +67,11 @@ u8 ScriptGiveMon(u16 species, u8 level, u16 item, u32 unused1, u32 unused2, u8 u struct Pokemon mon; u16 targetSpecies; - CreateMon(&mon, species, level, USE_RANDOM_IVS, FALSE, 0, OT_ID_PLAYER_ID, 0); + if (OW_SYNCHRONIZE_NATURE >= GEN_6 && (gSpeciesInfo[species].eggGroups[0] == EGG_GROUP_UNDISCOVERED || OW_SYNCHRONIZE_NATURE == GEN_7)) + CreateMonWithNature(&mon, species, level, USE_RANDOM_IVS, PickWildMonNature()); + else + CreateMon(&mon, species, level, USE_RANDOM_IVS, FALSE, 0, OT_ID_PLAYER_ID, 0); + heldItem[0] = item; heldItem[1] = item >> 8; SetMonData(&mon, MON_DATA_HELD_ITEM, heldItem); @@ -149,7 +154,10 @@ void CreateScriptedWildMon(u16 species, u8 level, u16 item) u8 heldItem[2]; ZeroEnemyPartyMons(); - CreateMon(&gEnemyParty[0], species, level, USE_RANDOM_IVS, 0, 0, OT_ID_PLAYER_ID, 0); + if (OW_SYNCHRONIZE_NATURE > GEN_3) + CreateMonWithNature(&gEnemyParty[0], species, level, USE_RANDOM_IVS, PickWildMonNature()); + else + CreateMon(&gEnemyParty[0], species, level, USE_RANDOM_IVS, 0, 0, OT_ID_PLAYER_ID, 0); if (item) { heldItem[0] = item; @@ -164,7 +172,10 @@ void CreateScriptedDoubleWildMon(u16 species1, u8 level1, u16 item1, u16 species ZeroEnemyPartyMons(); - CreateMon(&gEnemyParty[0], species1, level1, 32, 0, 0, OT_ID_PLAYER_ID, 0); + if (OW_SYNCHRONIZE_NATURE > GEN_3) + CreateMonWithNature(&gEnemyParty[0], species1, level1, 32, PickWildMonNature()); + else + CreateMon(&gEnemyParty[0], species1, level1, 32, 0, 0, OT_ID_PLAYER_ID, 0); if (item1) { heldItem1[0] = item1; @@ -172,7 +183,10 @@ void CreateScriptedDoubleWildMon(u16 species1, u8 level1, u16 item1, u16 species SetMonData(&gEnemyParty[0], MON_DATA_HELD_ITEM, heldItem1); } - CreateMon(&gEnemyParty[1], species2, level2, 32, 0, 0, OT_ID_PLAYER_ID, 0); + if (OW_SYNCHRONIZE_NATURE > GEN_3) + CreateMonWithNature(&gEnemyParty[1], species2, level2, 32, PickWildMonNature()); + else + CreateMon(&gEnemyParty[1], species2, level2, 32, 0, 0, OT_ID_PLAYER_ID, 0); if (item2) { heldItem2[0] = item2; diff --git a/src/title_screen.c b/src/title_screen.c index 87bf0d970e..12015b8bd8 100644 --- a/src/title_screen.c +++ b/src/title_screen.c @@ -23,6 +23,12 @@ #include "constants/rgb.h" #include "constants/songs.h" +enum { + TAG_VERSION = 1000, + TAG_PRESS_START_COPYRIGHT, + TAG_LOGO_SHINE, +}; + #define VERSION_BANNER_RIGHT_TILEOFFSET 64 #define VERSION_BANNER_LEFT_X 98 #define VERSION_BANNER_RIGHT_X 162 @@ -158,8 +164,8 @@ static const union AnimCmd *const sVersionBannerRightAnimTable[] = static const struct SpriteTemplate sVersionBannerLeftSpriteTemplate = { - .tileTag = 1000, - .paletteTag = 1000, + .tileTag = TAG_VERSION, + .paletteTag = TAG_VERSION, .oam = &sVersionBannerLeftOamData, .anims = sVersionBannerLeftAnimTable, .images = NULL, @@ -169,8 +175,8 @@ static const struct SpriteTemplate sVersionBannerLeftSpriteTemplate = static const struct SpriteTemplate sVersionBannerRightSpriteTemplate = { - .tileTag = 1000, - .paletteTag = 1000, + .tileTag = TAG_VERSION, + .paletteTag = TAG_VERSION, .oam = &sVersionBannerRightOamData, .anims = sVersionBannerRightAnimTable, .images = NULL, @@ -183,7 +189,7 @@ static const struct CompressedSpriteSheet sSpriteSheet_EmeraldVersion[] = { .data = gTitleScreenEmeraldVersionGfx, .size = 0x1000, - .tag = 1000 + .tag = TAG_VERSION }, {}, }; @@ -205,75 +211,80 @@ static const struct OamData sOamData_CopyrightBanner = .affineParam = 0, }; -static const union AnimCmd sCopyrightBannerAnim0[] = +static const union AnimCmd sAnim_PressStart_0[] = { ANIMCMD_FRAME(1, 4), ANIMCMD_END, }; -static const union AnimCmd sCopyrightBannerAnim1[] = +static const union AnimCmd sAnim_PressStart_1[] = { ANIMCMD_FRAME(5, 4), ANIMCMD_END, }; -static const union AnimCmd sCopyrightBannerAnim2[] = +static const union AnimCmd sAnim_PressStart_2[] = { ANIMCMD_FRAME(9, 4), ANIMCMD_END, }; -static const union AnimCmd sCopyrightBannerAnim3[] = +static const union AnimCmd sAnim_PressStart_3[] = { ANIMCMD_FRAME(13, 4), ANIMCMD_END, }; -static const union AnimCmd sCopyrightBannerAnim4[] = +static const union AnimCmd sAnim_PressStart_4[] = { ANIMCMD_FRAME(17, 4), ANIMCMD_END, }; -static const union AnimCmd sCopyrightBannerAnim5[] = +static const union AnimCmd sAnim_Copyright_0[] = { ANIMCMD_FRAME(21, 4), ANIMCMD_END, }; -static const union AnimCmd sCopyrightBannerAnim6[] = +static const union AnimCmd sAnim_Copyright_1[] = { ANIMCMD_FRAME(25, 4), ANIMCMD_END, }; -static const union AnimCmd sCopyrightBannerAnim7[] = +static const union AnimCmd sAnim_Copyright_2[] = { ANIMCMD_FRAME(29, 4), ANIMCMD_END, }; -static const union AnimCmd sCopyrightBannerAnim8[] = +static const union AnimCmd sAnim_Copyright_3[] = { ANIMCMD_FRAME(33, 4), ANIMCMD_END, }; -static const union AnimCmd sCopyrightBannerAnim9[] = +static const union AnimCmd sAnim_Copyright_4[] = { ANIMCMD_FRAME(37, 4), ANIMCMD_END, }; -static const union AnimCmd *const sStartCopyrightBannerAnimTable[] = +// The "Press Start" and copyright graphics are each 5 32x8 segments long +#define NUM_PRESS_START_FRAMES 5 +#define NUM_COPYRIGHT_FRAMES 5 + +static const union AnimCmd *const sStartCopyrightBannerAnimTable[NUM_PRESS_START_FRAMES + NUM_COPYRIGHT_FRAMES] = { - sCopyrightBannerAnim0, - sCopyrightBannerAnim1, - sCopyrightBannerAnim2, - sCopyrightBannerAnim3, - sCopyrightBannerAnim4, - sCopyrightBannerAnim5, - sCopyrightBannerAnim6, - sCopyrightBannerAnim7, - sCopyrightBannerAnim8, - sCopyrightBannerAnim9, + sAnim_PressStart_0, + sAnim_PressStart_1, + sAnim_PressStart_2, + sAnim_PressStart_3, + sAnim_PressStart_4, + [NUM_PRESS_START_FRAMES] = + sAnim_Copyright_0, + sAnim_Copyright_1, + sAnim_Copyright_2, + sAnim_Copyright_3, + sAnim_Copyright_4, }; static const struct SpriteTemplate sStartCopyrightBannerSpriteTemplate = { - .tileTag = 1001, - .paletteTag = 1001, + .tileTag = TAG_PRESS_START_COPYRIGHT, + .paletteTag = TAG_PRESS_START_COPYRIGHT, .oam = &sOamData_CopyrightBanner, .anims = sStartCopyrightBannerAnimTable, .images = NULL, @@ -286,7 +297,7 @@ static const struct CompressedSpriteSheet sSpriteSheet_PressStart[] = { .data = gTitleScreenPressStartGfx, .size = 0x520, - .tag = 1001 + .tag = TAG_PRESS_START_COPYRIGHT }, {}, }; @@ -295,7 +306,7 @@ static const struct SpritePalette sSpritePalette_PressStart[] = { { .data = gTitleScreenPressStartPal, - .tag = 1001 + .tag = TAG_PRESS_START_COPYRIGHT }, {}, }; @@ -330,8 +341,8 @@ static const union AnimCmd *const sPokemonLogoShineAnimTable[] = static const struct SpriteTemplate sPokemonLogoShineSpriteTemplate = { - .tileTag = 1002, - .paletteTag = 1001, + .tileTag = TAG_LOGO_SHINE, + .paletteTag = TAG_PRESS_START_COPYRIGHT, .oam = &sPokemonLogoShineOamData, .anims = sPokemonLogoShineAnimTable, .images = NULL, @@ -344,15 +355,25 @@ static const struct CompressedSpriteSheet sPokemonLogoShineSpriteSheet[] = { .data = sTitleScreenLogoShineGfx, .size = 0x800, - .tag = 1002 + .tag = TAG_LOGO_SHINE }, {}, }; -// code +// Task data for the main title screen tasks (Task_TitleScreenPhase#) +#define tCounter data[0] +#define tSkipToNext data[1] +#define tPointless data[2] // Incremented but never used to do anything. +#define tBg2Y data[3] +#define tBg1Y data[4] + +// Sprite data for sVersionBannerLeftSpriteTemplate / sVersionBannerRightSpriteTemplate +#define sAlphaBlendIdx data[0] +#define sParentTaskId data[1] + static void SpriteCB_VersionBannerLeft(struct Sprite *sprite) { - if (gTasks[sprite->data[1]].data[1] != 0) + if (gTasks[sprite->sParentTaskId].tSkipToNext) { sprite->oam.objMode = ST_OAM_OBJ_NORMAL; sprite->y = VERSION_BANNER_Y_GOAL; @@ -361,15 +382,15 @@ static void SpriteCB_VersionBannerLeft(struct Sprite *sprite) { if (sprite->y != VERSION_BANNER_Y_GOAL) sprite->y++; - if (sprite->data[0] != 0) - sprite->data[0]--; - SetGpuReg(REG_OFFSET_BLDALPHA, gTitleScreenAlphaBlend[sprite->data[0]]); + if (sprite->sAlphaBlendIdx != 0) + sprite->sAlphaBlendIdx--; + SetGpuReg(REG_OFFSET_BLDALPHA, gTitleScreenAlphaBlend[sprite->sAlphaBlendIdx]); } } static void SpriteCB_VersionBannerRight(struct Sprite *sprite) { - if (gTasks[sprite->data[1]].data[1] != 0) + if (gTasks[sprite->sParentTaskId].tSkipToNext) { sprite->oam.objMode = ST_OAM_OBJ_NORMAL; sprite->y = VERSION_BANNER_Y_GOAL; @@ -381,13 +402,16 @@ static void SpriteCB_VersionBannerRight(struct Sprite *sprite) } } +// Sprite data for SpriteCB_PressStartCopyrightBanner +#define sAnimate data[0] +#define sTimer data[1] + static void SpriteCB_PressStartCopyrightBanner(struct Sprite *sprite) { - if (sprite->data[0] == 1) + if (sprite->sAnimate == TRUE) { - sprite->data[1]++; // Alternate between hidden and shown every 16th frame - if (sprite->data[1] & 16) + if (++sprite->sTimer & 16) sprite->invisible = FALSE; else sprite->invisible = TRUE; @@ -404,11 +428,11 @@ static void CreatePressStartBanner(s16 x, s16 y) u8 spriteId; x -= 64; - for (i = 0; i < 5; i++, x += 32) + for (i = 0; i < NUM_PRESS_START_FRAMES; i++, x += 32) { spriteId = CreateSprite(&sStartCopyrightBannerSpriteTemplate, x, y, 0); StartSpriteAnim(&gSprites[spriteId], i); - gSprites[spriteId].data[0] = 1; + gSprites[spriteId].sAnimate = TRUE; } } @@ -418,93 +442,122 @@ static void CreateCopyrightBanner(s16 x, s16 y) u8 spriteId; x -= 64; - for (i = 0; i < 5; i++, x += 32) + for (i = 0; i < NUM_COPYRIGHT_FRAMES; i++, x += 32) { spriteId = CreateSprite(&sStartCopyrightBannerSpriteTemplate, x, y, 0); - StartSpriteAnim(&gSprites[spriteId], i + 5); + StartSpriteAnim(&gSprites[spriteId], i + NUM_PRESS_START_FRAMES); } } +#undef sAnimate +#undef sTimer + +// Defines for SpriteCB_PokemonLogoShine +enum { + SHINE_MODE_SINGLE_NO_BG_COLOR, + SHINE_MODE_DOUBLE, + SHINE_MODE_SINGLE, +}; + +#define SHINE_SPEED 4 + +#define sMode data[0] +#define sBgColor data[1] + static void SpriteCB_PokemonLogoShine(struct Sprite *sprite) { if (sprite->x < DISPLAY_WIDTH + 32) { - if (sprite->data[0]) // Flash background + // In any mode except SHINE_MODE_SINGLE_NO_BG_COLOR the background + // color will change, in addition to the shine sprite moving. + if (sprite->sMode != SHINE_MODE_SINGLE_NO_BG_COLOR) { u16 backgroundColor; if (sprite->x < DISPLAY_WIDTH / 2) { // Brighten background color - if (sprite->data[1] < 31) - sprite->data[1]++; - if (sprite->data[1] < 31) - sprite->data[1]++; + if (sprite->sBgColor < 31) + sprite->sBgColor++; + if (sprite->sBgColor < 31) + sprite->sBgColor++; } else { // Darken background color - if (sprite->data[1] != 0) - sprite->data[1]--; - if (sprite->data[1] != 0) - sprite->data[1]--; + if (sprite->sBgColor != 0) + sprite->sBgColor--; + if (sprite->sBgColor != 0) + sprite->sBgColor--; } - backgroundColor = _RGB(sprite->data[1], sprite->data[1], sprite->data[1]); - if (sprite->x == DISPLAY_WIDTH / 2 + 12 - || sprite->x == DISPLAY_WIDTH / 2 + 16 - || sprite->x == DISPLAY_WIDTH / 2 + 20 - || sprite->x == DISPLAY_WIDTH / 2 + 24) + backgroundColor = _RGB(sprite->sBgColor, sprite->sBgColor, sprite->sBgColor); + + // Flash the background green for 4 frames of movement. + // Otherwise use the updating color. + if (sprite->x == DISPLAY_WIDTH / 2 + (3 * SHINE_SPEED) + || sprite->x == DISPLAY_WIDTH / 2 + (4 * SHINE_SPEED) + || sprite->x == DISPLAY_WIDTH / 2 + (5 * SHINE_SPEED) + || sprite->x == DISPLAY_WIDTH / 2 + (6 * SHINE_SPEED)) gPlttBufferFaded[0] = RGB(24, 31, 12); else gPlttBufferFaded[0] = backgroundColor; } - sprite->x += 4; + + sprite->x += SHINE_SPEED; } else { + // Sprite has moved fully offscreen gPlttBufferFaded[0] = RGB_BLACK; DestroySprite(sprite); } } -static void SpriteCB_PokemonLogoShine2(struct Sprite *sprite) +static void SpriteCB_PokemonLogoShine_Fast(struct Sprite *sprite) { if (sprite->x < DISPLAY_WIDTH + 32) - sprite->x += 8; + sprite->x += SHINE_SPEED * 2; else DestroySprite(sprite); } -static void StartPokemonLogoShine(u8 flashBg) +static void StartPokemonLogoShine(u8 mode) { u8 spriteId; - switch (flashBg) + switch (mode) { - case 0: - case 2: + case SHINE_MODE_SINGLE_NO_BG_COLOR: + case SHINE_MODE_SINGLE: + // Create one regular shine sprite. + // If mode is SHINE_MODE_SINGLE it will also change the background color. spriteId = CreateSprite(&sPokemonLogoShineSpriteTemplate, 0, 68, 0); gSprites[spriteId].oam.objMode = ST_OAM_OBJ_WINDOW; - gSprites[spriteId].data[0] = flashBg; + gSprites[spriteId].sMode = mode; break; - case 1: + case SHINE_MODE_DOUBLE: + // Create an invisible sprite with mode set to update the background color spriteId = CreateSprite(&sPokemonLogoShineSpriteTemplate, 0, 68, 0); gSprites[spriteId].oam.objMode = ST_OAM_OBJ_WINDOW; - gSprites[spriteId].data[0] = flashBg; + gSprites[spriteId].sMode = mode; gSprites[spriteId].invisible = TRUE; + // Create two faster shine sprites spriteId = CreateSprite(&sPokemonLogoShineSpriteTemplate, 0, 68, 0); - gSprites[spriteId].callback = SpriteCB_PokemonLogoShine2; + gSprites[spriteId].callback = SpriteCB_PokemonLogoShine_Fast; gSprites[spriteId].oam.objMode = ST_OAM_OBJ_WINDOW; spriteId = CreateSprite(&sPokemonLogoShineSpriteTemplate, -80, 68, 0); - gSprites[spriteId].callback = SpriteCB_PokemonLogoShine2; + gSprites[spriteId].callback = SpriteCB_PokemonLogoShine_Fast; gSprites[spriteId].oam.objMode = ST_OAM_OBJ_WINDOW; break; } } +#undef sMode +#undef sBgColor + static void VBlankCB(void) { ScanlineEffect_InitHBlankDmaTransfer(); @@ -514,9 +567,6 @@ static void VBlankCB(void) SetGpuReg(REG_OFFSET_BG1VOFS, gBattle_BG1_Y); } -#define tCounter data[0] -#define tSkipToNext data[1] - void CB2_InitTitleScreen(void) { switch (gMain.state) @@ -573,13 +623,13 @@ void CB2_InitTitleScreen(void) gTasks[taskId].tCounter = 256; gTasks[taskId].tSkipToNext = FALSE; - gTasks[taskId].data[2] = -16; - gTasks[taskId].data[3] = -32; + gTasks[taskId].tPointless = -16; + gTasks[taskId].tBg2Y = -32; gMain.state = 3; break; } case 3: - BeginNormalPaletteFade(PALETTES_ALL, 1, 0x10, 0, RGB_WHITEALPHA); + BeginNormalPaletteFade(PALETTES_ALL, 1, 16, 0, RGB_WHITEALPHA); SetVBlankCallback(VBlankCB); gMain.state = 4; break; @@ -614,7 +664,7 @@ void CB2_InitTitleScreen(void) case 5: if (!UpdatePaletteFade()) { - StartPokemonLogoShine(0); + StartPokemonLogoShine(SHINE_MODE_SINGLE_NO_BG_COLOR); ScanlineEffect_InitWave(0, DISPLAY_HEIGHT, 4, 4, 0, SCANLINE_EFFECT_REG_BG1HOFS, TRUE); SetMainCallback2(MainCB2); } @@ -634,7 +684,7 @@ static void MainCB2(void) static void Task_TitleScreenPhase1(u8 taskId) { // Skip to next phase when A, B, Start, or Select is pressed - if (JOY_NEW(A_B_START_SELECT) || gTasks[taskId].data[1] != 0) + if (JOY_NEW(A_B_START_SELECT) || gTasks[taskId].tSkipToNext) { gTasks[taskId].tSkipToNext = TRUE; gTasks[taskId].tCounter = 0; @@ -644,9 +694,9 @@ static void Task_TitleScreenPhase1(u8 taskId) { u16 frameNum = gTasks[taskId].tCounter; if (frameNum == 176) - StartPokemonLogoShine(1); + StartPokemonLogoShine(SHINE_MODE_DOUBLE); else if (frameNum == 64) - StartPokemonLogoShine(2); + StartPokemonLogoShine(SHINE_MODE_SINGLE); gTasks[taskId].tCounter--; } @@ -663,18 +713,21 @@ static void Task_TitleScreenPhase1(u8 taskId) // Create left side of version banner spriteId = CreateSprite(&sVersionBannerLeftSpriteTemplate, VERSION_BANNER_LEFT_X, VERSION_BANNER_Y, 0); - gSprites[spriteId].data[0] = 64; - gSprites[spriteId].data[1] = taskId; + gSprites[spriteId].sAlphaBlendIdx = ARRAY_COUNT(gTitleScreenAlphaBlend); + gSprites[spriteId].sParentTaskId = taskId; // Create right side of version banner spriteId = CreateSprite(&sVersionBannerRightSpriteTemplate, VERSION_BANNER_RIGHT_X, VERSION_BANNER_Y, 0); - gSprites[spriteId].data[1] = taskId; + gSprites[spriteId].sParentTaskId = taskId; gTasks[taskId].tCounter = 144; gTasks[taskId].func = Task_TitleScreenPhase2; } } +#undef sParentTaskId +#undef sAlphaBlendIdx + // Create "Press Start" and copyright banners, and slide Pokemon logo up static void Task_TitleScreenPhase2(u8 taskId) { @@ -705,31 +758,31 @@ static void Task_TitleScreenPhase2(u8 taskId) | DISPCNT_OBJ_ON); CreatePressStartBanner(START_BANNER_X, 108); CreateCopyrightBanner(START_BANNER_X, 148); - gTasks[taskId].data[4] = 0; + gTasks[taskId].tBg1Y = 0; gTasks[taskId].func = Task_TitleScreenPhase3; } - if (!(gTasks[taskId].tCounter & 3) && gTasks[taskId].data[2] != 0) - gTasks[taskId].data[2]++; - if (!(gTasks[taskId].tCounter & 1) && gTasks[taskId].data[3] != 0) - gTasks[taskId].data[3]++; + if (!(gTasks[taskId].tCounter & 3) && gTasks[taskId].tPointless != 0) + gTasks[taskId].tPointless++; + if (!(gTasks[taskId].tCounter & 1) && gTasks[taskId].tBg2Y != 0) + gTasks[taskId].tBg2Y++; // Slide Pokemon logo up - yPos = gTasks[taskId].data[3] * 256; + yPos = gTasks[taskId].tBg2Y * 256; SetGpuReg(REG_OFFSET_BG2Y_L, yPos); SetGpuReg(REG_OFFSET_BG2Y_H, yPos / 0x10000); - gTasks[taskId].data[5] = 15; - gTasks[taskId].data[6] = 6; + gTasks[taskId].data[5] = 15; // Unused + gTasks[taskId].data[6] = 6; // Unused } // Show Rayquaza silhouette and process main title screen input static void Task_TitleScreenPhase3(u8 taskId) { - if ((JOY_NEW(A_BUTTON)) || (JOY_NEW(START_BUTTON))) + if (JOY_NEW(A_BUTTON) || JOY_NEW(START_BUTTON)) { FadeOutBGM(4); - BeginNormalPaletteFade(PALETTES_ALL, 0, 0, 0x10, RGB_WHITEALPHA); + BeginNormalPaletteFade(PALETTES_ALL, 0, 0, 16, RGB_WHITEALPHA); SetMainCallback2(CB2_GoToMainMenu); } else if (JOY_HELD(CLEAR_SAVE_BUTTON_COMBO) == CLEAR_SAVE_BUTTON_COMBO) @@ -740,30 +793,29 @@ static void Task_TitleScreenPhase3(u8 taskId) && CanResetRTC() == TRUE) { FadeOutBGM(4); - BeginNormalPaletteFade(PALETTES_ALL, 0, 0, 0x10, RGB_BLACK); + BeginNormalPaletteFade(PALETTES_ALL, 0, 0, 16, RGB_BLACK); SetMainCallback2(CB2_GoToResetRtcScreen); } else if (JOY_HELD(BERRY_UPDATE_BUTTON_COMBO) == BERRY_UPDATE_BUTTON_COMBO) { FadeOutBGM(4); - BeginNormalPaletteFade(PALETTES_ALL, 0, 0, 0x10, RGB_BLACK); + BeginNormalPaletteFade(PALETTES_ALL, 0, 0, 16, RGB_BLACK); SetMainCallback2(CB2_GoToBerryFixScreen); } else { SetGpuReg(REG_OFFSET_BG2Y_L, 0); SetGpuReg(REG_OFFSET_BG2Y_H, 0); - gTasks[taskId].tCounter++; - if (gTasks[taskId].tCounter & 1) + if (++gTasks[taskId].tCounter & 1) { - gTasks[taskId].data[4]++; - gBattle_BG1_Y = gTasks[taskId].data[4] / 2; + gTasks[taskId].tBg1Y++; + gBattle_BG1_Y = gTasks[taskId].tBg1Y / 2; gBattle_BG1_X = 0; } UpdateLegendaryMarkingColor(gTasks[taskId].tCounter); if ((gMPlayInfo_BGM.status & 0xFFFF) == 0) { - BeginNormalPaletteFade(PALETTES_ALL, 0, 0, 0x10, RGB_WHITEALPHA); + BeginNormalPaletteFade(PALETTES_ALL, 0, 0, 16, RGB_WHITEALPHA); SetMainCallback2(CB2_GoToCopyrightScreen); } } diff --git a/src/trainer_hill.c b/src/trainer_hill.c index 78604f2f49..98f5578e30 100644 --- a/src/trainer_hill.c +++ b/src/trainer_hill.c @@ -650,7 +650,7 @@ void LoadTrainerHillObjectEventTemplates(void) eventTemplates[i].localId = i + 1; eventTemplates[i].graphicsId = FacilityClassToGraphicsId(sHillData->floors[floorId].trainers[i].facilityClass); eventTemplates[i].x = sHillData->floors[floorId].map.trainerCoords[i] & 0xF; - eventTemplates[i].y = ((sHillData->floors[floorId].map.trainerCoords[i] >> 4) & 0xF) + 5; + eventTemplates[i].y = ((sHillData->floors[floorId].map.trainerCoords[i] >> 4) & 0xF) + HILL_FLOOR_HEIGHT_MARGIN; bits = i << 2; eventTemplates[i].movementType = ((sHillData->floors[floorId].map.trainerDirections >> bits) & 0xF) + MOVEMENT_TYPE_FACE_UP; eventTemplates[i].trainerRange_berryTreeId = (sHillData->floors[floorId].map.trainerRanges >> bits) & 0xF; diff --git a/src/use_pokeblock.c b/src/use_pokeblock.c index 1defb73ea9..2aefdedf38 100644 --- a/src/use_pokeblock.c +++ b/src/use_pokeblock.c @@ -1115,7 +1115,7 @@ static u8 UNUSED GetPartyIdFromSelectionId_(u8 selectionId) static void LoadAndCreateUpDownSprites(void) { - u16 i, spriteId; + u16 i; LoadSpriteSheet(&sSpriteSheet_UpDown); LoadSpritePalette(&sSpritePalette_UpDown); @@ -1125,7 +1125,7 @@ static void LoadAndCreateUpDownSprites(void) { if (sInfo->enhancements[i] != 0) { - spriteId = CreateSprite(&sSpriteTemplate_UpDown, sUpDownCoordsOnGraph[i][0], sUpDownCoordsOnGraph[i][1], 0); + u16 spriteId = CreateSprite(&sSpriteTemplate_UpDown, sUpDownCoordsOnGraph[i][0], sUpDownCoordsOnGraph[i][1], 0); if (spriteId != MAX_SPRITES) { if (sInfo->enhancements[i] != 0) // Always true here @@ -1136,20 +1136,24 @@ static void LoadAndCreateUpDownSprites(void) } } +#define tTimer data[0] + static void SpriteCB_UpDown(struct Sprite *sprite) { - if (sprite->data[0] < 6) + if (sprite->tTimer < 6) sprite->y2 -= 2; - else if (sprite->data[0] < 12) + else if (sprite->tTimer < 12) sprite->y2 += 2; - if (++sprite->data[0] > 60) + if (++sprite->tTimer > 60) { DestroySprite(sprite); sInfo->numEnhancements--; } } +#undef tTimer + static void LoadPartyInfo(void) { u16 i; @@ -1611,12 +1615,15 @@ static void LoadConditionGfx(void) LoadSpritePalette(&spritePalette); } +#define sSpeed data[0] +#define sTargetX data[1] + static void CreateConditionSprite(void) { u16 i; s16 xDiff, xStart; int yStart = 17; - int var = 8; + int speed = 8; struct Sprite **sprites = sMenu->condition; const struct SpriteTemplate *template = &sSpriteTemplate_Condition; @@ -1625,9 +1632,9 @@ static void CreateConditionSprite(void) u8 spriteId = CreateSprite(template, i * xDiff + xStart, yStart, 0); if (spriteId != MAX_SPRITES) { - gSprites[spriteId].data[0] = var; - gSprites[spriteId].data[1] = (i * xDiff) | 0x20; - gSprites[spriteId].data[2] = i; + gSprites[spriteId].sSpeed = speed; + gSprites[spriteId].sTargetX = (i * xDiff) | 0x20; + gSprites[spriteId].data[2] = i; // Unused StartSpriteAnim(&gSprites[spriteId], i); sprites[i] = &gSprites[spriteId]; } @@ -1656,11 +1663,15 @@ static void SpriteCB_Condition(struct Sprite *sprite) { s16 prevX = sprite->x; - sprite->x += sprite->data[0]; - if ((prevX <= sprite->data[1] && sprite->x >= sprite->data[1]) - || (prevX >= sprite->data[1] && sprite->x <= sprite->data[1])) + // Slide onscreen + sprite->x += sprite->sSpeed; + + // Check if target position has been reached/surpassed + if ((prevX <= sprite->sTargetX && sprite->x >= sprite->sTargetX) + || (prevX >= sprite->sTargetX && sprite->x <= sprite->sTargetX)) { - sprite->x = sprite->data[1]; + // End slide onscreen, become static sprite. + sprite->x = sprite->sTargetX; sprite->callback = SpriteCallbackDummy; } } diff --git a/src/wild_encounter.c b/src/wild_encounter.c index 8335b37e7d..e3a284c850 100644 --- a/src/wild_encounter.c +++ b/src/wild_encounter.c @@ -383,7 +383,7 @@ static u16 GetCurrentMapWildMonHeaderId(void) return HEADER_NONE; } -static u8 PickWildMonNature(void) +u8 PickWildMonNature(void) { u8 i; u8 j; @@ -415,15 +415,14 @@ static u8 PickWildMonNature(void) } } } -#if B_SYNCHRONIZE_NATURE < GEN_9 // check synchronize for a pokemon with the same ability - if (!GetMonData(&gPlayerParty[0], MON_DATA_SANITY_IS_EGG) + if (OW_SYNCHRONIZE_NATURE < GEN_9 + && !GetMonData(&gPlayerParty[0], MON_DATA_SANITY_IS_EGG) && GetMonAbility(&gPlayerParty[0]) == ABILITY_SYNCHRONIZE - && (B_SYNCHRONIZE_NATURE >= GEN_8 || Random() % 2 == 0)) + && (OW_SYNCHRONIZE_NATURE == GEN_8 || Random() % 2 == 0)) { return GetMonData(&gPlayerParty[0], MON_DATA_PERSONALITY) % NUM_NATURES; } -#endif // random nature return Random() % NUM_NATURES; @@ -434,7 +433,7 @@ static void CreateWildMon(u16 species, u8 level) bool32 checkCuteCharm; ZeroEnemyPartyMons(); - checkCuteCharm = TRUE; + checkCuteCharm = OW_CUTE_CHARM < GEN_9; switch (gSpeciesInfo[species].genderRatio) { @@ -480,33 +479,33 @@ static bool8 TryGenerateWildMon(const struct WildPokemonInfo *wildMonInfo, u8 ar switch (area) { case WILD_AREA_LAND: - if (TRY_GET_ABILITY_INFLUENCED_WILD_MON_INDEX(wildMonInfo->wildPokemon, TYPE_STEEL, ABILITY_MAGNET_PULL, &wildMonIndex, LAND_WILD_COUNT)) + if (OW_MAGNET_PULL < GEN_9 && TRY_GET_ABILITY_INFLUENCED_WILD_MON_INDEX(wildMonInfo->wildPokemon, TYPE_STEEL, ABILITY_MAGNET_PULL, &wildMonIndex, LAND_WILD_COUNT)) break; - if (TRY_GET_ABILITY_INFLUENCED_WILD_MON_INDEX(wildMonInfo->wildPokemon, TYPE_ELECTRIC, ABILITY_STATIC, &wildMonIndex, LAND_WILD_COUNT)) + if (OW_STATIC < GEN_9 && TRY_GET_ABILITY_INFLUENCED_WILD_MON_INDEX(wildMonInfo->wildPokemon, TYPE_ELECTRIC, ABILITY_STATIC, &wildMonIndex, LAND_WILD_COUNT)) break; - if (TRY_GET_ABILITY_INFLUENCED_WILD_MON_INDEX(wildMonInfo->wildPokemon, TYPE_ELECTRIC, ABILITY_LIGHTNING_ROD, &wildMonIndex, LAND_WILD_COUNT)) + if (OW_LIGHTNING_ROD == GEN_8 && TRY_GET_ABILITY_INFLUENCED_WILD_MON_INDEX(wildMonInfo->wildPokemon, TYPE_ELECTRIC, ABILITY_LIGHTNING_ROD, &wildMonIndex, LAND_WILD_COUNT)) break; - if (TRY_GET_ABILITY_INFLUENCED_WILD_MON_INDEX(wildMonInfo->wildPokemon, TYPE_FIRE, ABILITY_FLASH_FIRE, &wildMonIndex, LAND_WILD_COUNT)) + if (OW_FLASH_FIRE == GEN_8 && TRY_GET_ABILITY_INFLUENCED_WILD_MON_INDEX(wildMonInfo->wildPokemon, TYPE_FIRE, ABILITY_FLASH_FIRE, &wildMonIndex, LAND_WILD_COUNT)) break; - if (TRY_GET_ABILITY_INFLUENCED_WILD_MON_INDEX(wildMonInfo->wildPokemon, TYPE_GRASS, ABILITY_HARVEST, &wildMonIndex, LAND_WILD_COUNT)) + if (OW_HARVEST == GEN_8 && TRY_GET_ABILITY_INFLUENCED_WILD_MON_INDEX(wildMonInfo->wildPokemon, TYPE_GRASS, ABILITY_HARVEST, &wildMonIndex, LAND_WILD_COUNT)) break; - if (TRY_GET_ABILITY_INFLUENCED_WILD_MON_INDEX(wildMonInfo->wildPokemon, TYPE_WATER, ABILITY_STORM_DRAIN, &wildMonIndex, LAND_WILD_COUNT)) + if (OW_STORM_DRAIN == GEN_8 && TRY_GET_ABILITY_INFLUENCED_WILD_MON_INDEX(wildMonInfo->wildPokemon, TYPE_WATER, ABILITY_STORM_DRAIN, &wildMonIndex, LAND_WILD_COUNT)) break; wildMonIndex = ChooseWildMonIndex_Land(); break; case WILD_AREA_WATER: - if (TRY_GET_ABILITY_INFLUENCED_WILD_MON_INDEX(wildMonInfo->wildPokemon, TYPE_STEEL, ABILITY_MAGNET_PULL, &wildMonIndex, WATER_WILD_COUNT)) + if (OW_MAGNET_PULL < GEN_9 && TRY_GET_ABILITY_INFLUENCED_WILD_MON_INDEX(wildMonInfo->wildPokemon, TYPE_STEEL, ABILITY_MAGNET_PULL, &wildMonIndex, WATER_WILD_COUNT)) break; - if (TRY_GET_ABILITY_INFLUENCED_WILD_MON_INDEX(wildMonInfo->wildPokemon, TYPE_ELECTRIC, ABILITY_STATIC, &wildMonIndex, WATER_WILD_COUNT)) + if (OW_STATIC < GEN_9 && TRY_GET_ABILITY_INFLUENCED_WILD_MON_INDEX(wildMonInfo->wildPokemon, TYPE_ELECTRIC, ABILITY_STATIC, &wildMonIndex, WATER_WILD_COUNT)) break; - if (TRY_GET_ABILITY_INFLUENCED_WILD_MON_INDEX(wildMonInfo->wildPokemon, TYPE_ELECTRIC, ABILITY_LIGHTNING_ROD, &wildMonIndex, WATER_WILD_COUNT)) + if (OW_LIGHTNING_ROD == GEN_8 && TRY_GET_ABILITY_INFLUENCED_WILD_MON_INDEX(wildMonInfo->wildPokemon, TYPE_ELECTRIC, ABILITY_LIGHTNING_ROD, &wildMonIndex, WATER_WILD_COUNT)) break; - if (TRY_GET_ABILITY_INFLUENCED_WILD_MON_INDEX(wildMonInfo->wildPokemon, TYPE_FIRE, ABILITY_FLASH_FIRE, &wildMonIndex, WATER_WILD_COUNT)) + if (OW_FLASH_FIRE == GEN_8 && TRY_GET_ABILITY_INFLUENCED_WILD_MON_INDEX(wildMonInfo->wildPokemon, TYPE_FIRE, ABILITY_FLASH_FIRE, &wildMonIndex, WATER_WILD_COUNT)) break; - if (TRY_GET_ABILITY_INFLUENCED_WILD_MON_INDEX(wildMonInfo->wildPokemon, TYPE_GRASS, ABILITY_HARVEST, &wildMonIndex, WATER_WILD_COUNT)) + if (OW_HARVEST == GEN_8 && TRY_GET_ABILITY_INFLUENCED_WILD_MON_INDEX(wildMonInfo->wildPokemon, TYPE_GRASS, ABILITY_HARVEST, &wildMonIndex, WATER_WILD_COUNT)) break; - if (TRY_GET_ABILITY_INFLUENCED_WILD_MON_INDEX(wildMonInfo->wildPokemon, TYPE_WATER, ABILITY_STORM_DRAIN, &wildMonIndex, WATER_WILD_COUNT)) + if (OW_STORM_DRAIN == GEN_8 && TRY_GET_ABILITY_INFLUENCED_WILD_MON_INDEX(wildMonInfo->wildPokemon, TYPE_WATER, ABILITY_STORM_DRAIN, &wildMonIndex, WATER_WILD_COUNT)) break; wildMonIndex = ChooseWildMonIndex_WaterRock(); @@ -587,7 +586,7 @@ static bool8 WildEncounterCheck(u32 encounterRate, bool8 ignoreAbility) encounterRate = encounterRate * 3 / 4; else if (ability == ABILITY_STENCH) encounterRate /= 2; - else if (ability == ABILITY_ILLUMINATE) + else if (ability == ABILITY_ILLUMINATE && OW_ILLUMINATE < GEN_9) encounterRate *= 2; else if (ability == ABILITY_WHITE_SMOKE) encounterRate /= 2; @@ -599,10 +598,10 @@ static bool8 WildEncounterCheck(u32 encounterRate, bool8 ignoreAbility) encounterRate /= 2; else if (ability == ABILITY_QUICK_FEET) encounterRate /= 2; - else if (ability == ABILITY_INFILTRATOR) + else if (ability == ABILITY_INFILTRATOR && OW_INFILTRATOR == GEN_8) encounterRate /= 2; else if (ability == ABILITY_NO_GUARD) - encounterRate = encounterRate * 3 / 2; + encounterRate *= 2; } if (encounterRate > MAX_ENCOUNTER_RATE) encounterRate = MAX_ENCOUNTER_RATE; diff --git a/test/battle/ability/flower_gift.c b/test/battle/ability/flower_gift.c index a956741e5e..2541d8e36c 100644 --- a/test/battle/ability/flower_gift.c +++ b/test/battle/ability/flower_gift.c @@ -74,7 +74,7 @@ DOUBLE_BATTLE_TEST("Flower Gift increases the attack of Cherrim and its allies b } WHEN { if (sunny) TURN { MOVE(playerLeft, MOVE_SUNNY_DAY); } - TURN { MOVE(playerLeft, MOVE_TACKLE, target: opponentLeft); + TURN { MOVE(playerLeft, MOVE_TACKLE, target: opponentLeft); MOVE(playerRight, MOVE_TACKLE, target: opponentLeft); } } SCENE { // sun activates @@ -126,4 +126,46 @@ DOUBLE_BATTLE_TEST("Flower Gift increases the Sp. Def of Cherrim and its allies } } +SINGLE_BATTLE_TEST("Flower Gift transforms Cherrim back when it switches out") +{ + GIVEN { + ASSUME(B_WEATHER_FORMS >= GEN_5); + PLAYER(SPECIES_CHERRIM) { Ability(ABILITY_FLOWER_GIFT); } + PLAYER(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_WOBBUFFET); + } WHEN { + TURN { MOVE(opponent, MOVE_SUNNY_DAY); } + TURN { SWITCH(player, 1); } + } SCENE { + // transforms in sun + ABILITY_POPUP(player, ABILITY_FLOWER_GIFT); + ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_FORM_CHANGE, player); + MESSAGE("Cherrim transformed!"); + MESSAGE("Cherrim, that's enough! Come back!"); + } THEN { + EXPECT_EQ(GetMonData(&gPlayerParty[0], MON_DATA_SPECIES), SPECIES_CHERRIM); + } +} + +SINGLE_BATTLE_TEST("Flower Gift transforms Cherrim back when it uses a move that forces it to switch out") +{ + GIVEN { + ASSUME(B_WEATHER_FORMS >= GEN_5); + PLAYER(SPECIES_CHERRIM) { Ability(ABILITY_FLOWER_GIFT); } + PLAYER(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_WOBBUFFET); + } WHEN { + TURN { MOVE(opponent, MOVE_SUNNY_DAY); } + TURN { MOVE(player, MOVE_U_TURN); SEND_OUT(player, 1); } + } SCENE { + // transforms in sun + ABILITY_POPUP(player, ABILITY_FLOWER_GIFT); + ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_FORM_CHANGE, player); + MESSAGE("Cherrim transformed!"); + ANIMATION(ANIM_TYPE_MOVE, MOVE_U_TURN, player); + } THEN { + EXPECT_EQ(GetMonData(&gPlayerParty[0], MON_DATA_SPECIES), SPECIES_CHERRIM); + } +} + TO_DO_BATTLE_TEST("Flower Gift does not transform Cherrim back to normal when suppressed if Cherrim is Dynamaxed"); diff --git a/test/battle/ability/forecast.c b/test/battle/ability/forecast.c index 6bb4c5045f..df7ecd00a4 100644 --- a/test/battle/ability/forecast.c +++ b/test/battle/ability/forecast.c @@ -353,3 +353,45 @@ SINGLE_BATTLE_TEST("Forecast transforms Castform back to normal when its ability EXPECT_EQ(player->species, SPECIES_CASTFORM_NORMAL); } } + +SINGLE_BATTLE_TEST("Forecast transforms Castform back when it switches out") +{ + GIVEN { + ASSUME(B_WEATHER_FORMS >= GEN_5); + PLAYER(SPECIES_CASTFORM) { Ability(ABILITY_FORECAST); } + PLAYER(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_WOBBUFFET); + } WHEN { + TURN { MOVE(opponent, MOVE_SUNNY_DAY); } + TURN { SWITCH(player, 1); } + } SCENE { + // transforms in sun + ABILITY_POPUP(player, ABILITY_FORECAST); + ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_FORM_CHANGE, player); + MESSAGE("Castform transformed!"); + MESSAGE("Castform, that's enough! Come back!"); + } THEN { + EXPECT_EQ(GetMonData(&gPlayerParty[0], MON_DATA_SPECIES), SPECIES_CASTFORM); + } +} + +SINGLE_BATTLE_TEST("Forecast transforms Castform back when it uses a move that forces it to switch out") +{ + GIVEN { + ASSUME(B_WEATHER_FORMS >= GEN_5); + PLAYER(SPECIES_CASTFORM) { Ability(ABILITY_FORECAST); } + PLAYER(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_WOBBUFFET); + } WHEN { + TURN { MOVE(opponent, MOVE_SUNNY_DAY); } + TURN { MOVE(player, MOVE_U_TURN); SEND_OUT(player, 1); } + } SCENE { + // transforms in sun + ABILITY_POPUP(player, ABILITY_FORECAST); + ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_FORM_CHANGE, player); + MESSAGE("Castform transformed!"); + ANIMATION(ANIM_TYPE_MOVE, MOVE_U_TURN, player); + } THEN { + EXPECT_EQ(GetMonData(&gPlayerParty[0], MON_DATA_SPECIES), SPECIES_CASTFORM); + } +} diff --git a/test/battle/ability/hyper_cutter.c b/test/battle/ability/hyper_cutter.c index ac942039bb..8e5c0a40ba 100644 --- a/test/battle/ability/hyper_cutter.c +++ b/test/battle/ability/hyper_cutter.c @@ -7,9 +7,9 @@ SINGLE_BATTLE_TEST("Hyper Cutter prevents intimidate") s16 turnTwoHit; GIVEN { - PLAYER(SPECIES_EKANS) { Ability(ABILITY_SHED_SKIN); }; - PLAYER(SPECIES_EKANS) { Ability(ABILITY_INTIMIDATE); }; - OPPONENT(SPECIES_KRABBY) { Ability(ABILITY_HYPER_CUTTER); }; + PLAYER(SPECIES_EKANS) { Ability(ABILITY_SHED_SKIN); } + PLAYER(SPECIES_EKANS) { Ability(ABILITY_INTIMIDATE); } + OPPONENT(SPECIES_KRABBY) { Ability(ABILITY_HYPER_CUTTER); } } WHEN { TURN { MOVE(opponent, MOVE_TACKLE); } TURN { SWITCH(player, 1); MOVE(opponent, MOVE_TACKLE); } @@ -19,17 +19,137 @@ SINGLE_BATTLE_TEST("Hyper Cutter prevents intimidate") ABILITY_POPUP(player, ABILITY_INTIMIDATE); NONE_OF { ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, player); } ABILITY_POPUP(opponent, ABILITY_HYPER_CUTTER); - MESSAGE("Foe Krabby's Attack was not lowered!"); + MESSAGE("Foe Krabby's Hyper Cutter prevents Attack loss!"); HP_BAR(player, captureDamage: &turnTwoHit); } THEN { EXPECT_EQ(turnOneHit, turnTwoHit); } } -TO_DO_BATTLE_TEST("Hyper Cutter prevents Attack stage reduction from moves"); // Growl -TO_DO_BATTLE_TEST("Hyper Cutter doesn't prevent Attack stage reduction from moves used by the user"); // e.g. Superpower -TO_DO_BATTLE_TEST("Hyper Cutter doesn't prevent Attack reduction from burn"); -TO_DO_BATTLE_TEST("Hyper Cutter doesn't prevent receiving negative Attack stage changes from Baton Pass"); -TO_DO_BATTLE_TEST("Hyper Cutter doesn't prevent Topsy-Turvy"); -TO_DO_BATTLE_TEST("Hyper Cutter doesn't prevent Spectral Thief from resetting positive Attack stage changes"); -TO_DO_BATTLE_TEST("Hyper Cutter is ignored by Mold Breaker"); +SINGLE_BATTLE_TEST("Hyper Cutter prevents Attack stage reduction from moves") +{ + GIVEN { + ASSUME(gBattleMoves[MOVE_GROWL].effect == EFFECT_ATTACK_DOWN); + PLAYER(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_KRABBY) { Ability(ABILITY_HYPER_CUTTER); } + } WHEN { + TURN { MOVE(player, MOVE_GROWL); } + } SCENE { + ABILITY_POPUP(opponent, ABILITY_HYPER_CUTTER); + MESSAGE("Foe Krabby's Hyper Cutter prevents Attack loss!"); + } +} + +SINGLE_BATTLE_TEST("Hyper Cutter doesn't prevent Attack reduction from burn") +{ + GIVEN { + ASSUME(gBattleMoves[MOVE_WILL_O_WISP].effect == EFFECT_WILL_O_WISP); + PLAYER(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_KRABBY) { Ability(ABILITY_HYPER_CUTTER); } + } WHEN { + TURN { MOVE(player, MOVE_WILL_O_WISP); } + } SCENE { + ANIMATION(ANIM_TYPE_MOVE, MOVE_WILL_O_WISP, player); + MESSAGE("Foe Krabby was burned!"); + } THEN { + EXPECT_EQ(opponent->statStages[STAT_ATK], DEFAULT_STAT_STAGE); + } +} + +SINGLE_BATTLE_TEST("Hyper Cutter is ignored by Mold Breaker") +{ + GIVEN { + ASSUME(gBattleMoves[MOVE_GROWL].effect == EFFECT_ATTACK_DOWN); + PLAYER(SPECIES_PINSIR) { Ability(ABILITY_MOLD_BREAKER); } + OPPONENT(SPECIES_KRABBY) { Ability(ABILITY_HYPER_CUTTER); } + } WHEN { + TURN { MOVE(player, MOVE_GROWL); } + } SCENE { + ABILITY_POPUP(player, ABILITY_MOLD_BREAKER); + MESSAGE("Pinsir breaks the mold!"); + ANIMATION(ANIM_TYPE_MOVE, MOVE_GROWL, player); + MESSAGE("Foe Krabby's Attack fell!"); + NONE_OF { + ABILITY_POPUP(opponent, ABILITY_HYPER_CUTTER); + MESSAGE("Foe Krabby's Hyper Cutter prevents Attack loss!"); + } + } +} + +SINGLE_BATTLE_TEST("Hyper Cutter doesn't prevent Attack stage reduction from moves used by the user") +{ + GIVEN { + ASSUME(gBattleMoves[MOVE_SUPERPOWER].effect == EFFECT_SUPERPOWER); + PLAYER(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_KRABBY) { Ability(ABILITY_HYPER_CUTTER); } + } WHEN { + TURN { MOVE(opponent, MOVE_SUPERPOWER); } + TURN {} + } SCENE { + ANIMATION(ANIM_TYPE_MOVE, MOVE_SUPERPOWER, opponent); + MESSAGE("Foe Krabby's Attack fell!"); + MESSAGE("Foe Krabby's Defense fell!"); + } THEN { + EXPECT_EQ(opponent->statStages[STAT_ATK], DEFAULT_STAT_STAGE - 1); + } +} + +SINGLE_BATTLE_TEST("Hyper Cutter doesn't prevent Topsy-Turvy") +{ + GIVEN { + ASSUME(gBattleMoves[MOVE_SWORDS_DANCE].effect == EFFECT_ATTACK_UP_2); + ASSUME(gBattleMoves[MOVE_TOPSY_TURVY].effect == EFFECT_TOPSY_TURVY); + PLAYER(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_KRABBY) { Ability(ABILITY_HYPER_CUTTER); } + } WHEN { + TURN { MOVE(opponent, MOVE_SWORDS_DANCE); MOVE(player, MOVE_TOPSY_TURVY); } + } SCENE { + ANIMATION(ANIM_TYPE_MOVE, MOVE_SWORDS_DANCE, opponent); + MESSAGE("Foe Krabby's Attack sharply rose!"); + ANIMATION(ANIM_TYPE_MOVE, MOVE_TOPSY_TURVY, player); + MESSAGE("Foe Krabby's stat changes were all reversed!"); + } THEN { + EXPECT_EQ(opponent->statStages[STAT_ATK], DEFAULT_STAT_STAGE - 2); + } +} + +SINGLE_BATTLE_TEST("Hyper Cutter doesn't prevent Spectral Thief from resetting positive Attack stage changes") +{ + GIVEN { + ASSUME(gBattleMoves[MOVE_SWORDS_DANCE].effect == EFFECT_ATTACK_UP_2); + ASSUME(gBattleMoves[MOVE_SPECTRAL_THIEF].effect == EFFECT_SPECTRAL_THIEF); + PLAYER(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_KRABBY) { Ability(ABILITY_HYPER_CUTTER); } + } WHEN { + TURN { MOVE(opponent, MOVE_SWORDS_DANCE); MOVE(player, MOVE_SPECTRAL_THIEF); } + } SCENE { + ANIMATION(ANIM_TYPE_MOVE, MOVE_SWORDS_DANCE, opponent); + MESSAGE("Foe Krabby's Attack sharply rose!"); + ANIMATION(ANIM_TYPE_MOVE, MOVE_SPECTRAL_THIEF, player); + MESSAGE("Wobbuffet stole the target's boosted stats!"); + } THEN { + EXPECT_EQ(opponent->statStages[STAT_ATK], DEFAULT_STAT_STAGE); + } +} + +SINGLE_BATTLE_TEST("Hyper Cutter doesn't prevent receiving negative Attack stage changes from Baton Pass") +{ + GIVEN { + ASSUME(gBattleMoves[MOVE_GROWL].effect == EFFECT_ATTACK_DOWN); + ASSUME(gBattleMoves[MOVE_BATON_PASS].effect == EFFECT_BATON_PASS); + PLAYER(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_KRABBY) { Ability(ABILITY_HYPER_CUTTER); } + } WHEN { + TURN { MOVE(player, MOVE_GROWL); + MOVE(opponent, MOVE_BATON_PASS); + SEND_OUT(opponent, 1); + } + } SCENE { + ANIMATION(ANIM_TYPE_MOVE, MOVE_GROWL, player); + ANIMATION(ANIM_TYPE_MOVE, MOVE_BATON_PASS, opponent); + MESSAGE("2 sent out Krabby!"); + } THEN { + EXPECT_EQ(opponent->statStages[STAT_ATK], DEFAULT_STAT_STAGE - 1); + } +} diff --git a/test/battle/ability/inner_focus.c b/test/battle/ability/inner_focus.c index 574c860a74..ecd71272cb 100644 --- a/test/battle/ability/inner_focus.c +++ b/test/battle/ability/inner_focus.c @@ -20,7 +20,7 @@ SINGLE_BATTLE_TEST("Inner Focus prevents intimidate") ABILITY_POPUP(player, ABILITY_INTIMIDATE); NONE_OF { ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, player); } ABILITY_POPUP(opponent, ABILITY_INNER_FOCUS); - MESSAGE("Foe Zubat's Attack was not lowered!"); + MESSAGE("Foe Zubat's Inner Focus prevents stat loss!"); HP_BAR(player, captureDamage: &turnTwoHit); } THEN { EXPECT_EQ(turnOneHit, turnTwoHit); diff --git a/test/battle/ability/oblivious.c b/test/battle/ability/oblivious.c index 51d27bb169..b851256acc 100644 --- a/test/battle/ability/oblivious.c +++ b/test/battle/ability/oblivious.c @@ -63,6 +63,6 @@ SINGLE_BATTLE_TEST("Oblivious prevents Intimidate") ABILITY_POPUP(opponent, ABILITY_INTIMIDATE); ABILITY_POPUP(player, ABILITY_OBLIVIOUS); NONE_OF { ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, player); } - MESSAGE("Slowpoke's Attack was not lowered!"); + MESSAGE("Slowpoke's Oblivious prevents stat loss!"); } } diff --git a/test/battle/ability/opportunist.c b/test/battle/ability/opportunist.c index f344bd026f..2f0c5c8c84 100644 --- a/test/battle/ability/opportunist.c +++ b/test/battle/ability/opportunist.c @@ -69,7 +69,7 @@ DOUBLE_BATTLE_TEST("Opportunist raises Attack only once when partner has Intimid ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, opponentRight); MESSAGE("Mightyena's Intimidate cuts Foe Spinda's attack!"); } - + if ((abilityLeft == ABILITY_CONTRARY && abilityRight != ABILITY_CONTRARY) || (abilityLeft != ABILITY_CONTRARY && abilityRight == ABILITY_CONTRARY)) { ABILITY_POPUP(playerRight, ABILITY_OPPORTUNIST); @@ -82,7 +82,7 @@ DOUBLE_BATTLE_TEST("Opportunist raises Attack only once when partner has Intimid ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, playerRight); MESSAGE("Wobbuffet's Attack sharply rose!"); } - + HP_BAR(playerLeft, captureDamage: &results[i].damageLeft); HP_BAR(playerRight, captureDamage: &results[i].damageRight); } THEN { diff --git a/test/battle/ability/own_tempo.c b/test/battle/ability/own_tempo.c index 4c6a3167f6..9babd52589 100644 --- a/test/battle/ability/own_tempo.c +++ b/test/battle/ability/own_tempo.c @@ -20,7 +20,7 @@ SINGLE_BATTLE_TEST("Own Tempo prevents intimidate") ABILITY_POPUP(player, ABILITY_INTIMIDATE); NONE_OF { ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, player); } ABILITY_POPUP(opponent, ABILITY_OWN_TEMPO); - MESSAGE("Foe Slowpoke's Attack was not lowered!"); + MESSAGE("Foe Slowpoke's Own Tempo prevents stat loss!"); HP_BAR(player, captureDamage: &turnTwoHit); } THEN { EXPECT_EQ(turnOneHit, turnTwoHit); diff --git a/test/battle/ability/scrappy.c b/test/battle/ability/scrappy.c index df4ededa4e..22b6660b69 100644 --- a/test/battle/ability/scrappy.c +++ b/test/battle/ability/scrappy.c @@ -20,7 +20,7 @@ SINGLE_BATTLE_TEST("Scrappy prevents intimidate") ABILITY_POPUP(player, ABILITY_INTIMIDATE); NONE_OF { ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, player); } ABILITY_POPUP(opponent, ABILITY_SCRAPPY); - MESSAGE("Foe Kangaskhan's Attack was not lowered!"); + MESSAGE("Foe Kangaskhan's Scrappy prevents stat loss!"); HP_BAR(player, captureDamage: &turnTwoHit); } THEN { EXPECT_EQ(turnOneHit, turnTwoHit); diff --git a/test/battle/damage_formula.c b/test/battle/damage_formula.c index 98aa197ca1..a4b0a03f58 100644 --- a/test/battle/damage_formula.c +++ b/test/battle/damage_formula.c @@ -76,3 +76,40 @@ SINGLE_BATTLE_TEST("Damage calculation matches Gen5+ (Muscle Band, crit)") EXPECT_EQ(expectedDamage, dmg); } } + +SINGLE_BATTLE_TEST("Damage calculation matches Gen5+ (Marshadow vs Mawile)") +{ + s16 dmg; + s16 expectedDamage; + PARAMETRIZE { expectedDamage = 145; } + PARAMETRIZE { expectedDamage = 144; } + PARAMETRIZE { expectedDamage = 142; } + PARAMETRIZE { expectedDamage = 141; } + PARAMETRIZE { expectedDamage = 139; } + PARAMETRIZE { expectedDamage = 138; } + PARAMETRIZE { expectedDamage = 136; } + PARAMETRIZE { expectedDamage = 135; } + PARAMETRIZE { expectedDamage = 133; } + PARAMETRIZE { expectedDamage = 132; } + PARAMETRIZE { expectedDamage = 130; } + PARAMETRIZE { expectedDamage = 129; } + PARAMETRIZE { expectedDamage = 127; } + PARAMETRIZE { expectedDamage = 126; } + PARAMETRIZE { expectedDamage = 124; } + PARAMETRIZE { expectedDamage = 123; } + GIVEN { + PLAYER(SPECIES_MARSHADOW) { Level(100); Attack(286); } + OPPONENT(SPECIES_MAWILE) { Level(100); Defense(226); HP(241); } + } WHEN { + TURN { + MOVE(player, MOVE_SPECTRAL_THIEF, WITH_RNG(RNG_DAMAGE_MODIFIER, i), criticalHit: FALSE); + } + } + SCENE{ + MESSAGE("Marshadow used SpectrlThief!"); + HP_BAR(opponent, captureDamage: &dmg); + } + THEN{ + EXPECT_EQ(expectedDamage, dmg); + } +} diff --git a/test/battle/hold_effect/clear_amulet.c b/test/battle/hold_effect/clear_amulet.c index 552dbd91e8..0073f70609 100644 --- a/test/battle/hold_effect/clear_amulet.c +++ b/test/battle/hold_effect/clear_amulet.c @@ -21,8 +21,8 @@ SINGLE_BATTLE_TEST("Clear Amulet prevents Intimidate") } SCENE { HP_BAR(player, captureDamage: &turnOneHit); ABILITY_POPUP(player, ABILITY_INTIMIDATE); - NONE_OF { ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, player); } - MESSAGE("Foe Wobbuffet's Attack was not lowered!"); + NOT ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, player); + MESSAGE("Foe Wobbuffet's Clear Amulet prevents its stats from being lowered!"); HP_BAR(player, captureDamage: &turnTwoHit); } THEN { EXPECT_EQ(turnOneHit, turnTwoHit); @@ -55,31 +55,8 @@ SINGLE_BATTLE_TEST("Clear Amulet prevents stat reducing effects") } WHEN { TURN { MOVE(player, move); } } SCENE { - NONE_OF { ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, opponent); } - switch (move) - { - case MOVE_GROWL: - MESSAGE("Foe Wobbuffet's Attack was not lowered!"); - break; - case MOVE_LEER: - MESSAGE("Foe Wobbuffet's Defense was not lowered!"); - break; - case MOVE_CONFIDE: - MESSAGE("Foe Wobbuffet's Sp. Atk was not lowered!"); - break; - case MOVE_FAKE_TEARS: - MESSAGE("Foe Wobbuffet's Sp. Def was not lowered!"); - break; - case MOVE_SCARY_FACE: - MESSAGE("Foe Wobbuffet's Speed was not lowered!"); - break; - case MOVE_SWEET_SCENT: - MESSAGE("Foe Wobbuffet's evasiveness was not lowered!"); - break; - case MOVE_SAND_ATTACK: - MESSAGE("Foe Wobbuffet's accuracy was not lowered!"); - break; - } + NOT ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, opponent); + MESSAGE("Foe Wobbuffet's Clear Amulet prevents its stats from being lowered!"); } } @@ -106,6 +83,9 @@ SINGLE_BATTLE_TEST("Clear Amulet prevents secondary effects that reduce stats") } WHEN { TURN { MOVE(player, move); } } SCENE { - NONE_OF { ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, opponent); } + NONE_OF { + ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, opponent); + MESSAGE("Foe Wobbuffet's Clear Amulet prevents its stats from being lowered!"); + } } } diff --git a/test/battle/hold_effect/eject_button.c b/test/battle/hold_effect/eject_button.c index 4409f5d5b6..45dfc539b8 100644 --- a/test/battle/hold_effect/eject_button.c +++ b/test/battle/hold_effect/eject_button.c @@ -55,7 +55,7 @@ SINGLE_BATTLE_TEST("Eject Button will not activate under Substitute") OPPONENT(SPECIES_RAICHU) { Item(ITEM_EJECT_BUTTON); } OPPONENT(SPECIES_WOBBUFFET); } WHEN { - TURN { + TURN { MOVE(opponent, MOVE_SUBSTITUTE); MOVE(player, MOVE_TACKLE); } diff --git a/test/battle/move_effect/hydro_steam.c b/test/battle/move_effect/hydro_steam.c index f86da07ac5..80a3a90d37 100644 --- a/test/battle/move_effect/hydro_steam.c +++ b/test/battle/move_effect/hydro_steam.c @@ -1,11 +1,11 @@ #include "global.h" #include "test/battle.h" - + ASSUMPTIONS { ASSUME(gBattleMoves[MOVE_HYDRO_STEAM].effect == EFFECT_HYDRO_STEAM); } - + SINGLE_BATTLE_TEST("Hydro Steam deals 1.5x damage under both Sunlight and Rain", s16 damage) { u16 setupMove; @@ -26,7 +26,7 @@ SINGLE_BATTLE_TEST("Hydro Steam deals 1.5x damage under both Sunlight and Rain", EXPECT_MUL_EQ(results[0].damage, Q_4_12(1.5), results[1].damage); } } - + SINGLE_BATTLE_TEST("Hydro Steam is affected by Utility Umbrella", s16 damage) { u32 itemPlayer; diff --git a/test/battle/move_effect/octolock.c b/test/battle/move_effect/octolock.c new file mode 100644 index 0000000000..3cdc5f5602 --- /dev/null +++ b/test/battle/move_effect/octolock.c @@ -0,0 +1,133 @@ +#include "global.h" +#include "test/battle.h" + +SINGLE_BATTLE_TEST("Octolock decreases Defense and Sp. Def by at the end of the turn") +{ + GIVEN { + PLAYER(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_WOBBUFFET); + } WHEN { + TURN { MOVE(player, MOVE_OCTOLOCK); } + } SCENE { + ANIMATION(ANIM_TYPE_MOVE, MOVE_OCTOLOCK, player); + MESSAGE("Foe Wobbuffet can no longer escape because of Octolock!"); + ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, opponent); + MESSAGE("Foe Wobbuffet's Defense fell!"); + NOT ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, opponent); + MESSAGE("Foe Wobbuffet's Sp. Def fell!"); + } +} + +SINGLE_BATTLE_TEST("Octolock reduction is prevented by Clear Body, White Smoke and Full Metal Body") +{ + u32 species; + u32 ability; + + PARAMETRIZE { species = SPECIES_BELDUM; ability = ABILITY_CLEAR_BODY; } + PARAMETRIZE { species = SPECIES_TORKOAL; ability = ABILITY_WHITE_SMOKE; } + PARAMETRIZE { species = SPECIES_SOLGALEO; ability = ABILITY_FULL_METAL_BODY; } + + GIVEN { + PLAYER(SPECIES_WOBBUFFET); + OPPONENT(species) { Ability(ability); } + } WHEN { + TURN { MOVE(player, MOVE_OCTOLOCK); } + } SCENE { + ANIMATION(ANIM_TYPE_MOVE, MOVE_OCTOLOCK, player); + NOT ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, opponent); + if (species == SPECIES_BELDUM) + { + MESSAGE("Foe Beldum can no longer escape because of Octolock!"); + ABILITY_POPUP(opponent, ABILITY_CLEAR_BODY); + MESSAGE("Foe Beldum's Clear Body prevents stat loss!"); + NONE_OF { + MESSAGE("Foe Beldum's Defense fell!"); + MESSAGE("Foe Beldum's Sp. Def fell!"); + } + } + else if (species == SPECIES_TORKOAL) + { + MESSAGE("Foe Torkoal can no longer escape because of Octolock!"); + ABILITY_POPUP(opponent, ABILITY_WHITE_SMOKE); + MESSAGE("Foe Torkoal's White Smoke prevents stat loss!"); + NONE_OF { + MESSAGE("Foe Torkoal's Defense fell!"); + MESSAGE("Foe Torkoal's Sp. Def fell!"); + } + } + else if (species == SPECIES_SOLGALEO) + { + MESSAGE("Foe Solgaleo can no longer escape because of Octolock!"); + ABILITY_POPUP(opponent, ABILITY_FULL_METAL_BODY); + MESSAGE("Foe Solgaleo's Full Metal Body prevents stat loss!"); + NONE_OF { + MESSAGE("Foe Solgaleo's Defense fell!"); + MESSAGE("Foe Solgaleo's Sp. Def fell!"); + } + } + } +} + +SINGLE_BATTLE_TEST("Octolock Defense reduction is prevented by Big Pecks") +{ + GIVEN { + PLAYER(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_PIDGEY) { Ability(ABILITY_BIG_PECKS); } + } WHEN { + TURN { MOVE(player, MOVE_OCTOLOCK); } + } SCENE { + ANIMATION(ANIM_TYPE_MOVE, MOVE_OCTOLOCK, player); + MESSAGE("Foe Pidgey can no longer escape because of Octolock!"); + ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, opponent); + NOT MESSAGE("Foe Pidgey's Defense fell!"); + ABILITY_POPUP(opponent, ABILITY_BIG_PECKS); + MESSAGE("Foe Pidgey's Big Pecks prevents Defense loss!"); + MESSAGE("Foe Pidgey's Sp. Def fell!"); + } +} + +SINGLE_BATTLE_TEST("Octolock reduction is prevented by Clear Amulet") +{ + GIVEN { + PLAYER(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_WOBBUFFET) { Item(ITEM_CLEAR_AMULET); } + } WHEN { + TURN { MOVE(player, MOVE_OCTOLOCK); } + TURN {} + } SCENE { + ANIMATION(ANIM_TYPE_MOVE, MOVE_OCTOLOCK, player); + MESSAGE("Foe Wobbuffet can no longer escape because of Octolock!"); + MESSAGE("Foe Wobbuffet's Clear Amulet prevents its stats from being lowered!"); + NONE_OF { + ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, opponent); + MESSAGE("Foe Wobbuffet's Defense fell!"); + MESSAGE("Foe Wobbuffet's Sp. Def fell!"); + } + } +} + +SINGLE_BATTLE_TEST("Octolock will not decrease Defense and Sp. Def further then minus six") +{ + u8 j; + + GIVEN { + PLAYER(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_WOBBUFFET); + } WHEN { + TURN { MOVE(player, MOVE_OCTOLOCK); } + for (j = 0; j < 6; j++) + TURN {} + } SCENE { + ANIMATION(ANIM_TYPE_MOVE, MOVE_OCTOLOCK, player); + for (j = 0; j < 5; j++) { + MESSAGE("Foe Wobbuffet's Defense fell!"); + MESSAGE("Foe Wobbuffet's Sp. Def fell!"); + } + MESSAGE("Foe Wobbuffet's Defense won't go lower!"); + MESSAGE("Foe Wobbuffet's Sp. Def won't go lower!"); + NONE_OF { + MESSAGE("Foe Wobbuffet's Defense fell!"); + MESSAGE("Foe Wobbuffet's Sp. Def fell!"); + } + } +} diff --git a/test/battle/move_effect/revival_blessing.c b/test/battle/move_effect/revival_blessing.c index a5dd32c197..63f454a779 100644 --- a/test/battle/move_effect/revival_blessing.c +++ b/test/battle/move_effect/revival_blessing.c @@ -103,7 +103,7 @@ TO_DO_BATTLE_TEST("Revived battlers still lose their turn"); // OPPONENT(SPECIES_WYNAUT) { HP(1); } // } WHEN { // TURN { MOVE(playerLeft, MOVE_TACKLE, target: opponentRight); -// MOVE(opponentLeft, MOVE_REVIVAL_BLESSING); +// MOVE(opponentLeft, MOVE_REVIVAL_BLESSING); // SEND_OUT(opponentLeft, 1); } // } SCENE { // MESSAGE("Wobbuffet used Tackle!"); diff --git a/test/battle/move_effect/syrup_bomb.c b/test/battle/move_effect/syrup_bomb.c index 18b032f5cb..f286049e1a 100644 --- a/test/battle/move_effect/syrup_bomb.c +++ b/test/battle/move_effect/syrup_bomb.c @@ -2,24 +2,50 @@ #include "test/battle.h" SINGLE_BATTLE_TEST("Syrup Bomb covers the foe in sticky syrup for 3 turns") +{ + u8 j; + + GIVEN { + PLAYER(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_WOBBUFFET); + } WHEN { + TURN { MOVE(player, MOVE_SYRUP_BOMB); } + for (j = 0; j < 4; j++) + TURN {} + } SCENE { + ANIMATION(ANIM_TYPE_MOVE, MOVE_SYRUP_BOMB, player); + HP_BAR(opponent); + MESSAGE("Foe Wobbuffet got covered in sticky syrup!"); + ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_SYRUP_BOMB_SPEED_DROP, opponent); + MESSAGE("Foe Wobbuffet's Speed fell!"); + ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_SYRUP_BOMB_SPEED_DROP, opponent); + MESSAGE("Foe Wobbuffet's Speed fell!"); + ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_SYRUP_BOMB_SPEED_DROP, opponent); + MESSAGE("Foe Wobbuffet's Speed fell!"); + NONE_OF { + ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_SYRUP_BOMB_SPEED_DROP, opponent); + MESSAGE("Foe Wobbuffet's Speed fell!"); + } + } +} + +SINGLE_BATTLE_TEST("Sticky Syrup isn't applied again if the target is already covered") { GIVEN { PLAYER(SPECIES_WOBBUFFET); OPPONENT(SPECIES_WOBBUFFET); } WHEN { TURN { MOVE(player, MOVE_SYRUP_BOMB); } - TURN {} - TURN {} - TURN {} + TURN { MOVE(player, MOVE_SYRUP_BOMB); } } SCENE { ANIMATION(ANIM_TYPE_MOVE, MOVE_SYRUP_BOMB, player); HP_BAR(opponent); MESSAGE("Foe Wobbuffet got covered in sticky syrup!"); - ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, opponent); + ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_SYRUP_BOMB_SPEED_DROP, opponent); MESSAGE("Foe Wobbuffet's Speed fell!"); - ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, opponent); - MESSAGE("Foe Wobbuffet's Speed fell!"); - MESSAGE("Foe Wobbuffet was freed from Syrup Bomb!"); + ANIMATION(ANIM_TYPE_MOVE, MOVE_SYRUP_BOMB, player); + HP_BAR(opponent); + NOT MESSAGE("Foe Wobbuffet got covered in sticky syrup!"); } } @@ -40,7 +66,7 @@ SINGLE_BATTLE_TEST("Syrup Bomb is prevented by Bulletproof") } } -SINGLE_BATTLE_TEST("Clear Body, White Smoke and Full Metal Body prevent Sticky Syrup speed reduction") +SINGLE_BATTLE_TEST("Sticky Syrup speed reduction is prevented by Clear Body, White Smoke or Full Metal Body") { u32 species; u32 ability; @@ -63,28 +89,36 @@ SINGLE_BATTLE_TEST("Clear Body, White Smoke and Full Metal Body prevent Sticky S { MESSAGE("Foe Beldum got covered in sticky syrup!"); ABILITY_POPUP(opponent, ABILITY_CLEAR_BODY); + ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_SYRUP_BOMB_SPEED_DROP, opponent); MESSAGE("Foe Beldum's Clear Body prevents stat loss!"); + NONE_OF { + MESSAGE("Foe Beldum's Speed fell!"); + } } else if (species == SPECIES_TORKOAL) { MESSAGE("Foe Torkoal got covered in sticky syrup!"); ABILITY_POPUP(opponent, ABILITY_WHITE_SMOKE); + ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_SYRUP_BOMB_SPEED_DROP, opponent); MESSAGE("Foe Torkoal's White Smoke prevents stat loss!"); + NONE_OF { + MESSAGE("Foe Torkoal's Speed fell!"); + } } else if (species == SPECIES_SOLGALEO) { MESSAGE("Foe Solgaleo got covered in sticky syrup!"); ABILITY_POPUP(opponent, ABILITY_FULL_METAL_BODY); + ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_SYRUP_BOMB_SPEED_DROP, opponent); MESSAGE("Foe Solgaleo's Full Metal Body prevents stat loss!"); - } - NONE_OF { - ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, opponent); - MESSAGE("Foe Beldum's Speed fell!"); + NONE_OF { + MESSAGE("Foe Solgaleo's Speed fell!"); + } } } } -SINGLE_BATTLE_TEST("Clear Amulet prevents Sticky Syrup speed reduction") +SINGLE_BATTLE_TEST("Sticky Syrup speed reduction is prevented by Clear Amulet") { GIVEN { PLAYER(SPECIES_WOBBUFFET); @@ -95,9 +129,37 @@ SINGLE_BATTLE_TEST("Clear Amulet prevents Sticky Syrup speed reduction") ANIMATION(ANIM_TYPE_MOVE, MOVE_SYRUP_BOMB, player); HP_BAR(opponent); MESSAGE("Foe Wobbuffet got covered in sticky syrup!"); - MESSAGE("Foe Wobbuffet's Speed was not lowered!"); + MESSAGE("Foe Wobbuffet's Clear Amulet prevents its stats from being lowered!"); + NONE_OF { + ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_SYRUP_BOMB_SPEED_DROP, opponent); + MESSAGE("Foe Wobbuffet's Speed fell!"); + } + } +} + +SINGLE_BATTLE_TEST("Sticky syrup will not decrease speed further then minus six") +{ + u8 j; + + GIVEN { + PLAYER(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_WOBBUFFET); + } WHEN { + for (j = 0; j < 3; j++) + TURN { MOVE(player, MOVE_SCARY_FACE); } + TURN { MOVE(player, MOVE_SYRUP_BOMB); } + TURN {} + } SCENE { + for (j = 0; j < 3; j++) { + ANIMATION(ANIM_TYPE_MOVE, MOVE_SCARY_FACE, player); + ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, opponent); + } + ANIMATION(ANIM_TYPE_MOVE, MOVE_SYRUP_BOMB, player); + HP_BAR(opponent); + MESSAGE("Foe Wobbuffet got covered in sticky syrup!"); + ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_SYRUP_BOMB_SPEED_DROP, opponent); + MESSAGE("Foe Wobbuffet's Speed won't go lower!"); NONE_OF { - ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, opponent); MESSAGE("Foe Wobbuffet's Speed fell!"); } } diff --git a/test/battle/weather/rain.c b/test/battle/weather/rain.c index 00ac263044..3f7a6f599b 100644 --- a/test/battle/weather/rain.c +++ b/test/battle/weather/rain.c @@ -7,7 +7,7 @@ ASSUMPTIONS ASSUME(gBattleMoves[MOVE_EMBER].type == TYPE_FIRE); ASSUME(gBattleMoves[MOVE_WATER_GUN].type == TYPE_WATER); } - + SINGLE_BATTLE_TEST("Rain multiplies the power of Fire-type moves by 0.5x", s16 damage) { u32 setupMove; @@ -26,7 +26,7 @@ SINGLE_BATTLE_TEST("Rain multiplies the power of Fire-type moves by 0.5x", s16 d EXPECT_MUL_EQ(results[0].damage, Q_4_12(0.5), results[1].damage); } } - + SINGLE_BATTLE_TEST("Rain multiplies the power of Water-type moves by 1.5x", s16 damage) { u32 setupMove; diff --git a/test/battle/weather/sunlight.c b/test/battle/weather/sunlight.c index 9d471332ad..51b18dd076 100644 --- a/test/battle/weather/sunlight.c +++ b/test/battle/weather/sunlight.c @@ -7,7 +7,7 @@ ASSUMPTIONS ASSUME(gBattleMoves[MOVE_EMBER].type == TYPE_FIRE); ASSUME(gBattleMoves[MOVE_WATER_GUN].type == TYPE_WATER); } - + SINGLE_BATTLE_TEST("Sunlight multiplies the power of Fire-type moves by 1.5x", s16 damage) { u32 setupMove; @@ -26,7 +26,7 @@ SINGLE_BATTLE_TEST("Sunlight multiplies the power of Fire-type moves by 1.5x", s EXPECT_MUL_EQ(results[0].damage, Q_4_12(1.5), results[1].damage); } } - + SINGLE_BATTLE_TEST("Sunlight multiplies the power of Water-type moves by 0.5x", s16 damage) { u32 setupMove; diff --git a/test/dynamax.c b/test/dynamax.c index 27a689153e..f37e3defd6 100644 --- a/test/dynamax.c +++ b/test/dynamax.c @@ -19,7 +19,7 @@ SINGLE_BATTLE_TEST("(DYNAMAX) Dynamax increases HP and max HP by 1.5x", u16 hp) } MESSAGE("Foe Wobbuffet used Celebrate!"); } THEN { - results[i].hp = player->hp; + results[i].hp = player->hp; } FINALLY { EXPECT_MUL_EQ(results[0].hp, Q_4_12(1.5), results[1].hp); } @@ -49,7 +49,7 @@ SINGLE_BATTLE_TEST("(DYNAMAX) Dynamax expires after three turns", u16 hp) if (dynamax) // Expect to have visual reversion at the end. ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_FORM_CHANGE, player); } THEN { - results[i].hp = player->hp; + results[i].hp = player->hp; } FINALLY { EXPECT_EQ(results[0].hp, results[1].hp); } @@ -250,7 +250,7 @@ SINGLE_BATTLE_TEST("(DYNAMAX) Dynamaxed Pokemon can be encored immediately after TURN { MOVE(player, MOVE_ARM_THRUST, dynamax: TRUE); } TURN { MOVE(player, MOVE_ARM_THRUST); } TURN { MOVE(player, MOVE_ARM_THRUST); } - TURN { MOVE(opponent, MOVE_ENCORE); MOVE(player, MOVE_TACKLE); } + TURN { MOVE(opponent, MOVE_ENCORE); MOVE(player, MOVE_TACKLE); } } SCENE { MESSAGE("Wobbuffet used Max Knuckle!"); MESSAGE("Wobbuffet used Max Knuckle!"); @@ -322,7 +322,7 @@ SINGLE_BATTLE_TEST("(DYNAMAX) Dynamaxed Pokemon are not immune to Knock Off") MESSAGE("Wobbuffet used Max Strike!"); MESSAGE("Foe Wobbuffet used Knock Off!"); MESSAGE("Foe Wobbuffet knocked off Wobbuffet's Potion!"); - } THEN { + } THEN { EXPECT_EQ(player->item, ITEM_NONE); } } @@ -1216,7 +1216,7 @@ DOUBLE_BATTLE_TEST("(DYNAMAX) G-Max Wildfire sets a field effect that damages no MESSAGE("Foe Wynaut is burning up within G-Max Wildfire's flames!"); HP_BAR(opponentRight); // turn 5 - NONE_OF { + NONE_OF { HP_BAR(opponentRight); MESSAGE("Foe Wynaut is burning up within G-Max Wildfire's flames!"); } @@ -1294,8 +1294,8 @@ DOUBLE_BATTLE_TEST("(DYNAMAX) G-Max Finale heals allies by 1/6 of their health") HP_BAR(playerLeft, captureDamage: &damage1); HP_BAR(playerRight, captureDamage: &damage2); } THEN { - EXPECT_MUL_EQ(playerLeft->hp - 1, Q_4_12(6), playerLeft->maxHP); // heals based on Dynamax HP - EXPECT_MUL_EQ(playerRight->hp - 1, Q_4_12(6), playerRight->maxHP); + EXPECT_MUL_EQ(-damage1, Q_4_12(6), playerLeft->maxHP); // heals based on Dynamax HP + EXPECT_MUL_EQ(-damage2, Q_4_12(6), playerRight->maxHP); } } @@ -1387,7 +1387,7 @@ DOUBLE_BATTLE_TEST("(DYNAMAX) G-Max Depletion takes away 2 PP from the target's PLAYER(SPECIES_DURALUDON); PLAYER(SPECIES_WYNAUT); // Dynamax behaves weird with test turn order because stats are recalculated. - OPPONENT(SPECIES_SABLEYE) { Ability(ABILITY_PRANKSTER); } + OPPONENT(SPECIES_SABLEYE) { Ability(ABILITY_PRANKSTER); } OPPONENT(SPECIES_WYNAUT); } WHEN { TURN { MOVE(playerLeft, MOVE_DRAGON_CLAW, target: opponentLeft, dynamax: TRUE); } diff --git a/test/test_runner_battle.c b/test/test_runner_battle.c index 53a1c8d7c5..4823e3f17b 100644 --- a/test/test_runner_battle.c +++ b/test/test_runner_battle.c @@ -1980,7 +1980,7 @@ void MoveGetIdAndSlot(s32 battlerId, struct MoveContext *ctx, u32 *moveId, u32 * if (ctx->explicitUltraBurst && ctx->ultraBurst) *moveSlot |= RET_ULTRA_BURST; - + if (ctx->explicitDynamax && ctx->dynamax) *moveSlot |= RET_DYNAMAX; }