From 3f7b6ca3575d8663dc18013e927ce9b1b3c0a7a0 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Thu, 28 Apr 2022 09:04:16 -0400 Subject: [PATCH 01/69] Remove spurious space in battle_anim_scripts.s --- data/battle_anim_scripts.s | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data/battle_anim_scripts.s b/data/battle_anim_scripts.s index 1cfc5230c..35ad7cde0 100644 --- a/data/battle_anim_scripts.s +++ b/data/battle_anim_scripts.s @@ -5645,7 +5645,7 @@ HydroPumpBeams: createsprite gHydroPumpOrbSpriteTemplate, ANIM_ATTACKER, 3, 10, 10, 0, -16 delay 1 return -HydroPumpHitSplats : +HydroPumpHitSplats: createsprite gWaterHitSplatSpriteTemplate, ANIM_ATTACKER, 4, 0, 15, ANIM_TARGET, 1 createsprite gWaterHitSplatSpriteTemplate, ANIM_ATTACKER, 4, 0, -15, ANIM_TARGET, 1 return From ff936c15e1a5ca4e07e9d52cecc0f140cffd3a27 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Thu, 28 Apr 2022 13:46:23 -0400 Subject: [PATCH 02/69] Sync arg descriptions from FireRed https://github.com/pret/pokefirered/pull/501 --- data/battle_anim_scripts.s | 144 ++++++++++++++++---------------- include/constants/battle_anim.h | 13 ++- ld_script_modern.txt | 1 + 3 files changed, 82 insertions(+), 76 deletions(-) diff --git a/data/battle_anim_scripts.s b/data/battle_anim_scripts.s index 35ad7cde0..b4fdd4b1c 100644 --- a/data/battle_anim_scripts.s +++ b/data/battle_anim_scripts.s @@ -1458,11 +1458,11 @@ FuryCutterStrongest: Move_SELF_DESTRUCT: loadspritegfx ANIM_TAG_EXPLOSION createvisualtask AnimTask_BlendBattleAnimPal, 10, 2, 1, 0, 9, RGB_RED - createvisualtask AnimTask_ShakeMon2, 5, 4, 6, 0, 38, 1 - createvisualtask AnimTask_ShakeMon2, 5, 5, 6, 0, 38, 1 - createvisualtask AnimTask_ShakeMon2, 5, 6, 6, 0, 38, 1 - createvisualtask AnimTask_ShakeMon2, 5, 7, 6, 0, 38, 1 - createvisualtask AnimTask_ShakeMon2, 5, 8, 6, 0, 38, 1 + createvisualtask AnimTask_ShakeMon2, 5, ANIM_PLAYER_LEFT, 6, 0, 38, 1 + createvisualtask AnimTask_ShakeMon2, 5, ANIM_PLAYER_RIGHT, 6, 0, 38, 1 + createvisualtask AnimTask_ShakeMon2, 5, ANIM_OPPONENT_LEFT, 6, 0, 38, 1 + createvisualtask AnimTask_ShakeMon2, 5, ANIM_OPPONENT_RIGHT, 6, 0, 38, 1 + createvisualtask AnimTask_ShakeMon2, 5, ANIM_ATTACKER_FORCE, 6, 0, 38, 1 call SelfDestructExplode call SelfDestructExplode waitforvisualfinish @@ -1624,11 +1624,11 @@ RisingWaterHitEffect: Move_EXPLOSION: loadspritegfx ANIM_TAG_EXPLOSION createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 8, 9, RGB(26, 8, 8), 8, RGB_BLACK, 8 - createvisualtask AnimTask_ShakeMon2, 5, 4, 8, 0, 40, 1 - createvisualtask AnimTask_ShakeMon2, 5, 5, 8, 0, 40, 1 - createvisualtask AnimTask_ShakeMon2, 5, 6, 8, 0, 40, 1 - createvisualtask AnimTask_ShakeMon2, 5, 7, 8, 0, 40, 1 - createvisualtask AnimTask_ShakeMon2, 5, 8, 8, 0, 40, 1 + createvisualtask AnimTask_ShakeMon2, 5, ANIM_PLAYER_LEFT, 8, 0, 40, 1 + createvisualtask AnimTask_ShakeMon2, 5, ANIM_PLAYER_RIGHT, 8, 0, 40, 1 + createvisualtask AnimTask_ShakeMon2, 5, ANIM_OPPONENT_LEFT, 8, 0, 40, 1 + createvisualtask AnimTask_ShakeMon2, 5, ANIM_OPPONENT_RIGHT, 8, 0, 40, 1 + createvisualtask AnimTask_ShakeMon2, 5, ANIM_ATTACKER_FORCE, 8, 0, 40, 1 call Explosion1 call Explosion1 waitforvisualfinish @@ -1657,12 +1657,12 @@ Explosion1: Move_DEFENSE_CURL: loadspritegfx ANIM_TAG_ECLIPSING_ORB loopsewithpan SE_M_TRI_ATTACK, SOUND_PAN_ATTACKER, 18, 3 - createvisualtask AnimTask_SetGrayscaleOrOriginalPal, 5, ANIM_ATTACKER, 0 + createvisualtask AnimTask_SetGrayscaleOrOriginalPal, 5, ANIM_ATTACKER, FALSE createvisualtask AnimTask_DefenseCurlDeformMon, 5 waitforvisualfinish createsprite gEclipsingOrbSpriteTemplate, ANIM_ATTACKER, 2, 0, 6, 0, 1 waitforvisualfinish - createvisualtask AnimTask_SetGrayscaleOrOriginalPal, 5, ANIM_ATTACKER, 1 + createvisualtask AnimTask_SetGrayscaleOrOriginalPal, 5, ANIM_ATTACKER, TRUE waitforvisualfinish end @@ -1709,7 +1709,7 @@ Frustration_Continue: Frustration_Strongest: playsewithpan SE_M_DRAGON_RAGE, SOUND_PAN_ATTACKER createvisualtask AnimTask_ShakeMon2, 5, ANIM_ATTACKER, 1, 0, 15, 1 - createvisualtask AnimTask_BlendBattleAnimPal, 10, 2, 3, 0, 9, 31 + createvisualtask AnimTask_BlendBattleAnimPal, 10, 2, 3, 0, 9, RGB_RED waitforvisualfinish delay 20 playsewithpan SE_M_SWAGGER2, SOUND_PAN_ATTACKER @@ -1740,12 +1740,12 @@ Frustration_Strongest: createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 18, -18, ANIM_TARGET, 0 playsewithpan SE_M_COMET_PUNCH, SOUND_PAN_TARGET waitforvisualfinish - createvisualtask AnimTask_BlendBattleAnimPal, 10, 2, 3, 9, 0, 31 + createvisualtask AnimTask_BlendBattleAnimPal, 10, 2, 3, 9, 0, RGB_RED goto Frustration_Continue Frustration_Strong: playsewithpan SE_M_DRAGON_RAGE, SOUND_PAN_ATTACKER createvisualtask AnimTask_ShakeMon2, 5, ANIM_ATTACKER, 1, 0, 15, 1 - createvisualtask AnimTask_BlendBattleAnimPal, 10, 2, 3, 0, 9, 31 + createvisualtask AnimTask_BlendBattleAnimPal, 10, 2, 3, 0, 9, RGB_RED waitforvisualfinish delay 20 playsewithpan SE_M_SWAGGER2, SOUND_PAN_ATTACKER @@ -1766,7 +1766,7 @@ Frustration_Strong: createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, -12, -6, ANIM_TARGET, 1 createvisualtask AnimTask_ShakeMon2, 5, ANIM_TARGET, 4, 0, 6, 1 waitforvisualfinish - createvisualtask AnimTask_BlendBattleAnimPal, 10, 2, 3, 9, 0, 31 + createvisualtask AnimTask_BlendBattleAnimPal, 10, 2, 3, 9, 0, RGB_RED goto Frustration_Continue Frustration_Medium: playsewithpan SE_M_SWAGGER2, SOUND_PAN_ATTACKER @@ -2597,8 +2597,8 @@ Move_LOW_KICK: end Move_EARTHQUAKE: - createvisualtask AnimTask_HorizontalShake, 5, (MAX_BATTLERS_COUNT + 1), 10, 50 - createvisualtask AnimTask_HorizontalShake, 5, MAX_BATTLERS_COUNT, 10, 50 + createvisualtask AnimTask_HorizontalShake, 5, ANIM_PLAYER_RIGHT, 10, 50 + createvisualtask AnimTask_HorizontalShake, 5, ANIM_PLAYER_LEFT, 10, 50 playsewithpan SE_M_EARTHQUAKE, 0 delay 10 createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 3, 1, RGB_BLACK, 14, RGB_WHITE, 14 @@ -2608,7 +2608,7 @@ Move_EARTHQUAKE: Move_FISSURE: loadspritegfx ANIM_TAG_MUD_SAND - createvisualtask AnimTask_HorizontalShake, 3, (MAX_BATTLERS_COUNT + 1), 10, 50 + createvisualtask AnimTask_HorizontalShake, 3, ANIM_PLAYER_RIGHT, 10, 50 createvisualtask AnimTask_HorizontalShake, 3, ANIM_TARGET, 10, 50 playsewithpan SE_M_EARTHQUAKE, SOUND_PAN_TARGET delay 8 @@ -2953,7 +2953,7 @@ SkyAttackSetUpAgainstPartner: delay 20 createvisualtask AnimTask_BlendBattleAnimPal, 10, 2, 1, 15, 0, RGB_WHITE waitforvisualfinish - createvisualtask AnimTask_BlendBattleAnimPalExclude, 10, 4, 1, 8, 0, RGB_BLACK + createvisualtask AnimTask_BlendBattleAnimPalExclude, 10, ANIM_PLAYER_LEFT, 1, 8, 0, RGB_BLACK waitforvisualfinish clearmonbg ANIM_DEF_PARTNER blendoff @@ -3182,15 +3182,15 @@ Move_DESTINY_BOND: playsewithpan SE_M_CONFUSE_RAY, SOUND_PAN_ATTACKER delay 48 createvisualtask AnimTask_ShakeMonInPlace, 2, ANIM_ATTACKER, 2, 0, 24, 1 - createvisualtask AnimTask_BlendBattleAnimPalExclude, 2, 6, 1, 0, 12, RGB(29, 29, 29) + createvisualtask AnimTask_BlendBattleAnimPalExclude, 2, ANIM_OPPONENT_LEFT, 1, 0, 12, RGB(29, 29, 29) delay 24 - createvisualtask AnimTask_BlendBattleAnimPalExclude, 2, 6, 1, 12, 0, RGB(29, 29, 29) + createvisualtask AnimTask_BlendBattleAnimPalExclude, 2, ANIM_OPPONENT_LEFT, 1, 12, 0, RGB(29, 29, 29) playsewithpan SE_M_NIGHTMARE, SOUND_PAN_TARGET waitforvisualfinish restorebg waitbgfadein blendoff - clearmonbg 5 + clearmonbg ANIM_PLAYER_RIGHT end Move_ENDURE: @@ -3323,13 +3323,13 @@ Move_MAGNITUDE: MagnitudeEnd: end MagnitudeRegular: - createvisualtask AnimTask_HorizontalShake, 5, (MAX_BATTLERS_COUNT + 1), 0, 50 - createvisualtask AnimTask_HorizontalShake, 5, MAX_BATTLERS_COUNT, 0, 50 + createvisualtask AnimTask_HorizontalShake, 5, ANIM_PLAYER_RIGHT, 0, 50 + createvisualtask AnimTask_HorizontalShake, 5, ANIM_PLAYER_LEFT, 0, 50 loopsewithpan SE_M_STRENGTH, SOUND_PAN_TARGET, 8, 10 goto MagnitudeEnd MagnitudeIntense: - createvisualtask AnimTask_HorizontalShake, 5, (MAX_BATTLERS_COUNT + 1), 0, 50 - createvisualtask AnimTask_HorizontalShake, 5, MAX_BATTLERS_COUNT, 0, 50 + createvisualtask AnimTask_HorizontalShake, 5, ANIM_PLAYER_RIGHT, 0, 50 + createvisualtask AnimTask_HorizontalShake, 5, ANIM_PLAYER_LEFT, 0, 50 loopsewithpan SE_M_STRENGTH, SOUND_PAN_TARGET, 8, 10 delay 10 createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 3, 1, RGB_BLACK, 14, RGB_WHITE, 14 @@ -3814,8 +3814,8 @@ Move_ERUPTION: createsprite gEruptionFallingRockSpriteTemplate, ANIM_ATTACKER, 40, 110, -32, 64, 50, 0 createsprite gEruptionFallingRockSpriteTemplate, ANIM_ATTACKER, 40, 60, -32, 80, 70, 1 delay 22 - createvisualtask AnimTask_HorizontalShake, 5, (MAX_BATTLERS_COUNT + 1), 8, 60 - createvisualtask AnimTask_HorizontalShake, 5, MAX_BATTLERS_COUNT, 8, 60 + createvisualtask AnimTask_HorizontalShake, 5, ANIM_PLAYER_RIGHT, 8, 60 + createvisualtask AnimTask_HorizontalShake, 5, ANIM_PLAYER_LEFT, 8, 60 loopsewithpan SE_M_ROCK_THROW, SOUND_PAN_TARGET, 16, 12 delay 80 createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 40, 31, 4, 4, 0, RGB_RED @@ -3845,7 +3845,7 @@ Move_IMPRISON: waitforvisualfinish delay 4 createsprite gRedXSpriteTemplate, ANIM_ATTACKER, 5, ANIM_ATTACKER, 40 - createvisualtask AnimTask_HorizontalShake, 5, MAX_BATTLERS_COUNT, 1, 10 + createvisualtask AnimTask_HorizontalShake, 5, ANIM_PLAYER_LEFT, 1, 10 playsewithpan SE_M_HYPER_BEAM, SOUND_PAN_ATTACKER clearmonbg ANIM_DEF_PARTNER call UnsetPsychicBackground @@ -3915,27 +3915,27 @@ Move_LUSTER_PURGE: playsewithpan SE_M_SOLAR_BEAM, SOUND_PAN_ATTACKER createsprite gLusterPurgeCircleSpriteTemplate, ANIM_ATTACKER, 41, 0, 0, 0, 0 delay 20 - createvisualtask AnimTask_BlendBattleAnimPalExclude, 5, 5, 2, 0, 16, RGB_WHITEALPHA + createvisualtask AnimTask_BlendBattleAnimPalExclude, 5, ANIM_PLAYER_RIGHT, 2, 0, 16, RGB_WHITEALPHA createvisualtask AnimTask_BlendParticle, 5, ANIM_TAG_WHITE_CIRCLE_OF_LIGHT, 2, 0, 16, RGB_WHITEALPHA waitforvisualfinish createvisualtask AnimTask_BlendParticle, 5, ANIM_TAG_IMPACT, 0, 12, 12, RGB(0, 0, 23) waitforvisualfinish - createsprite gRandomPosHitSplatSpriteTemplate, ANIM_TARGET, 3, 1, 2 + createsprite gRandomPosHitSplatSpriteTemplate, ANIM_TARGET, 3, ANIM_TARGET, 2 createvisualtask SoundTask_PlaySE1WithPanning, 5, SE_M_HYPER_BEAM, SOUND_PAN_TARGET delay 3 - createsprite gRandomPosHitSplatSpriteTemplate, ANIM_TARGET, 3, 1, 2 + createsprite gRandomPosHitSplatSpriteTemplate, ANIM_TARGET, 3, ANIM_TARGET, 2 createvisualtask SoundTask_PlaySE1WithPanning, 5, SE_M_HYPER_BEAM, SOUND_PAN_TARGET delay 3 - createsprite gRandomPosHitSplatSpriteTemplate, ANIM_TARGET, 3, 1, 2 + createsprite gRandomPosHitSplatSpriteTemplate, ANIM_TARGET, 3, ANIM_TARGET, 2 createvisualtask SoundTask_PlaySE1WithPanning, 5, SE_M_HYPER_BEAM, SOUND_PAN_TARGET delay 3 - createsprite gRandomPosHitSplatSpriteTemplate, ANIM_TARGET, 3, 1, 2 + createsprite gRandomPosHitSplatSpriteTemplate, ANIM_TARGET, 3, ANIM_TARGET, 2 createvisualtask SoundTask_PlaySE1WithPanning, 5, SE_M_HYPER_BEAM, SOUND_PAN_TARGET delay 3 - createsprite gRandomPosHitSplatSpriteTemplate, ANIM_TARGET, 3, 1, 2 + createsprite gRandomPosHitSplatSpriteTemplate, ANIM_TARGET, 3, ANIM_TARGET, 2 createvisualtask SoundTask_PlaySE1WithPanning, 5, SE_M_HYPER_BEAM, SOUND_PAN_TARGET delay 3 - createsprite gRandomPosHitSplatSpriteTemplate, ANIM_TARGET, 3, 1, 2 + createsprite gRandomPosHitSplatSpriteTemplate, ANIM_TARGET, 3, ANIM_TARGET, 2 createvisualtask SoundTask_PlaySE1WithPanning, 5, SE_M_HYPER_BEAM, SOUND_PAN_TARGET waitforvisualfinish createvisualtask AnimTask_BlendBattleAnimPalExclude, 5, 5, 2, 16, 0, RGB_WHITEALPHA @@ -4360,7 +4360,7 @@ Move_AERIAL_ACE: Move_IRON_DEFENSE: loopsewithpan SE_SHINY, SOUND_PAN_ATTACKER, 28, 2 - createvisualtask AnimTask_MetallicShine, 5, 0, 0, 0 + createvisualtask AnimTask_MetallicShine, 5, 0, 0, RGB_BLACK createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 8, 2, RGB_WHITEALPHA, 14, RGB_WHITEALPHA, 0 waitforvisualfinish end @@ -4373,7 +4373,7 @@ Move_BLOCK: Move_HOWL: loadspritegfx ANIM_TAG_NOISE_LINE - createvisualtask AnimTask_DeepInhale, 2, 0 + createvisualtask AnimTask_DeepInhale, 2, ANIM_ATTACKER delay 12 call RoarEffect createvisualtask SoundTask_PlayCryHighPitch, 2, ANIM_ATTACKER, 3 @@ -4572,7 +4572,7 @@ Move_SHOCK_WAVE: Move_HARDEN: loopsewithpan SE_M_HARDEN, SOUND_PAN_ATTACKER, 28, 2 - createvisualtask AnimTask_MetallicShine, 5, 0, 0, 0 + createvisualtask AnimTask_MetallicShine, 5, 0, 0, RGB_BLACK waitforvisualfinish end @@ -5269,14 +5269,14 @@ Move_DRAGON_RAGE: Move_RAIN_DANCE: loadspritegfx ANIM_TAG_RAIN_DROPS playsewithpan SE_M_RAIN_DANCE, SOUND_PAN_ATTACKER - createvisualtask AnimTask_BlendBattleAnimPal, 10, 0x781, 2, 0, 4, RGB_BLACK + createvisualtask AnimTask_BlendBattleAnimPal, 10, 1 | (0xF << 7), 2, 0, 4, RGB_BLACK waitforvisualfinish createvisualtask AnimTask_CreateRaindrops, 2, 0, 3, 120 createvisualtask AnimTask_CreateRaindrops, 2, 0, 3, 120 delay 120 delay 30 waitforvisualfinish - createvisualtask AnimTask_BlendBattleAnimPal, 10, 0x781, 2, 4, 0, RGB_BLACK + createvisualtask AnimTask_BlendBattleAnimPal, 10, 1 | (0xF << 7), 2, 4, 0, RGB_BLACK waitforvisualfinish end @@ -6721,7 +6721,7 @@ Move_SUNNY_DAY: loadspritegfx ANIM_TAG_SUNLIGHT monbg ANIM_ATK_PARTNER setalpha 13, 3 - createvisualtask AnimTask_BlendBattleAnimPal, 10, 0x781, 1, 0, 6, RGB_WHITE + createvisualtask AnimTask_BlendBattleAnimPal, 10, 1 | (0xF << 7), 1, 0, 6, RGB_WHITE waitforvisualfinish panse_adjustnone SE_M_PETAL_DANCE, SOUND_PAN_ATTACKER, SOUND_PAN_TARGET, +1, 0 call SunnyDayLightRay @@ -6729,7 +6729,7 @@ Move_SUNNY_DAY: call SunnyDayLightRay call SunnyDayLightRay waitforvisualfinish - createvisualtask AnimTask_BlendBattleAnimPal, 10, 0x781, 1, 6, 0, RGB_WHITE + createvisualtask AnimTask_BlendBattleAnimPal, 10, 1 | (0xF << 7), 1, 6, 0, RGB_WHITE waitforvisualfinish clearmonbg ANIM_ATK_PARTNER blendoff @@ -6945,9 +6945,9 @@ Move_HAZE: playsewithpan SE_M_HAZE, 0 createvisualtask AnimTask_HazeScrollingFog, 5 delay 30 - createvisualtask AnimTask_BlendBattleAnimPal, 10, 0x780, 2, 0, 16, RGB_BLACK + createvisualtask AnimTask_BlendBattleAnimPal, 10, 0 | (0xF << 7), 2, 0, 16, RGB_BLACK delay 90 - createvisualtask AnimTask_BlendBattleAnimPal, 10, 0x780, 1, 16, 0, RGB_BLACK + createvisualtask AnimTask_BlendBattleAnimPal, 10, 0 | (0xF << 7), 1, 16, 0, RGB_BLACK end Move_FIRE_PUNCH: @@ -7219,7 +7219,7 @@ Move_STEEL_WING: loadspritegfx ANIM_TAG_GUST loadspritegfx ANIM_TAG_IMPACT loopsewithpan SE_M_HARDEN, SOUND_PAN_ATTACKER, 28, 2 - createvisualtask AnimTask_MetallicShine, 5, 0, 0, 0 + createvisualtask AnimTask_MetallicShine, 5, 0, 0, RGB_BLACK waitforvisualfinish monbg ANIM_DEF_PARTNER splitbgprio ANIM_TARGET @@ -7245,7 +7245,7 @@ Move_STEEL_WING: Move_IRON_TAIL: loadspritegfx ANIM_TAG_IMPACT loopsewithpan SE_M_HARDEN, SOUND_PAN_ATTACKER, 28, 2 - createvisualtask AnimTask_MetallicShine, 5, 1, 0, 0 + createvisualtask AnimTask_MetallicShine, 5, 1, 0, RGB_BLACK waitforvisualfinish monbg ANIM_TARGET setalpha 12, 8 @@ -7255,7 +7255,7 @@ Move_IRON_TAIL: createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 3, 0, 6, 1 playsewithpan SE_M_VITAL_THROW2, SOUND_PAN_TARGET waitforvisualfinish - createvisualtask AnimTask_SetGrayscaleOrOriginalPal, 5, ANIM_ATTACKER, 1 + createvisualtask AnimTask_SetGrayscaleOrOriginalPal, 5, ANIM_ATTACKER, TRUE clearmonbg ANIM_TARGET blendoff waitforvisualfinish @@ -7275,7 +7275,7 @@ Move_POISON_TAIL: createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 3, 0, 6, 1 playsewithpan SE_M_VITAL_THROW2, SOUND_PAN_TARGET waitforvisualfinish - createvisualtask AnimTask_SetGrayscaleOrOriginalPal, 5, ANIM_ATTACKER, 1 + createvisualtask AnimTask_SetGrayscaleOrOriginalPal, 5, ANIM_ATTACKER, TRUE clearmonbg ANIM_TARGET blendoff call PoisonBubblesEffect @@ -7285,7 +7285,7 @@ Move_POISON_TAIL: Move_METAL_CLAW: loadspritegfx ANIM_TAG_CLAW_SLASH loopsewithpan SE_M_HARDEN, SOUND_PAN_ATTACKER, 28, 2 - createvisualtask AnimTask_MetallicShine, 5, 0, 0, 0 + createvisualtask AnimTask_MetallicShine, 5, 0, 0, RGB_BLACK waitforvisualfinish createsprite gHorizontalLungeSpriteTemplate, ANIM_ATTACKER, 2, 6, 4 delay 2 @@ -7740,12 +7740,12 @@ Move_HEAL_BELL: unloadspritegfx ANIM_TAG_SPARKLE_2 loadspritegfx ANIM_TAG_THIN_RING playsewithpan SE_SHINY, SOUND_PAN_ATTACKER - createvisualtask AnimTask_BlendBattleAnimPalExclude, 10, 4, 3, 10, 0, RGB(12, 24, 30) + createvisualtask AnimTask_BlendBattleAnimPalExclude, 10, ANIM_PLAYER_LEFT, 3, 10, 0, RGB(12, 24, 30) createvisualtask AnimTask_BlendBattleAnimPal, 10, 10, 3, 10, 0, RGB_WHITE createsprite gBlendThinRingExpandingSpriteTemplate, ANIM_ATTACKER, 16, 0, 0, 0, 1 end HealBellRing: - createvisualtask AnimTask_BlendBattleAnimPalExclude, 10, 4, 3, 8, 0, RGB(12, 24, 30) + createvisualtask AnimTask_BlendBattleAnimPalExclude, 10, ANIM_PLAYER_LEFT, 3, 8, 0, RGB(12, 24, 30) createvisualtask AnimTask_BlendBattleAnimPal, 10, 10, 3, 2, 10, RGB_WHITE createsprite gThinRingExpandingSpriteTemplate, ANIM_ATTACKER, 40, 0, -24, 0, 1 playsewithpan SE_M_HEAL_BELL, SOUND_PAN_ATTACKER @@ -7947,16 +7947,16 @@ Move_PERISH_SONG: panse SE_M_PERISH_SONG, SOUND_PAN_ATTACKER, SOUND_PAN_TARGET, +2, 0 delay 80 createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 3, 0, 16, RGB_BLACK - createvisualtask AnimTask_SetGrayscaleOrOriginalPal, 5, 4, 0 - createvisualtask AnimTask_SetGrayscaleOrOriginalPal, 5, 5, 0 - createvisualtask AnimTask_SetGrayscaleOrOriginalPal, 5, 6, 0 - createvisualtask AnimTask_SetGrayscaleOrOriginalPal, 5, 7, 0 + createvisualtask AnimTask_SetGrayscaleOrOriginalPal, 5, ANIM_PLAYER_LEFT, FALSE + createvisualtask AnimTask_SetGrayscaleOrOriginalPal, 5, ANIM_PLAYER_RIGHT, FALSE + createvisualtask AnimTask_SetGrayscaleOrOriginalPal, 5, ANIM_OPPONENT_LEFT, FALSE + createvisualtask AnimTask_SetGrayscaleOrOriginalPal, 5, ANIM_OPPONENT_RIGHT, FALSE delay 100 createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 3, 16, 0, RGB_BLACK - createvisualtask AnimTask_SetGrayscaleOrOriginalPal, 5, 4, 1 - createvisualtask AnimTask_SetGrayscaleOrOriginalPal, 5, 5, 1 - createvisualtask AnimTask_SetGrayscaleOrOriginalPal, 5, 6, 1 - createvisualtask AnimTask_SetGrayscaleOrOriginalPal, 5, 7, 1 + createvisualtask AnimTask_SetGrayscaleOrOriginalPal, 5, ANIM_PLAYER_LEFT, TRUE + createvisualtask AnimTask_SetGrayscaleOrOriginalPal, 5, ANIM_PLAYER_RIGHT, TRUE + createvisualtask AnimTask_SetGrayscaleOrOriginalPal, 5, ANIM_OPPONENT_LEFT, TRUE + createvisualtask AnimTask_SetGrayscaleOrOriginalPal, 5, ANIM_OPPONENT_RIGHT, TRUE waitforvisualfinish end @@ -8102,7 +8102,7 @@ Move_ENCORE: loadspritegfx ANIM_TAG_SPOTLIGHT loadspritegfx ANIM_TAG_TAG_HAND createvisualtask AnimTask_CreateSpotlight, 2 - createvisualtask AnimTask_HardwarePaletteFade, 2, 248, 3, 0, 10, 0 + createvisualtask AnimTask_HardwarePaletteFade, 2, BLDCNT_TGT1_BG3 | BLDCNT_TGT1_OBJ | BLDCNT_TGT1_BD | BLDCNT_EFFECT_DARKEN, 3, 0, 10, FALSE waitforvisualfinish createsprite gSpotlightSpriteTemplate, ANIM_TARGET, 2, 0, -8 createsprite gClappingHandSpriteTemplate, ANIM_ATTACKER, 2, -2, 0, 0, 0, 9 @@ -8113,7 +8113,7 @@ Move_ENCORE: createvisualtask SoundTask_PlaySE2WithPanning, 5, SE_M_ENCORE2, SOUND_PAN_TARGET createvisualtask AnimTask_SwayMon, 5, 1, 8, 1536, 5, ANIM_TARGET waitforvisualfinish - createvisualtask AnimTask_HardwarePaletteFade, 2, 248, 3, 10, 0, 1 + createvisualtask AnimTask_HardwarePaletteFade, 2, BLDCNT_TGT1_BG3 | BLDCNT_TGT1_OBJ | BLDCNT_TGT1_BD | BLDCNT_EFFECT_DARKEN, 3, 10, 0, TRUE waitforvisualfinish createvisualtask AnimTask_RemoveSpotlight, 2 end @@ -8288,7 +8288,7 @@ Move_MORNING_SUN: loadspritegfx ANIM_TAG_BLUE_STAR createvisualtask AnimTask_MorningSunLightBeam, 5 delay 8 - createvisualtask AnimTask_BlendBattleAnimPal, 10, 0x781, 8, 0, 12, RGB_WHITE + createvisualtask AnimTask_BlendBattleAnimPal, 10, 1 | (0xF << 7), 8, 0, 12, RGB_WHITE delay 14 call MorningSunStar call MorningSunStar @@ -8305,7 +8305,7 @@ Move_MORNING_SUN: call MorningSunStar call MorningSunStar call MorningSunStar - createvisualtask AnimTask_BlendBattleAnimPal, 10, 0x781, 3, 12, 0, RGB_WHITE + createvisualtask AnimTask_BlendBattleAnimPal, 10, 1 | (0xF << 7), 3, 12, 0, RGB_WHITE waitforvisualfinish waitsound call HealingEffect @@ -8364,7 +8364,7 @@ Move_HYPER_BEAM: delay 30 createsoundtask SoundTask_LoopSEAdjustPanning, SE_M_HYPER_BEAM2, SOUND_PAN_ATTACKER, SOUND_PAN_TARGET, 1, 15, 0, 5 createvisualtask AnimTask_ShakeMon, 2, ANIM_ATTACKER, 0, 4, 50, 1 - createvisualtask AnimTask_FlashAnimTagWithColor, 2, ANIM_TAG_ORBS, 1, 12, RGB(31, 0, 0), 16, 0, 0 + createvisualtask AnimTask_FlashAnimTagWithColor, 2, ANIM_TAG_ORBS, 1, 12, RGB_RED, 16, 0, 0 call HyperBeamOrbs call HyperBeamOrbs call HyperBeamOrbs @@ -8408,7 +8408,7 @@ Move_FLATTER: loadspritegfx ANIM_TAG_CONFETTI createvisualtask SoundTask_PlaySE2WithPanning, 5, SE_M_ENCORE2, SOUND_PAN_TARGET createvisualtask AnimTask_CreateSpotlight, 2 - createvisualtask AnimTask_HardwarePaletteFade, 2, 248, 3, 0, 10, 0 + createvisualtask AnimTask_HardwarePaletteFade, 2, BLDCNT_TGT1_BG3 | BLDCNT_TGT1_OBJ | BLDCNT_TGT1_BD | BLDCNT_EFFECT_DARKEN, 3, 0, 10, FALSE waitforvisualfinish createsprite gFlatterSpotlightSpriteTemplate, ANIM_TARGET, 2, 0, -8, 80 delay 0 @@ -8439,7 +8439,7 @@ Move_FLATTER: delay 5 createvisualtask SoundTask_PlaySE1WithPanning, 5, SE_M_FLATTER, SOUND_PAN_TARGET waitforvisualfinish - createvisualtask AnimTask_HardwarePaletteFade, 2, 248, 3, 10, 0, 1 + createvisualtask AnimTask_HardwarePaletteFade, 2, BLDCNT_TGT1_BG3 | BLDCNT_TGT1_OBJ | BLDCNT_TGT1_BD | BLDCNT_EFFECT_DARKEN, 3, 10, 0, TRUE waitforvisualfinish createvisualtask AnimTask_RemoveSpotlight, 2 end @@ -9680,10 +9680,10 @@ Move_TWISTER: createvisualtask AnimTask_ShakeMonInPlace, 2, ANIM_TARGET, 3, 0, 12, 1 createvisualtask AnimTask_ShakeMonInPlace, 2, ANIM_DEF_PARTNER, 3, 0, 12, 1 delay 4 - createsprite gRandomPosHitSplatSpriteTemplate, ANIM_TARGET, 3, 1, 3 + createsprite gRandomPosHitSplatSpriteTemplate, ANIM_TARGET, 3, ANIM_TARGET, 3 playsewithpan SE_M_COMET_PUNCH, SOUND_PAN_TARGET delay 4 - createsprite gRandomPosHitSplatSpriteTemplate, ANIM_TARGET, 3, 1, 3 + createsprite gRandomPosHitSplatSpriteTemplate, ANIM_TARGET, 3, ANIM_TARGET, 3 playsewithpan SE_M_COMET_PUNCH, SOUND_PAN_TARGET delay 4 createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 3, 32, 20, ANIM_TARGET, 3 @@ -10505,13 +10505,13 @@ General_FocusBand: General_Rain: loadspritegfx ANIM_TAG_RAIN_DROPS playsewithpan SE_M_RAIN_DANCE, SOUND_PAN_ATTACKER - createvisualtask AnimTask_BlendBattleAnimPal, 10, 0x781, 2, 0, 4, RGB_BLACK + createvisualtask AnimTask_BlendBattleAnimPal, 10, 1 | (0xF << 7), 2, 0, 4, RGB_BLACK waitforvisualfinish createvisualtask AnimTask_CreateRaindrops, 2, 0, 3, 60 createvisualtask AnimTask_CreateRaindrops, 2, 0, 3, 60 delay 50 waitforvisualfinish - createvisualtask AnimTask_BlendBattleAnimPal, 10, 0x781, 2, 4, 0, RGB_BLACK + createvisualtask AnimTask_BlendBattleAnimPal, 10, 1 | (0xF << 7), 2, 4, 0, RGB_BLACK waitforvisualfinish end diff --git a/include/constants/battle_anim.h b/include/constants/battle_anim.h index 2ff9318be..e478c396a 100644 --- a/include/constants/battle_anim.h +++ b/include/constants/battle_anim.h @@ -298,10 +298,15 @@ #define ANIM_TAG_BLUE_RING_2 (ANIM_SPRITES_START + 288) // battlers -#define ANIM_ATTACKER 0 -#define ANIM_TARGET 1 -#define ANIM_ATK_PARTNER 2 -#define ANIM_DEF_PARTNER 3 +#define ANIM_ATTACKER 0 +#define ANIM_TARGET 1 +#define ANIM_ATK_PARTNER 2 +#define ANIM_DEF_PARTNER 3 +#define ANIM_PLAYER_LEFT 4 +#define ANIM_PLAYER_RIGHT 5 +#define ANIM_OPPONENT_LEFT 6 +#define ANIM_OPPONENT_RIGHT 7 +#define ANIM_ATTACKER_FORCE 8 // stereo panning constants [0-255] // diff --git a/ld_script_modern.txt b/ld_script_modern.txt index a988fe0cd..a5977db7b 100644 --- a/ld_script_modern.txt +++ b/ld_script_modern.txt @@ -49,6 +49,7 @@ SECTIONS { ALIGN(4) { src/rom_header.o(.text*); + src/rom_header_gf.o(.text*); src/*.o(.text*); gflib/*.o(.text*); asm/*.o(.text*); From 6fed961ed6e62b18452b0add96f914f009ce46c9 Mon Sep 17 00:00:00 2001 From: Martin Griffin Date: Fri, 19 Aug 2022 15:29:35 +0100 Subject: [PATCH 03/69] Write palette IDs in hex --- gflib/sprite.c | 2 +- include/gba/defines.h | 6 + include/palette.h | 17 ++ src/battle_anim.c | 12 +- src/battle_anim_dark.c | 12 +- src/battle_anim_effects_1.c | 10 +- src/battle_anim_effects_2.c | 8 +- src/battle_anim_effects_3.c | 10 +- src/battle_anim_fire.c | 3 +- src/battle_anim_ghost.c | 4 +- src/battle_anim_ice.c | 4 +- src/battle_anim_mons.c | 14 +- src/battle_anim_rock.c | 2 +- src/battle_anim_status_effects.c | 2 +- src/battle_anim_throw.c | 22 +-- src/battle_anim_utility_funcs.c | 36 ++--- src/battle_anim_water.c | 4 +- src/battle_arena.c | 6 +- src/battle_bg.c | 172 ++++++++++----------- src/battle_controller_link_partner.c | 2 +- src/battle_controller_player.c | 2 +- src/battle_controller_player_partner.c | 4 +- src/battle_controller_recorded_player.c | 2 +- src/battle_controller_wally.c | 2 +- src/battle_dome.c | 60 +++---- src/battle_factory_screen.c | 56 +++---- src/battle_gfx_sfx_util.c | 44 +++--- src/battle_interface.c | 6 +- src/battle_main.c | 2 +- src/battle_pyramid_bag.c | 30 ++-- src/battle_records.c | 8 +- src/battle_script_commands.c | 2 +- src/battle_transition.c | 72 ++++----- src/battle_transition_frontier.c | 2 +- src/berry_blender.c | 28 ++-- src/berry_crush.c | 28 ++-- src/berry_fix_program.c | 8 +- src/berry_powder.c | 17 +- src/berry_tag_screen.c | 12 +- src/cable_car.c | 2 +- src/cable_club.c | 2 +- src/clear_save_data_screen.c | 8 +- src/contest.c | 44 +++--- src/contest_painting.c | 8 +- src/contest_util.c | 30 ++-- src/credits.c | 8 +- src/data/party_menu.h | 86 +++++------ src/data/trade.h | 42 ++--- src/data/union_room.h | 24 +-- src/daycare.c | 2 +- src/decoration.c | 12 +- src/diploma.c | 6 +- src/dodrio_berry_picking.c | 32 ++-- src/easy_chat.c | 30 ++-- src/egg_hatch.c | 10 +- src/event_object_movement.c | 2 +- src/evolution_scene.c | 20 +-- src/field_effect.c | 8 +- src/field_region_map.c | 6 +- src/field_screen_effect.c | 4 +- src/field_specials.c | 20 +-- src/field_weather.c | 20 +-- src/fieldmap.c | 12 +- src/fldeff_flash.c | 16 +- src/frontier_pass.c | 24 +-- src/frontier_util.c | 6 +- src/hall_of_fame.c | 8 +- src/intro.c | 18 +-- src/intro_credits_graphics.c | 42 ++--- src/item_menu.c | 44 +++--- src/link.c | 14 +- src/list_menu.c | 6 +- src/mail.c | 6 +- src/main_menu.c | 76 ++++----- src/map_name_popup.c | 20 +-- src/match_call.c | 8 +- src/menu.c | 35 +++-- src/menu_specialized.c | 10 +- src/move_relearner.c | 4 +- src/mystery_event_menu.c | 10 +- src/mystery_gift_menu.c | 50 +++--- src/mystery_gift_view.c | 24 +-- src/naming_screen.c | 16 +- src/option_menu.c | 46 +++--- src/palette.c | 18 +-- src/party_menu.c | 40 ++--- src/player_pc.c | 18 +-- src/pokeblock.c | 32 ++-- src/pokeblock_feed.c | 8 +- src/pokedex.c | 40 ++--- src/pokedex_cry_screen.c | 4 +- src/pokemon_animation.c | 29 ++-- src/pokemon_icon.c | 6 +- src/pokemon_jump.c | 32 ++-- src/pokemon_storage_system.c | 70 ++++----- src/pokemon_summary_screen.c | 72 ++++----- src/pokenav_conditions_gfx.c | 18 +-- src/pokenav_conditions_search_results.c | 7 +- src/pokenav_main_menu.c | 12 +- src/pokenav_match_call_gfx.c | 26 ++-- src/pokenav_menu_handler_gfx.c | 12 +- src/pokenav_region_map.c | 10 +- src/pokenav_ribbons_list.c | 5 +- src/pokenav_ribbons_summary.c | 13 +- src/rayquaza_scene.c | 12 +- src/region_map.c | 12 +- src/reset_rtc_screen.c | 6 +- src/roulette.c | 12 +- src/save_failed_screen.c | 12 +- src/scrcmd.c | 2 +- src/secret_base.c | 4 +- src/shop.c | 24 +-- src/slot_machine.c | 46 +++--- src/start_menu.c | 10 +- src/starter_choose.c | 12 +- src/text_window.c | 8 +- src/tileset_anims.c | 4 +- src/title_screen.c | 6 +- src/trade.c | 36 ++--- src/trader.c | 2 +- src/trainer_card.c | 62 ++++---- src/trainer_hill.c | 2 +- src/trainer_pokemon_sprites.c | 8 +- src/union_room.c | 10 +- src/union_room_battle.c | 4 +- src/union_room_chat.c | 32 ++-- src/use_pokeblock.c | 22 +-- src/wallclock.c | 16 +- src/wireless_communication_status_screen.c | 12 +- 129 files changed, 1262 insertions(+), 1240 deletions(-) diff --git a/gflib/sprite.c b/gflib/sprite.c index 9fc597cc3..be2c5e280 100644 --- a/gflib/sprite.c +++ b/gflib/sprite.c @@ -1615,7 +1615,7 @@ void LoadSpritePalettes(const struct SpritePalette *palettes) void DoLoadSpritePalette(const u16 *src, u16 paletteOffset) { - LoadPalette(src, paletteOffset + 0x100, 32); + LoadPalette(src, OBJ_PLTT_OFFSET + paletteOffset, PLTT_SIZE_4BPP); } u8 AllocSpritePalette(u16 tag) diff --git a/include/gba/defines.h b/include/gba/defines.h index c52d7ef4f..3ef025fd8 100644 --- a/include/gba/defines.h +++ b/include/gba/defines.h @@ -67,6 +67,12 @@ #define DISPLAY_WIDTH 240 #define DISPLAY_HEIGHT 160 +#define PLTT_SIZEOF(n) ((n) * sizeof(u16)) +#define PLTT_SIZE_4BPP PLTT_SIZEOF(16) +#define PLTT_SIZE_8BPP PLTT_SIZEOF(256) + +#define PLTT_OFFSET_4BPP(n) ((n) * PLTT_SIZE_4BPP) + #define TILE_SIZE_4BPP 32 #define TILE_SIZE_8BPP 64 diff --git a/include/palette.h b/include/palette.h index 81a1e1cae..b94cf6aa8 100644 --- a/include/palette.h +++ b/include/palette.h @@ -18,6 +18,13 @@ #define PALETTES_OBJECTS 0xFFFF0000 #define PALETTES_ALL (PALETTES_BG | PALETTES_OBJECTS) +#define PLTT_ID(n) ((n) * 16) +#define BG_PLTT_OFFSET 0x000 +#define OBJ_PLTT_OFFSET 0x100 +#define BG_PLTT_ID(n) (BG_PLTT_OFFSET + PLTT_ID(n)) +#define OBJ_PLTT_ID(n) (OBJ_PLTT_OFFSET + PLTT_ID(n)) +#define OBJ_PLTT_ID2(n) (PLTT_ID((n) + 16)) + enum { FAST_FADE_IN_FROM_WHITE, @@ -74,4 +81,14 @@ void TintPalette_GrayScale2(u16 *palette, u16 count); void TintPalette_SepiaTone(u16 *palette, u16 count); void TintPalette_CustomTone(u16 *palette, u16 count, u16 rTone, u16 gTone, u16 bTone); +extern inline void SetBackdropFromColor(u16 color) +{ + FillPalette(color, 0x00, PLTT_SIZEOF(1)); +} + +extern inline void SetBackdropFromPalette(const u16 *palette) +{ + LoadPalette(palette, 0x00, PLTT_SIZEOF(1)); +} + #endif // GUARD_PALETTE_H diff --git a/src/battle_anim.c b/src/battle_anim.c index 375363212..a5e487af2 100644 --- a/src/battle_anim.c +++ b/src/battle_anim.c @@ -706,8 +706,8 @@ void MoveBattlerSpriteToBG(u8 battlerId, bool8 toBG_2, bool8 setSpriteInvisible) SetGpuReg(REG_OFFSET_BG1HOFS, gBattle_BG1_X); SetGpuReg(REG_OFFSET_BG1VOFS, gBattle_BG1_Y); - LoadPalette(&gPlttBufferUnfaded[0x100 + battlerId * 16], animBg.paletteId * 16, 0x20); - CpuCopy32(&gPlttBufferUnfaded[0x100 + battlerId * 16], (void *)(BG_PLTT + animBg.paletteId * 32), 0x20); + LoadPalette(&gPlttBufferUnfaded[OBJ_PLTT_ID(battlerId)], BG_PLTT_ID(animBg.paletteId), PLTT_SIZE_4BPP); + CpuCopy32(&gPlttBufferUnfaded[OBJ_PLTT_ID(battlerId)], (void *)(BG_PLTT + PLTT_OFFSET_4BPP(animBg.paletteId)), PLTT_SIZE_4BPP); if (IsContest()) battlerPosition = 0; @@ -741,8 +741,8 @@ void MoveBattlerSpriteToBG(u8 battlerId, bool8 toBG_2, bool8 setSpriteInvisible) SetGpuReg(REG_OFFSET_BG2HOFS, gBattle_BG2_X); SetGpuReg(REG_OFFSET_BG2VOFS, gBattle_BG2_Y); - LoadPalette(&gPlttBufferUnfaded[0x100 + battlerId * 16], 0x90, 0x20); - CpuCopy32(&gPlttBufferUnfaded[0x100 + battlerId * 16], (void *)(BG_PLTT + 0x120), 0x20); + LoadPalette(&gPlttBufferUnfaded[OBJ_PLTT_ID(battlerId)], BG_PLTT_ID(0x9), PLTT_SIZE_4BPP); + CpuCopy32(&gPlttBufferUnfaded[OBJ_PLTT_ID(battlerId)], (void *)(BG_PLTT + PLTT_OFFSET_4BPP(0x9)), PLTT_SIZE_4BPP); DrawBattlerOnBg(2, 0, 0, GetBattlerPosition(battlerId), animBg.paletteId, animBg.bgTiles + 0x1000, animBg.bgTilemap + 0x400, animBg.tilesOffset); } @@ -1208,13 +1208,13 @@ static void LoadMoveBg(u16 bgId) dmaDest = (void *)BG_SCREEN_ADDR(26); DmaCopy32(3, dmaSrc, dmaDest, 0x800); LZDecompressVram(gBattleAnimBackgroundTable[bgId].image, (void *)BG_SCREEN_ADDR(4)); - LoadCompressedPalette(gBattleAnimBackgroundTable[bgId].palette, GetBattleBgPaletteNum() * 16, 32); + LoadCompressedPalette(gBattleAnimBackgroundTable[bgId].palette, BG_PLTT_ID(GetBattleBgPaletteNum()), PLTT_SIZE_4BPP); } else { LZDecompressVram(gBattleAnimBackgroundTable[bgId].tilemap, (void *)BG_SCREEN_ADDR(26)); LZDecompressVram(gBattleAnimBackgroundTable[bgId].image, (void *)BG_CHAR_ADDR(2)); - LoadCompressedPalette(gBattleAnimBackgroundTable[bgId].palette, 32, 32); + LoadCompressedPalette(gBattleAnimBackgroundTable[bgId].palette, BG_PLTT_ID(0x2), PLTT_SIZE_4BPP); } } diff --git a/src/battle_anim_dark.c b/src/battle_anim_dark.c index 1281ccc8b..4106a7485 100644 --- a/src/battle_anim_dark.c +++ b/src/battle_anim_dark.c @@ -426,7 +426,7 @@ void AnimTask_MoveAttackerMementoShadow(u8 taskId) GetBattleAnimBg1Data(&animBg); task->data[10] = gBattle_BG1_Y; SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT2_ALL | BLDCNT_EFFECT_BLEND | BLDCNT_TGT1_BG1); - FillPalette(RGB_BLACK, animBg.paletteId * 16, 32); + FillPalette(RGB_BLACK, BG_PLTT_ID(animBg.paletteId), PLTT_SIZE_4BPP); scanlineParams.dmaDest = ®_BG1VOFS; var0 = WINOUT_WIN01_BG1; if (!IsContest()) @@ -436,7 +436,7 @@ void AnimTask_MoveAttackerMementoShadow(u8 taskId) { task->data[10] = gBattle_BG2_Y; SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT2_ALL | BLDCNT_EFFECT_BLEND | BLDCNT_TGT1_BG2); - FillPalette(RGB_BLACK, 144, 32); + FillPalette(RGB_BLACK, BG_PLTT_ID(0x9), PLTT_SIZE_4BPP); scanlineParams.dmaDest = ®_BG2VOFS; var0 = WINOUT_WIN01_BG2; if (!IsContest()) @@ -566,12 +566,12 @@ void AnimTask_MoveTargetMementoShadow(u8 taskId) { GetBattleAnimBg1Data(&animBg); task->data[10] = gBattle_BG1_Y; - FillPalette(RGB_BLACK, animBg.paletteId * 16, 32); + FillPalette(RGB_BLACK, BG_PLTT_ID(animBg.paletteId), PLTT_SIZE_4BPP); } else { task->data[10] = gBattle_BG2_Y; - FillPalette(RGB_BLACK, 9 * 16, 32); + FillPalette(RGB_BLACK, BG_PLTT_ID(0x9), PLTT_SIZE_4BPP); } SetAllBattlersSpritePriority(3); @@ -863,7 +863,7 @@ void AnimTask_MetallicShine(u8 taskId) GetBattleAnimBg1Data(&animBg); AnimLoadCompressedBgTilemap(animBg.bgId, gMetalShineTilemap); AnimLoadCompressedBgGfx(animBg.bgId, gMetalShineGfx, animBg.tilesOffset); - LoadCompressedPalette(gMetalShinePalette, animBg.paletteId * 16, 32); + LoadCompressedPalette(gMetalShinePalette, BG_PLTT_ID(animBg.paletteId), PLTT_SIZE_4BPP); gBattle_BG1_X = -gSprites[spriteId].x + 96; gBattle_BG1_Y = -gSprites[spriteId].y + 32; @@ -872,7 +872,7 @@ void AnimTask_MetallicShine(u8 taskId) if (gBattleAnimArgs[1] == 0) SetGrayscaleOrOriginalPalette(paletteNum, FALSE); else - BlendPalette(paletteNum * 16, 16, 11, gBattleAnimArgs[2]); + BlendPalette(BG_PLTT_ID(paletteNum), 16, 11, gBattleAnimArgs[2]); gTasks[taskId].data[0] = newSpriteId; gTasks[taskId].data[1] = gBattleAnimArgs[0]; diff --git a/src/battle_anim_effects_1.c b/src/battle_anim_effects_1.c index 0387d3929..14d0839ec 100644 --- a/src/battle_anim_effects_1.c +++ b/src/battle_anim_effects_1.c @@ -3641,8 +3641,8 @@ void AnimTask_CycleMagicalLeafPal(u8 taskId) switch (task->data[0]) { case 0: - task->data[8] = IndexOfSpritePaletteTag(ANIM_TAG_LEAF) * 16 + 256; - task->data[12] = IndexOfSpritePaletteTag(ANIM_TAG_RAZOR_LEAF) * 16 + 256; + task->data[8] = OBJ_PLTT_ID(IndexOfSpritePaletteTag(ANIM_TAG_LEAF)); + task->data[12] = OBJ_PLTT_ID(IndexOfSpritePaletteTag(ANIM_TAG_RAZOR_LEAF)); task->data[0]++; break; case 1: @@ -4349,7 +4349,7 @@ static void AnimLockOnTarget_Step4(struct Sprite *sprite) int pal; sprite->data[2]++; pal = sprite->oam.paletteNum; - LoadPalette(&gPlttBufferUnfaded[0x108 + pal * 16], pal * 16 | 0x101, 4); + LoadPalette(&gPlttBufferUnfaded[OBJ_PLTT_ID(pal) + 8], OBJ_PLTT_ID(pal) + 1, PLTT_SIZEOF(2)); PlaySE12WithPanning(SE_M_LEER, BattleAnimAdjustPanning(63)); } else if (sprite->data[1] == 0) @@ -5173,8 +5173,8 @@ void AnimTask_DoubleTeam(u8 taskId) struct Task *task = &gTasks[taskId]; task->data[0] = GetAnimBattlerSpriteId(ANIM_ATTACKER); task->data[1] = AllocSpritePalette(ANIM_TAG_BENT_SPOON); - r3 = (task->data[1] * 16) + 0x100; - r4 = (gSprites[task->data[0]].oam.paletteNum + 16) << 4; + r3 = OBJ_PLTT_ID(task->data[1]); + r4 = OBJ_PLTT_ID2(gSprites[task->data[0]].oam.paletteNum); for (i = 1; i < 16; i++) gPlttBufferUnfaded[r3 + i] = gPlttBufferUnfaded[r4 + i]; diff --git a/src/battle_anim_effects_2.c b/src/battle_anim_effects_2.c index 33065c0dd..e7ab07543 100755 --- a/src/battle_anim_effects_2.c +++ b/src/battle_anim_effects_2.c @@ -2678,7 +2678,7 @@ static void AnimUproarRing(struct Sprite *sprite) u8 index = IndexOfSpritePaletteTag(ANIM_TAG_THIN_RING); if (index != 0xFF) { - BlendPalette(((index << 20) + 0x1010000) >> 16, 15, gBattleAnimArgs[5], gBattleAnimArgs[4]); + BlendPalette((OBJ_PLTT_ID(index) + 1), 15, gBattleAnimArgs[5], gBattleAnimArgs[4]); } StartSpriteAffineAnim(sprite, 1); @@ -3026,7 +3026,7 @@ void AnimTask_LoadMusicNotesPals(u8 taskId) gMonSpritesGfxPtr->buffer = AllocZeroed(0x2000); LZDecompressWram(gBattleAnimSpritePal_MusicNotes2, gMonSpritesGfxPtr->buffer); for (i = 0; i < NUM_MUSIC_NOTE_PAL_TAGS; i++) - LoadPalette(&gMonSpritesGfxPtr->buffer[i * 32], (u16)((paletteNums[i] << 4) + 0x100), 32); + LoadPalette(&gMonSpritesGfxPtr->buffer[i * 32], (u16)(OBJ_PLTT_ID(paletteNums[i])), PLTT_SIZE_4BPP); FREE_AND_SET_NULL(gMonSpritesGfxPtr->buffer); DestroyAnimVisualTask(taskId); @@ -3261,7 +3261,7 @@ void AnimTask_HeartsBackground(u8 taskId) GetBattleAnimBg1Data(&animBg); AnimLoadCompressedBgGfx(animBg.bgId, gBattleAnimBgImage_Attract, animBg.tilesOffset); AnimLoadCompressedBgTilemapHandleContest(&animBg, gBattleAnimBgTilemap_Attract, FALSE); - LoadCompressedPalette(gBattleAnimBgPalette_Attract, animBg.paletteId * 16, 32); + LoadCompressedPalette(gBattleAnimBgPalette_Attract, BG_PLTT_ID(animBg.paletteId), PLTT_SIZE_4BPP); gTasks[taskId].func = AnimTask_HeartsBackground_Step; } @@ -3345,7 +3345,7 @@ void AnimTask_ScaryFace(u8 taskId) AnimLoadCompressedBgTilemapHandleContest(&animBg, &gBattleAnimBgTilemap_ScaryFaceOpponent, FALSE); AnimLoadCompressedBgGfx(animBg.bgId, gBattleAnimBgImage_ScaryFace, animBg.tilesOffset); - LoadCompressedPalette(gBattleAnimBgPalette_ScaryFace, animBg.paletteId * 16, 32); + LoadCompressedPalette(gBattleAnimBgPalette_ScaryFace, BG_PLTT_ID(animBg.paletteId), PLTT_SIZE_4BPP); gTasks[taskId].func = AnimTask_ScaryFace_Step; } diff --git a/src/battle_anim_effects_3.c b/src/battle_anim_effects_3.c index 6fca60369..ebfed9b4a 100755 --- a/src/battle_anim_effects_3.c +++ b/src/battle_anim_effects_3.c @@ -2405,7 +2405,7 @@ void AnimTask_MorningSunLightBeam(u8 taskId) } AnimLoadCompressedBgGfx(animBg.bgId, gBattleAnimMaskImage_LightBeam, animBg.tilesOffset); - LoadCompressedPalette(gBattleAnimMaskPalette_LightBeam, animBg.paletteId * 16, 32); + LoadCompressedPalette(gBattleAnimMaskPalette_LightBeam, BG_PLTT_ID(animBg.paletteId), PLTT_SIZE_4BPP); gTasks[taskId].data[10] = gBattle_BG1_X; gTasks[taskId].data[11] = gBattle_BG1_Y; @@ -2601,7 +2601,7 @@ void AnimTask_DoomDesireLightBeam(u8 taskId) } AnimLoadCompressedBgGfx(animBg.bgId, gBattleAnimMaskImage_LightBeam, animBg.tilesOffset); - LoadCompressedPalette(gBattleAnimMaskPalette_LightBeam, animBg.paletteId * 16, 32); + LoadCompressedPalette(gBattleAnimMaskPalette_LightBeam, BG_PLTT_ID(animBg.paletteId), PLTT_SIZE_4BPP); gTasks[taskId].data[10] = gBattle_BG1_X; gTasks[taskId].data[11] = gBattle_BG1_Y; gTasks[taskId].data[0]++; @@ -3252,7 +3252,7 @@ void AnimTask_RolePlaySilhouette(u8 taskId) gSprites[spriteId].oam.priority = priority; gSprites[spriteId].oam.objMode = ST_OAM_OBJ_BLEND; - FillPalette(RGB_WHITE, (gSprites[spriteId].oam.paletteNum << 4) + 0x100, 32); + FillPalette(RGB_WHITE, OBJ_PLTT_ID(gSprites[spriteId].oam.paletteNum), PLTT_SIZE_4BPP); gSprites[spriteId].oam.priority = priority; SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_EFFECT_BLEND | BLDCNT_TGT2_ALL); SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(gTasks[taskId].data[1], 16 - gTasks[taskId].data[1])); @@ -3880,7 +3880,7 @@ void AnimTask_FacadeColorBlend(u8 taskId) gTasks[taskId].data[0] = 0; gTasks[taskId].data[1] = gBattleAnimArgs[1]; spriteId = GetAnimBattlerSpriteId(gBattleAnimArgs[0]); - gTasks[taskId].data[2] = 0x100 + gSprites[spriteId].oam.paletteNum * 16; + gTasks[taskId].data[2] = OBJ_PLTT_ID(gSprites[spriteId].oam.paletteNum); gTasks[taskId].func = AnimTask_FacadeColorBlend_Step; } @@ -5145,7 +5145,7 @@ void AnimTask_SnatchOpposingMonMove(u8 taskId) spriteId2 = CreateAdditionalMonSpriteForMoveAnim(species, isBackPic, 0, x, GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y), subpriority, personality, otId, gBattleAnimAttacker, FALSE); if (gBattleSpritesDataPtr->battlerData[gBattleAnimAttacker].transformSpecies != SPECIES_NONE) - BlendPalette((gSprites[spriteId2].oam.paletteNum * 16) | 0x100, 16, 6, RGB_WHITE); + BlendPalette(OBJ_PLTT_ID(gSprites[spriteId2].oam.paletteNum), 16, 6, RGB_WHITE); gTasks[taskId].data[15] = spriteId2; gTasks[taskId].data[0]++; diff --git a/src/battle_anim_fire.c b/src/battle_anim_fire.c index cbfe21c60..2cf3a0ce4 100644 --- a/src/battle_anim_fire.c +++ b/src/battle_anim_fire.c @@ -2,6 +2,7 @@ #include "battle_anim.h" #include "constants/rgb.h" #include "constants/songs.h" +#include "palette.h" #include "sound.h" #include "util.h" #include "task.h" @@ -1329,7 +1330,7 @@ void AnimTask_BlendBackground(u8 taskId) { struct BattleAnimBgData animBg; GetBattleAnimBg1Data(&animBg); - BlendPalette(animBg.paletteId * 16, 16, gBattleAnimArgs[0], gBattleAnimArgs[1]); + BlendPalette(BG_PLTT_ID(animBg.paletteId), 16, gBattleAnimArgs[0], gBattleAnimArgs[1]); DestroyAnimVisualTask(taskId); } diff --git a/src/battle_anim_ghost.c b/src/battle_anim_ghost.c index 819b60969..3604daf39 100644 --- a/src/battle_anim_ghost.c +++ b/src/battle_anim_ghost.c @@ -642,8 +642,8 @@ static void AnimTask_SpiteTargetShadow_Step1(u8 taskId) } break; case 1: - task->data[14] = (task->data[14] + 16) * 16; - CpuCopy32(&gPlttBufferUnfaded[task->data[4]], &gPlttBufferFaded[task->data[14]], 32); + task->data[14] = OBJ_PLTT_ID2(task->data[14]); + CpuCopy32(&gPlttBufferUnfaded[task->data[4]], &gPlttBufferFaded[task->data[14]], PLTT_SIZE_4BPP); BlendPalette(task->data[4], 16, 10, RGB(13, 0, 15)); task->data[15]++; break; diff --git a/src/battle_anim_ice.c b/src/battle_anim_ice.c index 6a0ff1154..6a381a375 100644 --- a/src/battle_anim_ice.c +++ b/src/battle_anim_ice.c @@ -1001,7 +1001,7 @@ void AnimTask_HazeScrollingFog(u8 taskId) GetBattleAnimBg1Data(&animBg); LoadBgTiles(animBg.bgId, gWeatherFogHorizontalTiles, 0x800, animBg.tilesOffset); AnimLoadCompressedBgTilemapHandleContest(&animBg, gBattleAnimFogTilemap, FALSE); - LoadPalette(&gFogPalette, animBg.paletteId * 16, 32); + LoadPalette(&gFogPalette, BG_PLTT_ID(animBg.paletteId), PLTT_SIZE_4BPP); gTasks[taskId].func = AnimTask_HazeScrollingFog_Step; } @@ -1106,7 +1106,7 @@ void AnimTask_LoadMistTiles(u8 taskId) GetBattleAnimBg1Data(&animBg); LoadBgTiles(animBg.bgId, gWeatherFogHorizontalTiles, 0x800, animBg.tilesOffset); AnimLoadCompressedBgTilemapHandleContest(&animBg, gBattleAnimFogTilemap, FALSE); - LoadPalette(&gFogPalette, animBg.paletteId * 16, 32); + LoadPalette(&gFogPalette, BG_PLTT_ID(animBg.paletteId), PLTT_SIZE_4BPP); gTasks[taskId].data[15] = -1; gTasks[taskId].func = AnimTask_LoadMistTiles_Step; diff --git a/src/battle_anim_mons.c b/src/battle_anim_mons.c index 05b0daf3f..42c949ffc 100644 --- a/src/battle_anim_mons.c +++ b/src/battle_anim_mons.c @@ -1726,7 +1726,7 @@ void AnimTask_BlendMonInAndOut(u8 task) DestroyAnimVisualTask(task); return; } - gTasks[task].data[0] = (gSprites[spriteId].oam.paletteNum * 0x10) + 0x101; + gTasks[task].data[0] = OBJ_PLTT_ID(gSprites[spriteId].oam.paletteNum) + 1; AnimTask_BlendPalInAndOutSetup(&gTasks[task]); } @@ -2104,7 +2104,7 @@ u8 CreateAdditionalMonSpriteForMoveAnim(u16 species, bool8 isBackpic, u8 id, s16 gMonSpritesGfxPtr->buffer = AllocZeroed(0x2000); if (!isBackpic) { - LoadCompressedPalette(GetMonSpritePalFromSpeciesAndPersonality(species, trainerId, personality), (palette * 0x10) + 0x100, 0x20); + LoadCompressedPalette(GetMonSpritePalFromSpeciesAndPersonality(species, trainerId, personality), OBJ_PLTT_ID(palette), PLTT_SIZE_4BPP); if (ignoreDeoxysForm == TRUE || ShouldIgnoreDeoxysForm(5, battlerId) == TRUE || gBattleSpritesDataPtr->battlerData[battlerId].transformSpecies != 0) LoadSpecialPokePic_DontHandleDeoxys(&gMonFrontPicTable[species], gMonSpritesGfxPtr->buffer, @@ -2120,7 +2120,7 @@ u8 CreateAdditionalMonSpriteForMoveAnim(u16 species, bool8 isBackpic, u8 id, s16 } else { - LoadCompressedPalette(GetMonSpritePalFromSpeciesAndPersonality(species, trainerId, personality), (palette * 0x10) + 0x100, 0x20); + LoadCompressedPalette(GetMonSpritePalFromSpeciesAndPersonality(species, trainerId, personality), OBJ_PLTT_ID(palette), PLTT_SIZE_4BPP); if (ignoreDeoxysForm == TRUE || ShouldIgnoreDeoxysForm(5, battlerId) == TRUE || gBattleSpritesDataPtr->battlerData[battlerId].transformSpecies != 0) LoadSpecialPokePic_DontHandleDeoxys(&gMonBackPicTable[species], gMonSpritesGfxPtr->buffer, @@ -2427,9 +2427,9 @@ void AnimTask_AttackerPunchWithTrace(u8 taskId) task->tPaletteNum = AllocSpritePalette(ANIM_TAG_BENT_SPOON); task->tNumTracesActive = 0; - dest = (task->tPaletteNum + 16) * 16; - src = (gSprites[task->tBattlerSpriteId].oam.paletteNum + 0x10) * 0x10; - + dest = OBJ_PLTT_ID2(task->tPaletteNum); + src = OBJ_PLTT_ID2(gSprites[task->tBattlerSpriteId].oam.paletteNum); + // Set trace's priority based on battler's subpriority task->tPriority = GetBattlerSpriteSubpriority(gBattleAnimAttacker); if (task->tPriority == 20 || task->tPriority == 40) @@ -2437,7 +2437,7 @@ void AnimTask_AttackerPunchWithTrace(u8 taskId) else task->tPriority = 3; - CpuCopy32(&gPlttBufferUnfaded[src], &gPlttBufferFaded[dest], 0x20); + CpuCopy32(&gPlttBufferUnfaded[src], &gPlttBufferFaded[dest], PLTT_SIZE_4BPP); BlendPalette(dest, 16, gBattleAnimArgs[1], gBattleAnimArgs[0]); task->func = AnimTask_AttackerPunchWithTrace_Step; } diff --git a/src/battle_anim_rock.c b/src/battle_anim_rock.c index e2ea43fb6..ed887c875 100644 --- a/src/battle_anim_rock.c +++ b/src/battle_anim_rock.c @@ -410,7 +410,7 @@ void AnimTask_LoadSandstormBackground(u8 taskId) GetBattleAnimBg1Data(&animBg); AnimLoadCompressedBgGfx(animBg.bgId, gBattleAnimBgImage_Sandstorm, animBg.tilesOffset); AnimLoadCompressedBgTilemapHandleContest(&animBg, gBattleAnimBgTilemap_Sandstorm, FALSE); - LoadCompressedPalette(gBattleAnimSpritePal_FlyingDirt, animBg.paletteId * 16, 32); + LoadCompressedPalette(gBattleAnimSpritePal_FlyingDirt, BG_PLTT_ID(animBg.paletteId), PLTT_SIZE_4BPP); if (gBattleAnimArgs[0] && GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER) var0 = 1; diff --git a/src/battle_anim_status_effects.c b/src/battle_anim_status_effects.c index f56d04ccd..4e6b3a340 100644 --- a/src/battle_anim_status_effects.c +++ b/src/battle_anim_status_effects.c @@ -316,7 +316,7 @@ static void Task_UpdateFlashingCircleImpacts(u8 taskId) if (gTasks[taskId].data[2] == 2) { gTasks[taskId].data[2] = 0; - BlendPalette(0x100 + gTasks[taskId].data[0] * 16, 16, gTasks[taskId].data[4], gTasks[taskId].data[1]); + BlendPalette(OBJ_PLTT_ID(gTasks[taskId].data[0]), 16, gTasks[taskId].data[4], gTasks[taskId].data[1]); if (gTasks[taskId].data[5] == 0) { gTasks[taskId].data[4]++; diff --git a/src/battle_anim_throw.c b/src/battle_anim_throw.c index b02995142..aaec63e59 100755 --- a/src/battle_anim_throw.c +++ b/src/battle_anim_throw.c @@ -471,7 +471,7 @@ void AnimTask_UnusedLevelUpHealthBox(u8 taskId) GetBattleAnimBg1Data(&animBgData); AnimLoadCompressedBgTilemap(animBgData.bgId, UnusedLevelupAnimationTilemap); AnimLoadCompressedBgGfx(animBgData.bgId, UnusedLevelupAnimationGfx, animBgData.tilesOffset); - LoadCompressedPalette(gCureBubblesPal, animBgData.paletteId << 4, 32); + LoadCompressedPalette(gCureBubblesPal, BG_PLTT_ID(animBgData.paletteId), PLTT_SIZE_4BPP); gBattle_BG1_X = -gSprites[spriteId3].x + 32; gBattle_BG1_Y = -gSprites[spriteId3].y - 32; @@ -553,10 +553,10 @@ static void LoadHealthboxPalsForLevelUp(u8 *paletteId1, u8 *paletteId2, u8 battl *paletteId1 = AllocSpritePalette(0xD709); *paletteId2 = AllocSpritePalette(0xD70A); - offset1 = (gSprites[healthBoxSpriteId].oam.paletteNum * 16) + 0x100; - offset2 = (gSprites[spriteId2].oam.paletteNum * 16) + 0x100; - LoadPalette(&gPlttBufferUnfaded[offset1], *paletteId1 * 16 + 0x100, 0x20); - LoadPalette(&gPlttBufferUnfaded[offset2], *paletteId2 * 16 + 0x100, 0x20); + offset1 = OBJ_PLTT_ID(gSprites[healthBoxSpriteId].oam.paletteNum); + offset2 = OBJ_PLTT_ID(gSprites[spriteId2].oam.paletteNum); + LoadPalette(&gPlttBufferUnfaded[offset1], OBJ_PLTT_ID(*paletteId1), PLTT_SIZE_4BPP); + LoadPalette(&gPlttBufferUnfaded[offset2], OBJ_PLTT_ID(*paletteId2), PLTT_SIZE_4BPP); gSprites[healthBoxSpriteId].oam.paletteNum = *paletteId1; gSprites[spriteId1].oam.paletteNum = *paletteId1; @@ -620,7 +620,7 @@ static void AnimTask_FlashHealthboxOnLevelUp_Step(u8 taskId) if (gTasks[taskId].data[2] > 16) gTasks[taskId].data[2] = 16; - paletteOffset = paletteNum * 16 + 0x100; + paletteOffset = OBJ_PLTT_ID(paletteNum); BlendPalette(paletteOffset + colorOffset, 1, gTasks[taskId].data[2], RGB(20, 27, 31)); if (gTasks[taskId].data[2] == 16) gTasks[taskId].data[1]++; @@ -630,7 +630,7 @@ static void AnimTask_FlashHealthboxOnLevelUp_Step(u8 taskId) if (gTasks[taskId].data[2] < 0) gTasks[taskId].data[2] = 0; - paletteOffset = paletteNum * 16 + 0x100; + paletteOffset = OBJ_PLTT_ID(paletteNum); BlendPalette(paletteOffset + colorOffset, 1, gTasks[taskId].data[2], RGB(20, 27, 31)); if (gTasks[taskId].data[2] == 0) DestroyAnimVisualTask(taskId); @@ -2030,12 +2030,12 @@ u8 LaunchBallFadeMonTask(bool8 unfadeLater, u8 spritePalNum, u32 selectedPalette if (!unfadeLater) { - BlendPalette(spritePalNum * 16 + 0x100, 16, 0, gBallOpenFadeColors[ballId]); + BlendPalette(OBJ_PLTT_ID(spritePalNum), 16, 0, gBallOpenFadeColors[ballId]); gTasks[taskId].tdCoeff = 1; } else { - BlendPalette(spritePalNum * 16 + 0x100, 16, 16, gBallOpenFadeColors[ballId]); + BlendPalette(OBJ_PLTT_ID(spritePalNum), 16, 16, gBallOpenFadeColors[ballId]); gTasks[taskId].tCoeff = 16; gTasks[taskId].tdCoeff = -1; gTasks[taskId].func = Task_FadeMon_ToNormal; @@ -2051,7 +2051,7 @@ static void Task_FadeMon_ToBallColor(u8 taskId) if (gTasks[taskId].tTimer <= 16) { - BlendPalette(gTasks[taskId].tPalOffset * 16 + 0x100, 16, gTasks[taskId].tCoeff, gBallOpenFadeColors[ballId]); + BlendPalette(OBJ_PLTT_ID(gTasks[taskId].tPalOffset), 16, gTasks[taskId].tCoeff, gBallOpenFadeColors[ballId]); gTasks[taskId].tCoeff += gTasks[taskId].tdCoeff; gTasks[taskId].tTimer++; } @@ -2079,7 +2079,7 @@ static void Task_FadeMon_ToNormal_Step(u8 taskId) if (gTasks[taskId].tTimer <= 16) { - BlendPalette(gTasks[taskId].tPalOffset * 16 + 0x100, 16, gTasks[taskId].tCoeff, gBallOpenFadeColors[ballId]); + BlendPalette(OBJ_PLTT_ID(gTasks[taskId].tPalOffset), 16, gTasks[taskId].tCoeff, gBallOpenFadeColors[ballId]); gTasks[taskId].tCoeff += gTasks[taskId].tdCoeff; gTasks[taskId].tTimer++; } diff --git a/src/battle_anim_utility_funcs.c b/src/battle_anim_utility_funcs.c index 688a6e5ae..197443aa8 100644 --- a/src/battle_anim_utility_funcs.c +++ b/src/battle_anim_utility_funcs.c @@ -166,7 +166,7 @@ void StartBlendAnimSpriteColor(u8 taskId, u32 selectedPalettes) static void AnimTask_BlendSpriteColor_Step2(u8 taskId) { u32 selectedPalettes; - u16 singlePaletteMask = 0; + u16 singlePaletteOffset = 0x00; if (gTasks[taskId].data[9] == gTasks[taskId].data[2]) { @@ -175,8 +175,8 @@ static void AnimTask_BlendSpriteColor_Step2(u8 taskId) while (selectedPalettes != 0) { if (selectedPalettes & 1) - BlendPalette(singlePaletteMask, 16, gTasks[taskId].data[10], gTasks[taskId].data[5]); - singlePaletteMask += 0x10; + BlendPalette(singlePaletteOffset, 16, gTasks[taskId].data[10], gTasks[taskId].data[5]); + singlePaletteOffset += 0x10; selectedPalettes >>= 1; } @@ -333,7 +333,7 @@ void AnimTask_DrawFallingWhiteLinesOnAttacker(u8 taskId) GetBattleAnimBg1Data(&animBgData); AnimLoadCompressedBgTilemapHandleContest(&animBgData, gBattleAnimMaskTilemap_Curse, FALSE); AnimLoadCompressedBgGfx(animBgData.bgId, gBattleAnimMaskImage_Curse, animBgData.tilesOffset); - LoadPalette(sCurseLinesPalette, animBgData.paletteId * 16 + 1, 2); + LoadPalette(sCurseLinesPalette, BG_PLTT_ID(animBgData.paletteId) + 1, PLTT_SIZEOF(1)); gBattle_BG1_X = -gSprites[spriteId].x + 32; gBattle_BG1_Y = -gSprites[spriteId].y + 32; @@ -478,28 +478,28 @@ static void StatsChangeAnimation_Step2(u8 taskId) switch (sAnimStatsChangeData->data[1]) { case 0: - LoadCompressedPalette(gBattleStatMask2_Pal, animBgData.paletteId * 16, 32); + LoadCompressedPalette(gBattleStatMask2_Pal, BG_PLTT_ID(animBgData.paletteId), PLTT_SIZE_4BPP); break; case 1: - LoadCompressedPalette(gBattleStatMask1_Pal, animBgData.paletteId * 16, 32); + LoadCompressedPalette(gBattleStatMask1_Pal, BG_PLTT_ID(animBgData.paletteId), PLTT_SIZE_4BPP); break; case 2: - LoadCompressedPalette(gBattleStatMask3_Pal, animBgData.paletteId * 16, 32); + LoadCompressedPalette(gBattleStatMask3_Pal, BG_PLTT_ID(animBgData.paletteId), PLTT_SIZE_4BPP); break; case 3: - LoadCompressedPalette(gBattleStatMask4_Pal, animBgData.paletteId * 16, 32); + LoadCompressedPalette(gBattleStatMask4_Pal, BG_PLTT_ID(animBgData.paletteId), PLTT_SIZE_4BPP); break; case 4: - LoadCompressedPalette(gBattleStatMask6_Pal, animBgData.paletteId * 16, 32); + LoadCompressedPalette(gBattleStatMask6_Pal, BG_PLTT_ID(animBgData.paletteId), PLTT_SIZE_4BPP); break; case 5: - LoadCompressedPalette(gBattleStatMask7_Pal, animBgData.paletteId * 16, 32); + LoadCompressedPalette(gBattleStatMask7_Pal, BG_PLTT_ID(animBgData.paletteId), PLTT_SIZE_4BPP); break; case 6: - LoadCompressedPalette(gBattleStatMask8_Pal, animBgData.paletteId * 16, 32); + LoadCompressedPalette(gBattleStatMask8_Pal, BG_PLTT_ID(animBgData.paletteId), PLTT_SIZE_4BPP); break; default: - LoadCompressedPalette(gBattleStatMask5_Pal, animBgData.paletteId * 16, 32); + LoadCompressedPalette(gBattleStatMask5_Pal, BG_PLTT_ID(animBgData.paletteId), PLTT_SIZE_4BPP); break; } @@ -639,16 +639,10 @@ static void AnimTask_Flash_Step(u8 taskId) for (i = 0; i < 16; i++) { if ((task->data[15] >> i) & 1) - { - u16 paletteOffset = i * 16; - BlendPalette(paletteOffset, 16, task->data[2], 0xFFFF); - } + BlendPalette(BG_PLTT_ID(i), 16, task->data[2], 0xFFFF); if ((task->data[14] >> i) & 1) - { - u16 paletteOffset = i * 16 + 0x100; - BlendPalette(paletteOffset, 16, task->data[2], 0); - } + BlendPalette(OBJ_PLTT_ID(i), 16, task->data[2], 0); } if (task->data[2] == 0) @@ -822,7 +816,7 @@ void StartMonScrollingBgMask(u8 taskId, int unused, u16 scrollSpeed, u8 battler, GetBattleAnimBg1Data(&animBgData); AnimLoadCompressedBgTilemapHandleContest(&animBgData, tilemap, FALSE); AnimLoadCompressedBgGfx(animBgData.bgId, gfx, animBgData.tilesOffset); - LoadCompressedPalette(palette, animBgData.paletteId * 16, 32); + LoadCompressedPalette(palette, BG_PLTT_ID(animBgData.paletteId), PLTT_SIZE_4BPP); gBattle_BG1_X = 0; gBattle_BG1_Y = 0; diff --git a/src/battle_anim_water.c b/src/battle_anim_water.c index b7c2df3d1..117dd3b88 100644 --- a/src/battle_anim_water.c +++ b/src/battle_anim_water.c @@ -825,9 +825,9 @@ void AnimTask_CreateSurfWave(u8 taskId) } AnimLoadCompressedBgGfx(animBg.bgId, gBattleAnimBgImage_Surf, animBg.tilesOffset); if (gBattleAnimArgs[0] == 0) - LoadCompressedPalette(gBattleAnimBgPalette_Surf, animBg.paletteId * 16, 32); + LoadCompressedPalette(gBattleAnimBgPalette_Surf, BG_PLTT_ID(animBg.paletteId), PLTT_SIZE_4BPP); else - LoadCompressedPalette(gBattleAnimBackgroundImageMuddyWater_Pal, animBg.paletteId * 16, 32); + LoadCompressedPalette(gBattleAnimBackgroundImageMuddyWater_Pal, BG_PLTT_ID(animBg.paletteId), PLTT_SIZE_4BPP); taskId2 = CreateTask(AnimTask_SurfWaveScanlineEffect, gTasks[taskId].priority + 1); gTasks[taskId].data[15] = taskId2; gTasks[taskId2].data[0] = 0; diff --git a/src/battle_arena.c b/src/battle_arena.c index 92b7c66a3..813932519 100644 --- a/src/battle_arena.c +++ b/src/battle_arena.c @@ -514,7 +514,7 @@ u8 BattleArena_ShowJudgmentWindow(u8 *state) BeginNormalPaletteFade(0x7FFFFF1C, 4, 0, 8, RGB_BLACK); SetGpuReg(REG_OFFSET_WININ, WININ_WIN0_BG1 | WININ_WIN0_BG2 | WININ_WIN0_BG3 | WININ_WIN0_OBJ | WININ_WIN0_CLR | WININ_WIN1_BG_ALL | WININ_WIN1_OBJ | WININ_WIN1_CLR); LoadCompressedSpriteSheet(sBattleArenaJudgementSymbolsSpriteSheet); - LoadCompressedPalette(gBattleArenaJudgementSymbolsPalette, 0x1F0, 0x20); + LoadCompressedPalette(gBattleArenaJudgementSymbolsPalette, OBJ_PLTT_ID(0xF), PLTT_SIZE_4BPP); gBattle_WIN0H = 0xFF; gBattle_WIN0V = 0x70; (*state)++; @@ -894,7 +894,7 @@ static void BufferArenaOpponentName(void) void DrawArenaRefereeTextBox(void) { u8 width = 27; - u8 palNum = 7; + u8 palNum = 0x7; FillBgTilemapBufferRect(0, 0, 254, 14, 1, 6, palNum); FillBgTilemapBufferRect(0, 0, 32, 14, 1, 6, palNum); @@ -918,7 +918,7 @@ void EraseArenaRefereeTextBox(void) { u8 width; u8 height; - u8 palNum = 0; + u8 palNum = 0x0; FillBgTilemapBufferRect(0, 3, 0, 14, 1, 1, palNum); height = 4; diff --git a/src/battle_bg.c b/src/battle_bg.c index ace4ea24f..163b77a51 100644 --- a/src/battle_bg.c +++ b/src/battle_bg.c @@ -167,7 +167,7 @@ static const struct WindowTemplate sStandardBattleWindowTemplates[] = .tilemapTop = 15, .width = 26, .height = 4, - .paletteNum = 0, + .paletteNum = 0x0, .baseBlock = 0x0090, }, [B_WIN_ACTION_PROMPT] = { @@ -176,7 +176,7 @@ static const struct WindowTemplate sStandardBattleWindowTemplates[] = .tilemapTop = 35, .width = 14, .height = 4, - .paletteNum = 0, + .paletteNum = 0x0, .baseBlock = 0x01c0, }, [B_WIN_ACTION_MENU] = { @@ -185,7 +185,7 @@ static const struct WindowTemplate sStandardBattleWindowTemplates[] = .tilemapTop = 35, .width = 12, .height = 4, - .paletteNum = 5, + .paletteNum = 0x5, .baseBlock = 0x0190, }, [B_WIN_MOVE_NAME_1] = { @@ -194,7 +194,7 @@ static const struct WindowTemplate sStandardBattleWindowTemplates[] = .tilemapTop = 55, .width = 8, .height = 2, - .paletteNum = 5, + .paletteNum = 0x5, .baseBlock = 0x0300, }, [B_WIN_MOVE_NAME_2] = { @@ -203,7 +203,7 @@ static const struct WindowTemplate sStandardBattleWindowTemplates[] = .tilemapTop = 55, .width = 8, .height = 2, - .paletteNum = 5, + .paletteNum = 0x5, .baseBlock = 0x0310, }, [B_WIN_MOVE_NAME_3] = { @@ -212,7 +212,7 @@ static const struct WindowTemplate sStandardBattleWindowTemplates[] = .tilemapTop = 57, .width = 8, .height = 2, - .paletteNum = 5, + .paletteNum = 0x5, .baseBlock = 0x0320, }, [B_WIN_MOVE_NAME_4] = { @@ -221,7 +221,7 @@ static const struct WindowTemplate sStandardBattleWindowTemplates[] = .tilemapTop = 57, .width = 8, .height = 2, - .paletteNum = 5, + .paletteNum = 0x5, .baseBlock = 0x0330, }, [B_WIN_PP] = { @@ -230,7 +230,7 @@ static const struct WindowTemplate sStandardBattleWindowTemplates[] = .tilemapTop = 55, .width = 4, .height = 2, - .paletteNum = 5, + .paletteNum = 0x5, .baseBlock = 0x0290, }, [B_WIN_DUMMY] = { @@ -239,7 +239,7 @@ static const struct WindowTemplate sStandardBattleWindowTemplates[] = .tilemapTop = 57, .width = 0, .height = 0, - .paletteNum = 5, + .paletteNum = 0x5, .baseBlock = 0x0298, }, [B_WIN_PP_REMAINING] = { @@ -248,7 +248,7 @@ static const struct WindowTemplate sStandardBattleWindowTemplates[] = .tilemapTop = 55, .width = 4, .height = 2, - .paletteNum = 5, + .paletteNum = 0x5, .baseBlock = 0x0298, }, [B_WIN_MOVE_TYPE] = { @@ -257,7 +257,7 @@ static const struct WindowTemplate sStandardBattleWindowTemplates[] = .tilemapTop = 57, .width = 8, .height = 2, - .paletteNum = 5, + .paletteNum = 0x5, .baseBlock = 0x02a0, }, [B_WIN_SWITCH_PROMPT] = { @@ -266,7 +266,7 @@ static const struct WindowTemplate sStandardBattleWindowTemplates[] = .tilemapTop = 55, .width = 8, .height = 4, - .paletteNum = 5, + .paletteNum = 0x5, .baseBlock = 0x02b0, }, [B_WIN_YESNO] = { @@ -275,7 +275,7 @@ static const struct WindowTemplate sStandardBattleWindowTemplates[] = .tilemapTop = 9, .width = 3, .height = 4, - .paletteNum = 5, + .paletteNum = 0x5, .baseBlock = 0x0100, }, [B_WIN_LEVEL_UP_BOX] = { @@ -284,7 +284,7 @@ static const struct WindowTemplate sStandardBattleWindowTemplates[] = .tilemapTop = 8, .width = 10, .height = 11, - .paletteNum = 5, + .paletteNum = 0x5, .baseBlock = 0x0100, }, [B_WIN_LEVEL_UP_BANNER] = { @@ -293,7 +293,7 @@ static const struct WindowTemplate sStandardBattleWindowTemplates[] = .tilemapTop = 0, .width = 12, .height = 3, - .paletteNum = 6, + .paletteNum = 0x6, .baseBlock = 0x016e, }, [B_WIN_VS_PLAYER] = { @@ -302,7 +302,7 @@ static const struct WindowTemplate sStandardBattleWindowTemplates[] = .tilemapTop = 3, .width = 6, .height = 2, - .paletteNum = 5, + .paletteNum = 0x5, .baseBlock = 0x0020, }, [B_WIN_VS_OPPONENT] = { @@ -311,7 +311,7 @@ static const struct WindowTemplate sStandardBattleWindowTemplates[] = .tilemapTop = 3, .width = 6, .height = 2, - .paletteNum = 5, + .paletteNum = 0x5, .baseBlock = 0x0040, }, [B_WIN_VS_MULTI_PLAYER_1] = { @@ -320,7 +320,7 @@ static const struct WindowTemplate sStandardBattleWindowTemplates[] = .tilemapTop = 2, .width = 6, .height = 2, - .paletteNum = 5, + .paletteNum = 0x5, .baseBlock = 0x0020, }, [B_WIN_VS_MULTI_PLAYER_2] = { @@ -329,7 +329,7 @@ static const struct WindowTemplate sStandardBattleWindowTemplates[] = .tilemapTop = 2, .width = 6, .height = 2, - .paletteNum = 5, + .paletteNum = 0x5, .baseBlock = 0x0040, }, [B_WIN_VS_MULTI_PLAYER_3] = { @@ -338,7 +338,7 @@ static const struct WindowTemplate sStandardBattleWindowTemplates[] = .tilemapTop = 6, .width = 6, .height = 2, - .paletteNum = 5, + .paletteNum = 0x5, .baseBlock = 0x0060, }, [B_WIN_VS_MULTI_PLAYER_4] = { @@ -347,7 +347,7 @@ static const struct WindowTemplate sStandardBattleWindowTemplates[] = .tilemapTop = 6, .width = 6, .height = 2, - .paletteNum = 5, + .paletteNum = 0x5, .baseBlock = 0x0080, }, [B_WIN_VS_OUTCOME_DRAW] = { @@ -356,7 +356,7 @@ static const struct WindowTemplate sStandardBattleWindowTemplates[] = .tilemapTop = 2, .width = 6, .height = 2, - .paletteNum = 0, + .paletteNum = 0x0, .baseBlock = 0x00a0, }, [B_WIN_VS_OUTCOME_LEFT] = { @@ -365,7 +365,7 @@ static const struct WindowTemplate sStandardBattleWindowTemplates[] = .tilemapTop = 2, .width = 7, .height = 2, - .paletteNum = 0, + .paletteNum = 0x0, .baseBlock = 0x00a0, }, [B_WIN_VS_OUTCOME_RIGHT] = { @@ -374,7 +374,7 @@ static const struct WindowTemplate sStandardBattleWindowTemplates[] = .tilemapTop = 2, .width = 7, .height = 2, - .paletteNum = 0, + .paletteNum = 0x0, .baseBlock = 0x00b0, }, DUMMY_WIN_TEMPLATE @@ -388,7 +388,7 @@ static const struct WindowTemplate sBattleArenaWindowTemplates[] = .tilemapTop = 15, .width = 26, .height = 4, - .paletteNum = 0, + .paletteNum = 0x0, .baseBlock = 0x0090, }, [B_WIN_ACTION_PROMPT] = { @@ -397,7 +397,7 @@ static const struct WindowTemplate sBattleArenaWindowTemplates[] = .tilemapTop = 35, .width = 14, .height = 4, - .paletteNum = 0, + .paletteNum = 0x0, .baseBlock = 0x01c0, }, [B_WIN_ACTION_MENU] = { @@ -406,7 +406,7 @@ static const struct WindowTemplate sBattleArenaWindowTemplates[] = .tilemapTop = 35, .width = 12, .height = 4, - .paletteNum = 5, + .paletteNum = 0x5, .baseBlock = 0x0190, }, [B_WIN_MOVE_NAME_1] = { @@ -415,7 +415,7 @@ static const struct WindowTemplate sBattleArenaWindowTemplates[] = .tilemapTop = 55, .width = 8, .height = 2, - .paletteNum = 5, + .paletteNum = 0x5, .baseBlock = 0x0300, }, [B_WIN_MOVE_NAME_2] = { @@ -424,7 +424,7 @@ static const struct WindowTemplate sBattleArenaWindowTemplates[] = .tilemapTop = 55, .width = 8, .height = 2, - .paletteNum = 5, + .paletteNum = 0x5, .baseBlock = 0x0310, }, [B_WIN_MOVE_NAME_3] = { @@ -433,7 +433,7 @@ static const struct WindowTemplate sBattleArenaWindowTemplates[] = .tilemapTop = 57, .width = 8, .height = 2, - .paletteNum = 5, + .paletteNum = 0x5, .baseBlock = 0x0320, }, [B_WIN_MOVE_NAME_4] = { @@ -442,7 +442,7 @@ static const struct WindowTemplate sBattleArenaWindowTemplates[] = .tilemapTop = 57, .width = 8, .height = 2, - .paletteNum = 5, + .paletteNum = 0x5, .baseBlock = 0x0330, }, [B_WIN_PP] = { @@ -451,7 +451,7 @@ static const struct WindowTemplate sBattleArenaWindowTemplates[] = .tilemapTop = 55, .width = 4, .height = 2, - .paletteNum = 5, + .paletteNum = 0x5, .baseBlock = 0x0290, }, [B_WIN_DUMMY] = { @@ -460,7 +460,7 @@ static const struct WindowTemplate sBattleArenaWindowTemplates[] = .tilemapTop = 57, .width = 0, .height = 0, - .paletteNum = 5, + .paletteNum = 0x5, .baseBlock = 0x0298, }, [B_WIN_PP_REMAINING] = { @@ -469,7 +469,7 @@ static const struct WindowTemplate sBattleArenaWindowTemplates[] = .tilemapTop = 55, .width = 4, .height = 2, - .paletteNum = 5, + .paletteNum = 0x5, .baseBlock = 0x0298, }, [B_WIN_MOVE_TYPE] = { @@ -478,7 +478,7 @@ static const struct WindowTemplate sBattleArenaWindowTemplates[] = .tilemapTop = 57, .width = 8, .height = 2, - .paletteNum = 5, + .paletteNum = 0x5, .baseBlock = 0x02a0, }, [B_WIN_SWITCH_PROMPT] = { @@ -487,7 +487,7 @@ static const struct WindowTemplate sBattleArenaWindowTemplates[] = .tilemapTop = 55, .width = 8, .height = 4, - .paletteNum = 5, + .paletteNum = 0x5, .baseBlock = 0x02b0, }, [B_WIN_YESNO] = { @@ -496,7 +496,7 @@ static const struct WindowTemplate sBattleArenaWindowTemplates[] = .tilemapTop = 9, .width = 3, .height = 4, - .paletteNum = 5, + .paletteNum = 0x5, .baseBlock = 0x0100, }, [B_WIN_LEVEL_UP_BOX] = { @@ -505,7 +505,7 @@ static const struct WindowTemplate sBattleArenaWindowTemplates[] = .tilemapTop = 8, .width = 10, .height = 11, - .paletteNum = 5, + .paletteNum = 0x5, .baseBlock = 0x0100, }, [B_WIN_LEVEL_UP_BANNER] = { @@ -514,7 +514,7 @@ static const struct WindowTemplate sBattleArenaWindowTemplates[] = .tilemapTop = 0, .width = 12, .height = 3, - .paletteNum = 6, + .paletteNum = 0x6, .baseBlock = 0x016e, }, [ARENA_WIN_PLAYER_NAME] = { @@ -523,7 +523,7 @@ static const struct WindowTemplate sBattleArenaWindowTemplates[] = .tilemapTop = 1, .width = 8, .height = 2, - .paletteNum = 5, + .paletteNum = 0x5, .baseBlock = 0x0100, }, [ARENA_WIN_VS] = { @@ -532,7 +532,7 @@ static const struct WindowTemplate sBattleArenaWindowTemplates[] = .tilemapTop = 1, .width = 2, .height = 2, - .paletteNum = 5, + .paletteNum = 0x5, .baseBlock = 0x0110, }, [ARENA_WIN_OPPONENT_NAME] = { @@ -541,7 +541,7 @@ static const struct WindowTemplate sBattleArenaWindowTemplates[] = .tilemapTop = 1, .width = 8, .height = 2, - .paletteNum = 5, + .paletteNum = 0x5, .baseBlock = 0x0114, }, [ARENA_WIN_MIND] = { @@ -550,7 +550,7 @@ static const struct WindowTemplate sBattleArenaWindowTemplates[] = .tilemapTop = 4, .width = 6, .height = 2, - .paletteNum = 5, + .paletteNum = 0x5, .baseBlock = 0x0124, }, [ARENA_WIN_SKILL] = { @@ -559,7 +559,7 @@ static const struct WindowTemplate sBattleArenaWindowTemplates[] = .tilemapTop = 6, .width = 6, .height = 2, - .paletteNum = 5, + .paletteNum = 0x5, .baseBlock = 0x0130, }, [ARENA_WIN_BODY] = { @@ -568,7 +568,7 @@ static const struct WindowTemplate sBattleArenaWindowTemplates[] = .tilemapTop = 8, .width = 6, .height = 2, - .paletteNum = 5, + .paletteNum = 0x5, .baseBlock = 0x013c, }, [ARENA_WIN_JUDGEMENT_TITLE] = { @@ -577,7 +577,7 @@ static const struct WindowTemplate sBattleArenaWindowTemplates[] = .tilemapTop = 11, .width = 14, .height = 2, - .paletteNum = 5, + .paletteNum = 0x5, .baseBlock = 0x0148, }, [ARENA_WIN_JUDGEMENT_TEXT] = { @@ -586,7 +586,7 @@ static const struct WindowTemplate sBattleArenaWindowTemplates[] = .tilemapTop = 15, .width = 26, .height = 4, - .paletteNum = 7, + .paletteNum = 0x7, .baseBlock = 0x0090, }, DUMMY_WIN_TEMPLATE @@ -742,17 +742,17 @@ void InitBattleBgsVideo(void) void LoadBattleMenuWindowGfx(void) { - LoadUserWindowBorderGfx(2, 0x12, 0x10); - LoadUserWindowBorderGfx(2, 0x22, 0x10); - LoadCompressedPalette(gBattleWindowTextPalette, 0x50, 0x20); + LoadUserWindowBorderGfx(2, 0x12, BG_PLTT_ID(0x1)); + LoadUserWindowBorderGfx(2, 0x22, BG_PLTT_ID(0x1)); + LoadCompressedPalette(gBattleWindowTextPalette, BG_PLTT_ID(0x5), PLTT_SIZE_4BPP); if (gBattleTypeFlags & BATTLE_TYPE_ARENA) { // Load graphics for the Battle Arena referee's mid-battle messages. - Menu_LoadStdPalAt(0x70); - LoadMessageBoxGfx(0, 0x30, 0x70); - gPlttBufferUnfaded[0x76] = 0; - CpuCopy16(&gPlttBufferUnfaded[0x76], &gPlttBufferFaded[0x76], 2); + Menu_LoadStdPalAt(BG_PLTT_ID(0x7)); + LoadMessageBoxGfx(0, 0x30, BG_PLTT_ID(0x7)); + gPlttBufferUnfaded[BG_PLTT_ID(0x7) + 6] = 0; + CpuCopy16(&gPlttBufferUnfaded[BG_PLTT_ID(0x7) + 6], &gPlttBufferFaded[BG_PLTT_ID(0x7) + 6], PLTT_SIZEOF(1)); } } @@ -762,25 +762,25 @@ void DrawMainBattleBackground(void) { LZDecompressVram(gBattleTerrainTiles_Building, (void *)(BG_CHAR_ADDR(2))); LZDecompressVram(gBattleTerrainTilemap_Building, (void *)(BG_SCREEN_ADDR(26))); - LoadCompressedPalette(gBattleTerrainPalette_Frontier, 0x20, 0x60); + LoadCompressedPalette(gBattleTerrainPalette_Frontier, BG_PLTT_ID(0x2), 3 * PLTT_SIZE_4BPP); } else if (gBattleTypeFlags & BATTLE_TYPE_GROUDON) { LZDecompressVram(gBattleTerrainTiles_Cave, (void *)(BG_CHAR_ADDR(2))); LZDecompressVram(gBattleTerrainTilemap_Cave, (void *)(BG_SCREEN_ADDR(26))); - LoadCompressedPalette(gBattleTerrainPalette_Groudon, 0x20, 0x60); + LoadCompressedPalette(gBattleTerrainPalette_Groudon, BG_PLTT_ID(0x2), 3 * PLTT_SIZE_4BPP); } else if (gBattleTypeFlags & BATTLE_TYPE_KYOGRE) { LZDecompressVram(gBattleTerrainTiles_Water, (void *)(BG_CHAR_ADDR(2))); LZDecompressVram(gBattleTerrainTilemap_Water, (void *)(BG_SCREEN_ADDR(26))); - LoadCompressedPalette(gBattleTerrainPalette_Kyogre, 0x20, 0x60); + LoadCompressedPalette(gBattleTerrainPalette_Kyogre, BG_PLTT_ID(0x2), 3 * PLTT_SIZE_4BPP); } else if (gBattleTypeFlags & BATTLE_TYPE_RAYQUAZA) { LZDecompressVram(gBattleTerrainTiles_Rayquaza, (void *)(BG_CHAR_ADDR(2))); LZDecompressVram(gBattleTerrainTilemap_Rayquaza, (void *)(BG_SCREEN_ADDR(26))); - LoadCompressedPalette(gBattleTerrainPalette_Rayquaza, 0x20, 0x60); + LoadCompressedPalette(gBattleTerrainPalette_Rayquaza, BG_PLTT_ID(0x2), 3 * PLTT_SIZE_4BPP); } else { @@ -791,14 +791,14 @@ void DrawMainBattleBackground(void) { LZDecompressVram(gBattleTerrainTiles_Building, (void *)(BG_CHAR_ADDR(2))); LZDecompressVram(gBattleTerrainTilemap_Building, (void *)(BG_SCREEN_ADDR(26))); - LoadCompressedPalette(gBattleTerrainPalette_BuildingLeader, 0x20, 0x60); + LoadCompressedPalette(gBattleTerrainPalette_BuildingLeader, BG_PLTT_ID(0x2), 3 * PLTT_SIZE_4BPP); return; } else if (trainerClass == TRAINER_CLASS_CHAMPION) { LZDecompressVram(gBattleTerrainTiles_Stadium, (void *)(BG_CHAR_ADDR(2))); LZDecompressVram(gBattleTerrainTilemap_Stadium, (void *)(BG_SCREEN_ADDR(26))); - LoadCompressedPalette(gBattleTerrainPalette_StadiumWallace, 0x20, 0x60); + LoadCompressedPalette(gBattleTerrainPalette_StadiumWallace, BG_PLTT_ID(0x2), 3 * PLTT_SIZE_4BPP); return; } } @@ -809,47 +809,47 @@ void DrawMainBattleBackground(void) case MAP_BATTLE_SCENE_NORMAL: LZDecompressVram(sBattleTerrainTable[gBattleTerrain].tileset, (void *)(BG_CHAR_ADDR(2))); LZDecompressVram(sBattleTerrainTable[gBattleTerrain].tilemap, (void *)(BG_SCREEN_ADDR(26))); - LoadCompressedPalette(sBattleTerrainTable[gBattleTerrain].palette, 0x20, 0x60); + LoadCompressedPalette(sBattleTerrainTable[gBattleTerrain].palette, BG_PLTT_ID(0x2), 3 * PLTT_SIZE_4BPP); break; case MAP_BATTLE_SCENE_GYM: LZDecompressVram(gBattleTerrainTiles_Building, (void *)(BG_CHAR_ADDR(2))); LZDecompressVram(gBattleTerrainTilemap_Building, (void *)(BG_SCREEN_ADDR(26))); - LoadCompressedPalette(gBattleTerrainPalette_BuildingGym, 0x20, 0x60); + LoadCompressedPalette(gBattleTerrainPalette_BuildingGym, BG_PLTT_ID(0x2), 3 * PLTT_SIZE_4BPP); break; case MAP_BATTLE_SCENE_MAGMA: LZDecompressVram(gBattleTerrainTiles_Stadium, (void *)(BG_CHAR_ADDR(2))); LZDecompressVram(gBattleTerrainTilemap_Stadium, (void *)(BG_SCREEN_ADDR(26))); - LoadCompressedPalette(gBattleTerrainPalette_StadiumMagma, 0x20, 0x60); + LoadCompressedPalette(gBattleTerrainPalette_StadiumMagma, BG_PLTT_ID(0x2), 3 * PLTT_SIZE_4BPP); break; case MAP_BATTLE_SCENE_AQUA: LZDecompressVram(gBattleTerrainTiles_Stadium, (void *)(BG_CHAR_ADDR(2))); LZDecompressVram(gBattleTerrainTilemap_Stadium, (void *)(BG_SCREEN_ADDR(26))); - LoadCompressedPalette(gBattleTerrainPalette_StadiumAqua, 0x20, 0x60); + LoadCompressedPalette(gBattleTerrainPalette_StadiumAqua, BG_PLTT_ID(0x2), 3 * PLTT_SIZE_4BPP); break; case MAP_BATTLE_SCENE_SIDNEY: LZDecompressVram(gBattleTerrainTiles_Stadium, (void *)(BG_CHAR_ADDR(2))); LZDecompressVram(gBattleTerrainTilemap_Stadium, (void *)(BG_SCREEN_ADDR(26))); - LoadCompressedPalette(gBattleTerrainPalette_StadiumSidney, 0x20, 0x60); + LoadCompressedPalette(gBattleTerrainPalette_StadiumSidney, BG_PLTT_ID(0x2), 3 * PLTT_SIZE_4BPP); break; case MAP_BATTLE_SCENE_PHOEBE: LZDecompressVram(gBattleTerrainTiles_Stadium, (void *)(BG_CHAR_ADDR(2))); LZDecompressVram(gBattleTerrainTilemap_Stadium, (void *)(BG_SCREEN_ADDR(26))); - LoadCompressedPalette(gBattleTerrainPalette_StadiumPhoebe, 0x20, 0x60); + LoadCompressedPalette(gBattleTerrainPalette_StadiumPhoebe, BG_PLTT_ID(0x2), 3 * PLTT_SIZE_4BPP); break; case MAP_BATTLE_SCENE_GLACIA: LZDecompressVram(gBattleTerrainTiles_Stadium, (void *)(BG_CHAR_ADDR(2))); LZDecompressVram(gBattleTerrainTilemap_Stadium, (void *)(BG_SCREEN_ADDR(26))); - LoadCompressedPalette(gBattleTerrainPalette_StadiumGlacia, 0x20, 0x60); + LoadCompressedPalette(gBattleTerrainPalette_StadiumGlacia, BG_PLTT_ID(0x2), 3 * PLTT_SIZE_4BPP); break; case MAP_BATTLE_SCENE_DRAKE: LZDecompressVram(gBattleTerrainTiles_Stadium, (void *)(BG_CHAR_ADDR(2))); LZDecompressVram(gBattleTerrainTilemap_Stadium, (void *)(BG_SCREEN_ADDR(26))); - LoadCompressedPalette(gBattleTerrainPalette_StadiumDrake, 0x20, 0x60); + LoadCompressedPalette(gBattleTerrainPalette_StadiumDrake, BG_PLTT_ID(0x2), 3 * PLTT_SIZE_4BPP); break; case MAP_BATTLE_SCENE_FRONTIER: LZDecompressVram(gBattleTerrainTiles_Building, (void *)(BG_CHAR_ADDR(2))); LZDecompressVram(gBattleTerrainTilemap_Building, (void *)(BG_SCREEN_ADDR(26))); - LoadCompressedPalette(gBattleTerrainPalette_Frontier, 0x20, 0x60); + LoadCompressedPalette(gBattleTerrainPalette_Frontier, BG_PLTT_ID(0x2), 3 * PLTT_SIZE_4BPP); break; } } @@ -860,7 +860,7 @@ void LoadBattleTextboxAndBackground(void) LZDecompressVram(gBattleTextboxTiles, (void *)(BG_CHAR_ADDR(0))); CopyToBgTilemapBuffer(0, gBattleTextboxTilemap, 0, 0); CopyBgTilemapBufferToVram(0); - LoadCompressedPalette(gBattleTextboxPalette, 0, 0x40); + LoadCompressedPalette(gBattleTextboxPalette, BG_PLTT_ID(0x0), 2 * PLTT_SIZE_4BPP); LoadBattleMenuWindowGfx(); DrawMainBattleBackground(); } @@ -1126,7 +1126,7 @@ void DrawBattleEntryBackground(void) { LZDecompressVram(gBattleVSFrame_Gfx, (void *)(BG_CHAR_ADDR(1))); LZDecompressVram(gVsLettersGfx, (void *)OBJ_VRAM0); - LoadCompressedPalette(gBattleVSFrame_Pal, 0x60, 0x20); + LoadCompressedPalette(gBattleVSFrame_Pal, BG_PLTT_ID(0x6), PLTT_SIZE_4BPP); SetBgAttribute(1, BG_ATTR_SCREENSIZE, 1); SetGpuReg(REG_OFFSET_BG1CNT, 0x5C04); CopyToBgTilemapBuffer(1, gBattleVSFrame_Tilemap, 0, 0); @@ -1219,7 +1219,7 @@ bool8 LoadChosenBattleElement(u8 caseId) CopyBgTilemapBufferToVram(0); break; case 2: - LoadCompressedPalette(gBattleTextboxPalette, 0, 0x40); + LoadCompressedPalette(gBattleTextboxPalette, BG_PLTT_ID(0x0), 2 * PLTT_SIZE_4BPP); break; case 3: if (gBattleTypeFlags & (BATTLE_TYPE_FRONTIER | BATTLE_TYPE_LINK | BATTLE_TYPE_RECORDED_LINK | BATTLE_TYPE_EREADER_TRAINER)) @@ -1345,14 +1345,14 @@ bool8 LoadChosenBattleElement(u8 caseId) case 5: if (gBattleTypeFlags & (BATTLE_TYPE_FRONTIER | BATTLE_TYPE_LINK | BATTLE_TYPE_RECORDED_LINK | BATTLE_TYPE_EREADER_TRAINER)) { - LoadCompressedPalette(gBattleTerrainPalette_Frontier, 0x20, 0x60); + LoadCompressedPalette(gBattleTerrainPalette_Frontier, BG_PLTT_ID(0x2), 3 * PLTT_SIZE_4BPP); } else if (gBattleTypeFlags & BATTLE_TYPE_KYOGRE_GROUDON) { if (gGameVersion == VERSION_RUBY) - LoadCompressedPalette(gBattleTerrainPalette_Groudon, 0x20, 0x60); + LoadCompressedPalette(gBattleTerrainPalette_Groudon, BG_PLTT_ID(0x2), 3 * PLTT_SIZE_4BPP); else - LoadCompressedPalette(gBattleTerrainPalette_Kyogre, 0x20, 0x60); + LoadCompressedPalette(gBattleTerrainPalette_Kyogre, BG_PLTT_ID(0x2), 3 * PLTT_SIZE_4BPP); } else { @@ -1361,12 +1361,12 @@ bool8 LoadChosenBattleElement(u8 caseId) u8 trainerClass = gTrainers[gTrainerBattleOpponent_A].trainerClass; if (trainerClass == TRAINER_CLASS_LEADER) { - LoadCompressedPalette(gBattleTerrainPalette_BuildingLeader, 0x20, 0x60); + LoadCompressedPalette(gBattleTerrainPalette_BuildingLeader, BG_PLTT_ID(0x2), 3 * PLTT_SIZE_4BPP); break; } else if (trainerClass == TRAINER_CLASS_CHAMPION) { - LoadCompressedPalette(gBattleTerrainPalette_StadiumWallace, 0x20, 0x60); + LoadCompressedPalette(gBattleTerrainPalette_StadiumWallace, BG_PLTT_ID(0x2), 3 * PLTT_SIZE_4BPP); break; } } @@ -1375,31 +1375,31 @@ bool8 LoadChosenBattleElement(u8 caseId) { default: case MAP_BATTLE_SCENE_NORMAL: - LoadCompressedPalette(sBattleTerrainTable[gBattleTerrain].palette, 0x20, 0x60); + LoadCompressedPalette(sBattleTerrainTable[gBattleTerrain].palette, BG_PLTT_ID(0x2), 3 * PLTT_SIZE_4BPP); break; case MAP_BATTLE_SCENE_GYM: - LoadCompressedPalette(gBattleTerrainPalette_BuildingGym, 0x20, 0x60); + LoadCompressedPalette(gBattleTerrainPalette_BuildingGym, BG_PLTT_ID(0x2), 3 * PLTT_SIZE_4BPP); break; case MAP_BATTLE_SCENE_MAGMA: - LoadCompressedPalette(gBattleTerrainPalette_StadiumMagma, 0x20, 0x60); + LoadCompressedPalette(gBattleTerrainPalette_StadiumMagma, BG_PLTT_ID(0x2), 3 * PLTT_SIZE_4BPP); break; case MAP_BATTLE_SCENE_AQUA: - LoadCompressedPalette(gBattleTerrainPalette_StadiumAqua, 0x20, 0x60); + LoadCompressedPalette(gBattleTerrainPalette_StadiumAqua, BG_PLTT_ID(0x2), 3 * PLTT_SIZE_4BPP); break; case MAP_BATTLE_SCENE_SIDNEY: - LoadCompressedPalette(gBattleTerrainPalette_StadiumSidney, 0x20, 0x60); + LoadCompressedPalette(gBattleTerrainPalette_StadiumSidney, BG_PLTT_ID(0x2), 3 * PLTT_SIZE_4BPP); break; case MAP_BATTLE_SCENE_PHOEBE: - LoadCompressedPalette(gBattleTerrainPalette_StadiumPhoebe, 0x20, 0x60); + LoadCompressedPalette(gBattleTerrainPalette_StadiumPhoebe, BG_PLTT_ID(0x2), 3 * PLTT_SIZE_4BPP); break; case MAP_BATTLE_SCENE_GLACIA: - LoadCompressedPalette(gBattleTerrainPalette_StadiumGlacia, 0x20, 0x60); + LoadCompressedPalette(gBattleTerrainPalette_StadiumGlacia, BG_PLTT_ID(0x2), 3 * PLTT_SIZE_4BPP); break; case MAP_BATTLE_SCENE_DRAKE: - LoadCompressedPalette(gBattleTerrainPalette_StadiumDrake, 0x20, 0x60); + LoadCompressedPalette(gBattleTerrainPalette_StadiumDrake, BG_PLTT_ID(0x2), 3 * PLTT_SIZE_4BPP); break; case MAP_BATTLE_SCENE_FRONTIER: - LoadCompressedPalette(gBattleTerrainPalette_Frontier, 0x20, 0x60); + LoadCompressedPalette(gBattleTerrainPalette_Frontier, BG_PLTT_ID(0x2), 3 * PLTT_SIZE_4BPP); break; } } diff --git a/src/battle_controller_link_partner.c b/src/battle_controller_link_partner.c index c072ae12f..8c5b0bff1 100644 --- a/src/battle_controller_link_partner.c +++ b/src/battle_controller_link_partner.c @@ -1558,7 +1558,7 @@ static void LinkPartnerHandleIntroTrainerBallThrow(void) trainerPicId = gLinkPlayers[GetBattlerMultiplayerId(gActiveBattler)].gender; } - LoadCompressedPalette(gTrainerBackPicPaletteTable[trainerPicId].data, 0x100 + paletteNum * 16, 32); + LoadCompressedPalette(gTrainerBackPicPaletteTable[trainerPicId].data, OBJ_PLTT_ID(paletteNum), PLTT_SIZE_4BPP); gSprites[gBattlerSpriteIds[gActiveBattler]].oam.paletteNum = paletteNum; diff --git a/src/battle_controller_player.c b/src/battle_controller_player.c index 272e0120c..22a710d4c 100644 --- a/src/battle_controller_player.c +++ b/src/battle_controller_player.c @@ -2960,7 +2960,7 @@ static void PlayerHandleIntroTrainerBallThrow(void) StartSpriteAnim(&gSprites[gBattlerSpriteIds[gActiveBattler]], 1); paletteNum = AllocSpritePalette(0xD6F8); - LoadCompressedPalette(gTrainerBackPicPaletteTable[gSaveBlock2Ptr->playerGender].data, 0x100 + paletteNum * 16, 32); + LoadCompressedPalette(gTrainerBackPicPaletteTable[gSaveBlock2Ptr->playerGender].data, OBJ_PLTT_ID(paletteNum), PLTT_SIZE_4BPP); gSprites[gBattlerSpriteIds[gActiveBattler]].oam.paletteNum = paletteNum; taskId = CreateTask(Task_StartSendOutAnim, 5); diff --git a/src/battle_controller_player_partner.c b/src/battle_controller_player_partner.c index 3812a8ffe..7a389f5dd 100644 --- a/src/battle_controller_player_partner.c +++ b/src/battle_controller_player_partner.c @@ -1794,12 +1794,12 @@ static void PlayerPartnerHandleIntroTrainerBallThrow(void) if (gPartnerTrainerId == TRAINER_STEVEN_PARTNER) { u8 spriteId = TRAINER_BACK_PIC_STEVEN; - LoadCompressedPalette(gTrainerBackPicPaletteTable[spriteId].data, 0x100 + paletteNum * 16, 32); + LoadCompressedPalette(gTrainerBackPicPaletteTable[spriteId].data, OBJ_PLTT_ID(paletteNum), PLTT_SIZE_4BPP); } else { u8 spriteId = GetFrontierTrainerFrontSpriteId(gPartnerTrainerId); - LoadCompressedPalette(gTrainerFrontPicPaletteTable[spriteId].data, 0x100 + paletteNum * 16, 32); + LoadCompressedPalette(gTrainerFrontPicPaletteTable[spriteId].data, OBJ_PLTT_ID(paletteNum), PLTT_SIZE_4BPP); } diff --git a/src/battle_controller_recorded_player.c b/src/battle_controller_recorded_player.c index 6200b5ef6..35979cb93 100644 --- a/src/battle_controller_recorded_player.c +++ b/src/battle_controller_recorded_player.c @@ -1678,7 +1678,7 @@ static void RecordedPlayerHandleIntroTrainerBallThrow(void) else trainerPicId = gSaveBlock2Ptr->playerGender; - LoadCompressedPalette(gTrainerBackPicPaletteTable[trainerPicId].data, 0x100 + paletteNum * 16, 32); + LoadCompressedPalette(gTrainerBackPicPaletteTable[trainerPicId].data, OBJ_PLTT_ID(paletteNum), PLTT_SIZE_4BPP); gSprites[gBattlerSpriteIds[gActiveBattler]].oam.paletteNum = paletteNum; diff --git a/src/battle_controller_wally.c b/src/battle_controller_wally.c index 8e0283177..bb2adba5f 100644 --- a/src/battle_controller_wally.c +++ b/src/battle_controller_wally.c @@ -1445,7 +1445,7 @@ static void WallyHandleIntroTrainerBallThrow(void) StartSpriteAnim(&gSprites[gBattlerSpriteIds[gActiveBattler]], 1); paletteNum = AllocSpritePalette(0xD6F8); - LoadCompressedPalette(gTrainerBackPicPaletteTable[TRAINER_BACK_PIC_WALLY].data, 0x100 + paletteNum * 16, 32); + LoadCompressedPalette(gTrainerBackPicPaletteTable[TRAINER_BACK_PIC_WALLY].data, OBJ_PLTT_ID(paletteNum), PLTT_SIZE_4BPP); gSprites[gBattlerSpriteIds[gActiveBattler]].oam.paletteNum = paletteNum; taskId = CreateTask(Task_StartSendOutAnim, 5); diff --git a/src/battle_dome.c b/src/battle_dome.c index 901805031..4293e5e19 100644 --- a/src/battle_dome.c +++ b/src/battle_dome.c @@ -676,7 +676,7 @@ static const struct WindowTemplate sTourneyTreeWindowTemplates[] = .tilemapTop = 3, .width = 8, .height = 16, - .paletteNum = 15, + .paletteNum = 0xF, .baseBlock = 16, }, { @@ -685,7 +685,7 @@ static const struct WindowTemplate sTourneyTreeWindowTemplates[] = .tilemapTop = 3, .width = 8, .height = 16, - .paletteNum = 15, + .paletteNum = 0xF, .baseBlock = 144, }, { @@ -694,7 +694,7 @@ static const struct WindowTemplate sTourneyTreeWindowTemplates[] = .tilemapTop = 1, .width = 14, .height = 2, - .paletteNum = 15, + .paletteNum = 0xF, .baseBlock = 272, }, DUMMY_WIN_TEMPLATE, @@ -708,7 +708,7 @@ static const struct WindowTemplate sInfoCardWindowTemplates[] = .tilemapTop = 2, .width = 26, .height = 2, - .paletteNum = 15, + .paletteNum = 0xF, .baseBlock = 1, }, { @@ -717,7 +717,7 @@ static const struct WindowTemplate sInfoCardWindowTemplates[] = .tilemapTop = 5, .width = 8, .height = 2, - .paletteNum = 15, + .paletteNum = 0xF, .baseBlock = 53, }, { @@ -726,7 +726,7 @@ static const struct WindowTemplate sInfoCardWindowTemplates[] = .tilemapTop = 7, .width = 9, .height = 3, - .paletteNum = 15, + .paletteNum = 0xF, .baseBlock = 69, }, { @@ -735,7 +735,7 @@ static const struct WindowTemplate sInfoCardWindowTemplates[] = .tilemapTop = 10, .width = 8, .height = 2, - .paletteNum = 15, + .paletteNum = 0xF, .baseBlock = 96, }, { @@ -744,7 +744,7 @@ static const struct WindowTemplate sInfoCardWindowTemplates[] = .tilemapTop = 12, .width = 26, .height = 7, - .paletteNum = 15, + .paletteNum = 0xF, .baseBlock = 112, }, { @@ -753,7 +753,7 @@ static const struct WindowTemplate sInfoCardWindowTemplates[] = .tilemapTop = 2, .width = 23, .height = 2, - .paletteNum = 15, + .paletteNum = 0xF, .baseBlock = 294, }, { @@ -762,7 +762,7 @@ static const struct WindowTemplate sInfoCardWindowTemplates[] = .tilemapTop = 5, .width = 8, .height = 2, - .paletteNum = 15, + .paletteNum = 0xF, .baseBlock = 340, }, { @@ -771,7 +771,7 @@ static const struct WindowTemplate sInfoCardWindowTemplates[] = .tilemapTop = 5, .width = 8, .height = 2, - .paletteNum = 15, + .paletteNum = 0xF, .baseBlock = 356, }, { @@ -780,7 +780,7 @@ static const struct WindowTemplate sInfoCardWindowTemplates[] = .tilemapTop = 16, .width = 26, .height = 2, - .paletteNum = 15, + .paletteNum = 0xF, .baseBlock = 372, }, { @@ -789,7 +789,7 @@ static const struct WindowTemplate sInfoCardWindowTemplates[] = .tilemapTop = 2, .width = 26, .height = 2, - .paletteNum = 15, + .paletteNum = 0xF, .baseBlock = 1, }, { @@ -798,7 +798,7 @@ static const struct WindowTemplate sInfoCardWindowTemplates[] = .tilemapTop = 5, .width = 8, .height = 2, - .paletteNum = 15, + .paletteNum = 0xF, .baseBlock = 53, }, { @@ -807,7 +807,7 @@ static const struct WindowTemplate sInfoCardWindowTemplates[] = .tilemapTop = 7, .width = 9, .height = 3, - .paletteNum = 15, + .paletteNum = 0xF, .baseBlock = 69, }, { @@ -816,7 +816,7 @@ static const struct WindowTemplate sInfoCardWindowTemplates[] = .tilemapTop = 10, .width = 8, .height = 2, - .paletteNum = 15, + .paletteNum = 0xF, .baseBlock = 96, }, { @@ -825,7 +825,7 @@ static const struct WindowTemplate sInfoCardWindowTemplates[] = .tilemapTop = 12, .width = 26, .height = 7, - .paletteNum = 15, + .paletteNum = 0xF, .baseBlock = 112, }, { @@ -834,7 +834,7 @@ static const struct WindowTemplate sInfoCardWindowTemplates[] = .tilemapTop = 2, .width = 23, .height = 2, - .paletteNum = 15, + .paletteNum = 0xF, .baseBlock = 294, }, { @@ -843,7 +843,7 @@ static const struct WindowTemplate sInfoCardWindowTemplates[] = .tilemapTop = 5, .width = 8, .height = 2, - .paletteNum = 15, + .paletteNum = 0xF, .baseBlock = 340, }, { @@ -852,7 +852,7 @@ static const struct WindowTemplate sInfoCardWindowTemplates[] = .tilemapTop = 5, .width = 8, .height = 2, - .paletteNum = 15, + .paletteNum = 0xF, .baseBlock = 356, }, { @@ -861,7 +861,7 @@ static const struct WindowTemplate sInfoCardWindowTemplates[] = .tilemapTop = 16, .width = 26, .height = 2, - .paletteNum = 15, + .paletteNum = 0xF, .baseBlock = 372, }, #ifdef UBFIX @@ -3048,12 +3048,12 @@ static void Task_ShowTourneyInfoCard(u8 taskId) DecompressAndLoadBgGfxUsingHeap(2, gDomeTourneyInfoCard_Tilemap, 0x2000, 0, 1); DecompressAndLoadBgGfxUsingHeap(3, gDomeTourneyInfoCardBg_Tilemap, 0x800, 0, 1); LoadCompressedSpriteSheet(sTourneyTreeButtonsSpriteSheet); - LoadCompressedPalette(gDomeTourneyTree_Pal, 0, 0x200); - LoadCompressedPalette(gDomeTourneyTreeButtons_Pal, 0x100, 0x200); - LoadCompressedPalette(gBattleWindowTextPalette, 0xF0, 0x20); + LoadCompressedPalette(gDomeTourneyTree_Pal, BG_PLTT_OFFSET, BG_PLTT_SIZE); + LoadCompressedPalette(gDomeTourneyTreeButtons_Pal, OBJ_PLTT_OFFSET, OBJ_PLTT_SIZE); + LoadCompressedPalette(gBattleWindowTextPalette, BG_PLTT_ID(0xF), PLTT_SIZE_4BPP); if (mode == INFOCARD_MATCH) - LoadCompressedPalette(gDomeTourneyMatchCardBg_Pal, 0x50, 0x20); // Changes the moving info card bg to orange when in match card mode - CpuFill32(0, gPlttBufferFaded, 0x400); + LoadCompressedPalette(gDomeTourneyMatchCardBg_Pal, BG_PLTT_ID(0x5), PLTT_SIZE_4BPP); // Changes the moving info card bg to orange when in match card mode + CpuFill32(0, gPlttBufferFaded, PLTT_SIZE); ShowBg(0); ShowBg(1); ShowBg(2); @@ -5327,10 +5327,10 @@ static void Task_ShowTourneyTree(u8 taskId) DecompressAndLoadBgGfxUsingHeap(2, gDomeTourneyLine_Gfx, 0x2000, 0, 0); DecompressAndLoadBgGfxUsingHeap(2, gDomeTourneyLineDown_Tilemap, 0x2000, 0, 1); DecompressAndLoadBgGfxUsingHeap(3, gDomeTourneyLineUp_Tilemap, 0x2000, 0, 1); - LoadCompressedPalette(gDomeTourneyTree_Pal, 0, 0x200); - LoadCompressedPalette(gDomeTourneyTreeButtons_Pal, 0x100, 0x200); - LoadCompressedPalette(gBattleWindowTextPalette, 0xF0, 0x20); - CpuFill32(0, gPlttBufferFaded, 0x400); + LoadCompressedPalette(gDomeTourneyTree_Pal, BG_PLTT_OFFSET, BG_PLTT_SIZE); + LoadCompressedPalette(gDomeTourneyTreeButtons_Pal, OBJ_PLTT_OFFSET, OBJ_PLTT_SIZE); + LoadCompressedPalette(gBattleWindowTextPalette, BG_PLTT_ID(0xF), PLTT_SIZE_4BPP); + CpuFill32(0, gPlttBufferFaded, PLTT_SIZE); ShowBg(0); ShowBg(1); ShowBg(2); diff --git a/src/battle_factory_screen.c b/src/battle_factory_screen.c index 0e3ebaeff..c6843e753 100644 --- a/src/battle_factory_screen.c +++ b/src/battle_factory_screen.c @@ -350,7 +350,7 @@ static const struct WindowTemplate sSelect_WindowTemplates[] = .tilemapTop = 2, .width = 12, .height = 2, - .paletteNum = 15, + .paletteNum = 0xF, .baseBlock = 0x0001, }, [SELECT_WIN_SPECIES] = { @@ -359,7 +359,7 @@ static const struct WindowTemplate sSelect_WindowTemplates[] = .tilemapTop = 2, .width = 11, .height = 2, - .paletteNum = 14, + .paletteNum = 0xE, .baseBlock = 0x0019, }, [SELECT_WIN_INFO] = { @@ -368,7 +368,7 @@ static const struct WindowTemplate sSelect_WindowTemplates[] = .tilemapTop = 15, .width = 20, .height = 3, - .paletteNum = 15, + .paletteNum = 0xF, .baseBlock = 0x002f, }, [SELECT_WIN_OPTIONS] = { @@ -377,7 +377,7 @@ static const struct WindowTemplate sSelect_WindowTemplates[] = .tilemapTop = 14, .width = 8, .height = 6, - .paletteNum = 15, + .paletteNum = 0xF, .baseBlock = 0x006b, }, [SELECT_WIN_YES_NO] = { @@ -386,7 +386,7 @@ static const struct WindowTemplate sSelect_WindowTemplates[] = .tilemapTop = 14, .width = 8, .height = 4, - .paletteNum = 15, + .paletteNum = 0xF, .baseBlock = 0x009b, }, [SELECT_WIN_MON_CATEGORY] = { @@ -395,7 +395,7 @@ static const struct WindowTemplate sSelect_WindowTemplates[] = .tilemapTop = 0, .width = 15, .height = 2, - .paletteNum = 15, + .paletteNum = 0xF, .baseBlock = 0x00bb, }, DUMMY_WIN_TEMPLATE, @@ -945,7 +945,7 @@ static const struct WindowTemplate sSwap_WindowTemplates[] = .tilemapTop = 2, .width = 12, .height = 2, - .paletteNum = 15, + .paletteNum = 0xF, .baseBlock = 0x0001, }, [SWAP_WIN_SPECIES] = { @@ -954,7 +954,7 @@ static const struct WindowTemplate sSwap_WindowTemplates[] = .tilemapTop = 2, .width = 11, .height = 2, - .paletteNum = 14, + .paletteNum = 0xE, .baseBlock = 0x0019, }, [SWAP_WIN_INFO] = { @@ -963,7 +963,7 @@ static const struct WindowTemplate sSwap_WindowTemplates[] = .tilemapTop = 15, .width = 20, .height = 3, - .paletteNum = 15, + .paletteNum = 0xF, .baseBlock = 0x002f, }, [SWAP_WIN_OPTIONS] = { @@ -972,7 +972,7 @@ static const struct WindowTemplate sSwap_WindowTemplates[] = .tilemapTop = 14, .width = 9, .height = 6, - .paletteNum = 15, + .paletteNum = 0xF, .baseBlock = 0x006b, }, [SWAP_WIN_YES_NO] = { @@ -981,7 +981,7 @@ static const struct WindowTemplate sSwap_WindowTemplates[] = .tilemapTop = 14, .width = 8, .height = 4, - .paletteNum = 15, + .paletteNum = 0xF, .baseBlock = 0x00a1, }, [SWAP_WIN_ACTION_FADE] = { @@ -990,7 +990,7 @@ static const struct WindowTemplate sSwap_WindowTemplates[] = .tilemapTop = 15, .width = 9, .height = 5, - .paletteNum = 14, + .paletteNum = 0xE, .baseBlock = 0x006b, }, [SWAP_WIN_UNUSED] = { @@ -999,7 +999,7 @@ static const struct WindowTemplate sSwap_WindowTemplates[] = .tilemapTop = 2, .width = 4, .height = 2, - .paletteNum = 14, + .paletteNum = 0xE, .baseBlock = 0x00c1, }, [SWAP_WIN_SPECIES_AT_FADE] = { @@ -1008,7 +1008,7 @@ static const struct WindowTemplate sSwap_WindowTemplates[] = .tilemapTop = 2, .width = 11, .height = 2, - .paletteNum = 15, + .paletteNum = 0xF, .baseBlock = 0x00c9, }, [SWAP_WIN_MON_CATEGORY] = { @@ -1017,7 +1017,7 @@ static const struct WindowTemplate sSwap_WindowTemplates[] = .tilemapTop = 0, .width = 15, .height = 2, - .paletteNum = 15, + .paletteNum = 0xF, .baseBlock = 0x00df, }, DUMMY_WIN_TEMPLATE, @@ -1175,16 +1175,16 @@ static void CB2_InitSelectScreen(void) LoadBgTiles(3, sSelectMonPicBgTilesetBuffer, 0x60, 0); CpuCopy16(gFrontierFactorySelectMenu_Tilemap, sSelectMenuTilemapBuffer, BG_SCREEN_SIZE); LoadBgTilemap(1, sSelectMenuTilemapBuffer, BG_SCREEN_SIZE, 0); - LoadPalette(gFrontierFactorySelectMenu_Pal, 0, 0x40); - LoadPalette(sSelectText_Pal, 0xF0, 8); - LoadPalette(sSelectText_Pal, 0xE0, 10); + LoadPalette(gFrontierFactorySelectMenu_Pal, 0, 2 * PLTT_SIZE_4BPP); + LoadPalette(sSelectText_Pal, BG_PLTT_ID(0xF), PLTT_SIZEOF(4)); + LoadPalette(sSelectText_Pal, BG_PLTT_ID(0xE), PLTT_SIZEOF(5)); #ifdef UBFIX if (sFactorySelectScreen && sFactorySelectScreen->fromSummaryScreen) #else if (sFactorySelectScreen->fromSummaryScreen == TRUE) #endif gPlttBufferUnfaded[228] = sFactorySelectScreen->speciesNameColorBackup; - LoadPalette(sMonPicBg_Pal, 0x20, 4); + LoadPalette(sMonPicBg_Pal, BG_PLTT_ID(0x2), PLTT_SIZEOF(2)); gMain.state++; break; case 3: @@ -2748,7 +2748,7 @@ static void Swap_Task_FadeOutSpeciesName(u8 taskId) gTasks[taskId].tState++; break; case 1: - LoadPalette(&gPlttBufferUnfaded[0xF0], 0xE0, 0xA); + LoadPalette(&gPlttBufferUnfaded[BG_PLTT_ID(0xF)], BG_PLTT_ID(0xE), PLTT_SIZEOF(5)); gTasks[taskId].tState++; break; case 2: @@ -2994,7 +2994,7 @@ static void Swap_Task_ScreenInfoTransitionOut(u8 taskId) switch (gTasks[taskId].tState) { case 0: - LoadPalette(sSwapText_Pal, 0xE0, sizeof(sSwapText_Pal)); + LoadPalette(sSwapText_Pal, BG_PLTT_ID(0xE), sizeof(sSwapText_Pal)); Swap_PrintActionStrings(); PutWindowTilemap(SWAP_WIN_ACTION_FADE); gTasks[taskId].tState++; @@ -3309,10 +3309,10 @@ static void CB2_InitSwapScreen(void) LoadBgTiles(3, sSwapMonPicBgTilesetBuffer, 0x60, 0); CpuCopy16(gFrontierFactorySelectMenu_Tilemap, sSwapMenuTilemapBuffer, BG_SCREEN_SIZE); LoadBgTilemap(1, sSwapMenuTilemapBuffer, BG_SCREEN_SIZE, 0); - LoadPalette(gFrontierFactorySelectMenu_Pal, 0, 0x40); - LoadPalette(sSwapText_Pal, 0xF0, sizeof(sSwapText_Pal)); - LoadPalette(sSwapText_Pal, 0xE0, sizeof(sSwapText_Pal)); - LoadPalette(sMonPicBg_Pal, 0x20, 4); + LoadPalette(gFrontierFactorySelectMenu_Pal, 0, 2 * PLTT_SIZE_4BPP); + LoadPalette(sSwapText_Pal, BG_PLTT_ID(0xF), sizeof(sSwapText_Pal)); + LoadPalette(sSwapText_Pal, BG_PLTT_ID(0xE), sizeof(sSwapText_Pal)); + LoadPalette(sMonPicBg_Pal, BG_PLTT_ID(0x2), PLTT_SIZEOF(2)); gMain.state++; break; case 3: @@ -3867,7 +3867,7 @@ static void Swap_PrintMonSpeciesAtFade(void) pal[4] = gPlttBufferFaded[228]; else pal[4] = sFactorySwapScreen->speciesNameColorBackup; - LoadPalette(pal, 0xF0, sizeof(sSwapText_Pal)); + LoadPalette(pal, BG_PLTT_ID(0xF), sizeof(sSwapText_Pal)); PutWindowTilemap(SWAP_WIN_SPECIES_AT_FADE); FillWindowPixelBuffer(SWAP_WIN_SPECIES_AT_FADE, PIXEL_FILL(0)); @@ -3895,8 +3895,8 @@ static void Swap_PrintMonSpeciesForTransition(void) u16 species; u8 x; - LoadPalette(sSwapText_Pal, 0xE0, sizeof(sSwapText_Pal)); - CpuCopy16(&gPlttBufferUnfaded[240], &gPlttBufferFaded[224], 10); + LoadPalette(sSwapText_Pal, BG_PLTT_ID(0xE), sizeof(sSwapText_Pal)); + CpuCopy16(&gPlttBufferUnfaded[BG_PLTT_ID(0xF)], &gPlttBufferFaded[BG_PLTT_ID(0xE)], PLTT_SIZEOF(5)); if (sFactorySwapScreen->cursorPos >= FRONTIER_PARTY_SIZE) { diff --git a/src/battle_gfx_sfx_util.c b/src/battle_gfx_sfx_util.c index ca6be9d4e..42f3805aa 100644 --- a/src/battle_gfx_sfx_util.c +++ b/src/battle_gfx_sfx_util.c @@ -576,7 +576,7 @@ void BattleLoadOpponentMonSpriteGfx(struct Pokemon *mon, u8 battlerId) gMonSpritesGfxPtr->sprites.ptr[position], species, currentPersonality); - paletteOffset = 0x100 + battlerId * 16; + paletteOffset = OBJ_PLTT_ID(battlerId); if (gBattleSpritesDataPtr->battlerData[battlerId].transformSpecies == SPECIES_NONE) lzPaletteData = GetMonFrontSpritePal(mon); @@ -584,21 +584,21 @@ void BattleLoadOpponentMonSpriteGfx(struct Pokemon *mon, u8 battlerId) lzPaletteData = GetMonSpritePalFromSpeciesAndPersonality(species, otId, monsPersonality); LZDecompressWram(lzPaletteData, gDecompressionBuffer); - LoadPalette(gDecompressionBuffer, paletteOffset, 0x20); - LoadPalette(gDecompressionBuffer, 0x80 + battlerId * 16, 0x20); + LoadPalette(gDecompressionBuffer, paletteOffset, PLTT_SIZE_4BPP); + LoadPalette(gDecompressionBuffer, 0x80 + BG_PLTT_ID(battlerId), PLTT_SIZE_4BPP); if (species == SPECIES_CASTFORM) { - paletteOffset = 0x100 + battlerId * 16; + paletteOffset = OBJ_PLTT_ID(battlerId); LZDecompressWram(lzPaletteData, gBattleStruct->castformPalette); - LoadPalette(gBattleStruct->castformPalette[gBattleMonForms[battlerId]], paletteOffset, 0x20); + LoadPalette(gBattleStruct->castformPalette[gBattleMonForms[battlerId]], paletteOffset, PLTT_SIZE_4BPP); } // transform's pink color if (gBattleSpritesDataPtr->battlerData[battlerId].transformSpecies != SPECIES_NONE) { BlendPalette(paletteOffset, 16, 6, RGB_WHITE); - CpuCopy32(gPlttBufferFaded + paletteOffset, gPlttBufferUnfaded + paletteOffset, 32); + CpuCopy32(gPlttBufferFaded + paletteOffset, gPlttBufferUnfaded + paletteOffset, PLTT_SIZEOF(16)); } } @@ -639,7 +639,7 @@ void BattleLoadPlayerMonSpriteGfx(struct Pokemon *mon, u8 battlerId) species, currentPersonality); } - paletteOffset = 0x100 + battlerId * 16; + paletteOffset = OBJ_PLTT_ID(battlerId); if (gBattleSpritesDataPtr->battlerData[battlerId].transformSpecies == SPECIES_NONE) lzPaletteData = GetMonFrontSpritePal(mon); @@ -647,21 +647,21 @@ void BattleLoadPlayerMonSpriteGfx(struct Pokemon *mon, u8 battlerId) lzPaletteData = GetMonSpritePalFromSpeciesAndPersonality(species, otId, monsPersonality); LZDecompressWram(lzPaletteData, gDecompressionBuffer); - LoadPalette(gDecompressionBuffer, paletteOffset, 0x20); - LoadPalette(gDecompressionBuffer, 0x80 + battlerId * 16, 0x20); + LoadPalette(gDecompressionBuffer, paletteOffset, PLTT_SIZE_4BPP); + LoadPalette(gDecompressionBuffer, 0x80 + BG_PLTT_ID(battlerId), PLTT_SIZE_4BPP); if (species == SPECIES_CASTFORM) { - paletteOffset = 0x100 + battlerId * 16; + paletteOffset = OBJ_PLTT_ID(battlerId); LZDecompressWram(lzPaletteData, gBattleStruct->castformPalette); - LoadPalette(gBattleStruct->castformPalette[gBattleMonForms[battlerId]], paletteOffset, 0x20); + LoadPalette(gBattleStruct->castformPalette[gBattleMonForms[battlerId]], paletteOffset, PLTT_SIZE_4BPP); } // transform's pink color if (gBattleSpritesDataPtr->battlerData[battlerId].transformSpecies != SPECIES_NONE) { BlendPalette(paletteOffset, 16, 6, RGB_WHITE); - CpuCopy32(gPlttBufferFaded + paletteOffset, gPlttBufferUnfaded + paletteOffset, 32); + CpuCopy32(gPlttBufferFaded + paletteOffset, gPlttBufferUnfaded + paletteOffset, PLTT_SIZEOF(16)); } } @@ -690,7 +690,7 @@ void DecompressTrainerBackPic(u16 backPicId, u8 battlerId) gMonSpritesGfxPtr->sprites.ptr[position], SPECIES_NONE); LoadCompressedPalette(gTrainerBackPicPaletteTable[backPicId].data, - 0x100 + 16 * battlerId, 0x20); + OBJ_PLTT_ID(battlerId), PLTT_SIZE_4BPP); } void BattleGfxSfxDummy3(u8 gender) @@ -903,13 +903,13 @@ void HandleSpeciesGfxDataChange(u8 battlerAtk, u8 battlerDef, bool8 castform) if (castform) { StartSpriteAnim(&gSprites[gBattlerSpriteIds[battlerAtk]], gBattleSpritesDataPtr->animationData->animArg); - paletteOffset = 0x100 + battlerAtk * 16; - LoadPalette(gBattleStruct->castformPalette[gBattleSpritesDataPtr->animationData->animArg], paletteOffset, 32); + paletteOffset = OBJ_PLTT_ID(battlerAtk); + LoadPalette(gBattleStruct->castformPalette[gBattleSpritesDataPtr->animationData->animArg], paletteOffset, PLTT_SIZE_4BPP); gBattleMonForms[battlerAtk] = gBattleSpritesDataPtr->animationData->animArg; if (gBattleSpritesDataPtr->battlerData[battlerAtk].transformSpecies != SPECIES_NONE) { BlendPalette(paletteOffset, 16, 6, RGB_WHITE); - CpuCopy32(gPlttBufferFaded + paletteOffset, gPlttBufferUnfaded + paletteOffset, 32); + CpuCopy32(gPlttBufferFaded + paletteOffset, gPlttBufferUnfaded + paletteOffset, PLTT_SIZEOF(16)); } gSprites[gBattlerSpriteIds[battlerAtk]].y = GetBattlerSpriteDefault_Y(battlerAtk); } @@ -965,20 +965,20 @@ void HandleSpeciesGfxDataChange(u8 battlerAtk, u8 battlerDef, bool8 castform) src = gMonSpritesGfxPtr->sprites.ptr[position]; dst = (void *)(OBJ_VRAM0 + gSprites[gBattlerSpriteIds[battlerAtk]].oam.tileNum * 32); DmaCopy32(3, src, dst, MON_PIC_SIZE); - paletteOffset = 0x100 + battlerAtk * 16; + paletteOffset = OBJ_PLTT_ID(battlerAtk); lzPaletteData = GetMonSpritePalFromSpeciesAndPersonality(targetSpecies, otId, personalityValue); LZDecompressWram(lzPaletteData, gDecompressionBuffer); - LoadPalette(gDecompressionBuffer, paletteOffset, 32); + LoadPalette(gDecompressionBuffer, paletteOffset, PLTT_SIZE_4BPP); if (targetSpecies == SPECIES_CASTFORM) { gSprites[gBattlerSpriteIds[battlerAtk]].anims = gMonFrontAnimsPtrTable[targetSpecies]; LZDecompressWram(lzPaletteData, gBattleStruct->castformPalette); - LoadPalette(gBattleStruct->castformPalette[gBattleMonForms[battlerDef]], paletteOffset, 32); + LoadPalette(gBattleStruct->castformPalette[gBattleMonForms[battlerDef]], paletteOffset, PLTT_SIZE_4BPP); } BlendPalette(paletteOffset, 16, 6, RGB_WHITE); - CpuCopy32(gPlttBufferFaded + paletteOffset, gPlttBufferUnfaded + paletteOffset, 32); + CpuCopy32(gPlttBufferFaded + paletteOffset, gPlttBufferUnfaded + paletteOffset, PLTT_SIZEOF(16)); if (!IsContest()) { @@ -1014,8 +1014,8 @@ void BattleLoadSubstituteOrMonSpriteGfx(u8 battlerId, bool8 loadMonSprite) Dma3CopyLarge32_(gMonSpritesGfxPtr->sprites.ptr[position], &gMonSpritesGfxPtr->sprites.byte[position][MON_PIC_SIZE * i], MON_PIC_SIZE); } - palOffset = (battlerId * 16) + 0x100; - LoadCompressedPalette(gSubstituteDollPal, palOffset, 32); + palOffset = OBJ_PLTT_ID(battlerId); + LoadCompressedPalette(gSubstituteDollPal, palOffset, PLTT_SIZE_4BPP); } else { diff --git a/src/battle_interface.c b/src/battle_interface.c index ed4aa9ed8..2bf1a0224 100644 --- a/src/battle_interface.c +++ b/src/battle_interface.c @@ -2027,11 +2027,11 @@ static void UpdateStatusIconInHealthbox(u8 healthboxSpriteId) return; } - pltAdder = gSprites[healthboxSpriteId].oam.paletteNum * 16; + pltAdder = PLTT_ID(gSprites[healthboxSpriteId].oam.paletteNum); pltAdder += battlerId + 12; - FillPalette(sStatusIconColors[statusPalId], pltAdder + 0x100, 2); - CpuCopy16(gPlttBufferUnfaded + 0x100 + pltAdder, (void *)(OBJ_PLTT + pltAdder * 2), 2); + FillPalette(sStatusIconColors[statusPalId], OBJ_PLTT_OFFSET + pltAdder, PLTT_SIZEOF(1)); + CpuCopy16(gPlttBufferUnfaded + OBJ_PLTT_OFFSET + pltAdder, (u16 *)OBJ_PLTT + pltAdder, PLTT_SIZEOF(1)); CpuCopy32(statusGfxPtr, (void *)(OBJ_VRAM0 + (gSprites[healthboxSpriteId].oam.tileNum + tileNumAdder) * TILE_SIZE_4BPP), 96); if (IsDoubleBattle() == TRUE || GetBattlerSide(battlerId) == B_SIDE_OPPONENT) { diff --git a/src/battle_main.c b/src/battle_main.c index 6a4244b1a..879d9113d 100644 --- a/src/battle_main.c +++ b/src/battle_main.c @@ -2215,7 +2215,7 @@ void CB2_InitEndLinkBattle(void) gBattle_BG3_Y = 0; InitBattleBgsVideo(); - LoadCompressedPalette(gBattleTextboxPalette, 0, 64); + LoadCompressedPalette(gBattleTextboxPalette, BG_PLTT_ID(0x0), 2 * PLTT_SIZE_4BPP); LoadBattleMenuWindowGfx(); ResetSpriteData(); ResetTasks(); diff --git a/src/battle_pyramid_bag.c b/src/battle_pyramid_bag.c index 9fab996da..93c7df06a 100644 --- a/src/battle_pyramid_bag.c +++ b/src/battle_pyramid_bag.c @@ -214,7 +214,7 @@ static const struct WindowTemplate sWindowTemplates[] = .tilemapTop = 2, .width = 15, .height = 16, - .paletteNum = 15, + .paletteNum = 0xF, .baseBlock = 30 }, [WIN_INFO] = { @@ -223,7 +223,7 @@ static const struct WindowTemplate sWindowTemplates[] = .tilemapTop = 13, .width = 14, .height = 6, - .paletteNum = 15, + .paletteNum = 0xF, .baseBlock = 270 }, [WIN_MSG] = { @@ -232,7 +232,7 @@ static const struct WindowTemplate sWindowTemplates[] = .tilemapTop = 15, .width = 27, .height = 4, - .paletteNum = 15, + .paletteNum = 0xF, .baseBlock = 354 }, [WIN_TOSS_NUM] = { @@ -241,7 +241,7 @@ static const struct WindowTemplate sWindowTemplates[] = .tilemapTop = 17, .width = 5, .height = 2, - .paletteNum = 15, + .paletteNum = 0xF, .baseBlock = 462 }, DUMMY_WIN_TEMPLATE, @@ -263,7 +263,7 @@ static const struct WindowTemplate sWindowTemplates_MenuActions[] = .tilemapTop = 17, .width = 7, .height = 2, - .paletteNum = 15, + .paletteNum = 0xF, .baseBlock = 472 }, [MENU_WIN_1x2] = { @@ -272,7 +272,7 @@ static const struct WindowTemplate sWindowTemplates_MenuActions[] = .tilemapTop = 15, .width = 7, .height = 4, - .paletteNum = 15, + .paletteNum = 0xF, .baseBlock = 472 }, [MENU_WIN_2x2] = { @@ -281,7 +281,7 @@ static const struct WindowTemplate sWindowTemplates_MenuActions[] = .tilemapTop = 15, .width = 14, .height = 4, - .paletteNum = 15, + .paletteNum = 0xF, .baseBlock = 472 }, [MENU_WIN_2x3] = { // Unused @@ -290,7 +290,7 @@ static const struct WindowTemplate sWindowTemplates_MenuActions[] = .tilemapTop = 13, .width = 14, .height = 6, - .paletteNum = 15, + .paletteNum = 0xF, .baseBlock = 472 }, [MENU_WIN_YESNO] = { @@ -299,7 +299,7 @@ static const struct WindowTemplate sWindowTemplates_MenuActions[] = .tilemapTop = 15, .width = 5, .height = 4, - .paletteNum = 15, + .paletteNum = 0xF, .baseBlock = 472 }, }; @@ -578,7 +578,7 @@ static bool8 LoadPyramidBagGfx(void) } break; case 2: - LoadCompressedPalette(gBattlePyramidBagInterface_Pal, 0, 32); + LoadCompressedPalette(gBattlePyramidBagInterface_Pal, BG_PLTT_ID(0x0), PLTT_SIZE_4BPP); gPyramidBagMenu->state++; break; case 3: @@ -1439,9 +1439,9 @@ static void InitPyramidBagWindows(void) InitWindows(sWindowTemplates); DeactivateAllTextPrinters(); - LoadUserWindowBorderGfx(0, 0x1, 0xE0); - LoadMessageBoxGfx(0, 0xA, 0xD0); - LoadPalette(gStandardMenuPalette, 0xF0, 0x20); + LoadUserWindowBorderGfx(0, 0x1, BG_PLTT_ID(0xE)); + LoadMessageBoxGfx(0, 0xA, BG_PLTT_ID(0xD)); + LoadPalette(gStandardMenuPalette, BG_PLTT_ID(0xF), PLTT_SIZE_4BPP); for (i = 0; i < ARRAY_COUNT(sWindowTemplates); i++) FillWindowPixelBuffer(i, PIXEL_FILL(0)); @@ -1537,10 +1537,10 @@ static void FreeItemIconSprite(u8 spriteArrId) static void LoadPyramidBagPalette(void) { struct SpritePalette spritePalette; - u16 *palPtr = Alloc(0x40); + u16 *palPtr = Alloc(2 * PLTT_SIZE_4BPP); LZDecompressWram(gBattlePyramidBag_Pal, palPtr); - spritePalette.data = palPtr + (gSaveBlock2Ptr->frontier.lvlMode * 16); + spritePalette.data = palPtr + PLTT_ID(gSaveBlock2Ptr->frontier.lvlMode); spritePalette.tag = TAG_PYRAMID_BAG; LoadSpritePalette(&spritePalette); Free(palPtr); diff --git a/src/battle_records.c b/src/battle_records.c index 6cab28d21..c6becd6d7 100644 --- a/src/battle_records.c +++ b/src/battle_records.c @@ -67,7 +67,7 @@ static const struct WindowTemplate sTrainerHillRecordsWindowTemplates[] = .tilemapTop = 1, .width = 26, .height = 18, - .paletteNum = 15, + .paletteNum = 0xF, .baseBlock = 20 }, DUMMY_WIN_TEMPLATE @@ -80,7 +80,7 @@ static const struct WindowTemplate sLinkBattleRecordsWindow = .tilemapTop = 1, .width = 26, .height = 17, - .paletteNum = 15, + .paletteNum = 0xF, .baseBlock = 1 }; @@ -444,7 +444,7 @@ static void LoadTrainerHillRecordsWindowGfx(u8 bgId) { LoadBgTiles(bgId, sTrainerHillWindowTileset, sizeof(sTrainerHillWindowTileset), 0); CopyToBgTilemapBufferRect(bgId, sTrainerHillWindowTilemap, 0, 0, 0x20, 0x20); - LoadPalette(sTrainerHillWindowPalette, 0, 0x20); + LoadPalette(sTrainerHillWindowPalette, BG_PLTT_ID(0x0), PLTT_SIZE_4BPP); } static void VblankCB_TrainerHillRecords(void) @@ -491,7 +491,7 @@ static void CB2_ShowTrainerHillRecords(void) break; case 3: LoadTrainerHillRecordsWindowGfx(3); - LoadPalette(GetTextWindowPalette(0), 0xF0, 0x20); + LoadPalette(GetTextWindowPalette(0), BG_PLTT_ID(0xF), PLTT_SIZE_4BPP); gMain.state++; break; case 4: diff --git a/src/battle_script_commands.c b/src/battle_script_commands.c index 653221583..e3bba6962 100644 --- a/src/battle_script_commands.c +++ b/src/battle_script_commands.c @@ -6013,7 +6013,7 @@ static void InitLevelUpBanner(void) gBattle_BG2_Y = 0; gBattle_BG2_X = LEVEL_UP_BANNER_START; - LoadPalette(sLevelUpBanner_Pal, 0x60, 0x20); + LoadPalette(sLevelUpBanner_Pal, BG_PLTT_ID(0x6), PLTT_SIZE_4BPP); CopyToWindowPixelBuffer(B_WIN_LEVEL_UP_BANNER, sLevelUpBanner_Gfx, 0, 0); PutWindowTilemap(B_WIN_LEVEL_UP_BANNER); CopyWindowToVram(B_WIN_LEVEL_UP_BANNER, COPYWIN_FULL); diff --git a/src/battle_transition.c b/src/battle_transition.c index bc289efa7..31363f4a9 100644 --- a/src/battle_transition.c +++ b/src/battle_transition.c @@ -1406,7 +1406,7 @@ static bool8 Aqua_Init(struct Task *task) GetBg0TilesDst(&tilemap, &tileset); CpuFill16(0, tilemap, BG_SCREEN_SIZE); LZ77UnCompVram(sTeamAqua_Tileset, tileset); - LoadPalette(sEvilTeam_Palette, 0xF0, sizeof(sEvilTeam_Palette)); + LoadPalette(sEvilTeam_Palette, BG_PLTT_ID(0xF), sizeof(sEvilTeam_Palette)); task->tState++; return FALSE; @@ -1421,7 +1421,7 @@ static bool8 Magma_Init(struct Task *task) GetBg0TilesDst(&tilemap, &tileset); CpuFill16(0, tilemap, BG_SCREEN_SIZE); LZ77UnCompVram(sTeamMagma_Tileset, tileset); - LoadPalette(sEvilTeam_Palette, 0xF0, sizeof(sEvilTeam_Palette)); + LoadPalette(sEvilTeam_Palette, BG_PLTT_ID(0xF), sizeof(sEvilTeam_Palette)); task->tState++; return FALSE; @@ -1449,7 +1449,7 @@ static bool8 BigPokeball_Init(struct Task *task) GetBg0TilesDst(&tilemap, &tileset); CpuFill16(0, tilemap, BG_SCREEN_SIZE); CpuCopy16(sBigPokeball_Tileset, tileset, sizeof(sBigPokeball_Tileset)); - LoadPalette(sFieldEffectPal_Pokeball, 0xF0, sizeof(sFieldEffectPal_Pokeball)); + LoadPalette(sFieldEffectPal_Pokeball, BG_PLTT_ID(0xF), sizeof(sFieldEffectPal_Pokeball)); task->tState++; return FALSE; @@ -1504,7 +1504,7 @@ static bool8 Regice_SetGfx(struct Task *task) u16 *tilemap, *tileset; GetBg0TilesDst(&tilemap, &tileset); - LoadPalette(sRegice_Palette, 0xF0, sizeof(sRegice_Palette)); + LoadPalette(sRegice_Palette, BG_PLTT_ID(0xF), sizeof(sRegice_Palette)); CpuCopy16(sRegice_Tilemap, tilemap, 0x500); SetSinWave(gScanlineEffectRegBuffers[0], 0, task->tSinIndex, 132, task->tAmplitude, DISPLAY_HEIGHT); @@ -1517,7 +1517,7 @@ static bool8 Registeel_SetGfx(struct Task *task) u16 *tilemap, *tileset; GetBg0TilesDst(&tilemap, &tileset); - LoadPalette(sRegisteel_Palette, 0xF0, sizeof(sRegisteel_Palette)); + LoadPalette(sRegisteel_Palette, BG_PLTT_ID(0xF), sizeof(sRegisteel_Palette)); CpuCopy16(sRegisteel_Tilemap, tilemap, 0x500); SetSinWave(gScanlineEffectRegBuffers[0], 0, task->tSinIndex, 132, task->tAmplitude, DISPLAY_HEIGHT); @@ -1530,7 +1530,7 @@ static bool8 Regirock_SetGfx(struct Task *task) u16 *tilemap, *tileset; GetBg0TilesDst(&tilemap, &tileset); - LoadPalette(sRegirock_Palette, 0xF0, sizeof(sRegirock_Palette)); + LoadPalette(sRegirock_Palette, BG_PLTT_ID(0xF), sizeof(sRegirock_Palette)); CpuCopy16(sRegirock_Tilemap, tilemap, 0x500); SetSinWave(gScanlineEffectRegBuffers[0], 0, task->tSinIndex, 132, task->tAmplitude, DISPLAY_HEIGHT); @@ -1559,7 +1559,7 @@ static bool8 Kyogre_PaletteFlash(struct Task *task) { u16 offset = task->tTimer % 30; offset /= 3; - LoadPalette(&sKyogre1_Palette[offset * 16], 0xF0, 0x20); + LoadPalette(&sKyogre1_Palette[offset * 16], BG_PLTT_ID(0xF), PLTT_SIZE_4BPP); } if (++task->tTimer > 58) { @@ -1575,7 +1575,7 @@ static bool8 Kyogre_PaletteBrighten(struct Task *task) if (task->tTimer % 5 == 0) { s16 offset = task->tTimer / 5; - LoadPalette(&sKyogre2_Palette[offset * 16], 0xF0, 0x20); + LoadPalette(&sKyogre2_Palette[offset * 16], BG_PLTT_ID(0xF), PLTT_SIZE_4BPP); } if (++task->tTimer > 68) { @@ -1776,7 +1776,7 @@ static bool8 PokeballsTrail_Init(struct Task *task) GetBg0TilesDst(&tilemap, &tileset); CpuSet(sPokeballTrail_Tileset, tileset, 0x20); CpuFill32(0, tilemap, BG_SCREEN_SIZE); - LoadPalette(sFieldEffectPal_Pokeball, 0xF0, sizeof(sFieldEffectPal_Pokeball)); + LoadPalette(sFieldEffectPal_Pokeball, BG_PLTT_ID(0xF), sizeof(sFieldEffectPal_Pokeball)); task->tState++; return FALSE; @@ -2328,8 +2328,8 @@ static bool8 Mugshot_SetGfx(struct Task *task) mugshotsMap = sMugshotsTilemap; GetBg0TilesDst(&tilemap, &tileset); CpuSet(sEliteFour_Tileset, tileset, 0xF0); - LoadPalette(sOpponentMugshotsPals[task->tMugshotId], 0xF0, 0x20); - LoadPalette(sPlayerMugshotsPals[gSaveBlock2Ptr->playerGender], 0xFA, 0xC); + LoadPalette(sOpponentMugshotsPals[task->tMugshotId], BG_PLTT_ID(0xF), PLTT_SIZE_4BPP); + LoadPalette(sPlayerMugshotsPals[gSaveBlock2Ptr->playerGender], BG_PLTT_ID(0xF) + 10, PLTT_SIZEOF(6)); for (i = 0; i < 20; i++) { @@ -3193,7 +3193,7 @@ static bool8 RectangularSpiral_Init(struct Task *task) CpuCopy16(sShrinkingBoxTileset, tileset, 0x20); CpuCopy16(&sShrinkingBoxTileset[0x70], &tileset[0x20], 0x20); CpuFill16(0xF0 << 8, tilemap, BG_SCREEN_SIZE); - LoadPalette(sFieldEffectPal_Pokeball, 0xF0, sizeof(sFieldEffectPal_Pokeball)); + LoadPalette(sFieldEffectPal_Pokeball, BG_PLTT_ID(0xF), sizeof(sFieldEffectPal_Pokeball)); task->data[3] = 1; task->tState++; @@ -3389,7 +3389,7 @@ static bool8 Groudon_PaletteFlash(struct Task *task) if (task->tTimer % 3 == 0) { u16 offset = (task->tTimer % 30) / 3; - LoadPalette(&sGroudon1_Palette[offset * 16], 0xF0, 0x20); + LoadPalette(&sGroudon1_Palette[offset * 16], BG_PLTT_ID(0xF), PLTT_SIZE_4BPP); } if (++task->tTimer > 58) { @@ -3405,7 +3405,7 @@ static bool8 Groudon_PaletteBrighten(struct Task *task) if (task->tTimer % 5 == 0) { s16 offset = task->tTimer / 5; - LoadPalette(&sGroudon2_Palette[offset * 16], 0xF0, 0x20); + LoadPalette(&sGroudon2_Palette[offset * 16], BG_PLTT_ID(0xF), PLTT_SIZE_4BPP); } if (++task->tTimer > 68) { @@ -3448,7 +3448,7 @@ static bool8 Rayquaza_Init(struct Task *task) sTransitionData->counter = 0; task->tState++; - LoadPalette(&sRayquaza_Palette[0x50], 0xF0, 0x20); + LoadPalette(&sRayquaza_Palette[0x50], BG_PLTT_ID(0xF), PLTT_SIZE_4BPP); for (i = 0; i < DISPLAY_HEIGHT; i++) { @@ -3476,7 +3476,7 @@ static bool8 Rayquaza_PaletteFlash(struct Task *task) { u16 value = task->tTimer / 4; const u16 *palPtr = &sRayquaza_Palette[(value + 5) * 16]; - LoadPalette(palPtr, 0xF0, 0x20); + LoadPalette(palPtr, BG_PLTT_ID(0xF), PLTT_SIZE_4BPP); } if (++task->tTimer > 40) { @@ -3524,7 +3524,7 @@ static bool8 Rayquaza_TriRing(struct Task *task) { u16 value = task->tTimer / 3; const u16 *palPtr = &sRayquaza_Palette[(value + 0) * 16]; - LoadPalette(palPtr, 0xF0, 0x20); + LoadPalette(palPtr, BG_PLTT_ID(0xF), PLTT_SIZE_4BPP); } if (++task->tTimer >= 40) { @@ -3775,7 +3775,7 @@ static bool8 GridSquares_Init(struct Task *task) GetBg0TilesDst(&tilemap, &tileset); CpuSet(sShrinkingBoxTileset, tileset, 16); CpuFill16(0xF0 << 8, tilemap, BG_SCREEN_SIZE); - LoadPalette(sFieldEffectPal_Pokeball, 0xF0, sizeof(sFieldEffectPal_Pokeball)); + LoadPalette(sFieldEffectPal_Pokeball, BG_PLTT_ID(0xF), sizeof(sFieldEffectPal_Pokeball)); task->tState++; return FALSE; @@ -4242,7 +4242,7 @@ static bool8 FrontierLogoWiggle_Init(struct Task *task) GetBg0TilesDst(&tilemap, &tileset); CpuFill16(0, tilemap, BG_SCREEN_SIZE); LZ77UnCompVram(sFrontierLogo_Tileset, tileset); - LoadPalette(sFrontierLogo_Palette, 0xF0, sizeof(sFrontierLogo_Palette)); + LoadPalette(sFrontierLogo_Palette, BG_PLTT_ID(0xF), sizeof(sFrontierLogo_Palette)); task->tState++; return FALSE; @@ -4304,7 +4304,7 @@ static bool8 FrontierLogoWave_Init(struct Task *task) GetBg0TilesDst(&tilemap, &tileset); CpuFill16(0, tilemap, BG_SCREEN_SIZE); LZ77UnCompVram(sFrontierLogo_Tileset, tileset); - LoadPalette(sFrontierLogo_Palette, 0xF0, sizeof(sFrontierLogo_Palette)); + LoadPalette(sFrontierLogo_Palette, BG_PLTT_ID(0xF), sizeof(sFrontierLogo_Palette)); sTransitionData->cameraY = 0; task->tState++; @@ -4451,10 +4451,10 @@ static bool8 FrontierSquares_Init(struct Task *task) LZ77UnCompVram(sFrontierSquares_FilledBg_Tileset, tileset); FillBgTilemapBufferRect_Palette0(0, 0, 0, 0, 32, 32); - FillBgTilemapBufferRect(0, 1, 0, 0, MARGIN_SIZE, 32, 15); - FillBgTilemapBufferRect(0, 1, 30 - MARGIN_SIZE, 0, MARGIN_SIZE, 32, 15); + FillBgTilemapBufferRect(0, 1, 0, 0, MARGIN_SIZE, 32, 0xF); + FillBgTilemapBufferRect(0, 1, 30 - MARGIN_SIZE, 0, MARGIN_SIZE, 32, 0xF); CopyBgTilemapBufferToVram(0); - LoadPalette(sFrontierSquares_Palette, 0xF0, sizeof(sFrontierSquares_Palette)); + LoadPalette(sFrontierSquares_Palette, BG_PLTT_ID(0xF), sizeof(sFrontierSquares_Palette)); task->tPosX = MARGIN_SIZE; task->tPosY = 0; @@ -4471,7 +4471,7 @@ static bool8 FrontierSquares_Draw(struct Task *task) SQUARE_SIZE, SQUARE_SIZE, task->tPosX, task->tPosY, SQUARE_SIZE, SQUARE_SIZE, - 15, 0, 0); + 0xF, 0, 0); CopyBgTilemapBufferToVram(0); task->tPosX += SQUARE_SIZE; @@ -4546,12 +4546,12 @@ static bool8 FrontierSquaresSpiral_Init(struct Task *task) LZ77UnCompVram(sFrontierSquares_FilledBg_Tileset, tileset); FillBgTilemapBufferRect_Palette0(0, 0, 0, 0, 32, 32); - FillBgTilemapBufferRect(0, 1, 0, 0, MARGIN_SIZE, 32, 15); - FillBgTilemapBufferRect(0, 1, 30 - MARGIN_SIZE, 0, MARGIN_SIZE, 32, 15); + FillBgTilemapBufferRect(0, 1, 0, 0, MARGIN_SIZE, 32, 0xF); + FillBgTilemapBufferRect(0, 1, 30 - MARGIN_SIZE, 0, MARGIN_SIZE, 32, 0xF); CopyBgTilemapBufferToVram(0); - LoadPalette(sFrontierSquares_Palette, 0xE0, sizeof(sFrontierSquares_Palette)); - LoadPalette(sFrontierSquares_Palette, 0xF0, sizeof(sFrontierSquares_Palette)); - BlendPalette(0xE0, 16, 8, RGB_BLACK); + LoadPalette(sFrontierSquares_Palette, BG_PLTT_ID(0xE), sizeof(sFrontierSquares_Palette)); + LoadPalette(sFrontierSquares_Palette, BG_PLTT_ID(0xF), sizeof(sFrontierSquares_Palette)); + BlendPalette(BG_PLTT_ID(0xE), 16, 8, RGB_BLACK); task->tSquareNum = NUM_SQUARES - 1; task->tFadeFlag = 0; @@ -4569,7 +4569,7 @@ static bool8 FrontierSquaresSpiral_Outward(struct Task *task) SQUARE_SIZE, SQUARE_SIZE, SQUARE_SIZE * x + MARGIN_SIZE, SQUARE_SIZE * y, SQUARE_SIZE, SQUARE_SIZE, - 15, 0, 0); + 0xF, 0, 0); CopyBgTilemapBufferToVram(0); if (--task->tSquareNum < 0) @@ -4581,7 +4581,7 @@ static bool8 FrontierSquaresSpiral_Outward(struct Task *task) // set it to black so it's not revealed when the squares are removed. static bool8 FrontierSquaresSpiral_SetBlack(struct Task *task) { - BlendPalette(0xE0, 16, 3, RGB_BLACK); + BlendPalette(BG_PLTT_ID(0xE), 16, 3, RGB_BLACK); BlendPalettes(PALETTES_ALL & ~(1 << 15 | 1 << 14), 16, RGB_BLACK); task->tSquareNum = 0; @@ -4603,7 +4603,7 @@ static bool8 FrontierSquaresSpiral_Inward(struct Task *task) SQUARE_SIZE * (sFrontierSquaresSpiral_Positions[task->tSquareNum] % NUM_SQUARES_PER_ROW) + MARGIN_SIZE, SQUARE_SIZE * (sFrontierSquaresSpiral_Positions[task->tSquareNum] / NUM_SQUARES_PER_ROW), SQUARE_SIZE, SQUARE_SIZE, - 14, 0, 0); + 0xE, 0, 0); } else { @@ -4614,7 +4614,7 @@ static bool8 FrontierSquaresSpiral_Inward(struct Task *task) SQUARE_SIZE * (sFrontierSquaresSpiral_Positions[task->tSquareNum - 1] % NUM_SQUARES_PER_ROW) + MARGIN_SIZE, SQUARE_SIZE * (sFrontierSquaresSpiral_Positions[task->tSquareNum - 1] / NUM_SQUARES_PER_ROW), SQUARE_SIZE, SQUARE_SIZE, - 15); + 0xF); } task->tSquareNum++; } @@ -4664,7 +4664,7 @@ static bool8 FrontierSquaresScroll_Init(struct Task *task) LZ77UnCompVram(sFrontierSquares_FilledBg_Tileset, tileset); FillBgTilemapBufferRect_Palette0(0, 0, 0, 0, 32, 32); CopyBgTilemapBufferToVram(0); - LoadPalette(sFrontierSquares_Palette, 0xF0, sizeof(sFrontierSquares_Palette)); + LoadPalette(sFrontierSquares_Palette, BG_PLTT_ID(0xF), sizeof(sFrontierSquares_Palette)); gBattle_BG0_X = 0; gBattle_BG0_Y = 0; @@ -4709,7 +4709,7 @@ static bool8 FrontierSquaresScroll_Draw(struct Task *task) SQUARE_SIZE, SQUARE_SIZE, SQUARE_SIZE * x + MARGIN_SIZE, SQUARE_SIZE * y, SQUARE_SIZE, SQUARE_SIZE, - 15, 0, 0); + 0xF, 0, 0); CopyBgTilemapBufferToVram(0); if (++task->tSquareNum >= (int)ARRAY_COUNT(sFrontierSquaresScroll_Positions)) @@ -4738,7 +4738,7 @@ static bool8 FrontierSquaresScroll_Erase(struct Task *task) FillBgTilemapBufferRect(0, 1, SQUARE_SIZE * x + MARGIN_SIZE, SQUARE_SIZE * y, SQUARE_SIZE, SQUARE_SIZE, - 15); + 0xF); CopyBgTilemapBufferToVram(0); if (++task->tSquareNum >= (int)ARRAY_COUNT(sFrontierSquaresScroll_Positions)) diff --git a/src/battle_transition_frontier.c b/src/battle_transition_frontier.c index 088865dba..107e9067d 100644 --- a/src/battle_transition_frontier.c +++ b/src/battle_transition_frontier.c @@ -226,7 +226,7 @@ static void LoadLogoGfx(void) GetBg0TilesDst(&tilemap, &tileset); LZ77UnCompVram(sLogoCenter_Gfx, tileset); LZ77UnCompVram(sLogoCenter_Tilemap, tilemap); - LoadPalette(sLogo_Pal, 0xF0, sizeof(sLogo_Pal)); + LoadPalette(sLogo_Pal, BG_PLTT_ID(0xF), sizeof(sLogo_Pal)); LoadCompressedSpriteSheet(&sSpriteSheet_LogoCircles); LoadSpritePalette(&sSpritePalette_LogoCircles); } diff --git a/src/berry_blender.c b/src/berry_blender.c index d099a14ba..defc5ac96 100644 --- a/src/berry_blender.c +++ b/src/berry_blender.c @@ -338,7 +338,7 @@ static const struct WindowTemplate sWindowTemplates[] = .tilemapTop = 6, .width = 7, .height = 2, - .paletteNum = 14, + .paletteNum = 0xE, .baseBlock = 0x28, }, { @@ -347,7 +347,7 @@ static const struct WindowTemplate sWindowTemplates[] = .tilemapTop = 6, .width = 7, .height = 2, - .paletteNum = 14, + .paletteNum = 0xE, .baseBlock = 0x36, }, { @@ -356,7 +356,7 @@ static const struct WindowTemplate sWindowTemplates[] = .tilemapTop = 12, .width = 7, .height = 2, - .paletteNum = 14, + .paletteNum = 0xE, .baseBlock = 0x44, }, { @@ -365,7 +365,7 @@ static const struct WindowTemplate sWindowTemplates[] = .tilemapTop = 12, .width = 7, .height = 2, - .paletteNum = 14, + .paletteNum = 0xE, .baseBlock = 0x52, }, { @@ -374,7 +374,7 @@ static const struct WindowTemplate sWindowTemplates[] = .tilemapTop = 15, .width = 27, .height = 4, - .paletteNum = 14, + .paletteNum = 0xE, .baseBlock = 0x60, }, { @@ -383,7 +383,7 @@ static const struct WindowTemplate sWindowTemplates[] = .tilemapTop = 3, .width = 21, .height = 14, - .paletteNum = 14, + .paletteNum = 0xE, .baseBlock = 0x60, }, DUMMY_WIN_TEMPLATE @@ -396,7 +396,7 @@ static const struct WindowTemplate sYesNoWindowTemplate_ContinuePlaying = .tilemapTop = 9, .width = 5, .height = 4, - .paletteNum = 14, + .paletteNum = 0xE, .baseBlock = 0xCC }; @@ -926,7 +926,7 @@ static const struct WindowTemplate sBlenderRecordWindowTemplate = .tilemapTop = 4, .width = 18, .height = 11, - .paletteNum = 15, + .paletteNum = 0xF, .baseBlock = 8 }; @@ -959,7 +959,7 @@ static bool8 LoadBerryBlenderGfx(void) case 1: CopyToBgTilemapBuffer(2, sBlenderCenter_Tilemap, 0x400, 0); CopyBgTilemapBufferToVram(2); - LoadPalette(sBlenderCenter_Pal, 0, 0x100); + LoadPalette(sBlenderCenter_Pal, BG_PLTT_ID(0x0), 8 * PLTT_SIZE_4BPP); sBerryBlender->loadGfxState++; break; case 2: @@ -984,7 +984,7 @@ static bool8 LoadBerryBlenderGfx(void) sBerryBlender->loadGfxState++; break; case 7: - LoadPalette(sBlenderOuter_Pal, 0x80, 0x20); + LoadPalette(sBlenderOuter_Pal, BG_PLTT_ID(0x8), PLTT_SIZE_4BPP); sBerryBlender->loadGfxState++; break; case 8: @@ -1065,8 +1065,8 @@ static void CB2_LoadBerryBlender(void) InitBgsFromTemplates(1, sBgTemplates, ARRAY_COUNT(sBgTemplates)); SetBgTilemapBuffer(1, sBerryBlender->tilemapBuffers[0]); SetBgTilemapBuffer(2, sBerryBlender->tilemapBuffers[1]); - LoadUserWindowBorderGfx(0, 1, 0xD0); - LoadMessageBoxGfx(0, 0x14, 0xF0); + LoadUserWindowBorderGfx(0, 1, BG_PLTT_ID(0xD)); + LoadMessageBoxGfx(0, 0x14, BG_PLTT_ID(0xF)); InitBerryBlenderWindows(); sBerryBlender->mainState++; @@ -1502,8 +1502,8 @@ static void InitBlenderBgs(void) SetBgTilemapBuffer(1, sBerryBlender->tilemapBuffers[0]); SetBgTilemapBuffer(2, sBerryBlender->tilemapBuffers[1]); - LoadUserWindowBorderGfx(0, 1, 0xD0); - LoadMessageBoxGfx(0, 0x14, 0xF0); + LoadUserWindowBorderGfx(0, 1, BG_PLTT_ID(0xD)); + LoadMessageBoxGfx(0, 0x14, BG_PLTT_ID(0xF)); InitBerryBlenderWindows(); sBerryBlender->unk0 = 0; diff --git a/src/berry_crush.c b/src/berry_crush.c index 19c03391d..a100b7235 100755 --- a/src/berry_crush.c +++ b/src/berry_crush.c @@ -473,7 +473,7 @@ static const struct WindowTemplate sWindowTemplate_Rankings = .tilemapTop = 4, .width = 24, .height = 13, - .paletteNum = 15, + .paletteNum = 0xF, .baseBlock = 1 }; @@ -485,7 +485,7 @@ static const struct WindowTemplate sWindowTemplates_PlayerNames[MAX_RFU_PLAYERS .tilemapTop = 0, .width = 9, .height = 2, - .paletteNum = 8, + .paletteNum = 0x8, .baseBlock = 1005 }, { @@ -494,7 +494,7 @@ static const struct WindowTemplate sWindowTemplates_PlayerNames[MAX_RFU_PLAYERS .tilemapTop = 3, .width = 9, .height = 2, - .paletteNum = 8, + .paletteNum = 0x8, .baseBlock = 987 }, { @@ -503,7 +503,7 @@ static const struct WindowTemplate sWindowTemplates_PlayerNames[MAX_RFU_PLAYERS .tilemapTop = 6, .width = 9, .height = 2, - .paletteNum = 8, + .paletteNum = 0x8, .baseBlock = 969 }, { @@ -512,7 +512,7 @@ static const struct WindowTemplate sWindowTemplates_PlayerNames[MAX_RFU_PLAYERS .tilemapTop = 3, .width = 9, .height = 2, - .paletteNum = 8, + .paletteNum = 0x8, .baseBlock = 951 }, { @@ -521,7 +521,7 @@ static const struct WindowTemplate sWindowTemplates_PlayerNames[MAX_RFU_PLAYERS .tilemapTop = 6, .width = 9, .height = 2, - .paletteNum = 8, + .paletteNum = 0x8, .baseBlock = 933 }, DUMMY_WIN_TEMPLATE, @@ -535,7 +535,7 @@ static const struct WindowTemplate sWindowTemplates_Results[] = .tilemapTop = 2, .width = 20, .height = 16, - .paletteNum = 15, + .paletteNum = 0xF, .baseBlock = 1 }, [STATE_RESULTS_RANDOM - RESULTS_STATE_START] = { @@ -544,7 +544,7 @@ static const struct WindowTemplate sWindowTemplates_Results[] = .tilemapTop = 2, .width = 20, .height = 16, - .paletteNum = 15, + .paletteNum = 0xF, .baseBlock = 1 }, [STATE_RESULTS_CRUSHING - RESULTS_STATE_START] = { @@ -553,7 +553,7 @@ static const struct WindowTemplate sWindowTemplates_Results[] = .tilemapTop = 2, .width = 22, .height = 16, - .paletteNum = 15, + .paletteNum = 0xF, .baseBlock = 1 }, DUMMY_WIN_TEMPLATE, @@ -1235,7 +1235,7 @@ static s32 ShowGameDisplay(void) gPaletteFade.bufferTransferDisabled = TRUE; break; case 7: - LoadPalette(gBerryCrush_Crusher_Pal, 0, 0x180); + LoadPalette(gBerryCrush_Crusher_Pal, BG_PLTT_ID(0x0), 12 * PLTT_SIZE_4BPP); CopyToBgTilemapBuffer(1, sCrusherTop_Tilemap, 0, 0); CopyToBgTilemapBuffer(2, sContainerCap_Tilemap, 0, 0); CopyToBgTilemapBuffer(3, sBg_Tilemap, 0, 0); @@ -1751,8 +1751,8 @@ static bool32 OpenResultsWindow(struct BerryCrushGame *game, struct BerryCrushGa FillWindowPixelBuffer(gfx->resultsWindowId, PIXEL_FILL(0)); break; case 2: - LoadUserWindowBorderGfx_(gfx->resultsWindowId, 541, 208); - DrawStdFrameWithCustomTileAndPalette(gfx->resultsWindowId, FALSE, 541, 13); + LoadUserWindowBorderGfx_(gfx->resultsWindowId, 541, BG_PLTT_ID(0xD)); + DrawStdFrameWithCustomTileAndPalette(gfx->resultsWindowId, FALSE, 541, 0xD); break; case 3: playerCountIdx = game->playerCount - 2; @@ -1809,8 +1809,8 @@ static void Task_ShowRankings(u8 taskId) tWindowId = AddWindow(&sWindowTemplate_Rankings); PutWindowTilemap(tWindowId); FillWindowPixelBuffer(tWindowId, PIXEL_FILL(0)); - LoadUserWindowBorderGfx_(tWindowId, 541, 208); - DrawStdFrameWithCustomTileAndPalette(tWindowId, FALSE, 541, 13); + LoadUserWindowBorderGfx_(tWindowId, 541, BG_PLTT_ID(0xD)); + DrawStdFrameWithCustomTileAndPalette(tWindowId, FALSE, 541, 0xD); break; case 1: // Print header text diff --git a/src/berry_fix_program.c b/src/berry_fix_program.c index e8c4bc7e6..149e5d511 100644 --- a/src/berry_fix_program.c +++ b/src/berry_fix_program.c @@ -77,7 +77,7 @@ static const struct WindowTemplate sBerryFixWindowTemplates[] = { .tilemapTop = 4, .width = 26, .height = 2, - .paletteNum = 15, + .paletteNum = 0xF, .baseBlock = 1 }, { @@ -86,7 +86,7 @@ static const struct WindowTemplate sBerryFixWindowTemplates[] = { .tilemapTop = 11, .width = 28, .height = 8, - .paletteNum = 15, + .paletteNum = 0xF, .baseBlock = 53 }, { @@ -95,7 +95,7 @@ static const struct WindowTemplate sBerryFixWindowTemplates[] = { .tilemapTop = 8, .width = 30, .height = 2, - .paletteNum = 15, + .paletteNum = 0xF, .baseBlock = 277 }, { @@ -104,7 +104,7 @@ static const struct WindowTemplate sBerryFixWindowTemplates[] = { .tilemapTop = 0, .width = 14, .height = 2, - .paletteNum = 15, + .paletteNum = 0xF, .baseBlock = 337 }, DUMMY_WIN_TEMPLATE diff --git a/src/berry_powder.c b/src/berry_powder.c index 96f14d6e4..70a8960f7 100755 --- a/src/berry_powder.c +++ b/src/berry_powder.c @@ -4,6 +4,7 @@ #include "event_data.h" #include "load_save.h" #include "menu.h" +#include "palette.h" #include "string_util.h" #include "strings.h" #include "text.h" @@ -67,7 +68,7 @@ static const struct WindowTemplate sBerryPowderWindowTemplates[] = .tilemapTop = 1, .width = 28, .height = 2, - .paletteNum = 13, + .paletteNum = 0xD, .baseBlock = 19 }, { @@ -76,7 +77,7 @@ static const struct WindowTemplate sBerryPowderWindowTemplates[] = .tilemapTop = 5, .width = 28, .height = 14, - .paletteNum = 13, + .paletteNum = 0xD, .baseBlock = 75 }, { @@ -85,7 +86,7 @@ static const struct WindowTemplate sBerryPowderWindowTemplates[] = .tilemapTop = 5, .width = 28, .height = 7, - .paletteNum = 13, + .paletteNum = 0xD, .baseBlock = 75 }, { @@ -94,7 +95,7 @@ static const struct WindowTemplate sBerryPowderWindowTemplates[] = .tilemapTop = 8, .width = 19, .height = 3, - .paletteNum = 13, + .paletteNum = 0xD, .baseBlock = 19 }, { @@ -103,7 +104,7 @@ static const struct WindowTemplate sBerryPowderWindowTemplates[] = .tilemapTop = 7, .width = 6, .height = 4, - .paletteNum = 13, + .paletteNum = 0xD, .baseBlock = 76 }, { @@ -112,7 +113,7 @@ static const struct WindowTemplate sBerryPowderWindowTemplates[] = .tilemapTop = 6, .width = 22, .height = 5, - .paletteNum = 13, + .paletteNum = 0xD, .baseBlock = 19 }, { @@ -121,7 +122,7 @@ static const struct WindowTemplate sBerryPowderWindowTemplates[] = .tilemapTop = 8, .width = 19, .height = 3, - .paletteNum = 13, + .paletteNum = 0xD, .baseBlock = 19 }, }; @@ -228,7 +229,7 @@ void DisplayBerryPowderVendorMenu(void) sBerryPowderVendorWindowId = AddWindow(&template); FillWindowPixelBuffer(sBerryPowderVendorWindowId, PIXEL_FILL(0)); PutWindowTilemap(sBerryPowderVendorWindowId); - LoadUserWindowBorderGfx_(sBerryPowderVendorWindowId, 0x21D, 0xD0); + LoadUserWindowBorderGfx_(sBerryPowderVendorWindowId, 0x21D, BG_PLTT_ID(0xD)); DrawPlayerPowderAmount(sBerryPowderVendorWindowId, 0x21D, 13, GetBerryPowder()); } diff --git a/src/berry_tag_screen.c b/src/berry_tag_screen.c index f683c73f4..70d88b313 100644 --- a/src/berry_tag_screen.c +++ b/src/berry_tag_screen.c @@ -108,7 +108,7 @@ static const struct WindowTemplate sWindowTemplates[] = .tilemapTop = 4, .width = 8, .height = 2, - .paletteNum = 15, + .paletteNum = 0xF, .baseBlock = 69, }, { // WIN_SIZE_FIRM @@ -117,7 +117,7 @@ static const struct WindowTemplate sWindowTemplates[] = .tilemapTop = 7, .width = 18, .height = 4, - .paletteNum = 15, + .paletteNum = 0xF, .baseBlock = 85, }, { // WIN_DESC @@ -126,7 +126,7 @@ static const struct WindowTemplate sWindowTemplates[] = .tilemapTop = 14, .width = 25, .height = 4, - .paletteNum = 15, + .paletteNum = 0xF, .baseBlock = 157, }, { // WIN_BERRY_TAG @@ -135,7 +135,7 @@ static const struct WindowTemplate sWindowTemplates[] = .tilemapTop = 0, .width = 8, .height = 2, - .paletteNum = 15, + .paletteNum = 0xF, .baseBlock = 257, }, DUMMY_WIN_TEMPLATE @@ -346,7 +346,7 @@ static bool8 LoadBerryTagGfx(void) sBerryTag->gfxState++; break; case 4: - LoadCompressedPalette(gBerryCheck_Pal, 0, 0xC0); + LoadCompressedPalette(gBerryCheck_Pal, BG_PLTT_ID(0x0), 6 * PLTT_SIZE_4BPP); sBerryTag->gfxState++; break; case 5: @@ -367,7 +367,7 @@ static void HandleInitWindows(void) InitWindows(sWindowTemplates); DeactivateAllTextPrinters(); - LoadPalette(sFontPalette, 0xF0, 0x20); + LoadPalette(sFontPalette, BG_PLTT_ID(0xF), PLTT_SIZE_4BPP); for (i = 0; i < ARRAY_COUNT(sWindowTemplates) - 1; i++) PutWindowTilemap(i); ScheduleBgCopyTilemapToVram(0); diff --git a/src/cable_car.c b/src/cable_car.c index 562e9eceb..8485c2352 100644 --- a/src/cable_car.c +++ b/src/cable_car.c @@ -306,7 +306,7 @@ static void CB2_LoadCableCar(void) case 3: if (!FreeTempTileDataBuffersIfPossible()) { - LoadPalette(gCableCarBg_Pal, 0, 0x80); + LoadPalette(gCableCarBg_Pal, BG_PLTT_ID(0x0), 4 * PLTT_SIZE_4BPP); gMain.state++; } break; diff --git a/src/cable_club.c b/src/cable_club.c index 913a1b728..762bd4ec3 100644 --- a/src/cable_club.c +++ b/src/cable_club.c @@ -41,7 +41,7 @@ static const struct WindowTemplate sWindowTemplate_LinkPlayerCount = { .tilemapTop = 11, .width = 11, .height = 2, - .paletteNum = 15, + .paletteNum = 0xF, .baseBlock = 0x0125, }; diff --git a/src/clear_save_data_screen.c b/src/clear_save_data_screen.c index 9b79b48f1..42930777b 100644 --- a/src/clear_save_data_screen.c +++ b/src/clear_save_data_screen.c @@ -52,7 +52,7 @@ static const struct WindowTemplate sClearSaveTextWindow[] = .tilemapTop = 15, .width = 26, .height = 4, - .paletteNum = 15, + .paletteNum = 0xF, .baseBlock = 11, }, DUMMY_WIN_TEMPLATE @@ -66,7 +66,7 @@ static const struct WindowTemplate sClearSaveYesNo[] = .tilemapTop = 2, .width = 5, .height = 4, - .paletteNum = 15, + .paletteNum = 0xF, .baseBlock = 115, } }; @@ -204,6 +204,6 @@ static void InitClearSaveDataScreenWindows(void) InitWindows(sClearSaveTextWindow); DeactivateAllTextPrinters(); FillWindowPixelBuffer(0, PIXEL_FILL(0)); - LoadWindowGfx(0, 0, 2, 224); - LoadPalette(gStandardMenuPalette, 0xF0, 0x20); + LoadWindowGfx(0, 0, 2, BG_PLTT_ID(0xE)); + LoadPalette(gStandardMenuPalette, BG_PLTT_ID(0xF), PLTT_SIZE_4BPP); } diff --git a/src/contest.c b/src/contest.c index b2c875a58..7a7db4f5f 100644 --- a/src/contest.c +++ b/src/contest.c @@ -1032,13 +1032,13 @@ void LoadContestBgAfterMoveAnim(void) LZDecompressVram(gContestAudienceGfx, (void *)(BG_SCREEN_ADDR(4))); CopyToBgTilemapBuffer(3, gContestAudienceTilemap, 0, 0); CopyBgTilemapBufferToVram(3); - LoadCompressedPalette(gContestInterfaceAudiencePalette, 0, 0x200); + LoadCompressedPalette(gContestInterfaceAudiencePalette, BG_PLTT_OFFSET, BG_PLTT_SIZE); LoadContestPalettes(); for (i = 0; i < CONTESTANT_COUNT; i++) { u32 contestantWindowId = 5 + i; - LoadPalette(eContestTempSave.cachedWindowPalettes[contestantWindowId], 16 * (5 + gContestantTurnOrder[i]), sizeof((eContestTempSave.cachedWindowPalettes[contestantWindowId]))); + LoadPalette(eContestTempSave.cachedWindowPalettes[contestantWindowId], BG_PLTT_ID(0x5 + gContestantTurnOrder[i]), sizeof((eContestTempSave.cachedWindowPalettes[contestantWindowId]))); } } @@ -1073,11 +1073,11 @@ static void LoadContestPalettes(void) { s32 i; - LoadPalette(sText_Pal, 0xf0, 0x20); - FillPalette(RGB_BLACK, 0, 2); + LoadPalette(sText_Pal, BG_PLTT_ID(0xF), PLTT_SIZE_4BPP); + SetBackdropFromColor(RGB_BLACK); for (i = 10; i < 14; i++) - LoadPalette(gPlttBufferUnfaded + 241, 240 + i, 2); - FillPalette(RGB(31, 17, 31), 0xF3, 2); + LoadPalette(gPlttBufferUnfaded + BG_PLTT_ID(0xF) + 1, BG_PLTT_ID(0xF) + i, PLTT_SIZEOF(1)); + FillPalette(RGB(31, 17, 31), BG_PLTT_ID(0xF) + 3, PLTT_SIZEOF(1)); } static void InitContestResources(void) @@ -1327,11 +1327,11 @@ static bool8 SetupContestGraphics(u8 *stateVar) DmaCopy32Defvars(3, gContestResources->contestBgTilemaps[2], eContestTempSave.savedJunk, sizeof(eContestTempSave.savedJunk)); break; case 5: - LoadCompressedPalette(gContestInterfaceAudiencePalette, 0, 0x200); - CpuCopy32(gPlttBufferUnfaded + 128, tempPalette1, 16 * sizeof(u16)); - CpuCopy32(gPlttBufferUnfaded + (5 + gContestPlayerMonIndex) * 16, tempPalette2, 16 * sizeof(u16)); - CpuCopy32(tempPalette2, gPlttBufferUnfaded + 128, 16 * sizeof(u16)); - CpuCopy32(tempPalette1, gPlttBufferUnfaded + (5 + gContestPlayerMonIndex) * 16, 16 * sizeof(u16)); + LoadCompressedPalette(gContestInterfaceAudiencePalette, BG_PLTT_OFFSET, BG_PLTT_SIZE); + CpuCopy32(gPlttBufferUnfaded + BG_PLTT_ID(0x8), tempPalette1, PLTT_SIZE_4BPP); + CpuCopy32(gPlttBufferUnfaded + BG_PLTT_ID(0x5 + gContestPlayerMonIndex), tempPalette2, 16 * sizeof(u16)); + CpuCopy32(tempPalette2, gPlttBufferUnfaded + BG_PLTT_ID(0x8), PLTT_SIZE_4BPP); + CpuCopy32(tempPalette1, gPlttBufferUnfaded + BG_PLTT_ID(0x5 + gContestPlayerMonIndex), PLTT_SIZE_4BPP); DmaCopy32Defvars(3, gPlttBufferUnfaded, eContestTempSave.cachedWindowPalettes, sizeof(eContestTempSave.cachedWindowPalettes)); LoadContestPalettes(); break; @@ -3097,7 +3097,7 @@ static u8 CreateJudgeSprite(void) u8 spriteId; LoadCompressedSpriteSheet(&sSpriteSheet_Judge); - LoadCompressedPalette(gContest2Pal, 0x110, 32); + LoadCompressedPalette(gContest2Pal, OBJ_PLTT_ID(0x1), PLTT_SIZE_4BPP); spriteId = CreateSprite(&sSpriteTemplate_Judge, 112, 36, 30); gSprites[spriteId].oam.paletteNum = 1; gSprites[spriteId].callback = SpriteCallbackDummy; @@ -3126,7 +3126,7 @@ static u8 CreateContestantSprite(u16 species, u32 otId, u32 personality, u32 ind else HandleLoadSpecialPokePic_DontHandleDeoxys(&gMonBackPicTable[species], gMonSpritesGfxPtr->sprites.ptr[B_POSITION_PLAYER_LEFT], species, personality); - LoadCompressedPalette(GetMonSpritePalFromSpeciesAndPersonality(species, otId, personality), 0x120, 0x20); + LoadCompressedPalette(GetMonSpritePalFromSpeciesAndPersonality(species, otId, personality), OBJ_PLTT_ID(0x2), PLTT_SIZE_4BPP); SetMultiuseSpriteTemplateToPokemon(species, B_POSITION_PLAYER_LEFT); spriteId = CreateSprite(&gMultiuseSpriteTemplate, 0x70, GetBattlerSpriteFinal_Y(2, species, FALSE), 30); @@ -3997,7 +3997,7 @@ static void Task_StopFlashJudgeAttentionEye(u8 taskId) { gTasks[eContest.judgeAttentionTaskId].data[contestant * 4 + 0] = 0xFF; gTasks[eContest.judgeAttentionTaskId].data[contestant * 4 + 1] = 0; - BlendPalette((eContest.prevTurnOrder[contestant] + 5) * 16 + 6, 2, 0, RGB(31, 31, 18)); + BlendPalette(BG_PLTT_ID(0x5 + eContest.prevTurnOrder[contestant]) + 6, 2, 0, RGB(31, 31, 18)); DestroyTask(taskId); } } @@ -4021,7 +4021,7 @@ static void Task_FlashJudgeAttentionEye(u8 taskId) || gTasks[taskId].data[offset + 0] == 0) gTasks[taskId].data[offset + 1] ^= 1; - BlendPalette((eContest.prevTurnOrder[i] + 5) * 16 + 6, 2, gTasks[taskId].data[offset + 0], RGB(31, 31, 18)); + BlendPalette(BG_PLTT_ID(0x5 + eContest.prevTurnOrder[i]) + 6, 2, gTasks[taskId].data[offset + 0], RGB(31, 31, 18)); } } } @@ -4100,8 +4100,8 @@ static void Task_UnusedBlend(u8 taskId) || gTasks[taskId].data[idx] == 0) gTasks[taskId].data[idx + 1] ^= 1; - BlendPalette((i + 5) * 16 + 10, 1, gTasks[taskId].data[idx + 0], RGB(31, 31, 18)); - BlendPalette((i + 5) * 16 + 12 + i, 1, gTasks[taskId].data[idx + 0], RGB(31, 31, 18)); + BlendPalette(BG_PLTT_ID(0x5 + i) + 10, 1, gTasks[taskId].data[idx + 0], RGB(31, 31, 18)); + BlendPalette(BG_PLTT_ID(0x5 + i) + 12 + i, 1, gTasks[taskId].data[idx + 0], RGB(31, 31, 18)); } } } @@ -4414,7 +4414,7 @@ static void DrawContestantWindows(void) for (i = 0; i < CONTESTANT_COUNT; i++) { s32 windowId = i + 5; - LoadPalette(eContestTempSave.cachedWindowPalettes[windowId], (gContestantTurnOrder[i] + 5) * 16, sizeof(eContestTempSave.cachedWindowPalettes[0])); + LoadPalette(eContestTempSave.cachedWindowPalettes[windowId], BG_PLTT_ID(0x5 + gContestantTurnOrder[i]), sizeof(eContestTempSave.cachedWindowPalettes[0])); } DrawContestantWindowText(); } @@ -4769,7 +4769,7 @@ static void Task_ApplauseOverflowAnimation(u8 taskId) else gTasks[taskId].data[4]--; - BlendPalette(264 + gTasks[taskId].data[2] * 16, 1, gTasks[taskId].data[4], RGB_WHITE); + BlendPalette(OBJ_PLTT_ID(gTasks[taskId].data[2]) + 8, 1, gTasks[taskId].data[4], RGB_WHITE); // At the maximum or minimum blending, switch directions. if (gTasks[taskId].data[4] == 0 || gTasks[taskId].data[4] == 16) @@ -4779,7 +4779,7 @@ static void Task_ApplauseOverflowAnimation(u8 taskId) // Continue the animation until the applause meter is cleared. if (eContest.applauseLevel < 5) { - BlendPalette(264 + gTasks[taskId].data[2] * 16, 1, 0, RGB_RED); + BlendPalette(OBJ_PLTT_ID(gTasks[taskId].data[2]) + 8, 1, 0, RGB_RED); DestroyTask(taskId); } } @@ -4992,8 +4992,8 @@ static void Task_BlendAudienceBackground(u8 taskId) else gTasks[taskId].tBlendCoeff--; - BlendPalette(17, 1, gTasks[taskId].tBlendCoeff, gTasks[taskId].tBlendColor); - BlendPalette(26, 1, gTasks[taskId].tBlendCoeff, gTasks[taskId].tBlendColor); + BlendPalette(BG_PLTT_ID(0x1) + 1, 1, gTasks[taskId].tBlendCoeff, gTasks[taskId].tBlendColor); + BlendPalette(BG_PLTT_ID(0x1) + 10, 1, gTasks[taskId].tBlendCoeff, gTasks[taskId].tBlendColor); if (gTasks[taskId].tBlendCoeff == gTasks[taskId].tTargetBlendCoeff) { diff --git a/src/contest_painting.c b/src/contest_painting.c index e71cf391f..d995749bb 100644 --- a/src/contest_painting.c +++ b/src/contest_painting.c @@ -121,7 +121,7 @@ static const struct WindowTemplate sWindowTemplate = .tilemapTop = 14, .width = 26, .height = 4, - .paletteNum = 15, + .paletteNum = 0xF, .baseBlock = 1, }; @@ -223,7 +223,7 @@ static void ShowContestPainting(void) break; case 4: PrintContestPaintingCaption(gCurContestWinnerSaveIdx, gCurContestWinnerIsForArtist); - LoadPalette(sBgPalette, 0, 1 * 2); + SetBackdropFromPalette(sBgPalette); DmaClear32(3, PLTT, PLTT_SIZE); BeginFastPaletteFade(2); SetVBlankCallback(VBlankCB_ContestPainting); @@ -420,7 +420,7 @@ static void LoadContestPaintingFrame(u8 contestWinnerId, bool8 isForArtist) { u8 x, y; - LoadPalette(sPictureFramePalettes, 0, 0x100); + LoadPalette(sPictureFramePalettes, BG_PLTT_ID(0x0), 8 * PLTT_SIZE_4BPP); if (isForArtist == TRUE) { // Load Artist's frame @@ -586,7 +586,7 @@ static void DoContestPaintingImageProcessing(u8 imageEffect) ApplyImageProcessingEffects(&gImageProcessingContext); ApplyImageProcessingQuantization(&gImageProcessingContext); ConvertImageProcessingToGBA(&gImageProcessingContext); - LoadPalette(gContestPaintingMonPalette, 0x100, 0x200); + LoadPalette(gContestPaintingMonPalette, OBJ_PLTT_ID(0x0), 16 * PLTT_SIZE_4BPP); } static void CreateContestPaintingPicture(u8 contestWinnerId, bool8 isForArtist) diff --git a/src/contest_util.c b/src/contest_util.c index d44b47373..bbb4ba5bd 100644 --- a/src/contest_util.c +++ b/src/contest_util.c @@ -327,7 +327,7 @@ static const struct WindowTemplate sWindowTemplates[] = .tilemapTop = 4, .width = 12, .height = 2, - .paletteNum = 15, + .paletteNum = 0xF, .baseBlock = 770 }, { @@ -336,7 +336,7 @@ static const struct WindowTemplate sWindowTemplates[] = .tilemapTop = 7, .width = 12, .height = 2, - .paletteNum = 15, + .paletteNum = 0xF, .baseBlock = 794 }, { @@ -345,7 +345,7 @@ static const struct WindowTemplate sWindowTemplates[] = .tilemapTop = 10, .width = 12, .height = 2, - .paletteNum = 15, + .paletteNum = 0xF, .baseBlock = 818 }, { @@ -354,7 +354,7 @@ static const struct WindowTemplate sWindowTemplates[] = .tilemapTop = 13, .width = 12, .height = 2, - .paletteNum = 15, + .paletteNum = 0xF, .baseBlock = 842 }, DUMMY_WIN_TEMPLATE, @@ -455,8 +455,8 @@ static void LoadContestResultsBgGfx(void) CopyToBgTilemapBuffer(2, gContestResults_Interface_Tilemap, 0, 0); CopyToBgTilemapBuffer(0, gContestResults_WinnerBanner_Tilemap, 0, 0); LoadContestResultsTitleBarTilemaps(); - LoadCompressedPalette(gContestResults_Pal, 0, 0x200); - LoadPalette(sResultsTextWindow_Pal, 0xF0, sizeof(sResultsTextWindow_Pal)); + LoadCompressedPalette(gContestResults_Pal, BG_PLTT_ID(0x0), 16 * PLTT_SIZE_4BPP); + LoadPalette(sResultsTextWindow_Pal, BG_PLTT_ID(0xF), sizeof(sResultsTextWindow_Pal)); for (i = 0; i < CONTESTANT_COUNT; i++) { @@ -1092,9 +1092,9 @@ static void Task_FlashStarsAndHearts(u8 taskId) else if (gTasks[taskId].tCoeff == 0) gTasks[taskId].tDecreasing = FALSE; - BlendPalette(0x6B, 1, gTasks[taskId].tCoeff, RGB(30, 22, 11)); - BlendPalette(0x68, 1, gTasks[taskId].tCoeff, RGB_WHITE); - BlendPalette(0x6E, 1, gTasks[taskId].tCoeff, RGB(30, 29, 29)); + BlendPalette(BG_PLTT_ID(0x6) + 11, 1, gTasks[taskId].tCoeff, RGB(30, 22, 11)); + BlendPalette(BG_PLTT_ID(0x6) + 8, 1, gTasks[taskId].tCoeff, RGB_WHITE); + BlendPalette(BG_PLTT_ID(0x6) + 14, 1, gTasks[taskId].tCoeff, RGB(30, 29, 29)); } if (gTasks[taskId].tCoeff == 0) @@ -1143,7 +1143,7 @@ static void LoadAllContestMonIconPalettes(void) for (i = 0; i < CONTESTANT_COUNT; i++) { species = gContestMons[i].species; - LoadPalette(gMonIconPalettes[gMonIconPaletteIndices[GetIconSpecies(species, 0)]], i * 0x10 + 0xA0, 0x20); + LoadPalette(gMonIconPalettes[gMonIconPaletteIndices[GetIconSpecies(species, 0)]], BG_PLTT_ID(0xA + i), PLTT_SIZE_4BPP); } } @@ -1561,7 +1561,7 @@ static void Task_HighlightWinnersBox(u8 taskId) if (++gTasks[taskId].data[11] == 1) { gTasks[taskId].data[11] = 0; - BlendPalette(0x91, 1, gTasks[taskId].data[12], RGB(13, 28, 27)); + BlendPalette(BG_PLTT_ID(0x9) + 1, 1, gTasks[taskId].data[12], RGB(13, 28, 27)); if (gTasks[taskId].data[13] == 0) { if (++gTasks[taskId].data[12] == 16) @@ -2525,16 +2525,16 @@ void LoadLinkContestPlayerPalettes(void) if (version == VERSION_RUBY || version == VERSION_SAPPHIRE) { if (gLinkPlayers[i].gender == MALE) - LoadPalette(gObjectEventPal_RubySapphireBrendan, 0x160 + i * 0x10, 0x20); + LoadPalette(gObjectEventPal_RubySapphireBrendan, OBJ_PLTT_ID(0x6 + i), PLTT_SIZE_4BPP); else - LoadPalette(gObjectEventPal_RubySapphireMay, 0x160 + i * 0x10, 0x20); + LoadPalette(gObjectEventPal_RubySapphireMay, OBJ_PLTT_ID(0x6 + i), PLTT_SIZE_4BPP); } else { if (gLinkPlayers[i].gender == MALE) - LoadPalette(gObjectEventPal_Brendan, 0x160 + i * 0x10, 0x20); + LoadPalette(gObjectEventPal_Brendan, OBJ_PLTT_ID(0x6 + i), PLTT_SIZE_4BPP); else - LoadPalette(gObjectEventPal_May, 0x160 + i * 0x10, 0x20); + LoadPalette(gObjectEventPal_May, OBJ_PLTT_ID(0x6 + i), PLTT_SIZE_4BPP); } } } diff --git a/src/credits.c b/src/credits.c index c31859599..0764e185d 100644 --- a/src/credits.c +++ b/src/credits.c @@ -185,7 +185,7 @@ static const struct WindowTemplate sWindowTemplates[] = .tilemapTop = 9, .width = 30, .height = 12, - .paletteNum = 8, + .paletteNum = 0x8, .baseBlock = 1 }, DUMMY_WIN_TEMPLATE, @@ -365,7 +365,7 @@ static void InitCreditsBgsAndWindows(void) ResetBgsAndClearDma3BusyFlags(0); InitBgsFromTemplates(0, sBackgroundTemplates, ARRAY_COUNT(sBackgroundTemplates)); SetBgTilemapBuffer(0, AllocZeroed(BG_SCREEN_SIZE)); - LoadPalette(sCredits_Pal, 0x80, 64); + LoadPalette(sCredits_Pal, BG_PLTT_ID(0x8), 2 * PLTT_SIZE_4BPP); InitWindows(sWindowTemplates); DeactivateAllTextPrinters(); PutWindowTilemap(0); @@ -549,7 +549,7 @@ static void Task_LoadShowMons(u8 taskId) gReservedSpritePaletteCount = 8; LZ77UnCompVram(gBirchHelpGfx, (void *)VRAM); LZ77UnCompVram(gBirchGrassTilemap, (void *)(BG_SCREEN_ADDR(7))); - LoadPalette(gBirchBagGrassPal[0] + 1, 1, 31 * 2); + LoadPalette(gBirchBagGrassPal[0] + 1, BG_PLTT_ID(0x0) + 1, PLTT_SIZEOF(2 * 16 - 1)); for (i = 0; i < MON_PIC_SIZE; i++) gDecompressionBuffer[i] = 0x11; @@ -624,7 +624,7 @@ static void Task_CreditsTheEnd3(u8 taskId) { ResetGpuAndVram(); ResetPaletteFade(); - LoadTheEndScreen(0, 0x3800, 0); + LoadTheEndScreen(0, 0x3800, BG_PLTT_ID(0x0)); ResetSpriteData(); FreeAllSpritePalettes(); BeginNormalPaletteFade(PALETTES_ALL, 8, 16, 0, RGB_BLACK); diff --git a/src/data/party_menu.h b/src/data/party_menu.h index fdceb9b7d..a3cf30fc1 100644 --- a/src/data/party_menu.h +++ b/src/data/party_menu.h @@ -140,7 +140,7 @@ static const struct WindowTemplate sSinglePartyMenuWindowTemplate[] = .tilemapTop = 3, .width = 10, .height = 7, - .paletteNum = 3, + .paletteNum = 0x3, .baseBlock = 0x63, }, { @@ -149,7 +149,7 @@ static const struct WindowTemplate sSinglePartyMenuWindowTemplate[] = .tilemapTop = 1, .width = 18, .height = 3, - .paletteNum = 4, + .paletteNum = 0x4, .baseBlock = 0xA9, }, { @@ -158,7 +158,7 @@ static const struct WindowTemplate sSinglePartyMenuWindowTemplate[] = .tilemapTop = 4, .width = 18, .height = 3, - .paletteNum = 5, + .paletteNum = 0x5, .baseBlock = 0xDF, }, { @@ -167,7 +167,7 @@ static const struct WindowTemplate sSinglePartyMenuWindowTemplate[] = .tilemapTop = 7, .width = 18, .height = 3, - .paletteNum = 6, + .paletteNum = 0x6, .baseBlock = 0x115, }, { @@ -176,7 +176,7 @@ static const struct WindowTemplate sSinglePartyMenuWindowTemplate[] = .tilemapTop = 10, .width = 18, .height = 3, - .paletteNum = 7, + .paletteNum = 0x7, .baseBlock = 0x14B, }, { @@ -185,7 +185,7 @@ static const struct WindowTemplate sSinglePartyMenuWindowTemplate[] = .tilemapTop = 13, .width = 18, .height = 3, - .paletteNum = 8, + .paletteNum = 0x8, .baseBlock = 0x181, }, { @@ -194,7 +194,7 @@ static const struct WindowTemplate sSinglePartyMenuWindowTemplate[] = .tilemapTop = 15, .width = 28, .height = 4, - .paletteNum = 14, + .paletteNum = 0xE, .baseBlock = 0x1DF, }, DUMMY_WIN_TEMPLATE @@ -208,7 +208,7 @@ static const struct WindowTemplate sDoublePartyMenuWindowTemplate[] = .tilemapTop = 1, .width = 10, .height = 7, - .paletteNum = 3, + .paletteNum = 0x3, .baseBlock = 0x63, }, { @@ -217,7 +217,7 @@ static const struct WindowTemplate sDoublePartyMenuWindowTemplate[] = .tilemapTop = 8, .width = 10, .height = 7, - .paletteNum = 4, + .paletteNum = 0x4, .baseBlock = 0xA9, }, { @@ -226,7 +226,7 @@ static const struct WindowTemplate sDoublePartyMenuWindowTemplate[] = .tilemapTop = 1, .width = 18, .height = 3, - .paletteNum = 5, + .paletteNum = 0x5, .baseBlock = 0xEF, }, { @@ -235,7 +235,7 @@ static const struct WindowTemplate sDoublePartyMenuWindowTemplate[] = .tilemapTop = 5, .width = 18, .height = 3, - .paletteNum = 6, + .paletteNum = 0x6, .baseBlock = 0x125, }, { @@ -244,7 +244,7 @@ static const struct WindowTemplate sDoublePartyMenuWindowTemplate[] = .tilemapTop = 9, .width = 18, .height = 3, - .paletteNum = 7, + .paletteNum = 0x7, .baseBlock = 0x15B, }, { @@ -253,7 +253,7 @@ static const struct WindowTemplate sDoublePartyMenuWindowTemplate[] = .tilemapTop = 13, .width = 18, .height = 3, - .paletteNum = 8, + .paletteNum = 0x8, .baseBlock = 0x191, }, { @@ -262,7 +262,7 @@ static const struct WindowTemplate sDoublePartyMenuWindowTemplate[] = .tilemapTop = 15, .width = 28, .height = 4, - .paletteNum = 14, + .paletteNum = 0xE, .baseBlock = 0x1DF, }, DUMMY_WIN_TEMPLATE @@ -276,7 +276,7 @@ static const struct WindowTemplate sMultiPartyMenuWindowTemplate[] = .tilemapTop = 1, .width = 10, .height = 7, - .paletteNum = 3, + .paletteNum = 0x3, .baseBlock = 0x63, }, { @@ -285,7 +285,7 @@ static const struct WindowTemplate sMultiPartyMenuWindowTemplate[] = .tilemapTop = 8, .width = 10, .height = 7, - .paletteNum = 4, + .paletteNum = 0x4, .baseBlock = 0xA9, }, { @@ -294,7 +294,7 @@ static const struct WindowTemplate sMultiPartyMenuWindowTemplate[] = .tilemapTop = 2, .width = 18, .height = 3, - .paletteNum = 5, + .paletteNum = 0x5, .baseBlock = 0xEF, }, { @@ -303,7 +303,7 @@ static const struct WindowTemplate sMultiPartyMenuWindowTemplate[] = .tilemapTop = 5, .width = 18, .height = 3, - .paletteNum = 6, + .paletteNum = 0x6, .baseBlock = 0x125, }, { @@ -312,7 +312,7 @@ static const struct WindowTemplate sMultiPartyMenuWindowTemplate[] = .tilemapTop = 9, .width = 18, .height = 3, - .paletteNum = 7, + .paletteNum = 0x7, .baseBlock = 0x15B, }, { @@ -321,7 +321,7 @@ static const struct WindowTemplate sMultiPartyMenuWindowTemplate[] = .tilemapTop = 12, .width = 18, .height = 3, - .paletteNum = 8, + .paletteNum = 0x8, .baseBlock = 0x191, }, { @@ -330,7 +330,7 @@ static const struct WindowTemplate sMultiPartyMenuWindowTemplate[] = .tilemapTop = 15, .width = 28, .height = 4, - .paletteNum = 14, + .paletteNum = 0xE, .baseBlock = 0x1DF, }, DUMMY_WIN_TEMPLATE @@ -344,7 +344,7 @@ static const struct WindowTemplate sShowcaseMultiPartyMenuWindowTemplate[] = .tilemapTop = 2, .width = 10, .height = 7, - .paletteNum = 3, + .paletteNum = 0x3, .baseBlock = 0x63, }, { @@ -353,7 +353,7 @@ static const struct WindowTemplate sShowcaseMultiPartyMenuWindowTemplate[] = .tilemapTop = 3, .width = 18, .height = 3, - .paletteNum = 5, + .paletteNum = 0x5, .baseBlock = 0xA9, }, { @@ -362,7 +362,7 @@ static const struct WindowTemplate sShowcaseMultiPartyMenuWindowTemplate[] = .tilemapTop = 6, .width = 18, .height = 3, - .paletteNum = 6, + .paletteNum = 0x6, .baseBlock = 0xDF, }, { @@ -371,7 +371,7 @@ static const struct WindowTemplate sShowcaseMultiPartyMenuWindowTemplate[] = .tilemapTop = 11, .width = 10, .height = 7, - .paletteNum = 4, + .paletteNum = 0x4, .baseBlock = 0x115, }, { @@ -380,7 +380,7 @@ static const struct WindowTemplate sShowcaseMultiPartyMenuWindowTemplate[] = .tilemapTop = 12, .width = 18, .height = 3, - .paletteNum = 7, + .paletteNum = 0x7, .baseBlock = 0x16B, }, { @@ -389,7 +389,7 @@ static const struct WindowTemplate sShowcaseMultiPartyMenuWindowTemplate[] = .tilemapTop = 15, .width = 18, .height = 3, - .paletteNum = 8, + .paletteNum = 0x8, .baseBlock = 0x1A1, }, DUMMY_WIN_TEMPLATE @@ -402,7 +402,7 @@ static const struct WindowTemplate sCancelButtonWindowTemplate = .tilemapTop = 17, .width = 6, .height = 2, - .paletteNum = 3, + .paletteNum = 0x3, .baseBlock = 0x1C7, }; @@ -413,7 +413,7 @@ static const struct WindowTemplate sMultiCancelButtonWindowTemplate = .tilemapTop = 18, .width = 6, .height = 2, - .paletteNum = 3, + .paletteNum = 0x3, .baseBlock = 0x1C7, }; @@ -424,7 +424,7 @@ static const struct WindowTemplate sConfirmButtonWindowTemplate = .tilemapTop = 16, .width = 6, .height = 2, - .paletteNum = 3, + .paletteNum = 0x3, .baseBlock = 0x1D3, }; @@ -435,7 +435,7 @@ static const struct WindowTemplate sDefaultPartyMsgWindowTemplate = .tilemapTop = 17, .width = 21, .height = 2, - .paletteNum = 15, + .paletteNum = 0xF, .baseBlock = 0x24F, }; @@ -446,7 +446,7 @@ static const struct WindowTemplate sDoWhatWithMonMsgWindowTemplate = .tilemapTop = 17, .width = 16, .height = 2, - .paletteNum = 15, + .paletteNum = 0xF, .baseBlock = 0x279, }; @@ -457,7 +457,7 @@ static const struct WindowTemplate sDoWhatWithItemMsgWindowTemplate = .tilemapTop = 17, .width = 20, .height = 2, - .paletteNum = 15, + .paletteNum = 0xF, .baseBlock = 0x299, }; @@ -468,7 +468,7 @@ static const struct WindowTemplate sDoWhatWithMailMsgWindowTemplate = .tilemapTop = 17, .width = 18, .height = 2, - .paletteNum = 15, + .paletteNum = 0xF, .baseBlock = 0x299, }; @@ -479,7 +479,7 @@ static const struct WindowTemplate sWhichMoveMsgWindowTemplate = .tilemapTop = 17, .width = 16, .height = 2, - .paletteNum = 15, + .paletteNum = 0xF, .baseBlock = 0x299, }; @@ -490,7 +490,7 @@ static const struct WindowTemplate sAlreadyHoldingOneMsgWindowTemplate = .tilemapTop = 15, .width = 20, .height = 4, - .paletteNum = 15, + .paletteNum = 0xF, .baseBlock = 0x299, }; @@ -501,7 +501,7 @@ static const struct WindowTemplate sItemGiveTakeWindowTemplate = .tilemapTop = 13, .width = 6, .height = 6, - .paletteNum = 14, + .paletteNum = 0xE, .baseBlock = 0x39D, }; @@ -512,7 +512,7 @@ static const struct WindowTemplate sMailReadTakeWindowTemplate = .tilemapTop = 13, .width = 8, .height = 6, - .paletteNum = 14, + .paletteNum = 0xE, .baseBlock = 0x39D, }; @@ -523,7 +523,7 @@ static const struct WindowTemplate sMoveSelectWindowTemplate = .tilemapTop = 11, .width = 10, .height = 8, - .paletteNum = 14, + .paletteNum = 0xE, .baseBlock = 0x2E9, }; @@ -534,7 +534,7 @@ static const struct WindowTemplate sPartyMenuYesNoWindowTemplate = .tilemapTop = 9, .width = 5, .height = 4, - .paletteNum = 14, + .paletteNum = 0xE, .baseBlock = 0x2E9, }; @@ -545,7 +545,7 @@ static const struct WindowTemplate sLevelUpStatsWindowTemplate = .tilemapTop = 1, .width = 10, .height = 11, - .paletteNum = 14, + .paletteNum = 0xE, .baseBlock = 0x2E9, }; @@ -556,7 +556,7 @@ static const struct WindowTemplate sUnusedWindowTemplate1 = .tilemapTop = 15, .width = 27, .height = 4, - .paletteNum = 14, + .paletteNum = 0xE, .baseBlock = 0x1DF, }; @@ -567,7 +567,7 @@ static const struct WindowTemplate sUnusedWindowTemplate2 = .tilemapTop = 13, .width = 18, .height = 3, - .paletteNum = 12, + .paletteNum = 0xC, .baseBlock = 0x39D, }; diff --git a/src/data/trade.h b/src/data/trade.h index 80d17a49b..9cf4955bc 100644 --- a/src/data/trade.h +++ b/src/data/trade.h @@ -463,7 +463,7 @@ static const struct WindowTemplate sTradeMenuWindowTemplates[] = .tilemapTop = 7, .width = 22, .height = 4, - .paletteNum = 15, + .paletteNum = 0xF, .baseBlock = 30 }, { @@ -472,7 +472,7 @@ static const struct WindowTemplate sTradeMenuWindowTemplates[] = .tilemapTop = 15, .width = 10, .height = 4, - .paletteNum = 15, + .paletteNum = 0xF, .baseBlock = 118 }, { @@ -481,7 +481,7 @@ static const struct WindowTemplate sTradeMenuWindowTemplates[] = .tilemapTop = 5, .width = 8, .height = 2, - .paletteNum = 13, + .paletteNum = 0xD, .baseBlock = 158 }, { @@ -490,7 +490,7 @@ static const struct WindowTemplate sTradeMenuWindowTemplates[] = .tilemapTop = 5, .width = 8, .height = 2, - .paletteNum = 13, + .paletteNum = 0xD, .baseBlock = 174 }, { @@ -499,7 +499,7 @@ static const struct WindowTemplate sTradeMenuWindowTemplates[] = .tilemapTop = 10, .width = 8, .height = 2, - .paletteNum = 13, + .paletteNum = 0xD, .baseBlock = 190 }, { @@ -508,7 +508,7 @@ static const struct WindowTemplate sTradeMenuWindowTemplates[] = .tilemapTop = 10, .width = 8, .height = 2, - .paletteNum = 13, + .paletteNum = 0xD, .baseBlock = 206 }, { @@ -517,7 +517,7 @@ static const struct WindowTemplate sTradeMenuWindowTemplates[] = .tilemapTop = 15, .width = 8, .height = 2, - .paletteNum = 13, + .paletteNum = 0xD, .baseBlock = 222 }, { @@ -526,7 +526,7 @@ static const struct WindowTemplate sTradeMenuWindowTemplates[] = .tilemapTop = 15, .width = 8, .height = 2, - .paletteNum = 13, + .paletteNum = 0xD, .baseBlock = 238 }, { @@ -535,7 +535,7 @@ static const struct WindowTemplate sTradeMenuWindowTemplates[] = .tilemapTop = 5, .width = 8, .height = 2, - .paletteNum = 13, + .paletteNum = 0xD, .baseBlock = 254 }, { @@ -544,7 +544,7 @@ static const struct WindowTemplate sTradeMenuWindowTemplates[] = .tilemapTop = 5, .width = 8, .height = 2, - .paletteNum = 13, + .paletteNum = 0xD, .baseBlock = 270 }, { @@ -553,7 +553,7 @@ static const struct WindowTemplate sTradeMenuWindowTemplates[] = .tilemapTop = 10, .width = 8, .height = 2, - .paletteNum = 13, + .paletteNum = 0xD, .baseBlock = 286 }, { @@ -562,7 +562,7 @@ static const struct WindowTemplate sTradeMenuWindowTemplates[] = .tilemapTop = 10, .width = 8, .height = 2, - .paletteNum = 13, + .paletteNum = 0xD, .baseBlock = 302 }, { @@ -571,7 +571,7 @@ static const struct WindowTemplate sTradeMenuWindowTemplates[] = .tilemapTop = 15, .width = 8, .height = 2, - .paletteNum = 13, + .paletteNum = 0xD, .baseBlock = 318 }, { @@ -580,7 +580,7 @@ static const struct WindowTemplate sTradeMenuWindowTemplates[] = .tilemapTop = 15, .width = 8, .height = 2, - .paletteNum = 13, + .paletteNum = 0xD, .baseBlock = 334 }, { @@ -589,7 +589,7 @@ static const struct WindowTemplate sTradeMenuWindowTemplates[] = .tilemapTop = 5, .width = 14, .height = 2, - .paletteNum = 13, + .paletteNum = 0xD, .baseBlock = 350 }, { @@ -598,7 +598,7 @@ static const struct WindowTemplate sTradeMenuWindowTemplates[] = .tilemapTop = 8, .width = 11, .height = 8, - .paletteNum = 15, + .paletteNum = 0xF, .baseBlock = 378 }, { @@ -607,7 +607,7 @@ static const struct WindowTemplate sTradeMenuWindowTemplates[] = .tilemapTop = 5, .width = 14, .height = 2, - .paletteNum = 15, + .paletteNum = 0xF, .baseBlock = 466 }, { @@ -616,7 +616,7 @@ static const struct WindowTemplate sTradeMenuWindowTemplates[] = .tilemapTop = 8, .width = 11, .height = 8, - .paletteNum = 15, + .paletteNum = 0xF, .baseBlock = 494 }, DUMMY_WIN_TEMPLATE, @@ -629,7 +629,7 @@ static const struct WindowTemplate sTradeYesNoWindowTemplate = .tilemapTop = 13, .width = 5, .height = 4, - .paletteNum = 15, + .paletteNum = 0xF, .baseBlock = 582 }; @@ -1112,7 +1112,7 @@ static const struct WindowTemplate sTradeSequenceWindowTemplates[] = .tilemapTop = 15, .width = 26, .height = 4, - .paletteNum = 0, + .paletteNum = 0x0, .baseBlock = 64 }, DUMMY_WIN_TEMPLATE @@ -1125,7 +1125,7 @@ const struct WindowTemplate gTradeEvolutionSceneYesNoWindowTemplate = .tilemapTop = 9, .width = 5, .height = 4, - .paletteNum = 15, + .paletteNum = 0xF, .baseBlock = 188 }; diff --git a/src/data/union_room.h b/src/data/union_room.h index cf4b12b5d..804a8435f 100644 --- a/src/data/union_room.h +++ b/src/data/union_room.h @@ -627,7 +627,7 @@ static const struct WindowTemplate sWindowTemplate_BButtonCancel = { .tilemapTop = 0, .width = 30, .height = 2, - .paletteNum = 15, + .paletteNum = 0xF, .baseBlock = 0x0008 }; @@ -669,7 +669,7 @@ static const struct WindowTemplate sWindowTemplate_PlayerList = { .tilemapTop = 3, .width = 13, .height = 8, - .paletteNum = 15, + .paletteNum = 0xF, .baseBlock = 0x0044 }; @@ -679,7 +679,7 @@ static const struct WindowTemplate sWindowTemplate_5PlayerList = { .tilemapTop = 3, .width = 13, .height = 10, - .paletteNum = 15, + .paletteNum = 0xF, .baseBlock = 0x0044 }; @@ -689,7 +689,7 @@ static const struct WindowTemplate sWindowTemplate_NumPlayerMode = { .tilemapTop = 3, .width = 7, .height = 4, - .paletteNum = 15, + .paletteNum = 0xF, .baseBlock = 0x00c6 }; @@ -728,7 +728,7 @@ static const struct WindowTemplate sWindowTemplate_GroupList = { .tilemapTop = 3, .width = 17, .height = 10, - .paletteNum = 15, + .paletteNum = 0xF, .baseBlock = 0x0044 }; @@ -738,7 +738,7 @@ static const struct WindowTemplate sWindowTemplate_PlayerNameAndId = { .tilemapTop = 3, .width = 7, .height = 4, - .paletteNum = 15, + .paletteNum = 0xF, .baseBlock = 0x00ee }; @@ -788,7 +788,7 @@ static const struct WindowTemplate sWindowTemplate_InviteToActivity = { .tilemapTop = 5, .width = 16, .height = 8, - .paletteNum = 15, + .paletteNum = 0xF, .baseBlock = 0x0001 }; @@ -826,7 +826,7 @@ static const struct WindowTemplate sWindowTemplate_RegisterForTrade = { .tilemapTop = 7, .width = 16, .height = 6, - .paletteNum = 15, + .paletteNum = 0xF, .baseBlock = 0x0001 }; @@ -863,7 +863,7 @@ static const struct WindowTemplate sWindowTemplate_TradingBoardRequestType = { .tilemapTop = 1, .width = 16, .height = 12, - .paletteNum = 15, + .paletteNum = 0xF, .baseBlock = 0x0001 }; @@ -915,7 +915,7 @@ static const struct WindowTemplate sWindowTemplate_TradingBoardHeader = { .tilemapTop = 1, .width = 28, .height = 2, - .paletteNum = 13, + .paletteNum = 0xD, .baseBlock = 0x0001 }; @@ -925,7 +925,7 @@ static const struct WindowTemplate sWindowTemplate_TradingBoardMain = { .tilemapTop = 5, .width = 28, .height = 12, - .paletteNum = 13, + .paletteNum = 0xD, .baseBlock = 0x0039 }; @@ -970,7 +970,7 @@ static const struct WindowTemplate sWindowTemplate_Unused = { .tilemapTop = 5, .width = 28, .height = 12, - .paletteNum = 13, + .paletteNum = 0xD, .baseBlock = 0x0039 }; diff --git a/src/daycare.c b/src/daycare.c index 19d5edbb2..57119c3ca 100644 --- a/src/daycare.c +++ b/src/daycare.c @@ -46,7 +46,7 @@ static const struct WindowTemplate sDaycareLevelMenuWindowTemplate = .tilemapTop = 1, .width = 14, .height = 6, - .paletteNum = 15, + .paletteNum = 0xF, .baseBlock = 8 }; diff --git a/src/decoration.c b/src/decoration.c index cc740f189..684e67bc8 100644 --- a/src/decoration.c +++ b/src/decoration.c @@ -263,7 +263,7 @@ static const struct WindowTemplate sDecorationWindowTemplates[WINDOW_COUNT] = .tilemapTop = 1, .width = 18, .height = 2 * ARRAY_COUNT(sDecorationMainMenuActions), - .paletteNum = 15, + .paletteNum = 0xF, .baseBlock = 0x0001 }, { @@ -272,7 +272,7 @@ static const struct WindowTemplate sDecorationWindowTemplates[WINDOW_COUNT] = .tilemapTop = 1, .width = 13, .height = 18, - .paletteNum = 13, + .paletteNum = 0xD, .baseBlock = 0x0091 }, { @@ -281,7 +281,7 @@ static const struct WindowTemplate sDecorationWindowTemplates[WINDOW_COUNT] = .tilemapTop = 1, .width = 12, .height = 2, - .paletteNum = 15, + .paletteNum = 0xF, .baseBlock = 0x017b }, { @@ -290,7 +290,7 @@ static const struct WindowTemplate sDecorationWindowTemplates[WINDOW_COUNT] = .tilemapTop = 13, .width = 13, .height = 6, - .paletteNum = 15, + .paletteNum = 0xF, .baseBlock = 0x0193 } }; @@ -687,7 +687,7 @@ static void ReturnToDecorationActionsAfterInvalidSelection(u8 taskId) static void SecretBasePC_PrepMenuForSelectingStoredDecors(u8 taskId) { - LoadPalette(sDecorationMenuPalette, 0xd0, 0x20); + LoadPalette(sDecorationMenuPalette, BG_PLTT_ID(0xD), PLTT_SIZE_4BPP); ClearDialogWindowAndFrame(0, FALSE); RemoveDecorationWindow(WINDOW_MAIN_MENU); InitDecorationCategoriesWindow(taskId); @@ -833,7 +833,7 @@ static void ReturnToActionsMenuFromCategories(u8 taskId) void ShowDecorationCategoriesWindow(u8 taskId) { - LoadPalette(sDecorationMenuPalette, 0xd0, 0x20); + LoadPalette(sDecorationMenuPalette, BG_PLTT_ID(0xD), PLTT_SIZE_4BPP); ClearDialogWindowAndFrame(0, FALSE); gTasks[taskId].tDecorationMenuCommand = DECOR_MENU_TRADE; sCurDecorationCategory = DECORCAT_DESK; diff --git a/src/diploma.c b/src/diploma.c index ce31578dc..5fe8aef83 100644 --- a/src/diploma.c +++ b/src/diploma.c @@ -72,7 +72,7 @@ void CB2_ShowDiploma(void) ResetSpriteData(); ResetPaletteFade(); FreeAllSpritePalettes(); - LoadPalette(sDiplomaPalettes, 0, 64); + LoadPalette(sDiplomaPalettes, BG_PLTT_ID(0x0), 2 * PLTT_SIZE_4BPP); sDiplomaTilemapPtr = malloc(0x1000); InitDiplomaBg(); InitDiplomaWindow(); @@ -186,7 +186,7 @@ static const struct WindowTemplate sDiplomaWinTemplates[2] = .tilemapTop = 2, .width = 20, .height = 16, - .paletteNum = 15, + .paletteNum = 0xF, .baseBlock = 1, }, DUMMY_WIN_TEMPLATE, @@ -196,7 +196,7 @@ static void InitDiplomaWindow(void) { InitWindows(sDiplomaWinTemplates); DeactivateAllTextPrinters(); - LoadPalette(gStandardMenuPalette, 0xF0, 0x20); + LoadPalette(gStandardMenuPalette, BG_PLTT_ID(0xF), PLTT_SIZE_4BPP); FillWindowPixelBuffer(0, PIXEL_FILL(0)); PutWindowTilemap(0); } diff --git a/src/dodrio_berry_picking.c b/src/dodrio_berry_picking.c index 11bf12925..e1fe5248f 100644 --- a/src/dodrio_berry_picking.c +++ b/src/dodrio_berry_picking.c @@ -2931,7 +2931,7 @@ static const struct WindowTemplate sWindowTemplates_Records = .tilemapTop = 1, .width = 20, .height = 11, - .paletteNum = 15, + .paletteNum = 0xF, .baseBlock = 0x1, }; @@ -3005,7 +3005,7 @@ static void PrintRecordsText(u8 windowId, s32 width) recordNums[1] = gSaveBlock2Ptr->berryPick.bestScore; recordNums[2] = gSaveBlock2Ptr->berryPick.berriesPickedInRow; - LoadUserWindowBorderGfx_(windowId, 0x21D, 0xD0); + LoadUserWindowBorderGfx_(windowId, 0x21D, BG_PLTT_ID(0xD)); DrawTextBorderOuter(windowId, 0x21D, 0xD); FillWindowPixelBuffer(windowId, PIXEL_FILL(1)); AddTextPrinterParameterized(windowId, FONT_NORMAL, gText_BerryPickingRecords, GetStringCenterAlignXOffset(FONT_NORMAL, gText_BerryPickingRecords, width * 8), 1, TEXT_SKIP_DRAW, NULL); @@ -3401,7 +3401,7 @@ static const struct WindowTemplate sWindowTemplates_Results[] = .tilemapTop = 1, .width = 28, .height = 2, - .paletteNum = 13, + .paletteNum = 0xD, .baseBlock = 0x13, }, { @@ -3410,7 +3410,7 @@ static const struct WindowTemplate sWindowTemplates_Results[] = .tilemapTop = 5, .width = 28, .height = 14, - .paletteNum = 13, + .paletteNum = 0xD, .baseBlock = 0x4B, } }; @@ -3422,7 +3422,7 @@ static const struct WindowTemplate sWindowTemplate_Prize = .tilemapTop = 5, .width = 28, .height = 7, - .paletteNum = 13, + .paletteNum = 0xD, .baseBlock = 0x4B, }; @@ -3439,7 +3439,7 @@ static const struct WindowTemplate sWindowTemplates_PlayAgain[] = .tilemapTop = 8, .width = 19, .height = 3, - .paletteNum = 13, + .paletteNum = 0xD, .baseBlock = 0x13, }, [WIN_YES_NO] = { @@ -3448,7 +3448,7 @@ static const struct WindowTemplate sWindowTemplates_PlayAgain[] = .tilemapTop = 7, .width = 6, .height = 4, - .paletteNum = 13, + .paletteNum = 0xD, .baseBlock = 0x4C, } }; @@ -3460,7 +3460,7 @@ static const struct WindowTemplate sWindowTemplate_DroppedOut = .tilemapTop = 6, .width = 22, .height = 5, - .paletteNum = 13, + .paletteNum = 0xD, .baseBlock = 0x13, }; @@ -3471,7 +3471,7 @@ static const struct WindowTemplate sWindowTemplate_CommStandby = .tilemapTop = 8, .width = 19, .height = 3, - .paletteNum = 13, + .paletteNum = 0xD, .baseBlock = 0x13, }; @@ -4429,12 +4429,12 @@ static void ResetBerryAndStatusBarSprites(void) static void LoadWindowFrameGfx(u8 frameId) { LoadBgTiles(BG_INTERFACE, GetWindowFrameTilesPal(frameId)->tiles, 0x120, 1); - LoadPalette(GetWindowFrameTilesPal(frameId)->pal, 0xA0, 0x20); + LoadPalette(GetWindowFrameTilesPal(frameId)->pal, BG_PLTT_ID(0xA), PLTT_SIZE_4BPP); } static void LoadUserWindowFrameGfx(void) { - LoadUserWindowBorderGfx_(0, 0xA, 0xB0); + LoadUserWindowBorderGfx_(0, 0xA, BG_PLTT_ID(0xB)); } static void ResetGfxState(void) @@ -4448,7 +4448,7 @@ static void ResetGfxState(void) static void DrawYesNoMessageWindow(const struct WindowTemplate *template) { - u8 pal = 10; + u8 pal = 0xA; FillBgTilemapBufferRect(BG_INTERFACE, 1, template->tilemapLeft - 1, template->tilemapTop - 1, 1, 1, pal); FillBgTilemapBufferRect(BG_INTERFACE, 2, template->tilemapLeft, template->tilemapTop - 1, template->width, 1, pal); @@ -4462,7 +4462,7 @@ static void DrawYesNoMessageWindow(const struct WindowTemplate *template) static void DrawMessageWindow(const struct WindowTemplate *template) { - u8 pal = 11; + u8 pal = 0xB; FillBgTilemapBufferRect(BG_INTERFACE, 10, template->tilemapLeft - 1, template->tilemapTop - 1, 1, 1, pal); FillBgTilemapBufferRect(BG_INTERFACE, 11, template->tilemapLeft, template->tilemapTop - 1, template->width, 1, pal); @@ -4634,7 +4634,7 @@ static void ShowNames(void) window.bg = BG_INTERFACE; window.width = 7; window.height = 2; - window.paletteNum = 13; + window.paletteNum = 0xD; window.baseBlock = 0x13; for (i = 0; i < numPlayers; coords++, i++) { @@ -5193,7 +5193,7 @@ static bool32 LoadBgGfx(void) switch (sGfx->loadState) { case 0: - LoadPalette(sBg_Pal, 0, sizeof(sBg_Pal)); + LoadPalette(sBg_Pal, BG_PLTT_ID(0x0), sizeof(sBg_Pal)); break; case 1: ResetTempTileDataBuffers(); @@ -5209,7 +5209,7 @@ static bool32 LoadBgGfx(void) return FALSE; break; case 5: - LoadPalette(GetTextWindowPalette(3), 0xD0, 0x20); + LoadPalette(GetTextWindowPalette(3), BG_PLTT_ID(0xD), PLTT_SIZE_4BPP); break; default: sGfx->loadState = 0; diff --git a/src/easy_chat.c b/src/easy_chat.c index 91b44fb26..574ed22ee 100644 --- a/src/easy_chat.c +++ b/src/easy_chat.c @@ -820,7 +820,7 @@ static const struct WindowTemplate sEasyChatWindowTemplates[] = { .tilemapTop = 0, .width = 18, .height = 2, - .paletteNum = 10, + .paletteNum = 0xA, .baseBlock = 0x10, }, { @@ -829,7 +829,7 @@ static const struct WindowTemplate sEasyChatWindowTemplates[] = { .tilemapTop = 15, .width = 24, .height = 4, - .paletteNum = 15, + .paletteNum = 0xF, .baseBlock = 0xA, }, { @@ -838,7 +838,7 @@ static const struct WindowTemplate sEasyChatWindowTemplates[] = { .tilemapTop = 0, .width = 28, .height = 32, - .paletteNum = 3, + .paletteNum = 0x3, .baseBlock = 0, }, DUMMY_WIN_TEMPLATE, @@ -850,7 +850,7 @@ static const struct WindowTemplate sEasyChatYesNoWindowTemplate = { .tilemapTop = 9, .width = 5, .height = 4, - .paletteNum = 15, + .paletteNum = 0xF, .baseBlock = 0x6A, }; @@ -3911,13 +3911,13 @@ static void InitEasyChatBgs(void) static void LoadEasyChatPalettes(void) { ResetPaletteFade(); - LoadPalette(gEasyChatMode_Pal, 0, 32); - LoadPalette(sTextInputFrameOrange_Pal, 1 * 16, 32); - LoadPalette(sTextInputFrameGreen_Pal, 4 * 16, 32); - LoadPalette(sTitleText_Pal, 10 * 16, 8); - LoadPalette(sText_Pal, 11 * 16, 12); - LoadPalette(sText_Pal, 15 * 16, 12); - LoadPalette(sText_Pal, 3 * 16, 12); + LoadPalette(gEasyChatMode_Pal, BG_PLTT_ID(0x0), PLTT_SIZE_4BPP); + LoadPalette(sTextInputFrameOrange_Pal, BG_PLTT_ID(0x1), PLTT_SIZE_4BPP); + LoadPalette(sTextInputFrameGreen_Pal, BG_PLTT_ID(0x4), PLTT_SIZE_4BPP); + LoadPalette(sTitleText_Pal, BG_PLTT_ID(0xA), PLTT_SIZEOF(4)); + LoadPalette(sText_Pal, BG_PLTT_ID(0xB), PLTT_SIZEOF(6)); + LoadPalette(sText_Pal, BG_PLTT_ID(0xF), PLTT_SIZEOF(6)); + LoadPalette(sText_Pal, BG_PLTT_ID(0x3), PLTT_SIZEOF(6)); } static void PrintTitle(void) @@ -3951,8 +3951,8 @@ static void PrintEasyChatTextWithColors(u8 windowId, u8 fontId, const u8 *str, u static void PrintInitialInstructions(void) { FillBgTilemapBufferRect(0, 0, 0, 0, 32, 20, 17); - LoadUserWindowBorderGfx(1, 1, 0xE0); - DrawTextBorderOuter(1, 1, 14); + LoadUserWindowBorderGfx(1, 1, BG_PLTT_ID(0xE)); + DrawTextBorderOuter(1, 1, 0xE); PrintEasyChatStdMessage(MSG_INSTRUCTIONS); PutWindowTilemap(1); CopyBgTilemapBufferToVram(0); @@ -4024,7 +4024,7 @@ static void AddPhraseWindow(void) template.tilemapTop = sPhraseFrameDimensions[frameId].top; template.width = sPhraseFrameDimensions[frameId].width; template.height = sPhraseFrameDimensions[frameId].height; - template.paletteNum = 11; + template.paletteNum = 0xB; template.baseBlock = 0x6C; sScreenControl->windowId = AddWindow(&template); PutWindowTilemap(sScreenControl->windowId); @@ -5069,7 +5069,7 @@ static void AddMainScreenButtonWindow(void) template.tilemapTop = 11; template.width = 28; template.height = 2; - template.paletteNum = 11; + template.paletteNum = 0xB; template.baseBlock = 0x34; windowId = AddWindow(&template); FillWindowPixelBuffer(windowId, PIXEL_FILL(1)); diff --git a/src/egg_hatch.c b/src/egg_hatch.c index d714fb950..1832ec215 100644 --- a/src/egg_hatch.c +++ b/src/egg_hatch.c @@ -264,7 +264,7 @@ static const struct WindowTemplate sWinTemplates_EggHatch[] = .tilemapTop = 15, .width = 26, .height = 4, - .paletteNum = 0, + .paletteNum = 0x0, .baseBlock = 64 }, DUMMY_WIN_TEMPLATE @@ -277,7 +277,7 @@ static const struct WindowTemplate sYesNoWinTemplate = .tilemapTop = 9, .width = 5, .height = 4, - .paletteNum = 15, + .paletteNum = 0xF, .baseBlock = 424 }; @@ -532,7 +532,7 @@ static void CB2_LoadEggHatch(void) case 2: DecompressAndLoadBgGfxUsingHeap(0, gBattleTextboxTiles, 0, 0, 0); CopyToBgTilemapBuffer(0, gBattleTextboxTilemap, 0, 0); - LoadCompressedPalette(gBattleTextboxPalette, 0, 0x20); + LoadCompressedPalette(gBattleTextboxPalette, BG_PLTT_ID(0x0), PLTT_SIZE_4BPP); gMain.state++; break; case 3: @@ -556,7 +556,7 @@ static void CB2_LoadEggHatch(void) break; case 7: SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_OBJ_ON | DISPCNT_OBJ_1D_MAP); - LoadPalette(gTradeGba2_Pal, 0x10, 0xA0); + LoadPalette(gTradeGba2_Pal, BG_PLTT_ID(0x1), 5 * PLTT_SIZE_4BPP); LoadBgTiles(1, gTradeGba_Gfx, 0x1420, 0); CopyToBgTilemapBuffer(1, gTradePlatform_Tilemap, 0x1000, 0); CopyBgTilemapBufferToVram(1); @@ -678,7 +678,7 @@ static void CB2_EggHatch(void) // Print the nickname prompt if (!IsTextPrinterActive(sEggHatchData->windowId)) { - LoadUserWindowBorderGfx(sEggHatchData->windowId, 0x140, 0xE0); + LoadUserWindowBorderGfx(sEggHatchData->windowId, 0x140, BG_PLTT_ID(0xE)); CreateYesNoMenu(&sYesNoWinTemplate, 0x140, 0xE, 0); sEggHatchData->state++; } diff --git a/src/event_object_movement.c b/src/event_object_movement.c index 69377cac6..eaca44a7a 100644 --- a/src/event_object_movement.c +++ b/src/event_object_movement.c @@ -2005,7 +2005,7 @@ void PatchObjectPalette(u16 paletteTag, u8 paletteSlot) { u8 paletteIndex = FindObjectEventPaletteIndexByTag(paletteTag); - LoadPalette(sObjectEventSpritePalettes[paletteIndex].data, 16 * paletteSlot + 0x100, 0x20); + LoadPalette(sObjectEventSpritePalettes[paletteIndex].data, OBJ_PLTT_ID(paletteSlot), PLTT_SIZE_4BPP); } void PatchObjectPaletteRange(const u16 *paletteTags, u8 minSlot, u8 maxSlot) diff --git a/src/evolution_scene.c b/src/evolution_scene.c index 2c4e225c1..9ca441bc4 100644 --- a/src/evolution_scene.c +++ b/src/evolution_scene.c @@ -263,7 +263,7 @@ void EvolutionScene(struct Pokemon *mon, u16 postEvoSpecies, bool8 canStopEvo, u gMonSpritesGfxPtr->sprites.ptr[B_POSITION_OPPONENT_LEFT], currSpecies); pokePal = GetMonSpritePalStructFromOtIdPersonality(currSpecies, trainerId, personality); - LoadCompressedPalette(pokePal->data, 0x110, 0x20); + LoadCompressedPalette(pokePal->data, OBJ_PLTT_ID(0x1), PLTT_SIZE_4BPP); SetMultiuseSpriteTemplateToPokemon(currSpecies, B_POSITION_OPPONENT_LEFT); gMultiuseSpriteTemplate.affineAnims = gDummySpriteAffineAnimTable; @@ -278,7 +278,7 @@ void EvolutionScene(struct Pokemon *mon, u16 postEvoSpecies, bool8 canStopEvo, u gMonSpritesGfxPtr->sprites.ptr[B_POSITION_OPPONENT_RIGHT], postEvoSpecies); pokePal = GetMonSpritePalStructFromOtIdPersonality(postEvoSpecies, trainerId, personality); - LoadCompressedPalette(pokePal->data, 0x120, 0x20); + LoadCompressedPalette(pokePal->data, OBJ_PLTT_ID(0x2), PLTT_SIZE_4BPP); SetMultiuseSpriteTemplateToPokemon(postEvoSpecies, B_POSITION_OPPONENT_RIGHT); gMultiuseSpriteTemplate.affineAnims = gDummySpriteAffineAnimTable; @@ -356,7 +356,7 @@ static void CB2_EvolutionSceneLoadGraphics(void) postEvoSpecies); pokePal = GetMonSpritePalStructFromOtIdPersonality(postEvoSpecies, trainerId, personality); - LoadCompressedPalette(pokePal->data, 0x120, 0x20); + LoadCompressedPalette(pokePal->data, OBJ_PLTT_ID(0x2), PLTT_SIZE_4BPP); SetMultiuseSpriteTemplateToPokemon(postEvoSpecies, B_POSITION_OPPONENT_RIGHT); gMultiuseSpriteTemplate.affineAnims = gDummySpriteAffineAnimTable; @@ -427,7 +427,7 @@ static void CB2_TradeEvolutionSceneLoadGraphics(void) gMonSpritesGfxPtr->sprites.ptr[B_POSITION_OPPONENT_RIGHT], postEvoSpecies); pokePal = GetMonSpritePalStructFromOtIdPersonality(postEvoSpecies, trainerId, personality); - LoadCompressedPalette(pokePal->data, 0x120, 0x20); + LoadCompressedPalette(pokePal->data, OBJ_PLTT_ID(0x2), PLTT_SIZE_4BPP); gMain.state++; } break; @@ -492,7 +492,7 @@ void TradeEvolutionScene(struct Pokemon *mon, u16 postEvoSpecies, u8 preEvoSprit postEvoSpecies); pokePal = GetMonSpritePalStructFromOtIdPersonality(postEvoSpecies, trainerId, personality); - LoadCompressedPalette(pokePal->data, 0x120, 0x20); + LoadCompressedPalette(pokePal->data, OBJ_PLTT_ID(0x2), PLTT_SIZE_4BPP); SetMultiuseSpriteTemplateToPokemon(postEvoSpecies, B_POSITION_OPPONENT_LEFT); gMultiuseSpriteTemplate.affineAnims = gDummySpriteAffineAnimTable; @@ -1301,7 +1301,7 @@ static void Task_TradeEvolutionScene(u8 taskId) case T_MVSTATE_PRINT_YES_NO: if (!IsTextPrinterActive(0) && !IsSEPlaying()) { - LoadUserWindowBorderGfx(0, 0xA8, 0xE0); + LoadUserWindowBorderGfx(0, 0xA8, BG_PLTT_ID(0xE)); CreateYesNoMenu(&gTradeEvolutionSceneYesNoWindowTemplate, 0xA8, 0xE, 0); sEvoCursorPos = 0; gTasks[taskId].tLearnMoveState++; @@ -1507,7 +1507,7 @@ static void Task_UpdateBgPalette(u8 taskId) else { // Haven't reached final palette in current stage, load the current palette - LoadPalette(&sBgAnimPal[tPalStage * 16], 0xA0, 0x20); + LoadPalette(&sBgAnimPal[tPalStage * 16], BG_PLTT_ID(0xA), PLTT_SIZE_4BPP); tCycleTimer = 0; tPalStage++; } @@ -1605,7 +1605,7 @@ static void StartBgAnimation(bool8 isLink) else innerBgId = 1, outerBgId = 3; - LoadPalette(sBgAnim_Intro_Pal, 0xA0, 0x20); + LoadPalette(sBgAnim_Intro_Pal, BG_PLTT_ID(0xA), PLTT_SIZE_4BPP); DecompressAndLoadBgGfxUsingHeap(1, sBgAnim_Gfx, FALSE, 0, 0); CopyToBgTilemapBuffer(innerBgId, sBgAnim_Inner_Tilemap, 0, 0); @@ -1644,7 +1644,7 @@ static void PauseBgPaletteAnim(void) if (taskId != TASK_NONE) gTasks[taskId].tPaused = TRUE; - FillPalette(RGB_BLACK, 0xA0, 0x20); + FillPalette(RGB_BLACK, BG_PLTT_ID(0xA), PLTT_SIZE_4BPP); } #undef tPaused @@ -1658,7 +1658,7 @@ static void StopBgAnimation(void) if ((taskId = FindTaskIdByFunc(Task_AnimateBg)) != TASK_NONE) DestroyTask(taskId); - FillPalette(RGB_BLACK, 0xA0, 0x20); + FillPalette(RGB_BLACK, BG_PLTT_ID(0xA), PLTT_SIZE_4BPP); RestoreBgAfterAnim(); } diff --git a/src/field_effect.c b/src/field_effect.c index ba917b565..242d55770 100644 --- a/src/field_effect.c +++ b/src/field_effect.c @@ -893,7 +893,7 @@ u8 CreateTrainerSprite(u8 trainerSpriteID, s16 x, s16 y, u8 subpriority, u8 *buf void LoadTrainerGfx_TrainerCard(u8 gender, u16 palOffset, u8 *dest) { LZDecompressVram(gTrainerFrontPicTable[gender].data, dest); - LoadCompressedPalette(gTrainerFrontPicPaletteTable[gender].data, palOffset, 0x20); + LoadCompressedPalette(gTrainerFrontPicPaletteTable[gender].data, palOffset, PLTT_SIZE_4BPP); } u8 AddNewGameBirchObject(s16 x, s16 y, u8 subpriority) @@ -2620,7 +2620,7 @@ static void FieldMoveShowMonOutdoorsEffect_LoadGfx(struct Task *task) u16 delta = ((REG_BG0CNT >> 8) << 11); CpuCopy16(sFieldMoveStreaksOutdoors_Gfx, (void *)(VRAM + offset), 0x200); CpuFill32(0, (void *)(VRAM + delta), 0x800); - LoadPalette(sFieldMoveStreaksOutdoors_Pal, 0xf0, sizeof(sFieldMoveStreaksOutdoors_Pal)); + LoadPalette(sFieldMoveStreaksOutdoors_Pal, BG_PLTT_ID(0xF), sizeof(sFieldMoveStreaksOutdoors_Pal)); LoadFieldMoveOutdoorStreaksTilemap(delta); task->tState++; } @@ -2783,7 +2783,7 @@ static void FieldMoveShowMonIndoorsEffect_LoadGfx(struct Task *task) task->data[12] = delta; CpuCopy16(sFieldMoveStreaksIndoors_Gfx, (void *)(VRAM + offset), 0x80); CpuFill32(0, (void *)(VRAM + delta), 0x800); - LoadPalette(sFieldMoveStreaksIndoors_Pal, 0xf0, sizeof(sFieldMoveStreaksIndoors_Pal)); + LoadPalette(sFieldMoveStreaksIndoors_Pal, BG_PLTT_ID(0xF), sizeof(sFieldMoveStreaksIndoors_Pal)); task->tState++; } @@ -3082,7 +3082,7 @@ u8 FldEff_RayquazaSpotlight(void) SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT1_BG0 | BLDCNT_EFFECT_BLEND | BLDCNT_TGT2_BG1 | BLDCNT_TGT2_BG2 | BLDCNT_TGT2_BG3 | BLDCNT_TGT2_OBJ | BLDCNT_TGT2_BD); SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(14, 14)); SetGpuReg(REG_OFFSET_WININ, WININ_WIN0_BG_ALL | WININ_WIN0_OBJ | WININ_WIN0_CLR | WININ_WIN1_BG_ALL | WININ_WIN1_OBJ | WININ_WIN1_CLR); - LoadPalette(sSpotlight_Pal, 0xC0, sizeof(sSpotlight_Pal)); + LoadPalette(sSpotlight_Pal, BG_PLTT_ID(0xC), sizeof(sSpotlight_Pal)); SetGpuReg(REG_OFFSET_BG0VOFS, 120); for (i = 3; i < 15; i++) { diff --git a/src/field_region_map.c b/src/field_region_map.c index 5e14920fb..cd728aef7 100644 --- a/src/field_region_map.c +++ b/src/field_region_map.c @@ -72,7 +72,7 @@ static const struct WindowTemplate sFieldRegionMapWindowTemplates[] = .tilemapTop = 17, .width = 12, .height = 2, - .paletteNum = 15, + .paletteNum = 0xF, .baseBlock = 1 }, { @@ -81,7 +81,7 @@ static const struct WindowTemplate sFieldRegionMapWindowTemplates[] = .tilemapTop = 1, .width = 7, .height = 2, - .paletteNum = 15, + .paletteNum = 0xF, .baseBlock = 25 }, DUMMY_WIN_TEMPLATE @@ -115,7 +115,7 @@ static void MCB2_InitRegionMapRegisters(void) InitBgsFromTemplates(1, sFieldRegionMapBgTemplates, ARRAY_COUNT(sFieldRegionMapBgTemplates)); InitWindows(sFieldRegionMapWindowTemplates); DeactivateAllTextPrinters(); - LoadUserWindowBorderGfx(0, 0x27, 0xd0); + LoadUserWindowBorderGfx(0, 0x27, BG_PLTT_ID(0xD)); ClearScheduledBgCopiesToVram(); SetMainCallback2(MCB2_FieldUpdateRegionMap); SetVBlankCallback(VBCB_FieldUpdateRegionMap); diff --git a/src/field_screen_effect.c b/src/field_screen_effect.c index 948d812e8..2192aa574 100644 --- a/src/field_screen_effect.c +++ b/src/field_screen_effect.c @@ -1079,9 +1079,7 @@ static void LoadOrbEffectPalette(bool8 blueOrb) color[0] = RGB_BLUE; for (i = 0; i < 16; i++) - { - LoadPalette(color, 0xF0 + i, 2); - } + LoadPalette(color, BG_PLTT_ID(0xF) + i, PLTT_SIZEOF(1)); } static bool8 UpdateOrbEffectBlend(u16 shakeDir) diff --git a/src/field_specials.c b/src/field_specials.c index 7c226e7a3..74c4a5e7a 100644 --- a/src/field_specials.c +++ b/src/field_specials.c @@ -583,16 +583,16 @@ static void LoadLinkPartnerObjectEventSpritePalette(u8 graphicsId, u8 localEvent switch (graphicsId) { case OBJ_EVENT_GFX_LINK_RS_BRENDAN: - LoadPalette(gObjectEventPal_RubySapphireBrendan, 0x100 + (adjustedPaletteNum << 4), 0x20); + LoadPalette(gObjectEventPal_RubySapphireBrendan, OBJ_PLTT_ID(adjustedPaletteNum), PLTT_SIZE_4BPP); break; case OBJ_EVENT_GFX_LINK_RS_MAY: - LoadPalette(gObjectEventPal_RubySapphireMay, 0x100 + (adjustedPaletteNum << 4), 0x20); + LoadPalette(gObjectEventPal_RubySapphireMay, OBJ_PLTT_ID(adjustedPaletteNum), PLTT_SIZE_4BPP); break; case OBJ_EVENT_GFX_RIVAL_BRENDAN_NORMAL: - LoadPalette(gObjectEventPal_Brendan, 0x100 + (adjustedPaletteNum << 4), 0x20); + LoadPalette(gObjectEventPal_Brendan, OBJ_PLTT_ID(adjustedPaletteNum), PLTT_SIZE_4BPP); break; case OBJ_EVENT_GFX_RIVAL_MAY_NORMAL: - LoadPalette(gObjectEventPal_May, 0x100 + (adjustedPaletteNum << 4), 0x20); + LoadPalette(gObjectEventPal_May, OBJ_PLTT_ID(adjustedPaletteNum), PLTT_SIZE_4BPP); break; } } @@ -1638,7 +1638,7 @@ const struct WindowTemplate gElevatorFloor_WindowTemplate = .tilemapTop = 1, .width = 8, .height = 4, - .paletteNum = 15, + .paletteNum = 0xF, .baseBlock = 8, }; @@ -2845,7 +2845,7 @@ void ShowBattlePointsWindow(void) .tilemapTop = 1, .width = 6, .height = 2, - .paletteNum = 15, + .paletteNum = 0xF, .baseBlock = 8, }; @@ -2891,7 +2891,7 @@ void ShowFrontierExchangeCornerItemIconWindow(void) .tilemapTop = 9, .width = 4, .height = 4, - .paletteNum = 15, + .paletteNum = 0xF, .baseBlock = 20, }; @@ -3031,7 +3031,7 @@ static void ShowBattleFrontierTutorWindow(u8 menu, u16 selection) .tilemapTop = 7, .width = 12, .height = 6, - .paletteNum = 15, + .paletteNum = 0xF, .baseBlock = 28, }; @@ -3266,7 +3266,7 @@ static void Task_DeoxysRockInteraction(u8 taskId) static void ChangeDeoxysRockLevel(u8 rockLevel) { u8 objectEventId; - LoadPalette(&sDeoxysRockPalettes[rockLevel], 0x1A0, 8); + LoadPalette(&sDeoxysRockPalettes[rockLevel], OBJ_PLTT_ID(0xA), PLTT_SIZEOF(4)); TryGetObjectEventIdByLocalIdAndMap(LOCALID_BIRTH_ISLAND_EXTERIOR_ROCK, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup, &objectEventId); if (rockLevel == 0) @@ -3314,7 +3314,7 @@ void IncrementBirthIslandRockStepCount(void) void SetDeoxysRockPalette(void) { - LoadPalette(&sDeoxysRockPalettes[(u8)VarGet(VAR_DEOXYS_ROCK_LEVEL)], 0x1A0, 8); + LoadPalette(&sDeoxysRockPalettes[(u8)VarGet(VAR_DEOXYS_ROCK_LEVEL)], OBJ_PLTT_ID(0xA), PLTT_SIZEOF(4)); BlendPalettes(0x04000000, 16, 0); } diff --git a/src/field_weather.c b/src/field_weather.c index f7a7f8129..164da8343 100644 --- a/src/field_weather.c +++ b/src/field_weather.c @@ -545,7 +545,7 @@ static void ApplyGammaShiftWithBlend(u8 startPalIndex, u8 numPalettes, s8 gammaI u8 gBlend = color.g; u8 bBlend = color.b; - palOffset = startPalIndex * 16; + palOffset = BG_PLTT_ID(startPalIndex); numPalettes += startPalIndex; gammaIndex--; curPalIndex = startPalIndex; @@ -556,7 +556,7 @@ static void ApplyGammaShiftWithBlend(u8 startPalIndex, u8 numPalettes, s8 gammaI { // No gamma shift. Simply blend the colors. BlendPalette(palOffset, 16, blendCoeff, blendColor); - palOffset += 16; + palOffset += 0x10; } else { @@ -601,14 +601,14 @@ static void ApplyDroughtGammaShiftWithBlend(s8 gammaIndex, u8 blendCoeff, u16 bl rBlend = color.r; gBlend = color.g; bBlend = color.b; - palOffset = 0; + palOffset = 0x00; for (curPalIndex = 0; curPalIndex < 32; curPalIndex++) { if (sPaletteGammaTypes[curPalIndex] == GAMMA_NONE) { // No gamma shift. Simply blend the colors. BlendPalette(palOffset, 16, blendCoeff, blendColor); - palOffset += 16; + palOffset += 0x10; } else { @@ -649,7 +649,7 @@ static void ApplyFogBlend(u8 blendCoeff, u16 blendColor) u8 bBlend; u16 curPalIndex; - BlendPalette(0, 256, blendCoeff, blendColor); + BlendPalette(BG_PLTT_ID(0x0), 16 * 16, blendCoeff, blendColor); color = *(struct RGBColor *)&blendColor; rBlend = color.r; gBlend = color.g; @@ -683,7 +683,7 @@ static void ApplyFogBlend(u8 blendCoeff, u16 blendColor) } else { - BlendPalette(curPalIndex * 16, 16, blendCoeff, blendColor); + BlendPalette(PLTT_ID(curPalIndex), 16, blendCoeff, blendColor); } } } @@ -823,8 +823,8 @@ void UpdateSpritePaletteWithWeather(u8 spritePaletteIndex) } break; case WEATHER_PAL_STATE_SCREEN_FADING_OUT: - paletteIndex *= 16; - CpuFastCopy(gPlttBufferFaded + paletteIndex, gPlttBufferUnfaded + paletteIndex, 32); + paletteIndex = PLTT_ID(paletteIndex); + CpuFastCopy(gPlttBufferFaded + paletteIndex, gPlttBufferUnfaded + paletteIndex, PLTT_SIZE_4BPP); BlendPalette(paletteIndex, 16, gPaletteFade.y, gPaletteFade.blendColor); break; // WEATHER_PAL_STATE_CHANGING_WEATHER @@ -836,7 +836,7 @@ void UpdateSpritePaletteWithWeather(u8 spritePaletteIndex) } else { - paletteIndex *= 16; + paletteIndex = PLTT_ID(paletteIndex); BlendPalette(paletteIndex, 16, 12, RGB(28, 31, 28)); } break; @@ -859,7 +859,7 @@ static bool8 IsFirstFrameOfWeatherFadeIn(void) void LoadCustomWeatherSpritePalette(const u16 *palette) { - LoadPalette(palette, 0x100 + gWeatherPtr->weatherPicSpritePalIndex * 16, 32); + LoadPalette(palette, OBJ_PLTT_ID(gWeatherPtr->weatherPicSpritePalIndex), PLTT_SIZE_4BPP); UpdateSpritePaletteWithWeather(gWeatherPtr->weatherPicSpritePalIndex); } diff --git a/src/fieldmap.c b/src/fieldmap.c index 2b981dc6e..479150d48 100644 --- a/src/fieldmap.c +++ b/src/fieldmap.c @@ -878,13 +878,13 @@ void LoadTilesetPalette(struct Tileset const *tileset, u16 destOffset, u16 size) { if (tileset->isSecondary == FALSE) { - LoadPalette(&black, destOffset, 2); - LoadPalette(((u16 *)tileset->palettes) + 1, destOffset + 1, size - 2); - FieldmapPaletteDummy(destOffset + 1, (size - 2) >> 1); + LoadPalette(&black, destOffset, PLTT_SIZEOF(1)); + LoadPalette(((u16 *)tileset->palettes) + 1, destOffset + 1, size - PLTT_SIZEOF(1)); + FieldmapPaletteDummy(destOffset + 1, (size - PLTT_SIZEOF(1)) >> 1); } else if (tileset->isSecondary == TRUE) { - LoadPalette(((u16 *)tileset->palettes) + (NUM_PALS_IN_PRIMARY * 16), destOffset, size); + LoadPalette(((u16 *)tileset->palettes) + BG_PLTT_ID(NUM_PALS_IN_PRIMARY), destOffset, size); FieldmapPaletteDummy(destOffset, size >> 1); } else @@ -912,12 +912,12 @@ void CopySecondaryTilesetToVramUsingHeap(struct MapLayout const *mapLayout) static void LoadPrimaryTilesetPalette(struct MapLayout const *mapLayout) { - LoadTilesetPalette(mapLayout->primaryTileset, 0, NUM_PALS_IN_PRIMARY * 16 * 2); + LoadTilesetPalette(mapLayout->primaryTileset, BG_PLTT_ID(0x0), NUM_PALS_IN_PRIMARY * PLTT_SIZE_4BPP); } void LoadSecondaryTilesetPalette(struct MapLayout const *mapLayout) { - LoadTilesetPalette(mapLayout->secondaryTileset, NUM_PALS_IN_PRIMARY * 16, (NUM_PALS_TOTAL - NUM_PALS_IN_PRIMARY) * 16 * 2); + LoadTilesetPalette(mapLayout->secondaryTileset, BG_PLTT_ID(NUM_PALS_IN_PRIMARY), (NUM_PALS_TOTAL - NUM_PALS_IN_PRIMARY) * PLTT_SIZE_4BPP); } void CopyMapTilesetsToVram(struct MapLayout const *mapLayout) diff --git a/src/fldeff_flash.c b/src/fldeff_flash.c index abdca2a88..3790636ea 100644 --- a/src/fldeff_flash.c +++ b/src/fldeff_flash.c @@ -218,8 +218,8 @@ static void Task_ExitCaveTransition2(u8 taskId) SetGpuReg(REG_OFFSET_DISPCNT, 0); LZ77UnCompVram(sCaveTransitionTiles, (void *)(VRAM + 0xC000)); LZ77UnCompVram(sCaveTransitionTilemap, (void *)(VRAM + 0xF800)); - LoadPalette(sCaveTransitionPalette_White, 0xE0, 0x20); - LoadPalette(sCaveTransitionPalette_Exit, 0xE0, 0x10); + LoadPalette(sCaveTransitionPalette_White, BG_PLTT_ID(0xE), PLTT_SIZE_4BPP); + LoadPalette(sCaveTransitionPalette_Exit, BG_PLTT_ID(0xE), 0x10); SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT1_BG0 | BLDCNT_EFFECT_BLEND | BLDCNT_TGT2_BG1 @@ -270,11 +270,11 @@ static void Task_ExitCaveTransition4(u8 taskId) if (count < 8) { gTasks[taskId].data[2]++; - LoadPalette(&sCaveTransitionPalette_Exit[count], 0xE0, 16 - 2 * count); + LoadPalette(&sCaveTransitionPalette_Exit[count], BG_PLTT_ID(0xE), PLTT_SIZEOF(8) - PLTT_SIZEOF(count)); } else { - LoadPalette(sCaveTransitionPalette_White, 0, 0x20); + LoadPalette(sCaveTransitionPalette_White, BG_PLTT_ID(0x0), PLTT_SIZE_4BPP); gTasks[taskId].func = Task_ExitCaveTransition5; gTasks[taskId].data[2] = 8; } @@ -315,8 +315,8 @@ static void Task_EnterCaveTransition2(u8 taskId) | DISPCNT_OBJ_1D_MAP | DISPCNT_BG0_ON | DISPCNT_OBJ_ON); - LoadPalette(sCaveTransitionPalette_White, 0xE0, 0x20); - LoadPalette(sCaveTransitionPalette_Black, 0, 0x20); + LoadPalette(sCaveTransitionPalette_White, BG_PLTT_ID(0xE), PLTT_SIZE_4BPP); + LoadPalette(sCaveTransitionPalette_Black, BG_PLTT_ID(0x0), PLTT_SIZE_4BPP); gTasks[taskId].func = Task_EnterCaveTransition3; gTasks[taskId].data[0] = 16; gTasks[taskId].data[1] = 0; @@ -331,7 +331,7 @@ static void Task_EnterCaveTransition3(u8 taskId) { gTasks[taskId].data[2]++; gTasks[taskId].data[2]++; - LoadPalette(&sCaveTransitionPalette_Enter[15 - count], 0xE0, 2 * (count + 1)); + LoadPalette(&sCaveTransitionPalette_Enter[15 - count], BG_PLTT_ID(0xE), PLTT_SIZEOF(count + 1)); } else { @@ -359,7 +359,7 @@ static void Task_EnterCaveTransition4(u8 taskId) } else { - LoadPalette(sCaveTransitionPalette_Black, 0, 0x20); + LoadPalette(sCaveTransitionPalette_Black, BG_PLTT_ID(0x0), PLTT_SIZE_4BPP); SetMainCallback2(gMain.savedCallback); } } diff --git a/src/frontier_pass.c b/src/frontier_pass.c index b14358741..48d4a5fce 100644 --- a/src/frontier_pass.c +++ b/src/frontier_pass.c @@ -253,7 +253,7 @@ static const struct WindowTemplate sPassWindowTemplates[WINDOW_COUNT] = .tilemapTop = 3, .width = 12, .height = 3, - .paletteNum = 15, + .paletteNum = 0xF, .baseBlock = 0x1, }, [WINDOW_BATTLE_RECORD] = { @@ -262,7 +262,7 @@ static const struct WindowTemplate sPassWindowTemplates[WINDOW_COUNT] = .tilemapTop = 10, .width = 12, .height = 3, - .paletteNum = 15, + .paletteNum = 0xF, .baseBlock = 0x26, }, [WINDOW_BATTLE_POINTS] = { @@ -271,7 +271,7 @@ static const struct WindowTemplate sPassWindowTemplates[WINDOW_COUNT] = .tilemapTop = 13, .width = 12, .height = 4, - .paletteNum = 15, + .paletteNum = 0xF, .baseBlock = 0x4B, }, [WINDOW_DESCRIPTION] = { @@ -280,7 +280,7 @@ static const struct WindowTemplate sPassWindowTemplates[WINDOW_COUNT] = .tilemapTop = 18, .width = 30, .height = 3, - .paletteNum = 15, + .paletteNum = 0xF, .baseBlock = 0x7C, }, DUMMY_WIN_TEMPLATE @@ -294,7 +294,7 @@ static const struct WindowTemplate sMapWindowTemplates[] = .tilemapTop = 1, .width = 15, .height = 5, - .paletteNum = 15, + .paletteNum = 0xF, .baseBlock = 0x1, }, [MAP_WINDOW_NAME] = { @@ -303,7 +303,7 @@ static const struct WindowTemplate sMapWindowTemplates[] = .tilemapTop = 1, .width = 10, .height = 14, - .paletteNum = 15, + .paletteNum = 0xF, .baseBlock = 0x4D, }, [MAP_WINDOW_DESCRIPTION] = { @@ -312,7 +312,7 @@ static const struct WindowTemplate sMapWindowTemplates[] = .tilemapTop = 16, .width = 26, .height = 4, - .paletteNum = 15, + .paletteNum = 0xF, .baseBlock = 0xDA, }, DUMMY_WIN_TEMPLATE @@ -768,9 +768,9 @@ static bool32 InitFrontierPass(void) CopyBgTilemapBufferToVram(2); break; case 8: - LoadPalette(gFrontierPassBg_Pal[0], 0, 0x1A0); - LoadPalette(gFrontierPassBg_Pal[1 + sPassData->trainerStars], 0x10, 0x20); - LoadPalette(GetTextWindowPalette(0), 0xF0, 0x20); + LoadPalette(gFrontierPassBg_Pal[0], 0, 13 * PLTT_SIZE_4BPP); + LoadPalette(gFrontierPassBg_Pal[1 + sPassData->trainerStars], BG_PLTT_ID(0x1), PLTT_SIZE_4BPP); + LoadPalette(GetTextWindowPalette(0), BG_PLTT_ID(0xF), PLTT_SIZE_4BPP); DrawFrontierPassBg(); UpdateAreaHighlight(sPassData->cursorArea, sPassData->previousCursorArea); if (sPassData->areaToShow == CURSOR_AREA_MAP || sPassData->areaToShow == CURSOR_AREA_CARD) @@ -1412,8 +1412,8 @@ static bool32 InitFrontierMap(void) case 5: if (FreeTempTileDataBuffersIfPossible()) return FALSE; - LoadPalette(gFrontierPassBg_Pal[0], 0, 0x1A0); - LoadPalette(GetTextWindowPalette(0), 0xF0, 0x20); + LoadPalette(gFrontierPassBg_Pal[0], BG_PLTT_ID(0x0), 13 * PLTT_SIZE_4BPP); + LoadPalette(GetTextWindowPalette(0), BG_PLTT_ID(0xF), PLTT_SIZE_4BPP); CopyToBgTilemapBuffer(2, sMapScreen_Tilemap, 0, 0); CopyBgTilemapBufferToVram(2); break; diff --git a/src/frontier_util.c b/src/frontier_util.c index f5dde452f..9f8c03023 100644 --- a/src/frontier_util.c +++ b/src/frontier_util.c @@ -638,7 +638,7 @@ static const struct WindowTemplate sFrontierResultsWindowTemplate = .tilemapTop = 1, .width = 28, .height = 18, - .paletteNum = 15, + .paletteNum = 0xF, .baseBlock = 1 }; @@ -649,7 +649,7 @@ static const struct WindowTemplate sLinkContestResultsWindowTemplate = .tilemapTop = 2, .width = 26, .height = 15, - .paletteNum = 15, + .paletteNum = 0xF, .baseBlock = 1 }; @@ -660,7 +660,7 @@ static const struct WindowTemplate sRankingHallRecordsWindowTemplate = .tilemapTop = 1, .width = 26, .height = 17, - .paletteNum = 15, + .paletteNum = 0xF, .baseBlock = 1 }; diff --git a/src/hall_of_fame.c b/src/hall_of_fame.c index 8be5372e9..07bbf9bb8 100644 --- a/src/hall_of_fame.c +++ b/src/hall_of_fame.c @@ -140,7 +140,7 @@ static const struct WindowTemplate sHof_WindowTemplate = { .tilemapTop = 2, .width = 14, .height = 6, - .paletteNum = 14, + .paletteNum = 0xE, .baseBlock = 1 }; @@ -702,8 +702,8 @@ static void Task_Hof_DisplayPlayer(u8 taskId) ShowBg(3); gTasks[taskId].tPlayerSpriteID = CreateTrainerPicSprite(PlayerGenderToFrontTrainerPicId_Debug(gSaveBlock2Ptr->playerGender, TRUE), TRUE, 120, 72, 6, TAG_NONE); AddWindow(&sHof_WindowTemplate); - LoadWindowGfx(1, gSaveBlock2Ptr->optionsWindowFrameType, 0x21D, 0xD0); - LoadPalette(GetTextWindowPalette(1), 0xE0, 0x20); + LoadWindowGfx(1, gSaveBlock2Ptr->optionsWindowFrameType, 0x21D, BG_PLTT_ID(0xD)); + LoadPalette(GetTextWindowPalette(1), BG_PLTT_ID(0xE), PLTT_SIZE_4BPP); gTasks[taskId].tFrameCount = 120; gTasks[taskId].func = Task_Hof_WaitAndPrintPlayerInfo; } @@ -1269,7 +1269,7 @@ static void ClearVramOamPltt_LoadHofPal(void) DmaFill16(3, 0, plttOffset, plttSize); ResetPaletteFade(); - LoadPalette(sHallOfFame_Pal, 0, 0x20); + LoadPalette(sHallOfFame_Pal, BG_PLTT_ID(0x0), PLTT_SIZE_4BPP); } static void LoadHofGfx(void) diff --git a/src/intro.c b/src/intro.c index 7e9a75169..06c5adba5 100644 --- a/src/intro.c +++ b/src/intro.c @@ -1051,11 +1051,11 @@ static void MainCB2_EndIntro(void) SetMainCallback2(CB2_InitTitleScreen); } -static void LoadCopyrightGraphics(u16 tilesetAddress, u16 tilemapAddress, u16 paletteAddress) +static void LoadCopyrightGraphics(u16 tilesetAddress, u16 tilemapAddress, u16 paletteOffset) { LZ77UnCompVram(gIntroCopyright_Gfx, (void *)(VRAM + tilesetAddress)); LZ77UnCompVram(gIntroCopyright_Tilemap, (void *)(VRAM + tilemapAddress)); - LoadPalette(gIntroCopyright_Pal, paletteAddress, 32); + LoadPalette(gIntroCopyright_Pal, paletteOffset, PLTT_SIZE_4BPP); } static void SerialCB_CopyrightScreen(void) @@ -1080,7 +1080,7 @@ static u8 SetUpCopyrightScreen(void) CpuFill32(0, (void *)OAM, OAM_SIZE); CpuFill16(0, (void *)(PLTT + 2), PLTT_SIZE - 2); ResetPaletteFade(); - LoadCopyrightGraphics(0, 0x3800, 0); + LoadCopyrightGraphics(0, 0x3800, BG_PLTT_ID(0x0)); ScanlineEffect_Stop(); ResetTasks(); ResetSpriteData(); @@ -1178,7 +1178,7 @@ static void Task_Scene1_Load(u8 taskId) DmaClear16(3, BG_SCREEN_ADDR(21), BG_SCREEN_SIZE); LZ77UnCompVram(sIntro1Bg3_Tilemap, (void *)(BG_SCREEN_ADDR(22))); DmaClear16(3, BG_SCREEN_ADDR(23), BG_SCREEN_SIZE); - LoadPalette(sIntro1Bg_Pal, 0, sizeof(sIntro1Bg_Pal)); + LoadPalette(sIntro1Bg_Pal, BG_PLTT_ID(0x0), sizeof(sIntro1Bg_Pal)); SetGpuReg(REG_OFFSET_BG3CNT, BGCNT_PRIORITY(3) | BGCNT_CHARBASE(0) | BGCNT_SCREENBASE(22) | BGCNT_16COLOR | BGCNT_TXT256x512); SetGpuReg(REG_OFFSET_BG2CNT, BGCNT_PRIORITY(2) | BGCNT_CHARBASE(0) | BGCNT_SCREENBASE(20) | BGCNT_16COLOR | BGCNT_TXT256x512); SetGpuReg(REG_OFFSET_BG1CNT, BGCNT_PRIORITY(1) | BGCNT_CHARBASE(0) | BGCNT_SCREENBASE(18) | BGCNT_16COLOR | BGCNT_TXT256x512); @@ -1717,7 +1717,7 @@ static void Task_Scene3_Load(u8 taskId) IntroResetGpuRegs(); LZ77UnCompVram(sIntroPokeball_Gfx, (void *)VRAM); LZ77UnCompVram(sIntroPokeball_Tilemap, (void *)(BG_CHAR_ADDR(1))); - LoadPalette(sIntroPokeball_Pal, 0, sizeof(sIntroPokeball_Pal)); + LoadPalette(sIntroPokeball_Pal, BG_PLTT_ID(0x0), sizeof(sIntroPokeball_Pal)); gTasks[taskId].tAlpha = 0; gTasks[taskId].tZoomDiv = 0; gTasks[taskId].tZoomDivSpeed = 0; @@ -2663,10 +2663,10 @@ static void Task_RayquazaAttack(u8 taskId) { if (--data[3] != 0) { - BlendPalette(0x50, 16, data[3], RGB(9, 10, 10)); - CpuCopy16(&gIntro3Bg_Pal[0x1AC], &gPlttBufferFaded[94], 2); - CpuCopy16(&gIntro3Bg_Pal[0x1AC], &gPlttBufferFaded[88], 2); - CpuCopy16(&gIntro3Bg_Pal[0x18C], &gPlttBufferFaded[92], 2); + BlendPalette(BG_PLTT_ID(0x5), 16, data[3], RGB(9, 10, 10)); + CpuCopy16(&gIntro3Bg_Pal[0x1AC], &gPlttBufferFaded[BG_PLTT_ID(0x5) + 14], PLTT_SIZEOF(1)); + CpuCopy16(&gIntro3Bg_Pal[0x1AC], &gPlttBufferFaded[BG_PLTT_ID(0x5) + 8], PLTT_SIZEOF(1)); + CpuCopy16(&gIntro3Bg_Pal[0x18C], &gPlttBufferFaded[BG_PLTT_ID(0x5) + 12], PLTT_SIZEOF(1)); } else { diff --git a/src/intro_credits_graphics.c b/src/intro_credits_graphics.c index cf193018a..2851f8638 100644 --- a/src/intro_credits_graphics.c +++ b/src/intro_credits_graphics.c @@ -730,7 +730,7 @@ void LoadIntroPart2Graphics(u8 scenery) { LZ77UnCompVram(sGrass_Gfx, (void *)(BG_CHAR_ADDR(1))); LZ77UnCompVram(sGrass_Tilemap, (void *)(BG_SCREEN_ADDR(15))); - LoadPalette(&sGrass_Pal, 240, sizeof(sGrass_Pal)); + LoadPalette(&sGrass_Pal, BG_PLTT_ID(0xF), sizeof(sGrass_Pal)); switch (scenery) { case 0: @@ -739,17 +739,17 @@ void LoadIntroPart2Graphics(u8 scenery) // Clouds are never used in this part of the intro LZ77UnCompVram(sCloudsBg_Gfx, (void *)(VRAM)); LZ77UnCompVram(sCloudsBg_Tilemap, (void *)(BG_SCREEN_ADDR(6))); - LoadPalette(&sCloudsBg_Pal, 0, sizeof(sCloudsBg_Pal)); + LoadPalette(&sCloudsBg_Pal, BG_PLTT_ID(0x0), sizeof(sCloudsBg_Pal)); LoadCompressedSpriteSheet(sSpriteSheet_Clouds); - LoadPalette(&sClouds_Pal, 256, sizeof(sClouds_Pal)); + LoadPalette(&sClouds_Pal, OBJ_PLTT_ID(0x0), sizeof(sClouds_Pal)); CreateCloudSprites(); break; case 1: LZ77UnCompVram(sTrees_Gfx, (void *)(VRAM)); LZ77UnCompVram(sTrees_Tilemap, (void *)(BG_SCREEN_ADDR(6))); - LoadPalette(&sTrees_Pal, 0, sizeof(sTrees_Pal)); + LoadPalette(&sTrees_Pal, BG_PLTT_ID(0x0), sizeof(sTrees_Pal)); LoadCompressedSpriteSheet(sSpriteSheet_TreesSmall); - LoadPalette(&sTreesSmall_Pal, 256, sizeof(sTreesSmall_Pal)); + LoadPalette(&sTreesSmall_Pal, OBJ_PLTT_ID(0x0), sizeof(sTreesSmall_Pal)); CreateTreeSprites(); break; } @@ -843,42 +843,42 @@ void LoadCreditsSceneGraphics(u8 scene) { case SCENE_OCEAN_MORNING: default: - LoadPalette(&sGrass_Pal, 240, sizeof(sGrass_Pal)); + LoadPalette(&sGrass_Pal, BG_PLTT_ID(0xF), sizeof(sGrass_Pal)); LZ77UnCompVram(sCloudsBg_Gfx, (void *)(VRAM)); LZ77UnCompVram(sCloudsBg_Tilemap, (void *)(BG_SCREEN_ADDR(6))); - LoadPalette(&sCloudsBg_Pal, 0, sizeof(sCloudsBg_Pal)); + LoadPalette(&sCloudsBg_Pal, BG_PLTT_ID(0x0), sizeof(sCloudsBg_Pal)); LoadCompressedSpriteSheet(sSpriteSheet_Clouds); LZ77UnCompVram(sClouds_Gfx, (void *)(OBJ_VRAM0)); - LoadPalette(&sClouds_Pal, 256, sizeof(sClouds_Pal)); + LoadPalette(&sClouds_Pal, OBJ_PLTT_ID(0x0), sizeof(sClouds_Pal)); CreateCloudSprites(); break; case SCENE_OCEAN_SUNSET: - LoadPalette(&sGrassSunset_Pal, 240, sizeof(sGrassSunset_Pal)); + LoadPalette(&sGrassSunset_Pal, BG_PLTT_ID(0xF), sizeof(sGrassSunset_Pal)); LZ77UnCompVram(sCloudsBg_Gfx, (void *)(VRAM)); LZ77UnCompVram(sCloudsBg_Tilemap, (void *)(BG_SCREEN_ADDR(6))); - LoadPalette(&sCloudsBgSunset_Pal, 0, sizeof(sCloudsBgSunset_Pal)); + LoadPalette(&sCloudsBgSunset_Pal, BG_PLTT_ID(0x0), sizeof(sCloudsBgSunset_Pal)); LoadCompressedSpriteSheet(sSpriteSheet_Clouds); LZ77UnCompVram(sClouds_Gfx, (void *)(OBJ_VRAM0)); - LoadPalette(&sCloudsSunset_Pal, 256, sizeof(sCloudsSunset_Pal)); + LoadPalette(&sCloudsSunset_Pal, OBJ_PLTT_ID(0x0), sizeof(sCloudsSunset_Pal)); CreateCloudSprites(); break; case SCENE_FOREST_RIVAL_ARRIVE: case SCENE_FOREST_CATCH_RIVAL: - LoadPalette(&sGrassSunset_Pal, 240, sizeof(sGrassSunset_Pal)); + LoadPalette(&sGrassSunset_Pal, BG_PLTT_ID(0xF), sizeof(sGrassSunset_Pal)); LZ77UnCompVram(sTrees_Gfx, (void *)(VRAM)); LZ77UnCompVram(sTrees_Tilemap, (void *)(BG_SCREEN_ADDR(6))); - LoadPalette(&sTreesSunset_Pal, 0, sizeof(sTreesSunset_Pal)); + LoadPalette(&sTreesSunset_Pal, BG_PLTT_ID(0x0), sizeof(sTreesSunset_Pal)); LoadCompressedSpriteSheet(sSpriteSheet_TreesSmall); - LoadPalette(&sTreesSunset_Pal, 256, sizeof(sTreesSunset_Pal)); + LoadPalette(&sTreesSunset_Pal, OBJ_PLTT_ID(0x0), sizeof(sTreesSunset_Pal)); CreateTreeSprites(); break; case SCENE_CITY_NIGHT: - LoadPalette(&sGrassNight_Pal, 240, sizeof(sGrassNight_Pal)); + LoadPalette(&sGrassNight_Pal, BG_PLTT_ID(0xF), sizeof(sGrassNight_Pal)); LZ77UnCompVram(sHouses_Gfx, (void *)(VRAM)); LZ77UnCompVram(sHouses_Tilemap, (void *)(BG_SCREEN_ADDR(6))); - LoadPalette(&sHouses_Pal, 0, sizeof(sHouses_Pal)); + LoadPalette(&sHouses_Pal, BG_PLTT_ID(0x0), sizeof(sHouses_Pal)); LoadCompressedSpriteSheet(sSpriteSheet_HouseSilhouette); - LoadPalette(&sHouseSilhouette_Pal, 256, sizeof(sHouseSilhouette_Pal)); + LoadPalette(&sHouseSilhouette_Pal, OBJ_PLTT_ID(0x0), sizeof(sHouseSilhouette_Pal)); CreateHouseSprites(); break; } @@ -1006,8 +1006,8 @@ void CycleSceneryPalette(u8 mode) x = gPlttBufferUnfaded[10]; y = gPlttBufferUnfaded[9]; } - LoadPalette(&x, 9, sizeof(x)); - LoadPalette(&y, 10, sizeof(y)); + LoadPalette(&x, BG_PLTT_ID(0x0) + 9, sizeof(x)); + LoadPalette(&y, BG_PLTT_ID(0x0) + 10, sizeof(y)); break; case 2: if (gMain.vblankCounter1 & 3 || gPaletteFade.active) @@ -1022,8 +1022,8 @@ void CycleSceneryPalette(u8 mode) x = RGB(28, 24, 0); y = RGB(7, 9, 15); } - LoadPalette(&x, 12, sizeof(x)); - LoadPalette(&y, 13, sizeof(y)); + LoadPalette(&x, BG_PLTT_ID(0x0) + 12, sizeof(x)); + LoadPalette(&y, BG_PLTT_ID(0x0) + 13, sizeof(y)); break; case 1: break; diff --git a/src/item_menu.c b/src/item_menu.c index 288c2d956..33b204291 100755 --- a/src/item_menu.c +++ b/src/item_menu.c @@ -399,7 +399,7 @@ static const struct WindowTemplate sDefaultBagWindows[] = .tilemapTop = 2, .width = 15, .height = 16, - .paletteNum = 1, + .paletteNum = 0x1, .baseBlock = 0x27, }, [WIN_DESCRIPTION] = { @@ -408,7 +408,7 @@ static const struct WindowTemplate sDefaultBagWindows[] = .tilemapTop = 13, .width = 14, .height = 6, - .paletteNum = 1, + .paletteNum = 0x1, .baseBlock = 0x117, }, [WIN_POCKET_NAME] = { @@ -417,7 +417,7 @@ static const struct WindowTemplate sDefaultBagWindows[] = .tilemapTop = 1, .width = 8, .height = 2, - .paletteNum = 1, + .paletteNum = 0x1, .baseBlock = 0x1A1, }, [WIN_TMHM_INFO_ICONS] = { @@ -426,7 +426,7 @@ static const struct WindowTemplate sDefaultBagWindows[] = .tilemapTop = 13, .width = 5, .height = 6, - .paletteNum = 12, + .paletteNum = 0xC, .baseBlock = 0x16B, }, [WIN_TMHM_INFO] = { @@ -435,7 +435,7 @@ static const struct WindowTemplate sDefaultBagWindows[] = .tilemapTop = 13, .width = 4, .height = 6, - .paletteNum = 12, + .paletteNum = 0xC, .baseBlock = 0x189, }, [WIN_MESSAGE] = { @@ -444,7 +444,7 @@ static const struct WindowTemplate sDefaultBagWindows[] = .tilemapTop = 15, .width = 27, .height = 4, - .paletteNum = 15, + .paletteNum = 0xF, .baseBlock = 0x1B1, }, DUMMY_WIN_TEMPLATE, @@ -458,7 +458,7 @@ static const struct WindowTemplate sContextMenuWindowTemplates[] = .tilemapTop = 17, .width = 7, .height = 2, - .paletteNum = 15, + .paletteNum = 0xF, .baseBlock = 0x21D, }, [ITEMWIN_1x2] = { @@ -467,7 +467,7 @@ static const struct WindowTemplate sContextMenuWindowTemplates[] = .tilemapTop = 15, .width = 7, .height = 4, - .paletteNum = 15, + .paletteNum = 0xF, .baseBlock = 0x21D, }, [ITEMWIN_2x2] = { @@ -476,7 +476,7 @@ static const struct WindowTemplate sContextMenuWindowTemplates[] = .tilemapTop = 15, .width = 14, .height = 4, - .paletteNum = 15, + .paletteNum = 0xF, .baseBlock = 0x21D, }, [ITEMWIN_2x3] = { @@ -485,7 +485,7 @@ static const struct WindowTemplate sContextMenuWindowTemplates[] = .tilemapTop = 13, .width = 14, .height = 6, - .paletteNum = 15, + .paletteNum = 0xF, .baseBlock = 0x21D, }, [ITEMWIN_MESSAGE] = { @@ -494,7 +494,7 @@ static const struct WindowTemplate sContextMenuWindowTemplates[] = .tilemapTop = 15, .width = 27, .height = 4, - .paletteNum = 15, + .paletteNum = 0xF, .baseBlock = 0x1B1, }, [ITEMWIN_YESNO_LOW] = { // Yes/No tucked in corner, for toss confirm @@ -503,7 +503,7 @@ static const struct WindowTemplate sContextMenuWindowTemplates[] = .tilemapTop = 15, .width = 5, .height = 4, - .paletteNum = 15, + .paletteNum = 0xF, .baseBlock = 0x21D, }, [ITEMWIN_YESNO_HIGH] = { // Yes/No higher up, positioned above a lower message box @@ -512,7 +512,7 @@ static const struct WindowTemplate sContextMenuWindowTemplates[] = .tilemapTop = 9, .width = 5, .height = 4, - .paletteNum = 15, + .paletteNum = 0xF, .baseBlock = 0x21D, }, [ITEMWIN_QUANTITY] = { // Used for quantity of items to Toss/Deposit @@ -521,7 +521,7 @@ static const struct WindowTemplate sContextMenuWindowTemplates[] = .tilemapTop = 17, .width = 5, .height = 2, - .paletteNum = 15, + .paletteNum = 0xF, .baseBlock = 0x21D, }, [ITEMWIN_QUANTITY_WIDE] = { // Used for quantity and price of items to Sell @@ -530,7 +530,7 @@ static const struct WindowTemplate sContextMenuWindowTemplates[] = .tilemapTop = 11, .width = 10, .height = 2, - .paletteNum = 15, + .paletteNum = 0xF, .baseBlock = 0x245, }, [ITEMWIN_MONEY] = { @@ -539,7 +539,7 @@ static const struct WindowTemplate sContextMenuWindowTemplates[] = .tilemapTop = 1, .width = 10, .height = 2, - .paletteNum = 15, + .paletteNum = 0xF, .baseBlock = 0x231, }, }; @@ -818,9 +818,9 @@ static bool8 LoadBagMenu_Graphics(void) break; case 2: if (!IsWallysBag() && gSaveBlock2Ptr->playerGender != MALE) - LoadCompressedPalette(gBagScreenFemale_Pal, 0, 0x40); + LoadCompressedPalette(gBagScreenFemale_Pal, BG_PLTT_ID(0x0), 2 * PLTT_SIZE_4BPP); else - LoadCompressedPalette(gBagScreenMale_Pal, 0, 0x40); + LoadCompressedPalette(gBagScreenMale_Pal, BG_PLTT_ID(0x0), 2 * PLTT_SIZE_4BPP); gBagMenu->graphicsLoadState++; break; case 3: @@ -2448,10 +2448,10 @@ static void LoadBagMenuTextWindows(void) InitWindows(sDefaultBagWindows); DeactivateAllTextPrinters(); - LoadUserWindowBorderGfx(0, 1, 0xE0); - LoadMessageBoxGfx(0, 10, 0xD0); - ListMenuLoadStdPalAt(0xC0, 1); - LoadPalette(&gStandardMenuPalette, 0xF0, 0x20); + LoadUserWindowBorderGfx(0, 1, BG_PLTT_ID(0xE)); + LoadMessageBoxGfx(0, 10, BG_PLTT_ID(0xD)); + ListMenuLoadStdPalAt(BG_PLTT_ID(0xC), 1); + LoadPalette(&gStandardMenuPalette, BG_PLTT_ID(0xF), PLTT_SIZE_4BPP); for (i = 0; i <= WIN_POCKET_NAME; i++) { FillWindowPixelBuffer(i, PIXEL_FILL(0)); diff --git a/src/link.c b/src/link.c index 57e33c811..a78849ddb 100644 --- a/src/link.c +++ b/src/link.c @@ -200,7 +200,7 @@ static const struct WindowTemplate sLinkErrorWindowTemplates[] = { .tilemapTop = 0, .width = 30, .height = 5, - .paletteNum = 15, + .paletteNum = 0xF, .baseBlock = 0x002 }, { .bg = 0, @@ -208,7 +208,7 @@ static const struct WindowTemplate sLinkErrorWindowTemplates[] = { .tilemapTop = 6, .width = 30, .height = 7, - .paletteNum = 15, + .paletteNum = 0xF, .baseBlock = 0x098 }, { .bg = 0, @@ -216,7 +216,7 @@ static const struct WindowTemplate sLinkErrorWindowTemplates[] = { .tilemapTop = 13, .width = 30, .height = 7, - .paletteNum = 15, + .paletteNum = 0xF, .baseBlock = 0x16A }, DUMMY_WIN_TEMPLATE }; @@ -247,7 +247,7 @@ void Task_DestroySelf(u8 taskId) static void InitLinkTestBG(u8 paletteNum, u8 bgNum, u8 screenBaseBlock, u8 charBaseBlock, u16 baseChar) { - LoadPalette(sLinkTestDigitsPal, paletteNum * 16, 0x20); + LoadPalette(sLinkTestDigitsPal, BG_PLTT_ID(paletteNum), PLTT_SIZE_4BPP); DmaCopy16(3, sLinkTestDigitsGfx, (u16 *)BG_CHAR_ADDR(charBaseBlock) + (16 * baseChar), sizeof sLinkTestDigitsGfx); gLinkTestBGInfo.screenBaseBlock = screenBaseBlock; gLinkTestBGInfo.paletteNum = paletteNum; @@ -271,7 +271,7 @@ static void InitLinkTestBG(u8 paletteNum, u8 bgNum, u8 screenBaseBlock, u8 charB // Unused static void LoadLinkTestBgGfx(u8 paletteNum, u8 bgNum, u8 screenBaseBlock, u8 charBaseBlock) { - LoadPalette(sLinkTestDigitsPal, paletteNum * 16, 0x20); + LoadPalette(sLinkTestDigitsPal, BG_PLTT_ID(paletteNum), PLTT_SIZE_4BPP); DmaCopy16(3, sLinkTestDigitsGfx, (u16 *)BG_CHAR_ADDR(charBaseBlock), sizeof sLinkTestDigitsGfx); gLinkTestBGInfo.screenBaseBlock = screenBaseBlock; gLinkTestBGInfo.paletteNum = paletteNum; @@ -1595,7 +1595,7 @@ void CB2_LinkError(void) ResetSpriteData(); FreeAllSpritePalettes(); ResetPaletteFadeControl(); - FillPalette(RGB_BLACK, 0, 2); + SetBackdropFromColor(RGB_BLACK); ResetTasks(); ScanlineEffect_Stop(); if (gWirelessCommType) @@ -1621,7 +1621,7 @@ void CB2_LinkError(void) SetGpuReg(REG_OFFSET_BG1HOFS, 0); SetGpuReg(REG_OFFSET_BG1VOFS, 0); ClearGpuRegBits(REG_OFFSET_DISPCNT, DISPCNT_WIN0_ON | DISPCNT_WIN1_ON | DISPCNT_OBJWIN_ON); - LoadPalette(gStandardMenuPalette, 0xf0, 0x20); + LoadPalette(gStandardMenuPalette, BG_PLTT_ID(0xF), PLTT_SIZE_4BPP); gSoftResetDisabled = FALSE; CreateTask(Task_DestroySelf, 0); StopMapMusic(); diff --git a/src/list_menu.c b/src/list_menu.c index 64692ce1f..55ddf436e 100644 --- a/src/list_menu.c +++ b/src/list_menu.c @@ -1078,7 +1078,7 @@ u8 AddScrollIndicatorArrowPair(const struct ScrollArrowsTemplate *arrowInfo, u16 if (arrowInfo->palTag == TAG_NONE) { - LoadPalette(sRedArrowPal, (16 * arrowInfo->palNum) + 0x100, 0x20); + LoadPalette(sRedArrowPal, OBJ_PLTT_ID(arrowInfo->palNum), PLTT_SIZE_4BPP); } else { @@ -1324,7 +1324,7 @@ static u8 ListMenuAddRedOutlineCursorObject(struct CursorStruct *cursor) if (cursor->palTag == TAG_NONE) { - LoadPalette(sRedArrowPal, (16 * cursor->palNum) + 0x100, 0x20); + LoadPalette(sRedArrowPal, OBJ_PLTT_ID(cursor->palNum), PLTT_SIZE_4BPP); } else { @@ -1409,7 +1409,7 @@ static u8 ListMenuAddRedArrowCursorObject(struct CursorStruct *cursor) if (cursor->palTag == TAG_NONE) { - LoadPalette(sRedArrowPal, (16 * cursor->palNum) + 0x100, 0x20); + LoadPalette(sRedArrowPal, OBJ_PLTT_ID(cursor->palNum), PLTT_SIZE_4BPP); } else { diff --git a/src/mail.c b/src/mail.c index 651fcbb84..52ce8df5e 100644 --- a/src/mail.c +++ b/src/mail.c @@ -113,7 +113,7 @@ static const struct WindowTemplate sWindowTemplates[] = { .tilemapTop = 3, .width = 26, .height = 15, - .paletteNum = 15, + .paletteNum = 0xF, .baseBlock = 1 }, DUMMY_WIN_TEMPLATE @@ -566,13 +566,13 @@ static bool8 MailReadBuildGraphics(void) CopyBgTilemapBufferToVram(2); break; case 12: - LoadPalette(GetOverworldTextboxPalettePtr(), 240, 32); + LoadPalette(GetOverworldTextboxPalettePtr(), BG_PLTT_ID(0xF), PLTT_SIZE_4BPP); gPlttBufferUnfaded[250] = sMailGraphics[sMailRead->mailType].textColor; gPlttBufferFaded[250] = sMailGraphics[sMailRead->mailType].textColor; gPlttBufferUnfaded[251] = sMailGraphics[sMailRead->mailType].textShadow; gPlttBufferFaded[251] = sMailGraphics[sMailRead->mailType].textShadow; - LoadPalette(sMailGraphics[sMailRead->mailType].palette, 0, 32); + LoadPalette(sMailGraphics[sMailRead->mailType].palette, BG_PLTT_ID(0x0), PLTT_SIZE_4BPP); gPlttBufferUnfaded[10] = sBgColors[gSaveBlock2Ptr->playerGender][0]; gPlttBufferFaded[10] = sBgColors[gSaveBlock2Ptr->playerGender][0]; diff --git a/src/main_menu.c b/src/main_menu.c index b8abffda5..381676c0d 100644 --- a/src/main_menu.c +++ b/src/main_menu.c @@ -294,7 +294,7 @@ static const struct WindowTemplate sWindowTemplates_MainMenu[] = .tilemapTop = MENU_TOP_WIN0, .width = MENU_WIDTH, .height = MENU_HEIGHT_WIN0, - .paletteNum = 15, + .paletteNum = 0xF, .baseBlock = 1 }, // OPTIONS @@ -304,7 +304,7 @@ static const struct WindowTemplate sWindowTemplates_MainMenu[] = .tilemapTop = MENU_TOP_WIN1, .width = MENU_WIDTH, .height = MENU_HEIGHT_WIN1, - .paletteNum = 15, + .paletteNum = 0xF, .baseBlock = 0x35 }, // Has saved game @@ -315,7 +315,7 @@ static const struct WindowTemplate sWindowTemplates_MainMenu[] = .tilemapTop = MENU_TOP_WIN2, .width = MENU_WIDTH, .height = MENU_HEIGHT_WIN2, - .paletteNum = 15, + .paletteNum = 0xF, .baseBlock = 1 }, // NEW GAME @@ -325,7 +325,7 @@ static const struct WindowTemplate sWindowTemplates_MainMenu[] = .tilemapTop = MENU_TOP_WIN3, .width = MENU_WIDTH, .height = MENU_HEIGHT_WIN3, - .paletteNum = 15, + .paletteNum = 0xF, .baseBlock = 0x9D }, // OPTION / MYSTERY GIFT @@ -335,7 +335,7 @@ static const struct WindowTemplate sWindowTemplates_MainMenu[] = .tilemapTop = MENU_TOP_WIN4, .width = MENU_WIDTH, .height = MENU_HEIGHT_WIN4, - .paletteNum = 15, + .paletteNum = 0xF, .baseBlock = 0xD1 }, // OPTION / MYSTERY EVENTS @@ -345,7 +345,7 @@ static const struct WindowTemplate sWindowTemplates_MainMenu[] = .tilemapTop = MENU_TOP_WIN5, .width = MENU_WIDTH, .height = MENU_HEIGHT_WIN5, - .paletteNum = 15, + .paletteNum = 0xF, .baseBlock = 0x105 }, // OPTION @@ -355,7 +355,7 @@ static const struct WindowTemplate sWindowTemplates_MainMenu[] = .tilemapTop = MENU_TOP_WIN6, .width = MENU_WIDTH, .height = MENU_HEIGHT_WIN6, - .paletteNum = 15, + .paletteNum = 0xF, .baseBlock = 0x139 }, // Error message window @@ -365,7 +365,7 @@ static const struct WindowTemplate sWindowTemplates_MainMenu[] = .tilemapTop = MENU_TOP_ERROR, .width = MENU_WIDTH_ERROR, .height = MENU_HEIGHT_ERROR, - .paletteNum = 15, + .paletteNum = 0xF, .baseBlock = 0x16D }, DUMMY_WIN_TEMPLATE @@ -379,7 +379,7 @@ static const struct WindowTemplate sNewGameBirchSpeechTextWindows[] = .tilemapTop = 15, .width = 27, .height = 4, - .paletteNum = 15, + .paletteNum = 0xF, .baseBlock = 1 }, { @@ -388,7 +388,7 @@ static const struct WindowTemplate sNewGameBirchSpeechTextWindows[] = .tilemapTop = 5, .width = 6, .height = 4, - .paletteNum = 15, + .paletteNum = 0xF, .baseBlock = 0x6D }, { @@ -397,7 +397,7 @@ static const struct WindowTemplate sNewGameBirchSpeechTextWindows[] = .tilemapTop = 2, .width = 9, .height = 10, - .paletteNum = 15, + .paletteNum = 0xF, .baseBlock = 0x85 }, DUMMY_WIN_TEMPLATE @@ -571,8 +571,8 @@ static u32 InitMainMenu(bool8 returningFromOptionsMenu) DmaFill16(3, 0, (void *)(PLTT + 2), PLTT_SIZE - 2); ResetPaletteFade(); - LoadPalette(sMainMenuBgPal, 0, 32); - LoadPalette(sMainMenuTextPal, 0xF0, 32); + LoadPalette(sMainMenuBgPal, BG_PLTT_ID(0x0), PLTT_SIZE_4BPP); + LoadPalette(sMainMenuTextPal, BG_PLTT_ID(0xF), PLTT_SIZE_4BPP); ScanlineEffect_Stop(); ResetTasks(); ResetSpriteData(); @@ -750,28 +750,28 @@ static void Task_DisplayMainMenu(u8 taskId) SetGpuReg(REG_OFFSET_BLDY, 7); palette = RGB_BLACK; - LoadPalette(&palette, 254, 2); + LoadPalette(&palette, BG_PLTT_ID(0xF) + 14, PLTT_SIZEOF(1)); palette = RGB_WHITE; - LoadPalette(&palette, 250, 2); + LoadPalette(&palette, BG_PLTT_ID(0xF) + 10, PLTT_SIZEOF(1)); palette = RGB(12, 12, 12); - LoadPalette(&palette, 251, 2); + LoadPalette(&palette, BG_PLTT_ID(0xF) + 11, PLTT_SIZEOF(1)); palette = RGB(26, 26, 25); - LoadPalette(&palette, 252, 2); + LoadPalette(&palette, BG_PLTT_ID(0xF) + 12, PLTT_SIZEOF(1)); // Note: If there is no save file, the save block is zeroed out, // so the default gender is MALE. if (gSaveBlock2Ptr->playerGender == MALE) { palette = RGB(4, 16, 31); - LoadPalette(&palette, 241, 2); + LoadPalette(&palette, BG_PLTT_ID(0xF) + 1, PLTT_SIZEOF(1)); } else { palette = RGB(31, 3, 21); - LoadPalette(&palette, 241, 2); + LoadPalette(&palette, BG_PLTT_ID(0xF) + 1, PLTT_SIZEOF(1)); } switch (gTasks[taskId].tMenuType) @@ -1274,8 +1274,8 @@ static void Task_NewGameBirchSpeech_Init(u8 taskId) LZ77UnCompVram(sBirchSpeechShadowGfx, (void *)VRAM); LZ77UnCompVram(sBirchSpeechBgMap, (void *)(BG_SCREEN_ADDR(7))); - LoadPalette(sBirchSpeechBgPals, 0, 64); - LoadPalette(sBirchSpeechPlatformBlackPal, 1, 16); + LoadPalette(sBirchSpeechBgPals, BG_PLTT_ID(0x0), 2 * PLTT_SIZE_4BPP); + LoadPalette(sBirchSpeechPlatformBlackPal, BG_PLTT_ID(0x0) + 1, PLTT_SIZEOF(8)); ScanlineEffect_Stop(); ResetSpriteData(); FreeAllSpritePalettes(); @@ -1327,7 +1327,7 @@ static void Task_NewGameBirchSpeech_WaitForSpriteFadeInWelcome(u8 taskId) { InitWindows(sNewGameBirchSpeechTextWindows); LoadMainMenuWindowFrameTiles(0, 0xF3); - LoadMessageBoxGfx(0, 0xFC, 0xF0); + LoadMessageBoxGfx(0, 0xFC, BG_PLTT_ID(0xF)); NewGameBirchSpeech_ShowDialogueWindow(0, 1); PutWindowTilemap(0); CopyWindowToVram(0, COPYWIN_GFX); @@ -1809,8 +1809,8 @@ static void CB2_NewGameBirchSpeech_ReturnFromNamingScreen(void) ResetPaletteFade(); LZ77UnCompVram(sBirchSpeechShadowGfx, (u8 *)VRAM); LZ77UnCompVram(sBirchSpeechBgMap, (u8 *)(BG_SCREEN_ADDR(7))); - LoadPalette(sBirchSpeechBgPals, 0, 64); - LoadPalette(&sBirchSpeechBgGradientPal[1], 1, 16); + LoadPalette(sBirchSpeechBgPals, BG_PLTT_ID(0x0), 2 * PLTT_SIZE_4BPP); + LoadPalette(&sBirchSpeechBgGradientPal[1], BG_PLTT_ID(0x0) + 1, PLTT_SIZEOF(8)); ResetTasks(); taskId = CreateTask(Task_NewGameBirchSpeech_ReturnFromNamingScreenShowTextbox, 0); gTasks[taskId].tTimer = 5; @@ -1853,7 +1853,7 @@ static void CB2_NewGameBirchSpeech_ReturnFromNamingScreen(void) SetMainCallback2(CB2_MainMenu); InitWindows(sNewGameBirchSpeechTextWindows); LoadMainMenuWindowFrameTiles(0, 0xF3); - LoadMessageBoxGfx(0, 0xFC, 0xF0); + LoadMessageBoxGfx(0, 0xFC, BG_PLTT_ID(0xF)); PutWindowTilemap(0); CopyWindowToVram(0, COPYWIN_FULL); } @@ -2029,7 +2029,7 @@ static void Task_NewGameBirchSpeech_FadePlatformIn(u8 taskId) { gTasks[taskId].tDelayTimer = gTasks[taskId].tDelay; gTasks[taskId].tPalIndex++; - LoadPalette(&sBirchSpeechBgGradientPal[gTasks[taskId].tPalIndex], 1, 16); + LoadPalette(&sBirchSpeechBgGradientPal[gTasks[taskId].tPalIndex], BG_PLTT_ID(0x0) + 1, PLTT_SIZEOF(8)); } } @@ -2063,7 +2063,7 @@ static void Task_NewGameBirchSpeech_FadePlatformOut(u8 taskId) { gTasks[taskId].tDelayTimer = gTasks[taskId].tDelay; gTasks[taskId].tPalIndex--; - LoadPalette(&sBirchSpeechBgGradientPal[gTasks[taskId].tPalIndex], 1, 16); + LoadPalette(&sBirchSpeechBgGradientPal[gTasks[taskId].tPalIndex], BG_PLTT_ID(0x0) + 1, PLTT_SIZEOF(8)); } } @@ -2191,7 +2191,7 @@ static void MainMenu_FormatSavegameBadges(void) static void LoadMainMenuWindowFrameTiles(u8 bgId, u16 tileOffset) { LoadBgTiles(bgId, GetWindowFrameTilesPal(gSaveBlock2Ptr->optionsWindowFrameType)->tiles, 0x120, tileOffset); - LoadPalette(GetWindowFrameTilesPal(gSaveBlock2Ptr->optionsWindowFrameType)->pal, 32, 32); + LoadPalette(GetWindowFrameTilesPal(gSaveBlock2Ptr->optionsWindowFrameType)->pal, BG_PLTT_ID(0x2), PLTT_SIZE_4BPP); } static void DrawMainMenuWindowBorder(const struct WindowTemplate *template, u16 baseTileNum) @@ -2204,26 +2204,26 @@ static void DrawMainMenuWindowBorder(const struct WindowTemplate *template, u16 u16 sp14 = 7 + baseTileNum; u16 r6 = 8 + baseTileNum; - FillBgTilemapBufferRect(template->bg, baseTileNum, template->tilemapLeft - 1, template->tilemapTop - 1, 1, 1, 2); - FillBgTilemapBufferRect(template->bg, r9, template->tilemapLeft, template->tilemapTop - 1, template->width, 1, 2); - FillBgTilemapBufferRect(template->bg, r10, template->tilemapLeft + template->width, template->tilemapTop - 1, 1, 1, 2); - FillBgTilemapBufferRect(template->bg, sp18, template->tilemapLeft - 1, template->tilemapTop, 1, template->height, 2); - FillBgTilemapBufferRect(template->bg, spC, template->tilemapLeft + template->width, template->tilemapTop, 1, template->height, 2); - FillBgTilemapBufferRect(template->bg, sp10, template->tilemapLeft - 1, template->tilemapTop + template->height, 1, 1, 2); - FillBgTilemapBufferRect(template->bg, sp14, template->tilemapLeft, template->tilemapTop + template->height, template->width, 1, 2); - FillBgTilemapBufferRect(template->bg, r6, template->tilemapLeft + template->width, template->tilemapTop + template->height, 1, 1, 2); + FillBgTilemapBufferRect(template->bg, baseTileNum, template->tilemapLeft - 1, template->tilemapTop - 1, 1, 1, 0x2); + FillBgTilemapBufferRect(template->bg, r9, template->tilemapLeft, template->tilemapTop - 1, template->width, 1, 0x2); + FillBgTilemapBufferRect(template->bg, r10, template->tilemapLeft + template->width, template->tilemapTop - 1, 1, 1, 0x2); + FillBgTilemapBufferRect(template->bg, sp18, template->tilemapLeft - 1, template->tilemapTop, 1, template->height, 0x2); + FillBgTilemapBufferRect(template->bg, spC, template->tilemapLeft + template->width, template->tilemapTop, 1, template->height, 0x2); + FillBgTilemapBufferRect(template->bg, sp10, template->tilemapLeft - 1, template->tilemapTop + template->height, 1, 1, 0x2); + FillBgTilemapBufferRect(template->bg, sp14, template->tilemapLeft, template->tilemapTop + template->height, template->width, 1, 0x2); + FillBgTilemapBufferRect(template->bg, r6, template->tilemapLeft + template->width, template->tilemapTop + template->height, 1, 1, 0x2); CopyBgTilemapBufferToVram(template->bg); } static void ClearMainMenuWindowTilemap(const struct WindowTemplate *template) { - FillBgTilemapBufferRect(template->bg, 0, template->tilemapLeft - 1, template->tilemapTop - 1, template->tilemapLeft + template->width + 1, template->tilemapTop + template->height + 1, 2); + FillBgTilemapBufferRect(template->bg, 0, template->tilemapLeft - 1, template->tilemapTop - 1, template->tilemapLeft + template->width + 1, template->tilemapTop + template->height + 1, 0x2); CopyBgTilemapBufferToVram(template->bg); } static void NewGameBirchSpeech_ClearGenderWindowTilemap(u8 bg, u8 x, u8 y, u8 width, u8 height, u8 unused) { - FillBgTilemapBufferRect(bg, 0, x + 255, y + 255, width + 2, height + 2, 2); + FillBgTilemapBufferRect(bg, 0, x + 255, y + 255, width + 2, height + 2, 0x2); } static void NewGameBirchSpeech_ClearGenderWindow(u8 windowId, bool8 copyToVram) diff --git a/src/map_name_popup.c b/src/map_name_popup.c index 41054d16d..f7d5320d3 100644 --- a/src/map_name_popup.c +++ b/src/map_name_popup.c @@ -351,19 +351,19 @@ static void DrawMapNamePopUpFrame(u8 bg, u8 x, u8 y, u8 deltaX, u8 deltaY, u8 un // Draw top edge for (i = 0; i < 1 + TILE_TOP_EDGE_END - TILE_TOP_EDGE_START; i++) - FillBgTilemapBufferRect(bg, TILE_TOP_EDGE_START + i, i - 1 + x, y - 1, 1, 1, 14); + FillBgTilemapBufferRect(bg, TILE_TOP_EDGE_START + i, i - 1 + x, y - 1, 1, 1, 0xE); // Draw sides - FillBgTilemapBufferRect(bg, TILE_LEFT_EDGE_TOP, x - 1, y, 1, 1, 14); - FillBgTilemapBufferRect(bg, TILE_RIGHT_EDGE_TOP, deltaX + x, y, 1, 1, 14); - FillBgTilemapBufferRect(bg, TILE_LEFT_EDGE_MID, x - 1, y + 1, 1, 1, 14); - FillBgTilemapBufferRect(bg, TILE_RIGHT_EDGE_MID, deltaX + x, y + 1, 1, 1, 14); - FillBgTilemapBufferRect(bg, TILE_LEFT_EDGE_BOT, x - 1, y + 2, 1, 1, 14); - FillBgTilemapBufferRect(bg, TILE_RIGHT_EDGE_BOT, deltaX + x, y + 2, 1, 1, 14); + FillBgTilemapBufferRect(bg, TILE_LEFT_EDGE_TOP, x - 1, y, 1, 1, 0xE); + FillBgTilemapBufferRect(bg, TILE_RIGHT_EDGE_TOP, deltaX + x, y, 1, 1, 0xE); + FillBgTilemapBufferRect(bg, TILE_LEFT_EDGE_MID, x - 1, y + 1, 1, 1, 0xE); + FillBgTilemapBufferRect(bg, TILE_RIGHT_EDGE_MID, deltaX + x, y + 1, 1, 1, 0xE); + FillBgTilemapBufferRect(bg, TILE_LEFT_EDGE_BOT, x - 1, y + 2, 1, 1, 0xE); + FillBgTilemapBufferRect(bg, TILE_RIGHT_EDGE_BOT, deltaX + x, y + 2, 1, 1, 0xE); // Draw bottom edge for (i = 0; i < 1 + TILE_BOT_EDGE_END - TILE_BOT_EDGE_START; i++) - FillBgTilemapBufferRect(bg, TILE_BOT_EDGE_START + i, i - 1 + x, y + deltaY, 1, 1, 14); + FillBgTilemapBufferRect(bg, TILE_BOT_EDGE_START + i, i - 1 + x, y + deltaY, 1, 1, 0xE); } static void LoadMapNamePopUpWindowBg(void) @@ -385,8 +385,8 @@ static void LoadMapNamePopUpWindowBg(void) CallWindowFunction(popupWindowId, DrawMapNamePopUpFrame); PutWindowTilemap(popupWindowId); if (gMapHeader.weather == WEATHER_UNDERWATER_BUBBLES) - LoadPalette(&sMapPopUp_Palette_Underwater, 0xE0, sizeof(sMapPopUp_Palette_Underwater)); + LoadPalette(&sMapPopUp_Palette_Underwater, BG_PLTT_ID(0xE), sizeof(sMapPopUp_Palette_Underwater)); else - LoadPalette(sMapPopUp_PaletteTable[popUpThemeId], 0xE0, sizeof(sMapPopUp_PaletteTable[0])); + LoadPalette(sMapPopUp_PaletteTable[popUpThemeId], BG_PLTT_ID(0xE), sizeof(sMapPopUp_PaletteTable[0])); BlitBitmapToWindow(popupWindowId, sMapPopUp_Table[popUpThemeId], 0, 0, 80, 24); } diff --git a/src/match_call.c b/src/match_call.c index 4f6a7b982..5d92e55b9 100644 --- a/src/match_call.c +++ b/src/match_call.c @@ -1235,7 +1235,7 @@ static const struct WindowTemplate sMatchCallTextWindow = .tilemapTop = 15, .width = 28, .height = 4, - .paletteNum = 15, + .paletteNum = 0xF, .baseBlock = 0x200 }; @@ -1267,8 +1267,8 @@ static bool32 MatchCall_LoadGfx(u8 taskId) } FillWindowPixelBuffer(tWindowId, PIXEL_FILL(8)); - LoadPalette(sMatchCallWindow_Pal, 0xE0, sizeof(sMatchCallWindow_Pal)); - LoadPalette(sPokenavIcon_Pal, 0xF0, sizeof(sPokenavIcon_Pal)); + LoadPalette(sMatchCallWindow_Pal, BG_PLTT_ID(0xE), sizeof(sMatchCallWindow_Pal)); + LoadPalette(sPokenavIcon_Pal, BG_PLTT_ID(0xF), sizeof(sPokenavIcon_Pal)); ChangeBgY(0, -0x2000, BG_COORD_SET); return TRUE; } @@ -2102,7 +2102,7 @@ void LoadMatchCallWindowGfx(u32 windowId, u32 destOffset, u32 paletteId) { u8 bg = GetWindowAttribute(windowId, WINDOW_BG); LoadBgTiles(bg, sMatchCallWindow_Gfx, 0x100, destOffset); - LoadPalette(sMatchCallWindow_Pal, paletteId << 4, sizeof(sMatchCallWindow_Pal)); + LoadPalette(sMatchCallWindow_Pal, BG_PLTT_ID(paletteId), sizeof(sMatchCallWindow_Pal)); } void DrawMatchCallTextBoxBorder(u32 windowId, u32 tileOffset, u32 paletteId) diff --git a/src/menu.c b/src/menu.c index 937c39143..2a8b2f565 100644 --- a/src/menu.c +++ b/src/menu.c @@ -20,9 +20,10 @@ #include "window.h" #include "constants/songs.h" -#define DLG_WINDOW_PALETTE_NUM 15 +#define DLG_WINDOW_PALETTE_NUM 0xF #define DLG_WINDOW_BASE_TILE_NUM 0x200 -#define STD_WINDOW_PALETTE_NUM 14 +#define STD_WINDOW_PALETTE_NUM 0xE +#define STD_WINDOW_PALETTE_SIZE PLTT_SIZEOF(10) #define STD_WINDOW_BASE_TILE_NUM 0x214 struct MenuInfoIcon @@ -88,7 +89,7 @@ static const struct WindowTemplate sStandardTextBox_WindowTemplates[] = .tilemapTop = 15, .width = 27, .height = 4, - .paletteNum = 15, + .paletteNum = 0xF, .baseBlock = 0x194 }, DUMMY_WIN_TEMPLATE @@ -101,7 +102,7 @@ static const struct WindowTemplate sYesNo_WindowTemplates = .tilemapTop = 9, .width = 5, .height = 4, - .paletteNum = 15, + .paletteNum = 0xF, .baseBlock = 0x125 }; @@ -208,8 +209,8 @@ void AddTextPrinterWithCustomSpeedForMessage(bool8 allowSkippingDelayWithButtonP void LoadMessageBoxAndBorderGfx(void) { - LoadMessageBoxGfx(0, DLG_WINDOW_BASE_TILE_NUM, DLG_WINDOW_PALETTE_NUM * 0x10); - LoadUserWindowBorderGfx(0, STD_WINDOW_BASE_TILE_NUM, STD_WINDOW_PALETTE_NUM * 0x10); + LoadMessageBoxGfx(0, DLG_WINDOW_BASE_TILE_NUM, BG_PLTT_ID(DLG_WINDOW_PALETTE_NUM)); + LoadUserWindowBorderGfx(0, STD_WINDOW_BASE_TILE_NUM, BG_PLTT_ID(STD_WINDOW_PALETTE_NUM)); } void DrawDialogueFrame(u8 windowId, bool8 copyToVram) @@ -427,18 +428,18 @@ void SetStandardWindowBorderStyle(u8 windowId, bool8 copyToVram) void LoadMessageBoxAndFrameGfx(u8 windowId, bool8 copyToVram) { - LoadMessageBoxGfx(windowId, DLG_WINDOW_BASE_TILE_NUM, DLG_WINDOW_PALETTE_NUM * 0x10); + LoadMessageBoxGfx(windowId, DLG_WINDOW_BASE_TILE_NUM, BG_PLTT_ID(DLG_WINDOW_PALETTE_NUM)); DrawDialogFrameWithCustomTileAndPalette(windowId, copyToVram, DLG_WINDOW_BASE_TILE_NUM, 0xF); } void Menu_LoadStdPal(void) { - LoadPalette(gStandardMenuPalette, STD_WINDOW_PALETTE_NUM * 0x10, 0x14); + LoadPalette(gStandardMenuPalette, BG_PLTT_ID(STD_WINDOW_PALETTE_NUM), STD_WINDOW_PALETTE_SIZE); } void Menu_LoadStdPalAt(u16 offset) { - LoadPalette(gStandardMenuPalette, offset, 0x14); + LoadPalette(gStandardMenuPalette, offset, STD_WINDOW_PALETTE_SIZE); } // Unused @@ -550,7 +551,7 @@ void AddTextPrinterWithCallbackForMessage(bool8 canSpeedUp, void (*callback)(str void EraseFieldMessageBox(bool8 copyToVram) { - FillBgTilemapBufferRect(0, 0, 0, 0, 32, 32, 0x11); + FillBgTilemapBufferRect(0, 0, 0, 0, 32, 32, 17); if (copyToVram == TRUE) CopyBgTilemapBufferToVram(0); } @@ -685,7 +686,7 @@ void ClearDialogWindowAndFrameToTransparent(u8 windowId, bool8 copyToVram) static void WindowFunc_ClearDialogWindowAndFrameNullPalette(u8 bg, u8 tilemapLeft, u8 tilemapTop, u8 width, u8 height, u8 paletteNum) { - FillBgTilemapBufferRect(bg, 0, tilemapLeft - 3, tilemapTop - 1, width + 6, height + 2, 0); + FillBgTilemapBufferRect(bg, 0, tilemapLeft - 3, tilemapTop - 1, width + 6, height + 2, 0x0); } void DrawStdFrameWithCustomTileAndPalette(u8 windowId, bool8 copyToVram, u16 baseTileNum, u8 paletteNum) @@ -782,7 +783,7 @@ void ClearStdWindowAndFrameToTransparent(u8 windowId, bool8 copyToVram) static void WindowFunc_ClearStdWindowAndFrameToTransparent(u8 bg, u8 tilemapLeft, u8 tilemapTop, u8 width, u8 height, u8 paletteNum) { - FillBgTilemapBufferRect(bg, 0, tilemapLeft - 1, tilemapTop - 1, width + 2, height + 2, 0); + FillBgTilemapBufferRect(bg, 0, tilemapLeft - 1, tilemapTop - 1, width + 2, height + 2, 0x0); } // Creates the window used to display the info bar at the top of the HOF PC that shows the controls and team number. @@ -805,10 +806,10 @@ u8 HofPCTopBar_AddWindow(u8 bg, u8 xPos, u8 yPos, u8 palette, u16 baseTile) sHofPCTopBarWindowId = AddWindow(&window); - if (palette > 15) - palette = 15 * 16; + if (palette > 0xF) + palette = BG_PLTT_ID(0xF); else - palette *= 16; + palette = BG_PLTT_ID(palette); LoadPalette(sHofPC_TopBar_Pal, palette, sizeof(sHofPC_TopBar_Pal)); return sHofPCTopBarWindowId; @@ -2084,7 +2085,7 @@ static void UnusedBlitBitmapRect(const struct Bitmap *src, struct Bitmap *dst, u // Unused static void LoadMonIconPalAtOffset(u8 palOffset, u16 speciesId) { - LoadPalette(GetValidMonIconPalettePtr(speciesId), palOffset, 0x20); + LoadPalette(GetValidMonIconPalettePtr(speciesId), palOffset, PLTT_SIZE_4BPP); } // Unused @@ -2111,7 +2112,7 @@ void ListMenuLoadStdPalAt(u8 palOffset, u8 palId) break; } - LoadPalette(palette, palOffset, 0x20); + LoadPalette(palette, palOffset, PLTT_SIZE_4BPP); } void BlitMenuInfoIcon(u8 windowId, u8 iconId, u16 x, u16 y) diff --git a/src/menu_specialized.c b/src/menu_specialized.c index 42c80b5ee..f4d3493d7 100644 --- a/src/menu_specialized.c +++ b/src/menu_specialized.c @@ -48,7 +48,7 @@ static const struct WindowTemplate sWindowTemplates_MailboxMenu[MAILBOXWIN_COUNT .tilemapTop = 1, .width = 8, .height = 2, - .paletteNum = 15, + .paletteNum = 0xF, .baseBlock = 0x8 }, [MAILBOXWIN_LIST] = { @@ -57,7 +57,7 @@ static const struct WindowTemplate sWindowTemplates_MailboxMenu[MAILBOXWIN_COUNT .tilemapTop = 1, .width = 8, .height = 18, - .paletteNum = 15, + .paletteNum = 0xF, .baseBlock = 0x18 }, [MAILBOXWIN_OPTIONS] = { @@ -66,7 +66,7 @@ static const struct WindowTemplate sWindowTemplates_MailboxMenu[MAILBOXWIN_COUNT .tilemapTop = 1, .width = 11, .height = 8, - .paletteNum = 15, + .paletteNum = 0xF, .baseBlock = 0x18 } }; @@ -707,8 +707,8 @@ void InitMoveRelearnerWindows(bool8 useContextWindow) InitWindows(sMoveRelearnerWindowTemplates); DeactivateAllTextPrinters(); - LoadUserWindowBorderGfx(0, 1, 0xE0); - LoadPalette(gStandardMenuPalette, 0xF0, 0x20); + LoadUserWindowBorderGfx(0, 1, BG_PLTT_ID(0xE)); + LoadPalette(gStandardMenuPalette, BG_PLTT_ID(0xF), PLTT_SIZE_4BPP); for (i = 0; i < ARRAY_COUNT(sMoveRelearnerWindowTemplates) - 1; i++) FillWindowPixelBuffer(i, PIXEL_FILL(1)); diff --git a/src/move_relearner.c b/src/move_relearner.c index d9c943b57..e86877c8e 100644 --- a/src/move_relearner.c +++ b/src/move_relearner.c @@ -405,7 +405,7 @@ static void CB2_InitLearnMove(void) CreateUISprites(); sMoveRelearnerStruct->moveListMenuTask = ListMenuInit(&gMultiuseListMenuTemplate, sMoveRelearnerMenuSate.listOffset, sMoveRelearnerMenuSate.listRow); - FillPalette(RGB_BLACK, 0, 2); + SetBackdropFromColor(RGB_BLACK); SetMainCallback2(CB2_MoveRelearnerMain); } @@ -430,7 +430,7 @@ static void CB2_InitLearnMoveReturnFromSelectMove(void) CreateUISprites(); sMoveRelearnerStruct->moveListMenuTask = ListMenuInit(&gMultiuseListMenuTemplate, sMoveRelearnerMenuSate.listOffset, sMoveRelearnerMenuSate.listRow); - FillPalette(RGB_BLACK, 0, 2); + SetBackdropFromColor(RGB_BLACK); SetMainCallback2(CB2_MoveRelearnerMain); } diff --git a/src/mystery_event_menu.c b/src/mystery_event_menu.c index c35fe8ed8..59e6d999e 100644 --- a/src/mystery_event_menu.c +++ b/src/mystery_event_menu.c @@ -46,7 +46,7 @@ static const struct WindowTemplate sWindowTemplates[] = .tilemapTop = 15, .width = 22, .height = 4, - .paletteNum = 14, + .paletteNum = 0xE, .baseBlock = 20 }, { @@ -55,7 +55,7 @@ static const struct WindowTemplate sWindowTemplates[] = .tilemapTop = 6, .width = 16, .height = 4, - .paletteNum = 14, + .paletteNum = 0xE, .baseBlock = 0x6C }, DUMMY_WIN_TEMPLATE @@ -91,8 +91,8 @@ void CB2_InitMysteryEventMenu(void) FillWindowPixelBuffer(i, PIXEL_FILL(0)); FillBgTilemapBufferRect_Palette0(0, 0, 0, 0, 0x1E, 0x14); - LoadUserWindowBorderGfx(0, 1u, 0xD0u); - Menu_LoadStdPalAt(0xE0); + LoadUserWindowBorderGfx(0, 1, BG_PLTT_ID(0xD)); + Menu_LoadStdPalAt(BG_PLTT_ID(0xE)); SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_MODE_0 | DISPCNT_OBJ_1D_MAP | DISPCNT_BG0_ON); SetGpuReg(REG_OFFSET_BLDCNT, 0); CreateTask(Task_DestroySelf, 0); @@ -102,7 +102,7 @@ void CB2_InitMysteryEventMenu(void) BuildOamBuffer(); RunTextPrinters(); UpdatePaletteFade(); - FillPalette(RGB_BLACK, 0, 2); + SetBackdropFromColor(RGB_BLACK); SetMainCallback2(CB2_MysteryEventMenu); } } diff --git a/src/mystery_gift_menu.c b/src/mystery_gift_menu.c index b970711fd..f9e2c2af9 100644 --- a/src/mystery_gift_menu.c +++ b/src/mystery_gift_menu.c @@ -33,7 +33,7 @@ #include "constants/cable_club.h" #define LIST_MENU_TILE_NUM 10 -#define LIST_MENU_PAL_NUM 224 +#define LIST_MENU_PAL_NUM BG_PLTT_ID(0xE) static void LoadMysteryGiftTextboxBorder(u8 bgId); static void CreateMysteryGiftTask(void); @@ -104,7 +104,7 @@ static const struct WindowTemplate sMainWindows[] = { .tilemapTop = 0, .width = 30, .height = 2, - .paletteNum = 12, + .paletteNum = 0xC, .baseBlock = 0x0013 }, { .bg = 0, @@ -112,7 +112,7 @@ static const struct WindowTemplate sMainWindows[] = { .tilemapTop = 15, .width = 28, .height = 4, - .paletteNum = 12, + .paletteNum = 0xC, .baseBlock = 0x004f }, { .bg = 0, @@ -120,7 +120,7 @@ static const struct WindowTemplate sMainWindows[] = { .tilemapTop = 15, .width = 30, .height = 5, - .paletteNum = 13, + .paletteNum = 0xD, .baseBlock = 0x004f }, DUMMY_WIN_TEMPLATE @@ -132,7 +132,7 @@ static const struct WindowTemplate sWindowTemplate_YesNoMsg_Wide = { .tilemapTop = 15, .width = 28, .height = 4, - .paletteNum = 12, + .paletteNum = 0xC, .baseBlock = 0x00e5 }; @@ -142,7 +142,7 @@ static const struct WindowTemplate sWindowTemplate_YesNoMsg = { .tilemapTop = 15, .width = 20, .height = 4, - .paletteNum = 12, + .paletteNum = 0xC, .baseBlock = 0x00e5 }; @@ -152,7 +152,7 @@ static const struct WindowTemplate sWindowTemplate_GiftSelect = { .tilemapTop = 15, .width = 19, .height = 4, - .paletteNum = 12, + .paletteNum = 0xC, .baseBlock = 0x00e5 }; @@ -162,7 +162,7 @@ static const struct WindowTemplate sWindowTemplate_ThreeOptions = { .tilemapTop = 6, .width = 14, .height = 6, - .paletteNum = 12, + .paletteNum = 0xC, .baseBlock = 0x0155 }; @@ -172,7 +172,7 @@ static const struct WindowTemplate sWindowTemplate_YesNoBox = { .tilemapTop = 15, .width = 6, .height = 4, - .paletteNum = 12, + .paletteNum = 0xC, .baseBlock = 0x0155 }; @@ -182,7 +182,7 @@ static const struct WindowTemplate sWindowTemplate_GiftSelect_3Options = { .tilemapTop = 11, .width = 7, .height = 8, - .paletteNum = 12, + .paletteNum = 0xC, .baseBlock = 0x0155 }; @@ -192,7 +192,7 @@ static const struct WindowTemplate sWindowTemplate_GiftSelect_2Options = { .tilemapTop = 13, .width = 7, .height = 6, - .paletteNum = 12, + .paletteNum = 0xC, .baseBlock = 0x0155 }; @@ -202,7 +202,7 @@ static const struct WindowTemplate sWindowTemplate_GiftSelect_1Option = { .tilemapTop = 15, .width = 7, .height = 4, - .paletteNum = 12, + .paletteNum = 0xC, .baseBlock = 0x0155 }; @@ -411,14 +411,14 @@ static bool32 HandleMysteryGiftOrEReaderSetup(s32 isEReader) gMain.state++; break; case 1: - LoadPalette(sTextboxBorder_Pal, 0, 0x20); - LoadPalette(GetTextWindowPalette(2), 0xd0, 0x20); - Menu_LoadStdPalAt(0xC0); - LoadUserWindowBorderGfx(0, 0xA, 0xE0); - LoadUserWindowBorderGfx_(0, 0x1, 0xF0); - FillBgTilemapBufferRect(0, 0x000, 0, 0, 32, 32, 0x11); - FillBgTilemapBufferRect(1, 0x000, 0, 0, 32, 32, 0x11); - FillBgTilemapBufferRect(2, 0x000, 0, 0, 32, 32, 0x11); + LoadPalette(sTextboxBorder_Pal, BG_PLTT_ID(0x0), PLTT_SIZE_4BPP); + LoadPalette(GetTextWindowPalette(2), BG_PLTT_ID(0xD), PLTT_SIZE_4BPP); + Menu_LoadStdPalAt(BG_PLTT_ID(0xC)); + LoadUserWindowBorderGfx(0, 0xA, BG_PLTT_ID(0xE)); + LoadUserWindowBorderGfx_(0, 0x1, BG_PLTT_ID(0xF)); + FillBgTilemapBufferRect(0, 0x000, 0, 0, 32, 32, 17); + FillBgTilemapBufferRect(1, 0x000, 0, 0, 32, 32, 17); + FillBgTilemapBufferRect(2, 0x000, 0, 0, 32, 32, 17); MG_DrawCheckerboardPattern(3); PrintMysteryGiftOrEReaderTopMenu(isEReader, FALSE); gMain.state++; @@ -505,16 +505,16 @@ void MG_DrawCheckerboardPattern(u32 bg) { s32 i = 0, j; - FillBgTilemapBufferRect(bg, 0x003, 0, 0, 32, 2, 0x11); + FillBgTilemapBufferRect(bg, 0x003, 0, 0, 32, 2, 17); for (i = 0; i < 18; i++) { for (j = 0; j < 32; j++) { if ((i & 1) != (j & 1)) - FillBgTilemapBufferRect(bg, 1, j, i + 2, 1, 1, 0x11); + FillBgTilemapBufferRect(bg, 1, j, i + 2, 1, 1, 17); else - FillBgTilemapBufferRect(bg, 2, j, i + 2, 1, 1, 0x11); + FillBgTilemapBufferRect(bg, 2, j, i + 2, 1, 1, 17); } } } @@ -524,10 +524,10 @@ static void ClearScreenInBg0(bool32 ignoreTopTwoRows) switch (ignoreTopTwoRows) { case 0: - FillBgTilemapBufferRect(0, 0, 0, 0, 32, 32, 0x11); + FillBgTilemapBufferRect(0, 0, 0, 0, 32, 32, 17); break; case 1: - FillBgTilemapBufferRect(0, 0, 0, 2, 32, 30, 0x11); + FillBgTilemapBufferRect(0, 0, 0, 2, 32, 30, 17); break; } CopyBgTilemapBufferToVram(0); diff --git a/src/mystery_gift_view.c b/src/mystery_gift_view.c index ff34c8853..d279bb2f5 100644 --- a/src/mystery_gift_view.c +++ b/src/mystery_gift_view.c @@ -96,7 +96,7 @@ static const struct WindowTemplate sCard_WindowTemplates[] = { .tilemapTop = 1, .width = 25, .height = 4, - .paletteNum = 2, + .paletteNum = 0x2, .baseBlock = 0x029c }, [CARD_WIN_BODY] = { @@ -105,7 +105,7 @@ static const struct WindowTemplate sCard_WindowTemplates[] = { .tilemapTop = 6, .width = 28, .height = 8, - .paletteNum = 2, + .paletteNum = 0x2, .baseBlock = 0x01bc }, [CARD_WIN_FOOTER] = { @@ -114,7 +114,7 @@ static const struct WindowTemplate sCard_WindowTemplates[] = { .tilemapTop = 14, .width = 28, .height = 5, - .paletteNum = 2, + .paletteNum = 0x2, .baseBlock = 0x0130 } }; @@ -239,11 +239,11 @@ s32 WonderCard_Enter(void) case 3: if (FreeTempTileDataBuffersIfPossible()) return 0; - LoadPalette(GetTextWindowPalette(1), 0x20, 0x20); + LoadPalette(GetTextWindowPalette(1), BG_PLTT_ID(0x2), PLTT_SIZE_4BPP); gPaletteFade.bufferTransferDisabled = TRUE; - LoadPalette(sWonderCardData->gfx->pal, 0x10, 0x20); + LoadPalette(sWonderCardData->gfx->pal, BG_PLTT_ID(0x1), PLTT_SIZE_4BPP); LZ77UnCompWram(sWonderCardData->gfx->map, sWonderCardData->bgTilemapBuffer); - CopyRectToBgTilemapBufferRect(2, sWonderCardData->bgTilemapBuffer, 0, 0, 30, 20, 0, 0, 30, 20, 1, 0x008, 0); + CopyRectToBgTilemapBufferRect(2, sWonderCardData->bgTilemapBuffer, 0, 0, 30, 20, 0, 0, 30, 20, 0x1, 0x008, 0); CopyBgTilemapBufferToVram(2); break; case 4: @@ -586,7 +586,7 @@ static const struct WindowTemplate sNews_WindowTemplates[] = { .tilemapTop = 0, .width = 28, .height = 3, - .paletteNum = 2, + .paletteNum = 0x2, .baseBlock = 0x2AC }, [NEWS_WIN_BODY] = { @@ -595,7 +595,7 @@ static const struct WindowTemplate sNews_WindowTemplates[] = { .tilemapTop = 3, .width = 28, .height = 20, - .paletteNum = 2, + .paletteNum = 0x2, .baseBlock = 0x07C } }; @@ -702,12 +702,12 @@ s32 WonderNews_Enter(void) case 3: if (FreeTempTileDataBuffersIfPossible()) return 0; - LoadPalette(GetTextWindowPalette(1), 0x20, 0x20); + LoadPalette(GetTextWindowPalette(1), BG_PLTT_ID(0x2), PLTT_SIZE_4BPP); gPaletteFade.bufferTransferDisabled = TRUE; - LoadPalette(sWonderNewsData->gfx->pal, 0x10, 0x20); + LoadPalette(sWonderNewsData->gfx->pal, BG_PLTT_ID(0x1), PLTT_SIZE_4BPP); LZ77UnCompWram(sWonderNewsData->gfx->map, sWonderNewsData->bgTilemapBuffer); - CopyRectToBgTilemapBufferRect(1, sWonderNewsData->bgTilemapBuffer, 0, 0, 30, 3, 0, 0, 30, 3, 1, 8, 0); - CopyRectToBgTilemapBufferRect(3, sWonderNewsData->bgTilemapBuffer, 0, 3, 30, 23, 0, 3, 30, 23, 1, 8, 0); + CopyRectToBgTilemapBufferRect(1, sWonderNewsData->bgTilemapBuffer, 0, 0, 30, 3, 0, 0, 30, 3, 0x1, 8, 0); + CopyRectToBgTilemapBufferRect(3, sWonderNewsData->bgTilemapBuffer, 0, 3, 30, 23, 0, 3, 30, 23, 0x1, 8, 0); CopyBgTilemapBufferToVram(1); CopyBgTilemapBufferToVram(3); break; diff --git a/src/naming_screen.c b/src/naming_screen.c index b4007b265..bbdcef565 100644 --- a/src/naming_screen.c +++ b/src/naming_screen.c @@ -233,7 +233,7 @@ static const struct WindowTemplate sWindowTemplates[WIN_COUNT + 1] = .tilemapTop = 10, .width = 19, .height = 8, - .paletteNum = 10, + .paletteNum = 0xA, .baseBlock = 0x030 }, [WIN_KB_PAGE_2] = { @@ -242,7 +242,7 @@ static const struct WindowTemplate sWindowTemplates[WIN_COUNT + 1] = .tilemapTop = 10, .width = 19, .height = 8, - .paletteNum = 10, + .paletteNum = 0xA, .baseBlock = 0x0C8 }, [WIN_TEXT_ENTRY] = { @@ -251,7 +251,7 @@ static const struct WindowTemplate sWindowTemplates[WIN_COUNT + 1] = .tilemapTop = 6, .width = 17, .height = 2, - .paletteNum = 10, + .paletteNum = 0xA, .baseBlock = 0x030 }, [WIN_TEXT_ENTRY_BOX] = { @@ -260,7 +260,7 @@ static const struct WindowTemplate sWindowTemplates[WIN_COUNT + 1] = .tilemapTop = 4, .width = 17, .height = 2, - .paletteNum = 10, + .paletteNum = 0xA, .baseBlock = 0x052 }, [WIN_BANNER] = { @@ -269,7 +269,7 @@ static const struct WindowTemplate sWindowTemplates[WIN_COUNT + 1] = .tilemapTop = 0, .width = 30, .height = 2, - .paletteNum = 11, + .paletteNum = 0xB, .baseBlock = 0x074 }, DUMMY_WIN_TEMPLATE @@ -1880,9 +1880,9 @@ static void CreateHelperTasks(void) static void LoadPalettes(void) { - LoadPalette(gNamingScreenMenu_Pal, 0, sizeof(gNamingScreenMenu_Pal)); - LoadPalette(sKeyboard_Pal, 0xA0, sizeof(sKeyboard_Pal)); - LoadPalette(GetTextWindowPalette(2), 0xB0, 0x20); + LoadPalette(gNamingScreenMenu_Pal, BG_PLTT_ID(0x0), sizeof(gNamingScreenMenu_Pal)); + LoadPalette(sKeyboard_Pal, BG_PLTT_ID(0xA), sizeof(sKeyboard_Pal)); + LoadPalette(GetTextWindowPalette(2), BG_PLTT_ID(0xB), PLTT_SIZE_4BPP); } static void DrawBgTilemap(u8 bg, const void *src) diff --git a/src/option_menu.c b/src/option_menu.c index 3ca9857e8..e3d767c5e 100644 --- a/src/option_menu.c +++ b/src/option_menu.c @@ -102,7 +102,7 @@ static const struct WindowTemplate sOptionMenuWinTemplates[] = .tilemapTop = 1, .width = 26, .height = 2, - .paletteNum = 1, + .paletteNum = 0x1, .baseBlock = 2 }, { @@ -111,7 +111,7 @@ static const struct WindowTemplate sOptionMenuWinTemplates[] = .tilemapTop = 5, .width = 26, .height = 14, - .paletteNum = 1, + .paletteNum = 0x1, .baseBlock = 0x36 }, DUMMY_WIN_TEMPLATE @@ -207,12 +207,12 @@ void CB2_InitOptionMenu(void) gMain.state++; break; case 4: - LoadPalette(sOptionMenuBg_Pal, 0, sizeof(sOptionMenuBg_Pal)); - LoadPalette(GetWindowFrameTilesPal(gSaveBlock2Ptr->optionsWindowFrameType)->pal, 0x70, 0x20); + LoadPalette(sOptionMenuBg_Pal, BG_PLTT_ID(0x0), sizeof(sOptionMenuBg_Pal)); + LoadPalette(GetWindowFrameTilesPal(gSaveBlock2Ptr->optionsWindowFrameType)->pal, BG_PLTT_ID(0x7), PLTT_SIZE_4BPP); gMain.state++; break; case 5: - LoadPalette(sOptionMenuText_Pal, 16, sizeof(sOptionMenuText_Pal)); + LoadPalette(sOptionMenuText_Pal, BG_PLTT_ID(0x1), sizeof(sOptionMenuText_Pal)); gMain.state++; break; case 6: @@ -529,7 +529,7 @@ static u8 FrameType_ProcessInput(u8 selection) selection = 0; LoadBgTiles(1, GetWindowFrameTilesPal(selection)->tiles, 0x120, 0x1A2); - LoadPalette(GetWindowFrameTilesPal(selection)->pal, 0x70, 0x20); + LoadPalette(GetWindowFrameTilesPal(selection)->pal, BG_PLTT_ID(0x7), PLTT_SIZE_4BPP); sArrowPressed = TRUE; } if (JOY_NEW(DPAD_LEFT)) @@ -540,7 +540,7 @@ static u8 FrameType_ProcessInput(u8 selection) selection = WINDOW_FRAMES_COUNT - 1; LoadBgTiles(1, GetWindowFrameTilesPal(selection)->tiles, 0x120, 0x1A2); - LoadPalette(GetWindowFrameTilesPal(selection)->pal, 0x70, 0x20); + LoadPalette(GetWindowFrameTilesPal(selection)->pal, BG_PLTT_ID(0x7), PLTT_SIZE_4BPP); sArrowPressed = TRUE; } return selection; @@ -653,24 +653,24 @@ static void DrawBgWindowFrames(void) { // bg, tile, x, y, width, height, palNum // Draw title window frame - FillBgTilemapBufferRect(1, TILE_TOP_CORNER_L, 1, 0, 1, 1, 7); - FillBgTilemapBufferRect(1, TILE_TOP_EDGE, 2, 0, 27, 1, 7); - FillBgTilemapBufferRect(1, TILE_TOP_CORNER_R, 28, 0, 1, 1, 7); - FillBgTilemapBufferRect(1, TILE_LEFT_EDGE, 1, 1, 1, 2, 7); - FillBgTilemapBufferRect(1, TILE_RIGHT_EDGE, 28, 1, 1, 2, 7); - FillBgTilemapBufferRect(1, TILE_BOT_CORNER_L, 1, 3, 1, 1, 7); - FillBgTilemapBufferRect(1, TILE_BOT_EDGE, 2, 3, 27, 1, 7); - FillBgTilemapBufferRect(1, TILE_BOT_CORNER_R, 28, 3, 1, 1, 7); + FillBgTilemapBufferRect(1, TILE_TOP_CORNER_L, 1, 0, 1, 1, 0x7); + FillBgTilemapBufferRect(1, TILE_TOP_EDGE, 2, 0, 27, 1, 0x7); + FillBgTilemapBufferRect(1, TILE_TOP_CORNER_R, 28, 0, 1, 1, 0x7); + FillBgTilemapBufferRect(1, TILE_LEFT_EDGE, 1, 1, 1, 2, 0x7); + FillBgTilemapBufferRect(1, TILE_RIGHT_EDGE, 28, 1, 1, 2, 0x7); + FillBgTilemapBufferRect(1, TILE_BOT_CORNER_L, 1, 3, 1, 1, 0x7); + FillBgTilemapBufferRect(1, TILE_BOT_EDGE, 2, 3, 27, 1, 0x7); + FillBgTilemapBufferRect(1, TILE_BOT_CORNER_R, 28, 3, 1, 1, 0x7); // Draw options list window frame - FillBgTilemapBufferRect(1, TILE_TOP_CORNER_L, 1, 4, 1, 1, 7); - FillBgTilemapBufferRect(1, TILE_TOP_EDGE, 2, 4, 26, 1, 7); - FillBgTilemapBufferRect(1, TILE_TOP_CORNER_R, 28, 4, 1, 1, 7); - FillBgTilemapBufferRect(1, TILE_LEFT_EDGE, 1, 5, 1, 18, 7); - FillBgTilemapBufferRect(1, TILE_RIGHT_EDGE, 28, 5, 1, 18, 7); - FillBgTilemapBufferRect(1, TILE_BOT_CORNER_L, 1, 19, 1, 1, 7); - FillBgTilemapBufferRect(1, TILE_BOT_EDGE, 2, 19, 26, 1, 7); - FillBgTilemapBufferRect(1, TILE_BOT_CORNER_R, 28, 19, 1, 1, 7); + FillBgTilemapBufferRect(1, TILE_TOP_CORNER_L, 1, 4, 1, 1, 0x7); + FillBgTilemapBufferRect(1, TILE_TOP_EDGE, 2, 4, 26, 1, 0x7); + FillBgTilemapBufferRect(1, TILE_TOP_CORNER_R, 28, 4, 1, 1, 0x7); + FillBgTilemapBufferRect(1, TILE_LEFT_EDGE, 1, 5, 1, 18, 0x7); + FillBgTilemapBufferRect(1, TILE_RIGHT_EDGE, 28, 5, 1, 18, 0x7); + FillBgTilemapBufferRect(1, TILE_BOT_CORNER_L, 1, 19, 1, 1, 0x7); + FillBgTilemapBufferRect(1, TILE_BOT_EDGE, 2, 19, 26, 1, 0x7); + FillBgTilemapBufferRect(1, TILE_BOT_CORNER_R, 28, 19, 1, 1, 0x7); CopyBgTilemapBufferToVram(1); } diff --git a/src/palette.c b/src/palette.c index 577257eff..e02e0de5b 100644 --- a/src/palette.c +++ b/src/palette.c @@ -431,7 +431,7 @@ static u8 UpdateNormalPaletteFade(void) gPaletteFade.delayCounter = 0; } - paletteOffset = 0; + paletteOffset = 0x00; if (!gPaletteFade.objPaletteToggle) { @@ -452,7 +452,7 @@ static u8 UpdateNormalPaletteFade(void) gPaletteFade.y, gPaletteFade.blendColor); selectedPalettes >>= 1; - paletteOffset += 16; + paletteOffset += 0x10; } gPaletteFade.objPaletteToggle ^= 1; @@ -495,7 +495,7 @@ static u8 UpdateNormalPaletteFade(void) void InvertPlttBuffer(u32 selectedPalettes) { - u16 paletteOffset = 0; + u16 paletteOffset = 0x00; while (selectedPalettes) { @@ -506,13 +506,13 @@ void InvertPlttBuffer(u32 selectedPalettes) gPlttBufferFaded[paletteOffset + i] = ~gPlttBufferFaded[paletteOffset + i]; } selectedPalettes >>= 1; - paletteOffset += 16; + paletteOffset += 0x10; } } void TintPlttBuffer(u32 selectedPalettes, s8 r, s8 g, s8 b) { - u16 paletteOffset = 0; + u16 paletteOffset = 0x00; while (selectedPalettes) { @@ -528,13 +528,13 @@ void TintPlttBuffer(u32 selectedPalettes, s8 r, s8 g, s8 b) } } selectedPalettes >>= 1; - paletteOffset += 16; + paletteOffset += 0x10; } } void UnfadePlttBuffer(u32 selectedPalettes) { - u16 paletteOffset = 0; + u16 paletteOffset = 0x00; while (selectedPalettes) { @@ -545,7 +545,7 @@ void UnfadePlttBuffer(u32 selectedPalettes) gPlttBufferFaded[paletteOffset + i] = gPlttBufferUnfaded[paletteOffset + i]; } selectedPalettes >>= 1; - paletteOffset += 16; + paletteOffset += 0x10; } } @@ -835,7 +835,7 @@ void BlendPalettes(u32 selectedPalettes, u8 coeff, u16 color) { u16 paletteOffset; - for (paletteOffset = 0; selectedPalettes; paletteOffset += 16) + for (paletteOffset = 0x00; selectedPalettes; paletteOffset += 0x10) { if (selectedPalettes & 1) BlendPalette(paletteOffset, 16, coeff, color); diff --git a/src/party_menu.c b/src/party_menu.c index 623f2eeca..2a4abef2a 100755 --- a/src/party_menu.c +++ b/src/party_menu.c @@ -668,8 +668,8 @@ static bool8 AllocPartyMenuBgGfx(void) } break; case 2: - LoadCompressedPalette(gPartyMenuBg_Pal, 0, 0x160); - CpuCopy16(gPlttBufferUnfaded, sPartyMenuInternal->palBuffer, 0x160); + LoadCompressedPalette(gPartyMenuBg_Pal, BG_PLTT_ID(0x0), 11 * PLTT_SIZE_4BPP); + CpuCopy16(gPlttBufferUnfaded, sPartyMenuInternal->palBuffer, 11 * PLTT_SIZE_4BPP); sPartyMenuInternal->data[0]++; break; case 3: @@ -1021,7 +1021,7 @@ static void CreateCancelConfirmPokeballSprites(void) if (gPartyMenu.menuType == PARTY_MENU_TYPE_MULTI_SHOWCASE) { // The showcase has no Cancel/Confirm buttons - FillBgTilemapBufferRect(1, 14, 23, 17, 7, 2, 1); + FillBgTilemapBufferRect(1, 14, 23, 17, 7, 2, 0x1); } else { @@ -2015,9 +2015,9 @@ static void InitPartyMenuWindows(u8 layout) DeactivateAllTextPrinters(); for (i = 0; i < PARTY_SIZE; i++) FillWindowPixelBuffer(i, PIXEL_FILL(0)); - LoadUserWindowBorderGfx(0, 0x4F, 0xD0); - LoadPalette(GetOverworldTextboxPalettePtr(), 0xE0, 0x20); - LoadPalette(gStandardMenuPalette, 0xF0, 0x20); + LoadUserWindowBorderGfx(0, 0x4F, BG_PLTT_ID(0xD)); + LoadPalette(GetOverworldTextboxPalettePtr(), BG_PLTT_ID(0xE), PLTT_SIZE_4BPP); + LoadPalette(gStandardMenuPalette, BG_PLTT_ID(0xF), PLTT_SIZE_4BPP); } static void CreateCancelConfirmWindows(bool8 chooseHalf) @@ -2119,9 +2119,9 @@ static void DrawEmptySlot(u8 windowId) #define LOAD_PARTY_BOX_PAL(paletteIds, paletteOffsets) \ { \ - LoadPalette(GetPartyMenuPalBufferPtr(paletteIds[0]), paletteOffsets[0] + palNum, 2); \ - LoadPalette(GetPartyMenuPalBufferPtr(paletteIds[1]), paletteOffsets[1] + palNum, 2); \ - LoadPalette(GetPartyMenuPalBufferPtr(paletteIds[2]), paletteOffsets[2] + palNum, 2); \ + LoadPalette(GetPartyMenuPalBufferPtr(paletteIds[0]), paletteOffsets[0] + palNum, PLTT_SIZEOF(1)); \ + LoadPalette(GetPartyMenuPalBufferPtr(paletteIds[1]), paletteOffsets[1] + palNum, PLTT_SIZEOF(1)); \ + LoadPalette(GetPartyMenuPalBufferPtr(paletteIds[2]), paletteOffsets[2] + palNum, PLTT_SIZEOF(1)); \ } static void LoadPartyBoxPalette(struct PartyMenuBox *menuBox, u8 palFlags) @@ -2263,13 +2263,13 @@ static void DisplayPartyPokemonGender(u8 gender, u16 species, u8 *nickname, stru switch (gender) { case MON_MALE: - LoadPalette(GetPartyMenuPalBufferPtr(sGenderMalePalIds[0]), sGenderPalOffsets[0] + palNum, 2); - LoadPalette(GetPartyMenuPalBufferPtr(sGenderMalePalIds[1]), sGenderPalOffsets[1] + palNum, 2); + LoadPalette(GetPartyMenuPalBufferPtr(sGenderMalePalIds[0]), sGenderPalOffsets[0] + palNum, PLTT_SIZEOF(1)); + LoadPalette(GetPartyMenuPalBufferPtr(sGenderMalePalIds[1]), sGenderPalOffsets[1] + palNum, PLTT_SIZEOF(1)); DisplayPartyPokemonBarDetail(menuBox->windowId, gText_MaleSymbol, 2, &menuBox->infoRects->dimensions[8]); break; case MON_FEMALE: - LoadPalette(GetPartyMenuPalBufferPtr(sGenderFemalePalIds[0]), sGenderPalOffsets[0] + palNum, 2); - LoadPalette(GetPartyMenuPalBufferPtr(sGenderFemalePalIds[1]), sGenderPalOffsets[1] + palNum, 2); + LoadPalette(GetPartyMenuPalBufferPtr(sGenderFemalePalIds[0]), sGenderPalOffsets[0] + palNum, PLTT_SIZEOF(1)); + LoadPalette(GetPartyMenuPalBufferPtr(sGenderFemalePalIds[1]), sGenderPalOffsets[1] + palNum, PLTT_SIZEOF(1)); DisplayPartyPokemonBarDetail(menuBox->windowId, gText_FemaleSymbol, 2, &menuBox->infoRects->dimensions[8]); break; } @@ -2330,16 +2330,16 @@ static void DisplayPartyPokemonHPBar(u16 hp, u16 maxhp, struct PartyMenuBox *men { case HP_BAR_GREEN: case HP_BAR_FULL: - LoadPalette(GetPartyMenuPalBufferPtr(sHPBarGreenPalIds[0]), sHPBarPalOffsets[0] + palNum, 2); - LoadPalette(GetPartyMenuPalBufferPtr(sHPBarGreenPalIds[1]), sHPBarPalOffsets[1] + palNum, 2); + LoadPalette(GetPartyMenuPalBufferPtr(sHPBarGreenPalIds[0]), sHPBarPalOffsets[0] + palNum, PLTT_SIZEOF(1)); + LoadPalette(GetPartyMenuPalBufferPtr(sHPBarGreenPalIds[1]), sHPBarPalOffsets[1] + palNum, PLTT_SIZEOF(1)); break; case HP_BAR_YELLOW: - LoadPalette(GetPartyMenuPalBufferPtr(sHPBarYellowPalIds[0]), sHPBarPalOffsets[0] + palNum, 2); - LoadPalette(GetPartyMenuPalBufferPtr(sHPBarYellowPalIds[1]), sHPBarPalOffsets[1] + palNum, 2); + LoadPalette(GetPartyMenuPalBufferPtr(sHPBarYellowPalIds[0]), sHPBarPalOffsets[0] + palNum, PLTT_SIZEOF(1)); + LoadPalette(GetPartyMenuPalBufferPtr(sHPBarYellowPalIds[1]), sHPBarPalOffsets[1] + palNum, PLTT_SIZEOF(1)); break; default: - LoadPalette(GetPartyMenuPalBufferPtr(sHPBarRedPalIds[0]), sHPBarPalOffsets[0] + palNum, 2); - LoadPalette(GetPartyMenuPalBufferPtr(sHPBarRedPalIds[1]), sHPBarPalOffsets[1] + palNum, 2); + LoadPalette(GetPartyMenuPalBufferPtr(sHPBarRedPalIds[0]), sHPBarPalOffsets[0] + palNum, PLTT_SIZEOF(1)); + LoadPalette(GetPartyMenuPalBufferPtr(sHPBarRedPalIds[1]), sHPBarPalOffsets[1] + palNum, PLTT_SIZEOF(1)); break; } @@ -2822,7 +2822,7 @@ static void MoveAndBufferPartySlot(const void *rectSrc, s16 x, s16 y, s16 width, { FillBgTilemapBufferRect_Palette0(0, 0, newX, y, newWidth, height); if (TryMovePartySlot(x + dir, width, &srcX, &newX, &newWidth)) - CopyRectToBgTilemapBufferRect(0, rectSrc, srcX, 0, width, height, newX, y, newWidth, height, 17, 0, 0); + CopyRectToBgTilemapBufferRect(0, rectSrc, srcX, 0, width, height, newX, y, newWidth, height, 17, 0, 0x0); } } diff --git a/src/player_pc.c b/src/player_pc.c index 9ec36d61d..1998495be 100644 --- a/src/player_pc.c +++ b/src/player_pc.c @@ -244,7 +244,7 @@ static const struct WindowTemplate sWindowTemplates_MainMenus[] = .tilemapTop = 1, .width = 9, .height = 6, - .paletteNum = 15, + .paletteNum = 0xF, .baseBlock = 1 }, [WIN_MAIN_MENU_BEDROOM] = { @@ -253,7 +253,7 @@ static const struct WindowTemplate sWindowTemplates_MainMenus[] = .tilemapTop = 1, .width = 9, .height = 8, - .paletteNum = 15, + .paletteNum = 0xF, .baseBlock = 1 }, [WIN_ITEM_STORAGE_MENU] = { @@ -262,7 +262,7 @@ static const struct WindowTemplate sWindowTemplates_MainMenus[] = .tilemapTop = 1, .width = 10, .height = 8, - .paletteNum = 15, + .paletteNum = 0xF, .baseBlock = 1 } }; @@ -302,7 +302,7 @@ static const struct WindowTemplate sWindowTemplates_ItemStorage[ITEMPC_WIN_COUNT .tilemapTop = 1, .width = 13, .height = 18, - .paletteNum = 15, + .paletteNum = 0xF, .baseBlock = 0x0001 }, [ITEMPC_WIN_MESSAGE] = { @@ -311,7 +311,7 @@ static const struct WindowTemplate sWindowTemplates_ItemStorage[ITEMPC_WIN_COUNT .tilemapTop = 13, .width = 13, .height = 6, - .paletteNum = 15, + .paletteNum = 0xF, .baseBlock = 0x00EB }, [ITEMPC_WIN_ICON] = { @@ -320,7 +320,7 @@ static const struct WindowTemplate sWindowTemplates_ItemStorage[ITEMPC_WIN_COUNT .tilemapTop = 8, .width = 3, .height = 3, - .paletteNum = 15, + .paletteNum = 0xF, .baseBlock = 0x0153 }, [ITEMPC_WIN_TITLE] = { @@ -329,7 +329,7 @@ static const struct WindowTemplate sWindowTemplates_ItemStorage[ITEMPC_WIN_COUNT .tilemapTop = 1, .width = 13, .height = 2, - .paletteNum = 15, + .paletteNum = 0xF, .baseBlock = 0x0139 }, [ITEMPC_WIN_QUANTITY] = { @@ -338,7 +338,7 @@ static const struct WindowTemplate sWindowTemplates_ItemStorage[ITEMPC_WIN_COUNT .tilemapTop = 9, .width = 6, .height = 2, - .paletteNum = 15, + .paletteNum = 0xF, .baseBlock = 0x015C }, [ITEMPC_WIN_YESNO] = { @@ -347,7 +347,7 @@ static const struct WindowTemplate sWindowTemplates_ItemStorage[ITEMPC_WIN_COUNT .tilemapTop = 7, .width = 5, .height = 4, - .paletteNum = 15, + .paletteNum = 0xF, .baseBlock = 0x0168 } }; diff --git a/src/pokeblock.c b/src/pokeblock.c index cf0513f80..769363b3e 100644 --- a/src/pokeblock.c +++ b/src/pokeblock.c @@ -314,7 +314,7 @@ static const struct WindowTemplate sWindowTemplates[] = .tilemapTop = 1, .width = 9, .height = 2, - .paletteNum = 15, + .paletteNum = 0xF, .baseBlock = 0x1E }, [WIN_LIST] = { @@ -323,7 +323,7 @@ static const struct WindowTemplate sWindowTemplates[] = .tilemapTop = 1, .width = 14, .height = 18, - .paletteNum = 15, + .paletteNum = 0xF, .baseBlock = 0x30 }, [WIN_SPICY] = { @@ -332,7 +332,7 @@ static const struct WindowTemplate sWindowTemplates[] = .tilemapTop = 13, .width = 5, .height = 2, - .paletteNum = 15, + .paletteNum = 0xF, .baseBlock = 0x12C }, [WIN_DRY] = { @@ -341,7 +341,7 @@ static const struct WindowTemplate sWindowTemplates[] = .tilemapTop = 15, .width = 5, .height = 2, - .paletteNum = 15, + .paletteNum = 0xF, .baseBlock = 0x136 }, [WIN_SWEET] = { @@ -350,7 +350,7 @@ static const struct WindowTemplate sWindowTemplates[] = .tilemapTop = 17, .width = 5, .height = 2, - .paletteNum = 15, + .paletteNum = 0xF, .baseBlock = 0x140 }, [WIN_BITTER] = { @@ -359,7 +359,7 @@ static const struct WindowTemplate sWindowTemplates[] = .tilemapTop = 13, .width = 5, .height = 2, - .paletteNum = 15, + .paletteNum = 0xF, .baseBlock = 0x14A }, [WIN_SOUR] = { @@ -368,7 +368,7 @@ static const struct WindowTemplate sWindowTemplates[] = .tilemapTop = 15, .width = 5, .height = 2, - .paletteNum = 15, + .paletteNum = 0xF, .baseBlock = 0x154 }, [WIN_FEEL] = { @@ -377,7 +377,7 @@ static const struct WindowTemplate sWindowTemplates[] = .tilemapTop = 17, .width = 2, .height = 2, - .paletteNum = 15, + .paletteNum = 0xF, .baseBlock = 0x15E }, [WIN_ACTIONS_TALL] = { @@ -386,7 +386,7 @@ static const struct WindowTemplate sWindowTemplates[] = .tilemapTop = 5, .width = 6, .height = 6, - .paletteNum = 15, + .paletteNum = 0xF, .baseBlock = 0x162 }, [WIN_ACTIONS] = { @@ -395,7 +395,7 @@ static const struct WindowTemplate sWindowTemplates[] = .tilemapTop = 7, .width = 6, .height = 4, - .paletteNum = 15, + .paletteNum = 0xF, .baseBlock = 0x186 }, [WIN_TOSS_MSG] = { @@ -404,7 +404,7 @@ static const struct WindowTemplate sWindowTemplates[] = .tilemapTop = 15, .width = 27, .height = 4, - .paletteNum = 15, + .paletteNum = 0xF, .baseBlock = 0x19E }, DUMMY_WIN_TEMPLATE @@ -417,7 +417,7 @@ static const struct WindowTemplate sTossPkblockWindowTemplate = .tilemapTop = 9, .width = 5, .height = 4, - .paletteNum = 15, + .paletteNum = 0xF, .baseBlock = 0x20A }; @@ -653,7 +653,7 @@ static bool8 LoadPokeblockMenuGfx(void) } break; case 2: - LoadCompressedPalette(gMenuPokeblock_Pal, 0, 0xC0); + LoadCompressedPalette(gMenuPokeblock_Pal, BG_PLTT_ID(0x0), 6 * PLTT_SIZE_4BPP); sPokeblockMenu->gfxState++; break; case 3: @@ -679,9 +679,9 @@ static void HandleInitWindows(void) InitWindows(sWindowTemplates); DeactivateAllTextPrinters(); - LoadUserWindowBorderGfx(0, 1, 0xE0); - LoadMessageBoxGfx(0, 0xA, 0xD0); - LoadPalette(gStandardMenuPalette, 0xF0, 0x20); + LoadUserWindowBorderGfx(0, 1, BG_PLTT_ID(0xE)); + LoadMessageBoxGfx(0, 0xA, BG_PLTT_ID(0xD)); + LoadPalette(gStandardMenuPalette, BG_PLTT_ID(0xF), PLTT_SIZE_4BPP); for (i = 0; i < ARRAY_COUNT(sWindowTemplates) - 1; i++) FillWindowPixelBuffer(i, PIXEL_FILL(0)); diff --git a/src/pokeblock_feed.c b/src/pokeblock_feed.c index 5267c3b84..53de0ee9a 100644 --- a/src/pokeblock_feed.c +++ b/src/pokeblock_feed.c @@ -459,7 +459,7 @@ static const struct WindowTemplate sWindowTemplates[] = .tilemapTop = 15, .width = 28, .height = 4, - .paletteNum = 15, + .paletteNum = 0xF, .baseBlock = 0xA }, DUMMY_WIN_TEMPLATE @@ -771,7 +771,7 @@ static bool8 LoadMonAndSceneGfx(struct Pokemon *mon) } break; case 8: - LoadCompressedPalette(gBattleTerrainPalette_Frontier, 0x20, 0x60); + LoadCompressedPalette(gBattleTerrainPalette_Frontier, BG_PLTT_ID(0x2), 3 * PLTT_SIZE_4BPP); sPokeblockFeed->loadGfxState = 0; return TRUE; } @@ -783,8 +783,8 @@ static void HandleInitWindows(void) { InitWindows(sWindowTemplates); DeactivateAllTextPrinters(); - LoadUserWindowBorderGfx(0, 1, 0xE0); - LoadPalette(gStandardMenuPalette, 0xF0, 0x20); + LoadUserWindowBorderGfx(0, 1, BG_PLTT_ID(0xE)); + LoadPalette(gStandardMenuPalette, BG_PLTT_ID(0xF), PLTT_SIZE_4BPP); FillWindowPixelBuffer(0, PIXEL_FILL(0)); PutWindowTilemap(0); ScheduleBgCopyTilemapToVram(0); diff --git a/src/pokedex.c b/src/pokedex.c index 8abf97248..6a5de6017 100644 --- a/src/pokedex.c +++ b/src/pokedex.c @@ -831,7 +831,7 @@ static const struct WindowTemplate sPokemonList_WindowTemplate[] = .tilemapTop = 0, .width = 32, .height = 32, - .paletteNum = 0, + .paletteNum = 0x0, .baseBlock = 1, }, DUMMY_WIN_TEMPLATE @@ -902,7 +902,7 @@ static const struct WindowTemplate sInfoScreen_WindowTemplates[] = .tilemapTop = 0, .width = 32, .height = 20, - .paletteNum = 0, + .paletteNum = 0x0, .baseBlock = 1, }, [WIN_FOOTPRINT] = @@ -912,7 +912,7 @@ static const struct WindowTemplate sInfoScreen_WindowTemplates[] = .tilemapTop = 8, .width = 2, .height = 2, - .paletteNum = 15, + .paletteNum = 0xF, .baseBlock = 641, }, [WIN_CRY_WAVE] = @@ -922,7 +922,7 @@ static const struct WindowTemplate sInfoScreen_WindowTemplates[] = .tilemapTop = 12, .width = 32, .height = 7, - .paletteNum = 8, + .paletteNum = 0x8, .baseBlock = 645, }, [WIN_VU_METER] = @@ -932,7 +932,7 @@ static const struct WindowTemplate sInfoScreen_WindowTemplates[] = .tilemapTop = 3, .width = 10, .height = 8, - .paletteNum = 9, + .paletteNum = 0x9, .baseBlock = 869, }, DUMMY_WIN_TEMPLATE @@ -969,7 +969,7 @@ static const struct WindowTemplate sNewEntryInfoScreen_WindowTemplates[] = .tilemapTop = 0, .width = 32, .height = 20, - .paletteNum = 0, + .paletteNum = 0x0, .baseBlock = 1, }, [WIN_FOOTPRINT] = @@ -979,7 +979,7 @@ static const struct WindowTemplate sNewEntryInfoScreen_WindowTemplates[] = .tilemapTop = 8, .width = 2, .height = 2, - .paletteNum = 15, + .paletteNum = 0xF, .baseBlock = 641, }, DUMMY_WIN_TEMPLATE @@ -1490,7 +1490,7 @@ static const struct WindowTemplate sSearchMenu_WindowTemplate[] = .tilemapTop = 0, .width = 32, .height = 20, - .paletteNum = 0, + .paletteNum = 0x0, .baseBlock = 0x0001, }, DUMMY_WIN_TEMPLATE @@ -2145,12 +2145,12 @@ static bool8 LoadPokedexListPage(u8 page) static void LoadPokedexBgPalette(bool8 isSearchResults) { if (isSearchResults == TRUE) - LoadPalette(gPokedexSearchResults_Pal + 1, 1, 0xBE); + LoadPalette(gPokedexSearchResults_Pal + 1, BG_PLTT_ID(0x0) + 1, PLTT_SIZEOF(6 * 16 - 1)); else if (!IsNationalPokedexEnabled()) - LoadPalette(gPokedexBgHoenn_Pal + 1, 1, 0xBE); + LoadPalette(gPokedexBgHoenn_Pal + 1, BG_PLTT_ID(0x0) + 1, PLTT_SIZEOF(6 * 16 - 1)); else - LoadPalette(gPokedexBgNational_Pal + 1, 1, 0xBE); - LoadPalette(GetOverworldTextboxPalettePtr(), 0xF0, 32); + LoadPalette(gPokedexBgNational_Pal + 1, BG_PLTT_ID(0x0) + 1, PLTT_SIZEOF(6 * 16 - 1)); + LoadPalette(GetOverworldTextboxPalettePtr(), BG_PLTT_ID(0xF), PLTT_SIZE_4BPP); } static void FreeWindowAndBgBuffers(void) @@ -3264,7 +3264,7 @@ static void Task_LoadInfoScreen(u8 taskId) case 4: PrintMonInfo(sPokedexListItem->dexNum, sPokedexView->dexMode == DEX_MODE_HOENN ? FALSE : TRUE, sPokedexListItem->owned, 0); if (!sPokedexListItem->owned) - LoadPalette(gPlttBufferUnfaded + 1, 0x31, 0x1E); + LoadPalette(gPlttBufferUnfaded + 1, BG_PLTT_ID(0x3) + 1, PLTT_SIZEOF(16 - 1)); CopyWindowToVram(WIN_INFO, COPYWIN_FULL); CopyBgTilemapBufferToVram(1); CopyBgTilemapBufferToVram(2); @@ -3713,7 +3713,7 @@ static void LoadPlayArrowPalette(bool8 cryPlaying) color = RGB(18, 28, 0); else color = RGB(15, 21, 0); - LoadPalette(&color, 0x5D, 2); + LoadPalette(&color, BG_PLTT_ID(0x5) + 13, PLTT_SIZEOF(1)); } static void Task_LoadSizeScreen(u8 taskId) @@ -3768,7 +3768,7 @@ static void Task_LoadSizeScreen(u8 taskId) gSprites[spriteId].oam.priority = 0; gSprites[spriteId].y2 = gPokedexEntries[sPokedexListItem->dexNum].trainerOffset; SetOamMatrix(1, gPokedexEntries[sPokedexListItem->dexNum].trainerScale, 0, 0, gPokedexEntries[sPokedexListItem->dexNum].trainerScale); - LoadPalette(sSizeScreenSilhouette_Pal, (gSprites[spriteId].oam.paletteNum + 16) * 16, 0x20); + LoadPalette(sSizeScreenSilhouette_Pal, OBJ_PLTT_ID2(gSprites[spriteId].oam.paletteNum), PLTT_SIZE_4BPP); gTasks[taskId].tTrainerSpriteId = spriteId; gMain.state++; break; @@ -3779,7 +3779,7 @@ static void Task_LoadSizeScreen(u8 taskId) gSprites[spriteId].oam.priority = 0; gSprites[spriteId].y2 = gPokedexEntries[sPokedexListItem->dexNum].pokemonOffset; SetOamMatrix(2, gPokedexEntries[sPokedexListItem->dexNum].pokemonScale, 0, 0, gPokedexEntries[sPokedexListItem->dexNum].pokemonScale); - LoadPalette(sSizeScreenSilhouette_Pal, (gSprites[spriteId].oam.paletteNum + 16) * 16, 0x20); + LoadPalette(sSizeScreenSilhouette_Pal, OBJ_PLTT_ID2(gSprites[spriteId].oam.paletteNum), PLTT_SIZE_4BPP); gTasks[taskId].tMonSpriteId = spriteId; CopyWindowToVram(WIN_INFO, COPYWIN_FULL); CopyBgTilemapBufferToVram(1); @@ -4030,11 +4030,11 @@ static void Task_HandleCaughtMonPageInput(u8 taskId) // Flicker caught screen color else if (++gTasks[taskId].tPalTimer & 16) { - LoadPalette(gPokedexBgHoenn_Pal + 1, 0x31, 14); + LoadPalette(gPokedexBgHoenn_Pal + 1, BG_PLTT_ID(0x3) + 1, PLTT_SIZEOF(7)); } else { - LoadPalette(gPokedexCaughtScreen_Pal + 1, 0x31, 14); + LoadPalette(gPokedexCaughtScreen_Pal + 1, BG_PLTT_ID(0x3) + 1, PLTT_SIZEOF(7)); } } @@ -4063,7 +4063,7 @@ static void Task_ExitCaughtMonPage(u8 taskId) personality = ((u16)gTasks[taskId].tPersonalityHi << 16) | (u16)gTasks[taskId].tPersonalityLo; paletteNum = gSprites[gTasks[taskId].tMonSpriteId].oam.paletteNum; lzPaletteData = GetMonSpritePalFromSpeciesAndPersonality(species, otId, personality); - LoadCompressedPalette(lzPaletteData, 0x100 | paletteNum * 16, 32); + LoadCompressedPalette(lzPaletteData, OBJ_PLTT_ID(paletteNum), PLTT_SIZE_4BPP); DestroyTask(taskId); } } @@ -4836,7 +4836,7 @@ static void Task_LoadSearchMenu(u8 taskId) CopyToBgTilemapBuffer(3, gPokedexSearchMenuHoenn_Tilemap, 0, 0); else CopyToBgTilemapBuffer(3, gPokedexSearchMenuNational_Tilemap, 0, 0); - LoadPalette(gPokedexSearchMenu_Pal + 1, 1, 0x7E); + LoadPalette(gPokedexSearchMenu_Pal + 1, BG_PLTT_ID(0x0) + 1, PLTT_SIZEOF(4 * 16 - 1)); gMain.state = 1; } break; diff --git a/src/pokedex_cry_screen.c b/src/pokedex_cry_screen.c index 406d1377d..ed53ebf1e 100644 --- a/src/pokedex_cry_screen.c +++ b/src/pokedex_cry_screen.c @@ -258,7 +258,7 @@ bool8 LoadCryWaveformWindow(struct CryScreenWindow *window, u8 windowId) break; case 2: DrawWaveformWindow(windowId); - LoadPalette(sCryScreenBg_Pal, window->paletteNo * 16, 32); + LoadPalette(sCryScreenBg_Pal, BG_PLTT_ID(window->paletteNo), PLTT_SIZE_4BPP); finished = TRUE; break; } @@ -458,7 +458,7 @@ bool8 LoadCryMeter(struct CryScreenWindow *window, u8 windowId) sCryMeterNeedle = AllocZeroed(sizeof(*sCryMeterNeedle)); CopyToWindowPixelBuffer(windowId, sCryMeter_Gfx, 0, 0); - LoadPalette(sCryMeter_Pal, window->paletteNo * 16, 32); + LoadPalette(sCryMeter_Pal, BG_PLTT_ID(window->paletteNo), PLTT_SIZE_4BPP); gDexCryScreenState++; break; case 1: diff --git a/src/pokemon_animation.c b/src/pokemon_animation.c index 9a95edf4b..ae9df9ba1 100644 --- a/src/pokemon_animation.c +++ b/src/pokemon_animation.c @@ -1,5 +1,6 @@ #include "global.h" #include "battle.h" +#include "palette.h" #include "pokemon.h" #include "pokemon_animation.h" #include "sprite.h" @@ -1538,7 +1539,7 @@ static void Anim_CircleCounterclockwise(struct Sprite *sprite) #define GlowColor(color, colorIncrement, speed) \ { \ if (sprite->data[2] == 0) \ - sprite->data[7] = (sprite->oam.paletteNum * 16) + 256; \ + sprite->data[7] = OBJ_PLTT_ID(sprite->oam.paletteNum); \ \ if (sprite->data[2] > 128) \ { \ @@ -2473,7 +2474,7 @@ static void Anim_FlashYellow(struct Sprite *sprite) { if (++sprite->data[2] == 1) { - sprite->data[7] = (sprite->oam.paletteNum * 16) + 256; + sprite->data[7] = OBJ_PLTT_ID(sprite->oam.paletteNum); sprite->data[6] = 0; sprite->data[5] = 0; sprite->data[4] = 0; @@ -5262,7 +5263,7 @@ static void Anim_ShakeFlashYellow_Fast(struct Sprite *sprite) { if (++sprite->data[2] == 1) { - sprite->data[7] = (sprite->oam.paletteNum * 16) + 256; + sprite->data[7] = OBJ_PLTT_ID(sprite->oam.paletteNum); sprite->data[6] = 0; sprite->data[5] = 0; sprite->data[4] = 0; @@ -5276,7 +5277,7 @@ static void Anim_ShakeFlashYellow(struct Sprite *sprite) { if (++sprite->data[2] == 1) { - sprite->data[7] = (sprite->oam.paletteNum * 16) + 256; + sprite->data[7] = OBJ_PLTT_ID(sprite->oam.paletteNum); sprite->data[6] = 0; sprite->data[5] = 0; sprite->data[4] = 0; @@ -5290,7 +5291,7 @@ static void Anim_ShakeFlashYellow_Slow(struct Sprite *sprite) { if (++sprite->data[2] == 1) { - sprite->data[7] = (sprite->oam.paletteNum * 16) + 256; + sprite->data[7] = OBJ_PLTT_ID(sprite->oam.paletteNum); sprite->data[6] = 0; sprite->data[5] = 0; sprite->data[4] = 0; @@ -5356,7 +5357,7 @@ static void Anim_ShakeGlowRed_Fast(struct Sprite *sprite) { if (sprite->data[2] == 0) { - sprite->data[7] = (sprite->oam.paletteNum * 16) + 256; + sprite->data[7] = OBJ_PLTT_ID(sprite->oam.paletteNum); sprite->data[0] = 10; sprite->data[5] = 0; sprite->data[4] = 2; @@ -5377,7 +5378,7 @@ static void Anim_ShakeGlowRed(struct Sprite *sprite) { if (sprite->data[2] == 0) { - sprite->data[7] = (sprite->oam.paletteNum * 16) + 256; + sprite->data[7] = OBJ_PLTT_ID(sprite->oam.paletteNum); sprite->data[0] = 20; sprite->data[5] = 0; sprite->data[4] = 1; @@ -5398,7 +5399,7 @@ static void Anim_ShakeGlowRed_Slow(struct Sprite *sprite) { if (sprite->data[2] == 0) { - sprite->data[7] = (sprite->oam.paletteNum * 16) + 256; + sprite->data[7] = OBJ_PLTT_ID(sprite->oam.paletteNum); sprite->data[0] = 80; sprite->data[5] = 0; sprite->data[4] = 1; @@ -5419,7 +5420,7 @@ static void Anim_ShakeGlowGreen_Fast(struct Sprite *sprite) { if (sprite->data[2] == 0) { - sprite->data[7] = (sprite->oam.paletteNum * 16) + 256; + sprite->data[7] = OBJ_PLTT_ID(sprite->oam.paletteNum); sprite->data[0] = 10; sprite->data[5] = 0; sprite->data[4] = 2; @@ -5440,7 +5441,7 @@ static void Anim_ShakeGlowGreen(struct Sprite *sprite) { if (sprite->data[2] == 0) { - sprite->data[7] = (sprite->oam.paletteNum * 16) + 256; + sprite->data[7] = OBJ_PLTT_ID(sprite->oam.paletteNum); sprite->data[0] = 20; sprite->data[5] = 0; sprite->data[4] = 1; @@ -5461,7 +5462,7 @@ static void Anim_ShakeGlowGreen_Slow(struct Sprite *sprite) { if (sprite->data[2] == 0) { - sprite->data[7] = (sprite->oam.paletteNum * 16) + 256; + sprite->data[7] = OBJ_PLTT_ID(sprite->oam.paletteNum); sprite->data[0] = 80; sprite->data[5] = 0; sprite->data[4] = 1; @@ -5482,7 +5483,7 @@ static void Anim_ShakeGlowBlue_Fast(struct Sprite *sprite) { if (sprite->data[2] == 0) { - sprite->data[7] = (sprite->oam.paletteNum * 16) + 256; + sprite->data[7] = OBJ_PLTT_ID(sprite->oam.paletteNum); sprite->data[0] = 10; sprite->data[5] = 0; sprite->data[4] = 2; @@ -5503,7 +5504,7 @@ static void Anim_ShakeGlowBlue(struct Sprite *sprite) { if (sprite->data[2] == 0) { - sprite->data[7] = (sprite->oam.paletteNum * 16) + 256; + sprite->data[7] = OBJ_PLTT_ID(sprite->oam.paletteNum); sprite->data[0] = 20; sprite->data[5] = 0; sprite->data[4] = 1; @@ -5524,7 +5525,7 @@ static void Anim_ShakeGlowBlue_Slow(struct Sprite *sprite) { if (sprite->data[2] == 0) { - sprite->data[7] = (sprite->oam.paletteNum * 16) + 256; + sprite->data[7] = OBJ_PLTT_ID(sprite->oam.paletteNum); sprite->data[0] = 80; sprite->data[5] = 0; sprite->data[4] = 1; diff --git a/src/pokemon_icon.c b/src/pokemon_icon.c index 7f9b146a4..92df35ecc 100644 --- a/src/pokemon_icon.c +++ b/src/pokemon_icon.c @@ -1201,12 +1201,12 @@ void TryLoadAllMonIconPalettesAtOffset(u16 offset) s32 i; const struct SpritePalette* monIconPalettePtr; - if (offset <= 0xA0) + if (offset <= BG_PLTT_ID(0xA)) { monIconPalettePtr = gMonIconPaletteTable; - for(i = ARRAY_COUNT(gMonIconPaletteTable) - 1; i >= 0; i--) + for (i = ARRAY_COUNT(gMonIconPaletteTable) - 1; i >= 0; i--) { - LoadPalette(monIconPalettePtr->data, offset, 0x20); + LoadPalette(monIconPalettePtr->data, offset, PLTT_SIZE_4BPP); offset += 0x10; monIconPalettePtr++; } diff --git a/src/pokemon_jump.c b/src/pokemon_jump.c index 4f2a14fdf..4039a62c6 100755 --- a/src/pokemon_jump.c +++ b/src/pokemon_jump.c @@ -3105,7 +3105,7 @@ static const struct WindowTemplate sWindowTemplates[] = .tilemapTop = 0, .width = 6, .height = 2, - .paletteNum = 2, + .paletteNum = 0x2, .baseBlock = 0x13, }, [WIN_TIMES] = { @@ -3114,7 +3114,7 @@ static const struct WindowTemplate sWindowTemplates[] = .tilemapTop = 0, .width = 6, .height = 2, - .paletteNum = 2, + .paletteNum = 0x2, .baseBlock = 0x1F, }, DUMMY_WIN_TEMPLATE, @@ -3183,21 +3183,21 @@ static void LoadPokeJumpGfx(void) ResetTempTileDataBuffers(); LoadSpriteSheetsAndPalettes(sPokemonJumpGfx); InitDigitPrinters(); - LoadPalette(sBg_Pal, 0, 0x20); + LoadPalette(sBg_Pal, BG_PLTT_ID(0x0), PLTT_SIZE_4BPP); DecompressAndCopyTileDataToVram(BG_SCENERY, sBg_Gfx, 0, 0, 0); DecompressAndCopyTileDataToVram(BG_SCENERY, sBg_Tilemap, 0, 0, 1); - LoadPalette(sVenusaur_Pal, 0x30, 0x20); + LoadPalette(sVenusaur_Pal, BG_PLTT_ID(0x3), PLTT_SIZE_4BPP); DecompressAndCopyTileDataToVram(BG_VENUSAUR, sVenusaur_Gfx, 0, 0, 0); DecompressAndCopyTileDataToVram(BG_VENUSAUR, sVenusaur_Tilemap, 0, 0, 1); - LoadPalette(sBonuses_Pal, 0x10, 0x20); + LoadPalette(sBonuses_Pal, BG_PLTT_ID(0x1), PLTT_SIZE_4BPP); DecompressAndCopyTileDataToVram(BG_BONUSES, sBonuses_Gfx, 0, 0, 0); DecompressAndCopyTileDataToVram(BG_BONUSES, sBonuses_Tilemap, 0, 0, 1); - LoadPalette(sInterface_Pal, 0x20, 0x20); + LoadPalette(sInterface_Pal, BG_PLTT_ID(0x2), PLTT_SIZE_4BPP); SetBgTilemapBuffer(BG_INTERFACE, sPokemonJumpGfx->tilemapBuffer); FillBgTilemapBufferRect_Palette0(BG_INTERFACE, 0, 0, 0, 0x20, 0x20); PrintScoreSuffixes(); PrintScore(0); - LoadUserWindowBorderGfxOnBg(0, 1, 0xE0); + LoadUserWindowBorderGfxOnBg(0, 1, BG_PLTT_ID(0xE)); CopyBgTilemapBufferToVram(BG_INTERFACE); CopyBgTilemapBufferToVram(BG_VENUSAUR); CopyBgTilemapBufferToVram(BG_BONUSES); @@ -3321,7 +3321,7 @@ static void Msg_WantToPlayAgain(void) if (!IsDma3ManagerBusyWithBgCopy()) { PutWindowTilemap(sPokemonJumpGfx->msgWindowId); - DrawTextBorderOuter(sPokemonJumpGfx->msgWindowId, 1, 14); + DrawTextBorderOuter(sPokemonJumpGfx->msgWindowId, 1, 0xE); CreatePokeJumpYesNoMenu(23, 7, 0); CopyBgTilemapBufferToVram(BG_INTERFACE); sPokemonJumpGfx->mainState++; @@ -3348,7 +3348,7 @@ static void Msg_SavingDontTurnOff(void) if (!IsDma3ManagerBusyWithBgCopy()) { PutWindowTilemap(sPokemonJumpGfx->msgWindowId); - DrawTextBorderOuter(sPokemonJumpGfx->msgWindowId, 1, 14); + DrawTextBorderOuter(sPokemonJumpGfx->msgWindowId, 1, 0xE); CopyBgTilemapBufferToVram(BG_INTERFACE); sPokemonJumpGfx->mainState++; } @@ -3391,7 +3391,7 @@ static void Msg_SomeoneDroppedOut(void) if (!IsDma3ManagerBusyWithBgCopy()) { PutWindowTilemap(sPokemonJumpGfx->msgWindowId); - DrawTextBorderOuter(sPokemonJumpGfx->msgWindowId, 1, 14); + DrawTextBorderOuter(sPokemonJumpGfx->msgWindowId, 1, 0xE); CopyBgTilemapBufferToVram(BG_INTERFACE); sPokemonJumpGfx->mainState++; } @@ -3417,7 +3417,7 @@ static void Msg_CommunicationStandby(void) if (!IsDma3ManagerBusyWithBgCopy()) { PutWindowTilemap(sPokemonJumpGfx->msgWindowId); - DrawTextBorderOuter(sPokemonJumpGfx->msgWindowId, 1, 14); + DrawTextBorderOuter(sPokemonJumpGfx->msgWindowId, 1, 0xE); CopyBgTilemapBufferToVram(BG_INTERFACE); sPokemonJumpGfx->mainState++; } @@ -3527,7 +3527,7 @@ static bool32 DoPrizeMessageAndFanfare(void) if (!IsDma3ManagerBusyWithBgCopy()) { PutWindowTilemap(sPokemonJumpGfx->msgWindowId); - DrawTextBorderOuter(sPokemonJumpGfx->msgWindowId, 1, 14); + DrawTextBorderOuter(sPokemonJumpGfx->msgWindowId, 1, 0xE); CopyBgTilemapBufferToVram(BG_INTERFACE); sPokemonJumpGfx->msgWindowState++; } @@ -3618,7 +3618,7 @@ static void CreatePokeJumpYesNoMenu(u16 left, u16 top, u8 cursorPos) window.tilemapTop = top; window.width = 6; window.height = 4; - window.paletteNum = 2; + window.paletteNum = 0x2; window.baseBlock = 0x2B; CreateYesNoMenu(&window, 1, 0xD, cursorPos); @@ -3832,7 +3832,7 @@ static void AddPlayerNameWindows(void) window.bg = BG_INTERFACE; window.width = 8; window.height = 2; - window.paletteNum = 2; + window.paletteNum = 0x2; window.baseBlock = 0x2B; for (i = 0; i < playersCount; i++) @@ -4142,7 +4142,7 @@ static const struct WindowTemplate sWindowTemplate_Records = .tilemapTop = 1, .width = 28, .height = 9, - .paletteNum = 15, + .paletteNum = 0xF, .baseBlock = 0x1, }; @@ -4213,7 +4213,7 @@ static void PrintRecordsText(u16 windowId, int width) recordNums[1] = records->bestJumpScore; recordNums[2] = records->excellentsInRow; - LoadUserWindowBorderGfx_(windowId, 0x21D, 0xD0); + LoadUserWindowBorderGfx_(windowId, 0x21D, BG_PLTT_ID(0xD)); DrawTextBorderOuter(windowId, 0x21D, 0xD); FillWindowPixelBuffer(windowId, PIXEL_FILL(1)); AddTextPrinterParameterized(windowId, FONT_NORMAL, gText_PkmnJumpRecords, GetStringCenterAlignXOffset(FONT_NORMAL, gText_PkmnJumpRecords, width * 8), 1, TEXT_SKIP_DRAW, NULL); diff --git a/src/pokemon_storage_system.c b/src/pokemon_storage_system.c index 32069153e..010ec80f7 100644 --- a/src/pokemon_storage_system.c +++ b/src/pokemon_storage_system.c @@ -895,7 +895,7 @@ static const struct WindowTemplate sWindowTemplate_MainMenu = .tilemapTop = 1, .width = 17, .height = 10, - .paletteNum = 15, + .paletteNum = 0xF, .baseBlock = 0x1, }; @@ -976,7 +976,7 @@ static const struct WindowTemplate sWindowTemplates[] = .tilemapTop = 11, .width = 9, .height = 7, - .paletteNum = 3, + .paletteNum = 0x3, .baseBlock = 0xC0, }, [WIN_MESSAGE] = { @@ -985,7 +985,7 @@ static const struct WindowTemplate sWindowTemplates[] = .tilemapTop = 17, .width = 18, .height = 2, - .paletteNum = 15, + .paletteNum = 0xF, .baseBlock = 0x14, }, [WIN_ITEM_DESC] = { @@ -994,7 +994,7 @@ static const struct WindowTemplate sWindowTemplates[] = .tilemapTop = 13, .width = 21, .height = 7, - .paletteNum = 15, + .paletteNum = 0xF, .baseBlock = 0x14, }, DUMMY_WIN_TEMPLATE @@ -1104,7 +1104,7 @@ static const struct WindowTemplate sYesNoWindowTemplate = .tilemapTop = 11, .width = 5, .height = 4, - .paletteNum = 15, + .paletteNum = 0xF, .baseBlock = 0x5C, }; @@ -2128,7 +2128,7 @@ static void Task_InitPokeStorage(u8 taskId) PutWindowTilemap(WIN_DISPLAY_INFO); ClearWindowTilemap(WIN_MESSAGE); CpuFill32(0, (void *)VRAM, 0x200); - LoadUserWindowBorderGfx(WIN_MESSAGE, 0xB, 0xE0); + LoadUserWindowBorderGfx(WIN_MESSAGE, 0xB, BG_PLTT_ID(0xE)); break; case 3: ResetAllBgCoords(); @@ -3849,13 +3849,13 @@ static void LoadWaveformSpritePalette(void) static void InitPalettesAndSprites(void) { - LoadPalette(sInterface_Pal, 0, sizeof(sInterface_Pal)); - LoadPalette(sPkmnDataGray_Pal, 0x20, sizeof(sPkmnDataGray_Pal)); - LoadPalette(sTextWindows_Pal, 0xF0, sizeof(sTextWindows_Pal)); + LoadPalette(sInterface_Pal, BG_PLTT_ID(0x0), sizeof(sInterface_Pal)); + LoadPalette(sPkmnDataGray_Pal, BG_PLTT_ID(0x2), sizeof(sPkmnDataGray_Pal)); + LoadPalette(sTextWindows_Pal, BG_PLTT_ID(0xF), sizeof(sTextWindows_Pal)); if (sStorage->boxOption != OPTION_MOVE_ITEMS) - LoadPalette(sBg_Pal, 0x30, sizeof(sBg_Pal)); + LoadPalette(sBg_Pal, BG_PLTT_ID(0x3), sizeof(sBg_Pal)); else - LoadPalette(sBgMoveItems_Pal, 0x30, sizeof(sBgMoveItems_Pal)); + LoadPalette(sBgMoveItems_Pal, BG_PLTT_ID(0x3), sizeof(sBgMoveItems_Pal)); SetGpuReg(REG_OFFSET_BG1CNT, BGCNT_PRIORITY(1) | BGCNT_CHARBASE(1) | BGCNT_16COLOR | BGCNT_SCREENBASE(30)); CreateDisplayMonSprite(); @@ -3958,7 +3958,7 @@ static void CreateDisplayMonSprite(void) break; sStorage->displayMonSprite = &gSprites[spriteId]; - sStorage->displayMonPalOffset = palSlot * 16 + 0x100; + sStorage->displayMonPalOffset = OBJ_PLTT_ID(palSlot); sStorage->displayMonTilePtr = (void *) OBJ_VRAM0 + tileStart * TILE_SIZE_4BPP; } while (0); @@ -3979,7 +3979,7 @@ static void LoadDisplayMonGfx(u16 species, u32 pid) LoadSpecialPokePic(&gMonFrontPicTable[species], sStorage->tileBuffer, species, pid, TRUE); LZ77UnCompWram(sStorage->displayMonPalette, sStorage->displayMonPalBuffer); CpuCopy32(sStorage->tileBuffer, sStorage->displayMonTilePtr, MON_PIC_SIZE); - LoadPalette(sStorage->displayMonPalBuffer, sStorage->displayMonPalOffset, 0x20); + LoadPalette(sStorage->displayMonPalBuffer, sStorage->displayMonPalOffset, PLTT_SIZE_4BPP); sStorage->displayMonSprite->invisible = FALSE; } else @@ -4045,7 +4045,7 @@ static void UpdateWaveformAnimation(void) static void InitSupplementalTilemaps(void) { LZ77UnCompWram(gStorageSystemPartyMenu_Tilemap, sStorage->partyMenuTilemapBuffer); - LoadPalette(gStorageSystemPartyMenu_Pal, 0x10, 0x20); + LoadPalette(gStorageSystemPartyMenu_Pal, BG_PLTT_ID(0x1), PLTT_SIZE_4BPP); TilemapUtil_SetMap(TILEMAPID_PARTY_MENU, 1, sStorage->partyMenuTilemapBuffer, 12, 22); TilemapUtil_SetMap(TILEMAPID_CLOSE_BUTTON, 1, sCloseBoxButton_Tilemap, 9, 4); TilemapUtil_SetPos(TILEMAPID_PARTY_MENU, 10, 0); @@ -4267,7 +4267,7 @@ static void UpdateBoxToSendMons(void) static void InitPokeStorageBg0(void) { SetGpuReg(REG_OFFSET_BG0CNT, BGCNT_PRIORITY(0) | BGCNT_CHARBASE(0) | BGCNT_SCREENBASE(29)); - LoadUserWindowBorderGfx(WIN_MESSAGE, 2, 208); + LoadUserWindowBorderGfx(WIN_MESSAGE, 2, BG_PLTT_ID(0xD)); FillBgTilemapBufferRect(0, 0, 0, 0, 32, 20, 17); CopyBgTilemapBufferToVram(0); } @@ -4308,7 +4308,7 @@ static void PrintMessage(u8 id) DynamicPlaceholderTextUtil_ExpandPlaceholders(sStorage->messageText, sMessages[id].text); FillWindowPixelBuffer(WIN_MESSAGE, PIXEL_FILL(1)); AddTextPrinterParameterized(WIN_MESSAGE, FONT_NORMAL, sStorage->messageText, 0, 1, TEXT_SKIP_DRAW, NULL); - DrawTextBorderOuter(WIN_MESSAGE, 2, 14); + DrawTextBorderOuter(WIN_MESSAGE, 2, 0xE); PutWindowTilemap(WIN_MESSAGE); CopyWindowToVram(WIN_MESSAGE, COPYWIN_GFX); ScheduleBgCopyTilemapToVram(0); @@ -5380,9 +5380,9 @@ static void LoadWallpaperGfx(u8 boxId, s8 direction) DrawWallpaper(sStorage->wallpaperTilemap, sStorage->wallpaperLoadDir, sStorage->wallpaperOffset); if (sStorage->wallpaperLoadDir != 0) - LoadPalette(wallpaper->palettes, (sStorage->wallpaperOffset * 32) + 0x40, 0x40); + LoadPalette(wallpaper->palettes, 0x40 + BG_PLTT_ID(sStorage->wallpaperOffset * 2), 2 * PLTT_SIZE_4BPP); else - CpuCopy16(wallpaper->palettes, &gPlttBufferUnfaded[(sStorage->wallpaperOffset * 32) + 0x40], 0x40); + CpuCopy16(wallpaper->palettes, &gPlttBufferUnfaded[0x40 + BG_PLTT_ID(sStorage->wallpaperOffset * 2)], 2 * PLTT_SIZE_4BPP); sStorage->wallpaperTiles = malloc_and_decompress(wallpaper->tiles, &tilesSize); LoadBgTiles(2, sStorage->wallpaperTiles, tilesSize, sStorage->wallpaperOffset << 8); @@ -5398,9 +5398,9 @@ static void LoadWallpaperGfx(u8 boxId, s8 direction) CpuCopy16(GetWaldaWallpaperColorsPtr(), &sStorage->wallpaperTilemap[17], 4); if (sStorage->wallpaperLoadDir != 0) - LoadPalette(sStorage->wallpaperTilemap, (sStorage->wallpaperOffset * 32) + 0x40, 0x40); + LoadPalette(sStorage->wallpaperTilemap, 0x40 + BG_PLTT_ID(sStorage->wallpaperOffset * 2), 2 * PLTT_SIZE_4BPP); else - CpuCopy16(sStorage->wallpaperTilemap, &gPlttBufferUnfaded[(sStorage->wallpaperOffset * 32) + 0x40], 0x40); + CpuCopy16(sStorage->wallpaperTilemap, &gPlttBufferUnfaded[0x40 + BG_PLTT_ID(sStorage->wallpaperOffset * 2)], 2 * PLTT_SIZE_4BPP); sStorage->wallpaperTiles = malloc_and_decompress(wallpaper->tiles, &tilesSize); iconGfx = malloc_and_decompress(sWaldaWallpaperIcons[GetWaldaWallpaperIconId()], &iconSize); @@ -5437,7 +5437,7 @@ static void DrawWallpaper(const void *tilemap, s8 direction, u8 offset) else x -= 4; - FillBgTilemapBufferRect(2, 0, x, 2, 4, 0x12, 0x11); + FillBgTilemapBufferRect(2, 0, x, 2, 4, 0x12, 17); } static void TrimOldWallpaper(void *tilemap) @@ -5488,7 +5488,7 @@ static void InitBoxTitle(u8 boxId) sStorage->wallpaperPalBits = 0x3f0; tagIndex = IndexOfSpritePaletteTag(PALTAG_BOX_TITLE); - sStorage->boxTitlePalOffset = 0x10e + 16 * tagIndex; + sStorage->boxTitlePalOffset = OBJ_PLTT_ID(tagIndex) + 14; sStorage->wallpaperPalBits |= 0x10000 << tagIndex; // The below seems intended to have separately tracked @@ -5496,7 +5496,7 @@ static void InitBoxTitle(u8 boxId) // share a palette tag, all colors (and fields in some cases) // this is redundant along with the use of boxTitleAltPalOffset tagIndex = IndexOfSpritePaletteTag(PALTAG_BOX_TITLE); - sStorage->boxTitleAltPalOffset = 0x10e + 16 * tagIndex; + sStorage->boxTitleAltPalOffset = OBJ_PLTT_ID(tagIndex) + 14; sStorage->wallpaperPalBits |= 0x10000 << tagIndex; StringCopyPadded(sStorage->boxTitleText, GetBoxNamePtr(boxId), 0, BOX_NAME_LENGTH); @@ -7929,7 +7929,7 @@ static void InitMenu(void) sStorage->menuItemsCount = 0; sStorage->menuWidth = 0; sStorage->menuWindow.bg = 0; - sStorage->menuWindow.paletteNum = 15; + sStorage->menuWindow.paletteNum = 0xF; sStorage->menuWindow.baseBlock = 92; } @@ -8085,7 +8085,7 @@ static const struct WindowTemplate sWindowTemplate_MultiMove = .tilemapTop = 3, .width = 20, .height = 18, - .paletteNum = 9, + .paletteNum = 0x9, .baseBlock = 0xA, }; @@ -8164,7 +8164,7 @@ static bool8 MultiMove_Start(void) { case 0: HideBg(0); - TryLoadAllMonIconPalettesAtOffset(0x80); + TryLoadAllMonIconPalettesAtOffset(BG_PLTT_ID(0x8)); sMultiMove->state++; break; case 1: @@ -8213,7 +8213,7 @@ static bool8 MultiMove_Cancel(void) if (!IsDma3ManagerBusyWithBgCopy()) { SetCursorPriorityTo1(); - LoadPalette(GetTextWindowPalette(3), 0xD0, 0x20); + LoadPalette(GetTextWindowPalette(3), BG_PLTT_ID(0xD), PLTT_SIZE_4BPP); ShowBg(0); return FALSE; } @@ -8319,7 +8319,7 @@ static bool8 MultiMove_PlaceMons(void) case 3: if (!IsDma3ManagerBusyWithBgCopy()) { - LoadPalette(GetTextWindowPalette(3), 0xD0, 0x20); + LoadPalette(GetTextWindowPalette(3), BG_PLTT_ID(0xD), PLTT_SIZE_4BPP); SetCursorPriorityTo1(); ShowBg(0); return FALSE; @@ -9103,7 +9103,7 @@ static void LoadItemIconGfx(u8 id, const u32 *itemTiles, const u32 *itemPal) CpuFastCopy(sStorage->itemIconBuffer, sStorage->itemIcons[id].tiles, 0x200); LZ77UnCompWram(itemPal, sStorage->itemIconBuffer); - LoadPalette(sStorage->itemIconBuffer, sStorage->itemIcons[id].palIndex, 0x20); + LoadPalette(sStorage->itemIconBuffer, sStorage->itemIcons[id].palIndex, PLTT_SIZE_4BPP); } static void SetItemIconAffineAnim(u8 id, u8 animNum) @@ -9236,7 +9236,7 @@ static bool8 UpdateItemInfoWindowSlideOut(void) if (pos >= 0) DrawItemInfoWindow(pos); - FillBgTilemapBufferRect(0, 0, pos + 1, 12, 1, 9, 0x11); + FillBgTilemapBufferRect(0, 0, pos + 1, 12, 1, 9, 17); ScheduleBgCopyTilemapToVram(0); return TRUE; } @@ -9245,12 +9245,12 @@ static void DrawItemInfoWindow(u32 x) { if (x != 0) { - FillBgTilemapBufferRect(0, 0x13A, 0, 0xC, x, 1, 0xFu); - FillBgTilemapBufferRect(0, 0x93A, 0, 0x14, x, 1, 0xFu); + FillBgTilemapBufferRect(0, 0x13A, 0, 0xC, x, 1, 0xF); + FillBgTilemapBufferRect(0, 0x93A, 0, 0x14, x, 1, 0xF); } - FillBgTilemapBufferRect(0, 0x13B, x, 0xD, 1, 7, 0xFu); - FillBgTilemapBufferRect(0, 0x13C, x, 0xC, 1, 1, 0xFu); - FillBgTilemapBufferRect(0, 0x13D, x, 0x14, 1, 1, 0xFu); + FillBgTilemapBufferRect(0, 0x13B, x, 0xD, 1, 7, 0xF); + FillBgTilemapBufferRect(0, 0x13C, x, 0xC, 1, 1, 0xF); + FillBgTilemapBufferRect(0, 0x13D, x, 0x14, 1, 1, 0xF); ScheduleBgCopyTilemapToVram(0); } diff --git a/src/pokemon_summary_screen.c b/src/pokemon_summary_screen.c index bdbca31d0..e40622506 100644 --- a/src/pokemon_summary_screen.c +++ b/src/pokemon_summary_screen.c @@ -391,7 +391,7 @@ static const struct WindowTemplate sSummaryTemplate[] = .tilemapTop = 0, .width = 11, .height = 2, - .paletteNum = 6, + .paletteNum = 0x6, .baseBlock = 1, }, [PSS_LABEL_WINDOW_POKEMON_SKILLS_TITLE] = { @@ -400,7 +400,7 @@ static const struct WindowTemplate sSummaryTemplate[] = .tilemapTop = 0, .width = 11, .height = 2, - .paletteNum = 6, + .paletteNum = 0x6, .baseBlock = 23, }, [PSS_LABEL_WINDOW_BATTLE_MOVES_TITLE] = { @@ -409,7 +409,7 @@ static const struct WindowTemplate sSummaryTemplate[] = .tilemapTop = 0, .width = 11, .height = 2, - .paletteNum = 6, + .paletteNum = 0x6, .baseBlock = 45, }, [PSS_LABEL_WINDOW_CONTEST_MOVES_TITLE] = { @@ -418,7 +418,7 @@ static const struct WindowTemplate sSummaryTemplate[] = .tilemapTop = 0, .width = 11, .height = 2, - .paletteNum = 6, + .paletteNum = 0x6, .baseBlock = 67, }, [PSS_LABEL_WINDOW_PROMPT_CANCEL] = { @@ -427,7 +427,7 @@ static const struct WindowTemplate sSummaryTemplate[] = .tilemapTop = 0, .width = 8, .height = 2, - .paletteNum = 7, + .paletteNum = 0x7, .baseBlock = 89, }, [PSS_LABEL_WINDOW_PROMPT_INFO] = { @@ -436,7 +436,7 @@ static const struct WindowTemplate sSummaryTemplate[] = .tilemapTop = 0, .width = 8, .height = 2, - .paletteNum = 7, + .paletteNum = 0x7, .baseBlock = 105, }, [PSS_LABEL_WINDOW_PROMPT_SWITCH] = { @@ -445,7 +445,7 @@ static const struct WindowTemplate sSummaryTemplate[] = .tilemapTop = 0, .width = 8, .height = 2, - .paletteNum = 7, + .paletteNum = 0x7, .baseBlock = 121, }, [PSS_LABEL_WINDOW_UNUSED1] = { @@ -454,7 +454,7 @@ static const struct WindowTemplate sSummaryTemplate[] = .tilemapTop = 4, .width = 0, .height = 2, - .paletteNum = 6, + .paletteNum = 0x6, .baseBlock = 137, }, [PSS_LABEL_WINDOW_POKEMON_INFO_RENTAL] = { @@ -463,7 +463,7 @@ static const struct WindowTemplate sSummaryTemplate[] = .tilemapTop = 4, .width = 18, .height = 2, - .paletteNum = 6, + .paletteNum = 0x6, .baseBlock = 137, }, [PSS_LABEL_WINDOW_POKEMON_INFO_TYPE] = { @@ -472,7 +472,7 @@ static const struct WindowTemplate sSummaryTemplate[] = .tilemapTop = 6, .width = 18, .height = 2, - .paletteNum = 6, + .paletteNum = 0x6, .baseBlock = 173, }, [PSS_LABEL_WINDOW_POKEMON_SKILLS_STATS_LEFT] = { @@ -481,7 +481,7 @@ static const struct WindowTemplate sSummaryTemplate[] = .tilemapTop = 7, .width = 6, .height = 6, - .paletteNum = 6, + .paletteNum = 0x6, .baseBlock = 209, }, [PSS_LABEL_WINDOW_POKEMON_SKILLS_STATS_RIGHT] = { @@ -490,7 +490,7 @@ static const struct WindowTemplate sSummaryTemplate[] = .tilemapTop = 7, .width = 5, .height = 6, - .paletteNum = 6, + .paletteNum = 0x6, .baseBlock = 245, }, [PSS_LABEL_WINDOW_POKEMON_SKILLS_EXP] = { @@ -499,7 +499,7 @@ static const struct WindowTemplate sSummaryTemplate[] = .tilemapTop = 14, .width = 11, .height = 4, - .paletteNum = 6, + .paletteNum = 0x6, .baseBlock = 275, }, [PSS_LABEL_WINDOW_POKEMON_SKILLS_STATUS] = { @@ -508,7 +508,7 @@ static const struct WindowTemplate sSummaryTemplate[] = .tilemapTop = 18, .width = 6, .height = 2, - .paletteNum = 6, + .paletteNum = 0x6, .baseBlock = 319, }, [PSS_LABEL_WINDOW_MOVES_POWER_ACC] = { @@ -517,7 +517,7 @@ static const struct WindowTemplate sSummaryTemplate[] = .tilemapTop = 15, .width = 9, .height = 4, - .paletteNum = 6, + .paletteNum = 0x6, .baseBlock = 331, }, [PSS_LABEL_WINDOW_MOVES_APPEAL_JAM] = { @@ -526,7 +526,7 @@ static const struct WindowTemplate sSummaryTemplate[] = .tilemapTop = 15, .width = 5, .height = 4, - .paletteNum = 6, + .paletteNum = 0x6, .baseBlock = 367, }, [PSS_LABEL_WINDOW_UNUSED2] = { @@ -535,7 +535,7 @@ static const struct WindowTemplate sSummaryTemplate[] = .tilemapTop = 4, .width = 0, .height = 2, - .paletteNum = 6, + .paletteNum = 0x6, .baseBlock = 387, }, [PSS_LABEL_WINDOW_PORTRAIT_DEX_NUMBER] = { @@ -544,7 +544,7 @@ static const struct WindowTemplate sSummaryTemplate[] = .tilemapTop = 2, .width = 4, .height = 2, - .paletteNum = 7, + .paletteNum = 0x7, .baseBlock = 387, }, [PSS_LABEL_WINDOW_PORTRAIT_NICKNAME] = { @@ -553,7 +553,7 @@ static const struct WindowTemplate sSummaryTemplate[] = .tilemapTop = 12, .width = 9, .height = 2, - .paletteNum = 6, + .paletteNum = 0x6, .baseBlock = 395, }, [PSS_LABEL_WINDOW_PORTRAIT_SPECIES] = { @@ -562,7 +562,7 @@ static const struct WindowTemplate sSummaryTemplate[] = .tilemapTop = 14, .width = 9, .height = 4, - .paletteNum = 6, + .paletteNum = 0x6, .baseBlock = 413, }, [PSS_LABEL_WINDOW_END] = DUMMY_WIN_TEMPLATE @@ -575,7 +575,7 @@ static const struct WindowTemplate sPageInfoTemplate[] = .tilemapTop = 4, .width = 11, .height = 2, - .paletteNum = 6, + .paletteNum = 0x6, .baseBlock = 449, }, [PSS_DATA_WINDOW_INFO_ID] = { @@ -584,7 +584,7 @@ static const struct WindowTemplate sPageInfoTemplate[] = .tilemapTop = 4, .width = 7, .height = 2, - .paletteNum = 6, + .paletteNum = 0x6, .baseBlock = 471, }, [PSS_DATA_WINDOW_INFO_ABILITY] = { @@ -593,7 +593,7 @@ static const struct WindowTemplate sPageInfoTemplate[] = .tilemapTop = 9, .width = 18, .height = 4, - .paletteNum = 6, + .paletteNum = 0x6, .baseBlock = 485, }, [PSS_DATA_WINDOW_INFO_MEMO] = { @@ -602,7 +602,7 @@ static const struct WindowTemplate sPageInfoTemplate[] = .tilemapTop = 14, .width = 18, .height = 6, - .paletteNum = 6, + .paletteNum = 0x6, .baseBlock = 557, }, }; @@ -614,7 +614,7 @@ static const struct WindowTemplate sPageSkillsTemplate[] = .tilemapTop = 4, .width = 10, .height = 2, - .paletteNum = 6, + .paletteNum = 0x6, .baseBlock = 449, }, [PSS_DATA_WINDOW_SKILLS_RIBBON_COUNT] = { @@ -623,7 +623,7 @@ static const struct WindowTemplate sPageSkillsTemplate[] = .tilemapTop = 4, .width = 10, .height = 2, - .paletteNum = 6, + .paletteNum = 0x6, .baseBlock = 469, }, [PSS_DATA_WINDOW_SKILLS_STATS_LEFT] = { @@ -632,7 +632,7 @@ static const struct WindowTemplate sPageSkillsTemplate[] = .tilemapTop = 7, .width = 6, .height = 6, - .paletteNum = 6, + .paletteNum = 0x6, .baseBlock = 489, }, [PSS_DATA_WINDOW_SKILLS_STATS_RIGHT] = { @@ -641,7 +641,7 @@ static const struct WindowTemplate sPageSkillsTemplate[] = .tilemapTop = 7, .width = 3, .height = 6, - .paletteNum = 6, + .paletteNum = 0x6, .baseBlock = 525, }, [PSS_DATA_WINDOW_EXP] = { @@ -650,7 +650,7 @@ static const struct WindowTemplate sPageSkillsTemplate[] = .tilemapTop = 14, .width = 6, .height = 4, - .paletteNum = 6, + .paletteNum = 0x6, .baseBlock = 543, }, }; @@ -662,7 +662,7 @@ static const struct WindowTemplate sPageMovesTemplate[] = // This is used for bo .tilemapTop = 4, .width = 9, .height = 10, - .paletteNum = 6, + .paletteNum = 0x6, .baseBlock = 449, }, [PSS_DATA_WINDOW_MOVE_PP] = { @@ -671,7 +671,7 @@ static const struct WindowTemplate sPageMovesTemplate[] = // This is used for bo .tilemapTop = 4, .width = 6, .height = 10, - .paletteNum = 8, + .paletteNum = 0x8, .baseBlock = 539, }, [PSS_DATA_WINDOW_MOVE_DESCRIPTION] = { @@ -680,7 +680,7 @@ static const struct WindowTemplate sPageMovesTemplate[] = // This is used for bo .tilemapTop = 15, .width = 20, .height = 4, - .paletteNum = 6, + .paletteNum = 0x6, .baseBlock = 599, }, }; @@ -1328,8 +1328,8 @@ static bool8 DecompressGraphics(void) sMonSummaryScreen->switchCounter++; break; case 6: - LoadCompressedPalette(gSummaryScreen_Pal, 0, 0x100); - LoadPalette(&gPPTextPalette, 0x81, 0x1E); + LoadCompressedPalette(gSummaryScreen_Pal, BG_PLTT_ID(0x0), 8 * PLTT_SIZE_4BPP); + LoadPalette(&gPPTextPalette, BG_PLTT_ID(0x8) + 1, PLTT_SIZEOF(16 - 1)); sMonSummaryScreen->switchCounter++; break; case 7: @@ -1353,7 +1353,7 @@ static bool8 DecompressGraphics(void) sMonSummaryScreen->switchCounter++; break; case 12: - LoadCompressedPalette(gMoveTypes_Pal, 0x1D0, 0x60); + LoadCompressedPalette(gMoveTypes_Pal, OBJ_PLTT_ID(0xD), 3 * PLTT_SIZE_4BPP); sMonSummaryScreen->switchCounter = 0; return TRUE; } @@ -4001,7 +4001,7 @@ static void StopPokemonAnimations(void) // A subtle effect, this function stops gSprites[sMonSummaryScreen->spriteIds[SPRITE_ARR_ID_MON]].callback = SpriteCallbackDummy; StopPokemonAnimationDelayTask(); - paletteIndex = (gSprites[sMonSummaryScreen->spriteIds[SPRITE_ARR_ID_MON]].oam.paletteNum * 16) | 0x100; + paletteIndex = OBJ_PLTT_ID(gSprites[sMonSummaryScreen->spriteIds[SPRITE_ARR_ID_MON]].oam.paletteNum); for (i = 0; i < 16; i++) { diff --git a/src/pokenav_conditions_gfx.c b/src/pokenav_conditions_gfx.c index 5631f5bb2..9ad885435 100644 --- a/src/pokenav_conditions_gfx.c +++ b/src/pokenav_conditions_gfx.c @@ -68,7 +68,7 @@ static const struct WindowTemplate sMonNameGenderWindowTemplate = .tilemapTop = 1, .width = 13, .height = 4, - .paletteNum = 15, + .paletteNum = 0xF, .baseBlock = 2 }; @@ -79,7 +79,7 @@ static const struct WindowTemplate sListIndexWindowTemplate = .tilemapTop = 6, .width = 7, .height = 2, - .paletteNum = 15, + .paletteNum = 0xF, .baseBlock = 0x36 }; @@ -90,7 +90,7 @@ static const struct WindowTemplate sUnusedWindowTemplate1 = .tilemapTop = 0x1C, .width = 5, .height = 2, - .paletteNum = 15, + .paletteNum = 0xF, .baseBlock = 0x44 }; @@ -101,7 +101,7 @@ static const struct WindowTemplate sUnusedWindowTemplate2 = .tilemapTop = 0x1C, .width = 3, .height = 2, - .paletteNum = 15, + .paletteNum = 0xF, .baseBlock = 0x44 }; @@ -224,8 +224,8 @@ static u32 LoopedTask_OpenConditionGraphMenu(s32 state) CopyToBgTilemapBufferRect(3, gPokenavOptions_Tilemap, 0, 5, 9, 4); CopyBgTilemapBufferToVram(3); - CopyPaletteIntoBufferUnfaded(gPokenavCondition_Pal, 0x10, 0x20); - CopyPaletteIntoBufferUnfaded(gConditionText_Pal, 0xF0, 0x20); + CopyPaletteIntoBufferUnfaded(gPokenavCondition_Pal, BG_PLTT_ID(0x1), PLTT_SIZE_4BPP); + CopyPaletteIntoBufferUnfaded(gConditionText_Pal, BG_PLTT_ID(0xF), PLTT_SIZE_4BPP); menu->monTransitionX = -80; return LT_INC_AND_PAUSE; case 4: @@ -235,7 +235,7 @@ static u32 LoopedTask_OpenConditionGraphMenu(s32 state) LZ77UnCompVram(sConditionGraphData_Tilemap, menu->tilemapBuffers[2]); SetBgTilemapBuffer(2, menu->tilemapBuffers[2]); CopyBgTilemapBufferToVram(2); - CopyPaletteIntoBufferUnfaded(gConditionGraphData_Pal, 0x30, 0x20); + CopyPaletteIntoBufferUnfaded(gConditionGraphData_Pal, BG_PLTT_ID(0x3), PLTT_SIZE_4BPP); ConditionGraph_InitWindow(2); return LT_INC_AND_PAUSE; case 5: @@ -827,13 +827,13 @@ static void CreateConditionMonPic(u8 id) menu->monPicSpriteId = spriteId; gSprites[menu->monPicSpriteId].callback = MonPicGfxSpriteCallback; menu->monGfxPtr = (void *)VRAM + BG_VRAM_SIZE + (menu->monGfxTileStart * 32); - menu->monPalIndex = (menu->monPalIndex * 16) + 0x100; + menu->monPalIndex = OBJ_PLTT_ID(menu->monPalIndex); } } else { DmaCopy16Defvars(3, GetConditionMonPicGfx(id), menu->monGfxPtr, MON_PIC_SIZE); - LoadPalette(GetConditionMonPal(id), menu->monPalIndex, 0x20); + LoadPalette(GetConditionMonPal(id), menu->monPalIndex, PLTT_SIZE_4BPP); } } diff --git a/src/pokenav_conditions_search_results.c b/src/pokenav_conditions_search_results.c index d0d2b7c55..49ce612cc 100644 --- a/src/pokenav_conditions_search_results.c +++ b/src/pokenav_conditions_search_results.c @@ -2,6 +2,7 @@ #include "pokenav.h" #include "bg.h" #include "menu.h" +#include "palette.h" #include "window.h" #include "sound.h" #include "dynamic_placeholder_text_util.h" @@ -120,7 +121,7 @@ static const struct WindowTemplate sSearchResultListMenuWindowTemplate = .tilemapTop = 6, .width = 7, .height = 2, - .paletteNum = 1, + .paletteNum = 0x1, .baseBlock = 20 }; @@ -431,7 +432,7 @@ static u32 LoopedTask_OpenConditionSearchResults(s32 state) SetBgTilemapBuffer(1, gfx->buff); CopyToBgTilemapBuffer(1, sConditionSearchResultTilemap, 0, 0); CopyBgTilemapBufferToVram(1); - CopyPaletteIntoBufferUnfaded(sConditionSearchResultFramePal, 0x10, 0x20); + CopyPaletteIntoBufferUnfaded(sConditionSearchResultFramePal, BG_PLTT_ID(0x1), PLTT_SIZE_4BPP); CopyBgTilemapBufferToVram(1); return LT_INC_AND_PAUSE; case 1: @@ -443,7 +444,7 @@ static u32 LoopedTask_OpenConditionSearchResults(s32 state) case 2: if (FreeTempTileDataBuffersIfPossible()) return LT_PAUSE; - CopyPaletteIntoBufferUnfaded(sListBg_Pal, 0x20, 32); + CopyPaletteIntoBufferUnfaded(sListBg_Pal, BG_PLTT_ID(0x2), PLTT_SIZE_4BPP); CreateSearchResultsList(); return LT_INC_AND_PAUSE; case 3: diff --git a/src/pokenav_main_menu.c b/src/pokenav_main_menu.c index c51ab10ba..3dbc7952d 100644 --- a/src/pokenav_main_menu.c +++ b/src/pokenav_main_menu.c @@ -78,7 +78,7 @@ static const struct WindowTemplate sHelpBarWindowTemplate[] = .tilemapTop = 22, .width = 16, .height = 2, - .paletteNum = 0, + .paletteNum = 0x0, .baseBlock = 0x36, }, DUMMY_WIN_TEMPLATE @@ -349,7 +349,7 @@ static u32 LoopedTask_InitPokenavMenu(s32 state) DecompressAndCopyTileDataToVram(0, &gPokenavHeader_Gfx, 0, 0, 0); SetBgTilemapBuffer(0, menu->tilemapBuffer); CopyToBgTilemapBuffer(0, &gPokenavHeader_Tilemap, 0, 0); - CopyPaletteIntoBufferUnfaded(gPokenavHeader_Pal, 0, 0x20); + CopyPaletteIntoBufferUnfaded(gPokenavHeader_Pal, BG_PLTT_ID(0x0), PLTT_SIZE_4BPP); CopyBgTilemapBufferToVram(0); return LT_INC_AND_PAUSE; case 2: @@ -460,8 +460,8 @@ void Pokenav_AllocAndLoadPalettes(const struct SpritePalette *palettes) } else { - index = (index * 16) + 0x100; - CopyPaletteIntoBufferUnfaded(current->data, index, 0x20); + index = OBJ_PLTT_ID(index); + CopyPaletteIntoBufferUnfaded(current->data, index, PLTT_SIZE_4BPP); } } } @@ -683,7 +683,7 @@ static void LoadLeftHeaderGfxForMenu(u32 menuGfxId) menu = GetSubstructPtr(POKENAV_SUBSTRUCT_MAIN_MENU); tag = sMenuLeftHeaderSpriteSheets[menuGfxId].tag; size = GetDecompressedDataSize(sMenuLeftHeaderSpriteSheets[menuGfxId].data); - LoadPalette(&gPokenavLeftHeader_Pal[tag * 16], (IndexOfSpritePaletteTag(1) * 16) + 0x100, 0x20); + LoadPalette(&gPokenavLeftHeader_Pal[tag * 16], OBJ_PLTT_ID(IndexOfSpritePaletteTag(1)), PLTT_SIZE_4BPP); LZ77UnCompWram(sMenuLeftHeaderSpriteSheets[menuGfxId].data, gDecompressionBuffer); RequestDma3Copy(gDecompressionBuffer, (void *)OBJ_VRAM0 + (GetSpriteTileStartByTag(2) * 32), size, 1); menu->leftHeaderSprites[1]->oam.tileNum = GetSpriteTileStartByTag(2) + sMenuLeftHeaderSpriteSheets[menuGfxId].size; @@ -703,7 +703,7 @@ static void LoadLeftHeaderGfxForSubMenu(u32 menuGfxId) tag = sPokenavSubMenuLeftHeaderSpriteSheets[menuGfxId].tag; size = GetDecompressedDataSize(sPokenavSubMenuLeftHeaderSpriteSheets[menuGfxId].data); - LoadPalette(&gPokenavLeftHeader_Pal[tag * 16], (IndexOfSpritePaletteTag(2) * 16) + 0x100, 0x20); + LoadPalette(&gPokenavLeftHeader_Pal[tag * 16], OBJ_PLTT_ID(IndexOfSpritePaletteTag(2)), PLTT_SIZE_4BPP); LZ77UnCompWram(sPokenavSubMenuLeftHeaderSpriteSheets[menuGfxId].data, &gDecompressionBuffer[0x1000]); RequestDma3Copy(&gDecompressionBuffer[0x1000], (void *)OBJ_VRAM0 + 0x800 + (GetSpriteTileStartByTag(2) * 32), size, 1); } diff --git a/src/pokenav_match_call_gfx.c b/src/pokenav_match_call_gfx.c index fd5b36fae..710aeef17 100755 --- a/src/pokenav_match_call_gfx.c +++ b/src/pokenav_match_call_gfx.c @@ -182,7 +182,7 @@ static const struct WindowTemplate sMatchCallLocationWindowTemplate = .tilemapTop = 5, .width = 11, .height = 2, - .paletteNum = 2, + .paletteNum = 0x2, .baseBlock = 16 }; @@ -193,7 +193,7 @@ static const struct WindowTemplate sMatchCallInfoBoxWindowTemplate = .tilemapTop = 9, .width = 11, .height = 8, - .paletteNum = 2, + .paletteNum = 0x2, .baseBlock = 38 }; @@ -214,7 +214,7 @@ static const struct WindowTemplate sCallMsgBoxWindowTemplate = .tilemapTop = 12, .width = 28, .height = 4, - .paletteNum = 1, + .paletteNum = 0x1, .baseBlock = 10 }; @@ -333,7 +333,7 @@ static u32 LoopedTask_OpenMatchCall(s32 state) SetBgTilemapBuffer(2, gfx->bgTilemapBuffer2); CopyToBgTilemapBuffer(2, sMatchCallUI_Tilemap, 0, 0); CopyBgTilemapBufferToVram(2); - CopyPaletteIntoBufferUnfaded(sMatchCallUI_Pal, 0x20, 0x20); + CopyPaletteIntoBufferUnfaded(sMatchCallUI_Pal, BG_PLTT_ID(0x2), PLTT_SIZE_4BPP); CopyBgTilemapBufferToVram(2); return LT_INC_AND_PAUSE; case 1: @@ -343,7 +343,7 @@ static u32 LoopedTask_OpenMatchCall(s32 state) BgDmaFill(1, 0, 0, 1); SetBgTilemapBuffer(1, gfx->bgTilemapBuffer1); FillBgTilemapBufferRect_Palette0(1, 0x1000, 0, 0, 32, 20); - CopyPaletteIntoBufferUnfaded(sCallWindow_Pal, 0x10, 0x20); + CopyPaletteIntoBufferUnfaded(sCallWindow_Pal, BG_PLTT_ID(0x1), PLTT_SIZE_4BPP); CopyBgTilemapBufferToVram(1); return LT_INC_AND_PAUSE; case 2: @@ -352,8 +352,8 @@ static u32 LoopedTask_OpenMatchCall(s32 state) LoadCallWindowAndFade(gfx); DecompressAndCopyTileDataToVram(3, sPokeball_Gfx, 0, 0, 0); - CopyPaletteIntoBufferUnfaded(sListWindow_Pal, 0x30, 0x20); - CopyPaletteIntoBufferUnfaded(sPokeball_Pal, 0x50, 0x20); + CopyPaletteIntoBufferUnfaded(sListWindow_Pal, BG_PLTT_ID(0x3), PLTT_SIZE_4BPP); + CopyPaletteIntoBufferUnfaded(sPokeball_Pal, BG_PLTT_ID(0x5), PLTT_SIZE_4BPP); return LT_INC_AND_PAUSE; case 3: if (FreeTempTileDataBuffersIfPossible() || !IsMatchCallListInitFinished()) @@ -1082,15 +1082,15 @@ static void UpdateWindowsToShowCheckPage(struct Pokenav_MatchCallGfx *gfx) static void LoadCallWindowAndFade(struct Pokenav_MatchCallGfx *gfx) { gfx->msgBoxWindowId = AddWindow(&sCallMsgBoxWindowTemplate); - LoadMatchCallWindowGfx(gfx->msgBoxWindowId, 1, 4); + LoadMatchCallWindowGfx(gfx->msgBoxWindowId, 1, 0x4); FadeToBlackExceptPrimary(); } static void DrawMsgBoxForMatchCallMsg(struct Pokenav_MatchCallGfx *gfx) { struct Sprite *sprite; - LoadMatchCallWindowGfx(gfx->msgBoxWindowId, 1, 4); - DrawMatchCallTextBoxBorder(gfx->msgBoxWindowId, 1, 4); + LoadMatchCallWindowGfx(gfx->msgBoxWindowId, 1, 0x4); + DrawMatchCallTextBoxBorder(gfx->msgBoxWindowId, 1, 0x4); FillWindowPixelBuffer(gfx->msgBoxWindowId, PIXEL_FILL(1)); PutWindowTilemap(gfx->msgBoxWindowId); CopyWindowToVram(gfx->msgBoxWindowId, COPYWIN_FULL); @@ -1102,8 +1102,8 @@ static void DrawMsgBoxForMatchCallMsg(struct Pokenav_MatchCallGfx *gfx) static void DrawMsgBoxForCloseByMsg(struct Pokenav_MatchCallGfx *gfx) { - LoadUserWindowBorderGfx(gfx->msgBoxWindowId, 1, 0x40); - DrawTextBorderOuter(gfx->msgBoxWindowId, 1, 4); + LoadUserWindowBorderGfx(gfx->msgBoxWindowId, 1, BG_PLTT_ID(0x4)); + DrawTextBorderOuter(gfx->msgBoxWindowId, 1, 0x4); FillWindowPixelBuffer(gfx->msgBoxWindowId, PIXEL_FILL(1)); PutWindowTilemap(gfx->msgBoxWindowId); CopyWindowToVram(gfx->msgBoxWindowId, COPYWIN_FULL); @@ -1186,7 +1186,7 @@ static void AllocMatchCallSprites(void) spriteSheet.tag = GFXTAG_TRAINER_PIC; gfx->trainerPicGfxPtr = (u8 *)OBJ_VRAM0 + LoadSpriteSheet(&spriteSheet) * 0x20; paletteNum = AllocSpritePalette(PALTAG_TRAINER_PIC); - gfx->trainerPicPalOffset = 0x100 + paletteNum * 0x10; + gfx->trainerPicPalOffset = OBJ_PLTT_ID(paletteNum); gfx->trainerPicSprite = CreateTrainerPicSprite(); gfx->trainerPicSprite->invisible = TRUE; } diff --git a/src/pokenav_menu_handler_gfx.c b/src/pokenav_menu_handler_gfx.c index bc55fa751..1acd2edf9 100644 --- a/src/pokenav_menu_handler_gfx.c +++ b/src/pokenav_menu_handler_gfx.c @@ -261,7 +261,7 @@ static const struct WindowTemplate sOptionDescWindowTemplate = .tilemapTop = 17, .width = 24, .height = 2, - .paletteNum = 1, + .paletteNum = 0x1, .baseBlock = 8 }; @@ -457,7 +457,7 @@ static u32 LoopedTask_OpenMenu(s32 state) SetBgTilemapBuffer(1, gfx->bg1TilemapBuffer); CopyToBgTilemapBuffer(1, gPokenavMessageBox_Tilemap, 0, 0); CopyBgTilemapBufferToVram(1); - CopyPaletteIntoBufferUnfaded(gPokenavMessageBox_Pal, 0x10, 0x20); + CopyPaletteIntoBufferUnfaded(gPokenavMessageBox_Pal, BG_PLTT_ID(0x1), PLTT_SIZE_4BPP); ChangeBgX(1, 0, BG_COORD_SET); ChangeBgY(1, 0, BG_COORD_SET); ChangeBgX(2, 0, BG_COORD_SET); @@ -470,14 +470,14 @@ static u32 LoopedTask_OpenMenu(s32 state) return LT_PAUSE; DecompressAndCopyTileDataToVram(2, sPokenavDeviceBgTiles, 0, 0, 0); DecompressAndCopyTileDataToVram(2, sPokenavDeviceBgTilemap, 0, 0, 1); - CopyPaletteIntoBufferUnfaded(sPokenavDeviceBgPal, 0x20, 0x20); + CopyPaletteIntoBufferUnfaded(sPokenavDeviceBgPal, BG_PLTT_ID(0x2), PLTT_SIZE_4BPP); return LT_INC_AND_PAUSE; case 2: if (FreeTempTileDataBuffersIfPossible()) return LT_PAUSE; DecompressAndCopyTileDataToVram(3, sPokenavBgDotsTiles, 0, 0, 0); DecompressAndCopyTileDataToVram(3, sPokenavBgDotsTilemap, 0, 0, 1); - CopyPaletteIntoBufferUnfaded(sPokenavBgDotsPal, 0x30, 0x20); + CopyPaletteIntoBufferUnfaded(sPokenavBgDotsPal, BG_PLTT_ID(0x3), PLTT_SIZE_4BPP); if (GetPokenavMenuType() == POKENAV_MENU_TYPE_CONDITION || GetPokenavMenuType() == POKENAV_MENU_TYPE_CONDITION_SEARCH) ChangeBgDotsColorToPurple(); return LT_INC_AND_PAUSE; @@ -1270,7 +1270,7 @@ static void CreateBgDotPurplePalTask(void) static void ChangeBgDotsColorToPurple(void) { - CopyPaletteIntoBufferUnfaded(sPokenavBgDotsPal + 7, 0x31, 4); + CopyPaletteIntoBufferUnfaded(sPokenavBgDotsPal + 7, BG_PLTT_ID(0x3) + 1, PLTT_SIZEOF(2)); } static void CreateBgDotLightBluePalTask(void) @@ -1293,7 +1293,7 @@ static void Task_UpdateBgDotsPalette(u8 taskId) const u16 * pal2 = (const u16 *)GetWordTaskArg(taskId, 3); PokenavCopyPalette(pal1, pal2, 2, 12, ++data[0], sp8); - LoadPalette(sp8, 0x31, 4); + LoadPalette(sp8, BG_PLTT_ID(0x3) + 1, PLTT_SIZEOF(2)); if (data[0] == 12) DestroyTask(taskId); } diff --git a/src/pokenav_region_map.c b/src/pokenav_region_map.c index 39c1659a9..6b3479f10 100755 --- a/src/pokenav_region_map.c +++ b/src/pokenav_region_map.c @@ -140,7 +140,7 @@ static const struct WindowTemplate sMapSecInfoWindowTemplate = .tilemapTop = 4, .width = 12, .height = 13, - .paletteNum = 1, + .paletteNum = 0x1, .baseBlock = 0x4C }; @@ -509,14 +509,14 @@ static void LoadPokenavRegionMapGfx(struct Pokenav_RegionMapGfx *state) CpuFill16(0x1040, state->tilemapBuffer, 0x800); SetBgTilemapBuffer(1, state->tilemapBuffer); state->infoWindowId = AddWindow(&sMapSecInfoWindowTemplate); - LoadUserWindowBorderGfx_(state->infoWindowId, 0x42, 0x40); - DrawTextBorderOuter(state->infoWindowId, 0x42, 4); + LoadUserWindowBorderGfx_(state->infoWindowId, 0x42, BG_PLTT_ID(0x4)); + DrawTextBorderOuter(state->infoWindowId, 0x42, 0x4); DecompressAndCopyTileDataToVram(1, sRegionMapCityZoomTiles_Gfx, 0, 0, 0); FillWindowPixelBuffer(state->infoWindowId, PIXEL_FILL(1)); PutWindowTilemap(state->infoWindowId); CopyWindowToVram(state->infoWindowId, COPYWIN_FULL); - CopyPaletteIntoBufferUnfaded(sMapSecInfoWindow_Pal, 0x10, 0x20); - CopyPaletteIntoBufferUnfaded(gRegionMapCityZoomTiles_Pal, 0x30, 0x20); + CopyPaletteIntoBufferUnfaded(sMapSecInfoWindow_Pal, BG_PLTT_ID(0x1), PLTT_SIZE_4BPP); + CopyPaletteIntoBufferUnfaded(gRegionMapCityZoomTiles_Pal, BG_PLTT_ID(0x3), PLTT_SIZE_4BPP); if (!IsRegionMapZoomed()) ChangeBgY(1, -0x6000, BG_COORD_SET); else diff --git a/src/pokenav_ribbons_list.c b/src/pokenav_ribbons_list.c index ca5559d96..5f5cf083f 100644 --- a/src/pokenav_ribbons_list.c +++ b/src/pokenav_ribbons_list.c @@ -2,6 +2,7 @@ #include "pokenav.h" #include "bg.h" #include "menu.h" +#include "palette.h" #include "window.h" #include "sound.h" #include "string_util.h" @@ -431,7 +432,7 @@ static u32 LoopedTask_OpenRibbonsMonList(s32 state) DecompressAndCopyTileDataToVram(1, sMonRibbonListFrameTiles, 0, 0, 0); SetBgTilemapBuffer(1, menu->buff); CopyToBgTilemapBuffer(1, sMonRibbonListFrameTilemap, 0, 0); - CopyPaletteIntoBufferUnfaded(sMonRibbonListFramePal, 0x10, 0x20); + CopyPaletteIntoBufferUnfaded(sMonRibbonListFramePal, BG_PLTT_ID(0x1), PLTT_SIZE_4BPP); CopyBgTilemapBufferToVram(1); return LT_INC_AND_PAUSE; case 1: @@ -446,7 +447,7 @@ static u32 LoopedTask_OpenRibbonsMonList(s32 state) case 2: if (FreeTempTileDataBuffersIfPossible()) return LT_PAUSE; - CopyPaletteIntoBufferUnfaded(sMonRibbonListUi_Pal, 0x20, 0x20); + CopyPaletteIntoBufferUnfaded(sMonRibbonListUi_Pal, BG_PLTT_ID(0x2), PLTT_SIZE_4BPP); CreateRibbonMonsList(); return LT_INC_AND_PAUSE; case 3: diff --git a/src/pokenav_ribbons_summary.c b/src/pokenav_ribbons_summary.c index 15f9db5e6..d5e04a502 100644 --- a/src/pokenav_ribbons_summary.c +++ b/src/pokenav_ribbons_summary.c @@ -3,6 +3,7 @@ #include "dynamic_placeholder_text_util.h" #include "graphics.h" #include "international_string_util.h" +#include "palette.h" #include "pokenav.h" #include "sound.h" #include "sprite.h" @@ -572,7 +573,7 @@ static u32 LoopedTask_OpenRibbonsSummaryMenu(s32 state) DecompressAndCopyTileDataToVram(2, gPokenavRibbonsSummaryBg_Gfx, 0, 0, 0); SetBgTilemapBuffer(2, menu->tilemapBuffers[0]); CopyToBgTilemapBuffer(2, gPokenavRibbonsSummaryBg_Tilemap, 0, 0); - CopyPaletteIntoBufferUnfaded(gPokenavRibbonsSummaryBg_Pal, 0x10, 0x20); + CopyPaletteIntoBufferUnfaded(gPokenavRibbonsSummaryBg_Pal, BG_PLTT_ID(0x1), PLTT_SIZE_4BPP); CopyBgTilemapBufferToVram(2); return LT_INC_AND_PAUSE; case 1: @@ -582,8 +583,8 @@ static u32 LoopedTask_OpenRibbonsSummaryMenu(s32 state) DecompressAndCopyTileDataToVram(1, sRibbonIconsSmall_Gfx, 0, 1, 0); SetBgTilemapBuffer(1, menu->tilemapBuffers[1]); FillBgTilemapBufferRect_Palette0(1, 0, 0, 0, 32, 20); - CopyPaletteIntoBufferUnfaded(sRibbonIcons1_Pal, 0x20, 0xA0); - CopyPaletteIntoBufferUnfaded(sMonInfo_Pal, 0xA0, 0x20); + CopyPaletteIntoBufferUnfaded(sRibbonIcons1_Pal, BG_PLTT_ID(0x2), 5 * PLTT_SIZE_4BPP); + CopyPaletteIntoBufferUnfaded(sMonInfo_Pal, BG_PLTT_ID(0xA), PLTT_SIZE_4BPP); CopyBgTilemapBufferToVram(1); return LT_INC_AND_PAUSE; } @@ -789,7 +790,7 @@ static const struct WindowTemplate sRibbonCountWindowTemplate = .tilemapTop = 13, .width = 16, .height = 4, - .paletteNum = 1, + .paletteNum = 0x1, .baseBlock = 0x14, }; @@ -853,7 +854,7 @@ static const struct WindowTemplate sRibbonSummaryMonNameWindowTemplate = .tilemapTop = 1, .width = 13, .height = 2, - .paletteNum = 10, + .paletteNum = 0xA, .baseBlock = 0x54, }; @@ -908,7 +909,7 @@ static const struct WindowTemplate sRibbonMonListIndexWindowTemplate[] = .tilemapTop = 5, .width = 7, .height = 2, - .paletteNum = 1, + .paletteNum = 0x1, .baseBlock = 0x6E, }, {}, diff --git a/src/rayquaza_scene.c b/src/rayquaza_scene.c index 83298b03d..ca50ed8f2 100644 --- a/src/rayquaza_scene.c +++ b/src/rayquaza_scene.c @@ -1301,7 +1301,7 @@ static void CB2_InitRayquazaScene(void) ResetPaletteFade(); ResetSpriteData(); ResetTasks(); - FillPalette(RGB_BLACK, 0xF0, 32); + FillPalette(RGB_BLACK, BG_PLTT_ID(0xF), PLTT_SIZE_4BPP); CreateTask(sTasksForAnimations[sRayScene->animId], 0); SetMainCallback2(CB2_RayquazaScene); } @@ -1592,7 +1592,7 @@ static void LoadDuoFightSceneGfx(void) LZDecompressWram(gRaySceneDuoFight_Clouds2_Tilemap, sRayScene->tilemapBuffers[0]); LZDecompressWram(gRaySceneDuoFight_Clouds1_Tilemap, sRayScene->tilemapBuffers[1]); LZDecompressWram(gRaySceneDuoFight_Clouds3_Tilemap, sRayScene->tilemapBuffers[2]); - LoadCompressedPalette(gRaySceneDuoFight_Clouds_Pal, 0, 0x40); + LoadCompressedPalette(gRaySceneDuoFight_Clouds_Pal, BG_PLTT_ID(0x0), 2 * PLTT_SIZE_4BPP); LoadCompressedSpriteSheet(&sSpriteSheet_DuoFight_Groudon); LoadCompressedSpriteSheet(&sSpriteSheet_DuoFight_GroudonShoulder); LoadCompressedSpriteSheet(&sSpriteSheet_DuoFight_GroudonClaw); @@ -2032,7 +2032,7 @@ static void LoadTakesFlightSceneGfx(void) LZDecompressWram(gRaySceneDuoFight_Clouds2_Tilemap, sRayScene->tilemapBuffers[0]); LZDecompressWram(gRaySceneTakesFlight_Bg_Tilemap, sRayScene->tilemapBuffers[1]); LZDecompressWram(gRaySceneTakesFlight_Rayquaza_Tilemap, sRayScene->tilemapBuffers[2]); - LoadCompressedPalette(gRaySceneTakesFlight_Rayquaza_Pal, 0, 64); + LoadCompressedPalette(gRaySceneTakesFlight_Rayquaza_Pal, BG_PLTT_ID(0x0), 2 * PLTT_SIZE_4BPP); LoadCompressedSpriteSheet(&sSpriteSheet_TakesFlight_Smoke); LoadCompressedSpritePalette(&sSpritePal_TakesFlight_Smoke); } @@ -2238,7 +2238,7 @@ static void LoadDescendsSceneGfx(void) CpuFastCopy(sRayScene->tilemapBuffers[3], sRayScene->tilemapBuffers[1], BG_SCREEN_SIZE); CpuFastFill16(0, &sRayScene->tilemapBuffers[1][0x100], 0x340); - LoadCompressedPalette(gRaySceneDescends_Bg_Pal, 0, 0x40); + LoadCompressedPalette(gRaySceneDescends_Bg_Pal, BG_PLTT_ID(0x0), 2 * PLTT_SIZE_4BPP); gPlttBufferUnfaded[0] = RGB_WHITE; gPlttBufferFaded[0] = RGB_WHITE; LoadCompressedSpriteSheet(&sSpriteSheet_Descends_Rayquaza); @@ -2487,7 +2487,7 @@ static void LoadChargesSceneGfx(void) LZDecompressWram(gRaySceneCharges_Rayquaza_Tilemap, sRayScene->tilemapBuffers[1]); LZDecompressWram(gRaySceneCharges_Streaks_Tilemap, sRayScene->tilemapBuffers[2]); LZDecompressWram(gRaySceneCharges_Bg_Tilemap, sRayScene->tilemapBuffers[3]); - LoadCompressedPalette(gRaySceneCharges_Bg_Pal, 0, 0x80); + LoadCompressedPalette(gRaySceneCharges_Bg_Pal, BG_PLTT_ID(0x0), 4 * PLTT_SIZE_4BPP); } #define tState data[0] @@ -2671,7 +2671,7 @@ static void LoadChasesAwaySceneGfx(void) LZDecompressWram(gRaySceneChasesAway_Bg_Tilemap, sRayScene->tilemapBuffers[1]); LZDecompressWram(gRaySceneChasesAway_Light_Tilemap, sRayScene->tilemapBuffers[0]); LZDecompressWram(gRaySceneChasesAway_Ring_Tilemap, sRayScene->tilemapBuffers[2]); - LoadCompressedPalette(gRaySceneChasesAway_Bg_Pal, 0, 0x60); + LoadCompressedPalette(gRaySceneChasesAway_Bg_Pal, BG_PLTT_ID(0x0), 3 * PLTT_SIZE_4BPP); LoadCompressedSpriteSheet(&sSpriteSheet_ChasesAway_Groudon); LoadCompressedSpriteSheet(&sSpriteSheet_ChasesAway_GroudonTail); LoadCompressedSpriteSheet(&sSpriteSheet_ChasesAway_Kyogre); diff --git a/src/region_map.c b/src/region_map.c index a4db1cb04..379cc247e 100644 --- a/src/region_map.c +++ b/src/region_map.c @@ -392,7 +392,7 @@ static const struct WindowTemplate sFlyMapWindowTemplates[] = .tilemapTop = 17, .width = 12, .height = 2, - .paletteNum = 15, + .paletteNum = 0xF, .baseBlock = 0x01 }, { @@ -401,7 +401,7 @@ static const struct WindowTemplate sFlyMapWindowTemplates[] = .tilemapTop = 15, .width = 12, .height = 4, - .paletteNum = 15, + .paletteNum = 0xF, .baseBlock = 0x19 }, { @@ -410,7 +410,7 @@ static const struct WindowTemplate sFlyMapWindowTemplates[] = .tilemapTop = 18, .width = 14, .height = 2, - .paletteNum = 15, + .paletteNum = 0xF, .baseBlock = 0x49 }, DUMMY_WIN_TEMPLATE @@ -567,7 +567,7 @@ bool8 LoadRegionMapGfx(void) break; case 2: if (!FreeTempTileDataBuffersIfPossible()) - LoadPalette(sRegionMapBg_Pal, 0x70, 0x60); + LoadPalette(sRegionMapBg_Pal, BG_PLTT_ID(0x7), 3 * PLTT_SIZE_4BPP); break; case 3: LZ77UnCompWram(sRegionMapCursorSmallGfxLZ, sRegionMap->cursorSmallImage); @@ -1689,7 +1689,7 @@ void CB2_OpenFlyMap(void) gMain.state++; break; case 3: - LoadUserWindowBorderGfx(0, 0x65, 0xd0); + LoadUserWindowBorderGfx(0, 0x65, BG_PLTT_ID(0xD)); ClearScheduledBgCopiesToVram(); gMain.state++; break; @@ -1712,7 +1712,7 @@ void CB2_OpenFlyMap(void) gMain.state++; break; case 7: - LoadPalette(sRegionMapFramePal, 0x10, sizeof(sRegionMapFramePal)); + LoadPalette(sRegionMapFramePal, BG_PLTT_ID(0x1), sizeof(sRegionMapFramePal)); PutWindowTilemap(2); FillWindowPixelBuffer(2, PIXEL_FILL(0)); AddTextPrinterParameterized(2, FONT_NORMAL, gText_FlyToWhere, 0, 1, 0, NULL); diff --git a/src/reset_rtc_screen.c b/src/reset_rtc_screen.c index 0a9ec4911..2c7566a66 100644 --- a/src/reset_rtc_screen.c +++ b/src/reset_rtc_screen.c @@ -85,7 +85,7 @@ static const struct WindowTemplate sWindowTemplates[] = .tilemapTop = 1, .width = 19, .height = 9, - .paletteNum = 15, + .paletteNum = 0xF, .baseBlock = 0x155 }, { @@ -94,7 +94,7 @@ static const struct WindowTemplate sWindowTemplates[] = .tilemapTop = 15, .width = 27, .height = 4, - .paletteNum = 15, + .paletteNum = 0xF, .baseBlock = 0xE9 }, DUMMY_WIN_TEMPLATE @@ -106,7 +106,7 @@ static const struct WindowTemplate sInputTimeWindow = { .tilemapTop = 9, .width = 21, .height = 2, - .paletteNum = 15, + .paletteNum = 0xF, .baseBlock = 0xBF }; diff --git a/src/roulette.c b/src/roulette.c index e96ec30b0..3e37ba5d6 100644 --- a/src/roulette.c +++ b/src/roulette.c @@ -460,7 +460,7 @@ static const struct WindowTemplate sWindowTemplates[] = .tilemapTop = 15, .width = 24, .height = 4, - .paletteNum = 15, + .paletteNum = 0xF, .baseBlock = 0xC5 }, #ifdef UBFIX @@ -1195,7 +1195,7 @@ static void CB2_LoadRoulette(void) ResetTempTileDataBuffers(); break; case 3: - LoadPalette(&sWheel_Pal, 0, 0x1C0); + LoadPalette(&sWheel_Pal, BG_PLTT_ID(0x0), 14 * PLTT_SIZE_4BPP); DecompressAndCopyTileDataToVram(1, gRouletteMenu_Gfx, 0, 0, 0); DecompressAndCopyTileDataToVram(2, gRouletteWheel_Gfx, 0, 0, 0); break; @@ -2167,16 +2167,16 @@ static void FlashSelectionOnWheel(u8 selectionId) // The specific color of the poke it references doesn't matter, because the icons of a poke share a palette // So it just uses the first sprite ID of each case COL_WYNAUT: - palOffset = gSprites[sRoulette->spriteIds[SPR_WHEEL_ICON_ORANGE_WYNAUT]].oam.paletteNum * 16; + palOffset = PLTT_ID(gSprites[sRoulette->spriteIds[SPR_WHEEL_ICON_ORANGE_WYNAUT]].oam.paletteNum); break; case COL_AZURILL: - palOffset = gSprites[sRoulette->spriteIds[SPR_WHEEL_ICON_GREEN_AZURILL]].oam.paletteNum * 16; + palOffset = PLTT_ID(gSprites[sRoulette->spriteIds[SPR_WHEEL_ICON_GREEN_AZURILL]].oam.paletteNum); break; case COL_SKITTY: - palOffset = gSprites[sRoulette->spriteIds[SPR_WHEEL_ICON_PURPLE_SKITTY]].oam.paletteNum * 16; + palOffset = PLTT_ID(gSprites[sRoulette->spriteIds[SPR_WHEEL_ICON_PURPLE_SKITTY]].oam.paletteNum); break; case COL_MAKUHITA: - palOffset = gSprites[sRoulette->spriteIds[SPR_WHEEL_ICON_ORANGE_MAKUHITA]].oam.paletteNum * 16; + palOffset = PLTT_ID(gSprites[sRoulette->spriteIds[SPR_WHEEL_ICON_ORANGE_MAKUHITA]].oam.paletteNum); break; } if (numSelected == 1) diff --git a/src/save_failed_screen.c b/src/save_failed_screen.c index 877482728..f039cf324 100644 --- a/src/save_failed_screen.c +++ b/src/save_failed_screen.c @@ -103,7 +103,7 @@ static const struct WindowTemplate sWindowTemplate_Text[] = .tilemapTop = 13, .width = 28, .height = 6, - .paletteNum = 15, + .paletteNum = 0xF, .baseBlock = 1, } }; @@ -116,7 +116,7 @@ static const struct WindowTemplate sWindowTemplate_Clock[] = .tilemapTop = 9, .width = 2, .height = 2, - .paletteNum = 15, + .paletteNum = 0xF, .baseBlock = 169, } }; @@ -214,10 +214,10 @@ static void CB2_SaveFailedScreen(void) ResetSpriteData(); ResetTasks(); ResetPaletteFade(); - LoadPalette(gBirchBagGrassPal, 0, 0x40); - LoadPalette(sSaveFailedClockPal, 0x100, 0x20); - LoadPalette(gTextWindowFrame1_Pal, 0xE0, 0x20); - LoadPalette(gStandardMenuPalette, 0xF0, 0x20); + LoadPalette(gBirchBagGrassPal, BG_PLTT_ID(0x0), 2 * PLTT_SIZE_4BPP); + LoadPalette(sSaveFailedClockPal, OBJ_PLTT_ID(0x0), PLTT_SIZE_4BPP); + LoadPalette(gTextWindowFrame1_Pal, BG_PLTT_ID(0xE), PLTT_SIZE_4BPP); + LoadPalette(gStandardMenuPalette, BG_PLTT_ID(0xF), PLTT_SIZE_4BPP); DrawStdFrameWithCustomTileAndPalette(sWindowIds[TEXT_WIN_ID], FALSE, 0x214, 0xE); DrawStdFrameWithCustomTileAndPalette(sWindowIds[CLOCK_WIN_ID], FALSE, 0x214, 0xE); FillWindowPixelBuffer(sWindowIds[CLOCK_WIN_ID], PIXEL_FILL(1)); // backwards? diff --git a/src/scrcmd.c b/src/scrcmd.c index 6ca02019d..91ab4ebfb 100644 --- a/src/scrcmd.c +++ b/src/scrcmd.c @@ -1526,7 +1526,7 @@ bool8 ScrCmd_braillemessage(struct ScriptContext *ctx) winTemplate = CreateWindowTemplate(0, xWindow, yWindow + 1, width, height, 0xF, 0x1); sBrailleWindowId = AddWindow(&winTemplate); - LoadUserWindowBorderGfx(sBrailleWindowId, 0x214, 0xE0); + LoadUserWindowBorderGfx(sBrailleWindowId, 0x214, BG_PLTT_ID(0xE)); DrawStdWindowFrame(sBrailleWindowId, FALSE); PutWindowTilemap(sBrailleWindowId); FillWindowPixelBuffer(sBrailleWindowId, PIXEL_FILL(1)); diff --git a/src/secret_base.c b/src/secret_base.c index 74129d3ff..61d426ea6 100644 --- a/src/secret_base.c +++ b/src/secret_base.c @@ -181,7 +181,7 @@ static const struct WindowTemplate sRegistryWindowTemplates[] = .tilemapTop = 1, .width = 11, .height = 18, - .paletteNum = 15, + .paletteNum = 0xF, .baseBlock = 0x01, }, { @@ -190,7 +190,7 @@ static const struct WindowTemplate sRegistryWindowTemplates[] = .tilemapTop = 1, .width = 28, .height = 4, - .paletteNum = 15, + .paletteNum = 0xF, .baseBlock = 0xc7, } }; diff --git a/src/shop.c b/src/shop.c index 451fa171c..3fd29a3f3 100755 --- a/src/shop.c +++ b/src/shop.c @@ -120,7 +120,7 @@ static const struct WindowTemplate sShopMenuWindowTemplates[] = .tilemapTop = 1, .width = 9, .height = 6, - .paletteNum = 15, + .paletteNum = 0xF, .baseBlock = 0x0008, }, { @@ -129,7 +129,7 @@ static const struct WindowTemplate sShopMenuWindowTemplates[] = .tilemapTop = 1, .width = 9, .height = 4, - .paletteNum = 15, + .paletteNum = 0xF, .baseBlock = 0x0008, } }; @@ -204,7 +204,7 @@ static const struct WindowTemplate sShopBuyMenuWindowTemplates[] = .tilemapTop = 1, .width = 10, .height = 2, - .paletteNum = 15, + .paletteNum = 0xF, .baseBlock = 0x001E, }, { @@ -213,7 +213,7 @@ static const struct WindowTemplate sShopBuyMenuWindowTemplates[] = .tilemapTop = 2, .width = 15, .height = 16, - .paletteNum = 15, + .paletteNum = 0xF, .baseBlock = 0x0032, }, { @@ -222,7 +222,7 @@ static const struct WindowTemplate sShopBuyMenuWindowTemplates[] = .tilemapTop = 13, .width = 14, .height = 6, - .paletteNum = 15, + .paletteNum = 0xF, .baseBlock = 0x0122, }, { @@ -231,7 +231,7 @@ static const struct WindowTemplate sShopBuyMenuWindowTemplates[] = .tilemapTop = 11, .width = 12, .height = 2, - .paletteNum = 15, + .paletteNum = 0xF, .baseBlock = 0x0176, }, { @@ -240,7 +240,7 @@ static const struct WindowTemplate sShopBuyMenuWindowTemplates[] = .tilemapTop = 11, .width = 10, .height = 2, - .paletteNum = 15, + .paletteNum = 0xF, .baseBlock = 0x018E, }, { @@ -249,7 +249,7 @@ static const struct WindowTemplate sShopBuyMenuWindowTemplates[] = .tilemapTop = 15, .width = 27, .height = 4, - .paletteNum = 15, + .paletteNum = 0xF, .baseBlock = 0x01A2, }, DUMMY_WIN_TEMPLATE @@ -262,7 +262,7 @@ static const struct WindowTemplate sShopBuyMenuYesNoWindowTemplates = .tilemapTop = 9, .width = 5, .height = 4, - .paletteNum = 15, + .paletteNum = 0xF, .baseBlock = 0x020E, }; @@ -676,15 +676,15 @@ static void BuyMenuDecompressBgGraphics(void) { DecompressAndCopyTileDataToVram(1, gShopMenu_Gfx, 0x3A0, 0x3E3, 0); LZDecompressWram(gShopMenu_Tilemap, sShopData->tilemapBuffers[0]); - LoadCompressedPalette(gShopMenu_Pal, 0xC0, 0x20); + LoadCompressedPalette(gShopMenu_Pal, BG_PLTT_ID(0xC), PLTT_SIZE_4BPP); } static void BuyMenuInitWindows(void) { InitWindows(sShopBuyMenuWindowTemplates); DeactivateAllTextPrinters(); - LoadUserWindowBorderGfx(0, 1, 0xD0); - LoadMessageBoxGfx(0, 0xA, 0xE0); + LoadUserWindowBorderGfx(0, 1, BG_PLTT_ID(0xD)); + LoadMessageBoxGfx(0, 0xA, BG_PLTT_ID(0xE)); PutWindowTilemap(0); PutWindowTilemap(1); PutWindowTilemap(2); diff --git a/src/slot_machine.c b/src/slot_machine.c index dd2622e2b..94cc7dfae 100644 --- a/src/slot_machine.c +++ b/src/slot_machine.c @@ -789,7 +789,7 @@ static const struct WindowTemplate sWindowTemplates[] = .tilemapTop = 15, .width = 27, .height = 4, - .paletteNum = 15, + .paletteNum = 0xF, .baseBlock = 0x194 }, DUMMY_WIN_TEMPLATE @@ -802,7 +802,7 @@ static const struct WindowTemplate sWindowTemplate_InfoBox = .tilemapTop = 3, .width = 20, .height = 13, - .paletteNum = 13, + .paletteNum = 0xD, .baseBlock = 1 }; @@ -1247,8 +1247,8 @@ static void SlotMachineSetup_LoadGfxAndTilemaps(void) LoadMenuGfx(); LoadMenuAndReelOverlayTilemaps(); LoadSlotMachineGfx(); - LoadMessageBoxGfx(0, 0x200, 0xF0); - LoadUserWindowBorderGfx(0, 0x214, 0xE0); + LoadMessageBoxGfx(0, 0x200, BG_PLTT_ID(0xF)); + LoadUserWindowBorderGfx(0, 0x214, BG_PLTT_ID(0xE)); PutWindowTilemap(0); } @@ -3211,12 +3211,12 @@ static void StopReelButton_Unpress(struct Task *task, u8 taskId) static void LightenMatchLine(u8 matchLineId) { - LoadPalette(sLitMatchLinePalTable[matchLineId], sMatchLinePalOffsets[matchLineId], 2); + LoadPalette(sLitMatchLinePalTable[matchLineId], sMatchLinePalOffsets[matchLineId], PLTT_SIZEOF(1)); } static void DarkenMatchLine(u8 matchLineId) { - LoadPalette(sDarkMatchLinePalTable[matchLineId], sMatchLinePalOffsets[matchLineId], 2); + LoadPalette(sDarkMatchLinePalTable[matchLineId], sMatchLinePalOffsets[matchLineId], PLTT_SIZEOF(1)); } // light up the match line for each bet by the player @@ -3360,7 +3360,7 @@ static bool8 TryStopSlotMachineLights(void) if (gTasks[taskId].sFlashState == 0) { DestroyTask(taskId); - LoadPalette(sSlotMachineMenu_Pal, 0x10, 0x20); + LoadPalette(sSlotMachineMenu_Pal, BG_PLTT_ID(0x1), PLTT_SIZE_4BPP); return TRUE; } return FALSE; @@ -3376,7 +3376,7 @@ static void Task_FlashSlotMachineLights(u8 taskId) if (task->sFlashState == 0 || task->sFlashState == 2) task->sFlashDir = -task->sFlashDir; } - LoadPalette(sFlashingLightsPalTable[task->sFlashState], 0x10, 0x20); + LoadPalette(sFlashingLightsPalTable[task->sFlashState], BG_PLTT_ID(0x1), PLTT_SIZE_4BPP); } #undef sDelayTimer @@ -4857,7 +4857,7 @@ static void SpriteCB_DigitalDisplay_PokeballShining(struct Sprite *sprite) { if (sprite->sCounter < 3) { - LoadPalette(sPokeballShiningPalTable[sprite->sCounter], (IndexOfSpritePaletteTag(PALTAG_DIG_DISPLAY) << 4) + 0x100, 32); + LoadPalette(sPokeballShiningPalTable[sprite->sCounter], OBJ_PLTT_ID(IndexOfSpritePaletteTag(PALTAG_DIG_DISPLAY)), PLTT_SIZE_4BPP); if (++sprite->data[2] >= 4) { sprite->data[1]++; @@ -4866,7 +4866,7 @@ static void SpriteCB_DigitalDisplay_PokeballShining(struct Sprite *sprite) } else { - LoadPalette(sPokeballShiningPalTable[sprite->sCounter], (IndexOfSpritePaletteTag(PALTAG_DIG_DISPLAY) << 4) + 0x100, 32); + LoadPalette(sPokeballShiningPalTable[sprite->sCounter], OBJ_PLTT_ID(IndexOfSpritePaletteTag(PALTAG_DIG_DISPLAY)), PLTT_SIZE_4BPP); if (++sprite->data[2] >= 25) { sprite->sCounter = 0; @@ -4995,7 +4995,7 @@ static void EndDigitalDisplayScene_StopReel(void) static void EndDigitalDisplayScene_Win(void) { - LoadPalette(sDigitalDisplay_Pal, (IndexOfSpritePaletteTag(PALTAG_DIG_DISPLAY) << 4) + 0x100, 0x20); + LoadPalette(sDigitalDisplay_Pal, OBJ_PLTT_ID(IndexOfSpritePaletteTag(PALTAG_DIG_DISPLAY)), PLTT_SIZE_4BPP); } static void EndDigitalDisplayScene_InsertBet(void) @@ -5054,8 +5054,8 @@ static void LoadMenuGfx(void) sMenuGfx = Alloc(0x2200); LZDecompressWram(gSlotMachineMenu_Gfx, sMenuGfx); LoadBgTiles(2, sMenuGfx, 0x2200, 0); - LoadPalette(gSlotMachineMenu_Pal, 0, 160); - LoadPalette(sUnkPalette, 208, 32); + LoadPalette(gSlotMachineMenu_Pal, BG_PLTT_ID(0x0), 5 * PLTT_SIZE_4BPP); + LoadPalette(sUnkPalette, BG_PLTT_ID(0xD), PLTT_SIZE_4BPP); } static void LoadMenuAndReelOverlayTilemaps(void) @@ -7728,19 +7728,19 @@ static const u16 *const sLitMatchLinePalTable[NUM_MATCH_LINES] = static const u16 *const sDarkMatchLinePalTable[NUM_MATCH_LINES] = { - [MATCH_MIDDLE_ROW] = &gSlotMachineMenu_Pal[74], - [MATCH_TOP_ROW] = &gSlotMachineMenu_Pal[75], - [MATCH_BOTTOM_ROW] = &gSlotMachineMenu_Pal[76], - [MATCH_NWSE_DIAG] = &gSlotMachineMenu_Pal[77], - [MATCH_NESW_DIAG] = &gSlotMachineMenu_Pal[78], + [MATCH_MIDDLE_ROW] = &gSlotMachineMenu_Pal[BG_PLTT_ID(0x4) + 10], + [MATCH_TOP_ROW] = &gSlotMachineMenu_Pal[BG_PLTT_ID(0x4) + 11], + [MATCH_BOTTOM_ROW] = &gSlotMachineMenu_Pal[BG_PLTT_ID(0x4) + 12], + [MATCH_NWSE_DIAG] = &gSlotMachineMenu_Pal[BG_PLTT_ID(0x4) + 13], + [MATCH_NESW_DIAG] = &gSlotMachineMenu_Pal[BG_PLTT_ID(0x4) + 14], }; static const u8 sMatchLinePalOffsets[NUM_MATCH_LINES] = { - [MATCH_MIDDLE_ROW] = 74, - [MATCH_TOP_ROW] = 75, - [MATCH_BOTTOM_ROW] = 76, - [MATCH_NWSE_DIAG] = 78, // Diag colors flipped for some reason - [MATCH_NESW_DIAG] = 77 // Doesn't matter as both are identical + [MATCH_MIDDLE_ROW] = BG_PLTT_ID(0x4) + 10, + [MATCH_TOP_ROW] = BG_PLTT_ID(0x4) + 11, + [MATCH_BOTTOM_ROW] = BG_PLTT_ID(0x4) + 12, + [MATCH_NWSE_DIAG] = BG_PLTT_ID(0x4) + 14, // Diag colors flipped for some reason + [MATCH_NESW_DIAG] = BG_PLTT_ID(0x4) + 13 // Doesn't matter as both are identical }; static const u8 sBetToMatchLineIds[MAX_BET][2] = diff --git a/src/start_menu.c b/src/start_menu.c index 2a45f8d69..34e7e5b2b 100644 --- a/src/start_menu.c +++ b/src/start_menu.c @@ -192,7 +192,7 @@ static const struct WindowTemplate sWindowTemplates_LinkBattleSave[] = .tilemapTop = 15, .width = 26, .height = 4, - .paletteNum = 15, + .paletteNum = 0xF, .baseBlock = 0x194 }, DUMMY_WIN_TEMPLATE @@ -204,7 +204,7 @@ static const struct WindowTemplate sSaveInfoWindowTemplate = { .tilemapTop = 1, .width = 14, .height = 10, - .paletteNum = 15, + .paletteNum = 0xF, .baseBlock = 8 }; @@ -1196,8 +1196,8 @@ static bool32 InitSaveWindowAfterLinkBattle(u8 *state) ResetBgsAndClearDma3BusyFlags(0); InitBgsFromTemplates(0, sBgTemplates_LinkBattleSave, ARRAY_COUNT(sBgTemplates_LinkBattleSave)); InitWindows(sWindowTemplates_LinkBattleSave); - LoadUserWindowBorderGfx_(0, 8, 224); - Menu_LoadStdPalAt(240); + LoadUserWindowBorderGfx_(0, 8, BG_PLTT_ID(0xE)); + Menu_LoadStdPalAt(BG_PLTT_ID(0xF)); break; case 3: ShowBg(0); @@ -1246,7 +1246,7 @@ static void Task_SaveAfterLinkBattle(u8 taskId) TEXT_COLOR_DARK_GRAY, TEXT_COLOR_WHITE, TEXT_COLOR_LIGHT_GRAY); - DrawTextBorderOuter(0, 8, 14); + DrawTextBorderOuter(0, 8, 0xE); PutWindowTilemap(0); CopyWindowToVram(0, COPYWIN_FULL); BeginNormalPaletteFade(PALETTES_ALL, 0, 16, 0, RGB_BLACK); diff --git a/src/starter_choose.c b/src/starter_choose.c index cbe0c7ee6..fc626e13a 100644 --- a/src/starter_choose.c +++ b/src/starter_choose.c @@ -73,7 +73,7 @@ static const struct WindowTemplate sWindowTemplates[] = .tilemapTop = 15, .width = 24, .height = 4, - .paletteNum = 14, + .paletteNum = 0xE, .baseBlock = 0x0200 }, DUMMY_WIN_TEMPLATE, @@ -86,7 +86,7 @@ static const struct WindowTemplate sWindowTemplate_ConfirmStarter = .tilemapTop = 9, .width = 5, .height = 4, - .paletteNum = 14, + .paletteNum = 0xE, .baseBlock = 0x0260 }; @@ -97,7 +97,7 @@ static const struct WindowTemplate sWindowTemplate_StarterLabel = .tilemapTop = 0, .width = 13, .height = 4, - .paletteNum = 14, + .paletteNum = 0xE, .baseBlock = 0x0274 }; @@ -411,7 +411,7 @@ void CB2_ChooseStarter(void) InitWindows(sWindowTemplates); DeactivateAllTextPrinters(); - LoadUserWindowBorderGfx(0, 0x2A8, 0xD0); + LoadUserWindowBorderGfx(0, 0x2A8, BG_PLTT_ID(0xD)); ClearScheduledBgCopiesToVram(); ScanlineEffect_Stop(); ResetTasks(); @@ -420,8 +420,8 @@ void CB2_ChooseStarter(void) FreeAllSpritePalettes(); ResetAllPicSprites(); - LoadPalette(GetOverworldTextboxPalettePtr(), 0xE0, 0x20); - LoadPalette(gBirchBagGrassPal, 0, 0x40); + LoadPalette(GetOverworldTextboxPalettePtr(), BG_PLTT_ID(0xE), PLTT_SIZE_4BPP); + LoadPalette(gBirchBagGrassPal, BG_PLTT_ID(0x0), 2 * PLTT_SIZE_4BPP); LoadCompressedSpriteSheet(&sSpriteSheet_PokeballSelect[0]); LoadCompressedSpriteSheet(&sSpriteSheet_StarterCircle[0]); LoadSpritePalettes(sSpritePalettes_StarterChoose); diff --git a/src/text_window.c b/src/text_window.c index 798b791ce..df0683729 100644 --- a/src/text_window.c +++ b/src/text_window.c @@ -93,7 +93,7 @@ const struct TilesPal *GetWindowFrameTilesPal(u8 id) void LoadMessageBoxGfx(u8 windowId, u16 destOffset, u8 palOffset) { LoadBgTiles(GetWindowAttribute(windowId, WINDOW_BG), gMessageBox_Gfx, 0x1C0, destOffset); - LoadPalette(GetOverworldTextboxPalettePtr(), palOffset, 0x20); + LoadPalette(GetOverworldTextboxPalettePtr(), palOffset, PLTT_SIZE_4BPP); } void LoadUserWindowBorderGfx_(u8 windowId, u16 destOffset, u8 palOffset) @@ -104,7 +104,7 @@ void LoadUserWindowBorderGfx_(u8 windowId, u16 destOffset, u8 palOffset) void LoadWindowGfx(u8 windowId, u8 frameId, u16 destOffset, u8 palOffset) { LoadBgTiles(GetWindowAttribute(windowId, WINDOW_BG), sWindowFrames[frameId].tiles, 0x120, destOffset); - LoadPalette(sWindowFrames[frameId].pal, palOffset, 0x20); + LoadPalette(sWindowFrames[frameId].pal, palOffset, PLTT_SIZE_4BPP); } void LoadUserWindowBorderGfx(u8 windowId, u16 destOffset, u8 palOffset) @@ -164,7 +164,7 @@ const u16 *GetTextWindowPalette(u8 id) switch (id) { case 0: - id = 0; + id = 0x00; break; case 1: id = 0x10; @@ -193,5 +193,5 @@ const u16 *GetOverworldTextboxPalettePtr(void) void LoadUserWindowBorderGfxOnBg(u8 bg, u16 destOffset, u8 palOffset) { LoadBgTiles(bg, sWindowFrames[gSaveBlock2Ptr->optionsWindowFrameType].tiles, 0x120, destOffset); - LoadPalette(GetWindowFrameTilesPal(gSaveBlock2Ptr->optionsWindowFrameType)->pal, palOffset, 0x20); + LoadPalette(GetWindowFrameTilesPal(gSaveBlock2Ptr->optionsWindowFrameType)->pal, palOffset, PLTT_SIZE_4BPP); } diff --git a/src/tileset_anims.c b/src/tileset_anims.c index 6a7589e36..018ac5d88 100644 --- a/src/tileset_anims.c +++ b/src/tileset_anims.c @@ -1168,7 +1168,7 @@ static void QueueAnimTiles_BattlePyramid_StatueShadow(u16 timer) static void BlendAnimPalette_BattleDome_FloorLights(u16 timer) { CpuCopy16(sTilesetAnims_BattleDomeFloorLightPals[timer % ARRAY_COUNT(sTilesetAnims_BattleDomeFloorLightPals)], &gPlttBufferUnfaded[0x80], 32); - BlendPalette(0x80, 16, gPaletteFade.y, gPaletteFade.blendColor & 0x7FFF); + BlendPalette(BG_PLTT_ID(0x8), 16, gPaletteFade.y, gPaletteFade.blendColor & 0x7FFF); if ((u8)FindTaskIdByFunc(Task_BattleTransition_Intro) != TASK_NONE) { sSecondaryTilesetAnimCallback = TilesetAnim_BattleDome2; @@ -1181,7 +1181,7 @@ static void BlendAnimPalette_BattleDome_FloorLightsNoBlend(u16 timer) CpuCopy16(sTilesetAnims_BattleDomeFloorLightPals[timer % ARRAY_COUNT(sTilesetAnims_BattleDomeFloorLightPals)], &gPlttBufferUnfaded[0x80], 32); if ((u8)FindTaskIdByFunc(Task_BattleTransition_Intro) == TASK_NONE) { - BlendPalette(0x80, 16, gPaletteFade.y, gPaletteFade.blendColor & 0x7FFF); + BlendPalette(BG_PLTT_ID(0x8), 16, gPaletteFade.y, gPaletteFade.blendColor & 0x7FFF); if (!--sSecondaryTilesetAnimCounterMax) sSecondaryTilesetAnimCallback = NULL; } diff --git a/src/title_screen.c b/src/title_screen.c index 25a1d60d0..7f7205d9d 100644 --- a/src/title_screen.c +++ b/src/title_screen.c @@ -548,7 +548,7 @@ void CB2_InitTitleScreen(void) // bg2 LZ77UnCompVram(gTitleScreenPokemonLogoGfx, (void *)(BG_CHAR_ADDR(0))); LZ77UnCompVram(gTitleScreenPokemonLogoTilemap, (void *)(BG_SCREEN_ADDR(9))); - LoadPalette(gTitleScreenBgPalettes, 0, 0x1E0); + LoadPalette(gTitleScreenBgPalettes, BG_PLTT_ID(0x0), 15 * PLTT_SIZE_4BPP); // bg3 LZ77UnCompVram(sTitleScreenRayquazaGfx, (void *)(BG_CHAR_ADDR(2))); LZ77UnCompVram(sTitleScreenRayquazaTilemap, (void *)(BG_SCREEN_ADDR(26))); @@ -563,7 +563,7 @@ void CB2_InitTitleScreen(void) LoadCompressedSpriteSheet(&sSpriteSheet_EmeraldVersion[0]); LoadCompressedSpriteSheet(&sSpriteSheet_PressStart[0]); LoadCompressedSpriteSheet(&sPokemonLogoShineSpriteSheet[0]); - LoadPalette(gTitleScreenEmeraldVersionPal, 0x100, 0x20); + LoadPalette(gTitleScreenEmeraldVersionPal, OBJ_PLTT_ID(0x0), PLTT_SIZE_4BPP); LoadSpritePalette(&sSpritePalette_PressStart[0]); gMain.state = 2; break; @@ -812,6 +812,6 @@ static void UpdateLegendaryMarkingColor(u8 frameNum) s32 b = 12; u16 color = RGB(r, g, b); - LoadPalette(&color, 0xEF, sizeof(color)); + LoadPalette(&color, BG_PLTT_ID(0xE) + 15, sizeof(color)); } } diff --git a/src/trade.c b/src/trade.c index 7c712b580..1c4d0d5e3 100644 --- a/src/trade.c +++ b/src/trade.c @@ -333,8 +333,8 @@ static void InitTradeMenu(void) gPaletteFade.bufferTransferDisabled = TRUE; SetVBlankCallback(VBlankCB_TradeMenu); - LoadPalette(gStandardMenuPalette, 0xF0, 20); - LoadPalette(gStandardMenuPalette, 0xD0, 20); + LoadPalette(gStandardMenuPalette, BG_PLTT_ID(0xF), PLTT_SIZEOF(10)); + LoadPalette(gStandardMenuPalette, BG_PLTT_ID(0xD), PLTT_SIZEOF(10)); ResetBgsAndClearDma3BusyFlags(0); InitBgsFromTemplates(0, sTradeMenuBgTemplates, ARRAY_COUNT(sTradeMenuBgTemplates)); SetBgTilemapBuffer(1, sTradeMenuData->tilemapBuffer); @@ -351,9 +351,9 @@ static void InitTradeMenu(void) FillWindowPixelBuffer(i, PIXEL_FILL(0)); } - FillBgTilemapBufferRect(0, 0, 0, 0, 30, 20, 15); - LoadUserWindowBorderGfx_(0, 20, 0xC0); - LoadUserWindowBorderGfx(2, 1, 0xE0); + FillBgTilemapBufferRect(0, 0, 0, 0, 30, 20, 0xF); + LoadUserWindowBorderGfx_(0, 20, BG_PLTT_ID(0xC)); + LoadUserWindowBorderGfx(2, 1, BG_PLTT_ID(0xE)); LoadMonIconPalettes(); sTradeMenuData->bufferPartyState = 0; sTradeMenuData->tradeMenuFunc = 0; @@ -910,7 +910,7 @@ static void LoadTradeBgGfx(u8 state) switch (state) { case 0: - LoadPalette(gTradeMenu_Pal, 0, 0x60); + LoadPalette(gTradeMenu_Pal, BG_PLTT_ID(0x0), 3 * PLTT_SIZE_4BPP); LoadBgTiles(1, gTradeMenu_Gfx, 0x1280, 0); CopyToBgTilemapBufferRect_ChangePalette(1, gTradeMenu_Tilemap, 0, 0, 32, 20, 0); LoadBgTilemap(2, sTradeStripesBG2Tilemap, 0x800, 0); @@ -1391,7 +1391,7 @@ static void TradeMenuProcessInput(void) // Cursor is in player's party if (sTradeMenuData->cursorPosition < PARTY_SIZE) { - DrawTextBorderOuter(1, 1, 14); + DrawTextBorderOuter(1, 1, 0xE); FillWindowPixelBuffer(1, PIXEL_FILL(1)); PrintMenuTable(1, ARRAY_COUNT(sSelectTradeMonActions), sSelectTradeMonActions); InitMenuInUpperLeftCornerNormal(1, ARRAY_COUNT(sSelectTradeMonActions), 0); @@ -2153,7 +2153,7 @@ static void PrintTradeMessage(u8 messageId) { FillWindowPixelBuffer(0, PIXEL_FILL(1)); AddTextPrinterParameterized(0, FONT_NORMAL, sTradeMessages[messageId], 0, 1, TEXT_SKIP_DRAW, NULL); - DrawTextBorderOuter(0, 20, 12); + DrawTextBorderOuter(0, 20, 0xC); PutWindowTilemap(0); CopyWindowToVram(0, COPYWIN_FULL); } @@ -2605,7 +2605,7 @@ static void SpriteCB_LinkMonShadow(struct Sprite *sprite) if (++sprite->data[0] == 12) sprite->data[0] = 0; - LoadPalette(&sLinkMonShadow_Pal[sprite->data[0]], (sprite->oam.paletteNum + 16) * 16 + 4, 2); + LoadPalette(&sLinkMonShadow_Pal[sprite->data[0]], OBJ_PLTT_ID2(sprite->oam.paletteNum) + 4, PLTT_SIZEOF(1)); } } @@ -2915,12 +2915,12 @@ static void InitTradeBgInternal(void) DecompressAndLoadBgGfxUsingHeap(0, gBattleTextboxTiles, 0, 0, 0); LZDecompressWram(gBattleTextboxTilemap, gDecompressionBuffer); CopyToBgTilemapBuffer(0, gDecompressionBuffer, 0x800, 0); - LoadCompressedPalette(gBattleTextboxPalette, 0, 0x20); + LoadCompressedPalette(gBattleTextboxPalette, BG_PLTT_ID(0x0), PLTT_SIZE_4BPP); InitWindows(sTradeSequenceWindowTemplates); DecompressAndLoadBgGfxUsingHeap(0, gBattleTextboxTiles, 0, 0, 0); LZDecompressWram(gBattleTextboxTilemap, gDecompressionBuffer); CopyToBgTilemapBuffer(0, gDecompressionBuffer, 0x800, 0); - LoadCompressedPalette(gBattleTextboxPalette, 0, 0x20); + LoadCompressedPalette(gBattleTextboxPalette, BG_PLTT_ID(0x0), PLTT_SIZE_4BPP); } static void CB2_InGameTrade(void) @@ -3100,7 +3100,7 @@ static void SetTradeSequenceBgGpuRegs(u8 state) BGCNT_16COLOR | BGCNT_SCREENBASE(18) | BGCNT_TXT512x256); - LoadPalette(gTradeGba2_Pal, 16, 0x60); + LoadPalette(gTradeGba2_Pal, BG_PLTT_ID(0x1), 3 * PLTT_SIZE_4BPP); DmaCopyLarge16(3, gTradeGba_Gfx, (void *) BG_CHAR_ADDR(1), 0x1420, 0x1000); DmaCopy16Defvars(3, gTradePlatform_Tilemap, (void *) BG_SCREEN_ADDR(18), 0x1000); break; @@ -3157,7 +3157,7 @@ static void SetTradeSequenceBgGpuRegs(u8 state) } break; case 3: - LoadPalette(sWirelessSignalNone_Pal, 48, 0x20); + LoadPalette(sWirelessSignalNone_Pal, BG_PLTT_ID(0x3), PLTT_SIZE_4BPP); LZ77UnCompVram(sWirelessSignal_Gfx, (void *) BG_CHAR_ADDR(1)); LZ77UnCompVram(sWirelessSignal_Tilemap, (void *) BG_SCREEN_ADDR(18)); sTradeData->bg2vofs = 80; @@ -3236,7 +3236,7 @@ static void SetTradeSequenceBgGpuRegs(u8 state) BGCNT_16COLOR | BGCNT_SCREENBASE(18) | BGCNT_TXT512x256); - LoadPalette(gTradeGba2_Pal, 16, 0x60); + LoadPalette(gTradeGba2_Pal, BG_PLTT_ID(0x1), 3 * PLTT_SIZE_4BPP); DmaCopyLarge16(3, gTradeGba_Gfx, (void *) BG_CHAR_ADDR(1), 0x1420, 0x1000); DmaCopy16Defvars(3, gTradePlatform_Tilemap, (void *) BG_SCREEN_ADDR(18), 0x1000); break; @@ -4849,16 +4849,16 @@ static void Task_AnimateWirelessSignal(u8 taskId) if (!signalComingBack) { if (paletteIdx == 256) - LoadPalette(sWirelessSignalNone_Pal, 0x30, 32); + LoadPalette(sWirelessSignalNone_Pal, BG_PLTT_ID(0x3), PLTT_SIZE_4BPP); else - LoadPalette(&sWirelessSignalSend_Pal[paletteIdx], 0x30, 32); + LoadPalette(&sWirelessSignalSend_Pal[paletteIdx], BG_PLTT_ID(0x3), PLTT_SIZE_4BPP); } else { if (paletteIdx == 256) - LoadPalette(sWirelessSignalNone_Pal, 0x30, 32); + LoadPalette(sWirelessSignalNone_Pal, BG_PLTT_ID(0x3), PLTT_SIZE_4BPP); else - LoadPalette(&sWirelessSignalRecv_Pal[paletteIdx], 0x30, 32); + LoadPalette(&sWirelessSignalRecv_Pal[paletteIdx], BG_PLTT_ID(0x3), PLTT_SIZE_4BPP); } if (sWirelessSignalTiming[idx][0] == 0 && counter == 0) diff --git a/src/trader.c b/src/trader.c index 254d80945..b16297c10 100644 --- a/src/trader.c +++ b/src/trader.c @@ -66,7 +66,7 @@ void CreateAvailableDecorationsMenu(u8 taskId) .tilemapTop = 1, .width = 10, .height = 10, - .paletteNum = 15, + .paletteNum = 0xF, .baseBlock = 1 }; s32 windowWidth = GetStringWidth(FONT_NORMAL, gText_Exit, 0); diff --git a/src/trainer_card.c b/src/trainer_card.c index ab7b3c913..94fcdaf6e 100755 --- a/src/trainer_card.c +++ b/src/trainer_card.c @@ -231,7 +231,7 @@ static const struct WindowTemplate sTrainerCardWindowTemplates[] = .tilemapTop = 15, .width = 27, .height = 4, - .paletteNum = 15, + .paletteNum = 0xF, .baseBlock = 0x253, }, { @@ -240,7 +240,7 @@ static const struct WindowTemplate sTrainerCardWindowTemplates[] = .tilemapTop = 1, .width = 28, .height = 18, - .paletteNum = 15, + .paletteNum = 0xF, .baseBlock = 0x1, }, { @@ -249,7 +249,7 @@ static const struct WindowTemplate sTrainerCardWindowTemplates[] = .tilemapTop = 5, .width = 9, .height = 10, - .paletteNum = 8, + .paletteNum = 0x8, .baseBlock = 0x150, }, DUMMY_WIN_TEMPLATE @@ -1371,7 +1371,7 @@ static void LoadMonIconGfx(void) TintPalette_SepiaTone(sData->monIconPal, 96); break; } - LoadPalette(sData->monIconPal, 80, 192); + LoadPalette(sData->monIconPal, BG_PLTT_ID(0x5), 6 * PLTT_SIZE_4BPP); for (i = 0; i < PARTY_SIZE; i++) { @@ -1398,10 +1398,10 @@ static void PrintStickersOnCard(void) static void LoadStickerGfx(void) { - LoadPalette(sTrainerCardSticker1_Pal, 176, 32); - LoadPalette(sTrainerCardSticker2_Pal, 192, 32); - LoadPalette(sTrainerCardSticker3_Pal, 208, 32); - LoadPalette(sTrainerCardSticker4_Pal, 224, 32); + LoadPalette(sTrainerCardSticker1_Pal, BG_PLTT_ID(0xB), PLTT_SIZE_4BPP); + LoadPalette(sTrainerCardSticker2_Pal, BG_PLTT_ID(0xC), PLTT_SIZE_4BPP); + LoadPalette(sTrainerCardSticker3_Pal, BG_PLTT_ID(0xD), PLTT_SIZE_4BPP); + LoadPalette(sTrainerCardSticker4_Pal, BG_PLTT_ID(0xE), PLTT_SIZE_4BPP); LoadBgTiles(3, sData->stickerTiles, 1024, 128); } @@ -1424,19 +1424,19 @@ static u8 SetCardBgsAndPals(void) case 2: if (sData->cardType != CARD_TYPE_FRLG) { - LoadPalette(sHoennTrainerCardStarPals[sData->trainerCard.stars], 0, 96); - LoadPalette(sHoennTrainerCardBadges_Pal, 48, 32); + LoadPalette(sHoennTrainerCardStarPals[sData->trainerCard.stars], BG_PLTT_ID(0x0), 3 * PLTT_SIZE_4BPP); + LoadPalette(sHoennTrainerCardBadges_Pal, BG_PLTT_ID(0x3), PLTT_SIZE_4BPP); if (sData->trainerCard.gender != MALE) - LoadPalette(sHoennTrainerCardFemaleBg_Pal, 16, 32); + LoadPalette(sHoennTrainerCardFemaleBg_Pal, BG_PLTT_ID(0x1), PLTT_SIZE_4BPP); } else { - LoadPalette(sKantoTrainerCardStarPals[sData->trainerCard.stars], 0, 96); - LoadPalette(sKantoTrainerCardBadges_Pal, 48, 32); + LoadPalette(sKantoTrainerCardStarPals[sData->trainerCard.stars], BG_PLTT_ID(0x0), 3 * PLTT_SIZE_4BPP); + LoadPalette(sKantoTrainerCardBadges_Pal, BG_PLTT_ID(0x3), PLTT_SIZE_4BPP); if (sData->trainerCard.gender != MALE) - LoadPalette(sKantoTrainerCardFemaleBg_Pal, 16, 32); + LoadPalette(sKantoTrainerCardFemaleBg_Pal, BG_PLTT_ID(0x1), PLTT_SIZE_4BPP); } - LoadPalette(sTrainerCardGold_Pal, 64, 32); + LoadPalette(sTrainerCardGold_Pal, BG_PLTT_ID(0x4), PLTT_SIZE_4BPP); break; case 3: SetBgTilemapBuffer(0, sData->cardTilemapBuffer); @@ -1495,9 +1495,9 @@ static void DrawStarsAndBadgesOnCard(void) s16 i, x; u16 tileNum = 192; - u8 palNum = 3; + u8 palNum = 0x3; - FillBgTilemapBufferRect(3, 143, 15, yOffsets[sData->isHoenn], sData->trainerCard.stars, 1, 4); + FillBgTilemapBufferRect(3, 143, 15, yOffsets[sData->isHoenn], sData->trainerCard.stars, 1, 0x4); if (!sData->isLink) { x = 4; @@ -1521,38 +1521,38 @@ static void DrawCardBackStats(void) { if (sData->hasTrades) { - FillBgTilemapBufferRect(3, 141, 27, 9, 1, 1, 1); - FillBgTilemapBufferRect(3, 157, 27, 10, 1, 1, 1); + FillBgTilemapBufferRect(3, 141, 27, 9, 1, 1, 0x1); + FillBgTilemapBufferRect(3, 157, 27, 10, 1, 1, 0x1); } if (sData->trainerCard.linkPoints.berryCrush) { - FillBgTilemapBufferRect(3, 141, 21, 13, 1, 1, 1); - FillBgTilemapBufferRect(3, 157, 21, 14, 1, 1, 1); + FillBgTilemapBufferRect(3, 141, 21, 13, 1, 1, 0x1); + FillBgTilemapBufferRect(3, 157, 21, 14, 1, 1, 0x1); } if (sData->trainerCard.unionRoomNum) { - FillBgTilemapBufferRect(3, 141, 27, 11, 1, 1, 1); - FillBgTilemapBufferRect(3, 157, 27, 12, 1, 1, 1); + FillBgTilemapBufferRect(3, 141, 27, 11, 1, 1, 0x1); + FillBgTilemapBufferRect(3, 157, 27, 12, 1, 1, 0x1); } } else { if (sData->hasTrades) { - FillBgTilemapBufferRect(3, 141, 27, 9, 1, 1, 0); - FillBgTilemapBufferRect(3, 157, 27, 10, 1, 1, 0); + FillBgTilemapBufferRect(3, 141, 27, 9, 1, 1, 0x0); + FillBgTilemapBufferRect(3, 157, 27, 10, 1, 1, 0x0); } if (sData->trainerCard.contestsWithFriends) { - FillBgTilemapBufferRect(3, 141, 27, 13, 1, 1, 0); - FillBgTilemapBufferRect(3, 157, 27, 14, 1, 1, 0); + FillBgTilemapBufferRect(3, 141, 27, 13, 1, 1, 0x0); + FillBgTilemapBufferRect(3, 157, 27, 14, 1, 1, 0x0); } if (sData->hasBattleTowerWins) { - FillBgTilemapBufferRect(3, 141, 17, 15, 1, 1, 0); - FillBgTilemapBufferRect(3, 157, 17, 16, 1, 1, 0); - FillBgTilemapBufferRect(3, 140, 27, 15, 1, 1, 0); - FillBgTilemapBufferRect(3, 156, 27, 16, 1, 1, 0); + FillBgTilemapBufferRect(3, 141, 17, 15, 1, 1, 0x0); + FillBgTilemapBufferRect(3, 157, 17, 16, 1, 1, 0x0); + FillBgTilemapBufferRect(3, 140, 27, 15, 1, 1, 0x0); + FillBgTilemapBufferRect(3, 156, 27, 16, 1, 1, 0x0); } } CopyBgTilemapBufferToVram(3); diff --git a/src/trainer_hill.c b/src/trainer_hill.c index 4549166ac..bb606f37b 100644 --- a/src/trainer_hill.c +++ b/src/trainer_hill.c @@ -951,7 +951,7 @@ static void SetAllTrainerFlags(void) void TryLoadTrainerHillEReaderPalette(void) { if (OnTrainerHillEReaderChallengeFloor() == TRUE) - LoadPalette(sEReader_Pal, 0x70, 0x20); + LoadPalette(sEReader_Pal, BG_PLTT_ID(0x7), PLTT_SIZE_4BPP); } static void GetGameSaved(void) diff --git a/src/trainer_pokemon_sprites.c b/src/trainer_pokemon_sprites.c index a7289677e..d81fac54c 100644 --- a/src/trainer_pokemon_sprites.c +++ b/src/trainer_pokemon_sprites.c @@ -94,7 +94,7 @@ static void LoadPicPaletteByTagOrSlot(u16 species, u32 otId, u32 personality, u8 if (paletteTag == TAG_NONE) { sCreatingSpriteTemplate.paletteTag = TAG_NONE; - LoadCompressedPalette(GetMonSpritePalFromSpeciesAndPersonality(species, otId, personality), 0x100 + paletteSlot * 0x10, 0x20); + LoadCompressedPalette(GetMonSpritePalFromSpeciesAndPersonality(species, otId, personality), OBJ_PLTT_ID(paletteSlot), PLTT_SIZE_4BPP); } else { @@ -107,7 +107,7 @@ static void LoadPicPaletteByTagOrSlot(u16 species, u32 otId, u32 personality, u8 if (paletteTag == TAG_NONE) { sCreatingSpriteTemplate.paletteTag = TAG_NONE; - LoadCompressedPalette(gTrainerFrontPicPaletteTable[species].data, 0x100 + paletteSlot * 0x10, 0x20); + LoadCompressedPalette(gTrainerFrontPicPaletteTable[species].data, OBJ_PLTT_ID(paletteSlot), PLTT_SIZE_4BPP); } else { @@ -120,9 +120,9 @@ static void LoadPicPaletteByTagOrSlot(u16 species, u32 otId, u32 personality, u8 static void LoadPicPaletteBySlot(u16 species, u32 otId, u32 personality, u8 paletteSlot, bool8 isTrainer) { if (!isTrainer) - LoadCompressedPalette(GetMonSpritePalFromSpeciesAndPersonality(species, otId, personality), paletteSlot * 0x10, 0x20); + LoadCompressedPalette(GetMonSpritePalFromSpeciesAndPersonality(species, otId, personality), PLTT_ID(paletteSlot), PLTT_SIZE_4BPP); else - LoadCompressedPalette(gTrainerFrontPicPaletteTable[species].data, paletteSlot * 0x10, 0x20); + LoadCompressedPalette(gTrainerFrontPicPaletteTable[species].data, PLTT_ID(paletteSlot), PLTT_SIZE_4BPP); } static void AssignSpriteAnimsTable(bool8 isTrainer) diff --git a/src/union_room.c b/src/union_room.c index 67d1059ee..299171325 100644 --- a/src/union_room.c +++ b/src/union_room.c @@ -1910,7 +1910,7 @@ static void Task_SendMysteryGift(u8 taskId) winTemplate = sWindowTemplate_PlayerList; winTemplate.baseBlock = GetMysteryGiftBaseBlock(); - winTemplate.paletteNum = 12; + winTemplate.paletteNum = 0xC; data->listWindowId = AddWindow(&winTemplate); MG_DrawTextBorder(data->listWindowId); gMultiuseListMenuTemplate = sListMenuTemplate_PossibleGroupMembers; @@ -2114,11 +2114,11 @@ static void Task_CardOrNewsWithFriend(u8 taskId) listWinTemplate = sWindowTemplate_GroupList; listWinTemplate.baseBlock = GetMysteryGiftBaseBlock(); - listWinTemplate.paletteNum = 12; + listWinTemplate.paletteNum = 0xC; data->listWindowId = AddWindow(&listWinTemplate); playerNameWinTemplate = sWindowTemplate_PlayerNameAndId; - playerNameWinTemplate.paletteNum = 12; + playerNameWinTemplate.paletteNum = 0xC; data->playerNameAndIdWindowId = AddWindow(&playerNameWinTemplate); MG_DrawTextBorder(data->listWindowId); @@ -2439,7 +2439,7 @@ void RunUnionRoom(void) uroom->unreadPlayerId = 0; gSpecialVar_Result = 0; - ListMenuLoadStdPalAt(0xD0, 1); + ListMenuLoadStdPalAt(BG_PLTT_ID(0xD), 1); } static u16 ReadAsU16(const u8 *ptr) @@ -3775,7 +3775,7 @@ static s32 TradeBoardMenuHandler(u8 *state, u8 *mainWindowId, u8 *listMenuId, u8 static void UR_ClearBg0(void) { - FillBgTilemapBufferRect(0, 0, 0, 0, 32, 32, 0); + FillBgTilemapBufferRect(0, 0, 0, 0, 32, 32, 0x0); CopyBgTilemapBufferToVram(0); } diff --git a/src/union_room_battle.c b/src/union_room_battle.c index 1ec8be77b..f4ad73b32 100644 --- a/src/union_room_battle.c +++ b/src/union_room_battle.c @@ -130,8 +130,8 @@ void CB2_UnionRoomBattle(void) FillWindowPixelBuffer(0, PIXEL_FILL(0)); FillWindowPixelBuffer(0, PIXEL_FILL(1)); FillBgTilemapBufferRect(0, 0, 0, 0, 30, 20, 0xF); - LoadUserWindowBorderGfx(0, 1, 0xD0); - LoadUserWindowBorderGfx_(0, 1, 0xD0); + LoadUserWindowBorderGfx(0, 1, BG_PLTT_ID(0xD)); + LoadUserWindowBorderGfx_(0, 1, BG_PLTT_ID(0xD)); Menu_LoadStdPal(); SetVBlankCallback(VBlankCB_UnionRoomBattle); gMain.state++; diff --git a/src/union_room_chat.c b/src/union_room_chat.c index f8513b9f4..98af18cde 100755 --- a/src/union_room_chat.c +++ b/src/union_room_chat.c @@ -566,7 +566,7 @@ static const struct WindowTemplate sWinTemplates[] = { .tilemapTop = 1, .width = 21, .height = 19, - .paletteNum = 15, + .paletteNum = 0xF, .baseBlock = 0x0001, }, { .bg = 1, @@ -574,7 +574,7 @@ static const struct WindowTemplate sWinTemplates[] = { .tilemapTop = 18, .width = 15, .height = 2, - .paletteNum = 12, + .paletteNum = 0xC, .baseBlock = 0x007a, }, { .bg = 1, @@ -582,7 +582,7 @@ static const struct WindowTemplate sWinTemplates[] = { .tilemapTop = 2, .width = 6, .height = 15, - .paletteNum = 7, + .paletteNum = 0x7, .baseBlock = 0x0020, }, { .bg = 0, @@ -590,7 +590,7 @@ static const struct WindowTemplate sWinTemplates[] = { .tilemapTop = 2, .width = 7, .height = 9, - .paletteNum = 14, + .paletteNum = 0xE, .baseBlock = 0x0013, }, DUMMY_WIN_TEMPLATE }; @@ -2732,7 +2732,7 @@ static void AddYesNoMenuAt(u8 left, u8 top, u8 initialCursorPos) template.tilemapTop = top; template.width = 6; template.height = 4; - template.paletteNum = 14; + template.paletteNum = 0xE; template.baseBlock = 0x52; sDisplay->yesNoMenuWindowId = AddWindow(&template); if (sDisplay->yesNoMenuWindowId != WINDOW_NONE) @@ -2741,7 +2741,7 @@ static void AddYesNoMenuAt(u8 left, u8 top, u8 initialCursorPos) PutWindowTilemap(sDisplay->yesNoMenuWindowId); AddTextPrinterParameterized(sDisplay->yesNoMenuWindowId, FONT_NORMAL, gText_Yes, 8, 1, TEXT_SKIP_DRAW, NULL); AddTextPrinterParameterized(sDisplay->yesNoMenuWindowId, FONT_NORMAL, gText_No, 8, 17, TEXT_SKIP_DRAW, NULL); - DrawTextBorderOuter(sDisplay->yesNoMenuWindowId, 1, 13); + DrawTextBorderOuter(sDisplay->yesNoMenuWindowId, 1, 0xD); InitMenuInUpperLeftCornerNormal(sDisplay->yesNoMenuWindowId, 2, initialCursorPos); } } @@ -2779,7 +2779,7 @@ static void AddStdMessageWindow(int msgId, u16 bg0vofs) template.tilemapTop = 16; template.width = 21; template.height = 4; - template.paletteNum = 14; + template.paletteNum = 0xE; template.baseBlock = 0x6A; if (sDisplayStdMessages[msgId].useWiderBox) { @@ -3050,8 +3050,8 @@ static void ClearBg0(void) static void LoadChatWindowBorderGfx(void) { - LoadPalette(gUnionRoomChat_Window_Pal2, 0x70, 0x20); - LoadPalette(gUnionRoomChat_Window_Pal1, 0xC0, 0x20); + LoadPalette(gUnionRoomChat_Window_Pal2, BG_PLTT_ID(0x7), PLTT_SIZE_4BPP); + LoadPalette(gUnionRoomChat_Window_Pal1, BG_PLTT_ID(0xC), PLTT_SIZE_4BPP); DecompressAndCopyTileDataToVram(1, gUnionRoomChat_Border_Gfx, 0, 0, 0); CopyToBgTilemapBuffer(1, gUnionRoomChat_Border_Tilemap, 0, 0); CopyBgTilemapBufferToVram(1); @@ -3061,7 +3061,7 @@ static void LoadChatWindowGfx(void) { u8 *ptr; - LoadPalette(gUnionRoomChat_Background_Pal, 0, 0x20); + LoadPalette(gUnionRoomChat_Background_Pal, BG_PLTT_ID(0x0), PLTT_SIZE_4BPP); ptr = DecompressAndCopyTileDataToVram(2, gUnionRoomChat_Background_Gfx, 0, 0, 0); if (ptr) { @@ -3075,13 +3075,13 @@ static void LoadChatWindowGfx(void) static void LoadChatUnkPalette(void) { - LoadPalette(sUnk_Palette1, 0x80, sizeof(sUnk_Palette1)); + LoadPalette(sUnk_Palette1, BG_PLTT_ID(0x8), sizeof(sUnk_Palette1)); RequestDma3Fill(0, (void *)BG_CHAR_ADDR(1) + 0x20, 0x20, 1); } static void LoadChatMessagesWindow(void) { - LoadPalette(sUnk_Palette2, 0xF0, sizeof(sUnk_Palette2)); + LoadPalette(sUnk_Palette2, BG_PLTT_ID(0xF), sizeof(sUnk_Palette2)); PutWindowTilemap(0); FillWindowPixelBuffer(0, PIXEL_FILL(1)); CopyWindowToVram(0, COPYWIN_FULL); @@ -3112,9 +3112,9 @@ static void LoadTextEntryWindow(void) static void LoadKeyboardSwapWindow(void) { FillWindowPixelBuffer(3, PIXEL_FILL(1)); - LoadUserWindowBorderGfx(3, 1, 0xD0); - LoadUserWindowBorderGfx_(3, 0xA, 0x20); - LoadPalette(gStandardMenuPalette, 0xE0, 0x20); + LoadUserWindowBorderGfx(3, 1, BG_PLTT_ID(0xD)); + LoadUserWindowBorderGfx_(3, 0xA, BG_PLTT_ID(0x2)); + LoadPalette(gStandardMenuPalette, BG_PLTT_ID(0xE), PLTT_SIZE_4BPP); } static void InitScanlineEffect(void) @@ -3197,7 +3197,7 @@ static void SetRegisteredTextPalette(bool32 registering) { const u16 *palette = &sUnionRoomChatInterfacePal[registering * 2 + 1]; u8 index = IndexOfSpritePaletteTag(PALTAG_INTERFACE); - LoadPalette(palette, index * 16 + 0x101, 4); + LoadPalette(palette, OBJ_PLTT_ID(index) + 1, PLTT_SIZEOF(2)); } static void StartKeyboardCursorAnim(void) diff --git a/src/use_pokeblock.c b/src/use_pokeblock.c index 2f16f220a..85d1a477f 100644 --- a/src/use_pokeblock.c +++ b/src/use_pokeblock.c @@ -251,7 +251,7 @@ static const struct WindowTemplate sWindowTemplates[WIN_COUNT + 1] = .tilemapTop = 1, .width = 13, .height = 4, - .paletteNum = 15, + .paletteNum = 0xF, .baseBlock = 1 }, [WIN_NATURE] = { @@ -260,7 +260,7 @@ static const struct WindowTemplate sWindowTemplates[WIN_COUNT + 1] = .tilemapTop = 14, .width = 11, .height = 2, - .paletteNum = 15, + .paletteNum = 0xF, .baseBlock = 0x35 }, [WIN_TEXT] = { @@ -269,7 +269,7 @@ static const struct WindowTemplate sWindowTemplates[WIN_COUNT + 1] = .tilemapTop = 17, .width = 28, .height = 2, - .paletteNum = 15, + .paletteNum = 0xF, .baseBlock = 0x4B }, DUMMY_WIN_TEMPLATE @@ -282,7 +282,7 @@ static const struct WindowTemplate sUsePokeblockYesNoWinTemplate = .tilemapTop = 11, .width = 5, .height = 4, - .paletteNum = 15, + .paletteNum = 0xF, .baseBlock = 0x83 }; @@ -505,7 +505,7 @@ static void LoadUsePokeblockMenu(void) InitBgsFromTemplates(0, sBgTemplates, ARRAY_COUNT(sBgTemplates)); InitWindows(sWindowTemplates); DeactivateAllTextPrinters(); - LoadUserWindowBorderGfx(0, 0x97, 0xE0); + LoadUserWindowBorderGfx(0, 0x97, BG_PLTT_ID(0xE)); sInfo->mainState++; break; case 4: @@ -1233,13 +1233,13 @@ static void UpdateMonPic(u8 loadId) gSprites[sMenu->curMonSpriteId].callback = SpriteCB_MonPic; gSprites[sMenu->curMonSpriteId].y2 -= 34; sMenu->curMonTileStart = (void *)(OBJ_VRAM0 + (sMenu->curMonSheet * 32)); - sMenu->curMonPalette = (sMenu->curMonPalette * 16) + 0x100; + sMenu->curMonPalette = OBJ_PLTT_ID(sMenu->curMonPalette); } } else { Dma3CopyLarge16_(sMenu->partySheets[loadId], sMenu->curMonTileStart, MON_PIC_SIZE); - LoadPalette(sMenu->partyPalettes[loadId], sMenu->curMonPalette, 32); + LoadPalette(sMenu->partyPalettes[loadId], sMenu->curMonPalette, PLTT_SIZE_4BPP); } } @@ -1340,7 +1340,7 @@ static bool8 LoadUsePokeblockMenuGfx(void) LoadBgTilemap(3, sMonFrame_TilemapPtr, 1280, 0); break; case 5: - LoadPalette(sMonFrame_Pal, 208, 32); + LoadPalette(sMonFrame_Pal, BG_PLTT_ID(0xD), PLTT_SIZE_4BPP); sMenu->curMonXOffset = -80; break; case 6: @@ -1348,7 +1348,7 @@ static bool8 LoadUsePokeblockMenuGfx(void) break; case 7: LZ77UnCompVram(gUsePokeblockGraph_Tilemap, sGraph_Tilemap); - LoadPalette(gUsePokeblockGraph_Pal, 32, 32); + LoadPalette(gUsePokeblockGraph_Pal, BG_PLTT_ID(0x2), PLTT_SIZE_4BPP); break; case 8: LoadBgTiles(1, sGraph_Gfx, 6656, 160 << 2); @@ -1363,8 +1363,8 @@ static bool8 LoadUsePokeblockMenuGfx(void) break; case 11: LoadBgTilemap(2, sMenu->tilemapBuffer, 1280, 0); - LoadPalette(gConditionGraphData_Pal, 48, 32); - LoadPalette(gConditionText_Pal, 240, 32); + LoadPalette(gConditionGraphData_Pal, BG_PLTT_ID(0x3), PLTT_SIZE_4BPP); + LoadPalette(gConditionText_Pal, BG_PLTT_ID(0xF), PLTT_SIZE_4BPP); ConditionGraph_InitWindow(2); break; default: diff --git a/src/wallclock.c b/src/wallclock.c index 5e0fae3a1..52566eddc 100644 --- a/src/wallclock.c +++ b/src/wallclock.c @@ -79,7 +79,7 @@ static const struct WindowTemplate sWindowTemplates[] = .tilemapTop = 17, .width = 24, .height = 2, - .paletteNum = 14, + .paletteNum = 0xE, .baseBlock = 512 }, { @@ -88,7 +88,7 @@ static const struct WindowTemplate sWindowTemplates[] = .tilemapTop = 16, .width = 6, .height = 2, - .paletteNum = 12, + .paletteNum = 0xC, .baseBlock = 560 }, DUMMY_WIN_TEMPLATE @@ -101,7 +101,7 @@ static const struct WindowTemplate sWindowTemplate_ConfirmYesNo = .tilemapTop = 9, .width = 5, .height = 4, - .paletteNum = 14, + .paletteNum = 0xE, .baseBlock = 572 }; @@ -644,17 +644,17 @@ static void LoadWallClockGraphics(void) LZ77UnCompVram(gWallClock_Gfx, (void *)VRAM); if (gSpecialVar_0x8004 == MALE) - LoadPalette(gWallClockMale_Pal, 0, 32); + LoadPalette(gWallClockMale_Pal, BG_PLTT_ID(0x0), PLTT_SIZE_4BPP); else - LoadPalette(gWallClockFemale_Pal, 0, 32); + LoadPalette(gWallClockFemale_Pal, BG_PLTT_ID(0x0), PLTT_SIZE_4BPP); - LoadPalette(GetOverworldTextboxPalettePtr(), 0xe0, 32); - LoadPalette(sTextPrompt_Pal, 0xc0, 8); + LoadPalette(GetOverworldTextboxPalettePtr(), BG_PLTT_ID(0xE), PLTT_SIZE_4BPP); + LoadPalette(sTextPrompt_Pal, BG_PLTT_ID(0xC), PLTT_SIZEOF(4)); ResetBgsAndClearDma3BusyFlags(0); InitBgsFromTemplates(0, sBgTemplates, ARRAY_COUNT(sBgTemplates)); InitWindows(sWindowTemplates); DeactivateAllTextPrinters(); - LoadUserWindowBorderGfx(0, 0x250, 0xd0); + LoadUserWindowBorderGfx(0, 0x250, BG_PLTT_ID(0xD)); ClearScheduledBgCopiesToVram(); ScanlineEffect_Stop(); ResetTasks(); diff --git a/src/wireless_communication_status_screen.c b/src/wireless_communication_status_screen.c index 1fbd83fcd..bab3ec634 100644 --- a/src/wireless_communication_status_screen.c +++ b/src/wireless_communication_status_screen.c @@ -76,7 +76,7 @@ static const struct WindowTemplate sWindowTemplates[] = { .tilemapTop = 0, .width = 24, .height = 3, - .paletteNum = 15, + .paletteNum = 0xF, .baseBlock = 0x0001 }, { .bg = 0, @@ -84,7 +84,7 @@ static const struct WindowTemplate sWindowTemplates[] = { .tilemapTop = 4, .width = 21, .height = 15, - .paletteNum = 15, + .paletteNum = 0xF, .baseBlock = 0x0049 }, { .bg = 0, @@ -92,7 +92,7 @@ static const struct WindowTemplate sWindowTemplates[] = { .tilemapTop = 4, .width = 3, .height = 15, - .paletteNum = 15, + .paletteNum = 0xF, .baseBlock = 0x0184 }, DUMMY_WIN_TEMPLATE }; @@ -193,10 +193,10 @@ static void CB2_InitWirelessCommunicationScreen(void) ChangeBgY(0, 0, BG_COORD_SET); ChangeBgX(1, 0, BG_COORD_SET); ChangeBgY(1, 0, BG_COORD_SET); - LoadPalette(sBgTiles_Pal, 0x00, 0x20); + LoadPalette(sBgTiles_Pal, BG_PLTT_ID(0x0), PLTT_SIZE_4BPP); Menu_LoadStdPalAt(0xF0); DynamicPlaceholderTextUtil_Reset(); - FillBgTilemapBufferRect(0, 0, 0, 0, 32, 32, 0x0F); + FillBgTilemapBufferRect(0, 0, 0, 0, 32, 32, 0xF); CopyBgTilemapBufferToVram(1); SetMainCallback2(CB2_RunWirelessCommunicationScreen); RunTasks(); @@ -227,7 +227,7 @@ static void WCSS_CyclePalette(s16 * counter, s16 * palIdx) *counter = 0; } - LoadPalette(sBgTiles_Pal + 16 * (*palIdx + 2), 0, 0x10); + LoadPalette(sBgTiles_Pal + 16 * (*palIdx + 2), BG_PLTT_ID(0x0), PLTT_SIZEOF(8)); } static void PrintHeaderTexts(void) From 5719a7f7bc9a543a9aa575ae4590487a8bfb965e Mon Sep 17 00:00:00 2001 From: Martin Griffin Date: Fri, 19 Aug 2022 15:47:50 +0100 Subject: [PATCH 04/69] Use static inline instead of extern inline for modern --- include/palette.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/include/palette.h b/include/palette.h index b94cf6aa8..ed6256947 100644 --- a/include/palette.h +++ b/include/palette.h @@ -81,12 +81,12 @@ void TintPalette_GrayScale2(u16 *palette, u16 count); void TintPalette_SepiaTone(u16 *palette, u16 count); void TintPalette_CustomTone(u16 *palette, u16 count, u16 rTone, u16 gTone, u16 bTone); -extern inline void SetBackdropFromColor(u16 color) +static inline void SetBackdropFromColor(u16 color) { FillPalette(color, 0x00, PLTT_SIZEOF(1)); } -extern inline void SetBackdropFromPalette(const u16 *palette) +static inline void SetBackdropFromPalette(const u16 *palette) { LoadPalette(palette, 0x00, PLTT_SIZEOF(1)); } From d57442a511d6bbaef426a14f112254a46f30d582 Mon Sep 17 00:00:00 2001 From: Martin Griffin Date: Fri, 19 Aug 2022 16:32:00 +0100 Subject: [PATCH 05/69] Decimal paletteNums --- include/palette.h | 4 +- src/battle_anim.c | 6 +- src/battle_anim_dark.c | 4 +- src/battle_anim_utility_funcs.c | 4 +- src/battle_arena.c | 6 +- src/battle_bg.c | 172 ++++++++++----------- src/battle_dome.c | 48 +++--- src/battle_factory_screen.c | 52 +++---- src/battle_gfx_sfx_util.c | 4 +- src/battle_main.c | 2 +- src/battle_pyramid_bag.c | 26 ++-- src/battle_records.c | 8 +- src/battle_script_commands.c | 2 +- src/battle_transition.c | 72 ++++----- src/battle_transition_frontier.c | 2 +- src/berry_blender.c | 28 ++-- src/berry_crush.c | 28 ++-- src/berry_fix_program.c | 8 +- src/berry_powder.c | 16 +- src/berry_tag_screen.c | 12 +- src/cable_car.c | 2 +- src/cable_club.c | 2 +- src/clear_save_data_screen.c | 8 +- src/contest.c | 56 +++---- src/contest_painting.c | 6 +- src/contest_util.c | 30 ++-- src/credits.c | 8 +- src/data/party_menu.h | 86 +++++------ src/data/trade.h | 42 ++--- src/data/union_room.h | 24 +-- src/daycare.c | 2 +- src/decoration.c | 12 +- src/diploma.c | 6 +- src/dodrio_berry_picking.c | 34 ++-- src/easy_chat.c | 30 ++-- src/egg_hatch.c | 10 +- src/evolution_scene.c | 20 +-- src/field_effect.c | 6 +- src/field_region_map.c | 6 +- src/field_screen_effect.c | 2 +- src/field_specials.c | 12 +- src/field_weather.c | 8 +- src/fieldmap.c | 2 +- src/fldeff_flash.c | 16 +- src/frontier_pass.c | 22 +-- src/frontier_util.c | 6 +- src/hall_of_fame.c | 8 +- src/intro.c | 14 +- src/intro_credits_graphics.c | 42 ++--- src/item_menu.c | 44 +++--- src/link.c | 8 +- src/mail.c | 6 +- src/main_menu.c | 76 ++++----- src/map_name_popup.c | 20 +-- src/match_call.c | 6 +- src/menu.c | 18 +-- src/menu_specialized.c | 22 +-- src/mystery_event_menu.c | 8 +- src/mystery_gift_menu.c | 34 ++-- src/mystery_gift_view.c | 24 +-- src/naming_screen.c | 16 +- src/option_menu.c | 46 +++--- src/palette.c | 18 +-- src/party_menu.c | 14 +- src/player_pc.c | 18 +-- src/pokeblock.c | 32 ++-- src/pokeblock_feed.c | 8 +- src/pokedex.c | 34 ++-- src/pokemon_icon.c | 2 +- src/pokemon_jump.c | 36 ++--- src/pokemon_storage_system.c | 56 +++---- src/pokemon_summary_screen.c | 70 ++++----- src/pokenav_conditions_gfx.c | 14 +- src/pokenav_conditions_search_results.c | 6 +- src/pokenav_main_menu.c | 4 +- src/pokenav_match_call_gfx.c | 24 +-- src/pokenav_menu_handler_gfx.c | 12 +- src/pokenav_region_map.c | 10 +- src/pokenav_ribbons_list.c | 4 +- src/pokenav_ribbons_summary.c | 12 +- src/rayquaza_scene.c | 12 +- src/region_map.c | 12 +- src/reset_rtc_screen.c | 6 +- src/roulette.c | 4 +- src/save_failed_screen.c | 12 +- src/scrcmd.c | 2 +- src/secret_base.c | 4 +- src/shop.c | 24 +-- src/slot_machine.c | 36 ++--- src/start_menu.c | 10 +- src/starter_choose.c | 12 +- src/tileset_anims.c | 4 +- src/title_screen.c | 6 +- src/trade.c | 34 ++-- src/trader.c | 2 +- src/trainer_card.c | 62 ++++---- src/trainer_hill.c | 2 +- src/union_room.c | 10 +- src/union_room_battle.c | 6 +- src/union_room_chat.c | 30 ++-- src/use_pokeblock.c | 18 +-- src/wallclock.c | 16 +- src/wireless_communication_status_screen.c | 12 +- 103 files changed, 1032 insertions(+), 1032 deletions(-) diff --git a/include/palette.h b/include/palette.h index ed6256947..40a200d8d 100644 --- a/include/palette.h +++ b/include/palette.h @@ -83,12 +83,12 @@ void TintPalette_CustomTone(u16 *palette, u16 count, u16 rTone, u16 gTone, u16 b static inline void SetBackdropFromColor(u16 color) { - FillPalette(color, 0x00, PLTT_SIZEOF(1)); + FillPalette(color, 0, PLTT_SIZEOF(1)); } static inline void SetBackdropFromPalette(const u16 *palette) { - LoadPalette(palette, 0x00, PLTT_SIZEOF(1)); + LoadPalette(palette, 0, PLTT_SIZEOF(1)); } #endif // GUARD_PALETTE_H diff --git a/src/battle_anim.c b/src/battle_anim.c index a5e487af2..cee119a4d 100644 --- a/src/battle_anim.c +++ b/src/battle_anim.c @@ -741,8 +741,8 @@ void MoveBattlerSpriteToBG(u8 battlerId, bool8 toBG_2, bool8 setSpriteInvisible) SetGpuReg(REG_OFFSET_BG2HOFS, gBattle_BG2_X); SetGpuReg(REG_OFFSET_BG2VOFS, gBattle_BG2_Y); - LoadPalette(&gPlttBufferUnfaded[OBJ_PLTT_ID(battlerId)], BG_PLTT_ID(0x9), PLTT_SIZE_4BPP); - CpuCopy32(&gPlttBufferUnfaded[OBJ_PLTT_ID(battlerId)], (void *)(BG_PLTT + PLTT_OFFSET_4BPP(0x9)), PLTT_SIZE_4BPP); + LoadPalette(&gPlttBufferUnfaded[OBJ_PLTT_ID(battlerId)], BG_PLTT_ID(9), PLTT_SIZE_4BPP); + CpuCopy32(&gPlttBufferUnfaded[OBJ_PLTT_ID(battlerId)], (void *)(BG_PLTT + PLTT_OFFSET_4BPP(9)), PLTT_SIZE_4BPP); DrawBattlerOnBg(2, 0, 0, GetBattlerPosition(battlerId), animBg.paletteId, animBg.bgTiles + 0x1000, animBg.bgTilemap + 0x400, animBg.tilesOffset); } @@ -1214,7 +1214,7 @@ static void LoadMoveBg(u16 bgId) { LZDecompressVram(gBattleAnimBackgroundTable[bgId].tilemap, (void *)BG_SCREEN_ADDR(26)); LZDecompressVram(gBattleAnimBackgroundTable[bgId].image, (void *)BG_CHAR_ADDR(2)); - LoadCompressedPalette(gBattleAnimBackgroundTable[bgId].palette, BG_PLTT_ID(0x2), PLTT_SIZE_4BPP); + LoadCompressedPalette(gBattleAnimBackgroundTable[bgId].palette, BG_PLTT_ID(2), PLTT_SIZE_4BPP); } } diff --git a/src/battle_anim_dark.c b/src/battle_anim_dark.c index 4106a7485..cf3aaf556 100644 --- a/src/battle_anim_dark.c +++ b/src/battle_anim_dark.c @@ -436,7 +436,7 @@ void AnimTask_MoveAttackerMementoShadow(u8 taskId) { task->data[10] = gBattle_BG2_Y; SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT2_ALL | BLDCNT_EFFECT_BLEND | BLDCNT_TGT1_BG2); - FillPalette(RGB_BLACK, BG_PLTT_ID(0x9), PLTT_SIZE_4BPP); + FillPalette(RGB_BLACK, BG_PLTT_ID(9), PLTT_SIZE_4BPP); scanlineParams.dmaDest = ®_BG2VOFS; var0 = WINOUT_WIN01_BG2; if (!IsContest()) @@ -571,7 +571,7 @@ void AnimTask_MoveTargetMementoShadow(u8 taskId) else { task->data[10] = gBattle_BG2_Y; - FillPalette(RGB_BLACK, BG_PLTT_ID(0x9), PLTT_SIZE_4BPP); + FillPalette(RGB_BLACK, BG_PLTT_ID(9), PLTT_SIZE_4BPP); } SetAllBattlersSpritePriority(3); diff --git a/src/battle_anim_utility_funcs.c b/src/battle_anim_utility_funcs.c index 197443aa8..54dcc7614 100644 --- a/src/battle_anim_utility_funcs.c +++ b/src/battle_anim_utility_funcs.c @@ -166,7 +166,7 @@ void StartBlendAnimSpriteColor(u8 taskId, u32 selectedPalettes) static void AnimTask_BlendSpriteColor_Step2(u8 taskId) { u32 selectedPalettes; - u16 singlePaletteOffset = 0x00; + u16 singlePaletteOffset = 0; if (gTasks[taskId].data[9] == gTasks[taskId].data[2]) { @@ -176,7 +176,7 @@ static void AnimTask_BlendSpriteColor_Step2(u8 taskId) { if (selectedPalettes & 1) BlendPalette(singlePaletteOffset, 16, gTasks[taskId].data[10], gTasks[taskId].data[5]); - singlePaletteOffset += 0x10; + singlePaletteOffset += 16; selectedPalettes >>= 1; } diff --git a/src/battle_arena.c b/src/battle_arena.c index 813932519..b19ba95e3 100644 --- a/src/battle_arena.c +++ b/src/battle_arena.c @@ -514,7 +514,7 @@ u8 BattleArena_ShowJudgmentWindow(u8 *state) BeginNormalPaletteFade(0x7FFFFF1C, 4, 0, 8, RGB_BLACK); SetGpuReg(REG_OFFSET_WININ, WININ_WIN0_BG1 | WININ_WIN0_BG2 | WININ_WIN0_BG3 | WININ_WIN0_OBJ | WININ_WIN0_CLR | WININ_WIN1_BG_ALL | WININ_WIN1_OBJ | WININ_WIN1_CLR); LoadCompressedSpriteSheet(sBattleArenaJudgementSymbolsSpriteSheet); - LoadCompressedPalette(gBattleArenaJudgementSymbolsPalette, OBJ_PLTT_ID(0xF), PLTT_SIZE_4BPP); + LoadCompressedPalette(gBattleArenaJudgementSymbolsPalette, OBJ_PLTT_ID(15), PLTT_SIZE_4BPP); gBattle_WIN0H = 0xFF; gBattle_WIN0V = 0x70; (*state)++; @@ -894,7 +894,7 @@ static void BufferArenaOpponentName(void) void DrawArenaRefereeTextBox(void) { u8 width = 27; - u8 palNum = 0x7; + u8 palNum = 7; FillBgTilemapBufferRect(0, 0, 254, 14, 1, 6, palNum); FillBgTilemapBufferRect(0, 0, 32, 14, 1, 6, palNum); @@ -918,7 +918,7 @@ void EraseArenaRefereeTextBox(void) { u8 width; u8 height; - u8 palNum = 0x0; + u8 palNum = 0; FillBgTilemapBufferRect(0, 3, 0, 14, 1, 1, palNum); height = 4; diff --git a/src/battle_bg.c b/src/battle_bg.c index 163b77a51..3a03fabcc 100644 --- a/src/battle_bg.c +++ b/src/battle_bg.c @@ -167,7 +167,7 @@ static const struct WindowTemplate sStandardBattleWindowTemplates[] = .tilemapTop = 15, .width = 26, .height = 4, - .paletteNum = 0x0, + .paletteNum = 0, .baseBlock = 0x0090, }, [B_WIN_ACTION_PROMPT] = { @@ -176,7 +176,7 @@ static const struct WindowTemplate sStandardBattleWindowTemplates[] = .tilemapTop = 35, .width = 14, .height = 4, - .paletteNum = 0x0, + .paletteNum = 0, .baseBlock = 0x01c0, }, [B_WIN_ACTION_MENU] = { @@ -185,7 +185,7 @@ static const struct WindowTemplate sStandardBattleWindowTemplates[] = .tilemapTop = 35, .width = 12, .height = 4, - .paletteNum = 0x5, + .paletteNum = 5, .baseBlock = 0x0190, }, [B_WIN_MOVE_NAME_1] = { @@ -194,7 +194,7 @@ static const struct WindowTemplate sStandardBattleWindowTemplates[] = .tilemapTop = 55, .width = 8, .height = 2, - .paletteNum = 0x5, + .paletteNum = 5, .baseBlock = 0x0300, }, [B_WIN_MOVE_NAME_2] = { @@ -203,7 +203,7 @@ static const struct WindowTemplate sStandardBattleWindowTemplates[] = .tilemapTop = 55, .width = 8, .height = 2, - .paletteNum = 0x5, + .paletteNum = 5, .baseBlock = 0x0310, }, [B_WIN_MOVE_NAME_3] = { @@ -212,7 +212,7 @@ static const struct WindowTemplate sStandardBattleWindowTemplates[] = .tilemapTop = 57, .width = 8, .height = 2, - .paletteNum = 0x5, + .paletteNum = 5, .baseBlock = 0x0320, }, [B_WIN_MOVE_NAME_4] = { @@ -221,7 +221,7 @@ static const struct WindowTemplate sStandardBattleWindowTemplates[] = .tilemapTop = 57, .width = 8, .height = 2, - .paletteNum = 0x5, + .paletteNum = 5, .baseBlock = 0x0330, }, [B_WIN_PP] = { @@ -230,7 +230,7 @@ static const struct WindowTemplate sStandardBattleWindowTemplates[] = .tilemapTop = 55, .width = 4, .height = 2, - .paletteNum = 0x5, + .paletteNum = 5, .baseBlock = 0x0290, }, [B_WIN_DUMMY] = { @@ -239,7 +239,7 @@ static const struct WindowTemplate sStandardBattleWindowTemplates[] = .tilemapTop = 57, .width = 0, .height = 0, - .paletteNum = 0x5, + .paletteNum = 5, .baseBlock = 0x0298, }, [B_WIN_PP_REMAINING] = { @@ -248,7 +248,7 @@ static const struct WindowTemplate sStandardBattleWindowTemplates[] = .tilemapTop = 55, .width = 4, .height = 2, - .paletteNum = 0x5, + .paletteNum = 5, .baseBlock = 0x0298, }, [B_WIN_MOVE_TYPE] = { @@ -257,7 +257,7 @@ static const struct WindowTemplate sStandardBattleWindowTemplates[] = .tilemapTop = 57, .width = 8, .height = 2, - .paletteNum = 0x5, + .paletteNum = 5, .baseBlock = 0x02a0, }, [B_WIN_SWITCH_PROMPT] = { @@ -266,7 +266,7 @@ static const struct WindowTemplate sStandardBattleWindowTemplates[] = .tilemapTop = 55, .width = 8, .height = 4, - .paletteNum = 0x5, + .paletteNum = 5, .baseBlock = 0x02b0, }, [B_WIN_YESNO] = { @@ -275,7 +275,7 @@ static const struct WindowTemplate sStandardBattleWindowTemplates[] = .tilemapTop = 9, .width = 3, .height = 4, - .paletteNum = 0x5, + .paletteNum = 5, .baseBlock = 0x0100, }, [B_WIN_LEVEL_UP_BOX] = { @@ -284,7 +284,7 @@ static const struct WindowTemplate sStandardBattleWindowTemplates[] = .tilemapTop = 8, .width = 10, .height = 11, - .paletteNum = 0x5, + .paletteNum = 5, .baseBlock = 0x0100, }, [B_WIN_LEVEL_UP_BANNER] = { @@ -293,7 +293,7 @@ static const struct WindowTemplate sStandardBattleWindowTemplates[] = .tilemapTop = 0, .width = 12, .height = 3, - .paletteNum = 0x6, + .paletteNum = 6, .baseBlock = 0x016e, }, [B_WIN_VS_PLAYER] = { @@ -302,7 +302,7 @@ static const struct WindowTemplate sStandardBattleWindowTemplates[] = .tilemapTop = 3, .width = 6, .height = 2, - .paletteNum = 0x5, + .paletteNum = 5, .baseBlock = 0x0020, }, [B_WIN_VS_OPPONENT] = { @@ -311,7 +311,7 @@ static const struct WindowTemplate sStandardBattleWindowTemplates[] = .tilemapTop = 3, .width = 6, .height = 2, - .paletteNum = 0x5, + .paletteNum = 5, .baseBlock = 0x0040, }, [B_WIN_VS_MULTI_PLAYER_1] = { @@ -320,7 +320,7 @@ static const struct WindowTemplate sStandardBattleWindowTemplates[] = .tilemapTop = 2, .width = 6, .height = 2, - .paletteNum = 0x5, + .paletteNum = 5, .baseBlock = 0x0020, }, [B_WIN_VS_MULTI_PLAYER_2] = { @@ -329,7 +329,7 @@ static const struct WindowTemplate sStandardBattleWindowTemplates[] = .tilemapTop = 2, .width = 6, .height = 2, - .paletteNum = 0x5, + .paletteNum = 5, .baseBlock = 0x0040, }, [B_WIN_VS_MULTI_PLAYER_3] = { @@ -338,7 +338,7 @@ static const struct WindowTemplate sStandardBattleWindowTemplates[] = .tilemapTop = 6, .width = 6, .height = 2, - .paletteNum = 0x5, + .paletteNum = 5, .baseBlock = 0x0060, }, [B_WIN_VS_MULTI_PLAYER_4] = { @@ -347,7 +347,7 @@ static const struct WindowTemplate sStandardBattleWindowTemplates[] = .tilemapTop = 6, .width = 6, .height = 2, - .paletteNum = 0x5, + .paletteNum = 5, .baseBlock = 0x0080, }, [B_WIN_VS_OUTCOME_DRAW] = { @@ -356,7 +356,7 @@ static const struct WindowTemplate sStandardBattleWindowTemplates[] = .tilemapTop = 2, .width = 6, .height = 2, - .paletteNum = 0x0, + .paletteNum = 0, .baseBlock = 0x00a0, }, [B_WIN_VS_OUTCOME_LEFT] = { @@ -365,7 +365,7 @@ static const struct WindowTemplate sStandardBattleWindowTemplates[] = .tilemapTop = 2, .width = 7, .height = 2, - .paletteNum = 0x0, + .paletteNum = 0, .baseBlock = 0x00a0, }, [B_WIN_VS_OUTCOME_RIGHT] = { @@ -374,7 +374,7 @@ static const struct WindowTemplate sStandardBattleWindowTemplates[] = .tilemapTop = 2, .width = 7, .height = 2, - .paletteNum = 0x0, + .paletteNum = 0, .baseBlock = 0x00b0, }, DUMMY_WIN_TEMPLATE @@ -388,7 +388,7 @@ static const struct WindowTemplate sBattleArenaWindowTemplates[] = .tilemapTop = 15, .width = 26, .height = 4, - .paletteNum = 0x0, + .paletteNum = 0, .baseBlock = 0x0090, }, [B_WIN_ACTION_PROMPT] = { @@ -397,7 +397,7 @@ static const struct WindowTemplate sBattleArenaWindowTemplates[] = .tilemapTop = 35, .width = 14, .height = 4, - .paletteNum = 0x0, + .paletteNum = 0, .baseBlock = 0x01c0, }, [B_WIN_ACTION_MENU] = { @@ -406,7 +406,7 @@ static const struct WindowTemplate sBattleArenaWindowTemplates[] = .tilemapTop = 35, .width = 12, .height = 4, - .paletteNum = 0x5, + .paletteNum = 5, .baseBlock = 0x0190, }, [B_WIN_MOVE_NAME_1] = { @@ -415,7 +415,7 @@ static const struct WindowTemplate sBattleArenaWindowTemplates[] = .tilemapTop = 55, .width = 8, .height = 2, - .paletteNum = 0x5, + .paletteNum = 5, .baseBlock = 0x0300, }, [B_WIN_MOVE_NAME_2] = { @@ -424,7 +424,7 @@ static const struct WindowTemplate sBattleArenaWindowTemplates[] = .tilemapTop = 55, .width = 8, .height = 2, - .paletteNum = 0x5, + .paletteNum = 5, .baseBlock = 0x0310, }, [B_WIN_MOVE_NAME_3] = { @@ -433,7 +433,7 @@ static const struct WindowTemplate sBattleArenaWindowTemplates[] = .tilemapTop = 57, .width = 8, .height = 2, - .paletteNum = 0x5, + .paletteNum = 5, .baseBlock = 0x0320, }, [B_WIN_MOVE_NAME_4] = { @@ -442,7 +442,7 @@ static const struct WindowTemplate sBattleArenaWindowTemplates[] = .tilemapTop = 57, .width = 8, .height = 2, - .paletteNum = 0x5, + .paletteNum = 5, .baseBlock = 0x0330, }, [B_WIN_PP] = { @@ -451,7 +451,7 @@ static const struct WindowTemplate sBattleArenaWindowTemplates[] = .tilemapTop = 55, .width = 4, .height = 2, - .paletteNum = 0x5, + .paletteNum = 5, .baseBlock = 0x0290, }, [B_WIN_DUMMY] = { @@ -460,7 +460,7 @@ static const struct WindowTemplate sBattleArenaWindowTemplates[] = .tilemapTop = 57, .width = 0, .height = 0, - .paletteNum = 0x5, + .paletteNum = 5, .baseBlock = 0x0298, }, [B_WIN_PP_REMAINING] = { @@ -469,7 +469,7 @@ static const struct WindowTemplate sBattleArenaWindowTemplates[] = .tilemapTop = 55, .width = 4, .height = 2, - .paletteNum = 0x5, + .paletteNum = 5, .baseBlock = 0x0298, }, [B_WIN_MOVE_TYPE] = { @@ -478,7 +478,7 @@ static const struct WindowTemplate sBattleArenaWindowTemplates[] = .tilemapTop = 57, .width = 8, .height = 2, - .paletteNum = 0x5, + .paletteNum = 5, .baseBlock = 0x02a0, }, [B_WIN_SWITCH_PROMPT] = { @@ -487,7 +487,7 @@ static const struct WindowTemplate sBattleArenaWindowTemplates[] = .tilemapTop = 55, .width = 8, .height = 4, - .paletteNum = 0x5, + .paletteNum = 5, .baseBlock = 0x02b0, }, [B_WIN_YESNO] = { @@ -496,7 +496,7 @@ static const struct WindowTemplate sBattleArenaWindowTemplates[] = .tilemapTop = 9, .width = 3, .height = 4, - .paletteNum = 0x5, + .paletteNum = 5, .baseBlock = 0x0100, }, [B_WIN_LEVEL_UP_BOX] = { @@ -505,7 +505,7 @@ static const struct WindowTemplate sBattleArenaWindowTemplates[] = .tilemapTop = 8, .width = 10, .height = 11, - .paletteNum = 0x5, + .paletteNum = 5, .baseBlock = 0x0100, }, [B_WIN_LEVEL_UP_BANNER] = { @@ -514,7 +514,7 @@ static const struct WindowTemplate sBattleArenaWindowTemplates[] = .tilemapTop = 0, .width = 12, .height = 3, - .paletteNum = 0x6, + .paletteNum = 6, .baseBlock = 0x016e, }, [ARENA_WIN_PLAYER_NAME] = { @@ -523,7 +523,7 @@ static const struct WindowTemplate sBattleArenaWindowTemplates[] = .tilemapTop = 1, .width = 8, .height = 2, - .paletteNum = 0x5, + .paletteNum = 5, .baseBlock = 0x0100, }, [ARENA_WIN_VS] = { @@ -532,7 +532,7 @@ static const struct WindowTemplate sBattleArenaWindowTemplates[] = .tilemapTop = 1, .width = 2, .height = 2, - .paletteNum = 0x5, + .paletteNum = 5, .baseBlock = 0x0110, }, [ARENA_WIN_OPPONENT_NAME] = { @@ -541,7 +541,7 @@ static const struct WindowTemplate sBattleArenaWindowTemplates[] = .tilemapTop = 1, .width = 8, .height = 2, - .paletteNum = 0x5, + .paletteNum = 5, .baseBlock = 0x0114, }, [ARENA_WIN_MIND] = { @@ -550,7 +550,7 @@ static const struct WindowTemplate sBattleArenaWindowTemplates[] = .tilemapTop = 4, .width = 6, .height = 2, - .paletteNum = 0x5, + .paletteNum = 5, .baseBlock = 0x0124, }, [ARENA_WIN_SKILL] = { @@ -559,7 +559,7 @@ static const struct WindowTemplate sBattleArenaWindowTemplates[] = .tilemapTop = 6, .width = 6, .height = 2, - .paletteNum = 0x5, + .paletteNum = 5, .baseBlock = 0x0130, }, [ARENA_WIN_BODY] = { @@ -568,7 +568,7 @@ static const struct WindowTemplate sBattleArenaWindowTemplates[] = .tilemapTop = 8, .width = 6, .height = 2, - .paletteNum = 0x5, + .paletteNum = 5, .baseBlock = 0x013c, }, [ARENA_WIN_JUDGEMENT_TITLE] = { @@ -577,7 +577,7 @@ static const struct WindowTemplate sBattleArenaWindowTemplates[] = .tilemapTop = 11, .width = 14, .height = 2, - .paletteNum = 0x5, + .paletteNum = 5, .baseBlock = 0x0148, }, [ARENA_WIN_JUDGEMENT_TEXT] = { @@ -586,7 +586,7 @@ static const struct WindowTemplate sBattleArenaWindowTemplates[] = .tilemapTop = 15, .width = 26, .height = 4, - .paletteNum = 0x7, + .paletteNum = 7, .baseBlock = 0x0090, }, DUMMY_WIN_TEMPLATE @@ -742,17 +742,17 @@ void InitBattleBgsVideo(void) void LoadBattleMenuWindowGfx(void) { - LoadUserWindowBorderGfx(2, 0x12, BG_PLTT_ID(0x1)); - LoadUserWindowBorderGfx(2, 0x22, BG_PLTT_ID(0x1)); - LoadCompressedPalette(gBattleWindowTextPalette, BG_PLTT_ID(0x5), PLTT_SIZE_4BPP); + LoadUserWindowBorderGfx(2, 0x12, BG_PLTT_ID(1)); + LoadUserWindowBorderGfx(2, 0x22, BG_PLTT_ID(1)); + LoadCompressedPalette(gBattleWindowTextPalette, BG_PLTT_ID(5), PLTT_SIZE_4BPP); if (gBattleTypeFlags & BATTLE_TYPE_ARENA) { // Load graphics for the Battle Arena referee's mid-battle messages. - Menu_LoadStdPalAt(BG_PLTT_ID(0x7)); - LoadMessageBoxGfx(0, 0x30, BG_PLTT_ID(0x7)); - gPlttBufferUnfaded[BG_PLTT_ID(0x7) + 6] = 0; - CpuCopy16(&gPlttBufferUnfaded[BG_PLTT_ID(0x7) + 6], &gPlttBufferFaded[BG_PLTT_ID(0x7) + 6], PLTT_SIZEOF(1)); + Menu_LoadStdPalAt(BG_PLTT_ID(7)); + LoadMessageBoxGfx(0, 0x30, BG_PLTT_ID(7)); + gPlttBufferUnfaded[BG_PLTT_ID(7) + 6] = 0; + CpuCopy16(&gPlttBufferUnfaded[BG_PLTT_ID(7) + 6], &gPlttBufferFaded[BG_PLTT_ID(7) + 6], PLTT_SIZEOF(1)); } } @@ -762,25 +762,25 @@ void DrawMainBattleBackground(void) { LZDecompressVram(gBattleTerrainTiles_Building, (void *)(BG_CHAR_ADDR(2))); LZDecompressVram(gBattleTerrainTilemap_Building, (void *)(BG_SCREEN_ADDR(26))); - LoadCompressedPalette(gBattleTerrainPalette_Frontier, BG_PLTT_ID(0x2), 3 * PLTT_SIZE_4BPP); + LoadCompressedPalette(gBattleTerrainPalette_Frontier, BG_PLTT_ID(2), 3 * PLTT_SIZE_4BPP); } else if (gBattleTypeFlags & BATTLE_TYPE_GROUDON) { LZDecompressVram(gBattleTerrainTiles_Cave, (void *)(BG_CHAR_ADDR(2))); LZDecompressVram(gBattleTerrainTilemap_Cave, (void *)(BG_SCREEN_ADDR(26))); - LoadCompressedPalette(gBattleTerrainPalette_Groudon, BG_PLTT_ID(0x2), 3 * PLTT_SIZE_4BPP); + LoadCompressedPalette(gBattleTerrainPalette_Groudon, BG_PLTT_ID(2), 3 * PLTT_SIZE_4BPP); } else if (gBattleTypeFlags & BATTLE_TYPE_KYOGRE) { LZDecompressVram(gBattleTerrainTiles_Water, (void *)(BG_CHAR_ADDR(2))); LZDecompressVram(gBattleTerrainTilemap_Water, (void *)(BG_SCREEN_ADDR(26))); - LoadCompressedPalette(gBattleTerrainPalette_Kyogre, BG_PLTT_ID(0x2), 3 * PLTT_SIZE_4BPP); + LoadCompressedPalette(gBattleTerrainPalette_Kyogre, BG_PLTT_ID(2), 3 * PLTT_SIZE_4BPP); } else if (gBattleTypeFlags & BATTLE_TYPE_RAYQUAZA) { LZDecompressVram(gBattleTerrainTiles_Rayquaza, (void *)(BG_CHAR_ADDR(2))); LZDecompressVram(gBattleTerrainTilemap_Rayquaza, (void *)(BG_SCREEN_ADDR(26))); - LoadCompressedPalette(gBattleTerrainPalette_Rayquaza, BG_PLTT_ID(0x2), 3 * PLTT_SIZE_4BPP); + LoadCompressedPalette(gBattleTerrainPalette_Rayquaza, BG_PLTT_ID(2), 3 * PLTT_SIZE_4BPP); } else { @@ -791,14 +791,14 @@ void DrawMainBattleBackground(void) { LZDecompressVram(gBattleTerrainTiles_Building, (void *)(BG_CHAR_ADDR(2))); LZDecompressVram(gBattleTerrainTilemap_Building, (void *)(BG_SCREEN_ADDR(26))); - LoadCompressedPalette(gBattleTerrainPalette_BuildingLeader, BG_PLTT_ID(0x2), 3 * PLTT_SIZE_4BPP); + LoadCompressedPalette(gBattleTerrainPalette_BuildingLeader, BG_PLTT_ID(2), 3 * PLTT_SIZE_4BPP); return; } else if (trainerClass == TRAINER_CLASS_CHAMPION) { LZDecompressVram(gBattleTerrainTiles_Stadium, (void *)(BG_CHAR_ADDR(2))); LZDecompressVram(gBattleTerrainTilemap_Stadium, (void *)(BG_SCREEN_ADDR(26))); - LoadCompressedPalette(gBattleTerrainPalette_StadiumWallace, BG_PLTT_ID(0x2), 3 * PLTT_SIZE_4BPP); + LoadCompressedPalette(gBattleTerrainPalette_StadiumWallace, BG_PLTT_ID(2), 3 * PLTT_SIZE_4BPP); return; } } @@ -809,47 +809,47 @@ void DrawMainBattleBackground(void) case MAP_BATTLE_SCENE_NORMAL: LZDecompressVram(sBattleTerrainTable[gBattleTerrain].tileset, (void *)(BG_CHAR_ADDR(2))); LZDecompressVram(sBattleTerrainTable[gBattleTerrain].tilemap, (void *)(BG_SCREEN_ADDR(26))); - LoadCompressedPalette(sBattleTerrainTable[gBattleTerrain].palette, BG_PLTT_ID(0x2), 3 * PLTT_SIZE_4BPP); + LoadCompressedPalette(sBattleTerrainTable[gBattleTerrain].palette, BG_PLTT_ID(2), 3 * PLTT_SIZE_4BPP); break; case MAP_BATTLE_SCENE_GYM: LZDecompressVram(gBattleTerrainTiles_Building, (void *)(BG_CHAR_ADDR(2))); LZDecompressVram(gBattleTerrainTilemap_Building, (void *)(BG_SCREEN_ADDR(26))); - LoadCompressedPalette(gBattleTerrainPalette_BuildingGym, BG_PLTT_ID(0x2), 3 * PLTT_SIZE_4BPP); + LoadCompressedPalette(gBattleTerrainPalette_BuildingGym, BG_PLTT_ID(2), 3 * PLTT_SIZE_4BPP); break; case MAP_BATTLE_SCENE_MAGMA: LZDecompressVram(gBattleTerrainTiles_Stadium, (void *)(BG_CHAR_ADDR(2))); LZDecompressVram(gBattleTerrainTilemap_Stadium, (void *)(BG_SCREEN_ADDR(26))); - LoadCompressedPalette(gBattleTerrainPalette_StadiumMagma, BG_PLTT_ID(0x2), 3 * PLTT_SIZE_4BPP); + LoadCompressedPalette(gBattleTerrainPalette_StadiumMagma, BG_PLTT_ID(2), 3 * PLTT_SIZE_4BPP); break; case MAP_BATTLE_SCENE_AQUA: LZDecompressVram(gBattleTerrainTiles_Stadium, (void *)(BG_CHAR_ADDR(2))); LZDecompressVram(gBattleTerrainTilemap_Stadium, (void *)(BG_SCREEN_ADDR(26))); - LoadCompressedPalette(gBattleTerrainPalette_StadiumAqua, BG_PLTT_ID(0x2), 3 * PLTT_SIZE_4BPP); + LoadCompressedPalette(gBattleTerrainPalette_StadiumAqua, BG_PLTT_ID(2), 3 * PLTT_SIZE_4BPP); break; case MAP_BATTLE_SCENE_SIDNEY: LZDecompressVram(gBattleTerrainTiles_Stadium, (void *)(BG_CHAR_ADDR(2))); LZDecompressVram(gBattleTerrainTilemap_Stadium, (void *)(BG_SCREEN_ADDR(26))); - LoadCompressedPalette(gBattleTerrainPalette_StadiumSidney, BG_PLTT_ID(0x2), 3 * PLTT_SIZE_4BPP); + LoadCompressedPalette(gBattleTerrainPalette_StadiumSidney, BG_PLTT_ID(2), 3 * PLTT_SIZE_4BPP); break; case MAP_BATTLE_SCENE_PHOEBE: LZDecompressVram(gBattleTerrainTiles_Stadium, (void *)(BG_CHAR_ADDR(2))); LZDecompressVram(gBattleTerrainTilemap_Stadium, (void *)(BG_SCREEN_ADDR(26))); - LoadCompressedPalette(gBattleTerrainPalette_StadiumPhoebe, BG_PLTT_ID(0x2), 3 * PLTT_SIZE_4BPP); + LoadCompressedPalette(gBattleTerrainPalette_StadiumPhoebe, BG_PLTT_ID(2), 3 * PLTT_SIZE_4BPP); break; case MAP_BATTLE_SCENE_GLACIA: LZDecompressVram(gBattleTerrainTiles_Stadium, (void *)(BG_CHAR_ADDR(2))); LZDecompressVram(gBattleTerrainTilemap_Stadium, (void *)(BG_SCREEN_ADDR(26))); - LoadCompressedPalette(gBattleTerrainPalette_StadiumGlacia, BG_PLTT_ID(0x2), 3 * PLTT_SIZE_4BPP); + LoadCompressedPalette(gBattleTerrainPalette_StadiumGlacia, BG_PLTT_ID(2), 3 * PLTT_SIZE_4BPP); break; case MAP_BATTLE_SCENE_DRAKE: LZDecompressVram(gBattleTerrainTiles_Stadium, (void *)(BG_CHAR_ADDR(2))); LZDecompressVram(gBattleTerrainTilemap_Stadium, (void *)(BG_SCREEN_ADDR(26))); - LoadCompressedPalette(gBattleTerrainPalette_StadiumDrake, BG_PLTT_ID(0x2), 3 * PLTT_SIZE_4BPP); + LoadCompressedPalette(gBattleTerrainPalette_StadiumDrake, BG_PLTT_ID(2), 3 * PLTT_SIZE_4BPP); break; case MAP_BATTLE_SCENE_FRONTIER: LZDecompressVram(gBattleTerrainTiles_Building, (void *)(BG_CHAR_ADDR(2))); LZDecompressVram(gBattleTerrainTilemap_Building, (void *)(BG_SCREEN_ADDR(26))); - LoadCompressedPalette(gBattleTerrainPalette_Frontier, BG_PLTT_ID(0x2), 3 * PLTT_SIZE_4BPP); + LoadCompressedPalette(gBattleTerrainPalette_Frontier, BG_PLTT_ID(2), 3 * PLTT_SIZE_4BPP); break; } } @@ -860,7 +860,7 @@ void LoadBattleTextboxAndBackground(void) LZDecompressVram(gBattleTextboxTiles, (void *)(BG_CHAR_ADDR(0))); CopyToBgTilemapBuffer(0, gBattleTextboxTilemap, 0, 0); CopyBgTilemapBufferToVram(0); - LoadCompressedPalette(gBattleTextboxPalette, BG_PLTT_ID(0x0), 2 * PLTT_SIZE_4BPP); + LoadCompressedPalette(gBattleTextboxPalette, BG_PLTT_ID(0), 2 * PLTT_SIZE_4BPP); LoadBattleMenuWindowGfx(); DrawMainBattleBackground(); } @@ -1126,7 +1126,7 @@ void DrawBattleEntryBackground(void) { LZDecompressVram(gBattleVSFrame_Gfx, (void *)(BG_CHAR_ADDR(1))); LZDecompressVram(gVsLettersGfx, (void *)OBJ_VRAM0); - LoadCompressedPalette(gBattleVSFrame_Pal, BG_PLTT_ID(0x6), PLTT_SIZE_4BPP); + LoadCompressedPalette(gBattleVSFrame_Pal, BG_PLTT_ID(6), PLTT_SIZE_4BPP); SetBgAttribute(1, BG_ATTR_SCREENSIZE, 1); SetGpuReg(REG_OFFSET_BG1CNT, 0x5C04); CopyToBgTilemapBuffer(1, gBattleVSFrame_Tilemap, 0, 0); @@ -1219,7 +1219,7 @@ bool8 LoadChosenBattleElement(u8 caseId) CopyBgTilemapBufferToVram(0); break; case 2: - LoadCompressedPalette(gBattleTextboxPalette, BG_PLTT_ID(0x0), 2 * PLTT_SIZE_4BPP); + LoadCompressedPalette(gBattleTextboxPalette, BG_PLTT_ID(0), 2 * PLTT_SIZE_4BPP); break; case 3: if (gBattleTypeFlags & (BATTLE_TYPE_FRONTIER | BATTLE_TYPE_LINK | BATTLE_TYPE_RECORDED_LINK | BATTLE_TYPE_EREADER_TRAINER)) @@ -1345,14 +1345,14 @@ bool8 LoadChosenBattleElement(u8 caseId) case 5: if (gBattleTypeFlags & (BATTLE_TYPE_FRONTIER | BATTLE_TYPE_LINK | BATTLE_TYPE_RECORDED_LINK | BATTLE_TYPE_EREADER_TRAINER)) { - LoadCompressedPalette(gBattleTerrainPalette_Frontier, BG_PLTT_ID(0x2), 3 * PLTT_SIZE_4BPP); + LoadCompressedPalette(gBattleTerrainPalette_Frontier, BG_PLTT_ID(2), 3 * PLTT_SIZE_4BPP); } else if (gBattleTypeFlags & BATTLE_TYPE_KYOGRE_GROUDON) { if (gGameVersion == VERSION_RUBY) - LoadCompressedPalette(gBattleTerrainPalette_Groudon, BG_PLTT_ID(0x2), 3 * PLTT_SIZE_4BPP); + LoadCompressedPalette(gBattleTerrainPalette_Groudon, BG_PLTT_ID(2), 3 * PLTT_SIZE_4BPP); else - LoadCompressedPalette(gBattleTerrainPalette_Kyogre, BG_PLTT_ID(0x2), 3 * PLTT_SIZE_4BPP); + LoadCompressedPalette(gBattleTerrainPalette_Kyogre, BG_PLTT_ID(2), 3 * PLTT_SIZE_4BPP); } else { @@ -1361,12 +1361,12 @@ bool8 LoadChosenBattleElement(u8 caseId) u8 trainerClass = gTrainers[gTrainerBattleOpponent_A].trainerClass; if (trainerClass == TRAINER_CLASS_LEADER) { - LoadCompressedPalette(gBattleTerrainPalette_BuildingLeader, BG_PLTT_ID(0x2), 3 * PLTT_SIZE_4BPP); + LoadCompressedPalette(gBattleTerrainPalette_BuildingLeader, BG_PLTT_ID(2), 3 * PLTT_SIZE_4BPP); break; } else if (trainerClass == TRAINER_CLASS_CHAMPION) { - LoadCompressedPalette(gBattleTerrainPalette_StadiumWallace, BG_PLTT_ID(0x2), 3 * PLTT_SIZE_4BPP); + LoadCompressedPalette(gBattleTerrainPalette_StadiumWallace, BG_PLTT_ID(2), 3 * PLTT_SIZE_4BPP); break; } } @@ -1375,31 +1375,31 @@ bool8 LoadChosenBattleElement(u8 caseId) { default: case MAP_BATTLE_SCENE_NORMAL: - LoadCompressedPalette(sBattleTerrainTable[gBattleTerrain].palette, BG_PLTT_ID(0x2), 3 * PLTT_SIZE_4BPP); + LoadCompressedPalette(sBattleTerrainTable[gBattleTerrain].palette, BG_PLTT_ID(2), 3 * PLTT_SIZE_4BPP); break; case MAP_BATTLE_SCENE_GYM: - LoadCompressedPalette(gBattleTerrainPalette_BuildingGym, BG_PLTT_ID(0x2), 3 * PLTT_SIZE_4BPP); + LoadCompressedPalette(gBattleTerrainPalette_BuildingGym, BG_PLTT_ID(2), 3 * PLTT_SIZE_4BPP); break; case MAP_BATTLE_SCENE_MAGMA: - LoadCompressedPalette(gBattleTerrainPalette_StadiumMagma, BG_PLTT_ID(0x2), 3 * PLTT_SIZE_4BPP); + LoadCompressedPalette(gBattleTerrainPalette_StadiumMagma, BG_PLTT_ID(2), 3 * PLTT_SIZE_4BPP); break; case MAP_BATTLE_SCENE_AQUA: - LoadCompressedPalette(gBattleTerrainPalette_StadiumAqua, BG_PLTT_ID(0x2), 3 * PLTT_SIZE_4BPP); + LoadCompressedPalette(gBattleTerrainPalette_StadiumAqua, BG_PLTT_ID(2), 3 * PLTT_SIZE_4BPP); break; case MAP_BATTLE_SCENE_SIDNEY: - LoadCompressedPalette(gBattleTerrainPalette_StadiumSidney, BG_PLTT_ID(0x2), 3 * PLTT_SIZE_4BPP); + LoadCompressedPalette(gBattleTerrainPalette_StadiumSidney, BG_PLTT_ID(2), 3 * PLTT_SIZE_4BPP); break; case MAP_BATTLE_SCENE_PHOEBE: - LoadCompressedPalette(gBattleTerrainPalette_StadiumPhoebe, BG_PLTT_ID(0x2), 3 * PLTT_SIZE_4BPP); + LoadCompressedPalette(gBattleTerrainPalette_StadiumPhoebe, BG_PLTT_ID(2), 3 * PLTT_SIZE_4BPP); break; case MAP_BATTLE_SCENE_GLACIA: - LoadCompressedPalette(gBattleTerrainPalette_StadiumGlacia, BG_PLTT_ID(0x2), 3 * PLTT_SIZE_4BPP); + LoadCompressedPalette(gBattleTerrainPalette_StadiumGlacia, BG_PLTT_ID(2), 3 * PLTT_SIZE_4BPP); break; case MAP_BATTLE_SCENE_DRAKE: - LoadCompressedPalette(gBattleTerrainPalette_StadiumDrake, BG_PLTT_ID(0x2), 3 * PLTT_SIZE_4BPP); + LoadCompressedPalette(gBattleTerrainPalette_StadiumDrake, BG_PLTT_ID(2), 3 * PLTT_SIZE_4BPP); break; case MAP_BATTLE_SCENE_FRONTIER: - LoadCompressedPalette(gBattleTerrainPalette_Frontier, BG_PLTT_ID(0x2), 3 * PLTT_SIZE_4BPP); + LoadCompressedPalette(gBattleTerrainPalette_Frontier, BG_PLTT_ID(2), 3 * PLTT_SIZE_4BPP); break; } } diff --git a/src/battle_dome.c b/src/battle_dome.c index 4293e5e19..9f781adb2 100644 --- a/src/battle_dome.c +++ b/src/battle_dome.c @@ -676,7 +676,7 @@ static const struct WindowTemplate sTourneyTreeWindowTemplates[] = .tilemapTop = 3, .width = 8, .height = 16, - .paletteNum = 0xF, + .paletteNum = 15, .baseBlock = 16, }, { @@ -685,7 +685,7 @@ static const struct WindowTemplate sTourneyTreeWindowTemplates[] = .tilemapTop = 3, .width = 8, .height = 16, - .paletteNum = 0xF, + .paletteNum = 15, .baseBlock = 144, }, { @@ -694,7 +694,7 @@ static const struct WindowTemplate sTourneyTreeWindowTemplates[] = .tilemapTop = 1, .width = 14, .height = 2, - .paletteNum = 0xF, + .paletteNum = 15, .baseBlock = 272, }, DUMMY_WIN_TEMPLATE, @@ -708,7 +708,7 @@ static const struct WindowTemplate sInfoCardWindowTemplates[] = .tilemapTop = 2, .width = 26, .height = 2, - .paletteNum = 0xF, + .paletteNum = 15, .baseBlock = 1, }, { @@ -717,7 +717,7 @@ static const struct WindowTemplate sInfoCardWindowTemplates[] = .tilemapTop = 5, .width = 8, .height = 2, - .paletteNum = 0xF, + .paletteNum = 15, .baseBlock = 53, }, { @@ -726,7 +726,7 @@ static const struct WindowTemplate sInfoCardWindowTemplates[] = .tilemapTop = 7, .width = 9, .height = 3, - .paletteNum = 0xF, + .paletteNum = 15, .baseBlock = 69, }, { @@ -735,7 +735,7 @@ static const struct WindowTemplate sInfoCardWindowTemplates[] = .tilemapTop = 10, .width = 8, .height = 2, - .paletteNum = 0xF, + .paletteNum = 15, .baseBlock = 96, }, { @@ -744,7 +744,7 @@ static const struct WindowTemplate sInfoCardWindowTemplates[] = .tilemapTop = 12, .width = 26, .height = 7, - .paletteNum = 0xF, + .paletteNum = 15, .baseBlock = 112, }, { @@ -753,7 +753,7 @@ static const struct WindowTemplate sInfoCardWindowTemplates[] = .tilemapTop = 2, .width = 23, .height = 2, - .paletteNum = 0xF, + .paletteNum = 15, .baseBlock = 294, }, { @@ -762,7 +762,7 @@ static const struct WindowTemplate sInfoCardWindowTemplates[] = .tilemapTop = 5, .width = 8, .height = 2, - .paletteNum = 0xF, + .paletteNum = 15, .baseBlock = 340, }, { @@ -771,7 +771,7 @@ static const struct WindowTemplate sInfoCardWindowTemplates[] = .tilemapTop = 5, .width = 8, .height = 2, - .paletteNum = 0xF, + .paletteNum = 15, .baseBlock = 356, }, { @@ -780,7 +780,7 @@ static const struct WindowTemplate sInfoCardWindowTemplates[] = .tilemapTop = 16, .width = 26, .height = 2, - .paletteNum = 0xF, + .paletteNum = 15, .baseBlock = 372, }, { @@ -789,7 +789,7 @@ static const struct WindowTemplate sInfoCardWindowTemplates[] = .tilemapTop = 2, .width = 26, .height = 2, - .paletteNum = 0xF, + .paletteNum = 15, .baseBlock = 1, }, { @@ -798,7 +798,7 @@ static const struct WindowTemplate sInfoCardWindowTemplates[] = .tilemapTop = 5, .width = 8, .height = 2, - .paletteNum = 0xF, + .paletteNum = 15, .baseBlock = 53, }, { @@ -807,7 +807,7 @@ static const struct WindowTemplate sInfoCardWindowTemplates[] = .tilemapTop = 7, .width = 9, .height = 3, - .paletteNum = 0xF, + .paletteNum = 15, .baseBlock = 69, }, { @@ -816,7 +816,7 @@ static const struct WindowTemplate sInfoCardWindowTemplates[] = .tilemapTop = 10, .width = 8, .height = 2, - .paletteNum = 0xF, + .paletteNum = 15, .baseBlock = 96, }, { @@ -825,7 +825,7 @@ static const struct WindowTemplate sInfoCardWindowTemplates[] = .tilemapTop = 12, .width = 26, .height = 7, - .paletteNum = 0xF, + .paletteNum = 15, .baseBlock = 112, }, { @@ -834,7 +834,7 @@ static const struct WindowTemplate sInfoCardWindowTemplates[] = .tilemapTop = 2, .width = 23, .height = 2, - .paletteNum = 0xF, + .paletteNum = 15, .baseBlock = 294, }, { @@ -843,7 +843,7 @@ static const struct WindowTemplate sInfoCardWindowTemplates[] = .tilemapTop = 5, .width = 8, .height = 2, - .paletteNum = 0xF, + .paletteNum = 15, .baseBlock = 340, }, { @@ -852,7 +852,7 @@ static const struct WindowTemplate sInfoCardWindowTemplates[] = .tilemapTop = 5, .width = 8, .height = 2, - .paletteNum = 0xF, + .paletteNum = 15, .baseBlock = 356, }, { @@ -861,7 +861,7 @@ static const struct WindowTemplate sInfoCardWindowTemplates[] = .tilemapTop = 16, .width = 26, .height = 2, - .paletteNum = 0xF, + .paletteNum = 15, .baseBlock = 372, }, #ifdef UBFIX @@ -3050,9 +3050,9 @@ static void Task_ShowTourneyInfoCard(u8 taskId) LoadCompressedSpriteSheet(sTourneyTreeButtonsSpriteSheet); LoadCompressedPalette(gDomeTourneyTree_Pal, BG_PLTT_OFFSET, BG_PLTT_SIZE); LoadCompressedPalette(gDomeTourneyTreeButtons_Pal, OBJ_PLTT_OFFSET, OBJ_PLTT_SIZE); - LoadCompressedPalette(gBattleWindowTextPalette, BG_PLTT_ID(0xF), PLTT_SIZE_4BPP); + LoadCompressedPalette(gBattleWindowTextPalette, BG_PLTT_ID(15), PLTT_SIZE_4BPP); if (mode == INFOCARD_MATCH) - LoadCompressedPalette(gDomeTourneyMatchCardBg_Pal, BG_PLTT_ID(0x5), PLTT_SIZE_4BPP); // Changes the moving info card bg to orange when in match card mode + LoadCompressedPalette(gDomeTourneyMatchCardBg_Pal, BG_PLTT_ID(5), PLTT_SIZE_4BPP); // Changes the moving info card bg to orange when in match card mode CpuFill32(0, gPlttBufferFaded, PLTT_SIZE); ShowBg(0); ShowBg(1); @@ -5329,7 +5329,7 @@ static void Task_ShowTourneyTree(u8 taskId) DecompressAndLoadBgGfxUsingHeap(3, gDomeTourneyLineUp_Tilemap, 0x2000, 0, 1); LoadCompressedPalette(gDomeTourneyTree_Pal, BG_PLTT_OFFSET, BG_PLTT_SIZE); LoadCompressedPalette(gDomeTourneyTreeButtons_Pal, OBJ_PLTT_OFFSET, OBJ_PLTT_SIZE); - LoadCompressedPalette(gBattleWindowTextPalette, BG_PLTT_ID(0xF), PLTT_SIZE_4BPP); + LoadCompressedPalette(gBattleWindowTextPalette, BG_PLTT_ID(15), PLTT_SIZE_4BPP); CpuFill32(0, gPlttBufferFaded, PLTT_SIZE); ShowBg(0); ShowBg(1); diff --git a/src/battle_factory_screen.c b/src/battle_factory_screen.c index c6843e753..16f702c72 100644 --- a/src/battle_factory_screen.c +++ b/src/battle_factory_screen.c @@ -350,7 +350,7 @@ static const struct WindowTemplate sSelect_WindowTemplates[] = .tilemapTop = 2, .width = 12, .height = 2, - .paletteNum = 0xF, + .paletteNum = 15, .baseBlock = 0x0001, }, [SELECT_WIN_SPECIES] = { @@ -359,7 +359,7 @@ static const struct WindowTemplate sSelect_WindowTemplates[] = .tilemapTop = 2, .width = 11, .height = 2, - .paletteNum = 0xE, + .paletteNum = 14, .baseBlock = 0x0019, }, [SELECT_WIN_INFO] = { @@ -368,7 +368,7 @@ static const struct WindowTemplate sSelect_WindowTemplates[] = .tilemapTop = 15, .width = 20, .height = 3, - .paletteNum = 0xF, + .paletteNum = 15, .baseBlock = 0x002f, }, [SELECT_WIN_OPTIONS] = { @@ -377,7 +377,7 @@ static const struct WindowTemplate sSelect_WindowTemplates[] = .tilemapTop = 14, .width = 8, .height = 6, - .paletteNum = 0xF, + .paletteNum = 15, .baseBlock = 0x006b, }, [SELECT_WIN_YES_NO] = { @@ -386,7 +386,7 @@ static const struct WindowTemplate sSelect_WindowTemplates[] = .tilemapTop = 14, .width = 8, .height = 4, - .paletteNum = 0xF, + .paletteNum = 15, .baseBlock = 0x009b, }, [SELECT_WIN_MON_CATEGORY] = { @@ -395,7 +395,7 @@ static const struct WindowTemplate sSelect_WindowTemplates[] = .tilemapTop = 0, .width = 15, .height = 2, - .paletteNum = 0xF, + .paletteNum = 15, .baseBlock = 0x00bb, }, DUMMY_WIN_TEMPLATE, @@ -945,7 +945,7 @@ static const struct WindowTemplate sSwap_WindowTemplates[] = .tilemapTop = 2, .width = 12, .height = 2, - .paletteNum = 0xF, + .paletteNum = 15, .baseBlock = 0x0001, }, [SWAP_WIN_SPECIES] = { @@ -954,7 +954,7 @@ static const struct WindowTemplate sSwap_WindowTemplates[] = .tilemapTop = 2, .width = 11, .height = 2, - .paletteNum = 0xE, + .paletteNum = 14, .baseBlock = 0x0019, }, [SWAP_WIN_INFO] = { @@ -963,7 +963,7 @@ static const struct WindowTemplate sSwap_WindowTemplates[] = .tilemapTop = 15, .width = 20, .height = 3, - .paletteNum = 0xF, + .paletteNum = 15, .baseBlock = 0x002f, }, [SWAP_WIN_OPTIONS] = { @@ -972,7 +972,7 @@ static const struct WindowTemplate sSwap_WindowTemplates[] = .tilemapTop = 14, .width = 9, .height = 6, - .paletteNum = 0xF, + .paletteNum = 15, .baseBlock = 0x006b, }, [SWAP_WIN_YES_NO] = { @@ -981,7 +981,7 @@ static const struct WindowTemplate sSwap_WindowTemplates[] = .tilemapTop = 14, .width = 8, .height = 4, - .paletteNum = 0xF, + .paletteNum = 15, .baseBlock = 0x00a1, }, [SWAP_WIN_ACTION_FADE] = { @@ -990,7 +990,7 @@ static const struct WindowTemplate sSwap_WindowTemplates[] = .tilemapTop = 15, .width = 9, .height = 5, - .paletteNum = 0xE, + .paletteNum = 14, .baseBlock = 0x006b, }, [SWAP_WIN_UNUSED] = { @@ -999,7 +999,7 @@ static const struct WindowTemplate sSwap_WindowTemplates[] = .tilemapTop = 2, .width = 4, .height = 2, - .paletteNum = 0xE, + .paletteNum = 14, .baseBlock = 0x00c1, }, [SWAP_WIN_SPECIES_AT_FADE] = { @@ -1008,7 +1008,7 @@ static const struct WindowTemplate sSwap_WindowTemplates[] = .tilemapTop = 2, .width = 11, .height = 2, - .paletteNum = 0xF, + .paletteNum = 15, .baseBlock = 0x00c9, }, [SWAP_WIN_MON_CATEGORY] = { @@ -1017,7 +1017,7 @@ static const struct WindowTemplate sSwap_WindowTemplates[] = .tilemapTop = 0, .width = 15, .height = 2, - .paletteNum = 0xF, + .paletteNum = 15, .baseBlock = 0x00df, }, DUMMY_WIN_TEMPLATE, @@ -1176,15 +1176,15 @@ static void CB2_InitSelectScreen(void) CpuCopy16(gFrontierFactorySelectMenu_Tilemap, sSelectMenuTilemapBuffer, BG_SCREEN_SIZE); LoadBgTilemap(1, sSelectMenuTilemapBuffer, BG_SCREEN_SIZE, 0); LoadPalette(gFrontierFactorySelectMenu_Pal, 0, 2 * PLTT_SIZE_4BPP); - LoadPalette(sSelectText_Pal, BG_PLTT_ID(0xF), PLTT_SIZEOF(4)); - LoadPalette(sSelectText_Pal, BG_PLTT_ID(0xE), PLTT_SIZEOF(5)); + LoadPalette(sSelectText_Pal, BG_PLTT_ID(15), PLTT_SIZEOF(4)); + LoadPalette(sSelectText_Pal, BG_PLTT_ID(14), PLTT_SIZEOF(5)); #ifdef UBFIX if (sFactorySelectScreen && sFactorySelectScreen->fromSummaryScreen) #else if (sFactorySelectScreen->fromSummaryScreen == TRUE) #endif gPlttBufferUnfaded[228] = sFactorySelectScreen->speciesNameColorBackup; - LoadPalette(sMonPicBg_Pal, BG_PLTT_ID(0x2), PLTT_SIZEOF(2)); + LoadPalette(sMonPicBg_Pal, BG_PLTT_ID(2), PLTT_SIZEOF(2)); gMain.state++; break; case 3: @@ -2748,7 +2748,7 @@ static void Swap_Task_FadeOutSpeciesName(u8 taskId) gTasks[taskId].tState++; break; case 1: - LoadPalette(&gPlttBufferUnfaded[BG_PLTT_ID(0xF)], BG_PLTT_ID(0xE), PLTT_SIZEOF(5)); + LoadPalette(&gPlttBufferUnfaded[BG_PLTT_ID(15)], BG_PLTT_ID(14), PLTT_SIZEOF(5)); gTasks[taskId].tState++; break; case 2: @@ -2994,7 +2994,7 @@ static void Swap_Task_ScreenInfoTransitionOut(u8 taskId) switch (gTasks[taskId].tState) { case 0: - LoadPalette(sSwapText_Pal, BG_PLTT_ID(0xE), sizeof(sSwapText_Pal)); + LoadPalette(sSwapText_Pal, BG_PLTT_ID(14), sizeof(sSwapText_Pal)); Swap_PrintActionStrings(); PutWindowTilemap(SWAP_WIN_ACTION_FADE); gTasks[taskId].tState++; @@ -3310,9 +3310,9 @@ static void CB2_InitSwapScreen(void) CpuCopy16(gFrontierFactorySelectMenu_Tilemap, sSwapMenuTilemapBuffer, BG_SCREEN_SIZE); LoadBgTilemap(1, sSwapMenuTilemapBuffer, BG_SCREEN_SIZE, 0); LoadPalette(gFrontierFactorySelectMenu_Pal, 0, 2 * PLTT_SIZE_4BPP); - LoadPalette(sSwapText_Pal, BG_PLTT_ID(0xF), sizeof(sSwapText_Pal)); - LoadPalette(sSwapText_Pal, BG_PLTT_ID(0xE), sizeof(sSwapText_Pal)); - LoadPalette(sMonPicBg_Pal, BG_PLTT_ID(0x2), PLTT_SIZEOF(2)); + LoadPalette(sSwapText_Pal, BG_PLTT_ID(15), sizeof(sSwapText_Pal)); + LoadPalette(sSwapText_Pal, BG_PLTT_ID(14), sizeof(sSwapText_Pal)); + LoadPalette(sMonPicBg_Pal, BG_PLTT_ID(2), PLTT_SIZEOF(2)); gMain.state++; break; case 3: @@ -3867,7 +3867,7 @@ static void Swap_PrintMonSpeciesAtFade(void) pal[4] = gPlttBufferFaded[228]; else pal[4] = sFactorySwapScreen->speciesNameColorBackup; - LoadPalette(pal, BG_PLTT_ID(0xF), sizeof(sSwapText_Pal)); + LoadPalette(pal, BG_PLTT_ID(15), sizeof(sSwapText_Pal)); PutWindowTilemap(SWAP_WIN_SPECIES_AT_FADE); FillWindowPixelBuffer(SWAP_WIN_SPECIES_AT_FADE, PIXEL_FILL(0)); @@ -3895,8 +3895,8 @@ static void Swap_PrintMonSpeciesForTransition(void) u16 species; u8 x; - LoadPalette(sSwapText_Pal, BG_PLTT_ID(0xE), sizeof(sSwapText_Pal)); - CpuCopy16(&gPlttBufferUnfaded[BG_PLTT_ID(0xF)], &gPlttBufferFaded[BG_PLTT_ID(0xE)], PLTT_SIZEOF(5)); + LoadPalette(sSwapText_Pal, BG_PLTT_ID(14), sizeof(sSwapText_Pal)); + CpuCopy16(&gPlttBufferUnfaded[BG_PLTT_ID(15)], &gPlttBufferFaded[BG_PLTT_ID(14)], PLTT_SIZEOF(5)); if (sFactorySwapScreen->cursorPos >= FRONTIER_PARTY_SIZE) { diff --git a/src/battle_gfx_sfx_util.c b/src/battle_gfx_sfx_util.c index 42f3805aa..fba0966c5 100644 --- a/src/battle_gfx_sfx_util.c +++ b/src/battle_gfx_sfx_util.c @@ -585,7 +585,7 @@ void BattleLoadOpponentMonSpriteGfx(struct Pokemon *mon, u8 battlerId) LZDecompressWram(lzPaletteData, gDecompressionBuffer); LoadPalette(gDecompressionBuffer, paletteOffset, PLTT_SIZE_4BPP); - LoadPalette(gDecompressionBuffer, 0x80 + BG_PLTT_ID(battlerId), PLTT_SIZE_4BPP); + LoadPalette(gDecompressionBuffer, BG_PLTT_ID(8) + BG_PLTT_ID(battlerId), PLTT_SIZE_4BPP); if (species == SPECIES_CASTFORM) { @@ -648,7 +648,7 @@ void BattleLoadPlayerMonSpriteGfx(struct Pokemon *mon, u8 battlerId) LZDecompressWram(lzPaletteData, gDecompressionBuffer); LoadPalette(gDecompressionBuffer, paletteOffset, PLTT_SIZE_4BPP); - LoadPalette(gDecompressionBuffer, 0x80 + BG_PLTT_ID(battlerId), PLTT_SIZE_4BPP); + LoadPalette(gDecompressionBuffer, BG_PLTT_ID(8) + BG_PLTT_ID(battlerId), PLTT_SIZE_4BPP); if (species == SPECIES_CASTFORM) { diff --git a/src/battle_main.c b/src/battle_main.c index 879d9113d..483c083f0 100644 --- a/src/battle_main.c +++ b/src/battle_main.c @@ -2215,7 +2215,7 @@ void CB2_InitEndLinkBattle(void) gBattle_BG3_Y = 0; InitBattleBgsVideo(); - LoadCompressedPalette(gBattleTextboxPalette, BG_PLTT_ID(0x0), 2 * PLTT_SIZE_4BPP); + LoadCompressedPalette(gBattleTextboxPalette, BG_PLTT_ID(0), 2 * PLTT_SIZE_4BPP); LoadBattleMenuWindowGfx(); ResetSpriteData(); ResetTasks(); diff --git a/src/battle_pyramid_bag.c b/src/battle_pyramid_bag.c index 93c7df06a..2ff5828b7 100644 --- a/src/battle_pyramid_bag.c +++ b/src/battle_pyramid_bag.c @@ -214,7 +214,7 @@ static const struct WindowTemplate sWindowTemplates[] = .tilemapTop = 2, .width = 15, .height = 16, - .paletteNum = 0xF, + .paletteNum = 15, .baseBlock = 30 }, [WIN_INFO] = { @@ -223,7 +223,7 @@ static const struct WindowTemplate sWindowTemplates[] = .tilemapTop = 13, .width = 14, .height = 6, - .paletteNum = 0xF, + .paletteNum = 15, .baseBlock = 270 }, [WIN_MSG] = { @@ -232,7 +232,7 @@ static const struct WindowTemplate sWindowTemplates[] = .tilemapTop = 15, .width = 27, .height = 4, - .paletteNum = 0xF, + .paletteNum = 15, .baseBlock = 354 }, [WIN_TOSS_NUM] = { @@ -241,7 +241,7 @@ static const struct WindowTemplate sWindowTemplates[] = .tilemapTop = 17, .width = 5, .height = 2, - .paletteNum = 0xF, + .paletteNum = 15, .baseBlock = 462 }, DUMMY_WIN_TEMPLATE, @@ -263,7 +263,7 @@ static const struct WindowTemplate sWindowTemplates_MenuActions[] = .tilemapTop = 17, .width = 7, .height = 2, - .paletteNum = 0xF, + .paletteNum = 15, .baseBlock = 472 }, [MENU_WIN_1x2] = { @@ -272,7 +272,7 @@ static const struct WindowTemplate sWindowTemplates_MenuActions[] = .tilemapTop = 15, .width = 7, .height = 4, - .paletteNum = 0xF, + .paletteNum = 15, .baseBlock = 472 }, [MENU_WIN_2x2] = { @@ -281,7 +281,7 @@ static const struct WindowTemplate sWindowTemplates_MenuActions[] = .tilemapTop = 15, .width = 14, .height = 4, - .paletteNum = 0xF, + .paletteNum = 15, .baseBlock = 472 }, [MENU_WIN_2x3] = { // Unused @@ -290,7 +290,7 @@ static const struct WindowTemplate sWindowTemplates_MenuActions[] = .tilemapTop = 13, .width = 14, .height = 6, - .paletteNum = 0xF, + .paletteNum = 15, .baseBlock = 472 }, [MENU_WIN_YESNO] = { @@ -299,7 +299,7 @@ static const struct WindowTemplate sWindowTemplates_MenuActions[] = .tilemapTop = 15, .width = 5, .height = 4, - .paletteNum = 0xF, + .paletteNum = 15, .baseBlock = 472 }, }; @@ -578,7 +578,7 @@ static bool8 LoadPyramidBagGfx(void) } break; case 2: - LoadCompressedPalette(gBattlePyramidBagInterface_Pal, BG_PLTT_ID(0x0), PLTT_SIZE_4BPP); + LoadCompressedPalette(gBattlePyramidBagInterface_Pal, BG_PLTT_ID(0), PLTT_SIZE_4BPP); gPyramidBagMenu->state++; break; case 3: @@ -1439,9 +1439,9 @@ static void InitPyramidBagWindows(void) InitWindows(sWindowTemplates); DeactivateAllTextPrinters(); - LoadUserWindowBorderGfx(0, 0x1, BG_PLTT_ID(0xE)); - LoadMessageBoxGfx(0, 0xA, BG_PLTT_ID(0xD)); - LoadPalette(gStandardMenuPalette, BG_PLTT_ID(0xF), PLTT_SIZE_4BPP); + LoadUserWindowBorderGfx(0, 0x1, BG_PLTT_ID(14)); + LoadMessageBoxGfx(0, 0xA, BG_PLTT_ID(13)); + LoadPalette(gStandardMenuPalette, BG_PLTT_ID(15), PLTT_SIZE_4BPP); for (i = 0; i < ARRAY_COUNT(sWindowTemplates); i++) FillWindowPixelBuffer(i, PIXEL_FILL(0)); diff --git a/src/battle_records.c b/src/battle_records.c index c6becd6d7..4463a9ebf 100644 --- a/src/battle_records.c +++ b/src/battle_records.c @@ -67,7 +67,7 @@ static const struct WindowTemplate sTrainerHillRecordsWindowTemplates[] = .tilemapTop = 1, .width = 26, .height = 18, - .paletteNum = 0xF, + .paletteNum = 15, .baseBlock = 20 }, DUMMY_WIN_TEMPLATE @@ -80,7 +80,7 @@ static const struct WindowTemplate sLinkBattleRecordsWindow = .tilemapTop = 1, .width = 26, .height = 17, - .paletteNum = 0xF, + .paletteNum = 15, .baseBlock = 1 }; @@ -444,7 +444,7 @@ static void LoadTrainerHillRecordsWindowGfx(u8 bgId) { LoadBgTiles(bgId, sTrainerHillWindowTileset, sizeof(sTrainerHillWindowTileset), 0); CopyToBgTilemapBufferRect(bgId, sTrainerHillWindowTilemap, 0, 0, 0x20, 0x20); - LoadPalette(sTrainerHillWindowPalette, BG_PLTT_ID(0x0), PLTT_SIZE_4BPP); + LoadPalette(sTrainerHillWindowPalette, BG_PLTT_ID(0), PLTT_SIZE_4BPP); } static void VblankCB_TrainerHillRecords(void) @@ -491,7 +491,7 @@ static void CB2_ShowTrainerHillRecords(void) break; case 3: LoadTrainerHillRecordsWindowGfx(3); - LoadPalette(GetTextWindowPalette(0), BG_PLTT_ID(0xF), PLTT_SIZE_4BPP); + LoadPalette(GetTextWindowPalette(0), BG_PLTT_ID(15), PLTT_SIZE_4BPP); gMain.state++; break; case 4: diff --git a/src/battle_script_commands.c b/src/battle_script_commands.c index e3bba6962..90d91fcc9 100644 --- a/src/battle_script_commands.c +++ b/src/battle_script_commands.c @@ -6013,7 +6013,7 @@ static void InitLevelUpBanner(void) gBattle_BG2_Y = 0; gBattle_BG2_X = LEVEL_UP_BANNER_START; - LoadPalette(sLevelUpBanner_Pal, BG_PLTT_ID(0x6), PLTT_SIZE_4BPP); + LoadPalette(sLevelUpBanner_Pal, BG_PLTT_ID(6), PLTT_SIZE_4BPP); CopyToWindowPixelBuffer(B_WIN_LEVEL_UP_BANNER, sLevelUpBanner_Gfx, 0, 0); PutWindowTilemap(B_WIN_LEVEL_UP_BANNER); CopyWindowToVram(B_WIN_LEVEL_UP_BANNER, COPYWIN_FULL); diff --git a/src/battle_transition.c b/src/battle_transition.c index 31363f4a9..65bc8a16e 100644 --- a/src/battle_transition.c +++ b/src/battle_transition.c @@ -1406,7 +1406,7 @@ static bool8 Aqua_Init(struct Task *task) GetBg0TilesDst(&tilemap, &tileset); CpuFill16(0, tilemap, BG_SCREEN_SIZE); LZ77UnCompVram(sTeamAqua_Tileset, tileset); - LoadPalette(sEvilTeam_Palette, BG_PLTT_ID(0xF), sizeof(sEvilTeam_Palette)); + LoadPalette(sEvilTeam_Palette, BG_PLTT_ID(15), sizeof(sEvilTeam_Palette)); task->tState++; return FALSE; @@ -1421,7 +1421,7 @@ static bool8 Magma_Init(struct Task *task) GetBg0TilesDst(&tilemap, &tileset); CpuFill16(0, tilemap, BG_SCREEN_SIZE); LZ77UnCompVram(sTeamMagma_Tileset, tileset); - LoadPalette(sEvilTeam_Palette, BG_PLTT_ID(0xF), sizeof(sEvilTeam_Palette)); + LoadPalette(sEvilTeam_Palette, BG_PLTT_ID(15), sizeof(sEvilTeam_Palette)); task->tState++; return FALSE; @@ -1449,7 +1449,7 @@ static bool8 BigPokeball_Init(struct Task *task) GetBg0TilesDst(&tilemap, &tileset); CpuFill16(0, tilemap, BG_SCREEN_SIZE); CpuCopy16(sBigPokeball_Tileset, tileset, sizeof(sBigPokeball_Tileset)); - LoadPalette(sFieldEffectPal_Pokeball, BG_PLTT_ID(0xF), sizeof(sFieldEffectPal_Pokeball)); + LoadPalette(sFieldEffectPal_Pokeball, BG_PLTT_ID(15), sizeof(sFieldEffectPal_Pokeball)); task->tState++; return FALSE; @@ -1504,7 +1504,7 @@ static bool8 Regice_SetGfx(struct Task *task) u16 *tilemap, *tileset; GetBg0TilesDst(&tilemap, &tileset); - LoadPalette(sRegice_Palette, BG_PLTT_ID(0xF), sizeof(sRegice_Palette)); + LoadPalette(sRegice_Palette, BG_PLTT_ID(15), sizeof(sRegice_Palette)); CpuCopy16(sRegice_Tilemap, tilemap, 0x500); SetSinWave(gScanlineEffectRegBuffers[0], 0, task->tSinIndex, 132, task->tAmplitude, DISPLAY_HEIGHT); @@ -1517,7 +1517,7 @@ static bool8 Registeel_SetGfx(struct Task *task) u16 *tilemap, *tileset; GetBg0TilesDst(&tilemap, &tileset); - LoadPalette(sRegisteel_Palette, BG_PLTT_ID(0xF), sizeof(sRegisteel_Palette)); + LoadPalette(sRegisteel_Palette, BG_PLTT_ID(15), sizeof(sRegisteel_Palette)); CpuCopy16(sRegisteel_Tilemap, tilemap, 0x500); SetSinWave(gScanlineEffectRegBuffers[0], 0, task->tSinIndex, 132, task->tAmplitude, DISPLAY_HEIGHT); @@ -1530,7 +1530,7 @@ static bool8 Regirock_SetGfx(struct Task *task) u16 *tilemap, *tileset; GetBg0TilesDst(&tilemap, &tileset); - LoadPalette(sRegirock_Palette, BG_PLTT_ID(0xF), sizeof(sRegirock_Palette)); + LoadPalette(sRegirock_Palette, BG_PLTT_ID(15), sizeof(sRegirock_Palette)); CpuCopy16(sRegirock_Tilemap, tilemap, 0x500); SetSinWave(gScanlineEffectRegBuffers[0], 0, task->tSinIndex, 132, task->tAmplitude, DISPLAY_HEIGHT); @@ -1559,7 +1559,7 @@ static bool8 Kyogre_PaletteFlash(struct Task *task) { u16 offset = task->tTimer % 30; offset /= 3; - LoadPalette(&sKyogre1_Palette[offset * 16], BG_PLTT_ID(0xF), PLTT_SIZE_4BPP); + LoadPalette(&sKyogre1_Palette[offset * 16], BG_PLTT_ID(15), PLTT_SIZE_4BPP); } if (++task->tTimer > 58) { @@ -1575,7 +1575,7 @@ static bool8 Kyogre_PaletteBrighten(struct Task *task) if (task->tTimer % 5 == 0) { s16 offset = task->tTimer / 5; - LoadPalette(&sKyogre2_Palette[offset * 16], BG_PLTT_ID(0xF), PLTT_SIZE_4BPP); + LoadPalette(&sKyogre2_Palette[offset * 16], BG_PLTT_ID(15), PLTT_SIZE_4BPP); } if (++task->tTimer > 68) { @@ -1776,7 +1776,7 @@ static bool8 PokeballsTrail_Init(struct Task *task) GetBg0TilesDst(&tilemap, &tileset); CpuSet(sPokeballTrail_Tileset, tileset, 0x20); CpuFill32(0, tilemap, BG_SCREEN_SIZE); - LoadPalette(sFieldEffectPal_Pokeball, BG_PLTT_ID(0xF), sizeof(sFieldEffectPal_Pokeball)); + LoadPalette(sFieldEffectPal_Pokeball, BG_PLTT_ID(15), sizeof(sFieldEffectPal_Pokeball)); task->tState++; return FALSE; @@ -2328,8 +2328,8 @@ static bool8 Mugshot_SetGfx(struct Task *task) mugshotsMap = sMugshotsTilemap; GetBg0TilesDst(&tilemap, &tileset); CpuSet(sEliteFour_Tileset, tileset, 0xF0); - LoadPalette(sOpponentMugshotsPals[task->tMugshotId], BG_PLTT_ID(0xF), PLTT_SIZE_4BPP); - LoadPalette(sPlayerMugshotsPals[gSaveBlock2Ptr->playerGender], BG_PLTT_ID(0xF) + 10, PLTT_SIZEOF(6)); + LoadPalette(sOpponentMugshotsPals[task->tMugshotId], BG_PLTT_ID(15), PLTT_SIZE_4BPP); + LoadPalette(sPlayerMugshotsPals[gSaveBlock2Ptr->playerGender], BG_PLTT_ID(15) + 10, PLTT_SIZEOF(6)); for (i = 0; i < 20; i++) { @@ -3193,7 +3193,7 @@ static bool8 RectangularSpiral_Init(struct Task *task) CpuCopy16(sShrinkingBoxTileset, tileset, 0x20); CpuCopy16(&sShrinkingBoxTileset[0x70], &tileset[0x20], 0x20); CpuFill16(0xF0 << 8, tilemap, BG_SCREEN_SIZE); - LoadPalette(sFieldEffectPal_Pokeball, BG_PLTT_ID(0xF), sizeof(sFieldEffectPal_Pokeball)); + LoadPalette(sFieldEffectPal_Pokeball, BG_PLTT_ID(15), sizeof(sFieldEffectPal_Pokeball)); task->data[3] = 1; task->tState++; @@ -3389,7 +3389,7 @@ static bool8 Groudon_PaletteFlash(struct Task *task) if (task->tTimer % 3 == 0) { u16 offset = (task->tTimer % 30) / 3; - LoadPalette(&sGroudon1_Palette[offset * 16], BG_PLTT_ID(0xF), PLTT_SIZE_4BPP); + LoadPalette(&sGroudon1_Palette[offset * 16], BG_PLTT_ID(15), PLTT_SIZE_4BPP); } if (++task->tTimer > 58) { @@ -3405,7 +3405,7 @@ static bool8 Groudon_PaletteBrighten(struct Task *task) if (task->tTimer % 5 == 0) { s16 offset = task->tTimer / 5; - LoadPalette(&sGroudon2_Palette[offset * 16], BG_PLTT_ID(0xF), PLTT_SIZE_4BPP); + LoadPalette(&sGroudon2_Palette[offset * 16], BG_PLTT_ID(15), PLTT_SIZE_4BPP); } if (++task->tTimer > 68) { @@ -3448,7 +3448,7 @@ static bool8 Rayquaza_Init(struct Task *task) sTransitionData->counter = 0; task->tState++; - LoadPalette(&sRayquaza_Palette[0x50], BG_PLTT_ID(0xF), PLTT_SIZE_4BPP); + LoadPalette(&sRayquaza_Palette[80], BG_PLTT_ID(15), PLTT_SIZE_4BPP); for (i = 0; i < DISPLAY_HEIGHT; i++) { @@ -3476,7 +3476,7 @@ static bool8 Rayquaza_PaletteFlash(struct Task *task) { u16 value = task->tTimer / 4; const u16 *palPtr = &sRayquaza_Palette[(value + 5) * 16]; - LoadPalette(palPtr, BG_PLTT_ID(0xF), PLTT_SIZE_4BPP); + LoadPalette(palPtr, BG_PLTT_ID(15), PLTT_SIZE_4BPP); } if (++task->tTimer > 40) { @@ -3524,7 +3524,7 @@ static bool8 Rayquaza_TriRing(struct Task *task) { u16 value = task->tTimer / 3; const u16 *palPtr = &sRayquaza_Palette[(value + 0) * 16]; - LoadPalette(palPtr, BG_PLTT_ID(0xF), PLTT_SIZE_4BPP); + LoadPalette(palPtr, BG_PLTT_ID(15), PLTT_SIZE_4BPP); } if (++task->tTimer >= 40) { @@ -3775,7 +3775,7 @@ static bool8 GridSquares_Init(struct Task *task) GetBg0TilesDst(&tilemap, &tileset); CpuSet(sShrinkingBoxTileset, tileset, 16); CpuFill16(0xF0 << 8, tilemap, BG_SCREEN_SIZE); - LoadPalette(sFieldEffectPal_Pokeball, BG_PLTT_ID(0xF), sizeof(sFieldEffectPal_Pokeball)); + LoadPalette(sFieldEffectPal_Pokeball, BG_PLTT_ID(15), sizeof(sFieldEffectPal_Pokeball)); task->tState++; return FALSE; @@ -4242,7 +4242,7 @@ static bool8 FrontierLogoWiggle_Init(struct Task *task) GetBg0TilesDst(&tilemap, &tileset); CpuFill16(0, tilemap, BG_SCREEN_SIZE); LZ77UnCompVram(sFrontierLogo_Tileset, tileset); - LoadPalette(sFrontierLogo_Palette, BG_PLTT_ID(0xF), sizeof(sFrontierLogo_Palette)); + LoadPalette(sFrontierLogo_Palette, BG_PLTT_ID(15), sizeof(sFrontierLogo_Palette)); task->tState++; return FALSE; @@ -4304,7 +4304,7 @@ static bool8 FrontierLogoWave_Init(struct Task *task) GetBg0TilesDst(&tilemap, &tileset); CpuFill16(0, tilemap, BG_SCREEN_SIZE); LZ77UnCompVram(sFrontierLogo_Tileset, tileset); - LoadPalette(sFrontierLogo_Palette, BG_PLTT_ID(0xF), sizeof(sFrontierLogo_Palette)); + LoadPalette(sFrontierLogo_Palette, BG_PLTT_ID(15), sizeof(sFrontierLogo_Palette)); sTransitionData->cameraY = 0; task->tState++; @@ -4451,10 +4451,10 @@ static bool8 FrontierSquares_Init(struct Task *task) LZ77UnCompVram(sFrontierSquares_FilledBg_Tileset, tileset); FillBgTilemapBufferRect_Palette0(0, 0, 0, 0, 32, 32); - FillBgTilemapBufferRect(0, 1, 0, 0, MARGIN_SIZE, 32, 0xF); - FillBgTilemapBufferRect(0, 1, 30 - MARGIN_SIZE, 0, MARGIN_SIZE, 32, 0xF); + FillBgTilemapBufferRect(0, 1, 0, 0, MARGIN_SIZE, 32, 15); + FillBgTilemapBufferRect(0, 1, 30 - MARGIN_SIZE, 0, MARGIN_SIZE, 32, 15); CopyBgTilemapBufferToVram(0); - LoadPalette(sFrontierSquares_Palette, BG_PLTT_ID(0xF), sizeof(sFrontierSquares_Palette)); + LoadPalette(sFrontierSquares_Palette, BG_PLTT_ID(15), sizeof(sFrontierSquares_Palette)); task->tPosX = MARGIN_SIZE; task->tPosY = 0; @@ -4471,7 +4471,7 @@ static bool8 FrontierSquares_Draw(struct Task *task) SQUARE_SIZE, SQUARE_SIZE, task->tPosX, task->tPosY, SQUARE_SIZE, SQUARE_SIZE, - 0xF, 0, 0); + 15, 0, 0); CopyBgTilemapBufferToVram(0); task->tPosX += SQUARE_SIZE; @@ -4546,12 +4546,12 @@ static bool8 FrontierSquaresSpiral_Init(struct Task *task) LZ77UnCompVram(sFrontierSquares_FilledBg_Tileset, tileset); FillBgTilemapBufferRect_Palette0(0, 0, 0, 0, 32, 32); - FillBgTilemapBufferRect(0, 1, 0, 0, MARGIN_SIZE, 32, 0xF); - FillBgTilemapBufferRect(0, 1, 30 - MARGIN_SIZE, 0, MARGIN_SIZE, 32, 0xF); + FillBgTilemapBufferRect(0, 1, 0, 0, MARGIN_SIZE, 32, 15); + FillBgTilemapBufferRect(0, 1, 30 - MARGIN_SIZE, 0, MARGIN_SIZE, 32, 15); CopyBgTilemapBufferToVram(0); - LoadPalette(sFrontierSquares_Palette, BG_PLTT_ID(0xE), sizeof(sFrontierSquares_Palette)); - LoadPalette(sFrontierSquares_Palette, BG_PLTT_ID(0xF), sizeof(sFrontierSquares_Palette)); - BlendPalette(BG_PLTT_ID(0xE), 16, 8, RGB_BLACK); + LoadPalette(sFrontierSquares_Palette, BG_PLTT_ID(14), sizeof(sFrontierSquares_Palette)); + LoadPalette(sFrontierSquares_Palette, BG_PLTT_ID(15), sizeof(sFrontierSquares_Palette)); + BlendPalette(BG_PLTT_ID(14), 16, 8, RGB_BLACK); task->tSquareNum = NUM_SQUARES - 1; task->tFadeFlag = 0; @@ -4569,7 +4569,7 @@ static bool8 FrontierSquaresSpiral_Outward(struct Task *task) SQUARE_SIZE, SQUARE_SIZE, SQUARE_SIZE * x + MARGIN_SIZE, SQUARE_SIZE * y, SQUARE_SIZE, SQUARE_SIZE, - 0xF, 0, 0); + 15, 0, 0); CopyBgTilemapBufferToVram(0); if (--task->tSquareNum < 0) @@ -4581,7 +4581,7 @@ static bool8 FrontierSquaresSpiral_Outward(struct Task *task) // set it to black so it's not revealed when the squares are removed. static bool8 FrontierSquaresSpiral_SetBlack(struct Task *task) { - BlendPalette(BG_PLTT_ID(0xE), 16, 3, RGB_BLACK); + BlendPalette(BG_PLTT_ID(14), 16, 3, RGB_BLACK); BlendPalettes(PALETTES_ALL & ~(1 << 15 | 1 << 14), 16, RGB_BLACK); task->tSquareNum = 0; @@ -4603,7 +4603,7 @@ static bool8 FrontierSquaresSpiral_Inward(struct Task *task) SQUARE_SIZE * (sFrontierSquaresSpiral_Positions[task->tSquareNum] % NUM_SQUARES_PER_ROW) + MARGIN_SIZE, SQUARE_SIZE * (sFrontierSquaresSpiral_Positions[task->tSquareNum] / NUM_SQUARES_PER_ROW), SQUARE_SIZE, SQUARE_SIZE, - 0xE, 0, 0); + 14, 0, 0); } else { @@ -4614,7 +4614,7 @@ static bool8 FrontierSquaresSpiral_Inward(struct Task *task) SQUARE_SIZE * (sFrontierSquaresSpiral_Positions[task->tSquareNum - 1] % NUM_SQUARES_PER_ROW) + MARGIN_SIZE, SQUARE_SIZE * (sFrontierSquaresSpiral_Positions[task->tSquareNum - 1] / NUM_SQUARES_PER_ROW), SQUARE_SIZE, SQUARE_SIZE, - 0xF); + 15); } task->tSquareNum++; } @@ -4664,7 +4664,7 @@ static bool8 FrontierSquaresScroll_Init(struct Task *task) LZ77UnCompVram(sFrontierSquares_FilledBg_Tileset, tileset); FillBgTilemapBufferRect_Palette0(0, 0, 0, 0, 32, 32); CopyBgTilemapBufferToVram(0); - LoadPalette(sFrontierSquares_Palette, BG_PLTT_ID(0xF), sizeof(sFrontierSquares_Palette)); + LoadPalette(sFrontierSquares_Palette, BG_PLTT_ID(15), sizeof(sFrontierSquares_Palette)); gBattle_BG0_X = 0; gBattle_BG0_Y = 0; @@ -4709,7 +4709,7 @@ static bool8 FrontierSquaresScroll_Draw(struct Task *task) SQUARE_SIZE, SQUARE_SIZE, SQUARE_SIZE * x + MARGIN_SIZE, SQUARE_SIZE * y, SQUARE_SIZE, SQUARE_SIZE, - 0xF, 0, 0); + 15, 0, 0); CopyBgTilemapBufferToVram(0); if (++task->tSquareNum >= (int)ARRAY_COUNT(sFrontierSquaresScroll_Positions)) @@ -4738,7 +4738,7 @@ static bool8 FrontierSquaresScroll_Erase(struct Task *task) FillBgTilemapBufferRect(0, 1, SQUARE_SIZE * x + MARGIN_SIZE, SQUARE_SIZE * y, SQUARE_SIZE, SQUARE_SIZE, - 0xF); + 15); CopyBgTilemapBufferToVram(0); if (++task->tSquareNum >= (int)ARRAY_COUNT(sFrontierSquaresScroll_Positions)) diff --git a/src/battle_transition_frontier.c b/src/battle_transition_frontier.c index 107e9067d..252721129 100644 --- a/src/battle_transition_frontier.c +++ b/src/battle_transition_frontier.c @@ -226,7 +226,7 @@ static void LoadLogoGfx(void) GetBg0TilesDst(&tilemap, &tileset); LZ77UnCompVram(sLogoCenter_Gfx, tileset); LZ77UnCompVram(sLogoCenter_Tilemap, tilemap); - LoadPalette(sLogo_Pal, BG_PLTT_ID(0xF), sizeof(sLogo_Pal)); + LoadPalette(sLogo_Pal, BG_PLTT_ID(15), sizeof(sLogo_Pal)); LoadCompressedSpriteSheet(&sSpriteSheet_LogoCircles); LoadSpritePalette(&sSpritePalette_LogoCircles); } diff --git a/src/berry_blender.c b/src/berry_blender.c index defc5ac96..c7185dd8e 100644 --- a/src/berry_blender.c +++ b/src/berry_blender.c @@ -338,7 +338,7 @@ static const struct WindowTemplate sWindowTemplates[] = .tilemapTop = 6, .width = 7, .height = 2, - .paletteNum = 0xE, + .paletteNum = 14, .baseBlock = 0x28, }, { @@ -347,7 +347,7 @@ static const struct WindowTemplate sWindowTemplates[] = .tilemapTop = 6, .width = 7, .height = 2, - .paletteNum = 0xE, + .paletteNum = 14, .baseBlock = 0x36, }, { @@ -356,7 +356,7 @@ static const struct WindowTemplate sWindowTemplates[] = .tilemapTop = 12, .width = 7, .height = 2, - .paletteNum = 0xE, + .paletteNum = 14, .baseBlock = 0x44, }, { @@ -365,7 +365,7 @@ static const struct WindowTemplate sWindowTemplates[] = .tilemapTop = 12, .width = 7, .height = 2, - .paletteNum = 0xE, + .paletteNum = 14, .baseBlock = 0x52, }, { @@ -374,7 +374,7 @@ static const struct WindowTemplate sWindowTemplates[] = .tilemapTop = 15, .width = 27, .height = 4, - .paletteNum = 0xE, + .paletteNum = 14, .baseBlock = 0x60, }, { @@ -383,7 +383,7 @@ static const struct WindowTemplate sWindowTemplates[] = .tilemapTop = 3, .width = 21, .height = 14, - .paletteNum = 0xE, + .paletteNum = 14, .baseBlock = 0x60, }, DUMMY_WIN_TEMPLATE @@ -396,7 +396,7 @@ static const struct WindowTemplate sYesNoWindowTemplate_ContinuePlaying = .tilemapTop = 9, .width = 5, .height = 4, - .paletteNum = 0xE, + .paletteNum = 14, .baseBlock = 0xCC }; @@ -926,7 +926,7 @@ static const struct WindowTemplate sBlenderRecordWindowTemplate = .tilemapTop = 4, .width = 18, .height = 11, - .paletteNum = 0xF, + .paletteNum = 15, .baseBlock = 8 }; @@ -959,7 +959,7 @@ static bool8 LoadBerryBlenderGfx(void) case 1: CopyToBgTilemapBuffer(2, sBlenderCenter_Tilemap, 0x400, 0); CopyBgTilemapBufferToVram(2); - LoadPalette(sBlenderCenter_Pal, BG_PLTT_ID(0x0), 8 * PLTT_SIZE_4BPP); + LoadPalette(sBlenderCenter_Pal, BG_PLTT_ID(0), 8 * PLTT_SIZE_4BPP); sBerryBlender->loadGfxState++; break; case 2: @@ -984,7 +984,7 @@ static bool8 LoadBerryBlenderGfx(void) sBerryBlender->loadGfxState++; break; case 7: - LoadPalette(sBlenderOuter_Pal, BG_PLTT_ID(0x8), PLTT_SIZE_4BPP); + LoadPalette(sBlenderOuter_Pal, BG_PLTT_ID(8), PLTT_SIZE_4BPP); sBerryBlender->loadGfxState++; break; case 8: @@ -1065,8 +1065,8 @@ static void CB2_LoadBerryBlender(void) InitBgsFromTemplates(1, sBgTemplates, ARRAY_COUNT(sBgTemplates)); SetBgTilemapBuffer(1, sBerryBlender->tilemapBuffers[0]); SetBgTilemapBuffer(2, sBerryBlender->tilemapBuffers[1]); - LoadUserWindowBorderGfx(0, 1, BG_PLTT_ID(0xD)); - LoadMessageBoxGfx(0, 0x14, BG_PLTT_ID(0xF)); + LoadUserWindowBorderGfx(0, 1, BG_PLTT_ID(13)); + LoadMessageBoxGfx(0, 0x14, BG_PLTT_ID(15)); InitBerryBlenderWindows(); sBerryBlender->mainState++; @@ -1502,8 +1502,8 @@ static void InitBlenderBgs(void) SetBgTilemapBuffer(1, sBerryBlender->tilemapBuffers[0]); SetBgTilemapBuffer(2, sBerryBlender->tilemapBuffers[1]); - LoadUserWindowBorderGfx(0, 1, BG_PLTT_ID(0xD)); - LoadMessageBoxGfx(0, 0x14, BG_PLTT_ID(0xF)); + LoadUserWindowBorderGfx(0, 1, BG_PLTT_ID(13)); + LoadMessageBoxGfx(0, 0x14, BG_PLTT_ID(15)); InitBerryBlenderWindows(); sBerryBlender->unk0 = 0; diff --git a/src/berry_crush.c b/src/berry_crush.c index a100b7235..e5390f591 100755 --- a/src/berry_crush.c +++ b/src/berry_crush.c @@ -473,7 +473,7 @@ static const struct WindowTemplate sWindowTemplate_Rankings = .tilemapTop = 4, .width = 24, .height = 13, - .paletteNum = 0xF, + .paletteNum = 15, .baseBlock = 1 }; @@ -485,7 +485,7 @@ static const struct WindowTemplate sWindowTemplates_PlayerNames[MAX_RFU_PLAYERS .tilemapTop = 0, .width = 9, .height = 2, - .paletteNum = 0x8, + .paletteNum = 8, .baseBlock = 1005 }, { @@ -494,7 +494,7 @@ static const struct WindowTemplate sWindowTemplates_PlayerNames[MAX_RFU_PLAYERS .tilemapTop = 3, .width = 9, .height = 2, - .paletteNum = 0x8, + .paletteNum = 8, .baseBlock = 987 }, { @@ -503,7 +503,7 @@ static const struct WindowTemplate sWindowTemplates_PlayerNames[MAX_RFU_PLAYERS .tilemapTop = 6, .width = 9, .height = 2, - .paletteNum = 0x8, + .paletteNum = 8, .baseBlock = 969 }, { @@ -512,7 +512,7 @@ static const struct WindowTemplate sWindowTemplates_PlayerNames[MAX_RFU_PLAYERS .tilemapTop = 3, .width = 9, .height = 2, - .paletteNum = 0x8, + .paletteNum = 8, .baseBlock = 951 }, { @@ -521,7 +521,7 @@ static const struct WindowTemplate sWindowTemplates_PlayerNames[MAX_RFU_PLAYERS .tilemapTop = 6, .width = 9, .height = 2, - .paletteNum = 0x8, + .paletteNum = 8, .baseBlock = 933 }, DUMMY_WIN_TEMPLATE, @@ -535,7 +535,7 @@ static const struct WindowTemplate sWindowTemplates_Results[] = .tilemapTop = 2, .width = 20, .height = 16, - .paletteNum = 0xF, + .paletteNum = 15, .baseBlock = 1 }, [STATE_RESULTS_RANDOM - RESULTS_STATE_START] = { @@ -544,7 +544,7 @@ static const struct WindowTemplate sWindowTemplates_Results[] = .tilemapTop = 2, .width = 20, .height = 16, - .paletteNum = 0xF, + .paletteNum = 15, .baseBlock = 1 }, [STATE_RESULTS_CRUSHING - RESULTS_STATE_START] = { @@ -553,7 +553,7 @@ static const struct WindowTemplate sWindowTemplates_Results[] = .tilemapTop = 2, .width = 22, .height = 16, - .paletteNum = 0xF, + .paletteNum = 15, .baseBlock = 1 }, DUMMY_WIN_TEMPLATE, @@ -1235,7 +1235,7 @@ static s32 ShowGameDisplay(void) gPaletteFade.bufferTransferDisabled = TRUE; break; case 7: - LoadPalette(gBerryCrush_Crusher_Pal, BG_PLTT_ID(0x0), 12 * PLTT_SIZE_4BPP); + LoadPalette(gBerryCrush_Crusher_Pal, BG_PLTT_ID(0), 12 * PLTT_SIZE_4BPP); CopyToBgTilemapBuffer(1, sCrusherTop_Tilemap, 0, 0); CopyToBgTilemapBuffer(2, sContainerCap_Tilemap, 0, 0); CopyToBgTilemapBuffer(3, sBg_Tilemap, 0, 0); @@ -1751,8 +1751,8 @@ static bool32 OpenResultsWindow(struct BerryCrushGame *game, struct BerryCrushGa FillWindowPixelBuffer(gfx->resultsWindowId, PIXEL_FILL(0)); break; case 2: - LoadUserWindowBorderGfx_(gfx->resultsWindowId, 541, BG_PLTT_ID(0xD)); - DrawStdFrameWithCustomTileAndPalette(gfx->resultsWindowId, FALSE, 541, 0xD); + LoadUserWindowBorderGfx_(gfx->resultsWindowId, 541, BG_PLTT_ID(13)); + DrawStdFrameWithCustomTileAndPalette(gfx->resultsWindowId, FALSE, 541, 13); break; case 3: playerCountIdx = game->playerCount - 2; @@ -1809,8 +1809,8 @@ static void Task_ShowRankings(u8 taskId) tWindowId = AddWindow(&sWindowTemplate_Rankings); PutWindowTilemap(tWindowId); FillWindowPixelBuffer(tWindowId, PIXEL_FILL(0)); - LoadUserWindowBorderGfx_(tWindowId, 541, BG_PLTT_ID(0xD)); - DrawStdFrameWithCustomTileAndPalette(tWindowId, FALSE, 541, 0xD); + LoadUserWindowBorderGfx_(tWindowId, 541, BG_PLTT_ID(13)); + DrawStdFrameWithCustomTileAndPalette(tWindowId, FALSE, 541, 13); break; case 1: // Print header text diff --git a/src/berry_fix_program.c b/src/berry_fix_program.c index 149e5d511..e8c4bc7e6 100644 --- a/src/berry_fix_program.c +++ b/src/berry_fix_program.c @@ -77,7 +77,7 @@ static const struct WindowTemplate sBerryFixWindowTemplates[] = { .tilemapTop = 4, .width = 26, .height = 2, - .paletteNum = 0xF, + .paletteNum = 15, .baseBlock = 1 }, { @@ -86,7 +86,7 @@ static const struct WindowTemplate sBerryFixWindowTemplates[] = { .tilemapTop = 11, .width = 28, .height = 8, - .paletteNum = 0xF, + .paletteNum = 15, .baseBlock = 53 }, { @@ -95,7 +95,7 @@ static const struct WindowTemplate sBerryFixWindowTemplates[] = { .tilemapTop = 8, .width = 30, .height = 2, - .paletteNum = 0xF, + .paletteNum = 15, .baseBlock = 277 }, { @@ -104,7 +104,7 @@ static const struct WindowTemplate sBerryFixWindowTemplates[] = { .tilemapTop = 0, .width = 14, .height = 2, - .paletteNum = 0xF, + .paletteNum = 15, .baseBlock = 337 }, DUMMY_WIN_TEMPLATE diff --git a/src/berry_powder.c b/src/berry_powder.c index 70a8960f7..7066f9d95 100755 --- a/src/berry_powder.c +++ b/src/berry_powder.c @@ -68,7 +68,7 @@ static const struct WindowTemplate sBerryPowderWindowTemplates[] = .tilemapTop = 1, .width = 28, .height = 2, - .paletteNum = 0xD, + .paletteNum = 13, .baseBlock = 19 }, { @@ -77,7 +77,7 @@ static const struct WindowTemplate sBerryPowderWindowTemplates[] = .tilemapTop = 5, .width = 28, .height = 14, - .paletteNum = 0xD, + .paletteNum = 13, .baseBlock = 75 }, { @@ -86,7 +86,7 @@ static const struct WindowTemplate sBerryPowderWindowTemplates[] = .tilemapTop = 5, .width = 28, .height = 7, - .paletteNum = 0xD, + .paletteNum = 13, .baseBlock = 75 }, { @@ -95,7 +95,7 @@ static const struct WindowTemplate sBerryPowderWindowTemplates[] = .tilemapTop = 8, .width = 19, .height = 3, - .paletteNum = 0xD, + .paletteNum = 13, .baseBlock = 19 }, { @@ -104,7 +104,7 @@ static const struct WindowTemplate sBerryPowderWindowTemplates[] = .tilemapTop = 7, .width = 6, .height = 4, - .paletteNum = 0xD, + .paletteNum = 13, .baseBlock = 76 }, { @@ -113,7 +113,7 @@ static const struct WindowTemplate sBerryPowderWindowTemplates[] = .tilemapTop = 6, .width = 22, .height = 5, - .paletteNum = 0xD, + .paletteNum = 13, .baseBlock = 19 }, { @@ -122,7 +122,7 @@ static const struct WindowTemplate sBerryPowderWindowTemplates[] = .tilemapTop = 8, .width = 19, .height = 3, - .paletteNum = 0xD, + .paletteNum = 13, .baseBlock = 19 }, }; @@ -229,7 +229,7 @@ void DisplayBerryPowderVendorMenu(void) sBerryPowderVendorWindowId = AddWindow(&template); FillWindowPixelBuffer(sBerryPowderVendorWindowId, PIXEL_FILL(0)); PutWindowTilemap(sBerryPowderVendorWindowId); - LoadUserWindowBorderGfx_(sBerryPowderVendorWindowId, 0x21D, BG_PLTT_ID(0xD)); + LoadUserWindowBorderGfx_(sBerryPowderVendorWindowId, 0x21D, BG_PLTT_ID(13)); DrawPlayerPowderAmount(sBerryPowderVendorWindowId, 0x21D, 13, GetBerryPowder()); } diff --git a/src/berry_tag_screen.c b/src/berry_tag_screen.c index 70d88b313..6c6d207ba 100644 --- a/src/berry_tag_screen.c +++ b/src/berry_tag_screen.c @@ -108,7 +108,7 @@ static const struct WindowTemplate sWindowTemplates[] = .tilemapTop = 4, .width = 8, .height = 2, - .paletteNum = 0xF, + .paletteNum = 15, .baseBlock = 69, }, { // WIN_SIZE_FIRM @@ -117,7 +117,7 @@ static const struct WindowTemplate sWindowTemplates[] = .tilemapTop = 7, .width = 18, .height = 4, - .paletteNum = 0xF, + .paletteNum = 15, .baseBlock = 85, }, { // WIN_DESC @@ -126,7 +126,7 @@ static const struct WindowTemplate sWindowTemplates[] = .tilemapTop = 14, .width = 25, .height = 4, - .paletteNum = 0xF, + .paletteNum = 15, .baseBlock = 157, }, { // WIN_BERRY_TAG @@ -135,7 +135,7 @@ static const struct WindowTemplate sWindowTemplates[] = .tilemapTop = 0, .width = 8, .height = 2, - .paletteNum = 0xF, + .paletteNum = 15, .baseBlock = 257, }, DUMMY_WIN_TEMPLATE @@ -346,7 +346,7 @@ static bool8 LoadBerryTagGfx(void) sBerryTag->gfxState++; break; case 4: - LoadCompressedPalette(gBerryCheck_Pal, BG_PLTT_ID(0x0), 6 * PLTT_SIZE_4BPP); + LoadCompressedPalette(gBerryCheck_Pal, BG_PLTT_ID(0), 6 * PLTT_SIZE_4BPP); sBerryTag->gfxState++; break; case 5: @@ -367,7 +367,7 @@ static void HandleInitWindows(void) InitWindows(sWindowTemplates); DeactivateAllTextPrinters(); - LoadPalette(sFontPalette, BG_PLTT_ID(0xF), PLTT_SIZE_4BPP); + LoadPalette(sFontPalette, BG_PLTT_ID(15), PLTT_SIZE_4BPP); for (i = 0; i < ARRAY_COUNT(sWindowTemplates) - 1; i++) PutWindowTilemap(i); ScheduleBgCopyTilemapToVram(0); diff --git a/src/cable_car.c b/src/cable_car.c index 8485c2352..700d2175a 100644 --- a/src/cable_car.c +++ b/src/cable_car.c @@ -306,7 +306,7 @@ static void CB2_LoadCableCar(void) case 3: if (!FreeTempTileDataBuffersIfPossible()) { - LoadPalette(gCableCarBg_Pal, BG_PLTT_ID(0x0), 4 * PLTT_SIZE_4BPP); + LoadPalette(gCableCarBg_Pal, BG_PLTT_ID(0), 4 * PLTT_SIZE_4BPP); gMain.state++; } break; diff --git a/src/cable_club.c b/src/cable_club.c index 762bd4ec3..913a1b728 100644 --- a/src/cable_club.c +++ b/src/cable_club.c @@ -41,7 +41,7 @@ static const struct WindowTemplate sWindowTemplate_LinkPlayerCount = { .tilemapTop = 11, .width = 11, .height = 2, - .paletteNum = 0xF, + .paletteNum = 15, .baseBlock = 0x0125, }; diff --git a/src/clear_save_data_screen.c b/src/clear_save_data_screen.c index 42930777b..d9fa23537 100644 --- a/src/clear_save_data_screen.c +++ b/src/clear_save_data_screen.c @@ -52,7 +52,7 @@ static const struct WindowTemplate sClearSaveTextWindow[] = .tilemapTop = 15, .width = 26, .height = 4, - .paletteNum = 0xF, + .paletteNum = 15, .baseBlock = 11, }, DUMMY_WIN_TEMPLATE @@ -66,7 +66,7 @@ static const struct WindowTemplate sClearSaveYesNo[] = .tilemapTop = 2, .width = 5, .height = 4, - .paletteNum = 0xF, + .paletteNum = 15, .baseBlock = 115, } }; @@ -204,6 +204,6 @@ static void InitClearSaveDataScreenWindows(void) InitWindows(sClearSaveTextWindow); DeactivateAllTextPrinters(); FillWindowPixelBuffer(0, PIXEL_FILL(0)); - LoadWindowGfx(0, 0, 2, BG_PLTT_ID(0xE)); - LoadPalette(gStandardMenuPalette, BG_PLTT_ID(0xF), PLTT_SIZE_4BPP); + LoadWindowGfx(0, 0, 2, BG_PLTT_ID(14)); + LoadPalette(gStandardMenuPalette, BG_PLTT_ID(15), PLTT_SIZE_4BPP); } diff --git a/src/contest.c b/src/contest.c index 7a7db4f5f..5bd903e47 100644 --- a/src/contest.c +++ b/src/contest.c @@ -733,7 +733,7 @@ static const struct WindowTemplate sContestWindowTemplates[] = .tilemapTop = 0, .width = 12, .height = 2, - .paletteNum = 0xF, + .paletteNum = 15, .baseBlock = 0x200 }, [WIN_CONTESTANT1_NAME] = { @@ -742,7 +742,7 @@ static const struct WindowTemplate sContestWindowTemplates[] = .tilemapTop = 5, .width = 12, .height = 2, - .paletteNum = 0xF, + .paletteNum = 15, .baseBlock = 0x218 }, [WIN_CONTESTANT2_NAME] = { @@ -751,7 +751,7 @@ static const struct WindowTemplate sContestWindowTemplates[] = .tilemapTop = 10, .width = 12, .height = 2, - .paletteNum = 0xF, + .paletteNum = 15, .baseBlock = 0x230 }, [WIN_CONTESTANT3_NAME] = { @@ -760,7 +760,7 @@ static const struct WindowTemplate sContestWindowTemplates[] = .tilemapTop = 15, .width = 12, .height = 2, - .paletteNum = 0xF, + .paletteNum = 15, .baseBlock = 0x248 }, [WIN_GENERAL_TEXT] = { @@ -769,7 +769,7 @@ static const struct WindowTemplate sContestWindowTemplates[] = .tilemapTop = 15, .width = 17, .height = 4, - .paletteNum = 0xF, + .paletteNum = 15, .baseBlock = 0x260 }, [WIN_MOVE0] = { @@ -778,7 +778,7 @@ static const struct WindowTemplate sContestWindowTemplates[] = .tilemapTop = 31, .width = 9, .height = 2, - .paletteNum = 0xF, + .paletteNum = 15, .baseBlock = 0x2A4 }, [WIN_MOVE1] = { @@ -787,7 +787,7 @@ static const struct WindowTemplate sContestWindowTemplates[] = .tilemapTop = 33, .width = 9, .height = 2, - .paletteNum = 0xF, + .paletteNum = 15, .baseBlock = 0x2B6 }, [WIN_MOVE2] = { @@ -796,7 +796,7 @@ static const struct WindowTemplate sContestWindowTemplates[] = .tilemapTop = 35, .width = 9, .height = 2, - .paletteNum = 0xF, + .paletteNum = 15, .baseBlock = 0x2C8 }, [WIN_MOVE3] = { @@ -805,7 +805,7 @@ static const struct WindowTemplate sContestWindowTemplates[] = .tilemapTop = 37, .width = 9, .height = 2, - .paletteNum = 0xF, + .paletteNum = 15, .baseBlock = 0x2DA }, [WIN_SLASH] = { @@ -814,7 +814,7 @@ static const struct WindowTemplate sContestWindowTemplates[] = .tilemapTop = 31, .width = 1, .height = 2, - .paletteNum = 0xF, + .paletteNum = 15, .baseBlock = 0x2EC }, [WIN_MOVE_DESCRIPTION] = { @@ -823,7 +823,7 @@ static const struct WindowTemplate sContestWindowTemplates[] = .tilemapTop = 35, .width = 18, .height = 4, - .paletteNum = 0xF, + .paletteNum = 15, .baseBlock = 0x2EE }, DUMMY_WIN_TEMPLATE @@ -1038,7 +1038,7 @@ void LoadContestBgAfterMoveAnim(void) { u32 contestantWindowId = 5 + i; - LoadPalette(eContestTempSave.cachedWindowPalettes[contestantWindowId], BG_PLTT_ID(0x5 + gContestantTurnOrder[i]), sizeof((eContestTempSave.cachedWindowPalettes[contestantWindowId]))); + LoadPalette(eContestTempSave.cachedWindowPalettes[contestantWindowId], BG_PLTT_ID(5 + gContestantTurnOrder[i]), sizeof((eContestTempSave.cachedWindowPalettes[contestantWindowId]))); } } @@ -1073,11 +1073,11 @@ static void LoadContestPalettes(void) { s32 i; - LoadPalette(sText_Pal, BG_PLTT_ID(0xF), PLTT_SIZE_4BPP); + LoadPalette(sText_Pal, BG_PLTT_ID(15), PLTT_SIZE_4BPP); SetBackdropFromColor(RGB_BLACK); for (i = 10; i < 14; i++) - LoadPalette(gPlttBufferUnfaded + BG_PLTT_ID(0xF) + 1, BG_PLTT_ID(0xF) + i, PLTT_SIZEOF(1)); - FillPalette(RGB(31, 17, 31), BG_PLTT_ID(0xF) + 3, PLTT_SIZEOF(1)); + LoadPalette(gPlttBufferUnfaded + BG_PLTT_ID(15) + 1, BG_PLTT_ID(15) + i, PLTT_SIZEOF(1)); + FillPalette(RGB(31, 17, 31), BG_PLTT_ID(15) + 3, PLTT_SIZEOF(1)); } static void InitContestResources(void) @@ -1328,10 +1328,10 @@ static bool8 SetupContestGraphics(u8 *stateVar) break; case 5: LoadCompressedPalette(gContestInterfaceAudiencePalette, BG_PLTT_OFFSET, BG_PLTT_SIZE); - CpuCopy32(gPlttBufferUnfaded + BG_PLTT_ID(0x8), tempPalette1, PLTT_SIZE_4BPP); - CpuCopy32(gPlttBufferUnfaded + BG_PLTT_ID(0x5 + gContestPlayerMonIndex), tempPalette2, 16 * sizeof(u16)); - CpuCopy32(tempPalette2, gPlttBufferUnfaded + BG_PLTT_ID(0x8), PLTT_SIZE_4BPP); - CpuCopy32(tempPalette1, gPlttBufferUnfaded + BG_PLTT_ID(0x5 + gContestPlayerMonIndex), PLTT_SIZE_4BPP); + CpuCopy32(gPlttBufferUnfaded + BG_PLTT_ID(8), tempPalette1, PLTT_SIZE_4BPP); + CpuCopy32(gPlttBufferUnfaded + BG_PLTT_ID(5 + gContestPlayerMonIndex), tempPalette2, PLTT_SIZE_4BPP); + CpuCopy32(tempPalette2, gPlttBufferUnfaded + BG_PLTT_ID(8), PLTT_SIZE_4BPP); + CpuCopy32(tempPalette1, gPlttBufferUnfaded + BG_PLTT_ID(5 + gContestPlayerMonIndex), PLTT_SIZE_4BPP); DmaCopy32Defvars(3, gPlttBufferUnfaded, eContestTempSave.cachedWindowPalettes, sizeof(eContestTempSave.cachedWindowPalettes)); LoadContestPalettes(); break; @@ -3097,7 +3097,7 @@ static u8 CreateJudgeSprite(void) u8 spriteId; LoadCompressedSpriteSheet(&sSpriteSheet_Judge); - LoadCompressedPalette(gContest2Pal, OBJ_PLTT_ID(0x1), PLTT_SIZE_4BPP); + LoadCompressedPalette(gContest2Pal, OBJ_PLTT_ID(1), PLTT_SIZE_4BPP); spriteId = CreateSprite(&sSpriteTemplate_Judge, 112, 36, 30); gSprites[spriteId].oam.paletteNum = 1; gSprites[spriteId].callback = SpriteCallbackDummy; @@ -3126,7 +3126,7 @@ static u8 CreateContestantSprite(u16 species, u32 otId, u32 personality, u32 ind else HandleLoadSpecialPokePic_DontHandleDeoxys(&gMonBackPicTable[species], gMonSpritesGfxPtr->sprites.ptr[B_POSITION_PLAYER_LEFT], species, personality); - LoadCompressedPalette(GetMonSpritePalFromSpeciesAndPersonality(species, otId, personality), OBJ_PLTT_ID(0x2), PLTT_SIZE_4BPP); + LoadCompressedPalette(GetMonSpritePalFromSpeciesAndPersonality(species, otId, personality), OBJ_PLTT_ID(2), PLTT_SIZE_4BPP); SetMultiuseSpriteTemplateToPokemon(species, B_POSITION_PLAYER_LEFT); spriteId = CreateSprite(&gMultiuseSpriteTemplate, 0x70, GetBattlerSpriteFinal_Y(2, species, FALSE), 30); @@ -3997,7 +3997,7 @@ static void Task_StopFlashJudgeAttentionEye(u8 taskId) { gTasks[eContest.judgeAttentionTaskId].data[contestant * 4 + 0] = 0xFF; gTasks[eContest.judgeAttentionTaskId].data[contestant * 4 + 1] = 0; - BlendPalette(BG_PLTT_ID(0x5 + eContest.prevTurnOrder[contestant]) + 6, 2, 0, RGB(31, 31, 18)); + BlendPalette(BG_PLTT_ID(5 + eContest.prevTurnOrder[contestant]) + 6, 2, 0, RGB(31, 31, 18)); DestroyTask(taskId); } } @@ -4021,7 +4021,7 @@ static void Task_FlashJudgeAttentionEye(u8 taskId) || gTasks[taskId].data[offset + 0] == 0) gTasks[taskId].data[offset + 1] ^= 1; - BlendPalette(BG_PLTT_ID(0x5 + eContest.prevTurnOrder[i]) + 6, 2, gTasks[taskId].data[offset + 0], RGB(31, 31, 18)); + BlendPalette(BG_PLTT_ID(5 + eContest.prevTurnOrder[i]) + 6, 2, gTasks[taskId].data[offset + 0], RGB(31, 31, 18)); } } } @@ -4100,8 +4100,8 @@ static void Task_UnusedBlend(u8 taskId) || gTasks[taskId].data[idx] == 0) gTasks[taskId].data[idx + 1] ^= 1; - BlendPalette(BG_PLTT_ID(0x5 + i) + 10, 1, gTasks[taskId].data[idx + 0], RGB(31, 31, 18)); - BlendPalette(BG_PLTT_ID(0x5 + i) + 12 + i, 1, gTasks[taskId].data[idx + 0], RGB(31, 31, 18)); + BlendPalette(BG_PLTT_ID(5 + i) + 10, 1, gTasks[taskId].data[idx + 0], RGB(31, 31, 18)); + BlendPalette(BG_PLTT_ID(5 + i) + 12 + i, 1, gTasks[taskId].data[idx + 0], RGB(31, 31, 18)); } } } @@ -4414,7 +4414,7 @@ static void DrawContestantWindows(void) for (i = 0; i < CONTESTANT_COUNT; i++) { s32 windowId = i + 5; - LoadPalette(eContestTempSave.cachedWindowPalettes[windowId], BG_PLTT_ID(0x5 + gContestantTurnOrder[i]), sizeof(eContestTempSave.cachedWindowPalettes[0])); + LoadPalette(eContestTempSave.cachedWindowPalettes[windowId], BG_PLTT_ID(5 + gContestantTurnOrder[i]), sizeof(eContestTempSave.cachedWindowPalettes[0])); } DrawContestantWindowText(); } @@ -4992,8 +4992,8 @@ static void Task_BlendAudienceBackground(u8 taskId) else gTasks[taskId].tBlendCoeff--; - BlendPalette(BG_PLTT_ID(0x1) + 1, 1, gTasks[taskId].tBlendCoeff, gTasks[taskId].tBlendColor); - BlendPalette(BG_PLTT_ID(0x1) + 10, 1, gTasks[taskId].tBlendCoeff, gTasks[taskId].tBlendColor); + BlendPalette(BG_PLTT_ID(1) + 1, 1, gTasks[taskId].tBlendCoeff, gTasks[taskId].tBlendColor); + BlendPalette(BG_PLTT_ID(1) + 10, 1, gTasks[taskId].tBlendCoeff, gTasks[taskId].tBlendColor); if (gTasks[taskId].tBlendCoeff == gTasks[taskId].tTargetBlendCoeff) { diff --git a/src/contest_painting.c b/src/contest_painting.c index d995749bb..a1a8a5197 100644 --- a/src/contest_painting.c +++ b/src/contest_painting.c @@ -121,7 +121,7 @@ static const struct WindowTemplate sWindowTemplate = .tilemapTop = 14, .width = 26, .height = 4, - .paletteNum = 0xF, + .paletteNum = 15, .baseBlock = 1, }; @@ -420,7 +420,7 @@ static void LoadContestPaintingFrame(u8 contestWinnerId, bool8 isForArtist) { u8 x, y; - LoadPalette(sPictureFramePalettes, BG_PLTT_ID(0x0), 8 * PLTT_SIZE_4BPP); + LoadPalette(sPictureFramePalettes, BG_PLTT_ID(0), 8 * PLTT_SIZE_4BPP); if (isForArtist == TRUE) { // Load Artist's frame @@ -586,7 +586,7 @@ static void DoContestPaintingImageProcessing(u8 imageEffect) ApplyImageProcessingEffects(&gImageProcessingContext); ApplyImageProcessingQuantization(&gImageProcessingContext); ConvertImageProcessingToGBA(&gImageProcessingContext); - LoadPalette(gContestPaintingMonPalette, OBJ_PLTT_ID(0x0), 16 * PLTT_SIZE_4BPP); + LoadPalette(gContestPaintingMonPalette, OBJ_PLTT_ID(0), 16 * PLTT_SIZE_4BPP); } static void CreateContestPaintingPicture(u8 contestWinnerId, bool8 isForArtist) diff --git a/src/contest_util.c b/src/contest_util.c index bbb4ba5bd..5a0025329 100644 --- a/src/contest_util.c +++ b/src/contest_util.c @@ -327,7 +327,7 @@ static const struct WindowTemplate sWindowTemplates[] = .tilemapTop = 4, .width = 12, .height = 2, - .paletteNum = 0xF, + .paletteNum = 15, .baseBlock = 770 }, { @@ -336,7 +336,7 @@ static const struct WindowTemplate sWindowTemplates[] = .tilemapTop = 7, .width = 12, .height = 2, - .paletteNum = 0xF, + .paletteNum = 15, .baseBlock = 794 }, { @@ -345,7 +345,7 @@ static const struct WindowTemplate sWindowTemplates[] = .tilemapTop = 10, .width = 12, .height = 2, - .paletteNum = 0xF, + .paletteNum = 15, .baseBlock = 818 }, { @@ -354,7 +354,7 @@ static const struct WindowTemplate sWindowTemplates[] = .tilemapTop = 13, .width = 12, .height = 2, - .paletteNum = 0xF, + .paletteNum = 15, .baseBlock = 842 }, DUMMY_WIN_TEMPLATE, @@ -455,8 +455,8 @@ static void LoadContestResultsBgGfx(void) CopyToBgTilemapBuffer(2, gContestResults_Interface_Tilemap, 0, 0); CopyToBgTilemapBuffer(0, gContestResults_WinnerBanner_Tilemap, 0, 0); LoadContestResultsTitleBarTilemaps(); - LoadCompressedPalette(gContestResults_Pal, BG_PLTT_ID(0x0), 16 * PLTT_SIZE_4BPP); - LoadPalette(sResultsTextWindow_Pal, BG_PLTT_ID(0xF), sizeof(sResultsTextWindow_Pal)); + LoadCompressedPalette(gContestResults_Pal, BG_PLTT_ID(0), 16 * PLTT_SIZE_4BPP); + LoadPalette(sResultsTextWindow_Pal, BG_PLTT_ID(15), sizeof(sResultsTextWindow_Pal)); for (i = 0; i < CONTESTANT_COUNT; i++) { @@ -1092,9 +1092,9 @@ static void Task_FlashStarsAndHearts(u8 taskId) else if (gTasks[taskId].tCoeff == 0) gTasks[taskId].tDecreasing = FALSE; - BlendPalette(BG_PLTT_ID(0x6) + 11, 1, gTasks[taskId].tCoeff, RGB(30, 22, 11)); - BlendPalette(BG_PLTT_ID(0x6) + 8, 1, gTasks[taskId].tCoeff, RGB_WHITE); - BlendPalette(BG_PLTT_ID(0x6) + 14, 1, gTasks[taskId].tCoeff, RGB(30, 29, 29)); + BlendPalette(BG_PLTT_ID(6) + 11, 1, gTasks[taskId].tCoeff, RGB(30, 22, 11)); + BlendPalette(BG_PLTT_ID(6) + 8, 1, gTasks[taskId].tCoeff, RGB_WHITE); + BlendPalette(BG_PLTT_ID(6) + 14, 1, gTasks[taskId].tCoeff, RGB(30, 29, 29)); } if (gTasks[taskId].tCoeff == 0) @@ -1143,7 +1143,7 @@ static void LoadAllContestMonIconPalettes(void) for (i = 0; i < CONTESTANT_COUNT; i++) { species = gContestMons[i].species; - LoadPalette(gMonIconPalettes[gMonIconPaletteIndices[GetIconSpecies(species, 0)]], BG_PLTT_ID(0xA + i), PLTT_SIZE_4BPP); + LoadPalette(gMonIconPalettes[gMonIconPaletteIndices[GetIconSpecies(species, 0)]], BG_PLTT_ID(10 + i), PLTT_SIZE_4BPP); } } @@ -1561,7 +1561,7 @@ static void Task_HighlightWinnersBox(u8 taskId) if (++gTasks[taskId].data[11] == 1) { gTasks[taskId].data[11] = 0; - BlendPalette(BG_PLTT_ID(0x9) + 1, 1, gTasks[taskId].data[12], RGB(13, 28, 27)); + BlendPalette(BG_PLTT_ID(9) + 1, 1, gTasks[taskId].data[12], RGB(13, 28, 27)); if (gTasks[taskId].data[13] == 0) { if (++gTasks[taskId].data[12] == 16) @@ -2525,16 +2525,16 @@ void LoadLinkContestPlayerPalettes(void) if (version == VERSION_RUBY || version == VERSION_SAPPHIRE) { if (gLinkPlayers[i].gender == MALE) - LoadPalette(gObjectEventPal_RubySapphireBrendan, OBJ_PLTT_ID(0x6 + i), PLTT_SIZE_4BPP); + LoadPalette(gObjectEventPal_RubySapphireBrendan, OBJ_PLTT_ID(6 + i), PLTT_SIZE_4BPP); else - LoadPalette(gObjectEventPal_RubySapphireMay, OBJ_PLTT_ID(0x6 + i), PLTT_SIZE_4BPP); + LoadPalette(gObjectEventPal_RubySapphireMay, OBJ_PLTT_ID(6 + i), PLTT_SIZE_4BPP); } else { if (gLinkPlayers[i].gender == MALE) - LoadPalette(gObjectEventPal_Brendan, OBJ_PLTT_ID(0x6 + i), PLTT_SIZE_4BPP); + LoadPalette(gObjectEventPal_Brendan, OBJ_PLTT_ID(6 + i), PLTT_SIZE_4BPP); else - LoadPalette(gObjectEventPal_May, OBJ_PLTT_ID(0x6 + i), PLTT_SIZE_4BPP); + LoadPalette(gObjectEventPal_May, OBJ_PLTT_ID(6 + i), PLTT_SIZE_4BPP); } } } diff --git a/src/credits.c b/src/credits.c index 0764e185d..16c9152da 100644 --- a/src/credits.c +++ b/src/credits.c @@ -185,7 +185,7 @@ static const struct WindowTemplate sWindowTemplates[] = .tilemapTop = 9, .width = 30, .height = 12, - .paletteNum = 0x8, + .paletteNum = 8, .baseBlock = 1 }, DUMMY_WIN_TEMPLATE, @@ -365,7 +365,7 @@ static void InitCreditsBgsAndWindows(void) ResetBgsAndClearDma3BusyFlags(0); InitBgsFromTemplates(0, sBackgroundTemplates, ARRAY_COUNT(sBackgroundTemplates)); SetBgTilemapBuffer(0, AllocZeroed(BG_SCREEN_SIZE)); - LoadPalette(sCredits_Pal, BG_PLTT_ID(0x8), 2 * PLTT_SIZE_4BPP); + LoadPalette(sCredits_Pal, BG_PLTT_ID(8), 2 * PLTT_SIZE_4BPP); InitWindows(sWindowTemplates); DeactivateAllTextPrinters(); PutWindowTilemap(0); @@ -549,7 +549,7 @@ static void Task_LoadShowMons(u8 taskId) gReservedSpritePaletteCount = 8; LZ77UnCompVram(gBirchHelpGfx, (void *)VRAM); LZ77UnCompVram(gBirchGrassTilemap, (void *)(BG_SCREEN_ADDR(7))); - LoadPalette(gBirchBagGrassPal[0] + 1, BG_PLTT_ID(0x0) + 1, PLTT_SIZEOF(2 * 16 - 1)); + LoadPalette(gBirchBagGrassPal[0] + 1, BG_PLTT_ID(0) + 1, PLTT_SIZEOF(2 * 16 - 1)); for (i = 0; i < MON_PIC_SIZE; i++) gDecompressionBuffer[i] = 0x11; @@ -624,7 +624,7 @@ static void Task_CreditsTheEnd3(u8 taskId) { ResetGpuAndVram(); ResetPaletteFade(); - LoadTheEndScreen(0, 0x3800, BG_PLTT_ID(0x0)); + LoadTheEndScreen(0, 0x3800, BG_PLTT_ID(0)); ResetSpriteData(); FreeAllSpritePalettes(); BeginNormalPaletteFade(PALETTES_ALL, 8, 16, 0, RGB_BLACK); diff --git a/src/data/party_menu.h b/src/data/party_menu.h index a3cf30fc1..fdceb9b7d 100644 --- a/src/data/party_menu.h +++ b/src/data/party_menu.h @@ -140,7 +140,7 @@ static const struct WindowTemplate sSinglePartyMenuWindowTemplate[] = .tilemapTop = 3, .width = 10, .height = 7, - .paletteNum = 0x3, + .paletteNum = 3, .baseBlock = 0x63, }, { @@ -149,7 +149,7 @@ static const struct WindowTemplate sSinglePartyMenuWindowTemplate[] = .tilemapTop = 1, .width = 18, .height = 3, - .paletteNum = 0x4, + .paletteNum = 4, .baseBlock = 0xA9, }, { @@ -158,7 +158,7 @@ static const struct WindowTemplate sSinglePartyMenuWindowTemplate[] = .tilemapTop = 4, .width = 18, .height = 3, - .paletteNum = 0x5, + .paletteNum = 5, .baseBlock = 0xDF, }, { @@ -167,7 +167,7 @@ static const struct WindowTemplate sSinglePartyMenuWindowTemplate[] = .tilemapTop = 7, .width = 18, .height = 3, - .paletteNum = 0x6, + .paletteNum = 6, .baseBlock = 0x115, }, { @@ -176,7 +176,7 @@ static const struct WindowTemplate sSinglePartyMenuWindowTemplate[] = .tilemapTop = 10, .width = 18, .height = 3, - .paletteNum = 0x7, + .paletteNum = 7, .baseBlock = 0x14B, }, { @@ -185,7 +185,7 @@ static const struct WindowTemplate sSinglePartyMenuWindowTemplate[] = .tilemapTop = 13, .width = 18, .height = 3, - .paletteNum = 0x8, + .paletteNum = 8, .baseBlock = 0x181, }, { @@ -194,7 +194,7 @@ static const struct WindowTemplate sSinglePartyMenuWindowTemplate[] = .tilemapTop = 15, .width = 28, .height = 4, - .paletteNum = 0xE, + .paletteNum = 14, .baseBlock = 0x1DF, }, DUMMY_WIN_TEMPLATE @@ -208,7 +208,7 @@ static const struct WindowTemplate sDoublePartyMenuWindowTemplate[] = .tilemapTop = 1, .width = 10, .height = 7, - .paletteNum = 0x3, + .paletteNum = 3, .baseBlock = 0x63, }, { @@ -217,7 +217,7 @@ static const struct WindowTemplate sDoublePartyMenuWindowTemplate[] = .tilemapTop = 8, .width = 10, .height = 7, - .paletteNum = 0x4, + .paletteNum = 4, .baseBlock = 0xA9, }, { @@ -226,7 +226,7 @@ static const struct WindowTemplate sDoublePartyMenuWindowTemplate[] = .tilemapTop = 1, .width = 18, .height = 3, - .paletteNum = 0x5, + .paletteNum = 5, .baseBlock = 0xEF, }, { @@ -235,7 +235,7 @@ static const struct WindowTemplate sDoublePartyMenuWindowTemplate[] = .tilemapTop = 5, .width = 18, .height = 3, - .paletteNum = 0x6, + .paletteNum = 6, .baseBlock = 0x125, }, { @@ -244,7 +244,7 @@ static const struct WindowTemplate sDoublePartyMenuWindowTemplate[] = .tilemapTop = 9, .width = 18, .height = 3, - .paletteNum = 0x7, + .paletteNum = 7, .baseBlock = 0x15B, }, { @@ -253,7 +253,7 @@ static const struct WindowTemplate sDoublePartyMenuWindowTemplate[] = .tilemapTop = 13, .width = 18, .height = 3, - .paletteNum = 0x8, + .paletteNum = 8, .baseBlock = 0x191, }, { @@ -262,7 +262,7 @@ static const struct WindowTemplate sDoublePartyMenuWindowTemplate[] = .tilemapTop = 15, .width = 28, .height = 4, - .paletteNum = 0xE, + .paletteNum = 14, .baseBlock = 0x1DF, }, DUMMY_WIN_TEMPLATE @@ -276,7 +276,7 @@ static const struct WindowTemplate sMultiPartyMenuWindowTemplate[] = .tilemapTop = 1, .width = 10, .height = 7, - .paletteNum = 0x3, + .paletteNum = 3, .baseBlock = 0x63, }, { @@ -285,7 +285,7 @@ static const struct WindowTemplate sMultiPartyMenuWindowTemplate[] = .tilemapTop = 8, .width = 10, .height = 7, - .paletteNum = 0x4, + .paletteNum = 4, .baseBlock = 0xA9, }, { @@ -294,7 +294,7 @@ static const struct WindowTemplate sMultiPartyMenuWindowTemplate[] = .tilemapTop = 2, .width = 18, .height = 3, - .paletteNum = 0x5, + .paletteNum = 5, .baseBlock = 0xEF, }, { @@ -303,7 +303,7 @@ static const struct WindowTemplate sMultiPartyMenuWindowTemplate[] = .tilemapTop = 5, .width = 18, .height = 3, - .paletteNum = 0x6, + .paletteNum = 6, .baseBlock = 0x125, }, { @@ -312,7 +312,7 @@ static const struct WindowTemplate sMultiPartyMenuWindowTemplate[] = .tilemapTop = 9, .width = 18, .height = 3, - .paletteNum = 0x7, + .paletteNum = 7, .baseBlock = 0x15B, }, { @@ -321,7 +321,7 @@ static const struct WindowTemplate sMultiPartyMenuWindowTemplate[] = .tilemapTop = 12, .width = 18, .height = 3, - .paletteNum = 0x8, + .paletteNum = 8, .baseBlock = 0x191, }, { @@ -330,7 +330,7 @@ static const struct WindowTemplate sMultiPartyMenuWindowTemplate[] = .tilemapTop = 15, .width = 28, .height = 4, - .paletteNum = 0xE, + .paletteNum = 14, .baseBlock = 0x1DF, }, DUMMY_WIN_TEMPLATE @@ -344,7 +344,7 @@ static const struct WindowTemplate sShowcaseMultiPartyMenuWindowTemplate[] = .tilemapTop = 2, .width = 10, .height = 7, - .paletteNum = 0x3, + .paletteNum = 3, .baseBlock = 0x63, }, { @@ -353,7 +353,7 @@ static const struct WindowTemplate sShowcaseMultiPartyMenuWindowTemplate[] = .tilemapTop = 3, .width = 18, .height = 3, - .paletteNum = 0x5, + .paletteNum = 5, .baseBlock = 0xA9, }, { @@ -362,7 +362,7 @@ static const struct WindowTemplate sShowcaseMultiPartyMenuWindowTemplate[] = .tilemapTop = 6, .width = 18, .height = 3, - .paletteNum = 0x6, + .paletteNum = 6, .baseBlock = 0xDF, }, { @@ -371,7 +371,7 @@ static const struct WindowTemplate sShowcaseMultiPartyMenuWindowTemplate[] = .tilemapTop = 11, .width = 10, .height = 7, - .paletteNum = 0x4, + .paletteNum = 4, .baseBlock = 0x115, }, { @@ -380,7 +380,7 @@ static const struct WindowTemplate sShowcaseMultiPartyMenuWindowTemplate[] = .tilemapTop = 12, .width = 18, .height = 3, - .paletteNum = 0x7, + .paletteNum = 7, .baseBlock = 0x16B, }, { @@ -389,7 +389,7 @@ static const struct WindowTemplate sShowcaseMultiPartyMenuWindowTemplate[] = .tilemapTop = 15, .width = 18, .height = 3, - .paletteNum = 0x8, + .paletteNum = 8, .baseBlock = 0x1A1, }, DUMMY_WIN_TEMPLATE @@ -402,7 +402,7 @@ static const struct WindowTemplate sCancelButtonWindowTemplate = .tilemapTop = 17, .width = 6, .height = 2, - .paletteNum = 0x3, + .paletteNum = 3, .baseBlock = 0x1C7, }; @@ -413,7 +413,7 @@ static const struct WindowTemplate sMultiCancelButtonWindowTemplate = .tilemapTop = 18, .width = 6, .height = 2, - .paletteNum = 0x3, + .paletteNum = 3, .baseBlock = 0x1C7, }; @@ -424,7 +424,7 @@ static const struct WindowTemplate sConfirmButtonWindowTemplate = .tilemapTop = 16, .width = 6, .height = 2, - .paletteNum = 0x3, + .paletteNum = 3, .baseBlock = 0x1D3, }; @@ -435,7 +435,7 @@ static const struct WindowTemplate sDefaultPartyMsgWindowTemplate = .tilemapTop = 17, .width = 21, .height = 2, - .paletteNum = 0xF, + .paletteNum = 15, .baseBlock = 0x24F, }; @@ -446,7 +446,7 @@ static const struct WindowTemplate sDoWhatWithMonMsgWindowTemplate = .tilemapTop = 17, .width = 16, .height = 2, - .paletteNum = 0xF, + .paletteNum = 15, .baseBlock = 0x279, }; @@ -457,7 +457,7 @@ static const struct WindowTemplate sDoWhatWithItemMsgWindowTemplate = .tilemapTop = 17, .width = 20, .height = 2, - .paletteNum = 0xF, + .paletteNum = 15, .baseBlock = 0x299, }; @@ -468,7 +468,7 @@ static const struct WindowTemplate sDoWhatWithMailMsgWindowTemplate = .tilemapTop = 17, .width = 18, .height = 2, - .paletteNum = 0xF, + .paletteNum = 15, .baseBlock = 0x299, }; @@ -479,7 +479,7 @@ static const struct WindowTemplate sWhichMoveMsgWindowTemplate = .tilemapTop = 17, .width = 16, .height = 2, - .paletteNum = 0xF, + .paletteNum = 15, .baseBlock = 0x299, }; @@ -490,7 +490,7 @@ static const struct WindowTemplate sAlreadyHoldingOneMsgWindowTemplate = .tilemapTop = 15, .width = 20, .height = 4, - .paletteNum = 0xF, + .paletteNum = 15, .baseBlock = 0x299, }; @@ -501,7 +501,7 @@ static const struct WindowTemplate sItemGiveTakeWindowTemplate = .tilemapTop = 13, .width = 6, .height = 6, - .paletteNum = 0xE, + .paletteNum = 14, .baseBlock = 0x39D, }; @@ -512,7 +512,7 @@ static const struct WindowTemplate sMailReadTakeWindowTemplate = .tilemapTop = 13, .width = 8, .height = 6, - .paletteNum = 0xE, + .paletteNum = 14, .baseBlock = 0x39D, }; @@ -523,7 +523,7 @@ static const struct WindowTemplate sMoveSelectWindowTemplate = .tilemapTop = 11, .width = 10, .height = 8, - .paletteNum = 0xE, + .paletteNum = 14, .baseBlock = 0x2E9, }; @@ -534,7 +534,7 @@ static const struct WindowTemplate sPartyMenuYesNoWindowTemplate = .tilemapTop = 9, .width = 5, .height = 4, - .paletteNum = 0xE, + .paletteNum = 14, .baseBlock = 0x2E9, }; @@ -545,7 +545,7 @@ static const struct WindowTemplate sLevelUpStatsWindowTemplate = .tilemapTop = 1, .width = 10, .height = 11, - .paletteNum = 0xE, + .paletteNum = 14, .baseBlock = 0x2E9, }; @@ -556,7 +556,7 @@ static const struct WindowTemplate sUnusedWindowTemplate1 = .tilemapTop = 15, .width = 27, .height = 4, - .paletteNum = 0xE, + .paletteNum = 14, .baseBlock = 0x1DF, }; @@ -567,7 +567,7 @@ static const struct WindowTemplate sUnusedWindowTemplate2 = .tilemapTop = 13, .width = 18, .height = 3, - .paletteNum = 0xC, + .paletteNum = 12, .baseBlock = 0x39D, }; diff --git a/src/data/trade.h b/src/data/trade.h index 9cf4955bc..80d17a49b 100644 --- a/src/data/trade.h +++ b/src/data/trade.h @@ -463,7 +463,7 @@ static const struct WindowTemplate sTradeMenuWindowTemplates[] = .tilemapTop = 7, .width = 22, .height = 4, - .paletteNum = 0xF, + .paletteNum = 15, .baseBlock = 30 }, { @@ -472,7 +472,7 @@ static const struct WindowTemplate sTradeMenuWindowTemplates[] = .tilemapTop = 15, .width = 10, .height = 4, - .paletteNum = 0xF, + .paletteNum = 15, .baseBlock = 118 }, { @@ -481,7 +481,7 @@ static const struct WindowTemplate sTradeMenuWindowTemplates[] = .tilemapTop = 5, .width = 8, .height = 2, - .paletteNum = 0xD, + .paletteNum = 13, .baseBlock = 158 }, { @@ -490,7 +490,7 @@ static const struct WindowTemplate sTradeMenuWindowTemplates[] = .tilemapTop = 5, .width = 8, .height = 2, - .paletteNum = 0xD, + .paletteNum = 13, .baseBlock = 174 }, { @@ -499,7 +499,7 @@ static const struct WindowTemplate sTradeMenuWindowTemplates[] = .tilemapTop = 10, .width = 8, .height = 2, - .paletteNum = 0xD, + .paletteNum = 13, .baseBlock = 190 }, { @@ -508,7 +508,7 @@ static const struct WindowTemplate sTradeMenuWindowTemplates[] = .tilemapTop = 10, .width = 8, .height = 2, - .paletteNum = 0xD, + .paletteNum = 13, .baseBlock = 206 }, { @@ -517,7 +517,7 @@ static const struct WindowTemplate sTradeMenuWindowTemplates[] = .tilemapTop = 15, .width = 8, .height = 2, - .paletteNum = 0xD, + .paletteNum = 13, .baseBlock = 222 }, { @@ -526,7 +526,7 @@ static const struct WindowTemplate sTradeMenuWindowTemplates[] = .tilemapTop = 15, .width = 8, .height = 2, - .paletteNum = 0xD, + .paletteNum = 13, .baseBlock = 238 }, { @@ -535,7 +535,7 @@ static const struct WindowTemplate sTradeMenuWindowTemplates[] = .tilemapTop = 5, .width = 8, .height = 2, - .paletteNum = 0xD, + .paletteNum = 13, .baseBlock = 254 }, { @@ -544,7 +544,7 @@ static const struct WindowTemplate sTradeMenuWindowTemplates[] = .tilemapTop = 5, .width = 8, .height = 2, - .paletteNum = 0xD, + .paletteNum = 13, .baseBlock = 270 }, { @@ -553,7 +553,7 @@ static const struct WindowTemplate sTradeMenuWindowTemplates[] = .tilemapTop = 10, .width = 8, .height = 2, - .paletteNum = 0xD, + .paletteNum = 13, .baseBlock = 286 }, { @@ -562,7 +562,7 @@ static const struct WindowTemplate sTradeMenuWindowTemplates[] = .tilemapTop = 10, .width = 8, .height = 2, - .paletteNum = 0xD, + .paletteNum = 13, .baseBlock = 302 }, { @@ -571,7 +571,7 @@ static const struct WindowTemplate sTradeMenuWindowTemplates[] = .tilemapTop = 15, .width = 8, .height = 2, - .paletteNum = 0xD, + .paletteNum = 13, .baseBlock = 318 }, { @@ -580,7 +580,7 @@ static const struct WindowTemplate sTradeMenuWindowTemplates[] = .tilemapTop = 15, .width = 8, .height = 2, - .paletteNum = 0xD, + .paletteNum = 13, .baseBlock = 334 }, { @@ -589,7 +589,7 @@ static const struct WindowTemplate sTradeMenuWindowTemplates[] = .tilemapTop = 5, .width = 14, .height = 2, - .paletteNum = 0xD, + .paletteNum = 13, .baseBlock = 350 }, { @@ -598,7 +598,7 @@ static const struct WindowTemplate sTradeMenuWindowTemplates[] = .tilemapTop = 8, .width = 11, .height = 8, - .paletteNum = 0xF, + .paletteNum = 15, .baseBlock = 378 }, { @@ -607,7 +607,7 @@ static const struct WindowTemplate sTradeMenuWindowTemplates[] = .tilemapTop = 5, .width = 14, .height = 2, - .paletteNum = 0xF, + .paletteNum = 15, .baseBlock = 466 }, { @@ -616,7 +616,7 @@ static const struct WindowTemplate sTradeMenuWindowTemplates[] = .tilemapTop = 8, .width = 11, .height = 8, - .paletteNum = 0xF, + .paletteNum = 15, .baseBlock = 494 }, DUMMY_WIN_TEMPLATE, @@ -629,7 +629,7 @@ static const struct WindowTemplate sTradeYesNoWindowTemplate = .tilemapTop = 13, .width = 5, .height = 4, - .paletteNum = 0xF, + .paletteNum = 15, .baseBlock = 582 }; @@ -1112,7 +1112,7 @@ static const struct WindowTemplate sTradeSequenceWindowTemplates[] = .tilemapTop = 15, .width = 26, .height = 4, - .paletteNum = 0x0, + .paletteNum = 0, .baseBlock = 64 }, DUMMY_WIN_TEMPLATE @@ -1125,7 +1125,7 @@ const struct WindowTemplate gTradeEvolutionSceneYesNoWindowTemplate = .tilemapTop = 9, .width = 5, .height = 4, - .paletteNum = 0xF, + .paletteNum = 15, .baseBlock = 188 }; diff --git a/src/data/union_room.h b/src/data/union_room.h index 804a8435f..cf4b12b5d 100644 --- a/src/data/union_room.h +++ b/src/data/union_room.h @@ -627,7 +627,7 @@ static const struct WindowTemplate sWindowTemplate_BButtonCancel = { .tilemapTop = 0, .width = 30, .height = 2, - .paletteNum = 0xF, + .paletteNum = 15, .baseBlock = 0x0008 }; @@ -669,7 +669,7 @@ static const struct WindowTemplate sWindowTemplate_PlayerList = { .tilemapTop = 3, .width = 13, .height = 8, - .paletteNum = 0xF, + .paletteNum = 15, .baseBlock = 0x0044 }; @@ -679,7 +679,7 @@ static const struct WindowTemplate sWindowTemplate_5PlayerList = { .tilemapTop = 3, .width = 13, .height = 10, - .paletteNum = 0xF, + .paletteNum = 15, .baseBlock = 0x0044 }; @@ -689,7 +689,7 @@ static const struct WindowTemplate sWindowTemplate_NumPlayerMode = { .tilemapTop = 3, .width = 7, .height = 4, - .paletteNum = 0xF, + .paletteNum = 15, .baseBlock = 0x00c6 }; @@ -728,7 +728,7 @@ static const struct WindowTemplate sWindowTemplate_GroupList = { .tilemapTop = 3, .width = 17, .height = 10, - .paletteNum = 0xF, + .paletteNum = 15, .baseBlock = 0x0044 }; @@ -738,7 +738,7 @@ static const struct WindowTemplate sWindowTemplate_PlayerNameAndId = { .tilemapTop = 3, .width = 7, .height = 4, - .paletteNum = 0xF, + .paletteNum = 15, .baseBlock = 0x00ee }; @@ -788,7 +788,7 @@ static const struct WindowTemplate sWindowTemplate_InviteToActivity = { .tilemapTop = 5, .width = 16, .height = 8, - .paletteNum = 0xF, + .paletteNum = 15, .baseBlock = 0x0001 }; @@ -826,7 +826,7 @@ static const struct WindowTemplate sWindowTemplate_RegisterForTrade = { .tilemapTop = 7, .width = 16, .height = 6, - .paletteNum = 0xF, + .paletteNum = 15, .baseBlock = 0x0001 }; @@ -863,7 +863,7 @@ static const struct WindowTemplate sWindowTemplate_TradingBoardRequestType = { .tilemapTop = 1, .width = 16, .height = 12, - .paletteNum = 0xF, + .paletteNum = 15, .baseBlock = 0x0001 }; @@ -915,7 +915,7 @@ static const struct WindowTemplate sWindowTemplate_TradingBoardHeader = { .tilemapTop = 1, .width = 28, .height = 2, - .paletteNum = 0xD, + .paletteNum = 13, .baseBlock = 0x0001 }; @@ -925,7 +925,7 @@ static const struct WindowTemplate sWindowTemplate_TradingBoardMain = { .tilemapTop = 5, .width = 28, .height = 12, - .paletteNum = 0xD, + .paletteNum = 13, .baseBlock = 0x0039 }; @@ -970,7 +970,7 @@ static const struct WindowTemplate sWindowTemplate_Unused = { .tilemapTop = 5, .width = 28, .height = 12, - .paletteNum = 0xD, + .paletteNum = 13, .baseBlock = 0x0039 }; diff --git a/src/daycare.c b/src/daycare.c index 57119c3ca..19d5edbb2 100644 --- a/src/daycare.c +++ b/src/daycare.c @@ -46,7 +46,7 @@ static const struct WindowTemplate sDaycareLevelMenuWindowTemplate = .tilemapTop = 1, .width = 14, .height = 6, - .paletteNum = 0xF, + .paletteNum = 15, .baseBlock = 8 }; diff --git a/src/decoration.c b/src/decoration.c index 684e67bc8..165c7aa99 100644 --- a/src/decoration.c +++ b/src/decoration.c @@ -263,7 +263,7 @@ static const struct WindowTemplate sDecorationWindowTemplates[WINDOW_COUNT] = .tilemapTop = 1, .width = 18, .height = 2 * ARRAY_COUNT(sDecorationMainMenuActions), - .paletteNum = 0xF, + .paletteNum = 15, .baseBlock = 0x0001 }, { @@ -272,7 +272,7 @@ static const struct WindowTemplate sDecorationWindowTemplates[WINDOW_COUNT] = .tilemapTop = 1, .width = 13, .height = 18, - .paletteNum = 0xD, + .paletteNum = 13, .baseBlock = 0x0091 }, { @@ -281,7 +281,7 @@ static const struct WindowTemplate sDecorationWindowTemplates[WINDOW_COUNT] = .tilemapTop = 1, .width = 12, .height = 2, - .paletteNum = 0xF, + .paletteNum = 15, .baseBlock = 0x017b }, { @@ -290,7 +290,7 @@ static const struct WindowTemplate sDecorationWindowTemplates[WINDOW_COUNT] = .tilemapTop = 13, .width = 13, .height = 6, - .paletteNum = 0xF, + .paletteNum = 15, .baseBlock = 0x0193 } }; @@ -687,7 +687,7 @@ static void ReturnToDecorationActionsAfterInvalidSelection(u8 taskId) static void SecretBasePC_PrepMenuForSelectingStoredDecors(u8 taskId) { - LoadPalette(sDecorationMenuPalette, BG_PLTT_ID(0xD), PLTT_SIZE_4BPP); + LoadPalette(sDecorationMenuPalette, BG_PLTT_ID(13), PLTT_SIZE_4BPP); ClearDialogWindowAndFrame(0, FALSE); RemoveDecorationWindow(WINDOW_MAIN_MENU); InitDecorationCategoriesWindow(taskId); @@ -833,7 +833,7 @@ static void ReturnToActionsMenuFromCategories(u8 taskId) void ShowDecorationCategoriesWindow(u8 taskId) { - LoadPalette(sDecorationMenuPalette, BG_PLTT_ID(0xD), PLTT_SIZE_4BPP); + LoadPalette(sDecorationMenuPalette, BG_PLTT_ID(13), PLTT_SIZE_4BPP); ClearDialogWindowAndFrame(0, FALSE); gTasks[taskId].tDecorationMenuCommand = DECOR_MENU_TRADE; sCurDecorationCategory = DECORCAT_DESK; diff --git a/src/diploma.c b/src/diploma.c index 5fe8aef83..e964a9cb3 100644 --- a/src/diploma.c +++ b/src/diploma.c @@ -72,7 +72,7 @@ void CB2_ShowDiploma(void) ResetSpriteData(); ResetPaletteFade(); FreeAllSpritePalettes(); - LoadPalette(sDiplomaPalettes, BG_PLTT_ID(0x0), 2 * PLTT_SIZE_4BPP); + LoadPalette(sDiplomaPalettes, BG_PLTT_ID(0), 2 * PLTT_SIZE_4BPP); sDiplomaTilemapPtr = malloc(0x1000); InitDiplomaBg(); InitDiplomaWindow(); @@ -186,7 +186,7 @@ static const struct WindowTemplate sDiplomaWinTemplates[2] = .tilemapTop = 2, .width = 20, .height = 16, - .paletteNum = 0xF, + .paletteNum = 15, .baseBlock = 1, }, DUMMY_WIN_TEMPLATE, @@ -196,7 +196,7 @@ static void InitDiplomaWindow(void) { InitWindows(sDiplomaWinTemplates); DeactivateAllTextPrinters(); - LoadPalette(gStandardMenuPalette, BG_PLTT_ID(0xF), PLTT_SIZE_4BPP); + LoadPalette(gStandardMenuPalette, BG_PLTT_ID(15), PLTT_SIZE_4BPP); FillWindowPixelBuffer(0, PIXEL_FILL(0)); PutWindowTilemap(0); } diff --git a/src/dodrio_berry_picking.c b/src/dodrio_berry_picking.c index e1fe5248f..54a3a531b 100644 --- a/src/dodrio_berry_picking.c +++ b/src/dodrio_berry_picking.c @@ -2931,7 +2931,7 @@ static const struct WindowTemplate sWindowTemplates_Records = .tilemapTop = 1, .width = 20, .height = 11, - .paletteNum = 0xF, + .paletteNum = 15, .baseBlock = 0x1, }; @@ -3005,8 +3005,8 @@ static void PrintRecordsText(u8 windowId, s32 width) recordNums[1] = gSaveBlock2Ptr->berryPick.bestScore; recordNums[2] = gSaveBlock2Ptr->berryPick.berriesPickedInRow; - LoadUserWindowBorderGfx_(windowId, 0x21D, BG_PLTT_ID(0xD)); - DrawTextBorderOuter(windowId, 0x21D, 0xD); + LoadUserWindowBorderGfx_(windowId, 0x21D, BG_PLTT_ID(13)); + DrawTextBorderOuter(windowId, 0x21D, 13); FillWindowPixelBuffer(windowId, PIXEL_FILL(1)); AddTextPrinterParameterized(windowId, FONT_NORMAL, gText_BerryPickingRecords, GetStringCenterAlignXOffset(FONT_NORMAL, gText_BerryPickingRecords, width * 8), 1, TEXT_SKIP_DRAW, NULL); for (i = 0; i < NUM_RECORD_TYPES; i++) @@ -3401,7 +3401,7 @@ static const struct WindowTemplate sWindowTemplates_Results[] = .tilemapTop = 1, .width = 28, .height = 2, - .paletteNum = 0xD, + .paletteNum = 13, .baseBlock = 0x13, }, { @@ -3410,7 +3410,7 @@ static const struct WindowTemplate sWindowTemplates_Results[] = .tilemapTop = 5, .width = 28, .height = 14, - .paletteNum = 0xD, + .paletteNum = 13, .baseBlock = 0x4B, } }; @@ -3422,7 +3422,7 @@ static const struct WindowTemplate sWindowTemplate_Prize = .tilemapTop = 5, .width = 28, .height = 7, - .paletteNum = 0xD, + .paletteNum = 13, .baseBlock = 0x4B, }; @@ -3439,7 +3439,7 @@ static const struct WindowTemplate sWindowTemplates_PlayAgain[] = .tilemapTop = 8, .width = 19, .height = 3, - .paletteNum = 0xD, + .paletteNum = 13, .baseBlock = 0x13, }, [WIN_YES_NO] = { @@ -3448,7 +3448,7 @@ static const struct WindowTemplate sWindowTemplates_PlayAgain[] = .tilemapTop = 7, .width = 6, .height = 4, - .paletteNum = 0xD, + .paletteNum = 13, .baseBlock = 0x4C, } }; @@ -3460,7 +3460,7 @@ static const struct WindowTemplate sWindowTemplate_DroppedOut = .tilemapTop = 6, .width = 22, .height = 5, - .paletteNum = 0xD, + .paletteNum = 13, .baseBlock = 0x13, }; @@ -3471,7 +3471,7 @@ static const struct WindowTemplate sWindowTemplate_CommStandby = .tilemapTop = 8, .width = 19, .height = 3, - .paletteNum = 0xD, + .paletteNum = 13, .baseBlock = 0x13, }; @@ -4429,12 +4429,12 @@ static void ResetBerryAndStatusBarSprites(void) static void LoadWindowFrameGfx(u8 frameId) { LoadBgTiles(BG_INTERFACE, GetWindowFrameTilesPal(frameId)->tiles, 0x120, 1); - LoadPalette(GetWindowFrameTilesPal(frameId)->pal, BG_PLTT_ID(0xA), PLTT_SIZE_4BPP); + LoadPalette(GetWindowFrameTilesPal(frameId)->pal, BG_PLTT_ID(10), PLTT_SIZE_4BPP); } static void LoadUserWindowFrameGfx(void) { - LoadUserWindowBorderGfx_(0, 0xA, BG_PLTT_ID(0xB)); + LoadUserWindowBorderGfx_(0, 0xA, BG_PLTT_ID(11)); } static void ResetGfxState(void) @@ -4448,7 +4448,7 @@ static void ResetGfxState(void) static void DrawYesNoMessageWindow(const struct WindowTemplate *template) { - u8 pal = 0xA; + u8 pal = 10; FillBgTilemapBufferRect(BG_INTERFACE, 1, template->tilemapLeft - 1, template->tilemapTop - 1, 1, 1, pal); FillBgTilemapBufferRect(BG_INTERFACE, 2, template->tilemapLeft, template->tilemapTop - 1, template->width, 1, pal); @@ -4462,7 +4462,7 @@ static void DrawYesNoMessageWindow(const struct WindowTemplate *template) static void DrawMessageWindow(const struct WindowTemplate *template) { - u8 pal = 0xB; + u8 pal = 11; FillBgTilemapBufferRect(BG_INTERFACE, 10, template->tilemapLeft - 1, template->tilemapTop - 1, 1, 1, pal); FillBgTilemapBufferRect(BG_INTERFACE, 11, template->tilemapLeft, template->tilemapTop - 1, template->width, 1, pal); @@ -4634,7 +4634,7 @@ static void ShowNames(void) window.bg = BG_INTERFACE; window.width = 7; window.height = 2; - window.paletteNum = 0xD; + window.paletteNum = 13; window.baseBlock = 0x13; for (i = 0; i < numPlayers; coords++, i++) { @@ -5193,7 +5193,7 @@ static bool32 LoadBgGfx(void) switch (sGfx->loadState) { case 0: - LoadPalette(sBg_Pal, BG_PLTT_ID(0x0), sizeof(sBg_Pal)); + LoadPalette(sBg_Pal, BG_PLTT_ID(0), sizeof(sBg_Pal)); break; case 1: ResetTempTileDataBuffers(); @@ -5209,7 +5209,7 @@ static bool32 LoadBgGfx(void) return FALSE; break; case 5: - LoadPalette(GetTextWindowPalette(3), BG_PLTT_ID(0xD), PLTT_SIZE_4BPP); + LoadPalette(GetTextWindowPalette(3), BG_PLTT_ID(13), PLTT_SIZE_4BPP); break; default: sGfx->loadState = 0; diff --git a/src/easy_chat.c b/src/easy_chat.c index 574ed22ee..b74edcf84 100644 --- a/src/easy_chat.c +++ b/src/easy_chat.c @@ -820,7 +820,7 @@ static const struct WindowTemplate sEasyChatWindowTemplates[] = { .tilemapTop = 0, .width = 18, .height = 2, - .paletteNum = 0xA, + .paletteNum = 10, .baseBlock = 0x10, }, { @@ -829,7 +829,7 @@ static const struct WindowTemplate sEasyChatWindowTemplates[] = { .tilemapTop = 15, .width = 24, .height = 4, - .paletteNum = 0xF, + .paletteNum = 15, .baseBlock = 0xA, }, { @@ -838,7 +838,7 @@ static const struct WindowTemplate sEasyChatWindowTemplates[] = { .tilemapTop = 0, .width = 28, .height = 32, - .paletteNum = 0x3, + .paletteNum = 3, .baseBlock = 0, }, DUMMY_WIN_TEMPLATE, @@ -850,7 +850,7 @@ static const struct WindowTemplate sEasyChatYesNoWindowTemplate = { .tilemapTop = 9, .width = 5, .height = 4, - .paletteNum = 0xF, + .paletteNum = 15, .baseBlock = 0x6A, }; @@ -3911,13 +3911,13 @@ static void InitEasyChatBgs(void) static void LoadEasyChatPalettes(void) { ResetPaletteFade(); - LoadPalette(gEasyChatMode_Pal, BG_PLTT_ID(0x0), PLTT_SIZE_4BPP); - LoadPalette(sTextInputFrameOrange_Pal, BG_PLTT_ID(0x1), PLTT_SIZE_4BPP); - LoadPalette(sTextInputFrameGreen_Pal, BG_PLTT_ID(0x4), PLTT_SIZE_4BPP); - LoadPalette(sTitleText_Pal, BG_PLTT_ID(0xA), PLTT_SIZEOF(4)); - LoadPalette(sText_Pal, BG_PLTT_ID(0xB), PLTT_SIZEOF(6)); - LoadPalette(sText_Pal, BG_PLTT_ID(0xF), PLTT_SIZEOF(6)); - LoadPalette(sText_Pal, BG_PLTT_ID(0x3), PLTT_SIZEOF(6)); + LoadPalette(gEasyChatMode_Pal, BG_PLTT_ID(0), PLTT_SIZE_4BPP); + LoadPalette(sTextInputFrameOrange_Pal, BG_PLTT_ID(1), PLTT_SIZE_4BPP); + LoadPalette(sTextInputFrameGreen_Pal, BG_PLTT_ID(4), PLTT_SIZE_4BPP); + LoadPalette(sTitleText_Pal, BG_PLTT_ID(10), PLTT_SIZEOF(4)); + LoadPalette(sText_Pal, BG_PLTT_ID(11), PLTT_SIZEOF(6)); + LoadPalette(sText_Pal, BG_PLTT_ID(15), PLTT_SIZEOF(6)); + LoadPalette(sText_Pal, BG_PLTT_ID(3), PLTT_SIZEOF(6)); } static void PrintTitle(void) @@ -3951,8 +3951,8 @@ static void PrintEasyChatTextWithColors(u8 windowId, u8 fontId, const u8 *str, u static void PrintInitialInstructions(void) { FillBgTilemapBufferRect(0, 0, 0, 0, 32, 20, 17); - LoadUserWindowBorderGfx(1, 1, BG_PLTT_ID(0xE)); - DrawTextBorderOuter(1, 1, 0xE); + LoadUserWindowBorderGfx(1, 1, BG_PLTT_ID(14)); + DrawTextBorderOuter(1, 1, 14); PrintEasyChatStdMessage(MSG_INSTRUCTIONS); PutWindowTilemap(1); CopyBgTilemapBufferToVram(0); @@ -4024,7 +4024,7 @@ static void AddPhraseWindow(void) template.tilemapTop = sPhraseFrameDimensions[frameId].top; template.width = sPhraseFrameDimensions[frameId].width; template.height = sPhraseFrameDimensions[frameId].height; - template.paletteNum = 0xB; + template.paletteNum = 11; template.baseBlock = 0x6C; sScreenControl->windowId = AddWindow(&template); PutWindowTilemap(sScreenControl->windowId); @@ -5069,7 +5069,7 @@ static void AddMainScreenButtonWindow(void) template.tilemapTop = 11; template.width = 28; template.height = 2; - template.paletteNum = 0xB; + template.paletteNum = 11; template.baseBlock = 0x34; windowId = AddWindow(&template); FillWindowPixelBuffer(windowId, PIXEL_FILL(1)); diff --git a/src/egg_hatch.c b/src/egg_hatch.c index 1832ec215..08c4d1fee 100644 --- a/src/egg_hatch.c +++ b/src/egg_hatch.c @@ -264,7 +264,7 @@ static const struct WindowTemplate sWinTemplates_EggHatch[] = .tilemapTop = 15, .width = 26, .height = 4, - .paletteNum = 0x0, + .paletteNum = 0, .baseBlock = 64 }, DUMMY_WIN_TEMPLATE @@ -277,7 +277,7 @@ static const struct WindowTemplate sYesNoWinTemplate = .tilemapTop = 9, .width = 5, .height = 4, - .paletteNum = 0xF, + .paletteNum = 15, .baseBlock = 424 }; @@ -532,7 +532,7 @@ static void CB2_LoadEggHatch(void) case 2: DecompressAndLoadBgGfxUsingHeap(0, gBattleTextboxTiles, 0, 0, 0); CopyToBgTilemapBuffer(0, gBattleTextboxTilemap, 0, 0); - LoadCompressedPalette(gBattleTextboxPalette, BG_PLTT_ID(0x0), PLTT_SIZE_4BPP); + LoadCompressedPalette(gBattleTextboxPalette, BG_PLTT_ID(0), PLTT_SIZE_4BPP); gMain.state++; break; case 3: @@ -556,7 +556,7 @@ static void CB2_LoadEggHatch(void) break; case 7: SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_OBJ_ON | DISPCNT_OBJ_1D_MAP); - LoadPalette(gTradeGba2_Pal, BG_PLTT_ID(0x1), 5 * PLTT_SIZE_4BPP); + LoadPalette(gTradeGba2_Pal, BG_PLTT_ID(1), 5 * PLTT_SIZE_4BPP); LoadBgTiles(1, gTradeGba_Gfx, 0x1420, 0); CopyToBgTilemapBuffer(1, gTradePlatform_Tilemap, 0x1000, 0); CopyBgTilemapBufferToVram(1); @@ -678,7 +678,7 @@ static void CB2_EggHatch(void) // Print the nickname prompt if (!IsTextPrinterActive(sEggHatchData->windowId)) { - LoadUserWindowBorderGfx(sEggHatchData->windowId, 0x140, BG_PLTT_ID(0xE)); + LoadUserWindowBorderGfx(sEggHatchData->windowId, 0x140, BG_PLTT_ID(14)); CreateYesNoMenu(&sYesNoWinTemplate, 0x140, 0xE, 0); sEggHatchData->state++; } diff --git a/src/evolution_scene.c b/src/evolution_scene.c index 9ca441bc4..eeb22edd2 100644 --- a/src/evolution_scene.c +++ b/src/evolution_scene.c @@ -263,7 +263,7 @@ void EvolutionScene(struct Pokemon *mon, u16 postEvoSpecies, bool8 canStopEvo, u gMonSpritesGfxPtr->sprites.ptr[B_POSITION_OPPONENT_LEFT], currSpecies); pokePal = GetMonSpritePalStructFromOtIdPersonality(currSpecies, trainerId, personality); - LoadCompressedPalette(pokePal->data, OBJ_PLTT_ID(0x1), PLTT_SIZE_4BPP); + LoadCompressedPalette(pokePal->data, OBJ_PLTT_ID(1), PLTT_SIZE_4BPP); SetMultiuseSpriteTemplateToPokemon(currSpecies, B_POSITION_OPPONENT_LEFT); gMultiuseSpriteTemplate.affineAnims = gDummySpriteAffineAnimTable; @@ -278,7 +278,7 @@ void EvolutionScene(struct Pokemon *mon, u16 postEvoSpecies, bool8 canStopEvo, u gMonSpritesGfxPtr->sprites.ptr[B_POSITION_OPPONENT_RIGHT], postEvoSpecies); pokePal = GetMonSpritePalStructFromOtIdPersonality(postEvoSpecies, trainerId, personality); - LoadCompressedPalette(pokePal->data, OBJ_PLTT_ID(0x2), PLTT_SIZE_4BPP); + LoadCompressedPalette(pokePal->data, OBJ_PLTT_ID(2), PLTT_SIZE_4BPP); SetMultiuseSpriteTemplateToPokemon(postEvoSpecies, B_POSITION_OPPONENT_RIGHT); gMultiuseSpriteTemplate.affineAnims = gDummySpriteAffineAnimTable; @@ -356,7 +356,7 @@ static void CB2_EvolutionSceneLoadGraphics(void) postEvoSpecies); pokePal = GetMonSpritePalStructFromOtIdPersonality(postEvoSpecies, trainerId, personality); - LoadCompressedPalette(pokePal->data, OBJ_PLTT_ID(0x2), PLTT_SIZE_4BPP); + LoadCompressedPalette(pokePal->data, OBJ_PLTT_ID(2), PLTT_SIZE_4BPP); SetMultiuseSpriteTemplateToPokemon(postEvoSpecies, B_POSITION_OPPONENT_RIGHT); gMultiuseSpriteTemplate.affineAnims = gDummySpriteAffineAnimTable; @@ -427,7 +427,7 @@ static void CB2_TradeEvolutionSceneLoadGraphics(void) gMonSpritesGfxPtr->sprites.ptr[B_POSITION_OPPONENT_RIGHT], postEvoSpecies); pokePal = GetMonSpritePalStructFromOtIdPersonality(postEvoSpecies, trainerId, personality); - LoadCompressedPalette(pokePal->data, OBJ_PLTT_ID(0x2), PLTT_SIZE_4BPP); + LoadCompressedPalette(pokePal->data, OBJ_PLTT_ID(2), PLTT_SIZE_4BPP); gMain.state++; } break; @@ -492,7 +492,7 @@ void TradeEvolutionScene(struct Pokemon *mon, u16 postEvoSpecies, u8 preEvoSprit postEvoSpecies); pokePal = GetMonSpritePalStructFromOtIdPersonality(postEvoSpecies, trainerId, personality); - LoadCompressedPalette(pokePal->data, OBJ_PLTT_ID(0x2), PLTT_SIZE_4BPP); + LoadCompressedPalette(pokePal->data, OBJ_PLTT_ID(2), PLTT_SIZE_4BPP); SetMultiuseSpriteTemplateToPokemon(postEvoSpecies, B_POSITION_OPPONENT_LEFT); gMultiuseSpriteTemplate.affineAnims = gDummySpriteAffineAnimTable; @@ -1301,7 +1301,7 @@ static void Task_TradeEvolutionScene(u8 taskId) case T_MVSTATE_PRINT_YES_NO: if (!IsTextPrinterActive(0) && !IsSEPlaying()) { - LoadUserWindowBorderGfx(0, 0xA8, BG_PLTT_ID(0xE)); + LoadUserWindowBorderGfx(0, 0xA8, BG_PLTT_ID(14)); CreateYesNoMenu(&gTradeEvolutionSceneYesNoWindowTemplate, 0xA8, 0xE, 0); sEvoCursorPos = 0; gTasks[taskId].tLearnMoveState++; @@ -1507,7 +1507,7 @@ static void Task_UpdateBgPalette(u8 taskId) else { // Haven't reached final palette in current stage, load the current palette - LoadPalette(&sBgAnimPal[tPalStage * 16], BG_PLTT_ID(0xA), PLTT_SIZE_4BPP); + LoadPalette(&sBgAnimPal[tPalStage * 16], BG_PLTT_ID(10), PLTT_SIZE_4BPP); tCycleTimer = 0; tPalStage++; } @@ -1605,7 +1605,7 @@ static void StartBgAnimation(bool8 isLink) else innerBgId = 1, outerBgId = 3; - LoadPalette(sBgAnim_Intro_Pal, BG_PLTT_ID(0xA), PLTT_SIZE_4BPP); + LoadPalette(sBgAnim_Intro_Pal, BG_PLTT_ID(10), PLTT_SIZE_4BPP); DecompressAndLoadBgGfxUsingHeap(1, sBgAnim_Gfx, FALSE, 0, 0); CopyToBgTilemapBuffer(innerBgId, sBgAnim_Inner_Tilemap, 0, 0); @@ -1644,7 +1644,7 @@ static void PauseBgPaletteAnim(void) if (taskId != TASK_NONE) gTasks[taskId].tPaused = TRUE; - FillPalette(RGB_BLACK, BG_PLTT_ID(0xA), PLTT_SIZE_4BPP); + FillPalette(RGB_BLACK, BG_PLTT_ID(10), PLTT_SIZE_4BPP); } #undef tPaused @@ -1658,7 +1658,7 @@ static void StopBgAnimation(void) if ((taskId = FindTaskIdByFunc(Task_AnimateBg)) != TASK_NONE) DestroyTask(taskId); - FillPalette(RGB_BLACK, BG_PLTT_ID(0xA), PLTT_SIZE_4BPP); + FillPalette(RGB_BLACK, BG_PLTT_ID(10), PLTT_SIZE_4BPP); RestoreBgAfterAnim(); } diff --git a/src/field_effect.c b/src/field_effect.c index 242d55770..0b155d935 100644 --- a/src/field_effect.c +++ b/src/field_effect.c @@ -2620,7 +2620,7 @@ static void FieldMoveShowMonOutdoorsEffect_LoadGfx(struct Task *task) u16 delta = ((REG_BG0CNT >> 8) << 11); CpuCopy16(sFieldMoveStreaksOutdoors_Gfx, (void *)(VRAM + offset), 0x200); CpuFill32(0, (void *)(VRAM + delta), 0x800); - LoadPalette(sFieldMoveStreaksOutdoors_Pal, BG_PLTT_ID(0xF), sizeof(sFieldMoveStreaksOutdoors_Pal)); + LoadPalette(sFieldMoveStreaksOutdoors_Pal, BG_PLTT_ID(15), sizeof(sFieldMoveStreaksOutdoors_Pal)); LoadFieldMoveOutdoorStreaksTilemap(delta); task->tState++; } @@ -2783,7 +2783,7 @@ static void FieldMoveShowMonIndoorsEffect_LoadGfx(struct Task *task) task->data[12] = delta; CpuCopy16(sFieldMoveStreaksIndoors_Gfx, (void *)(VRAM + offset), 0x80); CpuFill32(0, (void *)(VRAM + delta), 0x800); - LoadPalette(sFieldMoveStreaksIndoors_Pal, BG_PLTT_ID(0xF), sizeof(sFieldMoveStreaksIndoors_Pal)); + LoadPalette(sFieldMoveStreaksIndoors_Pal, BG_PLTT_ID(15), sizeof(sFieldMoveStreaksIndoors_Pal)); task->tState++; } @@ -3082,7 +3082,7 @@ u8 FldEff_RayquazaSpotlight(void) SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT1_BG0 | BLDCNT_EFFECT_BLEND | BLDCNT_TGT2_BG1 | BLDCNT_TGT2_BG2 | BLDCNT_TGT2_BG3 | BLDCNT_TGT2_OBJ | BLDCNT_TGT2_BD); SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(14, 14)); SetGpuReg(REG_OFFSET_WININ, WININ_WIN0_BG_ALL | WININ_WIN0_OBJ | WININ_WIN0_CLR | WININ_WIN1_BG_ALL | WININ_WIN1_OBJ | WININ_WIN1_CLR); - LoadPalette(sSpotlight_Pal, BG_PLTT_ID(0xC), sizeof(sSpotlight_Pal)); + LoadPalette(sSpotlight_Pal, BG_PLTT_ID(12), sizeof(sSpotlight_Pal)); SetGpuReg(REG_OFFSET_BG0VOFS, 120); for (i = 3; i < 15; i++) { diff --git a/src/field_region_map.c b/src/field_region_map.c index cd728aef7..4a3c2bfd1 100644 --- a/src/field_region_map.c +++ b/src/field_region_map.c @@ -72,7 +72,7 @@ static const struct WindowTemplate sFieldRegionMapWindowTemplates[] = .tilemapTop = 17, .width = 12, .height = 2, - .paletteNum = 0xF, + .paletteNum = 15, .baseBlock = 1 }, { @@ -81,7 +81,7 @@ static const struct WindowTemplate sFieldRegionMapWindowTemplates[] = .tilemapTop = 1, .width = 7, .height = 2, - .paletteNum = 0xF, + .paletteNum = 15, .baseBlock = 25 }, DUMMY_WIN_TEMPLATE @@ -115,7 +115,7 @@ static void MCB2_InitRegionMapRegisters(void) InitBgsFromTemplates(1, sFieldRegionMapBgTemplates, ARRAY_COUNT(sFieldRegionMapBgTemplates)); InitWindows(sFieldRegionMapWindowTemplates); DeactivateAllTextPrinters(); - LoadUserWindowBorderGfx(0, 0x27, BG_PLTT_ID(0xD)); + LoadUserWindowBorderGfx(0, 0x27, BG_PLTT_ID(13)); ClearScheduledBgCopiesToVram(); SetMainCallback2(MCB2_FieldUpdateRegionMap); SetVBlankCallback(VBCB_FieldUpdateRegionMap); diff --git a/src/field_screen_effect.c b/src/field_screen_effect.c index 2192aa574..b09eeaa6b 100644 --- a/src/field_screen_effect.c +++ b/src/field_screen_effect.c @@ -1079,7 +1079,7 @@ static void LoadOrbEffectPalette(bool8 blueOrb) color[0] = RGB_BLUE; for (i = 0; i < 16; i++) - LoadPalette(color, BG_PLTT_ID(0xF) + i, PLTT_SIZEOF(1)); + LoadPalette(color, BG_PLTT_ID(15) + i, PLTT_SIZEOF(1)); } static bool8 UpdateOrbEffectBlend(u16 shakeDir) diff --git a/src/field_specials.c b/src/field_specials.c index 74c4a5e7a..ed5592614 100644 --- a/src/field_specials.c +++ b/src/field_specials.c @@ -1638,7 +1638,7 @@ const struct WindowTemplate gElevatorFloor_WindowTemplate = .tilemapTop = 1, .width = 8, .height = 4, - .paletteNum = 0xF, + .paletteNum = 15, .baseBlock = 8, }; @@ -2845,7 +2845,7 @@ void ShowBattlePointsWindow(void) .tilemapTop = 1, .width = 6, .height = 2, - .paletteNum = 0xF, + .paletteNum = 15, .baseBlock = 8, }; @@ -2891,7 +2891,7 @@ void ShowFrontierExchangeCornerItemIconWindow(void) .tilemapTop = 9, .width = 4, .height = 4, - .paletteNum = 0xF, + .paletteNum = 15, .baseBlock = 20, }; @@ -3031,7 +3031,7 @@ static void ShowBattleFrontierTutorWindow(u8 menu, u16 selection) .tilemapTop = 7, .width = 12, .height = 6, - .paletteNum = 0xF, + .paletteNum = 15, .baseBlock = 28, }; @@ -3266,7 +3266,7 @@ static void Task_DeoxysRockInteraction(u8 taskId) static void ChangeDeoxysRockLevel(u8 rockLevel) { u8 objectEventId; - LoadPalette(&sDeoxysRockPalettes[rockLevel], OBJ_PLTT_ID(0xA), PLTT_SIZEOF(4)); + LoadPalette(&sDeoxysRockPalettes[rockLevel], OBJ_PLTT_ID(10), PLTT_SIZEOF(4)); TryGetObjectEventIdByLocalIdAndMap(LOCALID_BIRTH_ISLAND_EXTERIOR_ROCK, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup, &objectEventId); if (rockLevel == 0) @@ -3314,7 +3314,7 @@ void IncrementBirthIslandRockStepCount(void) void SetDeoxysRockPalette(void) { - LoadPalette(&sDeoxysRockPalettes[(u8)VarGet(VAR_DEOXYS_ROCK_LEVEL)], OBJ_PLTT_ID(0xA), PLTT_SIZEOF(4)); + LoadPalette(&sDeoxysRockPalettes[(u8)VarGet(VAR_DEOXYS_ROCK_LEVEL)], OBJ_PLTT_ID(10), PLTT_SIZEOF(4)); BlendPalettes(0x04000000, 16, 0); } diff --git a/src/field_weather.c b/src/field_weather.c index 164da8343..13271f435 100644 --- a/src/field_weather.c +++ b/src/field_weather.c @@ -556,7 +556,7 @@ static void ApplyGammaShiftWithBlend(u8 startPalIndex, u8 numPalettes, s8 gammaI { // No gamma shift. Simply blend the colors. BlendPalette(palOffset, 16, blendCoeff, blendColor); - palOffset += 0x10; + palOffset += 16; } else { @@ -601,14 +601,14 @@ static void ApplyDroughtGammaShiftWithBlend(s8 gammaIndex, u8 blendCoeff, u16 bl rBlend = color.r; gBlend = color.g; bBlend = color.b; - palOffset = 0x00; + palOffset = 0; for (curPalIndex = 0; curPalIndex < 32; curPalIndex++) { if (sPaletteGammaTypes[curPalIndex] == GAMMA_NONE) { // No gamma shift. Simply blend the colors. BlendPalette(palOffset, 16, blendCoeff, blendColor); - palOffset += 0x10; + palOffset += 16; } else { @@ -649,7 +649,7 @@ static void ApplyFogBlend(u8 blendCoeff, u16 blendColor) u8 bBlend; u16 curPalIndex; - BlendPalette(BG_PLTT_ID(0x0), 16 * 16, blendCoeff, blendColor); + BlendPalette(BG_PLTT_ID(0), 16 * 16, blendCoeff, blendColor); color = *(struct RGBColor *)&blendColor; rBlend = color.r; gBlend = color.g; diff --git a/src/fieldmap.c b/src/fieldmap.c index 479150d48..ef890273f 100644 --- a/src/fieldmap.c +++ b/src/fieldmap.c @@ -912,7 +912,7 @@ void CopySecondaryTilesetToVramUsingHeap(struct MapLayout const *mapLayout) static void LoadPrimaryTilesetPalette(struct MapLayout const *mapLayout) { - LoadTilesetPalette(mapLayout->primaryTileset, BG_PLTT_ID(0x0), NUM_PALS_IN_PRIMARY * PLTT_SIZE_4BPP); + LoadTilesetPalette(mapLayout->primaryTileset, BG_PLTT_ID(0), NUM_PALS_IN_PRIMARY * PLTT_SIZE_4BPP); } void LoadSecondaryTilesetPalette(struct MapLayout const *mapLayout) diff --git a/src/fldeff_flash.c b/src/fldeff_flash.c index 3790636ea..87d011741 100644 --- a/src/fldeff_flash.c +++ b/src/fldeff_flash.c @@ -218,8 +218,8 @@ static void Task_ExitCaveTransition2(u8 taskId) SetGpuReg(REG_OFFSET_DISPCNT, 0); LZ77UnCompVram(sCaveTransitionTiles, (void *)(VRAM + 0xC000)); LZ77UnCompVram(sCaveTransitionTilemap, (void *)(VRAM + 0xF800)); - LoadPalette(sCaveTransitionPalette_White, BG_PLTT_ID(0xE), PLTT_SIZE_4BPP); - LoadPalette(sCaveTransitionPalette_Exit, BG_PLTT_ID(0xE), 0x10); + LoadPalette(sCaveTransitionPalette_White, BG_PLTT_ID(14), PLTT_SIZE_4BPP); + LoadPalette(sCaveTransitionPalette_Exit, BG_PLTT_ID(14), PLTT_SIZEOF(8)); SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT1_BG0 | BLDCNT_EFFECT_BLEND | BLDCNT_TGT2_BG1 @@ -270,11 +270,11 @@ static void Task_ExitCaveTransition4(u8 taskId) if (count < 8) { gTasks[taskId].data[2]++; - LoadPalette(&sCaveTransitionPalette_Exit[count], BG_PLTT_ID(0xE), PLTT_SIZEOF(8) - PLTT_SIZEOF(count)); + LoadPalette(&sCaveTransitionPalette_Exit[count], BG_PLTT_ID(14), PLTT_SIZEOF(8) - PLTT_SIZEOF(count)); } else { - LoadPalette(sCaveTransitionPalette_White, BG_PLTT_ID(0x0), PLTT_SIZE_4BPP); + LoadPalette(sCaveTransitionPalette_White, BG_PLTT_ID(0), PLTT_SIZE_4BPP); gTasks[taskId].func = Task_ExitCaveTransition5; gTasks[taskId].data[2] = 8; } @@ -315,8 +315,8 @@ static void Task_EnterCaveTransition2(u8 taskId) | DISPCNT_OBJ_1D_MAP | DISPCNT_BG0_ON | DISPCNT_OBJ_ON); - LoadPalette(sCaveTransitionPalette_White, BG_PLTT_ID(0xE), PLTT_SIZE_4BPP); - LoadPalette(sCaveTransitionPalette_Black, BG_PLTT_ID(0x0), PLTT_SIZE_4BPP); + LoadPalette(sCaveTransitionPalette_White, BG_PLTT_ID(14), PLTT_SIZE_4BPP); + LoadPalette(sCaveTransitionPalette_Black, BG_PLTT_ID(0), PLTT_SIZE_4BPP); gTasks[taskId].func = Task_EnterCaveTransition3; gTasks[taskId].data[0] = 16; gTasks[taskId].data[1] = 0; @@ -331,7 +331,7 @@ static void Task_EnterCaveTransition3(u8 taskId) { gTasks[taskId].data[2]++; gTasks[taskId].data[2]++; - LoadPalette(&sCaveTransitionPalette_Enter[15 - count], BG_PLTT_ID(0xE), PLTT_SIZEOF(count + 1)); + LoadPalette(&sCaveTransitionPalette_Enter[15 - count], BG_PLTT_ID(14), PLTT_SIZEOF(count + 1)); } else { @@ -359,7 +359,7 @@ static void Task_EnterCaveTransition4(u8 taskId) } else { - LoadPalette(sCaveTransitionPalette_Black, BG_PLTT_ID(0x0), PLTT_SIZE_4BPP); + LoadPalette(sCaveTransitionPalette_Black, BG_PLTT_ID(0), PLTT_SIZE_4BPP); SetMainCallback2(gMain.savedCallback); } } diff --git a/src/frontier_pass.c b/src/frontier_pass.c index 48d4a5fce..337fb7a65 100644 --- a/src/frontier_pass.c +++ b/src/frontier_pass.c @@ -253,7 +253,7 @@ static const struct WindowTemplate sPassWindowTemplates[WINDOW_COUNT] = .tilemapTop = 3, .width = 12, .height = 3, - .paletteNum = 0xF, + .paletteNum = 15, .baseBlock = 0x1, }, [WINDOW_BATTLE_RECORD] = { @@ -262,7 +262,7 @@ static const struct WindowTemplate sPassWindowTemplates[WINDOW_COUNT] = .tilemapTop = 10, .width = 12, .height = 3, - .paletteNum = 0xF, + .paletteNum = 15, .baseBlock = 0x26, }, [WINDOW_BATTLE_POINTS] = { @@ -271,7 +271,7 @@ static const struct WindowTemplate sPassWindowTemplates[WINDOW_COUNT] = .tilemapTop = 13, .width = 12, .height = 4, - .paletteNum = 0xF, + .paletteNum = 15, .baseBlock = 0x4B, }, [WINDOW_DESCRIPTION] = { @@ -280,7 +280,7 @@ static const struct WindowTemplate sPassWindowTemplates[WINDOW_COUNT] = .tilemapTop = 18, .width = 30, .height = 3, - .paletteNum = 0xF, + .paletteNum = 15, .baseBlock = 0x7C, }, DUMMY_WIN_TEMPLATE @@ -294,7 +294,7 @@ static const struct WindowTemplate sMapWindowTemplates[] = .tilemapTop = 1, .width = 15, .height = 5, - .paletteNum = 0xF, + .paletteNum = 15, .baseBlock = 0x1, }, [MAP_WINDOW_NAME] = { @@ -303,7 +303,7 @@ static const struct WindowTemplate sMapWindowTemplates[] = .tilemapTop = 1, .width = 10, .height = 14, - .paletteNum = 0xF, + .paletteNum = 15, .baseBlock = 0x4D, }, [MAP_WINDOW_DESCRIPTION] = { @@ -312,7 +312,7 @@ static const struct WindowTemplate sMapWindowTemplates[] = .tilemapTop = 16, .width = 26, .height = 4, - .paletteNum = 0xF, + .paletteNum = 15, .baseBlock = 0xDA, }, DUMMY_WIN_TEMPLATE @@ -769,8 +769,8 @@ static bool32 InitFrontierPass(void) break; case 8: LoadPalette(gFrontierPassBg_Pal[0], 0, 13 * PLTT_SIZE_4BPP); - LoadPalette(gFrontierPassBg_Pal[1 + sPassData->trainerStars], BG_PLTT_ID(0x1), PLTT_SIZE_4BPP); - LoadPalette(GetTextWindowPalette(0), BG_PLTT_ID(0xF), PLTT_SIZE_4BPP); + LoadPalette(gFrontierPassBg_Pal[1 + sPassData->trainerStars], BG_PLTT_ID(1), PLTT_SIZE_4BPP); + LoadPalette(GetTextWindowPalette(0), BG_PLTT_ID(15), PLTT_SIZE_4BPP); DrawFrontierPassBg(); UpdateAreaHighlight(sPassData->cursorArea, sPassData->previousCursorArea); if (sPassData->areaToShow == CURSOR_AREA_MAP || sPassData->areaToShow == CURSOR_AREA_CARD) @@ -1412,8 +1412,8 @@ static bool32 InitFrontierMap(void) case 5: if (FreeTempTileDataBuffersIfPossible()) return FALSE; - LoadPalette(gFrontierPassBg_Pal[0], BG_PLTT_ID(0x0), 13 * PLTT_SIZE_4BPP); - LoadPalette(GetTextWindowPalette(0), BG_PLTT_ID(0xF), PLTT_SIZE_4BPP); + LoadPalette(gFrontierPassBg_Pal[0], BG_PLTT_ID(0), 13 * PLTT_SIZE_4BPP); + LoadPalette(GetTextWindowPalette(0), BG_PLTT_ID(15), PLTT_SIZE_4BPP); CopyToBgTilemapBuffer(2, sMapScreen_Tilemap, 0, 0); CopyBgTilemapBufferToVram(2); break; diff --git a/src/frontier_util.c b/src/frontier_util.c index 9f8c03023..f5dde452f 100644 --- a/src/frontier_util.c +++ b/src/frontier_util.c @@ -638,7 +638,7 @@ static const struct WindowTemplate sFrontierResultsWindowTemplate = .tilemapTop = 1, .width = 28, .height = 18, - .paletteNum = 0xF, + .paletteNum = 15, .baseBlock = 1 }; @@ -649,7 +649,7 @@ static const struct WindowTemplate sLinkContestResultsWindowTemplate = .tilemapTop = 2, .width = 26, .height = 15, - .paletteNum = 0xF, + .paletteNum = 15, .baseBlock = 1 }; @@ -660,7 +660,7 @@ static const struct WindowTemplate sRankingHallRecordsWindowTemplate = .tilemapTop = 1, .width = 26, .height = 17, - .paletteNum = 0xF, + .paletteNum = 15, .baseBlock = 1 }; diff --git a/src/hall_of_fame.c b/src/hall_of_fame.c index 07bbf9bb8..18aa19cce 100644 --- a/src/hall_of_fame.c +++ b/src/hall_of_fame.c @@ -140,7 +140,7 @@ static const struct WindowTemplate sHof_WindowTemplate = { .tilemapTop = 2, .width = 14, .height = 6, - .paletteNum = 0xE, + .paletteNum = 14, .baseBlock = 1 }; @@ -702,8 +702,8 @@ static void Task_Hof_DisplayPlayer(u8 taskId) ShowBg(3); gTasks[taskId].tPlayerSpriteID = CreateTrainerPicSprite(PlayerGenderToFrontTrainerPicId_Debug(gSaveBlock2Ptr->playerGender, TRUE), TRUE, 120, 72, 6, TAG_NONE); AddWindow(&sHof_WindowTemplate); - LoadWindowGfx(1, gSaveBlock2Ptr->optionsWindowFrameType, 0x21D, BG_PLTT_ID(0xD)); - LoadPalette(GetTextWindowPalette(1), BG_PLTT_ID(0xE), PLTT_SIZE_4BPP); + LoadWindowGfx(1, gSaveBlock2Ptr->optionsWindowFrameType, 0x21D, BG_PLTT_ID(13)); + LoadPalette(GetTextWindowPalette(1), BG_PLTT_ID(14), PLTT_SIZE_4BPP); gTasks[taskId].tFrameCount = 120; gTasks[taskId].func = Task_Hof_WaitAndPrintPlayerInfo; } @@ -1269,7 +1269,7 @@ static void ClearVramOamPltt_LoadHofPal(void) DmaFill16(3, 0, plttOffset, plttSize); ResetPaletteFade(); - LoadPalette(sHallOfFame_Pal, BG_PLTT_ID(0x0), PLTT_SIZE_4BPP); + LoadPalette(sHallOfFame_Pal, BG_PLTT_ID(0), PLTT_SIZE_4BPP); } static void LoadHofGfx(void) diff --git a/src/intro.c b/src/intro.c index 06c5adba5..5ae2fce8f 100644 --- a/src/intro.c +++ b/src/intro.c @@ -1080,7 +1080,7 @@ static u8 SetUpCopyrightScreen(void) CpuFill32(0, (void *)OAM, OAM_SIZE); CpuFill16(0, (void *)(PLTT + 2), PLTT_SIZE - 2); ResetPaletteFade(); - LoadCopyrightGraphics(0, 0x3800, BG_PLTT_ID(0x0)); + LoadCopyrightGraphics(0, 0x3800, BG_PLTT_ID(0)); ScanlineEffect_Stop(); ResetTasks(); ResetSpriteData(); @@ -1178,7 +1178,7 @@ static void Task_Scene1_Load(u8 taskId) DmaClear16(3, BG_SCREEN_ADDR(21), BG_SCREEN_SIZE); LZ77UnCompVram(sIntro1Bg3_Tilemap, (void *)(BG_SCREEN_ADDR(22))); DmaClear16(3, BG_SCREEN_ADDR(23), BG_SCREEN_SIZE); - LoadPalette(sIntro1Bg_Pal, BG_PLTT_ID(0x0), sizeof(sIntro1Bg_Pal)); + LoadPalette(sIntro1Bg_Pal, BG_PLTT_ID(0), sizeof(sIntro1Bg_Pal)); SetGpuReg(REG_OFFSET_BG3CNT, BGCNT_PRIORITY(3) | BGCNT_CHARBASE(0) | BGCNT_SCREENBASE(22) | BGCNT_16COLOR | BGCNT_TXT256x512); SetGpuReg(REG_OFFSET_BG2CNT, BGCNT_PRIORITY(2) | BGCNT_CHARBASE(0) | BGCNT_SCREENBASE(20) | BGCNT_16COLOR | BGCNT_TXT256x512); SetGpuReg(REG_OFFSET_BG1CNT, BGCNT_PRIORITY(1) | BGCNT_CHARBASE(0) | BGCNT_SCREENBASE(18) | BGCNT_16COLOR | BGCNT_TXT256x512); @@ -1717,7 +1717,7 @@ static void Task_Scene3_Load(u8 taskId) IntroResetGpuRegs(); LZ77UnCompVram(sIntroPokeball_Gfx, (void *)VRAM); LZ77UnCompVram(sIntroPokeball_Tilemap, (void *)(BG_CHAR_ADDR(1))); - LoadPalette(sIntroPokeball_Pal, BG_PLTT_ID(0x0), sizeof(sIntroPokeball_Pal)); + LoadPalette(sIntroPokeball_Pal, BG_PLTT_ID(0), sizeof(sIntroPokeball_Pal)); gTasks[taskId].tAlpha = 0; gTasks[taskId].tZoomDiv = 0; gTasks[taskId].tZoomDivSpeed = 0; @@ -2663,10 +2663,10 @@ static void Task_RayquazaAttack(u8 taskId) { if (--data[3] != 0) { - BlendPalette(BG_PLTT_ID(0x5), 16, data[3], RGB(9, 10, 10)); - CpuCopy16(&gIntro3Bg_Pal[0x1AC], &gPlttBufferFaded[BG_PLTT_ID(0x5) + 14], PLTT_SIZEOF(1)); - CpuCopy16(&gIntro3Bg_Pal[0x1AC], &gPlttBufferFaded[BG_PLTT_ID(0x5) + 8], PLTT_SIZEOF(1)); - CpuCopy16(&gIntro3Bg_Pal[0x18C], &gPlttBufferFaded[BG_PLTT_ID(0x5) + 12], PLTT_SIZEOF(1)); + BlendPalette(BG_PLTT_ID(5), 16, data[3], RGB(9, 10, 10)); + CpuCopy16(&gIntro3Bg_Pal[428], &gPlttBufferFaded[BG_PLTT_ID(5) + 14], PLTT_SIZEOF(1)); + CpuCopy16(&gIntro3Bg_Pal[428], &gPlttBufferFaded[BG_PLTT_ID(5) + 8], PLTT_SIZEOF(1)); + CpuCopy16(&gIntro3Bg_Pal[396], &gPlttBufferFaded[BG_PLTT_ID(5) + 12], PLTT_SIZEOF(1)); } else { diff --git a/src/intro_credits_graphics.c b/src/intro_credits_graphics.c index 2851f8638..7593a296e 100644 --- a/src/intro_credits_graphics.c +++ b/src/intro_credits_graphics.c @@ -730,7 +730,7 @@ void LoadIntroPart2Graphics(u8 scenery) { LZ77UnCompVram(sGrass_Gfx, (void *)(BG_CHAR_ADDR(1))); LZ77UnCompVram(sGrass_Tilemap, (void *)(BG_SCREEN_ADDR(15))); - LoadPalette(&sGrass_Pal, BG_PLTT_ID(0xF), sizeof(sGrass_Pal)); + LoadPalette(&sGrass_Pal, BG_PLTT_ID(15), sizeof(sGrass_Pal)); switch (scenery) { case 0: @@ -739,17 +739,17 @@ void LoadIntroPart2Graphics(u8 scenery) // Clouds are never used in this part of the intro LZ77UnCompVram(sCloudsBg_Gfx, (void *)(VRAM)); LZ77UnCompVram(sCloudsBg_Tilemap, (void *)(BG_SCREEN_ADDR(6))); - LoadPalette(&sCloudsBg_Pal, BG_PLTT_ID(0x0), sizeof(sCloudsBg_Pal)); + LoadPalette(&sCloudsBg_Pal, BG_PLTT_ID(0), sizeof(sCloudsBg_Pal)); LoadCompressedSpriteSheet(sSpriteSheet_Clouds); - LoadPalette(&sClouds_Pal, OBJ_PLTT_ID(0x0), sizeof(sClouds_Pal)); + LoadPalette(&sClouds_Pal, OBJ_PLTT_ID(0), sizeof(sClouds_Pal)); CreateCloudSprites(); break; case 1: LZ77UnCompVram(sTrees_Gfx, (void *)(VRAM)); LZ77UnCompVram(sTrees_Tilemap, (void *)(BG_SCREEN_ADDR(6))); - LoadPalette(&sTrees_Pal, BG_PLTT_ID(0x0), sizeof(sTrees_Pal)); + LoadPalette(&sTrees_Pal, BG_PLTT_ID(0), sizeof(sTrees_Pal)); LoadCompressedSpriteSheet(sSpriteSheet_TreesSmall); - LoadPalette(&sTreesSmall_Pal, OBJ_PLTT_ID(0x0), sizeof(sTreesSmall_Pal)); + LoadPalette(&sTreesSmall_Pal, OBJ_PLTT_ID(0), sizeof(sTreesSmall_Pal)); CreateTreeSprites(); break; } @@ -843,42 +843,42 @@ void LoadCreditsSceneGraphics(u8 scene) { case SCENE_OCEAN_MORNING: default: - LoadPalette(&sGrass_Pal, BG_PLTT_ID(0xF), sizeof(sGrass_Pal)); + LoadPalette(&sGrass_Pal, BG_PLTT_ID(15), sizeof(sGrass_Pal)); LZ77UnCompVram(sCloudsBg_Gfx, (void *)(VRAM)); LZ77UnCompVram(sCloudsBg_Tilemap, (void *)(BG_SCREEN_ADDR(6))); - LoadPalette(&sCloudsBg_Pal, BG_PLTT_ID(0x0), sizeof(sCloudsBg_Pal)); + LoadPalette(&sCloudsBg_Pal, BG_PLTT_ID(0), sizeof(sCloudsBg_Pal)); LoadCompressedSpriteSheet(sSpriteSheet_Clouds); LZ77UnCompVram(sClouds_Gfx, (void *)(OBJ_VRAM0)); - LoadPalette(&sClouds_Pal, OBJ_PLTT_ID(0x0), sizeof(sClouds_Pal)); + LoadPalette(&sClouds_Pal, OBJ_PLTT_ID(0), sizeof(sClouds_Pal)); CreateCloudSprites(); break; case SCENE_OCEAN_SUNSET: - LoadPalette(&sGrassSunset_Pal, BG_PLTT_ID(0xF), sizeof(sGrassSunset_Pal)); + LoadPalette(&sGrassSunset_Pal, BG_PLTT_ID(15), sizeof(sGrassSunset_Pal)); LZ77UnCompVram(sCloudsBg_Gfx, (void *)(VRAM)); LZ77UnCompVram(sCloudsBg_Tilemap, (void *)(BG_SCREEN_ADDR(6))); - LoadPalette(&sCloudsBgSunset_Pal, BG_PLTT_ID(0x0), sizeof(sCloudsBgSunset_Pal)); + LoadPalette(&sCloudsBgSunset_Pal, BG_PLTT_ID(0), sizeof(sCloudsBgSunset_Pal)); LoadCompressedSpriteSheet(sSpriteSheet_Clouds); LZ77UnCompVram(sClouds_Gfx, (void *)(OBJ_VRAM0)); - LoadPalette(&sCloudsSunset_Pal, OBJ_PLTT_ID(0x0), sizeof(sCloudsSunset_Pal)); + LoadPalette(&sCloudsSunset_Pal, OBJ_PLTT_ID(0), sizeof(sCloudsSunset_Pal)); CreateCloudSprites(); break; case SCENE_FOREST_RIVAL_ARRIVE: case SCENE_FOREST_CATCH_RIVAL: - LoadPalette(&sGrassSunset_Pal, BG_PLTT_ID(0xF), sizeof(sGrassSunset_Pal)); + LoadPalette(&sGrassSunset_Pal, BG_PLTT_ID(15), sizeof(sGrassSunset_Pal)); LZ77UnCompVram(sTrees_Gfx, (void *)(VRAM)); LZ77UnCompVram(sTrees_Tilemap, (void *)(BG_SCREEN_ADDR(6))); - LoadPalette(&sTreesSunset_Pal, BG_PLTT_ID(0x0), sizeof(sTreesSunset_Pal)); + LoadPalette(&sTreesSunset_Pal, BG_PLTT_ID(0), sizeof(sTreesSunset_Pal)); LoadCompressedSpriteSheet(sSpriteSheet_TreesSmall); - LoadPalette(&sTreesSunset_Pal, OBJ_PLTT_ID(0x0), sizeof(sTreesSunset_Pal)); + LoadPalette(&sTreesSunset_Pal, OBJ_PLTT_ID(0), sizeof(sTreesSunset_Pal)); CreateTreeSprites(); break; case SCENE_CITY_NIGHT: - LoadPalette(&sGrassNight_Pal, BG_PLTT_ID(0xF), sizeof(sGrassNight_Pal)); + LoadPalette(&sGrassNight_Pal, BG_PLTT_ID(15), sizeof(sGrassNight_Pal)); LZ77UnCompVram(sHouses_Gfx, (void *)(VRAM)); LZ77UnCompVram(sHouses_Tilemap, (void *)(BG_SCREEN_ADDR(6))); - LoadPalette(&sHouses_Pal, BG_PLTT_ID(0x0), sizeof(sHouses_Pal)); + LoadPalette(&sHouses_Pal, BG_PLTT_ID(0), sizeof(sHouses_Pal)); LoadCompressedSpriteSheet(sSpriteSheet_HouseSilhouette); - LoadPalette(&sHouseSilhouette_Pal, OBJ_PLTT_ID(0x0), sizeof(sHouseSilhouette_Pal)); + LoadPalette(&sHouseSilhouette_Pal, OBJ_PLTT_ID(0), sizeof(sHouseSilhouette_Pal)); CreateHouseSprites(); break; } @@ -1006,8 +1006,8 @@ void CycleSceneryPalette(u8 mode) x = gPlttBufferUnfaded[10]; y = gPlttBufferUnfaded[9]; } - LoadPalette(&x, BG_PLTT_ID(0x0) + 9, sizeof(x)); - LoadPalette(&y, BG_PLTT_ID(0x0) + 10, sizeof(y)); + LoadPalette(&x, BG_PLTT_ID(0) + 9, sizeof(x)); + LoadPalette(&y, BG_PLTT_ID(0) + 10, sizeof(y)); break; case 2: if (gMain.vblankCounter1 & 3 || gPaletteFade.active) @@ -1022,8 +1022,8 @@ void CycleSceneryPalette(u8 mode) x = RGB(28, 24, 0); y = RGB(7, 9, 15); } - LoadPalette(&x, BG_PLTT_ID(0x0) + 12, sizeof(x)); - LoadPalette(&y, BG_PLTT_ID(0x0) + 13, sizeof(y)); + LoadPalette(&x, BG_PLTT_ID(0) + 12, sizeof(x)); + LoadPalette(&y, BG_PLTT_ID(0) + 13, sizeof(y)); break; case 1: break; diff --git a/src/item_menu.c b/src/item_menu.c index 33b204291..51d4f4a8e 100755 --- a/src/item_menu.c +++ b/src/item_menu.c @@ -399,7 +399,7 @@ static const struct WindowTemplate sDefaultBagWindows[] = .tilemapTop = 2, .width = 15, .height = 16, - .paletteNum = 0x1, + .paletteNum = 1, .baseBlock = 0x27, }, [WIN_DESCRIPTION] = { @@ -408,7 +408,7 @@ static const struct WindowTemplate sDefaultBagWindows[] = .tilemapTop = 13, .width = 14, .height = 6, - .paletteNum = 0x1, + .paletteNum = 1, .baseBlock = 0x117, }, [WIN_POCKET_NAME] = { @@ -417,7 +417,7 @@ static const struct WindowTemplate sDefaultBagWindows[] = .tilemapTop = 1, .width = 8, .height = 2, - .paletteNum = 0x1, + .paletteNum = 1, .baseBlock = 0x1A1, }, [WIN_TMHM_INFO_ICONS] = { @@ -426,7 +426,7 @@ static const struct WindowTemplate sDefaultBagWindows[] = .tilemapTop = 13, .width = 5, .height = 6, - .paletteNum = 0xC, + .paletteNum = 12, .baseBlock = 0x16B, }, [WIN_TMHM_INFO] = { @@ -435,7 +435,7 @@ static const struct WindowTemplate sDefaultBagWindows[] = .tilemapTop = 13, .width = 4, .height = 6, - .paletteNum = 0xC, + .paletteNum = 12, .baseBlock = 0x189, }, [WIN_MESSAGE] = { @@ -444,7 +444,7 @@ static const struct WindowTemplate sDefaultBagWindows[] = .tilemapTop = 15, .width = 27, .height = 4, - .paletteNum = 0xF, + .paletteNum = 15, .baseBlock = 0x1B1, }, DUMMY_WIN_TEMPLATE, @@ -458,7 +458,7 @@ static const struct WindowTemplate sContextMenuWindowTemplates[] = .tilemapTop = 17, .width = 7, .height = 2, - .paletteNum = 0xF, + .paletteNum = 15, .baseBlock = 0x21D, }, [ITEMWIN_1x2] = { @@ -467,7 +467,7 @@ static const struct WindowTemplate sContextMenuWindowTemplates[] = .tilemapTop = 15, .width = 7, .height = 4, - .paletteNum = 0xF, + .paletteNum = 15, .baseBlock = 0x21D, }, [ITEMWIN_2x2] = { @@ -476,7 +476,7 @@ static const struct WindowTemplate sContextMenuWindowTemplates[] = .tilemapTop = 15, .width = 14, .height = 4, - .paletteNum = 0xF, + .paletteNum = 15, .baseBlock = 0x21D, }, [ITEMWIN_2x3] = { @@ -485,7 +485,7 @@ static const struct WindowTemplate sContextMenuWindowTemplates[] = .tilemapTop = 13, .width = 14, .height = 6, - .paletteNum = 0xF, + .paletteNum = 15, .baseBlock = 0x21D, }, [ITEMWIN_MESSAGE] = { @@ -494,7 +494,7 @@ static const struct WindowTemplate sContextMenuWindowTemplates[] = .tilemapTop = 15, .width = 27, .height = 4, - .paletteNum = 0xF, + .paletteNum = 15, .baseBlock = 0x1B1, }, [ITEMWIN_YESNO_LOW] = { // Yes/No tucked in corner, for toss confirm @@ -503,7 +503,7 @@ static const struct WindowTemplate sContextMenuWindowTemplates[] = .tilemapTop = 15, .width = 5, .height = 4, - .paletteNum = 0xF, + .paletteNum = 15, .baseBlock = 0x21D, }, [ITEMWIN_YESNO_HIGH] = { // Yes/No higher up, positioned above a lower message box @@ -512,7 +512,7 @@ static const struct WindowTemplate sContextMenuWindowTemplates[] = .tilemapTop = 9, .width = 5, .height = 4, - .paletteNum = 0xF, + .paletteNum = 15, .baseBlock = 0x21D, }, [ITEMWIN_QUANTITY] = { // Used for quantity of items to Toss/Deposit @@ -521,7 +521,7 @@ static const struct WindowTemplate sContextMenuWindowTemplates[] = .tilemapTop = 17, .width = 5, .height = 2, - .paletteNum = 0xF, + .paletteNum = 15, .baseBlock = 0x21D, }, [ITEMWIN_QUANTITY_WIDE] = { // Used for quantity and price of items to Sell @@ -530,7 +530,7 @@ static const struct WindowTemplate sContextMenuWindowTemplates[] = .tilemapTop = 11, .width = 10, .height = 2, - .paletteNum = 0xF, + .paletteNum = 15, .baseBlock = 0x245, }, [ITEMWIN_MONEY] = { @@ -539,7 +539,7 @@ static const struct WindowTemplate sContextMenuWindowTemplates[] = .tilemapTop = 1, .width = 10, .height = 2, - .paletteNum = 0xF, + .paletteNum = 15, .baseBlock = 0x231, }, }; @@ -818,9 +818,9 @@ static bool8 LoadBagMenu_Graphics(void) break; case 2: if (!IsWallysBag() && gSaveBlock2Ptr->playerGender != MALE) - LoadCompressedPalette(gBagScreenFemale_Pal, BG_PLTT_ID(0x0), 2 * PLTT_SIZE_4BPP); + LoadCompressedPalette(gBagScreenFemale_Pal, BG_PLTT_ID(0), 2 * PLTT_SIZE_4BPP); else - LoadCompressedPalette(gBagScreenMale_Pal, BG_PLTT_ID(0x0), 2 * PLTT_SIZE_4BPP); + LoadCompressedPalette(gBagScreenMale_Pal, BG_PLTT_ID(0), 2 * PLTT_SIZE_4BPP); gBagMenu->graphicsLoadState++; break; case 3: @@ -2448,10 +2448,10 @@ static void LoadBagMenuTextWindows(void) InitWindows(sDefaultBagWindows); DeactivateAllTextPrinters(); - LoadUserWindowBorderGfx(0, 1, BG_PLTT_ID(0xE)); - LoadMessageBoxGfx(0, 10, BG_PLTT_ID(0xD)); - ListMenuLoadStdPalAt(BG_PLTT_ID(0xC), 1); - LoadPalette(&gStandardMenuPalette, BG_PLTT_ID(0xF), PLTT_SIZE_4BPP); + LoadUserWindowBorderGfx(0, 1, BG_PLTT_ID(14)); + LoadMessageBoxGfx(0, 10, BG_PLTT_ID(13)); + ListMenuLoadStdPalAt(BG_PLTT_ID(12), 1); + LoadPalette(&gStandardMenuPalette, BG_PLTT_ID(15), PLTT_SIZE_4BPP); for (i = 0; i <= WIN_POCKET_NAME; i++) { FillWindowPixelBuffer(i, PIXEL_FILL(0)); diff --git a/src/link.c b/src/link.c index a78849ddb..c1344cb7b 100644 --- a/src/link.c +++ b/src/link.c @@ -200,7 +200,7 @@ static const struct WindowTemplate sLinkErrorWindowTemplates[] = { .tilemapTop = 0, .width = 30, .height = 5, - .paletteNum = 0xF, + .paletteNum = 15, .baseBlock = 0x002 }, { .bg = 0, @@ -208,7 +208,7 @@ static const struct WindowTemplate sLinkErrorWindowTemplates[] = { .tilemapTop = 6, .width = 30, .height = 7, - .paletteNum = 0xF, + .paletteNum = 15, .baseBlock = 0x098 }, { .bg = 0, @@ -216,7 +216,7 @@ static const struct WindowTemplate sLinkErrorWindowTemplates[] = { .tilemapTop = 13, .width = 30, .height = 7, - .paletteNum = 0xF, + .paletteNum = 15, .baseBlock = 0x16A }, DUMMY_WIN_TEMPLATE }; @@ -1621,7 +1621,7 @@ void CB2_LinkError(void) SetGpuReg(REG_OFFSET_BG1HOFS, 0); SetGpuReg(REG_OFFSET_BG1VOFS, 0); ClearGpuRegBits(REG_OFFSET_DISPCNT, DISPCNT_WIN0_ON | DISPCNT_WIN1_ON | DISPCNT_OBJWIN_ON); - LoadPalette(gStandardMenuPalette, BG_PLTT_ID(0xF), PLTT_SIZE_4BPP); + LoadPalette(gStandardMenuPalette, BG_PLTT_ID(15), PLTT_SIZE_4BPP); gSoftResetDisabled = FALSE; CreateTask(Task_DestroySelf, 0); StopMapMusic(); diff --git a/src/mail.c b/src/mail.c index 52ce8df5e..a652131f6 100644 --- a/src/mail.c +++ b/src/mail.c @@ -113,7 +113,7 @@ static const struct WindowTemplate sWindowTemplates[] = { .tilemapTop = 3, .width = 26, .height = 15, - .paletteNum = 0xF, + .paletteNum = 15, .baseBlock = 1 }, DUMMY_WIN_TEMPLATE @@ -566,13 +566,13 @@ static bool8 MailReadBuildGraphics(void) CopyBgTilemapBufferToVram(2); break; case 12: - LoadPalette(GetOverworldTextboxPalettePtr(), BG_PLTT_ID(0xF), PLTT_SIZE_4BPP); + LoadPalette(GetOverworldTextboxPalettePtr(), BG_PLTT_ID(15), PLTT_SIZE_4BPP); gPlttBufferUnfaded[250] = sMailGraphics[sMailRead->mailType].textColor; gPlttBufferFaded[250] = sMailGraphics[sMailRead->mailType].textColor; gPlttBufferUnfaded[251] = sMailGraphics[sMailRead->mailType].textShadow; gPlttBufferFaded[251] = sMailGraphics[sMailRead->mailType].textShadow; - LoadPalette(sMailGraphics[sMailRead->mailType].palette, BG_PLTT_ID(0x0), PLTT_SIZE_4BPP); + LoadPalette(sMailGraphics[sMailRead->mailType].palette, BG_PLTT_ID(0), PLTT_SIZE_4BPP); gPlttBufferUnfaded[10] = sBgColors[gSaveBlock2Ptr->playerGender][0]; gPlttBufferFaded[10] = sBgColors[gSaveBlock2Ptr->playerGender][0]; diff --git a/src/main_menu.c b/src/main_menu.c index 381676c0d..9937a6426 100644 --- a/src/main_menu.c +++ b/src/main_menu.c @@ -294,7 +294,7 @@ static const struct WindowTemplate sWindowTemplates_MainMenu[] = .tilemapTop = MENU_TOP_WIN0, .width = MENU_WIDTH, .height = MENU_HEIGHT_WIN0, - .paletteNum = 0xF, + .paletteNum = 15, .baseBlock = 1 }, // OPTIONS @@ -304,7 +304,7 @@ static const struct WindowTemplate sWindowTemplates_MainMenu[] = .tilemapTop = MENU_TOP_WIN1, .width = MENU_WIDTH, .height = MENU_HEIGHT_WIN1, - .paletteNum = 0xF, + .paletteNum = 15, .baseBlock = 0x35 }, // Has saved game @@ -315,7 +315,7 @@ static const struct WindowTemplate sWindowTemplates_MainMenu[] = .tilemapTop = MENU_TOP_WIN2, .width = MENU_WIDTH, .height = MENU_HEIGHT_WIN2, - .paletteNum = 0xF, + .paletteNum = 15, .baseBlock = 1 }, // NEW GAME @@ -325,7 +325,7 @@ static const struct WindowTemplate sWindowTemplates_MainMenu[] = .tilemapTop = MENU_TOP_WIN3, .width = MENU_WIDTH, .height = MENU_HEIGHT_WIN3, - .paletteNum = 0xF, + .paletteNum = 15, .baseBlock = 0x9D }, // OPTION / MYSTERY GIFT @@ -335,7 +335,7 @@ static const struct WindowTemplate sWindowTemplates_MainMenu[] = .tilemapTop = MENU_TOP_WIN4, .width = MENU_WIDTH, .height = MENU_HEIGHT_WIN4, - .paletteNum = 0xF, + .paletteNum = 15, .baseBlock = 0xD1 }, // OPTION / MYSTERY EVENTS @@ -345,7 +345,7 @@ static const struct WindowTemplate sWindowTemplates_MainMenu[] = .tilemapTop = MENU_TOP_WIN5, .width = MENU_WIDTH, .height = MENU_HEIGHT_WIN5, - .paletteNum = 0xF, + .paletteNum = 15, .baseBlock = 0x105 }, // OPTION @@ -355,7 +355,7 @@ static const struct WindowTemplate sWindowTemplates_MainMenu[] = .tilemapTop = MENU_TOP_WIN6, .width = MENU_WIDTH, .height = MENU_HEIGHT_WIN6, - .paletteNum = 0xF, + .paletteNum = 15, .baseBlock = 0x139 }, // Error message window @@ -365,7 +365,7 @@ static const struct WindowTemplate sWindowTemplates_MainMenu[] = .tilemapTop = MENU_TOP_ERROR, .width = MENU_WIDTH_ERROR, .height = MENU_HEIGHT_ERROR, - .paletteNum = 0xF, + .paletteNum = 15, .baseBlock = 0x16D }, DUMMY_WIN_TEMPLATE @@ -379,7 +379,7 @@ static const struct WindowTemplate sNewGameBirchSpeechTextWindows[] = .tilemapTop = 15, .width = 27, .height = 4, - .paletteNum = 0xF, + .paletteNum = 15, .baseBlock = 1 }, { @@ -388,7 +388,7 @@ static const struct WindowTemplate sNewGameBirchSpeechTextWindows[] = .tilemapTop = 5, .width = 6, .height = 4, - .paletteNum = 0xF, + .paletteNum = 15, .baseBlock = 0x6D }, { @@ -397,7 +397,7 @@ static const struct WindowTemplate sNewGameBirchSpeechTextWindows[] = .tilemapTop = 2, .width = 9, .height = 10, - .paletteNum = 0xF, + .paletteNum = 15, .baseBlock = 0x85 }, DUMMY_WIN_TEMPLATE @@ -571,8 +571,8 @@ static u32 InitMainMenu(bool8 returningFromOptionsMenu) DmaFill16(3, 0, (void *)(PLTT + 2), PLTT_SIZE - 2); ResetPaletteFade(); - LoadPalette(sMainMenuBgPal, BG_PLTT_ID(0x0), PLTT_SIZE_4BPP); - LoadPalette(sMainMenuTextPal, BG_PLTT_ID(0xF), PLTT_SIZE_4BPP); + LoadPalette(sMainMenuBgPal, BG_PLTT_ID(0), PLTT_SIZE_4BPP); + LoadPalette(sMainMenuTextPal, BG_PLTT_ID(15), PLTT_SIZE_4BPP); ScanlineEffect_Stop(); ResetTasks(); ResetSpriteData(); @@ -750,28 +750,28 @@ static void Task_DisplayMainMenu(u8 taskId) SetGpuReg(REG_OFFSET_BLDY, 7); palette = RGB_BLACK; - LoadPalette(&palette, BG_PLTT_ID(0xF) + 14, PLTT_SIZEOF(1)); + LoadPalette(&palette, BG_PLTT_ID(15) + 14, PLTT_SIZEOF(1)); palette = RGB_WHITE; - LoadPalette(&palette, BG_PLTT_ID(0xF) + 10, PLTT_SIZEOF(1)); + LoadPalette(&palette, BG_PLTT_ID(15) + 10, PLTT_SIZEOF(1)); palette = RGB(12, 12, 12); - LoadPalette(&palette, BG_PLTT_ID(0xF) + 11, PLTT_SIZEOF(1)); + LoadPalette(&palette, BG_PLTT_ID(15) + 11, PLTT_SIZEOF(1)); palette = RGB(26, 26, 25); - LoadPalette(&palette, BG_PLTT_ID(0xF) + 12, PLTT_SIZEOF(1)); + LoadPalette(&palette, BG_PLTT_ID(15) + 12, PLTT_SIZEOF(1)); // Note: If there is no save file, the save block is zeroed out, // so the default gender is MALE. if (gSaveBlock2Ptr->playerGender == MALE) { palette = RGB(4, 16, 31); - LoadPalette(&palette, BG_PLTT_ID(0xF) + 1, PLTT_SIZEOF(1)); + LoadPalette(&palette, BG_PLTT_ID(15) + 1, PLTT_SIZEOF(1)); } else { palette = RGB(31, 3, 21); - LoadPalette(&palette, BG_PLTT_ID(0xF) + 1, PLTT_SIZEOF(1)); + LoadPalette(&palette, BG_PLTT_ID(15) + 1, PLTT_SIZEOF(1)); } switch (gTasks[taskId].tMenuType) @@ -1274,8 +1274,8 @@ static void Task_NewGameBirchSpeech_Init(u8 taskId) LZ77UnCompVram(sBirchSpeechShadowGfx, (void *)VRAM); LZ77UnCompVram(sBirchSpeechBgMap, (void *)(BG_SCREEN_ADDR(7))); - LoadPalette(sBirchSpeechBgPals, BG_PLTT_ID(0x0), 2 * PLTT_SIZE_4BPP); - LoadPalette(sBirchSpeechPlatformBlackPal, BG_PLTT_ID(0x0) + 1, PLTT_SIZEOF(8)); + LoadPalette(sBirchSpeechBgPals, BG_PLTT_ID(0), 2 * PLTT_SIZE_4BPP); + LoadPalette(sBirchSpeechPlatformBlackPal, BG_PLTT_ID(0) + 1, PLTT_SIZEOF(8)); ScanlineEffect_Stop(); ResetSpriteData(); FreeAllSpritePalettes(); @@ -1327,7 +1327,7 @@ static void Task_NewGameBirchSpeech_WaitForSpriteFadeInWelcome(u8 taskId) { InitWindows(sNewGameBirchSpeechTextWindows); LoadMainMenuWindowFrameTiles(0, 0xF3); - LoadMessageBoxGfx(0, 0xFC, BG_PLTT_ID(0xF)); + LoadMessageBoxGfx(0, 0xFC, BG_PLTT_ID(15)); NewGameBirchSpeech_ShowDialogueWindow(0, 1); PutWindowTilemap(0); CopyWindowToVram(0, COPYWIN_GFX); @@ -1809,8 +1809,8 @@ static void CB2_NewGameBirchSpeech_ReturnFromNamingScreen(void) ResetPaletteFade(); LZ77UnCompVram(sBirchSpeechShadowGfx, (u8 *)VRAM); LZ77UnCompVram(sBirchSpeechBgMap, (u8 *)(BG_SCREEN_ADDR(7))); - LoadPalette(sBirchSpeechBgPals, BG_PLTT_ID(0x0), 2 * PLTT_SIZE_4BPP); - LoadPalette(&sBirchSpeechBgGradientPal[1], BG_PLTT_ID(0x0) + 1, PLTT_SIZEOF(8)); + LoadPalette(sBirchSpeechBgPals, BG_PLTT_ID(0), 2 * PLTT_SIZE_4BPP); + LoadPalette(&sBirchSpeechBgGradientPal[1], BG_PLTT_ID(0) + 1, PLTT_SIZEOF(8)); ResetTasks(); taskId = CreateTask(Task_NewGameBirchSpeech_ReturnFromNamingScreenShowTextbox, 0); gTasks[taskId].tTimer = 5; @@ -1853,7 +1853,7 @@ static void CB2_NewGameBirchSpeech_ReturnFromNamingScreen(void) SetMainCallback2(CB2_MainMenu); InitWindows(sNewGameBirchSpeechTextWindows); LoadMainMenuWindowFrameTiles(0, 0xF3); - LoadMessageBoxGfx(0, 0xFC, BG_PLTT_ID(0xF)); + LoadMessageBoxGfx(0, 0xFC, BG_PLTT_ID(15)); PutWindowTilemap(0); CopyWindowToVram(0, COPYWIN_FULL); } @@ -2029,7 +2029,7 @@ static void Task_NewGameBirchSpeech_FadePlatformIn(u8 taskId) { gTasks[taskId].tDelayTimer = gTasks[taskId].tDelay; gTasks[taskId].tPalIndex++; - LoadPalette(&sBirchSpeechBgGradientPal[gTasks[taskId].tPalIndex], BG_PLTT_ID(0x0) + 1, PLTT_SIZEOF(8)); + LoadPalette(&sBirchSpeechBgGradientPal[gTasks[taskId].tPalIndex], BG_PLTT_ID(0) + 1, PLTT_SIZEOF(8)); } } @@ -2063,7 +2063,7 @@ static void Task_NewGameBirchSpeech_FadePlatformOut(u8 taskId) { gTasks[taskId].tDelayTimer = gTasks[taskId].tDelay; gTasks[taskId].tPalIndex--; - LoadPalette(&sBirchSpeechBgGradientPal[gTasks[taskId].tPalIndex], BG_PLTT_ID(0x0) + 1, PLTT_SIZEOF(8)); + LoadPalette(&sBirchSpeechBgGradientPal[gTasks[taskId].tPalIndex], BG_PLTT_ID(0) + 1, PLTT_SIZEOF(8)); } } @@ -2191,7 +2191,7 @@ static void MainMenu_FormatSavegameBadges(void) static void LoadMainMenuWindowFrameTiles(u8 bgId, u16 tileOffset) { LoadBgTiles(bgId, GetWindowFrameTilesPal(gSaveBlock2Ptr->optionsWindowFrameType)->tiles, 0x120, tileOffset); - LoadPalette(GetWindowFrameTilesPal(gSaveBlock2Ptr->optionsWindowFrameType)->pal, BG_PLTT_ID(0x2), PLTT_SIZE_4BPP); + LoadPalette(GetWindowFrameTilesPal(gSaveBlock2Ptr->optionsWindowFrameType)->pal, BG_PLTT_ID(2), PLTT_SIZE_4BPP); } static void DrawMainMenuWindowBorder(const struct WindowTemplate *template, u16 baseTileNum) @@ -2204,26 +2204,26 @@ static void DrawMainMenuWindowBorder(const struct WindowTemplate *template, u16 u16 sp14 = 7 + baseTileNum; u16 r6 = 8 + baseTileNum; - FillBgTilemapBufferRect(template->bg, baseTileNum, template->tilemapLeft - 1, template->tilemapTop - 1, 1, 1, 0x2); - FillBgTilemapBufferRect(template->bg, r9, template->tilemapLeft, template->tilemapTop - 1, template->width, 1, 0x2); - FillBgTilemapBufferRect(template->bg, r10, template->tilemapLeft + template->width, template->tilemapTop - 1, 1, 1, 0x2); - FillBgTilemapBufferRect(template->bg, sp18, template->tilemapLeft - 1, template->tilemapTop, 1, template->height, 0x2); - FillBgTilemapBufferRect(template->bg, spC, template->tilemapLeft + template->width, template->tilemapTop, 1, template->height, 0x2); - FillBgTilemapBufferRect(template->bg, sp10, template->tilemapLeft - 1, template->tilemapTop + template->height, 1, 1, 0x2); - FillBgTilemapBufferRect(template->bg, sp14, template->tilemapLeft, template->tilemapTop + template->height, template->width, 1, 0x2); - FillBgTilemapBufferRect(template->bg, r6, template->tilemapLeft + template->width, template->tilemapTop + template->height, 1, 1, 0x2); + FillBgTilemapBufferRect(template->bg, baseTileNum, template->tilemapLeft - 1, template->tilemapTop - 1, 1, 1, 2); + FillBgTilemapBufferRect(template->bg, r9, template->tilemapLeft, template->tilemapTop - 1, template->width, 1, 2); + FillBgTilemapBufferRect(template->bg, r10, template->tilemapLeft + template->width, template->tilemapTop - 1, 1, 1, 2); + FillBgTilemapBufferRect(template->bg, sp18, template->tilemapLeft - 1, template->tilemapTop, 1, template->height, 2); + FillBgTilemapBufferRect(template->bg, spC, template->tilemapLeft + template->width, template->tilemapTop, 1, template->height, 2); + FillBgTilemapBufferRect(template->bg, sp10, template->tilemapLeft - 1, template->tilemapTop + template->height, 1, 1, 2); + FillBgTilemapBufferRect(template->bg, sp14, template->tilemapLeft, template->tilemapTop + template->height, template->width, 1, 2); + FillBgTilemapBufferRect(template->bg, r6, template->tilemapLeft + template->width, template->tilemapTop + template->height, 1, 1, 2); CopyBgTilemapBufferToVram(template->bg); } static void ClearMainMenuWindowTilemap(const struct WindowTemplate *template) { - FillBgTilemapBufferRect(template->bg, 0, template->tilemapLeft - 1, template->tilemapTop - 1, template->tilemapLeft + template->width + 1, template->tilemapTop + template->height + 1, 0x2); + FillBgTilemapBufferRect(template->bg, 0, template->tilemapLeft - 1, template->tilemapTop - 1, template->tilemapLeft + template->width + 1, template->tilemapTop + template->height + 1, 2); CopyBgTilemapBufferToVram(template->bg); } static void NewGameBirchSpeech_ClearGenderWindowTilemap(u8 bg, u8 x, u8 y, u8 width, u8 height, u8 unused) { - FillBgTilemapBufferRect(bg, 0, x + 255, y + 255, width + 2, height + 2, 0x2); + FillBgTilemapBufferRect(bg, 0, x + 255, y + 255, width + 2, height + 2, 2); } static void NewGameBirchSpeech_ClearGenderWindow(u8 windowId, bool8 copyToVram) diff --git a/src/map_name_popup.c b/src/map_name_popup.c index f7d5320d3..93a282583 100644 --- a/src/map_name_popup.c +++ b/src/map_name_popup.c @@ -351,19 +351,19 @@ static void DrawMapNamePopUpFrame(u8 bg, u8 x, u8 y, u8 deltaX, u8 deltaY, u8 un // Draw top edge for (i = 0; i < 1 + TILE_TOP_EDGE_END - TILE_TOP_EDGE_START; i++) - FillBgTilemapBufferRect(bg, TILE_TOP_EDGE_START + i, i - 1 + x, y - 1, 1, 1, 0xE); + FillBgTilemapBufferRect(bg, TILE_TOP_EDGE_START + i, i - 1 + x, y - 1, 1, 1, 14); // Draw sides - FillBgTilemapBufferRect(bg, TILE_LEFT_EDGE_TOP, x - 1, y, 1, 1, 0xE); - FillBgTilemapBufferRect(bg, TILE_RIGHT_EDGE_TOP, deltaX + x, y, 1, 1, 0xE); - FillBgTilemapBufferRect(bg, TILE_LEFT_EDGE_MID, x - 1, y + 1, 1, 1, 0xE); - FillBgTilemapBufferRect(bg, TILE_RIGHT_EDGE_MID, deltaX + x, y + 1, 1, 1, 0xE); - FillBgTilemapBufferRect(bg, TILE_LEFT_EDGE_BOT, x - 1, y + 2, 1, 1, 0xE); - FillBgTilemapBufferRect(bg, TILE_RIGHT_EDGE_BOT, deltaX + x, y + 2, 1, 1, 0xE); + FillBgTilemapBufferRect(bg, TILE_LEFT_EDGE_TOP, x - 1, y, 1, 1, 14); + FillBgTilemapBufferRect(bg, TILE_RIGHT_EDGE_TOP, deltaX + x, y, 1, 1, 14); + FillBgTilemapBufferRect(bg, TILE_LEFT_EDGE_MID, x - 1, y + 1, 1, 1, 14); + FillBgTilemapBufferRect(bg, TILE_RIGHT_EDGE_MID, deltaX + x, y + 1, 1, 1, 14); + FillBgTilemapBufferRect(bg, TILE_LEFT_EDGE_BOT, x - 1, y + 2, 1, 1, 14); + FillBgTilemapBufferRect(bg, TILE_RIGHT_EDGE_BOT, deltaX + x, y + 2, 1, 1, 14); // Draw bottom edge for (i = 0; i < 1 + TILE_BOT_EDGE_END - TILE_BOT_EDGE_START; i++) - FillBgTilemapBufferRect(bg, TILE_BOT_EDGE_START + i, i - 1 + x, y + deltaY, 1, 1, 0xE); + FillBgTilemapBufferRect(bg, TILE_BOT_EDGE_START + i, i - 1 + x, y + deltaY, 1, 1, 14); } static void LoadMapNamePopUpWindowBg(void) @@ -385,8 +385,8 @@ static void LoadMapNamePopUpWindowBg(void) CallWindowFunction(popupWindowId, DrawMapNamePopUpFrame); PutWindowTilemap(popupWindowId); if (gMapHeader.weather == WEATHER_UNDERWATER_BUBBLES) - LoadPalette(&sMapPopUp_Palette_Underwater, BG_PLTT_ID(0xE), sizeof(sMapPopUp_Palette_Underwater)); + LoadPalette(&sMapPopUp_Palette_Underwater, BG_PLTT_ID(14), sizeof(sMapPopUp_Palette_Underwater)); else - LoadPalette(sMapPopUp_PaletteTable[popUpThemeId], BG_PLTT_ID(0xE), sizeof(sMapPopUp_PaletteTable[0])); + LoadPalette(sMapPopUp_PaletteTable[popUpThemeId], BG_PLTT_ID(14), sizeof(sMapPopUp_PaletteTable[0])); BlitBitmapToWindow(popupWindowId, sMapPopUp_Table[popUpThemeId], 0, 0, 80, 24); } diff --git a/src/match_call.c b/src/match_call.c index 5d92e55b9..a9d18b347 100644 --- a/src/match_call.c +++ b/src/match_call.c @@ -1235,7 +1235,7 @@ static const struct WindowTemplate sMatchCallTextWindow = .tilemapTop = 15, .width = 28, .height = 4, - .paletteNum = 0xF, + .paletteNum = 15, .baseBlock = 0x200 }; @@ -1267,8 +1267,8 @@ static bool32 MatchCall_LoadGfx(u8 taskId) } FillWindowPixelBuffer(tWindowId, PIXEL_FILL(8)); - LoadPalette(sMatchCallWindow_Pal, BG_PLTT_ID(0xE), sizeof(sMatchCallWindow_Pal)); - LoadPalette(sPokenavIcon_Pal, BG_PLTT_ID(0xF), sizeof(sPokenavIcon_Pal)); + LoadPalette(sMatchCallWindow_Pal, BG_PLTT_ID(14), sizeof(sMatchCallWindow_Pal)); + LoadPalette(sPokenavIcon_Pal, BG_PLTT_ID(15), sizeof(sPokenavIcon_Pal)); ChangeBgY(0, -0x2000, BG_COORD_SET); return TRUE; } diff --git a/src/menu.c b/src/menu.c index 2a8b2f565..ad3381de9 100644 --- a/src/menu.c +++ b/src/menu.c @@ -20,9 +20,9 @@ #include "window.h" #include "constants/songs.h" -#define DLG_WINDOW_PALETTE_NUM 0xF +#define DLG_WINDOW_PALETTE_NUM 15 #define DLG_WINDOW_BASE_TILE_NUM 0x200 -#define STD_WINDOW_PALETTE_NUM 0xE +#define STD_WINDOW_PALETTE_NUM 14 #define STD_WINDOW_PALETTE_SIZE PLTT_SIZEOF(10) #define STD_WINDOW_BASE_TILE_NUM 0x214 @@ -89,7 +89,7 @@ static const struct WindowTemplate sStandardTextBox_WindowTemplates[] = .tilemapTop = 15, .width = 27, .height = 4, - .paletteNum = 0xF, + .paletteNum = 15, .baseBlock = 0x194 }, DUMMY_WIN_TEMPLATE @@ -102,7 +102,7 @@ static const struct WindowTemplate sYesNo_WindowTemplates = .tilemapTop = 9, .width = 5, .height = 4, - .paletteNum = 0xF, + .paletteNum = 15, .baseBlock = 0x125 }; @@ -429,7 +429,7 @@ void SetStandardWindowBorderStyle(u8 windowId, bool8 copyToVram) void LoadMessageBoxAndFrameGfx(u8 windowId, bool8 copyToVram) { LoadMessageBoxGfx(windowId, DLG_WINDOW_BASE_TILE_NUM, BG_PLTT_ID(DLG_WINDOW_PALETTE_NUM)); - DrawDialogFrameWithCustomTileAndPalette(windowId, copyToVram, DLG_WINDOW_BASE_TILE_NUM, 0xF); + DrawDialogFrameWithCustomTileAndPalette(windowId, copyToVram, DLG_WINDOW_BASE_TILE_NUM, DLG_WINDOW_PALETTE_NUM); } void Menu_LoadStdPal(void) @@ -686,7 +686,7 @@ void ClearDialogWindowAndFrameToTransparent(u8 windowId, bool8 copyToVram) static void WindowFunc_ClearDialogWindowAndFrameNullPalette(u8 bg, u8 tilemapLeft, u8 tilemapTop, u8 width, u8 height, u8 paletteNum) { - FillBgTilemapBufferRect(bg, 0, tilemapLeft - 3, tilemapTop - 1, width + 6, height + 2, 0x0); + FillBgTilemapBufferRect(bg, 0, tilemapLeft - 3, tilemapTop - 1, width + 6, height + 2, 0); } void DrawStdFrameWithCustomTileAndPalette(u8 windowId, bool8 copyToVram, u16 baseTileNum, u8 paletteNum) @@ -783,7 +783,7 @@ void ClearStdWindowAndFrameToTransparent(u8 windowId, bool8 copyToVram) static void WindowFunc_ClearStdWindowAndFrameToTransparent(u8 bg, u8 tilemapLeft, u8 tilemapTop, u8 width, u8 height, u8 paletteNum) { - FillBgTilemapBufferRect(bg, 0, tilemapLeft - 1, tilemapTop - 1, width + 2, height + 2, 0x0); + FillBgTilemapBufferRect(bg, 0, tilemapLeft - 1, tilemapTop - 1, width + 2, height + 2, 0); } // Creates the window used to display the info bar at the top of the HOF PC that shows the controls and team number. @@ -806,8 +806,8 @@ u8 HofPCTopBar_AddWindow(u8 bg, u8 xPos, u8 yPos, u8 palette, u16 baseTile) sHofPCTopBarWindowId = AddWindow(&window); - if (palette > 0xF) - palette = BG_PLTT_ID(0xF); + if (palette > 15) + palette = BG_PLTT_ID(15); else palette = BG_PLTT_ID(palette); diff --git a/src/menu_specialized.c b/src/menu_specialized.c index f4d3493d7..10c57f6e2 100644 --- a/src/menu_specialized.c +++ b/src/menu_specialized.c @@ -48,7 +48,7 @@ static const struct WindowTemplate sWindowTemplates_MailboxMenu[MAILBOXWIN_COUNT .tilemapTop = 1, .width = 8, .height = 2, - .paletteNum = 0xF, + .paletteNum = 15, .baseBlock = 0x8 }, [MAILBOXWIN_LIST] = { @@ -57,7 +57,7 @@ static const struct WindowTemplate sWindowTemplates_MailboxMenu[MAILBOXWIN_COUNT .tilemapTop = 1, .width = 8, .height = 18, - .paletteNum = 0xF, + .paletteNum = 15, .baseBlock = 0x18 }, [MAILBOXWIN_OPTIONS] = { @@ -66,7 +66,7 @@ static const struct WindowTemplate sWindowTemplates_MailboxMenu[MAILBOXWIN_COUNT .tilemapTop = 1, .width = 11, .height = 8, - .paletteNum = 0xF, + .paletteNum = 15, .baseBlock = 0x18 } }; @@ -114,7 +114,7 @@ static const struct WindowTemplate sMoveRelearnerWindowTemplates[] = .tilemapTop = 1, .width = 16, .height = 12, - .paletteNum = 0xF, + .paletteNum = 15, .baseBlock = 0xA }, { @@ -123,7 +123,7 @@ static const struct WindowTemplate sMoveRelearnerWindowTemplates[] = .tilemapTop = 1, .width = 16, .height = 12, - .paletteNum = 0xF, + .paletteNum = 15, .baseBlock = 0xCA }, { @@ -132,7 +132,7 @@ static const struct WindowTemplate sMoveRelearnerWindowTemplates[] = .tilemapTop = 1, .width = 10, .height = 12, - .paletteNum = 0xF, + .paletteNum = 15, .baseBlock = 0x18A }, { @@ -141,7 +141,7 @@ static const struct WindowTemplate sMoveRelearnerWindowTemplates[] = .tilemapTop = 15, .width = 22, .height = 4, - .paletteNum = 0xF, + .paletteNum = 15, .baseBlock = 0x202 }, { @@ -150,7 +150,7 @@ static const struct WindowTemplate sMoveRelearnerWindowTemplates[] = .tilemapTop = 8, .width = 5, .height = 4, - .paletteNum = 0xF, + .paletteNum = 15, .baseBlock = 0x25A }, DUMMY_WIN_TEMPLATE @@ -163,7 +163,7 @@ static const struct WindowTemplate sMoveRelearnerYesNoMenuTemplate = .tilemapTop = 8, .width = 5, .height = 4, - .paletteNum = 0xF, + .paletteNum = 15, .baseBlock = 0x25A }; @@ -707,8 +707,8 @@ void InitMoveRelearnerWindows(bool8 useContextWindow) InitWindows(sMoveRelearnerWindowTemplates); DeactivateAllTextPrinters(); - LoadUserWindowBorderGfx(0, 1, BG_PLTT_ID(0xE)); - LoadPalette(gStandardMenuPalette, BG_PLTT_ID(0xF), PLTT_SIZE_4BPP); + LoadUserWindowBorderGfx(0, 1, BG_PLTT_ID(14)); + LoadPalette(gStandardMenuPalette, BG_PLTT_ID(15), PLTT_SIZE_4BPP); for (i = 0; i < ARRAY_COUNT(sMoveRelearnerWindowTemplates) - 1; i++) FillWindowPixelBuffer(i, PIXEL_FILL(1)); diff --git a/src/mystery_event_menu.c b/src/mystery_event_menu.c index 59e6d999e..eecfe20db 100644 --- a/src/mystery_event_menu.c +++ b/src/mystery_event_menu.c @@ -46,7 +46,7 @@ static const struct WindowTemplate sWindowTemplates[] = .tilemapTop = 15, .width = 22, .height = 4, - .paletteNum = 0xE, + .paletteNum = 14, .baseBlock = 20 }, { @@ -55,7 +55,7 @@ static const struct WindowTemplate sWindowTemplates[] = .tilemapTop = 6, .width = 16, .height = 4, - .paletteNum = 0xE, + .paletteNum = 14, .baseBlock = 0x6C }, DUMMY_WIN_TEMPLATE @@ -91,8 +91,8 @@ void CB2_InitMysteryEventMenu(void) FillWindowPixelBuffer(i, PIXEL_FILL(0)); FillBgTilemapBufferRect_Palette0(0, 0, 0, 0, 0x1E, 0x14); - LoadUserWindowBorderGfx(0, 1, BG_PLTT_ID(0xD)); - Menu_LoadStdPalAt(BG_PLTT_ID(0xE)); + LoadUserWindowBorderGfx(0, 1, BG_PLTT_ID(13)); + Menu_LoadStdPalAt(BG_PLTT_ID(14)); SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_MODE_0 | DISPCNT_OBJ_1D_MAP | DISPCNT_BG0_ON); SetGpuReg(REG_OFFSET_BLDCNT, 0); CreateTask(Task_DestroySelf, 0); diff --git a/src/mystery_gift_menu.c b/src/mystery_gift_menu.c index f9e2c2af9..b12d6735c 100644 --- a/src/mystery_gift_menu.c +++ b/src/mystery_gift_menu.c @@ -33,7 +33,7 @@ #include "constants/cable_club.h" #define LIST_MENU_TILE_NUM 10 -#define LIST_MENU_PAL_NUM BG_PLTT_ID(0xE) +#define LIST_MENU_PAL_NUM BG_PLTT_ID(14) static void LoadMysteryGiftTextboxBorder(u8 bgId); static void CreateMysteryGiftTask(void); @@ -104,7 +104,7 @@ static const struct WindowTemplate sMainWindows[] = { .tilemapTop = 0, .width = 30, .height = 2, - .paletteNum = 0xC, + .paletteNum = 12, .baseBlock = 0x0013 }, { .bg = 0, @@ -112,7 +112,7 @@ static const struct WindowTemplate sMainWindows[] = { .tilemapTop = 15, .width = 28, .height = 4, - .paletteNum = 0xC, + .paletteNum = 12, .baseBlock = 0x004f }, { .bg = 0, @@ -120,7 +120,7 @@ static const struct WindowTemplate sMainWindows[] = { .tilemapTop = 15, .width = 30, .height = 5, - .paletteNum = 0xD, + .paletteNum = 13, .baseBlock = 0x004f }, DUMMY_WIN_TEMPLATE @@ -132,7 +132,7 @@ static const struct WindowTemplate sWindowTemplate_YesNoMsg_Wide = { .tilemapTop = 15, .width = 28, .height = 4, - .paletteNum = 0xC, + .paletteNum = 12, .baseBlock = 0x00e5 }; @@ -142,7 +142,7 @@ static const struct WindowTemplate sWindowTemplate_YesNoMsg = { .tilemapTop = 15, .width = 20, .height = 4, - .paletteNum = 0xC, + .paletteNum = 12, .baseBlock = 0x00e5 }; @@ -152,7 +152,7 @@ static const struct WindowTemplate sWindowTemplate_GiftSelect = { .tilemapTop = 15, .width = 19, .height = 4, - .paletteNum = 0xC, + .paletteNum = 12, .baseBlock = 0x00e5 }; @@ -162,7 +162,7 @@ static const struct WindowTemplate sWindowTemplate_ThreeOptions = { .tilemapTop = 6, .width = 14, .height = 6, - .paletteNum = 0xC, + .paletteNum = 12, .baseBlock = 0x0155 }; @@ -172,7 +172,7 @@ static const struct WindowTemplate sWindowTemplate_YesNoBox = { .tilemapTop = 15, .width = 6, .height = 4, - .paletteNum = 0xC, + .paletteNum = 12, .baseBlock = 0x0155 }; @@ -182,7 +182,7 @@ static const struct WindowTemplate sWindowTemplate_GiftSelect_3Options = { .tilemapTop = 11, .width = 7, .height = 8, - .paletteNum = 0xC, + .paletteNum = 12, .baseBlock = 0x0155 }; @@ -192,7 +192,7 @@ static const struct WindowTemplate sWindowTemplate_GiftSelect_2Options = { .tilemapTop = 13, .width = 7, .height = 6, - .paletteNum = 0xC, + .paletteNum = 12, .baseBlock = 0x0155 }; @@ -202,7 +202,7 @@ static const struct WindowTemplate sWindowTemplate_GiftSelect_1Option = { .tilemapTop = 15, .width = 7, .height = 4, - .paletteNum = 0xC, + .paletteNum = 12, .baseBlock = 0x0155 }; @@ -411,11 +411,11 @@ static bool32 HandleMysteryGiftOrEReaderSetup(s32 isEReader) gMain.state++; break; case 1: - LoadPalette(sTextboxBorder_Pal, BG_PLTT_ID(0x0), PLTT_SIZE_4BPP); - LoadPalette(GetTextWindowPalette(2), BG_PLTT_ID(0xD), PLTT_SIZE_4BPP); - Menu_LoadStdPalAt(BG_PLTT_ID(0xC)); - LoadUserWindowBorderGfx(0, 0xA, BG_PLTT_ID(0xE)); - LoadUserWindowBorderGfx_(0, 0x1, BG_PLTT_ID(0xF)); + LoadPalette(sTextboxBorder_Pal, BG_PLTT_ID(0), PLTT_SIZE_4BPP); + LoadPalette(GetTextWindowPalette(2), BG_PLTT_ID(13), PLTT_SIZE_4BPP); + Menu_LoadStdPalAt(BG_PLTT_ID(12)); + LoadUserWindowBorderGfx(0, 0xA, BG_PLTT_ID(14)); + LoadUserWindowBorderGfx_(0, 0x1, BG_PLTT_ID(15)); FillBgTilemapBufferRect(0, 0x000, 0, 0, 32, 32, 17); FillBgTilemapBufferRect(1, 0x000, 0, 0, 32, 32, 17); FillBgTilemapBufferRect(2, 0x000, 0, 0, 32, 32, 17); diff --git a/src/mystery_gift_view.c b/src/mystery_gift_view.c index d279bb2f5..442737316 100644 --- a/src/mystery_gift_view.c +++ b/src/mystery_gift_view.c @@ -96,7 +96,7 @@ static const struct WindowTemplate sCard_WindowTemplates[] = { .tilemapTop = 1, .width = 25, .height = 4, - .paletteNum = 0x2, + .paletteNum = 2, .baseBlock = 0x029c }, [CARD_WIN_BODY] = { @@ -105,7 +105,7 @@ static const struct WindowTemplate sCard_WindowTemplates[] = { .tilemapTop = 6, .width = 28, .height = 8, - .paletteNum = 0x2, + .paletteNum = 2, .baseBlock = 0x01bc }, [CARD_WIN_FOOTER] = { @@ -114,7 +114,7 @@ static const struct WindowTemplate sCard_WindowTemplates[] = { .tilemapTop = 14, .width = 28, .height = 5, - .paletteNum = 0x2, + .paletteNum = 2, .baseBlock = 0x0130 } }; @@ -239,11 +239,11 @@ s32 WonderCard_Enter(void) case 3: if (FreeTempTileDataBuffersIfPossible()) return 0; - LoadPalette(GetTextWindowPalette(1), BG_PLTT_ID(0x2), PLTT_SIZE_4BPP); + LoadPalette(GetTextWindowPalette(1), BG_PLTT_ID(2), PLTT_SIZE_4BPP); gPaletteFade.bufferTransferDisabled = TRUE; - LoadPalette(sWonderCardData->gfx->pal, BG_PLTT_ID(0x1), PLTT_SIZE_4BPP); + LoadPalette(sWonderCardData->gfx->pal, BG_PLTT_ID(1), PLTT_SIZE_4BPP); LZ77UnCompWram(sWonderCardData->gfx->map, sWonderCardData->bgTilemapBuffer); - CopyRectToBgTilemapBufferRect(2, sWonderCardData->bgTilemapBuffer, 0, 0, 30, 20, 0, 0, 30, 20, 0x1, 0x008, 0); + CopyRectToBgTilemapBufferRect(2, sWonderCardData->bgTilemapBuffer, 0, 0, 30, 20, 0, 0, 30, 20, 1, 0x008, 0); CopyBgTilemapBufferToVram(2); break; case 4: @@ -586,7 +586,7 @@ static const struct WindowTemplate sNews_WindowTemplates[] = { .tilemapTop = 0, .width = 28, .height = 3, - .paletteNum = 0x2, + .paletteNum = 2, .baseBlock = 0x2AC }, [NEWS_WIN_BODY] = { @@ -595,7 +595,7 @@ static const struct WindowTemplate sNews_WindowTemplates[] = { .tilemapTop = 3, .width = 28, .height = 20, - .paletteNum = 0x2, + .paletteNum = 2, .baseBlock = 0x07C } }; @@ -702,12 +702,12 @@ s32 WonderNews_Enter(void) case 3: if (FreeTempTileDataBuffersIfPossible()) return 0; - LoadPalette(GetTextWindowPalette(1), BG_PLTT_ID(0x2), PLTT_SIZE_4BPP); + LoadPalette(GetTextWindowPalette(1), BG_PLTT_ID(2), PLTT_SIZE_4BPP); gPaletteFade.bufferTransferDisabled = TRUE; - LoadPalette(sWonderNewsData->gfx->pal, BG_PLTT_ID(0x1), PLTT_SIZE_4BPP); + LoadPalette(sWonderNewsData->gfx->pal, BG_PLTT_ID(1), PLTT_SIZE_4BPP); LZ77UnCompWram(sWonderNewsData->gfx->map, sWonderNewsData->bgTilemapBuffer); - CopyRectToBgTilemapBufferRect(1, sWonderNewsData->bgTilemapBuffer, 0, 0, 30, 3, 0, 0, 30, 3, 0x1, 8, 0); - CopyRectToBgTilemapBufferRect(3, sWonderNewsData->bgTilemapBuffer, 0, 3, 30, 23, 0, 3, 30, 23, 0x1, 8, 0); + CopyRectToBgTilemapBufferRect(1, sWonderNewsData->bgTilemapBuffer, 0, 0, 30, 3, 0, 0, 30, 3, 1, 8, 0); + CopyRectToBgTilemapBufferRect(3, sWonderNewsData->bgTilemapBuffer, 0, 3, 30, 23, 0, 3, 30, 23, 1, 8, 0); CopyBgTilemapBufferToVram(1); CopyBgTilemapBufferToVram(3); break; diff --git a/src/naming_screen.c b/src/naming_screen.c index bbdcef565..4cd03ffba 100644 --- a/src/naming_screen.c +++ b/src/naming_screen.c @@ -233,7 +233,7 @@ static const struct WindowTemplate sWindowTemplates[WIN_COUNT + 1] = .tilemapTop = 10, .width = 19, .height = 8, - .paletteNum = 0xA, + .paletteNum = 10, .baseBlock = 0x030 }, [WIN_KB_PAGE_2] = { @@ -242,7 +242,7 @@ static const struct WindowTemplate sWindowTemplates[WIN_COUNT + 1] = .tilemapTop = 10, .width = 19, .height = 8, - .paletteNum = 0xA, + .paletteNum = 10, .baseBlock = 0x0C8 }, [WIN_TEXT_ENTRY] = { @@ -251,7 +251,7 @@ static const struct WindowTemplate sWindowTemplates[WIN_COUNT + 1] = .tilemapTop = 6, .width = 17, .height = 2, - .paletteNum = 0xA, + .paletteNum = 10, .baseBlock = 0x030 }, [WIN_TEXT_ENTRY_BOX] = { @@ -260,7 +260,7 @@ static const struct WindowTemplate sWindowTemplates[WIN_COUNT + 1] = .tilemapTop = 4, .width = 17, .height = 2, - .paletteNum = 0xA, + .paletteNum = 10, .baseBlock = 0x052 }, [WIN_BANNER] = { @@ -269,7 +269,7 @@ static const struct WindowTemplate sWindowTemplates[WIN_COUNT + 1] = .tilemapTop = 0, .width = 30, .height = 2, - .paletteNum = 0xB, + .paletteNum = 11, .baseBlock = 0x074 }, DUMMY_WIN_TEMPLATE @@ -1880,9 +1880,9 @@ static void CreateHelperTasks(void) static void LoadPalettes(void) { - LoadPalette(gNamingScreenMenu_Pal, BG_PLTT_ID(0x0), sizeof(gNamingScreenMenu_Pal)); - LoadPalette(sKeyboard_Pal, BG_PLTT_ID(0xA), sizeof(sKeyboard_Pal)); - LoadPalette(GetTextWindowPalette(2), BG_PLTT_ID(0xB), PLTT_SIZE_4BPP); + LoadPalette(gNamingScreenMenu_Pal, BG_PLTT_ID(0), sizeof(gNamingScreenMenu_Pal)); + LoadPalette(sKeyboard_Pal, BG_PLTT_ID(10), sizeof(sKeyboard_Pal)); + LoadPalette(GetTextWindowPalette(2), BG_PLTT_ID(11), PLTT_SIZE_4BPP); } static void DrawBgTilemap(u8 bg, const void *src) diff --git a/src/option_menu.c b/src/option_menu.c index e3d767c5e..d2f1bc4ce 100644 --- a/src/option_menu.c +++ b/src/option_menu.c @@ -102,7 +102,7 @@ static const struct WindowTemplate sOptionMenuWinTemplates[] = .tilemapTop = 1, .width = 26, .height = 2, - .paletteNum = 0x1, + .paletteNum = 1, .baseBlock = 2 }, { @@ -111,7 +111,7 @@ static const struct WindowTemplate sOptionMenuWinTemplates[] = .tilemapTop = 5, .width = 26, .height = 14, - .paletteNum = 0x1, + .paletteNum = 1, .baseBlock = 0x36 }, DUMMY_WIN_TEMPLATE @@ -207,12 +207,12 @@ void CB2_InitOptionMenu(void) gMain.state++; break; case 4: - LoadPalette(sOptionMenuBg_Pal, BG_PLTT_ID(0x0), sizeof(sOptionMenuBg_Pal)); - LoadPalette(GetWindowFrameTilesPal(gSaveBlock2Ptr->optionsWindowFrameType)->pal, BG_PLTT_ID(0x7), PLTT_SIZE_4BPP); + LoadPalette(sOptionMenuBg_Pal, BG_PLTT_ID(0), sizeof(sOptionMenuBg_Pal)); + LoadPalette(GetWindowFrameTilesPal(gSaveBlock2Ptr->optionsWindowFrameType)->pal, BG_PLTT_ID(7), PLTT_SIZE_4BPP); gMain.state++; break; case 5: - LoadPalette(sOptionMenuText_Pal, BG_PLTT_ID(0x1), sizeof(sOptionMenuText_Pal)); + LoadPalette(sOptionMenuText_Pal, BG_PLTT_ID(1), sizeof(sOptionMenuText_Pal)); gMain.state++; break; case 6: @@ -529,7 +529,7 @@ static u8 FrameType_ProcessInput(u8 selection) selection = 0; LoadBgTiles(1, GetWindowFrameTilesPal(selection)->tiles, 0x120, 0x1A2); - LoadPalette(GetWindowFrameTilesPal(selection)->pal, BG_PLTT_ID(0x7), PLTT_SIZE_4BPP); + LoadPalette(GetWindowFrameTilesPal(selection)->pal, BG_PLTT_ID(7), PLTT_SIZE_4BPP); sArrowPressed = TRUE; } if (JOY_NEW(DPAD_LEFT)) @@ -540,7 +540,7 @@ static u8 FrameType_ProcessInput(u8 selection) selection = WINDOW_FRAMES_COUNT - 1; LoadBgTiles(1, GetWindowFrameTilesPal(selection)->tiles, 0x120, 0x1A2); - LoadPalette(GetWindowFrameTilesPal(selection)->pal, BG_PLTT_ID(0x7), PLTT_SIZE_4BPP); + LoadPalette(GetWindowFrameTilesPal(selection)->pal, BG_PLTT_ID(7), PLTT_SIZE_4BPP); sArrowPressed = TRUE; } return selection; @@ -653,24 +653,24 @@ static void DrawBgWindowFrames(void) { // bg, tile, x, y, width, height, palNum // Draw title window frame - FillBgTilemapBufferRect(1, TILE_TOP_CORNER_L, 1, 0, 1, 1, 0x7); - FillBgTilemapBufferRect(1, TILE_TOP_EDGE, 2, 0, 27, 1, 0x7); - FillBgTilemapBufferRect(1, TILE_TOP_CORNER_R, 28, 0, 1, 1, 0x7); - FillBgTilemapBufferRect(1, TILE_LEFT_EDGE, 1, 1, 1, 2, 0x7); - FillBgTilemapBufferRect(1, TILE_RIGHT_EDGE, 28, 1, 1, 2, 0x7); - FillBgTilemapBufferRect(1, TILE_BOT_CORNER_L, 1, 3, 1, 1, 0x7); - FillBgTilemapBufferRect(1, TILE_BOT_EDGE, 2, 3, 27, 1, 0x7); - FillBgTilemapBufferRect(1, TILE_BOT_CORNER_R, 28, 3, 1, 1, 0x7); + FillBgTilemapBufferRect(1, TILE_TOP_CORNER_L, 1, 0, 1, 1, 7); + FillBgTilemapBufferRect(1, TILE_TOP_EDGE, 2, 0, 27, 1, 7); + FillBgTilemapBufferRect(1, TILE_TOP_CORNER_R, 28, 0, 1, 1, 7); + FillBgTilemapBufferRect(1, TILE_LEFT_EDGE, 1, 1, 1, 2, 7); + FillBgTilemapBufferRect(1, TILE_RIGHT_EDGE, 28, 1, 1, 2, 7); + FillBgTilemapBufferRect(1, TILE_BOT_CORNER_L, 1, 3, 1, 1, 7); + FillBgTilemapBufferRect(1, TILE_BOT_EDGE, 2, 3, 27, 1, 7); + FillBgTilemapBufferRect(1, TILE_BOT_CORNER_R, 28, 3, 1, 1, 7); // Draw options list window frame - FillBgTilemapBufferRect(1, TILE_TOP_CORNER_L, 1, 4, 1, 1, 0x7); - FillBgTilemapBufferRect(1, TILE_TOP_EDGE, 2, 4, 26, 1, 0x7); - FillBgTilemapBufferRect(1, TILE_TOP_CORNER_R, 28, 4, 1, 1, 0x7); - FillBgTilemapBufferRect(1, TILE_LEFT_EDGE, 1, 5, 1, 18, 0x7); - FillBgTilemapBufferRect(1, TILE_RIGHT_EDGE, 28, 5, 1, 18, 0x7); - FillBgTilemapBufferRect(1, TILE_BOT_CORNER_L, 1, 19, 1, 1, 0x7); - FillBgTilemapBufferRect(1, TILE_BOT_EDGE, 2, 19, 26, 1, 0x7); - FillBgTilemapBufferRect(1, TILE_BOT_CORNER_R, 28, 19, 1, 1, 0x7); + FillBgTilemapBufferRect(1, TILE_TOP_CORNER_L, 1, 4, 1, 1, 7); + FillBgTilemapBufferRect(1, TILE_TOP_EDGE, 2, 4, 26, 1, 7); + FillBgTilemapBufferRect(1, TILE_TOP_CORNER_R, 28, 4, 1, 1, 7); + FillBgTilemapBufferRect(1, TILE_LEFT_EDGE, 1, 5, 1, 18, 7); + FillBgTilemapBufferRect(1, TILE_RIGHT_EDGE, 28, 5, 1, 18, 7); + FillBgTilemapBufferRect(1, TILE_BOT_CORNER_L, 1, 19, 1, 1, 7); + FillBgTilemapBufferRect(1, TILE_BOT_EDGE, 2, 19, 26, 1, 7); + FillBgTilemapBufferRect(1, TILE_BOT_CORNER_R, 28, 19, 1, 1, 7); CopyBgTilemapBufferToVram(1); } diff --git a/src/palette.c b/src/palette.c index e02e0de5b..577257eff 100644 --- a/src/palette.c +++ b/src/palette.c @@ -431,7 +431,7 @@ static u8 UpdateNormalPaletteFade(void) gPaletteFade.delayCounter = 0; } - paletteOffset = 0x00; + paletteOffset = 0; if (!gPaletteFade.objPaletteToggle) { @@ -452,7 +452,7 @@ static u8 UpdateNormalPaletteFade(void) gPaletteFade.y, gPaletteFade.blendColor); selectedPalettes >>= 1; - paletteOffset += 0x10; + paletteOffset += 16; } gPaletteFade.objPaletteToggle ^= 1; @@ -495,7 +495,7 @@ static u8 UpdateNormalPaletteFade(void) void InvertPlttBuffer(u32 selectedPalettes) { - u16 paletteOffset = 0x00; + u16 paletteOffset = 0; while (selectedPalettes) { @@ -506,13 +506,13 @@ void InvertPlttBuffer(u32 selectedPalettes) gPlttBufferFaded[paletteOffset + i] = ~gPlttBufferFaded[paletteOffset + i]; } selectedPalettes >>= 1; - paletteOffset += 0x10; + paletteOffset += 16; } } void TintPlttBuffer(u32 selectedPalettes, s8 r, s8 g, s8 b) { - u16 paletteOffset = 0x00; + u16 paletteOffset = 0; while (selectedPalettes) { @@ -528,13 +528,13 @@ void TintPlttBuffer(u32 selectedPalettes, s8 r, s8 g, s8 b) } } selectedPalettes >>= 1; - paletteOffset += 0x10; + paletteOffset += 16; } } void UnfadePlttBuffer(u32 selectedPalettes) { - u16 paletteOffset = 0x00; + u16 paletteOffset = 0; while (selectedPalettes) { @@ -545,7 +545,7 @@ void UnfadePlttBuffer(u32 selectedPalettes) gPlttBufferFaded[paletteOffset + i] = gPlttBufferUnfaded[paletteOffset + i]; } selectedPalettes >>= 1; - paletteOffset += 0x10; + paletteOffset += 16; } } @@ -835,7 +835,7 @@ void BlendPalettes(u32 selectedPalettes, u8 coeff, u16 color) { u16 paletteOffset; - for (paletteOffset = 0x00; selectedPalettes; paletteOffset += 0x10) + for (paletteOffset = 0; selectedPalettes; paletteOffset += 16) { if (selectedPalettes & 1) BlendPalette(paletteOffset, 16, coeff, color); diff --git a/src/party_menu.c b/src/party_menu.c index 2a4abef2a..1526f36f2 100755 --- a/src/party_menu.c +++ b/src/party_menu.c @@ -668,7 +668,7 @@ static bool8 AllocPartyMenuBgGfx(void) } break; case 2: - LoadCompressedPalette(gPartyMenuBg_Pal, BG_PLTT_ID(0x0), 11 * PLTT_SIZE_4BPP); + LoadCompressedPalette(gPartyMenuBg_Pal, BG_PLTT_ID(0), 11 * PLTT_SIZE_4BPP); CpuCopy16(gPlttBufferUnfaded, sPartyMenuInternal->palBuffer, 11 * PLTT_SIZE_4BPP); sPartyMenuInternal->data[0]++; break; @@ -1021,7 +1021,7 @@ static void CreateCancelConfirmPokeballSprites(void) if (gPartyMenu.menuType == PARTY_MENU_TYPE_MULTI_SHOWCASE) { // The showcase has no Cancel/Confirm buttons - FillBgTilemapBufferRect(1, 14, 23, 17, 7, 2, 0x1); + FillBgTilemapBufferRect(1, 14, 23, 17, 7, 2, 1); } else { @@ -2015,9 +2015,9 @@ static void InitPartyMenuWindows(u8 layout) DeactivateAllTextPrinters(); for (i = 0; i < PARTY_SIZE; i++) FillWindowPixelBuffer(i, PIXEL_FILL(0)); - LoadUserWindowBorderGfx(0, 0x4F, BG_PLTT_ID(0xD)); - LoadPalette(GetOverworldTextboxPalettePtr(), BG_PLTT_ID(0xE), PLTT_SIZE_4BPP); - LoadPalette(gStandardMenuPalette, BG_PLTT_ID(0xF), PLTT_SIZE_4BPP); + LoadUserWindowBorderGfx(0, 0x4F, BG_PLTT_ID(13)); + LoadPalette(GetOverworldTextboxPalettePtr(), BG_PLTT_ID(14), PLTT_SIZE_4BPP); + LoadPalette(gStandardMenuPalette, BG_PLTT_ID(15), PLTT_SIZE_4BPP); } static void CreateCancelConfirmWindows(bool8 chooseHalf) @@ -2417,7 +2417,7 @@ void DisplayPartyMenuStdMessage(u32 stringId) else if (!ShouldUseChooseMonText()) stringId = PARTY_MSG_CHOOSE_MON_OR_CANCEL; } - DrawStdFrameWithCustomTileAndPalette(*windowPtr, FALSE, 0x4F, 0xD); + DrawStdFrameWithCustomTileAndPalette(*windowPtr, FALSE, 0x4F, 13); StringExpandPlaceholders(gStringVar4, sActionStringTable[stringId]); AddTextPrinterParameterized(*windowPtr, FONT_NORMAL, gStringVar4, 0, 1, 0, 0); ScheduleBgCopyTilemapToVram(2); @@ -2822,7 +2822,7 @@ static void MoveAndBufferPartySlot(const void *rectSrc, s16 x, s16 y, s16 width, { FillBgTilemapBufferRect_Palette0(0, 0, newX, y, newWidth, height); if (TryMovePartySlot(x + dir, width, &srcX, &newX, &newWidth)) - CopyRectToBgTilemapBufferRect(0, rectSrc, srcX, 0, width, height, newX, y, newWidth, height, 17, 0, 0x0); + CopyRectToBgTilemapBufferRect(0, rectSrc, srcX, 0, width, height, newX, y, newWidth, height, 17, 0, 0); } } diff --git a/src/player_pc.c b/src/player_pc.c index 1998495be..9ec36d61d 100644 --- a/src/player_pc.c +++ b/src/player_pc.c @@ -244,7 +244,7 @@ static const struct WindowTemplate sWindowTemplates_MainMenus[] = .tilemapTop = 1, .width = 9, .height = 6, - .paletteNum = 0xF, + .paletteNum = 15, .baseBlock = 1 }, [WIN_MAIN_MENU_BEDROOM] = { @@ -253,7 +253,7 @@ static const struct WindowTemplate sWindowTemplates_MainMenus[] = .tilemapTop = 1, .width = 9, .height = 8, - .paletteNum = 0xF, + .paletteNum = 15, .baseBlock = 1 }, [WIN_ITEM_STORAGE_MENU] = { @@ -262,7 +262,7 @@ static const struct WindowTemplate sWindowTemplates_MainMenus[] = .tilemapTop = 1, .width = 10, .height = 8, - .paletteNum = 0xF, + .paletteNum = 15, .baseBlock = 1 } }; @@ -302,7 +302,7 @@ static const struct WindowTemplate sWindowTemplates_ItemStorage[ITEMPC_WIN_COUNT .tilemapTop = 1, .width = 13, .height = 18, - .paletteNum = 0xF, + .paletteNum = 15, .baseBlock = 0x0001 }, [ITEMPC_WIN_MESSAGE] = { @@ -311,7 +311,7 @@ static const struct WindowTemplate sWindowTemplates_ItemStorage[ITEMPC_WIN_COUNT .tilemapTop = 13, .width = 13, .height = 6, - .paletteNum = 0xF, + .paletteNum = 15, .baseBlock = 0x00EB }, [ITEMPC_WIN_ICON] = { @@ -320,7 +320,7 @@ static const struct WindowTemplate sWindowTemplates_ItemStorage[ITEMPC_WIN_COUNT .tilemapTop = 8, .width = 3, .height = 3, - .paletteNum = 0xF, + .paletteNum = 15, .baseBlock = 0x0153 }, [ITEMPC_WIN_TITLE] = { @@ -329,7 +329,7 @@ static const struct WindowTemplate sWindowTemplates_ItemStorage[ITEMPC_WIN_COUNT .tilemapTop = 1, .width = 13, .height = 2, - .paletteNum = 0xF, + .paletteNum = 15, .baseBlock = 0x0139 }, [ITEMPC_WIN_QUANTITY] = { @@ -338,7 +338,7 @@ static const struct WindowTemplate sWindowTemplates_ItemStorage[ITEMPC_WIN_COUNT .tilemapTop = 9, .width = 6, .height = 2, - .paletteNum = 0xF, + .paletteNum = 15, .baseBlock = 0x015C }, [ITEMPC_WIN_YESNO] = { @@ -347,7 +347,7 @@ static const struct WindowTemplate sWindowTemplates_ItemStorage[ITEMPC_WIN_COUNT .tilemapTop = 7, .width = 5, .height = 4, - .paletteNum = 0xF, + .paletteNum = 15, .baseBlock = 0x0168 } }; diff --git a/src/pokeblock.c b/src/pokeblock.c index 769363b3e..f698a25f3 100644 --- a/src/pokeblock.c +++ b/src/pokeblock.c @@ -314,7 +314,7 @@ static const struct WindowTemplate sWindowTemplates[] = .tilemapTop = 1, .width = 9, .height = 2, - .paletteNum = 0xF, + .paletteNum = 15, .baseBlock = 0x1E }, [WIN_LIST] = { @@ -323,7 +323,7 @@ static const struct WindowTemplate sWindowTemplates[] = .tilemapTop = 1, .width = 14, .height = 18, - .paletteNum = 0xF, + .paletteNum = 15, .baseBlock = 0x30 }, [WIN_SPICY] = { @@ -332,7 +332,7 @@ static const struct WindowTemplate sWindowTemplates[] = .tilemapTop = 13, .width = 5, .height = 2, - .paletteNum = 0xF, + .paletteNum = 15, .baseBlock = 0x12C }, [WIN_DRY] = { @@ -341,7 +341,7 @@ static const struct WindowTemplate sWindowTemplates[] = .tilemapTop = 15, .width = 5, .height = 2, - .paletteNum = 0xF, + .paletteNum = 15, .baseBlock = 0x136 }, [WIN_SWEET] = { @@ -350,7 +350,7 @@ static const struct WindowTemplate sWindowTemplates[] = .tilemapTop = 17, .width = 5, .height = 2, - .paletteNum = 0xF, + .paletteNum = 15, .baseBlock = 0x140 }, [WIN_BITTER] = { @@ -359,7 +359,7 @@ static const struct WindowTemplate sWindowTemplates[] = .tilemapTop = 13, .width = 5, .height = 2, - .paletteNum = 0xF, + .paletteNum = 15, .baseBlock = 0x14A }, [WIN_SOUR] = { @@ -368,7 +368,7 @@ static const struct WindowTemplate sWindowTemplates[] = .tilemapTop = 15, .width = 5, .height = 2, - .paletteNum = 0xF, + .paletteNum = 15, .baseBlock = 0x154 }, [WIN_FEEL] = { @@ -377,7 +377,7 @@ static const struct WindowTemplate sWindowTemplates[] = .tilemapTop = 17, .width = 2, .height = 2, - .paletteNum = 0xF, + .paletteNum = 15, .baseBlock = 0x15E }, [WIN_ACTIONS_TALL] = { @@ -386,7 +386,7 @@ static const struct WindowTemplate sWindowTemplates[] = .tilemapTop = 5, .width = 6, .height = 6, - .paletteNum = 0xF, + .paletteNum = 15, .baseBlock = 0x162 }, [WIN_ACTIONS] = { @@ -395,7 +395,7 @@ static const struct WindowTemplate sWindowTemplates[] = .tilemapTop = 7, .width = 6, .height = 4, - .paletteNum = 0xF, + .paletteNum = 15, .baseBlock = 0x186 }, [WIN_TOSS_MSG] = { @@ -404,7 +404,7 @@ static const struct WindowTemplate sWindowTemplates[] = .tilemapTop = 15, .width = 27, .height = 4, - .paletteNum = 0xF, + .paletteNum = 15, .baseBlock = 0x19E }, DUMMY_WIN_TEMPLATE @@ -417,7 +417,7 @@ static const struct WindowTemplate sTossPkblockWindowTemplate = .tilemapTop = 9, .width = 5, .height = 4, - .paletteNum = 0xF, + .paletteNum = 15, .baseBlock = 0x20A }; @@ -653,7 +653,7 @@ static bool8 LoadPokeblockMenuGfx(void) } break; case 2: - LoadCompressedPalette(gMenuPokeblock_Pal, BG_PLTT_ID(0x0), 6 * PLTT_SIZE_4BPP); + LoadCompressedPalette(gMenuPokeblock_Pal, BG_PLTT_ID(0), 6 * PLTT_SIZE_4BPP); sPokeblockMenu->gfxState++; break; case 3: @@ -679,9 +679,9 @@ static void HandleInitWindows(void) InitWindows(sWindowTemplates); DeactivateAllTextPrinters(); - LoadUserWindowBorderGfx(0, 1, BG_PLTT_ID(0xE)); - LoadMessageBoxGfx(0, 0xA, BG_PLTT_ID(0xD)); - LoadPalette(gStandardMenuPalette, BG_PLTT_ID(0xF), PLTT_SIZE_4BPP); + LoadUserWindowBorderGfx(0, 1, BG_PLTT_ID(14)); + LoadMessageBoxGfx(0, 0xA, BG_PLTT_ID(13)); + LoadPalette(gStandardMenuPalette, BG_PLTT_ID(15), PLTT_SIZE_4BPP); for (i = 0; i < ARRAY_COUNT(sWindowTemplates) - 1; i++) FillWindowPixelBuffer(i, PIXEL_FILL(0)); diff --git a/src/pokeblock_feed.c b/src/pokeblock_feed.c index 53de0ee9a..7117be885 100644 --- a/src/pokeblock_feed.c +++ b/src/pokeblock_feed.c @@ -459,7 +459,7 @@ static const struct WindowTemplate sWindowTemplates[] = .tilemapTop = 15, .width = 28, .height = 4, - .paletteNum = 0xF, + .paletteNum = 15, .baseBlock = 0xA }, DUMMY_WIN_TEMPLATE @@ -771,7 +771,7 @@ static bool8 LoadMonAndSceneGfx(struct Pokemon *mon) } break; case 8: - LoadCompressedPalette(gBattleTerrainPalette_Frontier, BG_PLTT_ID(0x2), 3 * PLTT_SIZE_4BPP); + LoadCompressedPalette(gBattleTerrainPalette_Frontier, BG_PLTT_ID(2), 3 * PLTT_SIZE_4BPP); sPokeblockFeed->loadGfxState = 0; return TRUE; } @@ -783,8 +783,8 @@ static void HandleInitWindows(void) { InitWindows(sWindowTemplates); DeactivateAllTextPrinters(); - LoadUserWindowBorderGfx(0, 1, BG_PLTT_ID(0xE)); - LoadPalette(gStandardMenuPalette, BG_PLTT_ID(0xF), PLTT_SIZE_4BPP); + LoadUserWindowBorderGfx(0, 1, BG_PLTT_ID(14)); + LoadPalette(gStandardMenuPalette, BG_PLTT_ID(15), PLTT_SIZE_4BPP); FillWindowPixelBuffer(0, PIXEL_FILL(0)); PutWindowTilemap(0); ScheduleBgCopyTilemapToVram(0); diff --git a/src/pokedex.c b/src/pokedex.c index 6a5de6017..bf1ff370c 100644 --- a/src/pokedex.c +++ b/src/pokedex.c @@ -831,7 +831,7 @@ static const struct WindowTemplate sPokemonList_WindowTemplate[] = .tilemapTop = 0, .width = 32, .height = 32, - .paletteNum = 0x0, + .paletteNum = 0, .baseBlock = 1, }, DUMMY_WIN_TEMPLATE @@ -902,7 +902,7 @@ static const struct WindowTemplate sInfoScreen_WindowTemplates[] = .tilemapTop = 0, .width = 32, .height = 20, - .paletteNum = 0x0, + .paletteNum = 0, .baseBlock = 1, }, [WIN_FOOTPRINT] = @@ -912,7 +912,7 @@ static const struct WindowTemplate sInfoScreen_WindowTemplates[] = .tilemapTop = 8, .width = 2, .height = 2, - .paletteNum = 0xF, + .paletteNum = 15, .baseBlock = 641, }, [WIN_CRY_WAVE] = @@ -922,7 +922,7 @@ static const struct WindowTemplate sInfoScreen_WindowTemplates[] = .tilemapTop = 12, .width = 32, .height = 7, - .paletteNum = 0x8, + .paletteNum = 8, .baseBlock = 645, }, [WIN_VU_METER] = @@ -932,7 +932,7 @@ static const struct WindowTemplate sInfoScreen_WindowTemplates[] = .tilemapTop = 3, .width = 10, .height = 8, - .paletteNum = 0x9, + .paletteNum = 9, .baseBlock = 869, }, DUMMY_WIN_TEMPLATE @@ -969,7 +969,7 @@ static const struct WindowTemplate sNewEntryInfoScreen_WindowTemplates[] = .tilemapTop = 0, .width = 32, .height = 20, - .paletteNum = 0x0, + .paletteNum = 0, .baseBlock = 1, }, [WIN_FOOTPRINT] = @@ -979,7 +979,7 @@ static const struct WindowTemplate sNewEntryInfoScreen_WindowTemplates[] = .tilemapTop = 8, .width = 2, .height = 2, - .paletteNum = 0xF, + .paletteNum = 15, .baseBlock = 641, }, DUMMY_WIN_TEMPLATE @@ -1490,7 +1490,7 @@ static const struct WindowTemplate sSearchMenu_WindowTemplate[] = .tilemapTop = 0, .width = 32, .height = 20, - .paletteNum = 0x0, + .paletteNum = 0, .baseBlock = 0x0001, }, DUMMY_WIN_TEMPLATE @@ -2145,12 +2145,12 @@ static bool8 LoadPokedexListPage(u8 page) static void LoadPokedexBgPalette(bool8 isSearchResults) { if (isSearchResults == TRUE) - LoadPalette(gPokedexSearchResults_Pal + 1, BG_PLTT_ID(0x0) + 1, PLTT_SIZEOF(6 * 16 - 1)); + LoadPalette(gPokedexSearchResults_Pal + 1, BG_PLTT_ID(0) + 1, PLTT_SIZEOF(6 * 16 - 1)); else if (!IsNationalPokedexEnabled()) - LoadPalette(gPokedexBgHoenn_Pal + 1, BG_PLTT_ID(0x0) + 1, PLTT_SIZEOF(6 * 16 - 1)); + LoadPalette(gPokedexBgHoenn_Pal + 1, BG_PLTT_ID(0) + 1, PLTT_SIZEOF(6 * 16 - 1)); else - LoadPalette(gPokedexBgNational_Pal + 1, BG_PLTT_ID(0x0) + 1, PLTT_SIZEOF(6 * 16 - 1)); - LoadPalette(GetOverworldTextboxPalettePtr(), BG_PLTT_ID(0xF), PLTT_SIZE_4BPP); + LoadPalette(gPokedexBgNational_Pal + 1, BG_PLTT_ID(0) + 1, PLTT_SIZEOF(6 * 16 - 1)); + LoadPalette(GetOverworldTextboxPalettePtr(), BG_PLTT_ID(15), PLTT_SIZE_4BPP); } static void FreeWindowAndBgBuffers(void) @@ -3264,7 +3264,7 @@ static void Task_LoadInfoScreen(u8 taskId) case 4: PrintMonInfo(sPokedexListItem->dexNum, sPokedexView->dexMode == DEX_MODE_HOENN ? FALSE : TRUE, sPokedexListItem->owned, 0); if (!sPokedexListItem->owned) - LoadPalette(gPlttBufferUnfaded + 1, BG_PLTT_ID(0x3) + 1, PLTT_SIZEOF(16 - 1)); + LoadPalette(gPlttBufferUnfaded + 1, BG_PLTT_ID(3) + 1, PLTT_SIZEOF(16 - 1)); CopyWindowToVram(WIN_INFO, COPYWIN_FULL); CopyBgTilemapBufferToVram(1); CopyBgTilemapBufferToVram(2); @@ -3713,7 +3713,7 @@ static void LoadPlayArrowPalette(bool8 cryPlaying) color = RGB(18, 28, 0); else color = RGB(15, 21, 0); - LoadPalette(&color, BG_PLTT_ID(0x5) + 13, PLTT_SIZEOF(1)); + LoadPalette(&color, BG_PLTT_ID(5) + 13, PLTT_SIZEOF(1)); } static void Task_LoadSizeScreen(u8 taskId) @@ -4030,11 +4030,11 @@ static void Task_HandleCaughtMonPageInput(u8 taskId) // Flicker caught screen color else if (++gTasks[taskId].tPalTimer & 16) { - LoadPalette(gPokedexBgHoenn_Pal + 1, BG_PLTT_ID(0x3) + 1, PLTT_SIZEOF(7)); + LoadPalette(gPokedexBgHoenn_Pal + 1, BG_PLTT_ID(3) + 1, PLTT_SIZEOF(7)); } else { - LoadPalette(gPokedexCaughtScreen_Pal + 1, BG_PLTT_ID(0x3) + 1, PLTT_SIZEOF(7)); + LoadPalette(gPokedexCaughtScreen_Pal + 1, BG_PLTT_ID(3) + 1, PLTT_SIZEOF(7)); } } @@ -4836,7 +4836,7 @@ static void Task_LoadSearchMenu(u8 taskId) CopyToBgTilemapBuffer(3, gPokedexSearchMenuHoenn_Tilemap, 0, 0); else CopyToBgTilemapBuffer(3, gPokedexSearchMenuNational_Tilemap, 0, 0); - LoadPalette(gPokedexSearchMenu_Pal + 1, BG_PLTT_ID(0x0) + 1, PLTT_SIZEOF(4 * 16 - 1)); + LoadPalette(gPokedexSearchMenu_Pal + 1, BG_PLTT_ID(0) + 1, PLTT_SIZEOF(4 * 16 - 1)); gMain.state = 1; } break; diff --git a/src/pokemon_icon.c b/src/pokemon_icon.c index 92df35ecc..237f72838 100644 --- a/src/pokemon_icon.c +++ b/src/pokemon_icon.c @@ -1201,7 +1201,7 @@ void TryLoadAllMonIconPalettesAtOffset(u16 offset) s32 i; const struct SpritePalette* monIconPalettePtr; - if (offset <= BG_PLTT_ID(0xA)) + if (offset <= BG_PLTT_ID(10)) { monIconPalettePtr = gMonIconPaletteTable; for (i = ARRAY_COUNT(gMonIconPaletteTable) - 1; i >= 0; i--) diff --git a/src/pokemon_jump.c b/src/pokemon_jump.c index 4039a62c6..963552d7d 100755 --- a/src/pokemon_jump.c +++ b/src/pokemon_jump.c @@ -3105,7 +3105,7 @@ static const struct WindowTemplate sWindowTemplates[] = .tilemapTop = 0, .width = 6, .height = 2, - .paletteNum = 0x2, + .paletteNum = 2, .baseBlock = 0x13, }, [WIN_TIMES] = { @@ -3114,7 +3114,7 @@ static const struct WindowTemplate sWindowTemplates[] = .tilemapTop = 0, .width = 6, .height = 2, - .paletteNum = 0x2, + .paletteNum = 2, .baseBlock = 0x1F, }, DUMMY_WIN_TEMPLATE, @@ -3183,21 +3183,21 @@ static void LoadPokeJumpGfx(void) ResetTempTileDataBuffers(); LoadSpriteSheetsAndPalettes(sPokemonJumpGfx); InitDigitPrinters(); - LoadPalette(sBg_Pal, BG_PLTT_ID(0x0), PLTT_SIZE_4BPP); + LoadPalette(sBg_Pal, BG_PLTT_ID(0), PLTT_SIZE_4BPP); DecompressAndCopyTileDataToVram(BG_SCENERY, sBg_Gfx, 0, 0, 0); DecompressAndCopyTileDataToVram(BG_SCENERY, sBg_Tilemap, 0, 0, 1); - LoadPalette(sVenusaur_Pal, BG_PLTT_ID(0x3), PLTT_SIZE_4BPP); + LoadPalette(sVenusaur_Pal, BG_PLTT_ID(3), PLTT_SIZE_4BPP); DecompressAndCopyTileDataToVram(BG_VENUSAUR, sVenusaur_Gfx, 0, 0, 0); DecompressAndCopyTileDataToVram(BG_VENUSAUR, sVenusaur_Tilemap, 0, 0, 1); - LoadPalette(sBonuses_Pal, BG_PLTT_ID(0x1), PLTT_SIZE_4BPP); + LoadPalette(sBonuses_Pal, BG_PLTT_ID(1), PLTT_SIZE_4BPP); DecompressAndCopyTileDataToVram(BG_BONUSES, sBonuses_Gfx, 0, 0, 0); DecompressAndCopyTileDataToVram(BG_BONUSES, sBonuses_Tilemap, 0, 0, 1); - LoadPalette(sInterface_Pal, BG_PLTT_ID(0x2), PLTT_SIZE_4BPP); + LoadPalette(sInterface_Pal, BG_PLTT_ID(2), PLTT_SIZE_4BPP); SetBgTilemapBuffer(BG_INTERFACE, sPokemonJumpGfx->tilemapBuffer); FillBgTilemapBufferRect_Palette0(BG_INTERFACE, 0, 0, 0, 0x20, 0x20); PrintScoreSuffixes(); PrintScore(0); - LoadUserWindowBorderGfxOnBg(0, 1, BG_PLTT_ID(0xE)); + LoadUserWindowBorderGfxOnBg(0, 1, BG_PLTT_ID(14)); CopyBgTilemapBufferToVram(BG_INTERFACE); CopyBgTilemapBufferToVram(BG_VENUSAUR); CopyBgTilemapBufferToVram(BG_BONUSES); @@ -3321,7 +3321,7 @@ static void Msg_WantToPlayAgain(void) if (!IsDma3ManagerBusyWithBgCopy()) { PutWindowTilemap(sPokemonJumpGfx->msgWindowId); - DrawTextBorderOuter(sPokemonJumpGfx->msgWindowId, 1, 0xE); + DrawTextBorderOuter(sPokemonJumpGfx->msgWindowId, 1, 14); CreatePokeJumpYesNoMenu(23, 7, 0); CopyBgTilemapBufferToVram(BG_INTERFACE); sPokemonJumpGfx->mainState++; @@ -3348,7 +3348,7 @@ static void Msg_SavingDontTurnOff(void) if (!IsDma3ManagerBusyWithBgCopy()) { PutWindowTilemap(sPokemonJumpGfx->msgWindowId); - DrawTextBorderOuter(sPokemonJumpGfx->msgWindowId, 1, 0xE); + DrawTextBorderOuter(sPokemonJumpGfx->msgWindowId, 1, 14); CopyBgTilemapBufferToVram(BG_INTERFACE); sPokemonJumpGfx->mainState++; } @@ -3391,7 +3391,7 @@ static void Msg_SomeoneDroppedOut(void) if (!IsDma3ManagerBusyWithBgCopy()) { PutWindowTilemap(sPokemonJumpGfx->msgWindowId); - DrawTextBorderOuter(sPokemonJumpGfx->msgWindowId, 1, 0xE); + DrawTextBorderOuter(sPokemonJumpGfx->msgWindowId, 1, 14); CopyBgTilemapBufferToVram(BG_INTERFACE); sPokemonJumpGfx->mainState++; } @@ -3417,7 +3417,7 @@ static void Msg_CommunicationStandby(void) if (!IsDma3ManagerBusyWithBgCopy()) { PutWindowTilemap(sPokemonJumpGfx->msgWindowId); - DrawTextBorderOuter(sPokemonJumpGfx->msgWindowId, 1, 0xE); + DrawTextBorderOuter(sPokemonJumpGfx->msgWindowId, 1, 14); CopyBgTilemapBufferToVram(BG_INTERFACE); sPokemonJumpGfx->mainState++; } @@ -3527,7 +3527,7 @@ static bool32 DoPrizeMessageAndFanfare(void) if (!IsDma3ManagerBusyWithBgCopy()) { PutWindowTilemap(sPokemonJumpGfx->msgWindowId); - DrawTextBorderOuter(sPokemonJumpGfx->msgWindowId, 1, 0xE); + DrawTextBorderOuter(sPokemonJumpGfx->msgWindowId, 1, 14); CopyBgTilemapBufferToVram(BG_INTERFACE); sPokemonJumpGfx->msgWindowState++; } @@ -3601,7 +3601,7 @@ static u32 AddMessageWindow(u32 left, u32 top, u32 width, u32 height) window.tilemapTop = top; window.width = width; window.height = height; - window.paletteNum = 0xF; + window.paletteNum = 15; window.baseBlock = 0x43; windowId = AddWindow(&window); @@ -3618,7 +3618,7 @@ static void CreatePokeJumpYesNoMenu(u16 left, u16 top, u8 cursorPos) window.tilemapTop = top; window.width = 6; window.height = 4; - window.paletteNum = 0x2; + window.paletteNum = 2; window.baseBlock = 0x2B; CreateYesNoMenu(&window, 1, 0xD, cursorPos); @@ -3832,7 +3832,7 @@ static void AddPlayerNameWindows(void) window.bg = BG_INTERFACE; window.width = 8; window.height = 2; - window.paletteNum = 0x2; + window.paletteNum = 2; window.baseBlock = 0x2B; for (i = 0; i < playersCount; i++) @@ -4142,7 +4142,7 @@ static const struct WindowTemplate sWindowTemplate_Records = .tilemapTop = 1, .width = 28, .height = 9, - .paletteNum = 0xF, + .paletteNum = 15, .baseBlock = 0x1, }; @@ -4213,8 +4213,8 @@ static void PrintRecordsText(u16 windowId, int width) recordNums[1] = records->bestJumpScore; recordNums[2] = records->excellentsInRow; - LoadUserWindowBorderGfx_(windowId, 0x21D, BG_PLTT_ID(0xD)); - DrawTextBorderOuter(windowId, 0x21D, 0xD); + LoadUserWindowBorderGfx_(windowId, 0x21D, BG_PLTT_ID(13)); + DrawTextBorderOuter(windowId, 0x21D, 13); FillWindowPixelBuffer(windowId, PIXEL_FILL(1)); AddTextPrinterParameterized(windowId, FONT_NORMAL, gText_PkmnJumpRecords, GetStringCenterAlignXOffset(FONT_NORMAL, gText_PkmnJumpRecords, width * 8), 1, TEXT_SKIP_DRAW, NULL); for (i = 0; i < ARRAY_COUNT(sRecordsTexts); i++) diff --git a/src/pokemon_storage_system.c b/src/pokemon_storage_system.c index 010ec80f7..80b03590d 100644 --- a/src/pokemon_storage_system.c +++ b/src/pokemon_storage_system.c @@ -895,7 +895,7 @@ static const struct WindowTemplate sWindowTemplate_MainMenu = .tilemapTop = 1, .width = 17, .height = 10, - .paletteNum = 0xF, + .paletteNum = 15, .baseBlock = 0x1, }; @@ -976,7 +976,7 @@ static const struct WindowTemplate sWindowTemplates[] = .tilemapTop = 11, .width = 9, .height = 7, - .paletteNum = 0x3, + .paletteNum = 3, .baseBlock = 0xC0, }, [WIN_MESSAGE] = { @@ -985,7 +985,7 @@ static const struct WindowTemplate sWindowTemplates[] = .tilemapTop = 17, .width = 18, .height = 2, - .paletteNum = 0xF, + .paletteNum = 15, .baseBlock = 0x14, }, [WIN_ITEM_DESC] = { @@ -994,7 +994,7 @@ static const struct WindowTemplate sWindowTemplates[] = .tilemapTop = 13, .width = 21, .height = 7, - .paletteNum = 0xF, + .paletteNum = 15, .baseBlock = 0x14, }, DUMMY_WIN_TEMPLATE @@ -1104,7 +1104,7 @@ static const struct WindowTemplate sYesNoWindowTemplate = .tilemapTop = 11, .width = 5, .height = 4, - .paletteNum = 0xF, + .paletteNum = 15, .baseBlock = 0x5C, }; @@ -2128,7 +2128,7 @@ static void Task_InitPokeStorage(u8 taskId) PutWindowTilemap(WIN_DISPLAY_INFO); ClearWindowTilemap(WIN_MESSAGE); CpuFill32(0, (void *)VRAM, 0x200); - LoadUserWindowBorderGfx(WIN_MESSAGE, 0xB, BG_PLTT_ID(0xE)); + LoadUserWindowBorderGfx(WIN_MESSAGE, 0xB, BG_PLTT_ID(14)); break; case 3: ResetAllBgCoords(); @@ -3849,13 +3849,13 @@ static void LoadWaveformSpritePalette(void) static void InitPalettesAndSprites(void) { - LoadPalette(sInterface_Pal, BG_PLTT_ID(0x0), sizeof(sInterface_Pal)); - LoadPalette(sPkmnDataGray_Pal, BG_PLTT_ID(0x2), sizeof(sPkmnDataGray_Pal)); - LoadPalette(sTextWindows_Pal, BG_PLTT_ID(0xF), sizeof(sTextWindows_Pal)); + LoadPalette(sInterface_Pal, BG_PLTT_ID(0), sizeof(sInterface_Pal)); + LoadPalette(sPkmnDataGray_Pal, BG_PLTT_ID(2), sizeof(sPkmnDataGray_Pal)); + LoadPalette(sTextWindows_Pal, BG_PLTT_ID(15), sizeof(sTextWindows_Pal)); if (sStorage->boxOption != OPTION_MOVE_ITEMS) - LoadPalette(sBg_Pal, BG_PLTT_ID(0x3), sizeof(sBg_Pal)); + LoadPalette(sBg_Pal, BG_PLTT_ID(3), sizeof(sBg_Pal)); else - LoadPalette(sBgMoveItems_Pal, BG_PLTT_ID(0x3), sizeof(sBgMoveItems_Pal)); + LoadPalette(sBgMoveItems_Pal, BG_PLTT_ID(3), sizeof(sBgMoveItems_Pal)); SetGpuReg(REG_OFFSET_BG1CNT, BGCNT_PRIORITY(1) | BGCNT_CHARBASE(1) | BGCNT_16COLOR | BGCNT_SCREENBASE(30)); CreateDisplayMonSprite(); @@ -4045,7 +4045,7 @@ static void UpdateWaveformAnimation(void) static void InitSupplementalTilemaps(void) { LZ77UnCompWram(gStorageSystemPartyMenu_Tilemap, sStorage->partyMenuTilemapBuffer); - LoadPalette(gStorageSystemPartyMenu_Pal, BG_PLTT_ID(0x1), PLTT_SIZE_4BPP); + LoadPalette(gStorageSystemPartyMenu_Pal, BG_PLTT_ID(1), PLTT_SIZE_4BPP); TilemapUtil_SetMap(TILEMAPID_PARTY_MENU, 1, sStorage->partyMenuTilemapBuffer, 12, 22); TilemapUtil_SetMap(TILEMAPID_CLOSE_BUTTON, 1, sCloseBoxButton_Tilemap, 9, 4); TilemapUtil_SetPos(TILEMAPID_PARTY_MENU, 10, 0); @@ -4267,7 +4267,7 @@ static void UpdateBoxToSendMons(void) static void InitPokeStorageBg0(void) { SetGpuReg(REG_OFFSET_BG0CNT, BGCNT_PRIORITY(0) | BGCNT_CHARBASE(0) | BGCNT_SCREENBASE(29)); - LoadUserWindowBorderGfx(WIN_MESSAGE, 2, BG_PLTT_ID(0xD)); + LoadUserWindowBorderGfx(WIN_MESSAGE, 2, BG_PLTT_ID(13)); FillBgTilemapBufferRect(0, 0, 0, 0, 32, 20, 17); CopyBgTilemapBufferToVram(0); } @@ -4308,7 +4308,7 @@ static void PrintMessage(u8 id) DynamicPlaceholderTextUtil_ExpandPlaceholders(sStorage->messageText, sMessages[id].text); FillWindowPixelBuffer(WIN_MESSAGE, PIXEL_FILL(1)); AddTextPrinterParameterized(WIN_MESSAGE, FONT_NORMAL, sStorage->messageText, 0, 1, TEXT_SKIP_DRAW, NULL); - DrawTextBorderOuter(WIN_MESSAGE, 2, 0xE); + DrawTextBorderOuter(WIN_MESSAGE, 2, 14); PutWindowTilemap(WIN_MESSAGE); CopyWindowToVram(WIN_MESSAGE, COPYWIN_GFX); ScheduleBgCopyTilemapToVram(0); @@ -5380,9 +5380,9 @@ static void LoadWallpaperGfx(u8 boxId, s8 direction) DrawWallpaper(sStorage->wallpaperTilemap, sStorage->wallpaperLoadDir, sStorage->wallpaperOffset); if (sStorage->wallpaperLoadDir != 0) - LoadPalette(wallpaper->palettes, 0x40 + BG_PLTT_ID(sStorage->wallpaperOffset * 2), 2 * PLTT_SIZE_4BPP); + LoadPalette(wallpaper->palettes, BG_PLTT_ID(4) + BG_PLTT_ID(sStorage->wallpaperOffset * 2), 2 * PLTT_SIZE_4BPP); else - CpuCopy16(wallpaper->palettes, &gPlttBufferUnfaded[0x40 + BG_PLTT_ID(sStorage->wallpaperOffset * 2)], 2 * PLTT_SIZE_4BPP); + CpuCopy16(wallpaper->palettes, &gPlttBufferUnfaded[BG_PLTT_ID(4) + BG_PLTT_ID(sStorage->wallpaperOffset * 2)], 2 * PLTT_SIZE_4BPP); sStorage->wallpaperTiles = malloc_and_decompress(wallpaper->tiles, &tilesSize); LoadBgTiles(2, sStorage->wallpaperTiles, tilesSize, sStorage->wallpaperOffset << 8); @@ -5398,9 +5398,9 @@ static void LoadWallpaperGfx(u8 boxId, s8 direction) CpuCopy16(GetWaldaWallpaperColorsPtr(), &sStorage->wallpaperTilemap[17], 4); if (sStorage->wallpaperLoadDir != 0) - LoadPalette(sStorage->wallpaperTilemap, 0x40 + BG_PLTT_ID(sStorage->wallpaperOffset * 2), 2 * PLTT_SIZE_4BPP); + LoadPalette(sStorage->wallpaperTilemap, BG_PLTT_ID(4) + BG_PLTT_ID(sStorage->wallpaperOffset * 2), 2 * PLTT_SIZE_4BPP); else - CpuCopy16(sStorage->wallpaperTilemap, &gPlttBufferUnfaded[0x40 + BG_PLTT_ID(sStorage->wallpaperOffset * 2)], 2 * PLTT_SIZE_4BPP); + CpuCopy16(sStorage->wallpaperTilemap, &gPlttBufferUnfaded[BG_PLTT_ID(4) + BG_PLTT_ID(sStorage->wallpaperOffset * 2)], 2 * PLTT_SIZE_4BPP); sStorage->wallpaperTiles = malloc_and_decompress(wallpaper->tiles, &tilesSize); iconGfx = malloc_and_decompress(sWaldaWallpaperIcons[GetWaldaWallpaperIconId()], &iconSize); @@ -7929,7 +7929,7 @@ static void InitMenu(void) sStorage->menuItemsCount = 0; sStorage->menuWidth = 0; sStorage->menuWindow.bg = 0; - sStorage->menuWindow.paletteNum = 0xF; + sStorage->menuWindow.paletteNum = 15; sStorage->menuWindow.baseBlock = 92; } @@ -8085,7 +8085,7 @@ static const struct WindowTemplate sWindowTemplate_MultiMove = .tilemapTop = 3, .width = 20, .height = 18, - .paletteNum = 0x9, + .paletteNum = 9, .baseBlock = 0xA, }; @@ -8164,7 +8164,7 @@ static bool8 MultiMove_Start(void) { case 0: HideBg(0); - TryLoadAllMonIconPalettesAtOffset(BG_PLTT_ID(0x8)); + TryLoadAllMonIconPalettesAtOffset(BG_PLTT_ID(8)); sMultiMove->state++; break; case 1: @@ -8213,7 +8213,7 @@ static bool8 MultiMove_Cancel(void) if (!IsDma3ManagerBusyWithBgCopy()) { SetCursorPriorityTo1(); - LoadPalette(GetTextWindowPalette(3), BG_PLTT_ID(0xD), PLTT_SIZE_4BPP); + LoadPalette(GetTextWindowPalette(3), BG_PLTT_ID(13), PLTT_SIZE_4BPP); ShowBg(0); return FALSE; } @@ -8319,7 +8319,7 @@ static bool8 MultiMove_PlaceMons(void) case 3: if (!IsDma3ManagerBusyWithBgCopy()) { - LoadPalette(GetTextWindowPalette(3), BG_PLTT_ID(0xD), PLTT_SIZE_4BPP); + LoadPalette(GetTextWindowPalette(3), BG_PLTT_ID(13), PLTT_SIZE_4BPP); SetCursorPriorityTo1(); ShowBg(0); return FALSE; @@ -9245,12 +9245,12 @@ static void DrawItemInfoWindow(u32 x) { if (x != 0) { - FillBgTilemapBufferRect(0, 0x13A, 0, 0xC, x, 1, 0xF); - FillBgTilemapBufferRect(0, 0x93A, 0, 0x14, x, 1, 0xF); + FillBgTilemapBufferRect(0, 0x13A, 0, 0xC, x, 1, 15); + FillBgTilemapBufferRect(0, 0x93A, 0, 0x14, x, 1, 15); } - FillBgTilemapBufferRect(0, 0x13B, x, 0xD, 1, 7, 0xF); - FillBgTilemapBufferRect(0, 0x13C, x, 0xC, 1, 1, 0xF); - FillBgTilemapBufferRect(0, 0x13D, x, 0x14, 1, 1, 0xF); + FillBgTilemapBufferRect(0, 0x13B, x, 0xD, 1, 7, 15); + FillBgTilemapBufferRect(0, 0x13C, x, 0xC, 1, 1, 15); + FillBgTilemapBufferRect(0, 0x13D, x, 0x14, 1, 1, 15); ScheduleBgCopyTilemapToVram(0); } diff --git a/src/pokemon_summary_screen.c b/src/pokemon_summary_screen.c index e40622506..c7dcff337 100644 --- a/src/pokemon_summary_screen.c +++ b/src/pokemon_summary_screen.c @@ -391,7 +391,7 @@ static const struct WindowTemplate sSummaryTemplate[] = .tilemapTop = 0, .width = 11, .height = 2, - .paletteNum = 0x6, + .paletteNum = 6, .baseBlock = 1, }, [PSS_LABEL_WINDOW_POKEMON_SKILLS_TITLE] = { @@ -400,7 +400,7 @@ static const struct WindowTemplate sSummaryTemplate[] = .tilemapTop = 0, .width = 11, .height = 2, - .paletteNum = 0x6, + .paletteNum = 6, .baseBlock = 23, }, [PSS_LABEL_WINDOW_BATTLE_MOVES_TITLE] = { @@ -409,7 +409,7 @@ static const struct WindowTemplate sSummaryTemplate[] = .tilemapTop = 0, .width = 11, .height = 2, - .paletteNum = 0x6, + .paletteNum = 6, .baseBlock = 45, }, [PSS_LABEL_WINDOW_CONTEST_MOVES_TITLE] = { @@ -418,7 +418,7 @@ static const struct WindowTemplate sSummaryTemplate[] = .tilemapTop = 0, .width = 11, .height = 2, - .paletteNum = 0x6, + .paletteNum = 6, .baseBlock = 67, }, [PSS_LABEL_WINDOW_PROMPT_CANCEL] = { @@ -427,7 +427,7 @@ static const struct WindowTemplate sSummaryTemplate[] = .tilemapTop = 0, .width = 8, .height = 2, - .paletteNum = 0x7, + .paletteNum = 7, .baseBlock = 89, }, [PSS_LABEL_WINDOW_PROMPT_INFO] = { @@ -436,7 +436,7 @@ static const struct WindowTemplate sSummaryTemplate[] = .tilemapTop = 0, .width = 8, .height = 2, - .paletteNum = 0x7, + .paletteNum = 7, .baseBlock = 105, }, [PSS_LABEL_WINDOW_PROMPT_SWITCH] = { @@ -445,7 +445,7 @@ static const struct WindowTemplate sSummaryTemplate[] = .tilemapTop = 0, .width = 8, .height = 2, - .paletteNum = 0x7, + .paletteNum = 7, .baseBlock = 121, }, [PSS_LABEL_WINDOW_UNUSED1] = { @@ -454,7 +454,7 @@ static const struct WindowTemplate sSummaryTemplate[] = .tilemapTop = 4, .width = 0, .height = 2, - .paletteNum = 0x6, + .paletteNum = 6, .baseBlock = 137, }, [PSS_LABEL_WINDOW_POKEMON_INFO_RENTAL] = { @@ -463,7 +463,7 @@ static const struct WindowTemplate sSummaryTemplate[] = .tilemapTop = 4, .width = 18, .height = 2, - .paletteNum = 0x6, + .paletteNum = 6, .baseBlock = 137, }, [PSS_LABEL_WINDOW_POKEMON_INFO_TYPE] = { @@ -472,7 +472,7 @@ static const struct WindowTemplate sSummaryTemplate[] = .tilemapTop = 6, .width = 18, .height = 2, - .paletteNum = 0x6, + .paletteNum = 6, .baseBlock = 173, }, [PSS_LABEL_WINDOW_POKEMON_SKILLS_STATS_LEFT] = { @@ -481,7 +481,7 @@ static const struct WindowTemplate sSummaryTemplate[] = .tilemapTop = 7, .width = 6, .height = 6, - .paletteNum = 0x6, + .paletteNum = 6, .baseBlock = 209, }, [PSS_LABEL_WINDOW_POKEMON_SKILLS_STATS_RIGHT] = { @@ -490,7 +490,7 @@ static const struct WindowTemplate sSummaryTemplate[] = .tilemapTop = 7, .width = 5, .height = 6, - .paletteNum = 0x6, + .paletteNum = 6, .baseBlock = 245, }, [PSS_LABEL_WINDOW_POKEMON_SKILLS_EXP] = { @@ -499,7 +499,7 @@ static const struct WindowTemplate sSummaryTemplate[] = .tilemapTop = 14, .width = 11, .height = 4, - .paletteNum = 0x6, + .paletteNum = 6, .baseBlock = 275, }, [PSS_LABEL_WINDOW_POKEMON_SKILLS_STATUS] = { @@ -508,7 +508,7 @@ static const struct WindowTemplate sSummaryTemplate[] = .tilemapTop = 18, .width = 6, .height = 2, - .paletteNum = 0x6, + .paletteNum = 6, .baseBlock = 319, }, [PSS_LABEL_WINDOW_MOVES_POWER_ACC] = { @@ -517,7 +517,7 @@ static const struct WindowTemplate sSummaryTemplate[] = .tilemapTop = 15, .width = 9, .height = 4, - .paletteNum = 0x6, + .paletteNum = 6, .baseBlock = 331, }, [PSS_LABEL_WINDOW_MOVES_APPEAL_JAM] = { @@ -526,7 +526,7 @@ static const struct WindowTemplate sSummaryTemplate[] = .tilemapTop = 15, .width = 5, .height = 4, - .paletteNum = 0x6, + .paletteNum = 6, .baseBlock = 367, }, [PSS_LABEL_WINDOW_UNUSED2] = { @@ -535,7 +535,7 @@ static const struct WindowTemplate sSummaryTemplate[] = .tilemapTop = 4, .width = 0, .height = 2, - .paletteNum = 0x6, + .paletteNum = 6, .baseBlock = 387, }, [PSS_LABEL_WINDOW_PORTRAIT_DEX_NUMBER] = { @@ -544,7 +544,7 @@ static const struct WindowTemplate sSummaryTemplate[] = .tilemapTop = 2, .width = 4, .height = 2, - .paletteNum = 0x7, + .paletteNum = 7, .baseBlock = 387, }, [PSS_LABEL_WINDOW_PORTRAIT_NICKNAME] = { @@ -553,7 +553,7 @@ static const struct WindowTemplate sSummaryTemplate[] = .tilemapTop = 12, .width = 9, .height = 2, - .paletteNum = 0x6, + .paletteNum = 6, .baseBlock = 395, }, [PSS_LABEL_WINDOW_PORTRAIT_SPECIES] = { @@ -562,7 +562,7 @@ static const struct WindowTemplate sSummaryTemplate[] = .tilemapTop = 14, .width = 9, .height = 4, - .paletteNum = 0x6, + .paletteNum = 6, .baseBlock = 413, }, [PSS_LABEL_WINDOW_END] = DUMMY_WIN_TEMPLATE @@ -575,7 +575,7 @@ static const struct WindowTemplate sPageInfoTemplate[] = .tilemapTop = 4, .width = 11, .height = 2, - .paletteNum = 0x6, + .paletteNum = 6, .baseBlock = 449, }, [PSS_DATA_WINDOW_INFO_ID] = { @@ -584,7 +584,7 @@ static const struct WindowTemplate sPageInfoTemplate[] = .tilemapTop = 4, .width = 7, .height = 2, - .paletteNum = 0x6, + .paletteNum = 6, .baseBlock = 471, }, [PSS_DATA_WINDOW_INFO_ABILITY] = { @@ -593,7 +593,7 @@ static const struct WindowTemplate sPageInfoTemplate[] = .tilemapTop = 9, .width = 18, .height = 4, - .paletteNum = 0x6, + .paletteNum = 6, .baseBlock = 485, }, [PSS_DATA_WINDOW_INFO_MEMO] = { @@ -602,7 +602,7 @@ static const struct WindowTemplate sPageInfoTemplate[] = .tilemapTop = 14, .width = 18, .height = 6, - .paletteNum = 0x6, + .paletteNum = 6, .baseBlock = 557, }, }; @@ -614,7 +614,7 @@ static const struct WindowTemplate sPageSkillsTemplate[] = .tilemapTop = 4, .width = 10, .height = 2, - .paletteNum = 0x6, + .paletteNum = 6, .baseBlock = 449, }, [PSS_DATA_WINDOW_SKILLS_RIBBON_COUNT] = { @@ -623,7 +623,7 @@ static const struct WindowTemplate sPageSkillsTemplate[] = .tilemapTop = 4, .width = 10, .height = 2, - .paletteNum = 0x6, + .paletteNum = 6, .baseBlock = 469, }, [PSS_DATA_WINDOW_SKILLS_STATS_LEFT] = { @@ -632,7 +632,7 @@ static const struct WindowTemplate sPageSkillsTemplate[] = .tilemapTop = 7, .width = 6, .height = 6, - .paletteNum = 0x6, + .paletteNum = 6, .baseBlock = 489, }, [PSS_DATA_WINDOW_SKILLS_STATS_RIGHT] = { @@ -641,7 +641,7 @@ static const struct WindowTemplate sPageSkillsTemplate[] = .tilemapTop = 7, .width = 3, .height = 6, - .paletteNum = 0x6, + .paletteNum = 6, .baseBlock = 525, }, [PSS_DATA_WINDOW_EXP] = { @@ -650,7 +650,7 @@ static const struct WindowTemplate sPageSkillsTemplate[] = .tilemapTop = 14, .width = 6, .height = 4, - .paletteNum = 0x6, + .paletteNum = 6, .baseBlock = 543, }, }; @@ -662,7 +662,7 @@ static const struct WindowTemplate sPageMovesTemplate[] = // This is used for bo .tilemapTop = 4, .width = 9, .height = 10, - .paletteNum = 0x6, + .paletteNum = 6, .baseBlock = 449, }, [PSS_DATA_WINDOW_MOVE_PP] = { @@ -671,7 +671,7 @@ static const struct WindowTemplate sPageMovesTemplate[] = // This is used for bo .tilemapTop = 4, .width = 6, .height = 10, - .paletteNum = 0x8, + .paletteNum = 8, .baseBlock = 539, }, [PSS_DATA_WINDOW_MOVE_DESCRIPTION] = { @@ -680,7 +680,7 @@ static const struct WindowTemplate sPageMovesTemplate[] = // This is used for bo .tilemapTop = 15, .width = 20, .height = 4, - .paletteNum = 0x6, + .paletteNum = 6, .baseBlock = 599, }, }; @@ -1328,8 +1328,8 @@ static bool8 DecompressGraphics(void) sMonSummaryScreen->switchCounter++; break; case 6: - LoadCompressedPalette(gSummaryScreen_Pal, BG_PLTT_ID(0x0), 8 * PLTT_SIZE_4BPP); - LoadPalette(&gPPTextPalette, BG_PLTT_ID(0x8) + 1, PLTT_SIZEOF(16 - 1)); + LoadCompressedPalette(gSummaryScreen_Pal, BG_PLTT_ID(0), 8 * PLTT_SIZE_4BPP); + LoadPalette(&gPPTextPalette, BG_PLTT_ID(8) + 1, PLTT_SIZEOF(16 - 1)); sMonSummaryScreen->switchCounter++; break; case 7: @@ -1353,7 +1353,7 @@ static bool8 DecompressGraphics(void) sMonSummaryScreen->switchCounter++; break; case 12: - LoadCompressedPalette(gMoveTypes_Pal, OBJ_PLTT_ID(0xD), 3 * PLTT_SIZE_4BPP); + LoadCompressedPalette(gMoveTypes_Pal, OBJ_PLTT_ID(13), 3 * PLTT_SIZE_4BPP); sMonSummaryScreen->switchCounter = 0; return TRUE; } diff --git a/src/pokenav_conditions_gfx.c b/src/pokenav_conditions_gfx.c index 9ad885435..e382cbf69 100644 --- a/src/pokenav_conditions_gfx.c +++ b/src/pokenav_conditions_gfx.c @@ -68,7 +68,7 @@ static const struct WindowTemplate sMonNameGenderWindowTemplate = .tilemapTop = 1, .width = 13, .height = 4, - .paletteNum = 0xF, + .paletteNum = 15, .baseBlock = 2 }; @@ -79,7 +79,7 @@ static const struct WindowTemplate sListIndexWindowTemplate = .tilemapTop = 6, .width = 7, .height = 2, - .paletteNum = 0xF, + .paletteNum = 15, .baseBlock = 0x36 }; @@ -90,7 +90,7 @@ static const struct WindowTemplate sUnusedWindowTemplate1 = .tilemapTop = 0x1C, .width = 5, .height = 2, - .paletteNum = 0xF, + .paletteNum = 15, .baseBlock = 0x44 }; @@ -101,7 +101,7 @@ static const struct WindowTemplate sUnusedWindowTemplate2 = .tilemapTop = 0x1C, .width = 3, .height = 2, - .paletteNum = 0xF, + .paletteNum = 15, .baseBlock = 0x44 }; @@ -224,8 +224,8 @@ static u32 LoopedTask_OpenConditionGraphMenu(s32 state) CopyToBgTilemapBufferRect(3, gPokenavOptions_Tilemap, 0, 5, 9, 4); CopyBgTilemapBufferToVram(3); - CopyPaletteIntoBufferUnfaded(gPokenavCondition_Pal, BG_PLTT_ID(0x1), PLTT_SIZE_4BPP); - CopyPaletteIntoBufferUnfaded(gConditionText_Pal, BG_PLTT_ID(0xF), PLTT_SIZE_4BPP); + CopyPaletteIntoBufferUnfaded(gPokenavCondition_Pal, BG_PLTT_ID(1), PLTT_SIZE_4BPP); + CopyPaletteIntoBufferUnfaded(gConditionText_Pal, BG_PLTT_ID(15), PLTT_SIZE_4BPP); menu->monTransitionX = -80; return LT_INC_AND_PAUSE; case 4: @@ -235,7 +235,7 @@ static u32 LoopedTask_OpenConditionGraphMenu(s32 state) LZ77UnCompVram(sConditionGraphData_Tilemap, menu->tilemapBuffers[2]); SetBgTilemapBuffer(2, menu->tilemapBuffers[2]); CopyBgTilemapBufferToVram(2); - CopyPaletteIntoBufferUnfaded(gConditionGraphData_Pal, BG_PLTT_ID(0x3), PLTT_SIZE_4BPP); + CopyPaletteIntoBufferUnfaded(gConditionGraphData_Pal, BG_PLTT_ID(3), PLTT_SIZE_4BPP); ConditionGraph_InitWindow(2); return LT_INC_AND_PAUSE; case 5: diff --git a/src/pokenav_conditions_search_results.c b/src/pokenav_conditions_search_results.c index 49ce612cc..d3764cb80 100644 --- a/src/pokenav_conditions_search_results.c +++ b/src/pokenav_conditions_search_results.c @@ -121,7 +121,7 @@ static const struct WindowTemplate sSearchResultListMenuWindowTemplate = .tilemapTop = 6, .width = 7, .height = 2, - .paletteNum = 0x1, + .paletteNum = 1, .baseBlock = 20 }; @@ -432,7 +432,7 @@ static u32 LoopedTask_OpenConditionSearchResults(s32 state) SetBgTilemapBuffer(1, gfx->buff); CopyToBgTilemapBuffer(1, sConditionSearchResultTilemap, 0, 0); CopyBgTilemapBufferToVram(1); - CopyPaletteIntoBufferUnfaded(sConditionSearchResultFramePal, BG_PLTT_ID(0x1), PLTT_SIZE_4BPP); + CopyPaletteIntoBufferUnfaded(sConditionSearchResultFramePal, BG_PLTT_ID(1), PLTT_SIZE_4BPP); CopyBgTilemapBufferToVram(1); return LT_INC_AND_PAUSE; case 1: @@ -444,7 +444,7 @@ static u32 LoopedTask_OpenConditionSearchResults(s32 state) case 2: if (FreeTempTileDataBuffersIfPossible()) return LT_PAUSE; - CopyPaletteIntoBufferUnfaded(sListBg_Pal, BG_PLTT_ID(0x2), PLTT_SIZE_4BPP); + CopyPaletteIntoBufferUnfaded(sListBg_Pal, BG_PLTT_ID(2), PLTT_SIZE_4BPP); CreateSearchResultsList(); return LT_INC_AND_PAUSE; case 3: diff --git a/src/pokenav_main_menu.c b/src/pokenav_main_menu.c index 3dbc7952d..bfc5ba0cb 100644 --- a/src/pokenav_main_menu.c +++ b/src/pokenav_main_menu.c @@ -78,7 +78,7 @@ static const struct WindowTemplate sHelpBarWindowTemplate[] = .tilemapTop = 22, .width = 16, .height = 2, - .paletteNum = 0x0, + .paletteNum = 0, .baseBlock = 0x36, }, DUMMY_WIN_TEMPLATE @@ -349,7 +349,7 @@ static u32 LoopedTask_InitPokenavMenu(s32 state) DecompressAndCopyTileDataToVram(0, &gPokenavHeader_Gfx, 0, 0, 0); SetBgTilemapBuffer(0, menu->tilemapBuffer); CopyToBgTilemapBuffer(0, &gPokenavHeader_Tilemap, 0, 0); - CopyPaletteIntoBufferUnfaded(gPokenavHeader_Pal, BG_PLTT_ID(0x0), PLTT_SIZE_4BPP); + CopyPaletteIntoBufferUnfaded(gPokenavHeader_Pal, BG_PLTT_ID(0), PLTT_SIZE_4BPP); CopyBgTilemapBufferToVram(0); return LT_INC_AND_PAUSE; case 2: diff --git a/src/pokenav_match_call_gfx.c b/src/pokenav_match_call_gfx.c index 710aeef17..626e584b7 100755 --- a/src/pokenav_match_call_gfx.c +++ b/src/pokenav_match_call_gfx.c @@ -182,7 +182,7 @@ static const struct WindowTemplate sMatchCallLocationWindowTemplate = .tilemapTop = 5, .width = 11, .height = 2, - .paletteNum = 0x2, + .paletteNum = 2, .baseBlock = 16 }; @@ -193,7 +193,7 @@ static const struct WindowTemplate sMatchCallInfoBoxWindowTemplate = .tilemapTop = 9, .width = 11, .height = 8, - .paletteNum = 0x2, + .paletteNum = 2, .baseBlock = 38 }; @@ -214,7 +214,7 @@ static const struct WindowTemplate sCallMsgBoxWindowTemplate = .tilemapTop = 12, .width = 28, .height = 4, - .paletteNum = 0x1, + .paletteNum = 1, .baseBlock = 10 }; @@ -333,7 +333,7 @@ static u32 LoopedTask_OpenMatchCall(s32 state) SetBgTilemapBuffer(2, gfx->bgTilemapBuffer2); CopyToBgTilemapBuffer(2, sMatchCallUI_Tilemap, 0, 0); CopyBgTilemapBufferToVram(2); - CopyPaletteIntoBufferUnfaded(sMatchCallUI_Pal, BG_PLTT_ID(0x2), PLTT_SIZE_4BPP); + CopyPaletteIntoBufferUnfaded(sMatchCallUI_Pal, BG_PLTT_ID(2), PLTT_SIZE_4BPP); CopyBgTilemapBufferToVram(2); return LT_INC_AND_PAUSE; case 1: @@ -343,7 +343,7 @@ static u32 LoopedTask_OpenMatchCall(s32 state) BgDmaFill(1, 0, 0, 1); SetBgTilemapBuffer(1, gfx->bgTilemapBuffer1); FillBgTilemapBufferRect_Palette0(1, 0x1000, 0, 0, 32, 20); - CopyPaletteIntoBufferUnfaded(sCallWindow_Pal, BG_PLTT_ID(0x1), PLTT_SIZE_4BPP); + CopyPaletteIntoBufferUnfaded(sCallWindow_Pal, BG_PLTT_ID(1), PLTT_SIZE_4BPP); CopyBgTilemapBufferToVram(1); return LT_INC_AND_PAUSE; case 2: @@ -352,8 +352,8 @@ static u32 LoopedTask_OpenMatchCall(s32 state) LoadCallWindowAndFade(gfx); DecompressAndCopyTileDataToVram(3, sPokeball_Gfx, 0, 0, 0); - CopyPaletteIntoBufferUnfaded(sListWindow_Pal, BG_PLTT_ID(0x3), PLTT_SIZE_4BPP); - CopyPaletteIntoBufferUnfaded(sPokeball_Pal, BG_PLTT_ID(0x5), PLTT_SIZE_4BPP); + CopyPaletteIntoBufferUnfaded(sListWindow_Pal, BG_PLTT_ID(3), PLTT_SIZE_4BPP); + CopyPaletteIntoBufferUnfaded(sPokeball_Pal, BG_PLTT_ID(5), PLTT_SIZE_4BPP); return LT_INC_AND_PAUSE; case 3: if (FreeTempTileDataBuffersIfPossible() || !IsMatchCallListInitFinished()) @@ -1082,15 +1082,15 @@ static void UpdateWindowsToShowCheckPage(struct Pokenav_MatchCallGfx *gfx) static void LoadCallWindowAndFade(struct Pokenav_MatchCallGfx *gfx) { gfx->msgBoxWindowId = AddWindow(&sCallMsgBoxWindowTemplate); - LoadMatchCallWindowGfx(gfx->msgBoxWindowId, 1, 0x4); + LoadMatchCallWindowGfx(gfx->msgBoxWindowId, 1, 4); FadeToBlackExceptPrimary(); } static void DrawMsgBoxForMatchCallMsg(struct Pokenav_MatchCallGfx *gfx) { struct Sprite *sprite; - LoadMatchCallWindowGfx(gfx->msgBoxWindowId, 1, 0x4); - DrawMatchCallTextBoxBorder(gfx->msgBoxWindowId, 1, 0x4); + LoadMatchCallWindowGfx(gfx->msgBoxWindowId, 1, 4); + DrawMatchCallTextBoxBorder(gfx->msgBoxWindowId, 1, 4); FillWindowPixelBuffer(gfx->msgBoxWindowId, PIXEL_FILL(1)); PutWindowTilemap(gfx->msgBoxWindowId); CopyWindowToVram(gfx->msgBoxWindowId, COPYWIN_FULL); @@ -1102,8 +1102,8 @@ static void DrawMsgBoxForMatchCallMsg(struct Pokenav_MatchCallGfx *gfx) static void DrawMsgBoxForCloseByMsg(struct Pokenav_MatchCallGfx *gfx) { - LoadUserWindowBorderGfx(gfx->msgBoxWindowId, 1, BG_PLTT_ID(0x4)); - DrawTextBorderOuter(gfx->msgBoxWindowId, 1, 0x4); + LoadUserWindowBorderGfx(gfx->msgBoxWindowId, 1, BG_PLTT_ID(4)); + DrawTextBorderOuter(gfx->msgBoxWindowId, 1, 4); FillWindowPixelBuffer(gfx->msgBoxWindowId, PIXEL_FILL(1)); PutWindowTilemap(gfx->msgBoxWindowId); CopyWindowToVram(gfx->msgBoxWindowId, COPYWIN_FULL); diff --git a/src/pokenav_menu_handler_gfx.c b/src/pokenav_menu_handler_gfx.c index 1acd2edf9..a9275bcf7 100644 --- a/src/pokenav_menu_handler_gfx.c +++ b/src/pokenav_menu_handler_gfx.c @@ -261,7 +261,7 @@ static const struct WindowTemplate sOptionDescWindowTemplate = .tilemapTop = 17, .width = 24, .height = 2, - .paletteNum = 0x1, + .paletteNum = 1, .baseBlock = 8 }; @@ -457,7 +457,7 @@ static u32 LoopedTask_OpenMenu(s32 state) SetBgTilemapBuffer(1, gfx->bg1TilemapBuffer); CopyToBgTilemapBuffer(1, gPokenavMessageBox_Tilemap, 0, 0); CopyBgTilemapBufferToVram(1); - CopyPaletteIntoBufferUnfaded(gPokenavMessageBox_Pal, BG_PLTT_ID(0x1), PLTT_SIZE_4BPP); + CopyPaletteIntoBufferUnfaded(gPokenavMessageBox_Pal, BG_PLTT_ID(1), PLTT_SIZE_4BPP); ChangeBgX(1, 0, BG_COORD_SET); ChangeBgY(1, 0, BG_COORD_SET); ChangeBgX(2, 0, BG_COORD_SET); @@ -470,14 +470,14 @@ static u32 LoopedTask_OpenMenu(s32 state) return LT_PAUSE; DecompressAndCopyTileDataToVram(2, sPokenavDeviceBgTiles, 0, 0, 0); DecompressAndCopyTileDataToVram(2, sPokenavDeviceBgTilemap, 0, 0, 1); - CopyPaletteIntoBufferUnfaded(sPokenavDeviceBgPal, BG_PLTT_ID(0x2), PLTT_SIZE_4BPP); + CopyPaletteIntoBufferUnfaded(sPokenavDeviceBgPal, BG_PLTT_ID(2), PLTT_SIZE_4BPP); return LT_INC_AND_PAUSE; case 2: if (FreeTempTileDataBuffersIfPossible()) return LT_PAUSE; DecompressAndCopyTileDataToVram(3, sPokenavBgDotsTiles, 0, 0, 0); DecompressAndCopyTileDataToVram(3, sPokenavBgDotsTilemap, 0, 0, 1); - CopyPaletteIntoBufferUnfaded(sPokenavBgDotsPal, BG_PLTT_ID(0x3), PLTT_SIZE_4BPP); + CopyPaletteIntoBufferUnfaded(sPokenavBgDotsPal, BG_PLTT_ID(3), PLTT_SIZE_4BPP); if (GetPokenavMenuType() == POKENAV_MENU_TYPE_CONDITION || GetPokenavMenuType() == POKENAV_MENU_TYPE_CONDITION_SEARCH) ChangeBgDotsColorToPurple(); return LT_INC_AND_PAUSE; @@ -1270,7 +1270,7 @@ static void CreateBgDotPurplePalTask(void) static void ChangeBgDotsColorToPurple(void) { - CopyPaletteIntoBufferUnfaded(sPokenavBgDotsPal + 7, BG_PLTT_ID(0x3) + 1, PLTT_SIZEOF(2)); + CopyPaletteIntoBufferUnfaded(sPokenavBgDotsPal + 7, BG_PLTT_ID(3) + 1, PLTT_SIZEOF(2)); } static void CreateBgDotLightBluePalTask(void) @@ -1293,7 +1293,7 @@ static void Task_UpdateBgDotsPalette(u8 taskId) const u16 * pal2 = (const u16 *)GetWordTaskArg(taskId, 3); PokenavCopyPalette(pal1, pal2, 2, 12, ++data[0], sp8); - LoadPalette(sp8, BG_PLTT_ID(0x3) + 1, PLTT_SIZEOF(2)); + LoadPalette(sp8, BG_PLTT_ID(3) + 1, PLTT_SIZEOF(2)); if (data[0] == 12) DestroyTask(taskId); } diff --git a/src/pokenav_region_map.c b/src/pokenav_region_map.c index 6b3479f10..1bb52767d 100755 --- a/src/pokenav_region_map.c +++ b/src/pokenav_region_map.c @@ -140,7 +140,7 @@ static const struct WindowTemplate sMapSecInfoWindowTemplate = .tilemapTop = 4, .width = 12, .height = 13, - .paletteNum = 0x1, + .paletteNum = 1, .baseBlock = 0x4C }; @@ -509,14 +509,14 @@ static void LoadPokenavRegionMapGfx(struct Pokenav_RegionMapGfx *state) CpuFill16(0x1040, state->tilemapBuffer, 0x800); SetBgTilemapBuffer(1, state->tilemapBuffer); state->infoWindowId = AddWindow(&sMapSecInfoWindowTemplate); - LoadUserWindowBorderGfx_(state->infoWindowId, 0x42, BG_PLTT_ID(0x4)); - DrawTextBorderOuter(state->infoWindowId, 0x42, 0x4); + LoadUserWindowBorderGfx_(state->infoWindowId, 0x42, BG_PLTT_ID(4)); + DrawTextBorderOuter(state->infoWindowId, 0x42, 4); DecompressAndCopyTileDataToVram(1, sRegionMapCityZoomTiles_Gfx, 0, 0, 0); FillWindowPixelBuffer(state->infoWindowId, PIXEL_FILL(1)); PutWindowTilemap(state->infoWindowId); CopyWindowToVram(state->infoWindowId, COPYWIN_FULL); - CopyPaletteIntoBufferUnfaded(sMapSecInfoWindow_Pal, BG_PLTT_ID(0x1), PLTT_SIZE_4BPP); - CopyPaletteIntoBufferUnfaded(gRegionMapCityZoomTiles_Pal, BG_PLTT_ID(0x3), PLTT_SIZE_4BPP); + CopyPaletteIntoBufferUnfaded(sMapSecInfoWindow_Pal, BG_PLTT_ID(1), PLTT_SIZE_4BPP); + CopyPaletteIntoBufferUnfaded(gRegionMapCityZoomTiles_Pal, BG_PLTT_ID(3), PLTT_SIZE_4BPP); if (!IsRegionMapZoomed()) ChangeBgY(1, -0x6000, BG_COORD_SET); else diff --git a/src/pokenav_ribbons_list.c b/src/pokenav_ribbons_list.c index 5f5cf083f..c1ca7f9d9 100644 --- a/src/pokenav_ribbons_list.c +++ b/src/pokenav_ribbons_list.c @@ -432,7 +432,7 @@ static u32 LoopedTask_OpenRibbonsMonList(s32 state) DecompressAndCopyTileDataToVram(1, sMonRibbonListFrameTiles, 0, 0, 0); SetBgTilemapBuffer(1, menu->buff); CopyToBgTilemapBuffer(1, sMonRibbonListFrameTilemap, 0, 0); - CopyPaletteIntoBufferUnfaded(sMonRibbonListFramePal, BG_PLTT_ID(0x1), PLTT_SIZE_4BPP); + CopyPaletteIntoBufferUnfaded(sMonRibbonListFramePal, BG_PLTT_ID(1), PLTT_SIZE_4BPP); CopyBgTilemapBufferToVram(1); return LT_INC_AND_PAUSE; case 1: @@ -447,7 +447,7 @@ static u32 LoopedTask_OpenRibbonsMonList(s32 state) case 2: if (FreeTempTileDataBuffersIfPossible()) return LT_PAUSE; - CopyPaletteIntoBufferUnfaded(sMonRibbonListUi_Pal, BG_PLTT_ID(0x2), PLTT_SIZE_4BPP); + CopyPaletteIntoBufferUnfaded(sMonRibbonListUi_Pal, BG_PLTT_ID(2), PLTT_SIZE_4BPP); CreateRibbonMonsList(); return LT_INC_AND_PAUSE; case 3: diff --git a/src/pokenav_ribbons_summary.c b/src/pokenav_ribbons_summary.c index d5e04a502..4861b8e0e 100644 --- a/src/pokenav_ribbons_summary.c +++ b/src/pokenav_ribbons_summary.c @@ -573,7 +573,7 @@ static u32 LoopedTask_OpenRibbonsSummaryMenu(s32 state) DecompressAndCopyTileDataToVram(2, gPokenavRibbonsSummaryBg_Gfx, 0, 0, 0); SetBgTilemapBuffer(2, menu->tilemapBuffers[0]); CopyToBgTilemapBuffer(2, gPokenavRibbonsSummaryBg_Tilemap, 0, 0); - CopyPaletteIntoBufferUnfaded(gPokenavRibbonsSummaryBg_Pal, BG_PLTT_ID(0x1), PLTT_SIZE_4BPP); + CopyPaletteIntoBufferUnfaded(gPokenavRibbonsSummaryBg_Pal, BG_PLTT_ID(1), PLTT_SIZE_4BPP); CopyBgTilemapBufferToVram(2); return LT_INC_AND_PAUSE; case 1: @@ -583,8 +583,8 @@ static u32 LoopedTask_OpenRibbonsSummaryMenu(s32 state) DecompressAndCopyTileDataToVram(1, sRibbonIconsSmall_Gfx, 0, 1, 0); SetBgTilemapBuffer(1, menu->tilemapBuffers[1]); FillBgTilemapBufferRect_Palette0(1, 0, 0, 0, 32, 20); - CopyPaletteIntoBufferUnfaded(sRibbonIcons1_Pal, BG_PLTT_ID(0x2), 5 * PLTT_SIZE_4BPP); - CopyPaletteIntoBufferUnfaded(sMonInfo_Pal, BG_PLTT_ID(0xA), PLTT_SIZE_4BPP); + CopyPaletteIntoBufferUnfaded(sRibbonIcons1_Pal, BG_PLTT_ID(2), 5 * PLTT_SIZE_4BPP); + CopyPaletteIntoBufferUnfaded(sMonInfo_Pal, BG_PLTT_ID(10), PLTT_SIZE_4BPP); CopyBgTilemapBufferToVram(1); return LT_INC_AND_PAUSE; } @@ -790,7 +790,7 @@ static const struct WindowTemplate sRibbonCountWindowTemplate = .tilemapTop = 13, .width = 16, .height = 4, - .paletteNum = 0x1, + .paletteNum = 1, .baseBlock = 0x14, }; @@ -854,7 +854,7 @@ static const struct WindowTemplate sRibbonSummaryMonNameWindowTemplate = .tilemapTop = 1, .width = 13, .height = 2, - .paletteNum = 0xA, + .paletteNum = 10, .baseBlock = 0x54, }; @@ -909,7 +909,7 @@ static const struct WindowTemplate sRibbonMonListIndexWindowTemplate[] = .tilemapTop = 5, .width = 7, .height = 2, - .paletteNum = 0x1, + .paletteNum = 1, .baseBlock = 0x6E, }, {}, diff --git a/src/rayquaza_scene.c b/src/rayquaza_scene.c index ca50ed8f2..c984dfec8 100644 --- a/src/rayquaza_scene.c +++ b/src/rayquaza_scene.c @@ -1301,7 +1301,7 @@ static void CB2_InitRayquazaScene(void) ResetPaletteFade(); ResetSpriteData(); ResetTasks(); - FillPalette(RGB_BLACK, BG_PLTT_ID(0xF), PLTT_SIZE_4BPP); + FillPalette(RGB_BLACK, BG_PLTT_ID(15), PLTT_SIZE_4BPP); CreateTask(sTasksForAnimations[sRayScene->animId], 0); SetMainCallback2(CB2_RayquazaScene); } @@ -1592,7 +1592,7 @@ static void LoadDuoFightSceneGfx(void) LZDecompressWram(gRaySceneDuoFight_Clouds2_Tilemap, sRayScene->tilemapBuffers[0]); LZDecompressWram(gRaySceneDuoFight_Clouds1_Tilemap, sRayScene->tilemapBuffers[1]); LZDecompressWram(gRaySceneDuoFight_Clouds3_Tilemap, sRayScene->tilemapBuffers[2]); - LoadCompressedPalette(gRaySceneDuoFight_Clouds_Pal, BG_PLTT_ID(0x0), 2 * PLTT_SIZE_4BPP); + LoadCompressedPalette(gRaySceneDuoFight_Clouds_Pal, BG_PLTT_ID(0), 2 * PLTT_SIZE_4BPP); LoadCompressedSpriteSheet(&sSpriteSheet_DuoFight_Groudon); LoadCompressedSpriteSheet(&sSpriteSheet_DuoFight_GroudonShoulder); LoadCompressedSpriteSheet(&sSpriteSheet_DuoFight_GroudonClaw); @@ -2032,7 +2032,7 @@ static void LoadTakesFlightSceneGfx(void) LZDecompressWram(gRaySceneDuoFight_Clouds2_Tilemap, sRayScene->tilemapBuffers[0]); LZDecompressWram(gRaySceneTakesFlight_Bg_Tilemap, sRayScene->tilemapBuffers[1]); LZDecompressWram(gRaySceneTakesFlight_Rayquaza_Tilemap, sRayScene->tilemapBuffers[2]); - LoadCompressedPalette(gRaySceneTakesFlight_Rayquaza_Pal, BG_PLTT_ID(0x0), 2 * PLTT_SIZE_4BPP); + LoadCompressedPalette(gRaySceneTakesFlight_Rayquaza_Pal, BG_PLTT_ID(0), 2 * PLTT_SIZE_4BPP); LoadCompressedSpriteSheet(&sSpriteSheet_TakesFlight_Smoke); LoadCompressedSpritePalette(&sSpritePal_TakesFlight_Smoke); } @@ -2238,7 +2238,7 @@ static void LoadDescendsSceneGfx(void) CpuFastCopy(sRayScene->tilemapBuffers[3], sRayScene->tilemapBuffers[1], BG_SCREEN_SIZE); CpuFastFill16(0, &sRayScene->tilemapBuffers[1][0x100], 0x340); - LoadCompressedPalette(gRaySceneDescends_Bg_Pal, BG_PLTT_ID(0x0), 2 * PLTT_SIZE_4BPP); + LoadCompressedPalette(gRaySceneDescends_Bg_Pal, BG_PLTT_ID(0), 2 * PLTT_SIZE_4BPP); gPlttBufferUnfaded[0] = RGB_WHITE; gPlttBufferFaded[0] = RGB_WHITE; LoadCompressedSpriteSheet(&sSpriteSheet_Descends_Rayquaza); @@ -2487,7 +2487,7 @@ static void LoadChargesSceneGfx(void) LZDecompressWram(gRaySceneCharges_Rayquaza_Tilemap, sRayScene->tilemapBuffers[1]); LZDecompressWram(gRaySceneCharges_Streaks_Tilemap, sRayScene->tilemapBuffers[2]); LZDecompressWram(gRaySceneCharges_Bg_Tilemap, sRayScene->tilemapBuffers[3]); - LoadCompressedPalette(gRaySceneCharges_Bg_Pal, BG_PLTT_ID(0x0), 4 * PLTT_SIZE_4BPP); + LoadCompressedPalette(gRaySceneCharges_Bg_Pal, BG_PLTT_ID(0), 4 * PLTT_SIZE_4BPP); } #define tState data[0] @@ -2671,7 +2671,7 @@ static void LoadChasesAwaySceneGfx(void) LZDecompressWram(gRaySceneChasesAway_Bg_Tilemap, sRayScene->tilemapBuffers[1]); LZDecompressWram(gRaySceneChasesAway_Light_Tilemap, sRayScene->tilemapBuffers[0]); LZDecompressWram(gRaySceneChasesAway_Ring_Tilemap, sRayScene->tilemapBuffers[2]); - LoadCompressedPalette(gRaySceneChasesAway_Bg_Pal, BG_PLTT_ID(0x0), 3 * PLTT_SIZE_4BPP); + LoadCompressedPalette(gRaySceneChasesAway_Bg_Pal, BG_PLTT_ID(0), 3 * PLTT_SIZE_4BPP); LoadCompressedSpriteSheet(&sSpriteSheet_ChasesAway_Groudon); LoadCompressedSpriteSheet(&sSpriteSheet_ChasesAway_GroudonTail); LoadCompressedSpriteSheet(&sSpriteSheet_ChasesAway_Kyogre); diff --git a/src/region_map.c b/src/region_map.c index 379cc247e..06408942a 100644 --- a/src/region_map.c +++ b/src/region_map.c @@ -392,7 +392,7 @@ static const struct WindowTemplate sFlyMapWindowTemplates[] = .tilemapTop = 17, .width = 12, .height = 2, - .paletteNum = 0xF, + .paletteNum = 15, .baseBlock = 0x01 }, { @@ -401,7 +401,7 @@ static const struct WindowTemplate sFlyMapWindowTemplates[] = .tilemapTop = 15, .width = 12, .height = 4, - .paletteNum = 0xF, + .paletteNum = 15, .baseBlock = 0x19 }, { @@ -410,7 +410,7 @@ static const struct WindowTemplate sFlyMapWindowTemplates[] = .tilemapTop = 18, .width = 14, .height = 2, - .paletteNum = 0xF, + .paletteNum = 15, .baseBlock = 0x49 }, DUMMY_WIN_TEMPLATE @@ -567,7 +567,7 @@ bool8 LoadRegionMapGfx(void) break; case 2: if (!FreeTempTileDataBuffersIfPossible()) - LoadPalette(sRegionMapBg_Pal, BG_PLTT_ID(0x7), 3 * PLTT_SIZE_4BPP); + LoadPalette(sRegionMapBg_Pal, BG_PLTT_ID(7), 3 * PLTT_SIZE_4BPP); break; case 3: LZ77UnCompWram(sRegionMapCursorSmallGfxLZ, sRegionMap->cursorSmallImage); @@ -1689,7 +1689,7 @@ void CB2_OpenFlyMap(void) gMain.state++; break; case 3: - LoadUserWindowBorderGfx(0, 0x65, BG_PLTT_ID(0xD)); + LoadUserWindowBorderGfx(0, 0x65, BG_PLTT_ID(13)); ClearScheduledBgCopiesToVram(); gMain.state++; break; @@ -1712,7 +1712,7 @@ void CB2_OpenFlyMap(void) gMain.state++; break; case 7: - LoadPalette(sRegionMapFramePal, BG_PLTT_ID(0x1), sizeof(sRegionMapFramePal)); + LoadPalette(sRegionMapFramePal, BG_PLTT_ID(1), sizeof(sRegionMapFramePal)); PutWindowTilemap(2); FillWindowPixelBuffer(2, PIXEL_FILL(0)); AddTextPrinterParameterized(2, FONT_NORMAL, gText_FlyToWhere, 0, 1, 0, NULL); diff --git a/src/reset_rtc_screen.c b/src/reset_rtc_screen.c index 2c7566a66..0a9ec4911 100644 --- a/src/reset_rtc_screen.c +++ b/src/reset_rtc_screen.c @@ -85,7 +85,7 @@ static const struct WindowTemplate sWindowTemplates[] = .tilemapTop = 1, .width = 19, .height = 9, - .paletteNum = 0xF, + .paletteNum = 15, .baseBlock = 0x155 }, { @@ -94,7 +94,7 @@ static const struct WindowTemplate sWindowTemplates[] = .tilemapTop = 15, .width = 27, .height = 4, - .paletteNum = 0xF, + .paletteNum = 15, .baseBlock = 0xE9 }, DUMMY_WIN_TEMPLATE @@ -106,7 +106,7 @@ static const struct WindowTemplate sInputTimeWindow = { .tilemapTop = 9, .width = 21, .height = 2, - .paletteNum = 0xF, + .paletteNum = 15, .baseBlock = 0xBF }; diff --git a/src/roulette.c b/src/roulette.c index 3e37ba5d6..5182dabae 100644 --- a/src/roulette.c +++ b/src/roulette.c @@ -460,7 +460,7 @@ static const struct WindowTemplate sWindowTemplates[] = .tilemapTop = 15, .width = 24, .height = 4, - .paletteNum = 0xF, + .paletteNum = 15, .baseBlock = 0xC5 }, #ifdef UBFIX @@ -1195,7 +1195,7 @@ static void CB2_LoadRoulette(void) ResetTempTileDataBuffers(); break; case 3: - LoadPalette(&sWheel_Pal, BG_PLTT_ID(0x0), 14 * PLTT_SIZE_4BPP); + LoadPalette(&sWheel_Pal, BG_PLTT_ID(0), 14 * PLTT_SIZE_4BPP); DecompressAndCopyTileDataToVram(1, gRouletteMenu_Gfx, 0, 0, 0); DecompressAndCopyTileDataToVram(2, gRouletteWheel_Gfx, 0, 0, 0); break; diff --git a/src/save_failed_screen.c b/src/save_failed_screen.c index f039cf324..dc079ad83 100644 --- a/src/save_failed_screen.c +++ b/src/save_failed_screen.c @@ -103,7 +103,7 @@ static const struct WindowTemplate sWindowTemplate_Text[] = .tilemapTop = 13, .width = 28, .height = 6, - .paletteNum = 0xF, + .paletteNum = 15, .baseBlock = 1, } }; @@ -116,7 +116,7 @@ static const struct WindowTemplate sWindowTemplate_Clock[] = .tilemapTop = 9, .width = 2, .height = 2, - .paletteNum = 0xF, + .paletteNum = 15, .baseBlock = 169, } }; @@ -214,10 +214,10 @@ static void CB2_SaveFailedScreen(void) ResetSpriteData(); ResetTasks(); ResetPaletteFade(); - LoadPalette(gBirchBagGrassPal, BG_PLTT_ID(0x0), 2 * PLTT_SIZE_4BPP); - LoadPalette(sSaveFailedClockPal, OBJ_PLTT_ID(0x0), PLTT_SIZE_4BPP); - LoadPalette(gTextWindowFrame1_Pal, BG_PLTT_ID(0xE), PLTT_SIZE_4BPP); - LoadPalette(gStandardMenuPalette, BG_PLTT_ID(0xF), PLTT_SIZE_4BPP); + LoadPalette(gBirchBagGrassPal, BG_PLTT_ID(0), 2 * PLTT_SIZE_4BPP); + LoadPalette(sSaveFailedClockPal, OBJ_PLTT_ID(0), PLTT_SIZE_4BPP); + LoadPalette(gTextWindowFrame1_Pal, BG_PLTT_ID(14), PLTT_SIZE_4BPP); + LoadPalette(gStandardMenuPalette, BG_PLTT_ID(15), PLTT_SIZE_4BPP); DrawStdFrameWithCustomTileAndPalette(sWindowIds[TEXT_WIN_ID], FALSE, 0x214, 0xE); DrawStdFrameWithCustomTileAndPalette(sWindowIds[CLOCK_WIN_ID], FALSE, 0x214, 0xE); FillWindowPixelBuffer(sWindowIds[CLOCK_WIN_ID], PIXEL_FILL(1)); // backwards? diff --git a/src/scrcmd.c b/src/scrcmd.c index 91ab4ebfb..3874b2e84 100644 --- a/src/scrcmd.c +++ b/src/scrcmd.c @@ -1526,7 +1526,7 @@ bool8 ScrCmd_braillemessage(struct ScriptContext *ctx) winTemplate = CreateWindowTemplate(0, xWindow, yWindow + 1, width, height, 0xF, 0x1); sBrailleWindowId = AddWindow(&winTemplate); - LoadUserWindowBorderGfx(sBrailleWindowId, 0x214, BG_PLTT_ID(0xE)); + LoadUserWindowBorderGfx(sBrailleWindowId, 0x214, BG_PLTT_ID(14)); DrawStdWindowFrame(sBrailleWindowId, FALSE); PutWindowTilemap(sBrailleWindowId); FillWindowPixelBuffer(sBrailleWindowId, PIXEL_FILL(1)); diff --git a/src/secret_base.c b/src/secret_base.c index 61d426ea6..74129d3ff 100644 --- a/src/secret_base.c +++ b/src/secret_base.c @@ -181,7 +181,7 @@ static const struct WindowTemplate sRegistryWindowTemplates[] = .tilemapTop = 1, .width = 11, .height = 18, - .paletteNum = 0xF, + .paletteNum = 15, .baseBlock = 0x01, }, { @@ -190,7 +190,7 @@ static const struct WindowTemplate sRegistryWindowTemplates[] = .tilemapTop = 1, .width = 28, .height = 4, - .paletteNum = 0xF, + .paletteNum = 15, .baseBlock = 0xc7, } }; diff --git a/src/shop.c b/src/shop.c index 3fd29a3f3..b9fb2dbc5 100755 --- a/src/shop.c +++ b/src/shop.c @@ -120,7 +120,7 @@ static const struct WindowTemplate sShopMenuWindowTemplates[] = .tilemapTop = 1, .width = 9, .height = 6, - .paletteNum = 0xF, + .paletteNum = 15, .baseBlock = 0x0008, }, { @@ -129,7 +129,7 @@ static const struct WindowTemplate sShopMenuWindowTemplates[] = .tilemapTop = 1, .width = 9, .height = 4, - .paletteNum = 0xF, + .paletteNum = 15, .baseBlock = 0x0008, } }; @@ -204,7 +204,7 @@ static const struct WindowTemplate sShopBuyMenuWindowTemplates[] = .tilemapTop = 1, .width = 10, .height = 2, - .paletteNum = 0xF, + .paletteNum = 15, .baseBlock = 0x001E, }, { @@ -213,7 +213,7 @@ static const struct WindowTemplate sShopBuyMenuWindowTemplates[] = .tilemapTop = 2, .width = 15, .height = 16, - .paletteNum = 0xF, + .paletteNum = 15, .baseBlock = 0x0032, }, { @@ -222,7 +222,7 @@ static const struct WindowTemplate sShopBuyMenuWindowTemplates[] = .tilemapTop = 13, .width = 14, .height = 6, - .paletteNum = 0xF, + .paletteNum = 15, .baseBlock = 0x0122, }, { @@ -231,7 +231,7 @@ static const struct WindowTemplate sShopBuyMenuWindowTemplates[] = .tilemapTop = 11, .width = 12, .height = 2, - .paletteNum = 0xF, + .paletteNum = 15, .baseBlock = 0x0176, }, { @@ -240,7 +240,7 @@ static const struct WindowTemplate sShopBuyMenuWindowTemplates[] = .tilemapTop = 11, .width = 10, .height = 2, - .paletteNum = 0xF, + .paletteNum = 15, .baseBlock = 0x018E, }, { @@ -249,7 +249,7 @@ static const struct WindowTemplate sShopBuyMenuWindowTemplates[] = .tilemapTop = 15, .width = 27, .height = 4, - .paletteNum = 0xF, + .paletteNum = 15, .baseBlock = 0x01A2, }, DUMMY_WIN_TEMPLATE @@ -262,7 +262,7 @@ static const struct WindowTemplate sShopBuyMenuYesNoWindowTemplates = .tilemapTop = 9, .width = 5, .height = 4, - .paletteNum = 0xF, + .paletteNum = 15, .baseBlock = 0x020E, }; @@ -676,15 +676,15 @@ static void BuyMenuDecompressBgGraphics(void) { DecompressAndCopyTileDataToVram(1, gShopMenu_Gfx, 0x3A0, 0x3E3, 0); LZDecompressWram(gShopMenu_Tilemap, sShopData->tilemapBuffers[0]); - LoadCompressedPalette(gShopMenu_Pal, BG_PLTT_ID(0xC), PLTT_SIZE_4BPP); + LoadCompressedPalette(gShopMenu_Pal, BG_PLTT_ID(12), PLTT_SIZE_4BPP); } static void BuyMenuInitWindows(void) { InitWindows(sShopBuyMenuWindowTemplates); DeactivateAllTextPrinters(); - LoadUserWindowBorderGfx(0, 1, BG_PLTT_ID(0xD)); - LoadMessageBoxGfx(0, 0xA, BG_PLTT_ID(0xE)); + LoadUserWindowBorderGfx(0, 1, BG_PLTT_ID(13)); + LoadMessageBoxGfx(0, 0xA, BG_PLTT_ID(14)); PutWindowTilemap(0); PutWindowTilemap(1); PutWindowTilemap(2); diff --git a/src/slot_machine.c b/src/slot_machine.c index 94cc7dfae..0fe4bade2 100644 --- a/src/slot_machine.c +++ b/src/slot_machine.c @@ -789,7 +789,7 @@ static const struct WindowTemplate sWindowTemplates[] = .tilemapTop = 15, .width = 27, .height = 4, - .paletteNum = 0xF, + .paletteNum = 15, .baseBlock = 0x194 }, DUMMY_WIN_TEMPLATE @@ -802,7 +802,7 @@ static const struct WindowTemplate sWindowTemplate_InfoBox = .tilemapTop = 3, .width = 20, .height = 13, - .paletteNum = 0xD, + .paletteNum = 13, .baseBlock = 1 }; @@ -1247,8 +1247,8 @@ static void SlotMachineSetup_LoadGfxAndTilemaps(void) LoadMenuGfx(); LoadMenuAndReelOverlayTilemaps(); LoadSlotMachineGfx(); - LoadMessageBoxGfx(0, 0x200, BG_PLTT_ID(0xF)); - LoadUserWindowBorderGfx(0, 0x214, BG_PLTT_ID(0xE)); + LoadMessageBoxGfx(0, 0x200, BG_PLTT_ID(15)); + LoadUserWindowBorderGfx(0, 0x214, BG_PLTT_ID(14)); PutWindowTilemap(0); } @@ -3360,7 +3360,7 @@ static bool8 TryStopSlotMachineLights(void) if (gTasks[taskId].sFlashState == 0) { DestroyTask(taskId); - LoadPalette(sSlotMachineMenu_Pal, BG_PLTT_ID(0x1), PLTT_SIZE_4BPP); + LoadPalette(sSlotMachineMenu_Pal, BG_PLTT_ID(1), PLTT_SIZE_4BPP); return TRUE; } return FALSE; @@ -3376,7 +3376,7 @@ static void Task_FlashSlotMachineLights(u8 taskId) if (task->sFlashState == 0 || task->sFlashState == 2) task->sFlashDir = -task->sFlashDir; } - LoadPalette(sFlashingLightsPalTable[task->sFlashState], BG_PLTT_ID(0x1), PLTT_SIZE_4BPP); + LoadPalette(sFlashingLightsPalTable[task->sFlashState], BG_PLTT_ID(1), PLTT_SIZE_4BPP); } #undef sDelayTimer @@ -5054,8 +5054,8 @@ static void LoadMenuGfx(void) sMenuGfx = Alloc(0x2200); LZDecompressWram(gSlotMachineMenu_Gfx, sMenuGfx); LoadBgTiles(2, sMenuGfx, 0x2200, 0); - LoadPalette(gSlotMachineMenu_Pal, BG_PLTT_ID(0x0), 5 * PLTT_SIZE_4BPP); - LoadPalette(sUnkPalette, BG_PLTT_ID(0xD), PLTT_SIZE_4BPP); + LoadPalette(gSlotMachineMenu_Pal, BG_PLTT_ID(0), 5 * PLTT_SIZE_4BPP); + LoadPalette(sUnkPalette, BG_PLTT_ID(13), PLTT_SIZE_4BPP); } static void LoadMenuAndReelOverlayTilemaps(void) @@ -7728,19 +7728,19 @@ static const u16 *const sLitMatchLinePalTable[NUM_MATCH_LINES] = static const u16 *const sDarkMatchLinePalTable[NUM_MATCH_LINES] = { - [MATCH_MIDDLE_ROW] = &gSlotMachineMenu_Pal[BG_PLTT_ID(0x4) + 10], - [MATCH_TOP_ROW] = &gSlotMachineMenu_Pal[BG_PLTT_ID(0x4) + 11], - [MATCH_BOTTOM_ROW] = &gSlotMachineMenu_Pal[BG_PLTT_ID(0x4) + 12], - [MATCH_NWSE_DIAG] = &gSlotMachineMenu_Pal[BG_PLTT_ID(0x4) + 13], - [MATCH_NESW_DIAG] = &gSlotMachineMenu_Pal[BG_PLTT_ID(0x4) + 14], + [MATCH_MIDDLE_ROW] = &gSlotMachineMenu_Pal[BG_PLTT_ID(4) + 10], + [MATCH_TOP_ROW] = &gSlotMachineMenu_Pal[BG_PLTT_ID(4) + 11], + [MATCH_BOTTOM_ROW] = &gSlotMachineMenu_Pal[BG_PLTT_ID(4) + 12], + [MATCH_NWSE_DIAG] = &gSlotMachineMenu_Pal[BG_PLTT_ID(4) + 13], + [MATCH_NESW_DIAG] = &gSlotMachineMenu_Pal[BG_PLTT_ID(4) + 14], }; static const u8 sMatchLinePalOffsets[NUM_MATCH_LINES] = { - [MATCH_MIDDLE_ROW] = BG_PLTT_ID(0x4) + 10, - [MATCH_TOP_ROW] = BG_PLTT_ID(0x4) + 11, - [MATCH_BOTTOM_ROW] = BG_PLTT_ID(0x4) + 12, - [MATCH_NWSE_DIAG] = BG_PLTT_ID(0x4) + 14, // Diag colors flipped for some reason - [MATCH_NESW_DIAG] = BG_PLTT_ID(0x4) + 13 // Doesn't matter as both are identical + [MATCH_MIDDLE_ROW] = BG_PLTT_ID(4) + 10, + [MATCH_TOP_ROW] = BG_PLTT_ID(4) + 11, + [MATCH_BOTTOM_ROW] = BG_PLTT_ID(4) + 12, + [MATCH_NWSE_DIAG] = BG_PLTT_ID(4) + 14, // Diag colors flipped for some reason + [MATCH_NESW_DIAG] = BG_PLTT_ID(4) + 13 // Doesn't matter as both are identical }; static const u8 sBetToMatchLineIds[MAX_BET][2] = diff --git a/src/start_menu.c b/src/start_menu.c index 34e7e5b2b..63cfd0ace 100644 --- a/src/start_menu.c +++ b/src/start_menu.c @@ -192,7 +192,7 @@ static const struct WindowTemplate sWindowTemplates_LinkBattleSave[] = .tilemapTop = 15, .width = 26, .height = 4, - .paletteNum = 0xF, + .paletteNum = 15, .baseBlock = 0x194 }, DUMMY_WIN_TEMPLATE @@ -204,7 +204,7 @@ static const struct WindowTemplate sSaveInfoWindowTemplate = { .tilemapTop = 1, .width = 14, .height = 10, - .paletteNum = 0xF, + .paletteNum = 15, .baseBlock = 8 }; @@ -1196,8 +1196,8 @@ static bool32 InitSaveWindowAfterLinkBattle(u8 *state) ResetBgsAndClearDma3BusyFlags(0); InitBgsFromTemplates(0, sBgTemplates_LinkBattleSave, ARRAY_COUNT(sBgTemplates_LinkBattleSave)); InitWindows(sWindowTemplates_LinkBattleSave); - LoadUserWindowBorderGfx_(0, 8, BG_PLTT_ID(0xE)); - Menu_LoadStdPalAt(BG_PLTT_ID(0xF)); + LoadUserWindowBorderGfx_(0, 8, BG_PLTT_ID(14)); + Menu_LoadStdPalAt(BG_PLTT_ID(15)); break; case 3: ShowBg(0); @@ -1246,7 +1246,7 @@ static void Task_SaveAfterLinkBattle(u8 taskId) TEXT_COLOR_DARK_GRAY, TEXT_COLOR_WHITE, TEXT_COLOR_LIGHT_GRAY); - DrawTextBorderOuter(0, 8, 0xE); + DrawTextBorderOuter(0, 8, 14); PutWindowTilemap(0); CopyWindowToVram(0, COPYWIN_FULL); BeginNormalPaletteFade(PALETTES_ALL, 0, 16, 0, RGB_BLACK); diff --git a/src/starter_choose.c b/src/starter_choose.c index fc626e13a..2e8533e17 100644 --- a/src/starter_choose.c +++ b/src/starter_choose.c @@ -73,7 +73,7 @@ static const struct WindowTemplate sWindowTemplates[] = .tilemapTop = 15, .width = 24, .height = 4, - .paletteNum = 0xE, + .paletteNum = 14, .baseBlock = 0x0200 }, DUMMY_WIN_TEMPLATE, @@ -86,7 +86,7 @@ static const struct WindowTemplate sWindowTemplate_ConfirmStarter = .tilemapTop = 9, .width = 5, .height = 4, - .paletteNum = 0xE, + .paletteNum = 14, .baseBlock = 0x0260 }; @@ -97,7 +97,7 @@ static const struct WindowTemplate sWindowTemplate_StarterLabel = .tilemapTop = 0, .width = 13, .height = 4, - .paletteNum = 0xE, + .paletteNum = 14, .baseBlock = 0x0274 }; @@ -411,7 +411,7 @@ void CB2_ChooseStarter(void) InitWindows(sWindowTemplates); DeactivateAllTextPrinters(); - LoadUserWindowBorderGfx(0, 0x2A8, BG_PLTT_ID(0xD)); + LoadUserWindowBorderGfx(0, 0x2A8, BG_PLTT_ID(13)); ClearScheduledBgCopiesToVram(); ScanlineEffect_Stop(); ResetTasks(); @@ -420,8 +420,8 @@ void CB2_ChooseStarter(void) FreeAllSpritePalettes(); ResetAllPicSprites(); - LoadPalette(GetOverworldTextboxPalettePtr(), BG_PLTT_ID(0xE), PLTT_SIZE_4BPP); - LoadPalette(gBirchBagGrassPal, BG_PLTT_ID(0x0), 2 * PLTT_SIZE_4BPP); + LoadPalette(GetOverworldTextboxPalettePtr(), BG_PLTT_ID(14), PLTT_SIZE_4BPP); + LoadPalette(gBirchBagGrassPal, BG_PLTT_ID(0), 2 * PLTT_SIZE_4BPP); LoadCompressedSpriteSheet(&sSpriteSheet_PokeballSelect[0]); LoadCompressedSpriteSheet(&sSpriteSheet_StarterCircle[0]); LoadSpritePalettes(sSpritePalettes_StarterChoose); diff --git a/src/tileset_anims.c b/src/tileset_anims.c index 018ac5d88..165648d0e 100644 --- a/src/tileset_anims.c +++ b/src/tileset_anims.c @@ -1168,7 +1168,7 @@ static void QueueAnimTiles_BattlePyramid_StatueShadow(u16 timer) static void BlendAnimPalette_BattleDome_FloorLights(u16 timer) { CpuCopy16(sTilesetAnims_BattleDomeFloorLightPals[timer % ARRAY_COUNT(sTilesetAnims_BattleDomeFloorLightPals)], &gPlttBufferUnfaded[0x80], 32); - BlendPalette(BG_PLTT_ID(0x8), 16, gPaletteFade.y, gPaletteFade.blendColor & 0x7FFF); + BlendPalette(BG_PLTT_ID(8), 16, gPaletteFade.y, gPaletteFade.blendColor & 0x7FFF); if ((u8)FindTaskIdByFunc(Task_BattleTransition_Intro) != TASK_NONE) { sSecondaryTilesetAnimCallback = TilesetAnim_BattleDome2; @@ -1181,7 +1181,7 @@ static void BlendAnimPalette_BattleDome_FloorLightsNoBlend(u16 timer) CpuCopy16(sTilesetAnims_BattleDomeFloorLightPals[timer % ARRAY_COUNT(sTilesetAnims_BattleDomeFloorLightPals)], &gPlttBufferUnfaded[0x80], 32); if ((u8)FindTaskIdByFunc(Task_BattleTransition_Intro) == TASK_NONE) { - BlendPalette(BG_PLTT_ID(0x8), 16, gPaletteFade.y, gPaletteFade.blendColor & 0x7FFF); + BlendPalette(BG_PLTT_ID(8), 16, gPaletteFade.y, gPaletteFade.blendColor & 0x7FFF); if (!--sSecondaryTilesetAnimCounterMax) sSecondaryTilesetAnimCallback = NULL; } diff --git a/src/title_screen.c b/src/title_screen.c index 7f7205d9d..68b080b24 100644 --- a/src/title_screen.c +++ b/src/title_screen.c @@ -548,7 +548,7 @@ void CB2_InitTitleScreen(void) // bg2 LZ77UnCompVram(gTitleScreenPokemonLogoGfx, (void *)(BG_CHAR_ADDR(0))); LZ77UnCompVram(gTitleScreenPokemonLogoTilemap, (void *)(BG_SCREEN_ADDR(9))); - LoadPalette(gTitleScreenBgPalettes, BG_PLTT_ID(0x0), 15 * PLTT_SIZE_4BPP); + LoadPalette(gTitleScreenBgPalettes, BG_PLTT_ID(0), 15 * PLTT_SIZE_4BPP); // bg3 LZ77UnCompVram(sTitleScreenRayquazaGfx, (void *)(BG_CHAR_ADDR(2))); LZ77UnCompVram(sTitleScreenRayquazaTilemap, (void *)(BG_SCREEN_ADDR(26))); @@ -563,7 +563,7 @@ void CB2_InitTitleScreen(void) LoadCompressedSpriteSheet(&sSpriteSheet_EmeraldVersion[0]); LoadCompressedSpriteSheet(&sSpriteSheet_PressStart[0]); LoadCompressedSpriteSheet(&sPokemonLogoShineSpriteSheet[0]); - LoadPalette(gTitleScreenEmeraldVersionPal, OBJ_PLTT_ID(0x0), PLTT_SIZE_4BPP); + LoadPalette(gTitleScreenEmeraldVersionPal, OBJ_PLTT_ID(0), PLTT_SIZE_4BPP); LoadSpritePalette(&sSpritePalette_PressStart[0]); gMain.state = 2; break; @@ -812,6 +812,6 @@ static void UpdateLegendaryMarkingColor(u8 frameNum) s32 b = 12; u16 color = RGB(r, g, b); - LoadPalette(&color, BG_PLTT_ID(0xE) + 15, sizeof(color)); + LoadPalette(&color, BG_PLTT_ID(14) + 15, sizeof(color)); } } diff --git a/src/trade.c b/src/trade.c index 1c4d0d5e3..7216ecb41 100644 --- a/src/trade.c +++ b/src/trade.c @@ -333,8 +333,8 @@ static void InitTradeMenu(void) gPaletteFade.bufferTransferDisabled = TRUE; SetVBlankCallback(VBlankCB_TradeMenu); - LoadPalette(gStandardMenuPalette, BG_PLTT_ID(0xF), PLTT_SIZEOF(10)); - LoadPalette(gStandardMenuPalette, BG_PLTT_ID(0xD), PLTT_SIZEOF(10)); + LoadPalette(gStandardMenuPalette, BG_PLTT_ID(15), PLTT_SIZEOF(10)); + LoadPalette(gStandardMenuPalette, BG_PLTT_ID(13), PLTT_SIZEOF(10)); ResetBgsAndClearDma3BusyFlags(0); InitBgsFromTemplates(0, sTradeMenuBgTemplates, ARRAY_COUNT(sTradeMenuBgTemplates)); SetBgTilemapBuffer(1, sTradeMenuData->tilemapBuffer); @@ -351,9 +351,9 @@ static void InitTradeMenu(void) FillWindowPixelBuffer(i, PIXEL_FILL(0)); } - FillBgTilemapBufferRect(0, 0, 0, 0, 30, 20, 0xF); - LoadUserWindowBorderGfx_(0, 20, BG_PLTT_ID(0xC)); - LoadUserWindowBorderGfx(2, 1, BG_PLTT_ID(0xE)); + FillBgTilemapBufferRect(0, 0, 0, 0, 30, 20, 15); + LoadUserWindowBorderGfx_(0, 20, BG_PLTT_ID(12)); + LoadUserWindowBorderGfx(2, 1, BG_PLTT_ID(14)); LoadMonIconPalettes(); sTradeMenuData->bufferPartyState = 0; sTradeMenuData->tradeMenuFunc = 0; @@ -910,7 +910,7 @@ static void LoadTradeBgGfx(u8 state) switch (state) { case 0: - LoadPalette(gTradeMenu_Pal, BG_PLTT_ID(0x0), 3 * PLTT_SIZE_4BPP); + LoadPalette(gTradeMenu_Pal, BG_PLTT_ID(0), 3 * PLTT_SIZE_4BPP); LoadBgTiles(1, gTradeMenu_Gfx, 0x1280, 0); CopyToBgTilemapBufferRect_ChangePalette(1, gTradeMenu_Tilemap, 0, 0, 32, 20, 0); LoadBgTilemap(2, sTradeStripesBG2Tilemap, 0x800, 0); @@ -1391,7 +1391,7 @@ static void TradeMenuProcessInput(void) // Cursor is in player's party if (sTradeMenuData->cursorPosition < PARTY_SIZE) { - DrawTextBorderOuter(1, 1, 0xE); + DrawTextBorderOuter(1, 1, 14); FillWindowPixelBuffer(1, PIXEL_FILL(1)); PrintMenuTable(1, ARRAY_COUNT(sSelectTradeMonActions), sSelectTradeMonActions); InitMenuInUpperLeftCornerNormal(1, ARRAY_COUNT(sSelectTradeMonActions), 0); @@ -2153,7 +2153,7 @@ static void PrintTradeMessage(u8 messageId) { FillWindowPixelBuffer(0, PIXEL_FILL(1)); AddTextPrinterParameterized(0, FONT_NORMAL, sTradeMessages[messageId], 0, 1, TEXT_SKIP_DRAW, NULL); - DrawTextBorderOuter(0, 20, 0xC); + DrawTextBorderOuter(0, 20, 12); PutWindowTilemap(0); CopyWindowToVram(0, COPYWIN_FULL); } @@ -2915,12 +2915,12 @@ static void InitTradeBgInternal(void) DecompressAndLoadBgGfxUsingHeap(0, gBattleTextboxTiles, 0, 0, 0); LZDecompressWram(gBattleTextboxTilemap, gDecompressionBuffer); CopyToBgTilemapBuffer(0, gDecompressionBuffer, 0x800, 0); - LoadCompressedPalette(gBattleTextboxPalette, BG_PLTT_ID(0x0), PLTT_SIZE_4BPP); + LoadCompressedPalette(gBattleTextboxPalette, BG_PLTT_ID(0), PLTT_SIZE_4BPP); InitWindows(sTradeSequenceWindowTemplates); DecompressAndLoadBgGfxUsingHeap(0, gBattleTextboxTiles, 0, 0, 0); LZDecompressWram(gBattleTextboxTilemap, gDecompressionBuffer); CopyToBgTilemapBuffer(0, gDecompressionBuffer, 0x800, 0); - LoadCompressedPalette(gBattleTextboxPalette, BG_PLTT_ID(0x0), PLTT_SIZE_4BPP); + LoadCompressedPalette(gBattleTextboxPalette, BG_PLTT_ID(0), PLTT_SIZE_4BPP); } static void CB2_InGameTrade(void) @@ -3100,7 +3100,7 @@ static void SetTradeSequenceBgGpuRegs(u8 state) BGCNT_16COLOR | BGCNT_SCREENBASE(18) | BGCNT_TXT512x256); - LoadPalette(gTradeGba2_Pal, BG_PLTT_ID(0x1), 3 * PLTT_SIZE_4BPP); + LoadPalette(gTradeGba2_Pal, BG_PLTT_ID(1), 3 * PLTT_SIZE_4BPP); DmaCopyLarge16(3, gTradeGba_Gfx, (void *) BG_CHAR_ADDR(1), 0x1420, 0x1000); DmaCopy16Defvars(3, gTradePlatform_Tilemap, (void *) BG_SCREEN_ADDR(18), 0x1000); break; @@ -3157,7 +3157,7 @@ static void SetTradeSequenceBgGpuRegs(u8 state) } break; case 3: - LoadPalette(sWirelessSignalNone_Pal, BG_PLTT_ID(0x3), PLTT_SIZE_4BPP); + LoadPalette(sWirelessSignalNone_Pal, BG_PLTT_ID(3), PLTT_SIZE_4BPP); LZ77UnCompVram(sWirelessSignal_Gfx, (void *) BG_CHAR_ADDR(1)); LZ77UnCompVram(sWirelessSignal_Tilemap, (void *) BG_SCREEN_ADDR(18)); sTradeData->bg2vofs = 80; @@ -3236,7 +3236,7 @@ static void SetTradeSequenceBgGpuRegs(u8 state) BGCNT_16COLOR | BGCNT_SCREENBASE(18) | BGCNT_TXT512x256); - LoadPalette(gTradeGba2_Pal, BG_PLTT_ID(0x1), 3 * PLTT_SIZE_4BPP); + LoadPalette(gTradeGba2_Pal, BG_PLTT_ID(1), 3 * PLTT_SIZE_4BPP); DmaCopyLarge16(3, gTradeGba_Gfx, (void *) BG_CHAR_ADDR(1), 0x1420, 0x1000); DmaCopy16Defvars(3, gTradePlatform_Tilemap, (void *) BG_SCREEN_ADDR(18), 0x1000); break; @@ -4849,16 +4849,16 @@ static void Task_AnimateWirelessSignal(u8 taskId) if (!signalComingBack) { if (paletteIdx == 256) - LoadPalette(sWirelessSignalNone_Pal, BG_PLTT_ID(0x3), PLTT_SIZE_4BPP); + LoadPalette(sWirelessSignalNone_Pal, BG_PLTT_ID(3), PLTT_SIZE_4BPP); else - LoadPalette(&sWirelessSignalSend_Pal[paletteIdx], BG_PLTT_ID(0x3), PLTT_SIZE_4BPP); + LoadPalette(&sWirelessSignalSend_Pal[paletteIdx], BG_PLTT_ID(3), PLTT_SIZE_4BPP); } else { if (paletteIdx == 256) - LoadPalette(sWirelessSignalNone_Pal, BG_PLTT_ID(0x3), PLTT_SIZE_4BPP); + LoadPalette(sWirelessSignalNone_Pal, BG_PLTT_ID(3), PLTT_SIZE_4BPP); else - LoadPalette(&sWirelessSignalRecv_Pal[paletteIdx], BG_PLTT_ID(0x3), PLTT_SIZE_4BPP); + LoadPalette(&sWirelessSignalRecv_Pal[paletteIdx], BG_PLTT_ID(3), PLTT_SIZE_4BPP); } if (sWirelessSignalTiming[idx][0] == 0 && counter == 0) diff --git a/src/trader.c b/src/trader.c index b16297c10..254d80945 100644 --- a/src/trader.c +++ b/src/trader.c @@ -66,7 +66,7 @@ void CreateAvailableDecorationsMenu(u8 taskId) .tilemapTop = 1, .width = 10, .height = 10, - .paletteNum = 0xF, + .paletteNum = 15, .baseBlock = 1 }; s32 windowWidth = GetStringWidth(FONT_NORMAL, gText_Exit, 0); diff --git a/src/trainer_card.c b/src/trainer_card.c index 94fcdaf6e..bbd3ef340 100755 --- a/src/trainer_card.c +++ b/src/trainer_card.c @@ -231,7 +231,7 @@ static const struct WindowTemplate sTrainerCardWindowTemplates[] = .tilemapTop = 15, .width = 27, .height = 4, - .paletteNum = 0xF, + .paletteNum = 15, .baseBlock = 0x253, }, { @@ -240,7 +240,7 @@ static const struct WindowTemplate sTrainerCardWindowTemplates[] = .tilemapTop = 1, .width = 28, .height = 18, - .paletteNum = 0xF, + .paletteNum = 15, .baseBlock = 0x1, }, { @@ -249,7 +249,7 @@ static const struct WindowTemplate sTrainerCardWindowTemplates[] = .tilemapTop = 5, .width = 9, .height = 10, - .paletteNum = 0x8, + .paletteNum = 8, .baseBlock = 0x150, }, DUMMY_WIN_TEMPLATE @@ -1371,7 +1371,7 @@ static void LoadMonIconGfx(void) TintPalette_SepiaTone(sData->monIconPal, 96); break; } - LoadPalette(sData->monIconPal, BG_PLTT_ID(0x5), 6 * PLTT_SIZE_4BPP); + LoadPalette(sData->monIconPal, BG_PLTT_ID(5), 6 * PLTT_SIZE_4BPP); for (i = 0; i < PARTY_SIZE; i++) { @@ -1398,10 +1398,10 @@ static void PrintStickersOnCard(void) static void LoadStickerGfx(void) { - LoadPalette(sTrainerCardSticker1_Pal, BG_PLTT_ID(0xB), PLTT_SIZE_4BPP); - LoadPalette(sTrainerCardSticker2_Pal, BG_PLTT_ID(0xC), PLTT_SIZE_4BPP); - LoadPalette(sTrainerCardSticker3_Pal, BG_PLTT_ID(0xD), PLTT_SIZE_4BPP); - LoadPalette(sTrainerCardSticker4_Pal, BG_PLTT_ID(0xE), PLTT_SIZE_4BPP); + LoadPalette(sTrainerCardSticker1_Pal, BG_PLTT_ID(11), PLTT_SIZE_4BPP); + LoadPalette(sTrainerCardSticker2_Pal, BG_PLTT_ID(12), PLTT_SIZE_4BPP); + LoadPalette(sTrainerCardSticker3_Pal, BG_PLTT_ID(13), PLTT_SIZE_4BPP); + LoadPalette(sTrainerCardSticker4_Pal, BG_PLTT_ID(14), PLTT_SIZE_4BPP); LoadBgTiles(3, sData->stickerTiles, 1024, 128); } @@ -1424,19 +1424,19 @@ static u8 SetCardBgsAndPals(void) case 2: if (sData->cardType != CARD_TYPE_FRLG) { - LoadPalette(sHoennTrainerCardStarPals[sData->trainerCard.stars], BG_PLTT_ID(0x0), 3 * PLTT_SIZE_4BPP); - LoadPalette(sHoennTrainerCardBadges_Pal, BG_PLTT_ID(0x3), PLTT_SIZE_4BPP); + LoadPalette(sHoennTrainerCardStarPals[sData->trainerCard.stars], BG_PLTT_ID(0), 3 * PLTT_SIZE_4BPP); + LoadPalette(sHoennTrainerCardBadges_Pal, BG_PLTT_ID(3), PLTT_SIZE_4BPP); if (sData->trainerCard.gender != MALE) - LoadPalette(sHoennTrainerCardFemaleBg_Pal, BG_PLTT_ID(0x1), PLTT_SIZE_4BPP); + LoadPalette(sHoennTrainerCardFemaleBg_Pal, BG_PLTT_ID(1), PLTT_SIZE_4BPP); } else { - LoadPalette(sKantoTrainerCardStarPals[sData->trainerCard.stars], BG_PLTT_ID(0x0), 3 * PLTT_SIZE_4BPP); - LoadPalette(sKantoTrainerCardBadges_Pal, BG_PLTT_ID(0x3), PLTT_SIZE_4BPP); + LoadPalette(sKantoTrainerCardStarPals[sData->trainerCard.stars], BG_PLTT_ID(0), 3 * PLTT_SIZE_4BPP); + LoadPalette(sKantoTrainerCardBadges_Pal, BG_PLTT_ID(3), PLTT_SIZE_4BPP); if (sData->trainerCard.gender != MALE) - LoadPalette(sKantoTrainerCardFemaleBg_Pal, BG_PLTT_ID(0x1), PLTT_SIZE_4BPP); + LoadPalette(sKantoTrainerCardFemaleBg_Pal, BG_PLTT_ID(1), PLTT_SIZE_4BPP); } - LoadPalette(sTrainerCardGold_Pal, BG_PLTT_ID(0x4), PLTT_SIZE_4BPP); + LoadPalette(sTrainerCardGold_Pal, BG_PLTT_ID(4), PLTT_SIZE_4BPP); break; case 3: SetBgTilemapBuffer(0, sData->cardTilemapBuffer); @@ -1495,9 +1495,9 @@ static void DrawStarsAndBadgesOnCard(void) s16 i, x; u16 tileNum = 192; - u8 palNum = 0x3; + u8 palNum = 3; - FillBgTilemapBufferRect(3, 143, 15, yOffsets[sData->isHoenn], sData->trainerCard.stars, 1, 0x4); + FillBgTilemapBufferRect(3, 143, 15, yOffsets[sData->isHoenn], sData->trainerCard.stars, 1, 4); if (!sData->isLink) { x = 4; @@ -1521,38 +1521,38 @@ static void DrawCardBackStats(void) { if (sData->hasTrades) { - FillBgTilemapBufferRect(3, 141, 27, 9, 1, 1, 0x1); - FillBgTilemapBufferRect(3, 157, 27, 10, 1, 1, 0x1); + FillBgTilemapBufferRect(3, 141, 27, 9, 1, 1, 1); + FillBgTilemapBufferRect(3, 157, 27, 10, 1, 1, 1); } if (sData->trainerCard.linkPoints.berryCrush) { - FillBgTilemapBufferRect(3, 141, 21, 13, 1, 1, 0x1); - FillBgTilemapBufferRect(3, 157, 21, 14, 1, 1, 0x1); + FillBgTilemapBufferRect(3, 141, 21, 13, 1, 1, 1); + FillBgTilemapBufferRect(3, 157, 21, 14, 1, 1, 1); } if (sData->trainerCard.unionRoomNum) { - FillBgTilemapBufferRect(3, 141, 27, 11, 1, 1, 0x1); - FillBgTilemapBufferRect(3, 157, 27, 12, 1, 1, 0x1); + FillBgTilemapBufferRect(3, 141, 27, 11, 1, 1, 1); + FillBgTilemapBufferRect(3, 157, 27, 12, 1, 1, 1); } } else { if (sData->hasTrades) { - FillBgTilemapBufferRect(3, 141, 27, 9, 1, 1, 0x0); - FillBgTilemapBufferRect(3, 157, 27, 10, 1, 1, 0x0); + FillBgTilemapBufferRect(3, 141, 27, 9, 1, 1, 0); + FillBgTilemapBufferRect(3, 157, 27, 10, 1, 1, 0); } if (sData->trainerCard.contestsWithFriends) { - FillBgTilemapBufferRect(3, 141, 27, 13, 1, 1, 0x0); - FillBgTilemapBufferRect(3, 157, 27, 14, 1, 1, 0x0); + FillBgTilemapBufferRect(3, 141, 27, 13, 1, 1, 0); + FillBgTilemapBufferRect(3, 157, 27, 14, 1, 1, 0); } if (sData->hasBattleTowerWins) { - FillBgTilemapBufferRect(3, 141, 17, 15, 1, 1, 0x0); - FillBgTilemapBufferRect(3, 157, 17, 16, 1, 1, 0x0); - FillBgTilemapBufferRect(3, 140, 27, 15, 1, 1, 0x0); - FillBgTilemapBufferRect(3, 156, 27, 16, 1, 1, 0x0); + FillBgTilemapBufferRect(3, 141, 17, 15, 1, 1, 0); + FillBgTilemapBufferRect(3, 157, 17, 16, 1, 1, 0); + FillBgTilemapBufferRect(3, 140, 27, 15, 1, 1, 0); + FillBgTilemapBufferRect(3, 156, 27, 16, 1, 1, 0); } } CopyBgTilemapBufferToVram(3); diff --git a/src/trainer_hill.c b/src/trainer_hill.c index bb606f37b..db0e849f9 100644 --- a/src/trainer_hill.c +++ b/src/trainer_hill.c @@ -951,7 +951,7 @@ static void SetAllTrainerFlags(void) void TryLoadTrainerHillEReaderPalette(void) { if (OnTrainerHillEReaderChallengeFloor() == TRUE) - LoadPalette(sEReader_Pal, BG_PLTT_ID(0x7), PLTT_SIZE_4BPP); + LoadPalette(sEReader_Pal, BG_PLTT_ID(7), PLTT_SIZE_4BPP); } static void GetGameSaved(void) diff --git a/src/union_room.c b/src/union_room.c index 299171325..e0df278df 100644 --- a/src/union_room.c +++ b/src/union_room.c @@ -1910,7 +1910,7 @@ static void Task_SendMysteryGift(u8 taskId) winTemplate = sWindowTemplate_PlayerList; winTemplate.baseBlock = GetMysteryGiftBaseBlock(); - winTemplate.paletteNum = 0xC; + winTemplate.paletteNum = 12; data->listWindowId = AddWindow(&winTemplate); MG_DrawTextBorder(data->listWindowId); gMultiuseListMenuTemplate = sListMenuTemplate_PossibleGroupMembers; @@ -2114,11 +2114,11 @@ static void Task_CardOrNewsWithFriend(u8 taskId) listWinTemplate = sWindowTemplate_GroupList; listWinTemplate.baseBlock = GetMysteryGiftBaseBlock(); - listWinTemplate.paletteNum = 0xC; + listWinTemplate.paletteNum = 12; data->listWindowId = AddWindow(&listWinTemplate); playerNameWinTemplate = sWindowTemplate_PlayerNameAndId; - playerNameWinTemplate.paletteNum = 0xC; + playerNameWinTemplate.paletteNum = 12; data->playerNameAndIdWindowId = AddWindow(&playerNameWinTemplate); MG_DrawTextBorder(data->listWindowId); @@ -2439,7 +2439,7 @@ void RunUnionRoom(void) uroom->unreadPlayerId = 0; gSpecialVar_Result = 0; - ListMenuLoadStdPalAt(BG_PLTT_ID(0xD), 1); + ListMenuLoadStdPalAt(BG_PLTT_ID(13), 1); } static u16 ReadAsU16(const u8 *ptr) @@ -3775,7 +3775,7 @@ static s32 TradeBoardMenuHandler(u8 *state, u8 *mainWindowId, u8 *listMenuId, u8 static void UR_ClearBg0(void) { - FillBgTilemapBufferRect(0, 0, 0, 0, 32, 32, 0x0); + FillBgTilemapBufferRect(0, 0, 0, 0, 32, 32, 0); CopyBgTilemapBufferToVram(0); } diff --git a/src/union_room_battle.c b/src/union_room_battle.c index f4ad73b32..f8381b2f7 100644 --- a/src/union_room_battle.c +++ b/src/union_room_battle.c @@ -43,7 +43,7 @@ static const struct WindowTemplate sWindowTemplates[] = { .tilemapTop = 15, .width = 24, .height = 4, - .paletteNum = 0xE, + .paletteNum = 14, .baseBlock = 0x014 }, DUMMY_WIN_TEMPLATE @@ -130,8 +130,8 @@ void CB2_UnionRoomBattle(void) FillWindowPixelBuffer(0, PIXEL_FILL(0)); FillWindowPixelBuffer(0, PIXEL_FILL(1)); FillBgTilemapBufferRect(0, 0, 0, 0, 30, 20, 0xF); - LoadUserWindowBorderGfx(0, 1, BG_PLTT_ID(0xD)); - LoadUserWindowBorderGfx_(0, 1, BG_PLTT_ID(0xD)); + LoadUserWindowBorderGfx(0, 1, BG_PLTT_ID(13)); + LoadUserWindowBorderGfx_(0, 1, BG_PLTT_ID(13)); Menu_LoadStdPal(); SetVBlankCallback(VBlankCB_UnionRoomBattle); gMain.state++; diff --git a/src/union_room_chat.c b/src/union_room_chat.c index 98af18cde..72d36ae6b 100755 --- a/src/union_room_chat.c +++ b/src/union_room_chat.c @@ -566,7 +566,7 @@ static const struct WindowTemplate sWinTemplates[] = { .tilemapTop = 1, .width = 21, .height = 19, - .paletteNum = 0xF, + .paletteNum = 15, .baseBlock = 0x0001, }, { .bg = 1, @@ -574,7 +574,7 @@ static const struct WindowTemplate sWinTemplates[] = { .tilemapTop = 18, .width = 15, .height = 2, - .paletteNum = 0xC, + .paletteNum = 12, .baseBlock = 0x007a, }, { .bg = 1, @@ -582,7 +582,7 @@ static const struct WindowTemplate sWinTemplates[] = { .tilemapTop = 2, .width = 6, .height = 15, - .paletteNum = 0x7, + .paletteNum = 7, .baseBlock = 0x0020, }, { .bg = 0, @@ -590,7 +590,7 @@ static const struct WindowTemplate sWinTemplates[] = { .tilemapTop = 2, .width = 7, .height = 9, - .paletteNum = 0xE, + .paletteNum = 14, .baseBlock = 0x0013, }, DUMMY_WIN_TEMPLATE }; @@ -2732,7 +2732,7 @@ static void AddYesNoMenuAt(u8 left, u8 top, u8 initialCursorPos) template.tilemapTop = top; template.width = 6; template.height = 4; - template.paletteNum = 0xE; + template.paletteNum = 14; template.baseBlock = 0x52; sDisplay->yesNoMenuWindowId = AddWindow(&template); if (sDisplay->yesNoMenuWindowId != WINDOW_NONE) @@ -2741,7 +2741,7 @@ static void AddYesNoMenuAt(u8 left, u8 top, u8 initialCursorPos) PutWindowTilemap(sDisplay->yesNoMenuWindowId); AddTextPrinterParameterized(sDisplay->yesNoMenuWindowId, FONT_NORMAL, gText_Yes, 8, 1, TEXT_SKIP_DRAW, NULL); AddTextPrinterParameterized(sDisplay->yesNoMenuWindowId, FONT_NORMAL, gText_No, 8, 17, TEXT_SKIP_DRAW, NULL); - DrawTextBorderOuter(sDisplay->yesNoMenuWindowId, 1, 0xD); + DrawTextBorderOuter(sDisplay->yesNoMenuWindowId, 1, 13); InitMenuInUpperLeftCornerNormal(sDisplay->yesNoMenuWindowId, 2, initialCursorPos); } } @@ -2779,7 +2779,7 @@ static void AddStdMessageWindow(int msgId, u16 bg0vofs) template.tilemapTop = 16; template.width = 21; template.height = 4; - template.paletteNum = 0xE; + template.paletteNum = 14; template.baseBlock = 0x6A; if (sDisplayStdMessages[msgId].useWiderBox) { @@ -3050,8 +3050,8 @@ static void ClearBg0(void) static void LoadChatWindowBorderGfx(void) { - LoadPalette(gUnionRoomChat_Window_Pal2, BG_PLTT_ID(0x7), PLTT_SIZE_4BPP); - LoadPalette(gUnionRoomChat_Window_Pal1, BG_PLTT_ID(0xC), PLTT_SIZE_4BPP); + LoadPalette(gUnionRoomChat_Window_Pal2, BG_PLTT_ID(7), PLTT_SIZE_4BPP); + LoadPalette(gUnionRoomChat_Window_Pal1, BG_PLTT_ID(12), PLTT_SIZE_4BPP); DecompressAndCopyTileDataToVram(1, gUnionRoomChat_Border_Gfx, 0, 0, 0); CopyToBgTilemapBuffer(1, gUnionRoomChat_Border_Tilemap, 0, 0); CopyBgTilemapBufferToVram(1); @@ -3061,7 +3061,7 @@ static void LoadChatWindowGfx(void) { u8 *ptr; - LoadPalette(gUnionRoomChat_Background_Pal, BG_PLTT_ID(0x0), PLTT_SIZE_4BPP); + LoadPalette(gUnionRoomChat_Background_Pal, BG_PLTT_ID(0), PLTT_SIZE_4BPP); ptr = DecompressAndCopyTileDataToVram(2, gUnionRoomChat_Background_Gfx, 0, 0, 0); if (ptr) { @@ -3075,13 +3075,13 @@ static void LoadChatWindowGfx(void) static void LoadChatUnkPalette(void) { - LoadPalette(sUnk_Palette1, BG_PLTT_ID(0x8), sizeof(sUnk_Palette1)); + LoadPalette(sUnk_Palette1, BG_PLTT_ID(8), sizeof(sUnk_Palette1)); RequestDma3Fill(0, (void *)BG_CHAR_ADDR(1) + 0x20, 0x20, 1); } static void LoadChatMessagesWindow(void) { - LoadPalette(sUnk_Palette2, BG_PLTT_ID(0xF), sizeof(sUnk_Palette2)); + LoadPalette(sUnk_Palette2, BG_PLTT_ID(15), sizeof(sUnk_Palette2)); PutWindowTilemap(0); FillWindowPixelBuffer(0, PIXEL_FILL(1)); CopyWindowToVram(0, COPYWIN_FULL); @@ -3112,9 +3112,9 @@ static void LoadTextEntryWindow(void) static void LoadKeyboardSwapWindow(void) { FillWindowPixelBuffer(3, PIXEL_FILL(1)); - LoadUserWindowBorderGfx(3, 1, BG_PLTT_ID(0xD)); - LoadUserWindowBorderGfx_(3, 0xA, BG_PLTT_ID(0x2)); - LoadPalette(gStandardMenuPalette, BG_PLTT_ID(0xE), PLTT_SIZE_4BPP); + LoadUserWindowBorderGfx(3, 1, BG_PLTT_ID(13)); + LoadUserWindowBorderGfx_(3, 0xA, BG_PLTT_ID(2)); + LoadPalette(gStandardMenuPalette, BG_PLTT_ID(14), PLTT_SIZE_4BPP); } static void InitScanlineEffect(void) diff --git a/src/use_pokeblock.c b/src/use_pokeblock.c index 85d1a477f..be6fc8934 100644 --- a/src/use_pokeblock.c +++ b/src/use_pokeblock.c @@ -251,7 +251,7 @@ static const struct WindowTemplate sWindowTemplates[WIN_COUNT + 1] = .tilemapTop = 1, .width = 13, .height = 4, - .paletteNum = 0xF, + .paletteNum = 15, .baseBlock = 1 }, [WIN_NATURE] = { @@ -260,7 +260,7 @@ static const struct WindowTemplate sWindowTemplates[WIN_COUNT + 1] = .tilemapTop = 14, .width = 11, .height = 2, - .paletteNum = 0xF, + .paletteNum = 15, .baseBlock = 0x35 }, [WIN_TEXT] = { @@ -269,7 +269,7 @@ static const struct WindowTemplate sWindowTemplates[WIN_COUNT + 1] = .tilemapTop = 17, .width = 28, .height = 2, - .paletteNum = 0xF, + .paletteNum = 15, .baseBlock = 0x4B }, DUMMY_WIN_TEMPLATE @@ -282,7 +282,7 @@ static const struct WindowTemplate sUsePokeblockYesNoWinTemplate = .tilemapTop = 11, .width = 5, .height = 4, - .paletteNum = 0xF, + .paletteNum = 15, .baseBlock = 0x83 }; @@ -505,7 +505,7 @@ static void LoadUsePokeblockMenu(void) InitBgsFromTemplates(0, sBgTemplates, ARRAY_COUNT(sBgTemplates)); InitWindows(sWindowTemplates); DeactivateAllTextPrinters(); - LoadUserWindowBorderGfx(0, 0x97, BG_PLTT_ID(0xE)); + LoadUserWindowBorderGfx(0, 0x97, BG_PLTT_ID(14)); sInfo->mainState++; break; case 4: @@ -1340,7 +1340,7 @@ static bool8 LoadUsePokeblockMenuGfx(void) LoadBgTilemap(3, sMonFrame_TilemapPtr, 1280, 0); break; case 5: - LoadPalette(sMonFrame_Pal, BG_PLTT_ID(0xD), PLTT_SIZE_4BPP); + LoadPalette(sMonFrame_Pal, BG_PLTT_ID(13), PLTT_SIZE_4BPP); sMenu->curMonXOffset = -80; break; case 6: @@ -1348,7 +1348,7 @@ static bool8 LoadUsePokeblockMenuGfx(void) break; case 7: LZ77UnCompVram(gUsePokeblockGraph_Tilemap, sGraph_Tilemap); - LoadPalette(gUsePokeblockGraph_Pal, BG_PLTT_ID(0x2), PLTT_SIZE_4BPP); + LoadPalette(gUsePokeblockGraph_Pal, BG_PLTT_ID(2), PLTT_SIZE_4BPP); break; case 8: LoadBgTiles(1, sGraph_Gfx, 6656, 160 << 2); @@ -1363,8 +1363,8 @@ static bool8 LoadUsePokeblockMenuGfx(void) break; case 11: LoadBgTilemap(2, sMenu->tilemapBuffer, 1280, 0); - LoadPalette(gConditionGraphData_Pal, BG_PLTT_ID(0x3), PLTT_SIZE_4BPP); - LoadPalette(gConditionText_Pal, BG_PLTT_ID(0xF), PLTT_SIZE_4BPP); + LoadPalette(gConditionGraphData_Pal, BG_PLTT_ID(3), PLTT_SIZE_4BPP); + LoadPalette(gConditionText_Pal, BG_PLTT_ID(15), PLTT_SIZE_4BPP); ConditionGraph_InitWindow(2); break; default: diff --git a/src/wallclock.c b/src/wallclock.c index 52566eddc..571748d11 100644 --- a/src/wallclock.c +++ b/src/wallclock.c @@ -79,7 +79,7 @@ static const struct WindowTemplate sWindowTemplates[] = .tilemapTop = 17, .width = 24, .height = 2, - .paletteNum = 0xE, + .paletteNum = 14, .baseBlock = 512 }, { @@ -88,7 +88,7 @@ static const struct WindowTemplate sWindowTemplates[] = .tilemapTop = 16, .width = 6, .height = 2, - .paletteNum = 0xC, + .paletteNum = 12, .baseBlock = 560 }, DUMMY_WIN_TEMPLATE @@ -101,7 +101,7 @@ static const struct WindowTemplate sWindowTemplate_ConfirmYesNo = .tilemapTop = 9, .width = 5, .height = 4, - .paletteNum = 0xE, + .paletteNum = 14, .baseBlock = 572 }; @@ -644,17 +644,17 @@ static void LoadWallClockGraphics(void) LZ77UnCompVram(gWallClock_Gfx, (void *)VRAM); if (gSpecialVar_0x8004 == MALE) - LoadPalette(gWallClockMale_Pal, BG_PLTT_ID(0x0), PLTT_SIZE_4BPP); + LoadPalette(gWallClockMale_Pal, BG_PLTT_ID(0), PLTT_SIZE_4BPP); else - LoadPalette(gWallClockFemale_Pal, BG_PLTT_ID(0x0), PLTT_SIZE_4BPP); + LoadPalette(gWallClockFemale_Pal, BG_PLTT_ID(0), PLTT_SIZE_4BPP); - LoadPalette(GetOverworldTextboxPalettePtr(), BG_PLTT_ID(0xE), PLTT_SIZE_4BPP); - LoadPalette(sTextPrompt_Pal, BG_PLTT_ID(0xC), PLTT_SIZEOF(4)); + LoadPalette(GetOverworldTextboxPalettePtr(), BG_PLTT_ID(14), PLTT_SIZE_4BPP); + LoadPalette(sTextPrompt_Pal, BG_PLTT_ID(12), PLTT_SIZEOF(4)); ResetBgsAndClearDma3BusyFlags(0); InitBgsFromTemplates(0, sBgTemplates, ARRAY_COUNT(sBgTemplates)); InitWindows(sWindowTemplates); DeactivateAllTextPrinters(); - LoadUserWindowBorderGfx(0, 0x250, BG_PLTT_ID(0xD)); + LoadUserWindowBorderGfx(0, 0x250, BG_PLTT_ID(13)); ClearScheduledBgCopiesToVram(); ScanlineEffect_Stop(); ResetTasks(); diff --git a/src/wireless_communication_status_screen.c b/src/wireless_communication_status_screen.c index bab3ec634..b5da0dac0 100644 --- a/src/wireless_communication_status_screen.c +++ b/src/wireless_communication_status_screen.c @@ -76,7 +76,7 @@ static const struct WindowTemplate sWindowTemplates[] = { .tilemapTop = 0, .width = 24, .height = 3, - .paletteNum = 0xF, + .paletteNum = 15, .baseBlock = 0x0001 }, { .bg = 0, @@ -84,7 +84,7 @@ static const struct WindowTemplate sWindowTemplates[] = { .tilemapTop = 4, .width = 21, .height = 15, - .paletteNum = 0xF, + .paletteNum = 15, .baseBlock = 0x0049 }, { .bg = 0, @@ -92,7 +92,7 @@ static const struct WindowTemplate sWindowTemplates[] = { .tilemapTop = 4, .width = 3, .height = 15, - .paletteNum = 0xF, + .paletteNum = 15, .baseBlock = 0x0184 }, DUMMY_WIN_TEMPLATE }; @@ -193,10 +193,10 @@ static void CB2_InitWirelessCommunicationScreen(void) ChangeBgY(0, 0, BG_COORD_SET); ChangeBgX(1, 0, BG_COORD_SET); ChangeBgY(1, 0, BG_COORD_SET); - LoadPalette(sBgTiles_Pal, BG_PLTT_ID(0x0), PLTT_SIZE_4BPP); + LoadPalette(sBgTiles_Pal, BG_PLTT_ID(0), PLTT_SIZE_4BPP); Menu_LoadStdPalAt(0xF0); DynamicPlaceholderTextUtil_Reset(); - FillBgTilemapBufferRect(0, 0, 0, 0, 32, 32, 0xF); + FillBgTilemapBufferRect(0, 0, 0, 0, 32, 32, 15); CopyBgTilemapBufferToVram(1); SetMainCallback2(CB2_RunWirelessCommunicationScreen); RunTasks(); @@ -227,7 +227,7 @@ static void WCSS_CyclePalette(s16 * counter, s16 * palIdx) *counter = 0; } - LoadPalette(sBgTiles_Pal + 16 * (*palIdx + 2), BG_PLTT_ID(0x0), PLTT_SIZEOF(8)); + LoadPalette(sBgTiles_Pal + 16 * (*palIdx + 2), BG_PLTT_ID(0), PLTT_SIZEOF(8)); } static void PrintHeaderTexts(void) From ba6d4866e41d32f1778dcf26d2bc3a0bc00461cf Mon Sep 17 00:00:00 2001 From: Martin Griffin Date: Sun, 21 Aug 2022 09:45:55 +0100 Subject: [PATCH 06/69] Options menu: standardize task data --- src/option_menu.c | 143 +++++++++++++++++++++++----------------------- 1 file changed, 70 insertions(+), 73 deletions(-) diff --git a/src/option_menu.c b/src/option_menu.c index d2f1bc4ce..64e805eba 100644 --- a/src/option_menu.c +++ b/src/option_menu.c @@ -17,16 +17,13 @@ #include "constants/rgb.h" // Task data -enum -{ - TD_MENUSELECTION, - TD_TEXTSPEED, - TD_BATTLESCENE, - TD_BATTLESTYLE, - TD_SOUND, - TD_BUTTONMODE, - TD_FRAMETYPE, -}; +#define tMenuSelection data[0] +#define tTextSpeed data[1] +#define tBattleSceneOff data[2] +#define tBattleStyle data[3] +#define tSound data[4] +#define tButtonMode data[5] +#define tWindowFrameType data[6] // Menu items enum @@ -44,7 +41,7 @@ enum // Window Ids enum { - WIN_TEXT_OPTION, + WIN_HEADER, WIN_OPTIONS }; @@ -73,7 +70,7 @@ static u8 FrameType_ProcessInput(u8 selection); static void FrameType_DrawChoices(u8 selection); static u8 ButtonMode_ProcessInput(u8 selection); static void ButtonMode_DrawChoices(u8 selection); -static void DrawTextOption(void); +static void DrawHeaderText(void); static void DrawOptionMenuTexts(void); static void DrawBgWindowFrames(void); @@ -96,7 +93,7 @@ static const u8 *const sOptionMenuItemsNames[MENUITEM_COUNT] = static const struct WindowTemplate sOptionMenuWinTemplates[] = { - { + [WIN_HEADER] = { .bg = 1, .tilemapLeft = 2, .tilemapTop = 1, @@ -105,7 +102,7 @@ static const struct WindowTemplate sOptionMenuWinTemplates[] = .paletteNum = 1, .baseBlock = 2 }, - { + [WIN_OPTIONS] = { .bg = 0, .tilemapLeft = 2, .tilemapTop = 5, @@ -217,7 +214,7 @@ void CB2_InitOptionMenu(void) break; case 6: PutWindowTilemap(0); - DrawTextOption(); + DrawHeaderText(); gMain.state++; break; case 7: @@ -235,21 +232,21 @@ void CB2_InitOptionMenu(void) { u8 taskId = CreateTask(Task_OptionMenuFadeIn, 0); - gTasks[taskId].data[TD_MENUSELECTION] = 0; - gTasks[taskId].data[TD_TEXTSPEED] = gSaveBlock2Ptr->optionsTextSpeed; - gTasks[taskId].data[TD_BATTLESCENE] = gSaveBlock2Ptr->optionsBattleSceneOff; - gTasks[taskId].data[TD_BATTLESTYLE] = gSaveBlock2Ptr->optionsBattleStyle; - gTasks[taskId].data[TD_SOUND] = gSaveBlock2Ptr->optionsSound; - gTasks[taskId].data[TD_BUTTONMODE] = gSaveBlock2Ptr->optionsButtonMode; - gTasks[taskId].data[TD_FRAMETYPE] = gSaveBlock2Ptr->optionsWindowFrameType; + gTasks[taskId].tMenuSelection = 0; + gTasks[taskId].tTextSpeed = gSaveBlock2Ptr->optionsTextSpeed; + gTasks[taskId].tBattleSceneOff = gSaveBlock2Ptr->optionsBattleSceneOff; + gTasks[taskId].tBattleStyle = gSaveBlock2Ptr->optionsBattleStyle; + gTasks[taskId].tSound = gSaveBlock2Ptr->optionsSound; + gTasks[taskId].tButtonMode = gSaveBlock2Ptr->optionsButtonMode; + gTasks[taskId].tWindowFrameType = gSaveBlock2Ptr->optionsWindowFrameType; - TextSpeed_DrawChoices(gTasks[taskId].data[TD_TEXTSPEED]); - BattleScene_DrawChoices(gTasks[taskId].data[TD_BATTLESCENE]); - BattleStyle_DrawChoices(gTasks[taskId].data[TD_BATTLESTYLE]); - Sound_DrawChoices(gTasks[taskId].data[TD_SOUND]); - ButtonMode_DrawChoices(gTasks[taskId].data[TD_BUTTONMODE]); - FrameType_DrawChoices(gTasks[taskId].data[TD_FRAMETYPE]); - HighlightOptionMenuItem(gTasks[taskId].data[TD_MENUSELECTION]); + TextSpeed_DrawChoices(gTasks[taskId].tTextSpeed); + BattleScene_DrawChoices(gTasks[taskId].tBattleSceneOff); + BattleStyle_DrawChoices(gTasks[taskId].tBattleStyle); + Sound_DrawChoices(gTasks[taskId].tSound); + ButtonMode_DrawChoices(gTasks[taskId].tButtonMode); + FrameType_DrawChoices(gTasks[taskId].tWindowFrameType); + HighlightOptionMenuItem(gTasks[taskId].tMenuSelection); CopyWindowToVram(WIN_OPTIONS, COPYWIN_FULL); gMain.state++; @@ -273,7 +270,7 @@ static void Task_OptionMenuProcessInput(u8 taskId) { if (JOY_NEW(A_BUTTON)) { - if (gTasks[taskId].data[TD_MENUSELECTION] == MENUITEM_CANCEL) + if (gTasks[taskId].tMenuSelection == MENUITEM_CANCEL) gTasks[taskId].func = Task_OptionMenuSave; } else if (JOY_NEW(B_BUTTON)) @@ -282,67 +279,67 @@ static void Task_OptionMenuProcessInput(u8 taskId) } else if (JOY_NEW(DPAD_UP)) { - if (gTasks[taskId].data[TD_MENUSELECTION] > 0) - gTasks[taskId].data[TD_MENUSELECTION]--; + if (gTasks[taskId].tMenuSelection > 0) + gTasks[taskId].tMenuSelection--; else - gTasks[taskId].data[TD_MENUSELECTION] = MENUITEM_CANCEL; - HighlightOptionMenuItem(gTasks[taskId].data[TD_MENUSELECTION]); + gTasks[taskId].tMenuSelection = MENUITEM_CANCEL; + HighlightOptionMenuItem(gTasks[taskId].tMenuSelection); } else if (JOY_NEW(DPAD_DOWN)) { - if (gTasks[taskId].data[TD_MENUSELECTION] < MENUITEM_CANCEL) - gTasks[taskId].data[TD_MENUSELECTION]++; + if (gTasks[taskId].tMenuSelection < MENUITEM_CANCEL) + gTasks[taskId].tMenuSelection++; else - gTasks[taskId].data[TD_MENUSELECTION] = 0; - HighlightOptionMenuItem(gTasks[taskId].data[TD_MENUSELECTION]); + gTasks[taskId].tMenuSelection = 0; + HighlightOptionMenuItem(gTasks[taskId].tMenuSelection); } else { u8 previousOption; - switch (gTasks[taskId].data[TD_MENUSELECTION]) + switch (gTasks[taskId].tMenuSelection) { case MENUITEM_TEXTSPEED: - previousOption = gTasks[taskId].data[TD_TEXTSPEED]; - gTasks[taskId].data[TD_TEXTSPEED] = TextSpeed_ProcessInput(gTasks[taskId].data[TD_TEXTSPEED]); + previousOption = gTasks[taskId].tTextSpeed; + gTasks[taskId].tTextSpeed = TextSpeed_ProcessInput(gTasks[taskId].tTextSpeed); - if (previousOption != gTasks[taskId].data[TD_TEXTSPEED]) - TextSpeed_DrawChoices(gTasks[taskId].data[TD_TEXTSPEED]); + if (previousOption != gTasks[taskId].tTextSpeed) + TextSpeed_DrawChoices(gTasks[taskId].tTextSpeed); break; case MENUITEM_BATTLESCENE: - previousOption = gTasks[taskId].data[TD_BATTLESCENE]; - gTasks[taskId].data[TD_BATTLESCENE] = BattleScene_ProcessInput(gTasks[taskId].data[TD_BATTLESCENE]); + previousOption = gTasks[taskId].tBattleSceneOff; + gTasks[taskId].tBattleSceneOff = BattleScene_ProcessInput(gTasks[taskId].tBattleSceneOff); - if (previousOption != gTasks[taskId].data[TD_BATTLESCENE]) - BattleScene_DrawChoices(gTasks[taskId].data[TD_BATTLESCENE]); + if (previousOption != gTasks[taskId].tBattleSceneOff) + BattleScene_DrawChoices(gTasks[taskId].tBattleSceneOff); break; case MENUITEM_BATTLESTYLE: - previousOption = gTasks[taskId].data[TD_BATTLESTYLE]; - gTasks[taskId].data[TD_BATTLESTYLE] = BattleStyle_ProcessInput(gTasks[taskId].data[TD_BATTLESTYLE]); + previousOption = gTasks[taskId].tBattleStyle; + gTasks[taskId].tBattleStyle = BattleStyle_ProcessInput(gTasks[taskId].tBattleStyle); - if (previousOption != gTasks[taskId].data[TD_BATTLESTYLE]) - BattleStyle_DrawChoices(gTasks[taskId].data[TD_BATTLESTYLE]); + if (previousOption != gTasks[taskId].tBattleStyle) + BattleStyle_DrawChoices(gTasks[taskId].tBattleStyle); break; case MENUITEM_SOUND: - previousOption = gTasks[taskId].data[TD_SOUND]; - gTasks[taskId].data[TD_SOUND] = Sound_ProcessInput(gTasks[taskId].data[TD_SOUND]); + previousOption = gTasks[taskId].tSound; + gTasks[taskId].tSound = Sound_ProcessInput(gTasks[taskId].tSound); - if (previousOption != gTasks[taskId].data[TD_SOUND]) - Sound_DrawChoices(gTasks[taskId].data[TD_SOUND]); + if (previousOption != gTasks[taskId].tSound) + Sound_DrawChoices(gTasks[taskId].tSound); break; case MENUITEM_BUTTONMODE: - previousOption = gTasks[taskId].data[TD_BUTTONMODE]; - gTasks[taskId].data[TD_BUTTONMODE] = ButtonMode_ProcessInput(gTasks[taskId].data[TD_BUTTONMODE]); + previousOption = gTasks[taskId].tButtonMode; + gTasks[taskId].tButtonMode = ButtonMode_ProcessInput(gTasks[taskId].tButtonMode); - if (previousOption != gTasks[taskId].data[TD_BUTTONMODE]) - ButtonMode_DrawChoices(gTasks[taskId].data[TD_BUTTONMODE]); + if (previousOption != gTasks[taskId].tButtonMode) + ButtonMode_DrawChoices(gTasks[taskId].tButtonMode); break; case MENUITEM_FRAMETYPE: - previousOption = gTasks[taskId].data[TD_FRAMETYPE]; - gTasks[taskId].data[TD_FRAMETYPE] = FrameType_ProcessInput(gTasks[taskId].data[TD_FRAMETYPE]); + previousOption = gTasks[taskId].tWindowFrameType; + gTasks[taskId].tWindowFrameType = FrameType_ProcessInput(gTasks[taskId].tWindowFrameType); - if (previousOption != gTasks[taskId].data[TD_FRAMETYPE]) - FrameType_DrawChoices(gTasks[taskId].data[TD_FRAMETYPE]); + if (previousOption != gTasks[taskId].tWindowFrameType) + FrameType_DrawChoices(gTasks[taskId].tWindowFrameType); break; default: return; @@ -358,12 +355,12 @@ static void Task_OptionMenuProcessInput(u8 taskId) static void Task_OptionMenuSave(u8 taskId) { - gSaveBlock2Ptr->optionsTextSpeed = gTasks[taskId].data[TD_TEXTSPEED]; - gSaveBlock2Ptr->optionsBattleSceneOff = gTasks[taskId].data[TD_BATTLESCENE]; - gSaveBlock2Ptr->optionsBattleStyle = gTasks[taskId].data[TD_BATTLESTYLE]; - gSaveBlock2Ptr->optionsSound = gTasks[taskId].data[TD_SOUND]; - gSaveBlock2Ptr->optionsButtonMode = gTasks[taskId].data[TD_BUTTONMODE]; - gSaveBlock2Ptr->optionsWindowFrameType = gTasks[taskId].data[TD_FRAMETYPE]; + gSaveBlock2Ptr->optionsTextSpeed = gTasks[taskId].tTextSpeed; + gSaveBlock2Ptr->optionsBattleSceneOff = gTasks[taskId].tBattleSceneOff; + gSaveBlock2Ptr->optionsBattleStyle = gTasks[taskId].tBattleStyle; + gSaveBlock2Ptr->optionsSound = gTasks[taskId].tSound; + gSaveBlock2Ptr->optionsButtonMode = gTasks[taskId].tButtonMode; + gSaveBlock2Ptr->optionsWindowFrameType = gTasks[taskId].tWindowFrameType; BeginNormalPaletteFade(PALETTES_ALL, 0, 0, 0x10, RGB_BLACK); gTasks[taskId].func = Task_OptionMenuFadeOut; @@ -623,11 +620,11 @@ static void ButtonMode_DrawChoices(u8 selection) DrawOptionMenuChoice(gText_ButtonTypeLEqualsA, GetStringRightAlignXOffset(FONT_NORMAL, gText_ButtonTypeLEqualsA, 198), YPOS_BUTTONMODE, styles[2]); } -static void DrawTextOption(void) +static void DrawHeaderText(void) { - FillWindowPixelBuffer(WIN_TEXT_OPTION, PIXEL_FILL(1)); - AddTextPrinterParameterized(WIN_TEXT_OPTION, FONT_NORMAL, gText_Option, 8, 1, TEXT_SKIP_DRAW, NULL); - CopyWindowToVram(WIN_TEXT_OPTION, COPYWIN_FULL); + FillWindowPixelBuffer(WIN_HEADER, PIXEL_FILL(1)); + AddTextPrinterParameterized(WIN_HEADER, FONT_NORMAL, gText_Option, 8, 1, TEXT_SKIP_DRAW, NULL); + CopyWindowToVram(WIN_HEADER, COPYWIN_FULL); } static void DrawOptionMenuTexts(void) From 2aa821176bd40abe843874e31b7386e7053704e6 Mon Sep 17 00:00:00 2001 From: Martin Griffin Date: Sun, 21 Aug 2022 09:49:40 +0100 Subject: [PATCH 07/69] Options menu: sort #includes --- src/option_menu.c | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/src/option_menu.c b/src/option_menu.c index 64e805eba..c9c7bce04 100644 --- a/src/option_menu.c +++ b/src/option_menu.c @@ -1,18 +1,18 @@ #include "global.h" #include "option_menu.h" -#include "main.h" -#include "menu.h" -#include "scanline_effect.h" -#include "palette.h" -#include "sprite.h" -#include "task.h" #include "bg.h" #include "gpu_regs.h" -#include "window.h" +#include "international_string_util.h" +#include "main.h" +#include "menu.h" +#include "palette.h" +#include "scanline_effect.h" +#include "sprite.h" +#include "strings.h" +#include "task.h" #include "text.h" #include "text_window.h" -#include "international_string_util.h" -#include "strings.h" +#include "window.h" #include "gba/m4a_internal.h" #include "constants/rgb.h" From f4a2040843ad72ec3ab51b61ce2da90f3ccd43ff Mon Sep 17 00:00:00 2001 From: Martin Griffin Date: Sun, 21 Aug 2022 15:10:18 +0100 Subject: [PATCH 08/69] Options menu: cleanup --- src/option_menu.c | 69 ++++++++++++++++++++++------------------------- 1 file changed, 32 insertions(+), 37 deletions(-) diff --git a/src/option_menu.c b/src/option_menu.c index c9c7bce04..67169b1f9 100644 --- a/src/option_menu.c +++ b/src/option_menu.c @@ -16,7 +16,6 @@ #include "gba/m4a_internal.h" #include "constants/rgb.h" -// Task data #define tMenuSelection data[0] #define tTextSpeed data[1] #define tBattleSceneOff data[2] @@ -25,7 +24,6 @@ #define tButtonMode data[5] #define tWindowFrameType data[6] -// Menu items enum { MENUITEM_TEXTSPEED, @@ -38,7 +36,6 @@ enum MENUITEM_COUNT, }; -// Window Ids enum { WIN_HEADER, @@ -52,23 +49,22 @@ enum #define YPOS_BUTTONMODE (MENUITEM_BUTTONMODE * 16) #define YPOS_FRAMETYPE (MENUITEM_FRAMETYPE * 16) -// this file's functions static void Task_OptionMenuFadeIn(u8 taskId); static void Task_OptionMenuProcessInput(u8 taskId); static void Task_OptionMenuSave(u8 taskId); static void Task_OptionMenuFadeOut(u8 taskId); static void HighlightOptionMenuItem(u8 selection); -static u8 TextSpeed_ProcessInput(u8 selection); +static u8 TextSpeed_ProcessInput(u8 selection); static void TextSpeed_DrawChoices(u8 selection); -static u8 BattleScene_ProcessInput(u8 selection); +static u8 BattleScene_ProcessInput(u8 selection); static void BattleScene_DrawChoices(u8 selection); -static u8 BattleStyle_ProcessInput(u8 selection); +static u8 BattleStyle_ProcessInput(u8 selection); static void BattleStyle_DrawChoices(u8 selection); -static u8 Sound_ProcessInput(u8 selection); +static u8 Sound_ProcessInput(u8 selection); static void Sound_DrawChoices(u8 selection); -static u8 FrameType_ProcessInput(u8 selection); +static u8 FrameType_ProcessInput(u8 selection); static void FrameType_DrawChoices(u8 selection); -static u8 ButtonMode_ProcessInput(u8 selection); +static u8 ButtonMode_ProcessInput(u8 selection); static void ButtonMode_DrawChoices(u8 selection); static void DrawHeaderText(void); static void DrawOptionMenuTexts(void); @@ -116,29 +112,28 @@ static const struct WindowTemplate sOptionMenuWinTemplates[] = static const struct BgTemplate sOptionMenuBgTemplates[] = { - { - .bg = 1, - .charBaseIndex = 1, - .mapBaseIndex = 30, - .screenSize = 0, - .paletteMode = 0, - .priority = 0, - .baseTile = 0 - }, - { - .bg = 0, - .charBaseIndex = 1, - .mapBaseIndex = 31, - .screenSize = 0, - .paletteMode = 0, - .priority = 1, - .baseTile = 0 - } + { + .bg = 1, + .charBaseIndex = 1, + .mapBaseIndex = 30, + .screenSize = 0, + .paletteMode = 0, + .priority = 0, + .baseTile = 0 + }, + { + .bg = 0, + .charBaseIndex = 1, + .mapBaseIndex = 31, + .screenSize = 0, + .paletteMode = 0, + .priority = 1, + .baseTile = 0 + } }; static const u16 sOptionMenuBg_Pal[] = {RGB(17, 18, 31)}; -// code static void MainCB2(void) { RunTasks(); @@ -213,7 +208,7 @@ void CB2_InitOptionMenu(void) gMain.state++; break; case 6: - PutWindowTilemap(0); + PutWindowTilemap(WIN_HEADER); DrawHeaderText(); gMain.state++; break; @@ -221,7 +216,7 @@ void CB2_InitOptionMenu(void) gMain.state++; break; case 8: - PutWindowTilemap(1); + PutWindowTilemap(WIN_OPTIONS); DrawOptionMenuTexts(); gMain.state++; case 9: @@ -253,7 +248,7 @@ void CB2_InitOptionMenu(void) break; } case 11: - BeginNormalPaletteFade(PALETTES_ALL, 0, 0x10, 0, RGB_BLACK); + BeginNormalPaletteFade(PALETTES_ALL, 0, 16, 0, RGB_BLACK); SetVBlankCallback(VBlankCB); SetMainCallback2(MainCB2); return; @@ -362,7 +357,7 @@ static void Task_OptionMenuSave(u8 taskId) gSaveBlock2Ptr->optionsButtonMode = gTasks[taskId].tButtonMode; gSaveBlock2Ptr->optionsWindowFrameType = gTasks[taskId].tWindowFrameType; - BeginNormalPaletteFade(PALETTES_ALL, 0, 0, 0x10, RGB_BLACK); + BeginNormalPaletteFade(PALETTES_ALL, 0, 0, 16, RGB_BLACK); gTasks[taskId].func = Task_OptionMenuFadeOut; } @@ -387,13 +382,13 @@ static void DrawOptionMenuChoice(const u8 *text, u8 x, u8 y, u8 style) u8 dst[16]; u16 i; - for (i = 0; *text != EOS && i <= 14; i++) + for (i = 0; *text != EOS && i < ARRAY_COUNT(dst) - 1; i++) dst[i] = *(text++); if (style != 0) { - dst[2] = 4; - dst[5] = 5; + dst[2] = TEXT_COLOR_RED; + dst[5] = TEXT_COLOR_LIGHT_RED; } dst[i] = EOS; @@ -564,7 +559,7 @@ static void FrameType_DrawChoices(u8 selection) { text[i] = n % 10 + CHAR_0; i++; - text[i] = 0x77; + text[i] = CHAR_SPACER; i++; } From 33f3a7c11a1b4bfc6eb973c3345c1504b4675d7a Mon Sep 17 00:00:00 2001 From: tustin2121 Date: Mon, 7 Nov 2022 06:09:21 -0500 Subject: [PATCH 09/69] Adding FindObjectEventPaletteIndexByTag bugfix The code in event_object_movement.c indicates that OBJ_EVENT_PAL_TAG_NONE was meant to be a sentinel for the bottom of each of the tables involving palettes in there. sObjectEventSpritePalettes is the exception, but the functions that access it look for OBJ_EVENT_PAL_TAG_NONE even though it's not in the table. If the palette tag isn't in the table, the functions which scan it fall off the bottom of the table into an infinite loop of scanning 256 "entries" of the table (because it uses a u8 index), and the game locks up. In vanilla, the search simply never falls off the bottom of the table. It seems the developers intended for that last entry to be {NULL, OBJ_EVENT_PAL_TAG_NONE}. --- src/event_object_movement.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/event_object_movement.c b/src/event_object_movement.c index 3429b2049..e277e2a48 100644 --- a/src/event_object_movement.c +++ b/src/event_object_movement.c @@ -497,7 +497,12 @@ static const struct SpritePalette sObjectEventSpritePalettes[] = { {gObjectEventPal_Lugia, OBJ_EVENT_PAL_TAG_LUGIA}, {gObjectEventPal_RubySapphireBrendan, OBJ_EVENT_PAL_TAG_RS_BRENDAN}, {gObjectEventPal_RubySapphireMay, OBJ_EVENT_PAL_TAG_RS_MAY}, - {}, +#ifdef BUGFIX + {NULL, OBJ_EVENT_PAL_TAG_NONE}, +#else + {}, // BUG: FindObjectEventPaletteIndexByTag looks for OBJ_EVENT_PAL_TAG_NONE and not 0x0. + // If it's looking for a tag that isn't in this table, the game locks in an infinite loop. +#endif }; static const u16 sReflectionPaletteTags_Brendan[] = { From 483c3d5c138c6a23b25beec071df9419e6a5c8bc Mon Sep 17 00:00:00 2001 From: GriffinR Date: Tue, 22 Nov 2022 02:17:03 -0500 Subject: [PATCH 10/69] Document wonder news --- data/specials.inc | 2 +- include/constants/mystery_gift.h | 8 ++ include/constants/vars.h | 2 +- include/global.h | 6 +- include/link.h | 4 +- include/wonder_news.h | 5 +- src/ereader_screen.c | 5 +- src/mystery_gift.c | 4 +- src/mystery_gift_menu.c | 8 +- src/mystery_gift_scripts.c | 2 +- src/wonder_news.c | 156 +++++++++++++++---------------- 11 files changed, 103 insertions(+), 99 deletions(-) diff --git a/data/specials.inc b/data/specials.inc index a863b6e13..f14ff166f 100644 --- a/data/specials.inc +++ b/data/specials.inc @@ -430,7 +430,7 @@ gSpecials:: def_special ShowWirelessCommunicationScreen def_special InitUnionRoom def_special BufferUnionRoomPlayerName - def_special RetrieveWonderNewsVal + def_special WonderNews_GetRewardInfo def_special ChooseMonForWirelessMinigame def_special Script_ResetUnionRoomTrade def_special IsBadEggInParty diff --git a/include/constants/mystery_gift.h b/include/constants/mystery_gift.h index 8ff71c3aa..13eb7f103 100644 --- a/include/constants/mystery_gift.h +++ b/include/constants/mystery_gift.h @@ -44,4 +44,12 @@ #define WONDER_CARD_FLAG_OFFSET 1000 +#define NEWS_REWARD_NONE 0 +#define NEWS_REWARD_RECV_SMALL 1 +#define NEWS_REWARD_RECV_BIG 2 +#define NEWS_REWARD_WAITING 3 +#define NEWS_REWARD_SENT_SMALL 4 +#define NEWS_REWARD_SENT_BIG 5 +#define NEWS_REWARD_AT_MAX 6 + #endif //GUARD_CONSTANTS_MYSTERY_GIFT_H diff --git a/include/constants/vars.h b/include/constants/vars.h index be32c7498..e0b08f447 100644 --- a/include/constants/vars.h +++ b/include/constants/vars.h @@ -60,7 +60,7 @@ #define VAR_POISON_STEP_COUNTER 0x402B #define VAR_RESET_RTC_ENABLE 0x402C #define VAR_ENIGMA_BERRY_AVAILABLE 0x402D -#define VAR_WONDER_NEWS_COUNTER 0x402E +#define VAR_WONDER_NEWS_STEP_COUNTER 0x402E #define VAR_FRONTIER_MANIAC_FACILITY 0x402F #define VAR_FRONTIER_GAMBLER_CHALLENGE 0x4030 diff --git a/include/global.h b/include/global.h index 6e2cfa9b8..58922a39b 100644 --- a/include/global.h +++ b/include/global.h @@ -829,9 +829,9 @@ struct TrainerHillSave struct WonderNewsMetadata { u8 newsType:2; - u8 sentCounter:3; - u8 getCounter:3; - u8 rand; + u8 sentRewardCounter:3; + u8 rewardCounter:3; + u8 berry; }; struct WonderNews diff --git a/include/link.h b/include/link.h index 7fa5e3fae..f27cddc62 100644 --- a/include/link.h +++ b/include/link.h @@ -100,8 +100,8 @@ #define LINKTYPE_BERRY_BLENDER_SETUP 0x4411 #define LINKTYPE_BERRY_BLENDER 0x4422 #define LINKTYPE_MYSTERY_EVENT 0x5501 -#define LINKTYPE_UNUSED_EREADER 0x5502 // Unused, inferred from gap -#define LINKTYPE_EREADER 0x5503 +#define LINKTYPE_EREADER_FRLG 0x5502 +#define LINKTYPE_EREADER_EM 0x5503 #define LINKTYPE_CONTEST_GMODE 0x6601 #define LINKTYPE_CONTEST_EMODE 0x6602 diff --git a/include/wonder_news.h b/include/wonder_news.h index 68fd59e4c..f499709df 100755 --- a/include/wonder_news.h +++ b/include/wonder_news.h @@ -8,8 +8,7 @@ enum { WONDER_NEWS_SENT, }; - -void InitSavedWonderNews(void); -void GenerateRandomWonderNews(u32 newsType); +void WonderNews_Reset(void); +void WonderNews_SetReward(u32 newsType); #endif //GUARD_WONDER_NEWS_H diff --git a/src/ereader_screen.c b/src/ereader_screen.c index b6bf7133a..ea5cface4 100755 --- a/src/ereader_screen.c +++ b/src/ereader_screen.c @@ -5,6 +5,7 @@ #include "link.h" #include "main.h" #include "mystery_gift_menu.h" +#include "mystery_gift_client.h" #include "save.h" #include "sound.h" #include "sprite.h" @@ -98,7 +99,7 @@ static u8 EReader_Transfer(struct EReaderData *eReader) static void OpenEReaderLink(void) { memset(gDecompressionBuffer, 0, 0x2000); - gLinkType = LINKTYPE_EREADER; + gLinkType = LINKTYPE_EREADER_EM; OpenLink(); SetSuppressLinkErrorMessage(TRUE); } @@ -259,7 +260,7 @@ void CreateEReaderTask(void) data->unused2 = 0; data->unused3 = 0; data->status = 0; - data->unusedBuffer = AllocZeroed(0x40); + data->unusedBuffer = AllocZeroed(CLIENT_MAX_MSG_SIZE); } static void ResetTimer(u16 *timer) diff --git a/src/mystery_gift.c b/src/mystery_gift.c index c4e63bfbb..ee601059f 100755 --- a/src/mystery_gift.c +++ b/src/mystery_gift.c @@ -27,7 +27,7 @@ static void IncrementCardStatForNewTrainer(u32, u32, u32 *, int); void ClearMysteryGift(void) { CpuFill32(0, &gSaveBlock1Ptr->mysteryGift, sizeof(gSaveBlock1Ptr->mysteryGift)); - ClearSavedWonderNewsMetadata(); // Clear is redundant, InitSavedWonderNews would be sufficient + ClearSavedWonderNewsMetadata(); // Clear is redundant, WonderNews_Reset would be sufficient InitQuestionnaireWords(); } @@ -109,7 +109,7 @@ static void ClearSavedWonderNews(void) static void ClearSavedWonderNewsMetadata(void) { CpuFill32(0, GetSavedWonderNewsMetadata(), sizeof(gSaveBlock1Ptr->mysteryGift.newsMetadata)); - InitSavedWonderNews(); + WonderNews_Reset(); } bool32 IsWonderNewsSameAsSaved(const u8 *news) diff --git a/src/mystery_gift_menu.c b/src/mystery_gift_menu.c index 4b81c81a3..6a09ca206 100644 --- a/src/mystery_gift_menu.c +++ b/src/mystery_gift_menu.c @@ -1258,7 +1258,7 @@ static void Task_MysteryGift(u8 taskId) data->state = MG_STATE_CLIENT_LINK_END; break; case CLI_RET_COPY_MSG: - memcpy(data->clientMsg, MysteryGiftClient_GetMsg(), 0x40); + memcpy(data->clientMsg, MysteryGiftClient_GetMsg(), CLIENT_MAX_MSG_SIZE); MysteryGiftClient_AdvanceState(); break; case CLI_RET_PRINT_MSG: @@ -1371,9 +1371,9 @@ static void Task_MysteryGift(u8 taskId) if (data->msgId == CLI_MSG_NEWS_RECEIVED) { if (data->sourceIsFriend == TRUE) - GenerateRandomWonderNews(WONDER_NEWS_RECV_FRIEND); + WonderNews_SetReward(WONDER_NEWS_RECV_FRIEND); else - GenerateRandomWonderNews(WONDER_NEWS_RECV_WIRELESS); + WonderNews_SetReward(WONDER_NEWS_RECV_WIRELESS); } if (!successMsg) { @@ -1580,7 +1580,7 @@ static void Task_MysteryGift(u8 taskId) { if (data->sourceIsFriend == TRUE && data->msgId == SVR_MSG_NEWS_SENT) { - GenerateRandomWonderNews(WONDER_NEWS_SENT); + WonderNews_SetReward(WONDER_NEWS_SENT); data->state = MG_STATE_SAVE_LOAD_GIFT; } else diff --git a/src/mystery_gift_scripts.c b/src/mystery_gift_scripts.c index fcd7f568d..0bad35eb0 100644 --- a/src/mystery_gift_scripts.c +++ b/src/mystery_gift_scripts.c @@ -172,7 +172,7 @@ static const struct MysteryGiftServerCmd sServerScript_TossPrompt[] = { {SVR_SEND}, {SVR_RECV, MG_LINKID_RESPONSE}, {SVR_READ_RESPONSE}, - {SVR_GOTO_IF_EQ, FALSE, sServerScript_SendCard}, // Tossed old card, send new one + {SVR_GOTO_IF_EQ, FALSE, sServerScript_SendCard}, // Tossed old card, send new one {SVR_GOTO, .ptr = sServerScript_ClientCanceledCard} // Kept old card, cancel new one }; diff --git a/src/wonder_news.c b/src/wonder_news.c index e083575d9..4b5f32d1d 100644 --- a/src/wonder_news.c +++ b/src/wonder_news.c @@ -3,30 +3,22 @@ #include "random.h" #include "event_data.h" #include "wonder_news.h" +#include "constants/items.h" -/* - Wonder News related functions. - Because this feature is largely unused, the names in here are - mostly nebulous and without a real indication of purpose. -*/ +// Every 4th reward for sending Wonder News to a link partner is a "big" reward. +#define MAX_SENT_REWARD 4 -enum { - NEWS_VAL_INVALID, - NEWS_VAL_RECV_FRIEND, - NEWS_VAL_RECV_WIRELESS, - NEWS_VAL_NONE, - NEWS_VAL_SENT, - NEWS_VAL_SENT_MAX, - NEWS_VAL_GET_MAX, -}; +// Only up to 5 rewards can be received in a short period. After this the player +// must take 500 steps before any more rewards can be received. +#define MAX_REWARD 5 -static u32 GetNewsId(struct WonderNewsMetadata *); -static void IncrementGetNewsCounter(struct WonderNewsMetadata *); -static u32 GetNewsValByNewsType(struct WonderNewsMetadata *); -static void IncrementSentNewsCounter(struct WonderNewsMetadata *); -static void ResetSentNewsCounter(struct WonderNewsMetadata *); +static u32 GetRewardItem(struct WonderNewsMetadata *); +static u32 GetRewardType(struct WonderNewsMetadata *); +static void IncrementRewardCounter(struct WonderNewsMetadata *); +static void IncrementSentRewardCounter(struct WonderNewsMetadata *); +static void ResetSentRewardCounter(struct WonderNewsMetadata *); -void GenerateRandomWonderNews(u32 newsType) +void WonderNews_SetReward(u32 newsType) { struct WonderNewsMetadata *data = GetSavedWonderNewsMetadata(); @@ -37,124 +29,128 @@ void GenerateRandomWonderNews(u32 newsType) break; case WONDER_NEWS_RECV_FRIEND: case WONDER_NEWS_RECV_WIRELESS: - data->rand = (Random() % 15) + 16; + // Random berry between ITEM_RAZZ_BERRY and ITEM_NOMEL_BERRY + data->berry = (Random() % 15) + ITEM_TO_BERRY(ITEM_RAZZ_BERRY); break; case WONDER_NEWS_SENT: - data->rand = (Random() % 15) + 1; + // Random berry between ITEM_CHERI_BERRY and ITEM_IAPAPA_BERRY + data->berry = (Random() % 15) + ITEM_TO_BERRY(ITEM_CHERI_BERRY); break; } } -void InitSavedWonderNews(void) +void WonderNews_Reset(void) { struct WonderNewsMetadata *data = GetSavedWonderNewsMetadata(); data->newsType = WONDER_NEWS_NONE; - data->sentCounter = 0; - data->getCounter = 0; - data->rand = 0; - VarSet(VAR_WONDER_NEWS_COUNTER, 0); + data->sentRewardCounter = 0; + data->rewardCounter = 0; + data->berry = 0; + VarSet(VAR_WONDER_NEWS_STEP_COUNTER, 0); } -// Unused -static void TryIncrementWonderNewsVar(void) +// Only used in FRLG +void WonderNews_IncrementStepCounter(void) { - u16 *var = GetVarPointer(VAR_WONDER_NEWS_COUNTER); + u16 *stepCounter = GetVarPointer(VAR_WONDER_NEWS_STEP_COUNTER); struct WonderNewsMetadata *data = GetSavedWonderNewsMetadata(); - if (data->getCounter > 4 && ++(*var) >= 500) + // If the player has reached the reward limit, start counting steps. + // When they reach 500 steps reset the reward counter to allow them to + // receive rewards again. + if (data->rewardCounter >= MAX_REWARD && ++(*stepCounter) >= 500) { - data->getCounter = 0; - *var = 0; + data->rewardCounter = 0; + *stepCounter = 0; } } -// Unused -u16 RetrieveWonderNewsVal(void) +// Only used in FRLG +u16 WonderNews_GetRewardInfo(void) { u16 *result = &gSpecialVar_Result; struct WonderNewsMetadata *data = GetSavedWonderNewsMetadata(); - u16 newsVal; + u16 rewardType; // Checks if Mystery Event is enabled, not Mystery Gift? if (!IsMysteryEventEnabled() || !ValidateSavedWonderNews()) - return 0; + return NEWS_REWARD_NONE; - newsVal = GetNewsValByNewsType(data); + rewardType = GetRewardType(data); - switch (newsVal) + switch (rewardType) { - case NEWS_VAL_RECV_FRIEND: - *result = GetNewsId(data); + case NEWS_REWARD_RECV_SMALL: + case NEWS_REWARD_RECV_BIG: + *result = GetRewardItem(data); break; - case NEWS_VAL_RECV_WIRELESS: - *result = GetNewsId(data); + case NEWS_REWARD_SENT_SMALL: + *result = GetRewardItem(data); + IncrementSentRewardCounter(data); break; - case NEWS_VAL_SENT: - *result = GetNewsId(data); - IncrementSentNewsCounter(data); + case NEWS_REWARD_SENT_BIG: + *result = GetRewardItem(data); + ResetSentRewardCounter(data); break; - case NEWS_VAL_SENT_MAX: - *result = GetNewsId(data); - ResetSentNewsCounter(data); - break; - case NEWS_VAL_INVALID: - case NEWS_VAL_NONE: - case NEWS_VAL_GET_MAX: + case NEWS_REWARD_NONE: + case NEWS_REWARD_WAITING: + case NEWS_REWARD_AT_MAX: break; } - return newsVal; + return rewardType; } -static u32 GetNewsId(struct WonderNewsMetadata *data) +static u32 GetRewardItem(struct WonderNewsMetadata *data) { - u32 id; + u32 itemId; data->newsType = WONDER_NEWS_NONE; - id = data->rand + 132; - data->rand = 0; - IncrementGetNewsCounter(data); - return id; + itemId = data->berry + FIRST_BERRY_INDEX - 1; + data->berry = 0; + IncrementRewardCounter(data); + return itemId; } -static void ResetSentNewsCounter(struct WonderNewsMetadata *data) +static void ResetSentRewardCounter(struct WonderNewsMetadata *data) { - data->sentCounter = 0; + data->sentRewardCounter = 0; } -static void IncrementSentNewsCounter(struct WonderNewsMetadata *data) +// Track number of times a reward was received (or attmepted to receive) for sending Wonder News to a link partner. +static void IncrementSentRewardCounter(struct WonderNewsMetadata *data) { - data->sentCounter++; - if (data->sentCounter > 4) - data->sentCounter = 4; + data->sentRewardCounter++; + if (data->sentRewardCounter > MAX_SENT_REWARD) + data->sentRewardCounter = MAX_SENT_REWARD; } -static void IncrementGetNewsCounter(struct WonderNewsMetadata *data) +static void IncrementRewardCounter(struct WonderNewsMetadata *data) { - data->getCounter++; - if (data->getCounter > 5) - data->getCounter = 5; + data->rewardCounter++; + if (data->rewardCounter > MAX_REWARD) + data->rewardCounter = MAX_REWARD; } -static u32 GetNewsValByNewsType(struct WonderNewsMetadata *data) +static u32 GetRewardType(struct WonderNewsMetadata *data) { - if (data->getCounter == 5) - return NEWS_VAL_GET_MAX; + if (data->rewardCounter == MAX_REWARD) + return NEWS_REWARD_AT_MAX; switch (data->newsType) { case WONDER_NEWS_NONE: - return NEWS_VAL_NONE; + return NEWS_REWARD_WAITING; case WONDER_NEWS_RECV_FRIEND: - return NEWS_VAL_RECV_FRIEND; + return NEWS_REWARD_RECV_SMALL; case WONDER_NEWS_RECV_WIRELESS: - return NEWS_VAL_RECV_WIRELESS; + return NEWS_REWARD_RECV_BIG; case WONDER_NEWS_SENT: - if (data->sentCounter < 3) - return NEWS_VAL_SENT; - return NEWS_VAL_SENT_MAX; + if (data->sentRewardCounter < MAX_SENT_REWARD - 1) + return NEWS_REWARD_SENT_SMALL; + return NEWS_REWARD_SENT_BIG; default: AGB_ASSERT(0); - return NEWS_VAL_INVALID; + return NEWS_REWARD_NONE; } } From 7327be6f9e6ac4ef6db47980afe6afa50359a8b9 Mon Sep 17 00:00:00 2001 From: Eduardo Quezada Date: Tue, 22 Nov 2022 17:05:25 -0300 Subject: [PATCH 11/69] Made Types and Egg Groups into arrays --- include/constants/pokemon.h | 4 + include/pokemon.h | 8 +- src/battle_ai_switch_items.c | 4 +- src/battle_dome.c | 16 +- src/battle_factory.c | 6 +- src/battle_main.c | 8 +- src/battle_pike.c | 12 +- src/battle_script_commands.c | 6 +- src/contest.c | 2 +- src/data/pokemon/species_info.h | 2374 +++++++++++-------------------- src/daycare.c | 4 +- src/field_specials.c | 2 +- src/pokedex.c | 8 +- src/pokemon.c | 4 +- src/pokemon_summary_screen.c | 6 +- src/trade.c | 4 +- src/union_room.c | 2 +- src/wild_encounter.c | 2 +- 18 files changed, 850 insertions(+), 1622 deletions(-) diff --git a/include/constants/pokemon.h b/include/constants/pokemon.h index d0e609448..0e2113abe 100644 --- a/include/constants/pokemon.h +++ b/include/constants/pokemon.h @@ -266,4 +266,8 @@ #define SKIP_FRONT_ANIM (1 << 7) +#define NUM_TYPE_SLOTS 2 +#define NUM_EGG_GROUP_SLOTS 2 +#define NUM_ABILITY_SLOTS 2 + #endif // GUARD_CONSTANTS_POKEMON_H diff --git a/include/pokemon.h b/include/pokemon.h index 1b6151669..5ee8b8ade 100644 --- a/include/pokemon.h +++ b/include/pokemon.h @@ -295,8 +295,7 @@ struct SpeciesInfo /* 0x03 */ u8 baseSpeed; /* 0x04 */ u8 baseSpAttack; /* 0x05 */ u8 baseSpDefense; - /* 0x06 */ u8 type1; - /* 0x07 */ u8 type2; + /* 0x06 */ u8 types[NUM_TYPE_SLOTS]; /* 0x08 */ u8 catchRate; /* 0x09 */ u8 expYield; /* 0x0A */ u16 evYield_HP:2; @@ -311,9 +310,8 @@ struct SpeciesInfo /* 0x11 */ u8 eggCycles; /* 0x12 */ u8 friendship; /* 0x13 */ u8 growthRate; - /* 0x14 */ u8 eggGroup1; - /* 0x15 */ u8 eggGroup2; - /* 0x16 */ u8 abilities[2]; + /* 0x14 */ u8 eggGroups[NUM_EGG_GROUP_SLOTS]; + /* 0x16 */ u8 abilities[NUM_ABILITY_SLOTS]; /* 0x18 */ u8 safariZoneFleeRate; /* 0x19 */ u8 bodyColor : 7; u8 noFlip : 1; diff --git a/src/battle_ai_switch_items.c b/src/battle_ai_switch_items.c index 0aec2316e..53b791a67 100644 --- a/src/battle_ai_switch_items.c +++ b/src/battle_ai_switch_items.c @@ -703,8 +703,8 @@ u8 GetMostSuitableMonToSwitchInto(void) && i != *(gBattleStruct->monToSwitchIntoId + battlerIn1) && i != *(gBattleStruct->monToSwitchIntoId + battlerIn2)) { - u8 type1 = gSpeciesInfo[species].type1; - u8 type2 = gSpeciesInfo[species].type2; + u8 type1 = gSpeciesInfo[species].types[0]; + u8 type2 = gSpeciesInfo[species].types[1]; u8 typeDmg = TYPE_MUL_NORMAL; ModulateByTypeEffectiveness(gBattleMons[opposingBattler].type1, type1, type2, &typeDmg); ModulateByTypeEffectiveness(gBattleMons[opposingBattler].type2, type1, type2, &typeDmg); diff --git a/src/battle_dome.c b/src/battle_dome.c index e0911d485..0470aa5de 100644 --- a/src/battle_dome.c +++ b/src/battle_dome.c @@ -2348,8 +2348,8 @@ static void InitDomeTrainers(void) rankingScores[0] += GetMonData(&gPlayerParty[trainerId], MON_DATA_SPDEF, NULL); rankingScores[0] += GetMonData(&gPlayerParty[trainerId], MON_DATA_SPEED, NULL); rankingScores[0] += GetMonData(&gPlayerParty[trainerId], MON_DATA_MAX_HP, NULL); - monTypesBits |= gBitTable[gSpeciesInfo[GetMonData(&gPlayerParty[trainerId], MON_DATA_SPECIES, NULL)].type1]; - monTypesBits |= gBitTable[gSpeciesInfo[GetMonData(&gPlayerParty[trainerId], MON_DATA_SPECIES, NULL)].type2]; + monTypesBits |= gBitTable[gSpeciesInfo[GetMonData(&gPlayerParty[trainerId], MON_DATA_SPECIES, NULL)].types[0]]; + monTypesBits |= gBitTable[gSpeciesInfo[GetMonData(&gPlayerParty[trainerId], MON_DATA_SPECIES, NULL)].types[1]]; } // Count the number of types in the players party, to factor into the ranking @@ -2383,8 +2383,8 @@ static void InitDomeTrainers(void) rankingScores[i] += statValues[STAT_SPDEF]; rankingScores[i] += statValues[STAT_SPEED]; rankingScores[i] += statValues[STAT_HP]; - monTypesBits |= gBitTable[gSpeciesInfo[gFacilityTrainerMons[DOME_MONS[i][j]].species].type1]; - monTypesBits |= gBitTable[gSpeciesInfo[gFacilityTrainerMons[DOME_MONS[i][j]].species].type2]; + monTypesBits |= gBitTable[gSpeciesInfo[gFacilityTrainerMons[DOME_MONS[i][j]].species].types[0]]; + monTypesBits |= gBitTable[gSpeciesInfo[gFacilityTrainerMons[DOME_MONS[i][j]].species].types[1]]; } for (monTypesCount = 0, j = 0; j < 32; j++) @@ -2750,8 +2750,8 @@ static int GetTypeEffectivenessPoints(int move, int targetSpecies, int mode) if (move == MOVE_NONE || move == MOVE_UNAVAILABLE || gBattleMoves[move].power == 0) return 0; - defType1 = gSpeciesInfo[targetSpecies].type1; - defType2 = gSpeciesInfo[targetSpecies].type2; + defType1 = gSpeciesInfo[targetSpecies].types[0]; + defType2 = gSpeciesInfo[targetSpecies].types[1]; defAbility = gSpeciesInfo[targetSpecies].abilities[0]; moveType = gBattleMoves[move].type; @@ -5883,8 +5883,8 @@ static void InitRandomTourneyTreeResults(void) statSums[i] += statValues[STAT_SPDEF]; statSums[i] += statValues[STAT_SPEED]; statSums[i] += statValues[STAT_HP]; - monTypesBits |= gBitTable[gSpeciesInfo[gFacilityTrainerMons[DOME_MONS[i][j]].species].type1]; - monTypesBits |= gBitTable[gSpeciesInfo[gFacilityTrainerMons[DOME_MONS[i][j]].species].type2]; + monTypesBits |= gBitTable[gSpeciesInfo[gFacilityTrainerMons[DOME_MONS[i][j]].species].types[0]]; + monTypesBits |= gBitTable[gSpeciesInfo[gFacilityTrainerMons[DOME_MONS[i][j]].species].types[1]]; } // Because GF hates temporary vars, trainerId acts like monTypesCount here. diff --git a/src/battle_factory.c b/src/battle_factory.c index 5aeef2e29..eac9f0403 100644 --- a/src/battle_factory.c +++ b/src/battle_factory.c @@ -618,9 +618,9 @@ static void GetOpponentMostCommonMonType(void) for (i = 0; i < FRONTIER_PARTY_SIZE; i++) { u32 species = gFacilityTrainerMons[gFrontierTempParty[i]].species; - typeCounts[gSpeciesInfo[species].type1]++; - if (gSpeciesInfo[species].type1 != gSpeciesInfo[species].type2) - typeCounts[gSpeciesInfo[species].type2]++; + typeCounts[gSpeciesInfo[species].types[0]]++; + if (gSpeciesInfo[species].types[0] != gSpeciesInfo[species].types[1]) + typeCounts[gSpeciesInfo[species].types[1]]++; } // Determine which are the two most-common types. diff --git a/src/battle_main.c b/src/battle_main.c index fa85608d4..0b19b8306 100644 --- a/src/battle_main.c +++ b/src/battle_main.c @@ -3332,8 +3332,8 @@ void FaintClearSetData(void) gBattleResources->flags->flags[gActiveBattler] = 0; - gBattleMons[gActiveBattler].type1 = gSpeciesInfo[gBattleMons[gActiveBattler].species].type1; - gBattleMons[gActiveBattler].type2 = gSpeciesInfo[gBattleMons[gActiveBattler].species].type2; + gBattleMons[gActiveBattler].type1 = gSpeciesInfo[gBattleMons[gActiveBattler].species].types[0]; + gBattleMons[gActiveBattler].type2 = gSpeciesInfo[gBattleMons[gActiveBattler].species].types[1]; ClearBattlerMoveHistory(gActiveBattler); ClearBattlerAbilityHistory(gActiveBattler); @@ -3400,8 +3400,8 @@ static void BattleIntroDrawTrainersOrMonsSprites(void) for (i = 0; i < sizeof(struct BattlePokemon); i++) ptr[i] = gBattleBufferB[gActiveBattler][4 + i]; - gBattleMons[gActiveBattler].type1 = gSpeciesInfo[gBattleMons[gActiveBattler].species].type1; - gBattleMons[gActiveBattler].type2 = gSpeciesInfo[gBattleMons[gActiveBattler].species].type2; + gBattleMons[gActiveBattler].type1 = gSpeciesInfo[gBattleMons[gActiveBattler].species].types[0]; + gBattleMons[gActiveBattler].type2 = gSpeciesInfo[gBattleMons[gActiveBattler].species].types[1]; gBattleMons[gActiveBattler].ability = GetAbilityBySpecies(gBattleMons[gActiveBattler].species, gBattleMons[gActiveBattler].abilityNum); hpOnSwitchout = &gBattleStruct->hpOnSwitchout[GetBattlerSide(gActiveBattler)]; *hpOnSwitchout = gBattleMons[gActiveBattler].hp; diff --git a/src/battle_pike.c b/src/battle_pike.c index 174006161..462ae4f38 100644 --- a/src/battle_pike.c +++ b/src/battle_pike.c @@ -845,21 +845,21 @@ static bool8 DoesTypePreventStatus(u16 species, u32 status) switch (status) { case STATUS1_TOXIC_POISON: - if (gSpeciesInfo[species].type1 == TYPE_STEEL || gSpeciesInfo[species].type1 == TYPE_POISON - || gSpeciesInfo[species].type2 == TYPE_STEEL || gSpeciesInfo[species].type2 == TYPE_POISON) + if (gSpeciesInfo[species].types[0] == TYPE_STEEL || gSpeciesInfo[species].types[0] == TYPE_POISON + || gSpeciesInfo[species].types[1] == TYPE_STEEL || gSpeciesInfo[species].types[1] == TYPE_POISON) ret = TRUE; break; case STATUS1_FREEZE: - if (gSpeciesInfo[species].type1 == TYPE_ICE || gSpeciesInfo[species].type2 == TYPE_ICE) + if (gSpeciesInfo[species].types[0] == TYPE_ICE || gSpeciesInfo[species].types[1] == TYPE_ICE) ret = TRUE; break; case STATUS1_PARALYSIS: - if (gSpeciesInfo[species].type1 == TYPE_GROUND || gSpeciesInfo[species].type1 == TYPE_ELECTRIC - || gSpeciesInfo[species].type2 == TYPE_GROUND || gSpeciesInfo[species].type2 == TYPE_ELECTRIC) + if (gSpeciesInfo[species].types[0] == TYPE_GROUND || gSpeciesInfo[species].types[0] == TYPE_ELECTRIC + || gSpeciesInfo[species].types[1] == TYPE_GROUND || gSpeciesInfo[species].types[1] == TYPE_ELECTRIC) ret = TRUE; break; case STATUS1_BURN: - if (gSpeciesInfo[species].type1 == TYPE_FIRE || gSpeciesInfo[species].type2 == TYPE_FIRE) + if (gSpeciesInfo[species].types[0] == TYPE_FIRE || gSpeciesInfo[species].types[1] == TYPE_FIRE) ret = TRUE; break; case STATUS1_SLEEP: diff --git a/src/battle_script_commands.c b/src/battle_script_commands.c index 111713b1f..2cbbd0e37 100644 --- a/src/battle_script_commands.c +++ b/src/battle_script_commands.c @@ -1595,7 +1595,7 @@ u8 AI_TypeCalc(u16 move, u16 targetSpecies, u8 targetAbility) { s32 i = 0; u8 flags = 0; - u8 type1 = gSpeciesInfo[targetSpecies].type1, type2 = gSpeciesInfo[targetSpecies].type2; + u8 type1 = gSpeciesInfo[targetSpecies].types[0], type2 = gSpeciesInfo[targetSpecies].types[1]; u8 moveType; if (move == MOVE_STRUGGLE) @@ -4604,8 +4604,8 @@ static void Cmd_switchindataupdate(void) for (i = 0; i < sizeof(struct BattlePokemon); i++) monData[i] = gBattleBufferB[gActiveBattler][4 + i]; - gBattleMons[gActiveBattler].type1 = gSpeciesInfo[gBattleMons[gActiveBattler].species].type1; - gBattleMons[gActiveBattler].type2 = gSpeciesInfo[gBattleMons[gActiveBattler].species].type2; + gBattleMons[gActiveBattler].type1 = gSpeciesInfo[gBattleMons[gActiveBattler].species].types[0]; + gBattleMons[gActiveBattler].type2 = gSpeciesInfo[gBattleMons[gActiveBattler].species].types[1]; gBattleMons[gActiveBattler].ability = GetAbilityBySpecies(gBattleMons[gActiveBattler].species, gBattleMons[gActiveBattler].abilityNum); // check knocked off item diff --git a/src/contest.c b/src/contest.c index e5cda17ae..787567436 100644 --- a/src/contest.c +++ b/src/contest.c @@ -5320,7 +5320,7 @@ static void SetMoveSpecificAnimData(u8 contestant) switch (move) { case MOVE_CURSE: - if (gSpeciesInfo[species].type1 == TYPE_GHOST || gSpeciesInfo[species].type2 == TYPE_GHOST) + if (gSpeciesInfo[species].types[0] == TYPE_GHOST || gSpeciesInfo[species].types[1] == TYPE_GHOST) gAnimMoveTurn = 0; else gAnimMoveTurn = 1; diff --git a/src/data/pokemon/species_info.h b/src/data/pokemon/species_info.h index 5af84df1f..a40a73e93 100644 --- a/src/data/pokemon/species_info.h +++ b/src/data/pokemon/species_info.h @@ -2,36 +2,34 @@ // 255 (MON_GENDERLESS) is reserved for genderless Pokémon. #define PERCENT_FEMALE(percent) min(254, ((percent * 255) / 100)) -#define OLD_UNOWN_SPECIES_INFO \ - { \ - .baseHP = 50, \ - .baseAttack = 150, \ - .baseDefense = 50, \ - .baseSpeed = 150, \ - .baseSpAttack = 150, \ - .baseSpDefense = 50, \ - .type1 = TYPE_NORMAL, \ - .type2 = TYPE_NORMAL, \ - .catchRate = 3, \ - .expYield = 1, \ - .evYield_HP = 2, \ - .evYield_Attack = 2, \ - .evYield_Defense = 2, \ - .evYield_Speed = 2, \ - .evYield_SpAttack = 2, \ - .evYield_SpDefense = 2, \ - .itemCommon = ITEM_NONE, \ - .itemRare = ITEM_NONE, \ - .genderRatio = MON_GENDERLESS, \ - .eggCycles = 120, \ - .friendship = 0, \ - .growthRate = GROWTH_MEDIUM_FAST, \ - .eggGroup1 = EGG_GROUP_UNDISCOVERED, \ - .eggGroup2 = EGG_GROUP_UNDISCOVERED, \ - .abilities = {ABILITY_NONE, ABILITY_NONE}, \ - .safariZoneFleeRate = 0, \ - .bodyColor = BODY_COLOR_BLACK, \ - .noFlip = FALSE, \ +#define OLD_UNOWN_SPECIES_INFO \ + { \ + .baseHP = 50, \ + .baseAttack = 150, \ + .baseDefense = 50, \ + .baseSpeed = 150, \ + .baseSpAttack = 150, \ + .baseSpDefense = 50, \ + .types { TYPE_NORMAL, TYPE_NORMAL}, \ + .catchRate = 3, \ + .expYield = 1, \ + .evYield_HP = 2, \ + .evYield_Attack = 2, \ + .evYield_Defense = 2, \ + .evYield_Speed = 2, \ + .evYield_SpAttack = 2, \ + .evYield_SpDefense = 2, \ + .itemCommon = ITEM_NONE, \ + .itemRare = ITEM_NONE, \ + .genderRatio = MON_GENDERLESS, \ + .eggCycles = 120, \ + .friendship = 0, \ + .growthRate = GROWTH_MEDIUM_FAST, \ + .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED, }, \ + .abilities = {ABILITY_NONE, ABILITY_NONE}, \ + .safariZoneFleeRate = 0, \ + .bodyColor = BODY_COLOR_BLACK, \ + .noFlip = FALSE, \ } const struct SpeciesInfo gSpeciesInfo[] = @@ -46,8 +44,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 45, .baseSpAttack = 65, .baseSpDefense = 65, - .type1 = TYPE_GRASS, - .type2 = TYPE_POISON, + .types = { TYPE_GRASS, TYPE_POISON }, .catchRate = 45, .expYield = 64, .evYield_HP = 0, @@ -62,8 +59,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 20, .friendship = 70, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroup1 = EGG_GROUP_MONSTER, - .eggGroup2 = EGG_GROUP_GRASS, + .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_GRASS }, .abilities = {ABILITY_OVERGROW, ABILITY_NONE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_GREEN, @@ -78,8 +74,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 60, .baseSpAttack = 80, .baseSpDefense = 80, - .type1 = TYPE_GRASS, - .type2 = TYPE_POISON, + .types = { TYPE_GRASS, TYPE_POISON }, .catchRate = 45, .expYield = 141, .evYield_HP = 0, @@ -94,8 +89,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 20, .friendship = 70, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroup1 = EGG_GROUP_MONSTER, - .eggGroup2 = EGG_GROUP_GRASS, + .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_GRASS }, .abilities = {ABILITY_OVERGROW, ABILITY_NONE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_GREEN, @@ -110,8 +104,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 80, .baseSpAttack = 100, .baseSpDefense = 100, - .type1 = TYPE_GRASS, - .type2 = TYPE_POISON, + .types = { TYPE_GRASS, TYPE_POISON }, .catchRate = 45, .expYield = 208, .evYield_HP = 0, @@ -126,8 +119,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 20, .friendship = 70, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroup1 = EGG_GROUP_MONSTER, - .eggGroup2 = EGG_GROUP_GRASS, + .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_GRASS }, .abilities = {ABILITY_OVERGROW, ABILITY_NONE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_GREEN, @@ -142,8 +134,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 65, .baseSpAttack = 60, .baseSpDefense = 50, - .type1 = TYPE_FIRE, - .type2 = TYPE_FIRE, + .types = { TYPE_FIRE, TYPE_FIRE }, .catchRate = 45, .expYield = 65, .evYield_HP = 0, @@ -158,8 +149,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 20, .friendship = 70, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroup1 = EGG_GROUP_MONSTER, - .eggGroup2 = EGG_GROUP_DRAGON, + .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_DRAGON }, .abilities = {ABILITY_BLAZE, ABILITY_NONE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_RED, @@ -174,8 +164,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 80, .baseSpAttack = 80, .baseSpDefense = 65, - .type1 = TYPE_FIRE, - .type2 = TYPE_FIRE, + .types = { TYPE_FIRE, TYPE_FIRE }, .catchRate = 45, .expYield = 142, .evYield_HP = 0, @@ -190,8 +179,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 20, .friendship = 70, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroup1 = EGG_GROUP_MONSTER, - .eggGroup2 = EGG_GROUP_DRAGON, + .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_DRAGON }, .abilities = {ABILITY_BLAZE, ABILITY_NONE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_RED, @@ -206,8 +194,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 100, .baseSpAttack = 109, .baseSpDefense = 85, - .type1 = TYPE_FIRE, - .type2 = TYPE_FLYING, + .types = { TYPE_FIRE, TYPE_FLYING }, .catchRate = 45, .expYield = 209, .evYield_HP = 0, @@ -222,8 +209,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 20, .friendship = 70, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroup1 = EGG_GROUP_MONSTER, - .eggGroup2 = EGG_GROUP_DRAGON, + .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_DRAGON }, .abilities = {ABILITY_BLAZE, ABILITY_NONE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_RED, @@ -238,8 +224,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 43, .baseSpAttack = 50, .baseSpDefense = 64, - .type1 = TYPE_WATER, - .type2 = TYPE_WATER, + .types = { TYPE_WATER, TYPE_WATER }, .catchRate = 45, .expYield = 66, .evYield_HP = 0, @@ -254,8 +239,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 20, .friendship = 70, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroup1 = EGG_GROUP_MONSTER, - .eggGroup2 = EGG_GROUP_WATER_1, + .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_WATER_1 }, .abilities = {ABILITY_TORRENT, ABILITY_NONE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_BLUE, @@ -270,8 +254,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 58, .baseSpAttack = 65, .baseSpDefense = 80, - .type1 = TYPE_WATER, - .type2 = TYPE_WATER, + .types = { TYPE_WATER, TYPE_WATER }, .catchRate = 45, .expYield = 143, .evYield_HP = 0, @@ -286,8 +269,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 20, .friendship = 70, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroup1 = EGG_GROUP_MONSTER, - .eggGroup2 = EGG_GROUP_WATER_1, + .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_WATER_1 }, .abilities = {ABILITY_TORRENT, ABILITY_NONE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_BLUE, @@ -302,8 +284,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 78, .baseSpAttack = 85, .baseSpDefense = 105, - .type1 = TYPE_WATER, - .type2 = TYPE_WATER, + .types = { TYPE_WATER, TYPE_WATER }, .catchRate = 45, .expYield = 210, .evYield_HP = 0, @@ -318,8 +299,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 20, .friendship = 70, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroup1 = EGG_GROUP_MONSTER, - .eggGroup2 = EGG_GROUP_WATER_1, + .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_WATER_1 }, .abilities = {ABILITY_TORRENT, ABILITY_NONE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_BLUE, @@ -334,8 +314,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 45, .baseSpAttack = 20, .baseSpDefense = 20, - .type1 = TYPE_BUG, - .type2 = TYPE_BUG, + .types = { TYPE_BUG, TYPE_BUG }, .catchRate = 255, .expYield = 53, .evYield_HP = 1, @@ -350,8 +329,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 15, .friendship = 70, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroup1 = EGG_GROUP_BUG, - .eggGroup2 = EGG_GROUP_BUG, + .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG }, .abilities = {ABILITY_SHIELD_DUST, ABILITY_NONE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_GREEN, @@ -366,8 +344,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 30, .baseSpAttack = 25, .baseSpDefense = 25, - .type1 = TYPE_BUG, - .type2 = TYPE_BUG, + .types = { TYPE_BUG, TYPE_BUG }, .catchRate = 120, .expYield = 72, .evYield_HP = 0, @@ -382,8 +359,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 15, .friendship = 70, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroup1 = EGG_GROUP_BUG, - .eggGroup2 = EGG_GROUP_BUG, + .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG }, .abilities = {ABILITY_SHED_SKIN, ABILITY_NONE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_GREEN, @@ -398,8 +374,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 70, .baseSpAttack = 80, .baseSpDefense = 80, - .type1 = TYPE_BUG, - .type2 = TYPE_FLYING, + .types = { TYPE_BUG, TYPE_FLYING }, .catchRate = 45, .expYield = 160, .evYield_HP = 0, @@ -414,8 +389,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 15, .friendship = 70, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroup1 = EGG_GROUP_BUG, - .eggGroup2 = EGG_GROUP_BUG, + .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG }, .abilities = {ABILITY_COMPOUND_EYES, ABILITY_NONE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_WHITE, @@ -430,8 +404,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 50, .baseSpAttack = 20, .baseSpDefense = 20, - .type1 = TYPE_BUG, - .type2 = TYPE_POISON, + .types = { TYPE_BUG, TYPE_POISON }, .catchRate = 255, .expYield = 52, .evYield_HP = 0, @@ -446,8 +419,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 15, .friendship = 70, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroup1 = EGG_GROUP_BUG, - .eggGroup2 = EGG_GROUP_BUG, + .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG }, .abilities = {ABILITY_SHIELD_DUST, ABILITY_NONE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_BROWN, @@ -462,8 +434,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 35, .baseSpAttack = 25, .baseSpDefense = 25, - .type1 = TYPE_BUG, - .type2 = TYPE_POISON, + .types = { TYPE_BUG, TYPE_POISON }, .catchRate = 120, .expYield = 71, .evYield_HP = 0, @@ -478,8 +449,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 15, .friendship = 70, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroup1 = EGG_GROUP_BUG, - .eggGroup2 = EGG_GROUP_BUG, + .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG }, .abilities = {ABILITY_SHED_SKIN, ABILITY_NONE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_YELLOW, @@ -494,8 +464,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 75, .baseSpAttack = 45, .baseSpDefense = 80, - .type1 = TYPE_BUG, - .type2 = TYPE_POISON, + .types = { TYPE_BUG, TYPE_POISON }, .catchRate = 45, .expYield = 159, .evYield_HP = 0, @@ -510,8 +479,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 15, .friendship = 70, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroup1 = EGG_GROUP_BUG, - .eggGroup2 = EGG_GROUP_BUG, + .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG }, .abilities = {ABILITY_SWARM, ABILITY_NONE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_YELLOW, @@ -526,8 +494,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 56, .baseSpAttack = 35, .baseSpDefense = 35, - .type1 = TYPE_NORMAL, - .type2 = TYPE_FLYING, + .types = { TYPE_NORMAL, TYPE_FLYING }, .catchRate = 255, .expYield = 55, .evYield_HP = 0, @@ -542,8 +509,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 15, .friendship = 70, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroup1 = EGG_GROUP_FLYING, - .eggGroup2 = EGG_GROUP_FLYING, + .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FLYING }, .abilities = {ABILITY_KEEN_EYE, ABILITY_NONE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_BROWN, @@ -558,8 +524,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 71, .baseSpAttack = 50, .baseSpDefense = 50, - .type1 = TYPE_NORMAL, - .type2 = TYPE_FLYING, + .types = { TYPE_NORMAL, TYPE_FLYING }, .catchRate = 120, .expYield = 113, .evYield_HP = 0, @@ -574,8 +539,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 15, .friendship = 70, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroup1 = EGG_GROUP_FLYING, - .eggGroup2 = EGG_GROUP_FLYING, + .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FLYING }, .abilities = {ABILITY_KEEN_EYE, ABILITY_NONE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_BROWN, @@ -590,8 +554,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 91, .baseSpAttack = 70, .baseSpDefense = 70, - .type1 = TYPE_NORMAL, - .type2 = TYPE_FLYING, + .types = { TYPE_NORMAL, TYPE_FLYING }, .catchRate = 45, .expYield = 172, .evYield_HP = 0, @@ -606,8 +569,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 15, .friendship = 70, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroup1 = EGG_GROUP_FLYING, - .eggGroup2 = EGG_GROUP_FLYING, + .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FLYING }, .abilities = {ABILITY_KEEN_EYE, ABILITY_NONE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_BROWN, @@ -622,8 +584,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 72, .baseSpAttack = 25, .baseSpDefense = 35, - .type1 = TYPE_NORMAL, - .type2 = TYPE_NORMAL, + .types = { TYPE_NORMAL, TYPE_NORMAL }, .catchRate = 255, .expYield = 57, .evYield_HP = 0, @@ -638,8 +599,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 15, .friendship = 70, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroup1 = EGG_GROUP_FIELD, - .eggGroup2 = EGG_GROUP_FIELD, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, .abilities = {ABILITY_RUN_AWAY, ABILITY_GUTS}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_PURPLE, @@ -654,8 +614,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 97, .baseSpAttack = 50, .baseSpDefense = 70, - .type1 = TYPE_NORMAL, - .type2 = TYPE_NORMAL, + .types = { TYPE_NORMAL, TYPE_NORMAL }, .catchRate = 127, .expYield = 116, .evYield_HP = 0, @@ -670,8 +629,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 15, .friendship = 70, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroup1 = EGG_GROUP_FIELD, - .eggGroup2 = EGG_GROUP_FIELD, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, .abilities = {ABILITY_RUN_AWAY, ABILITY_GUTS}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_BROWN, @@ -686,8 +644,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 70, .baseSpAttack = 31, .baseSpDefense = 31, - .type1 = TYPE_NORMAL, - .type2 = TYPE_FLYING, + .types = { TYPE_NORMAL, TYPE_FLYING }, .catchRate = 255, .expYield = 58, .evYield_HP = 0, @@ -702,8 +659,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 15, .friendship = 70, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroup1 = EGG_GROUP_FLYING, - .eggGroup2 = EGG_GROUP_FLYING, + .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FLYING }, .abilities = {ABILITY_KEEN_EYE, ABILITY_NONE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_BROWN, @@ -718,8 +674,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 100, .baseSpAttack = 61, .baseSpDefense = 61, - .type1 = TYPE_NORMAL, - .type2 = TYPE_FLYING, + .types = { TYPE_NORMAL, TYPE_FLYING }, .catchRate = 90, .expYield = 162, .evYield_HP = 0, @@ -734,8 +689,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 15, .friendship = 70, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroup1 = EGG_GROUP_FLYING, - .eggGroup2 = EGG_GROUP_FLYING, + .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FLYING }, .abilities = {ABILITY_KEEN_EYE, ABILITY_NONE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_BROWN, @@ -750,8 +704,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 55, .baseSpAttack = 40, .baseSpDefense = 54, - .type1 = TYPE_POISON, - .type2 = TYPE_POISON, + .types = { TYPE_POISON, TYPE_POISON }, .catchRate = 255, .expYield = 62, .evYield_HP = 0, @@ -766,8 +719,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 20, .friendship = 70, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroup1 = EGG_GROUP_FIELD, - .eggGroup2 = EGG_GROUP_DRAGON, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_DRAGON }, .abilities = {ABILITY_INTIMIDATE, ABILITY_SHED_SKIN}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_PURPLE, @@ -782,8 +734,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 80, .baseSpAttack = 65, .baseSpDefense = 79, - .type1 = TYPE_POISON, - .type2 = TYPE_POISON, + .types = { TYPE_POISON, TYPE_POISON }, .catchRate = 90, .expYield = 147, .evYield_HP = 0, @@ -798,8 +749,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 20, .friendship = 70, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroup1 = EGG_GROUP_FIELD, - .eggGroup2 = EGG_GROUP_DRAGON, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_DRAGON }, .abilities = {ABILITY_INTIMIDATE, ABILITY_SHED_SKIN}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_PURPLE, @@ -814,8 +764,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 90, .baseSpAttack = 50, .baseSpDefense = 40, - .type1 = TYPE_ELECTRIC, - .type2 = TYPE_ELECTRIC, + .types = { TYPE_ELECTRIC, TYPE_ELECTRIC }, .catchRate = 190, .expYield = 82, .evYield_HP = 0, @@ -830,8 +779,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 10, .friendship = 70, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroup1 = EGG_GROUP_FIELD, - .eggGroup2 = EGG_GROUP_FAIRY, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FAIRY }, .abilities = {ABILITY_STATIC, ABILITY_NONE}, .safariZoneFleeRate = 6, .bodyColor = BODY_COLOR_YELLOW, @@ -846,8 +794,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 100, .baseSpAttack = 90, .baseSpDefense = 80, - .type1 = TYPE_ELECTRIC, - .type2 = TYPE_ELECTRIC, + .types = { TYPE_ELECTRIC, TYPE_ELECTRIC }, .catchRate = 75, .expYield = 122, .evYield_HP = 0, @@ -862,8 +809,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 10, .friendship = 70, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroup1 = EGG_GROUP_FIELD, - .eggGroup2 = EGG_GROUP_FAIRY, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FAIRY }, .abilities = {ABILITY_STATIC, ABILITY_NONE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_YELLOW, @@ -878,8 +824,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 40, .baseSpAttack = 20, .baseSpDefense = 30, - .type1 = TYPE_GROUND, - .type2 = TYPE_GROUND, + .types = { TYPE_GROUND, TYPE_GROUND }, .catchRate = 255, .expYield = 93, .evYield_HP = 0, @@ -894,8 +839,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 20, .friendship = 70, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroup1 = EGG_GROUP_FIELD, - .eggGroup2 = EGG_GROUP_FIELD, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, .abilities = {ABILITY_SAND_VEIL, ABILITY_NONE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_YELLOW, @@ -910,8 +854,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 65, .baseSpAttack = 45, .baseSpDefense = 55, - .type1 = TYPE_GROUND, - .type2 = TYPE_GROUND, + .types = { TYPE_GROUND, TYPE_GROUND }, .catchRate = 90, .expYield = 163, .evYield_HP = 0, @@ -926,8 +869,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 20, .friendship = 70, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroup1 = EGG_GROUP_FIELD, - .eggGroup2 = EGG_GROUP_FIELD, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, .abilities = {ABILITY_SAND_VEIL, ABILITY_NONE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_YELLOW, @@ -942,8 +884,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 41, .baseSpAttack = 40, .baseSpDefense = 40, - .type1 = TYPE_POISON, - .type2 = TYPE_POISON, + .types = { TYPE_POISON, TYPE_POISON }, .catchRate = 235, .expYield = 59, .evYield_HP = 1, @@ -958,8 +899,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 20, .friendship = 70, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroup1 = EGG_GROUP_MONSTER, - .eggGroup2 = EGG_GROUP_FIELD, + .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_FIELD }, .abilities = {ABILITY_POISON_POINT, ABILITY_NONE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_BLUE, @@ -974,8 +914,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 56, .baseSpAttack = 55, .baseSpDefense = 55, - .type1 = TYPE_POISON, - .type2 = TYPE_POISON, + .types = { TYPE_POISON, TYPE_POISON }, .catchRate = 120, .expYield = 117, .evYield_HP = 2, @@ -990,8 +929,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 20, .friendship = 70, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroup1 = EGG_GROUP_UNDISCOVERED, - .eggGroup2 = EGG_GROUP_UNDISCOVERED, + .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED }, .abilities = {ABILITY_POISON_POINT, ABILITY_NONE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_BLUE, @@ -1006,8 +944,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 76, .baseSpAttack = 75, .baseSpDefense = 85, - .type1 = TYPE_POISON, - .type2 = TYPE_GROUND, + .types = { TYPE_POISON, TYPE_GROUND }, .catchRate = 45, .expYield = 194, .evYield_HP = 3, @@ -1022,8 +959,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 20, .friendship = 70, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroup1 = EGG_GROUP_UNDISCOVERED, - .eggGroup2 = EGG_GROUP_UNDISCOVERED, + .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED }, .abilities = {ABILITY_POISON_POINT, ABILITY_NONE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_BLUE, @@ -1038,8 +974,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 50, .baseSpAttack = 40, .baseSpDefense = 40, - .type1 = TYPE_POISON, - .type2 = TYPE_POISON, + .types = { TYPE_POISON, TYPE_POISON }, .catchRate = 235, .expYield = 60, .evYield_HP = 0, @@ -1054,8 +989,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 20, .friendship = 70, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroup1 = EGG_GROUP_MONSTER, - .eggGroup2 = EGG_GROUP_FIELD, + .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_FIELD }, .abilities = {ABILITY_POISON_POINT, ABILITY_NONE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_PURPLE, @@ -1070,8 +1004,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 65, .baseSpAttack = 55, .baseSpDefense = 55, - .type1 = TYPE_POISON, - .type2 = TYPE_POISON, + .types = { TYPE_POISON, TYPE_POISON }, .catchRate = 120, .expYield = 118, .evYield_HP = 0, @@ -1086,8 +1019,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 20, .friendship = 70, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroup1 = EGG_GROUP_MONSTER, - .eggGroup2 = EGG_GROUP_FIELD, + .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_FIELD }, .abilities = {ABILITY_POISON_POINT, ABILITY_NONE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_PURPLE, @@ -1102,8 +1034,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 85, .baseSpAttack = 85, .baseSpDefense = 75, - .type1 = TYPE_POISON, - .type2 = TYPE_GROUND, + .types = { TYPE_POISON, TYPE_GROUND }, .catchRate = 45, .expYield = 195, .evYield_HP = 0, @@ -1118,8 +1049,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 20, .friendship = 70, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroup1 = EGG_GROUP_MONSTER, - .eggGroup2 = EGG_GROUP_FIELD, + .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_FIELD }, .abilities = {ABILITY_POISON_POINT, ABILITY_NONE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_PURPLE, @@ -1134,8 +1064,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 35, .baseSpAttack = 60, .baseSpDefense = 65, - .type1 = TYPE_NORMAL, - .type2 = TYPE_NORMAL, + .types = { TYPE_NORMAL, TYPE_NORMAL }, .catchRate = 150, .expYield = 68, .evYield_HP = 2, @@ -1150,8 +1079,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 10, .friendship = 140, .growthRate = GROWTH_FAST, - .eggGroup1 = EGG_GROUP_FAIRY, - .eggGroup2 = EGG_GROUP_FAIRY, + .eggGroups = { EGG_GROUP_FAIRY, EGG_GROUP_FAIRY }, .abilities = {ABILITY_CUTE_CHARM, ABILITY_NONE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_PINK, @@ -1166,8 +1094,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 60, .baseSpAttack = 85, .baseSpDefense = 90, - .type1 = TYPE_NORMAL, - .type2 = TYPE_NORMAL, + .types = { TYPE_NORMAL, TYPE_NORMAL }, .catchRate = 25, .expYield = 129, .evYield_HP = 3, @@ -1182,8 +1109,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 10, .friendship = 140, .growthRate = GROWTH_FAST, - .eggGroup1 = EGG_GROUP_FAIRY, - .eggGroup2 = EGG_GROUP_FAIRY, + .eggGroups = { EGG_GROUP_FAIRY, EGG_GROUP_FAIRY }, .abilities = {ABILITY_CUTE_CHARM, ABILITY_NONE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_PINK, @@ -1198,8 +1124,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 65, .baseSpAttack = 50, .baseSpDefense = 65, - .type1 = TYPE_FIRE, - .type2 = TYPE_FIRE, + .types = { TYPE_FIRE, TYPE_FIRE }, .catchRate = 190, .expYield = 63, .evYield_HP = 0, @@ -1214,8 +1139,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 20, .friendship = 70, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroup1 = EGG_GROUP_FIELD, - .eggGroup2 = EGG_GROUP_FIELD, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, .abilities = {ABILITY_FLASH_FIRE, ABILITY_NONE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_BROWN, @@ -1230,8 +1154,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 100, .baseSpAttack = 81, .baseSpDefense = 100, - .type1 = TYPE_FIRE, - .type2 = TYPE_FIRE, + .types = { TYPE_FIRE, TYPE_FIRE }, .catchRate = 75, .expYield = 178, .evYield_HP = 0, @@ -1246,8 +1169,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 20, .friendship = 70, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroup1 = EGG_GROUP_FIELD, - .eggGroup2 = EGG_GROUP_FIELD, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, .abilities = {ABILITY_FLASH_FIRE, ABILITY_NONE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_YELLOW, @@ -1262,8 +1184,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 20, .baseSpAttack = 45, .baseSpDefense = 25, - .type1 = TYPE_NORMAL, - .type2 = TYPE_NORMAL, + .types = { TYPE_NORMAL, TYPE_NORMAL }, .catchRate = 170, .expYield = 76, .evYield_HP = 2, @@ -1278,8 +1199,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 10, .friendship = 70, .growthRate = GROWTH_FAST, - .eggGroup1 = EGG_GROUP_FAIRY, - .eggGroup2 = EGG_GROUP_FAIRY, + .eggGroups = { EGG_GROUP_FAIRY, EGG_GROUP_FAIRY }, .abilities = {ABILITY_CUTE_CHARM, ABILITY_NONE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_PINK, @@ -1294,8 +1214,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 45, .baseSpAttack = 75, .baseSpDefense = 50, - .type1 = TYPE_NORMAL, - .type2 = TYPE_NORMAL, + .types = { TYPE_NORMAL, TYPE_NORMAL }, .catchRate = 50, .expYield = 109, .evYield_HP = 3, @@ -1310,8 +1229,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 10, .friendship = 70, .growthRate = GROWTH_FAST, - .eggGroup1 = EGG_GROUP_FAIRY, - .eggGroup2 = EGG_GROUP_FAIRY, + .eggGroups = { EGG_GROUP_FAIRY, EGG_GROUP_FAIRY }, .abilities = {ABILITY_CUTE_CHARM, ABILITY_NONE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_PINK, @@ -1326,8 +1244,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 55, .baseSpAttack = 30, .baseSpDefense = 40, - .type1 = TYPE_POISON, - .type2 = TYPE_FLYING, + .types = { TYPE_POISON, TYPE_FLYING }, .catchRate = 255, .expYield = 54, .evYield_HP = 0, @@ -1342,8 +1259,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 15, .friendship = 70, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroup1 = EGG_GROUP_FLYING, - .eggGroup2 = EGG_GROUP_FLYING, + .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FLYING }, .abilities = {ABILITY_INNER_FOCUS, ABILITY_NONE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_PURPLE, @@ -1358,8 +1274,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 90, .baseSpAttack = 65, .baseSpDefense = 75, - .type1 = TYPE_POISON, - .type2 = TYPE_FLYING, + .types = { TYPE_POISON, TYPE_FLYING }, .catchRate = 90, .expYield = 171, .evYield_HP = 0, @@ -1374,8 +1289,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 15, .friendship = 70, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroup1 = EGG_GROUP_FLYING, - .eggGroup2 = EGG_GROUP_FLYING, + .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FLYING }, .abilities = {ABILITY_INNER_FOCUS, ABILITY_NONE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_PURPLE, @@ -1390,8 +1304,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 30, .baseSpAttack = 75, .baseSpDefense = 65, - .type1 = TYPE_GRASS, - .type2 = TYPE_POISON, + .types = { TYPE_GRASS, TYPE_POISON }, .catchRate = 255, .expYield = 78, .evYield_HP = 0, @@ -1406,8 +1319,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 20, .friendship = 70, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroup1 = EGG_GROUP_GRASS, - .eggGroup2 = EGG_GROUP_GRASS, + .eggGroups = { EGG_GROUP_GRASS, EGG_GROUP_GRASS }, .abilities = {ABILITY_CHLOROPHYLL, ABILITY_NONE}, .safariZoneFleeRate = 4, .bodyColor = BODY_COLOR_BLUE, @@ -1422,8 +1334,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 40, .baseSpAttack = 85, .baseSpDefense = 75, - .type1 = TYPE_GRASS, - .type2 = TYPE_POISON, + .types = { TYPE_GRASS, TYPE_POISON }, .catchRate = 120, .expYield = 132, .evYield_HP = 0, @@ -1438,8 +1349,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 20, .friendship = 70, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroup1 = EGG_GROUP_GRASS, - .eggGroup2 = EGG_GROUP_GRASS, + .eggGroups = { EGG_GROUP_GRASS, EGG_GROUP_GRASS }, .abilities = {ABILITY_CHLOROPHYLL, ABILITY_NONE}, .safariZoneFleeRate = 6, .bodyColor = BODY_COLOR_BLUE, @@ -1454,8 +1364,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 50, .baseSpAttack = 100, .baseSpDefense = 90, - .type1 = TYPE_GRASS, - .type2 = TYPE_POISON, + .types = { TYPE_GRASS, TYPE_POISON }, .catchRate = 45, .expYield = 184, .evYield_HP = 0, @@ -1470,8 +1379,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 20, .friendship = 70, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroup1 = EGG_GROUP_GRASS, - .eggGroup2 = EGG_GROUP_GRASS, + .eggGroups = { EGG_GROUP_GRASS, EGG_GROUP_GRASS }, .abilities = {ABILITY_CHLOROPHYLL, ABILITY_NONE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_RED, @@ -1486,8 +1394,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 25, .baseSpAttack = 45, .baseSpDefense = 55, - .type1 = TYPE_BUG, - .type2 = TYPE_GRASS, + .types = { TYPE_BUG, TYPE_GRASS }, .catchRate = 190, .expYield = 70, .evYield_HP = 0, @@ -1502,8 +1409,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 20, .friendship = 70, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroup1 = EGG_GROUP_BUG, - .eggGroup2 = EGG_GROUP_GRASS, + .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_GRASS }, .abilities = {ABILITY_EFFECT_SPORE, ABILITY_NONE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_RED, @@ -1518,8 +1424,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 30, .baseSpAttack = 60, .baseSpDefense = 80, - .type1 = TYPE_BUG, - .type2 = TYPE_GRASS, + .types = { TYPE_BUG, TYPE_GRASS }, .catchRate = 75, .expYield = 128, .evYield_HP = 0, @@ -1534,8 +1439,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 20, .friendship = 70, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroup1 = EGG_GROUP_BUG, - .eggGroup2 = EGG_GROUP_GRASS, + .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_GRASS }, .abilities = {ABILITY_EFFECT_SPORE, ABILITY_NONE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_RED, @@ -1550,8 +1454,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 45, .baseSpAttack = 40, .baseSpDefense = 55, - .type1 = TYPE_BUG, - .type2 = TYPE_POISON, + .types = { TYPE_BUG, TYPE_POISON }, .catchRate = 190, .expYield = 75, .evYield_HP = 0, @@ -1566,8 +1469,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 20, .friendship = 70, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroup1 = EGG_GROUP_BUG, - .eggGroup2 = EGG_GROUP_BUG, + .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG }, .abilities = {ABILITY_COMPOUND_EYES, ABILITY_NONE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_PURPLE, @@ -1582,8 +1484,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 90, .baseSpAttack = 90, .baseSpDefense = 75, - .type1 = TYPE_BUG, - .type2 = TYPE_POISON, + .types = { TYPE_BUG, TYPE_POISON }, .catchRate = 75, .expYield = 138, .evYield_HP = 0, @@ -1598,8 +1499,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 20, .friendship = 70, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroup1 = EGG_GROUP_BUG, - .eggGroup2 = EGG_GROUP_BUG, + .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG }, .abilities = {ABILITY_SHIELD_DUST, ABILITY_NONE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_PURPLE, @@ -1614,8 +1514,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 95, .baseSpAttack = 35, .baseSpDefense = 45, - .type1 = TYPE_GROUND, - .type2 = TYPE_GROUND, + .types = { TYPE_GROUND, TYPE_GROUND }, .catchRate = 255, .expYield = 81, .evYield_HP = 0, @@ -1630,8 +1529,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 20, .friendship = 70, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroup1 = EGG_GROUP_FIELD, - .eggGroup2 = EGG_GROUP_FIELD, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, .abilities = {ABILITY_SAND_VEIL, ABILITY_ARENA_TRAP}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_BROWN, @@ -1646,8 +1544,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 120, .baseSpAttack = 50, .baseSpDefense = 70, - .type1 = TYPE_GROUND, - .type2 = TYPE_GROUND, + .types = { TYPE_GROUND, TYPE_GROUND }, .catchRate = 50, .expYield = 153, .evYield_HP = 0, @@ -1662,8 +1559,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 20, .friendship = 70, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroup1 = EGG_GROUP_FIELD, - .eggGroup2 = EGG_GROUP_FIELD, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, .abilities = {ABILITY_SAND_VEIL, ABILITY_ARENA_TRAP}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_BROWN, @@ -1678,8 +1574,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 90, .baseSpAttack = 40, .baseSpDefense = 40, - .type1 = TYPE_NORMAL, - .type2 = TYPE_NORMAL, + .types = { TYPE_NORMAL, TYPE_NORMAL }, .catchRate = 255, .expYield = 69, .evYield_HP = 0, @@ -1694,8 +1589,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 20, .friendship = 70, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroup1 = EGG_GROUP_FIELD, - .eggGroup2 = EGG_GROUP_FIELD, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, .abilities = {ABILITY_PICKUP, ABILITY_NONE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_YELLOW, @@ -1710,8 +1604,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 115, .baseSpAttack = 65, .baseSpDefense = 65, - .type1 = TYPE_NORMAL, - .type2 = TYPE_NORMAL, + .types = { TYPE_NORMAL, TYPE_NORMAL }, .catchRate = 90, .expYield = 148, .evYield_HP = 0, @@ -1726,8 +1619,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 20, .friendship = 70, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroup1 = EGG_GROUP_FIELD, - .eggGroup2 = EGG_GROUP_FIELD, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, .abilities = {ABILITY_LIMBER, ABILITY_NONE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_YELLOW, @@ -1742,8 +1634,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 55, .baseSpAttack = 65, .baseSpDefense = 50, - .type1 = TYPE_WATER, - .type2 = TYPE_WATER, + .types = { TYPE_WATER, TYPE_WATER }, .catchRate = 190, .expYield = 80, .evYield_HP = 0, @@ -1758,8 +1649,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 20, .friendship = 70, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroup1 = EGG_GROUP_WATER_1, - .eggGroup2 = EGG_GROUP_FIELD, + .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_FIELD }, .abilities = {ABILITY_DAMP, ABILITY_CLOUD_NINE}, .safariZoneFleeRate = 6, .bodyColor = BODY_COLOR_YELLOW, @@ -1774,8 +1664,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 85, .baseSpAttack = 95, .baseSpDefense = 80, - .type1 = TYPE_WATER, - .type2 = TYPE_WATER, + .types = { TYPE_WATER, TYPE_WATER }, .catchRate = 75, .expYield = 174, .evYield_HP = 0, @@ -1790,8 +1679,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 20, .friendship = 70, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroup1 = EGG_GROUP_WATER_1, - .eggGroup2 = EGG_GROUP_FIELD, + .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_FIELD }, .abilities = {ABILITY_DAMP, ABILITY_CLOUD_NINE}, .safariZoneFleeRate = 8, .bodyColor = BODY_COLOR_BLUE, @@ -1806,8 +1694,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 70, .baseSpAttack = 35, .baseSpDefense = 45, - .type1 = TYPE_FIGHTING, - .type2 = TYPE_FIGHTING, + .types = { TYPE_FIGHTING, TYPE_FIGHTING }, .catchRate = 190, .expYield = 74, .evYield_HP = 0, @@ -1822,8 +1709,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 20, .friendship = 70, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroup1 = EGG_GROUP_FIELD, - .eggGroup2 = EGG_GROUP_FIELD, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, .abilities = {ABILITY_VITAL_SPIRIT, ABILITY_NONE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_BROWN, @@ -1838,8 +1724,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 95, .baseSpAttack = 60, .baseSpDefense = 70, - .type1 = TYPE_FIGHTING, - .type2 = TYPE_FIGHTING, + .types = { TYPE_FIGHTING, TYPE_FIGHTING }, .catchRate = 75, .expYield = 149, .evYield_HP = 0, @@ -1854,8 +1739,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 20, .friendship = 70, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroup1 = EGG_GROUP_FIELD, - .eggGroup2 = EGG_GROUP_FIELD, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, .abilities = {ABILITY_VITAL_SPIRIT, ABILITY_NONE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_BROWN, @@ -1870,8 +1754,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 60, .baseSpAttack = 70, .baseSpDefense = 50, - .type1 = TYPE_FIRE, - .type2 = TYPE_FIRE, + .types = { TYPE_FIRE, TYPE_FIRE }, .catchRate = 190, .expYield = 91, .evYield_HP = 0, @@ -1886,8 +1769,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 20, .friendship = 70, .growthRate = GROWTH_SLOW, - .eggGroup1 = EGG_GROUP_FIELD, - .eggGroup2 = EGG_GROUP_FIELD, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, .abilities = {ABILITY_INTIMIDATE, ABILITY_FLASH_FIRE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_BROWN, @@ -1902,8 +1784,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 95, .baseSpAttack = 100, .baseSpDefense = 80, - .type1 = TYPE_FIRE, - .type2 = TYPE_FIRE, + .types = { TYPE_FIRE, TYPE_FIRE }, .catchRate = 75, .expYield = 213, .evYield_HP = 0, @@ -1918,8 +1799,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 20, .friendship = 70, .growthRate = GROWTH_SLOW, - .eggGroup1 = EGG_GROUP_FIELD, - .eggGroup2 = EGG_GROUP_FIELD, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, .abilities = {ABILITY_INTIMIDATE, ABILITY_FLASH_FIRE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_BROWN, @@ -1934,8 +1814,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 90, .baseSpAttack = 40, .baseSpDefense = 40, - .type1 = TYPE_WATER, - .type2 = TYPE_WATER, + .types = { TYPE_WATER, TYPE_WATER }, .catchRate = 255, .expYield = 77, .evYield_HP = 0, @@ -1950,8 +1829,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 20, .friendship = 70, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroup1 = EGG_GROUP_WATER_1, - .eggGroup2 = EGG_GROUP_WATER_1, + .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_WATER_1 }, .abilities = {ABILITY_WATER_ABSORB, ABILITY_DAMP}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_BLUE, @@ -1966,8 +1844,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 90, .baseSpAttack = 50, .baseSpDefense = 50, - .type1 = TYPE_WATER, - .type2 = TYPE_WATER, + .types = { TYPE_WATER, TYPE_WATER }, .catchRate = 120, .expYield = 131, .evYield_HP = 0, @@ -1982,8 +1859,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 20, .friendship = 70, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroup1 = EGG_GROUP_WATER_1, - .eggGroup2 = EGG_GROUP_WATER_1, + .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_WATER_1 }, .abilities = {ABILITY_WATER_ABSORB, ABILITY_DAMP}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_BLUE, @@ -1998,8 +1874,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 70, .baseSpAttack = 70, .baseSpDefense = 90, - .type1 = TYPE_WATER, - .type2 = TYPE_FIGHTING, + .types = { TYPE_WATER, TYPE_FIGHTING }, .catchRate = 45, .expYield = 185, .evYield_HP = 0, @@ -2014,8 +1889,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 20, .friendship = 70, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroup1 = EGG_GROUP_WATER_1, - .eggGroup2 = EGG_GROUP_WATER_1, + .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_WATER_1 }, .abilities = {ABILITY_WATER_ABSORB, ABILITY_DAMP}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_BLUE, @@ -2030,8 +1904,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 90, .baseSpAttack = 105, .baseSpDefense = 55, - .type1 = TYPE_PSYCHIC, - .type2 = TYPE_PSYCHIC, + .types = { TYPE_PSYCHIC, TYPE_PSYCHIC }, .catchRate = 200, .expYield = 73, .evYield_HP = 0, @@ -2046,8 +1919,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 20, .friendship = 70, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroup1 = EGG_GROUP_HUMAN_LIKE, - .eggGroup2 = EGG_GROUP_HUMAN_LIKE, + .eggGroups = { EGG_GROUP_HUMAN_LIKE, EGG_GROUP_HUMAN_LIKE }, .abilities = {ABILITY_SYNCHRONIZE, ABILITY_INNER_FOCUS}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_BROWN, @@ -2062,8 +1934,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 105, .baseSpAttack = 120, .baseSpDefense = 70, - .type1 = TYPE_PSYCHIC, - .type2 = TYPE_PSYCHIC, + .types = { TYPE_PSYCHIC, TYPE_PSYCHIC }, .catchRate = 100, .expYield = 145, .evYield_HP = 0, @@ -2078,8 +1949,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 20, .friendship = 70, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroup1 = EGG_GROUP_HUMAN_LIKE, - .eggGroup2 = EGG_GROUP_HUMAN_LIKE, + .eggGroups = { EGG_GROUP_HUMAN_LIKE, EGG_GROUP_HUMAN_LIKE }, .abilities = {ABILITY_SYNCHRONIZE, ABILITY_INNER_FOCUS}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_BROWN, @@ -2094,8 +1964,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 120, .baseSpAttack = 135, .baseSpDefense = 85, - .type1 = TYPE_PSYCHIC, - .type2 = TYPE_PSYCHIC, + .types = { TYPE_PSYCHIC, TYPE_PSYCHIC }, .catchRate = 50, .expYield = 186, .evYield_HP = 0, @@ -2110,8 +1979,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 20, .friendship = 70, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroup1 = EGG_GROUP_HUMAN_LIKE, - .eggGroup2 = EGG_GROUP_HUMAN_LIKE, + .eggGroups = { EGG_GROUP_HUMAN_LIKE, EGG_GROUP_HUMAN_LIKE }, .abilities = {ABILITY_SYNCHRONIZE, ABILITY_INNER_FOCUS}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_BROWN, @@ -2126,8 +1994,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 35, .baseSpAttack = 35, .baseSpDefense = 35, - .type1 = TYPE_FIGHTING, - .type2 = TYPE_FIGHTING, + .types = { TYPE_FIGHTING, TYPE_FIGHTING }, .catchRate = 180, .expYield = 88, .evYield_HP = 0, @@ -2142,8 +2009,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 20, .friendship = 70, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroup1 = EGG_GROUP_HUMAN_LIKE, - .eggGroup2 = EGG_GROUP_HUMAN_LIKE, + .eggGroups = { EGG_GROUP_HUMAN_LIKE, EGG_GROUP_HUMAN_LIKE }, .abilities = {ABILITY_GUTS, ABILITY_NONE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_GRAY, @@ -2158,8 +2024,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 45, .baseSpAttack = 50, .baseSpDefense = 60, - .type1 = TYPE_FIGHTING, - .type2 = TYPE_FIGHTING, + .types = { TYPE_FIGHTING, TYPE_FIGHTING }, .catchRate = 90, .expYield = 146, .evYield_HP = 0, @@ -2174,8 +2039,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 20, .friendship = 70, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroup1 = EGG_GROUP_HUMAN_LIKE, - .eggGroup2 = EGG_GROUP_HUMAN_LIKE, + .eggGroups = { EGG_GROUP_HUMAN_LIKE, EGG_GROUP_HUMAN_LIKE }, .abilities = {ABILITY_GUTS, ABILITY_NONE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_GRAY, @@ -2190,8 +2054,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 55, .baseSpAttack = 65, .baseSpDefense = 85, - .type1 = TYPE_FIGHTING, - .type2 = TYPE_FIGHTING, + .types = { TYPE_FIGHTING, TYPE_FIGHTING }, .catchRate = 45, .expYield = 193, .evYield_HP = 0, @@ -2206,8 +2069,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 20, .friendship = 70, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroup1 = EGG_GROUP_HUMAN_LIKE, - .eggGroup2 = EGG_GROUP_HUMAN_LIKE, + .eggGroups = { EGG_GROUP_HUMAN_LIKE, EGG_GROUP_HUMAN_LIKE }, .abilities = {ABILITY_GUTS, ABILITY_NONE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_GRAY, @@ -2222,8 +2084,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 40, .baseSpAttack = 70, .baseSpDefense = 30, - .type1 = TYPE_GRASS, - .type2 = TYPE_POISON, + .types = { TYPE_GRASS, TYPE_POISON }, .catchRate = 255, .expYield = 84, .evYield_HP = 0, @@ -2238,8 +2099,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 20, .friendship = 70, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroup1 = EGG_GROUP_GRASS, - .eggGroup2 = EGG_GROUP_GRASS, + .eggGroups = { EGG_GROUP_GRASS, EGG_GROUP_GRASS }, .abilities = {ABILITY_CHLOROPHYLL, ABILITY_NONE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_GREEN, @@ -2254,8 +2114,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 55, .baseSpAttack = 85, .baseSpDefense = 45, - .type1 = TYPE_GRASS, - .type2 = TYPE_POISON, + .types = { TYPE_GRASS, TYPE_POISON }, .catchRate = 120, .expYield = 151, .evYield_HP = 0, @@ -2270,8 +2129,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 20, .friendship = 70, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroup1 = EGG_GROUP_GRASS, - .eggGroup2 = EGG_GROUP_GRASS, + .eggGroups = { EGG_GROUP_GRASS, EGG_GROUP_GRASS }, .abilities = {ABILITY_CHLOROPHYLL, ABILITY_NONE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_GREEN, @@ -2286,8 +2144,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 70, .baseSpAttack = 100, .baseSpDefense = 60, - .type1 = TYPE_GRASS, - .type2 = TYPE_POISON, + .types = { TYPE_GRASS, TYPE_POISON }, .catchRate = 45, .expYield = 191, .evYield_HP = 0, @@ -2302,8 +2159,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 20, .friendship = 70, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroup1 = EGG_GROUP_GRASS, - .eggGroup2 = EGG_GROUP_GRASS, + .eggGroups = { EGG_GROUP_GRASS, EGG_GROUP_GRASS }, .abilities = {ABILITY_CHLOROPHYLL, ABILITY_NONE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_GREEN, @@ -2318,8 +2174,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 70, .baseSpAttack = 50, .baseSpDefense = 100, - .type1 = TYPE_WATER, - .type2 = TYPE_POISON, + .types = { TYPE_WATER, TYPE_POISON }, .catchRate = 190, .expYield = 105, .evYield_HP = 0, @@ -2334,8 +2189,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 20, .friendship = 70, .growthRate = GROWTH_SLOW, - .eggGroup1 = EGG_GROUP_WATER_3, - .eggGroup2 = EGG_GROUP_WATER_3, + .eggGroups = { EGG_GROUP_WATER_3, EGG_GROUP_WATER_3 }, .abilities = {ABILITY_CLEAR_BODY, ABILITY_LIQUID_OOZE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_BLUE, @@ -2350,8 +2204,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 100, .baseSpAttack = 80, .baseSpDefense = 120, - .type1 = TYPE_WATER, - .type2 = TYPE_POISON, + .types = { TYPE_WATER, TYPE_POISON }, .catchRate = 60, .expYield = 205, .evYield_HP = 0, @@ -2366,8 +2219,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 20, .friendship = 70, .growthRate = GROWTH_SLOW, - .eggGroup1 = EGG_GROUP_WATER_3, - .eggGroup2 = EGG_GROUP_WATER_3, + .eggGroups = { EGG_GROUP_WATER_3, EGG_GROUP_WATER_3 }, .abilities = {ABILITY_CLEAR_BODY, ABILITY_LIQUID_OOZE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_BLUE, @@ -2382,8 +2234,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 20, .baseSpAttack = 30, .baseSpDefense = 30, - .type1 = TYPE_ROCK, - .type2 = TYPE_GROUND, + .types = { TYPE_ROCK, TYPE_GROUND }, .catchRate = 255, .expYield = 86, .evYield_HP = 0, @@ -2398,8 +2249,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 15, .friendship = 70, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroup1 = EGG_GROUP_MINERAL, - .eggGroup2 = EGG_GROUP_MINERAL, + .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_MINERAL }, .abilities = {ABILITY_ROCK_HEAD, ABILITY_STURDY}, .safariZoneFleeRate = 4, .bodyColor = BODY_COLOR_BROWN, @@ -2414,8 +2264,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 35, .baseSpAttack = 45, .baseSpDefense = 45, - .type1 = TYPE_ROCK, - .type2 = TYPE_GROUND, + .types = { TYPE_ROCK, TYPE_GROUND }, .catchRate = 120, .expYield = 134, .evYield_HP = 0, @@ -2430,8 +2279,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 15, .friendship = 70, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroup1 = EGG_GROUP_MINERAL, - .eggGroup2 = EGG_GROUP_MINERAL, + .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_MINERAL }, .abilities = {ABILITY_ROCK_HEAD, ABILITY_STURDY}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_BROWN, @@ -2446,8 +2294,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 45, .baseSpAttack = 55, .baseSpDefense = 65, - .type1 = TYPE_ROCK, - .type2 = TYPE_GROUND, + .types = { TYPE_ROCK, TYPE_GROUND }, .catchRate = 45, .expYield = 177, .evYield_HP = 0, @@ -2462,8 +2309,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 15, .friendship = 70, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroup1 = EGG_GROUP_MINERAL, - .eggGroup2 = EGG_GROUP_MINERAL, + .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_MINERAL }, .abilities = {ABILITY_ROCK_HEAD, ABILITY_STURDY}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_BROWN, @@ -2478,8 +2324,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 90, .baseSpAttack = 65, .baseSpDefense = 65, - .type1 = TYPE_FIRE, - .type2 = TYPE_FIRE, + .types = { TYPE_FIRE, TYPE_FIRE }, .catchRate = 190, .expYield = 152, .evYield_HP = 0, @@ -2494,8 +2339,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 20, .friendship = 70, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroup1 = EGG_GROUP_FIELD, - .eggGroup2 = EGG_GROUP_FIELD, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, .abilities = {ABILITY_RUN_AWAY, ABILITY_FLASH_FIRE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_YELLOW, @@ -2510,8 +2354,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 105, .baseSpAttack = 80, .baseSpDefense = 80, - .type1 = TYPE_FIRE, - .type2 = TYPE_FIRE, + .types = { TYPE_FIRE, TYPE_FIRE }, .catchRate = 60, .expYield = 192, .evYield_HP = 0, @@ -2526,8 +2369,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 20, .friendship = 70, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroup1 = EGG_GROUP_FIELD, - .eggGroup2 = EGG_GROUP_FIELD, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, .abilities = {ABILITY_RUN_AWAY, ABILITY_FLASH_FIRE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_YELLOW, @@ -2542,8 +2384,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 15, .baseSpAttack = 40, .baseSpDefense = 40, - .type1 = TYPE_WATER, - .type2 = TYPE_PSYCHIC, + .types = { TYPE_WATER, TYPE_PSYCHIC }, .catchRate = 190, .expYield = 99, .evYield_HP = 1, @@ -2558,8 +2399,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 20, .friendship = 70, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroup1 = EGG_GROUP_MONSTER, - .eggGroup2 = EGG_GROUP_WATER_1, + .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_WATER_1 }, .abilities = {ABILITY_OBLIVIOUS, ABILITY_OWN_TEMPO}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_PINK, @@ -2574,8 +2414,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 30, .baseSpAttack = 100, .baseSpDefense = 80, - .type1 = TYPE_WATER, - .type2 = TYPE_PSYCHIC, + .types = { TYPE_WATER, TYPE_PSYCHIC }, .catchRate = 75, .expYield = 164, .evYield_HP = 0, @@ -2590,8 +2429,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 20, .friendship = 70, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroup1 = EGG_GROUP_MONSTER, - .eggGroup2 = EGG_GROUP_WATER_1, + .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_WATER_1 }, .abilities = {ABILITY_OBLIVIOUS, ABILITY_OWN_TEMPO}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_PINK, @@ -2606,8 +2444,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 45, .baseSpAttack = 95, .baseSpDefense = 55, - .type1 = TYPE_ELECTRIC, - .type2 = TYPE_STEEL, + .types = { TYPE_ELECTRIC, TYPE_STEEL }, .catchRate = 190, .expYield = 89, .evYield_HP = 0, @@ -2622,8 +2459,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 20, .friendship = 70, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroup1 = EGG_GROUP_MINERAL, - .eggGroup2 = EGG_GROUP_MINERAL, + .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_MINERAL }, .abilities = {ABILITY_MAGNET_PULL, ABILITY_STURDY}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_GRAY, @@ -2638,8 +2474,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 70, .baseSpAttack = 120, .baseSpDefense = 70, - .type1 = TYPE_ELECTRIC, - .type2 = TYPE_STEEL, + .types = { TYPE_ELECTRIC, TYPE_STEEL }, .catchRate = 60, .expYield = 161, .evYield_HP = 0, @@ -2654,8 +2489,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 20, .friendship = 70, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroup1 = EGG_GROUP_MINERAL, - .eggGroup2 = EGG_GROUP_MINERAL, + .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_MINERAL }, .abilities = {ABILITY_MAGNET_PULL, ABILITY_STURDY}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_GRAY, @@ -2670,8 +2504,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 60, .baseSpAttack = 58, .baseSpDefense = 62, - .type1 = TYPE_NORMAL, - .type2 = TYPE_FLYING, + .types = { TYPE_NORMAL, TYPE_FLYING }, .catchRate = 45, .expYield = 94, .evYield_HP = 0, @@ -2686,8 +2519,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 20, .friendship = 70, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroup1 = EGG_GROUP_FLYING, - .eggGroup2 = EGG_GROUP_FIELD, + .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FIELD }, .abilities = {ABILITY_KEEN_EYE, ABILITY_INNER_FOCUS}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_BROWN, @@ -2702,8 +2534,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 75, .baseSpAttack = 35, .baseSpDefense = 35, - .type1 = TYPE_NORMAL, - .type2 = TYPE_FLYING, + .types = { TYPE_NORMAL, TYPE_FLYING }, .catchRate = 190, .expYield = 96, .evYield_HP = 0, @@ -2718,8 +2549,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 20, .friendship = 70, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroup1 = EGG_GROUP_FLYING, - .eggGroup2 = EGG_GROUP_FLYING, + .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FLYING }, .abilities = {ABILITY_RUN_AWAY, ABILITY_EARLY_BIRD}, .safariZoneFleeRate = 8, .bodyColor = BODY_COLOR_BROWN, @@ -2734,8 +2564,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 100, .baseSpAttack = 60, .baseSpDefense = 60, - .type1 = TYPE_NORMAL, - .type2 = TYPE_FLYING, + .types = { TYPE_NORMAL, TYPE_FLYING }, .catchRate = 45, .expYield = 158, .evYield_HP = 0, @@ -2750,8 +2579,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 20, .friendship = 70, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroup1 = EGG_GROUP_FLYING, - .eggGroup2 = EGG_GROUP_FLYING, + .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FLYING }, .abilities = {ABILITY_RUN_AWAY, ABILITY_EARLY_BIRD}, .safariZoneFleeRate = 10, .bodyColor = BODY_COLOR_BROWN, @@ -2766,8 +2594,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 45, .baseSpAttack = 45, .baseSpDefense = 70, - .type1 = TYPE_WATER, - .type2 = TYPE_WATER, + .types = { TYPE_WATER, TYPE_WATER }, .catchRate = 190, .expYield = 100, .evYield_HP = 0, @@ -2782,8 +2609,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 20, .friendship = 70, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroup1 = EGG_GROUP_WATER_1, - .eggGroup2 = EGG_GROUP_FIELD, + .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_FIELD }, .abilities = {ABILITY_THICK_FAT, ABILITY_NONE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_WHITE, @@ -2798,8 +2624,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 70, .baseSpAttack = 70, .baseSpDefense = 95, - .type1 = TYPE_WATER, - .type2 = TYPE_ICE, + .types = { TYPE_WATER, TYPE_ICE }, .catchRate = 75, .expYield = 176, .evYield_HP = 0, @@ -2814,8 +2639,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 20, .friendship = 70, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroup1 = EGG_GROUP_WATER_1, - .eggGroup2 = EGG_GROUP_FIELD, + .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_FIELD }, .abilities = {ABILITY_THICK_FAT, ABILITY_NONE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_WHITE, @@ -2830,8 +2654,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 25, .baseSpAttack = 40, .baseSpDefense = 50, - .type1 = TYPE_POISON, - .type2 = TYPE_POISON, + .types = { TYPE_POISON, TYPE_POISON }, .catchRate = 190, .expYield = 90, .evYield_HP = 1, @@ -2846,8 +2669,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 20, .friendship = 70, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroup1 = EGG_GROUP_AMORPHOUS, - .eggGroup2 = EGG_GROUP_AMORPHOUS, + .eggGroups = { EGG_GROUP_AMORPHOUS, EGG_GROUP_AMORPHOUS }, .abilities = {ABILITY_STENCH, ABILITY_STICKY_HOLD}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_PURPLE, @@ -2862,8 +2684,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 50, .baseSpAttack = 65, .baseSpDefense = 100, - .type1 = TYPE_POISON, - .type2 = TYPE_POISON, + .types = { TYPE_POISON, TYPE_POISON }, .catchRate = 75, .expYield = 157, .evYield_HP = 1, @@ -2878,8 +2699,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 20, .friendship = 70, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroup1 = EGG_GROUP_AMORPHOUS, - .eggGroup2 = EGG_GROUP_AMORPHOUS, + .eggGroups = { EGG_GROUP_AMORPHOUS, EGG_GROUP_AMORPHOUS }, .abilities = {ABILITY_STENCH, ABILITY_STICKY_HOLD}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_PURPLE, @@ -2894,8 +2714,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 40, .baseSpAttack = 45, .baseSpDefense = 25, - .type1 = TYPE_WATER, - .type2 = TYPE_WATER, + .types = { TYPE_WATER, TYPE_WATER }, .catchRate = 190, .expYield = 97, .evYield_HP = 0, @@ -2910,8 +2729,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 20, .friendship = 70, .growthRate = GROWTH_SLOW, - .eggGroup1 = EGG_GROUP_WATER_3, - .eggGroup2 = EGG_GROUP_WATER_3, + .eggGroups = { EGG_GROUP_WATER_3, EGG_GROUP_WATER_3 }, .abilities = {ABILITY_SHELL_ARMOR, ABILITY_NONE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_PURPLE, @@ -2926,8 +2744,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 70, .baseSpAttack = 85, .baseSpDefense = 45, - .type1 = TYPE_WATER, - .type2 = TYPE_ICE, + .types = { TYPE_WATER, TYPE_ICE }, .catchRate = 60, .expYield = 203, .evYield_HP = 0, @@ -2942,8 +2759,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 20, .friendship = 70, .growthRate = GROWTH_SLOW, - .eggGroup1 = EGG_GROUP_WATER_3, - .eggGroup2 = EGG_GROUP_WATER_3, + .eggGroups = { EGG_GROUP_WATER_3, EGG_GROUP_WATER_3 }, .abilities = {ABILITY_SHELL_ARMOR, ABILITY_NONE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_PURPLE, @@ -2958,8 +2774,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 80, .baseSpAttack = 100, .baseSpDefense = 35, - .type1 = TYPE_GHOST, - .type2 = TYPE_POISON, + .types = { TYPE_GHOST, TYPE_POISON }, .catchRate = 190, .expYield = 95, .evYield_HP = 0, @@ -2974,8 +2789,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 20, .friendship = 70, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroup1 = EGG_GROUP_AMORPHOUS, - .eggGroup2 = EGG_GROUP_AMORPHOUS, + .eggGroups = { EGG_GROUP_AMORPHOUS, EGG_GROUP_AMORPHOUS }, .abilities = {ABILITY_LEVITATE, ABILITY_NONE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_PURPLE, @@ -2990,8 +2804,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 95, .baseSpAttack = 115, .baseSpDefense = 55, - .type1 = TYPE_GHOST, - .type2 = TYPE_POISON, + .types = { TYPE_GHOST, TYPE_POISON }, .catchRate = 90, .expYield = 126, .evYield_HP = 0, @@ -3006,8 +2819,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 20, .friendship = 70, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroup1 = EGG_GROUP_AMORPHOUS, - .eggGroup2 = EGG_GROUP_AMORPHOUS, + .eggGroups = { EGG_GROUP_AMORPHOUS, EGG_GROUP_AMORPHOUS }, .abilities = {ABILITY_LEVITATE, ABILITY_NONE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_PURPLE, @@ -3022,8 +2834,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 110, .baseSpAttack = 130, .baseSpDefense = 75, - .type1 = TYPE_GHOST, - .type2 = TYPE_POISON, + .types = { TYPE_GHOST, TYPE_POISON }, .catchRate = 45, .expYield = 190, .evYield_HP = 0, @@ -3038,8 +2849,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 20, .friendship = 70, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroup1 = EGG_GROUP_AMORPHOUS, - .eggGroup2 = EGG_GROUP_AMORPHOUS, + .eggGroups = { EGG_GROUP_AMORPHOUS, EGG_GROUP_AMORPHOUS }, .abilities = {ABILITY_LEVITATE, ABILITY_NONE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_PURPLE, @@ -3054,8 +2864,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 70, .baseSpAttack = 30, .baseSpDefense = 45, - .type1 = TYPE_ROCK, - .type2 = TYPE_GROUND, + .types = { TYPE_ROCK, TYPE_GROUND }, .catchRate = 45, .expYield = 108, .evYield_HP = 0, @@ -3070,8 +2879,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 25, .friendship = 70, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroup1 = EGG_GROUP_MINERAL, - .eggGroup2 = EGG_GROUP_MINERAL, + .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_MINERAL }, .abilities = {ABILITY_ROCK_HEAD, ABILITY_STURDY}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_GRAY, @@ -3086,8 +2894,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 42, .baseSpAttack = 43, .baseSpDefense = 90, - .type1 = TYPE_PSYCHIC, - .type2 = TYPE_PSYCHIC, + .types = { TYPE_PSYCHIC, TYPE_PSYCHIC }, .catchRate = 190, .expYield = 102, .evYield_HP = 0, @@ -3102,8 +2909,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 20, .friendship = 70, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroup1 = EGG_GROUP_HUMAN_LIKE, - .eggGroup2 = EGG_GROUP_HUMAN_LIKE, + .eggGroups = { EGG_GROUP_HUMAN_LIKE, EGG_GROUP_HUMAN_LIKE }, .abilities = {ABILITY_INSOMNIA, ABILITY_NONE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_YELLOW, @@ -3118,8 +2924,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 67, .baseSpAttack = 73, .baseSpDefense = 115, - .type1 = TYPE_PSYCHIC, - .type2 = TYPE_PSYCHIC, + .types = { TYPE_PSYCHIC, TYPE_PSYCHIC }, .catchRate = 75, .expYield = 165, .evYield_HP = 0, @@ -3134,8 +2939,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 20, .friendship = 70, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroup1 = EGG_GROUP_HUMAN_LIKE, - .eggGroup2 = EGG_GROUP_HUMAN_LIKE, + .eggGroups = { EGG_GROUP_HUMAN_LIKE, EGG_GROUP_HUMAN_LIKE }, .abilities = {ABILITY_INSOMNIA, ABILITY_NONE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_YELLOW, @@ -3150,8 +2954,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 50, .baseSpAttack = 25, .baseSpDefense = 25, - .type1 = TYPE_WATER, - .type2 = TYPE_WATER, + .types = { TYPE_WATER, TYPE_WATER }, .catchRate = 225, .expYield = 115, .evYield_HP = 0, @@ -3166,8 +2969,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 20, .friendship = 70, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroup1 = EGG_GROUP_WATER_3, - .eggGroup2 = EGG_GROUP_WATER_3, + .eggGroups = { EGG_GROUP_WATER_3, EGG_GROUP_WATER_3 }, .abilities = {ABILITY_HYPER_CUTTER, ABILITY_SHELL_ARMOR}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_RED, @@ -3182,8 +2984,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 75, .baseSpAttack = 50, .baseSpDefense = 50, - .type1 = TYPE_WATER, - .type2 = TYPE_WATER, + .types = { TYPE_WATER, TYPE_WATER }, .catchRate = 60, .expYield = 206, .evYield_HP = 0, @@ -3198,8 +2999,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 20, .friendship = 70, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroup1 = EGG_GROUP_WATER_3, - .eggGroup2 = EGG_GROUP_WATER_3, + .eggGroups = { EGG_GROUP_WATER_3, EGG_GROUP_WATER_3 }, .abilities = {ABILITY_HYPER_CUTTER, ABILITY_SHELL_ARMOR}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_RED, @@ -3214,8 +3014,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 100, .baseSpAttack = 55, .baseSpDefense = 55, - .type1 = TYPE_ELECTRIC, - .type2 = TYPE_ELECTRIC, + .types = { TYPE_ELECTRIC, TYPE_ELECTRIC }, .catchRate = 190, .expYield = 103, .evYield_HP = 0, @@ -3230,8 +3029,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 20, .friendship = 70, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroup1 = EGG_GROUP_MINERAL, - .eggGroup2 = EGG_GROUP_MINERAL, + .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_MINERAL }, .abilities = {ABILITY_SOUNDPROOF, ABILITY_STATIC}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_RED, @@ -3246,8 +3044,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 140, .baseSpAttack = 80, .baseSpDefense = 80, - .type1 = TYPE_ELECTRIC, - .type2 = TYPE_ELECTRIC, + .types = { TYPE_ELECTRIC, TYPE_ELECTRIC }, .catchRate = 60, .expYield = 150, .evYield_HP = 0, @@ -3262,8 +3059,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 20, .friendship = 70, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroup1 = EGG_GROUP_MINERAL, - .eggGroup2 = EGG_GROUP_MINERAL, + .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_MINERAL }, .abilities = {ABILITY_SOUNDPROOF, ABILITY_STATIC}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_RED, @@ -3278,8 +3074,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 40, .baseSpAttack = 60, .baseSpDefense = 45, - .type1 = TYPE_GRASS, - .type2 = TYPE_PSYCHIC, + .types = { TYPE_GRASS, TYPE_PSYCHIC }, .catchRate = 90, .expYield = 98, .evYield_HP = 0, @@ -3294,8 +3089,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 20, .friendship = 70, .growthRate = GROWTH_SLOW, - .eggGroup1 = EGG_GROUP_GRASS, - .eggGroup2 = EGG_GROUP_GRASS, + .eggGroups = { EGG_GROUP_GRASS, EGG_GROUP_GRASS }, .abilities = {ABILITY_CHLOROPHYLL, ABILITY_NONE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_PINK, @@ -3310,8 +3104,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 55, .baseSpAttack = 125, .baseSpDefense = 65, - .type1 = TYPE_GRASS, - .type2 = TYPE_PSYCHIC, + .types = { TYPE_GRASS, TYPE_PSYCHIC }, .catchRate = 45, .expYield = 212, .evYield_HP = 0, @@ -3326,8 +3119,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 20, .friendship = 70, .growthRate = GROWTH_SLOW, - .eggGroup1 = EGG_GROUP_GRASS, - .eggGroup2 = EGG_GROUP_GRASS, + .eggGroups = { EGG_GROUP_GRASS, EGG_GROUP_GRASS }, .abilities = {ABILITY_CHLOROPHYLL, ABILITY_NONE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_YELLOW, @@ -3342,8 +3134,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 35, .baseSpAttack = 40, .baseSpDefense = 50, - .type1 = TYPE_GROUND, - .type2 = TYPE_GROUND, + .types = { TYPE_GROUND, TYPE_GROUND }, .catchRate = 190, .expYield = 87, .evYield_HP = 0, @@ -3358,8 +3149,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 20, .friendship = 70, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroup1 = EGG_GROUP_MONSTER, - .eggGroup2 = EGG_GROUP_MONSTER, + .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_MONSTER }, .abilities = {ABILITY_ROCK_HEAD, ABILITY_LIGHTNING_ROD}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_BROWN, @@ -3374,8 +3164,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 45, .baseSpAttack = 50, .baseSpDefense = 80, - .type1 = TYPE_GROUND, - .type2 = TYPE_GROUND, + .types = { TYPE_GROUND, TYPE_GROUND }, .catchRate = 75, .expYield = 124, .evYield_HP = 0, @@ -3390,8 +3179,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 20, .friendship = 70, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroup1 = EGG_GROUP_MONSTER, - .eggGroup2 = EGG_GROUP_MONSTER, + .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_MONSTER }, .abilities = {ABILITY_ROCK_HEAD, ABILITY_LIGHTNING_ROD}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_BROWN, @@ -3406,8 +3194,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 87, .baseSpAttack = 35, .baseSpDefense = 110, - .type1 = TYPE_FIGHTING, - .type2 = TYPE_FIGHTING, + .types = { TYPE_FIGHTING, TYPE_FIGHTING }, .catchRate = 45, .expYield = 139, .evYield_HP = 0, @@ -3422,8 +3209,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 25, .friendship = 70, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroup1 = EGG_GROUP_HUMAN_LIKE, - .eggGroup2 = EGG_GROUP_HUMAN_LIKE, + .eggGroups = { EGG_GROUP_HUMAN_LIKE, EGG_GROUP_HUMAN_LIKE }, .abilities = {ABILITY_LIMBER, ABILITY_NONE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_BROWN, @@ -3438,8 +3224,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 76, .baseSpAttack = 35, .baseSpDefense = 110, - .type1 = TYPE_FIGHTING, - .type2 = TYPE_FIGHTING, + .types = { TYPE_FIGHTING, TYPE_FIGHTING }, .catchRate = 45, .expYield = 140, .evYield_HP = 0, @@ -3454,8 +3239,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 25, .friendship = 70, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroup1 = EGG_GROUP_HUMAN_LIKE, - .eggGroup2 = EGG_GROUP_HUMAN_LIKE, + .eggGroups = { EGG_GROUP_HUMAN_LIKE, EGG_GROUP_HUMAN_LIKE }, .abilities = {ABILITY_KEEN_EYE, ABILITY_NONE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_BROWN, @@ -3470,8 +3254,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 30, .baseSpAttack = 60, .baseSpDefense = 75, - .type1 = TYPE_NORMAL, - .type2 = TYPE_NORMAL, + .types = { TYPE_NORMAL, TYPE_NORMAL }, .catchRate = 45, .expYield = 127, .evYield_HP = 2, @@ -3486,8 +3269,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 20, .friendship = 70, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroup1 = EGG_GROUP_MONSTER, - .eggGroup2 = EGG_GROUP_MONSTER, + .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_MONSTER }, .abilities = {ABILITY_OWN_TEMPO, ABILITY_OBLIVIOUS}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_PINK, @@ -3502,8 +3284,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 35, .baseSpAttack = 60, .baseSpDefense = 45, - .type1 = TYPE_POISON, - .type2 = TYPE_POISON, + .types = { TYPE_POISON, TYPE_POISON }, .catchRate = 190, .expYield = 114, .evYield_HP = 0, @@ -3518,8 +3299,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 20, .friendship = 70, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroup1 = EGG_GROUP_AMORPHOUS, - .eggGroup2 = EGG_GROUP_AMORPHOUS, + .eggGroups = { EGG_GROUP_AMORPHOUS, EGG_GROUP_AMORPHOUS }, .abilities = {ABILITY_LEVITATE, ABILITY_NONE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_PURPLE, @@ -3534,8 +3314,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 60, .baseSpAttack = 85, .baseSpDefense = 70, - .type1 = TYPE_POISON, - .type2 = TYPE_POISON, + .types = { TYPE_POISON, TYPE_POISON }, .catchRate = 60, .expYield = 173, .evYield_HP = 0, @@ -3550,8 +3329,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 20, .friendship = 70, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroup1 = EGG_GROUP_AMORPHOUS, - .eggGroup2 = EGG_GROUP_AMORPHOUS, + .eggGroups = { EGG_GROUP_AMORPHOUS, EGG_GROUP_AMORPHOUS }, .abilities = {ABILITY_LEVITATE, ABILITY_NONE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_PURPLE, @@ -3566,8 +3344,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 25, .baseSpAttack = 30, .baseSpDefense = 30, - .type1 = TYPE_GROUND, - .type2 = TYPE_ROCK, + .types = { TYPE_GROUND, TYPE_ROCK }, .catchRate = 120, .expYield = 135, .evYield_HP = 0, @@ -3582,8 +3359,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 20, .friendship = 70, .growthRate = GROWTH_SLOW, - .eggGroup1 = EGG_GROUP_MONSTER, - .eggGroup2 = EGG_GROUP_FIELD, + .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_FIELD }, .abilities = {ABILITY_LIGHTNING_ROD, ABILITY_ROCK_HEAD}, .safariZoneFleeRate = 4, .bodyColor = BODY_COLOR_GRAY, @@ -3598,8 +3374,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 40, .baseSpAttack = 45, .baseSpDefense = 45, - .type1 = TYPE_GROUND, - .type2 = TYPE_ROCK, + .types = { TYPE_GROUND, TYPE_ROCK }, .catchRate = 60, .expYield = 204, .evYield_HP = 0, @@ -3614,8 +3389,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 20, .friendship = 70, .growthRate = GROWTH_SLOW, - .eggGroup1 = EGG_GROUP_MONSTER, - .eggGroup2 = EGG_GROUP_FIELD, + .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_FIELD }, .abilities = {ABILITY_LIGHTNING_ROD, ABILITY_ROCK_HEAD}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_GRAY, @@ -3630,8 +3404,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 50, .baseSpAttack = 35, .baseSpDefense = 105, - .type1 = TYPE_NORMAL, - .type2 = TYPE_NORMAL, + .types = { TYPE_NORMAL, TYPE_NORMAL }, .catchRate = 30, .expYield = 255, .evYield_HP = 2, @@ -3646,8 +3419,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 40, .friendship = 140, .growthRate = GROWTH_FAST, - .eggGroup1 = EGG_GROUP_FAIRY, - .eggGroup2 = EGG_GROUP_FAIRY, + .eggGroups = { EGG_GROUP_FAIRY, EGG_GROUP_FAIRY }, .abilities = {ABILITY_NATURAL_CURE, ABILITY_SERENE_GRACE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_PINK, @@ -3662,8 +3434,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 60, .baseSpAttack = 100, .baseSpDefense = 40, - .type1 = TYPE_GRASS, - .type2 = TYPE_GRASS, + .types = { TYPE_GRASS, TYPE_GRASS }, .catchRate = 45, .expYield = 166, .evYield_HP = 0, @@ -3678,8 +3449,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 20, .friendship = 70, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroup1 = EGG_GROUP_GRASS, - .eggGroup2 = EGG_GROUP_GRASS, + .eggGroups = { EGG_GROUP_GRASS, EGG_GROUP_GRASS }, .abilities = {ABILITY_CHLOROPHYLL, ABILITY_NONE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_BLUE, @@ -3694,8 +3464,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 90, .baseSpAttack = 40, .baseSpDefense = 80, - .type1 = TYPE_NORMAL, - .type2 = TYPE_NORMAL, + .types = { TYPE_NORMAL, TYPE_NORMAL }, .catchRate = 45, .expYield = 175, .evYield_HP = 2, @@ -3710,8 +3479,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 20, .friendship = 70, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroup1 = EGG_GROUP_MONSTER, - .eggGroup2 = EGG_GROUP_MONSTER, + .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_MONSTER }, .abilities = {ABILITY_EARLY_BIRD, ABILITY_NONE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_BROWN, @@ -3726,8 +3494,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 60, .baseSpAttack = 70, .baseSpDefense = 25, - .type1 = TYPE_WATER, - .type2 = TYPE_WATER, + .types = { TYPE_WATER, TYPE_WATER }, .catchRate = 225, .expYield = 83, .evYield_HP = 0, @@ -3742,8 +3509,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 20, .friendship = 70, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroup1 = EGG_GROUP_WATER_1, - .eggGroup2 = EGG_GROUP_DRAGON, + .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_DRAGON }, .abilities = {ABILITY_SWIFT_SWIM, ABILITY_NONE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_BLUE, @@ -3758,8 +3524,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 85, .baseSpAttack = 95, .baseSpDefense = 45, - .type1 = TYPE_WATER, - .type2 = TYPE_WATER, + .types = { TYPE_WATER, TYPE_WATER }, .catchRate = 75, .expYield = 155, .evYield_HP = 0, @@ -3774,8 +3539,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 20, .friendship = 70, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroup1 = EGG_GROUP_WATER_1, - .eggGroup2 = EGG_GROUP_DRAGON, + .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_DRAGON }, .abilities = {ABILITY_POISON_POINT, ABILITY_NONE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_BLUE, @@ -3790,8 +3554,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 63, .baseSpAttack = 35, .baseSpDefense = 50, - .type1 = TYPE_WATER, - .type2 = TYPE_WATER, + .types = { TYPE_WATER, TYPE_WATER }, .catchRate = 225, .expYield = 111, .evYield_HP = 0, @@ -3806,8 +3569,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 20, .friendship = 70, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroup1 = EGG_GROUP_WATER_2, - .eggGroup2 = EGG_GROUP_WATER_2, + .eggGroups = { EGG_GROUP_WATER_2, EGG_GROUP_WATER_2 }, .abilities = {ABILITY_SWIFT_SWIM, ABILITY_WATER_VEIL}, .safariZoneFleeRate = 4, .bodyColor = BODY_COLOR_RED, @@ -3822,8 +3584,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 68, .baseSpAttack = 65, .baseSpDefense = 80, - .type1 = TYPE_WATER, - .type2 = TYPE_WATER, + .types = { TYPE_WATER, TYPE_WATER }, .catchRate = 60, .expYield = 170, .evYield_HP = 0, @@ -3838,8 +3599,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 20, .friendship = 70, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroup1 = EGG_GROUP_WATER_2, - .eggGroup2 = EGG_GROUP_WATER_2, + .eggGroups = { EGG_GROUP_WATER_2, EGG_GROUP_WATER_2 }, .abilities = {ABILITY_SWIFT_SWIM, ABILITY_WATER_VEIL}, .safariZoneFleeRate = 6, .bodyColor = BODY_COLOR_RED, @@ -3854,8 +3614,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 85, .baseSpAttack = 70, .baseSpDefense = 55, - .type1 = TYPE_WATER, - .type2 = TYPE_WATER, + .types = { TYPE_WATER, TYPE_WATER }, .catchRate = 225, .expYield = 106, .evYield_HP = 0, @@ -3870,8 +3629,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 20, .friendship = 70, .growthRate = GROWTH_SLOW, - .eggGroup1 = EGG_GROUP_WATER_3, - .eggGroup2 = EGG_GROUP_WATER_3, + .eggGroups = { EGG_GROUP_WATER_3, EGG_GROUP_WATER_3 }, .abilities = {ABILITY_ILLUMINATE, ABILITY_NATURAL_CURE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_BROWN, @@ -3886,8 +3644,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 115, .baseSpAttack = 100, .baseSpDefense = 85, - .type1 = TYPE_WATER, - .type2 = TYPE_PSYCHIC, + .types = { TYPE_WATER, TYPE_PSYCHIC }, .catchRate = 60, .expYield = 207, .evYield_HP = 0, @@ -3902,8 +3659,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 20, .friendship = 70, .growthRate = GROWTH_SLOW, - .eggGroup1 = EGG_GROUP_WATER_3, - .eggGroup2 = EGG_GROUP_WATER_3, + .eggGroups = { EGG_GROUP_WATER_3, EGG_GROUP_WATER_3 }, .abilities = {ABILITY_ILLUMINATE, ABILITY_NATURAL_CURE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_PURPLE, @@ -3918,8 +3674,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 90, .baseSpAttack = 100, .baseSpDefense = 120, - .type1 = TYPE_PSYCHIC, - .type2 = TYPE_PSYCHIC, + .types = { TYPE_PSYCHIC, TYPE_PSYCHIC }, .catchRate = 45, .expYield = 136, .evYield_HP = 0, @@ -3934,8 +3689,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 25, .friendship = 70, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroup1 = EGG_GROUP_HUMAN_LIKE, - .eggGroup2 = EGG_GROUP_HUMAN_LIKE, + .eggGroups = { EGG_GROUP_HUMAN_LIKE, EGG_GROUP_HUMAN_LIKE }, .abilities = {ABILITY_SOUNDPROOF, ABILITY_NONE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_PINK, @@ -3950,8 +3704,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 105, .baseSpAttack = 55, .baseSpDefense = 80, - .type1 = TYPE_BUG, - .type2 = TYPE_FLYING, + .types = { TYPE_BUG, TYPE_FLYING }, .catchRate = 45, .expYield = 187, .evYield_HP = 0, @@ -3966,8 +3719,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 25, .friendship = 70, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroup1 = EGG_GROUP_BUG, - .eggGroup2 = EGG_GROUP_BUG, + .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG }, .abilities = {ABILITY_SWARM, ABILITY_NONE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_GREEN, @@ -3982,8 +3734,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 95, .baseSpAttack = 115, .baseSpDefense = 95, - .type1 = TYPE_ICE, - .type2 = TYPE_PSYCHIC, + .types = { TYPE_ICE, TYPE_PSYCHIC }, .catchRate = 45, .expYield = 137, .evYield_HP = 0, @@ -3998,8 +3749,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 25, .friendship = 70, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroup1 = EGG_GROUP_HUMAN_LIKE, - .eggGroup2 = EGG_GROUP_HUMAN_LIKE, + .eggGroups = { EGG_GROUP_HUMAN_LIKE, EGG_GROUP_HUMAN_LIKE }, .abilities = {ABILITY_OBLIVIOUS, ABILITY_NONE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_RED, @@ -4014,8 +3764,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 105, .baseSpAttack = 95, .baseSpDefense = 85, - .type1 = TYPE_ELECTRIC, - .type2 = TYPE_ELECTRIC, + .types = { TYPE_ELECTRIC, TYPE_ELECTRIC }, .catchRate = 45, .expYield = 156, .evYield_HP = 0, @@ -4030,8 +3779,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 25, .friendship = 70, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroup1 = EGG_GROUP_HUMAN_LIKE, - .eggGroup2 = EGG_GROUP_HUMAN_LIKE, + .eggGroups = { EGG_GROUP_HUMAN_LIKE, EGG_GROUP_HUMAN_LIKE }, .abilities = {ABILITY_STATIC, ABILITY_NONE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_YELLOW, @@ -4046,8 +3794,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 93, .baseSpAttack = 100, .baseSpDefense = 85, - .type1 = TYPE_FIRE, - .type2 = TYPE_FIRE, + .types = { TYPE_FIRE, TYPE_FIRE }, .catchRate = 45, .expYield = 167, .evYield_HP = 0, @@ -4062,8 +3809,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 25, .friendship = 70, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroup1 = EGG_GROUP_HUMAN_LIKE, - .eggGroup2 = EGG_GROUP_HUMAN_LIKE, + .eggGroups = { EGG_GROUP_HUMAN_LIKE, EGG_GROUP_HUMAN_LIKE }, .abilities = {ABILITY_FLAME_BODY, ABILITY_NONE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_RED, @@ -4078,8 +3824,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 85, .baseSpAttack = 55, .baseSpDefense = 70, - .type1 = TYPE_BUG, - .type2 = TYPE_BUG, + .types = { TYPE_BUG, TYPE_BUG }, .catchRate = 45, .expYield = 200, .evYield_HP = 0, @@ -4094,8 +3839,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 25, .friendship = 70, .growthRate = GROWTH_SLOW, - .eggGroup1 = EGG_GROUP_BUG, - .eggGroup2 = EGG_GROUP_BUG, + .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG }, .abilities = {ABILITY_HYPER_CUTTER, ABILITY_NONE}, .safariZoneFleeRate = 8, .bodyColor = BODY_COLOR_BROWN, @@ -4110,8 +3854,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 110, .baseSpAttack = 40, .baseSpDefense = 70, - .type1 = TYPE_NORMAL, - .type2 = TYPE_NORMAL, + .types = { TYPE_NORMAL, TYPE_NORMAL }, .catchRate = 45, .expYield = 211, .evYield_HP = 0, @@ -4126,8 +3869,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 20, .friendship = 70, .growthRate = GROWTH_SLOW, - .eggGroup1 = EGG_GROUP_FIELD, - .eggGroup2 = EGG_GROUP_FIELD, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, .abilities = {ABILITY_INTIMIDATE, ABILITY_NONE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_BROWN, @@ -4142,8 +3884,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 80, .baseSpAttack = 15, .baseSpDefense = 20, - .type1 = TYPE_WATER, - .type2 = TYPE_WATER, + .types = { TYPE_WATER, TYPE_WATER }, .catchRate = 255, .expYield = 20, .evYield_HP = 0, @@ -4158,8 +3899,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 5, .friendship = 70, .growthRate = GROWTH_SLOW, - .eggGroup1 = EGG_GROUP_WATER_2, - .eggGroup2 = EGG_GROUP_DRAGON, + .eggGroups = { EGG_GROUP_WATER_2, EGG_GROUP_DRAGON }, .abilities = {ABILITY_SWIFT_SWIM, ABILITY_NONE}, .safariZoneFleeRate = 4, .bodyColor = BODY_COLOR_RED, @@ -4174,8 +3914,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 81, .baseSpAttack = 60, .baseSpDefense = 100, - .type1 = TYPE_WATER, - .type2 = TYPE_FLYING, + .types = { TYPE_WATER, TYPE_FLYING }, .catchRate = 45, .expYield = 214, .evYield_HP = 0, @@ -4190,8 +3929,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 5, .friendship = 70, .growthRate = GROWTH_SLOW, - .eggGroup1 = EGG_GROUP_WATER_2, - .eggGroup2 = EGG_GROUP_DRAGON, + .eggGroups = { EGG_GROUP_WATER_2, EGG_GROUP_DRAGON }, .abilities = {ABILITY_INTIMIDATE, ABILITY_NONE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_BLUE, @@ -4206,8 +3944,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 60, .baseSpAttack = 85, .baseSpDefense = 95, - .type1 = TYPE_WATER, - .type2 = TYPE_ICE, + .types = { TYPE_WATER, TYPE_ICE }, .catchRate = 45, .expYield = 219, .evYield_HP = 2, @@ -4222,8 +3959,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 40, .friendship = 70, .growthRate = GROWTH_SLOW, - .eggGroup1 = EGG_GROUP_MONSTER, - .eggGroup2 = EGG_GROUP_WATER_1, + .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_WATER_1 }, .abilities = {ABILITY_WATER_ABSORB, ABILITY_SHELL_ARMOR}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_BLUE, @@ -4238,8 +3974,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 48, .baseSpAttack = 48, .baseSpDefense = 48, - .type1 = TYPE_NORMAL, - .type2 = TYPE_NORMAL, + .types = { TYPE_NORMAL, TYPE_NORMAL }, .catchRate = 35, .expYield = 61, .evYield_HP = 1, @@ -4254,8 +3989,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 20, .friendship = 70, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroup1 = EGG_GROUP_DITTO, - .eggGroup2 = EGG_GROUP_DITTO, + .eggGroups = { EGG_GROUP_DITTO, EGG_GROUP_DITTO }, .abilities = {ABILITY_LIMBER, ABILITY_NONE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_PURPLE, @@ -4270,8 +4004,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 55, .baseSpAttack = 45, .baseSpDefense = 65, - .type1 = TYPE_NORMAL, - .type2 = TYPE_NORMAL, + .types = { TYPE_NORMAL, TYPE_NORMAL }, .catchRate = 45, .expYield = 92, .evYield_HP = 0, @@ -4286,8 +4019,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 35, .friendship = 70, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroup1 = EGG_GROUP_FIELD, - .eggGroup2 = EGG_GROUP_FIELD, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, .abilities = {ABILITY_RUN_AWAY, ABILITY_NONE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_BROWN, @@ -4302,8 +4034,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 65, .baseSpAttack = 110, .baseSpDefense = 95, - .type1 = TYPE_WATER, - .type2 = TYPE_WATER, + .types = { TYPE_WATER, TYPE_WATER }, .catchRate = 45, .expYield = 196, .evYield_HP = 2, @@ -4318,8 +4049,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 35, .friendship = 70, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroup1 = EGG_GROUP_FIELD, - .eggGroup2 = EGG_GROUP_FIELD, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, .abilities = {ABILITY_WATER_ABSORB, ABILITY_NONE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_BLUE, @@ -4334,8 +4064,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 130, .baseSpAttack = 110, .baseSpDefense = 95, - .type1 = TYPE_ELECTRIC, - .type2 = TYPE_ELECTRIC, + .types = { TYPE_ELECTRIC, TYPE_ELECTRIC }, .catchRate = 45, .expYield = 197, .evYield_HP = 0, @@ -4350,8 +4079,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 35, .friendship = 70, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroup1 = EGG_GROUP_FIELD, - .eggGroup2 = EGG_GROUP_FIELD, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, .abilities = {ABILITY_VOLT_ABSORB, ABILITY_NONE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_YELLOW, @@ -4366,8 +4094,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 65, .baseSpAttack = 95, .baseSpDefense = 110, - .type1 = TYPE_FIRE, - .type2 = TYPE_FIRE, + .types = { TYPE_FIRE, TYPE_FIRE }, .catchRate = 45, .expYield = 198, .evYield_HP = 0, @@ -4382,8 +4109,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 35, .friendship = 70, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroup1 = EGG_GROUP_FIELD, - .eggGroup2 = EGG_GROUP_FIELD, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, .abilities = {ABILITY_FLASH_FIRE, ABILITY_NONE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_RED, @@ -4398,8 +4124,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 40, .baseSpAttack = 85, .baseSpDefense = 75, - .type1 = TYPE_NORMAL, - .type2 = TYPE_NORMAL, + .types = { TYPE_NORMAL, TYPE_NORMAL }, .catchRate = 45, .expYield = 130, .evYield_HP = 0, @@ -4414,8 +4139,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 20, .friendship = 70, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroup1 = EGG_GROUP_MINERAL, - .eggGroup2 = EGG_GROUP_MINERAL, + .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_MINERAL }, .abilities = {ABILITY_TRACE, ABILITY_NONE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_PINK, @@ -4430,8 +4154,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 35, .baseSpAttack = 90, .baseSpDefense = 55, - .type1 = TYPE_ROCK, - .type2 = TYPE_WATER, + .types = { TYPE_ROCK, TYPE_WATER }, .catchRate = 45, .expYield = 120, .evYield_HP = 0, @@ -4446,8 +4169,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 30, .friendship = 70, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroup1 = EGG_GROUP_WATER_1, - .eggGroup2 = EGG_GROUP_WATER_3, + .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_WATER_3 }, .abilities = {ABILITY_SWIFT_SWIM, ABILITY_SHELL_ARMOR}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_BLUE, @@ -4462,8 +4184,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 55, .baseSpAttack = 115, .baseSpDefense = 70, - .type1 = TYPE_ROCK, - .type2 = TYPE_WATER, + .types = { TYPE_ROCK, TYPE_WATER }, .catchRate = 45, .expYield = 199, .evYield_HP = 0, @@ -4478,8 +4199,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 30, .friendship = 70, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroup1 = EGG_GROUP_WATER_1, - .eggGroup2 = EGG_GROUP_WATER_3, + .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_WATER_3 }, .abilities = {ABILITY_SWIFT_SWIM, ABILITY_SHELL_ARMOR}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_BLUE, @@ -4494,8 +4214,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 55, .baseSpAttack = 55, .baseSpDefense = 45, - .type1 = TYPE_ROCK, - .type2 = TYPE_WATER, + .types = { TYPE_ROCK, TYPE_WATER }, .catchRate = 45, .expYield = 119, .evYield_HP = 0, @@ -4510,8 +4229,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 30, .friendship = 70, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroup1 = EGG_GROUP_WATER_1, - .eggGroup2 = EGG_GROUP_WATER_3, + .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_WATER_3 }, .abilities = {ABILITY_SWIFT_SWIM, ABILITY_BATTLE_ARMOR}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_BROWN, @@ -4526,8 +4244,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 80, .baseSpAttack = 65, .baseSpDefense = 70, - .type1 = TYPE_ROCK, - .type2 = TYPE_WATER, + .types = { TYPE_ROCK, TYPE_WATER }, .catchRate = 45, .expYield = 201, .evYield_HP = 0, @@ -4542,8 +4259,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 30, .friendship = 70, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroup1 = EGG_GROUP_WATER_1, - .eggGroup2 = EGG_GROUP_WATER_3, + .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_WATER_3 }, .abilities = {ABILITY_SWIFT_SWIM, ABILITY_BATTLE_ARMOR}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_BROWN, @@ -4558,8 +4274,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 130, .baseSpAttack = 60, .baseSpDefense = 75, - .type1 = TYPE_ROCK, - .type2 = TYPE_FLYING, + .types = { TYPE_ROCK, TYPE_FLYING }, .catchRate = 45, .expYield = 202, .evYield_HP = 0, @@ -4574,8 +4289,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 35, .friendship = 70, .growthRate = GROWTH_SLOW, - .eggGroup1 = EGG_GROUP_FLYING, - .eggGroup2 = EGG_GROUP_FLYING, + .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FLYING }, .abilities = {ABILITY_ROCK_HEAD, ABILITY_PRESSURE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_PURPLE, @@ -4590,8 +4304,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 30, .baseSpAttack = 65, .baseSpDefense = 110, - .type1 = TYPE_NORMAL, - .type2 = TYPE_NORMAL, + .types = { TYPE_NORMAL, TYPE_NORMAL }, .catchRate = 25, .expYield = 154, .evYield_HP = 2, @@ -4606,8 +4319,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 40, .friendship = 70, .growthRate = GROWTH_SLOW, - .eggGroup1 = EGG_GROUP_MONSTER, - .eggGroup2 = EGG_GROUP_MONSTER, + .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_MONSTER }, .abilities = {ABILITY_IMMUNITY, ABILITY_THICK_FAT}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_BLACK, @@ -4622,8 +4334,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 85, .baseSpAttack = 95, .baseSpDefense = 125, - .type1 = TYPE_ICE, - .type2 = TYPE_FLYING, + .types = { TYPE_ICE, TYPE_FLYING }, .catchRate = 3, .expYield = 215, .evYield_HP = 0, @@ -4638,8 +4349,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 80, .friendship = 35, .growthRate = GROWTH_SLOW, - .eggGroup1 = EGG_GROUP_UNDISCOVERED, - .eggGroup2 = EGG_GROUP_UNDISCOVERED, + .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED }, .abilities = {ABILITY_PRESSURE, ABILITY_NONE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_BLUE, @@ -4654,8 +4364,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 100, .baseSpAttack = 125, .baseSpDefense = 90, - .type1 = TYPE_ELECTRIC, - .type2 = TYPE_FLYING, + .types = { TYPE_ELECTRIC, TYPE_FLYING }, .catchRate = 3, .expYield = 216, .evYield_HP = 0, @@ -4670,8 +4379,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 80, .friendship = 35, .growthRate = GROWTH_SLOW, - .eggGroup1 = EGG_GROUP_UNDISCOVERED, - .eggGroup2 = EGG_GROUP_UNDISCOVERED, + .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED }, .abilities = {ABILITY_PRESSURE, ABILITY_NONE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_YELLOW, @@ -4686,8 +4394,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 90, .baseSpAttack = 125, .baseSpDefense = 85, - .type1 = TYPE_FIRE, - .type2 = TYPE_FLYING, + .types = { TYPE_FIRE, TYPE_FLYING }, .catchRate = 3, .expYield = 217, .evYield_HP = 0, @@ -4702,8 +4409,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 80, .friendship = 35, .growthRate = GROWTH_SLOW, - .eggGroup1 = EGG_GROUP_UNDISCOVERED, - .eggGroup2 = EGG_GROUP_UNDISCOVERED, + .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED }, .abilities = {ABILITY_PRESSURE, ABILITY_NONE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_YELLOW, @@ -4718,8 +4424,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 50, .baseSpAttack = 50, .baseSpDefense = 50, - .type1 = TYPE_DRAGON, - .type2 = TYPE_DRAGON, + .types = { TYPE_DRAGON, TYPE_DRAGON }, .catchRate = 45, .expYield = 67, .evYield_HP = 0, @@ -4734,8 +4439,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 40, .friendship = 35, .growthRate = GROWTH_SLOW, - .eggGroup1 = EGG_GROUP_WATER_1, - .eggGroup2 = EGG_GROUP_DRAGON, + .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_DRAGON }, .abilities = {ABILITY_SHED_SKIN, ABILITY_NONE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_BLUE, @@ -4750,8 +4454,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 70, .baseSpAttack = 70, .baseSpDefense = 70, - .type1 = TYPE_DRAGON, - .type2 = TYPE_DRAGON, + .types = { TYPE_DRAGON, TYPE_DRAGON }, .catchRate = 45, .expYield = 144, .evYield_HP = 0, @@ -4766,8 +4469,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 40, .friendship = 35, .growthRate = GROWTH_SLOW, - .eggGroup1 = EGG_GROUP_WATER_1, - .eggGroup2 = EGG_GROUP_DRAGON, + .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_DRAGON }, .abilities = {ABILITY_SHED_SKIN, ABILITY_NONE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_BLUE, @@ -4782,8 +4484,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 80, .baseSpAttack = 100, .baseSpDefense = 100, - .type1 = TYPE_DRAGON, - .type2 = TYPE_FLYING, + .types = { TYPE_DRAGON, TYPE_FLYING }, .catchRate = 45, .expYield = 218, .evYield_HP = 0, @@ -4798,8 +4499,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 40, .friendship = 35, .growthRate = GROWTH_SLOW, - .eggGroup1 = EGG_GROUP_WATER_1, - .eggGroup2 = EGG_GROUP_DRAGON, + .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_DRAGON }, .abilities = {ABILITY_INNER_FOCUS, ABILITY_NONE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_BROWN, @@ -4814,8 +4514,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 130, .baseSpAttack = 154, .baseSpDefense = 90, - .type1 = TYPE_PSYCHIC, - .type2 = TYPE_PSYCHIC, + .types = { TYPE_PSYCHIC, TYPE_PSYCHIC }, .catchRate = 3, .expYield = 220, .evYield_HP = 0, @@ -4830,8 +4529,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 120, .friendship = 0, .growthRate = GROWTH_SLOW, - .eggGroup1 = EGG_GROUP_UNDISCOVERED, - .eggGroup2 = EGG_GROUP_UNDISCOVERED, + .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED }, .abilities = {ABILITY_PRESSURE, ABILITY_NONE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_PURPLE, @@ -4846,8 +4544,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 100, .baseSpAttack = 100, .baseSpDefense = 100, - .type1 = TYPE_PSYCHIC, - .type2 = TYPE_PSYCHIC, + .types = { TYPE_PSYCHIC, TYPE_PSYCHIC }, .catchRate = 45, .expYield = 64, .evYield_HP = 3, @@ -4862,8 +4559,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 120, .friendship = 100, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroup1 = EGG_GROUP_UNDISCOVERED, - .eggGroup2 = EGG_GROUP_UNDISCOVERED, + .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED }, .abilities = {ABILITY_SYNCHRONIZE, ABILITY_NONE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_PINK, @@ -4878,8 +4574,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 45, .baseSpAttack = 49, .baseSpDefense = 65, - .type1 = TYPE_GRASS, - .type2 = TYPE_GRASS, + .types = { TYPE_GRASS, TYPE_GRASS }, .catchRate = 45, .expYield = 64, .evYield_HP = 0, @@ -4894,8 +4589,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 20, .friendship = 70, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroup1 = EGG_GROUP_MONSTER, - .eggGroup2 = EGG_GROUP_GRASS, + .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_GRASS }, .abilities = {ABILITY_OVERGROW, ABILITY_NONE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_GREEN, @@ -4910,8 +4604,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 60, .baseSpAttack = 63, .baseSpDefense = 80, - .type1 = TYPE_GRASS, - .type2 = TYPE_GRASS, + .types = { TYPE_GRASS, TYPE_GRASS }, .catchRate = 45, .expYield = 141, .evYield_HP = 0, @@ -4926,8 +4619,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 20, .friendship = 70, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroup1 = EGG_GROUP_MONSTER, - .eggGroup2 = EGG_GROUP_GRASS, + .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_GRASS }, .abilities = {ABILITY_OVERGROW, ABILITY_NONE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_GREEN, @@ -4942,8 +4634,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 80, .baseSpAttack = 83, .baseSpDefense = 100, - .type1 = TYPE_GRASS, - .type2 = TYPE_GRASS, + .types = { TYPE_GRASS, TYPE_GRASS }, .catchRate = 45, .expYield = 208, .evYield_HP = 0, @@ -4958,8 +4649,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 20, .friendship = 70, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroup1 = EGG_GROUP_MONSTER, - .eggGroup2 = EGG_GROUP_GRASS, + .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_GRASS }, .abilities = {ABILITY_OVERGROW, ABILITY_NONE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_GREEN, @@ -4974,8 +4664,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 65, .baseSpAttack = 60, .baseSpDefense = 50, - .type1 = TYPE_FIRE, - .type2 = TYPE_FIRE, + .types = { TYPE_FIRE, TYPE_FIRE }, .catchRate = 45, .expYield = 65, .evYield_HP = 0, @@ -4990,8 +4679,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 20, .friendship = 70, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroup1 = EGG_GROUP_FIELD, - .eggGroup2 = EGG_GROUP_FIELD, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, .abilities = {ABILITY_BLAZE, ABILITY_NONE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_YELLOW, @@ -5006,8 +4694,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 80, .baseSpAttack = 80, .baseSpDefense = 65, - .type1 = TYPE_FIRE, - .type2 = TYPE_FIRE, + .types = { TYPE_FIRE, TYPE_FIRE }, .catchRate = 45, .expYield = 142, .evYield_HP = 0, @@ -5022,8 +4709,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 20, .friendship = 70, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroup1 = EGG_GROUP_FIELD, - .eggGroup2 = EGG_GROUP_FIELD, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, .abilities = {ABILITY_BLAZE, ABILITY_NONE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_YELLOW, @@ -5038,8 +4724,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 100, .baseSpAttack = 109, .baseSpDefense = 85, - .type1 = TYPE_FIRE, - .type2 = TYPE_FIRE, + .types = { TYPE_FIRE, TYPE_FIRE }, .catchRate = 45, .expYield = 209, .evYield_HP = 0, @@ -5054,8 +4739,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 20, .friendship = 70, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroup1 = EGG_GROUP_FIELD, - .eggGroup2 = EGG_GROUP_FIELD, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, .abilities = {ABILITY_BLAZE, ABILITY_NONE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_YELLOW, @@ -5070,8 +4754,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 43, .baseSpAttack = 44, .baseSpDefense = 48, - .type1 = TYPE_WATER, - .type2 = TYPE_WATER, + .types = { TYPE_WATER, TYPE_WATER }, .catchRate = 45, .expYield = 66, .evYield_HP = 0, @@ -5086,8 +4769,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 20, .friendship = 70, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroup1 = EGG_GROUP_MONSTER, - .eggGroup2 = EGG_GROUP_WATER_1, + .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_WATER_1 }, .abilities = {ABILITY_TORRENT, ABILITY_NONE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_BLUE, @@ -5102,8 +4784,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 58, .baseSpAttack = 59, .baseSpDefense = 63, - .type1 = TYPE_WATER, - .type2 = TYPE_WATER, + .types = { TYPE_WATER, TYPE_WATER }, .catchRate = 45, .expYield = 143, .evYield_HP = 0, @@ -5118,8 +4799,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 20, .friendship = 70, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroup1 = EGG_GROUP_MONSTER, - .eggGroup2 = EGG_GROUP_WATER_1, + .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_WATER_1 }, .abilities = {ABILITY_TORRENT, ABILITY_NONE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_BLUE, @@ -5134,8 +4814,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 78, .baseSpAttack = 79, .baseSpDefense = 83, - .type1 = TYPE_WATER, - .type2 = TYPE_WATER, + .types = { TYPE_WATER, TYPE_WATER }, .catchRate = 45, .expYield = 210, .evYield_HP = 0, @@ -5150,8 +4829,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 20, .friendship = 70, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroup1 = EGG_GROUP_MONSTER, - .eggGroup2 = EGG_GROUP_WATER_1, + .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_WATER_1 }, .abilities = {ABILITY_TORRENT, ABILITY_NONE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_BLUE, @@ -5166,8 +4844,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 20, .baseSpAttack = 35, .baseSpDefense = 45, - .type1 = TYPE_NORMAL, - .type2 = TYPE_NORMAL, + .types = { TYPE_NORMAL, TYPE_NORMAL }, .catchRate = 255, .expYield = 57, .evYield_HP = 0, @@ -5182,8 +4859,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 15, .friendship = 70, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroup1 = EGG_GROUP_FIELD, - .eggGroup2 = EGG_GROUP_FIELD, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, .abilities = {ABILITY_RUN_AWAY, ABILITY_KEEN_EYE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_BROWN, @@ -5198,8 +4874,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 90, .baseSpAttack = 45, .baseSpDefense = 55, - .type1 = TYPE_NORMAL, - .type2 = TYPE_NORMAL, + .types = { TYPE_NORMAL, TYPE_NORMAL }, .catchRate = 90, .expYield = 116, .evYield_HP = 0, @@ -5214,8 +4889,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 15, .friendship = 70, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroup1 = EGG_GROUP_FIELD, - .eggGroup2 = EGG_GROUP_FIELD, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, .abilities = {ABILITY_RUN_AWAY, ABILITY_KEEN_EYE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_BROWN, @@ -5230,8 +4904,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 50, .baseSpAttack = 36, .baseSpDefense = 56, - .type1 = TYPE_NORMAL, - .type2 = TYPE_FLYING, + .types = { TYPE_NORMAL, TYPE_FLYING }, .catchRate = 255, .expYield = 58, .evYield_HP = 1, @@ -5246,8 +4919,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 15, .friendship = 70, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroup1 = EGG_GROUP_FLYING, - .eggGroup2 = EGG_GROUP_FLYING, + .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FLYING }, .abilities = {ABILITY_INSOMNIA, ABILITY_KEEN_EYE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_BROWN, @@ -5262,8 +4934,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 70, .baseSpAttack = 76, .baseSpDefense = 96, - .type1 = TYPE_NORMAL, - .type2 = TYPE_FLYING, + .types = { TYPE_NORMAL, TYPE_FLYING }, .catchRate = 90, .expYield = 162, .evYield_HP = 2, @@ -5278,8 +4949,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 15, .friendship = 70, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroup1 = EGG_GROUP_FLYING, - .eggGroup2 = EGG_GROUP_FLYING, + .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FLYING }, .abilities = {ABILITY_INSOMNIA, ABILITY_KEEN_EYE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_BROWN, @@ -5294,8 +4964,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 55, .baseSpAttack = 40, .baseSpDefense = 80, - .type1 = TYPE_BUG, - .type2 = TYPE_FLYING, + .types = { TYPE_BUG, TYPE_FLYING }, .catchRate = 255, .expYield = 54, .evYield_HP = 0, @@ -5310,8 +4979,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 15, .friendship = 70, .growthRate = GROWTH_FAST, - .eggGroup1 = EGG_GROUP_BUG, - .eggGroup2 = EGG_GROUP_BUG, + .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG }, .abilities = {ABILITY_SWARM, ABILITY_EARLY_BIRD}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_RED, @@ -5326,8 +4994,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 85, .baseSpAttack = 55, .baseSpDefense = 110, - .type1 = TYPE_BUG, - .type2 = TYPE_FLYING, + .types = { TYPE_BUG, TYPE_FLYING }, .catchRate = 90, .expYield = 134, .evYield_HP = 0, @@ -5342,8 +5009,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 15, .friendship = 70, .growthRate = GROWTH_FAST, - .eggGroup1 = EGG_GROUP_BUG, - .eggGroup2 = EGG_GROUP_BUG, + .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG }, .abilities = {ABILITY_SWARM, ABILITY_EARLY_BIRD}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_RED, @@ -5358,8 +5024,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 30, .baseSpAttack = 40, .baseSpDefense = 40, - .type1 = TYPE_BUG, - .type2 = TYPE_POISON, + .types = { TYPE_BUG, TYPE_POISON }, .catchRate = 255, .expYield = 54, .evYield_HP = 0, @@ -5374,8 +5039,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 15, .friendship = 70, .growthRate = GROWTH_FAST, - .eggGroup1 = EGG_GROUP_BUG, - .eggGroup2 = EGG_GROUP_BUG, + .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG }, .abilities = {ABILITY_SWARM, ABILITY_INSOMNIA}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_GREEN, @@ -5390,8 +5054,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 40, .baseSpAttack = 60, .baseSpDefense = 60, - .type1 = TYPE_BUG, - .type2 = TYPE_POISON, + .types = { TYPE_BUG, TYPE_POISON }, .catchRate = 90, .expYield = 134, .evYield_HP = 0, @@ -5406,8 +5069,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 15, .friendship = 70, .growthRate = GROWTH_FAST, - .eggGroup1 = EGG_GROUP_BUG, - .eggGroup2 = EGG_GROUP_BUG, + .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG }, .abilities = {ABILITY_SWARM, ABILITY_INSOMNIA}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_RED, @@ -5422,8 +5084,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 130, .baseSpAttack = 70, .baseSpDefense = 80, - .type1 = TYPE_POISON, - .type2 = TYPE_FLYING, + .types = { TYPE_POISON, TYPE_FLYING }, .catchRate = 90, .expYield = 204, .evYield_HP = 0, @@ -5438,8 +5099,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 15, .friendship = 70, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroup1 = EGG_GROUP_FLYING, - .eggGroup2 = EGG_GROUP_FLYING, + .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FLYING }, .abilities = {ABILITY_INNER_FOCUS, ABILITY_NONE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_PURPLE, @@ -5454,8 +5114,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 67, .baseSpAttack = 56, .baseSpDefense = 56, - .type1 = TYPE_WATER, - .type2 = TYPE_ELECTRIC, + .types = { TYPE_WATER, TYPE_ELECTRIC }, .catchRate = 190, .expYield = 90, .evYield_HP = 1, @@ -5470,8 +5129,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 20, .friendship = 70, .growthRate = GROWTH_SLOW, - .eggGroup1 = EGG_GROUP_WATER_2, - .eggGroup2 = EGG_GROUP_WATER_2, + .eggGroups = { EGG_GROUP_WATER_2, EGG_GROUP_WATER_2 }, .abilities = {ABILITY_VOLT_ABSORB, ABILITY_ILLUMINATE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_BLUE, @@ -5486,8 +5144,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 67, .baseSpAttack = 76, .baseSpDefense = 76, - .type1 = TYPE_WATER, - .type2 = TYPE_ELECTRIC, + .types = { TYPE_WATER, TYPE_ELECTRIC }, .catchRate = 75, .expYield = 156, .evYield_HP = 2, @@ -5502,8 +5159,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 20, .friendship = 70, .growthRate = GROWTH_SLOW, - .eggGroup1 = EGG_GROUP_WATER_2, - .eggGroup2 = EGG_GROUP_WATER_2, + .eggGroups = { EGG_GROUP_WATER_2, EGG_GROUP_WATER_2 }, .abilities = {ABILITY_VOLT_ABSORB, ABILITY_ILLUMINATE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_BLUE, @@ -5518,8 +5174,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 60, .baseSpAttack = 35, .baseSpDefense = 35, - .type1 = TYPE_ELECTRIC, - .type2 = TYPE_ELECTRIC, + .types = { TYPE_ELECTRIC, TYPE_ELECTRIC }, .catchRate = 190, .expYield = 42, .evYield_HP = 0, @@ -5534,8 +5189,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 10, .friendship = 70, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroup1 = EGG_GROUP_UNDISCOVERED, - .eggGroup2 = EGG_GROUP_UNDISCOVERED, + .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED }, .abilities = {ABILITY_STATIC, ABILITY_NONE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_YELLOW, @@ -5550,8 +5204,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 15, .baseSpAttack = 45, .baseSpDefense = 55, - .type1 = TYPE_NORMAL, - .type2 = TYPE_NORMAL, + .types = { TYPE_NORMAL, TYPE_NORMAL }, .catchRate = 150, .expYield = 37, .evYield_HP = 0, @@ -5566,8 +5219,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 10, .friendship = 140, .growthRate = GROWTH_FAST, - .eggGroup1 = EGG_GROUP_UNDISCOVERED, - .eggGroup2 = EGG_GROUP_UNDISCOVERED, + .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED }, .abilities = {ABILITY_CUTE_CHARM, ABILITY_NONE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_PINK, @@ -5582,8 +5234,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 15, .baseSpAttack = 40, .baseSpDefense = 20, - .type1 = TYPE_NORMAL, - .type2 = TYPE_NORMAL, + .types = { TYPE_NORMAL, TYPE_NORMAL }, .catchRate = 170, .expYield = 39, .evYield_HP = 1, @@ -5598,8 +5249,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 10, .friendship = 70, .growthRate = GROWTH_FAST, - .eggGroup1 = EGG_GROUP_UNDISCOVERED, - .eggGroup2 = EGG_GROUP_UNDISCOVERED, + .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED }, .abilities = {ABILITY_CUTE_CHARM, ABILITY_NONE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_PINK, @@ -5614,8 +5264,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 20, .baseSpAttack = 40, .baseSpDefense = 65, - .type1 = TYPE_NORMAL, - .type2 = TYPE_NORMAL, + .types = { TYPE_NORMAL, TYPE_NORMAL }, .catchRate = 190, .expYield = 74, .evYield_HP = 0, @@ -5630,8 +5279,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 10, .friendship = 70, .growthRate = GROWTH_FAST, - .eggGroup1 = EGG_GROUP_UNDISCOVERED, - .eggGroup2 = EGG_GROUP_UNDISCOVERED, + .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED }, .abilities = {ABILITY_HUSTLE, ABILITY_SERENE_GRACE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_WHITE, @@ -5646,8 +5294,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 40, .baseSpAttack = 80, .baseSpDefense = 105, - .type1 = TYPE_NORMAL, - .type2 = TYPE_FLYING, + .types = { TYPE_NORMAL, TYPE_FLYING }, .catchRate = 75, .expYield = 114, .evYield_HP = 0, @@ -5662,8 +5309,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 10, .friendship = 70, .growthRate = GROWTH_FAST, - .eggGroup1 = EGG_GROUP_FLYING, - .eggGroup2 = EGG_GROUP_FAIRY, + .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FAIRY }, .abilities = {ABILITY_HUSTLE, ABILITY_SERENE_GRACE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_WHITE, @@ -5678,8 +5324,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 70, .baseSpAttack = 70, .baseSpDefense = 45, - .type1 = TYPE_PSYCHIC, - .type2 = TYPE_FLYING, + .types = { TYPE_PSYCHIC, TYPE_FLYING }, .catchRate = 190, .expYield = 73, .evYield_HP = 0, @@ -5694,8 +5339,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 20, .friendship = 70, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroup1 = EGG_GROUP_FLYING, - .eggGroup2 = EGG_GROUP_FLYING, + .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FLYING }, .abilities = {ABILITY_SYNCHRONIZE, ABILITY_EARLY_BIRD}, .safariZoneFleeRate = 6, .bodyColor = BODY_COLOR_GREEN, @@ -5710,8 +5354,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 95, .baseSpAttack = 95, .baseSpDefense = 70, - .type1 = TYPE_PSYCHIC, - .type2 = TYPE_FLYING, + .types = { TYPE_PSYCHIC, TYPE_FLYING }, .catchRate = 75, .expYield = 171, .evYield_HP = 0, @@ -5726,8 +5369,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 20, .friendship = 70, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroup1 = EGG_GROUP_FLYING, - .eggGroup2 = EGG_GROUP_FLYING, + .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FLYING }, .abilities = {ABILITY_SYNCHRONIZE, ABILITY_EARLY_BIRD}, .safariZoneFleeRate = 8, .bodyColor = BODY_COLOR_GREEN, @@ -5742,8 +5384,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 35, .baseSpAttack = 65, .baseSpDefense = 45, - .type1 = TYPE_ELECTRIC, - .type2 = TYPE_ELECTRIC, + .types = { TYPE_ELECTRIC, TYPE_ELECTRIC }, .catchRate = 235, .expYield = 59, .evYield_HP = 0, @@ -5758,8 +5399,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 20, .friendship = 70, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroup1 = EGG_GROUP_MONSTER, - .eggGroup2 = EGG_GROUP_FIELD, + .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_FIELD }, .abilities = {ABILITY_STATIC, ABILITY_NONE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_WHITE, @@ -5774,8 +5414,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 45, .baseSpAttack = 80, .baseSpDefense = 60, - .type1 = TYPE_ELECTRIC, - .type2 = TYPE_ELECTRIC, + .types = { TYPE_ELECTRIC, TYPE_ELECTRIC }, .catchRate = 120, .expYield = 117, .evYield_HP = 0, @@ -5790,8 +5429,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 20, .friendship = 70, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroup1 = EGG_GROUP_MONSTER, - .eggGroup2 = EGG_GROUP_FIELD, + .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_FIELD }, .abilities = {ABILITY_STATIC, ABILITY_NONE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_PINK, @@ -5806,8 +5444,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 55, .baseSpAttack = 115, .baseSpDefense = 90, - .type1 = TYPE_ELECTRIC, - .type2 = TYPE_ELECTRIC, + .types = { TYPE_ELECTRIC, TYPE_ELECTRIC }, .catchRate = 45, .expYield = 194, .evYield_HP = 0, @@ -5822,8 +5459,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 20, .friendship = 70, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroup1 = EGG_GROUP_MONSTER, - .eggGroup2 = EGG_GROUP_FIELD, + .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_FIELD }, .abilities = {ABILITY_STATIC, ABILITY_NONE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_YELLOW, @@ -5838,8 +5474,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 50, .baseSpAttack = 90, .baseSpDefense = 100, - .type1 = TYPE_GRASS, - .type2 = TYPE_GRASS, + .types = { TYPE_GRASS, TYPE_GRASS }, .catchRate = 45, .expYield = 184, .evYield_HP = 0, @@ -5854,8 +5489,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 20, .friendship = 70, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroup1 = EGG_GROUP_GRASS, - .eggGroup2 = EGG_GROUP_GRASS, + .eggGroups = { EGG_GROUP_GRASS, EGG_GROUP_GRASS }, .abilities = {ABILITY_CHLOROPHYLL, ABILITY_NONE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_GREEN, @@ -5870,8 +5504,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 40, .baseSpAttack = 20, .baseSpDefense = 50, - .type1 = TYPE_WATER, - .type2 = TYPE_WATER, + .types = { TYPE_WATER, TYPE_WATER }, .catchRate = 190, .expYield = 58, .evYield_HP = 2, @@ -5886,8 +5519,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 10, .friendship = 70, .growthRate = GROWTH_FAST, - .eggGroup1 = EGG_GROUP_WATER_1, - .eggGroup2 = EGG_GROUP_FAIRY, + .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_FAIRY }, .abilities = {ABILITY_THICK_FAT, ABILITY_HUGE_POWER}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_BLUE, @@ -5902,8 +5534,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 50, .baseSpAttack = 50, .baseSpDefense = 80, - .type1 = TYPE_WATER, - .type2 = TYPE_WATER, + .types = { TYPE_WATER, TYPE_WATER }, .catchRate = 75, .expYield = 153, .evYield_HP = 3, @@ -5918,8 +5549,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 10, .friendship = 70, .growthRate = GROWTH_FAST, - .eggGroup1 = EGG_GROUP_WATER_1, - .eggGroup2 = EGG_GROUP_FAIRY, + .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_FAIRY }, .abilities = {ABILITY_THICK_FAT, ABILITY_HUGE_POWER}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_BLUE, @@ -5934,8 +5564,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 30, .baseSpAttack = 30, .baseSpDefense = 65, - .type1 = TYPE_ROCK, - .type2 = TYPE_ROCK, + .types = { TYPE_ROCK, TYPE_ROCK }, .catchRate = 65, .expYield = 135, .evYield_HP = 0, @@ -5950,8 +5579,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 20, .friendship = 70, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroup1 = EGG_GROUP_MINERAL, - .eggGroup2 = EGG_GROUP_MINERAL, + .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_MINERAL }, .abilities = {ABILITY_STURDY, ABILITY_ROCK_HEAD}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_BROWN, @@ -5966,8 +5594,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 70, .baseSpAttack = 90, .baseSpDefense = 100, - .type1 = TYPE_WATER, - .type2 = TYPE_WATER, + .types = { TYPE_WATER, TYPE_WATER }, .catchRate = 45, .expYield = 185, .evYield_HP = 0, @@ -5982,8 +5609,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 20, .friendship = 70, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroup1 = EGG_GROUP_WATER_1, - .eggGroup2 = EGG_GROUP_WATER_1, + .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_WATER_1 }, .abilities = {ABILITY_WATER_ABSORB, ABILITY_DAMP}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_GREEN, @@ -5998,8 +5624,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 50, .baseSpAttack = 35, .baseSpDefense = 55, - .type1 = TYPE_GRASS, - .type2 = TYPE_FLYING, + .types = { TYPE_GRASS, TYPE_FLYING }, .catchRate = 255, .expYield = 74, .evYield_HP = 0, @@ -6014,8 +5639,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 20, .friendship = 70, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroup1 = EGG_GROUP_FAIRY, - .eggGroup2 = EGG_GROUP_GRASS, + .eggGroups = { EGG_GROUP_FAIRY, EGG_GROUP_GRASS }, .abilities = {ABILITY_CHLOROPHYLL, ABILITY_NONE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_PINK, @@ -6030,8 +5654,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 80, .baseSpAttack = 45, .baseSpDefense = 65, - .type1 = TYPE_GRASS, - .type2 = TYPE_FLYING, + .types = { TYPE_GRASS, TYPE_FLYING }, .catchRate = 120, .expYield = 136, .evYield_HP = 0, @@ -6046,8 +5669,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 20, .friendship = 70, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroup1 = EGG_GROUP_FAIRY, - .eggGroup2 = EGG_GROUP_GRASS, + .eggGroups = { EGG_GROUP_FAIRY, EGG_GROUP_GRASS }, .abilities = {ABILITY_CHLOROPHYLL, ABILITY_NONE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_GREEN, @@ -6062,8 +5684,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 110, .baseSpAttack = 55, .baseSpDefense = 85, - .type1 = TYPE_GRASS, - .type2 = TYPE_FLYING, + .types = { TYPE_GRASS, TYPE_FLYING }, .catchRate = 45, .expYield = 176, .evYield_HP = 0, @@ -6078,8 +5699,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 20, .friendship = 70, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroup1 = EGG_GROUP_FAIRY, - .eggGroup2 = EGG_GROUP_GRASS, + .eggGroups = { EGG_GROUP_FAIRY, EGG_GROUP_GRASS }, .abilities = {ABILITY_CHLOROPHYLL, ABILITY_NONE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_BLUE, @@ -6094,8 +5714,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 85, .baseSpAttack = 40, .baseSpDefense = 55, - .type1 = TYPE_NORMAL, - .type2 = TYPE_NORMAL, + .types = { TYPE_NORMAL, TYPE_NORMAL }, .catchRate = 45, .expYield = 94, .evYield_HP = 0, @@ -6110,8 +5729,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 20, .friendship = 70, .growthRate = GROWTH_FAST, - .eggGroup1 = EGG_GROUP_FIELD, - .eggGroup2 = EGG_GROUP_FIELD, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, .abilities = {ABILITY_RUN_AWAY, ABILITY_PICKUP}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_PURPLE, @@ -6126,8 +5744,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 30, .baseSpAttack = 30, .baseSpDefense = 30, - .type1 = TYPE_GRASS, - .type2 = TYPE_GRASS, + .types = { TYPE_GRASS, TYPE_GRASS }, .catchRate = 235, .expYield = 52, .evYield_HP = 0, @@ -6142,8 +5759,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 20, .friendship = 70, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroup1 = EGG_GROUP_GRASS, - .eggGroup2 = EGG_GROUP_GRASS, + .eggGroups = { EGG_GROUP_GRASS, EGG_GROUP_GRASS }, .abilities = {ABILITY_CHLOROPHYLL, ABILITY_NONE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_YELLOW, @@ -6158,8 +5774,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 30, .baseSpAttack = 105, .baseSpDefense = 85, - .type1 = TYPE_GRASS, - .type2 = TYPE_GRASS, + .types = { TYPE_GRASS, TYPE_GRASS }, .catchRate = 120, .expYield = 146, .evYield_HP = 0, @@ -6174,8 +5789,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 20, .friendship = 70, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroup1 = EGG_GROUP_GRASS, - .eggGroup2 = EGG_GROUP_GRASS, + .eggGroups = { EGG_GROUP_GRASS, EGG_GROUP_GRASS }, .abilities = {ABILITY_CHLOROPHYLL, ABILITY_NONE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_YELLOW, @@ -6190,8 +5804,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 95, .baseSpAttack = 75, .baseSpDefense = 45, - .type1 = TYPE_BUG, - .type2 = TYPE_FLYING, + .types = { TYPE_BUG, TYPE_FLYING }, .catchRate = 75, .expYield = 147, .evYield_HP = 0, @@ -6206,8 +5819,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 20, .friendship = 70, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroup1 = EGG_GROUP_BUG, - .eggGroup2 = EGG_GROUP_BUG, + .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG }, .abilities = {ABILITY_SPEED_BOOST, ABILITY_COMPOUND_EYES}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_RED, @@ -6222,8 +5834,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 15, .baseSpAttack = 25, .baseSpDefense = 25, - .type1 = TYPE_WATER, - .type2 = TYPE_GROUND, + .types = { TYPE_WATER, TYPE_GROUND }, .catchRate = 255, .expYield = 52, .evYield_HP = 1, @@ -6238,8 +5849,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 20, .friendship = 70, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroup1 = EGG_GROUP_WATER_1, - .eggGroup2 = EGG_GROUP_FIELD, + .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_FIELD }, .abilities = {ABILITY_DAMP, ABILITY_WATER_ABSORB}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_BLUE, @@ -6254,8 +5864,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 35, .baseSpAttack = 65, .baseSpDefense = 65, - .type1 = TYPE_WATER, - .type2 = TYPE_GROUND, + .types = { TYPE_WATER, TYPE_GROUND }, .catchRate = 90, .expYield = 137, .evYield_HP = 2, @@ -6270,8 +5879,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 20, .friendship = 70, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroup1 = EGG_GROUP_WATER_1, - .eggGroup2 = EGG_GROUP_FIELD, + .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_FIELD }, .abilities = {ABILITY_DAMP, ABILITY_WATER_ABSORB}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_BLUE, @@ -6286,8 +5894,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 110, .baseSpAttack = 130, .baseSpDefense = 95, - .type1 = TYPE_PSYCHIC, - .type2 = TYPE_PSYCHIC, + .types = { TYPE_PSYCHIC, TYPE_PSYCHIC }, .catchRate = 45, .expYield = 197, .evYield_HP = 0, @@ -6302,8 +5909,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 35, .friendship = 70, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroup1 = EGG_GROUP_FIELD, - .eggGroup2 = EGG_GROUP_FIELD, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, .abilities = {ABILITY_SYNCHRONIZE, ABILITY_NONE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_PURPLE, @@ -6318,8 +5924,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 65, .baseSpAttack = 60, .baseSpDefense = 130, - .type1 = TYPE_DARK, - .type2 = TYPE_DARK, + .types = { TYPE_DARK, TYPE_DARK }, .catchRate = 45, .expYield = 197, .evYield_HP = 0, @@ -6334,8 +5939,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 35, .friendship = 35, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroup1 = EGG_GROUP_FIELD, - .eggGroup2 = EGG_GROUP_FIELD, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, .abilities = {ABILITY_SYNCHRONIZE, ABILITY_NONE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_BLACK, @@ -6350,8 +5954,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 91, .baseSpAttack = 85, .baseSpDefense = 42, - .type1 = TYPE_DARK, - .type2 = TYPE_FLYING, + .types = { TYPE_DARK, TYPE_FLYING }, .catchRate = 30, .expYield = 107, .evYield_HP = 0, @@ -6366,8 +5969,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 20, .friendship = 35, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroup1 = EGG_GROUP_FLYING, - .eggGroup2 = EGG_GROUP_FLYING, + .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FLYING }, .abilities = {ABILITY_INSOMNIA, ABILITY_NONE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_BLACK, @@ -6382,8 +5984,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 30, .baseSpAttack = 100, .baseSpDefense = 110, - .type1 = TYPE_WATER, - .type2 = TYPE_PSYCHIC, + .types = { TYPE_WATER, TYPE_PSYCHIC }, .catchRate = 70, .expYield = 164, .evYield_HP = 0, @@ -6398,8 +5999,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 20, .friendship = 70, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroup1 = EGG_GROUP_MONSTER, - .eggGroup2 = EGG_GROUP_WATER_1, + .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_WATER_1 }, .abilities = {ABILITY_OBLIVIOUS, ABILITY_OWN_TEMPO}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_PINK, @@ -6414,8 +6014,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 85, .baseSpAttack = 85, .baseSpDefense = 85, - .type1 = TYPE_GHOST, - .type2 = TYPE_GHOST, + .types = { TYPE_GHOST, TYPE_GHOST }, .catchRate = 45, .expYield = 147, .evYield_HP = 0, @@ -6430,8 +6029,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 25, .friendship = 35, .growthRate = GROWTH_FAST, - .eggGroup1 = EGG_GROUP_AMORPHOUS, - .eggGroup2 = EGG_GROUP_AMORPHOUS, + .eggGroups = { EGG_GROUP_AMORPHOUS, EGG_GROUP_AMORPHOUS }, .abilities = {ABILITY_LEVITATE, ABILITY_NONE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_GRAY, @@ -6446,8 +6044,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 48, .baseSpAttack = 72, .baseSpDefense = 48, - .type1 = TYPE_PSYCHIC, - .type2 = TYPE_PSYCHIC, + .types = { TYPE_PSYCHIC, TYPE_PSYCHIC }, .catchRate = 225, .expYield = 61, .evYield_HP = 0, @@ -6462,8 +6059,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 40, .friendship = 70, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroup1 = EGG_GROUP_UNDISCOVERED, - .eggGroup2 = EGG_GROUP_UNDISCOVERED, + .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED }, .abilities = {ABILITY_LEVITATE, ABILITY_NONE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_BLACK, @@ -6478,8 +6074,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 33, .baseSpAttack = 33, .baseSpDefense = 58, - .type1 = TYPE_PSYCHIC, - .type2 = TYPE_PSYCHIC, + .types = { TYPE_PSYCHIC, TYPE_PSYCHIC }, .catchRate = 45, .expYield = 177, .evYield_HP = 2, @@ -6494,8 +6089,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 20, .friendship = 70, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroup1 = EGG_GROUP_AMORPHOUS, - .eggGroup2 = EGG_GROUP_AMORPHOUS, + .eggGroups = { EGG_GROUP_AMORPHOUS, EGG_GROUP_AMORPHOUS }, .abilities = {ABILITY_SHADOW_TAG, ABILITY_NONE}, .safariZoneFleeRate = 4, .bodyColor = BODY_COLOR_BLUE, @@ -6510,8 +6104,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 85, .baseSpAttack = 90, .baseSpDefense = 65, - .type1 = TYPE_NORMAL, - .type2 = TYPE_PSYCHIC, + .types = { TYPE_NORMAL, TYPE_PSYCHIC }, .catchRate = 60, .expYield = 149, .evYield_HP = 0, @@ -6526,8 +6119,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 20, .friendship = 70, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroup1 = EGG_GROUP_FIELD, - .eggGroup2 = EGG_GROUP_FIELD, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, .abilities = {ABILITY_INNER_FOCUS, ABILITY_EARLY_BIRD}, .safariZoneFleeRate = 4, .bodyColor = BODY_COLOR_YELLOW, @@ -6542,8 +6134,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 15, .baseSpAttack = 35, .baseSpDefense = 35, - .type1 = TYPE_BUG, - .type2 = TYPE_BUG, + .types = { TYPE_BUG, TYPE_BUG }, .catchRate = 190, .expYield = 60, .evYield_HP = 0, @@ -6558,8 +6149,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 20, .friendship = 70, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroup1 = EGG_GROUP_BUG, - .eggGroup2 = EGG_GROUP_BUG, + .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG }, .abilities = {ABILITY_STURDY, ABILITY_NONE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_GRAY, @@ -6574,8 +6164,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 40, .baseSpAttack = 60, .baseSpDefense = 60, - .type1 = TYPE_BUG, - .type2 = TYPE_STEEL, + .types = { TYPE_BUG, TYPE_STEEL }, .catchRate = 75, .expYield = 118, .evYield_HP = 0, @@ -6590,8 +6179,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 20, .friendship = 70, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroup1 = EGG_GROUP_BUG, - .eggGroup2 = EGG_GROUP_BUG, + .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG }, .abilities = {ABILITY_STURDY, ABILITY_NONE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_PURPLE, @@ -6606,8 +6194,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 45, .baseSpAttack = 65, .baseSpDefense = 65, - .type1 = TYPE_NORMAL, - .type2 = TYPE_NORMAL, + .types = { TYPE_NORMAL, TYPE_NORMAL }, .catchRate = 190, .expYield = 75, .evYield_HP = 1, @@ -6622,8 +6209,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 20, .friendship = 70, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroup1 = EGG_GROUP_FIELD, - .eggGroup2 = EGG_GROUP_FIELD, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, .abilities = {ABILITY_SERENE_GRACE, ABILITY_RUN_AWAY}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_YELLOW, @@ -6638,8 +6224,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 85, .baseSpAttack = 35, .baseSpDefense = 65, - .type1 = TYPE_GROUND, - .type2 = TYPE_FLYING, + .types = { TYPE_GROUND, TYPE_FLYING }, .catchRate = 60, .expYield = 108, .evYield_HP = 0, @@ -6654,8 +6239,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 20, .friendship = 70, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroup1 = EGG_GROUP_BUG, - .eggGroup2 = EGG_GROUP_BUG, + .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG }, .abilities = {ABILITY_HYPER_CUTTER, ABILITY_SAND_VEIL}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_PURPLE, @@ -6670,8 +6254,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 30, .baseSpAttack = 55, .baseSpDefense = 65, - .type1 = TYPE_STEEL, - .type2 = TYPE_GROUND, + .types = { TYPE_STEEL, TYPE_GROUND }, .catchRate = 25, .expYield = 196, .evYield_HP = 0, @@ -6686,8 +6269,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 25, .friendship = 70, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroup1 = EGG_GROUP_MINERAL, - .eggGroup2 = EGG_GROUP_MINERAL, + .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_MINERAL }, .abilities = {ABILITY_ROCK_HEAD, ABILITY_STURDY}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_GRAY, @@ -6702,8 +6284,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 30, .baseSpAttack = 40, .baseSpDefense = 40, - .type1 = TYPE_NORMAL, - .type2 = TYPE_NORMAL, + .types = { TYPE_NORMAL, TYPE_NORMAL }, .catchRate = 190, .expYield = 63, .evYield_HP = 0, @@ -6718,8 +6299,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 20, .friendship = 70, .growthRate = GROWTH_FAST, - .eggGroup1 = EGG_GROUP_FIELD, - .eggGroup2 = EGG_GROUP_FAIRY, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FAIRY }, .abilities = {ABILITY_INTIMIDATE, ABILITY_RUN_AWAY}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_PINK, @@ -6734,8 +6314,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 45, .baseSpAttack = 60, .baseSpDefense = 60, - .type1 = TYPE_NORMAL, - .type2 = TYPE_NORMAL, + .types = { TYPE_NORMAL, TYPE_NORMAL }, .catchRate = 75, .expYield = 178, .evYield_HP = 0, @@ -6750,8 +6329,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 20, .friendship = 70, .growthRate = GROWTH_FAST, - .eggGroup1 = EGG_GROUP_FIELD, - .eggGroup2 = EGG_GROUP_FAIRY, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FAIRY }, .abilities = {ABILITY_INTIMIDATE, ABILITY_INTIMIDATE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_PURPLE, @@ -6766,8 +6344,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 85, .baseSpAttack = 55, .baseSpDefense = 55, - .type1 = TYPE_WATER, - .type2 = TYPE_POISON, + .types = { TYPE_WATER, TYPE_POISON }, .catchRate = 45, .expYield = 100, .evYield_HP = 0, @@ -6782,8 +6359,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 20, .friendship = 70, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroup1 = EGG_GROUP_WATER_2, - .eggGroup2 = EGG_GROUP_WATER_2, + .eggGroups = { EGG_GROUP_WATER_2, EGG_GROUP_WATER_2 }, .abilities = {ABILITY_POISON_POINT, ABILITY_SWIFT_SWIM}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_GRAY, @@ -6798,8 +6374,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 65, .baseSpAttack = 55, .baseSpDefense = 80, - .type1 = TYPE_BUG, - .type2 = TYPE_STEEL, + .types = { TYPE_BUG, TYPE_STEEL }, .catchRate = 25, .expYield = 200, .evYield_HP = 0, @@ -6814,8 +6389,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 25, .friendship = 70, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroup1 = EGG_GROUP_BUG, - .eggGroup2 = EGG_GROUP_BUG, + .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG }, .abilities = {ABILITY_SWARM, ABILITY_NONE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_RED, @@ -6830,8 +6404,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 5, .baseSpAttack = 10, .baseSpDefense = 230, - .type1 = TYPE_BUG, - .type2 = TYPE_ROCK, + .types = { TYPE_BUG, TYPE_ROCK }, .catchRate = 190, .expYield = 80, .evYield_HP = 0, @@ -6846,8 +6419,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 20, .friendship = 70, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroup1 = EGG_GROUP_BUG, - .eggGroup2 = EGG_GROUP_BUG, + .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG }, .abilities = {ABILITY_STURDY, ABILITY_NONE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_YELLOW, @@ -6862,8 +6434,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 85, .baseSpAttack = 40, .baseSpDefense = 95, - .type1 = TYPE_BUG, - .type2 = TYPE_FIGHTING, + .types = { TYPE_BUG, TYPE_FIGHTING }, .catchRate = 45, .expYield = 200, .evYield_HP = 0, @@ -6878,8 +6449,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 25, .friendship = 70, .growthRate = GROWTH_SLOW, - .eggGroup1 = EGG_GROUP_BUG, - .eggGroup2 = EGG_GROUP_BUG, + .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG }, .abilities = {ABILITY_SWARM, ABILITY_GUTS}, .safariZoneFleeRate = 8, .bodyColor = BODY_COLOR_BLUE, @@ -6894,8 +6464,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 115, .baseSpAttack = 35, .baseSpDefense = 75, - .type1 = TYPE_DARK, - .type2 = TYPE_ICE, + .types = { TYPE_DARK, TYPE_ICE }, .catchRate = 60, .expYield = 132, .evYield_HP = 0, @@ -6910,8 +6479,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 20, .friendship = 35, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroup1 = EGG_GROUP_FIELD, - .eggGroup2 = EGG_GROUP_FIELD, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, .abilities = {ABILITY_INNER_FOCUS, ABILITY_KEEN_EYE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_BLACK, @@ -6926,8 +6494,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 40, .baseSpAttack = 50, .baseSpDefense = 50, - .type1 = TYPE_NORMAL, - .type2 = TYPE_NORMAL, + .types = { TYPE_NORMAL, TYPE_NORMAL }, .catchRate = 120, .expYield = 124, .evYield_HP = 0, @@ -6942,8 +6509,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 20, .friendship = 70, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroup1 = EGG_GROUP_FIELD, - .eggGroup2 = EGG_GROUP_FIELD, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, .abilities = {ABILITY_PICKUP, ABILITY_NONE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_BROWN, @@ -6958,8 +6524,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 55, .baseSpAttack = 75, .baseSpDefense = 75, - .type1 = TYPE_NORMAL, - .type2 = TYPE_NORMAL, + .types = { TYPE_NORMAL, TYPE_NORMAL }, .catchRate = 60, .expYield = 189, .evYield_HP = 0, @@ -6974,8 +6539,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 20, .friendship = 70, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroup1 = EGG_GROUP_FIELD, - .eggGroup2 = EGG_GROUP_FIELD, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, .abilities = {ABILITY_GUTS, ABILITY_NONE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_BROWN, @@ -6990,8 +6554,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 20, .baseSpAttack = 70, .baseSpDefense = 40, - .type1 = TYPE_FIRE, - .type2 = TYPE_FIRE, + .types = { TYPE_FIRE, TYPE_FIRE }, .catchRate = 190, .expYield = 78, .evYield_HP = 0, @@ -7006,8 +6569,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 20, .friendship = 70, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroup1 = EGG_GROUP_AMORPHOUS, - .eggGroup2 = EGG_GROUP_AMORPHOUS, + .eggGroups = { EGG_GROUP_AMORPHOUS, EGG_GROUP_AMORPHOUS }, .abilities = {ABILITY_MAGMA_ARMOR, ABILITY_FLAME_BODY}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_RED, @@ -7022,8 +6584,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 30, .baseSpAttack = 80, .baseSpDefense = 80, - .type1 = TYPE_FIRE, - .type2 = TYPE_ROCK, + .types = { TYPE_FIRE, TYPE_ROCK }, .catchRate = 75, .expYield = 154, .evYield_HP = 0, @@ -7038,8 +6599,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 20, .friendship = 70, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroup1 = EGG_GROUP_AMORPHOUS, - .eggGroup2 = EGG_GROUP_AMORPHOUS, + .eggGroups = { EGG_GROUP_AMORPHOUS, EGG_GROUP_AMORPHOUS }, .abilities = {ABILITY_MAGMA_ARMOR, ABILITY_FLAME_BODY}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_RED, @@ -7054,8 +6614,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 50, .baseSpAttack = 30, .baseSpDefense = 30, - .type1 = TYPE_ICE, - .type2 = TYPE_GROUND, + .types = { TYPE_ICE, TYPE_GROUND }, .catchRate = 225, .expYield = 78, .evYield_HP = 0, @@ -7070,8 +6629,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 20, .friendship = 70, .growthRate = GROWTH_SLOW, - .eggGroup1 = EGG_GROUP_FIELD, - .eggGroup2 = EGG_GROUP_FIELD, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, .abilities = {ABILITY_OBLIVIOUS, ABILITY_NONE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_BROWN, @@ -7086,8 +6644,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 50, .baseSpAttack = 60, .baseSpDefense = 60, - .type1 = TYPE_ICE, - .type2 = TYPE_GROUND, + .types = { TYPE_ICE, TYPE_GROUND }, .catchRate = 75, .expYield = 160, .evYield_HP = 1, @@ -7102,8 +6659,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 20, .friendship = 70, .growthRate = GROWTH_SLOW, - .eggGroup1 = EGG_GROUP_FIELD, - .eggGroup2 = EGG_GROUP_FIELD, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, .abilities = {ABILITY_OBLIVIOUS, ABILITY_NONE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_BROWN, @@ -7118,8 +6674,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 35, .baseSpAttack = 65, .baseSpDefense = 85, - .type1 = TYPE_WATER, - .type2 = TYPE_ROCK, + .types = { TYPE_WATER, TYPE_ROCK }, .catchRate = 60, .expYield = 113, .evYield_HP = 0, @@ -7134,8 +6689,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 20, .friendship = 70, .growthRate = GROWTH_FAST, - .eggGroup1 = EGG_GROUP_WATER_1, - .eggGroup2 = EGG_GROUP_WATER_3, + .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_WATER_3 }, .abilities = {ABILITY_HUSTLE, ABILITY_NATURAL_CURE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_PINK, @@ -7150,8 +6704,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 65, .baseSpAttack = 65, .baseSpDefense = 35, - .type1 = TYPE_WATER, - .type2 = TYPE_WATER, + .types = { TYPE_WATER, TYPE_WATER }, .catchRate = 190, .expYield = 78, .evYield_HP = 0, @@ -7166,8 +6719,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 20, .friendship = 70, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroup1 = EGG_GROUP_WATER_1, - .eggGroup2 = EGG_GROUP_WATER_2, + .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_WATER_2 }, .abilities = {ABILITY_HUSTLE, ABILITY_NONE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_GRAY, @@ -7182,8 +6734,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 45, .baseSpAttack = 105, .baseSpDefense = 75, - .type1 = TYPE_WATER, - .type2 = TYPE_WATER, + .types = { TYPE_WATER, TYPE_WATER }, .catchRate = 75, .expYield = 164, .evYield_HP = 0, @@ -7198,8 +6749,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 20, .friendship = 70, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroup1 = EGG_GROUP_WATER_1, - .eggGroup2 = EGG_GROUP_WATER_2, + .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_WATER_2 }, .abilities = {ABILITY_SUCTION_CUPS, ABILITY_NONE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_RED, @@ -7214,8 +6764,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 75, .baseSpAttack = 65, .baseSpDefense = 45, - .type1 = TYPE_ICE, - .type2 = TYPE_FLYING, + .types = { TYPE_ICE, TYPE_FLYING }, .catchRate = 45, .expYield = 183, .evYield_HP = 0, @@ -7230,8 +6779,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 20, .friendship = 70, .growthRate = GROWTH_FAST, - .eggGroup1 = EGG_GROUP_WATER_1, - .eggGroup2 = EGG_GROUP_FIELD, + .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_FIELD }, .abilities = {ABILITY_VITAL_SPIRIT, ABILITY_HUSTLE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_RED, @@ -7246,8 +6794,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 70, .baseSpAttack = 80, .baseSpDefense = 140, - .type1 = TYPE_WATER, - .type2 = TYPE_FLYING, + .types = { TYPE_WATER, TYPE_FLYING }, .catchRate = 25, .expYield = 168, .evYield_HP = 0, @@ -7262,8 +6809,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 25, .friendship = 70, .growthRate = GROWTH_SLOW, - .eggGroup1 = EGG_GROUP_WATER_1, - .eggGroup2 = EGG_GROUP_WATER_1, + .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_WATER_1 }, .abilities = {ABILITY_SWIFT_SWIM, ABILITY_WATER_ABSORB}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_PURPLE, @@ -7278,8 +6824,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 70, .baseSpAttack = 40, .baseSpDefense = 70, - .type1 = TYPE_STEEL, - .type2 = TYPE_FLYING, + .types = { TYPE_STEEL, TYPE_FLYING }, .catchRate = 25, .expYield = 168, .evYield_HP = 0, @@ -7294,8 +6839,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 25, .friendship = 70, .growthRate = GROWTH_SLOW, - .eggGroup1 = EGG_GROUP_FLYING, - .eggGroup2 = EGG_GROUP_FLYING, + .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FLYING }, .abilities = {ABILITY_KEEN_EYE, ABILITY_STURDY}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_GRAY, @@ -7310,8 +6854,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 65, .baseSpAttack = 80, .baseSpDefense = 50, - .type1 = TYPE_DARK, - .type2 = TYPE_FIRE, + .types = { TYPE_DARK, TYPE_FIRE }, .catchRate = 120, .expYield = 114, .evYield_HP = 0, @@ -7326,8 +6869,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 20, .friendship = 35, .growthRate = GROWTH_SLOW, - .eggGroup1 = EGG_GROUP_FIELD, - .eggGroup2 = EGG_GROUP_FIELD, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, .abilities = {ABILITY_EARLY_BIRD, ABILITY_FLASH_FIRE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_BLACK, @@ -7342,8 +6884,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 95, .baseSpAttack = 110, .baseSpDefense = 80, - .type1 = TYPE_DARK, - .type2 = TYPE_FIRE, + .types = { TYPE_DARK, TYPE_FIRE }, .catchRate = 45, .expYield = 204, .evYield_HP = 0, @@ -7358,8 +6899,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 20, .friendship = 35, .growthRate = GROWTH_SLOW, - .eggGroup1 = EGG_GROUP_FIELD, - .eggGroup2 = EGG_GROUP_FIELD, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, .abilities = {ABILITY_EARLY_BIRD, ABILITY_FLASH_FIRE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_BLACK, @@ -7374,8 +6914,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 85, .baseSpAttack = 95, .baseSpDefense = 95, - .type1 = TYPE_WATER, - .type2 = TYPE_DRAGON, + .types = { TYPE_WATER, TYPE_DRAGON }, .catchRate = 45, .expYield = 207, .evYield_HP = 0, @@ -7390,8 +6929,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 20, .friendship = 70, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroup1 = EGG_GROUP_WATER_1, - .eggGroup2 = EGG_GROUP_DRAGON, + .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_DRAGON }, .abilities = {ABILITY_SWIFT_SWIM, ABILITY_NONE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_BLUE, @@ -7406,8 +6944,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 40, .baseSpAttack = 40, .baseSpDefense = 40, - .type1 = TYPE_GROUND, - .type2 = TYPE_GROUND, + .types = { TYPE_GROUND, TYPE_GROUND }, .catchRate = 120, .expYield = 124, .evYield_HP = 1, @@ -7422,8 +6959,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 20, .friendship = 70, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroup1 = EGG_GROUP_FIELD, - .eggGroup2 = EGG_GROUP_FIELD, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, .abilities = {ABILITY_PICKUP, ABILITY_NONE}, .safariZoneFleeRate = 10, .bodyColor = BODY_COLOR_BLUE, @@ -7438,8 +6974,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 50, .baseSpAttack = 60, .baseSpDefense = 60, - .type1 = TYPE_GROUND, - .type2 = TYPE_GROUND, + .types = { TYPE_GROUND, TYPE_GROUND }, .catchRate = 60, .expYield = 189, .evYield_HP = 0, @@ -7454,8 +6989,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 20, .friendship = 70, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroup1 = EGG_GROUP_FIELD, - .eggGroup2 = EGG_GROUP_FIELD, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, .abilities = {ABILITY_STURDY, ABILITY_NONE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_GRAY, @@ -7470,8 +7004,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 60, .baseSpAttack = 105, .baseSpDefense = 95, - .type1 = TYPE_NORMAL, - .type2 = TYPE_NORMAL, + .types = { TYPE_NORMAL, TYPE_NORMAL }, .catchRate = 45, .expYield = 180, .evYield_HP = 0, @@ -7486,8 +7019,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 20, .friendship = 70, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroup1 = EGG_GROUP_MINERAL, - .eggGroup2 = EGG_GROUP_MINERAL, + .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_MINERAL }, .abilities = {ABILITY_TRACE, ABILITY_NONE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_RED, @@ -7502,8 +7034,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 85, .baseSpAttack = 85, .baseSpDefense = 65, - .type1 = TYPE_NORMAL, - .type2 = TYPE_NORMAL, + .types = { TYPE_NORMAL, TYPE_NORMAL }, .catchRate = 45, .expYield = 165, .evYield_HP = 0, @@ -7518,8 +7049,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 20, .friendship = 70, .growthRate = GROWTH_SLOW, - .eggGroup1 = EGG_GROUP_FIELD, - .eggGroup2 = EGG_GROUP_FIELD, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, .abilities = {ABILITY_INTIMIDATE, ABILITY_NONE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_BROWN, @@ -7534,8 +7064,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 75, .baseSpAttack = 20, .baseSpDefense = 45, - .type1 = TYPE_NORMAL, - .type2 = TYPE_NORMAL, + .types = { TYPE_NORMAL, TYPE_NORMAL }, .catchRate = 45, .expYield = 106, .evYield_HP = 0, @@ -7550,8 +7079,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 20, .friendship = 70, .growthRate = GROWTH_FAST, - .eggGroup1 = EGG_GROUP_FIELD, - .eggGroup2 = EGG_GROUP_FIELD, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, .abilities = {ABILITY_OWN_TEMPO, ABILITY_NONE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_WHITE, @@ -7566,8 +7094,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 35, .baseSpAttack = 35, .baseSpDefense = 35, - .type1 = TYPE_FIGHTING, - .type2 = TYPE_FIGHTING, + .types = { TYPE_FIGHTING, TYPE_FIGHTING }, .catchRate = 75, .expYield = 91, .evYield_HP = 0, @@ -7582,8 +7109,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 25, .friendship = 70, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroup1 = EGG_GROUP_UNDISCOVERED, - .eggGroup2 = EGG_GROUP_UNDISCOVERED, + .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED }, .abilities = {ABILITY_GUTS, ABILITY_NONE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_PURPLE, @@ -7598,8 +7124,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 70, .baseSpAttack = 35, .baseSpDefense = 110, - .type1 = TYPE_FIGHTING, - .type2 = TYPE_FIGHTING, + .types = { TYPE_FIGHTING, TYPE_FIGHTING }, .catchRate = 45, .expYield = 138, .evYield_HP = 0, @@ -7614,8 +7139,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 25, .friendship = 70, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroup1 = EGG_GROUP_HUMAN_LIKE, - .eggGroup2 = EGG_GROUP_HUMAN_LIKE, + .eggGroups = { EGG_GROUP_HUMAN_LIKE, EGG_GROUP_HUMAN_LIKE }, .abilities = {ABILITY_INTIMIDATE, ABILITY_NONE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_BROWN, @@ -7630,8 +7154,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 65, .baseSpAttack = 85, .baseSpDefense = 65, - .type1 = TYPE_ICE, - .type2 = TYPE_PSYCHIC, + .types = { TYPE_ICE, TYPE_PSYCHIC }, .catchRate = 45, .expYield = 87, .evYield_HP = 0, @@ -7646,8 +7169,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 25, .friendship = 70, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroup1 = EGG_GROUP_UNDISCOVERED, - .eggGroup2 = EGG_GROUP_UNDISCOVERED, + .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED }, .abilities = {ABILITY_OBLIVIOUS, ABILITY_NONE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_PINK, @@ -7662,8 +7184,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 95, .baseSpAttack = 65, .baseSpDefense = 55, - .type1 = TYPE_ELECTRIC, - .type2 = TYPE_ELECTRIC, + .types = { TYPE_ELECTRIC, TYPE_ELECTRIC }, .catchRate = 45, .expYield = 106, .evYield_HP = 0, @@ -7678,8 +7199,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 25, .friendship = 70, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroup1 = EGG_GROUP_UNDISCOVERED, - .eggGroup2 = EGG_GROUP_UNDISCOVERED, + .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED }, .abilities = {ABILITY_STATIC, ABILITY_NONE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_YELLOW, @@ -7694,8 +7214,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 83, .baseSpAttack = 70, .baseSpDefense = 55, - .type1 = TYPE_FIRE, - .type2 = TYPE_FIRE, + .types = { TYPE_FIRE, TYPE_FIRE }, .catchRate = 45, .expYield = 117, .evYield_HP = 0, @@ -7710,8 +7229,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 25, .friendship = 70, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroup1 = EGG_GROUP_UNDISCOVERED, - .eggGroup2 = EGG_GROUP_UNDISCOVERED, + .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED }, .abilities = {ABILITY_FLAME_BODY, ABILITY_NONE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_RED, @@ -7726,8 +7244,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 100, .baseSpAttack = 40, .baseSpDefense = 70, - .type1 = TYPE_NORMAL, - .type2 = TYPE_NORMAL, + .types = { TYPE_NORMAL, TYPE_NORMAL }, .catchRate = 45, .expYield = 200, .evYield_HP = 0, @@ -7742,8 +7259,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 20, .friendship = 70, .growthRate = GROWTH_SLOW, - .eggGroup1 = EGG_GROUP_FIELD, - .eggGroup2 = EGG_GROUP_FIELD, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, .abilities = {ABILITY_THICK_FAT, ABILITY_NONE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_PINK, @@ -7758,8 +7274,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 55, .baseSpAttack = 75, .baseSpDefense = 135, - .type1 = TYPE_NORMAL, - .type2 = TYPE_NORMAL, + .types = { TYPE_NORMAL, TYPE_NORMAL }, .catchRate = 30, .expYield = 255, .evYield_HP = 2, @@ -7774,8 +7289,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 40, .friendship = 140, .growthRate = GROWTH_FAST, - .eggGroup1 = EGG_GROUP_FAIRY, - .eggGroup2 = EGG_GROUP_FAIRY, + .eggGroups = { EGG_GROUP_FAIRY, EGG_GROUP_FAIRY }, .abilities = {ABILITY_NATURAL_CURE, ABILITY_SERENE_GRACE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_PINK, @@ -7790,8 +7304,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 115, .baseSpAttack = 115, .baseSpDefense = 100, - .type1 = TYPE_ELECTRIC, - .type2 = TYPE_ELECTRIC, + .types = { TYPE_ELECTRIC, TYPE_ELECTRIC }, .catchRate = 3, .expYield = 216, .evYield_HP = 0, @@ -7806,8 +7319,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 80, .friendship = 35, .growthRate = GROWTH_SLOW, - .eggGroup1 = EGG_GROUP_UNDISCOVERED, - .eggGroup2 = EGG_GROUP_UNDISCOVERED, + .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED }, .abilities = {ABILITY_PRESSURE, ABILITY_NONE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_YELLOW, @@ -7822,8 +7334,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 100, .baseSpAttack = 90, .baseSpDefense = 75, - .type1 = TYPE_FIRE, - .type2 = TYPE_FIRE, + .types = { TYPE_FIRE, TYPE_FIRE }, .catchRate = 3, .expYield = 217, .evYield_HP = 1, @@ -7838,8 +7349,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 80, .friendship = 35, .growthRate = GROWTH_SLOW, - .eggGroup1 = EGG_GROUP_UNDISCOVERED, - .eggGroup2 = EGG_GROUP_UNDISCOVERED, + .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED }, .abilities = {ABILITY_PRESSURE, ABILITY_NONE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_BROWN, @@ -7854,8 +7364,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 85, .baseSpAttack = 90, .baseSpDefense = 115, - .type1 = TYPE_WATER, - .type2 = TYPE_WATER, + .types = { TYPE_WATER, TYPE_WATER }, .catchRate = 3, .expYield = 215, .evYield_HP = 0, @@ -7870,8 +7379,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 80, .friendship = 35, .growthRate = GROWTH_SLOW, - .eggGroup1 = EGG_GROUP_UNDISCOVERED, - .eggGroup2 = EGG_GROUP_UNDISCOVERED, + .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED }, .abilities = {ABILITY_PRESSURE, ABILITY_NONE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_BLUE, @@ -7886,8 +7394,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 41, .baseSpAttack = 45, .baseSpDefense = 50, - .type1 = TYPE_ROCK, - .type2 = TYPE_GROUND, + .types = { TYPE_ROCK, TYPE_GROUND }, .catchRate = 45, .expYield = 67, .evYield_HP = 0, @@ -7902,8 +7409,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 40, .friendship = 35, .growthRate = GROWTH_SLOW, - .eggGroup1 = EGG_GROUP_MONSTER, - .eggGroup2 = EGG_GROUP_MONSTER, + .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_MONSTER }, .abilities = {ABILITY_GUTS, ABILITY_NONE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_GREEN, @@ -7918,8 +7424,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 51, .baseSpAttack = 65, .baseSpDefense = 70, - .type1 = TYPE_ROCK, - .type2 = TYPE_GROUND, + .types = { TYPE_ROCK, TYPE_GROUND }, .catchRate = 45, .expYield = 144, .evYield_HP = 0, @@ -7934,8 +7439,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 40, .friendship = 35, .growthRate = GROWTH_SLOW, - .eggGroup1 = EGG_GROUP_MONSTER, - .eggGroup2 = EGG_GROUP_MONSTER, + .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_MONSTER }, .abilities = {ABILITY_SHED_SKIN, ABILITY_NONE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_GRAY, @@ -7950,8 +7454,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 61, .baseSpAttack = 95, .baseSpDefense = 100, - .type1 = TYPE_ROCK, - .type2 = TYPE_DARK, + .types = { TYPE_ROCK, TYPE_DARK }, .catchRate = 45, .expYield = 218, .evYield_HP = 0, @@ -7966,8 +7469,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 40, .friendship = 35, .growthRate = GROWTH_SLOW, - .eggGroup1 = EGG_GROUP_MONSTER, - .eggGroup2 = EGG_GROUP_MONSTER, + .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_MONSTER }, .abilities = {ABILITY_SAND_STREAM, ABILITY_NONE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_GREEN, @@ -7982,8 +7484,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 110, .baseSpAttack = 90, .baseSpDefense = 154, - .type1 = TYPE_PSYCHIC, - .type2 = TYPE_FLYING, + .types = { TYPE_PSYCHIC, TYPE_FLYING }, .catchRate = 3, .expYield = 220, .evYield_HP = 0, @@ -7998,8 +7499,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 120, .friendship = 0, .growthRate = GROWTH_SLOW, - .eggGroup1 = EGG_GROUP_UNDISCOVERED, - .eggGroup2 = EGG_GROUP_UNDISCOVERED, + .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED }, .abilities = {ABILITY_PRESSURE, ABILITY_NONE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_WHITE, @@ -8014,8 +7514,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 90, .baseSpAttack = 110, .baseSpDefense = 154, - .type1 = TYPE_FIRE, - .type2 = TYPE_FLYING, + .types = { TYPE_FIRE, TYPE_FLYING }, .catchRate = 3, .expYield = 220, .evYield_HP = 0, @@ -8030,8 +7529,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 120, .friendship = 0, .growthRate = GROWTH_SLOW, - .eggGroup1 = EGG_GROUP_UNDISCOVERED, - .eggGroup2 = EGG_GROUP_UNDISCOVERED, + .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED }, .abilities = {ABILITY_PRESSURE, ABILITY_NONE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_RED, @@ -8046,8 +7544,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 100, .baseSpAttack = 100, .baseSpDefense = 100, - .type1 = TYPE_PSYCHIC, - .type2 = TYPE_GRASS, + .types = { TYPE_PSYCHIC, TYPE_GRASS }, .catchRate = 45, .expYield = 64, .evYield_HP = 3, @@ -8062,8 +7559,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 120, .friendship = 100, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroup1 = EGG_GROUP_UNDISCOVERED, - .eggGroup2 = EGG_GROUP_UNDISCOVERED, + .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED }, .abilities = {ABILITY_NATURAL_CURE, ABILITY_NONE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_GREEN, @@ -8128,8 +7624,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 70, .baseSpAttack = 65, .baseSpDefense = 55, - .type1 = TYPE_GRASS, - .type2 = TYPE_GRASS, + .types = { TYPE_GRASS, TYPE_GRASS }, .catchRate = 45, .expYield = 65, .evYield_HP = 0, @@ -8144,8 +7639,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 20, .friendship = 70, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroup1 = EGG_GROUP_MONSTER, - .eggGroup2 = EGG_GROUP_DRAGON, + .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_DRAGON }, .abilities = {ABILITY_OVERGROW, ABILITY_NONE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_GREEN, @@ -8160,8 +7654,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 95, .baseSpAttack = 85, .baseSpDefense = 65, - .type1 = TYPE_GRASS, - .type2 = TYPE_GRASS, + .types = { TYPE_GRASS, TYPE_GRASS }, .catchRate = 45, .expYield = 141, .evYield_HP = 0, @@ -8176,8 +7669,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 20, .friendship = 70, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroup1 = EGG_GROUP_MONSTER, - .eggGroup2 = EGG_GROUP_DRAGON, + .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_DRAGON }, .abilities = {ABILITY_OVERGROW, ABILITY_NONE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_GREEN, @@ -8192,8 +7684,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 120, .baseSpAttack = 105, .baseSpDefense = 85, - .type1 = TYPE_GRASS, - .type2 = TYPE_GRASS, + .types = { TYPE_GRASS, TYPE_GRASS }, .catchRate = 45, .expYield = 208, .evYield_HP = 0, @@ -8208,8 +7699,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 20, .friendship = 70, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroup1 = EGG_GROUP_MONSTER, - .eggGroup2 = EGG_GROUP_DRAGON, + .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_DRAGON }, .abilities = {ABILITY_OVERGROW, ABILITY_NONE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_GREEN, @@ -8224,8 +7714,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 45, .baseSpAttack = 70, .baseSpDefense = 50, - .type1 = TYPE_FIRE, - .type2 = TYPE_FIRE, + .types = { TYPE_FIRE, TYPE_FIRE }, .catchRate = 45, .expYield = 65, .evYield_HP = 0, @@ -8240,8 +7729,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 20, .friendship = 70, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroup1 = EGG_GROUP_FIELD, - .eggGroup2 = EGG_GROUP_FIELD, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, .abilities = {ABILITY_BLAZE, ABILITY_NONE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_RED, @@ -8256,8 +7744,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 55, .baseSpAttack = 85, .baseSpDefense = 60, - .type1 = TYPE_FIRE, - .type2 = TYPE_FIGHTING, + .types = { TYPE_FIRE, TYPE_FIGHTING }, .catchRate = 45, .expYield = 142, .evYield_HP = 0, @@ -8272,8 +7759,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 20, .friendship = 70, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroup1 = EGG_GROUP_FIELD, - .eggGroup2 = EGG_GROUP_FIELD, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, .abilities = {ABILITY_BLAZE, ABILITY_NONE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_RED, @@ -8288,8 +7774,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 80, .baseSpAttack = 110, .baseSpDefense = 70, - .type1 = TYPE_FIRE, - .type2 = TYPE_FIGHTING, + .types = { TYPE_FIRE, TYPE_FIGHTING }, .catchRate = 45, .expYield = 209, .evYield_HP = 0, @@ -8304,8 +7789,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 20, .friendship = 70, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroup1 = EGG_GROUP_FIELD, - .eggGroup2 = EGG_GROUP_FIELD, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, .abilities = {ABILITY_BLAZE, ABILITY_NONE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_RED, @@ -8320,8 +7804,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 40, .baseSpAttack = 50, .baseSpDefense = 50, - .type1 = TYPE_WATER, - .type2 = TYPE_WATER, + .types = { TYPE_WATER, TYPE_WATER }, .catchRate = 45, .expYield = 65, .evYield_HP = 0, @@ -8336,8 +7819,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 20, .friendship = 70, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroup1 = EGG_GROUP_MONSTER, - .eggGroup2 = EGG_GROUP_WATER_1, + .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_WATER_1 }, .abilities = {ABILITY_TORRENT, ABILITY_NONE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_BLUE, @@ -8352,8 +7834,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 50, .baseSpAttack = 60, .baseSpDefense = 70, - .type1 = TYPE_WATER, - .type2 = TYPE_GROUND, + .types = { TYPE_WATER, TYPE_GROUND }, .catchRate = 45, .expYield = 143, .evYield_HP = 0, @@ -8368,8 +7849,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 20, .friendship = 70, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroup1 = EGG_GROUP_MONSTER, - .eggGroup2 = EGG_GROUP_WATER_1, + .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_WATER_1 }, .abilities = {ABILITY_TORRENT, ABILITY_NONE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_BLUE, @@ -8384,8 +7864,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 60, .baseSpAttack = 85, .baseSpDefense = 90, - .type1 = TYPE_WATER, - .type2 = TYPE_GROUND, + .types = { TYPE_WATER, TYPE_GROUND }, .catchRate = 45, .expYield = 210, .evYield_HP = 0, @@ -8400,8 +7879,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 20, .friendship = 70, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroup1 = EGG_GROUP_MONSTER, - .eggGroup2 = EGG_GROUP_WATER_1, + .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_WATER_1 }, .abilities = {ABILITY_TORRENT, ABILITY_NONE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_BLUE, @@ -8416,8 +7894,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 35, .baseSpAttack = 30, .baseSpDefense = 30, - .type1 = TYPE_DARK, - .type2 = TYPE_DARK, + .types = { TYPE_DARK, TYPE_DARK }, .catchRate = 255, .expYield = 55, .evYield_HP = 0, @@ -8432,8 +7909,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 15, .friendship = 70, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroup1 = EGG_GROUP_FIELD, - .eggGroup2 = EGG_GROUP_FIELD, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, .abilities = {ABILITY_RUN_AWAY, ABILITY_NONE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_GRAY, @@ -8448,8 +7924,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 70, .baseSpAttack = 60, .baseSpDefense = 60, - .type1 = TYPE_DARK, - .type2 = TYPE_DARK, + .types = { TYPE_DARK, TYPE_DARK }, .catchRate = 127, .expYield = 128, .evYield_HP = 0, @@ -8464,8 +7939,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 15, .friendship = 70, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroup1 = EGG_GROUP_FIELD, - .eggGroup2 = EGG_GROUP_FIELD, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, .abilities = {ABILITY_INTIMIDATE, ABILITY_NONE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_GRAY, @@ -8480,8 +7954,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 60, .baseSpAttack = 30, .baseSpDefense = 41, - .type1 = TYPE_NORMAL, - .type2 = TYPE_NORMAL, + .types = { TYPE_NORMAL, TYPE_NORMAL }, .catchRate = 255, .expYield = 60, .evYield_HP = 0, @@ -8496,8 +7969,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 15, .friendship = 70, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroup1 = EGG_GROUP_FIELD, - .eggGroup2 = EGG_GROUP_FIELD, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, .abilities = {ABILITY_PICKUP, ABILITY_NONE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_BROWN, @@ -8512,8 +7984,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 100, .baseSpAttack = 50, .baseSpDefense = 61, - .type1 = TYPE_NORMAL, - .type2 = TYPE_NORMAL, + .types = { TYPE_NORMAL, TYPE_NORMAL }, .catchRate = 90, .expYield = 128, .evYield_HP = 0, @@ -8528,8 +7999,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 15, .friendship = 70, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroup1 = EGG_GROUP_FIELD, - .eggGroup2 = EGG_GROUP_FIELD, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, .abilities = {ABILITY_PICKUP, ABILITY_NONE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_WHITE, @@ -8544,8 +8014,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 20, .baseSpAttack = 20, .baseSpDefense = 30, - .type1 = TYPE_BUG, - .type2 = TYPE_BUG, + .types = { TYPE_BUG, TYPE_BUG }, .catchRate = 255, .expYield = 54, .evYield_HP = 1, @@ -8560,8 +8029,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 15, .friendship = 70, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroup1 = EGG_GROUP_BUG, - .eggGroup2 = EGG_GROUP_BUG, + .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG }, .abilities = {ABILITY_SHIELD_DUST, ABILITY_NONE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_RED, @@ -8576,8 +8044,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 15, .baseSpAttack = 25, .baseSpDefense = 25, - .type1 = TYPE_BUG, - .type2 = TYPE_BUG, + .types = { TYPE_BUG, TYPE_BUG }, .catchRate = 120, .expYield = 71, .evYield_HP = 0, @@ -8592,8 +8059,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 15, .friendship = 70, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroup1 = EGG_GROUP_BUG, - .eggGroup2 = EGG_GROUP_BUG, + .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG }, .abilities = {ABILITY_SHED_SKIN, ABILITY_NONE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_WHITE, @@ -8608,8 +8074,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 65, .baseSpAttack = 90, .baseSpDefense = 50, - .type1 = TYPE_BUG, - .type2 = TYPE_FLYING, + .types = { TYPE_BUG, TYPE_FLYING }, .catchRate = 45, .expYield = 161, .evYield_HP = 0, @@ -8624,8 +8089,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 15, .friendship = 70, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroup1 = EGG_GROUP_BUG, - .eggGroup2 = EGG_GROUP_BUG, + .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG }, .abilities = {ABILITY_SWARM, ABILITY_NONE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_YELLOW, @@ -8640,8 +8104,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 15, .baseSpAttack = 25, .baseSpDefense = 25, - .type1 = TYPE_BUG, - .type2 = TYPE_BUG, + .types = { TYPE_BUG, TYPE_BUG }, .catchRate = 120, .expYield = 72, .evYield_HP = 0, @@ -8656,8 +8119,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 15, .friendship = 70, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroup1 = EGG_GROUP_BUG, - .eggGroup2 = EGG_GROUP_BUG, + .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG }, .abilities = {ABILITY_SHED_SKIN, ABILITY_NONE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_PURPLE, @@ -8672,8 +8134,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 65, .baseSpAttack = 50, .baseSpDefense = 90, - .type1 = TYPE_BUG, - .type2 = TYPE_POISON, + .types = { TYPE_BUG, TYPE_POISON }, .catchRate = 45, .expYield = 160, .evYield_HP = 0, @@ -8688,8 +8149,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 15, .friendship = 70, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroup1 = EGG_GROUP_BUG, - .eggGroup2 = EGG_GROUP_BUG, + .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG }, .abilities = {ABILITY_SHIELD_DUST, ABILITY_NONE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_GREEN, @@ -8704,8 +8164,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 30, .baseSpAttack = 40, .baseSpDefense = 50, - .type1 = TYPE_WATER, - .type2 = TYPE_GRASS, + .types = { TYPE_WATER, TYPE_GRASS }, .catchRate = 255, .expYield = 74, .evYield_HP = 0, @@ -8720,8 +8179,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 15, .friendship = 70, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroup1 = EGG_GROUP_WATER_1, - .eggGroup2 = EGG_GROUP_GRASS, + .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_GRASS }, .abilities = {ABILITY_SWIFT_SWIM, ABILITY_RAIN_DISH}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_GREEN, @@ -8736,8 +8194,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 50, .baseSpAttack = 60, .baseSpDefense = 70, - .type1 = TYPE_WATER, - .type2 = TYPE_GRASS, + .types = { TYPE_WATER, TYPE_GRASS }, .catchRate = 120, .expYield = 141, .evYield_HP = 0, @@ -8752,8 +8209,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 15, .friendship = 70, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroup1 = EGG_GROUP_WATER_1, - .eggGroup2 = EGG_GROUP_GRASS, + .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_GRASS }, .abilities = {ABILITY_SWIFT_SWIM, ABILITY_RAIN_DISH}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_GREEN, @@ -8768,8 +8224,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 70, .baseSpAttack = 90, .baseSpDefense = 100, - .type1 = TYPE_WATER, - .type2 = TYPE_GRASS, + .types = { TYPE_WATER, TYPE_GRASS }, .catchRate = 45, .expYield = 181, .evYield_HP = 0, @@ -8784,8 +8239,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 15, .friendship = 70, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroup1 = EGG_GROUP_WATER_1, - .eggGroup2 = EGG_GROUP_GRASS, + .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_GRASS }, .abilities = {ABILITY_SWIFT_SWIM, ABILITY_RAIN_DISH}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_GREEN, @@ -8800,8 +8254,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 30, .baseSpAttack = 30, .baseSpDefense = 30, - .type1 = TYPE_GRASS, - .type2 = TYPE_GRASS, + .types = { TYPE_GRASS, TYPE_GRASS }, .catchRate = 255, .expYield = 74, .evYield_HP = 0, @@ -8816,8 +8269,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 15, .friendship = 70, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroup1 = EGG_GROUP_FIELD, - .eggGroup2 = EGG_GROUP_GRASS, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_GRASS }, .abilities = {ABILITY_CHLOROPHYLL, ABILITY_EARLY_BIRD}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_BROWN, @@ -8832,8 +8284,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 60, .baseSpAttack = 60, .baseSpDefense = 40, - .type1 = TYPE_GRASS, - .type2 = TYPE_DARK, + .types = { TYPE_GRASS, TYPE_DARK }, .catchRate = 120, .expYield = 141, .evYield_HP = 0, @@ -8848,8 +8299,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 15, .friendship = 70, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroup1 = EGG_GROUP_FIELD, - .eggGroup2 = EGG_GROUP_GRASS, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_GRASS }, .abilities = {ABILITY_CHLOROPHYLL, ABILITY_EARLY_BIRD}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_BROWN, @@ -8864,8 +8314,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 80, .baseSpAttack = 90, .baseSpDefense = 60, - .type1 = TYPE_GRASS, - .type2 = TYPE_DARK, + .types = { TYPE_GRASS, TYPE_DARK }, .catchRate = 45, .expYield = 181, .evYield_HP = 0, @@ -8880,8 +8329,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 15, .friendship = 70, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroup1 = EGG_GROUP_FIELD, - .eggGroup2 = EGG_GROUP_GRASS, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_GRASS }, .abilities = {ABILITY_CHLOROPHYLL, ABILITY_EARLY_BIRD}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_BROWN, @@ -8896,8 +8344,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 40, .baseSpAttack = 30, .baseSpDefense = 30, - .type1 = TYPE_BUG, - .type2 = TYPE_GROUND, + .types = { TYPE_BUG, TYPE_GROUND }, .catchRate = 255, .expYield = 65, .evYield_HP = 0, @@ -8912,8 +8359,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 15, .friendship = 70, .growthRate = GROWTH_ERRATIC, - .eggGroup1 = EGG_GROUP_BUG, - .eggGroup2 = EGG_GROUP_BUG, + .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG }, .abilities = {ABILITY_COMPOUND_EYES, ABILITY_NONE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_GRAY, @@ -8928,8 +8374,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 160, .baseSpAttack = 50, .baseSpDefense = 50, - .type1 = TYPE_BUG, - .type2 = TYPE_FLYING, + .types = { TYPE_BUG, TYPE_FLYING }, .catchRate = 120, .expYield = 155, .evYield_HP = 0, @@ -8944,8 +8389,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 15, .friendship = 70, .growthRate = GROWTH_ERRATIC, - .eggGroup1 = EGG_GROUP_BUG, - .eggGroup2 = EGG_GROUP_BUG, + .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG }, .abilities = {ABILITY_SPEED_BOOST, ABILITY_NONE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_YELLOW, @@ -8960,8 +8404,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 40, .baseSpAttack = 30, .baseSpDefense = 30, - .type1 = TYPE_BUG, - .type2 = TYPE_GHOST, + .types = { TYPE_BUG, TYPE_GHOST }, .catchRate = 45, .expYield = 95, .evYield_HP = 2, @@ -8976,8 +8419,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 15, .friendship = 70, .growthRate = GROWTH_ERRATIC, - .eggGroup1 = EGG_GROUP_MINERAL, - .eggGroup2 = EGG_GROUP_MINERAL, + .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_MINERAL }, .abilities = {ABILITY_WONDER_GUARD, ABILITY_NONE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_BROWN, @@ -8992,8 +8434,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 85, .baseSpAttack = 30, .baseSpDefense = 30, - .type1 = TYPE_NORMAL, - .type2 = TYPE_FLYING, + .types = { TYPE_NORMAL, TYPE_FLYING }, .catchRate = 200, .expYield = 59, .evYield_HP = 0, @@ -9008,8 +8449,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 15, .friendship = 70, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroup1 = EGG_GROUP_FLYING, - .eggGroup2 = EGG_GROUP_FLYING, + .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FLYING }, .abilities = {ABILITY_GUTS, ABILITY_NONE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_BLUE, @@ -9024,8 +8464,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 125, .baseSpAttack = 50, .baseSpDefense = 50, - .type1 = TYPE_NORMAL, - .type2 = TYPE_FLYING, + .types = { TYPE_NORMAL, TYPE_FLYING }, .catchRate = 45, .expYield = 162, .evYield_HP = 0, @@ -9040,8 +8479,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 15, .friendship = 70, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroup1 = EGG_GROUP_FLYING, - .eggGroup2 = EGG_GROUP_FLYING, + .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FLYING }, .abilities = {ABILITY_GUTS, ABILITY_NONE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_BLUE, @@ -9056,8 +8494,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 35, .baseSpAttack = 40, .baseSpDefense = 60, - .type1 = TYPE_GRASS, - .type2 = TYPE_GRASS, + .types = { TYPE_GRASS, TYPE_GRASS }, .catchRate = 255, .expYield = 65, .evYield_HP = 1, @@ -9072,8 +8509,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 15, .friendship = 70, .growthRate = GROWTH_FLUCTUATING, - .eggGroup1 = EGG_GROUP_FAIRY, - .eggGroup2 = EGG_GROUP_GRASS, + .eggGroups = { EGG_GROUP_FAIRY, EGG_GROUP_GRASS }, .abilities = {ABILITY_EFFECT_SPORE, ABILITY_NONE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_BROWN, @@ -9088,8 +8524,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 70, .baseSpAttack = 60, .baseSpDefense = 60, - .type1 = TYPE_GRASS, - .type2 = TYPE_FIGHTING, + .types = { TYPE_GRASS, TYPE_FIGHTING }, .catchRate = 90, .expYield = 165, .evYield_HP = 0, @@ -9104,8 +8539,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 15, .friendship = 70, .growthRate = GROWTH_FLUCTUATING, - .eggGroup1 = EGG_GROUP_FAIRY, - .eggGroup2 = EGG_GROUP_GRASS, + .eggGroups = { EGG_GROUP_FAIRY, EGG_GROUP_GRASS }, .abilities = {ABILITY_EFFECT_SPORE, ABILITY_NONE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_GREEN, @@ -9120,8 +8554,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 60, .baseSpAttack = 60, .baseSpDefense = 60, - .type1 = TYPE_NORMAL, - .type2 = TYPE_NORMAL, + .types = { TYPE_NORMAL, TYPE_NORMAL }, .catchRate = 255, .expYield = 85, .evYield_HP = 0, @@ -9136,8 +8569,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 15, .friendship = 70, .growthRate = GROWTH_FAST, - .eggGroup1 = EGG_GROUP_FIELD, - .eggGroup2 = EGG_GROUP_HUMAN_LIKE, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_HUMAN_LIKE }, .abilities = {ABILITY_OWN_TEMPO, ABILITY_NONE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_BROWN, @@ -9152,8 +8584,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 85, .baseSpAttack = 55, .baseSpDefense = 30, - .type1 = TYPE_WATER, - .type2 = TYPE_FLYING, + .types = { TYPE_WATER, TYPE_FLYING }, .catchRate = 190, .expYield = 64, .evYield_HP = 0, @@ -9168,8 +8599,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 20, .friendship = 70, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroup1 = EGG_GROUP_WATER_1, - .eggGroup2 = EGG_GROUP_FLYING, + .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_FLYING }, .abilities = {ABILITY_KEEN_EYE, ABILITY_NONE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_WHITE, @@ -9184,8 +8614,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 65, .baseSpAttack = 85, .baseSpDefense = 70, - .type1 = TYPE_WATER, - .type2 = TYPE_FLYING, + .types = { TYPE_WATER, TYPE_FLYING }, .catchRate = 45, .expYield = 164, .evYield_HP = 0, @@ -9200,8 +8629,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 20, .friendship = 70, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroup1 = EGG_GROUP_WATER_1, - .eggGroup2 = EGG_GROUP_FLYING, + .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_FLYING }, .abilities = {ABILITY_KEEN_EYE, ABILITY_NONE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_YELLOW, @@ -9216,8 +8644,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 65, .baseSpAttack = 50, .baseSpDefense = 52, - .type1 = TYPE_BUG, - .type2 = TYPE_WATER, + .types = { TYPE_BUG, TYPE_WATER }, .catchRate = 200, .expYield = 63, .evYield_HP = 0, @@ -9232,8 +8659,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 15, .friendship = 70, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroup1 = EGG_GROUP_WATER_1, - .eggGroup2 = EGG_GROUP_BUG, + .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_BUG }, .abilities = {ABILITY_SWIFT_SWIM, ABILITY_NONE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_BLUE, @@ -9248,8 +8674,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 60, .baseSpAttack = 80, .baseSpDefense = 82, - .type1 = TYPE_BUG, - .type2 = TYPE_FLYING, + .types = { TYPE_BUG, TYPE_FLYING }, .catchRate = 75, .expYield = 128, .evYield_HP = 0, @@ -9264,8 +8689,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 15, .friendship = 70, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroup1 = EGG_GROUP_WATER_1, - .eggGroup2 = EGG_GROUP_BUG, + .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_BUG }, .abilities = {ABILITY_INTIMIDATE, ABILITY_NONE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_BLUE, @@ -9280,8 +8704,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 60, .baseSpAttack = 70, .baseSpDefense = 35, - .type1 = TYPE_WATER, - .type2 = TYPE_WATER, + .types = { TYPE_WATER, TYPE_WATER }, .catchRate = 125, .expYield = 137, .evYield_HP = 1, @@ -9296,8 +8719,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 40, .friendship = 70, .growthRate = GROWTH_FLUCTUATING, - .eggGroup1 = EGG_GROUP_FIELD, - .eggGroup2 = EGG_GROUP_WATER_2, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_WATER_2 }, .abilities = {ABILITY_WATER_VEIL, ABILITY_OBLIVIOUS}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_BLUE, @@ -9312,8 +8734,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 60, .baseSpAttack = 90, .baseSpDefense = 45, - .type1 = TYPE_WATER, - .type2 = TYPE_WATER, + .types = { TYPE_WATER, TYPE_WATER }, .catchRate = 60, .expYield = 206, .evYield_HP = 2, @@ -9328,8 +8749,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 40, .friendship = 70, .growthRate = GROWTH_FLUCTUATING, - .eggGroup1 = EGG_GROUP_FIELD, - .eggGroup2 = EGG_GROUP_WATER_2, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_WATER_2 }, .abilities = {ABILITY_WATER_VEIL, ABILITY_OBLIVIOUS}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_BLUE, @@ -9344,8 +8764,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 50, .baseSpAttack = 35, .baseSpDefense = 35, - .type1 = TYPE_NORMAL, - .type2 = TYPE_NORMAL, + .types = { TYPE_NORMAL, TYPE_NORMAL }, .catchRate = 255, .expYield = 65, .evYield_HP = 0, @@ -9360,8 +8779,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 15, .friendship = 70, .growthRate = GROWTH_FAST, - .eggGroup1 = EGG_GROUP_FIELD, - .eggGroup2 = EGG_GROUP_FAIRY, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FAIRY }, .abilities = {ABILITY_CUTE_CHARM, ABILITY_NONE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_PINK, @@ -9376,8 +8794,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 70, .baseSpAttack = 55, .baseSpDefense = 55, - .type1 = TYPE_NORMAL, - .type2 = TYPE_NORMAL, + .types = { TYPE_NORMAL, TYPE_NORMAL }, .catchRate = 60, .expYield = 138, .evYield_HP = 1, @@ -9392,8 +8809,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 15, .friendship = 70, .growthRate = GROWTH_FAST, - .eggGroup1 = EGG_GROUP_FIELD, - .eggGroup2 = EGG_GROUP_FAIRY, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FAIRY }, .abilities = {ABILITY_CUTE_CHARM, ABILITY_NONE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_PURPLE, @@ -9408,8 +8824,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 40, .baseSpAttack = 60, .baseSpDefense = 120, - .type1 = TYPE_NORMAL, - .type2 = TYPE_NORMAL, + .types = { TYPE_NORMAL, TYPE_NORMAL }, .catchRate = 200, .expYield = 132, .evYield_HP = 0, @@ -9424,8 +8839,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 20, .friendship = 70, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroup1 = EGG_GROUP_FIELD, - .eggGroup2 = EGG_GROUP_FIELD, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, .abilities = {ABILITY_COLOR_CHANGE, ABILITY_NONE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_GREEN, @@ -9440,8 +8854,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 55, .baseSpAttack = 40, .baseSpDefense = 70, - .type1 = TYPE_GROUND, - .type2 = TYPE_PSYCHIC, + .types = { TYPE_GROUND, TYPE_PSYCHIC }, .catchRate = 255, .expYield = 58, .evYield_HP = 0, @@ -9456,8 +8869,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 20, .friendship = 70, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroup1 = EGG_GROUP_MINERAL, - .eggGroup2 = EGG_GROUP_MINERAL, + .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_MINERAL }, .abilities = {ABILITY_LEVITATE, ABILITY_NONE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_BROWN, @@ -9472,8 +8884,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 75, .baseSpAttack = 70, .baseSpDefense = 120, - .type1 = TYPE_GROUND, - .type2 = TYPE_PSYCHIC, + .types = { TYPE_GROUND, TYPE_PSYCHIC }, .catchRate = 90, .expYield = 189, .evYield_HP = 0, @@ -9488,8 +8899,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 20, .friendship = 70, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroup1 = EGG_GROUP_MINERAL, - .eggGroup2 = EGG_GROUP_MINERAL, + .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_MINERAL }, .abilities = {ABILITY_LEVITATE, ABILITY_NONE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_BLACK, @@ -9504,8 +8914,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 30, .baseSpAttack = 45, .baseSpDefense = 90, - .type1 = TYPE_ROCK, - .type2 = TYPE_ROCK, + .types = { TYPE_ROCK, TYPE_ROCK }, .catchRate = 255, .expYield = 108, .evYield_HP = 0, @@ -9520,8 +8929,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 20, .friendship = 70, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroup1 = EGG_GROUP_MINERAL, - .eggGroup2 = EGG_GROUP_MINERAL, + .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_MINERAL }, .abilities = {ABILITY_STURDY, ABILITY_MAGNET_PULL}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_GRAY, @@ -9536,8 +8944,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 20, .baseSpAttack = 85, .baseSpDefense = 70, - .type1 = TYPE_FIRE, - .type2 = TYPE_FIRE, + .types = { TYPE_FIRE, TYPE_FIRE }, .catchRate = 90, .expYield = 161, .evYield_HP = 0, @@ -9552,8 +8959,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 20, .friendship = 70, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroup1 = EGG_GROUP_FIELD, - .eggGroup2 = EGG_GROUP_FIELD, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, .abilities = {ABILITY_WHITE_SMOKE, ABILITY_NONE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_BROWN, @@ -9568,8 +8974,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 50, .baseSpAttack = 65, .baseSpDefense = 65, - .type1 = TYPE_DARK, - .type2 = TYPE_GHOST, + .types = { TYPE_DARK, TYPE_GHOST }, .catchRate = 45, .expYield = 98, .evYield_HP = 0, @@ -9584,8 +8989,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 25, .friendship = 35, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroup1 = EGG_GROUP_HUMAN_LIKE, - .eggGroup2 = EGG_GROUP_HUMAN_LIKE, + .eggGroups = { EGG_GROUP_HUMAN_LIKE, EGG_GROUP_HUMAN_LIKE }, .abilities = {ABILITY_KEEN_EYE, ABILITY_NONE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_PURPLE, @@ -9600,8 +9004,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 60, .baseSpAttack = 46, .baseSpDefense = 41, - .type1 = TYPE_WATER, - .type2 = TYPE_GROUND, + .types = { TYPE_WATER, TYPE_GROUND }, .catchRate = 190, .expYield = 92, .evYield_HP = 1, @@ -9616,8 +9019,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 20, .friendship = 70, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroup1 = EGG_GROUP_WATER_2, - .eggGroup2 = EGG_GROUP_WATER_2, + .eggGroups = { EGG_GROUP_WATER_2, EGG_GROUP_WATER_2 }, .abilities = {ABILITY_OBLIVIOUS, ABILITY_NONE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_GRAY, @@ -9632,8 +9034,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 60, .baseSpAttack = 76, .baseSpDefense = 71, - .type1 = TYPE_WATER, - .type2 = TYPE_GROUND, + .types = { TYPE_WATER, TYPE_GROUND }, .catchRate = 75, .expYield = 158, .evYield_HP = 2, @@ -9648,8 +9049,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 20, .friendship = 70, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroup1 = EGG_GROUP_WATER_2, - .eggGroup2 = EGG_GROUP_WATER_2, + .eggGroups = { EGG_GROUP_WATER_2, EGG_GROUP_WATER_2 }, .abilities = {ABILITY_OBLIVIOUS, ABILITY_NONE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_BLUE, @@ -9664,8 +9064,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 97, .baseSpAttack = 40, .baseSpDefense = 65, - .type1 = TYPE_WATER, - .type2 = TYPE_WATER, + .types = { TYPE_WATER, TYPE_WATER }, .catchRate = 225, .expYield = 110, .evYield_HP = 0, @@ -9680,8 +9079,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 20, .friendship = 70, .growthRate = GROWTH_FAST, - .eggGroup1 = EGG_GROUP_WATER_2, - .eggGroup2 = EGG_GROUP_WATER_2, + .eggGroups = { EGG_GROUP_WATER_2, EGG_GROUP_WATER_2 }, .abilities = {ABILITY_SWIFT_SWIM, ABILITY_NONE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_PINK, @@ -9696,8 +9094,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 35, .baseSpAttack = 50, .baseSpDefense = 35, - .type1 = TYPE_WATER, - .type2 = TYPE_WATER, + .types = { TYPE_WATER, TYPE_WATER }, .catchRate = 205, .expYield = 111, .evYield_HP = 0, @@ -9712,8 +9109,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 15, .friendship = 70, .growthRate = GROWTH_FLUCTUATING, - .eggGroup1 = EGG_GROUP_WATER_1, - .eggGroup2 = EGG_GROUP_WATER_3, + .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_WATER_3 }, .abilities = {ABILITY_HYPER_CUTTER, ABILITY_SHELL_ARMOR}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_RED, @@ -9728,8 +9124,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 55, .baseSpAttack = 90, .baseSpDefense = 55, - .type1 = TYPE_WATER, - .type2 = TYPE_DARK, + .types = { TYPE_WATER, TYPE_DARK }, .catchRate = 155, .expYield = 161, .evYield_HP = 0, @@ -9744,8 +9139,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 15, .friendship = 70, .growthRate = GROWTH_FLUCTUATING, - .eggGroup1 = EGG_GROUP_WATER_1, - .eggGroup2 = EGG_GROUP_WATER_3, + .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_WATER_3 }, .abilities = {ABILITY_HYPER_CUTTER, ABILITY_SHELL_ARMOR}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_RED, @@ -9760,8 +9154,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 80, .baseSpAttack = 10, .baseSpDefense = 55, - .type1 = TYPE_WATER, - .type2 = TYPE_WATER, + .types = { TYPE_WATER, TYPE_WATER }, .catchRate = 255, .expYield = 61, .evYield_HP = 0, @@ -9776,8 +9169,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 20, .friendship = 70, .growthRate = GROWTH_ERRATIC, - .eggGroup1 = EGG_GROUP_WATER_1, - .eggGroup2 = EGG_GROUP_DRAGON, + .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_DRAGON }, .abilities = {ABILITY_SWIFT_SWIM, ABILITY_NONE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_BROWN, @@ -9792,8 +9184,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 81, .baseSpAttack = 100, .baseSpDefense = 125, - .type1 = TYPE_WATER, - .type2 = TYPE_WATER, + .types = { TYPE_WATER, TYPE_WATER }, .catchRate = 60, .expYield = 213, .evYield_HP = 0, @@ -9808,8 +9199,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 20, .friendship = 70, .growthRate = GROWTH_ERRATIC, - .eggGroup1 = EGG_GROUP_WATER_1, - .eggGroup2 = EGG_GROUP_DRAGON, + .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_DRAGON }, .abilities = {ABILITY_MARVEL_SCALE, ABILITY_NONE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_PINK, @@ -9824,8 +9214,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 65, .baseSpAttack = 65, .baseSpDefense = 20, - .type1 = TYPE_WATER, - .type2 = TYPE_DARK, + .types = { TYPE_WATER, TYPE_DARK }, .catchRate = 225, .expYield = 88, .evYield_HP = 0, @@ -9840,8 +9229,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 20, .friendship = 35, .growthRate = GROWTH_SLOW, - .eggGroup1 = EGG_GROUP_WATER_2, - .eggGroup2 = EGG_GROUP_WATER_2, + .eggGroups = { EGG_GROUP_WATER_2, EGG_GROUP_WATER_2 }, .abilities = {ABILITY_ROUGH_SKIN, ABILITY_NONE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_RED, @@ -9856,8 +9244,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 95, .baseSpAttack = 95, .baseSpDefense = 40, - .type1 = TYPE_WATER, - .type2 = TYPE_DARK, + .types = { TYPE_WATER, TYPE_DARK }, .catchRate = 60, .expYield = 175, .evYield_HP = 0, @@ -9872,8 +9259,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 20, .friendship = 35, .growthRate = GROWTH_SLOW, - .eggGroup1 = EGG_GROUP_WATER_2, - .eggGroup2 = EGG_GROUP_WATER_2, + .eggGroups = { EGG_GROUP_WATER_2, EGG_GROUP_WATER_2 }, .abilities = {ABILITY_ROUGH_SKIN, ABILITY_NONE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_BLUE, @@ -9888,8 +9274,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 10, .baseSpAttack = 45, .baseSpDefense = 45, - .type1 = TYPE_GROUND, - .type2 = TYPE_GROUND, + .types = { TYPE_GROUND, TYPE_GROUND }, .catchRate = 255, .expYield = 73, .evYield_HP = 0, @@ -9904,8 +9289,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 20, .friendship = 70, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroup1 = EGG_GROUP_BUG, - .eggGroup2 = EGG_GROUP_BUG, + .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG }, .abilities = {ABILITY_HYPER_CUTTER, ABILITY_ARENA_TRAP}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_BROWN, @@ -9920,8 +9304,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 70, .baseSpAttack = 50, .baseSpDefense = 50, - .type1 = TYPE_GROUND, - .type2 = TYPE_DRAGON, + .types = { TYPE_GROUND, TYPE_DRAGON }, .catchRate = 120, .expYield = 126, .evYield_HP = 0, @@ -9936,8 +9319,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 20, .friendship = 70, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroup1 = EGG_GROUP_BUG, - .eggGroup2 = EGG_GROUP_BUG, + .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG }, .abilities = {ABILITY_LEVITATE, ABILITY_LEVITATE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_GREEN, @@ -9952,8 +9334,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 100, .baseSpAttack = 80, .baseSpDefense = 80, - .type1 = TYPE_GROUND, - .type2 = TYPE_DRAGON, + .types = { TYPE_GROUND, TYPE_DRAGON }, .catchRate = 45, .expYield = 197, .evYield_HP = 0, @@ -9968,8 +9349,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 20, .friendship = 70, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroup1 = EGG_GROUP_BUG, - .eggGroup2 = EGG_GROUP_BUG, + .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG }, .abilities = {ABILITY_LEVITATE, ABILITY_LEVITATE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_GREEN, @@ -9984,8 +9364,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 25, .baseSpAttack = 20, .baseSpDefense = 30, - .type1 = TYPE_FIGHTING, - .type2 = TYPE_FIGHTING, + .types = { TYPE_FIGHTING, TYPE_FIGHTING }, .catchRate = 180, .expYield = 87, .evYield_HP = 1, @@ -10000,8 +9379,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 20, .friendship = 70, .growthRate = GROWTH_FLUCTUATING, - .eggGroup1 = EGG_GROUP_HUMAN_LIKE, - .eggGroup2 = EGG_GROUP_HUMAN_LIKE, + .eggGroups = { EGG_GROUP_HUMAN_LIKE, EGG_GROUP_HUMAN_LIKE }, .abilities = {ABILITY_THICK_FAT, ABILITY_GUTS}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_YELLOW, @@ -10016,8 +9394,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 50, .baseSpAttack = 40, .baseSpDefense = 60, - .type1 = TYPE_FIGHTING, - .type2 = TYPE_FIGHTING, + .types = { TYPE_FIGHTING, TYPE_FIGHTING }, .catchRate = 200, .expYield = 184, .evYield_HP = 2, @@ -10032,8 +9409,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 20, .friendship = 70, .growthRate = GROWTH_FLUCTUATING, - .eggGroup1 = EGG_GROUP_HUMAN_LIKE, - .eggGroup2 = EGG_GROUP_HUMAN_LIKE, + .eggGroups = { EGG_GROUP_HUMAN_LIKE, EGG_GROUP_HUMAN_LIKE }, .abilities = {ABILITY_THICK_FAT, ABILITY_GUTS}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_BROWN, @@ -10048,8 +9424,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 65, .baseSpAttack = 65, .baseSpDefense = 40, - .type1 = TYPE_ELECTRIC, - .type2 = TYPE_ELECTRIC, + .types = { TYPE_ELECTRIC, TYPE_ELECTRIC }, .catchRate = 120, .expYield = 104, .evYield_HP = 0, @@ -10064,8 +9439,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 20, .friendship = 70, .growthRate = GROWTH_SLOW, - .eggGroup1 = EGG_GROUP_FIELD, - .eggGroup2 = EGG_GROUP_FIELD, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, .abilities = {ABILITY_STATIC, ABILITY_LIGHTNING_ROD}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_GREEN, @@ -10080,8 +9454,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 105, .baseSpAttack = 105, .baseSpDefense = 60, - .type1 = TYPE_ELECTRIC, - .type2 = TYPE_ELECTRIC, + .types = { TYPE_ELECTRIC, TYPE_ELECTRIC }, .catchRate = 45, .expYield = 168, .evYield_HP = 0, @@ -10096,8 +9469,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 20, .friendship = 70, .growthRate = GROWTH_SLOW, - .eggGroup1 = EGG_GROUP_FIELD, - .eggGroup2 = EGG_GROUP_FIELD, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, .abilities = {ABILITY_STATIC, ABILITY_LIGHTNING_ROD}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_YELLOW, @@ -10112,8 +9484,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 35, .baseSpAttack = 65, .baseSpDefense = 45, - .type1 = TYPE_FIRE, - .type2 = TYPE_GROUND, + .types = { TYPE_FIRE, TYPE_GROUND }, .catchRate = 255, .expYield = 88, .evYield_HP = 0, @@ -10128,8 +9499,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 20, .friendship = 70, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroup1 = EGG_GROUP_FIELD, - .eggGroup2 = EGG_GROUP_FIELD, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, .abilities = {ABILITY_OBLIVIOUS, ABILITY_NONE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_YELLOW, @@ -10144,8 +9514,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 40, .baseSpAttack = 105, .baseSpDefense = 75, - .type1 = TYPE_FIRE, - .type2 = TYPE_GROUND, + .types = { TYPE_FIRE, TYPE_GROUND }, .catchRate = 150, .expYield = 175, .evYield_HP = 0, @@ -10160,8 +9529,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 20, .friendship = 70, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroup1 = EGG_GROUP_FIELD, - .eggGroup2 = EGG_GROUP_FIELD, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, .abilities = {ABILITY_MAGMA_ARMOR, ABILITY_NONE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_RED, @@ -10176,8 +9544,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 25, .baseSpAttack = 55, .baseSpDefense = 50, - .type1 = TYPE_ICE, - .type2 = TYPE_WATER, + .types = { TYPE_ICE, TYPE_WATER }, .catchRate = 255, .expYield = 75, .evYield_HP = 1, @@ -10192,8 +9559,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 20, .friendship = 70, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroup1 = EGG_GROUP_WATER_1, - .eggGroup2 = EGG_GROUP_FIELD, + .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_FIELD }, .abilities = {ABILITY_THICK_FAT, ABILITY_NONE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_BLUE, @@ -10208,8 +9574,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 45, .baseSpAttack = 75, .baseSpDefense = 70, - .type1 = TYPE_ICE, - .type2 = TYPE_WATER, + .types = { TYPE_ICE, TYPE_WATER }, .catchRate = 120, .expYield = 128, .evYield_HP = 2, @@ -10224,8 +9589,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 20, .friendship = 70, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroup1 = EGG_GROUP_WATER_1, - .eggGroup2 = EGG_GROUP_FIELD, + .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_FIELD }, .abilities = {ABILITY_THICK_FAT, ABILITY_NONE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_BLUE, @@ -10240,8 +9604,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 65, .baseSpAttack = 95, .baseSpDefense = 90, - .type1 = TYPE_ICE, - .type2 = TYPE_WATER, + .types = { TYPE_ICE, TYPE_WATER }, .catchRate = 45, .expYield = 192, .evYield_HP = 3, @@ -10256,8 +9619,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 20, .friendship = 70, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroup1 = EGG_GROUP_WATER_1, - .eggGroup2 = EGG_GROUP_FIELD, + .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_FIELD }, .abilities = {ABILITY_THICK_FAT, ABILITY_NONE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_BLUE, @@ -10272,8 +9634,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 35, .baseSpAttack = 85, .baseSpDefense = 40, - .type1 = TYPE_GRASS, - .type2 = TYPE_GRASS, + .types = { TYPE_GRASS, TYPE_GRASS }, .catchRate = 190, .expYield = 97, .evYield_HP = 0, @@ -10288,8 +9649,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 20, .friendship = 35, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroup1 = EGG_GROUP_GRASS, - .eggGroup2 = EGG_GROUP_HUMAN_LIKE, + .eggGroups = { EGG_GROUP_GRASS, EGG_GROUP_HUMAN_LIKE }, .abilities = {ABILITY_SAND_VEIL, ABILITY_NONE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_GREEN, @@ -10304,8 +9664,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 55, .baseSpAttack = 115, .baseSpDefense = 60, - .type1 = TYPE_GRASS, - .type2 = TYPE_DARK, + .types = { TYPE_GRASS, TYPE_DARK }, .catchRate = 60, .expYield = 177, .evYield_HP = 0, @@ -10320,8 +9679,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 20, .friendship = 35, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroup1 = EGG_GROUP_GRASS, - .eggGroup2 = EGG_GROUP_HUMAN_LIKE, + .eggGroups = { EGG_GROUP_GRASS, EGG_GROUP_HUMAN_LIKE }, .abilities = {ABILITY_SAND_VEIL, ABILITY_NONE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_GREEN, @@ -10336,8 +9694,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 50, .baseSpAttack = 50, .baseSpDefense = 50, - .type1 = TYPE_ICE, - .type2 = TYPE_ICE, + .types = { TYPE_ICE, TYPE_ICE }, .catchRate = 190, .expYield = 74, .evYield_HP = 1, @@ -10352,8 +9709,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 20, .friendship = 70, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroup1 = EGG_GROUP_FAIRY, - .eggGroup2 = EGG_GROUP_MINERAL, + .eggGroups = { EGG_GROUP_FAIRY, EGG_GROUP_MINERAL }, .abilities = {ABILITY_INNER_FOCUS, ABILITY_NONE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_GRAY, @@ -10368,8 +9724,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 80, .baseSpAttack = 80, .baseSpDefense = 80, - .type1 = TYPE_ICE, - .type2 = TYPE_ICE, + .types = { TYPE_ICE, TYPE_ICE }, .catchRate = 75, .expYield = 187, .evYield_HP = 2, @@ -10384,8 +9739,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 20, .friendship = 70, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroup1 = EGG_GROUP_FAIRY, - .eggGroup2 = EGG_GROUP_MINERAL, + .eggGroups = { EGG_GROUP_FAIRY, EGG_GROUP_MINERAL }, .abilities = {ABILITY_INNER_FOCUS, ABILITY_NONE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_GRAY, @@ -10400,8 +9754,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 70, .baseSpAttack = 95, .baseSpDefense = 85, - .type1 = TYPE_ROCK, - .type2 = TYPE_PSYCHIC, + .types = { TYPE_ROCK, TYPE_PSYCHIC }, .catchRate = 45, .expYield = 150, .evYield_HP = 0, @@ -10416,8 +9769,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 25, .friendship = 70, .growthRate = GROWTH_FAST, - .eggGroup1 = EGG_GROUP_MINERAL, - .eggGroup2 = EGG_GROUP_MINERAL, + .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_MINERAL }, .abilities = {ABILITY_LEVITATE, ABILITY_NONE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_YELLOW, @@ -10432,8 +9784,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 70, .baseSpAttack = 55, .baseSpDefense = 65, - .type1 = TYPE_ROCK, - .type2 = TYPE_PSYCHIC, + .types = { TYPE_ROCK, TYPE_PSYCHIC }, .catchRate = 45, .expYield = 150, .evYield_HP = 0, @@ -10448,8 +9799,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 25, .friendship = 70, .growthRate = GROWTH_FAST, - .eggGroup1 = EGG_GROUP_MINERAL, - .eggGroup2 = EGG_GROUP_MINERAL, + .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_MINERAL }, .abilities = {ABILITY_LEVITATE, ABILITY_NONE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_RED, @@ -10464,8 +9814,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 20, .baseSpAttack = 20, .baseSpDefense = 40, - .type1 = TYPE_NORMAL, - .type2 = TYPE_NORMAL, + .types = { TYPE_NORMAL, TYPE_NORMAL }, .catchRate = 150, .expYield = 33, .evYield_HP = 1, @@ -10480,8 +9829,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 10, .friendship = 70, .growthRate = GROWTH_FAST, - .eggGroup1 = EGG_GROUP_UNDISCOVERED, - .eggGroup2 = EGG_GROUP_UNDISCOVERED, + .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED }, .abilities = {ABILITY_THICK_FAT, ABILITY_HUGE_POWER}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_BLUE, @@ -10496,8 +9844,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 60, .baseSpAttack = 70, .baseSpDefense = 80, - .type1 = TYPE_PSYCHIC, - .type2 = TYPE_PSYCHIC, + .types = { TYPE_PSYCHIC, TYPE_PSYCHIC }, .catchRate = 255, .expYield = 89, .evYield_HP = 0, @@ -10512,8 +9859,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 20, .friendship = 70, .growthRate = GROWTH_FAST, - .eggGroup1 = EGG_GROUP_FIELD, - .eggGroup2 = EGG_GROUP_FIELD, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, .abilities = {ABILITY_THICK_FAT, ABILITY_OWN_TEMPO}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_BLACK, @@ -10528,8 +9874,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 80, .baseSpAttack = 90, .baseSpDefense = 110, - .type1 = TYPE_PSYCHIC, - .type2 = TYPE_PSYCHIC, + .types = { TYPE_PSYCHIC, TYPE_PSYCHIC }, .catchRate = 60, .expYield = 164, .evYield_HP = 0, @@ -10544,8 +9889,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 20, .friendship = 70, .growthRate = GROWTH_FAST, - .eggGroup1 = EGG_GROUP_FIELD, - .eggGroup2 = EGG_GROUP_FIELD, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, .abilities = {ABILITY_THICK_FAT, ABILITY_OWN_TEMPO}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_PURPLE, @@ -10560,8 +9904,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 95, .baseSpAttack = 85, .baseSpDefense = 75, - .type1 = TYPE_ELECTRIC, - .type2 = TYPE_ELECTRIC, + .types = { TYPE_ELECTRIC, TYPE_ELECTRIC }, .catchRate = 200, .expYield = 120, .evYield_HP = 0, @@ -10576,8 +9919,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 20, .friendship = 70, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroup1 = EGG_GROUP_FAIRY, - .eggGroup2 = EGG_GROUP_FAIRY, + .eggGroups = { EGG_GROUP_FAIRY, EGG_GROUP_FAIRY }, .abilities = {ABILITY_PLUS, ABILITY_NONE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_YELLOW, @@ -10592,8 +9934,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 95, .baseSpAttack = 75, .baseSpDefense = 85, - .type1 = TYPE_ELECTRIC, - .type2 = TYPE_ELECTRIC, + .types = { TYPE_ELECTRIC, TYPE_ELECTRIC }, .catchRate = 200, .expYield = 120, .evYield_HP = 0, @@ -10608,8 +9949,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 20, .friendship = 70, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroup1 = EGG_GROUP_FAIRY, - .eggGroup2 = EGG_GROUP_FAIRY, + .eggGroups = { EGG_GROUP_FAIRY, EGG_GROUP_FAIRY }, .abilities = {ABILITY_MINUS, ABILITY_NONE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_YELLOW, @@ -10624,8 +9964,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 50, .baseSpAttack = 55, .baseSpDefense = 55, - .type1 = TYPE_STEEL, - .type2 = TYPE_STEEL, + .types = { TYPE_STEEL, TYPE_STEEL }, .catchRate = 45, .expYield = 98, .evYield_HP = 0, @@ -10640,8 +9979,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 20, .friendship = 70, .growthRate = GROWTH_FAST, - .eggGroup1 = EGG_GROUP_FIELD, - .eggGroup2 = EGG_GROUP_FAIRY, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FAIRY }, .abilities = {ABILITY_HYPER_CUTTER, ABILITY_INTIMIDATE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_BLACK, @@ -10656,8 +9994,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 60, .baseSpAttack = 40, .baseSpDefense = 55, - .type1 = TYPE_FIGHTING, - .type2 = TYPE_PSYCHIC, + .types = { TYPE_FIGHTING, TYPE_PSYCHIC }, .catchRate = 180, .expYield = 91, .evYield_HP = 0, @@ -10672,8 +10009,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 20, .friendship = 70, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroup1 = EGG_GROUP_HUMAN_LIKE, - .eggGroup2 = EGG_GROUP_HUMAN_LIKE, + .eggGroups = { EGG_GROUP_HUMAN_LIKE, EGG_GROUP_HUMAN_LIKE }, .abilities = {ABILITY_PURE_POWER, ABILITY_NONE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_BLUE, @@ -10688,8 +10024,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 80, .baseSpAttack = 60, .baseSpDefense = 75, - .type1 = TYPE_FIGHTING, - .type2 = TYPE_PSYCHIC, + .types = { TYPE_FIGHTING, TYPE_PSYCHIC }, .catchRate = 90, .expYield = 153, .evYield_HP = 0, @@ -10704,8 +10039,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 20, .friendship = 70, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroup1 = EGG_GROUP_HUMAN_LIKE, - .eggGroup2 = EGG_GROUP_HUMAN_LIKE, + .eggGroups = { EGG_GROUP_HUMAN_LIKE, EGG_GROUP_HUMAN_LIKE }, .abilities = {ABILITY_PURE_POWER, ABILITY_NONE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_RED, @@ -10720,8 +10054,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 50, .baseSpAttack = 40, .baseSpDefense = 75, - .type1 = TYPE_NORMAL, - .type2 = TYPE_FLYING, + .types = { TYPE_NORMAL, TYPE_FLYING }, .catchRate = 255, .expYield = 74, .evYield_HP = 0, @@ -10736,8 +10069,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 20, .friendship = 70, .growthRate = GROWTH_ERRATIC, - .eggGroup1 = EGG_GROUP_FLYING, - .eggGroup2 = EGG_GROUP_DRAGON, + .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_DRAGON }, .abilities = {ABILITY_NATURAL_CURE, ABILITY_NONE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_BLUE, @@ -10752,8 +10084,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 80, .baseSpAttack = 70, .baseSpDefense = 105, - .type1 = TYPE_DRAGON, - .type2 = TYPE_FLYING, + .types = { TYPE_DRAGON, TYPE_FLYING }, .catchRate = 45, .expYield = 188, .evYield_HP = 0, @@ -10768,8 +10099,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 20, .friendship = 70, .growthRate = GROWTH_ERRATIC, - .eggGroup1 = EGG_GROUP_FLYING, - .eggGroup2 = EGG_GROUP_DRAGON, + .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_DRAGON }, .abilities = {ABILITY_NATURAL_CURE, ABILITY_NONE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_BLUE, @@ -10784,8 +10114,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 23, .baseSpAttack = 23, .baseSpDefense = 48, - .type1 = TYPE_PSYCHIC, - .type2 = TYPE_PSYCHIC, + .types = { TYPE_PSYCHIC, TYPE_PSYCHIC }, .catchRate = 125, .expYield = 44, .evYield_HP = 1, @@ -10800,8 +10129,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 20, .friendship = 70, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroup1 = EGG_GROUP_UNDISCOVERED, - .eggGroup2 = EGG_GROUP_UNDISCOVERED, + .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED }, .abilities = {ABILITY_SHADOW_TAG, ABILITY_NONE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_BLUE, @@ -10816,8 +10144,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 25, .baseSpAttack = 30, .baseSpDefense = 90, - .type1 = TYPE_GHOST, - .type2 = TYPE_GHOST, + .types = { TYPE_GHOST, TYPE_GHOST }, .catchRate = 190, .expYield = 97, .evYield_HP = 0, @@ -10832,8 +10159,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 25, .friendship = 35, .growthRate = GROWTH_FAST, - .eggGroup1 = EGG_GROUP_AMORPHOUS, - .eggGroup2 = EGG_GROUP_AMORPHOUS, + .eggGroups = { EGG_GROUP_AMORPHOUS, EGG_GROUP_AMORPHOUS }, .abilities = {ABILITY_LEVITATE, ABILITY_NONE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_BLACK, @@ -10848,8 +10174,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 25, .baseSpAttack = 60, .baseSpDefense = 130, - .type1 = TYPE_GHOST, - .type2 = TYPE_GHOST, + .types = { TYPE_GHOST, TYPE_GHOST }, .catchRate = 90, .expYield = 179, .evYield_HP = 0, @@ -10864,8 +10189,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 25, .friendship = 35, .growthRate = GROWTH_FAST, - .eggGroup1 = EGG_GROUP_AMORPHOUS, - .eggGroup2 = EGG_GROUP_AMORPHOUS, + .eggGroups = { EGG_GROUP_AMORPHOUS, EGG_GROUP_AMORPHOUS }, .abilities = {ABILITY_PRESSURE, ABILITY_NONE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_BLACK, @@ -10880,8 +10204,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 65, .baseSpAttack = 100, .baseSpDefense = 80, - .type1 = TYPE_GRASS, - .type2 = TYPE_POISON, + .types = { TYPE_GRASS, TYPE_POISON }, .catchRate = 150, .expYield = 152, .evYield_HP = 0, @@ -10896,8 +10219,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 20, .friendship = 70, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroup1 = EGG_GROUP_FAIRY, - .eggGroup2 = EGG_GROUP_GRASS, + .eggGroups = { EGG_GROUP_FAIRY, EGG_GROUP_GRASS }, .abilities = {ABILITY_NATURAL_CURE, ABILITY_POISON_POINT}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_GREEN, @@ -10912,8 +10234,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 30, .baseSpAttack = 35, .baseSpDefense = 35, - .type1 = TYPE_NORMAL, - .type2 = TYPE_NORMAL, + .types = { TYPE_NORMAL, TYPE_NORMAL }, .catchRate = 255, .expYield = 83, .evYield_HP = 1, @@ -10928,8 +10249,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 15, .friendship = 70, .growthRate = GROWTH_SLOW, - .eggGroup1 = EGG_GROUP_FIELD, - .eggGroup2 = EGG_GROUP_FIELD, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, .abilities = {ABILITY_TRUANT, ABILITY_NONE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_BROWN, @@ -10944,8 +10264,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 90, .baseSpAttack = 55, .baseSpDefense = 55, - .type1 = TYPE_NORMAL, - .type2 = TYPE_NORMAL, + .types = { TYPE_NORMAL, TYPE_NORMAL }, .catchRate = 120, .expYield = 126, .evYield_HP = 0, @@ -10960,8 +10279,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 15, .friendship = 70, .growthRate = GROWTH_SLOW, - .eggGroup1 = EGG_GROUP_FIELD, - .eggGroup2 = EGG_GROUP_FIELD, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, .abilities = {ABILITY_VITAL_SPIRIT, ABILITY_NONE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_WHITE, @@ -10976,8 +10294,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 100, .baseSpAttack = 95, .baseSpDefense = 65, - .type1 = TYPE_NORMAL, - .type2 = TYPE_NORMAL, + .types = { TYPE_NORMAL, TYPE_NORMAL }, .catchRate = 45, .expYield = 210, .evYield_HP = 3, @@ -10992,8 +10309,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 15, .friendship = 70, .growthRate = GROWTH_SLOW, - .eggGroup1 = EGG_GROUP_FIELD, - .eggGroup2 = EGG_GROUP_FIELD, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, .abilities = {ABILITY_TRUANT, ABILITY_NONE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_BROWN, @@ -11008,8 +10324,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 40, .baseSpAttack = 43, .baseSpDefense = 53, - .type1 = TYPE_POISON, - .type2 = TYPE_POISON, + .types = { TYPE_POISON, TYPE_POISON }, .catchRate = 225, .expYield = 75, .evYield_HP = 1, @@ -11024,8 +10339,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 20, .friendship = 70, .growthRate = GROWTH_FLUCTUATING, - .eggGroup1 = EGG_GROUP_AMORPHOUS, - .eggGroup2 = EGG_GROUP_AMORPHOUS, + .eggGroups = { EGG_GROUP_AMORPHOUS, EGG_GROUP_AMORPHOUS }, .abilities = {ABILITY_LIQUID_OOZE, ABILITY_STICKY_HOLD}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_GREEN, @@ -11040,8 +10354,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 55, .baseSpAttack = 73, .baseSpDefense = 83, - .type1 = TYPE_POISON, - .type2 = TYPE_POISON, + .types = { TYPE_POISON, TYPE_POISON }, .catchRate = 75, .expYield = 168, .evYield_HP = 2, @@ -11056,8 +10369,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 20, .friendship = 70, .growthRate = GROWTH_FLUCTUATING, - .eggGroup1 = EGG_GROUP_AMORPHOUS, - .eggGroup2 = EGG_GROUP_AMORPHOUS, + .eggGroups = { EGG_GROUP_AMORPHOUS, EGG_GROUP_AMORPHOUS }, .abilities = {ABILITY_LIQUID_OOZE, ABILITY_STICKY_HOLD}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_PURPLE, @@ -11072,8 +10384,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 51, .baseSpAttack = 72, .baseSpDefense = 87, - .type1 = TYPE_GRASS, - .type2 = TYPE_FLYING, + .types = { TYPE_GRASS, TYPE_FLYING }, .catchRate = 200, .expYield = 169, .evYield_HP = 2, @@ -11088,8 +10399,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 25, .friendship = 70, .growthRate = GROWTH_SLOW, - .eggGroup1 = EGG_GROUP_MONSTER, - .eggGroup2 = EGG_GROUP_GRASS, + .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_GRASS }, .abilities = {ABILITY_CHLOROPHYLL, ABILITY_NONE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_GREEN, @@ -11104,8 +10414,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 28, .baseSpAttack = 51, .baseSpDefense = 23, - .type1 = TYPE_NORMAL, - .type2 = TYPE_NORMAL, + .types = { TYPE_NORMAL, TYPE_NORMAL }, .catchRate = 190, .expYield = 68, .evYield_HP = 1, @@ -11120,8 +10429,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 20, .friendship = 70, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroup1 = EGG_GROUP_MONSTER, - .eggGroup2 = EGG_GROUP_FIELD, + .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_FIELD }, .abilities = {ABILITY_SOUNDPROOF, ABILITY_NONE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_PINK, @@ -11136,8 +10444,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 48, .baseSpAttack = 71, .baseSpDefense = 43, - .type1 = TYPE_NORMAL, - .type2 = TYPE_NORMAL, + .types = { TYPE_NORMAL, TYPE_NORMAL }, .catchRate = 120, .expYield = 126, .evYield_HP = 2, @@ -11152,8 +10459,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 20, .friendship = 70, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroup1 = EGG_GROUP_MONSTER, - .eggGroup2 = EGG_GROUP_FIELD, + .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_FIELD }, .abilities = {ABILITY_SOUNDPROOF, ABILITY_NONE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_BLUE, @@ -11168,8 +10474,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 68, .baseSpAttack = 91, .baseSpDefense = 63, - .type1 = TYPE_NORMAL, - .type2 = TYPE_NORMAL, + .types = { TYPE_NORMAL, TYPE_NORMAL }, .catchRate = 45, .expYield = 184, .evYield_HP = 3, @@ -11184,8 +10489,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 20, .friendship = 70, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroup1 = EGG_GROUP_MONSTER, - .eggGroup2 = EGG_GROUP_FIELD, + .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_FIELD }, .abilities = {ABILITY_SOUNDPROOF, ABILITY_NONE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_BLUE, @@ -11200,8 +10504,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 32, .baseSpAttack = 74, .baseSpDefense = 55, - .type1 = TYPE_WATER, - .type2 = TYPE_WATER, + .types = { TYPE_WATER, TYPE_WATER }, .catchRate = 255, .expYield = 142, .evYield_HP = 0, @@ -11216,8 +10519,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 20, .friendship = 70, .growthRate = GROWTH_ERRATIC, - .eggGroup1 = EGG_GROUP_WATER_1, - .eggGroup2 = EGG_GROUP_WATER_1, + .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_WATER_1 }, .abilities = {ABILITY_SHELL_ARMOR, ABILITY_NONE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_BLUE, @@ -11232,8 +10534,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 52, .baseSpAttack = 94, .baseSpDefense = 75, - .type1 = TYPE_WATER, - .type2 = TYPE_WATER, + .types = { TYPE_WATER, TYPE_WATER }, .catchRate = 60, .expYield = 178, .evYield_HP = 0, @@ -11248,8 +10549,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 20, .friendship = 70, .growthRate = GROWTH_ERRATIC, - .eggGroup1 = EGG_GROUP_WATER_1, - .eggGroup2 = EGG_GROUP_WATER_1, + .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_WATER_1 }, .abilities = {ABILITY_SWIFT_SWIM, ABILITY_NONE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_BLUE, @@ -11264,8 +10564,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 52, .baseSpAttack = 114, .baseSpDefense = 75, - .type1 = TYPE_WATER, - .type2 = TYPE_WATER, + .types = { TYPE_WATER, TYPE_WATER }, .catchRate = 60, .expYield = 178, .evYield_HP = 0, @@ -11280,8 +10579,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 20, .friendship = 70, .growthRate = GROWTH_ERRATIC, - .eggGroup1 = EGG_GROUP_WATER_1, - .eggGroup2 = EGG_GROUP_WATER_1, + .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_WATER_1 }, .abilities = {ABILITY_SWIFT_SWIM, ABILITY_NONE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_PINK, @@ -11296,8 +10594,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 75, .baseSpAttack = 75, .baseSpDefense = 60, - .type1 = TYPE_DARK, - .type2 = TYPE_DARK, + .types = { TYPE_DARK, TYPE_DARK }, .catchRate = 30, .expYield = 174, .evYield_HP = 0, @@ -11312,8 +10609,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 25, .friendship = 35, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroup1 = EGG_GROUP_FIELD, - .eggGroup2 = EGG_GROUP_FIELD, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, .abilities = {ABILITY_PRESSURE, ABILITY_NONE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_WHITE, @@ -11328,8 +10624,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 45, .baseSpAttack = 63, .baseSpDefense = 33, - .type1 = TYPE_GHOST, - .type2 = TYPE_GHOST, + .types = { TYPE_GHOST, TYPE_GHOST }, .catchRate = 225, .expYield = 97, .evYield_HP = 0, @@ -11344,8 +10639,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 25, .friendship = 35, .growthRate = GROWTH_FAST, - .eggGroup1 = EGG_GROUP_AMORPHOUS, - .eggGroup2 = EGG_GROUP_AMORPHOUS, + .eggGroups = { EGG_GROUP_AMORPHOUS, EGG_GROUP_AMORPHOUS }, .abilities = {ABILITY_INSOMNIA, ABILITY_NONE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_BLACK, @@ -11360,8 +10654,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 65, .baseSpAttack = 83, .baseSpDefense = 63, - .type1 = TYPE_GHOST, - .type2 = TYPE_GHOST, + .types = { TYPE_GHOST, TYPE_GHOST }, .catchRate = 45, .expYield = 179, .evYield_HP = 0, @@ -11376,8 +10669,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 25, .friendship = 35, .growthRate = GROWTH_FAST, - .eggGroup1 = EGG_GROUP_AMORPHOUS, - .eggGroup2 = EGG_GROUP_AMORPHOUS, + .eggGroups = { EGG_GROUP_AMORPHOUS, EGG_GROUP_AMORPHOUS }, .abilities = {ABILITY_INSOMNIA, ABILITY_NONE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_BLACK, @@ -11392,8 +10684,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 65, .baseSpAttack = 100, .baseSpDefense = 60, - .type1 = TYPE_POISON, - .type2 = TYPE_POISON, + .types = { TYPE_POISON, TYPE_POISON }, .catchRate = 90, .expYield = 165, .evYield_HP = 0, @@ -11408,8 +10699,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 20, .friendship = 70, .growthRate = GROWTH_FLUCTUATING, - .eggGroup1 = EGG_GROUP_FIELD, - .eggGroup2 = EGG_GROUP_DRAGON, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_DRAGON }, .abilities = {ABILITY_SHED_SKIN, ABILITY_NONE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_BLACK, @@ -11424,8 +10714,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 90, .baseSpAttack = 60, .baseSpDefense = 60, - .type1 = TYPE_NORMAL, - .type2 = TYPE_NORMAL, + .types = { TYPE_NORMAL, TYPE_NORMAL }, .catchRate = 90, .expYield = 165, .evYield_HP = 0, @@ -11440,8 +10729,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 20, .friendship = 70, .growthRate = GROWTH_ERRATIC, - .eggGroup1 = EGG_GROUP_FIELD, - .eggGroup2 = EGG_GROUP_FIELD, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, .abilities = {ABILITY_IMMUNITY, ABILITY_NONE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_WHITE, @@ -11456,8 +10744,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 55, .baseSpAttack = 45, .baseSpDefense = 65, - .type1 = TYPE_WATER, - .type2 = TYPE_ROCK, + .types = { TYPE_WATER, TYPE_ROCK }, .catchRate = 25, .expYield = 198, .evYield_HP = 1, @@ -11472,8 +10759,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 40, .friendship = 70, .growthRate = GROWTH_SLOW, - .eggGroup1 = EGG_GROUP_WATER_1, - .eggGroup2 = EGG_GROUP_WATER_2, + .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_WATER_2 }, .abilities = {ABILITY_SWIFT_SWIM, ABILITY_ROCK_HEAD}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_GRAY, @@ -11488,8 +10774,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 30, .baseSpAttack = 40, .baseSpDefense = 40, - .type1 = TYPE_STEEL, - .type2 = TYPE_ROCK, + .types = { TYPE_STEEL, TYPE_ROCK }, .catchRate = 180, .expYield = 96, .evYield_HP = 0, @@ -11504,8 +10789,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 35, .friendship = 35, .growthRate = GROWTH_SLOW, - .eggGroup1 = EGG_GROUP_MONSTER, - .eggGroup2 = EGG_GROUP_MONSTER, + .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_MONSTER }, .abilities = {ABILITY_STURDY, ABILITY_ROCK_HEAD}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_GRAY, @@ -11520,8 +10804,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 40, .baseSpAttack = 50, .baseSpDefense = 50, - .type1 = TYPE_STEEL, - .type2 = TYPE_ROCK, + .types = { TYPE_STEEL, TYPE_ROCK }, .catchRate = 90, .expYield = 152, .evYield_HP = 0, @@ -11536,8 +10819,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 35, .friendship = 35, .growthRate = GROWTH_SLOW, - .eggGroup1 = EGG_GROUP_MONSTER, - .eggGroup2 = EGG_GROUP_MONSTER, + .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_MONSTER }, .abilities = {ABILITY_STURDY, ABILITY_ROCK_HEAD}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_GRAY, @@ -11552,8 +10834,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 50, .baseSpAttack = 60, .baseSpDefense = 60, - .type1 = TYPE_STEEL, - .type2 = TYPE_ROCK, + .types = { TYPE_STEEL, TYPE_ROCK }, .catchRate = 45, .expYield = 205, .evYield_HP = 0, @@ -11568,8 +10849,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 35, .friendship = 35, .growthRate = GROWTH_SLOW, - .eggGroup1 = EGG_GROUP_MONSTER, - .eggGroup2 = EGG_GROUP_MONSTER, + .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_MONSTER }, .abilities = {ABILITY_STURDY, ABILITY_ROCK_HEAD}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_GRAY, @@ -11584,8 +10864,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 70, .baseSpAttack = 70, .baseSpDefense = 70, - .type1 = TYPE_NORMAL, - .type2 = TYPE_NORMAL, + .types = { TYPE_NORMAL, TYPE_NORMAL }, .catchRate = 45, .expYield = 145, .evYield_HP = 1, @@ -11600,8 +10879,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 25, .friendship = 70, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroup1 = EGG_GROUP_FAIRY, - .eggGroup2 = EGG_GROUP_AMORPHOUS, + .eggGroups = { EGG_GROUP_FAIRY, EGG_GROUP_AMORPHOUS }, .abilities = {ABILITY_FORECAST, ABILITY_NONE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_WHITE, @@ -11616,8 +10894,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 85, .baseSpAttack = 47, .baseSpDefense = 75, - .type1 = TYPE_BUG, - .type2 = TYPE_BUG, + .types = { TYPE_BUG, TYPE_BUG }, .catchRate = 150, .expYield = 146, .evYield_HP = 0, @@ -11632,8 +10909,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 15, .friendship = 70, .growthRate = GROWTH_ERRATIC, - .eggGroup1 = EGG_GROUP_BUG, - .eggGroup2 = EGG_GROUP_HUMAN_LIKE, + .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_HUMAN_LIKE }, .abilities = {ABILITY_ILLUMINATE, ABILITY_SWARM}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_GRAY, @@ -11648,8 +10924,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 85, .baseSpAttack = 73, .baseSpDefense = 75, - .type1 = TYPE_BUG, - .type2 = TYPE_BUG, + .types = { TYPE_BUG, TYPE_BUG }, .catchRate = 150, .expYield = 146, .evYield_HP = 0, @@ -11664,8 +10939,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 15, .friendship = 70, .growthRate = GROWTH_FLUCTUATING, - .eggGroup1 = EGG_GROUP_BUG, - .eggGroup2 = EGG_GROUP_HUMAN_LIKE, + .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_HUMAN_LIKE }, .abilities = {ABILITY_OBLIVIOUS, ABILITY_NONE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_PURPLE, @@ -11680,8 +10954,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 23, .baseSpAttack = 61, .baseSpDefense = 87, - .type1 = TYPE_ROCK, - .type2 = TYPE_GRASS, + .types = { TYPE_ROCK, TYPE_GRASS }, .catchRate = 45, .expYield = 121, .evYield_HP = 0, @@ -11696,8 +10969,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 30, .friendship = 70, .growthRate = GROWTH_ERRATIC, - .eggGroup1 = EGG_GROUP_WATER_3, - .eggGroup2 = EGG_GROUP_WATER_3, + .eggGroups = { EGG_GROUP_WATER_3, EGG_GROUP_WATER_3 }, .abilities = {ABILITY_SUCTION_CUPS, ABILITY_NONE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_PURPLE, @@ -11712,8 +10984,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 43, .baseSpAttack = 81, .baseSpDefense = 107, - .type1 = TYPE_ROCK, - .type2 = TYPE_GRASS, + .types = { TYPE_ROCK, TYPE_GRASS }, .catchRate = 45, .expYield = 201, .evYield_HP = 0, @@ -11728,8 +10999,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 30, .friendship = 70, .growthRate = GROWTH_ERRATIC, - .eggGroup1 = EGG_GROUP_WATER_3, - .eggGroup2 = EGG_GROUP_WATER_3, + .eggGroups = { EGG_GROUP_WATER_3, EGG_GROUP_WATER_3 }, .abilities = {ABILITY_SUCTION_CUPS, ABILITY_NONE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_GREEN, @@ -11744,8 +11014,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 75, .baseSpAttack = 40, .baseSpDefense = 50, - .type1 = TYPE_ROCK, - .type2 = TYPE_BUG, + .types = { TYPE_ROCK, TYPE_BUG }, .catchRate = 45, .expYield = 119, .evYield_HP = 0, @@ -11760,8 +11029,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 30, .friendship = 70, .growthRate = GROWTH_ERRATIC, - .eggGroup1 = EGG_GROUP_WATER_3, - .eggGroup2 = EGG_GROUP_WATER_3, + .eggGroups = { EGG_GROUP_WATER_3, EGG_GROUP_WATER_3 }, .abilities = {ABILITY_BATTLE_ARMOR, ABILITY_NONE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_GRAY, @@ -11776,8 +11044,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 45, .baseSpAttack = 70, .baseSpDefense = 80, - .type1 = TYPE_ROCK, - .type2 = TYPE_BUG, + .types = { TYPE_ROCK, TYPE_BUG }, .catchRate = 45, .expYield = 200, .evYield_HP = 0, @@ -11792,8 +11059,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 30, .friendship = 70, .growthRate = GROWTH_ERRATIC, - .eggGroup1 = EGG_GROUP_WATER_3, - .eggGroup2 = EGG_GROUP_WATER_3, + .eggGroups = { EGG_GROUP_WATER_3, EGG_GROUP_WATER_3 }, .abilities = {ABILITY_BATTLE_ARMOR, ABILITY_NONE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_GRAY, @@ -11808,8 +11074,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 40, .baseSpAttack = 45, .baseSpDefense = 35, - .type1 = TYPE_PSYCHIC, - .type2 = TYPE_PSYCHIC, + .types = { TYPE_PSYCHIC, TYPE_PSYCHIC }, .catchRate = 235, .expYield = 70, .evYield_HP = 0, @@ -11824,8 +11089,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 20, .friendship = 35, .growthRate = GROWTH_SLOW, - .eggGroup1 = EGG_GROUP_AMORPHOUS, - .eggGroup2 = EGG_GROUP_AMORPHOUS, + .eggGroups = { EGG_GROUP_AMORPHOUS, EGG_GROUP_AMORPHOUS }, .abilities = {ABILITY_SYNCHRONIZE, ABILITY_TRACE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_WHITE, @@ -11840,8 +11104,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 50, .baseSpAttack = 65, .baseSpDefense = 55, - .type1 = TYPE_PSYCHIC, - .type2 = TYPE_PSYCHIC, + .types = { TYPE_PSYCHIC, TYPE_PSYCHIC }, .catchRate = 120, .expYield = 140, .evYield_HP = 0, @@ -11856,8 +11119,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 20, .friendship = 35, .growthRate = GROWTH_SLOW, - .eggGroup1 = EGG_GROUP_AMORPHOUS, - .eggGroup2 = EGG_GROUP_AMORPHOUS, + .eggGroups = { EGG_GROUP_AMORPHOUS, EGG_GROUP_AMORPHOUS }, .abilities = {ABILITY_SYNCHRONIZE, ABILITY_TRACE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_WHITE, @@ -11872,8 +11134,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 80, .baseSpAttack = 125, .baseSpDefense = 115, - .type1 = TYPE_PSYCHIC, - .type2 = TYPE_PSYCHIC, + .types = { TYPE_PSYCHIC, TYPE_PSYCHIC }, .catchRate = 45, .expYield = 208, .evYield_HP = 0, @@ -11888,8 +11149,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 20, .friendship = 35, .growthRate = GROWTH_SLOW, - .eggGroup1 = EGG_GROUP_AMORPHOUS, - .eggGroup2 = EGG_GROUP_AMORPHOUS, + .eggGroups = { EGG_GROUP_AMORPHOUS, EGG_GROUP_AMORPHOUS }, .abilities = {ABILITY_SYNCHRONIZE, ABILITY_TRACE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_WHITE, @@ -11904,8 +11164,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 50, .baseSpAttack = 40, .baseSpDefense = 30, - .type1 = TYPE_DRAGON, - .type2 = TYPE_DRAGON, + .types = { TYPE_DRAGON, TYPE_DRAGON }, .catchRate = 45, .expYield = 89, .evYield_HP = 0, @@ -11920,8 +11179,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 40, .friendship = 35, .growthRate = GROWTH_SLOW, - .eggGroup1 = EGG_GROUP_DRAGON, - .eggGroup2 = EGG_GROUP_DRAGON, + .eggGroups = { EGG_GROUP_DRAGON, EGG_GROUP_DRAGON }, .abilities = {ABILITY_ROCK_HEAD, ABILITY_NONE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_BLUE, @@ -11936,8 +11194,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 50, .baseSpAttack = 60, .baseSpDefense = 50, - .type1 = TYPE_DRAGON, - .type2 = TYPE_DRAGON, + .types = { TYPE_DRAGON, TYPE_DRAGON }, .catchRate = 45, .expYield = 144, .evYield_HP = 0, @@ -11952,8 +11209,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 40, .friendship = 35, .growthRate = GROWTH_SLOW, - .eggGroup1 = EGG_GROUP_DRAGON, - .eggGroup2 = EGG_GROUP_DRAGON, + .eggGroups = { EGG_GROUP_DRAGON, EGG_GROUP_DRAGON }, .abilities = {ABILITY_ROCK_HEAD, ABILITY_NONE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_WHITE, @@ -11968,8 +11224,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 100, .baseSpAttack = 110, .baseSpDefense = 80, - .type1 = TYPE_DRAGON, - .type2 = TYPE_FLYING, + .types = { TYPE_DRAGON, TYPE_FLYING }, .catchRate = 45, .expYield = 218, .evYield_HP = 0, @@ -11984,8 +11239,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 40, .friendship = 35, .growthRate = GROWTH_SLOW, - .eggGroup1 = EGG_GROUP_DRAGON, - .eggGroup2 = EGG_GROUP_DRAGON, + .eggGroups = { EGG_GROUP_DRAGON, EGG_GROUP_DRAGON }, .abilities = {ABILITY_INTIMIDATE, ABILITY_NONE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_BLUE, @@ -12000,8 +11254,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 30, .baseSpAttack = 35, .baseSpDefense = 60, - .type1 = TYPE_STEEL, - .type2 = TYPE_PSYCHIC, + .types = { TYPE_STEEL, TYPE_PSYCHIC }, .catchRate = 3, .expYield = 103, .evYield_HP = 0, @@ -12016,8 +11269,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 40, .friendship = 35, .growthRate = GROWTH_SLOW, - .eggGroup1 = EGG_GROUP_MINERAL, - .eggGroup2 = EGG_GROUP_MINERAL, + .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_MINERAL }, .abilities = {ABILITY_CLEAR_BODY, ABILITY_NONE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_BLUE, @@ -12032,8 +11284,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 50, .baseSpAttack = 55, .baseSpDefense = 80, - .type1 = TYPE_STEEL, - .type2 = TYPE_PSYCHIC, + .types = { TYPE_STEEL, TYPE_PSYCHIC }, .catchRate = 3, .expYield = 153, .evYield_HP = 0, @@ -12048,8 +11299,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 40, .friendship = 35, .growthRate = GROWTH_SLOW, - .eggGroup1 = EGG_GROUP_MINERAL, - .eggGroup2 = EGG_GROUP_MINERAL, + .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_MINERAL }, .abilities = {ABILITY_CLEAR_BODY, ABILITY_NONE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_BLUE, @@ -12064,8 +11314,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 70, .baseSpAttack = 95, .baseSpDefense = 90, - .type1 = TYPE_STEEL, - .type2 = TYPE_PSYCHIC, + .types = { TYPE_STEEL, TYPE_PSYCHIC }, .catchRate = 3, .expYield = 210, .evYield_HP = 0, @@ -12080,8 +11329,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 40, .friendship = 35, .growthRate = GROWTH_SLOW, - .eggGroup1 = EGG_GROUP_MINERAL, - .eggGroup2 = EGG_GROUP_MINERAL, + .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_MINERAL }, .abilities = {ABILITY_CLEAR_BODY, ABILITY_NONE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_BLUE, @@ -12096,8 +11344,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 50, .baseSpAttack = 50, .baseSpDefense = 100, - .type1 = TYPE_ROCK, - .type2 = TYPE_ROCK, + .types = { TYPE_ROCK, TYPE_ROCK }, .catchRate = 3, .expYield = 217, .evYield_HP = 0, @@ -12112,8 +11359,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 80, .friendship = 35, .growthRate = GROWTH_SLOW, - .eggGroup1 = EGG_GROUP_UNDISCOVERED, - .eggGroup2 = EGG_GROUP_UNDISCOVERED, + .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED }, .abilities = {ABILITY_CLEAR_BODY, ABILITY_NONE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_BROWN, @@ -12128,8 +11374,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 50, .baseSpAttack = 100, .baseSpDefense = 200, - .type1 = TYPE_ICE, - .type2 = TYPE_ICE, + .types = { TYPE_ICE, TYPE_ICE }, .catchRate = 3, .expYield = 216, .evYield_HP = 0, @@ -12144,8 +11389,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 80, .friendship = 35, .growthRate = GROWTH_SLOW, - .eggGroup1 = EGG_GROUP_UNDISCOVERED, - .eggGroup2 = EGG_GROUP_UNDISCOVERED, + .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED }, .abilities = {ABILITY_CLEAR_BODY, ABILITY_NONE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_BLUE, @@ -12160,8 +11404,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 50, .baseSpAttack = 75, .baseSpDefense = 150, - .type1 = TYPE_STEEL, - .type2 = TYPE_STEEL, + .types = { TYPE_STEEL, TYPE_STEEL }, .catchRate = 3, .expYield = 215, .evYield_HP = 0, @@ -12176,8 +11419,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 80, .friendship = 35, .growthRate = GROWTH_SLOW, - .eggGroup1 = EGG_GROUP_UNDISCOVERED, - .eggGroup2 = EGG_GROUP_UNDISCOVERED, + .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED }, .abilities = {ABILITY_CLEAR_BODY, ABILITY_NONE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_GRAY, @@ -12192,8 +11434,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 90, .baseSpAttack = 150, .baseSpDefense = 140, - .type1 = TYPE_WATER, - .type2 = TYPE_WATER, + .types = { TYPE_WATER, TYPE_WATER }, .catchRate = 5, .expYield = 218, .evYield_HP = 0, @@ -12208,8 +11449,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 120, .friendship = 0, .growthRate = GROWTH_SLOW, - .eggGroup1 = EGG_GROUP_UNDISCOVERED, - .eggGroup2 = EGG_GROUP_UNDISCOVERED, + .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED }, .abilities = {ABILITY_DRIZZLE, ABILITY_NONE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_BLUE, @@ -12224,8 +11464,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 90, .baseSpAttack = 100, .baseSpDefense = 90, - .type1 = TYPE_GROUND, - .type2 = TYPE_GROUND, + .types = { TYPE_GROUND, TYPE_GROUND }, .catchRate = 5, .expYield = 218, .evYield_HP = 0, @@ -12240,8 +11479,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 120, .friendship = 0, .growthRate = GROWTH_SLOW, - .eggGroup1 = EGG_GROUP_UNDISCOVERED, - .eggGroup2 = EGG_GROUP_UNDISCOVERED, + .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED }, .abilities = {ABILITY_DROUGHT, ABILITY_NONE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_RED, @@ -12256,8 +11494,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 95, .baseSpAttack = 150, .baseSpDefense = 90, - .type1 = TYPE_DRAGON, - .type2 = TYPE_FLYING, + .types = { TYPE_DRAGON, TYPE_FLYING }, .catchRate = 3, .expYield = 220, .evYield_HP = 0, @@ -12272,8 +11509,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 120, .friendship = 0, .growthRate = GROWTH_SLOW, - .eggGroup1 = EGG_GROUP_UNDISCOVERED, - .eggGroup2 = EGG_GROUP_UNDISCOVERED, + .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED }, .abilities = {ABILITY_AIR_LOCK, ABILITY_NONE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_GREEN, @@ -12288,8 +11524,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 110, .baseSpAttack = 110, .baseSpDefense = 130, - .type1 = TYPE_DRAGON, - .type2 = TYPE_PSYCHIC, + .types = { TYPE_DRAGON, TYPE_PSYCHIC }, .catchRate = 3, .expYield = 211, .evYield_HP = 0, @@ -12304,8 +11539,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 120, .friendship = 90, .growthRate = GROWTH_SLOW, - .eggGroup1 = EGG_GROUP_UNDISCOVERED, - .eggGroup2 = EGG_GROUP_UNDISCOVERED, + .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED }, .abilities = {ABILITY_LEVITATE, ABILITY_NONE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_RED, @@ -12320,8 +11554,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 110, .baseSpAttack = 130, .baseSpDefense = 110, - .type1 = TYPE_DRAGON, - .type2 = TYPE_PSYCHIC, + .types = { TYPE_DRAGON, TYPE_PSYCHIC }, .catchRate = 3, .expYield = 211, .evYield_HP = 0, @@ -12336,8 +11569,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 120, .friendship = 90, .growthRate = GROWTH_SLOW, - .eggGroup1 = EGG_GROUP_UNDISCOVERED, - .eggGroup2 = EGG_GROUP_UNDISCOVERED, + .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED }, .abilities = {ABILITY_LEVITATE, ABILITY_NONE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_BLUE, @@ -12352,8 +11584,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 100, .baseSpAttack = 100, .baseSpDefense = 100, - .type1 = TYPE_STEEL, - .type2 = TYPE_PSYCHIC, + .types = { TYPE_STEEL, TYPE_PSYCHIC }, .catchRate = 3, .expYield = 215, .evYield_HP = 3, @@ -12368,8 +11599,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 120, .friendship = 100, .growthRate = GROWTH_SLOW, - .eggGroup1 = EGG_GROUP_UNDISCOVERED, - .eggGroup2 = EGG_GROUP_UNDISCOVERED, + .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED }, .abilities = {ABILITY_SERENE_GRACE, ABILITY_NONE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_YELLOW, @@ -12384,8 +11614,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 150, .baseSpAttack = 150, .baseSpDefense = 50, - .type1 = TYPE_PSYCHIC, - .type2 = TYPE_PSYCHIC, + .types = { TYPE_PSYCHIC, TYPE_PSYCHIC }, .catchRate = 3, .expYield = 215, .evYield_HP = 0, @@ -12400,8 +11629,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 120, .friendship = 0, .growthRate = GROWTH_SLOW, - .eggGroup1 = EGG_GROUP_UNDISCOVERED, - .eggGroup2 = EGG_GROUP_UNDISCOVERED, + .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED }, .abilities = {ABILITY_PRESSURE, ABILITY_NONE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_RED, @@ -12416,8 +11644,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 65, .baseSpAttack = 95, .baseSpDefense = 80, - .type1 = TYPE_PSYCHIC, - .type2 = TYPE_PSYCHIC, + .types = { TYPE_PSYCHIC, TYPE_PSYCHIC }, .catchRate = 45, .expYield = 147, .evYield_HP = 0, @@ -12432,8 +11659,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .eggCycles = 25, .friendship = 70, .growthRate = GROWTH_FAST, - .eggGroup1 = EGG_GROUP_AMORPHOUS, - .eggGroup2 = EGG_GROUP_AMORPHOUS, + .eggGroups = { EGG_GROUP_AMORPHOUS, EGG_GROUP_AMORPHOUS }, .abilities = {ABILITY_LEVITATE, ABILITY_NONE}, .safariZoneFleeRate = 0, .bodyColor = BODY_COLOR_BLUE, diff --git a/src/daycare.c b/src/daycare.c index c0b692aa4..c3f4dd990 100644 --- a/src/daycare.c +++ b/src/daycare.c @@ -1031,8 +1031,8 @@ static u8 GetDaycareCompatibilityScore(struct DayCare *daycare) trainerIds[i] = GetBoxMonData(&daycare->mons[i].mon, MON_DATA_OT_ID); personality = GetBoxMonData(&daycare->mons[i].mon, MON_DATA_PERSONALITY); genders[i] = GetGenderFromSpeciesAndPersonality(species[i], personality); - eggGroups[i][0] = gSpeciesInfo[species[i]].eggGroup1; - eggGroups[i][1] = gSpeciesInfo[species[i]].eggGroup2; + eggGroups[i][0] = gSpeciesInfo[species[i]].eggGroups[0]; + eggGroups[i][1] = gSpeciesInfo[species[i]].eggGroups[1]; } // check unbreedable egg group diff --git a/src/field_specials.c b/src/field_specials.c index 03aebb0ce..5c7d07916 100644 --- a/src/field_specials.c +++ b/src/field_specials.c @@ -1196,7 +1196,7 @@ void IsGrassTypeInParty(void) if (GetMonData(pokemon, MON_DATA_SANITY_HAS_SPECIES) && !GetMonData(pokemon, MON_DATA_IS_EGG)) { species = GetMonData(pokemon, MON_DATA_SPECIES); - if (gSpeciesInfo[species].type1 == TYPE_GRASS || gSpeciesInfo[species].type2 == TYPE_GRASS) + if (gSpeciesInfo[species].types[0] == TYPE_GRASS || gSpeciesInfo[species].types[1] == TYPE_GRASS) { gSpecialVar_Result = TRUE; return; diff --git a/src/pokedex.c b/src/pokedex.c index 33355d197..ef67a1429 100644 --- a/src/pokedex.c +++ b/src/pokedex.c @@ -4727,8 +4727,8 @@ static int DoPokedexSearch(u8 dexMode, u8 order, u8 abcGroup, u8 bodyColor, u8 t { species = NationalPokedexNumToSpecies(sPokedexView->pokedexList[i].dexNum); - types[0] = gSpeciesInfo[species].type1; - types[1] = gSpeciesInfo[species].type2; + types[0] = gSpeciesInfo[species].types[0]; + types[1] = gSpeciesInfo[species].types[1]; if (types[0] == type1 || types[1] == type1) { sPokedexView->pokedexList[resultsCount] = sPokedexView->pokedexList[i]; @@ -4745,8 +4745,8 @@ static int DoPokedexSearch(u8 dexMode, u8 order, u8 abcGroup, u8 bodyColor, u8 t { species = NationalPokedexNumToSpecies(sPokedexView->pokedexList[i].dexNum); - types[0] = gSpeciesInfo[species].type1; - types[1] = gSpeciesInfo[species].type2; + types[0] = gSpeciesInfo[species].types[0]; + types[1] = gSpeciesInfo[species].types[1]; if ((types[0] == type1 && types[1] == type2) || (types[0] == type2 && types[1] == type1)) { sPokedexView->pokedexList[resultsCount] = sPokedexView->pokedexList[i]; diff --git a/src/pokemon.c b/src/pokemon.c index 1e40220e2..e8d334a6a 100644 --- a/src/pokemon.c +++ b/src/pokemon.c @@ -4651,8 +4651,8 @@ void CopyPlayerPartyMonToBattleData(u8 battlerId, u8 partyIndex) gBattleMons[battlerId].isEgg = GetMonData(&gPlayerParty[partyIndex], MON_DATA_IS_EGG, NULL); gBattleMons[battlerId].abilityNum = GetMonData(&gPlayerParty[partyIndex], MON_DATA_ABILITY_NUM, NULL); gBattleMons[battlerId].otId = GetMonData(&gPlayerParty[partyIndex], MON_DATA_OT_ID, NULL); - gBattleMons[battlerId].type1 = gSpeciesInfo[gBattleMons[battlerId].species].type1; - gBattleMons[battlerId].type2 = gSpeciesInfo[gBattleMons[battlerId].species].type2; + gBattleMons[battlerId].type1 = gSpeciesInfo[gBattleMons[battlerId].species].types[0]; + gBattleMons[battlerId].type2 = gSpeciesInfo[gBattleMons[battlerId].species].types[1]; gBattleMons[battlerId].ability = GetAbilityBySpecies(gBattleMons[battlerId].species, gBattleMons[battlerId].abilityNum); GetMonData(&gPlayerParty[partyIndex], MON_DATA_NICKNAME, nickname); StringCopy_Nickname(gBattleMons[battlerId].nickname, nickname); diff --git a/src/pokemon_summary_screen.c b/src/pokemon_summary_screen.c index 4f2b57131..55c905b7a 100644 --- a/src/pokemon_summary_screen.c +++ b/src/pokemon_summary_screen.c @@ -3788,10 +3788,10 @@ static void SetMonTypeIcons(void) } else { - SetTypeSpritePosAndPal(gSpeciesInfo[summary->species].type1, 120, 48, SPRITE_ARR_ID_TYPE); - if (gSpeciesInfo[summary->species].type1 != gSpeciesInfo[summary->species].type2) + SetTypeSpritePosAndPal(gSpeciesInfo[summary->species].types[0], 120, 48, SPRITE_ARR_ID_TYPE); + if (gSpeciesInfo[summary->species].types[0] != gSpeciesInfo[summary->species].types[1]) { - SetTypeSpritePosAndPal(gSpeciesInfo[summary->species].type2, 160, 48, SPRITE_ARR_ID_TYPE + 1); + SetTypeSpritePosAndPal(gSpeciesInfo[summary->species].types[1], 160, 48, SPRITE_ARR_ID_TYPE + 1); SetSpriteInvisibility(SPRITE_ARR_ID_TYPE + 1, FALSE); } else diff --git a/src/trade.c b/src/trade.c index 61ebaf4cc..aa7e43e30 100644 --- a/src/trade.c +++ b/src/trade.c @@ -2465,8 +2465,8 @@ int GetUnionRoomTradeMessageId(struct RfuGameCompatibilityData player, struct Rf else { // Player's Pokémon must be of the type the partner requested - if (gSpeciesInfo[playerSpecies2].type1 != requestedType - && gSpeciesInfo[playerSpecies2].type2 != requestedType) + if (gSpeciesInfo[playerSpecies2].types[0] != requestedType + && gSpeciesInfo[playerSpecies2].types[1] != requestedType) return UR_TRADE_MSG_NOT_MON_PARTNER_WANTS; } diff --git a/src/union_room.c b/src/union_room.c index aad8dbaa9..9c38adeed 100644 --- a/src/union_room.c +++ b/src/union_room.c @@ -4187,7 +4187,7 @@ static s32 IsRequestedTradeInPlayerParty(u32 type, u32 species) for (i = 0; i < gPlayerPartyCount; i++) { species = GetMonData(&gPlayerParty[i], MON_DATA_SPECIES2); - if (gSpeciesInfo[species].type1 == type || gSpeciesInfo[species].type2 == type) + if (gSpeciesInfo[species].types[0] == type || gSpeciesInfo[species].types[1] == type) return UR_TRADE_MATCH; } return UR_TRADE_NOTYPE; diff --git a/src/wild_encounter.c b/src/wild_encounter.c index 6ba13a007..cc3ce8227 100644 --- a/src/wild_encounter.c +++ b/src/wild_encounter.c @@ -913,7 +913,7 @@ static bool8 TryGetRandomWildMonIndexByType(const struct WildPokemon *wildMon, u for (validMonCount = 0, i = 0; i < numMon; i++) { - if (gSpeciesInfo[wildMon[i].species].type1 == type || gSpeciesInfo[wildMon[i].species].type2 == type) + if (gSpeciesInfo[wildMon[i].species].types[0] == type || gSpeciesInfo[wildMon[i].species].types[1] == type) validIndexes[validMonCount++] = i; } From 79992203610aaec806c6cbf4404ec9e331b94e4b Mon Sep 17 00:00:00 2001 From: Eduardo Quezada Date: Tue, 22 Nov 2022 18:37:38 -0300 Subject: [PATCH 12/69] Fixed modern compile --- src/data/pokemon/species_info.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/data/pokemon/species_info.h b/src/data/pokemon/species_info.h index a40a73e93..344852baf 100644 --- a/src/data/pokemon/species_info.h +++ b/src/data/pokemon/species_info.h @@ -10,7 +10,7 @@ .baseSpeed = 150, \ .baseSpAttack = 150, \ .baseSpDefense = 50, \ - .types { TYPE_NORMAL, TYPE_NORMAL}, \ + .types = { TYPE_NORMAL, TYPE_NORMAL}, \ .catchRate = 3, \ .expYield = 1, \ .evYield_HP = 2, \ From 6d28882e444da0f774ccab67d0801d92a28ffbda Mon Sep 17 00:00:00 2001 From: ghoulslash Date: Tue, 6 Dec 2022 09:48:36 -0500 Subject: [PATCH 13/69] start gen9 hold effects --- asm/macros/battle_script.inc | 7 ++++++ data/battle_scripts_1.s | 3 +++ include/constants/hold_effects.h | 8 ++++++ src/battle_ai_util.c | 24 ++++++++++++------ src/battle_script_commands.c | 43 +++++++++++++++++++++++++------- src/battle_util.c | 14 +++++++++-- 6 files changed, 80 insertions(+), 19 deletions(-) diff --git a/asm/macros/battle_script.inc b/asm/macros/battle_script.inc index 27c5a86c4..a19c7308d 100644 --- a/asm/macros/battle_script.inc +++ b/asm/macros/battle_script.inc @@ -1311,6 +1311,13 @@ .4byte \ptr .endm + .macro jumpifholdeffect battler:req, holdEffect:req, ptr:req + callnative BS_JumpIfHoldEffect + .byte \battler + .2byte \holdEffect + .4byte \ptr + .endm + @ various command changed to more readable macros .macro cancelmultiturnmoves battler:req various \battler, VARIOUS_CANCEL_MULTI_TURN_MOVES diff --git a/data/battle_scripts_1.s b/data/battle_scripts_1.s index 6b8067721..8010d4ee7 100644 --- a/data/battle_scripts_1.s +++ b/data/battle_scripts_1.s @@ -6996,6 +6996,7 @@ BattleScript_GulpMissileGulping:: tryfaintmon BS_ATTACKER getbattlerfainted BS_ATTACKER jumpifbyte CMP_EQUAL, gBattleCommunication, TRUE, BattleScript_GulpMissileNoSecondEffectGulping + jumpifholdeffect BS_ATTACKER, HOLD_EFFECT_CLEAR_AMULET, BattleScript_GulpMissileNoSecondEffectGulping jumpifability BS_ATTACKER, ABILITY_CLEAR_BODY, BattleScript_GulpMissileNoSecondEffectGulping jumpifability BS_ATTACKER, ABILITY_FULL_METAL_BODY, BattleScript_GulpMissileNoSecondEffectGulping jumpifability BS_ATTACKER, ABILITY_WHITE_SMOKE, BattleScript_GulpMissileNoSecondEffectGulping @@ -8211,6 +8212,7 @@ BattleScript_IntimidateActivatesLoop: setstatchanger STAT_ATK, 1, TRUE trygetintimidatetarget BattleScript_IntimidateActivatesReturn jumpifstatus2 BS_TARGET, STATUS2_SUBSTITUTE, BattleScript_IntimidateActivatesLoopIncrement + jumpifholdeffect BS_TARGET, HOLD_EFFECT_CLEAR_AMULET, BattleScript_IntimidatePrevented_Item jumpifability BS_TARGET, ABILITY_CLEAR_BODY, BattleScript_IntimidatePrevented jumpifability BS_TARGET, ABILITY_HYPER_CUTTER, BattleScript_IntimidatePrevented jumpifability BS_TARGET, ABILITY_WHITE_SMOKE, BattleScript_IntimidatePrevented @@ -8235,6 +8237,7 @@ BattleScript_IntimidateActivatesReturn: BattleScript_IntimidatePrevented: pause B_WAIT_TIME_SHORT call BattleScript_AbilityPopUp +BattleScript_IntimidatePrevented_Item: setbyte gBattleCommunication STAT_ATK stattextbuffer BS_ATTACKER printstring STRINGID_STATWASNOTLOWERED diff --git a/include/constants/hold_effects.h b/include/constants/hold_effects.h index e0361795d..cd4256632 100644 --- a/include/constants/hold_effects.h +++ b/include/constants/hold_effects.h @@ -152,6 +152,14 @@ #define HOLD_EFFECT_HEAVY_DUTY_BOOTS 173 #define HOLD_EFFECT_THROAT_SPRAY 174 +// Gen9 hold effects +#define HOLD_EFFECT_ABILITY_SHIELD 175 +#define HOLD_EFFECT_CLEAR_AMULET 176 +#define HOLD_EFFECT_MIRROR_HERB 177 // Not implemented. +#define HOLD_EFFECT_PUNCHING_GLOVE 178 +#define HOLD_EFFECT_COVERT_CLOAK 179 +#define HOLD_EFFECT_LOADED_DICE 180 + #define HOLD_EFFECT_CHOICE(holdEffect)((holdEffect == HOLD_EFFECT_CHOICE_BAND || holdEffect == HOLD_EFFECT_CHOICE_SCARF || holdEffect == HOLD_EFFECT_CHOICE_SPECS)) // Terrain seed params diff --git a/src/battle_ai_util.c b/src/battle_ai_util.c index 35b1b3bfd..c624e02e1 100644 --- a/src/battle_ai_util.c +++ b/src/battle_ai_util.c @@ -1634,7 +1634,8 @@ bool32 ShouldLowerStat(u8 battler, u16 battlerAbility, u8 stat) if ((gBattleMons[battler].statStages[stat] > MIN_STAT_STAGE && battlerAbility != ABILITY_CONTRARY) || (battlerAbility == ABILITY_CONTRARY && gBattleMons[battler].statStages[stat] < MAX_STAT_STAGE)) { - if (battlerAbility == ABILITY_CLEAR_BODY + if (AI_GetHoldEffect(battler) == HOLD_EFFECT_CLEAR_AMULET + || battlerAbility == ABILITY_CLEAR_BODY || battlerAbility == ABILITY_WHITE_SMOKE || battlerAbility == ABILITY_FULL_METAL_BODY) return FALSE; @@ -1711,7 +1712,8 @@ bool32 ShouldLowerAttack(u8 battlerAtk, u8 battlerDef, u16 defAbility) && defAbility != ABILITY_CLEAR_BODY && defAbility != ABILITY_WHITE_SMOKE && defAbility != ABILITY_FULL_METAL_BODY - && defAbility != ABILITY_HYPER_CUTTER) + && defAbility != ABILITY_HYPER_CUTTER + && AI_DATA->holdEffects[battlerDef] != HOLD_EFFECT_CLEAR_AMULET) return TRUE; return FALSE; } @@ -1727,7 +1729,8 @@ bool32 ShouldLowerDefense(u8 battlerAtk, u8 battlerDef, u16 defAbility) && defAbility != ABILITY_CLEAR_BODY && defAbility != ABILITY_WHITE_SMOKE && defAbility != ABILITY_FULL_METAL_BODY - && defAbility != ABILITY_BIG_PECKS) + && defAbility != ABILITY_BIG_PECKS + && AI_DATA->holdEffects[battlerDef] != HOLD_EFFECT_CLEAR_AMULET) return TRUE; return FALSE; } @@ -1741,7 +1744,8 @@ bool32 ShouldLowerSpeed(u8 battlerAtk, u8 battlerDef, u16 defAbility) && defAbility != ABILITY_CONTRARY && defAbility != ABILITY_CLEAR_BODY && defAbility != ABILITY_FULL_METAL_BODY - && defAbility != ABILITY_WHITE_SMOKE) + && defAbility != ABILITY_WHITE_SMOKE + && AI_DATA->holdEffects[battlerDef] != HOLD_EFFECT_CLEAR_AMULET) return TRUE; return FALSE; } @@ -1756,7 +1760,8 @@ bool32 ShouldLowerSpAtk(u8 battlerAtk, u8 battlerDef, u16 defAbility) && defAbility != ABILITY_CONTRARY && defAbility != ABILITY_CLEAR_BODY && defAbility != ABILITY_FULL_METAL_BODY - && defAbility != ABILITY_WHITE_SMOKE) + && defAbility != ABILITY_WHITE_SMOKE + && AI_DATA->holdEffects[battlerDef] != HOLD_EFFECT_CLEAR_AMULET) return TRUE; return FALSE; } @@ -1771,7 +1776,8 @@ bool32 ShouldLowerSpDef(u8 battlerAtk, u8 battlerDef, u16 defAbility) && defAbility != ABILITY_CONTRARY && defAbility != ABILITY_CLEAR_BODY && defAbility != ABILITY_FULL_METAL_BODY - && defAbility != ABILITY_WHITE_SMOKE) + && defAbility != ABILITY_WHITE_SMOKE + && AI_DATA->holdEffects[battlerDef] != HOLD_EFFECT_CLEAR_AMULET) return TRUE; return FALSE; } @@ -1785,7 +1791,8 @@ bool32 ShouldLowerAccuracy(u8 battlerAtk, u8 battlerDef, u16 defAbility) && defAbility != ABILITY_CLEAR_BODY && defAbility != ABILITY_WHITE_SMOKE && defAbility != ABILITY_FULL_METAL_BODY - && defAbility != ABILITY_KEEN_EYE) + && defAbility != ABILITY_KEEN_EYE + && AI_DATA->holdEffects[battlerDef] != HOLD_EFFECT_CLEAR_AMULET) return TRUE; return FALSE; } @@ -1799,7 +1806,8 @@ bool32 ShouldLowerEvasion(u8 battlerAtk, u8 battlerDef, u16 defAbility) && defAbility != ABILITY_CONTRARY && defAbility != ABILITY_CLEAR_BODY && defAbility != ABILITY_FULL_METAL_BODY - && defAbility != ABILITY_WHITE_SMOKE) + && defAbility != ABILITY_WHITE_SMOKE + && AI_DATA->holdEffects[battlerDef] != HOLD_EFFECT_CLEAR_AMULET) return TRUE; return FALSE; } diff --git a/src/battle_script_commands.c b/src/battle_script_commands.c index 09ef738df..6c207e8d4 100644 --- a/src/battle_script_commands.c +++ b/src/battle_script_commands.c @@ -2824,13 +2824,16 @@ void SetMoveEffect(bool32 primary, u32 certain) // Just in case this flag is still set gBattleScripting.moveEffect &= ~MOVE_EFFECT_CERTAIN; - - if (battlerAbility == ABILITY_SHIELD_DUST && !(gHitMarker & HITMARKER_IGNORE_SAFEGUARD) - && !primary && gBattleScripting.moveEffect <= 9) + + if ((battlerAbility == ABILITY_SHIELD_DUST + || GetBattlerHoldEffect(gEffectBattler, TRUE) == HOLD_EFFECT_COVERT_CLOAK) + && !(gHitMarker & HITMARKER_IGNORE_SAFEGUARD) + && !primary + && (gBattleScripting.moveEffect <= MOVE_EFFECT_TRI_ATTACK || gBattleScripting.moveEffect >= MOVE_EFFECT_SMACK_DOWN)) // Exclude stat lowering effects INCREMENT_RESET_RETURN if (gSideStatuses[GET_BATTLER_SIDE(gEffectBattler)] & SIDE_STATUS_SAFEGUARD && !(gHitMarker & HITMARKER_IGNORE_SAFEGUARD) - && !primary && gBattleScripting.moveEffect <= 7) + && !primary && gBattleScripting.moveEffect <= MOVE_EFFECT_CONFUSION) INCREMENT_RESET_RETURN if (TestSheerForceFlag(gBattlerAttacker, gCurrentMove) && affectsUser != MOVE_EFFECT_AFFECTS_USER) @@ -5016,6 +5019,7 @@ static void Cmd_playstatchangeanimation(void) } } else if (!gSideTimers[GET_BATTLER_SIDE(gActiveBattler)].mistTimer + && GetBattlerHoldEffect(gActiveBattler, TRUE) != HOLD_EFFECT_CLEAR_AMULET && ability != ABILITY_CLEAR_BODY && ability != ABILITY_FULL_METAL_BODY && ability != ABILITY_WHITE_SMOKE @@ -8814,7 +8818,8 @@ static void Cmd_various(void) return; case VARIOUS_SET_SIMPLE_BEAM: if (IsEntrainmentTargetOrSimpleBeamBannedAbility(gBattleMons[gBattlerTarget].ability) - || gBattleMons[gBattlerTarget].ability == ABILITY_SIMPLE) + || gBattleMons[gBattlerTarget].ability == ABILITY_SIMPLE + || GetBattlerHoldEffect(gBattlerTarget, TRUE) == HOLD_EFFECT_ABILITY_SHIELD) { gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 3); } @@ -8829,7 +8834,8 @@ static void Cmd_various(void) return; case VARIOUS_TRY_ENTRAINMENT: if (IsEntrainmentBannedAbilityAttacker(gBattleMons[gBattlerAttacker].ability) - || IsEntrainmentTargetOrSimpleBeamBannedAbility(gBattleMons[gBattlerTarget].ability)) + || IsEntrainmentTargetOrSimpleBeamBannedAbility(gBattleMons[gBattlerTarget].ability) + || GetBattlerHoldEffect(gBattlerTarget, TRUE) == HOLD_EFFECT_ABILITY_SHIELD) { gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 3); return; @@ -10748,7 +10754,8 @@ static u32 ChangeStatBuffs(s8 statValue, u32 statId, u32 flags, const u8 *BS_ptr gBattlescriptCurrInstr = BattleScript_ButItFailed; return STAT_CHANGE_DIDNT_WORK; } - else if ((activeBattlerAbility == ABILITY_CLEAR_BODY + else if ((GetBattlerHoldEffect(gActiveBattler, TRUE) == HOLD_EFFECT_CLEAR_AMULET + || activeBattlerAbility == ABILITY_CLEAR_BODY || activeBattlerAbility == ABILITY_FULL_METAL_BODY || activeBattlerAbility == ABILITY_WHITE_SMOKE) && !certain && gCurrentMove != MOVE_CURSE) @@ -13362,7 +13369,8 @@ static void Cmd_setroom(void) static void Cmd_tryswapabilities(void) { if (IsSkillSwapBannedAbility(gBattleMons[gBattlerAttacker].ability) - || IsSkillSwapBannedAbility(gBattleMons[gBattlerTarget].ability)) + || IsSkillSwapBannedAbility(gBattleMons[gBattlerTarget].ability) + || GetBattlerHoldEffect(gBattlerTarget, TRUE) == HOLD_EFFECT_ABILITY_SHIELD) { gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1); return; @@ -14734,7 +14742,8 @@ static void Cmd_unused(void) static void Cmd_tryworryseed(void) { - if (IsWorrySeedBannedAbility(gBattleMons[gBattlerTarget].ability)) + if (IsWorrySeedBannedAbility(gBattleMons[gBattlerTarget].ability) + || GetBattlerHoldEffect(gBattlerTarget, TRUE) == HOLD_EFFECT_ABILITY_SHIELD) { gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1); } @@ -14790,6 +14799,22 @@ void BS_CalcMetalBurstDmg(void) } } +void BS_JumpIfHoldEffect(void) +{ + u8 battler = gBattlescriptCurrInstr[5]; + u16 holdEffect = T1_READ_16(gBattlescriptCurrInstr + 6); + + if (GetBattlerHoldEffect(battler, TRUE) == holdEffect) + { + gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 8); + } + else + { + gLastUsedItem = gBattleMons[battler].item; // For B_LAST_USED_ITEM + gBattlescriptCurrInstr += 12; + } +} + static bool32 CriticalCapture(u32 odds) { #if B_CRITICAL_CAPTURE == TRUE diff --git a/src/battle_util.c b/src/battle_util.c index d8ec3f079..08c0542df 100644 --- a/src/battle_util.c +++ b/src/battle_util.c @@ -2946,7 +2946,8 @@ u8 DoBattlerEndTurnEffects(void) { u16 battlerAbility = GetBattlerAbility(gActiveBattler); if (gDisableStructs[gActiveBattler].octolock - && !(battlerAbility == ABILITY_CLEAR_BODY + && !(GetBattlerHoldEffect(gActiveBattler, TRUE) == HOLD_EFFECT_CLEAR_AMULET + || battlerAbility == ABILITY_CLEAR_BODY || battlerAbility == ABILITY_FULL_METAL_BODY || battlerAbility == ABILITY_WHITE_SMOKE)) { @@ -3871,6 +3872,10 @@ u8 AtkCanceller_UnableToUseMove(void) { SetRandomMultiHitCounter(); } + + if (gMultiHitCounter < 4 && GetBattlerHoldEffect(gBattlerAttacker, TRUE) == HOLD_EFFECT_LOADED_DICE) + gMultiHitCounter = 4; + PREPARE_BYTE_NUMBER_BUFFER(gBattleScripting.multihitString, 1, 0) } else if (gBattleMoves[gCurrentMove].flags & FLAG_TWO_STRIKES) @@ -8011,7 +8016,8 @@ bool32 IsMoveMakingContact(u16 move, u8 battlerAtk) else return FALSE; } - else if (GetBattlerAbility(battlerAtk) == ABILITY_LONG_REACH) + else if (GetBattlerAbility(battlerAtk) == ABILITY_LONG_REACH + || GetBattlerHoldEffect(battlerAtk, TRUE) == HOLD_EFFECT_PUNCHING_GLOVE) { return FALSE; } @@ -8803,6 +8809,10 @@ static u32 CalcMoveBasePowerAfterModifiers(u16 move, u8 battlerAtk, u8 battlerDe if (moveType == ItemId_GetSecondaryId(gBattleMons[battlerAtk].item)) MulModifier(&modifier, holdEffectModifier); break; + case HOLD_EFFECT_PUNCHING_GLOVE: + if (gBattleMoves[move].flags & FLAG_IRON_FIST_BOOST) + MulModifier(&modifier, UQ_4_12(1.1)); + break; } // move effect From b6258adc6dc706fa9759933f08edf085a33343be Mon Sep 17 00:00:00 2001 From: ghoulslash Date: Tue, 6 Dec 2022 10:43:01 -0500 Subject: [PATCH 14/69] fix ShouldLowerStat clear amulet check --- src/battle_ai_util.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/battle_ai_util.c b/src/battle_ai_util.c index c624e02e1..a945b8f6b 100644 --- a/src/battle_ai_util.c +++ b/src/battle_ai_util.c @@ -1634,7 +1634,7 @@ bool32 ShouldLowerStat(u8 battler, u16 battlerAbility, u8 stat) if ((gBattleMons[battler].statStages[stat] > MIN_STAT_STAGE && battlerAbility != ABILITY_CONTRARY) || (battlerAbility == ABILITY_CONTRARY && gBattleMons[battler].statStages[stat] < MAX_STAT_STAGE)) { - if (AI_GetHoldEffect(battler) == HOLD_EFFECT_CLEAR_AMULET + if (AI_DATA->holdEffects[battler] == HOLD_EFFECT_CLEAR_AMULET || battlerAbility == ABILITY_CLEAR_BODY || battlerAbility == ABILITY_WHITE_SMOKE || battlerAbility == ABILITY_FULL_METAL_BODY) From bdb480765c998a8629993d4b591475a3ed7f9755 Mon Sep 17 00:00:00 2001 From: ghoulslash Date: Tue, 6 Dec 2022 10:50:33 -0500 Subject: [PATCH 15/69] add ability shield check to mummy, wandering spirit --- src/battle_util.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/battle_util.c b/src/battle_util.c index 08c0542df..134c45ae5 100644 --- a/src/battle_util.c +++ b/src/battle_util.c @@ -5363,7 +5363,8 @@ u8 AbilityBattleEffects(u8 caseID, u8 battler, u16 ability, u8 special, u16 move if (!(gMoveResultFlags & MOVE_RESULT_NO_EFFECT) && IsBattlerAlive(gBattlerAttacker) && TARGET_TURN_DAMAGED - && (IsMoveMakingContact(move, gBattlerAttacker))) + && (IsMoveMakingContact(move, gBattlerAttacker)) + && GetBattlerHoldEffect(gBattlerAttacker, TRUE) != HOLD_EFFECT_ABILITY_SHIELD) { switch (gBattleMons[gBattlerAttacker].ability) { @@ -5391,7 +5392,8 @@ u8 AbilityBattleEffects(u8 caseID, u8 battler, u16 ability, u8 special, u16 move if (!(gMoveResultFlags & MOVE_RESULT_NO_EFFECT) && IsBattlerAlive(gBattlerAttacker) && TARGET_TURN_DAMAGED - && (gBattleMoves[move].flags & FLAG_MAKES_CONTACT)) + && (gBattleMoves[move].flags & FLAG_MAKES_CONTACT) + && GetBattlerHoldEffect(gBattlerAttacker, TRUE) != HOLD_EFFECT_ABILITY_SHIELD) { switch (gBattleMons[gBattlerAttacker].ability) { From 5a26a69ccd57b24c3f92676047b011a2b8ac868f Mon Sep 17 00:00:00 2001 From: ghoulslash Date: Tue, 6 Dec 2022 11:00:57 -0500 Subject: [PATCH 16/69] add some RecordItemEffect and RecordAbilityBattle situations, ai checks --- src/battle_ai_main.c | 12 ++++-- src/battle_script_commands.c | 74 ++++++++++++++++++++++++++---------- src/battle_util.c | 16 ++++++-- 3 files changed, 74 insertions(+), 28 deletions(-) diff --git a/src/battle_ai_main.c b/src/battle_ai_main.c index 9604f1195..58ff917fe 100644 --- a/src/battle_ai_main.c +++ b/src/battle_ai_main.c @@ -2130,12 +2130,14 @@ static s16 AI_CheckBadMove(u8 battlerAtk, u8 battlerDef, u16 move, s16 score) break; case EFFECT_SKILL_SWAP: if (AI_DATA->abilities[battlerAtk] == ABILITY_NONE || AI_DATA->abilities[battlerDef] == ABILITY_NONE - || IsSkillSwapBannedAbility(AI_DATA->abilities[battlerAtk]) || IsSkillSwapBannedAbility(AI_DATA->abilities[battlerDef])) + || IsSkillSwapBannedAbility(AI_DATA->abilities[battlerAtk]) || IsSkillSwapBannedAbility(AI_DATA->abilities[battlerDef]) + || AI_DATA->holdEffects[battlerDef] == HOLD_EFFECT_ABILITY_SHIELD) score -= 10; break; case EFFECT_WORRY_SEED: if (AI_DATA->abilities[battlerDef] == ABILITY_INSOMNIA - || IsWorrySeedBannedAbility(AI_DATA->abilities[battlerDef])) + || IsWorrySeedBannedAbility(AI_DATA->abilities[battlerDef]) + || AI_DATA->holdEffects[battlerDef] == HOLD_EFFECT_ABILITY_SHIELD) score -= 10; break; case EFFECT_GASTRO_ACID: @@ -2146,14 +2148,16 @@ static s16 AI_CheckBadMove(u8 battlerAtk, u8 battlerDef, u16 move, s16 score) case EFFECT_ENTRAINMENT: if (AI_DATA->abilities[battlerAtk] == ABILITY_NONE || IsEntrainmentBannedAbilityAttacker(AI_DATA->abilities[battlerAtk]) - || IsEntrainmentTargetOrSimpleBeamBannedAbility(AI_DATA->abilities[battlerDef])) + || IsEntrainmentTargetOrSimpleBeamBannedAbility(AI_DATA->abilities[battlerDef]) + || AI_DATA->holdEffects[battlerAtk] == HOLD_EFFECT_ABILITY_SHIELD) score -= 10; break; case EFFECT_CORE_ENFORCER: break; case EFFECT_SIMPLE_BEAM: if (AI_DATA->abilities[battlerDef] == ABILITY_SIMPLE - || IsEntrainmentTargetOrSimpleBeamBannedAbility(AI_DATA->abilities[battlerDef])) + || IsEntrainmentTargetOrSimpleBeamBannedAbility(AI_DATA->abilities[battlerDef]) + || AI_DATA->holdEffects[battlerDef] == HOLD_EFFECT_ABILITY_SHIELD) score -= 10; break; case EFFECT_SNATCH: diff --git a/src/battle_script_commands.c b/src/battle_script_commands.c index 6c207e8d4..c5cf75280 100644 --- a/src/battle_script_commands.c +++ b/src/battle_script_commands.c @@ -2830,7 +2830,13 @@ void SetMoveEffect(bool32 primary, u32 certain) && !(gHitMarker & HITMARKER_IGNORE_SAFEGUARD) && !primary && (gBattleScripting.moveEffect <= MOVE_EFFECT_TRI_ATTACK || gBattleScripting.moveEffect >= MOVE_EFFECT_SMACK_DOWN)) // Exclude stat lowering effects + { + if (battlerAbility == ABILITY_SHIELD_DUST) + RecordAbilityBattle(gEffectBattler, battlerAbility) + else + RecordItemEffectBattle(gEffectBattler, HOLD_EFFECT_COVERT_CLOAK); INCREMENT_RESET_RETURN + } if (gSideStatuses[GET_BATTLER_SIDE(gEffectBattler)] & SIDE_STATUS_SAFEGUARD && !(gHitMarker & HITMARKER_IGNORE_SAFEGUARD) && !primary && gBattleScripting.moveEffect <= MOVE_EFFECT_CONFUSION) @@ -8818,9 +8824,14 @@ static void Cmd_various(void) return; case VARIOUS_SET_SIMPLE_BEAM: if (IsEntrainmentTargetOrSimpleBeamBannedAbility(gBattleMons[gBattlerTarget].ability) - || gBattleMons[gBattlerTarget].ability == ABILITY_SIMPLE - || GetBattlerHoldEffect(gBattlerTarget, TRUE) == HOLD_EFFECT_ABILITY_SHIELD) + || gBattleMons[gBattlerTarget].ability == ABILITY_SIMPLE) { + RecordAbilityBattle(gBattlerTarget, gBattleMons[gBattlerTarget].ability); + gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 3); + } + else if (GetBattlerHoldEffect(gBattlerTarget, TRUE) == HOLD_EFFECT_ABILITY_SHIELD) + { + RecordItemEffectBattle(gBattlerTarget, HOLD_EFFECT_ABILITY_SHIELD); gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 3); } else @@ -8834,21 +8845,27 @@ static void Cmd_various(void) return; case VARIOUS_TRY_ENTRAINMENT: if (IsEntrainmentBannedAbilityAttacker(gBattleMons[gBattlerAttacker].ability) - || IsEntrainmentTargetOrSimpleBeamBannedAbility(gBattleMons[gBattlerTarget].ability) - || GetBattlerHoldEffect(gBattlerTarget, TRUE) == HOLD_EFFECT_ABILITY_SHIELD) + || IsEntrainmentTargetOrSimpleBeamBannedAbility(gBattleMons[gBattlerTarget].ability)) { + RecordAbilityBattle(gBattlerTarget, gBattleMons[gBattlerTarget].ability); gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 3); - return; } - - if (gBattleMons[gBattlerTarget].ability == gBattleMons[gBattlerAttacker].ability) + else if (GetBattlerHoldEffect(gBattlerTarget, TRUE) == HOLD_EFFECT_ABILITY_SHIELD) { + RecordItemEffectBattle(gBattlerTarget, HOLD_EFFECT_ABILITY_SHIELD); gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 3); } else { - gBattleMons[gBattlerTarget].ability = gBattleStruct->overwrittenAbilities[gBattlerTarget] = gBattleMons[gBattlerAttacker].ability; - gBattlescriptCurrInstr += 7; + if (gBattleMons[gBattlerTarget].ability == gBattleMons[gBattlerAttacker].ability) + { + gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 3); + } + else + { + gBattleMons[gBattlerTarget].ability = gBattleStruct->overwrittenAbilities[gBattlerTarget] = gBattleMons[gBattlerAttacker].ability; + gBattlescriptCurrInstr += 7; + } } return; case VARIOUS_SET_LAST_USED_ABILITY: @@ -10760,6 +10777,11 @@ static u32 ChangeStatBuffs(s8 statValue, u32 statId, u32 flags, const u8 *BS_ptr || activeBattlerAbility == ABILITY_WHITE_SMOKE) && !certain && gCurrentMove != MOVE_CURSE) { + if (GetBattlerHoldEffect(gActiveBattler, TRUE) == HOLD_EFFECT_CLEAR_AMULET) + { + RecordItemEffectBattle(gActiveBattler, HOLD_EFFECT_CLEAR_AMULET); + } + if (flags == STAT_CHANGE_ALLOW_PTR) { if (gSpecialStatuses[gActiveBattler].statLowered) @@ -13369,24 +13391,30 @@ static void Cmd_setroom(void) static void Cmd_tryswapabilities(void) { if (IsSkillSwapBannedAbility(gBattleMons[gBattlerAttacker].ability) - || IsSkillSwapBannedAbility(gBattleMons[gBattlerTarget].ability) - || GetBattlerHoldEffect(gBattlerTarget, TRUE) == HOLD_EFFECT_ABILITY_SHIELD) + || IsSkillSwapBannedAbility(gBattleMons[gBattlerTarget].ability)) { + RecordAbilityBattle(gBattlerTarget, gBattleMons[gBattlerTarget].ability); gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1); - return; } - - if (gMoveResultFlags & MOVE_RESULT_NO_EFFECT) + else if (GetBattlerHoldEffect(gBattlerTarget, TRUE) == HOLD_EFFECT_ABILITY_SHIELD) { + RecordItemEffectBattle(gBattlerTarget, HOLD_EFFECT_ABILITY_SHIELD); gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1); } else { - u16 abilityAtk = gBattleMons[gBattlerAttacker].ability; - gBattleMons[gBattlerAttacker].ability = gBattleStruct->overwrittenAbilities[gBattlerAttacker] = gBattleMons[gBattlerTarget].ability; - gBattleMons[gBattlerTarget].ability = gBattleStruct->overwrittenAbilities[gBattlerTarget] = abilityAtk; + if (gMoveResultFlags & MOVE_RESULT_NO_EFFECT) + { + gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1); + } + else + { + u16 abilityAtk = gBattleMons[gBattlerAttacker].ability; + gBattleMons[gBattlerAttacker].ability = gBattleStruct->overwrittenAbilities[gBattlerAttacker] = gBattleMons[gBattlerTarget].ability; + gBattleMons[gBattlerTarget].ability = gBattleStruct->overwrittenAbilities[gBattlerTarget] = abilityAtk; - gBattlescriptCurrInstr += 5; + gBattlescriptCurrInstr += 5; + } } } @@ -14742,9 +14770,14 @@ static void Cmd_unused(void) static void Cmd_tryworryseed(void) { - if (IsWorrySeedBannedAbility(gBattleMons[gBattlerTarget].ability) - || GetBattlerHoldEffect(gBattlerTarget, TRUE) == HOLD_EFFECT_ABILITY_SHIELD) + if (IsWorrySeedBannedAbility(gBattleMons[gBattlerTarget].ability)) { + RecordAbilityBattle(gBattlerTarget, gBattleMons[gBattlerTarget].ability); + gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1); + } + else if (GetBattlerHoldEffect(gBattlerTarget, TRUE) == HOLD_EFFECT_ABILITY_SHIELD) + { + RecordItemEffectBattle(gBattlerTarget, HOLD_EFFECT_ABILITY_SHIELD); gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1); } else @@ -14810,6 +14843,7 @@ void BS_JumpIfHoldEffect(void) } else { + RecordItemEffectBattle(battler, holdEffect); gLastUsedItem = gBattleMons[battler].item; // For B_LAST_USED_ITEM gBattlescriptCurrInstr += 12; } diff --git a/src/battle_util.c b/src/battle_util.c index 134c45ae5..6416c592b 100644 --- a/src/battle_util.c +++ b/src/battle_util.c @@ -5363,8 +5363,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 battler, u16 ability, u8 special, u16 move if (!(gMoveResultFlags & MOVE_RESULT_NO_EFFECT) && IsBattlerAlive(gBattlerAttacker) && TARGET_TURN_DAMAGED - && (IsMoveMakingContact(move, gBattlerAttacker)) - && GetBattlerHoldEffect(gBattlerAttacker, TRUE) != HOLD_EFFECT_ABILITY_SHIELD) + && (IsMoveMakingContact(move, gBattlerAttacker))) { switch (gBattleMons[gBattlerAttacker].ability) { @@ -5380,6 +5379,11 @@ u8 AbilityBattleEffects(u8 caseID, u8 battler, u16 ability, u8 special, u16 move case ABILITY_STANCE_CHANGE: break; default: + if (GetBattlerHoldEffect(gBattlerAttacker, TRUE) == HOLD_EFFECT_ABILITY_SHIELD) { + RecordItemEffectBattle(gBattlerAttacker, HOLD_EFFECT_ABILITY_SHIELD); + break; + } + gLastUsedAbility = gBattleMons[gBattlerAttacker].ability = gBattleStruct->overwrittenAbilities[gBattlerAttacker] = ABILITY_MUMMY; BattleScriptPushCursor(); gBattlescriptCurrInstr = BattleScript_MummyActivates; @@ -5392,8 +5396,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 battler, u16 ability, u8 special, u16 move if (!(gMoveResultFlags & MOVE_RESULT_NO_EFFECT) && IsBattlerAlive(gBattlerAttacker) && TARGET_TURN_DAMAGED - && (gBattleMoves[move].flags & FLAG_MAKES_CONTACT) - && GetBattlerHoldEffect(gBattlerAttacker, TRUE) != HOLD_EFFECT_ABILITY_SHIELD) + && (gBattleMoves[move].flags & FLAG_MAKES_CONTACT)) { switch (gBattleMons[gBattlerAttacker].ability) { @@ -5412,6 +5415,11 @@ u8 AbilityBattleEffects(u8 caseID, u8 battler, u16 ability, u8 special, u16 move case ABILITY_ZEN_MODE: break; default: + if (GetBattlerHoldEffect(gBattlerAttacker, TRUE) == HOLD_EFFECT_ABILITY_SHIELD) { + RecordItemEffectBattle(gBattlerAttacker, HOLD_EFFECT_ABILITY_SHIELD); + break; + } + gLastUsedAbility = gBattleMons[gBattlerAttacker].ability; gBattleMons[gBattlerAttacker].ability = gBattleStruct->overwrittenAbilities[gBattlerAttacker] = gBattleMons[gBattlerTarget].ability; gBattleMons[gBattlerTarget].ability = gBattleStruct->overwrittenAbilities[gBattlerTarget] = gLastUsedAbility; From c327655ef595d7d6bfe6ea756a0484009aa2b713 Mon Sep 17 00:00:00 2001 From: ghoulslash Date: Tue, 6 Dec 2022 11:12:20 -0500 Subject: [PATCH 17/69] small fixes --- src/battle_script_commands.c | 5 +++-- src/battle_util.c | 6 ++++-- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/src/battle_script_commands.c b/src/battle_script_commands.c index c5cf75280..059265588 100644 --- a/src/battle_script_commands.c +++ b/src/battle_script_commands.c @@ -2832,7 +2832,7 @@ void SetMoveEffect(bool32 primary, u32 certain) && (gBattleScripting.moveEffect <= MOVE_EFFECT_TRI_ATTACK || gBattleScripting.moveEffect >= MOVE_EFFECT_SMACK_DOWN)) // Exclude stat lowering effects { if (battlerAbility == ABILITY_SHIELD_DUST) - RecordAbilityBattle(gEffectBattler, battlerAbility) + RecordAbilityBattle(gEffectBattler, battlerAbility); else RecordItemEffectBattle(gEffectBattler, HOLD_EFFECT_COVERT_CLOAK); INCREMENT_RESET_RETURN @@ -8720,7 +8720,8 @@ static void Cmd_various(void) gBattlerAbility = BATTLE_PARTNER(gActiveBattler); i = GetBattlerAbility(gBattlerAbility); if (IsBattlerAlive(gBattlerAbility) - && (i == ABILITY_RECEIVER || i == ABILITY_POWER_OF_ALCHEMY)) + && (i == ABILITY_RECEIVER || i == ABILITY_POWER_OF_ALCHEMY) + && GetBattlerHoldEffect(gActiveBattler, TRUE) != HOLD_EFFECT_ABILITY_SHIELD) { switch (gBattleMons[gActiveBattler].ability) { // Can't copy these abilities. diff --git a/src/battle_util.c b/src/battle_util.c index 6416c592b..d3f78fd94 100644 --- a/src/battle_util.c +++ b/src/battle_util.c @@ -5379,7 +5379,8 @@ u8 AbilityBattleEffects(u8 caseID, u8 battler, u16 ability, u8 special, u16 move case ABILITY_STANCE_CHANGE: break; default: - if (GetBattlerHoldEffect(gBattlerAttacker, TRUE) == HOLD_EFFECT_ABILITY_SHIELD) { + if (GetBattlerHoldEffect(gBattlerAttacker, TRUE) == HOLD_EFFECT_ABILITY_SHIELD) + { RecordItemEffectBattle(gBattlerAttacker, HOLD_EFFECT_ABILITY_SHIELD); break; } @@ -5415,7 +5416,8 @@ u8 AbilityBattleEffects(u8 caseID, u8 battler, u16 ability, u8 special, u16 move case ABILITY_ZEN_MODE: break; default: - if (GetBattlerHoldEffect(gBattlerAttacker, TRUE) == HOLD_EFFECT_ABILITY_SHIELD) { + if (GetBattlerHoldEffect(gBattlerAttacker, TRUE) == HOLD_EFFECT_ABILITY_SHIELD) + { RecordItemEffectBattle(gBattlerAttacker, HOLD_EFFECT_ABILITY_SHIELD); break; } From c8661a1bc1e2fb4ecbd6125697782dc5b84f2b61 Mon Sep 17 00:00:00 2001 From: ghoulslash Date: Tue, 6 Dec 2022 11:24:04 -0500 Subject: [PATCH 18/69] CreateAbilityPopup always records ability --- src/battle_interface.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/battle_interface.c b/src/battle_interface.c index e8bc31608..2d43db855 100644 --- a/src/battle_interface.c +++ b/src/battle_interface.c @@ -3139,6 +3139,9 @@ void CreateAbilityPopUp(u8 battlerId, u32 ability, bool32 isDoubleBattle) if (gBattleScripting.abilityPopupOverwrite != 0) ability = gBattleScripting.abilityPopupOverwrite; + else + RecordAbilityBattle(battlerId, ability); + if (!gBattleStruct->activeAbilityPopUps) { From 239115027440fa9c459b18d125ae1871e99f7737 Mon Sep 17 00:00:00 2001 From: ghoulslash Date: Tue, 6 Dec 2022 11:25:27 -0500 Subject: [PATCH 19/69] Revert "CreateAbilityPopup always records ability" This reverts commit c8661a1bc1e2fb4ecbd6125697782dc5b84f2b61. --- src/battle_interface.c | 3 --- 1 file changed, 3 deletions(-) diff --git a/src/battle_interface.c b/src/battle_interface.c index 2d43db855..e8bc31608 100644 --- a/src/battle_interface.c +++ b/src/battle_interface.c @@ -3139,9 +3139,6 @@ void CreateAbilityPopUp(u8 battlerId, u32 ability, bool32 isDoubleBattle) if (gBattleScripting.abilityPopupOverwrite != 0) ability = gBattleScripting.abilityPopupOverwrite; - else - RecordAbilityBattle(battlerId, ability); - if (!gBattleStruct->activeAbilityPopUps) { From 04e9c181ad01998fca9ec335fcf9f964d00e8ba6 Mon Sep 17 00:00:00 2001 From: ghoulslash Date: Tue, 6 Dec 2022 12:42:01 -0500 Subject: [PATCH 20/69] add covert cloak check for stats --- src/battle_script_commands.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/battle_script_commands.c b/src/battle_script_commands.c index 059265588..07ccc8e1c 100644 --- a/src/battle_script_commands.c +++ b/src/battle_script_commands.c @@ -10853,6 +10853,12 @@ static u32 ChangeStatBuffs(s8 statValue, u32 statId, u32 flags, const u8 *BS_ptr } else if (activeBattlerAbility == ABILITY_SHIELD_DUST && flags == 0) { + RecordAbilityBattle(gActiveBattler, ABILITY_SHIELD_DUST); + return STAT_CHANGE_DIDNT_WORK; + } + else if (flags == 0 && GetBattlerHoldEffect(gActiveBattler, TRUE) == HOLD_EFFECT_COVERT_CLOAK) + { + RecordItemEffectBattle(gActiveBattler, HOLD_EFFECT_COVERT_CLOAK); return STAT_CHANGE_DIDNT_WORK; } else // try to decrease From 0a9e3c8dc87757518fba216e46ff5a4484a6cce4 Mon Sep 17 00:00:00 2001 From: ghoulslash Date: Sun, 11 Dec 2022 16:16:10 -0500 Subject: [PATCH 21/69] fix stattextbuffer in BattleScript_IntimidatePrevented_Item --- data/battle_scripts_1.s | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data/battle_scripts_1.s b/data/battle_scripts_1.s index 8010d4ee7..22e750eaf 100644 --- a/data/battle_scripts_1.s +++ b/data/battle_scripts_1.s @@ -8239,7 +8239,7 @@ BattleScript_IntimidatePrevented: call BattleScript_AbilityPopUp BattleScript_IntimidatePrevented_Item: setbyte gBattleCommunication STAT_ATK - stattextbuffer BS_ATTACKER + stattextbuffer BS_TARGET printstring STRINGID_STATWASNOTLOWERED waitmessage B_WAIT_TIME_LONG call BattleScript_TryAdrenalineOrb From e88139d1b54cf448c6ed73baf2508b61a9593364 Mon Sep 17 00:00:00 2001 From: GriffinR Date: Thu, 29 Dec 2022 11:22:53 -0500 Subject: [PATCH 22/69] Add fix for Battle Tower cloning bug --- data/maps/BattleFrontier_BattleTowerLobby/scripts.inc | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/data/maps/BattleFrontier_BattleTowerLobby/scripts.inc b/data/maps/BattleFrontier_BattleTowerLobby/scripts.inc index 4e7284fd0..e99c7f88e 100644 --- a/data/maps/BattleFrontier_BattleTowerLobby/scripts.inc +++ b/data/maps/BattleFrontier_BattleTowerLobby/scripts.inc @@ -411,7 +411,13 @@ BattleFrontier_BattleTowerLobby_EventScript_SaveBeforeLinkMultisChallenge:: special LoadPlayerParty closemessage delay 2 +@ The command tower_save ultimately calls TrySavingData(SAVE_LINK), which writes data in SaveBlock1 and SaveBlock2 +@ 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 tower_save 0 +.endif call Common_EventScript_SaveGame setvar VAR_TEMP_0, 255 goto_if_eq VAR_RESULT, 0, BattleFrontier_BattleTowerLobby_EventScript_CancelChallengeSaveFailed From ca46c22533873a1d08fc74cb176961a9e7236a64 Mon Sep 17 00:00:00 2001 From: Eduardo Quezada Date: Wed, 4 Jan 2023 08:14:34 -0300 Subject: [PATCH 23/69] Removed SpeciesInfo array defines --- include/constants/pokemon.h | 4 ---- include/pokemon.h | 6 +++--- 2 files changed, 3 insertions(+), 7 deletions(-) diff --git a/include/constants/pokemon.h b/include/constants/pokemon.h index 0e2113abe..d0e609448 100644 --- a/include/constants/pokemon.h +++ b/include/constants/pokemon.h @@ -266,8 +266,4 @@ #define SKIP_FRONT_ANIM (1 << 7) -#define NUM_TYPE_SLOTS 2 -#define NUM_EGG_GROUP_SLOTS 2 -#define NUM_ABILITY_SLOTS 2 - #endif // GUARD_CONSTANTS_POKEMON_H diff --git a/include/pokemon.h b/include/pokemon.h index 5ee8b8ade..ab102000a 100644 --- a/include/pokemon.h +++ b/include/pokemon.h @@ -295,7 +295,7 @@ struct SpeciesInfo /* 0x03 */ u8 baseSpeed; /* 0x04 */ u8 baseSpAttack; /* 0x05 */ u8 baseSpDefense; - /* 0x06 */ u8 types[NUM_TYPE_SLOTS]; + /* 0x06 */ u8 types[2]; /* 0x08 */ u8 catchRate; /* 0x09 */ u8 expYield; /* 0x0A */ u16 evYield_HP:2; @@ -310,8 +310,8 @@ struct SpeciesInfo /* 0x11 */ u8 eggCycles; /* 0x12 */ u8 friendship; /* 0x13 */ u8 growthRate; - /* 0x14 */ u8 eggGroups[NUM_EGG_GROUP_SLOTS]; - /* 0x16 */ u8 abilities[NUM_ABILITY_SLOTS]; + /* 0x14 */ u8 eggGroups[2]; + /* 0x16 */ u8 abilities[2]; /* 0x18 */ u8 safariZoneFleeRate; /* 0x19 */ u8 bodyColor : 7; u8 noFlip : 1; From 1b0ce96e12f876821333f43ce555552e0ff3f65d Mon Sep 17 00:00:00 2001 From: Eduardo Quezada Date: Mon, 9 Jan 2023 02:16:29 -0300 Subject: [PATCH 24/69] Config for ball inheritence when breeding --- include/config/pokemon.h | 1 + src/daycare.c | 28 ++++++++++++++++++++++++++++ 2 files changed, 29 insertions(+) diff --git a/include/config/pokemon.h b/include/config/pokemon.h index a44a7c8e0..f406da7e0 100644 --- a/include/config/pokemon.h +++ b/include/config/pokemon.h @@ -11,6 +11,7 @@ #define P_NIDORAN_M_DITTO_BREED GEN_LATEST // Since Gen 5, when Nidoran♂ breeds with Ditto it can produce Nidoran♀ offspring. Before, it would only yield male offspring. This change also applies to Volbeat. #define P_INCENSE_BREEDING GEN_LATEST // Since Gen 9, cross-generation Baby Pokémon don't require Incense being held by the parents to be obtained via breeding. #define P_EGG_HATCH_LEVEL GEN_LATEST // Since Gen 4, Pokémon will hatch from eggs at level 1 instead of 5. +#define P_BALL_INHERITING GEN_LATEST // Since Gen 6, Eggs from the Daycare will inherit the Poké Ball from their mother. From Gen7 onwards, the father can pass it down as well, as long as it's of the same evolution family as the offspring. // Other settings #define P_SHEDINJA_BALL GEN_LATEST // Since Gen 4, Shedinja requires a Poké Ball for its evolution. In Gen 3, Shedinja inherits Nincada's Ball. diff --git a/src/daycare.c b/src/daycare.c index 06f11ba9c..08ca31da0 100644 --- a/src/daycare.c +++ b/src/daycare.c @@ -609,6 +609,33 @@ static void InheritIVs(struct Pokemon *egg, struct DayCare *daycare) } } +static void InheritPokeball(struct Pokemon *egg, struct BoxPokemon *father, struct BoxPokemon *mother) +{ + u16 inheritBall = ITEM_POKE_BALL; + u16 fatherBall = GetBoxMonData(father, MON_DATA_POKEBALL); + u16 motherBall = GetBoxMonData(mother, MON_DATA_POKEBALL); + u16 fatherSpecies = GetBoxMonData(father, MON_DATA_SPECIES); + u16 motherSpecies = GetBoxMonData(mother, MON_DATA_SPECIES); + + if (fatherBall == ITEM_MASTER_BALL || fatherBall == ITEM_CHERISH_BALL) + fatherBall = ITEM_POKE_BALL; + + if (motherBall == ITEM_MASTER_BALL || motherBall == ITEM_CHERISH_BALL) + motherBall = ITEM_POKE_BALL; + +#if P_BALL_INHERITING >= GEN_7 + if (fatherSpecies == motherSpecies) + inheritBall = (Random32() % 2 == 0 ? motherBall : fatherBall); + else if (motherSpecies != SPECIES_DITTO) + inheritBall = motherBall; + else + inheritBall = fatherBall; +#elif P_BALL_INHERITING == GEN_6 + inheritBall = motherBall; +#endif + SetMonData(egg, MON_DATA_POKEBALL, &inheritBall); +} + // Counts the number of egg moves a pokemon learns and stores the moves in // the given array. static u8 GetEggMoves(struct Pokemon *pokemon, u16 *eggMoves) @@ -872,6 +899,7 @@ static void _GiveEggFromDaycare(struct DayCare *daycare) #endif SetInitialEggData(&egg, species, daycare); InheritIVs(&egg, daycare); + InheritPokeball(&egg, &daycare->mons[parentSlots[1]].mon, &daycare->mons[parentSlots[0]].mon); BuildEggMoveset(&egg, &daycare->mons[parentSlots[1]].mon, &daycare->mons[parentSlots[0]].mon); GiveMoveIfItem(&egg, daycare); From f8c9e7af40cada3c7edb5019dc9625e5fc6e87f7 Mon Sep 17 00:00:00 2001 From: Eduardo Quezada Date: Mon, 9 Jan 2023 11:06:27 -0300 Subject: [PATCH 25/69] Fixed config comment --- include/config/pokemon.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/config/pokemon.h b/include/config/pokemon.h index f406da7e0..4cb2271d5 100644 --- a/include/config/pokemon.h +++ b/include/config/pokemon.h @@ -11,7 +11,7 @@ #define P_NIDORAN_M_DITTO_BREED GEN_LATEST // Since Gen 5, when Nidoran♂ breeds with Ditto it can produce Nidoran♀ offspring. Before, it would only yield male offspring. This change also applies to Volbeat. #define P_INCENSE_BREEDING GEN_LATEST // Since Gen 9, cross-generation Baby Pokémon don't require Incense being held by the parents to be obtained via breeding. #define P_EGG_HATCH_LEVEL GEN_LATEST // Since Gen 4, Pokémon will hatch from eggs at level 1 instead of 5. -#define P_BALL_INHERITING GEN_LATEST // Since Gen 6, Eggs from the Daycare will inherit the Poké Ball from their mother. From Gen7 onwards, the father can pass it down as well, as long as it's of the same evolution family as the offspring. +#define P_BALL_INHERITING GEN_LATEST // Since Gen 6, Eggs from the Daycare will inherit the Poké Ball from their mother. From Gen7 onwards, the father can pass it down as well, as long as it's of the same species as the mother. // Other settings #define P_SHEDINJA_BALL GEN_LATEST // Since Gen 4, Shedinja requires a Poké Ball for its evolution. In Gen 3, Shedinja inherits Nincada's Ball. From 3ee3d6e3469c366c8960d23dea408355902f3d34 Mon Sep 17 00:00:00 2001 From: GriffinR Date: Wed, 11 Jan 2023 10:11:11 -0500 Subject: [PATCH 26/69] Support reducing png bit depth --- tools/gbagfx/convert_png.c | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/tools/gbagfx/convert_png.c b/tools/gbagfx/convert_png.c index 4f1b39e6d..a5fefbd8b 100644 --- a/tools/gbagfx/convert_png.c +++ b/tools/gbagfx/convert_png.c @@ -62,10 +62,7 @@ static unsigned char *ConvertBitDepth(unsigned char *src, int srcBitDepth, int d for (j = 8 - srcBitDepth; j >= 0; j -= srcBitDepth) { - unsigned char pixel = (srcByte >> j) % (1 << srcBitDepth); - - if (pixel >= (1 << destBitDepth)) - FATAL_ERROR("Image exceeds the maximum color value for a %ibpp image.\n", destBitDepth); + unsigned char pixel = (srcByte >> j) % (1 << destBitDepth); *dest |= pixel << destBit; destBit -= destBitDepth; if (destBit < 0) From 3009cc7220dedbee237b962693eb80db317b096e Mon Sep 17 00:00:00 2001 From: GriffinR Date: Wed, 11 Jan 2023 10:12:16 -0500 Subject: [PATCH 27/69] Colorize door animations that use multiple palettes --- .../door_anims/battle_dome_pre_battle_room.png | Bin 488 -> 432 bytes graphics/door_anims/dewford.png | Bin 436 -> 405 bytes graphics/door_anims/fallarbor_dark_roof.png | Bin 432 -> 384 bytes .../door_anims/lilycove_dept_store_elevator.png | Bin 345 -> 298 bytes graphics/door_anims/littleroot.png | Bin 426 -> 391 bytes graphics/door_anims/mossdeep.png | Bin 411 -> 377 bytes graphics/door_anims/oldale.png | Bin 434 -> 397 bytes graphics/door_anims/poke_mart.png | Bin 419 -> 355 bytes graphics/door_anims/slateport.png | Bin 425 -> 387 bytes .../door_anims/trainer_hill_roof_elevator.png | Bin 344 -> 296 bytes graphics/door_anims/verdanturf.png | Bin 451 -> 403 bytes 11 files changed, 0 insertions(+), 0 deletions(-) diff --git a/graphics/door_anims/battle_dome_pre_battle_room.png b/graphics/door_anims/battle_dome_pre_battle_room.png index 6e4e7ee183d55c4016dfef13fcd70218f9b96294..114ed3a0082cd8568ca3705290f443474e11d16c 100644 GIT binary patch delta 418 zcmaFCyn%UwL_G&H0|SFHKhq>2#aJBV?!>U}oXkrgCn3Nm#PvVJ|Dd3(DN~l5-Fx)^ z|Nr-{KC52S-F;ETSNCcP-1AcSpJe#|UNf5d=H@I+^=p>QIl6bw zy{l9Hznik9{)Oclpk@C&T^vI!de2UZR8D*LG}Z~0{3(Gn71#mny}osVDE_yHTpXDyO|F<$JL*8NRv8H67Xk*{4?kL z9cS9t{yH*`iMN?e2}C>+nX!^#gKU9t$nWWQL);V_=C51uJ?ZhKxUx)r<_jemPLtXk znFSBZKRidL0-R44$rjF6*2UngHPp$7BEi literal 488 zcmeAS@N?(olHy`uVBq!ia0vp^0zjO=0wfr|csbMpDVB6cUq=Rpjs4tz5?O(KrX+87 z7Y2SSBfG^w9(#$WuPgf#Mp0Hx>lX?qd4WO#$%%etAR34jfEWx?4=`V4U|?kMba4#P zIKTFSV&7o{0oDsE#q?HQ>3*}SA~NGFlk?e0#a}E=SGR63OH3A-S$S^5XWOtjUUwHr zsra9axc~1+>P0S1@BKA*^W=YC|Ni{F=Hoh>KQ})7{Iexn#$B-X%G-PVN*90IZpl?Q z+M4TnImSiKcXO+7q|qdgAMARpvkT8OxEVx;owtb=D?Vwo#<(gbZBFIU2(i8E<=<4k zN{AiQOv@j1O687^*1>=+Z5om&uD_N0@|S;dee zmiM}7{mUAQy3^gMioifoEpd$~Nl7e8wMs5Z1yT$~21W+D28Oyuh9L%~Rwjm4rk2_U l237_Jc4_QSP&DM`r(~v8;@04Ay*~mJ?4GWEF6*2Ung9awu&@9C diff --git a/graphics/door_anims/dewford.png b/graphics/door_anims/dewford.png index 86ac1fe4a673c8f452782bce6c52b83df0a77ef8..708b52ccb9034b6f1b37c1138bd45b7c5cc4de91 100644 GIT binary patch delta 390 zcmdnOJe7HZL_G&H0|SFHKhq>2#aJBV?!>U}oXkrgCn3Nm#8pBw=>Px!_ny7md-mC! zE%%z6yOWZt9lf$N4Wo+peoI>O?%lH`_s%w7-I8^7PEhgDCAie@-P;UN48rp}i}3heLeP|70=8v-~Qux7MZ_*7!R& zP5GN~-0^(vI#tKT{~U7Hxz1bhyjXX}m#td_TAfmEIEnC0?6+}xvgwzl&z1A1cR6&L zu`HBIaGoG6y1>--LBn0^Uz*R(?w=x{F+G$iVKHaa5s$|DEZG!=N>if^F`0ksvL-Z3 zDfJ&-fA+Yg@{@+x<6EA8No(K7;P6doGy64L<|lbIk<2rKGxuw+X0ZNJw(-r5e+GPN zd?5vPyO#XiAvNRwoc`H$HO#M##d`V5{3(wi@4J-3ezr5O-9LY1TJzTE;=)>yi))G literal 436 zcmeAS@N?(olHy`uVBq!ia0vp^0zjO=0wfr|csbMpDVB6cUq=Rpjs4tz5?O(KrX+87 z7Y2SSBfG^w9(#$WuPgf#Mp0Hh!J1psWPm~f$%%etAR34jfEWx?4=`T^GR}CqIEHAP zKYPJi=#T>kTf(}ASTEZy^V@y8o?CNfo_fd?=NEC}ut=1av31>K9l^RC(_X$~H@jkF zYVV-*g#A%Fiw3t!_HkWqgY5dRXKvl@j1bsq=~LX0>UoCoVd?_W$i~9up?jXBa-O)B z$F<bbZth@M&4-`bbbWdDKC^b^NEAw^zX^1f*rKfxPB*W%i1RW zsOWmm`=3Xq^_Lw^?sYvL*TInSm47&GsSJW}LluRP6u(R{)DFTr;D zC)RiF_-tQz66i1064!{5l*E!$tK_0oAjM#0U}T_cV5n*WnyM!Xs&HwU}a#y haX!-uMMG|WN@iLmZVi=_F1CS!(9_k=Wt~$(699v#m5BfV diff --git a/graphics/door_anims/fallarbor_dark_roof.png b/graphics/door_anims/fallarbor_dark_roof.png index ec43e37f985cddb24a1ad810a1cd47e42dd8a699..0785945d3ce6fa5569ca2e4a60e48d66f3f59154 100644 GIT binary patch delta 369 zcmdnM+`v3RqMn19fq_AppJ@`1Vk{1FcVbv~PUa<$lMvt&;wqsTbnn@cEk}!|%n7P) zc5H6$PD-kF^vcpSjEY*brupc-|7U}q%`v=JtuQA^v-s!|p!#Re&YnHH1c;_|7bB~O zh_6}G4HPdf_KJ$K1gg)ix7?%!wCtRxi(`mI@7qg`LWdN1SOeM|Zk*us+WFtm*TY-U zpgAhMuRidJsANXcw_5KV#VID5xzcKVJ!U(QeX4B zrCF{~<3hdt*W}&ZBQo|K|1B`x;18?lf_MheVy16QI!jq^J4Y68ZSG(aYqNST_VfGk zU%&1*SAF8zDwJ-mvq1Nr$gH0-w|yW literal 432 zcmeAS@N?(olHy`uVBq!ia0vp^0zjO=0wfr|csbMpDVB6cUq=Rpjs4tz5?O(KrX+87 z7Y2SSBfG^w9(#$WuPgf#Mp0Hh`PoUkrGY{M$%%etAR34jfEWx?4=`T^GER89IEHAP zKYQUc?;!&owg+o2i0)uo-WQ;@czTE}qxvP@Ijjzb!VmH;ymNZHV=c#d;X{*_`WLRc zvOiMfH|zG3=IwKCrySLLY_?OkIB#;Mk1vk*WR< z)3!8mF;urs7dAiAsQjnFxS+NEl={zJ{e$`^#5PGDXVQ$}ntA8o(vF`e!qUO_QmvAUQh^kMk%5tcu7RPhkzt5|sg;SDm9e3=fq|8Qfu>b7 fC`1t&a`RI%(<*Umh)92Y5EOi#u6{1-oD!M2#aJBV?!>U}oXkrgCn3Nm#1%*f1!b*SviIKAXaE2I zZ{EA4`|Pu`&;Fl{3i{uibo8j<|8JJv)&Kur-CJC|7pNGbzPr17%a$cT^;hp*UGi@4 z+5cC!-0Plmwfg^(>a$a-o40HMD(k*_@9ev8-|N3|ZvyfvJY5_^EP9_#+Q`?Sz~iE+ zv&&$`|Nm<*#Tir`J<+wtA?TjNrPHl*IoK~M-jSESsMx|`xU^zFuj3DUG1pB~k{64w zRth||u`s3asn4Dq?nH+lS1d2j|L%O5an?j}4~dL(%G^^HcU{}IRc3lY=h>_Me`=oJ fY!$fw*Md=G4WIT5t%75{Ag6n}`njxgN@xNA_Kt_= literal 345 zcmeAS@N?(olHy`uVBq!ia0vp^0zjO=0wfr|csbMpDVB6cUq=Rpjs4tz5?O(KrX+87 z7Y2SSBfG^w9(#$WuPgf#Mp0G+{-7yS7663=k`w*PKr|3505KS(9$>x-WE6V3IEHAP zPqtuY<=MTEftz{VGd+=n#68VSZPw|E0tXL-1jogxfB#TfY1uS!+O+cbZ#Qo-sWNDo zcCWfS$$G-acd{Lf<%)OCG7H=BJ5GrKD*7gNWXE(jemBdO#+2%x)*8tZTKZ*L>MSB8 z3fdD}_!(wi4zp@LVfqbdxoU}PL`h0wNvc(HQ7VvPFfuSQ&^0jBH8Kn_FtswVurf5& oHZZUeIwZhlH;S|x4`AC7#G0cv3IboFyt=akR{0G;P$^#A|> diff --git a/graphics/door_anims/littleroot.png b/graphics/door_anims/littleroot.png index 8c1ca34a5238a2854838d7f42ebb7aa620a0bae8..599517ceb14a8816cb5cfcec6afe040b11b68132 100644 GIT binary patch delta 376 zcmZ3*+|E2fqMn19fq_AppJ@`1Vk{1FcVbv~PUa<$lMvt&;wqsT^#A|=XZP-1y?S)- z(KXG@-AP&1j$T=shEYqdKFivB^x3^RXOC8ISyH{EJE{2S5-jSIpz7zG{gyQ6-T!CR z_tq5e?Jk~^RSZ=Bss6!@Pe9AAdb&7qd_c%}m15 zd2B6AQ*;k3Q`jn3H0=xDBkj*qHXHU_nEgpX{u1}^WjROdWS9Ht!wWcK z0)Bn{?f7ePce{}Gsi;H-@e}e4kF`12We*(wEXsV&?{~?`ke%$aniaWnHy@j{RNYyj=J6WYCB5Z& zQ_SxD4!p(k-tiX8TG=IAAFnNC)2U7u7EsGx&ZF>Khhde3)|>{9je8!HxkOJo`_y3- zgHkK2(3ykNyp`K`Gt9JPompf1;o#0mJJseZ?C0lNA>5$6BI#vgDQCD=hqlR+$=i=B zYXt36+SDV$>1B8OMYvr}somYi=Na)&r+ez$QU2!ePOv(G_hG)>A4a=^TK+@bn>c{J zQ7v(eC`m~yNwrEYN(E93Mg~R(x(0^2Mus5@ z(oGJ8FbD-;lLlCo8#wnr=14pJ;ZeJAcCyg;MO%vRV5sASitvGoAW%oxB?7s61Yujd zu&T0Xxi+wyY93&s*~9hhfb#@p)d8Fm+xs3g<0qQ^qE$R-fZnM{liw~xjSAF>NIz|# zkWpU)2IPRC;$x3`TR!TbVL%Je06GH$FsD5*!6#R{4y^qxl=B53fjCrgKmz$N3HewB z2I8^!b8pPY%{=~r-g$@C#)!inM*BA~oo@~E0G8k;^dukj1?m|)W*b4qTmS$707*qo IM6N<$f^es&=l}o! literal 411 zcmeAS@N?(olHy`uVBq!ia0vp^0zjO=0wfr|csbMpDVB6cUq=Rpjs4tz5?O(KrX+87 z7Y2SSBfG^w9(#$WuPgf#Mp0G+(Lzu(mN*-ChUaidjU z4zI{0%l8J?1o=G}IyWZYU}-q0ZRYx=iAUe@kIcOdHw7zdC39BW8l9Lvar0-fM0f6% zo)a4bl6n%jE*0{Bz5FP8L+9NKs}ESFlx@(Z%K3B{eQOQ|K2s3K`1u)AMxkg3z#74|?S*7?zi=5?YuUnbAvXIOMzcE-6te~*}X zDmM~i!;igbIC=OHL*YgR(a&+r$u6f%*-jkz#u>SyeGz8{)2Y9cLT|-0Oexp;AUB0& zTkYb-ZoUl8ht8jOf33fhds3T!LwLY_^9G5fPdKUrS?s4>(y?Fufi0_Cy}_jCuo|BN z?`K6L(^o5s4_7StKcj#0?;mWxPFio#Hho;cTm9MZK*@KBGyf#s$h|wmzK0=uv!3+5 T+18#we=>Nw`njxgN@xNAJwLNi literal 434 zcmeAS@N?(olHy`uVBq!ia0vp^0zjO=0wfr|csbMpDVB6cUq=Rpjs4tz5?O(KrX+87 z7Y2SSBfG^w9(#$WuPgf#Mp0HnG5sgJia;TOp%>o-i?Jv!u0h*-&c9}IA&5ULT)NSUl{x(I+>Quts_D0I^2<<{uVTKY zx`Z+LVmipDswJ)wB`Jv|saDBFsX&Us$iT=z*T7KM$S}mf)XK!t%E(CDz`)ADK($!v eGm3`X{FKbJO57Sk^cMMp0?^ad&t;ucLK6V_V2|Gb diff --git a/graphics/door_anims/poke_mart.png b/graphics/door_anims/poke_mart.png index 2d9b7d3190853e309aa905fc601b64f9f860d7ed..12a1760690c400f4f00d0fe9f4f3da4c0a70c3ee 100644 GIT binary patch literal 355 zcmeAS@N?(olHy`uVBq!ia0vp^0zjO=!3-po`I#mGDaPU;cPEB*=VV@jWCDCbTqQJv z{{R1f@7cS(XP?d4a<93$J1ME!(JM>SFsgX(x1=@i{_kymH>LPqR?=C=pyH!TaH-$B zw;7@yL@v1()P2;ecnwf}+Q!FMfp%^5ba4!^=zTlMo9~bTkBe?oZl|%syLz8P7H6+> z23?gsv+BKOkZ`q!jv%Mvgj!AoyXc9&Vn01PHVPU%bum;?J-KJn1;w+Rr*+;rYw#$_ z1^xfz@Wn~di0fVJ2l0s&`gUis`b$}7T#b9rnS4!p(dR4bhP@xmeRSVGZ44$rjF6*2UngB4cqhJ64 literal 419 zcmeAS@N?(olHy`uVBq!ia0vp^0zjO=0wfr|csbMpDVB6cUq=Rpjs4tz5?O(KrX+87 z7Y2SSBfG^w9(#$WuPgf#Mp0HH_PokEkZytGM87f+4a5pS3n^C(%jyAKJt8Xa(Q2BWdwIkql~G0 zfXmsMSHE8~9jOu9d0s+#AJ5_Bx}z;GSJ~fQzN)50)FG!<{$0&9j;;&G%lGv+itO`m zGrRNmt=;M0HSPb_Z>>GXep820Wa4b|fELrASC-e#TO&1nUi1FiK%h5NOI#yLQW8s2 zt&)pUffR$0fsui(fuXLEVTggLm8pT1fw{H;kTl@dqMn19fq_AppJ@`1Vk{1FcVbv~PUa<$lMvt&;wqsT^#A|=d(YnOJ^O6V zmV3?3-APH+j$T=shEc_Pza_1C_kVBmyD7!@vXag^1{EJ&0#X0$*}Jo6?;YK8uex~- zT>aUzQ`St0x_9;6(JgzI%vsW$wFanuZ~bZ0yFkk>db&7FzqM ze4lOfXYlHzBpNaJNG(aeSCt@haOV`JumJl+-lxkg7}y`MX_`icD`tf(=vy(#L4Iby z``m|YDGi4v%%9i)wdN*|2cHeYxdnUHGe|65+P+rv#IYd0)6b^pEy%H8P!(_2V$;}J z)6r7%hV|H4i@)x6e9t~|e+ji-vw!KM0>0aId=9x4@?Tua4)(m6U2}oG;*rU#>&N6Q QfWBk!boFyt=akR{0BoqL^#A|> literal 425 zcmeAS@N?(olHy`uVBq!ia0vp^0zjO=0wfr|csbMpDVB6cUq=Rpjs4tz5?O(KrX+87 z7Y2SSBfG^w9(#$WuPgf#Mp0HHYezAr=|CZYw`53d3)2A_gru+GIm$m+BLJGs{5XGNG^|wYG5^w&?WVc-z%IM80I=3 zHtJh^uJP0lhSL@iT{({#en0MLe6lvQaCU~~46Su+yQDc{?mdooERu|A(`j^ES1fwr zfr!S1?KX=YCoMdbZF9yjY6H`{hyJhJAGHhV1UUa_;}>VPU8tDDq)Zxy65e?flZ~{#NVf=gzCYa9Ofy`PECx-!`1j7p%U)_5VfteO8lhU!yXn1whZJ zmbgZgq$HN4S|t~y0x1R~10w@n14CUS!w>^gD^mk2Q%h|F11kdq0jnC}Q!>*k Wacf8{=UxWXz~JfX=d#Wzp$Py(5st|K diff --git a/graphics/door_anims/trainer_hill_roof_elevator.png b/graphics/door_anims/trainer_hill_roof_elevator.png index dc9c6bcee9d61e7f6113cf804b819a9220ef2b28..a143b8c59084b49001fad666128766b8934557c0 100644 GIT binary patch delta 281 zcmcb?w1R1ZL_G&H0|SFHKhq>2#aJBV?!>U}oXkrgCn3Nm#C1*cUPrI2>gwt(TbBI) z|Nq{-|68`)Yi?c>H09`;v)?SUy8ky9FZsVEs=GSr=$0u{x*_V5lDg+y1u93VPg?Wt z=(lH6?wtiH^P19Zm=*Q^=>KosM_<+7&bbS;tjyEJF~p+x?IcI81_K_J$zehMbqD_c zzq}-HLu8kGr^S{D=X7r`wRO<%RCO?Q*gBVv&szX%>p+puAtU7FbBTx&gr z1wsxVKh{OW^tHAf5-!tuekN(t+S<>W|LS^PZ~u5V;Dmkfjhyqv6;`bWDyZR1IwQPh@Z@K^bE$lS zK}EZI4MTSRl?B%R(>4L^RxNRjC`m~yNwrEYN(E93Mg~R(x(0^2Mus52#aJBV?!>U}oXkrgCn3Nm#8pBw=>Px!_ny7md-mC! zE%%z6yOWZt9lf$N4Wo+peoI>O?%lH`_s%w7-I8^7PEhgDCDmK@&iTK$`re$Vz15a; zqL9_EIr@Linl)(ZbLul=a)6dS^mK6yvFLq!=`3Hf0uRFjHK)!KdwRatU%RPvL4Lcc z-1M)9e(^fqcJe(RmA$H#m3`%3kJ_)+GA>KrO8n-!$g+U5Vn)MR77<~&Np{AJv2ic# z{?$92n^`c~VOe6V=^Ex21?SjX8miozbL12S+uH&8{L z?e`u07Kc*MF`^y?lx!pXKo`lRsZhW$7B7p)9Y zwcyH{z0rGvWG&}p@3b}UZPHhJx&+$urzRxqxKS|MFeKCd-t7H%{4bs_KeNBWD5_ik zq1Td!@j!y>|F13c*)PnP@b}Ma3pb!QRZCnWN>UO_QmvAUQh^kMk%5tcu7RPhkzt5| usg Date: Thu, 12 Jan 2023 10:51:20 -0500 Subject: [PATCH 28/69] Add some missing PARTY_SIZE usage --- src/battle_ai_switch_items.c | 2 +- src/battle_controller_opponent.c | 8 ++++---- src/battle_controller_player_partner.c | 4 ++-- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/battle_ai_switch_items.c b/src/battle_ai_switch_items.c index 0aec2316e..798c014c2 100644 --- a/src/battle_ai_switch_items.c +++ b/src/battle_ai_switch_items.c @@ -751,7 +751,7 @@ u8 GetMostSuitableMonToSwitchInto(void) gMoveResultFlags = 0; gCritMultiplier = 1; bestDmg = 0; - bestMonId = 6; + bestMonId = PARTY_SIZE; // If we couldn't find the best mon in terms of typing, find the one that deals most damage. for (i = firstId; i < lastId; i++) diff --git a/src/battle_controller_opponent.c b/src/battle_controller_opponent.c index b3554dc5a..8246a6f80 100644 --- a/src/battle_controller_opponent.c +++ b/src/battle_controller_opponent.c @@ -1151,7 +1151,7 @@ static void OpponentHandleLoadMonSprite(void) static void OpponentHandleSwitchInAnim(void) { - *(gBattleStruct->monToSwitchIntoId + gActiveBattler) = 6; + *(gBattleStruct->monToSwitchIntoId + gActiveBattler) = PARTY_SIZE; gBattlerPartyIndexes[gActiveBattler] = gBattleBufferA[gActiveBattler][1]; StartSendOutAnim(gActiveBattler, gBattleBufferA[gActiveBattler][2]); gBattlerControllerFuncs[gActiveBattler] = SwitchIn_TryShinyAnim; @@ -1635,13 +1635,13 @@ static void OpponentHandleChoosePokemon(void) if (gBattleTypeFlags & (BATTLE_TYPE_TWO_OPPONENTS | BATTLE_TYPE_TOWER_LINK_MULTI)) { if (gActiveBattler == 1) - firstId = 0, lastId = 3; + firstId = 0, lastId = PARTY_SIZE / 2; else - firstId = 3, lastId = 6; + firstId = PARTY_SIZE / 2, lastId = PARTY_SIZE; } else { - firstId = 0, lastId = 6; + firstId = 0, lastId = PARTY_SIZE; } for (chosenMonId = firstId; chosenMonId < lastId; chosenMonId++) diff --git a/src/battle_controller_player_partner.c b/src/battle_controller_player_partner.c index cc134b92e..b8ee6692c 100644 --- a/src/battle_controller_player_partner.c +++ b/src/battle_controller_player_partner.c @@ -1540,12 +1540,12 @@ static void PlayerPartnerHandleChoosePokemon(void) { s32 chosenMonId = GetMostSuitableMonToSwitchInto(); - if (chosenMonId == 6) // just switch to the next mon + if (chosenMonId == PARTY_SIZE) // just switch to the next mon { u8 playerMonIdentity = GetBattlerAtPosition(B_POSITION_PLAYER_LEFT); u8 selfIdentity = GetBattlerAtPosition(B_POSITION_PLAYER_RIGHT); - for (chosenMonId = 3; chosenMonId < 6; chosenMonId++) + for (chosenMonId = PARTY_SIZE / 2; chosenMonId < PARTY_SIZE; chosenMonId++) { if (GetMonData(&gPlayerParty[chosenMonId], MON_DATA_HP) != 0 && chosenMonId != gBattlerPartyIndexes[playerMonIdentity] From cf14c1fd13fbdf8a34cc26d2124a0f3f322cf703 Mon Sep 17 00:00:00 2001 From: GriffinR Date: Thu, 12 Jan 2023 11:40:15 -0500 Subject: [PATCH 29/69] Colorize mirage_tower.png --- graphics/misc/mirage_tower.png | Bin 847 -> 904 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/graphics/misc/mirage_tower.png b/graphics/misc/mirage_tower.png index 69ac6a51e0a489816dee46c4be43ea508f6edb89..c851953d2172e58c46a094437167f4e60ab5f26e 100644 GIT binary patch delta 892 zcmV-?1B3j}28aic8Gi!+0060?>_Y$m05DKYR7HEVy`2BOd)}N{y?Z&FT7!d&Vq$wi zN@^)FTCBzYtgNi==A_=ugVnTZ&74wm#iaQY`3;h zbrDOzCkwQvHJnU^p5R7V;kjR1Nw2D~PKALyPoOZ%YX4)kRhr$dPRvnFr? zHw}cEGNpv*1E3QR+=A}rRvKDJ(*Z;;wTS+^1t)aU;w9kpWo$g47P7%4My3TboRS9* zt8_T+aBN@=(SH!0eG5p_ejja%5Td9DrkliHQ3@?U`lEqKm}>0hfd=@5!^8o~N`1h& zsxmAo3#$nkFes-XjG1AkXq+kAD9KJ?)!>Oe=-x3$ze z{%E1nIw|%^fqR0oCMW`e>j5~9 z0q9v~0}rJ&u@*@6{oDphK$Z4zt)m8_SoH$mdI7i)e*=3G0xO)mIY8`Y?ZMh(1G5*P zq_yUJ>3>iL0%KYpsRgM9S~A*ZLUj%*;g>+2g5nopC3V&Z0O|Z3d{zP96+22c;LaOR zaz9T!f@*=vsRJr7f=Nx~L@OSYyy{qB1;04Xy6KW&x*%9C@B%@I?WaphXS$%2mUNT> zx^f7C^8+ju4_@&U;(0qj%740`m7`cfd!#9%}^OfgBNNV_Me?rIbg& zP!Nn=UHZwD=?w}eE9g$a(F#s*1v&pEhl~esV+vOWsA5CuBcXH1jtPRbI1KQBpBU5a zU@d(-4}c!LY(nblRUnW0hZgU?a(sCO%rC(q8Li?=FgyMMj5-IE9jO-7DJZIj6>ch& zzjX&X$4!U89%x$M?smKFcKeae=e7Z!i|qzux0Ia`;j@QsN(dfDSC`>-giRP0vL{Ui z9Dq5!B0000%hCKMS372W0Tfak6zB z>Kg+-*&Qgr(2(0MSV&D_Fwz3Rwr~Qx$AB+5G_Xs%VDc8sWq&xOeJBn!9N`Q$HI#-j zrG)4OU@{MG1U>CW8E7C)dr-VKqWJF-E}^p#uYpUS*X9<~fbMN#p&C&AExGZqO#9mo zqZ$@a^kL{nK$>>vXhxJ!6dh3QCcZ0DXaLd=H5|*-;4C+^z$;uPE^y=EJMLAev86B+ zs08crk>F?+kbi^{w3bpSkVyzbvvE)koBbVSG;e5DZq-iiP!gqTLWZ$Nku9VkNv zAsCX(LlVdkG~SIABr*;gz)3?$@M(7npam%_5lLB}T1aoYa8yN$i=QXNI9xu_X6l7ZlIDK5K8+JY(@a~94rtlxzD-)z>~iOpH=0a$^|7`xyfs={Jh(G1ls_$ zQw!8!1b@eX+KDP&MXu`DV6pq)2r2d}g8iCcwZ(D4qS9Qd-fG7bv1WRKhPX zvTpI#Z6RJa3#9z_YpNU_a{=9YbfH%dH-S6)dMpt91bjpo5(Ew+ZjZ`AOmGrG;b*; zst)d}HvzxZKaBYK*~OPP!1fZ1v%xaI1iR56K-rgIHG<^NM;9!11A+p|-veFamkxm( z)3*MaPN%ck>>FKUq6}^?W^;_`ioY2V?me_yLU28Jx(pA4=X-`Ve<$r3uCYs=YM4y! zCOnhLCx!?5jhZ|7ap!_z&Odi^`lD1zX{|H5p8Nk~C{e{-qUoCM{Ra6)HqO_BxvBsF N002ovPDHLkV1lX0bcz4~ From 68f97d02f4c855520ccdc82a75c7a3364a5dafe6 Mon Sep 17 00:00:00 2001 From: GriffinR Date: Thu, 12 Jan 2023 13:17:31 -0500 Subject: [PATCH 30/69] Colorize menu_info.png --- graphics/interface/menu_info.png | Bin 1904 -> 1976 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/graphics/interface/menu_info.png b/graphics/interface/menu_info.png index a04c981d5d4b4abc92491723d7f17d38186e8628..031611a2a6c74783fd1fd6dfe93bade9dd3c4f91 100644 GIT binary patch delta 1925 zcmV;02YUGM4!94H7#auz0002=;F0+N0004VQb$4nuFf3k0001xktH;Ldz^#r?(P5p z0M*sKtfYJYgM02V0NybW#W5)W0000000000000000000000000bIqjx|NmlQV%62n z|NsBy=H>tZ0PgPY#l^*xl$8Gf0JH!A|HZ{pQvWeAw8h2$s|-4A000KoNklrxnKtB>#2I^dpmmtna z*}kznJv}`?Kfk=rwQnsiXz%$&ESBxt13Z(6*UR>I*nfOH=_!}(?*MpwdkYp5K-Rvw z1XG#8vVD7iU@aOvonBw3+TTNPI=zLsPq)7VAjqQy$lAA;)9EpPnmf(4zXc&TSGHGK z<+ie~igR~Wac)-?=kBZ0vcKQg?cd$i?eBJV`+;EZ0Shi%=O!2cA2-TEtpwl!3oiHz z`dI=9jr-U`HKPz9{5t%p!riH90U(M8{UwwDK5dp?3V=C!t}MV_m1$Z4)>!29bAX+e zovs;xRQwSsAjKhn@M2Lzz;4Jx00iJgl>q2<4#O@B0h!=9#50W6QwS1(Ir*s&um?B< zV-Khk0M%>=?vo;bA_V)(LqHCzg&=u9sC!ZAE&%jQ0e~T~0A%NmH(3vW1xPpyz(*GV zY@$K{04lOFDy|s-T~1xRG62Elv12C%q$RguXx?MdHT5BXz@Hw7{`gS5$||m_igSmm zIJd2ebA44>_Pefb|8S_=-)`&n13}mE$klPJqlL1E0K|IKtf(+R=-9^XT#JPi_Nk@V z>}iSG0#N?$v}TI{l*v2+j5cjKyo^Qq2n2v*p#U7NjKa?Wa4gCYbQ%H!Fb;tNBo7>lz_9WXrxJid zkOOpO2z)&RZ0|6$>0o�VeMPRhXzJ0a6|}7vUjw6x;D&2|$lMx(gte*p8iC*a}dA z11c&)pdI;kz-GD&qUU+Z?}F<(uG+DrTLI%*Q(sRdZ@&K?7g+0K13^1?4i}Aj=Z5DPwn>_0tOHl=KyI+ zfbQV+q7dxKHoXjpnjhDJUsH`jz}G+#g5>?6xMw~DQvmvYM&6fT?zR9ap_c&MJJ>0~ zR0zyw3jpYSFmDLbD+30=3qJO5XyKx_Vdx!yq`)951BiR0W@P~Ca`Sd?)bsN|12ZG}$5kUD8AqU`7lLBl&0cg7*==NA+fW4&AeU{t|zyq6q zWhM3{1PK7t#fZQm0FV$!7uOIVZrn>I(=R_`0GZffECc|vxz6Y?iD+t#6AKJMFqOQV zq7nh{C;$>zP?cS3eBL&e7C=%umLcVKV1Q`ycr;NmQNzQt1u~n|2p}mX5CC~{&mQuJ z1b{sfBC<_g=zv&zpiA7|3I>4o$|w|nfD$*QbeqwsMCV6Wa~!B51vCT@)kE>BApu~E zf1nKks7q@gstqzrq@B;}_S-{kYx^pzG(S51_E$`wLE`!=NYnmq_uF4`ef|s*2)=#= z2?X|AbFQfL^a4R%GZ&R~TpfK}HWp3T|0j6h=jYe2e}e}C!EThQv-!X-y{Np{X%_ILvfdBx1u-&pU2GBsvcpz8~V%GfFuV(FhV6(sjZW+M*Z7Gla zcD*sL0a_lg_W`iR+RR-r253kt8yf&TPoR-NJkthfKL0PZzsf4BTqktT%BZz$2+Mbm z%I@gwffgLWn-Q2ZI;ZtT_ERPX&SF`+ee!ualw9i5fL`Cx!FZIBT`~89#W&k`X`(4*S!vS&>%;0<%fZher zx`K6Y-H~1IZQqhZNG=E0oY_zA4ZQD2+_FQgvdSudja+p5PwX`ZPr_!BLg`~*;)3}=3!s$^XVijhRsxKl?3VzTckQbFCxG4QS`U~IERMk( zKz;vfu7Toc^kjcw0+rc=vu_6QF1Ywuz)$uU0;rork1$&%%IwP3wsM00000 LNkvXXu0mjfhs%0X delta 1853 zcmV-D2g3Nc5AY6<7!3pi0000n5PbLm001zNGBkfMk0p5k00#R>L_t(&f$f+(ZyQGt z$1hJia6*J|F9rGlRsyQF6M#r*rBO=BK!CG>0G2DumF3D{8YyLn08;NXt^y{G$!z{JyLaU6iFRl=LBJtzANTm(%hOYti|!xlW{#eAdcg^561P(@-QxadH2z{o*nQ_aYX^Xo>^A>g)6TM`0RRdrCb@; zGs`>0l`l%4kL%X}6t6pgt7n&TsZ^ey5Og(zsL$^l)Sf}+4$<|pXjKLc_(i^+-T#(L78Ts^DEhEq0EobEO_v4J*iAsUg z0x1U)2NIRwVQmy`{E!3$V7X>54*7rZf(2mDEu-L7bB^N**tA{zY}Wx0=k1aPyZqa@ zCJA^2tR}I)Y9w=<%SHF)RHg(_y4BW#ZngQA0uFI4AAlf$^RnLD0ag_d^JbSgH33(- z;#NB`0orrzP!y=)I*aQBU?u^vn3x4gxd`tuKx5qv;(?`c-|~f<1?)&?ft<9deX~tB1waQEba5c13<6z@ z`$RRJ1?u9L%)%=iDU_Tey~>rte$JKW5=G&lyj9G|$5$&Ec@pM_D4dpJAeBJE{1C

K7fu*=OW* zeU}pqIRHB6k{diA-V^|CZ%kJ;IK`hAu%RV@9caM2rcb+l56}d0J28Ph0MC7+8rV}& zA0g%e(&SyT{RH3=gmoHJnf3=&gMwv|Qxy{gAS!!+X0+WtajL> ze}#n8+zceDTdv!o<%WM$+!(q(qu&_H&T3U&C-mWE1`c4kX-Ae%MyvoI>F%Y$3|(Je zB7iZ&YE=)Cyf1h_vVKSa4I_8vBUB1NUkK9YBLVEm>x>IJ2ROmCD9p&4pa3HfwqgQ_ z30!X=zGMsxSLK~ZA}$3;);nPxg9?+Ry#9_RF59m&)zzeWg9LxjY#!r&Cp2O@8M$!- zKuvHORJfvmzclI%0QE*)2T)9C44cirFo z0Qc6WN@Errzzt#rnU?zG0v?fHr+S@+N5dmJ8qyJo3Dl%xzlu-*(eVfyjYt83gpL$C zPR^0Scn@7UblrcPE6*j0!k4P-dg0FW3v0C~B9hOLSqWEh)8yK-XU_}GW-Hp3Zv$Jl zw=D%;P_YcfD#2nYtqna{T&U$dsg(eJ{jK&B;^R2lPQL|cKIp~b)v}iDO2YvR+_+_o zEN{nvpTDh*y7wu<8?}BQ;Kyhw0D-Z|1^_hTs37+>^3#8pj8uys?>+rx@7~ja0OZR6 z%f%>qF`k-qAA!}CMy%?SBqUA&B!KVkJ^ewp2v73F1hnjFy^cg!M_P1^Nr0%70x!o(ANtINcjROD~aqa3fP~OKn2PJD0^J4F$qS`$^oou zXwrZW0M-LoTbBXI1Ey*)X#fX+LIRK%mVYq@0OWth8G#P Date: Thu, 12 Jan 2023 13:37:59 -0500 Subject: [PATCH 31/69] Colorize cable_car/bg.png --- graphics/cable_car/bg.pal | 67 -------------------------------------- graphics/cable_car/bg.png | Bin 4982 -> 5151 bytes 2 files changed, 67 deletions(-) delete mode 100644 graphics/cable_car/bg.pal diff --git a/graphics/cable_car/bg.pal b/graphics/cable_car/bg.pal deleted file mode 100644 index d543b4cce..000000000 --- a/graphics/cable_car/bg.pal +++ /dev/null @@ -1,67 +0,0 @@ -JASC-PAL -0100 -64 -0 0 0 -230 106 189 -230 106 189 -230 106 189 -230 106 189 -230 106 189 -230 106 189 -255 230 139 -238 205 123 -222 189 115 -205 172 106 -189 156 98 -180 139 90 -230 106 189 -230 106 189 -230 106 189 -0 0 0 -189 255 148 -156 222 98 -131 197 74 -106 164 49 -82 115 24 -57 82 0 -230 106 189 -230 106 189 -230 106 189 -230 106 189 -230 106 189 -230 106 189 -230 106 189 -230 106 189 -230 106 189 -0 0 0 -213 238 255 -189 230 255 -164 222 255 -139 213 255 -115 205 255 -98 205 255 -197 205 222 -189 189 197 -180 164 164 -156 131 131 -131 90 90 -123 65 65 -230 106 189 -230 106 189 -230 106 189 -0 0 0 -197 205 246 -172 189 238 -156 172 238 -131 156 230 -115 139 230 -98 123 230 -65 74 106 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 diff --git a/graphics/cable_car/bg.png b/graphics/cable_car/bg.png index f268ea9904e86f2b1ea298836a94fd7f687b4f93..6a21ca3542e74b01481f2ce45543d6bc6dc736a1 100644 GIT binary patch literal 5151 zcmZ{oWmMDwv&R3+E?rB52!eEXcP!nYga}JX3DO-)3Ahp>DXFx?f^;mQASJLg(jc9( ziqc%)bMLvI?w#|T^UTco&3u|qlW1h1NlJ8&2mk<5Z7p?^e~thE5I_L_m+5gOXZ$me zuZgBAP&;;i?_belq-O^E=i6@REw|3?|54Y!H)l`f_vR7j$={cIKCGFa z`=)yswW#QjXOs>6NwIQSE#j!l|qz4T@|0WpXP< zUFYo2CD?b+NXo%BGkZZ_cY)jA1Me(oB+#o z-he?+q zX*3jhjMy2Y4$z8)A_WQO0}w{6(s>7;o<-61VE5$bz`BQ5!Or!2{BekEy;T2D&Q3x> zabv3OH_I!DqE}QnAB-{^o>n|hjuA6-u(@S|fESc+2IMD0%P7+O2S^pg)sD#GrPz08 z&ce+|O7-u&4&G;el7X^Z&SMcS_c(=X+!+5|7 zvPk`f2!;xg#;en)JEkIinjRoSP-oz!OXY48LcK<-R*GDdYy+>+_KLg;1^z(Axfi;; z>3Skwdc4vEl7*iyY=RIiun0xX| zWC2c{P92*`0oZ6_8uElh2!Ibgc^6!Rr!&N1UYTp|3Pnim25Y}CQ4EiXg45QP8EFxb~9--InLUs;}1 znfybe?|zpot3qhsRPf#BD@nv*6;cg#89V!6vv9LB?THdj&yE=O*><&N#3J^h@h9Q- z+LTtPf&-S1IPc?IS2^hf4>m;?7rh;%I4uNXaN_uElEJME9?ku z48QlD;5MGc04qnRbL4fPT{W7&6&3(Vjlyr4ykdYVjQ`>ak&>h48{et9okOCJRLg6C zSML&2Z|Fa=&(aS`X#r{g%1TItACiDM%KE+e-^XjGrDwu_aPD#a0Ece#QC#@D%HHwDU> zp)sR2xT=BXLHqkLfh7>-g7x3@(|Fxi=`FhGbh=;c=_|Imo<7kuPHx?M($I1$g;ts@d7LH zq~Q1DqqfzOW1z>wU&#z|tm$7=U=ukp^NKQKwea9=o zO$r(?HklVJL!kp7pEh(YEddF9z^SMwpW^JrnLR4Wrp(19JP!_N7)%C3pI2#r}2Iv763uJb;!SP}` z0i1~N7KT&7%!l5JXHr5QTYe*I?SZld(&f;)BhL9FV{IHZ<$gYjf&%ztyjnP^N^cD; z2xfNAEuk_Ox7k~^ts~a%;-(su*!CKW|%n5Ec z@)1-Z+|Z?z8Z$rX-yHDy@_RR>qk&6~39mTRbS9ak;M@JD zS|0%n@F)MfPyBD0tBcr$vfb8-ng%jhuhE^VxU}da<;Om$bv`fiILVd0c~#OY9s*ur z+wD1W#P{~OZ#iV?B-Mf;!O&+yrn@1)r7z-4$kHki{GEo44{0X~) z`Vjpz6PfGlY*WisVL^)^FF#BT5|rA-e)0*gPNFfU;^D}fFbfss?UQIcV5JLik`&bd zk%`i*jEx|B>{6K`NcI`ovwlg8r0kw7B%81}>H&l1&Xu&A4v@qyDl*aRj-L-+g{Th4&OMIPh@h*)S)^Yx8 zkVk@>Hf~+rm8A%8t=_M;wq&JteaOKMm(6P|*85GMYZ_G+WprZuCcy!>(A%)n@Z+~n z3DfiwC_OB|VQ-iCA-OB!C&_{*ZrP$BK}gyd@;jk#bL<)M!g2Hwmn4oKbaZj_dm^x8 z`83-^_f6nLe2kwP1bAmQ#pI+xLteK_PAEplbzPn8ZSrD#JttI^Mvp`t(wIHzmsH$t z?KcEzSQz9@NNkWP*$_!JFFN)5y3@4MS4-x>*gO$eES#z~yJ zMx+MGu4$vePVs%cAyKYgeg3tMbA4R~6KcN{BtRk9WV;QBb&6cn+R0 z*QqJJ@_m0vC=A;NVmOLc6R49BVd^Zymod#c<1a^ zWx|%4+rjj6O1jSJjV2=&r7v)e0m8(o4i}&%@wDJP${5+p@CAPe1^7V{e(|2v#}WFvlL9nzBRpgocBQz#yfz`wyG?GL-?o&kCHs~ zFT)$5Z2hMzanN+GI!xjO0fb>3KkdkEIzyh;ON zB$?1{tZ#2@uCJxxkK}qA=TBsPvz_v#BJYj%`6zj64N3|qDrTK5nO$S%gWZ2&7eVv; z#6C*pI+N(+#H+v@Ris;4+Sm|@Xe`cPFUTMVY8VCJjE*H{R{0DIPgJv%={1YL*Q5bG zGvRvLpF*Zw>{gQBrg!6IPan*XfBo1Bf20AR33d#6!^Oc`bl88xf}n&eXe%^hl8A(H zJ)6BS>|D{!_B1KVq^}RP<;y1*7(v3?%6%JAZa$l>7^jqVF?JWJW&(@S*0hOhRw}OH z2Tn|deRG4eO!-i3a+-ms<8YQg!c(_Tb%Xht=MvB4Ys8LkFI69*1fu>+oBC~e5}`&T zlEz&d3p={c!*-TDzq06}8Y`1jWbF3k8&>tvl zDw<@DoGPTP#MQ4-WHL#(ot^?wVG2GPy7rX|q9TQi!m^{;t0gv`_j~MXH?GGfb`De5 z6UT`!<$uL8=hsIMKr9=zLqslm@$6-rH4|^W+Rq^QEs`FK`wTPX{ z@0OY;$D|(+G)EwRQX^(7!hu4@|ot(DZn%MhLYv}C1_;S$0%YW zV{aiBGf&a?fV&2GGkWY#^e~WBE=`%+AZ66W@;}J_yh&2`Ky`Z3( z6iEPLb@dcxFW0C>J<>~tO0(3hGf0Bspg{$2GTk<2SfRqqH01sqBDrtEAi%Gb%y~+ zxDAJNQ4~k-t7|Z%>YmG=5WQPjkdk;buJX*2%BZ%P9sTIGhuoeo!1Ph>)4TpcDi;LZ z)qr&k$^`6NwL0u&^R1JmLe>RjjSgFdc2`qa^Ic4Sc9UE#1{K}dC`2uw_u=_P4?Tyw zCB>DSuC*+{WKP;%9u(7k`*#9}59OcNBnwJuP`6!90|!LjF+Ji%(X?bcSMGy>33{f` zmV4q7UQgei5Wd46?0Q87kgQqdR8iJ(bU&T-Z^o&!d4}A*aq2%g!D&Surrud06fQ#q zdXlk12qK$Bzs~k+VlOI0c~&@jZ)4LEkjy>YGj;wEKJx+y%Wgxpu$0xI%5L>Z8~Uia?DFMj_lsNg_w_k~xpIiA`#j(H&^&wC zZ+5kW!~17N)*?XDlKqd4?CDnmQzp0eQD!NFQgFn{-0-ZgcU^A+3^n(CWR;zpr@9RY zi+AsW83kC?2GG)440k^^+|>A+ziB%XV6s>hyiS4~vwDJ|x%k+eycLN${}^r=1Akxl zD7uZqHgF&VZ)v^%5ku{#Jqz0my1p4>OcRU)0;A^ti=*LH)w)1TT7AJ8cJh(gN(IxirBQ!c!m)EDGR+#gzoR~;Y_&L)vd?EmW^h{^9MlPB!&?+3h$Kr^%aIFs z?!ermXkMzWifVWGNMIph-Fr}0k_|y!X;gd|T&Smvywm1ZpR}{{x!amE^+b;wZ-@er zb!Q8lMzvoXhk05nVPUw6Hx}tiHP<~z9rLV{14v}ho|(=?f0JN0H!(usqW>)30pm@F zbuG~ZNlIW+@8ah=IxNPAy_CVb(N_|6sy}~>V;4|SO+LDc=`^IzDGu>kOF{MiTOia_ zPm0O)kS zx6HSMds+nch~Qf-ALU69_W~F0_JCDdn|S-v1@O-i)RuoCp3cR}NmtG?VbPyUom-(6 kj#W(03I2~`8`5jKOOb**=dnJ=|9s4}VFv28s_^Ll0+eXMeE@ZvNr*KK@k4{a=K4?o07nHEeV`$OMuk1kB|TIvNZbi_+ufHPw4%1 zLEj#&=J}sIDU&}+0GcU&KL;SjNnF@Z6< zJ)Qvk`uF{xl`Txvd_rJ3h$STUX$%JV@57jtz%m2?@8nnpAI9Sko1B{b8}DEV0@d{& ze@qm>uSWp?bH)(PHUsdk^^*_=px1k65N!LGp91K;Yx6|A*XuG&2iKkkGXR|)CUh~{ z?mL6tFW&*vcN}NXeF~ufuzQZv>)Q0@5E#z~mTf-|z<$FMdOem+M@s+{ zG&iT;Ou@Rk0tGfck~_rFdkZiaRTmVLbRgJfrCP048;xbvg*b@Fz!|U%dbT3a?<@Ew zfQ~aD65wmMuW0GF%Cx$@ZpRSlk)78fSeI=K?-Bi_Nhlg! zHJvRQn|R*fZ9%PPWXakap{mY3I0C4g8;x)Hcg@;|Cfo7AFyzTc+ zoq_-^m;$#7i*|(tNuGVvE`~9hEy8_^JzpIk}@jI1!e7ErZZ58(%08gQ6>OIEmniVwO67Dk)aK}Pr6%Frq zfBCMf)E*-`-MTn_3P5)(L}Q@KI#c^oRYjHdc^X#B=0a#d)ub-lG1J^L^q$-ZZa7dp zQ4NHRbj-cNK;QPL`mnjuW&o;9(MW%&3ibVue$(~gISN+$4M~AYAu3F9w=gheU0GnB zqrlbrmCBnW4Af;PaXYHM?)6lydlo>Yybjp{S7cZoNUFZ=QSpz`oo;=awqbF~qlE@^ zgVN<${l2ZrR4V%W{jUAK<1|$J1VA~D%lRHvgltoT9{U8<@z7+4?;9En!qRz{Yhsi^ zYS$#jF4H2{>h!gF*8-@N*QSEG3!DxQ=L%PO3GBlFG~6$!l*cvDRSQKB?wgb*82}}+ zGSGe#fX=(B00BUUYeH4-GnE1RDygN`rY)0pE5(?y%SxkLvVMbGSqI6#db_~&aRJfm zHQbF`mCUEhpt3AIqJiz5LRi(*S5#xwI-PGR)%{Q1&7;Z-2bECG?Lx`rv{JR78-5#_ z<=72(Q_lq$*mPom2o54I%qa>00UXvguv;AdUJhY(x^yShd8ZF=o|6g=0r-v#cdi0DDVt}eE!p@QjUp83Q*;1I#y!{E;g>(<&wl6*1`W5wFrF_GIg` z#Xi+ggN74M>%zX!(eRR|zI(+%5Z=*hcldmhQo>sZqF;Xu)OKtW4cU_Z_rks+dm!_q zbU=-(s80P^mSw-UTRI~1f%NMOeUt9<-DT2zywToVweFHk4;A)ua6T0y>VtJa|4UxR0wDOOw`mK z4go%&8Cl;qJGgAEnb{#|krE&< z`>6mtZ0|l-x*i`k+2<+{I%a9~Fq28}_>g=q0OHSjlMj2E@IWYZ;UU~)F?BrTlHaob zdz{H=CS{rg4|?4|S~7`)8IgLJ@AEal2n81&LYZeW#$sVE2?zjzl!+jKWRgZS9TxzQ zBqXh1zTIPFFw1~8TVwtP05T22e8)hud@X6Rn5?{HmSWTc{TgPED$n^6(U!}Zybp4g6fZL1!QV9U*hvEwXq(bH?y3=a~AR{;5?s6%8 zf0Ii;S%86uKKfH+5a4ZLt>tQx17y1gKn@1@C*TNc6G7>pmmvo)rJ#0Aod+ITj zSkC0kT8oLyX=^w8eV*S6+E?mDTj?$4x6(`8FZ*qtr@kaYNt7f)P#=$vx%g?bb9+N^5$PBt7vnbf4R$VB{2XYFNr2w8F>lz5G67QEa-*EforhM zgIp}IapC2A8ZCS;5<78oD{?VW41C?^%9Y@aSdj#PT!5Lpxy7rW%~nfnoc8U8319yQ zUK84=aQ$Vz-DkW@sQ{o?+O?01H@Dy=7H;ZpS#W+31lXZmd61YFWe`ZP5ZspvjO2ZQ z!9>p1t10xoo@Fo!&lRi@7=au36Z#t{2quxh&Z2m=R9cZjh!{#uEFT>c%!jsVEJnJa zfK`)5Fn^QpNx5V{5&{Wl;u;sSm2iVF#Q&k?VSAHlE}^R}%L#(Yr}=W7M}dp^FmPBR zQ-J1UXe(ddywj=4-sT6PfIHWQm|4cCez*7rWr* z*3X&2^(yo&vWYMfQ;gf@@-|ze3#4w=kbK~SFady=h`xDX5DPbfwtP1T;%J$=kp+8} zVD=>!Ike!*m6H4#aU;g4>1IjtSV0Znq9hFcFyTH(D)cw0=UHsJp*LN{V)|7C!ehy0 zk_{4Mrh@hinNPoA$C0-n6+lCg>w7uu&muEG2aGcSKu7{%$&>8CRQQ3ILmz?o@-2mB zCL3sLv%#W-MQW5QNGP17(5cUIBFVE#GeQ7jaQzQRWx3tKeBgMbm5gjLlB6>W7QKig zQa}>>B&SIpLvUComthhoP#`4cA>I)8C?T~Hg;1`@B_k_Ytx_@F=i6`CLl(s>dA6QB zTL&S@I0*xPN{<%E^&|y5e9F-0dBoZh!lU{5HjCqF1|0B0gpV5V^0}3 zJaj)N^z~-FknSXcJNwfJqxRW8OA!B3=-!{EA|uIXD|dlec?t%CIG$ zZcfg?VH7Ts-25{R6!sjlhB@2@yI>AOfm-JOus)~pJIbOinFh*?EgU&HLj)H_D zdP@F{n21Fzj&NQG4{-N8NIC!-5rnCesnRNlgBz7yaB-i(3?)-YT$nZk$Ow!lkkf9N z&sH80NYDqRAV7s7&EK;1tbv9g4k)HT24?N{9R1L9t>xrK%)rZcI|?r_f=x~UWWY(7 zOlY5SF(G#krhAK`0Aehuda~XlGC-sWB_J1bu#WGA)BFxGZp##ANS@fk8oq?>`OCdU z%3lL3fD<7cL1Tdz`AHZpDR}ZmeSyTs0WV8E_|tqX*@mD*F}KLBR*1i1!^srRCrI*M zBIXpzV!{r@{u^!LE|ih)Q@F#c;GU@kn{%b0{Iuodih6^3yl6SiH{^aUn%LgXZ+G+C zfWC?8D!?lP2-FAHly_jWIXQ90XKFp+LC43lOfcK0q znIvR#M+Io2L@yTk+J!SmAu9mh=EuHLriHJhDwmZLQuZVO_ym;+a1w%r@gYv6zDI^F zf~gM$+y#LK2*@W8eH36w^&ByPd17a-3&@zX@B6750XwBiOB+UDskb=FT>Z(N$@~^X z1X-<5_7d_U>>>mgxPE|Y&r^nBsf~wTwhDQJ@Z@BMk1!aQB+KCuvtnJ+P_T7LnO@>6 z2HX(8S3C|~%7e*jLls|1ePPJs7%XNYY|{w}O*2Reh8H9dV(cn=RZYK#295XSbCFey zQC!J!z(a2=Olq2fWx8>ILi3egwHo#;SeB(e`LyL&FZ}GdH`O+0I2aHs#o^S zgH;%f2UMhLIxU7Vgkw~bM4()v(#&@=Tz#{`gGTj>V>d&Tmj%#8u|C*Gg|@RR~iAFIajC$C>K`@)=$r^V<3w55&+lL z3`C`+&)kEhmR1aY3gB4!1wi~f1nXG(rqQ{=vjFI2|8KPaN`R5`@pRbzxaMLl!2Q^9 zP7ubpI4mLV$K&$L5dgYI7<@c`go}VEz7K~5-XQ=zn>=)m5X?o#QIqZoaO4a>mH^|* zP_^2}!};o>B5}`vL$itkP|*7EXkP8(!F-;eNQ_4c5QrZMO9PC{`D0#86Eqh`nu5YG z6h^}m;A1gg@0Sto%ZtN9fRUDK0WcaBWA$3-bjIbyg2J$ZI4S{fp%`4ORbHx47*!A( z7>o|c9#a@rC>$^-$JP-b+o@6@yb*yF0D2wGU|3ztFwnN3F7pWRJ_2AOs!R3PP@t&o$n3JP6Y=kh0ZSPA$SAz`gRe z65(F)(ZRY7;Q-*?WCeq8&oeoRaz_n96+jJF5nUnZiQ}T<6oCO0&-<}i$ROx>!*SU& zF4oc$6aZBY_v3OQhii!<1L+>VPHUN=1psevR9%RNs(@?~RFRqVObtu`eZ6m;LYyK9 zjTC{ANlnK7H6KQ{=r96rEAy$jpjQ}M z^c;+l@JQ!P$CNo{Yo@X?vkV)`&YA%$d8`uC&^d^`Bb_p}5Jpv1Av-IeA|s4W1GlTva<#%g?1V@hbmGbBv*t^y3I6tpG2q#ZCg6!0?v4j5F*!JlMsUItGy7`>Rl34@o- zK4tLY`OKjA^sqAk=7HS*9Kc|ppUYK`meOm{_(4bgSPQk+=Bby;1MsYc;_*lIU|82Y z9BF=oV*u)&pg&|#JeJ8n)U(YGfm-?@n_7TF2KpCVx)}!M5zu-D{IvEd1KTbcm`8nT z0jiIp9y2gc;F`x!p9DB&V4f{{F$4WeutNH@b|Zu8;gdPhGAEu3-7?)ykD-nL_)snI zeRKGl>bBACNdQ;>0l=L5VsZZ4Vy;^wfIdX?&Do+k7S_MImrnxdgG~3Q0nBM$ppS@; z0d~5bVW65mgARE205Hh>gq;t>2u`sWz@Kk!W2Pi;d26#xJL07*qoM6N<$f)|B2 AQUCw| From 863779afbb7513f38864db73f33705d57b21e15d Mon Sep 17 00:00:00 2001 From: GriffinR Date: Thu, 12 Jan 2023 14:55:14 -0500 Subject: [PATCH 32/69] Colorize rayquaza_scene/scene_1/clouds.png --- graphics/rayquaza_scene/scene_1/clouds.pal | 35 --------------------- graphics/rayquaza_scene/scene_1/clouds.png | Bin 964 -> 1076 bytes 2 files changed, 35 deletions(-) delete mode 100644 graphics/rayquaza_scene/scene_1/clouds.pal diff --git a/graphics/rayquaza_scene/scene_1/clouds.pal b/graphics/rayquaza_scene/scene_1/clouds.pal deleted file mode 100644 index 4b1a354ce..000000000 --- a/graphics/rayquaza_scene/scene_1/clouds.pal +++ /dev/null @@ -1,35 +0,0 @@ -JASC-PAL -0100 -32 -164 205 180 -82 82 90 -255 0 255 -205 115 0 -156 98 16 -98 82 32 -49 65 49 -0 49 65 -24 57 65 -49 65 74 -49 49 57 -74 74 82 -98 98 106 -115 115 131 -139 148 148 -0 0 0 -32 90 115 -131 131 131 -148 148 148 -172 172 172 -197 197 197 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 diff --git a/graphics/rayquaza_scene/scene_1/clouds.png b/graphics/rayquaza_scene/scene_1/clouds.png index a253f47ccdb36e4d9e4d1e641fe07d8d48916ae2..be49741039c54d7224b4ada639570575e58eca48 100644 GIT binary patch delta 1018 zcmVPIO;@vXN2Yqa)? zQ8DYiimMNkt3C~XE;EE;3CvIMHE|};l|^D9t;ixt&w?wMOfP$u6%$DCmD4U1FlOjli{bJ3yY+Gfi5J`Jb@P3chnR`kt&cv zilhqTtWzD0+mf$-S44{cJ!SwOcXr@XPOEn*S?&b;SjYb7s(I?iLx z7T%LeC!~#ku-lLSL(o}W&B}e6E9eUa+9~*C;q2HjQy^2eOj%iW16f2Diq*kJPoOO^(LnA<^a> z+)E%%B#!JqWFcy%AA@!Uxt&Ey-5uU5$o7ZXb|buhShbOkb1MfR9M6pjy*=EUMfmH- z)?VgFgFXjgKj#G-!`t6W5(R6<5*Rv5kd8sS%Q}@f>^Y-a)Ij5hyvfra3^GtcWYyqy zeHx2yPJ6MxGl-HkQqls==KZYz*@BnWktt}9T=S-M}lOdZFq8WSje^05R_ zh@RI~iwAX{a~3fNoZs2^w{igbJ;(|qf}j>_v52#6%ba}Q0X;ff29SCV*!lebiqhAQ of_@D$fqKqt(No`_f^JLDUt??Y02A01^8f$<07*qoM6N<$f(fC{*Z=?k delta 905 zcmV;419tqh2*d}F7!3pi0000F?;;2Q001zNGBkff?H7Ll00U1+L_t(YiKUg%k<%~` zhIJPgaC)|xxe{&$3h)fj0nh=^0kl91v;a?eMaqMoB|qGAELRYz1^9PYa%?BZF~iPX zoY?zmSO2coO2K}^%ri!QH~9YwQ~w18SDp^z*)u!?bs@CI?1#8u>@eCTbial6px8Y7 z>^XnXl)U$Ufhb5$(O5~TBW9SggtAXX3hWcSb*<3|YY{c#w>O@`!EL85)zc-vpv$+I zB3NT##;+jGc|QXINoJ&30)&-w^-)&zL3V9d5MpQ}7E)UH_oOyMk>ZCzRdux1m0;Cr z0ou|E!Ywj27lNX7Slj7RSTehcWCI~Nt4)8mXezOYTih*p zX`cmyIIKq+rLH7$h*L@_ROl0o_Cc-0+r&2&C#p>l30TmaskX9}o*@yRWWXQNQS5&t zN^y%~jdU^_Xh2(eX~`);JwoaMMT;Xv%SUPnO&ND^;Gpz$@;0b?>MB=%@|FO8fXS*_ zDru3PdBQ665k?E~o@7=3Ec6~mD$rSRoCP9r>NIG2aiFp~cYjUz%C&8 zyRP#=DhH)_G?2TvUWMSS9iN+#tG$1PUcuxi9?%_v;5-ayikK3$%0;Btuod(c2520o zJi+J`2cE0Vye0J#wu0WlLQcbw6B$~PM%NWcY&R=|u}ZCoi7Zq7-=J;1W_OXDp{qqL z4nJTKn~Qmz;xwz-sM6jvFkAZALYT7&Jv~s)Lq2(i?7q`DM?tqVkGml0-_L)L>F_YL zmODA{OmCEXd_)2#9gmjEdAxuw_t>i!u#`PbBm^A&0%{22sUdFxzB0sb%~6Iu9lu_h zYKFY0@vL>dGSs=2ryYinrKGn|&>c>=v-Qd%mG=w(<1;Rxo*^<WDG~ zzIm&Z95*s=O9$LhXOvSR5R`FkJ0#5_REV~UVY-A$uQn@bm(T&T&H8v0zgx9}e!*7I zol=|H2-Gj2pRmB$BmWyUL*I)np<)jl3Cc|)PVLjs!y2MUXd-{e$rrg9`c|y^HEI)S fo&N=Nw}k!x<@mnLz0${a00000NkvXXu0mjfYKN-X From 12cbb0b30f790b18aef98078b804d2cda76c55b3 Mon Sep 17 00:00:00 2001 From: GriffinR Date: Thu, 12 Jan 2023 15:15:48 -0500 Subject: [PATCH 33/69] Colorize and combine birch_bag/birch_grass --- graphics/starter_choose/birch_bag.png | Bin 1304 -> 0 bytes graphics/starter_choose/birch_grass.png | Bin 691 -> 0 bytes graphics/starter_choose/tiles.png | Bin 0 -> 1928 bytes graphics_file_rules.mk | 3 --- include/starter_choose.h | 4 ++-- src/credits.c | 4 ++-- src/save_failed_screen.c | 4 ++-- src/starter_choose.c | 13 ++++--------- 8 files changed, 10 insertions(+), 18 deletions(-) delete mode 100644 graphics/starter_choose/birch_bag.png delete mode 100644 graphics/starter_choose/birch_grass.png create mode 100644 graphics/starter_choose/tiles.png diff --git a/graphics/starter_choose/birch_bag.png b/graphics/starter_choose/birch_bag.png deleted file mode 100644 index 86bfbbbc0a3aae8d4bf4b8ba8f716030c82606fe..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1304 zcmV+z1?T#SP)3j1-8jW1bWru}qWPLyLd2gPSq|>oimo_f_ zuhl(v!`GjaKXP5S{}~d;u2>C;9_N4UlaE}rED64%bliq;QoeGlWk~cmWl0jZAd;BH zM+Tsj=)v}hSi2Aohnpg|zEA?=EYWL9Uh(bu6*^jZmkenwE)nTAK#ZRqTlv20j>3AJ zbN=@>f`hl&1-M6UKk$dtjN`otY4!mH8U^$b;rqUpNOkqes|H{NdAk7b2oW9-q(s$! zXWCF$HyZ%E1400VgxUP*56u=(GT2gp27pBEe!GSqi(M}oSOR_V)mJOr3BUq88Z-qe zfJtyds|h`E0^TTS3RD39^$vjSpf@VZCL^NU3e5`(e; z!yv2x5v67qPkdSSL7wN}kY8K{ZaEW!K`Bs%oUjJy`o6fm|6QJ6=J^dEuBxFb4UAB? z4mg2N#l7Fc=Hg$T-|C?nXaf)^LsMDO{D zrhpDjsRal%;lNOkz4Wv}ScPKzzj2HXi6Tu{nhMxUUl|Ai35W?CqB%%T7!pbX*~x{e z0A)ng5hy@RXb9h#@6~BULmCA_;y@~tgbQ(92>`%>d=%9Wp)*CIB=}gw!YCr2$9Vl4 zk%xC{MBr;!9|L$9h>s<~U*wlJMiF-e2t!8Yj}#)difH{&=$)B_Lotq8VIKG-##bsK zQz9E73~CQ!Z}XrCco_cD=;I|`c@a?t;aJ6mLG6XqW12vTEJ7dU#hs8Ml)>gDfLa2b z9<37&ONBe4&X7?PUcxsKmY~$d&<|wajNGyML^17^BsBkRTKc%u*uKAnFM@}ITVrN<~#G9-Z`b$pn3Xa z5<+Y*rHRTn`)>d?oZdsJr%xpzkOFHwy0$n1GLH4Xdk+NNN+AGOQDA3U0y2((84w<; zx#ep{#~`rn^y_Prog?AhtVS5~n9;P=Up0XP;dEva7<7Qq=RGRuh`&jI@Xt&Ueh~$5 zco4>ueJap|%}f#=vjj&Mj)48NpMW9=z*CkL#XWq-afn-5h$s9tEJfJN-alq%1*`{| zr{fj@695yv!OaT=z&r}w`J$N5F`i{=AbDF0ZNPF_6d$v!e1T2cTG%wmvR@}$ zO%fK+a)uV*t1Rn$`R8QvHdb%2mJT!kaslEkj=(-cycGbeDEMA~F8>SG>pV$S634y( O00003>oKi}AK{;A6AUPoa{{a900RR60|Nj90{{a9008(>7qZZ)T0006$ zNklPzh`p7x#jll-CY4tT=+^YL1v@9 z?E<2_`^Yr`4pYD>_iwoX`me46V2rCT$pN@hh7AB6l6#h?Vpqa`0LEUjFOLHr%`w3J zRHl!BPZP3{%_f7NsvZOnYHFt2T*n0<1$gz9R+WVA^>Xj4c5 z-M${8McP_vnZd65XTa!O+2s{r9LP({VkiJyzpsw~LJIJNfHd2=0{qtfUjU3mibopQ zv`fDLD1LLKp8!mNjGC=p0Z@o|V89#DDyA2El<`TT8h%N~>u>>(QypN46-S$G&<(rC zgC5;~1B^~Ndl*x9D}e4k-VgON0PQOQ0(i(NPzR4={R|KvFx5j@h&Dukf%`ImWR3E{ zDqy3&AWbQl`_&A@7(e(H(CV+sQ~+)RpqN=tn( zTS;}mcB3!{d3(9aLngZc!j6G4<_Gx=pahX?1Xz_%k2=770%nM0VlarA`UD_vdyk|A zP%UAM`6sUc5G#;1J2{2T4ghulAsRvQ@cWYhO2-)bXHe$=69t3(->L$xxZ;W{uDD_q Z{{ZqzPeUcM&X@oI002ovPDHLkV1hGXF^~WN diff --git a/graphics/starter_choose/tiles.png b/graphics/starter_choose/tiles.png new file mode 100644 index 0000000000000000000000000000000000000000..175b30f9d16529927759e4b1ea91987dda8981dd GIT binary patch literal 1928 zcmV;32Y2|1P)C00001b5ch_0Itp) z=>Px#U{Fj{MRUcZ|J9WL#aiC1TD_cFlyg#pQc5{mVoEVN0Ah;(F+tVU-khA2Vq$Xu zQgZ+R0E^yp#paZY-gE!|0CT-!Vw_S+dqFu`F(5f0|Nj90{{a900RR60|Nj90{{T{R zL23^eRR916)=5M`RCt{2nCo_^^mJI?yGQ0n=7w*QPlwNH+J!=Rorb}$SSx5>B9G*%fvT2Wkv&>DwOnfw}q zQ`Z#NAZP&i&C{=ahaFv=R97C<=b*ne@sRBwtVRzb}0yu{H_*)iW1u%VR?KOm0KP5nh z(*VK#M%5Wo{S2Urpj)+0Fo^OuH5)Sh0svfm4nW1@mTcIk-!!Fu1Az55OxwR{OoGtl z`W1qb60VwS7C`&QBb)xa@1+e+K5?Zf5tPgZ1J(dk(_n@RLu0-%dJ`B*>6ZzLsS-f7 z2Bhy?<^`^2eS9H?=7@d)04q?n0Q47UvC=O6Z~l)M(1v_sG&w<8hzzI!D7tVNwQc)F zzxNE~#i6X93#kkQN@vA$=K)oRl$v z(ZPmR3w_>Ow>)gSwhBCGCm=#*vH1l^#E&46Wy2uwTy^)|rze$-z(m|8QKh`?wa zEkK(9TVIZc}<60RV}u>k9%nc_{6ADn@lfFP0+#@I5 zL9-(=l7 zLKnPb9G6Fej)vOGl8Ub>IHrCfm!(S6;fUaBmPk((e zLdqcY`KhcEzo5MUbe(_f4FHUg*q}uI`bK?h0@U{i1W-qC{^P&ly7_^CCITbqpRYQC z=KACM@w&?ZhcI}A!2<+@PNvWOce8$k(0zSH2v8sGyWTI?THmd|AS?i+-5Cu36x`n~ z^rZ%zIYy2Ip^LRCV)@VjCsVBgIEF6PUI4^x@7e@d1AqYW9)5ffPc#*Vs|~mb;Ppv6 zTZw%Coo~QB4v;p8q`Q=0|CI@_0YLo+{~P0kB!WJ1}+Ql5zU>jpM zfEQoUP64i#z-Fm$i8H{S({=$^nfl&Q=lR$?r~+6R$fEoabp|+MK^*|bamgQYbfhb9 z0hr$J!|DXEX+hMC6#(l14$BjO>w?&Z>eR>pT<1-we_TBPz_m8|IDRKEasW#soJl?a zkOlK3O_;^;S_#nlEAkA01hWlk1IlbG=cfSB!k~XzJ^(--kPUwZDDzwyGzEaC`#?05B7P9VcQzKai$ShsV|j|{2<@q=Z5kZ0VZCX_yx|e zvJ>os3lBG*@ech2fcnr1fGKGNECJ*WM;B*b1;8oW~{dj9YpS*cMMeV27?yNg$eyD0CNDCD0N=iTpiX6aVG%& z)j9ymenyJ1Qi$mUfUWib1$E!d!hB*Sh^i6vRU|a=2!C;0vCJJ5?l2+I)8~~DAP!Yfi5bF=< zJHW`ht?3HDxCxMg(81*TFTnn!-306dm_2~o>r6`>P5_K&0jBU` z-JO2^%K&zHL4XO@h3Rhs2o&1UQ5**N#3w%SiBEju6QB6RCqD7NkN*HHZ{Wd!Af%!I O0000$@ - $(NAMINGGFXDIR)/cursor.4bpp: %.4bpp: %.png $(GFX) $< $@ -num_tiles 5 -Wnum_tiles diff --git a/include/starter_choose.h b/include/starter_choose.h index 7a4f6e967..1bee42a2e 100644 --- a/include/starter_choose.h +++ b/include/starter_choose.h @@ -1,10 +1,10 @@ #ifndef GUARD_STARTER_CHOOSE_H #define GUARD_STARTER_CHOOSE_H -extern const u16 gBirchBagGrassPal[2][16]; +extern const u16 gBirchBagGrass_Pal[]; extern const u32 gBirchBagTilemap[]; extern const u32 gBirchGrassTilemap[]; -extern const u32 gBirchHelpGfx[]; +extern const u32 gBirchBagGrass_Gfx[]; extern const u32 gPokeballSelection_Gfx[]; u16 GetStarterPokemon(u16 chosenStarterId); diff --git a/src/credits.c b/src/credits.c index 4156e45ba..94bc0c4a6 100644 --- a/src/credits.c +++ b/src/credits.c @@ -547,9 +547,9 @@ static void Task_LoadShowMons(u8 taskId) ResetAllPicSprites(); FreeAllSpritePalettes(); gReservedSpritePaletteCount = 8; - LZ77UnCompVram(gBirchHelpGfx, (void *)VRAM); + LZ77UnCompVram(gBirchBagGrass_Gfx, (void *)VRAM); LZ77UnCompVram(gBirchGrassTilemap, (void *)(BG_SCREEN_ADDR(7))); - LoadPalette(gBirchBagGrassPal[0] + 1, 1, 31 * 2); + LoadPalette(gBirchBagGrass_Pal + 1, 1, 31 * 2); for (i = 0; i < MON_PIC_SIZE; i++) gDecompressionBuffer[i] = 0x11; diff --git a/src/save_failed_screen.c b/src/save_failed_screen.c index 877482728..d632c553a 100644 --- a/src/save_failed_screen.c +++ b/src/save_failed_screen.c @@ -196,7 +196,7 @@ static void CB2_SaveFailedScreen(void) DmaFill16(3, 0, VRAM, VRAM_SIZE); DmaFill32(3, 0, OAM, OAM_SIZE); DmaFill16(3, 0, PLTT, PLTT_SIZE); - LZ77UnCompVram(gBirchHelpGfx, (void *)VRAM); + LZ77UnCompVram(gBirchBagGrass_Gfx, (void *)VRAM); LZ77UnCompVram(gBirchBagTilemap, (void *)(BG_SCREEN_ADDR(14))); LZ77UnCompVram(gBirchGrassTilemap, (void *)(BG_SCREEN_ADDR(15))); LZ77UnCompVram(sSaveFailedClockGfx, (void *)(OBJ_VRAM0 + 0x20)); @@ -214,7 +214,7 @@ static void CB2_SaveFailedScreen(void) ResetSpriteData(); ResetTasks(); ResetPaletteFade(); - LoadPalette(gBirchBagGrassPal, 0, 0x40); + LoadPalette(gBirchBagGrass_Pal, 0, 0x40); LoadPalette(sSaveFailedClockPal, 0x100, 0x20); LoadPalette(gTextWindowFrame1_Pal, 0xE0, 0x20); LoadPalette(gStandardMenuPalette, 0xF0, 0x20); diff --git a/src/starter_choose.c b/src/starter_choose.c index cbe0c7ee6..67f762d80 100644 --- a/src/starter_choose.c +++ b/src/starter_choose.c @@ -51,17 +51,12 @@ static void SpriteCB_StarterPokemon(struct Sprite *sprite); static u16 sStarterLabelWindowId; -const u16 gBirchBagGrassPal[][16] = -{ - INCBIN_U16("graphics/starter_choose/birch_bag.gbapal"), - INCBIN_U16("graphics/starter_choose/birch_grass.gbapal"), -}; - +const u16 gBirchBagGrass_Pal[] = INCBIN_U16("graphics/starter_choose/tiles.gbapal"); static const u16 sPokeballSelection_Pal[] = INCBIN_U16("graphics/starter_choose/pokeball_selection.gbapal"); static const u16 sStarterCircle_Pal[] = INCBIN_U16("graphics/starter_choose/starter_circle.gbapal"); const u32 gBirchBagTilemap[] = INCBIN_U32("graphics/starter_choose/birch_bag.bin.lz"); const u32 gBirchGrassTilemap[] = INCBIN_U32("graphics/starter_choose/birch_grass.bin.lz"); -const u32 gBirchHelpGfx[] = INCBIN_U32("graphics/starter_choose/birch_help.4bpp.lz"); // Birch bag and grass combined +const u32 gBirchBagGrass_Gfx[] = INCBIN_U32("graphics/starter_choose/tiles.4bpp.lz"); const u32 gPokeballSelection_Gfx[] = INCBIN_U32("graphics/starter_choose/pokeball_selection.4bpp.lz"); static const u32 sStarterCircle_Gfx[] = INCBIN_U32("graphics/starter_choose/starter_circle.4bpp.lz"); @@ -402,7 +397,7 @@ void CB2_ChooseStarter(void) DmaFill32(3, 0, OAM, OAM_SIZE); DmaFill16(3, 0, PLTT, PLTT_SIZE); - LZ77UnCompVram(gBirchHelpGfx, (void *)VRAM); + LZ77UnCompVram(gBirchBagGrass_Gfx, (void *)VRAM); LZ77UnCompVram(gBirchBagTilemap, (void *)(BG_SCREEN_ADDR(6))); LZ77UnCompVram(gBirchGrassTilemap, (void *)(BG_SCREEN_ADDR(7))); @@ -421,7 +416,7 @@ void CB2_ChooseStarter(void) ResetAllPicSprites(); LoadPalette(GetOverworldTextboxPalettePtr(), 0xE0, 0x20); - LoadPalette(gBirchBagGrassPal, 0, 0x40); + LoadPalette(gBirchBagGrass_Pal, 0, sizeof(gBirchBagGrass_Pal)); LoadCompressedSpriteSheet(&sSpriteSheet_PokeballSelect[0]); LoadCompressedSpriteSheet(&sSpriteSheet_StarterCircle[0]); LoadSpritePalettes(sSpritePalettes_StarterChoose); From a12432a0f328cc649eebf8271b73e87e3aad86a0 Mon Sep 17 00:00:00 2001 From: GriffinR Date: Thu, 12 Jan 2023 15:26:53 -0500 Subject: [PATCH 34/69] Colorize crusher.png --- graphics/berry_crush/crusher.pal | 147 ------------------------------- graphics/berry_crush/crusher.png | Bin 2151 -> 2496 bytes 2 files changed, 147 deletions(-) delete mode 100644 graphics/berry_crush/crusher.pal diff --git a/graphics/berry_crush/crusher.pal b/graphics/berry_crush/crusher.pal deleted file mode 100644 index 13ea34e59..000000000 --- a/graphics/berry_crush/crusher.pal +++ /dev/null @@ -1,147 +0,0 @@ -JASC-PAL -0100 -144 -98 172 180 -255 213 156 -255 197 139 -255 164 106 -238 131 82 -222 123 74 -213 98 49 -197 82 41 -156 213 189 -123 180 156 -222 156 255 -172 123 222 -255 0 255 -255 0 255 -230 230 255 -65 74 90 -156 148 172 -255 213 156 -255 197 139 -255 164 106 -238 131 82 -222 123 74 -213 98 49 -197 82 41 -255 238 0 -230 189 0 -180 180 180 -139 139 139 -255 0 255 -255 0 255 -230 230 255 -65 74 90 -156 148 172 -255 213 156 -255 197 139 -255 164 106 -238 131 82 -222 123 74 -213 98 49 -197 82 41 -197 213 246 -255 255 255 -238 238 246 -205 205 213 -255 0 255 -255 0 255 -230 230 255 -65 74 90 -255 180 255 -164 172 172 -98 106 115 -123 131 139 -139 148 156 -148 222 164 -156 189 222 -197 213 246 -180 164 115 -205 189 148 -213 205 172 -230 222 189 -246 238 205 -139 123 74 -74 131 189 -65 74 90 -0 0 0 -148 222 164 -164 230 172 -180 238 189 -197 246 205 -213 255 222 -238 255 238 -255 255 255 -65 180 238 -255 255 255 -0 197 57 -255 255 255 -246 213 0 -255 0 255 -246 238 205 -139 123 74 -255 164 106 -164 172 172 -98 106 115 -123 131 139 -139 148 156 -115 156 189 -156 189 222 -197 213 246 -180 164 115 -205 189 148 -213 205 172 -230 222 189 -246 238 205 -139 123 74 -74 131 189 -65 74 90 -0 0 0 -148 222 164 -164 230 172 -180 238 189 -197 246 205 -213 255 222 -238 255 238 -255 255 255 -189 65 255 -255 255 255 -123 123 123 -255 0 255 -246 238 205 -139 123 74 -180 189 189 -255 255 255 -0 0 255 -164 172 172 -98 106 115 -123 131 139 -139 148 156 -115 156 189 -156 189 222 -148 222 164 -180 164 115 -205 189 148 -213 205 172 -230 222 189 -246 238 205 -139 123 74 -74 131 189 -65 74 90 -98 172 180 -41 41 57 -213 213 222 -205 205 205 -238 238 238 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 diff --git a/graphics/berry_crush/crusher.png b/graphics/berry_crush/crusher.png index 6e43adb27bf0226c4d175b9dee89bb4b0566856b..03c23f8b57ce792562a425a3bb29a7b84da5ee97 100644 GIT binary patch literal 2496 zcmbW2Yfw{37RUSE8wd%K1dM{pBRoVN3iue2@Jdhw5fK;_bP*yW;3@)+utpQ%5>OeV z0xA#(1awdVF~%`GH4sF6K{SdfK#-^if(${30vUptSW~q%TeZ8jwO!rk^oM`{&i{0O z=%0dv{0#65@c;mW4gTvwwHf`k^bl?Q{3chWP0+zmKOewIH;iq>?k^4^>6hW1sD_op-{-> za{m{7t87xE(I^y?5{c}udW}$1R#g?f_aG~S%ROIozOSrE)Tb2-%MMCJ=Vg+r!9LNX zLc(PQ1Z0S`ezZ+#HD!ZULWQVxQp@U7XcSs9UHC16RyS>&lmTstKTm1f{44)pk?8;9 zi|AUghQ(t2lPna8zEuSO;{Q*+*5QBhuf2bJdpDV^Pa=^h6bfxS|9xN!Cbch%ZQQVq zzJ*!T+TD|XnM%@S=qx;PwewZ))4RWog6ZH^%*#C36WI3z-+V87Jftl_CAg( zH-l}x@gy_-{%YEYN?lpGFJHQ~4&pnQOH;lakqkUTFzF*cA6&&;BCsk}uo5kJJ4sMd zCO=>09qsr&MUJyNK{1lfO1D}?&MAa)3QHc?rB5np*Rl%<-n4Mv? z)%f;T?RiWXnm)bHo1IX}+#pVT4qGsER+r${&}Qx54Ovo}0?ay7_Cu#=Q{Ib65BB*i z48D!N8i*U?e0&x=cQA2vnvqJ8X{5K8t)8_}dC-b&TGX2yq;;_cmZ>{?7*|?R zcy)FF^44*z3bkV86vBG(~dx%X870Yc%S+6=IUA&6vc}E&qpy~s4Oeb$#-6QpLy|U&T zQ#vsibM$>-OdBvBzc!IetAWVIDJQ9fEVy z#4yff8Ly2nk{kdyXVC+GPL5Nz_tQhZ;wnifpRen(klsDn6M}_@BB84yUtS95LZ^C>@EPDf~zy zG()924s!D=`cNfya9oH%G4&X8!RSoSb5E-eP_llY*Y7u+AUl{J2#nYt7F-60ZF&a{ zOiD3)L~d>w>kszK4POh^G!WP=D)?f38!%0$dH}s3e-g>g+8}uD?pwpwiFhoi9bcmx z*3orkl|CsEflN!HI_}GNR$Q(f*^CVg^hkZlTuv!&%s4`Jx$uO$WH=j8Ith|x_a64d zr>tzyb6M{Gk5uIWk6t`cpDI3f5Tq(Md9-(ArL}?FPo$izf?MyP&B)};DvIZsJ#U%` zyET5P_}G&z-TPJ=2GkzNDlCMSAe#IDX{=^dtpSY%-b*~pE< zX=4RMJvnhHkTQwV4l5K52L4UXJmh{Kkql8vN|uJ96bop23h4&UA*)&<&bABH$&KB9 zU&qE$do2i0298UeDZi~W?gg(NnoP$7Rwy~i0E+v(d&yI&F5L35_^t(Ky2$* zw!ge_A;0AP=e(l=a?^c(Y%$>RK^+G4MCmi>*yP3pk)1M9j1)z7LAS;X-o%4Ac+JJg zPAHEEsxKdQMnSZ&AcbZ=bFO>JL3-CX3AlA#r_pneJbfJ2xr z=pX(Vb>`YWQF@ld^)Jps5<8gy7=?6?|lJZ~o-B;BzVYo0@| zIS;8Mz9Hyc77l_rF=kmebKwXh^en-q(+>8h@4|9sGT#vbUFX!zOJO|hUDBTN#yi7Z VzcTf}`n+#{{RZElb$lNN=MON2m%IP~ delta 2102 zcmV-62+8-r6Xy_+7!3pi0000n5PbLm001zNGBkf5kx1zP00;6(L_t(&fu)(xZxcrp z$M@8nklDymudqgG;1YG$3gSc)uX5qg3r6LTsEWe|T&abmcrWBoq@wkul|VvSSE^Kc z%39)7QI++nm6}7$Kae=RfzlpK)u=||5cj?LwKKc3jzizYWM|%IzVG?X>>FbkS@Unx z&k28DGYGcs%z9|c7MRA}H{bV(-7$R~V#1ld8K6B_)&RiWoSY`(!F?F_JPqI$9Sw-Pdi1paSM-GZTbvKpxfZSshM)6FqQdaeZ3eKZfPTLp zMJYh(yO`%7{zXlmV#GfgnEBO%}N6< zL>$22DFBl&`<(he(EuWv#ApPdTwaJ}e;EL~Gireeb=*p%-UlRxiu+j{N757lfC(Nh zP=*Pyq`?^ait*`WqeDd_>_;FI04z~iAf=SVV5A5ffd38vKypR^5Txf&0dee#ePg5u zqX9Li!T>Hu;N;<(aR3;Dw^DyDqyJB?%MoODVK@!|C3uy}6#;PF3K<|GhT{QNJ=eWL zBA|duMSM#`$`}E_7#fW)k-!0Nxok)VjNvE%NLXE6y?fP73>6fH{gm;f1l4Ml0C=tj zprGL^1edOy1~3I_Kmir_DuIh13t$XTfl83#KRO;zc!LVSsu=*O24;Wx0He@gU-#W= z7GN0vp!?s(2!K@gcdJ*kfXNI1KV^Wjb6~ux01DO&uLRuAU&A;*T;S2ExXTPX{L{>5 zx6_pjk_@Wm*?RcoH%FBFsgCf6Uf<9HeqQxfFfdDm(Mr)0T2Ok{LB*~6aZF%FM^QjpxsdfZ~__u@G2xJkN{>Hzy!#IEP#dp zxsU)+tO|&E9&`Y-d!!gl^CK0I2uMUI0Q|mjeO66ov3Q09I&^>ioj6V*GJq~F&vw(C zJI?@^1Z8>ILKVPm+iw)vj(Hok<8FF+?hTd)Sj8_IgBU~*LyiEP`l~q7VPYI>7mC>z zGPr>USd%udaF7Y(fOg#02g(42Yj6Z^Zt~_cL2y9yJQ@iw{;gK8Qw1D>4HXBF?oBU& z17_e1{A4o-6a;@58GH`_tw=AykR()_fox3yC_uZkl|wKj2}?^s#sr{+X&D7T3G@!3 z1JvOXrza$U!po(lEWzMeY|*Ta0DuI1yXpZRD$o)nK;dW!2?rVgB%#H>*>)}f2=o=N z1JqH$CM~dBfKgyg!a*7UF%Sg-CA9MZhG?Owz7(e322J8!e`UW{EU|(Jye=Il- zu(%JV@uzRE;{f1G1SdGjAH65Z4*_|AeX*SI?3y3diXchtAN|^&pYd8i#5r99dIRrrZ zg_&^xs(|?f0Dpcw24Jxx03ZN=*-HS$q9j4OHzinai- ze&INP5I`cZ92r3Rg_+TSMdiLA18^d}Cu9NQZY6(3;L{>tfZ>n;*gatsK)o+8fWsZc zJz-`vK-?DyV8$6HfaIQ_2P~@h1q8@RlkW-n0AB%I9;yIA&;wHUg)~6EC*%Os`vQE8 zO6AG-1TBC%Zp65su*KhfiSO}XP@XeQG6OCa_!|2P&LVu@{9w|C-eJZ89RYYsUVTFV z6rq2N-AcuA$aNPSNsp)nZ0vQh<;50%ck6q6bsowJjtBGr5OV-&2oF!BVB-ZyhnFed z5h$Q}G6g*ZLXgwaV9Y;<45Dxlel z4)J$fUNky@_}P#EIs(uZ0NWlH(31htJ1BpU0Cfp4wt|f=twM18w*D>(7~m}eymwL1 zqky9{K%)RZa{+@t5m47EVB5LJwsTJbY;+mmbJ&BB#WF2E&QmbQ&xTwDe^4I4 gE4_l`Y)C8k4;`7^UT|+M;s5{u07*qoM6N<$f`>qh_W%F@ From 3a253ece0f93a34c41b2b4af001888b902df2c37 Mon Sep 17 00:00:00 2001 From: GriffinR Date: Thu, 12 Jan 2023 19:04:49 -0500 Subject: [PATCH 35/69] Fix some colors in crusher.png --- graphics/berry_crush/crusher.png | Bin 2496 -> 2502 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/graphics/berry_crush/crusher.png b/graphics/berry_crush/crusher.png index 03c23f8b57ce792562a425a3bb29a7b84da5ee97..6a57360a7198fa6c05d0b7b7a6eae754c4d11618 100644 GIT binary patch delta 1980 zcmV;t2SfP46UGy;?E!zpNkl_ww@6c?Dk-(@}f^AS%5x!h9`A z0ciRJKp7GMkzWMR@gzaz%CS5kPSE-85HR^sfaq8luLWAq=T}u-vxKg~4RBTQfUc`w zUby^efFN*P===tF@c}@@(|zyl1G5Vv0FKbrGXG0#KwkHqAaV#I0o@N>CE~?uGXQe) z6Zw{qSU?Lpf1`h7ew_i3=gV08ORDyoAU3L&-%SH#etP?72|D#nMh703?+ZGeU&oex zM!qNLRDN8r@P|QhOX90}?Gidze{>U}ma;yUACTbok&AC!KohL4ZNH&Xgw7shQFI_! zE@J>3&k($LQQun!NVP2_@BkgJ&cU*3N>KUoENB5%(C2>xbQA|r`PB!i$``bd&j|Xq zOrRHSdk@f%cpx-()Heno1XBQV{}~0;OuiD>ReqzpKmxP?0cslmRh3WR0FBCD{y?=< z0>1_1FtmV(0OA#a0$Lv+^SyW=RCpi*_})@LP4Z>a^gfz5xX0uE4rh&Xx($gfhzbzNHkBhdZN288jNkOtH&pmzD$yP*29T!#6}<&Q+Z zJD~)E8XtdONj?vdC&@5>nacM8zMy@N=f?q_L4TeDXzHeE-``{LF@O=kUw%HE39JC} z-yMMt3;?i#){L)V1+a=BSuEdoiK1&q59F$BXMmGr1QCB@V+a922|@s7^gaDP6MzNX>uZ>81uI#%+wD40YB|)Ix3^bS4nU5n-sB5Gg3zp> zZW9QzTsD8e2~U!?0f0*qu$}^h z`5YkwfOi2{cz`cp^Fu=p0Ht5hxp)j>*oW1l|K1NIfE;!u@ zME(v7B*3&_Dm$#>F#!ll0){oYtlUnv1x5Kss6qg`x*EV>1ZCTA*SaBq-mFlqGr#=b zMn4Su{a$b5;dn3we_MTGiU6eGR1i-At9~y9dp{o;0t5w|&bAM;079_m1qgv12rxL- z9e@o8_F+CnsIq_+0FH$M3a~wh35df1Obd=>gb)BdxbCkBfUN*IvN-~i_fbmlGta0Ke`03bLbK|r94 zG(b&|#iozEDI5S?hy4&-O=FkREI_;s1n}GAYaIEzD^>rHdN^QY;_;)#lL7JcHPpR; z(NtbMNxugGf4O$m+#-Cu%~m&~vj8KrW2ZMC$HT4gW=03Na1Ow4zKMr<8u4!#AQBz| z67e!tJm6`-cAEyI*CQIZvn#UyBR>T*#o_F=nF#%x)FLk*8o1qtfc0j>rV1xURwhycur@%w=sz+a>md;>mlJ^{%0qYmJ|AD9V9y)Phu zt$9U@0QCL9T>yOZLIJ&t_W|7dff7LSeSrn^e))j#{lE+WjrRaOEdmG#1%UMXf+;}k z{Xh`_fAaasas>$T5rBU`kPY}3muQB$B$;XX@pQG1{D(t7YA(X3 z;{^cc0ATxT0Z-_F&eyFMW!?*Tfa4Q8Aojfhf1C{9L;%O*^E#mN0iXt&_W}qY*7mdx z$YXyr`(6c__W}+eSN5z9==?N5%~kX&jJw$60{$SiAPpdZ69?FA9}Q3^A0BY}DIMSe zLk#fn4(R-o4=^qG86EHdHwPGgQU}J12e?iGvN~Wsmji~Y1q=lp@Gr;X#lIYnmpEX& zauC1(S3cc>t#`gN+aFf$a=(+}0B{4MTd?)ccV_#efXU?w0M{D={2v|AEx4}(;fMg> zZovY863pvBd_)RxP5??ekQ`A2kb=Sv1osKW9T=||a4qTpcb_oTf&T!;o19zKL$YfC O0000vsF;Az`mLL}yM$LB_4Vf!vFSQI z;_~CgJ+B9zKWt3+7{km>ppDKqJbHfZ;x7B#Y}s>pz2pX>@um#Z_uRVusV3n==H;*P zA#2K>?TQdqM%?wd`z}+gtvKNqLq7I?JbCxR_|n^sZniY#58>>stE7ynfS6lR5ccG0 zC5CR^z+Gqd2we$^UU*oy_lTKTaVPknB}CWw0<$2-E_rx9sfEl|nZdT+6uOz-P&sE@ zqb)0o&r|NMg5>t*%H*%dJ4QMYLfW{`M>jl^2CND{rzBcP_R}Fjx;#(g9px~btRh>T zVKI~o%H38GOA4Uu0_l^=^cHxZQnTVG_4pDL^Nf7_I&x=u58+-&xi-O^rS9%;@K=^5 zu47L<6h$h>wCsw%9cH|^H)n>#xed#il{WQ%^f+ESIsIpWZh6kvYE3$!GAmp(1pmRS zs#rJ`V8Bkv_U%gJ-TyBn@Z2;t=(~_$#(GtejU!19*`&6zRos!b`!Zq}S4vZcn4+AK zP-%&Mq|#@j^=SXPw1@{2UYt#XY0BR6)V07;f@IHk+R0*Pa&f9A^D|6V!i184YlC)g zOha7lQ8nq+7P59(cC!+;f-^!1l!GU*_SwO-;P*>S@X0**&_$;L+eP1@+XtUgN9WGR zdy5jvgj?~%F4%%cTrZ`#bI^rVgQJ$Lh5)mkeHQNJ5>3V`N!rLGi*|#-moS1)v&@ zz*Yf2Sriazq5uZ%yPv9$;B@X^VfB*?Uq3(Ea2Y=i<3oFRm-qyI)LV9rH$v8Gvx-Yk zZd;PHCO`;e#EqQ1EQN<-R2Zxf?=eGcq^zmNW|L)*mH0GsA7t`94rX(+AAN8L-;TI8 zt<8ft%BKyF=`hAf2koON-%r>Ay_(8O=YC4XU!P~^4;R1ut;A(=GO^4QGySFRsgam) zt50N?ahoZy6HrT(J ze%%O}`(3+Y&vj6Hz?`?y4@|eUuh?a(m^gDlrukROhSOii&Y#_J)iK|p)M>9rh)oQe zlv$I!MRQd7ldI6HRvD46c?+t9j^5;|C)zIE>y3BNSz-*q92+i(X#+;nH)nD<6%f;? zWCLy_XW+hz=dCS`eJMP3ga1;%T5O_3$AE((Ca%k`hY0BekP072-H4C;+9c7(wBX(l zdK$vpTH)vngpWwpD=-dch73J}bY{B&{xi9^18Ndo$cFG*u-X$hQfRJOl2Gi$-O+H7 zKU}0~p%Z&m<@p!DnKuV?fsvC}UY3CxbJ%ed&OvdQ?7T+OMjcNI0OE_-5kE(V+53mN zAwS4vbWASSabC{t`_>;qf=4^BL+#obbj51dLEkFjq{> z_jh?&eT0(q0yloY;|STo@<6~4eKaWo$7}{Zp!&u#f*etqTgLi>gN9+7fO`#9)U1K8 zR<{AuG`1(u-QiEC+ga-e8%Ez7vreRtK;^W%PH1=U4OcySA_AF8BfDEv`%8-|$Ad_L zfu5-^g=<-b^(T)roi9JjTsf8nSUuE^HBGJk{A8CJUFWqP|4CIJ@f@Jg^w{_*^mmY| z-tO7noq@K2oGE&CM*h7)C>xhK?M=XR`p|_C1lE~|7M5B;iwwkoM@$Oy@TRMihp>&-W+lEZB zPB*N%5SmkyXmFG0B|uF~A(`gn8BjV)G{8)Z8!Vnc$_>LyRhZM2ATYB~f}DFhpLPm+ zIS<3V1)&dgIVzeb0e5p^Dr_(sEDLCE7U=^{A+F8g7uz3blj{5YexQ?+sRI_&XCtSTPOQIOj0V8#R^vH7 zNZH90=tFT|qE|i#%LNK?-7<;gIoxafBVt?a(*E+!^@}gr-7>Ih1pUg3zztlI2+AAL# z3BZQlTWp!S8~hyFbt|_jbGsvtRc@uv!dytk-#T?lF41W2i@DS(Y^{#)I4S8zA4#%I zd!8!9YLRnjDboE48Hk1UnmJ3`prH=hc85 z;b^tlDk^Ye)euuAMR66oy(yCYav-R+#uvMwH{w<{U2Xsd)`Wpzag15U-5fZafnB89 x^w`1v+yf->eEJ|Y&}~W8(qvxiz{>XIcityG^vY6?Y{>=xx7ByYX1Nbf{0|_thw%Ua From 52e00ac60381154239ced10fe255764c573c5b05 Mon Sep 17 00:00:00 2001 From: GriffinR Date: Thu, 12 Jan 2023 20:51:50 -0500 Subject: [PATCH 36/69] Correct colors in summary_screen/tiles.png --- graphics/summary_screen/tiles.pal | 131 ------------------------------ graphics/summary_screen/tiles.png | Bin 1633 -> 2213 bytes graphics_file_rules.mk | 3 - 3 files changed, 134 deletions(-) delete mode 100644 graphics/summary_screen/tiles.pal diff --git a/graphics/summary_screen/tiles.pal b/graphics/summary_screen/tiles.pal deleted file mode 100644 index badbfe53b..000000000 --- a/graphics/summary_screen/tiles.pal +++ /dev/null @@ -1,131 +0,0 @@ -JASC-PAL -0100 -128 -180 180 115 -74 65 57 -255 255 255 -222 230 246 -213 213 189 -246 255 255 -115 106 98 -98 156 222 -74 148 189 -57 148 164 -32 148 139 -16 148 115 -156 222 164 -98 180 139 -49 139 115 -0 106 98 -180 180 115 -74 65 57 -255 255 255 -90 106 0 -123 139 32 -255 246 205 -115 106 98 -90 222 123 -90 205 98 -90 189 74 -98 172 49 -98 156 24 -238 164 255 -189 156 164 -148 148 82 -106 148 0 -180 180 115 -74 65 57 -255 255 255 -172 180 172 -205 205 197 -246 255 238 -115 106 98 -238 222 24 -213 189 57 -189 164 98 -164 139 131 -139 115 172 -205 222 123 -172 172 148 -139 131 180 -115 90 213 -180 180 115 -74 65 57 -255 255 255 -0 0 0 -0 0 0 -246 255 246 -115 106 98 -222 24 238 -189 16 238 -164 8 238 -131 8 246 -106 0 246 -172 222 222 -139 148 230 -106 74 238 -82 0 255 -180 180 115 -74 65 57 -148 32 172 -189 106 213 -230 189 255 -255 255 255 -213 148 246 -189 139 205 -255 230 255 -230 180 213 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -115 98 90 -180 180 115 -74 65 57 -255 255 255 -222 230 246 -246 246 222 -246 255 255 -115 106 98 -255 205 74 -230 164 98 -205 123 123 -180 82 148 -156 41 172 -230 156 255 -197 98 238 -164 49 222 -131 0 205 -98 180 106 -0 0 0 -213 213 205 -255 255 255 -98 98 98 -230 8 8 -255 189 115 -65 205 255 -0 139 189 -255 156 148 -189 90 82 -139 246 255 -24 164 213 -255 189 180 -213 115 106 -0 0 0 -98 180 106 -0 0 0 -213 213 205 -255 255 255 -98 98 98 -230 8 8 -255 189 115 -238 238 172 -164 164 98 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -255 0 0 -164 0 0 -255 255 255 diff --git a/graphics/summary_screen/tiles.png b/graphics/summary_screen/tiles.png index 2f9f8db855b60a1e9702b81b5ab03768adb106d4..915742f1a7c33bee007aceb40e878185e45753ba 100644 GIT binary patch literal 2213 zcmZvddpOhWAIIr2U;hOJw-onM|Zc z5GI38=gR##A~z17%wZdHm|QuZE@V5hnSeoG;HeCdz$PPViH4`j6Q~k8Rpd_>IMTU9 z6(13C`5aC#g98?LflwfkG^!DmhF8gnGLf5zPv^5!*-U{%o*)o#*r`G$Rkpxuy45T- zqSo+oqDo|_;^S1QI5h*P1#&r?qh$E2f&uc2=a2;=hD<5a%z?-_Y7tw4C=sPl_RC}; zGU?O>f6csVwfxt-h{RvXr%MtNguxuHy+FxD8tE#&qdXNz=t733TqcufoauDB5{E-X z%uNymutf-$BccYg)d-O@F?*);#gga@#9{o9!oGADx_!EI~p4C6}^R`n&5p@$K?| z^GX4}_V-O&|7abbX=zTZcj%KY64(#rMxsJ1t{#8$$fjlJN1emh9G#jwMG4!IrUP=W~}O%dVA*J5se zVP(z{n(D;>Y4qbu?LBwfUNr2sf!kc^re#o`ue-PflVz$a4${}d62s81$Dg{qG*dK` zoY{q|A_bz~4U=%Ys_KCFo%miVcJ3Jd2o^oplzqQ>J~6V}+;%4BkO zq*k=@T;@AmR&n8h36N}OiB=3;D!TRD4?)`!#dDqu?|NEOr1MI>qBmtL2YRS?vFkH{HEnOE6{=2a{H@(YIdbY*H7^0ZlXo!$xEQ;*R6y~i*!M>R%23hP z(Tp(k=w}e)ku?>hGs+~3D@pK%rQo2gY7kXdU%ydQ*#5;Iz9EOQPIsn zX~k=i?5qd(p$%UR>|eWS8?Z$AE>i5NmtKcTE`+B@BPg|vb-r88f_t|+ga19g!|AWU zh-Z>bA#Z(3mlNmgZcog)k~BT14lH)vT0(SB+ezVyyjCjLHypgxw;~3l#Xa*N` zdt~aYp(tiAY6~xnpi68F;dKspQ0YVwVLL4@Yp-7R-KffP=y!@F|0>TIWQb~QqSrl% z)#(-mtZ$YAoq;HuTK}V^7#kO`JxnxDL%k0QwK|1<@c;-`z*6n7OZt+ z3_NkA1@{)ZI)Rg{%D5qic~3O=H;(1wFKa3|E&gK@Y@zWWz%+O;fKoR<{8YVe^}6JffMzf0$o z=1Eq`(q?GJGH9-&UHAJVP}(3zOvHmikYiZX>aw(K(7`Bc=k3vu;@RGNNdzlU zyb;ZlYhwW?Fyo>1Qn>wFNH*8yO}Go3)Y%TrCFi|IucM~uUIk^bDgjDNIEF5LY*DXu z<+L_%sA@@R3WvU}ORg`8K;^q{O*NJluD)_)1|8!OwApf(DUU69ygdr7vnmy{*S!8u{! z@%fjGuMo{KA1fFM>oU0$?z%((?Yw!IGF@L_!FhTavm0d6(EX3&b3a?{9TBO=F@5FOe&68$J z%f22+{q%DXNHY4nJzdwXA-`prtei8R08vU4F@UymUjXRWwMk2h{vqoGyEeAv9swMB!JczBYYJ916Mp`C Nep`0>RCv=;{tx$=2_ygj delta 1580 zcmV+{2GjYa5#bDw7!3pi0002U(dUc+001zNGBkf338W7I00rzxL_t(oh3%L~l#32sNuE@s?% zetv(E&gYBN8MX}^;1yV4emf_d6#)GH9Imh6bX5x&S`W^hH35DExOZU=-z$2s^ngVJ zU<~)>wE*kELjc=&5PYfA$-aS zX@sBwn|m(@@b#bon0E%OeF&?5fO`+PY6JxTIsgoZ@)xl80sMgHAZMKbSy?|{;TfL~ zzJc8VP)Kb6!*+E)8o7EH@VOJ<`t|ke+l$)^1l*n8ovv5w)mDK0%l*r<@!1#w$2)(= zJIlp#u^nJOzl5PhfFRge!u+-waPI+E{QzqZSY6NOdr)6Ktf1{K2;Rbw`@9*D`g)L> z{mU2TZ2Tfke;uXAJ1^7a;$;Vb8(FK=T<;lk`@y8pmfpRE)8{OWLuayRh316JHozHQ zcG}1QPg?*7Il%J_aP#iwT?QDo0Azm-FeCtK0X2~W#4Uhda)1K@z)A&E%77=YC$RTbM1KjOq1c?yIeag;P#Ulq+1#; zFmQ%*kU^@a)2W{R5q7X|0e~+T0n-!+)9@#-_pr}!hl|+^_xG^RaDNZ`EUX3S>7VI? z0Eg+}VRHBYKynC{KA;cSPC9>B+6L%q6#!I*lQ&0+KEcH!IAX8aDZJJ?IeK%#GY}g# z{tx(X0ia4K*d}<4V2iMBM7n5n%ib;BN(MTTk=vw%lZF;q0zf<7k}?!E03EqaYx{-r z_ia1hidp~=2t9=tbpU9$9+m)MC}Bf}WB^{&dLUJOAE-#Et|8O`pgDhz1UixRcIka= z!4PV*06i|XjHSX0XC(l(NPAby3cxBrc?HychO`oS#bgg8M@|Q%0M2&>zz;aZAR-5_ zIpprK{Uk&=1owbbOjH7R1rQ*P%4ww6DFg(FJOG211rMru1ff_R*bo2^m-|3(0Dw>m zA?Qj7GE+b;Af~&hS*w4TJiz8xWeTvmD4Ar1z+=iPMrMF6Mp}vdF^5hzzl{K|0~wVD zWLH353x(i10t5>Mf1*zavE zfJrgOEg?)`?vSeDVN%R-TNb1(+ckiEj;k{Q85Ihw6g2?&GL`zuSodbd^5GW*n*g*p5H#_}ykMu=kY5Tk188v&yNRDyiB5kOeksuALFE6vKve-t=tNCK z7z#B}ZrnF};1+=JgH&);m_(s~$pDW+wF9!wa%sn_i4gFjJx;a(h=^8#dID1sXjygx zP$Cczqb5)X*auSLv6BZvxp~2cAgB}h*aZ-C|ML;l=d&QgXcK@Y1Xh4sE5^$H*P4nI ePZdq?{|yvEohWR9rH1bS0000$@ -$(OBJEVENTGFXDIR)/pics/effects/unknown_4F6D38/0.4bpp: %.4bpp: %.png - $(GFX) $< $@ -num_tiles 11 -Wnum_tiles - $(INTERFACEGFXDIR)/outline_cursor.4bpp: %.4bpp: %.png $(GFX) $< $@ -num_tiles 8 -Wnum_tiles From 77cc4073867cb5d5d1b9250ac3d88684c1d0013c Mon Sep 17 00:00:00 2001 From: Eduardo Quezada Date: Thu, 12 Jan 2023 23:44:34 -0300 Subject: [PATCH 37/69] Review change --- src/daycare.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/daycare.c b/src/daycare.c index 08ca31da0..aeeded43d 100644 --- a/src/daycare.c +++ b/src/daycare.c @@ -625,7 +625,7 @@ static void InheritPokeball(struct Pokemon *egg, struct BoxPokemon *father, stru #if P_BALL_INHERITING >= GEN_7 if (fatherSpecies == motherSpecies) - inheritBall = (Random32() % 2 == 0 ? motherBall : fatherBall); + inheritBall = (Random() % 2 == 0 ? motherBall : fatherBall); else if (motherSpecies != SPECIES_DITTO) inheritBall = motherBall; else From ee3f5033b3471409f2de82f4c061ba2a015f6650 Mon Sep 17 00:00:00 2001 From: GriffinR Date: Thu, 12 Jan 2023 22:30:06 -0500 Subject: [PATCH 38/69] Colorize contest/interface.png --- graphics/contest/interface.png | Bin 1680 -> 2573 bytes graphics/contest/interface_audience.pal | 259 ------------------------ src/graphics.c | 2 +- 3 files changed, 1 insertion(+), 260 deletions(-) delete mode 100644 graphics/contest/interface_audience.pal diff --git a/graphics/contest/interface.png b/graphics/contest/interface.png index 5e3b404621a04aae4ac2e18d06d2b1c363a86fda..f4ad5b8544c4c457bfff5d7d81605d181b74de6c 100644 GIT binary patch literal 2573 zcmd^AYfw{37VeuThDX9f-U@|c5uuO_tcoHgya@;~ix5yWgTup!NI-O)2wn+-435Ye z29Z}>!oUb30y>HWgJX=Z05S#@CB#7@J`fRzh=#k@nJTwxYpV9&{@Je6r@OvB=R04Y z{?Uc3h+t!qEeQZ%92ye9MpyXrG{B;MT2t}?U7$>Mupemdv3~&o7O=vj0#Oh_5Uo}# zm&-*W5tG3N2nqoPQ&1!jve|Men<-=_FquMOk(wuwpz)c4$~cC%NX`=^FoXh{S}KwV zd6^QnMC2XED{60Ivx{hmR;m_Kbvm_Dl!@>%5pVBG03>RJCqig!v|y%A&Cv2bmzGN9 zD0M=DfWhQZX>ot(K~Lk}NEvS=RIQNmIgAPr5t=6X>v$ngZcX_&xg0@?5EUpAArgkt z`%58|A2sw)r;Af683@we-foTF7v-$1tVHLZtw2N~M38{?0PO~f{14()h^kU8QX^V{ zH1oge0Zpj1Kc7tXS)N>u`u`Z{jZoQNKn4H;0HkP^0YDf45dcJrGN2~-%YJ@I{D0V3 zS}$D&0O3k#03+(#%JFh#+V3G0#jh;`%oNXFnY}hwcg^{IVeZNW6z_tPzI>T0?yIE* z(q|_}mb0rt@l&tfOYsgv@k8@RX+5vq4-V=R)Ad{8ReMFXOQIDG_%-t{UqtplsIVJy z#>dX}r6CzlOy>+d3qREEfpwEgr80nt4L1X4$)V$;D3SYkCCNy@yi-~9H z)_%mL7;aktM;Ae|E{ux}Ha#{*4*X1jIjlc+b>K2ku&eH0a3}V)ZaZj4=eLx9kY$w- z`*=X6D)BY79P6OhkoG*=aVE#JcI^Z38&%}dDLrhK-)1B7sO&v0k#|HTg3|AC9?sMe zmqh!zqqQ1$Y{w(nPX5+MV>24crsC%rP}K5^VVIU~I203>2U2eT>|0p9@@`p`4UqEl z0^qRpJ7FFp&MeYd;sKcZ4-?s{32-;bKbk}j(UpMBt;IM>-ic6;axp`7IiGd`>S^nh zn~90(J-}sZO^Pu{+z!Wjj2^i5URLz@%brk*$usT~8Y@;D`9!8j`r4Nw)KOiT8-5+b=V8$!oR&%J(hz zO&oPl@_O+NNF4DSI4~tucl`(|vo{!@IGOARFV>6>JJ6e#CwK3zwiK7T7X|+ESl@K4 z`6}(h3VWX*&PiQOPI>>nSy#jHo!($B`;eNP0S2#Nnxe^#swD$O@?^HvVhfITHuYpO zRueXp2FT<_g(5gbM7)_(Rug4F(L%@db3T3J|J1v$bFKfB>J`S_x_##4_ycR~AeNhb zJM#Jd6e!MwUN9a*n4^l3zt`WW#dfI^K@;7|w<`ep@ zX?}w%kzSFX;eN&zh-#g|v4-0inQ2UUnD{PLMWV0L6JUu$|90+if`{1COg7sMIC)Hv zbgwu3Ni6K?vk7qhxMZ4489{s71?smO`ERVPiNu3h&YFX;rwuqhV|{oe(+2zKqs%G< zQ}4U34#Lvs$vp(W)v!u&%Jz!s#-2=VMUKvwB}U%0X`~K{$jC@WOZv3&yslf#wi58p zTllNU)islM-c|@y(HPE?wSJfm-$np(kfu1?B^PHa&Ad7bqV$b!_*(b^y!|)?EW5h! zNzipCH^|MH`xM)dceRs+H+flMJD30`o+AEu$;$>D!m)zbcbqpRLY>wec6!I|@eg1- z8T5+cauYR3w%CHTceQR2m@Og5t_Z^N(moJ*+U~B{I%nuws0DnDTCb1EXl*P1>u8Hk;T8(13 zHZhoxq(g>|TcU8R9Sc4=hP!n)W^FW)&F4}Uv<+bgcXVnVj{z(qiB&3kClhQ!&w84)k%L&(}#)Rl)D z_u4O<1DbbRjruAV-yb>jkmFVQ>QL8a)gtUD^jazO=iSLog>ynxM3}}c*ga1iJqASc z6M)-Kx!QVhBp-accr5a^X}910<%~ox25T zaaOvBB0rioBJ<>JwWFG delta 1676 zcmV;726Oq16p#&&7=Hu+0000ZrPCGw00vh{L_t(&f$f;hYa2%t!1W&(l@LnOHZVpQ z1R>zHuQg2sz4Z{YITR|WA^8JLVH_O-%_UOlJ=sPWYA8x3m4gkXwWLdPiYnEI9F3z-Yt`h>pMt|Y_CDQ^|pJ#rMqc(F% zxw)$bKWtV^Kj8vA$$UzsAmA$l=(UZ60ggyUi(7+ob0`%r;HM;t3-Ba08{l`TmI81X zJR){xf)C2gs*;)?phN?@wtY2a8@s)LT_WX+KmeEHQvhR*!#>lB89;YtfR+Sa2%qo} zG53AUF9-#&27fDpytyQj$1u{LYx*P*kOaWMvaC1Yr(=j~KaogqzRmfeKC$1;b|F$w zWufN-wEvg@z=_+3>O?@c+vQoTWKRMxi6j6ML|7J>K){3~j3nmdBm*e90QL}&#Dp6G z29^+Sh!Dp~A^HiyY3UX(&Hj@rst{ zE1FYhsYKQ9W+B!}4I$3(Apm3P52FI;69HpUZ~-R8c{n*&qKD90J`u;CnOpyw4#-hy z!dn6?Teh_dM?`>(LXOHP95S{IfMsjdUXBisdBBH>qyQkX0jtZ)_UbGq95T)s)9Zn8 zYk3tln12D_lfWpLLHH@Du{aqel-WR_&2pZy{RxL6HOPaY&fstb!2JRC1rOjT3~>06 zee;kZ=J7zR4EkcO?*Tjs1vn4#55MClurvlj06=&Euv?DOtFs_=yXlBW;}_-H)w z{ybkDlb!eTWAgRe1H2?1RY*qy-Xm#vBtL>WO|}S0L-%_G+$I}jeE}XI>x68$0p!_5 zT{HmZrP&tN1R7=lID3785(-r~pt>sok9N~lFCb4gZZCLEAnkTE0Hsp^9qt9757HyR z7Jo@gCxYP`Ko)`l(g)y24X6<211!+|EIt4mc7lCyTEH{XR)vs@+6P-we@4=7z&Zqw zQ0W729`xEBRbVwD;2dM>CF&7lReT>~3UG&RK*?k6&4d4TEu4Bei<52jyRY$4)Z?9= zysGqMKzf~0ZW}hceI5WfQZIx16#(F-)_?H2(WJeB(-*J?HbfrNNOC=8fwt1cmO2{SWA(srr^iHB!Kb3b7nr3 zd;p>W*Va-KOlS>1uUZfh)#D0KZX>`B1Gqo&%%B1=cJ{_~Fg+Cv@S5WWNGIBIHh(BV zQUQRTN`wgjw-bW^oc~(@@PPqbO@*6)-vb7q6Unx(>rb-laLnSwsHqHqvI@Q{Clmnl zAQE7h1H+s^0JhVYb3~aAP@0Oc_Dp6>K9PXG)eSGEw_r`V{UQj!7~UwYE{`U*7%nQf z#&HC|d%+T!zdUd1AwbI3cynimkpA-nj&txoOEzT2J78ip6Q0umZZ3{x%LO_Nr zUDkjrZUEe+ZdAVnZA${tcG<$HACS510ho!ZZG+}zHBq$y@&m{s2>=YEpaEbJ8v_KG zV4OHKf#HZ3Fq0F(gE|i)0*n()7@5iw3AjS$Em=GOe@B?@RK*MpITCLf@w&(*$i^2ePn0UY8fFb~J9ODD%aZn(F1_*HK zI9F@HrQ*?jFcILuT<-8lQGf6N_ymar03S%ew2#eDC&F7}Y=8`71JVH7H~@$rK=Mwl z3ek)MfK+bo!AAj_QH=$t-7D@9^8}PwCCbfCo$+8gNsF@osd0HxKU8jUpsc{eMn;04)@ob#P=% zfDC~n>!^TpziE+Sd`gXcTa60X)1nhe&xb^c3iw6Kj!fktpb-;rPXh|k0Y7VzfNEV4 z3dL$nKur<~kPI;a@KA%@NIu|V0_3J5+o%AK6WtOKFnZp{1e{LZ0p0=L0sc3De*mR@ Wd1kL; Date: Fri, 13 Jan 2023 00:46:02 -0500 Subject: [PATCH 39/69] Correct colors for frontier_pass --- graphics/frontier_pass/bg.pal | 131 -------------------------- graphics/frontier_pass/bg.png | Bin 4011 -> 4506 bytes graphics/frontier_pass/map_screen.png | Bin 3333 -> 3655 bytes 3 files changed, 131 deletions(-) delete mode 100644 graphics/frontier_pass/bg.pal diff --git a/graphics/frontier_pass/bg.pal b/graphics/frontier_pass/bg.pal deleted file mode 100644 index 2bfcff098..000000000 --- a/graphics/frontier_pass/bg.pal +++ /dev/null @@ -1,131 +0,0 @@ -JASC-PAL -0100 -128 -57 74 74 -255 255 255 -205 205 205 -164 164 164 -123 123 123 -98 98 115 -57 74 74 -230 246 255 -98 41 65 -255 255 230 -230 230 197 -255 32 32 -98 164 222 -82 139 197 -74 115 172 -74 98 106 -139 98 115 -255 255 255 -230 255 222 -164 164 164 -123 123 123 -98 98 115 -41 57 65 -57 106 139 -65 139 197 -180 230 156 -148 238 131 -131 222 115 -82 172 74 -106 189 255 -205 205 205 -0 0 0 -139 98 115 -238 255 246 -213 238 230 -164 164 164 -123 123 123 -98 98 115 -41 57 65 -57 106 139 -65 139 197 -189 213 205 -148 180 164 -106 148 123 -65 115 90 -106 189 255 -205 205 205 -0 0 0 -139 98 115 -255 246 230 -246 230 213 -205 156 90 -180 131 65 -98 98 115 -41 57 65 -57 106 139 -65 139 197 -230 189 139 -205 156 115 -180 131 82 -156 106 41 -106 189 255 -205 205 205 -0 0 0 -139 98 115 -246 246 255 -230 230 238 -189 189 197 -156 156 156 -156 106 41 -41 57 65 -57 106 139 -65 139 197 -230 230 238 -189 189 197 -156 156 156 -123 123 123 -106 189 255 -205 205 205 -0 0 0 -139 98 115 -246 246 222 -246 238 172 -164 164 164 -123 123 123 -98 98 115 -41 57 65 -57 106 139 -65 139 197 -246 230 139 -230 213 49 -213 197 57 -156 115 57 -106 189 255 -205 205 205 -0 0 0 -0 0 0 -106 131 238 -139 164 213 -189 205 205 -213 197 131 -246 222 164 -172 131 131 -148 98 106 -115 106 148 -106 123 197 -197 230 230 -139 189 131 -106 156 74 -148 222 189 -238 156 131 -238 246 255 -0 0 0 -123 148 189 -65 74 106 -106 98 115 -82 90 180 -139 123 139 -164 172 189 -106 148 131 -180 205 213 -156 156 156 -213 238 230 -255 255 255 -213 180 172 -222 230 238 -213 205 156 -0 0 0 diff --git a/graphics/frontier_pass/bg.png b/graphics/frontier_pass/bg.png index 520c34b3dd9716fbe9b1632a26830aeb4241945a..9e7c59c97054b118279d7effd8831303a198a70c 100644 GIT binary patch literal 4506 zcmZXXc{tQx`^V2`##qL_HFipNAtK5$q^uz-l6`NiHL@0;G1d?jmA+$5_GPj}Wi%=w zYlK8hDJgq23Ylm6UDxmVJ-_QY|D1E(=XKxr`+Z;6`QxP7*_d&o#n1o%ZVPi$d*%)U z00DL+^JJ}XJ(sybczZJwP&Xj)jd_OctWO`;v$SL|82$bIrKP2@v9VrWcxGgd&hSz) zW-#XF<~kWNGG3+A_UWCL_!>(uT)G#Y$C>e(L}HE?4v)*h#ddbi&81U_IFe<~G-a7YT&6Rad~6QI*b;~H!rMDH zrN^e1)=+Rc#HRjHraI;vnA00=s+pc!W;$fTMf+=s0PuEOm>QpsA}x`)@t<@BlJ{m$ zJgKA#RdQ+{wdf8#^y-z4PyF`J6lYvd!vUhf#N<;cfsCDEv(Ogjn`!g&5FPT*+!HBS8&YjqcnAtUAgPmS!05;#4-n$F@?(7$mnVw3DoH(yG~aps zG-vgx-peQcDo5M2+7>L++A|_urLnGhPxzq#NfCsqEcf|Gk!aXpV(g2~;-f0>g?l0s z6Uw3PkzCZV0F0gt2Ub#2LiZ?kVO|QP<<@dG?gb1kZrVN@Oshu*OEE8BL#*5>IGB@) zkv%cAlyE!hB7D2dGc7n~=eyApU@yEncvr|nPpn8d5mzlpGsCIR8x}pqRAkn931P-&3tkvP_aJ-)ElU`oluefl} zQ59)bz>!()2BdP&!KW73AHNC)S%JP;tR7QGOzI#t5&sWhwrnk48dM+H=xO%11D$>g zDG?p_<7xLVLiMszBYtl#WhPa}Q+DS>&$dmp*4n_i5Unf=rSbat2IGA1*yPf!$xCXf zNRJ(Fml<}x%EIrG5II@Hsa9&lOC}7`l|ir0rc8=m>cBO--00^eUqjkSMMat82`=7m z1QD-M18mb1b#W{j7P@N#-MC9&o>h%?1PZxm%tmePm{)^4iJEGn@$OX8)mxnVBGxn0 z_^_JOPVhem!U;$Zg-%yKt?+;vT9(o7YHuZVK<)@M#w%of3SMcqxXge5`#wLO_@JlQ z!YGTEsG0MA;JFvX-a7({%)H$)p&ba;sM`%7|P(`(^yHg#< z_?2daSPdZ*y)$3E2xCl&B$I`P4w5sv0J07LGiLq6?O;O^;#tv8L>N}?i7*+ehZ5X0 z3|TWcO_N$#xM&KnxfDDre?2acOCyKl>i|*-tnW9mOv;a+o(=ihUxO6@>s}fLBk9OM zG1QX>7%g<$a)p2>A|FSR!Jhq{TH$ z%5yWGE|k6hPzAMrY?;9D zDL(-(5eis(fO(*1@gK9B`@0exu#?<*VP@(P9U*qG5b7qlDgIs*Id~SaM3SRG0~eAc!+l+Z=CZbLrsWBNc_bqYB1f9>m|%a zZ4>y-`stXxN$8PO+mymkJKEXw%;bhFs6a>j%3F9wM|}5&?LQti^JTK$u_i(GreLE5 zXZz!o(elWNPU`hW>FW5Wtk0&T5Jfsh79)o@?xWABlXp|%YcCp|V{r|EZd$P^SICfTEpRdwkxm< zZ<~eI$7^<|s)t4r^tPm233`)U>_r9K@$+OQUpBpEZ0yWUt>RN2gMurR4^s|4wB!r- zCrWUebX|u><gF=}+s!DSz?JK=4`P__ z)I4TOGkWW+xSmq}^f2&icU8Bj5cilIVSyK|$D(W2j8}f5WO^GKuARF*YR{j?nyq=nfDDS(w-5jmsCLKd z#e>!hH8mYV)N?9!O;XLL$K+tcFB}@HrKbayd%Q(Z8K|kmfpLA z^`7p;t``>OEGy$KAbF`?^)PU{dTixaZ|Yo_I8bcnl-ZBZunNF)6rG8tG{}z!=6{`q z?%4y&UuP0tG%k{IgSf^6Py^8s18=JV7N*NgHmwO9bvg>6wrja@u?hD z(xYbZ^LwDQ6wO;?+|OU6e5rmLBX^u1kjMkKAQ`AC1TNMu0W@XWF}`i|vwzCE*QeOJ z#gJGr5%9MCG!Q9Y?L}~X;pem~EFP}$h{v2`hu;*)QuR{06|GXQ?__{8-Wj0I>j7Xw zPjza%HvclxAKbcPG~Nz5|N zUgyvU7aX{dyXQrEjBM~+Q89xNx>T6Q-B1M56cXqz; z6uY(4nTV5sEQkU$yC;fTAUjG3+(S~g@PQJQL$(hcb>YNASkRA(X?z`fvIjUFQv$23 z;EDt*kSN{i;gB44(O{KHa})f51=;tLlZMx$5^Tk=T(c#H2oQiT5lQ-9>A#0NOUC!| z(raW)I}Pf_o;l?g|JYqB8gl;8*|*g}#hhD1r~`C^nD#?CVfgXLA~KAFQZZ^|b9NN}f(J zXN7%O9(+%LV!m?jfr*MLT7s{KIj<{1tskQ_kvA_oc$cB~(3AmJ=n?hHFUDIicv&GG zH;le9q45$oI3&R^kLXiD=xSmuKv0r!;Xdxugd^!Y1$g>-4)$JiL1N7+(QGm;A={wB2F(JIk>1}TJ*J``q^Yk|3~HZ9JX@rB zp9s1slTtv!Nf-4|L}sGm(lJ;0XFi4E%_4BJfL1}S-|o zi8w`anesAdZ@g_8kU-e4s_xxnjVI8=5eH$&9ipN%iSAPnb~ z+!ccIXj^@{cT>%wyh_qv-chTkWZKbHSuBSpm@NPotbHu4*97GbEeOA+49Mk;aMP<# zHvHysYml0YQ8G!iZZC%pYJBECc47lTwlx654~kvB{T5&Nx*RZbkc#J(DZw5Fqkaty zXqCk{VV=YaFc7WA{TO`Z)_*r_qIN7>pCwhvjt>3GYzwmwU@tO;6B2HKfTpg8DGi7E zyuCm$>U$MCB=c=Vz~R&HlIQ22zxflQD#{*qsZsm6g&oj5#Sau!x=~3M{v^3$w|ZhP z09;@2Wj3r8lzK|6ZZvFh%-v4zF?P&X5=>!OfQlJ=1pCRNZ6WyTURX5vv5LcNMI>Q7 zy=|4tarTi`0%rx1BuWc{ez>8+b_J2T4_U(-=S(cU&|GJ~`M2lUU($h(e^SC%rf%*1 zaOj(3QELPUliS}=?KsF5ReT{t!87W1o{@{UNl9@<3nmz!nyHN{Pa&- z-==0bLD4)b?M$2~O3|d6ct=ce)PGlWlvwc<3&(@Vd;z2{2 z7W%?IufycWxM{X`e+}%Fo<1y1YcA%cZEoJ>EHT}!b(Cz$N3WVJytRj~xUae1uHY;I z1Oz`EAw@eaYGL|$c&cqC_(L=`+~K#f@8Tw3<)e8AEV6Ga_vAH1qw`IK7IMd(K!m0g-Lox_WU$1k})*B<+jll@(GcBaX zFE+0AIYQz}ke_AZO>_z))z=Lr(5I;J2j9g`>$jI(Kvz>G1|?g7^DB3^TL`>UupSGJbnV8BuEeArrxj?r4%&!=>)-KA!y?qANc=i+E{ty$|U%Vi1`D zD4V>?g@TuePYaHofTy?F3Jd;b^Z|oS-lo5W^>f%hFU00^C|q5RQsnK{tWVdVlSDwx*>FT>#=t^9C&bgei+3vG;(JpX8D~Gl{=B=hfUf3)>z$Tt!g;9ergea zJaWJ?HnS|Ty?3TF=tiFKz-Cg?;AbH|D^kmJ$VF5H0ioqwDj4;_BLXJR;J5#{X;lAC zv(sN0;|=d4WyNh*)>Gn~`u?nLH>wjt-*S?7qo3^MUo_#!Su!UWjox`GsIYH`mv6B= zVEYvGbBX@B^4C&x>W9P90510S<9)u@sDGL}61k8vA^2u!%aeXuzbWqSRShv`qdr3k-dgEhq={=ueW>Sv R9P?`rERNfl)|q%D{0sTmG=KmA delta 3976 zcmX9>c{J4h_kVw8%+N3fjV){0mn_MaFm_ooVLWy-ND^7HhUPyLZR&6lZ`$`-+LAOQf^Cj4&gHI1Aj zN2z?3dEx-zbWWI?ILF@WEuaRAeG=_=sK;fc2^s+3Ew-F>kewP^v=(5Gn=dJ6Ls_L0rUs|CbUtdiZ_27t$#OKkKd%-@_txS z_Ey&}%JqbATr)2fWi1WQHHXv!q^9qaYhRtk#EHqjP4?7e_p*_Ae$=%cF8U zUQi+qBX5Zi0t~#g;Y0@dMKfcuSqIqCFUUoxObR4=9WgM0ns?qc`-0VmMqgk!_>zsS zl!!)-#K^e;#nJtE*g$SUI4A6Ou0JBBt4xUMLSCH5Hotd*^sKv z<-RJ@XTMXcYW~O(`4;?m1_YQBV%=q?r-Dmw$q!oEuUQe2MG*Pdg=2dUz}N#%^uT{O z#W~PdjgT9;y9<@P7b9J)b@4jPsIaN7&y}3w1tRJ?n1&zJlVZfTkwNaw);cE%JYb6Q zJ_HS#cefs%pW@y2+a1JV}g?|2>0vC$CHA=#*DmzQS%9Csoaf(FJ&<%tZ zYmp3162J5PJEZ%ABueOA=UHz|tNNil2C#j2tP`Y6jLA%|}KZ z-$92j^@j3z$k0FvmcDon?fPa_nGZB&JitV~DY`#nJR&;~TevoJCOeXaSe;gW6-Cdo z3ySp_Dr$ROIk{3+_l`tY>(H%HY*zkfvw(_#JF`H%4-lDrR24AiB?~B z-r$MV2-%dJkW6Jg;3y$|A__Kdu)q>`TBwgh9b^*_zRk)bWvoEUE^xp;2CA2z1+<2L_lo4eM<$Z&s!HojWga<)Ne z1aZn9jR8V-ucL*ahU;)88r%g!wN3OZwPB;sq8zAUFt)LaaJBAv=g=Bcs~)edB8{Qj zHa~t^?FuT59F6p~H+kIZouO;^6Aq-4o5 z$3T@pP4DhDW$KN~5#@&>po`i1CS1}v)^>4oE|>Sy(~@0sTFbBO)wp947*XcEUF^nG z(3U#daY!ChCFfj!y1b#B)-dO2f96jen}_ALl^vymmHcczUZ%?(RChuVH_A&rS5>3c1W%WYxDas8 z%BOP>Mhekt14j^lr-ST$fG&cXasHLb8mC7~!0P)-7UTU7!M^;3fhw*VLqtW{*H=un zw5W&sn2k|Vs&5nPxe#XtGeyhzs7vh0nc(!xwR8}zqDnr)&6{H9c84Ovd56*{ek5u; zH#phs*gdY7_ZyG$iqJEW#4sc6miH9YtBa|EV^*6U2e&UoPF}IsPl-RR_cLcQ{FKPG z5;E_%*q7qH_LV#-oK_Sqcji}-wQ|eZogtQ=da=5L!oyS!RB)A zIdqs;7F;amcFw44G++K^;x&<*8<(prGKC-T--rwnciLn*Zv{MW*VSbiQvd$5>9OF9hpNJ5 zFN_UV^qp|ABKQSr(zngkZcmv&iApNQ<)@Dv07veg6^66+WAgG;7CAAG+_dc=GdEz4 z`xQ2vjQn@pi0@eG)s_`J{HbVsW-3}<9II&Kobe^;{LPNlG-ObWqBO2E#Hbc0 z3Kq>^N(ZU6YQ^mSWRVZUKOyW4PgQ+huS?kHRD&MQH}iad{yv?*e#K9r7!B}UZDE2B zsUD4n4nC*eb_@HdCuTk~hgFP;aFud;zO{)Ihg1n7EWc>Lj*s9!YqzWl#+G6}9D_j2 zC28;?eDq-2jA|2u;O~mV5n_^US$}@0-Qp)g44pOHECbn$FpsHmjA1)OfxU z1%7t4>&lwJFL&32@Y1{*3UE2mOX8lAi$>*ZaoS(_JF%T&PQ?uo7k|EyJRI#mS7>$s z5pc6V4uu~vO7r>>qz?5&-fZT)Rm)5<;s|!A$a11DJ;xIscHDq9ARZ34choF*;qld( zY{gKX{q(y_E&Je;afPs#%cU_IfJOCCZty>5%wF@K9jd!qX=fc#T}daya}7VWL5bP3 zL;T?5Q21)R8BKEhtNPeODEmaFgFCZ2Tfq}EPC*lKs_rQg%d*}@l6#r9zP~frpy2JK zV^907EGi~}8GnTzsgR_;a1Rr1>%Esc-W>1iFZ>gC&d9)lk?GG3Hd^uiBGM&uX1+$Y zFSWh{Yxntqdld1f8#~|6<|A%g&IKc$n44+@ie_<20k<8k7qt2H<-NmAPg!?XZUm~K zlz2f@IpE73a&KB_vmZ$;e(qq2-E0+Xh4_Z!T((Bc+6E(ssfr0X6PvF^IvYBcO2lK& z52D8fdD@}4sjm@=cYgT|TdyMMXU()CNpE%ELfWV|2ElaO-;s06;ujMTh9~|U3=6Q+ z(&!R(e}MRL1uM1vS;7rjSVS@L?T#1uNcaThO$z}FJk&C;@FFPD<5|J zrtc+3E5Nc~#q;ot3`--tM>CqPHy#>RtFiTzo2?p2O+Lor|4sRUTTKgJRPei(>{Z3h z*Fjr%lpq!iRNDCjSmmvACsz3)OGOCt7t9U;u@o}Hx`H;GP%;i)zqx8$r=3??uXH$b zG~d>wplV|rkH`3wai`cG0!~EE@i_vi>7w+bPR*^O2)zrv&`}jc!cK=ngc2DTXQ|$_ zPNEv`S7dW<{Sh3O7eU7Ct54m8`+!(S7dqVub-z&!E*3uJY?5l*jh;;HMPYPQn_~B` zBq)gqE3q5bR9#qp)A}c+5+!~i1-D#d0)W*YX-r3*!4zism)~J2E@t68dux4I3a~$L zRfr0Az-&>@8+8PoSe&`VHEwUlmh%WTu#*0rcENM5A6rWQ{T~=>GR4RG#0Vk$rB;Tq zp!T%N@qko14{0QC@l+C-XAVW&7v8PH=PWH^dJnO@GRz3@Y@9VvouFN4)FXUvS`)wX z{(A~je>9@bpkHn?VV2j46*nykuCIbEx0r=_AhoOeKhQ3J!#s<+=Ml~(WmwA^h1D2b z7_#f$QhNGi&8FpDMOHt?K;fciOs1{; znQ_jdJyr6|Ldae)d!okwCkhnV=S@-EM$E!fa!0@@sT1M2~uMJLEoHT!IN>2ViVtyvZ diff --git a/graphics/frontier_pass/map_screen.png b/graphics/frontier_pass/map_screen.png index 5d2b4467f9b6104ca53f28af43c733ddf488f001..64061d45a9649733f8d14f73c874f3f0aab120a1 100644 GIT binary patch literal 3655 zcmZXXc{tSF`^V2`7RHRdvL(qwl5MmxPh==rl59O>DKSYSOesAK`HV^1P_jOunl!Y@ zl2KH{h(Sb?OeGp)d8Uz?lnk z0HEUTw!>E*Vfm(Dkn(fr_<4~$K=Hn=&Y+@Oe@uRdy*>S12p%3wOG{l{T`U%hN~MN} z$ICNf*;2Tf)6$YyEaoj48iuokz6_p6e7Q$BnGqf@=fz9He|R&36M@WdV({4F;#?`6 zE{yjr_aJlruco}CoR==i1XA(;@*F`|E}KQpr8>n2{U^U96U)ScuHqmz-AS(JpZa1B zqpLWcP4_J(oBby*lgWijIUHWGe38xm&HsN=?(4sKp-fu-zj|b1hFD-D;1P=B3IFhN z3uL;K!4hz~x&%DBOvoyy({sbg@#I`GmB$l{85}yf*dtfSkrvaXvL!iB&E+_Gkjdfk zzCmmTmBA|KkaOwmE`eN~d=B#I3E1UAu~hC*4l|7(&;d|B>Au6sKZ@2>*mr!~LKD7r z?`~mH&Zw>mhNj*#H@Lg9bd84U_cTraoRi%h;-CEu)Y1JiS08vz8v=;pbj|tG#GcoSiJ|y_$Ksu_baz zGx0={DQ0l+hVg28a)Vh?gV2>;hG2f*yU>D58j7M_&DI?V2B~(WMfQ~qg;F8R3qnKiP}KU)sHFmM>Q^N;6(Jc7?_3>9 zaY%h8mCk4pS3JYvuPl%X9B}v3oqSB#ZdxOsBq9%uo_axt71wgLZ^|Vt(TW;!+{*r$!{dLzK4bUc=Y4N{Cnr&m))t zvsPTj*o>;^bJ~7kLQ_tQ&TL}Pj7_sm%HoO6;p^HqpFU^Su5CS^I-gX=euFewX`i0z znJ8$O`ZFl^YbomlylGnN1w!3f9Zostx8vdEuW-5Qoo7?Yr~m#KU7ViS9rc+4bI&{8sbECK68)0k7s;{>2RrtRT?VZ z$E_CU@v@~_A|iaN1_+ZkioM}xorJVqV+Mw`AQRoA=WDdkMl+7BeoHgqN0%JHgdB!? ztpSlzOT4inIre%WIMKZKK2otM^HOu4iUC}$4#p27-UTxi!*FNT7N^-KV}$25WcSg4 zyFIdLK?7W;#cy4OfLm`N^y%mjoaj9w_8Mc^xu{hb63yE(E1`EppIl<71()2wV8K2Z zk|;v$?WgYSZIg**ZxMQ6{>z6=FVD3Yx(qp)4MpQG15YBj zxdMX8i9tB`D2Q1LSAvG1u;vy;csmLb8SyWpsMhyQLCIQp^Ujsk_xf}K6kzPW4xbJl zqT5H|;yU23qpwDCvb<6DBC2H&x56_Hwi%RThN@r$g(z~V&| zRHILBi?HD#?6~U@#7k}>Tg>AY7bBkq=kzEV`)`>KsFJnMSSl}v?C!iq1lx31UqBQ0 zp5HUVbkof}Oae(>Is~TUkv!jpsHvJ14A*&zM4*H_=D*CNxahcQwP(4B?L=mzTG({~ zZ@5x5+Rq5lV+{_+l1(7yYte(NXswElz_d%vzDE>rcy8;|YE7kV_g&VIJ>9iHOd%DC zC}7>2JAirm;*$XfEVpE%vlcj2Sc72uLU(G36)9f)3{ArQsr;DTFGS>?%%2kc z@L#W^AbetnPe+6`#rO9jDnKBfSQSi$>{cu*ZTe$77_p9!iM}w6^p&gZejR}>Zu)q) zR~b;4sY(+PkR1py()J7t4f&LPpIZ?u-mqNCycHM1hx}Iy5`2#C1VyFL3Bbelp6re0 zB9wlfyRB4K$3>wqw&3ua(%47tM>5P%ZV5$5R*#&hlG3Mdygmu6mV-}b3M`YSXI2+B zM%LDG(cTDSB(WmYHK&nVpH{C3Nb3P(OD6!b2R%gZW|Q=&evBxb7V=cpqTViN1Ze>R zRDgka`QR@&lCuK%_Kz{O3)z}LlF#o8z>&WGzHYYm2bMd$M{NbaX`{}^TYK@{F=dKn zIurJPd=&-6l!o4oaEE#l$|t;Wxsz+CrQ_}7+ExVakjCRY1Ynql9vNNLRplV@;(O`R zKcYtLYC#A9=F8In_?*@eT_cW*hWdj5xQAwHYE3%7!&ttMarawoy9*^Fb}C0ZbRKj_ z^fgH{fTC@7`f7X=jP>suSG+X1k!U^<+hV&Cgh*p9-zMzYcg|;LD`su5huPV_zd+aq z<=`#bdeaFIJ4f1jZgfrEc@Ia=wB^y56*ilL07eZM3KXoi_|_l@7a=~dUwKeBYXnQV z>g04@Pk}L|(aFjo*Y5{aIqwbfe-04&S3zEH3CP4$IUTyHmhzY>$1 z-ah-lUh|LlkZvTlV#4S0A@|6up6Dbd`pYg4E1@0Ws z#?`eVPCo!8D$kvv5<9TpJ+B5^wT!5a1l%&01O+%n_!995?Hyy&5>8_%gTKoG&q-%m z33%C&pvV@h-DSOR5qm{n4j{R|CRj?5h_KQ$2hyV1G7Usa&9i-|&gl@=d49{l0rvI> zO_#nE*KyrlczLhy@=~`~v?4Z`mf%}FrKjFMLR8&8)?fmPUm57|o~zdOzs?{%nZt8; z#`XwyzvB#Iy&^H9H&YgX={^N*42SGk)XNL?o>?0!KZLw3`(+pVA#t;TuG``>#j1Uu zHNX6feTv`@`y`A#s=0Qqd&7hIqqld55N+g-K>vnAy#q>?!2XO<2xn-Sebj~Pbxy+9 z@$Zo@!LOTM;Yz-i6-MQFllJW7f z75{=eCU%6gb#@_W%8B87@rHy>x5w@Tj+^MMpr5{Vz zoVeh(fC^i)5)Iyf>CY2uC21s;n0j}VA+T&E?MB6If0|8+k7!f43_e$cx-a|UJtT`T zxDrZIIQmIzZ0nzGXKi~D%SYqd56%lw(r=;FT&sEtY8O6xx`6oaB8|DgAxs;doxuT$eZZyHz@l)*Q87 zf6z1*jfDk<8EcQ}afg3p9apc~lBGr&Td50*S427bHsVGN{rTz0#A_G#n4hjOHggV- z)^gLg9``t8c<_~eP2kF>jtZi^yKD|VH%6Vc1^83R&^jxf#}3Of9gJi9I`elxVWzn$ zvzo{g?1y7xDbr@pG^q!3D2j2hIf&79IzGYs@ z+1%E?<$NRpAK*26C2Gfy`_@LfZDZYmD$jpeEAaaX7D@QsZ)pW{Kf&YA)$F+o!R3ND z0fBv2b69eMk$KvSjJc_GXK8BMZ0XADvrQosMtjlKTum-Asa+x#aBM;+sYP0ud|Q+w zRBo>36-rSvG$vvWg}dt? jZk}pbTy30xWnNJu|6oveXxn!AKLohDcPx#1ZP1_K>z@;j|==^1poj5Fi=cXMF0Q*Xn^R5pwPI;$k4!m@YtZJfPj!-XmDtd zXn4TD;NXb3fM}RVkl48Bn1JZ;_>P1B_W%F@32;bRa{vGi!vFvd!vV){sAK>D3|>h@ zK~z}7t(gCB6XzYr{VzQ3q~Wa%io0&W)<(m8DTOH7uwyiuL|Wra-9)MmbB9Qph?U+2 zu~LQ7;Itc)Gb!ant7>IJovUy^poNgLhqh@T)ech&q14x_<&LBkZJ(%wbi=86_W3;b z+!qIvO5Hwo?DO3{ujl=FKA+F?JeL3({U7ZA2q+Um;0r$SsDa=?13%qhpT<)SctG*S zvbdub(7-=y0Q@ZVPT2yX4Nq~kN03%azMEO ztJNz)yyz(Kns~T6fWK0Duc&+>uf_%9T8#_D1&A1m_ICiv9-yHvK!l1qH!g9Z^tlIE zS@pT#0Z@XN%jy6a@foWN5Ju{|K>Yw(*9BqNpdP?EzZAe5`xh0wfH&83!MW~t!38)4 zA!fd!@&ILf!e4F-{2_L1DWJh0Z^sbePbLB2b4I{1;ewkm-vDyi=Yl_-g$oS7 zmjKEQ%K+ShS`I+`09xyUThhz9Pz#{7fWoo>G0)cmY!fcHfvxL8*;yz=xatE$%X)yN zvD9vtH6}F?MgV-Jp&(I000HLm0=mHq(kFMrNXR2 z!S>}8{iNh5xU8xQymuy=rxVsRw4Ln}fVWuHDpfLi6$7+c1WH(H(NzEd2_p4$Vuuar zp6#2l0XbF)&jH|e7<|~C^8*%b09RlR7_xfsBPIFRx}7_$Sb|CtO>_zc4>16+4_yT! z8gSNh6^tLS_R+c9bnA%|$%GZ_o|UA&nNFcV06@VuK2p2Eq|`4#L)KL=u9$yG%-v30 zAJe0W=@>--briI7z%@`1S3PS30OrA=)S>55fq79%wo2D43;^vEJEGSRFvThWU;rqx zitM$Q+H?+Bbx0dYA;8Fg-cVjS$rZHEN`3IYW{0s#8G1}Dc2bdjfFc40QrrNLHRd<$ zY?-tbNC=QP;4P~{Z$s(K(IS&&>DQui6sgVB0ibG|BAYh741j`xvU8~5a=V1pHj9Aw zr;62wc$z{KWJPfR=cOM*mS;=9dhpVgh!uX$000_SV71zLnFK&2VpSga7(^cZDJqcn zYiO?kKvjE~Y38ibBC||m{6K!pHUz{HeIQ_6v@0O1`-;^yy!>AW1=2wJJK+z*;Sc}{ z=X+SyFs%~IAci6L6f4}S0N7z!-LcM@X~@KbG-*{HJamYzTJ;VnkcNZV(?=sl<16QT z5x`8InwBxH9I!kEiGlRyqB==-nY`_6s->9lQtDwD-OmsaH zk0C&>B*#2J908Hk^KaS!2&9qA!62C9&lW9dAay7V28OoYI^T ztYk3W2)MM3e!N`(re?a?Og9g4@yy;)0f-NdBA|;;s@4gvfFm*)69#ee4f?U8U}{#1 zN_`cWZgf4qcSrzQ_m4_3bRimz2dpzZu3IB^yaAAFR}Z=hO0WT{j*S(;01)f%k9PF$ zYTY|3?QCvtUZ+UO08aLN!u|;oz=a{>)WL(O0MG9!MWjd-wQ&V8Njf|vAwaE6U)J-m3=(0B`~GW#<)$>{DF9C0oJa-=Tt+lYG{{ID0*yjihz< zhmqAs6a=)&gDZNk9!+f?2;r*$N`?B;9x=pMU(GnryhR`(96N;DRYs>=S507NT+m8`NR(*)^tq#pqTWJT{( z>P7hGfT!Hu$rWWdeMA|T_Cao{4j`W^2G%mxO`l*lexw0~X&M09tak@A5=`3wQN%aZ zL81-i+pIV9XSB2cOcpbN_E~7&Jxk-{0XUT=jVshP>#9ab2mz4hP>q+PE$oW{_&ro8 zX5K8waFGM5=Q5c<$2=;SXYnUdK{}*`j%~HxBe0VJdl@1DWBcj(IRL=#!?0?OnHOAu zQ7oc@4z57vfJQ=ACerMOwae0UIF80&smEOKGG08hqM2r%RW7 z+bD>_DT+6t6~4%vTyz1CLbe8yEg3k}H^^K8q?~0zb8mO*n=nB$0=_&g$`=5z;Z!>S zztA67IDp|c_R@*ElrN6NSsow<%8$&=E0PIeiWH&1JRI2Ttw2T=O>Ek);a%-{;Mk6#X z!$WqB3zap@4`}HCz-hKPb(1Z!#kI|)F&Kj5xkRS~%aS=k#(S~@8UXlq55rP?{f6$u zS!b}~=@ASg9&HA?&c;jt7_F_lx{^s$&|BC`LIHe;Q1C}luoZVCo~hzNdzA}LlO!w&OsF6Ykb>bNs4*~L(XnK3O7R(&W64Z zIq=azD2j=YWfbz#FaUyDs)s)z!XSdI^NB>O@2NpKvpom%FOU&HAP1e$kT<0)YQPP}4^2SNc^eEA=8kv;PATB;ixnqV$#qf`aK#qYLmgSCt-(;0yXo z|2`6lL$K^Y5PqN}m1QE5M P00000NkvXXu0mjfh_36A From 6e1981369b4cf8286c41bab522312a866e534495 Mon Sep 17 00:00:00 2001 From: Eduardo Quezada D'Ottone Date: Fri, 13 Jan 2023 13:22:27 -0300 Subject: [PATCH 40/69] Fixed Exp Candy S using the XS description --- src/data/items.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/data/items.h b/src/data/items.h index 513099d18..971428099 100644 --- a/src/data/items.h +++ b/src/data/items.h @@ -1385,7 +1385,7 @@ const struct Item gItems[] = .itemId = ITEM_EXP_CANDY_S, .price = 240, .holdEffectParam = EXP_800, - .description = sExpCandyXSDesc, + .description = sExpCandySDesc, .pocket = POCKET_ITEMS, .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_RareCandy, From 1707f82992c83b5662b22faa43cc44c29bf49585 Mon Sep 17 00:00:00 2001 From: GriffinR Date: Fri, 13 Jan 2023 12:51:34 -0500 Subject: [PATCH 41/69] Combine/colorize status graphics --- .../battle_interface/ball_caught_indicator.png | Bin 103 -> 158 bytes graphics/battle_interface/status.png | Bin 0 -> 531 bytes graphics/battle_interface/status2.png | Bin 198 -> 531 bytes graphics/battle_interface/status3.png | Bin 199 -> 530 bytes graphics/battle_interface/status4.png | Bin 198 -> 530 bytes graphics/battle_interface/status_brn.png | Bin 176 -> 0 bytes graphics/battle_interface/status_frz.png | Bin 177 -> 0 bytes graphics/battle_interface/status_par.png | Bin 176 -> 0 bytes graphics/battle_interface/status_psn.png | Bin 176 -> 0 bytes graphics/battle_interface/status_slp.png | Bin 176 -> 0 bytes src/graphics.c | 12 ++++-------- 11 files changed, 4 insertions(+), 8 deletions(-) create mode 100644 graphics/battle_interface/status.png delete mode 100644 graphics/battle_interface/status_brn.png delete mode 100644 graphics/battle_interface/status_frz.png delete mode 100644 graphics/battle_interface/status_par.png delete mode 100644 graphics/battle_interface/status_psn.png delete mode 100644 graphics/battle_interface/status_slp.png diff --git a/graphics/battle_interface/ball_caught_indicator.png b/graphics/battle_interface/ball_caught_indicator.png index 4eb765d280419817c27b4e149f4585257f9e152b..5473d53df88cda1e6ef5096507e75e2626a2f21f 100644 GIT binary patch delta 140 zcmYeF$2dWgsU@79T2!^XxyN9 rg!Ke}kQrY>f~i?*0>kMh28J1T*(#FzEG_{xF?hPN`MIofN@xNAH#9Z8 delta 84 zcmbQom_9+$j{yi&rtpLTDLqdY#}JO0$v^gI{jG0{zrOjOv5vlf^!W`{-&cL*$$md4 m^8AO_XIB2_Nx1pnfq~&ElVn!@@)ZX`CV0B~xvXJJgW!mrwI~dz z=c1>JV~EDY*8ZDg;5i6He;!Br@t37d4|0&(7U5tj>A0p~uCwU*=;@P! z{$}_k?`;Ux(p#{6@_Xs!^O%c1eEsoy$AW1(|1L_ktJxV%o-}FA+bRDU*D+1E%3qT$ zeStUS;`>5J+sHr7!42itSscBtOUXnyGg#X+)_H$*U&(sy@ugndYrl6an5gs5u+61# zo}}iTrbN9*6-?9E3#P7kF0J^i!Efc~kJk$wjU)dg`|&+2nR(^QV$0s*#;a>yFkIWS jL}&)*1>LRk_0r#&tCuEjE<9<-0}2pNS3j3^P6JJgW!mrwI~dz z=c1>JV~EDY*8ZDA0p~uCwU*=;@P! z{$}_k?`;Ux(p#{6@_Xs!^O%c1eEsoy$AW1(|1L_ktJxV%o-}FA+bRDU*D+1E%3qT$ zeStUS;`>5J+sHr7!42itSscBtOUXnyGg#X+)_H$*U&(sy@ugndYrl6an5gs5u+61# zo}}iTrbN9*6-?9E3#P7kF0J^i!Efc~kJk$wjU)dg`|&+2nR(^QV$0s*#;a>yFkIWS kL}&)*1>LRk_0r#&_n9W&Svc*K1}H#0UHx3vIVCg!0Nbs$<^TWy delta 182 zcmV;n07?Io1jYf77=Hu+00004mWYS|0050iL_t(2k&Tf%4#O}ELvt3+<^A{UT{xF_ zsr-?u0x422G9iJ_qK_B$dD_QGgCg_@fv6%SY(a!t!Wc3;ao^$$Q3hYuR~(~p%B>4W z8L$tBNX{I);lSb4IY{d$O>m8&jV%u53xL~w k@l2;ew0fed|M7KhZ{kGHh!0zlr2qf`07*qoM6N<$g7~vgH~;_u diff --git a/graphics/battle_interface/status3.png b/graphics/battle_interface/status3.png index 8a0db03219f68682e79489bcdf96576dcf1d7c14..d0febfb17c501b1f65d1e835c79d7dfede349004 100644 GIT binary patch literal 530 zcmeAS@N?(olHy`uVBq!ia0vp^5JJgW!mrwI~dz z=Ypq;V~EDY*8ZD<%nBSXbD!Q9(m4o3|4wr*4>w5^nb5AS7GT$-Fm1;<#qQ^8y**FW znJhQVKcFQkec|${=e?ol87+TQ{jt!l6TiaOUB5*wa8A0L z(Dns0yKm$j_{6YI=<8><4$B3hS+yWb4w0NScEf?(sdJFlUYcNxp^XIx>jl8=J|^EMbDQDxbTB~FK9gG=OHS;gKXTKL l|ItdPLX=%4I%4cQw-JJgW!mrwI~dz z=Ypq;V~EDY*8WaGW(5wGxr-URH?RQF@AqnZ>MphfI*9rEEU1xi)G3_nEOtJ6`lKm; zGyIb8HG~?OEm%JFy!7gM%tar*{wR(Ku+;e%$knc7XEb@zq%|+6{AXOpG(9T6CtLUe zU&_Vzg^pi0{9s?s@O~9%(~?!D78}|a%62sF^1izI3d7^Vm&asY+v=^575kszyU5~v zk4m1SvG~Tj4Nnb1cKNLOeR0k)y8{_vTNtwCg8nLP gWw^EU+2i$v_RbqK^w{H8oC1Z1r>mdKI;Vst0B7a3!2kdN delta 182 zcmV;n07?In1jYf77=Hu+00004mWYS|0050iL_t(2k&Tgo4TLZZ13duQf1NIXlmXtm zyxX)PFN%01lv=fX#NdPZoFtkN<_13`py_7rn8F|xLT|Ut8=a?U5*hFlz2gvtlWA2@ zqr)zaVR44-g##+7a*dsTU@yphIyY~8abh3-(HkHB k4@Wy$B7N6r3){W7FC06mXXsFlRR91007*qoM6N<$g7}6`umAu6 diff --git a/graphics/battle_interface/status_brn.png b/graphics/battle_interface/status_brn.png deleted file mode 100644 index 8f13fe6de2abe74b24c359a6d97cea8f0da4b004..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 176 zcmeAS@N?(olHy`uVBq!ia0vp^5)79ueX>b%!%OSShwa kc$Y!;w*&20H{1PK&%c*ffBF|=r7n;~p00i_>zopr0Qc5ETL1t6 diff --git a/graphics/battle_interface/status_frz.png b/graphics/battle_interface/status_frz.png deleted file mode 100644 index ce10db3e4e87d50b5b1c888914653d28f262603b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 177 zcmeAS@N?(olHy`uVBq!ia0vp^5);^_VN=d_!M1|*P78<9QIQ-ygVpcgQv((tj%7JqS lkH=lf4U7t@0n8J6*%(ygjI@8Sf0_ld$UffrqJv0mNwFwWTv!^)c43mh;Td9qf+kUQU diff --git a/graphics/battle_interface/status_psn.png b/graphics/battle_interface/status_psn.png deleted file mode 100644 index 700e7038a1a86d05fe6b88104f66e0bc4f1d3b7f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 176 zcmeAS@N?(olHy`uVBq!ia0vp^5{#)>t@Kn4H+ diff --git a/graphics/battle_interface/status_slp.png b/graphics/battle_interface/status_slp.png deleted file mode 100644 index bcbd16d1db11d28f3b458a3debf8747baa4933bf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 176 zcmeAS@N?(olHy`uVBq!ia0vp^521?gwMlXb$xwehLNa7bz@v k+#~(AY#~dK6X&j9480=8lP{FBCx9&SboFyt=akR{0G~)aRsaA1 diff --git a/src/graphics.c b/src/graphics.c index 9619e471f..580fd31e9 100644 --- a/src/graphics.c +++ b/src/graphics.c @@ -356,19 +356,15 @@ const u16 gBattleInterface_BallDisplayPal[] = INCBIN_U16("graphics/battle_interf const u8 gHealthboxElementsGfxTable[] = INCBIN_U8("graphics/battle_interface/hpbar.4bpp", "graphics/battle_interface/expbar.4bpp", - "graphics/battle_interface/status_psn.4bpp", - "graphics/battle_interface/status_par.4bpp", - "graphics/battle_interface/status_slp.4bpp", - "graphics/battle_interface/status_frz.4bpp", - "graphics/battle_interface/status_brn.4bpp", + "graphics/battle_interface/status.4bpp", "graphics/battle_interface/misc.4bpp", "graphics/battle_interface/hpbar_anim.4bpp", "graphics/battle_interface/misc_frameend.4bpp", "graphics/battle_interface/ball_display.4bpp", "graphics/battle_interface/ball_caught_indicator.4bpp", - "graphics/battle_interface/status2.4bpp", // these three duplicate sets of graphics are for the opponent pokemon - "graphics/battle_interface/status3.4bpp", // and are also for use in double battles. they use dynamic palettes so - "graphics/battle_interface/status4.4bpp", // coloring them is an extreme headache and wont be done for now + "graphics/battle_interface/status2.4bpp", // these three duplicate sets of graphics are for the opponent/partner pokemon + "graphics/battle_interface/status3.4bpp", + "graphics/battle_interface/status4.4bpp", "graphics/battle_interface/healthbox_doubles_frameend.4bpp", "graphics/battle_interface/healthbox_doubles_frameend_bar.4bpp"); const u32 gBattleInterfaceGfx_UnusedWindow3[] = INCBIN_U32("graphics/battle_interface/unused_window3.4bpp.lz"); From 387ea563fc81c643bf1807ead870272785da6c06 Mon Sep 17 00:00:00 2001 From: GriffinR Date: Fri, 13 Jan 2023 13:40:13 -0500 Subject: [PATCH 42/69] Move FRLG trainer card gfx to own folder, fix tiles --- .../trainer_card/{one_star.pal => bronze.pal} | 0 graphics/trainer_card/card.png | Bin 970 -> 0 bytes graphics/trainer_card/card_fr.png | Bin 1467 -> 0 bytes .../{two_stars.pal => copper.pal} | 0 graphics/trainer_card/four_stars.pal | 51 -------------- .../{back_fr.bin => frlg/back.bin} | Bin .../{badges_fr.png => frlg/badges.png} | Bin .../trainer_card/{bg_fr.bin => frlg/bg.bin} | 0 .../{0star_fr.pal => frlg/blue.pal} | 0 .../{two_stars_fr.pal => frlg/bronze.pal} | 0 .../{female_bg_fr.pal => frlg/female_bg.pal} | 0 .../{front_fr.bin => frlg/front.bin} | Bin .../front_link.bin} | Bin .../{four_stars_fr.pal => frlg/gold.pal} | 0 .../{one_star_fr.pal => frlg/green.pal} | 0 .../{three_stars_fr.pal => frlg/silver.pal} | 0 .../{stickers_fr.png => frlg/stickers.png} | Bin .../{stickers_fr1.pal => frlg/stickers1.pal} | 0 .../{stickers_fr2.pal => frlg/stickers2.pal} | 0 .../{stickers_fr3.pal => frlg/stickers3.pal} | 0 .../{stickers_fr4.pal => frlg/stickers4.pal} | 0 graphics/trainer_card/frlg/tiles.png | Bin 0 -> 1629 bytes graphics/trainer_card/gold.pal | 56 +++++++++++---- .../trainer_card/{0star.pal => green.pal} | 0 .../{three_stars.pal => silver.pal} | 0 graphics/trainer_card/star.pal | 19 ++++++ graphics/trainer_card/tiles.png | Bin 0 -> 1139 bytes include/graphics.h | 4 +- src/graphics.c | 16 ++--- src/trainer_card.c | 64 +++++++++--------- 30 files changed, 105 insertions(+), 105 deletions(-) rename graphics/trainer_card/{one_star.pal => bronze.pal} (100%) delete mode 100644 graphics/trainer_card/card.png delete mode 100644 graphics/trainer_card/card_fr.png rename graphics/trainer_card/{two_stars.pal => copper.pal} (100%) delete mode 100644 graphics/trainer_card/four_stars.pal rename graphics/trainer_card/{back_fr.bin => frlg/back.bin} (100%) rename graphics/trainer_card/{badges_fr.png => frlg/badges.png} (100%) rename graphics/trainer_card/{bg_fr.bin => frlg/bg.bin} (100%) rename graphics/trainer_card/{0star_fr.pal => frlg/blue.pal} (100%) rename graphics/trainer_card/{two_stars_fr.pal => frlg/bronze.pal} (100%) rename graphics/trainer_card/{female_bg_fr.pal => frlg/female_bg.pal} (100%) rename graphics/trainer_card/{front_fr.bin => frlg/front.bin} (100%) rename graphics/trainer_card/{front_link_fr.bin => frlg/front_link.bin} (100%) rename graphics/trainer_card/{four_stars_fr.pal => frlg/gold.pal} (100%) rename graphics/trainer_card/{one_star_fr.pal => frlg/green.pal} (100%) rename graphics/trainer_card/{three_stars_fr.pal => frlg/silver.pal} (100%) rename graphics/trainer_card/{stickers_fr.png => frlg/stickers.png} (100%) rename graphics/trainer_card/{stickers_fr1.pal => frlg/stickers1.pal} (100%) rename graphics/trainer_card/{stickers_fr2.pal => frlg/stickers2.pal} (100%) rename graphics/trainer_card/{stickers_fr3.pal => frlg/stickers3.pal} (100%) rename graphics/trainer_card/{stickers_fr4.pal => frlg/stickers4.pal} (100%) create mode 100644 graphics/trainer_card/frlg/tiles.png rename graphics/trainer_card/{0star.pal => green.pal} (100%) rename graphics/trainer_card/{three_stars.pal => silver.pal} (100%) create mode 100644 graphics/trainer_card/star.pal create mode 100644 graphics/trainer_card/tiles.png diff --git a/graphics/trainer_card/one_star.pal b/graphics/trainer_card/bronze.pal similarity index 100% rename from graphics/trainer_card/one_star.pal rename to graphics/trainer_card/bronze.pal diff --git a/graphics/trainer_card/card.png b/graphics/trainer_card/card.png deleted file mode 100644 index eab827246486e0896e1a177031788aff632c844f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 970 zcmV;*12z1KP)V!Zn9;Bc000A3 zNkl7S z01L(%5EhikAQgU<`iT$VUbv{5hwtH>&U{-##rhH7z?fw;X@-p z(>OqCL4tC_=q%XhCFniq34{eZp9f`l7DiF$+3j3bms6IP@S>pgUq|kx`*a!$sESTXt3!pxVsQzOBIBCH~P{kIm?C_lgWJbYe&{+#4 zQCQ#RLsn<yv!rzZ+nQzbVCDgCP3&0M)@d5}JfMEMN7Fh5;2weMl)3fd zmr9AO1-@|0_C?Y^#sYM}n_MCR;D+@Bt{ea}B9{lSu3mfZJS?Nu0`$PiM4F!ieAjcL z-vVgiEkuCYS}>`Q1?+vU^WuW@Q2^rC1q_ixdk3&{pft0(7m$kcCnXCdYQxo&Y8b%y z+1tMhHZ!=?`BYAI*GvT5n$YdGN7T+=4Y#nH3fNDzkOjcwXbWl>O&*|?L4eOf3v&T; zVo;+#0NTKum;|`X<^K=>`oA5T|2e>J3Sb5L1m}wZD7^ps0P&JW{{gQIz(2t)jW6L`jZy;m_(A9SaD9m^TuM0&P{?Nhz<=uBq!dE7 zczb~BLCO|BLLA)tR^1BmHMa1K03pSp#Y3uFDG&m8s;z#n-r?I6fU*F*DnN@7+-rc) zr5Y-`790TLlNhwBts{`F0cbyG04@HcjsV;$z~QJZsM5m`-XBj|IO-qwohanJ&|Z`U s=;!+!V8SrI3Sd$yqb5xz)YR$x2Rd}Eei#`R>i_@%07*qoM6N<$f;4EoO8@`> diff --git a/graphics/trainer_card/card_fr.png b/graphics/trainer_card/card_fr.png deleted file mode 100644 index 2fea60d09bc33f50d0b67f27f8287ea270d00a0b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1467 zcmV;s1w{IZP) zNklc!=;+G%3_xQu^^~f@^9$P`? z>Sa-stHPSrdgsdDx-#>{zEa1o(;th)7gv9))Nfuu4R=~8Q#uR$uGDvzr8T`H0S$qQ z0PU>;7nwC95E1yPA4ahI{{+r2A;GKMm=WMQoahN^qTmUj#C>uoyLv{0I0B{A&=p7U zfvk5+29Z4fU`*CALLC9MZ7=^R3Xt^HWYp(X&O^yM%=-ZIA6g$!o4$Cbbs%t+RRULK zWfcJnP`NC(Iwr_}s04hymS6~iclsh@0`@`fMv`@`1y4X3Xhbv!v_=UCE(C$ABa8uo zwgsbm0w*8|T$qAP459#nZ8L!saCMmnhyeUx1bF>75}=Ou9rg4CTM(3XIdkqe68uH~ zkM<$H&1=CD5P}q_BY+bjfOadOZ5~*HvXua90RjpWPYJSC0=x$ToQ)v(xf20dtq26a|&* z0wSi#6AZ%shT!XalXKZ6te=835pe% zIUfX37;r2`V(|JYOly1qkK5<{D0WG!fJ-^&dGCH>r&%CyGr6fJP#pUWp7)|Z9Su@I z=7A*WyVwu#9EkC=tWzes6}T}^IX(`j_O;M=v4@bz%44*(E@vL{w?mHBkS=% zZ$$dr$@5!`oCuuQ1bC>{A5Wg0kqA7O+p>HvH9n~3GVzVf|6{R4Q-STae8vaWbm{lR z2jPNKmz6Ny2Hcha0&NAJQ-T11c_velM^p?!$ryCglLVUp!1A1?0;L-~Az&B0&%};& zVgz_QFak*!-GDH0qlQH zfc(&ui9CLd0Iz-C4$@Q($4>=X*8=Z}T?K9$2vnm$>vGQXTVpF8f}Uqpo9!errF7H4 z(_A#&bwmg}#%-A}yw9b;Peme7#BCC}UO%+S~}>Ue#MgUtUG^eTKVY zAOOTzz+>0gRYdRzFGm88)!8slgm71s0%jwy0yccEjr$vcTVc2>3W2$g_3FGrl44Q}90ccd_h5 zP)$J+6o^8a2Z=!CMDGKi2Rh9IC$QJVTBs)&x0qN9^-eBrIG|9^>L VLWzQB#S#Dj002ovPDHLkV1j^0q>umr diff --git a/graphics/trainer_card/two_stars.pal b/graphics/trainer_card/copper.pal similarity index 100% rename from graphics/trainer_card/two_stars.pal rename to graphics/trainer_card/copper.pal diff --git a/graphics/trainer_card/four_stars.pal b/graphics/trainer_card/four_stars.pal deleted file mode 100644 index 4e1d56b54..000000000 --- a/graphics/trainer_card/four_stars.pal +++ /dev/null @@ -1,51 +0,0 @@ -JASC-PAL -0100 -48 -139 98 115 -246 246 222 -246 238 172 -164 164 164 -123 123 123 -98 98 115 -41 57 65 -57 106 139 -65 139 197 -246 230 139 -230 213 49 -213 197 57 -156 115 57 -106 189 255 -205 205 205 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -106 180 213 -41 123 164 -0 0 0 -0 0 0 -98 98 115 -255 255 255 -230 230 238 -164 164 164 -123 123 123 -255 255 255 -230 230 238 -164 164 164 -123 123 123 -255 255 255 -230 230 238 -164 164 164 -123 123 123 -106 189 255 -205 205 205 -0 0 0 diff --git a/graphics/trainer_card/back_fr.bin b/graphics/trainer_card/frlg/back.bin similarity index 100% rename from graphics/trainer_card/back_fr.bin rename to graphics/trainer_card/frlg/back.bin diff --git a/graphics/trainer_card/badges_fr.png b/graphics/trainer_card/frlg/badges.png similarity index 100% rename from graphics/trainer_card/badges_fr.png rename to graphics/trainer_card/frlg/badges.png diff --git a/graphics/trainer_card/bg_fr.bin b/graphics/trainer_card/frlg/bg.bin similarity index 100% rename from graphics/trainer_card/bg_fr.bin rename to graphics/trainer_card/frlg/bg.bin diff --git a/graphics/trainer_card/0star_fr.pal b/graphics/trainer_card/frlg/blue.pal similarity index 100% rename from graphics/trainer_card/0star_fr.pal rename to graphics/trainer_card/frlg/blue.pal diff --git a/graphics/trainer_card/two_stars_fr.pal b/graphics/trainer_card/frlg/bronze.pal similarity index 100% rename from graphics/trainer_card/two_stars_fr.pal rename to graphics/trainer_card/frlg/bronze.pal diff --git a/graphics/trainer_card/female_bg_fr.pal b/graphics/trainer_card/frlg/female_bg.pal similarity index 100% rename from graphics/trainer_card/female_bg_fr.pal rename to graphics/trainer_card/frlg/female_bg.pal diff --git a/graphics/trainer_card/front_fr.bin b/graphics/trainer_card/frlg/front.bin similarity index 100% rename from graphics/trainer_card/front_fr.bin rename to graphics/trainer_card/frlg/front.bin diff --git a/graphics/trainer_card/front_link_fr.bin b/graphics/trainer_card/frlg/front_link.bin similarity index 100% rename from graphics/trainer_card/front_link_fr.bin rename to graphics/trainer_card/frlg/front_link.bin diff --git a/graphics/trainer_card/four_stars_fr.pal b/graphics/trainer_card/frlg/gold.pal similarity index 100% rename from graphics/trainer_card/four_stars_fr.pal rename to graphics/trainer_card/frlg/gold.pal diff --git a/graphics/trainer_card/one_star_fr.pal b/graphics/trainer_card/frlg/green.pal similarity index 100% rename from graphics/trainer_card/one_star_fr.pal rename to graphics/trainer_card/frlg/green.pal diff --git a/graphics/trainer_card/three_stars_fr.pal b/graphics/trainer_card/frlg/silver.pal similarity index 100% rename from graphics/trainer_card/three_stars_fr.pal rename to graphics/trainer_card/frlg/silver.pal diff --git a/graphics/trainer_card/stickers_fr.png b/graphics/trainer_card/frlg/stickers.png similarity index 100% rename from graphics/trainer_card/stickers_fr.png rename to graphics/trainer_card/frlg/stickers.png diff --git a/graphics/trainer_card/stickers_fr1.pal b/graphics/trainer_card/frlg/stickers1.pal similarity index 100% rename from graphics/trainer_card/stickers_fr1.pal rename to graphics/trainer_card/frlg/stickers1.pal diff --git a/graphics/trainer_card/stickers_fr2.pal b/graphics/trainer_card/frlg/stickers2.pal similarity index 100% rename from graphics/trainer_card/stickers_fr2.pal rename to graphics/trainer_card/frlg/stickers2.pal diff --git a/graphics/trainer_card/stickers_fr3.pal b/graphics/trainer_card/frlg/stickers3.pal similarity index 100% rename from graphics/trainer_card/stickers_fr3.pal rename to graphics/trainer_card/frlg/stickers3.pal diff --git a/graphics/trainer_card/stickers_fr4.pal b/graphics/trainer_card/frlg/stickers4.pal similarity index 100% rename from graphics/trainer_card/stickers_fr4.pal rename to graphics/trainer_card/frlg/stickers4.pal diff --git a/graphics/trainer_card/frlg/tiles.png b/graphics/trainer_card/frlg/tiles.png new file mode 100644 index 0000000000000000000000000000000000000000..5d2b11467f5ebe70e0b4c78f90343c9d56821ffc GIT binary patch literal 1629 zcma)6e^gU-6#u@r_u>r{=Z2s-bL2Krz$lSlt-~{ZGn|76aiOk>iUm4A6BO|Q8X_ta zryx$5v6s!KKI<&`XP+D~8N8rL8=I_=)D~yZ@E|8=d&1S=Mve#&C zv$9LBQmG`8G;?pkr7rpBDuYPT<(H-)%?%_;<~A6uc@mKSg$6l|?2V4@y7Znx-qzM8 z5{dp#-YAdml`MIaH@AT<6|m~RVZGN{|LlL$TLV8XAFc!d<%b8Yj7iLHIA!;25yw-*Lew#9$pAql!+qE8flE9n#>G4~ZOI>mA=NpDVEcZi83B4SGhv|Qt^6e#0H zHFP18d6sBD;hb%^;vHf?St&&Z1+u-=?F`^K;a+@x9OCEpX?M2l_r?Y=q0UrRl zgg)d%MB;OpRkOfFOqET?E+B^U;&Eu|`ohIvIt=hmS~mj0N>DX!gQ;G$Waep%TcAa< ztOw{0y4I%X<=&FjsHz{-6SVdj_6(vHAig&r`e2<`2m$Q5&CaBzf7RGAgayrS&o(u5 zjB?>k_5<~RrzG~MTacjnAD-OFqKDn|x7B@To*G=^we#ge(syf5(!6U&DTHv5%|C`jaFF#`{z7Ef&%798`kH3o6ae!nT!bOW$F~2)K^{f5Oja=4JPZJ zS{{}gVUN&LtAc5v+P|{9`8VT#%=wZ|N z8KW@Ia()f<^x?}iAN1gTO$pGoxWAbss?*f3XrK7X!c@{1m0ROoJxTdN~~ zp}jbb>gVLCN18-qatS?>8@L45hdb3=_&&o?;)gm*2O^zP7JZCwTwfdo<=;*4laKs# zJt}wNKn1{cbfxk+qb7!$&T|=rM|s{l7tG+~439Fv99(loakKw;lFtl-(;#djOCLVh z@B4wQn{*eeM|?5|;oH+mR2h;WU^>VaExx4-RO-lziNs`B)fB;MtZn2>_;`I_8E6Vu za)@p>O~NKLhjd~bv~1TbgL{Uk31EahwJIQ#nz?u*BArfi)bVA9^&ab^m+!r?;q6St z?1Qton>oV_nu4d+keCjC+O6V@{Ms9Ol(^%Z* zAGlc%iq$t~vv@ z$s1y$@$<+~%oQ9YX3=oSnMi@Z?(<|w-658p*icDSY-9_kF0$d0Lfe7hLL~ke+}YfR zx-K!Tg*MqrZ9Jgj;@Nj0C8%=Pz|Ltwc7S9ky19}FC?Z_6{zoU8#41rtO^~@c$~vXFvdC0~IK{tdeG6 zU{3UOaSX|5d^T|uIDEGJpIyv;r^V!mO8%O|1NSS_-ox`5t#hAib1ew=hEVj-{a4> zGkTm~&n}@A9l)2cPL6%Th6dZVIJpMZcE%c?eG~X5$n!~Sh%ad?-Kf`@7hWN5@<`r^{s?R^a*AH;ldUww6dpm0ay~K`upQNs_&2S?_xQoIr)6HTh-V2{&=*acE8MA{y;m$n% zH-$cVN3Wc`r6TWl?bHSR+BbeztPWg%ovkV4z0>*1+Q<)4A;Jp`AD?GKfPqbeAB0#rl73n>FVdQ&MBb@0Nw8BE&u=k literal 0 HcmV?d00001 diff --git a/include/graphics.h b/include/graphics.h index 8bdc85dc4..45dd9175d 100644 --- a/include/graphics.h +++ b/include/graphics.h @@ -4949,9 +4949,9 @@ extern const u16 gContestResultsTitle_Tough_Tilemap[]; extern const u16 gContestResultsTitle_Tilemap[]; // Trainer Card. -extern const u16 gHoennTrainerCard0Star_Pal[]; +extern const u16 gHoennTrainerCardGreen_Pal[]; extern const u32 gHoennTrainerCard_Gfx[]; -extern const u16 gKantoTrainerCard0Star_Pal[]; +extern const u16 gKantoTrainerCardBlue_Pal[]; extern const u32 gKantoTrainerCard_Gfx[]; extern const u32 gKantoTrainerCardBg_Tilemap[]; extern const u32 gHoennTrainerCardBack_Tilemap[]; diff --git a/src/graphics.c b/src/graphics.c index 580fd31e9..eff0dc6fd 100644 --- a/src/graphics.c +++ b/src/graphics.c @@ -1374,19 +1374,19 @@ const u16 gUsePokeblockNatureWin_Pal[] = INCBIN_U16("graphics/pokeblock/use_scre // trainer card -const u16 gHoennTrainerCard0Star_Pal[] = INCBIN_U16("graphics/trainer_card/0star.gbapal"); -const u32 gHoennTrainerCard_Gfx[] = INCBIN_U32("graphics/trainer_card/card.4bpp.lz"); +const u16 gHoennTrainerCardGreen_Pal[] = INCBIN_U16("graphics/trainer_card/green.gbapal"); +const u32 gHoennTrainerCard_Gfx[] = INCBIN_U32("graphics/trainer_card/tiles.4bpp.lz"); const u32 gHoennTrainerCardBg_Tilemap[] = INCBIN_U32("graphics/trainer_card/bg.bin.lz"); const u32 gHoennTrainerCardFront_Tilemap[] = INCBIN_U32("graphics/trainer_card/front.bin.lz"); const u32 gHoennTrainerCardBack_Tilemap[] = INCBIN_U32("graphics/trainer_card/back.bin.lz"); const u32 gHoennTrainerCardFrontLink_Tilemap[] = INCBIN_U32("graphics/trainer_card/front_link.bin.lz"); -const u16 gKantoTrainerCard0Star_Pal[] = INCBIN_U16("graphics/trainer_card/0star_fr.gbapal"); -const u32 gKantoTrainerCard_Gfx[] = INCBIN_U32("graphics/trainer_card/card_fr.4bpp.lz"); -const u32 gKantoTrainerCardBg_Tilemap[] = INCBIN_U32("graphics/trainer_card/bg_fr.bin.lz"); -const u32 gKantoTrainerCardFront_Tilemap[] = INCBIN_U32("graphics/trainer_card/front_fr.bin.lz"); -const u32 gKantoTrainerCardBack_Tilemap[] = INCBIN_U32("graphics/trainer_card/back_fr.bin.lz"); -const u32 gKantoTrainerCardFrontLink_Tilemap[] = INCBIN_U32("graphics/trainer_card/front_link_fr.bin.lz"); +const u16 gKantoTrainerCardBlue_Pal[] = INCBIN_U16("graphics/trainer_card/frlg/blue.gbapal"); +const u32 gKantoTrainerCard_Gfx[] = INCBIN_U32("graphics/trainer_card/frlg/tiles.4bpp.lz"); +const u32 gKantoTrainerCardBg_Tilemap[] = INCBIN_U32("graphics/trainer_card/frlg/bg.bin.lz"); +const u32 gKantoTrainerCardFront_Tilemap[] = INCBIN_U32("graphics/trainer_card/frlg/front.bin.lz"); +const u32 gKantoTrainerCardBack_Tilemap[] = INCBIN_U32("graphics/trainer_card/frlg/back.bin.lz"); +const u32 gKantoTrainerCardFrontLink_Tilemap[] = INCBIN_U32("graphics/trainer_card/frlg/front_link.bin.lz"); // pokemon storage system diff --git a/src/trainer_card.c b/src/trainer_card.c index 04b8f686a..ef7cf8fb3 100755 --- a/src/trainer_card.c +++ b/src/trainer_card.c @@ -162,27 +162,27 @@ static bool8 Task_EndCardFlip(struct Task *task); static void UpdateCardFlipRegs(u16); static void LoadMonIconGfx(void); -static const u32 sTrainerCardStickers_Gfx[] = INCBIN_U32("graphics/trainer_card/stickers_fr.4bpp.lz"); +static const u32 sTrainerCardStickers_Gfx[] = INCBIN_U32("graphics/trainer_card/frlg/stickers.4bpp.lz"); static const u16 sUnused_Pal[] = INCBIN_U16("graphics/trainer_card/unused.gbapal"); -static const u16 sHoennTrainerCard1Star_Pal[] = INCBIN_U16("graphics/trainer_card/one_star.gbapal"); -static const u16 sKantoTrainerCard1Star_Pal[] = INCBIN_U16("graphics/trainer_card/one_star_fr.gbapal"); -static const u16 sHoennTrainerCard2Star_Pal[] = INCBIN_U16("graphics/trainer_card/two_stars.gbapal"); -static const u16 sKantoTrainerCard2Star_Pal[] = INCBIN_U16("graphics/trainer_card/two_stars_fr.gbapal"); -static const u16 sHoennTrainerCard3Star_Pal[] = INCBIN_U16("graphics/trainer_card/three_stars.gbapal"); -static const u16 sKantoTrainerCard3Star_Pal[] = INCBIN_U16("graphics/trainer_card/three_stars_fr.gbapal"); -static const u16 sHoennTrainerCard4Star_Pal[] = INCBIN_U16("graphics/trainer_card/four_stars.gbapal"); -static const u16 sKantoTrainerCard4Star_Pal[] = INCBIN_U16("graphics/trainer_card/four_stars_fr.gbapal"); +static const u16 sHoennTrainerCardBronze_Pal[] = INCBIN_U16("graphics/trainer_card/bronze.gbapal"); +static const u16 sKantoTrainerCardGreen_Pal[] = INCBIN_U16("graphics/trainer_card/frlg/green.gbapal"); +static const u16 sHoennTrainerCardCopper_Pal[] = INCBIN_U16("graphics/trainer_card/copper.gbapal"); +static const u16 sKantoTrainerCardBronze_Pal[] = INCBIN_U16("graphics/trainer_card/frlg/bronze.gbapal"); +static const u16 sHoennTrainerCardSilver_Pal[] = INCBIN_U16("graphics/trainer_card/silver.gbapal"); +static const u16 sKantoTrainerCardSilver_Pal[] = INCBIN_U16("graphics/trainer_card/frlg/silver.gbapal"); +static const u16 sHoennTrainerCardGold_Pal[] = INCBIN_U16("graphics/trainer_card/gold.gbapal"); +static const u16 sKantoTrainerCardGold_Pal[] = INCBIN_U16("graphics/trainer_card/frlg/gold.gbapal"); static const u16 sHoennTrainerCardFemaleBg_Pal[] = INCBIN_U16("graphics/trainer_card/female_bg.gbapal"); -static const u16 sKantoTrainerCardFemaleBg_Pal[] = INCBIN_U16("graphics/trainer_card/female_bg_fr.gbapal"); +static const u16 sKantoTrainerCardFemaleBg_Pal[] = INCBIN_U16("graphics/trainer_card/frlg/female_bg.gbapal"); static const u16 sHoennTrainerCardBadges_Pal[] = INCBIN_U16("graphics/trainer_card/badges.gbapal"); -static const u16 sKantoTrainerCardBadges_Pal[] = INCBIN_U16("graphics/trainer_card/badges_fr.gbapal"); -static const u16 sTrainerCardGold_Pal[] = INCBIN_U16("graphics/trainer_card/gold.gbapal"); -static const u16 sTrainerCardSticker1_Pal[] = INCBIN_U16("graphics/trainer_card/stickers_fr1.gbapal"); -static const u16 sTrainerCardSticker2_Pal[] = INCBIN_U16("graphics/trainer_card/stickers_fr2.gbapal"); -static const u16 sTrainerCardSticker3_Pal[] = INCBIN_U16("graphics/trainer_card/stickers_fr3.gbapal"); -static const u16 sTrainerCardSticker4_Pal[] = INCBIN_U16("graphics/trainer_card/stickers_fr4.gbapal"); +static const u16 sKantoTrainerCardBadges_Pal[] = INCBIN_U16("graphics/trainer_card/frlg/badges.gbapal"); +static const u16 sTrainerCardStar_Pal[] = INCBIN_U16("graphics/trainer_card/star.gbapal"); +static const u16 sTrainerCardSticker1_Pal[] = INCBIN_U16("graphics/trainer_card/frlg/stickers1.gbapal"); +static const u16 sTrainerCardSticker2_Pal[] = INCBIN_U16("graphics/trainer_card/frlg/stickers2.gbapal"); +static const u16 sTrainerCardSticker3_Pal[] = INCBIN_U16("graphics/trainer_card/frlg/stickers3.gbapal"); +static const u16 sTrainerCardSticker4_Pal[] = INCBIN_U16("graphics/trainer_card/frlg/stickers4.gbapal"); static const u32 sHoennTrainerCardBadges_Gfx[] = INCBIN_U32("graphics/trainer_card/badges.4bpp.lz"); -static const u32 sKantoTrainerCardBadges_Gfx[] = INCBIN_U32("graphics/trainer_card/badges_fr.4bpp.lz"); +static const u32 sKantoTrainerCardBadges_Gfx[] = INCBIN_U32("graphics/trainer_card/frlg/badges.4bpp.lz"); static const struct BgTemplate sTrainerCardBgTemplates[4] = { @@ -256,22 +256,22 @@ static const struct WindowTemplate sTrainerCardWindowTemplates[] = DUMMY_WIN_TEMPLATE }; -static const u16 *const sHoennTrainerCardStarPals[] = +static const u16 *const sHoennTrainerCardPals[] = { - gHoennTrainerCard0Star_Pal, - sHoennTrainerCard1Star_Pal, - sHoennTrainerCard2Star_Pal, - sHoennTrainerCard3Star_Pal, - sHoennTrainerCard4Star_Pal, + gHoennTrainerCardGreen_Pal, // Default (0 stars) + sHoennTrainerCardBronze_Pal, // 1 star + sHoennTrainerCardCopper_Pal, // 2 stars + sHoennTrainerCardSilver_Pal, // 3 stars + sHoennTrainerCardGold_Pal, // 4 stars }; -static const u16 *const sKantoTrainerCardStarPals[] = +static const u16 *const sKantoTrainerCardPals[] = { - gKantoTrainerCard0Star_Pal, - sKantoTrainerCard1Star_Pal, - sKantoTrainerCard2Star_Pal, - sKantoTrainerCard3Star_Pal, - sKantoTrainerCard4Star_Pal, + gKantoTrainerCardBlue_Pal, // Default (0 stars) + sKantoTrainerCardGreen_Pal, // 1 star + sKantoTrainerCardBronze_Pal, // 2 stars + sKantoTrainerCardSilver_Pal, // 3 stars + sKantoTrainerCardGold_Pal, // 4 stars }; static const u8 sTrainerCardTextColors[] = {TEXT_COLOR_TRANSPARENT, TEXT_COLOR_DARK_GRAY, TEXT_COLOR_LIGHT_GRAY}; @@ -1425,19 +1425,19 @@ static u8 SetCardBgsAndPals(void) case 2: if (sData->cardType != CARD_TYPE_FRLG) { - LoadPalette(sHoennTrainerCardStarPals[sData->trainerCard.stars], 0, 96); + LoadPalette(sHoennTrainerCardPals[sData->trainerCard.stars], 0, 96); LoadPalette(sHoennTrainerCardBadges_Pal, 48, 32); if (sData->trainerCard.gender != MALE) LoadPalette(sHoennTrainerCardFemaleBg_Pal, 16, 32); } else { - LoadPalette(sKantoTrainerCardStarPals[sData->trainerCard.stars], 0, 96); + LoadPalette(sKantoTrainerCardPals[sData->trainerCard.stars], 0, 96); LoadPalette(sKantoTrainerCardBadges_Pal, 48, 32); if (sData->trainerCard.gender != MALE) LoadPalette(sKantoTrainerCardFemaleBg_Pal, 16, 32); } - LoadPalette(sTrainerCardGold_Pal, 64, 32); + LoadPalette(sTrainerCardStar_Pal, 64, 32); break; case 3: SetBgTilemapBuffer(0, sData->cardTilemapBuffer); From 9c34bc2385bcd4020e9161a13586fe0fcce28726 Mon Sep 17 00:00:00 2001 From: GriffinR Date: Fri, 13 Jan 2023 14:43:36 -0500 Subject: [PATCH 43/69] Colorize picture_frame tiles --- graphics/picture_frame/beauty.png | Bin 1422 -> 2191 bytes graphics/picture_frame/cool.png | Bin 1920 -> 2746 bytes graphics/picture_frame/cute.png | Bin 1238 -> 2106 bytes graphics/picture_frame/lobby.png | Bin 719 -> 1520 bytes graphics/picture_frame/smart.png | Bin 2287 -> 3230 bytes graphics/picture_frame/tough.png | Bin 2030 -> 2746 bytes 6 files changed, 0 insertions(+), 0 deletions(-) diff --git a/graphics/picture_frame/beauty.png b/graphics/picture_frame/beauty.png index 72e9d0ab760a339fd6a24e812ed4f1a328325648..2a9c2d644c4e50641762c87b78707e402172e215 100644 GIT binary patch literal 2191 zcmeH|{Zms{8pqGQN#G^~xI_X0LBdO1S`b2IQ9#U#yc;lNs3|OkkY%j3qN!Px3M&_a z@)8wX(yA+^DH|0PD%HD4m0(=W0xPMkHM_XHn5spV+PDf!cv(3cr!$?M{S$Wf%$)Pg zJoA~)^PT6HQ!mXB%x@C7kyijN*J5M?J4Q3!;{#iNP0N2mBoX3Xn>2 zQ=Cl*;pF6`)oL}H%_K=030IY2AI4f(iH zjZf%eASr_r8fAxCXKtB*lTMq(Xdn$*gI29kW;%INXC)10(r6?tBstk(goX*IowJw2 zNhP#sA*r<+jFuKNoP+uCuX$K*fLaog7HD<40JO%#$#Q5nI?X?h{xAQJ&DTjLoT)X= zw9qM$$)Ldim1d~3Li1!M%-2Az5t@I>|DSxO&aNTtM(f;97=+HXlsn=7pa1O*)NStk z1pu_9jAT*n_A29p(LI0LfCEKT>45v7PPZ(Ny-}Ybv*^|ZhanR%(txV2vfaI(H3-5VAv`cD3iXtejthsCIg{vb)mCwGc=M&{VN-ye1Pu5id# z%e1N1PmN6Z`AEsR$bud&3 z1C>n0M~#nT+_p=q{}N{cK8rse-}R7UE6Gnr?`+n;pt!Zrh z9-PYH0It*xsH)aqw5oV|9;i(0Ivs10+pr{n3?T!Rz1_5_E97Y`@|=h$Vngdg`Y zx2Pzd{+-5k>h0}FAG$}tEc>f(o1-3-`Awf8E>XNyTrXrtbn=z+w+b493cRDt>(CDA zh6({uu`=)1iQE^5N?tYJJ_;gMdlQqcH`f41LAtOd=#dLi6_fXyRqPLBQKAQ$BU558QTX2Xm#>g3j%`W>T5_0^rPT*RW z1;kb9asqU(vdt{5x)1hUFY!!f>KA4}1c$*#r*>dd;b8yg{lqkDw!(9{iLvvl%dj7T zvv7%~uMsF`!}K2@NVf;>Lx6%6AtDw|Z~JE*_|SEPr6OutNU z7jC!cNrcqf+uciu9Y=C8rTAc8AFWzO;|L>dSa66A2d$J4^gjJ?NG}1VGfi&yj+_|b z0~6z|8beqtEa!5#r1n4Lr`a5wB{m+_$+AoIiBc z^zBD|a7*=Nz0X!UClr6ssk5C{?CR&4ru=VXkwW4*KHDNhu3`M~SOu2N$M~tHzyQWQ zf=;c!^{McLkaBJQ7_ltji}9IPFVb-o(|v0sab> zUL9x)Pmj6KyoBU>ZrhSW-$9kvMu|{9U1YHhwO^q6t3r{rJLda2;}m*0mi!N0;VT|L$rjGc|<-FSHR?6*7bGE(Ki8~LknI?fH| zY_qL|0*}b1BtWc~ePa{5dUU*`^5y6B?BNK)%XD?rpcg6})}LKE?4u(@%91npFs?;NX+`uj;nd8PFGGe0)q|fRRE!&0{M_SI zlrgK};H7425t@gvmy&XhWIo*6Gr#epdF>fidngY4;{HsYPjslPuRQM6-gtlt1FcB{ ZNMY_bvQM_J;JyATGE%aWzYr^`{|&Wh-zNY7 delta 1416 zcmV;31$X+75snLx7=Hu+0002p$W2rL00mV^L_t(og{9cPZ`(!`2XOui0*c1Y5Fq^n zG+1c6b&=e?sMxWas4aj|loX0WfS2&R2=FFqFyN`+70n(fOQ!@jtGR<|AVXz2u=y{f z@4frMyW>$((}%!{EZ#@o_jn>i2OpuTmP+D;DjbGX$xl69Tz^)8z=rF(_$So$Bdw0( zF+Cd&k1e43!1=3603VpH)w%|zusos!VK|@!Kf{mjzYIh8$Jeu}TF({&n5oeBtMy2& z|6v-B5s1gbV+4lB@kjzt{4QNj6Ah>i0Eh;%qG=pb52Im^dg!a?_{i_rW|nH;RY~=? z4J2@2j2!>~bARlq=lIAs5PPG6KOS-Y?c4!msiqR6_(ipTQQd3c7ANrF0%I|S@K{Vi zJ;z6W@nSq#-*XM%V*^N{h=6b~K%fU1dSMjN-dRu6$$DDt2H*z)@WTX(yXj_jH!XGm z5SajIf%ZZY^}=|J$1XQXRgGuM9e_PV0VD~vuz`4!*?+DUlCcCZL5Lp>04PDRN|OnD z*wq5AmI+`lBs2q&pe#3x&B}7u5R;gIL5RCCp#+fx;LJbn14I&#`#=He)3bFWecYoI z@K8Xl{s)jzz58T9UQW(F889v=k=j201;})*)?)?4`vZ@quGPB!$nOudUDo#kbojZL zV~XJ;ynhZriR(E|v@b5^Ur>>LAvY2%%?V)al(ES{VgMrreCq)!4J`6Hz)42|V-sj5 z_@)NVxeS0+C#Zpe0UQy~eP$()z!?Fl*aBW4(f}-cuL0FTW&=^&4qy)*nIgy~a7IH& z1rQ6sI17W`*TxXKGC_s_2cVP9#T3&-0iU~oIe$fUA_R~jAUaS0^`M4e0Y^&csu|>R zhVnFc0P{5TDZ+CjL<kz1T~n@LbG6 z1IA~m5g{~tNQ@8!a6m{L<9tK1+@3z6DUFp(B4Ds ziwJ!S*xiHi1~Eo}Aq04q)=}0}14f z2#qEfa|Mhr=n24%;1k^Sn9&Dh%r7+8gAhmIX9|EG&YcJ*p?`H?y&R2({TgUAp?^m? zX}tNVcvS+IPt6{(#?eOE?~=v_knbU6nR5`_Q4VAa63}xvJ!mXH%dEl>sR5V~@cP&Q zGPmZ~0{~Y(z?r3Ixi};qY2YdM9k69N&Ee%}7!=+f_NqBcO<)hUb)7fYOM%4*Tz@&j_V=e_)PG=#02B_pZN2#ndjQ}@N4WH5I5gLr zuP*S}oQ;CgiqM)tuh-{cfyYYV$`Jf>(D@hq_azk!0uE(SP(lyIZ+t7U;Pv|D68}(8 zTrVlYJPt~XaPrF*!Pq>U!}33sAON^;F5Y&Y@HSy#{0`z5x~^Zt-PZhNP=A%s#L2H$ z+$n3dT)%unOaH>V^rBe8_kuYK@GmhpZ|zgjteo1fmqXoLzZSr=NAm1*(YhX&-&T0f zSl+x|z-b8ZwuQhgL{8(w{ItA!-=S64Fa!Z$8|AH<@r8Drdhgy;I<1x$P|+XCU!k>1qc zN+w&x=|!Xpn^?f*bF;Wv%+z341aixZ-eKyE#fF(M|HfzzAf=D z&powLswb(zNK~K$uIy7f=kJSy$~X>PCArbyl(vbC!mKj^sq1f zwgzq?;T>+^&?FPRK$wh}K5JDU-wD+{tcDUTsIx|;6|N-PY+J)}xa zhPbs+`rUxqFtK?7JJ7+QZ_?)xl%hzw;CD>+^e*qGhi$Z4g=q<0-6uw%sk=~4(x_d9 z`!RY;P`bk(<@*CcL}p`9C2ov)vm$r9wT3^MSGq|RUAC#LYtLM`bf@I>sVa}d=&CDy zZ78^8>8Sbd==O(8;IRozgp6W6V}#mO;K?G5ulC9JgHxd0jFEdLxVs+tFPzdWQlM6C z;!#ktNK4vhWXi|JJG|8Mf9wE#!FDI07Dk5DVQ1PSHe1M#FvY_{5KY@Towaav&N%?m zMTa-%3zev9BcBVuCd8xqwFY3J=7x|Ub8wt+do^WhiIAAF$7BY5@aQezo6hSBvA;3r z-T+NtC23kD0?IvQ=kf6*101M$5R4xv>c^IK<@rxl5!|O2O!DxjR82Iot%sGVF_$ET z+5=R(f@!aY=1Af-RnN4ua5W7oZoV8p+dg5b&uv~nQsZ!#?L_85DP0)@ zr9-RQugT``&@trtQ}F$C>Vg;(&YB&KbF0+&wlCMs7<~y`vpef5$zc_1-icq;eHr_9 z{WCJLtcQqZZ?&Yl86Y`b8E0l%bqb`nN2m-@@rIGM$E{EY&#R%Fl+LA@E+4T zm!DrC^ccWU<`r0?lJIoaJ~c^Na_8Xc;a&}M;s;?=$FG_j*C%gYa-%gXOg>Y2DL3iwgs`Ka=st_9{#=_Km6y)SZHlmz83h+ zptO3Ra(VI{d}O4WH^;x+R!6fe#IOpE4NlS>)6Xp&D65IDV(gCglaVnq8_me)Rn;5^ z4rLQpy2RI2)e`g~lj`7FCm*Xf2E&6yp>rh*eY#vF*+{)d{hsETCX|a&K<5tG=?l-e zr#5A*l@m@7H7NLpMwe6KJk55M;6g6u+su9}CN5{`5fk9=cK-6U6N1>l2OT;uYPvl; zcwV>9uixQ?`v7I%_dGgvXXI(;xdvM*^UcXC6mtzde8;W(*Jay&k!h%ZvDSG&>uVc6 z-advwqgo5RrsbAY!EY&LIc#o3*F%Q5i8UjpzVO#lD@ delta 1917 zcmV-@2ZH#z6@U+r7=Hu+0002p$W2rL00&1&L_t(og{7B2Z`(!~#`#$e1PBm;7NcK) zbwI!fywvL0Ez*{ORdt3S+!}ZB+;qr57!W|X_XV;A0aOSA=Pu45xS~QR_Z8Cj&)xB; z$hDguY*9zv^SkGHd8Ekb3pDdUlT%4;crm0Ve?IZ8vMoZuu7C3F?cYP+ej@dBI;P&m z#q%D(v{j`I1KKO!>TL&5ARm!~;qa6k`~n|8d^a4zU$uQ@%=Y?s23$MSpX%*Pr~gq+ z#|W5?FP5wwKyf~o@-@86;tLAcd{n`Wc9ksvu z00{%9m;eA!$A1&o$8EI(+dB{V<1^|%{&oPc&4rRdtKJ%@!Y2>-h!xl$0>)g0;d8En z>*Kb1`)Yi-{Zx4XZodM^(TD)U(^CYTfQOUeXhdsgt6pDjm3bTh9|VAp5U_64?z&Oy zM*v`%01$!Jf*hR;r(+!ZZYPZyU%z_<&@Unbq@)Ntuzz=X{a6G!wg7Z6#7hGJh0J8rcVcazVof#c9;Cq z0T12QpMM0%abzQ)rN)#(Xy~@k)9}5juv1lVjCS!M9w&rC+qJ(X&vpWaa^gOM3ph98@n!wK0io^l5^Th@*0N1{qL?R$q3#kLd49Fay zv<3pbh=e7aaR?aa-9qsRAcW7w24Luo)gyojiy4Q|Tq&+10#=o)As%Qs0FEX-0W3jL zh=0`h(F}lvn0h7}z;RyB087vmLUS2gJPos30u0<9G63H?y#){f>jEKCE@O+v&k%5f zVKkSp!~j%4t9JlPpb*vqe9&5kb>xU>00M-15y>nd%rHdi&UYVR4RBPak7Xp~q$5Bf zA%wOkT$cnWAd9vJAOIH7>2ryI9s$ZgBY!bNx=9EyC@BGQ6}b%b1duic5+sIzq3Ahn zV+3THduV_LSba>=$gFwDL%4`bBG~HsJJeH+>I4hzSwe zSyP~eQX_!Aw24}1(&wQZ0AUYvWJqXKgQ`X+x-D9T2-PUm$ANpA6K-kYo|Pwn1u$`= z+p`kCC0>6U&PTVjK6QmL@>$aqCVw@Hjcx}sQ<_An1@7v=4s7hfE)bN^w*Y8G zgZkX^yUF=-HsRIe&(VI70b!$c4S)gYW0tS{eD+#$>maL~U@e?0iiQY=V1z*H-I0c&~oAIehWPcSM1$0)RnF*f8 z+}Q5zv9U)1-U`fUH-{5<0RLEdbj(`H^}}@OZ>kTs^ZQ2z90gF=Rth7FMkUe+dKmDf zIR@za$B_ld8GpDvmg4AXoZxS8Ba3-)KG@tR%S7Uhwzqz|A|6c4YZ`xn zWsxk!hr#BBm=`d==4a7|7E-X3Sq@Vss)#qL8DvQV-y4VcdMU5`uY#Au(nF0n&vYB# z3k3uTb94y%%WzBUpu4vD`Dp?0wMb@d5jUdV3za2$Q3we(@yVnJhJWMbEDq(6a4$g* zBlCNBEEDGwIDiBNRXRijcO)-2%L4V_Ruu?H@Ea0fMSP8jLU~K|T?*90pt#9mW3pIf z^k4!iN#{z3h$xg}Wx+n_;VmO?aDO2bRB2`jiq2Soi28E0PkOK&gOHw$@+PB)DaPa&3kUlJ$oUeOrRKWvy}YC0&=StPEYA_r10}|Qcr|?&!ga$fQZP+ z$-dQNfOx*l+(SNp=QmADP!18Xob6jZ8=zV7ypkJl!4hl?Q+C;_aVY{lbtEPb*u?`i z`I`p>8^b=O$xzSN{TvGyV;{GQGH?h_P!7QMou1c6UN4<#?9VBK4dDnBBXah=-Wu3{ z5Z(K>cu|KI906lQUccgFduxEU&v4IsDuT689}@lnSuGR{*Ij9400000NkvXXu0mjf Dw`6rO diff --git a/graphics/picture_frame/cute.png b/graphics/picture_frame/cute.png index 38e6ba209a9fe52b8ce8eb197fc5788b9a062dc6..6d689c918d10b2613332589134a42ae0d808ab20 100644 GIT binary patch literal 2106 zcmeH|{ZmtC7RS#efq(>aDTRQ<^-5c;j0mxGF={mlQ3MHMfCXdKG`iYVrlROBCDz!UK*S=@Y-z(HN+}>v40$$AXF8qz6L$8@Jm<`O z=QH2)o%74{c|v@&*Mdb00Kh9|vq<8cr1Pb^)0}-l9;?wgunbAG5H3IDi~!IeAueg7 zQ$z^aY&MI$%jv0*Y#bz{(q`X%=QW%hyLR34lIK2Q_c*v$eV@9X*&#V8-|7Y=4l0j!`wKFYp znn)zbU_f#+(piw%7K@~6q%|V*FZqAX$Lhw^)R@sS{R@VW^DGJ{{QvsjzJO-SKXw4n z{~aR|Bz>qd7v4QGMBt~6_2g>{a(p`0oy@DelYBTo>e-C4^aI}kaowH#_mtwhQWE(@ zcy&eOb$?XWcm26k-}J+0zu7#H_3f0n=K&n5$(?Q-Sn|8I)`4p~dtH7gTXKqNiV#0~ zQcNd%BR7RL4yY!Te}bKiEWU!JXV^!&3+B1e-z$vqn|i+)VPLKEU-bg>rU3Il#Lz2D znQLKywlf;CSn2z4=S6T7IHrGvb=`yu^;3(>;#3{s>$-*=ePEAoe!7HKt2mW) z--UXppQKsAO%eaa%Y&}^2YDy0f%SkbfZwlF8P-{_k!34Zbkoh;sA-vFi}SJ~J{ z-(bgJ=!U=S^*vXZZVAC}RCm*x4@F;ddY6p2 z6=@G(>0{jy|F$FE!{x(}mO@?H(Phxzn7b#b3amontEG~B=qF&?Nq7E<HY_!W zwDP2!Q?e*fn^+)((V<6Rmy5c2tAnuv*B7mTIu08iZ%?SVZ1(O9bcL0ya9GzF1gS(T zgxzjFM>P37e>*)W7H<_r()K3R`O(2oH5XbW2I6cL4qJ#s_O#pAXRI1e7)jgi!dKjy z^`6jPrDJ#Sy>{0PX9HmQauq{U-xRs5jY;af1?u^&pZXcwfBRimAXZ)~Kg(IQS{kEN zD7?t!9l|$ny+z~8iLp!B%8(<8lgG|gp2S+OgI$t?#rqS<6Pw86b=Ui(Wad+Q7%4@a zD=W^Y=2q^*#HByos`xq-6E5Di%VVfi9NPA-W47D7f4>FStTRnq(=R0II5o+kaE4Lw z@qn;&`(v!NhSh1hfwR>rvVQ>mx3c`wOTf2Wt9>$n zTfRI23*tBg3;y9>Z~lm5{wWWy`~I;0R{}mNqhH#m8@2wg+jJuU>1GuPz$!{_5WrPF zhKFUS0m=goNJ3O{o5tY7&1wNY{He~xSUyI_^-2T2bfB*`AmbBL;Q0yZ)VaU`Rl&c#^XzkU@RUP=uRqX)>6 z1ORau3c!Nfu!xfca_6vIMTccS4d7n@;9nHL9+$`UZMDt&$i@L8*U+9*IeA8_up+9y-;^8sUReHNf*O6KUY@`BF&c|a{D{tBQF9|8~; z^qs2#yMOH%V7nawRJ$z#1gxsG2hE;!X7*0pu>~<;?<>3$08*Tw0bSR0`yoJ`=W+@R z6i^r9Bu4`voy_y9EiBF9D>q(JfOt%W>pj3uJU~2F$~aP0TMNKkz+HxqgZ0t?FhN4< z9WDvLP9IQb*;{#~U_$^_Yzcr$tmi@epBIx{DSt2Lo)2sU&`1v^0czJg00RRI0O#c& zpB+Fw254XpbPOb*eeQb)fWZiab%jUKyMWIT-N6OOj0$9$jA{tbs5}wL88AD;CIB$8 zBe~9I0@}WRRudZqKo@2KIDvQ|39>Bb0!T46nCu07EP&rVNbAw%>;lX#40I3Lr__-P zFn@Vq00cA)pfMoA66Yl2OYI#rs$t+R5be}>5n#)&1pp92;f#X-np(_mQP`1GAK@`C zaFhoCXlNI70oW7O8Sa@*3kBFa0Gbh2x#6*HF99?AB4!RdN+g$=7AXLo+E};X9YLaA z0;p?5)HRuBGKi){UIy@AIfI~?ZUZm|wSU`pCE9Edi7d?g&>?`$1nig#_-bY1B!Eb+ zp9VC)1F&}&tGOTG9xbM!ZIlMoZhFAO<^jNf!mC9ql`X72uaPP4cLTea$W=C^0f1f3 zQyKy&1D4MTPv!+Ge>wh8v;Qo49ge;7{n;2i#@)-H+))BLEeHrXL2> z@JFif0rD=>yYO%|05t}<1Az9SQ2@Er1P1{p_xbq%U_T$gQ_TTjsmnhcR;o8cfWmVD zOP!`N!<_AW0Awl+A`f_jiDVU%dPk9S^RRFLCheVa9(iGtvq>TqV{hvh0VI`20bcji s^X1*5o&b!fa1TdgFc)B&&$R%pAH^s)X>n9aOaK4?07*qoM6N<$g5+u<8UO$Q diff --git a/graphics/picture_frame/lobby.png b/graphics/picture_frame/lobby.png index 2f04105ff04345d802a975acd3ae6cb6d25a7418..bfa6c0dd9ed545053c8bafcd9c202df2eed52613 100644 GIT binary patch literal 1520 zcmeH`jZa%u7>Cbov4t|A3k7PY=dm*3GK=;? z3vLu;#KMX}EP6o@7#Us^-Kv*uSH4!VfVY_|cAb+>hA9h3MOHmtvScy-3C5GW=S|)` zdCo6ya?WOF?G4}wcmRNajD2Y;rejRS`LdbYy|ucYX$Y#?n+h&W3g-Y|gKXuYbY=)4 zbh%tKO;Z#_5Co3nMx#-u)1fG;R;yJil|rGAN~I!^h|lLUe114EDEN3j--7ZTMkypz z(4kZJqDHFK0bPvEYQYKIfE!SqI+NiEBTe8GVX+Waf^hX(Ant$$k6Qy>YG^e;!r;a& z)>aC7V1D8n4>dS65RkA!nsEV0CqkD7x-E?P(bNC(KN_wjaWJWMOj^iDR4Rz$P)$K2 z4JlV9%-2DK1yYam|C7%&x^;xxLVF%#5Hf4gF!2B9zrBGo`}>Xnz-r4#Qye;6Gi&^JPECa*tO}UX3Hk(obu+<$~M)V6UdN^HubZDPq=HgX5%vV`@Vf_l|>+jUSL z`z)d_*2iFR$HMD`S}pXFO&s&@4?i4`0cD5)EXNBlhdtEy7a>Rv5HqFZ4p~_h>-E7v z?_!C9NC|i4%}rdgXx)tC0ro-AaXVcZ7lENX&)8*Ah|J%-=S~{gMD`&7id-7|}bvAj5QYxu!$WY?$<-OwA3PeI2tv-d%aAe`IOQgzhZ3f_ulvx{87q zK=?Hi8Z)tNCZ3c;HwB%uFEP z;^A6(xGgXD4{lx$TNwD9x8s?T%7m58@AR<66Ry_M_a$9Ptcy7hE5b&DlTPev?$Y|m l7aBiFuA!0I#g##|bC;?8{Epa2>GNxUF(W-I?Luln_1|hr-k$&f delta 707 zcmV;!0zCcj3(p0R7=Hu<0000h+HZ{j001yhOjJex|Nrjp?%mzp%*@QYySu8Ys+pOY zh=_=HcXwuHW>r;HL_|b0GczJ0A`uZ00001QfV@Ef00LS`L_t(Y$HmsYZktdP2XOKR zy|!?tDvFm*84yF|bm)>7pweBuWohRw?JJmg^aAZujuK(I|Jpx=W2non5c+CZVF9W;+ z0{lFo=Ym?p=YL?U*6>pUIAfKU1boSU|0DEfp!x`a0QPaK0p1Si`m^^HAP+Z12b@s{ zhE*W%0)$x?8i6~wjR~NiYrxF+6#!90z>9bn*MQ%0dZz{OMFIHI2z>P=v;(e}0k{MW zuxtmOHnACyTENQzssK)t24F9zLR$gk6>M98biW*GntwQR6%awt2HY=&tp)rXh+2T% z%3ienA)RB>Xq(s<37xA0hID^gJ%DUPygC}l$H~X1xAOr&X`ld~a0u`?=Sm~(TQg7{ zX#@<$MXYPTNHb6!ssyx+^(LS;)_1U4a81AR3pTKhZGeP<(?4oU2{5X`c`)Ic83^Sx zzL3*y0Ds=jE3SashsSPd?+PsKO7Pg4b_V#J=0P2h4S+;I)`9aT0OvvR%`<@OPXYH% zz&${^PP1?`7jz7Qj=;kv=I(O^lQ;Wh^RP)e0sk)InPHrW9)RfxVLE*PX*%-%0)3Zo zf|pYxj|Utn%^m=LJ_1ht8L(??)1l4g$E|~bOFUBwA)QNpU_4?8^tpYOU=c7pehK3- pmf$?j_agxO2R-Nkh)TL%_ZOVP#WB{~cnSaj002ovPDHLkV1k%HK1=`r diff --git a/graphics/picture_frame/smart.png b/graphics/picture_frame/smart.png index 93fbf373f5857a31dcf694445fe08d4fb460c226..4c8c4fe60562999737e939a016bed82980d439ef 100644 GIT binary patch literal 3230 zcmeH}`#02k7so%}8DoaT6v-_nNh6oi#XXJO?_+RCD%T_>jNCb62FXZhIubHELq$j? z>7wSG8sw6S>B^YIpyU$Cb-vG>=d5+svz|ZUSGN_A#RVdh><@st7i!}GAOX?E%U0ZkVOS^>@_0Nhm&<0e zSu7TV!JyG-WHLD@D2PNNSy@>b8XDqoI4l+`=KYia-3rU{!?uvIe1;*+Cc%7K&@D29 zTgr!pVzurT7Mn$9(aE$RCo#`v@YpOayQPKQ&1MU4wZJSsOrM`jhJ`_JHyvivCs{4s zrCfL(_A~v9hm%<_oei_QVV+nEz&uk}m<&(0h?V~y{a^ZjH~(_N7rUm3-NIrK5(#Fp z;26YNKW=`Aq#AOHW!J256{?8z41{682Bi`SAYhW{V`+Z)Jst~~^Rl#8Q{ zmDllfZt=&YUK1?kl(XkSL*q(~%t=dce3aF)sHcI%DO?)U%ek!^zt`p@o%j+=ZV%VVM#B_=|`aHN7omP2Uil#T3PXM;?%6 zs(Sm=)zw}Hcq6L)eIh0H^b2Iu;wRe5^wGZMrKDqttBImlU}AN}0U)W{BmxGc3F`k& z?e~!;%AC&5&cz?7U*kY3P!Nm{x?NSG)b6oolCFn+w456~RSuWbNrY+kE$tq0w$EnGxoJ_5gfas6G3O0;n z`aD&IV$j6X=r|`(jlOCq=|C~1ER_$cPm?sMEmwV zlrNCVDD>EA^U{(VNK@`0O`l<+P2%q$o9|*>r}X`DG;;iPxKE@6ubw|GM~^)yXxlFv z^)lZgb$r+uvXISyl2#q2&4FcJ2AE&+NJDaVbUf5KBD$kQz%A0jwUu8o0%B&TBS010 zq+`9cIpLgYjD-U!1v}Ak*bvQBl1{l>ddW1eEDH*y)C0Wr9_HA?KN^iUMGW*<%Xdn zkCUUrg0Os|OAUy$JDf!>Kv4j0>%Qg;C7T+v$oa;Ehnv!u?y#~aa$iTEU|$r0h4cA1 z$4Az=(S$m|mkak3jv0A6$0bls*o~%dr||91huZ>m^%<&?ic_1pXmpFwG-aC-6w+6` zOZ5Ay(#(S)WMiBZz_vaZXzG-5RVjN4F=@dbvJ$`);YE3AV^uGCMehKLxNi(mb}Z z?jd!b_=8y@6&G8`w|8R7qHfFt^4-%^DLTY$OS&X9*#gdb?7LuPhe#sd z3q=z~s3Dcrwm^+qrCVI0LRS~u{S>>bqPv)jk-%M&&*3?0nakn)gR;9CTsa1usiq0i zqcfS!gWft%Bo$@l93-QpL$o<(C?68(x`DXSml_hd5q6AE-_`L$Yd@e(74WHX`L<6FoL(N;urZ_%d%C!^pmu!->h?^Zl=jX3aBlBS zh5H6Fdq35K+tJN`L_EPU<+R@J$j zkKK{>o<&uxGE4UQSKhu|Kg;GkP7zx6S_Jjgf-m-&^%FT|1)= zXXPc&CS( z>Kjp)A(LdB891bH>eS;MKb|#EWDCw-PmC7f*Yl)+tE~TFpR*rQUo5AyiuZY}Yra@z zTf7)hlwmwPhZ@lf_;UYfaAUTnwMTianis|Fef?LBU@StfkoJR%F+0xk zV^qL{q?$5SU-N8u{a`36ec)=vg7&eUtFN&yC873+3au8LZT8W1QSn{wj4H=|hvj}# zhpCRXltFHdo>N!!1w)%C`^Ex!;u{E|H}?$p*0Cq64%2u3dsVIKobWIv-Z4AGWS@iQ z_N`AVCx$Mb*kh;}<7Je_RN&RMF-z82nuOeF>iEpgeJ;b930ze<>773Z*oAtP_?)Fa z+l$km!3IHhsE&bkQtBUesvv@qX%(_SM$foqc<~3k%dPhw{;7P;Nl=fq%Zu-4 zg$sr^{+!)x6$Sx{%i73G*+n+&v^tt1k$=c=`58oc5Kw4$xg>D%peZsi zC7y_fgCDH5uL&fhzHW5ph{9U4IM3>57IYm0B6J~wj%L-3le3QC_FEgFOnGtKM*ln8 z)u8F^IPniQKRgtuOmrdle#dm%?DM7y5(mEJL(Le%4L}6%KF=k^2&Ud;n=?D;Gt15& zj}g?cvJe%){$SwH|D1Ra>HDmv6N9V#uGdh$AbF+XlUs}4${L_HZFB}MU;3KzL0%!$ h6Q4YFb2M&Iu0_qvBqjCf;$N4eqph1w-GKn=zW`Q|1>^t# literal 2287 zcmV>($EJ4?$xCqF{uW1CZYdag`Tm9-{ds=-y!8L`%kD7&y2pq61UTI9J~sd~@yWhEuq!|r0Rot9 zjJ@nObqvoB_jC+@EI-q`__Tj>bXWndl(r9>fF2I)QUnOVJnogB>0R6$<@rqo7-r4LB~c(A+PwP=2O&@#gEV_OCyS3PA5WfF5HS(6ns= z?4gFeCS$sHt`83PuMhHv0eH~>ywm~k>EPz*(*ZmHK*<__A?RM{vAt&Zn8rpocAkHA z6g>dgOkx4(^>hd~_TJw9(L*8hjtzhmG-+udKr4Xxp}pT+Jrn|Y8wJ=4J)MI>fl|0? zj+A;RiM_4{*iGujo>ssN04tw82EYu!^g#(ISI=)Y(l3v&60ica`4<3QYm0w3z-%Yq z|878SLt$n6{6B!#mCbLDOF;MWfJ{|3zg;i+#{+(CTYnTleW4K`1^6-m=+}->Yt43V zr<-FDkk0Vt?#MI+ZJW*n-55&%HM<9ZchGr8_`0Zhwgt6tM5@Pb&9BIDhM2T=bH2(* zaXkvFn1ld}lNw-_E0y8xbQ6$jcas}^B>=tvA%l3h9y>?(Os65OGKB9XfFyvb0L6!X z?A8=$fP&IWKt^(ly3fiaD&2L9VPA6ErIOiFtD|U@$zh=ZWu{s#=BCP|rSx8uXW=j$ zdFQ!Gqj5z?%QF4K3+Mn!fXP6iKwHS8_}g=(5=dsX<*-~^QJl2`*aEoYxZPGNN|Ujf zIu&77nbOzPl$atb*02>t^d?m3j{*XWRT7anoN$;XA^lbpfq(_oYDwBCa%Dj@QR*jW zc;=6T7hSC|nk{L^PnWA`AtpwSDmRV5zj>>1?8^rHJ{txOyL8hhEa$ zc$&L~g3~8)e=5a0;kMmYRq-MkHBrSnEN+|+Cksr0a@ObcUVg}CtC+v)q~n5nh(MoC$)e zw*$!4a>ZNZ3Vx$4+!M2@0{1+5h70HkGih4tbzMZCWi?U?sGz|b05+{A%Z%rtkb(>L zZd@gCxnpH|0?s>PxjNHYSkaIW~vCBI%ro6Zam=-=P|w1eipSFs^wYpdXlp;^;y2dz(t4~#5~hN zwEfe@G@2ajR=oD`StP#*F2qb}LNXF9+XjC=YtOFdmA`D|xE&}1V zalHpK>_~g66I#PhBEec9CK)G|E{R?}s_+lDPu@ysnqNO3y zlAiEHfaT`YZPX?>WumVFpArWq3i?dz3E(GmlobHWD1tzYIwT%%L^OI_NEk#kca%^J zWM(}gKnaKbsFOkiWFWk8r93K(G>|_5MfI)u>qUa-YyczzA|t+TiJ_VMWPs{B#GCcuLvtn0tmf7|eB7^uZ*S4Qvg1H*sA{s)iuW>Sf}PICYN002ov JPDHLkV1jt$FA4wv diff --git a/graphics/picture_frame/tough.png b/graphics/picture_frame/tough.png index c7db2e3be6dbfde3f158230a05d18e7e0fefdb82..4efccc288e4e4ebe2c8ed483e4fd3c016cab4c23 100644 GIT binary patch literal 2746 zcmeH}`#0448pl81?{}DSA7YS^K@nw#+(|Pcm!g_Vxx^%=lscw{N|?TkE}E2G6Iv-l zqf}z5NvO%V)wXR>%w`j*(72ZSCHD7BXRo!_S?5nU>pW|Ho@cFRz1I7AuV;OJc+$28 zc&jNdRR#d4`TBU$~EB0AR1 zi6~<6>T!;we5b{|MMD)2&D77;j4|?GOj%zDH#UQ2|2#r$y4zA&}6$c2(Plzkot9krJzTAp^e`0 z2h!w!rz0u=uUHoP)6NC)f)cQSaNowm&u1w%Z>-;_z3n#3&Aqm1&K?rwF6)_$`uu$- zdJX3g03h<13;Rup0l32e-=YWsO^zUu>`~j~%wC-LpIbBb968y#u)Yg!4-CN{k=;@M z^kty}7A<7CtW=x?k+N{|Vgb~;BM}C>jFGK6qu|9$ zhwssb+Gtyw1|+kkvH~(8-El+jbw`Ki9NN0|6kUyX&Z z6Dp}T2{1B7UA_e$W9F^YpJgZq-unDI6sj@1D3dg4c`}RJj8<3AZ-SU4ThwK1XAqiO zMqFH24qVlaTDHeg;G7MyVCE;!mIHXJx-D9cnV;6cCmqHnXQ1kXy>lhVFxe-JojPlR zexcc+h2eykaL-X~9e&%IF$Hj1FV`$5T0jIrxA!2Y0sr*S*TXLS=~KQ|<<~-^xo+u` zhHzLK`$|Bkz1TQuCFiYZTywAOJS)x48{UVib`l95-WhJdUiU*`Rqg!RSFq3tjzJTX zr~rYZ(Wj0|RlJ?-pMSRMU1g9_2ZZJ2{(R6b91dj=aFT{4FnevJB=atw2)jn8H1|4s zqP4h|-Qh}!N)-cDxST!f^=+eG9(6x_V@1?g6RPlZfJ)P2V~{=1Bt^#16!HA|Yt+@* z`R;F0&R7ZU&v(5o#FMB(iZ>t{mFXZt_v1lsJ^F1(>$7P{0-^gKT0GNmR)YD8J`uW) zsX(HI1`S4NMrLsiL-g*_Or2;5+MU#S56FV+gLgq5>h18-v6aGZ>3hD(ZC7TF1wTK`62hh`ym4mbiZ|I z!mh)VF#i@P00?~m6q6HrXx({6cTsXdpK6CeGsG<4$`Rn!r3^!yC*_GDVEiVi?tpM- zW4Bl8XU!I6PVJ8D)TENocmgBPc;}Oe7;ht6%vN8hwq!)%4=V>{Ygd^6#Xa>CDAIkm z&17Om%|~Rg|Jm`#?w5Uxpz8G`Pf%i%>C?!LK`*F59W(o*?R!TbJwx<{o?LrAugo9_ zp;>b5_%*5--YIF%?9s8Eh~oS`!+J7W;&CH^-|1+fkWoB!e0gzS+oXbIjaLrhUwqY( z;PPvgpCxhElmfpY*(!xnLSU#IU%qDOWXl$@JM>$U`V|s1Q1aB#cq{19f1(>`l)}z; zHI0V)L97X>z*28B1^jYC_Jutwz%(FLD?V8ix$A7XxeUlYR!2;6PhA>6*8Js0OB78@ zWl-6g>;9Ah=lr9na=F?@VqE3*0z!`i?h(L&i;2%#4fY0tkEz|g4)cB@EmHiz!0F?vF$rt=ZcU4{B5Ns||sc9)f;ddYvDHhEtHJ4A*gGV?P2joeB+e-1pIJ!E9gjpu3S; zk0MP2?KDN0%A+k=<@JQ^6<++SU{M!5lEBUPCfH}|1suZrC-_jMM+Dj%iaI|?k{&a( z7RvO6gll6G`@=FV*5Z1$GXzhOB|ij=3Zc8csVw^dmyGxVWld zz6$M=KwqW!fvcji3<$I~uNzEWna2L~>QI&8_yq}W9rad1D${J$pDj6Sf-2n zp!W|Gbh!Rvv%~FPrNCtvqX@CwU=3&FrEr>&_@rxgO6d}%fmfo77CZ(nqw#GMwKYj; z(A2J6#|F1CzmuevYTAyM?1{OgO^}$c=t@wovFti=*$&yTJo{oKAP`w*X#6+NOW&6@ zXlSlROB{#E6@_4ay|P!KLB0PX1Z!^Oy zsM=L}uGIO&WlfU}6e5W0Sd#5&juT#PbuOK5$_~4!&p5}xQO>kAm>)=oZDdc!Bj)gUXNx&}7T@Ei z0B$yi3Gid!Xn$4#xl9}*0|AJSTk(BPz~*v!lK}n$;@^C?2Cxy6%6r2-7YCN_65tIS zc)t$VRToB&)P?vSKi%_OyOqu;K9Q? zQ^00kp#4FOQW>|!Y6{aq;_+7w7F6l0ewKoYto?Y`7%xMbwbWkDw6`pn?Gk;-0fec!xDWZfjNgzOivwiuZs0dhS zJP6J_6aXD96+j94WCge^6M`2B#Q*}%>|8pRF!Ru9ZNo;%p{baINWd3Wcp-qyw@pzA zzyzGk&&0VNz|#>mp@AwWQb3FNY`+bX!ypQfRXCFzbQNWuINfRv&Q=nNBEUlgJ^}y& z>VHxsh}aHLuL8URJUkFU2$zxr0n7jfx%1cV8~|9}as^=m0RdFlS`iQ?dtTD`N_+v} zOdaD?09cx^ZVdnzE7~h89~4jwW-|(KYXCxEo26iYvejh}nX3SprU1uM*4qLBZ68o* zAryVUD=^{WIkpb~r2*;$X!-z6xC2ZHz<)x%7CKAVrwjxDH|q}2l2H0pK{S4dN~vL55Cv30TABimNXJtofkQd$rjP)Do+(zU6*EWz2(U^*el$$umB44F zN+qH%KxPA=CcxpB1ZX@7hiYvXkF6pCy2=)Sxj3gi#r!HiogKPU5D4&X+J9@dVS*&k znt*_lNllOOU+6#z4bYXwc10&vK9(IkK;Ei5?E zK99DYcA8zzct4n$35}TWEPu}>gF=2D6q17i;!$%}cdf!McLNUqb2tj2TGRx*gzvdX z$PZgwtj^O}#hXFa#n%E@*gDXJsQ^xAFX8*~0dgR~;$LKGd=(F`fdgP_he6{PQpl14 z4oZ;#7lnMny!-J)uoeV>TOLnLO86Ck61~qI(}acq`8r!4dkXNY5`V5DAV>}ZIBakb zih#*V@V;{|NEozh5(t>0m6!<%kosR6s0nd%z-DnI67bW>Oqe*u)yx1M0Bpduu}{L@ zK&#?N?lXaWIQTE8M@qlAH##nDu+TE2NE+j-90wg8T3f)A5kctSY%5CO$( zY8sxw1fJoNzM9}dGJiddC?Nr0gC6ZLVJ64Jv8RBPF;<$Pdtek;CC-itk%7p@a@l;;Ghi*wYKPICK>aDzT+rPdYm&p#v0d zmJoIBPI;oRDU2CmJ;4wvVHF@dP@6FUPOoM#XN>u=CCKsDus>Vit@KS1>`Z zTUS|$c)lm0Oba1^{efM|n1rn+qErIlS9_vA8im`_f$wsd?EeLN`BUar`N(Ym0000< KMNUMnLSTX%_kp+o From 9be0818b789daf2a31d6d8f2f7242941db5507dd Mon Sep 17 00:00:00 2001 From: GriffinR Date: Fri, 13 Jan 2023 23:29:50 -0500 Subject: [PATCH 44/69] Fix intro/scene_1 tiles --- graphics/intro/scene_1/bg.pal | 259 ---------------------------------- graphics/intro/scene_1/bg.png | Bin 6611 -> 11311 bytes 2 files changed, 259 deletions(-) delete mode 100644 graphics/intro/scene_1/bg.pal diff --git a/graphics/intro/scene_1/bg.pal b/graphics/intro/scene_1/bg.pal deleted file mode 100644 index 95145b854..000000000 --- a/graphics/intro/scene_1/bg.pal +++ /dev/null @@ -1,259 +0,0 @@ -JASC-PAL -0100 -256 -0 0 0 -24 90 0 -49 115 0 -65 139 0 -90 172 0 -164 172 255 -164 197 255 -139 213 255 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -148 205 98 -180 255 131 -164 238 98 -0 0 0 -24 90 0 -49 115 0 -65 139 0 -90 172 0 -164 172 255 -164 197 255 -139 213 255 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -148 205 98 -180 255 131 -164 238 98 -0 0 0 -24 82 0 -32 90 0 -41 98 0 -49 115 0 -57 123 0 -65 139 0 -74 148 0 -82 156 0 -90 172 0 -0 16 0 -8 41 0 -16 57 0 -123 197 16 -180 255 131 -164 238 98 -0 0 0 -24 82 0 -32 90 0 -41 98 0 -49 115 0 -57 123 0 -65 139 0 -74 148 0 -82 156 0 -90 172 0 -8 24 8 -8 41 0 -16 57 0 -148 205 98 -98 172 74 -238 255 238 -0 0 0 -24 90 0 -49 115 0 -65 139 0 -90 172 0 -164 172 255 -164 197 255 -139 213 255 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -148 205 98 -180 255 131 -164 238 98 -0 0 0 -255 255 255 -246 246 238 -238 246 230 -230 246 222 -205 238 222 -180 230 230 -172 213 238 -131 205 238 -180 180 156 -213 213 230 -205 197 213 -189 230 115 -156 213 98 -222 230 222 -115 172 98 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -156 246 0 -65 90 156 -49 115 255 -82 82 82 -98 98 98 -115 115 115 -131 131 131 -148 148 148 -164 164 164 -180 180 180 -197 197 197 -213 213 213 -230 230 230 -255 255 255 -255 255 255 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 diff --git a/graphics/intro/scene_1/bg.png b/graphics/intro/scene_1/bg.png index 0419014633adf519c21f104bd331389787d37570..df9f920ba5e37d6a4dbe1fd697e7a6a4ebc77a42 100644 GIT binary patch delta 10599 zcmV-tDVWyNGp|^X7=H)@0001e&y)xN01}9LR9JLUVRs;Ka&Km7Y-J#Hd2nSQWq4_3 z004N}t(j?(<2sUr|ML`c1O&DKj)T=~ZZOB6&ndmy`gNOiTUStA4Q%@{7#=2>iHf& zc)t96gXiz_^Y`Z;U!MoDeNXg#;d}a!bY(sM9@oAnO7Zi&egA&?_kAP(ay#GexW1?T zp8U_hvr~*+IA4lSJjqhvXVX=ZzEc|fHhx;l9Hg(2sObCC{=Rlk{wKxz@#v4*h4Fnp z{a%VE)b9cHkAE6{pSSYI^XbQB;%_UmpI83vg}cKIzyABBcK7af@A=%_$dyXf=X+Cs z-OBrj11F_S@7pS0&UfLlzh9lN#w{*7w&~{NYdzL2QtfNmwhg;>-rvg>OU&^^=XZ=N zruVr9htF#{KMDtcTfH& zUq4QCub^ud+NVzWZEzH(S%x~NpB%*tcE2?(Z++jd=NH_BUmBY@Q+dnWxWN(T=M=Np zPi&>P&xzwo$WQnn(tLkUz+$*|VKJ8IK&Y0ARSO=Yn^DI`e+Da$z<$yJD{wY| zITr9)d6iX{ueSOcJMOd@|6R8~yY0Tmu>+J&K7ZxZQS1I2oqN=}Z|DB8Z-3LZJzhmg zZ-0X{g{o;t7h=0<+*U7xXffSmg?H7izgHf9wjR}U(>)cyUFMG`A z9!QQe>F_oRCDxZ1rZTlc;DO}?j5tK+SgSbUDX8h>P+;@-Ad5!JiaB6usDE3U&`@xEKb=WZse znU}@9E7X#AKX=y&j%KSna)mbi(W3x3W=w~*r%s7OpC>Uw>x@$Kw!S+hw_7(=zPE=n zmydDakCEw7+^0P`*Oo!-ar&HCk`2e9oHn*GjfquPPj{VpGUI2rNr^0mtCElC-G5G| z7taMqb9z0?XSf`jb7Nt1b@_^U>>l8oSj~AmspZUkZ953|6D=NK=>ClPX^K(Jz#@I^ zo01=vaFdL|O#6=Qh6K%A`vQG&vwH4{4p0y}8|Qr5Rj0$HTj&>Kajk-ApuaEYU(}JJ z*ScuH*@@enNR~A*4~ne}8Bv4F+dti5j3`fq8RU8`U-g5r&|#-mU?VLvy(? zaFkBEW#`3P*M2%=z$Kee1ZuYL)Eo9-oVfhFWt?M_$V*(8Dz?74q=S;F3)k6u;q3Ea z1SsgmKW-=hxkcZ+FTZPfvkS0w;#(Kg!Od3>DRBZ;$@1vm?q#vQ{M6eV&3~3T+#!{k zKBGa!k@P8e|5+dA2&T;N)4W}%*D~rejt@|aJ%A?efo^!Ah4S9uglt%_ES~<(w%*}h zl3ew5HSjiyjeeiCCPg^Iw*l>X15iGp)p=?I&F~Pz0H5^I;2{84HSz6efSLO>@A5Ji z?PsZUp9xHr8|Iija$9yBPJfWbj|rk?V(8Mwmzd`Ny^63Z9tnYQUk?cNo!Tm!ON7~P zX|y&|IX9~PHUMNzt0Tud7wxa`ndM@vN+t{nY&e5wZj3dg*H`<@(QK;MHq#n!4(4Sc=lj^ z$I-c<^@b!^6pL?%Hkd-1k7B*ePr3bUJ`^=S%|J?l%~M;ES^Mk$vu~$R0$D{7sWwoD z{MIU9#(H#N@&)ZI9Di!a0Yyyd@pfw333Z(`1*$+*ympwRH(+xpgY*<&z$H~n8#=jG zwiZ*%gZH%06b*}65%WGx{=40jwTUxZz$-3(6G)_f}Ia1(=m&?MMNPtq#1(W2>dhUDp6pc-54m=U}s}IY3hR3rliRh zJR;3*6UEIkBnvvRi^D*d8Wlf}=Ew_xgbv{Fd%88BIFs22&{!TXTBYe7rR{(%#TrE5 z5qbund&3utC4W5JRM&$tso&LX1e}TN5$hjmHR_!&bb{wdX$IBivl}3MV52%dQyf1Oe3+%<7(=K!du7lEIe%Pqi$NpO_aWpb=aTGcHm7!1PvG+uz)y0kcUmE%n!vY zGHQU4=6`SnHyl(t2d%)6^cG9&!a7$(>MNcS7Ci_G+H7It5nKp*hF1Fa2^&T_EfB~% z+nzMAr|pyJ^psT^SPhu-thC8R7}kx%i}fN|gsg;MajUEL93!YAVgY+Jrckpzaf-N6 z>AQR~pg|n8{Jd}|`y%)u&N80KsPw_Bc&r63ZGTM}BW%^oD@C~EU_B6o#Tbr_$`tGj zLzsZY{BY#zbw98u!qcGW4Jjv_496;|gK3JnCI65N*2Qq>D8bAT$}4EonjyVf*u z0DrF4G<`!;fj>meQja%MxD)bVii4#VU7TRrmPjO*yPnZ*9JHIh6fD81m3Y4rL58dL z)8Pa_xMXATP_b5Q)0hFzT4U#Sh%#1>LH;Gf>dbaJa&R6e$qGxCYc0?lHQS)8B9Tx# z%aEj5g$zkSa}MA#unT!T3foR~p~9LETz@zx*E7Nvj(H<)c*ZLCm|-i<%KRm48X*Il zEi*RJ7>vYo=yGM>$Ui&Hw_@q#;)fNmiOFf{unG2}5QFA)-`yIjHx1%sbPB22++u%C?Clph5tsV^LFp zD7|JHmU$b{3;?4`M+&66gWMRzbl)sJ4WfWiz3oThQlf?iiNy?6lC9&Euzxq3C1gY* z$Ypa&wZppPdO};o3@8LK(DVSL}mtYSj&y3p{#iXQn=aug{M8;`!s5(Xqt z$-u~nanPl^2ykVnF8(`uo9=*P>Z^yXJEt-fkkuT`z0a9E)Sbc7!3uA?$ zB4#YX0R~7NTwP{vlP~VPwU4KU0HocBBWU-o&0qwfXJ|xR5wwGWtmj>D288gfEeR5V zGh`Cy=2z73H*s<`6)0@h8|HR zqfG-!gmjn~Qbq!w_EYU?~a~4}I)8L}x1%g7=6vPk-kU&IXaw-{TO}KOL3PuaPtEo5Or7N#<4M=rvkn5zgBo_8m!Yi|!cDLuV%?1LGR zgDM0!2#Jxvr+?T^18WIk*DA|xvN80VtYc3)#7S)e#@wUbobgMjbY${2MU3bh)3ktR z9lBTTj%@*AQ>6hzfrD}juJ#-e4z`wBHIWt>6Et&YEV4l=6=N5%Iaiwzej`E)NIK+{ zpbTaKRbBBxoC6}qyZdHjkZD@TP0#4a-H1?KDL)ymo<-%X1GZ zw3fz`7%gaxltb9FAuX?s97UeQ+ol7J=z&<;4JUc6gD>jU@SIjNxo$dqYyX56nT5U37g4a^R(;?OFf@R2pMT zJE1nf!+$+4*Czw=-f%KR**Q@;Na?}L60mToOLN33M=A&E+u9uiY!~Pla$`R9kpX7M zwV62+XaxaqHfDsOA%8j4jm^5)63Y=aC98-MK1z$K5jmY(D@g04f!CVsMMYBztA!G}dgB2YLqgx_I zIKtn-BZe6l)Fif6>e-F|xOK`E&x0)z0+f1i4H$k`&^n|j9MQd`m=1rmiXIeBHjTK; z7=Ob_#Ggasu`n1*(4nLjX)B!Gc*KdWiFi zvF_Nmp|nE0N1dOBfd)9}Pb88o2rX04COn~y_`985KT9FK*~t2Gj587ndVj>FlZkn zG=&WrU!)joieUR}O0KZWG^%eDh z|3>{ke_Z_;JwQLC|4RD5|NUoK5BwtiSJMAY`tt!q1NK-pm$jv?x3{<3bv1x1_Q0)) zunfTU&DibcGAseW)d1akvif8X8$1lNfHyh$$Qo9{CKjeM8` z09xMx;2_ME_dWndU=gMRxVatf1KcR`1Jh% zM&Aw);{m+#Apn$Rcdui|`P)$Nz##c64dB*pX&S&=vo0k8+cz=7xjfS^n%>qc1>hBK7`@#U)Gzijg&%7@K@b1ze zOTa(xvjcdDreqob(8+|qY|r%~O#=|@Iqs__f64p200B2yKhaHgx4Yf#ZvGXLI$bsG zd4OLj`vk97uvfVAx;((uwb!Kqt}R;_;AflQRd>wm7=WwVzKYo=`1w}wtPW_HW!8Od%P|0AbjeF*R+*U&$hjn#I4t#&QrJ4rCDlleO|ll zmcH}x*I$#VL+b|s#9EK~^*U_t=Vy$4fA)%-&YvD2MqD?42*CCF{~?Rjc4B|n_F0o6 zL0YMgI?>^rjU5-DcYHjBy8V_smw}$vVNkQ`^MHLFW=|~8PH?7n!Jay$)GmO>8~}O;{_6lJ8-ZkT zO4HuGZs&e)-;1()>w;3hYC4Jol%3u$9fFeH4S$M#2=Bm$bTCvc(I`>2Eqe z{L<`4dQ@sGI*vKaJ~L_#z}~)%0O)Ue07~jd~n>Ae=rszRC7Ulu_yllt=avH*e*OCLI@afRzV;s;c-ivpaybp48p4G~ciNQG2H-U%c*SiD4?vzwj>=Lb!1+uS;gN=0__C>Bs0Yr-pfRo*z zz+u_;K?*>QMW#SUKqXSKMxx}K937!zCDZYz>d}|e=}ToQGXtnnDj^Z%tOQfQ?RL6v zz!C61cQ7u?>SXq6s!Z<|qyVrq=dHH-1&oh{f3D0r4J$S$v;aC12V?={e1Timf!=$qJyv!O@PW|e-yy;^K<U8}xnhJq1F&-;?F@a(c$70rf8_uZ1ALL`u9f0C!2+nsuOWbh$IQdk5h&yD zQtEFu85@srb-+nZ(SgXiz#(uZfHWJ%I;bc%008pN`2sUW$8QokSpXqcx+AcTL0p}v z#mfeas*pH2vjH|wQiVw*W&tn41)5$g4;$A5Y-268sdtCe~M9I z?wD!%L9Ns`8=8`_XtP$a%t-TqbSs+$fV{ljZqW;cy1Rwd`Qu?z6q}6JV<)>1Ljax| zDFD#1FzMUvwxnO=N;BU8RIx=<3t0J1TXXp)5dcWjqe4OTc!7j^!6|k zBn*pXPP1;Dm1E7#w~7RULpC0If`;q^_?f04-@jLUFs}6MAZc7yL7r3laaJsAuM&mO zz}~R{hg_DRlk0z@PvcP{0XC8Jb5jnss>fC3+iCl9IFzy%>?tef#GPKJe@1P0~Y{9X>w+FEfQlu z0US)lgQi2)ZDe|2_1{>4jb50rHK+oRvvht^D;WU&o#P@AYzr~4p(?c@033{3yUv-J zrVTm!L6w*|OvvpRfp$V6e;IQvWcKOx^w5^#G!iL|zRoG(8G%kdNCw(3%XG;#qae)$ zoH!#TOOYq4e>U<4DjrS=aFBw# z4-XHy;(P*qY<&ec7kvVic1ejK9srH1oibJNwmD7-@*Upf4`3S!K%I=00Q?~<5}m#@ zCliwath_Q5rQcMfwnR{A@6(2unjKV_6nfVJ2$BJ~{8l*|3!<4PZ=o9=HWzE?0y8PO z*nJa`0-(Cq>XRnve44k^AaoUmj;PE?m013fF}q(u1|{ShT=gRFgW^VjV9ILX%qnjR1QF@Tz=#aS4Q39q5_bU;s>Wh)3Px2TDjhP(D7w*$WB_e90_K*iPL<0El4k>TbxNa;;7P{3+($r=JI~|F=)~#|UR)>is$dL2%W`KR)Bq>Cs<+|;vRM_S)`3)`d8qDnXmeHB z^S2sde?|adI=< zI$p*1rv(YvNjm+xB6}_S+#l?6E>p#;nC&uze}Z5#A2i~+YF;BN>>|kR0Wk%EbJ)yx zg>KdMJh$mGt8rSI19(Gl0s{YGv#@>}Kva|KHxYObG%g_-`C-#8zqZn$83bbdCtXEn z$DW#RVj$Ce%2xCMNCeTcS!!$R1guR6-y3Gpcdtzf5==S__I5yY5 ze|HEPSCLIR1o%ui>F;^77!Q!3?k~eL0SNbloK-kn#&kqTzo}jY<^rRg5I9~y8gIS8 zVnTqB@4KtEmW=i^1A37i8(`u_WmAK$;foIK7OQ;0%w*KYjFk00mr z`Q_!*Mi@WwE&JUYeH|k4wjRe|^~nFY*m9FZQaT2?$d3PpAKTk!C+tG6g|Q z>NT#Vt^AXhfdoko@D@UI_k5nc2f9rLs94+quKoamsR5D+28}*J{Q(Qb{uqeXKMhzf zF~tx-r2e4QTD!F#gqgI%D>Knx=qv%Fz6(l-FhUQ&NM#Se_ix`q2uz1WWD4`$`ZXEOkD>Uj>^4)zSd1>boGo$^AIx>;%DPFBJx1w>KUx z0?-_8mmuiga!9QP12&Sor#;Sde?12pxM|Zj?cz_Th(}{oz4Jcyg8vXPv*nI%>Dqv7 zA%ykyiXwQ7Q#d}{GojrGUj62>CPcs}gohz+>Cx(b?~ZDaKy>+`id+0N|17Y+>mdlQ z(fXHvB6^YO3B`y?(F4)9`0nV9gmYe1Feq^O-#I}DhD7>Fx5|9ioAW{cf2#k_yn#8_ zna5}ZzUrQR!PCL8*jFpB4$z4(-O&d!OxwT#43qmfwKt~k=fsd0K5-w~5sg0>xojGV zFm}<_V(20mc=3gZu+B(G`Qw55?ok*)>YomjH>cYi0wL1bo5r?@y7gTIk!Bs+mLgu? ze8yWOTgdfC?>arKuL#5te+%^dF|WhKq54>Y|f#TDTQaZw0kH!K3B6Lc=O%Sb4 z((R2%MUkv;KHV6ne)LE?6u#wk|JhLyt$s|3fjIq>mUq^8KKWx}5DM>EaQ}rRjWw<> zLyxIh(67(J{?tQotkTo42SBit@2X85%|CSlnCtZWE~pY+rKzL&fByHkH<(0%ydS~a z{LuT`J*U=9 z?2o0>Aam;g(-$#&f8e8}Jr{s7fPVcc#9LRO3JuV!KaF@xO9S-iPpIAsbpYr-2QsaE z^MW^VZtj75^ruumH?O!8-TKqZ_gwNP=8`{Ki`Jh`{_I$!{$%p5`nl`s91%EeIhD3l z@7(bh)3yHWF|)Mn)gL2&4w&fQsH}#1|J-9jL~YfIIQesue+d!4SsnELd6@aN;X6Az z^+!vGg*)}d+0~y~wKoC<9K|bccPD&X6jhpKUHUEg^y3dbU8d#xD%ME-OSt`ltM`AN zbC7!YyBS0yoF+R#>1YQ5gcztEgOfGCxWd!=e}Row4_fCJWQc!h`5CXF?f8xk6rbud z#6t+gB4?6^e}8q{0xp>QVo6Gcg#kQ6#c}}Q6FiFmbPkfU1N0BjvjXr_GC@Dg2oQ0W zaZZ596P?|I@_Z-zTfMNbew$!&{o~OcQs89easd4otTqXj8-?u0)}!X8^D(Rm;F&8f zKOe}lHLj+c=1Qu0AhH#0b%4A5&Fr$U{Wk#As{_|%#u=on{ZgC2t>Zw30@&`k zn7h_BhOnPv1VA5ItsT^v#&ZC)0|#AEuL8h($p^6rKph0AmjkG4UqCDlU@M3&Y%2hm zRE2b1e-@y{u@V5U7i$94cYs8I=cNFi1Io|O_VM$40P25wOnT~${D)7_{|~ul&rJg2 z1&FrVz^(+~(yR?YE_q%Rz{bg%04z9G19;YHvL--WWX`_d(C3OJ0G>@vTN5DEBMSqx z(_?7>Dif;$xM8^t0E>pz05rmC`;i)9RRD#se=@-H>HyDofIGnb1j*g*cDK9T?QZ{c zTW?NE^YIn`e~S436s=eF{;>bA=`{Ubv~N9t-bW}oaE|N z0UYly1yFkd>O}!+7oc7kpl$%v>j3!m>#1{$-LdVq0QLL;S#1Wo+UkbSM~)v+c#gXx ze{J2-@KFHluXuoEY>)x6&Xx}asF{=90JFJH;Wm#4YS-TmK;yszPg;2=YqkAVa{y{- zD8)tr)U8K;fZ@`80Cn>b&Ejenaf$AZ1gM*Nh6)eisw002ovPDHLkV1jy4 B^mYIM delta 5863 zcmXY#XFSx81INF&aA%x7vd*4KR>(MHDw!ugfmk{GD66u zjIu}B{C^MrPe0GzulJ+(r^b3zp2&$tA^-q*s~LoDXkunSfb1!TSF|hx^Vah1-FR&L zKUCa9A=B_LZ!l9S(6&8FH6upe8XtNuj(cZJoQ!n(R?fumkWZ2^zKc$m(}c_!{x#C z+6tG{mhtkP7Vykx{T=^bfn+CWiojq^JAhg-_(|ZKL~({a5T4@45JE#+o8G9DaA0sO#14qDLWlIi2tLN@qu6%yQM-iCV~o{Imlxq)w=@OpG6kK8SA zT}Ah3(h;KufaNm{;3*FM40v;UIh6bqBBD0aKLDnM%s+NaAhM&?CQ@-ztne-{Gk*@y zM_Dr#mcm&0^v;szt)oT1g|Tqk{5&)`Op8P@AR?`s-t0-ls0TF^Emm zSQOoQ)0_ZhKYPc;VSt7bR2V9XD`Z2F1iFusXceEKBmgJ!z6o2pUIGj*r1iqkoB6ph z)vh8hEvKfQUV1u=6sM}eUVq#Nrue|qHw{>gr0fi`{>9!?D)5ouj!t*+liHp0YjLdf zYZs?`JH__efpz$Al{n=>2$_R(@DNWP@ zQt03_t1!r2iR%)lS&+2Hw)@W4zw_LAP*6Gr#Qp{s&`*W=)qR9YwY8r$$gHdR~ zFBZqar%8uFG@E*Lx0x8vo|bA*uCsX`UCs8kHS-M6sm;||QA;zhHQMiGhkGU(cS6@H@DY;krzyVo~li8tzMcXs$Z>?b|>tF zgWLYSBQ`G%)=jBaW39n~Q@KCiXO~ofhkKq`Sh(-io|5m~t*+F{2tmJKK4^p26E*4^e(SR(vT!@QkiQvF zh!raoLrknuD-vzMp>TAZj;|s{3@+jc!f^`dYudgap|+9pc#HW{Pm(gCDow@Gs&*+H@v{ACC9OJx%c3}f8Xt(%G^=ukJ@a>q!>+YGU>|$ z=JBa1ummf(c97@u%Y;yTnM#Q+!c4L*q9o zZAeK^1SsO!zZb#bRxgjaSWwXARO-zMiQau3mr2xLo^UILrEk_pO1nKtnOY}R z0QkvbmFd)8e`cx` zio1m`jf{^>3Xpx4O)?L{Q;T>MCN2t2ZvT-_BlRCU1=Ts)C#( z(FUwp@JAYcM!0Vpkbl~jAR?Z)Cf;ZrVpF+eOYJKIiw5{lNTVIxd+&I_3g|0Vm7k5; zY()pqc>Yx)A_8JpIyHZYH?Et*QbuIX7bnv_bQ!K^?`bN3zV0SOUx6cej6Y~`8W&AY zXtfxd^Bgk?bd;bXQ?3>(pf^@P6d+8_6Nbzs;G};YjIwES{6aX;rT%sf3YosrIj8XA z$Y7|Ar|#y*xjY5>_dR(nd@G6rVe}{{TetEAhYTx?_>5C@q6!Hv0Jg-QD( zuEgvm7c}(!%~~_iXO#1L6qdSyfLO>xNOxCE+t)cBSRd8Qd!w9yZ}olBQs*|TXuI_{ zfe#w|1n&Plf&)t064~h!NdnYNWJ5<7cpS*W!~22=0&b)VY@Dyl=beHh;QJ$}fAS*l6vC6k_4vK^_ zlwUQ782uH@{l2wsqF`>;tz|7J#bqrTpb)a9?|o&5ljf`J@A6r0{`)HP%d2|uwK6pf zfKKJTQ=Q_rDy@cNenkc@$Eduv^2@Vd+-{ixi#jymR)jAyJ!9v+!Y;gJ@JFNw#-Yk1 zBuB}Bw??>bb2v;Gws_#lCP`A?qrkobeN%qx^@}t6w047SchA0c8pZ>4oL595Sen+H z{{TG!`J&xX)MU4|>|U!js!$svz^py-b&=F`<)=&K#BTf5-g`MLXhML==2K z_;2P<>w*5nP~PIKes*^PHoKcS4pHD&2&2G{i==8VkwTY}?7K`fQ~*}3WS z(LhpYHcL4X9;>D9koVByc2YaJAKVkEs7pARvNnO|h5Ifail#^UctzgK4{BR-aFH2< zeSLIqBto+DqoEFtjPi426N`47xm;|%P%oc_AlM~|iUZ|+4^8>+?UXlVeLH*bQkPo&&Dx14U=Ul$VG7RrUigKH+tjWfvSdFEJ_+Z1~eEYAN6) z7udRI>^bs{)*W%pjWMyxxR|D6)>&)EjM!op$I#+DAA%d=*v!AXT;exHE7L-{*NCpM zvg18)$?JO0;c9C_t)P;uaL%w5_h<59UWrcEwhVaod3__LxE-(_;}_bZ78D^=(>L9W z?n%DGvTRxEI&a^`G{=7fWM551qBJkvlPvRmyEe6Q6>n|4(YSv0`>1w87mOG%i%tIv zjOOJ`Kg!~iNNW88o}dQ8_OQZZ&DJ z14(t_-SOQIRPLz^u;-xKf4^6*bzLxdk@*_!V=!{?b2yNlQ8U%A@KA;IFJ`*HxV+eFb6-WRWO27&>~mdEkYh*0p)W}+PO`c z-`iy4YkTi0&r-AZ!+ z<;8*NZ#o~;-&_UC#0;eO$4OswR$hj@r_y`M?%f^G9@XTwGIuZ`(?B3J-Ca?#1;&Tl zRDKRx-#~$<6f}tssN&ICdw6=@F~{E7hu!675zv~|UqJnP%i-%yr~AFUUUJZ}3iZwX z#Gmj4?-F149`>@x*BhzE$@brVMNO0 z7T;SCem=N?D3v$G`}$uS7+FyLD{%3L@5s0~0D%B&8w9NcFamn5So_$g&(THdSWoJHC24Ec| zGc{y3@PrM_zjWg@@+uq};nTSQrTQGS;iMyjAGyedN_KWA_sqJ>tm)1DZz z0)uuin`%Ry8Y2+hU~SKCieaw=fVQS6fHxKQ2ukh1=fx}!z`WV&1sl>giAMU z1C^6I6{&@5{iba;TP`99;YQRdRqVc{0a1Rsz%9-ZKz~xz7Amt@DYOO841sPU$V=1I z^{fLkT!u-tUYY)ixcfuWQY36YA%W(PEP`BoNDW8UnPuqWWL`YW$T?vCpo78hlTB*h zQ33=Cs-G!mk-a&s}_*cIO5XKVc>VLrDH^A-K9{7dpL=nnvIBk~>P2Z;wDq0o^s+FF5npw2l?+ z7%OK2`nty_EP9^*MVg+<8xnuZ9B_C!$#7JSMit~l*DGg&$Mk571@T9<&y=SBc)Q0f zxhh72$l#pjS54x`1oapdZEb`b0$$apL1J%D=VBp5_c+Vk<|t|I&rN%6gu9)L<68fh zDFg(I?3)vPmo&&0vKf>WlVUuNz4TPOgVw@W?JnC_8IO|>(^JpUlWJ|=z{_ppTjMln+cWu1;zER4pOSk0L7kZ%M5yH zYS-a^vqCnU*)f#b>~`iJ67IP8{>d(C?d~7rhs2z)_N}wSLPy0)U-V@92H$r3N&Apy z2n%DHNH$xLk48B^umS3nw*9uh*Sj67(Jt4%=MG-R(fy&R0;W%MFL^C58Z}2*m_Q!m zFM?fvC;IXbVok365Jv1u#O3&i(VNBVG0G`lGNlug!kI^uBq%T`CwD7KW+L*TzrS=7 za;hZ&dn6*Wk2DK0A{403Kgo2Kqj!Q{zH`Y(GA>PF@M`HwlTk|(h2qF}W_Lo;`kj+( zK=5SFF-Bp`;bvo-jH?g(47*H^G;1T4VnLgR5Z}Y`pMi3iBrYxe3fP(>bxn?q|(JZ zYKP%vVZs@3zH}7sW~Tw&0%ba9^~xfMGaPPl=gOeLGqR$E{Kq;w(j}Q7+%C3utGVQ@ z@UpFXI+O5~TV^6jlc&w2nj~0>oXM=kFYx+Qt0c2Qq+n+f;`pKjUkP*6Jzeb=j>dO9 zR4_F?Oi`{qv_cWqK8?uuVVHM@6=%xN%KPZ3VZ^dHcq`#Td`a5S6*6AlN(zK8>kFK} zgfr^H#xahhUi$etZNZYz%k(ltzzsW)5t$}R$6vHZ9Nm5XxYDy~M023pA!Tz#I9`_I zC-vevtA%aK_S2kHMp4CMPQk?u76WY_epENM>{;f8qUS~WfOHtZpc?A&5PG>)Q?#2A zHFt>_W^KG5E@x{9lRXnwk$-%o8Pi;o~x^`!f;B5pa3nD^0jZIIrs-S~(C=qh<=h$E*Ih$@mDtHIE-sVL$3 z(~gAZT()<|s2hn#w&9ST0pQQy$bX}jHBlUm&(d*Arj;<8_lg2x`+<*z=DiO4Z8c#h zZ$2$)Vb0wG7YsyTf0ke*zJE8BLcbuRK0Z%kgEnif7}ak$riOHVb^=K6YV1-0IM`Id zO8$1M{Ve1;=B-71i*bZytqiC?2V4+- z?$Fo}4b}hLSPO-5okaHgOq?XYyMRj!X;xY^El+fUJv%AppjlBlo>-o0ss&YI+XMd% zenI!mw~L;*pM!CYTxiX|{G`I}uk_l{gQvlPxi_!v1%Rv-JxV!&e4_@Njy|3KrR;Nm zG8Io#zDuv&3BF=q#G^Vvv&)iUnMlEkM8 z-5u2cdN4MOuk$(|C<6}Pe;}$*)3miI#OoR&uK4mGE}9<$+mjB+@?&rD^ zM2iPBfYrZWfm)Dqz^j93A_rsMVV}_eEe#)fnBAqhr`PWqq}*e!E3BcOSE)IvyhMHF z8ZSaS1yBIwFXQ~z|J)U507Uh3RTOP$NI9>-UNa;A)in>SS?m)2(=9 zH;ryEbelm@#!g^fNigwZ;)y0ufTdkt&?$phupm|od-k$s8%Fx^^y&8Plvz>=)fP(*^|SVpp9L+)0Gi-Q4?S}VzgoXwBcl3<1}+M^l=vKIndb7&r^pG zkO0mC{QiURFBH+Lhl@*ffiQfu3|A09OjH)+2f*MUW?Y4z(5pTy*`Qem-fZN`idqeb zMdC{tXo*uia2)eRR+24}F@~OgnSp+ipIvqn419!s+i2XV32n?cb2kQi2)UBORqy}l2o!U7I zifB=g)`YXpiU|VUsSB{A_~wq0o?bN3y}}p}=dKJ@Yp2V1DN*_9#-#rj#`WfC{_d3S zr?Pd1-rnBF&tNVuY)V$~1zbz!xD#RgovQ&ceE!>x3}s_jS--NDOC?)lFot6el>%U+IW{03pY-E6 pgC0*a;lEVKb{#sxS;=Rx^8#{>Lm4Wn|2^7(q3*RS)!KxJ{{dJV#^wM3 From 71d4b1687a72a22a8e46fea6ea4c1385e2073120 Mon Sep 17 00:00:00 2001 From: GriffinR Date: Sat, 14 Jan 2023 11:42:19 -0500 Subject: [PATCH 45/69] Fix party_menu/bg colors --- graphics/party_menu/bg.pal | 179 ------------------------------------- graphics/party_menu/bg.png | Bin 613 -> 1120 bytes 2 files changed, 179 deletions(-) delete mode 100644 graphics/party_menu/bg.pal diff --git a/graphics/party_menu/bg.pal b/graphics/party_menu/bg.pal deleted file mode 100644 index 0b4b30f81..000000000 --- a/graphics/party_menu/bg.pal +++ /dev/null @@ -1,179 +0,0 @@ -JASC-PAL -0100 -176 -123 156 115 -255 255 255 -106 106 106 -0 0 0 -65 205 255 -0 139 189 -49 189 238 -255 156 148 -189 90 82 -222 123 115 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -139 148 123 -74 74 98 -65 156 148 -139 156 41 -205 213 123 -180 180 90 -82 65 74 -32 16 24 -255 0 255 -255 0 255 -255 255 255 -230 238 139 -98 90 0 -255 0 255 -255 0 255 -115 90 180 -139 148 123 -255 115 49 -65 156 148 -139 156 41 -205 213 123 -180 180 90 -82 65 74 -82 82 90 -255 0 255 -255 0 255 -255 255 255 -123 205 180 -57 148 123 -255 0 255 -255 0 255 -164 115 246 -123 156 115 -74 74 98 -115 115 115 -255 255 255 -131 197 222 -57 148 222 -41 123 180 -131 197 222 -41 123 180 -115 255 172 -90 213 131 -65 205 255 -0 98 148 -82 82 82 -255 213 82 -255 180 65 -123 156 115 -74 74 98 -115 115 115 -255 255 255 -213 197 90 -197 164 24 -156 156 32 -213 197 90 -156 156 32 -255 230 57 -205 172 8 -255 156 148 -156 65 57 -82 82 82 -255 213 82 -255 180 65 -123 156 115 -74 74 98 -115 115 115 -255 255 255 -213 164 32 -197 106 16 -164 74 0 -213 164 32 -164 74 0 -255 115 49 -197 57 0 -255 0 255 -255 0 255 -82 82 82 -255 213 82 -255 180 65 -123 156 115 -255 115 49 -115 115 115 -255 255 255 -180 255 164 -123 222 131 -123 156 98 -255 115 49 -255 115 49 -255 0 255 -255 0 255 -255 0 255 -255 0 255 -82 82 82 -255 213 82 -255 180 65 -57 156 255 -255 115 49 -115 115 115 -255 255 255 -172 238 255 -123 213 238 -74 172 205 -255 115 49 -255 115 49 -255 0 255 -255 0 255 -255 0 255 -255 0 255 -82 82 82 -255 213 82 -255 180 65 -57 156 255 -255 115 49 -115 115 115 -255 255 255 -246 246 148 -246 230 98 -222 197 32 -255 115 49 -255 115 49 -255 0 255 -255 0 255 -255 0 255 -255 0 255 -82 82 82 -255 213 82 -255 180 65 -57 156 255 -255 115 49 -115 115 115 -255 255 255 -255 213 222 -255 189 148 -238 164 131 -255 115 49 -255 115 49 -255 0 255 -255 0 255 -255 0 255 -255 0 255 -82 82 82 -255 213 82 -255 180 65 -57 156 255 -255 255 115 -115 115 115 -255 255 255 -180 255 164 -123 222 131 -131 172 106 -255 255 115 -255 255 115 -255 0 255 -255 0 255 -255 0 255 -255 0 255 -82 82 82 -255 213 82 -255 180 65 diff --git a/graphics/party_menu/bg.png b/graphics/party_menu/bg.png index c58f3aae98d8e7eb47f33be3d95b71bd78570b98..21d1e5ef107bcf8857da77419d03ecbfd73e405d 100644 GIT binary patch literal 1120 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I3?%1nZ+ru!7>k44ofy`glX=O&z$6gh6XIGu zr}+Q>|5;gCKv~DL{~5aX8t#4ff6kP>Q9<{ri-Ce@pnFQSmsgVGoGIONG|yhG-m)bs z$k9tdK;l2ce-Qfr|Jl3lq$mamw>WAGQ2qa6Lp1e4K~Zq^)n~U@0@Z-EFDd>8bPv${ z;$o1invdSIoN`aIdJB*NB#ZyAiMrYha%9q!prD}tSA+gQrIKzAOsgt{DAJy0Cto-O~ERNrf^o|6O= z0U?N&!6aP0<(&U;^=sb!ufF=uYt30A)qndo<=eBQdq)+BRR90#z5jcsyj#*tK>dH9 z^FiSWaewogET9uX2%GygCOKLF)5$+i7srr@*1OYA=QSG$xbA&*Z_{3{B{j{$9yccZ z`yYQb|JY}RHdpPhT#6DOW_H`obJ0|}d@}0riJMa8eEs2n3&b8QdUaOrz$b?5N6Q() zn0l-P7|!uoZ4gSh;>fR2xwf?ILgU-G5*OZt%FG3NG3)otpCppXo~a_RZoNsvLHWo_ z_h-%O6j9^*@aCD%c0bj8u5P{tR$sVjm%l1HxHa6m!RRsR7Zb}{rX~9v80Q5R9{9@2^x)X^u9V+Q%riD@ zvpx8QmCr!=qAjBi5A%|JAKdu@o;?QQ_>v7@TZ8%Dux(f_vtzCPj$%HY8|}Y}mi~Ie z@K2%JH}n?wq&@#%saQ>5%(&mh*J9WBSn0t26=LUR@*IdaJO5ww1J5DmN8Q;MZSIG! zsIGh$Z#jF_>t@FOMF#)=o^uaS(|J%EdOf^kgPFsQDEWR-%Z%bihVP3Qe)MTQpWINy z(#w26#(`l*Gk-(>>J2HK3{k8rYeo_l^XkzAB zA*mkZ(A===pRncvTi~wxRK>#xoahOUV=Fk8bY}PRc z<1T+%76GQ!T%(3`*8HSAZdclA1ZS=B3IR>Y$m<%VHF{;1%{$fdg60Jpc~%nM2;=Km{zcat2|QR6Sl`; zPNPiUSw9>g3;1ydODks~rMFIjLjdrIrGvB{#DMWLs}NQa@VBG?1-4uMpimXa-d2C4 z8+bp)8wggy0N!gJcZcKdc&t7UfU62?mJS;P4!h4gc0e(31={TE8XkSXsotNeI6yf# zz~yiboL6yKmSq6gKm`q~`M)US|3uzdv4Mq0$}8ln-l}E2TN{JH_$Xm q0wt-*ftw@&UQ*1#G*w&+;2Sr2H`x$PHX#Q90000 Date: Sat, 14 Jan 2023 15:59:58 -0500 Subject: [PATCH 46/69] Fix slot_machine/menu colors --- graphics/slot_machine/menu.pal | 83 --------------------------------- graphics/slot_machine/menu.png | Bin 2396 -> 2665 bytes 2 files changed, 83 deletions(-) delete mode 100644 graphics/slot_machine/menu.pal diff --git a/graphics/slot_machine/menu.pal b/graphics/slot_machine/menu.pal deleted file mode 100644 index 56a9d31d0..000000000 --- a/graphics/slot_machine/menu.pal +++ /dev/null @@ -1,83 +0,0 @@ -JASC-PAL -0100 -80 -0 0 0 -57 57 49 -230 230 230 -255 255 255 -131 213 172 -49 123 74 -90 172 106 -255 0 255 -90 172 106 -255 164 41 -255 98 57 -255 197 156 -172 57 0 -0 65 24 -98 98 90 -0 0 0 -222 222 222 -255 255 255 -131 213 172 -255 90 0 -222 41 0 -255 90 0 -222 41 0 -255 90 0 -222 41 0 -255 90 0 -222 41 0 -255 90 0 -222 41 0 -255 0 255 -156 0 0 -0 0 0 -0 0 0 -255 255 255 -74 74 213 -115 172 255 -115 164 74 -156 238 74 -230 65 24 -255 164 41 -255 238 32 -131 213 172 -189 189 189 -156 156 156 -123 123 123 -90 90 90 -65 65 65 -0 0 0 -255 0 255 -255 255 255 -65 164 82 -139 230 139 -139 230 139 -148 238 148 -164 246 164 -180 246 180 -189 246 189 -205 255 205 -255 0 255 -255 0 255 -255 0 255 -255 0 255 -255 0 255 -0 0 0 -222 222 222 -65 90 213 -90 172 106 -255 255 255 -131 213 172 -0 98 115 -90 90 0 -90 90 0 -156 16 0 -156 16 0 -106 156 246 -205 205 0 -205 205 0 -246 106 74 -246 106 74 -0 0 0 diff --git a/graphics/slot_machine/menu.png b/graphics/slot_machine/menu.png index 08aa5989d66f9d6d13f9bcc69801542bffacfce8..035ec7fdfa783b51c904e99d37d24ac8e690fb76 100644 GIT binary patch literal 2665 zcmZ{mc{tSDAIHyk7BkGKF3=M@utM)1}B0ZI&F4Ia`Rjv9a#-^t4bYOzN-Fjj^Fu z`3r$?)7g833}fLR%qn95Xe0)ME`rC##{NqR>0oS+i2FYdgiI0rZ;5ytoBpsWVHn$n zxnMI*BW>QiKo-R{H8nAr%$S%MI-O3V(L}f?T2wT)WBPQuNO=o+Y(D!D|4|dasZ-dw zdHO#R@uGQX^#09h|D7K&!sv7$5|gkge!K^fG?o%uQ**#tZzTs@s2w0(CoY0&!eT`65}VozlB2EV9!O11L1n5Jj_0bXV*3# z_AI7Srps4VPqtC^htuSN?8ECPJcok7NIH94VtY2Uu-KB;iUq<{HZ}<{^6_K2ITk$L zE1A3#@?D9D&mPH^F*mLG`{sIZheR91nz97PsBbcXS)yA2TQCYf#fHKNazbQ@A`2V= zOOLHGz>x?qnwt`071luDBVhssHbv$-@%VY(vVRJN2eN9ts}L*0Jd zzc#t;^iBg?B~~pC&Q}5yNZS;F#qt3*0ey!=71zS{i*nc@pqTpHev1RV&jHaLrcfx{ z4x?K^)eddWdvVGwuYJ?BqZScoRETnQLN&xeP;m(4^77VW*q?OdQkPZa_6wYL9FNmq zMoA|#fLa|n1MdL3CmJfPXQpYxb*wFLt=*xo<|Tibbi~iDa+-;PFRQGNoo7|j$`wFJ zIBLnT;GqFJ1|@s6vj{B9B)Y)0cl6%`nKf=8fZ=vm>f4B-9UtrC4WxLevg;^{OvkNu zH}Y#IIXu1_Puz@?q-cSH7Sj~$pMm?aoJf2Os)z5cyeNEno7@vD-mb19fAYjaNwa%y zR{>n(sC?-w!PJWkOL$+3uj)e$$h3F^sLDmNU2zRKbMy0ob8|f!$W-g4+|kN}!)@AK#?#*!1 zI~M=GO*J+nXCs^BRr)x;9B0;Rs$d`EN{z$yw0Udar77oqquH!k$|op!;WY;`#js$= zEPw!8<0-!?D5^QyNyVOJJ;sr^$C7XUT0XcyXtXu5A{c>y{_#ee!nv!1XjO@<0c3R3 z^lk#J2F;PALa8)Qx(*o0?MdgsU@LBus|xo(6<| zWc1IcAmSJQ@11D}lk)ABu=yuh=gmPx)I^s~ZA}eK@Ot)JC95r4tN@cbmv9xwM3Xoj z!Fu_~kl@`R{td1l#-3E(mPEQ4!`jx8)8s?)@J8y}6*%bS>0Wd|a0c`~)6xj8PpZm= zx)E47ar#mdQ7%rv)l@-p%vBRts7LX2xNb~9=rY*h;eV_EH`1}VaH0}3+lsUWk6NHp z29e;$tlhnem%DOLNe3AzU~7C59af)VD1yqRb9rCx4Fr;c55gY96e~k1IPOB7UGzm?xeTIU(GBPRy27YKG+k-#9qNlO_~ zH|=JIl$R}dHM~Rxr!V6{091k@?rL4(09~%Bme?l~f-AWkvjtffSj+QLFS=-i?TzMA zVduhOO4VP(D4jUL6;IQatPl3@rdB5OqXbKNp7#5w`qZoB`LP?K=VLbh&RR+3hL8OX z4m5d;97UZKpKnL{#s}lP!8e_~E9RXFyKrzIlGKWbmb)?PaGv3h<_>UW$yXTSNPnpA z>m6-s6f7O4LV;NunMxK|?g&;wD+Ky%43>0RX8?jwVe38)GFZb1yLeghY=bKe(cQ59 z-G5lUh%%wci30eGJUT6cmLB~O5Z%IExryIO(qGa_l!t(w#Sg#lZdpeyKAUq1Pf=E; zNO>8qVx0@Mww_bXmJ=SkrQHi>|v?fB&#w(~9}K6&@~16|$@H zJGIsBc~F2-&D}D@udW+~={-gul%@pOIa850*DiHlG-_E&#DMu;$H91YOvr0cd-w$( zqaM2cY2|e&nkpqP+nvtP5QL)Y++LSFGuX=d-4yYHAETa){-*yB`uvoGSZh7&7oy!) z4GJ;KfQC;V`-SLd;KoX?4b-qajDsf=v_P=hDE8V;WUIMLQC;zu+f%PAXeKx*5lyh%>fAaq?Ktka zOw_(l+GNzx-TO&ojSedtkm}We`iS9dQ&d9wT`c|@OF%*|AmA>vWY>o8y^LxHOm@!P zyEmTz>@xbtY~WH76cIjECOeaw5DKTfqW;iHHFX?ISxj6k#tb>Hn30WDw{6kL1WhlL zpy=cuv}NIM@UtVUD;87y2kY#w#<7v(&0a7bS9A63^nsLP!|1w@yCb)oJ$q_X`}nAl z$qu;}S>N}@4yndf1i_6uL3cP030pb&FL4`s#oDst(#>s|n$W4#Ksf>QcfplgqxL5x zC?}s8LYK3=p}vWP?H4N;aMTwBuD)Vfw|fg$un>4+A<RoK@vH-i z9zb>>$C@BJkV8XQ4bTe1uZ8$k7)~)B z489WLmxIA{4Zz#(u?9qrbJaQ2fLE2VDF9$V*zJA|Ksbc~gHGow0F(*RhnU#(AhHyI z0MG&)rY!`37T^GYbRh{rdXO(jpdOvAk-mQr(DMCfLfrLzUf%2N3i0z^PsOG+52$kC zNB6DoLm{Q&^Vgvut9K2!w&O@js4Pb=e+8P}NLJmA4P0LCS25?y!zb>qUS zfHWx1e{~lA-hNc6R05Fn{GlSurEz}+fUgX0khJBP30(UaB`$69|r%KP)@ z1q+VD(aFx?;8l#{6^=D?rJIPKlRV(oaTpyAULL*0@g0seXIr%i&vid{oX4*FP4AnY z?{lv|g&^KKjt*ZQI8z+oy*y}X0K!6j5(207lH^c#rtVyn~o+ntc|Kz*2yb1n^NcV5c0QE!dj@ zJa2!?b?^VC-F|e5@sAk4!MNsNmQT&z5%fQ~+OD!-8?PmNO?ikV3u}MucUW`3MgRT2 z#vCX>>!0;{INi?NUIk$}z|{bcuLsicDq~RT0svezy*-xlwl{bGj0M#}GyqTAZtiSK zZ#e)$fawQ354DWKoZy*G$At4aQ2<}P2kCxb0G17aR1b0tO{H}4=y!3**SY9ROh=NN zTG|vK=?6SlcNoW`NQi$p^1L{j-sdgD3volfcJH^ssLfN!t>zd&(hrOULmL1&i6eO# zU&^gGYPaKy$;IYt*KPf)-TpETm0ghn@WuIaoyNxoU`x0VHF3#)C_VHe0>q8Y*NAV_ zMt{==NY#-DxWkv_aJrSoz=}uV1c1x^F!CQ?yPen1R*JE{_4I*=|0QwTAJdM)it~`xO5&-wLoFuSrrX)rQWD0;@7*+sq8{4rJ z4_PCql*EOVE#PL4$I`Y@BjHfmx(<@3XHN%ldkH{V~%@eAPn(5fa59)vH(7* z=ojH|JP+_lSj7T9smMfV&jUPV!b%oE5mqSB4B+W{Sjm3^)PZH8B$Nev+n&)UVDpDE z3qHNb0wiM~rH!TrfYvo`cy*dkupp{u0XmICsne*PPt#bZ33&@Xy{H?-1Tsn+igF>< z-}cb8e#l$!YxFW^pKHYoa3Zzi?yljwqgNCj;M=t^$2ZN5d!0qUDFC(y5} z?AbHG+irjNgj>y-uVnSlRGARK3QR4~24q^=3IG;P3V4ecU|R?Qk);k{C6sZAN3MAJ9^-UIlIv8(gAIBS=&d`670N{4K&Vs&WEU;+-0mHGS0Rz0* zsX7>M2qoiGbJCsxR2|F#R1CDk(7}Ce;{v8)^a0Yt8Gv<= z1z^R;ix~U8G<%hWNR9c9!S6L7;14n?h#Trhug-X*+g&G(8o)Hd0uAVNvP!vyr4-QP zAPawBwE58I0YhCE_%6ocr~&+UrU+oZZCL~`DKWpZbt|6-bUOSMkTGDzu?|WB$OIU8 zK_~#`Enpp#xS$FPEBnlXWSa*lKT9l-V++cvHplh?K$KKK9uURqwLm?zGO2?MU>1WF z(rBABW&n<3EMP^NRhn}z+?kkh9=;H8n;L)j21@bvK+9SH=Y;~iF#pL=N&vGMbTYy@ z2PWKmF&HcXxUOy}^*Sx!#r$PXSpXC64el)msFsGU2)IoT-Uk2^vc}-luj;ZS$2{nIz z_VF@+bv?P2h0(Qi$Gw{W+XBGT4B%-M;OR1euu{Oxg>?WK3#@BvT9A)HDPU0yO0$sc z6kur<-n$OoyAnTuhiPs3zyPIDUn2i!7fyxfpP%-HI2R4|^{F^-_zfZWr%&|^_LylD z0B8N6-#G0D0gmScGy+_OU4XyjG-!VSp$0(_;Gg3Dedyw-0X_lv_zis;a0bGGUk(UF zUo Date: Sat, 14 Jan 2023 21:05:10 -0500 Subject: [PATCH 47/69] Update INSTALL.md Clarify that WSL is also available on Windows 11 --- INSTALL.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/INSTALL.md b/INSTALL.md index 5f2a1f05f..01fbd5cee 100644 --- a/INSTALL.md +++ b/INSTALL.md @@ -9,7 +9,7 @@ If you run into trouble, ask for help on Discord or IRC (see [README.md](README. ## Windows Windows has instructions for building with three possible terminals, providing 3 different options in case the user stumbles upon unexpected errors. -- [Windows 10 (WSL1)](#windows-10-wsl1) (**Fastest, highly recommended**, Windows 10 only) +- [Windows 10/11 (WSL1)](#windows-1011-wsl1) (**Fastest, highly recommended**, Windows 10 and 11 only) - [Windows (msys2)](#windows-msys2) (Second fastest) - [Windows (Cygwin)](#windows-cygwin) (Slowest) @@ -26,7 +26,7 @@ All of the Windows instructions assume that the default drive is C:\\. If this d **A note of caution**: As Windows 7 is officially unsupported by Microsoft and Windows 8 has very little usage, some maintainers are unwilling to maintain the Windows 7/8 instructions. Thus, these instructions may break in the future with fixes taking longer than fixes to the Windows 10 instructions. -## Windows 10 (WSL1) +## Windows 10/11 (WSL1) WSL1 is the preferred terminal to build **pokeemerald**. The following instructions will explain how to install WSL1 (referred to interchangeably as WSL). - If WSL (Debian or Ubuntu) is **not installed**, then go to [Installing WSL1](#Installing-WSL1). - Otherwise, if WSL is installed, but it **hasn't previously been set up for another decompilation project**, then go to [Setting up WSL1](#Setting-up-WSL1). From 70d59d6aa93a3a84e7d17e12fd392f00c3a37bce Mon Sep 17 00:00:00 2001 From: Eduardo Quezada Date: Sun, 15 Jan 2023 02:15:11 -0300 Subject: [PATCH 48/69] Improve Easy Chat documentation --- include/constants/easy_chat.h | 2037 +++++++++-------- src/data/easy_chat/easy_chat_group_actions.h | 78 + .../easy_chat/easy_chat_group_adjectives.h | 36 + src/data/easy_chat/easy_chat_group_battle.h | 63 + .../easy_chat/easy_chat_group_conditions.h | 69 + src/data/easy_chat/easy_chat_group_endings.h | 69 + src/data/easy_chat/easy_chat_group_events.h | 29 + src/data/easy_chat/easy_chat_group_feelings.h | 69 + .../easy_chat/easy_chat_group_greetings.h | 42 + src/data/easy_chat/easy_chat_group_hobbies.h | 54 + .../easy_chat/easy_chat_group_lifestyle.h | 45 + src/data/easy_chat/easy_chat_group_misc.h | 42 + src/data/easy_chat/easy_chat_group_people.h | 79 +- src/data/easy_chat/easy_chat_group_speech.h | 60 + src/data/easy_chat/easy_chat_group_status.h | 109 + src/data/easy_chat/easy_chat_group_time.h | 45 + src/data/easy_chat/easy_chat_group_trainer.h | 27 + .../easy_chat/easy_chat_group_trendy_saying.h | 33 + src/data/easy_chat/easy_chat_group_voices.h | 63 + src/data/easy_chat/easy_chat_groups.h | 22 + 20 files changed, 2053 insertions(+), 1018 deletions(-) diff --git a/include/constants/easy_chat.h b/include/constants/easy_chat.h index f98cedbb7..b5875b881 100644 --- a/include/constants/easy_chat.h +++ b/include/constants/easy_chat.h @@ -53,1048 +53,1048 @@ #define EC_NUM_GROUPS 22 // TRAINER -#define EC_WORD_I_CHOOSE_YOU (EC_GROUP_TRAINER << 9) | 0x0 -#define EC_WORD_GOTCHA (EC_GROUP_TRAINER << 9) | 0x1 -#define EC_WORD_TRADE (EC_GROUP_TRAINER << 9) | 0x2 -#define EC_WORD_SAPPHIRE (EC_GROUP_TRAINER << 9) | 0x3 -#define EC_WORD_EVOLVE (EC_GROUP_TRAINER << 9) | 0x4 -#define EC_WORD_ENCYCLOPEDIA (EC_GROUP_TRAINER << 9) | 0x5 -#define EC_WORD_NATURE (EC_GROUP_TRAINER << 9) | 0x6 -#define EC_WORD_CENTER (EC_GROUP_TRAINER << 9) | 0x7 -#define EC_WORD_EGG (EC_GROUP_TRAINER << 9) | 0x8 -#define EC_WORD_LINK (EC_GROUP_TRAINER << 9) | 0x9 -#define EC_WORD_SP_ABILITY (EC_GROUP_TRAINER << 9) | 0xa -#define EC_WORD_TRAINER (EC_GROUP_TRAINER << 9) | 0xb -#define EC_WORD_VERSION (EC_GROUP_TRAINER << 9) | 0xc -#define EC_WORD_POKENAV (EC_GROUP_TRAINER << 9) | 0xd -#define EC_WORD_POKEMON (EC_GROUP_TRAINER << 9) | 0xe -#define EC_WORD_GET (EC_GROUP_TRAINER << 9) | 0xf -#define EC_WORD_POKEDEX (EC_GROUP_TRAINER << 9) | 0x10 -#define EC_WORD_RUBY (EC_GROUP_TRAINER << 9) | 0x11 -#define EC_WORD_LEVEL (EC_GROUP_TRAINER << 9) | 0x12 -#define EC_WORD_RED (EC_GROUP_TRAINER << 9) | 0x13 -#define EC_WORD_GREEN (EC_GROUP_TRAINER << 9) | 0x14 -#define EC_WORD_BAG (EC_GROUP_TRAINER << 9) | 0x15 -#define EC_WORD_FLAME (EC_GROUP_TRAINER << 9) | 0x16 -#define EC_WORD_GOLD (EC_GROUP_TRAINER << 9) | 0x17 -#define EC_WORD_LEAF (EC_GROUP_TRAINER << 9) | 0x18 -#define EC_WORD_SILVER (EC_GROUP_TRAINER << 9) | 0x19 -#define EC_WORD_EMERALD (EC_GROUP_TRAINER << 9) | 0x1a +#define EC_WORD_I_CHOOSE_YOU ((EC_GROUP_TRAINER << EC_MASK_BITS) | 0) +#define EC_WORD_GOTCHA ((EC_GROUP_TRAINER << EC_MASK_BITS) | 1) +#define EC_WORD_TRADE ((EC_GROUP_TRAINER << EC_MASK_BITS) | 2) +#define EC_WORD_SAPPHIRE ((EC_GROUP_TRAINER << EC_MASK_BITS) | 3) +#define EC_WORD_EVOLVE ((EC_GROUP_TRAINER << EC_MASK_BITS) | 4) +#define EC_WORD_ENCYCLOPEDIA ((EC_GROUP_TRAINER << EC_MASK_BITS) | 5) +#define EC_WORD_NATURE ((EC_GROUP_TRAINER << EC_MASK_BITS) | 6) +#define EC_WORD_CENTER ((EC_GROUP_TRAINER << EC_MASK_BITS) | 7) +#define EC_WORD_EGG ((EC_GROUP_TRAINER << EC_MASK_BITS) | 8) +#define EC_WORD_LINK ((EC_GROUP_TRAINER << EC_MASK_BITS) | 9) +#define EC_WORD_SP_ABILITY ((EC_GROUP_TRAINER << EC_MASK_BITS) | 10) +#define EC_WORD_TRAINER ((EC_GROUP_TRAINER << EC_MASK_BITS) | 11) +#define EC_WORD_VERSION ((EC_GROUP_TRAINER << EC_MASK_BITS) | 12) +#define EC_WORD_POKENAV ((EC_GROUP_TRAINER << EC_MASK_BITS) | 13) +#define EC_WORD_POKEMON ((EC_GROUP_TRAINER << EC_MASK_BITS) | 14) +#define EC_WORD_GET ((EC_GROUP_TRAINER << EC_MASK_BITS) | 15) +#define EC_WORD_POKEDEX ((EC_GROUP_TRAINER << EC_MASK_BITS) | 16) +#define EC_WORD_RUBY ((EC_GROUP_TRAINER << EC_MASK_BITS) | 17) +#define EC_WORD_LEVEL ((EC_GROUP_TRAINER << EC_MASK_BITS) | 18) +#define EC_WORD_RED ((EC_GROUP_TRAINER << EC_MASK_BITS) | 19) +#define EC_WORD_GREEN ((EC_GROUP_TRAINER << EC_MASK_BITS) | 20) +#define EC_WORD_BAG ((EC_GROUP_TRAINER << EC_MASK_BITS) | 21) +#define EC_WORD_FLAME ((EC_GROUP_TRAINER << EC_MASK_BITS) | 22) +#define EC_WORD_GOLD ((EC_GROUP_TRAINER << EC_MASK_BITS) | 23) +#define EC_WORD_LEAF ((EC_GROUP_TRAINER << EC_MASK_BITS) | 24) +#define EC_WORD_SILVER ((EC_GROUP_TRAINER << EC_MASK_BITS) | 25) +#define EC_WORD_EMERALD ((EC_GROUP_TRAINER << EC_MASK_BITS) | 26) // STATUS -#define EC_WORD_DARK (EC_GROUP_STATUS << 9) | 0x0 -#define EC_WORD_STENCH (EC_GROUP_STATUS << 9) | 0x1 -#define EC_WORD_THICK_FAT (EC_GROUP_STATUS << 9) | 0x2 -#define EC_WORD_RAIN_DISH (EC_GROUP_STATUS << 9) | 0x3 -#define EC_WORD_DRIZZLE (EC_GROUP_STATUS << 9) | 0x4 -#define EC_WORD_ARENA_TRAP (EC_GROUP_STATUS << 9) | 0x5 -#define EC_WORD_INTIMIDATE (EC_GROUP_STATUS << 9) | 0x6 -#define EC_WORD_ROCK_HEAD (EC_GROUP_STATUS << 9) | 0x7 -#define EC_WORD_COLOR (EC_GROUP_STATUS << 9) | 0x8 -#define EC_WORD_ALT_COLOR (EC_GROUP_STATUS << 9) | 0x9 -#define EC_WORD_ROCK (EC_GROUP_STATUS << 9) | 0xa -#define EC_WORD_BEAUTIFUL (EC_GROUP_STATUS << 9) | 0xb -#define EC_WORD_BEAUTY (EC_GROUP_STATUS << 9) | 0xc -#define EC_WORD_AIR_LOCK (EC_GROUP_STATUS << 9) | 0xd -#define EC_WORD_PSYCHIC (EC_GROUP_STATUS << 9) | 0xe -#define EC_WORD_HYPER_CUTTER (EC_GROUP_STATUS << 9) | 0xf -#define EC_WORD_FIGHTING (EC_GROUP_STATUS << 9) | 0x10 -#define EC_WORD_SHADOW_TAG (EC_GROUP_STATUS << 9) | 0x11 -#define EC_WORD_SMART (EC_GROUP_STATUS << 9) | 0x12 -#define EC_WORD_SMARTNESS (EC_GROUP_STATUS << 9) | 0x13 -#define EC_WORD_SPEED_BOOST (EC_GROUP_STATUS << 9) | 0x14 -#define EC_WORD_COOL (EC_GROUP_STATUS << 9) | 0x15 -#define EC_WORD_COOLNESS (EC_GROUP_STATUS << 9) | 0x16 -#define EC_WORD_BATTLE_ARMOR (EC_GROUP_STATUS << 9) | 0x17 -#define EC_WORD_CUTE (EC_GROUP_STATUS << 9) | 0x18 -#define EC_WORD_CUTENESS (EC_GROUP_STATUS << 9) | 0x19 -#define EC_WORD_STURDY (EC_GROUP_STATUS << 9) | 0x1a -#define EC_WORD_SUCTION_CUPS (EC_GROUP_STATUS << 9) | 0x1b -#define EC_WORD_GRASS (EC_GROUP_STATUS << 9) | 0x1c -#define EC_WORD_CLEAR_BODY (EC_GROUP_STATUS << 9) | 0x1d -#define EC_WORD_TORRENT (EC_GROUP_STATUS << 9) | 0x1e -#define EC_WORD_GHOST (EC_GROUP_STATUS << 9) | 0x1f -#define EC_WORD_ICE (EC_GROUP_STATUS << 9) | 0x20 -#define EC_WORD_GUTS (EC_GROUP_STATUS << 9) | 0x21 -#define EC_WORD_ROUGH_SKIN (EC_GROUP_STATUS << 9) | 0x22 -#define EC_WORD_SHELL_ARMOR (EC_GROUP_STATUS << 9) | 0x23 -#define EC_WORD_NATURAL_CURE (EC_GROUP_STATUS << 9) | 0x24 -#define EC_WORD_DAMP (EC_GROUP_STATUS << 9) | 0x25 -#define EC_WORD_GROUND (EC_GROUP_STATUS << 9) | 0x26 -#define EC_WORD_LIMBER (EC_GROUP_STATUS << 9) | 0x27 -#define EC_WORD_MAGNET_PULL (EC_GROUP_STATUS << 9) | 0x28 -#define EC_WORD_WHITE_SMOKE (EC_GROUP_STATUS << 9) | 0x29 -#define EC_WORD_SYNCHRONIZE (EC_GROUP_STATUS << 9) | 0x2a -#define EC_WORD_OVERGROW (EC_GROUP_STATUS << 9) | 0x2b -#define EC_WORD_SWIFT_SWIM (EC_GROUP_STATUS << 9) | 0x2c -#define EC_WORD_SAND_STREAM (EC_GROUP_STATUS << 9) | 0x2d -#define EC_WORD_SAND_VEIL (EC_GROUP_STATUS << 9) | 0x2e -#define EC_WORD_KEEN_EYE (EC_GROUP_STATUS << 9) | 0x2f -#define EC_WORD_INNER_FOCUS (EC_GROUP_STATUS << 9) | 0x30 -#define EC_WORD_STATIC (EC_GROUP_STATUS << 9) | 0x31 -#define EC_WORD_TYPE (EC_GROUP_STATUS << 9) | 0x32 -#define EC_WORD_TOUGH (EC_GROUP_STATUS << 9) | 0x33 -#define EC_WORD_TOUGHNESS (EC_GROUP_STATUS << 9) | 0x34 -#define EC_WORD_SHED_SKIN (EC_GROUP_STATUS << 9) | 0x35 -#define EC_WORD_HUGE_POWER (EC_GROUP_STATUS << 9) | 0x36 -#define EC_WORD_VOLT_ABSORB (EC_GROUP_STATUS << 9) | 0x37 -#define EC_WORD_WATER_ABSORB (EC_GROUP_STATUS << 9) | 0x38 -#define EC_WORD_ELECTRIC (EC_GROUP_STATUS << 9) | 0x39 -#define EC_WORD_FORECAST (EC_GROUP_STATUS << 9) | 0x3a -#define EC_WORD_SERENE_GRACE (EC_GROUP_STATUS << 9) | 0x3b -#define EC_WORD_POISON (EC_GROUP_STATUS << 9) | 0x3c -#define EC_WORD_POISON_POINT (EC_GROUP_STATUS << 9) | 0x3d -#define EC_WORD_DRAGON (EC_GROUP_STATUS << 9) | 0x3e -#define EC_WORD_TRACE (EC_GROUP_STATUS << 9) | 0x3f -#define EC_WORD_OBLIVIOUS (EC_GROUP_STATUS << 9) | 0x40 -#define EC_WORD_TRUANT (EC_GROUP_STATUS << 9) | 0x41 -#define EC_WORD_RUN_AWAY (EC_GROUP_STATUS << 9) | 0x42 -#define EC_WORD_STICKY_HOLD (EC_GROUP_STATUS << 9) | 0x43 -#define EC_WORD_CLOUD_NINE (EC_GROUP_STATUS << 9) | 0x44 -#define EC_WORD_NORMAL (EC_GROUP_STATUS << 9) | 0x45 -#define EC_WORD_STEEL (EC_GROUP_STATUS << 9) | 0x46 -#define EC_WORD_ILLUMINATE (EC_GROUP_STATUS << 9) | 0x47 -#define EC_WORD_EARLY_BIRD (EC_GROUP_STATUS << 9) | 0x48 -#define EC_WORD_HUSTLE (EC_GROUP_STATUS << 9) | 0x49 -#define EC_WORD_SHINE (EC_GROUP_STATUS << 9) | 0x4a -#define EC_WORD_FLYING (EC_GROUP_STATUS << 9) | 0x4b -#define EC_WORD_DROUGHT (EC_GROUP_STATUS << 9) | 0x4c -#define EC_WORD_LIGHTNINGROD (EC_GROUP_STATUS << 9) | 0x4d -#define EC_WORD_COMPOUNDEYES (EC_GROUP_STATUS << 9) | 0x4e -#define EC_WORD_MARVEL_SCALE (EC_GROUP_STATUS << 9) | 0x4f -#define EC_WORD_WONDER_GUARD (EC_GROUP_STATUS << 9) | 0x50 -#define EC_WORD_INSOMNIA (EC_GROUP_STATUS << 9) | 0x51 -#define EC_WORD_LEVITATE (EC_GROUP_STATUS << 9) | 0x52 -#define EC_WORD_PLUS (EC_GROUP_STATUS << 9) | 0x53 -#define EC_WORD_PRESSURE (EC_GROUP_STATUS << 9) | 0x54 -#define EC_WORD_LIQUID_OOZE (EC_GROUP_STATUS << 9) | 0x55 -#define EC_WORD_COLOR_CHANGE (EC_GROUP_STATUS << 9) | 0x56 -#define EC_WORD_SOUNDPROOF (EC_GROUP_STATUS << 9) | 0x57 -#define EC_WORD_EFFECT_SPORE (EC_GROUP_STATUS << 9) | 0x58 -#define EC_WORD_PKRS (EC_GROUP_STATUS << 9) | 0x59 -#define EC_WORD_FIRE (EC_GROUP_STATUS << 9) | 0x5a -#define EC_WORD_FLAME_BODY (EC_GROUP_STATUS << 9) | 0x5b -#define EC_WORD_MINUS (EC_GROUP_STATUS << 9) | 0x5c -#define EC_WORD_OWN_TEMPO (EC_GROUP_STATUS << 9) | 0x5d -#define EC_WORD_MAGMA_ARMOR (EC_GROUP_STATUS << 9) | 0x5e -#define EC_WORD_WATER (EC_GROUP_STATUS << 9) | 0x5f -#define EC_WORD_WATER_VEIL (EC_GROUP_STATUS << 9) | 0x60 -#define EC_WORD_BUG (EC_GROUP_STATUS << 9) | 0x61 -#define EC_WORD_SWARM (EC_GROUP_STATUS << 9) | 0x62 -#define EC_WORD_CUTE_CHARM (EC_GROUP_STATUS << 9) | 0x63 -#define EC_WORD_IMMUNITY (EC_GROUP_STATUS << 9) | 0x64 -#define EC_WORD_BLAZE (EC_GROUP_STATUS << 9) | 0x65 -#define EC_WORD_PICKUP (EC_GROUP_STATUS << 9) | 0x66 -#define EC_WORD_PATTERN (EC_GROUP_STATUS << 9) | 0x67 -#define EC_WORD_FLASH_FIRE (EC_GROUP_STATUS << 9) | 0x68 -#define EC_WORD_VITAL_SPIRIT (EC_GROUP_STATUS << 9) | 0x69 -#define EC_WORD_CHLOROPHYLL (EC_GROUP_STATUS << 9) | 0x6a -#define EC_WORD_PURE_POWER (EC_GROUP_STATUS << 9) | 0x6b -#define EC_WORD_SHIELD_DUST (EC_GROUP_STATUS << 9) | 0x6c +#define EC_WORD_DARK ((EC_GROUP_STATUS << EC_MASK_BITS) | 0) +#define EC_WORD_STENCH ((EC_GROUP_STATUS << EC_MASK_BITS) | 1) +#define EC_WORD_THICK_FAT ((EC_GROUP_STATUS << EC_MASK_BITS) | 2) +#define EC_WORD_RAIN_DISH ((EC_GROUP_STATUS << EC_MASK_BITS) | 3) +#define EC_WORD_DRIZZLE ((EC_GROUP_STATUS << EC_MASK_BITS) | 4) +#define EC_WORD_ARENA_TRAP ((EC_GROUP_STATUS << EC_MASK_BITS) | 5) +#define EC_WORD_INTIMIDATE ((EC_GROUP_STATUS << EC_MASK_BITS) | 6) +#define EC_WORD_ROCK_HEAD ((EC_GROUP_STATUS << EC_MASK_BITS) | 7) +#define EC_WORD_COLOR ((EC_GROUP_STATUS << EC_MASK_BITS) | 8) +#define EC_WORD_ALT_COLOR ((EC_GROUP_STATUS << EC_MASK_BITS) | 9) +#define EC_WORD_ROCK ((EC_GROUP_STATUS << EC_MASK_BITS) | 10) +#define EC_WORD_BEAUTIFUL ((EC_GROUP_STATUS << EC_MASK_BITS) | 11) +#define EC_WORD_BEAUTY ((EC_GROUP_STATUS << EC_MASK_BITS) | 12) +#define EC_WORD_AIR_LOCK ((EC_GROUP_STATUS << EC_MASK_BITS) | 13) +#define EC_WORD_PSYCHIC ((EC_GROUP_STATUS << EC_MASK_BITS) | 14) +#define EC_WORD_HYPER_CUTTER ((EC_GROUP_STATUS << EC_MASK_BITS) | 15) +#define EC_WORD_FIGHTING ((EC_GROUP_STATUS << EC_MASK_BITS) | 16) +#define EC_WORD_SHADOW_TAG ((EC_GROUP_STATUS << EC_MASK_BITS) | 17) +#define EC_WORD_SMART ((EC_GROUP_STATUS << EC_MASK_BITS) | 18) +#define EC_WORD_SMARTNESS ((EC_GROUP_STATUS << EC_MASK_BITS) | 19) +#define EC_WORD_SPEED_BOOST ((EC_GROUP_STATUS << EC_MASK_BITS) | 20) +#define EC_WORD_COOL ((EC_GROUP_STATUS << EC_MASK_BITS) | 21) +#define EC_WORD_COOLNESS ((EC_GROUP_STATUS << EC_MASK_BITS) | 22) +#define EC_WORD_BATTLE_ARMOR ((EC_GROUP_STATUS << EC_MASK_BITS) | 23) +#define EC_WORD_CUTE ((EC_GROUP_STATUS << EC_MASK_BITS) | 24) +#define EC_WORD_CUTENESS ((EC_GROUP_STATUS << EC_MASK_BITS) | 25) +#define EC_WORD_STURDY ((EC_GROUP_STATUS << EC_MASK_BITS) | 26) +#define EC_WORD_SUCTION_CUPS ((EC_GROUP_STATUS << EC_MASK_BITS) | 27) +#define EC_WORD_GRASS ((EC_GROUP_STATUS << EC_MASK_BITS) | 28) +#define EC_WORD_CLEAR_BODY ((EC_GROUP_STATUS << EC_MASK_BITS) | 29) +#define EC_WORD_TORRENT ((EC_GROUP_STATUS << EC_MASK_BITS) | 30) +#define EC_WORD_GHOST ((EC_GROUP_STATUS << EC_MASK_BITS) | 31) +#define EC_WORD_ICE ((EC_GROUP_STATUS << EC_MASK_BITS) | 32) +#define EC_WORD_GUTS ((EC_GROUP_STATUS << EC_MASK_BITS) | 33) +#define EC_WORD_ROUGH_SKIN ((EC_GROUP_STATUS << EC_MASK_BITS) | 34) +#define EC_WORD_SHELL_ARMOR ((EC_GROUP_STATUS << EC_MASK_BITS) | 35) +#define EC_WORD_NATURAL_CURE ((EC_GROUP_STATUS << EC_MASK_BITS) | 36) +#define EC_WORD_DAMP ((EC_GROUP_STATUS << EC_MASK_BITS) | 37) +#define EC_WORD_GROUND ((EC_GROUP_STATUS << EC_MASK_BITS) | 38) +#define EC_WORD_LIMBER ((EC_GROUP_STATUS << EC_MASK_BITS) | 39) +#define EC_WORD_MAGNET_PULL ((EC_GROUP_STATUS << EC_MASK_BITS) | 40) +#define EC_WORD_WHITE_SMOKE ((EC_GROUP_STATUS << EC_MASK_BITS) | 41) +#define EC_WORD_SYNCHRONIZE ((EC_GROUP_STATUS << EC_MASK_BITS) | 42) +#define EC_WORD_OVERGROW ((EC_GROUP_STATUS << EC_MASK_BITS) | 43) +#define EC_WORD_SWIFT_SWIM ((EC_GROUP_STATUS << EC_MASK_BITS) | 44) +#define EC_WORD_SAND_STREAM ((EC_GROUP_STATUS << EC_MASK_BITS) | 45) +#define EC_WORD_SAND_VEIL ((EC_GROUP_STATUS << EC_MASK_BITS) | 46) +#define EC_WORD_KEEN_EYE ((EC_GROUP_STATUS << EC_MASK_BITS) | 47) +#define EC_WORD_INNER_FOCUS ((EC_GROUP_STATUS << EC_MASK_BITS) | 48) +#define EC_WORD_STATIC ((EC_GROUP_STATUS << EC_MASK_BITS) | 49) +#define EC_WORD_TYPE ((EC_GROUP_STATUS << EC_MASK_BITS) | 50) +#define EC_WORD_TOUGH ((EC_GROUP_STATUS << EC_MASK_BITS) | 51) +#define EC_WORD_TOUGHNESS ((EC_GROUP_STATUS << EC_MASK_BITS) | 52) +#define EC_WORD_SHED_SKIN ((EC_GROUP_STATUS << EC_MASK_BITS) | 53) +#define EC_WORD_HUGE_POWER ((EC_GROUP_STATUS << EC_MASK_BITS) | 54) +#define EC_WORD_VOLT_ABSORB ((EC_GROUP_STATUS << EC_MASK_BITS) | 55) +#define EC_WORD_WATER_ABSORB ((EC_GROUP_STATUS << EC_MASK_BITS) | 56) +#define EC_WORD_ELECTRIC ((EC_GROUP_STATUS << EC_MASK_BITS) | 57) +#define EC_WORD_FORECAST ((EC_GROUP_STATUS << EC_MASK_BITS) | 58) +#define EC_WORD_SERENE_GRACE ((EC_GROUP_STATUS << EC_MASK_BITS) | 59) +#define EC_WORD_POISON ((EC_GROUP_STATUS << EC_MASK_BITS) | 60) +#define EC_WORD_POISON_POINT ((EC_GROUP_STATUS << EC_MASK_BITS) | 61) +#define EC_WORD_DRAGON ((EC_GROUP_STATUS << EC_MASK_BITS) | 62) +#define EC_WORD_TRACE ((EC_GROUP_STATUS << EC_MASK_BITS) | 63) +#define EC_WORD_OBLIVIOUS ((EC_GROUP_STATUS << EC_MASK_BITS) | 64) +#define EC_WORD_TRUANT ((EC_GROUP_STATUS << EC_MASK_BITS) | 65) +#define EC_WORD_RUN_AWAY ((EC_GROUP_STATUS << EC_MASK_BITS) | 66) +#define EC_WORD_STICKY_HOLD ((EC_GROUP_STATUS << EC_MASK_BITS) | 67) +#define EC_WORD_CLOUD_NINE ((EC_GROUP_STATUS << EC_MASK_BITS) | 68) +#define EC_WORD_NORMAL ((EC_GROUP_STATUS << EC_MASK_BITS) | 69) +#define EC_WORD_STEEL ((EC_GROUP_STATUS << EC_MASK_BITS) | 70) +#define EC_WORD_ILLUMINATE ((EC_GROUP_STATUS << EC_MASK_BITS) | 71) +#define EC_WORD_EARLY_BIRD ((EC_GROUP_STATUS << EC_MASK_BITS) | 72) +#define EC_WORD_HUSTLE ((EC_GROUP_STATUS << EC_MASK_BITS) | 73) +#define EC_WORD_SHINE ((EC_GROUP_STATUS << EC_MASK_BITS) | 74) +#define EC_WORD_FLYING ((EC_GROUP_STATUS << EC_MASK_BITS) | 75) +#define EC_WORD_DROUGHT ((EC_GROUP_STATUS << EC_MASK_BITS) | 76) +#define EC_WORD_LIGHTNINGROD ((EC_GROUP_STATUS << EC_MASK_BITS) | 77) +#define EC_WORD_COMPOUNDEYES ((EC_GROUP_STATUS << EC_MASK_BITS) | 78) +#define EC_WORD_MARVEL_SCALE ((EC_GROUP_STATUS << EC_MASK_BITS) | 79) +#define EC_WORD_WONDER_GUARD ((EC_GROUP_STATUS << EC_MASK_BITS) | 80) +#define EC_WORD_INSOMNIA ((EC_GROUP_STATUS << EC_MASK_BITS) | 81) +#define EC_WORD_LEVITATE ((EC_GROUP_STATUS << EC_MASK_BITS) | 82) +#define EC_WORD_PLUS ((EC_GROUP_STATUS << EC_MASK_BITS) | 83) +#define EC_WORD_PRESSURE ((EC_GROUP_STATUS << EC_MASK_BITS) | 84) +#define EC_WORD_LIQUID_OOZE ((EC_GROUP_STATUS << EC_MASK_BITS) | 85) +#define EC_WORD_COLOR_CHANGE ((EC_GROUP_STATUS << EC_MASK_BITS) | 86) +#define EC_WORD_SOUNDPROOF ((EC_GROUP_STATUS << EC_MASK_BITS) | 87) +#define EC_WORD_EFFECT_SPORE ((EC_GROUP_STATUS << EC_MASK_BITS) | 88) +#define EC_WORD_PKRS ((EC_GROUP_STATUS << EC_MASK_BITS) | 89) +#define EC_WORD_FIRE ((EC_GROUP_STATUS << EC_MASK_BITS) | 90) +#define EC_WORD_FLAME_BODY ((EC_GROUP_STATUS << EC_MASK_BITS) | 91) +#define EC_WORD_MINUS ((EC_GROUP_STATUS << EC_MASK_BITS) | 92) +#define EC_WORD_OWN_TEMPO ((EC_GROUP_STATUS << EC_MASK_BITS) | 93) +#define EC_WORD_MAGMA_ARMOR ((EC_GROUP_STATUS << EC_MASK_BITS) | 94) +#define EC_WORD_WATER ((EC_GROUP_STATUS << EC_MASK_BITS) | 95) +#define EC_WORD_WATER_VEIL ((EC_GROUP_STATUS << EC_MASK_BITS) | 96) +#define EC_WORD_BUG ((EC_GROUP_STATUS << EC_MASK_BITS) | 97) +#define EC_WORD_SWARM ((EC_GROUP_STATUS << EC_MASK_BITS) | 98) +#define EC_WORD_CUTE_CHARM ((EC_GROUP_STATUS << EC_MASK_BITS) | 99) +#define EC_WORD_IMMUNITY ((EC_GROUP_STATUS << EC_MASK_BITS) | 100) +#define EC_WORD_BLAZE ((EC_GROUP_STATUS << EC_MASK_BITS) | 101) +#define EC_WORD_PICKUP ((EC_GROUP_STATUS << EC_MASK_BITS) | 102) +#define EC_WORD_PATTERN ((EC_GROUP_STATUS << EC_MASK_BITS) | 103) +#define EC_WORD_FLASH_FIRE ((EC_GROUP_STATUS << EC_MASK_BITS) | 104) +#define EC_WORD_VITAL_SPIRIT ((EC_GROUP_STATUS << EC_MASK_BITS) | 105) +#define EC_WORD_CHLOROPHYLL ((EC_GROUP_STATUS << EC_MASK_BITS) | 106) +#define EC_WORD_PURE_POWER ((EC_GROUP_STATUS << EC_MASK_BITS) | 107) +#define EC_WORD_SHIELD_DUST ((EC_GROUP_STATUS << EC_MASK_BITS) | 108) // BATTLE -#define EC_WORD_MATCH_UP (EC_GROUP_BATTLE << 9) | 0x0 -#define EC_WORD_GO (EC_GROUP_BATTLE << 9) | 0x1 -#define EC_WORD_NO_1 (EC_GROUP_BATTLE << 9) | 0x2 -#define EC_WORD_DECIDE (EC_GROUP_BATTLE << 9) | 0x3 -#define EC_WORD_LET_ME_WIN (EC_GROUP_BATTLE << 9) | 0x4 -#define EC_WORD_WINS (EC_GROUP_BATTLE << 9) | 0x5 -#define EC_WORD_WIN (EC_GROUP_BATTLE << 9) | 0x6 -#define EC_WORD_WON (EC_GROUP_BATTLE << 9) | 0x7 -#define EC_WORD_IF_I_WIN (EC_GROUP_BATTLE << 9) | 0x8 -#define EC_WORD_WHEN_I_WIN (EC_GROUP_BATTLE << 9) | 0x9 -#define EC_WORD_CAN_T_WIN (EC_GROUP_BATTLE << 9) | 0xa -#define EC_WORD_CAN_WIN (EC_GROUP_BATTLE << 9) | 0xb -#define EC_WORD_NO_MATCH (EC_GROUP_BATTLE << 9) | 0xc -#define EC_WORD_SPIRIT (EC_GROUP_BATTLE << 9) | 0xd -#define EC_WORD_DECIDED (EC_GROUP_BATTLE << 9) | 0xe -#define EC_WORD_TRUMP_CARD (EC_GROUP_BATTLE << 9) | 0xf -#define EC_WORD_TAKE_THAT (EC_GROUP_BATTLE << 9) | 0x10 -#define EC_WORD_COME_ON (EC_GROUP_BATTLE << 9) | 0x11 -#define EC_WORD_ATTACK (EC_GROUP_BATTLE << 9) | 0x12 -#define EC_WORD_SURRENDER (EC_GROUP_BATTLE << 9) | 0x13 -#define EC_WORD_GUTSY (EC_GROUP_BATTLE << 9) | 0x14 -#define EC_WORD_TALENT (EC_GROUP_BATTLE << 9) | 0x15 -#define EC_WORD_STRATEGY (EC_GROUP_BATTLE << 9) | 0x16 -#define EC_WORD_SMITE (EC_GROUP_BATTLE << 9) | 0x17 -#define EC_WORD_MATCH (EC_GROUP_BATTLE << 9) | 0x18 -#define EC_WORD_VICTORY (EC_GROUP_BATTLE << 9) | 0x19 -#define EC_WORD_OFFENSIVE (EC_GROUP_BATTLE << 9) | 0x1a -#define EC_WORD_SENSE (EC_GROUP_BATTLE << 9) | 0x1b -#define EC_WORD_VERSUS (EC_GROUP_BATTLE << 9) | 0x1c -#define EC_WORD_FIGHTS (EC_GROUP_BATTLE << 9) | 0x1d -#define EC_WORD_POWER (EC_GROUP_BATTLE << 9) | 0x1e -#define EC_WORD_CHALLENGE (EC_GROUP_BATTLE << 9) | 0x1f -#define EC_WORD_STRONG (EC_GROUP_BATTLE << 9) | 0x20 -#define EC_WORD_TOO_STRONG (EC_GROUP_BATTLE << 9) | 0x21 -#define EC_WORD_GO_EASY (EC_GROUP_BATTLE << 9) | 0x22 -#define EC_WORD_FOE (EC_GROUP_BATTLE << 9) | 0x23 -#define EC_WORD_GENIUS (EC_GROUP_BATTLE << 9) | 0x24 -#define EC_WORD_LEGEND (EC_GROUP_BATTLE << 9) | 0x25 -#define EC_WORD_ESCAPE (EC_GROUP_BATTLE << 9) | 0x26 -#define EC_WORD_AIM (EC_GROUP_BATTLE << 9) | 0x27 -#define EC_WORD_BATTLE (EC_GROUP_BATTLE << 9) | 0x28 -#define EC_WORD_FIGHT (EC_GROUP_BATTLE << 9) | 0x29 -#define EC_WORD_RESUSCITATE (EC_GROUP_BATTLE << 9) | 0x2a -#define EC_WORD_POINTS (EC_GROUP_BATTLE << 9) | 0x2b -#define EC_WORD_SERIOUS (EC_GROUP_BATTLE << 9) | 0x2c -#define EC_WORD_GIVE_UP (EC_GROUP_BATTLE << 9) | 0x2d -#define EC_WORD_LOSS (EC_GROUP_BATTLE << 9) | 0x2e -#define EC_WORD_IF_I_LOSE (EC_GROUP_BATTLE << 9) | 0x2f -#define EC_WORD_LOST (EC_GROUP_BATTLE << 9) | 0x30 -#define EC_WORD_LOSE (EC_GROUP_BATTLE << 9) | 0x31 -#define EC_WORD_GUARD (EC_GROUP_BATTLE << 9) | 0x32 -#define EC_WORD_PARTNER (EC_GROUP_BATTLE << 9) | 0x33 -#define EC_WORD_REJECT (EC_GROUP_BATTLE << 9) | 0x34 -#define EC_WORD_ACCEPT (EC_GROUP_BATTLE << 9) | 0x35 -#define EC_WORD_INVINCIBLE (EC_GROUP_BATTLE << 9) | 0x36 -#define EC_WORD_RECEIVED (EC_GROUP_BATTLE << 9) | 0x37 -#define EC_WORD_EASY (EC_GROUP_BATTLE << 9) | 0x38 -#define EC_WORD_WEAK (EC_GROUP_BATTLE << 9) | 0x39 -#define EC_WORD_TOO_WEAK (EC_GROUP_BATTLE << 9) | 0x3a -#define EC_WORD_PUSHOVER (EC_GROUP_BATTLE << 9) | 0x3b -#define EC_WORD_LEADER (EC_GROUP_BATTLE << 9) | 0x3c -#define EC_WORD_RULE (EC_GROUP_BATTLE << 9) | 0x3d -#define EC_WORD_MOVE (EC_GROUP_BATTLE << 9) | 0x3e +#define EC_WORD_MATCH_UP ((EC_GROUP_BATTLE << EC_MASK_BITS) | 0) +#define EC_WORD_GO ((EC_GROUP_BATTLE << EC_MASK_BITS) | 1) +#define EC_WORD_NO_1 ((EC_GROUP_BATTLE << EC_MASK_BITS) | 2) +#define EC_WORD_DECIDE ((EC_GROUP_BATTLE << EC_MASK_BITS) | 3) +#define EC_WORD_LET_ME_WIN ((EC_GROUP_BATTLE << EC_MASK_BITS) | 4) +#define EC_WORD_WINS ((EC_GROUP_BATTLE << EC_MASK_BITS) | 5) +#define EC_WORD_WIN ((EC_GROUP_BATTLE << EC_MASK_BITS) | 6) +#define EC_WORD_WON ((EC_GROUP_BATTLE << EC_MASK_BITS) | 7) +#define EC_WORD_IF_I_WIN ((EC_GROUP_BATTLE << EC_MASK_BITS) | 8) +#define EC_WORD_WHEN_I_WIN ((EC_GROUP_BATTLE << EC_MASK_BITS) | 9) +#define EC_WORD_CAN_T_WIN ((EC_GROUP_BATTLE << EC_MASK_BITS) | 10) +#define EC_WORD_CAN_WIN ((EC_GROUP_BATTLE << EC_MASK_BITS) | 11) +#define EC_WORD_NO_MATCH ((EC_GROUP_BATTLE << EC_MASK_BITS) | 12) +#define EC_WORD_SPIRIT ((EC_GROUP_BATTLE << EC_MASK_BITS) | 13) +#define EC_WORD_DECIDED ((EC_GROUP_BATTLE << EC_MASK_BITS) | 14) +#define EC_WORD_TRUMP_CARD ((EC_GROUP_BATTLE << EC_MASK_BITS) | 15) +#define EC_WORD_TAKE_THAT ((EC_GROUP_BATTLE << EC_MASK_BITS) | 16) +#define EC_WORD_COME_ON ((EC_GROUP_BATTLE << EC_MASK_BITS) | 17) +#define EC_WORD_ATTACK ((EC_GROUP_BATTLE << EC_MASK_BITS) | 18) +#define EC_WORD_SURRENDER ((EC_GROUP_BATTLE << EC_MASK_BITS) | 19) +#define EC_WORD_GUTSY ((EC_GROUP_BATTLE << EC_MASK_BITS) | 20) +#define EC_WORD_TALENT ((EC_GROUP_BATTLE << EC_MASK_BITS) | 21) +#define EC_WORD_STRATEGY ((EC_GROUP_BATTLE << EC_MASK_BITS) | 22) +#define EC_WORD_SMITE ((EC_GROUP_BATTLE << EC_MASK_BITS) | 23) +#define EC_WORD_MATCH ((EC_GROUP_BATTLE << EC_MASK_BITS) | 24) +#define EC_WORD_VICTORY ((EC_GROUP_BATTLE << EC_MASK_BITS) | 25) +#define EC_WORD_OFFENSIVE ((EC_GROUP_BATTLE << EC_MASK_BITS) | 26) +#define EC_WORD_SENSE ((EC_GROUP_BATTLE << EC_MASK_BITS) | 27) +#define EC_WORD_VERSUS ((EC_GROUP_BATTLE << EC_MASK_BITS) | 28) +#define EC_WORD_FIGHTS ((EC_GROUP_BATTLE << EC_MASK_BITS) | 29) +#define EC_WORD_POWER ((EC_GROUP_BATTLE << EC_MASK_BITS) | 30) +#define EC_WORD_CHALLENGE ((EC_GROUP_BATTLE << EC_MASK_BITS) | 31) +#define EC_WORD_STRONG ((EC_GROUP_BATTLE << EC_MASK_BITS) | 32) +#define EC_WORD_TOO_STRONG ((EC_GROUP_BATTLE << EC_MASK_BITS) | 33) +#define EC_WORD_GO_EASY ((EC_GROUP_BATTLE << EC_MASK_BITS) | 34) +#define EC_WORD_FOE ((EC_GROUP_BATTLE << EC_MASK_BITS) | 35) +#define EC_WORD_GENIUS ((EC_GROUP_BATTLE << EC_MASK_BITS) | 36) +#define EC_WORD_LEGEND ((EC_GROUP_BATTLE << EC_MASK_BITS) | 37) +#define EC_WORD_ESCAPE ((EC_GROUP_BATTLE << EC_MASK_BITS) | 38) +#define EC_WORD_AIM ((EC_GROUP_BATTLE << EC_MASK_BITS) | 39) +#define EC_WORD_BATTLE ((EC_GROUP_BATTLE << EC_MASK_BITS) | 40) +#define EC_WORD_FIGHT ((EC_GROUP_BATTLE << EC_MASK_BITS) | 41) +#define EC_WORD_RESUSCITATE ((EC_GROUP_BATTLE << EC_MASK_BITS) | 42) +#define EC_WORD_POINTS ((EC_GROUP_BATTLE << EC_MASK_BITS) | 43) +#define EC_WORD_SERIOUS ((EC_GROUP_BATTLE << EC_MASK_BITS) | 44) +#define EC_WORD_GIVE_UP ((EC_GROUP_BATTLE << EC_MASK_BITS) | 45) +#define EC_WORD_LOSS ((EC_GROUP_BATTLE << EC_MASK_BITS) | 46) +#define EC_WORD_IF_I_LOSE ((EC_GROUP_BATTLE << EC_MASK_BITS) | 47) +#define EC_WORD_LOST ((EC_GROUP_BATTLE << EC_MASK_BITS) | 48) +#define EC_WORD_LOSE ((EC_GROUP_BATTLE << EC_MASK_BITS) | 49) +#define EC_WORD_GUARD ((EC_GROUP_BATTLE << EC_MASK_BITS) | 50) +#define EC_WORD_PARTNER ((EC_GROUP_BATTLE << EC_MASK_BITS) | 51) +#define EC_WORD_REJECT ((EC_GROUP_BATTLE << EC_MASK_BITS) | 52) +#define EC_WORD_ACCEPT ((EC_GROUP_BATTLE << EC_MASK_BITS) | 53) +#define EC_WORD_INVINCIBLE ((EC_GROUP_BATTLE << EC_MASK_BITS) | 54) +#define EC_WORD_RECEIVED ((EC_GROUP_BATTLE << EC_MASK_BITS) | 55) +#define EC_WORD_EASY ((EC_GROUP_BATTLE << EC_MASK_BITS) | 56) +#define EC_WORD_WEAK ((EC_GROUP_BATTLE << EC_MASK_BITS) | 57) +#define EC_WORD_TOO_WEAK ((EC_GROUP_BATTLE << EC_MASK_BITS) | 58) +#define EC_WORD_PUSHOVER ((EC_GROUP_BATTLE << EC_MASK_BITS) | 59) +#define EC_WORD_LEADER ((EC_GROUP_BATTLE << EC_MASK_BITS) | 60) +#define EC_WORD_RULE ((EC_GROUP_BATTLE << EC_MASK_BITS) | 61) +#define EC_WORD_MOVE ((EC_GROUP_BATTLE << EC_MASK_BITS) | 62) // GREETINGS -#define EC_WORD_THANKS (EC_GROUP_GREETINGS << 9) | 0x0 -#define EC_WORD_YES (EC_GROUP_GREETINGS << 9) | 0x1 -#define EC_WORD_HERE_GOES (EC_GROUP_GREETINGS << 9) | 0x2 -#define EC_WORD_HERE_I_COME (EC_GROUP_GREETINGS << 9) | 0x3 -#define EC_WORD_HERE_IT_IS (EC_GROUP_GREETINGS << 9) | 0x4 -#define EC_WORD_YEAH (EC_GROUP_GREETINGS << 9) | 0x5 -#define EC_WORD_WELCOME (EC_GROUP_GREETINGS << 9) | 0x6 -#define EC_WORD_OI (EC_GROUP_GREETINGS << 9) | 0x7 -#define EC_WORD_HOW_DO (EC_GROUP_GREETINGS << 9) | 0x8 -#define EC_WORD_CONGRATS (EC_GROUP_GREETINGS << 9) | 0x9 -#define EC_WORD_GIVE_ME (EC_GROUP_GREETINGS << 9) | 0xa -#define EC_WORD_SORRY (EC_GROUP_GREETINGS << 9) | 0xb -#define EC_WORD_APOLOGIZE (EC_GROUP_GREETINGS << 9) | 0xc -#define EC_WORD_FORGIVE (EC_GROUP_GREETINGS << 9) | 0xd -#define EC_WORD_HEY_THERE (EC_GROUP_GREETINGS << 9) | 0xe -#define EC_WORD_HELLO (EC_GROUP_GREETINGS << 9) | 0xf -#define EC_WORD_GOOD_BYE (EC_GROUP_GREETINGS << 9) | 0x10 -#define EC_WORD_THANK_YOU (EC_GROUP_GREETINGS << 9) | 0x11 -#define EC_WORD_I_VE_ARRIVED (EC_GROUP_GREETINGS << 9) | 0x12 -#define EC_WORD_PARDON (EC_GROUP_GREETINGS << 9) | 0x13 -#define EC_WORD_EXCUSE (EC_GROUP_GREETINGS << 9) | 0x14 -#define EC_WORD_SEE_YA (EC_GROUP_GREETINGS << 9) | 0x15 -#define EC_WORD_EXCUSE_ME (EC_GROUP_GREETINGS << 9) | 0x16 -#define EC_WORD_WELL_THEN (EC_GROUP_GREETINGS << 9) | 0x17 -#define EC_WORD_GO_AHEAD (EC_GROUP_GREETINGS << 9) | 0x18 -#define EC_WORD_APPRECIATE (EC_GROUP_GREETINGS << 9) | 0x19 -#define EC_WORD_HEY_QUES (EC_GROUP_GREETINGS << 9) | 0x1a -#define EC_WORD_WHAT_S_UP_QUES (EC_GROUP_GREETINGS << 9) | 0x1b -#define EC_WORD_HUH_QUES (EC_GROUP_GREETINGS << 9) | 0x1c -#define EC_WORD_NO (EC_GROUP_GREETINGS << 9) | 0x1d -#define EC_WORD_HI (EC_GROUP_GREETINGS << 9) | 0x1e -#define EC_WORD_YEAH_YEAH (EC_GROUP_GREETINGS << 9) | 0x1f -#define EC_WORD_BYE_BYE (EC_GROUP_GREETINGS << 9) | 0x20 -#define EC_WORD_MEET_YOU (EC_GROUP_GREETINGS << 9) | 0x21 -#define EC_WORD_HEY (EC_GROUP_GREETINGS << 9) | 0x22 -#define EC_WORD_SMELL (EC_GROUP_GREETINGS << 9) | 0x23 -#define EC_WORD_LISTENING (EC_GROUP_GREETINGS << 9) | 0x24 -#define EC_WORD_HOO_HAH (EC_GROUP_GREETINGS << 9) | 0x25 -#define EC_WORD_YAHOO (EC_GROUP_GREETINGS << 9) | 0x26 -#define EC_WORD_YO (EC_GROUP_GREETINGS << 9) | 0x27 -#define EC_WORD_COME_OVER (EC_GROUP_GREETINGS << 9) | 0x28 -#define EC_WORD_COUNT_ON (EC_GROUP_GREETINGS << 9) | 0x29 +#define EC_WORD_THANKS ((EC_GROUP_GREETINGS << EC_MASK_BITS) | 0) +#define EC_WORD_YES ((EC_GROUP_GREETINGS << EC_MASK_BITS) | 1) +#define EC_WORD_HERE_GOES ((EC_GROUP_GREETINGS << EC_MASK_BITS) | 2) +#define EC_WORD_HERE_I_COME ((EC_GROUP_GREETINGS << EC_MASK_BITS) | 3) +#define EC_WORD_HERE_IT_IS ((EC_GROUP_GREETINGS << EC_MASK_BITS) | 4) +#define EC_WORD_YEAH ((EC_GROUP_GREETINGS << EC_MASK_BITS) | 5) +#define EC_WORD_WELCOME ((EC_GROUP_GREETINGS << EC_MASK_BITS) | 6) +#define EC_WORD_OI ((EC_GROUP_GREETINGS << EC_MASK_BITS) | 7) +#define EC_WORD_HOW_DO ((EC_GROUP_GREETINGS << EC_MASK_BITS) | 8) +#define EC_WORD_CONGRATS ((EC_GROUP_GREETINGS << EC_MASK_BITS) | 9) +#define EC_WORD_GIVE_ME ((EC_GROUP_GREETINGS << EC_MASK_BITS) | 10) +#define EC_WORD_SORRY ((EC_GROUP_GREETINGS << EC_MASK_BITS) | 11) +#define EC_WORD_APOLOGIZE ((EC_GROUP_GREETINGS << EC_MASK_BITS) | 12) +#define EC_WORD_FORGIVE ((EC_GROUP_GREETINGS << EC_MASK_BITS) | 13) +#define EC_WORD_HEY_THERE ((EC_GROUP_GREETINGS << EC_MASK_BITS) | 14) +#define EC_WORD_HELLO ((EC_GROUP_GREETINGS << EC_MASK_BITS) | 15) +#define EC_WORD_GOOD_BYE ((EC_GROUP_GREETINGS << EC_MASK_BITS) | 16) +#define EC_WORD_THANK_YOU ((EC_GROUP_GREETINGS << EC_MASK_BITS) | 17) +#define EC_WORD_I_VE_ARRIVED ((EC_GROUP_GREETINGS << EC_MASK_BITS) | 18) +#define EC_WORD_PARDON ((EC_GROUP_GREETINGS << EC_MASK_BITS) | 19) +#define EC_WORD_EXCUSE ((EC_GROUP_GREETINGS << EC_MASK_BITS) | 20) +#define EC_WORD_SEE_YA ((EC_GROUP_GREETINGS << EC_MASK_BITS) | 21) +#define EC_WORD_EXCUSE_ME ((EC_GROUP_GREETINGS << EC_MASK_BITS) | 22) +#define EC_WORD_WELL_THEN ((EC_GROUP_GREETINGS << EC_MASK_BITS) | 23) +#define EC_WORD_GO_AHEAD ((EC_GROUP_GREETINGS << EC_MASK_BITS) | 24) +#define EC_WORD_APPRECIATE ((EC_GROUP_GREETINGS << EC_MASK_BITS) | 25) +#define EC_WORD_HEY_QUES ((EC_GROUP_GREETINGS << EC_MASK_BITS) | 26) +#define EC_WORD_WHAT_S_UP_QUES ((EC_GROUP_GREETINGS << EC_MASK_BITS) | 27) +#define EC_WORD_HUH_QUES ((EC_GROUP_GREETINGS << EC_MASK_BITS) | 28) +#define EC_WORD_NO ((EC_GROUP_GREETINGS << EC_MASK_BITS) | 29) +#define EC_WORD_HI ((EC_GROUP_GREETINGS << EC_MASK_BITS) | 30) +#define EC_WORD_YEAH_YEAH ((EC_GROUP_GREETINGS << EC_MASK_BITS) | 31) +#define EC_WORD_BYE_BYE ((EC_GROUP_GREETINGS << EC_MASK_BITS) | 32) +#define EC_WORD_MEET_YOU ((EC_GROUP_GREETINGS << EC_MASK_BITS) | 33) +#define EC_WORD_HEY ((EC_GROUP_GREETINGS << EC_MASK_BITS) | 34) +#define EC_WORD_SMELL ((EC_GROUP_GREETINGS << EC_MASK_BITS) | 35) +#define EC_WORD_LISTENING ((EC_GROUP_GREETINGS << EC_MASK_BITS) | 36) +#define EC_WORD_HOO_HAH ((EC_GROUP_GREETINGS << EC_MASK_BITS) | 37) +#define EC_WORD_YAHOO ((EC_GROUP_GREETINGS << EC_MASK_BITS) | 38) +#define EC_WORD_YO ((EC_GROUP_GREETINGS << EC_MASK_BITS) | 39) +#define EC_WORD_COME_OVER ((EC_GROUP_GREETINGS << EC_MASK_BITS) | 40) +#define EC_WORD_COUNT_ON ((EC_GROUP_GREETINGS << EC_MASK_BITS) | 41) // PEOPLE -#define EC_WORD_OPPONENT (EC_GROUP_PEOPLE << 9) | 0x0 -#define EC_WORD_I (EC_GROUP_PEOPLE << 9) | 0x1 -#define EC_WORD_YOU (EC_GROUP_PEOPLE << 9) | 0x2 -#define EC_WORD_YOURS (EC_GROUP_PEOPLE << 9) | 0x3 -#define EC_WORD_SON (EC_GROUP_PEOPLE << 9) | 0x4 -#define EC_WORD_YOUR (EC_GROUP_PEOPLE << 9) | 0x5 -#define EC_WORD_YOU_RE (EC_GROUP_PEOPLE << 9) | 0x6 -#define EC_WORD_YOU_VE (EC_GROUP_PEOPLE << 9) | 0x7 -#define EC_WORD_MOTHER (EC_GROUP_PEOPLE << 9) | 0x8 -#define EC_WORD_GRANDFATHER (EC_GROUP_PEOPLE << 9) | 0x9 -#define EC_WORD_UNCLE (EC_GROUP_PEOPLE << 9) | 0xa -#define EC_WORD_FATHER (EC_GROUP_PEOPLE << 9) | 0xb -#define EC_WORD_BOY (EC_GROUP_PEOPLE << 9) | 0xc -#define EC_WORD_ADULT (EC_GROUP_PEOPLE << 9) | 0xd -#define EC_WORD_BROTHER (EC_GROUP_PEOPLE << 9) | 0xe -#define EC_WORD_SISTER (EC_GROUP_PEOPLE << 9) | 0xf -#define EC_WORD_GRANDMOTHER (EC_GROUP_PEOPLE << 9) | 0x10 -#define EC_WORD_AUNT (EC_GROUP_PEOPLE << 9) | 0x11 -#define EC_WORD_PARENT (EC_GROUP_PEOPLE << 9) | 0x12 -#define EC_WORD_MAN (EC_GROUP_PEOPLE << 9) | 0x13 -#define EC_WORD_ME (EC_GROUP_PEOPLE << 9) | 0x14 -#define EC_WORD_GIRL (EC_GROUP_PEOPLE << 9) | 0x15 -#define EC_WORD_BABE (EC_GROUP_PEOPLE << 9) | 0x16 -#define EC_WORD_FAMILY (EC_GROUP_PEOPLE << 9) | 0x17 -#define EC_WORD_HER (EC_GROUP_PEOPLE << 9) | 0x18 -#define EC_WORD_HIM (EC_GROUP_PEOPLE << 9) | 0x19 -#define EC_WORD_HE (EC_GROUP_PEOPLE << 9) | 0x1a -#define EC_WORD_PLACE (EC_GROUP_PEOPLE << 9) | 0x1b -#define EC_WORD_DAUGHTER (EC_GROUP_PEOPLE << 9) | 0x1c -#define EC_WORD_HIS (EC_GROUP_PEOPLE << 9) | 0x1d -#define EC_WORD_HE_S (EC_GROUP_PEOPLE << 9) | 0x1e -#define EC_WORD_AREN_T (EC_GROUP_PEOPLE << 9) | 0x1f -#define EC_WORD_SIBLINGS (EC_GROUP_PEOPLE << 9) | 0x20 -#define EC_WORD_KID (EC_GROUP_PEOPLE << 9) | 0x21 -#define EC_WORD_CHILDREN (EC_GROUP_PEOPLE << 9) | 0x22 -#define EC_WORD_MR (EC_GROUP_PEOPLE << 9) | 0x23 -#define EC_WORD_MRS (EC_GROUP_PEOPLE << 9) | 0x24 -#define EC_WORD_MYSELF (EC_GROUP_PEOPLE << 9) | 0x25 -#define EC_WORD_I_WAS (EC_GROUP_PEOPLE << 9) | 0x26 -#define EC_WORD_TO_ME (EC_GROUP_PEOPLE << 9) | 0x27 -#define EC_WORD_MY (EC_GROUP_PEOPLE << 9) | 0x28 -#define EC_WORD_I_AM (EC_GROUP_PEOPLE << 9) | 0x29 -#define EC_WORD_I_VE (EC_GROUP_PEOPLE << 9) | 0x2a -#define EC_WORD_WHO (EC_GROUP_PEOPLE << 9) | 0x2b -#define EC_WORD_SOMEONE (EC_GROUP_PEOPLE << 9) | 0x2c -#define EC_WORD_WHO_WAS (EC_GROUP_PEOPLE << 9) | 0x2d -#define EC_WORD_TO_WHOM (EC_GROUP_PEOPLE << 9) | 0x2e -#define EC_WORD_WHOSE (EC_GROUP_PEOPLE << 9) | 0x2f -#define EC_WORD_WHO_IS (EC_GROUP_PEOPLE << 9) | 0x30 -#define EC_WORD_IT_S (EC_GROUP_PEOPLE << 9) | 0x31 -#define EC_WORD_LADY (EC_GROUP_PEOPLE << 9) | 0x32 -#define EC_WORD_FRIEND (EC_GROUP_PEOPLE << 9) | 0x33 -#define EC_WORD_ALLY (EC_GROUP_PEOPLE << 9) | 0x34 -#define EC_WORD_PERSON (EC_GROUP_PEOPLE << 9) | 0x35 -#define EC_WORD_DUDE (EC_GROUP_PEOPLE << 9) | 0x36 -#define EC_WORD_THEY (EC_GROUP_PEOPLE << 9) | 0x37 -#define EC_WORD_THEY_WERE (EC_GROUP_PEOPLE << 9) | 0x38 -#define EC_WORD_TO_THEM (EC_GROUP_PEOPLE << 9) | 0x39 -#define EC_WORD_THEIR (EC_GROUP_PEOPLE << 9) | 0x3a -#define EC_WORD_THEY_RE (EC_GROUP_PEOPLE << 9) | 0x3b -#define EC_WORD_THEY_VE (EC_GROUP_PEOPLE << 9) | 0x3c -#define EC_WORD_WE (EC_GROUP_PEOPLE << 9) | 0x3d -#define EC_WORD_BEEN (EC_GROUP_PEOPLE << 9) | 0x3e -#define EC_WORD_TO_US (EC_GROUP_PEOPLE << 9) | 0x3f -#define EC_WORD_OUR (EC_GROUP_PEOPLE << 9) | 0x40 -#define EC_WORD_WE_RE (EC_GROUP_PEOPLE << 9) | 0x41 -#define EC_WORD_RIVAL (EC_GROUP_PEOPLE << 9) | 0x42 -#define EC_WORD_WE_VE (EC_GROUP_PEOPLE << 9) | 0x43 -#define EC_WORD_WOMAN (EC_GROUP_PEOPLE << 9) | 0x44 -#define EC_WORD_SHE (EC_GROUP_PEOPLE << 9) | 0x45 -#define EC_WORD_SHE_WAS (EC_GROUP_PEOPLE << 9) | 0x46 -#define EC_WORD_TO_HER (EC_GROUP_PEOPLE << 9) | 0x47 -#define EC_WORD_HERS (EC_GROUP_PEOPLE << 9) | 0x48 -#define EC_WORD_SHE_IS (EC_GROUP_PEOPLE << 9) | 0x49 -#define EC_WORD_SOME (EC_GROUP_PEOPLE << 9) | 0x4a +#define EC_WORD_OPPONENT ((EC_GROUP_PEOPLE << EC_MASK_BITS) | 0) +#define EC_WORD_I ((EC_GROUP_PEOPLE << EC_MASK_BITS) | 1) +#define EC_WORD_YOU ((EC_GROUP_PEOPLE << EC_MASK_BITS) | 2) +#define EC_WORD_YOURS ((EC_GROUP_PEOPLE << EC_MASK_BITS) | 3) +#define EC_WORD_SON ((EC_GROUP_PEOPLE << EC_MASK_BITS) | 4) +#define EC_WORD_YOUR ((EC_GROUP_PEOPLE << EC_MASK_BITS) | 5) +#define EC_WORD_YOU_RE ((EC_GROUP_PEOPLE << EC_MASK_BITS) | 6) +#define EC_WORD_YOU_VE ((EC_GROUP_PEOPLE << EC_MASK_BITS) | 7) +#define EC_WORD_MOTHER ((EC_GROUP_PEOPLE << EC_MASK_BITS) | 8) +#define EC_WORD_GRANDFATHER ((EC_GROUP_PEOPLE << EC_MASK_BITS) | 9) +#define EC_WORD_UNCLE ((EC_GROUP_PEOPLE << EC_MASK_BITS) | 10) +#define EC_WORD_FATHER ((EC_GROUP_PEOPLE << EC_MASK_BITS) | 11) +#define EC_WORD_BOY ((EC_GROUP_PEOPLE << EC_MASK_BITS) | 12) +#define EC_WORD_ADULT ((EC_GROUP_PEOPLE << EC_MASK_BITS) | 13) +#define EC_WORD_BROTHER ((EC_GROUP_PEOPLE << EC_MASK_BITS) | 14) +#define EC_WORD_SISTER ((EC_GROUP_PEOPLE << EC_MASK_BITS) | 15) +#define EC_WORD_GRANDMOTHER ((EC_GROUP_PEOPLE << EC_MASK_BITS) | 16) +#define EC_WORD_AUNT ((EC_GROUP_PEOPLE << EC_MASK_BITS) | 17) +#define EC_WORD_PARENT ((EC_GROUP_PEOPLE << EC_MASK_BITS) | 18) +#define EC_WORD_MAN ((EC_GROUP_PEOPLE << EC_MASK_BITS) | 19) +#define EC_WORD_ME ((EC_GROUP_PEOPLE << EC_MASK_BITS) | 20) +#define EC_WORD_GIRL ((EC_GROUP_PEOPLE << EC_MASK_BITS) | 21) +#define EC_WORD_BABE ((EC_GROUP_PEOPLE << EC_MASK_BITS) | 22) +#define EC_WORD_FAMILY ((EC_GROUP_PEOPLE << EC_MASK_BITS) | 23) +#define EC_WORD_HER ((EC_GROUP_PEOPLE << EC_MASK_BITS) | 24) +#define EC_WORD_HIM ((EC_GROUP_PEOPLE << EC_MASK_BITS) | 25) +#define EC_WORD_HE ((EC_GROUP_PEOPLE << EC_MASK_BITS) | 26) +#define EC_WORD_PLACE ((EC_GROUP_PEOPLE << EC_MASK_BITS) | 27) +#define EC_WORD_DAUGHTER ((EC_GROUP_PEOPLE << EC_MASK_BITS) | 28) +#define EC_WORD_HIS ((EC_GROUP_PEOPLE << EC_MASK_BITS) | 29) +#define EC_WORD_HE_S ((EC_GROUP_PEOPLE << EC_MASK_BITS) | 30) +#define EC_WORD_AREN_T ((EC_GROUP_PEOPLE << EC_MASK_BITS) | 31) +#define EC_WORD_SIBLINGS ((EC_GROUP_PEOPLE << EC_MASK_BITS) | 32) +#define EC_WORD_KID ((EC_GROUP_PEOPLE << EC_MASK_BITS) | 33) +#define EC_WORD_CHILDREN ((EC_GROUP_PEOPLE << EC_MASK_BITS) | 34) +#define EC_WORD_MR ((EC_GROUP_PEOPLE << EC_MASK_BITS) | 35) +#define EC_WORD_MRS ((EC_GROUP_PEOPLE << EC_MASK_BITS) | 36) +#define EC_WORD_MYSELF ((EC_GROUP_PEOPLE << EC_MASK_BITS) | 37) +#define EC_WORD_I_WAS ((EC_GROUP_PEOPLE << EC_MASK_BITS) | 38) +#define EC_WORD_TO_ME ((EC_GROUP_PEOPLE << EC_MASK_BITS) | 39) +#define EC_WORD_MY ((EC_GROUP_PEOPLE << EC_MASK_BITS) | 40) +#define EC_WORD_I_AM ((EC_GROUP_PEOPLE << EC_MASK_BITS) | 41) +#define EC_WORD_I_VE ((EC_GROUP_PEOPLE << EC_MASK_BITS) | 42) +#define EC_WORD_WHO ((EC_GROUP_PEOPLE << EC_MASK_BITS) | 43) +#define EC_WORD_SOMEONE ((EC_GROUP_PEOPLE << EC_MASK_BITS) | 44) +#define EC_WORD_WHO_WAS ((EC_GROUP_PEOPLE << EC_MASK_BITS) | 45) +#define EC_WORD_TO_WHOM ((EC_GROUP_PEOPLE << EC_MASK_BITS) | 46) +#define EC_WORD_WHOSE ((EC_GROUP_PEOPLE << EC_MASK_BITS) | 47) +#define EC_WORD_WHO_IS ((EC_GROUP_PEOPLE << EC_MASK_BITS) | 48) +#define EC_WORD_IT_S ((EC_GROUP_PEOPLE << EC_MASK_BITS) | 49) +#define EC_WORD_LADY ((EC_GROUP_PEOPLE << EC_MASK_BITS) | 50) +#define EC_WORD_FRIEND ((EC_GROUP_PEOPLE << EC_MASK_BITS) | 51) +#define EC_WORD_ALLY ((EC_GROUP_PEOPLE << EC_MASK_BITS) | 52) +#define EC_WORD_PERSON ((EC_GROUP_PEOPLE << EC_MASK_BITS) | 53) +#define EC_WORD_DUDE ((EC_GROUP_PEOPLE << EC_MASK_BITS) | 54) +#define EC_WORD_THEY ((EC_GROUP_PEOPLE << EC_MASK_BITS) | 55) +#define EC_WORD_THEY_WERE ((EC_GROUP_PEOPLE << EC_MASK_BITS) | 56) +#define EC_WORD_TO_THEM ((EC_GROUP_PEOPLE << EC_MASK_BITS) | 57) +#define EC_WORD_THEIR ((EC_GROUP_PEOPLE << EC_MASK_BITS) | 58) +#define EC_WORD_THEY_RE ((EC_GROUP_PEOPLE << EC_MASK_BITS) | 59) +#define EC_WORD_THEY_VE ((EC_GROUP_PEOPLE << EC_MASK_BITS) | 60) +#define EC_WORD_WE ((EC_GROUP_PEOPLE << EC_MASK_BITS) | 61) +#define EC_WORD_BEEN ((EC_GROUP_PEOPLE << EC_MASK_BITS) | 62) +#define EC_WORD_TO_US ((EC_GROUP_PEOPLE << EC_MASK_BITS) | 63) +#define EC_WORD_OUR ((EC_GROUP_PEOPLE << EC_MASK_BITS) | 64) +#define EC_WORD_WE_RE ((EC_GROUP_PEOPLE << EC_MASK_BITS) | 65) +#define EC_WORD_RIVAL ((EC_GROUP_PEOPLE << EC_MASK_BITS) | 66) +#define EC_WORD_WE_VE ((EC_GROUP_PEOPLE << EC_MASK_BITS) | 67) +#define EC_WORD_WOMAN ((EC_GROUP_PEOPLE << EC_MASK_BITS) | 68) +#define EC_WORD_SHE ((EC_GROUP_PEOPLE << EC_MASK_BITS) | 69) +#define EC_WORD_SHE_WAS ((EC_GROUP_PEOPLE << EC_MASK_BITS) | 70) +#define EC_WORD_TO_HER ((EC_GROUP_PEOPLE << EC_MASK_BITS) | 71) +#define EC_WORD_HERS ((EC_GROUP_PEOPLE << EC_MASK_BITS) | 72) +#define EC_WORD_SHE_IS ((EC_GROUP_PEOPLE << EC_MASK_BITS) | 73) +#define EC_WORD_SOME ((EC_GROUP_PEOPLE << EC_MASK_BITS) | 74) // VOICES -#define EC_WORD_EXCL (EC_GROUP_VOICES << 9) | 0x0 -#define EC_WORD_EXCL_EXCL (EC_GROUP_VOICES << 9) | 0x1 -#define EC_WORD_QUES_EXCL (EC_GROUP_VOICES << 9) | 0x2 -#define EC_WORD_QUES (EC_GROUP_VOICES << 9) | 0x3 -#define EC_WORD_ELLIPSIS (EC_GROUP_VOICES << 9) | 0x4 -#define EC_WORD_ELLIPSIS_EXCL (EC_GROUP_VOICES << 9) | 0x5 -#define EC_WORD_ELLIPSIS_ELLIPSIS_ELLIPSIS (EC_GROUP_VOICES << 9) | 0x6 -#define EC_WORD_DASH (EC_GROUP_VOICES << 9) | 0x7 -#define EC_WORD_DASH_DASH_DASH (EC_GROUP_VOICES << 9) | 0x8 -#define EC_WORD_UH_OH (EC_GROUP_VOICES << 9) | 0x9 -#define EC_WORD_WAAAH (EC_GROUP_VOICES << 9) | 0xa -#define EC_WORD_AHAHA (EC_GROUP_VOICES << 9) | 0xb -#define EC_WORD_OH_QUES (EC_GROUP_VOICES << 9) | 0xc -#define EC_WORD_NOPE (EC_GROUP_VOICES << 9) | 0xd -#define EC_WORD_URGH (EC_GROUP_VOICES << 9) | 0xe -#define EC_WORD_HMM (EC_GROUP_VOICES << 9) | 0xf -#define EC_WORD_WHOAH (EC_GROUP_VOICES << 9) | 0x10 -#define EC_WORD_WROOOAAR_EXCL (EC_GROUP_VOICES << 9) | 0x11 -#define EC_WORD_WOW (EC_GROUP_VOICES << 9) | 0x12 -#define EC_WORD_GIGGLE (EC_GROUP_VOICES << 9) | 0x13 -#define EC_WORD_SIGH (EC_GROUP_VOICES << 9) | 0x14 -#define EC_WORD_UNBELIEVABLE (EC_GROUP_VOICES << 9) | 0x15 -#define EC_WORD_CRIES (EC_GROUP_VOICES << 9) | 0x16 -#define EC_WORD_AGREE (EC_GROUP_VOICES << 9) | 0x17 -#define EC_WORD_EH_QUES (EC_GROUP_VOICES << 9) | 0x18 -#define EC_WORD_CRY (EC_GROUP_VOICES << 9) | 0x19 -#define EC_WORD_EHEHE (EC_GROUP_VOICES << 9) | 0x1a -#define EC_WORD_OI_OI_OI (EC_GROUP_VOICES << 9) | 0x1b -#define EC_WORD_OH_YEAH (EC_GROUP_VOICES << 9) | 0x1c -#define EC_WORD_OH (EC_GROUP_VOICES << 9) | 0x1d -#define EC_WORD_OOPS (EC_GROUP_VOICES << 9) | 0x1e -#define EC_WORD_SHOCKED (EC_GROUP_VOICES << 9) | 0x1f -#define EC_WORD_EEK (EC_GROUP_VOICES << 9) | 0x20 -#define EC_WORD_GRAAAH (EC_GROUP_VOICES << 9) | 0x21 -#define EC_WORD_GWAHAHAHA (EC_GROUP_VOICES << 9) | 0x22 -#define EC_WORD_WAY (EC_GROUP_VOICES << 9) | 0x23 -#define EC_WORD_TCH (EC_GROUP_VOICES << 9) | 0x24 -#define EC_WORD_HEHE (EC_GROUP_VOICES << 9) | 0x25 -#define EC_WORD_HAH (EC_GROUP_VOICES << 9) | 0x26 -#define EC_WORD_YUP (EC_GROUP_VOICES << 9) | 0x27 -#define EC_WORD_HAHAHA (EC_GROUP_VOICES << 9) | 0x28 -#define EC_WORD_AIYEEH (EC_GROUP_VOICES << 9) | 0x29 -#define EC_WORD_HIYAH (EC_GROUP_VOICES << 9) | 0x2a -#define EC_WORD_FUFUFU (EC_GROUP_VOICES << 9) | 0x2b -#define EC_WORD_LOL (EC_GROUP_VOICES << 9) | 0x2c -#define EC_WORD_SNORT (EC_GROUP_VOICES << 9) | 0x2d -#define EC_WORD_HUMPH (EC_GROUP_VOICES << 9) | 0x2e -#define EC_WORD_HEHEHE (EC_GROUP_VOICES << 9) | 0x2f -#define EC_WORD_HEH (EC_GROUP_VOICES << 9) | 0x30 -#define EC_WORD_HOHOHO (EC_GROUP_VOICES << 9) | 0x31 -#define EC_WORD_UH_HUH (EC_GROUP_VOICES << 9) | 0x32 -#define EC_WORD_OH_DEAR (EC_GROUP_VOICES << 9) | 0x33 -#define EC_WORD_ARRGH (EC_GROUP_VOICES << 9) | 0x34 -#define EC_WORD_MUFUFU (EC_GROUP_VOICES << 9) | 0x35 -#define EC_WORD_MMM (EC_GROUP_VOICES << 9) | 0x36 -#define EC_WORD_OH_KAY (EC_GROUP_VOICES << 9) | 0x37 -#define EC_WORD_OKAY (EC_GROUP_VOICES << 9) | 0x38 -#define EC_WORD_LALALA (EC_GROUP_VOICES << 9) | 0x39 -#define EC_WORD_YAY (EC_GROUP_VOICES << 9) | 0x3a -#define EC_WORD_AWW (EC_GROUP_VOICES << 9) | 0x3b -#define EC_WORD_WOWEE (EC_GROUP_VOICES << 9) | 0x3c -#define EC_WORD_GWAH (EC_GROUP_VOICES << 9) | 0x3d -#define EC_WORD_WAHAHAHA (EC_GROUP_VOICES << 9) | 0x3e +#define EC_WORD_EXCL ((EC_GROUP_VOICES << EC_MASK_BITS) | 0) +#define EC_WORD_EXCL_EXCL ((EC_GROUP_VOICES << EC_MASK_BITS) | 1) +#define EC_WORD_QUES_EXCL ((EC_GROUP_VOICES << EC_MASK_BITS) | 2) +#define EC_WORD_QUES ((EC_GROUP_VOICES << EC_MASK_BITS) | 3) +#define EC_WORD_ELLIPSIS ((EC_GROUP_VOICES << EC_MASK_BITS) | 4) +#define EC_WORD_ELLIPSIS_EXCL ((EC_GROUP_VOICES << EC_MASK_BITS) | 5) +#define EC_WORD_ELLIPSIS_ELLIPSIS_ELLIPSIS ((EC_GROUP_VOICES << EC_MASK_BITS) | 6) +#define EC_WORD_DASH ((EC_GROUP_VOICES << EC_MASK_BITS) | 7) +#define EC_WORD_DASH_DASH_DASH ((EC_GROUP_VOICES << EC_MASK_BITS) | 8) +#define EC_WORD_UH_OH ((EC_GROUP_VOICES << EC_MASK_BITS) | 9) +#define EC_WORD_WAAAH ((EC_GROUP_VOICES << EC_MASK_BITS) | 10) +#define EC_WORD_AHAHA ((EC_GROUP_VOICES << EC_MASK_BITS) | 11) +#define EC_WORD_OH_QUES ((EC_GROUP_VOICES << EC_MASK_BITS) | 12) +#define EC_WORD_NOPE ((EC_GROUP_VOICES << EC_MASK_BITS) | 13) +#define EC_WORD_URGH ((EC_GROUP_VOICES << EC_MASK_BITS) | 14) +#define EC_WORD_HMM ((EC_GROUP_VOICES << EC_MASK_BITS) | 15) +#define EC_WORD_WHOAH ((EC_GROUP_VOICES << EC_MASK_BITS) | 16) +#define EC_WORD_WROOOAAR_EXCL ((EC_GROUP_VOICES << EC_MASK_BITS) | 17) +#define EC_WORD_WOW ((EC_GROUP_VOICES << EC_MASK_BITS) | 18) +#define EC_WORD_GIGGLE ((EC_GROUP_VOICES << EC_MASK_BITS) | 19) +#define EC_WORD_SIGH ((EC_GROUP_VOICES << EC_MASK_BITS) | 20) +#define EC_WORD_UNBELIEVABLE ((EC_GROUP_VOICES << EC_MASK_BITS) | 21) +#define EC_WORD_CRIES ((EC_GROUP_VOICES << EC_MASK_BITS) | 22) +#define EC_WORD_AGREE ((EC_GROUP_VOICES << EC_MASK_BITS) | 23) +#define EC_WORD_EH_QUES ((EC_GROUP_VOICES << EC_MASK_BITS) | 24) +#define EC_WORD_CRY ((EC_GROUP_VOICES << EC_MASK_BITS) | 25) +#define EC_WORD_EHEHE ((EC_GROUP_VOICES << EC_MASK_BITS) | 26) +#define EC_WORD_OI_OI_OI ((EC_GROUP_VOICES << EC_MASK_BITS) | 27) +#define EC_WORD_OH_YEAH ((EC_GROUP_VOICES << EC_MASK_BITS) | 28) +#define EC_WORD_OH ((EC_GROUP_VOICES << EC_MASK_BITS) | 29) +#define EC_WORD_OOPS ((EC_GROUP_VOICES << EC_MASK_BITS) | 30) +#define EC_WORD_SHOCKED ((EC_GROUP_VOICES << EC_MASK_BITS) | 31) +#define EC_WORD_EEK ((EC_GROUP_VOICES << EC_MASK_BITS) | 32) +#define EC_WORD_GRAAAH ((EC_GROUP_VOICES << EC_MASK_BITS) | 33) +#define EC_WORD_GWAHAHAHA ((EC_GROUP_VOICES << EC_MASK_BITS) | 34) +#define EC_WORD_WAY ((EC_GROUP_VOICES << EC_MASK_BITS) | 35) +#define EC_WORD_TCH ((EC_GROUP_VOICES << EC_MASK_BITS) | 36) +#define EC_WORD_HEHE ((EC_GROUP_VOICES << EC_MASK_BITS) | 37) +#define EC_WORD_HAH ((EC_GROUP_VOICES << EC_MASK_BITS) | 38) +#define EC_WORD_YUP ((EC_GROUP_VOICES << EC_MASK_BITS) | 39) +#define EC_WORD_HAHAHA ((EC_GROUP_VOICES << EC_MASK_BITS) | 40) +#define EC_WORD_AIYEEH ((EC_GROUP_VOICES << EC_MASK_BITS) | 41) +#define EC_WORD_HIYAH ((EC_GROUP_VOICES << EC_MASK_BITS) | 42) +#define EC_WORD_FUFUFU ((EC_GROUP_VOICES << EC_MASK_BITS) | 43) +#define EC_WORD_LOL ((EC_GROUP_VOICES << EC_MASK_BITS) | 44) +#define EC_WORD_SNORT ((EC_GROUP_VOICES << EC_MASK_BITS) | 45) +#define EC_WORD_HUMPH ((EC_GROUP_VOICES << EC_MASK_BITS) | 46) +#define EC_WORD_HEHEHE ((EC_GROUP_VOICES << EC_MASK_BITS) | 47) +#define EC_WORD_HEH ((EC_GROUP_VOICES << EC_MASK_BITS) | 48) +#define EC_WORD_HOHOHO ((EC_GROUP_VOICES << EC_MASK_BITS) | 49) +#define EC_WORD_UH_HUH ((EC_GROUP_VOICES << EC_MASK_BITS) | 50) +#define EC_WORD_OH_DEAR ((EC_GROUP_VOICES << EC_MASK_BITS) | 51) +#define EC_WORD_ARRGH ((EC_GROUP_VOICES << EC_MASK_BITS) | 52) +#define EC_WORD_MUFUFU ((EC_GROUP_VOICES << EC_MASK_BITS) | 53) +#define EC_WORD_MMM ((EC_GROUP_VOICES << EC_MASK_BITS) | 54) +#define EC_WORD_OH_KAY ((EC_GROUP_VOICES << EC_MASK_BITS) | 55) +#define EC_WORD_OKAY ((EC_GROUP_VOICES << EC_MASK_BITS) | 56) +#define EC_WORD_LALALA ((EC_GROUP_VOICES << EC_MASK_BITS) | 57) +#define EC_WORD_YAY ((EC_GROUP_VOICES << EC_MASK_BITS) | 58) +#define EC_WORD_AWW ((EC_GROUP_VOICES << EC_MASK_BITS) | 59) +#define EC_WORD_WOWEE ((EC_GROUP_VOICES << EC_MASK_BITS) | 60) +#define EC_WORD_GWAH ((EC_GROUP_VOICES << EC_MASK_BITS) | 61) +#define EC_WORD_WAHAHAHA ((EC_GROUP_VOICES << EC_MASK_BITS) | 62) // SPEECH -#define EC_WORD_LISTEN (EC_GROUP_SPEECH << 9) | 0x0 -#define EC_WORD_NOT_VERY (EC_GROUP_SPEECH << 9) | 0x1 -#define EC_WORD_MEAN (EC_GROUP_SPEECH << 9) | 0x2 -#define EC_WORD_LIE (EC_GROUP_SPEECH << 9) | 0x3 -#define EC_WORD_LAY (EC_GROUP_SPEECH << 9) | 0x4 -#define EC_WORD_RECOMMEND (EC_GROUP_SPEECH << 9) | 0x5 -#define EC_WORD_NITWIT (EC_GROUP_SPEECH << 9) | 0x6 -#define EC_WORD_QUITE (EC_GROUP_SPEECH << 9) | 0x7 -#define EC_WORD_FROM (EC_GROUP_SPEECH << 9) | 0x8 -#define EC_WORD_FEELING (EC_GROUP_SPEECH << 9) | 0x9 -#define EC_WORD_BUT (EC_GROUP_SPEECH << 9) | 0xa -#define EC_WORD_HOWEVER (EC_GROUP_SPEECH << 9) | 0xb -#define EC_WORD_CASE (EC_GROUP_SPEECH << 9) | 0xc -#define EC_WORD_THE (EC_GROUP_SPEECH << 9) | 0xd -#define EC_WORD_MISS (EC_GROUP_SPEECH << 9) | 0xe -#define EC_WORD_HOW (EC_GROUP_SPEECH << 9) | 0xf -#define EC_WORD_HIT (EC_GROUP_SPEECH << 9) | 0x10 -#define EC_WORD_ENOUGH (EC_GROUP_SPEECH << 9) | 0x11 -#define EC_WORD_A_LOT (EC_GROUP_SPEECH << 9) | 0x12 -#define EC_WORD_A_LITTLE (EC_GROUP_SPEECH << 9) | 0x13 -#define EC_WORD_ABSOLUTELY (EC_GROUP_SPEECH << 9) | 0x14 -#define EC_WORD_AND (EC_GROUP_SPEECH << 9) | 0x15 -#define EC_WORD_ONLY (EC_GROUP_SPEECH << 9) | 0x16 -#define EC_WORD_AROUND (EC_GROUP_SPEECH << 9) | 0x17 -#define EC_WORD_PROBABLY (EC_GROUP_SPEECH << 9) | 0x18 -#define EC_WORD_IF (EC_GROUP_SPEECH << 9) | 0x19 -#define EC_WORD_VERY (EC_GROUP_SPEECH << 9) | 0x1a -#define EC_WORD_A_TINY_BIT (EC_GROUP_SPEECH << 9) | 0x1b -#define EC_WORD_WILD (EC_GROUP_SPEECH << 9) | 0x1c -#define EC_WORD_THAT_S (EC_GROUP_SPEECH << 9) | 0x1d -#define EC_WORD_JUST (EC_GROUP_SPEECH << 9) | 0x1e -#define EC_WORD_EVEN_SO (EC_GROUP_SPEECH << 9) | 0x1f -#define EC_WORD_MUST_BE (EC_GROUP_SPEECH << 9) | 0x20 -#define EC_WORD_NATURALLY (EC_GROUP_SPEECH << 9) | 0x21 -#define EC_WORD_FOR_NOW (EC_GROUP_SPEECH << 9) | 0x22 -#define EC_WORD_UNDERSTOOD (EC_GROUP_SPEECH << 9) | 0x23 -#define EC_WORD_JOKING (EC_GROUP_SPEECH << 9) | 0x24 -#define EC_WORD_READY (EC_GROUP_SPEECH << 9) | 0x25 -#define EC_WORD_SOMETHING (EC_GROUP_SPEECH << 9) | 0x26 -#define EC_WORD_SOMEHOW (EC_GROUP_SPEECH << 9) | 0x27 -#define EC_WORD_ALTHOUGH (EC_GROUP_SPEECH << 9) | 0x28 -#define EC_WORD_ALSO (EC_GROUP_SPEECH << 9) | 0x29 -#define EC_WORD_PERFECT (EC_GROUP_SPEECH << 9) | 0x2a -#define EC_WORD_AS_MUCH_AS (EC_GROUP_SPEECH << 9) | 0x2b -#define EC_WORD_REALLY (EC_GROUP_SPEECH << 9) | 0x2c -#define EC_WORD_TRULY (EC_GROUP_SPEECH << 9) | 0x2d -#define EC_WORD_SERIOUSLY (EC_GROUP_SPEECH << 9) | 0x2e -#define EC_WORD_TOTALLY (EC_GROUP_SPEECH << 9) | 0x2f -#define EC_WORD_UNTIL (EC_GROUP_SPEECH << 9) | 0x30 -#define EC_WORD_AS_IF (EC_GROUP_SPEECH << 9) | 0x31 -#define EC_WORD_MOOD (EC_GROUP_SPEECH << 9) | 0x32 -#define EC_WORD_RATHER (EC_GROUP_SPEECH << 9) | 0x33 -#define EC_WORD_AWFULLY (EC_GROUP_SPEECH << 9) | 0x34 -#define EC_WORD_MODE (EC_GROUP_SPEECH << 9) | 0x35 -#define EC_WORD_MORE (EC_GROUP_SPEECH << 9) | 0x36 -#define EC_WORD_TOO_LATE (EC_GROUP_SPEECH << 9) | 0x37 -#define EC_WORD_FINALLY (EC_GROUP_SPEECH << 9) | 0x38 -#define EC_WORD_ANY (EC_GROUP_SPEECH << 9) | 0x39 -#define EC_WORD_INSTEAD (EC_GROUP_SPEECH << 9) | 0x3a -#define EC_WORD_FANTASTIC (EC_GROUP_SPEECH << 9) | 0x3b +#define EC_WORD_LISTEN ((EC_GROUP_SPEECH << EC_MASK_BITS) | 0) +#define EC_WORD_NOT_VERY ((EC_GROUP_SPEECH << EC_MASK_BITS) | 1) +#define EC_WORD_MEAN ((EC_GROUP_SPEECH << EC_MASK_BITS) | 2) +#define EC_WORD_LIE ((EC_GROUP_SPEECH << EC_MASK_BITS) | 3) +#define EC_WORD_LAY ((EC_GROUP_SPEECH << EC_MASK_BITS) | 4) +#define EC_WORD_RECOMMEND ((EC_GROUP_SPEECH << EC_MASK_BITS) | 5) +#define EC_WORD_NITWIT ((EC_GROUP_SPEECH << EC_MASK_BITS) | 6) +#define EC_WORD_QUITE ((EC_GROUP_SPEECH << EC_MASK_BITS) | 7) +#define EC_WORD_FROM ((EC_GROUP_SPEECH << EC_MASK_BITS) | 8) +#define EC_WORD_FEELING ((EC_GROUP_SPEECH << EC_MASK_BITS) | 9) +#define EC_WORD_BUT ((EC_GROUP_SPEECH << EC_MASK_BITS) | 10) +#define EC_WORD_HOWEVER ((EC_GROUP_SPEECH << EC_MASK_BITS) | 11) +#define EC_WORD_CASE ((EC_GROUP_SPEECH << EC_MASK_BITS) | 12) +#define EC_WORD_THE ((EC_GROUP_SPEECH << EC_MASK_BITS) | 13) +#define EC_WORD_MISS ((EC_GROUP_SPEECH << EC_MASK_BITS) | 14) +#define EC_WORD_HOW ((EC_GROUP_SPEECH << EC_MASK_BITS) | 15) +#define EC_WORD_HIT ((EC_GROUP_SPEECH << EC_MASK_BITS) | 16) +#define EC_WORD_ENOUGH ((EC_GROUP_SPEECH << EC_MASK_BITS) | 17) +#define EC_WORD_A_LOT ((EC_GROUP_SPEECH << EC_MASK_BITS) | 18) +#define EC_WORD_A_LITTLE ((EC_GROUP_SPEECH << EC_MASK_BITS) | 19) +#define EC_WORD_ABSOLUTELY ((EC_GROUP_SPEECH << EC_MASK_BITS) | 20) +#define EC_WORD_AND ((EC_GROUP_SPEECH << EC_MASK_BITS) | 21) +#define EC_WORD_ONLY ((EC_GROUP_SPEECH << EC_MASK_BITS) | 22) +#define EC_WORD_AROUND ((EC_GROUP_SPEECH << EC_MASK_BITS) | 23) +#define EC_WORD_PROBABLY ((EC_GROUP_SPEECH << EC_MASK_BITS) | 24) +#define EC_WORD_IF ((EC_GROUP_SPEECH << EC_MASK_BITS) | 25) +#define EC_WORD_VERY ((EC_GROUP_SPEECH << EC_MASK_BITS) | 26) +#define EC_WORD_A_TINY_BIT ((EC_GROUP_SPEECH << EC_MASK_BITS) | 27) +#define EC_WORD_WILD ((EC_GROUP_SPEECH << EC_MASK_BITS) | 28) +#define EC_WORD_THAT_S ((EC_GROUP_SPEECH << EC_MASK_BITS) | 29) +#define EC_WORD_JUST ((EC_GROUP_SPEECH << EC_MASK_BITS) | 30) +#define EC_WORD_EVEN_SO ((EC_GROUP_SPEECH << EC_MASK_BITS) | 31) +#define EC_WORD_MUST_BE ((EC_GROUP_SPEECH << EC_MASK_BITS) | 32) +#define EC_WORD_NATURALLY ((EC_GROUP_SPEECH << EC_MASK_BITS) | 33) +#define EC_WORD_FOR_NOW ((EC_GROUP_SPEECH << EC_MASK_BITS) | 34) +#define EC_WORD_UNDERSTOOD ((EC_GROUP_SPEECH << EC_MASK_BITS) | 35) +#define EC_WORD_JOKING ((EC_GROUP_SPEECH << EC_MASK_BITS) | 36) +#define EC_WORD_READY ((EC_GROUP_SPEECH << EC_MASK_BITS) | 37) +#define EC_WORD_SOMETHING ((EC_GROUP_SPEECH << EC_MASK_BITS) | 38) +#define EC_WORD_SOMEHOW ((EC_GROUP_SPEECH << EC_MASK_BITS) | 39) +#define EC_WORD_ALTHOUGH ((EC_GROUP_SPEECH << EC_MASK_BITS) | 40) +#define EC_WORD_ALSO ((EC_GROUP_SPEECH << EC_MASK_BITS) | 41) +#define EC_WORD_PERFECT ((EC_GROUP_SPEECH << EC_MASK_BITS) | 42) +#define EC_WORD_AS_MUCH_AS ((EC_GROUP_SPEECH << EC_MASK_BITS) | 43) +#define EC_WORD_REALLY ((EC_GROUP_SPEECH << EC_MASK_BITS) | 44) +#define EC_WORD_TRULY ((EC_GROUP_SPEECH << EC_MASK_BITS) | 45) +#define EC_WORD_SERIOUSLY ((EC_GROUP_SPEECH << EC_MASK_BITS) | 46) +#define EC_WORD_TOTALLY ((EC_GROUP_SPEECH << EC_MASK_BITS) | 47) +#define EC_WORD_UNTIL ((EC_GROUP_SPEECH << EC_MASK_BITS) | 48) +#define EC_WORD_AS_IF ((EC_GROUP_SPEECH << EC_MASK_BITS) | 49) +#define EC_WORD_MOOD ((EC_GROUP_SPEECH << EC_MASK_BITS) | 50) +#define EC_WORD_RATHER ((EC_GROUP_SPEECH << EC_MASK_BITS) | 51) +#define EC_WORD_AWFULLY ((EC_GROUP_SPEECH << EC_MASK_BITS) | 52) +#define EC_WORD_MODE ((EC_GROUP_SPEECH << EC_MASK_BITS) | 53) +#define EC_WORD_MORE ((EC_GROUP_SPEECH << EC_MASK_BITS) | 54) +#define EC_WORD_TOO_LATE ((EC_GROUP_SPEECH << EC_MASK_BITS) | 55) +#define EC_WORD_FINALLY ((EC_GROUP_SPEECH << EC_MASK_BITS) | 56) +#define EC_WORD_ANY ((EC_GROUP_SPEECH << EC_MASK_BITS) | 57) +#define EC_WORD_INSTEAD ((EC_GROUP_SPEECH << EC_MASK_BITS) | 58) +#define EC_WORD_FANTASTIC ((EC_GROUP_SPEECH << EC_MASK_BITS) | 59) // ENDINGS -#define EC_WORD_WILL (EC_GROUP_ENDINGS << 9) | 0x0 -#define EC_WORD_WILL_BE_HERE (EC_GROUP_ENDINGS << 9) | 0x1 -#define EC_WORD_OR (EC_GROUP_ENDINGS << 9) | 0x2 -#define EC_WORD_TIMES (EC_GROUP_ENDINGS << 9) | 0x3 -#define EC_WORD_WONDER (EC_GROUP_ENDINGS << 9) | 0x4 -#define EC_WORD_IS_IT_QUES (EC_GROUP_ENDINGS << 9) | 0x5 -#define EC_WORD_BE (EC_GROUP_ENDINGS << 9) | 0x6 -#define EC_WORD_GIMME (EC_GROUP_ENDINGS << 9) | 0x7 -#define EC_WORD_COULD (EC_GROUP_ENDINGS << 9) | 0x8 -#define EC_WORD_LIKELY_TO (EC_GROUP_ENDINGS << 9) | 0x9 -#define EC_WORD_WOULD (EC_GROUP_ENDINGS << 9) | 0xa -#define EC_WORD_IS (EC_GROUP_ENDINGS << 9) | 0xb -#define EC_WORD_ISN_T_IT_QUES (EC_GROUP_ENDINGS << 9) | 0xc -#define EC_WORD_LET_S (EC_GROUP_ENDINGS << 9) | 0xd -#define EC_WORD_OTHER (EC_GROUP_ENDINGS << 9) | 0xe -#define EC_WORD_ARE (EC_GROUP_ENDINGS << 9) | 0xf -#define EC_WORD_WAS (EC_GROUP_ENDINGS << 9) | 0x10 -#define EC_WORD_WERE (EC_GROUP_ENDINGS << 9) | 0x11 -#define EC_WORD_THOSE (EC_GROUP_ENDINGS << 9) | 0x12 -#define EC_WORD_ISN_T (EC_GROUP_ENDINGS << 9) | 0x13 -#define EC_WORD_WON_T (EC_GROUP_ENDINGS << 9) | 0x14 -#define EC_WORD_CAN_T (EC_GROUP_ENDINGS << 9) | 0x15 -#define EC_WORD_CAN (EC_GROUP_ENDINGS << 9) | 0x16 -#define EC_WORD_DON_T (EC_GROUP_ENDINGS << 9) | 0x17 -#define EC_WORD_DO (EC_GROUP_ENDINGS << 9) | 0x18 -#define EC_WORD_DOES (EC_GROUP_ENDINGS << 9) | 0x19 -#define EC_WORD_WHOM (EC_GROUP_ENDINGS << 9) | 0x1a -#define EC_WORD_WHICH (EC_GROUP_ENDINGS << 9) | 0x1b -#define EC_WORD_WASN_T (EC_GROUP_ENDINGS << 9) | 0x1c -#define EC_WORD_WEREN_T (EC_GROUP_ENDINGS << 9) | 0x1d -#define EC_WORD_HAVE (EC_GROUP_ENDINGS << 9) | 0x1e -#define EC_WORD_HAVEN_T (EC_GROUP_ENDINGS << 9) | 0x1f -#define EC_WORD_A (EC_GROUP_ENDINGS << 9) | 0x20 -#define EC_WORD_AN (EC_GROUP_ENDINGS << 9) | 0x21 -#define EC_WORD_NOT (EC_GROUP_ENDINGS << 9) | 0x22 -#define EC_WORD_THERE (EC_GROUP_ENDINGS << 9) | 0x23 -#define EC_WORD_OK_QUES (EC_GROUP_ENDINGS << 9) | 0x24 -#define EC_WORD_SO (EC_GROUP_ENDINGS << 9) | 0x25 -#define EC_WORD_MAYBE (EC_GROUP_ENDINGS << 9) | 0x26 -#define EC_WORD_ABOUT (EC_GROUP_ENDINGS << 9) | 0x27 -#define EC_WORD_OVER (EC_GROUP_ENDINGS << 9) | 0x28 -#define EC_WORD_IT (EC_GROUP_ENDINGS << 9) | 0x29 -#define EC_WORD_ALL (EC_GROUP_ENDINGS << 9) | 0x2a -#define EC_WORD_FOR (EC_GROUP_ENDINGS << 9) | 0x2b -#define EC_WORD_ON (EC_GROUP_ENDINGS << 9) | 0x2c -#define EC_WORD_OFF (EC_GROUP_ENDINGS << 9) | 0x2d -#define EC_WORD_AS (EC_GROUP_ENDINGS << 9) | 0x2e -#define EC_WORD_TO (EC_GROUP_ENDINGS << 9) | 0x2f -#define EC_WORD_WITH (EC_GROUP_ENDINGS << 9) | 0x30 -#define EC_WORD_BETTER (EC_GROUP_ENDINGS << 9) | 0x31 -#define EC_WORD_EVER (EC_GROUP_ENDINGS << 9) | 0x32 -#define EC_WORD_SINCE (EC_GROUP_ENDINGS << 9) | 0x33 -#define EC_WORD_OF (EC_GROUP_ENDINGS << 9) | 0x34 -#define EC_WORD_BELONGS_TO (EC_GROUP_ENDINGS << 9) | 0x35 -#define EC_WORD_AT (EC_GROUP_ENDINGS << 9) | 0x36 -#define EC_WORD_IN (EC_GROUP_ENDINGS << 9) | 0x37 -#define EC_WORD_OUT (EC_GROUP_ENDINGS << 9) | 0x38 -#define EC_WORD_TOO (EC_GROUP_ENDINGS << 9) | 0x39 -#define EC_WORD_LIKE (EC_GROUP_ENDINGS << 9) | 0x3a -#define EC_WORD_DID (EC_GROUP_ENDINGS << 9) | 0x3b -#define EC_WORD_DIDN_T (EC_GROUP_ENDINGS << 9) | 0x3c -#define EC_WORD_DOESN_T (EC_GROUP_ENDINGS << 9) | 0x3d -#define EC_WORD_WITHOUT (EC_GROUP_ENDINGS << 9) | 0x3e -#define EC_WORD_AFTER (EC_GROUP_ENDINGS << 9) | 0x3f -#define EC_WORD_BEFORE (EC_GROUP_ENDINGS << 9) | 0x40 -#define EC_WORD_WHILE (EC_GROUP_ENDINGS << 9) | 0x41 -#define EC_WORD_THAN (EC_GROUP_ENDINGS << 9) | 0x42 -#define EC_WORD_ONCE (EC_GROUP_ENDINGS << 9) | 0x43 -#define EC_WORD_ANYWHERE (EC_GROUP_ENDINGS << 9) | 0x44 +#define EC_WORD_WILL ((EC_GROUP_ENDINGS << EC_MASK_BITS) | 0) +#define EC_WORD_WILL_BE_HERE ((EC_GROUP_ENDINGS << EC_MASK_BITS) | 1) +#define EC_WORD_OR ((EC_GROUP_ENDINGS << EC_MASK_BITS) | 2) +#define EC_WORD_TIMES ((EC_GROUP_ENDINGS << EC_MASK_BITS) | 3) +#define EC_WORD_WONDER ((EC_GROUP_ENDINGS << EC_MASK_BITS) | 4) +#define EC_WORD_IS_IT_QUES ((EC_GROUP_ENDINGS << EC_MASK_BITS) | 5) +#define EC_WORD_BE ((EC_GROUP_ENDINGS << EC_MASK_BITS) | 6) +#define EC_WORD_GIMME ((EC_GROUP_ENDINGS << EC_MASK_BITS) | 7) +#define EC_WORD_COULD ((EC_GROUP_ENDINGS << EC_MASK_BITS) | 8) +#define EC_WORD_LIKELY_TO ((EC_GROUP_ENDINGS << EC_MASK_BITS) | 9) +#define EC_WORD_WOULD ((EC_GROUP_ENDINGS << EC_MASK_BITS) | 10) +#define EC_WORD_IS ((EC_GROUP_ENDINGS << EC_MASK_BITS) | 11) +#define EC_WORD_ISN_T_IT_QUES ((EC_GROUP_ENDINGS << EC_MASK_BITS) | 12) +#define EC_WORD_LET_S ((EC_GROUP_ENDINGS << EC_MASK_BITS) | 13) +#define EC_WORD_OTHER ((EC_GROUP_ENDINGS << EC_MASK_BITS) | 14) +#define EC_WORD_ARE ((EC_GROUP_ENDINGS << EC_MASK_BITS) | 15) +#define EC_WORD_WAS ((EC_GROUP_ENDINGS << EC_MASK_BITS) | 16) +#define EC_WORD_WERE ((EC_GROUP_ENDINGS << EC_MASK_BITS) | 17) +#define EC_WORD_THOSE ((EC_GROUP_ENDINGS << EC_MASK_BITS) | 18) +#define EC_WORD_ISN_T ((EC_GROUP_ENDINGS << EC_MASK_BITS) | 19) +#define EC_WORD_WON_T ((EC_GROUP_ENDINGS << EC_MASK_BITS) | 20) +#define EC_WORD_CAN_T ((EC_GROUP_ENDINGS << EC_MASK_BITS) | 21) +#define EC_WORD_CAN ((EC_GROUP_ENDINGS << EC_MASK_BITS) | 22) +#define EC_WORD_DON_T ((EC_GROUP_ENDINGS << EC_MASK_BITS) | 23) +#define EC_WORD_DO ((EC_GROUP_ENDINGS << EC_MASK_BITS) | 24) +#define EC_WORD_DOES ((EC_GROUP_ENDINGS << EC_MASK_BITS) | 25) +#define EC_WORD_WHOM ((EC_GROUP_ENDINGS << EC_MASK_BITS) | 26) +#define EC_WORD_WHICH ((EC_GROUP_ENDINGS << EC_MASK_BITS) | 27) +#define EC_WORD_WASN_T ((EC_GROUP_ENDINGS << EC_MASK_BITS) | 28) +#define EC_WORD_WEREN_T ((EC_GROUP_ENDINGS << EC_MASK_BITS) | 29) +#define EC_WORD_HAVE ((EC_GROUP_ENDINGS << EC_MASK_BITS) | 30) +#define EC_WORD_HAVEN_T ((EC_GROUP_ENDINGS << EC_MASK_BITS) | 31) +#define EC_WORD_A ((EC_GROUP_ENDINGS << EC_MASK_BITS) | 32) +#define EC_WORD_AN ((EC_GROUP_ENDINGS << EC_MASK_BITS) | 33) +#define EC_WORD_NOT ((EC_GROUP_ENDINGS << EC_MASK_BITS) | 34) +#define EC_WORD_THERE ((EC_GROUP_ENDINGS << EC_MASK_BITS) | 35) +#define EC_WORD_OK_QUES ((EC_GROUP_ENDINGS << EC_MASK_BITS) | 36) +#define EC_WORD_SO ((EC_GROUP_ENDINGS << EC_MASK_BITS) | 37) +#define EC_WORD_MAYBE ((EC_GROUP_ENDINGS << EC_MASK_BITS) | 38) +#define EC_WORD_ABOUT ((EC_GROUP_ENDINGS << EC_MASK_BITS) | 39) +#define EC_WORD_OVER ((EC_GROUP_ENDINGS << EC_MASK_BITS) | 40) +#define EC_WORD_IT ((EC_GROUP_ENDINGS << EC_MASK_BITS) | 41) +#define EC_WORD_ALL ((EC_GROUP_ENDINGS << EC_MASK_BITS) | 42) +#define EC_WORD_FOR ((EC_GROUP_ENDINGS << EC_MASK_BITS) | 43) +#define EC_WORD_ON ((EC_GROUP_ENDINGS << EC_MASK_BITS) | 44) +#define EC_WORD_OFF ((EC_GROUP_ENDINGS << EC_MASK_BITS) | 45) +#define EC_WORD_AS ((EC_GROUP_ENDINGS << EC_MASK_BITS) | 46) +#define EC_WORD_TO ((EC_GROUP_ENDINGS << EC_MASK_BITS) | 47) +#define EC_WORD_WITH ((EC_GROUP_ENDINGS << EC_MASK_BITS) | 48) +#define EC_WORD_BETTER ((EC_GROUP_ENDINGS << EC_MASK_BITS) | 49) +#define EC_WORD_EVER ((EC_GROUP_ENDINGS << EC_MASK_BITS) | 50) +#define EC_WORD_SINCE ((EC_GROUP_ENDINGS << EC_MASK_BITS) | 51) +#define EC_WORD_OF ((EC_GROUP_ENDINGS << EC_MASK_BITS) | 52) +#define EC_WORD_BELONGS_TO ((EC_GROUP_ENDINGS << EC_MASK_BITS) | 53) +#define EC_WORD_AT ((EC_GROUP_ENDINGS << EC_MASK_BITS) | 54) +#define EC_WORD_IN ((EC_GROUP_ENDINGS << EC_MASK_BITS) | 55) +#define EC_WORD_OUT ((EC_GROUP_ENDINGS << EC_MASK_BITS) | 56) +#define EC_WORD_TOO ((EC_GROUP_ENDINGS << EC_MASK_BITS) | 57) +#define EC_WORD_LIKE ((EC_GROUP_ENDINGS << EC_MASK_BITS) | 58) +#define EC_WORD_DID ((EC_GROUP_ENDINGS << EC_MASK_BITS) | 59) +#define EC_WORD_DIDN_T ((EC_GROUP_ENDINGS << EC_MASK_BITS) | 60) +#define EC_WORD_DOESN_T ((EC_GROUP_ENDINGS << EC_MASK_BITS) | 61) +#define EC_WORD_WITHOUT ((EC_GROUP_ENDINGS << EC_MASK_BITS) | 62) +#define EC_WORD_AFTER ((EC_GROUP_ENDINGS << EC_MASK_BITS) | 63) +#define EC_WORD_BEFORE ((EC_GROUP_ENDINGS << EC_MASK_BITS) | 64) +#define EC_WORD_WHILE ((EC_GROUP_ENDINGS << EC_MASK_BITS) | 65) +#define EC_WORD_THAN ((EC_GROUP_ENDINGS << EC_MASK_BITS) | 66) +#define EC_WORD_ONCE ((EC_GROUP_ENDINGS << EC_MASK_BITS) | 67) +#define EC_WORD_ANYWHERE ((EC_GROUP_ENDINGS << EC_MASK_BITS) | 68) // FEELINGS -#define EC_WORD_MEET (EC_GROUP_FEELINGS << 9) | 0x0 -#define EC_WORD_PLAY (EC_GROUP_FEELINGS << 9) | 0x1 -#define EC_WORD_HURRIED (EC_GROUP_FEELINGS << 9) | 0x2 -#define EC_WORD_GOES (EC_GROUP_FEELINGS << 9) | 0x3 -#define EC_WORD_GIDDY (EC_GROUP_FEELINGS << 9) | 0x4 -#define EC_WORD_HAPPY (EC_GROUP_FEELINGS << 9) | 0x5 -#define EC_WORD_HAPPINESS (EC_GROUP_FEELINGS << 9) | 0x6 -#define EC_WORD_EXCITE (EC_GROUP_FEELINGS << 9) | 0x7 -#define EC_WORD_IMPORTANT (EC_GROUP_FEELINGS << 9) | 0x8 -#define EC_WORD_FUNNY (EC_GROUP_FEELINGS << 9) | 0x9 -#define EC_WORD_GOT (EC_GROUP_FEELINGS << 9) | 0xa -#define EC_WORD_GO_HOME (EC_GROUP_FEELINGS << 9) | 0xb -#define EC_WORD_DISAPPOINTED (EC_GROUP_FEELINGS << 9) | 0xc -#define EC_WORD_DISAPPOINTS (EC_GROUP_FEELINGS << 9) | 0xd -#define EC_WORD_SAD (EC_GROUP_FEELINGS << 9) | 0xe -#define EC_WORD_TRY (EC_GROUP_FEELINGS << 9) | 0xf -#define EC_WORD_TRIES (EC_GROUP_FEELINGS << 9) | 0x10 -#define EC_WORD_HEARS (EC_GROUP_FEELINGS << 9) | 0x11 -#define EC_WORD_THINK (EC_GROUP_FEELINGS << 9) | 0x12 -#define EC_WORD_HEAR (EC_GROUP_FEELINGS << 9) | 0x13 -#define EC_WORD_WANTS (EC_GROUP_FEELINGS << 9) | 0x14 -#define EC_WORD_MISHEARD (EC_GROUP_FEELINGS << 9) | 0x15 -#define EC_WORD_DISLIKE (EC_GROUP_FEELINGS << 9) | 0x16 -#define EC_WORD_ANGRY (EC_GROUP_FEELINGS << 9) | 0x17 -#define EC_WORD_ANGER (EC_GROUP_FEELINGS << 9) | 0x18 -#define EC_WORD_SCARY (EC_GROUP_FEELINGS << 9) | 0x19 -#define EC_WORD_LONESOME (EC_GROUP_FEELINGS << 9) | 0x1a -#define EC_WORD_DISAPPOINT (EC_GROUP_FEELINGS << 9) | 0x1b -#define EC_WORD_JOY (EC_GROUP_FEELINGS << 9) | 0x1c -#define EC_WORD_GETS (EC_GROUP_FEELINGS << 9) | 0x1d -#define EC_WORD_NEVER (EC_GROUP_FEELINGS << 9) | 0x1e -#define EC_WORD_DARN (EC_GROUP_FEELINGS << 9) | 0x1f -#define EC_WORD_DOWNCAST (EC_GROUP_FEELINGS << 9) | 0x20 -#define EC_WORD_INCREDIBLE (EC_GROUP_FEELINGS << 9) | 0x21 -#define EC_WORD_LIKES (EC_GROUP_FEELINGS << 9) | 0x22 -#define EC_WORD_DISLIKES (EC_GROUP_FEELINGS << 9) | 0x23 -#define EC_WORD_BORING (EC_GROUP_FEELINGS << 9) | 0x24 -#define EC_WORD_CARE (EC_GROUP_FEELINGS << 9) | 0x25 -#define EC_WORD_CARES (EC_GROUP_FEELINGS << 9) | 0x26 -#define EC_WORD_ALL_RIGHT (EC_GROUP_FEELINGS << 9) | 0x27 -#define EC_WORD_ADORE (EC_GROUP_FEELINGS << 9) | 0x28 -#define EC_WORD_DISASTER (EC_GROUP_FEELINGS << 9) | 0x29 -#define EC_WORD_ENJOY (EC_GROUP_FEELINGS << 9) | 0x2a -#define EC_WORD_ENJOYS (EC_GROUP_FEELINGS << 9) | 0x2b -#define EC_WORD_EAT (EC_GROUP_FEELINGS << 9) | 0x2c -#define EC_WORD_LACKING (EC_GROUP_FEELINGS << 9) | 0x2d -#define EC_WORD_BAD (EC_GROUP_FEELINGS << 9) | 0x2e -#define EC_WORD_HARD (EC_GROUP_FEELINGS << 9) | 0x2f -#define EC_WORD_TERRIBLE (EC_GROUP_FEELINGS << 9) | 0x30 -#define EC_WORD_SHOULD (EC_GROUP_FEELINGS << 9) | 0x31 -#define EC_WORD_NICE (EC_GROUP_FEELINGS << 9) | 0x32 -#define EC_WORD_DRINK (EC_GROUP_FEELINGS << 9) | 0x33 -#define EC_WORD_SURPRISE (EC_GROUP_FEELINGS << 9) | 0x34 -#define EC_WORD_FEAR (EC_GROUP_FEELINGS << 9) | 0x35 -#define EC_WORD_WANT (EC_GROUP_FEELINGS << 9) | 0x36 -#define EC_WORD_WAIT (EC_GROUP_FEELINGS << 9) | 0x37 -#define EC_WORD_SATISFIED (EC_GROUP_FEELINGS << 9) | 0x38 -#define EC_WORD_SEE (EC_GROUP_FEELINGS << 9) | 0x39 -#define EC_WORD_RARE (EC_GROUP_FEELINGS << 9) | 0x3a -#define EC_WORD_NEGATIVE (EC_GROUP_FEELINGS << 9) | 0x3b -#define EC_WORD_DONE (EC_GROUP_FEELINGS << 9) | 0x3c -#define EC_WORD_DANGER (EC_GROUP_FEELINGS << 9) | 0x3d -#define EC_WORD_DEFEATED (EC_GROUP_FEELINGS << 9) | 0x3e -#define EC_WORD_BEAT (EC_GROUP_FEELINGS << 9) | 0x3f -#define EC_WORD_GREAT (EC_GROUP_FEELINGS << 9) | 0x40 -#define EC_WORD_ROMANTIC (EC_GROUP_FEELINGS << 9) | 0x41 -#define EC_WORD_QUESTION (EC_GROUP_FEELINGS << 9) | 0x42 -#define EC_WORD_UNDERSTAND (EC_GROUP_FEELINGS << 9) | 0x43 -#define EC_WORD_UNDERSTANDS (EC_GROUP_FEELINGS << 9) | 0x44 +#define EC_WORD_MEET ((EC_GROUP_FEELINGS << EC_MASK_BITS) | 0) +#define EC_WORD_PLAY ((EC_GROUP_FEELINGS << EC_MASK_BITS) | 1) +#define EC_WORD_HURRIED ((EC_GROUP_FEELINGS << EC_MASK_BITS) | 2) +#define EC_WORD_GOES ((EC_GROUP_FEELINGS << EC_MASK_BITS) | 3) +#define EC_WORD_GIDDY ((EC_GROUP_FEELINGS << EC_MASK_BITS) | 4) +#define EC_WORD_HAPPY ((EC_GROUP_FEELINGS << EC_MASK_BITS) | 5) +#define EC_WORD_HAPPINESS ((EC_GROUP_FEELINGS << EC_MASK_BITS) | 6) +#define EC_WORD_EXCITE ((EC_GROUP_FEELINGS << EC_MASK_BITS) | 7) +#define EC_WORD_IMPORTANT ((EC_GROUP_FEELINGS << EC_MASK_BITS) | 8) +#define EC_WORD_FUNNY ((EC_GROUP_FEELINGS << EC_MASK_BITS) | 9) +#define EC_WORD_GOT ((EC_GROUP_FEELINGS << EC_MASK_BITS) | 10) +#define EC_WORD_GO_HOME ((EC_GROUP_FEELINGS << EC_MASK_BITS) | 11) +#define EC_WORD_DISAPPOINTED ((EC_GROUP_FEELINGS << EC_MASK_BITS) | 12) +#define EC_WORD_DISAPPOINTS ((EC_GROUP_FEELINGS << EC_MASK_BITS) | 13) +#define EC_WORD_SAD ((EC_GROUP_FEELINGS << EC_MASK_BITS) | 14) +#define EC_WORD_TRY ((EC_GROUP_FEELINGS << EC_MASK_BITS) | 15) +#define EC_WORD_TRIES ((EC_GROUP_FEELINGS << EC_MASK_BITS) | 16) +#define EC_WORD_HEARS ((EC_GROUP_FEELINGS << EC_MASK_BITS) | 17) +#define EC_WORD_THINK ((EC_GROUP_FEELINGS << EC_MASK_BITS) | 18) +#define EC_WORD_HEAR ((EC_GROUP_FEELINGS << EC_MASK_BITS) | 19) +#define EC_WORD_WANTS ((EC_GROUP_FEELINGS << EC_MASK_BITS) | 20) +#define EC_WORD_MISHEARD ((EC_GROUP_FEELINGS << EC_MASK_BITS) | 21) +#define EC_WORD_DISLIKE ((EC_GROUP_FEELINGS << EC_MASK_BITS) | 22) +#define EC_WORD_ANGRY ((EC_GROUP_FEELINGS << EC_MASK_BITS) | 23) +#define EC_WORD_ANGER ((EC_GROUP_FEELINGS << EC_MASK_BITS) | 24) +#define EC_WORD_SCARY ((EC_GROUP_FEELINGS << EC_MASK_BITS) | 25) +#define EC_WORD_LONESOME ((EC_GROUP_FEELINGS << EC_MASK_BITS) | 26) +#define EC_WORD_DISAPPOINT ((EC_GROUP_FEELINGS << EC_MASK_BITS) | 27) +#define EC_WORD_JOY ((EC_GROUP_FEELINGS << EC_MASK_BITS) | 28) +#define EC_WORD_GETS ((EC_GROUP_FEELINGS << EC_MASK_BITS) | 29) +#define EC_WORD_NEVER ((EC_GROUP_FEELINGS << EC_MASK_BITS) | 30) +#define EC_WORD_DARN ((EC_GROUP_FEELINGS << EC_MASK_BITS) | 31) +#define EC_WORD_DOWNCAST ((EC_GROUP_FEELINGS << EC_MASK_BITS) | 32) +#define EC_WORD_INCREDIBLE ((EC_GROUP_FEELINGS << EC_MASK_BITS) | 33) +#define EC_WORD_LIKES ((EC_GROUP_FEELINGS << EC_MASK_BITS) | 34) +#define EC_WORD_DISLIKES ((EC_GROUP_FEELINGS << EC_MASK_BITS) | 35) +#define EC_WORD_BORING ((EC_GROUP_FEELINGS << EC_MASK_BITS) | 36) +#define EC_WORD_CARE ((EC_GROUP_FEELINGS << EC_MASK_BITS) | 37) +#define EC_WORD_CARES ((EC_GROUP_FEELINGS << EC_MASK_BITS) | 38) +#define EC_WORD_ALL_RIGHT ((EC_GROUP_FEELINGS << EC_MASK_BITS) | 39) +#define EC_WORD_ADORE ((EC_GROUP_FEELINGS << EC_MASK_BITS) | 40) +#define EC_WORD_DISASTER ((EC_GROUP_FEELINGS << EC_MASK_BITS) | 41) +#define EC_WORD_ENJOY ((EC_GROUP_FEELINGS << EC_MASK_BITS) | 42) +#define EC_WORD_ENJOYS ((EC_GROUP_FEELINGS << EC_MASK_BITS) | 43) +#define EC_WORD_EAT ((EC_GROUP_FEELINGS << EC_MASK_BITS) | 44) +#define EC_WORD_LACKING ((EC_GROUP_FEELINGS << EC_MASK_BITS) | 45) +#define EC_WORD_BAD ((EC_GROUP_FEELINGS << EC_MASK_BITS) | 46) +#define EC_WORD_HARD ((EC_GROUP_FEELINGS << EC_MASK_BITS) | 47) +#define EC_WORD_TERRIBLE ((EC_GROUP_FEELINGS << EC_MASK_BITS) | 48) +#define EC_WORD_SHOULD ((EC_GROUP_FEELINGS << EC_MASK_BITS) | 49) +#define EC_WORD_NICE ((EC_GROUP_FEELINGS << EC_MASK_BITS) | 50) +#define EC_WORD_DRINK ((EC_GROUP_FEELINGS << EC_MASK_BITS) | 51) +#define EC_WORD_SURPRISE ((EC_GROUP_FEELINGS << EC_MASK_BITS) | 52) +#define EC_WORD_FEAR ((EC_GROUP_FEELINGS << EC_MASK_BITS) | 53) +#define EC_WORD_WANT ((EC_GROUP_FEELINGS << EC_MASK_BITS) | 54) +#define EC_WORD_WAIT ((EC_GROUP_FEELINGS << EC_MASK_BITS) | 55) +#define EC_WORD_SATISFIED ((EC_GROUP_FEELINGS << EC_MASK_BITS) | 56) +#define EC_WORD_SEE ((EC_GROUP_FEELINGS << EC_MASK_BITS) | 57) +#define EC_WORD_RARE ((EC_GROUP_FEELINGS << EC_MASK_BITS) | 58) +#define EC_WORD_NEGATIVE ((EC_GROUP_FEELINGS << EC_MASK_BITS) | 59) +#define EC_WORD_DONE ((EC_GROUP_FEELINGS << EC_MASK_BITS) | 60) +#define EC_WORD_DANGER ((EC_GROUP_FEELINGS << EC_MASK_BITS) | 61) +#define EC_WORD_DEFEATED ((EC_GROUP_FEELINGS << EC_MASK_BITS) | 62) +#define EC_WORD_BEAT ((EC_GROUP_FEELINGS << EC_MASK_BITS) | 63) +#define EC_WORD_GREAT ((EC_GROUP_FEELINGS << EC_MASK_BITS) | 64) +#define EC_WORD_ROMANTIC ((EC_GROUP_FEELINGS << EC_MASK_BITS) | 65) +#define EC_WORD_QUESTION ((EC_GROUP_FEELINGS << EC_MASK_BITS) | 66) +#define EC_WORD_UNDERSTAND ((EC_GROUP_FEELINGS << EC_MASK_BITS) | 67) +#define EC_WORD_UNDERSTANDS ((EC_GROUP_FEELINGS << EC_MASK_BITS) | 68) // CONDITIONS -#define EC_WORD_HOT (EC_GROUP_CONDITIONS << 9) | 0x0 -#define EC_WORD_EXISTS (EC_GROUP_CONDITIONS << 9) | 0x1 -#define EC_WORD_EXCESS (EC_GROUP_CONDITIONS << 9) | 0x2 -#define EC_WORD_APPROVED (EC_GROUP_CONDITIONS << 9) | 0x3 -#define EC_WORD_HAS (EC_GROUP_CONDITIONS << 9) | 0x4 -#define EC_WORD_GOOD (EC_GROUP_CONDITIONS << 9) | 0x5 -#define EC_WORD_LESS (EC_GROUP_CONDITIONS << 9) | 0x6 -#define EC_WORD_MOMENTUM (EC_GROUP_CONDITIONS << 9) | 0x7 -#define EC_WORD_GOING (EC_GROUP_CONDITIONS << 9) | 0x8 -#define EC_WORD_WEIRD (EC_GROUP_CONDITIONS << 9) | 0x9 -#define EC_WORD_BUSY (EC_GROUP_CONDITIONS << 9) | 0xa -#define EC_WORD_TOGETHER (EC_GROUP_CONDITIONS << 9) | 0xb -#define EC_WORD_FULL (EC_GROUP_CONDITIONS << 9) | 0xc -#define EC_WORD_ABSENT (EC_GROUP_CONDITIONS << 9) | 0xd -#define EC_WORD_BEING (EC_GROUP_CONDITIONS << 9) | 0xe -#define EC_WORD_NEED (EC_GROUP_CONDITIONS << 9) | 0xf -#define EC_WORD_TASTY (EC_GROUP_CONDITIONS << 9) | 0x10 -#define EC_WORD_SKILLED (EC_GROUP_CONDITIONS << 9) | 0x11 -#define EC_WORD_NOISY (EC_GROUP_CONDITIONS << 9) | 0x12 -#define EC_WORD_BIG (EC_GROUP_CONDITIONS << 9) | 0x13 -#define EC_WORD_LATE (EC_GROUP_CONDITIONS << 9) | 0x14 -#define EC_WORD_CLOSE (EC_GROUP_CONDITIONS << 9) | 0x15 -#define EC_WORD_DOCILE (EC_GROUP_CONDITIONS << 9) | 0x16 -#define EC_WORD_AMUSING (EC_GROUP_CONDITIONS << 9) | 0x17 -#define EC_WORD_ENTERTAINING (EC_GROUP_CONDITIONS << 9) | 0x18 -#define EC_WORD_PERFECTION (EC_GROUP_CONDITIONS << 9) | 0x19 -#define EC_WORD_PRETTY (EC_GROUP_CONDITIONS << 9) | 0x1a -#define EC_WORD_HEALTHY (EC_GROUP_CONDITIONS << 9) | 0x1b -#define EC_WORD_EXCELLENT (EC_GROUP_CONDITIONS << 9) | 0x1c -#define EC_WORD_UPSIDE_DOWN (EC_GROUP_CONDITIONS << 9) | 0x1d -#define EC_WORD_COLD (EC_GROUP_CONDITIONS << 9) | 0x1e -#define EC_WORD_REFRESHING (EC_GROUP_CONDITIONS << 9) | 0x1f -#define EC_WORD_UNAVOIDABLE (EC_GROUP_CONDITIONS << 9) | 0x20 -#define EC_WORD_MUCH (EC_GROUP_CONDITIONS << 9) | 0x21 -#define EC_WORD_OVERWHELMING (EC_GROUP_CONDITIONS << 9) | 0x22 -#define EC_WORD_FABULOUS (EC_GROUP_CONDITIONS << 9) | 0x23 -#define EC_WORD_ELSE (EC_GROUP_CONDITIONS << 9) | 0x24 -#define EC_WORD_EXPENSIVE (EC_GROUP_CONDITIONS << 9) | 0x25 -#define EC_WORD_CORRECT (EC_GROUP_CONDITIONS << 9) | 0x26 -#define EC_WORD_IMPOSSIBLE (EC_GROUP_CONDITIONS << 9) | 0x27 -#define EC_WORD_SMALL (EC_GROUP_CONDITIONS << 9) | 0x28 -#define EC_WORD_DIFFERENT (EC_GROUP_CONDITIONS << 9) | 0x29 -#define EC_WORD_TIRED (EC_GROUP_CONDITIONS << 9) | 0x2a -#define EC_WORD_SKILL (EC_GROUP_CONDITIONS << 9) | 0x2b -#define EC_WORD_TOP (EC_GROUP_CONDITIONS << 9) | 0x2c -#define EC_WORD_NON_STOP (EC_GROUP_CONDITIONS << 9) | 0x2d -#define EC_WORD_PREPOSTEROUS (EC_GROUP_CONDITIONS << 9) | 0x2e -#define EC_WORD_NONE (EC_GROUP_CONDITIONS << 9) | 0x2f -#define EC_WORD_NOTHING (EC_GROUP_CONDITIONS << 9) | 0x30 -#define EC_WORD_NATURAL (EC_GROUP_CONDITIONS << 9) | 0x31 -#define EC_WORD_BECOMES (EC_GROUP_CONDITIONS << 9) | 0x32 -#define EC_WORD_LUKEWARM (EC_GROUP_CONDITIONS << 9) | 0x33 -#define EC_WORD_FAST (EC_GROUP_CONDITIONS << 9) | 0x34 -#define EC_WORD_LOW (EC_GROUP_CONDITIONS << 9) | 0x35 -#define EC_WORD_AWFUL (EC_GROUP_CONDITIONS << 9) | 0x36 -#define EC_WORD_ALONE (EC_GROUP_CONDITIONS << 9) | 0x37 -#define EC_WORD_BORED (EC_GROUP_CONDITIONS << 9) | 0x38 -#define EC_WORD_SECRET (EC_GROUP_CONDITIONS << 9) | 0x39 -#define EC_WORD_MYSTERY (EC_GROUP_CONDITIONS << 9) | 0x3a -#define EC_WORD_LACKS (EC_GROUP_CONDITIONS << 9) | 0x3b -#define EC_WORD_BEST (EC_GROUP_CONDITIONS << 9) | 0x3c -#define EC_WORD_LOUSY (EC_GROUP_CONDITIONS << 9) | 0x3d -#define EC_WORD_MISTAKE (EC_GROUP_CONDITIONS << 9) | 0x3e -#define EC_WORD_KIND (EC_GROUP_CONDITIONS << 9) | 0x3f -#define EC_WORD_WELL (EC_GROUP_CONDITIONS << 9) | 0x40 -#define EC_WORD_WEAKENED (EC_GROUP_CONDITIONS << 9) | 0x41 -#define EC_WORD_SIMPLE (EC_GROUP_CONDITIONS << 9) | 0x42 -#define EC_WORD_SEEMS (EC_GROUP_CONDITIONS << 9) | 0x43 -#define EC_WORD_BADLY (EC_GROUP_CONDITIONS << 9) | 0x44 +#define EC_WORD_HOT ((EC_GROUP_CONDITIONS << EC_MASK_BITS) | 0) +#define EC_WORD_EXISTS ((EC_GROUP_CONDITIONS << EC_MASK_BITS) | 1) +#define EC_WORD_EXCESS ((EC_GROUP_CONDITIONS << EC_MASK_BITS) | 2) +#define EC_WORD_APPROVED ((EC_GROUP_CONDITIONS << EC_MASK_BITS) | 3) +#define EC_WORD_HAS ((EC_GROUP_CONDITIONS << EC_MASK_BITS) | 4) +#define EC_WORD_GOOD ((EC_GROUP_CONDITIONS << EC_MASK_BITS) | 5) +#define EC_WORD_LESS ((EC_GROUP_CONDITIONS << EC_MASK_BITS) | 6) +#define EC_WORD_MOMENTUM ((EC_GROUP_CONDITIONS << EC_MASK_BITS) | 7) +#define EC_WORD_GOING ((EC_GROUP_CONDITIONS << EC_MASK_BITS) | 8) +#define EC_WORD_WEIRD ((EC_GROUP_CONDITIONS << EC_MASK_BITS) | 9) +#define EC_WORD_BUSY ((EC_GROUP_CONDITIONS << EC_MASK_BITS) | 10) +#define EC_WORD_TOGETHER ((EC_GROUP_CONDITIONS << EC_MASK_BITS) | 11) +#define EC_WORD_FULL ((EC_GROUP_CONDITIONS << EC_MASK_BITS) | 12) +#define EC_WORD_ABSENT ((EC_GROUP_CONDITIONS << EC_MASK_BITS) | 13) +#define EC_WORD_BEING ((EC_GROUP_CONDITIONS << EC_MASK_BITS) | 14) +#define EC_WORD_NEED ((EC_GROUP_CONDITIONS << EC_MASK_BITS) | 15) +#define EC_WORD_TASTY ((EC_GROUP_CONDITIONS << EC_MASK_BITS) | 16) +#define EC_WORD_SKILLED ((EC_GROUP_CONDITIONS << EC_MASK_BITS) | 17) +#define EC_WORD_NOISY ((EC_GROUP_CONDITIONS << EC_MASK_BITS) | 18) +#define EC_WORD_BIG ((EC_GROUP_CONDITIONS << EC_MASK_BITS) | 19) +#define EC_WORD_LATE ((EC_GROUP_CONDITIONS << EC_MASK_BITS) | 20) +#define EC_WORD_CLOSE ((EC_GROUP_CONDITIONS << EC_MASK_BITS) | 21) +#define EC_WORD_DOCILE ((EC_GROUP_CONDITIONS << EC_MASK_BITS) | 22) +#define EC_WORD_AMUSING ((EC_GROUP_CONDITIONS << EC_MASK_BITS) | 23) +#define EC_WORD_ENTERTAINING ((EC_GROUP_CONDITIONS << EC_MASK_BITS) | 24) +#define EC_WORD_PERFECTION ((EC_GROUP_CONDITIONS << EC_MASK_BITS) | 25) +#define EC_WORD_PRETTY ((EC_GROUP_CONDITIONS << EC_MASK_BITS) | 26) +#define EC_WORD_HEALTHY ((EC_GROUP_CONDITIONS << EC_MASK_BITS) | 27) +#define EC_WORD_EXCELLENT ((EC_GROUP_CONDITIONS << EC_MASK_BITS) | 28) +#define EC_WORD_UPSIDE_DOWN ((EC_GROUP_CONDITIONS << EC_MASK_BITS) | 29) +#define EC_WORD_COLD ((EC_GROUP_CONDITIONS << EC_MASK_BITS) | 30) +#define EC_WORD_REFRESHING ((EC_GROUP_CONDITIONS << EC_MASK_BITS) | 31) +#define EC_WORD_UNAVOIDABLE ((EC_GROUP_CONDITIONS << EC_MASK_BITS) | 32) +#define EC_WORD_MUCH ((EC_GROUP_CONDITIONS << EC_MASK_BITS) | 33) +#define EC_WORD_OVERWHELMING ((EC_GROUP_CONDITIONS << EC_MASK_BITS) | 34) +#define EC_WORD_FABULOUS ((EC_GROUP_CONDITIONS << EC_MASK_BITS) | 35) +#define EC_WORD_ELSE ((EC_GROUP_CONDITIONS << EC_MASK_BITS) | 36) +#define EC_WORD_EXPENSIVE ((EC_GROUP_CONDITIONS << EC_MASK_BITS) | 37) +#define EC_WORD_CORRECT ((EC_GROUP_CONDITIONS << EC_MASK_BITS) | 38) +#define EC_WORD_IMPOSSIBLE ((EC_GROUP_CONDITIONS << EC_MASK_BITS) | 39) +#define EC_WORD_SMALL ((EC_GROUP_CONDITIONS << EC_MASK_BITS) | 40) +#define EC_WORD_DIFFERENT ((EC_GROUP_CONDITIONS << EC_MASK_BITS) | 41) +#define EC_WORD_TIRED ((EC_GROUP_CONDITIONS << EC_MASK_BITS) | 42) +#define EC_WORD_SKILL ((EC_GROUP_CONDITIONS << EC_MASK_BITS) | 43) +#define EC_WORD_TOP ((EC_GROUP_CONDITIONS << EC_MASK_BITS) | 44) +#define EC_WORD_NON_STOP ((EC_GROUP_CONDITIONS << EC_MASK_BITS) | 45) +#define EC_WORD_PREPOSTEROUS ((EC_GROUP_CONDITIONS << EC_MASK_BITS) | 46) +#define EC_WORD_NONE ((EC_GROUP_CONDITIONS << EC_MASK_BITS) | 47) +#define EC_WORD_NOTHING ((EC_GROUP_CONDITIONS << EC_MASK_BITS) | 48) +#define EC_WORD_NATURAL ((EC_GROUP_CONDITIONS << EC_MASK_BITS) | 49) +#define EC_WORD_BECOMES ((EC_GROUP_CONDITIONS << EC_MASK_BITS) | 50) +#define EC_WORD_LUKEWARM ((EC_GROUP_CONDITIONS << EC_MASK_BITS) | 51) +#define EC_WORD_FAST ((EC_GROUP_CONDITIONS << EC_MASK_BITS) | 52) +#define EC_WORD_LOW ((EC_GROUP_CONDITIONS << EC_MASK_BITS) | 53) +#define EC_WORD_AWFUL ((EC_GROUP_CONDITIONS << EC_MASK_BITS) | 54) +#define EC_WORD_ALONE ((EC_GROUP_CONDITIONS << EC_MASK_BITS) | 55) +#define EC_WORD_BORED ((EC_GROUP_CONDITIONS << EC_MASK_BITS) | 56) +#define EC_WORD_SECRET ((EC_GROUP_CONDITIONS << EC_MASK_BITS) | 57) +#define EC_WORD_MYSTERY ((EC_GROUP_CONDITIONS << EC_MASK_BITS) | 58) +#define EC_WORD_LACKS ((EC_GROUP_CONDITIONS << EC_MASK_BITS) | 59) +#define EC_WORD_BEST ((EC_GROUP_CONDITIONS << EC_MASK_BITS) | 60) +#define EC_WORD_LOUSY ((EC_GROUP_CONDITIONS << EC_MASK_BITS) | 61) +#define EC_WORD_MISTAKE ((EC_GROUP_CONDITIONS << EC_MASK_BITS) | 62) +#define EC_WORD_KIND ((EC_GROUP_CONDITIONS << EC_MASK_BITS) | 63) +#define EC_WORD_WELL ((EC_GROUP_CONDITIONS << EC_MASK_BITS) | 64) +#define EC_WORD_WEAKENED ((EC_GROUP_CONDITIONS << EC_MASK_BITS) | 65) +#define EC_WORD_SIMPLE ((EC_GROUP_CONDITIONS << EC_MASK_BITS) | 66) +#define EC_WORD_SEEMS ((EC_GROUP_CONDITIONS << EC_MASK_BITS) | 67) +#define EC_WORD_BADLY ((EC_GROUP_CONDITIONS << EC_MASK_BITS) | 68) // ACTIONS -#define EC_WORD_MEETS (EC_GROUP_ACTIONS << 9) | 0x0 -#define EC_WORD_CONCEDE (EC_GROUP_ACTIONS << 9) | 0x1 -#define EC_WORD_GIVE (EC_GROUP_ACTIONS << 9) | 0x2 -#define EC_WORD_GIVES (EC_GROUP_ACTIONS << 9) | 0x3 -#define EC_WORD_PLAYED (EC_GROUP_ACTIONS << 9) | 0x4 -#define EC_WORD_PLAYS (EC_GROUP_ACTIONS << 9) | 0x5 -#define EC_WORD_COLLECT (EC_GROUP_ACTIONS << 9) | 0x6 -#define EC_WORD_WALKING (EC_GROUP_ACTIONS << 9) | 0x7 -#define EC_WORD_WALKS (EC_GROUP_ACTIONS << 9) | 0x8 -#define EC_WORD_SAYS (EC_GROUP_ACTIONS << 9) | 0x9 -#define EC_WORD_WENT (EC_GROUP_ACTIONS << 9) | 0xa -#define EC_WORD_SAID (EC_GROUP_ACTIONS << 9) | 0xb -#define EC_WORD_WAKE_UP (EC_GROUP_ACTIONS << 9) | 0xc -#define EC_WORD_WAKES_UP (EC_GROUP_ACTIONS << 9) | 0xd -#define EC_WORD_ANGERS (EC_GROUP_ACTIONS << 9) | 0xe -#define EC_WORD_TEACH (EC_GROUP_ACTIONS << 9) | 0xf -#define EC_WORD_TEACHES (EC_GROUP_ACTIONS << 9) | 0x10 -#define EC_WORD_PLEASE (EC_GROUP_ACTIONS << 9) | 0x11 -#define EC_WORD_LEARN (EC_GROUP_ACTIONS << 9) | 0x12 -#define EC_WORD_CHANGE (EC_GROUP_ACTIONS << 9) | 0x13 -#define EC_WORD_STORY (EC_GROUP_ACTIONS << 9) | 0x14 -#define EC_WORD_TRUST (EC_GROUP_ACTIONS << 9) | 0x15 -#define EC_WORD_LAVISH (EC_GROUP_ACTIONS << 9) | 0x16 -#define EC_WORD_LISTENS (EC_GROUP_ACTIONS << 9) | 0x17 -#define EC_WORD_HEARING (EC_GROUP_ACTIONS << 9) | 0x18 -#define EC_WORD_TRAINS (EC_GROUP_ACTIONS << 9) | 0x19 -#define EC_WORD_CHOOSE (EC_GROUP_ACTIONS << 9) | 0x1a -#define EC_WORD_COME (EC_GROUP_ACTIONS << 9) | 0x1b -#define EC_WORD_CAME (EC_GROUP_ACTIONS << 9) | 0x1c -#define EC_WORD_SEARCH (EC_GROUP_ACTIONS << 9) | 0x1d -#define EC_WORD_MAKE (EC_GROUP_ACTIONS << 9) | 0x1e -#define EC_WORD_CAUSE (EC_GROUP_ACTIONS << 9) | 0x1f -#define EC_WORD_KNOW (EC_GROUP_ACTIONS << 9) | 0x20 -#define EC_WORD_KNOWS (EC_GROUP_ACTIONS << 9) | 0x21 -#define EC_WORD_REFUSE (EC_GROUP_ACTIONS << 9) | 0x22 -#define EC_WORD_STORES (EC_GROUP_ACTIONS << 9) | 0x23 -#define EC_WORD_BRAG (EC_GROUP_ACTIONS << 9) | 0x24 -#define EC_WORD_IGNORANT (EC_GROUP_ACTIONS << 9) | 0x25 -#define EC_WORD_THINKS (EC_GROUP_ACTIONS << 9) | 0x26 -#define EC_WORD_BELIEVE (EC_GROUP_ACTIONS << 9) | 0x27 -#define EC_WORD_SLIDE (EC_GROUP_ACTIONS << 9) | 0x28 -#define EC_WORD_EATS (EC_GROUP_ACTIONS << 9) | 0x29 -#define EC_WORD_USE (EC_GROUP_ACTIONS << 9) | 0x2a -#define EC_WORD_USES (EC_GROUP_ACTIONS << 9) | 0x2b -#define EC_WORD_USING (EC_GROUP_ACTIONS << 9) | 0x2c -#define EC_WORD_COULDN_T (EC_GROUP_ACTIONS << 9) | 0x2d -#define EC_WORD_CAPABLE (EC_GROUP_ACTIONS << 9) | 0x2e -#define EC_WORD_DISAPPEAR (EC_GROUP_ACTIONS << 9) | 0x2f -#define EC_WORD_APPEAR (EC_GROUP_ACTIONS << 9) | 0x30 -#define EC_WORD_THROW (EC_GROUP_ACTIONS << 9) | 0x31 -#define EC_WORD_WORRY (EC_GROUP_ACTIONS << 9) | 0x32 -#define EC_WORD_SLEPT (EC_GROUP_ACTIONS << 9) | 0x33 -#define EC_WORD_SLEEP (EC_GROUP_ACTIONS << 9) | 0x34 -#define EC_WORD_RELEASE (EC_GROUP_ACTIONS << 9) | 0x35 -#define EC_WORD_DRINKS (EC_GROUP_ACTIONS << 9) | 0x36 -#define EC_WORD_RUNS (EC_GROUP_ACTIONS << 9) | 0x37 -#define EC_WORD_RUN (EC_GROUP_ACTIONS << 9) | 0x38 -#define EC_WORD_WORKS (EC_GROUP_ACTIONS << 9) | 0x39 -#define EC_WORD_WORKING (EC_GROUP_ACTIONS << 9) | 0x3a -#define EC_WORD_TALKING (EC_GROUP_ACTIONS << 9) | 0x3b -#define EC_WORD_TALK (EC_GROUP_ACTIONS << 9) | 0x3c -#define EC_WORD_SINK (EC_GROUP_ACTIONS << 9) | 0x3d -#define EC_WORD_SMACK (EC_GROUP_ACTIONS << 9) | 0x3e -#define EC_WORD_PRETEND (EC_GROUP_ACTIONS << 9) | 0x3f -#define EC_WORD_PRAISE (EC_GROUP_ACTIONS << 9) | 0x40 -#define EC_WORD_OVERDO (EC_GROUP_ACTIONS << 9) | 0x41 -#define EC_WORD_SHOW (EC_GROUP_ACTIONS << 9) | 0x42 -#define EC_WORD_LOOKS (EC_GROUP_ACTIONS << 9) | 0x43 -#define EC_WORD_SEES (EC_GROUP_ACTIONS << 9) | 0x44 -#define EC_WORD_SEEK (EC_GROUP_ACTIONS << 9) | 0x45 -#define EC_WORD_OWN (EC_GROUP_ACTIONS << 9) | 0x46 -#define EC_WORD_TAKE (EC_GROUP_ACTIONS << 9) | 0x47 -#define EC_WORD_ALLOW (EC_GROUP_ACTIONS << 9) | 0x48 -#define EC_WORD_FORGET (EC_GROUP_ACTIONS << 9) | 0x49 -#define EC_WORD_FORGETS (EC_GROUP_ACTIONS << 9) | 0x4a -#define EC_WORD_APPEARS (EC_GROUP_ACTIONS << 9) | 0x4b -#define EC_WORD_FAINT (EC_GROUP_ACTIONS << 9) | 0x4c -#define EC_WORD_FAINTED (EC_GROUP_ACTIONS << 9) | 0x4d +#define EC_WORD_MEETS ((EC_GROUP_ACTIONS << EC_MASK_BITS) | 0) +#define EC_WORD_CONCEDE ((EC_GROUP_ACTIONS << EC_MASK_BITS) | 1) +#define EC_WORD_GIVE ((EC_GROUP_ACTIONS << EC_MASK_BITS) | 2) +#define EC_WORD_GIVES ((EC_GROUP_ACTIONS << EC_MASK_BITS) | 3) +#define EC_WORD_PLAYED ((EC_GROUP_ACTIONS << EC_MASK_BITS) | 4) +#define EC_WORD_PLAYS ((EC_GROUP_ACTIONS << EC_MASK_BITS) | 5) +#define EC_WORD_COLLECT ((EC_GROUP_ACTIONS << EC_MASK_BITS) | 6) +#define EC_WORD_WALKING ((EC_GROUP_ACTIONS << EC_MASK_BITS) | 7) +#define EC_WORD_WALKS ((EC_GROUP_ACTIONS << EC_MASK_BITS) | 8) +#define EC_WORD_SAYS ((EC_GROUP_ACTIONS << EC_MASK_BITS) | 9) +#define EC_WORD_WENT ((EC_GROUP_ACTIONS << EC_MASK_BITS) | 10) +#define EC_WORD_SAID ((EC_GROUP_ACTIONS << EC_MASK_BITS) | 11) +#define EC_WORD_WAKE_UP ((EC_GROUP_ACTIONS << EC_MASK_BITS) | 12) +#define EC_WORD_WAKES_UP ((EC_GROUP_ACTIONS << EC_MASK_BITS) | 13) +#define EC_WORD_ANGERS ((EC_GROUP_ACTIONS << EC_MASK_BITS) | 14) +#define EC_WORD_TEACH ((EC_GROUP_ACTIONS << EC_MASK_BITS) | 15) +#define EC_WORD_TEACHES ((EC_GROUP_ACTIONS << EC_MASK_BITS) | 16) +#define EC_WORD_PLEASE ((EC_GROUP_ACTIONS << EC_MASK_BITS) | 17) +#define EC_WORD_LEARN ((EC_GROUP_ACTIONS << EC_MASK_BITS) | 18) +#define EC_WORD_CHANGE ((EC_GROUP_ACTIONS << EC_MASK_BITS) | 19) +#define EC_WORD_STORY ((EC_GROUP_ACTIONS << EC_MASK_BITS) | 20) +#define EC_WORD_TRUST ((EC_GROUP_ACTIONS << EC_MASK_BITS) | 21) +#define EC_WORD_LAVISH ((EC_GROUP_ACTIONS << EC_MASK_BITS) | 22) +#define EC_WORD_LISTENS ((EC_GROUP_ACTIONS << EC_MASK_BITS) | 23) +#define EC_WORD_HEARING ((EC_GROUP_ACTIONS << EC_MASK_BITS) | 24) +#define EC_WORD_TRAINS ((EC_GROUP_ACTIONS << EC_MASK_BITS) | 25) +#define EC_WORD_CHOOSE ((EC_GROUP_ACTIONS << EC_MASK_BITS) | 26) +#define EC_WORD_COME ((EC_GROUP_ACTIONS << EC_MASK_BITS) | 27) +#define EC_WORD_CAME ((EC_GROUP_ACTIONS << EC_MASK_BITS) | 28) +#define EC_WORD_SEARCH ((EC_GROUP_ACTIONS << EC_MASK_BITS) | 29) +#define EC_WORD_MAKE ((EC_GROUP_ACTIONS << EC_MASK_BITS) | 30) +#define EC_WORD_CAUSE ((EC_GROUP_ACTIONS << EC_MASK_BITS) | 31) +#define EC_WORD_KNOW ((EC_GROUP_ACTIONS << EC_MASK_BITS) | 32) +#define EC_WORD_KNOWS ((EC_GROUP_ACTIONS << EC_MASK_BITS) | 33) +#define EC_WORD_REFUSE ((EC_GROUP_ACTIONS << EC_MASK_BITS) | 34) +#define EC_WORD_STORES ((EC_GROUP_ACTIONS << EC_MASK_BITS) | 35) +#define EC_WORD_BRAG ((EC_GROUP_ACTIONS << EC_MASK_BITS) | 36) +#define EC_WORD_IGNORANT ((EC_GROUP_ACTIONS << EC_MASK_BITS) | 37) +#define EC_WORD_THINKS ((EC_GROUP_ACTIONS << EC_MASK_BITS) | 38) +#define EC_WORD_BELIEVE ((EC_GROUP_ACTIONS << EC_MASK_BITS) | 39) +#define EC_WORD_SLIDE ((EC_GROUP_ACTIONS << EC_MASK_BITS) | 40) +#define EC_WORD_EATS ((EC_GROUP_ACTIONS << EC_MASK_BITS) | 41) +#define EC_WORD_USE ((EC_GROUP_ACTIONS << EC_MASK_BITS) | 42) +#define EC_WORD_USES ((EC_GROUP_ACTIONS << EC_MASK_BITS) | 43) +#define EC_WORD_USING ((EC_GROUP_ACTIONS << EC_MASK_BITS) | 44) +#define EC_WORD_COULDN_T ((EC_GROUP_ACTIONS << EC_MASK_BITS) | 45) +#define EC_WORD_CAPABLE ((EC_GROUP_ACTIONS << EC_MASK_BITS) | 46) +#define EC_WORD_DISAPPEAR ((EC_GROUP_ACTIONS << EC_MASK_BITS) | 47) +#define EC_WORD_APPEAR ((EC_GROUP_ACTIONS << EC_MASK_BITS) | 48) +#define EC_WORD_THROW ((EC_GROUP_ACTIONS << EC_MASK_BITS) | 49) +#define EC_WORD_WORRY ((EC_GROUP_ACTIONS << EC_MASK_BITS) | 50) +#define EC_WORD_SLEPT ((EC_GROUP_ACTIONS << EC_MASK_BITS) | 51) +#define EC_WORD_SLEEP ((EC_GROUP_ACTIONS << EC_MASK_BITS) | 52) +#define EC_WORD_RELEASE ((EC_GROUP_ACTIONS << EC_MASK_BITS) | 53) +#define EC_WORD_DRINKS ((EC_GROUP_ACTIONS << EC_MASK_BITS) | 54) +#define EC_WORD_RUNS ((EC_GROUP_ACTIONS << EC_MASK_BITS) | 55) +#define EC_WORD_RUN ((EC_GROUP_ACTIONS << EC_MASK_BITS) | 56) +#define EC_WORD_WORKS ((EC_GROUP_ACTIONS << EC_MASK_BITS) | 57) +#define EC_WORD_WORKING ((EC_GROUP_ACTIONS << EC_MASK_BITS) | 58) +#define EC_WORD_TALKING ((EC_GROUP_ACTIONS << EC_MASK_BITS) | 59) +#define EC_WORD_TALK ((EC_GROUP_ACTIONS << EC_MASK_BITS) | 60) +#define EC_WORD_SINK ((EC_GROUP_ACTIONS << EC_MASK_BITS) | 61) +#define EC_WORD_SMACK ((EC_GROUP_ACTIONS << EC_MASK_BITS) | 62) +#define EC_WORD_PRETEND ((EC_GROUP_ACTIONS << EC_MASK_BITS) | 63) +#define EC_WORD_PRAISE ((EC_GROUP_ACTIONS << EC_MASK_BITS) | 64) +#define EC_WORD_OVERDO ((EC_GROUP_ACTIONS << EC_MASK_BITS) | 65) +#define EC_WORD_SHOW ((EC_GROUP_ACTIONS << EC_MASK_BITS) | 66) +#define EC_WORD_LOOKS ((EC_GROUP_ACTIONS << EC_MASK_BITS) | 67) +#define EC_WORD_SEES ((EC_GROUP_ACTIONS << EC_MASK_BITS) | 68) +#define EC_WORD_SEEK ((EC_GROUP_ACTIONS << EC_MASK_BITS) | 69) +#define EC_WORD_OWN ((EC_GROUP_ACTIONS << EC_MASK_BITS) | 70) +#define EC_WORD_TAKE ((EC_GROUP_ACTIONS << EC_MASK_BITS) | 71) +#define EC_WORD_ALLOW ((EC_GROUP_ACTIONS << EC_MASK_BITS) | 72) +#define EC_WORD_FORGET ((EC_GROUP_ACTIONS << EC_MASK_BITS) | 73) +#define EC_WORD_FORGETS ((EC_GROUP_ACTIONS << EC_MASK_BITS) | 74) +#define EC_WORD_APPEARS ((EC_GROUP_ACTIONS << EC_MASK_BITS) | 75) +#define EC_WORD_FAINT ((EC_GROUP_ACTIONS << EC_MASK_BITS) | 76) +#define EC_WORD_FAINTED ((EC_GROUP_ACTIONS << EC_MASK_BITS) | 77) // LIFESTYLE -#define EC_WORD_CHORES (EC_GROUP_LIFESTYLE << 9) | 0x0 -#define EC_WORD_HOME (EC_GROUP_LIFESTYLE << 9) | 0x1 -#define EC_WORD_MONEY (EC_GROUP_LIFESTYLE << 9) | 0x2 -#define EC_WORD_ALLOWANCE (EC_GROUP_LIFESTYLE << 9) | 0x3 -#define EC_WORD_BATH (EC_GROUP_LIFESTYLE << 9) | 0x4 -#define EC_WORD_CONVERSATION (EC_GROUP_LIFESTYLE << 9) | 0x5 -#define EC_WORD_SCHOOL (EC_GROUP_LIFESTYLE << 9) | 0x6 -#define EC_WORD_COMMEMORATE (EC_GROUP_LIFESTYLE << 9) | 0x7 -#define EC_WORD_HABIT (EC_GROUP_LIFESTYLE << 9) | 0x8 -#define EC_WORD_GROUP (EC_GROUP_LIFESTYLE << 9) | 0x9 -#define EC_WORD_WORD (EC_GROUP_LIFESTYLE << 9) | 0xa -#define EC_WORD_STORE (EC_GROUP_LIFESTYLE << 9) | 0xb -#define EC_WORD_SERVICE (EC_GROUP_LIFESTYLE << 9) | 0xc -#define EC_WORD_WORK (EC_GROUP_LIFESTYLE << 9) | 0xd -#define EC_WORD_SYSTEM (EC_GROUP_LIFESTYLE << 9) | 0xe -#define EC_WORD_TRAIN (EC_GROUP_LIFESTYLE << 9) | 0xf -#define EC_WORD_CLASS (EC_GROUP_LIFESTYLE << 9) | 0x10 -#define EC_WORD_LESSONS (EC_GROUP_LIFESTYLE << 9) | 0x11 -#define EC_WORD_INFORMATION (EC_GROUP_LIFESTYLE << 9) | 0x12 -#define EC_WORD_LIVING (EC_GROUP_LIFESTYLE << 9) | 0x13 -#define EC_WORD_TEACHER (EC_GROUP_LIFESTYLE << 9) | 0x14 -#define EC_WORD_TOURNAMENT (EC_GROUP_LIFESTYLE << 9) | 0x15 -#define EC_WORD_LETTER (EC_GROUP_LIFESTYLE << 9) | 0x16 -#define EC_WORD_EVENT (EC_GROUP_LIFESTYLE << 9) | 0x17 -#define EC_WORD_DIGITAL (EC_GROUP_LIFESTYLE << 9) | 0x18 -#define EC_WORD_TEST (EC_GROUP_LIFESTYLE << 9) | 0x19 -#define EC_WORD_DEPT_STORE (EC_GROUP_LIFESTYLE << 9) | 0x1a -#define EC_WORD_TELEVISION (EC_GROUP_LIFESTYLE << 9) | 0x1b -#define EC_WORD_PHONE (EC_GROUP_LIFESTYLE << 9) | 0x1c -#define EC_WORD_ITEM (EC_GROUP_LIFESTYLE << 9) | 0x1d -#define EC_WORD_NAME (EC_GROUP_LIFESTYLE << 9) | 0x1e -#define EC_WORD_NEWS (EC_GROUP_LIFESTYLE << 9) | 0x1f -#define EC_WORD_POPULAR (EC_GROUP_LIFESTYLE << 9) | 0x20 -#define EC_WORD_PARTY (EC_GROUP_LIFESTYLE << 9) | 0x21 -#define EC_WORD_STUDY (EC_GROUP_LIFESTYLE << 9) | 0x22 -#define EC_WORD_MACHINE (EC_GROUP_LIFESTYLE << 9) | 0x23 -#define EC_WORD_MAIL (EC_GROUP_LIFESTYLE << 9) | 0x24 -#define EC_WORD_MESSAGE (EC_GROUP_LIFESTYLE << 9) | 0x25 -#define EC_WORD_PROMISE (EC_GROUP_LIFESTYLE << 9) | 0x26 -#define EC_WORD_DREAM (EC_GROUP_LIFESTYLE << 9) | 0x27 -#define EC_WORD_KINDERGARTEN (EC_GROUP_LIFESTYLE << 9) | 0x28 -#define EC_WORD_LIFE (EC_GROUP_LIFESTYLE << 9) | 0x29 -#define EC_WORD_RADIO (EC_GROUP_LIFESTYLE << 9) | 0x2a -#define EC_WORD_RENTAL (EC_GROUP_LIFESTYLE << 9) | 0x2b -#define EC_WORD_WORLD (EC_GROUP_LIFESTYLE << 9) | 0x2c +#define EC_WORD_CHORES ((EC_GROUP_LIFESTYLE << EC_MASK_BITS) | 0) +#define EC_WORD_HOME ((EC_GROUP_LIFESTYLE << EC_MASK_BITS) | 1) +#define EC_WORD_MONEY ((EC_GROUP_LIFESTYLE << EC_MASK_BITS) | 2) +#define EC_WORD_ALLOWANCE ((EC_GROUP_LIFESTYLE << EC_MASK_BITS) | 3) +#define EC_WORD_BATH ((EC_GROUP_LIFESTYLE << EC_MASK_BITS) | 4) +#define EC_WORD_CONVERSATION ((EC_GROUP_LIFESTYLE << EC_MASK_BITS) | 5) +#define EC_WORD_SCHOOL ((EC_GROUP_LIFESTYLE << EC_MASK_BITS) | 6) +#define EC_WORD_COMMEMORATE ((EC_GROUP_LIFESTYLE << EC_MASK_BITS) | 7) +#define EC_WORD_HABIT ((EC_GROUP_LIFESTYLE << EC_MASK_BITS) | 8) +#define EC_WORD_GROUP ((EC_GROUP_LIFESTYLE << EC_MASK_BITS) | 9) +#define EC_WORD_WORD ((EC_GROUP_LIFESTYLE << EC_MASK_BITS) | 10) +#define EC_WORD_STORE ((EC_GROUP_LIFESTYLE << EC_MASK_BITS) | 11) +#define EC_WORD_SERVICE ((EC_GROUP_LIFESTYLE << EC_MASK_BITS) | 12) +#define EC_WORD_WORK ((EC_GROUP_LIFESTYLE << EC_MASK_BITS) | 13) +#define EC_WORD_SYSTEM ((EC_GROUP_LIFESTYLE << EC_MASK_BITS) | 14) +#define EC_WORD_TRAIN ((EC_GROUP_LIFESTYLE << EC_MASK_BITS) | 15) +#define EC_WORD_CLASS ((EC_GROUP_LIFESTYLE << EC_MASK_BITS) | 16) +#define EC_WORD_LESSONS ((EC_GROUP_LIFESTYLE << EC_MASK_BITS) | 17) +#define EC_WORD_INFORMATION ((EC_GROUP_LIFESTYLE << EC_MASK_BITS) | 18) +#define EC_WORD_LIVING ((EC_GROUP_LIFESTYLE << EC_MASK_BITS) | 19) +#define EC_WORD_TEACHER ((EC_GROUP_LIFESTYLE << EC_MASK_BITS) | 20) +#define EC_WORD_TOURNAMENT ((EC_GROUP_LIFESTYLE << EC_MASK_BITS) | 21) +#define EC_WORD_LETTER ((EC_GROUP_LIFESTYLE << EC_MASK_BITS) | 22) +#define EC_WORD_EVENT ((EC_GROUP_LIFESTYLE << EC_MASK_BITS) | 23) +#define EC_WORD_DIGITAL ((EC_GROUP_LIFESTYLE << EC_MASK_BITS) | 24) +#define EC_WORD_TEST ((EC_GROUP_LIFESTYLE << EC_MASK_BITS) | 25) +#define EC_WORD_DEPT_STORE ((EC_GROUP_LIFESTYLE << EC_MASK_BITS) | 26) +#define EC_WORD_TELEVISION ((EC_GROUP_LIFESTYLE << EC_MASK_BITS) | 27) +#define EC_WORD_PHONE ((EC_GROUP_LIFESTYLE << EC_MASK_BITS) | 28) +#define EC_WORD_ITEM ((EC_GROUP_LIFESTYLE << EC_MASK_BITS) | 29) +#define EC_WORD_NAME ((EC_GROUP_LIFESTYLE << EC_MASK_BITS) | 30) +#define EC_WORD_NEWS ((EC_GROUP_LIFESTYLE << EC_MASK_BITS) | 31) +#define EC_WORD_POPULAR ((EC_GROUP_LIFESTYLE << EC_MASK_BITS) | 32) +#define EC_WORD_PARTY ((EC_GROUP_LIFESTYLE << EC_MASK_BITS) | 33) +#define EC_WORD_STUDY ((EC_GROUP_LIFESTYLE << EC_MASK_BITS) | 34) +#define EC_WORD_MACHINE ((EC_GROUP_LIFESTYLE << EC_MASK_BITS) | 35) +#define EC_WORD_MAIL ((EC_GROUP_LIFESTYLE << EC_MASK_BITS) | 36) +#define EC_WORD_MESSAGE ((EC_GROUP_LIFESTYLE << EC_MASK_BITS) | 37) +#define EC_WORD_PROMISE ((EC_GROUP_LIFESTYLE << EC_MASK_BITS) | 38) +#define EC_WORD_DREAM ((EC_GROUP_LIFESTYLE << EC_MASK_BITS) | 39) +#define EC_WORD_KINDERGARTEN ((EC_GROUP_LIFESTYLE << EC_MASK_BITS) | 40) +#define EC_WORD_LIFE ((EC_GROUP_LIFESTYLE << EC_MASK_BITS) | 41) +#define EC_WORD_RADIO ((EC_GROUP_LIFESTYLE << EC_MASK_BITS) | 42) +#define EC_WORD_RENTAL ((EC_GROUP_LIFESTYLE << EC_MASK_BITS) | 43) +#define EC_WORD_WORLD ((EC_GROUP_LIFESTYLE << EC_MASK_BITS) | 44) // HOBBIES -#define EC_WORD_IDOL (EC_GROUP_HOBBIES << 9) | 0x0 -#define EC_WORD_ANIME (EC_GROUP_HOBBIES << 9) | 0x1 -#define EC_WORD_SONG (EC_GROUP_HOBBIES << 9) | 0x2 -#define EC_WORD_MOVIE (EC_GROUP_HOBBIES << 9) | 0x3 -#define EC_WORD_SWEETS (EC_GROUP_HOBBIES << 9) | 0x4 -#define EC_WORD_CHAT (EC_GROUP_HOBBIES << 9) | 0x5 -#define EC_WORD_CHILD_S_PLAY (EC_GROUP_HOBBIES << 9) | 0x6 -#define EC_WORD_TOYS (EC_GROUP_HOBBIES << 9) | 0x7 -#define EC_WORD_MUSIC (EC_GROUP_HOBBIES << 9) | 0x8 -#define EC_WORD_CARDS (EC_GROUP_HOBBIES << 9) | 0x9 -#define EC_WORD_SHOPPING (EC_GROUP_HOBBIES << 9) | 0xa -#define EC_WORD_CAMERA (EC_GROUP_HOBBIES << 9) | 0xb -#define EC_WORD_VIEWING (EC_GROUP_HOBBIES << 9) | 0xc -#define EC_WORD_SPECTATOR (EC_GROUP_HOBBIES << 9) | 0xd -#define EC_WORD_GOURMET (EC_GROUP_HOBBIES << 9) | 0xe -#define EC_WORD_GAME (EC_GROUP_HOBBIES << 9) | 0xf -#define EC_WORD_RPG (EC_GROUP_HOBBIES << 9) | 0x10 -#define EC_WORD_COLLECTION (EC_GROUP_HOBBIES << 9) | 0x11 -#define EC_WORD_COMPLETE (EC_GROUP_HOBBIES << 9) | 0x12 -#define EC_WORD_MAGAZINE (EC_GROUP_HOBBIES << 9) | 0x13 -#define EC_WORD_WALK (EC_GROUP_HOBBIES << 9) | 0x14 -#define EC_WORD_BIKE (EC_GROUP_HOBBIES << 9) | 0x15 -#define EC_WORD_HOBBY (EC_GROUP_HOBBIES << 9) | 0x16 -#define EC_WORD_SPORTS (EC_GROUP_HOBBIES << 9) | 0x17 -#define EC_WORD_SOFTWARE (EC_GROUP_HOBBIES << 9) | 0x18 -#define EC_WORD_SONGS (EC_GROUP_HOBBIES << 9) | 0x19 -#define EC_WORD_DIET (EC_GROUP_HOBBIES << 9) | 0x1a -#define EC_WORD_TREASURE (EC_GROUP_HOBBIES << 9) | 0x1b -#define EC_WORD_TRAVEL (EC_GROUP_HOBBIES << 9) | 0x1c -#define EC_WORD_DANCE (EC_GROUP_HOBBIES << 9) | 0x1d -#define EC_WORD_CHANNEL (EC_GROUP_HOBBIES << 9) | 0x1e -#define EC_WORD_MAKING (EC_GROUP_HOBBIES << 9) | 0x1f -#define EC_WORD_FISHING (EC_GROUP_HOBBIES << 9) | 0x20 -#define EC_WORD_DATE (EC_GROUP_HOBBIES << 9) | 0x21 -#define EC_WORD_DESIGN (EC_GROUP_HOBBIES << 9) | 0x22 -#define EC_WORD_LOCOMOTIVE (EC_GROUP_HOBBIES << 9) | 0x23 -#define EC_WORD_PLUSH_DOLL (EC_GROUP_HOBBIES << 9) | 0x24 -#define EC_WORD_PC (EC_GROUP_HOBBIES << 9) | 0x25 -#define EC_WORD_FLOWERS (EC_GROUP_HOBBIES << 9) | 0x26 -#define EC_WORD_HERO (EC_GROUP_HOBBIES << 9) | 0x27 -#define EC_WORD_NAP (EC_GROUP_HOBBIES << 9) | 0x28 -#define EC_WORD_HEROINE (EC_GROUP_HOBBIES << 9) | 0x29 -#define EC_WORD_FASHION (EC_GROUP_HOBBIES << 9) | 0x2a -#define EC_WORD_ADVENTURE (EC_GROUP_HOBBIES << 9) | 0x2b -#define EC_WORD_BOARD (EC_GROUP_HOBBIES << 9) | 0x2c -#define EC_WORD_BALL (EC_GROUP_HOBBIES << 9) | 0x2d -#define EC_WORD_BOOK (EC_GROUP_HOBBIES << 9) | 0x2e -#define EC_WORD_FESTIVAL (EC_GROUP_HOBBIES << 9) | 0x2f -#define EC_WORD_COMICS (EC_GROUP_HOBBIES << 9) | 0x30 -#define EC_WORD_HOLIDAY (EC_GROUP_HOBBIES << 9) | 0x31 -#define EC_WORD_PLANS (EC_GROUP_HOBBIES << 9) | 0x32 -#define EC_WORD_TRENDY (EC_GROUP_HOBBIES << 9) | 0x33 -#define EC_WORD_VACATION (EC_GROUP_HOBBIES << 9) | 0x34 -#define EC_WORD_LOOK (EC_GROUP_HOBBIES << 9) | 0x35 +#define EC_WORD_IDOL ((EC_GROUP_HOBBIES << EC_MASK_BITS) | 0) +#define EC_WORD_ANIME ((EC_GROUP_HOBBIES << EC_MASK_BITS) | 1) +#define EC_WORD_SONG ((EC_GROUP_HOBBIES << EC_MASK_BITS) | 2) +#define EC_WORD_MOVIE ((EC_GROUP_HOBBIES << EC_MASK_BITS) | 3) +#define EC_WORD_SWEETS ((EC_GROUP_HOBBIES << EC_MASK_BITS) | 4) +#define EC_WORD_CHAT ((EC_GROUP_HOBBIES << EC_MASK_BITS) | 5) +#define EC_WORD_CHILD_S_PLAY ((EC_GROUP_HOBBIES << EC_MASK_BITS) | 6) +#define EC_WORD_TOYS ((EC_GROUP_HOBBIES << EC_MASK_BITS) | 7) +#define EC_WORD_MUSIC ((EC_GROUP_HOBBIES << EC_MASK_BITS) | 8) +#define EC_WORD_CARDS ((EC_GROUP_HOBBIES << EC_MASK_BITS) | 9) +#define EC_WORD_SHOPPING ((EC_GROUP_HOBBIES << EC_MASK_BITS) | 10) +#define EC_WORD_CAMERA ((EC_GROUP_HOBBIES << EC_MASK_BITS) | 11) +#define EC_WORD_VIEWING ((EC_GROUP_HOBBIES << EC_MASK_BITS) | 12) +#define EC_WORD_SPECTATOR ((EC_GROUP_HOBBIES << EC_MASK_BITS) | 13) +#define EC_WORD_GOURMET ((EC_GROUP_HOBBIES << EC_MASK_BITS) | 14) +#define EC_WORD_GAME ((EC_GROUP_HOBBIES << EC_MASK_BITS) | 15) +#define EC_WORD_RPG ((EC_GROUP_HOBBIES << EC_MASK_BITS) | 16) +#define EC_WORD_COLLECTION ((EC_GROUP_HOBBIES << EC_MASK_BITS) | 17) +#define EC_WORD_COMPLETE ((EC_GROUP_HOBBIES << EC_MASK_BITS) | 18) +#define EC_WORD_MAGAZINE ((EC_GROUP_HOBBIES << EC_MASK_BITS) | 19) +#define EC_WORD_WALK ((EC_GROUP_HOBBIES << EC_MASK_BITS) | 20) +#define EC_WORD_BIKE ((EC_GROUP_HOBBIES << EC_MASK_BITS) | 21) +#define EC_WORD_HOBBY ((EC_GROUP_HOBBIES << EC_MASK_BITS) | 22) +#define EC_WORD_SPORTS ((EC_GROUP_HOBBIES << EC_MASK_BITS) | 23) +#define EC_WORD_SOFTWARE ((EC_GROUP_HOBBIES << EC_MASK_BITS) | 24) +#define EC_WORD_SONGS ((EC_GROUP_HOBBIES << EC_MASK_BITS) | 25) +#define EC_WORD_DIET ((EC_GROUP_HOBBIES << EC_MASK_BITS) | 26) +#define EC_WORD_TREASURE ((EC_GROUP_HOBBIES << EC_MASK_BITS) | 27) +#define EC_WORD_TRAVEL ((EC_GROUP_HOBBIES << EC_MASK_BITS) | 28) +#define EC_WORD_DANCE ((EC_GROUP_HOBBIES << EC_MASK_BITS) | 29) +#define EC_WORD_CHANNEL ((EC_GROUP_HOBBIES << EC_MASK_BITS) | 30) +#define EC_WORD_MAKING ((EC_GROUP_HOBBIES << EC_MASK_BITS) | 31) +#define EC_WORD_FISHING ((EC_GROUP_HOBBIES << EC_MASK_BITS) | 32) +#define EC_WORD_DATE ((EC_GROUP_HOBBIES << EC_MASK_BITS) | 33) +#define EC_WORD_DESIGN ((EC_GROUP_HOBBIES << EC_MASK_BITS) | 34) +#define EC_WORD_LOCOMOTIVE ((EC_GROUP_HOBBIES << EC_MASK_BITS) | 35) +#define EC_WORD_PLUSH_DOLL ((EC_GROUP_HOBBIES << EC_MASK_BITS) | 36) +#define EC_WORD_PC ((EC_GROUP_HOBBIES << EC_MASK_BITS) | 37) +#define EC_WORD_FLOWERS ((EC_GROUP_HOBBIES << EC_MASK_BITS) | 38) +#define EC_WORD_HERO ((EC_GROUP_HOBBIES << EC_MASK_BITS) | 39) +#define EC_WORD_NAP ((EC_GROUP_HOBBIES << EC_MASK_BITS) | 40) +#define EC_WORD_HEROINE ((EC_GROUP_HOBBIES << EC_MASK_BITS) | 41) +#define EC_WORD_FASHION ((EC_GROUP_HOBBIES << EC_MASK_BITS) | 42) +#define EC_WORD_ADVENTURE ((EC_GROUP_HOBBIES << EC_MASK_BITS) | 43) +#define EC_WORD_BOARD ((EC_GROUP_HOBBIES << EC_MASK_BITS) | 44) +#define EC_WORD_BALL ((EC_GROUP_HOBBIES << EC_MASK_BITS) | 45) +#define EC_WORD_BOOK ((EC_GROUP_HOBBIES << EC_MASK_BITS) | 46) +#define EC_WORD_FESTIVAL ((EC_GROUP_HOBBIES << EC_MASK_BITS) | 47) +#define EC_WORD_COMICS ((EC_GROUP_HOBBIES << EC_MASK_BITS) | 48) +#define EC_WORD_HOLIDAY ((EC_GROUP_HOBBIES << EC_MASK_BITS) | 49) +#define EC_WORD_PLANS ((EC_GROUP_HOBBIES << EC_MASK_BITS) | 50) +#define EC_WORD_TRENDY ((EC_GROUP_HOBBIES << EC_MASK_BITS) | 51) +#define EC_WORD_VACATION ((EC_GROUP_HOBBIES << EC_MASK_BITS) | 52) +#define EC_WORD_LOOK ((EC_GROUP_HOBBIES << EC_MASK_BITS) | 53) // TIME -#define EC_WORD_FALL (EC_GROUP_TIME << 9) | 0x0 -#define EC_WORD_MORNING (EC_GROUP_TIME << 9) | 0x1 -#define EC_WORD_TOMORROW (EC_GROUP_TIME << 9) | 0x2 -#define EC_WORD_LAST (EC_GROUP_TIME << 9) | 0x3 -#define EC_WORD_DAY (EC_GROUP_TIME << 9) | 0x4 -#define EC_WORD_SOMETIME (EC_GROUP_TIME << 9) | 0x5 -#define EC_WORD_ALWAYS (EC_GROUP_TIME << 9) | 0x6 -#define EC_WORD_CURRENT (EC_GROUP_TIME << 9) | 0x7 -#define EC_WORD_FOREVER (EC_GROUP_TIME << 9) | 0x8 -#define EC_WORD_DAYS (EC_GROUP_TIME << 9) | 0x9 -#define EC_WORD_END (EC_GROUP_TIME << 9) | 0xa -#define EC_WORD_TUESDAY (EC_GROUP_TIME << 9) | 0xb -#define EC_WORD_YESTERDAY (EC_GROUP_TIME << 9) | 0xc -#define EC_WORD_TODAY (EC_GROUP_TIME << 9) | 0xd -#define EC_WORD_FRIDAY (EC_GROUP_TIME << 9) | 0xe -#define EC_WORD_MONDAY (EC_GROUP_TIME << 9) | 0xf -#define EC_WORD_LATER (EC_GROUP_TIME << 9) | 0x10 -#define EC_WORD_EARLIER (EC_GROUP_TIME << 9) | 0x11 -#define EC_WORD_ANOTHER (EC_GROUP_TIME << 9) | 0x12 -#define EC_WORD_TIME (EC_GROUP_TIME << 9) | 0x13 -#define EC_WORD_FINISH (EC_GROUP_TIME << 9) | 0x14 -#define EC_WORD_WEDNESDAY (EC_GROUP_TIME << 9) | 0x15 -#define EC_WORD_SOON (EC_GROUP_TIME << 9) | 0x16 -#define EC_WORD_START (EC_GROUP_TIME << 9) | 0x17 -#define EC_WORD_MONTH (EC_GROUP_TIME << 9) | 0x18 -#define EC_WORD_STOP (EC_GROUP_TIME << 9) | 0x19 -#define EC_WORD_NOW (EC_GROUP_TIME << 9) | 0x1a -#define EC_WORD_FINAL (EC_GROUP_TIME << 9) | 0x1b -#define EC_WORD_NEXT (EC_GROUP_TIME << 9) | 0x1c -#define EC_WORD_AGE (EC_GROUP_TIME << 9) | 0x1d -#define EC_WORD_SATURDAY (EC_GROUP_TIME << 9) | 0x1e -#define EC_WORD_SUMMER (EC_GROUP_TIME << 9) | 0x1f -#define EC_WORD_SUNDAY (EC_GROUP_TIME << 9) | 0x20 -#define EC_WORD_BEGINNING (EC_GROUP_TIME << 9) | 0x21 -#define EC_WORD_SPRING (EC_GROUP_TIME << 9) | 0x22 -#define EC_WORD_DAYTIME (EC_GROUP_TIME << 9) | 0x23 -#define EC_WORD_WINTER (EC_GROUP_TIME << 9) | 0x24 -#define EC_WORD_DAILY (EC_GROUP_TIME << 9) | 0x25 -#define EC_WORD_OLDEN (EC_GROUP_TIME << 9) | 0x26 -#define EC_WORD_ALMOST (EC_GROUP_TIME << 9) | 0x27 -#define EC_WORD_NEARLY (EC_GROUP_TIME << 9) | 0x28 -#define EC_WORD_THURSDAY (EC_GROUP_TIME << 9) | 0x29 -#define EC_WORD_NIGHTTIME (EC_GROUP_TIME << 9) | 0x2a -#define EC_WORD_NIGHT (EC_GROUP_TIME << 9) | 0x2b -#define EC_WORD_WEEK (EC_GROUP_TIME << 9) | 0x2c +#define EC_WORD_FALL ((EC_GROUP_TIME << EC_MASK_BITS) | 0) +#define EC_WORD_MORNING ((EC_GROUP_TIME << EC_MASK_BITS) | 1) +#define EC_WORD_TOMORROW ((EC_GROUP_TIME << EC_MASK_BITS) | 2) +#define EC_WORD_LAST ((EC_GROUP_TIME << EC_MASK_BITS) | 3) +#define EC_WORD_DAY ((EC_GROUP_TIME << EC_MASK_BITS) | 4) +#define EC_WORD_SOMETIME ((EC_GROUP_TIME << EC_MASK_BITS) | 5) +#define EC_WORD_ALWAYS ((EC_GROUP_TIME << EC_MASK_BITS) | 6) +#define EC_WORD_CURRENT ((EC_GROUP_TIME << EC_MASK_BITS) | 7) +#define EC_WORD_FOREVER ((EC_GROUP_TIME << EC_MASK_BITS) | 8) +#define EC_WORD_DAYS ((EC_GROUP_TIME << EC_MASK_BITS) | 9) +#define EC_WORD_END ((EC_GROUP_TIME << EC_MASK_BITS) | 10) +#define EC_WORD_TUESDAY ((EC_GROUP_TIME << EC_MASK_BITS) | 11) +#define EC_WORD_YESTERDAY ((EC_GROUP_TIME << EC_MASK_BITS) | 12) +#define EC_WORD_TODAY ((EC_GROUP_TIME << EC_MASK_BITS) | 13) +#define EC_WORD_FRIDAY ((EC_GROUP_TIME << EC_MASK_BITS) | 14) +#define EC_WORD_MONDAY ((EC_GROUP_TIME << EC_MASK_BITS) | 15) +#define EC_WORD_LATER ((EC_GROUP_TIME << EC_MASK_BITS) | 16) +#define EC_WORD_EARLIER ((EC_GROUP_TIME << EC_MASK_BITS) | 17) +#define EC_WORD_ANOTHER ((EC_GROUP_TIME << EC_MASK_BITS) | 18) +#define EC_WORD_TIME ((EC_GROUP_TIME << EC_MASK_BITS) | 19) +#define EC_WORD_FINISH ((EC_GROUP_TIME << EC_MASK_BITS) | 20) +#define EC_WORD_WEDNESDAY ((EC_GROUP_TIME << EC_MASK_BITS) | 21) +#define EC_WORD_SOON ((EC_GROUP_TIME << EC_MASK_BITS) | 22) +#define EC_WORD_START ((EC_GROUP_TIME << EC_MASK_BITS) | 23) +#define EC_WORD_MONTH ((EC_GROUP_TIME << EC_MASK_BITS) | 24) +#define EC_WORD_STOP ((EC_GROUP_TIME << EC_MASK_BITS) | 25) +#define EC_WORD_NOW ((EC_GROUP_TIME << EC_MASK_BITS) | 26) +#define EC_WORD_FINAL ((EC_GROUP_TIME << EC_MASK_BITS) | 27) +#define EC_WORD_NEXT ((EC_GROUP_TIME << EC_MASK_BITS) | 28) +#define EC_WORD_AGE ((EC_GROUP_TIME << EC_MASK_BITS) | 29) +#define EC_WORD_SATURDAY ((EC_GROUP_TIME << EC_MASK_BITS) | 30) +#define EC_WORD_SUMMER ((EC_GROUP_TIME << EC_MASK_BITS) | 31) +#define EC_WORD_SUNDAY ((EC_GROUP_TIME << EC_MASK_BITS) | 32) +#define EC_WORD_BEGINNING ((EC_GROUP_TIME << EC_MASK_BITS) | 33) +#define EC_WORD_SPRING ((EC_GROUP_TIME << EC_MASK_BITS) | 34) +#define EC_WORD_DAYTIME ((EC_GROUP_TIME << EC_MASK_BITS) | 35) +#define EC_WORD_WINTER ((EC_GROUP_TIME << EC_MASK_BITS) | 36) +#define EC_WORD_DAILY ((EC_GROUP_TIME << EC_MASK_BITS) | 37) +#define EC_WORD_OLDEN ((EC_GROUP_TIME << EC_MASK_BITS) | 38) +#define EC_WORD_ALMOST ((EC_GROUP_TIME << EC_MASK_BITS) | 39) +#define EC_WORD_NEARLY ((EC_GROUP_TIME << EC_MASK_BITS) | 40) +#define EC_WORD_THURSDAY ((EC_GROUP_TIME << EC_MASK_BITS) | 41) +#define EC_WORD_NIGHTTIME ((EC_GROUP_TIME << EC_MASK_BITS) | 42) +#define EC_WORD_NIGHT ((EC_GROUP_TIME << EC_MASK_BITS) | 43) +#define EC_WORD_WEEK ((EC_GROUP_TIME << EC_MASK_BITS) | 44) // MISC -#define EC_WORD_HIGHS (EC_GROUP_MISC << 9) | 0x0 -#define EC_WORD_LOWS (EC_GROUP_MISC << 9) | 0x1 -#define EC_WORD_UM (EC_GROUP_MISC << 9) | 0x2 -#define EC_WORD_REAR (EC_GROUP_MISC << 9) | 0x3 -#define EC_WORD_THINGS (EC_GROUP_MISC << 9) | 0x4 -#define EC_WORD_THING (EC_GROUP_MISC << 9) | 0x5 -#define EC_WORD_BELOW (EC_GROUP_MISC << 9) | 0x6 -#define EC_WORD_ABOVE (EC_GROUP_MISC << 9) | 0x7 -#define EC_WORD_BACK (EC_GROUP_MISC << 9) | 0x8 -#define EC_WORD_HIGH (EC_GROUP_MISC << 9) | 0x9 -#define EC_WORD_HERE (EC_GROUP_MISC << 9) | 0xa -#define EC_WORD_INSIDE (EC_GROUP_MISC << 9) | 0xb -#define EC_WORD_OUTSIDE (EC_GROUP_MISC << 9) | 0xc -#define EC_WORD_BESIDE (EC_GROUP_MISC << 9) | 0xd -#define EC_WORD_THIS_IS_IT_EXCL (EC_GROUP_MISC << 9) | 0xe -#define EC_WORD_THIS (EC_GROUP_MISC << 9) | 0xf -#define EC_WORD_EVERY (EC_GROUP_MISC << 9) | 0x10 -#define EC_WORD_THESE (EC_GROUP_MISC << 9) | 0x11 -#define EC_WORD_THESE_WERE (EC_GROUP_MISC << 9) | 0x12 -#define EC_WORD_DOWN (EC_GROUP_MISC << 9) | 0x13 -#define EC_WORD_THAT (EC_GROUP_MISC << 9) | 0x14 -#define EC_WORD_THOSE_ARE (EC_GROUP_MISC << 9) | 0x15 -#define EC_WORD_THOSE_WERE (EC_GROUP_MISC << 9) | 0x16 -#define EC_WORD_THAT_S_IT_EXCL (EC_GROUP_MISC << 9) | 0x17 -#define EC_WORD_AM (EC_GROUP_MISC << 9) | 0x18 -#define EC_WORD_THAT_WAS (EC_GROUP_MISC << 9) | 0x19 -#define EC_WORD_FRONT (EC_GROUP_MISC << 9) | 0x1a -#define EC_WORD_UP (EC_GROUP_MISC << 9) | 0x1b -#define EC_WORD_CHOICE (EC_GROUP_MISC << 9) | 0x1c -#define EC_WORD_FAR (EC_GROUP_MISC << 9) | 0x1d -#define EC_WORD_AWAY (EC_GROUP_MISC << 9) | 0x1e -#define EC_WORD_NEAR (EC_GROUP_MISC << 9) | 0x1f -#define EC_WORD_WHERE (EC_GROUP_MISC << 9) | 0x20 -#define EC_WORD_WHEN (EC_GROUP_MISC << 9) | 0x21 -#define EC_WORD_WHAT (EC_GROUP_MISC << 9) | 0x22 -#define EC_WORD_DEEP (EC_GROUP_MISC << 9) | 0x23 -#define EC_WORD_SHALLOW (EC_GROUP_MISC << 9) | 0x24 -#define EC_WORD_WHY (EC_GROUP_MISC << 9) | 0x25 -#define EC_WORD_CONFUSED (EC_GROUP_MISC << 9) | 0x26 -#define EC_WORD_OPPOSITE (EC_GROUP_MISC << 9) | 0x27 -#define EC_WORD_LEFT (EC_GROUP_MISC << 9) | 0x28 -#define EC_WORD_RIGHT (EC_GROUP_MISC << 9) | 0x29 +#define EC_WORD_HIGHS ((EC_GROUP_MISC << EC_MASK_BITS) | 0) +#define EC_WORD_LOWS ((EC_GROUP_MISC << EC_MASK_BITS) | 1) +#define EC_WORD_UM ((EC_GROUP_MISC << EC_MASK_BITS) | 2) +#define EC_WORD_REAR ((EC_GROUP_MISC << EC_MASK_BITS) | 3) +#define EC_WORD_THINGS ((EC_GROUP_MISC << EC_MASK_BITS) | 4) +#define EC_WORD_THING ((EC_GROUP_MISC << EC_MASK_BITS) | 5) +#define EC_WORD_BELOW ((EC_GROUP_MISC << EC_MASK_BITS) | 6) +#define EC_WORD_ABOVE ((EC_GROUP_MISC << EC_MASK_BITS) | 7) +#define EC_WORD_BACK ((EC_GROUP_MISC << EC_MASK_BITS) | 8) +#define EC_WORD_HIGH ((EC_GROUP_MISC << EC_MASK_BITS) | 9) +#define EC_WORD_HERE ((EC_GROUP_MISC << EC_MASK_BITS) | 10) +#define EC_WORD_INSIDE ((EC_GROUP_MISC << EC_MASK_BITS) | 11) +#define EC_WORD_OUTSIDE ((EC_GROUP_MISC << EC_MASK_BITS) | 12) +#define EC_WORD_BESIDE ((EC_GROUP_MISC << EC_MASK_BITS) | 13) +#define EC_WORD_THIS_IS_IT_EXCL ((EC_GROUP_MISC << EC_MASK_BITS) | 14) +#define EC_WORD_THIS ((EC_GROUP_MISC << EC_MASK_BITS) | 15) +#define EC_WORD_EVERY ((EC_GROUP_MISC << EC_MASK_BITS) | 16) +#define EC_WORD_THESE ((EC_GROUP_MISC << EC_MASK_BITS) | 17) +#define EC_WORD_THESE_WERE ((EC_GROUP_MISC << EC_MASK_BITS) | 18) +#define EC_WORD_DOWN ((EC_GROUP_MISC << EC_MASK_BITS) | 19) +#define EC_WORD_THAT ((EC_GROUP_MISC << EC_MASK_BITS) | 20) +#define EC_WORD_THOSE_ARE ((EC_GROUP_MISC << EC_MASK_BITS) | 21) +#define EC_WORD_THOSE_WERE ((EC_GROUP_MISC << EC_MASK_BITS) | 22) +#define EC_WORD_THAT_S_IT_EXCL ((EC_GROUP_MISC << EC_MASK_BITS) | 23) +#define EC_WORD_AM ((EC_GROUP_MISC << EC_MASK_BITS) | 24) +#define EC_WORD_THAT_WAS ((EC_GROUP_MISC << EC_MASK_BITS) | 25) +#define EC_WORD_FRONT ((EC_GROUP_MISC << EC_MASK_BITS) | 26) +#define EC_WORD_UP ((EC_GROUP_MISC << EC_MASK_BITS) | 27) +#define EC_WORD_CHOICE ((EC_GROUP_MISC << EC_MASK_BITS) | 28) +#define EC_WORD_FAR ((EC_GROUP_MISC << EC_MASK_BITS) | 29) +#define EC_WORD_AWAY ((EC_GROUP_MISC << EC_MASK_BITS) | 30) +#define EC_WORD_NEAR ((EC_GROUP_MISC << EC_MASK_BITS) | 31) +#define EC_WORD_WHERE ((EC_GROUP_MISC << EC_MASK_BITS) | 32) +#define EC_WORD_WHEN ((EC_GROUP_MISC << EC_MASK_BITS) | 33) +#define EC_WORD_WHAT ((EC_GROUP_MISC << EC_MASK_BITS) | 34) +#define EC_WORD_DEEP ((EC_GROUP_MISC << EC_MASK_BITS) | 35) +#define EC_WORD_SHALLOW ((EC_GROUP_MISC << EC_MASK_BITS) | 36) +#define EC_WORD_WHY ((EC_GROUP_MISC << EC_MASK_BITS) | 37) +#define EC_WORD_CONFUSED ((EC_GROUP_MISC << EC_MASK_BITS) | 38) +#define EC_WORD_OPPOSITE ((EC_GROUP_MISC << EC_MASK_BITS) | 39) +#define EC_WORD_LEFT ((EC_GROUP_MISC << EC_MASK_BITS) | 40) +#define EC_WORD_RIGHT ((EC_GROUP_MISC << EC_MASK_BITS) | 41) // ADJECTIVES -#define EC_WORD_WANDERING (EC_GROUP_ADJECTIVES << 9) | 0x0 -#define EC_WORD_RICKETY (EC_GROUP_ADJECTIVES << 9) | 0x1 -#define EC_WORD_ROCK_SOLID (EC_GROUP_ADJECTIVES << 9) | 0x2 -#define EC_WORD_HUNGRY (EC_GROUP_ADJECTIVES << 9) | 0x3 -#define EC_WORD_TIGHT (EC_GROUP_ADJECTIVES << 9) | 0x4 -#define EC_WORD_TICKLISH (EC_GROUP_ADJECTIVES << 9) | 0x5 -#define EC_WORD_TWIRLING (EC_GROUP_ADJECTIVES << 9) | 0x6 -#define EC_WORD_SPIRALING (EC_GROUP_ADJECTIVES << 9) | 0x7 -#define EC_WORD_THIRSTY (EC_GROUP_ADJECTIVES << 9) | 0x8 -#define EC_WORD_LOLLING (EC_GROUP_ADJECTIVES << 9) | 0x9 -#define EC_WORD_SILKY (EC_GROUP_ADJECTIVES << 9) | 0xa -#define EC_WORD_SADLY (EC_GROUP_ADJECTIVES << 9) | 0xb -#define EC_WORD_HOPELESS (EC_GROUP_ADJECTIVES << 9) | 0xc -#define EC_WORD_USELESS (EC_GROUP_ADJECTIVES << 9) | 0xd -#define EC_WORD_DROOLING (EC_GROUP_ADJECTIVES << 9) | 0xe -#define EC_WORD_EXCITING (EC_GROUP_ADJECTIVES << 9) | 0xf -#define EC_WORD_THICK (EC_GROUP_ADJECTIVES << 9) | 0x10 -#define EC_WORD_SMOOTH (EC_GROUP_ADJECTIVES << 9) | 0x11 -#define EC_WORD_SLIMY (EC_GROUP_ADJECTIVES << 9) | 0x12 -#define EC_WORD_THIN (EC_GROUP_ADJECTIVES << 9) | 0x13 -#define EC_WORD_BREAK (EC_GROUP_ADJECTIVES << 9) | 0x14 -#define EC_WORD_VORACIOUS (EC_GROUP_ADJECTIVES << 9) | 0x15 -#define EC_WORD_SCATTER (EC_GROUP_ADJECTIVES << 9) | 0x16 -#define EC_WORD_AWESOME (EC_GROUP_ADJECTIVES << 9) | 0x17 -#define EC_WORD_WIMPY (EC_GROUP_ADJECTIVES << 9) | 0x18 -#define EC_WORD_WOBBLY (EC_GROUP_ADJECTIVES << 9) | 0x19 -#define EC_WORD_SHAKY (EC_GROUP_ADJECTIVES << 9) | 0x1a -#define EC_WORD_RIPPED (EC_GROUP_ADJECTIVES << 9) | 0x1b -#define EC_WORD_SHREDDED (EC_GROUP_ADJECTIVES << 9) | 0x1c -#define EC_WORD_INCREASING (EC_GROUP_ADJECTIVES << 9) | 0x1d -#define EC_WORD_YET (EC_GROUP_ADJECTIVES << 9) | 0x1e -#define EC_WORD_DESTROYED (EC_GROUP_ADJECTIVES << 9) | 0x1f -#define EC_WORD_FIERY (EC_GROUP_ADJECTIVES << 9) | 0x20 -#define EC_WORD_LOVEY_DOVEY (EC_GROUP_ADJECTIVES << 9) | 0x21 -#define EC_WORD_HAPPILY (EC_GROUP_ADJECTIVES << 9) | 0x22 -#define EC_WORD_ANTICIPATION (EC_GROUP_ADJECTIVES << 9) | 0x23 +#define EC_WORD_WANDERING ((EC_GROUP_ADJECTIVES << EC_MASK_BITS) | 0) +#define EC_WORD_RICKETY ((EC_GROUP_ADJECTIVES << EC_MASK_BITS) | 1) +#define EC_WORD_ROCK_SOLID ((EC_GROUP_ADJECTIVES << EC_MASK_BITS) | 2) +#define EC_WORD_HUNGRY ((EC_GROUP_ADJECTIVES << EC_MASK_BITS) | 3) +#define EC_WORD_TIGHT ((EC_GROUP_ADJECTIVES << EC_MASK_BITS) | 4) +#define EC_WORD_TICKLISH ((EC_GROUP_ADJECTIVES << EC_MASK_BITS) | 5) +#define EC_WORD_TWIRLING ((EC_GROUP_ADJECTIVES << EC_MASK_BITS) | 6) +#define EC_WORD_SPIRALING ((EC_GROUP_ADJECTIVES << EC_MASK_BITS) | 7) +#define EC_WORD_THIRSTY ((EC_GROUP_ADJECTIVES << EC_MASK_BITS) | 8) +#define EC_WORD_LOLLING ((EC_GROUP_ADJECTIVES << EC_MASK_BITS) | 9) +#define EC_WORD_SILKY ((EC_GROUP_ADJECTIVES << EC_MASK_BITS) | 10) +#define EC_WORD_SADLY ((EC_GROUP_ADJECTIVES << EC_MASK_BITS) | 11) +#define EC_WORD_HOPELESS ((EC_GROUP_ADJECTIVES << EC_MASK_BITS) | 12) +#define EC_WORD_USELESS ((EC_GROUP_ADJECTIVES << EC_MASK_BITS) | 13) +#define EC_WORD_DROOLING ((EC_GROUP_ADJECTIVES << EC_MASK_BITS) | 14) +#define EC_WORD_EXCITING ((EC_GROUP_ADJECTIVES << EC_MASK_BITS) | 15) +#define EC_WORD_THICK ((EC_GROUP_ADJECTIVES << EC_MASK_BITS) | 16) +#define EC_WORD_SMOOTH ((EC_GROUP_ADJECTIVES << EC_MASK_BITS) | 17) +#define EC_WORD_SLIMY ((EC_GROUP_ADJECTIVES << EC_MASK_BITS) | 18) +#define EC_WORD_THIN ((EC_GROUP_ADJECTIVES << EC_MASK_BITS) | 19) +#define EC_WORD_BREAK ((EC_GROUP_ADJECTIVES << EC_MASK_BITS) | 20) +#define EC_WORD_VORACIOUS ((EC_GROUP_ADJECTIVES << EC_MASK_BITS) | 21) +#define EC_WORD_SCATTER ((EC_GROUP_ADJECTIVES << EC_MASK_BITS) | 22) +#define EC_WORD_AWESOME ((EC_GROUP_ADJECTIVES << EC_MASK_BITS) | 23) +#define EC_WORD_WIMPY ((EC_GROUP_ADJECTIVES << EC_MASK_BITS) | 24) +#define EC_WORD_WOBBLY ((EC_GROUP_ADJECTIVES << EC_MASK_BITS) | 25) +#define EC_WORD_SHAKY ((EC_GROUP_ADJECTIVES << EC_MASK_BITS) | 26) +#define EC_WORD_RIPPED ((EC_GROUP_ADJECTIVES << EC_MASK_BITS) | 27) +#define EC_WORD_SHREDDED ((EC_GROUP_ADJECTIVES << EC_MASK_BITS) | 28) +#define EC_WORD_INCREASING ((EC_GROUP_ADJECTIVES << EC_MASK_BITS) | 29) +#define EC_WORD_YET ((EC_GROUP_ADJECTIVES << EC_MASK_BITS) | 30) +#define EC_WORD_DESTROYED ((EC_GROUP_ADJECTIVES << EC_MASK_BITS) | 31) +#define EC_WORD_FIERY ((EC_GROUP_ADJECTIVES << EC_MASK_BITS) | 32) +#define EC_WORD_LOVEY_DOVEY ((EC_GROUP_ADJECTIVES << EC_MASK_BITS) | 33) +#define EC_WORD_HAPPILY ((EC_GROUP_ADJECTIVES << EC_MASK_BITS) | 34) +#define EC_WORD_ANTICIPATION ((EC_GROUP_ADJECTIVES << EC_MASK_BITS) | 35) // EVENTS -#define EC_WORD_APPEAL (EC_GROUP_EVENTS << 9) | 0x0 -#define EC_WORD_EVENTS (EC_GROUP_EVENTS << 9) | 0x1 -#define EC_WORD_STAY_AT_HOME (EC_GROUP_EVENTS << 9) | 0x2 -#define EC_WORD_BERRY (EC_GROUP_EVENTS << 9) | 0x3 -#define EC_WORD_CONTEST (EC_GROUP_EVENTS << 9) | 0x4 -#define EC_WORD_MC (EC_GROUP_EVENTS << 9) | 0x5 -#define EC_WORD_JUDGE (EC_GROUP_EVENTS << 9) | 0x6 -#define EC_WORD_SUPER (EC_GROUP_EVENTS << 9) | 0x7 -#define EC_WORD_STAGE (EC_GROUP_EVENTS << 9) | 0x8 -#define EC_WORD_HALL_OF_FAME (EC_GROUP_EVENTS << 9) | 0x9 -#define EC_WORD_EVOLUTION (EC_GROUP_EVENTS << 9) | 0xa -#define EC_WORD_HYPER (EC_GROUP_EVENTS << 9) | 0xb -#define EC_WORD_BATTLE_TOWER (EC_GROUP_EVENTS << 9) | 0xc -#define EC_WORD_LEADERS (EC_GROUP_EVENTS << 9) | 0xd -#define EC_WORD_BATTLE_ROOM (EC_GROUP_EVENTS << 9) | 0xe -#define EC_WORD_HIDDEN (EC_GROUP_EVENTS << 9) | 0xf -#define EC_WORD_SECRET_BASE (EC_GROUP_EVENTS << 9) | 0x10 -#define EC_WORD_BLEND (EC_GROUP_EVENTS << 9) | 0x11 -#define EC_WORD_POKEBLOCK (EC_GROUP_EVENTS << 9) | 0x12 -#define EC_WORD_MASTER (EC_GROUP_EVENTS << 9) | 0x13 -#define EC_WORD_RANK (EC_GROUP_EVENTS << 9) | 0x14 -#define EC_WORD_RIBBON (EC_GROUP_EVENTS << 9) | 0x15 -#define EC_WORD_CRUSH (EC_GROUP_EVENTS << 9) | 0x16 -#define EC_WORD_DIRECT (EC_GROUP_EVENTS << 9) | 0x17 -#define EC_WORD_TOWER (EC_GROUP_EVENTS << 9) | 0x18 -#define EC_WORD_UNION (EC_GROUP_EVENTS << 9) | 0x19 -#define EC_WORD_ROOM (EC_GROUP_EVENTS << 9) | 0x1a -#define EC_WORD_WIRELESS (EC_GROUP_EVENTS << 9) | 0x1b -#define EC_WORD_FRONTIER (EC_GROUP_EVENTS << 9) | 0x1c +#define EC_WORD_APPEAL ((EC_GROUP_EVENTS << EC_MASK_BITS) | 0) +#define EC_WORD_EVENTS ((EC_GROUP_EVENTS << EC_MASK_BITS) | 1) +#define EC_WORD_STAY_AT_HOME ((EC_GROUP_EVENTS << EC_MASK_BITS) | 2) +#define EC_WORD_BERRY ((EC_GROUP_EVENTS << EC_MASK_BITS) | 3) +#define EC_WORD_CONTEST ((EC_GROUP_EVENTS << EC_MASK_BITS) | 4) +#define EC_WORD_MC ((EC_GROUP_EVENTS << EC_MASK_BITS) | 5) +#define EC_WORD_JUDGE ((EC_GROUP_EVENTS << EC_MASK_BITS) | 6) +#define EC_WORD_SUPER ((EC_GROUP_EVENTS << EC_MASK_BITS) | 7) +#define EC_WORD_STAGE ((EC_GROUP_EVENTS << EC_MASK_BITS) | 8) +#define EC_WORD_HALL_OF_FAME ((EC_GROUP_EVENTS << EC_MASK_BITS) | 9) +#define EC_WORD_EVOLUTION ((EC_GROUP_EVENTS << EC_MASK_BITS) | 10) +#define EC_WORD_HYPER ((EC_GROUP_EVENTS << EC_MASK_BITS) | 11) +#define EC_WORD_BATTLE_TOWER ((EC_GROUP_EVENTS << EC_MASK_BITS) | 12) +#define EC_WORD_LEADERS ((EC_GROUP_EVENTS << EC_MASK_BITS) | 13) +#define EC_WORD_BATTLE_ROOM ((EC_GROUP_EVENTS << EC_MASK_BITS) | 14) +#define EC_WORD_HIDDEN ((EC_GROUP_EVENTS << EC_MASK_BITS) | 15) +#define EC_WORD_SECRET_BASE ((EC_GROUP_EVENTS << EC_MASK_BITS) | 16) +#define EC_WORD_BLEND ((EC_GROUP_EVENTS << EC_MASK_BITS) | 17) +#define EC_WORD_POKEBLOCK ((EC_GROUP_EVENTS << EC_MASK_BITS) | 18) +#define EC_WORD_MASTER ((EC_GROUP_EVENTS << EC_MASK_BITS) | 19) +#define EC_WORD_RANK ((EC_GROUP_EVENTS << EC_MASK_BITS) | 20) +#define EC_WORD_RIBBON ((EC_GROUP_EVENTS << EC_MASK_BITS) | 21) +#define EC_WORD_CRUSH ((EC_GROUP_EVENTS << EC_MASK_BITS) | 22) +#define EC_WORD_DIRECT ((EC_GROUP_EVENTS << EC_MASK_BITS) | 23) +#define EC_WORD_TOWER ((EC_GROUP_EVENTS << EC_MASK_BITS) | 24) +#define EC_WORD_UNION ((EC_GROUP_EVENTS << EC_MASK_BITS) | 25) +#define EC_WORD_ROOM ((EC_GROUP_EVENTS << EC_MASK_BITS) | 26) +#define EC_WORD_WIRELESS ((EC_GROUP_EVENTS << EC_MASK_BITS) | 27) +#define EC_WORD_FRONTIER ((EC_GROUP_EVENTS << EC_MASK_BITS) | 28) // TRENDY_SAYING -#define EC_WORD_KTHX_BYE (EC_GROUP_TRENDY_SAYING << 9) | 0x0 -#define EC_WORD_YES_SIR_EXCL (EC_GROUP_TRENDY_SAYING << 9) | 0x1 -#define EC_WORD_AVANT_GARDE (EC_GROUP_TRENDY_SAYING << 9) | 0x2 -#define EC_WORD_COUPLE (EC_GROUP_TRENDY_SAYING << 9) | 0x3 -#define EC_WORD_MUCH_OBLIGED (EC_GROUP_TRENDY_SAYING << 9) | 0x4 -#define EC_WORD_YEEHAW_EXCL (EC_GROUP_TRENDY_SAYING << 9) | 0x5 -#define EC_WORD_MEGA (EC_GROUP_TRENDY_SAYING << 9) | 0x6 -#define EC_WORD_1_HIT_KO_EXCL (EC_GROUP_TRENDY_SAYING << 9) | 0x7 -#define EC_WORD_DESTINY (EC_GROUP_TRENDY_SAYING << 9) | 0x8 -#define EC_WORD_CANCEL (EC_GROUP_TRENDY_SAYING << 9) | 0x9 -#define EC_WORD_NEW (EC_GROUP_TRENDY_SAYING << 9) | 0xa -#define EC_WORD_FLATTEN (EC_GROUP_TRENDY_SAYING << 9) | 0xb -#define EC_WORD_KIDDING (EC_GROUP_TRENDY_SAYING << 9) | 0xc -#define EC_WORD_LOSER (EC_GROUP_TRENDY_SAYING << 9) | 0xd -#define EC_WORD_LOSING (EC_GROUP_TRENDY_SAYING << 9) | 0xe -#define EC_WORD_HAPPENING (EC_GROUP_TRENDY_SAYING << 9) | 0xf -#define EC_WORD_HIP_AND (EC_GROUP_TRENDY_SAYING << 9) | 0x10 -#define EC_WORD_SHAKE (EC_GROUP_TRENDY_SAYING << 9) | 0x11 -#define EC_WORD_SHADY (EC_GROUP_TRENDY_SAYING << 9) | 0x12 -#define EC_WORD_UPBEAT (EC_GROUP_TRENDY_SAYING << 9) | 0x13 -#define EC_WORD_MODERN (EC_GROUP_TRENDY_SAYING << 9) | 0x14 -#define EC_WORD_SMELL_YA (EC_GROUP_TRENDY_SAYING << 9) | 0x15 -#define EC_WORD_BANG (EC_GROUP_TRENDY_SAYING << 9) | 0x16 -#define EC_WORD_KNOCKOUT (EC_GROUP_TRENDY_SAYING << 9) | 0x17 -#define EC_WORD_HASSLE (EC_GROUP_TRENDY_SAYING << 9) | 0x18 -#define EC_WORD_WINNER (EC_GROUP_TRENDY_SAYING << 9) | 0x19 -#define EC_WORD_FEVER (EC_GROUP_TRENDY_SAYING << 9) | 0x1a -#define EC_WORD_WANNABE (EC_GROUP_TRENDY_SAYING << 9) | 0x1b -#define EC_WORD_BABY (EC_GROUP_TRENDY_SAYING << 9) | 0x1c -#define EC_WORD_HEART (EC_GROUP_TRENDY_SAYING << 9) | 0x1d -#define EC_WORD_OLD (EC_GROUP_TRENDY_SAYING << 9) | 0x1e -#define EC_WORD_YOUNG (EC_GROUP_TRENDY_SAYING << 9) | 0x1f -#define EC_WORD_UGLY (EC_GROUP_TRENDY_SAYING << 9) | 0x20 +#define EC_WORD_KTHX_BYE ((EC_GROUP_TRENDY_SAYING << EC_MASK_BITS) | 0) +#define EC_WORD_YES_SIR_EXCL ((EC_GROUP_TRENDY_SAYING << EC_MASK_BITS) | 1) +#define EC_WORD_AVANT_GARDE ((EC_GROUP_TRENDY_SAYING << EC_MASK_BITS) | 2) +#define EC_WORD_COUPLE ((EC_GROUP_TRENDY_SAYING << EC_MASK_BITS) | 3) +#define EC_WORD_MUCH_OBLIGED ((EC_GROUP_TRENDY_SAYING << EC_MASK_BITS) | 4) +#define EC_WORD_YEEHAW_EXCL ((EC_GROUP_TRENDY_SAYING << EC_MASK_BITS) | 5) +#define EC_WORD_MEGA ((EC_GROUP_TRENDY_SAYING << EC_MASK_BITS) | 6) +#define EC_WORD_1_HIT_KO_EXCL ((EC_GROUP_TRENDY_SAYING << EC_MASK_BITS) | 7) +#define EC_WORD_DESTINY ((EC_GROUP_TRENDY_SAYING << EC_MASK_BITS) | 8) +#define EC_WORD_CANCEL ((EC_GROUP_TRENDY_SAYING << EC_MASK_BITS) | 9) +#define EC_WORD_NEW ((EC_GROUP_TRENDY_SAYING << EC_MASK_BITS) | 10) +#define EC_WORD_FLATTEN ((EC_GROUP_TRENDY_SAYING << EC_MASK_BITS) | 11) +#define EC_WORD_KIDDING ((EC_GROUP_TRENDY_SAYING << EC_MASK_BITS) | 12) +#define EC_WORD_LOSER ((EC_GROUP_TRENDY_SAYING << EC_MASK_BITS) | 13) +#define EC_WORD_LOSING ((EC_GROUP_TRENDY_SAYING << EC_MASK_BITS) | 14) +#define EC_WORD_HAPPENING ((EC_GROUP_TRENDY_SAYING << EC_MASK_BITS) | 15) +#define EC_WORD_HIP_AND ((EC_GROUP_TRENDY_SAYING << EC_MASK_BITS) | 16) +#define EC_WORD_SHAKE ((EC_GROUP_TRENDY_SAYING << EC_MASK_BITS) | 17) +#define EC_WORD_SHADY ((EC_GROUP_TRENDY_SAYING << EC_MASK_BITS) | 18) +#define EC_WORD_UPBEAT ((EC_GROUP_TRENDY_SAYING << EC_MASK_BITS) | 19) +#define EC_WORD_MODERN ((EC_GROUP_TRENDY_SAYING << EC_MASK_BITS) | 20) +#define EC_WORD_SMELL_YA ((EC_GROUP_TRENDY_SAYING << EC_MASK_BITS) | 21) +#define EC_WORD_BANG ((EC_GROUP_TRENDY_SAYING << EC_MASK_BITS) | 22) +#define EC_WORD_KNOCKOUT ((EC_GROUP_TRENDY_SAYING << EC_MASK_BITS) | 23) +#define EC_WORD_HASSLE ((EC_GROUP_TRENDY_SAYING << EC_MASK_BITS) | 24) +#define EC_WORD_WINNER ((EC_GROUP_TRENDY_SAYING << EC_MASK_BITS) | 25) +#define EC_WORD_FEVER ((EC_GROUP_TRENDY_SAYING << EC_MASK_BITS) | 26) +#define EC_WORD_WANNABE ((EC_GROUP_TRENDY_SAYING << EC_MASK_BITS) | 27) +#define EC_WORD_BABY ((EC_GROUP_TRENDY_SAYING << EC_MASK_BITS) | 28) +#define EC_WORD_HEART ((EC_GROUP_TRENDY_SAYING << EC_MASK_BITS) | 29) +#define EC_WORD_OLD ((EC_GROUP_TRENDY_SAYING << EC_MASK_BITS) | 30) +#define EC_WORD_YOUNG ((EC_GROUP_TRENDY_SAYING << EC_MASK_BITS) | 31) +#define EC_WORD_UGLY ((EC_GROUP_TRENDY_SAYING << EC_MASK_BITS) | 32) #define NUM_ADDITIONAL_PHRASES 33 // Special Berry Masters Wife phrases @@ -1109,17 +1109,22 @@ #define EC_MAX_WORDS_IN_GROUP 270 // The closest is words by letter S, at 262 -#define EC_MASK_GROUP 0x7F -#define EC_MASK_INDEX 0x1FF +// If the Pokémon or Move group tables have an ID higher than 511, the word will be seen as +// invalid due to the index looping back to the beginning and not matching the proper value. +// To allow for higher values on those tables, increase the value of EC_MASK_BITS and the max value +// will increase to (2 ^ EC_MASK_BITS). Keep in mind that existing saved words will be shifted. +#define EC_MASK_BITS 9 +#define EC_MASK_GROUP ((1 << (16 - EC_MASK_BITS)) - 1) +#define EC_MASK_INDEX ((1 << EC_MASK_BITS) - 1) -#define EC_POKEMON(mon) ((EC_GROUP_POKEMON << 9) | SPECIES_##mon) -#define EC_POKEMON_NATIONAL(mon) ((EC_GROUP_POKEMON_NATIONAL << 9) | SPECIES_##mon) -#define EC_MOVE(move) ((EC_GROUP_MOVE_1 << 9) | MOVE_##move) -#define EC_MOVE2(move) ((EC_GROUP_MOVE_2 << 9) | MOVE_##move) +#define EC_POKEMON(mon) ((EC_GROUP_POKEMON << EC_MASK_BITS) | SPECIES_##mon) +#define EC_POKEMON_NATIONAL(mon) ((EC_GROUP_POKEMON_NATIONAL << EC_MASK_BITS) | SPECIES_##mon) +#define EC_MOVE(move) ((EC_GROUP_MOVE_1 << EC_MASK_BITS) | MOVE_##move) +#define EC_MOVE2(move) ((EC_GROUP_MOVE_2 << EC_MASK_BITS) | MOVE_##move) -#define EC_GROUP(word) ((word) >> 9) +#define EC_GROUP(word) ((word) >> EC_MASK_BITS) #define EC_INDEX(word) ((word) & EC_MASK_INDEX) -#define EC_WORD(group, index) ((((group) & EC_MASK_GROUP) << 9) | ((index) & EC_MASK_INDEX)) +#define EC_WORD(group, index) ((((group) & EC_MASK_GROUP) << EC_MASK_BITS) | ((index) & EC_MASK_INDEX)) #define EC_EMPTY_WORD 0xFFFF diff --git a/src/data/easy_chat/easy_chat_group_actions.h b/src/data/easy_chat/easy_chat_group_actions.h index 06a8e7303..6ad297efc 100755 --- a/src/data/easy_chat/easy_chat_group_actions.h +++ b/src/data/easy_chat/easy_chat_group_actions.h @@ -78,391 +78,469 @@ const u8 gEasyChatWord_Faint[] = _("FAINT"); const u8 gEasyChatWord_Fainted[] = _("FAINTED"); const struct EasyChatWordInfo gEasyChatGroup_Actions[] = { + [EC_INDEX(EC_WORD_MEETS)] = { .text = gEasyChatWord_Meets, .alphabeticalOrder = 72, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_CONCEDE)] = { .text = gEasyChatWord_Concede, .alphabeticalOrder = 14, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_GIVE)] = { .text = gEasyChatWord_Give, .alphabeticalOrder = 48, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_GIVES)] = { .text = gEasyChatWord_Gives, .alphabeticalOrder = 75, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_PLAYED)] = { .text = gEasyChatWord_Played, .alphabeticalOrder = 39, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_PLAYS)] = { .text = gEasyChatWord_Plays, .alphabeticalOrder = 36, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_COLLECT)] = { .text = gEasyChatWord_Collect, .alphabeticalOrder = 28, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_WALKING)] = { .text = gEasyChatWord_Walking, .alphabeticalOrder = 46, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_WALKS)] = { .text = gEasyChatWord_Walks, .alphabeticalOrder = 31, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_SAYS)] = { .text = gEasyChatWord_Says, .alphabeticalOrder = 19, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_WENT)] = { .text = gEasyChatWord_Went, .alphabeticalOrder = 26, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_SAID)] = { .text = gEasyChatWord_Said, .alphabeticalOrder = 6, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_WAKE_UP)] = { .text = gEasyChatWord_WakeUp, .alphabeticalOrder = 27, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_WAKES_UP)] = { .text = gEasyChatWord_WakesUp, .alphabeticalOrder = 1, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_ANGERS)] = { .text = gEasyChatWord_Angers, .alphabeticalOrder = 45, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_TEACH)] = { .text = gEasyChatWord_Teach, .alphabeticalOrder = 47, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_TEACHES)] = { .text = gEasyChatWord_Teaches, .alphabeticalOrder = 54, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_PLEASE)] = { .text = gEasyChatWord_Please, .alphabeticalOrder = 41, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_LEARN)] = { .text = gEasyChatWord_Learn, .alphabeticalOrder = 76, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_CHANGE)] = { .text = gEasyChatWord_Change, .alphabeticalOrder = 77, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_STORY)] = { .text = gEasyChatWord_Story, .alphabeticalOrder = 73, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_TRUST)] = { .text = gEasyChatWord_Trust, .alphabeticalOrder = 74, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_LAVISH)] = { .text = gEasyChatWord_Lavish, .alphabeticalOrder = 2, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_LISTENS)] = { .text = gEasyChatWord_Listens, .alphabeticalOrder = 3, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_HEARING)] = { .text = gEasyChatWord_Hearing, .alphabeticalOrder = 24, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_TRAINS)] = { .text = gEasyChatWord_Trains, .alphabeticalOrder = 37, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_CHOOSE)] = { .text = gEasyChatWord_Choose, .alphabeticalOrder = 32, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_COME)] = { .text = gEasyChatWord_Come, .alphabeticalOrder = 33, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_CAME)] = { .text = gEasyChatWord_Came, .alphabeticalOrder = 22, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_SEARCH)] = { .text = gEasyChatWord_Search, .alphabeticalOrder = 18, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_MAKE)] = { .text = gEasyChatWord_Make, .alphabeticalOrder = 23, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_CAUSE)] = { .text = gEasyChatWord_Cause, .alphabeticalOrder = 67, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_KNOW)] = { .text = gEasyChatWord_Know, .alphabeticalOrder = 30, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_KNOWS)] = { .text = gEasyChatWord_Knows, .alphabeticalOrder = 0, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_REFUSE)] = { .text = gEasyChatWord_Refuse, .alphabeticalOrder = 65, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_STORES)] = { .text = gEasyChatWord_Stores, .alphabeticalOrder = 70, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_BRAG)] = { .text = gEasyChatWord_Brag, .alphabeticalOrder = 4, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_IGNORANT)] = { .text = gEasyChatWord_Ignorant, .alphabeticalOrder = 5, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_THINKS)] = { .text = gEasyChatWord_Thinks, .alphabeticalOrder = 17, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_BELIEVE)] = { .text = gEasyChatWord_Believe, .alphabeticalOrder = 64, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_SLIDE)] = { .text = gEasyChatWord_Slide, .alphabeticalOrder = 63, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_EATS)] = { .text = gEasyChatWord_Eats, .alphabeticalOrder = 34, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_USE)] = { .text = gEasyChatWord_Use, .alphabeticalOrder = 53, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_USES)] = { .text = gEasyChatWord_Uses, .alphabeticalOrder = 56, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_USING)] = { .text = gEasyChatWord_Using, .alphabeticalOrder = 55, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_COULDN_T)] = { .text = gEasyChatWord_Couldnt, .alphabeticalOrder = 11, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_CAPABLE)] = { .text = gEasyChatWord_Capable, .alphabeticalOrder = 9, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_DISAPPEAR)] = { .text = gEasyChatWord_Disappear, .alphabeticalOrder = 29, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_APPEAR)] = { .text = gEasyChatWord_Appear, .alphabeticalOrder = 69, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_THROW)] = { .text = gEasyChatWord_Throw, .alphabeticalOrder = 68, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_WORRY)] = { .text = gEasyChatWord_Worry, .alphabeticalOrder = 66, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_SLEPT)] = { .text = gEasyChatWord_Slept, .alphabeticalOrder = 61, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_SLEEP)] = { .text = gEasyChatWord_Sleep, .alphabeticalOrder = 52, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_RELEASE)] = { .text = gEasyChatWord_Release, .alphabeticalOrder = 51, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_DRINKS)] = { .text = gEasyChatWord_Drinks, .alphabeticalOrder = 40, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_RUNS)] = { .text = gEasyChatWord_Runs, .alphabeticalOrder = 62, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_RUN)] = { .text = gEasyChatWord_Run, .alphabeticalOrder = 35, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_WORKS)] = { .text = gEasyChatWord_Works, .alphabeticalOrder = 20, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_WORKING)] = { .text = gEasyChatWord_Working, .alphabeticalOrder = 71, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_TALKING)] = { .text = gEasyChatWord_Talking, .alphabeticalOrder = 60, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_TALK)] = { .text = gEasyChatWord_Talk, .alphabeticalOrder = 59, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_SINK)] = { .text = gEasyChatWord_Sink, .alphabeticalOrder = 15, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_SMACK)] = { .text = gEasyChatWord_Smack, .alphabeticalOrder = 16, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_PRETEND)] = { .text = gEasyChatWord_Pretend, .alphabeticalOrder = 38, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_PRAISE)] = { .text = gEasyChatWord_Praise, .alphabeticalOrder = 49, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_OVERDO)] = { .text = gEasyChatWord_Overdo, .alphabeticalOrder = 25, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_SHOW)] = { .text = gEasyChatWord_Show, .alphabeticalOrder = 21, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_LOOKS)] = { .text = gEasyChatWord_Looks, .alphabeticalOrder = 42, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_SEES)] = { .text = gEasyChatWord_Sees, .alphabeticalOrder = 43, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_SEEK)] = { .text = gEasyChatWord_Seek, .alphabeticalOrder = 44, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_OWN)] = { .text = gEasyChatWord_Own, .alphabeticalOrder = 12, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_TAKE)] = { .text = gEasyChatWord_Take, .alphabeticalOrder = 13, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_ALLOW)] = { .text = gEasyChatWord_Allow, .alphabeticalOrder = 7, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_FORGET)] = { .text = gEasyChatWord_Forget, .alphabeticalOrder = 8, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_FORGETS)] = { .text = gEasyChatWord_Forgets, .alphabeticalOrder = 10, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_APPEARS)] = { .text = gEasyChatWord_Appears, .alphabeticalOrder = 58, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_FAINT)] = { .text = gEasyChatWord_Faint, .alphabeticalOrder = 57, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_FAINTED)] = { .text = gEasyChatWord_Fainted, .alphabeticalOrder = 50, diff --git a/src/data/easy_chat/easy_chat_group_adjectives.h b/src/data/easy_chat/easy_chat_group_adjectives.h index 1c7474118..619dff621 100755 --- a/src/data/easy_chat/easy_chat_group_adjectives.h +++ b/src/data/easy_chat/easy_chat_group_adjectives.h @@ -36,181 +36,217 @@ const u8 gEasyChatWord_Happily[] = _("HAPPILY"); const u8 gEasyChatWord_Anticipation[] = _("ANTICIPATION"); const struct EasyChatWordInfo gEasyChatGroup_Adjectives[] = { + [EC_INDEX(EC_WORD_WANDERING)] = { .text = gEasyChatWord_Wandering, .alphabeticalOrder = 35, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_RICKETY)] = { .text = gEasyChatWord_Rickety, .alphabeticalOrder = 23, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_ROCK_SOLID)] = { .text = gEasyChatWord_RockSolid, .alphabeticalOrder = 20, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_HUNGRY)] = { .text = gEasyChatWord_Hungry, .alphabeticalOrder = 31, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_TIGHT)] = { .text = gEasyChatWord_Tight, .alphabeticalOrder = 14, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_TICKLISH)] = { .text = gEasyChatWord_Ticklish, .alphabeticalOrder = 15, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_TWIRLING)] = { .text = gEasyChatWord_Twirling, .alphabeticalOrder = 32, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_SPIRALING)] = { .text = gEasyChatWord_Spiraling, .alphabeticalOrder = 34, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_THIRSTY)] = { .text = gEasyChatWord_Thirsty, .alphabeticalOrder = 12, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_LOLLING)] = { .text = gEasyChatWord_Lolling, .alphabeticalOrder = 3, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_SILKY)] = { .text = gEasyChatWord_Silky, .alphabeticalOrder = 29, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_SADLY)] = { .text = gEasyChatWord_Sadly, .alphabeticalOrder = 9, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_HOPELESS)] = { .text = gEasyChatWord_Hopeless, .alphabeticalOrder = 33, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_USELESS)] = { .text = gEasyChatWord_Useless, .alphabeticalOrder = 1, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_DROOLING)] = { .text = gEasyChatWord_Drooling, .alphabeticalOrder = 27, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_EXCITING)] = { .text = gEasyChatWord_Exciting, .alphabeticalOrder = 2, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_THICK)] = { .text = gEasyChatWord_Thick, .alphabeticalOrder = 11, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_SMOOTH)] = { .text = gEasyChatWord_Smooth, .alphabeticalOrder = 22, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_SLIMY)] = { .text = gEasyChatWord_Slimy, .alphabeticalOrder = 26, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_THIN)] = { .text = gEasyChatWord_Thin, .alphabeticalOrder = 28, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_BREAK)] = { .text = gEasyChatWord_Break, .alphabeticalOrder = 10, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_VORACIOUS)] = { .text = gEasyChatWord_Voracious, .alphabeticalOrder = 18, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_SCATTER)] = { .text = gEasyChatWord_Scatter, .alphabeticalOrder = 17, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_AWESOME)] = { .text = gEasyChatWord_Awesome, .alphabeticalOrder = 7, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_WIMPY)] = { .text = gEasyChatWord_Wimpy, .alphabeticalOrder = 16, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_WOBBLY)] = { .text = gEasyChatWord_Wobbly, .alphabeticalOrder = 19, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_SHAKY)] = { .text = gEasyChatWord_Shaky, .alphabeticalOrder = 8, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_RIPPED)] = { .text = gEasyChatWord_Ripped, .alphabeticalOrder = 5, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_SHREDDED)] = { .text = gEasyChatWord_Shredded, .alphabeticalOrder = 4, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_INCREASING)] = { .text = gEasyChatWord_Increasing, .alphabeticalOrder = 6, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_YET)] = { .text = gEasyChatWord_Yet, .alphabeticalOrder = 13, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_DESTROYED)] = { .text = gEasyChatWord_Destroyed, .alphabeticalOrder = 21, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_FIERY)] = { .text = gEasyChatWord_Fiery, .alphabeticalOrder = 0, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_LOVEY_DOVEY)] = { .text = gEasyChatWord_LoveyDovey, .alphabeticalOrder = 24, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_HAPPILY)] = { .text = gEasyChatWord_Happily, .alphabeticalOrder = 25, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_ANTICIPATION)] = { .text = gEasyChatWord_Anticipation, .alphabeticalOrder = 30, diff --git a/src/data/easy_chat/easy_chat_group_battle.h b/src/data/easy_chat/easy_chat_group_battle.h index 0f97f50c9..2a2420b2f 100755 --- a/src/data/easy_chat/easy_chat_group_battle.h +++ b/src/data/easy_chat/easy_chat_group_battle.h @@ -63,316 +63,379 @@ const u8 gEasyChatWord_Rule[] = _("RULE"); const u8 gEasyChatWord_Move[] = _("MOVE"); const struct EasyChatWordInfo gEasyChatGroup_Battle[] = { + [EC_INDEX(EC_WORD_MATCH_UP)] = { .text = gEasyChatWord_MatchUp, .alphabeticalOrder = 53, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_GO)] = { .text = gEasyChatWord_Go, .alphabeticalOrder = 39, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_NO_1)] = { .text = gEasyChatWord_No1, .alphabeticalOrder = 18, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_DECIDE)] = { .text = gEasyChatWord_Decide, .alphabeticalOrder = 40, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_LET_ME_WIN)] = { .text = gEasyChatWord_LetMeWin, .alphabeticalOrder = 11, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_WINS)] = { .text = gEasyChatWord_Wins, .alphabeticalOrder = 10, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_WIN)] = { .text = gEasyChatWord_Win, .alphabeticalOrder = 31, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_WON)] = { .text = gEasyChatWord_Won, .alphabeticalOrder = 17, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_IF_I_WIN)] = { .text = gEasyChatWord_IfIWin, .alphabeticalOrder = 3, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_WHEN_I_WIN)] = { .text = gEasyChatWord_WhenIWin, .alphabeticalOrder = 14, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_CAN_T_WIN)] = { .text = gEasyChatWord_CantWin, .alphabeticalOrder = 56, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_CAN_WIN)] = { .text = gEasyChatWord_CanWin, .alphabeticalOrder = 38, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_NO_MATCH)] = { .text = gEasyChatWord_NoMatch, .alphabeticalOrder = 41, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_SPIRIT)] = { .text = gEasyChatWord_Spirit, .alphabeticalOrder = 29, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_DECIDED)] = { .text = gEasyChatWord_Decided, .alphabeticalOrder = 35, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_TRUMP_CARD)] = { .text = gEasyChatWord_TrumpCard, .alphabeticalOrder = 36, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_TAKE_THAT)] = { .text = gEasyChatWord_TakeThat, .alphabeticalOrder = 45, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_COME_ON)] = { .text = gEasyChatWord_ComeOn, .alphabeticalOrder = 1, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_ATTACK)] = { .text = gEasyChatWord_Attack, .alphabeticalOrder = 34, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_SURRENDER)] = { .text = gEasyChatWord_Surrender, .alphabeticalOrder = 50, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_GUTSY)] = { .text = gEasyChatWord_Gutsy, .alphabeticalOrder = 20, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_TALENT)] = { .text = gEasyChatWord_Talent, .alphabeticalOrder = 47, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_STRATEGY)] = { .text = gEasyChatWord_Strategy, .alphabeticalOrder = 8, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_SMITE)] = { .text = gEasyChatWord_Smite, .alphabeticalOrder = 54, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_MATCH)] = { .text = gEasyChatWord_Match, .alphabeticalOrder = 60, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_VICTORY)] = { .text = gEasyChatWord_Victory, .alphabeticalOrder = 37, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_OFFENSIVE)] = { .text = gEasyChatWord_Offensive, .alphabeticalOrder = 4, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_SENSE)] = { .text = gEasyChatWord_Sense, .alphabeticalOrder = 49, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_VERSUS)] = { .text = gEasyChatWord_Versus, .alphabeticalOrder = 46, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_FIGHTS)] = { .text = gEasyChatWord_Fights, .alphabeticalOrder = 48, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_POWER)] = { .text = gEasyChatWord_Power, .alphabeticalOrder = 24, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_CHALLENGE)] = { .text = gEasyChatWord_Challenge, .alphabeticalOrder = 0, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_STRONG)] = { .text = gEasyChatWord_Strong, .alphabeticalOrder = 62, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_TOO_STRONG)] = { .text = gEasyChatWord_TooStrong, .alphabeticalOrder = 12, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_GO_EASY)] = { .text = gEasyChatWord_GoEasy, .alphabeticalOrder = 2, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_FOE)] = { .text = gEasyChatWord_Foe, .alphabeticalOrder = 26, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_GENIUS)] = { .text = gEasyChatWord_Genius, .alphabeticalOrder = 51, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_LEGEND)] = { .text = gEasyChatWord_Legend, .alphabeticalOrder = 43, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_ESCAPE)] = { .text = gEasyChatWord_Escape, .alphabeticalOrder = 30, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_AIM)] = { .text = gEasyChatWord_Aim, .alphabeticalOrder = 59, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_BATTLE)] = { .text = gEasyChatWord_Battle, .alphabeticalOrder = 55, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_FIGHT)] = { .text = gEasyChatWord_Fight, .alphabeticalOrder = 52, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_RESUSCITATE)] = { .text = gEasyChatWord_Resuscitate, .alphabeticalOrder = 42, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_POINTS)] = { .text = gEasyChatWord_Points, .alphabeticalOrder = 61, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_SERIOUS)] = { .text = gEasyChatWord_Serious, .alphabeticalOrder = 27, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_GIVE_UP)] = { .text = gEasyChatWord_GiveUp, .alphabeticalOrder = 44, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_LOSS)] = { .text = gEasyChatWord_Loss, .alphabeticalOrder = 23, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_IF_I_LOSE)] = { .text = gEasyChatWord_IfILose, .alphabeticalOrder = 13, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_LOST)] = { .text = gEasyChatWord_Lost, .alphabeticalOrder = 22, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_LOSE)] = { .text = gEasyChatWord_Lose, .alphabeticalOrder = 32, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_GUARD)] = { .text = gEasyChatWord_Guard, .alphabeticalOrder = 19, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_PARTNER)] = { .text = gEasyChatWord_Partner, .alphabeticalOrder = 16, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_REJECT)] = { .text = gEasyChatWord_Reject, .alphabeticalOrder = 21, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_ACCEPT)] = { .text = gEasyChatWord_Accept, .alphabeticalOrder = 33, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_INVINCIBLE)] = { .text = gEasyChatWord_Invincible, .alphabeticalOrder = 58, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_RECEIVED)] = { .text = gEasyChatWord_Received, .alphabeticalOrder = 15, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_EASY)] = { .text = gEasyChatWord_Easy, .alphabeticalOrder = 28, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_WEAK)] = { .text = gEasyChatWord_Weak, .alphabeticalOrder = 25, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_TOO_WEAK)] = { .text = gEasyChatWord_TooWeak, .alphabeticalOrder = 57, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_PUSHOVER)] = { .text = gEasyChatWord_Pushover, .alphabeticalOrder = 9, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_LEADER)] = { .text = gEasyChatWord_Leader, .alphabeticalOrder = 6, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_RULE)] = { .text = gEasyChatWord_Rule, .alphabeticalOrder = 5, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_MOVE)] = { .text = gEasyChatWord_Move, .alphabeticalOrder = 7, diff --git a/src/data/easy_chat/easy_chat_group_conditions.h b/src/data/easy_chat/easy_chat_group_conditions.h index a8d8ee874..d0636f162 100755 --- a/src/data/easy_chat/easy_chat_group_conditions.h +++ b/src/data/easy_chat/easy_chat_group_conditions.h @@ -69,346 +69,415 @@ const u8 gEasyChatWord_Seems[] = _("SEEMS"); const u8 gEasyChatWord_Badly[] = _("BADLY"); const struct EasyChatWordInfo gEasyChatGroup_Conditions[] = { + [EC_INDEX(EC_WORD_HOT)] = { .text = gEasyChatWord_Hot, .alphabeticalOrder = 13, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_EXISTS)] = { .text = gEasyChatWord_Exists, .alphabeticalOrder = 55, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_EXCESS)] = { .text = gEasyChatWord_Excess, .alphabeticalOrder = 23, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_APPROVED)] = { .text = gEasyChatWord_Approved, .alphabeticalOrder = 3, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_HAS)] = { .text = gEasyChatWord_Has, .alphabeticalOrder = 54, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_GOOD)] = { .text = gEasyChatWord_Good, .alphabeticalOrder = 68, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_LESS)] = { .text = gEasyChatWord_Less, .alphabeticalOrder = 50, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_MOMENTUM)] = { .text = gEasyChatWord_Momentum, .alphabeticalOrder = 14, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_GOING)] = { .text = gEasyChatWord_Going, .alphabeticalOrder = 60, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_WEIRD)] = { .text = gEasyChatWord_Weird, .alphabeticalOrder = 19, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_BUSY)] = { .text = gEasyChatWord_Busy, .alphabeticalOrder = 56, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_TOGETHER)] = { .text = gEasyChatWord_Together, .alphabeticalOrder = 10, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_FULL)] = { .text = gEasyChatWord_Full, .alphabeticalOrder = 21, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_ABSENT)] = { .text = gEasyChatWord_Absent, .alphabeticalOrder = 30, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_BEING)] = { .text = gEasyChatWord_Being, .alphabeticalOrder = 38, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_NEED)] = { .text = gEasyChatWord_Need, .alphabeticalOrder = 41, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_TASTY)] = { .text = gEasyChatWord_Tasty, .alphabeticalOrder = 22, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_SKILLED)] = { .text = gEasyChatWord_Skilled, .alphabeticalOrder = 36, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_NOISY)] = { .text = gEasyChatWord_Noisy, .alphabeticalOrder = 24, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_BIG)] = { .text = gEasyChatWord_Big, .alphabeticalOrder = 28, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_LATE)] = { .text = gEasyChatWord_Late, .alphabeticalOrder = 2, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_CLOSE)] = { .text = gEasyChatWord_Close, .alphabeticalOrder = 1, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_DOCILE)] = { .text = gEasyChatWord_Docile, .alphabeticalOrder = 37, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_AMUSING)] = { .text = gEasyChatWord_Amusing, .alphabeticalOrder = 35, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_ENTERTAINING)] = { .text = gEasyChatWord_Entertaining, .alphabeticalOrder = 52, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_PERFECTION)] = { .text = gEasyChatWord_Perfection, .alphabeticalOrder = 12, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_PRETTY)] = { .text = gEasyChatWord_Pretty, .alphabeticalOrder = 8, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_HEALTHY)] = { .text = gEasyChatWord_Healthy, .alphabeticalOrder = 5, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_EXCELLENT)] = { .text = gEasyChatWord_Excellent, .alphabeticalOrder = 4, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_UPSIDE_DOWN)] = { .text = gEasyChatWord_UpsideDown, .alphabeticalOrder = 27, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_COLD)] = { .text = gEasyChatWord_Cold, .alphabeticalOrder = 0, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_REFRESHING)] = { .text = gEasyChatWord_Refreshing, .alphabeticalOrder = 39, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_UNAVOIDABLE)] = { .text = gEasyChatWord_Unavoidable, .alphabeticalOrder = 63, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_MUCH)] = { .text = gEasyChatWord_Much, .alphabeticalOrder = 59, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_OVERWHELMING)] = { .text = gEasyChatWord_Overwhelming, .alphabeticalOrder = 20, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_FABULOUS)] = { .text = gEasyChatWord_Fabulous, .alphabeticalOrder = 6, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_ELSE)] = { .text = gEasyChatWord_Else, .alphabeticalOrder = 61, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_EXPENSIVE)] = { .text = gEasyChatWord_Expensive, .alphabeticalOrder = 53, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_CORRECT)] = { .text = gEasyChatWord_Correct, .alphabeticalOrder = 51, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_IMPOSSIBLE)] = { .text = gEasyChatWord_Impossible, .alphabeticalOrder = 62, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_SMALL)] = { .text = gEasyChatWord_Small, .alphabeticalOrder = 7, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_DIFFERENT)] = { .text = gEasyChatWord_Different, .alphabeticalOrder = 33, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_TIRED)] = { .text = gEasyChatWord_Tired, .alphabeticalOrder = 58, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_SKILL)] = { .text = gEasyChatWord_Skill, .alphabeticalOrder = 49, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_TOP)] = { .text = gEasyChatWord_Top, .alphabeticalOrder = 15, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_NON_STOP)] = { .text = gEasyChatWord_NonStop, .alphabeticalOrder = 18, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_PREPOSTEROUS)] = { .text = gEasyChatWord_Preposterous, .alphabeticalOrder = 45, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_NONE)] = { .text = gEasyChatWord_None, .alphabeticalOrder = 47, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_NOTHING)] = { .text = gEasyChatWord_Nothing, .alphabeticalOrder = 48, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_NATURAL)] = { .text = gEasyChatWord_Natural, .alphabeticalOrder = 34, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_BECOMES)] = { .text = gEasyChatWord_Becomes, .alphabeticalOrder = 25, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_LUKEWARM)] = { .text = gEasyChatWord_Lukewarm, .alphabeticalOrder = 46, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_FAST)] = { .text = gEasyChatWord_Fast, .alphabeticalOrder = 26, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_LOW)] = { .text = gEasyChatWord_Low, .alphabeticalOrder = 31, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_AWFUL)] = { .text = gEasyChatWord_Awful, .alphabeticalOrder = 57, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_ALONE)] = { .text = gEasyChatWord_Alone, .alphabeticalOrder = 67, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_BORED)] = { .text = gEasyChatWord_Bored, .alphabeticalOrder = 66, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_SECRET)] = { .text = gEasyChatWord_Secret, .alphabeticalOrder = 43, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_MYSTERY)] = { .text = gEasyChatWord_Mystery, .alphabeticalOrder = 17, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_LACKS)] = { .text = gEasyChatWord_Lacks, .alphabeticalOrder = 40, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_BEST)] = { .text = gEasyChatWord_Best, .alphabeticalOrder = 16, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_LOUSY)] = { .text = gEasyChatWord_Lousy, .alphabeticalOrder = 42, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_MISTAKE)] = { .text = gEasyChatWord_Mistake, .alphabeticalOrder = 11, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_KIND)] = { .text = gEasyChatWord_Kind, .alphabeticalOrder = 44, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_WELL)] = { .text = gEasyChatWord_Well, .alphabeticalOrder = 32, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_WEAKENED)] = { .text = gEasyChatWord_Weakened, .alphabeticalOrder = 29, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_SIMPLE)] = { .text = gEasyChatWord_Simple, .alphabeticalOrder = 65, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_SEEMS)] = { .text = gEasyChatWord_Seems, .alphabeticalOrder = 9, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_BADLY)] = { .text = gEasyChatWord_Badly, .alphabeticalOrder = 64, diff --git a/src/data/easy_chat/easy_chat_group_endings.h b/src/data/easy_chat/easy_chat_group_endings.h index afaea48cb..ffa5108a9 100755 --- a/src/data/easy_chat/easy_chat_group_endings.h +++ b/src/data/easy_chat/easy_chat_group_endings.h @@ -69,346 +69,415 @@ const u8 gEasyChatWord_Once[] = _("ONCE"); const u8 gEasyChatWord_Anywhere[] = _("ANYWHERE"); const struct EasyChatWordInfo gEasyChatGroup_Endings[] = { + [EC_INDEX(EC_WORD_WILL)] = { .text = gEasyChatWord_Will, .alphabeticalOrder = 32, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_WILL_BE_HERE)] = { .text = gEasyChatWord_WillBeHere, .alphabeticalOrder = 39, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_OR)] = { .text = gEasyChatWord_Or, .alphabeticalOrder = 63, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_TIMES)] = { .text = gEasyChatWord_Times, .alphabeticalOrder = 42, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_WONDER)] = { .text = gEasyChatWord_Wonder, .alphabeticalOrder = 33, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_IS_IT_QUES)] = { .text = gEasyChatWord_IsItQues, .alphabeticalOrder = 68, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_BE)] = { .text = gEasyChatWord_Be, .alphabeticalOrder = 15, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_GIMME)] = { .text = gEasyChatWord_Gimme, .alphabeticalOrder = 46, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_COULD)] = { .text = gEasyChatWord_Could, .alphabeticalOrder = 54, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_LIKELY_TO)] = { .text = gEasyChatWord_LikelyTo, .alphabeticalOrder = 6, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_WOULD)] = { .text = gEasyChatWord_Would, .alphabeticalOrder = 64, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_IS)] = { .text = gEasyChatWord_Is, .alphabeticalOrder = 53, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_ISN_T_IT_QUES)] = { .text = gEasyChatWord_IsntItQues, .alphabeticalOrder = 49, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_LET_S)] = { .text = gEasyChatWord_Lets, .alphabeticalOrder = 22, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_OTHER)] = { .text = gEasyChatWord_Other, .alphabeticalOrder = 21, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_ARE)] = { .text = gEasyChatWord_Are, .alphabeticalOrder = 8, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_WAS)] = { .text = gEasyChatWord_Was, .alphabeticalOrder = 59, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_WERE)] = { .text = gEasyChatWord_Were, .alphabeticalOrder = 60, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_THOSE)] = { .text = gEasyChatWord_Those, .alphabeticalOrder = 24, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_ISN_T)] = { .text = gEasyChatWord_Isnt, .alphabeticalOrder = 25, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_WON_T)] = { .text = gEasyChatWord_Wont, .alphabeticalOrder = 61, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_CAN_T)] = { .text = gEasyChatWord_Cant, .alphabeticalOrder = 23, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_CAN)] = { .text = gEasyChatWord_Can, .alphabeticalOrder = 50, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_DON_T)] = { .text = gEasyChatWord_Dont, .alphabeticalOrder = 43, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_DO)] = { .text = gEasyChatWord_Do, .alphabeticalOrder = 7, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_DOES)] = { .text = gEasyChatWord_Does, .alphabeticalOrder = 30, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_WHOM)] = { .text = gEasyChatWord_Whom, .alphabeticalOrder = 31, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_WHICH)] = { .text = gEasyChatWord_Which, .alphabeticalOrder = 55, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_WASN_T)] = { .text = gEasyChatWord_Wasnt, .alphabeticalOrder = 11, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_WEREN_T)] = { .text = gEasyChatWord_Werent, .alphabeticalOrder = 5, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_HAVE)] = { .text = gEasyChatWord_Have, .alphabeticalOrder = 19, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_HAVEN_T)] = { .text = gEasyChatWord_Havent, .alphabeticalOrder = 12, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_A)] = { .text = gEasyChatWord_A, .alphabeticalOrder = 41, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_AN)] = { .text = gEasyChatWord_An, .alphabeticalOrder = 13, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_NOT)] = { .text = gEasyChatWord_Not, .alphabeticalOrder = 58, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_THERE)] = { .text = gEasyChatWord_There, .alphabeticalOrder = 9, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_OK_QUES)] = { .text = gEasyChatWord_OkQues, .alphabeticalOrder = 38, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_SO)] = { .text = gEasyChatWord_So, .alphabeticalOrder = 34, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_MAYBE)] = { .text = gEasyChatWord_Maybe, .alphabeticalOrder = 52, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_ABOUT)] = { .text = gEasyChatWord_About, .alphabeticalOrder = 45, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_OVER)] = { .text = gEasyChatWord_Over, .alphabeticalOrder = 36, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_IT)] = { .text = gEasyChatWord_It, .alphabeticalOrder = 44, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_ALL)] = { .text = gEasyChatWord_All, .alphabeticalOrder = 67, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_FOR)] = { .text = gEasyChatWord_For, .alphabeticalOrder = 2, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_ON)] = { .text = gEasyChatWord_On, .alphabeticalOrder = 14, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_OFF)] = { .text = gEasyChatWord_Off, .alphabeticalOrder = 56, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_AS)] = { .text = gEasyChatWord_As, .alphabeticalOrder = 40, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_TO)] = { .text = gEasyChatWord_To, .alphabeticalOrder = 51, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_WITH)] = { .text = gEasyChatWord_With, .alphabeticalOrder = 37, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_BETTER)] = { .text = gEasyChatWord_Better, .alphabeticalOrder = 66, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_EVER)] = { .text = gEasyChatWord_Ever, .alphabeticalOrder = 35, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_SINCE)] = { .text = gEasyChatWord_Since, .alphabeticalOrder = 18, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_OF)] = { .text = gEasyChatWord_Of, .alphabeticalOrder = 3, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_BELONGS_TO)] = { .text = gEasyChatWord_BelongsTo, .alphabeticalOrder = 47, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_AT)] = { .text = gEasyChatWord_At, .alphabeticalOrder = 57, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_IN)] = { .text = gEasyChatWord_In, .alphabeticalOrder = 16, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_OUT)] = { .text = gEasyChatWord_Out, .alphabeticalOrder = 28, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_TOO)] = { .text = gEasyChatWord_Too, .alphabeticalOrder = 17, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_LIKE)] = { .text = gEasyChatWord_Like, .alphabeticalOrder = 29, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_DID)] = { .text = gEasyChatWord_Did, .alphabeticalOrder = 27, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_DIDN_T)] = { .text = gEasyChatWord_Didnt, .alphabeticalOrder = 65, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_DOESN_T)] = { .text = gEasyChatWord_Doesnt, .alphabeticalOrder = 26, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_WITHOUT)] = { .text = gEasyChatWord_Without, .alphabeticalOrder = 0, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_AFTER)] = { .text = gEasyChatWord_After, .alphabeticalOrder = 1, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_BEFORE)] = { .text = gEasyChatWord_Before, .alphabeticalOrder = 48, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_WHILE)] = { .text = gEasyChatWord_While, .alphabeticalOrder = 62, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_THAN)] = { .text = gEasyChatWord_Than, .alphabeticalOrder = 20, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_ONCE)] = { .text = gEasyChatWord_Once, .alphabeticalOrder = 4, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_ANYWHERE)] = { .text = gEasyChatWord_Anywhere, .alphabeticalOrder = 10, diff --git a/src/data/easy_chat/easy_chat_group_events.h b/src/data/easy_chat/easy_chat_group_events.h index 8d9cf7e24..0fbbcc4a7 100755 --- a/src/data/easy_chat/easy_chat_group_events.h +++ b/src/data/easy_chat/easy_chat_group_events.h @@ -29,146 +29,175 @@ const u8 gEasyChatWord_Wireless[] = _("WIRELESS"); const u8 gEasyChatWord_Frontier[] = _("FRONTIER"); const struct EasyChatWordInfo gEasyChatGroup_Events[] = { + [EC_INDEX(EC_WORD_APPEAL)] = { .text = gEasyChatWord_Appeal, .alphabeticalOrder = 0, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_EVENTS)] = { .text = gEasyChatWord_Events, .alphabeticalOrder = 14, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_STAY_AT_HOME)] = { .text = gEasyChatWord_StayAtHome, .alphabeticalOrder = 12, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_BERRY)] = { .text = gEasyChatWord_Berry, .alphabeticalOrder = 3, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_CONTEST)] = { .text = gEasyChatWord_Contest, .alphabeticalOrder = 17, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_MC)] = { .text = gEasyChatWord_Mc, .alphabeticalOrder = 4, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_JUDGE)] = { .text = gEasyChatWord_Judge, .alphabeticalOrder = 22, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_SUPER)] = { .text = gEasyChatWord_Super, .alphabeticalOrder = 23, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_STAGE)] = { .text = gEasyChatWord_Stage, .alphabeticalOrder = 1, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_HALL_OF_FAME)] = { .text = gEasyChatWord_HallOfFame, .alphabeticalOrder = 10, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_EVOLUTION)] = { .text = gEasyChatWord_Evolution, .alphabeticalOrder = 28, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_HYPER)] = { .text = gEasyChatWord_Hyper, .alphabeticalOrder = 9, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_BATTLE_TOWER)] = { .text = gEasyChatWord_BattleTower, .alphabeticalOrder = 15, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_LEADERS)] = { .text = gEasyChatWord_Leaders, .alphabeticalOrder = 11, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_BATTLE_ROOM)] = { .text = gEasyChatWord_BattleRoom, .alphabeticalOrder = 6, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_HIDDEN)] = { .text = gEasyChatWord_Hidden, .alphabeticalOrder = 13, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_SECRET_BASE)] = { .text = gEasyChatWord_SecretBase, .alphabeticalOrder = 19, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_BLEND)] = { .text = gEasyChatWord_Blend, .alphabeticalOrder = 5, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_POKEBLOCK)] = { .text = gEasyChatWord_POKEBLOCK, .alphabeticalOrder = 18, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_MASTER)] = { .text = gEasyChatWord_Master, .alphabeticalOrder = 20, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_RANK)] = { .text = gEasyChatWord_Rank, .alphabeticalOrder = 21, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_RIBBON)] = { .text = gEasyChatWord_Ribbon, .alphabeticalOrder = 26, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_CRUSH)] = { .text = gEasyChatWord_Crush, .alphabeticalOrder = 16, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_DIRECT)] = { .text = gEasyChatWord_Direct, .alphabeticalOrder = 8, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_TOWER)] = { .text = gEasyChatWord_Tower, .alphabeticalOrder = 2, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_UNION)] = { .text = gEasyChatWord_Union, .alphabeticalOrder = 7, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_ROOM)] = { .text = gEasyChatWord_Room, .alphabeticalOrder = 24, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_WIRELESS)] = { .text = gEasyChatWord_Wireless, .alphabeticalOrder = 25, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_FRONTIER)] = { .text = gEasyChatWord_Frontier, .alphabeticalOrder = 27, diff --git a/src/data/easy_chat/easy_chat_group_feelings.h b/src/data/easy_chat/easy_chat_group_feelings.h index 2dda71808..55fe9d00c 100755 --- a/src/data/easy_chat/easy_chat_group_feelings.h +++ b/src/data/easy_chat/easy_chat_group_feelings.h @@ -69,346 +69,415 @@ const u8 gEasyChatWord_Understand[] = _("UNDERSTAND"); const u8 gEasyChatWord_Understands[] = _("UNDERSTANDS"); const struct EasyChatWordInfo gEasyChatGroup_Feelings[] = { + [EC_INDEX(EC_WORD_MEET)] = { .text = gEasyChatWord_Meet, .alphabeticalOrder = 40, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_PLAY)] = { .text = gEasyChatWord_Play, .alphabeticalOrder = 39, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_HURRIED)] = { .text = gEasyChatWord_Hurried, .alphabeticalOrder = 24, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_GOES)] = { .text = gEasyChatWord_Goes, .alphabeticalOrder = 23, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_GIDDY)] = { .text = gEasyChatWord_Giddy, .alphabeticalOrder = 46, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_HAPPY)] = { .text = gEasyChatWord_Happy, .alphabeticalOrder = 63, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_HAPPINESS)] = { .text = gEasyChatWord_Happiness, .alphabeticalOrder = 36, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_EXCITE)] = { .text = gEasyChatWord_Excite, .alphabeticalOrder = 37, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_IMPORTANT)] = { .text = gEasyChatWord_Important, .alphabeticalOrder = 38, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_FUNNY)] = { .text = gEasyChatWord_Funny, .alphabeticalOrder = 61, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_GOT)] = { .text = gEasyChatWord_Got, .alphabeticalOrder = 31, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_GO_HOME)] = { .text = gEasyChatWord_GoHome, .alphabeticalOrder = 62, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_DISAPPOINTED)] = { .text = gEasyChatWord_Disappointed, .alphabeticalOrder = 27, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_DISAPPOINTS)] = { .text = gEasyChatWord_Disappoints, .alphabeticalOrder = 12, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_SAD)] = { .text = gEasyChatWord_Sad, .alphabeticalOrder = 13, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_TRY)] = { .text = gEasyChatWord_Try, .alphabeticalOrder = 41, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_TRIES)] = { .text = gEasyChatWord_Tries, .alphabeticalOrder = 22, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_HEARS)] = { .text = gEasyChatWord_Hears, .alphabeticalOrder = 35, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_THINK)] = { .text = gEasyChatWord_Think, .alphabeticalOrder = 60, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_HEAR)] = { .text = gEasyChatWord_Hear, .alphabeticalOrder = 32, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_WANTS)] = { .text = gEasyChatWord_Wants, .alphabeticalOrder = 51, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_MISHEARD)] = { .text = gEasyChatWord_Misheard, .alphabeticalOrder = 44, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_DISLIKE)] = { .text = gEasyChatWord_Dislike, .alphabeticalOrder = 42, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_ANGRY)] = { .text = gEasyChatWord_Angry, .alphabeticalOrder = 43, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_ANGER)] = { .text = gEasyChatWord_Anger, .alphabeticalOrder = 7, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_SCARY)] = { .text = gEasyChatWord_Scary, .alphabeticalOrder = 53, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_LONESOME)] = { .text = gEasyChatWord_Lonesome, .alphabeticalOrder = 9, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_DISAPPOINT)] = { .text = gEasyChatWord_Disappoint, .alphabeticalOrder = 29, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_JOY)] = { .text = gEasyChatWord_Joy, .alphabeticalOrder = 4, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_GETS)] = { .text = gEasyChatWord_Gets, .alphabeticalOrder = 11, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_NEVER)] = { .text = gEasyChatWord_Never, .alphabeticalOrder = 3, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_DARN)] = { .text = gEasyChatWord_Darn, .alphabeticalOrder = 10, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_DOWNCAST)] = { .text = gEasyChatWord_Downcast, .alphabeticalOrder = 64, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_INCREDIBLE)] = { .text = gEasyChatWord_Incredible, .alphabeticalOrder = 6, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_LIKES)] = { .text = gEasyChatWord_Likes, .alphabeticalOrder = 5, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_DISLIKES)] = { .text = gEasyChatWord_Dislikes, .alphabeticalOrder = 47, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_BORING)] = { .text = gEasyChatWord_Boring, .alphabeticalOrder = 19, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_CARE)] = { .text = gEasyChatWord_Care, .alphabeticalOrder = 17, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_CARES)] = { .text = gEasyChatWord_Cares, .alphabeticalOrder = 2, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_ALL_RIGHT)] = { .text = gEasyChatWord_AllRight, .alphabeticalOrder = 8, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_ADORE)] = { .text = gEasyChatWord_Adore, .alphabeticalOrder = 33, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_DISASTER)] = { .text = gEasyChatWord_Disaster, .alphabeticalOrder = 28, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_ENJOY)] = { .text = gEasyChatWord_Enjoy, .alphabeticalOrder = 45, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_ENJOYS)] = { .text = gEasyChatWord_Enjoys, .alphabeticalOrder = 34, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_EAT)] = { .text = gEasyChatWord_Eat, .alphabeticalOrder = 26, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_LACKING)] = { .text = gEasyChatWord_Lacking, .alphabeticalOrder = 0, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_BAD)] = { .text = gEasyChatWord_Bad, .alphabeticalOrder = 21, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_HARD)] = { .text = gEasyChatWord_Hard, .alphabeticalOrder = 59, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_TERRIBLE)] = { .text = gEasyChatWord_Terrible, .alphabeticalOrder = 30, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_SHOULD)] = { .text = gEasyChatWord_Should, .alphabeticalOrder = 50, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_NICE)] = { .text = gEasyChatWord_Nice, .alphabeticalOrder = 1, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_DRINK)] = { .text = gEasyChatWord_Drink, .alphabeticalOrder = 66, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_SURPRISE)] = { .text = gEasyChatWord_Surprise, .alphabeticalOrder = 58, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_FEAR)] = { .text = gEasyChatWord_Fear, .alphabeticalOrder = 65, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_WANT)] = { .text = gEasyChatWord_Want, .alphabeticalOrder = 14, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_WAIT)] = { .text = gEasyChatWord_Wait, .alphabeticalOrder = 56, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_SATISFIED)] = { .text = gEasyChatWord_Satisfied, .alphabeticalOrder = 25, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_SEE)] = { .text = gEasyChatWord_See, .alphabeticalOrder = 57, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_RARE)] = { .text = gEasyChatWord_Rare, .alphabeticalOrder = 49, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_NEGATIVE)] = { .text = gEasyChatWord_Negative, .alphabeticalOrder = 52, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_DONE)] = { .text = gEasyChatWord_Done, .alphabeticalOrder = 48, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_DANGER)] = { .text = gEasyChatWord_Danger, .alphabeticalOrder = 18, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_DEFEATED)] = { .text = gEasyChatWord_Defeated, .alphabeticalOrder = 16, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_BEAT)] = { .text = gEasyChatWord_Beat, .alphabeticalOrder = 15, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_GREAT)] = { .text = gEasyChatWord_Great, .alphabeticalOrder = 67, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_ROMANTIC)] = { .text = gEasyChatWord_Romantic, .alphabeticalOrder = 68, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_QUESTION)] = { .text = gEasyChatWord_Question, .alphabeticalOrder = 55, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_UNDERSTAND)] = { .text = gEasyChatWord_Understand, .alphabeticalOrder = 54, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_UNDERSTANDS)] = { .text = gEasyChatWord_Understands, .alphabeticalOrder = 20, diff --git a/src/data/easy_chat/easy_chat_group_greetings.h b/src/data/easy_chat/easy_chat_group_greetings.h index 4df08bf7d..fb95f7939 100755 --- a/src/data/easy_chat/easy_chat_group_greetings.h +++ b/src/data/easy_chat/easy_chat_group_greetings.h @@ -42,211 +42,253 @@ const u8 gEasyChatWord_ComeOver[] = _("COME OVER"); const u8 gEasyChatWord_CountOn[] = _("COUNT ON"); const struct EasyChatWordInfo gEasyChatGroup_Greetings[] = { + [EC_INDEX(EC_WORD_THANKS)] = { .text = gEasyChatWord_Thanks, .alphabeticalOrder = 12, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_YES)] = { .text = gEasyChatWord_Yes, .alphabeticalOrder = 25, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_HERE_GOES)] = { .text = gEasyChatWord_HereGoes, .alphabeticalOrder = 32, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_HERE_I_COME)] = { .text = gEasyChatWord_HereICome, .alphabeticalOrder = 40, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_HERE_IT_IS)] = { .text = gEasyChatWord_HereItIs, .alphabeticalOrder = 9, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_YEAH)] = { .text = gEasyChatWord_Yeah, .alphabeticalOrder = 41, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_WELCOME)] = { .text = gEasyChatWord_Welcome, .alphabeticalOrder = 20, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_OI)] = { .text = gEasyChatWord_Oi, .alphabeticalOrder = 22, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_HOW_DO)] = { .text = gEasyChatWord_HowDo, .alphabeticalOrder = 13, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_CONGRATS)] = { .text = gEasyChatWord_Congrats, .alphabeticalOrder = 10, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_GIVE_ME)] = { .text = gEasyChatWord_GiveMe, .alphabeticalOrder = 24, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_SORRY)] = { .text = gEasyChatWord_Sorry, .alphabeticalOrder = 16, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_APOLOGIZE)] = { .text = gEasyChatWord_Apologize, .alphabeticalOrder = 15, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_FORGIVE)] = { .text = gEasyChatWord_Forgive, .alphabeticalOrder = 2, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_HEY_THERE)] = { .text = gEasyChatWord_HeyThere, .alphabeticalOrder = 3, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_HELLO)] = { .text = gEasyChatWord_Hello, .alphabeticalOrder = 4, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_GOOD_BYE)] = { .text = gEasyChatWord_GoodBye, .alphabeticalOrder = 34, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_THANK_YOU)] = { .text = gEasyChatWord_ThankYou, .alphabeticalOrder = 14, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_I_VE_ARRIVED)] = { .text = gEasyChatWord_IveArrived, .alphabeticalOrder = 26, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_PARDON)] = { .text = gEasyChatWord_Pardon, .alphabeticalOrder = 30, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_EXCUSE)] = { .text = gEasyChatWord_Excuse, .alphabeticalOrder = 37, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_SEE_YA)] = { .text = gEasyChatWord_SeeYa, .alphabeticalOrder = 8, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_EXCUSE_ME)] = { .text = gEasyChatWord_ExcuseMe, .alphabeticalOrder = 28, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_WELL_THEN)] = { .text = gEasyChatWord_WellThen, .alphabeticalOrder = 18, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_GO_AHEAD)] = { .text = gEasyChatWord_GoAhead, .alphabeticalOrder = 36, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_APPRECIATE)] = { .text = gEasyChatWord_Appreciate, .alphabeticalOrder = 33, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_HEY_QUES)] = { .text = gEasyChatWord_HeyQues, .alphabeticalOrder = 29, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_WHAT_S_UP_QUES)] = { .text = gEasyChatWord_WhatsUpQues, .alphabeticalOrder = 7, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_HUH_QUES)] = { .text = gEasyChatWord_HuhQues, .alphabeticalOrder = 19, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_NO)] = { .text = gEasyChatWord_No, .alphabeticalOrder = 21, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_HI)] = { .text = gEasyChatWord_Hi, .alphabeticalOrder = 35, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_YEAH_YEAH)] = { .text = gEasyChatWord_YeahYeah, .alphabeticalOrder = 11, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_BYE_BYE)] = { .text = gEasyChatWord_ByeBye, .alphabeticalOrder = 17, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_MEET_YOU)] = { .text = gEasyChatWord_MeetYou, .alphabeticalOrder = 0, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_HEY)] = { .text = gEasyChatWord_Hey, .alphabeticalOrder = 6, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_SMELL)] = { .text = gEasyChatWord_Smell, .alphabeticalOrder = 23, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_LISTENING)] = { .text = gEasyChatWord_Listening, .alphabeticalOrder = 27, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_HOO_HAH)] = { .text = gEasyChatWord_HooHah, .alphabeticalOrder = 38, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_YAHOO)] = { .text = gEasyChatWord_Yahoo, .alphabeticalOrder = 5, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_YO)] = { .text = gEasyChatWord_Yo, .alphabeticalOrder = 31, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_COME_OVER)] = { .text = gEasyChatWord_ComeOver, .alphabeticalOrder = 1, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_COUNT_ON)] = { .text = gEasyChatWord_CountOn, .alphabeticalOrder = 39, diff --git a/src/data/easy_chat/easy_chat_group_hobbies.h b/src/data/easy_chat/easy_chat_group_hobbies.h index fcd73d017..dd507e21b 100755 --- a/src/data/easy_chat/easy_chat_group_hobbies.h +++ b/src/data/easy_chat/easy_chat_group_hobbies.h @@ -54,271 +54,325 @@ const u8 gEasyChatWord_Vacation[] = _("VACATION"); const u8 gEasyChatWord_Look[] = _("LOOK"); const struct EasyChatWordInfo gEasyChatGroup_Hobbies[] = { + [EC_INDEX(EC_WORD_IDOL)] = { .text = gEasyChatWord_Idol, .alphabeticalOrder = 43, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_ANIME)] = { .text = gEasyChatWord_Anime, .alphabeticalOrder = 1, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_SONG)] = { .text = gEasyChatWord_Song, .alphabeticalOrder = 45, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_MOVIE)] = { .text = gEasyChatWord_Movie, .alphabeticalOrder = 21, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_SWEETS)] = { .text = gEasyChatWord_Sweets, .alphabeticalOrder = 44, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_CHAT)] = { .text = gEasyChatWord_Chat, .alphabeticalOrder = 46, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_CHILD_S_PLAY)] = { .text = gEasyChatWord_ChildsPlay, .alphabeticalOrder = 11, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_TOYS)] = { .text = gEasyChatWord_Toys, .alphabeticalOrder = 9, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_MUSIC)] = { .text = gEasyChatWord_Music, .alphabeticalOrder = 30, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_CARDS)] = { .text = gEasyChatWord_Cards, .alphabeticalOrder = 5, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_SHOPPING)] = { .text = gEasyChatWord_Shopping, .alphabeticalOrder = 6, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_CAMERA)] = { .text = gEasyChatWord_Camera, .alphabeticalOrder = 17, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_VIEWING)] = { .text = gEasyChatWord_Viewing, .alphabeticalOrder = 48, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_SPECTATOR)] = { .text = gEasyChatWord_Spectator, .alphabeticalOrder = 18, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_GOURMET)] = { .text = gEasyChatWord_Gourmet, .alphabeticalOrder = 29, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_GAME)] = { .text = gEasyChatWord_Game, .alphabeticalOrder = 33, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_RPG)] = { .text = gEasyChatWord_Rpg, .alphabeticalOrder = 34, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_COLLECTION)] = { .text = gEasyChatWord_Collection, .alphabeticalOrder = 26, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_COMPLETE)] = { .text = gEasyChatWord_Complete, .alphabeticalOrder = 42, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_MAGAZINE)] = { .text = gEasyChatWord_Magazine, .alphabeticalOrder = 47, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_WALK)] = { .text = gEasyChatWord_Walk, .alphabeticalOrder = 32, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_BIKE)] = { .text = gEasyChatWord_Bike, .alphabeticalOrder = 38, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_HOBBY)] = { .text = gEasyChatWord_Hobby, .alphabeticalOrder = 15, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_SPORTS)] = { .text = gEasyChatWord_Sports, .alphabeticalOrder = 14, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_SOFTWARE)] = { .text = gEasyChatWord_Software, .alphabeticalOrder = 39, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_SONGS)] = { .text = gEasyChatWord_Songs, .alphabeticalOrder = 41, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_DIET)] = { .text = gEasyChatWord_Diet, .alphabeticalOrder = 22, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_TREASURE)] = { .text = gEasyChatWord_Treasure, .alphabeticalOrder = 49, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_TRAVEL)] = { .text = gEasyChatWord_Travel, .alphabeticalOrder = 0, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_DANCE)] = { .text = gEasyChatWord_Dance, .alphabeticalOrder = 35, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_CHANNEL)] = { .text = gEasyChatWord_Channel, .alphabeticalOrder = 53, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_MAKING)] = { .text = gEasyChatWord_Making, .alphabeticalOrder = 19, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_FISHING)] = { .text = gEasyChatWord_Fishing, .alphabeticalOrder = 31, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_DATE)] = { .text = gEasyChatWord_Date, .alphabeticalOrder = 3, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_DESIGN)] = { .text = gEasyChatWord_Design, .alphabeticalOrder = 8, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_LOCOMOTIVE)] = { .text = gEasyChatWord_Locomotive, .alphabeticalOrder = 40, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_PLUSH_DOLL)] = { .text = gEasyChatWord_PlushDoll, .alphabeticalOrder = 37, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_PC)] = { .text = gEasyChatWord_Pc, .alphabeticalOrder = 50, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_FLOWERS)] = { .text = gEasyChatWord_Flowers, .alphabeticalOrder = 36, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_HERO)] = { .text = gEasyChatWord_Hero, .alphabeticalOrder = 16, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_NAP)] = { .text = gEasyChatWord_Nap, .alphabeticalOrder = 10, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_HEROINE)] = { .text = gEasyChatWord_Heroine, .alphabeticalOrder = 24, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_FASHION)] = { .text = gEasyChatWord_Fashion, .alphabeticalOrder = 2, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_ADVENTURE)] = { .text = gEasyChatWord_Adventure, .alphabeticalOrder = 25, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_BOARD)] = { .text = gEasyChatWord_Board, .alphabeticalOrder = 13, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_BALL)] = { .text = gEasyChatWord_Ball, .alphabeticalOrder = 23, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_BOOK)] = { .text = gEasyChatWord_Book, .alphabeticalOrder = 4, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_FESTIVAL)] = { .text = gEasyChatWord_Festival, .alphabeticalOrder = 7, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_COMICS)] = { .text = gEasyChatWord_Comics, .alphabeticalOrder = 28, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_HOLIDAY)] = { .text = gEasyChatWord_Holiday, .alphabeticalOrder = 27, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_PLANS)] = { .text = gEasyChatWord_Plans, .alphabeticalOrder = 51, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_TRENDY)] = { .text = gEasyChatWord_Trendy, .alphabeticalOrder = 52, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_VACATION)] = { .text = gEasyChatWord_Vacation, .alphabeticalOrder = 12, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_LOOK)] = { .text = gEasyChatWord_Look, .alphabeticalOrder = 20, diff --git a/src/data/easy_chat/easy_chat_group_lifestyle.h b/src/data/easy_chat/easy_chat_group_lifestyle.h index 9ed60025d..5819d0f2e 100755 --- a/src/data/easy_chat/easy_chat_group_lifestyle.h +++ b/src/data/easy_chat/easy_chat_group_lifestyle.h @@ -45,226 +45,271 @@ const u8 gEasyChatWord_Rental[] = _("RENTAL"); const u8 gEasyChatWord_World[] = _("WORLD"); const struct EasyChatWordInfo gEasyChatGroup_Lifestyle[] = { + [EC_INDEX(EC_WORD_CHORES)] = { .text = gEasyChatWord_Chores, .alphabeticalOrder = 3, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_HOME)] = { .text = gEasyChatWord_Home, .alphabeticalOrder = 4, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_MONEY)] = { .text = gEasyChatWord_Money, .alphabeticalOrder = 0, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_ALLOWANCE)] = { .text = gEasyChatWord_Allowance, .alphabeticalOrder = 16, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_BATH)] = { .text = gEasyChatWord_Bath, .alphabeticalOrder = 7, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_CONVERSATION)] = { .text = gEasyChatWord_Conversation, .alphabeticalOrder = 5, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_SCHOOL)] = { .text = gEasyChatWord_School, .alphabeticalOrder = 26, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_COMMEMORATE)] = { .text = gEasyChatWord_Commemorate, .alphabeticalOrder = 24, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_HABIT)] = { .text = gEasyChatWord_Habit, .alphabeticalOrder = 39, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_GROUP)] = { .text = gEasyChatWord_Group, .alphabeticalOrder = 23, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_WORD)] = { .text = gEasyChatWord_Word, .alphabeticalOrder = 9, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_STORE)] = { .text = gEasyChatWord_Store, .alphabeticalOrder = 8, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_SERVICE)] = { .text = gEasyChatWord_Service, .alphabeticalOrder = 1, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_WORK)] = { .text = gEasyChatWord_Work, .alphabeticalOrder = 18, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_SYSTEM)] = { .text = gEasyChatWord_System, .alphabeticalOrder = 29, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_TRAIN)] = { .text = gEasyChatWord_Train, .alphabeticalOrder = 40, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_CLASS)] = { .text = gEasyChatWord_Class, .alphabeticalOrder = 17, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_LESSONS)] = { .text = gEasyChatWord_Lessons, .alphabeticalOrder = 22, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_INFORMATION)] = { .text = gEasyChatWord_Information, .alphabeticalOrder = 41, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_LIVING)] = { .text = gEasyChatWord_Living, .alphabeticalOrder = 19, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_TEACHER)] = { .text = gEasyChatWord_Teacher, .alphabeticalOrder = 35, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_TOURNAMENT)] = { .text = gEasyChatWord_Tournament, .alphabeticalOrder = 36, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_LETTER)] = { .text = gEasyChatWord_Letter, .alphabeticalOrder = 37, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_EVENT)] = { .text = gEasyChatWord_Event, .alphabeticalOrder = 2, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_DIGITAL)] = { .text = gEasyChatWord_Digital, .alphabeticalOrder = 30, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_TEST)] = { .text = gEasyChatWord_Test, .alphabeticalOrder = 31, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_DEPT_STORE)] = { .text = gEasyChatWord_DeptStore, .alphabeticalOrder = 33, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_TELEVISION)] = { .text = gEasyChatWord_Television, .alphabeticalOrder = 28, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_PHONE)] = { .text = gEasyChatWord_Phone, .alphabeticalOrder = 32, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_ITEM)] = { .text = gEasyChatWord_Item, .alphabeticalOrder = 38, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_NAME)] = { .text = gEasyChatWord_Name, .alphabeticalOrder = 42, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_NEWS)] = { .text = gEasyChatWord_News, .alphabeticalOrder = 43, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_POPULAR)] = { .text = gEasyChatWord_Popular, .alphabeticalOrder = 6, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_PARTY)] = { .text = gEasyChatWord_Party, .alphabeticalOrder = 12, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_STUDY)] = { .text = gEasyChatWord_Study, .alphabeticalOrder = 11, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_MACHINE)] = { .text = gEasyChatWord_Machine, .alphabeticalOrder = 34, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_MAIL)] = { .text = gEasyChatWord_Mail, .alphabeticalOrder = 14, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_MESSAGE)] = { .text = gEasyChatWord_Message, .alphabeticalOrder = 20, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_PROMISE)] = { .text = gEasyChatWord_Promise, .alphabeticalOrder = 27, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_DREAM)] = { .text = gEasyChatWord_Dream, .alphabeticalOrder = 25, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_KINDERGARTEN)] = { .text = gEasyChatWord_Kindergarten, .alphabeticalOrder = 21, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_LIFE)] = { .text = gEasyChatWord_Life, .alphabeticalOrder = 15, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_RADIO)] = { .text = gEasyChatWord_Radio, .alphabeticalOrder = 10, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_RENTAL)] = { .text = gEasyChatWord_Rental, .alphabeticalOrder = 13, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_WORLD)] = { .text = gEasyChatWord_World, .alphabeticalOrder = 44, diff --git a/src/data/easy_chat/easy_chat_group_misc.h b/src/data/easy_chat/easy_chat_group_misc.h index fbc9a7069..aa8f84406 100755 --- a/src/data/easy_chat/easy_chat_group_misc.h +++ b/src/data/easy_chat/easy_chat_group_misc.h @@ -42,211 +42,253 @@ const u8 gEasyChatWord_Left[] = _("LEFT"); const u8 gEasyChatWord_Right[] = _("RIGHT"); const struct EasyChatWordInfo gEasyChatGroup_Misc[] = { + [EC_INDEX(EC_WORD_HIGHS)] = { .text = gEasyChatWord_Highs, .alphabeticalOrder = 7, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_LOWS)] = { .text = gEasyChatWord_Lows, .alphabeticalOrder = 24, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_UM)] = { .text = gEasyChatWord_Um, .alphabeticalOrder = 30, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_REAR)] = { .text = gEasyChatWord_Rear, .alphabeticalOrder = 8, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_THINGS)] = { .text = gEasyChatWord_Things, .alphabeticalOrder = 6, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_THING)] = { .text = gEasyChatWord_Thing, .alphabeticalOrder = 13, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_BELOW)] = { .text = gEasyChatWord_Below, .alphabeticalOrder = 28, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_ABOVE)] = { .text = gEasyChatWord_Above, .alphabeticalOrder = 38, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_BACK)] = { .text = gEasyChatWord_Back, .alphabeticalOrder = 35, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_HIGH)] = { .text = gEasyChatWord_High, .alphabeticalOrder = 19, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_HERE)] = { .text = gEasyChatWord_Here, .alphabeticalOrder = 16, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_INSIDE)] = { .text = gEasyChatWord_Inside, .alphabeticalOrder = 29, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_OUTSIDE)] = { .text = gEasyChatWord_Outside, .alphabeticalOrder = 26, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_BESIDE)] = { .text = gEasyChatWord_Beside, .alphabeticalOrder = 10, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_THIS_IS_IT_EXCL)] = { .text = gEasyChatWord_ThisIsItExcl, .alphabeticalOrder = 9, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_THIS)] = { .text = gEasyChatWord_This, .alphabeticalOrder = 0, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_EVERY)] = { .text = gEasyChatWord_Every, .alphabeticalOrder = 11, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_THESE)] = { .text = gEasyChatWord_These, .alphabeticalOrder = 40, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_THESE_WERE)] = { .text = gEasyChatWord_TheseWere, .alphabeticalOrder = 1, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_DOWN)] = { .text = gEasyChatWord_Down, .alphabeticalOrder = 31, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_THAT)] = { .text = gEasyChatWord_That, .alphabeticalOrder = 39, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_THOSE_ARE)] = { .text = gEasyChatWord_ThoseAre, .alphabeticalOrder = 12, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_THOSE_WERE)] = { .text = gEasyChatWord_ThoseWere, .alphabeticalOrder = 3, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_THAT_S_IT_EXCL)] = { .text = gEasyChatWord_ThatsItExcl, .alphabeticalOrder = 41, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_AM)] = { .text = gEasyChatWord_Am, .alphabeticalOrder = 36, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_THAT_WAS)] = { .text = gEasyChatWord_ThatWas, .alphabeticalOrder = 20, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_FRONT)] = { .text = gEasyChatWord_Front, .alphabeticalOrder = 25, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_UP)] = { .text = gEasyChatWord_Up, .alphabeticalOrder = 23, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_CHOICE)] = { .text = gEasyChatWord_Choice, .alphabeticalOrder = 17, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_FAR)] = { .text = gEasyChatWord_Far, .alphabeticalOrder = 18, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_AWAY)] = { .text = gEasyChatWord_Away, .alphabeticalOrder = 5, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_NEAR)] = { .text = gEasyChatWord_Near, .alphabeticalOrder = 4, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_WHERE)] = { .text = gEasyChatWord_Where, .alphabeticalOrder = 15, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_WHEN)] = { .text = gEasyChatWord_When, .alphabeticalOrder = 14, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_WHAT)] = { .text = gEasyChatWord_What, .alphabeticalOrder = 21, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_DEEP)] = { .text = gEasyChatWord_Deep, .alphabeticalOrder = 22, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_SHALLOW)] = { .text = gEasyChatWord_Shallow, .alphabeticalOrder = 2, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_WHY)] = { .text = gEasyChatWord_Why, .alphabeticalOrder = 27, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_CONFUSED)] = { .text = gEasyChatWord_Confused, .alphabeticalOrder = 34, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_OPPOSITE)] = { .text = gEasyChatWord_Opposite, .alphabeticalOrder = 33, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_LEFT)] = { .text = gEasyChatWord_Left, .alphabeticalOrder = 32, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_RIGHT)] = { .text = gEasyChatWord_Right, .alphabeticalOrder = 37, diff --git a/src/data/easy_chat/easy_chat_group_people.h b/src/data/easy_chat/easy_chat_group_people.h index 17d2d5339..2ddd3c9d9 100755 --- a/src/data/easy_chat/easy_chat_group_people.h +++ b/src/data/easy_chat/easy_chat_group_people.h @@ -63,7 +63,7 @@ const u8 gEasyChatWord_We[] = _("WE"); const u8 gEasyChatWord_Been[] = _("BEEN"); const u8 gEasyChatWord_ToUs[] = _("TO US"); const u8 gEasyChatWord_Our[] = _("OUR"); -const u8 gEasyChatWord_WeAre[] = _("WE'RE"); +const u8 gEasyChatWord_WeRe[] = _("WE'RE"); const u8 gEasyChatWord_Rival[] = _("RIVAL"); const u8 gEasyChatWord_Weve[] = _("WE'VE"); const u8 gEasyChatWord_Woman[] = _("WOMAN"); @@ -75,376 +75,451 @@ const u8 gEasyChatWord_SheIs[] = _("SHE IS"); const u8 gEasyChatWord_Some[] = _("SOME"); const struct EasyChatWordInfo gEasyChatGroup_People[] = { + [EC_INDEX(EC_WORD_OPPONENT)] = { .text = gEasyChatWord_Opponent, .alphabeticalOrder = 13, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_I)] = { .text = gEasyChatWord_I, .alphabeticalOrder = 52, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_YOU)] = { .text = gEasyChatWord_You, .alphabeticalOrder = 31, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_YOURS)] = { .text = gEasyChatWord_Yours, .alphabeticalOrder = 17, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_SON)] = { .text = gEasyChatWord_Son, .alphabeticalOrder = 22, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_YOUR)] = { .text = gEasyChatWord_Your, .alphabeticalOrder = 62, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_YOU_RE)] = { .text = gEasyChatWord_Youre, .alphabeticalOrder = 12, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_YOU_VE)] = { .text = gEasyChatWord_Youve, .alphabeticalOrder = 14, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_MOTHER)] = { .text = gEasyChatWord_Mother, .alphabeticalOrder = 34, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_GRANDFATHER)] = { .text = gEasyChatWord_Grandfather, .alphabeticalOrder = 28, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_UNCLE)] = { .text = gEasyChatWord_Uncle, .alphabeticalOrder = 54, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_FATHER)] = { .text = gEasyChatWord_Father, .alphabeticalOrder = 23, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_BOY)] = { .text = gEasyChatWord_Boy, .alphabeticalOrder = 11, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_ADULT)] = { .text = gEasyChatWord_Adult, .alphabeticalOrder = 51, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_BROTHER)] = { .text = gEasyChatWord_Brother, .alphabeticalOrder = 21, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_SISTER)] = { .text = gEasyChatWord_Sister, .alphabeticalOrder = 9, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_GRANDMOTHER)] = { .text = gEasyChatWord_Grandmother, .alphabeticalOrder = 16, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_AUNT)] = { .text = gEasyChatWord_Aunt, .alphabeticalOrder = 26, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_PARENT)] = { .text = gEasyChatWord_Parent, .alphabeticalOrder = 30, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_MAN)] = { .text = gEasyChatWord_Man, .alphabeticalOrder = 24, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_ME)] = { .text = gEasyChatWord_Me, .alphabeticalOrder = 72, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_GIRL)] = { .text = gEasyChatWord_Girl, .alphabeticalOrder = 25, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_BABE)] = { .text = gEasyChatWord_Babe, .alphabeticalOrder = 29, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_FAMILY)] = { .text = gEasyChatWord_Family, .alphabeticalOrder = 1, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_HER)] = { .text = gEasyChatWord_Her, .alphabeticalOrder = 41, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_HIM)] = { .text = gEasyChatWord_Him, .alphabeticalOrder = 38, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_HE)] = { .text = gEasyChatWord_He, .alphabeticalOrder = 42, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_PLACE)] = { .text = gEasyChatWord_Place, .alphabeticalOrder = 49, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_DAUGHTER)] = { .text = gEasyChatWord_Daughter, .alphabeticalOrder = 33, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_HIS)] = { .text = gEasyChatWord_His, .alphabeticalOrder = 50, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_HE_S)] = { .text = gEasyChatWord_Hes, .alphabeticalOrder = 19, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_AREN_T)] = { .text = gEasyChatWord_Arent, .alphabeticalOrder = 20, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_SIBLINGS)] = { .text = gEasyChatWord_Siblings, .alphabeticalOrder = 8, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_KID)] = { .text = gEasyChatWord_Kid, .alphabeticalOrder = 35, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_CHILDREN)] = { .text = gEasyChatWord_Children, .alphabeticalOrder = 36, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_MR)] = { .text = gEasyChatWord_Mr, .alphabeticalOrder = 40, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_MRS)] = { .text = gEasyChatWord_Mrs, .alphabeticalOrder = 37, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_MYSELF)] = { .text = gEasyChatWord_Myself, .alphabeticalOrder = 0, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_I_WAS)] = { .text = gEasyChatWord_IWas, .alphabeticalOrder = 64, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_TO_ME)] = { .text = gEasyChatWord_ToMe, .alphabeticalOrder = 18, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_MY)] = { .text = gEasyChatWord_My, .alphabeticalOrder = 53, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_I_AM)] = { .text = gEasyChatWord_IAm, .alphabeticalOrder = 27, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_I_VE)] = { .text = gEasyChatWord_Ive, .alphabeticalOrder = 66, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_WHO)] = { .text = gEasyChatWord_Who, .alphabeticalOrder = 69, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_SOMEONE)] = { .text = gEasyChatWord_Someone, .alphabeticalOrder = 73, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_WHO_WAS)] = { .text = gEasyChatWord_WhoWas, .alphabeticalOrder = 70, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_TO_WHOM)] = { .text = gEasyChatWord_ToWhom, .alphabeticalOrder = 32, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_WHOSE)] = { .text = gEasyChatWord_Whose, .alphabeticalOrder = 15, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_WHO_IS)] = { .text = gEasyChatWord_WhoIs, .alphabeticalOrder = 74, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_IT_S)] = { .text = gEasyChatWord_Its, .alphabeticalOrder = 44, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_LADY)] = { .text = gEasyChatWord_Lady, .alphabeticalOrder = 4, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_FRIEND)] = { .text = gEasyChatWord_Friend, .alphabeticalOrder = 58, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_ALLY)] = { .text = gEasyChatWord_Ally, .alphabeticalOrder = 55, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_PERSON)] = { .text = gEasyChatWord_Person, .alphabeticalOrder = 56, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_DUDE)] = { .text = gEasyChatWord_Dude, .alphabeticalOrder = 59, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_THEY)] = { .text = gEasyChatWord_They, .alphabeticalOrder = 60, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_THEY_WERE)] = { .text = gEasyChatWord_TheyWere, .alphabeticalOrder = 71, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_TO_THEM)] = { .text = gEasyChatWord_ToThem, .alphabeticalOrder = 39, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_THEIR)] = { .text = gEasyChatWord_Their, .alphabeticalOrder = 57, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_THEY_RE)] = { .text = gEasyChatWord_Theyre, .alphabeticalOrder = 63, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_THEY_VE)] = { .text = gEasyChatWord_Theyve, .alphabeticalOrder = 46, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_WE)] = { .text = gEasyChatWord_We, .alphabeticalOrder = 10, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_BEEN)] = { .text = gEasyChatWord_Been, .alphabeticalOrder = 61, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_TO_US)] = { .text = gEasyChatWord_ToUs, .alphabeticalOrder = 65, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_OUR)] = { .text = gEasyChatWord_Our, .alphabeticalOrder = 67, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_WE_RE)] = { - .text = gEasyChatWord_WeAre, + .text = gEasyChatWord_WeRe, .alphabeticalOrder = 43, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_RIVAL)] = { .text = gEasyChatWord_Rival, .alphabeticalOrder = 48, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_WE_VE)] = { .text = gEasyChatWord_Weve, .alphabeticalOrder = 45, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_WOMAN)] = { .text = gEasyChatWord_Woman, .alphabeticalOrder = 47, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_SHE)] = { .text = gEasyChatWord_She, .alphabeticalOrder = 68, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_SHE_WAS)] = { .text = gEasyChatWord_SheWas, .alphabeticalOrder = 2, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_TO_HER)] = { .text = gEasyChatWord_ToHer, .alphabeticalOrder = 6, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_HERS)] = { .text = gEasyChatWord_Hers, .alphabeticalOrder = 7, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_SHE_IS)] = { .text = gEasyChatWord_SheIs, .alphabeticalOrder = 5, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_SOME)] = { .text = gEasyChatWord_Some, .alphabeticalOrder = 3, diff --git a/src/data/easy_chat/easy_chat_group_speech.h b/src/data/easy_chat/easy_chat_group_speech.h index 013b454c0..a0874a33a 100755 --- a/src/data/easy_chat/easy_chat_group_speech.h +++ b/src/data/easy_chat/easy_chat_group_speech.h @@ -60,301 +60,361 @@ const u8 gEasyChatWord_Instead[] = _("INSTEAD"); const u8 gEasyChatWord_Fantastic[] = _("FANTASTIC"); const struct EasyChatWordInfo gEasyChatGroup_Speech[] = { + [EC_INDEX(EC_WORD_LISTEN)] = { .text = gEasyChatWord_Listen, .alphabeticalOrder = 19, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_NOT_VERY)] = { .text = gEasyChatWord_NotVery, .alphabeticalOrder = 18, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_MEAN)] = { .text = gEasyChatWord_Mean, .alphabeticalOrder = 27, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_LIE)] = { .text = gEasyChatWord_Lie, .alphabeticalOrder = 20, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_LAY)] = { .text = gEasyChatWord_Lay, .alphabeticalOrder = 41, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_RECOMMEND)] = { .text = gEasyChatWord_Recommend, .alphabeticalOrder = 40, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_NITWIT)] = { .text = gEasyChatWord_Nitwit, .alphabeticalOrder = 21, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_QUITE)] = { .text = gEasyChatWord_Quite, .alphabeticalOrder = 57, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_FROM)] = { .text = gEasyChatWord_From, .alphabeticalOrder = 23, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_FEELING)] = { .text = gEasyChatWord_Feeling, .alphabeticalOrder = 49, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_BUT)] = { .text = gEasyChatWord_But, .alphabeticalOrder = 43, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_HOWEVER)] = { .text = gEasyChatWord_However, .alphabeticalOrder = 52, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_CASE)] = { .text = gEasyChatWord_Case, .alphabeticalOrder = 10, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_THE)] = { .text = gEasyChatWord_The, .alphabeticalOrder = 12, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_MISS)] = { .text = gEasyChatWord_Miss, .alphabeticalOrder = 17, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_HOW)] = { .text = gEasyChatWord_How, .alphabeticalOrder = 31, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_HIT)] = { .text = gEasyChatWord_Hit, .alphabeticalOrder = 59, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_ENOUGH)] = { .text = gEasyChatWord_Enough, .alphabeticalOrder = 9, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_A_LOT)] = { .text = gEasyChatWord_ALot, .alphabeticalOrder = 56, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_A_LITTLE)] = { .text = gEasyChatWord_ALittle, .alphabeticalOrder = 34, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_ABSOLUTELY)] = { .text = gEasyChatWord_Absolutely, .alphabeticalOrder = 8, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_AND)] = { .text = gEasyChatWord_And, .alphabeticalOrder = 16, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_ONLY)] = { .text = gEasyChatWord_Only, .alphabeticalOrder = 15, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_AROUND)] = { .text = gEasyChatWord_Around, .alphabeticalOrder = 11, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_PROBABLY)] = { .text = gEasyChatWord_Probably, .alphabeticalOrder = 25, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_IF)] = { .text = gEasyChatWord_If, .alphabeticalOrder = 58, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_VERY)] = { .text = gEasyChatWord_Very, .alphabeticalOrder = 36, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_A_TINY_BIT)] = { .text = gEasyChatWord_ATinyBit, .alphabeticalOrder = 30, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_WILD)] = { .text = gEasyChatWord_Wild, .alphabeticalOrder = 4, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_THAT_S)] = { .text = gEasyChatWord_Thats, .alphabeticalOrder = 3, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_JUST)] = { .text = gEasyChatWord_Just, .alphabeticalOrder = 0, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_EVEN_SO)] = { .text = gEasyChatWord_EvenSo, .alphabeticalOrder = 2, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_MUST_BE)] = { .text = gEasyChatWord_MustBe, .alphabeticalOrder = 14, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_NATURALLY)] = { .text = gEasyChatWord_Naturally, .alphabeticalOrder = 53, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_FOR_NOW)] = { .text = gEasyChatWord_ForNow, .alphabeticalOrder = 50, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_UNDERSTOOD)] = { .text = gEasyChatWord_Understood, .alphabeticalOrder = 54, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_JOKING)] = { .text = gEasyChatWord_Joking, .alphabeticalOrder = 32, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_READY)] = { .text = gEasyChatWord_Ready, .alphabeticalOrder = 33, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_SOMETHING)] = { .text = gEasyChatWord_Something, .alphabeticalOrder = 6, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_SOMEHOW)] = { .text = gEasyChatWord_Somehow, .alphabeticalOrder = 1, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_ALTHOUGH)] = { .text = gEasyChatWord_Although, .alphabeticalOrder = 22, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_ALSO)] = { .text = gEasyChatWord_Also, .alphabeticalOrder = 42, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_PERFECT)] = { .text = gEasyChatWord_Perfect, .alphabeticalOrder = 24, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_AS_MUCH_AS)] = { .text = gEasyChatWord_AsMuchAs, .alphabeticalOrder = 7, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_REALLY)] = { .text = gEasyChatWord_Really, .alphabeticalOrder = 51, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_TRULY)] = { .text = gEasyChatWord_Truly, .alphabeticalOrder = 37, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_SERIOUSLY)] = { .text = gEasyChatWord_Seriously, .alphabeticalOrder = 44, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_TOTALLY)] = { .text = gEasyChatWord_Totally, .alphabeticalOrder = 5, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_UNTIL)] = { .text = gEasyChatWord_Until, .alphabeticalOrder = 46, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_AS_IF)] = { .text = gEasyChatWord_AsIf, .alphabeticalOrder = 39, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_MOOD)] = { .text = gEasyChatWord_Mood, .alphabeticalOrder = 38, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_RATHER)] = { .text = gEasyChatWord_Rather, .alphabeticalOrder = 29, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_AWFULLY)] = { .text = gEasyChatWord_Awfully, .alphabeticalOrder = 13, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_MODE)] = { .text = gEasyChatWord_Mode, .alphabeticalOrder = 55, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_MORE)] = { .text = gEasyChatWord_More, .alphabeticalOrder = 47, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_TOO_LATE)] = { .text = gEasyChatWord_TooLate, .alphabeticalOrder = 45, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_FINALLY)] = { .text = gEasyChatWord_Finally, .alphabeticalOrder = 35, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_ANY)] = { .text = gEasyChatWord_Any, .alphabeticalOrder = 48, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_INSTEAD)] = { .text = gEasyChatWord_Instead, .alphabeticalOrder = 26, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_FANTASTIC)] = { .text = gEasyChatWord_Fantastic, .alphabeticalOrder = 28, diff --git a/src/data/easy_chat/easy_chat_group_status.h b/src/data/easy_chat/easy_chat_group_status.h index d4958c3ad..af2292b44 100755 --- a/src/data/easy_chat/easy_chat_group_status.h +++ b/src/data/easy_chat/easy_chat_group_status.h @@ -109,546 +109,655 @@ const u8 gEasyChatWord_PurePower[] = _("PURE POWER"); const u8 gEasyChatWord_ShieldDust[] = _("SHIELD DUST"); const struct EasyChatWordInfo gEasyChatGroup_Status[] = { + [EC_INDEX(EC_WORD_DARK)] = { .text = gEasyChatWord_Dark, .alphabeticalOrder = 13, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_STENCH)] = { .text = gEasyChatWord_Stench, .alphabeticalOrder = 9, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_THICK_FAT)] = { .text = gEasyChatWord_ThickFat, .alphabeticalOrder = 5, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_RAIN_DISH)] = { .text = gEasyChatWord_RainDish, .alphabeticalOrder = 23, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_DRIZZLE)] = { .text = gEasyChatWord_Drizzle, .alphabeticalOrder = 11, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_ARENA_TRAP)] = { .text = gEasyChatWord_ArenaTrap, .alphabeticalOrder = 12, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_INTIMIDATE)] = { .text = gEasyChatWord_Intimidate, .alphabeticalOrder = 101, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_ROCK_HEAD)] = { .text = gEasyChatWord_RockHead, .alphabeticalOrder = 97, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_COLOR)] = { .text = gEasyChatWord_Color, .alphabeticalOrder = 106, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_ALT_COLOR)] = { .text = gEasyChatWord_AltColor, .alphabeticalOrder = 29, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_ROCK)] = { .text = gEasyChatWord_Rock, .alphabeticalOrder = 68, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_BEAUTIFUL)] = { .text = gEasyChatWord_Beautiful, .alphabeticalOrder = 8, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_BEAUTY)] = { .text = gEasyChatWord_Beauty, .alphabeticalOrder = 86, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_AIR_LOCK)] = { .text = gEasyChatWord_AirLock, .alphabeticalOrder = 78, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_PSYCHIC)] = { .text = gEasyChatWord_Psychic, .alphabeticalOrder = 21, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_HYPER_CUTTER)] = { .text = gEasyChatWord_HyperCutter, .alphabeticalOrder = 22, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_FIGHTING)] = { .text = gEasyChatWord_Fighting, .alphabeticalOrder = 24, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_SHADOW_TAG)] = { .text = gEasyChatWord_ShadowTag, .alphabeticalOrder = 99, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_SMART)] = { .text = gEasyChatWord_Smart, .alphabeticalOrder = 25, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_SMARTNESS)] = { .text = gEasyChatWord_Smartness, .alphabeticalOrder = 37, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_SPEED_BOOST)] = { .text = gEasyChatWord_SpeedBoost, .alphabeticalOrder = 0, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_COOL)] = { .text = gEasyChatWord_Cool, .alphabeticalOrder = 62, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_COOLNESS)] = { .text = gEasyChatWord_Coolness, .alphabeticalOrder = 4, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_BATTLE_ARMOR)] = { .text = gEasyChatWord_BattleArmor, .alphabeticalOrder = 76, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_CUTE)] = { .text = gEasyChatWord_Cute, .alphabeticalOrder = 72, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_CUTENESS)] = { .text = gEasyChatWord_Cuteness, .alphabeticalOrder = 88, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_STURDY)] = { .text = gEasyChatWord_Sturdy, .alphabeticalOrder = 57, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_SUCTION_CUPS)] = { .text = gEasyChatWord_SuctionCups, .alphabeticalOrder = 16, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_GRASS)] = { .text = gEasyChatWord_Grass, .alphabeticalOrder = 90, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_CLEAR_BODY)] = { .text = gEasyChatWord_ClearBody, .alphabeticalOrder = 91, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_TORRENT)] = { .text = gEasyChatWord_Torrent, .alphabeticalOrder = 104, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_GHOST)] = { .text = gEasyChatWord_Ghost, .alphabeticalOrder = 75, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_ICE)] = { .text = gEasyChatWord_Ice, .alphabeticalOrder = 58, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_GUTS)] = { .text = gEasyChatWord_Guts, .alphabeticalOrder = 31, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_ROUGH_SKIN)] = { .text = gEasyChatWord_RoughSkin, .alphabeticalOrder = 28, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_SHELL_ARMOR)] = { .text = gEasyChatWord_ShellArmor, .alphabeticalOrder = 38, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_NATURAL_CURE)] = { .text = gEasyChatWord_NaturalCure, .alphabeticalOrder = 33, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_DAMP)] = { .text = gEasyChatWord_Damp, .alphabeticalOrder = 54, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_GROUND)] = { .text = gEasyChatWord_Ground, .alphabeticalOrder = 73, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_LIMBER)] = { .text = gEasyChatWord_Limber, .alphabeticalOrder = 15, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_MAGNET_PULL)] = { .text = gEasyChatWord_MagnetPull, .alphabeticalOrder = 32, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_WHITE_SMOKE)] = { .text = gEasyChatWord_WhiteSmoke, .alphabeticalOrder = 71, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_SYNCHRONIZE)] = { .text = gEasyChatWord_Synchronize, .alphabeticalOrder = 100, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_OVERGROW)] = { .text = gEasyChatWord_Overgrow, .alphabeticalOrder = 48, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_SWIFT_SWIM)] = { .text = gEasyChatWord_SwiftSwim, .alphabeticalOrder = 81, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_SAND_STREAM)] = { .text = gEasyChatWord_SandStream, .alphabeticalOrder = 6, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_SAND_VEIL)] = { .text = gEasyChatWord_SandVeil, .alphabeticalOrder = 47, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_KEEN_EYE)] = { .text = gEasyChatWord_KeenEye, .alphabeticalOrder = 82, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_INNER_FOCUS)] = { .text = gEasyChatWord_InnerFocus, .alphabeticalOrder = 77, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_STATIC)] = { .text = gEasyChatWord_Static, .alphabeticalOrder = 39, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_TYPE)] = { .text = gEasyChatWord_Type, .alphabeticalOrder = 85, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_TOUGH)] = { .text = gEasyChatWord_Tough, .alphabeticalOrder = 94, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_TOUGHNESS)] = { .text = gEasyChatWord_Toughness, .alphabeticalOrder = 40, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_SHED_SKIN)] = { .text = gEasyChatWord_ShedSkin, .alphabeticalOrder = 79, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_HUGE_POWER)] = { .text = gEasyChatWord_HugePower, .alphabeticalOrder = 92, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_VOLT_ABSORB)] = { .text = gEasyChatWord_VoltAbsorb, .alphabeticalOrder = 36, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_WATER_ABSORB)] = { .text = gEasyChatWord_WaterAbsorb, .alphabeticalOrder = 69, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_ELECTRIC)] = { .text = gEasyChatWord_Electric, .alphabeticalOrder = 64, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_FORECAST)] = { .text = gEasyChatWord_Forecast, .alphabeticalOrder = 43, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_SERENE_GRACE)] = { .text = gEasyChatWord_SereneGrace, .alphabeticalOrder = 93, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_POISON)] = { .text = gEasyChatWord_Poison, .alphabeticalOrder = 103, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_POISON_POINT)] = { .text = gEasyChatWord_PoisonPoint, .alphabeticalOrder = 102, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_DRAGON)] = { .text = gEasyChatWord_Dragon, .alphabeticalOrder = 89, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_TRACE)] = { .text = gEasyChatWord_Trace, .alphabeticalOrder = 83, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_OBLIVIOUS)] = { .text = gEasyChatWord_Oblivious, .alphabeticalOrder = 60, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_TRUANT)] = { .text = gEasyChatWord_Truant, .alphabeticalOrder = 61, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_RUN_AWAY)] = { .text = gEasyChatWord_RunAway, .alphabeticalOrder = 84, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_STICKY_HOLD)] = { .text = gEasyChatWord_StickyHold, .alphabeticalOrder = 14, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_CLOUD_NINE)] = { .text = gEasyChatWord_CloudNine, .alphabeticalOrder = 107, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_NORMAL)] = { .text = gEasyChatWord_Normal, .alphabeticalOrder = 3, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_STEEL)] = { .text = gEasyChatWord_Steel, .alphabeticalOrder = 10, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_ILLUMINATE)] = { .text = gEasyChatWord_Illuminate, .alphabeticalOrder = 7, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_EARLY_BIRD)] = { .text = gEasyChatWord_EarlyBird, .alphabeticalOrder = 34, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_HUSTLE)] = { .text = gEasyChatWord_Hustle, .alphabeticalOrder = 66, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_SHINE)] = { .text = gEasyChatWord_Shine, .alphabeticalOrder = 45, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_FLYING)] = { .text = gEasyChatWord_Flying, .alphabeticalOrder = 46, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_DROUGHT)] = { .text = gEasyChatWord_Drought, .alphabeticalOrder = 59, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_LIGHTNINGROD)] = { .text = gEasyChatWord_Lightningrod, .alphabeticalOrder = 17, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_COMPOUNDEYES)] = { .text = gEasyChatWord_Compoundeyes, .alphabeticalOrder = 53, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_MARVEL_SCALE)] = { .text = gEasyChatWord_MarvelScale, .alphabeticalOrder = 35, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_WONDER_GUARD)] = { .text = gEasyChatWord_WonderGuard, .alphabeticalOrder = 108, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_INSOMNIA)] = { .text = gEasyChatWord_Insomnia, .alphabeticalOrder = 74, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_LEVITATE)] = { .text = gEasyChatWord_Levitate, .alphabeticalOrder = 18, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_PLUS)] = { .text = gEasyChatWord_Plus, .alphabeticalOrder = 19, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_PRESSURE)] = { .text = gEasyChatWord_Pressure, .alphabeticalOrder = 87, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_LIQUID_OOZE)] = { .text = gEasyChatWord_LiquidOoze, .alphabeticalOrder = 20, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_COLOR_CHANGE)] = { .text = gEasyChatWord_ColorChange, .alphabeticalOrder = 49, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_SOUNDPROOF)] = { .text = gEasyChatWord_Soundproof, .alphabeticalOrder = 70, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_EFFECT_SPORE)] = { .text = gEasyChatWord_EffectSpore, .alphabeticalOrder = 1, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_PKRS)] = { .text = gEasyChatWord_Pkrs, .alphabeticalOrder = 67, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_FIRE)] = { .text = gEasyChatWord_Fire, .alphabeticalOrder = 26, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_FLAME_BODY)] = { .text = gEasyChatWord_FlameBody, .alphabeticalOrder = 27, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_MINUS)] = { .text = gEasyChatWord_Minus, .alphabeticalOrder = 98, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_OWN_TEMPO)] = { .text = gEasyChatWord_OwnTempo, .alphabeticalOrder = 44, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_MAGMA_ARMOR)] = { .text = gEasyChatWord_MagmaArmor, .alphabeticalOrder = 42, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_WATER)] = { .text = gEasyChatWord_Water, .alphabeticalOrder = 2, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_WATER_VEIL)] = { .text = gEasyChatWord_WaterVeil, .alphabeticalOrder = 30, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_BUG)] = { .text = gEasyChatWord_Bug, .alphabeticalOrder = 51, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_SWARM)] = { .text = gEasyChatWord_Swarm, .alphabeticalOrder = 52, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_CUTE_CHARM)] = { .text = gEasyChatWord_CuteCharm, .alphabeticalOrder = 63, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_IMMUNITY)] = { .text = gEasyChatWord_Immunity, .alphabeticalOrder = 65, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_BLAZE)] = { .text = gEasyChatWord_Blaze, .alphabeticalOrder = 50, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_PICKUP)] = { .text = gEasyChatWord_Pickup, .alphabeticalOrder = 105, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_PATTERN)] = { .text = gEasyChatWord_Pattern, .alphabeticalOrder = 55, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_FLASH_FIRE)] = { .text = gEasyChatWord_FlashFire, .alphabeticalOrder = 95, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_VITAL_SPIRIT)] = { .text = gEasyChatWord_VitalSpirit, .alphabeticalOrder = 56, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_CHLOROPHYLL)] = { .text = gEasyChatWord_Chlorophyll, .alphabeticalOrder = 96, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_PURE_POWER)] = { .text = gEasyChatWord_PurePower, .alphabeticalOrder = 41, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_SHIELD_DUST)] = { .text = gEasyChatWord_ShieldDust, .alphabeticalOrder = 80, diff --git a/src/data/easy_chat/easy_chat_group_time.h b/src/data/easy_chat/easy_chat_group_time.h index 691dde70c..061abffd4 100755 --- a/src/data/easy_chat/easy_chat_group_time.h +++ b/src/data/easy_chat/easy_chat_group_time.h @@ -45,226 +45,271 @@ const u8 gEasyChatWord_Night[] = _("NIGHT"); const u8 gEasyChatWord_Week[] = _("WEEK"); const struct EasyChatWordInfo gEasyChatGroup_Time[] = { + [EC_INDEX(EC_WORD_FALL)] = { .text = gEasyChatWord_Fall, .alphabeticalOrder = 29, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_MORNING)] = { .text = gEasyChatWord_Morning, .alphabeticalOrder = 39, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_TOMORROW)] = { .text = gEasyChatWord_Tomorrow, .alphabeticalOrder = 6, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_LAST)] = { .text = gEasyChatWord_Last, .alphabeticalOrder = 18, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_DAY)] = { .text = gEasyChatWord_Day, .alphabeticalOrder = 33, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_SOMETIME)] = { .text = gEasyChatWord_Sometime, .alphabeticalOrder = 7, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_ALWAYS)] = { .text = gEasyChatWord_Always, .alphabeticalOrder = 37, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_CURRENT)] = { .text = gEasyChatWord_Current, .alphabeticalOrder = 4, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_FOREVER)] = { .text = gEasyChatWord_Forever, .alphabeticalOrder = 9, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_DAYS)] = { .text = gEasyChatWord_Days, .alphabeticalOrder = 35, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_END)] = { .text = gEasyChatWord_End, .alphabeticalOrder = 17, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_TUESDAY)] = { .text = gEasyChatWord_Tuesday, .alphabeticalOrder = 10, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_YESTERDAY)] = { .text = gEasyChatWord_Yesterday, .alphabeticalOrder = 0, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_TODAY)] = { .text = gEasyChatWord_Today, .alphabeticalOrder = 27, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_FRIDAY)] = { .text = gEasyChatWord_Friday, .alphabeticalOrder = 20, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_MONDAY)] = { .text = gEasyChatWord_Monday, .alphabeticalOrder = 8, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_LATER)] = { .text = gEasyChatWord_Later, .alphabeticalOrder = 14, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_EARLIER)] = { .text = gEasyChatWord_Earlier, .alphabeticalOrder = 3, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_ANOTHER)] = { .text = gEasyChatWord_Another, .alphabeticalOrder = 16, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_TIME)] = { .text = gEasyChatWord_Time, .alphabeticalOrder = 15, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_FINISH)] = { .text = gEasyChatWord_Finish, .alphabeticalOrder = 24, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_WEDNESDAY)] = { .text = gEasyChatWord_Wednesday, .alphabeticalOrder = 1, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_SOON)] = { .text = gEasyChatWord_Soon, .alphabeticalOrder = 40, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_START)] = { .text = gEasyChatWord_Start, .alphabeticalOrder = 28, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_MONTH)] = { .text = gEasyChatWord_Month, .alphabeticalOrder = 43, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_STOP)] = { .text = gEasyChatWord_Stop, .alphabeticalOrder = 42, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_NOW)] = { .text = gEasyChatWord_Now, .alphabeticalOrder = 26, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_FINAL)] = { .text = gEasyChatWord_Final, .alphabeticalOrder = 38, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_NEXT)] = { .text = gEasyChatWord_Next, .alphabeticalOrder = 30, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_AGE)] = { .text = gEasyChatWord_Age, .alphabeticalOrder = 5, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_SATURDAY)] = { .text = gEasyChatWord_Saturday, .alphabeticalOrder = 22, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_SUMMER)] = { .text = gEasyChatWord_Summer, .alphabeticalOrder = 34, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_SUNDAY)] = { .text = gEasyChatWord_Sunday, .alphabeticalOrder = 23, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_BEGINNING)] = { .text = gEasyChatWord_Beginning, .alphabeticalOrder = 25, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_SPRING)] = { .text = gEasyChatWord_Spring, .alphabeticalOrder = 31, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_DAYTIME)] = { .text = gEasyChatWord_Daytime, .alphabeticalOrder = 32, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_WINTER)] = { .text = gEasyChatWord_Winter, .alphabeticalOrder = 41, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_DAILY)] = { .text = gEasyChatWord_Daily, .alphabeticalOrder = 19, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_OLDEN)] = { .text = gEasyChatWord_Olden, .alphabeticalOrder = 13, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_ALMOST)] = { .text = gEasyChatWord_Almost, .alphabeticalOrder = 2, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_NEARLY)] = { .text = gEasyChatWord_Nearly, .alphabeticalOrder = 11, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_THURSDAY)] = { .text = gEasyChatWord_Thursday, .alphabeticalOrder = 21, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_NIGHTTIME)] = { .text = gEasyChatWord_Nighttime, .alphabeticalOrder = 44, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_NIGHT)] = { .text = gEasyChatWord_Night, .alphabeticalOrder = 36, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_WEEK)] = { .text = gEasyChatWord_Week, .alphabeticalOrder = 12, diff --git a/src/data/easy_chat/easy_chat_group_trainer.h b/src/data/easy_chat/easy_chat_group_trainer.h index a4e1ddfd6..87966c977 100755 --- a/src/data/easy_chat/easy_chat_group_trainer.h +++ b/src/data/easy_chat/easy_chat_group_trainer.h @@ -27,136 +27,163 @@ const u8 gEasyChatWord_Silver[] = _("SILVER"); const u8 gEasyChatWord_Emerald[] = _("EMERALD"); const struct EasyChatWordInfo gEasyChatGroup_Trainer[] = { + [EC_INDEX(EC_WORD_I_CHOOSE_YOU)] = { .text = gEasyChatWord_IChooseYou, .alphabeticalOrder = 21, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_GOTCHA)] = { .text = gEasyChatWord_Gotcha, .alphabeticalOrder = 7, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_TRADE)] = { .text = gEasyChatWord_Trade, .alphabeticalOrder = 8, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_SAPPHIRE)] = { .text = gEasyChatWord_Sapphire, .alphabeticalOrder = 26, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_EVOLVE)] = { .text = gEasyChatWord_Evolve, .alphabeticalOrder = 5, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_ENCYCLOPEDIA)] = { .text = gEasyChatWord_Encyclopedia, .alphabeticalOrder = 4, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_NATURE)] = { .text = gEasyChatWord_Nature, .alphabeticalOrder = 22, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_CENTER)] = { .text = gEasyChatWord_Center, .alphabeticalOrder = 15, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_EGG)] = { .text = gEasyChatWord_Egg, .alphabeticalOrder = 23, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_LINK)] = { .text = gEasyChatWord_Link, .alphabeticalOrder = 1, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_SP_ABILITY)] = { .text = gEasyChatWord_SpAbility, .alphabeticalOrder = 20, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_TRAINER)] = { .text = gEasyChatWord_Trainer, .alphabeticalOrder = 0, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_VERSION)] = { .text = gEasyChatWord_Version, .alphabeticalOrder = 24, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_POKENAV)] = { .text = gEasyChatWord_Pokenav, .alphabeticalOrder = 18, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_POKEMON)] = { .text = gEasyChatWord_Pokemon, .alphabeticalOrder = 9, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_GET)] = { .text = gEasyChatWord_Get, .alphabeticalOrder = 6, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_POKEDEX)] = { .text = gEasyChatWord_Pokedex, .alphabeticalOrder = 16, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_RUBY)] = { .text = gEasyChatWord_Ruby, .alphabeticalOrder = 14, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_LEVEL)] = { .text = gEasyChatWord_Level, .alphabeticalOrder = 13, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_RED)] = { .text = gEasyChatWord_Red, .alphabeticalOrder = 19, .enabled = FALSE, }, + [EC_INDEX(EC_WORD_GREEN)] = { .text = gEasyChatWord_Green, .alphabeticalOrder = 17, .enabled = FALSE, }, + [EC_INDEX(EC_WORD_BAG)] = { .text = gEasyChatWord_Bag, .alphabeticalOrder = 3, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_FLAME)] = { .text = gEasyChatWord_Flame, .alphabeticalOrder = 25, .enabled = FALSE, }, + [EC_INDEX(EC_WORD_GOLD)] = { .text = gEasyChatWord_Gold, .alphabeticalOrder = 10, .enabled = FALSE, }, + [EC_INDEX(EC_WORD_LEAF)] = { .text = gEasyChatWord_Leaf, .alphabeticalOrder = 2, .enabled = FALSE, }, + [EC_INDEX(EC_WORD_SILVER)] = { .text = gEasyChatWord_Silver, .alphabeticalOrder = 11, .enabled = FALSE, }, + [EC_INDEX(EC_WORD_EMERALD)] = { .text = gEasyChatWord_Emerald, .alphabeticalOrder = 12, diff --git a/src/data/easy_chat/easy_chat_group_trendy_saying.h b/src/data/easy_chat/easy_chat_group_trendy_saying.h index 46ce1201a..938073f7f 100755 --- a/src/data/easy_chat/easy_chat_group_trendy_saying.h +++ b/src/data/easy_chat/easy_chat_group_trendy_saying.h @@ -33,166 +33,199 @@ const u8 gEasyChatWord_Young[] = _("YOUNG"); const u8 gEasyChatWord_Ugly[] = _("UGLY"); const struct EasyChatWordInfo gEasyChatGroup_TrendySaying[] = { + [EC_INDEX(EC_WORD_KTHX_BYE)] = { .text = gEasyChatWord_KthxBye, .alphabeticalOrder = 7, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_YES_SIR_EXCL)] = { .text = gEasyChatWord_YesSirExcl, .alphabeticalOrder = 2, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_AVANT_GARDE)] = { .text = gEasyChatWord_AvantGarde, .alphabeticalOrder = 28, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_COUPLE)] = { .text = gEasyChatWord_Couple, .alphabeticalOrder = 22, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_MUCH_OBLIGED)] = { .text = gEasyChatWord_MuchObliged, .alphabeticalOrder = 9, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_YEEHAW_EXCL)] = { .text = gEasyChatWord_YeehawExcl, .alphabeticalOrder = 3, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_MEGA)] = { .text = gEasyChatWord_Mega, .alphabeticalOrder = 8, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_1_HIT_KO_EXCL)] = { .text = gEasyChatWord_1HitKOExcl, .alphabeticalOrder = 26, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_DESTINY)] = { .text = gEasyChatWord_Destiny, .alphabeticalOrder = 11, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_CANCEL)] = { .text = gEasyChatWord_Cancel, .alphabeticalOrder = 15, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_NEW)] = { .text = gEasyChatWord_New, .alphabeticalOrder = 24, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_FLATTEN)] = { .text = gEasyChatWord_Flatten, .alphabeticalOrder = 29, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_KIDDING)] = { .text = gEasyChatWord_Kidding, .alphabeticalOrder = 16, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_LOSER)] = { .text = gEasyChatWord_Loser, .alphabeticalOrder = 12, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_LOSING)] = { .text = gEasyChatWord_Losing, .alphabeticalOrder = 23, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_HAPPENING)] = { .text = gEasyChatWord_Happening, .alphabeticalOrder = 0, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_HIP_AND)] = { .text = gEasyChatWord_HipAnd, .alphabeticalOrder = 13, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_SHAKE)] = { .text = gEasyChatWord_Shake, .alphabeticalOrder = 14, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_SHADY)] = { .text = gEasyChatWord_Shady, .alphabeticalOrder = 6, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_UPBEAT)] = { .text = gEasyChatWord_Upbeat, .alphabeticalOrder = 20, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_MODERN)] = { .text = gEasyChatWord_Modern, .alphabeticalOrder = 4, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_SMELL_YA)] = { .text = gEasyChatWord_SmellYa, .alphabeticalOrder = 10, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_BANG)] = { .text = gEasyChatWord_Bang, .alphabeticalOrder = 30, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_KNOCKOUT)] = { .text = gEasyChatWord_Knockout, .alphabeticalOrder = 18, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_HASSLE)] = { .text = gEasyChatWord_Hassle, .alphabeticalOrder = 17, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_WINNER)] = { .text = gEasyChatWord_Winner, .alphabeticalOrder = 21, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_FEVER)] = { .text = gEasyChatWord_Fever, .alphabeticalOrder = 32, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_WANNABE)] = { .text = gEasyChatWord_Wannabe, .alphabeticalOrder = 19, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_BABY)] = { .text = gEasyChatWord_Baby, .alphabeticalOrder = 27, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_HEART)] = { .text = gEasyChatWord_Heart, .alphabeticalOrder = 25, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_OLD)] = { .text = gEasyChatWord_Old, .alphabeticalOrder = 5, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_YOUNG)] = { .text = gEasyChatWord_Young, .alphabeticalOrder = 1, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_UGLY)] = { .text = gEasyChatWord_Ugly, .alphabeticalOrder = 31, diff --git a/src/data/easy_chat/easy_chat_group_voices.h b/src/data/easy_chat/easy_chat_group_voices.h index 6dad874ec..3ebbafd25 100755 --- a/src/data/easy_chat/easy_chat_group_voices.h +++ b/src/data/easy_chat/easy_chat_group_voices.h @@ -63,316 +63,379 @@ const u8 gEasyChatWord_Gwah[] = _("GWAH"); const u8 gEasyChatWord_Wahahaha[] = _("WAHAHAHA"); const struct EasyChatWordInfo gEasyChatGroup_Voices[] = { + [EC_INDEX(EC_WORD_EXCL)] = { .text = gEasyChatWord_Excl, .alphabeticalOrder = 0, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_EXCL_EXCL)] = { .text = gEasyChatWord_ExclExcl, .alphabeticalOrder = 1, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_QUES_EXCL)] = { .text = gEasyChatWord_QuesExcl, .alphabeticalOrder = 7, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_QUES)] = { .text = gEasyChatWord_Ques, .alphabeticalOrder = 8, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_ELLIPSIS)] = { .text = gEasyChatWord_Ellipsis, .alphabeticalOrder = 4, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_ELLIPSIS_EXCL)] = { .text = gEasyChatWord_EllipsisExcl, .alphabeticalOrder = 5, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_ELLIPSIS_ELLIPSIS_ELLIPSIS)] = { .text = gEasyChatWord_EllipsisEllipsisEllipsis, .alphabeticalOrder = 6, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_DASH)] = { .text = gEasyChatWord_Dash, .alphabeticalOrder = 3, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_DASH_DASH_DASH)] = { .text = gEasyChatWord_DashDashDash, .alphabeticalOrder = 2, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_UH_OH)] = { .text = gEasyChatWord_UhOh, .alphabeticalOrder = 23, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_WAAAH)] = { .text = gEasyChatWord_Waaah, .alphabeticalOrder = 11, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_AHAHA)] = { .text = gEasyChatWord_Ahaha, .alphabeticalOrder = 41, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_OH_QUES)] = { .text = gEasyChatWord_OhQues, .alphabeticalOrder = 52, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_NOPE)] = { .text = gEasyChatWord_Nope, .alphabeticalOrder = 59, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_URGH)] = { .text = gEasyChatWord_Urgh, .alphabeticalOrder = 22, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_HMM)] = { .text = gEasyChatWord_Hmm, .alphabeticalOrder = 25, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_WHOAH)] = { .text = gEasyChatWord_Whoah, .alphabeticalOrder = 32, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_WROOOAAR_EXCL)] = { .text = gEasyChatWord_WroooaarExcl, .alphabeticalOrder = 24, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_WOW)] = { .text = gEasyChatWord_Wow, .alphabeticalOrder = 26, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_GIGGLE)] = { .text = gEasyChatWord_Giggle, .alphabeticalOrder = 43, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_SIGH)] = { .text = gEasyChatWord_Sigh, .alphabeticalOrder = 19, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_UNBELIEVABLE)] = { .text = gEasyChatWord_Unbelievable, .alphabeticalOrder = 33, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_CRIES)] = { .text = gEasyChatWord_Cries, .alphabeticalOrder = 61, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_AGREE)] = { .text = gEasyChatWord_Agree, .alphabeticalOrder = 34, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_EH_QUES)] = { .text = gEasyChatWord_EhQues, .alphabeticalOrder = 38, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_CRY)] = { .text = gEasyChatWord_Cry, .alphabeticalOrder = 40, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_EHEHE)] = { .text = gEasyChatWord_Ehehe, .alphabeticalOrder = 48, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_OI_OI_OI)] = { .text = gEasyChatWord_OiOiOi, .alphabeticalOrder = 37, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_OH_YEAH)] = { .text = gEasyChatWord_OhYeah, .alphabeticalOrder = 47, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_OH)] = { .text = gEasyChatWord_Oh, .alphabeticalOrder = 42, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_OOPS)] = { .text = gEasyChatWord_Oops, .alphabeticalOrder = 15, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_SHOCKED)] = { .text = gEasyChatWord_Shocked, .alphabeticalOrder = 49, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_EEK)] = { .text = gEasyChatWord_Eek, .alphabeticalOrder = 46, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_GRAAAH)] = { .text = gEasyChatWord_Graaah, .alphabeticalOrder = 57, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_GWAHAHAHA)] = { .text = gEasyChatWord_Gwahahaha, .alphabeticalOrder = 44, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_WAY)] = { .text = gEasyChatWord_Way, .alphabeticalOrder = 54, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_TCH)] = { .text = gEasyChatWord_Tch, .alphabeticalOrder = 53, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_HEHE)] = { .text = gEasyChatWord_Hehe, .alphabeticalOrder = 13, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_HAH)] = { .text = gEasyChatWord_Hah, .alphabeticalOrder = 29, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_YUP)] = { .text = gEasyChatWord_Yup, .alphabeticalOrder = 51, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_HAHAHA)] = { .text = gEasyChatWord_Hahaha, .alphabeticalOrder = 28, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_AIYEEH)] = { .text = gEasyChatWord_Aiyeeh, .alphabeticalOrder = 55, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_HIYAH)] = { .text = gEasyChatWord_Hiyah, .alphabeticalOrder = 12, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_FUFUFU)] = { .text = gEasyChatWord_Fufufu, .alphabeticalOrder = 27, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_LOL)] = { .text = gEasyChatWord_Lol, .alphabeticalOrder = 56, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_SNORT)] = { .text = gEasyChatWord_Snort, .alphabeticalOrder = 30, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_HUMPH)] = { .text = gEasyChatWord_Humph, .alphabeticalOrder = 31, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_HEHEHE)] = { .text = gEasyChatWord_Hehehe, .alphabeticalOrder = 20, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_HEH)] = { .text = gEasyChatWord_Heh, .alphabeticalOrder = 45, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_HOHOHO)] = { .text = gEasyChatWord_Hohoho, .alphabeticalOrder = 36, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_UH_HUH)] = { .text = gEasyChatWord_UhHuh, .alphabeticalOrder = 50, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_OH_DEAR)] = { .text = gEasyChatWord_OhDear, .alphabeticalOrder = 9, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_ARRGH)] = { .text = gEasyChatWord_Arrgh, .alphabeticalOrder = 21, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_MUFUFU)] = { .text = gEasyChatWord_Mufufu, .alphabeticalOrder = 14, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_MMM)] = { .text = gEasyChatWord_Mmm, .alphabeticalOrder = 10, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_OH_KAY)] = { .text = gEasyChatWord_OhKay, .alphabeticalOrder = 62, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_OKAY)] = { .text = gEasyChatWord_Okay, .alphabeticalOrder = 35, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_LALALA)] = { .text = gEasyChatWord_Lalala, .alphabeticalOrder = 16, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_YAY)] = { .text = gEasyChatWord_Yay, .alphabeticalOrder = 18, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_AWW)] = { .text = gEasyChatWord_Aww, .alphabeticalOrder = 60, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_WOWEE)] = { .text = gEasyChatWord_Wowee, .alphabeticalOrder = 17, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_GWAH)] = { .text = gEasyChatWord_Gwah, .alphabeticalOrder = 58, .enabled = TRUE, }, + [EC_INDEX(EC_WORD_WAHAHAHA)] = { .text = gEasyChatWord_Wahahaha, .alphabeticalOrder = 39, diff --git a/src/data/easy_chat/easy_chat_groups.h b/src/data/easy_chat/easy_chat_groups.h index a89f228fe..32d98e806 100755 --- a/src/data/easy_chat/easy_chat_groups.h +++ b/src/data/easy_chat/easy_chat_groups.h @@ -24,111 +24,133 @@ #include "easy_chat_group_pokemon2.h" const struct EasyChatGroup gEasyChatGroups[] = { + [EC_GROUP_POKEMON] = { .wordData = {.valueList = gEasyChatGroup_Pokemon}, .numWords = ARRAY_COUNT(gEasyChatGroup_Pokemon), .numEnabledWords = ARRAY_COUNT(gEasyChatGroup_Pokemon), }, + [EC_GROUP_TRAINER] = { .wordData = {.words = gEasyChatGroup_Trainer}, .numWords = ARRAY_COUNT(gEasyChatGroup_Trainer), .numEnabledWords = ARRAY_COUNT(gEasyChatGroup_Trainer) - 6, // Excludes Red, Green, Flame, Gold, Leaf, and Silver }, + [EC_GROUP_STATUS] = { .wordData = {.words = gEasyChatGroup_Status}, .numWords = ARRAY_COUNT(gEasyChatGroup_Status), .numEnabledWords = ARRAY_COUNT(gEasyChatGroup_Status), }, + [EC_GROUP_BATTLE] = { .wordData = {.words = gEasyChatGroup_Battle}, .numWords = ARRAY_COUNT(gEasyChatGroup_Battle), .numEnabledWords = ARRAY_COUNT(gEasyChatGroup_Battle), }, + [EC_GROUP_GREETINGS] = { .wordData = {.words = gEasyChatGroup_Greetings}, .numWords = ARRAY_COUNT(gEasyChatGroup_Greetings), .numEnabledWords = ARRAY_COUNT(gEasyChatGroup_Greetings), }, + [EC_GROUP_PEOPLE] = { .wordData = {.words = gEasyChatGroup_People}, .numWords = ARRAY_COUNT(gEasyChatGroup_People), .numEnabledWords = ARRAY_COUNT(gEasyChatGroup_People), }, + [EC_GROUP_VOICES] = { .wordData = {.words = gEasyChatGroup_Voices}, .numWords = ARRAY_COUNT(gEasyChatGroup_Voices), .numEnabledWords = ARRAY_COUNT(gEasyChatGroup_Voices), }, + [EC_GROUP_SPEECH] = { .wordData = {.words = gEasyChatGroup_Speech}, .numWords = ARRAY_COUNT(gEasyChatGroup_Speech), .numEnabledWords = ARRAY_COUNT(gEasyChatGroup_Speech), }, + [EC_GROUP_ENDINGS] = { .wordData = {.words = gEasyChatGroup_Endings}, .numWords = ARRAY_COUNT(gEasyChatGroup_Endings), .numEnabledWords = ARRAY_COUNT(gEasyChatGroup_Endings), }, + [EC_GROUP_FEELINGS] = { .wordData = {.words = gEasyChatGroup_Feelings}, .numWords = ARRAY_COUNT(gEasyChatGroup_Feelings), .numEnabledWords = ARRAY_COUNT(gEasyChatGroup_Feelings), }, + [EC_GROUP_CONDITIONS] = { .wordData = {.words = gEasyChatGroup_Conditions}, .numWords = ARRAY_COUNT(gEasyChatGroup_Conditions), .numEnabledWords = ARRAY_COUNT(gEasyChatGroup_Conditions), }, + [EC_GROUP_ACTIONS] = { .wordData = {.words = gEasyChatGroup_Actions}, .numWords = ARRAY_COUNT(gEasyChatGroup_Actions), .numEnabledWords = ARRAY_COUNT(gEasyChatGroup_Actions), }, + [EC_GROUP_LIFESTYLE] = { .wordData = {.words = gEasyChatGroup_Lifestyle}, .numWords = ARRAY_COUNT(gEasyChatGroup_Lifestyle), .numEnabledWords = ARRAY_COUNT(gEasyChatGroup_Lifestyle), }, + [EC_GROUP_HOBBIES] = { .wordData = {.words = gEasyChatGroup_Hobbies}, .numWords = ARRAY_COUNT(gEasyChatGroup_Hobbies), .numEnabledWords = ARRAY_COUNT(gEasyChatGroup_Hobbies), }, + [EC_GROUP_TIME] = { .wordData = {.words = gEasyChatGroup_Time}, .numWords = ARRAY_COUNT(gEasyChatGroup_Time), .numEnabledWords = ARRAY_COUNT(gEasyChatGroup_Time), }, + [EC_GROUP_MISC] = { .wordData = {.words = gEasyChatGroup_Misc}, .numWords = ARRAY_COUNT(gEasyChatGroup_Misc), .numEnabledWords = ARRAY_COUNT(gEasyChatGroup_Misc), }, + [EC_GROUP_ADJECTIVES] = { .wordData = {.words = gEasyChatGroup_Adjectives}, .numWords = ARRAY_COUNT(gEasyChatGroup_Adjectives), .numEnabledWords = ARRAY_COUNT(gEasyChatGroup_Adjectives), }, + [EC_GROUP_EVENTS] = { .wordData = {.words = gEasyChatGroup_Events}, .numWords = ARRAY_COUNT(gEasyChatGroup_Events), .numEnabledWords = ARRAY_COUNT(gEasyChatGroup_Events), }, + [EC_GROUP_MOVE_1] = { .wordData = {.valueList = gEasyChatGroup_Move1}, .numWords = ARRAY_COUNT(gEasyChatGroup_Move1), .numEnabledWords = ARRAY_COUNT(gEasyChatGroup_Move1), }, + [EC_GROUP_MOVE_2] = { .wordData = {.valueList = gEasyChatGroup_Move2}, .numWords = ARRAY_COUNT(gEasyChatGroup_Move2), .numEnabledWords = ARRAY_COUNT(gEasyChatGroup_Move2), }, + [EC_GROUP_TRENDY_SAYING] = { .wordData = {.words = gEasyChatGroup_TrendySaying}, .numWords = ARRAY_COUNT(gEasyChatGroup_TrendySaying), .numEnabledWords = ARRAY_COUNT(gEasyChatGroup_TrendySaying), }, + [EC_GROUP_POKEMON_NATIONAL] = { .wordData = {.valueList = gEasyChatGroup_Pokemon2}, .numWords = ARRAY_COUNT(gEasyChatGroup_Pokemon2), From c0e68f33f7e8843a47115b91a775a958cfe96165 Mon Sep 17 00:00:00 2001 From: GriffinR Date: Sun, 15 Jan 2023 00:05:42 -0500 Subject: [PATCH 49/69] Colorize pokemon storage tiles --- graphics/pokemon_storage/box_bg1.pal | 19 -------- .../box_selection_popup_center.png | Bin 107 -> 164 bytes .../box_selection_popup_sides.png | Bin 125 -> 185 bytes graphics/pokemon_storage/item_info_frame.png | Bin 170 -> 170 bytes graphics/pokemon_storage/menu.png | Bin 1242 -> 1336 bytes graphics/pokemon_storage/party_menu.pal | 19 ++++++++ .../{bg.pal => scrolling_bg.pal} | 0 graphics/pokemon_storage/scrolling_bg.png | Bin 168 -> 228 bytes ..._items.pal => scrolling_bg_move_items.pal} | 0 src/graphics.c | 2 +- src/pokemon_storage_system.c | 44 +++++++++--------- 11 files changed, 43 insertions(+), 41 deletions(-) delete mode 100644 graphics/pokemon_storage/box_bg1.pal create mode 100644 graphics/pokemon_storage/party_menu.pal rename graphics/pokemon_storage/{bg.pal => scrolling_bg.pal} (100%) rename graphics/pokemon_storage/{bg_move_items.pal => scrolling_bg_move_items.pal} (100%) diff --git a/graphics/pokemon_storage/box_bg1.pal b/graphics/pokemon_storage/box_bg1.pal deleted file mode 100644 index 52ac12110..000000000 --- a/graphics/pokemon_storage/box_bg1.pal +++ /dev/null @@ -1,19 +0,0 @@ -JASC-PAL -0100 -16 -106 205 106 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 diff --git a/graphics/pokemon_storage/box_selection_popup_center.png b/graphics/pokemon_storage/box_selection_popup_center.png index f7ab30276eca5a315639cb5f69a0ea11785d0b93..d0b90c578008b0e133f439196365bfab9c77e450 100644 GIT binary patch delta 146 zcmc~^!Z<;)o|%DxA;LZ9Es!z@@CkAKfAs&9DQkj)qW(XN`gX7Q+p{fas~M`j82-b- zmaP9vK-_!x?g2GTzGZd?Na=gJIEHw1CVMC|NN{Lzs4_^za5Mz6F6MF*?a`75by&&N nzopr0EfLBd;kCd diff --git a/graphics/pokemon_storage/box_selection_popup_sides.png b/graphics/pokemon_storage/box_selection_popup_sides.png index a0140dc87b386d4acb48b15455ab0a3e616c8c6e..27b4dc10a81b396f6128c574f375af635709724b 100644 GIT binary patch delta 151 zcmb>3$v8pMg_(hY;ZmDkKaesA@CkAKfAs&9DQkj)qW(XN`gX7Q+p{fas~M`j82-b- zmaP9vK-_!x?g2GTzGZf2qN1>8=!O|L860P;En0f{*G5~nuKoWCJ(^~DI`uTX^L;V% w-lpEoCoTupD99@}9o@=l>AbHk+w`|MmqN|$^DEY90nK6XboFyt=akR{076GhH2?qr delta 106 zcmdnVSUW*7g#ic-7&j&YDHl%{#}J9Bch7HRY%t(qcI;i>XSQe|Ybx^|iIR=BZe9ET zee`acb-7K3@vQHQnfH`B*Ppn&T4IB|(xIcfIW3d#vt*lEi!GbQxJ|hEbsorEPgg&e IbxsLQ09pYlfdBvi diff --git a/graphics/pokemon_storage/item_info_frame.png b/graphics/pokemon_storage/item_info_frame.png index 743e5244145f79ad9a1dd88b66c72a5468e9a3f3..734101a55eaa17eb713911e92dffbc218396b017 100644 GIT binary patch delta 59 icmZ3*xQcOtj^Y3R|C5rEu3kOMKm@pa@a>F=vAzJ(p$#$s delta 59 zcmZ3*xQcOtj^UIkYl4EJ{{R1f_W%E=z3-xyoDFJT5|mX96l7pvxOeZ{k|kS!YKn_N NB5N7AgeS)O0sx-{9YO#A diff --git a/graphics/pokemon_storage/menu.png b/graphics/pokemon_storage/menu.png index 204c075048b0dde47dac3136c04e3178c3bb4fd1..0a1ca913b0803e2d4dcb8f3dbfbdbeb8889ba2e3 100644 GIT binary patch delta 1284 zcmV+f1^fEi3AhT77)}TS00009TMZxp0004VQb$4nuFf3k0001BP)t-s0001#l&o`e zds0$bl$5OYtWu<;v;Y7Aq|NqwwAKIKl-1_{wAJ>U&F=sI|62dE5kc}baob7My*oL4F3EN6qRXeL@ zHBD1@k<1_;mG`~vSJu8Ue>#Q5;mrUJyQp>mig_r9w-*Bh4mci9r>Go=Kmo9kvvJ~% z^oryzjQ2Y;e*%I4pq>GL^dNf`XhHEFD}&Pn+8+R4EWcynkjXT$(?iBTXXOHAU(6&_G->EDEknhb6LdO8~1VCM) zYN%jyUx4r58|w$`z)Q?nfW`qdX#g975Mc>`9yc~Z5;Fh;I84=lxaO_^&JXs|)R|2` zeIk~JKt84e_?KR_9IXIgRl%pXN&{F3!5m<_c@Lo+Kz5HRUNYm&;+v|bk@Ktb$5Z+T z0HP(c6hO{50MmBu0`P?Wsj9;egb71a7J_LS$8o}%TUg=W6daj&gj+OLH37iMrc9zj zfMLMvVudYJ!`~Et9>JGsg9aKKE6km|bfFj^41u}0t870!0x)25uy|Ni_1odlkq^3q z*q3=){0tNUz&(4uumDIPdV8y-nKC@f!|gM`o+Ufv>q(BV2Ta!|H2{Dh^4co_hQWH) z80TV-utn3I187PC*d;Uq@Vy-Z&|H`#IHNp{G`0?)P5~HyZ(}u3W%_1JYCDV`krtFB zz|zL&13a}7uH5x172uh@AZaQ8<h; z3cVL;MdnoztIDKl>5ne;HIlO)LEei zGywE~azAN*4^1QEa=P+ zF5Ko>FxQd?RDk3{OO z3pv+n53tKC%xm#oCW4$X(1LJV%mcFdK*j?p06F8f7GSLhAdyu8_?f$m^abg49+(UP z089jbAoD<;`hoO94~zmpo)7@ue%$mc_rQE1q?J&6rojWFf9DQh2m!7uJg_b+9(@3q zelic`;j{C<*aIsi9^mP30c85Q`TxJD?7v~jhJRX@12CC7e*zml zr|hk1r~q`$E^2qyPB0jZ>mlGwz4elH&L3r50cd9cZ34gzXG7515I6w)$wdGc0tt)f z`~?6BLF+=W0U#5CB>?vMJOsUc24DLOxJ+F_!09_SbO0^8eqt6BeDbC1K=BH;@JmN4 u@roL&Yzg0KFVKE|Ec}7A_{`<&g!&5*vyE{&U#7eO0000m0002YtKcC3001yhOjJdYW-x#8;fOQ<00d=8L_t(og|(Nz zZ{s!;#}(XP;0uuLioya41VvGwi42#)LviSu!Eo20!Bz2JAZgM{Y9Y{0(jCr=H+5>) z;I`{_OU4cw4j#lToGx?w9;qLcO#KLoKG`%W=za8keB_htI1_CSMwV%5F2Nywr}`tn z1^>J}<}H7~Y}~#^z^mFn|MljH0CmUn^e!)t`!f@O9fCtw|5!|2oaU8({-Ff86<{R~ zOBf!=VP4{hw#k5l#LMOCfKGrTDLx)2HJ?E7M+~1UGu>fc&3Qj}#4Wn`(B2h3F7MwXt6~c#^4N!(aMHo@= z!QXN~BNic#Qs_4zaaE0hccnE#B)IJ?2tbgs&|nuCy0#v>|ugadGc z3858W?t$H?wg*515rArm2M$n<2!a~WmJ65e3Ak)78^&;9G_ogsbuc>SriM+9up0I)Hv`zUv=-e#r!{^japeWR9wAH9FZ zPCC`rxo!ZD*MHSFYANtqfV5?k6nMs+t6149`AUf+IX4*-va>1@X8Rtdk27o?~)+}-{r~_0P2?yfHDNUy#ge1NI~8J zFnnmXRR}d89#HV22HY~71D}R8tU`a_8n7G6LcQ2dy}%D{)%Ui}!VU_H6cEByy(Hds z6c_+=At^wdvNTPgjg7tVu1^8^skIXCTGp??*s|tsJl+d^3XJO1+Kor`php2nUx;Y7 zz&zjypL(A4e?XrC6M!eYK0u!W`MCkW+`XZU`A|n5b#+8 zU=t{_E69wM*i81L(05mWKm&fUE9j}pOaV?8m@1q=Yeh!e^cX6@G$R00sMf&$Vz#H% zguihO!17|f=&pC$H8mhTG6dX>m;qo%_UGc{+vBrs`>g>84yA?Z7f5)OGyqUAREwQ7 zg>(8*6`X&^4IpN5T(;O@=n5a*Hvm}R8GB$4@L?h`0W5AXH9!gI zgdi}47y%E=0#G3&Dg+w0|-Kjb=d=coysH zn3094>%g|kx^E%2)jF^j+zETZZ2-1czp-~i^PTixW3-huG6%dX000UA07*qoM6N<$ Eg8Jkg&j0`b diff --git a/graphics/pokemon_storage/party_menu.pal b/graphics/pokemon_storage/party_menu.pal new file mode 100644 index 000000000..a827cfd45 --- /dev/null +++ b/graphics/pokemon_storage/party_menu.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +131 172 180 +41 106 98 +82 98 115 +74 172 164 +57 139 139 +164 213 246 +115 189 98 +255 255 255 +123 189 255 +0 123 255 +41 90 164 +123 205 180 +8 74 65 +164 238 148 +65 82 90 diff --git a/graphics/pokemon_storage/bg.pal b/graphics/pokemon_storage/scrolling_bg.pal similarity index 100% rename from graphics/pokemon_storage/bg.pal rename to graphics/pokemon_storage/scrolling_bg.pal diff --git a/graphics/pokemon_storage/scrolling_bg.png b/graphics/pokemon_storage/scrolling_bg.png index 8be861a2670f9b9107292efd1963f4ef1ef94d86..228e9ce6f75cf88f302cee87367eb3f1842892ae 100644 GIT binary patch delta 195 zcmZ3%_=ItSqzf|x14FA`LKcuR2=EDU1=3Tdtoi@{Kaf$q_di4R|NqU+Ya}H8zkBxo z+13B|&H}}e!R0t9^NEVWC8yliF|0Tckov^8nUP$|_Vpo3q%|mjP_Pzz7GN1V8TyVS1JvVyu-V4vJSv+Vey|LFv=h#b@ mIV{(zS4v+I2%fWfMis+}6EiCVQV*^J+3o4-=d#Wzp$PzEJXA9P delta 151 zcmV;I0BHZ@0jL3x8Gir(005Vp&x8N~0B=b|K~xx(bboxOption != OPTION_MOVE_ITEMS) - LoadPalette(sBg_Pal, 0x30, sizeof(sBg_Pal)); + LoadPalette(sScrollingBg_Pal, 0x30, sizeof(sScrollingBg_Pal)); else - LoadPalette(sBgMoveItems_Pal, 0x30, sizeof(sBgMoveItems_Pal)); + LoadPalette(sScrollingBgMoveItems_Pal, 0x30, sizeof(sScrollingBgMoveItems_Pal)); SetGpuReg(REG_OFFSET_BG1CNT, BGCNT_PRIORITY(1) | BGCNT_CHARBASE(1) | BGCNT_16COLOR | BGCNT_SCREENBASE(30)); CreateDisplayMonSprite(); From a3ae182fc2c47e31d54b7c4b61007d272584d145 Mon Sep 17 00:00:00 2001 From: Jaizu Date: Sun, 15 Jan 2023 09:50:31 +0100 Subject: [PATCH 50/69] Add constants when using GetMonsStateToDoubles_2 --- src/trainer_see.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/trainer_see.c b/src/trainer_see.c index b333e0324..d83f49c4c 100644 --- a/src/trainer_see.c +++ b/src/trainer_see.c @@ -213,7 +213,7 @@ bool8 CheckForTrainersWantingBattle(void) if (gNoOfApproachingTrainers > 1) break; - if (GetMonsStateToDoubles_2() != 0) // one trainer found and cant have a double battle + if (GetMonsStateToDoubles_2() != PLAYER_HAS_TWO_USABLE_MONS) // one trainer found and cant have a double battle break; } @@ -280,7 +280,7 @@ static u8 CheckTrainer(u8 objectEventId) || scriptPtr[1] == TRAINER_BATTLE_REMATCH_DOUBLE || scriptPtr[1] == TRAINER_BATTLE_CONTINUE_SCRIPT_DOUBLE) { - if (GetMonsStateToDoubles_2() != 0) + if (GetMonsStateToDoubles_2() != PLAYER_HAS_TWO_USABLE_MONS) return 0; numTrainers = 2; From 0415cf73df1aff8820da7aeb8963d7cb05466bf7 Mon Sep 17 00:00:00 2001 From: GriffinR Date: Sun, 15 Jan 2023 11:31:16 -0500 Subject: [PATCH 51/69] Fix results_screen/tiles.png colors --- graphics/contest/results_screen/tiles.pal | 259 ---------------------- graphics/contest/results_screen/tiles.png | Bin 1775 -> 2683 bytes 2 files changed, 259 deletions(-) delete mode 100644 graphics/contest/results_screen/tiles.pal diff --git a/graphics/contest/results_screen/tiles.pal b/graphics/contest/results_screen/tiles.pal deleted file mode 100644 index 869aef9e1..000000000 --- a/graphics/contest/results_screen/tiles.pal +++ /dev/null @@ -1,259 +0,0 @@ -JASC-PAL -0100 -256 -0 0 0 -255 255 255 -189 189 197 -131 131 139 -98 98 123 -65 74 106 -41 49 90 -255 106 115 -255 57 57 -205 32 0 -246 213 0 -255 123 98 -156 180 90 -164 148 57 -90 106 139 -180 172 82 -0 0 0 -255 255 255 -189 189 197 -131 131 139 -98 98 123 -65 74 106 -41 49 90 -164 222 255 -106 148 255 -24 57 205 -246 213 0 -255 123 98 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -255 255 255 -189 189 197 -131 131 139 -98 98 123 -65 74 106 -41 49 90 -255 197 255 -255 139 255 -213 0 139 -246 213 0 -255 123 98 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -255 255 255 -189 189 197 -131 131 139 -98 98 123 -65 74 106 -41 49 90 -180 255 197 -148 255 164 -65 172 57 -246 213 0 -255 123 98 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -255 255 255 -189 189 197 -131 131 139 -98 98 123 -65 74 106 -41 49 90 -255 255 164 -246 213 0 -230 106 0 -246 213 0 -255 123 98 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -197 255 255 -255 255 255 -213 213 213 -131 131 139 -98 98 123 -65 74 106 -41 49 90 -164 222 255 -106 148 255 -49 82 255 -180 255 197 -148 255 164 -65 172 57 -0 0 0 -0 0 0 -0 0 0 -197 255 255 -255 255 255 -213 213 213 -131 131 139 -98 98 123 -65 74 106 -41 49 90 -255 139 230 -255 139 230 -255 49 156 -255 255 0 -255 255 0 -189 172 0 -41 49 90 -41 49 90 -0 0 0 -197 123 131 -255 255 255 -230 246 255 -205 238 255 -180 238 255 -156 230 255 -139 230 255 -255 205 230 -255 255 139 -255 230 255 -255 255 197 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -197 255 255 -255 255 255 -213 213 213 -131 131 139 -98 98 123 -65 74 106 -41 49 90 -255 172 197 -255 172 172 -255 180 148 -255 189 123 -255 197 98 -255 205 82 -156 156 156 -156 156 156 -156 156 156 -197 255 255 -255 255 255 -213 213 213 -131 131 139 -98 98 123 -65 74 106 -41 49 90 -164 222 255 -106 148 255 -49 82 255 -180 255 197 -148 255 164 -65 172 57 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -164 222 255 -106 230 222 -49 238 189 -0 255 156 -0 255 156 -82 255 98 -164 255 49 -255 255 0 -255 172 16 -255 90 32 -255 8 57 -230 57 106 -205 115 156 -180 164 205 -164 222 255 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 diff --git a/graphics/contest/results_screen/tiles.png b/graphics/contest/results_screen/tiles.png index 106b975cf4f94382a83a1b1d044af3e43650cf5e..bb6aa701e8ff66233c116a2faa168c6e167cc924 100644 GIT binary patch literal 2683 zcmds(dpK148pq$6HDlZ_C6sB;&8@0af`RIW$R1R@HM4O6m_zV1jY1WE{)<7l;W4XErPmtp01|FE`(>pI?vV z=VK*lSQQtm_r(Oxng5CJ^8drXq|40P!EU4RD!?)&>5Td2U`8{}^OZ4ADkjYsWCRIz zWtQX!B;nncImJ<6QchpKHOZd?1_N8 zEXRTBBr6{$?0FhFN;%NlXgBYEvBA>^2^AK087f(n3ujUk21k$5cIXGpX%$cBN+;9i zw*8iV_R=;;MmW^%z1$(aye3buD=@%us7u4(m&GARW+^7O+HwvBE3oc5FC0U7q7J09 z(t`}YGFvH%9K}{8s^jVD+c?#jaJwO}g*Kn*3Eh)fdilIi5C1tK$wS(6mM{RaZ?!=dBB1iN7n zy*w<%_U9wKl6flBU?kbY>7Gv`5nV=~@Xy-091`Cr7_){o3p)07;OW=%cPgUOZyhaC zGNj9Y@*0Vhp+0(fJN+f%mvlWbwr#V&BU~<3-XyNEhpmrCD->UqqjL+M8xU%unLM|B z*N0EVSD>4pZLI3#He6;ZI4#Il5~V-F6%8E9cpYs=o?cygPyOn}q4OQIknGpO($wl- zb8@mD)%KAN%EotO%|~2=!LKDgNIkFqnAtRc3rEo;+4uNr-mR_{bzXiCk&|$J@-2|3 zT>;_BO6>uINS;bfplHv0G&`mh&l4q&}Mw%`;#$K zt2B|$RQJibby;^>*GunF3%g1Uf~pGi70M>2bhT1Ji(N|V92+*^`1lk(WGqE# zolH&CQWJ-x)qcJYsFtTY>La+xWI=PWAKcVIb)OhRpqG1%xL(V+=HX(8V@fogDce%G zZ=QG@|JjekT#VZw)+!zeugv&VY3(I zBVpCPMbSHpF0uG)5OV3%Qz=uj5J+R615r;@nV|r}MqvGjfIuFW&8~U4G_ta)|Bnym z%qGiv(9nIhJxwzV{)nqM7moal)22>`=3o(A^n#4l1H?=o*UPC(eg_1rm2%{fSuMDA zy^hvz>0xcTw1so7=_eDo^W)OweJ8<6*d4Gg#)6%svb9b_&5%HszY&O6OQ3C_3rW=D zL=B4;7Tc82g{M{9dm`KCqsNe<2vDt+vtJKZ>}ATTiWYS6PF6s%t~)Rkd@>M*-`x?J zDBkYA!K_O~7ukZC zfM%wZkCE{5ZxcbR5Y*Vw*3Fgf$0_4ptv|JI$#2wVn~Kd>&sSAfH#`x+=k{yu4iM<#LZAbBG#R0e*(H zP!*Rhd?piYtX1ui+{4j>ty1JI>+t7PDve_=RjRQbUzohooz(^|_pylOm9l9bytpW; zjxHf=-#$jwEF0!dua06@*;_G<0WN~)JNB`Ab|8~iiJ$y~Te9X(Zwx)-dl5J2tl(1F z*xo>Y|Jl>FY|o#i8T*gHnpc#ix&Y_ng&v#$Yx4{6_}Y**hzQFdACXQC|ZQE&<}nxvu8xY@F~GS7q6MrQsD>}{N^3oSXZe*tg( BKxY5| delta 1723 zcmV;s21NP$6z>g?7!3pi0000n5PbLm001zNGBkh6T_}+N00w$VL_t(&fyJ4=#Ip2e`)1aPzavKP|;otV2dzky>&;&d$sZ#oZ`EfgXt(vhn=x09g!~ij`JHjE8MN zrZa!7Vo-6W@Dkdz7mzE{1BkJfHdDk}8H0yj0AO>ut`DH`Dy3lnpkmzxC;^xN0A5N8 zcmddS7*OCz?FSgNBLUb>>+Y!mY8^ngSGo`z7}V4B0u0%}2S5wvwGnkMK=Y-6Ug!f9 zy>YM+K=$v8#Ml~<0URsqfZVWXEO|GOa(90Uk3gM9Uj&yZ3z@D&vhUUfOIvV@FIyXp)0RRV$uWk*XS^&OD5J33>F$4l) zKcEmJip?BA#YJJNx;8)=%dmjFs^+opG+>9BW5GGPKy^VA(CvS}4V?eM+Jf8)6SYFquh8@>Jizi1%W4Cl z;RUNn003{bF9E~{ymx2902^h{20lLzNekff^N>WzfGkin%0DRHq%s5`HFJNIzfpPs zhx0jKI-N{-f0U-YpDh*^P-}pXw9Nhw%wh*1TT%mZ8SSZOPWi3|?qSge7&Cu_2y8t$ zz^`<e^{-m}va4!_00D6CnQQVUk3_lj_3q`068UXnh;a(_eFC^9riS`*(`0%uMZnSW#giih%#zvZtRGNRae$HZXkKz89oR^Ek^)E4>6#6E zft1YO%^x#>O@M%l^ce%t1Ra2BzfjmNJbrgb0PMh&07uU*jtGDqn00>v{=sx#z`PW| zBoROg0$3yj_ygrHlpB=DCk$XCB7lvE05&25(1^dI{E6}jr58}L8?iCFF$G{ZVjQ3w zgET1HfdtS9q%aNM%@Z5S+y%Hu6C285HW0!j5ds33u;8>7paHr7h1@7<6kUKqZlqrU z8f*pxXuy3aZ8Av22mpU#1kr%b-=g#a9$SD_A$?{6qyoW)0Ecq{Osxt>sQ_k+Kmd+s z9*s1fMFkm+G@io%iG8#r_R*5qM+-e$!T`yk02;kW?BgvE&@Vd!(38>&s1n2X3M9wp z$L9$|W^}n$f&dRc&<94CXh+M}FGryB(YH5WM|W@k4Fs$nepr7IKp|j>06@Su1l)xJ zM1!bMm(lCxWu)OUdh_ivdV3ex1!sd1zDJH;V#%?5#S*4K1SiKQSLavg1-fCk1OXBp zNmt+R#`E&3EKkbgD7ud7vK`>$iU8vWQ8a#!#h-Y31x|1zmsc?UtZv6&%G>eH${+I^ z04NAh>cO}y-;aM+tL;>Pa{?Sg^jTd;U&`y~W_7(C0LTk~8hl0#zMuv-TWUb*55LB@ z^=DhaJ%{r>WVZlbI-u19`tv0-hHgf&IXhL?Rr87VL_LuN@^8*f<{4U0r~r*RGXT)` zVxXDm4uI?0UC3e+29W7ZAD~iVGeG9W1_3-tTLJPoUI%}m$v10Yw4FqwHZiPgV8Xiq zh4BEoUD)6S$aDqh_rg5^xx(n6jUudiHKK{eHb7<>*@*2(1ez(N4d2jcy3o!q=JZ2D zUIAp55$M}^)>yWb9}i&2P5@c8w!jN*Y%$tXc5vU|(naR7fvh|-pgFBfv))uEX@Iwa zqryc>X0v}m!7Gnu4FJ`|w62;o0aX}fvScLyW2!X*4N z0I6d@q4XvIo2(wMHXG!!^2h+Ult8Nq9)L4q6M)&EsBHkX5%mTm3ZNQ`dBccXcp=Vw zUbruyxxCN-)H#9xxjhtsax0Hw#K!Uh7z^OE(8wbZ?vPd+IUC5z Date: Sun, 15 Jan 2023 12:32:10 -0500 Subject: [PATCH 52/69] Colorize tourney_info_card.png --- .../battle_frontier/tourney_info_card.png | Bin 1606 -> 2461 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/graphics/battle_frontier/tourney_info_card.png b/graphics/battle_frontier/tourney_info_card.png index a3c225c89d2706063d62e497e5a6541e6e896385..e6fff76ae9f7c397533fa5937cb544726459f49c 100644 GIT binary patch literal 2461 zcmeHITU1kL7Cz^Y6G9RsqJS3$f&_!gRW1dk5{#j!sEBwWfCNxciV%enXri106hWwh zSQQ&2wOAKZc z1oXK6Uj+bAYxN3T+oF{U1cEfF=p!!eQq$9ljKdXLg%Qb>78%bXkulA!RTcTC zaa$D9e-G*E(yO&_J#_C5(?m3A}Z7eCc z@o8%9oTT43saAn^b#*Cl1&-_0RmSEPz2v_sM!|C+4pd1b_@=ov|L4AQbnSn{&oN|4 z#{NI;55Iwr@AdmKd^#Ov06^TlaYIl2@b*svi&ab-;vMXIY7LEIKrGCtHwkrE#${ zMQ4yfZ-uKciX`&8urWe`AcZ7f^yT4j-Y#N({gtKnVs^lUj{TTzYp~l(LLUtJQ_JJ8 z)A$yh@irl#WTd29=um7ECw#A6zul)0*>*f6ZqMUo1bGft!5~rJklbJR4ey8J&5O-S z#{W(?*9sdRJVXwby`wz}&dRQIK`O2T&l6hulh+8jH?d;sxl9f=Z#Ws;p4^Zh|E}w2 zBywQgy~>ylB%Jm<;c1>CUCSmLmf2bHFU*G?l|WkcxRL>8aQ?Ar_)I_rC*qfUz0li% zz;#0k45)km%N0?#-_=OD>)1%bxK^4_vT1SUMAC?u33{zLo%ky>`#MP_P zT{O=UzUFF`v{PsxG>t_0@11uIQv#_5?o(8kl|8pIZeJJLivt;sMP|HDXB{209AC=cQut3tVeZ7%i)ZjM$o2RtEqNl= z#*gc^6S|u^5pN))X)3<|n$j_usrNkFCOmy*OnYxRC2v&e^28#2zoz>vvc<$nQ@Mhd z`Y>i3*}n`h*+HUevUjT3Bwj&-?R-_9=S5d!S^H`$5|MewJ`Fo^3Ty9#X3s@n)NdYe zH>$!Gs>s)tfV&Tes~+9i*fn%QNcVcInJB`p|=N#<0^qv{{ zdE8$PuS(r;!-4R4Er}VQbCZY`i5WDen;TykiS5(9N$xvoR=C5mp3NJE+Bdhb{C1E# z;vqkav6H%?N|$=_@sytv1DDgiFjy~G&VyR$s_6hG-zfy7b|pGz2YBtZ*)z3n8(jOu z6I{r&@#CQ0xg78sKZH>GtLYGE!xCJrvPScrIckVNfpO4D;l>b8fa(ns)W%qI&`8_Y}|Ykl+61&b<8 zH$mw`!EnkW!n(^8O#@0#Dfa5?a2s5e62n_%H+ts7hh~Uij0Q{JKECG zXh_5CWQChFynO|ue$~9jUBJXuj7{n>OkO^BrxS{1+%NMfv7-Bw%%|5KOJHN4JCF*N zh>2AMk4cZ*2aqQJP~)3Jh((a{O;&-`Fx_Jyznb;v`)G-iHxaZKHH`>S#RYl=-!9bQ zSkRfrKY4xmkXF1++DvTAMY^YY>F4ifG|!|a@$}oQb(6BS;B4>Mx2ywT_H$oJRFR|Z zolkn)hvN-(3v~@_=xn=NMc#W4(@d~6mfSH(;%r~|fBS=Mbz1mn*!#C`b05z}&ejdJ I>v=i<1egGOA^-pY delta 1601 zcmV-H2EO^76UGdX7=Hu+0001+V$6B~00s?7L_t(|obA`YYa3Y*2k`qBwi85^TbE9E z?fM7^QstR|;&k4|!B?s|0tN>b1lODUE8^I~;Y9)$;fgF**|;#v5y<%tbZm9)p_}i_ zyxq5}T}g?rd}GVnmGnM4^L}al-GZW^NGXz*FcdGXwR$=$?tjhs%Sn>ZZ$dBI@74kM z5E?XrxxTO#K-7Tbfk1MwF_3XI0qT;CfLB@e5Fo4KTL8WKuOoy5^mrM-I4@!eK-ykf z|0LAF9GJ2b6$F5bGw{#AatMGXBfmWZn$B#bz`zIM3&X*{E3X4S3EGxH4H%eiK;Azv z+NCpeYYVW)e1BDfl=Oj)9Iz$>ZmT2lO0O*f8dMo%Go;Z19C?5%;#1kNOMtbLc^iPC zY)+&`CmwPMMKLb{NaeEhd|rL_ZdCRMnJ>PE|1s@nDRSA|0uzw!VF^nC+WlEPHrs>xKlM0~nFU)1F zgz4S%D*!5BOhf5L;SU06FDFrqV*~&2! zFL>bGV!)nYbVJz$z*^v$Y10$;9aH2K8v+ThMzp_7<8qV3ea42sUQ+G{CqI%f7Bppm~=51`ZW zC;`-Ps`2lOPo0461gr<#yvTgu)(2GhWq%p4)&YzBrncg4M*_GKd8k(ci~5SoZv}Ao zjx_)uxRIOc9381sAs1+|z;h-;TVCA(JdqrLNwM>|nsq*4WODJ{b0;wR^T!2GCJi6R zZ$~2qKDGiFcL!K6@E)G2{b~T?Ui?-ETm}jh0({tS2WZ?YV28s2@*h+I;C&~6aeps? zojQOHRp3-+pJrGCXxts}4nv`Pg1nRGm;*Hco$P>n`B$g_ptra8{v>i&bb#BP|39FR zTT>rMn!wrC*7ieyEkqNrCE#i(f%^uqwFJ~gVJ&dh1m^W&EL;r)$QGZ}fvpBGx7~nL zR|n3TKyxA?26z&4k$ z3eXzv{R({G>>&UuSPRVUOe(-EnAf*609zGcKehpd>jM9uO*aZ|Eo=Zp5&nMerN_Of zm%7(J_p_^h)X&_iM?cqqato$L{FJ80Q52=}T0e`j?26920e5}6GGDbPfPZAu&$7M% zkuLfIN-IEDPPKx_0d#c&xcyoH2{4eRk;?!HP()=0GX@S@``|4ym**Y>I7arA!)lD%M`a|Nim4&_=PqCSk=go1#>EA*e- zuv8^9r?U3J+lYFRCj_T({D@zpUVO_bTs>L|VAVybuE2;_1Fyu03Me984Tbyi!QQb9 zL_MmYTEa4o`d8=yckTeUSJZ%qL;wO1fB*y_009U<00Izz00bZa0Xhgk00Izz00bZa z0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKqLMG>Lg$p$Hw3400000NkvXXu0mjf0p#7j From 773e7f0de2f8cffd46ce2ec1924aa0f7bb4adb91 Mon Sep 17 00:00:00 2001 From: LOuroboros Date: Tue, 17 Jan 2023 22:16:42 -0300 Subject: [PATCH 53/69] Fixed Explosion & Intimidate's 'interaction' --- asm/macros/battle_script.inc | 5 +++++ data/battle_scripts_1.s | 1 + include/constants/battle_script_commands.h | 1 + src/battle_script_commands.c | 15 +++++++++++++++ 4 files changed, 22 insertions(+) diff --git a/asm/macros/battle_script.inc b/asm/macros/battle_script.inc index c29d8f7c4..0301a3517 100644 --- a/asm/macros/battle_script.inc +++ b/asm/macros/battle_script.inc @@ -2037,6 +2037,11 @@ various \battler, VARIOUS_ACTIVATE_TERRAIN_CHANGE_ABILITIES .endm + .macro jumpifnovalidtargets ptr:req + various BS_ATTACKER, VARIOUS_JUMP_IF_NO_VALID_TARGETS + .4byte \ptr + .endm + @ helpful macros .macro setstatchanger stat:req, stages:req, down:req setbyte sSTATCHANGER, \stat | \stages << 3 | \down << 7 diff --git a/data/battle_scripts_1.s b/data/battle_scripts_1.s index de1aa536a..bbbb7d9b7 100644 --- a/data/battle_scripts_1.s +++ b/data/battle_scripts_1.s @@ -8479,6 +8479,7 @@ BattleScript_TryAdrenalineOrbRet: return BattleScript_IntimidateActivates:: + jumpifnovalidtargets BattleScript_IntimidateEnd showabilitypopup BS_ATTACKER pause B_WAIT_TIME_LONG destroyabilitypopup diff --git a/include/constants/battle_script_commands.h b/include/constants/battle_script_commands.h index a13423bcb..fdf703c1a 100644 --- a/include/constants/battle_script_commands.h +++ b/include/constants/battle_script_commands.h @@ -254,6 +254,7 @@ #define VARIOUS_TRY_WIND_RIDER_POWER 163 #define VARIOUS_ACTIVATE_WEATHER_CHANGE_ABILITIES 164 #define VARIOUS_ACTIVATE_TERRAIN_CHANGE_ABILITIES 165 +#define VARIOUS_JUMP_IF_NO_VALID_TARGETS 166 // Cmd_manipulatedamage #define DMG_CHANGE_SIGN 0 diff --git a/src/battle_script_commands.c b/src/battle_script_commands.c index 3250c3b19..c65189b29 100644 --- a/src/battle_script_commands.c +++ b/src/battle_script_commands.c @@ -10214,6 +10214,21 @@ static void Cmd_various(void) gBattlescriptCurrInstr += 3; AbilityBattleEffects(ABILITYEFFECT_ON_TERRAIN, gActiveBattler, 0, 0, 0); return; + case VARIOUS_JUMP_IF_NO_VALID_TARGETS: + { + u32 count = 0; + + for (i = 0; i < gBattlersCount; i++) + { + if (GetBattlerSide(i) != GetBattlerSide(gBattlerAttacker) && IsBattlerAlive(i)) + count++; + } + if (count == 0) + gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 3); + else + gBattlescriptCurrInstr += 7; + } + return; } // End of switch (gBattlescriptCurrInstr[2]) gBattlescriptCurrInstr += 3; From d68e81c2becd249c45c43733d1b4775749212353 Mon Sep 17 00:00:00 2001 From: GriffinR Date: Tue, 17 Jan 2023 21:09:17 -0500 Subject: [PATCH 54/69] Clarify MB_SEMI_DEEP_WATER name --- include/constants/metatile_behaviors.h | 2 +- src/metatile_behavior.c | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/include/constants/metatile_behaviors.h b/include/constants/metatile_behaviors.h index 86f35ce50..1f6d4e87c 100755 --- a/include/constants/metatile_behaviors.h +++ b/include/constants/metatile_behaviors.h @@ -18,7 +18,7 @@ #define MB_MOSSDEEP_GYM_WARP 0x0E #define MB_MT_PYRE_HOLE 0x0F #define MB_POND_WATER 0x10 -#define MB_SEMI_DEEP_WATER 0x11 +#define MB_INTERIOR_DEEP_WATER 0x11 // Used by interior maps; functionally the same as MB_DEEP_WATER #define MB_DEEP_WATER 0x12 #define MB_WATERFALL 0x13 #define MB_SOOTOPOLIS_DEEP_WATER 0x14 diff --git a/src/metatile_behavior.c b/src/metatile_behavior.c index e35a5b29a..924428aea 100644 --- a/src/metatile_behavior.c +++ b/src/metatile_behavior.c @@ -23,7 +23,7 @@ static const u8 sTileBitAttributes[NUM_METATILE_BEHAVIORS] = [MB_MOSSDEEP_GYM_WARP] = TILE_FLAG_UNUSED, [MB_MT_PYRE_HOLE] = TILE_FLAG_UNUSED, [MB_POND_WATER] = TILE_FLAG_UNUSED | TILE_FLAG_SURFABLE | TILE_FLAG_HAS_ENCOUNTERS, - [MB_SEMI_DEEP_WATER] = TILE_FLAG_UNUSED | TILE_FLAG_SURFABLE | TILE_FLAG_HAS_ENCOUNTERS, + [MB_INTERIOR_DEEP_WATER] = TILE_FLAG_UNUSED | TILE_FLAG_SURFABLE | TILE_FLAG_HAS_ENCOUNTERS, [MB_DEEP_WATER] = TILE_FLAG_UNUSED | TILE_FLAG_SURFABLE | TILE_FLAG_HAS_ENCOUNTERS, [MB_WATERFALL] = TILE_FLAG_UNUSED | TILE_FLAG_SURFABLE, [MB_SOOTOPOLIS_DEEP_WATER] = TILE_FLAG_UNUSED | TILE_FLAG_SURFABLE, @@ -852,7 +852,7 @@ bool8 MetatileBehavior_IsMountain(u8 metatileBehavior) bool8 MetatileBehavior_IsDiveable(u8 metatileBehavior) { - if (metatileBehavior == MB_SEMI_DEEP_WATER + if (metatileBehavior == MB_INTERIOR_DEEP_WATER || metatileBehavior == MB_DEEP_WATER || metatileBehavior == MB_SOOTOPOLIS_DEEP_WATER) return TRUE; @@ -905,7 +905,7 @@ bool8 MetatileBehavior_IsCrackedIce(u8 metatileBehavior) bool8 MetatileBehavior_IsDeepOrOceanWater(u8 metatileBehavior) { if (metatileBehavior == MB_OCEAN_WATER - || metatileBehavior == MB_SEMI_DEEP_WATER + || metatileBehavior == MB_INTERIOR_DEEP_WATER || metatileBehavior == MB_DEEP_WATER) return TRUE; else @@ -1163,7 +1163,7 @@ bool8 MetatileBehavior_IsSurfableFishableWater(u8 metatileBehavior) { if (metatileBehavior == MB_POND_WATER || metatileBehavior == MB_OCEAN_WATER - || metatileBehavior == MB_SEMI_DEEP_WATER + || metatileBehavior == MB_INTERIOR_DEEP_WATER || metatileBehavior == MB_DEEP_WATER || metatileBehavior == MB_SOOTOPOLIS_DEEP_WATER || (metatileBehavior == MB_EASTWARD_CURRENT From a203c03eacb138e9bf9155a4e16503c09dd57c7f Mon Sep 17 00:00:00 2001 From: GriffinR Date: Wed, 18 Jan 2023 10:33:39 -0500 Subject: [PATCH 55/69] Add bugfix to LoadObjectEventPalette --- src/event_object_movement.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/event_object_movement.c b/src/event_object_movement.c index e277e2a48..af78b4f7c 100644 --- a/src/event_object_movement.c +++ b/src/event_object_movement.c @@ -1998,7 +1998,12 @@ static void LoadObjectEventPalette(u16 paletteTag) { u16 i = FindObjectEventPaletteIndexByTag(paletteTag); - if (i != OBJ_EVENT_PAL_TAG_NONE) // always true +// FindObjectEventPaletteIndexByTag returns 0xFF on failure, not OBJ_EVENT_PAL_TAG_NONE. +#ifdef BUGFIX + if (i != 0xFF) +#else + if (i != OBJ_EVENT_PAL_TAG_NONE) +#endif LoadSpritePaletteIfTagExists(&sObjectEventSpritePalettes[i]); } @@ -2021,6 +2026,7 @@ static u8 LoadSpritePaletteIfTagExists(const struct SpritePalette *spritePalette void PatchObjectPalette(u16 paletteTag, u8 paletteSlot) { + // paletteTag is assumed to exist in sObjectEventSpritePalettes u8 paletteIndex = FindObjectEventPaletteIndexByTag(paletteTag); LoadPalette(sObjectEventSpritePalettes[paletteIndex].data, 16 * paletteSlot + 0x100, 0x20); From d1e4bd44cea2837768d25d8d5254a0bcfa81f914 Mon Sep 17 00:00:00 2001 From: GriffinR Date: Wed, 18 Jan 2023 11:54:06 -0500 Subject: [PATCH 56/69] Correct comment in maps.h --- include/constants/maps.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/include/constants/maps.h b/include/constants/maps.h index 626054b43..1bf11fa5c 100644 --- a/include/constants/maps.h +++ b/include/constants/maps.h @@ -14,8 +14,8 @@ // IDs for dynamic warps. Both are used in the dest_warp_id field for warp events, but they // are never read in practice. A dest_map of MAP_DYNAMIC is used to indicate that a -// dynamic warp should be used, at which point the warp id is ignored. It can be passed to -// SetDynamicWarp/SetDynamicWarpWithCoords as the first argument, but this argument is unused. +// dynamic warp should be used, at which point the warp id is ignored. They can be passed +// as the argument to SetWarpDestinationToDynamicWarp, but this argument is unused. // As only one dynamic warp is saved at a time there's no need to distinguish between them. #define WARP_ID_SECRET_BASE 0x7E #define WARP_ID_DYNAMIC 0x7F From b7d92e85373b0014487a13aa4f849240f4b0c9d7 Mon Sep 17 00:00:00 2001 From: GriffinR Date: Wed, 18 Jan 2023 12:11:09 -0500 Subject: [PATCH 57/69] Revert incorrect constant usage, add new correct ones --- data/battle_anim_scripts.s | 34 ++++++++++++++++----------------- include/constants/battle_anim.h | 12 +++++++----- src/battle_anim_dark.c | 8 ++++---- src/battle_anim_mon_movement.c | 10 +++++----- 4 files changed, 33 insertions(+), 31 deletions(-) diff --git a/data/battle_anim_scripts.s b/data/battle_anim_scripts.s index 9568a3e5c..451976184 100644 --- a/data/battle_anim_scripts.s +++ b/data/battle_anim_scripts.s @@ -2597,8 +2597,8 @@ Move_LOW_KICK: end Move_EARTHQUAKE: - createvisualtask AnimTask_HorizontalShake, 5, ANIM_PLAYER_RIGHT, 10, 50 - createvisualtask AnimTask_HorizontalShake, 5, ANIM_PLAYER_LEFT, 10, 50 + createvisualtask AnimTask_HorizontalShake, 5, (MAX_BATTLERS_COUNT + 1), 10, 50 + createvisualtask AnimTask_HorizontalShake, 5, MAX_BATTLERS_COUNT, 10, 50 playsewithpan SE_M_EARTHQUAKE, 0 delay 10 createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, F_PAL_BG, 3, 1, RGB_BLACK, 14, RGB_WHITE, 14 @@ -2608,7 +2608,7 @@ Move_EARTHQUAKE: Move_FISSURE: loadspritegfx ANIM_TAG_MUD_SAND - createvisualtask AnimTask_HorizontalShake, 3, ANIM_PLAYER_RIGHT, 10, 50 + createvisualtask AnimTask_HorizontalShake, 3, (MAX_BATTLERS_COUNT + 1), 10, 50 createvisualtask AnimTask_HorizontalShake, 3, ANIM_TARGET, 10, 50 playsewithpan SE_M_EARTHQUAKE, SOUND_PAN_TARGET delay 8 @@ -2953,7 +2953,7 @@ SkyAttackSetUpAgainstPartner: delay 20 createvisualtask AnimTask_BlendBattleAnimPal, 10, F_PAL_ATTACKER, 1, 15, 0, RGB_WHITE waitforvisualfinish - createvisualtask AnimTask_BlendBattleAnimPalExclude, 10, ANIM_PLAYER_LEFT, 1, 8, 0, RGB_BLACK + createvisualtask AnimTask_BlendBattleAnimPalExclude, 10, 4, 1, 8, 0, RGB_BLACK waitforvisualfinish clearmonbg ANIM_DEF_PARTNER blendoff @@ -3182,15 +3182,15 @@ Move_DESTINY_BOND: playsewithpan SE_M_CONFUSE_RAY, SOUND_PAN_ATTACKER delay 48 createvisualtask AnimTask_ShakeMonInPlace, 2, ANIM_ATTACKER, 2, 0, 24, 1 - createvisualtask AnimTask_BlendBattleAnimPalExclude, 2, ANIM_OPPONENT_LEFT, 1, 0, 12, RGB(29, 29, 29) + createvisualtask AnimTask_BlendBattleAnimPalExclude, 2, 6, 1, 0, 12, RGB(29, 29, 29) delay 24 - createvisualtask AnimTask_BlendBattleAnimPalExclude, 2, ANIM_OPPONENT_LEFT, 1, 12, 0, RGB(29, 29, 29) + createvisualtask AnimTask_BlendBattleAnimPalExclude, 2, 6, 1, 12, 0, RGB(29, 29, 29) playsewithpan SE_M_NIGHTMARE, SOUND_PAN_TARGET waitforvisualfinish restorebg waitbgfadein blendoff - clearmonbg ANIM_PLAYER_RIGHT + clearmonbg 5 end Move_ENDURE: @@ -3323,13 +3323,13 @@ Move_MAGNITUDE: MagnitudeEnd: end MagnitudeRegular: - createvisualtask AnimTask_HorizontalShake, 5, ANIM_PLAYER_RIGHT, 0, 50 - createvisualtask AnimTask_HorizontalShake, 5, ANIM_PLAYER_LEFT, 0, 50 + createvisualtask AnimTask_HorizontalShake, 5, (MAX_BATTLERS_COUNT + 1), 0, 50 + createvisualtask AnimTask_HorizontalShake, 5, MAX_BATTLERS_COUNT, 0, 50 loopsewithpan SE_M_STRENGTH, SOUND_PAN_TARGET, 8, 10 goto MagnitudeEnd MagnitudeIntense: - createvisualtask AnimTask_HorizontalShake, 5, ANIM_PLAYER_RIGHT, 0, 50 - createvisualtask AnimTask_HorizontalShake, 5, ANIM_PLAYER_LEFT, 0, 50 + createvisualtask AnimTask_HorizontalShake, 5, (MAX_BATTLERS_COUNT + 1), 0, 50 + createvisualtask AnimTask_HorizontalShake, 5, MAX_BATTLERS_COUNT, 0, 50 loopsewithpan SE_M_STRENGTH, SOUND_PAN_TARGET, 8, 10 delay 10 createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, F_PAL_BG, 3, 1, RGB_BLACK, 14, RGB_WHITE, 14 @@ -3814,8 +3814,8 @@ Move_ERUPTION: createsprite gEruptionFallingRockSpriteTemplate, ANIM_ATTACKER, 40, 110, -32, 64, 50, 0 createsprite gEruptionFallingRockSpriteTemplate, ANIM_ATTACKER, 40, 60, -32, 80, 70, 1 delay 22 - createvisualtask AnimTask_HorizontalShake, 5, ANIM_PLAYER_RIGHT, 8, 60 - createvisualtask AnimTask_HorizontalShake, 5, ANIM_PLAYER_LEFT, 8, 60 + createvisualtask AnimTask_HorizontalShake, 5, (MAX_BATTLERS_COUNT + 1), 8, 60 + createvisualtask AnimTask_HorizontalShake, 5, MAX_BATTLERS_COUNT, 8, 60 loopsewithpan SE_M_ROCK_THROW, SOUND_PAN_TARGET, 16, 12 delay 80 createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 40, F_PAL_BG | F_PAL_BATTLERS, 4, 4, 0, RGB_RED @@ -3845,7 +3845,7 @@ Move_IMPRISON: waitforvisualfinish delay 4 createsprite gRedXSpriteTemplate, ANIM_ATTACKER, 5, ANIM_ATTACKER, 40 - createvisualtask AnimTask_HorizontalShake, 5, ANIM_PLAYER_LEFT, 1, 10 + createvisualtask AnimTask_HorizontalShake, 5, MAX_BATTLERS_COUNT, 1, 10 playsewithpan SE_M_HYPER_BEAM, SOUND_PAN_ATTACKER clearmonbg ANIM_DEF_PARTNER call UnsetPsychicBackground @@ -3915,7 +3915,7 @@ Move_LUSTER_PURGE: playsewithpan SE_M_SOLAR_BEAM, SOUND_PAN_ATTACKER createsprite gLusterPurgeCircleSpriteTemplate, ANIM_ATTACKER, 41, 0, 0, 0, 0 delay 20 - createvisualtask AnimTask_BlendBattleAnimPalExclude, 5, ANIM_PLAYER_RIGHT, 2, 0, 16, RGB_WHITEALPHA + createvisualtask AnimTask_BlendBattleAnimPalExclude, 5, 5, 2, 0, 16, RGB_WHITEALPHA createvisualtask AnimTask_BlendParticle, 5, ANIM_TAG_WHITE_CIRCLE_OF_LIGHT, 2, 0, 16, RGB_WHITEALPHA waitforvisualfinish createvisualtask AnimTask_BlendParticle, 5, ANIM_TAG_IMPACT, 0, 12, 12, RGB(0, 0, 23) @@ -7740,12 +7740,12 @@ Move_HEAL_BELL: unloadspritegfx ANIM_TAG_SPARKLE_2 loadspritegfx ANIM_TAG_THIN_RING playsewithpan SE_SHINY, SOUND_PAN_ATTACKER - createvisualtask AnimTask_BlendBattleAnimPalExclude, 10, ANIM_PLAYER_LEFT, 3, 10, 0, RGB(12, 24, 30) + createvisualtask AnimTask_BlendBattleAnimPalExclude, 10, 4, 3, 10, 0, RGB(12, 24, 30) createvisualtask AnimTask_BlendBattleAnimPal, 10, F_PAL_ATK_SIDE, 3, 10, 0, RGB_WHITE createsprite gBlendThinRingExpandingSpriteTemplate, ANIM_ATTACKER, 16, 0, 0, 0, 1 end HealBellRing: - createvisualtask AnimTask_BlendBattleAnimPalExclude, 10, ANIM_PLAYER_LEFT, 3, 8, 0, RGB(12, 24, 30) + createvisualtask AnimTask_BlendBattleAnimPalExclude, 10, 4, 3, 8, 0, RGB(12, 24, 30) createvisualtask AnimTask_BlendBattleAnimPal, 10, F_PAL_ATK_SIDE, 3, 2, 10, RGB_WHITE createsprite gThinRingExpandingSpriteTemplate, ANIM_ATTACKER, 40, 0, -24, 0, 1 playsewithpan SE_M_HEAL_BELL, SOUND_PAN_ATTACKER diff --git a/include/constants/battle_anim.h b/include/constants/battle_anim.h index 3952f8acd..c1cb42a41 100644 --- a/include/constants/battle_anim.h +++ b/include/constants/battle_anim.h @@ -302,11 +302,13 @@ #define ANIM_TARGET 1 #define ANIM_ATK_PARTNER 2 #define ANIM_DEF_PARTNER 3 -#define ANIM_PLAYER_LEFT 4 -#define ANIM_PLAYER_RIGHT 5 -#define ANIM_OPPONENT_LEFT 6 -#define ANIM_OPPONENT_RIGHT 7 -#define ANIM_ATTACKER_FORCE 8 + +// Below are used by AnimTask_ShakeMon2 and AnimTask_SetGrayscaleOrOriginalPal +#define ANIM_PLAYER_LEFT (MAX_BATTLERS_COUNT + 0) +#define ANIM_PLAYER_RIGHT (MAX_BATTLERS_COUNT + 1) +#define ANIM_OPPONENT_LEFT (MAX_BATTLERS_COUNT + 2) +#define ANIM_OPPONENT_RIGHT (MAX_BATTLERS_COUNT + 3) +#define ANIM_ATTACKER_FORCE (MAX_BATTLERS_COUNT + 4) // stereo panning constants [0-255] // diff --git a/src/battle_anim_dark.c b/src/battle_anim_dark.c index deedccc6a..03df99e13 100644 --- a/src/battle_anim_dark.c +++ b/src/battle_anim_dark.c @@ -943,19 +943,19 @@ void AnimTask_SetGrayscaleOrOriginalPal(u8 taskId) case ANIM_DEF_PARTNER: spriteId = GetAnimBattlerSpriteId(gBattleAnimArgs[0]); break; - case 4: + case ANIM_PLAYER_LEFT: position = B_POSITION_PLAYER_LEFT; calcSpriteId = TRUE; break; - case 5: + case ANIM_PLAYER_RIGHT: position = B_POSITION_PLAYER_RIGHT; calcSpriteId = TRUE; break; - case 6: + case ANIM_OPPONENT_LEFT: position = B_POSITION_OPPONENT_LEFT; calcSpriteId = TRUE; break; - case 7: + case ANIM_OPPONENT_RIGHT: position = B_POSITION_OPPONENT_RIGHT; calcSpriteId = TRUE; break; diff --git a/src/battle_anim_mon_movement.c b/src/battle_anim_mon_movement.c index 8a11c2c5b..247aba1a4 100644 --- a/src/battle_anim_mon_movement.c +++ b/src/battle_anim_mon_movement.c @@ -164,20 +164,20 @@ void AnimTask_ShakeMon2(u8 taskId) if (spriteId == SPRITE_NONE) abort = TRUE; } - else if (gBattleAnimArgs[0] != 8) + else if (gBattleAnimArgs[0] != ANIM_ATTACKER_FORCE) { switch (gBattleAnimArgs[0]) { - case 4: + case ANIM_PLAYER_LEFT: battlerId = GetBattlerAtPosition(B_POSITION_PLAYER_LEFT); break; - case 5: + case ANIM_PLAYER_RIGHT: battlerId = GetBattlerAtPosition(B_POSITION_PLAYER_RIGHT); break; - case 6: + case ANIM_OPPONENT_LEFT: battlerId = GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT); break; - case 7: + case ANIM_OPPONENT_RIGHT: default: battlerId = GetBattlerAtPosition(B_POSITION_OPPONENT_RIGHT); break; From 4a9515e8db96a379d30554e98ef4d2173913af4a Mon Sep 17 00:00:00 2001 From: Eduardo Quezada Date: Fri, 20 Jan 2023 12:34:15 -0300 Subject: [PATCH 58/69] Restored improvements from upstream --- .../BattleFrontier_BattleTowerLobby/scripts.inc | 4 ++-- src/event_object_movement.c | 16 ++++++++-------- src/wonder_news.c | 3 +-- 3 files changed, 11 insertions(+), 12 deletions(-) diff --git a/data/maps/BattleFrontier_BattleTowerLobby/scripts.inc b/data/maps/BattleFrontier_BattleTowerLobby/scripts.inc index 24f81323f..e99c7f88e 100644 --- a/data/maps/BattleFrontier_BattleTowerLobby/scripts.inc +++ b/data/maps/BattleFrontier_BattleTowerLobby/scripts.inc @@ -415,9 +415,9 @@ 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_0, 255 goto_if_eq VAR_RESULT, 0, BattleFrontier_BattleTowerLobby_EventScript_CancelChallengeSaveFailed diff --git a/src/event_object_movement.c b/src/event_object_movement.c index 07fcea658..ae48223c3 100644 --- a/src/event_object_movement.c +++ b/src/event_object_movement.c @@ -498,12 +498,12 @@ static const struct SpritePalette sObjectEventSpritePalettes[] = { {gObjectEventPal_Lugia, OBJ_EVENT_PAL_TAG_LUGIA}, {gObjectEventPal_RubySapphireBrendan, OBJ_EVENT_PAL_TAG_RS_BRENDAN}, {gObjectEventPal_RubySapphireMay, OBJ_EVENT_PAL_TAG_RS_MAY}, -//#ifdef BUGFIX -// {NULL, OBJ_EVENT_PAL_TAG_NONE}, -//#else +#ifdef BUGFIX + {NULL, OBJ_EVENT_PAL_TAG_NONE}, +#else {}, // BUG: FindObjectEventPaletteIndexByTag looks for OBJ_EVENT_PAL_TAG_NONE and not 0x0. // If it's looking for a tag that isn't in this table, the game locks in an infinite loop. -//#endif +#endif }; static const u16 sReflectionPaletteTags_Brendan[] = { @@ -2000,11 +2000,11 @@ static void LoadObjectEventPalette(u16 paletteTag) u16 i = FindObjectEventPaletteIndexByTag(paletteTag); // FindObjectEventPaletteIndexByTag returns 0xFF on failure, not OBJ_EVENT_PAL_TAG_NONE. -//#ifdef BUGFIX -// if (i != 0xFF) -//#else +#ifdef BUGFIX + if (i != 0xFF) +#else if (i != OBJ_EVENT_PAL_TAG_NONE) -//#endif +#endif LoadSpritePaletteIfTagExists(&sObjectEventSpritePalettes[i]); } diff --git a/src/wonder_news.c b/src/wonder_news.c index ae71946d6..4b5f32d1d 100644 --- a/src/wonder_news.c +++ b/src/wonder_news.c @@ -106,8 +106,7 @@ static u32 GetRewardItem(struct WonderNewsMetadata *data) { u32 itemId; data->newsType = WONDER_NEWS_NONE; - //itemId = data->berry + FIRST_BERRY_INDEX - 1; - itemId = data->berry + 132; + itemId = data->berry + FIRST_BERRY_INDEX - 1; data->berry = 0; IncrementRewardCounter(data); return itemId; From 9e6c5725d03da31f1640febefa47ac9ef1a1f24e Mon Sep 17 00:00:00 2001 From: ghoulslash Date: Sat, 21 Jan 2023 08:55:20 -0500 Subject: [PATCH 59/69] add hp check to ITEMEFFECT_ORBS --- src/battle_util.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/battle_util.c b/src/battle_util.c index 54982dab8..88c4b667d 100644 --- a/src/battle_util.c +++ b/src/battle_util.c @@ -2701,8 +2701,11 @@ u8 DoBattlerEndTurnEffects(void) gBattleStruct->turnEffectsTracker++; break; case ENDTURN_ORBS: - if (ItemBattleEffects(ITEMEFFECT_ORBS, gActiveBattler, FALSE)) + if (gBattleMons[gActiveBattler].hp != 0 + && ItemBattleEffects(ITEMEFFECT_ORBS, gActiveBattler, FALSE)) + { effect++; + } gBattleStruct->turnEffectsTracker++; break; case ENDTURN_LEECH_SEED: // leech seed From a044084182bc700370aca1b1e76e96c6121e4ebc Mon Sep 17 00:00:00 2001 From: ghoulslash Date: Sat, 21 Jan 2023 11:11:50 -0500 Subject: [PATCH 60/69] Remove redundant IsBattlerAlive checks from ITEMEFFECT_ORBS --- src/battle_util.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/battle_util.c b/src/battle_util.c index 88c4b667d..a4aef9a34 100644 --- a/src/battle_util.c +++ b/src/battle_util.c @@ -7844,7 +7844,7 @@ u8 ItemBattleEffects(u8 caseID, u8 battlerId, bool8 moveTurn) switch (battlerHoldEffect) { case HOLD_EFFECT_TOXIC_ORB: - if (IsBattlerAlive(battlerId) && CanBePoisoned(battlerId, battlerId)) + if (CanBePoisoned(battlerId, battlerId)) { effect = ITEM_STATUS_CHANGE; gBattleMons[battlerId].status1 = STATUS1_TOXIC_POISON; @@ -7853,7 +7853,7 @@ u8 ItemBattleEffects(u8 caseID, u8 battlerId, bool8 moveTurn) } break; case HOLD_EFFECT_FLAME_ORB: - if (IsBattlerAlive(battlerId) && CanBeBurned(battlerId)) + if (CanBeBurned(battlerId)) { effect = ITEM_STATUS_CHANGE; gBattleMons[battlerId].status1 = STATUS1_BURN; From 428ea9702822202ca988979bb5a42b070daed1e8 Mon Sep 17 00:00:00 2001 From: ghoulslash Date: Sat, 21 Jan 2023 12:11:12 -0500 Subject: [PATCH 61/69] IsBattlerAlive instead of hp check --- src/battle_util.c | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/src/battle_util.c b/src/battle_util.c index a4aef9a34..b6e131e13 100644 --- a/src/battle_util.c +++ b/src/battle_util.c @@ -2701,11 +2701,8 @@ u8 DoBattlerEndTurnEffects(void) gBattleStruct->turnEffectsTracker++; break; case ENDTURN_ORBS: - if (gBattleMons[gActiveBattler].hp != 0 - && ItemBattleEffects(ITEMEFFECT_ORBS, gActiveBattler, FALSE)) - { + if (IsBattlerAlive(gActiveBattler) && ItemBattleEffects(ITEMEFFECT_ORBS, gActiveBattler, FALSE)) effect++; - } gBattleStruct->turnEffectsTracker++; break; case ENDTURN_LEECH_SEED: // leech seed From c6811fb692f5c6bf8558f05b5ba3729b53002bcd Mon Sep 17 00:00:00 2001 From: Jaizu Date: Sat, 21 Jan 2023 18:03:24 +0100 Subject: [PATCH 62/69] Ability popup fixes --- graphics/battle_interface/ability_pop_up.png | Bin 275 -> 284 bytes src/battle_interface.c | 198 +++++++------------ 2 files changed, 67 insertions(+), 131 deletions(-) diff --git a/graphics/battle_interface/ability_pop_up.png b/graphics/battle_interface/ability_pop_up.png index 92971a7a51f0a79e0b4ef940ed09c3960cdc35e0..ede0a7b5d7e3efd42ad54dff69f5b28e891b1d56 100644 GIT binary patch delta 209 zcmV;?051QN0-OSn7#0Wv0001;w}I>c0004VQb$4nuFf3kks&{Snn^@KR9J=W)xi#c zAPfW0je`FFA3M=ACDe<$-g#McSF8BZgqlu9q zKES}_6p9xx2%8d6prT4hf#}FkfH$ClL9LR8A26tt;|HS(U<%R+C{Q*d5Yz8jDCZ!T1z0oAAOHYU2&VzqnE`?T0000 CBT0q; diff --git a/src/battle_interface.c b/src/battle_interface.c index b45f7d409..9381c4c1e 100644 --- a/src/battle_interface.c +++ b/src/battle_interface.c @@ -2801,66 +2801,25 @@ static const struct SpritePalette sSpritePalette_AbilityPopUp = static const struct OamData sOamData_AbilityPopUp = { - .y = 0, - .affineMode = 0, - .objMode = 0, - .mosaic = 0, - .bpp = 0, - .shape = ST_OAM_H_RECTANGLE, - .x = 0, - .matrixNum = 0, - .size = 3, - .tileNum = 0, - .priority = 0, - .paletteNum = 0, - .affineParam = 0, + .affineMode = ST_OAM_AFFINE_OFF, + .objMode = ST_OAM_OBJ_NORMAL, + .shape = SPRITE_SHAPE(64x32), + .size = SPRITE_SIZE(64x32), + .priority = 0, }; -static const union AnimCmd sSpriteAnim_AbilityPopUp1[] = -{ - ANIMCMD_FRAME(0, 0), - ANIMCMD_END -}; - -static const union AnimCmd *const sSpriteAnimTable_AbilityPopUp1[] = -{ - sSpriteAnim_AbilityPopUp1 -}; - -static const struct SpriteTemplate sSpriteTemplate_AbilityPopUp1 = +static const struct SpriteTemplate sSpriteTemplate_AbilityPopUp = { .tileTag = ABILITY_POP_UP_TAG, .paletteTag = ABILITY_POP_UP_TAG, .oam = &sOamData_AbilityPopUp, - .anims = sSpriteAnimTable_AbilityPopUp1, + .anims = gDummySpriteAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = SpriteCb_AbilityPopUp }; -static const union AnimCmd sSpriteAnim_AbilityPopUp2[] = -{ - ANIMCMD_FRAME(32, 0), - ANIMCMD_END -}; - -static const union AnimCmd *const sSpriteAnimTable_AbilityPopUp2[] = -{ - sSpriteAnim_AbilityPopUp2 -}; - -static const struct SpriteTemplate sSpriteTemplate_AbilityPopUp2 = -{ - .tileTag = ABILITY_POP_UP_TAG, - .paletteTag = ABILITY_POP_UP_TAG, - .oam = &sOamData_AbilityPopUp, - .anims = sSpriteAnimTable_AbilityPopUp2, - .images = NULL, - .affineAnims = gDummySpriteAffineAnimTable, - .callback = SpriteCb_AbilityPopUp -}; - -#define ABILITY_POP_UP_POS_X_DIFF 64 +#define ABILITY_POP_UP_POS_X_DIFF (64 - 7) //Hide second sprite underneath to gain proper letter spacing #define ABILITY_POP_UP_POS_X_SLIDE 68 static const s16 sAbilityPopUpCoordsDoubles[MAX_BATTLERS_COUNT][2] = @@ -2877,24 +2836,27 @@ static const s16 sAbilityPopUpCoordsSingles[MAX_BATTLERS_COUNT][2] = {186, 57}, // opponent }; +#define POPUP_WINDOW_WIDTH 8 +#define MAX_POPUP_STRING_WIDTH (POPUP_WINDOW_WIDTH * 8) + static u8* AddTextPrinterAndCreateWindowOnAbilityPopUp(const u8 *str, u32 x, u32 y, u32 color1, u32 color2, u32 color3, u32 *windowId) { u8 color[3] = {color1, color2, color3}; struct WindowTemplate winTemplate = {0}; - winTemplate.width = 8; + winTemplate.width = POPUP_WINDOW_WIDTH; winTemplate.height = 2; *windowId = AddWindow(&winTemplate); FillWindowPixelBuffer(*windowId, PIXEL_FILL(color1)); - AddTextPrinterParameterized4(*windowId, 0, x, y, 0, 0, color, -1, str); + AddTextPrinterParameterized4(*windowId, FONT_SMALL, x, y, 0, 0, color, TEXT_SKIP_DRAW, str); return (u8 *)(GetWindowAttribute(*windowId, WINDOW_TILE_DATA)); } -static void TextIntoAbilityPopUp(void *dest, u8 *windowTileData, s32 arg2, bool32 arg3) +static void TextIntoAbilityPopUp(void *dest, u8 *windowTileData, s32 xTileAmount, bool32 arg3) { - CpuCopy32(windowTileData + 256, dest + 256, arg2 * 32); - if (arg2 > 0) + CpuCopy32(windowTileData + 256, dest + 256, xTileAmount * 32); + if (xTileAmount > 0) { do { @@ -2903,52 +2865,26 @@ static void TextIntoAbilityPopUp(void *dest, u8 *windowTileData, s32 arg2, bool3 else CpuCopy32(windowTileData + 20, dest + 20, 12); dest += 32, windowTileData += 32; - arg2--; - } while (arg2 != 0); + xTileAmount--; + } while (xTileAmount != 0); } } -#define MAX_CHARS_PRINTED 12 - -static void PrintOnAbilityPopUp(const u8 *str, u8 *spriteTileData1, u8 *spriteTileData2, u32 x1, u32 x2, u32 y, u32 color1, u32 color2, u32 color3, bool32 alignAbilityChars) +static void PrintOnAbilityPopUp(const u8 *str, u8 *spriteTileData1, u8 *spriteTileData2, u32 x1, u32 x2, u32 y, u32 color1, u32 color2, u32 color3) { - u32 windowId, i; + u32 windowId; u8 *windowTileData; - u8 text1[MAX_CHARS_PRINTED]; - u8 text2[MAX_CHARS_PRINTED]; + u16 width; - for (i = 0; i < MAX_CHARS_PRINTED; i++) - { - text1[i] = str[i]; - if (text1[i] == EOS) - break; - } - text1[i] = EOS; - - // Because there are two Windows, we need to align the strings, so that the first char in the second window starts right after the last char in the first window. - // Windows are 64 pixels in width. - if (alignAbilityChars && i == MAX_CHARS_PRINTED) - { - u32 width = GetStringWidth(FONT_SMALL, text1, 0); - if (x1 + width < 64) - x1 += 64 - (x1 + width); - } - - windowTileData = AddTextPrinterAndCreateWindowOnAbilityPopUp(text1, x1, y, color1, color2, color3, &windowId); + windowTileData = AddTextPrinterAndCreateWindowOnAbilityPopUp(str, x1, y, color1, color2, color3, &windowId); TextIntoAbilityPopUp(spriteTileData1, windowTileData, 8, (y == 0)); RemoveWindow(windowId); - if (i == MAX_CHARS_PRINTED) - { - for (i = 0; i < MAX_CHARS_PRINTED; i++) - { - text2[i] = str[MAX_CHARS_PRINTED + i]; - if (text2[i] == EOS) - break; - } - text2[i] = EOS; + width = GetStringWidth(FONT_SMALL, str, 0); - windowTileData = AddTextPrinterAndCreateWindowOnAbilityPopUp(text2, x2, y, color1, color2, color3, &windowId); + if (width > MAX_POPUP_STRING_WIDTH - 5) + { + windowTileData = AddTextPrinterAndCreateWindowOnAbilityPopUp(str, x2 - MAX_POPUP_STRING_WIDTH, y, color1, color2, color3, &windowId); TextIntoAbilityPopUp(spriteTileData2, windowTileData, 3, (y == 0)); RemoveWindow(windowId); } @@ -2960,48 +2896,51 @@ static void ClearAbilityName(u8 spriteId1, u8 spriteId2) PrintOnAbilityPopUp(sText_Space16, (void*)(OBJ_VRAM0) + (gSprites[spriteId1].oam.tileNum * 32) + 256, (void*)(OBJ_VRAM0) + (gSprites[spriteId2].oam.tileNum * 32) + 256, - 6, 1, + 5, 12, 4, - 7, 9, 1, - FALSE); + 7, 9, 1); } static void PrintBattlerOnAbilityPopUp(u8 battlerId, u8 spriteId1, u8 spriteId2) { int i; u8 lastChar; - u8* name; + u8* textPtr; u8 monName[POKEMON_NAME_LENGTH + 3] = {0}; - u8* nick = gBattleMons[battlerId].nickname; + u8* nick = gBattleMons[battlerId].nickname; // This needs to be updated for Illusion support for (i = 0; i < POKEMON_NAME_LENGTH; ++i) { monName[i] = nick[i]; - if (nick[i] == EOS || i + 1 == POKEMON_NAME_LENGTH) + + if (nick[i] == EOS || i + 1 == POKEMON_NAME_LENGTH) // End of string break; } - name = monName + i + 1; - if (*(name - 1) == EOS) - name--; + textPtr = monName + i + 1; - lastChar = *(name - 1); - name[0] = CHAR_SGL_QUOTE_RIGHT; // apostraphe - name++; + if (*(textPtr - 1) == EOS) + textPtr--; + + lastChar = *(textPtr - 1); + + //Make the string say "[NAME]'s" instead of "[NAME]" + textPtr[0] = CHAR_SGL_QUOTE_RIGHT; // apostraphe + textPtr++; if (lastChar != CHAR_S && lastChar != CHAR_s) { - name[0] = CHAR_s; - name++; + textPtr[0] = CHAR_s; + textPtr++; } - name[0] = EOS; + textPtr[0] = EOS; + PrintOnAbilityPopUp((const u8 *)monName, (void*)(OBJ_VRAM0) + (gSprites[spriteId1].oam.tileNum * 32), (void*)(OBJ_VRAM0) + (gSprites[spriteId2].oam.tileNum * 32), - 7, 0, + 5, 12, 0, - 2, 7, 1, - FALSE); + 2, 7, 1); } static void PrintAbilityOnAbilityPopUp(u32 ability, u8 spriteId1, u8 spriteId2) @@ -3009,10 +2948,9 @@ static void PrintAbilityOnAbilityPopUp(u32 ability, u8 spriteId1, u8 spriteId2) PrintOnAbilityPopUp(gAbilityNames[ability], (void*)(OBJ_VRAM0) + (gSprites[spriteId1].oam.tileNum * 32) + 256, (void*)(OBJ_VRAM0) + (gSprites[spriteId2].oam.tileNum * 32) + 256, - 6, 0, + 5, 12, 4, - 7, 9, 1, - TRUE); + 7, 9, 1); } #define PIXEL_COORDS_TO_OFFSET(x, y)( \ @@ -3080,11 +3018,11 @@ static const u16 sOverwrittenPixelsTable[][2] = {PIXEL_COORDS_TO_OFFSET(8, 45), 8}, {PIXEL_COORDS_TO_OFFSET(8, 46), 8}, {PIXEL_COORDS_TO_OFFSET(8, 47), 8}, - {PIXEL_COORDS_TO_OFFSET(8, 48), 8}, + //{PIXEL_COORDS_TO_OFFSET(8, 48), 8}, {PIXEL_COORDS_TO_OFFSET(16, 45), 8}, {PIXEL_COORDS_TO_OFFSET(16, 46), 8}, {PIXEL_COORDS_TO_OFFSET(16, 47), 8}, - {PIXEL_COORDS_TO_OFFSET(16, 48), 8}, + //{PIXEL_COORDS_TO_OFFSET(16, 48), 8}, }; static inline void CopyPixels(u8 *dest, const u8 *src, u32 pixelCount) @@ -3155,35 +3093,33 @@ void CreateAbilityPopUp(u8 battlerId, u32 ability, bool32 isDoubleBattle) if ((battlerPosition & BIT_SIDE) == B_SIDE_PLAYER) { - spriteId1 = CreateSprite(&sSpriteTemplate_AbilityPopUp1, - coords[battlerPosition][0] - ABILITY_POP_UP_POS_X_SLIDE, - coords[battlerPosition][1], 0); - spriteId2 = CreateSprite(&sSpriteTemplate_AbilityPopUp2, - coords[battlerPosition][0] - ABILITY_POP_UP_POS_X_SLIDE + ABILITY_POP_UP_POS_X_DIFF, - coords[battlerPosition][1], 0); - - gSprites[spriteId1].tOriginalX = coords[battlerPosition][0]; - gSprites[spriteId2].tOriginalX = coords[battlerPosition][0] + ABILITY_POP_UP_POS_X_DIFF; + spriteId1 = CreateSprite(&sSpriteTemplate_AbilityPopUp, + coords[battlerPosition][0] - ABILITY_POP_UP_POS_X_SLIDE, + coords[battlerPosition][1], 0); + spriteId2 = CreateSprite(&sSpriteTemplate_AbilityPopUp, + coords[battlerPosition][0] - ABILITY_POP_UP_POS_X_SLIDE + ABILITY_POP_UP_POS_X_DIFF, + coords[battlerPosition][1], 1); //Appears below gSprites[spriteId1].tRightToLeft = TRUE; gSprites[spriteId2].tRightToLeft = TRUE; } else { - spriteId1 = CreateSprite(&sSpriteTemplate_AbilityPopUp1, - coords[battlerPosition][0] + ABILITY_POP_UP_POS_X_SLIDE, - coords[battlerPosition][1], 0); - spriteId2 = CreateSprite(&sSpriteTemplate_AbilityPopUp2, - coords[battlerPosition][0] + ABILITY_POP_UP_POS_X_SLIDE + ABILITY_POP_UP_POS_X_DIFF, - coords[battlerPosition][1], 0); - - gSprites[spriteId1].tOriginalX = coords[battlerPosition][0]; - gSprites[spriteId2].tOriginalX = coords[battlerPosition][0] + ABILITY_POP_UP_POS_X_DIFF; + spriteId1 = CreateSprite(&sSpriteTemplate_AbilityPopUp, + coords[battlerPosition][0] + ABILITY_POP_UP_POS_X_SLIDE, + coords[battlerPosition][1], 0); + spriteId2 = CreateSprite(&sSpriteTemplate_AbilityPopUp, + coords[battlerPosition][0] + ABILITY_POP_UP_POS_X_SLIDE + ABILITY_POP_UP_POS_X_DIFF, + coords[battlerPosition][1], 1); //Appears below gSprites[spriteId1].tRightToLeft = FALSE; gSprites[spriteId2].tRightToLeft = FALSE; } + gSprites[spriteId1].tOriginalX = coords[battlerPosition][0]; + gSprites[spriteId2].tOriginalX = coords[battlerPosition][0] + ABILITY_POP_UP_POS_X_DIFF; + gSprites[spriteId2].oam.tileNum += (8 * 4); //Second half of pop up + gBattleStruct->abilityPopUpSpriteIds[battlerId][0] = spriteId1; gBattleStruct->abilityPopUpSpriteIds[battlerId][1] = spriteId2; From a7ce3974adf9eb3be3eca10e8fa9f4b22b6d10f0 Mon Sep 17 00:00:00 2001 From: Jaizu Date: Sat, 21 Jan 2023 19:25:02 +0100 Subject: [PATCH 63/69] Apply feedback --- src/battle_interface.c | 51 ++++++++++++++++++++---------------------- 1 file changed, 24 insertions(+), 27 deletions(-) diff --git a/src/battle_interface.c b/src/battle_interface.c index 9381c4c1e..06973f621 100644 --- a/src/battle_interface.c +++ b/src/battle_interface.c @@ -2801,11 +2801,11 @@ static const struct SpritePalette sSpritePalette_AbilityPopUp = static const struct OamData sOamData_AbilityPopUp = { - .affineMode = ST_OAM_AFFINE_OFF, - .objMode = ST_OAM_OBJ_NORMAL, - .shape = SPRITE_SHAPE(64x32), - .size = SPRITE_SIZE(64x32), - .priority = 0, + .affineMode = ST_OAM_AFFINE_OFF, + .objMode = ST_OAM_OBJ_NORMAL, + .shape = SPRITE_SHAPE(64x32), + .size = SPRITE_SIZE(64x32), + .priority = 0, }; static const struct SpriteTemplate sSpriteTemplate_AbilityPopUp = @@ -2819,7 +2819,7 @@ static const struct SpriteTemplate sSpriteTemplate_AbilityPopUp = .callback = SpriteCb_AbilityPopUp }; -#define ABILITY_POP_UP_POS_X_DIFF (64 - 7) //Hide second sprite underneath to gain proper letter spacing +#define ABILITY_POP_UP_POS_X_DIFF (64 - 7) // Hide second sprite underneath to gain proper letter spacing #define ABILITY_POP_UP_POS_X_SLIDE 68 static const s16 sAbilityPopUpCoordsDoubles[MAX_BATTLERS_COUNT][2] = @@ -2882,8 +2882,8 @@ static void PrintOnAbilityPopUp(const u8 *str, u8 *spriteTileData1, u8 *spriteTi width = GetStringWidth(FONT_SMALL, str, 0); - if (width > MAX_POPUP_STRING_WIDTH - 5) - { + if (width > MAX_POPUP_STRING_WIDTH - 5) + { windowTileData = AddTextPrinterAndCreateWindowOnAbilityPopUp(str, x2 - MAX_POPUP_STRING_WIDTH, y, color1, color2, color3, &windowId); TextIntoAbilityPopUp(spriteTileData2, windowTileData, 3, (y == 0)); RemoveWindow(windowId); @@ -2924,7 +2924,7 @@ static void PrintBattlerOnAbilityPopUp(u8 battlerId, u8 spriteId1, u8 spriteId2) lastChar = *(textPtr - 1); - //Make the string say "[NAME]'s" instead of "[NAME]" + // Make the string say "[NAME]'s" instead of "[NAME]" textPtr[0] = CHAR_SGL_QUOTE_RIGHT; // apostraphe textPtr++; if (lastChar != CHAR_S && lastChar != CHAR_s) @@ -3014,15 +3014,12 @@ static const u16 sOverwrittenPixelsTable[][2] = {PIXEL_COORDS_TO_OFFSET(0, 45), 8}, {PIXEL_COORDS_TO_OFFSET(0, 46), 8}, {PIXEL_COORDS_TO_OFFSET(0, 47), 8}, - //{PIXEL_COORDS_TO_OFFSET(0, 48), 8}, // cuts off the top of the 'G' in Neutralizing Gas {PIXEL_COORDS_TO_OFFSET(8, 45), 8}, {PIXEL_COORDS_TO_OFFSET(8, 46), 8}, {PIXEL_COORDS_TO_OFFSET(8, 47), 8}, - //{PIXEL_COORDS_TO_OFFSET(8, 48), 8}, {PIXEL_COORDS_TO_OFFSET(16, 45), 8}, {PIXEL_COORDS_TO_OFFSET(16, 46), 8}, {PIXEL_COORDS_TO_OFFSET(16, 47), 8}, - //{PIXEL_COORDS_TO_OFFSET(16, 48), 8}, }; static inline void CopyPixels(u8 *dest, const u8 *src, u32 pixelCount) @@ -3093,32 +3090,32 @@ void CreateAbilityPopUp(u8 battlerId, u32 ability, bool32 isDoubleBattle) if ((battlerPosition & BIT_SIDE) == B_SIDE_PLAYER) { - spriteId1 = CreateSprite(&sSpriteTemplate_AbilityPopUp, - coords[battlerPosition][0] - ABILITY_POP_UP_POS_X_SLIDE, - coords[battlerPosition][1], 0); - spriteId2 = CreateSprite(&sSpriteTemplate_AbilityPopUp, - coords[battlerPosition][0] - ABILITY_POP_UP_POS_X_SLIDE + ABILITY_POP_UP_POS_X_DIFF, - coords[battlerPosition][1], 1); //Appears below + spriteId1 = CreateSprite(&sSpriteTemplate_AbilityPopUp, + coords[battlerPosition][0] - ABILITY_POP_UP_POS_X_SLIDE, + coords[battlerPosition][1], 0); + spriteId2 = CreateSprite(&sSpriteTemplate_AbilityPopUp, + coords[battlerPosition][0] - ABILITY_POP_UP_POS_X_SLIDE + ABILITY_POP_UP_POS_X_DIFF, + coords[battlerPosition][1], 1); //Appears below gSprites[spriteId1].tRightToLeft = TRUE; gSprites[spriteId2].tRightToLeft = TRUE; } else { - spriteId1 = CreateSprite(&sSpriteTemplate_AbilityPopUp, - coords[battlerPosition][0] + ABILITY_POP_UP_POS_X_SLIDE, - coords[battlerPosition][1], 0); - spriteId2 = CreateSprite(&sSpriteTemplate_AbilityPopUp, - coords[battlerPosition][0] + ABILITY_POP_UP_POS_X_SLIDE + ABILITY_POP_UP_POS_X_DIFF, - coords[battlerPosition][1], 1); //Appears below + spriteId1 = CreateSprite(&sSpriteTemplate_AbilityPopUp, + coords[battlerPosition][0] + ABILITY_POP_UP_POS_X_SLIDE, + coords[battlerPosition][1], 0); + spriteId2 = CreateSprite(&sSpriteTemplate_AbilityPopUp, + coords[battlerPosition][0] + ABILITY_POP_UP_POS_X_SLIDE + ABILITY_POP_UP_POS_X_DIFF, + coords[battlerPosition][1], 1); //Appears below gSprites[spriteId1].tRightToLeft = FALSE; gSprites[spriteId2].tRightToLeft = FALSE; } - gSprites[spriteId1].tOriginalX = coords[battlerPosition][0]; - gSprites[spriteId2].tOriginalX = coords[battlerPosition][0] + ABILITY_POP_UP_POS_X_DIFF; - gSprites[spriteId2].oam.tileNum += (8 * 4); //Second half of pop up + gSprites[spriteId1].tOriginalX = coords[battlerPosition][0]; + gSprites[spriteId2].tOriginalX = coords[battlerPosition][0] + ABILITY_POP_UP_POS_X_DIFF; + gSprites[spriteId2].oam.tileNum += (8 * 4); //Second half of pop up gBattleStruct->abilityPopUpSpriteIds[battlerId][0] = spriteId1; gBattleStruct->abilityPopUpSpriteIds[battlerId][1] = spriteId2; From af07c451d063b67baf9540bcb81449df1bcdcef9 Mon Sep 17 00:00:00 2001 From: TeamAquasHideout Date: Mon, 23 Jan 2023 05:01:55 -0500 Subject: [PATCH 64/69] Fix Psycho Shift printfromtable Error --- src/battle_script_commands.c | 28 +++++++++++++++------------- 1 file changed, 15 insertions(+), 13 deletions(-) diff --git a/src/battle_script_commands.c b/src/battle_script_commands.c index 7cc2eaed6..42a1fd56e 100644 --- a/src/battle_script_commands.c +++ b/src/battle_script_commands.c @@ -9309,25 +9309,27 @@ static void Cmd_various(void) gBattlescriptCurrInstr += 4; return; case VARIOUS_PSYCHO_SHIFT: - { - if ((gBattleMons[gBattlerAttacker].status1 & STATUS1_PARALYSIS && !CanBeParalyzed(gBattlerTarget)) - || (gBattleMons[gBattlerAttacker].status1 & STATUS1_PSN_ANY && !CanBePoisoned(gBattlerAttacker, gBattlerTarget)) - || (gBattleMons[gBattlerAttacker].status1 & STATUS1_BURN && !CanBeBurned(gBattlerTarget)) - || (gBattleMons[gBattlerAttacker].status1 & STATUS1_SLEEP && !CanSleep(gBattlerTarget))) - { - // fails - gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 3); - } - else - { // Psycho shift works + if ((gBattleMons[gBattlerAttacker].status1 & STATUS1_POISON) && CanBePoisoned(gBattlerAttacker, gBattlerTarget)) + gBattleCommunication[MULTISTRING_CHOOSER] = 0; + else if ((gBattleMons[gBattlerAttacker].status1 & STATUS1_TOXIC_POISON) && CanBePoisoned(gBattlerAttacker, gBattlerTarget)) + gBattleCommunication[MULTISTRING_CHOOSER] = 1; + else if ((gBattleMons[gBattlerAttacker].status1 & STATUS1_BURN) && CanBeBurned(gBattlerTarget)) + gBattleCommunication[MULTISTRING_CHOOSER] = 2; + else if ((gBattleMons[gBattlerAttacker].status1 & STATUS1_PARALYSIS) && CanBeParalyzed(gBattlerTarget)) + gBattleCommunication[MULTISTRING_CHOOSER] = 3; + else if ((gBattleMons[gBattlerAttacker].status1 & STATUS1_SLEEP) && CanSleep(gBattlerTarget)) + gBattleCommunication[MULTISTRING_CHOOSER] = 4; + else + { + gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 3); + return; + } gBattleMons[gBattlerTarget].status1 = gBattleMons[gBattlerAttacker].status1 & STATUS1_ANY; gActiveBattler = gBattlerTarget; BtlController_EmitSetMonData(BUFFER_A, REQUEST_STATUS_BATTLE, 0, sizeof(gBattleMons[gActiveBattler].status1), &gBattleMons[gActiveBattler].status1); MarkBattlerForControllerExec(gActiveBattler); gBattlescriptCurrInstr += 7; - } - } return; case VARIOUS_CURE_STATUS: gBattleMons[gActiveBattler].status1 = 0; From 125e73dd07fc1dd8ccfaea6b9608e349b20724e9 Mon Sep 17 00:00:00 2001 From: ghoulslash Date: Mon, 23 Jan 2023 09:36:17 -0500 Subject: [PATCH 65/69] loaded dice fix --- src/battle_util.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/battle_util.c b/src/battle_util.c index 181f3615a..8adb32b33 100644 --- a/src/battle_util.c +++ b/src/battle_util.c @@ -3813,9 +3813,6 @@ u8 AtkCanceller_UnableToUseMove(void) SetRandomMultiHitCounter(); } - if (gMultiHitCounter < 4 && GetBattlerHoldEffect(gBattlerAttacker, TRUE) == HOLD_EFFECT_LOADED_DICE) - gMultiHitCounter = 4; - PREPARE_BYTE_NUMBER_BUFFER(gBattleScripting.multihitString, 1, 0) } else if (gBattleMoves[gCurrentMove].flags & FLAG_TWO_STRIKES) @@ -10886,4 +10883,10 @@ static void SetRandomMultiHitCounter() else gMultiHitCounter += 2; #endif + + if (gMultiHitCounter < 4 && GetBattlerHoldEffect(gBattlerAttacker, TRUE) == HOLD_EFFECT_LOADED_DICE) + { + // If roll 4 or 5 Loaded Dice doesn't do anything. Otherwise it rolls the number of hits as 5 minus a random integer from 0 to 1 inclusive. + gMultiHitCounter = 5 - Random() & 1; + } } From e93d22c0f16744295977c787a8997c0bc45f4b3f Mon Sep 17 00:00:00 2001 From: ghoulslash Date: Mon, 23 Jan 2023 09:37:05 -0500 Subject: [PATCH 66/69] optimize IsMoveMakingContact --- src/battle_util.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/battle_util.c b/src/battle_util.c index 8adb32b33..4c6e5f707 100644 --- a/src/battle_util.c +++ b/src/battle_util.c @@ -8200,6 +8200,8 @@ u32 GetBattlerHoldEffectParam(u8 battlerId) bool32 IsMoveMakingContact(u16 move, u8 battlerAtk) { + u16 atkHoldEffect = GetBattlerHoldEffect(battlerAtk, TRUE); + if (!(gBattleMoves[move].flags & FLAG_MAKES_CONTACT)) { if (gBattleMoves[move].effect == EFFECT_SHELL_SIDE_ARM && gBattleStruct->swapDamageCategory) @@ -8207,12 +8209,11 @@ bool32 IsMoveMakingContact(u16 move, u8 battlerAtk) else return FALSE; } - else if (GetBattlerAbility(battlerAtk) == ABILITY_LONG_REACH - || GetBattlerHoldEffect(battlerAtk, TRUE) == HOLD_EFFECT_PUNCHING_GLOVE) + else if (GetBattlerAbility(battlerAtk) == ABILITY_LONG_REACH || atkHoldEffect == HOLD_EFFECT_PUNCHING_GLOVE) { return FALSE; } - else if (GetBattlerHoldEffect(battlerAtk, TRUE) == HOLD_EFFECT_PROTECTIVE_PADS) + else if (atkHoldEffect == HOLD_EFFECT_PROTECTIVE_PADS) { return FALSE; } From 8cc923ebcc5ba86fc8763eff3531fd831538b043 Mon Sep 17 00:00:00 2001 From: ghoulslash Date: Mon, 23 Jan 2023 09:42:04 -0500 Subject: [PATCH 67/69] parentheses around random & 1 --- src/battle_util.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/battle_util.c b/src/battle_util.c index 4c6e5f707..23dd320c6 100644 --- a/src/battle_util.c +++ b/src/battle_util.c @@ -10888,6 +10888,6 @@ static void SetRandomMultiHitCounter() if (gMultiHitCounter < 4 && GetBattlerHoldEffect(gBattlerAttacker, TRUE) == HOLD_EFFECT_LOADED_DICE) { // If roll 4 or 5 Loaded Dice doesn't do anything. Otherwise it rolls the number of hits as 5 minus a random integer from 0 to 1 inclusive. - gMultiHitCounter = 5 - Random() & 1; + gMultiHitCounter = 5 - (Random() & 1); } } From 321634ed3baa8843ae102a7108d3d732c1308347 Mon Sep 17 00:00:00 2001 From: ghoulslash <41651341+ghoulslash@users.noreply.github.com> Date: Mon, 23 Jan 2023 14:42:47 -0500 Subject: [PATCH 68/69] Silk Trap Effect (#2512) * add silk trap effect, analog of obstruct Co-authored-by: ghoulslash Co-authored-by: Eduardo Quezada D'Ottone --- include/battle.h | 4 +++- src/battle_main.c | 1 + src/battle_script_commands.c | 17 +++++++++++++++++ src/battle_util.c | 2 +- src/data/battle_moves.h | 2 +- 5 files changed, 23 insertions(+), 3 deletions(-) diff --git a/include/battle.h b/include/battle.h index 9a745b4f6..94119f9b4 100644 --- a/include/battle.h +++ b/include/battle.h @@ -148,6 +148,7 @@ struct ProtectStruct u16 quickDraw:1; u16 beakBlastCharge:1; u16 quash:1; + u16 silkTrapped:1; u32 physicalDmg; u32 specialDmg; u8 physicalBattlerId; @@ -702,7 +703,8 @@ struct BattleStruct || gProtectStructs[battlerId].spikyShielded \ || gProtectStructs[battlerId].kingsShielded \ || gProtectStructs[battlerId].banefulBunkered \ - || gProtectStructs[battlerId].obstructed) \ + || gProtectStructs[battlerId].obstructed \ + || gProtectStructs[battlerId].silkTrapped) #define GET_STAT_BUFF_ID(n)((n & 7)) // first three bits 0x1, 0x2, 0x4 #define GET_STAT_BUFF_VALUE_WITH_SIGN(n)((n & 0xF8)) diff --git a/src/battle_main.c b/src/battle_main.c index 3393c8d9b..c29775082 100644 --- a/src/battle_main.c +++ b/src/battle_main.c @@ -3200,6 +3200,7 @@ void FaintClearSetData(void) gProtectStructs[gActiveBattler].banefulBunkered = FALSE; gProtectStructs[gActiveBattler].quash = FALSE; gProtectStructs[gActiveBattler].obstructed = FALSE; + gProtectStructs[gActiveBattler].silkTrapped = FALSE; gProtectStructs[gActiveBattler].endured = FALSE; gProtectStructs[gActiveBattler].noValidMoves = FALSE; gProtectStructs[gActiveBattler].helpingHand = FALSE; diff --git a/src/battle_script_commands.c b/src/battle_script_commands.c index 2e27f5fdb..4b12f52ec 100644 --- a/src/battle_script_commands.c +++ b/src/battle_script_commands.c @@ -3506,6 +3506,7 @@ void SetMoveEffect(bool32 primary, u32 certain) gProtectStructs[gBattlerTarget].kingsShielded = FALSE; gProtectStructs[gBattlerTarget].banefulBunkered = FALSE; gProtectStructs[gBattlerTarget].obstructed = FALSE; + gProtectStructs[gBattlerTarget].silkTrapped = FALSE; BattleScriptPush(gBattlescriptCurrInstr + 1); if (gCurrentMove == MOVE_HYPERSPACE_FURY) gBattlescriptCurrInstr = BattleScript_HyperspaceFuryRemoveProtect; @@ -5230,6 +5231,17 @@ static void Cmd_moveend(void) gBattlescriptCurrInstr = BattleScript_KingsShieldEffect; effect = 1; } + else if (gProtectStructs[gBattlerTarget].silkTrapped) + { + gProtectStructs[gBattlerAttacker].touchedProtectLike = FALSE; + i = gBattlerAttacker; + gBattlerAttacker = gBattlerTarget; + gBattlerTarget = i; // gBattlerTarget and gBattlerAttacker are swapped in order to activate Defiant, if applicable + gBattleScripting.moveEffect = MOVE_EFFECT_SPD_MINUS_1; + BattleScriptPushCursor(); + gBattlescriptCurrInstr = BattleScript_KingsShieldEffect; + effect = 1; + } // Not strictly a protect effect, but works the same way else if (gProtectStructs[gBattlerTarget].beakBlastCharge && CanBeBurned(gBattlerAttacker) @@ -10305,6 +10317,11 @@ static void Cmd_setprotectlike(void) gProtectStructs[gBattlerAttacker].obstructed = TRUE; gBattleCommunication[MULTISTRING_CHOOSER] = 0; } + else if (gCurrentMove == MOVE_SILK_TRAP) + { + gProtectStructs[gBattlerAttacker].silkTrapped = TRUE; + gBattleCommunication[MULTISTRING_CHOOSER] = 0; + } gDisableStructs[gBattlerAttacker].protectUses++; fail = FALSE; diff --git a/src/battle_util.c b/src/battle_util.c index 23dd320c6..a4c6dbedc 100644 --- a/src/battle_util.c +++ b/src/battle_util.c @@ -8255,7 +8255,7 @@ bool32 IsBattlerProtected(u8 battlerId, u16 move) return TRUE; else if (gProtectStructs[battlerId].banefulBunkered) return TRUE; - else if (gProtectStructs[battlerId].obstructed && !IS_MOVE_STATUS(move)) + else if ((gProtectStructs[battlerId].obstructed || gProtectStructs[battlerId].silkTrapped) && !IS_MOVE_STATUS(move)) return TRUE; else if (gProtectStructs[battlerId].spikyShielded) return TRUE; diff --git a/src/data/battle_moves.h b/src/data/battle_moves.h index 41779a0c5..67a65c638 100644 --- a/src/data/battle_moves.h +++ b/src/data/battle_moves.h @@ -13721,7 +13721,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_Z] = [MOVE_SILK_TRAP] = { - .effect = EFFECT_PLACEHOLDER, // EFFECT_PROTECT with extra checks + .effect = EFFECT_PROTECT, .power = 0, .type = TYPE_BUG, .accuracy = 0, From f9bb0bfb29bfeea8cf8dc391f52d8945a4012260 Mon Sep 17 00:00:00 2001 From: walkingeyerobot Date: Wed, 25 Jan 2023 15:15:58 -0500 Subject: [PATCH 69/69] better handle throwing balls in a double wild battle (#2587) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Handle throwing balls in a double wild battle where the player has only a single Pokémon. --- src/battle_main.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/battle_main.c b/src/battle_main.c index c29775082..7ec8ad285 100644 --- a/src/battle_main.c +++ b/src/battle_main.c @@ -4005,7 +4005,8 @@ static void HandleTurnActionSelectionState(void) } else if (WILD_DOUBLE_BATTLE && position == B_POSITION_PLAYER_RIGHT - && (gBattleStruct->throwingPokeBall || gChosenActionByBattler[GetBattlerAtPosition(B_POSITION_PLAYER_LEFT)] == B_ACTION_RUN)) + && (gBattleStruct->throwingPokeBall || gChosenActionByBattler[GetBattlerAtPosition(B_POSITION_PLAYER_LEFT)] == B_ACTION_RUN) + && gChosenActionByBattler[GetBattlerAtPosition(B_POSITION_PLAYER_LEFT)] != B_ACTION_NOTHING_FAINTED) { gBattleStruct->throwingPokeBall = FALSE; gChosenActionByBattler[gActiveBattler] = B_ACTION_NOTHING_FAINTED; // Not fainted, but it cannot move, because of the throwing ball. @@ -4419,10 +4420,13 @@ static void HandleTurnActionSelectionState(void) { RecordedBattle_CheckMovesetChanges(B_RECORD_MODE_RECORDING); - if (WILD_DOUBLE_BATTLE && gBattleStruct->throwingPokeBall) { + if (WILD_DOUBLE_BATTLE + && gBattleStruct->throwingPokeBall + && gChosenActionByBattler[GetBattlerAtPosition(B_POSITION_PLAYER_RIGHT)] != B_ACTION_NOTHING_FAINTED) + { // if we choose to throw a ball with our second mon, skip the action of the first // (if we have chosen throw ball with first, second's is already skipped) - gChosenActionByBattler[B_POSITION_PLAYER_LEFT] = B_ACTION_NOTHING_FAINTED; + gChosenActionByBattler[GetBattlerAtPosition(B_POSITION_PLAYER_LEFT)] = B_ACTION_NOTHING_FAINTED; } gBattleMainFunc = SetActionsAndBattlersTurnOrder;