Merge branch 'upcoming' into 111125
This commit is contained in:
commit
bb11d96d86
@ -7,6 +7,7 @@
|
||||
#include "constants/battle.h"
|
||||
#include "constants/form_change_types.h"
|
||||
#include "constants/hold_effects.h"
|
||||
#include "constants/moves.h"
|
||||
#include "battle_main.h"
|
||||
#include "battle_message.h"
|
||||
#include "battle_util.h"
|
||||
@ -587,7 +588,8 @@ struct BattlerState
|
||||
u32 ateBoost:1;
|
||||
u32 wasAboveHalfHp:1; // For Berserk, Emergency Exit, Wimp Out and Anger Shell.
|
||||
u32 commanderSpecies:11;
|
||||
u32 padding:4;
|
||||
u32 selectionScriptFinished:1;
|
||||
u32 padding:3;
|
||||
// End of Word
|
||||
};
|
||||
|
||||
@ -628,7 +630,6 @@ struct BattleStruct
|
||||
struct BattlerState battlerState[MAX_BATTLERS_COUNT];
|
||||
struct PartyState partyState[NUM_BATTLE_SIDES][PARTY_SIZE];
|
||||
struct EventStates eventState;
|
||||
u16 wrappedMove[MAX_BATTLERS_COUNT];
|
||||
u16 moveTarget[MAX_BATTLERS_COUNT];
|
||||
u32 expShareExpValue;
|
||||
u32 expValue;
|
||||
@ -641,14 +642,12 @@ struct BattleStruct
|
||||
u8 expSentInMons; // As bits for player party mons - not including exp share mons.
|
||||
u8 wildVictorySong;
|
||||
enum Type dynamicMoveType;
|
||||
u8 wrappedBy[MAX_BATTLERS_COUNT];
|
||||
u8 battlerPreventingSwitchout;
|
||||
u8 moneyMultiplier:6;
|
||||
u8 moneyMultiplierItem:1;
|
||||
u8 moneyMultiplierMove:1;
|
||||
u8 savedTurnActionNumber;
|
||||
u8 scriptPartyIdx; // for printing the nickname
|
||||
bool8 selectionScriptFinished[MAX_BATTLERS_COUNT];
|
||||
u8 battlerPartyIndexes[MAX_BATTLERS_COUNT];
|
||||
u8 monToSwitchIntoId[MAX_BATTLERS_COUNT];
|
||||
u8 battlerPartyOrders[MAX_BATTLERS_COUNT][PARTY_SIZE / 2];
|
||||
@ -753,7 +752,6 @@ struct BattleStruct
|
||||
s32 aiDelayTimer; // Counts number of frames AI takes to choose an action.
|
||||
s32 aiDelayFrames; // Number of frames it took to choose an action.
|
||||
s32 aiDelayCycles; // Number of cycles it took to choose an action.
|
||||
u8 stickySyrupdBy[MAX_BATTLERS_COUNT];
|
||||
u8 supremeOverlordCounter[MAX_BATTLERS_COUNT];
|
||||
u8 shellSideArmCategory[MAX_BATTLERS_COUNT][MAX_BATTLERS_COUNT];
|
||||
u8 speedTieBreaks; // MAX_BATTLERS_COUNT! values.
|
||||
|
||||
@ -1,6 +1,8 @@
|
||||
#ifndef GUARD_CONSTANTS_BATTLE_H
|
||||
#define GUARD_CONSTANTS_BATTLE_H
|
||||
|
||||
#include "constants/moves.h"
|
||||
|
||||
/*
|
||||
* A battler may be in one of four positions on the field. The first bit determines
|
||||
* what side the battler is on, either the player's side or the opponent's side.
|
||||
@ -168,6 +170,8 @@ enum VolatileFlags
|
||||
F(VOLATILE_LOCK_CONFUSE, lockConfusionTurns, (u32, 3)) \
|
||||
F(VOLATILE_MULTIPLETURNS, multipleTurns, (u32, 1)) \
|
||||
F(VOLATILE_WRAPPED, wrapped, (u32, 1)) \
|
||||
F(VOLATILE_WRAPPED_BY, wrappedBy, (enum BattlerId, MAX_BITS(4))) \
|
||||
F(VOLATILE_WRAPPED_MOVE, wrappedMove, (u32, MOVES_COUNT_ALL - 1)) \
|
||||
F(VOLATILE_POWDER, powder, (u32, 1)) \
|
||||
F(VOLATILE_UNUSED, padding, (u32, 1)) \
|
||||
F(VOLATILE_INFATUATION, infatuation, (enum BattlerId, MAX_BITS(4))) \
|
||||
@ -189,6 +193,7 @@ enum VolatileFlags
|
||||
F(VOLATILE_INFINITE_CONFUSION, infiniteConfusion, (u32, 1), V_BATON_PASSABLE) \
|
||||
F(VOLATILE_SALT_CURE, saltCure, (u32, 1)) \
|
||||
F(VOLATILE_SYRUP_BOMB, syrupBomb, (u32, 1)) \
|
||||
F(VOLATILE_STICKY_SYRUPED_BY, stickySyrupedBy, (enum BattlerId, MAX_BITS(4))) \
|
||||
F(VOLATILE_GLAIVE_RUSH, glaiveRush, (u32, 1)) \
|
||||
F(VOLATILE_LEECH_SEED, leechSeed, (enum BattlerId, MAX_BITS(4)), V_BATON_PASSABLE) \
|
||||
F(VOLATILE_LOCK_ON, lockOn, (u32, 2), V_BATON_PASSABLE) \
|
||||
|
||||
@ -3105,17 +3105,16 @@ static u32 GetCurseDamage(u32 battlerId)
|
||||
return damage;
|
||||
}
|
||||
|
||||
static u32 GetTrapDamage(u32 battlerId)
|
||||
static u32 GetTrapDamage(u32 battler)
|
||||
{
|
||||
// ai has no knowledge about turns remaining
|
||||
u32 damage = 0;
|
||||
enum HoldEffect holdEffect = gAiLogicData->holdEffects[gBattleStruct->wrappedBy[battlerId]];
|
||||
if (gBattleMons[battlerId].volatiles.wrapped)
|
||||
if (gBattleMons[battler].volatiles.wrapped)
|
||||
{
|
||||
if (holdEffect == HOLD_EFFECT_BINDING_BAND)
|
||||
damage = GetNonDynamaxMaxHP(battlerId) / (B_BINDING_DAMAGE >= GEN_6 ? 6 : 8);
|
||||
if (gAiLogicData->holdEffects[gBattleMons[battler].volatiles.wrappedBy] == HOLD_EFFECT_BINDING_BAND)
|
||||
damage = GetNonDynamaxMaxHP(battler) / (B_BINDING_DAMAGE >= GEN_6 ? 6 : 8);
|
||||
else
|
||||
damage = GetNonDynamaxMaxHP(battlerId) / (B_BINDING_DAMAGE >= GEN_6 ? 8 : 16);
|
||||
damage = GetNonDynamaxMaxHP(battler) / (B_BINDING_DAMAGE >= GEN_6 ? 8 : 16);
|
||||
|
||||
if (damage == 0)
|
||||
damage = 1;
|
||||
|
||||
@ -634,12 +634,12 @@ static bool32 HandleEndTurnWrap(u32 battler)
|
||||
if (IsAbilityAndRecord(battler, GetBattlerAbility(battler), ABILITY_MAGIC_GUARD))
|
||||
return effect;
|
||||
|
||||
gBattleScripting.animArg1 = gBattleStruct->wrappedMove[battler];
|
||||
gBattleScripting.animArg2 = gBattleStruct->wrappedMove[battler] >> 8;
|
||||
PREPARE_MOVE_BUFFER(gBattleTextBuff1, gBattleStruct->wrappedMove[battler]);
|
||||
gBattleScripting.animArg1 = gBattleMons[battler].volatiles.wrappedMove;
|
||||
gBattleScripting.animArg2 = gBattleMons[battler].volatiles.wrappedMove >> 8;
|
||||
PREPARE_MOVE_BUFFER(gBattleTextBuff1, gBattleMons[battler].volatiles.wrappedMove);
|
||||
BattleScriptExecute(BattleScript_WrapTurnDmg);
|
||||
s32 bindDamage = 0;
|
||||
if (GetBattlerHoldEffect(gBattleStruct->wrappedBy[battler]) == HOLD_EFFECT_BINDING_BAND)
|
||||
if (GetBattlerHoldEffect(gBattleMons[battler].volatiles.wrappedBy) == HOLD_EFFECT_BINDING_BAND)
|
||||
bindDamage = GetNonDynamaxMaxHP(battler) / (B_BINDING_DAMAGE >= GEN_6 ? 6 : 8);
|
||||
else
|
||||
bindDamage = GetNonDynamaxMaxHP(battler) / (B_BINDING_DAMAGE >= GEN_6 ? 8 : 16);
|
||||
@ -648,7 +648,7 @@ static bool32 HandleEndTurnWrap(u32 battler)
|
||||
else // broke free
|
||||
{
|
||||
gBattleMons[battler].volatiles.wrapped = FALSE;
|
||||
PREPARE_MOVE_BUFFER(gBattleTextBuff1, gBattleStruct->wrappedMove[battler]);
|
||||
PREPARE_MOVE_BUFFER(gBattleTextBuff1, gBattleMons[battler].volatiles.wrappedMove);
|
||||
BattleScriptExecute(BattleScript_WrapEnds);
|
||||
}
|
||||
effect = TRUE;
|
||||
|
||||
@ -3189,9 +3189,9 @@ void SwitchInClearSetData(u32 battler, struct Volatiles *volatilesCopy)
|
||||
{
|
||||
if (gBattleMons[i].volatiles.infatuation == INFATUATED_WITH(battler))
|
||||
gBattleMons[i].volatiles.infatuation = 0;
|
||||
if (gBattleMons[i].volatiles.wrapped && gBattleStruct->wrappedBy[i] == battler)
|
||||
if (gBattleMons[i].volatiles.wrapped && gBattleMons[i].volatiles.wrappedBy == battler)
|
||||
gBattleMons[i].volatiles.wrapped = FALSE;
|
||||
if (gBattleMons[i].volatiles.syrupBomb && gBattleStruct->stickySyrupdBy[i] == battler)
|
||||
if (gBattleMons[i].volatiles.syrupBomb && gBattleMons[i].volatiles.stickySyrupedBy == battler)
|
||||
gBattleMons[i].volatiles.syrupBomb = FALSE;
|
||||
if (gDisableStructs[i].octolock && gDisableStructs[i].octolockedBy == battler)
|
||||
gDisableStructs[i].octolock = FALSE;
|
||||
@ -3316,9 +3316,9 @@ const u8* FaintClearSetData(u32 battler)
|
||||
gBattleMons[i].volatiles.escapePrevention = FALSE;
|
||||
if (gBattleMons[i].volatiles.infatuation == INFATUATED_WITH(battler))
|
||||
gBattleMons[i].volatiles.infatuation = 0;
|
||||
if (gBattleMons[i].volatiles.wrapped && gBattleStruct->wrappedBy[i] == battler)
|
||||
if (gBattleMons[i].volatiles.wrapped && gBattleMons[i].volatiles.wrappedBy == battler)
|
||||
gBattleMons[i].volatiles.wrapped = FALSE;
|
||||
if (gBattleMons[i].volatiles.syrupBomb && gBattleStruct->stickySyrupdBy[i] == battler)
|
||||
if (gBattleMons[i].volatiles.syrupBomb && gBattleMons[i].volatiles.stickySyrupedBy == battler)
|
||||
gBattleMons[i].volatiles.syrupBomb = FALSE;
|
||||
if (gDisableStructs[i].octolock && gDisableStructs[i].octolockedBy == battler)
|
||||
gDisableStructs[i].octolock = FALSE;
|
||||
@ -4271,7 +4271,7 @@ static void HandleTurnActionSelectionState(void)
|
||||
if (AreAllMovesUnusable(battler))
|
||||
{
|
||||
gBattleCommunication[battler] = STATE_SELECTION_SCRIPT;
|
||||
gBattleStruct->selectionScriptFinished[battler] = FALSE;
|
||||
gBattleStruct->battlerState[battler].selectionScriptFinished = FALSE;
|
||||
gBattleStruct->stateIdAfterSelScript[battler] = STATE_WAIT_ACTION_CONFIRMED_STANDBY;
|
||||
gBattleStruct->moveTarget[battler] = gBattleResources->bufferB[battler][3];
|
||||
return;
|
||||
@ -4313,7 +4313,7 @@ static void HandleTurnActionSelectionState(void)
|
||||
RecordedBattle_ClearBattlerAction(battler, 1);
|
||||
gSelectionBattleScripts[battler] = BattleScript_ActionSelectionItemsCantBeUsed;
|
||||
gBattleCommunication[battler] = STATE_SELECTION_SCRIPT;
|
||||
gBattleStruct->selectionScriptFinished[battler] = FALSE;
|
||||
gBattleStruct->battlerState[battler].selectionScriptFinished = FALSE;
|
||||
gBattleStruct->stateIdAfterSelScript[battler] = STATE_BEFORE_ACTION_CHOSEN;
|
||||
return;
|
||||
}
|
||||
@ -4329,7 +4329,7 @@ static void HandleTurnActionSelectionState(void)
|
||||
RecordedBattle_ClearBattlerAction(battler, 1);
|
||||
gSelectionBattleScripts[battler] = BattleScript_ActionSelectionItemsCantBeUsed;
|
||||
gBattleCommunication[battler] = STATE_SELECTION_SCRIPT;
|
||||
gBattleStruct->selectionScriptFinished[battler] = FALSE;
|
||||
gBattleStruct->battlerState[battler].selectionScriptFinished = FALSE;
|
||||
gBattleStruct->stateIdAfterSelScript[battler] = STATE_BEFORE_ACTION_CHOSEN;
|
||||
return;
|
||||
}
|
||||
@ -4367,7 +4367,7 @@ static void HandleTurnActionSelectionState(void)
|
||||
{
|
||||
gSelectionBattleScripts[battler] = BattleScript_PrintFullBox;
|
||||
gBattleCommunication[battler] = STATE_SELECTION_SCRIPT;
|
||||
gBattleStruct->selectionScriptFinished[battler] = FALSE;
|
||||
gBattleStruct->battlerState[battler].selectionScriptFinished = FALSE;
|
||||
gBattleStruct->stateIdAfterSelScript[battler] = STATE_BEFORE_ACTION_CHOSEN;
|
||||
return;
|
||||
}
|
||||
@ -4428,7 +4428,7 @@ static void HandleTurnActionSelectionState(void)
|
||||
{
|
||||
gSelectionBattleScripts[battler] = BattleScript_AskIfWantsToForfeitMatch;
|
||||
gBattleCommunication[battler] = STATE_SELECTION_SCRIPT_MAY_RUN;
|
||||
gBattleStruct->selectionScriptFinished[battler] = FALSE;
|
||||
gBattleStruct->battlerState[battler].selectionScriptFinished = FALSE;
|
||||
gBattleStruct->stateIdAfterSelScript[battler] = STATE_BEFORE_ACTION_CHOSEN;
|
||||
return;
|
||||
}
|
||||
@ -4436,7 +4436,7 @@ static void HandleTurnActionSelectionState(void)
|
||||
{
|
||||
gSelectionBattleScripts[battler] = BattleScript_QuestionForfeitBattle;
|
||||
gBattleCommunication[battler] = STATE_SELECTION_SCRIPT_MAY_RUN;
|
||||
gBattleStruct->selectionScriptFinished[battler] = FALSE;
|
||||
gBattleStruct->battlerState[battler].selectionScriptFinished = FALSE;
|
||||
gBattleStruct->stateIdAfterSelScript[battler] = STATE_BEFORE_ACTION_CHOSEN;
|
||||
return;
|
||||
}
|
||||
@ -4453,7 +4453,7 @@ static void HandleTurnActionSelectionState(void)
|
||||
{
|
||||
gSelectionBattleScripts[battler] = BattleScript_PrintCantEscapeFromBattle;
|
||||
gBattleCommunication[battler] = STATE_SELECTION_SCRIPT;
|
||||
gBattleStruct->selectionScriptFinished[battler] = FALSE;
|
||||
gBattleStruct->battlerState[battler].selectionScriptFinished = FALSE;
|
||||
gBattleStruct->stateIdAfterSelScript[battler] = STATE_BEFORE_ACTION_CHOSEN;
|
||||
return;
|
||||
}
|
||||
@ -4495,7 +4495,7 @@ static void HandleTurnActionSelectionState(void)
|
||||
{
|
||||
RecordedBattle_ClearBattlerAction(battler, 1);
|
||||
gBattleCommunication[battler] = STATE_SELECTION_SCRIPT;
|
||||
gBattleStruct->selectionScriptFinished[battler] = FALSE;
|
||||
gBattleStruct->battlerState[battler].selectionScriptFinished = FALSE;
|
||||
gBattleResources->bufferB[battler][1] = B_ACTION_USE_MOVE;
|
||||
gBattleStruct->stateIdAfterSelScript[battler] = STATE_WAIT_ACTION_CHOSEN;
|
||||
return;
|
||||
@ -4629,7 +4629,7 @@ static void HandleTurnActionSelectionState(void)
|
||||
}
|
||||
break;
|
||||
case STATE_SELECTION_SCRIPT:
|
||||
if (gBattleStruct->selectionScriptFinished[battler])
|
||||
if (gBattleStruct->battlerState[battler].selectionScriptFinished)
|
||||
{
|
||||
gBattleCommunication[battler] = gBattleStruct->stateIdAfterSelScript[battler];
|
||||
}
|
||||
@ -4651,7 +4651,7 @@ static void HandleTurnActionSelectionState(void)
|
||||
}
|
||||
break;
|
||||
case STATE_SELECTION_SCRIPT_MAY_RUN:
|
||||
if (gBattleStruct->selectionScriptFinished[battler])
|
||||
if (gBattleStruct->battlerState[battler].selectionScriptFinished)
|
||||
{
|
||||
if (gBattleResources->bufferB[battler][1] == B_ACTION_NOTHING_FAINTED)
|
||||
{
|
||||
|
||||
@ -3119,15 +3119,13 @@ void SetMoveEffect(u32 battler, u32 effectBattler, enum MoveEffect moveEffect, c
|
||||
}
|
||||
else
|
||||
{
|
||||
gBattleMons[gEffectBattler].volatiles.wrapped = TRUE;
|
||||
if (GetBattlerHoldEffect(gBattlerAttacker) == HOLD_EFFECT_GRIP_CLAW)
|
||||
gDisableStructs[gEffectBattler].wrapTurns = B_BINDING_TURNS >= GEN_5 ? 7 : 5;
|
||||
else
|
||||
gDisableStructs[gEffectBattler].wrapTurns = B_BINDING_TURNS >= GEN_5 ? RandomUniform(RNG_WRAP, 4, 5) : RandomUniform(RNG_WRAP, 2, 5);
|
||||
|
||||
gBattleStruct->wrappedMove[gEffectBattler] = gCurrentMove;
|
||||
gBattleStruct->wrappedBy[gEffectBattler] = gBattlerAttacker;
|
||||
|
||||
gBattleMons[gEffectBattler].volatiles.wrapped = TRUE;
|
||||
gBattleMons[gEffectBattler].volatiles.wrappedMove = gCurrentMove;
|
||||
gBattleMons[gEffectBattler].volatiles.wrappedBy = gBattlerAttacker;
|
||||
BattleScriptPush(battleScript);
|
||||
gBattlescriptCurrInstr = BattleScript_MoveEffectWrap;
|
||||
}
|
||||
@ -3476,9 +3474,9 @@ void SetMoveEffect(u32 battler, u32 effectBattler, enum MoveEffect moveEffect, c
|
||||
struct Pokemon *mon = GetBattlerMon(gBattlerAttacker);
|
||||
|
||||
gBattleMons[gEffectBattler].volatiles.syrupBomb = TRUE;
|
||||
gBattleMons[gEffectBattler].volatiles.stickySyrupedBy = gBattlerAttacker;
|
||||
gDisableStructs[gEffectBattler].syrupBombTimer = 3;
|
||||
gDisableStructs[gEffectBattler].syrupBombIsShiny = IsMonShiny(mon);
|
||||
gBattleStruct->stickySyrupdBy[gEffectBattler] = gBattlerAttacker;
|
||||
BattleScriptPush(battleScript);
|
||||
gBattlescriptCurrInstr = BattleScript_SyrupBombActivates;
|
||||
}
|
||||
@ -3888,11 +3886,11 @@ void SetMoveEffect(u32 battler, u32 effectBattler, enum MoveEffect moveEffect, c
|
||||
else
|
||||
gDisableStructs[battler].wrapTurns = (Random() % 2) + 4;
|
||||
// The Wrap effect does not expire when the user switches, so here's some cheese.
|
||||
gBattleStruct->wrappedBy[battler] = gBattlerTarget;
|
||||
gBattleMons[battler].volatiles.wrappedBy = gBattlerTarget;
|
||||
if (moveEffect == MOVE_EFFECT_SANDBLAST_SIDE)
|
||||
gBattleStruct->wrappedMove[battler] = MOVE_SAND_TOMB;
|
||||
gBattleMons[battler].volatiles.wrappedMove = MOVE_SAND_TOMB;
|
||||
else
|
||||
gBattleStruct->wrappedMove[battler] = MOVE_FIRE_SPIN;
|
||||
gBattleMons[battler].volatiles.wrappedMove = MOVE_FIRE_SPIN;
|
||||
}
|
||||
}
|
||||
break;
|
||||
@ -5373,8 +5371,7 @@ static void Cmd_jumpifabilitypresent(void)
|
||||
static void Cmd_endselectionscript(void)
|
||||
{
|
||||
CMD_ARGS();
|
||||
|
||||
*(gBattlerAttacker + gBattleStruct->selectionScriptFinished) = TRUE;
|
||||
gBattleStruct->battlerState[gBattlerAttacker].selectionScriptFinished = TRUE;
|
||||
}
|
||||
|
||||
static void PlayAnimation(u32 battler, u8 animId, const u16 *argPtr, const u8 *nextInstr)
|
||||
@ -12226,8 +12223,8 @@ static void Cmd_rapidspinfree(void)
|
||||
{
|
||||
gBattleScripting.battler = gBattlerTarget;
|
||||
gBattleMons[gBattlerAttacker].volatiles.wrapped = FALSE;
|
||||
gBattlerTarget = gBattleStruct->wrappedBy[gBattlerAttacker];
|
||||
PREPARE_MOVE_BUFFER(gBattleTextBuff1, gBattleStruct->wrappedMove[gBattlerAttacker]);
|
||||
gBattlerTarget = gBattleMons[gBattlerAttacker].volatiles.wrappedBy;
|
||||
PREPARE_MOVE_BUFFER(gBattleTextBuff1, gBattleMons[gBattlerAttacker].volatiles.wrappedMove);
|
||||
BattleScriptCall(BattleScript_WrapFree);
|
||||
}
|
||||
else if (gBattleMons[gBattlerAttacker].volatiles.leechSeed)
|
||||
|
||||
125
src/landmark.c
125
src/landmark.c
@ -15,90 +15,49 @@ struct LandmarkList
|
||||
const struct Landmark *const *landmarks;
|
||||
};
|
||||
|
||||
static const u8 LandmarkName_FlowerShop[] = _("FLOWER SHOP");
|
||||
static const u8 LandmarkName_PetalburgWoods[] = _("PETALBURG WOODS");
|
||||
static const u8 LandmarkName_MrBrineysCottage[] = _("MR. BRINEY'S COTTAGE");
|
||||
static const u8 LandmarkName_AbandonedShip[] = _("ABANDONED SHIP");
|
||||
static const u8 LandmarkName_SeashoreHouse[] = _("SEASHORE HOUSE");
|
||||
static const u8 LandmarkName_SlateportBeach[] = _("SLATEPORT BEACH");
|
||||
static const u8 LandmarkName_CyclingRoad[] = _("CYCLING ROAD");
|
||||
static const u8 LandmarkName_NewMauville[] = _("NEW MAUVILLE");
|
||||
static const u8 LandmarkName_TrickHouse[] = _("TRICK HOUSE");
|
||||
static const u8 LandmarkName_OldLadysRestShop[] = _("OLD LADY'S REST STOP");
|
||||
static const u8 LandmarkName_Desert[] = _("DESERT");
|
||||
static const u8 LandmarkName_WinstrateFamily[] = _("THE WINSTRATE FAMILY");
|
||||
static const u8 LandmarkName_CableCar[] = _("CABLE CAR");
|
||||
static const u8 LandmarkName_GlassWorkshop[] = _("GLASS WORKSHOP");
|
||||
static const u8 LandmarkName_WeatherInstitute[] = _("WEATHER INSTITUTE");
|
||||
static const u8 LandmarkName_MeteorFalls[] = _("METEOR FALLS");
|
||||
static const u8 LandmarkName_TunnelersRestHouse[] = _("TUNNELER'S RESTHOUSE");
|
||||
static const u8 LandmarkName_RusturfTunnel[] = _("RUSTURF TUNNEL");
|
||||
static const u8 LandmarkName_PokemonDayCare[] = _("POKéMON DAY CARE");
|
||||
static const u8 LandmarkName_SafariZoneEntrance[] = _("SAFARI ZONE ENTRANCE");
|
||||
static const u8 LandmarkName_MtPyre[] = _("MT. PYRE");
|
||||
static const u8 LandmarkName_ShoalCave[] = _("SHOAL CAVE");
|
||||
static const u8 LandmarkName_SeafloorCavern[] = _("SEAFLOOR CAVERN");
|
||||
static const u8 LandmarkName_GraniteCave[] = _("GRANITE CAVE");
|
||||
static const u8 LandmarkName_OceanCurrent[] = _("OCEAN CURRENT");
|
||||
static const u8 LandmarkName_LanettesHouse[] = _("LANETTE'S HOUSE");
|
||||
static const u8 LandmarkName_FieryPath[] = _("FIERY PATH");
|
||||
static const u8 LandmarkName_JaggedPass[] = _("JAGGED PASS");
|
||||
static const u8 LandmarkName_SkyPillar[] = _("SKY PILLAR");
|
||||
static const u8 LandmarkName_BerryMastersHouse[] = _("BERRY MASTER'S HOUSE");
|
||||
static const u8 LandmarkName_IslandCave[] = _("ISLAND CAVE");
|
||||
static const u8 LandmarkName_DesertRuins[] = _("DESERT RUINS");
|
||||
static const u8 LandmarkName_ScorchedSlab[] = _("SCORCHED SLAB");
|
||||
static const u8 LandmarkName_AncientTomb[] = _("ANCIENT TOMB");
|
||||
static const u8 LandmarkName_SealedChamber[] = _("SEALED CHAMBER");
|
||||
static const u8 LandmarkName_FossilManiacsHouse[] = _("FOSSIL MANIAC'S HOUSE");
|
||||
static const u8 LandmarkName_HuntersHouse[] = _("HUNTER'S HOUSE");
|
||||
static const u8 LandmarkName_MagmaHideout[] = _("MAGMA HIDEOUT");
|
||||
static const u8 LandmarkName_MirageTower[] = _("MIRAGE TOWER");
|
||||
static const u8 LandmarkName_AlteringCave[] = _("ALTERING CAVE");
|
||||
static const u8 LandmarkName_DesertUnderpass[] = _("DESERT UNDERPASS");
|
||||
static const u8 LandmarkName_TrainerHill[] = _("TRAINER HILL");
|
||||
static const u8 LandmarkName_MagmaHideout[] = _("MAGMA HIDEOUT"); //Unused
|
||||
|
||||
static const struct Landmark Landmark_FlowerShop = {LandmarkName_FlowerShop, FLAG_LANDMARK_FLOWER_SHOP};
|
||||
static const struct Landmark Landmark_PetalburgWoods = {LandmarkName_PetalburgWoods, -1};
|
||||
static const struct Landmark Landmark_MrBrineysCottage = {LandmarkName_MrBrineysCottage, FLAG_LANDMARK_MR_BRINEY_HOUSE};
|
||||
static const struct Landmark Landmark_AbandonedShip = {LandmarkName_AbandonedShip, FLAG_LANDMARK_ABANDONED_SHIP};
|
||||
static const struct Landmark Landmark_SeashoreHouse = {LandmarkName_SeashoreHouse, FLAG_LANDMARK_SEASHORE_HOUSE};
|
||||
static const struct Landmark Landmark_SlateportBeach = {LandmarkName_SlateportBeach, -1};
|
||||
static const struct Landmark Landmark_CyclingRoad = {LandmarkName_CyclingRoad, -1};
|
||||
static const struct Landmark Landmark_NewMauville = {LandmarkName_NewMauville, FLAG_LANDMARK_NEW_MAUVILLE};
|
||||
static const struct Landmark Landmark_TrickHouse = {LandmarkName_TrickHouse, FLAG_LANDMARK_TRICK_HOUSE};
|
||||
static const struct Landmark Landmark_OldLadysRestShop = {LandmarkName_OldLadysRestShop, FLAG_LANDMARK_OLD_LADY_REST_SHOP};
|
||||
static const struct Landmark Landmark_Desert = {LandmarkName_Desert, -1};
|
||||
static const struct Landmark Landmark_WinstrateFamily = {LandmarkName_WinstrateFamily, FLAG_LANDMARK_WINSTRATE_FAMILY};
|
||||
static const struct Landmark Landmark_CableCar = {LandmarkName_CableCar, -1};
|
||||
static const struct Landmark Landmark_GlassWorkshop = {LandmarkName_GlassWorkshop, FLAG_LANDMARK_GLASS_WORKSHOP};
|
||||
static const struct Landmark Landmark_WeatherInstitute = {LandmarkName_WeatherInstitute, -1};
|
||||
static const struct Landmark Landmark_MeteorFalls = {LandmarkName_MeteorFalls, -1};
|
||||
static const struct Landmark Landmark_TunnelersRestHouse = {LandmarkName_TunnelersRestHouse, FLAG_LANDMARK_TUNNELERS_REST_HOUSE};
|
||||
static const struct Landmark Landmark_RusturfTunnel = {LandmarkName_RusturfTunnel, -1};
|
||||
static const struct Landmark Landmark_PokemonDayCare = {LandmarkName_PokemonDayCare, FLAG_LANDMARK_POKEMON_DAYCARE};
|
||||
static const struct Landmark Landmark_SafariZoneEntrance = {LandmarkName_SafariZoneEntrance, -1};
|
||||
static const struct Landmark Landmark_MtPyre = {LandmarkName_MtPyre, -1};
|
||||
static const struct Landmark Landmark_ShoalCave = {LandmarkName_ShoalCave, -1};
|
||||
static const struct Landmark Landmark_SeafloorCavern = {LandmarkName_SeafloorCavern, FLAG_LANDMARK_SEAFLOOR_CAVERN};
|
||||
static const struct Landmark Landmark_GraniteCave = {LandmarkName_GraniteCave, -1};
|
||||
static const struct Landmark Landmark_OceanCurrent = {LandmarkName_OceanCurrent, -1};
|
||||
static const struct Landmark Landmark_LanettesHouse = {LandmarkName_LanettesHouse, FLAG_LANDMARK_LANETTES_HOUSE};
|
||||
static const struct Landmark Landmark_FieryPath = {LandmarkName_FieryPath, FLAG_LANDMARK_FIERY_PATH};
|
||||
static const struct Landmark Landmark_JaggedPass = {LandmarkName_JaggedPass, -1};
|
||||
static const struct Landmark Landmark_BerryMastersHouse = {LandmarkName_BerryMastersHouse, FLAG_LANDMARK_BERRY_MASTERS_HOUSE};
|
||||
static const struct Landmark Landmark_IslandCave = {LandmarkName_IslandCave, FLAG_LANDMARK_ISLAND_CAVE};
|
||||
static const struct Landmark Landmark_DesertRuins = {LandmarkName_DesertRuins, FLAG_LANDMARK_DESERT_RUINS};
|
||||
static const struct Landmark Landmark_ScorchedSlab = {LandmarkName_ScorchedSlab, FLAG_LANDMARK_SCORCHED_SLAB};
|
||||
static const struct Landmark Landmark_AncientTomb = {LandmarkName_AncientTomb, FLAG_LANDMARK_ANCIENT_TOMB};
|
||||
static const struct Landmark Landmark_SealedChamber = {LandmarkName_SealedChamber, FLAG_LANDMARK_SEALED_CHAMBER};
|
||||
static const struct Landmark Landmark_FossilManiacsHouse = {LandmarkName_FossilManiacsHouse, FLAG_LANDMARK_FOSSIL_MANIACS_HOUSE};
|
||||
static const struct Landmark Landmark_HuntersHouse = {LandmarkName_HuntersHouse, FLAG_LANDMARK_HUNTERS_HOUSE};
|
||||
static const struct Landmark Landmark_SkyPillar = {LandmarkName_SkyPillar, FLAG_LANDMARK_SKY_PILLAR};
|
||||
static const struct Landmark Landmark_MirageTower = {LandmarkName_MirageTower, FLAG_LANDMARK_MIRAGE_TOWER};
|
||||
static const struct Landmark Landmark_AlteringCave = {LandmarkName_AlteringCave, FLAG_LANDMARK_ALTERING_CAVE};
|
||||
static const struct Landmark Landmark_DesertUnderpass = {LandmarkName_DesertUnderpass, FLAG_LANDMARK_DESERT_UNDERPASS};
|
||||
static const struct Landmark Landmark_TrainerHill = {LandmarkName_TrainerHill, FLAG_LANDMARK_TRAINER_HILL};
|
||||
static const struct Landmark Landmark_FlowerShop = {COMPOUND_STRING("FLOWER SHOP"), FLAG_LANDMARK_FLOWER_SHOP};
|
||||
static const struct Landmark Landmark_PetalburgWoods = {COMPOUND_STRING("PETALBURG WOODS"), -1};
|
||||
static const struct Landmark Landmark_MrBrineysCottage = {COMPOUND_STRING("MR. BRINEY'S COTTAGE"), FLAG_LANDMARK_MR_BRINEY_HOUSE};
|
||||
static const struct Landmark Landmark_AbandonedShip = {COMPOUND_STRING("ABANDONED SHIP"), FLAG_LANDMARK_ABANDONED_SHIP};
|
||||
static const struct Landmark Landmark_SeashoreHouse = {COMPOUND_STRING("SEASHORE HOUSE"), FLAG_LANDMARK_SEASHORE_HOUSE};
|
||||
static const struct Landmark Landmark_SlateportBeach = {COMPOUND_STRING("SLATEPORT BEACH"), -1};
|
||||
static const struct Landmark Landmark_CyclingRoad = {COMPOUND_STRING("CYCLING ROAD"), -1};
|
||||
static const struct Landmark Landmark_NewMauville = {COMPOUND_STRING("NEW MAUVILLE"), FLAG_LANDMARK_NEW_MAUVILLE};
|
||||
static const struct Landmark Landmark_TrickHouse = {COMPOUND_STRING("TRICK HOUSE"), FLAG_LANDMARK_TRICK_HOUSE};
|
||||
static const struct Landmark Landmark_OldLadysRestShop = {COMPOUND_STRING("OLD LADY'S REST STOP"), FLAG_LANDMARK_OLD_LADY_REST_SHOP};
|
||||
static const struct Landmark Landmark_Desert = {COMPOUND_STRING("DESERT"), -1};
|
||||
static const struct Landmark Landmark_WinstrateFamily = {COMPOUND_STRING("THE WINSTRATE FAMILY"), FLAG_LANDMARK_WINSTRATE_FAMILY};
|
||||
static const struct Landmark Landmark_CableCar = {COMPOUND_STRING("CABLE CAR"), -1};
|
||||
static const struct Landmark Landmark_GlassWorkshop = {COMPOUND_STRING("GLASS WORKSHOP"), FLAG_LANDMARK_GLASS_WORKSHOP};
|
||||
static const struct Landmark Landmark_WeatherInstitute = {COMPOUND_STRING("WEATHER INSTITUTE"), -1};
|
||||
static const struct Landmark Landmark_MeteorFalls = {COMPOUND_STRING("METEOR FALLS"), -1};
|
||||
static const struct Landmark Landmark_TunnelersRestHouse = {COMPOUND_STRING("TUNNELER'S RESTHOUSE"), FLAG_LANDMARK_TUNNELERS_REST_HOUSE};
|
||||
static const struct Landmark Landmark_RusturfTunnel = {COMPOUND_STRING("RUSTURF TUNNEL"), -1};
|
||||
static const struct Landmark Landmark_PokemonDayCare = {COMPOUND_STRING("POKéMON DAY CARE"), FLAG_LANDMARK_POKEMON_DAYCARE};
|
||||
static const struct Landmark Landmark_SafariZoneEntrance = {COMPOUND_STRING("SAFARI ZONE ENTRANCE"), -1};
|
||||
static const struct Landmark Landmark_MtPyre = {COMPOUND_STRING("MT. PYRE"), -1};
|
||||
static const struct Landmark Landmark_ShoalCave = {COMPOUND_STRING("SHOAL CAVE"), -1};
|
||||
static const struct Landmark Landmark_SeafloorCavern = {COMPOUND_STRING("SEAFLOOR CAVERN"), FLAG_LANDMARK_SEAFLOOR_CAVERN};
|
||||
static const struct Landmark Landmark_GraniteCave = {COMPOUND_STRING("GRANITE CAVE"), -1};
|
||||
static const struct Landmark Landmark_OceanCurrent = {COMPOUND_STRING("OCEAN CURRENT"), -1};
|
||||
static const struct Landmark Landmark_LanettesHouse = {COMPOUND_STRING("LANETTE'S HOUSE"), FLAG_LANDMARK_LANETTES_HOUSE};
|
||||
static const struct Landmark Landmark_FieryPath = {COMPOUND_STRING("FIERY PATH"), FLAG_LANDMARK_FIERY_PATH};
|
||||
static const struct Landmark Landmark_JaggedPass = {COMPOUND_STRING("JAGGED PASS"), -1};
|
||||
static const struct Landmark Landmark_BerryMastersHouse = {COMPOUND_STRING("BERRY MASTER'S HOUSE"), FLAG_LANDMARK_BERRY_MASTERS_HOUSE};
|
||||
static const struct Landmark Landmark_IslandCave = {COMPOUND_STRING("ISLAND CAVE"), FLAG_LANDMARK_ISLAND_CAVE};
|
||||
static const struct Landmark Landmark_DesertRuins = {COMPOUND_STRING("DESERT RUINS"), FLAG_LANDMARK_DESERT_RUINS};
|
||||
static const struct Landmark Landmark_ScorchedSlab = {COMPOUND_STRING("SCORCHED SLAB"), FLAG_LANDMARK_SCORCHED_SLAB};
|
||||
static const struct Landmark Landmark_AncientTomb = {COMPOUND_STRING("ANCIENT TOMB"), FLAG_LANDMARK_ANCIENT_TOMB};
|
||||
static const struct Landmark Landmark_SealedChamber = {COMPOUND_STRING("SEALED CHAMBER"), FLAG_LANDMARK_SEALED_CHAMBER};
|
||||
static const struct Landmark Landmark_FossilManiacsHouse = {COMPOUND_STRING("FOSSIL MANIAC'S HOUSE"), FLAG_LANDMARK_FOSSIL_MANIACS_HOUSE};
|
||||
static const struct Landmark Landmark_HuntersHouse = {COMPOUND_STRING("HUNTER'S HOUSE"), FLAG_LANDMARK_HUNTERS_HOUSE};
|
||||
static const struct Landmark Landmark_SkyPillar = {COMPOUND_STRING("SKY PILLAR"), FLAG_LANDMARK_SKY_PILLAR};
|
||||
static const struct Landmark Landmark_MirageTower = {COMPOUND_STRING("MIRAGE TOWER"), FLAG_LANDMARK_MIRAGE_TOWER};
|
||||
static const struct Landmark Landmark_AlteringCave = {COMPOUND_STRING("ALTERING CAVE"), FLAG_LANDMARK_ALTERING_CAVE};
|
||||
static const struct Landmark Landmark_DesertUnderpass = {COMPOUND_STRING("DESERT UNDERPASS"), FLAG_LANDMARK_DESERT_UNDERPASS};
|
||||
static const struct Landmark Landmark_TrainerHill = {COMPOUND_STRING("TRAINER HILL"), FLAG_LANDMARK_TRAINER_HILL};
|
||||
|
||||
static const struct Landmark *const Landmarks_Route103_2[] =
|
||||
{
|
||||
|
||||
@ -61,9 +61,9 @@ enum {
|
||||
};
|
||||
|
||||
enum {
|
||||
MOVE_NONE,
|
||||
MOVE_BACKWARD,
|
||||
MOVE_FORWARD,
|
||||
CLOCK_MOVE_NONE,
|
||||
CLOCK_MOVE_BACKWARD,
|
||||
CLOCK_MOVE_FORWARD,
|
||||
};
|
||||
|
||||
enum {
|
||||
@ -806,15 +806,15 @@ static void Task_SetClock_HandleInput(u8 taskId)
|
||||
}
|
||||
else
|
||||
{
|
||||
gTasks[taskId].tMoveDir = MOVE_NONE;
|
||||
gTasks[taskId].tMoveDir = CLOCK_MOVE_NONE;
|
||||
|
||||
if (JOY_HELD(DPAD_LEFT))
|
||||
gTasks[taskId].tMoveDir = MOVE_BACKWARD;
|
||||
gTasks[taskId].tMoveDir = CLOCK_MOVE_BACKWARD;
|
||||
|
||||
if (JOY_HELD(DPAD_RIGHT))
|
||||
gTasks[taskId].tMoveDir = MOVE_FORWARD;
|
||||
gTasks[taskId].tMoveDir = CLOCK_MOVE_FORWARD;
|
||||
|
||||
if (gTasks[taskId].tMoveDir != MOVE_NONE)
|
||||
if (gTasks[taskId].tMoveDir != CLOCK_MOVE_NONE)
|
||||
{
|
||||
if (gTasks[taskId].tMoveSpeed < 0xFF)
|
||||
gTasks[taskId].tMoveSpeed++;
|
||||
@ -916,13 +916,13 @@ static u16 CalcNewMinHandAngle(u16 angle, u8 direction, u8 speed)
|
||||
u8 delta = CalcMinHandDelta(speed);
|
||||
switch (direction)
|
||||
{
|
||||
case MOVE_BACKWARD:
|
||||
case CLOCK_MOVE_BACKWARD:
|
||||
if (angle)
|
||||
angle -= delta;
|
||||
else
|
||||
angle = 360 - delta;
|
||||
break;
|
||||
case MOVE_FORWARD:
|
||||
case CLOCK_MOVE_FORWARD:
|
||||
if (angle < 360 - delta)
|
||||
angle += delta;
|
||||
else
|
||||
@ -936,7 +936,7 @@ static bool32 AdvanceClock(u8 taskId, u8 direction)
|
||||
{
|
||||
switch (direction)
|
||||
{
|
||||
case MOVE_BACKWARD:
|
||||
case CLOCK_MOVE_BACKWARD:
|
||||
if (gTasks[taskId].tMinutes > 0)
|
||||
{
|
||||
gTasks[taskId].tMinutes--;
|
||||
@ -953,7 +953,7 @@ static bool32 AdvanceClock(u8 taskId, u8 direction)
|
||||
UpdateClockPeriod(taskId, direction);
|
||||
}
|
||||
break;
|
||||
case MOVE_FORWARD:
|
||||
case CLOCK_MOVE_FORWARD:
|
||||
if (gTasks[taskId].tMinutes < 59)
|
||||
{
|
||||
gTasks[taskId].tMinutes++;
|
||||
@ -979,7 +979,7 @@ static void UpdateClockPeriod(u8 taskId, u8 direction)
|
||||
u8 hours = gTasks[taskId].tHours;
|
||||
switch (direction)
|
||||
{
|
||||
case MOVE_BACKWARD:
|
||||
case CLOCK_MOVE_BACKWARD:
|
||||
switch (hours)
|
||||
{
|
||||
case 11:
|
||||
@ -990,7 +990,7 @@ static void UpdateClockPeriod(u8 taskId, u8 direction)
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case MOVE_FORWARD:
|
||||
case CLOCK_MOVE_FORWARD:
|
||||
switch (hours)
|
||||
{
|
||||
case 0:
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user