diff options
author | PikalaxALT <pikalaxalt@gmail.com> | 2017-10-24 20:27:07 -0400 |
---|---|---|
committer | PikalaxALT <pikalaxalt@gmail.com> | 2017-10-24 20:27:07 -0400 |
commit | bd85d9166d7d59419e515e95d86ade6d504e7386 (patch) | |
tree | 5b60f759d9cfc0fa7d5578fb095a2c7320cd9d72 | |
parent | 326e37a0d3cf091af67f14bf3bbbf531638b2b60 (diff) |
through sub_80E8E18
-rw-r--r-- | asm/secret_base.s | 103 | ||||
-rw-r--r-- | src/secret_base.c | 31 |
2 files changed, 31 insertions, 103 deletions
diff --git a/asm/secret_base.s b/asm/secret_base.s index 9eeb217b9..458dc5a73 100644 --- a/asm/secret_base.s +++ b/asm/secret_base.s @@ -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} diff --git a/src/secret_base.c b/src/secret_base.c index 5f6ee5ea6..e3a3dc29d 100644 --- a/src/secret_base.c +++ b/src/secret_base.c @@ -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); +} |