merge with master

This commit is contained in:
DizzyEggg
2018-08-12 12:11:35 +02:00
148 changed files with 6964 additions and 11586 deletions

View File

@@ -7230,7 +7230,7 @@ static u8 ChangeStatBuffs(s8 statValue, u8 statId, u8 flags, const u8 *BS_ptr)
PREPARE_STAT_BUFFER(gBattleTextBuff1, statId)
if ((statValue << 0x18) < 0) // stat decrease
if (statValue <= -1) // Stat decrease.
{
if (gSideTimers[GET_BATTLER_SIDE(gActiveBattler)].mistTimer
&& !certain && gCurrentMove != MOVE_CURSE)

View File

@@ -900,7 +900,7 @@ static void CB2_GiveStarter(void)
{
u16 starterMon;
*GetVarPointer(VAR_FIRST_POKE) = gSpecialVar_Result;
*GetVarPointer(VAR_STARTER_MON) = gSpecialVar_Result;
starterMon = GetStarterPokemon(gSpecialVar_Result);
ScriptGiveMon(starterMon, 5, 0, 0, 0, 0);
ResetTasks();

View File

@@ -88,6 +88,6 @@ static void ReturnFromStartWallClock(void)
void StartWallClock(void)
{
SetMainCallback2(Cb2_StartWallClock);
SetMainCallback2(CB2_StartWallClock);
gMain.savedCallback = ReturnFromStartWallClock;
}

View File

@@ -2285,7 +2285,7 @@ static void sub_81772B8(struct Sprite *sprite)
static void sub_8177388(void)
{
u16 starter = SpeciesToNationalPokedexNum(GetStarterPokemon(VarGet(VAR_FIRST_POKE)));
u16 starter = SpeciesToNationalPokedexNum(GetStarterPokemon(VarGet(VAR_STARTER_MON)));
u16 page;
u16 dexNum;
u16 j;

25
src/data/heal_locations.h Normal file
View File

@@ -0,0 +1,25 @@
static const struct HealLocation sHealLocations[] =
{
{MAP_GROUP(LITTLEROOT_TOWN_BRENDANS_HOUSE_2F), MAP_NUM(LITTLEROOT_TOWN_BRENDANS_HOUSE_2F), 4, 2},
{MAP_GROUP(LITTLEROOT_TOWN_MAYS_HOUSE_2F), MAP_NUM(LITTLEROOT_TOWN_MAYS_HOUSE_2F), 4, 2},
{MAP_GROUP(PETALBURG_CITY), MAP_NUM(PETALBURG_CITY), 20, 17},
{MAP_GROUP(SLATEPORT_CITY), MAP_NUM(SLATEPORT_CITY), 19, 20},
{MAP_GROUP(MAUVILLE_CITY), MAP_NUM(MAUVILLE_CITY), 22, 6},
{MAP_GROUP(RUSTBORO_CITY), MAP_NUM(RUSTBORO_CITY), 16, 39},
{MAP_GROUP(FORTREE_CITY), MAP_NUM(FORTREE_CITY), 5, 7},
{MAP_GROUP(LILYCOVE_CITY), MAP_NUM(LILYCOVE_CITY), 24, 15},
{MAP_GROUP(MOSSDEEP_CITY), MAP_NUM(MOSSDEEP_CITY), 28, 17},
{MAP_GROUP(SOOTOPOLIS_CITY), MAP_NUM(SOOTOPOLIS_CITY), 43, 32},
{MAP_GROUP(EVER_GRANDE_CITY), MAP_NUM(EVER_GRANDE_CITY), 27, 49},
{MAP_GROUP(LITTLEROOT_TOWN), MAP_NUM(LITTLEROOT_TOWN), 5, 9},
{MAP_GROUP(LITTLEROOT_TOWN), MAP_NUM(LITTLEROOT_TOWN), 14, 9},
{MAP_GROUP(OLDALE_TOWN), MAP_NUM(OLDALE_TOWN), 6, 17},
{MAP_GROUP(DEWFORD_TOWN), MAP_NUM(DEWFORD_TOWN), 2, 11},
{MAP_GROUP(LAVARIDGE_TOWN), MAP_NUM(LAVARIDGE_TOWN), 9, 7},
{MAP_GROUP(FALLARBOR_TOWN), MAP_NUM(FALLARBOR_TOWN), 14, 8},
{MAP_GROUP(VERDANTURF_TOWN), MAP_NUM(VERDANTURF_TOWN), 16, 4},
{MAP_GROUP(PACIFIDLOG_TOWN), MAP_NUM(PACIFIDLOG_TOWN), 8, 16},
{MAP_GROUP(EVER_GRANDE_CITY), MAP_NUM(EVER_GRANDE_CITY), 18, 6},
{MAP_GROUP(SOUTHERN_ISLAND_EXTERIOR), MAP_NUM(SOUTHERN_ISLAND_EXTERIOR), 15, 20},
{MAP_GROUP(BATTLE_FRONTIER_OUTSIDE_EAST), MAP_NUM(BATTLE_FRONTIER_OUTSIDE_EAST), 3, 52},
};

View File

@@ -0,0 +1,714 @@
static const u8 sNullMoveDescription[] = _("");
static const u8 sPoundMoveDescription[] = _("Pounds the foe with\nforelegs or tail.");
static const u8 sKarateChopMoveDescription[] = _("A chopping attack with a\nhigh critical-hit ratio.");
static const u8 sDoubleSlapMoveDescription[] = _("Repeatedly slaps the foe\n2 to 5 times.");
static const u8 sCometPunchMoveDescription[] = _("Repeatedly punches the foe\n2 to 5 times.");
static const u8 sMegaPunchMoveDescription[] = _("A strong punch thrown with\nincredible power.");
static const u8 sPayDayMoveDescription[] = _("Throws coins at the foe.\nMoney is recovered after.");
static const u8 sFirePunchMoveDescription[] = _("A fiery punch that may burn\nthe foe.");
static const u8 sIcePunchMoveDescription[] = _("An icy punch that may\nfreeze the foe.");
static const u8 sThunderPunchMoveDescription[] = _("An electrified punch that\nmay paralyze the foe.");
static const u8 sScratchMoveDescription[] = _("Scratches the foe with\nsharp claws.");
static const u8 sViceGripMoveDescription[] = _("Grips the foe with large and\npowerful pincers.");
static const u8 sGuillotineMoveDescription[] = _("A powerful pincer attack\nthat may cause fainting.");
static const u8 sRazorWindMoveDescription[] = _("A 2-turn move that strikes\nthe foe on the 2nd turn.");
static const u8 sSwordsDanceMoveDescription[] = _("A fighting dance that\nsharply raises ATTACK.");
static const u8 sCutMoveDescription[] = _("Cuts the foe with sharp\nscythes, claws, etc.");
static const u8 sGustMoveDescription[] = _("Strikes the foe with a gust\nof wind whipped up by wings.");
static const u8 sWingAttackMoveDescription[] = _("Strikes the foe with wings\nspread wide.");
static const u8 sWhirlwindMoveDescription[] = _("Blows away the foe with\nwind and ends the battle.");
static const u8 sFlyMoveDescription[] = _("Flies up on the first turn,\nthen strikes the next turn.");
static const u8 sBindMoveDescription[] = _("Binds and squeezes the foe\nfor 2 to 5 turns.");
static const u8 sSlamMoveDescription[] = _("Slams the foe with a long\ntail, vine, etc.");
static const u8 sVineWhipMoveDescription[] = _("Strikes the foe with\nslender, whiplike vines.");
static const u8 sStompMoveDescription[] = _("Stomps the enemy with a big\nfoot. May cause flinching.");
static const u8 sDoubleKickMoveDescription[] = _("A double-kicking attack\nthat strikes the foe twice.");
static const u8 sMegaKickMoveDescription[] = _("An extremely powerful kick\nwith intense force.");
static const u8 sJumpKickMoveDescription[] = _("A strong jumping kick. May\nmiss and hurt the kicker.");
static const u8 sRollingKickMoveDescription[] = _("A fast kick delivered from\na rapid spin.");
static const u8 sSandAttackMoveDescription[] = _("Reduces the foes accuracy\nby hurling sand in its face.");
static const u8 sHeadbuttMoveDescription[] = _("A ramming attack that may\ncause flinching.");
static const u8 sHornAttackMoveDescription[] = _("Jabs the foe with sharp\nhorns.");
static const u8 sFuryAttackMoveDescription[] = _("Jabs the foe 2 to 5 times\nwith sharp horns, etc.");
static const u8 sHornDrillMoveDescription[] = _("A one-hit KO attack that\nuses a horn like a drill.");
static const u8 sTackleMoveDescription[] = _("Charges the foe with a full-\nbody tackle.");
static const u8 sBodySlamMoveDescription[] = _("A full-body slam that may\ncause paralysis.");
static const u8 sWrapMoveDescription[] = _("Wraps and squeezes the foe\n2 to 5 times with vines, etc.");
static const u8 sTakeDownMoveDescription[] = _("A reckless charge attack\nthat also hurts the user.");
static const u8 sThrashMoveDescription[] = _("A rampage of 2 to 3 turns\nthat confuses the user.");
static const u8 sDoubleEdgeMoveDescription[] = _("A life-risking tackle that\nalso hurts the user.");
static const u8 sTailWhipMoveDescription[] = _("Wags the tail to lower the\nfoes DEFENSE.");
static const u8 sPoisonStingMoveDescription[] = _("A toxic attack with barbs,\netc., that may poison.");
static const u8 sTwineedleMoveDescription[] = _("Stingers on the forelegs\njab the foe twice.");
static const u8 sPinMissileMoveDescription[] = _("Sharp pins are fired to\nstrike 2 to 5 times.");
static const u8 sLeerMoveDescription[] = _("Frightens the foe with a\nleer to lower DEFENSE.");
static const u8 sBiteMoveDescription[] = _("Bites with vicious fangs.\nMay cause flinching.");
static const u8 sGrowlMoveDescription[] = _("Growls cutely to reduce the\nfoes ATTACK.");
static const u8 sRoarMoveDescription[] = _("Makes the foe flee to end\nthe battle.");
static const u8 sSingMoveDescription[] = _("A soothing song lulls the\nfoe into a deep slumber.");
static const u8 sSupersonicMoveDescription[] = _("Emits bizarre sound waves\nthat may confuse the foe.");
static const u8 sSonicBoomMoveDescription[] = _("Launches shock waves that\nalways inflict 20 HP damage.");
static const u8 sDisableMoveDescription[] = _("Psychically disables one of\nthe foes moves.");
static const u8 sAcidMoveDescription[] = _("Sprays a hide-melting acid.\nMay lower DEFENSE.");
static const u8 sEmberMoveDescription[] = _("A weak fire attack that may\ninflict a burn.");
static const u8 sFlamethrowerMoveDescription[] = _("A powerful fire attack that\nmay inflict a burn.");
static const u8 sMistMoveDescription[] = _("Creates a mist that stops\nreduction of abilities.");
static const u8 sWaterGunMoveDescription[] = _("Squirts water to attack\nthe foe.");
static const u8 sHydroPumpMoveDescription[] = _("Blasts water at high power\nto strike the foe.");
static const u8 sSurfMoveDescription[] = _("Creates a huge wave, then\ncrashes it down on the foe.");
static const u8 sIceBeamMoveDescription[] = _("Blasts the foe with an icy\nbeam that may freeze it.");
static const u8 sBlizzardMoveDescription[] = _("Hits the foe with an icy\nstorm that may freeze it.");
static const u8 sPsybeamMoveDescription[] = _("Fires a peculiar ray that\nmay confuse the foe.");
static const u8 sBubbleBeamMoveDescription[] = _("Forcefully sprays bubbles\nthat may lower SPEED.");
static const u8 sAuroraBeamMoveDescription[] = _("Fires a rainbow-colored\nbeam that may lower ATTACK.");
static const u8 sHyperBeamMoveDescription[] = _("Powerful, but leaves the\nuser immobile the next turn.");
static const u8 sPeckMoveDescription[] = _("Attacks the foe with a\njabbing beak, etc.");
static const u8 sDrillPeckMoveDescription[] = _("A corkscrewing attack with\nthe beak acting as a drill.");
static const u8 sSubmissionMoveDescription[] = _("A reckless body slam that\nalso hurts the user.");
static const u8 sLowKickMoveDescription[] = _("A kick that inflicts more\ndamage on heavier foes.");
static const u8 sCounterMoveDescription[] = _("Retaliates any physical hit\nwith double the power.");
static const u8 sSeismicTossMoveDescription[] = _("Inflicts damage identical\nto the users level.");
static const u8 sStrengthMoveDescription[] = _("Builds enormous power,\nthen slams the foe.");
static const u8 sAbsorbMoveDescription[] = _("An attack that absorbs\nhalf the damage inflicted.");
static const u8 sMegaDrainMoveDescription[] = _("An attack that absorbs\nhalf the damage inflicted.");
static const u8 sLeechSeedMoveDescription[] = _("Plants a seed on the foe to\nsteal HP on every turn.");
static const u8 sGrowthMoveDescription[] = _("Forces the body to grow\nand heightens SP. ATK.");
static const u8 sRazorLeafMoveDescription[] = _("Cuts the enemy with leaves.\nHigh critical-hit ratio.");
static const u8 sSolarBeamMoveDescription[] = _("Absorbs light in one turn,\nthen attacks next turn.");
static const u8 sPoisonPowderMoveDescription[] = _("Scatters a toxic powder\nthat may poison the foe.");
static const u8 sStunSporeMoveDescription[] = _("Scatters a powder that may\nparalyze the foe.");
static const u8 sSleepPowderMoveDescription[] = _("Scatters a powder that may\ncause the foe to sleep.");
static const u8 sPetalDanceMoveDescription[] = _("A rampage of 2 to 3 turns\nthat confuses the user.");
static const u8 sStringShotMoveDescription[] = _("Binds the foe with string\nto reduce its SPEED.");
static const u8 sDragonRageMoveDescription[] = _("Launches shock waves that\nalways inflict 40 HP damage.");
static const u8 sFireSpinMoveDescription[] = _("Traps the foe in a ring of\nfire for 2 to 5 turns.");
static const u8 sThunderShockMoveDescription[] = _("An electrical attack that\nmay paralyze the foe.");
static const u8 sThunderboltMoveDescription[] = _("A strong electrical attack\nthat may paralyze the foe.");
static const u8 sThunderWaveMoveDescription[] = _("A weak jolt of electricity\nthat paralyzes the foe.");
static const u8 sThunderMoveDescription[] = _("A lightning attack that may\ncause paralysis.");
static const u8 sRockThrowMoveDescription[] = _("Throws small rocks to\nstrike the foe.");
static const u8 sEarthquakeMoveDescription[] = _("A powerful quake, but has\nno effect on flying foes.");
static const u8 sFissureMoveDescription[] = _("A one-hit KO move that\ndrops the foe in a fissure.");
static const u8 sDigMoveDescription[] = _("Digs underground the first\nturn and strikes next turn.");
static const u8 sToxicMoveDescription[] = _("Poisons the foe with an\nintensifying toxin.");
static const u8 sConfusionMoveDescription[] = _("A psychic attack that may\ncause confusion.");
static const u8 sPsychicMoveDescription[] = _("A powerful psychic attack\nthat may lower SP. DEF.");
static const u8 sHypnosisMoveDescription[] = _("A hypnotizing move that\nmay induce sleep.");
static const u8 sMeditateMoveDescription[] = _("Meditates in a peaceful\nfashion to raise ATTACK.");
static const u8 sAgilityMoveDescription[] = _("Relaxes the body to sharply\nboost SPEED.");
static const u8 sQuickAttackMoveDescription[] = _("An extremely fast attack\nthat always strikes first.");
static const u8 sRageMoveDescription[] = _("Raises the users ATTACK\nevery time it is hit.");
static const u8 sTeleportMoveDescription[] = _("A psychic move for fleeing\nfrom battle instantly.");
static const u8 sNightShadeMoveDescription[] = _("Inflicts damage identical\nto the users level.");
static const u8 sMimicMoveDescription[] = _("Copies a move used by the\nfoe during one battle.");
static const u8 sScreechMoveDescription[] = _("Emits a screech to sharply\nreduce the foes DEFENSE.");
static const u8 sDoubleTeamMoveDescription[] = _("Creates illusory copies to\nraise evasiveness.");
static const u8 sRecoverMoveDescription[] = _("Recovers up to half the\nusers maximum HP.");
static const u8 sHardenMoveDescription[] = _("Stiffens the bodys \nmuscles to raise DEFENSE.");
static const u8 sMinimizeMoveDescription[] = _("Minimizes the users size\nto raise evasiveness.");
static const u8 sSmokescreenMoveDescription[] = _("Lowers the foes accuracy\nusing smoke, ink, etc.");
static const u8 sConfuseRayMoveDescription[] = _("A sinister ray that\nconfuses the foe.");
static const u8 sWithdrawMoveDescription[] = _("Withdraws the body into its\nhard shell to raise DEFENSE.");
static const u8 sDefenseCurlMoveDescription[] = _("Curls up to conceal weak\nspots and raise DEFENSE.");
static const u8 sBarrierMoveDescription[] = _("Creates a barrier that\nsharply raises DEFENSE.");
static const u8 sLightScreenMoveDescription[] = _("Creates a wall of light that\nlowers SP. ATK damage.");
static const u8 sHazeMoveDescription[] = _("Creates a black haze that\neliminates all stat changes.");
static const u8 sReflectMoveDescription[] = _("Creates a wall of light that\nweakens physical attacks.");
static const u8 sFocusEnergyMoveDescription[] = _("Focuses power to raise the\ncritical-hit ratio.");
static const u8 sBideMoveDescription[] = _("Endures attack for 2\nturns to retaliate double.");
static const u8 sMetronomeMoveDescription[] = _("Waggles a finger to use any\nPOKéMON move at random.");
static const u8 sMirrorMoveMoveDescription[] = _("Counters the foes attack\nwith the same move.");
static const u8 sSelfDestructMoveDescription[] = _("Inflicts severe damage but\nmakes the user faint.");
static const u8 sEggBombMoveDescription[] = _("An egg is forcibly hurled at\nthe foe.");
static const u8 sLickMoveDescription[] = _("Licks with a long tongue to\ninjure. May also paralyze.");
static const u8 sSmogMoveDescription[] = _("An exhaust-gas attack\nthat may also poison.");
static const u8 sSludgeMoveDescription[] = _("Sludge is hurled to inflict\ndamage. May also poison.");
static const u8 sBoneClubMoveDescription[] = _("Clubs the foe with a bone.\nMay cause flinching.");
static const u8 sFireBlastMoveDescription[] = _("Incinerates everything it\nstrikes. May cause a burn.");
static const u8 sWaterfallMoveDescription[] = _("Charges the foe with speed\nto climb waterfalls.");
static const u8 sClampMoveDescription[] = _("Traps and squeezes the\nfoe for 2 to 5 turns.");
static const u8 sSwiftMoveDescription[] = _("Sprays star-shaped rays\nthat never miss.");
static const u8 sSkullBashMoveDescription[] = _("Tucks in the head, then\nattacks on the next turn.");
static const u8 sSpikeCannonMoveDescription[] = _("Launches sharp spikes that\nstrike 2 to 5 times.");
static const u8 sConstrictMoveDescription[] = _("Constricts to inflict pain.\nMay lower SPEED.");
static const u8 sAmnesiaMoveDescription[] = _("Forgets about something\nand sharply raises SP. DEF.");
static const u8 sKinesisMoveDescription[] = _("Distracts the foe.\nMay lower accuracy.");
static const u8 sSoftBoiledMoveDescription[] = _("Recovers up to half the\nusers maximum HP.");
static const u8 sHiJumpKickMoveDescription[] = _("A jumping knee kick. If it\nmisses, the user is hurt.");
static const u8 sGlareMoveDescription[] = _("Intimidates and frightens\nthe foe into paralysis.");
static const u8 sDreamEaterMoveDescription[] = _("Takes one half the damage\ninflicted on a sleeping foe.");
static const u8 sPoisonGasMoveDescription[] = _("Envelops the foe in a toxic\ngas that may poison.");
static const u8 sBarrageMoveDescription[] = _("Hurls round objects at the\nfoe 2 to 5 times.");
static const u8 sLeechLifeMoveDescription[] = _("An attack that steals half\nthe damage inflicted.");
static const u8 sLovelyKissMoveDescription[] = _("Demands a kiss with a scary\nface that induces sleep.");
static const u8 sSkyAttackMoveDescription[] = _("Searches out weak spots,\nthen strikes the next turn.");
static const u8 sTransformMoveDescription[] = _("Alters the users cells to\nbecome a copy of the foe.");
static const u8 sBubbleMoveDescription[] = _("An attack using bubbles.\nMay lower the foes SPEED.");
static const u8 sDizzyPunchMoveDescription[] = _("A rhythmic punch that may\nconfuse the foe.");
static const u8 sSporeMoveDescription[] = _("Scatters a cloud of spores\nthat always induce sleep.");
static const u8 sFlashMoveDescription[] = _("Looses a powerful blast of\nlight that cuts accuracy.");
static const u8 sPsywaveMoveDescription[] = _("Attacks with a psychic\nwave of varying intensity.");
static const u8 sSplashMoveDescription[] = _("Its just a splash...\nHas no effect whatsoever.");
static const u8 sAcidArmorMoveDescription[] = _("Liquifies the users body\nto sharply raise DEFENSE.");
static const u8 sCrabhammerMoveDescription[] = _("Hammers with a pincer. Has a\nhigh critical-hit ratio.");
static const u8 sExplosionMoveDescription[] = _("Inflicts severe damage but\nmakes the user faint.");
static const u8 sFurySwipesMoveDescription[] = _("Rakes the foe with sharp\nclaws, etc., 2 to 5 times.");
static const u8 sBonemerangMoveDescription[] = _("Throws a bone boomerang\nthat strikes twice.");
static const u8 sRestMoveDescription[] = _("The user sleeps for 2 turns,\nrestoring HP and status.");
static const u8 sRockSlideMoveDescription[] = _("Large boulders are hurled.\nMay cause flinching.");
static const u8 sHyperFangMoveDescription[] = _("Attacks with sharp fangs.\nMay cause flinching.");
static const u8 sSharpenMoveDescription[] = _("Reduces the polygon count\nand raises ATTACK.");
static const u8 sConversionMoveDescription[] = _("Changes the users type\ninto a known moves type.");
static const u8 sTriAttackMoveDescription[] = _("Fires three types of beams\nat the same time.");
static const u8 sSuperFangMoveDescription[] = _("Attacks with sharp fangs\nand cuts half the foes HP.");
static const u8 sSlashMoveDescription[] = _("Slashes with claws, etc. Has\na high critical-hit ratio.");
static const u8 sSubstituteMoveDescription[] = _("Creates a decoy using 1/4\nof the users maximum HP.");
static const u8 sStruggleMoveDescription[] = _("Used only if all PP are gone.\nAlso hurts the user a little.");
static const u8 sSketchMoveDescription[] = _("Copies the foes last move\npermanently.");
static const u8 sTripleKickMoveDescription[] = _("Kicks the foe 3 times in a\nrow with rising intensity.");
static const u8 sThiefMoveDescription[] = _("While attacking, it may\nsteal the foes held item.");
static const u8 sSpiderWebMoveDescription[] = _("Ensnares the foe to stop it\nfrom fleeing or switching.");
static const u8 sMindReaderMoveDescription[] = _("Senses the foes action to\nensure the next moves hit.");
static const u8 sNightmareMoveDescription[] = _("Inflicts 1/4 damage on a\nsleeping foe every turn.");
static const u8 sFlameWheelMoveDescription[] = _("A fiery charge attack that\nmay inflict a burn.");
static const u8 sSnoreMoveDescription[] = _("A loud attack that can be\nused only while asleep.");
static const u8 sCurseMoveDescription[] = _("A move that functions\ndifferently for GHOSTS.");
static const u8 sFlailMoveDescription[] = _("Inflicts more damage when\nthe users HP is down.");
static const u8 sConversion2MoveDescription[] = _("Makes the user resistant\nto the last attacks type.");
static const u8 sAeroblastMoveDescription[] = _("Launches a vacuumed blast.\nHigh critical-hit ratio.");
static const u8 sCottonSporeMoveDescription[] = _("Spores cling to the foe,\nsharply reducing SPEED.");
static const u8 sReversalMoveDescription[] = _("Inflicts more damage when\nthe users HP is down.");
static const u8 sSpiteMoveDescription[] = _("Spitefully cuts the PP\nof the foes last move.");
static const u8 sPowderSnowMoveDescription[] = _("Blasts the foe with a snowy\ngust. May cause freezing.");
static const u8 sProtectMoveDescription[] = _("Evades attack, but may fail\nif used in succession.");
static const u8 sMachPunchMoveDescription[] = _("A punch is thrown at wicked\nspeed to strike first.");
static const u8 sScaryFaceMoveDescription[] = _("Frightens with a scary face\nto sharply reduce SPEED.");
static const u8 sFaintAttackMoveDescription[] = _("Draws the foe close, then\nstrikes without fail.");
static const u8 sSweetKissMoveDescription[] = _("Demands a kiss with a cute\nlook. May cause confusion.");
static const u8 sBellyDrumMoveDescription[] = _("Maximizes ATTACK while\nsacrificing HP.");
static const u8 sSludgeBombMoveDescription[] = _("Sludge is hurled to inflict\ndamage. May also poison.");
static const u8 sMudSlapMoveDescription[] = _("Hurls mud in the foes face\nto reduce its accuracy.");
static const u8 sOctazookaMoveDescription[] = _("Fires a lump of ink to\ndamage and cut accuracy.");
static const u8 sSpikesMoveDescription[] = _("Sets spikes that hurt a \nfoe switching in.");
static const u8 sZapCannonMoveDescription[] = _("Powerful and sure to cause\nparalysis, but inaccurate.");
static const u8 sForesightMoveDescription[] = _("Negates the foes efforts\nto heighten evasiveness.");
static const u8 sDestinyBondMoveDescription[] = _("If the user faints, the foe\nis also made to faint.");
static const u8 sPerishSongMoveDescription[] = _("Any POKéMON hearing this\nsong faints in 3 turns.");
static const u8 sIcyWindMoveDescription[] = _("A chilling attack that\nlowers the foes SPEED.");
static const u8 sDetectMoveDescription[] = _("Evades attack, but may fail\nif used in succession.");
static const u8 sBoneRushMoveDescription[] = _("Strikes the foe with a bone\nin hand 2 to 5 times.");
static const u8 sLockOnMoveDescription[] = _("Locks on to the foe to\nensure the next move hits.");
static const u8 sOutrageMoveDescription[] = _("A rampage of 2 to 3 turns\nthat confuses the user.");
static const u8 sSandstormMoveDescription[] = _("Causes a sandstorm that\nrages for several turns.");
static const u8 sGigaDrainMoveDescription[] = _("An attack that steals half\nthe damage inflicted.");
static const u8 sEndureMoveDescription[] = _("Endures any attack for\n1 turn, leaving at least 1HP.");
static const u8 sCharmMoveDescription[] = _("Charms the foe and sharply\nreduces its ATTACK.");
static const u8 sRolloutMoveDescription[] = _("An attack lasting 5 turns\nwith rising intensity.");
static const u8 sFalseSwipeMoveDescription[] = _("An attack that leaves the\nfoe with at least 1 HP.");
static const u8 sSwaggerMoveDescription[] = _("Confuses the foe, but also\nsharply raises ATTACK.");
static const u8 sMilkDrinkMoveDescription[] = _("Recovers up to half the\nusers maximum HP.");
static const u8 sSparkMoveDescription[] = _("An electrified tackle that\nmay paralyze the foe.");
static const u8 sFuryCutterMoveDescription[] = _("An attack that intensifies\non each successive hit.");
static const u8 sSteelWingMoveDescription[] = _("Strikes the foe with hard\nwings spread wide.");
static const u8 sMeanLookMoveDescription[] = _("Fixes the foe with a mean\nlook that prevents escape.");
static const u8 sAttractMoveDescription[] = _("Makes the opposite gender\nless likely to attack.");
static const u8 sSleepTalkMoveDescription[] = _("Uses an available move\nrandomly while asleep.");
static const u8 sHealBellMoveDescription[] = _("Chimes soothingly to heal\nall status abnormalities.");
static const u8 sReturnMoveDescription[] = _("An attack that increases\nin power with friendship.");
static const u8 sPresentMoveDescription[] = _("A gift in the form of a\nbomb. May restore HP.");
static const u8 sFrustrationMoveDescription[] = _("An attack that is stronger\nif the TRAINER is disliked.");
static const u8 sSafeguardMoveDescription[] = _("A mystical force prevents\nall status problems.");
static const u8 sPainSplitMoveDescription[] = _("Adds the user and foes HP,\nthen shares them equally.");
static const u8 sSacredFireMoveDescription[] = _("A mystical fire attack that\nmay inflict a burn.");
static const u8 sMagnitudeMoveDescription[] = _("A ground-shaking attack\nof random intensity.");
static const u8 sDynamicPunchMoveDescription[] = _("Powerful and sure to cause\nconfusion, but inaccurate.");
static const u8 sMegahornMoveDescription[] = _("A brutal ramming attack\nusing out-thrust horns.");
static const u8 sDragonBreathMoveDescription[] = _("Strikes the foe with an\nincredible blast of breath.");
static const u8 sBatonPassMoveDescription[] = _("Switches out the user while\nkeeping effects in play.");
static const u8 sEncoreMoveDescription[] = _("Makes the foe repeat its\nlast move over 2 to 6 turns.");
static const u8 sPursuitMoveDescription[] = _("Inflicts bad damage if used\non a foe switching out.");
static const u8 sRapidSpinMoveDescription[] = _("Spins the body at high\nspeed to strike the foe.");
static const u8 sSweetScentMoveDescription[] = _("Allures the foe to reduce\nevasiveness.");
static const u8 sIronTailMoveDescription[] = _("Attacks with a rock-hard\ntail. May lower DEFENSE.");
static const u8 sMetalClawMoveDescription[] = _("A claw attack that may\nraise the users ATTACK.");
static const u8 sVitalThrowMoveDescription[] = _("Makes the users move last,\nbut it never misses.");
static const u8 sMorningSunMoveDescription[] = _("Restores HP. The amount\nvaries with the weather.");
static const u8 sSynthesisMoveDescription[] = _("Restores HP. The amount\nvaries with the weather.");
static const u8 sMoonlightMoveDescription[] = _("Restores HP. The amount\nvaries with the weather.");
static const u8 sHiddenPowerMoveDescription[] = _("The effectiveness varies\nwith the user.");
static const u8 sCrossChopMoveDescription[] = _("A double-chopping attack.\nHigh critical-hit ratio.");
static const u8 sTwisterMoveDescription[] = _("Whips up a vicious twister\nto tear at the foe.");
static const u8 sRainDanceMoveDescription[] = _("Boosts the power of WATER-\ntype moves for 5 turns.");
static const u8 sSunnyDayMoveDescription[] = _("Boosts the power of FIRE-\ntype moves for 5 turns.");
static const u8 sCrunchMoveDescription[] = _("Crunches with sharp fangs.\nMay lower SP. DEF.");
static const u8 sMirrorCoatMoveDescription[] = _("Counters the foes special\nattack at double the power.");
static const u8 sPsychUpMoveDescription[] = _("Copies the foes effect(s)\nand gives to the user.");
static const u8 sExtremeSpeedMoveDescription[] = _("An extremely fast and\npowerful attack.");
static const u8 sAncientPowerMoveDescription[] = _("An attack that may raise\nall stats.");
static const u8 sShadowBallMoveDescription[] = _("Hurls a black blob that may\nlower the foes SP. DEF.");
static const u8 sFutureSightMoveDescription[] = _("Heightens inner power to\nstrike 2 turns later.");
static const u8 sRockSmashMoveDescription[] = _("A rock-crushing attack\nthat may lower DEFENSE.");
static const u8 sWhirlpoolMoveDescription[] = _("Traps and hurts the foe in\na whirlpool for 2 to 5 turns.");
static const u8 sBeatUpMoveDescription[] = _("Summons party POKéMON to\njoin in the attack.");
static const u8 sFakeOutMoveDescription[] = _("A 1st-turn, 1st-strike move\nthat causes flinching.");
static const u8 sUproarMoveDescription[] = _("Causes an uproar for 2 to 5\nturns and prevents sleep.");
static const u8 sStockpileMoveDescription[] = _("Charges up power for up to\n3 turns.");
static const u8 sSpitUpMoveDescription[] = _("Releases stockpiled power\n(the more the better).");
static const u8 sSwallowMoveDescription[] = _("Absorbs stockpiled power\nand restores HP.");
static const u8 sHeatWaveMoveDescription[] = _("Exhales a hot breath on the\nfoe. May inflict a burn.");
static const u8 sHailMoveDescription[] = _("Summons a hailstorm that\nstrikes every turn.");
static const u8 sTormentMoveDescription[] = _("Torments the foe and stops\nsuccessive use of a move.");
static const u8 sFlatterMoveDescription[] = _("Confuses the foe, but\nraises its SP. ATK.");
static const u8 sWillOWispMoveDescription[] = _("Inflicts a burn on the foe\nwith intense fire.");
static const u8 sMementoMoveDescription[] = _("The user faints and lowers\nthe foes abilities.");
static const u8 sFacadeMoveDescription[] = _("Boosts ATTACK when burned,\nparalyzed, or poisoned.");
static const u8 sFocusPunchMoveDescription[] = _("A powerful loyalty attack.\nThe user flinches if hit.");
static const u8 sSmellingSaltMoveDescription[] = _("Powerful against paralyzed\nfoes, but also heals them.");
static const u8 sFollowMeMoveDescription[] = _("Draws attention to make\nfoes attack only the user.");
static const u8 sNaturePowerMoveDescription[] = _("The type of attack varies\ndepending on the location.");
static const u8 sChargeMoveDescription[] = _("Charges power to boost the\nelectric move used next.");
static const u8 sTauntMoveDescription[] = _("Taunts the foe into only\nusing attack moves.");
static const u8 sHelpingHandMoveDescription[] = _("Boosts the power of the\nrecipients moves.");
static const u8 sTrickMoveDescription[] = _("Tricks the foe into trading\nheld items.");
static const u8 sRolePlayMoveDescription[] = _("Mimics the target and\ncopies its special ability.");
static const u8 sWishMoveDescription[] = _("A wish that restores HP.\nIt takes time to work.");
static const u8 sAssistMoveDescription[] = _("Attacks randomly with one\nof the partners moves.");
static const u8 sIngrainMoveDescription[] = _("Lays roots that restore HP.\nThe user cant switch out.");
static const u8 sSuperpowerMoveDescription[] = _("Boosts strength sharply,\nbut lowers abilities.");
static const u8 sMagicCoatMoveDescription[] = _("Reflects special effects\nback to the attacker.");
static const u8 sRecycleMoveDescription[] = _("Recycles a used item for\none more use.");
static const u8 sRevengeMoveDescription[] = _("An attack that gains power\nif injured by the foe.");
static const u8 sBrickBreakMoveDescription[] = _("Destroys barriers such as\nREFLECT and causes damage.");
static const u8 sYawnMoveDescription[] = _("Lulls the foe into yawning,\nthen sleeping next turn.");
static const u8 sKnockOffMoveDescription[] = _("Knocks down the foes held\nitem to prevent its use.");
static const u8 sEndeavorMoveDescription[] = _("Gains power if the users HP\nis lower than the foes HP.");
static const u8 sEruptionMoveDescription[] = _("The higher the users HP,\nthe more damage caused.");
static const u8 sSkillSwapMoveDescription[] = _("The user swaps special\nabilities with the target.");
static const u8 sImprisonMoveDescription[] = _("Prevents foes from using\nmoves known by the user.");
static const u8 sRefreshMoveDescription[] = _("Heals poisoning, paralysis,\nor a burn.");
static const u8 sGrudgeMoveDescription[] = _("If the user faints, deletes\nall PP of foes last move.");
static const u8 sSnatchMoveDescription[] = _("Steals the effects of the\nmove the target uses next.");
static const u8 sSecretPowerMoveDescription[] = _("An attack with effects\nthat vary by location.");
static const u8 sDiveMoveDescription[] = _("Dives underwater the first\nturn and strikes next turn.");
static const u8 sArmThrustMoveDescription[] = _("Straight-arm punches that\nstrike the foe 2 to 5 times.");
static const u8 sCamouflageMoveDescription[] = _("Alters the POKéMONs type\ndepending on the location.");
static const u8 sTailGlowMoveDescription[] = _("Flashes a light that sharply\nraises SP. ATK.");
static const u8 sLusterPurgeMoveDescription[] = _("Attacks with a burst of\nlight. May lower SP. DEF.");
static const u8 sMistBallMoveDescription[] = _("Attacks with a flurry of\ndown. May lower SP. ATK.");
static const u8 sFeatherDanceMoveDescription[] = _("Envelops the foe with down\nto sharply reduce ATTACK.");
static const u8 sTeeterDanceMoveDescription[] = _("Confuses all POKéMON on\nthe scene.");
static const u8 sBlazeKickMoveDescription[] = _("A kick with a high critical-\nhit ratio. May cause a burn.");
static const u8 sMudSportMoveDescription[] = _("Covers the user in mud to\nraise electrical resistance.");
static const u8 sIceBallMoveDescription[] = _("A 5-turn attack that gains\npower on successive hits.");
static const u8 sNeedleArmMoveDescription[] = _("Attacks with thorny arms.\nMay cause flinching.");
static const u8 sSlackOffMoveDescription[] = _("Slacks off and restores\nhalf the maximum HP.");
static const u8 sHyperVoiceMoveDescription[] = _("A loud attack that uses\nsound waves to injure.");
static const u8 sPoisonFangMoveDescription[] = _("A sharp-fanged attack.\nMay badly poison the foe.");
static const u8 sCrushClawMoveDescription[] = _("Tears at the foe with sharp\nclaws. May lower DEFENSE.");
static const u8 sBlastBurnMoveDescription[] = _("Powerful, but leaves the\nuser immobile the next turn.");
static const u8 sHydroCannonMoveDescription[] = _("Powerful, but leaves the\nuser immobile the next turn.");
static const u8 sMeteorMashMoveDescription[] = _("Fires a meteor-like punch.\nMay raise ATTACK.");
static const u8 sAstonishMoveDescription[] = _("An attack that may shock\nthe foe into flinching.");
static const u8 sWeatherBallMoveDescription[] = _("The moves type and power\nchange with the weather.");
static const u8 sAromatherapyMoveDescription[] = _("Heals all status problems\nwith a soothing scent.");
static const u8 sFakeTearsMoveDescription[] = _("Feigns crying to sharply\nlower the foes SP. DEF.");
static const u8 sAirCutterMoveDescription[] = _("Hacks with razorlike wind.\nHigh critical-hit ratio.");
static const u8 sOverheatMoveDescription[] = _("Allows a full-power attack,\nbut sharply lowers SP. ATK.");
static const u8 sOdorSleuthMoveDescription[] = _("Negates the foes efforts\nto heighten evasiveness.");
static const u8 sRockTombMoveDescription[] = _("Stops the foe from moving\nwith rocks and cuts SPEED.");
static const u8 sSilverWindMoveDescription[] = _("A powdery attack that may\nraise abilities.");
static const u8 sMetalSoundMoveDescription[] = _("Emits a horrible screech\nthat sharply lowers SP. DEF.");
static const u8 sGrassWhistleMoveDescription[] = _("Lulls the foe into sleep\nwith a pleasant melody.");
static const u8 sTickleMoveDescription[] = _("Makes the foe laugh to\nlower ATTACK and DEFENSE.");
static const u8 sCosmicPowerMoveDescription[] = _("Raises DEFENSE and SP. DEF\nwith a mystic power.");
static const u8 sWaterSpoutMoveDescription[] = _("Inflicts more damage if the\nusers HP is high.");
static const u8 sSignalBeamMoveDescription[] = _("A strange beam attack that\nmay confuse the foe.");
static const u8 sShadowPunchMoveDescription[] = _("An unavoidable punch that\nis thrown from shadows.");
static const u8 sExtrasensoryMoveDescription[] = _("Attacks with a peculiar\npower. May cause flinching.");
static const u8 sSkyUppercutMoveDescription[] = _("An uppercut thrown as if\nleaping into the sky.");
static const u8 sSandTombMoveDescription[] = _("Traps and hurts the foe in\nquicksand for 2 to 5 turns.");
static const u8 sSheerColdMoveDescription[] = _("A chilling attack that\ncauses fainting if it hits.");
static const u8 sMuddyWaterMoveDescription[] = _("Attacks with muddy water.\nMay lower accuracy.");
static const u8 sBulletSeedMoveDescription[] = _("Shoots 2 to 5 seeds in a row\nto strike the foe.");
static const u8 sAerialAceMoveDescription[] = _("An extremely speedy and\nunavoidable attack.");
static const u8 sIcicleSpearMoveDescription[] = _("Attacks the foe by firing\n2 to 5 icicles in a row.");
static const u8 sIronDefenseMoveDescription[] = _("Hardens the bodys surface\nto sharply raise DEFENSE.");
static const u8 sBlockMoveDescription[] = _("Blocks the foes way to\nprevent escape.");
static const u8 sHowlMoveDescription[] = _("Howls to raise the spirit\nand boosts ATTACK.");
static const u8 sDragonClawMoveDescription[] = _("Slashes the foe with sharp\nclaws.");
static const u8 sFrenzyPlantMoveDescription[] = _("Powerful, but leaves the\nuser immobile the next turn.");
static const u8 sBulkUpMoveDescription[] = _("Bulks up the body to boost\nboth ATTACK and DEFENSE.");
static const u8 sBounceMoveDescription[] = _("Bounces up, then down the\nnext turn. May paralyze.");
static const u8 sMudShotMoveDescription[] = _("Hurls mud at the foe and\nreduces SPEED.");
static const u8 sPoisonTailMoveDescription[] = _("Has a high critical-hit\nratio. May also poison.");
static const u8 sCovetMoveDescription[] = _("Cutely begs to obtain an\nitem held by the foe.");
static const u8 sVoltTackleMoveDescription[] = _("A life-risking tackle that\nslightly hurts the user.");
static const u8 sMagicalLeafMoveDescription[] = _("Attacks with a strange leaf\nthat cannot be evaded.");
static const u8 sWaterSportMoveDescription[] = _("The user becomes soaked to\nraise resistance to fire.");
static const u8 sCalmMindMoveDescription[] = _("Raises SP. ATK and SP. DEF\nby focusing the mind.");
static const u8 sLeafBladeMoveDescription[] = _("Slashes with a sharp leaf.\nHigh critical-hit ratio.");
static const u8 sDragonDanceMoveDescription[] = _("A mystical dance that ups\nATTACK and SPEED.");
static const u8 sRockBlastMoveDescription[] = _("Hurls boulders at the foe\n2 to 5 times in a row.");
static const u8 sShockWaveMoveDescription[] = _("A fast and unavoidable\nelectric attack.");
static const u8 sWaterPulseMoveDescription[] = _("Attacks with ultrasonic\nwaves. May confuse the foe.");
static const u8 sDoomDesireMoveDescription[] = _("Summons strong sunlight to\nattack 2 turns later.");
static const u8 sPsychoBoostMoveDescription[] = _("Allows a full-power attack,\nbut sharply lowers SP. ATK.");
// MOVE_NONE is ignored in this table. Make sure to always subtract 1 before getting the right pointer.
const u8 *const gMoveDescriptionPointers[MOVES_COUNT - 1] =
{
[MOVE_POUND - 1] = sPoundMoveDescription,
[MOVE_KARATE_CHOP - 1] = sKarateChopMoveDescription,
[MOVE_DOUBLE_SLAP - 1] = sDoubleSlapMoveDescription,
[MOVE_COMET_PUNCH - 1] = sCometPunchMoveDescription,
[MOVE_MEGA_PUNCH - 1] = sMegaPunchMoveDescription,
[MOVE_PAY_DAY - 1] = sPayDayMoveDescription,
[MOVE_FIRE_PUNCH - 1] = sFirePunchMoveDescription,
[MOVE_ICE_PUNCH - 1] = sIcePunchMoveDescription,
[MOVE_THUNDER_PUNCH - 1] = sThunderPunchMoveDescription,
[MOVE_SCRATCH - 1] = sScratchMoveDescription,
[MOVE_VICE_GRIP - 1] = sViceGripMoveDescription,
[MOVE_GUILLOTINE - 1] = sGuillotineMoveDescription,
[MOVE_RAZOR_WIND - 1] = sRazorWindMoveDescription,
[MOVE_SWORDS_DANCE - 1] = sSwordsDanceMoveDescription,
[MOVE_CUT - 1] = sCutMoveDescription,
[MOVE_GUST - 1] = sGustMoveDescription,
[MOVE_WING_ATTACK - 1] = sWingAttackMoveDescription,
[MOVE_WHIRLWIND - 1] = sWhirlwindMoveDescription,
[MOVE_FLY - 1] = sFlyMoveDescription,
[MOVE_BIND - 1] = sBindMoveDescription,
[MOVE_SLAM - 1] = sSlamMoveDescription,
[MOVE_VINE_WHIP - 1] = sVineWhipMoveDescription,
[MOVE_STOMP - 1] = sStompMoveDescription,
[MOVE_DOUBLE_KICK - 1] = sDoubleKickMoveDescription,
[MOVE_MEGA_KICK - 1] = sMegaKickMoveDescription,
[MOVE_JUMP_KICK - 1] = sJumpKickMoveDescription,
[MOVE_ROLLING_KICK - 1] = sRollingKickMoveDescription,
[MOVE_SAND_ATTACK - 1] = sSandAttackMoveDescription,
[MOVE_HEADBUTT - 1] = sHeadbuttMoveDescription,
[MOVE_HORN_ATTACK - 1] = sHornAttackMoveDescription,
[MOVE_FURY_ATTACK - 1] = sFuryAttackMoveDescription,
[MOVE_HORN_DRILL - 1] = sHornDrillMoveDescription,
[MOVE_TACKLE - 1] = sTackleMoveDescription,
[MOVE_BODY_SLAM - 1] = sBodySlamMoveDescription,
[MOVE_WRAP - 1] = sWrapMoveDescription,
[MOVE_TAKE_DOWN - 1] = sTakeDownMoveDescription,
[MOVE_THRASH - 1] = sThrashMoveDescription,
[MOVE_DOUBLE_EDGE - 1] = sDoubleEdgeMoveDescription,
[MOVE_TAIL_WHIP - 1] = sTailWhipMoveDescription,
[MOVE_POISON_STING - 1] = sPoisonStingMoveDescription,
[MOVE_TWINEEDLE - 1] = sTwineedleMoveDescription,
[MOVE_PIN_MISSILE - 1] = sPinMissileMoveDescription,
[MOVE_LEER - 1] = sLeerMoveDescription,
[MOVE_BITE - 1] = sBiteMoveDescription,
[MOVE_GROWL - 1] = sGrowlMoveDescription,
[MOVE_ROAR - 1] = sRoarMoveDescription,
[MOVE_SING - 1] = sSingMoveDescription,
[MOVE_SUPERSONIC - 1] = sSupersonicMoveDescription,
[MOVE_SONIC_BOOM - 1] = sSonicBoomMoveDescription,
[MOVE_DISABLE - 1] = sDisableMoveDescription,
[MOVE_ACID - 1] = sAcidMoveDescription,
[MOVE_EMBER - 1] = sEmberMoveDescription,
[MOVE_FLAMETHROWER - 1] = sFlamethrowerMoveDescription,
[MOVE_MIST - 1] = sMistMoveDescription,
[MOVE_WATER_GUN - 1] = sWaterGunMoveDescription,
[MOVE_HYDRO_PUMP - 1] = sHydroPumpMoveDescription,
[MOVE_SURF - 1] = sSurfMoveDescription,
[MOVE_ICE_BEAM - 1] = sIceBeamMoveDescription,
[MOVE_BLIZZARD - 1] = sBlizzardMoveDescription,
[MOVE_PSYBEAM - 1] = sPsybeamMoveDescription,
[MOVE_BUBBLE_BEAM - 1] = sBubbleBeamMoveDescription,
[MOVE_AURORA_BEAM - 1] = sAuroraBeamMoveDescription,
[MOVE_HYPER_BEAM - 1] = sHyperBeamMoveDescription,
[MOVE_PECK - 1] = sPeckMoveDescription,
[MOVE_DRILL_PECK - 1] = sDrillPeckMoveDescription,
[MOVE_SUBMISSION - 1] = sSubmissionMoveDescription,
[MOVE_LOW_KICK - 1] = sLowKickMoveDescription,
[MOVE_COUNTER - 1] = sCounterMoveDescription,
[MOVE_SEISMIC_TOSS - 1] = sSeismicTossMoveDescription,
[MOVE_STRENGTH - 1] = sStrengthMoveDescription,
[MOVE_ABSORB - 1] = sAbsorbMoveDescription,
[MOVE_MEGA_DRAIN - 1] = sMegaDrainMoveDescription,
[MOVE_LEECH_SEED - 1] = sLeechSeedMoveDescription,
[MOVE_GROWTH - 1] = sGrowthMoveDescription,
[MOVE_RAZOR_LEAF - 1] = sRazorLeafMoveDescription,
[MOVE_SOLAR_BEAM - 1] = sSolarBeamMoveDescription,
[MOVE_POISON_POWDER - 1] = sPoisonPowderMoveDescription,
[MOVE_STUN_SPORE - 1] = sStunSporeMoveDescription,
[MOVE_SLEEP_POWDER - 1] = sSleepPowderMoveDescription,
[MOVE_PETAL_DANCE - 1] = sPetalDanceMoveDescription,
[MOVE_STRING_SHOT - 1] = sStringShotMoveDescription,
[MOVE_DRAGON_RAGE - 1] = sDragonRageMoveDescription,
[MOVE_FIRE_SPIN - 1] = sFireSpinMoveDescription,
[MOVE_THUNDER_SHOCK - 1] = sThunderShockMoveDescription,
[MOVE_THUNDERBOLT - 1] = sThunderboltMoveDescription,
[MOVE_THUNDER_WAVE - 1] = sThunderWaveMoveDescription,
[MOVE_THUNDER - 1] = sThunderMoveDescription,
[MOVE_ROCK_THROW - 1] = sRockThrowMoveDescription,
[MOVE_EARTHQUAKE - 1] = sEarthquakeMoveDescription,
[MOVE_FISSURE - 1] = sFissureMoveDescription,
[MOVE_DIG - 1] = sDigMoveDescription,
[MOVE_TOXIC - 1] = sToxicMoveDescription,
[MOVE_CONFUSION - 1] = sConfusionMoveDescription,
[MOVE_PSYCHIC - 1] = sPsychicMoveDescription,
[MOVE_HYPNOSIS - 1] = sHypnosisMoveDescription,
[MOVE_MEDITATE - 1] = sMeditateMoveDescription,
[MOVE_AGILITY - 1] = sAgilityMoveDescription,
[MOVE_QUICK_ATTACK - 1] = sQuickAttackMoveDescription,
[MOVE_RAGE - 1] = sRageMoveDescription,
[MOVE_TELEPORT - 1] = sTeleportMoveDescription,
[MOVE_NIGHT_SHADE - 1] = sNightShadeMoveDescription,
[MOVE_MIMIC - 1] = sMimicMoveDescription,
[MOVE_SCREECH - 1] = sScreechMoveDescription,
[MOVE_DOUBLE_TEAM - 1] = sDoubleTeamMoveDescription,
[MOVE_RECOVER - 1] = sRecoverMoveDescription,
[MOVE_HARDEN - 1] = sHardenMoveDescription,
[MOVE_MINIMIZE - 1] = sMinimizeMoveDescription,
[MOVE_SMOKESCREEN - 1] = sSmokescreenMoveDescription,
[MOVE_CONFUSE_RAY - 1] = sConfuseRayMoveDescription,
[MOVE_WITHDRAW - 1] = sWithdrawMoveDescription,
[MOVE_DEFENSE_CURL - 1] = sDefenseCurlMoveDescription,
[MOVE_BARRIER - 1] = sBarrierMoveDescription,
[MOVE_LIGHT_SCREEN - 1] = sLightScreenMoveDescription,
[MOVE_HAZE - 1] = sHazeMoveDescription,
[MOVE_REFLECT - 1] = sReflectMoveDescription,
[MOVE_FOCUS_ENERGY - 1] = sFocusEnergyMoveDescription,
[MOVE_BIDE - 1] = sBideMoveDescription,
[MOVE_METRONOME - 1] = sMetronomeMoveDescription,
[MOVE_MIRROR_MOVE - 1] = sMirrorMoveMoveDescription,
[MOVE_SELF_DESTRUCT - 1] = sSelfDestructMoveDescription,
[MOVE_EGG_BOMB - 1] = sEggBombMoveDescription,
[MOVE_LICK - 1] = sLickMoveDescription,
[MOVE_SMOG - 1] = sSmogMoveDescription,
[MOVE_SLUDGE - 1] = sSludgeMoveDescription,
[MOVE_BONE_CLUB - 1] = sBoneClubMoveDescription,
[MOVE_FIRE_BLAST - 1] = sFireBlastMoveDescription,
[MOVE_WATERFALL - 1] = sWaterfallMoveDescription,
[MOVE_CLAMP - 1] = sClampMoveDescription,
[MOVE_SWIFT - 1] = sSwiftMoveDescription,
[MOVE_SKULL_BASH - 1] = sSkullBashMoveDescription,
[MOVE_SPIKE_CANNON - 1] = sSpikeCannonMoveDescription,
[MOVE_CONSTRICT - 1] = sConstrictMoveDescription,
[MOVE_AMNESIA - 1] = sAmnesiaMoveDescription,
[MOVE_KINESIS - 1] = sKinesisMoveDescription,
[MOVE_SOFT_BOILED - 1] = sSoftBoiledMoveDescription,
[MOVE_HI_JUMP_KICK - 1] = sHiJumpKickMoveDescription,
[MOVE_GLARE - 1] = sGlareMoveDescription,
[MOVE_DREAM_EATER - 1] = sDreamEaterMoveDescription,
[MOVE_POISON_GAS - 1] = sPoisonGasMoveDescription,
[MOVE_BARRAGE - 1] = sBarrageMoveDescription,
[MOVE_LEECH_LIFE - 1] = sLeechLifeMoveDescription,
[MOVE_LOVELY_KISS - 1] = sLovelyKissMoveDescription,
[MOVE_SKY_ATTACK - 1] = sSkyAttackMoveDescription,
[MOVE_TRANSFORM - 1] = sTransformMoveDescription,
[MOVE_BUBBLE - 1] = sBubbleMoveDescription,
[MOVE_DIZZY_PUNCH - 1] = sDizzyPunchMoveDescription,
[MOVE_SPORE - 1] = sSporeMoveDescription,
[MOVE_FLASH - 1] = sFlashMoveDescription,
[MOVE_PSYWAVE - 1] = sPsywaveMoveDescription,
[MOVE_SPLASH - 1] = sSplashMoveDescription,
[MOVE_ACID_ARMOR - 1] = sAcidArmorMoveDescription,
[MOVE_CRABHAMMER - 1] = sCrabhammerMoveDescription,
[MOVE_EXPLOSION - 1] = sExplosionMoveDescription,
[MOVE_FURY_SWIPES - 1] = sFurySwipesMoveDescription,
[MOVE_BONEMERANG - 1] = sBonemerangMoveDescription,
[MOVE_REST - 1] = sRestMoveDescription,
[MOVE_ROCK_SLIDE - 1] = sRockSlideMoveDescription,
[MOVE_HYPER_FANG - 1] = sHyperFangMoveDescription,
[MOVE_SHARPEN - 1] = sSharpenMoveDescription,
[MOVE_CONVERSION - 1] = sConversionMoveDescription,
[MOVE_TRI_ATTACK - 1] = sTriAttackMoveDescription,
[MOVE_SUPER_FANG - 1] = sSuperFangMoveDescription,
[MOVE_SLASH - 1] = sSlashMoveDescription,
[MOVE_SUBSTITUTE - 1] = sSubstituteMoveDescription,
[MOVE_STRUGGLE - 1] = sStruggleMoveDescription,
[MOVE_SKETCH - 1] = sSketchMoveDescription,
[MOVE_TRIPLE_KICK - 1] = sTripleKickMoveDescription,
[MOVE_THIEF - 1] = sThiefMoveDescription,
[MOVE_SPIDER_WEB - 1] = sSpiderWebMoveDescription,
[MOVE_MIND_READER - 1] = sMindReaderMoveDescription,
[MOVE_NIGHTMARE - 1] = sNightmareMoveDescription,
[MOVE_FLAME_WHEEL - 1] = sFlameWheelMoveDescription,
[MOVE_SNORE - 1] = sSnoreMoveDescription,
[MOVE_CURSE - 1] = sCurseMoveDescription,
[MOVE_FLAIL - 1] = sFlailMoveDescription,
[MOVE_CONVERSION_2 - 1] = sConversion2MoveDescription,
[MOVE_AEROBLAST - 1] = sAeroblastMoveDescription,
[MOVE_COTTON_SPORE - 1] = sCottonSporeMoveDescription,
[MOVE_REVERSAL - 1] = sReversalMoveDescription,
[MOVE_SPITE - 1] = sSpiteMoveDescription,
[MOVE_POWDER_SNOW - 1] = sPowderSnowMoveDescription,
[MOVE_PROTECT - 1] = sProtectMoveDescription,
[MOVE_MACH_PUNCH - 1] = sMachPunchMoveDescription,
[MOVE_SCARY_FACE - 1] = sScaryFaceMoveDescription,
[MOVE_FAINT_ATTACK - 1] = sFaintAttackMoveDescription,
[MOVE_SWEET_KISS - 1] = sSweetKissMoveDescription,
[MOVE_BELLY_DRUM - 1] = sBellyDrumMoveDescription,
[MOVE_SLUDGE_BOMB - 1] = sSludgeBombMoveDescription,
[MOVE_MUD_SLAP - 1] = sMudSlapMoveDescription,
[MOVE_OCTAZOOKA - 1] = sOctazookaMoveDescription,
[MOVE_SPIKES - 1] = sSpikesMoveDescription,
[MOVE_ZAP_CANNON - 1] = sZapCannonMoveDescription,
[MOVE_FORESIGHT - 1] = sForesightMoveDescription,
[MOVE_DESTINY_BOND - 1] = sDestinyBondMoveDescription,
[MOVE_PERISH_SONG - 1] = sPerishSongMoveDescription,
[MOVE_ICY_WIND - 1] = sIcyWindMoveDescription,
[MOVE_DETECT - 1] = sDetectMoveDescription,
[MOVE_BONE_RUSH - 1] = sBoneRushMoveDescription,
[MOVE_LOCK_ON - 1] = sLockOnMoveDescription,
[MOVE_OUTRAGE - 1] = sOutrageMoveDescription,
[MOVE_SANDSTORM - 1] = sSandstormMoveDescription,
[MOVE_GIGA_DRAIN - 1] = sGigaDrainMoveDescription,
[MOVE_ENDURE - 1] = sEndureMoveDescription,
[MOVE_CHARM - 1] = sCharmMoveDescription,
[MOVE_ROLLOUT - 1] = sRolloutMoveDescription,
[MOVE_FALSE_SWIPE - 1] = sFalseSwipeMoveDescription,
[MOVE_SWAGGER - 1] = sSwaggerMoveDescription,
[MOVE_MILK_DRINK - 1] = sMilkDrinkMoveDescription,
[MOVE_SPARK - 1] = sSparkMoveDescription,
[MOVE_FURY_CUTTER - 1] = sFuryCutterMoveDescription,
[MOVE_STEEL_WING - 1] = sSteelWingMoveDescription,
[MOVE_MEAN_LOOK - 1] = sMeanLookMoveDescription,
[MOVE_ATTRACT - 1] = sAttractMoveDescription,
[MOVE_SLEEP_TALK - 1] = sSleepTalkMoveDescription,
[MOVE_HEAL_BELL - 1] = sHealBellMoveDescription,
[MOVE_RETURN - 1] = sReturnMoveDescription,
[MOVE_PRESENT - 1] = sPresentMoveDescription,
[MOVE_FRUSTRATION - 1] = sFrustrationMoveDescription,
[MOVE_SAFEGUARD - 1] = sSafeguardMoveDescription,
[MOVE_PAIN_SPLIT - 1] = sPainSplitMoveDescription,
[MOVE_SACRED_FIRE - 1] = sSacredFireMoveDescription,
[MOVE_MAGNITUDE - 1] = sMagnitudeMoveDescription,
[MOVE_DYNAMIC_PUNCH - 1] = sDynamicPunchMoveDescription,
[MOVE_MEGAHORN - 1] = sMegahornMoveDescription,
[MOVE_DRAGON_BREATH - 1] = sDragonBreathMoveDescription,
[MOVE_BATON_PASS - 1] = sBatonPassMoveDescription,
[MOVE_ENCORE - 1] = sEncoreMoveDescription,
[MOVE_PURSUIT - 1] = sPursuitMoveDescription,
[MOVE_RAPID_SPIN - 1] = sRapidSpinMoveDescription,
[MOVE_SWEET_SCENT - 1] = sSweetScentMoveDescription,
[MOVE_IRON_TAIL - 1] = sIronTailMoveDescription,
[MOVE_METAL_CLAW - 1] = sMetalClawMoveDescription,
[MOVE_VITAL_THROW - 1] = sVitalThrowMoveDescription,
[MOVE_MORNING_SUN - 1] = sMorningSunMoveDescription,
[MOVE_SYNTHESIS - 1] = sSynthesisMoveDescription,
[MOVE_MOONLIGHT - 1] = sMoonlightMoveDescription,
[MOVE_HIDDEN_POWER - 1] = sHiddenPowerMoveDescription,
[MOVE_CROSS_CHOP - 1] = sCrossChopMoveDescription,
[MOVE_TWISTER - 1] = sTwisterMoveDescription,
[MOVE_RAIN_DANCE - 1] = sRainDanceMoveDescription,
[MOVE_SUNNY_DAY - 1] = sSunnyDayMoveDescription,
[MOVE_CRUNCH - 1] = sCrunchMoveDescription,
[MOVE_MIRROR_COAT - 1] = sMirrorCoatMoveDescription,
[MOVE_PSYCH_UP - 1] = sPsychUpMoveDescription,
[MOVE_EXTREME_SPEED - 1] = sExtremeSpeedMoveDescription,
[MOVE_ANCIENT_POWER - 1] = sAncientPowerMoveDescription,
[MOVE_SHADOW_BALL - 1] = sShadowBallMoveDescription,
[MOVE_FUTURE_SIGHT - 1] = sFutureSightMoveDescription,
[MOVE_ROCK_SMASH - 1] = sRockSmashMoveDescription,
[MOVE_WHIRLPOOL - 1] = sWhirlpoolMoveDescription,
[MOVE_BEAT_UP - 1] = sBeatUpMoveDescription,
[MOVE_FAKE_OUT - 1] = sFakeOutMoveDescription,
[MOVE_UPROAR - 1] = sUproarMoveDescription,
[MOVE_STOCKPILE - 1] = sStockpileMoveDescription,
[MOVE_SPIT_UP - 1] = sSpitUpMoveDescription,
[MOVE_SWALLOW - 1] = sSwallowMoveDescription,
[MOVE_HEAT_WAVE - 1] = sHeatWaveMoveDescription,
[MOVE_HAIL - 1] = sHailMoveDescription,
[MOVE_TORMENT - 1] = sTormentMoveDescription,
[MOVE_FLATTER - 1] = sFlatterMoveDescription,
[MOVE_WILL_O_WISP - 1] = sWillOWispMoveDescription,
[MOVE_MEMENTO - 1] = sMementoMoveDescription,
[MOVE_FACADE - 1] = sFacadeMoveDescription,
[MOVE_FOCUS_PUNCH - 1] = sFocusPunchMoveDescription,
[MOVE_SMELLING_SALT - 1] = sSmellingSaltMoveDescription,
[MOVE_FOLLOW_ME - 1] = sFollowMeMoveDescription,
[MOVE_NATURE_POWER - 1] = sNaturePowerMoveDescription,
[MOVE_CHARGE - 1] = sChargeMoveDescription,
[MOVE_TAUNT - 1] = sTauntMoveDescription,
[MOVE_HELPING_HAND - 1] = sHelpingHandMoveDescription,
[MOVE_TRICK - 1] = sTrickMoveDescription,
[MOVE_ROLE_PLAY - 1] = sRolePlayMoveDescription,
[MOVE_WISH - 1] = sWishMoveDescription,
[MOVE_ASSIST - 1] = sAssistMoveDescription,
[MOVE_INGRAIN - 1] = sIngrainMoveDescription,
[MOVE_SUPERPOWER - 1] = sSuperpowerMoveDescription,
[MOVE_MAGIC_COAT - 1] = sMagicCoatMoveDescription,
[MOVE_RECYCLE - 1] = sRecycleMoveDescription,
[MOVE_REVENGE - 1] = sRevengeMoveDescription,
[MOVE_BRICK_BREAK - 1] = sBrickBreakMoveDescription,
[MOVE_YAWN - 1] = sYawnMoveDescription,
[MOVE_KNOCK_OFF - 1] = sKnockOffMoveDescription,
[MOVE_ENDEAVOR - 1] = sEndeavorMoveDescription,
[MOVE_ERUPTION - 1] = sEruptionMoveDescription,
[MOVE_SKILL_SWAP - 1] = sSkillSwapMoveDescription,
[MOVE_IMPRISON - 1] = sImprisonMoveDescription,
[MOVE_REFRESH - 1] = sRefreshMoveDescription,
[MOVE_GRUDGE - 1] = sGrudgeMoveDescription,
[MOVE_SNATCH - 1] = sSnatchMoveDescription,
[MOVE_SECRET_POWER - 1] = sSecretPowerMoveDescription,
[MOVE_DIVE - 1] = sDiveMoveDescription,
[MOVE_ARM_THRUST - 1] = sArmThrustMoveDescription,
[MOVE_CAMOUFLAGE - 1] = sCamouflageMoveDescription,
[MOVE_TAIL_GLOW - 1] = sTailGlowMoveDescription,
[MOVE_LUSTER_PURGE - 1] = sLusterPurgeMoveDescription,
[MOVE_MIST_BALL - 1] = sMistBallMoveDescription,
[MOVE_FEATHER_DANCE - 1] = sFeatherDanceMoveDescription,
[MOVE_TEETER_DANCE - 1] = sTeeterDanceMoveDescription,
[MOVE_BLAZE_KICK - 1] = sBlazeKickMoveDescription,
[MOVE_MUD_SPORT - 1] = sMudSportMoveDescription,
[MOVE_ICE_BALL - 1] = sIceBallMoveDescription,
[MOVE_NEEDLE_ARM - 1] = sNeedleArmMoveDescription,
[MOVE_SLACK_OFF - 1] = sSlackOffMoveDescription,
[MOVE_HYPER_VOICE - 1] = sHyperVoiceMoveDescription,
[MOVE_POISON_FANG - 1] = sPoisonFangMoveDescription,
[MOVE_CRUSH_CLAW - 1] = sCrushClawMoveDescription,
[MOVE_BLAST_BURN - 1] = sBlastBurnMoveDescription,
[MOVE_HYDRO_CANNON - 1] = sHydroCannonMoveDescription,
[MOVE_METEOR_MASH - 1] = sMeteorMashMoveDescription,
[MOVE_ASTONISH - 1] = sAstonishMoveDescription,
[MOVE_WEATHER_BALL - 1] = sWeatherBallMoveDescription,
[MOVE_AROMATHERAPY - 1] = sAromatherapyMoveDescription,
[MOVE_FAKE_TEARS - 1] = sFakeTearsMoveDescription,
[MOVE_AIR_CUTTER - 1] = sAirCutterMoveDescription,
[MOVE_OVERHEAT - 1] = sOverheatMoveDescription,
[MOVE_ODOR_SLEUTH - 1] = sOdorSleuthMoveDescription,
[MOVE_ROCK_TOMB - 1] = sRockTombMoveDescription,
[MOVE_SILVER_WIND - 1] = sSilverWindMoveDescription,
[MOVE_METAL_SOUND - 1] = sMetalSoundMoveDescription,
[MOVE_GRASS_WHISTLE - 1] = sGrassWhistleMoveDescription,
[MOVE_TICKLE - 1] = sTickleMoveDescription,
[MOVE_COSMIC_POWER - 1] = sCosmicPowerMoveDescription,
[MOVE_WATER_SPOUT - 1] = sWaterSpoutMoveDescription,
[MOVE_SIGNAL_BEAM - 1] = sSignalBeamMoveDescription,
[MOVE_SHADOW_PUNCH - 1] = sShadowPunchMoveDescription,
[MOVE_EXTRASENSORY - 1] = sExtrasensoryMoveDescription,
[MOVE_SKY_UPPERCUT - 1] = sSkyUppercutMoveDescription,
[MOVE_SAND_TOMB - 1] = sSandTombMoveDescription,
[MOVE_SHEER_COLD - 1] = sSheerColdMoveDescription,
[MOVE_MUDDY_WATER - 1] = sMuddyWaterMoveDescription,
[MOVE_BULLET_SEED - 1] = sBulletSeedMoveDescription,
[MOVE_AERIAL_ACE - 1] = sAerialAceMoveDescription,
[MOVE_ICICLE_SPEAR - 1] = sIcicleSpearMoveDescription,
[MOVE_IRON_DEFENSE - 1] = sIronDefenseMoveDescription,
[MOVE_BLOCK - 1] = sBlockMoveDescription,
[MOVE_HOWL - 1] = sHowlMoveDescription,
[MOVE_DRAGON_CLAW - 1] = sDragonClawMoveDescription,
[MOVE_FRENZY_PLANT - 1] = sFrenzyPlantMoveDescription,
[MOVE_BULK_UP - 1] = sBulkUpMoveDescription,
[MOVE_BOUNCE - 1] = sBounceMoveDescription,
[MOVE_MUD_SHOT - 1] = sMudShotMoveDescription,
[MOVE_POISON_TAIL - 1] = sPoisonTailMoveDescription,
[MOVE_COVET - 1] = sCovetMoveDescription,
[MOVE_VOLT_TACKLE - 1] = sVoltTackleMoveDescription,
[MOVE_MAGICAL_LEAF - 1] = sMagicalLeafMoveDescription,
[MOVE_WATER_SPORT - 1] = sWaterSportMoveDescription,
[MOVE_CALM_MIND - 1] = sCalmMindMoveDescription,
[MOVE_LEAF_BLADE - 1] = sLeafBladeMoveDescription,
[MOVE_DRAGON_DANCE - 1] = sDragonDanceMoveDescription,
[MOVE_ROCK_BLAST - 1] = sRockBlastMoveDescription,
[MOVE_SHOCK_WAVE - 1] = sShockWaveMoveDescription,
[MOVE_WATER_PULSE - 1] = sWaterPulseMoveDescription,
[MOVE_DOOM_DESIRE - 1] = sDoomDesireMoveDescription,
[MOVE_PSYCHO_BOOST - 1] = sPsychoBoostMoveDescription,
};

View File

@@ -1,4 +1,5 @@
const u8 gMoveNames[][13] = {
const u8 gMoveNames[MOVES_COUNT][MOVE_NAME_LENGTH + 1] =
{
[MOVE_NONE] = _("-"),
[MOVE_POUND] = _("POUND"),
[MOVE_KARATE_CHOP] = _("KARATE CHOP"),

View File

@@ -63,7 +63,7 @@ static const struct WindowTemplate gUnknown_085E5070[] = {
// .text
void sub_817018C(MainCallback callback)
void FieldInitRegionMap(MainCallback callback)
{
SetVBlankCallback(NULL);
sFieldRegionMapHandler = malloc(sizeof(*sFieldRegionMapHandler));

View File

@@ -272,7 +272,7 @@ bool8 sub_80FB59C(void)
void Task_HandlePorthole(u8 taskId)
{
s16 *data = gTasks[taskId].data;
u16 *var = GetVarPointer(VAR_PORTHOLE);
u16 *var = GetVarPointer(VAR_PORTHOLE_STATE);
struct WarpData *location = &gSaveBlock1Ptr->location;
switch (data[0])

4329
src/field_specials.c Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -1,83 +1,37 @@
// Includes
#include "global.h"
#include "constants/maps.h"
#include "heal_location.h"
#include "constants/maps.h"
#define HEAL_LOCATION(map, x, y) {MAP_GROUP(map), MAP_NUM(map), x, y}
#include "data/heal_locations.h"
// Static type declarations
// Static RAM declarations
// Static ROM declarations
// .rodata
static const struct HealLocation sHealLocations[] = {
HEAL_LOCATION(LITTLEROOT_TOWN_BRENDANS_HOUSE_2F, 4, 2),
HEAL_LOCATION(LITTLEROOT_TOWN_MAYS_HOUSE_2F, 4, 2),
HEAL_LOCATION(PETALBURG_CITY, 20, 17),
HEAL_LOCATION(SLATEPORT_CITY, 19, 20),
HEAL_LOCATION(MAUVILLE_CITY, 22, 6),
HEAL_LOCATION(RUSTBORO_CITY, 16, 39),
HEAL_LOCATION(FORTREE_CITY, 5, 7),
HEAL_LOCATION(LILYCOVE_CITY, 24, 15),
HEAL_LOCATION(MOSSDEEP_CITY, 28, 17),
HEAL_LOCATION(SOOTOPOLIS_CITY, 43, 32),
HEAL_LOCATION(EVER_GRANDE_CITY, 27, 49),
HEAL_LOCATION(LITTLEROOT_TOWN, 5, 9),
HEAL_LOCATION(LITTLEROOT_TOWN, 14, 9),
HEAL_LOCATION(OLDALE_TOWN, 6, 17),
HEAL_LOCATION(DEWFORD_TOWN, 2, 11),
HEAL_LOCATION(LAVARIDGE_TOWN, 9, 7),
HEAL_LOCATION(FALLARBOR_TOWN, 14, 8),
HEAL_LOCATION(VERDANTURF_TOWN, 16, 4),
HEAL_LOCATION(PACIFIDLOG_TOWN, 8, 16),
HEAL_LOCATION(EVER_GRANDE_CITY, 18, 6),
HEAL_LOCATION(SOUTHERN_ISLAND_EXTERIOR, 15, 20),
HEAL_LOCATION(BATTLE_FRONTIER_OUTSIDE_EAST, 3, 52)
};
#define NUM_HEAL_LOCATIONS (ARRAY_COUNT(sHealLocations))
// .text
static u32 GetHealLocationIndexFromMapGroupAndNum(u16 mapGroup, u16 mapNum)
u32 GetHealLocationIndexByMap(u16 mapGroup, u16 mapNum)
{
u32 i;
for (i = 0; i < NUM_HEAL_LOCATIONS; i++)
for (i = 0; i < ARRAY_COUNT(sHealLocations); i++)
{
if (sHealLocations[i].group == mapGroup && sHealLocations[i].map == mapNum)
{
return i + 1;
}
}
return 0;
}
const struct HealLocation *GetHealLocationPointerFromMapGroupAndNum(u16 mapGroup, u16 mapNum)
const struct HealLocation *GetHealLocationByMap(u16 mapGroup, u16 mapNum)
{
u32 loc;
u32 index = GetHealLocationIndexByMap(mapGroup, mapNum);
loc = GetHealLocationIndexFromMapGroupAndNum(mapGroup, mapNum);
if (loc == 0)
{
if (index == 0)
return NULL;
}
return &sHealLocations[loc - 1];
else
return &sHealLocations[index - 1];
}
const struct HealLocation *GetHealLocationPointer(u32 loc)
const struct HealLocation *GetHealLocation(u32 index)
{
if (loc == 0)
{
if (index == 0)
return NULL;
}
if (loc > NUM_HEAL_LOCATIONS)
{
else if (index > ARRAY_COUNT(sHealLocations))
return NULL;
}
return &sHealLocations[loc - 1];
else
return &sHealLocations[index - 1];
}

View File

@@ -1965,7 +1965,7 @@ void sub_80323CC(u8 a, u8 b, u16 c, u16 d, u8 e, u8 f)
{
struct WindowTemplate sp;
sp = sub_8198A50(0, a + 1, b + 1, 5, 4, f, d);
sp = CreateWindowTemplate(0, a + 1, b + 1, 5, 4, f, d);
CreateYesNoMenu(&sp, c, e, 0);
}

View File

@@ -360,7 +360,7 @@ MATCHCALLDEF(sMomMatchCallHeader, 0, 0, FLAG_0x0D8, gMomMatchCallDesc, gMomMatch
static const match_call_text_data_t sStevenTextScripts[] = {
{ gText_Steven_Pokenav_2B5B95, 0xffff, 0xffff },
{ gText_Steven_Pokenav_2B5C53, FLAG_0x0C7, 0xffff },
{ gText_Steven_Pokenav_2B5C53, FLAG_RUSTURF_TUNNEL_OPENED, 0xffff },
{ gText_Steven_Pokenav_2B5CC9, FLAG_0x0D4, 0xffff },
{ gText_Steven_Pokenav_2B5DB4, FLAG_0x070, 0xffff },
{ gText_Steven_Pokenav_2B5E26, FLAG_0x4F6, 0xffff },
@@ -415,7 +415,7 @@ MATCHCALLDEF(sBrendanMatchCallHeader, 4, FEMALE, FLAG_0x0FD, gMayBrendanMatchCal
static const match_call_text_data_t sWallyTextScripts[] = {
{ gText_Wally_Pokenav_2B4DE2, 0xFFFF, 0xFFFF },
{ gText_Wally_Pokenav_2B4E57, FLAG_0x0C7, 0xFFFF },
{ gText_Wally_Pokenav_2B4E57, FLAG_RUSTURF_TUNNEL_OPENED, 0xFFFF },
{ gText_Wally_Pokenav_2B4EA5, FLAG_0x4F3, 0xFFFF },
{ gText_Wally_Pokenav_2B4F41, FLAG_0x097, 0xFFFF },
{ gText_Wally_Pokenav_2B4FF3, FLAG_0x06F, 0xFFFF },

View File

@@ -120,7 +120,6 @@ extern void DrawWindowBorder(u8, u8, u8, u8, u8, u8);
extern void sub_81980A8(u8, u8, u8, u8, u8, u8);
extern u8 MoveMenuCursor(s8);
extern u8 sub_8199134(s8, s8);
extern void sub_8199F74(u8 windowId, u8 fontId, const u8 *str, u8 left, u8 top, u8 speed, void (*callback)(struct TextSubPrinter *, u16), u8 letterSpacing, u8 lineSpacing);
extern void sub_8198C78(void);
extern void task_free_buf_after_copying_tile_data_to_vram(u8 taskId);
@@ -1143,7 +1142,7 @@ void SetWindowTemplateFields(struct WindowTemplate *template, u8 bg, u8 left, u8
template->baseBlock = baseBlock;
}
struct WindowTemplate sub_8198A50(u8 bg, u8 left, u8 top, u8 width, u8 height, u8 paletteNum, u16 baseBlock)
struct WindowTemplate CreateWindowTemplate(u8 bg, u8 left, u8 top, u8 width, u8 height, u8 paletteNum, u16 baseBlock)
{
struct WindowTemplate template;
SetWindowTemplateFields(&template, bg, left, top, width, height, paletteNum, baseBlock);

View File

@@ -689,7 +689,7 @@ void copy_saved_warp2_bank_and_enter_x_to_warp1(u8 unused)
void sub_8084CCC(u8 a1)
{
const struct HealLocation *warp = GetHealLocationPointer(a1);
const struct HealLocation *warp = GetHealLocation(a1);
if (warp)
Overworld_SetWarpDestination(warp->group, warp->map, -1, warp->x, warp->y);
@@ -702,7 +702,7 @@ void Overworld_SetWarpDestToLastHealLoc(void)
void Overworld_SetHealLocationWarp(u8 healLocationId)
{
const struct HealLocation *healLocation = GetHealLocationPointer(healLocationId);
const struct HealLocation *healLocation = GetHealLocation(healLocationId);
if (healLocation != NULL)
SetWarpData(&gSaveBlock1Ptr->lastHealLocation, healLocation->group, healLocation->map, -1, healLocation->x, healLocation->y);
@@ -761,7 +761,7 @@ void sub_8084F2C(s8 mapGroup, s8 mapNum, s8 warpId, s8 x, s8 y)
void sub_8084F6C(u8 a1)
{
const struct HealLocation *warp = GetHealLocationPointer(a1);
const struct HealLocation *warp = GetHealLocation(a1);
if (warp)
SetWarpData(&gSaveBlock1Ptr->warp1, warp->group, warp->map, -1, warp->x, warp->y);
}

View File

@@ -2089,7 +2089,7 @@ void GiveBoxMonInitialMoveset(struct BoxPokemon *boxMon)
s32 level = GetLevelFromBoxMonExp(boxMon);
s32 i;
for (i = 0; gLevelUpLearnsets[species][i] != (u16)-1; i++)
for (i = 0; gLevelUpLearnsets[species][i] != LEVEL_UP_END; i++)
{
u16 moveLevel;
u16 move;
@@ -2101,7 +2101,7 @@ void GiveBoxMonInitialMoveset(struct BoxPokemon *boxMon)
move = (gLevelUpLearnsets[species][i] & 0x1FF);
if (GiveMoveToBoxMon(boxMon, move) == (u16)-1)
if (GiveMoveToBoxMon(boxMon, move) == 0xFFFF)
DeleteFirstMoveAndGiveMoveToBoxMon(boxMon, move);
}
}
@@ -2123,7 +2123,7 @@ u16 MonTryLearningNewMove(struct Pokemon *mon, bool8 firstMove)
while ((gLevelUpLearnsets[species][sLearningMoveTableID] & 0xFE00) != (level << 9))
{
sLearningMoveTableID++;
if (gLevelUpLearnsets[species][sLearningMoveTableID] == 0xFFFF)
if (gLevelUpLearnsets[species][sLearningMoveTableID] == LEVEL_UP_END)
return 0;
}
}

View File

@@ -57,7 +57,6 @@ extern u8 gUnknown_0861CE7B[];
extern struct WindowTemplate gUnknown_0861CCEC;
extern struct WindowTemplate gUnknown_0861CD14;
extern const u8 *const gContestEffectDescriptionPointers[];
extern const u8 *const gMoveDescriptionPointers[];
void sub_81C488C(u8 a);
extern u8 sub_81221EC();
@@ -342,6 +341,10 @@ struct UnkSummaryStruct
u8 unk_filler4[6];
};
// const rom data
#include "data/text/move_descriptions.h"
// code
void sub_81BF8EC(u8 a, void *b, u8 c, u8 d, void *e)
{
u8 byte;

View File

@@ -22,6 +22,8 @@
#include "field_effect.h"
#include "region_map.h"
#include "constants/region_map_sections.h"
#include "heal_location.h"
#include "constants/heal_locations.h"
#define MAP_WIDTH 28
#define MAP_HEIGHT 15
@@ -52,7 +54,7 @@ static EWRAM_DATA struct {
/*0x88c*/ u8 unk_88c[0x1c0];
/*0xa4c*/ u8 unk_a4c[0x26];
/*0xa72*/ bool8 unk_a72;
} *gUnknown_0203A148 = NULL; // a74
} *sFlyMap = NULL; // a74
static bool32 gUnknown_03001180;
static bool32 gUnknown_03001184;
@@ -242,23 +244,23 @@ static const u16 Unknown_085A1D48[] = INCBIN_U16("graphics/pokenav/fly_target_ic
static const u8 sUnknown_085A1D68[] = INCBIN_U8("graphics/pokenav/fly_target_icons.4bpp.lz");
static const u8 sUnknown_085A1E3C[][3] = {
{MAP_GROUP(LITTLEROOT_TOWN), MAP_NUM(LITTLEROOT_TOWN), 1},
{MAP_GROUP(OLDALE_TOWN), MAP_NUM(OLDALE_TOWN), 14},
{MAP_GROUP(DEWFORD_TOWN), MAP_NUM(DEWFORD_TOWN), 15},
{MAP_GROUP(LAVARIDGE_TOWN), MAP_NUM(LAVARIDGE_TOWN), 16},
{MAP_GROUP(FALLARBOR_TOWN), MAP_NUM(FALLARBOR_TOWN), 17},
{MAP_GROUP(VERDANTURF_TOWN), MAP_NUM(VERDANTURF_TOWN), 18},
{MAP_GROUP(PACIFIDLOG_TOWN), MAP_NUM(PACIFIDLOG_TOWN), 19},
{MAP_GROUP(PETALBURG_CITY), MAP_NUM(PETALBURG_CITY), 3},
{MAP_GROUP(SLATEPORT_CITY), MAP_NUM(SLATEPORT_CITY), 4},
{MAP_GROUP(MAUVILLE_CITY), MAP_NUM(MAUVILLE_CITY), 5},
{MAP_GROUP(RUSTBORO_CITY), MAP_NUM(RUSTBORO_CITY), 6},
{MAP_GROUP(FORTREE_CITY), MAP_NUM(FORTREE_CITY), 7},
{MAP_GROUP(LILYCOVE_CITY), MAP_NUM(LILYCOVE_CITY), 8},
{MAP_GROUP(MOSSDEEP_CITY), MAP_NUM(MOSSDEEP_CITY), 9},
{MAP_GROUP(SOOTOPOLIS_CITY), MAP_NUM(SOOTOPOLIS_CITY), 10},
{MAP_GROUP(EVER_GRANDE_CITY), MAP_NUM(EVER_GRANDE_CITY), 11},
static const u8 sMapHealLocations[][3] = {
{MAP_GROUP(LITTLEROOT_TOWN), MAP_NUM(LITTLEROOT_TOWN), HEAL_LOCATION_LITTLEROOT_TOWN_BRENDANS_HOUSE_2F},
{MAP_GROUP(OLDALE_TOWN), MAP_NUM(OLDALE_TOWN), HEAL_LOCATION_OLDALE_TOWN},
{MAP_GROUP(DEWFORD_TOWN), MAP_NUM(DEWFORD_TOWN), HEAL_LOCATION_DEWFORD_TOWN},
{MAP_GROUP(LAVARIDGE_TOWN), MAP_NUM(LAVARIDGE_TOWN), HEAL_LOCATION_LAVARIDGE_TOWN},
{MAP_GROUP(FALLARBOR_TOWN), MAP_NUM(FALLARBOR_TOWN), HEAL_LOCATION_FALLARBOR_TOWN},
{MAP_GROUP(VERDANTURF_TOWN), MAP_NUM(VERDANTURF_TOWN), HEAL_LOCATION_VERDANTURF_TOWN},
{MAP_GROUP(PACIFIDLOG_TOWN), MAP_NUM(PACIFIDLOG_TOWN), HEAL_LOCATION_PACIFIDLOG_TOWN},
{MAP_GROUP(PETALBURG_CITY), MAP_NUM(PETALBURG_CITY), HEAL_LOCATION_PETALBURG_CITY},
{MAP_GROUP(SLATEPORT_CITY), MAP_NUM(SLATEPORT_CITY), HEAL_LOCATION_SLATEPORT_CITY},
{MAP_GROUP(MAUVILLE_CITY), MAP_NUM(MAUVILLE_CITY), HEAL_LOCATION_MAUVILLE_CITY},
{MAP_GROUP(RUSTBORO_CITY), MAP_NUM(RUSTBORO_CITY), HEAL_LOCATION_RUSTBORO_CITY},
{MAP_GROUP(FORTREE_CITY), MAP_NUM(FORTREE_CITY), HEAL_LOCATION_FORTREE_CITY},
{MAP_GROUP(LILYCOVE_CITY), MAP_NUM(LILYCOVE_CITY), HEAL_LOCATION_LILYCOVE_CITY},
{MAP_GROUP(MOSSDEEP_CITY), MAP_NUM(MOSSDEEP_CITY), HEAL_LOCATION_MOSSDEEP_CITY},
{MAP_GROUP(SOOTOPOLIS_CITY), MAP_NUM(SOOTOPOLIS_CITY), HEAL_LOCATION_SOOTOPOLIS_CITY},
{MAP_GROUP(EVER_GRANDE_CITY), MAP_NUM(EVER_GRANDE_CITY), HEAL_LOCATION_EVER_GRANDE_CITY_1},
{MAP_GROUP(ROUTE101), MAP_NUM(ROUTE101), 0},
{MAP_GROUP(ROUTE102), MAP_NUM(ROUTE102), 0},
{MAP_GROUP(ROUTE103), MAP_NUM(ROUTE103), 0},
@@ -1578,8 +1580,8 @@ void MCB2_FlyMap(void)
SetGpuReg(REG_OFFSET_BG2HOFS, 0);
SetGpuReg(REG_OFFSET_BG3HOFS, 0);
SetGpuReg(REG_OFFSET_BG3VOFS, 0);
gUnknown_0203A148 = malloc(sizeof(*gUnknown_0203A148));
if (gUnknown_0203A148 == NULL)
sFlyMap = malloc(sizeof(*sFlyMap));
if (sFlyMap == NULL)
{
SetMainCallback2(CB2_ReturnToFieldWithOpenMenu);
}
@@ -1608,11 +1610,11 @@ void MCB2_FlyMap(void)
gMain.state++;
break;
case 4:
InitRegionMap(&gUnknown_0203A148->regionMap, FALSE);
InitRegionMap(&sFlyMap->regionMap, FALSE);
CreateRegionMapCursor(0, 0);
CreateRegionMapPlayerIcon(1, 1);
gUnknown_0203A148->mapSecId = gUnknown_0203A148->regionMap.mapSecId;
StringFill(gUnknown_0203A148->unk_a4c, CHAR_SPACE, 16);
sFlyMap->mapSecId = sFlyMap->regionMap.mapSecId;
StringFill(sFlyMap->unk_a4c, CHAR_SPACE, 16);
gUnknown_03001180 = TRUE;
sub_8124904();
gMain.state++;
@@ -1664,7 +1666,7 @@ static void sub_81248C0(void)
static void sub_81248D4(void)
{
gUnknown_0203A148->unk_000();
sFlyMap->unk_000();
AnimateSprites();
BuildOamBuffer();
do_scheduled_bg_tilemap_copies_to_vram();
@@ -1672,8 +1674,8 @@ static void sub_81248D4(void)
static void sub_81248F4(void callback(void))
{
gUnknown_0203A148->unk_000 = callback;
gUnknown_0203A148->unk_004 = 0;
sFlyMap->unk_000 = callback;
sFlyMap->unk_004 = 0;
}
static void sub_8124904(void)
@@ -1682,21 +1684,21 @@ static void sub_8124904(void)
bool32 flag;
const u8 *name;
if (gUnknown_0203A148->regionMap.iconDrawType > MAPSECTYPE_NONE && gUnknown_0203A148->regionMap.iconDrawType <= MAPSECTYPE_BATTLE_FRONTIER)
if (sFlyMap->regionMap.iconDrawType > MAPSECTYPE_NONE && sFlyMap->regionMap.iconDrawType <= MAPSECTYPE_BATTLE_FRONTIER)
{
flag = FALSE;
for (i = 0; i < 1; i++)
{
if (gUnknown_0203A148->regionMap.mapSecId == gUnknown_085A1EDC[i].mapSecId)
if (sFlyMap->regionMap.mapSecId == gUnknown_085A1EDC[i].mapSecId)
{
if (FlagGet(gUnknown_085A1EDC[i].flag))
{
StringLength(gUnknown_085A1EDC[i].name[gUnknown_0203A148->regionMap.posWithinMapSec]);
StringLength(gUnknown_085A1EDC[i].name[sFlyMap->regionMap.posWithinMapSec]);
flag = TRUE;
sub_8198070(0, FALSE);
SetWindowBorderStyle(1, FALSE, 0x65, 0x0d);
PrintTextOnWindow(1, 1, gUnknown_0203A148->regionMap.mapSecName, 0, 1, 0, NULL);
name = gUnknown_085A1EDC[i].name[gUnknown_0203A148->regionMap.posWithinMapSec];
PrintTextOnWindow(1, 1, sFlyMap->regionMap.mapSecName, 0, 1, 0, NULL);
name = gUnknown_085A1EDC[i].name[sFlyMap->regionMap.posWithinMapSec];
PrintTextOnWindow(1, 1, name, GetStringRightAlignXOffset(1, name, 0x60), 0x11, 0, NULL);
schedule_bg_copy_tilemap_to_vram(0);
gUnknown_03001180 = TRUE;
@@ -1715,7 +1717,7 @@ static void sub_8124904(void)
{
FillWindowPixelBuffer(0, 0x11);
}
PrintTextOnWindow(0, 1, gUnknown_0203A148->regionMap.mapSecName, 0, 1, 0, NULL);
PrintTextOnWindow(0, 1, sFlyMap->regionMap.mapSecName, 0, 1, 0, NULL);
schedule_bg_copy_tilemap_to_vram(0);
gUnknown_03001180 = FALSE;
}
@@ -1739,8 +1741,8 @@ static void sub_8124A70(void)
{
struct SpriteSheet sheet;
LZ77UnCompWram(sUnknown_085A1D68, gUnknown_0203A148->unk_88c);
sheet.data = gUnknown_0203A148->unk_88c;
LZ77UnCompWram(sUnknown_085A1D68, sFlyMap->unk_88c);
sheet.data = sFlyMap->unk_88c;
sheet.size = 0x1c0;
sheet.tag = 2;
LoadSpriteSheet(&sheet);
@@ -1829,7 +1831,7 @@ static void sub_8124BE4(void)
static void sub_8124CBC(struct Sprite *sprite)
{
if (gUnknown_0203A148->regionMap.mapSecId == sprite->data[0])
if (sFlyMap->regionMap.mapSecId == sprite->data[0])
{
if (++sprite->data[1] > 16)
{
@@ -1846,11 +1848,11 @@ static void sub_8124CBC(struct Sprite *sprite)
static void sub_8124D14(void)
{
switch (gUnknown_0203A148->unk_004)
switch (sFlyMap->unk_004)
{
case 0:
BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, 0);
gUnknown_0203A148->unk_004++;
sFlyMap->unk_004++;
break;
case 1:
if (!UpdatePaletteFade())
@@ -1863,7 +1865,7 @@ static void sub_8124D14(void)
static void sub_8124D64(void)
{
if (gUnknown_0203A148->unk_004 == 0)
if (sFlyMap->unk_004 == 0)
{
switch (sub_81230AC())
{
@@ -1875,16 +1877,16 @@ static void sub_8124D64(void)
sub_8124904();
break;
case INPUT_EVENT_A_BUTTON:
if (gUnknown_0203A148->regionMap.iconDrawType == MAPSECTYPE_CITY_CANFLY || gUnknown_0203A148->regionMap.iconDrawType == MAPSECTYPE_BATTLE_FRONTIER)
if (sFlyMap->regionMap.iconDrawType == MAPSECTYPE_CITY_CANFLY || sFlyMap->regionMap.iconDrawType == MAPSECTYPE_BATTLE_FRONTIER)
{
m4aSongNumStart(SE_SELECT);
gUnknown_0203A148->unk_a72 = TRUE;
sFlyMap->unk_a72 = TRUE;
sub_81248F4(sub_8124E0C);
}
break;
case INPUT_EVENT_B_BUTTON:
m4aSongNumStart(SE_SELECT);
gUnknown_0203A148->unk_a72 = FALSE;
sFlyMap->unk_a72 = FALSE;
sub_81248F4(sub_8124E0C);
break;
}
@@ -1893,40 +1895,40 @@ static void sub_8124D64(void)
static void sub_8124E0C(void)
{
switch (gUnknown_0203A148->unk_004)
switch (sFlyMap->unk_004)
{
case 0:
BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, 0);
gUnknown_0203A148->unk_004++;
sFlyMap->unk_004++;
break;
case 1:
if (!UpdatePaletteFade())
{
FreeRegionMapIconResources();
if (gUnknown_0203A148->unk_a72)
if (sFlyMap->unk_a72)
{
switch (gUnknown_0203A148->regionMap.mapSecId)
switch (sFlyMap->regionMap.mapSecId)
{
case MAPSEC_SOUTHERN_ISLAND:
sub_8084CCC(0x15);
sub_8084CCC(HEAL_LOCATION_SOUTHERN_ISLAND_EXTERIOR);
break;
case MAPSEC_BATTLE_FRONTIER:
sub_8084CCC(0x16);
sub_8084CCC(HEAL_LOCATION_BATTLE_FRONTIER_OUTSIDE_EAST);
break;
case MAPSEC_LITTLEROOT_TOWN:
sub_8084CCC(gSaveBlock2Ptr->playerGender == MALE ? 0x0C : 0x0D);
sub_8084CCC(gSaveBlock2Ptr->playerGender == MALE ? HEAL_LOCATION_LITTLEROOT_TOWN_1 : HEAL_LOCATION_LITTLEROOT_TOWN_2);
break;
case MAPSEC_EVER_GRANDE_CITY:
sub_8084CCC(FlagGet(FLAG_LANDMARK_POKEMON_LEAGUE) && gUnknown_0203A148->regionMap.posWithinMapSec == 0 ? 0x14 : 0x0B);
sub_8084CCC(FlagGet(FLAG_LANDMARK_POKEMON_LEAGUE) && sFlyMap->regionMap.posWithinMapSec == 0 ? HEAL_LOCATION_EVER_GRANDE_CITY_2 : HEAL_LOCATION_EVER_GRANDE_CITY_1);
break;
default:
if (sUnknown_085A1E3C[gUnknown_0203A148->regionMap.mapSecId][2] != 0)
if (sMapHealLocations[sFlyMap->regionMap.mapSecId][2] != 0)
{
sub_8084CCC(sUnknown_085A1E3C[gUnknown_0203A148->regionMap.mapSecId][2]);
sub_8084CCC(sMapHealLocations[sFlyMap->regionMap.mapSecId][2]);
}
else
{
warp1_set_2(sUnknown_085A1E3C[gUnknown_0203A148->regionMap.mapSecId][0], sUnknown_085A1E3C[gUnknown_0203A148->regionMap.mapSecId][1], -1);
warp1_set_2(sMapHealLocations[sFlyMap->regionMap.mapSecId][0], sMapHealLocations[sFlyMap->regionMap.mapSecId][1], -1);
}
break;
}
@@ -1936,10 +1938,10 @@ static void sub_8124E0C(void)
{
SetMainCallback2(sub_81B58A8);
}
if (gUnknown_0203A148 != NULL)
if (sFlyMap != NULL)
{
free(gUnknown_0203A148);
gUnknown_0203A148 = NULL;
free(sFlyMap);
sFlyMap = NULL;
}
FreeAllWindowBuffers();
}

View File

@@ -189,12 +189,6 @@ struct RotatingGatePuzzle
u8 orientation;
};
struct Coords8
{
s8 deltaX;
s8 deltaY;
};
// .rodata
// Fortree
static const struct RotatingGatePuzzle sRotatingGate_FortreePuzzleConfig[] =

View File

@@ -1515,7 +1515,7 @@ bool8 ScrCmd_braillemessage(struct ScriptContext *ctx)
xText = (xWindow - xText - 1) * 8 + 3;
yText = (yText - yWindow - 1) * 8;
winTemplate = sub_8198A50(0, xWindow, yWindow + 1, width, height, 0xF, 0x1);
winTemplate = CreateWindowTemplate(0, xWindow, yWindow + 1, width, height, 0xF, 0x1);
gUnknown_03000F30 = AddWindow(&winTemplate);
LoadUserWindowBorderGfx(gUnknown_03000F30, 0x214, 0xE0);
NewMenuHelpers_DrawStdWindowFrame(gUnknown_03000F30, 0);

View File

@@ -602,7 +602,7 @@ static void WallClockInit(void)
ShowBg(3);
}
void Cb2_StartWallClock(void)
void CB2_StartWallClock(void)
{
u8 taskId;
u8 spriteId;
@@ -644,7 +644,7 @@ void Cb2_StartWallClock(void)
schedule_bg_copy_tilemap_to_vram(2);
}
void Cb2_ViewWallClock(void)
void CB2_ViewWallClock(void)
{
u8 taskId;
u8 spriteId;