diff options
-rw-r--r-- | asm/secret_base.s | 46 | ||||
-rwxr-xr-x | src/secret_base_80bb4ac.c | 15 |
2 files changed, 15 insertions, 46 deletions
diff --git a/asm/secret_base.s b/asm/secret_base.s index eb578f85e..6685bc826 100644 --- a/asm/secret_base.s +++ b/asm/secret_base.s @@ -6,52 +6,6 @@ .text - thumb_func_start sub_80BB5E4 -sub_80BB5E4: @ 80BB5E4 - push {r4,lr} - ldr r0, _080BB5F4 @ =gScriptResult - movs r1, 0 - strh r1, [r0] - movs r3, 0 - adds r4, r0, 0 - b _080BB5FE - .align 2, 0 -_080BB5F4: .4byte gScriptResult -_080BB5F8: - adds r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 -_080BB5FE: - cmp r3, 0x13 - bhi _080BB626 - ldr r2, _080BB62C @ =gUnknown_020387DC - ldr r1, _080BB630 @ =gSaveBlock1 - lsls r0, r3, 2 - adds r0, r3 - lsls r0, 5 - adds r0, r1 - ldr r1, _080BB634 @ =0x00001a08 - adds r0, r1 - ldrb r1, [r2] - ldrb r0, [r0] - cmp r1, r0 - bne _080BB5F8 - movs r0, 0x1 - strh r0, [r4] - ldr r0, _080BB638 @ =0x00004054 - adds r1, r3, 0 - bl VarSet -_080BB626: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080BB62C: .4byte gUnknown_020387DC -_080BB630: .4byte gSaveBlock1 -_080BB634: .4byte 0x00001a08 -_080BB638: .4byte 0x00004054 - thumb_func_end sub_80BB5E4 - thumb_func_start sub_80BB63C sub_80BB63C: @ 80BB63C push {lr} diff --git a/src/secret_base_80bb4ac.c b/src/secret_base_80bb4ac.c index 406bef40a..9bf6d216a 100755 --- a/src/secret_base_80bb4ac.c +++ b/src/secret_base_80bb4ac.c @@ -1,7 +1,10 @@ #include "global.h" +#include "event_data.h" +#include "vars.h" extern u8 gUnknown_020387DC; extern u16 gSpecialVar_0x8004; +extern u16 gScriptResult; void sub_80BB4AC(struct SecretBaseRecord *record) { // 080bb4ac u16 i; @@ -47,3 +50,15 @@ void ResetSecretBases(void) { // 080bb5b4 void sub_80BB5D0(void) { // 080bb5d0 gUnknown_020387DC = gSpecialVar_0x8004; } + +void sub_80BB5E4(void) { // 80bb5e4 + u16 idx; + gScriptResult = 0; + for (idx=0; idx<20; idx++) { + if (gUnknown_020387DC == gSaveBlock1.secretBases[idx].sbr_field_0) { + gScriptResult = 1; + VarSet(0x4054, idx); + return; + } + } +} |