through sub_80E8E18

This commit is contained in:
PikalaxALT 2017-10-24 20:27:07 -04:00
parent 326e37a0d3
commit bd85d9166d
2 changed files with 31 additions and 103 deletions

View file

@ -5,109 +5,6 @@
.text
thumb_func_start sub_80E8DF4
sub_80E8DF4: @ 80E8DF4
push {lr}
adds r2, r0, 0
movs r1, 0
_080E8DFA:
adds r0, r2, r1
ldrb r0, [r0]
cmp r0, 0xFF
bne _080E8E06
adds r0, r1, 0
b _080E8E12
_080E8E06:
adds r0, r1, 0x1
lsls r0, 24
lsrs r1, r0, 24
cmp r1, 0x6
bls _080E8DFA
movs r0, 0x7
_080E8E12:
pop {r1}
bx r1
thumb_func_end sub_80E8DF4
thumb_func_start sub_80E8E18
sub_80E8E18: @ 80E8E18
push {r4-r6,lr}
mov r6, r8
push {r6}
ldr r2, =gSaveBlock1Ptr
ldr r0, [r2]
ldr r1, =sCurSecretBaseId
ldrb r1, [r1]
ldr r3, =0x00001a9c
adds r0, r3
strb r1, [r0]
movs r3, 0
ldr r5, =0x00001aa5
ldr r4, =gSaveBlock2Ptr
_080E8E32:
ldr r1, [r2]
adds r1, r5
adds r1, r3
ldr r0, [r4]
adds r0, 0xA
adds r0, r3
ldrb r0, [r0]
strb r0, [r1]
adds r0, r3, 0x1
lsls r0, 16
lsrs r3, r0, 16
cmp r3, 0x3
bls _080E8E32
ldr r0, =0x00004054
movs r1, 0
bl VarSet
ldr r6, =gSaveBlock1Ptr
ldr r4, [r6]
ldr r0, =0x00001a9e
adds r4, r0
ldr r1, =gSaveBlock2Ptr
mov r8, r1
ldr r5, [r1]
adds r0, r5, 0
bl sub_80E8DF4
adds r2, r0, 0
lsls r2, 24
lsrs r2, 24
adds r0, r4, 0
adds r1, r5, 0
bl StringCopyN
ldr r3, [r6]
mov r1, r8
ldr r0, [r1]
ldrb r0, [r0, 0x8]
ldr r1, =0x00001a9d
adds r3, r1
movs r1, 0x1
ands r1, r0
lsls r1, 4
ldrb r2, [r3]
movs r0, 0x11
negs r0, r0
ands r0, r2
orrs r0, r1
strb r0, [r3]
ldr r0, [r6]
ldr r3, =0x00001aa9
adds r0, r3
movs r1, 0x2
strb r1, [r0]
ldr r0, =0x00004026
ldr r1, =gMapHeader
ldrb r1, [r1, 0x14]
bl VarSet
pop {r3}
mov r8, r3
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_80E8E18
thumb_func_start sub_80E8EE0
sub_80E8EE0: @ 80E8EE0
push {r4-r7,lr}

View file

@ -8,6 +8,7 @@
#include "field_camera.h"
#include "field_player_avatar.h"
#include "text.h"
#include "string_util.h"
#include "event_data.h"
#include "secret_base.h"
@ -264,3 +265,33 @@ void sub_80E8D4C(void)
}
}
}
u8 sub_80E8DF4(const u8 *src)
{
u8 i;
for (i = 0; i < 7; i ++)
{
if (src[i] == EOS)
{
return i;
}
}
return 7;
}
void sub_80E8E18(void)
{
u16 i;
gSaveBlock1Ptr->secretBases[0].secretBaseId = sCurSecretBaseId;
for (i = 0; i < 4; i ++)
{
gSaveBlock1Ptr->secretBases[0].trainerId[i] = gSaveBlock2Ptr->playerTrainerId[i];
}
VarSet(VAR_0x4054, 0);
StringCopyN(gSaveBlock1Ptr->secretBases[0].trainerName, gSaveBlock2Ptr->playerName, sub_80E8DF4(gSaveBlock2Ptr->playerName));
gSaveBlock1Ptr->secretBases[0].gender = gSaveBlock2Ptr->playerGender;
gSaveBlock1Ptr->secretBases[0].language = GAME_LANGUAGE;
VarSet(VAR_SECRET_BASE_MAP, gMapHeader.regionMapSectionId);
}