diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/pokenav.c | 41 | ||||
-rw-r--r-- | src/use_pokeblock.c | 2 |
2 files changed, 42 insertions, 1 deletions
diff --git a/src/pokenav.c b/src/pokenav.c index f57a98df6..7e15d3469 100644 --- a/src/pokenav.c +++ b/src/pokenav.c @@ -1,6 +1,9 @@ // Includes #include "global.h" +#include "ewram.h" +#include "trig.h" +#include "pokenav.h" // Static type declarations @@ -13,4 +16,42 @@ EWRAM_DATA u16 gUnknown_020388B4 = 0; // .rodata +struct UnkPokenavStruct *const gUnknown_083DFEC4 = (struct UnkPokenavStruct *)gSharedMem; + +extern const u8 gUnknown_083E4890[]; + // .text + +void sub_80F55AC(u8 *a0, struct UnkPokenav11 a1[]) +{ + u16 i; + u8 r2 = gUnknown_083E4890[*a0++]; + u8 r7; + s8 r12; + + a1[0].unk0 = 0x9b; + a1[0].unk2 = 0x5b - r2; + + r7 = 0x40; + r12 = 0; + for (i = 1; i < 5; i++) + { + r7 += 0x33; + r12--; + if (r12 < 0) + r12 = 4; + if (r12 == 2) + r7++; + r2 = gUnknown_083E4890[*a0++]; + a1[r12].unk0 = ((r2 * gSineTable[r7 + 0x40]) >> 8) + 0x9b; + a1[r12].unk2 = 0x5b - ((r2 * gSineTable[r7]) >> 8); + + if (r12 <= 2 && (r2 != 0x20 || r12 != 2)) + a1[r12].unk0 = ((r2 * gSineTable[r7 + 0x40]) >> 8) + 0x9c; + } +} + +void sub_80F567C(u8 *a0, struct UnkPokenav11 a1[]) +{ + sub_80F55AC(a0, a1); +} diff --git a/src/use_pokeblock.c b/src/use_pokeblock.c index c8506fbcf..5bfe47845 100644 --- a/src/use_pokeblock.c +++ b/src/use_pokeblock.c @@ -306,7 +306,7 @@ static void sub_8136294(void) gUnknown_02039304->unk50++; break; case 17: - sub_80F567C(&gUnknown_083DFEC4->unk8ff0, gUnknown_083DFEC4->unk9004); + sub_80F567C(gUnknown_083DFEC4->unk8ff0[0], gUnknown_083DFEC4->unk9004[0]); sub_80F5B38(); gUnknown_02039304->unk50++; break; |