From 63dd0ea397ff01787753f182541ed8324f2d498b Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Wed, 6 Sep 2017 08:35:16 -0400 Subject: Spawn source files for Field Map Obj --- include/field_map_obj.h | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 include/field_map_obj.h (limited to 'include') diff --git a/include/field_map_obj.h b/include/field_map_obj.h new file mode 100644 index 000000000..ebc445794 --- /dev/null +++ b/include/field_map_obj.h @@ -0,0 +1,10 @@ +#ifndef POKEEMERALD_FIELD_MAP_OBJ_H +#define POKEEMERALD_FIELD_MAP_OBJ_H + +// Exported struct declarations + +// Exported RAM declarations + +// Exported ROM declarations + +#endif //POKEEMERALD_FIELD_MAP_OBJ_H -- cgit v1.2.3 From 83dbdc031856410b8b1b9154900cfcb5c069ec46 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Wed, 6 Sep 2017 08:46:47 -0400 Subject: npc_clear_ids_and_state --- include/global.h | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'include') diff --git a/include/global.h b/include/global.h index c43b57e03..f9c5f68be 100644 --- a/include/global.h +++ b/include/global.h @@ -9,6 +9,11 @@ // to help in decompiling #define asm_comment(x) asm volatile("@ -- " x " -- ") +#ifdef __APPLE__ +void memset(void *, int, size_t); +void memcpy(void *, const void *, size_t); +#endif // __APPLE__ + #define ARRAY_COUNT(array) (sizeof(array) / sizeof((array)[0])) #define POKEMON_NAME_LENGTH 10 -- cgit v1.2.3 From f677873d07dddd9eb43f1a9070bf9b2ac5f61749 Mon Sep 17 00:00:00 2001 From: scnorton Date: Wed, 6 Sep 2017 09:25:16 -0400 Subject: npcs_clear_ids_and_state --- include/field_map_obj.h | 2 ++ 1 file changed, 2 insertions(+) (limited to 'include') diff --git a/include/field_map_obj.h b/include/field_map_obj.h index ebc445794..e40f09062 100644 --- a/include/field_map_obj.h +++ b/include/field_map_obj.h @@ -5,6 +5,8 @@ // Exported RAM declarations +extern struct MapObject gUnknown_02037350[16]; + // Exported ROM declarations #endif //POKEEMERALD_FIELD_MAP_OBJ_H -- cgit v1.2.3 From a08f11cab32bf4e2557f33fd275ec8c7b4f165c9 Mon Sep 17 00:00:00 2001 From: scnorton Date: Wed, 6 Sep 2017 09:29:59 -0400 Subject: sub_808D438 --- include/field_map_obj.h | 2 ++ include/field_player_avatar.h | 10 ++++++++++ include/rom4.h | 7 +++++++ 3 files changed, 19 insertions(+) create mode 100644 include/field_player_avatar.h create mode 100644 include/rom4.h (limited to 'include') diff --git a/include/field_map_obj.h b/include/field_map_obj.h index e40f09062..30490d4c6 100644 --- a/include/field_map_obj.h +++ b/include/field_map_obj.h @@ -9,4 +9,6 @@ extern struct MapObject gUnknown_02037350[16]; // Exported ROM declarations +void sub_808D438(void); + #endif //POKEEMERALD_FIELD_MAP_OBJ_H diff --git a/include/field_player_avatar.h b/include/field_player_avatar.h new file mode 100644 index 000000000..8438add26 --- /dev/null +++ b/include/field_player_avatar.h @@ -0,0 +1,10 @@ +// +// Created by Scott Norton on 9/6/17. +// + +#ifndef POKEEMERALD_FIELD_PLAYER_AVATAR_H +#define POKEEMERALD_FIELD_PLAYER_AVATAR_H + +void ClearPlayerAvatarInfo(void); + +#endif //POKEEMERALD_FIELD_PLAYER_AVATAR_H diff --git a/include/rom4.h b/include/rom4.h new file mode 100644 index 000000000..956160afb --- /dev/null +++ b/include/rom4.h @@ -0,0 +1,7 @@ + +#ifndef POKEEMERALD_ROM4_H +#define POKEEMERALD_ROM4_H + +void strange_npc_table_clear(void); + +#endif //POKEEMERALD_ROM4_H -- cgit v1.2.3 From 368b0f9ee8500c5f15d511c827d8b59795fab82b Mon Sep 17 00:00:00 2001 From: scnorton Date: Wed, 6 Sep 2017 09:38:38 -0400 Subject: sub_808D450 --- include/field_map_obj.h | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'include') diff --git a/include/field_map_obj.h b/include/field_map_obj.h index 30490d4c6..d92b28f8c 100644 --- a/include/field_map_obj.h +++ b/include/field_map_obj.h @@ -11,4 +11,8 @@ extern struct MapObject gUnknown_02037350[16]; void sub_808D438(void); +// Exported data declarations + +extern const struct SpriteTemplate *const gFieldEffectObjectTemplatePointers[]; + #endif //POKEEMERALD_FIELD_MAP_OBJ_H -- cgit v1.2.3 From ea9dabdfab6d2a28d9119c2c23db43903ad4ecae Mon Sep 17 00:00:00 2001 From: scnorton Date: Wed, 6 Sep 2017 09:49:51 -0400 Subject: TryGetFieldObjectIdByLocalIdAndMap --- include/field_map_obj.h | 2 ++ 1 file changed, 2 insertions(+) (limited to 'include') diff --git a/include/field_map_obj.h b/include/field_map_obj.h index d92b28f8c..cb6eceb69 100644 --- a/include/field_map_obj.h +++ b/include/field_map_obj.h @@ -10,6 +10,8 @@ extern struct MapObject gUnknown_02037350[16]; // Exported ROM declarations void sub_808D438(void); +u8 GetFieldObjectIdByLocalIdAndMap(u8, u8, u8); +bool8 TryGetFieldObjectIdByLocalIdAndMap(u8, u8, u8, u8 *); // Exported data declarations -- cgit v1.2.3 From f15191bfc28effef4155b26186bd4236182b88aa Mon Sep 17 00:00:00 2001 From: scnorton Date: Wed, 6 Sep 2017 09:52:31 -0400 Subject: GetFieldObjectIdByXY --- include/field_map_obj.h | 1 + 1 file changed, 1 insertion(+) (limited to 'include') diff --git a/include/field_map_obj.h b/include/field_map_obj.h index cb6eceb69..3100f72ff 100644 --- a/include/field_map_obj.h +++ b/include/field_map_obj.h @@ -12,6 +12,7 @@ extern struct MapObject gUnknown_02037350[16]; void sub_808D438(void); u8 GetFieldObjectIdByLocalIdAndMap(u8, u8, u8); bool8 TryGetFieldObjectIdByLocalIdAndMap(u8, u8, u8, u8 *); +u8 GetFieldObjectIdByXY(s16, s16); // Exported data declarations -- cgit v1.2.3 From 1087d1c8227fbcdb768bc96b96c969dd2c9cb598 Mon Sep 17 00:00:00 2001 From: scnorton Date: Wed, 6 Sep 2017 10:48:51 -0400 Subject: GetFieldObjectIdByLocalIdAndMapInternal; rename gUnknown_02037350 to gMapObjects --- include/field_map_obj.h | 2 -- include/global.fieldmap.h | 4 +++- 2 files changed, 3 insertions(+), 3 deletions(-) (limited to 'include') diff --git a/include/field_map_obj.h b/include/field_map_obj.h index 3100f72ff..93a90d2c8 100644 --- a/include/field_map_obj.h +++ b/include/field_map_obj.h @@ -5,8 +5,6 @@ // Exported RAM declarations -extern struct MapObject gUnknown_02037350[16]; - // Exported ROM declarations void sub_808D438(void); diff --git a/include/global.fieldmap.h b/include/global.fieldmap.h index 4029132e8..3e0c7729a 100644 --- a/include/global.fieldmap.h +++ b/include/global.fieldmap.h @@ -1,6 +1,8 @@ #ifndef GUARD_GLOBAL_FIELDMAP_H #define GUARD_GLOBAL_FIELDMAP_H +#define NUM_FIELD_OBJECTS 16 + enum { CONNECTION_SOUTH = 1, @@ -381,7 +383,7 @@ struct Camera s32 y; }; -extern struct MapObject gMapObjects[]; +extern struct MapObject gMapObjects[NUM_FIELD_OBJECTS]; extern u8 gSelectedMapObject; extern struct MapHeader gMapHeader; extern struct PlayerAvatar gPlayerAvatar; -- cgit v1.2.3 From 9498dfa71c811b09f319bc9c9656c08f3182c9dc Mon Sep 17 00:00:00 2001 From: scnorton Date: Wed, 6 Sep 2017 14:25:17 -0400 Subject: InitFieldObjectStateFromTemplate (nonmatching, same as ruby) --- include/field_map_obj.h | 1 + include/global.fieldmap.h | 3 ++- include/global.h | 1 + 3 files changed, 4 insertions(+), 1 deletion(-) (limited to 'include') diff --git a/include/field_map_obj.h b/include/field_map_obj.h index 93a90d2c8..3381d847b 100644 --- a/include/field_map_obj.h +++ b/include/field_map_obj.h @@ -11,6 +11,7 @@ void sub_808D438(void); u8 GetFieldObjectIdByLocalIdAndMap(u8, u8, u8); bool8 TryGetFieldObjectIdByLocalIdAndMap(u8, u8, u8, u8 *); u8 GetFieldObjectIdByXY(s16, s16); +void FieldObjectSetDirection(struct MapObject *, u8); // Exported data declarations diff --git a/include/global.fieldmap.h b/include/global.fieldmap.h index 3e0c7729a..b0a36aa55 100644 --- a/include/global.fieldmap.h +++ b/include/global.fieldmap.h @@ -226,7 +226,8 @@ struct MapObject /*0x14*/ struct Coords16 coords3; /*0x18*/ u8 mapobj_unk_18:4; //current direction? /*0x18*/ u8 placeholder18:4; - /*0x19*/ u8 mapobj_unk_19; + /*0x19*/ u8 mapobj_unk_19:4; + /*0x19*/ u8 mapobj_unk_19b:4; /*0x1A*/ u8 mapobj_unk_1A; /*0x1B*/ u8 mapobj_unk_1B; /*0x1C*/ u8 mapobj_unk_1C; diff --git a/include/global.h b/include/global.h index f9c5f68be..0c0f86470 100644 --- a/include/global.h +++ b/include/global.h @@ -8,6 +8,7 @@ // to help in decompiling #define asm_comment(x) asm volatile("@ -- " x " -- ") +#define asm_unified(x) asm(".syntax unified\n" x "\n.syntax divided") #ifdef __APPLE__ void memset(void *, int, size_t); -- cgit v1.2.3 From 6448563ede13d51682cbf1988a2072291f3b3df0 Mon Sep 17 00:00:00 2001 From: scnorton Date: Wed, 6 Sep 2017 16:14:55 -0400 Subject: unref_sub_808D77C --- include/rom_818CFC8.h | 11 +++++++++++ include/rom_81BE66C.h | 10 ++++++++++ 2 files changed, 21 insertions(+) create mode 100644 include/rom_818CFC8.h create mode 100644 include/rom_81BE66C.h (limited to 'include') diff --git a/include/rom_818CFC8.h b/include/rom_818CFC8.h new file mode 100644 index 000000000..9b6f96893 --- /dev/null +++ b/include/rom_818CFC8.h @@ -0,0 +1,11 @@ +// +// Created by Scott Norton on 9/6/17. +// + +#ifndef POKEEMERALD_ROM_818CFC8_H +#define POKEEMERALD_ROM_818CFC8_H + +bool8 InBattlePyramid(void); +u8 sub_81AAA40(void); + +#endif //POKEEMERALD_ROM_818CFC8_H diff --git a/include/rom_81BE66C.h b/include/rom_81BE66C.h new file mode 100644 index 000000000..d92c500d6 --- /dev/null +++ b/include/rom_81BE66C.h @@ -0,0 +1,10 @@ +// +// Created by Scott Norton on 9/6/17. +// + +#ifndef POKEEMERALD_ROM_81BE66C_H +#define POKEEMERALD_ROM_81BE66C_H + +bool32 InTrainerHill(void); + +#endif //POKEEMERALD_ROM_81BE66C_H -- cgit v1.2.3 From e0216d60459fac28bf6759159a4c4cfa007bf6c2 Mon Sep 17 00:00:00 2001 From: scnorton Date: Wed, 6 Sep 2017 18:26:37 -0400 Subject: unref_sub_808D958 --- include/field_map_obj.h | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'include') diff --git a/include/field_map_obj.h b/include/field_map_obj.h index 3381d847b..6ca6b4103 100644 --- a/include/field_map_obj.h +++ b/include/field_map_obj.h @@ -5,6 +5,8 @@ // Exported RAM declarations + + // Exported ROM declarations void sub_808D438(void); @@ -12,6 +14,10 @@ u8 GetFieldObjectIdByLocalIdAndMap(u8, u8, u8); bool8 TryGetFieldObjectIdByLocalIdAndMap(u8, u8, u8, u8 *); u8 GetFieldObjectIdByXY(s16, s16); void FieldObjectSetDirection(struct MapObject *, u8); +u8 GetFieldObjectIdByXY(s16, s16); +u8 sub_808D4F4(void); +void RemoveFieldObject(struct MapObject *); +void RemoveFieldObjectByLocalIdAndMap(u8, u8, u8); // Exported data declarations -- cgit v1.2.3 From b79e3af0a8aaed5528e57c965101aa4c0b59bad1 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Wed, 6 Sep 2017 20:28:36 -0400 Subject: SpawnFieldObjectInternal --- include/field_ground_effect.h | 15 +++++++++++++++ include/field_map_obj.h | 5 +++++ 2 files changed, 20 insertions(+) create mode 100644 include/field_ground_effect.h (limited to 'include') diff --git a/include/field_ground_effect.h b/include/field_ground_effect.h new file mode 100644 index 000000000..2b93273db --- /dev/null +++ b/include/field_ground_effect.h @@ -0,0 +1,15 @@ +// +// Created by scott on 9/6/2017. +// + +#ifndef POKEEMERALD_FIELD_GROUND_EFFECT_H +#define POKEEMERALD_FIELD_GROUND_EFFECT_H + +// Exported type declarations + +// Exported RAM declarations + +// Exported ROM declarations +void SetObjectSubpriorityByZCoord(u8, struct Sprite *, u8); + +#endif //POKEEMERALD_FIELD_GROUND_EFFECT_H diff --git a/include/field_map_obj.h b/include/field_map_obj.h index 6ca6b4103..6ddff4901 100644 --- a/include/field_map_obj.h +++ b/include/field_map_obj.h @@ -18,6 +18,11 @@ u8 GetFieldObjectIdByXY(s16, s16); u8 sub_808D4F4(void); void RemoveFieldObject(struct MapObject *); void RemoveFieldObjectByLocalIdAndMap(u8, u8, u8); +void npc_load_two_palettes__no_record(u16, u8); +void npc_load_two_palettes__and_record(u16, u8); +void sub_808EAB0(u16, u8); +void sub_8092FF0(s16, s16, s16 *, s16 *); +u8 FieldObjectDirectionToImageAnimId(u8); // Exported data declarations -- cgit v1.2.3 From f7742a68ae57ffa9e7b965c6cc816f7977b9e467 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Thu, 7 Sep 2017 14:31:23 -0400 Subject: AddPseudoFieldObject --- include/malloc.h | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'include') diff --git a/include/malloc.h b/include/malloc.h index bd870ede3..b3216b05c 100644 --- a/include/malloc.h +++ b/include/malloc.h @@ -1,6 +1,10 @@ #ifndef GUARD_MALLOC_H #define GUARD_MALLOC_H +#define malloc Alloc +#define calloc AllocZeroed +#define free Free + void *Alloc(u32 size); void *AllocZeroed(u32 size); void Free(void *pointer); -- cgit v1.2.3 From 64ebd9b4fb54fae34a8f7cebb14588b89693d4a3 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Thu, 7 Sep 2017 15:50:49 -0400 Subject: sprite_new --- include/field_ground_effect.h | 1 + include/field_map_obj.h | 1 + include/map_obj_8097404.h | 15 +++++++++++++++ 3 files changed, 17 insertions(+) create mode 100644 include/map_obj_8097404.h (limited to 'include') diff --git a/include/field_ground_effect.h b/include/field_ground_effect.h index 2b93273db..0c90f50dc 100644 --- a/include/field_ground_effect.h +++ b/include/field_ground_effect.h @@ -11,5 +11,6 @@ // Exported ROM declarations void SetObjectSubpriorityByZCoord(u8, struct Sprite *, u8); +void InitObjectPriorityByZCoord(struct Sprite *, u8); #endif //POKEEMERALD_FIELD_GROUND_EFFECT_H diff --git a/include/field_map_obj.h b/include/field_map_obj.h index 6ddff4901..40f94ccab 100644 --- a/include/field_map_obj.h +++ b/include/field_map_obj.h @@ -23,6 +23,7 @@ void npc_load_two_palettes__and_record(u16, u8); void sub_808EAB0(u16, u8); void sub_8092FF0(s16, s16, s16 *, s16 *); u8 FieldObjectDirectionToImageAnimId(u8); +void sub_80930E0(s16 *, s16 *, u8, u8); // Exported data declarations diff --git a/include/map_obj_8097404.h b/include/map_obj_8097404.h new file mode 100644 index 000000000..6296febe4 --- /dev/null +++ b/include/map_obj_8097404.h @@ -0,0 +1,15 @@ +// +// Created by scott on 9/7/2017. +// + +#ifndef POKEEMERALD_MAP_OBJ_8097404_H +#define POKEEMERALD_MAP_OBJ_8097404_H + +// Exported type declarations + +// Exported RAM declarations + +// Exported ROM declarations +void sub_8097AC8(struct Sprite *); + +#endif //POKEEMERALD_MAP_OBJ_8097404_H -- cgit v1.2.3 From 341a4735bc3e702104574055b97f1d691668bc14 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Thu, 7 Sep 2017 16:09:59 -0400 Subject: RemoveFieldObjectsOutsideView --- include/rom4.h | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) (limited to 'include') diff --git a/include/rom4.h b/include/rom4.h index 956160afb..655ce3fde 100644 --- a/include/rom4.h +++ b/include/rom4.h @@ -2,6 +2,28 @@ #ifndef POKEEMERALD_ROM4_H #define POKEEMERALD_ROM4_H +struct UnkPlayerStruct +{ + u8 player_field_0; + u8 player_field_1; +}; + +struct LinkPlayerMapObject +{ + u8 active; + u8 linkPlayerId; + u8 mapObjId; + u8 mode; +}; + +struct UCoords32 +{ + u32 x, y; +}; + + +extern struct LinkPlayerMapObject gLinkPlayerMapObjects[4]; + void strange_npc_table_clear(void); #endif //POKEEMERALD_ROM4_H -- cgit v1.2.3 From de8ef5e12599098abd71c97f654192f6a8cbe900 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Thu, 7 Sep 2017 19:28:46 -0400 Subject: sub_808E1B8 --- include/field_effect_helpers.h | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 include/field_effect_helpers.h (limited to 'include') diff --git a/include/field_effect_helpers.h b/include/field_effect_helpers.h new file mode 100644 index 000000000..673d59139 --- /dev/null +++ b/include/field_effect_helpers.h @@ -0,0 +1,15 @@ +// +// Created by scott on 9/7/2017. +// + +#ifndef POKEEMERALD_FIELD_EFFECT_HELPERS_H +#define POKEEMERALD_FIELD_EFFECT_HELPERS_H + +// Exported type declarations + +// Exported RAM declarations + +// Exported ROM declarations +u8 sub_8154228(void); + +#endif //POKEEMERALD_FIELD_EFFECT_HELPERS_H -- cgit v1.2.3 From 11786cc325937ce4c0a37b3db40df26dcd785018 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Thu, 7 Sep 2017 19:45:30 -0400 Subject: sub_808E38C --- include/field_map_obj.h | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) (limited to 'include') diff --git a/include/field_map_obj.h b/include/field_map_obj.h index 40f94ccab..3e7bdf932 100644 --- a/include/field_map_obj.h +++ b/include/field_map_obj.h @@ -14,16 +14,22 @@ u8 GetFieldObjectIdByLocalIdAndMap(u8, u8, u8); bool8 TryGetFieldObjectIdByLocalIdAndMap(u8, u8, u8, u8 *); u8 GetFieldObjectIdByXY(s16, s16); void FieldObjectSetDirection(struct MapObject *, u8); -u8 GetFieldObjectIdByXY(s16, s16); u8 sub_808D4F4(void); -void RemoveFieldObject(struct MapObject *); void RemoveFieldObjectByLocalIdAndMap(u8, u8, u8); void npc_load_two_palettes__no_record(u16, u8); void npc_load_two_palettes__and_record(u16, u8); +void sub_808E16C(s16, s16); void sub_808EAB0(u16, u8); void sub_8092FF0(s16, s16, s16 *, s16 *); u8 FieldObjectDirectionToImageAnimId(u8); void sub_80930E0(s16 *, s16 *, u8, u8); +void FieldObjectClearAnim(struct MapObject *); +void SpawnFieldObjectsInView(s16, s16); +u8 sprite_new(u8, u8, s16, s16, u8, u8); +u8 AddPseudoFieldObject(u16, void (*)(struct Sprite *), s16, s16, u8); +u8 show_sprite(u8, u8, u8); +u8 SpawnSpecialFieldObjectParametrized(u8, u8, u8, s16, s16, u8); +u8 SpawnSpecialFieldObject(struct MapObjectTemplate *); // Exported data declarations -- cgit v1.2.3 From f8e8adf82ec56e986ece7a5eb6de87977ce2f506 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Thu, 7 Sep 2017 20:04:59 -0400 Subject: SetPlayerAvatarFieldObjectIdAndObjectId --- include/field_player_avatar.h | 2 ++ 1 file changed, 2 insertions(+) (limited to 'include') diff --git a/include/field_player_avatar.h b/include/field_player_avatar.h index 8438add26..5e2f0822c 100644 --- a/include/field_player_avatar.h +++ b/include/field_player_avatar.h @@ -6,5 +6,7 @@ #define POKEEMERALD_FIELD_PLAYER_AVATAR_H void ClearPlayerAvatarInfo(void); +void SetPlayerAvatarExtraStateTransition(u8, u8); +u8 GetPlayerAvatarGenderByGraphicsId(u8); #endif //POKEEMERALD_FIELD_PLAYER_AVATAR_H -- cgit v1.2.3 From a87b35f9a73c09994bbe389fc73299b185db1fac Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Thu, 7 Sep 2017 21:04:32 -0400 Subject: FieldObjectSetGraphicsId --- include/field_map_obj.h | 3 +++ 1 file changed, 3 insertions(+) (limited to 'include') diff --git a/include/field_map_obj.h b/include/field_map_obj.h index 3e7bdf932..14845b6d9 100644 --- a/include/field_map_obj.h +++ b/include/field_map_obj.h @@ -18,6 +18,7 @@ u8 sub_808D4F4(void); void RemoveFieldObjectByLocalIdAndMap(u8, u8, u8); void npc_load_two_palettes__no_record(u16, u8); void npc_load_two_palettes__and_record(u16, u8); +void pal_patch_for_npc(u16, u8); void sub_808E16C(s16, s16); void sub_808EAB0(u16, u8); void sub_8092FF0(s16, s16, s16 *, s16 *); @@ -30,6 +31,8 @@ u8 AddPseudoFieldObject(u16, void (*)(struct Sprite *), s16, s16, u8); u8 show_sprite(u8, u8, u8); u8 SpawnSpecialFieldObjectParametrized(u8, u8, u8, s16, s16, u8); u8 SpawnSpecialFieldObject(struct MapObjectTemplate *); +void sub_8093038(s16, s16, s16 *, s16 *); +void CameraObjectReset1(void); // Exported data declarations -- cgit v1.2.3 From ad99377734e1f982a347e33da60c82bf1120c2f3 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Thu, 7 Sep 2017 21:17:55 -0400 Subject: unref_sub_808E504 --- include/field_map_obj.h | 1 + 1 file changed, 1 insertion(+) (limited to 'include') diff --git a/include/field_map_obj.h b/include/field_map_obj.h index 14845b6d9..7b0905c93 100644 --- a/include/field_map_obj.h +++ b/include/field_map_obj.h @@ -33,6 +33,7 @@ u8 SpawnSpecialFieldObjectParametrized(u8, u8, u8, s16, s16, u8); u8 SpawnSpecialFieldObject(struct MapObjectTemplate *); void sub_8093038(s16, s16, s16 *, s16 *); void CameraObjectReset1(void); +void FieldObjectSetGraphicsId(struct MapObject *, u8); // Exported data declarations -- cgit v1.2.3 From ddcce8c3bc831023894191ceac058b8f2fe31ced Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Fri, 8 Sep 2017 13:41:55 -0400 Subject: FieldObjectTurn --- include/field_map_obj.h | 2 ++ 1 file changed, 2 insertions(+) (limited to 'include') diff --git a/include/field_map_obj.h b/include/field_map_obj.h index 7b0905c93..34e8d4ac0 100644 --- a/include/field_map_obj.h +++ b/include/field_map_obj.h @@ -34,6 +34,8 @@ u8 SpawnSpecialFieldObject(struct MapObjectTemplate *); void sub_8093038(s16, s16, s16 *, s16 *); void CameraObjectReset1(void); void FieldObjectSetGraphicsId(struct MapObject *, u8); +void FieldObjectTurn(struct MapObject *, u8); +void FieldObjectTurnByLocalIdAndMap(u8, u8, u8); // Exported data declarations -- cgit v1.2.3 From 9b98055ecc5174e92c1cf4bcad8f7a1ecc317581 Mon Sep 17 00:00:00 2001 From: scnorton Date: Fri, 8 Sep 2017 13:46:21 -0400 Subject: PlayerObjectTurn --- include/field_map_obj.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'include') diff --git a/include/field_map_obj.h b/include/field_map_obj.h index 34e8d4ac0..97c55f12a 100644 --- a/include/field_map_obj.h +++ b/include/field_map_obj.h @@ -35,7 +35,7 @@ void sub_8093038(s16, s16, s16 *, s16 *); void CameraObjectReset1(void); void FieldObjectSetGraphicsId(struct MapObject *, u8); void FieldObjectTurn(struct MapObject *, u8); -void FieldObjectTurnByLocalIdAndMap(u8, u8, u8); +void FieldObjectTurnByLocalIdAndMap(u8, u8, u8, u8); // Exported data declarations -- cgit v1.2.3 From 823f8d6a0c827025f280e1d57fb71959ca529fbe Mon Sep 17 00:00:00 2001 From: scnorton Date: Fri, 8 Sep 2017 14:05:45 -0400 Subject: get_berry_tree_graphics --- include/berry.h | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 include/berry.h (limited to 'include') diff --git a/include/berry.h b/include/berry.h new file mode 100644 index 000000000..6d8d8d483 --- /dev/null +++ b/include/berry.h @@ -0,0 +1,17 @@ +// +// Created by Scott Norton on 9/8/17. +// + +#ifndef POKEEMERALD_BERRY_H +#define POKEEMERALD_BERRY_H + +#define NUM_BERRIES 44 + +extern const u8 *const gBerryTreeFieldObjectGraphicsIdTablePointers[NUM_BERRIES]; +extern const struct SpriteFrameImage *const gBerryTreePicTablePointers[NUM_BERRIES]; +extern const u8 *const gBerryTreePaletteSlotTablePointers[NUM_BERRIES]; + +u8 GetStageByBerryTreeId(u8); +u8 GetBerryTypeByBerryTreeId(u8); + +#endif //POKEEMERALD_BERRY_H -- cgit v1.2.3 From e0b2e6cdbf0ff124a8e6a83f580418a06cee9df7 Mon Sep 17 00:00:00 2001 From: scnorton Date: Fri, 8 Sep 2017 14:16:44 -0400 Subject: GetFieldObjectGraphicsInfo --- include/field_map_obj.h | 5 +++-- include/mauville_old_man.h | 10 ++++++++++ 2 files changed, 13 insertions(+), 2 deletions(-) create mode 100644 include/mauville_old_man.h (limited to 'include') diff --git a/include/field_map_obj.h b/include/field_map_obj.h index 97c55f12a..5eaee20d9 100644 --- a/include/field_map_obj.h +++ b/include/field_map_obj.h @@ -1,12 +1,13 @@ #ifndef POKEEMERALD_FIELD_MAP_OBJ_H #define POKEEMERALD_FIELD_MAP_OBJ_H +#define NUM_OBJECT_GRAPHICS_INFO 239 +#define SPRITE_VAR 240 + // Exported struct declarations // Exported RAM declarations - - // Exported ROM declarations void sub_808D438(void); diff --git a/include/mauville_old_man.h b/include/mauville_old_man.h new file mode 100644 index 000000000..5ed7b203b --- /dev/null +++ b/include/mauville_old_man.h @@ -0,0 +1,10 @@ +// +// Created by Scott Norton on 9/8/17. +// + +#ifndef POKEEMERALD_MAUVILLE_OLD_MAN_H +#define POKEEMERALD_MAUVILLE_OLD_MAN_H + +u8 sub_81201C8(void); + +#endif //POKEEMERALD_MAUVILLE_OLD_MAN_H -- cgit v1.2.3 From 67955bb51a14b464add672774a50b67788cf56c6 Mon Sep 17 00:00:00 2001 From: scnorton Date: Fri, 8 Sep 2017 14:36:58 -0400 Subject: npc_by_local_id_and_map_set_field_1_bit_x20 --- include/field_map_obj.h | 2 ++ 1 file changed, 2 insertions(+) (limited to 'include') diff --git a/include/field_map_obj.h b/include/field_map_obj.h index 5eaee20d9..bf99cec87 100644 --- a/include/field_map_obj.h +++ b/include/field_map_obj.h @@ -37,6 +37,8 @@ void CameraObjectReset1(void); void FieldObjectSetGraphicsId(struct MapObject *, u8); void FieldObjectTurn(struct MapObject *, u8); void FieldObjectTurnByLocalIdAndMap(u8, u8, u8, u8); +const struct MapObjectGraphicsInfo *GetFieldObjectGraphicsInfo(u8); +void npc_by_local_id_and_map_set_field_1_bit_x20(u8, u8, u8, u8); // Exported data declarations -- cgit v1.2.3 From db2b371e70a8cbf1134866906c7eccaae7f65203 Mon Sep 17 00:00:00 2001 From: scnorton Date: Fri, 8 Sep 2017 15:11:29 -0400 Subject: gpu_pal_allocator_reset__manage_upper_four --- include/global.h | 2 ++ 1 file changed, 2 insertions(+) (limited to 'include') diff --git a/include/global.h b/include/global.h index 0c0f86470..c406c507f 100644 --- a/include/global.h +++ b/include/global.h @@ -730,4 +730,6 @@ struct Bitmap // TODO: Find a better spot for this u32 height:16; }; +extern u8 gReservedSpritePaletteCount; + #endif // GUARD_GLOBAL_H -- cgit v1.2.3 From 1de5a14a35f6da79a2bc603ce5a0cb3a116c31b0 Mon Sep 17 00:00:00 2001 From: scnorton Date: Fri, 8 Sep 2017 15:18:03 -0400 Subject: sub_808E894 --- include/data3.h | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 include/data3.h (limited to 'include') diff --git a/include/data3.h b/include/data3.h new file mode 100644 index 000000000..1f082e3fb --- /dev/null +++ b/include/data3.h @@ -0,0 +1,10 @@ +// +// Created by Scott Norton on 9/8/17. +// + +#ifndef POKEEMERALD_DATA3_H +#define POKEEMERALD_DATA3_H + +extern const struct SpritePalette gUnknown_0850BBC8[]; + +#endif //POKEEMERALD_DATA3_H -- cgit v1.2.3 From 5a020a47f3ac99bf80854817873e211cbf22102d Mon Sep 17 00:00:00 2001 From: scnorton Date: Fri, 8 Sep 2017 17:34:12 -0400 Subject: FindFieldObjectPaletteIndexByTag --- include/field_map_obj.h | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'include') diff --git a/include/field_map_obj.h b/include/field_map_obj.h index bf99cec87..04bdb42d4 100644 --- a/include/field_map_obj.h +++ b/include/field_map_obj.h @@ -39,6 +39,12 @@ void FieldObjectTurn(struct MapObject *, u8); void FieldObjectTurnByLocalIdAndMap(u8, u8, u8, u8); const struct MapObjectGraphicsInfo *GetFieldObjectGraphicsInfo(u8); void npc_by_local_id_and_map_set_field_1_bit_x20(u8, u8, u8, u8); +void gpu_pal_allocator_reset__manage_upper_four(void); +void sub_808E82C(u8, u8, u8, s16, s16); +void sub_808E7E4(u8, u8, u8); +void sub_808E78C(u8, u8, u8, u8); +void sub_808E75C(s16, s16); +void FieldObjectGetLocalIdAndMap(struct MapObject *, u8 *, u8 *, u8 *); // Exported data declarations -- cgit v1.2.3 From dddb44e3018ba915564d6e1a3bcc888ec37aa0bd Mon Sep 17 00:00:00 2001 From: scnorton Date: Fri, 8 Sep 2017 17:58:41 -0400 Subject: npc_load_two_palettes__no_record --- include/data3.h | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'include') diff --git a/include/data3.h b/include/data3.h index 1f082e3fb..5318d44ec 100644 --- a/include/data3.h +++ b/include/data3.h @@ -5,6 +5,13 @@ #ifndef POKEEMERALD_DATA3_H #define POKEEMERALD_DATA3_H +struct PairedPalettes { + u16 tag; + const u16 *data; +}; + extern const struct SpritePalette gUnknown_0850BBC8[]; +extern const struct PairedPalettes gUnknown_0850BD00[15]; +extern u8 gUnknown_084975C4[0x10]; #endif //POKEEMERALD_DATA3_H -- cgit v1.2.3 From a17a1bb27aeca68624c2b8d1b55cbd44e1c34e11 Mon Sep 17 00:00:00 2001 From: scnorton Date: Fri, 8 Sep 2017 18:04:23 -0400 Subject: npc_load_two_palettes__and_record --- include/data3.h | 1 + 1 file changed, 1 insertion(+) (limited to 'include') diff --git a/include/data3.h b/include/data3.h index 5318d44ec..f44a61263 100644 --- a/include/data3.h +++ b/include/data3.h @@ -12,6 +12,7 @@ struct PairedPalettes { extern const struct SpritePalette gUnknown_0850BBC8[]; extern const struct PairedPalettes gUnknown_0850BD00[15]; +extern const struct PairedPalettes gUnknown_0850BD78[15]; extern u8 gUnknown_084975C4[0x10]; #endif //POKEEMERALD_DATA3_H -- cgit v1.2.3 From b639ca3b15bea19d7115d7ad619a1e6140015740 Mon Sep 17 00:00:00 2001 From: scnorton Date: Fri, 8 Sep 2017 18:12:27 -0400 Subject: sub_808EAB0 --- include/field_map_obj.h | 1 - 1 file changed, 1 deletion(-) (limited to 'include') diff --git a/include/field_map_obj.h b/include/field_map_obj.h index 04bdb42d4..c5b23103f 100644 --- a/include/field_map_obj.h +++ b/include/field_map_obj.h @@ -21,7 +21,6 @@ void npc_load_two_palettes__no_record(u16, u8); void npc_load_two_palettes__and_record(u16, u8); void pal_patch_for_npc(u16, u8); void sub_808E16C(s16, s16); -void sub_808EAB0(u16, u8); void sub_8092FF0(s16, s16, s16 *, s16 *); u8 FieldObjectDirectionToImageAnimId(u8); void sub_80930E0(s16 *, s16 *, u8, u8); -- cgit v1.2.3 From 70e982d1fabc62a6d145b1a8dda866931886bb4d Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Fri, 8 Sep 2017 21:27:02 -0400 Subject: npc_coords_shift --- include/field_map_obj.h | 1 + 1 file changed, 1 insertion(+) (limited to 'include') diff --git a/include/field_map_obj.h b/include/field_map_obj.h index c5b23103f..4eb6f85d5 100644 --- a/include/field_map_obj.h +++ b/include/field_map_obj.h @@ -44,6 +44,7 @@ void sub_808E7E4(u8, u8, u8); void sub_808E78C(u8, u8, u8, u8); void sub_808E75C(s16, s16); void FieldObjectGetLocalIdAndMap(struct MapObject *, u8 *, u8 *, u8 *); +void npc_coords_shift(struct MapObject *, s16, s16); // Exported data declarations -- cgit v1.2.3 From ba6987b7335d6b3f0a641e0dee62be37bff4ffd8 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Fri, 8 Sep 2017 21:35:46 -0400 Subject: sub_808EB08 --- include/field_map_obj.h | 1 + 1 file changed, 1 insertion(+) (limited to 'include') diff --git a/include/field_map_obj.h b/include/field_map_obj.h index 4eb6f85d5..b292d200d 100644 --- a/include/field_map_obj.h +++ b/include/field_map_obj.h @@ -45,6 +45,7 @@ void sub_808E78C(u8, u8, u8, u8); void sub_808E75C(s16, s16); void FieldObjectGetLocalIdAndMap(struct MapObject *, u8 *, u8 *, u8 *); void npc_coords_shift(struct MapObject *, s16, s16); +void sub_808EB08(struct MapObject *, s16, s16); // Exported data declarations -- cgit v1.2.3 From 79b19a36b864abb359f7ec2122dea851f8ac5e7b Mon Sep 17 00:00:00 2001 From: scnorton Date: Sun, 10 Sep 2017 15:35:21 -0400 Subject: UpdateFieldObjectCoordsForCameraUpdate --- include/global.fieldmap.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'include') diff --git a/include/global.fieldmap.h b/include/global.fieldmap.h index b0a36aa55..5a7a75ccb 100644 --- a/include/global.fieldmap.h +++ b/include/global.fieldmap.h @@ -379,7 +379,7 @@ struct PlayerAvatar /* 0x202E858 */ struct Camera { - bool8 field_0:1; + bool8 active:1; s32 x; s32 y; }; @@ -388,5 +388,6 @@ extern struct MapObject gMapObjects[NUM_FIELD_OBJECTS]; extern u8 gSelectedMapObject; extern struct MapHeader gMapHeader; extern struct PlayerAvatar gPlayerAvatar; +extern struct Camera gCamera; #endif // GUARD_GLOBAL_FIELDMAP_H -- cgit v1.2.3 From 9e0a17109840593a034bd42e96ffbcf73bc16b1c Mon Sep 17 00:00:00 2001 From: scnorton Date: Sun, 10 Sep 2017 16:02:20 -0400 Subject: AddCameraObject --- include/data3.h | 1 + 1 file changed, 1 insertion(+) (limited to 'include') diff --git a/include/data3.h b/include/data3.h index f44a61263..343f145c0 100644 --- a/include/data3.h +++ b/include/data3.h @@ -14,5 +14,6 @@ extern const struct SpritePalette gUnknown_0850BBC8[]; extern const struct PairedPalettes gUnknown_0850BD00[15]; extern const struct PairedPalettes gUnknown_0850BD78[15]; extern u8 gUnknown_084975C4[0x10]; +extern const struct SpriteTemplate gUnknown_084975D4; #endif //POKEEMERALD_DATA3_H -- cgit v1.2.3 From c7b1a8c3daa5183f8e522d6d6fcba1ffea79e72f Mon Sep 17 00:00:00 2001 From: scnorton Date: Sun, 10 Sep 2017 16:13:19 -0400 Subject: ObjectCB_CameraObject --- include/data3.h | 1 + 1 file changed, 1 insertion(+) (limited to 'include') diff --git a/include/data3.h b/include/data3.h index 343f145c0..6b1569486 100644 --- a/include/data3.h +++ b/include/data3.h @@ -15,5 +15,6 @@ extern const struct PairedPalettes gUnknown_0850BD00[15]; extern const struct PairedPalettes gUnknown_0850BD78[15]; extern u8 gUnknown_084975C4[0x10]; extern const struct SpriteTemplate gUnknown_084975D4; +extern void (*const gUnknown_084975EC[3])(struct Sprite *); #endif //POKEEMERALD_DATA3_H -- cgit v1.2.3 From 5ad282c82c79205045fce2e8d7db993846d86b17 Mon Sep 17 00:00:00 2001 From: scnorton Date: Mon, 11 Sep 2017 10:29:00 -0400 Subject: GetFieldObjectTemplateByLocalIdAndMap --- include/rom4.h | 1 + 1 file changed, 1 insertion(+) (limited to 'include') diff --git a/include/rom4.h b/include/rom4.h index 655ce3fde..0c7b87353 100644 --- a/include/rom4.h +++ b/include/rom4.h @@ -25,5 +25,6 @@ struct UCoords32 extern struct LinkPlayerMapObject gLinkPlayerMapObjects[4]; void strange_npc_table_clear(void); +const struct MapHeader *get_mapheader_by_bank_and_number(u8, u8); #endif //POKEEMERALD_ROM4_H -- cgit v1.2.3 From 9306122359968579b27b9a41e3cfd082860a4231 Mon Sep 17 00:00:00 2001 From: scnorton Date: Mon, 11 Sep 2017 10:46:26 -0400 Subject: through sub_808F23C --- include/global.fieldmap.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'include') diff --git a/include/global.fieldmap.h b/include/global.fieldmap.h index 5a7a75ccb..f8955b9fd 100644 --- a/include/global.fieldmap.h +++ b/include/global.fieldmap.h @@ -86,7 +86,7 @@ struct MapObjectTemplate ///*0x0B*/ u8 fillerB[1]; /*0x0C*/ u16 unkC; /*0x0E*/ u16 unkE; - /*0x10*/ u8 *script; + /*0x10*/ const u8 *script; /*0x14*/ u16 flagId; /*0x16*/ u8 filler_16[2]; }; /*size = 0x18*/ -- cgit v1.2.3 From c6ef3442621227562f15017441aa6fb7709e7187 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Tue, 12 Sep 2017 16:17:52 -0400 Subject: sub_808F254 --- include/field_map_obj.h | 1 + 1 file changed, 1 insertion(+) mode change 100644 => 100755 include/field_map_obj.h (limited to 'include') diff --git a/include/field_map_obj.h b/include/field_map_obj.h old mode 100644 new mode 100755 index b292d200d..ec28df643 --- a/include/field_map_obj.h +++ b/include/field_map_obj.h @@ -46,6 +46,7 @@ void sub_808E75C(s16, s16); void FieldObjectGetLocalIdAndMap(struct MapObject *, u8 *, u8 *, u8 *); void npc_coords_shift(struct MapObject *, s16, s16); void sub_808EB08(struct MapObject *, s16, s16); +void sub_808F254(u8, u8, u8); // Exported data declarations -- cgit v1.2.3 From 9286c93c8afd9505259487481e45db6956444004 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Tue, 12 Sep 2017 16:47:51 -0400 Subject: npc_paltag_set_load --- include/data3.h | 7 ++++--- include/event_scripts.h | 11 +++++++++++ 2 files changed, 15 insertions(+), 3 deletions(-) mode change 100644 => 100755 include/data3.h create mode 100755 include/event_scripts.h (limited to 'include') diff --git a/include/data3.h b/include/data3.h old mode 100644 new mode 100755 index 6b1569486..29b1acc34 --- a/include/data3.h +++ b/include/data3.h @@ -10,11 +10,12 @@ struct PairedPalettes { const u16 *data; }; -extern const struct SpritePalette gUnknown_0850BBC8[]; -extern const struct PairedPalettes gUnknown_0850BD00[15]; -extern const struct PairedPalettes gUnknown_0850BD78[15]; extern u8 gUnknown_084975C4[0x10]; extern const struct SpriteTemplate gUnknown_084975D4; extern void (*const gUnknown_084975EC[3])(struct Sprite *); +extern const struct SpritePalette gUnknown_0850BBC8[]; +extern const struct PairedPalettes gUnknown_0850BD00[15]; +extern const struct PairedPalettes gUnknown_0850BD78[15]; +extern const u16 *const gUnknown_0850BE38[2]; #endif //POKEEMERALD_DATA3_H diff --git a/include/event_scripts.h b/include/event_scripts.h new file mode 100755 index 000000000..967bc196a --- /dev/null +++ b/include/event_scripts.h @@ -0,0 +1,11 @@ +// +// Created by scott on 9/12/2017. +// + +#ifndef POKEEMERALD_EVENT_SCRIPTS_H +#define POKEEMERALD_EVENT_SCRIPTS_H + +extern const u8 gUnknown_082766A2[]; +extern const u8 gUnknown_082766A6[]; + +#endif //POKEEMERALD_EVENT_SCRIPTS_H -- cgit v1.2.3 From 28b272bf52e32374a3d0e493b47953bfad8e9cac Mon Sep 17 00:00:00 2001 From: scnorton Date: Wed, 13 Sep 2017 09:41:11 -0400 Subject: NoMovement1, GoRandomDirections --- include/field_map_obj.h | 1 + 1 file changed, 1 insertion(+) (limited to 'include') diff --git a/include/field_map_obj.h b/include/field_map_obj.h index ec28df643..f91b8f9e3 100755 --- a/include/field_map_obj.h +++ b/include/field_map_obj.h @@ -47,6 +47,7 @@ void FieldObjectGetLocalIdAndMap(struct MapObject *, u8 *, u8 *, u8 *); void npc_coords_shift(struct MapObject *, s16, s16); void sub_808EB08(struct MapObject *, s16, s16); void sub_808F254(u8, u8, u8); +void FieldObjectStep(struct MapObject *, struct Sprite *, bool8(struct MapObject *, struct Sprite *)); // Exported data declarations -- cgit v1.2.3 From e26501f130ed84b160f80232db642ec49722025f Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Wed, 13 Sep 2017 10:59:25 -0400 Subject: Support functions for GoRandomDirections --- include/data3.h | 2 ++ include/global.h | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) (limited to 'include') diff --git a/include/data3.h b/include/data3.h index 29b1acc34..35dba5942 100755 --- a/include/data3.h +++ b/include/data3.h @@ -17,5 +17,7 @@ extern const struct SpritePalette gUnknown_0850BBC8[]; extern const struct PairedPalettes gUnknown_0850BD00[15]; extern const struct PairedPalettes gUnknown_0850BD78[15]; extern const u16 *const gUnknown_0850BE38[2]; +extern const s16 gUnknown_0850D6DC[4]; +extern const u8 gUnknown_0850D710[4]; #endif //POKEEMERALD_DATA3_H diff --git a/include/global.h b/include/global.h index c406c507f..a006e8591 100644 --- a/include/global.h +++ b/include/global.h @@ -10,7 +10,7 @@ #define asm_comment(x) asm volatile("@ -- " x " -- ") #define asm_unified(x) asm(".syntax unified\n" x "\n.syntax divided") -#ifdef __APPLE__ +#if defined (__APPLE__) || defined (__CYGWIN__) void memset(void *, int, size_t); void memcpy(void *, const void *, size_t); #endif // __APPLE__ -- cgit v1.2.3 From d72231379bd5b113744cf28c7fe9c9d6784e0174 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Wed, 13 Sep 2017 19:13:44 -0400 Subject: FieldObjectIsTrainerAndCloseToPlayer --- include/field_player_avatar.h | 2 ++ 1 file changed, 2 insertions(+) (limited to 'include') diff --git a/include/field_player_avatar.h b/include/field_player_avatar.h index 5e2f0822c..3a74b3b10 100644 --- a/include/field_player_avatar.h +++ b/include/field_player_avatar.h @@ -8,5 +8,7 @@ void ClearPlayerAvatarInfo(void); void SetPlayerAvatarExtraStateTransition(u8, u8); u8 GetPlayerAvatarGenderByGraphicsId(u8); +bool8 TestPlayerAvatarFlags(u8); +void PlayerGetDestCoords(s16 *, s16 *); #endif //POKEEMERALD_FIELD_PLAYER_AVATAR_H -- cgit v1.2.3 From 0ae3347e472686be8c7c21862afe4a62222cdcd1 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Thu, 14 Sep 2017 08:38:21 -0400 Subject: Rename some functions --- include/data3.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'include') diff --git a/include/data3.h b/include/data3.h index 35dba5942..3c1d34759 100755 --- a/include/data3.h +++ b/include/data3.h @@ -17,7 +17,7 @@ extern const struct SpritePalette gUnknown_0850BBC8[]; extern const struct PairedPalettes gUnknown_0850BD00[15]; extern const struct PairedPalettes gUnknown_0850BD78[15]; extern const u16 *const gUnknown_0850BE38[2]; -extern const s16 gUnknown_0850D6DC[4]; -extern const u8 gUnknown_0850D710[4]; +extern const s16 gUnknown_0850D6DC[4]; // {0x20, 0x40, 0x60, 0x80} +extern const u8 gUnknown_0850D710[4]; // {DIR_SOUTH, DIR_NORTH, DIR_WEST, DIR_EAST} #endif //POKEEMERALD_DATA3_H -- cgit v1.2.3 From 4a1383d77bb1da701290848020b5ebf942182283 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Thu, 14 Sep 2017 21:22:14 -0400 Subject: RandomlyGoNorthOrSouth --- include/data3.h | 1 + 1 file changed, 1 insertion(+) (limited to 'include') diff --git a/include/data3.h b/include/data3.h index 3c1d34759..c73a8c991 100755 --- a/include/data3.h +++ b/include/data3.h @@ -19,5 +19,6 @@ extern const struct PairedPalettes gUnknown_0850BD78[15]; extern const u16 *const gUnknown_0850BE38[2]; extern const s16 gUnknown_0850D6DC[4]; // {0x20, 0x40, 0x60, 0x80} extern const u8 gUnknown_0850D710[4]; // {DIR_SOUTH, DIR_NORTH, DIR_WEST, DIR_EAST} +extern const u8 gUnknown_0850D770[2]; // {DIR_SOUTH, DIR_NORTH} #endif //POKEEMERALD_DATA3_H -- cgit v1.2.3 From 68c62595f569e9b6ccca1596776330ce31d9d805 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Thu, 14 Sep 2017 21:25:30 -0400 Subject: RandomlyGoEastOrWest --- include/data3.h | 1 + 1 file changed, 1 insertion(+) (limited to 'include') diff --git a/include/data3.h b/include/data3.h index c73a8c991..63be33381 100755 --- a/include/data3.h +++ b/include/data3.h @@ -20,5 +20,6 @@ extern const u16 *const gUnknown_0850BE38[2]; extern const s16 gUnknown_0850D6DC[4]; // {0x20, 0x40, 0x60, 0x80} extern const u8 gUnknown_0850D710[4]; // {DIR_SOUTH, DIR_NORTH, DIR_WEST, DIR_EAST} extern const u8 gUnknown_0850D770[2]; // {DIR_SOUTH, DIR_NORTH} +extern const u8 gUnknown_0850D790[2]; // {DIR_WEST, DIR_EAST} #endif //POKEEMERALD_DATA3_H -- cgit v1.2.3 From 9f6a4be9f05a46031d20ed7a48398147def2643c Mon Sep 17 00:00:00 2001 From: scnorton Date: Fri, 15 Sep 2017 14:26:01 -0400 Subject: BerryTree --- include/field_effect.h | 80 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 80 insertions(+) create mode 100644 include/field_effect.h (limited to 'include') diff --git a/include/field_effect.h b/include/field_effect.h new file mode 100644 index 000000000..8cf866725 --- /dev/null +++ b/include/field_effect.h @@ -0,0 +1,80 @@ +// +// Created by Scott Norton on 9/15/17. +// + +#ifndef POKEEMERALD_FIELD_EFFECTS_H +#define POKEEMERALD_FIELD_EFFECTS_H + +enum FieldEffectScriptIdx +{ + FLDEFF_EXCLAMATION_MARK_ICON_1, + FLDEFF_USE_CUT_ON_GRASS, + FLDEFF_USE_CUT_ON_TREE, + FLDEFF_SHADOW, + FLDEFF_TALL_GRASS, + FLDEFF_RIPPLE, + FLDEFF_FIELD_MOVE_SHOW_MON, + FLDEFF_ASH, + FLDEFF_SURF_BLOB, + FLDEFF_USE_SURF, + FLDEFF_DUST, + FLDEFF_USE_SECRET_POWER_CAVE, + FLDEFF_JUMP_TALL_GRASS, + FLDEFF_SAND_FOOTPRINTS, + FLDEFF_JUMP_BIG_SPLASH, + FLDEFF_SPLASH, + FLDEFF_JUMP_SMALL_SPLASH, + FLDEFF_LONG_GRASS, + FLDEFF_JUMP_LONG_GRASS, + FLDEFF_UNKNOWN_19, + FLDEFF_UNKNOWN_20, + FLDEFF_UNKNOWN_21, + FLDEFF_UNKNOWN_22, + FLDEFF_BERRY_TREE_GROWTH_SPARKLE, + FLDEFF_DEEP_SAND_FOOTPRINTS, + FLDEFF_POKECENTER_HEAL, + FLDEFF_USE_SECRET_POWER_TREE, + FLDEFF_USE_SECRET_POWER_SHRUB, + FLDEFF_TREE_DISGUISE, + FLDEFF_MOUNTAIN_DISGUISE, + FLDEFF_NPCFLY_OUT, + FLDEFF_USE_FLY, + FLDEFF_FLY_IN, + FLDEFF_EXCLAMATION_MARK_ICON_2, + FLDEFF_FEET_IN_FLOWING_WATER, + FLDEFF_BIKE_TIRE_TRACKS, + FLDEFF_SAND_DISGUISE, + FLDEFF_USE_ROCK_SMASH, + FLDEFF_USE_DIG, + FLDEFF_SAND_PILE, + FLDEFF_USE_STRENGTH, + FLDEFF_SHORT_GRASS, + FLDEFF_HOT_SPRINGS_WATER, + FLDEFF_USE_WATERFALL, + FLDEFF_USE_DIVE, + FLDEFF_POKEBALL, + FLDEFF_HEART_ICON, + FLDEFF_NOP_47, + FLDEFF_NOP_48, + FLDEFF_POP_OUT_OF_ASH, + FLDEFF_LAVARIDGE_GYM_WARP, + FLDEFF_SWEET_SCENT, + FLDEFF_SAND_PILLAR, + FLDEFF_BUBBLES, + FLDEFF_SPARKLE, + FLDEFF_SECRET_POWER_CAVE, + FLDEFF_SECRET_POWER_TREE, + FLDEFF_SECRET_POWER_SHRUB, + FLDEFF_CUT_GRASS, + FLDEFF_FIELD_MOVE_SHOW_MON_INIT, + FLDEFF_USE_FLY_ANCIENT_TOMB, + FLDEFF_PCTURN_ON, + FLDEFF_HALL_OF_FAME_RECORD, + FLDEFF_USE_TELEPORT +}; + +extern u32 gFieldEffectSpawnParams[8]; + +u8 FieldEffectStart(u8); + +#endif //POKEEMERALD_FIELD_EFFECTS_H -- cgit v1.2.3 From 0571056955121d57f7ea691b40f807c8f80ef7b2 Mon Sep 17 00:00:00 2001 From: scnorton Date: Fri, 15 Sep 2017 15:26:51 -0400 Subject: RandomlyLookNorthOrWest --- include/data3.h | 2 ++ 1 file changed, 2 insertions(+) (limited to 'include') diff --git a/include/data3.h b/include/data3.h index 63be33381..9ab32e8ce 100755 --- a/include/data3.h +++ b/include/data3.h @@ -18,8 +18,10 @@ extern const struct PairedPalettes gUnknown_0850BD00[15]; extern const struct PairedPalettes gUnknown_0850BD78[15]; extern const u16 *const gUnknown_0850BE38[2]; extern const s16 gUnknown_0850D6DC[4]; // {0x20, 0x40, 0x60, 0x80} +extern const s16 gUnknown_0850D6EC[4]; extern const u8 gUnknown_0850D710[4]; // {DIR_SOUTH, DIR_NORTH, DIR_WEST, DIR_EAST} extern const u8 gUnknown_0850D770[2]; // {DIR_SOUTH, DIR_NORTH} extern const u8 gUnknown_0850D790[2]; // {DIR_WEST, DIR_EAST} +extern const u8 gUnknown_0850D7F0[2]; // {DIR_NORTH, DIR_WEST} #endif //POKEEMERALD_DATA3_H -- cgit v1.2.3 From 8c6367f997f4c53dfb1819d2cc42953fb7a82eb5 Mon Sep 17 00:00:00 2001 From: scnorton Date: Fri, 15 Sep 2017 15:53:07 -0400 Subject: RandomlyLookNorthOrEast --- include/data3.h | 1 + include/field_map_obj.h | 14 ++++++++++++++ 2 files changed, 15 insertions(+) (limited to 'include') diff --git a/include/data3.h b/include/data3.h index 9ab32e8ce..debca9b73 100755 --- a/include/data3.h +++ b/include/data3.h @@ -23,5 +23,6 @@ extern const u8 gUnknown_0850D710[4]; // {DIR_SOUTH, DIR_NORTH, DIR_WEST, DIR_EA extern const u8 gUnknown_0850D770[2]; // {DIR_SOUTH, DIR_NORTH} extern const u8 gUnknown_0850D790[2]; // {DIR_WEST, DIR_EAST} extern const u8 gUnknown_0850D7F0[2]; // {DIR_NORTH, DIR_WEST} +extern const u8 gUnknown_0850D808[2]; // {DIR_NORTH, DIR_EAST} #endif //POKEEMERALD_DATA3_H diff --git a/include/field_map_obj.h b/include/field_map_obj.h index f91b8f9e3..43446ea84 100755 --- a/include/field_map_obj.h +++ b/include/field_map_obj.h @@ -6,6 +6,20 @@ // Exported struct declarations +enum SpinnerRunnerFollowPatterns { + RUNFOLLOW_ANY, + RUNFOLLOW_NORTH_SOUTH, + RUNFOLLOW_EAST_WEST, + RUNFOLLOW_NORTH_WEST, + RUNFOLLOW_NORTH_EAST, + RUNFOLLOW_SOUTH_WEST, + RUNFOLLOW_SOUTH_EAST, + RUNFOLLOW_NORTH_SOUTH_WEST, + RUNFOLLOW_NORTH_SOUTH_EAST, + RUNFOLLOW_NORTH_EAST_WEST, + RUNFOLLOW_SOUTH_EAST_WEST +}; + // Exported RAM declarations // Exported ROM declarations -- cgit v1.2.3 From b269048369afcb0a4bf5a5f251d9ff7506a3f588 Mon Sep 17 00:00:00 2001 From: scnorton Date: Fri, 15 Sep 2017 15:57:38 -0400 Subject: RandomlyLookSouthOrWest --- include/data3.h | 1 + 1 file changed, 1 insertion(+) (limited to 'include') diff --git a/include/data3.h b/include/data3.h index debca9b73..a1aa86279 100755 --- a/include/data3.h +++ b/include/data3.h @@ -24,5 +24,6 @@ extern const u8 gUnknown_0850D770[2]; // {DIR_SOUTH, DIR_NORTH} extern const u8 gUnknown_0850D790[2]; // {DIR_WEST, DIR_EAST} extern const u8 gUnknown_0850D7F0[2]; // {DIR_NORTH, DIR_WEST} extern const u8 gUnknown_0850D808[2]; // {DIR_NORTH, DIR_EAST} +extern const u8 gUnknown_0850D820[2]; // {DIR_SOUTH, DIR_WEST} #endif //POKEEMERALD_DATA3_H -- cgit v1.2.3 From f6840ba7e7783cb961f6b6afb7ac7eb45717a13f Mon Sep 17 00:00:00 2001 From: scnorton Date: Fri, 15 Sep 2017 16:00:39 -0400 Subject: RandomlyLookSouthOrEast --- include/data3.h | 1 + 1 file changed, 1 insertion(+) (limited to 'include') diff --git a/include/data3.h b/include/data3.h index a1aa86279..9aa8bc469 100755 --- a/include/data3.h +++ b/include/data3.h @@ -25,5 +25,6 @@ extern const u8 gUnknown_0850D790[2]; // {DIR_WEST, DIR_EAST} extern const u8 gUnknown_0850D7F0[2]; // {DIR_NORTH, DIR_WEST} extern const u8 gUnknown_0850D808[2]; // {DIR_NORTH, DIR_EAST} extern const u8 gUnknown_0850D820[2]; // {DIR_SOUTH, DIR_WEST} +extern const u8 gUnknown_0850D838[2]; // {DIR_SOUTH, DIR_EAST} #endif //POKEEMERALD_DATA3_H -- cgit v1.2.3 From 2e1ecdb87711172b1916f3e102315867c5b65d18 Mon Sep 17 00:00:00 2001 From: scnorton Date: Fri, 15 Sep 2017 16:08:01 -0400 Subject: Tridirectional spinners --- include/data3.h | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'include') diff --git a/include/data3.h b/include/data3.h index 9aa8bc469..98d22566e 100755 --- a/include/data3.h +++ b/include/data3.h @@ -26,5 +26,9 @@ extern const u8 gUnknown_0850D7F0[2]; // {DIR_NORTH, DIR_WEST} extern const u8 gUnknown_0850D808[2]; // {DIR_NORTH, DIR_EAST} extern const u8 gUnknown_0850D820[2]; // {DIR_SOUTH, DIR_WEST} extern const u8 gUnknown_0850D838[2]; // {DIR_SOUTH, DIR_EAST} +extern const u8 gUnknown_0850D850[4]; +extern const u8 gUnknown_0850D868[4]; +extern const u8 gUnknown_0850D880[4]; +extern const u8 gUnknown_0850D898[4]; #endif //POKEEMERALD_DATA3_H -- cgit v1.2.3 From 1c6177f67895a20c99d7dfafd43afd83cf3bfff2 Mon Sep 17 00:00:00 2001 From: scnorton Date: Fri, 15 Sep 2017 16:34:03 -0400 Subject: Rotatoes --- include/data3.h | 2 ++ 1 file changed, 2 insertions(+) (limited to 'include') diff --git a/include/data3.h b/include/data3.h index 98d22566e..3cbdcc9ce 100755 --- a/include/data3.h +++ b/include/data3.h @@ -30,5 +30,7 @@ extern const u8 gUnknown_0850D850[4]; extern const u8 gUnknown_0850D868[4]; extern const u8 gUnknown_0850D880[4]; extern const u8 gUnknown_0850D898[4]; +extern const u8 gUnknown_0850D8AC[5]; +extern const u8 gUnknown_0850D8C4[5]; #endif //POKEEMERALD_DATA3_H -- cgit v1.2.3 From 79e8235701de373e7d7cb84162343c487c7e1a5e Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Fri, 15 Sep 2017 21:26:56 -0400 Subject: AlternatelyGoInOppositeDirections --- include/field_map_obj.h | 2 ++ 1 file changed, 2 insertions(+) (limited to 'include') diff --git a/include/field_map_obj.h b/include/field_map_obj.h index 43446ea84..db1ed233f 100755 --- a/include/field_map_obj.h +++ b/include/field_map_obj.h @@ -62,6 +62,8 @@ void npc_coords_shift(struct MapObject *, s16, s16); void sub_808EB08(struct MapObject *, s16, s16); void sub_808F254(u8, u8, u8); void FieldObjectStep(struct MapObject *, struct Sprite *, bool8(struct MapObject *, struct Sprite *)); +u8 GetOppositeDirection(u8); +u8 GetStepInPlaceDelay16AnimId(u8); // Exported data declarations -- cgit v1.2.3 From 54c8580d34b61dfd1db5dd91e301dfc788e564de Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Fri, 15 Sep 2017 22:12:45 -0400 Subject: rom_81700F8 --- include/gpu_regs.h | 15 +++++++++++++++ include/load_save.h | 1 + include/malloc.h | 3 +++ include/new_game.h | 2 ++ include/rom4.h | 15 +++++++++++++++ include/save.h | 4 ++++ 6 files changed, 40 insertions(+) create mode 100644 include/gpu_regs.h create mode 100644 include/rom4.h (limited to 'include') diff --git a/include/gpu_regs.h b/include/gpu_regs.h new file mode 100644 index 000000000..2d47d602c --- /dev/null +++ b/include/gpu_regs.h @@ -0,0 +1,15 @@ +// +// Created by scott on 9/15/2017. +// + +#ifndef POKEEMERALD_GPU_REGS_H +#define POKEEMERALD_GPU_REGS_H + +// Exported type declarations + +// Exported RAM declarations + +// Exported ROM declarations +void ClearGpuRegBits(u8 regOffset, u16 mask); + +#endif //POKEEMERALD_GPU_REGS_H diff --git a/include/load_save.h b/include/load_save.h index 0fedd720b..20848e1a7 100644 --- a/include/load_save.h +++ b/include/load_save.h @@ -18,5 +18,6 @@ void SaveSerializedGame(void); void LoadSerializedGame(void); void LoadPlayerBag(void); void SavePlayerBag(void); +void SetSaveBlocksPointers(u16); #endif // GUARD_LOAD_SAVE_H diff --git a/include/malloc.h b/include/malloc.h index bd870ede3..d26d19242 100644 --- a/include/malloc.h +++ b/include/malloc.h @@ -1,8 +1,11 @@ #ifndef GUARD_MALLOC_H #define GUARD_MALLOC_H +extern u8 gHeap[]; + void *Alloc(u32 size); void *AllocZeroed(u32 size); void Free(void *pointer); +void InitHeap(void *pointer, u32 size); #endif // GUARD_MALLOC_H diff --git a/include/new_game.h b/include/new_game.h index f9ad7fcb8..060279c25 100644 --- a/include/new_game.h +++ b/include/new_game.h @@ -9,5 +9,7 @@ void ClearPokedexFlags(void); void WarpToTruck(void); void NewGameInitData(void); void ResetMiniGamesResults(void); +void sub_808447C(void); +void Sav2_ClearSetDefault(void); #endif // GUARD_NEW_GAME_H diff --git a/include/rom4.h b/include/rom4.h new file mode 100644 index 000000000..1538f5dbc --- /dev/null +++ b/include/rom4.h @@ -0,0 +1,15 @@ +// +// Created by scott on 9/15/2017. +// + +#ifndef POKEEMERALD_ROM4_H +#define POKEEMERALD_ROM4_H + +// Exported type declarations + +// Exported RAM declarations + +// Exported ROM declarations +void sub_8086230(void); + +#endif //POKEEMERALD_ROM4_H diff --git a/include/save.h b/include/save.h index 1d7fdd6e3..e98233c67 100644 --- a/include/save.h +++ b/include/save.h @@ -1,6 +1,8 @@ #ifndef GUARD_SAVE_H #define GUARD_SAVE_H +extern u16 gSaveFileStatus; + struct SaveSectionLocation { void *data; @@ -88,5 +90,7 @@ u16 CalculateChecksum(void *, u16); //u8 unref_sub_8125FF0(u8 *data, u16 size); //u8 unref_sub_8126068(u8 sector, u8 *data, u32 size); //u8 unref_sub_8126080(u8 sector, u8 *data); +u16 sub_815355C(void); +u8 sub_81534D0(u8); #endif // GUARD_SAVE_H -- cgit v1.2.3 From 86df6d10736e1b680e874d7440f478fe5ddf8105 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sat, 16 Sep 2017 08:44:43 -0400 Subject: Field object path movement --- include/data3.h | 1 + 1 file changed, 1 insertion(+) (limited to 'include') diff --git a/include/data3.h b/include/data3.h index 3cbdcc9ce..a5ec3d08f 100755 --- a/include/data3.h +++ b/include/data3.h @@ -32,5 +32,6 @@ extern const u8 gUnknown_0850D880[4]; extern const u8 gUnknown_0850D898[4]; extern const u8 gUnknown_0850D8AC[5]; extern const u8 gUnknown_0850D8C4[5]; +extern const u8 gUnknown_0850D8E8[4]; #endif //POKEEMERALD_DATA3_H -- cgit v1.2.3 From ee3dc1edda08ae6e2bab34b8555ec410f1a930a9 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sat, 16 Sep 2017 09:43:49 -0400 Subject: Some more functions, including some swiss-cheesing that got out of hand --- include/data3.h | 4 ++++ include/field_player_avatar.h | 3 +++ 2 files changed, 7 insertions(+) (limited to 'include') diff --git a/include/data3.h b/include/data3.h index a5ec3d08f..f5efab3b7 100755 --- a/include/data3.h +++ b/include/data3.h @@ -33,5 +33,9 @@ extern const u8 gUnknown_0850D898[4]; extern const u8 gUnknown_0850D8AC[5]; extern const u8 gUnknown_0850D8C4[5]; extern const u8 gUnknown_0850D8E8[4]; +extern bool8 (*const gUnknown_0850DA64[])(struct MapObject *, struct Sprite *, u8, u8); + + +extern const u8 gUnknown_0850DBA0[5]; #endif //POKEEMERALD_DATA3_H diff --git a/include/field_player_avatar.h b/include/field_player_avatar.h index 3a74b3b10..cd00832d5 100644 --- a/include/field_player_avatar.h +++ b/include/field_player_avatar.h @@ -10,5 +10,8 @@ void SetPlayerAvatarExtraStateTransition(u8, u8); u8 GetPlayerAvatarGenderByGraphicsId(u8); bool8 TestPlayerAvatarFlags(u8); void PlayerGetDestCoords(s16 *, s16 *); +u8 player_get_direction_lower_nybble(void); +u8 player_get_direction_upper_nybble(void); +u8 player_get_x22(void); #endif //POKEEMERALD_FIELD_PLAYER_AVATAR_H -- cgit v1.2.3 From 66fbc9753fa8411d715fdad1067eb98c68ace27a Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sat, 16 Sep 2017 13:54:33 -0400 Subject: sub_8091F94 --- include/data3.h | 2 +- include/field_map_obj.h | 1 + include/fieldmap.h | 15 +++++++++++++++ include/rom4.h | 1 + include/rom_81BE66C.h | 2 ++ 5 files changed, 20 insertions(+), 1 deletion(-) create mode 100644 include/fieldmap.h (limited to 'include') diff --git a/include/data3.h b/include/data3.h index f5efab3b7..2b5cc1bc5 100755 --- a/include/data3.h +++ b/include/data3.h @@ -33,7 +33,7 @@ extern const u8 gUnknown_0850D898[4]; extern const u8 gUnknown_0850D8AC[5]; extern const u8 gUnknown_0850D8C4[5]; extern const u8 gUnknown_0850D8E8[4]; -extern bool8 (*const gUnknown_0850DA64[])(struct MapObject *, struct Sprite *, u8, u8); +extern bool8 (*const gUnknown_0850DA64[])(struct MapObject *, struct Sprite *, u8, bool8(u8)); extern const u8 gUnknown_0850DBA0[5]; diff --git a/include/field_map_obj.h b/include/field_map_obj.h index db1ed233f..536d9d1a4 100755 --- a/include/field_map_obj.h +++ b/include/field_map_obj.h @@ -64,6 +64,7 @@ void sub_808F254(u8, u8, u8); void FieldObjectStep(struct MapObject *, struct Sprite *, bool8(struct MapObject *, struct Sprite *)); u8 GetOppositeDirection(u8); u8 GetStepInPlaceDelay16AnimId(u8); +u8 npc_block_way(struct MapObject *, s16, s16, u32); // Exported data declarations diff --git a/include/fieldmap.h b/include/fieldmap.h new file mode 100644 index 000000000..7057fe889 --- /dev/null +++ b/include/fieldmap.h @@ -0,0 +1,15 @@ +// +// Created by scott on 9/16/2017. +// + +#ifndef POKEEMERALD_FIELDMAP_H +#define POKEEMERALD_FIELDMAP_H + +// Exported type declarations + +// Exported RAM declarations + +// Exported ROM declarations +u8 MapGridGetMetatileBehaviorAt(s16, s16); + +#endif //POKEEMERALD_FIELDMAP_H diff --git a/include/rom4.h b/include/rom4.h index 0c7b87353..78dca24c4 100644 --- a/include/rom4.h +++ b/include/rom4.h @@ -26,5 +26,6 @@ extern struct LinkPlayerMapObject gLinkPlayerMapObjects[4]; void strange_npc_table_clear(void); const struct MapHeader *get_mapheader_by_bank_and_number(u8, u8); +void FieldObjectMoveDestCoords(struct MapObject *, u32, s16 *, s16 *); #endif //POKEEMERALD_ROM4_H diff --git a/include/rom_81BE66C.h b/include/rom_81BE66C.h index d92c500d6..e4e39fb08 100644 --- a/include/rom_81BE66C.h +++ b/include/rom_81BE66C.h @@ -6,5 +6,7 @@ #define POKEEMERALD_ROM_81BE66C_H bool32 InTrainerHill(void); +bool8 FieldObjectIsFarawayIslandMew(struct MapObject *); +u32 sub_81D427C(void); #endif //POKEEMERALD_ROM_81BE66C_H -- cgit v1.2.3 From 18e06b480b13143b8870675a763fb2f9854f9679 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sat, 16 Sep 2017 15:13:06 -0400 Subject: Fix header guards --- include/data3.h | 6 +++--- include/event_scripts.h | 6 +++--- include/field_effect.h | 6 +++--- include/field_effect_helpers.h | 6 +++--- include/field_ground_effect.h | 6 +++--- include/field_map_obj.h | 6 +++--- include/field_player_avatar.h | 6 +++--- include/fieldmap.h | 6 +++--- include/map_obj_8097404.h | 6 +++--- include/rom4.h | 6 +++--- include/rom_818CFC8.h | 6 +++--- include/rom_81BE66C.h | 6 +++--- 12 files changed, 36 insertions(+), 36 deletions(-) (limited to 'include') diff --git a/include/data3.h b/include/data3.h index 2b5cc1bc5..b2b19b050 100755 --- a/include/data3.h +++ b/include/data3.h @@ -2,8 +2,8 @@ // Created by Scott Norton on 9/8/17. // -#ifndef POKEEMERALD_DATA3_H -#define POKEEMERALD_DATA3_H +#ifndef GUARD_DATA3_H +#define GUARD_DATA3_H struct PairedPalettes { u16 tag; @@ -38,4 +38,4 @@ extern bool8 (*const gUnknown_0850DA64[])(struct MapObject *, struct Sprite *, u extern const u8 gUnknown_0850DBA0[5]; -#endif //POKEEMERALD_DATA3_H +#endif //GUARD_DATA3_H diff --git a/include/event_scripts.h b/include/event_scripts.h index 967bc196a..f1abdd6f6 100755 --- a/include/event_scripts.h +++ b/include/event_scripts.h @@ -2,10 +2,10 @@ // Created by scott on 9/12/2017. // -#ifndef POKEEMERALD_EVENT_SCRIPTS_H -#define POKEEMERALD_EVENT_SCRIPTS_H +#ifndef GUARD_EVENT_SCRIPTS_H +#define GUARD_EVENT_SCRIPTS_H extern const u8 gUnknown_082766A2[]; extern const u8 gUnknown_082766A6[]; -#endif //POKEEMERALD_EVENT_SCRIPTS_H +#endif //GUARD_EVENT_SCRIPTS_H diff --git a/include/field_effect.h b/include/field_effect.h index 8cf866725..7ec26b3d7 100644 --- a/include/field_effect.h +++ b/include/field_effect.h @@ -2,8 +2,8 @@ // Created by Scott Norton on 9/15/17. // -#ifndef POKEEMERALD_FIELD_EFFECTS_H -#define POKEEMERALD_FIELD_EFFECTS_H +#ifndef GUARD_FIELD_EFFECTS_H +#define GUARD_FIELD_EFFECTS_H enum FieldEffectScriptIdx { @@ -77,4 +77,4 @@ extern u32 gFieldEffectSpawnParams[8]; u8 FieldEffectStart(u8); -#endif //POKEEMERALD_FIELD_EFFECTS_H +#endif //GUARD_FIELD_EFFECTS_H diff --git a/include/field_effect_helpers.h b/include/field_effect_helpers.h index 673d59139..6504a84f1 100644 --- a/include/field_effect_helpers.h +++ b/include/field_effect_helpers.h @@ -2,8 +2,8 @@ // Created by scott on 9/7/2017. // -#ifndef POKEEMERALD_FIELD_EFFECT_HELPERS_H -#define POKEEMERALD_FIELD_EFFECT_HELPERS_H +#ifndef GUARD_FIELD_EFFECT_HELPERS_H +#define GUARD_FIELD_EFFECT_HELPERS_H // Exported type declarations @@ -12,4 +12,4 @@ // Exported ROM declarations u8 sub_8154228(void); -#endif //POKEEMERALD_FIELD_EFFECT_HELPERS_H +#endif //GUARD_FIELD_EFFECT_HELPERS_H diff --git a/include/field_ground_effect.h b/include/field_ground_effect.h index 0c90f50dc..e2dc3a00f 100644 --- a/include/field_ground_effect.h +++ b/include/field_ground_effect.h @@ -2,8 +2,8 @@ // Created by scott on 9/6/2017. // -#ifndef POKEEMERALD_FIELD_GROUND_EFFECT_H -#define POKEEMERALD_FIELD_GROUND_EFFECT_H +#ifndef GUARD_FIELD_GROUND_EFFECT_H +#define GUARD_FIELD_GROUND_EFFECT_H // Exported type declarations @@ -13,4 +13,4 @@ void SetObjectSubpriorityByZCoord(u8, struct Sprite *, u8); void InitObjectPriorityByZCoord(struct Sprite *, u8); -#endif //POKEEMERALD_FIELD_GROUND_EFFECT_H +#endif //GUARD_FIELD_GROUND_EFFECT_H diff --git a/include/field_map_obj.h b/include/field_map_obj.h index 536d9d1a4..f603e9a8e 100755 --- a/include/field_map_obj.h +++ b/include/field_map_obj.h @@ -1,5 +1,5 @@ -#ifndef POKEEMERALD_FIELD_MAP_OBJ_H -#define POKEEMERALD_FIELD_MAP_OBJ_H +#ifndef GUARD_FIELD_MAP_OBJ_H +#define GUARD_FIELD_MAP_OBJ_H #define NUM_OBJECT_GRAPHICS_INFO 239 #define SPRITE_VAR 240 @@ -70,4 +70,4 @@ u8 npc_block_way(struct MapObject *, s16, s16, u32); extern const struct SpriteTemplate *const gFieldEffectObjectTemplatePointers[]; -#endif //POKEEMERALD_FIELD_MAP_OBJ_H +#endif //GUARD_FIELD_MAP_OBJ_H diff --git a/include/field_player_avatar.h b/include/field_player_avatar.h index cd00832d5..a787cf805 100644 --- a/include/field_player_avatar.h +++ b/include/field_player_avatar.h @@ -2,8 +2,8 @@ // Created by Scott Norton on 9/6/17. // -#ifndef POKEEMERALD_FIELD_PLAYER_AVATAR_H -#define POKEEMERALD_FIELD_PLAYER_AVATAR_H +#ifndef GUARD_FIELD_PLAYER_AVATAR_H +#define GUARD_FIELD_PLAYER_AVATAR_H void ClearPlayerAvatarInfo(void); void SetPlayerAvatarExtraStateTransition(u8, u8); @@ -14,4 +14,4 @@ u8 player_get_direction_lower_nybble(void); u8 player_get_direction_upper_nybble(void); u8 player_get_x22(void); -#endif //POKEEMERALD_FIELD_PLAYER_AVATAR_H +#endif //GUARD_FIELD_PLAYER_AVATAR_H diff --git a/include/fieldmap.h b/include/fieldmap.h index 7057fe889..4c75c3f40 100644 --- a/include/fieldmap.h +++ b/include/fieldmap.h @@ -2,8 +2,8 @@ // Created by scott on 9/16/2017. // -#ifndef POKEEMERALD_FIELDMAP_H -#define POKEEMERALD_FIELDMAP_H +#ifndef GUARD_FIELDMAP_H +#define GUARD_FIELDMAP_H // Exported type declarations @@ -12,4 +12,4 @@ // Exported ROM declarations u8 MapGridGetMetatileBehaviorAt(s16, s16); -#endif //POKEEMERALD_FIELDMAP_H +#endif //GUARD_FIELDMAP_H diff --git a/include/map_obj_8097404.h b/include/map_obj_8097404.h index 6296febe4..e3b2b1efc 100644 --- a/include/map_obj_8097404.h +++ b/include/map_obj_8097404.h @@ -2,8 +2,8 @@ // Created by scott on 9/7/2017. // -#ifndef POKEEMERALD_MAP_OBJ_8097404_H -#define POKEEMERALD_MAP_OBJ_8097404_H +#ifndef GUARD_MAP_OBJ_8097404_H +#define GUARD_MAP_OBJ_8097404_H // Exported type declarations @@ -12,4 +12,4 @@ // Exported ROM declarations void sub_8097AC8(struct Sprite *); -#endif //POKEEMERALD_MAP_OBJ_8097404_H +#endif //GUARD_MAP_OBJ_8097404_H diff --git a/include/rom4.h b/include/rom4.h index 78dca24c4..d4ece109e 100644 --- a/include/rom4.h +++ b/include/rom4.h @@ -1,6 +1,6 @@ -#ifndef POKEEMERALD_ROM4_H -#define POKEEMERALD_ROM4_H +#ifndef GUARD_ROM4_H +#define GUARD_ROM4_H struct UnkPlayerStruct { @@ -28,4 +28,4 @@ void strange_npc_table_clear(void); const struct MapHeader *get_mapheader_by_bank_and_number(u8, u8); void FieldObjectMoveDestCoords(struct MapObject *, u32, s16 *, s16 *); -#endif //POKEEMERALD_ROM4_H +#endif //GUARD_ROM4_H diff --git a/include/rom_818CFC8.h b/include/rom_818CFC8.h index 9b6f96893..1d0626b2b 100644 --- a/include/rom_818CFC8.h +++ b/include/rom_818CFC8.h @@ -2,10 +2,10 @@ // Created by Scott Norton on 9/6/17. // -#ifndef POKEEMERALD_ROM_818CFC8_H -#define POKEEMERALD_ROM_818CFC8_H +#ifndef GUARD_ROM_818CFC8_H +#define GUARD_ROM_818CFC8_H bool8 InBattlePyramid(void); u8 sub_81AAA40(void); -#endif //POKEEMERALD_ROM_818CFC8_H +#endif //GUARD_ROM_818CFC8_H diff --git a/include/rom_81BE66C.h b/include/rom_81BE66C.h index e4e39fb08..5b4f80249 100644 --- a/include/rom_81BE66C.h +++ b/include/rom_81BE66C.h @@ -2,11 +2,11 @@ // Created by Scott Norton on 9/6/17. // -#ifndef POKEEMERALD_ROM_81BE66C_H -#define POKEEMERALD_ROM_81BE66C_H +#ifndef GUARD_ROM_81BE66C_H +#define GUARD_ROM_81BE66C_H bool32 InTrainerHill(void); bool8 FieldObjectIsFarawayIslandMew(struct MapObject *); u32 sub_81D427C(void); -#endif //POKEEMERALD_ROM_81BE66C_H +#endif //GUARD_ROM_81BE66C_H -- cgit v1.2.3 From 052c9f0234a6034b9db8fce30f779b95b8869df5 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sat, 16 Sep 2017 15:13:26 -0400 Subject: Fix header guards --- include/gpu_regs.h | 6 +++--- include/rom4.h | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) (limited to 'include') diff --git a/include/gpu_regs.h b/include/gpu_regs.h index 2d47d602c..28b97fb6e 100644 --- a/include/gpu_regs.h +++ b/include/gpu_regs.h @@ -2,8 +2,8 @@ // Created by scott on 9/15/2017. // -#ifndef POKEEMERALD_GPU_REGS_H -#define POKEEMERALD_GPU_REGS_H +#ifndef GUARD_GPU_REGS_H +#define GUARD_GPU_REGS_H // Exported type declarations @@ -12,4 +12,4 @@ // Exported ROM declarations void ClearGpuRegBits(u8 regOffset, u16 mask); -#endif //POKEEMERALD_GPU_REGS_H +#endif //GUARD_GPU_REGS_H diff --git a/include/rom4.h b/include/rom4.h index 1538f5dbc..3164c81ea 100644 --- a/include/rom4.h +++ b/include/rom4.h @@ -2,8 +2,8 @@ // Created by scott on 9/15/2017. // -#ifndef POKEEMERALD_ROM4_H -#define POKEEMERALD_ROM4_H +#ifndef GUARD_ROM4_H +#define GUARD_ROM4_H // Exported type declarations @@ -12,4 +12,4 @@ // Exported ROM declarations void sub_8086230(void); -#endif //POKEEMERALD_ROM4_H +#endif //GUARD_ROM4_H -- cgit v1.2.3 From 12885ca371f0b89d7df6decc133a14452ab567e0 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sat, 16 Sep 2017 16:40:00 -0400 Subject: CopyPlayer2 --- include/metatile_behavior.h | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 include/metatile_behavior.h (limited to 'include') diff --git a/include/metatile_behavior.h b/include/metatile_behavior.h new file mode 100644 index 000000000..5ed36c690 --- /dev/null +++ b/include/metatile_behavior.h @@ -0,0 +1,11 @@ +#ifndef GUARD_METATILE_BEHAVIOR_H +#define GUARD_METATILE_BEHAVIOR_H + +// Exported type declarations + +// Exported RAM declarations + +// Exported ROM declarations +bool8 sub_8088E64(u8); + +#endif //GUARD_METATILE_BEHAVIOR_H -- cgit v1.2.3 From 34950dbd13f9ec9e4616b3cb33a9b1aae912eee2 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sat, 16 Sep 2017 17:34:41 -0400 Subject: remaining field object step callbacks --- include/field_map_obj.h | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'include') diff --git a/include/field_map_obj.h b/include/field_map_obj.h index f603e9a8e..03ba36e87 100755 --- a/include/field_map_obj.h +++ b/include/field_map_obj.h @@ -63,7 +63,10 @@ void sub_808EB08(struct MapObject *, s16, s16); void sub_808F254(u8, u8, u8); void FieldObjectStep(struct MapObject *, struct Sprite *, bool8(struct MapObject *, struct Sprite *)); u8 GetOppositeDirection(u8); -u8 GetStepInPlaceDelay16AnimId(u8); +u8 GetStepInPlaceDelay4AnimId(u32); +u8 GetStepInPlaceDelay8AnimId(u32); +u8 GetStepInPlaceDelay16AnimId(u32); +u8 GetStepInPlaceDelay32AnimId(u32); u8 npc_block_way(struct MapObject *, s16, s16, u32); // Exported data declarations -- cgit v1.2.3 From ca88036ebe4441a2afc7267da1fda2a4b68820a8 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sat, 16 Sep 2017 18:29:14 -0400 Subject: npc_set_running_behaviour_etc --- include/global.fieldmap.h | 1 + 1 file changed, 1 insertion(+) (limited to 'include') diff --git a/include/global.fieldmap.h b/include/global.fieldmap.h index f8955b9fd..4a587cf57 100644 --- a/include/global.fieldmap.h +++ b/include/global.fieldmap.h @@ -299,6 +299,7 @@ struct MapObject2 /*0x1F*/ u8 mapobj_unk_1F; /*0x20*/ u8 mapobj_unk_20; /*0x21*/ u8 mapobj_unk_21; + /*0x22*/ u8 animId; /*size = 0x24*/ }; -- cgit v1.2.3 From 5812bc4ebe83bb80294bbb40846ae6fb1c76e5bf Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sat, 16 Sep 2017 18:33:38 -0400 Subject: npc_block_way__next_tile --- include/data3.h | 1 - include/field_map_obj.h | 1 + 2 files changed, 1 insertion(+), 1 deletion(-) (limited to 'include') diff --git a/include/data3.h b/include/data3.h index b2b19b050..6d9bbd084 100755 --- a/include/data3.h +++ b/include/data3.h @@ -35,7 +35,6 @@ extern const u8 gUnknown_0850D8C4[5]; extern const u8 gUnknown_0850D8E8[4]; extern bool8 (*const gUnknown_0850DA64[])(struct MapObject *, struct Sprite *, u8, bool8(u8)); - extern const u8 gUnknown_0850DBA0[5]; #endif //GUARD_DATA3_H diff --git a/include/field_map_obj.h b/include/field_map_obj.h index 03ba36e87..a952cfac6 100755 --- a/include/field_map_obj.h +++ b/include/field_map_obj.h @@ -68,6 +68,7 @@ u8 GetStepInPlaceDelay8AnimId(u32); u8 GetStepInPlaceDelay16AnimId(u32); u8 GetStepInPlaceDelay32AnimId(u32); u8 npc_block_way(struct MapObject *, s16, s16, u32); +void MoveCoords(u8, s16 *, s16 *); // Exported data declarations -- cgit v1.2.3 From fedbcd7bb7202f37f4a3a017a2f4c1fe296a6ae3 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sat, 16 Sep 2017 18:42:35 -0400 Subject: npc_block_way --- include/field_ground_effect.h | 1 + include/fieldmap.h | 3 +++ 2 files changed, 4 insertions(+) (limited to 'include') diff --git a/include/field_ground_effect.h b/include/field_ground_effect.h index e2dc3a00f..398265b87 100644 --- a/include/field_ground_effect.h +++ b/include/field_ground_effect.h @@ -12,5 +12,6 @@ // Exported ROM declarations void SetObjectSubpriorityByZCoord(u8, struct Sprite *, u8); void InitObjectPriorityByZCoord(struct Sprite *, u8); +bool8 IsZCoordMismatchAt(u8, s16, s16); #endif //GUARD_FIELD_GROUND_EFFECT_H diff --git a/include/fieldmap.h b/include/fieldmap.h index 511c1061f..7174d98cc 100644 --- a/include/fieldmap.h +++ b/include/fieldmap.h @@ -12,5 +12,8 @@ // Exported ROM declarations u8 MapGridGetMetatileBehaviorAt(s16, s16); void GetCameraCoords(u16*, u16*); +bool8 MapGridIsImpassableAt(s16, s16); +s32 GetMapBorderIdAt(s16, s16); +bool32 CanCameraMoveInDirection(u8); #endif //GUARD_FIELDMAP_H -- cgit v1.2.3 From c98299386077d8a0c34150405ab0458f52fc2015 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sat, 16 Sep 2017 21:08:44 -0400 Subject: IsMetatileDirectionallyImpassable --- include/data3.h | 2 ++ 1 file changed, 2 insertions(+) (limited to 'include') diff --git a/include/data3.h b/include/data3.h index 6d9bbd084..0c7de1272 100755 --- a/include/data3.h +++ b/include/data3.h @@ -34,6 +34,8 @@ extern const u8 gUnknown_0850D8AC[5]; extern const u8 gUnknown_0850D8C4[5]; extern const u8 gUnknown_0850D8E8[4]; extern bool8 (*const gUnknown_0850DA64[])(struct MapObject *, struct Sprite *, u8, bool8(u8)); +extern bool8 (*const gUnknown_0850DB5C[])(u8); +extern bool8 (*const gUnknown_0850DB6C[])(u8); extern const u8 gUnknown_0850DBA0[5]; -- cgit v1.2.3 From 951acc8c31029327775e90e21ba6c92c24ff8b3b Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sat, 16 Sep 2017 21:29:04 -0400 Subject: CheckForCollisionBetweenFieldObjects --- include/field_ground_effect.h | 1 + 1 file changed, 1 insertion(+) (limited to 'include') diff --git a/include/field_ground_effect.h b/include/field_ground_effect.h index 398265b87..b7242ee7c 100644 --- a/include/field_ground_effect.h +++ b/include/field_ground_effect.h @@ -13,5 +13,6 @@ void SetObjectSubpriorityByZCoord(u8, struct Sprite *, u8); void InitObjectPriorityByZCoord(struct Sprite *, u8); bool8 IsZCoordMismatchAt(u8, s16, s16); +bool8 AreZCoordsCompatible(u8, u8); #endif //GUARD_FIELD_GROUND_EFFECT_H -- cgit v1.2.3 From f03c0dc3b4f763c65fefaa8cdf10a06b2fd00dc2 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sat, 16 Sep 2017 21:39:29 -0400 Subject: MoveCoords --- include/data3.h | 1 + 1 file changed, 1 insertion(+) (limited to 'include') diff --git a/include/data3.h b/include/data3.h index 0c7de1272..d5bccf296 100755 --- a/include/data3.h +++ b/include/data3.h @@ -36,6 +36,7 @@ extern const u8 gUnknown_0850D8E8[4]; extern bool8 (*const gUnknown_0850DA64[])(struct MapObject *, struct Sprite *, u8, bool8(u8)); extern bool8 (*const gUnknown_0850DB5C[])(u8); extern bool8 (*const gUnknown_0850DB6C[])(u8); +extern struct Coords16 gUnknown_0850DB7C[4]; extern const u8 gUnknown_0850DBA0[5]; -- cgit v1.2.3 From 3f2c6556cb25c178b29b016dd87bb706a7fb631c Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sat, 16 Sep 2017 21:59:14 -0400 Subject: sub_8092FF0 --- include/field_camera.h | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 include/field_camera.h (limited to 'include') diff --git a/include/field_camera.h b/include/field_camera.h new file mode 100644 index 000000000..48c182c8e --- /dev/null +++ b/include/field_camera.h @@ -0,0 +1,13 @@ +#ifndef GUARD_FIELD_CAMERA_H +#define GUARD_FIELD_CAMERA_H + +// Exported type declarations + +// Exported RAM declarations + +extern u16 gUnknown_03005DEC; +extern u16 gUnknown_03005DE8; + +// Exported ROM declarations + +#endif //GUARD_FIELD_CAMERA_H -- cgit v1.2.3 From 44e590add0b4f630397b9f9e206a9a66d1a41ccc Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sat, 16 Sep 2017 22:15:54 -0400 Subject: sub_8093038 --- include/field_camera.h | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'include') diff --git a/include/field_camera.h b/include/field_camera.h index 48c182c8e..9fbaac6a2 100644 --- a/include/field_camera.h +++ b/include/field_camera.h @@ -3,6 +3,18 @@ // Exported type declarations +struct CameraObject +{ + void (*callback)(struct CameraObject *); + u32 unk4; + s32 unk8; + s32 unkC; + s32 x; + s32 y; +}; + +extern struct CameraObject gUnknown_03005DD0; + // Exported RAM declarations extern u16 gUnknown_03005DEC; -- cgit v1.2.3 From 812ad017e892ff3d93b3df8310335287a556e871 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sat, 16 Sep 2017 22:19:23 -0400 Subject: sub_80930E0 --- include/field_map_obj.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'include') diff --git a/include/field_map_obj.h b/include/field_map_obj.h index a952cfac6..23749c91a 100755 --- a/include/field_map_obj.h +++ b/include/field_map_obj.h @@ -37,7 +37,7 @@ void pal_patch_for_npc(u16, u8); void sub_808E16C(s16, s16); void sub_8092FF0(s16, s16, s16 *, s16 *); u8 FieldObjectDirectionToImageAnimId(u8); -void sub_80930E0(s16 *, s16 *, u8, u8); +void sub_80930E0(s16 *, s16 *, s16, s16); void FieldObjectClearAnim(struct MapObject *); void SpawnFieldObjectsInView(s16, s16); u8 sprite_new(u8, u8, s16, s16, u8, u8); -- cgit v1.2.3 From eb7e52d2a89d0d491722bcccaf28bfd7709bf371 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sat, 16 Sep 2017 22:44:47 -0400 Subject: Deswiss the cheese --- include/map_obj_8097404.h | 1 + 1 file changed, 1 insertion(+) (limited to 'include') diff --git a/include/map_obj_8097404.h b/include/map_obj_8097404.h index e3b2b1efc..851739114 100644 --- a/include/map_obj_8097404.h +++ b/include/map_obj_8097404.h @@ -11,5 +11,6 @@ // Exported ROM declarations void sub_8097AC8(struct Sprite *); +void npc_sync_anim_pause_bits(struct MapObject *); #endif //GUARD_MAP_OBJ_8097404_H -- cgit v1.2.3 From 5f189fa53b6791c5d0e24b85228797606f719bdc Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sat, 16 Sep 2017 23:05:53 -0400 Subject: state_to_direction memes --- include/data3.h | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'include') diff --git a/include/data3.h b/include/data3.h index d5bccf296..a19aa6fe8 100755 --- a/include/data3.h +++ b/include/data3.h @@ -36,7 +36,9 @@ extern const u8 gUnknown_0850D8E8[4]; extern bool8 (*const gUnknown_0850DA64[])(struct MapObject *, struct Sprite *, u8, bool8(u8)); extern bool8 (*const gUnknown_0850DB5C[])(u8); extern bool8 (*const gUnknown_0850DB6C[])(u8); -extern struct Coords16 gUnknown_0850DB7C[4]; +extern const struct Coords16 gUnknown_0850DB7C[4]; +extern const u8 gUnknown_0850DC2F[4][4]; +extern const u8 gUnknown_0850DC3F[4][4]; extern const u8 gUnknown_0850DBA0[5]; -- cgit v1.2.3 From 4e22f1e55fd43ebfd4c94dc7c22aa6b403249370 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sat, 16 Sep 2017 23:11:09 -0400 Subject: MapObjectExec***Anim --- include/data3.h | 2 ++ 1 file changed, 2 insertions(+) (limited to 'include') diff --git a/include/data3.h b/include/data3.h index a19aa6fe8..ef6f5193d 100755 --- a/include/data3.h +++ b/include/data3.h @@ -42,4 +42,6 @@ extern const u8 gUnknown_0850DC3F[4][4]; extern const u8 gUnknown_0850DBA0[5]; +extern bool8 (*const *const gUnknown_0850DC50[])(struct MapObject *, struct Sprite *); + #endif //GUARD_DATA3_H -- cgit v1.2.3 From 432924e56d99d37eb721a03907b0eab943458b60 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sat, 16 Sep 2017 23:31:43 -0400 Subject: npc_apply_direction --- include/map_obj_8097404.h | 3 +++ 1 file changed, 3 insertions(+) (limited to 'include') diff --git a/include/map_obj_8097404.h b/include/map_obj_8097404.h index 851739114..afa7a3bae 100644 --- a/include/map_obj_8097404.h +++ b/include/map_obj_8097404.h @@ -8,9 +8,12 @@ // Exported type declarations // Exported RAM declarations +extern void *gUnknown_020375B8; // Exported ROM declarations void sub_8097AC8(struct Sprite *); void npc_sync_anim_pause_bits(struct MapObject *); +void oamt_npc_ministep_reset(struct Sprite *, u8, u8); +u8 sub_8097F78(struct MapObject *); #endif //GUARD_MAP_OBJ_8097404_H -- cgit v1.2.3 From 529ccf9a960209333b21aab59b620330370cc791 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sat, 16 Sep 2017 23:49:31 -0400 Subject: do_go_anim --- include/data3.h | 1 + 1 file changed, 1 insertion(+) (limited to 'include') diff --git a/include/data3.h b/include/data3.h index ef6f5193d..9cd6e2fe1 100755 --- a/include/data3.h +++ b/include/data3.h @@ -43,5 +43,6 @@ extern const u8 gUnknown_0850DC3F[4][4]; extern const u8 gUnknown_0850DBA0[5]; extern bool8 (*const *const gUnknown_0850DC50[])(struct MapObject *, struct Sprite *); +extern u8 (*const gUnknown_0850DEE8[5])(u8); #endif //GUARD_DATA3_H -- cgit v1.2.3 From 0582b5cb909298b49e7f0588c042fb20a951be44 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sun, 17 Sep 2017 08:05:33 -0400 Subject: npc_obj_ministep_stop_on_arrival --- include/field_ground_effect.h | 4 ++++ include/field_map_obj.h | 2 ++ include/map_obj_8097404.h | 1 + 3 files changed, 7 insertions(+) (limited to 'include') diff --git a/include/field_ground_effect.h b/include/field_ground_effect.h index b7242ee7c..63b67ceaf 100644 --- a/include/field_ground_effect.h +++ b/include/field_ground_effect.h @@ -14,5 +14,9 @@ void SetObjectSubpriorityByZCoord(u8, struct Sprite *, u8); void InitObjectPriorityByZCoord(struct Sprite *, u8); bool8 IsZCoordMismatchAt(u8, s16, s16); bool8 AreZCoordsCompatible(u8, u8); +void FieldObjectUpdateSubpriority(struct MapObject *, struct Sprite *); +void DoGroundEffects_OnSpawn(struct MapObject *, struct Sprite *); +void DoGroundEffects_OnBeginStep(struct MapObject *, struct Sprite *); +void DoGroundEffects_OnFinishStep(struct MapObject *, struct Sprite *); #endif //GUARD_FIELD_GROUND_EFFECT_H diff --git a/include/field_map_obj.h b/include/field_map_obj.h index 23749c91a..40cc64054 100755 --- a/include/field_map_obj.h +++ b/include/field_map_obj.h @@ -39,6 +39,7 @@ void sub_8092FF0(s16, s16, s16 *, s16 *); u8 FieldObjectDirectionToImageAnimId(u8); void sub_80930E0(s16 *, s16 *, s16, s16); void FieldObjectClearAnim(struct MapObject *); +void FieldObjectClearAnimIfSpecialAnimActive(struct MapObject *); void SpawnFieldObjectsInView(s16, s16); u8 sprite_new(u8, u8, s16, s16, u8, u8); u8 AddPseudoFieldObject(u16, void (*)(struct Sprite *), s16, s16, u8); @@ -69,6 +70,7 @@ u8 GetStepInPlaceDelay16AnimId(u32); u8 GetStepInPlaceDelay32AnimId(u32); u8 npc_block_way(struct MapObject *, s16, s16, u32); void MoveCoords(u8, s16 *, s16 *); +bool8 FieldObjectIsSpecialAnimActive(struct MapObject *); // Exported data declarations diff --git a/include/map_obj_8097404.h b/include/map_obj_8097404.h index afa7a3bae..e5e6fba70 100644 --- a/include/map_obj_8097404.h +++ b/include/map_obj_8097404.h @@ -15,5 +15,6 @@ void sub_8097AC8(struct Sprite *); void npc_sync_anim_pause_bits(struct MapObject *); void oamt_npc_ministep_reset(struct Sprite *, u8, u8); u8 sub_8097F78(struct MapObject *); +bool8 obj_npc_ministep(struct Sprite *sprite); #endif //GUARD_MAP_OBJ_8097404_H -- cgit v1.2.3 From a9a66b06ef9f747d55be846dfc02ee90a39deddb Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Sun, 17 Sep 2017 14:10:32 +0200 Subject: start porting cam's port of battle3 --- include/battle.h | 172 +++++++++++++++++++++++++++++++++++++++++++------ include/hall_of_fame.h | 9 +++ 2 files changed, 162 insertions(+), 19 deletions(-) create mode 100644 include/hall_of_fame.h (limited to 'include') diff --git a/include/battle.h b/include/battle.h index 51f9298cc..4def33967 100644 --- a/include/battle.h +++ b/include/battle.h @@ -1,6 +1,8 @@ #ifndef GUARD_BATTLE_H #define GUARD_BATTLE_H +#define BATTLE_BANKS_COUNT 4 + #define BATTLE_TYPE_DOUBLE 0x0001 #define BATTLE_TYPE_LINK 0x0002 #define BATTLE_TYPE_WILD 0x0004 @@ -171,7 +173,6 @@ #define MAX_TRAINER_ITEMS 4 #define MAX_MON_MOVES 4 -#define MAX_BANKS_BATTLE 4 #define WEATHER_RAIN_TEMPORARY (1 << 0) #define WEATHER_RAIN_DOWNPOUR (1 << 1) @@ -186,8 +187,26 @@ #define WEATHER_HAIL (1 << 7) #define WEATHER_HAIL_ANY ((WEATHER_HAIL)) -u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg); -u8 GetBankSide(u8 bank); +#define REQUEST_ALL_BATTLE 0x0 +#define REQUEST_SPECIES_BATTLE 0x1 +#define REQUEST_HELDITEM_BATTLE 0x2 +#define REQUEST_MOVES_PP_BATTLE 0x3 +#define REQUEST_PPMOVE1_BATTLE 0x9 +#define REQUEST_PPMOVE2_BATTLE 0xA +#define REQUEST_PPMOVE3_BATTLE 0xB +#define REQUEST_PPMOVE4_BATTLE 0xC +#define REQUEST_STATUS_BATTLE 0x28 +#define REQUEST_HP_BATTLE 0x2A + +// array entries for battle communication +#define MOVE_EFFECT_BYTE 0x3 +#define MULTISTRING_CHOOSER 0x5 +#define MSG_DISPLAY 0x7 + +// functions + +extern u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg); +extern u8 GetBankSide(u8 bank); struct Trainer { @@ -248,9 +267,102 @@ struct DisableStruct /*0x1A*/ u8 unk1A[2]; }; -extern struct DisableStruct gDisableStructs[]; +extern struct DisableStruct gDisableStructs[BATTLE_BANKS_COUNT]; + +struct ProtectStruct +{ + /* field_0 */ + u32 protected:1; + u32 endured:1; + u32 onlyStruggle:1; + u32 helpingHand:1; + u32 bounceMove:1; + u32 stealMove:1; + u32 flag0Unknown:1; + u32 prlzImmobility:1; + /* field_1 */ + u32 confusionSelfDmg:1; + u32 notEffective:1; + u32 chargingTurn:1; + u32 fleeFlag:2; // for RunAway and Smoke Ball + u32 usedImprisionedMove:1; + u32 loveImmobility:1; + u32 usedDisabledMove:1; + /* field_2 */ + u32 usedTauntedMove:1; // 0x1 + u32 flag2Unknown:1; // 0x2 + u32 flinchImmobility:1; // 0x4 + u32 notFirstStrike:1; // 0x8 + u32 flag_x10 : 1; // 0x10 + u32 flag_x20 : 1; // 0x20 + u32 flag_x40 : 1; // 0x40 + u32 flag_x80 : 1; // 0x80 + /* field_3 */ + u32 field3 : 8; + + /* field_4 */ u32 physicalDmg; + /* field_8 */ u32 specialDmg; + /* field_C */ u8 physicalBank; + /* field_D */ u8 specialBank; + /* field_E */ u16 fieldE; +}; + +extern struct ProtectStruct gProtectStructs[BATTLE_BANKS_COUNT]; + +struct SpecialStatus +{ + u8 statLowered : 1; + u8 lightningRodRedirected : 1; + u8 restoredBankSprite: 1; + u8 intimidatedPoke : 1; + u8 traced : 1; + u8 flag20 : 1; + u8 flag40 : 1; + u8 focusBanded : 1; + u8 field1[3]; + s32 moveturnLostHP; + s32 moveturnLostHP_physical; + s32 moveturnLostHP_special; + u8 moveturnPhysicalBank; + u8 moveturnSpecialBank; + u8 field12; + u8 field13; +}; + +extern struct SpecialStatus gSpecialStatuses[BATTLE_BANKS_COUNT]; + +struct SideTimer +{ + /*0x00*/ u8 reflectTimer; + /*0x01*/ u8 reflectBank; + /*0x02*/ u8 lightscreenTimer; + /*0x03*/ u8 lightscreenBank; + /*0x04*/ u8 mistTimer; + /*0x05*/ u8 mistBank; + /*0x06*/ u8 safeguardTimer; + /*0x07*/ u8 safeguardBank; + /*0x08*/ u8 followmeTimer; + /*0x09*/ u8 followmeTarget; + /*0x0A*/ u8 spikesAmount; + /*0x0B*/ u8 fieldB; +}; + +extern struct SideTimer gSideTimers[]; + +struct WishFutureKnock +{ + u8 futureSightCounter[BATTLE_BANKS_COUNT]; + u8 futureSightAttacker[BATTLE_BANKS_COUNT]; + s32 futureSightDmg[BATTLE_BANKS_COUNT]; + u16 futureSightMove[BATTLE_BANKS_COUNT]; + u8 wishCounter[BATTLE_BANKS_COUNT]; + u8 wishUserID[BATTLE_BANKS_COUNT]; + u8 weatherDuration; + u16 knockedOffPokes; +}; + +extern struct WishFutureKnock gWishFutureKnock; -//size should be 0x1C struct AI_ThinkingStruct { u8 aiState; @@ -267,23 +379,22 @@ struct AI_ThinkingStruct struct UsedMoves { - u16 moves[4]; - u16 unknown[4]; + u16 moves[BATTLE_BANKS_COUNT]; + u16 unknown[BATTLE_BANKS_COUNT]; }; -//size should be 0x54 struct BattleHistory { - struct UsedMoves usedMoves[4]; - u8 abilities[4]; - u8 itemEffects[4]; - u16 TrainerItems[4]; + struct UsedMoves usedMoves[BATTLE_BANKS_COUNT]; + u8 abilities[BATTLE_BANKS_COUNT]; + u8 itemEffects[BATTLE_BANKS_COUNT]; + u16 TrainerItems[BATTLE_BANKS_COUNT]; u8 itemsNo; }; struct BattleScriptsStack { - u8 *ptr[8]; + const u8 *ptr[8]; u8 size; }; @@ -301,6 +412,8 @@ struct BattleResources extern struct BattleResources* gBattleResources; +#define BATTLESCRIPTS_STACK (gBattleResources->battleScriptsStack) + struct BattleResults { u8 playerFaintCounter; // 0x0 @@ -331,12 +444,11 @@ extern struct BattleResults gBattleResults; struct BattleStruct { - u8 field_1; - u8 field_2; - u8 field_3; - u8 field_4; - u8 wrappedMove1[4]; - u8 wrappedMove2[4]; + u8 turnEffectsTracker; + u8 turnEffectsBank; + u8 filler2; + u8 turncountersTracker; + u8 wrappedMove[8]; // ask gamefreak why they declared it that way u8 moveTarget[4]; u8 expGetterId; u8 field_11; @@ -494,6 +606,20 @@ struct BattleStruct u8 field_B6; u8 field_B7; u16 usedHeldItems[4]; + u8 field_C0[8]; + u16 choicedMove[4]; + u8 field_D0[8]; + u8 intimidateBank; + u8 fillerD9[0xDA-0xD9]; + u8 unkDA; + u8 turnSideTracker; + u8 fillerDC[0xDF-0xDC]; + u8 unkDF; + u8 fillerE0[0x1A0-0xE0]; + u8 unk1A0; + u8 unk1A1; + u8 filler1A2; + u8 atkCancellerTracker; }; extern struct BattleStruct* gBattleStruct; @@ -513,6 +639,14 @@ struct BattleScripting u8 field_D; u8 dmgMultiplier; u8 field_F; + u8 animArg1; + u8 animArg2; + u8 field_12; + u8 field_13; + u8 atk49_state; + u8 field_15; + u8 field_16; + u8 bank; }; extern struct BattleScripting gBattleScripting; diff --git a/include/hall_of_fame.h b/include/hall_of_fame.h new file mode 100644 index 000000000..62e84c39e --- /dev/null +++ b/include/hall_of_fame.h @@ -0,0 +1,9 @@ +#ifndef GUARD_HALL_OF_FAME_H +#define GUARD_HALL_OF_FAME_H + +void sub_8141F90(void); +void sub_8143648(u16 paletteTag, u8 arg1); +void sub_81428CC(void); +void sub_8143680(int, u8); + +#endif // GUARD_HALL_OF_FAME_H -- cgit v1.2.3 From 6439551e1a1effa0282145627aaef934a1b4b797 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sun, 17 Sep 2017 08:20:42 -0400 Subject: Another chunk of functions, including some expanded from macros --- include/map_obj_8097404.h | 2 ++ 1 file changed, 2 insertions(+) (limited to 'include') diff --git a/include/map_obj_8097404.h b/include/map_obj_8097404.h index e5e6fba70..85153f941 100644 --- a/include/map_obj_8097404.h +++ b/include/map_obj_8097404.h @@ -16,5 +16,7 @@ void npc_sync_anim_pause_bits(struct MapObject *); void oamt_npc_ministep_reset(struct Sprite *, u8, u8); u8 sub_8097F78(struct MapObject *); bool8 obj_npc_ministep(struct Sprite *sprite); +bool8 sub_80976EC(struct Sprite *sprite); +void sub_80976DC(struct Sprite *, u8); #endif //GUARD_MAP_OBJ_8097404_H -- cgit v1.2.3 From bf9a00250ba8f3d986b4829c0728ba620b58ec1c Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sun, 17 Sep 2017 08:38:00 -0400 Subject: maybe_shadow_1 which may or may not be a shadow --- include/data3.h | 1 + include/map_obj_8097404.h | 2 ++ 2 files changed, 3 insertions(+) (limited to 'include') diff --git a/include/data3.h b/include/data3.h index 9cd6e2fe1..b9ddf3e55 100755 --- a/include/data3.h +++ b/include/data3.h @@ -44,5 +44,6 @@ extern const u8 gUnknown_0850DBA0[5]; extern bool8 (*const *const gUnknown_0850DC50[])(struct MapObject *, struct Sprite *); extern u8 (*const gUnknown_0850DEE8[5])(u8); +extern const s16 gUnknown_0850DFBC[3]; #endif //GUARD_DATA3_H diff --git a/include/map_obj_8097404.h b/include/map_obj_8097404.h index 85153f941..707860dbd 100644 --- a/include/map_obj_8097404.h +++ b/include/map_obj_8097404.h @@ -18,5 +18,7 @@ u8 sub_8097F78(struct MapObject *); bool8 obj_npc_ministep(struct Sprite *sprite); bool8 sub_80976EC(struct Sprite *sprite); void sub_80976DC(struct Sprite *, u8); +void sub_809783C(struct Sprite *, u8, u8, u8); +void DoShadowFieldEffect(struct MapObject *); #endif //GUARD_MAP_OBJ_8097404_H -- cgit v1.2.3 From 8ee004b9b16f621e2ea9d4dffe5cfb34d3a1c38a Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sun, 17 Sep 2017 08:45:24 -0400 Subject: sub_80940C4 which may or may not be a meme --- include/data3.h | 1 + 1 file changed, 1 insertion(+) (limited to 'include') diff --git a/include/data3.h b/include/data3.h index b9ddf3e55..8151e418c 100755 --- a/include/data3.h +++ b/include/data3.h @@ -45,5 +45,6 @@ extern const u8 gUnknown_0850DBA0[5]; extern bool8 (*const *const gUnknown_0850DC50[])(struct MapObject *, struct Sprite *); extern u8 (*const gUnknown_0850DEE8[5])(u8); extern const s16 gUnknown_0850DFBC[3]; +extern const s16 gUnknown_0850DFC2[3]; #endif //GUARD_DATA3_H -- cgit v1.2.3 From c7592bc87c4b0f7007817784025046c304ca43c5 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Sun, 17 Sep 2017 15:19:15 +0200 Subject: finish porting cam's port --- include/battle.h | 52 +++++++++++++++++++++++++--------------------------- include/pokemon.h | 6 ++++++ 2 files changed, 31 insertions(+), 27 deletions(-) (limited to 'include') diff --git a/include/battle.h b/include/battle.h index 4def33967..c31aff6e8 100644 --- a/include/battle.h +++ b/include/battle.h @@ -26,6 +26,7 @@ #define BATTLE_TYPE_x100000 0x100000 #define BATTLE_TYPE_PYRAMID 0x200000 #define BATTLE_TYPE_INGAME_PARTNER 0x400000 +#define BATTLE_TYPE_x800000 0x800000 #define BATTLE_TYPE_RECORDED 0x1000000 #define BATTLE_TYPE_x2000000 0x2000000 #define BATTLE_TYPE_x4000000 0x4000000 @@ -137,26 +138,26 @@ #define SIDE_STATUS_MIST (1 << 8) #define SIDE_STATUS_SPIKES_DAMAGED (1 << 9) -#define ABILITYEFFECT_ON_SWITCHIN 0x0 -#define ABILITYEFFECT_ENDTURN 0x1 -#define ABILITYEFFECT_MOVES_BLOCK 0x2 -#define ABILITYEFFECT_ABSORBING 0x3 -#define ABILITYEFFECT_CONTACT 0x4 -#define ABILITYEFFECT_IMMUNITY 0x5 -#define ABILITYEFFECT_FORECAST 0x6 -#define ABILITYEFFECT_SYNCHRONIZE 0x7 -#define ABILITYEFFECT_ATK_SYNCHRONIZE 0x8 -#define ABILITYEFFECT_INTIMIDATE1 0x9 -#define ABILITYEFFECT_INTIMIDATE2 0xA -#define ABILITYEFFECT_TRACE 0xB -#define ABILITYEFFECT_CHECK_OTHER_SIDE 0xC -#define ABILITYEFFECT_CHECK_BANK_SIDE 0xD -#define ABILITYEFFECT_FIELD_SPORT 0xE +#define ABILITYEFFECT_ON_SWITCHIN 0x0 +#define ABILITYEFFECT_ENDTURN 0x1 +#define ABILITYEFFECT_MOVES_BLOCK 0x2 +#define ABILITYEFFECT_ABSORBING 0x3 +#define ABILITYEFFECT_CONTACT 0x4 +#define ABILITYEFFECT_IMMUNITY 0x5 +#define ABILITYEFFECT_FORECAST 0x6 +#define ABILITYEFFECT_SYNCHRONIZE 0x7 +#define ABILITYEFFECT_ATK_SYNCHRONIZE 0x8 +#define ABILITYEFFECT_INTIMIDATE1 0x9 +#define ABILITYEFFECT_INTIMIDATE2 0xA +#define ABILITYEFFECT_TRACE 0xB +#define ABILITYEFFECT_CHECK_OTHER_SIDE 0xC +#define ABILITYEFFECT_CHECK_BANK_SIDE 0xD +#define ABILITYEFFECT_FIELD_SPORT 0xE #define ABILITYEFFECT_CHECK_FIELD_EXCEPT_BANK 0xF -#define ABILITYEFFECT_COUNT_OTHER_SIZE 0x10 -#define ABILITYEFFECT_COUNT_BANK_SIDE 0x11 -#define ABILITYEFFECT_COUNT_ON_FIELD 0x12 -#define ABILITYEFFECT_CHECK_ON_FIELD 0x13 +#define ABILITYEFFECT_COUNT_OTHER_SIZE 0x10 +#define ABILITYEFFECT_COUNT_BANK_SIDE 0x11 +#define ABILITYEFFECT_COUNT_ON_FIELD 0x12 +#define ABILITYEFFECT_CHECK_ON_FIELD 0x13 #define WEATHER_HAS_EFFECT ((!AbilityBattleEffects(ABILITYEFFECT_CHECK_ON_FIELD, 0, ABILITY_CLOUD_NINE, 0, 0) && !AbilityBattleEffects(ABILITYEFFECT_CHECK_ON_FIELD, 0, ABILITY_AIR_LOCK, 0, 0))) @@ -523,10 +524,7 @@ struct BattleStruct u8 field_59; u8 field_5A; u8 field_5B; - u8 field_5C; - u8 field_5D; - u8 field_5E; - u8 field_5F; + u8 field_5C[4]; u8 field_60; u8 field_61; u8 field_62; @@ -611,13 +609,13 @@ struct BattleStruct u8 field_D0[8]; u8 intimidateBank; u8 fillerD9[0xDA-0xD9]; - u8 unkDA; + u8 field_DA; u8 turnSideTracker; u8 fillerDC[0xDF-0xDC]; - u8 unkDF; + u8 field_DF; u8 fillerE0[0x1A0-0xE0]; - u8 unk1A0; - u8 unk1A1; + u8 field_1A0; + u8 field_1A1; u8 filler1A2; u8 atkCancellerTracker; }; diff --git a/include/pokemon.h b/include/pokemon.h index fefe2bd28..595ec38fd 100644 --- a/include/pokemon.h +++ b/include/pokemon.h @@ -439,6 +439,12 @@ struct BattleMove u8 flags; }; +#define FLAG_MAKES_CONTACT 0x1 +#define FLAG_PROTECT_AFFECTED 0x2 +#define FLAG_MAGICCOAT_AFFECTED 0x4 +#define FLAG_SNATCH_AFFECTED 0x8 +#define FLAG_KINGSROCK_AFFECTED 0x20 + struct SpindaSpot { u8 x, y; -- cgit v1.2.3 From 9dc7839dd875cc06b582bd78f2263478a0571535 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sun, 17 Sep 2017 09:49:50 -0400 Subject: callers of sub_80940C4 --- include/map_obj_8097404.h | 2 ++ 1 file changed, 2 insertions(+) (limited to 'include') diff --git a/include/map_obj_8097404.h b/include/map_obj_8097404.h index 707860dbd..1fc653163 100644 --- a/include/map_obj_8097404.h +++ b/include/map_obj_8097404.h @@ -20,5 +20,7 @@ bool8 sub_80976EC(struct Sprite *sprite); void sub_80976DC(struct Sprite *, u8); void sub_809783C(struct Sprite *, u8, u8, u8); void DoShadowFieldEffect(struct MapObject *); +u8 sub_809785C(struct Sprite *); +u8 sub_80978E4(struct Sprite *); #endif //GUARD_MAP_OBJ_8097404_H -- cgit v1.2.3 From 9b4c61658a6a5d164ba67d6434be94540601cc83 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sun, 17 Sep 2017 10:58:24 -0400 Subject: npc_set_direction_and_anim__an_proceed --- include/map_obj_8097404.h | 2 ++ 1 file changed, 2 insertions(+) (limited to 'include') diff --git a/include/map_obj_8097404.h b/include/map_obj_8097404.h index 1fc653163..08b69f49a 100644 --- a/include/map_obj_8097404.h +++ b/include/map_obj_8097404.h @@ -22,5 +22,7 @@ void sub_809783C(struct Sprite *, u8, u8, u8); void DoShadowFieldEffect(struct MapObject *); u8 sub_809785C(struct Sprite *); u8 sub_80978E4(struct Sprite *); +void obj_anim_image_set_and_seek(struct Sprite *, u8, u8); +bool8 sub_80979BC(struct Sprite *); #endif //GUARD_MAP_OBJ_8097404_H -- cgit v1.2.3 From 75595f9b3dfc57707183dae5d842ba21a8c2ff7f Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Sun, 17 Sep 2017 17:14:32 +0200 Subject: decompile battle 3 --- include/battle.h | 23 ++++++++++++++++++++--- 1 file changed, 20 insertions(+), 3 deletions(-) (limited to 'include') diff --git a/include/battle.h b/include/battle.h index c31aff6e8..4093f55d1 100644 --- a/include/battle.h +++ b/include/battle.h @@ -399,12 +399,18 @@ struct BattleScriptsStack u8 size; }; +struct BattleCallbacksStack +{ + void (*function[8])(void); + u8 size; +}; + struct BattleResources { struct SecretBaseRecord* secretBase; struct UnknownFlags *flags; struct BattleScriptsStack* battleScriptsStack; - void* battleCallbackStack; + struct BattleCallbacksStack* battleCallbackStack; void* statsBeforeLvlUp; struct AI_ThinkingStruct *ai; struct BattleHistory *battleHistory; @@ -413,7 +419,8 @@ struct BattleResources extern struct BattleResources* gBattleResources; -#define BATTLESCRIPTS_STACK (gBattleResources->battleScriptsStack) +#define BATTLESCRIPTS_STACK (gBattleResources->battleScriptsStack) +#define BATTLE_CALLBACKS_STACK (gBattleResources->battleCallbackStack) struct BattleResults { @@ -506,7 +513,7 @@ struct BattleStruct u8 field_47; u8 field_48; u8 field_49; - u8 field_4A; + u8 moneyMultiplier; u8 field_4B; u8 field_4C; u8 field_4D; @@ -622,6 +629,13 @@ struct BattleStruct extern struct BattleStruct* gBattleStruct; +#define MEME_ACCESS_U8(structName, structPtr, arrayId, offsetField, value) \ +{ \ + u8* var2 = (u8*)((u32)(arrayId)); \ + var2 = (u32)(structPtr) + var2; \ + var2[offsetof(struct structName, offsetField)] = value; \ +} + struct BattleScripting { u8 field_0; @@ -645,6 +659,9 @@ struct BattleScripting u8 field_15; u8 field_16; u8 bank; + u8 field_18; + u8 field_19; + u8 statChanger; }; extern struct BattleScripting gBattleScripting; -- cgit v1.2.3 From 3356a4fb923d73bba9422b564bc1c0ef7e62f47c Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sun, 17 Sep 2017 11:39:49 -0400 Subject: Failed attempt to fix InitFieldObjectStateFromTemplate, but at least we fixed the weirdness with the double MapObject structs --- include/global.fieldmap.h | 72 +++++------------------------------------------ 1 file changed, 7 insertions(+), 65 deletions(-) (limited to 'include') diff --git a/include/global.fieldmap.h b/include/global.fieldmap.h index 4a587cf57..ed5054b7d 100644 --- a/include/global.fieldmap.h +++ b/include/global.fieldmap.h @@ -226,71 +226,13 @@ struct MapObject /*0x14*/ struct Coords16 coords3; /*0x18*/ u8 mapobj_unk_18:4; //current direction? /*0x18*/ u8 placeholder18:4; - /*0x19*/ u8 mapobj_unk_19:4; - /*0x19*/ u8 mapobj_unk_19b:4; - /*0x1A*/ u8 mapobj_unk_1A; - /*0x1B*/ u8 mapobj_unk_1B; - /*0x1C*/ u8 mapobj_unk_1C; - /*0x1D*/ u8 trainerRange_berryTreeId; - /*0x1E*/ u8 mapobj_unk_1E; - /*0x1F*/ u8 mapobj_unk_1F; - /*0x20*/ u8 mapobj_unk_20; - /*0x21*/ u8 mapobj_unk_21; - /*0x22*/ u8 animId; - /*size = 0x24*/ -}; - -// THIS IS NEEDED TO MAKE TRAINER_SEE.C MATCH, PLEASE DO NOT REMOVE UNLESS YOU FIX CHECKPATHBETWEENTRAINERANDPLAYER -struct MapObject2 -{ - /*0x00*/ u32 active:1; - u32 mapobj_bit_1:1; - u32 mapobj_bit_2:1; - u32 mapobj_bit_3:1; - u32 mapobj_bit_4:1; - u32 mapobj_bit_5:1; - u32 mapobj_bit_6:1; - u32 mapobj_bit_7:1; - /*0x01*/ u32 mapobj_bit_8:1; - u32 mapobj_bit_9:1; - u32 mapobj_bit_10:1; - u32 mapobj_bit_11:1; - u32 mapobj_bit_12:1; - u32 mapobj_bit_13:1; - u32 mapobj_bit_14:1; - u32 mapobj_bit_15:1; - /*0x02*/ u32 mapobj_bit_16:1; - u32 mapobj_bit_17:1; - u32 mapobj_bit_18:1; - u32 mapobj_bit_19:1; - u32 mapobj_bit_20:1; - u32 mapobj_bit_21:1; - u32 mapobj_bit_22:1; - u32 mapobj_bit_23:1; - /*0x03*/ u32 mapobj_bit_24:1; - u32 mapobj_bit_25:1; - u32 mapobj_bit_26:1; - u32 mapobj_bit_27:1; - u32 mapobj_bit_28:1; - u32 mapobj_bit_29:1; - u32 mapobj_bit_30:1; - u32 mapobj_bit_31:1; - /*0x04*/ u8 spriteId; - /*0x05*/ u8 graphicsId; - /*0x06*/ u8 animPattern; - /*0x07*/ u8 trainerType; - /*0x08*/ u8 localId; - /*0x09*/ u8 mapNum; - /*0x0A*/ u8 mapGroup; - /*0x0B*/ u8 mapobj_unk_0B_0:4; - u8 elevation:4; - /*0x0C*/ struct Coords16 coords1; - /*0x10*/ struct Coords16 coords2; - /*0x14*/ struct Coords16 coords3; - /*0x18*/ u8 mapobj_unk_18:4; - /*0x18*/ u8 placeholder18:4; - /*0x19*/ u8 mapobj_unk_19:4; - /*0x19*/ u8 mapobj_unk_19b:4; + /*0x19*/ union __attribute__((packed)) { + u8 as_byte; + struct __attribute__((packed)) { + u8 x:4; + u8 y:4; + } __attribute__((aligned (1))) as_nybbles; + } __attribute__((aligned (1))) range; /*0x1A*/ u8 mapobj_unk_1A; /*0x1B*/ u8 mapobj_unk_1B; /*0x1C*/ u8 mapobj_unk_1C; -- cgit v1.2.3 From 4b04e92e8b236d91ea5cc45813f914f10a86b748 Mon Sep 17 00:00:00 2001 From: scnorton Date: Sun, 17 Sep 2017 13:26:17 -0400 Subject: Ten more functions (remaining function count is 99) --- include/field_effect_helpers.h | 1 + include/trainer_see.h | 7 +++++++ 2 files changed, 8 insertions(+) create mode 100644 include/trainer_see.h (limited to 'include') diff --git a/include/field_effect_helpers.h b/include/field_effect_helpers.h index 6504a84f1..e80daf3bd 100644 --- a/include/field_effect_helpers.h +++ b/include/field_effect_helpers.h @@ -11,5 +11,6 @@ // Exported ROM declarations u8 sub_8154228(void); +bool8 sub_8155DA0(struct MapObject *); #endif //GUARD_FIELD_EFFECT_HELPERS_H diff --git a/include/trainer_see.h b/include/trainer_see.h new file mode 100644 index 000000000..3f39783b8 --- /dev/null +++ b/include/trainer_see.h @@ -0,0 +1,7 @@ +#ifndef GUARD_TRAINER_SEE_H +#define GUARD_TRAINER_SEE_H + +void sub_80B4578(struct MapObject *); +void sub_8155D78(struct MapObject *); + +#endif //GUARD_TRAINER_SEE_H -- cgit v1.2.3 From b54689b9a37d38ada226504c384054c56310e2dc Mon Sep 17 00:00:00 2001 From: scnorton Date: Sun, 17 Sep 2017 14:12:32 -0400 Subject: Another four functions --- include/map_obj_8097404.h | 2 ++ 1 file changed, 2 insertions(+) (limited to 'include') diff --git a/include/map_obj_8097404.h b/include/map_obj_8097404.h index 08b69f49a..fd5616330 100644 --- a/include/map_obj_8097404.h +++ b/include/map_obj_8097404.h @@ -24,5 +24,7 @@ u8 sub_809785C(struct Sprite *); u8 sub_80978E4(struct Sprite *); void obj_anim_image_set_and_seek(struct Sprite *, u8, u8); bool8 sub_80979BC(struct Sprite *); +void sub_8097750(struct Sprite *); +bool8 sub_8097758(struct Sprite *); #endif //GUARD_MAP_OBJ_8097404_H -- cgit v1.2.3 From 70b1ad485719ce1854020222131a0c0daa5a16cd Mon Sep 17 00:00:00 2001 From: scnorton Date: Sun, 17 Sep 2017 15:33:26 -0400 Subject: Remaining functions --- include/map_obj_8097404.h | 2 ++ include/sprite.h | 2 ++ 2 files changed, 4 insertions(+) (limited to 'include') diff --git a/include/map_obj_8097404.h b/include/map_obj_8097404.h index fd5616330..27ffd18cb 100644 --- a/include/map_obj_8097404.h +++ b/include/map_obj_8097404.h @@ -26,5 +26,7 @@ void obj_anim_image_set_and_seek(struct Sprite *, u8, u8); bool8 sub_80979BC(struct Sprite *); void sub_8097750(struct Sprite *); bool8 sub_8097758(struct Sprite *); +void sub_8097FA4(struct MapObject *); +void sub_8098044(u8); #endif //GUARD_MAP_OBJ_8097404_H diff --git a/include/sprite.h b/include/sprite.h index 7b3c9fb5a..838b0d7c0 100644 --- a/include/sprite.h +++ b/include/sprite.h @@ -240,6 +240,8 @@ struct OamMatrix extern const struct OamData gDummyOamData; extern const union AnimCmd *const gDummySpriteAnimTable[]; extern const union AffineAnimCmd *const gDummySpriteAffineAnimTable[]; +extern s16 gSpriteCoordOffsetX; +extern s16 gSpriteCoordOffsetY; extern struct Sprite gSprites[]; -- cgit v1.2.3 From 130ba76533e6b87696b8e960eb8a09cb951417ad Mon Sep 17 00:00:00 2001 From: scnorton Date: Sun, 17 Sep 2017 17:50:07 -0400 Subject: remove data3.h --- include/data3.h | 50 -------------------------------------------------- 1 file changed, 50 deletions(-) delete mode 100755 include/data3.h (limited to 'include') diff --git a/include/data3.h b/include/data3.h deleted file mode 100755 index 8151e418c..000000000 --- a/include/data3.h +++ /dev/null @@ -1,50 +0,0 @@ -// -// Created by Scott Norton on 9/8/17. -// - -#ifndef GUARD_DATA3_H -#define GUARD_DATA3_H - -struct PairedPalettes { - u16 tag; - const u16 *data; -}; - -extern u8 gUnknown_084975C4[0x10]; -extern const struct SpriteTemplate gUnknown_084975D4; -extern void (*const gUnknown_084975EC[3])(struct Sprite *); -extern const struct SpritePalette gUnknown_0850BBC8[]; -extern const struct PairedPalettes gUnknown_0850BD00[15]; -extern const struct PairedPalettes gUnknown_0850BD78[15]; -extern const u16 *const gUnknown_0850BE38[2]; -extern const s16 gUnknown_0850D6DC[4]; // {0x20, 0x40, 0x60, 0x80} -extern const s16 gUnknown_0850D6EC[4]; -extern const u8 gUnknown_0850D710[4]; // {DIR_SOUTH, DIR_NORTH, DIR_WEST, DIR_EAST} -extern const u8 gUnknown_0850D770[2]; // {DIR_SOUTH, DIR_NORTH} -extern const u8 gUnknown_0850D790[2]; // {DIR_WEST, DIR_EAST} -extern const u8 gUnknown_0850D7F0[2]; // {DIR_NORTH, DIR_WEST} -extern const u8 gUnknown_0850D808[2]; // {DIR_NORTH, DIR_EAST} -extern const u8 gUnknown_0850D820[2]; // {DIR_SOUTH, DIR_WEST} -extern const u8 gUnknown_0850D838[2]; // {DIR_SOUTH, DIR_EAST} -extern const u8 gUnknown_0850D850[4]; -extern const u8 gUnknown_0850D868[4]; -extern const u8 gUnknown_0850D880[4]; -extern const u8 gUnknown_0850D898[4]; -extern const u8 gUnknown_0850D8AC[5]; -extern const u8 gUnknown_0850D8C4[5]; -extern const u8 gUnknown_0850D8E8[4]; -extern bool8 (*const gUnknown_0850DA64[])(struct MapObject *, struct Sprite *, u8, bool8(u8)); -extern bool8 (*const gUnknown_0850DB5C[])(u8); -extern bool8 (*const gUnknown_0850DB6C[])(u8); -extern const struct Coords16 gUnknown_0850DB7C[4]; -extern const u8 gUnknown_0850DC2F[4][4]; -extern const u8 gUnknown_0850DC3F[4][4]; - -extern const u8 gUnknown_0850DBA0[5]; - -extern bool8 (*const *const gUnknown_0850DC50[])(struct MapObject *, struct Sprite *); -extern u8 (*const gUnknown_0850DEE8[5])(u8); -extern const s16 gUnknown_0850DFBC[3]; -extern const s16 gUnknown_0850DFC2[3]; - -#endif //GUARD_DATA3_H -- cgit v1.2.3 From 16f2e40576b29fd85366305b4165da3aff4aef0e Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sun, 17 Sep 2017 23:42:44 -0400 Subject: Fix naming conflicts --- include/global.berry.h | 4 ---- 1 file changed, 4 deletions(-) (limited to 'include') diff --git a/include/global.berry.h b/include/global.berry.h index 4b9ca644c..a77da20ba 100644 --- a/include/global.berry.h +++ b/include/global.berry.h @@ -46,10 +46,6 @@ struct EnigmaBerry u8 holdEffect; u8 holdEffectParam; u32 checksum; - u8 pic[(6 * 6) * TILE_SIZE_4BPP]; - u16 palette[16]; - u8 description1[45]; - u8 description2[45]; }; struct BattleEnigmaBerry -- cgit v1.2.3 From 8604291b0f0e430b01f0099ea4e098171938505b Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Mon, 18 Sep 2017 08:52:57 -0400 Subject: Start decomp --- include/gba/multiboot.h | 26 +++++++++++++------------- include/gpu_regs.h | 13 +++++++++++++ include/multiboot.h | 2 +- include/unknown_task.h | 11 +++++++++++ 4 files changed, 38 insertions(+), 14 deletions(-) create mode 100644 include/gpu_regs.h create mode 100644 include/unknown_task.h (limited to 'include') diff --git a/include/gba/multiboot.h b/include/gba/multiboot.h index e88b43a19..61c02ec52 100644 --- a/include/gba/multiboot.h +++ b/include/gba/multiboot.h @@ -8,19 +8,19 @@ struct MultiBootParam { - u32 system_work[5]; - u8 handshake_data; - u8 padding; - u16 handshake_timeout; - u8 probe_count; - u8 client_data[MULTIBOOT_NCHILD]; - u8 palette_data; - u8 response_bit; - u8 client_bit; - u8 reserved1; - u8 *boot_srcp; - u8 *boot_endp; - u8 *masterp; + u32 system_work[5]; // 00 + u8 handshake_data; // 14 + u8 padding; // 15 + u16 handshake_timeout; // 16 + u8 probe_count; // 18 + u8 client_data[MULTIBOOT_NCHILD]; // 19 + u8 palette_data; // 1c + u8 response_bit; // 1d + u8 client_bit; // 1e + u8 reserved1; // 1f + u8 *boot_srcp; // 20 + u8 *boot_endp; // 24 + const u8 *masterp; u8 *reserved2[MULTIBOOT_NCHILD]; u32 system_work2[4]; u8 sendflag; diff --git a/include/gpu_regs.h b/include/gpu_regs.h new file mode 100644 index 000000000..d0528bb83 --- /dev/null +++ b/include/gpu_regs.h @@ -0,0 +1,13 @@ +#ifndef GUARD_gpu_regs_H +#define GUARD_gpu_regs_H + +// Exported type declarations + +// Exported RAM declarations + +// Exported ROM declarations +void DisableInterrupts(u16); +void EnableInterrupts(u16); +void SetGpuReg(u8, u16); + +#endif //GUARD_gpu_regs_H diff --git a/include/multiboot.h b/include/multiboot.h index 950c853d0..d4700ff4e 100644 --- a/include/multiboot.h +++ b/include/multiboot.h @@ -15,7 +15,7 @@ void MultiBootInit(struct MultiBootParam *mp); int MultiBootMain(struct MultiBootParam *mp); void MultiBootStartProbe(struct MultiBootParam *mp); -void MultiBootStartMaster(struct MultiBootParam *mp, u8 *srcp, int length, u8 palette_color, s8 palette_speed); +void MultiBootStartMaster(struct MultiBootParam *mp, const u8 *srcp, int length, u8 palette_color, s8 palette_speed); int MultiBootCheckComplete(struct MultiBootParam *mp); #endif // GUARD_MULTIBOOT_H diff --git a/include/unknown_task.h b/include/unknown_task.h new file mode 100644 index 000000000..f59ca9ac3 --- /dev/null +++ b/include/unknown_task.h @@ -0,0 +1,11 @@ +#ifndef GUARD_unknown_task_H +#define GUARD_unknown_task_H + +// Exported type declarations + +// Exported RAM declarations + +// Exported ROM declarations +void remove_some_task(void); + +#endif //GUARD_unknown_task_H -- cgit v1.2.3 From c5dddf41f58446139b52d3b60cb8738052e4a084 Mon Sep 17 00:00:00 2001 From: scnorton Date: Mon, 18 Sep 2017 11:26:45 -0400 Subject: sub_81BF5A4 --- include/bg.h | 19 +++++++++++++++++++ include/gba/multiboot.h | 4 ++-- include/menu.h | 2 ++ include/text.h | 4 ++-- include/window.h | 2 +- 5 files changed, 26 insertions(+), 5 deletions(-) create mode 100644 include/bg.h (limited to 'include') diff --git a/include/bg.h b/include/bg.h new file mode 100644 index 000000000..7a0782c1b --- /dev/null +++ b/include/bg.h @@ -0,0 +1,19 @@ +#ifndef GUARD_bg_H +#define GUARD_bg_H + +struct BgTemplate { + u32 bg:2; + u32 charBaseIndex:2; + u32 mapBaseIndex:5; + u32 screenSize:2; + u32 paletteMode:1; + u32 priority:2; + u32 baseTile:10; +}; + +void ResetBgsAndClearDma3BusyFlags(u32); +void InitBgsFromTemplates(u8, const struct BgTemplate *, u8); +u32 ChangeBgX(u8, u32, u8); +u32 ChangeBgY(u8, u32, u8); + +#endif //GUARD_bg_H diff --git a/include/gba/multiboot.h b/include/gba/multiboot.h index 61c02ec52..14b6594b2 100644 --- a/include/gba/multiboot.h +++ b/include/gba/multiboot.h @@ -18,8 +18,8 @@ struct MultiBootParam u8 response_bit; // 1d u8 client_bit; // 1e u8 reserved1; // 1f - u8 *boot_srcp; // 20 - u8 *boot_endp; // 24 + const u8 *boot_srcp; // 20 + const u8 *boot_endp; // 24 const u8 *masterp; u8 *reserved2[MULTIBOOT_NCHILD]; u32 system_work2[4]; diff --git a/include/menu.h b/include/menu.h index c8aafcb30..9a23401e0 100644 --- a/include/menu.h +++ b/include/menu.h @@ -15,4 +15,6 @@ struct MenuAction2 void (*func)(u8); }; +void box_print(u8, u8, u8, u8, const void *, s8, const u8 *); + #endif // GUARD_MENU_H diff --git a/include/text.h b/include/text.h index 73e6e5437..c61f6cc98 100644 --- a/include/text.h +++ b/include/text.h @@ -186,9 +186,9 @@ bool8 TextPrinterWaitWithDownArrow(struct TextPrinter *textPrinter); bool8 TextPrinterWait(struct TextPrinter *textPrinter); void DrawDownArrow(u8 windowId, u16 x, u16 y, u8 bgColor, bool8 drawArrow, u8 *counter, u8 *yCoordIndex); u16 RenderText(struct TextPrinter *textPrinter); -u32 GetStringWidthFixedWidthFont(u8 *str, u8 fontId, u8 letterSpacing); +u32 GetStringWidthFixedWidthFont(const u8 *str, u8 fontId, u8 letterSpacing); u32 (*GetFontWidthFunc(u8 glyphId))(u16, bool32); -s32 GetStringWidth(u8 fontId, u8 *str, s16 letterSpacing); +u32 GetStringWidth(u8 fontId, const u8 *str, s16 letterSpacing); u8 RenderTextFont9(u8 *pixels, u8 fontId, u8 *str); u8 DrawKeypadIcon(u8 windowId, u8 keypadIconId, u16 x, u16 y); u8 GetKeypadIconTileOffset(u8 keypadIconId); diff --git a/include/window.h b/include/window.h index 36a71a1e0..20e5fefa3 100644 --- a/include/window.h +++ b/include/window.h @@ -30,7 +30,7 @@ struct Window u8 *tileData; }; -bool16 InitWindows(struct WindowTemplate *templates); +bool16 InitWindows(const struct WindowTemplate *templates); u16 AddWindow(const struct WindowTemplate *template); int AddWindowWithoutTileMap(struct WindowTemplate *template); void RemoveWindow(u8 windowId); -- cgit v1.2.3 From c253bf5e75796c462fe5e389c7e8f6040f826c0f Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Mon, 18 Sep 2017 18:36:05 +0200 Subject: add important headers, const ptrs and egg hatch start --- include/bg.h | 43 +++++++++++++++++++++++++++++++++++++++++++ include/dma3.h | 4 ++-- include/global.h | 3 ++- include/gpu_regs.h | 12 ++++++++++++ include/m4a.h | 1 + include/text.h | 2 +- include/window.h | 2 +- 7 files changed, 62 insertions(+), 5 deletions(-) create mode 100644 include/bg.h create mode 100644 include/gpu_regs.h (limited to 'include') diff --git a/include/bg.h b/include/bg.h new file mode 100644 index 000000000..ca21070e0 --- /dev/null +++ b/include/bg.h @@ -0,0 +1,43 @@ +#ifndef GUARD_BG_H +#define GUARD_BG_H + +enum +{ + BG_CTRL_ATTR_VISIBLE = 1, + BG_CTRL_ATTR_CHARBASEINDEX = 2, + BG_CTRL_ATTR_MAPBASEINDEX = 3, + BG_CTRL_ATTR_SCREENSIZE = 4, + BG_CTRL_ATTR_PALETTEMODE = 5, + BG_CTRL_ATTR_PRIORITY = 6, + BG_CTRL_ATTR_MOSAIC = 7, + BG_CTRL_ATTR_WRAPAROUND = 8, +}; + +struct BgTemplate +{ + u32 bg:2; + u32 charBaseIndex:2; + u32 mapBaseIndex:5; + u32 screenSize:2; + u32 paletteMode:1; + u32 priority:2; + u32 baseTile:10; +}; + +void ResetBgsAndClearDma3BusyFlags(u32 leftoverFireRedLeafGreenVariable); +void InitBgsFromTemplates(u8 bgMode, const struct BgTemplate *templates, u8 numTemplates); +void SetBgAttribute(u8 bg, u8 attributeId, u8 value); +u16 GetBgAttribute(u8 bg, u8 attributeId); +u32 ChangeBgX(u8 bg, u32 value, u8 op); +u32 GetBgX(u8 bg); +u32 ChangeBgY(u8 bg, u32 value, u8 op); +u32 ChangeBgY_ScreenOff(u8 bg, u32 value, u8 op); +u32 GetBgY(u8 bg); +void SetBgAffine(u8 bg, u32 srcCenterX, u32 srcCenterY, s16 dispCenterX, s16 dispCenterY, s16 scaleX, s16 scaleY, u16 rotationAngle); +void SetBgTilemapBuffer(u8 bg, void *tilemap); +void UnsetBgTilemapBuffer(u8 bg); +void CopyToBgTilemapBuffer(u8 bg, const void *src, u16 mode, u16 destOffset); +void CopyBgTilemapBufferToVram(u8 bg); +u16 LoadBgTiles(u8 bg, const void* src, u16 size, u16 destOffset); + +#endif // GUARD_BG_H diff --git a/include/dma3.h b/include/dma3.h index beb00745d..ea3171662 100644 --- a/include/dma3.h +++ b/include/dma3.h @@ -6,7 +6,7 @@ extern u8 gDma3RequestCursor; struct DmaRequestsStruct { - /* 0x00 */ u8 *src; + /* 0x00 */ const u8 *src; /* 0x04 */ u8 *dest; /* 0x08 */ u16 size; /* 0x0A */ u16 mode; @@ -17,7 +17,7 @@ extern struct DmaRequestsStruct gDma3Requests[128]; void ClearDma3Requests(void); void ProcessDma3Requests(void); -int RequestDma3Copy(void *src, void *dest, u16 size, u8 mode); +int RequestDma3Copy(const void *src, void *dest, u16 size, u8 mode); int RequestDma3Fill(s32 value, void *dest, u16 size, u8 mode); #endif diff --git a/include/global.h b/include/global.h index e694a5974..f4b2a8349 100644 --- a/include/global.h +++ b/include/global.h @@ -639,7 +639,8 @@ struct DaycareMon struct MailStruct mail; u8 OT_name[OT_NAME_LENGTH + 1]; u8 monName[11]; - u8 language; + u8 language_maybe : 4; + u8 unknown : 4; u32 stepsTaken; }; diff --git a/include/gpu_regs.h b/include/gpu_regs.h new file mode 100644 index 000000000..684578f43 --- /dev/null +++ b/include/gpu_regs.h @@ -0,0 +1,12 @@ +#ifndef GUARD_GPU_REGS_H +#define GUARD_GPU_REGS_H + +void SetGpuReg(u8 regOffset, u16 value); +void SetGpuReg_ForcedBlank(u8 regOffset, u16 value); +u16 GetGpuReg(u8 regOffset); +void SetGpuRegBits(u8 regOffset, u16 mask); +void ClearGpuRegBits(u8 regOffset, u16 mask); +void EnableInterrupts(u16 mask); +void DisableInterrupts(u16 mask); + +#endif // GUARD_GPU_REGS_H diff --git a/include/m4a.h b/include/m4a.h index b6c8f9072..8c3380dd8 100644 --- a/include/m4a.h +++ b/include/m4a.h @@ -4,6 +4,7 @@ #include "gba/m4a_internal.h" void m4aSoundVSync(void); +void m4aSoundVSyncOn(void); void m4aSoundInit(void); void m4aSoundMain(void); diff --git a/include/text.h b/include/text.h index 73e6e5437..5aadaac32 100644 --- a/include/text.h +++ b/include/text.h @@ -155,7 +155,7 @@ extern u8 gStringVar3[]; extern u8 gStringVar4[]; void SetFontsPointer(const struct FontInfo *fonts); -void DeactivateAllTextPrinters (void); +void DeactivateAllTextPrinters(void); u16 PrintTextOnWindow(u8 windowId, u8 fontId, u8 *str, u8 x, u8 y, u8 speed, void (*callback)(struct TextSubPrinter *, u16)); bool16 AddTextPrinter(struct TextSubPrinter *textSubPrinter, u8 speed, void (*callback)(struct TextSubPrinter *, u16)); void RunTextPrinters(void); diff --git a/include/window.h b/include/window.h index 36a71a1e0..20e5fefa3 100644 --- a/include/window.h +++ b/include/window.h @@ -30,7 +30,7 @@ struct Window u8 *tileData; }; -bool16 InitWindows(struct WindowTemplate *templates); +bool16 InitWindows(const struct WindowTemplate *templates); u16 AddWindow(const struct WindowTemplate *template); int AddWindowWithoutTileMap(struct WindowTemplate *template); void RemoveWindow(u8 windowId); -- cgit v1.2.3 From 39e6bdf094ac1b53109782c9b5b98c211bbe3149 Mon Sep 17 00:00:00 2001 From: scnorton Date: Mon, 18 Sep 2017 14:04:00 -0400 Subject: sub_81BF7E8 --- include/bg.h | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'include') diff --git a/include/bg.h b/include/bg.h index 7a0782c1b..444d3f3c2 100644 --- a/include/bg.h +++ b/include/bg.h @@ -15,5 +15,9 @@ void ResetBgsAndClearDma3BusyFlags(u32); void InitBgsFromTemplates(u8, const struct BgTemplate *, u8); u32 ChangeBgX(u8, u32, u8); u32 ChangeBgY(u8, u32, u8); +void FillBgTilemapBufferRect_Palette0(u8 bg, u16 tileNum, u8 x, u8 y, u8 width, u8 height); +void ShowBg(u8); +void HideBg(u8); +void CopyBgTilemapBufferToVram(u8); #endif //GUARD_bg_H -- cgit v1.2.3 From 2e7127284f98cb4c8c02b1a41a19fdc73ed4eb79 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Mon, 18 Sep 2017 23:48:47 +0200 Subject: egg hatch almost decompiled --- include/bg.h | 2 ++ include/pokemon.h | 4 ++++ include/text.h | 15 ++++++++++++--- 3 files changed, 18 insertions(+), 3 deletions(-) (limited to 'include') diff --git a/include/bg.h b/include/bg.h index ca21070e0..24484dd86 100644 --- a/include/bg.h +++ b/include/bg.h @@ -39,5 +39,7 @@ void UnsetBgTilemapBuffer(u8 bg); void CopyToBgTilemapBuffer(u8 bg, const void *src, u16 mode, u16 destOffset); void CopyBgTilemapBufferToVram(u8 bg); u16 LoadBgTiles(u8 bg, const void* src, u16 size, u16 destOffset); +void ShowBg(u8 bg); +void HideBg(u8 bg); #endif // GUARD_BG_H diff --git a/include/pokemon.h b/include/pokemon.h index fefe2bd28..3472da04b 100644 --- a/include/pokemon.h +++ b/include/pokemon.h @@ -614,4 +614,8 @@ bool8 IsPokeSpriteNotFlipped(u16 species); bool8 IsMonShiny(struct Pokemon *mon); bool8 IsShinyOtIdPersonality(u32 otId, u32 personality); +#include "sprite.h" + +void DoMonFrontSpriteAnimation(struct Sprite* sprite, u16 species, bool8 noCry, u8 arg3); + #endif // GUARD_POKEMON_H diff --git a/include/text.h b/include/text.h index 5aadaac32..f584b61ea 100644 --- a/include/text.h +++ b/include/text.h @@ -138,17 +138,26 @@ struct FontInfo u8 shadowColor:4; }; -struct GlyphWidthFunc{ +struct GlyphWidthFunc +{ u32 font_id; u32 (*func)(u16 glyphId, bool32 isJapanese); }; -struct KeypadIcon { +struct KeypadIcon +{ u16 tile_offset; u8 width; u8 height; }; +struct __attribute__((packed)) TextColor +{ + u8 fgColor; + u8 bgColor; + u8 shadowColor; +}; + extern u8 gStringVar1[]; extern u8 gStringVar2[]; extern u8 gStringVar3[]; @@ -159,7 +168,7 @@ void DeactivateAllTextPrinters(void); u16 PrintTextOnWindow(u8 windowId, u8 fontId, u8 *str, u8 x, u8 y, u8 speed, void (*callback)(struct TextSubPrinter *, u16)); bool16 AddTextPrinter(struct TextSubPrinter *textSubPrinter, u8 speed, void (*callback)(struct TextSubPrinter *, u16)); void RunTextPrinters(void); -bool8 IsTextPrinterActive(u8 id); +bool16 IsTextPrinterActive(u8 id); u32 RenderFont(struct TextPrinter *textPrinter); void GenerateFontHalfRowLookupTable(u8 fgColor, u8 bgColor, u8 shadowColor); void SaveTextColors(u8 *fgColor, u8 *bgColor, u8 *shadowColor); -- cgit v1.2.3 From 148b995189f72acdad967f1c4bce0b5e0216cc2c Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Tue, 19 Sep 2017 14:27:46 +0200 Subject: finish egg hatch, clean up headers --- include/bg.h | 48 +++++++++++++++++++++++++++++++++++++++--------- include/dma3.h | 3 ++- include/gpu_regs.h | 2 ++ include/trig.h | 3 +++ include/window.h | 11 +++++++++++ 5 files changed, 57 insertions(+), 10 deletions(-) (limited to 'include') diff --git a/include/bg.h b/include/bg.h index 24484dd86..0dcb84a34 100644 --- a/include/bg.h +++ b/include/bg.h @@ -15,17 +15,35 @@ enum struct BgTemplate { - u32 bg:2; - u32 charBaseIndex:2; - u32 mapBaseIndex:5; - u32 screenSize:2; - u32 paletteMode:1; - u32 priority:2; + u32 bg:2; // 0x1, 0x2 -> 0x3 + u32 charBaseIndex:2; // 0x4, 0x8 -> 0xC + u32 mapBaseIndex:5; // 0x10, 0x20, 0x40, 0x80, 0x100 -> 0x1F0 + u32 screenSize:2; // 0x200, 0x400 -> 0x600 + u32 paletteMode:1; // 0x800 + u32 priority:2; // 0x1000, 0x2000 > 0x3000 u32 baseTile:10; }; +void ResetBgs(void); +u8 GetBgMode(void); +void ResetBgControlStructs(void); +void Unused_ResetBgControlStruct(u8 bg); +void SetBgControlAttributes(u8 bg, u8 charBaseIndex, u8 mapBaseIndex, u8 screenSize, u8 paletteMode, u8 priority, u8 mosaic, u8 wraparound); +u16 GetBgControlAttribute(u8 bg, u8 attributeId); +u8 LoadBgVram(u8 bg, const void *src, u16 size, u16 destOffset, u8 mode); +void SetTextModeAndHideBgs(void); +bool8 IsInvalidBg(u8 bg); +int DummiedOutFireRedLeafGreenTileAllocFunc(int a1, int a2, int a3, int a4); void ResetBgsAndClearDma3BusyFlags(u32 leftoverFireRedLeafGreenVariable); void InitBgsFromTemplates(u8 bgMode, const struct BgTemplate *templates, u8 numTemplates); +void InitBgFromTemplate(const struct BgTemplate *template); +void SetBgMode(u8 bgMode); +u16 LoadBgTiles(u8 bg, const void* src, u16 size, u16 destOffset); +u16 LoadBgTilemap(u8 bg, const void *src, u16 size, u16 destOffset); +u16 Unused_LoadBgPalette(u8 bg, const void *src, u16 size, u16 destOffset); +bool8 IsDma3ManagerBusyWithBgCopy(void); +void ShowBg(u8 bg); +void HideBg(u8 bg); void SetBgAttribute(u8 bg, u8 attributeId, u8 value); u16 GetBgAttribute(u8 bg, u8 attributeId); u32 ChangeBgX(u8 bg, u32 value, u8 op); @@ -34,12 +52,24 @@ u32 ChangeBgY(u8 bg, u32 value, u8 op); u32 ChangeBgY_ScreenOff(u8 bg, u32 value, u8 op); u32 GetBgY(u8 bg); void SetBgAffine(u8 bg, u32 srcCenterX, u32 srcCenterY, s16 dispCenterX, s16 dispCenterY, s16 scaleX, s16 scaleY, u16 rotationAngle); +u8 Unused_AdjustBgMosaic(u8 a1, u8 a2); void SetBgTilemapBuffer(u8 bg, void *tilemap); void UnsetBgTilemapBuffer(u8 bg); +void* GetBgTilemapBuffer(u8 bg); void CopyToBgTilemapBuffer(u8 bg, const void *src, u16 mode, u16 destOffset); void CopyBgTilemapBufferToVram(u8 bg); -u16 LoadBgTiles(u8 bg, const void* src, u16 size, u16 destOffset); -void ShowBg(u8 bg); -void HideBg(u8 bg); +void CopyToBgTilemapBufferRect(u8 bg, void* src, u8 destX, u8 destY, u8 width, u8 height); +void CopyToBgTilemapBufferRect_ChangePalette(u8 bg, void *src, u8 destX, u8 destY, u8 rectWidth, u8 rectHeight, u8 palette); +void CopyRectToBgTilemapBufferRect(u8 bg, void* src, u8 srcX, u8 srcY, u8 srcWidth, u8 srcHeight, u8 destX, u8 destY, u8 rectWidth, u8 rectHeight, u8 palette1, u16 tileOffset, u16 palette2); +void FillBgTilemapBufferRect_Palette0(u8 bg, u16 tileNum, u8 x, u8 y, u8 width, u8 height); +void FillBgTilemapBufferRect(u8 bg, u16 tileNum, u8 x, u8 y, u8 width, u8 height, u8 palette); +void WriteSequenceToBgTilemapBuffer(u8 bg, u16 firstTileNum, u8 x, u8 y, u8 width, u8 height, u8 paletteSlot, s16 tileNumDelta); +u16 GetBgMetricTextMode(u8 bg, u8 whichMetric); +u32 GetBgMetricAffineMode(u8 bg, u8 whichMetric); +u32 GetTileMapIndexFromCoords(s32 x, s32 y, s32 screenSize, u32 screenWidth, u32 screenHeight); +void CopyTileMapEntry(u16 *src, u16 *dest, s32 palette1, u32 tileOffset, u32 palette2); +u32 GetBgType(u8 bg); +bool32 IsInvalidBg32(u8 bg); +bool32 IsTileMapOutsideWram(u8 bg); #endif // GUARD_BG_H diff --git a/include/dma3.h b/include/dma3.h index ea3171662..db75ea9e3 100644 --- a/include/dma3.h +++ b/include/dma3.h @@ -19,5 +19,6 @@ void ClearDma3Requests(void); void ProcessDma3Requests(void); int RequestDma3Copy(const void *src, void *dest, u16 size, u8 mode); int RequestDma3Fill(s32 value, void *dest, u16 size, u8 mode); +int CheckForSpaceForDma3Request(s16 index); -#endif +#endif // GUARD_DMA3_H diff --git a/include/gpu_regs.h b/include/gpu_regs.h index 684578f43..2675571f4 100644 --- a/include/gpu_regs.h +++ b/include/gpu_regs.h @@ -1,6 +1,8 @@ #ifndef GUARD_GPU_REGS_H #define GUARD_GPU_REGS_H +void InitGpuRegManager(void); +void CopyBufferedValuesToGpuRegs(void); void SetGpuReg(u8 regOffset, u16 value); void SetGpuReg_ForcedBlank(u8 regOffset, u16 value); u16 GetGpuReg(u8 regOffset); diff --git a/include/trig.h b/include/trig.h index a2f98a3e6..477a0163f 100644 --- a/include/trig.h +++ b/include/trig.h @@ -1,6 +1,9 @@ #ifndef GUARD_TRIG_H #define GUARD_TRIG_H +// Converts a number to Q8.8 fixed-point format +#define Q_8_8(n) ((s16)((n) * 256)) + extern const s16 gSineTable[]; s16 Sin(s16 index, s16 amplitude); diff --git a/include/window.h b/include/window.h index 20e5fefa3..e8af82e81 100644 --- a/include/window.h +++ b/include/window.h @@ -24,6 +24,17 @@ struct WindowTemplate u16 baseBlock; }; +#define DUMMY_WIN_TEMPLATE \ +{ \ + 0xFF, \ + 0, \ + 0, \ + 0, \ + 0, \ + 0, \ + 0, \ +} + struct Window { struct WindowTemplate window; -- cgit v1.2.3 From bff89725ec31f87c296ec45f107f81dfe3cd54d6 Mon Sep 17 00:00:00 2001 From: scnorton Date: Tue, 19 Sep 2017 09:46:17 -0400 Subject: Add battle_dome_cards header to expose symbols as needed --- include/battle_dome_cards.h | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 include/battle_dome_cards.h (limited to 'include') diff --git a/include/battle_dome_cards.h b/include/battle_dome_cards.h new file mode 100644 index 000000000..a0696d156 --- /dev/null +++ b/include/battle_dome_cards.h @@ -0,0 +1,13 @@ +#ifndef GUARD_BATTLE_DOME_CARDS_H +#define GUARD_BATTLE_DOME_CARDS_H + +bool16 dp13_810BB8C(void); +u16 sub_818D3E4(u16 species, u32 otId, u32 personality, u8 flags, s16 x, s16 y, u8 paletteSlot, u16 paletteTag); +u16 sub_818D7D8(u16 species, u32 otId, u32 personality, bool8 isFrontPic, s16 x, s16 y, u8 paletteSlot, u16 paletteTag); +u16 sub_818D820(u16 spriteId); +u16 sub_818D8AC(u16 species, bool8 isFrontPic, s16 x, s16 y, u8 paletteSlot, u16 paletteTag); +u16 sub_818D8F0(u16 spriteId); +u16 sub_818D938(u16 species, bool8 isFrontPic, u16 destX, u16 destY, u8 paletteSlot, u8 windowId); +u8 sub_818D97C(u8 a0, u8 a1); + +#endif //GUARD_BATTLE_DOME_CARDS_H -- cgit v1.2.3 From b3c788f2ca9e3d0ab6e43617ed7fedfe605bc249 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Tue, 19 Sep 2017 21:01:12 +0200 Subject: begin work on battle4, organize battle headers --- include/battle.h | 58 ++++++++++++++++++++++++++++++++++++++--- include/calculate_base_damage.h | 6 +++++ 2 files changed, 60 insertions(+), 4 deletions(-) create mode 100644 include/calculate_base_damage.h (limited to 'include') diff --git a/include/battle.h b/include/battle.h index 4093f55d1..b04b8db8f 100644 --- a/include/battle.h +++ b/include/battle.h @@ -204,10 +204,14 @@ #define MULTISTRING_CHOOSER 0x5 #define MSG_DISPLAY 0x7 -// functions - -extern u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg); -extern u8 GetBankSide(u8 bank); +#define MOVE_TARGET_SELECTED 0x0 +#define MOVE_TARGET_DEPENDS 0x1 +#define MOVE_TARGET_USER 0x2 +#define MOVE_TARGET_RANDOM 0x4 +#define MOVE_TARGET_x10 0x10 +#define MOVE_TARGET_BOTH 0x8 +#define MOVE_TARGET_FOES_AND_ALLY 0x20 +#define MOVE_TARGET_OPPONENTS_FIELD 0x40 struct Trainer { @@ -636,6 +640,14 @@ extern struct BattleStruct* gBattleStruct; var2[offsetof(struct structName, offsetField)] = value; \ } +#define GET_MOVE_TYPE(move, type) \ +{ \ + if (gBattleStruct->dynamicMoveType) \ + type = gBattleStruct->dynamicMoveType & 0x3F; \ + else \ + type = gBattleMoves[move].type; \ +} + struct BattleScripting { u8 field_0; @@ -666,6 +678,44 @@ struct BattleScripting extern struct BattleScripting gBattleScripting; +// functions + +// battle_2 +void CancelMultiTurnMoves(u8 bank); +void PressurePPLose(u8 bankAtk, u8 bankDef, u16 move); +void PrepareStringBattle(u16 stringId, u8 bank); + +// battle_3 +void b_movescr_stack_push(const u8* bsPtr); +void b_movescr_stack_push_cursor(void); +u8 sub_803FB4C(void); // msg, can't select a move +u8 CheckMoveLimitations(u8 bank, u8 unusableMoves, u8 check); +bool8 AreAllMovesUnusable(void); +u8 IsImprisoned(u8 bank, u16 move); +u8 UpdateTurnCounters(void); +u8 TurnBasedEffects(void); +bool8 sub_8041364(void); +bool8 sub_8041728(void); +void b_clear_atk_up_if_hit_flag_unless_enraged(void); +u8 AtkCanceller_UnableToUseMove(void); +bool8 sub_80423F4(u8 bank, u8 r1, u8 r2); +u8 CastformDataTypeChange(u8 bank); +u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg); +void b_call_bc_move_exec(const u8* BS_ptr); +void b_push_move_exec(const u8* BS_ptr); +u8 ItemBattleEffects(u8 caseID, u8 bank, bool8 moveTurn); +void sub_8045868(u8 bank); +void sub_80458B4(void); +u8 GetMoveTarget(u16 move, u8 useMoveTarget); +u8 IsPokeDisobedient(void); + +// rom_80A5C6C +u8 GetBankSide(u8 bank); +u8 GetBankIdentity(u8 bank); +u8 GetBankByPlayerAI(u8 bank); + +// Move this somewhere else + #include "sprite.h" struct BattleSpritesGfx diff --git a/include/calculate_base_damage.h b/include/calculate_base_damage.h new file mode 100644 index 000000000..e9146c188 --- /dev/null +++ b/include/calculate_base_damage.h @@ -0,0 +1,6 @@ +#ifndef GUARD_CALCULATE_BASE_DAMAGE_H +#define GUARD_CALCULATE_BASE_DAMAGE_H + +s32 CalculateBaseDamage(struct BattlePokemon *attacker, struct BattlePokemon *defender, u32 move, u16 sideStatus, u16 powerOverride, u8 typeOverride, u8 bankAtk, u8 bankDef); + +#endif // GUARD_CALCULATE_BASE_DAMAGE_H -- cgit v1.2.3 From e7e1938094081ba2e20232caca0239cb2290251f Mon Sep 17 00:00:00 2001 From: scnorton Date: Tue, 19 Sep 2017 16:17:23 -0400 Subject: Start decompilation of lilycove_lady --- include/global.h | 35 ++++++++++++++++++++++++++++++++++- include/vars.h | 2 ++ 2 files changed, 36 insertions(+), 1 deletion(-) (limited to 'include') diff --git a/include/global.h b/include/global.h index e694a5974..764eff563 100644 --- a/include/global.h +++ b/include/global.h @@ -655,6 +655,39 @@ struct DaycareData #define FLAGS_COUNT 300 #define VARS_COUNT 256 +enum { + LILYCOVE_LADY_QUIZ, + LILYCOVE_LADY_FAVOUR, + LILYCOVE_LADY_CONTEST +}; + +typedef union // TODO +{ + struct + { + /*0x000*/ u8 id; + /*0x001*/ u8 language; + } quiz; + + struct + { + /*0x000*/ u8 id; + } flavor; + + struct + { + /*0x000*/ u8 id; + /*0x001*/ u8 filler_001[12]; + /*0x00d*/ u8 category; // maybe? + } contest; + + struct + { + /*0x000*/ u8 id; + /*0x001*/ u8 filler_001[535]; + } common; +} LilycoveLady; + struct SaveBlock1 { /*0x00*/ struct Coords16 pos; @@ -738,7 +771,7 @@ struct SaveBlock1 /*0x3728*/ struct RamScript ramScript; /*0x3B14*/ struct RecordMixingGift recordMixingGift; /*0x3B24*/ u8 seen2[52]; - /*0x3B58*/ u8 lilycoveLady[536]; // TODO: convert to a union + /*0x3B58*/ LilycoveLady lilycoveLady; // TODO: convert to a union /*0x3D70*/ u8 babyPhrase[24]; // TODO: convert to a struct // sizeof: 0x3D88 }; diff --git a/include/vars.h b/include/vars.h index 5da960640..7c0edeb77 100644 --- a/include/vars.h +++ b/include/vars.h @@ -12,6 +12,8 @@ #define VAR_0x4008 0x4008 #define VAR_0x4009 0x4009 #define VAR_0x400A 0x400A +#define VAR_0x4010 0x4010 +#define VAR_0x4011 0x4011 #define VAR_0x401F 0x401F #define VAR_RECYCLE_GOODS 0x4020 #define VAR_REPEL_STEP_COUNT 0x4021 -- cgit v1.2.3 From b26eb6713bb866f1173b4c7192ce231d894d19ea Mon Sep 17 00:00:00 2001 From: scnorton Date: Tue, 19 Sep 2017 16:32:33 -0400 Subject: sub_818DB20 --- include/global.h | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'include') diff --git a/include/global.h b/include/global.h index 764eff563..92435ce28 100644 --- a/include/global.h +++ b/include/global.h @@ -672,7 +672,11 @@ typedef union // TODO struct { /*0x000*/ u8 id; - } flavor; + /*0x001*/ u8 filler_001[11]; + /*0x00c*/ u8 unk_00c; + /*0x00d*/ u8 filler_00d[3]; + /*0x010*/ u16 unk_010; + } favour; struct { -- cgit v1.2.3 From 4e8a2c6934c4f8a44ed8d350fe96996beda21d0e Mon Sep 17 00:00:00 2001 From: scnorton Date: Tue, 19 Sep 2017 16:55:53 -0400 Subject: SetLilycoveFavourLady --- include/global.h | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) (limited to 'include') diff --git a/include/global.h b/include/global.h index 92435ce28..0fc860e68 100644 --- a/include/global.h +++ b/include/global.h @@ -672,10 +672,16 @@ typedef union // TODO struct { /*0x000*/ u8 id; - /*0x001*/ u8 filler_001[11]; + /*0x001*/ u8 unk_001; + /*0x002*/ u8 unk_002; + /*0x003*/ u8 unk_003; + /*0x004*/ u8 unk_004; + /*0x005*/ u8 filler_005[7]; /*0x00c*/ u8 unk_00c; - /*0x00d*/ u8 filler_00d[3]; + /*0x00d*/ u8 filler_00d; + /*0x00e*/ u16 unk_00e; /*0x010*/ u16 unk_010; + /*0x012*/ u8 language; } favour; struct -- cgit v1.2.3 From 3b3423d1a751134ff7941b41bad72e0e75314647 Mon Sep 17 00:00:00 2001 From: scnorton Date: Tue, 19 Sep 2017 17:07:36 -0400 Subject: sub_818DC60 --- include/global.h | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) (limited to 'include') diff --git a/include/global.h b/include/global.h index 0fc860e68..42629cf48 100644 --- a/include/global.h +++ b/include/global.h @@ -675,8 +675,7 @@ typedef union // TODO /*0x001*/ u8 unk_001; /*0x002*/ u8 unk_002; /*0x003*/ u8 unk_003; - /*0x004*/ u8 unk_004; - /*0x005*/ u8 filler_005[7]; + /*0x004*/ u8 unk_004[8]; /*0x00c*/ u8 unk_00c; /*0x00d*/ u8 filler_00d; /*0x00e*/ u16 unk_00e; -- cgit v1.2.3 From b4875d82d50b0649c2289b9e470ca0a9ae23782d Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Wed, 20 Sep 2017 00:28:00 +0200 Subject: more battle 4 --- include/battle.h | 31 ++++++++++++++++++++++++++----- include/battle_controllers.h | 11 +++++++++++ 2 files changed, 37 insertions(+), 5 deletions(-) create mode 100644 include/battle_controllers.h (limited to 'include') diff --git a/include/battle.h b/include/battle.h index b04b8db8f..f9615b889 100644 --- a/include/battle.h +++ b/include/battle.h @@ -213,6 +213,19 @@ #define MOVE_TARGET_FOES_AND_ALLY 0x20 #define MOVE_TARGET_OPPONENTS_FIELD 0x40 +#define TYPE_MUL_NO_EFFECT 0 +#define TYPE_MUL_NOT_EFFECTIVE 5 +#define TYPE_MUL_NORMAL 10 +#define TYPE_MUL_SUPER_EFFECTIVE 20 + +#define BS_GET_TARGET 0 +#define BS_GET_ATTACKER 1 +#define BS_GET_EFFECT_BANK 2 +#define BS_GET_SCRIPTING_BANK 10 +#define BS_GET_OPPONENT1 12 +#define BS_GET_PLAYER2 13 +#define BS_GET_OPPONENT2 14 + struct Trainer { /*0x00*/ u8 partyFlags; @@ -640,14 +653,16 @@ extern struct BattleStruct* gBattleStruct; var2[offsetof(struct structName, offsetField)] = value; \ } -#define GET_MOVE_TYPE(move, type) \ +#define GET_MOVE_TYPE(move, typeArg) \ { \ if (gBattleStruct->dynamicMoveType) \ - type = gBattleStruct->dynamicMoveType & 0x3F; \ + typeArg = gBattleStruct->dynamicMoveType & 0x3F; \ else \ - type = gBattleMoves[move].type; \ + typeArg = gBattleMoves[move].type; \ } +#define GET_BANK_SIDE(bank)((GetBankIdentity(bank) & 1)) + struct BattleScripting { u8 field_0; @@ -671,8 +686,8 @@ struct BattleScripting u8 field_15; u8 field_16; u8 bank; - u8 field_18; - u8 field_19; + u8 animTurn; + u8 animTargetsHit; u8 statChanger; }; @@ -684,6 +699,7 @@ extern struct BattleScripting gBattleScripting; void CancelMultiTurnMoves(u8 bank); void PressurePPLose(u8 bankAtk, u8 bankDef, u16 move); void PrepareStringBattle(u16 stringId, u8 bank); +u8 GetBattleBank(u8 caseId); // battle_3 void b_movescr_stack_push(const u8* bsPtr); @@ -709,6 +725,11 @@ void sub_80458B4(void); u8 GetMoveTarget(u16 move, u8 useMoveTarget); u8 IsPokeDisobedient(void); +// battle_4 +void AI_CalcDmg(u8 bankAtk, u8 bankDef); +u8 TypeCalc(u16 move, u8 bankAtk, u8 bankDef); +u8 AI_TypeCalc(u16 move, u16 species, u8 ability); + // rom_80A5C6C u8 GetBankSide(u8 bank); u8 GetBankIdentity(u8 bank); diff --git a/include/battle_controllers.h b/include/battle_controllers.h new file mode 100644 index 000000000..5723cf9da --- /dev/null +++ b/include/battle_controllers.h @@ -0,0 +1,11 @@ +#ifndef GUARD_BATTLE_CONTROLLERS_H +#define GUARD_BATTLE_CONTROLLERS_H + +// rom3.s, emitters +void EmitSetAttributes(u8 bufferId, u8 request, u8 c, u8 bytes, void *data); +void EmitMoveAnimation(u8 bufferId, u16 move, u8 turnOfMove, u16 movePower, s32 dmg, u8 friendship, struct DisableStruct* disableStructPtr, u8 multihit); +void EmitHealthBarUpdate(u8 bufferId, u16 hpValue); + +void MarkBufferBankForExecution(u8 bank); + +#endif // GUARD_BATTLE_CONTROLLERS_H -- cgit v1.2.3 From 316f9f4d83d118437c266526cc0e6da1dfc90461 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Tue, 19 Sep 2017 21:28:01 -0400 Subject: through sub_818DD14 --- include/global.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'include') diff --git a/include/global.h b/include/global.h index 64ed869ef..8c2122b39 100644 --- a/include/global.h +++ b/include/global.h @@ -684,7 +684,7 @@ typedef union // TODO /*0x004*/ u8 unk_004[8]; /*0x00c*/ u8 unk_00c; /*0x00d*/ u8 filler_00d; - /*0x00e*/ u16 unk_00e; + /*0x00e*/ u16 itemId; /*0x010*/ u16 unk_010; /*0x012*/ u8 language; } favour; -- cgit v1.2.3 From 534dd2c4b0259f87657b2e8795d96217e8bf12cc Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Tue, 19 Sep 2017 21:47:15 -0400 Subject: sub_818DD84 --- include/item_menu.h | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 include/item_menu.h (limited to 'include') diff --git a/include/item_menu.h b/include/item_menu.h new file mode 100644 index 000000000..f402f5cdd --- /dev/null +++ b/include/item_menu.h @@ -0,0 +1,11 @@ +#ifndef GUARD_item_menu_H +#define GUARD_item_menu_H + +// Exported type declarations + +// Exported RAM declarations + +// Exported ROM declarations +void sub_81AAC50(void); + +#endif //GUARD_item_menu_H -- cgit v1.2.3 From 73ee165ef6b05417dc42be721e625712c6538ed6 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Tue, 19 Sep 2017 22:25:31 -0400 Subject: sub_818DF00 --- include/global.h | 66 +++++++++++++++++++++++++++++++++----------------------- 1 file changed, 39 insertions(+), 27 deletions(-) (limited to 'include') diff --git a/include/global.h b/include/global.h index 8c2122b39..42fe0cfbb 100644 --- a/include/global.h +++ b/include/global.h @@ -667,39 +667,51 @@ enum { LILYCOVE_LADY_CONTEST }; -typedef union // TODO +struct LilycoveLadyQuiz { - struct - { - /*0x000*/ u8 id; - /*0x001*/ u8 language; - } quiz; + /*0x000*/ u8 id; + /*0x001*/ u8 language; + /*0x002*/ u16 unk_002[9]; + /*0x014*/ u16 unk_014; + /*0x016*/ u8 filler_016[2]; + /*0x018*/ u8 unk_018; + /*0x019*/ u8 filler_019[15]; + /*0x028*/ u16 unk_028; + /*0x02a*/ u8 filler_02a; + /*0x02b*/ u8 unk_02b; +}; - struct - { - /*0x000*/ u8 id; - /*0x001*/ u8 unk_001; - /*0x002*/ u8 unk_002; - /*0x003*/ u8 unk_003; - /*0x004*/ u8 unk_004[8]; - /*0x00c*/ u8 unk_00c; - /*0x00d*/ u8 filler_00d; - /*0x00e*/ u16 itemId; - /*0x010*/ u16 unk_010; - /*0x012*/ u8 language; - } favour; +struct LilycoveLadyFavour +{ + /*0x000*/ u8 id; + /*0x001*/ u8 unk_001; + /*0x002*/ u8 unk_002; + /*0x003*/ u8 unk_003; + /*0x004*/ u8 unk_004[8]; + /*0x00c*/ u8 unk_00c; + /*0x00d*/ u8 filler_00d; + /*0x00e*/ u16 itemId; + /*0x010*/ u16 unk_010; + /*0x012*/ u8 language; +}; - struct - { - /*0x000*/ u8 id; - /*0x001*/ u8 filler_001[12]; - /*0x00d*/ u8 category; // maybe? - } contest; +struct LilycoveLadyContest +{ + /*0x000*/ u8 id; + /*0x001*/ u8 filler_001[12]; + /*0x00d*/ u8 category; // maybe? +}; + +typedef union // TODO +{ + struct LilycoveLadyQuiz quiz; + struct LilycoveLadyFavour favour; + struct LilycoveLadyContest contest; struct { /*0x000*/ u8 id; - /*0x001*/ u8 filler_001[535]; + /*0x001*/ u8 filler_001[0x207]; } common; } LilycoveLady; @@ -786,7 +798,7 @@ struct SaveBlock1 /*0x3728*/ struct RamScript ramScript; /*0x3B14*/ struct RecordMixingGift recordMixingGift; /*0x3B24*/ u8 seen2[52]; - /*0x3B58*/ LilycoveLady lilycoveLady; // TODO: convert to a union + /*0x3B58*/ LilycoveLady lilycoveLady; /*0x3D70*/ u8 babyPhrase[24]; // TODO: convert to a struct // sizeof: 0x3D88 }; -- cgit v1.2.3 From 28d0fa33fef825dcb22d45db966ef814c461dd08 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Tue, 19 Sep 2017 22:35:40 -0400 Subject: SetLilicoveQuizLady --- include/global.h | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) (limited to 'include') diff --git a/include/global.h b/include/global.h index 42fe0cfbb..84c70a16e 100644 --- a/include/global.h +++ b/include/global.h @@ -670,15 +670,18 @@ enum { struct LilycoveLadyQuiz { /*0x000*/ u8 id; - /*0x001*/ u8 language; + /*0x001*/ u8 unk_001; /*0x002*/ u16 unk_002[9]; /*0x014*/ u16 unk_014; - /*0x016*/ u8 filler_016[2]; + /*0x016*/ u16 unk_016; /*0x018*/ u8 unk_018; - /*0x019*/ u8 filler_019[15]; + /*0x019*/ u8 filler_019[7]; + /*0x020*/ u16 unk_020[4]; /*0x028*/ u16 unk_028; - /*0x02a*/ u8 filler_02a; + /*0x02a*/ u8 unk_02a; /*0x02b*/ u8 unk_02b; + /*0x02c*/ u8 unk_02c; + /*0x02d*/ u8 language; }; struct LilycoveLadyFavour -- cgit v1.2.3 From 28da80e19af3270b827e98c2e7c69c0199d14d05 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Wed, 20 Sep 2017 12:56:45 +0200 Subject: battle 4 up to SetMoveEffect --- include/battle.h | 1 + include/battle_controllers.h | 2 ++ include/songs.h | 4 ++-- 3 files changed, 5 insertions(+), 2 deletions(-) (limited to 'include') diff --git a/include/battle.h b/include/battle.h index f9615b889..6550a66d3 100644 --- a/include/battle.h +++ b/include/battle.h @@ -729,6 +729,7 @@ u8 IsPokeDisobedient(void); void AI_CalcDmg(u8 bankAtk, u8 bankDef); u8 TypeCalc(u16 move, u8 bankAtk, u8 bankDef); u8 AI_TypeCalc(u16 move, u16 species, u8 ability); +u8 BankGetTurnOrder(u8 bank); // rom_80A5C6C u8 GetBankSide(u8 bank); diff --git a/include/battle_controllers.h b/include/battle_controllers.h index 5723cf9da..b23649192 100644 --- a/include/battle_controllers.h +++ b/include/battle_controllers.h @@ -5,6 +5,8 @@ void EmitSetAttributes(u8 bufferId, u8 request, u8 c, u8 bytes, void *data); void EmitMoveAnimation(u8 bufferId, u16 move, u8 turnOfMove, u16 movePower, s32 dmg, u8 friendship, struct DisableStruct* disableStructPtr, u8 multihit); void EmitHealthBarUpdate(u8 bufferId, u16 hpValue); +void EmitEffectivenessSound(u8 bufferId, u16 songId); +void EmitPrintStringPlayerOnly(u8 bufferId, u16 stringId); void MarkBufferBankForExecution(u8 bank); diff --git a/include/songs.h b/include/songs.h index afd26d683..028c163d6 100644 --- a/include/songs.h +++ b/include/songs.h @@ -15,8 +15,8 @@ enum /*0x09*/ SE_KAIDAN, /*0x0A*/ SE_DANSA, /*0x0B*/ SE_JITENSYA, - /*0x0C*/ SE_KOUKA_L, - /*0x0D*/ SE_KOUKA_M, + /*0x0C*/ SE_KOUKA_L, // Goggle told me Kouka means 'effectiveness' which makes sense, because + /*0x0D*/ SE_KOUKA_M, // those three sounds play whenever you use a move /*0x0E*/ SE_KOUKA_H, /*0x0F*/ SE_BOWA2, /*0x10*/ SE_POKE_DEAD, -- cgit v1.2.3 From 0b81c2920aa87aae3403efdf60e40b58445efbbf Mon Sep 17 00:00:00 2001 From: scnorton Date: Wed, 20 Sep 2017 10:45:00 -0400 Subject: sub_818E1F4 --- include/global.h | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) (limited to 'include') diff --git a/include/global.h b/include/global.h index 84c70a16e..569345355 100644 --- a/include/global.h +++ b/include/global.h @@ -674,9 +674,8 @@ struct LilycoveLadyQuiz /*0x002*/ u16 unk_002[9]; /*0x014*/ u16 unk_014; /*0x016*/ u16 unk_016; - /*0x018*/ u8 unk_018; - /*0x019*/ u8 filler_019[7]; - /*0x020*/ u16 unk_020[4]; + /*0x018*/ u8 playerName[8]; + /*0x020*/ u16 playerTrainerId[4]; /*0x028*/ u16 unk_028; /*0x02a*/ u8 unk_02a; /*0x02b*/ u8 unk_02b; @@ -690,9 +689,8 @@ struct LilycoveLadyFavour /*0x001*/ u8 unk_001; /*0x002*/ u8 unk_002; /*0x003*/ u8 unk_003; - /*0x004*/ u8 unk_004[8]; + /*0x004*/ u8 playerName[8]; /*0x00c*/ u8 unk_00c; - /*0x00d*/ u8 filler_00d; /*0x00e*/ u16 itemId; /*0x010*/ u16 unk_010; /*0x012*/ u8 language; -- cgit v1.2.3 From 8a31e58689af6e62c8c272c24397310c2a44f6f5 Mon Sep 17 00:00:00 2001 From: scnorton Date: Wed, 20 Sep 2017 11:30:09 -0400 Subject: sub_818E298 --- include/global.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'include') diff --git a/include/global.h b/include/global.h index 569345355..09dabf822 100644 --- a/include/global.h +++ b/include/global.h @@ -676,7 +676,7 @@ struct LilycoveLadyQuiz /*0x016*/ u16 unk_016; /*0x018*/ u8 playerName[8]; /*0x020*/ u16 playerTrainerId[4]; - /*0x028*/ u16 unk_028; + /*0x028*/ u16 itemId; /*0x02a*/ u8 unk_02a; /*0x02b*/ u8 unk_02b; /*0x02c*/ u8 unk_02c; -- cgit v1.2.3 From 213fef604247d31f6981bd83c703bb1d3e1bbd31 Mon Sep 17 00:00:00 2001 From: scnorton Date: Wed, 20 Sep 2017 11:44:20 -0400 Subject: through sub_818E308 --- include/easy_chat.h | 2 ++ 1 file changed, 2 insertions(+) (limited to 'include') diff --git a/include/easy_chat.h b/include/easy_chat.h index 5143aa39c..d7dc72410 100644 --- a/include/easy_chat.h +++ b/include/easy_chat.h @@ -29,5 +29,7 @@ enum }; void InitEasyChatPhrases(void); +void easy_chat_input_maybe(void); +void CopyEasyChatWord(u8 *, u16); #endif // GUARD_EASYCHAT_H -- cgit v1.2.3 From fdea92edffb4360db50cb0e7dcc044dc7242defe Mon Sep 17 00:00:00 2001 From: scnorton Date: Wed, 20 Sep 2017 11:48:11 -0400 Subject: through sub_818E3E0 --- include/item_menu.h | 1 + 1 file changed, 1 insertion(+) (limited to 'include') diff --git a/include/item_menu.h b/include/item_menu.h index f402f5cdd..85655e9d5 100644 --- a/include/item_menu.h +++ b/include/item_menu.h @@ -7,5 +7,6 @@ // Exported ROM declarations void sub_81AAC50(void); +void sub_81AAC70(void); #endif //GUARD_item_menu_H -- cgit v1.2.3 From d22a9acc63b9f7c72e0d7ec81396b799af94e270 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Wed, 20 Sep 2017 16:12:18 -0400 Subject: through sub_818E490 --- include/global.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'include') diff --git a/include/global.h b/include/global.h index 09dabf822..6fa8cb92d 100644 --- a/include/global.h +++ b/include/global.h @@ -712,7 +712,7 @@ typedef union // TODO struct { /*0x000*/ u8 id; - /*0x001*/ u8 filler_001[0x207]; + /*0x001*/ u8 filler_001[0x217]; } common; } LilycoveLady; -- cgit v1.2.3 From 7c8cbc6b88d745da215fc45730f84b598869438f Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Wed, 20 Sep 2017 16:49:22 -0400 Subject: SetLilycoveContestLady --- include/global.h | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) (limited to 'include') diff --git a/include/global.h b/include/global.h index 6fa8cb92d..fa7856786 100644 --- a/include/global.h +++ b/include/global.h @@ -670,7 +670,7 @@ enum { struct LilycoveLadyQuiz { /*0x000*/ u8 id; - /*0x001*/ u8 unk_001; + /*0x001*/ u8 phase; /*0x002*/ u16 unk_002[9]; /*0x014*/ u16 unk_014; /*0x016*/ u16 unk_016; @@ -686,7 +686,7 @@ struct LilycoveLadyQuiz struct LilycoveLadyFavour { /*0x000*/ u8 id; - /*0x001*/ u8 unk_001; + /*0x001*/ u8 phase; /*0x002*/ u8 unk_002; /*0x003*/ u8 unk_003; /*0x004*/ u8 playerName[8]; @@ -699,8 +699,13 @@ struct LilycoveLadyFavour struct LilycoveLadyContest { /*0x000*/ u8 id; - /*0x001*/ u8 filler_001[12]; - /*0x00d*/ u8 category; // maybe? + /*0x001*/ u8 phase; + /*0x002*/ u8 fave_pkblk; + /*0x003*/ u8 other_pkblk; + /*0x004*/ u8 playerName[8]; + /*0x00c*/ u8 max_sheen; + /*0x00d*/ u8 category; + /*0x00e*/ u8 language; }; typedef union // TODO @@ -708,12 +713,7 @@ typedef union // TODO struct LilycoveLadyQuiz quiz; struct LilycoveLadyFavour favour; struct LilycoveLadyContest contest; - - struct - { - /*0x000*/ u8 id; - /*0x001*/ u8 filler_001[0x217]; - } common; + u8 id; } LilycoveLady; struct SaveBlock1 @@ -800,6 +800,7 @@ struct SaveBlock1 /*0x3B14*/ struct RecordMixingGift recordMixingGift; /*0x3B24*/ u8 seen2[52]; /*0x3B58*/ LilycoveLady lilycoveLady; + /*0x3B88*/ u8 filler_3B88[0x1E8]; /*0x3D70*/ u8 babyPhrase[24]; // TODO: convert to a struct // sizeof: 0x3D88 }; -- cgit v1.2.3 From 0c7555e237e44e0c0056946822e861ec022fcefe Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Wed, 20 Sep 2017 22:54:26 +0200 Subject: SetMoveEffect functionally equivalent and close --- include/battle.h | 37 +++++++++++++++++++++++++++++++++---- 1 file changed, 33 insertions(+), 4 deletions(-) (limited to 'include') diff --git a/include/battle.h b/include/battle.h index 6550a66d3..56b74aa62 100644 --- a/include/battle.h +++ b/include/battle.h @@ -376,7 +376,7 @@ struct WishFutureKnock u8 wishCounter[BATTLE_BANKS_COUNT]; u8 wishUserID[BATTLE_BANKS_COUNT]; u8 weatherDuration; - u16 knockedOffPokes; + u8 knockedOffPokes[2]; }; extern struct WishFutureKnock gWishFutureKnock; @@ -627,10 +627,10 @@ struct BattleStruct u8 field_B5; u8 field_B6; u8 field_B7; - u16 usedHeldItems[4]; + u16 usedHeldItems[BATTLE_BANKS_COUNT]; u8 field_C0[8]; - u16 choicedMove[4]; - u8 field_D0[8]; + u16 choicedMove[BATTLE_BANKS_COUNT]; + u16 field_D0[BATTLE_BANKS_COUNT]; u8 intimidateBank; u8 fillerD9[0xDA-0xD9]; u8 field_DA; @@ -663,6 +663,35 @@ extern struct BattleStruct* gBattleStruct; #define GET_BANK_SIDE(bank)((GetBankIdentity(bank) & 1)) +#define MOVE_EFFECT_SLEEP 0x1 +#define MOVE_EFFECT_POISON 0x2 +#define MOVE_EFFECT_BURN 0x3 +#define MOVE_EFFECT_FREEZE 0x4 +#define MOVE_EFFECT_PARALYSIS 0x5 +#define MOVE_EFFECT_TOXIC 0x6 +#define MOVE_EFFECT_CONFUSION 0x7 +#define MOVE_EFFECT_FLINCH 0x8 +#define MOVE_EFFECT_TRI_ATTACK 0x9 +#define MOVE_EFFECT_UPROAR 0xA +#define MOVE_EFFECT_PAYDAY 0xB +#define MOVE_EFFECT_CHARGING 0xC +#define MOVE_EFFECT_WRAP 0xD +#define MOVE_EFFECT_RECOIL_25 0xE +#define MOVE_EFFECT_RECHARGE 0x1D +#define MOVE_EFFECT_RAGE 0x1E +#define MOVE_EFFECT_STEAL_ITEM 0x1F +#define MOVE_EFFECT_PREVENT_ESCAPE 0x20 +#define MOVE_EFFECT_NIGHTMARE 0x21 +#define MOVE_EFFECT_ALL_STATS_UP 0x22 +#define MOVE_EFFECT_RAPIDSPIN 0x23 +#define MOVE_EFFECT_REMOVE_PARALYSIS 0x24 +#define MOVE_EFFECT_ATK_DEF_DOWN 0x25 +#define MOVE_EFFECT_RECOIL_33_PARALYSIS 0x26 +#define MOVE_EFFECT_THRASH 0x35 +#define MOVE_EFFECT_KNOCK_OFF 0x36 +#define MOVE_EFFECT_SP_ATK_TWO_DOWN 0x3B +#define MOVE_EFFECT_AFFECTS_USER 0x40 + struct BattleScripting { u8 field_0; -- cgit v1.2.3 From d263750f1903a89fc61b2496453ff1c5b4b9a58b Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Wed, 20 Sep 2017 20:48:32 -0400 Subject: remaining lilycove lady functions --- include/rom4.h | 1 + include/rom6.h | 6 ++++++ 2 files changed, 7 insertions(+) create mode 100644 include/rom6.h (limited to 'include') diff --git a/include/rom4.h b/include/rom4.h index a1c4281e9..e19d277a6 100644 --- a/include/rom4.h +++ b/include/rom4.h @@ -28,5 +28,6 @@ void strange_npc_table_clear(void); const struct MapHeader *get_mapheader_by_bank_and_number(u8, u8); void FieldObjectMoveDestCoords(struct MapObject *, u32, s16 *, s16 *); void sub_8086230(void); +void c2_exit_to_overworld_2_switch(void); #endif //GUARD_ROM4_H diff --git a/include/rom6.h b/include/rom6.h new file mode 100644 index 000000000..15070616d --- /dev/null +++ b/include/rom6.h @@ -0,0 +1,6 @@ +#ifndef GUARD_ROM6_H +#define GUARD_ROM6_H + +void sub_81357FC(u8, void(void)); + +#endif //GUARD_ROM6_H -- cgit v1.2.3 From 942fbe87d42ed1208217deac3cfa4f21908d446a Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Wed, 20 Sep 2017 21:03:57 -0400 Subject: Populate header, label as static whatever won't break things --- include/easy_chat.h | 1 + include/lilycove_lady.h | 11 +++++++++++ 2 files changed, 12 insertions(+) (limited to 'include') diff --git a/include/easy_chat.h b/include/easy_chat.h index d7dc72410..fc44b6a8a 100644 --- a/include/easy_chat.h +++ b/include/easy_chat.h @@ -31,5 +31,6 @@ enum void InitEasyChatPhrases(void); void easy_chat_input_maybe(void); void CopyEasyChatWord(u8 *, u16); +bool32 sub_811F8D8(u16); #endif // GUARD_EASYCHAT_H diff --git a/include/lilycove_lady.h b/include/lilycove_lady.h index 81825d8ac..c7776131b 100644 --- a/include/lilycove_lady.h +++ b/include/lilycove_lady.h @@ -1,6 +1,17 @@ #ifndef GUARD_LILYCOVE_LADY_H #define GUARD_LILYCOVE_LADY_H +u8 GetLilycoveLadyId(void); void SetLilycoveLady(void); +void sub_818DA78(void); +void sub_818DEF4(void); +void sub_818E564(void); +void sub_818E570(const struct LilycoveLadyQuiz *quiz); +bool8 sub_818E704(struct Pokeblock *pokeblock); +void sub_818E7E0(u8 *dest1, u8 *dest2); +void sub_818E81C(u8 *dest); +void sub_818E848(u8 *dest); +void sub_818E868(u8 *dest, u8 category); +u8 sub_818E880(void); #endif //GUARD_LILYCOVE_LADY_H -- cgit v1.2.3 From 15212c4f8d80b4e15b20d0594d890fe1e803bc0e Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Thu, 21 Sep 2017 23:43:13 -0400 Subject: Font6Func --- include/text.h | 52 ++++++++++++++++++++++++++++++++++++---------------- 1 file changed, 36 insertions(+), 16 deletions(-) (limited to 'include') diff --git a/include/text.h b/include/text.h index c61f6cc98..a7a79da7a 100644 --- a/include/text.h +++ b/include/text.h @@ -78,6 +78,22 @@ #define NUM_TEXT_PRINTERS 32 +struct TextPrinterSubStruct +{ + u8 font_type:4; // 0x14 + u8 font_type_upper:1; + u8 font_type_5:3; + u8 field_1:5; + u8 field_1_upmid:2; + u8 field_1_top:1; + u8 frames_visible_counter; + u8 field_3; + u8 field_4; // 0x18 + u8 field_5; + u8 field_6; + u8 active; +}; + struct TextPrinter { struct TextSubPrinter { // TODO: Better name @@ -99,20 +115,7 @@ struct TextPrinter void (*callback)(struct TextSubPrinter *, u16); // 0x10 union { - struct TextPrinterSubStruct - { - u8 font_type:4; // 0x14 - u8 font_type_upper:4; - u8 field_1:5; - u8 field_1_upmid:2; - u8 field_1_top:1; - u8 frames_visible_counter; - u8 field_3; - u8 field_4; // 0x18 - u8 field_5; - u8 field_6; - u8 active; - } sub; + struct TextPrinterSubStruct sub; u8 sub_fields[8]; } sub_union; @@ -138,6 +141,8 @@ struct FontInfo u8 shadowColor:4; }; +extern const struct FontInfo *gFonts; + struct GlyphWidthFunc{ u32 font_id; u32 (*func)(u16 glyphId, bool32 isJapanese); @@ -149,11 +154,26 @@ struct KeypadIcon { u8 height; }; +typedef struct { + u8 flag_0:1; + u8 flag_1:1; + u8 flag_2:1; +} TextFlags; + +extern TextFlags gTextFlags; + extern u8 gStringVar1[]; extern u8 gStringVar2[]; extern u8 gStringVar3[]; extern u8 gStringVar4[]; +u8 gUnknown_03002F84; +u8 gUnknown_03002F90[0x20]; +u8 gUnknown_03002FB0[0x20]; +u8 gUnknown_03002FD0[0x20]; +u8 gUnknown_03002FF0[0x20]; +u8 gGlyphDimensions[0x2]; + void SetFontsPointer(const struct FontInfo *fonts); void DeactivateAllTextPrinters (void); u16 PrintTextOnWindow(u8 windowId, u8 fontId, u8 *str, u8 x, u8 y, u8 speed, void (*callback)(struct TextSubPrinter *, u16)); @@ -182,8 +202,8 @@ void TextPrinterInitDownArrowCounters(struct TextPrinter *textPrinter); void TextPrinterDrawDownArrow(struct TextPrinter *textPrinter); void TextPrinterClearDownArrow(struct TextPrinter *textPrinter); bool8 TextPrinterWaitAutoMode(struct TextPrinter *textPrinter); -bool8 TextPrinterWaitWithDownArrow(struct TextPrinter *textPrinter); -bool8 TextPrinterWait(struct TextPrinter *textPrinter); +bool16 TextPrinterWaitWithDownArrow(struct TextPrinter *textPrinter); +bool16 TextPrinterWait(struct TextPrinter *textPrinter); void DrawDownArrow(u8 windowId, u16 x, u16 y, u8 bgColor, bool8 drawArrow, u8 *counter, u8 *yCoordIndex); u16 RenderText(struct TextPrinter *textPrinter); u32 GetStringWidthFixedWidthFont(const u8 *str, u8 fontId, u8 letterSpacing); -- cgit v1.2.3 From d5afb0c6e9566a62ca6d597aeabc173b2c3e7fa5 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Fri, 22 Sep 2017 21:33:49 +0200 Subject: up to x48 and troubles --- include/battle.h | 144 ++++++++++++++++++++++++++++++++++++++----- include/battle_controllers.h | 3 + include/pokemon.h | 3 + 3 files changed, 133 insertions(+), 17 deletions(-) (limited to 'include') diff --git a/include/battle.h b/include/battle.h index 56b74aa62..920a60060 100644 --- a/include/battle.h +++ b/include/battle.h @@ -218,13 +218,23 @@ #define TYPE_MUL_NORMAL 10 #define TYPE_MUL_SUPER_EFFECTIVE 20 -#define BS_GET_TARGET 0 -#define BS_GET_ATTACKER 1 -#define BS_GET_EFFECT_BANK 2 -#define BS_GET_SCRIPTING_BANK 10 -#define BS_GET_OPPONENT1 12 -#define BS_GET_PLAYER2 13 -#define BS_GET_OPPONENT2 14 +#define BS_GET_TARGET 0 +#define BS_GET_ATTACKER 1 +#define BS_GET_EFFECT_BANK 2 +#define BS_GET_ATTACKER_SIDE 8 // for atk1E_jumpifability +#define BS_GET_NOT_ATTACKER_SIDE 9 // for atk1E_jumpifability +#define BS_GET_SCRIPTING_BANK 10 +#define BS_GET_OPPONENT1 12 +#define BS_GET_PLAYER2 13 +#define BS_GET_OPPONENT2 14 + +// for battle script commands +#define CMP_EQUAL 0x0 +#define CMP_NOT_EQUAL 0x1 +#define CMP_GREATER_THAN 0x2 +#define CMP_LESS_THAN 0x3 +#define CMP_COMMON_BITS 0x4 +#define CMP_NO_COMMON_BITS 0x5 struct Trainer { @@ -422,13 +432,23 @@ struct BattleCallbacksStack u8 size; }; +struct StatsArray +{ + u16 hp; + u16 atk; + u16 def; + u16 spd; + u16 spAtk; + u16 spDef; +}; + struct BattleResources { struct SecretBaseRecord* secretBase; struct UnknownFlags *flags; struct BattleScriptsStack* battleScriptsStack; struct BattleCallbacksStack* battleCallbackStack; - void* statsBeforeLvlUp; + struct StatsArray* statsBeforeLvlUp; struct AI_ThinkingStruct *ai; struct BattleHistory *battleHistory; struct BattleScriptsStack *AI_ScriptsStack; @@ -438,6 +458,7 @@ extern struct BattleResources* gBattleResources; #define BATTLESCRIPTS_STACK (gBattleResources->battleScriptsStack) #define BATTLE_CALLBACKS_STACK (gBattleResources->battleCallbackStack) +#define BATTLE_LVLUP_STATS (gBattleResources->statsBeforeLvlUp) struct BattleResults { @@ -536,14 +557,10 @@ struct BattleStruct u8 field_4D; u8 field_4E; u8 field_4F; - u8 field_50; - u8 field_51; + u16 expValue; u8 field_52; - u8 field_53; - u8 field_54; - u8 field_55; - u8 field_56; - u8 field_57; + u8 sentInPokes; + u8 field_54[4]; u8 field_58; u8 field_59; u8 field_5A; @@ -642,6 +659,11 @@ struct BattleStruct u8 field_1A1; u8 filler1A2; u8 atkCancellerTracker; + u8 field_1A4[240]; + u8 field_294[4]; + u8 field_298[8]; + u8 field_2A0; + u8 field_2A1; }; extern struct BattleStruct* gBattleStruct; @@ -677,6 +699,20 @@ extern struct BattleStruct* gBattleStruct; #define MOVE_EFFECT_CHARGING 0xC #define MOVE_EFFECT_WRAP 0xD #define MOVE_EFFECT_RECOIL_25 0xE +#define MOVE_EFFECT_ATK_PLUS_1 0xF +#define MOVE_EFFECT_DEF_PLUS_1 0x10 +#define MOVE_EFFECT_SPD_PLUS_1 0x11 +#define MOVE_EFFECT_SP_ATK_PLUS_1 0x12 +#define MOVE_EFFECT_SP_DEF_PLUS_1 0x13 +#define MOVE_EFFECT_ACC_PLUS_1 0x14 +#define MOVE_EFFECT_EVS_PLUS_1 0x15 +#define MOVE_EFFECT_ATK_MINUS_1 0x16 +#define MOVE_EFFECT_DEF_MINUS_1 0x17 +#define MOVE_EFFECT_SPD_MINUS_1 0x18 +#define MOVE_EFFECT_SP_ATK_MINUS_1 0x19 +#define MOVE_EFFECT_SP_DEF_MINUS_1 0x1A +#define MOVE_EFFECT_ACC_MINUS_1 0x1B +#define MOVE_EFFECT_EVS_MINUS_1 0x1C #define MOVE_EFFECT_RECHARGE 0x1D #define MOVE_EFFECT_RAGE 0x1E #define MOVE_EFFECT_STEAL_ITEM 0x1F @@ -687,10 +723,73 @@ extern struct BattleStruct* gBattleStruct; #define MOVE_EFFECT_REMOVE_PARALYSIS 0x24 #define MOVE_EFFECT_ATK_DEF_DOWN 0x25 #define MOVE_EFFECT_RECOIL_33_PARALYSIS 0x26 +#define MOVE_EFFECT_ATK_PLUS_2 0x27 +#define MOVE_EFFECT_DEF_PLUS_2 0x28 +#define MOVE_EFFECT_SPD_PLUS_2 0x29 +#define MOVE_EFFECT_SP_ATK_PLUS_2 0x2A +#define MOVE_EFFECT_SP_DEF_PLUS_2 0x2B +#define MOVE_EFFECT_ACC_PLUS_2 0x2C +#define MOVE_EFFECT_EVS_PLUS_2 0x2D +#define MOVE_EFFECT_ATK_MINUS_2 0x2E +#define MOVE_EFFECT_DEF_MINUS_2 0x2F +#define MOVE_EFFECT_SPD_MINUS_2 0x30 +#define MOVE_EFFECT_SP_ATK_MINUS_2 0x31 +#define MOVE_EFFECT_SP_DEF_MINUS_2 0x32 +#define MOVE_EFFECT_ACC_MINUS_2 0x33 +#define MOVE_EFFECT_EVS_MINUS_2 0x34 #define MOVE_EFFECT_THRASH 0x35 #define MOVE_EFFECT_KNOCK_OFF 0x36 +#define MOVE_EFFECT_NOTHING_37 0x37 +#define MOVE_EFFECT_NOTHING_38 0x38 +#define MOVE_EFFECT_NOTHING_39 0x39 +#define MOVE_EFFECT_NOTHING_3A 0x3A #define MOVE_EFFECT_SP_ATK_TWO_DOWN 0x3B +#define MOVE_EFFECT_NOTHING_3C 0x3C +#define MOVE_EFFECT_NOTHING_3D 0x3D +#define MOVE_EFFECT_NOTHING_3E 0x3E +#define MOVE_EFFECT_NOTHING_3F 0x3F #define MOVE_EFFECT_AFFECTS_USER 0x40 +#define MOVE_EFFECT_CERTAIN 0x80 + +// battle animations ids + +#define B_ANIM_CASTFORM_CHANGE 0x0 +#define B_ANIM_STATS_CHANGE 0x1 +#define B_ANIM_SUBSTITUTE_FADE 0x2 +#define B_ANIM_SUBSTITUTE_APPEAR 0x3 +#define B_ANIM_x4 0x4 +#define B_ANIM_ITEM_KNOCKOFF 0x5 +#define B_ANIM_TURN_TRAP 0x6 +#define B_ANIM_ITEM_EFFECT 0x7 +#define B_ANIM_SMOKEBALL_ESCAPE 0x8 +#define B_ANIM_HANGED_ON 0x9 +#define B_ANIM_RAIN_CONTINUES 0xA +#define B_ANIM_SUN_CONTINUES 0xB +#define B_ANIM_SANDSTORM_CONTINUES 0xC +#define B_ANIM_HAIL_CONTINUES 0xD +#define B_ANIM_LEECH_SEED_DRAIN 0xE +#define B_ANIM_MON_HIT 0xF +#define B_ANIM_ITEM_STEAL 0x10 +#define B_ANIM_SNATCH_MOVE 0x11 +#define B_ANIM_FUTURE_SIGHT_HIT 0x12 +#define B_ANIM_x13 0x13 +#define B_ANIM_x14 0x14 +#define B_ANIM_INGRAIN_HEAL 0x15 +#define B_ANIM_WISH_HEAL 0x16 +#define B_ANIM_x17 0x17 +#define B_ANIM_x18 0x18 +#define B_ANIM_x19 0x19 +#define B_ANIM_x1A 0x1A +#define B_ANIM_x1B 0x1B +#define B_ANIM_x1C 0x1C +#define B_ANIM_x1D 0x1D + +#define GET_STAT_BUFF_ID(n)((n & 0xF)) // first four bits 0x1, 0x2, 0x4, 0x8 +#define GET_STAT_BUFF_VALUE(n)((n & 0xF0) >> 4) // 0x10, 0x20, 0x40 +#define STAT_BUFF_NEGATIVE 0x80 // 0x80, the sign bit + +#define SET_STAT_BUFF_ID(n)((n & 0xF)) +#define SET_STAT_BUFF_VALUE(n)(((s8)(((s8)(n) << 4)) & 0xF0)) struct BattleScripting { @@ -718,6 +817,8 @@ struct BattleScripting u8 animTurn; u8 animTargetsHit; u8 statChanger; + u8 field_1B; + u8 atk23_state; }; extern struct BattleScripting gBattleScripting; @@ -729,10 +830,12 @@ void CancelMultiTurnMoves(u8 bank); void PressurePPLose(u8 bankAtk, u8 bankDef, u16 move); void PrepareStringBattle(u16 stringId, u8 bank); u8 GetBattleBank(u8 caseId); +void UndoEffectsAfterFainting(void); // battle_3 -void b_movescr_stack_push(const u8* bsPtr); -void b_movescr_stack_push_cursor(void); +void BattleScriptPush(const u8* bsPtr); +void BattleScriptPushCursor(void); +void BattleScriptPop(void); u8 sub_803FB4C(void); // msg, can't select a move u8 CheckMoveLimitations(u8 bank, u8 unusableMoves, u8 check); bool8 AreAllMovesUnusable(void); @@ -760,6 +863,13 @@ u8 TypeCalc(u16 move, u8 bankAtk, u8 bankDef); u8 AI_TypeCalc(u16 move, u16 species, u8 ability); u8 BankGetTurnOrder(u8 bank); +// battle_5 +void AdjustFriendshipOnBattleFaint(u8 bank); + +// battle 7 +void BattleMusicStop(void); +void sub_805E990(struct Pokemon* mon, u8 bank); + // rom_80A5C6C u8 GetBankSide(u8 bank); u8 GetBankIdentity(u8 bank); diff --git a/include/battle_controllers.h b/include/battle_controllers.h index b23649192..bfa1bd507 100644 --- a/include/battle_controllers.h +++ b/include/battle_controllers.h @@ -7,6 +7,9 @@ void EmitMoveAnimation(u8 bufferId, u16 move, u8 turnOfMove, u16 movePower, s32 void EmitHealthBarUpdate(u8 bufferId, u16 hpValue); void EmitEffectivenessSound(u8 bufferId, u16 songId); void EmitPrintStringPlayerOnly(u8 bufferId, u16 stringId); +void EmitFaintAnimation(u8 bufferId); +void EmitExpUpdate(u8 bufferId, u8 partyId, u16 expPoints); +void EmitBattleAnimation(u8 bufferId, u8 animationId, u16 argument); void MarkBufferBankForExecution(u8 bank); diff --git a/include/pokemon.h b/include/pokemon.h index 9d01c051e..674e6dbf4 100644 --- a/include/pokemon.h +++ b/include/pokemon.h @@ -620,6 +620,9 @@ bool8 IsPokeSpriteNotFlipped(u16 species); bool8 IsMonShiny(struct Pokemon *mon); bool8 IsShinyOtIdPersonality(u32 otId, u32 personality); +void MonGainEVs(struct Pokemon *mon, u16 defeatedSpecies); +bool8 IsTradedMon(struct Pokemon *mon); + #include "sprite.h" void DoMonFrontSpriteAnimation(struct Sprite* sprite, u16 species, bool8 noCry, u8 arg3); -- cgit v1.2.3 From fc57c6c817bcb8bed4469b5114ced17129bdca81 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Sat, 23 Sep 2017 00:06:52 +0200 Subject: atk 48 is really troublesome --- include/battle.h | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'include') diff --git a/include/battle.h b/include/battle.h index 920a60060..957e3542b 100644 --- a/include/battle.h +++ b/include/battle.h @@ -784,6 +784,11 @@ extern struct BattleStruct* gBattleStruct; #define B_ANIM_x1C 0x1C #define B_ANIM_x1D 0x1D +#define ATK48_STAT_NEGATIVE 0x1 +#define ATK48_STAT_BY_TWO 0x2 +#define ATK48_BIT_x4 0x4 +#define ATK48_LOWER_FAIL_CHECK 0x8 + #define GET_STAT_BUFF_ID(n)((n & 0xF)) // first four bits 0x1, 0x2, 0x4, 0x8 #define GET_STAT_BUFF_VALUE(n)((n & 0xF0) >> 4) // 0x10, 0x20, 0x40 #define STAT_BUFF_NEGATIVE 0x80 // 0x80, the sign bit -- cgit v1.2.3 From 4cf115000289d10de3408e752b37128446dd261c Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Fri, 22 Sep 2017 21:26:37 -0400 Subject: clion pls --- include/text.h | 32 +++++++++++++++++--------------- 1 file changed, 17 insertions(+), 15 deletions(-) (limited to 'include') diff --git a/include/text.h b/include/text.h index a7a79da7a..fc8ffa82f 100644 --- a/include/text.h +++ b/include/text.h @@ -94,23 +94,25 @@ struct TextPrinterSubStruct u8 active; }; +struct TextSubPrinter { // TODO: Better name + u8* current_text_offset; + u8 windowId; + u8 fontId; + u8 x; + u8 y; + u8 currentX; // 0x8 + u8 currentY; + u8 letterSpacing; + u8 lineSpacing; + u8 fontColor_l:4; // 0xC + u8 fontColor_h:4; + u8 bgColor:4; + u8 shadowColor:4; +}; + struct TextPrinter { - struct TextSubPrinter { // TODO: Better name - u8* current_text_offset; - u8 windowId; - u8 fontId; - u8 x; - u8 y; - u8 currentX; // 0x8 - u8 currentY; - u8 letterSpacing; - u8 lineSpacing; - u8 fontColor_l:4; // 0xC - u8 fontColor_h:4; - u8 bgColor:4; - u8 shadowColor:4; - } subPrinter; + struct TextSubPrinter subPrinter; void (*callback)(struct TextSubPrinter *, u16); // 0x10 -- cgit v1.2.3 From 601fc9e85b383792819768c31728e4855e854f32 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Sat, 23 Sep 2017 20:13:45 +0200 Subject: atk49 is matching baby WOHOHOHOHO --- include/battle.h | 24 ++++++++++++++---------- include/battle_controllers.h | 1 + include/pokemon.h | 1 + 3 files changed, 16 insertions(+), 10 deletions(-) (limited to 'include') diff --git a/include/battle.h b/include/battle.h index 957e3542b..a6573934f 100644 --- a/include/battle.h +++ b/include/battle.h @@ -619,14 +619,7 @@ struct BattleStruct u8 field_95; u8 field_96; u8 field_97; - u8 field_98; - u8 field_99; - u8 field_9A; - u8 field_9B; - u8 field_9C; - u8 field_9D; - u8 field_9E; - u8 field_9F; + u8 mirrorMoves[8]; // ask gamefreak why they declared it that way u8 field_A0; u8 field_A1; u8 field_A2; @@ -647,14 +640,16 @@ struct BattleStruct u16 usedHeldItems[BATTLE_BANKS_COUNT]; u8 field_C0[8]; u16 choicedMove[BATTLE_BANKS_COUNT]; - u16 field_D0[BATTLE_BANKS_COUNT]; + u16 changedItems[BATTLE_BANKS_COUNT]; u8 intimidateBank; u8 fillerD9[0xDA-0xD9]; u8 field_DA; u8 turnSideTracker; u8 fillerDC[0xDF-0xDC]; u8 field_DF; - u8 fillerE0[0x1A0-0xE0]; + u8 mirrorMoveArrays[32]; + u16 castformPalette[4][16]; + u8 field_180[32]; u8 field_1A0; u8 field_1A1; u8 filler1A2; @@ -675,6 +670,14 @@ extern struct BattleStruct* gBattleStruct; var2[offsetof(struct structName, offsetField)] = value; \ } +// This is a leftover from R/S direct use of ewram addresses +#define GET_CHANGED_ITEM_PTR_VIA_MEME_ACCESS(bank, varName) \ +{ \ + void** memes1 = (void**)(&gBattleStruct); \ + void* memes2 = (void*)((u32)(bank * 2 + offsetof(struct BattleStruct, changedItems))); \ + varName = (u16*)(((void*)(*memes1) + (u32)(memes2))); \ +} + #define GET_MOVE_TYPE(move, typeArg) \ { \ if (gBattleStruct->dynamicMoveType) \ @@ -836,6 +839,7 @@ void PressurePPLose(u8 bankAtk, u8 bankDef, u16 move); void PrepareStringBattle(u16 stringId, u8 bank); u8 GetBattleBank(u8 caseId); void UndoEffectsAfterFainting(void); +bool8 HasMoveFailed(u8 bank); // battle_3 void BattleScriptPush(const u8* bsPtr); diff --git a/include/battle_controllers.h b/include/battle_controllers.h index bfa1bd507..2ae6f002f 100644 --- a/include/battle_controllers.h +++ b/include/battle_controllers.h @@ -10,6 +10,7 @@ void EmitPrintStringPlayerOnly(u8 bufferId, u16 stringId); void EmitFaintAnimation(u8 bufferId); void EmitExpUpdate(u8 bufferId, u8 partyId, u16 expPoints); void EmitBattleAnimation(u8 bufferId, u8 animationId, u16 argument); +void EmitSpriteInvisibility(u8 bufferId, bool8 isInvisible); void MarkBufferBankForExecution(u8 bank); diff --git a/include/pokemon.h b/include/pokemon.h index 674e6dbf4..1049776e8 100644 --- a/include/pokemon.h +++ b/include/pokemon.h @@ -443,6 +443,7 @@ struct BattleMove #define FLAG_PROTECT_AFFECTED 0x2 #define FLAG_MAGICCOAT_AFFECTED 0x4 #define FLAG_SNATCH_AFFECTED 0x8 +#define FLAG_MIRROR_MOVE_AFFECTED 0x10 #define FLAG_KINGSROCK_AFFECTED 0x20 struct SpindaSpot -- cgit v1.2.3 From 898d0b20ad524e2837079a50f33f6fae0e72b685 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Sun, 24 Sep 2017 00:29:52 +0200 Subject: up to x50 --- include/battle.h | 21 +++++---------------- include/battle_controllers.h | 4 ++++ include/pokemon.h | 3 +++ 3 files changed, 12 insertions(+), 16 deletions(-) (limited to 'include') diff --git a/include/battle.h b/include/battle.h index a6573934f..e71a23e28 100644 --- a/include/battle.h +++ b/include/battle.h @@ -561,23 +561,9 @@ struct BattleStruct u8 field_52; u8 sentInPokes; u8 field_54[4]; - u8 field_58; - u8 field_59; - u8 field_5A; - u8 field_5B; + u8 field_58[4]; u8 field_5C[4]; - u8 field_60; - u8 field_61; - u8 field_62; - u8 field_63; - u8 field_64; - u8 field_65; - u8 field_66; - u8 field_67; - u8 field_68; - u8 field_69; - u8 field_6A; - u8 field_6B; + u8 field_60[4][3]; u8 field_6C; u8 field_6D; u8 field_6E; @@ -792,6 +778,8 @@ extern struct BattleStruct* gBattleStruct; #define ATK48_BIT_x4 0x4 #define ATK48_LOWER_FAIL_CHECK 0x8 +#define ATK4F_DONT_CHECK_STATUSES 0x80 + #define GET_STAT_BUFF_ID(n)((n & 0xF)) // first four bits 0x1, 0x2, 0x4, 0x8 #define GET_STAT_BUFF_VALUE(n)((n & 0xF0) >> 4) // 0x10, 0x20, 0x40 #define STAT_BUFF_NEGATIVE 0x80 // 0x80, the sign bit @@ -840,6 +828,7 @@ void PrepareStringBattle(u16 stringId, u8 bank); u8 GetBattleBank(u8 caseId); void UndoEffectsAfterFainting(void); bool8 HasMoveFailed(u8 bank); +void SwitchInClearStructs(void); // battle_3 void BattleScriptPush(const u8* bsPtr); diff --git a/include/battle_controllers.h b/include/battle_controllers.h index 2ae6f002f..443ca5be1 100644 --- a/include/battle_controllers.h +++ b/include/battle_controllers.h @@ -11,6 +11,10 @@ void EmitFaintAnimation(u8 bufferId); void EmitExpUpdate(u8 bufferId, u8 partyId, u16 expPoints); void EmitBattleAnimation(u8 bufferId, u8 animationId, u16 argument); void EmitSpriteInvisibility(u8 bufferId, bool8 isInvisible); +void EmitReturnPokeToBall(u8 bufferId, u8 arg1); +void EmitGetAttributes(u8 bufferId, u8 arg1, u8 arg2); +void EmitSwitchInAnim(u8 bufferId, u8 partyId, bool8 dontClearSubstituteBit); +void EmitChoosePokemon(u8 bufferId, u8 caseId, u8 arg2, u8 abilityId, const u8* arg4); void MarkBufferBankForExecution(u8 bank); diff --git a/include/pokemon.h b/include/pokemon.h index 1049776e8..f629799e5 100644 --- a/include/pokemon.h +++ b/include/pokemon.h @@ -623,6 +623,9 @@ bool8 IsShinyOtIdPersonality(u32 otId, u32 personality); void MonGainEVs(struct Pokemon *mon, u16 defeatedSpecies); bool8 IsTradedMon(struct Pokemon *mon); +void HandleSetPokedexFlag(u16 nationalNum, u8 caseId, u32 personality); +s32 sub_806D864(u16 a1); +bool16 sub_806D82C(u8 id); #include "sprite.h" -- cgit v1.2.3 From 52a951276f8d4b79195a0d4889503e4a7f096024 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Mon, 25 Sep 2017 00:09:13 +0200 Subject: battle 4, up to x69 --- include/battle.h | 67 ++++++++++++++++++- include/battle_controllers.h | 16 +++++ include/battle_message.h | 144 ++++++++++++++++++++++++++++++++++++++++- include/pokemon.h | 1 + include/recorded_battle.h | 6 ++ include/reshow_battle_screen.h | 6 ++ include/text.h | 4 +- 7 files changed, 239 insertions(+), 5 deletions(-) create mode 100644 include/recorded_battle.h create mode 100644 include/reshow_battle_screen.h (limited to 'include') diff --git a/include/battle.h b/include/battle.h index e71a23e28..d45944274 100644 --- a/include/battle.h +++ b/include/battle.h @@ -200,6 +200,7 @@ #define REQUEST_HP_BATTLE 0x2A // array entries for battle communication +#define CURSOR_POSITION 0x1 #define MOVE_EFFECT_BYTE 0x3 #define MULTISTRING_CHOOSER 0x5 #define MSG_DISPLAY 0x7 @@ -236,6 +237,46 @@ #define CMP_COMMON_BITS 0x4 #define CMP_NO_COMMON_BITS 0x5 +struct TrainerMonNoItemDefaultMoves +{ + u16 species; + u8 lvl; + u16 evsValue; +}; + +struct TrainerMonItemDefaultMoves +{ + u16 species; + u8 lvl; + u16 evsValue; + u16 heldItem; +}; + +struct TrainerMonNoItemCustomMoves +{ + u16 species; + u8 lvl; + u16 evsValue; + u16 moves[4]; +}; + +struct TrainerMonItemCustomMoves +{ + u16 species; + u8 lvl; + u16 evsValue; + u16 heldItem; + u16 moves[4]; +}; + +union TrainerMonPtr +{ + struct TrainerMonNoItemDefaultMoves* NoItemDefaultMoves; + struct TrainerMonNoItemCustomMoves* NoItemCustomMoves; + struct TrainerMonItemDefaultMoves* ItemDefaultMoves; + struct TrainerMonItemCustomMoves* ItemCustomMoves; +}; + struct Trainer { /*0x00*/ u8 partyFlags; @@ -247,9 +288,12 @@ struct Trainer /*0x18*/ bool8 doubleBattle; /*0x1C*/ u32 aiFlags; /*0x20*/ u8 partySize; - /*0x24*/ void *party; + /*0x24*/ union TrainerMonPtr party; }; +#define PARTY_FLAG_CUSTOM_MOVES 0x1 +#define PARTY_FLAG_HAS_ITEM 0x2 + extern const struct Trainer gTrainers[]; #define TRAINER_ENCOUNTER_MUSIC(trainer)((gTrainers[trainer].encounterMusic_gender & 0x7F)) @@ -289,7 +333,8 @@ struct DisableStruct /*0x16*/ u8 isFirstTurn; /*0x17*/ u8 unk17; /*0x18*/ u8 truantCounter : 1; - /*0x18*/ u8 unk18_a : 3; + /*0x18*/ u8 truantUnknownBit : 1; + /*0x18*/ u8 unk18_a_2 : 2; /*0x18*/ u8 unk18_b : 4; /*0x19*/ u8 rechargeCounter; /*0x1A*/ u8 unk1A[2]; @@ -464,7 +509,7 @@ struct BattleResults { u8 playerFaintCounter; // 0x0 u8 opponentFaintCounter; // 0x1 - u8 unk2; // 0x2 + u8 playerSwitchesCounter; // 0x2 u8 unk3; // 0x3 u8 unk4; // 0x4 u8 unk5_0:1; // 0x5 @@ -664,6 +709,13 @@ extern struct BattleStruct* gBattleStruct; varName = (u16*)(((void*)(*memes1) + (u32)(memes2))); \ } +#define GET_HP_SWITCHOUT_PTR_VIA_MEME_ACCESS(bank, varName) \ +{ \ + void** memes1 = (void**)(&gBattleStruct); \ + void* memes2 = (void*)((u32)(bank * 2 + offsetof(struct BattleStruct, hpOnSwitchout))); \ + varName = (u16*)(((void*)(*memes1) + (u32)(memes2))); \ +} + #define GET_MOVE_TYPE(move, typeArg) \ { \ if (gBattleStruct->dynamicMoveType) \ @@ -815,6 +867,9 @@ struct BattleScripting u8 statChanger; u8 field_1B; u8 atk23_state; + u8 field_1D; + u8 field_1E; + u8 learnMoveState; }; extern struct BattleScripting gBattleScripting; @@ -829,6 +884,9 @@ u8 GetBattleBank(u8 caseId); void UndoEffectsAfterFainting(void); bool8 HasMoveFailed(u8 bank); void SwitchInClearStructs(void); +void sub_803BDA0(u8 bank); +void sub_803FA70(u8 bank); +void BattleMainCB2(void); // battle_3 void BattleScriptPush(const u8* bsPtr); @@ -860,9 +918,12 @@ void AI_CalcDmg(u8 bankAtk, u8 bankDef); u8 TypeCalc(u16 move, u8 bankAtk, u8 bankDef); u8 AI_TypeCalc(u16 move, u16 species, u8 ability); u8 BankGetTurnOrder(u8 bank); +void BattleDestroyCursorAt(u8 cursorPosition); +void BattleCreateCursorAt(u8 cursorPosition); // battle_5 void AdjustFriendshipOnBattleFaint(u8 bank); +void sub_80571DC(u8 bank, u8 arg1); // battle 7 void BattleMusicStop(void); diff --git a/include/battle_controllers.h b/include/battle_controllers.h index 443ca5be1..b24aa9cc5 100644 --- a/include/battle_controllers.h +++ b/include/battle_controllers.h @@ -1,13 +1,21 @@ #ifndef GUARD_BATTLE_CONTROLLERS_H #define GUARD_BATTLE_CONTROLLERS_H +struct HpAndStatus +{ + u16 hp; + u32 status; +}; + // rom3.s, emitters void EmitSetAttributes(u8 bufferId, u8 request, u8 c, u8 bytes, void *data); void EmitMoveAnimation(u8 bufferId, u16 move, u8 turnOfMove, u16 movePower, s32 dmg, u8 friendship, struct DisableStruct* disableStructPtr, u8 multihit); void EmitHealthBarUpdate(u8 bufferId, u16 hpValue); void EmitEffectivenessSound(u8 bufferId, u16 songId); +void EmitPlaySound(u8 bufferId, u16 songId, u8 arg2); void EmitPrintStringPlayerOnly(u8 bufferId, u16 stringId); void EmitFaintAnimation(u8 bufferId); +void Emit_x2A(u8 bufferId); void EmitExpUpdate(u8 bufferId, u8 partyId, u16 expPoints); void EmitBattleAnimation(u8 bufferId, u8 animationId, u16 argument); void EmitSpriteInvisibility(u8 bufferId, bool8 isInvisible); @@ -15,6 +23,14 @@ void EmitReturnPokeToBall(u8 bufferId, u8 arg1); void EmitGetAttributes(u8 bufferId, u8 arg1, u8 arg2); void EmitSwitchInAnim(u8 bufferId, u8 partyId, bool8 dontClearSubstituteBit); void EmitChoosePokemon(u8 bufferId, u8 caseId, u8 arg2, u8 abilityId, const u8* arg4); +void EmitLinkStandbyMsg(u8 bufferId, u8 arg1, u8 arg2); +void EmitTrainerSlide(u8 bufferId); +void EmitFaintingCry(u8 bufferId); +void Emit_x37(u8 bufferId, u8 arg1); +void EmitHitAnimation(u8 bufferId); +void EmitCmd48(u8 bufferId, struct HpAndStatus* hpAndStatus, u8 arg2); +void EmitCmd49(u8 bufferId); +void EmitStatusAnimation(u8 bufferId, bool8 status2, u32 status); void MarkBufferBankForExecution(u8 bank); diff --git a/include/battle_message.h b/include/battle_message.h index ca310ae6f..ad1ce3455 100644 --- a/include/battle_message.h +++ b/include/battle_message.h @@ -1,6 +1,147 @@ #ifndef GUARD_BATTLE_MESSAGE_H #define GUARD_BATTLE_MESSAGE_H +// for 0xFD + +#define B_TXT_BUFF1 00 +#define B_TXT_BUFF2 01 +#define B_TXT_COPY_VAR_1 02 +#define B_TXT_COPY_VAR_2 03 +#define B_TXT_COPY_VAR_3 04 +#define B_TXT_PLAYER_MON1_NAME 05 +#define B_TXT_OPPONENT_MON1_NAME 06 +#define B_TXT_PLAYER_MON2_NAME 07 +#define B_TXT_OPPONENT_MON2_NAME 08 +#define B_TXT_LINK_PLAYER_MON1_NAME 09 +#define B_TXT_LINK_OPPONENT_MON1_NAME 0A +#define B_TXT_LINK_PLAYER_MON2_NAME 0B +#define B_TXT_LINK_OPPONENT_MON2_NAME 0C +#define B_TXT_ATK_NAME_WITH_PREFIX_MON1 0D +#define B_TXT_ATK_NAME 0E +#define B_TXT_ATK_NAME_WITH_PREFIX 0F +#define B_TXT_DEF_NAME_WITH_PREFIX 10 +#define B_TXT_EFF_NAME_WITH_PREFIX 11 // EFF = short for gEffectBank +#define B_TXT_SCR_ACTIVE_NAME_WITH_PREFIX 12 +#define B_TXT_ACTIVE_NAME_WITH_PREFIX 13 +#define B_TXT_CURRENT_MOVE 14 +#define B_TXT_LAST_MOVE 15 +#define B_TXT_LAST_ITEM 16 +#define B_TXT_LAST_ABILITY 17 +#define B_TXT_ATK_ABILITY 18 +#define B_TXT_DEF_ABILITY 19 +#define B_TXT_SCR_ACTIVE_ABILITY 1A +#define B_TXT_EFF_ABILITY 1B +#define B_TXT_TRAINER1_CLASS 1C +#define B_TXT_TRAINER1_NAME 1D +#define B_TXT_1E 1E // trainer name for a link player +#define B_TXT_1F 1F // trainer name for a link player +#define B_TXT_20 20 // trainer name for a link player +#define B_TXT_21 21 // trainer name for a link player +#define B_TXT_22 22 // trainer name for a link player +#define B_TXT_PLAYER_NAME 23 +#define B_TXT_TRAINER1_LOSE_TEXT 24 +#define B_TXT_TRAINER1_WIN_TEXT 25 +#define B_TXT_26 26 +#define B_TXT_PC_CREATOR_NAME 27 +#define B_TXT_ATK_PREFIX1 28 +#define B_TXT_DEF_PREFIX1 29 +#define B_TXT_ATK_PREFIX2 2A +#define B_TXT_DEF_PREFIX2 2B +#define B_TXT_ATK_PREFIX3 2C +#define B_TXT_DEF_PREFIX3 2D +#define B_TXT_TRAINER2_CLASS 2E +#define B_TXT_TRAINER2_NAME 2F +#define B_TXT_TRAINER2_LOSE_TEXT 30 +#define B_TXT_TRAINER2_WIN_TEXT 31 +#define B_TXT_PARTNER_CLASS 32 +#define B_TXT_PARTNER_NAME 33 +#define B_TXT_BUFF3 34 + +// for B_TXT_BUFF1, B_TXT_BUFF2 and B_TXT_BUFF3 + +#define B_BUFF_STRING 0 +#define B_BUFF_NUMBER 1 +#define B_BUFF_MOVE 2 +#define B_BUFF_TYPE 3 +#define B_BUFF_MON_NICK_WITH_PREFIX 4 +#define B_BUFF_STAT 5 +#define B_BUFF_SPECIES 6 +#define B_BUFF_MON_NICK 7 +#define B_BUFF_NEGATIVE_FLAVOUR 8 +#define B_BUFF_ABILITY 9 +#define B_BUFF_ITEM 10 + +#define B_BUFF_PLACEHOLDER_BEGIN 0xFD +#define B_BUFF_EOS 0xFF + +#define PREPARE_BYTE_NUMBER_BUFFER(textVar, maxDigits, number) \ +{ \ + textVar[0] = B_BUFF_PLACEHOLDER_BEGIN; \ + textVar[1] = B_BUFF_NUMBER; \ + textVar[2] = 1; \ + textVar[3] = maxDigits; \ + textVar[4] = (number); \ + textVar[5] = B_BUFF_EOS; \ +} + +#define PREPARE_WORD_NUMBER_BUFFER(textVar, maxDigits, number) \ +{ \ + textVar[0] = B_BUFF_PLACEHOLDER_BEGIN; \ + textVar[1] = B_BUFF_NUMBER; \ + textVar[2] = 4; \ + textVar[3] = maxDigits; \ + textVar[4] = (number); \ + textVar[5] = (number & 0x0000FF00) >> 8; \ + textVar[6] = (number & 0x00FF0000) >> 16; \ + textVar[7] = (number & 0xFF000000) >> 24; \ + textVar[8] = B_BUFF_EOS; \ +} + +#define PREPARE_STRING_BUFFER(textVar, stringId) \ +{ \ + textVar[0] = B_BUFF_PLACEHOLDER_BEGIN; \ + textVar[1] = B_BUFF_STRING; \ + textVar[2] = stringId; \ + textVar[3] = (stringId & 0xFF00) >> 8; \ + textVar[4] = B_BUFF_EOS; \ +} + +#define PREPARE_MOVE_BUFFER(textVar, move) \ +{ \ + textVar[0] = B_BUFF_PLACEHOLDER_BEGIN; \ + textVar[1] = B_BUFF_MOVE; \ + textVar[2] = move; \ + textVar[3] = (move & 0xFF00) >> 8; \ + textVar[4] = B_BUFF_EOS; \ +} + +#define PREPARE_SPECIES_BUFFER(textVar, species) \ +{ \ + textVar[0] = B_BUFF_PLACEHOLDER_BEGIN; \ + textVar[1] = B_BUFF_SPECIES; \ + textVar[2] = species; \ + textVar[3] = (species & 0xFF00) >> 8; \ + textVar[4] = B_BUFF_EOS; \ +} + +#define PREPARE_MON_NICK_WITH_PREFIX_BUFFER(textVar, bank, partyId) \ +{ \ + textVar[0] = B_BUFF_PLACEHOLDER_BEGIN; \ + textVar[1] = B_BUFF_MON_NICK_WITH_PREFIX; \ + textVar[2] = bank; \ + textVar[3] = partyId; \ + textVar[4] = B_BUFF_EOS; \ +} + +#define PREPARE_MON_NICK_BUFFER(textVar, bank, partyId) \ +{ \ + textVar[0] = B_BUFF_PLACEHOLDER_BEGIN; \ + textVar[1] = B_BUFF_MON_NICK; \ + textVar[2] = bank; \ + textVar[3] = partyId; \ + textVar[4] = B_BUFF_EOS; \ +} + struct StringInfoBattle { u16 currentMove; @@ -18,7 +159,8 @@ struct StringInfoBattle void BufferStringBattle(u16 stringID); u32 StrCpyDecodeToDisplayedStringBattle(const u8* src); -u32 StrCpyDecodeBattle(const u8* src, u8* dst); +u32 BattleStringExpandPlaceholders(const u8* src, u8* dst); +void sub_814F9EC(const u8* text, u8 arg1); extern u8 gBattleTextBuff1[]; extern u8 gBattleTextBuff2[]; diff --git a/include/pokemon.h b/include/pokemon.h index f629799e5..518d28e58 100644 --- a/include/pokemon.h +++ b/include/pokemon.h @@ -626,6 +626,7 @@ bool8 IsTradedMon(struct Pokemon *mon); void HandleSetPokedexFlag(u16 nationalNum, u8 caseId, u32 personality); s32 sub_806D864(u16 a1); bool16 sub_806D82C(u8 id); +u16 MonTryLearningNewMove(struct Pokemon* mon, bool8); #include "sprite.h" diff --git a/include/recorded_battle.h b/include/recorded_battle.h new file mode 100644 index 000000000..d19a2b713 --- /dev/null +++ b/include/recorded_battle.h @@ -0,0 +1,6 @@ +#ifndef GUARD_RECORDED_BATTLE_H +#define GUARD_RECORDED_BATTLE_H + +void RecordedBattle_SetBankAction(u8 bank, u8 action); + +#endif // GUARD_RECORDED_BATTLE_H diff --git a/include/reshow_battle_screen.h b/include/reshow_battle_screen.h new file mode 100644 index 000000000..62773b48b --- /dev/null +++ b/include/reshow_battle_screen.h @@ -0,0 +1,6 @@ +#ifndef GUARD_RESHOW_BATTLE_SCREEN_H +#define GUARD_RESHOW_BATTLE_SCREEN_H + +void ReshowBattleScreenAfterMenu(void); + +#endif // GUARD_RESHOW_BATTLE_SCREEN_H diff --git a/include/text.h b/include/text.h index dba409f37..f0c85b978 100644 --- a/include/text.h +++ b/include/text.h @@ -71,7 +71,9 @@ #define EXT_CTRL_CODE_BEGIN 0xFC // extended control code #define PLACEHOLDER_BEGIN 0xFD // string placeholder #define CHAR_NEWLINE 0xFE -#define EOS 0xFF // end of string +#define EOS 0xFF // end of string + +// battle placeholders are located in battle_message.h #define EXT_CTRL_CODE_JPN 0x15 #define EXT_CTRL_CODE_ENG 0x16 -- cgit v1.2.3 From bf9e2b7210361695a3ffdb8305c054c41ad18609 Mon Sep 17 00:00:00 2001 From: scnorton Date: Mon, 25 Sep 2017 15:03:52 -0400 Subject: split data3_a1 --- include/berry.h | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'include') diff --git a/include/berry.h b/include/berry.h index dc0481d3d..f51503d41 100644 --- a/include/berry.h +++ b/include/berry.h @@ -53,4 +53,11 @@ void ResetBerryTreeSparkleFlags(void); extern const struct Berry gBerries[]; +struct UnkStruct_0858AB24 { + u8 unk0; + u16 unk1; +}; + +extern const struct UnkStruct_0858AB24 gUnknown_0858AB24[]; + #endif // GUARD_BERRY_H -- cgit v1.2.3 From d1efbcd282aa68634b275af25ca1bf187e85cb9e Mon Sep 17 00:00:00 2001 From: Diegoisawesome Date: Mon, 25 Sep 2017 16:26:45 -0500 Subject: Extract scattered baseroms and cleanup --- include/gba/defines.h | 2 ++ 1 file changed, 2 insertions(+) (limited to 'include') diff --git a/include/gba/defines.h b/include/gba/defines.h index e67d64777..41cc84f4a 100644 --- a/include/gba/defines.h +++ b/include/gba/defines.h @@ -50,6 +50,8 @@ #define OAM 0x7000000 #define OAM_SIZE 0x400 +#define ROM_HEADER_SIZE 0xC0 + #define DISPLAY_WIDTH 240 #define DISPLAY_HEIGHT 160 -- cgit v1.2.3 From d769ec137447c52062b48153851bd2824055b6df Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Tue, 26 Sep 2017 22:39:59 +0200 Subject: battle 4 up to a8 --- include/battle.h | 108 ++++++++++++++++++++++++++--------------- include/battle_controllers.h | 29 ++++++++++- include/battle_message.h | 29 ++++++++++- include/moves.h | 4 +- include/pokemon.h | 7 ++- include/pokemon_icon.h | 7 +++ include/pokemon_item_effects.h | 8 +++ include/text.h | 38 +++++++++------ include/window.h | 2 +- 9 files changed, 173 insertions(+), 59 deletions(-) create mode 100644 include/pokemon_icon.h create mode 100644 include/pokemon_item_effects.h (limited to 'include') diff --git a/include/battle.h b/include/battle.h index d45944274..f84a75cba 100644 --- a/include/battle.h +++ b/include/battle.h @@ -1,8 +1,28 @@ #ifndef GUARD_BATTLE_H #define GUARD_BATTLE_H +/* + Banks are a name given to what could be called a 'battlerId' or 'monControllerId'. + Each bank has a value consisting of two bits. + 0x1 bit is responsible for the side, 0 = player's side, 1 = opponent's side. + 0x2 bit is responsible for the id of sent out pokemon. 0 means it's the first sent out pokemon, 1 it's the second one. (Triple battle didn't exist at the time yet.) +*/ + #define BATTLE_BANKS_COUNT 4 +#define IDENTITY_PLAYER_MON1 0 +#define IDENTITY_OPPONENT_MON1 1 +#define IDENTITY_PLAYER_MON2 2 +#define IDENTITY_OPPONENT_MON2 3 + +#define SIDE_PLAYER 0x0 +#define SIDE_OPPONENT 0x1 + +#define BIT_SIDE 0x1 +#define BIT_MON 0x2 + +#define GET_BANK_SIDE(bank)((GetBankIdentity(bank) & BIT_SIDE)) + #define BATTLE_TYPE_DOUBLE 0x0001 #define BATTLE_TYPE_LINK 0x0002 #define BATTLE_TYPE_WILD 0x0004 @@ -40,9 +60,6 @@ #define BATTLE_TYPE_FRONTIER (BATTLE_TYPE_BATTLE_TOWER | BATTLE_TYPE_DOME | BATTLE_TYPE_PALACE | BATTLE_TYPE_ARENA | BATTLE_TYPE_FACTORY | BATTLE_TYPE_x100000 | BATTLE_TYPE_PYRAMID) -#define SIDE_PLAYER 0x0 -#define SIDE_OPPONENT 0x1 - #define BATTLE_WON 0x1 #define BATTLE_LOST 0x2 #define BATTLE_DREW 0x3 @@ -66,11 +83,12 @@ #define STATUS2_CONFUSION 0x00000007 #define STATUS2_FLINCHED 0x00000008 #define STATUS2_UPROAR 0x00000070 -#define STATUS2_BIDE 0x00000300 //two bits 0x100 0x200 +#define STATUS2_BIDE 0x00000300 // two bits 0x100, 0x200 #define STATUS2_LOCK_CONFUSE 0x00000C00 #define STATUS2_MULTIPLETURNS 0x00001000 #define STATUS2_WRAPPED 0x0000E000 -#define STATUS2_INFATUATION 0x000F0000 +#define STATUS2_INFATUATION 0x000F0000 // 4 bits, one for every bank +#define STATUS2_INFATUATED_WITH(bank)((gBitTable[bank] << 16)) #define STATUS2_FOCUS_ENERGY 0x00100000 #define STATUS2_TRANSFORMED 0x00200000 #define STATUS2_RECHARGE 0x00400000 @@ -86,7 +104,7 @@ #define STATUS3_LEECHSEED_BANK 0x3 #define STATUS3_LEECHSEED 0x4 -#define STATUS3_ALWAYS_HITS 0x18 //two bits +#define STATUS3_ALWAYS_HITS 0x18 // two bits #define STATUS3_PERISH_SONG 0x20 #define STATUS3_ON_AIR 0x40 #define STATUS3_UNDERGROUND 0x80 @@ -188,17 +206,6 @@ #define WEATHER_HAIL (1 << 7) #define WEATHER_HAIL_ANY ((WEATHER_HAIL)) -#define REQUEST_ALL_BATTLE 0x0 -#define REQUEST_SPECIES_BATTLE 0x1 -#define REQUEST_HELDITEM_BATTLE 0x2 -#define REQUEST_MOVES_PP_BATTLE 0x3 -#define REQUEST_PPMOVE1_BATTLE 0x9 -#define REQUEST_PPMOVE2_BATTLE 0xA -#define REQUEST_PPMOVE3_BATTLE 0xB -#define REQUEST_PPMOVE4_BATTLE 0xC -#define REQUEST_STATUS_BATTLE 0x28 -#define REQUEST_HP_BATTLE 0x2A - // array entries for battle communication #define CURSOR_POSITION 0x1 #define MOVE_EFFECT_BYTE 0x3 @@ -222,6 +229,7 @@ #define BS_GET_TARGET 0 #define BS_GET_ATTACKER 1 #define BS_GET_EFFECT_BANK 2 +#define BS_ATTACKER_WITH_PARTNER 4 // for atk98_status_icon_update #define BS_GET_ATTACKER_SIDE 8 // for atk1E_jumpifability #define BS_GET_NOT_ATTACKER_SIDE 9 // for atk1E_jumpifability #define BS_GET_SCRIPTING_BANK 10 @@ -384,11 +392,11 @@ extern struct ProtectStruct gProtectStructs[BATTLE_BANKS_COUNT]; struct SpecialStatus { - u8 statLowered : 1; - u8 lightningRodRedirected : 1; - u8 restoredBankSprite: 1; - u8 intimidatedPoke : 1; - u8 traced : 1; + u8 statLowered : 1; // 0x1 + u8 lightningRodRedirected : 1; // 0x2 + u8 restoredBankSprite: 1; // 0x4 + u8 intimidatedPoke : 1; // 0x8 + u8 traced : 1; // 0x10 u8 flag20 : 1; u8 flag40 : 1; u8 focusBanded : 1; @@ -690,6 +698,7 @@ struct BattleStruct u8 field_298[8]; u8 field_2A0; u8 field_2A1; + u8 field_2A2; }; extern struct BattleStruct* gBattleStruct; @@ -709,6 +718,13 @@ extern struct BattleStruct* gBattleStruct; varName = (u16*)(((void*)(*memes1) + (u32)(memes2))); \ } +#define GET_USED_ITEM_PTR_VIA_MEME_ACCESS(bank, varName) \ +{ \ + void** memes1 = (void**)(&gBattleStruct); \ + void* memes2 = (void*)((u32)(bank * 2 + offsetof(struct BattleStruct, usedHeldItems))); \ + varName = (u16*)(((void*)(*memes1) + (u32)(memes2))); \ +} + #define GET_HP_SWITCHOUT_PTR_VIA_MEME_ACCESS(bank, varName) \ { \ void** memes1 = (void**)(&gBattleStruct); \ @@ -724,8 +740,6 @@ extern struct BattleStruct* gBattleStruct; typeArg = gBattleMoves[move].type; \ } -#define GET_BANK_SIDE(bank)((GetBankIdentity(bank) & 1)) - #define MOVE_EFFECT_SLEEP 0x1 #define MOVE_EFFECT_POISON 0x2 #define MOVE_EFFECT_BURN 0x3 @@ -832,26 +846,39 @@ extern struct BattleStruct* gBattleStruct; #define ATK4F_DONT_CHECK_STATUSES 0x80 +#define VARIOUS_CANCEL_MULTI_TURN_MOVES 0 +#define VARIOUS_SET_MAGIC_COAT_TARGET 1 +#define VARIOUS_GET_MOVE_TARGET 3 +#define VARIOUS_RESET_INTIMIDATE_TRACE_BITS 5 +#define VARIOUS_UPDATE_CHOICE_MOVE_ON_LVL_UP 6 +#define VARIOUS_WAIT_CRY 18 +#define VARIOUS_RETURN_OPPONENT_MON1 19 +#define VARIOUS_RETURN_OPPONENT_MON2 20 +#define VARIOUS_SET_TELEPORT_OUTCOME 25 +#define VARIOUS_PLAY_TRAINER_DEFEATED_MUSIC 26 + +#define ATK80_DMG_CHANGE_SIGN 0 +#define ATK80_DMG_HALF_BY_TWO_NOT_MORE_THAN_HALF_MAX_HP 1 +#define ATK80_DMG_DOUBLED 2 + #define GET_STAT_BUFF_ID(n)((n & 0xF)) // first four bits 0x1, 0x2, 0x4, 0x8 -#define GET_STAT_BUFF_VALUE(n)((n & 0xF0) >> 4) // 0x10, 0x20, 0x40 +#define GET_STAT_BUFF_VALUE(n)(((n >> 4) & 7)) // 0x10, 0x20, 0x40 #define STAT_BUFF_NEGATIVE 0x80 // 0x80, the sign bit +#define STAT_CHANGE_BS_PTR 0x1 +#define STAT_CHANGE_NOT_PROTECT_AFFECTED 0x20 + +#define STAT_CHANGE_WORKED 0 +#define STAT_CHANGE_DIDNT_WORK 1 + #define SET_STAT_BUFF_ID(n)((n & 0xF)) #define SET_STAT_BUFF_VALUE(n)(((s8)(((s8)(n) << 4)) & 0xF0)) struct BattleScripting { - u8 field_0; - u8 field_1; - u8 field_2; - u8 field_3; - u32 bideDmg; - u8 field_8; - u8 field_9; - u8 field_A; - u8 field_B; - u8 field_C; - u8 field_D; + s32 painSplitHp; + s32 bideDmg; + u8 multihitString[6]; u8 dmgMultiplier; u8 field_F; u8 animArg1; @@ -868,7 +895,7 @@ struct BattleScripting u8 field_1B; u8 atk23_state; u8 field_1D; - u8 field_1E; + u8 atk6C_state; u8 learnMoveState; }; @@ -887,6 +914,9 @@ void SwitchInClearStructs(void); void sub_803BDA0(u8 bank); void sub_803FA70(u8 bank); void BattleMainCB2(void); +void ResetSentPokesToOpponentValue(void); +bool8 CanRunFromBattle(u8 bank); +bool8 IsRunningFromBattleImpossible(void); // battle_3 void BattleScriptPush(const u8* bsPtr); @@ -920,10 +950,12 @@ u8 AI_TypeCalc(u16 move, u16 species, u8 ability); u8 BankGetTurnOrder(u8 bank); void BattleDestroyCursorAt(u8 cursorPosition); void BattleCreateCursorAt(u8 cursorPosition); +void BufferMoveToLearnIntoBattleTextBuff2(void); // battle_5 void AdjustFriendshipOnBattleFaint(u8 bank); void sub_80571DC(u8 bank, u8 arg1); +u32 sub_805725C(u8 bank); // battle 7 void BattleMusicStop(void); @@ -932,7 +964,7 @@ void sub_805E990(struct Pokemon* mon, u8 bank); // rom_80A5C6C u8 GetBankSide(u8 bank); u8 GetBankIdentity(u8 bank); -u8 GetBankByPlayerAI(u8 bank); +u8 GetBankByIdentity(u8 bank); // Move this somewhere else diff --git a/include/battle_controllers.h b/include/battle_controllers.h index b24aa9cc5..bb58cb699 100644 --- a/include/battle_controllers.h +++ b/include/battle_controllers.h @@ -7,8 +7,26 @@ struct HpAndStatus u32 status; }; +struct MovePpInfo +{ + u16 move[4]; + u8 pp[4]; + u8 ppBonuses; +}; + +#define REQUEST_ALL_BATTLE 0x0 +#define REQUEST_SPECIES_BATTLE 0x1 +#define REQUEST_HELDITEM_BATTLE 0x2 +#define REQUEST_MOVES_PP_BATTLE 0x3 +#define REQUEST_PPMOVE1_BATTLE 0x9 +#define REQUEST_PPMOVE2_BATTLE 0xA +#define REQUEST_PPMOVE3_BATTLE 0xB +#define REQUEST_PPMOVE4_BATTLE 0xC +#define REQUEST_STATUS_BATTLE 0x28 +#define REQUEST_HP_BATTLE 0x2A + // rom3.s, emitters -void EmitSetAttributes(u8 bufferId, u8 request, u8 c, u8 bytes, void *data); +void EmitSetMonData(u8 bufferId, u8 request, u8 c, u8 bytes, void *data); void EmitMoveAnimation(u8 bufferId, u16 move, u8 turnOfMove, u16 movePower, s32 dmg, u8 friendship, struct DisableStruct* disableStructPtr, u8 multihit); void EmitHealthBarUpdate(u8 bufferId, u16 hpValue); void EmitEffectivenessSound(u8 bufferId, u16 songId); @@ -20,7 +38,7 @@ void EmitExpUpdate(u8 bufferId, u8 partyId, u16 expPoints); void EmitBattleAnimation(u8 bufferId, u8 animationId, u16 argument); void EmitSpriteInvisibility(u8 bufferId, bool8 isInvisible); void EmitReturnPokeToBall(u8 bufferId, u8 arg1); -void EmitGetAttributes(u8 bufferId, u8 arg1, u8 arg2); +void EmitGetMonData(u8 bufferId, u8 arg1, u8 arg2); void EmitSwitchInAnim(u8 bufferId, u8 partyId, bool8 dontClearSubstituteBit); void EmitChoosePokemon(u8 bufferId, u8 caseId, u8 arg2, u8 abilityId, const u8* arg4); void EmitLinkStandbyMsg(u8 bufferId, u8 arg1, u8 arg2); @@ -31,6 +49,13 @@ void EmitHitAnimation(u8 bufferId); void EmitCmd48(u8 bufferId, struct HpAndStatus* hpAndStatus, u8 arg2); void EmitCmd49(u8 bufferId); void EmitStatusAnimation(u8 bufferId, bool8 status2, u32 status); +void EmitCmd13(u8 bufferId); +void EmitStatusIconUpdate(u8 bufferId, u32 status1, u32 status2); +void EmitResetActionMoveSelection(u8 bufferId, u8 caseId); + +#define RESET_ACTION_MOVE_SELECTION 0 +#define RESET_ACTION_SELECTION 1 +#define RESET_MOVE_SELECTION 2 void MarkBufferBankForExecution(u8 bank); diff --git a/include/battle_message.h b/include/battle_message.h index ad1ce3455..3e28fa5e5 100644 --- a/include/battle_message.h +++ b/include/battle_message.h @@ -74,6 +74,22 @@ #define B_BUFF_PLACEHOLDER_BEGIN 0xFD #define B_BUFF_EOS 0xFF +#define PREPARE_STAT_BUFFER(textVar, statId) \ +{ \ + textVar[0] = B_BUFF_PLACEHOLDER_BEGIN; \ + textVar[1] = B_BUFF_STAT; \ + textVar[2] = statId; \ + textVar[3] = B_BUFF_EOS; \ +} + +#define PREPARE_TYPE_BUFFER(textVar, typeId) \ +{ \ + textVar[0] = B_BUFF_PLACEHOLDER_BEGIN; \ + textVar[1] = B_BUFF_TYPE; \ + textVar[2] = typeId; \ + textVar[3] = B_BUFF_EOS; \ +} + #define PREPARE_BYTE_NUMBER_BUFFER(textVar, maxDigits, number) \ { \ textVar[0] = B_BUFF_PLACEHOLDER_BEGIN; \ @@ -84,6 +100,17 @@ textVar[5] = B_BUFF_EOS; \ } +#define PREPARE_HWORD_NUMBER_BUFFER(textVar, maxDigits, number) \ +{ \ + textVar[0] = B_BUFF_PLACEHOLDER_BEGIN; \ + textVar[1] = B_BUFF_NUMBER; \ + textVar[2] = 2; \ + textVar[3] = maxDigits; \ + textVar[4] = (number); \ + textVar[5] = (number & 0x0000FF00) >> 8; \ + textVar[6] = B_BUFF_EOS; \ +} + #define PREPARE_WORD_NUMBER_BUFFER(textVar, maxDigits, number) \ { \ textVar[0] = B_BUFF_PLACEHOLDER_BEGIN; \ @@ -158,7 +185,7 @@ struct StringInfoBattle }; void BufferStringBattle(u16 stringID); -u32 StrCpyDecodeToDisplayedStringBattle(const u8* src); +u32 BattleStringExpandPlaceholdersToDisplayedString(const u8* src); u32 BattleStringExpandPlaceholders(const u8* src, u8* dst); void sub_814F9EC(const u8* text, u8 arg1); diff --git a/include/moves.h b/include/moves.h index e3b6d3113..bc213cbc7 100644 --- a/include/moves.h +++ b/include/moves.h @@ -360,4 +360,6 @@ enum MOVE_PSYCHO_BOOST, }; -#endif // GUARD_MOVES_H \ No newline at end of file +#define LAST_MOVE_INDEX MOVE_PSYCHO_BOOST + +#endif // GUARD_MOVES_H diff --git a/include/pokemon.h b/include/pokemon.h index 518d28e58..20e904f39 100644 --- a/include/pokemon.h +++ b/include/pokemon.h @@ -126,6 +126,8 @@ #define TYPE_DRAGON 0x10 #define TYPE_DARK 0x11 +#define NUMBER_OF_MON_TYPES 0x12 + #define PARTY_SIZE 6 #define MAX_TOTAL_EVS 510 #define NUM_STATS 6 @@ -333,6 +335,8 @@ struct UnknownPokemonStruct u8 friendship; }; +#define BATTLE_STATS_NO 8 + struct BattlePokemon { /*0x00*/ u16 species; @@ -350,7 +354,7 @@ struct BattlePokemon /*0x17*/ u32 spDefenseIV:5; /*0x17*/ u32 isEgg:1; /*0x17*/ u32 altAbility:1; - /*0x18*/ s8 statStages[8]; + /*0x18*/ s8 statStages[BATTLE_STATS_NO]; /*0x20*/ u8 ability; /*0x21*/ u8 type1; /*0x22*/ u8 type2; @@ -521,6 +525,7 @@ extern struct PokemonStorage* gPokemonStoragePtr; extern const u32 gExperienceTables[][MAX_MON_LEVEL + 1]; extern const u16 *const gLevelUpLearnsets[]; +u8 CountAliveMonsInBattle(u8 caseId); #define BATTLE_ALIVE_EXCEPT_ACTIVE 0 #define BATTLE_ALIVE_ATK_SIDE 1 #define BATTLE_ALIVE_DEF_SIDE 2 diff --git a/include/pokemon_icon.h b/include/pokemon_icon.h new file mode 100644 index 000000000..b82334355 --- /dev/null +++ b/include/pokemon_icon.h @@ -0,0 +1,7 @@ +#ifndef GUARD_POKEMON_ICON_H +#define GUARD_POKEMON_ICON_H + +const u8 *GetMonIconPtr(u16 speciesId, u32 personality, u32 frameNo); +const u16 *GetValidMonIconPalettePtr(u16 speciesId); + +#endif // GUARD_POKEMON_ICON_H diff --git a/include/pokemon_item_effects.h b/include/pokemon_item_effects.h new file mode 100644 index 000000000..88f341317 --- /dev/null +++ b/include/pokemon_item_effects.h @@ -0,0 +1,8 @@ +#ifndef GUARD_POKEMON_ITEM_EFFECTS +#define GUARD_POKEMON_ITEM_EFFECTS + +#include "pokemon.h" + +bool8 ExecuteTableBasedItemEffect(struct Pokemon *mon, u16 itemId, u8 partyId, u8 monMoveIndex, u8 a5); + +#endif // GUARD_POKEMON_ITEM_EFFECTS diff --git a/include/text.h b/include/text.h index f0c85b978..88f2cc0e2 100644 --- a/include/text.h +++ b/include/text.h @@ -65,6 +65,7 @@ #define CHAR_x 0xEC #define CHAR_y 0xED #define CHAR_z 0xEE +#define CHAR_SPECIAL_F9 0xF9 #define CHAR_COLON 0xF0 #define CHAR_PROMPT_SCROLL 0xFA // waits for button press and scrolls dialog #define CHAR_PROMPT_CLEAR 0xFB // waits for button press and clears dialog @@ -73,6 +74,10 @@ #define CHAR_NEWLINE 0xFE #define EOS 0xFF // end of string +#define TEXT_COLOR_TRANSPARENT 0x0 +#define TEXT_COLOR_WHITE 0x1 +#define TEXT_COLOR_DARK_GREY 0x2 + // battle placeholders are located in battle_message.h #define EXT_CTRL_CODE_JPN 0x15 @@ -80,23 +85,26 @@ #define NUM_TEXT_PRINTERS 32 +struct TextSubPrinter // TODO: Better name +{ + u8* current_text_offset; + u8 windowId; + u8 fontId; + u8 x; + u8 y; + u8 currentX; // 0x8 + u8 currentY; + u8 letterSpacing; + u8 lineSpacing; + u8 fontColor_l:4; // 0xC + u8 fontColor_h:4; + u8 bgColor:4; + u8 shadowColor:4; +}; + struct TextPrinter { - struct TextSubPrinter { // TODO: Better name - u8* current_text_offset; - u8 windowId; - u8 fontId; - u8 x; - u8 y; - u8 currentX; // 0x8 - u8 currentY; - u8 letterSpacing; - u8 lineSpacing; - u8 fontColor_l:4; // 0xC - u8 fontColor_h:4; - u8 bgColor:4; - u8 shadowColor:4; - } subPrinter; + struct TextSubPrinter subPrinter; void (*callback)(struct TextSubPrinter *, u16); // 0x10 diff --git a/include/window.h b/include/window.h index e8af82e81..4e814ebc6 100644 --- a/include/window.h +++ b/include/window.h @@ -55,7 +55,7 @@ void PutWindowRectTilemap(u8 windowId, u8 x, u8 y, u8 width, u8 height); void BlitBitmapToWindow(u8 windowId, u8 *pixels, u16 x, u16 y, u16 width, u16 height); void BlitBitmapRectToWindow(u8 windowId, const u8 *pixels, u16 srcX, u16 srcY, u16 srcWidth, int srcHeight, u16 destX, u16 destY, u16 rectWidth, u16 rectHeight); void FillWindowPixelRect(u8 windowId, u8 fillValue, u16 x, u16 y, u16 width, u16 height); -void CopyToWindowPixelBuffer(u8 windowId, u8 *src, u16 size, u16 tileOffset); +void CopyToWindowPixelBuffer(u8 windowId, const u8 *src, u16 size, u16 tileOffset); void FillWindowPixelBuffer(u8 windowId, u8 fillValue); void ScrollWindow(u8 windowId, u8 direction, u8 distance, u8 fillValue); void CallWindowFunction(u8 windowId, void ( *func)(u8, u8, u8, u8, u8, u8)); -- cgit v1.2.3 From 69928d3904a610791d5e34e32364d9ee5f9392ee Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Wed, 27 Sep 2017 23:43:45 +0200 Subject: battle 4 up to 0xE5 --- include/battle.h | 87 ++++++++++++------------------------------------ include/battle_message.h | 17 ++++++++++ include/mail.h | 19 +++++++++++ 3 files changed, 58 insertions(+), 65 deletions(-) create mode 100644 include/mail.h (limited to 'include') diff --git a/include/battle.h b/include/battle.h index f84a75cba..a0a50faf7 100644 --- a/include/battle.h +++ b/include/battle.h @@ -112,7 +112,7 @@ #define STATUS3_ROOTED 0x400 #define STATUS3_CHARGED_UP 0x200 #define STATUS3_YAWN 0x1800 //two bits -#define STATUS3_IMPRISIONED 0x2000 +#define STATUS3_IMPRISONED_OTHERS 0x2000 #define STATUS3_GRUDGE 0x4000 #define STATUS3_CANT_SCORE_A_CRIT 0x8000 #define STATUS3_MUDSPORT 0x10000 @@ -172,7 +172,7 @@ #define ABILITYEFFECT_CHECK_BANK_SIDE 0xD #define ABILITYEFFECT_FIELD_SPORT 0xE #define ABILITYEFFECT_CHECK_FIELD_EXCEPT_BANK 0xF -#define ABILITYEFFECT_COUNT_OTHER_SIZE 0x10 +#define ABILITYEFFECT_COUNT_OTHER_SIDE 0x10 #define ABILITYEFFECT_COUNT_BANK_SIDE 0x11 #define ABILITYEFFECT_COUNT_ON_FIELD 0x12 #define ABILITYEFFECT_CHECK_ON_FIELD 0x13 @@ -206,6 +206,15 @@ #define WEATHER_HAIL (1 << 7) #define WEATHER_HAIL_ANY ((WEATHER_HAIL)) +#define BATTLE_TERRAIN_GRASS 0 +#define BATTLE_TERRAIN_LONG_GRASS 1 +#define BATTLE_TERRAIN_SAND 2 +#define BATTLE_TERRAIN_UNDERWATER 3 +#define BATTLE_TERRAIN_WATER 4 +#define BATTLE_TERRAIN_POND 5 +#define BATTLE_TERRAIN_ROCK 6 +#define BATTLE_TERRAIN_CAVE 7 + // array entries for battle communication #define CURSOR_POSITION 0x1 #define MOVE_EFFECT_BYTE 0x3 @@ -554,46 +563,7 @@ struct BattleStruct u8 wildVictorySong; u8 dynamicMoveType; u8 wrappedBy[4]; - u8 field_18; - u8 field_19; - u8 field_1A; - u8 field_1B; - u8 field_1C; - u8 field_1D; - u8 field_1E; - u8 field_1F; - u8 field_20; - u8 field_21; - u8 field_22; - u8 field_23; - u8 field_24; - u8 field_25; - u8 field_26; - u8 field_27; - u8 field_28; - u8 field_29; - u8 field_2A; - u8 field_2B; - u8 field_2C; - u8 field_2D; - u8 field_2E; - u8 field_2F; - u8 field_30; - u8 field_31; - u8 field_32; - u8 field_33; - u8 field_34; - u8 field_35; - u8 field_36; - u8 field_37; - u8 field_38; - u8 field_39; - u8 field_3A; - u8 field_3B; - u8 field_3C; - u8 field_3D; - u8 field_3E; - u8 field_3F; + u16 assistPossibleMoves[5 * 4]; // 5 mons, each of them knowing 4 moves u8 field_40; u8 field_41; u8 field_42; @@ -710,28 +680,6 @@ extern struct BattleStruct* gBattleStruct; var2[offsetof(struct structName, offsetField)] = value; \ } -// This is a leftover from R/S direct use of ewram addresses -#define GET_CHANGED_ITEM_PTR_VIA_MEME_ACCESS(bank, varName) \ -{ \ - void** memes1 = (void**)(&gBattleStruct); \ - void* memes2 = (void*)((u32)(bank * 2 + offsetof(struct BattleStruct, changedItems))); \ - varName = (u16*)(((void*)(*memes1) + (u32)(memes2))); \ -} - -#define GET_USED_ITEM_PTR_VIA_MEME_ACCESS(bank, varName) \ -{ \ - void** memes1 = (void**)(&gBattleStruct); \ - void* memes2 = (void*)((u32)(bank * 2 + offsetof(struct BattleStruct, usedHeldItems))); \ - varName = (u16*)(((void*)(*memes1) + (u32)(memes2))); \ -} - -#define GET_HP_SWITCHOUT_PTR_VIA_MEME_ACCESS(bank, varName) \ -{ \ - void** memes1 = (void**)(&gBattleStruct); \ - void* memes2 = (void*)((u32)(bank * 2 + offsetof(struct BattleStruct, hpOnSwitchout))); \ - varName = (u16*)(((void*)(*memes1) + (u32)(memes2))); \ -} - #define GET_MOVE_TYPE(move, typeArg) \ { \ if (gBattleStruct->dynamicMoveType) \ @@ -917,15 +865,24 @@ void BattleMainCB2(void); void ResetSentPokesToOpponentValue(void); bool8 CanRunFromBattle(u8 bank); bool8 IsRunningFromBattleImpossible(void); +void PressurePPLoseOnUsingPerishSong(u8 bankAtk); +void PressurePPLoseOnUsingImprision(u8 bankAtk); // battle_3 +#define MOVE_LIMITATION_ZEROMOVE (1 << 0) +#define MOVE_LIMITATION_PP (1 << 1) +#define MOVE_LIMITATION_DISABLED (1 << 2) +#define MOVE_LIMITATION_TORMENTED (1 << 3) +#define MOVE_LIMITATION_TAUNT (1 << 4) +#define MOVE_LIMITATION_IMPRISION (1 << 5) + void BattleScriptPush(const u8* bsPtr); void BattleScriptPushCursor(void); void BattleScriptPop(void); u8 sub_803FB4C(void); // msg, can't select a move u8 CheckMoveLimitations(u8 bank, u8 unusableMoves, u8 check); bool8 AreAllMovesUnusable(void); -u8 IsImprisoned(u8 bank, u16 move); +u8 GetImprisonedMovesCount(u8 bank, u16 move); u8 UpdateTurnCounters(void); u8 TurnBasedEffects(void); bool8 sub_8041364(void); diff --git a/include/battle_message.h b/include/battle_message.h index 3e28fa5e5..6e6616cf0 100644 --- a/include/battle_message.h +++ b/include/battle_message.h @@ -82,6 +82,14 @@ textVar[3] = B_BUFF_EOS; \ } +#define PREPARE_ABILITY_BUFFER(textVar, abilityId) \ +{ \ + textVar[0] = B_BUFF_PLACEHOLDER_BEGIN; \ + textVar[1] = B_BUFF_ABILITY; \ + textVar[2] = abilityId; \ + textVar[3] = B_BUFF_EOS; \ +} + #define PREPARE_TYPE_BUFFER(textVar, typeId) \ { \ textVar[0] = B_BUFF_PLACEHOLDER_BEGIN; \ @@ -142,6 +150,15 @@ textVar[4] = B_BUFF_EOS; \ } +#define PREPARE_ITEM_BUFFER(textVar, item) \ +{ \ + textVar[0] = B_BUFF_PLACEHOLDER_BEGIN; \ + textVar[1] = B_BUFF_ITEM; \ + textVar[2] = item; \ + textVar[3] = (item & 0xFF00) >> 8; \ + textVar[4] = B_BUFF_EOS; \ +} + #define PREPARE_SPECIES_BUFFER(textVar, species) \ { \ textVar[0] = B_BUFF_PLACEHOLDER_BEGIN; \ diff --git a/include/mail.h b/include/mail.h new file mode 100644 index 000000000..16ca1f676 --- /dev/null +++ b/include/mail.h @@ -0,0 +1,19 @@ +#ifndef GUARD_MAIL_H +#define GUARD_MAIL_H + +#include "items.h" + +#define IS_ITEM_MAIL(itemId)((itemId == ITEM_ORANGE_MAIL \ + || itemId == ITEM_HARBOR_MAIL \ + || itemId == ITEM_GLITTER_MAIL \ + || itemId == ITEM_MECH_MAIL \ + || itemId == ITEM_WOOD_MAIL \ + || itemId == ITEM_WAVE_MAIL \ + || itemId == ITEM_BEAD_MAIL \ + || itemId == ITEM_SHADOW_MAIL \ + || itemId == ITEM_TROPIC_MAIL \ + || itemId == ITEM_DREAM_MAIL \ + || itemId == ITEM_FAB_MAIL \ + || itemId == ITEM_RETRO_MAIL)) + +#endif // GUARD_MAIL_H -- cgit v1.2.3 From bc3b4b4d9ae6ab59c9ce3892b7d287ebd0ee13fa Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Thu, 28 Sep 2017 15:34:21 +0200 Subject: battle 4 commands are decompiled --- include/battle.h | 33 +++++++++++++++++---------------- include/battle_controllers.h | 13 ++++++++++++- include/battle_message.h | 2 ++ include/naming_screen.h | 12 ++++++++++++ include/pokedex.h | 1 + include/pokemon_storage_system.h | 6 ++++++ 6 files changed, 50 insertions(+), 17 deletions(-) create mode 100644 include/naming_screen.h create mode 100644 include/pokemon_storage_system.h (limited to 'include') diff --git a/include/battle.h b/include/battle.h index a0a50faf7..7b164caf4 100644 --- a/include/battle.h +++ b/include/battle.h @@ -205,6 +205,7 @@ #define WEATHER_SUN_ANY ((WEATHER_SUN_TEMPORARY | WEATHER_SUN_PERMANENT)) #define WEATHER_HAIL (1 << 7) #define WEATHER_HAIL_ANY ((WEATHER_HAIL)) +#define WEATHER_ANY ((WEATHER_RAIN_ANY | WEATHER_SANDSTORM_ANY | WEATHER_SUN_ANY | WEATHER_HAIL_ANY)) #define BATTLE_TERRAIN_GRASS 0 #define BATTLE_TERRAIN_LONG_GRASS 1 @@ -216,7 +217,9 @@ #define BATTLE_TERRAIN_CAVE 7 // array entries for battle communication +#define MULTIUSE_STATE 0x0 #define CURSOR_POSITION 0x1 +#define TASK_ID 0x1 // task Id and cursor position share the same field #define MOVE_EFFECT_BYTE 0x3 #define MULTISTRING_CHOOSER 0x5 #define MSG_DISPLAY 0x7 @@ -531,6 +534,9 @@ struct BattleResults u8 unk4; // 0x4 u8 unk5_0:1; // 0x5 u8 unk5_1:1; // 0x5 + u8 caughtMonBall:4; // 0x5 + u8 unk5_6:1; // 0x5 + u8 unk5_7:1; // 0x5 u16 poke1Species; // 0x6 u8 pokeString1[10]; // 0x8 u8 unk12; @@ -542,10 +548,10 @@ struct BattleResults u16 lastUsedMove; // 0x22 u16 opponentMove; // 0x24 u16 opponentSpecies; // 0x26 - u16 caughtPoke; // 0x28 - u8 caughtNick[10]; // 0x2A + u16 caughtMonSpecies; // 0x28 + u8 caughtMonNick[10]; // 0x2A u8 filler34[2]; - u8 unk36[10]; // usedBalls? + u8 catchAttempts[10]; // 0x36 }; extern struct BattleResults gBattleResults; @@ -588,17 +594,7 @@ struct BattleStruct u8 field_5C[4]; u8 field_60[4][3]; u8 field_6C; - u8 field_6D; - u8 field_6E; - u8 field_6F; - u8 field_70; - u8 field_71; - u8 field_72; - u8 field_73; - u8 field_74; - u8 field_75; - u8 field_76; - u8 field_77; + u8 caughtMonNick[11]; u8 field_78; u8 field_79; u8 field_7A; @@ -845,6 +841,7 @@ struct BattleScripting u8 field_1D; u8 atk6C_state; u8 learnMoveState; + u8 field_20; }; extern struct BattleScripting gBattleScripting; @@ -862,6 +859,7 @@ void SwitchInClearStructs(void); void sub_803BDA0(u8 bank); void sub_803FA70(u8 bank); void BattleMainCB2(void); +void VBlankCB_Battle(void); void ResetSentPokesToOpponentValue(void); bool8 CanRunFromBattle(u8 bank); bool8 IsRunningFromBattleImpossible(void); @@ -892,8 +890,8 @@ u8 AtkCanceller_UnableToUseMove(void); bool8 sub_80423F4(u8 bank, u8 r1, u8 r2); u8 CastformDataTypeChange(u8 bank); u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg); -void b_call_bc_move_exec(const u8* BS_ptr); -void b_push_move_exec(const u8* BS_ptr); +void BattleScriptExecute(const u8* BS_ptr); +void BattleScriptPushCursorAndCallback(const u8* BS_ptr); u8 ItemBattleEffects(u8 caseID, u8 bank, bool8 moveTurn); void sub_8045868(u8 bank); void sub_80458B4(void); @@ -905,9 +903,12 @@ void AI_CalcDmg(u8 bankAtk, u8 bankDef); u8 TypeCalc(u16 move, u8 bankAtk, u8 bankDef); u8 AI_TypeCalc(u16 move, u16 species, u8 ability); u8 BankGetTurnOrder(u8 bank); +void SetMoveEffect(bool8 primary, u8 certain); void BattleDestroyCursorAt(u8 cursorPosition); void BattleCreateCursorAt(u8 cursorPosition); void BufferMoveToLearnIntoBattleTextBuff2(void); +void sub_8056A3C(u8 xStart, u8 yStart, u8 xEnd, u8 yEnd, u8 flags); +bool8 UproarWakeUpCheck(u8 bank); // battle_5 void AdjustFriendshipOnBattleFaint(u8 bank); diff --git a/include/battle_controllers.h b/include/battle_controllers.h index bb58cb699..b2846d7cf 100644 --- a/include/battle_controllers.h +++ b/include/battle_controllers.h @@ -43,6 +43,7 @@ void EmitSwitchInAnim(u8 bufferId, u8 partyId, bool8 dontClearSubstituteBit); void EmitChoosePokemon(u8 bufferId, u8 caseId, u8 arg2, u8 abilityId, const u8* arg4); void EmitLinkStandbyMsg(u8 bufferId, u8 arg1, u8 arg2); void EmitTrainerSlide(u8 bufferId); +void EmitTrainerSlideBack(u8 bufferId); void EmitFaintingCry(u8 bufferId); void Emit_x37(u8 bufferId, u8 arg1); void EmitHitAnimation(u8 bufferId); @@ -51,12 +52,22 @@ void EmitCmd49(u8 bufferId); void EmitStatusAnimation(u8 bufferId, bool8 status2, u32 status); void EmitCmd13(u8 bufferId); void EmitStatusIconUpdate(u8 bufferId, u32 status1, u32 status2); -void EmitResetActionMoveSelection(u8 bufferId, u8 caseId); #define RESET_ACTION_MOVE_SELECTION 0 #define RESET_ACTION_SELECTION 1 #define RESET_MOVE_SELECTION 2 +void EmitResetActionMoveSelection(u8 bufferId, u8 caseId); + +#define BALL_NO_SHAKES 0 +#define BALL_1_SHAKE 1 +#define BALL_2_SHAKES 2 +#define BALL_3_SHAKES_FAIL 3 +#define BALL_3_SHAKES_SUCCESS 4 +#define BALL_TRAINER_BLOCK 5 + +void EmitBallThrow(u8 bufferId, u8 caseId); + void MarkBufferBankForExecution(u8 bank); #endif // GUARD_BATTLE_CONTROLLERS_H diff --git a/include/battle_message.h b/include/battle_message.h index 6e6616cf0..3bc7117bb 100644 --- a/include/battle_message.h +++ b/include/battle_message.h @@ -211,4 +211,6 @@ extern u8 gBattleTextBuff2[]; extern u8 gBattleTextBuff3[]; extern u8 gDisplayedStringBattle[]; +extern const u8* const gRefereeStringsTable[]; + #endif // GUARD_BATTLE_MESSAGE_H diff --git a/include/naming_screen.h b/include/naming_screen.h new file mode 100644 index 000000000..55a8e75a3 --- /dev/null +++ b/include/naming_screen.h @@ -0,0 +1,12 @@ +#ifndef GUARD_NAMING_SCREEN_H +#define GUARD_NAMING_SCREEN_H + +#define NAMING_SCREEN_PLAYER 0 +#define NAMING_SCREEN_BOX 1 +#define NAMING_SCREEN_CAUGHT_MON 2 +#define NAMING_SCREEN_3 3 +#define NAMING_SCREEN_WANDA 4 + +void DoNamingScreen(u8 caseId, u8* dst, u16 monSpecies, u8 monGender, u32 monPersonality, void (*callback)(void)); + +#endif // GUARD_NAMING_SCREEN_H diff --git a/include/pokedex.h b/include/pokedex.h index 15f819a2a..38aca0915 100644 --- a/include/pokedex.h +++ b/include/pokedex.h @@ -6,6 +6,7 @@ const u8 *GetPokemonCategory(u16); u16 GetPokedexHeightWeight(u16 dexNum, u8 data); u16 GetNationalPokedexCount(u8); u16 GetHoennPokedexCount(u8); +u8 CreateDexDisplayMonDataTask(u16 dexNum, u32 trainerId, u32 personality); enum { diff --git a/include/pokemon_storage_system.h b/include/pokemon_storage_system.h new file mode 100644 index 000000000..5216e8450 --- /dev/null +++ b/include/pokemon_storage_system.h @@ -0,0 +1,6 @@ +#ifndef GUARD_POKEMON_STORAGE_SYSTEM_H +#define GUARD_POKEMON_STORAGE_SYSTEM_H + +u8* GetBoxNamePtr(u8 boxNumber); + +#endif // GUARD_POKEMON_STORAGE_SYSTEM_H -- cgit v1.2.3 From 7273b8f26277e3f9a1b562454e2e7f88e5523731 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Thu, 28 Sep 2017 16:51:24 +0200 Subject: battle 4 is all done --- include/battle.h | 2 ++ 1 file changed, 2 insertions(+) (limited to 'include') diff --git a/include/battle.h b/include/battle.h index 7b164caf4..158ae46b2 100644 --- a/include/battle.h +++ b/include/battle.h @@ -910,6 +910,8 @@ void BufferMoveToLearnIntoBattleTextBuff2(void); void sub_8056A3C(u8 xStart, u8 yStart, u8 xEnd, u8 yEnd, u8 flags); bool8 UproarWakeUpCheck(u8 bank); +extern const u8 gUnknown_0831C494[]; + // battle_5 void AdjustFriendshipOnBattleFaint(u8 bank); void sub_80571DC(u8 bank, u8 arg1); -- cgit v1.2.3 From 6d4d58a8a7759517b327a4017e05332888662e84 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Thu, 28 Sep 2017 17:38:07 +0200 Subject: rename battle4 and battleai --- include/battle.h | 3 ++- include/battle_ai.h | 13 ------------- include/battle_ai_script_commands.h | 13 +++++++++++++ 3 files changed, 15 insertions(+), 14 deletions(-) delete mode 100644 include/battle_ai.h create mode 100644 include/battle_ai_script_commands.h (limited to 'include') diff --git a/include/battle.h b/include/battle.h index 158ae46b2..67d3d873d 100644 --- a/include/battle.h +++ b/include/battle.h @@ -898,7 +898,7 @@ void sub_80458B4(void); u8 GetMoveTarget(u16 move, u8 useMoveTarget); u8 IsPokeDisobedient(void); -// battle_4 +// battle_script_commands void AI_CalcDmg(u8 bankAtk, u8 bankDef); u8 TypeCalc(u16 move, u8 bankAtk, u8 bankDef); u8 AI_TypeCalc(u16 move, u16 species, u8 ability); @@ -910,6 +910,7 @@ void BufferMoveToLearnIntoBattleTextBuff2(void); void sub_8056A3C(u8 xStart, u8 yStart, u8 xEnd, u8 yEnd, u8 flags); bool8 UproarWakeUpCheck(u8 bank); +extern void (* const gBattleScriptingCommandsTable[])(void); extern const u8 gUnknown_0831C494[]; // battle_5 diff --git a/include/battle_ai.h b/include/battle_ai.h deleted file mode 100644 index 2a315059b..000000000 --- a/include/battle_ai.h +++ /dev/null @@ -1,13 +0,0 @@ -#ifndef GUARD_BATTLE_AI_H -#define GUARD_BATTLE_AI_H - -void BattleAI_HandleItemUseBeforeAISetup(u8 defaultScoreMoves); -void BattleAI_SetupAIData(u8 defaultScoreMoves); -u8 BattleAI_ChooseMoveOrAction(void); -void ClearBankMoveHistory(u8 bank); -void RecordAbilityBattle(u8 bank, u8 abilityId); -void ClearBankAbilityHistory(u8 bank); -void RecordItemEffectBattle(u8 bank, u8 itemEffect); -void ClearBankItemEffectHistory(u8 bank); - -#endif // GUARD_BATTLE_AI_H diff --git a/include/battle_ai_script_commands.h b/include/battle_ai_script_commands.h new file mode 100644 index 000000000..5fb422b41 --- /dev/null +++ b/include/battle_ai_script_commands.h @@ -0,0 +1,13 @@ +#ifndef GUARD_BATTLE_AI_SCRIPT_COMMANDS_H +#define GUARD_BATTLE_AI_SCRIPT_COMMANDS_H + +void BattleAI_HandleItemUseBeforeAISetup(u8 defaultScoreMoves); +void BattleAI_SetupAIData(u8 defaultScoreMoves); +u8 BattleAI_ChooseMoveOrAction(void); +void ClearBankMoveHistory(u8 bank); +void RecordAbilityBattle(u8 bank, u8 abilityId); +void ClearBankAbilityHistory(u8 bank); +void RecordItemEffectBattle(u8 bank, u8 itemEffect); +void ClearBankItemEffectHistory(u8 bank); + +#endif // GUARD_BATTLE_AI_SCRIPT_COMMANDS_H -- cgit v1.2.3 From f1fe0c217d5366123c057da85b28b5c10ac9798d Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Thu, 28 Sep 2017 20:52:36 +0200 Subject: decompile roamer --- include/roamer.h | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'include') diff --git a/include/roamer.h b/include/roamer.h index af7f86e79..ba1b09b54 100644 --- a/include/roamer.h +++ b/include/roamer.h @@ -3,9 +3,15 @@ void ClearRoamerData(void); void ClearRoamerLocationData(void); +void InitRoamer(void); void UpdateLocationHistoryForRoamer(void); void RoamerMoveToOtherLocationSet(void); -void RoamerMove(); +void RoamerMove(void); +bool8 IsRoamerAt(u8 mapGroup, u8 mapNum); +void CreateRoamerMonInstance(void); u8 TryStartRoamerEncounter(void); +void UpdateRoamerHPStatus(struct Pokemon *mon); +void SetRoamerInactive(void); +void GetRoamerLocation(u8 *mapGroup, u8 *mapNum); #endif // GUARD_ROAMER_H -- cgit v1.2.3 From e41b9cbbb37c908f77a9ce440f33b76b35139311 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Fri, 29 Sep 2017 00:11:42 +0200 Subject: decompile money --- include/menu.h | 5 ++++- include/money.h | 10 ++++++++++ 2 files changed, 14 insertions(+), 1 deletion(-) (limited to 'include') diff --git a/include/menu.h b/include/menu.h index 9a23401e0..766aa9d39 100644 --- a/include/menu.h +++ b/include/menu.h @@ -1,7 +1,7 @@ #ifndef GUARD_MENU_H #define GUARD_MENU_H -#include "text.h" +#include "window.h" struct MenuAction { @@ -16,5 +16,8 @@ struct MenuAction2 }; void box_print(u8, u8, u8, u8, const void *, s8, const u8 *); +void sub_8198070(u8 windowId, bool8 copyToVram); +void SetWindowTemplateFields(struct WindowTemplate* template, u8 priority, u8 tilemapLeft, u8 tilemapTop, u8 width, u8 height, u8 palNum, u16 baseBlock); +void SetWindowBorderStyle(u8 windowId, bool8 copyToVram, u16 tileStart, u8 palette); #endif // GUARD_MENU_H diff --git a/include/money.h b/include/money.h index 316dbd697..22a3657f6 100644 --- a/include/money.h +++ b/include/money.h @@ -6,5 +6,15 @@ void SetMoney(u32* moneyPtr, u32 newValue); bool8 IsEnoughMoney(u32* moneyPtr, u32 cost); void AddMoney(u32* moneyPtr, u32 toAdd); void SubtractMoney(u32* moneyPtr, u32 toSub); +bool8 IsEnoughForCostInVar0x8005(void); +void SubtractMoneyFromVar0x8005(void); +void PrintMoneyAmountInMoneyBox(u8 windowId, int amount, u8 speed); +void PrintMoneyAmount(u8 windowId, u8 x, u8 y, int amount, u8 speed); +void PrintMoneyAmountInMoneyBoxWithBorder(u8 windowId, u16 tileStart, u8 pallete, int amount); +void ChangeAmountInMoneyBox(int amount); +void DrawMoneyBox(int amount, u8 x, u8 y); +void HideMoneyBox(void); +void AddMoneyLabelObject(u16 x, u16 y); +void RemoveMoneyLabelObject(void); #endif // GUARD_MONEY_H -- cgit v1.2.3 From eb4f195c19ecd8aa39f033146879707dc76298bf Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Fri, 29 Sep 2017 08:37:15 +0200 Subject: Update songs.h Thanks to Jughead Jones, Wobb, Lunos, Bela and anyone else who helped. --- include/songs.h | 98 +++++++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 95 insertions(+), 3 deletions(-) (limited to 'include') diff --git a/include/songs.h b/include/songs.h index afd26d683..d828e4068 100644 --- a/include/songs.h +++ b/include/songs.h @@ -15,8 +15,8 @@ enum /*0x09*/ SE_KAIDAN, /*0x0A*/ SE_DANSA, /*0x0B*/ SE_JITENSYA, - /*0x0C*/ SE_KOUKA_L, - /*0x0D*/ SE_KOUKA_M, + /*0x0C*/ SE_KOUKA_L, // Goggle told me Kouka means 'effectiveness' which makes sense, because + /*0x0D*/ SE_KOUKA_M, // those three sounds play whenever you use a move /*0x0E*/ SE_KOUKA_H, /*0x0F*/ SE_BOWA2, /*0x10*/ SE_POKE_DEAD, @@ -359,7 +359,24 @@ enum BGM_DAIGO, BGM_THANKFOR, BGM_END, - BGM_BATTLE27, // wild + /*0x1C9*/ BGM_BATTLE_FRONTIER, // human-readable names start here because we don't know the actual filenames + BGM_BATTLE_ARENA, + BGM_ME_BATTLE_POINTS, // ME_ as in messagebox? Used for KINOMI (berries) and stuff above + BGM_ME_MATCH_CALL, + BGM_BATTLE_PYRAMID, + BGM_BATTLE_PYRAMID_SUMMIT, + BGM_BATTLE_PALACE, + BGM_FANFA_RAYQUAZA, + BGM_BATTLE_TOWER, + BGM_ME_BATTLE_SYMBOL, + BGM_BATTLE_DOME_TOURNAMENT, + BGM_BATTLE_PIKE, + BGM_BATTLE_FACTORY, + BGM_BATTLE_LEGENDARY, + BGM_BATTLE_FRONTIER_BRAIN, + BGM_BATTLE_MEW, + BGM_BATTLE_DOME, // end of the human-readable names + /*0x1DA*/ BGM_BATTLE27, // wild BGM_BATTLE31, // aqua/magma grunt BGM_BATTLE20, // trainer BGM_BATTLE32, // gym leader @@ -369,6 +386,81 @@ enum BGM_BATTLE35, // rival BGM_BATTLE38, // elite four BGM_BATTLE30, // aqua/magma leader + /*0x1E4*/ BGM_FRLG_FOLLOW_ME, // FR/LG names not known, human-readable again! + BGM_FRLG_GAMECORNER, + BGM_FRLG_ROCKET_HIDEOUT, + BGM_FRLG_GYM, + BGM_FRLG_JIGGLYPUFF, + BGM_FRLG_OPENING, + BGM_FRLG_TITLE, + BGM_FRLG_CINNABAR_ISLAND, + BGM_FRLG_LAVENDER_TOWN, + BGM_FRLG_HEALING_TEST, + BGM_FRLG_BICYCLE, + BGM_FRLG_SUSPICIOUS_EYE, + BGM_FRLG_GIRL_EYE, + BGM_FRLG_BOY_EYE, + BGM_FRLG_CONGRATULATIONS_HALL_OF_FAME, + BGM_FRLG_VIRIDIAN_FOREST, + BGM_FRLG_MT_MOON, + BGM_FRLG_POKEMON_MANSION, + BGM_FRLG_CREDITS, + BGM_FRLG_ROUTE_1, + BGM_FRLG_ROUTE_24, + BGM_FRLG_ROUTE_3, + BGM_FRLG_ROUTE_11, + BGM_FRLG_INDIGO_PLATEAU, + BGM_FRLG_BATTLE_LEADER, + BGM_FRLG_BATTLE_TRAINER, + BGM_FRLG_BATTLE_WILD_POKEMON, + BGM_FRLG_BATTLE_CHAMPION, + BGM_FRLG_PALLET_TOWN, + BGM_FRLG_OAK_LAB, + BGM_FRLG_PROF_OAK, + BGM_FRLG_POKEMON_CENTER, + BGM_FRLG_SS_ANNE, + BGM_FRLG_SURF, + BGM_FRLG_POKEMON_TOWER, + BGM_FRLG_SILPH, + BGM_FRLG_CERULEAN_CITY, + BGM_FRLG_CELADON_CITY, + BGM_FRLG_KACHI_TRAINER, // KACHI used in RS test - victory + BGM_FRLG_KACHI_WILD_POKEMON, + BGM_FRLG_KACHI_LEADER, + BGM_FRLG_VERMILION_CITY, + BGM_FRLG_VIRIDIAN_CITY, + BGM_FRLG_RIVAL, + BGM_FRLG_RIVAL_POSTBATTLE, + BGM_FRLG_ME_POKEDEX_EVAL, + BGM_FRLG_ME_KEYITEM, + BGM_FRLG_FANFA_POKEMON_CAUGHT, + BGM_FRLG_FANFA_TRAINERCARD_PHOTO, + BGM_FRLG_GAMEFREAK_LOGO, + BGM_FRLG_CAUGHT_POKEMON, + BGM_FRLG_GAME_EXPLANATION_START, + BGM_FRLG_GAME_EXPLANATION_MIDDLE, + BGM_FRLG_GAME_EXPLANATION_END, + BGM_FRLG_POKEMON_JUMP, + BGM_FRLG_UNION_ROOM, + BGM_FRLG_POKEMON_NETWORK_CENTER, + BGM_FRLG_MYSTERY_GIFT, + BGM_FRLG_DODRIO_BERRY_PICK, + BGM_FRLG_MT_EMBER, + BGM_FRLG_TEACHY_TV_EPISODE, + BGM_FRLG_SEVII_ISLANDS, + BGM_FRLG_TANOBY_RUINS, + BGM_FRLG_ISLAND_ONE, + BGM_FRLG_ISLAND_FOUR, + BGM_FRLG_ISLAND_SIX, + BGM_FRLG_FLUTE, + BGM_FRLG_BATTLE_DEOXYS, + BGM_FRLG_BATTLE_MEWTWO, + BGM_FRLG_BATTLE_LEGENDARY, + BGM_FRLG_LEADER_EYE, + BGM_FRLG_DEOXYS_EYE, + BGM_FRLG_TRAINER_TOWER, + BGM_FRLG_HALL_OF_FAME_PALLET_TOWN, + /*0x22E*/BGM_FRLG_TEACHY_TV, }; #endif // GUARD_SONGS_H -- cgit v1.2.3 From f5387cf6b18b57f3620c05d652a9cf5b8bc2f347 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Fri, 29 Sep 2017 19:03:50 +0200 Subject: decompile metatile behav --- include/metatile_behavior.h | 156 ++++++++++++++++++++++++++++++++++--- include/metatile_behaviors.h | 179 +++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 326 insertions(+), 9 deletions(-) create mode 100644 include/metatile_behaviors.h (limited to 'include') diff --git a/include/metatile_behavior.h b/include/metatile_behavior.h index 5ed36c690..d6743b788 100644 --- a/include/metatile_behavior.h +++ b/include/metatile_behavior.h @@ -1,11 +1,149 @@ -#ifndef GUARD_METATILE_BEHAVIOR_H -#define GUARD_METATILE_BEHAVIOR_H +#ifndef GUARD_METATILE_BEHAVIOR +#define GUARD_METATILE_BEHAVIOR -// Exported type declarations +bool8 ShouldDoJumpLandingDustEffect(u8); +bool8 MetatileBehavior_IsEncounterTile(u8); +bool8 MetatileBehavior_IsJumpEast(u8); +bool8 MetatileBehavior_IsJumpWest(u8); +bool8 MetatileBehavior_IsJumpNorth(u8); +bool8 MetatileBehavior_IsJumpSouth(u8); +bool8 MetatileBehavior_IsPokeGrass(u8); +bool8 MetatileBehavior_IsSandOrDeepSand(u8); +bool8 MetatileBehavior_IsDeepSand(u8); +bool8 MetatileBehavior_IsReflective(u8); +bool8 MetatileBehavior_IsIce(u8); +bool8 MetatileBehavior_IsWarpDoor(u8); +bool8 MetatileBehavior_IsDoor(u8); +bool8 MetatileBehavior_IsEscalator(u8); +bool8 MetatileBehavior_IsMB_04(u8); +bool8 MetatileBehavior_IsLadder(u8); +bool8 MetatileBehavior_IsNonAnimDoor(u8); +bool8 MetatileBehavior_IsDeepSouthWarp(u8); +bool8 MetatileBehavior_IsSurfableWaterOrUnderwater(u8); +bool8 MetatileBehavior_IsEastArrowWarp(u8); +bool8 MetatileBehavior_IsWestArrowWarp(u8); +bool8 MetatileBehavior_IsNorthArrowWarp(u8); +bool8 MetatileBehavior_IsSouthArrowWarp(u8); +bool8 MetatileBehavior_IsArrowWarp(u8); +bool8 MetatileBehavior_IsMoveTile(u8); +bool8 MetatileBehavior_IsIce_2(u8); +bool8 MetatileBehavior_IsTrickHouseSlipperyFloor(u8); +bool8 MetatileBehavior_IsMB_05(u8); +bool8 MetatileBehavior_IsWalkNorth(u8); +bool8 MetatileBehavior_IsWalkSouth(u8); +bool8 MetatileBehavior_IsWalkWest(u8); +bool8 MetatileBehavior_IsWalkEast(u8); +bool8 MetatileBehavior_IsNorthwardCurrent(u8); +bool8 MetatileBehavior_IsSouthwardCurrent(u8); +bool8 MetatileBehavior_IsWestwardCurrent(u8); +bool8 MetatileBehavior_IsEastwardCurrent(u8); +bool8 MetatileBehavior_IsSlideNorth(u8); +bool8 MetatileBehavior_IsSlideSouth(u8); +bool8 MetatileBehavior_IsSlideWest(u8); +bool8 MetatileBehavior_IsSlideEast(u8); +bool8 MetatileBehavior_IsCounter(u8); +bool8 MetatileBehavior_IsPlayerFacingTVScreen(u8 tile, u8 playerDir); +bool8 MetatileBehavior_IsPC(u8); +bool8 MetatileBehavior_IsCableBoxResults1(u8); +bool8 MetatileBehavior_IsSecretBaseOpen(u8); +bool8 MetatileBehavior_IsSecretBaseCave(u8); +bool8 MetatileBehavior_IsSecretBaseTree(u8); +bool8 MetatileBehavior_IsSecretBaseShrub(u8); +bool8 MetatileBehavior_IsSecretBasePC(u8); +bool8 MetatileBehavior_IsSecretBaseRegisterPC(u8); +bool8 MetatileBehavior_IsMB_B2(u8); +bool8 MetatileBehavior_IsMB_B3(u8); +bool8 MetatileBehavior_IsMB_B9(u8); +bool8 MetatileBehavior_IsMB_C6(u8); +bool8 MetatileBehavior_IsSecretBasePoster(u8); +bool8 MetatileBehavior_IsNormal(u8); +bool8 MetatileBehavior_IsMB_B7(u8); +bool8 MetatileBehavior_IsMB_B2_Duplicate(u8); +bool8 MetatileBehavior_IsMB_B5(u8); +bool8 MetatileBehavior_IsMB_C3(u8); +bool8 MetatileBehavior_IsMB_C2(u8); +bool8 MetatileBehavior_IsSecretBaseBalloon(u8); +bool8 MetatileBehavior_IsMB_BE(u8); +bool8 MetatileBehavior_IsSecretBaseSoundMat(u8); +bool8 MetatileBehavior_IsSecretBaseGlitterMat(u8); +bool8 MetatileBehavior_IsMB_BF(u8); +bool8 MetatileBehavior_IsSecretBaseTvOrShield(u8); +bool8 MetatileBehavior_IsMB_C5(u8); +bool8 MetatileBehavior_HasRipples(u8); +bool8 MetatileBehavior_IsPuddle(u8); +bool8 MetatileBehavior_IsTallGrass(u8); +bool8 MetatileBehavior_IsLongGrass(u8); +bool8 MetatileBehavior_IsBerryTreeSoil(u8); +bool8 MetatileBehavior_IsAsh(u8); +bool8 MetatileBehavior_IsUnusedFootprintMetatile(u8); +bool8 MetatileBehavior_IsBridge(u8); +u8 MetatileBehavior_GetBridgeSth(u8); +u8 MetatileBehavior_8089510(u8); +bool8 MetatileBehavior_IsLandWildEncounter(u8); +bool8 MetatileBehavior_IsWaterWildEncounter(u8); +bool8 MetatileBehavior_IsMB_0B(u8); +bool8 MetatileBehavior_IsMountain(u8); +bool8 MetatileBehavior_IsDiveable(u8); +bool8 MetatileBehavior_IsUnableToEmerge(u8); +bool8 MetatileBehavior_IsShallowFlowingWater(u8); +bool8 MetatileBehavior_IsThinIce(u8); +bool8 MetatileBehavior_IsCrackedIce(u8); +bool8 MetatileBehavior_IsDeepOrOceanWater(u8); +bool8 MetatileBehavior_IsMB_18_OrMB_1A(u8); +bool8 MetatileBehavior_IsSurfableAndNotWaterfall(u8); +bool8 MetatileBehavior_IsEastBlocked(u8); +bool8 MetatileBehavior_IsWestBlocked(u8); +bool8 MetatileBehavior_IsNorthBlocked(u8); +bool8 MetatileBehavior_IsSouthBlocked(u8); +bool8 MetatileBehavior_IsShortGrass(u8); +bool8 MetatileBehavior_IsHotSprings(u8); +bool8 MetatileBehavior_IsWaterfall(u8); +bool8 MetatileBehavior_IsFortreeBridge(u8); +bool8 MetatileBehavior_IsPacifilogVerticalLog1(u8); +bool8 MetatileBehavior_IsPacifilogVerticalLog2(u8); +bool8 MetatileBehavior_IsPacifilogHorizontalLog1(u8); +bool8 MetatileBehavior_IsPacifilogHorizontalLog2(u8); +bool8 MetatileBehavior_IsPacifidlogLog(u8); +bool8 MetatileBehavior_IsTrickHousePuzzleDoor(u8); +bool8 MetatileBehavior_IsRegionMap(u8); +bool8 MetatileBehavior_IsClosedSootopolisGymDoor(u8); +bool8 MetatileBehavior_IsUnknownClosedDoor(u8); +bool8 MetatileBehavior_IsRoulette(u8); +bool8 MetatileBehavior_IsPokeblockFeeder(u8); +bool8 MetatileBehavior_IsSecretBaseJumpMat(u8); +bool8 MetatileBehavior_IsSecretBaseSpinMat(u8); +bool8 MetatileBehavior_IsLavaridgeB1FWarp(u8); +bool8 MetatileBehavior_IsLavaridgeB1FWarp(u8); +bool8 MetatileBehavior_IsAquaHideoutWarp(u8); +bool8 MetatileBehavior_IsWarpOrBridge(u8); +bool8 MetatileBehavior_IsMossdeepGymWarp(u8); +bool8 MetatileBehavior_IsSurfableFishableWater(u8); +bool8 MetatileBehavior_IsMtPyreHole(u8); +bool8 MetatileBehavior_IsCrackedFloorHole(u8); +bool8 MetatileBehavior_IsCrackedFloor(u8); +bool8 MetatileBehavior_IsMuddySlope(u8); +bool8 MetatileBehavior_IsBumpySlope(u8); +bool8 MetatileBehavior_IsIsolatedVerticalRail(u8); +bool8 MetatileBehavior_IsIsolatedHorizontalRail(u8); +bool8 MetatileBehavior_IsVerticalRail(u8); +bool8 MetatileBehavior_IsHorizontalRail(u8); +bool8 MetatileBehavior_IsSeaweed(u8); +bool8 MetatileBehavior_IsRunningDisallowed(u8); +bool8 MetatileBehavior_IsCuttableGrass(u8); +bool8 MetatileBehavior_IsRunningShoesInstruction(u8); +bool8 MetatileBehavior_IsPictureBookShelf(u8); +bool8 MetatileBehavior_IsBookShelf(u8); +bool8 MetatileBehavior_IsPokeCenterBookShelf(u8); +bool8 MetatileBehavior_IsVase(u8); +bool8 MetatileBehavior_IsTrashCan(u8); +bool8 MetatileBehavior_IsShopShelf(u8); +bool8 MetatileBehavior_IsBlueprint(u8); +bool8 MetatileBehavior_IsBattlePyramidWarp(u8); +bool8 MetatileBehavior_IsPlayerFacingWirelessBoxResults(u8 tile, u8 playerDir); +bool8 MetatileBehavior_IsCableBoxResults2(u8 tile, u8 playerDir); +bool8 MetatileBehavior_IsQuestionnaire(u8); +bool8 MetatileBehavior_IsLongGrass_Duplicate(u8); +bool8 MetatileBehavior_IsLongGrassSouthEdge(u8); +bool8 MetatileBehavior_IsTrainerHillTimer(u8); -// Exported RAM declarations - -// Exported ROM declarations -bool8 sub_8088E64(u8); - -#endif //GUARD_METATILE_BEHAVIOR_H +#endif // GUARD_METATILE_BEHAVIOR diff --git a/include/metatile_behaviors.h b/include/metatile_behaviors.h new file mode 100644 index 000000000..dd3a8b4f4 --- /dev/null +++ b/include/metatile_behaviors.h @@ -0,0 +1,179 @@ +#ifndef GUARD_METATILE_BEHAVIORS +#define GUARD_METATILE_BEHAVIORS + +#define MB_NORMAL 0x00 +#define MB_TALL_GRASS 0x02 +#define MB_LONG_GRASS 0x03 +#define MB_04 0x04 +#define MB_05 0x05 +#define MB_DEEP_SAND 0x06 +#define MB_SHORT_GRASS 0x07 +#define MB_CAVE 0x08 +#define MB_LONG_GRASS_SOUTH_EDGE 0x09 +#define MB_NO_RUNNING 0x0A +#define MB_0B 0x0B +#define MB_MOUNTAIN_TOP 0x0C +#define MB_BATTLE_PYRAMID_WARP 0x0D +#define MB_MOSSDEEP_GYM_WARP 0x0E +#define MB_MT_PYRE_HOLE 0x0F +#define MB_POND_WATER 0x10 +#define MB_SEMI_DEEP_WATER 0x11 +#define MB_DEEP_WATER 0x12 +#define MB_WATERFALL 0x13 +#define MB_SOOTOPOLIS_DEEP_WATER 0x14 +#define MB_OCEAN_WATER 0x15 +#define MB_PUDDLE 0x16 +#define MB_SHALLOW_WATER 0x17 +#define MB_18 0x18 +#define MB_NO_SURFACING 0x19 +#define MB_1A 0x1A +#define MB_STAIRS_OUTSIDE_ABANDONED_SHIP 0x1B +#define MB_SHOAL_CAVE_ENTRANCE 0x1C +#define MB_ICE 0x20 +#define MB_SAND 0x21 +#define MB_SEAWEED 0x22 +#define MB_ASHGRASS 0x24 +#define MB_25 0x25 +#define MB_THIN_ICE 0x26 +#define MB_CRACKED_ICE 0x27 +#define MB_HOT_SPRINGS 0x28 +#define MB_LAVARIDGE_GYM_B1F_WARP 0x29 +#define MB_SEAWEED_NO_SURFACING 0x2A +#define MB_REFLECTION_UNDER_BRIDGE 0x2B +#define MB_IMPASSABLE_EAST 0x30 +#define MB_IMPASSABLE_WEST 0x31 +#define MB_IMPASSABLE_NORTH 0x32 +#define MB_IMPASSABLE_SOUTH 0x33 +#define MB_IMPASSABLE_NORTHEAST 0x34 +#define MB_IMPASSABLE_NORTHWEST 0x35 +#define MB_IMPASSABLE_SOUTHEAST 0x36 +#define MB_IMPASSABLE_SOUTHWEST 0x37 +#define MB_JUMP_EAST 0x38 +#define MB_JUMP_WEST 0x39 +#define MB_JUMP_NORTH 0x3A +#define MB_JUMP_SOUTH 0x3B +#define MB_JUMP_SOUTHEAST 0x3E +#define MB_JUMP_SOUTHWEST 0x3F +#define MB_WALK_EAST 0x40 +#define MB_WALK_WEST 0x41 +#define MB_WALK_NORTH 0x42 +#define MB_WALK_SOUTH 0x43 +#define MB_SLIDE_EAST 0x44 +#define MB_SLIDE_WEST 0x45 +#define MB_SLIDE_NORTH 0x46 +#define MB_SLIDE_SOUTH 0x47 +#define MB_TRICK_HOUSE_PUZZLE_8_FLOOR 0x48 +#define MB_EASTWARD_CURRENT 0x50 +#define MB_WESTWARD_CURRENT 0x51 +#define MB_NORTHWARD_CURRENT 0x52 +#define MB_SOUTHWARD_CURRENT 0x53 +#define MB_NON_ANIMATED_DOOR 0x60 +#define MB_LADDER 0x61 +#define MB_EAST_ARROW_WARP 0x62 +#define MB_WEST_ARROW_WARP 0x63 +#define MB_NORTH_ARROW_WARP 0x64 +#define MB_SOUTH_ARROW_WARP 0x65 +#define MB_CRACKED_FLOOR_HOLE 0x66 +#define MB_AQUA_HIDEOUT_WARP 0x67 +#define MB_LAVARIDGE_GYM_1F_WARP 0x68 +#define MB_ANIMATED_DOOR 0x69 +#define MB_UP_ESCALATOR 0x6A +#define MB_DOWN_ESCALATOR 0x6B +#define MB_WATER_DOOR 0x6C +#define MB_WATER_SOUTH_ARROW_WARP 0x6D +#define MB_DEEP_SOUTH_WARP 0x6E +#define MB_WARP_OR_BRIDGE 0x70 +#define MB_71 0x71 +#define MB_ROUTE120_NORTH_BRIDGE_1 0x72 +#define MB_ROUTE120_NORTH_BRIDGE_2 0x73 +#define MB_PACIFIDLOG_VERTICAL_LOG_1 0x74 +#define MB_PACIFIDLOG_VERTICAL_LOG_2 0x75 +#define MB_PACIFIDLOG_HORIZONTAL_LOG_1 0x76 +#define MB_PACIFIDLOG_HORIZONTAL_LOG_2 0x77 +#define MB_FORTREE_BRIDGE 0x78 +#define MB_ROUTE120_SOUTH_BRIDGE_1 0x7A +#define MB_ROUTE120_SOUTH_BRIDGE_2 0x7B +#define MB_ROUTE120_NORTH_BRIDGE_3 0x7C +#define MB_ROUTE120_NORTH_BRIDGE_4 0x7D +#define MB_7E 0x7E +#define MB_ROUTE110_BRIDGE 0x7F +#define MB_COUNTER 0x80 +#define MB_PC 0x83 +#define MB_CABLE_BOX_RESULTS_1 0x84 +#define MB_REGION_MAP 0x85 +#define MB_TELEVISION 0x86 +#define MB_POKEBLOCK_FEEDER 0x87 +#define MB_SLOT_MACHINE 0x89 +#define MB_ROULETTE 0x8A +#define MB_CLOSED_SOOTOPOLIS_GYM_DOOR 0x8B +#define MB_TRICK_HOUSE_PUZZLE_DOOR 0x8C +#define MB_8D 0x8D +#define MB_RUNNING_SHOES_INSTRUCTION 0x8E +#define MB_QUESTIONNAIRE 0x8F +#define MB_SECRET_BASE_SPOT_RED_CAVE 0x90 +#define MB_SECRET_BASE_SPOT_RED_CAVE_OPEN 0x91 +#define MB_SECRET_BASE_SPOT_BROWN_CAVE 0x92 +#define MB_SECRET_BASE_SPOT_BROWN_CAVE_OPEN 0x93 +#define MB_SECRET_BASE_SPOT_YELLOW_CAVE 0x94 +#define MB_SECRET_BASE_SPOT_YELLOW_CAVE_OPEN 0x95 +#define MB_SECRET_BASE_SPOT_TREE_LEFT 0x96 +#define MB_SECRET_BASE_SPOT_TREE_LEFT_OPEN 0x97 +#define MB_SECRET_BASE_SPOT_SHRUB 0x98 +#define MB_SECRET_BASE_SPOT_SHRUB_OPEN 0x99 +#define MB_SECRET_BASE_SPOT_BLUE_CAVE 0x9A +#define MB_SECRET_BASE_SPOT_BLUE_CAVE_OPEN 0x9B +#define MB_SECRET_BASE_SPOT_TREE_RIGHT 0x9C +#define MB_SECRET_BASE_SPOT_TREE_RIGHT_OPEN 0x9D +#define MB_BERRY_TREE_SOIL 0xA0 +#define MB_SECRET_BASE_PC 0xB0 +#define MB_SECRET_BASE_REGISTER_PC 0xB1 +#define MB_B2 0xB2 +#define MB_B3 0xB3 +#define MB_B4 0xB4 +#define MB_B5 0xB5 +#define MB_B6 0xB6 +#define MB_B7 0xB7 +#define MB_SECRET_BASE_BALLOON 0xB8 +#define MB_B9 0xB9 +#define MB_SECRET_BASE_GLITTER_MAT 0xBA +#define MB_SECRET_BASE_JUMP_MAT 0xBB +#define MB_SECRET_BASE_SPIN_MAT 0xBC +#define MB_SECRET_BASE_SOUND_MAT 0xBD +#define MB_BE 0xBE +#define MB_BF 0xBF +#define MB_BED 0xC0 +#define MB_C1 0xC1 +#define MB_C2 0xC2 +#define MB_C3 0xC3 +#define MB_SECRET_BASE_TV_SHIELD 0xC4 +#define MB_C5 0xC5 +#define MB_C6 0xC6 +#define MB_SECRET_BASE_POSTER 0xC7 +#define MB_C8 0xC8 +#define MB_C9 0xC9 +#define MB_CA 0xCA +#define MB_CB 0xCB +#define MB_CC 0xCC +#define MB_CD 0xCD +#define MB_CE 0xCE +#define MB_CF 0xCF +#define MB_MUDDY_SLOPE 0xD0 +#define MB_BUMPY_SLOPE 0xD1 +#define MB_CRACKED_FLOOR 0xD2 +#define MB_ISOLATED_VERTICAL_RAIL 0xD3 +#define MB_ISOLATED_HORIZONTAL_RAIL 0xD4 +#define MB_VERTICAL_RAIL 0xD5 +#define MB_HORIZONTAL_RAIL 0xD6 +#define MB_PICTURE_BOOK_SHELF 0xE0 +#define MB_BOOKSHELF 0xE1 +#define MB_POKEMON_CENTER_BOOKSHELF 0xE2 +#define MB_VASE 0xE3 +#define MB_TRASH_CAN 0xE4 +#define MB_SHOP_SHELF 0xE5 +#define MB_BLUEPRINT 0xE6 +#define MB_CABLE_BOX_RESULTS_2 0xE7 +#define MB_WIRELESS_BOX_RESULTS 0xE8 +#define MB_TRAINER_HILL_TIMER 0xE9 +#define MB_UNKNOWN_CLOSED_DOOR 0xEA + +#endif // GUARD_METATILE_BEHAVIORS -- cgit v1.2.3 From 87b16995ebd9758071d94d1e885f000d70ef6988 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Fri, 29 Sep 2017 23:54:08 -0400 Subject: Add Avara's map_constants.h --- include/map_constants.h | 1342 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 1342 insertions(+) create mode 100644 include/map_constants.h (limited to 'include') diff --git a/include/map_constants.h b/include/map_constants.h new file mode 100644 index 000000000..6199793c8 --- /dev/null +++ b/include/map_constants.h @@ -0,0 +1,1342 @@ +#ifndef GUARD_MAP_CONSTANTS_H +#define GUARD_MAP_CONSTANTS_H + +//-------------------------------------------------- +// Map Group 0 +//-------------------------------------------------- + +enum +{ + MAP_ID_PETALBURG_CITY, + MAP_ID_SLATEPORT_CITY, + MAP_ID_MAUVILLE_CITY, + MAP_ID_RUSTBORO_CITY, + MAP_ID_FORTREE_CITY, + MAP_ID_LILYCOVE_CITY, + MAP_ID_MOSSDEEP_CITY, + MAP_ID_SOOTOPOLIS_CITY, + MAP_ID_EVER_GRANDE_CITY, + MAP_ID_LITTLEROOT_TOWN, + MAP_ID_OLDALE_TOWN, + MAP_ID_DEWFORD_TOWN, + MAP_ID_LAVARIDGE_TOWN, + MAP_ID_FALLARBOR_TOWN, + MAP_ID_VERDANTURF_TOWN, + MAP_ID_PACIFIDLOG_TOWN, + MAP_ID_ROUTE101, + MAP_ID_ROUTE102, + MAP_ID_ROUTE103, + MAP_ID_ROUTE104, + MAP_ID_ROUTE105, + MAP_ID_ROUTE106, + MAP_ID_ROUTE107, + MAP_ID_ROUTE108, + MAP_ID_ROUTE109, + MAP_ID_ROUTE110, + MAP_ID_ROUTE111, + MAP_ID_ROUTE112, + MAP_ID_ROUTE113, + MAP_ID_ROUTE114, + MAP_ID_ROUTE115, + MAP_ID_ROUTE116, + MAP_ID_ROUTE117, + MAP_ID_ROUTE118, + MAP_ID_ROUTE119, + MAP_ID_ROUTE120, + MAP_ID_ROUTE121, + MAP_ID_ROUTE122, + MAP_ID_ROUTE123, + MAP_ID_ROUTE124, + MAP_ID_ROUTE125, + MAP_ID_ROUTE126, + MAP_ID_ROUTE127, + MAP_ID_ROUTE128, + MAP_ID_ROUTE129, + MAP_ID_ROUTE130, + MAP_ID_ROUTE131, + MAP_ID_ROUTE132, + MAP_ID_ROUTE133, + MAP_ID_ROUTE134, + MAP_ID_UNDERWATER1, + MAP_ID_UNDERWATER2, + MAP_ID_UNDERWATER3, + MAP_ID_UNDERWATER4, + MAP_ID_UNDERWATER5, + MAP_ID_UNDERWATER6, + MAP_ID_UNDERWATER7, +}; + +#define MAP_GROUP_PETALBURG_CITY 0 +#define MAP_GROUP_SLATEPORT_CITY 0 +#define MAP_GROUP_MAUVILLE_CITY 0 +#define MAP_GROUP_RUSTBORO_CITY 0 +#define MAP_GROUP_FORTREE_CITY 0 +#define MAP_GROUP_LILYCOVE_CITY 0 +#define MAP_GROUP_MOSSDEEP_CITY 0 +#define MAP_GROUP_SOOTOPOLIS_CITY 0 +#define MAP_GROUP_EVER_GRANDE_CITY 0 +#define MAP_GROUP_LITTLEROOT_TOWN 0 +#define MAP_GROUP_OLDALE_TOWN 0 +#define MAP_GROUP_DEWFORD_TOWN 0 +#define MAP_GROUP_LAVARIDGE_TOWN 0 +#define MAP_GROUP_FALLARBOR_TOWN 0 +#define MAP_GROUP_VERDANTURF_TOWN 0 +#define MAP_GROUP_PACIFIDLOG_TOWN 0 +#define MAP_GROUP_ROUTE101 0 +#define MAP_GROUP_ROUTE102 0 +#define MAP_GROUP_ROUTE103 0 +#define MAP_GROUP_ROUTE104 0 +#define MAP_GROUP_ROUTE105 0 +#define MAP_GROUP_ROUTE106 0 +#define MAP_GROUP_ROUTE107 0 +#define MAP_GROUP_ROUTE108 0 +#define MAP_GROUP_ROUTE109 0 +#define MAP_GROUP_ROUTE110 0 +#define MAP_GROUP_ROUTE111 0 +#define MAP_GROUP_ROUTE112 0 +#define MAP_GROUP_ROUTE113 0 +#define MAP_GROUP_ROUTE114 0 +#define MAP_GROUP_ROUTE115 0 +#define MAP_GROUP_ROUTE116 0 +#define MAP_GROUP_ROUTE117 0 +#define MAP_GROUP_ROUTE118 0 +#define MAP_GROUP_ROUTE119 0 +#define MAP_GROUP_ROUTE120 0 +#define MAP_GROUP_ROUTE121 0 +#define MAP_GROUP_ROUTE122 0 +#define MAP_GROUP_ROUTE123 0 +#define MAP_GROUP_ROUTE124 0 +#define MAP_GROUP_ROUTE125 0 +#define MAP_GROUP_ROUTE126 0 +#define MAP_GROUP_ROUTE127 0 +#define MAP_GROUP_ROUTE128 0 +#define MAP_GROUP_ROUTE129 0 +#define MAP_GROUP_ROUTE130 0 +#define MAP_GROUP_ROUTE131 0 +#define MAP_GROUP_ROUTE132 0 +#define MAP_GROUP_ROUTE133 0 +#define MAP_GROUP_ROUTE134 0 +#define MAP_GROUP_UNDERWATER1 0 +#define MAP_GROUP_UNDERWATER2 0 +#define MAP_GROUP_UNDERWATER3 0 +#define MAP_GROUP_UNDERWATER4 0 +#define MAP_GROUP_UNDERWATER5 0 +#define MAP_GROUP_UNDERWATER6 0 +#define MAP_GROUP_UNDERWATER7 0 +//-------------------------------------------------- +// Map Group 1 +//-------------------------------------------------- + +enum +{ + MAP_ID_LITTLEROOT_TOWN_BRENDANS_HOUSE_1F, + MAP_ID_LITTLEROOT_TOWN_BRENDANS_HOUSE_2F, + MAP_ID_LITTLEROOT_TOWN_MAYS_HOUSE_1F, + MAP_ID_LITTLEROOT_TOWN_MAYS_HOUSE_2F, + MAP_ID_LITTLEROOT_TOWN_PROFESSOR_BIRCHS_LAB, +}; + +#define MAP_GROUP_LITTLEROOT_TOWN_BRENDANS_HOUSE_1F 1 +#define MAP_GROUP_LITTLEROOT_TOWN_BRENDANS_HOUSE_2F 1 +#define MAP_GROUP_LITTLEROOT_TOWN_MAYS_HOUSE_1F 1 +#define MAP_GROUP_LITTLEROOT_TOWN_MAYS_HOUSE_2F 1 +#define MAP_GROUP_LITTLEROOT_TOWN_PROFESSOR_BIRCHS_LAB 1 + +//-------------------------------------------------- +// Map Group 2 +//-------------------------------------------------- + +enum +{ + MAP_ID_OLDALE_TOWN_HOUSE1, + MAP_ID_OLDALE_TOWN_HOUSE2, + MAP_ID_OLDALE_TOWN_POKEMON_CENTER_1F, + MAP_ID_OLDALE_TOWN_POKEMON_CENTER_2F, + MAP_ID_OLDALE_TOWN_MART, +}; + +#define MAP_GROUP_OLDALE_TOWN_HOUSE1 2 +#define MAP_GROUP_OLDALE_TOWN_HOUSE2 2 +#define MAP_GROUP_OLDALE_TOWN_POKEMON_CENTER_1F 2 +#define MAP_GROUP_OLDALE_TOWN_POKEMON_CENTER_2F 2 +#define MAP_GROUP_OLDALE_TOWN_MART 2 + +//-------------------------------------------------- +// Map Group 3 +//-------------------------------------------------- + +enum +{ + MAP_ID_DEWFORD_TOWN_HOUSE1, + MAP_ID_DEWFORD_TOWN_POKEMON_CENTER_1F, + MAP_ID_DEWFORD_TOWN_POKEMON_CENTER_2F, + MAP_ID_DEWFORD_TOWN_GYM, + MAP_ID_DEWFORD_TOWN_HALL, + MAP_ID_DEWFORD_TOWN_HOUSE2, +}; + +#define MAP_GROUP_DEWFORD_TOWN_HOUSE1 3 +#define MAP_GROUP_DEWFORD_TOWN_POKEMON_CENTER_1F 3 +#define MAP_GROUP_DEWFORD_TOWN_POKEMON_CENTER_2F 3 +#define MAP_GROUP_DEWFORD_TOWN_GYM 3 +#define MAP_GROUP_DEWFORD_TOWN_HALL 3 +#define MAP_GROUP_DEWFORD_TOWN_HOUSE2 3 + +//-------------------------------------------------- +// Map Group 4 +//-------------------------------------------------- + +enum +{ + MAP_ID_LAVARIDGE_TOWN_HERB_SHOP, + MAP_ID_LAVARIDGE_TOWN_GYM_1F, + MAP_ID_LAVARIDGE_TOWN_GYM_B1F, + MAP_ID_LAVARIDGE_TOWN_HOUSE, + MAP_ID_LAVARIDGE_TOWN_MART, + MAP_ID_LAVARIDGE_TOWN_POKEMON_CENTER_1F, + MAP_ID_LAVARIDGE_TOWN_POKEMON_CENTER_2F, +}; + +#define MAP_GROUP_LAVARIDGE_TOWN_HERB_SHOP 4 +#define MAP_GROUP_LAVARIDGE_TOWN_GYM_1F 4 +#define MAP_GROUP_LAVARIDGE_TOWN_GYM_B1F 4 +#define MAP_GROUP_LAVARIDGE_TOWN_HOUSE 4 +#define MAP_GROUP_LAVARIDGE_TOWN_MART 4 +#define MAP_GROUP_LAVARIDGE_TOWN_POKEMON_CENTER_1F 4 +#define MAP_GROUP_LAVARIDGE_TOWN_POKEMON_CENTER_2F 4 + +//-------------------------------------------------- +// Map Group 5 +//-------------------------------------------------- + +enum +{ + MAP_ID_FALLARBOR_TOWN_MART, + MAP_ID_FALLARBOR_TOWN_TENT_LOBBY, + MAP_ID_FALLARBOR_TOWN_TENT_HALL, + MAP_ID_FALLARBOR_TOWN_TENT_ARENA, + MAP_ID_FALLARBOR_TOWN_POKEMON_CENTER_1F, + MAP_ID_FALLARBOR_TOWN_POKEMON_CENTER_2F, + MAP_ID_FALLARBOR_TOWN_HOUSE1, + MAP_ID_FALLARBOR_TOWN_HOUSE2, +}; + +#define MAP_GROUP_FALLARBOR_TOWN_MART 5 +#define MAP_GROUP_FALLARBOR_TOWN_TENT_LOBBY 5 +#define MAP_GROUP_FALLARBOR_TOWN_TENT_HALL 5 +#define MAP_GROUP_FALLARBOR_TOWN_TENT_ARENA 5 +#define MAP_GROUP_FALLARBOR_TOWN_POKEMON_CENTER_1F 5 +#define MAP_GROUP_FALLARBOR_TOWN_POKEMON_CENTER_2F 5 +#define MAP_GROUP_FALLARBOR_TOWN_HOUSE1 5 +#define MAP_GROUP_FALLARBOR_TOWN_HOUSE2 5 + +//-------------------------------------------------- +// Map Group 6 +//-------------------------------------------------- + +enum +{ + MAP_ID_VERDANTURF_TOWN_TENT_LOBBY, + MAP_ID_VERDANTURF_TOWN_TENT_HALL, + MAP_ID_VERDANTURF_TOWN_TENT_ARENA, + MAP_ID_VERDANTURF_TOWN_MART, + MAP_ID_VERDANTURF_TOWN_POKEMON_CENTER_1F, + MAP_ID_VERDANTURF_TOWN_POKEMON_CENTER_2F, + MAP_ID_VERDANTURF_TOWN_WANDAS_HOUSE, + MAP_ID_VERDANTURF_TOWN_FRIENDSHIP_RATERS_HOUSE, + MAP_ID_VERDANTURF_TOWN_HOUSE, +}; + +#define MAP_GROUP_VERDANTURF_TOWN_TENT_LOBBY 6 +#define MAP_GROUP_VERDANTURF_TOWN_TENT_HALL 6 +#define MAP_GROUP_VERDANTURF_TOWN_TENT_ARENA 6 +#define MAP_GROUP_VERDANTURF_TOWN_MART 6 +#define MAP_GROUP_VERDANTURF_TOWN_POKEMON_CENTER_1F 6 +#define MAP_GROUP_VERDANTURF_TOWN_POKEMON_CENTER_2F 6 +#define MAP_GROUP_VERDANTURF_TOWN_WANDAS_HOUSE 6 +#define MAP_GROUP_VERDANTURF_TOWN_FRIENDSHIP_RATERS_HOUSE 6 +#define MAP_GROUP_VERDANTURF_TOWN_HOUSE 6 + +//-------------------------------------------------- +// Map Group 7 +//-------------------------------------------------- + +enum +{ + MAP_ID_PACIFIDLOG_TOWN_POKEMON_CENTER_1F, + MAP_ID_PACIFIDLOG_TOWN_POKEMON_CENTER_2F, + MAP_ID_PACIFIDLOG_TOWN_HOUSE1, + MAP_ID_PACIFIDLOG_TOWN_HOUSE2, + MAP_ID_PACIFIDLOG_TOWN_HOUSE3, + MAP_ID_PACIFIDLOG_TOWN_HOUSE4, + MAP_ID_PACIFIDLOG_TOWN_HOUSE5, +}; + +#define MAP_GROUP_PACIFIDLOG_TOWN_POKEMON_CENTER_1F 7 +#define MAP_GROUP_PACIFIDLOG_TOWN_POKEMON_CENTER_2F 7 +#define MAP_GROUP_PACIFIDLOG_TOWN_HOUSE1 7 +#define MAP_GROUP_PACIFIDLOG_TOWN_HOUSE2 7 +#define MAP_GROUP_PACIFIDLOG_TOWN_HOUSE3 7 +#define MAP_GROUP_PACIFIDLOG_TOWN_HOUSE4 7 +#define MAP_GROUP_PACIFIDLOG_TOWN_HOUSE5 7 + +//-------------------------------------------------- +// Map Group 8 +//-------------------------------------------------- + +enum +{ + MAP_ID_PETALBURG_CITY_WALLYS_HOUSE, + MAP_ID_PETALBURG_CITY_GYM, + MAP_ID_PETALBURG_CITY_HOUSE1, + MAP_ID_PETALBURG_CITY_HOUSE2, + MAP_ID_PETALBURG_CITY_POKEMON_CENTER_1F, + MAP_ID_PETALBURG_CITY_POKEMON_CENTER_2F, + MAP_ID_PETALBURG_CITY_MART, +}; + +#define MAP_GROUP_PETALBURG_CITY_WALLYS_HOUSE 8 +#define MAP_GROUP_PETALBURG_CITY_GYM 8 +#define MAP_GROUP_PETALBURG_CITY_HOUSE1 8 +#define MAP_GROUP_PETALBURG_CITY_HOUSE2 8 +#define MAP_GROUP_PETALBURG_CITY_POKEMON_CENTER_1F 8 +#define MAP_GROUP_PETALBURG_CITY_POKEMON_CENTER_2F 8 +#define MAP_GROUP_PETALBURG_CITY_MART 8 + +//-------------------------------------------------- +// Map Group 9 +//-------------------------------------------------- + +enum +{ + MAP_ID_SLATEPORT_CITY_STERNS_SHIPYARD_1F, + MAP_ID_SLATEPORT_CITY_STERNS_SHIPYARD_2F, + MAP_ID_SLATEPORT_CITY_TENT_LOBBY, + MAP_ID_SLATEPORT_CITY_TENT_HALL, + MAP_ID_SLATEPORT_CITY_TENT_ARENA, + MAP_ID_SLATEPORT_CITY_HOUSE1, + MAP_ID_SLATEPORT_CITY_POKEMON_FAN_CLUB, + MAP_ID_SLATEPORT_CITY_OCEANIC_MUSEUM_1F, + MAP_ID_SLATEPORT_CITY_OCEANIC_MUSEUM_2F, + MAP_ID_SLATEPORT_CITY_HARBOR, + MAP_ID_SLATEPORT_CITY_HOUSE2, + MAP_ID_SLATEPORT_CITY_POKEMON_CENTER_1F, + MAP_ID_SLATEPORT_CITY_POKEMON_CENTER_2F, + MAP_ID_SLATEPORT_CITY_MART, +}; + +#define MAP_GROUP_SLATEPORT_CITY_STERNS_SHIPYARD_1F 9 +#define MAP_GROUP_SLATEPORT_CITY_STERNS_SHIPYARD_2F 9 +#define MAP_GROUP_SLATEPORT_CITY_TENT_LOBBY 9 +#define MAP_GROUP_SLATEPORT_CITY_TENT_HALL 9 +#define MAP_GROUP_SLATEPORT_CITY_TENT_ARENA 9 +#define MAP_GROUP_SLATEPORT_CITY_HOUSE1 9 +#define MAP_GROUP_SLATEPORT_CITY_POKEMON_FAN_CLUB 9 +#define MAP_GROUP_SLATEPORT_CITY_OCEANIC_MUSEUM_1F 9 +#define MAP_GROUP_SLATEPORT_CITY_OCEANIC_MUSEUM_2F 9 +#define MAP_GROUP_SLATEPORT_CITY_HARBOR 9 +#define MAP_GROUP_SLATEPORT_CITY_HOUSE2 9 +#define MAP_GROUP_SLATEPORT_CITY_POKEMON_CENTER_1F 9 +#define MAP_GROUP_SLATEPORT_CITY_POKEMON_CENTER_2F 9 +#define MAP_GROUP_SLATEPORT_CITY_MART 9 + +//-------------------------------------------------- +// Map Group 10 +//-------------------------------------------------- + +enum +{ + MAP_ID_MAUVILLE_CITY_GYM, + MAP_ID_MAUVILLE_CITY_BIKE_SHOP, + MAP_ID_MAUVILLE_CITY_HOUSE1, + MAP_ID_MAUVILLE_CITY_GAME_CORNER, + MAP_ID_MAUVILLE_CITY_HOUSE2, + MAP_ID_MAUVILLE_CITY_POKEMON_CENTER_1F, + MAP_ID_MAUVILLE_CITY_POKEMON_CENTER_2F, + MAP_ID_MAUVILLE_CITY_MART, +}; + +#define MAP_GROUP_MAUVILLE_CITY_GYM 10 +#define MAP_GROUP_MAUVILLE_CITY_BIKE_SHOP 10 +#define MAP_GROUP_MAUVILLE_CITY_HOUSE1 10 +#define MAP_GROUP_MAUVILLE_CITY_GAME_CORNER 10 +#define MAP_GROUP_MAUVILLE_CITY_HOUSE2 10 +#define MAP_GROUP_MAUVILLE_CITY_POKEMON_CENTER_1F 10 +#define MAP_GROUP_MAUVILLE_CITY_POKEMON_CENTER_2F 10 +#define MAP_GROUP_MAUVILLE_CITY_MART 10 + +//-------------------------------------------------- +// Map Group 11 +//-------------------------------------------------- + +enum +{ + MAP_ID_RUSTBORO_CITY_DEVON_CORP_1F, + MAP_ID_RUSTBORO_CITY_DEVON_CORP_2F, + MAP_ID_RUSTBORO_CITY_DEVON_CORP_3F, + MAP_ID_RUSTBORO_CITY_GYM, + MAP_ID_RUSTBORO_CITY_POKEMON_SCHOOL, + MAP_ID_RUSTBORO_CITY_POKEMON_CENTER_1F, + MAP_ID_RUSTBORO_CITY_POKEMON_CENTER_2F, + MAP_ID_RUSTBORO_CITY_MART, + MAP_ID_RUSTBORO_CITY_FLAT1_1F, + MAP_ID_RUSTBORO_CITY_FLAT1_2F, + MAP_ID_RUSTBORO_CITY_HOUSE1, + MAP_ID_RUSTBORO_CITY_CUTTERS_HOUSE, + MAP_ID_RUSTBORO_CITY_HOUSE2, + MAP_ID_RUSTBORO_CITY_FLAT2_1F, + MAP_ID_RUSTBORO_CITY_FLAT2_2F, + MAP_ID_RUSTBORO_CITY_FLAT2_3F, + MAP_ID_RUSTBORO_CITY_HOUSE3, +}; + +#define MAP_GROUP_RUSTBORO_CITY_DEVON_CORP_1F 11 +#define MAP_GROUP_RUSTBORO_CITY_DEVON_CORP_2F 11 +#define MAP_GROUP_RUSTBORO_CITY_DEVON_CORP_3F 11 +#define MAP_GROUP_RUSTBORO_CITY_GYM 11 +#define MAP_GROUP_RUSTBORO_CITY_POKEMON_SCHOOL 11 +#define MAP_GROUP_RUSTBORO_CITY_POKEMON_CENTER_1F 11 +#define MAP_GROUP_RUSTBORO_CITY_POKEMON_CENTER_2F 11 +#define MAP_GROUP_RUSTBORO_CITY_MART 11 +#define MAP_GROUP_RUSTBORO_CITY_FLAT1_1F 11 +#define MAP_GROUP_RUSTBORO_CITY_FLAT1_2F 11 +#define MAP_GROUP_RUSTBORO_CITY_HOUSE1 11 +#define MAP_GROUP_RUSTBORO_CITY_CUTTERS_HOUSE 11 +#define MAP_GROUP_RUSTBORO_CITY_HOUSE2 11 +#define MAP_GROUP_RUSTBORO_CITY_FLAT2_1F 11 +#define MAP_GROUP_RUSTBORO_CITY_FLAT2_2F 11 +#define MAP_GROUP_RUSTBORO_CITY_FLAT2_3F 11 +#define MAP_GROUP_RUSTBORO_CITY_HOUSE3 11 + +//-------------------------------------------------- +// Map Group 12 +//-------------------------------------------------- + +enum +{ + MAP_ID_FORTREE_CITY_HOUSE1, + MAP_ID_FORTREE_CITY_GYM, + MAP_ID_FORTREE_CITY_POKEMON_CENTER_1F, + MAP_ID_FORTREE_CITY_POKEMON_CENTER_2F, + MAP_ID_FORTREE_CITY_MART, + MAP_ID_FORTREE_CITY_HOUSE2, + MAP_ID_FORTREE_CITY_HOUSE3, + MAP_ID_FORTREE_CITY_HOUSE4, + MAP_ID_FORTREE_CITY_HOUSE5, + MAP_ID_FORTREE_CITY_DECORATION_SHOP, +}; + +#define MAP_GROUP_FORTREE_CITY_HOUSE1 12 +#define MAP_GROUP_FORTREE_CITY_GYM 12 +#define MAP_GROUP_FORTREE_CITY_POKEMON_CENTER_1F 12 +#define MAP_GROUP_FORTREE_CITY_POKEMON_CENTER_2F 12 +#define MAP_GROUP_FORTREE_CITY_MART 12 +#define MAP_GROUP_FORTREE_CITY_HOUSE2 12 +#define MAP_GROUP_FORTREE_CITY_HOUSE3 12 +#define MAP_GROUP_FORTREE_CITY_HOUSE4 12 +#define MAP_GROUP_FORTREE_CITY_HOUSE5 12 +#define MAP_GROUP_FORTREE_CITY_DECORATION_SHOP 12 + +//-------------------------------------------------- +// Map Group 13 +//-------------------------------------------------- + +enum +{ + MAP_ID_LILYCOVE_CITY_COVE_LILY_MOTEL_1F, + MAP_ID_LILYCOVE_CITY_COVE_LILY_MOTEL_2F, + MAP_ID_LILYCOVE_CITY_LILYCOVE_MUSEUM_1F, + MAP_ID_LILYCOVE_CITY_LILYCOVE_MUSEUM_2F, + MAP_ID_LILYCOVE_CITY_CONTEST_LOBBY, + MAP_ID_LILYCOVE_CITY_CONTEST_HALL, + MAP_ID_LILYCOVE_CITY_POKEMON_CENTER_1F, + MAP_ID_LILYCOVE_CITY_POKEMON_CENTER_2F, + MAP_ID_LILYCOVE_CITY_UNUSED_MART, + MAP_ID_LILYCOVE_CITY_POKEMON_TRAINER_FAN_CLUB, + MAP_ID_LILYCOVE_CITY_HARBOR, + MAP_ID_LILYCOVE_CITY_MOVE_DELETERS_HOUSE, + MAP_ID_LILYCOVE_CITY_HOUSE1, + MAP_ID_LILYCOVE_CITY_HOUSE2, + MAP_ID_LILYCOVE_CITY_HOUSE3, + MAP_ID_LILYCOVE_CITY_HOUSE4, + MAP_ID_LILYCOVE_CITY_DEPARTMENT_STORE_1F, + MAP_ID_LILYCOVE_CITY_DEPARTMENT_STORE_2F, + MAP_ID_LILYCOVE_CITY_DEPARTMENT_STORE_3F, + MAP_ID_LILYCOVE_CITY_DEPARTMENT_STORE_4F, + MAP_ID_LILYCOVE_CITY_DEPARTMENT_STORE_5F, + MAP_ID_LILYCOVE_CITY_DEPARTMENT_STORE_ROOFTOP, + MAP_ID_LILYCOVE_CITY_DEPARTMENT_STORE_ELEVATOR, +}; + +#define MAP_GROUP_LILYCOVE_CITY_COVE_LILY_MOTEL_1F 13 +#define MAP_GROUP_LILYCOVE_CITY_COVE_LILY_MOTEL_2F 13 +#define MAP_GROUP_LILYCOVE_CITY_LILYCOVE_MUSEUM_1F 13 +#define MAP_GROUP_LILYCOVE_CITY_LILYCOVE_MUSEUM_2F 13 +#define MAP_GROUP_LILYCOVE_CITY_CONTEST_LOBBY 13 +#define MAP_GROUP_LILYCOVE_CITY_CONTEST_HALL 13 +#define MAP_GROUP_LILYCOVE_CITY_POKEMON_CENTER_1F 13 +#define MAP_GROUP_LILYCOVE_CITY_POKEMON_CENTER_2F 13 +#define MAP_GROUP_LILYCOVE_CITY_UNUSED_MART 13 +#define MAP_GROUP_LILYCOVE_CITY_POKEMON_TRAINER_FAN_CLUB 13 +#define MAP_GROUP_LILYCOVE_CITY_HARBOR 13 +#define MAP_GROUP_LILYCOVE_CITY_MOVE_DELETERS_HOUSE 13 +#define MAP_GROUP_LILYCOVE_CITY_HOUSE1 13 +#define MAP_GROUP_LILYCOVE_CITY_HOUSE2 13 +#define MAP_GROUP_LILYCOVE_CITY_HOUSE3 13 +#define MAP_GROUP_LILYCOVE_CITY_HOUSE4 13 +#define MAP_GROUP_LILYCOVE_CITY_DEPARTMENT_STORE_1F 13 +#define MAP_GROUP_LILYCOVE_CITY_DEPARTMENT_STORE_2F 13 +#define MAP_GROUP_LILYCOVE_CITY_DEPARTMENT_STORE_3F 13 +#define MAP_GROUP_LILYCOVE_CITY_DEPARTMENT_STORE_4F 13 +#define MAP_GROUP_LILYCOVE_CITY_DEPARTMENT_STORE_5F 13 +#define MAP_GROUP_LILYCOVE_CITY_DEPARTMENT_STORE_ROOFTOP 13 +#define MAP_GROUP_LILYCOVE_CITY_DEPARTMENT_STORE_ELEVATOR 13 + +//-------------------------------------------------- +// Map Group 14 +//-------------------------------------------------- + +enum +{ + MAP_ID_MOSSDEEP_CITY_GYM, + MAP_ID_MOSSDEEP_CITY_HOUSE1, + MAP_ID_MOSSDEEP_CITY_HOUSE2, + MAP_ID_MOSSDEEP_CITY_POKEMON_CENTER_1F, + MAP_ID_MOSSDEEP_CITY_POKEMON_CENTER_2F, + MAP_ID_MOSSDEEP_CITY_MART, + MAP_ID_MOSSDEEP_CITY_HOUSE3, + MAP_ID_MOSSDEEP_CITY_STEVENS_HOUSE, + MAP_ID_MOSSDEEP_CITY_HOUSE4, + MAP_ID_MOSSDEEP_CITY_SPACE_CENTER_1F, + MAP_ID_MOSSDEEP_CITY_SPACE_CENTER_2F, + MAP_ID_MOSSDEEP_CITY_GAME_CORNER_1F, + MAP_ID_MOSSDEEP_CITY_GAME_CORNER_B1F, +}; + +#define MAP_GROUP_MOSSDEEP_CITY_GYM 14 +#define MAP_GROUP_MOSSDEEP_CITY_HOUSE1 14 +#define MAP_GROUP_MOSSDEEP_CITY_HOUSE2 14 +#define MAP_GROUP_MOSSDEEP_CITY_POKEMON_CENTER_1F 14 +#define MAP_GROUP_MOSSDEEP_CITY_POKEMON_CENTER_2F 14 +#define MAP_GROUP_MOSSDEEP_CITY_MART 14 +#define MAP_GROUP_MOSSDEEP_CITY_HOUSE3 14 +#define MAP_GROUP_MOSSDEEP_CITY_STEVENS_HOUSE 14 +#define MAP_GROUP_MOSSDEEP_CITY_HOUSE4 14 +#define MAP_GROUP_MOSSDEEP_CITY_SPACE_CENTER_1F 14 +#define MAP_GROUP_MOSSDEEP_CITY_SPACE_CENTER_2F 14 +#define MAP_GROUP_MOSSDEEP_CITY_GAME_CORNER_1F 14 +#define MAP_GROUP_MOSSDEEP_CITY_GAME_CORNER_B1F 14 + +//-------------------------------------------------- +// Map Group 15 +//-------------------------------------------------- + +enum +{ + MAP_ID_SOOTOPOLIS_CITY_GYM_1F, + MAP_ID_SOOTOPOLIS_CITY_GYM_B1F, + MAP_ID_SOOTOPOLIS_CITY_POKEMON_CENTER_1F, + MAP_ID_SOOTOPOLIS_CITY_POKEMON_CENTER_2F, + MAP_ID_SOOTOPOLIS_CITY_MART, + MAP_ID_SOOTOPOLIS_CITY_HOUSE1, + MAP_ID_SOOTOPOLIS_CITY_HOUSE2, + MAP_ID_SOOTOPOLIS_CITY_HOUSE3, + MAP_ID_SOOTOPOLIS_CITY_HOUSE4, + MAP_ID_SOOTOPOLIS_CITY_HOUSE5, + MAP_ID_SOOTOPOLIS_CITY_HOUSE6, + MAP_ID_SOOTOPOLIS_CITY_HOUSE7, + MAP_ID_SOOTOPOLIS_CITY_HOUSE8, + MAP_ID_SOOTOPOLIS_CITY_BATTLEHOUSE_1, + MAP_ID_SOOTOPOLIS_CITY_BATTLEHOUSE_2, +}; + +#define MAP_GROUP_SOOTOPOLIS_CITY_GYM_1F 15 +#define MAP_GROUP_SOOTOPOLIS_CITY_GYM_B1F 15 +#define MAP_GROUP_SOOTOPOLIS_CITY_POKEMON_CENTER_1F 15 +#define MAP_GROUP_SOOTOPOLIS_CITY_POKEMON_CENTER_2F 15 +#define MAP_GROUP_SOOTOPOLIS_CITY_MART 15 +#define MAP_GROUP_SOOTOPOLIS_CITY_HOUSE1 15 +#define MAP_GROUP_SOOTOPOLIS_CITY_HOUSE2 15 +#define MAP_GROUP_SOOTOPOLIS_CITY_HOUSE3 15 +#define MAP_GROUP_SOOTOPOLIS_CITY_HOUSE4 15 +#define MAP_GROUP_SOOTOPOLIS_CITY_HOUSE5 15 +#define MAP_GROUP_SOOTOPOLIS_CITY_HOUSE6 15 +#define MAP_GROUP_SOOTOPOLIS_CITY_HOUSE7 15 +#define MAP_GROUP_SOOTOPOLIS_CITY_HOUSE8 15 +#define MAP_ID_SOOTOPOLIS_CITY_BATTLEHOUSE_1 15 +#define MAP_ID_SOOTOPOLIS_CITY_BATTLEHOUSE_2 15 +//-------------------------------------------------- +// Map Group 16 +//-------------------------------------------------- + +enum +{ + MAP_ID_EVER_GRANDE_CITY_SIDNEYS_ROOM, + MAP_ID_EVER_GRANDE_CITY_PHOEBES_ROOM, + MAP_ID_EVER_GRANDE_CITY_GLACIAS_ROOM, + MAP_ID_EVER_GRANDE_CITY_DRAKES_ROOM, + MAP_ID_EVER_GRANDE_CITY_CHAMPIONS_ROOM, + MAP_ID_EVER_GRANDE_CITY_CORRIDOR1, + MAP_ID_EVER_GRANDE_CITY_CORRIDOR2, + MAP_ID_EVER_GRANDE_CITY_CORRIDOR3, + MAP_ID_EVER_GRANDE_CITY_CORRIDOR4, + MAP_ID_EVER_GRANDE_CITY_CORRIDOR5, + MAP_ID_EVER_GRANDE_CITY_POKEMON_LEAGUE_1F, + MAP_ID_EVER_GRANDE_CITY_HALL_OF_FAME, + MAP_ID_EVER_GRANDE_CITY_POKEMON_CENTER_1F, + MAP_ID_EVER_GRANDE_CITY_POKEMON_CENTER_2F, + MAP_ID_EVER_GRANDE_CITY_POKEMON_LEAGUE_2F, +}; + +#define MAP_GROUP_EVER_GRANDE_CITY_SIDNEYS_ROOM 16 +#define MAP_GROUP_EVER_GRANDE_CITY_PHOEBES_ROOM 16 +#define MAP_GROUP_EVER_GRANDE_CITY_GLACIAS_ROOM 16 +#define MAP_GROUP_EVER_GRANDE_CITY_DRAKES_ROOM 16 +#define MAP_GROUP_EVER_GRANDE_CITY_CHAMPIONS_ROOM 16 +#define MAP_GROUP_EVER_GRANDE_CITY_CORRIDOR1 16 +#define MAP_GROUP_EVER_GRANDE_CITY_CORRIDOR2 16 +#define MAP_GROUP_EVER_GRANDE_CITY_CORRIDOR3 16 +#define MAP_GROUP_EVER_GRANDE_CITY_CORRIDOR4 16 +#define MAP_GROUP_EVER_GRANDE_CITY_CORRIDOR5 16 +#define MAP_GROUP_EVER_GRANDE_CITY_POKEMON_LEAGUE_1F 16 +#define MAP_GROUP_EVER_GRANDE_CITY_HALL_OF_FAME 16 +#define MAP_GROUP_EVER_GRANDE_CITY_POKEMON_CENTER_1F 16 +#define MAP_GROUP_EVER_GRANDE_CITY_POKEMON_CENTER_2F 16 +#define MAP_GROUP_EVER_GRANDE_CITY_POKEMON_LEAGUE_2F 16 + +//-------------------------------------------------- +// Map Group 17 +//-------------------------------------------------- + +enum +{ + MAP_ID_ROUTE104_MR_BRINEYS_HOUSE, + MAP_ID_ROUTE104_PRETTY_PETAL_FLOWER_SHOP, +}; + +#define MAP_GROUP_ROUTE104_MR_BRINEYS_HOUSE 17 +#define MAP_GROUP_ROUTE104_PRETTY_PETAL_FLOWER_SHOP 17 + +//-------------------------------------------------- +// Map Group 18 +//-------------------------------------------------- + +enum +{ + MAP_ID_ROUTE111_WINSTRATE_FAMILYS_HOUSE, + MAP_ID_ROUTE111_OLD_LADYS_REST_STOP, +}; + +#define MAP_GROUP_ROUTE111_WINSTRATE_FAMILYS_HOUSE 18 +#define MAP_GROUP_ROUTE111_OLD_LADYS_REST_STOP 18 + +//-------------------------------------------------- +// Map Group 19 +//-------------------------------------------------- + +enum +{ + MAP_ID_ROUTE112_CABLE_CAR_STATION, + MAP_ID_MT_CHIMNEY_CABLE_CAR_STATION, +}; + +#define MAP_GROUP_ROUTE112_CABLE_CAR_STATION 19 +#define MAP_GROUP_MT_CHIMNEY_CABLE_CAR_STATION 19 + +//-------------------------------------------------- +// Map Group 20 +//-------------------------------------------------- + +enum +{ + MAP_ID_ROUTE114_FOSSIL_MANIACS_HOUSE, + MAP_ID_ROUTE114_FOSSIL_MANIACS_TUNNEL, + MAP_ID_ROUTE114_LANETTES_HOUSE, +}; + +#define MAP_GROUP_ROUTE114_FOSSIL_MANIACS_HOUSE 20 +#define MAP_GROUP_ROUTE114_FOSSIL_MANIACS_TUNNEL 20 +#define MAP_GROUP_ROUTE114_LANETTES_HOUSE 20 + +//-------------------------------------------------- +// Map Group 21 +//-------------------------------------------------- + +enum +{ + MAP_ID_ROUTE116_TUNNELERS_REST_HOUSE, +}; + +#define MAP_GROUP_ROUTE116_TUNNELERS_REST_HOUSE 21 + +//-------------------------------------------------- +// Map Group 22 +//-------------------------------------------------- + +enum +{ + MAP_ID_ROUTE117_POKEMON_DAY_CARE, +}; + +#define MAP_GROUP_ROUTE117_POKEMON_DAY_CARE 22 + +//-------------------------------------------------- +// Map Group 23 +//-------------------------------------------------- + +enum +{ + MAP_ID_ROUTE121_SAFARI_ZONE_ENTRANCE, +}; + +#define MAP_GROUP_ROUTE121_SAFARI_ZONE_ENTRANCE 23 + +//-------------------------------------------------- +// Map Group 24 +//-------------------------------------------------- + +enum +{ + MAP_ID_METEOR_FALLS_1F_1R, + MAP_ID_METEOR_FALLS_1F_2R, + MAP_ID_METEOR_FALLS_B1F_1R, + MAP_ID_METEOR_FALLS_B1F_2R, + MAP_ID_RUSTURF_TUNNEL, + MAP_ID_UNDERWATER_SOOTOPOLIS_CITY, + MAP_ID_DESERT_RUINS, + MAP_ID_GRANITE_CAVE_1F, + MAP_ID_GRANITE_CAVE_B1F, + MAP_ID_GRANITE_CAVE_B2F, + MAP_ID_GRANITE_CAVE_STEVENS_ROOM, + MAP_ID_PETALBURG_WOODS, + MAP_ID_MT_CHIMNEY, + MAP_ID_JAGGED_PASS, + MAP_ID_FIERY_PATH, + MAP_ID_MT_PYRE_1F, + MAP_ID_MT_PYRE_2F, + MAP_ID_MT_PYRE_3F, + MAP_ID_MT_PYRE_4F, + MAP_ID_MT_PYRE_5F, + MAP_ID_MT_PYRE_6F, + MAP_ID_MT_PYRE_EXTERIOR, + MAP_ID_MT_PYRE_SUMMIT, + MAP_ID_AQUA_HIDEOUT_1F, + MAP_ID_AQUA_HIDEOUT_B1F, + MAP_ID_AQUA_HIDEOUT_B2F, + MAP_ID_UNDERWATER_SEAFLOOR_CAVERN, + MAP_ID_SEAFLOOR_CAVERN_ENTRANCE, + MAP_ID_SEAFLOOR_CAVERN_ROOM1, + MAP_ID_SEAFLOOR_CAVERN_ROOM2, + MAP_ID_SEAFLOOR_CAVERN_ROOM3, + MAP_ID_SEAFLOOR_CAVERN_ROOM4, + MAP_ID_SEAFLOOR_CAVERN_ROOM5, + MAP_ID_SEAFLOOR_CAVERN_ROOM6, + MAP_ID_SEAFLOOR_CAVERN_ROOM7, + MAP_ID_SEAFLOOR_CAVERN_ROOM8, + MAP_ID_SEAFLOOR_CAVERN_ROOM9, + MAP_ID_CAVE_OF_ORIGIN_ENTRANCE, + MAP_ID_CAVE_OF_ORIGIN_1F, + MAP_ID_CAVE_OF_ORIGIN_B1F, + MAP_ID_CAVE_OF_ORIGIN_B2F, + MAP_ID_CAVE_OF_ORIGIN_B3F, + MAP_ID_CAVE_OF_ORIGIN_B4F, + MAP_ID_VICTORY_ROAD_1F, + MAP_ID_VICTORY_ROAD_B1F, + MAP_ID_VICTORY_ROAD_B2F, + MAP_ID_SHOAL_CAVE_LOW_TIDE_ENTRANCE_ROOM, + MAP_ID_SHOAL_CAVE_LOW_TIDE_INNER_ROOM, + MAP_ID_SHOAL_CAVE_LOW_TIDE_STAIRS_ROOM, + MAP_ID_SHOAL_CAVE_LOW_TIDE_LOWER_ROOM, + MAP_ID_SHOAL_CAVE_HIGH_TIDE_ENTRANCE_ROOM, + MAP_ID_SHOAL_CAVE_HIGH_TIDE_INNER_ROOM, + MAP_ID_NEW_MAUVILLE_ENTRANCE, + MAP_ID_NEW_MAUVILLE_INSIDE, + MAP_ID_ABANDONED_SHIP_DECK, + MAP_ID_ABANDONED_SHIP_CORRIDORS_1F, + MAP_ID_ABANDONED_SHIP_ROOMS_1F, + MAP_ID_ABANDONED_SHIP_CORRIDORS_B1F, + MAP_ID_ABANDONED_SHIP_ROOMS_B1F, + MAP_ID_ABANDONED_SHIP_ROOMS2_B1F, + MAP_ID_ABANDONED_SHIP_UNDERWATER1, + MAP_ID_ABANDONED_SHIP_ROOM_B1F, + MAP_ID_ABANDONED_SHIP_ROOMS2_1F, + MAP_ID_ABANDONED_SHIP_CAPTAINS_OFFICE, + MAP_ID_ABANDONED_SHIP_UNDERWATER2, + MAP_ID_ABANDONED_SHIP_HIDDEN_FLOOR_CORRIDORS, + MAP_ID_ABANDONED_SHIP_HIDDEN_FLOOR_ROOMS, + MAP_ID_ISLAND_CAVE, + MAP_ID_ANCIENT_TOMB, + MAP_ID_UNDERWATER_ROUTE134, + MAP_ID_UNDERWATER_SEALED_CHAMBER, + MAP_ID_SEALED_CHAMBER_OUTER_ROOM, + MAP_ID_SEALED_CHAMBER_INNER_ROOM, + MAP_ID_SCORCHED_SLAB, + MAP_ID_UNUSED_AQUA_HIDEOUT_1F, + MAP_ID_UNUSED_AQUA_HIDEOUT_B1F, + MAP_ID_UNUSED_AQUA_HIDEOUT_B2F, + MAP_ID_SKY_PILLAR_ENTRANCE, + MAP_ID_SKY_PILLAR_OUTSIDE, + MAP_ID_SKY_PILLAR_1F, + MAP_ID_SKY_PILLAR_2F, + MAP_ID_SKY_PILLAR_3F, + MAP_ID_SKY_PILLAR_4F, + MAP_ID_SHOAL_CAVE_LOW_TIDE_ICE_ROOM, + MAP_ID_SKY_PILLAR_5F, + MAP_ID_SKY_PILLAR_TOP, + MAP_ID_MAGMA_HIDEOUT_ENTRANCE, + MAP_ID_MAGMA_HIDEOUT_B1F, + MAP_ID_MAGMA_HIDEOUT_B2F, + MAP_ID_MAGMA_HIDEOUT_B3F, + MAP_ID_MAGMA_HIDEOUT_B4F, + MAP_ID_MAGMA_HIDEOUT_B5F, + MAP_ID_MAGMA_HIDEOUT_B6F, + MAP_ID_MAGMA_HIDEOUT_B7F, + MAP_ID_MIRAGE_TOWER_1F, + MAP_ID_MIRAGE_TOWER_2F, + MAP_ID_MIRAGE_TOWER_3F, + MAP_ID_MIRAGE_TOWER_4F, + MAP_ID_DESERT_UNDERPASS, + MAP_ID_ARTISAN_CAVE_1F, + MAP_ID_ARTISAN_CAVE_2F, + MAP_ID_UNKNOWN_UNDERWATER, + MAP_ID_MARINE_CAVE_1F, + MAP_ID_MARINE_CAVE_2F, + MAP_ID_TERRA_CAVE_1F, + MAP_ID_TERRA_CAVE_2F, + MAP_ID_ALTERING_CAVE, + MAP_ID_METEOR_FALLS_B1F_3R, +}; + +#define MAP_GROUP_METEOR_FALLS_1F_1R 24 +#define MAP_GROUP_METEOR_FALLS_1F_2R 24 +#define MAP_GROUP_METEOR_FALLS_B1F_1R 24 +#define MAP_GROUP_METEOR_FALLS_B1F_2R 24 +#define MAP_GROUP_RUSTURF_TUNNEL 24 +#define MAP_GROUP_UNDERWATER_SOOTOPOLIS_CITY 24 +#define MAP_GROUP_DESERT_RUINS 24 +#define MAP_GROUP_GRANITE_CAVE_1F 24 +#define MAP_GROUP_GRANITE_CAVE_B1F 24 +#define MAP_GROUP_GRANITE_CAVE_B2F 24 +#define MAP_GROUP_GRANITE_CAVE_STEVENS_ROOM 24 +#define MAP_GROUP_PETALBURG_WOODS 24 +#define MAP_GROUP_MT_CHIMNEY 24 +#define MAP_GROUP_JAGGED_PASS 24 +#define MAP_GROUP_FIERY_PATH 24 +#define MAP_GROUP_MT_PYRE_1F 24 +#define MAP_GROUP_MT_PYRE_2F 24 +#define MAP_GROUP_MT_PYRE_3F 24 +#define MAP_GROUP_MT_PYRE_4F 24 +#define MAP_GROUP_MT_PYRE_5F 24 +#define MAP_GROUP_MT_PYRE_6F 24 +#define MAP_GROUP_MT_PYRE_EXTERIOR 24 +#define MAP_GROUP_MT_PYRE_SUMMIT 24 +#define MAP_GROUP_AQUA_HIDEOUT_1F 24 +#define MAP_GROUP_AQUA_HIDEOUT_B1F 24 +#define MAP_GROUP_AQUA_HIDEOUT_B2F 24 +#define MAP_GROUP_UNDERWATER_SEAFLOOR_CAVERN 24 +#define MAP_GROUP_SEAFLOOR_CAVERN_ENTRANCE 24 +#define MAP_GROUP_SEAFLOOR_CAVERN_ROOM1 24 +#define MAP_GROUP_SEAFLOOR_CAVERN_ROOM2 24 +#define MAP_GROUP_SEAFLOOR_CAVERN_ROOM3 24 +#define MAP_GROUP_SEAFLOOR_CAVERN_ROOM4 24 +#define MAP_GROUP_SEAFLOOR_CAVERN_ROOM5 24 +#define MAP_GROUP_SEAFLOOR_CAVERN_ROOM6 24 +#define MAP_GROUP_SEAFLOOR_CAVERN_ROOM7 24 +#define MAP_GROUP_SEAFLOOR_CAVERN_ROOM8 24 +#define MAP_GROUP_SEAFLOOR_CAVERN_ROOM9 24 +#define MAP_GROUP_CAVE_OF_ORIGIN_ENTRANCE 24 +#define MAP_GROUP_CAVE_OF_ORIGIN_1F 24 +#define MAP_GROUP_CAVE_OF_ORIGIN_B1F 24 +#define MAP_GROUP_CAVE_OF_ORIGIN_B2F 24 +#define MAP_GROUP_CAVE_OF_ORIGIN_B3F 24 +#define MAP_GROUP_CAVE_OF_ORIGIN_B4F 24 +#define MAP_GROUP_VICTORY_ROAD_1F 24 +#define MAP_GROUP_VICTORY_ROAD_B1F 24 +#define MAP_GROUP_VICTORY_ROAD_B2F 24 +#define MAP_GROUP_SHOAL_CAVE_LOW_TIDE_ENTRANCE_ROOM 24 +#define MAP_GROUP_SHOAL_CAVE_LOW_TIDE_INNER_ROOM 24 +#define MAP_GROUP_SHOAL_CAVE_LOW_TIDE_STAIRS_ROOM 24 +#define MAP_GROUP_SHOAL_CAVE_LOW_TIDE_LOWER_ROOM 24 +#define MAP_GROUP_SHOAL_CAVE_HIGH_TIDE_ENTRANCE_ROOM 24 +#define MAP_GROUP_SHOAL_CAVE_HIGH_TIDE_INNER_ROOM 24 +#define MAP_GROUP_NEW_MAUVILLE_ENTRANCE 24 +#define MAP_GROUP_NEW_MAUVILLE_INSIDE 24 +#define MAP_GROUP_ABANDONED_SHIP_DECK 24 +#define MAP_GROUP_ABANDONED_SHIP_CORRIDORS_1F 24 +#define MAP_GROUP_ABANDONED_SHIP_ROOMS_1F 24 +#define MAP_GROUP_ABANDONED_SHIP_CORRIDORS_B1F 24 +#define MAP_GROUP_ABANDONED_SHIP_ROOMS_B1F 24 +#define MAP_GROUP_ABANDONED_SHIP_ROOMS2_B1F 24 +#define MAP_GROUP_ABANDONED_SHIP_UNDERWATER1 24 +#define MAP_GROUP_ABANDONED_SHIP_ROOM_B1F 24 +#define MAP_GROUP_ABANDONED_SHIP_ROOMS2_1F 24 +#define MAP_GROUP_ABANDONED_SHIP_CAPTAINS_OFFICE 24 +#define MAP_GROUP_ABANDONED_SHIP_UNDERWATER2 24 +#define MAP_GROUP_ABANDONED_SHIP_HIDDEN_FLOOR_CORRIDORS 24 +#define MAP_GROUP_ABANDONED_SHIP_HIDDEN_FLOOR_ROOMS 24 +#define MAP_GROUP_ISLAND_CAVE 24 +#define MAP_GROUP_ANCIENT_TOMB 24 +#define MAP_GROUP_UNDERWATER_ROUTE134 24 +#define MAP_GROUP_UNDERWATER_SEALED_CHAMBER 24 +#define MAP_GROUP_SEALED_CHAMBER_OUTER_ROOM 24 +#define MAP_GROUP_SEALED_CHAMBER_INNER_ROOM 24 +#define MAP_GROUP_SCORCHED_SLAB 24 +#define MAP_GROUP_UNUSED_AQUA_HIDEOUT_1F 24 +#define MAP_GROUP_UNUSED_AQUA_HIDEOUT_B1F 24 +#define MAP_GROUP_UNUSED_AQUA_HIDEOUT_B2F 24 +#define MAP_GROUP_SKY_PILLAR_ENTRANCE 24 +#define MAP_GROUP_SKY_PILLAR_OUTSIDE 24 +#define MAP_GROUP_SKY_PILLAR_1F 24 +#define MAP_GROUP_SKY_PILLAR_2F 24 +#define MAP_GROUP_SKY_PILLAR_3F 24 +#define MAP_GROUP_SKY_PILLAR_4F 24 +#define MAP_GROUP_SHOAL_CAVE_LOW_TIDE_ICE_ROOM 24 +#define MAP_GROUP_SKY_PILLAR_5F 24 +#define MAP_GROUP_SKY_PILLAR_TOP 24 +#define MAP_GROUP_MAGMA_HIDEOUT_ENTRANCE 24 +#define MAP_GROUP_MAGMA_HIDEOUT_B1F 24 +#define MAP_GROUP_MAGMA_HIDEOUT_B2F 24 +#define MAP_GROUP_MAGMA_HIDEOUT_B3F 24 +#define MAP_GROUP_MAGMA_HIDEOUT_B4F 24 +#define MAP_GROUP_MAGMA_HIDEOUT_B5F 24 +#define MAP_GROUP_MAGMA_HIDEOUT_B6F 24 +#define MAP_GROUP_MAGMA_HIDEOUT_B7F 24 +#define MAP_GROUP_MIRAGE_TOWER_1F 24 +#define MAP_GROUP_MIRAGE_TOWER_2F 24 +#define MAP_GROUP_MIRAGE_TOWER_3F 24 +#define MAP_GROUP_MIRAGE_TOWER_4F 24 +#define MAP_GROUP_DESERT_UNDERPASS 24 +#define MAP_GROUP_ARTISAN_CAVE_1F 24 +#define MAP_GROUP_ARTISAN_CAVE_2F 24 +#define MAP_GROUP_UNKNOWN_UNDERWATER 24 +#define MAP_GROUP_MARINE_CAVE_1F 24 +#define MAP_GROUP_MARINE_CAVE_2F 24 +#define MAP_GROUP_TERRA_CAVE_1F 24 +#define MAP_GROUP_TERRA_CAVE_2F 24 +#define MAP_GROUP_ALTERING_CAVE 24 +#define MAP_GROUP_METEOR_FALLS_B1F_3R 24 + +//-------------------------------------------------- +// Map Group 25 +//-------------------------------------------------- + +enum +{ + MAP_ID_SECRET_BASE_RED_CAVE1, + MAP_ID_SECRET_BASE_BROWN_CAVE1, + MAP_ID_SECRET_BASE_BLUE_CAVE1, + MAP_ID_SECRET_BASE_YELLOW_CAVE1, + MAP_ID_SECRET_BASE_TREE1, + MAP_ID_SECRET_BASE_SHRUB1, + MAP_ID_SECRET_BASE_RED_CAVE2, + MAP_ID_SECRET_BASE_BROWN_CAVE2, + MAP_ID_SECRET_BASE_BLUE_CAVE2, + MAP_ID_SECRET_BASE_YELLOW_CAVE2, + MAP_ID_SECRET_BASE_TREE2, + MAP_ID_SECRET_BASE_SHRUB2, + MAP_ID_SECRET_BASE_RED_CAVE3, + MAP_ID_SECRET_BASE_BROWN_CAVE3, + MAP_ID_SECRET_BASE_BLUE_CAVE3, + MAP_ID_SECRET_BASE_YELLOW_CAVE3, + MAP_ID_SECRET_BASE_TREE3, + MAP_ID_SECRET_BASE_SHRUB3, + MAP_ID_SECRET_BASE_RED_CAVE4, + MAP_ID_SECRET_BASE_BROWN_CAVE4, + MAP_ID_SECRET_BASE_BLUE_CAVE4, + MAP_ID_SECRET_BASE_YELLOW_CAVE4, + MAP_ID_SECRET_BASE_TREE4, + MAP_ID_SECRET_BASE_SHRUB4, + MAP_ID_SINGLE_BATTLE_COLOSSEUM, + MAP_ID_TRADE_CENTER, + MAP_ID_RECORD_CORNER, + MAP_ID_DOUBLE_BATTLE_COLOSSEUM, + MAP_ID_LINK_CONTEST_ROOM1, + MAP_ID_UNKNOWN_MAP_25_29, + MAP_ID_UNKNOWN_MAP_25_30, + MAP_ID_UNKNOWN_MAP_25_31, + MAP_ID_UNKNOWN_MAP_25_32, + MAP_ID_UNKNOWN_MAP_25_33, + MAP_ID_UNKNOWN_MAP_25_34, + MAP_ID_LINK_CONTEST_ROOM2, + MAP_ID_LINK_CONTEST_ROOM3, + MAP_ID_LINK_CONTEST_ROOM4, + MAP_ID_LINK_CONTEST_ROOM5, + MAP_ID_LINK_CONTEST_ROOM6, + MAP_ID_INSIDE_OF_TRUCK, + MAP_ID_SS_TIDAL_CORRIDOR, + MAP_ID_SS_TIDAL_LOWER_DECK, + MAP_ID_SS_TIDAL_ROOMS, + MAP_ID_TEST_ROOM_1, + MAP_ID_TEST_ROOM_2, + MAP_ID_TEST_ROOM_3, + MAP_ID_TEST_ROOM_4, + MAP_ID_TEST_ROOM_5, + MAP_ID_TEST_ROOM_6, + MAP_ID_TEST_ROOM_7, + MAP_ID_TEST_ROOM_8, + MAP_ID_TEST_ROOM_9, + MAP_ID_TEST_ROOM_10, + MAP_ID_TEST_ROOM_11, + MAP_ID_TEST_ROOM_12, + MAP_ID_TEST_ROOM_13, + MAP_ID_TEST_ROOM_14, + MAP_ID_TEST_ROOM_15, + MAP_ID_TEST_ROOM_16, + MAP_ID_UNION_ROOM, +}; + +#define MAP_GROUP_SECRET_BASE_RED_CAVE1 25 +#define MAP_GROUP_SECRET_BASE_BROWN_CAVE1 25 +#define MAP_GROUP_SECRET_BASE_BLUE_CAVE1 25 +#define MAP_GROUP_SECRET_BASE_YELLOW_CAVE1 25 +#define MAP_GROUP_SECRET_BASE_TREE1 25 +#define MAP_GROUP_SECRET_BASE_SHRUB1 25 +#define MAP_GROUP_SECRET_BASE_RED_CAVE2 25 +#define MAP_GROUP_SECRET_BASE_BROWN_CAVE2 25 +#define MAP_GROUP_SECRET_BASE_BLUE_CAVE2 25 +#define MAP_GROUP_SECRET_BASE_YELLOW_CAVE2 25 +#define MAP_GROUP_SECRET_BASE_TREE2 25 +#define MAP_GROUP_SECRET_BASE_SHRUB2 25 +#define MAP_GROUP_SECRET_BASE_RED_CAVE3 25 +#define MAP_GROUP_SECRET_BASE_BROWN_CAVE3 25 +#define MAP_GROUP_SECRET_BASE_BLUE_CAVE3 25 +#define MAP_GROUP_SECRET_BASE_YELLOW_CAVE3 25 +#define MAP_GROUP_SECRET_BASE_TREE3 25 +#define MAP_GROUP_SECRET_BASE_SHRUB3 25 +#define MAP_GROUP_SECRET_BASE_RED_CAVE4 25 +#define MAP_GROUP_SECRET_BASE_BROWN_CAVE4 25 +#define MAP_GROUP_SECRET_BASE_BLUE_CAVE4 25 +#define MAP_GROUP_SECRET_BASE_YELLOW_CAVE4 25 +#define MAP_GROUP_SECRET_BASE_TREE4 25 +#define MAP_GROUP_SECRET_BASE_SHRUB4 25 +#define MAP_GROUP_SINGLE_BATTLE_COLOSSEUM 25 +#define MAP_GROUP_TRADE_CENTER 25 +#define MAP_GROUP_RECORD_CORNER 25 +#define MAP_GROUP_DOUBLE_BATTLE_COLOSSEUM 25 +#define MAP_GROUP_LINK_CONTEST_ROOM1 25 +#define MAP_GROUP_UNKNOWN_MAP_25_29 25 +#define MAP_GROUP_UNKNOWN_MAP_25_30 25 +#define MAP_GROUP_UNKNOWN_MAP_25_31 25 +#define MAP_GROUP_UNKNOWN_MAP_25_32 25 +#define MAP_GROUP_UNKNOWN_MAP_25_33 25 +#define MAP_GROUP_UNKNOWN_MAP_25_34 25 +#define MAP_GROUP_LINK_CONTEST_ROOM2 25 +#define MAP_GROUP_LINK_CONTEST_ROOM3 25 +#define MAP_GROUP_LINK_CONTEST_ROOM4 25 +#define MAP_GROUP_LINK_CONTEST_ROOM5 25 +#define MAP_GROUP_LINK_CONTEST_ROOM6 25 +#define MAP_GROUP_INSIDE_OF_TRUCK 25 +#define MAP_GROUP_SS_TIDAL_CORRIDOR 25 +#define MAP_GROUP_SS_TIDAL_LOWER_DECK 25 +#define MAP_GROUP_SS_TIDAL_ROOMS 25 +#define MAP_GROUP_TEST_ROOM_1 25 +#define MAP_GROUP_TEST_ROOM_2 25 +#define MAP_GROUP_TEST_ROOM_3 25 +#define MAP_GROUP_TEST_ROOM_4 25 +#define MAP_GROUP_TEST_ROOM_5 25 +#define MAP_GROUP_TEST_ROOM_6 25 +#define MAP_GROUP_TEST_ROOM_7 25 +#define MAP_GROUP_TEST_ROOM_8 25 +#define MAP_GROUP_TEST_ROOM_9 25 +#define MAP_GROUP_TEST_ROOM_10 25 +#define MAP_GROUP_TEST_ROOM_11 25 +#define MAP_GROUP_TEST_ROOM_12 25 +#define MAP_GROUP_TEST_ROOM_13 25 +#define MAP_GROUP_TEST_ROOM_14 25 +#define MAP_GROUP_TEST_ROOM_15 25 +#define MAP_GROUP_TEST_ROOM_16 25 +#define MAP_GROUP_UNION_ROOM 25 +//-------------------------------------------------- +// Map Group 26 +//-------------------------------------------------- + +enum +{ + MAP_ID_SAFARI_ZONE_NORTHWEST, + MAP_ID_SAFARI_ZONE_NORTHEAST, + MAP_ID_SAFARI_ZONE_SOUTHWEST, + MAP_ID_SAFARI_ZONE_SOUTHEAST, + MAP_ID_BATTLE_FRONTIER_OUTSIDE_WEST, + MAP_ID_BATTLE_TOWER_LOBBY, + MAP_ID_BATTLE_TOWER_ELEVATOR, + MAP_ID_BATTLE_TOWER_CORRIDOR, + MAP_ID_BATTLE_TOWER_BATTLE_ROOM, + MAP_ID_SOUTHERN_ISLAND_EXTERIOR, + MAP_ID_SOUTHERN_ISLAND_INTERIOR, + MAP_ID_SAFARI_ZONE_REST_HOUSE, + MAP_ID_SAFARI_ZONE_EM_1, + MAP_ID_SAFARI_ZONE_EM_2, + MAP_ID_BATTLE_FRONTIER_OUTSIDE_EAST, + MAP_ID_BATTLE_FRONTIER_TAG_LINK, + MAP_ID_BATTLE_FRONTIER_TAG_LINK_CORRIDOR, + MAP_ID_BATTLE_FRONTIER_TAG_LINK_ARENA, + MAP_ID_BATTLE_DOME_LOBBY, + MAP_ID_BATTLE_DOME_CORRIDOR, + MAP_ID_BATTLE_DOME_ROOM, + MAP_ID_BATTLE_DOME_ARENA, + MAP_ID_BATTLE_PALACE_LOBBY, + MAP_ID_BATTLE_PALACE_CORRIDOR, + MAP_ID_BATTLE_PALACE_1F, + MAP_ID_BATTLE_PYRAMID_LOBBY, + MAP_ID_BATTLE_PYRAMID_UNKNOWN, + MAP_ID_BATTLE_PYRAMID_PEAK, + MAP_ID_BATTLE_ARENA_LOBBY, + MAP_ID_BATTLE_ARENA_CORRIDOR, + MAP_ID_BATTLE_ARENA_ARENA, + MAP_ID_BATTLE_FACTORY_LOBBY, + MAP_ID_BATTLE_FACTORY_CORRIDOR, + MAP_ID_BATTLE_FACTORY_ARENA, + MAP_ID_BATTLE_PALACE_2F, + MAP_ID_BATTLE_PALACE_3F, + MAP_ID_BATTLE_PALACE_4F, + MAP_ID_BATTLE_PALACE_5F, + MAP_ID_BATTLE_PALACE_6F, + MAP_ID_BATTLE_PALACE_TEST_ROOM, + MAP_ID_RANKING_HALL, + MAP_ID_STAT_RATER_HOUSE, + MAP_ID_BATTLE_FRONTIER_EXCHANGE, + MAP_ID_BATTLE_FRONTIER_MANIAC_HOUSE, + MAP_ID_BATTLE_FRONTIER_GAMBLING_HOUSE, + MAP_ID_BATTLE_FRONTIER_HOUSE1, + MAP_ID_BATTLE_FRONTIER_SCOTTS_HOUSE, + MAP_ID_BATTLE_FRONTIER_HOUSE2, + MAP_ID_BATTLE_FRONTIER_HOUSE3, + MAP_ID_BATTLE_FRONTIER_HOUSE4, + MAP_ID_BATTLE_FRONTIER_ENTRANCE_HALL, + MAP_ID_BATTLE_FRONTIER_HOUSE5, + MAP_ID_BATTLE_FRONTIER_UNUSED_HOUSE, + MAP_ID_BATTLE_FRONTIER_POKEMON_CENTER_1F, + MAP_ID_BATTLE_FRONTIER_POKEMON_CENTER_2F, + MAP_ID_BATTLE_FRONTIER_MART, + MAP_ID_FARAWAY_ISLAND_OUTSIDE, + MAP_ID_FARAWAY_ISLAND_FOREST, + MAP_ID_BIRTH_ISLAND_OUTSIDE, + MAP_ID_BIRTH_ISLAND_DOCKS, + MAP_ID_TRAINER_HILL_LOBBY, + MAP_ID_TRAINER_HILL_1F, + MAP_ID_TRAINER_HILL_2F, + MAP_ID_TRAINER_HILL_3F, + MAP_ID_TRAINER_HILL_4F, + MAP_ID_TRAINER_HILL_5F, + MAP_ID_NAVEL_ROCK_OUTSIDE, + MAP_ID_NAVEL_ROCK_DOCKS, + MAP_ID_NAVEL_ROCK_1F, + MAP_ID_NAVEL_ROCK_2F, + MAP_ID_NAVEL_ROCK_3F, + MAP_ID_NAVEL_ROCK_4F, + MAP_ID_NAVEL_ROCK_5F, + MAP_ID_NAVEL_ROCK_6F, + MAP_ID_NAVEL_ROCK_7F, + MAP_ID_NAVEL_ROCK_PEAK, + MAP_ID_NAVEL_ROCK_B1F, + MAP_ID_NAVEL_ROCK_B2F, + MAP_ID_NAVEL_ROCK_B3F, + MAP_ID_NAVEL_ROCK_B4F, + MAP_ID_NAVEL_ROCK_B5F, + MAP_ID_NAVEL_ROCK_B6F, + MAP_ID_NAVEL_ROCK_B7F, + MAP_ID_NAVEL_ROCK_B8F, + MAP_ID_NAVEL_ROCK_B9F, + MAP_ID_NAVEL_ROCK_B10F, + MAP_ID_NAVEL_ROCK_B11F, + MAP_ID_NAVEL_ROCK_INNER, + MAP_ID_TRAINER_HILL_ELEVATOR, +}; + +#define MAP_GROUP_SAFARI_ZONE_NORTHWEST 26 +#define MAP_GROUP_SAFARI_ZONE_NORTHEAST 26 +#define MAP_GROUP_SAFARI_ZONE_SOUTHWEST 26 +#define MAP_GROUP_SAFARI_ZONE_SOUTHEAST 26 +#define MAP_GROUP_BATTLE_FRONTIER_OUTSIDE_WEST 26 +#define MAP_GROUP_BATTLE_TOWER_LOBBY 26 +#define MAP_GROUP_BATTLE_TOWER_ELEVATOR 26 +#define MAP_GROUP_BATTLE_TOWER_CORRIDOR 26 +#define MAP_GROUP_BATTLE_TOWER_BATTLE_ROOM 26 +#define MAP_GROUP_SOUTHERN_ISLAND_EXTERIOR 26 +#define MAP_GROUP_SOUTHERN_ISLAND_INTERIOR 26 +#define MAP_GROUP_SAFARI_ZONE_REST_HOUSE 26 +#define MAP_GROUP_SAFARI_ZONE_EM_1 26 +#define MAP_GROUP_SAFARI_ZONE_EM_2 26 +#define MAP_GROUP_BATTLE_FRONTIER_OUTSIDE_EAST 26 +#define MAP_GROUP_BATTLE_FRONTIER_TAG_LINK 26 +#define MAP_GROUP_BATTLE_FRONTIER_TAG_LINK_CORRIDOR 26 +#define MAP_GROUP_BATTLE_FRONTIER_TAG_LINK_ARENA 26 +#define MAP_GROUP_BATTLE_DOME_LOBBY 26 +#define MAP_GROUP_BATTLE_DOME_CORRIDOR 26 +#define MAP_GROUP_BATTLE_DOME_ROOM 26 +#define MAP_GROUP_BATTLE_DOME_ARENA 26 +#define MAP_GROUP_BATTLE_PALACE_LOBBY 26 +#define MAP_GROUP_BATTLE_PALACE_CORRIDOR 26 +#define MAP_GROUP_BATTLE_PALACE_1F 26 +#define MAP_GROUP_BATTLE_PYRAMID_LOBBY 26 +#define MAP_GROUP_BATTLE_PYRAMID_UNKNOWN 26 +#define MAP_GROUP_BATTLE_PYRAMID_PEAK 26 +#define MAP_GROUP_BATTLE_ARENA_LOBBY 26 +#define MAP_GROUP_BATTLE_ARENA_CORRIDOR 26 +#define MAP_GROUP_BATTLE_ARENA_ARENA 26 // rename +#define MAP_GROUP_BATTLE_FACTORY_LOBBY 26 +#define MAP_GROUP_BATTLE_FACTORY_CORRIDOR 26 +#define MAP_GROUP_BATTLE_FACTORY_ARENA 26 +#define MAP_GROUP_BATTLE_PALACE_2F 26 +#define MAP_GROUP_BATTLE_PALACE_3F 26 +#define MAP_GROUP_BATTLE_PALACE_4F 26 +#define MAP_GROUP_BATTLE_PALACE_5F 26 +#define MAP_GROUP_BATTLE_PALACE_6F 26 +#define MAP_GROUP_BATTLE_PALACE_TEST_ROOM 26 +#define MAP_GROUP_RANKING_HALL 26 +#define MAP_GROUP_STAT_RATER_HOUSE 26 +#define MAP_GROUP_BATTLE_FRONTIER_EXCHANGE 26 +#define MAP_GROUP_BATTLE_FRONTIER_MANIAC_HOUSE 26 +#define MAP_GROUP_BATTLE_FRONTIER_GAMBLING_HOUSE 26 +#define MAP_GROUP_BATTLE_FRONTIER_HOUSE1 26 +#define MAP_GROUP_BATTLE_FRONTIER_SCOTTS_HOUSE 26 +#define MAP_GROUP_BATTLE_FRONTIER_HOUSE2 26 +#define MAP_GROUP_BATTLE_FRONTIER_HOUSE3 26 +#define MAP_GROUP_BATTLE_FRONTIER_HOUSE4 26 +#define MAP_GROUP_BATTLE_FRONTIER_ENTRANCE_HALL 26 +#define MAP_GROUP_BATTLE_FRONTIER_HOUSE5 26 +#define MAP_GROUP_BATTLE_FRONTIER_UNUSED_HOUSE 26 +#define MAP_GROUP_BATTLE_FRONTIER_POKEMON_CENTER_1F 26 +#define MAP_GROUP_BATTLE_FRONTIER_POKEMON_CENTER_2F 26 +#define MAP_GROUP_BATTLE_FRONTIER_MART 26 +#define MAP_GROUP_FARAWAY_ISLAND_OUTSIDE 26 +#define MAP_GROUP_FARAWAY_ISLAND_FOREST 26 +#define MAP_GROUP_BIRTH_ISLAND_OUTSIDE 26 +#define MAP_GROUP_BIRTH_ISLAND_DOCKS 26 +#define MAP_GROUP_TRAINER_HILL_LOBBY 26 +#define MAP_GROUP_TRAINER_HILL_1F 26 +#define MAP_GROUP_TRAINER_HILL_2F 26 +#define MAP_GROUP_TRAINER_HILL_3F 26 +#define MAP_GROUP_TRAINER_HILL_4F 26 +#define MAP_GROUP_TRAINER_HILL_5F 26 +#define MAP_GROUP_NAVEL_ROCK_OUTSIDE 26 +#define MAP_GROUP_NAVEL_ROCK_DOCKS 26 +#define MAP_GROUP_NAVEL_ROCK_1F 26 +#define MAP_GROUP_NAVEL_ROCK_2F 26 +#define MAP_GROUP_NAVEL_ROCK_3F 26 +#define MAP_GROUP_NAVEL_ROCK_4F 26 +#define MAP_GROUP_NAVEL_ROCK_5F 26 +#define MAP_GROUP_NAVEL_ROCK_6F 26 +#define MAP_GROUP_NAVEL_ROCK_7F 26 +#define MAP_GROUP_NAVEL_ROCK_PEAK 26 +#define MAP_GROUP_NAVEL_ROCK_B1F 26 +#define MAP_GROUP_NAVEL_ROCK_B2F 26 +#define MAP_GROUP_NAVEL_ROCK_B3F 26 +#define MAP_GROUP_NAVEL_ROCK_B4F 26 +#define MAP_GROUP_NAVEL_ROCK_B5F 26 +#define MAP_GROUP_NAVEL_ROCK_B6F 26 +#define MAP_GROUP_NAVEL_ROCK_B7F 26 +#define MAP_GROUP_NAVEL_ROCK_B8F 26 +#define MAP_GROUP_NAVEL_ROCK_B9F 26 +#define MAP_GROUP_NAVEL_ROCK_B10F 26 +#define MAP_GROUP_NAVEL_ROCK_B11F 26 +#define MAP_GROUP_NAVEL_ROCK_INNER 26 +#define MAP_GROUP_TRAINER_HILL_ELEVATOR 26 +//-------------------------------------------------- +// Map Group 27 +//-------------------------------------------------- + +enum +{ + MAP_ID_ROUTE104_PROTOTYPE, + MAP_ID_ROUTE104_PROTOTYPE_PRETTY_PETAL_FLOWER_SHOP, +}; + +#define MAP_GROUP_ROUTE104_PROTOTYPE 27 +#define MAP_GROUP_ROUTE104_PROTOTYPE_PRETTY_PETAL_FLOWER_SHOP 27 + +//-------------------------------------------------- +// Map Group 28 +//-------------------------------------------------- + +enum +{ + MAP_ID_ROUTE109_SEASHORE_HOUSE, +}; + +#define MAP_GROUP_ROUTE109_SEASHORE_HOUSE 28 + +//-------------------------------------------------- +// Map Group 29 +//-------------------------------------------------- + +enum +{ + MAP_ID_ROUTE110_TRICK_HOUSE_ENTRANCE, + MAP_ID_ROUTE110_TRICK_HOUSE_END, + MAP_ID_ROUTE110_TRICK_HOUSE_CORRIDOR, + MAP_ID_ROUTE110_TRICK_HOUSE_PUZZLE1, + MAP_ID_ROUTE110_TRICK_HOUSE_PUZZLE2, + MAP_ID_ROUTE110_TRICK_HOUSE_PUZZLE3, + MAP_ID_ROUTE110_TRICK_HOUSE_PUZZLE4, + MAP_ID_ROUTE110_TRICK_HOUSE_PUZZLE5, + MAP_ID_ROUTE110_TRICK_HOUSE_PUZZLE6, + MAP_ID_ROUTE110_TRICK_HOUSE_PUZZLE7, + MAP_ID_ROUTE110_TRICK_HOUSE_PUZZLE8, + MAP_ID_ROUTE110_SEASIDE_CYCLING_ROAD_SOUTH_ENTRANCE, + MAP_ID_ROUTE110_SEASIDE_CYCLING_ROAD_NORTH_ENTRANCE, +}; + +#define MAP_GROUP_ROUTE110_TRICK_HOUSE_ENTRANCE 29 +#define MAP_GROUP_ROUTE110_TRICK_HOUSE_END 29 +#define MAP_GROUP_ROUTE110_TRICK_HOUSE_CORRIDOR 29 +#define MAP_GROUP_ROUTE110_TRICK_HOUSE_PUZZLE1 29 +#define MAP_GROUP_ROUTE110_TRICK_HOUSE_PUZZLE2 29 +#define MAP_GROUP_ROUTE110_TRICK_HOUSE_PUZZLE3 29 +#define MAP_GROUP_ROUTE110_TRICK_HOUSE_PUZZLE4 29 +#define MAP_GROUP_ROUTE110_TRICK_HOUSE_PUZZLE5 29 +#define MAP_GROUP_ROUTE110_TRICK_HOUSE_PUZZLE6 29 +#define MAP_GROUP_ROUTE110_TRICK_HOUSE_PUZZLE7 29 +#define MAP_GROUP_ROUTE110_TRICK_HOUSE_PUZZLE8 29 +#define MAP_GROUP_ROUTE110_SEASIDE_CYCLING_ROAD_SOUTH_ENTRANCE 29 +#define MAP_GROUP_ROUTE110_SEASIDE_CYCLING_ROAD_NORTH_ENTRANCE 29 + +//-------------------------------------------------- +// Map Group 30 +//-------------------------------------------------- + +enum +{ + MAP_ID_ROUTE113_GLASS_WORKSHOP, +}; + +#define MAP_GROUP_ROUTE113_GLASS_WORKSHOP 30 + +//-------------------------------------------------- +// Map Group 31 +//-------------------------------------------------- + +enum +{ + MAP_ID_ROUTE123_BERRY_MASTERS_HOUSE, +}; + +#define MAP_GROUP_ROUTE123_BERRY_MASTERS_HOUSE 31 + +//-------------------------------------------------- +// Map Group 32 +//-------------------------------------------------- + +enum +{ + MAP_ID_ROUTE119_WEATHER_INSTITUTE_1F, + MAP_ID_ROUTE119_WEATHER_INSTITUTE_2F, + MAP_ID_ROUTE119_HOUSE, +}; + +#define MAP_GROUP_ROUTE119_WEATHER_INSTITUTE_1F 32 +#define MAP_GROUP_ROUTE119_WEATHER_INSTITUTE_2F 32 +#define MAP_GROUP_ROUTE119_HOUSE 32 + +//-------------------------------------------------- +// Map Group 33 +//-------------------------------------------------- + +enum +{ + MAP_ID_ROUTE124_DIVING_TREASURE_HUNTERS_HOUSE, +}; + +#define MAP_GROUP_ROUTE124_DIVING_TREASURE_HUNTERS_HOUSE 33 + +#endif // GUARD_MAP_CONSTANTS_H \ No newline at end of file -- cgit v1.2.3 From ef0b022707bd6e4167f43fa0c9396dc507ef9042 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sat, 30 Sep 2017 09:32:46 -0400 Subject: BSS: src/main.o, src/dma3_manager.o --- include/dma3.h | 14 -------------- 1 file changed, 14 deletions(-) (limited to 'include') diff --git a/include/dma3.h b/include/dma3.h index db75ea9e3..265b47824 100644 --- a/include/dma3.h +++ b/include/dma3.h @@ -1,20 +1,6 @@ #ifndef GUARD_DMA3_H #define GUARD_DMA3_H -extern u8 gDma3ManagerLocked; -extern u8 gDma3RequestCursor; - -struct DmaRequestsStruct -{ - /* 0x00 */ const u8 *src; - /* 0x04 */ u8 *dest; - /* 0x08 */ u16 size; - /* 0x0A */ u16 mode; - /* 0x0C */ u32 value; -}; - -extern struct DmaRequestsStruct gDma3Requests[128]; - void ClearDma3Requests(void); void ProcessDma3Requests(void); int RequestDma3Copy(const void *src, void *dest, u16 size, u8 mode); -- cgit v1.2.3 From 993d5e2a6afb8f765ddd98ac32f01253a1476696 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sun, 1 Oct 2017 21:50:58 -0400 Subject: clean up declarations in src/palette.c --- include/battle.h | 3 +++ include/blend_palette.h | 12 ++++++++++++ 2 files changed, 15 insertions(+) create mode 100644 include/blend_palette.h (limited to 'include') diff --git a/include/battle.h b/include/battle.h index 67d3d873d..bc70b86ea 100644 --- a/include/battle.h +++ b/include/battle.h @@ -927,6 +927,9 @@ u8 GetBankSide(u8 bank); u8 GetBankIdentity(u8 bank); u8 GetBankByIdentity(u8 bank); +// battle_transition +void sub_8149DFC(u8 a1); + // Move this somewhere else #include "sprite.h" diff --git a/include/blend_palette.h b/include/blend_palette.h new file mode 100644 index 000000000..1db3f4eb0 --- /dev/null +++ b/include/blend_palette.h @@ -0,0 +1,12 @@ +#ifndef GUARD_BLEND_PALETTE_H +#define GUARD_BLEND_PALETTE_H + +// Exported type declarations + +// Exported RAM declarations + +// Exported ROM declarations + +void BlendPalette(u16, u16, u8, u16); + +#endif //GUARD_BLEND_PALETTE_H -- cgit v1.2.3