summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xasm/pokeblock.s188
-rwxr-xr-xsrc/pokeblock.c71
2 files changed, 68 insertions, 191 deletions
diff --git a/asm/pokeblock.s b/asm/pokeblock.s
index 4dea70f0e..b99780edb 100755
--- a/asm/pokeblock.s
+++ b/asm/pokeblock.s
@@ -6,194 +6,6 @@
.text
- thumb_func_start sub_810BDAC
-sub_810BDAC: @ 810BDAC
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 24
- cmp r0, 0
- bne _0810BDCC
- ldr r0, _0810BDC4 @ =0x00001005
- ldr r1, _0810BDC8 @ =0x00001014
- bl sub_810BD64
- b _0810BDD4
- .align 2, 0
-_0810BDC4: .4byte 0x00001005
-_0810BDC8: .4byte 0x00001014
-_0810BDCC:
- ldr r0, _0810BDE8 @ =0x00002005
- ldr r1, _0810BDEC @ =0x00002014
- bl sub_810BD64
-_0810BDD4:
- ldr r0, _0810BDF0 @ =gUnknown_02039248
- ldrb r0, [r0, 0x1]
- cmp r0, 0
- beq _0810BDF4
- movs r0, 0
- movs r1, 0
- bl sub_80F979C
- b _0810BDFC
- .align 2, 0
-_0810BDE8: .4byte 0x00002005
-_0810BDEC: .4byte 0x00002014
-_0810BDF0: .4byte gUnknown_02039248
-_0810BDF4:
- movs r0, 0
- movs r1, 0x1
- bl sub_80F979C
-_0810BDFC:
- ldr r2, _0810BE1C @ =gUnknown_02039248
- ldrb r0, [r2, 0x2]
- ldrb r1, [r2, 0x3]
- cmp r0, r1
- bls _0810BE20
- ldrb r0, [r2, 0x1]
- ldrb r1, [r2, 0x3]
- adds r0, r1
- ldrb r2, [r2, 0x2]
- cmp r0, r2
- beq _0810BE20
- movs r0, 0x1
- movs r1, 0
- bl sub_80F979C
- b _0810BE28
- .align 2, 0
-_0810BE1C: .4byte gUnknown_02039248
-_0810BE20:
- movs r0, 0x1
- movs r1, 0x1
- bl sub_80F979C
-_0810BE28:
- movs r6, 0
- ldr r7, _0810BE94 @ =gBGTilemapBuffers + 0x1000
- movs r0, 0xF
- mov r8, r0
-_0810BE30:
- adds r0, r6, 0
- movs r1, 0x3
- bl __umodsi3
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 18
- ldr r1, _0810BE98 @ =0x000001a1
- adds r4, r1
- adds r0, r6, 0
- movs r1, 0x3
- bl __udivsi3
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 1
- adds r5, r4, r1
- ldr r1, _0810BE9C @ =gUnknown_02039248
- ldrb r2, [r1]
- ldrb r0, [r1, 0x1]
- adds r0, r2, r0
- ldrb r1, [r1, 0x2]
- cmp r0, r1
- beq _0810BEB8
- lsls r0, 3
- ldr r1, _0810BEA0 @ =gSaveBlock1 + 0x7F8
- adds r0, r1
- adds r4, r6, 0x1
- lsls r1, r4, 24
- lsrs r1, 24
- bl sub_810CA9C
- lsls r0, 16
- cmp r0, 0
- ble _0810BEA4
- lsls r1, r5, 1
- adds r1, r7
- lsls r2, r6, 12
- adds r0, r2, 0
- adds r0, 0x17
- strh r0, [r1]
- adds r0, r5, 0
- adds r0, 0x20
- lsls r0, 1
- adds r0, r7
- adds r2, 0x18
- strh r2, [r0]
- b _0810BECC
- .align 2, 0
-_0810BE94: .4byte gBGTilemapBuffers + 0x1000
-_0810BE98: .4byte 0x000001a1
-_0810BE9C: .4byte gUnknown_02039248
-_0810BEA0: .4byte gSaveBlock1 + 0x7F8
-_0810BEA4:
- lsls r0, r5, 1
- adds r0, r7
- mov r1, r8
- strh r1, [r0]
- adds r0, r5, 0
- adds r0, 0x20
- lsls r0, 1
- adds r0, r7
- strh r1, [r0]
- b _0810BECC
-_0810BEB8:
- lsls r0, r5, 1
- adds r0, r7
- mov r1, r8
- strh r1, [r0]
- adds r0, r5, 0
- adds r0, 0x20
- lsls r0, 1
- adds r0, r7
- strh r1, [r0]
- adds r4, r6, 0x1
-_0810BECC:
- lsls r0, r4, 24
- lsrs r6, r0, 24
- cmp r6, 0x4
- bls _0810BE30
- ldr r0, _0810BF10 @ =gWindowConfig_81E6E34
- bl BasicInitMenuWindow
- ldr r0, _0810BF14 @ =gUnknown_02039248
- ldrb r2, [r0]
- ldrb r1, [r0, 0x1]
- adds r2, r1
- ldrb r0, [r0, 0x2]
- cmp r2, r0
- beq _0810BF20
- ldr r4, _0810BF18 @ =gStringVar1
- lsls r0, r2, 3
- ldr r1, _0810BF1C @ =gSaveBlock1 + 0x7F8
- adds r0, r1
- bl sub_810C9E8
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- movs r2, 0x10
- movs r3, 0x1
- bl sub_8072C14
- adds r0, r4, 0
- movs r1, 0xB
- movs r2, 0x11
- bl MenuPrint
- b _0810BF2C
- .align 2, 0
-_0810BF10: .4byte gWindowConfig_81E6E34
-_0810BF14: .4byte gUnknown_02039248
-_0810BF18: .4byte gStringVar1
-_0810BF1C: .4byte gSaveBlock1 + 0x7F8
-_0810BF20:
- movs r0, 0xB
- movs r1, 0x11
- movs r2, 0xC
- movs r3, 0x12
- bl MenuZeroFillWindowRect
-_0810BF2C:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_810BDAC
-
thumb_func_start sub_810BF38
sub_810BF38: @ 810BF38
push {r4,lr}
diff --git a/src/pokeblock.c b/src/pokeblock.c
index ee2e5417b..e7405349f 100755
--- a/src/pokeblock.c
+++ b/src/pokeblock.c
@@ -475,13 +475,78 @@ void sub_810BD08(void)
}
}
-void sub_810BD64(u16 a0)
+void sub_810BD64(u16 a0, u16 a1)
{
u8 i;
int y;
for (i=0; i<14; i++)
{
- (gBGTilemapBuffers)[2][(2 * gUnknown_02039248[0] + 1) * 32 + (y = i + 15)] = a0;
- (gBGTilemapBuffers)[2][(2 * gUnknown_02039248[0] + 2) * 32 + y] = a0;
+ gBGTilemapBuffers[2][(2 * gUnknown_02039248[0] + 1) * 32 + (y = i + 15)] = a0;
+ gBGTilemapBuffers[2][(2 * gUnknown_02039248[0] + 2) * 32 + y] = a0;
+ }
+}
+
+s16 sub_810CA9C(struct Pokeblock *, u8);
+u8 sub_810C9E8(struct Pokeblock *);
+
+void sub_810BDAC(bool8 flag)
+{
+ u8 i;
+ u16 v0;
+ if (!flag)
+ {
+ sub_810BD64(0x1005, 0x1014);
+ }
+ else
+ {
+ sub_810BD64(0x2005, 0x2014);
+ }
+ if (gUnknown_02039248[1])
+ {
+ sub_80F979C(0, 0);
+ }
+ else
+ {
+ sub_80F979C(0, 1);
+ }
+ if (gUnknown_02039248[2] > gUnknown_02039248[3] && gUnknown_02039248[1] + gUnknown_02039248[3] != gUnknown_02039248[2])
+ {
+ sub_80F979C(1, 0);
+ }
+ else
+ {
+ sub_80F979C(1, 1);
+ }
+ for (i=0; i<5; i++)
+ {
+ v0 = ((i % 3) << 6) + 0x1a1 + (i / 3) * 6;
+ if (gUnknown_02039248[0] + gUnknown_02039248[1] != gUnknown_02039248[2])
+ {
+ if (sub_810CA9C(&gSaveBlock1.pokeblocks[gUnknown_02039248[0] + gUnknown_02039248[1]], i + 1) > 0)
+ {
+ gBGTilemapBuffers[2][v0] = (i << 12) + 23;
+ gBGTilemapBuffers[2][v0 + 32] = (i << 12) + 24;
+ }
+ else
+ {
+ gBGTilemapBuffers[2][v0] = 15;
+ gBGTilemapBuffers[2][v0 + 32] = 15;
+ }
+ }
+ else
+ {
+ gBGTilemapBuffers[2][v0] = 15;
+ gBGTilemapBuffers[2][v0 + 32] = 15;
+ }
+ }
+ BasicInitMenuWindow(&gWindowConfig_81E6E34);
+ if (gUnknown_02039248[0] + gUnknown_02039248[1] != gUnknown_02039248[2])
+ {
+ sub_8072C14(gStringVar1, sub_810C9E8(&gSaveBlock1.pokeblocks[gUnknown_02039248[0] + gUnknown_02039248[1]]), 16, 1);
+ MenuPrint(gStringVar1, 11, 17);
+ }
+ else
+ {
+ MenuZeroFillWindowRect(11, 17, 12, 18);
}
}