Reorganize the locations of disabled spaces engine code (#33)

This commit is contained in:
xCrystal
2023-12-21 20:04:30 +01:00
parent eafc71f4a2
commit 2d8ccc53df
3 changed files with 419 additions and 418 deletions

View File

@@ -1992,154 +1992,6 @@ GetBlockLocation::
add hl, bc
ret
GetSouthConnectedBlockLocation::
; ycoord / 2 <= 2
ld a, e
srl a
cp 3
ret nc
; [wSouthConnectionStripLocation]
ld hl, wSouthConnectionStripLocation
ld a, [hli]
ld h, [hl]
ld l, a
; + (xcoord / 2)
srl d
ld b, 0
ld c, d
add hl, bc
; + ([wMapWidth] + 6) * ycoord / 2
ld a, [wMapWidth]
add 6
ld c, a
ld b, 0
srl e
ld a, e
and a
jr z, .done
.loop
add hl, bc
dec a
jr nz, .loop
.done
scf
ret ; c
GetNorthConnectedBlockLocation::
; wNorthConnectedMapHeight >= 3
; ycoord / 2 >= ([wNorthConnectedMapHeight] - 3)
ld a, [wNorthConnectedMapHeight]
sub 3
jr c, .nope
ld c, a
ld a, e
srl a
sub c
jr c, .nope
ld e, a ; e = ycoord / 2 - ([wNorthConnectedMapHeight] - 3)
; [wNorthConnectionStripLocation]
ld hl, wNorthConnectionStripLocation
ld a, [hli]
ld h, [hl]
ld l, a
; + (xcoord / 2)
srl d
ld b, 0
ld c, d
add hl, bc
; + ([wMapWidth] + 6) * {ycoord / 2 - ([wNorthConnectedMapHeight] - 3)} --> + ([wMapWidth] + 6) * e
ld a, [wMapWidth]
add 6
ld c, a
ld b, 0
ld a, e
and a
jr z, .done
.loop
add hl, bc
dec a
jr nz, .loop
.done
scf
ret ; c
.nope
xor a
ret ; nc
GetEastConnectedBlockLocation::
; xcoord / 2 <= 2
ld a, d
srl a
cp 3
ret nc
; [wEastConnectionStripLocation]
ld hl, wEastConnectionStripLocation
ld a, [hli]
ld h, [hl]
ld l, a
; + (xcoord / 2)
srl d
ld b, 0
ld c, d
add hl, bc
; + ([wMapWidth] + 6) * ycoord / 2
ld a, [wMapWidth]
add 6
ld c, a
ld b, 0
srl e
ld a, e
and a
jr z, .done
.loop
add hl, bc
dec a
jr nz, .loop
.done
scf
ret ; c
GetWestConnectedBlockLocation::
; wWestConnectedMapWidth >= 3
; xcoord / 2 >= ([wWestConnectedMapWidth] - 3)
ld a, [wWestConnectedMapWidth]
sub 3
jr c, .nope
ld c, a
ld a, d
srl a
sub c
jr c, .nope
ld d, a ; d = xcoord / 2 - ([wWestConnectedMapWidth] - 3)
; [wWestConnectionStripLocation]
ld hl, wWestConnectionStripLocation
ld a, [hli]
ld h, [hl]
ld l, a
; + xcoord / 2 - ([wWestConnectedMapWidth] - 3) --> + d
ld c, d
ld b, 0
add hl, bc
; + ([wMapWidth] + 6) * ycoord / 2
ld a, [wMapWidth]
add 6
ld c, a
ld b, 0
srl e
ld a, e
and a
jr z, .done
.loop
add hl, bc
dec a
jr nz, .loop
.done
scf
ret ; c
.nope
xor a
ret ; nc
CheckAndApplyAnchorPoint::
; c = [wCurMapAnchorEventCount] (non-0)
; d = [wXCoord]