Co-authored-by: Evan <eroelke@gmail.com> Co-authored-by: Jaizu <jaizu85@gmail.com> Co-authored-by: ghoulslash <41651341+ghoulslash@users.noreply.github.com> Co-authored-by: ghoulslash <pokevoyager0@gmail.com> Co-authored-by: Alex <93446519+AlexOn1ine@users.noreply.github.com>
227 lines
5.2 KiB
C
227 lines
5.2 KiB
C
#include "global.h"
|
|
#include "event_data.h"
|
|
#include "field_move.h"
|
|
#include "fldeff.h"
|
|
#include "fldeff_misc.h"
|
|
#include "party_menu.h"
|
|
#include "constants/field_move.h"
|
|
#include "constants/moves.h"
|
|
#include "constants/party_menu.h"
|
|
|
|
static bool32 IsFieldMoveUnlocked_Cut(void)
|
|
{
|
|
return FlagGet(FLAG_BADGE01_GET);
|
|
}
|
|
|
|
static bool32 IsFieldMoveUnlocked_Flash(void)
|
|
{
|
|
return FlagGet(FLAG_BADGE02_GET);
|
|
}
|
|
|
|
static bool32 IsFieldMoveUnlocked_RockSmash(void)
|
|
{
|
|
return FlagGet(FLAG_BADGE03_GET);
|
|
}
|
|
|
|
static bool32 IsFieldMoveUnlocked_Strength(void)
|
|
{
|
|
return FlagGet(FLAG_BADGE04_GET);
|
|
}
|
|
|
|
static bool32 IsFieldMoveUnlocked_Surf(void)
|
|
{
|
|
return FlagGet(FLAG_BADGE05_GET);
|
|
}
|
|
|
|
static bool32 IsFieldMoveUnlocked_Fly(void)
|
|
{
|
|
return FlagGet(FLAG_BADGE06_GET);
|
|
}
|
|
|
|
static bool32 IsFieldMoveUnlocked_Dive(void)
|
|
{
|
|
return FlagGet(FLAG_BADGE07_GET);
|
|
}
|
|
|
|
static bool32 IsFieldMoveUnlocked_Waterfall(void)
|
|
{
|
|
return FlagGet(FLAG_BADGE08_GET);
|
|
}
|
|
|
|
#if OW_ROCK_CLIMB_FIELD_MOVE == TRUE
|
|
static bool32 IsFieldMoveUnlocked_RockClimb(void)
|
|
{
|
|
return TRUE;
|
|
}
|
|
#endif
|
|
|
|
static bool32 IsFieldMoveUnlocked_Teleport(void)
|
|
{
|
|
return TRUE;
|
|
}
|
|
|
|
static bool32 IsFieldMoveUnlocked_Dig(void)
|
|
{
|
|
return TRUE;
|
|
}
|
|
|
|
static bool32 IsFieldMoveUnlocked_SecretPower(void)
|
|
{
|
|
return TRUE;
|
|
}
|
|
|
|
static bool32 IsFieldMoveUnlocked_MilkDrink(void)
|
|
{
|
|
return TRUE;
|
|
}
|
|
|
|
static bool32 IsFieldMoveUnlocked_SoftBoiled(void)
|
|
{
|
|
return TRUE;
|
|
}
|
|
|
|
static bool32 IsFieldMoveUnlocked_SweetScent(void)
|
|
{
|
|
return TRUE;
|
|
}
|
|
|
|
#if OW_DEFOG_FIELD_MOVE == TRUE
|
|
static bool32 IsFieldMoveUnlocked_Defog(void)
|
|
{
|
|
return TRUE;
|
|
}
|
|
#endif
|
|
|
|
const struct FieldMoveInfo gFieldMoveInfo[FIELD_MOVES_COUNT] =
|
|
{
|
|
[FIELD_MOVE_CUT] =
|
|
{
|
|
.fieldMoveFunc = SetUpFieldMove_Cut,
|
|
.isUnlockedFunc = IsFieldMoveUnlocked_Cut,
|
|
.moveID = MOVE_CUT,
|
|
.partyMsgID = PARTY_MSG_NOTHING_TO_CUT,
|
|
},
|
|
|
|
[FIELD_MOVE_FLASH] =
|
|
{
|
|
.fieldMoveFunc = SetUpFieldMove_Flash,
|
|
.isUnlockedFunc = IsFieldMoveUnlocked_Flash,
|
|
.moveID = MOVE_FLASH,
|
|
.partyMsgID = PARTY_MSG_CANT_USE_HERE,
|
|
},
|
|
|
|
[FIELD_MOVE_ROCK_SMASH] =
|
|
{
|
|
.fieldMoveFunc = SetUpFieldMove_RockSmash,
|
|
.isUnlockedFunc = IsFieldMoveUnlocked_RockSmash,
|
|
.moveID = MOVE_ROCK_SMASH,
|
|
.partyMsgID = PARTY_MSG_CANT_USE_HERE,
|
|
},
|
|
|
|
[FIELD_MOVE_STRENGTH] =
|
|
{
|
|
.fieldMoveFunc = SetUpFieldMove_Strength,
|
|
.isUnlockedFunc = IsFieldMoveUnlocked_Strength,
|
|
.moveID = MOVE_STRENGTH,
|
|
.partyMsgID = PARTY_MSG_CANT_USE_HERE,
|
|
},
|
|
|
|
[FIELD_MOVE_SURF] =
|
|
{
|
|
.fieldMoveFunc = SetUpFieldMove_Surf,
|
|
.isUnlockedFunc = IsFieldMoveUnlocked_Surf,
|
|
.moveID = MOVE_SURF,
|
|
.partyMsgID = PARTY_MSG_CANT_SURF_HERE,
|
|
},
|
|
|
|
[FIELD_MOVE_FLY] =
|
|
{
|
|
.fieldMoveFunc = SetUpFieldMove_Fly,
|
|
.isUnlockedFunc = IsFieldMoveUnlocked_Fly,
|
|
.moveID = MOVE_FLY,
|
|
.partyMsgID = PARTY_MSG_CANT_USE_HERE,
|
|
},
|
|
|
|
[FIELD_MOVE_DIVE] =
|
|
{
|
|
.fieldMoveFunc = SetUpFieldMove_Dive,
|
|
.isUnlockedFunc = IsFieldMoveUnlocked_Dive,
|
|
.moveID = MOVE_DIVE,
|
|
.partyMsgID = PARTY_MSG_CANT_USE_HERE,
|
|
},
|
|
|
|
[FIELD_MOVE_WATERFALL] =
|
|
{
|
|
.fieldMoveFunc = SetUpFieldMove_Waterfall,
|
|
.isUnlockedFunc = IsFieldMoveUnlocked_Waterfall,
|
|
.moveID = MOVE_WATERFALL,
|
|
.partyMsgID = PARTY_MSG_CANT_USE_HERE,
|
|
},
|
|
|
|
[FIELD_MOVE_TELEPORT] =
|
|
{
|
|
.fieldMoveFunc = SetUpFieldMove_Teleport,
|
|
.isUnlockedFunc = IsFieldMoveUnlocked_Teleport,
|
|
.moveID = MOVE_TELEPORT,
|
|
.partyMsgID = PARTY_MSG_CANT_USE_HERE,
|
|
},
|
|
|
|
[FIELD_MOVE_DIG] =
|
|
{
|
|
.fieldMoveFunc = SetUpFieldMove_Dig,
|
|
.isUnlockedFunc = IsFieldMoveUnlocked_Dig,
|
|
.moveID = MOVE_DIG,
|
|
.partyMsgID = PARTY_MSG_CANT_USE_HERE,
|
|
},
|
|
|
|
[FIELD_MOVE_SECRET_POWER] =
|
|
{
|
|
.fieldMoveFunc = SetUpFieldMove_SecretPower,
|
|
.isUnlockedFunc = IsFieldMoveUnlocked_SecretPower,
|
|
.moveID = MOVE_SECRET_POWER,
|
|
.partyMsgID = PARTY_MSG_CANT_USE_HERE,
|
|
},
|
|
|
|
[FIELD_MOVE_MILK_DRINK] =
|
|
{
|
|
.fieldMoveFunc = SetUpFieldMove_SoftBoiled,
|
|
.isUnlockedFunc = IsFieldMoveUnlocked_MilkDrink,
|
|
.moveID = MOVE_MILK_DRINK,
|
|
.partyMsgID = PARTY_MSG_NOT_ENOUGH_HP,
|
|
},
|
|
|
|
[FIELD_MOVE_SOFT_BOILED] =
|
|
{
|
|
.fieldMoveFunc = SetUpFieldMove_SoftBoiled,
|
|
.isUnlockedFunc = IsFieldMoveUnlocked_SoftBoiled,
|
|
.moveID = MOVE_SOFT_BOILED,
|
|
.partyMsgID = PARTY_MSG_NOT_ENOUGH_HP,
|
|
},
|
|
|
|
[FIELD_MOVE_SWEET_SCENT] =
|
|
{
|
|
.fieldMoveFunc = SetUpFieldMove_SweetScent,
|
|
.isUnlockedFunc = IsFieldMoveUnlocked_SweetScent,
|
|
.moveID = MOVE_SWEET_SCENT,
|
|
.partyMsgID = PARTY_MSG_CANT_USE_HERE,
|
|
},
|
|
#if OW_ROCK_CLIMB_FIELD_MOVE == TRUE
|
|
[FIELD_MOVE_ROCK_CLIMB] =
|
|
{
|
|
.fieldMoveFunc = SetUpFieldMove_RockClimb,
|
|
.isUnlockedFunc = IsFieldMoveUnlocked_RockClimb,
|
|
.moveID = MOVE_ROCK_CLIMB,
|
|
.partyMsgID = PARTY_MSG_CANT_USE_HERE,
|
|
},
|
|
#endif
|
|
#if OW_DEFOG_FIELD_MOVE == TRUE
|
|
[FIELD_MOVE_DEFOG] =
|
|
{
|
|
.fieldMoveFunc = SetUpFieldMove_Defog,
|
|
.isUnlockedFunc = IsFieldMoveUnlocked_Defog,
|
|
.moveID = MOVE_DEFOG,
|
|
.partyMsgID = PARTY_MSG_CANT_USE_HERE,
|
|
},
|
|
#endif
|
|
};
|