pmd-red/include/kecleon_bros1.h
2024-07-20 10:59:15 -07:00

64 lines
1.6 KiB
C

#ifndef GUARD_KECLEON_BROS1_H
#define GUARD_KECLEON_BROS1_H
#include "file_system.h"
#include "items.h"
#include "structs/menu.h"
#include "structs/str_text.h"
enum KecleonStoreStates
{
KECLEON_STORE_INIT = 0,
KECLEON_STORE_MAIN_MENU,
// 2 - 3
KECLEON_STORE_EXIT = 4,
KECLEON_STORE_NO_STORE_ITEMS,
KECLEON_STORE_NO_MONEY,
KECLEON_STORE_TOO_MUCH_MONEY,
// 8
KECLEON_STORE_NO_ITEMS_TO_SELL = 9,
KECLEON_STORE_TOO_MANY_ITEMS,
// 11
KECLEON_STORE_NOT_ENOUGH_MONEY = 12,
KECLEON_STORE_CANT_SELL_ITEM,
};
// size: 0x148
typedef struct KecleonBrosWork1
{
/* 0x0 */ u32 mode; // Corresponds to the enum: KecleonBrosMode
/* 0x4 */ bool8 isKecleonItemShop; // FALSE indicates it is Kecleon TM Shop
/* 0x8 */ u32 currState;
/* 0xC */ u32 fallbackState;
/* 0x10 */ s32 itemSellPrice;
/* 0x14 */ u32 numInventoryItemToSell;
/* 0x18 */ s32 inventoryItemSellPrice;
/* 0x1C */ Item soldItem;
/* 0x20 */ u8 itemShopItemIndex;
/* 0x21 */ u8 wareShopItemIndex;
/* 0x24 */ u32 soldItemInventoryIndex;
/* 0x28 */ u32 menuAction1;
/* 0x2C */ u32 menuAction2;
/* 0x30 */ u32 menuAction3;
/* 0x34 */ MenuItem menuItems[8];
u16 unk74[8];
/* 0x84 */ MenuStruct menu;
/* 0xD4 */ OpenedFile *faceFile;
/* 0xD8 */ u8 *faceData;
u16 unkDC;
u16 unkDE;
u8 unkE0;
u8 unkE1;
u8 unkE2;
u8 unkE3;
OpenedFile **unkE4;
UnkTextStruct2 unkE8[4];
} KecleonBrosWork1;
// mode corresponds to the enum: KecleonBrosMode
bool8 CreateKecleonBros(u32 mode);
void DeleteKecleonBros(void);
u32 KecleonBrosCallback(void);
#endif // GUARD_KECLEON_BROS1_H