summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rw-r--r--include/battle.h9
-rw-r--r--include/battle_controllers.h10
-rw-r--r--include/battle_tower.h4
-rw-r--r--include/berry.h33
-rw-r--r--include/constants/berry.h28
-rw-r--r--include/constants/global.h1
-rw-r--r--include/contest.h2
-rw-r--r--include/data.h4
-rwxr-xr-xinclude/ereader_helpers.h49
-rw-r--r--include/global.h10
-rw-r--r--include/global.tv.h2
-rw-r--r--include/graphics.h171
-rw-r--r--include/mon_markings.h6
-rw-r--r--include/pokemon.h8
-rw-r--r--include/script_movement.h6
-rw-r--r--include/strings.h90
-rw-r--r--include/task.h3
-rw-r--r--include/trainer_hill.h46
18 files changed, 257 insertions, 225 deletions
diff --git a/include/battle.h b/include/battle.h
index 0f4087c90..32eabc6de 100644
--- a/include/battle.h
+++ b/include/battle.h
@@ -37,7 +37,6 @@
#define B_ACTION_NONE 0xFF
#define MAX_TRAINER_ITEMS 4
-#define MAX_MON_MOVES 4
// array entries for battle communication
#define MULTIUSE_STATE 0x0
@@ -180,19 +179,19 @@ struct AI_ThinkingStruct
u8 aiState;
u8 movesetIndex;
u16 moveConsidered;
- s8 score[4];
+ s8 score[MAX_MON_MOVES];
u32 funcResult;
u32 aiFlags;
u8 aiAction;
u8 aiLogicId;
u8 filler12[6];
- u8 simulatedRNG[4];
+ u8 simulatedRNG[MAX_MON_MOVES];
};
struct UsedMoves
{
- u16 moves[MAX_BATTLERS_COUNT];
- u16 unknown[MAX_BATTLERS_COUNT];
+ u16 moves[MAX_MON_MOVES];
+ u16 unknown[MAX_MON_MOVES];
};
struct BattleHistory
diff --git a/include/battle_controllers.h b/include/battle_controllers.h
index 9449f1986..365229fda 100644
--- a/include/battle_controllers.h
+++ b/include/battle_controllers.h
@@ -97,16 +97,16 @@ struct HpAndStatus
struct MovePpInfo
{
- u16 moves[4];
- u8 pp[4];
+ u16 moves[MAX_MON_MOVES];
+ u8 pp[MAX_MON_MOVES];
u8 ppBonuses;
};
struct ChooseMoveStruct
{
- u16 moves[4];
- u8 currentPp[4];
- u8 maxPp[4];
+ u16 moves[MAX_MON_MOVES];
+ u8 currentPp[MAX_MON_MOVES];
+ u8 maxPp[MAX_MON_MOVES];
u16 species;
u8 monType1;
u8 monType2;
diff --git a/include/battle_tower.h b/include/battle_tower.h
index 12d6d2e9e..8bc6e6554 100644
--- a/include/battle_tower.h
+++ b/include/battle_tower.h
@@ -7,7 +7,7 @@ struct RSBattleTowerRecord
/*0x01*/ u8 facilityClass;
/*0x02*/ u16 winStreak;
/*0x04*/ u8 name[PLAYER_NAME_LENGTH + 1];
- /*0x0C*/ u8 trainerId[4];
+ /*0x0C*/ u8 trainerId[TRAINER_ID_LENGTH];
/*0x10*/ u16 greeting[6];
/*0x1C*/ struct BattleTowerPokemon party[3];
/*0xA0*/ u32 checksum;
@@ -27,7 +27,7 @@ struct BattleFrontierTrainer
struct FacilityMon
{
u16 species;
- u16 moves[4];
+ u16 moves[MAX_MON_MOVES];
u8 itemTableId;
u8 evSpread;
u8 nature;
diff --git a/include/berry.h b/include/berry.h
index 9ff18e198..ebe1e9a38 100644
--- a/include/berry.h
+++ b/include/berry.h
@@ -1,39 +1,6 @@
#ifndef GUARD_BERRY_H
#define GUARD_BERRY_H
-#define BERRY_NONE 0
-
-enum
-{
- BERRY_FIRMNESS_UNKNOWN,
- BERRY_FIRMNESS_VERY_SOFT,
- BERRY_FIRMNESS_SOFT,
- BERRY_FIRMNESS_HARD,
- BERRY_FIRMNESS_VERY_HARD,
- BERRY_FIRMNESS_SUPER_HARD,
-};
-
-enum
-{
- FLAVOR_SPICY,
- FLAVOR_DRY,
- FLAVOR_SWEET,
- FLAVOR_BITTER,
- FLAVOR_SOUR,
- FLAVOR_COUNT
-};
-
-enum
-{
- BERRY_STAGE_NO_BERRY, // there is no tree planted and the soil is completely flat.
- BERRY_STAGE_PLANTED,
- BERRY_STAGE_SPROUTED,
- BERRY_STAGE_TALLER,
- BERRY_STAGE_FLOWERING,
- BERRY_STAGE_BERRIES,
- BERRY_STAGE_SPARKLING = 0xFF,
-};
-
void ClearEnigmaBerries(void);
void SetEnigmaBerry(u8 *src);
bool32 IsEnigmaBerryValid(void);
diff --git a/include/constants/berry.h b/include/constants/berry.h
new file mode 100644
index 000000000..d413b9947
--- /dev/null
+++ b/include/constants/berry.h
@@ -0,0 +1,28 @@
+#ifndef GUARD_CONSTANTS_BERRY_H
+#define GUARD_CONSTANTS_BERRY_H
+
+#define BERRY_NONE 0
+
+#define BERRY_FIRMNESS_UNKNOWN 0
+#define BERRY_FIRMNESS_VERY_SOFT 1
+#define BERRY_FIRMNESS_SOFT 2
+#define BERRY_FIRMNESS_HARD 3
+#define BERRY_FIRMNESS_VERY_HARD 4
+#define BERRY_FIRMNESS_SUPER_HARD 5
+
+#define FLAVOR_SPICY 0
+#define FLAVOR_DRY 1
+#define FLAVOR_SWEET 2
+#define FLAVOR_BITTER 3
+#define FLAVOR_SOUR 4
+#define FLAVOR_COUNT 5
+
+#define BERRY_STAGE_NO_BERRY 0 // there is no tree planted and the soil is completely flat.
+#define BERRY_STAGE_PLANTED 1
+#define BERRY_STAGE_SPROUTED 2
+#define BERRY_STAGE_TALLER 3
+#define BERRY_STAGE_FLOWERING 4
+#define BERRY_STAGE_BERRIES 5
+#define BERRY_STAGE_SPARKLING 255
+
+#endif // GUARD_CONSTANTS_BERRY_H
diff --git a/include/constants/global.h b/include/constants/global.h
index 0507f22cc..31b89c709 100644
--- a/include/constants/global.h
+++ b/include/constants/global.h
@@ -54,6 +54,7 @@
#define TRAINER_ID_LENGTH 4
#define PARTY_SIZE 6
+#define MAX_MON_MOVES 4
// string lengths
#define ITEM_NAME_LENGTH 14
diff --git a/include/contest.h b/include/contest.h
index 8ef208aea..2b1b95af5 100644
--- a/include/contest.h
+++ b/include/contest.h
@@ -227,7 +227,7 @@ struct ContestPokemon
u8 aiPool_Cute:1; // 0x10
u8 aiPool_Smart:1; // 0x20
u8 aiPool_Tough:1; // 0x40
- /*0x1E*/ u16 moves[4]; // moves
+ /*0x1E*/ u16 moves[MAX_MON_MOVES]; // moves
/*0x26*/ u8 cool; // cool
/*0x27*/ u8 beauty; // beauty
/*0x28*/ u8 cute; // cute
diff --git a/include/data.h b/include/data.h
index f1a4caa6a..49b98663a 100644
--- a/include/data.h
+++ b/include/data.h
@@ -34,7 +34,7 @@ struct TrainerMonNoItemCustomMoves
u16 iv;
u8 lvl;
u16 species;
- u16 moves[4];
+ u16 moves[MAX_MON_MOVES];
};
struct TrainerMonItemCustomMoves
@@ -43,7 +43,7 @@ struct TrainerMonItemCustomMoves
u8 lvl;
u16 species;
u16 heldItem;
- u16 moves[4];
+ u16 moves[MAX_MON_MOVES];
};
union TrainerMonPtr
diff --git a/include/ereader_helpers.h b/include/ereader_helpers.h
index bcbb68d4f..8dc3b907a 100755
--- a/include/ereader_helpers.h
+++ b/include/ereader_helpers.h
@@ -1,51 +1,34 @@
#ifndef GUARD_EREADER_HELPERS_H
#define GUARD_EREADER_HELPERS_H
-struct Unk81D38FC
+#include "trainer_hill.h"
+
+struct EReaderTrainerHillTrainer
{
u8 unk0;
- u8 filler_1[3];
- u8 unk4[0x148];
- u8 unk14C[0x124];
- int checksum;
-};
+ struct TrainerHillTrainer unk4;
+ struct TrHillDisplay unk14C;
+ u32 checksum;
+}; // size=0x274
struct EReaderTrainerHillSet
{
- u8 unk_0;
- u8 unk_1;
- u8 unk_2;
- u8 unk_3;
- int checksum;
- struct Unk81D38FC unk_8[6];
+ u8 count;
+ u8 id;
+ u16 dummy;
+ u32 checksum;
+ struct EReaderTrainerHillTrainer unk_8[6];
u8 unk_ec0[40];
-};
-
-struct Unk81D3998Sub
-{
- u8 unk_000[4];
- u8 unk_004[0x148];
- u8 unk_14C[0x148];
- u8 unk_294[0x124];
-};
-
-struct Unk81D3998
-{
- u8 unk_000;
- u8 unk_001;
- u8 unk_002;
- int checksum;
- struct Unk81D3998Sub unk_008[4];
-};
+}; // size = 0xf00
bool8 EReader_IsReceivedDataValid(struct EReaderTrainerHillSet *buffer);
bool32 TryWriteTrainerHill(struct EReaderTrainerHillSet *arg0);
bool32 ReadTrainerHillAndValidate(void);
-int sub_81D3D70(u8, u32, u32*, u32*);
+int EReaderHandleTransfer(u8, u32, u32*, u32*);
void sub_81D3F9C(void);
void sub_81D3FAC(void);
-void sub_81D41A0(void);
-void sub_81D41F4(void);
+void EReaderHelper_SaveRegsState(void);
+void EReaderHelper_RestoreRegsState(void);
void sub_81D4238(void);
#endif // GUARD_EREADER_HELPERS_H
diff --git a/include/global.h b/include/global.h
index d6d18a3ab..82c53c009 100644
--- a/include/global.h
+++ b/include/global.h
@@ -210,7 +210,7 @@ struct BerryCrush
struct ApprenticeMon
{
u16 species;
- u16 moves[4];
+ u16 moves[MAX_MON_MOVES];
u16 item;
};
@@ -232,7 +232,7 @@ struct BattleTowerPokemon
{
u16 species;
u16 heldItem;
- u16 moves[4];
+ u16 moves[MAX_MON_MOVES];
u8 level;
u8 ppBonuses;
u8 hpEV;
@@ -255,6 +255,8 @@ struct BattleTowerPokemon
u8 friendship;
};
+#define NULL_BATTLE_TOWER_POKEMON { .nickname = __("$$$$$$$$$$$") }
+
struct EmeraldBattleTowerRecord
{
/*0x00*/ u8 lvlMode; // 0 = level 50, 1 = level 100
@@ -286,7 +288,7 @@ struct BattleTowerEReaderTrainer
struct FrontierMonData
{
- u16 moves[4];
+ u16 moves[MAX_MON_MOVES];
u8 evs[6];
u8 nature;
};
@@ -942,7 +944,7 @@ struct SaveBlock1
/*0x2B94*/ u8 outbreakPokemonLevel;
/*0x2B95*/ u8 outbreakUnk1;
/*0x2B96*/ u16 outbreakUnk2;
- /*0x2B98*/ u16 outbreakPokemonMoves[4];
+ /*0x2B98*/ u16 outbreakPokemonMoves[MAX_MON_MOVES];
/*0x2BA0*/ u8 outbreakUnk4;
/*0x2BA1*/ u8 outbreakPokemonProbability;
/*0x2BA2*/ u16 outbreakDaysLeft;
diff --git a/include/global.tv.h b/include/global.tv.h
index aa151a75c..abb01d471 100644
--- a/include/global.tv.h
+++ b/include/global.tv.h
@@ -482,7 +482,7 @@ typedef union // size = 0x24
/*0x01*/ bool8 active;
/*0x02*/ u8 var02;
/*0x03*/ u8 var03;
- /*0x04*/ u16 moves[4];
+ /*0x04*/ u16 moves[MAX_MON_MOVES];
/*0x0C*/ u16 species;
/*0x0E*/ u16 var0E;
/*0x10*/ u8 locationMapNum;
diff --git a/include/graphics.h b/include/graphics.h
index d1d99cc8f..5f5c579d2 100644
--- a/include/graphics.h
+++ b/include/graphics.h
@@ -3093,90 +3093,93 @@ extern const u32 gPokeblock_Gfx[];
extern const u32 gItemIcon_QuestionMark[];
extern const u32 gItemIconPalette_QuestionMark[];
-extern const u32 gUnknown_08DB7AA0[];
-extern const u32 gUnknown_08DB7B34[];
-extern const u32 gUnknown_08DB7B5C[];
-extern const u32 gUnknown_08DB7BEC[];
-extern const u32 gUnknown_08DB7C08[];
-extern const u32 gUnknown_08DB7CE8[];
-extern const u32 gUnknown_08DB7D08[];
-extern const u32 gUnknown_08DB7DCC[];
-extern const u32 gUnknown_08DB7DF4[];
-extern const u32 gUnknown_08DB7EA0[];
-extern const u32 gUnknown_08DB7EC4[];
-extern const u32 gUnknown_08DB7F60[];
-extern const u32 gUnknown_08DB7F7C[];
-extern const u32 gUnknown_08DB8070[];
-extern const u32 gUnknown_08DB808C[];
-extern const u32 gUnknown_08DB8138[];
-extern const u32 gUnknown_08DB8160[];
-extern const u32 gUnknown_08DB8218[];
-extern const u32 gUnknown_08DB823C[];
-extern const u32 gUnknown_08DB8300[];
-extern const u32 gUnknown_08DB8328[];
-extern const u32 gUnknown_08DB8430[];
-extern const u32 gUnknown_08DB8458[];
-extern const u32 gUnknown_08DB8528[];
-extern const u32 gUnknown_08DB854C[];
-extern const u32 gUnknown_08DB862C[];
-extern const u32 gUnknown_08DB8654[];
-extern const u32 gUnknown_08DB86C4[];
-extern const u32 gUnknown_08DB86E0[];
-extern const u32 gUnknown_08DB8750[];
-extern const u32 gUnknown_08DB876C[];
-extern const u32 gUnknown_08DB87DC[];
-extern const u32 gUnknown_08DB87F8[];
-extern const u32 gUnknown_08DB88D8[];
-extern const u32 gUnknown_08DB8900[];
-extern const u32 gUnknown_08DB89E0[];
-extern const u32 gUnknown_08DB8A08[];
-extern const u32 gUnknown_08DB8A68[];
-extern const u32 gUnknown_08DB8A84[];
-extern const u32 gUnknown_08DB8B40[];
-extern const u32 gUnknown_08DB8B68[];
-extern const u32 gUnknown_08DB8C40[];
-extern const u32 gUnknown_08DB8C5C[];
-extern const u32 gUnknown_08DB8CF4[];
-extern const u32 gUnknown_08DB8D18[];
-extern const u32 gUnknown_08DB8DB0[];
-extern const u32 gUnknown_08DB8DD4[];
-extern const u32 gUnknown_08DB8E80[];
-extern const u32 gUnknown_08DB8EA0[];
-extern const u32 gUnknown_08DB8F58[];
-extern const u32 gUnknown_08DB8F7C[];
-extern const u32 gUnknown_08DB9038[];
-extern const u32 gUnknown_08DB9058[];
-extern const u32 gUnknown_08DB9130[];
-extern const u32 gUnknown_08DB9154[];
-extern const u32 gUnknown_08DB9218[];
-extern const u32 gUnknown_08DB9234[];
-extern const u32 gUnknown_08DB92FC[];
-extern const u32 gUnknown_08DB931C[];
-extern const u32 gUnknown_08DB93E8[];
-extern const u32 gUnknown_08DB940C[];
-extern const u32 gUnknown_08DB94CC[];
-extern const u32 gUnknown_08DB94E8[];
-extern const u32 gUnknown_08DB95AC[];
-extern const u32 gUnknown_08DB95D0[];
-extern const u32 gUnknown_08DB96C4[];
-extern const u32 gUnknown_08DB96EC[];
-extern const u32 gUnknown_08DB97F4[];
-extern const u32 gUnknown_08DB981C[];
-extern const u32 gUnknown_08DB9908[];
-extern const u32 gUnknown_08DB9930[];
-extern const u32 gUnknown_08DB9A54[];
-extern const u32 gUnknown_08DB9A7C[];
-extern const u32 gUnknown_08DB9B7C[];
-extern const u32 gUnknown_08DB9BA4[];
-extern const u32 gUnknown_08DB9CB0[];
-extern const u32 gUnknown_08DB9CD8[];
-extern const u32 gUnknown_08DB9DAC[];
-extern const u32 gUnknown_08DB9DD4[];
-extern const u32 gUnknown_08DB9EE4[];
-extern const u32 gUnknown_08DB9F08[];
-extern const u32 gUnknown_08DB9FFC[];
-extern const u32 gUnknown_08DBA020[];
-extern const u32 gUnknown_08DBA12C[];
+
+// Decorations
+extern const u32 gDecorIcon_HeavyDesk[];
+extern const u32 gDecorIconPalette_HeavyDesk[];
+extern const u32 gDecorIcon_RaggedDesk[];
+extern const u32 gDecorIconPalette_RaggedDesk[];
+extern const u32 gDecorIcon_ComfortDesk[];
+extern const u32 gDecorIconPalette_ComfortDesk[];
+extern const u32 gDecorIcon_PrettyDesk[];
+extern const u32 gDecorIconPalette_PrettyDesk[];
+extern const u32 gDecorIcon_BrickDesk[];
+extern const u32 gDecorIconPalette_BrickDesk[];
+extern const u32 gDecorIcon_CampDesk[];
+extern const u32 gDecorIconPalette_CampDesk[];
+extern const u32 gDecorIcon_HardDesk[];
+extern const u32 gDecorIconPalette_HardDesk[];
+extern const u32 gDecorIcon_RedPlant[];
+extern const u32 gDecorIconPalette_RedPlant[];
+extern const u32 gDecorIcon_TropicalPlant[];
+extern const u32 gDecorIconPalette_TropicalPlant[];
+extern const u32 gDecorIcon_PrettyFlowers[];
+extern const u32 gDecorIconPalette_PrettyFlowers[];
+extern const u32 gDecorIcon_ColorfulPlant[];
+extern const u32 gDecorIconPalette_ColorfulPlant[];
+extern const u32 gDecorIcon_BigPlant[];
+extern const u32 gDecorIconPalette_BigPlant[];
+extern const u32 gDecorIcon_GorgeousPlant[];
+extern const u32 gDecorIconPalette_GorgeousPlant[];
+extern const u32 gDecorIcon_RedBrick[];
+extern const u32 gDecorIconPalette_RedBrick[];
+extern const u32 gDecorIcon_YellowBrick[];
+extern const u32 gDecorIconPalette_YellowBrick[];
+extern const u32 gDecorIcon_BlueBrick[];
+extern const u32 gDecorIconPalette_BlueBrick[];
+extern const u32 gDecorIcon_RedTent[];
+extern const u32 gDecorIconPalette_RedTent[];
+extern const u32 gDecorIcon_BlueTent[];
+extern const u32 gDecorIconPalette_BlueTent[];
+extern const u32 gDecorIcon_SolidBoard[];
+extern const u32 gDecorIconPalette_SolidBoard[];
+extern const u32 gDecorIcon_Slide[];
+extern const u32 gDecorIconPalette_Slide[];
+extern const u32 gDecorIcon_Tire[];
+extern const u32 gDecorIconPalette_Tire[];
+extern const u32 gDecorIcon_Stand[];
+extern const u32 gDecorIconPalette_Stand[];
+extern const u32 gDecorIcon_BreakableDoor[];
+extern const u32 gDecorIconPalette_BreakableDoor[];
+extern const u32 gDecorIcon_SandOrnament[];
+extern const u32 gDecorIconPalette_SandOrnament[];
+extern const u32 gDecorIcon_GlassOrnament[];
+extern const u32 gDecorIconPalette_GlassOrnament[];
+extern const u32 gDecorIcon_SurfMat[];
+extern const u32 gDecorIconPalette_SurfMat[];
+extern const u32 gDecorIcon_ThunderMat[];
+extern const u32 gDecorIconPalette_ThunderMat[];
+extern const u32 gDecorIcon_FireBlastMat[];
+extern const u32 gDecorIconPalette_FireBlastMat[];
+extern const u32 gDecorIcon_PowderSnowMat[];
+extern const u32 gDecorIconPalette_PowderSnowMat[];
+extern const u32 gDecorIcon_AttractMat[];
+extern const u32 gDecorIconPalette_AttractMat[];
+extern const u32 gDecorIcon_FissureMat[];
+extern const u32 gDecorIconPalette_FissureMat[];
+extern const u32 gDecorIcon_SpikesMat[];
+extern const u32 gDecorIconPalette_SpikesMat[];
+extern const u32 gDecorIcon_SnorlaxDoll[];
+extern const u32 gDecorIconPalette_SnorlaxDoll[];
+extern const u32 gDecorIcon_RhydonDoll[];
+extern const u32 gDecorIconPalette_RhydonDoll[];
+extern const u32 gDecorIcon_LaprasDoll[];
+extern const u32 gDecorIconPalette_LaprasDoll[];
+extern const u32 gDecorIcon_VenusaurDoll[];
+extern const u32 gDecorIconPalette_VenusaurDoll[];
+extern const u32 gDecorIcon_CharizardDoll[];
+extern const u32 gDecorIconPalette_CharizardDoll[];
+extern const u32 gDecorIcon_BlastoiseDoll[];
+extern const u32 gDecorIconPalette_BlastoiseDoll[];
+extern const u32 gDecorIcon_WailmerDoll[];
+extern const u32 gDecorIconPalette_WailmerDoll[];
+extern const u32 gDecorIcon_RegirockDoll[];
+extern const u32 gDecorIconPalette_RegirockDoll[];
+extern const u32 gDecorIcon_RegiceDoll[];
+extern const u32 gDecorIconPalette_RegiceDoll[];
+extern const u32 gDecorIcon_RegisteelDoll[];
+extern const u32 gDecorIconPalette_RegisteelDoll[];
+
extern const u32 gWallclock_Gfx[];
extern const u16 gWallclockMale_Pal[];
extern const u16 gWallclockFemale_Pal[];
diff --git a/include/mon_markings.h b/include/mon_markings.h
index 8e4ec58bd..241b31e01 100644
--- a/include/mon_markings.h
+++ b/include/mon_markings.h
@@ -1,17 +1,19 @@
#ifndef POKEEMERALD_MON_MARKINGS_H
#define POKEEMERALD_MON_MARKINGS_H
+#define NUM_MON_MARKINGS 4
+
struct PokemonMarkMenu
{
/*0x0000*/ u16 baseTileTag;
/*0x0002*/ u16 basePaletteTag;
/*0x0004*/ u8 markings; // bit flags
/*0x0005*/ s8 cursorPos;
- /*0x0006*/ bool8 markingsArray[4];
+ /*0x0006*/ bool8 markingsArray[NUM_MON_MARKINGS];
/*0x000A*/ u8 cursorBaseY;
/*0x000B*/ bool8 spriteSheetLoadRequired;
/*0x000C*/ struct Sprite *menuWindowSprites[2]; // upper and lower halves of menu window
- /*0x0014*/ struct Sprite *menuMarkingSprites[4];
+ /*0x0014*/ struct Sprite *menuMarkingSprites[NUM_MON_MARKINGS];
/*0x0024*/ struct Sprite *unkSprite;
/*0x0028*/ struct Sprite *menuTextSprite;
/*0x002C*/ const u8 *frameTiles;
diff --git a/include/pokemon.h b/include/pokemon.h
index ec125573c..2931f4428 100644
--- a/include/pokemon.h
+++ b/include/pokemon.h
@@ -145,8 +145,8 @@ struct PokemonSubstruct0
struct PokemonSubstruct1
{
- u16 moves[4];
- u8 pp[4];
+ u16 moves[MAX_MON_MOVES];
+ u8 pp[MAX_MON_MOVES];
};
struct PokemonSubstruct2
@@ -273,7 +273,7 @@ struct BattlePokemon
/*0x06*/ u16 speed;
/*0x08*/ u16 spAttack;
/*0x0A*/ u16 spDefense;
- /*0x0C*/ u16 moves[4];
+ /*0x0C*/ u16 moves[MAX_MON_MOVES];
/*0x14*/ u32 hpIV:5;
/*0x14*/ u32 attackIV:5;
/*0x15*/ u32 defenseIV:5;
@@ -287,7 +287,7 @@ struct BattlePokemon
/*0x21*/ u8 type1;
/*0x22*/ u8 type2;
/*0x23*/ u8 unknown;
- /*0x24*/ u8 pp[4];
+ /*0x24*/ u8 pp[MAX_MON_MOVES];
/*0x28*/ u16 hp;
/*0x2A*/ u8 level;
/*0x2B*/ u8 friendship;
diff --git a/include/script_movement.h b/include/script_movement.h
index 4c3fa6002..f9a97cf46 100644
--- a/include/script_movement.h
+++ b/include/script_movement.h
@@ -1,8 +1,8 @@
#ifndef GUARD_SCRIPT_MOVEMENT_H
#define GUARD_SCRIPT_MOVEMENT_H
-bool8 ScriptMovement_StartObjectMovementScript(u8, u8, u8, const u8 *);
-bool8 ScriptMovement_IsObjectMovementFinished(u8, u8, u8);
-void sub_80D338C(void);
+bool8 ScriptMovement_StartObjectMovementScript(u8 localId, u8 mapNum, u8 mapGroup, const u8 *movementScript);
+bool8 ScriptMovement_IsObjectMovementFinished(u8 localId, u8 mapNum, u8 mapGroup);
+void ScriptMovement_UnfreezeEventObjects(void);
#endif // GUARD_SCRIPT_MOVEMENT_H
diff --git a/include/strings.h b/include/strings.h
index 78ae2c140..e31a97761 100644
--- a/include/strings.h
+++ b/include/strings.h
@@ -1054,51 +1054,51 @@ extern const u8 gText_Yes[];
extern const u8 gText_No[];
extern const u8 gUnknown_085EAEA2[];
extern const u8 gUnknown_085EAEAC[];
-extern const u8 gUnknown_0827ECBC[];
-extern const u8 gUnknown_0827ECC3[];
-extern const u8 gUnknown_0827ECCD[];
-extern const u8 gUnknown_0827ECD5[];
-extern const u8 gUnknown_0827ECDD[];
-extern const u8 gUnknown_0827ECE3[];
-extern const u8 gUnknown_0827ECEB[];
-extern const u8 gUnknown_0827ECF2[];
-extern const u8 gUnknown_0827ECF8[];
-extern const u8 gUnknown_0827ED00[];
-extern const u8 gUnknown_0827ED06[];
-extern const u8 gUnknown_0827ED10[];
-extern const u8 gUnknown_0827ED18[];
-extern const u8 gUnknown_0827ED22[];
-extern const u8 gUnknown_0827ED2C[];
-extern const u8 gUnknown_0827ED36[];
-extern const u8 gUnknown_0827ED40[];
-extern const u8 gUnknown_0827ED46[];
-extern const u8 gUnknown_0827ED4F[];
-extern const u8 gUnknown_0827ED59[];
-extern const u8 gUnknown_0827ED65[];
-extern const u8 gUnknown_0827ED70[];
-extern const u8 gUnknown_0827ED74[];
-extern const u8 gUnknown_0827ED78[];
-extern const u8 gUnknown_0827ED80[];
-extern const u8 gUnknown_0827ED95[];
-extern const u8 gUnknown_0827EDAA[];
-extern const u8 gUnknown_0827EDB5[];
-extern const u8 gUnknown_0827EDBA[];
-extern const u8 gUnknown_0827EDC1[];
-extern const u8 gUnknown_0827EDC9[];
-extern const u8 gUnknown_0827EDD5[];
-extern const u8 gUnknown_0827EDE4[];
-extern const u8 gUnknown_0827EDF0[];
-extern const u8 gUnknown_0827EDF5[];
-extern const u8 gUnknown_0827EDF7[];
-extern const u8 gUnknown_0827EDF9[];
-extern const u8 gUnknown_0827EDFB[];
-extern const u8 gUnknown_0827EDFD[];
-extern const u8 gUnknown_0827EDFF[];
-extern const u8 gUnknown_0827EE01[];
-extern const u8 gUnknown_0827EE03[];
-extern const u8 gUnknown_0827EE05[];
-extern const u8 gUnknown_0827EE07[];
-extern const u8 gUnknown_0827EE09[];
+extern const u8 gTrickHouse_Mechadoll_Oddish[];
+extern const u8 gTrickHouse_Mechadoll_Poochyena[];
+extern const u8 gTrickHouse_Mechadoll_Taillow[];
+extern const u8 gTrickHouse_Mechadoll_Azurill[];
+extern const u8 gTrickHouse_Mechadoll_Lotad[];
+extern const u8 gTrickHouse_Mechadoll_Wingull[];
+extern const u8 gTrickHouse_Mechadoll_Dustox[];
+extern const u8 gTrickHouse_Mechadoll_Zubat[];
+extern const u8 gTrickHouse_Mechadoll_Nincada[];
+extern const u8 gTrickHouse_Mechadoll_Ralts[];
+extern const u8 gTrickHouse_Mechadoll_Zigzagoon[];
+extern const u8 gTrickHouse_Mechadoll_Slakoth[];
+extern const u8 gTrickHouse_Mechadoll_Poochyena2[];
+extern const u8 gTrickHouse_Mechadoll_Shroomish[];
+extern const u8 gTrickHouse_Mechadoll_Zigzagoon2[];
+extern const u8 gTrickHouse_Mechadoll_Poochyena3[];
+extern const u8 gTrickHouse_Mechadoll_Zubat2[];
+extern const u8 gTrickHouse_Mechadoll_Carvanha[];
+extern const u8 gTrickHouse_Mechadoll_BurnHeal[];
+extern const u8 gTrickHouse_Mechadoll_HarborMail[];
+extern const u8 gTrickHouse_Mechadoll_SamePrice[];
+extern const u8 gTrickHouse_Mechadoll_60Yen[];
+extern const u8 gTrickHouse_Mechadoll_55Yen[];
+extern const u8 gTrickHouse_Mechadoll_Nothing[];
+extern const u8 gTrickHouse_Mechadoll_CostMore[];
+extern const u8 gTrickHouse_Mechadoll_CostLess[];
+extern const u8 gTrickHouse_Mechadoll_SamePrice2[];
+extern const u8 gTrickHouse_Mechadoll_Male[];
+extern const u8 gTrickHouse_Mechadoll_Female[];
+extern const u8 gTrickHouse_Mechadoll_Neither[];
+extern const u8 gTrickHouse_Mechadoll_ElderlyMen[];
+extern const u8 gTrickHouse_Mechadoll_ElderlyLadies[];
+extern const u8 gTrickHouse_Mechadoll_SameNumber[];
+extern const u8 gTrickHouse_Mechadoll_None[];
+extern const u8 gTrickHouse_Mechadoll_One[];
+extern const u8 gTrickHouse_Mechadoll_Two[];
+extern const u8 gTrickHouse_Mechadoll_Two2[];
+extern const u8 gTrickHouse_Mechadoll_Three[];
+extern const u8 gTrickHouse_Mechadoll_Four[];
+extern const u8 gTrickHouse_Mechadoll_Six[];
+extern const u8 gTrickHouse_Mechadoll_Seven[];
+extern const u8 gTrickHouse_Mechadoll_Eight[];
+extern const u8 gTrickHouse_Mechadoll_Six2[];
+extern const u8 gTrickHouse_Mechadoll_Seven2[];
+extern const u8 gTrickHouse_Mechadoll_Eight2[];
// Pokedex strings
extern const u8 gUnknown_085E87A5[];
diff --git a/include/task.h b/include/task.h
index 4852571b4..d0ca34f7f 100644
--- a/include/task.h
+++ b/include/task.h
@@ -5,6 +5,7 @@
#define TAIL_SENTINEL 0xFF
#define NUM_TASKS 16
+#define NUM_TASK_DATA 16
typedef void (*TaskFunc)(u8 taskId);
@@ -15,7 +16,7 @@ struct Task
u8 prev;
u8 next;
u8 priority;
- s16 data[16];
+ s16 data[NUM_TASK_DATA];
};
extern struct Task gTasks[];
diff --git a/include/trainer_hill.h b/include/trainer_hill.h
index e605ac654..31480287a 100644
--- a/include/trainer_hill.h
+++ b/include/trainer_hill.h
@@ -1,6 +1,52 @@
#ifndef GUARD_TRAINER_HILL_H
#define GUARD_TRAINER_HILL_H
+#define HILL_TRAINER_NAME_LENGTH 11
+
+struct TrainerHillTrainer
+{
+ u8 name[HILL_TRAINER_NAME_LENGTH];
+ u8 facilityClass;
+ u32 unused;
+ u16 speechBefore[6];
+ u16 speechWin[6];
+ u16 speechLose[6];
+ u16 speechAfter[6];
+ struct BattleTowerPokemon mons[PARTY_SIZE];
+};
+
+struct TrHillRoomTrainers
+{
+ u8 name[2][HILL_TRAINER_NAME_LENGTH];
+ u8 facilityClass[2];
+};
+
+struct TrHillDisplay
+{
+ u8 data[0x100];
+ u16 unk3A0[16];
+ u8 coords[2]; // x first 4 bits, y last 4 bits
+ u8 direction; // array of 4 bits for each trainer
+ u8 range; // array of 4 bits for each trainer
+};
+
+struct TrHillFloor
+{
+ u8 unk0;
+ u8 unk1;
+ struct TrainerHillTrainer trainers[2];
+ struct TrHillDisplay display;
+};
+
+struct TrHillTag
+{
+ u8 unkField_0;
+ u8 unused1;
+ u8 numFloors;
+ u32 checksum;
+ struct TrHillFloor floors[0];
+};
+
extern u32 *gTrainerHillVBlankCounter;
void CallTrainerHillFunction(void);