Merge branch 'master' of github.com:pret/pokeemerald
This commit is contained in:
@@ -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:
|
||||
|
||||
@@ -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 foe’s 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 foe’s ATTACK.");
|
||||
static const u8 gShadowTagAbilityDescription[] = _("Prevents the foe’s 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 foe’s 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 foe’s 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 foe’s ATTACK.");
|
||||
static const u8 sShadowTagDescription[] = _("Prevents the foe’s 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 foe’s 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
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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
218
src/rom_81520A8.c
Normal 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;
|
||||
}
|
||||
Reference in New Issue
Block a user