mirror of
https://github.com/pret/pokeruby.git
synced 2026-08-09 10:57:40 -05:00
377 lines
10 KiB
C
Executable File
377 lines
10 KiB
C
Executable File
#ifndef GUARD_DECORATION_H
|
|
#define GUARD_DECORATION_H
|
|
|
|
enum DecoId {
|
|
/*000*/ DECOR_NONE,
|
|
/*001*/ DECOR_SMALL_DESK,
|
|
/*002*/ DECOR_POKEMON_DESK,
|
|
/*003*/ DECOR_HEAVY_DESK,
|
|
/*004*/ DECOR_RAGGED_DESK,
|
|
/*005*/ DECOR_COMFORT_DESK,
|
|
/*006*/ DECOR_PRETTY_DESK,
|
|
/*007*/ DECOR_BRICK_DESK,
|
|
/*008*/ DECOR_CAMP_DESK,
|
|
/*009*/ DECOR_HARD_DESK,
|
|
/*010*/ DECOR_SMALL_CHAIR,
|
|
/*011*/ DECOR_POKEMON_CHAIR,
|
|
/*012*/ DECOR_HEAVY_CHAIR,
|
|
/*013*/ DECOR_PRETTY_CHAIR,
|
|
/*014*/ DECOR_COMFORT_CHAIR,
|
|
/*015*/ DECOR_RAGGED_CHAIR,
|
|
/*016*/ DECOR_BRICK_CHAIR,
|
|
/*017*/ DECOR_CAMP_CHAIR,
|
|
/*018*/ DECOR_HARD_CHAIR,
|
|
/*019*/ DECOR_RED_PLANT,
|
|
/*020*/ DECOR_TROPICAL_PLANT,
|
|
/*021*/ DECOR_PRETTY_FLOWERS,
|
|
/*022*/ DECOR_COLORFUL_PLANT,
|
|
/*023*/ DECOR_BIG_PLANT,
|
|
/*024*/ DECOR_GORGEOUS_PLANT,
|
|
/*025*/ DECOR_RED_BRICK,
|
|
/*026*/ DECOR_YELLOW_BRICK,
|
|
/*027*/ DECOR_BLUE_BRICK,
|
|
/*028*/ DECOR_RED_BALLOON,
|
|
/*029*/ DECOR_BLUE_BALLOON,
|
|
/*030*/ DECOR_YELLOW_BALLOON,
|
|
/*031*/ DECOR_RED_TENT,
|
|
/*032*/ DECOR_BLUE_TENT,
|
|
/*033*/ DECOR_SOLID_BOARD,
|
|
/*034*/ DECOR_SLIDE,
|
|
/*035*/ DECOR_FENCE_LENGTH,
|
|
/*036*/ DECOR_FENCE_WIDTH,
|
|
/*037*/ DECOR_TIRE,
|
|
/*038*/ DECOR_STAND,
|
|
/*039*/ DECOR_MUD_BALL,
|
|
/*040*/ DECOR_BREAKABLE_DOOR,
|
|
/*041*/ DECOR_SAND_ORNAMENT,
|
|
/*042*/ DECOR_SILVER_SHIELD,
|
|
/*043*/ DECOR_GOLD_SHIELD,
|
|
/*044*/ DECOR_GLASS_ORNAMENT,
|
|
/*045*/ DECOR_TV,
|
|
/*046*/ DECOR_ROUND_TV,
|
|
/*047*/ DECOR_CUTE_TV,
|
|
/*048*/ DECOR_GLITTER_MAT,
|
|
/*049*/ DECOR_JUMP_MAT,
|
|
/*050*/ DECOR_SPIN_MAT,
|
|
/*051*/ DECOR_C_LOW_NOTE_MAT,
|
|
/*052*/ DECOR_D_NOTE_MAT,
|
|
/*053*/ DECOR_E_NOTE_MAT,
|
|
/*054*/ DECOR_F_NOTE_MAT,
|
|
/*055*/ DECOR_G_NOTE_MAT,
|
|
/*056*/ DECOR_A_NOTE_MAT,
|
|
/*057*/ DECOR_B_NOTE_MAT,
|
|
/*058*/ DECOR_C_HIGH_NOTE_MAT,
|
|
/*059*/ DECOR_SURF_MAT,
|
|
/*060*/ DECOR_THUNDER_MAT,
|
|
/*061*/ DECOR_FIRE_BLAST_MAT,
|
|
/*062*/ DECOR_POWDER_SNOW_MAT,
|
|
/*063*/ DECOR_ATTRACT_MAT,
|
|
/*064*/ DECOR_FISSURE_MAT,
|
|
/*065*/ DECOR_SPIKES_MAT,
|
|
/*066*/ DECOR_BALL_POSTER,
|
|
/*067*/ DECOR_GREEN_POSTER,
|
|
/*068*/ DECOR_RED_POSTER,
|
|
/*069*/ DECOR_BLUE_POSTER,
|
|
/*070*/ DECOR_CUTE_POSTER,
|
|
/*071*/ DECOR_PIKA_POSTER,
|
|
/*072*/ DECOR_LONG_POSTER,
|
|
/*073*/ DECOR_SEA_POSTER,
|
|
/*074*/ DECOR_SKY_POSTER,
|
|
/*075*/ DECOR_KISS_POSTER,
|
|
/*076*/ DECOR_PICHU_DOLL,
|
|
/*077*/ DECOR_PIKACHU_DOLL,
|
|
/*078*/ DECOR_MARILL_DOLL,
|
|
/*079*/ DECOR_TOGEPI_DOLL,
|
|
/*080*/ DECOR_CYNDAQUIL_DOLL,
|
|
/*081*/ DECOR_CHIKORITA_DOLL,
|
|
/*082*/ DECOR_TOTODILE_DOLL,
|
|
/*083*/ DECOR_JIGGLYPUFF_DOLL,
|
|
/*084*/ DECOR_MEOWTH_DOLL,
|
|
/*085*/ DECOR_CLEFAIRY_DOLL,
|
|
/*086*/ DECOR_DITTO_DOLL,
|
|
/*087*/ DECOR_SMOOCHUM_DOLL,
|
|
/*088*/ DECOR_TREECKO_DOLL,
|
|
/*089*/ DECOR_TORCHIC_DOLL,
|
|
/*090*/ DECOR_MUDKIP_DOLL,
|
|
/*091*/ DECOR_DUSKULL_DOLL,
|
|
/*092*/ DECOR_WYNAUT_DOLL,
|
|
/*093*/ DECOR_BALTOY_DOLL,
|
|
/*094*/ DECOR_KECLEON_DOLL,
|
|
/*095*/ DECOR_AZURILL_DOLL,
|
|
/*096*/ DECOR_SKITTY_DOLL,
|
|
/*097*/ DECOR_SWABLU_DOLL,
|
|
/*098*/ DECOR_GULPIN_DOLL,
|
|
/*099*/ DECOR_LOTAD_DOLL,
|
|
/*100*/ DECOR_SEEDOT_DOLL,
|
|
/*101*/ DECOR_PIKA_CUSHION,
|
|
/*102*/ DECOR_ROUND_CUSHION,
|
|
/*103*/ DECOR_KISS_CUSHION,
|
|
/*104*/ DECOR_ZIGZAG_CUSHION,
|
|
/*105*/ DECOR_SPIN_CUSHION,
|
|
/*106*/ DECOR_DIAMOND_CUSHION,
|
|
/*107*/ DECOR_BALL_CUSHION,
|
|
/*108*/ DECOR_GRASS_CUSHION,
|
|
/*109*/ DECOR_FIRE_CUSHION,
|
|
/*110*/ DECOR_WATER_CUSHION,
|
|
/*111*/ DECOR_SNORLAX_DOLL,
|
|
/*112*/ DECOR_RHYDON_DOLL,
|
|
/*113*/ DECOR_LAPRAS_DOLL,
|
|
/*114*/ DECOR_VENUSAUR_DOLL,
|
|
/*115*/ DECOR_CHARIZARD_DOLL,
|
|
/*116*/ DECOR_BLASTOISE_DOLL,
|
|
/*117*/ DECOR_WAILMER_DOLL,
|
|
/*118*/ DECOR_REGIROCK_DOLL,
|
|
/*119*/ DECOR_REGICE_DOLL,
|
|
/*120*/ DECOR_REGISTEEL_DOLL
|
|
};
|
|
|
|
enum DecorPerm {
|
|
/*
|
|
* The nomenclature here describes collision and placement permissions, in that order.
|
|
*/
|
|
DECORPERM_SOLID_FLOOR,
|
|
DECORPERM_PASS_FLOOR,
|
|
DECORPERM_BEHIND_FLOOR,
|
|
DECORPERM_NA_WALL,
|
|
DECORPERM_SOLID_MAT
|
|
};
|
|
|
|
enum DecorShape {
|
|
/*
|
|
* Width-x-height
|
|
*/
|
|
DECORSHAPE_1x1,
|
|
DECORSHAPE_2x1,
|
|
DECORSHAPE_3x1, // unused
|
|
DECORSHAPE_4x2,
|
|
DECORSHAPE_2x2,
|
|
DECORSHAPE_1x2,
|
|
DECORSHAPE_1x3, // unused
|
|
DECORSHAPE_2x4,
|
|
DECORSHAPE_3x3,
|
|
DECORSHAPE_3x2
|
|
};
|
|
|
|
enum DecoCat {
|
|
/*
|
|
* In which category you can find the decoration in the PC.
|
|
*/
|
|
/*0*/ DECORCAT_DESK,
|
|
/*1*/ DECORCAT_CHAIR,
|
|
/*2*/ DECORCAT_PLANT,
|
|
/*3*/ DECORCAT_ORNAMENT,
|
|
/*4*/ DECORCAT_MAT,
|
|
/*5*/ DECORCAT_POSTER,
|
|
/*6*/ DECORCAT_DOLL,
|
|
/*7*/ DECORCAT_CUSHION
|
|
};
|
|
|
|
struct Decoration
|
|
{
|
|
/*0x00*/ u8 id;
|
|
/*0x01*/ u8 name[16];
|
|
/*0x11*/ u8 permission;
|
|
/*0x12*/ u8 shape;
|
|
/*0x13*/ u8 category;
|
|
/*0x14*/ u16 price;
|
|
/*0x18*/ const u8 *description;
|
|
/*0x1c*/ const u16 *tiles;
|
|
};
|
|
|
|
struct DecoPCPointers
|
|
{
|
|
/* 0x00 */ u8 *items;
|
|
/* 0x04 */ u8 *pos;
|
|
/* 0x08 */ u8 size;
|
|
/* 0x09 */ u8 isPlayerRoom;
|
|
};
|
|
|
|
struct DecorationInventory
|
|
{
|
|
u8 *items;
|
|
u8 size;
|
|
};
|
|
|
|
struct UnkStruct_803EC860
|
|
{
|
|
const u8 *tiles;
|
|
const u8 *y;
|
|
const u8 *x;
|
|
u8 size;
|
|
};
|
|
|
|
extern const struct UnkStruct_803EC860 gUnknown_083EC860[];
|
|
|
|
extern u8 ewram[];
|
|
#define ewram_1f000 (*(struct DecoPCPointers *)(ewram + 0x1f000))
|
|
|
|
struct UnkStruct_02038900
|
|
{
|
|
/*0x000; 0x02038900*/ const struct Decoration *decoration;
|
|
/*0x004; 0x02038904*/ u16 tiles[0x40];
|
|
/*0x084; 0x02038984*/ u8 image[0x800];
|
|
/*0x884; 0x02039184*/ u16 palette[16];
|
|
};
|
|
|
|
struct UnkStruct_083EC900
|
|
{
|
|
u8 shape;
|
|
u8 size;
|
|
u8 x;
|
|
u8 y;
|
|
};
|
|
|
|
struct UnkStruct_020391B4
|
|
{
|
|
u8 decorId;
|
|
u8 width;
|
|
u8 height;
|
|
u16 flagId;
|
|
};
|
|
|
|
extern const struct UnkStruct_083EC900 gUnknown_083EC900[];
|
|
extern const struct SpritePalette gUnknown_083EC954;
|
|
extern const struct SpritePalette gUnknown_083ECA5C;
|
|
extern const struct SpritePalette gUnknown_083ECA64;
|
|
extern const struct SpriteTemplate gSpriteTemplate_83EC93C;
|
|
extern const struct SpriteTemplate gSpriteTemplate_83ECA88;
|
|
|
|
extern const struct Decoration gDecorations[];
|
|
extern struct UnkStruct_02038900 gUnknown_02038900;
|
|
extern u8 *gUnknown_020388D0;
|
|
extern u8 gUnknown_081A2F7B[];
|
|
extern u8 gUnknown_081A2F8A[];
|
|
extern struct OamData gUnknown_020391AC;
|
|
|
|
extern u8 gUnknown_020388D4;
|
|
extern u8 gUnknown_020388D5;
|
|
extern u8 gUnknown_020388F2;
|
|
extern u8 gUnknown_020388F3;
|
|
extern u8 gUnknown_020388F4;
|
|
extern u8 gUnknown_020388F5;
|
|
extern u8 gUnknown_020388F6;
|
|
extern u8 gUnknown_020388D6[16];
|
|
extern u8 gUnknown_020388E6[12];
|
|
extern u16 gSpecialVar_0x8004;
|
|
extern u16 gSpecialVar_0x8005;
|
|
extern u16 gSpecialVar_0x8006;
|
|
extern u16 gSpecialVar_0x8007;
|
|
extern u16 gUnknown_020391A4;
|
|
extern u16 gUnknown_020391A6;
|
|
extern u8 gUnknown_020391A8;
|
|
extern u8 gUnknown_020391A9;
|
|
extern u8 gUnknown_020391AA;
|
|
extern u8 gUnknown_02039234;
|
|
extern void (*gUnknown_0300485C)(void);
|
|
extern const struct YesNoFuncTable gUnknown_083EC96C[];
|
|
extern struct UnkStruct_020391B4 gUnknown_020391B4[16];
|
|
|
|
extern const u16 gUnknown_083EC654[3];
|
|
extern const struct DecorationInventory gDecorationInventories[];
|
|
extern const u8 *const gUnknown_083EC5E4[];
|
|
extern const u8 *const gUnknown_083EC624[];
|
|
extern u8 gUnknown_020388F7[];
|
|
extern const struct MenuAction2 gUnknown_083EC604[];
|
|
extern const struct MenuAction3 gUnknown_083EC634[];
|
|
extern const u8 gUnknown_083EC65A[];
|
|
extern const u8 gUnknown_083EC97C[];
|
|
extern const u8 gUnknown_083EC984[];
|
|
extern void sub_80B3068(u8); // src/shop
|
|
extern const struct YesNoFuncTable gUnknown_083EC95C;
|
|
extern const struct YesNoFuncTable gUnknown_083EC964;
|
|
extern const struct YesNoFuncTable gUnknown_083EC9CC;
|
|
extern const struct YesNoFuncTable gUnknown_083EC9D4;
|
|
extern const struct YesNoFuncTable gUnknown_083ECAA0;
|
|
|
|
extern u8 sub_8134194(u8); // src/decoration_inventory
|
|
extern bool8 sub_81341D4(void); // src/decoration_inventory
|
|
extern void sub_8134104(u8); // src/decoration_inventory
|
|
extern bool8 sub_807D770(void);
|
|
extern void sub_80F944C(void); // src/menu_helpers
|
|
extern void sub_80F9480(u8 *, u8); // src/menu_helpers
|
|
extern void sub_80F94A4(u8, u8 *, u8, s16); // src/menu_helpers
|
|
extern void sub_80F94F8(u8 *); // src/menu_helpers
|
|
extern void sub_80F9520(u8 *, u8); // src/menu_helpers
|
|
extern void DestroyVerticalScrollIndicator(u8); // src/menu_helpers
|
|
extern void CreateVerticalScrollIndicators(u8, u8, u8); // src/menu_helpers
|
|
extern void LoadScrollIndicatorPalette(void); // src/menu_helpers
|
|
extern void DisplayItemMessageOnField(u8, const u8 *, TaskFunc, u16); // src/menu_helpers
|
|
extern void BuyMenuFreeMemory(void); // src/menu_helpers
|
|
extern void sub_8109DAC(u8); // src/trader
|
|
extern void ReshowPlayerPC(u8); // src/player_pc
|
|
|
|
void sub_80FE2B4(void);
|
|
void Task_DecorationPCProcessMenuInput(u8);
|
|
void sub_80FE394(void);
|
|
void gpu_pal_decompress_alloc_tag_and_upload(u8);
|
|
void sub_80FE5AC(u8);
|
|
void sub_80FE604(u8);
|
|
void sub_80FE728(u8);
|
|
void sub_80FE758(u8);
|
|
void sub_80FE868(u8);
|
|
void sub_80FE948(u8);
|
|
void sub_80FEABC(u8, u8);
|
|
void sub_80FEC94(u8);
|
|
void sub_80FECB8(u8);
|
|
void sub_80FECE0(u8);
|
|
void sub_80FEF50(u8);
|
|
void sub_80FF394(u16, u16, u16);
|
|
void sub_80FF6AC(u8);
|
|
void sub_80FF960(u8);
|
|
void AddDecorationIconObjectFromFieldObject(struct UnkStruct_02038900 *, u8);
|
|
void SetUpPlacingDecorationPlayerAvatar(u8, struct UnkStruct_02038900 *);
|
|
void sub_8100038(u8);
|
|
void sub_81000A0(u8);
|
|
void sub_8100174(u8);
|
|
void sub_8100248(u8);
|
|
void sub_810028C(u8);
|
|
void c1_overworld_prev_quest(u8);
|
|
void sub_8100364(void);
|
|
void sub_810045C(void);
|
|
void sub_810065C(u8);
|
|
void sub_81006A8(u8);
|
|
void sub_81006D0(struct UnkStruct_02038900 *);
|
|
void sub_810070C(u16 *, u16);
|
|
void sub_8100874(struct UnkStruct_02038900 *);
|
|
void sub_81008BC(struct UnkStruct_02038900 *);
|
|
void sub_8100930(u8);
|
|
void sub_81009A8(struct Sprite *);
|
|
void sub_81009C0(struct Sprite *);
|
|
bool8 sub_8100D38(u8);
|
|
void sub_8100E70(u8);
|
|
void sub_8100EEC(u8);
|
|
void sub_8101024(u8);
|
|
void sub_81010F0(u8);
|
|
void sub_8101460(u8);
|
|
void sub_8101518(u8);
|
|
void sub_81015B0(u8);
|
|
void sub_81015E0(u8);
|
|
void sub_810156C(u8);
|
|
void sub_8101678(void);
|
|
void sub_8101698(struct Sprite *);
|
|
void sub_81016C8(void);
|
|
void sub_81016F4(void);
|
|
void sub_8101824(u8);
|
|
void sub_8109A30(u8);
|
|
|
|
void sub_80FF160(u8);
|
|
void sub_80FF5BC(u8);
|
|
void sub_80FF058(u8);
|
|
void sub_8100A0C(u8);
|
|
void sub_8101700(u8);
|
|
void sub_81017A0(u8);
|
|
void sub_8109D04(u8);
|
|
|
|
void sub_80FED3C(u8);
|
|
void sub_80FFAB0(u8);
|
|
void sub_80FFB08(u8);
|
|
void sub_81000C4(u8);
|
|
void sub_810026C(u8);
|
|
void sub_8100F88(u8);
|
|
void sub_8100FB4(u8);
|
|
void sub_810153C(u8);
|
|
void sub_8101590(u8);
|
|
void sub_8101848(u8);
|
|
|
|
#endif // GUARD_DECORATION_H
|