aboutsummaryrefslogtreecommitdiff
path: root/map
diff options
context:
space:
mode:
Diffstat (limited to 'map')
-rw-r--r--map/loading.gbasm72
1 files changed, 63 insertions, 9 deletions
diff --git a/map/loading.gbasm b/map/loading.gbasm
index c0ea14f..dddf1a3 100644
--- a/map/loading.gbasm
+++ b/map/loading.gbasm
@@ -212,13 +212,8 @@ Load_Block: ; X in A, Y in B
CALL =Is_Solid
OR C
LD C, A
- SLA C
- SLA C
-
- LD A, C
- ADD $20
- LD C, A
+ INC C
LD A, $mem_map_loading_flags
SET 2, A
@@ -310,24 +305,61 @@ Display_Main_Prepared_Block:
LD E, A
LD A, $mem_prepared_block_tile
+ CP $00
+ JR Z, =.Empty
+ DEC A
LD C, A
+ AND 0b0101
+ SCF
+ CCF
+ RR A
+ RR A
+ RLC A
+ ADD $20
+
LD (DE), A
+
LD A, E
OR $20
LD E, A
+
LD A, C
- OR $02
+ AND 0b1001
+ SCF
+ CCF
+ RR A
+ RR A
+ RLC A
+ SCF
+ CCF
+ RR A
+ RR A
+ RLC A
+ ADD $28
LD (DE), A
+
INC E
+
LD A, C
- OR $03
+ AND 0b1010
+ SRA A
+ RR A
+ RR A
+ RLC A
+ ADD $2c
+
LD (DE), A
+
LD A, E
AND $DF
LD E, A
+
LD A, C
- OR $01
+ AND 0b0110
+ SRA A
+ ADD $24
+
LD (DE), A
.End:
@@ -337,6 +369,28 @@ Display_Main_Prepared_Block:
POP AF
RET
+ .Empty:
+ XOR A
+ LD (DE), A
+ LD A, E
+ OR $20
+ LD E, A
+ XOR A
+ LD (DE), A
+ INC E
+ XOR A
+ LD (DE), A
+ LD A, E
+ AND $DF
+ LD E, A
+ XOR A
+ LD (DE), A
+
+ POP DE
+ POP BC
+ POP AF
+ RET
+
Is_Solid: ; X in A, Y in B, Result A
PUSH BC