diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/event_flag.c | 7 | ||||
-rw-r--r-- | src/pokemon.c | 3 | ||||
-rw-r--r-- | src/pokemon_1.c | 31 |
3 files changed, 38 insertions, 3 deletions
diff --git a/src/event_flag.c b/src/event_flag.c index 1a4afc1..501b1af 100644 --- a/src/event_flag.c +++ b/src/event_flag.c @@ -13,7 +13,9 @@ struct UnkEventStruct struct UnkEventStruct2 { /* 0x0 */ u32 unk0; - /* 0x4 */ u32 unk4; + /* 0x4 */ u32 *unk4; + /* 0x8 */ u16 unk8; + /* 0xA */ s16 unkA; }; extern void sub_800226C(u8 r0, u8 r1, u32* r2, u8 u3); @@ -22,6 +24,7 @@ extern void sub_800160C(struct UnkEventStruct2 *r0, u32 r1, u32 r2); extern u8 gUnknown_2000A88; +// TODO fix stack allocation from 0xC to 0x8 to make this match //u8 sub_8002718(struct UnkEventStruct *r0) //{ // struct UnkEventStruct2 temp; @@ -29,7 +32,7 @@ extern u8 gUnknown_2000A88; // MemoryCopy8(&gUnknown_2000A88, (u8 *)r0, (0x80 << 3)); // // // TODO fix this comparison to make it match -// if(r0->unkA != temp.unk4) +// if(temp.unkA != *(temp.unk4)) // return 0; // return 1; //} diff --git a/src/pokemon.c b/src/pokemon.c index ae2b801..55316d6 100644 --- a/src/pokemon.c +++ b/src/pokemon.c @@ -14,7 +14,8 @@ void LoadMonsterParameters(void) { gUnknown_203B45C = &gUnknown_202F400; gMonsterParametersFile = OpenFileAndGetFileDataPtr(&gUnknown_81075F4, &gUnknown_8300500); - gMonsterParameters.unk0 = gMonsterParametersFile->data; + // TODO verify this... other parts imply this is an array + gMonsterParameters.species = gMonsterParametersFile->data; gUnknown_20384E8 = 0; } diff --git a/src/pokemon_1.c b/src/pokemon_1.c new file mode 100644 index 0000000..6d4cf75 --- /dev/null +++ b/src/pokemon_1.c @@ -0,0 +1,31 @@ +#include "global.h" +#include "pokemon.h" +#include "file_system.h" + +extern int sprintf(char *, const char *, ...); + +extern struct gPokemon *gMonsterParameters; +extern struct FileArchive gUnknown_8510000; +extern const char gUnknown_8107684; + +//u8 sub_808DDD0(s16 r0) +//{ +// // Looks like this loads the dialogue sprite for the pokemon +// +// // TODO stack is being added instead of being substracted +// // Else this matches +// char buffer[0xC]; +// if(gMonsterParameters[r0].dialogue_sprites != 0) +// { +// sprintf(buffer, &gUnknown_8107684); +// OpenFileAndGetFileDataPtr(buffer, &gUnknown_8510000); +// return; +// } +// return 0; +//} + +bool8 sub_808DE10(s16 r0, s32 r1) +{ + // checking to see if dialogue sprite is available?? + return (gMonsterParameters[r0].dialogue_sprites >> r1) & 1; +} |