Decomped ReadMonsterFromSave

Decomped by @slaw-22
This commit is contained in:
AnonymousRandomPerson 2026-03-16 22:06:09 -04:00
parent 2a5814f776
commit 244b3e33e7
10 changed files with 44 additions and 95 deletions

View File

@ -52,7 +52,7 @@
.public StrncpySimpleNoPad
.public StrncpySimpleNoPadSafe
.public sub_0204CEE0
.public sub_020515C4
.public Copy16BitsTo
.public sub_0205EE40
.public TEAM_MEMBER_TABLE_PTR
.public TEAM_NAME

View File

@ -432,7 +432,7 @@
.public sub_020510C0
.public sub_020510E8
.public sub_02051134
.public sub_020515C4
.public Copy16BitsTo
.public sub_02051620
.public sub_02051648
.public sub_02051788

View File

@ -357,7 +357,7 @@
.public sub_02050990
.public sub_020509BC
.public sub_02050CD0
.public sub_020515C4
.public Copy16BitsTo
.public sub_02052060
.public sub_020547C8
.public sub_020547D8

View File

@ -1949,7 +1949,7 @@ CopyLogTo: ; 0x0205054C
mov r0, r4
ldr r1, [r1]
add r1, r1, #0x278
bl sub_020515C4
bl Copy16BitsTo
ldmia sp!, {r4, pc}
.align 2, 0
_02050734: .word ADVENTURE_LOG_PTR

View File

@ -63,8 +63,8 @@ _020515B8:
_020515C0: .word MISSION_FLOORS_FORBIDDEN
arm_func_end IsForbiddenFloor
arm_func_start sub_020515C4
sub_020515C4: ; 0x020515C4
arm_func_start Copy16BitsTo
Copy16BitsTo: ; 0x020515C4
stmdb sp!, {r3, r4, r5, lr}
mov r5, r0
mov r4, r1
@ -75,7 +75,7 @@ sub_020515C4: ; 0x020515C4
mov r2, #8
bl CopyBitsTo
ldmia sp!, {r3, r4, r5, pc}
arm_func_end sub_020515C4
arm_func_end Copy16BitsTo
arm_func_start Copy16BitsFrom
Copy16BitsFrom: ; 0x020515EC

View File

@ -1,86 +1,8 @@
.include "asm/macros.inc"
.include "main_02059444.inc"
.include "main_0205956C.inc"
.text
arm_func_start ReadMonsterFromSave
ReadMonsterFromSave: ; 0x02059444
stmdb sp!, {r3, r4, r5, lr}
mov r4, r1
mov r5, r0
mov r0, r4
mov r1, #0
mov r2, #0x44
bl memset
mov r0, r5
mov r1, r4
mov r2, #1
bl CopyBitsFrom
mov r0, r5
add r1, r4, #1
mov r2, #7
bl CopyBitsFrom
mov r0, r5
add r1, r4, #4
mov r2, #0xb
bl CopyBitsFrom
mov r0, r5
add r1, r4, #2
bl Copy16BitsFrom
mov r0, r5
add r1, r4, #6
mov r2, #7
bl CopyBitsFrom
mov r0, r5
add r1, r4, #7
mov r2, #7
bl CopyBitsFrom
mov r0, r5
add r1, r4, #8
mov r2, #0xa
bl CopyBitsFrom
mov r0, r5
add r1, r4, #0xa
mov r2, #0xa
bl CopyBitsFrom
mov r0, r5
add r1, r4, #0xc
mov r2, #8
bl CopyBitsFrom
mov r0, r5
add r1, r4, #0xd
mov r2, #8
bl CopyBitsFrom
mov r0, r5
add r1, r4, #0xe
mov r2, #8
bl CopyBitsFrom
mov r0, r5
add r1, r4, #0xf
mov r2, #8
bl CopyBitsFrom
mov r0, r5
add r1, r4, #0x10
mov r2, #0x18
bl CopyBitsFrom
mov r0, r5
add r1, r4, #0x14
mov r2, #0x45
bl CopyBitsFrom
mov r0, r5
add r1, r4, #0x20
mov r2, #4
bl CopyBitsFrom
mov r0, r5
add r1, r4, #0x22
bl CopyMovesetFrom
mov r0, r5
add r1, r4, #0x3a
mov r2, #0x50
bl CopyBitsFrom
ldmia sp!, {r3, r4, r5, pc}
arm_func_end ReadMonsterFromSave
arm_func_start sub_0205956C
sub_0205956C: ; 0x0205956C
stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr}
@ -146,7 +68,7 @@ _02059608:
bl CopyBitsTo
mov r0, sl
add r1, r7, #3
bl sub_020515C4
bl Copy16BitsTo
mov r0, sl
add r1, r7, #6
mov r2, #0xa
@ -3288,7 +3210,7 @@ _0205BFEC:
bl CopyBitsTo
add r0, sp, #0
add r1, r4, #2
bl sub_020515C4
bl Copy16BitsTo
add r0, sp, #0
add r1, r4, #4
mov r2, #0xb
@ -3570,7 +3492,7 @@ sub_0205C440: ; 0x0205C440
bl CopyBitsTo
mov r0, r5
add r1, r4, #4
bl sub_020515C4
bl Copy16BitsTo
mov r0, r5
add r1, r4, #8
mov r2, #0x18
@ -7911,7 +7833,7 @@ _0205FD1C:
mov r0, r6
add r1, r1, #0x340
add r1, r1, r7
bl sub_020515C4
bl Copy16BitsTo
add r8, r8, #1
cmp r8, #0x10
blt _0205FD1C
@ -8050,7 +7972,7 @@ sub_0205FE80: ; 0x0205FE80
bl CopyBitsTo
mov r0, r5
add r1, r4, #4
bl sub_020515C4
bl Copy16BitsTo
mov r0, r5
add r1, r4, #0xc
mov r2, #8

View File

@ -6189,7 +6189,7 @@ ov01_0232E334: ; 0x0232E334
bl CopyBitsTo
mov r0, r7
add r1, r6, #5
bl sub_020515C4
bl Copy16BitsTo
mov r0, r7
add r1, r6, #8
mov r2, #0xb

View File

@ -5,5 +5,6 @@
#include "main_02059060.h"
void WriteMonsterToSave(struct WriteMonsterInfoToSave_struct *write_info, struct ground_monster *monster);
void ReadMonsterFromSave(struct WriteMonsterInfoToSave_struct *read_info, struct ground_monster *monster);
#endif //PMDSKY_MAIN_02059334_H

View File

@ -132,7 +132,7 @@ Static main
Object src/main_02059060.o
Object asm/main_02059224.o
Object src/main_02059334.o
Object asm/main_02059444.o
Object asm/main_0205956C.o
Object src/dungeon_init_2.o
Object asm/main_0206A750.o
Object src/main_0206C98C.o

View File

@ -1,15 +1,19 @@
#include "main_02059334.h"
extern void CopyBitsTo(void *ctx, void *src, s32 nbits);
extern void sub_020515C4(struct WriteMonsterInfoToSave_struct *p0, void *p1);
extern void Copy16BitsTo(struct WriteMonsterInfoToSave_struct *p0, void *p1);
extern void CopyMovesetTo(void *write_info, 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);
void WriteMonsterToSave(struct WriteMonsterInfoToSave_struct *write_info, struct ground_monster *monster)
{
CopyBitsTo(write_info, &monster->is_valid, 1);
CopyBitsTo(write_info, &monster->level, 7);
CopyBitsTo(write_info, &monster->id, 11);
sub_020515C4(write_info, &monster->joined_at);
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);
@ -24,3 +28,25 @@ void WriteMonsterToSave(struct WriteMonsterInfoToSave_struct *write_info, struct
CopyMovesetTo(write_info, &monster->moves);
CopyBitsTo(write_info, &monster->name, 80);
}
void ReadMonsterFromSave(struct WriteMonsterInfoToSave_struct *read_info, 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);
}