diff options
Diffstat (limited to 'src')
-rw-r--r--[-rwxr-xr-x] | src/daycare.c | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | src/field_effect.c | 2 | ||||
-rwxr-xr-x[-rw-r--r--] | src/field_map_obj.c | 563 | ||||
-rwxr-xr-x[-rw-r--r--] | src/field_map_obj_helpers.c | 0 |
4 files changed, 433 insertions, 132 deletions
diff --git a/src/daycare.c b/src/daycare.c index cded18207..cded18207 100755..100644 --- a/src/daycare.c +++ b/src/daycare.c diff --git a/src/field_effect.c b/src/field_effect.c index 9591bb6a0..b3aff6af9 100755..100644 --- a/src/field_effect.c +++ b/src/field_effect.c @@ -28,8 +28,6 @@ #define subsprite_table(ptr) {.subsprites = ptr, .subspriteCount = (sizeof ptr) / (sizeof(struct Subsprite))} -#define obj_frame_tiles(ptr) {.data = (u8 *)ptr, .size = sizeof ptr} - const u32 gSpriteImage_839DC14[] = INCBIN_U32("graphics/birch_speech/birch.4bpp"); const u16 gBirchPalette[16] = INCBIN_U16("graphics/birch_speech/birch.gbapal"); const u32 gSpriteImage_839E434[] = INCBIN_U32("graphics/misc/pokeball_glow.4bpp"); diff --git a/src/field_map_obj.c b/src/field_map_obj.c index ade72923d..436c3beb0 100644..100755 --- a/src/field_map_obj.c +++ b/src/field_map_obj.c @@ -15,33 +15,438 @@ #include "sprite.h" #include "metatile_behavior.h" #include "map_constants.h" +#include "map_object_constants.h" #include "trainer_see.h" -extern const struct SpriteTemplate *const gFieldEffectObjectTemplatePointers[36]; +// rodata -struct PairedPalettes -{ - u16 tag; - u16 *data; +const u8 gUnknown_0830FD14[] = {1, 1, 6, 7, 8, 9, 6, 7, 8, 9, 11, 11, 0, 0, 0, 0}; + +void ObjectCB_CameraObject(struct Sprite *sprite); +const struct SpriteTemplate gSpriteTemplate_830FD24 = {0, 0xFFFF, &gDummyOamData, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, ObjectCB_CameraObject}; + +void CameraObject_0(struct Sprite *); +void CameraObject_1(struct Sprite *); +void CameraObject_2(struct Sprite *); +void (*const gCameraObjectFuncs[])(struct Sprite *) = { + CameraObject_0, + CameraObject_1, + CameraObject_2, +}; + +#include "data/field_map_obj/map_object_graphics.h" +#include "data/field_map_obj/field_effect_object_graphics.h" + +void (*const gUnknown_0836DA88[])(struct Sprite *) = +{ + sub_805C884, + sub_805CDE8, + sub_805C8AC, + sub_805CF28, + sub_805CF28, + sub_805D0AC, + sub_805D0AC, + sub_805D230, + sub_805D230, + sub_805D230, + sub_805D230, + sub_80587B4, + FieldObjectCB_BerryTree, + sub_805D4F4, + sub_805D634, + sub_805D774, + sub_805D8B4, + sub_805D9F4, + sub_805DB34, + sub_805DC74, + sub_805DDB4, + sub_805DEF4, + sub_805E034, + sub_805E174, + sub_805E278, + sub_805E37C, + sub_805E37C, + sub_805E37C, + sub_805E37C, + sub_805E5DC, + sub_805E668, + sub_805E6F4, + sub_805E780, + sub_805E80C, + sub_805E898, + sub_805E924, + sub_805E9B0, + sub_805EA3C, + sub_805EAC8, + sub_805EB54, + sub_805EBE0, + sub_805EC6C, + sub_805ECF8, + sub_805ED84, + sub_805EE10, + sub_805EE9C, + sub_805EF28, + sub_805EFB4, + sub_805F040, + sub_805F0CC, + sub_805F158, + sub_805F1E4, + sub_805F270, + sub_805F2FC, + sub_805F2FC, + sub_805F2FC, + sub_805F2FC, + FieldObjectCB_TreeDisguise, + FieldObjectCB_MountainDisguise, + sub_805F8E0, + sub_805F8E0, + sub_805F8E0, + sub_805F8E0, + FieldObjectCB_Hidden1, + sub_805FB20, + sub_805FB20, + sub_805FB20, + sub_805FB20, + sub_805FB90, + sub_805FB90, + sub_805FB90, + sub_805FB90, + sub_805FC00, + sub_805FC00, + sub_805FC00, + sub_805FC00, + sub_805FC70 +}; + +const u8 gUnknown_0836DBBC[] = {0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; +const u8 gUnknown_0836DC09[] = {DIR_SOUTH, DIR_SOUTH, DIR_SOUTH, DIR_NORTH, DIR_SOUTH, DIR_WEST, DIR_EAST, DIR_NORTH, DIR_SOUTH, DIR_WEST, DIR_EAST, DIR_SOUTH, DIR_SOUTH, DIR_SOUTH, DIR_WEST, DIR_NORTH, DIR_NORTH, DIR_SOUTH, DIR_SOUTH, DIR_SOUTH, DIR_SOUTH, DIR_NORTH, DIR_SOUTH, DIR_SOUTH, DIR_SOUTH, DIR_NORTH, DIR_SOUTH, DIR_WEST, DIR_EAST, DIR_NORTH, DIR_EAST, DIR_SOUTH, DIR_WEST, DIR_NORTH, DIR_WEST, DIR_SOUTH, DIR_EAST, DIR_WEST, DIR_NORTH, DIR_EAST, DIR_SOUTH, DIR_EAST, DIR_NORTH, DIR_WEST, DIR_SOUTH, DIR_NORTH, DIR_SOUTH, DIR_WEST, DIR_EAST, DIR_NORTH, DIR_SOUTH, DIR_WEST, DIR_EAST, DIR_NORTH, DIR_SOUTH, DIR_WEST, DIR_EAST, DIR_SOUTH, DIR_SOUTH, DIR_NORTH, DIR_SOUTH, DIR_WEST, DIR_EAST, DIR_SOUTH, DIR_SOUTH, DIR_NORTH, DIR_WEST, DIR_EAST, DIR_SOUTH, DIR_NORTH, DIR_WEST, DIR_EAST, DIR_SOUTH, DIR_NORTH, DIR_WEST, DIR_EAST, DIR_SOUTH}; + +#include "data/field_map_obj/map_object_graphics_info_pointers.h" +#include "data/field_map_obj/field_effect_object_template_pointers.h" +#include "data/field_map_obj/map_object_pic_tables.h" +#include "data/field_map_obj/map_object_anims.h" +#include "data/field_map_obj/base_oam.h" +#include "data/field_map_obj/map_object_subsprites.h" +#include "data/field_map_obj/map_object_graphics_info.h" + +const struct SpritePalette gUnknown_0837377C[] = { + {gMapObjectPalette0, 0x1103}, + {gMapObjectPalette1, 0x1104}, + {gMapObjectPalette2, 0x1105}, + {gMapObjectPalette3, 0x1106}, + {gMapObjectPalette4, 0x1107}, + {gMapObjectPalette5, 0x1108}, + {gMapObjectPalette6, 0x1109}, + {gMapObjectPalette7, 0x110A}, + {gMapObjectPalette8, 0x1100}, + {gMapObjectPalette9, 0x1101}, + {gMapObjectPalette10, 0x1102}, + {gMapObjectPalette11, 0x1115}, + {gMapObjectPalette12, 0x110B}, + {gMapObjectPalette13, 0x110C}, + {gMapObjectPalette14, 0x110D}, + {gMapObjectPalette15, 0x110E}, + {gMapObjectPalette16, 0x110F}, + {gMapObjectPalette17, 0x1110}, + {gMapObjectPalette18, 0x1111}, + {gMapObjectPalette19, 0x1112}, + {gMapObjectPalette20, 0x1113}, + {gMapObjectPalette21, 0x1114}, + {gMapObjectPalette22, 0x1116}, + {gMapObjectPalette23, 0x1117}, + {gMapObjectPalette24, 0x1118}, + {gMapObjectPalette25, 0x1119}, + {gMapObjectPalette26, 0x111A}, + {NULL, 0x0000} +}; + +const u16 Palettes_837385C[] = { + 0x1101, + 0x1101, + 0x1101, + 0x1101 +}; + +const u16 Palettes_8373864[] = { + 0x1111, + 0x1111, + 0x1111, + 0x1111 +}; + +const u16 Palettes_837386C[] = { + 0x1115, + 0x1115, + 0x1115, + 0x1115 +}; + +const struct PairedPalettes gUnknown_08373874[] = { + {0x1100, Palettes_837385C}, + {0x1110, Palettes_837385C}, + {0x1115, Palettes_837386C}, + {0x11FF, NULL} +}; + +const u16 Palettes_8373894[] = { + 0x110C, + 0x110C, + 0x110C, + 0x110C +}; + +const u16 Palettes_837389C[] = { + 0x110D, + 0x110D, + 0x110D, + 0x110D +}; + +const u16 Palettes_83738A4[] = { + 0x110E, + 0x110E, + 0x110E, + 0x110E +}; + +const u16 Palettes_83738AC[] = { + 0x1112, + 0x1112, + 0x1112, + 0x1112 +}; + +const u16 Palettes_83738B4[] = { + 0x1113, + 0x1113, + 0x1113, + 0x1113 +}; + +const u16 Palettes_83738BC[] = { + 0x1114, + 0x1114, + 0x1114, + 0x1114 +}; + +const u16 Palettes_83738C4[] = { + 0x111A, + 0x111A, + 0x111A, + 0x111A +}; + +const u16 Palettes_83738CC[] = { + 0x1117, + 0x1117, + 0x1117, + 0x1117 +}; + +const u16 Palettes_83738D4[] = { + 0x1119, + 0x1119, + 0x1119, + 0x1119 +}; + +const u16 Palettes_83738DC[] = { + 0x1109, + 0x1109, + 0x1109, + 0x1109 +}; + +const struct PairedPalettes gUnknown_083738E4[] = { + {0x1100, Palettes_837385C}, + {0x1110, Palettes_837385C}, + {0x110B, Palettes_8373894}, + {0x110D, Palettes_837389C}, + {0x110E, Palettes_83738A4}, + {0x1112, Palettes_83738AC}, + {0x1113, Palettes_83738B4}, + {0x1114, Palettes_83738BC}, + {0x1116, Palettes_83738CC}, + {0x1118, Palettes_83738D4}, + {0x1105, Palettes_83738DC}, + {0x111A, Palettes_83738C4}, + {0x11FF, NULL} +}; + +const u16 Unknown_837394C[] = { + 0x1100, + 0x1101, + 0x1103, + 0x1104, + 0x1105, + 0x1106, + 0x1107, + 0x1108, + 0x1109, + 0x110A +}; + +const u16 Unknown_8373960[] = { + 0x1100, + 0x1101, + 0x1103, + 0x1104, + 0x1105, + 0x1106, + 0x1107, + 0x1108, + 0x1109, + 0x110A +}; + +const u16 Unknown_8373974[] = { + 0x1100, + 0x1101, + 0x1103, + 0x1104, + 0x1105, + 0x1106, + 0x1107, + 0x1108, + 0x1109, + 0x110A +}; + +const u16 Unknown_8373988[] = { + 0x1100, + 0x1101, + 0x1103, + 0x1104, + 0x1105, + 0x1106, + 0x1107, + 0x1108, + 0x1109, + 0x110A +}; + +const u16 *const gUnknown_0837399C[] = { + Unknown_837394C, + Unknown_8373960, + Unknown_8373974, + Unknown_8373988 +}; + +#include "data/field_map_obj/berry_tree_graphics_tables.h" +#include "data/field_map_obj/field_effect_objects.h" + +const s16 gUnknown_0837520C[] = {0x20, 0x40, 0x60, 0x80}; +const s16 gUnknown_08375204[] = {0x20, 0x40, 0x80, 0xc0}; +const s16 gUnknown_0837521C[] = {0x20, 0x30, 0x40, 0x50}; + +#include "data/field_map_obj/callback_subroutine_pointers.h" + +const u8 gUnknown_083755F4[] = {0x00, 0x00, 0x01, 0x02, 0x03, 0x00, 0x00, 0x01, 0x01}; +const u8 gUnknown_083755FD[] = {0x04, 0x04, 0x05, 0x06, 0x07, 0x04, 0x04, 0x05, 0x05}; +const u8 gUnknown_08375606[] = {0x08, 0x08, 0x09, 0x0A, 0x0B, 0x08, 0x08, 0x09, 0x09}; +const u8 gUnknown_0837560F[] = {0x0C, 0x0C, 0x0D, 0x0E, 0x0F, 0x0C, 0x0C, 0x0D, 0x0D}; +const u8 gUnknown_08375618[] = {0x10, 0x10, 0x11, 0x12, 0x13, 0x10, 0x10, 0x11, 0x11}; +const u8 gUnknown_08375621[] = {0x14, 0x14, 0x15, 0x16, 0x17, 0x14, 0x14, 0x15, 0x15}; +const u8 gUnknown_0837562A[] = {0x14, 0x14, 0x15, 0x16, 0x17, 0x14, 0x14, 0x15, 0x15}; +const u8 gUnknown_08375633[] = {0x18, 0x18, 0x19, 0x1A, 0x1B, 0x18, 0x18, 0x19, 0x19}; +const u8 gUnknown_0837563C[] = {0x1C, 0x1C, 0x1D, 0x1E, 0x1F, 0x1C, 0x1C, 0x1D, 0x1D}; +const u8 gUnknown_08375645[] = {0x20, 0x20, 0x21, 0x22, 0x23, 0x20, 0x20, 0x21, 0x21}; +const u8 gUnknown_0837564E[] = {0x24, 0x24, 0x25, 0x26, 0x27, 0x24, 0x24, 0x25, 0x25}; +const u8 gUnknown_08375657[] = {0x00, 0x00, 0x01, 0x02, 0x03, 0x00, 0x00, 0x01, 0x01}; +const u8 gUnknown_08375660[] = {0x04, 0x04, 0x05, 0x06, 0x07, 0x04, 0x04, 0x05, 0x05}; +const u8 gUnknown_08375669[] = {0x08, 0x08, 0x09, 0x0A, 0x0B, 0x08, 0x08, 0x09, 0x09}; +const u8 gUnknown_08375672[] = {0x14, 0x14, 0x15, 0x16, 0x17, 0x14, 0x14, 0x15, 0x15}; +const u8 gUnknown_0837567B[] = {0x08, 0x08, 0x07, 0x09, 0x0A, 0x08, 0x08, 0x07, 0x07}; + +bool8 (*const gUnknown_08375684[])(u8) = { + MetatileBehavior_IsSouthBlocked, + MetatileBehavior_IsNorthBlocked, + MetatileBehavior_IsWestBlocked, + MetatileBehavior_IsEastBlocked +}; + +bool8 (*const gUnknown_08375694[])(u8) = { + MetatileBehavior_IsNorthBlocked, + MetatileBehavior_IsSouthBlocked, + MetatileBehavior_IsEastBlocked, + MetatileBehavior_IsWestBlocked +}; + +const struct Coords16 gDirectionToVector[] = { + { 0, 0}, + { 0, 1}, + { 0, -1}, + {-1, 0}, + { 1, 0}, + {-1, 1}, + { 1, 1}, + {-1, -1}, + { 1, -1} +}; + +const u8 gUnknown_083756C8[] = {0x00, 0x00, 0x01, 0x02, 0x03}; +const u8 gUnknown_083756CD[] = {0x04, 0x04, 0x05, 0x06, 0x07}; +const u8 gUnknown_083756D2[] = {0x08, 0x08, 0x09, 0x0A, 0x0B}; +const u8 gUnknown_083756D7[] = {0x15, 0x15, 0x16, 0x17, 0x18}; +const u8 gUnknown_083756DC[] = {0x29, 0x29, 0x2A, 0x2B, 0x2C}; +const u8 gUnknown_083756E1[] = {0x2D, 0x2D, 0x2E, 0x2F, 0x30}; +const u8 gUnknown_083756E6[] = {0x31, 0x31, 0x32, 0x33, 0x34}; +const u8 gUnknown_083756EB[] = {0x35, 0x35, 0x36, 0x37, 0x38}; +const u8 gUnknown_083756F0[] = {0x0C, 0x0C, 0x0D, 0x0E, 0x0F}; +const u8 gUnknown_083756F5[] = {0x46, 0x46, 0x47, 0x48, 0x49}; +const u8 gUnknown_083756FA[] = {0x4B, 0x4B, 0x4A, 0x4D, 0x4C}; +const u8 gUnknown_083756FF[] = {0x42, 0x42, 0x43, 0x44, 0x45}; +const u8 gUnknown_08375704[] = {0x3A, 0x3A, 0x3B, 0x3C, 0x3D}; +const u8 gUnknown_08375709[] = {0x19, 0x19, 0x1A, 0x1B, 0x1C}; +const u8 gUnknown_0837570E[] = {0x1D, 0x1D, 0x1E, 0x1F, 0x20}; +const u8 gUnknown_08375713[] = {0x21, 0x21, 0x22, 0x23, 0x24}; +const u8 gUnknown_08375718[] = {0x25, 0x25, 0x26, 0x27, 0x28}; +const u8 gUnknown_0837571D[] = {0x62, 0x62, 0x63, 0x64, 0x65}; +const u8 gUnknown_08375722[] = {0x66, 0x66, 0x67, 0x68, 0x69}; +const u8 gUnknown_08375727[] = {0x6A, 0x6A, 0x6B, 0x6C, 0x6D}; +const u8 gUnknown_0837572C[] = {0x6E, 0x6E, 0x6F, 0x70, 0x71}; +const u8 gUnknown_08375731[] = {0x72, 0x72, 0x73, 0x74, 0x75}; +const u8 gUnknown_08375736[] = {0x76, 0x76, 0x77, 0x78, 0x79}; +const u8 gUnknown_0837573B[] = {0x7A, 0x7A, 0x7B, 0x7C, 0x7D}; +const u8 gUnknown_08375740[] = {0x7E, 0x7E, 0x7F, 0x80, 0x81}; +const u8 gUnknown_08375745[] = {0x82, 0x82, 0x83, 0x84, 0x85}; +const u8 gUnknown_0837574A[] = {0x86, 0x86, 0x87, 0x88, 0x89}; + +const u8 gUnknown_0837574F[] = {2, 1, 4, 3, 8, 7, 6, 5}; + +const u8 gUnknown_08375757[][4] = { + {2, 1, 4, 3}, + {1, 2, 3, 4}, + {3, 4, 2, 1}, + {4, 3, 1, 2} }; +const u8 gUnknown_08375767[][4] = { + {2, 1, 4, 3}, + {1, 2, 3, 4}, + {4, 3, 1, 2}, + {3, 4, 2, 1} +}; + +#include "data/field_map_obj/anim_func_ptrs.h" + +// text + +extern void strange_npc_table_clear(void); +extern void ClearPlayerAvatarInfo(void); +extern void npc_load_two_palettes__no_record(u16, u8); +extern void npc_load_two_palettes__and_record(u16, u8); +extern void sub_8060388(s16, s16, s16 *, s16 *); +void sub_80634D0(struct MapObject *, struct Sprite *); +extern void pal_patch_for_npc(u16, u16); +extern void CameraObjectReset1(void); + extern struct LinkPlayerMapObject gLinkPlayerMapObjects[]; extern u8 gReservedSpritePaletteCount; extern struct Camera gUnknown_0202E844; extern u8 gUnknown_030005A4; extern u16 gUnknown_030005A6; -extern const u8 gUnknown_0836DBBC[]; -extern const u8 gUnknown_0836DC09[]; -extern void (*const gUnknown_0836DA88[])(struct Sprite *); -extern const u8 *const gBerryTreeGraphicsIdTablePointers[]; -extern const struct SpriteFrameImage *const gBerryTreePicTablePointers[]; -extern const u8 *const gBerryTreePaletteSlotTablePointers[]; -extern const struct MapObjectGraphicsInfo *const gMapObjectGraphicsInfoPointers[]; -extern const struct SpritePalette gUnknown_0837377C[]; -extern const struct PairedPalettes gUnknown_08373874[]; -extern const struct PairedPalettes gUnknown_083738E4[]; -extern const struct SpriteTemplate gSpriteTemplate_830FD24; -extern const u16 *const gUnknown_0837399C[]; void npc_clear_ids_and_state(struct MapObject *mapObj) { @@ -491,7 +896,7 @@ u8 sub_805AFCC(struct MapObjectTemplate *mapObjTemplate, struct SpriteTemplate * u8 SpawnFieldObject(struct MapObjectTemplate *mapObjTemplate, u8 b, u8 c, s16 d, s16 e) { struct SpriteTemplate spriteTemplate; - struct SubspriteTable *subspriteTables = NULL; + const struct SubspriteTable *subspriteTables = NULL; struct SpriteFrameImage spriteFrameImage; const struct MapObjectGraphicsInfo *gfxInfo; u8 mapObjectId; @@ -551,7 +956,7 @@ u8 show_sprite(u8 a, u8 b, u8 c) return SpawnFieldObject(r5, b, c, x, y); } -void MakeObjectTemplateFromFieldObjectGraphicsInfo(u16 graphicsId, void (*callback)(struct Sprite *), struct SpriteTemplate *sprTemplate, struct SubspriteTable **subspriteTables) +void MakeObjectTemplateFromFieldObjectGraphicsInfo(u16 graphicsId, void (*callback)(struct Sprite *), struct SpriteTemplate *sprTemplate, const struct SubspriteTable **subspriteTables) { const struct MapObjectGraphicsInfo *gfxInfo = GetFieldObjectGraphicsInfo(graphicsId); @@ -565,12 +970,12 @@ void MakeObjectTemplateFromFieldObjectGraphicsInfo(u16 graphicsId, void (*callba *subspriteTables = gfxInfo->subspriteTables; } -void MakeObjectTemplateFromFieldObjectGraphicsInfoWithCallbackIndex(u16 graphicsId, u16 callbackIndex, struct SpriteTemplate *sprTemplate, struct SubspriteTable **subspriteTables) +void MakeObjectTemplateFromFieldObjectGraphicsInfoWithCallbackIndex(u16 graphicsId, u16 callbackIndex, struct SpriteTemplate *sprTemplate, const struct SubspriteTable **subspriteTables) { MakeObjectTemplateFromFieldObjectGraphicsInfo(graphicsId, gUnknown_0836DA88[callbackIndex], sprTemplate, subspriteTables); } -void MakeObjectTemplateFromFieldObjectTemplate(struct MapObjectTemplate *mapObjTemplate, struct SpriteTemplate *sprTemplate, struct SubspriteTable **subspriteTables) +void MakeObjectTemplateFromFieldObjectTemplate(struct MapObjectTemplate *mapObjTemplate, struct SpriteTemplate *sprTemplate, const struct SubspriteTable **subspriteTables) { MakeObjectTemplateFromFieldObjectGraphicsInfoWithCallbackIndex(mapObjTemplate->graphicsId, mapObjTemplate->movementType, sprTemplate, subspriteTables); } @@ -578,7 +983,7 @@ void MakeObjectTemplateFromFieldObjectTemplate(struct MapObjectTemplate *mapObjT u8 AddPseudoFieldObject(u16 graphicsId, void (*callback)(struct Sprite *), s16 c, s16 d, u8 subpriority) { struct SpriteTemplate spriteTemplate; - struct SubspriteTable *subspriteTables; + const struct SubspriteTable *subspriteTables; u8 spriteId; MakeObjectTemplateFromFieldObjectGraphicsInfo(graphicsId, callback, &spriteTemplate, &subspriteTables); @@ -601,7 +1006,7 @@ u8 sub_805B410(u8 a, u8 b, s16 c, s16 d, u8 e, u8 f) { const struct MapObjectGraphicsInfo *gfxInfo; struct SpriteTemplate spriteTemplate; - struct SubspriteTable *subspriteTables; + const struct SubspriteTable *subspriteTables; u8 spriteId; gfxInfo = GetFieldObjectGraphicsInfo(a); @@ -729,7 +1134,7 @@ void sub_805B75C(u8 a, s16 b, s16 c) { struct SpriteTemplate sp0; struct SpriteFrameImage sp18; - struct SubspriteTable *subspriteTables; + const struct SubspriteTable *subspriteTables; const struct MapObjectGraphicsInfo *gfxInfo; struct MapObject *mapObject; u8 spriteId; @@ -1027,8 +1432,6 @@ u8 FindFieldObjectPaletteIndexByTag(u16 tag) return 0xFF; } -const u8 gUnknown_0830FD14[] = {1, 1, 6, 7, 8, 9, 6, 7, 8, 9, 11, 11, 0, 0, 0, 0}; - void npc_load_two_palettes__no_record(u16 a, u8 b) { u8 i; @@ -1177,18 +1580,6 @@ void UpdateFieldObjectsForCameraUpdate(s16 x, s16 y) RemoveFieldObjectsOutsideView(); } -void ObjectCB_CameraObject(struct Sprite *sprite); -const struct SpriteTemplate gSpriteTemplate_830FD24 = -{ - .tileTag = 0, - .paletteTag = 0xFFFF, - .oam = &gDummyOamData, - .anims = gDummySpriteAnimTable, - .images = NULL, - .affineAnims = gDummySpriteAffineAnimTable, - .callback = ObjectCB_CameraObject, -}; - u8 AddCameraObject(u8 a) { u8 spriteId = CreateSprite(&gSpriteTemplate_830FD24, 0, 0, 4); @@ -1198,19 +1589,10 @@ u8 AddCameraObject(u8 a) return spriteId; } -void CameraObject_0(struct Sprite *); -void CameraObject_1(struct Sprite *); -void CameraObject_2(struct Sprite *); - void ObjectCB_CameraObject(struct Sprite *sprite) { - void (*const cameraObjectFuncs[])(struct Sprite *) = - { - CameraObject_0, - CameraObject_1, - CameraObject_2, - }; - + void (*cameraObjectFuncs[3])(struct Sprite *); + memcpy(cameraObjectFuncs, gCameraObjectFuncs, sizeof gCameraObjectFuncs); cameraObjectFuncs[sprite->data1](sprite); } @@ -1508,8 +1890,6 @@ u8 sub_805C904(struct MapObject *mapObject, struct Sprite *sprite) } extern u8 FieldObjectExecRegularAnim(struct MapObject *, struct Sprite *); -extern const s16 gUnknown_0837520C[]; -extern const s16 gUnknown_0837521C[]; extern void sub_8064820(struct Sprite *, s16); u8 sub_805C930(struct MapObject *mapObject, struct Sprite *sprite) @@ -2026,7 +2406,6 @@ u8 sub_805D2C0(struct MapObject *mapObject, struct Sprite *sprite) } u8 sub_805D314(struct MapObject *mapObject, struct Sprite *sprite); -extern u8 (*const gUnknown_083752D0[])(struct MapObject *mapObject, struct Sprite *sprite); void FieldObjectCB_BerryTree(struct Sprite *sprite) { @@ -3174,8 +3553,6 @@ u8 mss_npc_reset_oampriv3_1_unk2_unk3(struct MapObject *mapObject, struct Sprite return 1; } -extern u8 (*const gUnknown_08375594[])(struct MapObject *, struct Sprite *, u8, bool8 (*const)(u8)); - u8 sub_805F364(struct MapObject *mapObject, struct Sprite *sprite) { if (gMapObjects[gPlayerAvatar.mapObjectId].mapobj_unk_1C == 0xFF || gPlayerAvatar.running1 == 2) @@ -3280,7 +3657,6 @@ void FieldObjectCB_MountainDisguise(struct Sprite *sprite) } u8 sub_805FAD8(struct MapObject *mapObject, struct Sprite *sprite); -extern u8 (*const gUnknown_083755CC[])(struct MapObject *, struct Sprite *); void FieldObjectCB_Hidden1(struct Sprite *sprite) { @@ -3382,22 +3758,6 @@ void npc_reset(struct MapObject *mapObject, struct Sprite *sprite) sprite->data1 = 0; } -extern const u8 gUnknown_083755F4[9]; -extern const u8 gUnknown_083755FD[9]; -extern const u8 gUnknown_08375606[9]; -extern const u8 gUnknown_0837560F[9]; -extern const u8 gUnknown_08375618[9]; -extern const u8 gUnknown_08375621[9]; -extern const u8 gUnknown_0837562A[9]; -extern const u8 gUnknown_08375633[9]; -extern const u8 gUnknown_0837563C[9]; -extern const u8 gUnknown_08375645[9]; -extern const u8 gUnknown_0837564E[9]; -extern const u8 gUnknown_08375657[9]; -extern const u8 gUnknown_08375660[9]; -extern const u8 gUnknown_08375669[9]; -extern const u8 gUnknown_08375672[9]; - u8 FieldObjectDirectionToImageAnimId(u8 direction) { return gUnknown_083755F4[direction]; @@ -3888,8 +4248,6 @@ void meta_step(struct MapObject *mapObject, struct Sprite *sprite, u8 (*callback } -extern const u8 gUnknown_083756C8[5]; - u8 GetFaceDirectionAnimId(u8 index) { u8 directions[5]; @@ -3901,8 +4259,6 @@ u8 GetFaceDirectionAnimId(u8 index) return directions[index]; } -extern const u8 gUnknown_083756CD[5]; - u8 GetSimpleGoAnimId(u8 index) { u8 directions[5]; @@ -3914,8 +4270,6 @@ u8 GetSimpleGoAnimId(u8 index) return directions[index]; } -extern const u8 gUnknown_083756D2[5]; - u8 GetGoSpeed0AnimId(u8 index) { u8 directions[5]; @@ -3927,8 +4281,6 @@ u8 GetGoSpeed0AnimId(u8 index) return directions[index]; } -extern const u8 gUnknown_083756D7[5]; - u8 sub_8060744(u8 index) { u8 directions[5]; @@ -3940,8 +4292,6 @@ u8 sub_8060744(u8 index) return directions[index]; } -extern const u8 gUnknown_083756DC[5]; - u8 d2s_08064034(u8 index) { u8 directions[5]; @@ -3953,8 +4303,6 @@ u8 d2s_08064034(u8 index) return directions[index]; } -extern const u8 gUnknown_083756E1[5]; - u8 sub_806079C(u8 index) { u8 directions[5]; @@ -3966,8 +4314,6 @@ u8 sub_806079C(u8 index) return directions[index]; } -extern const u8 gUnknown_083756E6[5]; - u8 sub_80607C8(u8 index) { u8 directions[5]; @@ -3979,8 +4325,6 @@ u8 sub_80607C8(u8 index) return directions[index]; } -extern const u8 gUnknown_083756EB[5]; - u8 sub_80607F4(u8 index) { u8 directions[5]; @@ -3992,8 +4336,6 @@ u8 sub_80607F4(u8 index) return directions[index]; } -extern const u8 gUnknown_083756F0[5]; - u8 GetJumpLedgeAnimId(u8 index) { u8 directions[5]; @@ -4005,8 +4347,6 @@ u8 GetJumpLedgeAnimId(u8 index) return directions[index]; } -extern const u8 gUnknown_083756F5[5]; - u8 sub_806084C(u8 index) { u8 directions[5]; @@ -4018,8 +4358,6 @@ u8 sub_806084C(u8 index) return directions[index]; } -extern const u8 gUnknown_083756FA[5]; - u8 sub_8060878(u8 index) { u8 directions[5]; @@ -4031,8 +4369,6 @@ u8 sub_8060878(u8 index) return directions[index]; } -extern const u8 gUnknown_083756FF[5]; - u8 sub_80608A4(u8 index) { u8 directions[5]; @@ -4044,8 +4380,6 @@ u8 sub_80608A4(u8 index) return directions[index]; } -extern const u8 gUnknown_08375704[5]; - u8 sub_80608D0(u8 index) { u8 directions[5]; @@ -4057,8 +4391,6 @@ u8 sub_80608D0(u8 index) return directions[index]; } -extern const u8 gUnknown_08375709[5]; - u8 GetStepInPlaceDelay32AnimId(u8 index) { u8 directions[5]; @@ -4070,8 +4402,6 @@ u8 GetStepInPlaceDelay32AnimId(u8 index) return directions[index]; } -extern const u8 gUnknown_0837570E[5]; - u8 GetStepInPlaceDelay16AnimId(u8 index) { u8 directions[5]; @@ -4083,8 +4413,6 @@ u8 GetStepInPlaceDelay16AnimId(u8 index) return directions[index]; } -extern const u8 gUnknown_08375713[5]; - u8 GetStepInPlaceDelay8AnimId(u8 index) { u8 directions[5]; @@ -4096,8 +4424,6 @@ u8 GetStepInPlaceDelay8AnimId(u8 index) return directions[index]; } -extern const u8 gUnknown_08375718[5]; - u8 GetStepInPlaceDelay4AnimId(u8 index) { u8 directions[5]; @@ -4114,8 +4440,6 @@ u8 FieldObjectFaceOppositeDirection(struct MapObject *mapObject, u8 direction) return FieldObjectSetSpecialAnim(mapObject, GetFaceDirectionAnimId(GetOppositeDirection(direction))); } -extern const u8 gUnknown_0837571D[5]; - u8 sub_80609D8(u8 index) { u8 directions[5]; @@ -4127,8 +4451,6 @@ u8 sub_80609D8(u8 index) return directions[index]; } -extern const u8 gUnknown_08375722[5]; - u8 sub_8060A04(u8 index) { u8 directions[5]; @@ -4140,8 +4462,6 @@ u8 sub_8060A04(u8 index) return directions[index]; } -extern const u8 gUnknown_08375727[5]; - u8 sub_8060A30(u8 index) { u8 directions[5]; @@ -4153,8 +4473,6 @@ u8 sub_8060A30(u8 index) return directions[index]; } -extern const u8 gUnknown_0837572C[5]; - u8 sub_8060A5C(u8 index) { u8 directions[5]; @@ -4166,8 +4484,6 @@ u8 sub_8060A5C(u8 index) return directions[index]; } -extern const u8 gUnknown_08375731[5]; - u8 sub_8060A88(u8 index) { u8 directions[5]; @@ -4179,8 +4495,6 @@ u8 sub_8060A88(u8 index) return directions[index]; } -extern const u8 gUnknown_08375736[5]; - u8 sub_8060AB4(u8 index) { u8 directions[5]; @@ -4192,8 +4506,6 @@ u8 sub_8060AB4(u8 index) return directions[index]; } -extern const u8 gUnknown_0837573B[5]; - u8 sub_8060AE0(u8 index) { u8 directions[5]; @@ -4205,8 +4517,6 @@ u8 sub_8060AE0(u8 index) return directions[index]; } -extern const u8 gUnknown_08375740[5]; - u8 sub_8060B0C(u8 index) { u8 directions[5]; @@ -4218,8 +4528,6 @@ u8 sub_8060B0C(u8 index) return directions[index]; } -extern const u8 gUnknown_08375745[5]; - u8 sub_8060B38(u8 index) { u8 directions[5]; @@ -4231,8 +4539,6 @@ u8 sub_8060B38(u8 index) return directions[index]; } -extern const u8 gUnknown_0837574A[5]; - u8 sub_8060B64(u8 index) { u8 directions[5]; @@ -4392,8 +4698,8 @@ extern u8 (*const gUnknown_083759C0[5])(u8); void do_go_anim(struct MapObject *mapObject, struct Sprite *sprite, u8 direction, u8 a3) { - u8 (*functions[5])(u8); - memcpy(functions, gUnknown_083759C0, sizeof(gUnknown_083759C0)); + u8 (*const functions[5])(u8); + memcpy((void *)functions, gUnknown_083759C0, sizeof(gUnknown_083759C0)); sub_8060D20(mapObject, sprite, direction, a3); sub_805FE28(mapObject, sprite, functions[a3](mapObject->mapobj_unk_18)); } @@ -4595,9 +4901,6 @@ bool8 sub_806111C(struct MapObject *mapObject, struct Sprite *sprite) return FALSE; } -extern const s16 gUnknown_08375A34[3]; -extern const s16 gUnknown_08375A3A[3]; - void sub_806113C(struct MapObject *mapObject, struct Sprite *sprite, u8 direction, u8 a4, u8 a5) { s16 vSPp4[3]; diff --git a/src/field_map_obj_helpers.c b/src/field_map_obj_helpers.c index 17584c96a..17584c96a 100644..100755 --- a/src/field_map_obj_helpers.c +++ b/src/field_map_obj_helpers.c |