mirror of
https://github.com/Ninjdai1/pokeemerald.git
synced 2024-11-16 19:47:35 +01:00
make StringCopyN_Multibyte match
This commit is contained in:
parent
c01a3f4285
commit
af822ef2a7
@ -561,46 +561,26 @@ u8 *StringFillWithTerminator(u8 *dest, u16 n)
|
||||
return StringFill(dest, EOS, n);
|
||||
}
|
||||
|
||||
__attribute__((naked))
|
||||
u8 *StringCopyN_Multibyte(u8 *dest, u8 *src, u32 n)
|
||||
{
|
||||
asm(".syntax unified\n\
|
||||
push {r4,r5,lr}\n\
|
||||
adds r4, r0, 0\n\
|
||||
adds r3, r1, 0\n\
|
||||
subs r2, 0x1\n\
|
||||
movs r5, 0x1\n\
|
||||
negs r5, r5\n\
|
||||
b _080091B2\n\
|
||||
_0800919A:\n\
|
||||
strb r0, [r4]\n\
|
||||
adds r3, 0x1\n\
|
||||
adds r4, 0x1\n\
|
||||
subs r0, r3, 0x1\n\
|
||||
ldrb r0, [r0]\n\
|
||||
cmp r0, 0xF9\n\
|
||||
bne _080091B0\n\
|
||||
ldrb r0, [r3]\n\
|
||||
strb r0, [r4]\n\
|
||||
adds r3, 0x1\n\
|
||||
adds r4, 0x1\n\
|
||||
_080091B0:\n\
|
||||
subs r2, 0x1\n\
|
||||
_080091B2:\n\
|
||||
cmp r2, r5\n\
|
||||
beq _080091BE\n\
|
||||
ldrb r0, [r3]\n\
|
||||
adds r1, r0, 0\n\
|
||||
cmp r1, 0xFF\n\
|
||||
bne _0800919A\n\
|
||||
_080091BE:\n\
|
||||
movs r0, 0xFF\n\
|
||||
strb r0, [r4]\n\
|
||||
adds r0, r4, 0\n\
|
||||
pop {r4,r5}\n\
|
||||
pop {r1}\n\
|
||||
bx r1\n\
|
||||
.syntax divided");
|
||||
u32 i;
|
||||
|
||||
for (i = n - 1; i != (u32)-1; i--)
|
||||
{
|
||||
if (*src == EOS)
|
||||
{
|
||||
break;
|
||||
}
|
||||
else
|
||||
{
|
||||
*dest++ = *src++;
|
||||
if (*(src - 1) == 0xF9)
|
||||
*dest++ = *src++;
|
||||
}
|
||||
}
|
||||
|
||||
*dest = EOS;
|
||||
return dest;
|
||||
}
|
||||
|
||||
u32 StringLength_Multibyte(u8 *str)
|
||||
|
Loading…
Reference in New Issue
Block a user