diff --git a/include/main_02058FA4.h b/include/main_02058FA4.h index d61b76bc..79411742 100644 --- a/include/main_02058FA4.h +++ b/include/main_02058FA4.h @@ -11,13 +11,6 @@ struct unkStruct_02058FCC { const u8 field_0x18[4][0x4c]; }; -struct WriteMonsterInfoToSave_struct { - u32 unk0; - u32 unk4; - s32 result; - u32 unkC; -}; - bool8 ExplorerMazeMonsterExists(void); void sub_02058FCC(struct unkStruct_02058FCC *ptr); // Returns the name of the explorer maze team. If the language of the team name is different from the diff --git a/include/main_02059334.h b/include/main_02059334.h index 3dd31cbe..697b4bd1 100644 --- a/include/main_02059334.h +++ b/include/main_02059334.h @@ -2,9 +2,9 @@ #define PMDSKY_MAIN_02059334_H #include "common.h" -#include "main_02058FA4.h" +#include "save.h" -void WriteMonsterToSave(struct WriteMonsterInfoToSave_struct *write_info, struct ground_monster *monster); -void ReadMonsterFromSave(struct WriteMonsterInfoToSave_struct *read_info, struct ground_monster *monster); +void WriteMonsterToSave(struct bitstream *stream, struct ground_monster *monster); +void ReadMonsterFromSave(struct bitstream *stream, struct ground_monster *monster); #endif //PMDSKY_MAIN_02059334_H diff --git a/include/main_0205BD14.h b/include/main_0205BD14.h index 6997df43..990e56e9 100644 --- a/include/main_0205BD14.h +++ b/include/main_0205BD14.h @@ -1,9 +1,9 @@ #ifndef PMDSKY_MAIN_0205BD14_H #define PMDSKY_MAIN_0205BD14_H -#include "main_02058FA4.h" #include "main_0205B690.h" #include "util.h" +#include "save.h" void sub_0205BD14(u32 *dest, s32 index); u32 sub_0205BD40(u32 val); @@ -12,6 +12,6 @@ u8 sub_0205BD78(void); u32 sub_0205BD90(u32 a0); u32 sub_0205BD9C(u32 arg0, u32 arg1); u32 sub_0205BFB0(u32 p0, u32 p1); -void sub_0205C19C(struct WriteMonsterInfoToSave_struct *arg0, struct unkStruct_020B0A54 *arg1); +void sub_0205C19C(struct bitstream *stream, struct unkStruct_020B0A54 *arg1); #endif //PMDSKY_MAIN_0205BD14_H diff --git a/include/main_0205C440.h b/include/main_0205C440.h index fe126cf0..243b0801 100644 --- a/include/main_0205C440.h +++ b/include/main_0205C440.h @@ -1,9 +1,9 @@ #ifndef PMDSKY_MAIN_0205C440_H #define PMDSKY_MAIN_0205C440_H -#include "main_02058FA4.h" #include "main_0205B690.h" +#include "save.h" -void sub_0205C440(struct WriteMonsterInfoToSave_struct *write_info, struct unkStruct_020B0A54 *p1); +void sub_0205C440(struct bitstream *stream, struct unkStruct_020B0A54 *p1); #endif //PMDSKY_MAIN_0205C440_H diff --git a/src/main_0204DA2C.c b/src/main_0204DA2C.c index 91d3fa3a..7f8a8c4b 100644 --- a/src/main_0204DA2C.c +++ b/src/main_0204DA2C.c @@ -1,15 +1,16 @@ #include "main_0204DA2C.h" #include "main_0200330C.h" +#include "save.h" extern u8 ARM9_UNKNOWN_TABLE__NA_209E164[]; -extern void InitBitstreamForRead(u8*, u8*, s32); -extern void CopyBitsTo(u8* write_info, void* buf_write, s32 nbits); -extern void BitstreamDebug(u8*); +extern void InitBitstreamForRead(struct bitstream *stream, void* dst, s32 len); +extern void CopyBitsTo(struct bitstream *stream, void* buf_write, s32 nbits); +extern void BitstreamDebug(struct bitstream *stream); s32 sub_0204DA2C(u8* arg0, void* arg1, u8 arg2) { - u8 tmp3[16]; + struct bitstream stream; u8 tmp2[54]; u8 tmp1[34]; @@ -28,13 +29,13 @@ s32 sub_0204DA2C(u8* arg0, void* arg1, u8 arg2) s32 v1 = arg2 * 5; s32 v2 = (v1 & 7) + 7; - InitBitstreamForRead(tmp3, tmp1, (v1 >> 3) + (v2 >> 3)); + InitBitstreamForRead(&stream, tmp1, (v1 >> 3) + (v2 >> 3)); for (int i = 0; i < arg2; i++) { - CopyBitsTo(tmp3, &tmp2[i], 5); + CopyBitsTo(&stream, &tmp2[i], 5); } - BitstreamDebug(tmp3); + BitstreamDebug(&stream); MemcpySimple(arg1, tmp1, (v1 >> 3) + (v2 >> 3)); return 1; } diff --git a/src/main_02059060.c b/src/main_02059060.c index 1aa4e121..213b8166 100644 --- a/src/main_02059060.c +++ b/src/main_02059060.c @@ -1,5 +1,6 @@ #include "main_02058FA4.h" #include "common.h" +#include "save.h" #include "main_0202593C.h" #include "main_02058FA4.h" @@ -7,10 +8,10 @@ extern struct team_member_table *TEAM_MEMBER_TABLE_PTR; extern s32 GetLanguageType(void); extern void StrncpySimpleNoPadSafe(u8* dest, const u8* src, u32 n); -extern void InitBitstreamForRead(struct WriteMonsterInfoToSave_struct *ptr, void *start_addr, u32 total_len); -extern void WriteMonsterToSave(struct WriteMonsterInfoToSave_struct *write_info, struct ground_monster *monster); +extern void InitBitstreamForRead(struct bitstream *ptr, void *start_addr, u32 total_len); +extern void WriteMonsterToSave(struct bitstream *stream, struct ground_monster *monster); extern void CopyBitsTo(void *ctx, void *src, s32 nbits); -extern void BitstreamDebug(struct WriteMonsterInfoToSave_struct *ptr); +extern void BitstreamDebug(struct bitstream *ptr); void GetExplorerMazeTeamName(u8 *dest) { @@ -53,26 +54,26 @@ struct ground_monster* GetExplorerMazeMonster(s16 entry_number) s32 WriteMonsterInfoToSave(void* start_addr, u32 total_len) { - struct WriteMonsterInfoToSave_struct local_struct; + struct bitstream stream; - InitBitstreamForRead(&local_struct, start_addr, total_len); + InitBitstreamForRead(&stream, start_addr, total_len); for (s32 i = 0; i < MAX_GROUND_TEAM_MEMBERS; i++) { - WriteMonsterToSave(&local_struct, &TEAM_MEMBER_TABLE_PTR->members[i]); + WriteMonsterToSave(&stream, &TEAM_MEMBER_TABLE_PTR->members[i]); } - CopyBitsTo(&local_struct, &TEAM_MEMBER_TABLE_PTR->field_0x9878, 64); - CopyBitsTo(&local_struct, &TEAM_MEMBER_TABLE_PTR->explorer_maze_team_native_language, 4); - CopyBitsTo(&local_struct, &TEAM_MEMBER_TABLE_PTR->field_0x9881, 4); - CopyBitsTo(&local_struct, &TEAM_MEMBER_TABLE_PTR->explorer_maze_team_name, 80); + CopyBitsTo(&stream, &TEAM_MEMBER_TABLE_PTR->field_0x9878, 64); + CopyBitsTo(&stream, &TEAM_MEMBER_TABLE_PTR->explorer_maze_team_native_language, 4); + CopyBitsTo(&stream, &TEAM_MEMBER_TABLE_PTR->field_0x9881, 4); + CopyBitsTo(&stream, &TEAM_MEMBER_TABLE_PTR->explorer_maze_team_name, 80); for (s32 i = 0; i < 4; i++) { - WriteMonsterToSave(&local_struct, &TEAM_MEMBER_TABLE_PTR->explorer_maze_monsters[i]); + WriteMonsterToSave(&stream, &TEAM_MEMBER_TABLE_PTR->explorer_maze_monsters[i]); } - BitstreamDebug(&local_struct); + BitstreamDebug(&stream); - return local_struct.result; + return stream.bit_idx; } diff --git a/src/main_02059334.c b/src/main_02059334.c index e3ebba5f..be1d15fd 100644 --- a/src/main_02059334.c +++ b/src/main_02059334.c @@ -1,52 +1,53 @@ #include "main_02059334.h" +#include "save.h" extern void CopyBitsTo(void *ctx, void *src, s32 nbits); -extern void Copy16BitsTo(void *write_info, void *buf_write); -extern void CopyMovesetTo(struct WriteMonsterInfoToSave_struct *write_info, void *buffer_write); +extern void Copy16BitsTo(void *stream, void *buf_write); +extern void CopyMovesetTo(struct bitstream *stream, void *buffer_write); extern void* memset(void *s, s32 c, u32 n); -extern void CopyBitsFrom(void *read_info, void *buf_read, s32 nbits); -extern void Copy16BitsFrom(void *read_info, void *buf_read); -extern void CopyMovesetFrom(struct WriteMonsterInfoToSave_struct *read_info, void *dst); +extern void CopyBitsFrom(void *stream, void *buf_read, s32 nbits); +extern void Copy16BitsFrom(void *stream, void *buf_read); +extern void CopyMovesetFrom(struct bitstream *stream, void *dst); -void WriteMonsterToSave(struct WriteMonsterInfoToSave_struct *write_info, struct ground_monster *monster) +void WriteMonsterToSave(struct bitstream *stream, struct ground_monster *monster) { - CopyBitsTo(write_info, &monster->is_valid, 1); - CopyBitsTo(write_info, &monster->level, 7); - CopyBitsTo(write_info, &monster->id, 11); - Copy16BitsTo(write_info, &monster->joined_at); - CopyBitsTo(write_info, &monster->level_at_first_evo, 7); - CopyBitsTo(write_info, &monster->level_at_second_evo, 7); - CopyBitsTo(write_info, &monster->iq, 10); - CopyBitsTo(write_info, &monster->max_hp, 10); - CopyBitsTo(write_info, &monster->offensive_stats[0], 8); - CopyBitsTo(write_info, &monster->offensive_stats[1], 8); - CopyBitsTo(write_info, &monster->defensive_stats[0], 8); - CopyBitsTo(write_info, &monster->defensive_stats[1], 8); - CopyBitsTo(write_info, &monster->exp, 24); - CopyBitsTo(write_info, &monster->iq_skill_flags, 69); - CopyBitsTo(write_info, &monster->tactic, 4); - CopyMovesetTo(write_info, &monster->moves); - CopyBitsTo(write_info, &monster->name, 80); + CopyBitsTo(stream, &monster->is_valid, 1); + CopyBitsTo(stream, &monster->level, 7); + CopyBitsTo(stream, &monster->id, 11); + Copy16BitsTo(stream, &monster->joined_at); + CopyBitsTo(stream, &monster->level_at_first_evo, 7); + CopyBitsTo(stream, &monster->level_at_second_evo, 7); + CopyBitsTo(stream, &monster->iq, 10); + CopyBitsTo(stream, &monster->max_hp, 10); + CopyBitsTo(stream, &monster->offensive_stats[0], 8); + CopyBitsTo(stream, &monster->offensive_stats[1], 8); + CopyBitsTo(stream, &monster->defensive_stats[0], 8); + CopyBitsTo(stream, &monster->defensive_stats[1], 8); + CopyBitsTo(stream, &monster->exp, 24); + CopyBitsTo(stream, &monster->iq_skill_flags, 69); + CopyBitsTo(stream, &monster->tactic, 4); + CopyMovesetTo(stream, &monster->moves); + CopyBitsTo(stream, &monster->name, 80); } -void ReadMonsterFromSave(struct WriteMonsterInfoToSave_struct *read_info, struct ground_monster *monster) +void ReadMonsterFromSave(struct bitstream *stream, struct ground_monster *monster) { memset(monster, 0, 68); - CopyBitsFrom(read_info, &monster->is_valid, 1); - CopyBitsFrom(read_info, &monster->level, 7); - CopyBitsFrom(read_info, &monster->id, 11); - Copy16BitsFrom(read_info, &monster->joined_at); - CopyBitsFrom(read_info, &monster->level_at_first_evo, 7); - CopyBitsFrom(read_info, &monster->level_at_second_evo, 7); - CopyBitsFrom(read_info, &monster->iq, 10); - CopyBitsFrom(read_info, &monster->max_hp, 10); - CopyBitsFrom(read_info, &monster->offensive_stats[0], 8); - CopyBitsFrom(read_info, &monster->offensive_stats[1], 8); - CopyBitsFrom(read_info, &monster->defensive_stats[0], 8); - CopyBitsFrom(read_info, &monster->defensive_stats[1], 8); - CopyBitsFrom(read_info, &monster->exp, 24); - CopyBitsFrom(read_info, &monster->iq_skill_flags, 69); - CopyBitsFrom(read_info, &monster->tactic, 4); - CopyMovesetFrom(read_info, &monster->moves); - CopyBitsFrom(read_info, &monster->name, 80); + CopyBitsFrom(stream, &monster->is_valid, 1); + CopyBitsFrom(stream, &monster->level, 7); + CopyBitsFrom(stream, &monster->id, 11); + Copy16BitsFrom(stream, &monster->joined_at); + CopyBitsFrom(stream, &monster->level_at_first_evo, 7); + CopyBitsFrom(stream, &monster->level_at_second_evo, 7); + CopyBitsFrom(stream, &monster->iq, 10); + CopyBitsFrom(stream, &monster->max_hp, 10); + CopyBitsFrom(stream, &monster->offensive_stats[0], 8); + CopyBitsFrom(stream, &monster->offensive_stats[1], 8); + CopyBitsFrom(stream, &monster->defensive_stats[0], 8); + CopyBitsFrom(stream, &monster->defensive_stats[1], 8); + CopyBitsFrom(stream, &monster->exp, 24); + CopyBitsFrom(stream, &monster->iq_skill_flags, 69); + CopyBitsFrom(stream, &monster->tactic, 4); + CopyMovesetFrom(stream, &monster->moves); + CopyBitsFrom(stream, &monster->name, 80); } diff --git a/src/main_0205BD14.c b/src/main_0205BD14.c index 14ea5e2f..34e5da8f 100644 --- a/src/main_0205BD14.c +++ b/src/main_0205BD14.c @@ -1,7 +1,7 @@ #include "main_0205BD14.h" #include "common.h" +#include "save.h" #include "main_0200224C.h" -#include "main_02058FA4.h" #include "main_02059A74.h" #include "main_0205B690.h" #include "main_0205C440.h" @@ -9,17 +9,17 @@ extern union unkStruct_020B0A54_union _020B0A54; extern u32 _022B57BC; -extern void InitBitstreamForWrite(void *v0, u32 v1, u32 v2); -extern void CopyBitsFrom(void *read_info, void *buf_read, s32 nbits); +extern void InitBitstreamForWrite(struct bitstream *stream, u32 v1, u32 v2); +extern void CopyBitsFrom(struct bitstream *stream, void *buf_read, s32 nbits); extern void* memset(void *s, s32 c, u32 n); -extern void Copy16BitsFrom(void *read_info, void *buf_read); -extern void CopyMovesetFrom(struct WriteMonsterInfoToSave_struct *read_info, void *dst); -extern void BitstreamDebug(struct WriteMonsterInfoToSave_struct *write_info); +extern void Copy16BitsFrom(struct bitstream *stream, void *buf_read); +extern void CopyMovesetFrom(struct bitstream *stream, void *dst); +extern void BitstreamDebug(struct bitstream *stream); extern void sub_020634F4(void); -extern void InitBitstreamForRead(struct WriteMonsterInfoToSave_struct *write_info, u32 p1, u32 p2); -extern void CopyBitsTo(void *write_info, void* buf_write, s32 nbits); -extern void Copy16BitsTo(void *write_info, void *buf_write); -extern void CopyMovesetTo(struct WriteMonsterInfoToSave_struct *write_info, void *buffer_write); +extern void InitBitstreamForRead(struct bitstream *stream, u32 p1, u32 p2); +extern void CopyBitsTo(struct bitstream *stream, void* buf_write, s32 nbits); +extern void Copy16BitsTo(struct bitstream *stream, void *buf_write); +extern void CopyMovesetTo(struct bitstream *stream, void *buffer_write); void sub_0205BD14(u32 *dest, s32 index) { @@ -53,120 +53,120 @@ u32 sub_0205BD90(u32 a0) u32 sub_0205BD9C(u32 arg0, u32 arg1) { - struct WriteMonsterInfoToSave_struct temp; + struct bitstream stream; - InitBitstreamForWrite(&temp, arg0, arg1); - CopyBitsFrom(&temp, &_022B57BC, 32); + InitBitstreamForWrite(&stream, arg0, arg1); + CopyBitsFrom(&stream, &_022B57BC, 32); for (s32 i = 0; i < 32; i++) { - sub_0205C19C(&temp, &_020B0A54.struct0[i]); + sub_0205C19C(&stream, &_020B0A54.struct0[i]); } struct ground_monster *monster = _020B0A54.struct1.unk8.monster; memset(monster, 0, 68); - CopyBitsFrom(&temp, &monster->is_valid, 4); - CopyBitsFrom(&temp, &monster->level, 7); - Copy16BitsFrom(&temp, &monster->joined_at); - CopyBitsFrom(&temp, &monster->id, 11); - sub_02059AE8(&temp, &monster->level_at_first_evo); - sub_02059AE8(&temp, &monster->level_at_second_evo); - CopyBitsFrom(&temp, &monster->iq, 10); - CopyBitsFrom(&temp, &monster->max_hp, 10); - CopyBitsFrom(&temp, &monster->offensive_stats[0], 8); - CopyBitsFrom(&temp, &monster->offensive_stats[1], 8); - CopyBitsFrom(&temp, &monster->defensive_stats[0], 8); - CopyBitsFrom(&temp, &monster->defensive_stats[1], 8); - CopyBitsFrom(&temp, &monster->exp, 24); - CopyBitsFrom(&temp, &monster->iq_skill_flags, 69); - CopyBitsFrom(&temp, &monster->tactic, 4); - CopyMovesetFrom(&temp, monster->moves); - CopyBitsFrom(&temp, monster->name, 80); + CopyBitsFrom(&stream, &monster->is_valid, 4); + CopyBitsFrom(&stream, &monster->level, 7); + Copy16BitsFrom(&stream, &monster->joined_at); + CopyBitsFrom(&stream, &monster->id, 11); + sub_02059AE8(&stream, &monster->level_at_first_evo); + sub_02059AE8(&stream, &monster->level_at_second_evo); + CopyBitsFrom(&stream, &monster->iq, 10); + CopyBitsFrom(&stream, &monster->max_hp, 10); + CopyBitsFrom(&stream, &monster->offensive_stats[0], 8); + CopyBitsFrom(&stream, &monster->offensive_stats[1], 8); + CopyBitsFrom(&stream, &monster->defensive_stats[0], 8); + CopyBitsFrom(&stream, &monster->defensive_stats[1], 8); + CopyBitsFrom(&stream, &monster->exp, 24); + CopyBitsFrom(&stream, &monster->iq_skill_flags, 69); + CopyBitsFrom(&stream, &monster->tactic, 4); + CopyMovesetFrom(&stream, monster->moves); + CopyBitsFrom(&stream, monster->name, 80); struct unkStruct_020B0A54_unk8_inner *inner = _020B0A54.struct1.unk8.unk8; memset(&inner->unk44, 0, 6); - CopyBitsFrom(&temp, &inner->unk46, 11); - CopyBitsFrom(&temp, &inner->unk48, 11); + CopyBitsFrom(&stream, &inner->unk46, 11); + CopyBitsFrom(&stream, &inner->unk48, 11); - CopyBitsFrom(&temp, (void*) _020B0A54.struct1.unk4, 32); + CopyBitsFrom(&stream, (void*) _020B0A54.struct1.unk4, 32); for (s32 i = 0; i < 32; i++) { - CopyBitsFrom(&temp, _020B0A54.fp[1] + 4 + (i * 8), 64); + CopyBitsFrom(&stream, _020B0A54.fp[1] + 4 + (i * 8), 64); } - BitstreamDebug(&temp); + BitstreamDebug(&stream); Rand16Bit(); sub_020634F4(); - return temp.result; + return stream.bit_idx; } u32 sub_0205BFB0(u32 p0, u32 p1) { - struct WriteMonsterInfoToSave_struct stack_var; + struct bitstream stream; - InitBitstreamForRead(&stack_var, p0, p1); - CopyBitsTo(&stack_var, &_022B57BC, 32); + InitBitstreamForRead(&stream, p0, p1); + CopyBitsTo(&stream, &_022B57BC, 32); for (s32 i = 0; i < 32; i++) { - sub_0205C440(&stack_var, &_020B0A54.struct0[i]); + sub_0205C440(&stream, &_020B0A54.struct0[i]); } struct ground_monster *monster = _020B0A54.struct1.unk8.monster; - CopyBitsTo(&stack_var, &monster->is_valid, 4); - CopyBitsTo(&stack_var, &monster->level, 7); - Copy16BitsTo(&stack_var, &monster->joined_at); - CopyBitsTo(&stack_var, &monster->id, 11); - sub_02059AF8(&stack_var, &monster->level_at_first_evo); - sub_02059AF8(&stack_var, &monster->level_at_second_evo); - CopyBitsTo(&stack_var, &monster->iq, 10); - CopyBitsTo(&stack_var, &monster->max_hp, 10); - CopyBitsTo(&stack_var, &monster->offensive_stats[0], 8); - CopyBitsTo(&stack_var, &monster->offensive_stats[1], 8); - CopyBitsTo(&stack_var, &monster->defensive_stats[0], 8); - CopyBitsTo(&stack_var, &monster->defensive_stats[1], 8); - CopyBitsTo(&stack_var, &monster->exp, 24); - CopyBitsTo(&stack_var, &monster->iq_skill_flags, 69); - CopyBitsTo(&stack_var, &monster->tactic, 4); - CopyMovesetTo(&stack_var, monster->moves); - CopyBitsTo(&stack_var, monster->name, 80); + CopyBitsTo(&stream, &monster->is_valid, 4); + CopyBitsTo(&stream, &monster->level, 7); + Copy16BitsTo(&stream, &monster->joined_at); + CopyBitsTo(&stream, &monster->id, 11); + sub_02059AF8(&stream, &monster->level_at_first_evo); + sub_02059AF8(&stream, &monster->level_at_second_evo); + CopyBitsTo(&stream, &monster->iq, 10); + CopyBitsTo(&stream, &monster->max_hp, 10); + CopyBitsTo(&stream, &monster->offensive_stats[0], 8); + CopyBitsTo(&stream, &monster->offensive_stats[1], 8); + CopyBitsTo(&stream, &monster->defensive_stats[0], 8); + CopyBitsTo(&stream, &monster->defensive_stats[1], 8); + CopyBitsTo(&stream, &monster->exp, 24); + CopyBitsTo(&stream, &monster->iq_skill_flags, 69); + CopyBitsTo(&stream, &monster->tactic, 4); + CopyMovesetTo(&stream, monster->moves); + CopyBitsTo(&stream, monster->name, 80); struct unkStruct_020B0A54_unk8_inner *inner = _020B0A54.struct1.unk8.unk8; - CopyBitsTo(&stack_var, &inner->unk46, 11); - CopyBitsTo(&stack_var, &inner->unk48, 11); + CopyBitsTo(&stream, &inner->unk46, 11); + CopyBitsTo(&stream, &inner->unk48, 11); - CopyBitsTo(&stack_var, (void*) _020B0A54.struct1.unk4, 32); + CopyBitsTo(&stream, (void*) _020B0A54.struct1.unk4, 32); for (s32 i = 0; i < 32; i++) { - CopyBitsTo(&stack_var, _020B0A54.fp[1] + 4 + (i * 8), 64); + CopyBitsTo(&stream, _020B0A54.fp[1] + 4 + (i * 8), 64); } - BitstreamDebug(&stack_var); + BitstreamDebug(&stream); - return stack_var.result; + return stream.bit_idx; } -void sub_0205C19C(struct WriteMonsterInfoToSave_struct *write_info, struct unkStruct_020B0A54 *arg1) +void sub_0205C19C(struct bitstream *stream, struct unkStruct_020B0A54 *arg1) { - CopyBitsFrom(write_info, &arg1->unk0, 4); - Copy16BitsFrom(write_info, &arg1->unk4); - CopyBitsFrom(write_info, &arg1->unk8.monster, 24); - CopyBitsFrom(write_info, &arg1->unkC, 64); - CopyBitsFrom(write_info, &arg1->unk14, 0x40); - CopyBitsFrom(write_info, &arg1->unk1C, 4); - CopyBitsFrom(write_info, &arg1->unk1D, 0x50); - CopyBitsFrom(write_info, &arg1->unk32, 0x120); - CopyBitsFrom(write_info, &arg1->unk56, 0x240); - CopyBitsFrom(write_info, &arg1->unkA0, 0xb); - CopyBitsFrom(write_info, &arg1->unkA2, 0xb); - CopyBitsFrom(write_info, &arg1->unkA4, 0x40); - CopyBitsFrom(write_info, &arg1->unkAC, 8); + CopyBitsFrom(stream, &arg1->unk0, 4); + Copy16BitsFrom(stream, &arg1->unk4); + CopyBitsFrom(stream, &arg1->unk8.monster, 24); + CopyBitsFrom(stream, &arg1->unkC, 64); + CopyBitsFrom(stream, &arg1->unk14, 0x40); + CopyBitsFrom(stream, &arg1->unk1C, 4); + CopyBitsFrom(stream, &arg1->unk1D, 0x50); + CopyBitsFrom(stream, &arg1->unk32, 0x120); + CopyBitsFrom(stream, &arg1->unk56, 0x240); + CopyBitsFrom(stream, &arg1->unkA0, 0xb); + CopyBitsFrom(stream, &arg1->unkA2, 0xb); + CopyBitsFrom(stream, &arg1->unkA4, 0x40); + CopyBitsFrom(stream, &arg1->unkAC, 8); bool8 temp; - CopyBitsFrom(write_info, &temp, 1); + CopyBitsFrom(stream, &temp, 1); arg1->unkAD = temp != FALSE; - CopyBitsFrom(write_info, &arg1->unkAE, 2); + CopyBitsFrom(stream, &arg1->unkAE, 2); } diff --git a/src/main_0205C440.c b/src/main_0205C440.c index 27d736ff..a622af31 100644 --- a/src/main_0205C440.c +++ b/src/main_0205C440.c @@ -1,26 +1,27 @@ #include "main_0205C440.h" +#include "save.h" extern u8 _020A3673; extern u8 _020A3670; -extern void CopyBitsTo(void *write_info, void* buf_write, s32 nbits); -extern void Copy16BitsTo(void *write_info, void *buf_write); +extern void CopyBitsTo(struct bitstream *stream, void* buf_write, s32 nbits); +extern void Copy16BitsTo(struct bitstream *stream, void *buf_write); -void sub_0205C440(struct WriteMonsterInfoToSave_struct *write_info, struct unkStruct_020B0A54 *p1) +void sub_0205C440(struct bitstream *stream, struct unkStruct_020B0A54 *p1) { - CopyBitsTo(write_info, &p1->unk0, 4); - Copy16BitsTo(write_info, &p1->unk4); - CopyBitsTo(write_info, &p1->unk8.monster, 24); - CopyBitsTo(write_info, &p1->unkC, 64); - CopyBitsTo(write_info, &p1->unk14, 0x40); - CopyBitsTo(write_info, &p1->unk1C, 4); - CopyBitsTo(write_info, &p1->unk1D, 0x50); - CopyBitsTo(write_info, &p1->unk32, 0x120); - CopyBitsTo(write_info, &p1->unk56, 0x240); - CopyBitsTo(write_info, &p1->unkA0, 0xb); - CopyBitsTo(write_info, &p1->unkA2, 0xb); - CopyBitsTo(write_info, &p1->unkA4, 0x40); - CopyBitsTo(write_info, &p1->unkAC, 8); - CopyBitsTo(write_info, p1->unkAD == TRUE ? &_020A3673 : &_020A3670, 1); - CopyBitsTo(write_info, &p1->unkAE, 2); + CopyBitsTo(stream, &p1->unk0, 4); + Copy16BitsTo(stream, &p1->unk4); + CopyBitsTo(stream, &p1->unk8.monster, 24); + CopyBitsTo(stream, &p1->unkC, 64); + CopyBitsTo(stream, &p1->unk14, 0x40); + CopyBitsTo(stream, &p1->unk1C, 4); + CopyBitsTo(stream, &p1->unk1D, 0x50); + CopyBitsTo(stream, &p1->unk32, 0x120); + CopyBitsTo(stream, &p1->unk56, 0x240); + CopyBitsTo(stream, &p1->unkA0, 0xb); + CopyBitsTo(stream, &p1->unkA2, 0xb); + CopyBitsTo(stream, &p1->unkA4, 0x40); + CopyBitsTo(stream, &p1->unkAC, 8); + CopyBitsTo(stream, p1->unkAD == TRUE ? &_020A3673 : &_020A3670, 1); + CopyBitsTo(stream, &p1->unkAE, 2); }