diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/pokenav.c | 3 | ||||
-rw-r--r-- | src/pokenav_unk_1.c | 231 |
2 files changed, 137 insertions, 97 deletions
diff --git a/src/pokenav.c b/src/pokenav.c index a5fb155da..e3a2d5256 100644 --- a/src/pokenav.c +++ b/src/pokenav.c @@ -596,7 +596,8 @@ void SetPokenavVBlankCallback(void) void *AllocSubstruct(u32 index, u32 size) { - return gPokenavResources->field10[index] = Alloc(size); + gPokenavResources->field10[index] = Alloc(size); + return gPokenavResources->field10[index]; } void *GetSubstructPtr(u32 index) diff --git a/src/pokenav_unk_1.c b/src/pokenav_unk_1.c index 9c8eda0a2..f88ba8f34 100644 --- a/src/pokenav_unk_1.c +++ b/src/pokenav_unk_1.c @@ -15,126 +15,116 @@ struct Pokenav1Struct u32 (*unkC)(struct Pokenav1Struct*); }; +static bool32 sub_81C9814(struct Pokenav1Struct *a0); +static void sub_81C97F8(struct Pokenav1Struct *a0); +static void sub_81C97C0(struct Pokenav1Struct *a0); +static u32 sub_81C97BC(struct Pokenav1Struct *a0); +static void sub_81C97B0(struct Pokenav1Struct *a0, u32 a1); +static u32 sub_81C97A4(struct Pokenav1Struct *a0); +static u32 sub_81C9798(struct Pokenav1Struct *a0); +static u32 sub_81C96FC(struct Pokenav1Struct *a0); +static u32 sub_81C963C(struct Pokenav1Struct *a0); +static u32 sub_81C9600(struct Pokenav1Struct *a0); +static u32 sub_81C9588(struct Pokenav1Struct *a0); +static u32 sub_81C9520(struct Pokenav1Struct *a0); +static u32 sub_81C943C(struct Pokenav1Struct *a0); +static u32 (*sub_81C93EC(void))(struct Pokenav1Struct*); +static void sub_81C939C(struct Pokenav1Struct *state); + +static const u8 sUnknown_0861FC54[] = {2, 3, 4, 2, 5}; + +static const u8 sUnknown_0861FC59[][6] = +{ + { 0, 1, 4, 4, 4, 4 }, + { 0, 1, 2, 4, 4, 4 }, + { 0, 1, 2, 3, 4, 4 }, + { 5, 6, 7, 4, 4, 4 }, + { 8, 9, 10, 11, 12, 13 }, +}; -extern u32 sub_81C76AC(void); -extern void sub_81C7694(u32 a0); - -u32 sub_81C9814(void); -void sub_81C97F8(struct Pokenav1Struct *a0); -void sub_81C97C0(struct Pokenav1Struct *a0); -u32 sub_81C97BC(struct Pokenav1Struct *a0); -void sub_81C97B0(struct Pokenav1Struct *a0, u32 a1); -u32 sub_81C97A4(struct Pokenav1Struct *a0); -u32 sub_81C9798(struct Pokenav1Struct *a0); -u32 sub_81C96FC(struct Pokenav1Struct *a0); -u32 sub_81C963C(struct Pokenav1Struct *a0); -u32 sub_81C9600(struct Pokenav1Struct *a0); -u32 sub_81C9588(struct Pokenav1Struct *a0); -u32 sub_81C9520(struct Pokenav1Struct *a0); -u32 sub_81C943C(struct Pokenav1Struct *a0); -u32 (*sub_81C93EC(void))(struct Pokenav1Struct*); -void sub_81C939C(struct Pokenav1Struct *state); - -extern u8 gUnknown_0861FC54[]; -extern u8 gUnknown_0861FC59[]; - -u8 sub_81C9268(void) +static u8 sub_81C9268(void) { - u32 ret = 0; + u8 retVal = 0; if (FlagGet(FLAG_ADDED_MATCH_CALL_TO_POKENAV)) { - ret = 1; + retVal = 1; if (FlagGet(FLAG_SYS_RIBBON_GET)) - ret = 2; + retVal = 2; } - return ret; + return retVal; } -u32 sub_81C9298(void) +bool32 sub_81C9298(void) { struct Pokenav1Struct *state = AllocSubstruct(1, sizeof(struct Pokenav1Struct)); - - if (state == NULL) - return 0; + if (!state) + return FALSE; state->unk0 = sub_81C9268(); state->unk2 = 0; state->unk4 = 0; state->unk6 = 0; sub_81C939C(state); - - return 1; + return TRUE; } -u32 sub_81C92CC(void) +bool32 sub_81C92CC(void) { struct Pokenav1Struct *state = AllocSubstruct(1, sizeof(struct Pokenav1Struct)); - u8 v0; - - if (state == NULL) - return 0; + if (!state) + return FALSE; state->unk0 = sub_81C9268(); state->unk2 = 2; state->unk4 = 2; state->unk6 = 0; sub_81C939C(state); - - return 1; + return TRUE; } -u32 sub_81C9304(void) +bool32 sub_81C9304(void) { struct Pokenav1Struct *state = AllocSubstruct(1, sizeof(struct Pokenav1Struct)); - u8 v0; - - if (state == NULL) - return 0; + if (!state) + return FALSE; state->unk0 = sub_81C9268(); state->unk2 = 3; state->unk4 = 3; sub_81C939C(state); - - return 1; + return TRUE; } -u32 sub_81C9338(void) +bool32 sub_81C9338(void) { struct Pokenav1Struct *state = AllocSubstruct(1, sizeof(struct Pokenav1Struct)); - u8 v0; - - if (state == NULL) - return 0; + if (!state) + return FALSE; state->unk0 = 3; state->unk2 = 0; state->unk4 = 5; state->unk6 = 0; sub_81C939C(state); - - return 1; + return TRUE; } -u32 sub_81C9368(void) +bool32 sub_81C9368(void) { struct Pokenav1Struct *state = AllocSubstruct(1, sizeof(struct Pokenav1Struct)); - u8 v0; - - if (state == NULL) - return 0; + if (!state) + return FALSE; state->unk0 = 4; state->unk2 = sub_81C76AC(); - state->unk4 = 8 + state->unk2; + state->unk4 = state->unk2 + 8; state->unk6 = 0; sub_81C939C(state); - - return 1; + return TRUE; } -void sub_81C939C(struct Pokenav1Struct *state) +static void sub_81C939C(struct Pokenav1Struct *state) { switch (state->unk0) { @@ -154,7 +144,7 @@ void sub_81C939C(struct Pokenav1Struct *state) } } -u32 (*sub_81C93EC(void))(struct Pokenav1Struct*) +static u32 (*sub_81C93EC(void))(struct Pokenav1Struct*) { switch (GetPokenavMode()) { @@ -179,14 +169,14 @@ void sub_81C9430(void) FreePokenavSubstruct(1); } -u32 sub_81C943C(struct Pokenav1Struct *a0) +static u32 sub_81C943C(struct Pokenav1Struct *a0) { - if (sub_81C9814() != 0) + if (sub_81C9814(a0)) return 1; if (gMain.newKeys & A_BUTTON) { - switch (gUnknown_0861FC59[a0->unk2 + a0->unk0 * 6]) + switch (sUnknown_0861FC59[a0->unk0][a0->unk2]) { case 0: a0->unk6 = gSaveBlock2Ptr->regionMapZoom ? 2 : 1; @@ -195,7 +185,7 @@ u32 sub_81C943C(struct Pokenav1Struct *a0) case 1: a0->unk0 = 3; a0->unk2 = 0; - a0->unk4 = gUnknown_0861FC59[18]; + a0->unk4 = sUnknown_0861FC59[3][0]; a0->unkC = sub_81C963C; return 2; case 2: @@ -225,14 +215,14 @@ u32 sub_81C943C(struct Pokenav1Struct *a0) return 0; } -u32 sub_81C9520(struct Pokenav1Struct *a0) +static u32 sub_81C9520(struct Pokenav1Struct *a0) { - if (sub_81C9814() != 0) + if (sub_81C9814(a0)) return 1; if (gMain.newKeys & A_BUTTON) { - if (gUnknown_0861FC59[a0->unk2 + a0->unk0 * 6] == 2) + if (sUnknown_0861FC59[a0->unk0][a0->unk2] == 2) { a0->unk6 = 6; sub_81C97B0(a0, UNKNOWN_POKENAV_OFFSET + 11); @@ -254,14 +244,14 @@ u32 sub_81C9520(struct Pokenav1Struct *a0) return 0; } -u32 sub_81C9588(struct Pokenav1Struct *a0) +static u32 sub_81C9588(struct Pokenav1Struct *a0) { - if (sub_81C9814() != 0) + if (sub_81C9814(a0)) return 1; if (gMain.newKeys & A_BUTTON) { - u32 v0 = gUnknown_0861FC59[a0->unk2 + a0->unk0 * 6]; + u32 v0 = sUnknown_0861FC59[a0->unk0][a0->unk2]; if (v0 != 2 && v0 != 4) { PlaySE(SE_HAZURE); @@ -285,9 +275,9 @@ u32 sub_81C9588(struct Pokenav1Struct *a0) return 0; } -u32 sub_81C9600(struct Pokenav1Struct *a0) +static u32 sub_81C9600(struct Pokenav1Struct *a0) { - if (sub_81C9814() != 0) + if (sub_81C9814(a0)) { a0->unkC = sub_81C93EC(); return 1; @@ -302,20 +292,20 @@ u32 sub_81C9600(struct Pokenav1Struct *a0) return 0; } -u32 sub_81C963C(struct Pokenav1Struct *a0) +static u32 sub_81C963C(struct Pokenav1Struct *a0) { - u32 v0 = sub_81C9814(); + u32 v0 = sub_81C9814(a0); if (v0) return 1; if (gMain.newKeys & A_BUTTON) { - switch (gUnknown_0861FC59[a0->unk2 + a0->unk0 * 6]) + switch (sUnknown_0861FC59[a0->unk0][a0->unk2]) { case 6: a0->unk0 = 4; a0->unk2 = v0; - a0->unk4 = gUnknown_0861FC59[24]; + a0->unk4 = sUnknown_0861FC59[4][0]; a0->unkC = sub_81C96FC; return 4; case 5: @@ -330,9 +320,9 @@ u32 sub_81C963C(struct Pokenav1Struct *a0) } if (gMain.newKeys & B_BUTTON) { - if (a0->unk2 != gUnknown_0861FC54[a0->unk0]) + if (a0->unk2 != sUnknown_0861FC54[a0->unk0]) { - a0->unk2 = gUnknown_0861FC54[a0->unk0]; + a0->unk2 = sUnknown_0861FC54[a0->unk0]; a0->unkC = sub_81C9798; return 1; } @@ -347,14 +337,14 @@ u32 sub_81C963C(struct Pokenav1Struct *a0) return 0; } -u32 sub_81C96FC(struct Pokenav1Struct *a0) +static u32 sub_81C96FC(struct Pokenav1Struct *a0) { - if (sub_81C9814()) + if (sub_81C9814(a0)) return 1; if (gMain.newKeys & A_BUTTON) { - u8 v0 = gUnknown_0861FC59[a0->unk2 + a0->unk0 * 6]; + u8 v0 = sUnknown_0861FC59[a0->unk0][a0->unk2]; if (v0 != 13) { sub_81C7694(v0 - 8); @@ -371,9 +361,9 @@ u32 sub_81C96FC(struct Pokenav1Struct *a0) } if (gMain.newKeys & B_BUTTON) { - if (a0->unk2 != gUnknown_0861FC54[a0->unk0]) + if (a0->unk2 != sUnknown_0861FC54[a0->unk0]) { - a0->unk2 = gUnknown_0861FC54[a0->unk0]; + a0->unk2 = sUnknown_0861FC54[a0->unk0]; a0->unkC = sub_81C97A4; return 1; } @@ -387,41 +377,90 @@ u32 sub_81C96FC(struct Pokenav1Struct *a0) return 0; } -u32 sub_81C9798(struct Pokenav1Struct *a0) +static u32 sub_81C9798(struct Pokenav1Struct *a0) { sub_81C97C0(a0); return 3; } -u32 sub_81C97A4(struct Pokenav1Struct *a0) +static u32 sub_81C97A4(struct Pokenav1Struct *a0) { sub_81C97F8(a0); return 5; } -void sub_81C97B0(struct Pokenav1Struct *a0, u32 a1) +static void sub_81C97B0(struct Pokenav1Struct *a0, u32 a1) { a0->unk8 = a1; a0->unkC = sub_81C97BC; } -u32 sub_81C97BC(struct Pokenav1Struct *a0) +static u32 sub_81C97BC(struct Pokenav1Struct *a0) { return a0->unk8; } -void sub_81C97C0(struct Pokenav1Struct *a0) +static void sub_81C97C0(struct Pokenav1Struct *a0) { a0->unk0 = sub_81C9268(); a0->unk2 = 1; - a0->unk4 = gUnknown_0861FC59[a0->unk2 + a0->unk0 * 6]; + a0->unk4 = sUnknown_0861FC59[a0->unk0][a0->unk2]; a0->unkC = sub_81C943C; } -void sub_81C97F8(struct Pokenav1Struct *a0) +static void sub_81C97F8(struct Pokenav1Struct *a0) { a0->unk0 = 3; a0->unk2 = 1; - a0->unk4 = gUnknown_0861FC59[19]; + a0->unk4 = sUnknown_0861FC59[3][1]; a0->unkC = sub_81C963C; -}
\ No newline at end of file +} + +static bool32 sub_81C9814(struct Pokenav1Struct *a0) +{ + if (gMain.newKeys & DPAD_UP) + { + if (--a0->unk2 < 0) + a0->unk2 = sUnknown_0861FC54[a0->unk0]; + + a0->unk4 = sUnknown_0861FC59[a0->unk0][a0->unk2]; + return TRUE; + } + else if (gMain.newKeys & DPAD_DOWN) + { + a0->unk2++; + if (a0->unk2 > sUnknown_0861FC54[a0->unk0]) + a0->unk2 = 0; + + a0->unk4 = sUnknown_0861FC59[a0->unk0][a0->unk2]; + return TRUE; + } + else + { + return FALSE; + } +} + +int sub_81C9894(void) +{ + struct Pokenav1Struct *state = GetSubstructPtr(1); + return state->unk0; +} + +int sub_81C98A4(void) +{ + struct Pokenav1Struct *state = GetSubstructPtr(1); + return state->unk2; +} + +int sub_81C98B4(void) +{ + struct Pokenav1Struct *state = GetSubstructPtr(1); + return state->unk4; +} + +int sub_81C98C4(void) +{ + struct Pokenav1Struct *state = GetSubstructPtr(1); + return state->unk6; +} |