Merge branch 'master' of github.com:pret/pokeemerald

This commit is contained in:
Diegoisawesome
2018-09-18 10:03:57 -05:00
271 changed files with 2278 additions and 1764 deletions

View File

@@ -1552,10 +1552,10 @@ static void OpponentHandleChooseMove(void)
switch (chosenMoveId)
{
case 5:
case AI_CHOICE_WATCH:
BtlController_EmitTwoReturnValues(1, B_ACTION_SAFARI_WATCH_CAREFULLY, 0);
break;
case 4:
case AI_CHOICE_FLEE:
BtlController_EmitTwoReturnValues(1, B_ACTION_RUN, 0);
break;
case 6:

View File

@@ -1,247 +1,242 @@
#ifndef POKEEMERALD_DATA_TEXT_ABILITIES_H
#define POKEEMERALD_DATA_TEXT_ABILITIES_H
static const u8 gNoneAbilityDescription[] = _("No special ability.");
static const u8 gStenchAbilityDescription[] = _("Helps repel wild POKéMON.");
static const u8 gDrizzleAbilityDescription[] = _("Summons rain in battle.");
static const u8 gSpeedBoostAbilityDescription[] = _("Gradually boosts SPEED.");
static const u8 gBattleArmorAbilityDescription[] = _("Blocks critical hits.");
static const u8 gSturdyAbilityDescription[] = _("Negates 1-hit KO attacks.");
static const u8 gDampAbilityDescription[] = _("Prevents self-destruction.");
static const u8 gLimberAbilityDescription[] = _("Prevents paralysis.");
static const u8 gSandVeilAbilityDescription[] = _("Ups evasion in a sandstorm.");
static const u8 gStaticAbilityDescription[] = _("Paralyzes on contact.");
static const u8 gVoltAbsorbAbilityDescription[] = _("Turns electricity into HP.");
static const u8 gWaterAbsorbAbilityDescription[] = _("Changes water into HP.");
static const u8 gObliviousAbilityDescription[] = _("Prevents attraction.");
static const u8 gCloudNineAbilityDescription[] = _("Negates weather effects.");
static const u8 gCompoundEyesAbilityDescription[] = _("Raises accuracy.");
static const u8 gInsomniaAbilityDescription[] = _("Prevents sleep.");
static const u8 gColorChangeAbilityDescription[] = _("Changes type to foes move.");
static const u8 gImmunityAbilityDescription[] = _("Prevents poisoning.");
static const u8 gFlashFireAbilityDescription[] = _("Powers up if hit by fire.");
static const u8 gShieldDustAbilityDescription[] = _("Prevents added effects.");
static const u8 gOwnTempoAbilityDescription[] = _("Prevents confusion.");
static const u8 gSuctionCupsAbilityDescription[] = _("Firmly anchors the body.");
static const u8 gIntimidateAbilityDescription[] = _("Lowers the foes ATTACK.");
static const u8 gShadowTagAbilityDescription[] = _("Prevents the foes escape.");
static const u8 gRoughSkinAbilityDescription[] = _("Hurts to touch.");
static const u8 gWonderGuardAbilityDescription[] = _("“Super effective” hits.");
static const u8 gLevitateAbilityDescription[] = _("Not hit by GROUND attacks.");
static const u8 gEffectSporeAbilityDescription[] = _("Leaves spores on contact.");
static const u8 gSynchronizeAbilityDescription[] = _("Passes on status problems.");
static const u8 gClearBodyAbilityDescription[] = _("Prevents ability reduction.");
static const u8 gNaturalCureAbilityDescription[] = _("Heals upon switching out.");
static const u8 gLightningRodAbilityDescription[] = _("Draws electrical moves.");
static const u8 gSereneGraceAbilityDescription[] = _("Promotes added effects.");
static const u8 gSwiftSwimAbilityDescription[] = _("Raises SPEED in rain.");
static const u8 gChlorophyllAbilityDescription[] = _("Raises SPEED in sunshine.");
static const u8 gIlluminateAbilityDescription[] = _("Encounter rate increases.");
static const u8 gTraceAbilityDescription[] = _("Copies special ability.");
static const u8 gHugePowerAbilityDescription[] = _("Raises ATTACK.");
static const u8 gPoisonPointAbilityDescription[] = _("Poisons foe on contact.");
static const u8 gInnerFocusAbilityDescription[] = _("Prevents flinching.");
static const u8 gMagmaArmorAbilityDescription[] = _("Prevents freezing.");
static const u8 gWaterVeilAbilityDescription[] = _("Prevents burns.");
static const u8 gMagnetPullAbilityDescription[] = _("Traps STEEL-type POKéMON.");
static const u8 gSoundproofAbilityDescription[] = _("Avoids sound-based moves.");
static const u8 gRainDishAbilityDescription[] = _("Slight HP recovery in rain.");
static const u8 gSandStreamAbilityDescription[] = _("Summons a sandstorm.");
static const u8 gPressureAbilityDescription[] = _("Raises foes PP usage.");
static const u8 gThickFatAbilityDescription[] = _("Heat-and-cold protection.");
static const u8 gEarlyBirdAbilityDescription[] = _("Awakens quickly from sleep.");
static const u8 gFlameBodyAbilityDescription[] = _("Burns the foe on contact.");
static const u8 gRunAwayAbilityDescription[] = _("Makes escaping easier.");
static const u8 gKeenEyeAbilityDescription[] = _("Prevents loss of accuracy.");
static const u8 gHyperCutterAbilityDescription[] = _("Prevents ATTACK reduction.");
static const u8 gPickupAbilityDescription[] = _("May pick up items.");
static const u8 gTruantAbilityDescription[] = _("Moves only every two turns.");
static const u8 gHustleAbilityDescription[] = _("Trades accuracy for power.");
static const u8 gCuteCharmAbilityDescription[] = _("Infatuates on contact.");
static const u8 gPlusAbilityDescription[] = _("Powers up with MINUS.");
static const u8 gMinusAbilityDescription[] = _("Powers up with PLUS.");
static const u8 gForecastAbilityDescription[] = _("Changes with the weather.");
static const u8 gStickyHoldAbilityDescription[] = _("Prevents item theft.");
static const u8 gShedSkinAbilityDescription[] = _("Heals the body by shedding.");
static const u8 gGutsAbilityDescription[] = _("Ups ATTACK if suffering.");
static const u8 gMarvelScaleAbilityDescription[] = _("Ups DEFENSE if suffering.");
static const u8 gLiquidOozeAbilityDescription[] = _("Draining causes injury.");
static const u8 gOvergrowAbilityDescription[] = _("Ups GRASS moves in a pinch.");
static const u8 gBlazeAbilityDescription[] = _("Ups FIRE moves in a pinch.");
static const u8 gTorrentAbilityDescription[] = _("Ups WATER moves in a pinch.");
static const u8 gSwarmAbilityDescription[] = _("Ups BUG moves in a pinch.");
static const u8 gRockHeadAbilityDescription[] = _("Prevents recoil damage.");
static const u8 gDroughtAbilityDescription[] = _("Summons sunlight in battle.");
static const u8 gArenaTrapAbilityDescription[] = _("Prevents fleeing.");
static const u8 gVitalSpiritAbilityDescription[] = _("Prevents sleep.");
static const u8 gWhiteSmokeAbilityDescription[] = _("Prevents ability reduction.");
static const u8 gPurePowerAbilityDescription[] = _("Raises ATTACK.");
static const u8 gShellArmorAbilityDescription[] = _("Blocks critical hits.");
static const u8 gCacophonyAbilityDescription[] = _("Avoids sound-based moves.");
static const u8 gAirLockAbilityDescription[] = _("Negates weather effects.");
static const u8 sNoneDescription[] = _("No special ability.");
static const u8 sStenchDescription[] = _("Helps repel wild POKéMON.");
static const u8 sDrizzleDescription[] = _("Summons rain in battle.");
static const u8 sSpeedBoostDescription[] = _("Gradually boosts SPEED.");
static const u8 sBattleArmorDescription[] = _("Blocks critical hits.");
static const u8 sSturdyDescription[] = _("Negates 1-hit KO attacks.");
static const u8 sDampDescription[] = _("Prevents self-destruction.");
static const u8 sLimberDescription[] = _("Prevents paralysis.");
static const u8 sSandVeilDescription[] = _("Ups evasion in a sandstorm.");
static const u8 sStaticDescription[] = _("Paralyzes on contact.");
static const u8 sVoltAbsorbDescription[] = _("Turns electricity into HP.");
static const u8 sWaterAbsorbDescription[] = _("Changes water into HP.");
static const u8 sObliviousDescription[] = _("Prevents attraction.");
static const u8 sCloudNineDescription[] = _("Negates weather effects.");
static const u8 sCompoundEyesDescription[] = _("Raises accuracy.");
static const u8 sInsomniaDescription[] = _("Prevents sleep.");
static const u8 sColorChangeDescription[] = _("Changes type to foes move.");
static const u8 sImmunityDescription[] = _("Prevents poisoning.");
static const u8 sFlashFireDescription[] = _("Powers up if hit by fire.");
static const u8 sShieldDustDescription[] = _("Prevents added effects.");
static const u8 sOwnTempoDescription[] = _("Prevents confusion.");
static const u8 sSuctionCupsDescription[] = _("Firmly anchors the body.");
static const u8 sIntimidateDescription[] = _("Lowers the foes ATTACK.");
static const u8 sShadowTagDescription[] = _("Prevents the foes escape.");
static const u8 sRoughSkinDescription[] = _("Hurts to touch.");
static const u8 sWonderGuardDescription[] = _("“Super effective” hits.");
static const u8 sLevitateDescription[] = _("Not hit by GROUND attacks.");
static const u8 sEffectSporeDescription[] = _("Leaves spores on contact.");
static const u8 sSynchronizeDescription[] = _("Passes on status problems.");
static const u8 sClearBodyDescription[] = _("Prevents ability reduction.");
static const u8 sNaturalCureDescription[] = _("Heals upon switching out.");
static const u8 sLightningRodDescription[] = _("Draws electrical moves.");
static const u8 sSereneGraceDescription[] = _("Promotes added effects.");
static const u8 sSwiftSwimDescription[] = _("Raises SPEED in rain.");
static const u8 sChlorophyllDescription[] = _("Raises SPEED in sunshine.");
static const u8 sIlluminateDescription[] = _("Encounter rate increases.");
static const u8 sTraceDescription[] = _("Copies special ability.");
static const u8 sHugePowerDescription[] = _("Raises ATTACK.");
static const u8 sPoisonPointDescription[] = _("Poisons foe on contact.");
static const u8 sInnerFocusDescription[] = _("Prevents flinching.");
static const u8 sMagmaArmorDescription[] = _("Prevents freezing.");
static const u8 sWaterVeilDescription[] = _("Prevents burns.");
static const u8 sMagnetPullDescription[] = _("Traps STEEL-type POKéMON.");
static const u8 sSoundproofDescription[] = _("Avoids sound-based moves.");
static const u8 sRainDishDescription[] = _("Slight HP recovery in rain.");
static const u8 sSandStreamDescription[] = _("Summons a sandstorm.");
static const u8 sPressureDescription[] = _("Raises foes PP usage.");
static const u8 sThickFatDescription[] = _("Heat-and-cold protection.");
static const u8 sEarlyBirdDescription[] = _("Awakens quickly from sleep.");
static const u8 sFlameBodyDescription[] = _("Burns the foe on contact.");
static const u8 sRunAwayDescription[] = _("Makes escaping easier.");
static const u8 sKeenEyeDescription[] = _("Prevents loss of accuracy.");
static const u8 sHyperCutterDescription[] = _("Prevents ATTACK reduction.");
static const u8 sPickupDescription[] = _("May pick up items.");
static const u8 sTruantDescription[] = _("Moves only every two turns.");
static const u8 sHustleDescription[] = _("Trades accuracy for power.");
static const u8 sCuteCharmDescription[] = _("Infatuates on contact.");
static const u8 sPlusDescription[] = _("Powers up with MINUS.");
static const u8 sMinusDescription[] = _("Powers up with PLUS.");
static const u8 sForecastDescription[] = _("Changes with the weather.");
static const u8 sStickyHoldDescription[] = _("Prevents item theft.");
static const u8 sShedSkinDescription[] = _("Heals the body by shedding.");
static const u8 sGutsDescription[] = _("Ups ATTACK if suffering.");
static const u8 sMarvelScaleDescription[] = _("Ups DEFENSE if suffering.");
static const u8 sLiquidOozeDescription[] = _("Draining causes injury.");
static const u8 sOvergrowDescription[] = _("Ups GRASS moves in a pinch.");
static const u8 sBlazeDescription[] = _("Ups FIRE moves in a pinch.");
static const u8 sTorrentDescription[] = _("Ups WATER moves in a pinch.");
static const u8 sSwarmDescription[] = _("Ups BUG moves in a pinch.");
static const u8 sRockHeadDescription[] = _("Prevents recoil damage.");
static const u8 sDroughtDescription[] = _("Summons sunlight in battle.");
static const u8 sArenaTrapDescription[] = _("Prevents fleeing.");
static const u8 sVitalSpiritDescription[] = _("Prevents sleep.");
static const u8 sWhiteSmokeDescription[] = _("Prevents ability reduction.");
static const u8 sPurePowerDescription[] = _("Raises ATTACK.");
static const u8 sShellArmorDescription[] = _("Blocks critical hits.");
static const u8 sCacophonyDescription[] = _("Avoids sound-based moves.");
static const u8 sAirLockDescription[] = _("Negates weather effects.");
const u8 gAbilityNames[ABILITIES_COUNT][ABILITY_NAME_LENGTH + 1] =
{
_("-------"),
_("STENCH"),
_("DRIZZLE"),
_("SPEED BOOST"),
_("BATTLE ARMOR"),
_("STURDY"),
_("DAMP"),
_("LIMBER"),
_("SAND VEIL"),
_("STATIC"),
_("VOLT ABSORB"),
_("WATER ABSORB"),
_("OBLIVIOUS"),
_("CLOUD NINE"),
_("COMPOUNDEYES"),
_("INSOMNIA"),
_("COLOR CHANGE"),
_("IMMUNITY"),
_("FLASH FIRE"),
_("SHIELD DUST"),
_("OWN TEMPO"),
_("SUCTION CUPS"),
_("INTIMIDATE"),
_("SHADOW TAG"),
_("ROUGH SKIN"),
_("WONDER GUARD"),
_("LEVITATE"),
_("EFFECT SPORE"),
_("SYNCHRONIZE"),
_("CLEAR BODY"),
_("NATURAL CURE"),
_("LIGHTNINGROD"),
_("SERENE GRACE"),
_("SWIFT SWIM"),
_("CHLOROPHYLL"),
_("ILLUMINATE"),
_("TRACE"),
_("HUGE POWER"),
_("POISON POINT"),
_("INNER FOCUS"),
_("MAGMA ARMOR"),
_("WATER VEIL"),
_("MAGNET PULL"),
_("SOUNDPROOF"),
_("RAIN DISH"),
_("SAND STREAM"),
_("PRESSURE"),
_("THICK FAT"),
_("EARLY BIRD"),
_("FLAME BODY"),
_("RUN AWAY"),
_("KEEN EYE"),
_("HYPER CUTTER"),
_("PICKUP"),
_("TRUANT"),
_("HUSTLE"),
_("CUTE CHARM"),
_("PLUS"),
_("MINUS"),
_("FORECAST"),
_("STICKY HOLD"),
_("SHED SKIN"),
_("GUTS"),
_("MARVEL SCALE"),
_("LIQUID OOZE"),
_("OVERGROW"),
_("BLAZE"),
_("TORRENT"),
_("SWARM"),
_("ROCK HEAD"),
_("DROUGHT"),
_("ARENA TRAP"),
_("VITAL SPIRIT"),
_("WHITE SMOKE"),
_("PURE POWER"),
_("SHELL ARMOR"),
_("CACOPHONY"),
_("AIR LOCK"),
[ABILITY_NONE] = _("-------"),
[ABILITY_STENCH] = _("STENCH"),
[ABILITY_DRIZZLE] = _("DRIZZLE"),
[ABILITY_SPEED_BOOST] = _("SPEED BOOST"),
[ABILITY_BATTLE_ARMOR] = _("BATTLE ARMOR"),
[ABILITY_STURDY] = _("STURDY"),
[ABILITY_DAMP] = _("DAMP"),
[ABILITY_LIMBER] = _("LIMBER"),
[ABILITY_SAND_VEIL] = _("SAND VEIL"),
[ABILITY_STATIC] = _("STATIC"),
[ABILITY_VOLT_ABSORB] = _("VOLT ABSORB"),
[ABILITY_WATER_ABSORB] = _("WATER ABSORB"),
[ABILITY_OBLIVIOUS] = _("OBLIVIOUS"),
[ABILITY_CLOUD_NINE] = _("CLOUD NINE"),
[ABILITY_COMPOUND_EYES] = _("COMPOUNDEYES"),
[ABILITY_INSOMNIA] = _("INSOMNIA"),
[ABILITY_COLOR_CHANGE] = _("COLOR CHANGE"),
[ABILITY_IMMUNITY] = _("IMMUNITY"),
[ABILITY_FLASH_FIRE] = _("FLASH FIRE"),
[ABILITY_SHIELD_DUST] = _("SHIELD DUST"),
[ABILITY_OWN_TEMPO] = _("OWN TEMPO"),
[ABILITY_SUCTION_CUPS] = _("SUCTION CUPS"),
[ABILITY_INTIMIDATE] = _("INTIMIDATE"),
[ABILITY_SHADOW_TAG] = _("SHADOW TAG"),
[ABILITY_ROUGH_SKIN] = _("ROUGH SKIN"),
[ABILITY_WONDER_GUARD] = _("WONDER GUARD"),
[ABILITY_LEVITATE] = _("LEVITATE"),
[ABILITY_EFFECT_SPORE] = _("EFFECT SPORE"),
[ABILITY_SYNCHRONIZE] = _("SYNCHRONIZE"),
[ABILITY_CLEAR_BODY] = _("CLEAR BODY"),
[ABILITY_NATURAL_CURE] = _("NATURAL CURE"),
[ABILITY_LIGHTNING_ROD] = _("LIGHTNINGROD"),
[ABILITY_SERENE_GRACE] = _("SERENE GRACE"),
[ABILITY_SWIFT_SWIM] = _("SWIFT SWIM"),
[ABILITY_CHLOROPHYLL] = _("CHLOROPHYLL"),
[ABILITY_ILLUMINATE] = _("ILLUMINATE"),
[ABILITY_TRACE] = _("TRACE"),
[ABILITY_HUGE_POWER] = _("HUGE POWER"),
[ABILITY_POISON_POINT] = _("POISON POINT"),
[ABILITY_INNER_FOCUS] = _("INNER FOCUS"),
[ABILITY_MAGMA_ARMOR] = _("MAGMA ARMOR"),
[ABILITY_WATER_VEIL] = _("WATER VEIL"),
[ABILITY_MAGNET_PULL] = _("MAGNET PULL"),
[ABILITY_SOUNDPROOF] = _("SOUNDPROOF"),
[ABILITY_RAIN_DISH] = _("RAIN DISH"),
[ABILITY_SAND_STREAM] = _("SAND STREAM"),
[ABILITY_PRESSURE] = _("PRESSURE"),
[ABILITY_THICK_FAT] = _("THICK FAT"),
[ABILITY_EARLY_BIRD] = _("EARLY BIRD"),
[ABILITY_FLAME_BODY] = _("FLAME BODY"),
[ABILITY_RUN_AWAY] = _("RUN AWAY"),
[ABILITY_KEEN_EYE] = _("KEEN EYE"),
[ABILITY_HYPER_CUTTER] = _("HYPER CUTTER"),
[ABILITY_PICKUP] = _("PICKUP"),
[ABILITY_TRUANT] = _("TRUANT"),
[ABILITY_HUSTLE] = _("HUSTLE"),
[ABILITY_CUTE_CHARM] = _("CUTE CHARM"),
[ABILITY_PLUS] = _("PLUS"),
[ABILITY_MINUS] = _("MINUS"),
[ABILITY_FORECAST] = _("FORECAST"),
[ABILITY_STICKY_HOLD] = _("STICKY HOLD"),
[ABILITY_SHED_SKIN] = _("SHED SKIN"),
[ABILITY_GUTS] = _("GUTS"),
[ABILITY_MARVEL_SCALE] = _("MARVEL SCALE"),
[ABILITY_LIQUID_OOZE] = _("LIQUID OOZE"),
[ABILITY_OVERGROW] = _("OVERGROW"),
[ABILITY_BLAZE] = _("BLAZE"),
[ABILITY_TORRENT] = _("TORRENT"),
[ABILITY_SWARM] = _("SWARM"),
[ABILITY_ROCK_HEAD] = _("ROCK HEAD"),
[ABILITY_DROUGHT] = _("DROUGHT"),
[ABILITY_ARENA_TRAP] = _("ARENA TRAP"),
[ABILITY_VITAL_SPIRIT] = _("VITAL SPIRIT"),
[ABILITY_WHITE_SMOKE] = _("WHITE SMOKE"),
[ABILITY_PURE_POWER] = _("PURE POWER"),
[ABILITY_SHELL_ARMOR] = _("SHELL ARMOR"),
[ABILITY_CACOPHONY] = _("CACOPHONY"),
[ABILITY_AIR_LOCK] = _("AIR LOCK"),
};
const u8 *const gAbilityDescriptionPointers[ABILITIES_COUNT] =
{
gNoneAbilityDescription,
gStenchAbilityDescription,
gDrizzleAbilityDescription,
gSpeedBoostAbilityDescription,
gBattleArmorAbilityDescription,
gSturdyAbilityDescription,
gDampAbilityDescription,
gLimberAbilityDescription,
gSandVeilAbilityDescription,
gStaticAbilityDescription,
gVoltAbsorbAbilityDescription,
gWaterAbsorbAbilityDescription,
gObliviousAbilityDescription,
gCloudNineAbilityDescription,
gCompoundEyesAbilityDescription,
gInsomniaAbilityDescription,
gColorChangeAbilityDescription,
gImmunityAbilityDescription,
gFlashFireAbilityDescription,
gShieldDustAbilityDescription,
gOwnTempoAbilityDescription,
gSuctionCupsAbilityDescription,
gIntimidateAbilityDescription,
gShadowTagAbilityDescription,
gRoughSkinAbilityDescription,
gWonderGuardAbilityDescription,
gLevitateAbilityDescription,
gEffectSporeAbilityDescription,
gSynchronizeAbilityDescription,
gClearBodyAbilityDescription,
gNaturalCureAbilityDescription,
gLightningRodAbilityDescription,
gSereneGraceAbilityDescription,
gSwiftSwimAbilityDescription,
gChlorophyllAbilityDescription,
gIlluminateAbilityDescription,
gTraceAbilityDescription,
gHugePowerAbilityDescription,
gPoisonPointAbilityDescription,
gInnerFocusAbilityDescription,
gMagmaArmorAbilityDescription,
gWaterVeilAbilityDescription,
gMagnetPullAbilityDescription,
gSoundproofAbilityDescription,
gRainDishAbilityDescription,
gSandStreamAbilityDescription,
gPressureAbilityDescription,
gThickFatAbilityDescription,
gEarlyBirdAbilityDescription,
gFlameBodyAbilityDescription,
gRunAwayAbilityDescription,
gKeenEyeAbilityDescription,
gHyperCutterAbilityDescription,
gPickupAbilityDescription,
gTruantAbilityDescription,
gHustleAbilityDescription,
gCuteCharmAbilityDescription,
gPlusAbilityDescription,
gMinusAbilityDescription,
gForecastAbilityDescription,
gStickyHoldAbilityDescription,
gShedSkinAbilityDescription,
gGutsAbilityDescription,
gMarvelScaleAbilityDescription,
gLiquidOozeAbilityDescription,
gOvergrowAbilityDescription,
gBlazeAbilityDescription,
gTorrentAbilityDescription,
gSwarmAbilityDescription,
gRockHeadAbilityDescription,
gDroughtAbilityDescription,
gArenaTrapAbilityDescription,
gVitalSpiritAbilityDescription,
gWhiteSmokeAbilityDescription,
gPurePowerAbilityDescription,
gShellArmorAbilityDescription,
gCacophonyAbilityDescription,
gAirLockAbilityDescription,
[ABILITY_NONE] = sNoneDescription,
[ABILITY_STENCH] = sStenchDescription,
[ABILITY_DRIZZLE] = sDrizzleDescription,
[ABILITY_SPEED_BOOST] = sSpeedBoostDescription,
[ABILITY_BATTLE_ARMOR] = sBattleArmorDescription,
[ABILITY_STURDY] = sSturdyDescription,
[ABILITY_DAMP] = sDampDescription,
[ABILITY_LIMBER] = sLimberDescription,
[ABILITY_SAND_VEIL] = sSandVeilDescription,
[ABILITY_STATIC] = sStaticDescription,
[ABILITY_VOLT_ABSORB] = sVoltAbsorbDescription,
[ABILITY_WATER_ABSORB] = sWaterAbsorbDescription,
[ABILITY_OBLIVIOUS] = sObliviousDescription,
[ABILITY_CLOUD_NINE] = sCloudNineDescription,
[ABILITY_COMPOUND_EYES] = sCompoundEyesDescription,
[ABILITY_INSOMNIA] = sInsomniaDescription,
[ABILITY_COLOR_CHANGE] = sColorChangeDescription,
[ABILITY_IMMUNITY] = sImmunityDescription,
[ABILITY_FLASH_FIRE] = sFlashFireDescription,
[ABILITY_SHIELD_DUST] = sShieldDustDescription,
[ABILITY_OWN_TEMPO] = sOwnTempoDescription,
[ABILITY_SUCTION_CUPS] = sSuctionCupsDescription,
[ABILITY_INTIMIDATE] = sIntimidateDescription,
[ABILITY_SHADOW_TAG] = sShadowTagDescription,
[ABILITY_ROUGH_SKIN] = sRoughSkinDescription,
[ABILITY_WONDER_GUARD] = sWonderGuardDescription,
[ABILITY_LEVITATE] = sLevitateDescription,
[ABILITY_EFFECT_SPORE] = sEffectSporeDescription,
[ABILITY_SYNCHRONIZE] = sSynchronizeDescription,
[ABILITY_CLEAR_BODY] = sClearBodyDescription,
[ABILITY_NATURAL_CURE] = sNaturalCureDescription,
[ABILITY_LIGHTNING_ROD] = sLightningRodDescription,
[ABILITY_SERENE_GRACE] = sSereneGraceDescription,
[ABILITY_SWIFT_SWIM] = sSwiftSwimDescription,
[ABILITY_CHLOROPHYLL] = sChlorophyllDescription,
[ABILITY_ILLUMINATE] = sIlluminateDescription,
[ABILITY_TRACE] = sTraceDescription,
[ABILITY_HUGE_POWER] = sHugePowerDescription,
[ABILITY_POISON_POINT] = sPoisonPointDescription,
[ABILITY_INNER_FOCUS] = sInnerFocusDescription,
[ABILITY_MAGMA_ARMOR] = sMagmaArmorDescription,
[ABILITY_WATER_VEIL] = sWaterVeilDescription,
[ABILITY_MAGNET_PULL] = sMagnetPullDescription,
[ABILITY_SOUNDPROOF] = sSoundproofDescription,
[ABILITY_RAIN_DISH] = sRainDishDescription,
[ABILITY_SAND_STREAM] = sSandStreamDescription,
[ABILITY_PRESSURE] = sPressureDescription,
[ABILITY_THICK_FAT] = sThickFatDescription,
[ABILITY_EARLY_BIRD] = sEarlyBirdDescription,
[ABILITY_FLAME_BODY] = sFlameBodyDescription,
[ABILITY_RUN_AWAY] = sRunAwayDescription,
[ABILITY_KEEN_EYE] = sKeenEyeDescription,
[ABILITY_HYPER_CUTTER] = sHyperCutterDescription,
[ABILITY_PICKUP] = sPickupDescription,
[ABILITY_TRUANT] = sTruantDescription,
[ABILITY_HUSTLE] = sHustleDescription,
[ABILITY_CUTE_CHARM] = sCuteCharmDescription,
[ABILITY_PLUS] = sPlusDescription,
[ABILITY_MINUS] = sMinusDescription,
[ABILITY_FORECAST] = sForecastDescription,
[ABILITY_STICKY_HOLD] = sStickyHoldDescription,
[ABILITY_SHED_SKIN] = sShedSkinDescription,
[ABILITY_GUTS] = sGutsDescription,
[ABILITY_MARVEL_SCALE] = sMarvelScaleDescription,
[ABILITY_LIQUID_OOZE] = sLiquidOozeDescription,
[ABILITY_OVERGROW] = sOvergrowDescription,
[ABILITY_BLAZE] = sBlazeDescription,
[ABILITY_TORRENT] = sTorrentDescription,
[ABILITY_SWARM] = sSwarmDescription,
[ABILITY_ROCK_HEAD] = sRockHeadDescription,
[ABILITY_DROUGHT] = sDroughtDescription,
[ABILITY_ARENA_TRAP] = sArenaTrapDescription,
[ABILITY_VITAL_SPIRIT] = sVitalSpiritDescription,
[ABILITY_WHITE_SMOKE] = sWhiteSmokeDescription,
[ABILITY_PURE_POWER] = sPurePowerDescription,
[ABILITY_SHELL_ARMOR] = sShellArmorDescription,
[ABILITY_CACOPHONY] = sCacophonyDescription,
[ABILITY_AIR_LOCK] = sAirLockDescription,
};
#endif // POKEEMERALD_DATA_TEXT_ABILITIES_H

File diff suppressed because it is too large Load Diff

View File

@@ -29,6 +29,7 @@
#include "menu.h"
#include "trainer_pokemon_sprites.h"
#include "data2.h"
#include "rom_81520A8.h"
struct HallofFameMon
{
@@ -91,13 +92,6 @@ extern void sub_80F9BCC(u16, u16, u8);
extern bool8 sub_80F9C1C(void);
extern void sub_81971D0(void);
extern void sub_8197200(void);
extern void sub_8152254(void);
extern void sub_81525D0(u8);
extern void sub_8152438(u8, void*);
extern void sub_8152474(u8, u8, u8);
extern void sub_81522D4(void);
extern bool32 sub_81521C0(u8);
extern u8 sub_81524C4(const struct OamData *arg0, s16 arg1, s16 arg2, s16 arg3, s16 arg4, u8 arg5, s16 arg6);
// this file's functions
static void ClearVramOamPltt_LoadHofPal(void);
@@ -1444,53 +1438,28 @@ static void sub_81752C0(void)
FreeSpritePaletteByTag(0x3E9);
}
struct UnknownStruct912B4
static void sub_81752F4(struct UnkStruct_81520A8 *structPtr)
{
s16 field_0;
s16 field_2;
s16 field_4;
s16 field_6;
s16 field_8;
s16 field_A;
s16 field_C;
s16 field_E;
s16 field_10;
s16 field_12;
s16 field_14;
s16 field_16;
s16 field_18;
s16 field_1A;
s16 field_1C;
s16 field_1E;
s16 field_20;
s16 field_22;
s16 field_24;
s16 field_26;
s16 field_28;
};
static void sub_81752F4(struct UnknownStruct912B4 *unkStruct)
{
if (unkStruct->field_E > 110)
if (structPtr->yDelta > 110)
{
gTasks[unkStruct->field_28].data[15]--;
sub_81525D0(unkStruct->field_16);
gTasks[structPtr->data[7]].data[15]--;
sub_81525D0(structPtr->id);
}
else
{
u8 var;
s32 rand;
unkStruct->field_E++;
unkStruct->field_E += unkStruct->field_1C;
structPtr->yDelta++;
structPtr->yDelta += structPtr->data[1];
var = unkStruct->field_1A;
var = structPtr->data[0];
rand = Random();
rand &= 3;
rand += 8;
unkStruct->field_C = (rand) * ((gSineTable[var])) / 256;
structPtr->xDelta = (rand) * ((gSineTable[var])) / 256;
unkStruct->field_1A += 4;
structPtr->data[0] += 4;
}
}

View File

@@ -431,9 +431,9 @@ static bool32 SharesPalWithAnyActive(u32 id)
return FALSE;
}
u8 sub_80355F8(u32 arg0, u32 arg1)
u8 sub_80355F8(u32 shape, u32 size)
{
return gUnknown_082FF1C8[arg0][arg1];
return gUnknown_082FF1C8[shape][size];
}
static void sub_8035608(void)

218
src/rom_81520A8.c Normal file
View File

@@ -0,0 +1,218 @@
#include "global.h"
#include "rom_81520A8.h"
#include "malloc.h"
#include "main.h"
#include "rom_8034C54.h"
static EWRAM_DATA struct
{
u8 count;
struct UnkStruct_81520A8 *unk4;
} *sUnknown_0203ABB8 = NULL;
void sub_81520A8(void *dest, u16 value, u8 left, u8 top, u8 width, u8 height) // Unused.
{
u8 i;
u8 j;
u8 x;
u8 y;
for (i = 0, y = top; i < height; i++)
{
for (x = left, j = 0; j < width; j++)
{
*(u16 *)((dest) + (y * 64 + x * 2)) = value;
x = (x + 1) % 32;
}
y = (y + 1) % 32;
}
}
void sub_8152134(void *dest, const u16 *src, u8 left, u8 top, u8 width, u8 height) // Unused.
{
u8 i;
u8 j;
u8 x;
u8 y;
const u16 *_src;
for (i = 0, _src = src, y = top; i < height; i++)
{
for (x = left, j = 0; j < width; j++)
{
*(u16 *)((dest) + (y * 64 + x * 2)) = *(_src++);
x = (x + 1) % 32;
}
y = (y + 1) % 32;
}
}
bool32 sub_81521C0(u8 count)
{
u8 i = 0;
if (count == 0)
return FALSE;
if (count > 64)
count = 64;
sUnknown_0203ABB8 = AllocZeroed(sizeof(*sUnknown_0203ABB8));
if (sUnknown_0203ABB8 == NULL)
return FALSE;
sUnknown_0203ABB8->unk4 = AllocZeroed(count * sizeof(struct UnkStruct_81520A8));
if (sUnknown_0203ABB8->unk4 == NULL)
{
FREE_AND_SET_NULL(sUnknown_0203ABB8);
return FALSE;
}
sUnknown_0203ABB8->count = count;
for (i = 0; i < count; i++)
{
memcpy(&sUnknown_0203ABB8->unk4[i].oam, &gDummyOamData, sizeof(struct OamData));
sUnknown_0203ABB8->unk4[i].unk19_2 = TRUE;
}
return TRUE;
}
bool32 sub_8152254(void)
{
u8 i = 0;
if (sUnknown_0203ABB8 == NULL)
return FALSE;
for (i = 0; i < sUnknown_0203ABB8->count; i++)
memcpy(&gMain.oamBuffer[i + 64], &gDummyOamData, sizeof(struct OamData));
memset(sUnknown_0203ABB8->unk4, 0, sUnknown_0203ABB8->count * sizeof(struct UnkStruct_81520A8));
FREE_AND_SET_NULL(sUnknown_0203ABB8->unk4);
memset(sUnknown_0203ABB8, 0, sizeof(*sUnknown_0203ABB8));
FREE_AND_SET_NULL(sUnknown_0203ABB8);
return TRUE;
}
bool32 sub_81522D4(void)
{
u8 i = 0;
if (sUnknown_0203ABB8 == NULL || sUnknown_0203ABB8->unk4 == NULL)
return FALSE;
for (i = 0; i < sUnknown_0203ABB8->count; i++)
{
if (sUnknown_0203ABB8->unk4[i].unk19_0 && sUnknown_0203ABB8->unk4[i].unk19_1)
{
if (sUnknown_0203ABB8->unk4[i].callback != NULL)
sUnknown_0203ABB8->unk4[i].callback(&sUnknown_0203ABB8->unk4[i]);
if (sUnknown_0203ABB8->unk4[i].unk19_2)
{
memcpy(&gMain.oamBuffer[i + 64], &gDummyOamData, sizeof(struct OamData));
}
else
{
sUnknown_0203ABB8->unk4[i].oam.y = sUnknown_0203ABB8->unk4[i].y + sUnknown_0203ABB8->unk4[i].yDelta;
sUnknown_0203ABB8->unk4[i].oam.x = sUnknown_0203ABB8->unk4[i].x + sUnknown_0203ABB8->unk4[i].xDelta;
sUnknown_0203ABB8->unk4[i].oam.priority = sUnknown_0203ABB8->unk4[i].priority;
sUnknown_0203ABB8->unk4[i].oam.tileNum = sUnknown_0203ABB8->unk4[i].tileNum;
memcpy(&gMain.oamBuffer[i + 64], &sUnknown_0203ABB8->unk4[i], sizeof(struct OamData));
}
}
}
return TRUE;
}
static bool32 sub_81523F4(struct UnkStruct_81520A8 *structPtr, u8 arg1)
{
u16 tileStart;
if (structPtr == NULL)
return FALSE;
tileStart = GetSpriteTileStartByTag(structPtr->tileTag);
if (tileStart == 0xFFFF)
return FALSE;
structPtr->unk18 = arg1;
structPtr->tileNum = (sub_80355F8(structPtr->oam.shape, structPtr->oam.size) * arg1) + tileStart;
return TRUE;
}
u8 sub_8152438(u8 id, void (*func)(struct UnkStruct_81520A8 *))
{
if (sUnknown_0203ABB8 == NULL || id >= sUnknown_0203ABB8->count)
return 0xFF;
else if (!sUnknown_0203ABB8->unk4[id].unk19_0)
return 0xFF;
sUnknown_0203ABB8->unk4[id].callback = func;
return id;
}
u8 sub_8152474(u8 id, u8 dataArrayId, s16 dataValue)
{
if (sUnknown_0203ABB8 == NULL || id >= sUnknown_0203ABB8->count)
return 0xFF;
else if (!sUnknown_0203ABB8->unk4[id].unk19_0 || dataArrayId >= ARRAY_COUNT(sUnknown_0203ABB8->unk4[id].data))
return 0xFF;
sUnknown_0203ABB8->unk4[id].data[dataArrayId] = dataValue;
return id;
}
u8 sub_81524C4(const struct OamData *oam, u16 tileTag, u16 palTag, s16 x, s16 y, u8 arg5, u8 priority)
{
struct UnkStruct_81520A8 *structPtr = NULL;
u8 i;
if (sUnknown_0203ABB8 == NULL || oam == NULL)
return 0xFF;
for (i = 0; i < sUnknown_0203ABB8->count; i++)
{
if (!sUnknown_0203ABB8->unk4[i].unk19_0)
{
structPtr = &sUnknown_0203ABB8->unk4[i];
memset(structPtr, 0, sizeof(*structPtr));
structPtr->id = i;
structPtr->unk19_0 = TRUE;
structPtr->unk19_1 = TRUE;
break;
}
}
if (structPtr == NULL)
return 0xFF;
memcpy(&structPtr->oam, oam, sizeof(*oam));
structPtr->tileTag = tileTag;
structPtr->palTag = palTag;
structPtr->x = x;
structPtr->y = y;
structPtr->oam.paletteNum = IndexOfSpritePaletteTag(palTag);
if (priority < 4)
{
structPtr->priority = priority;
structPtr->oam.priority = priority;
}
sub_81523F4(structPtr, arg5);
return structPtr->id;
}
u8 sub_81525D0(u8 id)
{
if (sUnknown_0203ABB8 == NULL || !sUnknown_0203ABB8->unk4[id].unk19_0)
return 0xFF;
memset(&sUnknown_0203ABB8->unk4[id], 0, sizeof(struct UnkStruct_81520A8));
sUnknown_0203ABB8->unk4[id].oam.y = 160;
sUnknown_0203ABB8->unk4[id].oam.x = 240;
sUnknown_0203ABB8->unk4[id].unk19_2 = TRUE;
memcpy(&gMain.oamBuffer[id + 64], &gDummyOamData, sizeof(struct OamData));
return id;
}