mirror of
https://github.com/pret/pmd-red.git
synced 2026-07-18 16:53:54 -05:00
dungeon config
This commit is contained in:
parent
86232a8ceb
commit
69925b8b98
|
|
@ -1,13 +0,0 @@
|
|||
.section .rodata
|
||||
|
||||
|
||||
|
||||
|
||||
.global gUnknown_80F55BC
|
||||
gUnknown_80F55BC: @ 80F55BC
|
||||
.2byte 50, 5, 100, 10, 200, 15, 300, 20, 400, 25, 500, 30, 600, 35, 700, 40, 800, 45, 1000, 45, 10000, 9999, -1, 1
|
||||
|
||||
.global gUnknown_80F55EC
|
||||
gUnknown_80F55EC: @ 80F55EC
|
||||
.2byte 0, 9999, 50, 45, 100, 40, 200, 35, 300, 30, 400, 25, 500, 20, 600, 15, 700, 10, 1000, 5, 10000, 1, -1, 1
|
||||
|
||||
|
|
@ -1,122 +0,0 @@
|
|||
.section .rodata
|
||||
|
||||
.global gDungeonMusic
|
||||
gDungeonMusic: @ 80F5668
|
||||
.2byte 0x72, 0x7d, 0x0e, 0x78, 0x0f, 0x71, 0x6f, 0x14, 0x66, 0x19, 0x68, 0x73, 0x6c, 0x16, 0x7d, 0x7d, 0x7d, 0x7d, 0x0d, 0x15, 0x0f, 0x7e, 0x21, 0x27, 0x7b, 0x7c, 0x17, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x1a, 0x6e, 0x6e, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x1a, 0x7f, 0x23, 0x23, 0x23, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d
|
||||
|
||||
.global gUnknown_80F5700
|
||||
gUnknown_80F5700: @ 80F5700
|
||||
.incbin "baserom.gba", 0xF5700, 0xCA
|
||||
|
||||
.global gUnknown_80F57CA
|
||||
gUnknown_80F57CA: @ 80F57CA
|
||||
@ replacing .incbin "baserom.gba", 0x000f57ca, 0x2
|
||||
.byte 0x0a, 0x00
|
||||
|
||||
.global gUnknown_80F57CC
|
||||
gUnknown_80F57CC: @ 80F57CC
|
||||
@ replacing .incbin "baserom.gba", 0x000f57cc, 0x2
|
||||
.byte 0x14, 0x00
|
||||
|
||||
.global gUnknown_80F57CE
|
||||
gUnknown_80F57CE: @ 80F57CE
|
||||
@ replacing .incbin "baserom.gba", 0x000f57ce, 0x2
|
||||
.byte 0x14, 0x00
|
||||
|
||||
.global gUnknown_80F57D0
|
||||
gUnknown_80F57D0: @ 80F57D0
|
||||
@ replacing .incbin "baserom.gba", 0x000f57d0, 0x2
|
||||
.byte 0x14, 0x00
|
||||
|
||||
.global gUnknown_80F57D2
|
||||
gUnknown_80F57D2: @ 80F57D2
|
||||
@ replacing .incbin "baserom.gba", 0x000f57d2, 0x2
|
||||
.byte 0x0a, 0x00
|
||||
|
||||
.global gUnknown_80F57D4
|
||||
gUnknown_80F57D4: @ 80F57D4
|
||||
.incbin "baserom.gba", 0xF57D4, 0x120
|
||||
|
||||
.global gUnknown_80F58F4
|
||||
gUnknown_80F58F4: @ 80F58F4
|
||||
.incbin "baserom.gba", 0xF58F4, 0x84
|
||||
|
||||
.global gSecretPowerTable
|
||||
gSecretPowerTable: @ 80F5978
|
||||
.byte 0x03
|
||||
.byte 0x00
|
||||
.byte 0x06
|
||||
.byte 0x07
|
||||
.byte 0x07
|
||||
.byte 0x06
|
||||
.byte 0x06
|
||||
.byte 0x07
|
||||
.byte 0x08
|
||||
.byte 0x06
|
||||
.byte 0x00
|
||||
.byte 0x05
|
||||
.byte 0x08
|
||||
.byte 0x08
|
||||
.byte 0x00
|
||||
.byte 0x08
|
||||
.byte 0x08
|
||||
.byte 0x07
|
||||
.byte 0x07
|
||||
.byte 0x07
|
||||
.byte 0x00
|
||||
.byte 0x05
|
||||
.byte 0x06
|
||||
.byte 0x08
|
||||
.byte 0x06
|
||||
.byte 0x00
|
||||
.byte 0x00
|
||||
.byte 0x08
|
||||
.byte 0x06
|
||||
.byte 0x01
|
||||
.byte 0x07
|
||||
.byte 0x07
|
||||
.byte 0x01
|
||||
.byte 0x01
|
||||
.byte 0x06
|
||||
.byte 0x08
|
||||
.byte 0x08
|
||||
.byte 0x07
|
||||
.byte 0x06
|
||||
.byte 0x06
|
||||
.byte 0x06
|
||||
.byte 0x00
|
||||
.byte 0x06
|
||||
.byte 0x06
|
||||
.byte 0x05
|
||||
.byte 0x08
|
||||
.byte 0x06
|
||||
.byte 0x06
|
||||
.byte 0x06
|
||||
.byte 0x03
|
||||
.byte 0x00
|
||||
.byte 0x00
|
||||
.byte 0x05
|
||||
.byte 0x02
|
||||
.byte 0x07
|
||||
.byte 0x06
|
||||
.byte 0x00
|
||||
.byte 0x08
|
||||
.byte 0x08
|
||||
.byte 0x06
|
||||
.byte 0x00
|
||||
.byte 0x07
|
||||
.byte 0x00
|
||||
.byte 0x00
|
||||
.byte 0x06
|
||||
.byte 0x01
|
||||
.byte 0x06
|
||||
.byte 0x06
|
||||
.byte 0x08
|
||||
.byte 0x08
|
||||
.byte 0x06
|
||||
.byte 0x08
|
||||
.byte 0x08
|
||||
.byte 0x03
|
||||
.byte 0x03
|
||||
.byte 0x06
|
||||
|
||||
|
|
@ -1,18 +0,0 @@
|
|||
#ifndef GUARD_CALLED_MOVE_DATA_H
|
||||
#define GUARD_CALLED_MOVE_DATA_H
|
||||
|
||||
#include "structs/dungeon_entity.h"
|
||||
#include "structs/str_moves.h"
|
||||
|
||||
typedef bool8 (*MoveCallback)(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
struct CalledMove
|
||||
{
|
||||
u16 moveID;
|
||||
MoveCallback callback;
|
||||
};
|
||||
|
||||
#define METRONOME_AVAILABLE_CALLED_MOVES 105
|
||||
extern const struct CalledMove gMetronomeCalledMoves[METRONOME_AVAILABLE_CALLED_MOVES];
|
||||
extern const struct CalledMove gNaturePowerCalledMoves[];
|
||||
|
||||
#endif
|
||||
|
|
@ -1,9 +1,12 @@
|
|||
#ifndef GUARD_DUNGEON_BATTLE_DATA_H
|
||||
#define GUARD_DUNGEON_BATTLE_DATA_H
|
||||
#ifndef GUARD_DUNGEON_CONFIG_H
|
||||
#define GUARD_DUNGEON_CONFIG_H
|
||||
|
||||
#include "math.h"
|
||||
#include "constants/weather.h"
|
||||
#include "constants/type.h"
|
||||
#include "constants/dungeon_action.h"
|
||||
#include "structs/dungeon_entity.h"
|
||||
#include "structs/str_moves.h"
|
||||
|
||||
extern const s16 gFreezeTurnRange[2];
|
||||
extern const s16 gBurnTurnRange[2];
|
||||
|
|
@ -179,4 +182,42 @@ extern const s48_16 gBellyGoDownValues[BELLY_GO_DOWN_VALUES_COUNT];
|
|||
#define WARP_SCARF_ACTIVATION_CHANCES_COUNT 20
|
||||
extern const s16 gWarpScarfActivationChances[WARP_SCARF_ACTIVATION_CHANCES_COUNT];
|
||||
|
||||
struct ReturnDmgData
|
||||
{
|
||||
s16 minIq;
|
||||
s16 dmgVal;
|
||||
};
|
||||
|
||||
extern const struct ReturnDmgData gReturnDmgData[];
|
||||
extern const struct ReturnDmgData gFrustrationDmgData[];
|
||||
|
||||
extern const u8 gDungeonCamouflageTypes[76];
|
||||
|
||||
extern const s16 gDungeonMusic[76];
|
||||
extern const s16 gRecruitRateByLevel[101];
|
||||
|
||||
extern const s16 gRayquazaConfigLevel;
|
||||
extern const s16 gZapdosConfigLevel;
|
||||
extern const s16 gMoltresConfigLevel;
|
||||
extern const s16 gArticunoConfigLevel;
|
||||
extern const s16 gGroudonConfigLevel;
|
||||
|
||||
extern const s16 sKecleonShopItemSpawnChances[16][3][3];
|
||||
|
||||
extern const bool8 gUnknown_80F58F4[NUM_DUNGEON_ACTIONS][2];
|
||||
|
||||
extern const u8 gSecretPowerTable[76];
|
||||
extern const s16 gIqItemMasterMinWildLevel;
|
||||
|
||||
typedef bool8 (*MoveCallback)(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
struct CalledMove
|
||||
{
|
||||
u16 moveID;
|
||||
MoveCallback callback;
|
||||
};
|
||||
|
||||
#define METRONOME_AVAILABLE_CALLED_MOVES 105
|
||||
extern const struct CalledMove gMetronomeCalledMoves[METRONOME_AVAILABLE_CALLED_MOVES];
|
||||
extern const struct CalledMove gNaturePowerCalledMoves[];
|
||||
|
||||
#endif
|
||||
|
|
@ -541,12 +541,7 @@ SECTIONS {
|
|||
src/status_checks.o(.rodata);
|
||||
data/data_80F4DB4.o(.rodata);
|
||||
src/dungeon_ai_attack.o(.rodata);
|
||||
src/dungeon_battle_data.o(.rodata);
|
||||
data/data_80F54B4.o(.rodata);
|
||||
src/move_checks.o(.rodata);
|
||||
data/data_80F5668.o(.rodata);
|
||||
src/dungeon_pokemon_attributes.o(.rodata);
|
||||
src/called_move_data.o(.rodata);
|
||||
src/dungeon_config.o(.rodata);
|
||||
data/data_80F59C8.o(.rodata);
|
||||
src/dungeon_message.o(.rodata);
|
||||
src/dungeon_move.o(.rodata);
|
||||
|
|
|
|||
|
|
@ -1,306 +0,0 @@
|
|||
#include "global.h"
|
||||
#include "called_move_data.h"
|
||||
#include "constants/move_id.h"
|
||||
|
||||
extern bool8 IronTailMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 YawnMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 NightmareMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 CharmMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 EncoreMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 SuperFangMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 PainSplitMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 TormentMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 SwaggerMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 RockSlideMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 WhirlpoolMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 FakeTearsMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 SpiteMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 SmokescreenMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 FlatterMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 WillOWispMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 ReturnMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 FlameWheelMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 GustMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 DisableMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 ShadowBallMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 BiteMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 ThunderMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 EndeavorMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 FacadeMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 sub_8058580(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 BrickBreakMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 RockTombMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 GigaDrainMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 ReversalMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 SmellingSaltMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 MetalSoundMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 TickleMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 OutrageMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 LowKickMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 AncientPowerMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 RapidSpinMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 ScaryFaceMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 sub_8058E5C(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 LickMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 FissureMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 ExtrasensoryMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 AbsorbMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 SkillSwapMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 HeadbuttMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 DoubleEdgeMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 sub_8059528(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 SmogMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 SacredFireMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 sub_80595EC(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 MuddyWaterMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 TwisterMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 TwineedleMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 sub_8059A2C(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 SupersonicMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 TauntMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 HornDrillMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 ThundershockMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 ThunderWaveMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 BlockMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 PoisonGasMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 ToxicMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 PoisonFangMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 PoisonStingMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 TriAttackMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 TrickMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 TripleKickMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 MudSlapMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 ThiefMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 RolePlayMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 LeerMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 PayDayMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 CurseMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 sub_805A568(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 SuperpowerMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 DynamicPunchMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 KnockOffMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 SecretPowerMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 sub_805AC90(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 ObserverOrbAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 FeatherDanceMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 BeatUpMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 BlastBurnMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 CrushClawMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 BlazeKickMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 PresentMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 EruptionMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 GlareMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 PoisonTailMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 RoarMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 sub_805B17C(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 WrapMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 MagnitudeMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 MistBallMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 DestinyBondMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 FalseSwipeMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 HiddenPowerMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 AttractMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 MimicMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 FrustrationMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 LeechSeedMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 DreamEaterMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 LusterPurgeMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 DragonRageMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 FakeOutMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 HandleRegularDamagingMove(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
extern bool8 StunSporeMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4);
|
||||
|
||||
// Todo: move this data to some better place once the file structure is better understood
|
||||
|
||||
// These are random
|
||||
const struct CalledMove gMetronomeCalledMoves[METRONOME_AVAILABLE_CALLED_MOVES] =
|
||||
{
|
||||
{MOVE_IRON_TAIL, IronTailMoveAction},
|
||||
{MOVE_YAWN, YawnMoveAction},
|
||||
{MOVE_NIGHTMARE, NightmareMoveAction},
|
||||
{MOVE_CHARM, CharmMoveAction},
|
||||
{MOVE_ENCORE, EncoreMoveAction},
|
||||
{MOVE_SUPER_FANG, SuperFangMoveAction},
|
||||
{MOVE_PAIN_SPLIT, PainSplitMoveAction},
|
||||
{MOVE_TORMENT, TormentMoveAction},
|
||||
{MOVE_SWAGGER, SwaggerMoveAction},
|
||||
{MOVE_ROCK_SLIDE, RockSlideMoveAction},
|
||||
{MOVE_WHIRLPOOL, WhirlpoolMoveAction},
|
||||
{MOVE_FAKE_TEARS, FakeTearsMoveAction},
|
||||
{MOVE_SPITE, SpiteMoveAction},
|
||||
{MOVE_SMOKESCREEN, SmokescreenMoveAction},
|
||||
{MOVE_FLATTER, FlatterMoveAction},
|
||||
{MOVE_WILL_O_WISP, WillOWispMoveAction},
|
||||
{MOVE_RETURN, ReturnMoveAction},
|
||||
{MOVE_FLAME_WHEEL, FlameWheelMoveAction},
|
||||
{MOVE_GUST, GustMoveAction},
|
||||
{MOVE_DISABLE, DisableMoveAction},
|
||||
{MOVE_CRUNCH, ShadowBallMoveAction},
|
||||
{MOVE_BITE, BiteMoveAction},
|
||||
{MOVE_THUNDER, ThunderMoveAction},
|
||||
{MOVE_ENDEAVOR, EndeavorMoveAction},
|
||||
{MOVE_FACADE, FacadeMoveAction},
|
||||
{MOVE_CONSTRICT, sub_8058580},
|
||||
{MOVE_BRICK_BREAK, BrickBreakMoveAction},
|
||||
{MOVE_ROCK_TOMB, RockTombMoveAction},
|
||||
{MOVE_GIGA_DRAIN, GigaDrainMoveAction},
|
||||
{MOVE_REVERSAL, ReversalMoveAction},
|
||||
{MOVE_SMELLINGSALT, SmellingSaltMoveAction},
|
||||
{MOVE_METAL_SOUND, MetalSoundMoveAction},
|
||||
{MOVE_TICKLE, TickleMoveAction},
|
||||
{MOVE_OUTRAGE, OutrageMoveAction},
|
||||
{MOVE_LOW_KICK, LowKickMoveAction},
|
||||
{MOVE_ANCIENTPOWER, AncientPowerMoveAction},
|
||||
{MOVE_RAPID_SPIN, RapidSpinMoveAction},
|
||||
{MOVE_SCARY_FACE, ScaryFaceMoveAction},
|
||||
{MOVE_SUBMISSION, sub_8058E5C},
|
||||
{MOVE_LICK, LickMoveAction},
|
||||
{MOVE_FISSURE, FissureMoveAction},
|
||||
{MOVE_EXTRASENSORY, ExtrasensoryMoveAction},
|
||||
{MOVE_ABSORB, AbsorbMoveAction},
|
||||
{MOVE_SKILL_SWAP, SkillSwapMoveAction},
|
||||
{MOVE_HEADBUTT, HeadbuttMoveAction},
|
||||
{MOVE_DOUBLE_EDGE, DoubleEdgeMoveAction},
|
||||
{MOVE_SAND_ATTACK, sub_8059528},
|
||||
{MOVE_SMOG, SmogMoveAction},
|
||||
{MOVE_SACRED_FIRE, SacredFireMoveAction},
|
||||
{MOVE_SHEER_COLD, sub_80595EC},
|
||||
{MOVE_MUDDY_WATER, MuddyWaterMoveAction},
|
||||
{MOVE_TWISTER, TwisterMoveAction},
|
||||
{MOVE_TWINEEDLE, TwineedleMoveAction},
|
||||
{MOVE_SEISMIC_TOSS, sub_8059A2C},
|
||||
{MOVE_SUPERSONIC, SupersonicMoveAction},
|
||||
{MOVE_TAUNT, TauntMoveAction},
|
||||
{MOVE_HORN_DRILL, HornDrillMoveAction},
|
||||
{MOVE_THUNDERSHOCK, ThundershockMoveAction},
|
||||
{MOVE_THUNDER_WAVE, ThunderWaveMoveAction},
|
||||
{MOVE_BLOCK, BlockMoveAction},
|
||||
{MOVE_POISON_GAS, PoisonGasMoveAction},
|
||||
{MOVE_TOXIC, ToxicMoveAction},
|
||||
{MOVE_POISON_FANG, PoisonFangMoveAction},
|
||||
{MOVE_POISON_STING, PoisonStingMoveAction},
|
||||
{MOVE_TRI_ATTACK, TriAttackMoveAction},
|
||||
{MOVE_TRICK, TrickMoveAction},
|
||||
{MOVE_TRIPLE_KICK, TripleKickMoveAction},
|
||||
{MOVE_MUD_SLAP, MudSlapMoveAction},
|
||||
{MOVE_THIEF, ThiefMoveAction},
|
||||
{MOVE_ROLE_PLAY, RolePlayMoveAction},
|
||||
{MOVE_LEER, LeerMoveAction},
|
||||
{MOVE_PAY_DAY, PayDayMoveAction},
|
||||
{MOVE_CURSE, CurseMoveAction},
|
||||
{MOVE_FRENZY_PLANT, sub_805A568},
|
||||
{MOVE_SUPERPOWER, SuperpowerMoveAction},
|
||||
{MOVE_DYNAMICPUNCH, DynamicPunchMoveAction},
|
||||
{MOVE_KNOCK_OFF, KnockOffMoveAction},
|
||||
{MOVE_SECRET_POWER, SecretPowerMoveAction},
|
||||
{MOVE_DIZZY_PUNCH, sub_805AC90},
|
||||
{MOVE_IMPRISON, ObserverOrbAction},
|
||||
{MOVE_FEATHERDANCE, FeatherDanceMoveAction},
|
||||
{MOVE_BEAT_UP, BeatUpMoveAction},
|
||||
{MOVE_BLAST_BURN, BlastBurnMoveAction},
|
||||
{MOVE_CRUSH_CLAW, CrushClawMoveAction},
|
||||
{MOVE_BLAZE_KICK, BlazeKickMoveAction},
|
||||
{MOVE_PRESENT, PresentMoveAction},
|
||||
{MOVE_ERUPTION, EruptionMoveAction},
|
||||
{MOVE_GLARE, GlareMoveAction},
|
||||
{MOVE_POISON_TAIL, PoisonTailMoveAction},
|
||||
{MOVE_ROAR, RoarMoveAction},
|
||||
{MOVE_FIRE_SPIN, sub_805B17C},
|
||||
{MOVE_WRAP, WrapMoveAction},
|
||||
{MOVE_MAGNITUDE, MagnitudeMoveAction},
|
||||
{MOVE_MIST_BALL, MistBallMoveAction},
|
||||
{MOVE_DESTINY_BOND, DestinyBondMoveAction},
|
||||
{MOVE_FALSE_SWIPE, FalseSwipeMoveAction},
|
||||
{MOVE_HIDDEN_POWER, HiddenPowerMoveAction},
|
||||
{MOVE_ATTRACT, AttractMoveAction},
|
||||
{MOVE_MIMIC, MimicMoveAction},
|
||||
{MOVE_FRUSTRATION, FrustrationMoveAction},
|
||||
{MOVE_LEECH_SEED, LeechSeedMoveAction},
|
||||
{MOVE_DREAM_EATER, DreamEaterMoveAction},
|
||||
{MOVE_LUSTER_PURGE, LusterPurgeMoveAction},
|
||||
{MOVE_DRAGON_RAGE, DragonRageMoveAction},
|
||||
{MOVE_FAKE_OUT, FakeOutMoveAction},
|
||||
};
|
||||
|
||||
// These correspond to dungeon's tileset id
|
||||
const struct CalledMove gNaturePowerCalledMoves[] =
|
||||
{
|
||||
{MOVE_SURF, HandleRegularDamagingMove},
|
||||
{MOVE_STUN_SPORE, StunSporeMoveAction},
|
||||
{MOVE_ROCK_SLIDE, RockSlideMoveAction},
|
||||
{MOVE_SHADOW_BALL, ShadowBallMoveAction},
|
||||
{MOVE_SHADOW_BALL, ShadowBallMoveAction},
|
||||
{MOVE_ROCK_SLIDE, RockSlideMoveAction},
|
||||
{MOVE_ROCK_SLIDE, RockSlideMoveAction},
|
||||
{MOVE_SHADOW_BALL, ShadowBallMoveAction},
|
||||
{MOVE_SWIFT, HandleRegularDamagingMove},
|
||||
{MOVE_ROCK_SLIDE, RockSlideMoveAction},
|
||||
{MOVE_STUN_SPORE, StunSporeMoveAction},
|
||||
{MOVE_EARTHQUAKE, HandleRegularDamagingMove},
|
||||
{MOVE_SWIFT, HandleRegularDamagingMove},
|
||||
{MOVE_SWIFT, HandleRegularDamagingMove},
|
||||
{MOVE_STUN_SPORE, StunSporeMoveAction},
|
||||
{MOVE_SWIFT, HandleRegularDamagingMove},
|
||||
{MOVE_SWIFT, HandleRegularDamagingMove},
|
||||
{MOVE_SHADOW_BALL, ShadowBallMoveAction},
|
||||
{MOVE_SHADOW_BALL, ShadowBallMoveAction},
|
||||
{MOVE_SHADOW_BALL, ShadowBallMoveAction},
|
||||
{MOVE_STUN_SPORE, StunSporeMoveAction},
|
||||
{MOVE_EARTHQUAKE, HandleRegularDamagingMove},
|
||||
{MOVE_ROCK_SLIDE, RockSlideMoveAction},
|
||||
{MOVE_SWIFT, HandleRegularDamagingMove},
|
||||
{MOVE_ROCK_SLIDE, RockSlideMoveAction},
|
||||
{MOVE_STUN_SPORE, StunSporeMoveAction},
|
||||
{MOVE_STUN_SPORE, StunSporeMoveAction},
|
||||
{MOVE_SWIFT, HandleRegularDamagingMove},
|
||||
{MOVE_ROCK_SLIDE, RockSlideMoveAction},
|
||||
{MOVE_RAZOR_LEAF, HandleRegularDamagingMove},
|
||||
{MOVE_SHADOW_BALL, ShadowBallMoveAction},
|
||||
{MOVE_SHADOW_BALL, ShadowBallMoveAction},
|
||||
{MOVE_RAZOR_LEAF, HandleRegularDamagingMove},
|
||||
{MOVE_RAZOR_LEAF, HandleRegularDamagingMove},
|
||||
{MOVE_ROCK_SLIDE, RockSlideMoveAction},
|
||||
{MOVE_SWIFT, HandleRegularDamagingMove},
|
||||
{MOVE_SWIFT, HandleRegularDamagingMove},
|
||||
{MOVE_SHADOW_BALL, ShadowBallMoveAction},
|
||||
{MOVE_ROCK_SLIDE, RockSlideMoveAction},
|
||||
{MOVE_ROCK_SLIDE, RockSlideMoveAction},
|
||||
{MOVE_ROCK_SLIDE, RockSlideMoveAction},
|
||||
{MOVE_STUN_SPORE, StunSporeMoveAction},
|
||||
{MOVE_ROCK_SLIDE, RockSlideMoveAction},
|
||||
{MOVE_ROCK_SLIDE, RockSlideMoveAction},
|
||||
{MOVE_EARTHQUAKE, HandleRegularDamagingMove},
|
||||
{MOVE_SWIFT, HandleRegularDamagingMove},
|
||||
{MOVE_ROCK_SLIDE, RockSlideMoveAction},
|
||||
{MOVE_ROCK_SLIDE, RockSlideMoveAction},
|
||||
{MOVE_ROCK_SLIDE, RockSlideMoveAction},
|
||||
{MOVE_SURF, HandleRegularDamagingMove},
|
||||
{MOVE_STUN_SPORE, StunSporeMoveAction},
|
||||
{MOVE_STUN_SPORE, StunSporeMoveAction},
|
||||
{MOVE_EARTHQUAKE, HandleRegularDamagingMove},
|
||||
{MOVE_BUBBLEBEAM, sub_8058580},
|
||||
{MOVE_SHADOW_BALL, ShadowBallMoveAction},
|
||||
{MOVE_ROCK_SLIDE, RockSlideMoveAction},
|
||||
{MOVE_STUN_SPORE, StunSporeMoveAction},
|
||||
{MOVE_SWIFT, HandleRegularDamagingMove},
|
||||
{MOVE_SWIFT, HandleRegularDamagingMove},
|
||||
{MOVE_ROCK_SLIDE, RockSlideMoveAction},
|
||||
{MOVE_STUN_SPORE, StunSporeMoveAction},
|
||||
{MOVE_SHADOW_BALL, ShadowBallMoveAction},
|
||||
{MOVE_STUN_SPORE, StunSporeMoveAction},
|
||||
{MOVE_STUN_SPORE, StunSporeMoveAction},
|
||||
{MOVE_ROCK_SLIDE, RockSlideMoveAction},
|
||||
{MOVE_RAZOR_LEAF, HandleRegularDamagingMove},
|
||||
{MOVE_ROCK_SLIDE, RockSlideMoveAction},
|
||||
{MOVE_ROCK_SLIDE, RockSlideMoveAction},
|
||||
{MOVE_SWIFT, HandleRegularDamagingMove},
|
||||
{MOVE_SWIFT, HandleRegularDamagingMove},
|
||||
{MOVE_ROCK_SLIDE, RockSlideMoveAction},
|
||||
{MOVE_SWIFT, HandleRegularDamagingMove},
|
||||
{MOVE_SWIFT, HandleRegularDamagingMove},
|
||||
{MOVE_SURF, HandleRegularDamagingMove},
|
||||
{MOVE_SURF, HandleRegularDamagingMove},
|
||||
{MOVE_ROCK_SLIDE, HandleRegularDamagingMove},
|
||||
};
|
||||
|
||||
//
|
||||
|
|
@ -7,7 +7,7 @@
|
|||
#include "code_806CD90.h"
|
||||
#include "code_8041AD0.h"
|
||||
#include "code_800DAC0.h"
|
||||
#include "dungeon_battle_data.h"
|
||||
#include "dungeon_config.h"
|
||||
#include "constants/direction.h"
|
||||
#include "constants/status.h"
|
||||
#include "constants/type.h"
|
||||
|
|
|
|||
|
|
@ -37,6 +37,7 @@
|
|||
#include "constants/monster.h"
|
||||
#include "constants/trap.h"
|
||||
#include "dungeon_serializer.h"
|
||||
#include "dungeon_config.h"
|
||||
|
||||
extern void sub_800EE5C(s32);
|
||||
extern void sub_800EF64(void);
|
||||
|
|
@ -390,7 +391,6 @@ extern const u8 *const gUnknown_80F89D4;
|
|||
extern const u8 *const gUnknown_80F89D8;
|
||||
|
||||
extern const s16 gUnknown_80F6850[4];
|
||||
extern const s16 gDungeonMusic[];
|
||||
|
||||
extern OpenedFile *gDungeonNameBannerPalette;
|
||||
|
||||
|
|
|
|||
|
|
@ -26,7 +26,7 @@
|
|||
#include "structs/dungeon_entity.h"
|
||||
#include "structs/str_dungeon.h"
|
||||
#include "structs/str_position.h"
|
||||
#include "dungeon_battle_data.h"
|
||||
#include "dungeon_config.h"
|
||||
|
||||
extern s16 gTypeGummiIQBoost[NUM_TYPES][NUMBER_OF_GUMMIS];
|
||||
|
||||
|
|
|
|||
|
|
@ -40,7 +40,7 @@
|
|||
#include "constants/iq_skill.h"
|
||||
#include "structs/str_806B7F8.h"
|
||||
#include "structs/str_202ED28.h"
|
||||
#include "dungeon_battle_data.h"
|
||||
#include "dungeon_config.h"
|
||||
|
||||
extern u8 *gUnknown_80FCC7C[];
|
||||
extern u8 *gUnknown_80FCCAC[];
|
||||
|
|
|
|||
|
|
@ -35,7 +35,7 @@
|
|||
#include "code_8041AD0.h"
|
||||
#include "dungeon_message.h"
|
||||
#include "dungeon_map_access.h"
|
||||
#include "dungeon_battle_data.h"
|
||||
#include "dungeon_config.h"
|
||||
|
||||
extern u8 gUnknown_202F221;
|
||||
|
||||
|
|
|
|||
|
|
@ -21,7 +21,7 @@
|
|||
#include "dungeon_items.h"
|
||||
#include "structs/str_damage.h"
|
||||
#include "dungeon_util.h"
|
||||
#include "dungeon_battle_data.h"
|
||||
#include "dungeon_config.h"
|
||||
|
||||
void sub_8042940(Entity *r0);
|
||||
void sub_80428B0(Entity *r0);
|
||||
|
|
|
|||
|
|
@ -23,11 +23,10 @@
|
|||
#include "text_util.h"
|
||||
#include "dungeon_util_1.h"
|
||||
#include "math.h"
|
||||
#include "dungeon_battle_data.h"
|
||||
#include "dungeon_config.h"
|
||||
#include "string_format.h"
|
||||
|
||||
extern u8 gUnknown_202EE70[MAX_TEAM_BODY_SIZE];
|
||||
extern s16 gUnknown_80F5700[];
|
||||
extern s32 gUnknown_8106F7C[];
|
||||
|
||||
extern u8 *gUnknown_80FA0F0[];
|
||||
|
|
@ -246,7 +245,7 @@ bool8 sub_806F660(Entity *pokemon, Entity *target)
|
|||
if (HasHeldItem(pokemon, ITEM_FRIEND_BOW)) {
|
||||
recruitRate += gFriendBowRecruitRateUpValue;
|
||||
}
|
||||
recruitRate += gUnknown_80F5700[pokemonInfo->level];
|
||||
recruitRate += gRecruitRateByLevel[pokemonInfo->level];
|
||||
if (rand >= recruitRate)
|
||||
return FALSE;
|
||||
|
||||
|
|
|
|||
|
|
@ -33,7 +33,7 @@
|
|||
#include "code_8077274_1.h"
|
||||
#include "dungeon_pokemon_attributes.h"
|
||||
#include "math.h"
|
||||
#include "dungeon_battle_data.h"
|
||||
#include "dungeon_config.h"
|
||||
|
||||
extern bool8 sub_8044B28(void);
|
||||
extern void sub_8075708(Entity *entity);
|
||||
|
|
|
|||
|
|
@ -27,7 +27,7 @@
|
|||
#include "structs/str_dungeon.h"
|
||||
#include "dungeon_map_access.h"
|
||||
#include "structs/str_806B7F8.h"
|
||||
#include "dungeon_battle_data.h"
|
||||
#include "dungeon_config.h"
|
||||
|
||||
extern u8 *gUnknown_80FA8BC[];
|
||||
extern u8 *gUnknown_80FA824[];
|
||||
|
|
|
|||
|
|
@ -23,7 +23,7 @@
|
|||
#include "tile_types.h"
|
||||
#include "code_803E668.h"
|
||||
#include "weather.h"
|
||||
#include "dungeon_battle_data.h"
|
||||
#include "dungeon_config.h"
|
||||
|
||||
extern u32 gUnknown_202EDCC;
|
||||
extern u32 gUnknown_203B444[];
|
||||
|
|
|
|||
|
|
@ -1,6 +1,5 @@
|
|||
#include "global.h"
|
||||
#include "dungeon_ai_leader.h"
|
||||
|
||||
#include "charge_move.h"
|
||||
#include "code_803E46C.h"
|
||||
#include "code_804267C.h"
|
||||
|
|
@ -26,6 +25,7 @@
|
|||
#include "pokemon_3.h"
|
||||
#include "pokemon.h"
|
||||
#include "trap.h"
|
||||
#include "dungeon_config.h"
|
||||
|
||||
extern u8 gUnknown_202F221;
|
||||
extern u8 gUnknown_202F222;
|
||||
|
|
@ -36,7 +36,6 @@ extern u8 gUnknown_203B434;
|
|||
extern u8 *gUnknown_80FA5B4[];
|
||||
extern u8 *gUnknown_80FE478[];
|
||||
extern u8 *gUnknown_80FD2CC[];
|
||||
extern u8 gUnknown_80F58F4[NUM_DUNGEON_ACTIONS][2];
|
||||
extern u8 *gUnknown_80FE6D4[];
|
||||
|
||||
void sub_8075BA4(Entity *param_1, u8 param_2);
|
||||
|
|
|
|||
|
|
@ -1,361 +0,0 @@
|
|||
#include "global.h"
|
||||
#include "dungeon_battle_data.h"
|
||||
#include "math.h"
|
||||
#include "constants/weather.h"
|
||||
#include "constants/type.h"
|
||||
#include "constants/monster.h"
|
||||
|
||||
const s16 gFreezeTurnRange[2] = {3, 5};
|
||||
const s16 gBurnTurnRange[2] = {0x7F, 0x7F};
|
||||
const s16 gPoisonTurnRange[2] = {0x7F, 0x7F};
|
||||
const s16 gBadPoisonTurnRange[2] = {0x7F, 0x7F};
|
||||
const s16 gCringeTurnRange[2] = {1, 1};
|
||||
const s16 gSpeedRaiseTurnRange[2] = {8, 10};
|
||||
UNUSED static const s16 sUnusedTurnRange1[2] = {3, 4};
|
||||
const s16 gSpeedLowerTurnRange[2] = {6, 8};
|
||||
const s16 gConfusionTurnRange[2] = {6, 12};
|
||||
const s16 gParalysisTurnRange[2] = {1, 2};
|
||||
const s16 gShadowHoldTurnRange[2] = {2, 5};
|
||||
const s16 gConstrictionTurnRange[2] = {3, 6};
|
||||
const s16 gWrapTurnRange[2] = {2, 5};
|
||||
const s16 gIngrainTurnRange[2] = {15, 30};
|
||||
UNUSED static const s16 sUnusedTurnRange2[2] = {2, 3};
|
||||
UNUSED static const s16 sUnusedTurnRange3[2] = {2, 6};
|
||||
UNUSED static const s16 sUnusedTurnRange4[2] = {10, 10};
|
||||
const s16 gPauseTurnRange[2] = {1, 1};
|
||||
const s16 gSleepTurnRange[2] = {3, 7};
|
||||
const s16 gNightmareTurnRange[2] = {4, 8};
|
||||
const s16 gSleeplessTurnRange[2] = {10, 12};
|
||||
const s16 gReflectTurnRange[2] = {10, 12};
|
||||
const s16 gLightScreenTurnRange[2] = {10, 12};
|
||||
const s16 gSafeguardTurnRange[2] = {15, 20};
|
||||
const s16 gMistTurnRange[2] = {10, 14};
|
||||
const s16 gMagicCoatTurnRange[2] = {10, 12};
|
||||
const s16 gNappingTurnRange[2] = {2, 4};
|
||||
const s16 gCounterTurnRange[2] = {6, 12};
|
||||
const s16 gBideTurnRange[2] = {3, 5};
|
||||
const s16 gEnragedTurnRange[2] = {4, 10};
|
||||
const s16 gCurseTurnRange[2] = {3, 5};
|
||||
const s16 gSnatchTurnRange[2] = {3, 5};
|
||||
const s16 gMudWaterSportTurnRange[2] = {10, 12};
|
||||
const s16 gLeechSeedTurnRange[2] = {10, 12};
|
||||
const s16 gWishTurnRange[2] = {10, 12};
|
||||
const s16 gSureShotTurnRange[2] = {10, 12};
|
||||
const s16 gPetrifiedLeaderTurnRange[2] = {20, 30};
|
||||
const s16 gPetrifiedTurnRange[2] = {0x7F, 0x7F};
|
||||
const s16 gSetDamageTurnRange[2] = {2, 4};
|
||||
const s16 gFocusEnergyTurnRange[2] = {2, 4};
|
||||
const s16 gCowerTurnRange[2] = {10, 12};
|
||||
const s16 gDecoyTurnRange[2] = {20, 50};
|
||||
const s16 gProtectTurnRange[2] = {2, 6};
|
||||
const s16 gTauntTurnRange[2] = {10, 12};
|
||||
const s16 gWhifferTurnRange[2] = {1, 6};
|
||||
const s16 gObserverOrbPausedTurnRange[2] = {10, 12};
|
||||
const s16 gInvisibleTurnRange[2] = {10, 20};
|
||||
const s16 gMirrorCoatTurnRange[2] = {10, 12};
|
||||
const s16 gPerishSongTurnRange[2] = {3, 3};
|
||||
const s16 gDestinyBondTurnRange[2] = {10, 10};
|
||||
const s16 gEncoreTurnRange[2] = {10, 10};
|
||||
const s16 gEnduringTurnRange[2] = {3, 5};
|
||||
const s16 gTransformedTurnRange[2] = {0x7F, 0x7F};
|
||||
const s16 gInfatuatedTurnRange[2] = {4, 6};
|
||||
const s16 gMobileTurnRange[2] = {0x7F, 0x7F};
|
||||
const s16 gBlinkerTurnRange[2] = {10, 10};
|
||||
const s16 gCrossEyedTurnRange[2] = {10, 10};
|
||||
const s16 gEyedropsTurnRange[2] = {0x7F, 0x7F};
|
||||
UNUSED static const s16 sUnusedTurnRange5[2] = {10, 10};
|
||||
const s16 gMirrorMoveTurnRange[2] = {2, 5};
|
||||
const s16 gMuzzledTurnRange[2] = {10, 10};
|
||||
const s16 gConversion2TurnRange[2] = {10, 10};
|
||||
const s16 gVitalThrowTurnRange[2] = {15, 20};
|
||||
const s16 gYawnTurnRange[2] = {2, 2};
|
||||
const s16 gSleepFromYawnTurnRange[2] = {4, 8};
|
||||
|
||||
const s16 gSpeedBoostActivationFrame = 250;
|
||||
|
||||
const s16 gBurnDmgCountdown = 20;
|
||||
const s16 gPoisonDmgCountdown = 10;
|
||||
const s16 gBadPoisonDmgCountdown = 2;
|
||||
const s16 gConstrictionDmgCountdown = 2;
|
||||
const s16 gWrapDmgCountdown = 2;
|
||||
const s16 gIngrainHealCountdown = 5;
|
||||
const s16 gCurseDmgCountdown = 10;
|
||||
const s16 gLeechSeedDmgCountdown = 2;
|
||||
|
||||
const s16 gMoveWeatherDuration = 20;
|
||||
|
||||
UNUSED static const s16 sUnusedConfig1 = 95;
|
||||
|
||||
const s16 gGinsengPlus3BoostChance = 12;
|
||||
const s24_8 gSolarBeamModifier = IntToF248_2(2.0);
|
||||
const s24_8 gSkyAttackModifier = IntToF248_2(2.0);
|
||||
const s24_8 gRazorWindModifier = IntToF248_2(2.0);
|
||||
const s24_8 gFocusPunchModifier = IntToF248_2(2.0);
|
||||
const s24_8 gSkullBashModifier = IntToF248_2(2.0);
|
||||
const s24_8 gFlyModifier = IntToF248_2(2.0);
|
||||
const s24_8 gBounceModifier = IntToF248_2(2.0);
|
||||
const s24_8 gDiveModifier = IntToF248_2(2.0);
|
||||
const s24_8 gDigModifier = IntToF248_2(2.0);
|
||||
const s24_8 gFacadeModifier = IntToF248_2(2.0);
|
||||
|
||||
const s16 gBurnDmgValue = 5;
|
||||
const s16 gPoisonDmgValue = 4;
|
||||
const s16 gConstrictionDmgValue = 5;
|
||||
const s16 gWrapDmgValue = 6;
|
||||
const s16 gNightmareDmgValue = 8;
|
||||
const s16 gNappingHpHealValue = 999;
|
||||
const s16 gSonicboomDmgValue = 55;
|
||||
const s16 gDragonRageDmgValue = 65;
|
||||
const s16 gVacuumCutDmgValue = 35;
|
||||
const s16 gSplashDmgValue = 5;
|
||||
const s16 gSpikeTrapDmgValue = 20;
|
||||
const s16 gChestnutTrapDmgValue = 10;
|
||||
UNUSED static const s16 sMaybeUnusedTrapDmgValue = 15;
|
||||
const s16 gPitfallTrapDmgValue = 5;
|
||||
const s16 gSetDamageDmgValue = 35;
|
||||
const s16 gHailSandstormDmgValue = 5;
|
||||
const s16 gBlowAwayDmgValue = 5;
|
||||
const s16 gHurlOrbDmgValue = 10;
|
||||
const s16 gMagnitudeDmgValues[7] = {5, 10, 15, 25, 30, 35, 40};
|
||||
const s16 gUnknownDungeonChance = 90; // See sub_8047930
|
||||
const s16 gBlastSeedThrownDmgValue = 20;
|
||||
const s16 gBlastSeedEatenDmgValue = 45;
|
||||
const s16 gBlastSeedThrownBossDmgValue = 15;
|
||||
const s16 gBlastSeedEatenBossDmgValue = 30;
|
||||
const s16 gUnknown_80F4FAC = 1;
|
||||
const s16 gUnknown_80F4FAE = 2;
|
||||
UNUSED static const s16 sUnusedConfig2 = 25;
|
||||
const s16 gIngrainHealValue = 10;
|
||||
const s16 gLeechSeedHealValue = 10;
|
||||
const s16 gOranBerryHealValue = 100;
|
||||
const s16 gOranBerryMaxHpRiseValue = 0;
|
||||
const s16 gSitrusBerryHealValue = 100;
|
||||
const s16 gSitrusBerryMaxHpRiseValue = 2;
|
||||
const s16 gLifeSeedMaxHpRiseValue = 3;
|
||||
const s16 gWishRegenValue = -220;
|
||||
const s16 gRainDishRegenValue = -150;
|
||||
const s16 gHealRibbonRegenValue = -100;
|
||||
const s16 gFamishBellyDownValue = 10;
|
||||
const s16 gBadPoisonDmgValuesByTurn[BAD_POISON_DMG_TURN_VALUES_COUNT] = { 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6 }; // Always damages the player by 6 hp, but given this exists it's possible they planned the damage to become worse each turn, but later decided to go against it.
|
||||
const s16 gStenchTerrifiedTurnsNo = 3;
|
||||
const s16 gPassScarfBellyDownValue = 2;
|
||||
const s16 gFriendBowRecruitRateUpValue = 100;
|
||||
const s16 gSynthesisHealValueByWeather[WEATHER_COUNT] =
|
||||
{
|
||||
[WEATHER_CLEAR] = 50,
|
||||
[WEATHER_SUNNY] = 80,
|
||||
[WEATHER_SANDSTORM] = 30,
|
||||
[WEATHER_CLOUDY] = 40,
|
||||
[WEATHER_RAIN] = 10,
|
||||
[WEATHER_HAIL] = 10,
|
||||
[WEATHER_FOG] = 1,
|
||||
[WEATHER_SNOW] = 1,
|
||||
};
|
||||
const s16 gMoonlightHealValueByWeather[WEATHER_COUNT] = // Identical to Synthesis
|
||||
{
|
||||
[WEATHER_CLEAR] = 50,
|
||||
[WEATHER_SUNNY] = 80,
|
||||
[WEATHER_SANDSTORM] = 30,
|
||||
[WEATHER_CLOUDY] = 40,
|
||||
[WEATHER_RAIN] = 10,
|
||||
[WEATHER_HAIL] = 10,
|
||||
[WEATHER_FOG] = 1,
|
||||
[WEATHER_SNOW] = 1,
|
||||
};
|
||||
const s16 gMorningSunHealValueByWeather[WEATHER_COUNT] = // Identical to Synthesis
|
||||
{
|
||||
[WEATHER_CLEAR] = 50,
|
||||
[WEATHER_SUNNY] = 80,
|
||||
[WEATHER_SANDSTORM] = 30,
|
||||
[WEATHER_CLOUDY] = 40,
|
||||
[WEATHER_RAIN] = 10,
|
||||
[WEATHER_HAIL] = 10,
|
||||
[WEATHER_FOG] = 1,
|
||||
[WEATHER_SNOW] = 1,
|
||||
};
|
||||
const s16 gStickPPValue = 1;
|
||||
const s16 gIronThornPPValue = 5;
|
||||
const s16 gSilverSpikePPValue = 6;
|
||||
const s16 gGoldFangPPValue = 7;
|
||||
const s16 gCacneaSpikePPValue = 8;
|
||||
const s16 gCorsolaTwigPPValue = 9;
|
||||
const s16 gGravelerockThrownDmgValue = 20;
|
||||
const s16 gGeoPebbleThrownDmgValue = 15;
|
||||
UNUSED static const s16 sUnusedConfig3 = 0;
|
||||
const s24_8 gAtkStatStageMultipliers[21] =
|
||||
{
|
||||
IntToF248_2(0.2500), IntToF248_2(0.2696), IntToF248_2(0.2892), IntToF248_2(0.3087), IntToF248_2(0.3282), IntToF248_2(0.3478),
|
||||
IntToF248_2(0.3985), IntToF248_2(0.4493), IntToF248_2(0.5000), IntToF248_2(0.6993), IntToF248_2(1.0000), IntToF248_2(1.2969),
|
||||
IntToF248_2(1.5000), IntToF248_2(1.5978), IntToF248_2(1.6485), IntToF248_2(1.6993), IntToF248_2(1.7500), IntToF248_2(1.7969),
|
||||
IntToF248_2(1.8478), IntToF248_2(1.8985), IntToF248_2(2.0000)
|
||||
};
|
||||
const s24_8 gDefStatStageMultipliers[21] =
|
||||
{
|
||||
IntToF248_2(0.2500), IntToF248_2(0.2696), IntToF248_2(0.2892), IntToF248_2(0.3087), IntToF248_2(0.3282), IntToF248_2(0.3478),
|
||||
IntToF248_2(0.3985), IntToF248_2(0.5469), IntToF248_2(0.6993), IntToF248_2(0.8672), IntToF248_2(1.0000), IntToF248_2(1.2969),
|
||||
IntToF248_2(1.5000), IntToF248_2(1.5978), IntToF248_2(1.6485), IntToF248_2(1.6993), IntToF248_2(1.7500), IntToF248_2(1.7969),
|
||||
IntToF248_2(1.8478), IntToF248_2(1.8985), IntToF248_2(2.0000)
|
||||
};
|
||||
const s24_8 gAccEvsStatStageMultipliers[2][21] =
|
||||
{
|
||||
// Accuracy
|
||||
{
|
||||
IntToF248_2(0.3282), IntToF248_2(0.3478), IntToF248_2(0.3672), IntToF248_2(0.3985), IntToF248_2(0.4297), IntToF248_2(0.4493),
|
||||
IntToF248_2(0.5469), IntToF248_2(0.5977), IntToF248_2(0.6993), IntToF248_2(0.7969), IntToF248_2(1.0000), IntToF248_2(1.2500),
|
||||
IntToF248_2(1.5000), IntToF248_2(1.5978), IntToF248_2(1.6485), IntToF248_2(1.6993), IntToF248_2(1.7500), IntToF248_2(1.7969),
|
||||
IntToF248_2(1.8478), IntToF248_2(1.8985), IntToF248_2(2.0000)
|
||||
},
|
||||
// Evasion
|
||||
{
|
||||
IntToF248_2(2.0000), IntToF248_2(1.8985), IntToF248_2(1.8478), IntToF248_2(1.7969), IntToF248_2(1.7500), IntToF248_2(1.6993),
|
||||
IntToF248_2(1.6485), IntToF248_2(1.5978), IntToF248_2(1.5000), IntToF248_2(1.3515), IntToF248_2(1.0000), IntToF248_2(0.7969),
|
||||
IntToF248_2(0.6993), IntToF248_2(0.5977), IntToF248_2(0.5000), IntToF248_2(0.3985), IntToF248_2(0.3477), IntToF248_2(0.2969),
|
||||
IntToF248_2(0.2500), IntToF248_2(0.1993), IntToF248_2(0.1485)
|
||||
},
|
||||
};
|
||||
const s32 gDetectBandAccuracyDebuffValue = 30; // For attacking mon, which effectively raises target's evasion
|
||||
const s32 gIqQuickDodgerAccuracyDebuffValue = 30; // For attacking mon, which effectively raises target's evasion
|
||||
const s24_8 gReversalModifiers[4] = {IntToF248_2(8), IntToF248_2(4), IntToF248_2(2), IntToF248_2(1)}; // Based on hp/max HP ratio
|
||||
const s24_8 gWaterSpoutModifiers[4] = {IntToF248_2(0.1), IntToF248_2(0.2), IntToF248_2(0.5), IntToF248_2(1)}; // Based on hp/max HP ratio
|
||||
const s24_8 gEruptionModifiers[4] = {IntToF248_2(0.1), IntToF248_2(0.2), IntToF248_2(0.5), IntToF248_2(1)}; // Based on hp/max HP ratio
|
||||
const s32 gStockpileHealHpValues[4] = {0, 20, 40, 80};
|
||||
|
||||
const u8 gWeatherBallTypes[WEATHER_COUNT] =
|
||||
{
|
||||
[WEATHER_CLEAR] = TYPE_NORMAL,
|
||||
[WEATHER_SUNNY] = TYPE_FIRE,
|
||||
[WEATHER_SANDSTORM] = TYPE_ROCK,
|
||||
[WEATHER_CLOUDY] = TYPE_NORMAL,
|
||||
[WEATHER_RAIN] = TYPE_WATER,
|
||||
[WEATHER_HAIL] = TYPE_ICE,
|
||||
[WEATHER_FOG] = TYPE_WATER,
|
||||
[WEATHER_SNOW] = TYPE_ICE,
|
||||
};
|
||||
const s24_8 gWeatherBallModifiers[WEATHER_COUNT] =
|
||||
{
|
||||
[WEATHER_CLEAR] = IntToF248_2(1.0),
|
||||
[WEATHER_SUNNY] = IntToF248_2(2.0),
|
||||
[WEATHER_SANDSTORM] = IntToF248_2(2.0),
|
||||
[WEATHER_CLOUDY] = IntToF248_2(1.0),
|
||||
[WEATHER_RAIN] = IntToF248_2(2.0),
|
||||
[WEATHER_HAIL] = IntToF248_2(2.0),
|
||||
[WEATHER_FOG] = IntToF248_2(2.0),
|
||||
[WEATHER_SNOW] = IntToF248_2(2.0),
|
||||
};
|
||||
|
||||
const struct CastformWeatherData gCastformByWeather[WEATHER_COUNT] =
|
||||
{
|
||||
[WEATHER_CLEAR] = {
|
||||
.type = TYPE_NORMAL,
|
||||
.monsterId = MONSTER_CASTFORM
|
||||
},
|
||||
[WEATHER_SUNNY] = {
|
||||
.type = TYPE_FIRE,
|
||||
.monsterId = MONSTER_CASTFORM_SUNNY
|
||||
},
|
||||
[WEATHER_SANDSTORM] = {
|
||||
.type = TYPE_NORMAL,
|
||||
.monsterId = MONSTER_CASTFORM
|
||||
},
|
||||
[WEATHER_CLOUDY] = {
|
||||
.type = TYPE_NORMAL,
|
||||
.monsterId = MONSTER_CASTFORM
|
||||
},
|
||||
[WEATHER_RAIN] = {
|
||||
.type = TYPE_WATER,
|
||||
.monsterId = MONSTER_CASTFORM_RAINY
|
||||
},
|
||||
[WEATHER_HAIL] = {
|
||||
.type = TYPE_ICE,
|
||||
.monsterId = MONSTER_CASTFORM_SNOWY
|
||||
},
|
||||
[WEATHER_FOG] = {
|
||||
.type = TYPE_WATER,
|
||||
.monsterId = MONSTER_CASTFORM_RAINY
|
||||
},
|
||||
[WEATHER_SNOW] = {
|
||||
.type = TYPE_ICE,
|
||||
.monsterId = MONSTER_CASTFORM_SNOWY
|
||||
},
|
||||
};
|
||||
|
||||
#define IMMUNE EFFECTIVENESS_IMMUNE
|
||||
#define RESIST EFFECTIVENESS_RESIST
|
||||
#define NEUTRAL EFFECTIVENESS_NEUTRAL
|
||||
#define SUPER EFFECTIVENESS_SUPER
|
||||
|
||||
const s16 gTypeEffectivenessChart[NUM_TYPES][NUM_TYPES] = {
|
||||
// NONE NORMAL FIRE WATER GRASS ELECTRIC ICE FIGHTING POISON GROUND FLYING PSYCHIC BUG ROCK GHOST DRAGON DARK STEEL
|
||||
[TYPE_NONE] = {NEUTRAL, NEUTRAL, NEUTRAL, NEUTRAL, NEUTRAL, NEUTRAL, NEUTRAL, NEUTRAL, NEUTRAL, NEUTRAL, NEUTRAL, NEUTRAL, NEUTRAL, NEUTRAL, NEUTRAL, NEUTRAL, NEUTRAL, NEUTRAL},
|
||||
[TYPE_NORMAL] = {NEUTRAL, NEUTRAL, NEUTRAL, NEUTRAL, NEUTRAL, NEUTRAL, NEUTRAL, NEUTRAL, NEUTRAL, NEUTRAL, NEUTRAL, NEUTRAL, NEUTRAL, RESIST, NEUTRAL, NEUTRAL, NEUTRAL, RESIST},
|
||||
[TYPE_FIRE] = {NEUTRAL, NEUTRAL, RESIST, RESIST, SUPER, NEUTRAL, SUPER, NEUTRAL, NEUTRAL, NEUTRAL, NEUTRAL, NEUTRAL, SUPER, RESIST, NEUTRAL, RESIST, NEUTRAL, SUPER},
|
||||
[TYPE_WATER] = {NEUTRAL, NEUTRAL, SUPER, RESIST, RESIST, NEUTRAL, NEUTRAL, NEUTRAL, NEUTRAL, SUPER, NEUTRAL, NEUTRAL, NEUTRAL, SUPER, NEUTRAL, RESIST, NEUTRAL, NEUTRAL},
|
||||
[TYPE_GRASS] = {NEUTRAL, NEUTRAL, RESIST, SUPER, RESIST, NEUTRAL, NEUTRAL, NEUTRAL, RESIST, SUPER, RESIST, NEUTRAL, RESIST, SUPER, NEUTRAL, RESIST, NEUTRAL, RESIST},
|
||||
[TYPE_ELECTRIC] = {NEUTRAL, NEUTRAL, NEUTRAL, SUPER, RESIST, RESIST, NEUTRAL, NEUTRAL, NEUTRAL, IMMUNE, SUPER, NEUTRAL, NEUTRAL, NEUTRAL, NEUTRAL, RESIST, NEUTRAL, NEUTRAL},
|
||||
[TYPE_ICE] = {NEUTRAL, NEUTRAL, RESIST, RESIST, SUPER, NEUTRAL, RESIST, NEUTRAL, NEUTRAL, SUPER, SUPER, NEUTRAL, NEUTRAL, NEUTRAL, NEUTRAL, SUPER, NEUTRAL, RESIST},
|
||||
[TYPE_FIGHTING] = {NEUTRAL, SUPER, NEUTRAL, NEUTRAL, NEUTRAL, NEUTRAL, SUPER, NEUTRAL, RESIST, NEUTRAL, RESIST, RESIST, RESIST, SUPER, NEUTRAL, NEUTRAL, SUPER, SUPER},
|
||||
[TYPE_POISON] = {NEUTRAL, NEUTRAL, NEUTRAL, NEUTRAL, SUPER, NEUTRAL, NEUTRAL, NEUTRAL, RESIST, RESIST, NEUTRAL, NEUTRAL, NEUTRAL, RESIST, RESIST, NEUTRAL, NEUTRAL, IMMUNE},
|
||||
[TYPE_GROUND] = {NEUTRAL, NEUTRAL, SUPER, NEUTRAL, RESIST, SUPER, NEUTRAL, NEUTRAL, SUPER, NEUTRAL, IMMUNE, NEUTRAL, RESIST, SUPER, NEUTRAL, NEUTRAL, NEUTRAL, SUPER},
|
||||
[TYPE_FLYING] = {NEUTRAL, NEUTRAL, NEUTRAL, NEUTRAL, SUPER, RESIST, NEUTRAL, SUPER, NEUTRAL, NEUTRAL, NEUTRAL, NEUTRAL, SUPER, RESIST, NEUTRAL, NEUTRAL, NEUTRAL, RESIST},
|
||||
[TYPE_PSYCHIC] = {NEUTRAL, NEUTRAL, NEUTRAL, NEUTRAL, NEUTRAL, NEUTRAL, NEUTRAL, SUPER, SUPER, NEUTRAL, NEUTRAL, RESIST, NEUTRAL, NEUTRAL, NEUTRAL, NEUTRAL, IMMUNE, RESIST},
|
||||
[TYPE_BUG] = {NEUTRAL, NEUTRAL, RESIST, NEUTRAL, SUPER, NEUTRAL, NEUTRAL, RESIST, RESIST, NEUTRAL, RESIST, SUPER, NEUTRAL, NEUTRAL, RESIST, NEUTRAL, SUPER, RESIST},
|
||||
[TYPE_ROCK] = {NEUTRAL, NEUTRAL, SUPER, NEUTRAL, NEUTRAL, NEUTRAL, SUPER, RESIST, NEUTRAL, RESIST, SUPER, NEUTRAL, SUPER, NEUTRAL, NEUTRAL, NEUTRAL, NEUTRAL, RESIST},
|
||||
[TYPE_GHOST] = {NEUTRAL, IMMUNE, NEUTRAL, NEUTRAL, NEUTRAL, NEUTRAL, NEUTRAL, NEUTRAL, NEUTRAL, NEUTRAL, NEUTRAL, SUPER, NEUTRAL, NEUTRAL, SUPER, NEUTRAL, RESIST, RESIST},
|
||||
[TYPE_DRAGON] = {NEUTRAL, NEUTRAL, NEUTRAL, NEUTRAL, NEUTRAL, NEUTRAL, NEUTRAL, NEUTRAL, NEUTRAL, NEUTRAL, NEUTRAL, NEUTRAL, NEUTRAL, NEUTRAL, NEUTRAL, SUPER, NEUTRAL, RESIST},
|
||||
[TYPE_DARK] = {NEUTRAL, NEUTRAL, NEUTRAL, NEUTRAL, NEUTRAL, NEUTRAL, NEUTRAL, RESIST, NEUTRAL, NEUTRAL, NEUTRAL, SUPER, NEUTRAL, NEUTRAL, SUPER, NEUTRAL, RESIST, RESIST},
|
||||
[TYPE_STEEL] = {NEUTRAL, NEUTRAL, RESIST, RESIST, NEUTRAL, RESIST, SUPER, NEUTRAL, NEUTRAL, NEUTRAL, NEUTRAL, NEUTRAL, NEUTRAL, SUPER, NEUTRAL, NEUTRAL, NEUTRAL, RESIST}
|
||||
};
|
||||
|
||||
const s32 gEffectivenessChart[NUM_EFFECTIVENESS][NUM_EFFECTIVENESS] = {
|
||||
[IMMUNE] = {
|
||||
[IMMUNE] = IMMUNE,
|
||||
[RESIST] = IMMUNE,
|
||||
[NEUTRAL] = IMMUNE,
|
||||
[SUPER] = RESIST,
|
||||
},
|
||||
[RESIST] = {
|
||||
[IMMUNE] = IMMUNE,
|
||||
[RESIST] = RESIST,
|
||||
[NEUTRAL] = RESIST,
|
||||
[SUPER] = NEUTRAL,
|
||||
},
|
||||
[NEUTRAL] = {
|
||||
[IMMUNE] = IMMUNE,
|
||||
[RESIST] = RESIST,
|
||||
[NEUTRAL] = NEUTRAL,
|
||||
[SUPER] = SUPER,
|
||||
},
|
||||
[SUPER] = {
|
||||
[IMMUNE] = RESIST,
|
||||
[RESIST] = NEUTRAL,
|
||||
[NEUTRAL] = SUPER,
|
||||
[SUPER] = SUPER,
|
||||
},
|
||||
};
|
||||
|
||||
// Todo: change to readable format
|
||||
const s48_16 gBellyGoDownValues[BELLY_GO_DOWN_VALUES_COUNT] =
|
||||
{
|
||||
{0, 0},
|
||||
{0, 0},
|
||||
{0, 0},
|
||||
{0, 0},
|
||||
{0, 0},
|
||||
{0, 0},
|
||||
{0, 0x199A},
|
||||
{0, 0x4000},
|
||||
{0, 0x8000},
|
||||
{0, 0xC000},
|
||||
{0, 0x10000},
|
||||
{0, 0x20000},
|
||||
{0, 0x40000},
|
||||
{0, 0x80000},
|
||||
{0, 0x100000},
|
||||
{0, 0x200000},
|
||||
{0, 0x400000},
|
||||
{0, 0x800000},
|
||||
{0, 0x800000},
|
||||
{0, 0x800000},
|
||||
};
|
||||
|
||||
const s16 gWarpScarfActivationChances[WARP_SCARF_ACTIVATION_CHANCES_COUNT] = {0, 6, 12, 30, 50, 70, 90, 110, 130, 150, 170, 190, 210, 230, 250, 270, 290, 310, 999, 0};
|
||||
1058
src/dungeon_config.c
Normal file
1058
src/dungeon_config.c
Normal file
File diff suppressed because it is too large
Load Diff
|
|
@ -31,14 +31,10 @@
|
|||
#include "exclusive_pokemon.h"
|
||||
#include "trap.h"
|
||||
#include "math.h"
|
||||
#include "dungeon_config.h"
|
||||
|
||||
extern u32 gDungeonBrightness;
|
||||
|
||||
extern const s16 gUnknown_80F57CA;
|
||||
extern const s16 gUnknown_80F57CC;
|
||||
extern const s16 gUnknown_80F57CE;
|
||||
extern const s16 gUnknown_80F57D0;
|
||||
extern const s16 gUnknown_80F57D2;
|
||||
extern const struct DungeonDialogueStruct GroudonPreFightDialogue_10;
|
||||
extern const struct DungeonDialogueStruct GroudonPreFightDialogue_11;
|
||||
extern const struct DungeonDialogueStruct GroudonPreFightDialogue_12;
|
||||
|
|
@ -849,7 +845,7 @@ void sub_808729C(void)
|
|||
sub_8068FE0(zapdosEntity,0x21c,0);
|
||||
}
|
||||
else {
|
||||
sub_8072008(zapdosEntity,zapdosEntity,gUnknown_80F57CC,0,0);
|
||||
sub_8072008(zapdosEntity,zapdosEntity,gZapdosConfigLevel,0,0);
|
||||
SetFacingDirection(zapdosEntity,DIRECTION_SOUTH);
|
||||
sub_8086A3C(zapdosEntity);
|
||||
}
|
||||
|
|
@ -1083,7 +1079,7 @@ void sub_8087848(void)
|
|||
sub_8068FE0(moltresEntity,0x21c,0);
|
||||
}
|
||||
else {
|
||||
sub_8072008(moltresEntity,moltresEntity,gUnknown_80F57CE,0,0);
|
||||
sub_8072008(moltresEntity,moltresEntity,gMoltresConfigLevel,0,0);
|
||||
SetFacingDirection(moltresEntity, DIRECTION_SOUTH);
|
||||
sub_8086A3C(moltresEntity);
|
||||
}
|
||||
|
|
@ -1503,7 +1499,7 @@ void sub_8087FF8(void)
|
|||
sub_8068FE0(articunoEntity,0x21c,0);
|
||||
}
|
||||
else {
|
||||
sub_8072008(articunoEntity,articunoEntity,gUnknown_80F57D0,0,0);
|
||||
sub_8072008(articunoEntity,articunoEntity,gArticunoConfigLevel,0,0);
|
||||
SetFacingDirection(articunoEntity, DIRECTION_SOUTH);
|
||||
sub_8086A3C(articunoEntity);
|
||||
}
|
||||
|
|
@ -1814,7 +1810,7 @@ void sub_808875C(void)
|
|||
sub_8068FE0(groudonEntity,0x21c,0);
|
||||
}
|
||||
else {
|
||||
sub_8072008(groudonEntity,groudonEntity,gUnknown_80F57D2,0,0);
|
||||
sub_8072008(groudonEntity,groudonEntity,gGroudonConfigLevel,0,0);
|
||||
SetFacingDirection(groudonEntity, DIRECTION_SOUTH);
|
||||
sub_80861D4(groudonEntity,0xf,DIRECTION_SOUTH);
|
||||
}
|
||||
|
|
@ -2365,7 +2361,7 @@ void sub_8089328(void)
|
|||
sub_8068FE0(rayquazaEntity,0x21c,0);
|
||||
}
|
||||
else {
|
||||
sub_8072008(rayquazaEntity,rayquazaEntity,gUnknown_80F57CA,0,0);
|
||||
sub_8072008(rayquazaEntity,rayquazaEntity,gRayquazaConfigLevel,0,0);
|
||||
sub_8086A3C(rayquazaEntity);
|
||||
}
|
||||
sub_8085860(leaderEntity->pos.x,leaderEntity->pos.y - 3);
|
||||
|
|
|
|||
|
|
@ -16,6 +16,7 @@
|
|||
#include "structs/str_dungeon.h"
|
||||
#include "structs/map.h"
|
||||
#include "structs/str_806B7F8.h"
|
||||
#include "dungeon_config.h"
|
||||
|
||||
extern const u8 gUnknown_80F6DCC[];
|
||||
extern struct FileArchive gDungeonFileArchive;
|
||||
|
|
@ -5962,8 +5963,6 @@ static void sub_8051438(struct GridCell *gridCell, s32 fixedRoomNumber)
|
|||
}
|
||||
}
|
||||
|
||||
extern const s16 gUnknown_80F57D4[][3][3];
|
||||
|
||||
static void sub_8051654(FloorProperties *floorProps)
|
||||
{
|
||||
s32 i, n;
|
||||
|
|
@ -6058,7 +6057,7 @@ static void sub_8051654(FloorProperties *floorProps)
|
|||
if ((tile->terrainType & TERRAIN_TYPE_NATURAL_JUNCTION))
|
||||
continue;
|
||||
|
||||
if (gUnknown_80F57D4[floorProps->unk18][yIndex][xIndex] > DungeonRandInt(100)) {
|
||||
if (sKecleonShopItemSpawnChances[floorProps->unk18][yIndex][xIndex] > DungeonRandInt(100)) {
|
||||
tile->spawnOrVisibilityFlags |= SPAWN_FLAG_ITEM;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -24,7 +24,6 @@
|
|||
#include "dungeon_random.h"
|
||||
#include "targeting_flags.h"
|
||||
#include "targeting.h"
|
||||
#include "called_move_data.h"
|
||||
#include "dungeon_map_access.h"
|
||||
#include "math.h"
|
||||
#include "code_800DAC0.h"
|
||||
|
|
@ -39,7 +38,7 @@
|
|||
#include "code_803E46C.h"
|
||||
#include "code_8041AD0.h"
|
||||
#include "code_800E9E4.h"
|
||||
#include "dungeon_battle_data.h"
|
||||
#include "dungeon_config.h"
|
||||
|
||||
extern void sub_80429C8(Entity *r0);
|
||||
extern bool8 sub_8045888(Entity *r0);
|
||||
|
|
|
|||
|
|
@ -15,10 +15,9 @@
|
|||
#include "moves.h"
|
||||
#include "pokemon_3.h"
|
||||
#include "pokemon.h"
|
||||
#include "dungeon_config.h"
|
||||
#include "structs/str_dungeon.h"
|
||||
|
||||
const s16 gItemMasterMinWildLevel[] = {16};
|
||||
|
||||
extern const u8 *gUnknown_80FC31C;
|
||||
extern const u8 * gUnknown_80FCEFC;
|
||||
extern const u8 * gUnknown_80FC2FC;
|
||||
|
|
@ -166,7 +165,7 @@ void LoadIQSkills(Entity *pokemon)
|
|||
SetIQSkill(iqSkills, IQ_ITEM_CATCHER);
|
||||
if (pokemonInfo->bossFlag)
|
||||
SetIQSkill(iqSkills, IQ_SELF_CURER);
|
||||
if (pokemonInfo->level >= *gItemMasterMinWildLevel)
|
||||
if (pokemonInfo->level >= gIqItemMasterMinWildLevel)
|
||||
SetIQSkill(iqSkills, IQ_ITEM_MASTER);
|
||||
pokemonInfo->tactic = TACTIC_GO_AFTER_FOES;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -32,8 +32,7 @@
|
|||
#include "structs/str_dungeon.h"
|
||||
#include "tile_types.h"
|
||||
#include "weather.h"
|
||||
#include "called_move_data.h"
|
||||
#include "dungeon_battle_data.h"
|
||||
#include "dungeon_config.h"
|
||||
|
||||
extern const u8 *const gUnknown_80FD350;
|
||||
extern const u8 *const gUnknown_80FD370;
|
||||
|
|
@ -104,7 +103,6 @@ extern s16 gUnknown_80F4DEC;
|
|||
extern s16 gUnknown_80F4E00;
|
||||
extern u8 *gUnknown_80FD128[];
|
||||
extern u8 *gUnknown_80FAD2C[];
|
||||
extern u8 gSecretPowerTable[];
|
||||
extern s16 gUnknown_80F4E06;
|
||||
extern u8 *gUnknown_80FC74C[];
|
||||
extern u8 *gUnknown_80FC790[];
|
||||
|
|
@ -716,14 +714,6 @@ bool8 WillOWispMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param
|
|||
return TRUE;
|
||||
}
|
||||
|
||||
struct TestStruct
|
||||
{
|
||||
s16 a;
|
||||
s16 b;
|
||||
};
|
||||
|
||||
extern const struct TestStruct gUnknown_80F55BC[];
|
||||
|
||||
bool8 ReturnMoveAction(Entity * pokemon,Entity * target,Move * move,s32 param_4)
|
||||
{
|
||||
s32 i;
|
||||
|
|
@ -731,9 +721,9 @@ bool8 ReturnMoveAction(Entity * pokemon,Entity * target,Move * move,s32 param_4)
|
|||
EntityInfo *entityInfo = GetEntInfo(pokemon);
|
||||
s32 dmg = 1;
|
||||
|
||||
for (i = 0; i < 999 && gUnknown_80F55BC[i].a >= 0; i++) {
|
||||
if (entityInfo->IQ < gUnknown_80F55BC[i].a) {
|
||||
dmg = gUnknown_80F55BC[i].b;
|
||||
for (i = 0; i < 999 && gReturnDmgData[i].minIq >= 0; i++) {
|
||||
if (entityInfo->IQ < gReturnDmgData[i].minIq) {
|
||||
dmg = gReturnDmgData[i].dmgVal;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -16,92 +16,11 @@
|
|||
#include "status.h"
|
||||
#include "status_actions.h"
|
||||
#include "status_checks_1.h"
|
||||
|
||||
#include "text_util.h"
|
||||
#include "tile_types.h"
|
||||
#include "trap.h"
|
||||
#include "weather.h"
|
||||
|
||||
// Array indices correspond to the current dungeon tileset.
|
||||
const u8 gDungeonCamouflageTypes[76] = {
|
||||
TYPE_WATER,
|
||||
TYPE_GRASS,
|
||||
TYPE_ROCK,
|
||||
TYPE_ROCK,
|
||||
TYPE_ROCK,
|
||||
TYPE_ROCK,
|
||||
TYPE_ROCK,
|
||||
TYPE_ROCK,
|
||||
TYPE_NORMAL,
|
||||
TYPE_ROCK,
|
||||
TYPE_GRASS,
|
||||
TYPE_GROUND,
|
||||
TYPE_NORMAL,
|
||||
TYPE_NORMAL,
|
||||
TYPE_GRASS,
|
||||
TYPE_ICE,
|
||||
TYPE_NORMAL,
|
||||
TYPE_ROCK,
|
||||
TYPE_ICE,
|
||||
TYPE_ICE,
|
||||
TYPE_GRASS,
|
||||
TYPE_GROUND,
|
||||
TYPE_ROCK,
|
||||
TYPE_NORMAL,
|
||||
TYPE_ICE,
|
||||
TYPE_GRASS,
|
||||
TYPE_GRASS,
|
||||
TYPE_NORMAL,
|
||||
TYPE_ROCK,
|
||||
TYPE_GRASS,
|
||||
TYPE_ROCK,
|
||||
TYPE_ROCK,
|
||||
TYPE_GRASS,
|
||||
TYPE_GRASS,
|
||||
TYPE_ROCK,
|
||||
TYPE_NORMAL,
|
||||
TYPE_ICE,
|
||||
TYPE_ROCK,
|
||||
TYPE_ROCK,
|
||||
TYPE_ROCK,
|
||||
TYPE_ROCK,
|
||||
TYPE_GRASS,
|
||||
TYPE_ROCK,
|
||||
TYPE_ROCK,
|
||||
TYPE_GROUND,
|
||||
TYPE_NORMAL,
|
||||
TYPE_ROCK,
|
||||
TYPE_ICE,
|
||||
TYPE_ROCK,
|
||||
TYPE_WATER,
|
||||
TYPE_GRASS,
|
||||
TYPE_GRASS,
|
||||
TYPE_GROUND,
|
||||
TYPE_WATER,
|
||||
TYPE_ROCK,
|
||||
TYPE_ROCK,
|
||||
TYPE_GRASS,
|
||||
TYPE_NORMAL,
|
||||
TYPE_NORMAL,
|
||||
TYPE_ROCK,
|
||||
TYPE_GRASS,
|
||||
TYPE_ROCK,
|
||||
TYPE_GRASS,
|
||||
TYPE_GRASS,
|
||||
TYPE_ROCK,
|
||||
TYPE_GRASS,
|
||||
TYPE_ROCK,
|
||||
TYPE_ROCK,
|
||||
TYPE_NORMAL,
|
||||
TYPE_NORMAL,
|
||||
TYPE_ROCK,
|
||||
TYPE_NORMAL,
|
||||
TYPE_ICE,
|
||||
TYPE_WATER,
|
||||
TYPE_WATER,
|
||||
TYPE_ROCK
|
||||
};
|
||||
|
||||
#include "dungeon_config.h"
|
||||
|
||||
bool8 CanUseOnSelfWithStatusChecker(Entity *pokemon, Move *move)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -34,7 +34,7 @@
|
|||
#include "structs/str_dungeon.h"
|
||||
#include "targeting.h"
|
||||
#include "tile_types.h"
|
||||
#include "dungeon_battle_data.h"
|
||||
#include "dungeon_config.h"
|
||||
|
||||
extern u8 *gUnknown_80FB380[];
|
||||
extern u8 *gUnknown_80FB384[];
|
||||
|
|
|
|||
|
|
@ -22,7 +22,7 @@
|
|||
#include "status_checks_1.h"
|
||||
#include "structs/map.h"
|
||||
#include "structs/str_dungeon.h"
|
||||
#include "dungeon_battle_data.h"
|
||||
#include "dungeon_config.h"
|
||||
|
||||
extern u8 *gUnknown_80FBD78[];
|
||||
extern u8 *gUnknown_80FBD9C[];
|
||||
|
|
|
|||
|
|
@ -32,8 +32,7 @@
|
|||
#include "tile_types.h"
|
||||
#include "trap.h"
|
||||
#include "weather.h"
|
||||
#include "called_move_data.h"
|
||||
#include "dungeon_battle_data.h"
|
||||
#include "dungeon_config.h"
|
||||
|
||||
extern void sub_807F43C(Entity *, Entity *);
|
||||
extern void HandleOneRoomOrb(Entity *, Entity *);
|
||||
|
|
@ -82,14 +81,9 @@ extern bool8 MoveRequiresCharging(Entity* pokemon,u16 moveID);
|
|||
extern void sub_80783C4(Entity *, Entity *, bool8);
|
||||
|
||||
|
||||
// NOTE: Override pokemon.c types for these two funcs
|
||||
// GetSize is ok
|
||||
extern u8 GetBodySize(s32 index);
|
||||
// TODO The parameters don't match the function definition in pokemon_mid.h (u8*, s16).
|
||||
extern void CopyCyanMonsterNametoBuffer(u8 *buffer, s32 index);
|
||||
extern u32 GetSize(s16 index);
|
||||
|
||||
extern s16 gUnknown_80F55EC[];
|
||||
extern s16 gUnknown_80F4DCE;
|
||||
extern u8 *gUnknown_80FDD00[];
|
||||
extern u8 *gUnknown_80FDCE4[];
|
||||
|
|
@ -129,7 +123,6 @@ extern u8 *gUnknown_80FC5A8[];
|
|||
extern u8 *gPtrForecastPreventsTypeSwitchMessage[];
|
||||
extern u8 *gUnknown_80FEB08[];
|
||||
extern s16 gUnknown_80F4E08;
|
||||
extern u8 gDungeonCamouflageTypes[76];
|
||||
extern u32 gMetronomeCalledArrayId;
|
||||
|
||||
extern s16 gUnknown_80F4DC6;
|
||||
|
|
@ -444,30 +437,20 @@ bool8 MimicMoveAction(Entity * pokemon, Entity * target, Move *move, s32 param_4
|
|||
|
||||
bool8 FrustrationMoveAction(Entity * pokemon, Entity * target, Move *move, s32 param_4)
|
||||
{
|
||||
s16 *r1;
|
||||
s32 index;
|
||||
s32 r5;
|
||||
s32 IQ;
|
||||
u8 local_24;
|
||||
EntityInfo *entityInfo;
|
||||
s32 i;
|
||||
bool8 local_24 = FALSE;
|
||||
EntityInfo *entityInfo = GetEntInfo(pokemon);
|
||||
s32 dmg = 1;
|
||||
|
||||
local_24 = 0;
|
||||
entityInfo = GetEntInfo(pokemon);
|
||||
r5 = 1;
|
||||
index = 0;
|
||||
if (0 <= gUnknown_80F55EC[0]) {
|
||||
IQ = entityInfo->IQ;
|
||||
for(r1 = &gUnknown_80F55EC[index]; (999 > index) && (*r1 >= 0); r1 = r1 + 2, index++)
|
||||
{
|
||||
if ((IQ < *r1)){
|
||||
r5 = r1[1];
|
||||
goto _0805B598;
|
||||
}
|
||||
}
|
||||
for (i = 0; i < 999 && gFrustrationDmgData[i].minIq >= 0; i++) {
|
||||
if (entityInfo->IQ < gFrustrationDmgData[i].minIq) {
|
||||
dmg = gFrustrationDmgData[i].dmgVal;
|
||||
break;
|
||||
}
|
||||
}
|
||||
_0805B598:
|
||||
sub_806F370(pokemon,target,r5,1,&local_24, GetMoveType(move),sub_8057600(move,param_4),0,1,0);
|
||||
local_24 = local_24 == 0;
|
||||
|
||||
sub_806F370(pokemon,target,dmg,1,&local_24,GetMoveType(move),sub_8057600(move,param_4),0,1,0);
|
||||
local_24 = (local_24 == 0);
|
||||
return local_24;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -24,7 +24,7 @@
|
|||
#include "structs/map.h"
|
||||
#include "structs/str_dungeon.h"
|
||||
#include "structs/str_806B7F8.h"
|
||||
#include "dungeon_battle_data.h"
|
||||
#include "dungeon_config.h"
|
||||
|
||||
extern u8 *gTrapNames[];
|
||||
extern u8 *gUnknown_80FC5FC[];
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@
|
|||
#include "dungeon_util.h"
|
||||
#include "math.h"
|
||||
#include "status.h"
|
||||
#include "dungeon_battle_data.h"
|
||||
#include "dungeon_config.h"
|
||||
#include "weather.h"
|
||||
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user