summaryrefslogtreecommitdiff
path: root/src/code_0807CC3C.c
blob: b5b1c4ee026748ff39822e989d16b38150c7a46c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
#include "global.h"
#include "entity.h"
#include "functions.h"
#include "menu.h"
#include "structures.h"

extern void (*const gUnk_0811E478[])(u32);

extern s16 gUnk_02021EE0[6];

void sub_0807CD9C() {
    sub_080530C8();
}

void sub_0807CDA4(u32 arg0) {
    gUnk_0811E478[gMenu.storyPanelIndex](arg0);
}

u32 sub_0807CDC0(void) {
    gUnk_02021EE0[5] -= 8;
    if (gUnk_02021EE0[4] <= 0) {
        gMenu.field_0xa = 8;
        gMenu.storyPanelIndex = 1;
    }
    return 0;
}

u32 sub_0807CDE8(u32 arg0) {
    u32 temp;

    if (gMenu.field_0xa == 0) {
        sub_0805616C();
        switch (arg0) {
            case 0:
                temp = sub_0807CF08(gUnk_02000000->saveFile, gUnk_02002A40.filler0);
                break;
            case 1:
                sub_0807CF48(gUnk_02000000->saveFile);
                temp = 1;
                break;
            case 2:
                temp = sub_0807CF10((u8*)gUnk_02000000->header);
                break;
        }
        gMenu.field_0xa = temp;
        gMenu.storyPanelIndex = 2;
        sub_08056208();
    } else {
        gMenu.field_0xa--;
    }
    return 0;
}

s32 sub_0807CE54(void) {
    u32 uVar1;

    uVar1 = 0;
    gUnk_02021EE0[5] += 8;
    if (gUnk_02021EE0[3] <= gUnk_02021EE0[5]) {
        gUnk_02021EE0[5] = gUnk_02021EE0[3];
        sub_08050384();
        gMenu.storyPanelIndex = 0;
        if (gMenu.field_0xa == 1) {
            uVar1 = 1;
        } else {
            uVar1 = -1;
        }
    }
    return uVar1;
}

extern char gUnk_0811E484[];

u32 sub_0807CE90(void)
{
  struct_0807D1C4 *puVar1;
  int iVar2;
  int iVar3;
  
  sub_080B1520(0x40);
  puVar1 = sub_0807D1C4(4);
  iVar3 = 0;
  if (sub_0807D24C(puVar1->field_0x6, gUnk_0811E484, puVar1->field_0x0) == 0) {
    iVar3 += 1;
  }
  if (sub_0807D24C(puVar1->field_0x8, gUnk_0811E484, puVar1->field_0x0) == 0) {
    iVar3 += 2;
  }
  if (iVar3 != 0) {
    if (iVar3 == 3) {
      sub_0807CF68(5);
      sub_0807CF68(3);
      sub_0807CF68(2);
      sub_0807CF68(1);
      sub_0807CF68(0);
    }
    sub_0807D20C(puVar1->field_0x8, gUnk_0811E484, puVar1->field_0x0);
    sub_0807D20C(puVar1->field_0x6, gUnk_0811E484, puVar1->field_0x0);
  }
  return 1;
}

u32 sub_0807CF08(u32 arg0, u8* arg1) {
    return sub_0807CF88(arg0, arg1);
}

u32 sub_0807CF10(u8* arg0) {
    return sub_0807CF88(3, arg0);
}

u32 sub_0807CF1C(u8* arg0) {
    return sub_0807CF88(5, arg0);
}

u32 sub_0807CF28(u32 arg0, void* arg1) {
    return sub_0807D008(arg0, arg1);
}

u32 sub_0807CF30(void* arg0) {
    return sub_0807D008(3, arg0);
}

u32 sub_0807CF3C(void* arg0) {
    return sub_0807D008(5, arg0);
}