diff options
author | Raúl Peñacoba <raul.mikaop.zelda@gmail.com> | 2017-08-20 11:48:36 +0200 |
---|---|---|
committer | Raúl Peñacoba <raul.mikaop.zelda@gmail.com> | 2017-08-20 11:50:05 +0200 |
commit | 582ddf91f553fd20d3cee819d197a5b0bf9b800e (patch) | |
tree | b4aa4ded20a78a5850e58e7b2901377398b29ab3 /src | |
parent | 0ec479849db4ee6a6323df2da99280d91850632b (diff) |
sub_80EE06C. FIXME: try to match without goto
Diffstat (limited to 'src')
-rw-r--r-- | src/pokenav_before.c | 108 |
1 files changed, 106 insertions, 2 deletions
diff --git a/src/pokenav_before.c b/src/pokenav_before.c index af0933069..ba2e22b0b 100644 --- a/src/pokenav_before.c +++ b/src/pokenav_before.c @@ -41,9 +41,13 @@ struct UnknownPokenav0 { /* 0x76AA */ u8 var76aa; /* 0x76AB */ u8 fill76AB[0x10BD]; /* 0x8768 */ u32 var8768; - /* 0x876C */ u8 fill876B[0x6C]; + /* 0x876C */ u8 fill876C[0x8]; + /* 0x8774 */ s16 var8774; + /* 0x8776 */ u8 fill8776[0x62]; /* 0x87D8 */ u8 var87D8; - /* 0x87D9 */ u8 fill87D9[0x4F]; + /* 0x87D9 */ u8 fill87D9[0x3]; + /* 0x87DC */ s16 var87DC; + /* 0x87DE */ u8 fill87DE[0x4a]; /* 0x8828 */ u8 var8828; /* 0x8829 */ u8 fill8829[0x07bf]; /* 0x8FE8 */ s8 var8fe8; @@ -1986,5 +1990,105 @@ void sub_80EDEE4() { sub_80EBDBC(&sub_80EE06C); break; } +} +void sub_80F15A8(); +void sub_80F6A4C(); +bool8 sub_80F6AF0(); +void sub_80F3B00(); +bool8 sub_80F3B58(); +void sub_80F1494(); +u8 sub_80F68E8(); +void sub_80F3B94(); +bool8 sub_80F3BD4(); +void sub_80EE294(); + +void sub_80EE06C() { + u32 var1; + u16 var2; + switch (ewram0.var304) { + case 0: + sub_80F15A8(); + ewram0.var304++; + break; + case 1: + if (gMain.newAndRepeatedKeys & 0x40) { + if (ewram0.var87DC) { + PlaySE(0x5); + sub_80F6A4C(-1); + ewram0.var304++; + } + else goto label1; + } + else goto label1; + break; +label1: + if (gMain.newAndRepeatedKeys & 0x80) { + if (ewram0.var87DC < ewram0.var8774) { + PlaySE(0x5); + sub_80F6A4C(1); + ewram0.var304++; + } + else goto label2; + } + else goto label2; + break; +label2: + if (gMain.newKeys & A_BUTTON) { + PlaySE(0x5); + sub_80EEFBC(0xB); + ewram0.var304 = 0x4; + } + else if (gMain.newKeys & B_BUTTON) { + PlaySE(0x5); + sub_80EBDBC(&sub_80EE294); + } + break; + case 2: + if (sub_80F6AF0()) return; + ewram0.var304++; + break; + case 3: + var1 = sub_8055870(); + if (var1) return; + ewram0.var304 = var1; + break; + case 4: + sub_80F3B00(); + ewram0.var304++; + break; + case 5: + if (sub_80F3B58()) return; + sub_80F1494(); + ewram0.var304++; + sub_80EED9C(); + break; + case 6: + switch (sub_80F68E8()) { + case 1: + PlaySE(0x5); + sub_80F3B94(); + ewram0.var304 = 0x7; + break; + default: + case 0: + if (gMain.newKeys & B_BUTTON) { + PlaySE(0x5); + sub_80F3B94(); + ewram0.var304 = 0x8; + } + break; + } + break; + case 7: + if (sub_80F3BD4()) return; + ewram0.var304 = 0x4; + break; + case 8: + var2 = sub_80F3BD4(); + if (var2) return; + sub_80EEFBC(0x5); + ewram0.var304 = var2; + break; + } } |