pokeemerald/include/field_map_obj.h
PikalaxALT c042e5148b Decoration + decoration_inventory (#89)
* SetDecorationInventoriesPointers

* ClearDecorationInventories

* CheckHasDecoration

* DecorationAdd

* DecorationCheckSpace

* DecorationRemove

* sub_8161A38

* CountDecorations; Funcion renaming

* Disassemble decoration data structs, tilemaps, and descriptions

* sub_8126968

* sub_81269D4

* through sub_8126A88

* through sub_8126B2C

* sub_8126B80

* sub_8126C08

* sub_8126C48

* sub_8126CA4

* sub_8126D10

* sub_8126E44

* sub_8126E8C

* sub_8126F68

* sub_8127058

* sub_8127088

* sub_81270E8

* through sub_8127208

* through sub_8127268

* sub_8127284

* through sub_81272F8

* sub_8127330

* through sub_8127480

* sub_81274A0

* sub_8127500; makefile now tells scaninc to scan headers

* Actual real fix to mapfile being in build/emerald instead of wd

* through sub_812759C

* through sub_812764C

* through sub_8127744

* through sub_81277BC

* sub_81277E8

* sub_8127814

* through sub_81279C4

* through sub_8127ACC

* sub_8127B04

* sub_8127B54

* sub_8127B90

* sub_8127D38

* sub_8127E18

* sub_8127F68

* sub_8128060

* ConfigureCameraObjectForPlacingDecoration

* SetUpPlacingDecorationPlayerAvatar

* sub_812826C

* through sub_8128414

* through sub_81284F4

* sub_812853C

* sub_8128950

* through sub_8128AAC

* through sub_8128BBC

* c1_overworld_prev_quest

* sub_8128C64

* sub_8128CD4

* sub_8128D10

* sub_8128DB4

* through sub_8128E18

* through sub_8129068

* sub_8129088

* through sub_81291E8

* sub_812925C

* sub_81292D0

* sub_81292E8

* gpu_pal_decompress_alloc_tag_and_upload

* AddDecorationIconObjectFromIconTable

* GetDecorationIconPicOrPalette

* AddDecorationIconObjectFromFieldObject

* AddDecorationIconObject

* through sub_8129708

* sub_81297F8

* sub_81298EC

* SetUpPuttingAwayDecorationPlayerAvatar

* sub_8129ABC

* sub_8129B34

* sub_8129BCC

* through sub_8129C74

* through sub_8129D8C

* sub_8129E0C

* sub_8129E74

* sub_8129F20

* sub_8129FC8

* sub_812A040

* nonmatching sub_812A0E8

* through sub_812A22C

* sub_812A25C

* sub_812A2C4

* through sub_812A39C

* Remaining fns in decoration.s

* Decompile decoration headers

* Decompile all remaining decoration data that had already been disassembled

* Disassemble two data objects

* Suggest structure of list menu template

* decompile through decoration list menu template

* Disassemble decoration icon graphics table

* Rip icon gfx

* Decompile deco icon table

* Decompile more data related to drawing decorations

* Decompile gUnknown_085A7250 structs

* Decompile two sprite templates

* Decompile remaining data in decoration.s

* Decompile decoration ewram

* deco -> decor
2017-10-22 17:55:07 -05:00

84 lines
3.0 KiB
C
Executable File

#ifndef GUARD_FIELD_MAP_OBJ_H
#define GUARD_FIELD_MAP_OBJ_H
#define NUM_OBJECT_GRAPHICS_INFO 239
#define SPRITE_VAR 240
// 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
void sub_808D438(void);
u8 GetFieldObjectIdByLocalIdAndMap(u8, u8, u8);
bool8 TryGetFieldObjectIdByLocalIdAndMap(u8, u8, u8, u8 *);
u8 GetFieldObjectIdByXY(s16, s16);
void FieldObjectSetDirection(struct MapObject *, u8);
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 sub_808EBA8(u8, u8, u8, s16, s16);
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 *, 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);
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);
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);
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 *);
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 FieldObjectFaceOppositeDirection(struct MapObject *, u8);
u8 GetOppositeDirection(u8);
u8 GetStepInPlaceDelay4AnimId(u32);
u8 GetStepInPlaceDelay8AnimId(u32);
u8 GetStepInPlaceDelay16AnimId(u32);
u8 GetStepInPlaceDelay32AnimId(u32);
u8 npc_block_way(struct MapObject *, s16, s16, u32);
void MoveCoords(u8, s16 *, s16 *);
bool8 FieldObjectIsSpecialAnimActive(struct MapObject *);
u8 FieldObjectClearAnimIfSpecialAnimFinished(struct MapObject *);
u8 GetFieldObjectIdByXYZ(u16 x, u16 y, u8 z);
// Exported data declarations
extern const struct SpriteTemplate *const gFieldEffectObjectTemplatePointers[];
#endif //GUARD_FIELD_MAP_OBJ_H