summaryrefslogtreecommitdiff
path: root/home/map.asm
diff options
context:
space:
mode:
Diffstat (limited to 'home/map.asm')
-rw-r--r--home/map.asm129
1 files changed, 48 insertions, 81 deletions
diff --git a/home/map.asm b/home/map.asm
index d049623e6..0f72b235d 100644
--- a/home/map.asm
+++ b/home/map.asm
@@ -114,9 +114,9 @@ LoadMapPart:: ; 217a
ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
call ByteFill
- ld a, BANK(Function4d15b)
+ ld a, BANK(_LoadMapPart)
rst Bankswitch
- call Function4d15b
+ call _LoadMapPart
pop af
rst Bankswitch
@@ -124,38 +124,40 @@ LoadMapPart:: ; 217a
; 2198
LoadMetatiles:: ; 2198
-; de <- wOverworldMapAnchor
+ ; de <- wOverworldMapAnchor
ld a, [wOverworldMapAnchor]
ld e, a
ld a, [wOverworldMapAnchor + 1]
ld d, a
ld hl, wMisc
- ld b, 5 ; SCREEN_WIDTH / 4
+ ld b, WMISC_HEIGHT / 4 ; 5
-.loop
+.row
push de
push hl
- ld c, 6 ; SCREEN_HEIGHT / 3
+ ld c, WMISC_WIDTH / 4 ; 6
-.loop2
+.col
push de
push hl
+ ; Load the current map block.
+ ; If the current map block is a border block, load the border block.
ld a, [de]
and a
jr nz, .ok
ld a, [MapBorderBlock]
.ok
+ ; Load the current wMisc address into de.
ld e, l
ld d, h
-; double a, load hl <- a, multiply hl by 8
+ ; Set hl to the address of the current metatile data ([TilesetBlocksAddress] + (a) tiles).
add a
ld l, a
ld h, 0
rept 3
- add hl,hl
+ add hl, hl
endr
-; hl <- hl + [TilesetBlocksAddress]
ld a, [TilesetBlocksAddress]
add l
ld l, a
@@ -163,37 +165,36 @@ endr
adc h
ld h, a
+ ; copy the 4x4 metatile
rept 3
-; copy 4 bytes from hl to de
rept 4
ld a, [hli]
ld [de], a
inc de
endr
-; next row
ld a, e
- add SCREEN_WIDTH
+ add WMISC_WIDTH - 4
ld e, a
jr nc, .next\@
inc d
.next\@
endr
-; copy 4 more bytes from hl to de
rept 4
ld a, [hli]
ld [de], a
inc de
endr
-
+ ; Next metatile
pop hl
ld de, 4
add hl, de
pop de
inc de
dec c
- jp nz, .loop2
+ jp nz, .col
+ ; Next metarow
pop hl
- ld de, $60
+ ld de, WMISC_WIDTH * 4
add hl, de
pop de
ld a, [MapWidth]
@@ -202,10 +203,9 @@ endr
ld e, a
jr nc, .ok2
inc d
-
.ok2
dec b
- jp nz, .loop
+ jp nz, .row
ret
; 222a
@@ -223,7 +223,7 @@ CheckWarpTile:: ; 2238
ret nc
push bc
- callba Function149af
+ callba CheckDirectionalWarp
pop bc
ret nc
@@ -232,8 +232,6 @@ CheckWarpTile:: ; 2238
ret
; 224a
-
-
WarpCheck:: ; 224a
call GetDestinationWarpNumber
ret nc
@@ -242,7 +240,7 @@ WarpCheck:: ; 224a
; 2252
GetDestinationWarpNumber:: ; 2252
- callba Function1499a
+ callba CheckWarpCollision
ret nc
ld a, [hROMBank]
@@ -366,8 +364,6 @@ CopyWarpData:: ; 22a7
ret
; 22ee
-
-
CheckOutdoorMap:: ; 22ee
cp ROUTE
ret z
@@ -395,7 +391,6 @@ Function2300:: ; unreferenced
ret
; 2309
-
LoadMapAttributes:: ; 2309
call CopyMapHeaders
call SwitchToMapScriptHeaderBank
@@ -503,7 +498,6 @@ GetMapConnections:: ; 2368
ret
; 23a3
-
GetMapConnection:: ; 23a3
; Load map connection struct at hl into de.
ld c, SouthMapConnection - NorthMapConnection
@@ -516,7 +510,6 @@ GetMapConnection:: ; 23a3
ret
; 23ac
-
ReadMapTriggers:: ; 23ac
ld a, [hli] ; trigger count
ld c, a
@@ -749,8 +742,6 @@ LoadBlockData:: ; 24cd
ret
; 24e4
-
-
ChangeMap:: ; 24e4
ld a, [hROMBank]
push af
@@ -801,8 +792,6 @@ endr
ret
; 2524
-
-
FillMapConnections:: ; 2524
; North
@@ -901,7 +890,6 @@ FillMapConnections:: ; 2524
ret
; 25d3
-
FillNorthConnectionStrip::
FillSouthConnectionStrip:: ; 25d3
@@ -938,7 +926,6 @@ FillSouthConnectionStrip:: ; 25d3
ret
; 25f6
-
FillWestConnectionStrip::
FillEastConnectionStrip:: ; 25f6
@@ -983,7 +970,6 @@ LoadMapStatus:: ; 261b
ret
; 261f
-
CallScript:: ; 261f
; Call a script at a:hl.
@@ -1138,7 +1124,6 @@ GetMovementData:: ; 26c7
ret
; 26d4
-
GetScriptByte:: ; 0x26d4
; Return byte at ScriptBank:ScriptPos in a.
@@ -1170,7 +1155,6 @@ GetScriptByte:: ; 0x26d4
ret
; 0x26ef
-
ObjectEvent:: ; 0x26ef
jumptextfaceplayer ObjectEventText
; 0x26f2
@@ -1180,7 +1164,6 @@ ObjectEventText::
db "@"
; 0x26f7
-
BGEvent:: ; 26f7
jumptext BGEventText
; 26fa
@@ -1190,7 +1173,6 @@ BGEventText:: ; 26fa
db "@"
; 26ff
-
CoordinatesEvent:: ; 26ff
jumptext CoordinatesEventText
; 2702
@@ -1200,7 +1182,6 @@ CoordinatesEventText:: ; 2702
db "@"
; 2707
-
CheckObjectMask:: ; 2707
ld a, [hMapObjectIndexBuffer]
ld e, a
@@ -1231,7 +1212,6 @@ UnmaskObject:: ; 271e
ret
; 272a
-
ScrollMapDown:: ; 272a
hlcoord 0, 0
ld de, BGMapBuffer
@@ -1472,7 +1452,7 @@ BufferScreen:: ; 2879
ld a, [hli]
ld h, [hl]
ld l, a
- ld de, XCoord + 1
+ ld de, wScreenSave
ld c, $5
ld b, $6
.asm_2886
@@ -1501,9 +1481,9 @@ SaveScreen:: ; 289d
ld a, [hli]
ld h, [hl]
ld l, a
- ld de, XCoord + 1
+ ld de, wScreenSave
ld a, [MapWidth]
- add $6
+ add 6
ld [hMapObjectIndexBuffer], a
ld a, [wPlayerStepDirection]
and a
@@ -1517,7 +1497,7 @@ SaveScreen:: ; 289d
ret
.up
- ld de, wdcbf
+ ld de, wScreenSave + 6
ld a, [hMapObjectIndexBuffer]
ld c, a
ld b, $0
@@ -1525,26 +1505,23 @@ SaveScreen:: ; 289d
jr .vertical
.down
- ld de, XCoord + 1
-
+ ld de, wScreenSave
.vertical
- ld b, $6
- ld c, $4
- jr Function28f7
+ ld b, 6
+ ld c, 4
+ jr SaveScreen_LoadNeighbor
.left
- ld de, XCoord + 2
+ ld de, wScreenSave + 1
inc hl
jr .horizontal
.right
- ld de, XCoord + 1
-
+ ld de, wScreenSave
.horizontal
- ld b, $5
- ld c, $5
- jr Function28f7
-
+ ld b, 5
+ ld c, 5
+ jr SaveScreen_LoadNeighbor
LoadNeighboringBlockData:: ; 28e3
ld hl, wOverworldMapAnchor
@@ -1552,26 +1529,26 @@ LoadNeighboringBlockData:: ; 28e3
ld h, [hl]
ld l, a
ld a, [MapWidth]
- add $6
+ add 6
ld [hConnectionStripLength], a
- ld de, XCoord + 1
- ld b, $6
- ld c, $5
+ ld de, wScreenSave
+ ld b, 6
+ ld c, 5
-Function28f7:: ; 28f7
-.loop1
+SaveScreen_LoadNeighbor:: ; 28f7
+.row
push bc
push hl
push de
-.loop2
+.col
ld a, [de]
inc de
ld [hli], a
dec b
- jr nz, .loop2
+ jr nz, .col
pop de
ld a, e
- add $6
+ add 6
ld e, a
jr nc, .okay
inc d
@@ -1580,11 +1557,11 @@ Function28f7:: ; 28f7
pop hl
ld a, [hConnectionStripLength]
ld c, a
- ld b, $0
+ ld b, 0
add hl, bc
pop bc
dec c
- jr nz, .loop1
+ jr nz, .row
ret
; 2914
@@ -1746,7 +1723,6 @@ Function29ff:: ; 29ff
ret
; 2a07
-
GetFacingTileCoord:: ; 2a07
; Return map coordinates in (d, e) and tile id in a
; of the tile the player is facing.
@@ -1793,7 +1769,6 @@ endr
dw TileRight
; 2a3c
-
GetCoordTile:: ; 2a3c
; Get the collision byte for tile d, e
call GetBlockLocation
@@ -1861,7 +1836,6 @@ GetBlockLocation:: ; 2a66
ret
; 2a8b
-
CheckFacingSign:: ; 2a8b
call GetFacingTileCoord
; Load facing into b.
@@ -2002,7 +1976,6 @@ CheckStandingOnXYTrigger:: ; 2ae7
ret
; 2b29
-
FadeToMenu:: ; 2b29
xor a
ld [hBGMapMode], a
@@ -2013,7 +1986,6 @@ FadeToMenu:: ; 2b29
ret
; 2b3c
-
CloseSubmenu:: ; 2b3c
call ClearBGPalettes
call Function2bae
@@ -2032,14 +2004,13 @@ ExitAllMenus:: ; 2b4d
Function2b5c:: ; 2b5c
ld b, SCGB_09
call GetSGBLayout
- callba Function49409
+ callba LoadOW_BGPal7
call WaitBGMap2
callba FadeInPalettes
call EnableSpriteUpdates
ret
; 2b74
-
Function2b74:: ; 0x2b74
push af
ld a, $1
@@ -2056,7 +2027,7 @@ Function2b74:: ; 0x2b74
call WaitBGMap2
ld b, SCGB_09
call GetSGBLayout
- callba Function49409
+ callba LoadOW_BGPal7
call UpdateTimePals
call DelayFrame
ld a, $1
@@ -2078,7 +2049,7 @@ Function2bae:: ; 2bae
ld a, [MapNumber]
ld c, a
call SwitchToAnyMapBank
- callba Function8c001
+ callba UpdateTimeOfDayPal
call OverworldTextModeSwitch
call LoadTileset
ld a, 9
@@ -2090,7 +2061,6 @@ Function2bae:: ; 2bae
ret
; 2be5
-
GetMapHeaderPointer:: ; 2be5
ld a, [MapGroup]
ld b, a
@@ -2167,7 +2137,6 @@ GetAnyMapHeaderMember:: ; 0x2c0c
ret
; 0x2c1c
-
SwitchToMapBank:: ; 2c1c
ld a, [MapGroup]
ld b, a
@@ -2181,7 +2150,6 @@ SwitchToAnyMapBank:: ; 2c24
ret
; 2c29
-
GetMapBank:: ; 2c29
ld a, [MapGroup]
ld b, a
@@ -2224,7 +2192,6 @@ SwitchToMapScriptHeaderBank:: ; 2c52
ret
; 2c57
-
GetMapScriptHeaderBank:: ; 2c57
ld a, [MapScriptHeaderBank]
ret