mirror of
https://github.com/pret/pmd-sky.git
synced 2026-08-28 13:50:45 -05:00
Merge pull request #261 from Chesyon/bitstreams
Some checks failed
build / build (push) Has been cancelled
Some checks failed
build / build (push) Has been cancelled
Decomp CopyMove(set)To/FromStream
This commit is contained in:
@@ -1,10 +1,6 @@
|
||||
#pragma once
|
||||
.public _s32_div_f
|
||||
.public CopyBitsFrom
|
||||
.public CopyBitsTo
|
||||
.public DUNGEON_MOVE_TABLES
|
||||
.public GetInfoMoveGround
|
||||
.public memset
|
||||
.public Rand16Bit
|
||||
.public RECOIL_MOVE_LIST
|
||||
.public StringFromId
|
||||
.public Rand16Bit
|
||||
.public _s32_div_f
|
||||
|
||||
4
asm/include/main_02014B1C.inc
Normal file
4
asm/include/main_02014B1C.inc
Normal file
@@ -0,0 +1,4 @@
|
||||
#pragma once
|
||||
.public CopyBitsFrom
|
||||
.public CopyBitsTo
|
||||
.public memset
|
||||
@@ -23,8 +23,8 @@
|
||||
.public Copy16BitsTo
|
||||
.public CopyBitsFrom
|
||||
.public CopyBitsTo
|
||||
.public CopyMovesetFrom
|
||||
.public CopyMovesetTo
|
||||
.public CopyMovesetFromStream
|
||||
.public CopyMovesetToStream
|
||||
.public CreateAdvancedMenu
|
||||
.public CreateAdvancedTextBox
|
||||
.public CreateControlsChart
|
||||
|
||||
@@ -1073,173 +1073,3 @@ _02014A3C:
|
||||
mov r0, r2
|
||||
ldmia sp!, {r3, r4, r5, r6, r7, pc}
|
||||
arm_func_end sub_020149C0
|
||||
|
||||
arm_func_start CopyMoveTo
|
||||
CopyMoveTo: ; 0x02014A4C
|
||||
stmdb sp!, {r3, r4, r5, lr}
|
||||
mov r5, r0
|
||||
mov r4, r1
|
||||
mov r2, #4
|
||||
bl CopyBitsTo
|
||||
mov r0, r5
|
||||
add r1, r4, #2
|
||||
mov r2, #0xa
|
||||
bl CopyBitsTo
|
||||
mov r0, r5
|
||||
add r1, r4, #4
|
||||
mov r2, #7
|
||||
bl CopyBitsTo
|
||||
ldmia sp!, {r3, r4, r5, pc}
|
||||
arm_func_end CopyMoveTo
|
||||
|
||||
arm_func_start CopyMoveFrom
|
||||
CopyMoveFrom: ; 0x02014A84
|
||||
stmdb sp!, {r3, r4, r5, lr}
|
||||
mov r5, r0
|
||||
mov r4, r1
|
||||
mov r2, #4
|
||||
bl CopyBitsFrom
|
||||
mov r0, r5
|
||||
add r1, r4, #2
|
||||
mov r2, #0xa
|
||||
bl CopyBitsFrom
|
||||
mov r0, r5
|
||||
add r1, r4, #4
|
||||
mov r2, #7
|
||||
bl CopyBitsFrom
|
||||
ldmia sp!, {r3, r4, r5, pc}
|
||||
arm_func_end CopyMoveFrom
|
||||
|
||||
arm_func_start CopyMovesetTo
|
||||
CopyMovesetTo: ; 0x02014ABC
|
||||
stmdb sp!, {r3, r4, r5, r6, r7, lr}
|
||||
mov r7, r0
|
||||
mov r6, r1
|
||||
mov r5, #0
|
||||
mov r4, #6
|
||||
_02014AD0:
|
||||
mla r1, r5, r4, r6
|
||||
mov r0, r7
|
||||
bl CopyMoveTo
|
||||
add r5, r5, #1
|
||||
cmp r5, #4
|
||||
blt _02014AD0
|
||||
ldmia sp!, {r3, r4, r5, r6, r7, pc}
|
||||
arm_func_end CopyMovesetTo
|
||||
|
||||
arm_func_start CopyMovesetFrom
|
||||
CopyMovesetFrom: ; 0x02014AEC
|
||||
stmdb sp!, {r3, r4, r5, r6, r7, lr}
|
||||
mov r7, r0
|
||||
mov r6, r1
|
||||
mov r5, #0
|
||||
mov r4, #6
|
||||
_02014B00:
|
||||
mla r1, r5, r4, r6
|
||||
mov r0, r7
|
||||
bl CopyMoveFrom
|
||||
add r5, r5, #1
|
||||
cmp r5, #4
|
||||
blt _02014B00
|
||||
ldmia sp!, {r3, r4, r5, r6, r7, pc}
|
||||
arm_func_end CopyMovesetFrom
|
||||
|
||||
arm_func_start sub_02014B1C
|
||||
sub_02014B1C: ; 0x02014B1C
|
||||
stmdb sp!, {r3, r4, r5, lr}
|
||||
mov r5, r0
|
||||
mov r4, r1
|
||||
mov r2, #4
|
||||
bl CopyBitsTo
|
||||
mov r0, r5
|
||||
add r1, r4, #2
|
||||
mov r2, #1
|
||||
bl CopyBitsTo
|
||||
mov r0, r5
|
||||
add r1, r4, #4
|
||||
mov r2, #0xa
|
||||
bl CopyBitsTo
|
||||
mov r0, r5
|
||||
add r1, r4, #6
|
||||
mov r2, #7
|
||||
bl CopyBitsTo
|
||||
mov r0, r5
|
||||
add r1, r4, #7
|
||||
mov r2, #7
|
||||
bl CopyBitsTo
|
||||
ldmia sp!, {r3, r4, r5, pc}
|
||||
arm_func_end sub_02014B1C
|
||||
|
||||
arm_func_start sub_02014B74
|
||||
sub_02014B74: ; 0x02014B74
|
||||
stmdb sp!, {r4, r5, r6, lr}
|
||||
mov r6, r0
|
||||
mov r5, r1
|
||||
mov r4, #0
|
||||
_02014B84:
|
||||
mov r0, r6
|
||||
add r1, r5, r4, lsl #3
|
||||
bl sub_02014B1C
|
||||
add r4, r4, #1
|
||||
cmp r4, #4
|
||||
blt _02014B84
|
||||
mov r0, r6
|
||||
add r1, r5, #0x20
|
||||
mov r2, #8
|
||||
bl CopyBitsTo
|
||||
ldmia sp!, {r4, r5, r6, pc}
|
||||
arm_func_end sub_02014B74
|
||||
|
||||
arm_func_start sub_02014BB0
|
||||
sub_02014BB0: ; 0x02014BB0
|
||||
stmdb sp!, {r3, r4, r5, lr}
|
||||
mov r4, r1
|
||||
mov r5, r0
|
||||
mov r0, r4
|
||||
mov r1, #0
|
||||
mov r2, #8
|
||||
bl memset
|
||||
mov r0, r5
|
||||
mov r1, r4
|
||||
mov r2, #4
|
||||
bl CopyBitsFrom
|
||||
mov r0, r5
|
||||
add r1, r4, #2
|
||||
mov r2, #1
|
||||
bl CopyBitsFrom
|
||||
mov r0, r5
|
||||
add r1, r4, #4
|
||||
mov r2, #0xa
|
||||
bl CopyBitsFrom
|
||||
mov r0, r5
|
||||
add r1, r4, #6
|
||||
mov r2, #7
|
||||
bl CopyBitsFrom
|
||||
mov r0, r5
|
||||
add r1, r4, #7
|
||||
mov r2, #7
|
||||
bl CopyBitsFrom
|
||||
ldmia sp!, {r3, r4, r5, pc}
|
||||
arm_func_end sub_02014BB0
|
||||
|
||||
arm_func_start sub_02014C20
|
||||
sub_02014C20: ; 0x02014C20
|
||||
stmdb sp!, {r4, r5, r6, lr}
|
||||
mov r6, r0
|
||||
mov r5, r1
|
||||
mov r4, #0
|
||||
_02014C30:
|
||||
mov r0, r6
|
||||
add r1, r5, r4, lsl #3
|
||||
bl sub_02014BB0
|
||||
add r4, r4, #1
|
||||
cmp r4, #4
|
||||
blt _02014C30
|
||||
mov r3, #0
|
||||
mov r0, r6
|
||||
add r1, r5, #0x20
|
||||
mov r2, #8
|
||||
strb r3, [r5, #0x20]
|
||||
bl CopyBitsFrom
|
||||
ldmia sp!, {r4, r5, r6, pc}
|
||||
arm_func_end sub_02014C20
|
||||
|
||||
104
asm/main_02014B1C.s
Normal file
104
asm/main_02014B1C.s
Normal file
@@ -0,0 +1,104 @@
|
||||
.include "asm/macros.inc"
|
||||
.include "main_02014B1C.inc"
|
||||
|
||||
.text
|
||||
|
||||
arm_func_start sub_02014B1C
|
||||
sub_02014B1C: ; 0x02014B1C
|
||||
stmdb sp!, {r3, r4, r5, lr}
|
||||
mov r5, r0
|
||||
mov r4, r1
|
||||
mov r2, #4
|
||||
bl CopyBitsTo
|
||||
mov r0, r5
|
||||
add r1, r4, #2
|
||||
mov r2, #1
|
||||
bl CopyBitsTo
|
||||
mov r0, r5
|
||||
add r1, r4, #4
|
||||
mov r2, #0xa
|
||||
bl CopyBitsTo
|
||||
mov r0, r5
|
||||
add r1, r4, #6
|
||||
mov r2, #7
|
||||
bl CopyBitsTo
|
||||
mov r0, r5
|
||||
add r1, r4, #7
|
||||
mov r2, #7
|
||||
bl CopyBitsTo
|
||||
ldmia sp!, {r3, r4, r5, pc}
|
||||
arm_func_end sub_02014B1C
|
||||
|
||||
arm_func_start sub_02014B74
|
||||
sub_02014B74: ; 0x02014B74
|
||||
stmdb sp!, {r4, r5, r6, lr}
|
||||
mov r6, r0
|
||||
mov r5, r1
|
||||
mov r4, #0
|
||||
_02014B84:
|
||||
mov r0, r6
|
||||
add r1, r5, r4, lsl #3
|
||||
bl sub_02014B1C
|
||||
add r4, r4, #1
|
||||
cmp r4, #4
|
||||
blt _02014B84
|
||||
mov r0, r6
|
||||
add r1, r5, #0x20
|
||||
mov r2, #8
|
||||
bl CopyBitsTo
|
||||
ldmia sp!, {r4, r5, r6, pc}
|
||||
arm_func_end sub_02014B74
|
||||
|
||||
arm_func_start sub_02014BB0
|
||||
sub_02014BB0: ; 0x02014BB0
|
||||
stmdb sp!, {r3, r4, r5, lr}
|
||||
mov r4, r1
|
||||
mov r5, r0
|
||||
mov r0, r4
|
||||
mov r1, #0
|
||||
mov r2, #8
|
||||
bl memset
|
||||
mov r0, r5
|
||||
mov r1, r4
|
||||
mov r2, #4
|
||||
bl CopyBitsFrom
|
||||
mov r0, r5
|
||||
add r1, r4, #2
|
||||
mov r2, #1
|
||||
bl CopyBitsFrom
|
||||
mov r0, r5
|
||||
add r1, r4, #4
|
||||
mov r2, #0xa
|
||||
bl CopyBitsFrom
|
||||
mov r0, r5
|
||||
add r1, r4, #6
|
||||
mov r2, #7
|
||||
bl CopyBitsFrom
|
||||
mov r0, r5
|
||||
add r1, r4, #7
|
||||
mov r2, #7
|
||||
bl CopyBitsFrom
|
||||
ldmia sp!, {r3, r4, r5, pc}
|
||||
arm_func_end sub_02014BB0
|
||||
|
||||
arm_func_start sub_02014C20
|
||||
sub_02014C20: ; 0x02014C20
|
||||
stmdb sp!, {r4, r5, r6, lr}
|
||||
mov r6, r0
|
||||
mov r5, r1
|
||||
mov r4, #0
|
||||
_02014C30:
|
||||
mov r0, r6
|
||||
add r1, r5, r4, lsl #3
|
||||
bl sub_02014BB0
|
||||
add r4, r4, #1
|
||||
cmp r4, #4
|
||||
blt _02014C30
|
||||
mov r3, #0
|
||||
mov r0, r6
|
||||
add r1, r5, #0x20
|
||||
mov r2, #8
|
||||
strb r3, [r5, #0x20]
|
||||
bl CopyBitsFrom
|
||||
ldmia sp!, {r4, r5, r6, pc}
|
||||
arm_func_end sub_02014C20
|
||||
@@ -6245,7 +6245,7 @@ ov01_0232E334: ; 0x0232E334
|
||||
bl sub_0200DFE4
|
||||
mov r0, r7
|
||||
add r1, r6, #0x2a
|
||||
bl CopyMovesetTo
|
||||
bl CopyMovesetToStream
|
||||
add r0, sp, #0xc
|
||||
mov r1, #0x18
|
||||
bl MemZero
|
||||
@@ -6411,7 +6411,7 @@ ov01_0232E58C: ; 0x0232E58C
|
||||
mov r0, r6
|
||||
add r1, r5, #0x2a
|
||||
strh r2, [r5, #0x28]
|
||||
bl CopyMovesetFrom
|
||||
bl CopyMovesetFromStream
|
||||
add r1, sp, #0
|
||||
mov r0, r6
|
||||
mov r2, #0xa0
|
||||
|
||||
11
include/main_02014A4C.h
Normal file
11
include/main_02014A4C.h
Normal file
@@ -0,0 +1,11 @@
|
||||
#ifndef PMDSKY_MAIN_02014A4C_H
|
||||
#define PMDSKY_MAIN_02014A4C_H
|
||||
#include "common.h"
|
||||
#include "save.h"
|
||||
|
||||
void CopyMoveToStream(struct bitstream * stream, struct ground_move * move );
|
||||
void CopyMoveFromStream(struct bitstream * stream, struct ground_move * move );
|
||||
void CopyMovesetToStream(struct bitstream * stream, struct ground_move * src);
|
||||
void CopyMovesetFromStream(struct bitstream * stream, struct ground_move * dst);
|
||||
|
||||
#endif //PMDSKY_MAIN_02014A4C_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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
11
include/save.h
Normal file
11
include/save.h
Normal file
@@ -0,0 +1,11 @@
|
||||
#ifndef PMDSKY_SAVE_H
|
||||
#define PMDSKY_SAVE_H
|
||||
|
||||
struct bitstream {
|
||||
char* ptr; // Current byte
|
||||
u32 end; // End of the region the bitstream can read from / write to. Doesn't seem to do anything with this information?
|
||||
u32 bit_idx; // Bit position in current byte
|
||||
u32 bit_count; // Total bits this stream has used
|
||||
};
|
||||
|
||||
#endif //PMDSKY_SAVE_H
|
||||
2
main.lsf
2
main.lsf
@@ -66,6 +66,8 @@ Static main
|
||||
Object src/moves.o
|
||||
Object src/moves_3.o
|
||||
Object asm/main_02013C30.o
|
||||
Object src/main_02014A4C.o
|
||||
Object asm/main_02014B1C.o
|
||||
Object src/main_02014CEC.o
|
||||
Object asm/main_02014D18.o
|
||||
Object src/main_020251AC.o
|
||||
|
||||
32
src/main_02014A4C.c
Normal file
32
src/main_02014A4C.c
Normal file
@@ -0,0 +1,32 @@
|
||||
#include "main_02014A4C.h"
|
||||
|
||||
extern void CopyBitsTo(struct bitstream *stream, void *src, u32 nbits);
|
||||
extern void CopyBitsFrom(struct bitstream *stream, void *dst, u32 nbits);
|
||||
|
||||
void CopyMoveToStream(struct bitstream * stream, struct ground_move * src )
|
||||
{
|
||||
CopyBitsTo(stream, &src->flags0, 4);
|
||||
CopyBitsTo(stream, &src->id, 10);
|
||||
CopyBitsTo(stream, &src->ginseng, 7);
|
||||
}
|
||||
|
||||
void CopyMoveFromStream(struct bitstream * stream, struct ground_move * dst )
|
||||
{
|
||||
CopyBitsFrom(stream, &dst->flags0, 4);
|
||||
CopyBitsFrom(stream, &dst->id, 10);
|
||||
CopyBitsFrom(stream, &dst->ginseng, 7);
|
||||
}
|
||||
|
||||
void CopyMovesetToStream(struct bitstream * stream, struct ground_move * src)
|
||||
{
|
||||
for (s32 i = 0; i < 4; i++) {
|
||||
CopyMoveToStream(stream, &src[i]);
|
||||
}
|
||||
}
|
||||
|
||||
void CopyMovesetFromStream(struct bitstream * stream, struct ground_move * dst)
|
||||
{
|
||||
for (s32 i = 0; i < 4; i++) {
|
||||
CopyMoveFromStream(stream, &dst[i]);
|
||||
}
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -1,52 +1,52 @@
|
||||
#include "main_02059334.h"
|
||||
#include "save.h"
|
||||
#include "main_02014A4C.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* 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);
|
||||
|
||||
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);
|
||||
CopyMovesetToStream(stream, (struct ground_move*)&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);
|
||||
CopyMovesetFromStream(stream, (struct ground_move*)&monster->moves);
|
||||
CopyBitsFrom(stream, &monster->name, 80);
|
||||
}
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
#include "main_0205BD14.h"
|
||||
#include "common.h"
|
||||
#include "save.h"
|
||||
#include "main_0200224C.h"
|
||||
#include "main_02058FA4.h"
|
||||
#include "main_02014A4C.h"
|
||||
#include "main_02059A74.h"
|
||||
#include "main_0205B690.h"
|
||||
#include "main_0205C440.h"
|
||||
@@ -9,17 +10,15 @@
|
||||
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 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);
|
||||
|
||||
void sub_0205BD14(u32 *dest, s32 index)
|
||||
{
|
||||
@@ -53,120 +52,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);
|
||||
CopyMovesetFromStream(&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);
|
||||
CopyMovesetToStream(&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);
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user