From 2afc20150b1cf5e9bcc8008c0323ac57af353718 Mon Sep 17 00:00:00 2001 From: Cameron Hall Date: Sat, 4 Feb 2017 21:47:11 -0600 Subject: decompile more of field_map_obj (#231) * decompile more code * decompile more of field_map_obj * decompile more of field_map_obj --- include/field_map_obj.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'include/field_map_obj.h') diff --git a/include/field_map_obj.h b/include/field_map_obj.h index c31b0fc2a..dfc41d38b 100644 --- a/include/field_map_obj.h +++ b/include/field_map_obj.h @@ -6,6 +6,6 @@ void sub_805C058(struct MapObject *mapObject, s16 a, s16 b); void FieldObjectSetDirection(struct MapObject *pObject, u8 unk_18); void MoveCoords(u8 direction, s16 *x, s16 *y); -void meta_step(struct MapObject *pObject, struct Sprite *pSprite, u32 (*d8)(void)); +void meta_step(struct MapObject *pObject, struct Sprite *pSprite, u32 (*d8)()); #endif // GUARD_FIELD_MAP_OBJ_H -- cgit v1.2.3 From e263329671a49fe462e1d4226a53d3ed096eb917 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sun, 21 May 2017 11:30:23 -0400 Subject: sub_805CE0C and helpers --- include/field_map_obj.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'include/field_map_obj.h') diff --git a/include/field_map_obj.h b/include/field_map_obj.h index dfc41d38b..ca0852a96 100644 --- a/include/field_map_obj.h +++ b/include/field_map_obj.h @@ -6,6 +6,6 @@ void sub_805C058(struct MapObject *mapObject, s16 a, s16 b); void FieldObjectSetDirection(struct MapObject *pObject, u8 unk_18); void MoveCoords(u8 direction, s16 *x, s16 *y); -void meta_step(struct MapObject *pObject, struct Sprite *pSprite, u32 (*d8)()); +void meta_step(struct MapObject *pObject, struct Sprite *pSprite, u8 (*d8)()); #endif // GUARD_FIELD_MAP_OBJ_H -- cgit v1.2.3 From cb975fbf00519c90c05c0dfaaf3f7a22ad8449ab Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Mon, 22 May 2017 08:34:47 -0400 Subject: sub_805E174 --- include/field_map_obj.h | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) (limited to 'include/field_map_obj.h') diff --git a/include/field_map_obj.h b/include/field_map_obj.h index ca0852a96..4c2d4c705 100644 --- a/include/field_map_obj.h +++ b/include/field_map_obj.h @@ -8,4 +8,35 @@ void FieldObjectSetDirection(struct MapObject *pObject, u8 unk_18); void MoveCoords(u8 direction, s16 *x, s16 *y); void meta_step(struct MapObject *pObject, struct Sprite *pSprite, u8 (*d8)()); +extern const u8 gUnknown_08375240[4]; +extern u8 (*const gUnknown_08375244[])(s16 a0, s16 a1, s16 a2, s16 a3); + +extern u8 (*const gUnknown_08375270[])(struct MapObject *mapObject, struct Sprite *sprite); +extern u8 (*const gUnknown_08375284[])(struct MapObject *mapObject, struct Sprite *sprite); +extern const u8 gUnknown_083752A0[2]; +extern u8 (*const gUnknown_083752A4[])(struct MapObject *mapObject, struct Sprite *sprite); +extern const u8 gUnknown_083752C0[2]; +extern u8 (*const gUnknown_083752C4[])(struct MapObject *mapObject, struct Sprite *sprite); +extern u8 (*const gUnknown_083752D0[])(struct MapObject *mapObject, struct Sprite *sprite); +extern u8 (*const gUnknown_083752E4[])(struct MapObject *mapObject, struct Sprite *sprite); +extern u8 (*const gUnknown_083752F8[])(struct MapObject *mapObject, struct Sprite *sprite); +extern u8 (*const gUnknown_0837530C[])(struct MapObject *mapObject, struct Sprite *sprite); +extern const u8 gUnknown_08375320[2]; +extern u8 (*const gUnknown_08375324[])(struct MapObject *mapObject, struct Sprite *sprite); +extern const u8 gUnknown_08375338[2]; +extern u8 (*const gUnknown_0837533C[])(struct MapObject *mapObject, struct Sprite *sprite); +extern const u8 gUnknown_08375350[2]; +extern u8 (*const gUnknown_08375354[])(struct MapObject *mapObject, struct Sprite *sprite); +extern const u8 gUnknown_08375368[2]; +extern u8 (*const gUnknown_0837536C[])(struct MapObject *mapObject, struct Sprite *sprite); +extern const u8 gUnknown_08375380[2]; +extern u8 (*const gUnknown_08375384[])(struct MapObject *mapObject, struct Sprite *sprite); +extern const u8 gUnknown_08375398[2]; +extern u8 (*const gUnknown_0837539C[])(struct MapObject *mapObject, struct Sprite *sprite); +extern const u8 gUnknown_083753B0[2]; +extern u8 (*const gUnknown_083753B4[])(struct MapObject *mapObject, struct Sprite *sprite); +extern const u8 gUnknown_083753C8[2]; +extern u8 (*const gUnknown_083753CC[])(struct MapObject *mapObject, struct Sprite *sprite); +extern const u8 gUnknown_083753DC[5]; + #endif // GUARD_FIELD_MAP_OBJ_H -- cgit v1.2.3 From 4f9110a54cd4ac21d3493b2cb60b42ee848863d6 Mon Sep 17 00:00:00 2001 From: scnorton Date: Mon, 22 May 2017 14:40:21 -0400 Subject: Create and propagate field map object callback declaration macro --- include/field_map_obj.h | 20 +++----------------- 1 file changed, 3 insertions(+), 17 deletions(-) (limited to 'include/field_map_obj.h') diff --git a/include/field_map_obj.h b/include/field_map_obj.h index 4c2d4c705..4f9b6f5af 100644 --- a/include/field_map_obj.h +++ b/include/field_map_obj.h @@ -6,37 +6,23 @@ void sub_805C058(struct MapObject *mapObject, s16 a, s16 b); void FieldObjectSetDirection(struct MapObject *pObject, u8 unk_18); void MoveCoords(u8 direction, s16 *x, s16 *y); -void meta_step(struct MapObject *pObject, struct Sprite *pSprite, u8 (*d8)()); +void meta_step(struct MapObject *pObject, struct Sprite *pSprite, u8 (*d8)(struct MapObject *, struct Sprite *)); +void npc_reset(struct MapObject *mapObject, struct Sprite *sprite); extern const u8 gUnknown_08375240[4]; extern u8 (*const gUnknown_08375244[])(s16 a0, s16 a1, s16 a2, s16 a3); -extern u8 (*const gUnknown_08375270[])(struct MapObject *mapObject, struct Sprite *sprite); -extern u8 (*const gUnknown_08375284[])(struct MapObject *mapObject, struct Sprite *sprite); extern const u8 gUnknown_083752A0[2]; -extern u8 (*const gUnknown_083752A4[])(struct MapObject *mapObject, struct Sprite *sprite); extern const u8 gUnknown_083752C0[2]; -extern u8 (*const gUnknown_083752C4[])(struct MapObject *mapObject, struct Sprite *sprite); -extern u8 (*const gUnknown_083752D0[])(struct MapObject *mapObject, struct Sprite *sprite); -extern u8 (*const gUnknown_083752E4[])(struct MapObject *mapObject, struct Sprite *sprite); -extern u8 (*const gUnknown_083752F8[])(struct MapObject *mapObject, struct Sprite *sprite); -extern u8 (*const gUnknown_0837530C[])(struct MapObject *mapObject, struct Sprite *sprite); extern const u8 gUnknown_08375320[2]; -extern u8 (*const gUnknown_08375324[])(struct MapObject *mapObject, struct Sprite *sprite); extern const u8 gUnknown_08375338[2]; -extern u8 (*const gUnknown_0837533C[])(struct MapObject *mapObject, struct Sprite *sprite); extern const u8 gUnknown_08375350[2]; -extern u8 (*const gUnknown_08375354[])(struct MapObject *mapObject, struct Sprite *sprite); extern const u8 gUnknown_08375368[2]; -extern u8 (*const gUnknown_0837536C[])(struct MapObject *mapObject, struct Sprite *sprite); extern const u8 gUnknown_08375380[2]; -extern u8 (*const gUnknown_08375384[])(struct MapObject *mapObject, struct Sprite *sprite); extern const u8 gUnknown_08375398[2]; -extern u8 (*const gUnknown_0837539C[])(struct MapObject *mapObject, struct Sprite *sprite); extern const u8 gUnknown_083753B0[2]; -extern u8 (*const gUnknown_083753B4[])(struct MapObject *mapObject, struct Sprite *sprite); extern const u8 gUnknown_083753C8[2]; -extern u8 (*const gUnknown_083753CC[])(struct MapObject *mapObject, struct Sprite *sprite); extern const u8 gUnknown_083753DC[5]; +extern const u8 gUnknown_083753F4[5]; #endif // GUARD_FIELD_MAP_OBJ_H -- cgit v1.2.3 From 1751ad0b6723c6deb4ec4d7f5d949278c76c8e66 Mon Sep 17 00:00:00 2001 From: scnorton Date: Mon, 22 May 2017 14:46:28 -0400 Subject: Fix building. Again. --- include/field_map_obj.h | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) (limited to 'include/field_map_obj.h') diff --git a/include/field_map_obj.h b/include/field_map_obj.h index 4f9b6f5af..00fda8358 100644 --- a/include/field_map_obj.h +++ b/include/field_map_obj.h @@ -3,6 +3,29 @@ #include "sprite.h" +#define fieldmap_object_cb(setup, callback, table) \ +extern u8 (*const table[])(struct MapObject *, struct Sprite *);\ +static u8 callback(struct MapObject *, struct Sprite *);\ +void setup(struct Sprite *sprite)\ +{\ + meta_step(&gMapObjects[sprite->data0], sprite, callback);\ +}\ +static u8 callback(struct MapObject *mapObject, struct Sprite *sprite)\ +{\ + return table[sprite->data1](mapObject, sprite);\ +} + +#define fieldmap_object_null_cb(setup, callback) \ +static u8 callback(struct MapObject *, struct Sprite *);\ +void setup(struct Sprite *sprite)\ +{\ + meta_step(&gMapObjects[sprite->data0], sprite, callback);\ +}\ +static u8 callback(struct MapObject *mapObject, struct Sprite *sprite)\ +{\ + return 0;\ +} + void sub_805C058(struct MapObject *mapObject, s16 a, s16 b); void FieldObjectSetDirection(struct MapObject *pObject, u8 unk_18); void MoveCoords(u8 direction, s16 *x, s16 *y); -- cgit v1.2.3 From 9d851873cd284af172581c413f0bab4a2f695c8e Mon Sep 17 00:00:00 2001 From: scnorton Date: Mon, 22 May 2017 17:21:17 -0400 Subject: Another chunk of library-like functions --- include/field_map_obj.h | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'include/field_map_obj.h') diff --git a/include/field_map_obj.h b/include/field_map_obj.h index 00fda8358..4f611aab2 100644 --- a/include/field_map_obj.h +++ b/include/field_map_obj.h @@ -26,6 +26,8 @@ static u8 callback(struct MapObject *mapObject, struct Sprite *sprite)\ return 0;\ } +bool8 CheckForCollisionBetweenFieldObjects(struct MapObject *mapObject, s16 x, s16 y); + void sub_805C058(struct MapObject *mapObject, s16 a, s16 b); void FieldObjectSetDirection(struct MapObject *pObject, u8 unk_18); void MoveCoords(u8 direction, s16 *x, s16 *y); @@ -48,4 +50,6 @@ extern const u8 gUnknown_083753C8[2]; extern const u8 gUnknown_083753DC[5]; extern const u8 gUnknown_083753F4[5]; +extern const u8 gUnknown_0837567B[9]; + #endif // GUARD_FIELD_MAP_OBJ_H -- cgit v1.2.3 From 70b04997a09a45552a257623867acc1a8be6141e Mon Sep 17 00:00:00 2001 From: scnorton Date: Mon, 22 May 2017 19:31:47 -0400 Subject: IsCoordOutsideFieldObjectMovementRect and others --- include/field_map_obj.h | 1 - 1 file changed, 1 deletion(-) (limited to 'include/field_map_obj.h') diff --git a/include/field_map_obj.h b/include/field_map_obj.h index 4f611aab2..c160f1c72 100644 --- a/include/field_map_obj.h +++ b/include/field_map_obj.h @@ -26,7 +26,6 @@ static u8 callback(struct MapObject *mapObject, struct Sprite *sprite)\ return 0;\ } -bool8 CheckForCollisionBetweenFieldObjects(struct MapObject *mapObject, s16 x, s16 y); void sub_805C058(struct MapObject *mapObject, s16 a, s16 b); void FieldObjectSetDirection(struct MapObject *pObject, u8 unk_18); -- cgit v1.2.3 From c3b7235a94f3ea8e6f0ac9f62c6551aef7520d37 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Mon, 22 May 2017 22:30:35 -0400 Subject: Halfway mark on asm/field_map_obj.s --- include/field_map_obj.h | 4 ++++ 1 file changed, 4 insertions(+) mode change 100644 => 100755 include/field_map_obj.h (limited to 'include/field_map_obj.h') diff --git a/include/field_map_obj.h b/include/field_map_obj.h old mode 100644 new mode 100755 index c160f1c72..e66ffa28f --- a/include/field_map_obj.h +++ b/include/field_map_obj.h @@ -48,6 +48,10 @@ extern const u8 gUnknown_083753B0[2]; extern const u8 gUnknown_083753C8[2]; extern const u8 gUnknown_083753DC[5]; extern const u8 gUnknown_083753F4[5]; +extern const u8 gUnknown_08375418[4]; +extern const u8 gUnknown_08375428[4]; +extern const u8 gUnknown_08375438[4]; +extern const u8 gUnknown_08375448[4]; extern const u8 gUnknown_0837567B[9]; -- cgit v1.2.3 From 1f84228a0118c0ff3f5320647591a52af1b6e147 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Tue, 23 May 2017 08:52:21 -0400 Subject: Knock off twenty more field object callbacks --- include/field_map_obj.h | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) (limited to 'include/field_map_obj.h') diff --git a/include/field_map_obj.h b/include/field_map_obj.h index e66ffa28f..559183cd3 100755 --- a/include/field_map_obj.h +++ b/include/field_map_obj.h @@ -52,6 +52,26 @@ extern const u8 gUnknown_08375418[4]; extern const u8 gUnknown_08375428[4]; extern const u8 gUnknown_08375438[4]; extern const u8 gUnknown_08375448[4]; +extern const u8 gUnknown_08375458[4]; +extern const u8 gUnknown_08375468[4]; +extern const u8 gUnknown_08375240[4]; +extern const u8 gUnknown_08375484[4]; +extern const u8 gUnknown_08375494[4]; +extern const u8 gUnknown_083754A4[4]; +extern const u8 gUnknown_083754B4[4]; +extern const u8 gUnknown_083754C4[4]; +extern const u8 gUnknown_083754D4[4]; +extern const u8 gUnknown_083754E4[4]; +extern const u8 gUnknown_083754F4[4]; +extern const u8 gUnknown_08375504[4]; +extern const u8 gUnknown_08375514[4]; +extern const u8 gUnknown_08375524[4]; +extern const u8 gUnknown_08375534[4]; +extern const u8 gUnknown_08375544[4]; +extern const u8 gUnknown_08375554[4]; +extern const u8 gUnknown_08375564[4]; +extern const u8 gUnknown_08375574[4]; +extern const u8 gUnknown_08375584[4]; extern const u8 gUnknown_0837567B[9]; -- cgit v1.2.3 From 06265cbe852d4d21e4ad18012723a56e54f5fe1e Mon Sep 17 00:00:00 2001 From: scnorton Date: Tue, 23 May 2017 10:16:08 -0400 Subject: IsMetatileDirectionallyImpassable, CheckForCollisionBetweenFieldObjects --- include/field_map_obj.h | 2 ++ 1 file changed, 2 insertions(+) (limited to 'include/field_map_obj.h') diff --git a/include/field_map_obj.h b/include/field_map_obj.h index 559183cd3..80add1403 100755 --- a/include/field_map_obj.h +++ b/include/field_map_obj.h @@ -35,6 +35,8 @@ void npc_reset(struct MapObject *mapObject, struct Sprite *sprite); extern const u8 gUnknown_08375240[4]; extern u8 (*const gUnknown_08375244[])(s16 a0, s16 a1, s16 a2, s16 a3); +extern bool8 (*const gUnknown_08375684[4])(u8); +extern bool8 (*const gUnknown_08375694[4])(u8); extern const u8 gUnknown_083752A0[2]; extern const u8 gUnknown_083752C0[2]; -- cgit v1.2.3 From 506013fe4cf2fc368ed4a175223c1883a88416f2 Mon Sep 17 00:00:00 2001 From: scnorton Date: Tue, 23 May 2017 11:13:36 -0400 Subject: Another set of functions related to adjusting coordinates --- include/field_map_obj.h | 2 ++ 1 file changed, 2 insertions(+) (limited to 'include/field_map_obj.h') diff --git a/include/field_map_obj.h b/include/field_map_obj.h index 80add1403..3a56ed636 100755 --- a/include/field_map_obj.h +++ b/include/field_map_obj.h @@ -77,4 +77,6 @@ extern const u8 gUnknown_08375584[4]; extern const u8 gUnknown_0837567B[9]; +extern const struct Coords16 gDirectionToVector[]; + #endif // GUARD_FIELD_MAP_OBJ_H -- cgit v1.2.3 From dd7f59cde93529e3e63bd2df0d096d1718835873 Mon Sep 17 00:00:00 2001 From: scnorton Date: Tue, 23 May 2017 12:06:33 -0400 Subject: Some more functions related to FMO camera and special anims --- include/field_map_obj.h | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'include/field_map_obj.h') diff --git a/include/field_map_obj.h b/include/field_map_obj.h index 3a56ed636..44212ac47 100755 --- a/include/field_map_obj.h +++ b/include/field_map_obj.h @@ -79,4 +79,8 @@ extern const u8 gUnknown_0837567B[9]; extern const struct Coords16 gDirectionToVector[]; +extern struct CameraSomething gUnknown_03004880; +extern s16 gUnknown_03004898; +extern s16 gUnknown_0300489C; + #endif // GUARD_FIELD_MAP_OBJ_H -- cgit v1.2.3 From 29aac6bde0ea201bd8eebedbbbc1b4a012d574e4 Mon Sep 17 00:00:00 2001 From: scnorton Date: Tue, 23 May 2017 14:27:22 -0400 Subject: up through state_to_direction, which is nonmatching (help, registers are misbehaving) --- include/field_map_obj.h | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'include/field_map_obj.h') diff --git a/include/field_map_obj.h b/include/field_map_obj.h index 44212ac47..07aba90e5 100755 --- a/include/field_map_obj.h +++ b/include/field_map_obj.h @@ -76,6 +76,10 @@ extern const u8 gUnknown_08375574[4]; extern const u8 gUnknown_08375584[4]; extern const u8 gUnknown_0837567B[9]; +extern const u8 gUnknown_0837574F[8]; + +extern const u8 gUnknown_08375757[4][4]; +extern const u8 gUnknown_08375767[4][4]; extern const struct Coords16 gDirectionToVector[]; -- cgit v1.2.3 From d857f57da015325e17e8c7d08bf4a923e0f9a2dd Mon Sep 17 00:00:00 2001 From: scnorton Date: Tue, 23 May 2017 15:26:25 -0400 Subject: Some more field map object functions; asm/field_map_obj.s down to 7k lines --- include/field_map_obj.h | 2 ++ 1 file changed, 2 insertions(+) (limited to 'include/field_map_obj.h') diff --git a/include/field_map_obj.h b/include/field_map_obj.h index 07aba90e5..8b8ef78ea 100755 --- a/include/field_map_obj.h +++ b/include/field_map_obj.h @@ -83,6 +83,8 @@ extern const u8 gUnknown_08375767[4][4]; extern const struct Coords16 gDirectionToVector[]; +extern u8 (**const gUnknown_08375778[])(struct MapObject *, struct Sprite *); + extern struct CameraSomething gUnknown_03004880; extern s16 gUnknown_03004898; extern s16 gUnknown_0300489C; -- cgit v1.2.3 From 46a3ee4ae04764e9ad37c8ed7fdf760832eb0175 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Tue, 23 May 2017 20:38:42 -0400 Subject: Fix building --- include/field_map_obj.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'include/field_map_obj.h') diff --git a/include/field_map_obj.h b/include/field_map_obj.h index 8b8ef78ea..2bd875f17 100755 --- a/include/field_map_obj.h +++ b/include/field_map_obj.h @@ -86,7 +86,7 @@ extern const struct Coords16 gDirectionToVector[]; extern u8 (**const gUnknown_08375778[])(struct MapObject *, struct Sprite *); extern struct CameraSomething gUnknown_03004880; -extern s16 gUnknown_03004898; -extern s16 gUnknown_0300489C; +extern u16 gUnknown_03004898; +extern u16 gUnknown_0300489C; #endif // GUARD_FIELD_MAP_OBJ_H -- cgit v1.2.3 From 6a02a6f6e5f90ae5ddf38bd69c90734a50d9142b Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sun, 21 May 2017 11:30:23 -0400 Subject: sub_805CE0C and helpers --- include/field_map_obj.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'include/field_map_obj.h') diff --git a/include/field_map_obj.h b/include/field_map_obj.h index dfc41d38b..ca0852a96 100644 --- a/include/field_map_obj.h +++ b/include/field_map_obj.h @@ -6,6 +6,6 @@ void sub_805C058(struct MapObject *mapObject, s16 a, s16 b); void FieldObjectSetDirection(struct MapObject *pObject, u8 unk_18); void MoveCoords(u8 direction, s16 *x, s16 *y); -void meta_step(struct MapObject *pObject, struct Sprite *pSprite, u32 (*d8)()); +void meta_step(struct MapObject *pObject, struct Sprite *pSprite, u8 (*d8)()); #endif // GUARD_FIELD_MAP_OBJ_H -- cgit v1.2.3 From 42e6ed382f1e9fdf3f28e2dd048fc99bbd56b347 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Mon, 22 May 2017 08:34:47 -0400 Subject: sub_805E174 --- include/field_map_obj.h | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) (limited to 'include/field_map_obj.h') diff --git a/include/field_map_obj.h b/include/field_map_obj.h index ca0852a96..4c2d4c705 100644 --- a/include/field_map_obj.h +++ b/include/field_map_obj.h @@ -8,4 +8,35 @@ void FieldObjectSetDirection(struct MapObject *pObject, u8 unk_18); void MoveCoords(u8 direction, s16 *x, s16 *y); void meta_step(struct MapObject *pObject, struct Sprite *pSprite, u8 (*d8)()); +extern const u8 gUnknown_08375240[4]; +extern u8 (*const gUnknown_08375244[])(s16 a0, s16 a1, s16 a2, s16 a3); + +extern u8 (*const gUnknown_08375270[])(struct MapObject *mapObject, struct Sprite *sprite); +extern u8 (*const gUnknown_08375284[])(struct MapObject *mapObject, struct Sprite *sprite); +extern const u8 gUnknown_083752A0[2]; +extern u8 (*const gUnknown_083752A4[])(struct MapObject *mapObject, struct Sprite *sprite); +extern const u8 gUnknown_083752C0[2]; +extern u8 (*const gUnknown_083752C4[])(struct MapObject *mapObject, struct Sprite *sprite); +extern u8 (*const gUnknown_083752D0[])(struct MapObject *mapObject, struct Sprite *sprite); +extern u8 (*const gUnknown_083752E4[])(struct MapObject *mapObject, struct Sprite *sprite); +extern u8 (*const gUnknown_083752F8[])(struct MapObject *mapObject, struct Sprite *sprite); +extern u8 (*const gUnknown_0837530C[])(struct MapObject *mapObject, struct Sprite *sprite); +extern const u8 gUnknown_08375320[2]; +extern u8 (*const gUnknown_08375324[])(struct MapObject *mapObject, struct Sprite *sprite); +extern const u8 gUnknown_08375338[2]; +extern u8 (*const gUnknown_0837533C[])(struct MapObject *mapObject, struct Sprite *sprite); +extern const u8 gUnknown_08375350[2]; +extern u8 (*const gUnknown_08375354[])(struct MapObject *mapObject, struct Sprite *sprite); +extern const u8 gUnknown_08375368[2]; +extern u8 (*const gUnknown_0837536C[])(struct MapObject *mapObject, struct Sprite *sprite); +extern const u8 gUnknown_08375380[2]; +extern u8 (*const gUnknown_08375384[])(struct MapObject *mapObject, struct Sprite *sprite); +extern const u8 gUnknown_08375398[2]; +extern u8 (*const gUnknown_0837539C[])(struct MapObject *mapObject, struct Sprite *sprite); +extern const u8 gUnknown_083753B0[2]; +extern u8 (*const gUnknown_083753B4[])(struct MapObject *mapObject, struct Sprite *sprite); +extern const u8 gUnknown_083753C8[2]; +extern u8 (*const gUnknown_083753CC[])(struct MapObject *mapObject, struct Sprite *sprite); +extern const u8 gUnknown_083753DC[5]; + #endif // GUARD_FIELD_MAP_OBJ_H -- cgit v1.2.3 From 4c42206a7f63b2045eae85ad2b4a60a630178d4c Mon Sep 17 00:00:00 2001 From: scnorton Date: Mon, 22 May 2017 14:40:21 -0400 Subject: Create and propagate field map object callback declaration macro --- include/field_map_obj.h | 43 ++++++++++++++++++++++++++----------------- 1 file changed, 26 insertions(+), 17 deletions(-) (limited to 'include/field_map_obj.h') diff --git a/include/field_map_obj.h b/include/field_map_obj.h index 4c2d4c705..00fda8358 100644 --- a/include/field_map_obj.h +++ b/include/field_map_obj.h @@ -3,40 +3,49 @@ #include "sprite.h" +#define fieldmap_object_cb(setup, callback, table) \ +extern u8 (*const table[])(struct MapObject *, struct Sprite *);\ +static u8 callback(struct MapObject *, struct Sprite *);\ +void setup(struct Sprite *sprite)\ +{\ + meta_step(&gMapObjects[sprite->data0], sprite, callback);\ +}\ +static u8 callback(struct MapObject *mapObject, struct Sprite *sprite)\ +{\ + return table[sprite->data1](mapObject, sprite);\ +} + +#define fieldmap_object_null_cb(setup, callback) \ +static u8 callback(struct MapObject *, struct Sprite *);\ +void setup(struct Sprite *sprite)\ +{\ + meta_step(&gMapObjects[sprite->data0], sprite, callback);\ +}\ +static u8 callback(struct MapObject *mapObject, struct Sprite *sprite)\ +{\ + return 0;\ +} + void sub_805C058(struct MapObject *mapObject, s16 a, s16 b); void FieldObjectSetDirection(struct MapObject *pObject, u8 unk_18); void MoveCoords(u8 direction, s16 *x, s16 *y); -void meta_step(struct MapObject *pObject, struct Sprite *pSprite, u8 (*d8)()); +void meta_step(struct MapObject *pObject, struct Sprite *pSprite, u8 (*d8)(struct MapObject *, struct Sprite *)); +void npc_reset(struct MapObject *mapObject, struct Sprite *sprite); extern const u8 gUnknown_08375240[4]; extern u8 (*const gUnknown_08375244[])(s16 a0, s16 a1, s16 a2, s16 a3); -extern u8 (*const gUnknown_08375270[])(struct MapObject *mapObject, struct Sprite *sprite); -extern u8 (*const gUnknown_08375284[])(struct MapObject *mapObject, struct Sprite *sprite); extern const u8 gUnknown_083752A0[2]; -extern u8 (*const gUnknown_083752A4[])(struct MapObject *mapObject, struct Sprite *sprite); extern const u8 gUnknown_083752C0[2]; -extern u8 (*const gUnknown_083752C4[])(struct MapObject *mapObject, struct Sprite *sprite); -extern u8 (*const gUnknown_083752D0[])(struct MapObject *mapObject, struct Sprite *sprite); -extern u8 (*const gUnknown_083752E4[])(struct MapObject *mapObject, struct Sprite *sprite); -extern u8 (*const gUnknown_083752F8[])(struct MapObject *mapObject, struct Sprite *sprite); -extern u8 (*const gUnknown_0837530C[])(struct MapObject *mapObject, struct Sprite *sprite); extern const u8 gUnknown_08375320[2]; -extern u8 (*const gUnknown_08375324[])(struct MapObject *mapObject, struct Sprite *sprite); extern const u8 gUnknown_08375338[2]; -extern u8 (*const gUnknown_0837533C[])(struct MapObject *mapObject, struct Sprite *sprite); extern const u8 gUnknown_08375350[2]; -extern u8 (*const gUnknown_08375354[])(struct MapObject *mapObject, struct Sprite *sprite); extern const u8 gUnknown_08375368[2]; -extern u8 (*const gUnknown_0837536C[])(struct MapObject *mapObject, struct Sprite *sprite); extern const u8 gUnknown_08375380[2]; -extern u8 (*const gUnknown_08375384[])(struct MapObject *mapObject, struct Sprite *sprite); extern const u8 gUnknown_08375398[2]; -extern u8 (*const gUnknown_0837539C[])(struct MapObject *mapObject, struct Sprite *sprite); extern const u8 gUnknown_083753B0[2]; -extern u8 (*const gUnknown_083753B4[])(struct MapObject *mapObject, struct Sprite *sprite); extern const u8 gUnknown_083753C8[2]; -extern u8 (*const gUnknown_083753CC[])(struct MapObject *mapObject, struct Sprite *sprite); extern const u8 gUnknown_083753DC[5]; +extern const u8 gUnknown_083753F4[5]; #endif // GUARD_FIELD_MAP_OBJ_H -- cgit v1.2.3 From abe5f5053624f876ea17c44370b203c0a4ace86b Mon Sep 17 00:00:00 2001 From: scnorton Date: Mon, 22 May 2017 17:21:17 -0400 Subject: Another chunk of library-like functions --- include/field_map_obj.h | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'include/field_map_obj.h') diff --git a/include/field_map_obj.h b/include/field_map_obj.h index 00fda8358..4f611aab2 100644 --- a/include/field_map_obj.h +++ b/include/field_map_obj.h @@ -26,6 +26,8 @@ static u8 callback(struct MapObject *mapObject, struct Sprite *sprite)\ return 0;\ } +bool8 CheckForCollisionBetweenFieldObjects(struct MapObject *mapObject, s16 x, s16 y); + void sub_805C058(struct MapObject *mapObject, s16 a, s16 b); void FieldObjectSetDirection(struct MapObject *pObject, u8 unk_18); void MoveCoords(u8 direction, s16 *x, s16 *y); @@ -48,4 +50,6 @@ extern const u8 gUnknown_083753C8[2]; extern const u8 gUnknown_083753DC[5]; extern const u8 gUnknown_083753F4[5]; +extern const u8 gUnknown_0837567B[9]; + #endif // GUARD_FIELD_MAP_OBJ_H -- cgit v1.2.3 From b087d8a909925baf772aa0d631318fb17667067c Mon Sep 17 00:00:00 2001 From: scnorton Date: Mon, 22 May 2017 19:31:47 -0400 Subject: IsCoordOutsideFieldObjectMovementRect and others --- include/field_map_obj.h | 1 - 1 file changed, 1 deletion(-) (limited to 'include/field_map_obj.h') diff --git a/include/field_map_obj.h b/include/field_map_obj.h index 4f611aab2..c160f1c72 100644 --- a/include/field_map_obj.h +++ b/include/field_map_obj.h @@ -26,7 +26,6 @@ static u8 callback(struct MapObject *mapObject, struct Sprite *sprite)\ return 0;\ } -bool8 CheckForCollisionBetweenFieldObjects(struct MapObject *mapObject, s16 x, s16 y); void sub_805C058(struct MapObject *mapObject, s16 a, s16 b); void FieldObjectSetDirection(struct MapObject *pObject, u8 unk_18); -- cgit v1.2.3 From 5b4191d55480021c5a26a11a0acbd26b8e3f4053 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Mon, 22 May 2017 22:30:35 -0400 Subject: Halfway mark on asm/field_map_obj.s --- include/field_map_obj.h | 4 ++++ 1 file changed, 4 insertions(+) mode change 100644 => 100755 include/field_map_obj.h (limited to 'include/field_map_obj.h') diff --git a/include/field_map_obj.h b/include/field_map_obj.h old mode 100644 new mode 100755 index c160f1c72..e66ffa28f --- a/include/field_map_obj.h +++ b/include/field_map_obj.h @@ -48,6 +48,10 @@ extern const u8 gUnknown_083753B0[2]; extern const u8 gUnknown_083753C8[2]; extern const u8 gUnknown_083753DC[5]; extern const u8 gUnknown_083753F4[5]; +extern const u8 gUnknown_08375418[4]; +extern const u8 gUnknown_08375428[4]; +extern const u8 gUnknown_08375438[4]; +extern const u8 gUnknown_08375448[4]; extern const u8 gUnknown_0837567B[9]; -- cgit v1.2.3 From 9c3a25305cfa90021caae4f3a64e5de5ebc6cd45 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Tue, 23 May 2017 08:52:21 -0400 Subject: Knock off twenty more field object callbacks --- include/field_map_obj.h | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) (limited to 'include/field_map_obj.h') diff --git a/include/field_map_obj.h b/include/field_map_obj.h index e66ffa28f..559183cd3 100755 --- a/include/field_map_obj.h +++ b/include/field_map_obj.h @@ -52,6 +52,26 @@ extern const u8 gUnknown_08375418[4]; extern const u8 gUnknown_08375428[4]; extern const u8 gUnknown_08375438[4]; extern const u8 gUnknown_08375448[4]; +extern const u8 gUnknown_08375458[4]; +extern const u8 gUnknown_08375468[4]; +extern const u8 gUnknown_08375240[4]; +extern const u8 gUnknown_08375484[4]; +extern const u8 gUnknown_08375494[4]; +extern const u8 gUnknown_083754A4[4]; +extern const u8 gUnknown_083754B4[4]; +extern const u8 gUnknown_083754C4[4]; +extern const u8 gUnknown_083754D4[4]; +extern const u8 gUnknown_083754E4[4]; +extern const u8 gUnknown_083754F4[4]; +extern const u8 gUnknown_08375504[4]; +extern const u8 gUnknown_08375514[4]; +extern const u8 gUnknown_08375524[4]; +extern const u8 gUnknown_08375534[4]; +extern const u8 gUnknown_08375544[4]; +extern const u8 gUnknown_08375554[4]; +extern const u8 gUnknown_08375564[4]; +extern const u8 gUnknown_08375574[4]; +extern const u8 gUnknown_08375584[4]; extern const u8 gUnknown_0837567B[9]; -- cgit v1.2.3 From 48a3b78f82095fb2bd77db7c1c296158deacd76e Mon Sep 17 00:00:00 2001 From: scnorton Date: Tue, 23 May 2017 10:16:08 -0400 Subject: IsMetatileDirectionallyImpassable, CheckForCollisionBetweenFieldObjects --- include/field_map_obj.h | 2 ++ 1 file changed, 2 insertions(+) (limited to 'include/field_map_obj.h') diff --git a/include/field_map_obj.h b/include/field_map_obj.h index 559183cd3..80add1403 100755 --- a/include/field_map_obj.h +++ b/include/field_map_obj.h @@ -35,6 +35,8 @@ void npc_reset(struct MapObject *mapObject, struct Sprite *sprite); extern const u8 gUnknown_08375240[4]; extern u8 (*const gUnknown_08375244[])(s16 a0, s16 a1, s16 a2, s16 a3); +extern bool8 (*const gUnknown_08375684[4])(u8); +extern bool8 (*const gUnknown_08375694[4])(u8); extern const u8 gUnknown_083752A0[2]; extern const u8 gUnknown_083752C0[2]; -- cgit v1.2.3 From 8155a807befd4f55f31a38a4535225221708783d Mon Sep 17 00:00:00 2001 From: scnorton Date: Tue, 23 May 2017 11:13:36 -0400 Subject: Another set of functions related to adjusting coordinates --- include/field_map_obj.h | 2 ++ 1 file changed, 2 insertions(+) (limited to 'include/field_map_obj.h') diff --git a/include/field_map_obj.h b/include/field_map_obj.h index 80add1403..3a56ed636 100755 --- a/include/field_map_obj.h +++ b/include/field_map_obj.h @@ -77,4 +77,6 @@ extern const u8 gUnknown_08375584[4]; extern const u8 gUnknown_0837567B[9]; +extern const struct Coords16 gDirectionToVector[]; + #endif // GUARD_FIELD_MAP_OBJ_H -- cgit v1.2.3 From 9684b862198f763e66a4f6348cc1f1cdef075ec0 Mon Sep 17 00:00:00 2001 From: scnorton Date: Tue, 23 May 2017 12:06:33 -0400 Subject: Some more functions related to FMO camera and special anims --- include/field_map_obj.h | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'include/field_map_obj.h') diff --git a/include/field_map_obj.h b/include/field_map_obj.h index 3a56ed636..44212ac47 100755 --- a/include/field_map_obj.h +++ b/include/field_map_obj.h @@ -79,4 +79,8 @@ extern const u8 gUnknown_0837567B[9]; extern const struct Coords16 gDirectionToVector[]; +extern struct CameraSomething gUnknown_03004880; +extern s16 gUnknown_03004898; +extern s16 gUnknown_0300489C; + #endif // GUARD_FIELD_MAP_OBJ_H -- cgit v1.2.3 From 39e0ce9f6d6dab0f9d72f967ba6fef23398bb342 Mon Sep 17 00:00:00 2001 From: scnorton Date: Tue, 23 May 2017 14:27:22 -0400 Subject: up through state_to_direction, which is nonmatching (help, registers are misbehaving) --- include/field_map_obj.h | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'include/field_map_obj.h') diff --git a/include/field_map_obj.h b/include/field_map_obj.h index 44212ac47..07aba90e5 100755 --- a/include/field_map_obj.h +++ b/include/field_map_obj.h @@ -76,6 +76,10 @@ extern const u8 gUnknown_08375574[4]; extern const u8 gUnknown_08375584[4]; extern const u8 gUnknown_0837567B[9]; +extern const u8 gUnknown_0837574F[8]; + +extern const u8 gUnknown_08375757[4][4]; +extern const u8 gUnknown_08375767[4][4]; extern const struct Coords16 gDirectionToVector[]; -- cgit v1.2.3 From d44cefb06d4d2e160db450a27b74a739753d24dd Mon Sep 17 00:00:00 2001 From: scnorton Date: Tue, 23 May 2017 15:26:25 -0400 Subject: Some more field map object functions; asm/field_map_obj.s down to 7k lines --- include/field_map_obj.h | 2 ++ 1 file changed, 2 insertions(+) (limited to 'include/field_map_obj.h') diff --git a/include/field_map_obj.h b/include/field_map_obj.h index 07aba90e5..8b8ef78ea 100755 --- a/include/field_map_obj.h +++ b/include/field_map_obj.h @@ -83,6 +83,8 @@ extern const u8 gUnknown_08375767[4][4]; extern const struct Coords16 gDirectionToVector[]; +extern u8 (**const gUnknown_08375778[])(struct MapObject *, struct Sprite *); + extern struct CameraSomething gUnknown_03004880; extern s16 gUnknown_03004898; extern s16 gUnknown_0300489C; -- cgit v1.2.3 From 4fe02ea081863fcdc6022ca8e608875265645326 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Tue, 23 May 2017 20:38:42 -0400 Subject: Fix building --- include/field_map_obj.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'include/field_map_obj.h') diff --git a/include/field_map_obj.h b/include/field_map_obj.h index 8b8ef78ea..2bd875f17 100755 --- a/include/field_map_obj.h +++ b/include/field_map_obj.h @@ -86,7 +86,7 @@ extern const struct Coords16 gDirectionToVector[]; extern u8 (**const gUnknown_08375778[])(struct MapObject *, struct Sprite *); extern struct CameraSomething gUnknown_03004880; -extern s16 gUnknown_03004898; -extern s16 gUnknown_0300489C; +extern u16 gUnknown_03004898; +extern u16 gUnknown_0300489C; #endif // GUARD_FIELD_MAP_OBJ_H -- cgit v1.2.3 From 4e3874a3febde4ba5f8c247004b4f84bf098bc9c Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Wed, 24 May 2017 20:19:30 -0400 Subject: Swiss cheese to put off these functions for later --- include/field_map_obj.h | 1 + 1 file changed, 1 insertion(+) (limited to 'include/field_map_obj.h') diff --git a/include/field_map_obj.h b/include/field_map_obj.h index 2bd875f17..67d96012d 100755 --- a/include/field_map_obj.h +++ b/include/field_map_obj.h @@ -89,4 +89,5 @@ extern struct CameraSomething gUnknown_03004880; extern u16 gUnknown_03004898; extern u16 gUnknown_0300489C; +int state_to_direction(u8, u8, u8); #endif // GUARD_FIELD_MAP_OBJ_H -- cgit v1.2.3 From fc8cc3767f0e424fbc590e24852a1ca73f89d9a9 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Thu, 25 May 2017 08:46:38 -0400 Subject: A couple more map object callbacks --- include/field_map_obj.h | 2 ++ 1 file changed, 2 insertions(+) (limited to 'include/field_map_obj.h') diff --git a/include/field_map_obj.h b/include/field_map_obj.h index 67d96012d..0347b90d4 100755 --- a/include/field_map_obj.h +++ b/include/field_map_obj.h @@ -89,5 +89,7 @@ extern struct CameraSomething gUnknown_03004880; extern u16 gUnknown_03004898; extern u16 gUnknown_0300489C; +extern u32 gUnknown_0202FF84[]; + int state_to_direction(u8, u8, u8); #endif // GUARD_FIELD_MAP_OBJ_H -- cgit v1.2.3 From 4d2b22a899c11dfcacfec6889968ab01655a3fe3 Mon Sep 17 00:00:00 2001 From: Marijn van der Werf Date: Fri, 26 May 2017 14:53:51 +0200 Subject: Add headers --- include/field_map_obj.h | 105 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 105 insertions(+) (limited to 'include/field_map_obj.h') diff --git a/include/field_map_obj.h b/include/field_map_obj.h index 2bd875f17..0294bca82 100755 --- a/include/field_map_obj.h +++ b/include/field_map_obj.h @@ -89,4 +89,109 @@ extern struct CameraSomething gUnknown_03004880; extern u16 gUnknown_03004898; extern u16 gUnknown_0300489C; + +void sub_805AA98(); +void sub_805AAB0(void); +u8 sub_805AB54(void); +u8 GetFieldObjectIdByLocalIdAndMap(u8, u8, u8); +bool8 TryGetFieldObjectIdByLocalIdAndMap(u8, u8, u8, u8 *); +u8 GetFieldObjectIdByXY(s16, s16); +u8 GetFieldObjectIdByLocalIdAndMapInternal(u8, u8, u8); +u8 GetFieldObjectIdByLocalId(u8); +u8 GetAvailableFieldObjectSlot(u16, u8, u8, u8 *); +void RemoveFieldObjectByLocalIdAndMap(u8, u8, u8); +void RemoveFieldObjectInternal(struct MapObject *); +u8 SpawnSpecialFieldObject(struct MapObjectTemplate *); +u8 show_sprite(u8, u8, u8); +void MakeObjectTemplateFromFieldObjectTemplate(struct MapObjectTemplate *mapObjTemplate, struct SpriteTemplate *sprTemplate, struct SubspriteTable **subspriteTables); +u8 AddPseudoFieldObject(u16 graphicsId, void (*callback)(struct Sprite *), s16 c, s16 d, u8 subpriority); +u8 sub_805B410(u8, u8, s16, s16, u8, u8); +void sub_805B55C(s16 a, s16 b); +void sub_805B710(u16 i, u16 i1); +void sub_805B980(struct MapObject *, u8); +void FieldObjectTurn(struct MapObject *, u8); +void FieldObjectTurnByLocalIdAndMap(u8, u8, u8, u8); +const struct MapObjectGraphicsInfo *GetFieldObjectGraphicsInfo(u8); +void FieldObjectHandleDynamicGraphicsId(struct MapObject *); +void npc_by_local_id_and_map_set_field_1_bit_x20(u8, u8, u8, u8); +void FieldObjectGetLocalIdAndMap(struct MapObject *, u8 *, u8 *, u8 *); +void sub_805BCC0(s16 x, s16 y); +void sub_805BCF0(u8, u8, u8, u8); +void sub_805BD48(u8, u8, u8); +void sub_805BD90(u8 localId, u8 mapNum, u8 mapGroup, s16 x, s16 y); +void gpu_pal_allocator_reset__manage_upper_four(void); +void sub_805BDF8(u16); +u8 sub_805BE58(const struct SpritePalette *); +void pal_patch_for_npc(u16, u16); +u8 FindFieldObjectPaletteIndexByTag(u16); +void npc_load_two_palettes__no_record(u16, u8); +void npc_load_two_palettes__and_record(u16, u8); +void npc_coords_shift(struct MapObject *pObject, s16 x, s16 y); +void sub_805C0F8(u8, u8, u8, s16, s16); +void npc_coords_shift_still(struct MapObject *pObject); +u8 GetFieldObjectIdByXYZ(u16, u16, u8); +void UpdateFieldObjectsForCameraUpdate(s16, s16); +u8 AddCameraObject(u8); +void CameraObjectReset1(void); +u8 * GetFieldObjectScriptPointerByFieldObjectId(u8); +u16 GetFieldObjectFlagIdByFieldObjectId(u8); +u8 FieldObjectGetBerryTreeId(u8); +struct MapObjectTemplate *GetFieldObjectTemplateByLocalIdAndMap(u8, u8, u8); +void sub_805C754(struct MapObject *pObject); +void sub_805C774(struct MapObject *, u8); +void sub_805C78C(u8, u8, u8); +void sub_805C7C4(u8 i); +u8 FieldObjectDirectionToImageAnimId(u8); +u8 get_go_image_anim_num(u8 unk_19); +u8 sub_805FD98(u8); +u8 sub_805FDE8(u8); +u8 sub_805FDF8(u8); +u8 sub_805FE08(u8); +void npc_set_running_behaviour_etc(struct MapObject *, u8); +u8 npc_running_behaviour_by_direction(u8); +u8 npc_block_way(struct MapObject *, s16, s16, u8); +u8 sub_8060024(struct MapObject *, s16, s16, u8); +u8 sub_8060234(u8, u8, u8); +void sub_8060288(u8, u8, u8); +void sub_8060388(s16, s16, s16 *, s16 *); +void sub_80603CC(s16 x, s16 y, s16 *pInt, s16 *pInt1); +void GetFieldObjectMovingCameraOffset(s16 *, s16 *); +void FieldObjectMoveDestCoords(struct MapObject *pObject, u8 unk_19, s16 *pInt, s16 *pInt1); +bool8 FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive(struct MapObject *); +bool8 FieldObjectIsSpecialAnimActive(struct MapObject *); +bool8 FieldObjectSetSpecialAnim(struct MapObject *, u8); +void FieldObjectForceSetSpecialAnim(struct MapObject *pObject, u8 a); +void FieldObjectClearAnimIfSpecialAnimActive(struct MapObject *); +void FieldObjectClearAnim(struct MapObject *); +bool8 FieldObjectCheckIfSpecialAnimFinishedOrInactive(struct MapObject *); +u8 FieldObjectClearAnimIfSpecialAnimFinished(struct MapObject *); +u8 FieldObjectGetSpecialAnim(struct MapObject *); +u8 GetFaceDirectionAnimId(u8); +u8 GetSimpleGoAnimId(u8); +u8 GetGoSpeed0AnimId(u8 a); +u8 sub_8060744(u8 a); +u8 d2s_08064034(u8 a); +u8 sub_806079C(u8 a); +u8 sub_80607F4(u8 a); +u8 GetJumpLedgeAnimId(u8 a); +u8 sub_806084C(u8); +u8 sub_8060878(u8); +u8 sub_80608D0(u8); +u8 GetStepInPlaceDelay32AnimId(u8 a); +u8 GetStepInPlaceDelay16AnimId(u8); +u8 GetStepInPlaceDelay8AnimId(u8 a); +u8 FieldObjectFaceOppositeDirection(struct MapObject *, u8); +u8 sub_80609D8(u8); +u8 sub_8060A04(u8); +u8 sub_8060A30(u8); +u8 sub_8060A5C(u8); +u8 sub_8060A88(u8); +u8 sub_8060AB4(u8); +u8 sub_8060AE0(u8); +u8 sub_8060B0C(u8); +u8 sub_8060B38(u8); +u8 sub_8060B64(u8); +u8 GetOppositeDirection(u8); +void sub_80634D0(struct MapObject *, struct Sprite *); + #endif // GUARD_FIELD_MAP_OBJ_H -- cgit v1.2.3 From f568060cae85a1e8c70a0216ea5d1c6e79d6a528 Mon Sep 17 00:00:00 2001 From: Marijn van der Werf Date: Fri, 26 May 2017 17:43:33 +0200 Subject: Make field_map_obj header not-executable --- include/field_map_obj.h | 0 1 file changed, 0 insertions(+), 0 deletions(-) mode change 100755 => 100644 include/field_map_obj.h (limited to 'include/field_map_obj.h') diff --git a/include/field_map_obj.h b/include/field_map_obj.h old mode 100755 new mode 100644 -- cgit v1.2.3 From 03e4f7c9cf592feefc10c1276fb8f648a7fe2bcd Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Fri, 26 May 2017 20:22:45 -0400 Subject: Rid code base of redundant SaveTVStruct and define unknown_2a98 as the last of 25 TVShow objects --- include/field_map_obj.h | 0 1 file changed, 0 insertions(+), 0 deletions(-) mode change 100755 => 100644 include/field_map_obj.h (limited to 'include/field_map_obj.h') diff --git a/include/field_map_obj.h b/include/field_map_obj.h old mode 100755 new mode 100644 -- cgit v1.2.3 From 15298927a80f2131a347949bea2cb19577d941f2 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sat, 17 Jun 2017 10:50:56 -0400 Subject: Decompile map object data (nonmatching wip 1) --- include/field_map_obj.h | 58 ++++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 55 insertions(+), 3 deletions(-) (limited to 'include/field_map_obj.h') diff --git a/include/field_map_obj.h b/include/field_map_obj.h index 0347b90d4..1eb28c63f 100644 --- a/include/field_map_obj.h +++ b/include/field_map_obj.h @@ -26,7 +26,6 @@ static u8 callback(struct MapObject *mapObject, struct Sprite *sprite)\ return 0;\ } - void sub_805C058(struct MapObject *mapObject, s16 a, s16 b); void FieldObjectSetDirection(struct MapObject *pObject, u8 unk_18); void MoveCoords(u8 direction, s16 *x, s16 *y); @@ -83,13 +82,66 @@ extern const u8 gUnknown_08375767[4][4]; extern const struct Coords16 gDirectionToVector[]; -extern u8 (**const gUnknown_08375778[])(struct MapObject *, struct Sprite *); - extern struct CameraSomething gUnknown_03004880; extern u16 gUnknown_03004898; extern u16 gUnknown_0300489C; extern u32 gUnknown_0202FF84[]; +void FieldObjectCB_BerryTree(struct Sprite *); +void FieldObjectCB_Hidden1(struct Sprite *); +void FieldObjectCB_MountainDisguise(struct Sprite *); +void FieldObjectCB_TreeDisguise(struct Sprite *); +void sub_80587B4(struct Sprite *); +void sub_805C884(struct Sprite *); +void sub_805C8AC(struct Sprite *); +void sub_805CDE8(struct Sprite *); +void sub_805CF28(struct Sprite *); +void sub_805D0AC(struct Sprite *); +void sub_805D230(struct Sprite *); +void sub_805D4F4(struct Sprite *); +void sub_805D634(struct Sprite *); +void sub_805D774(struct Sprite *); +void sub_805D8B4(struct Sprite *); +void sub_805D9F4(struct Sprite *); +void sub_805DB34(struct Sprite *); +void sub_805DC74(struct Sprite *); +void sub_805DDB4(struct Sprite *); +void sub_805DEF4(struct Sprite *); +void sub_805E034(struct Sprite *); +void sub_805E174(struct Sprite *); +void sub_805E278(struct Sprite *); +void sub_805E37C(struct Sprite *); +void sub_805E5DC(struct Sprite *); +void sub_805E668(struct Sprite *); +void sub_805E6F4(struct Sprite *); +void sub_805E780(struct Sprite *); +void sub_805E80C(struct Sprite *); +void sub_805E898(struct Sprite *); +void sub_805E924(struct Sprite *); +void sub_805E9B0(struct Sprite *); +void sub_805EA3C(struct Sprite *); +void sub_805EAC8(struct Sprite *); +void sub_805EB54(struct Sprite *); +void sub_805EBE0(struct Sprite *); +void sub_805EC6C(struct Sprite *); +void sub_805ECF8(struct Sprite *); +void sub_805ED84(struct Sprite *); +void sub_805EE10(struct Sprite *); +void sub_805EE9C(struct Sprite *); +void sub_805EF28(struct Sprite *); +void sub_805EFB4(struct Sprite *); +void sub_805F040(struct Sprite *); +void sub_805F0CC(struct Sprite *); +void sub_805F158(struct Sprite *); +void sub_805F1E4(struct Sprite *); +void sub_805F270(struct Sprite *); +void sub_805F2FC(struct Sprite *); +void sub_805F8E0(struct Sprite *); +void sub_805FB20(struct Sprite *); +void sub_805FB90(struct Sprite *); +void sub_805FC00(struct Sprite *); +void sub_805FC70(struct Sprite *); + int state_to_direction(u8, u8, u8); #endif // GUARD_FIELD_MAP_OBJ_H -- cgit v1.2.3 From 33520725b88621ace3c66da55b92f2a83ffb4545 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sat, 17 Jun 2017 17:09:22 -0400 Subject: Decompile all data in data/graphics/field_objects/*.inc --- include/field_map_obj.h | 11 +++++++++++ 1 file changed, 11 insertions(+) (limited to 'include/field_map_obj.h') diff --git a/include/field_map_obj.h b/include/field_map_obj.h index 1eb28c63f..e1210f16c 100644 --- a/include/field_map_obj.h +++ b/include/field_map_obj.h @@ -26,6 +26,17 @@ static u8 callback(struct MapObject *mapObject, struct Sprite *sprite)\ return 0;\ } +struct PairedPalettes +{ + u16 tag; + const u16 *data; +}; + +extern const u16 gMapObjectPalette19[]; + +extern const u32 gMapObjectPic_MovingBox[32]; +extern const struct SpriteFrameImage gMapObjectPicTable_PechaBerryTree[]; + void sub_805C058(struct MapObject *mapObject, s16 a, s16 b); void FieldObjectSetDirection(struct MapObject *pObject, u8 unk_18); void MoveCoords(u8 direction, s16 *x, s16 *y); -- cgit v1.2.3 From c57d632a6a8fc9bf4338182726c2e82430c1d8fb Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sun, 18 Jun 2017 12:15:12 -0400 Subject: Field map object callback pointers --- include/field_map_obj.h | 249 ++++++++++++++++++++++++++++++++++++++++-------- 1 file changed, 209 insertions(+), 40 deletions(-) mode change 100644 => 100755 include/field_map_obj.h (limited to 'include/field_map_obj.h') diff --git a/include/field_map_obj.h b/include/field_map_obj.h old mode 100644 new mode 100755 index e1210f16c..fd74b28e0 --- a/include/field_map_obj.h +++ b/include/field_map_obj.h @@ -4,7 +4,6 @@ #include "sprite.h" #define fieldmap_object_cb(setup, callback, table) \ -extern u8 (*const table[])(struct MapObject *, struct Sprite *);\ static u8 callback(struct MapObject *, struct Sprite *);\ void setup(struct Sprite *sprite)\ {\ @@ -43,48 +42,33 @@ void MoveCoords(u8 direction, s16 *x, s16 *y); void meta_step(struct MapObject *pObject, struct Sprite *pSprite, u8 (*d8)(struct MapObject *, struct Sprite *)); void npc_reset(struct MapObject *mapObject, struct Sprite *sprite); -extern const u8 gUnknown_08375240[4]; -extern u8 (*const gUnknown_08375244[])(s16 a0, s16 a1, s16 a2, s16 a3); +u8 sub_805CAAC(s16 a0, s16 a1, s16 a2, s16 a3); +u8 sub_805CADC(s16 a0, s16 a1, s16 a2, s16 a3); +u8 sub_805CAEC(s16 a0, s16 a1, s16 a2, s16 a3); +u8 sub_805CB00(s16 a0, s16 a1, s16 a2, s16 a3); +u8 sub_805CB5C(s16 a0, s16 a1, s16 a2, s16 a3); +u8 sub_805CBB8(s16 a0, s16 a1, s16 a2, s16 a3); +u8 sub_805CC14(s16 a0, s16 a1, s16 a2, s16 a3); +u8 sub_805CC70(s16 a0, s16 a1, s16 a2, s16 a3); +u8 sub_805CCAC(s16 a0, s16 a1, s16 a2, s16 a3); +u8 sub_805CCE8(s16 a0, s16 a1, s16 a2, s16 a3); +u8 sub_805CD24(s16 a0, s16 a1, s16 a2, s16 a3); + +u8 sub_805F3EC(struct MapObject *, struct Sprite *, u8, bool8 (*const)(u8)); +u8 sub_805F3F0(struct MapObject *, struct Sprite *, u8, bool8 (*const)(u8)); +u8 sub_805F438(struct MapObject *, struct Sprite *, u8, bool8 (*const)(u8)); +u8 sub_805F4F0(struct MapObject *, struct Sprite *, u8, bool8 (*const)(u8)); +u8 sub_805F5A8(struct MapObject *, struct Sprite *, u8, bool8 (*const)(u8)); +u8 sub_805F660(struct MapObject *, struct Sprite *, u8, bool8 (*const)(u8)); +u8 cph_IM_DIFFERENT(struct MapObject *, struct Sprite *, u8, bool8 (*const)(u8)); +u8 sub_805F760(struct MapObject *, struct Sprite *, u8, bool8 (*const)(u8)); +u8 oac_hopping(struct MapObject *, struct Sprite *, u8, bool8 (*const)(u8)); +u8 sub_805F3EC(struct MapObject *, struct Sprite *, u8, bool8 (*const)(u8)); +u8 sub_805F3EC(struct MapObject *, struct Sprite *, u8, bool8 (*const)(u8)); + extern bool8 (*const gUnknown_08375684[4])(u8); extern bool8 (*const gUnknown_08375694[4])(u8); -extern const u8 gUnknown_083752A0[2]; -extern const u8 gUnknown_083752C0[2]; -extern const u8 gUnknown_08375320[2]; -extern const u8 gUnknown_08375338[2]; -extern const u8 gUnknown_08375350[2]; -extern const u8 gUnknown_08375368[2]; -extern const u8 gUnknown_08375380[2]; -extern const u8 gUnknown_08375398[2]; -extern const u8 gUnknown_083753B0[2]; -extern const u8 gUnknown_083753C8[2]; -extern const u8 gUnknown_083753DC[5]; -extern const u8 gUnknown_083753F4[5]; -extern const u8 gUnknown_08375418[4]; -extern const u8 gUnknown_08375428[4]; -extern const u8 gUnknown_08375438[4]; -extern const u8 gUnknown_08375448[4]; -extern const u8 gUnknown_08375458[4]; -extern const u8 gUnknown_08375468[4]; -extern const u8 gUnknown_08375240[4]; -extern const u8 gUnknown_08375484[4]; -extern const u8 gUnknown_08375494[4]; -extern const u8 gUnknown_083754A4[4]; -extern const u8 gUnknown_083754B4[4]; -extern const u8 gUnknown_083754C4[4]; -extern const u8 gUnknown_083754D4[4]; -extern const u8 gUnknown_083754E4[4]; -extern const u8 gUnknown_083754F4[4]; -extern const u8 gUnknown_08375504[4]; -extern const u8 gUnknown_08375514[4]; -extern const u8 gUnknown_08375524[4]; -extern const u8 gUnknown_08375534[4]; -extern const u8 gUnknown_08375544[4]; -extern const u8 gUnknown_08375554[4]; -extern const u8 gUnknown_08375564[4]; -extern const u8 gUnknown_08375574[4]; -extern const u8 gUnknown_08375584[4]; - extern const u8 gUnknown_0837567B[9]; extern const u8 gUnknown_0837574F[8]; @@ -154,5 +138,190 @@ void sub_805FB90(struct Sprite *); void sub_805FC00(struct Sprite *); void sub_805FC70(struct Sprite *); +u8 sub_805C8F0(struct MapObject *, struct Sprite *); +u8 sub_805C904(struct MapObject *, struct Sprite *); +u8 sub_805C930(struct MapObject *, struct Sprite *); +u8 sub_805C96C(struct MapObject *, struct Sprite *); +u8 sub_805C98C(struct MapObject *, struct Sprite *); +u8 sub_805C9D8(struct MapObject *, struct Sprite *); +u8 sub_805CA08(struct MapObject *, struct Sprite *); +u8 sub_805CE2C(struct MapObject *, struct Sprite *); +u8 sub_805CE40(struct MapObject *, struct Sprite *); +u8 sub_805CE6C(struct MapObject *, struct Sprite *); +u8 sub_805CEB0(struct MapObject *, struct Sprite *); +u8 sub_805CEE0(struct MapObject *, struct Sprite *); +u8 sub_805CF6C(struct MapObject *, struct Sprite *); +u8 sub_805CF80(struct MapObject *, struct Sprite *); +u8 sub_805CFAC(struct MapObject *, struct Sprite *); +u8 sub_805CFE8(struct MapObject *, struct Sprite *); +u8 sub_805D008(struct MapObject *, struct Sprite *); +u8 sub_805D054(struct MapObject *, struct Sprite *); +u8 sub_805D084(struct MapObject *, struct Sprite *); +u8 sub_805D0F0(struct MapObject *, struct Sprite *); +u8 sub_805D104(struct MapObject *, struct Sprite *); +u8 sub_805D130(struct MapObject *, struct Sprite *); +u8 sub_805D16C(struct MapObject *, struct Sprite *); +u8 sub_805D18C(struct MapObject *, struct Sprite *); +u8 sub_805D1D8(struct MapObject *, struct Sprite *); +u8 sub_805D208(struct MapObject *, struct Sprite *); +u8 sub_805D274(struct MapObject *, struct Sprite *); +u8 sub_805D2A0(struct MapObject *, struct Sprite *); +u8 sub_805D2C0(struct MapObject *, struct Sprite *); +u8 do_berry_tree_growth_sparkle_1(struct MapObject *, struct Sprite *); +u8 sub_805D3EC(struct MapObject *, struct Sprite *); +u8 do_berry_tree_growth_sparkle_2(struct MapObject *, struct Sprite *); +u8 sub_805D458(struct MapObject *, struct Sprite *); +u8 sub_805D4A8(struct MapObject *, struct Sprite *); +u8 sub_805D538(struct MapObject *, struct Sprite *); +u8 sub_805D54C(struct MapObject *, struct Sprite *); +u8 sub_805D578(struct MapObject *, struct Sprite *); +u8 sub_805D5BC(struct MapObject *, struct Sprite *); +u8 sub_805D5EC(struct MapObject *, struct Sprite *); +u8 sub_805D678(struct MapObject *, struct Sprite *); +u8 sub_805D68C(struct MapObject *, struct Sprite *); +u8 sub_805D6B8(struct MapObject *, struct Sprite *); +u8 sub_805D6FC(struct MapObject *, struct Sprite *); +u8 sub_805D72C(struct MapObject *, struct Sprite *); +u8 sub_805D7B8(struct MapObject *, struct Sprite *); +u8 sub_805D7CC(struct MapObject *, struct Sprite *); +u8 sub_805D7F8(struct MapObject *, struct Sprite *); +u8 sub_805D83C(struct MapObject *, struct Sprite *); +u8 sub_805D86C(struct MapObject *, struct Sprite *); +u8 sub_805D8F8(struct MapObject *, struct Sprite *); +u8 sub_805D90C(struct MapObject *, struct Sprite *); +u8 sub_805D938(struct MapObject *, struct Sprite *); +u8 sub_805D97C(struct MapObject *, struct Sprite *); +u8 sub_805D9AC(struct MapObject *, struct Sprite *); +u8 sub_805DA38(struct MapObject *, struct Sprite *); +u8 sub_805DA4C(struct MapObject *, struct Sprite *); +u8 sub_805DA78(struct MapObject *, struct Sprite *); +u8 sub_805DABC(struct MapObject *, struct Sprite *); +u8 sub_805DAEC(struct MapObject *, struct Sprite *); +u8 sub_805DB78(struct MapObject *, struct Sprite *); +u8 sub_805DB8C(struct MapObject *, struct Sprite *); +u8 sub_805DBB8(struct MapObject *, struct Sprite *); +u8 sub_805DBFC(struct MapObject *, struct Sprite *); +u8 sub_805DC2C(struct MapObject *, struct Sprite *); +u8 sub_805DCB8(struct MapObject *, struct Sprite *); +u8 sub_805DCCC(struct MapObject *, struct Sprite *); +u8 sub_805DCF8(struct MapObject *, struct Sprite *); +u8 sub_805DD3C(struct MapObject *, struct Sprite *); +u8 sub_805DD6C(struct MapObject *, struct Sprite *); +u8 sub_805DDF8(struct MapObject *, struct Sprite *); +u8 sub_805DE0C(struct MapObject *, struct Sprite *); +u8 sub_805DE38(struct MapObject *, struct Sprite *); +u8 sub_805DE7C(struct MapObject *, struct Sprite *); +u8 sub_805DEAC(struct MapObject *, struct Sprite *); +u8 sub_805DF38(struct MapObject *, struct Sprite *); +u8 sub_805DF4C(struct MapObject *, struct Sprite *); +u8 sub_805DF78(struct MapObject *, struct Sprite *); +u8 sub_805DFBC(struct MapObject *, struct Sprite *); +u8 sub_805DFEC(struct MapObject *, struct Sprite *); +u8 sub_805E078(struct MapObject *, struct Sprite *); +u8 sub_805E08C(struct MapObject *, struct Sprite *); +u8 sub_805E0B8(struct MapObject *, struct Sprite *); +u8 sub_805E0FC(struct MapObject *, struct Sprite *); +u8 sub_805E12C(struct MapObject *, struct Sprite *); +u8 sub_805E1B8(struct MapObject *, struct Sprite *); +u8 sub_805E1E4(struct MapObject *, struct Sprite *); +u8 sub_805E208(struct MapObject *, struct Sprite *); +u8 sub_805E234(struct MapObject *, struct Sprite *); +u8 sub_805E2BC(struct MapObject *, struct Sprite *); +u8 sub_805E2E8(struct MapObject *, struct Sprite *); +u8 sub_805E30C(struct MapObject *, struct Sprite *); +u8 sub_805E338(struct MapObject *, struct Sprite *); +u8 sub_805E3C0(struct MapObject *, struct Sprite *); +u8 sub_805E3D4(struct MapObject *, struct Sprite *); +u8 sub_805E40C(struct MapObject *, struct Sprite *); +u8 sub_805E4C4(struct MapObject *, struct Sprite *); +u8 sub_805E4EC(struct MapObject *, struct Sprite *); +u8 sub_805E620(struct MapObject *, struct Sprite *); +u8 sub_805E5B4(struct MapObject *, struct Sprite *); +u8 sub_805E4EC(struct MapObject *, struct Sprite *); +u8 sub_805E6AC(struct MapObject *, struct Sprite *); +u8 sub_805E5B4(struct MapObject *, struct Sprite *); +u8 sub_805E4EC(struct MapObject *, struct Sprite *); +u8 sub_805E738(struct MapObject *, struct Sprite *); +u8 sub_805E5B4(struct MapObject *, struct Sprite *); +u8 sub_805E4EC(struct MapObject *, struct Sprite *); +u8 sub_805E7C4(struct MapObject *, struct Sprite *); +u8 sub_805E5B4(struct MapObject *, struct Sprite *); +u8 sub_805E4EC(struct MapObject *, struct Sprite *); +u8 sub_805E850(struct MapObject *, struct Sprite *); +u8 sub_805E5B4(struct MapObject *, struct Sprite *); +u8 sub_805E4EC(struct MapObject *, struct Sprite *); +u8 sub_805E8DC(struct MapObject *, struct Sprite *); +u8 sub_805E5B4(struct MapObject *, struct Sprite *); +u8 sub_805E4EC(struct MapObject *, struct Sprite *); +u8 sub_805E968(struct MapObject *, struct Sprite *); +u8 sub_805E5B4(struct MapObject *, struct Sprite *); +u8 sub_805E4EC(struct MapObject *, struct Sprite *); +u8 sub_805E9F4(struct MapObject *, struct Sprite *); +u8 sub_805E5B4(struct MapObject *, struct Sprite *); +u8 sub_805E4EC(struct MapObject *, struct Sprite *); +u8 sub_805EA80(struct MapObject *, struct Sprite *); +u8 sub_805E5B4(struct MapObject *, struct Sprite *); +u8 sub_805E4EC(struct MapObject *, struct Sprite *); +u8 sub_805EB0C(struct MapObject *, struct Sprite *); +u8 sub_805E5B4(struct MapObject *, struct Sprite *); +u8 sub_805E4EC(struct MapObject *, struct Sprite *); +u8 sub_805EB98(struct MapObject *, struct Sprite *); +u8 sub_805E5B4(struct MapObject *, struct Sprite *); +u8 sub_805E4EC(struct MapObject *, struct Sprite *); +u8 sub_805EC24(struct MapObject *, struct Sprite *); +u8 sub_805E5B4(struct MapObject *, struct Sprite *); +u8 sub_805E4EC(struct MapObject *, struct Sprite *); +u8 sub_805ECB0(struct MapObject *, struct Sprite *); +u8 sub_805E5B4(struct MapObject *, struct Sprite *); +u8 sub_805E4EC(struct MapObject *, struct Sprite *); +u8 sub_805ED3C(struct MapObject *, struct Sprite *); +u8 sub_805E5B4(struct MapObject *, struct Sprite *); +u8 sub_805E4EC(struct MapObject *, struct Sprite *); +u8 sub_805EDC8(struct MapObject *, struct Sprite *); +u8 sub_805E5B4(struct MapObject *, struct Sprite *); +u8 sub_805E4EC(struct MapObject *, struct Sprite *); +u8 sub_805EE54(struct MapObject *, struct Sprite *); +u8 sub_805E5B4(struct MapObject *, struct Sprite *); +u8 sub_805E4EC(struct MapObject *, struct Sprite *); +u8 sub_805EEE0(struct MapObject *, struct Sprite *); +u8 sub_805E5B4(struct MapObject *, struct Sprite *); +u8 sub_805E4EC(struct MapObject *, struct Sprite *); +u8 sub_805EF6C(struct MapObject *, struct Sprite *); +u8 sub_805E5B4(struct MapObject *, struct Sprite *); +u8 sub_805E4EC(struct MapObject *, struct Sprite *); +u8 sub_805EFF8(struct MapObject *, struct Sprite *); +u8 sub_805E5B4(struct MapObject *, struct Sprite *); +u8 sub_805E4EC(struct MapObject *, struct Sprite *); +u8 sub_805F084(struct MapObject *, struct Sprite *); +u8 sub_805E5B4(struct MapObject *, struct Sprite *); +u8 sub_805E4EC(struct MapObject *, struct Sprite *); +u8 sub_805F110(struct MapObject *, struct Sprite *); +u8 sub_805E5B4(struct MapObject *, struct Sprite *); +u8 sub_805E4EC(struct MapObject *, struct Sprite *); +u8 sub_805F19C(struct MapObject *, struct Sprite *); +u8 sub_805E5B4(struct MapObject *, struct Sprite *); +u8 sub_805E4EC(struct MapObject *, struct Sprite *); +u8 sub_805F228(struct MapObject *, struct Sprite *); +u8 sub_805E5B4(struct MapObject *, struct Sprite *); +u8 sub_805E4EC(struct MapObject *, struct Sprite *); +u8 sub_805F2B4(struct MapObject *, struct Sprite *); +u8 sub_805E5B4(struct MapObject *, struct Sprite *); +u8 mss_npc_reset_oampriv3_1_unk2_unk3(struct MapObject *, struct Sprite *); +u8 sub_805F364(struct MapObject *, struct Sprite *); +u8 sub_805F3C4(struct MapObject *, struct Sprite *); +u8 mss_npc_reset_oampriv3_1_unk2_unk3(struct MapObject *, struct Sprite *); +u8 mss_08062EA4(struct MapObject *, struct Sprite *); +u8 sub_805F3C4(struct MapObject *, struct Sprite *); +u8 sub_805FAF8(struct MapObject *, struct Sprite *); +u8 sub_805FB64(struct MapObject *, struct Sprite *); +u8 sub_805FB04(struct MapObject *, struct Sprite *); +u8 sub_805FBD4(struct MapObject *, struct Sprite *); +u8 sub_805FB04(struct MapObject *, struct Sprite *); +u8 sub_805FC44(struct MapObject *, struct Sprite *); +u8 sub_805FB04(struct MapObject *, struct Sprite *); +u8 sub_805FCB4(struct MapObject *, struct Sprite *); +u8 sub_805FCE8(struct MapObject *, struct Sprite *); +u8 sub_805FD08(struct MapObject *, struct Sprite *); + int state_to_direction(u8, u8, u8); #endif // GUARD_FIELD_MAP_OBJ_H -- cgit v1.2.3 From 1f9329ac277606ecc8a444e431ac2262d1ff9212 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sun, 18 Jun 2017 12:23:57 -0400 Subject: Decompile odd-length arrays and metatile behavior pointer tables --- include/field_map_obj.h | 4 ---- 1 file changed, 4 deletions(-) (limited to 'include/field_map_obj.h') diff --git a/include/field_map_obj.h b/include/field_map_obj.h index fd74b28e0..0a45b736b 100755 --- a/include/field_map_obj.h +++ b/include/field_map_obj.h @@ -66,10 +66,6 @@ u8 oac_hopping(struct MapObject *, struct Sprite *, u8, bool8 (*const)(u8)); u8 sub_805F3EC(struct MapObject *, struct Sprite *, u8, bool8 (*const)(u8)); u8 sub_805F3EC(struct MapObject *, struct Sprite *, u8, bool8 (*const)(u8)); -extern bool8 (*const gUnknown_08375684[4])(u8); -extern bool8 (*const gUnknown_08375694[4])(u8); - -extern const u8 gUnknown_0837567B[9]; extern const u8 gUnknown_0837574F[8]; extern const u8 gUnknown_08375757[4][4]; -- cgit v1.2.3 From c25bcbe3154301c22adbc2118d897b0b82e07c97 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sun, 18 Jun 2017 12:33:29 -0400 Subject: Disassemble last of the data that isn't pointer tables in field_map_obj --- include/field_map_obj.h | 7 ------- 1 file changed, 7 deletions(-) (limited to 'include/field_map_obj.h') diff --git a/include/field_map_obj.h b/include/field_map_obj.h index 0a45b736b..df115471c 100755 --- a/include/field_map_obj.h +++ b/include/field_map_obj.h @@ -66,13 +66,6 @@ u8 oac_hopping(struct MapObject *, struct Sprite *, u8, bool8 (*const)(u8)); u8 sub_805F3EC(struct MapObject *, struct Sprite *, u8, bool8 (*const)(u8)); u8 sub_805F3EC(struct MapObject *, struct Sprite *, u8, bool8 (*const)(u8)); -extern const u8 gUnknown_0837574F[8]; - -extern const u8 gUnknown_08375757[4][4]; -extern const u8 gUnknown_08375767[4][4]; - -extern const struct Coords16 gDirectionToVector[]; - extern struct CameraSomething gUnknown_03004880; extern u16 gUnknown_03004898; extern u16 gUnknown_0300489C; -- cgit v1.2.3 From 02af81bc95367d4557189fda0f1dccccf16c852a Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sun, 18 Jun 2017 12:55:34 -0400 Subject: Decompile field map object special anim subroutine pointer tables --- include/field_map_obj.h | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'include/field_map_obj.h') diff --git a/include/field_map_obj.h b/include/field_map_obj.h index df115471c..b74835423 100755 --- a/include/field_map_obj.h +++ b/include/field_map_obj.h @@ -312,5 +312,11 @@ u8 sub_805FCB4(struct MapObject *, struct Sprite *); u8 sub_805FCE8(struct MapObject *, struct Sprite *); u8 sub_805FD08(struct MapObject *, struct Sprite *); +u8 get_go_image_anim_num(u8); +u8 get_go_fast_image_anim_num(u8); +u8 get_go_fast_image_anim_num(u8); +u8 get_go_faster_image_anim_num(u8); +u8 sub_805FD78(u8); + int state_to_direction(u8, u8, u8); #endif // GUARD_FIELD_MAP_OBJ_H -- cgit v1.2.3 From 9e681335d610dfece9936047e293bfe45841a3f3 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Mon, 19 Jun 2017 22:17:50 -0400 Subject: SpawnBerryBlenderLinkPlayerSprites --- include/field_map_obj.h | 1 + 1 file changed, 1 insertion(+) mode change 100644 => 100755 include/field_map_obj.h (limited to 'include/field_map_obj.h') diff --git a/include/field_map_obj.h b/include/field_map_obj.h old mode 100644 new mode 100755 index e4999dee6..999c77401 --- a/include/field_map_obj.h +++ b/include/field_map_obj.h @@ -197,5 +197,6 @@ u8 sub_8060B38(u8); u8 sub_8060B64(u8); u8 GetOppositeDirection(u8); void sub_80634D0(struct MapObject *, struct Sprite *); +u8 SpawnSpecialFieldObjectParametrized(u8, u8, u8, s16, s16, u8); #endif // GUARD_FIELD_MAP_OBJ_H -- cgit v1.2.3 From 70300abee81a5b859533eff5537ebb7c926b4395 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Tue, 20 Jun 2017 22:19:40 -0400 Subject: camera dummy --- include/field_map_obj.h | 1 + 1 file changed, 1 insertion(+) (limited to 'include/field_map_obj.h') diff --git a/include/field_map_obj.h b/include/field_map_obj.h index 999c77401..5eaa15149 100755 --- a/include/field_map_obj.h +++ b/include/field_map_obj.h @@ -198,5 +198,6 @@ u8 sub_8060B64(u8); u8 GetOppositeDirection(u8); void sub_80634D0(struct MapObject *, struct Sprite *); u8 SpawnSpecialFieldObjectParametrized(u8, u8, u8, s16, s16, u8); +void CameraObjectSetFollowedObjectId(u8); #endif // GUARD_FIELD_MAP_OBJ_H -- cgit v1.2.3 From 4a1f57f17afcc8005863571119d5f5dc14183183 Mon Sep 17 00:00:00 2001 From: scnorton Date: Wed, 21 Jun 2017 09:55:06 -0400 Subject: Through sub_810F96C --- include/field_map_obj.h | 1 + 1 file changed, 1 insertion(+) (limited to 'include/field_map_obj.h') diff --git a/include/field_map_obj.h b/include/field_map_obj.h index 5eaa15149..2d62af202 100755 --- a/include/field_map_obj.h +++ b/include/field_map_obj.h @@ -199,5 +199,6 @@ u8 GetOppositeDirection(u8); void sub_80634D0(struct MapObject *, struct Sprite *); u8 SpawnSpecialFieldObjectParametrized(u8, u8, u8, s16, s16, u8); void CameraObjectSetFollowedObjectId(u8); +void sub_805ADDC(u8); #endif // GUARD_FIELD_MAP_OBJ_H -- cgit v1.2.3 From 6343bdcf312b785215f618358d84f46205018228 Mon Sep 17 00:00:00 2001 From: scnorton Date: Wed, 21 Jun 2017 09:56:37 -0400 Subject: Fix conflicting type declaration --- include/field_map_obj.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'include/field_map_obj.h') diff --git a/include/field_map_obj.h b/include/field_map_obj.h index 2d62af202..28be5a640 100755 --- a/include/field_map_obj.h +++ b/include/field_map_obj.h @@ -199,6 +199,6 @@ u8 GetOppositeDirection(u8); void sub_80634D0(struct MapObject *, struct Sprite *); u8 SpawnSpecialFieldObjectParametrized(u8, u8, u8, s16, s16, u8); void CameraObjectSetFollowedObjectId(u8); -void sub_805ADDC(u8); +u8 sub_805ADDC(u8); #endif // GUARD_FIELD_MAP_OBJ_H -- cgit v1.2.3