diff options
author | PikalaxALT <pikalaxalt@gmail.com> | 2017-10-27 20:50:32 -0400 |
---|---|---|
committer | PikalaxALT <pikalaxalt@gmail.com> | 2017-10-27 20:50:32 -0400 |
commit | d60ae05cbb801fe9e94de7f520e9726aec614679 (patch) | |
tree | 73865214a864e4879f27cead7c859af78ce4c794 | |
parent | b30232a2e8dca235240715d0dcfa61e261cadda5 (diff) |
sub_80EABDC
-rw-r--r-- | asm/secret_base.s | 74 | ||||
-rw-r--r-- | src/secret_base.c | 26 |
2 files changed, 26 insertions, 74 deletions
diff --git a/asm/secret_base.s b/asm/secret_base.s index 52120a063..9f2ac01d4 100644 --- a/asm/secret_base.s +++ b/asm/secret_base.s @@ -5,80 +5,6 @@ .text - thumb_func_start sub_80EABDC -sub_80EABDC: @ 80EABDC - push {r4-r6,lr} - adds r5, r0, 0 - ldrb r0, [r5] - cmp r0, 0 - beq _080EABF8 - ldrb r0, [r5, 0x1] - lsls r0, 27 - ldr r1, =gSaveBlock2Ptr - ldr r3, [r1] - lsrs r0, 31 - adds r6, r1, 0 - ldrb r1, [r3, 0x8] - cmp r0, r1 - beq _080EAC00 -_080EABF8: - movs r0, 0 - b _080EAC56 - .pool -_080EAC00: - movs r2, 0 - adds r4, r5, 0 - adds r4, 0x9 - adds r3, 0xA -_080EAC08: - adds r0, r4, r2 - adds r1, r3, r2 - ldrb r0, [r0] - ldrb r1, [r1] - cmp r0, r1 - bne _080EABF8 - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x3 - bls _080EAC08 - movs r2, 0 - ldrb r0, [r5, 0x2] - cmp r0, 0xFF - bne _080EAC2A - ldr r0, [r6] - b _080EAC4E -_080EAC2A: - adds r3, r5, 0x2 - adds r0, r3, r2 - ldr r4, [r6] - adds r1, r4, r2 - ldrb r0, [r0] - ldrb r1, [r1] - cmp r0, r1 - bne _080EABF8 - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x6 - bhi _080EAC54 - adds r0, r3, r2 - ldrb r0, [r0] - cmp r0, 0xFF - bne _080EAC2A - adds r0, r4, r2 -_080EAC4E: - ldrb r0, [r0] - cmp r0, 0xFF - bne _080EAC2A -_080EAC54: - movs r0, 0x1 -_080EAC56: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_80EABDC - thumb_func_start sub_80EAC5C sub_80EAC5C: @ 80EAC5C push {r4-r7,lr} diff --git a/src/secret_base.c b/src/secret_base.c index f3b59facf..0434190d6 100644 --- a/src/secret_base.c +++ b/src/secret_base.c @@ -1612,3 +1612,29 @@ void sub_80EABA4(u32 *args, u8 b) } } } + +bool8 sub_80EABDC(struct SecretBaseRecord *secretBase) +{ + u8 i; + + if (secretBase->secretBaseId == 0) + return FALSE; + + if (secretBase->secretBaseId && secretBase->gender != gSaveBlock2Ptr->playerGender) + return FALSE; + + // Check if the player's trainer Id matches the secret base's id. + for (i = 0; i < 4; i ++) + { + if (secretBase->trainerId[i] != gSaveBlock2Ptr->playerTrainerId[i]) + return FALSE; + } + + for (i = 0; i < OT_NAME_LENGTH && (secretBase->trainerName[i] != EOS || gSaveBlock2Ptr->playerName[i] != EOS); i ++) + { + if (secretBase->trainerName[i] != gSaveBlock2Ptr->playerName[i]) + return FALSE; + } + + return TRUE; +} |