diff options
-rw-r--r-- | asm/secret_base.s | 334 | ||||
-rw-r--r-- | src/secret_base.c | 91 |
2 files changed, 91 insertions, 334 deletions
diff --git a/asm/secret_base.s b/asm/secret_base.s index 7ef007a81..3eb71e8ed 100644 --- a/asm/secret_base.s +++ b/asm/secret_base.s @@ -5,340 +5,6 @@ .text - thumb_func_start sub_80EB56C -sub_80EB56C: @ 80EB56C - push {r4,lr} - sub sp, 0x4 - mov r4, sp - adds r4, 0x2 - mov r0, sp - adds r1, r4, 0 - bl GetXYCoordsOneStepInFrontOfPlayer - mov r0, sp - movs r1, 0 - ldrsh r0, [r0, r1] - movs r2, 0 - ldrsh r1, [r4, r2] - bl MapGridGetMetatileIdAt - ldr r1, =0xfffffdd4 - adds r0, r1 - cmp r0, 0xCF - bls _080EB594 - b _080EB9D0 -_080EB594: - lsls r0, 2 - ldr r1, =_080EB5A8 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_080EB5A8: - .4byte _080EB930 - .4byte _080EB97C - .4byte _080EB97C - .4byte _080EB97C - .4byte _080EB9D0 - .4byte _080EB9D0 - .4byte _080EB9D0 - .4byte _080EB930 - .4byte _080EB9D0 - .4byte _080EB9D0 - .4byte _080EB9D0 - .4byte _080EB9D0 - .4byte _080EB9D0 - .4byte _080EB9D0 - .4byte _080EB9D0 - .4byte _080EB9D0 - .4byte _080EB9D0 - .4byte _080EB9D0 - .4byte _080EB9D0 - .4byte _080EB9D0 - .4byte _080EB9D0 - .4byte _080EB9D0 - .4byte _080EB9D0 - .4byte _080EB9D0 - .4byte _080EB9D0 - .4byte _080EB9D0 - .4byte _080EB9D0 - .4byte _080EB9D0 - .4byte _080EB9D0 - .4byte _080EB9D0 - .4byte _080EB9D0 - .4byte _080EB9D0 - .4byte _080EB9D0 - .4byte _080EB9D0 - .4byte _080EB9D0 - .4byte _080EB9D0 - .4byte _080EB9D0 - .4byte _080EB9D0 - .4byte _080EB9D0 - .4byte _080EB9D0 - .4byte _080EB9D0 - .4byte _080EB9D0 - .4byte _080EB9D0 - .4byte _080EB9D0 - .4byte _080EB9D0 - .4byte _080EB9D0 - .4byte _080EB9D0 - .4byte _080EB9D0 - .4byte _080EB9D0 - .4byte _080EB9D0 - .4byte _080EB9D0 - .4byte _080EB9D0 - .4byte _080EB9D0 - .4byte _080EB9D0 - .4byte _080EB9D0 - .4byte _080EB9D0 - .4byte _080EB9D0 - .4byte _080EB9D0 - .4byte _080EB9D0 - .4byte _080EB9D0 - .4byte _080EB9D0 - .4byte _080EB9D0 - .4byte _080EB9D0 - .4byte _080EB9D0 - .4byte _080EB9D0 - .4byte _080EB9D0 - .4byte _080EB9D0 - .4byte _080EB9D0 - .4byte _080EB9D0 - .4byte _080EB9D0 - .4byte _080EB9D0 - .4byte _080EB9D0 - .4byte _080EB9D0 - .4byte _080EB9D0 - .4byte _080EB9D0 - .4byte _080EB9D0 - .4byte _080EB9D0 - .4byte _080EB9D0 - .4byte _080EB9D0 - .4byte _080EB9D0 - .4byte _080EB9D0 - .4byte _080EB9D0 - .4byte _080EB9D0 - .4byte _080EB9D0 - .4byte _080EB9D0 - .4byte _080EB9D0 - .4byte _080EB9D0 - .4byte _080EB9D0 - .4byte _080EB9D0 - .4byte _080EB9D0 - .4byte _080EB9D0 - .4byte _080EB9AC - .4byte _080EB954 - .4byte _080EB954 - .4byte _080EB8E8 - .4byte _080EB8E8 - .4byte _080EB9D0 - .4byte _080EB9D0 - .4byte _080EB9D0 - .4byte _080EB9AC - .4byte _080EB9D0 - .4byte _080EB9D0 - .4byte _080EB9D0 - .4byte _080EB9D0 - .4byte _080EB9D0 - .4byte _080EB9D0 - .4byte _080EB9D0 - .4byte _080EB9D0 - .4byte _080EB9AC - .4byte _080EB9AC - .4byte _080EB9AC - .4byte _080EB9AC - .4byte _080EB9AC - .4byte _080EB9AC - .4byte _080EB9AC - .4byte _080EB9AC - .4byte _080EB9D0 - .4byte _080EB9D0 - .4byte _080EB9D0 - .4byte _080EB9D0 - .4byte _080EB9D0 - .4byte _080EB9D0 - .4byte _080EB9D0 - .4byte _080EB9D0 - .4byte _080EB9D0 - .4byte _080EB9D0 - .4byte _080EB9D0 - .4byte _080EB9AC - .4byte _080EB9D0 - .4byte _080EB9D0 - .4byte _080EB9D0 - .4byte _080EB9D0 - .4byte _080EB9AC - .4byte _080EB9AC - .4byte _080EB9AC - .4byte _080EB9D0 - .4byte _080EB9AC - .4byte _080EB9AC - .4byte _080EB9AC - .4byte _080EB9AC - .4byte _080EB9D0 - .4byte _080EB9D0 - .4byte _080EB9D0 - .4byte _080EB9D0 - .4byte _080EB9D0 - .4byte _080EB9D0 - .4byte _080EB9D0 - .4byte _080EB9D0 - .4byte _080EB9D0 - .4byte _080EB9D0 - .4byte _080EB9D0 - .4byte _080EB9D0 - .4byte _080EB9D0 - .4byte _080EB9D0 - .4byte _080EB9D0 - .4byte _080EB9D0 - .4byte _080EB9D0 - .4byte _080EB9D0 - .4byte _080EB9D0 - .4byte _080EB9AC - .4byte _080EB9AC - .4byte _080EB9AC - .4byte _080EB9AC - .4byte _080EB9AC - .4byte _080EB9D0 - .4byte _080EB9D0 - .4byte _080EB9D0 - .4byte _080EB9D0 - .4byte _080EB9D0 - .4byte _080EB9D0 - .4byte _080EB9D0 - .4byte _080EB9D0 - .4byte _080EB90C - .4byte _080EB90C - .4byte _080EB90C - .4byte _080EB90C - .4byte _080EB90C - .4byte _080EB90C - .4byte _080EB9D0 - .4byte _080EB9D0 - .4byte _080EB9D0 - .4byte _080EB9D0 - .4byte _080EB9D0 - .4byte _080EB9D0 - .4byte _080EB9D0 - .4byte _080EB9D0 - .4byte _080EB9D0 - .4byte _080EB9D0 - .4byte _080EB90C - .4byte _080EB90C - .4byte _080EB90C - .4byte _080EB90C - .4byte _080EB90C - .4byte _080EB90C - .4byte _080EB90C - .4byte _080EB90C - .4byte _080EB9D0 - .4byte _080EB9D0 - .4byte _080EB9D0 - .4byte _080EB9D0 - .4byte _080EB9D0 - .4byte _080EB9D0 - .4byte _080EB9D0 - .4byte _080EB9D0 - .4byte _080EB90C - .4byte _080EB90C - .4byte _080EB90C - .4byte _080EB90C -_080EB8E8: - ldr r0, =0x00004054 - bl VarGet - lsls r0, 16 - cmp r0, 0 - beq _080EB9D0 - ldr r4, =0x000040ee - adds r0, r4, 0 - bl VarGet - adds r1, r0, 0 - movs r0, 0x40 - b _080EB994 - .pool -_080EB90C: - ldr r0, =0x00004054 - bl VarGet - lsls r0, 16 - cmp r0, 0 - beq _080EB9D0 - ldr r4, =0x000040ee - adds r0, r4, 0 - bl VarGet - adds r1, r0, 0 - movs r0, 0x8 - b _080EB994 - .pool -_080EB930: - ldr r0, =0x00004054 - bl VarGet - lsls r0, 16 - cmp r0, 0 - beq _080EB9D0 - ldr r4, =0x000040ef - adds r0, r4, 0 - bl VarGet - adds r1, r0, 0 - movs r0, 0x40 - b _080EB994 - .pool -_080EB954: - ldr r0, =0x00004054 - bl VarGet - lsls r0, 16 - cmp r0, 0 - beq _080EB9D0 - ldr r4, =0x000040ef - adds r0, r4, 0 - bl VarGet - adds r1, r0, 0 - movs r2, 0x80 - lsls r2, 1 - adds r0, r2, 0 - b _080EB994 - .pool -_080EB97C: - ldr r0, =0x00004054 - bl VarGet - lsls r0, 16 - cmp r0, 0 - beq _080EB9D0 - ldr r4, =0x000040ef - adds r0, r4, 0 - bl VarGet - adds r1, r0, 0 - movs r0, 0x10 -_080EB994: - orrs r1, r0 - lsls r1, 16 - lsrs r1, 16 - adds r0, r4, 0 - bl VarSet - b _080EB9D0 - .pool -_080EB9AC: - ldr r0, =0x00004054 - bl VarGet - lsls r0, 16 - cmp r0, 0 - beq _080EB9D0 - ldr r4, =0x000040ef - adds r0, r4, 0 - bl VarGet - adds r1, r0, 0 - movs r0, 0x8 - orrs r1, r0 - lsls r1, 16 - lsrs r1, 16 - adds r0, r4, 0 - bl VarSet -_080EB9D0: - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80EB56C - thumb_func_start sub_80EB9E0 sub_80EB9E0: @ 80EB9E0 push {r4,lr} diff --git a/src/secret_base.c b/src/secret_base.c index bbbf8bd31..a51cd0ff9 100644 --- a/src/secret_base.c +++ b/src/secret_base.c @@ -2023,3 +2023,94 @@ void sub_80EB498(void) break; } } + +void sub_80EB56C(void) +{ + s16 x; + s16 y; + + GetXYCoordsOneStepInFrontOfPlayer(&x, &y); + switch (MapGridGetMetatileIdAt(x, y)) + { + case 0x28a: + case 0x28b: + if (VarGet(VAR_0x4054) != 0) + { + VarSet(VAR_0x40EE, VarGet(VAR_0x40EE) | 0x40); + } + break; + case 0x2d8: + case 0x2d9: + case 0x2da: + case 0x2db: + case 0x2dc: + case 0x2dd: + case 0x2e8: + case 0x2e9: + case 0x2ea: + case 0x2eb: + case 0x2ec: + case 0x2ed: + case 0x2ee: + case 0x2ef: + case 0x2f8: + case 0x2f9: + case 0x2fa: + case 0x2fb: + if (VarGet(VAR_0x4054) != 0) + { + VarSet(VAR_0x40EE, VarGet(VAR_0x40EE) | 0x8); + } + break; + case 0x22c: + case 0x233: + if (VarGet(VAR_0x4054) != 0) + { + VarSet(VAR_0x40EF, VarGet(VAR_0x40EF) | 0x40); + } + break; + case 0x288: + case 0x289: + if (VarGet(VAR_0x4054) != 0) + { + VarSet(VAR_0x40EF, VarGet(VAR_0x40EF) | 0x100); + } + break; + case 0x22d: + case 0x22e: + case 0x22f: + if (VarGet(VAR_0x4054) != 0) + { + VarSet(VAR_0x40EF, VarGet(VAR_0x40EF) | 0x10); + } + break; + case 0x287: + case 0x28f: + case 0x298: + case 0x299: + case 0x29a: + case 0x29b: + case 0x29c: + case 0x29d: + case 0x29e: + case 0x29f: + case 0x2ab: + case 0x2b0: + case 0x2b1: + case 0x2b2: + case 0x2b4: + case 0x2b5: + case 0x2b6: + case 0x2b7: + case 0x2cb: + case 0x2cc: + case 0x2cd: + case 0x2ce: + case 0x2cf: + if (VarGet(VAR_0x4054) != 0) + { + VarSet(VAR_0x40EF, VarGet(VAR_0x40EF) | 0x8); + } + break; + } +} |