summaryrefslogtreecommitdiff
path: root/src/pelipper_board_1.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/pelipper_board_1.c')
-rw-r--r--src/pelipper_board_1.c160
1 files changed, 159 insertions, 1 deletions
diff --git a/src/pelipper_board_1.c b/src/pelipper_board_1.c
index 1bccc5a..a8e9b50 100644
--- a/src/pelipper_board_1.c
+++ b/src/pelipper_board_1.c
@@ -1,5 +1,32 @@
#include "global.h"
#include "mailbox.h"
+#include "pokemon.h"
+#include "item.h"
+#include "memory.h"
+#include "menu.h"
+#include "text.h"
+#include "team_inventory.h"
+
+struct unkStruct_203B308
+{
+ // size: 0xB6 << 1
+ u32 state;
+ u32 unk4;
+ u8 unk8;
+ u8 fill9[0xC - 9];
+ u32 unkC;
+ u8 fill10[0x50 - 0x10];
+ u8 unk50;
+ u8 fill51[0x64 - 0x51];
+ u32 unk64;
+ u32 unk68;
+ u32 unk6C;
+ u8 fill70[0xBC - 0x70];
+ struct MenuItem unkBC[8];
+ u16 unkFC[8];
+ struct UnkTextStruct2 unk10C[4];
+};
+extern struct unkStruct_203B308 *gUnknown_203B308;
extern u8 gPelipperBoard_Accepted[];
extern u8 gUnknown_80E03B8[];
@@ -10,10 +37,141 @@ extern void sub_80073B8(u32);
extern void sub_80073E0(u32);
extern u32 sub_802C898(void);
extern void sub_802C8F4(void);
-extern void SetPelipperBoardState(u32);
extern u32 sub_802DEE0(void);
extern void sub_802DF24(void);
+extern u8 *sub_8096574(u8);
+extern u8 sub_802C4A4(void);
+extern void sub_8096C80(void);
+extern void sub_8096D24(void);
+extern void sub_8096A78(u8 *);
+extern void sub_80965B8(u8);
+extern void sub_80965F4(void);
+extern void sub_802C2D4(void);
+extern u8 sub_8012FD8(u32 *);
+extern void sub_8013114(u32 *, s32 *);
+extern u32 sub_802C1E4(u32);
+extern void PlaySound(u32);
+extern void SetPelipperBoardState(u32);
+extern u8 sub_802C26C(void);
+extern u8 HasNoAcceptedJobs(void);
+extern void sub_8012EA4(u32 *, u32);
+
+void sub_802ECB4(void)
+{
+ s32 menuAction = 0;
+
+ if(!sub_8012FD8(&gUnknown_203B308->unk6C))
+ {
+ sub_8013114(&gUnknown_203B308->unk6C, &menuAction);
+ if(menuAction != 1) gUnknown_203B308->unk64 = menuAction;
+ }
+
+ switch(menuAction)
+ {
+ case 2:
+ if(!sub_802C4A4())
+ SetPelipperBoardState(4);
+ else
+ sub_8012EA4(&gUnknown_203B308->unk6C, 1);
+ break;
+ case 3:
+ if(!HasNoAcceptedJobs())
+ SetPelipperBoardState(8);
+ else
+ sub_8012EA4(&gUnknown_203B308->unk6C, 1);
+ break;
+ case 5:
+ SetPelipperBoardState(2);
+ break;
+ case 1:
+ SetPelipperBoardState(3);
+ break;
+ }
+}
+
+void sub_802ED4C(void)
+{
+ switch(sub_802C1E4(1))
+ {
+ case 3:
+ gUnknown_203B308->unk8 = sub_802C26C();
+ SetPelipperBoardState(6);
+ break;
+ case 4:
+ gUnknown_203B308->unk8 = sub_802C26C();
+ SetPelipperBoardState(7);
+ break;
+ case 2:
+ sub_802C2D4();
+ SetPelipperBoardState(1);
+ break;
+ case 0:
+ case 1:
+ break;
+ }
+}
+void sub_802EDBC(void)
+{
+ u8 *return_var;
+ s32 menuAction = 0;
+
+ sub_802C1E4(0);
+ if(!sub_8012FD8(&gUnknown_203B308->unk6C))
+ {
+ sub_8013114(&gUnknown_203B308->unk6C, &menuAction);
+ if(menuAction != 1) gUnknown_203B308->unk68 = menuAction;
+ }
+ switch(menuAction)
+ {
+ case 4:
+ PlaySound(0x133);
+ return_var = sub_8096574(gUnknown_203B308->unk8);
+ switch(*return_var)
+ {
+ case 2:
+ gUnknown_203B308->unk4 = 1;
+ sub_80965B8(gUnknown_203B308->unk8);
+ sub_80965F4();
+ sub_802C2D4();
+ SetPelipperBoardState(3);
+ break;
+ case 3:
+ gUnknown_203B308->unk4 = 2;
+ sub_80965B8(gUnknown_203B308->unk8);
+ sub_80965F4();
+ sub_802C2D4();
+ SetPelipperBoardState(3);
+ break;
+ case 4:
+ gUnknown_203B308->unk4 = 3;
+ sub_80965B8(gUnknown_203B308->unk8);
+ sub_80965F4();
+ sub_802C2D4();
+ SetPelipperBoardState(3);
+ break;
+ default:
+ sub_8096A78(return_var);
+ sub_8096C80();
+ sub_8096D24();
+ if(sub_802C4A4())
+ {
+ sub_802C2D4();
+ SetPelipperBoardState(1);
+ }
+ else
+ SetPelipperBoardState(5);
+ break;
+ }
+ break;
+ case 5:
+ SetPelipperBoardState(7);
+ break;
+ case 1:
+ SetPelipperBoardState(5);
+ break;
+ }
+}
void sub_802EEA0(void)
{