diff options
Diffstat (limited to 'src/kecleon_items_1.c')
-rw-r--r-- | src/kecleon_items_1.c | 222 |
1 files changed, 222 insertions, 0 deletions
diff --git a/src/kecleon_items_1.c b/src/kecleon_items_1.c new file mode 100644 index 0000000..f305c6f --- /dev/null +++ b/src/kecleon_items_1.c @@ -0,0 +1,222 @@ +#include "global.h" +#include "file_system.h" +#include "pokemon.h" +#include "constants/species.h" +#include "input.h" +#include "kecleon_items.h" +#include "gUnknown_203B460.h" + +extern struct unkStruct_203B210 *gUnknown_203B210; +extern struct unkStruct_203B460 *gUnknown_203B460; + +extern u32 sub_8090CCC(struct ItemStruct_203B460 *); +extern u8 sub_80914E4(u8); +extern u32 sub_8091814(void); +extern u32 sub_8091A48(void); +extern s32 sub_80144A4(s32 *); +void UpdateKecleonStoreState(u32); +extern u32 sub_801B410(void); +extern void sub_801B450(void); + +extern void sub_8099690(u32); +extern u8 sub_8012FD8(u32 *); +extern void sub_8013114(u32 *, u32 *); +extern void sub_8019EDC(u32); +extern void sub_801A2A8(u32); +extern s32 sub_801A8AC(void); +extern u32 sub_801A6E8(u32); +extern void sub_801A928(void); +extern void sub_8016C40(u32); + +void sub_8019B08(void) +{ + switch(sub_801A6E8(1)) + { + case 0: + break; + case 3: + gUnknown_203B210->unk24 = sub_801A8AC(); + gUnknown_203B210->unk1C = gUnknown_203B460->fill0[gUnknown_203B210->unk24]; + gUnknown_203B210->unk10 = sub_8090CCC(&gUnknown_203B210->unk1C); + UpdateKecleonStoreState(0x1c); + break; + case 4: + gUnknown_203B210->unk24 = sub_801A8AC(); + gUnknown_203B210->unk1C = gUnknown_203B460->fill0[gUnknown_203B210->unk24]; + gUnknown_203B210->unk10 = sub_8090CCC(&gUnknown_203B210->unk1C); + sub_8099690(0); + UpdateKecleonStoreState(0x1d); + break; + case 2: + sub_801A928(); + UpdateKecleonStoreState(1); + break; + case 1: + default: + sub_8016C40(1); + break; + } +} + +void sub_8019BBC(void) +{ + int local_c; + + local_c = 0; + if (gUnknown_203B210->unk4 != 0) { + sub_8019EDC(0); + } + else { + sub_801A2A8(0); + } + if ((sub_8012FD8(&gUnknown_203B210->unk84) == 0) && (sub_8013114(&gUnknown_203B210->unk84,&local_c), local_c != 1)) { + gUnknown_203B210->unk30 = local_c; + } + switch(local_c){ + case 2: + if (gUnknown_203B460->teamMoney == 0) { + UpdateKecleonStoreState(0x6); + } + else { + if (gUnknown_203B210->unk10 > gUnknown_203B460->teamMoney) { + UpdateKecleonStoreState(0xC); + } + else { + UpdateKecleonStoreState(0x16); + } + } + break; + case 7: + UpdateKecleonStoreState(0x15); + break; + case 1: + UpdateKecleonStoreState(0x13); + break; + } +} + +void sub_8019C78(void) +{ + int local_c; + + local_c = 0; + sub_801A6E8(0); + if ((sub_8012FD8(&gUnknown_203B210->unk84) == '\0') && (sub_8013114(&gUnknown_203B210->unk84,&local_c), local_c != 1)) { + gUnknown_203B210->unk2C = local_c; + } + switch(local_c){ + case 3: + sub_8099690(0); + if (sub_80914E4(gUnknown_203B210->unk1C.itemIndex) == '\0') { + UpdateKecleonStoreState(0xd); + } + else { + if (gUnknown_203B210->unk10 + gUnknown_203B460->teamMoney > 99999) { + UpdateKecleonStoreState(0xe); + + } + else { + UpdateKecleonStoreState(0x1e); + } + } + break; + case 7: + sub_8099690(0); + UpdateKecleonStoreState(0x1d); + break; + case 1: + UpdateKecleonStoreState(0x1b); + break; + } +} + +void sub_8019D30(void) +{ + switch(sub_801B410()) + { + case 2: + case 3: + sub_801B450(); + UpdateKecleonStoreState(0x13); + break; + case 0: + case 1: + break; + } +} + +void sub_8019D4C(void) +{ + switch(sub_801B410()) + { + case 2: + case 3: + sub_801B450(); + UpdateKecleonStoreState(0x1B); + break; + case 0: + case 1: + break; + } +} + + +void sub_8019D68(void) +{ + s32 temp; + if(sub_80144A4(&temp) == 0) + { + UpdateKecleonStoreState(gUnknown_203B210->unkC); + } +} + +u32 sub_8019D8C(void) +{ + if(gUnknown_203B210->unk4 != 0) + { + return sub_8091814(); + } + else + { + return sub_8091A48(); + } +} + +void sub_8019DAC(void) +{ + s32 iVar3; + struct ItemStruct_203B460 *pbVar4; + s32 iVar5; + + gUnknown_203B210->unk14 = 0; + gUnknown_203B210->unk18 = 0; + iVar5 = 0; + do { + pbVar4 = &gUnknown_203B460->fill0[iVar5]; + if (((pbVar4->unk0 & 1) != 0) && (sub_80914E4(pbVar4->itemIndex) != 0)) { + iVar3 = sub_8090CCC(pbVar4); + gUnknown_203B210->unk18 += iVar3; + gUnknown_203B210->unk14++; + } + iVar5 = iVar5 + 1; + } while (iVar5 < 0x14); +} + +void sub_8019E04(int param_1) +{ + + if (gUnknown_203B210->unk4 != 0) { + if (param_1 == 1) + gUnknown_203B210->unkE0 = 1; + else + gUnknown_203B210->unkE0 = 0; + } + else + { + if (param_1 == 1) + gUnknown_203B210->unkE0 = 7; + else + gUnknown_203B210->unkE0 = 6; + } +} + |