Decomp CopyMovesetFromStream

Decomp CopyMovesetTo
This commit is contained in:
Chesyon 2026-05-06 12:09:44 -04:00
parent 6d10ed417d
commit 6e91cff71e
9 changed files with 38 additions and 58 deletions

View File

@ -1,6 +1,4 @@
#pragma once
.public CopyBitsFrom
.public CopyBitsTo
.public CopyMoveFromStream
.public CopyMoveToStream
.public memset

View File

@ -23,8 +23,8 @@
.public Copy16BitsTo
.public CopyBitsFrom
.public CopyBitsTo
.public CopyMovesetFrom
.public CopyMovesetTo
.public CopyMovesetFromStream
.public CopyMovesetToStream
.public CreateAdvancedMenu
.public CreateAdvancedTextBox
.public CreateControlsChart

View File

@ -1,42 +1,8 @@
.include "asm/macros.inc"
.include "main_02014ABC.inc"
.include "main_02014B1C.inc"
.text
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 CopyMoveToStream
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 CopyMoveFromStream
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}

View File

@ -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

View File

@ -5,5 +5,7 @@
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

View File

@ -67,7 +67,7 @@ Static main
Object src/moves_3.o
Object asm/main_02013C30.o
Object src/main_02014A4C.o
Object asm/main_02014ABC.o
Object asm/main_02014B1C.o
Object src/main_02014CEC.o
Object asm/main_02014D18.o
Object src/main_020251AC.o

View File

@ -3,16 +3,30 @@
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 * move )
void CopyMoveToStream(struct bitstream * stream, struct ground_move * src )
{
CopyBitsTo(stream, &move->flags0, 4);
CopyBitsTo(stream, &move->id, 10);
CopyBitsTo(stream, &move->ginseng, 7);
CopyBitsTo(stream, &src->flags0, 4);
CopyBitsTo(stream, &src->id, 10);
CopyBitsTo(stream, &src->ginseng, 7);
}
void CopyMoveFromStream(struct bitstream * stream, struct ground_move * move )
void CopyMoveFromStream(struct bitstream * stream, struct ground_move * dst )
{
CopyBitsFrom(stream, &move->flags0, 4);
CopyBitsFrom(stream, &move->id, 10);
CopyBitsFrom(stream, &move->ginseng, 7);
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]);
}
}

View File

@ -3,11 +3,11 @@
extern void CopyBitsTo(void *ctx, void *src, s32 nbits);
extern void Copy16BitsTo(void *stream, void *buf_write);
extern void CopyMovesetTo(struct bitstream *stream, void *buffer_write);
extern void CopyMovesetToStream(struct bitstream *stream, void *buffer_write);
extern void* memset(void *s, s32 c, u32 n);
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);
extern void CopyMovesetFromStream(struct bitstream *stream, void *dst);
void WriteMonsterToSave(struct bitstream *stream, struct ground_monster *monster)
{
@ -26,7 +26,7 @@ void WriteMonsterToSave(struct bitstream *stream, struct ground_monster *monster
CopyBitsTo(stream, &monster->exp, 24);
CopyBitsTo(stream, &monster->iq_skill_flags, 69);
CopyBitsTo(stream, &monster->tactic, 4);
CopyMovesetTo(stream, &monster->moves);
CopyMovesetToStream(stream, &monster->moves);
CopyBitsTo(stream, &monster->name, 80);
}
@ -48,6 +48,6 @@ void ReadMonsterFromSave(struct bitstream *stream, struct ground_monster *monste
CopyBitsFrom(stream, &monster->exp, 24);
CopyBitsFrom(stream, &monster->iq_skill_flags, 69);
CopyBitsFrom(stream, &monster->tactic, 4);
CopyMovesetFrom(stream, &monster->moves);
CopyMovesetFromStream(stream, &monster->moves);
CopyBitsFrom(stream, &monster->name, 80);
}

View File

@ -13,13 +13,13 @@ 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(struct bitstream *stream, void *buf_read);
extern void CopyMovesetFrom(struct bitstream *stream, void *dst);
extern void CopyMovesetFromStream(struct bitstream *stream, void *dst);
extern void BitstreamDebug(struct bitstream *stream);
extern void sub_020634F4(void);
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);
extern void CopyMovesetToStream(struct bitstream *stream, void *buffer_write);
void sub_0205BD14(u32 *dest, s32 index)
{
@ -81,7 +81,7 @@ u32 sub_0205BD9C(u32 arg0, u32 arg1)
CopyBitsFrom(&stream, &monster->exp, 24);
CopyBitsFrom(&stream, &monster->iq_skill_flags, 69);
CopyBitsFrom(&stream, &monster->tactic, 4);
CopyMovesetFrom(&stream, monster->moves);
CopyMovesetFromStream(&stream, monster->moves);
CopyBitsFrom(&stream, monster->name, 80);
struct unkStruct_020B0A54_unk8_inner *inner = _020B0A54.struct1.unk8.unk8;
@ -131,7 +131,7 @@ u32 sub_0205BFB0(u32 p0, u32 p1)
CopyBitsTo(&stream, &monster->exp, 24);
CopyBitsTo(&stream, &monster->iq_skill_flags, 69);
CopyBitsTo(&stream, &monster->tactic, 4);
CopyMovesetTo(&stream, monster->moves);
CopyMovesetToStream(&stream, monster->moves);
CopyBitsTo(&stream, monster->name, 80);
struct unkStruct_020B0A54_unk8_inner *inner = _020B0A54.struct1.unk8.unk8;