Map header labels, tileset constants
This commit is contained in:
277
home/map.asm
277
home/map.asm
@@ -219,27 +219,29 @@ ReturnToMapFromSubmenu:: ; 222a
|
||||
; 2238
|
||||
|
||||
CheckWarpTile:: ; 2238
|
||||
call Function2252
|
||||
call GetDestinationWarpNumber
|
||||
ret nc
|
||||
|
||||
push bc
|
||||
callba Function149af
|
||||
pop bc
|
||||
ret nc
|
||||
call Function22a7
|
||||
|
||||
call CopyWarpData
|
||||
scf
|
||||
ret
|
||||
; 224a
|
||||
|
||||
|
||||
|
||||
Function224a:: ; 224a
|
||||
call Function2252
|
||||
WarpCheck:: ; 224a
|
||||
call GetDestinationWarpNumber
|
||||
ret nc
|
||||
call Function22a7
|
||||
call CopyWarpData
|
||||
ret
|
||||
; 2252
|
||||
|
||||
Function2252:: ; 2252
|
||||
GetDestinationWarpNumber:: ; 2252
|
||||
callba Function1499a
|
||||
ret nc
|
||||
|
||||
@@ -247,7 +249,7 @@ Function2252:: ; 2252
|
||||
push af
|
||||
|
||||
call SwitchToMapScriptHeaderBank
|
||||
call Function2266
|
||||
call .GetDestinationWarpNumber
|
||||
|
||||
pop de
|
||||
ld a, d
|
||||
@@ -255,7 +257,7 @@ Function2252:: ; 2252
|
||||
ret
|
||||
; 2266
|
||||
|
||||
Function2266:: ; 2266
|
||||
.GetDestinationWarpNumber ; 2266
|
||||
ld a, [PlayerMapY]
|
||||
sub $4
|
||||
ld e, a
|
||||
@@ -265,48 +267,49 @@ Function2266:: ; 2266
|
||||
ld a, [wCurrMapWarpCount]
|
||||
and a
|
||||
ret z
|
||||
|
||||
ld c, a
|
||||
ld hl, wCurrMapWarpHeaderPointer
|
||||
ld a, [hli]
|
||||
ld h, [hl]
|
||||
ld l, a
|
||||
.asm_227e
|
||||
.loop
|
||||
push hl
|
||||
ld a, [hli]
|
||||
cp e
|
||||
jr nz, .asm_2289
|
||||
jr nz, .next
|
||||
ld a, [hli]
|
||||
cp d
|
||||
jr nz, .asm_2289
|
||||
jr .asm_2296
|
||||
jr nz, .next
|
||||
jr .found_warp
|
||||
|
||||
.asm_2289
|
||||
.next
|
||||
pop hl
|
||||
ld a, $5
|
||||
ld a, 5
|
||||
add l
|
||||
ld l, a
|
||||
jr nc, .asm_2291
|
||||
jr nc, .okay
|
||||
inc h
|
||||
|
||||
.asm_2291
|
||||
.okay
|
||||
dec c
|
||||
jr nz, .asm_227e
|
||||
jr nz, .loop
|
||||
xor a
|
||||
ret
|
||||
|
||||
.asm_2296
|
||||
.found_warp
|
||||
pop hl
|
||||
call Function22a3
|
||||
ret nc
|
||||
call .IncreaseHLTwice
|
||||
ret nc ; never encountered
|
||||
|
||||
ld a, [wCurrMapWarpCount]
|
||||
inc a
|
||||
sub c
|
||||
ld c, a
|
||||
scf
|
||||
ret
|
||||
; 22a3
|
||||
|
||||
Function22a3:: ; 22a3
|
||||
.IncreaseHLTwice
|
||||
rept 2
|
||||
inc hl
|
||||
endr
|
||||
@@ -314,12 +317,12 @@ endr
|
||||
ret
|
||||
; 22a7
|
||||
|
||||
Function22a7:: ; 22a7
|
||||
CopyWarpData:: ; 22a7
|
||||
ld a, [hROMBank]
|
||||
push af
|
||||
|
||||
call SwitchToMapScriptHeaderBank
|
||||
call Function22b4
|
||||
call .CopyWarpData
|
||||
|
||||
pop af
|
||||
rst Bankswitch
|
||||
@@ -327,7 +330,7 @@ Function22a7:: ; 22a7
|
||||
ret
|
||||
; 22b4
|
||||
|
||||
Function22b4:: ; 22b4
|
||||
.CopyWarpData ; 22b4
|
||||
push bc
|
||||
ld hl, wCurrMapWarpHeaderPointer
|
||||
ld a, [hli]
|
||||
@@ -335,29 +338,30 @@ Function22b4:: ; 22b4
|
||||
ld l, a
|
||||
ld a, c
|
||||
dec a
|
||||
ld bc, $0005
|
||||
ld bc, 5 ; warp size
|
||||
call AddNTimes
|
||||
ld bc, $0002
|
||||
ld bc, 2 ; warp number
|
||||
add hl, bc
|
||||
ld a, [hli]
|
||||
cp $ff
|
||||
jr nz, .asm_22d0
|
||||
ld hl, wdcac
|
||||
jr nz, .skip
|
||||
ld hl, BackupWarpNumber
|
||||
ld a, [hli]
|
||||
|
||||
.asm_22d0
|
||||
.skip
|
||||
pop bc
|
||||
ld [wd146], a
|
||||
ld [wNextWarp], a
|
||||
ld a, [hli]
|
||||
ld [wd147], a
|
||||
ld [wNextMapGroup], a
|
||||
ld a, [hli]
|
||||
ld [wd148], a
|
||||
ld [wNextMapNumber], a
|
||||
|
||||
ld a, c
|
||||
ld [wd149], a
|
||||
ld [wPrevWarp], a
|
||||
ld a, [MapGroup]
|
||||
ld [wd14a], a
|
||||
ld [wPrevMapGroup], a
|
||||
ld a, [MapNumber]
|
||||
ld [wd14b], a
|
||||
ld [wPrevMapNumber], a
|
||||
scf
|
||||
ret
|
||||
; 22ee
|
||||
@@ -382,40 +386,40 @@ CheckIndoorMap:: ; 22f4
|
||||
ret
|
||||
; 2300
|
||||
|
||||
Function2300:: ; 2300
|
||||
Function2300:: ; unreferenced
|
||||
cp INDOOR
|
||||
ret z
|
||||
cp GATE
|
||||
ret z
|
||||
cp $5
|
||||
cp PERM_5
|
||||
ret
|
||||
; 2309
|
||||
|
||||
|
||||
LoadMapAttributes:: ; 2309
|
||||
call Function2326
|
||||
call CopyMapHeaders
|
||||
call SwitchToMapScriptHeaderBank
|
||||
call Function234f
|
||||
call ReadMapScripts
|
||||
xor a
|
||||
call ReadMapEventHeader
|
||||
ret
|
||||
; 2317
|
||||
|
||||
LoadMapAttributes_IgnoreHidden:: ; 2317
|
||||
call Function2326
|
||||
LoadMapAttributes_SkipPeople:: ; 2317
|
||||
call CopyMapHeaders
|
||||
call SwitchToMapScriptHeaderBank
|
||||
call Function234f
|
||||
call ReadMapScripts
|
||||
ld a, $1
|
||||
call ReadMapEventHeader
|
||||
ret
|
||||
; 2326
|
||||
|
||||
Function2326:: ; 2326
|
||||
call Function2c3d
|
||||
CopyMapHeaders:: ; 2326
|
||||
call PartiallyCopyMapHeader
|
||||
call SwitchToMapBank
|
||||
call GetSecondaryMapHeaderPointer
|
||||
call Function235c
|
||||
call Function2368
|
||||
call CopySecondMapHeader
|
||||
call GetMapConnections
|
||||
ret
|
||||
; 2336
|
||||
|
||||
@@ -431,14 +435,16 @@ endr
|
||||
call ReadWarps
|
||||
call ReadCoordEvents
|
||||
call ReadSignposts
|
||||
|
||||
pop af
|
||||
and a
|
||||
ret nz
|
||||
|
||||
call ReadObjectEvents
|
||||
ret
|
||||
; 234f
|
||||
|
||||
Function234f:: ; 234f
|
||||
ReadMapScripts:: ; 234f
|
||||
ld hl, MapScriptHeaderPointer
|
||||
ld a, [hli]
|
||||
ld h, [hl]
|
||||
@@ -448,19 +454,19 @@ Function234f:: ; 234f
|
||||
ret
|
||||
; 235c
|
||||
|
||||
Function235c:: ; 235c
|
||||
CopySecondMapHeader:: ; 235c
|
||||
ld de, MapHeader
|
||||
ld c, $c
|
||||
.asm_2361
|
||||
ld c, 12 ; size of the second map header
|
||||
.loop
|
||||
ld a, [hli]
|
||||
ld [de], a
|
||||
inc de
|
||||
dec c
|
||||
jr nz, .asm_2361
|
||||
jr nz, .loop
|
||||
ret
|
||||
; 2368
|
||||
|
||||
Function2368:: ; 2368
|
||||
GetMapConnections:: ; 2368
|
||||
ld a, $ff
|
||||
ld [NorthConnectedMapGroup], a
|
||||
ld [SouthConnectedMapGroup], a
|
||||
@@ -470,29 +476,29 @@ Function2368:: ; 2368
|
||||
ld a, [MapConnections]
|
||||
ld b, a
|
||||
|
||||
bit 3, b
|
||||
jr z, .asm_2384
|
||||
bit NORTH_F, b
|
||||
jr z, .no_north
|
||||
ld de, NorthMapConnection
|
||||
call GetMapConnection
|
||||
.asm_2384
|
||||
.no_north
|
||||
|
||||
bit 2, b
|
||||
jr z, .asm_238e
|
||||
bit SOUTH_F, b
|
||||
jr z, .no_south
|
||||
ld de, SouthMapConnection
|
||||
call GetMapConnection
|
||||
.asm_238e
|
||||
.no_south
|
||||
|
||||
bit 1, b
|
||||
jr z, .asm_2398
|
||||
bit WEST_F, b
|
||||
jr z, .no_west
|
||||
ld de, WestMapConnection
|
||||
call GetMapConnection
|
||||
.asm_2398
|
||||
.no_west
|
||||
|
||||
bit 0, b
|
||||
jr z, .asm_23a2
|
||||
bit EAST_F, b
|
||||
jr z, .no_east
|
||||
ld de, EastMapConnection
|
||||
call GetMapConnection
|
||||
.asm_23a2
|
||||
.no_east
|
||||
|
||||
ret
|
||||
; 23a3
|
||||
@@ -568,11 +574,13 @@ ReadCoordEvents:: ; 23f1
|
||||
ld a, l
|
||||
ld [wCurrentMapXYTriggerHeaderPointer], a
|
||||
ld a, h
|
||||
ld [wdc00], a
|
||||
ld [wCurrentMapXYTriggerHeaderPointer + 1], a
|
||||
|
||||
ld a, c
|
||||
and a
|
||||
ret z
|
||||
ld bc, $0008
|
||||
|
||||
ld bc, 8
|
||||
call AddNTimes
|
||||
ret
|
||||
; 2408
|
||||
@@ -582,93 +590,108 @@ ReadSignposts:: ; 2408
|
||||
ld c, a
|
||||
ld [wCurrentMapSignpostCount], a
|
||||
ld a, l
|
||||
ld [wdc02], a
|
||||
ld [wCurrentMapSignpostHeaderPointer], a
|
||||
ld a, h
|
||||
ld [wdc03], a
|
||||
ld [wCurrentMapSignpostHeaderPointer + 1], a
|
||||
|
||||
ld a, c
|
||||
and a
|
||||
ret z
|
||||
ld bc, $0005
|
||||
|
||||
ld bc, 5
|
||||
call AddNTimes
|
||||
ret
|
||||
; 241f
|
||||
|
||||
ReadObjectEvents:: ; 241f
|
||||
push hl
|
||||
call Function2471
|
||||
call ClearObjectStructs
|
||||
pop de
|
||||
ld hl, MapObjects + OBJECT_LENGTH
|
||||
ld hl, Map1Object
|
||||
ld a, [de]
|
||||
inc de
|
||||
ld [wdc04], a
|
||||
ld [wCurrentMapPersonEventCount], a
|
||||
ld a, e
|
||||
ld [wdc05], a
|
||||
ld [wCurrentMapPersonEventHeaderPointer], a
|
||||
ld a, d
|
||||
ld [wdc06], a
|
||||
ld a, [wdc04]
|
||||
call Function2457
|
||||
ld a, [wdc04]
|
||||
ld [wCurrentMapPersonEventHeaderPointer + 1], a
|
||||
|
||||
ld a, [wCurrentMapPersonEventCount]
|
||||
call CopyMapObjectHeaders
|
||||
|
||||
; get NUM_OBJECTS - [wCurrentMapPersonEventCount]
|
||||
ld a, [wCurrentMapPersonEventCount]
|
||||
ld c, a
|
||||
ld a, $10
|
||||
ld a, NUM_OBJECTS ; - 1
|
||||
sub c
|
||||
jr z, .asm_2454
|
||||
ld bc, $0001
|
||||
jr z, .skip
|
||||
; jr c, .skip
|
||||
|
||||
; stupid waste of time and space
|
||||
ld bc, 1
|
||||
add hl, bc
|
||||
ld bc, $0010
|
||||
.asm_244a
|
||||
ld [hl], $0
|
||||
; Fill the remaining sprite IDs and y coords with 0 and -1, respectively.
|
||||
; Bleeds into wObjectMasks due to a bug. Uncomment the above subtraction
|
||||
; to fix.
|
||||
ld bc, OBJECT_LENGTH
|
||||
.loop
|
||||
ld [hl], 0
|
||||
inc hl
|
||||
ld [hl], $ff
|
||||
ld [hl], -1
|
||||
dec hl
|
||||
add hl, bc
|
||||
dec a
|
||||
jr nz, .asm_244a
|
||||
jr nz, .loop
|
||||
|
||||
.asm_2454
|
||||
.skip
|
||||
ld h, d
|
||||
ld l, e
|
||||
ret
|
||||
; 2457
|
||||
|
||||
Function2457:: ; 2457
|
||||
CopyMapObjectHeaders:: ; 2457
|
||||
and a
|
||||
ret z
|
||||
|
||||
ld c, a
|
||||
.asm_245a
|
||||
.loop
|
||||
push bc
|
||||
push hl
|
||||
ld a, $ff
|
||||
ld [hli], a
|
||||
ld b, $d
|
||||
.asm_2461
|
||||
ld b, MAPOBJECT_E - MAPOBJECT_SPRITE
|
||||
.loop2
|
||||
ld a, [de]
|
||||
inc de
|
||||
ld [hli], a
|
||||
dec b
|
||||
jr nz, .asm_2461
|
||||
jr nz, .loop2
|
||||
|
||||
pop hl
|
||||
ld bc, $0010
|
||||
ld bc, OBJECT_LENGTH
|
||||
add hl, bc
|
||||
pop bc
|
||||
dec c
|
||||
jr nz, .asm_245a
|
||||
jr nz, .loop
|
||||
ret
|
||||
; 2471
|
||||
|
||||
Function2471:: ; 2471
|
||||
ClearObjectStructs:: ; 2471
|
||||
ld hl, Object1Struct
|
||||
ld bc, OBJECT_STRUCT_LENGTH * (NUM_OBJECT_STRUCTS - 1)
|
||||
xor a
|
||||
call ByteFill
|
||||
|
||||
; Just to make sure (this is rather pointless)
|
||||
ld hl, Object1Struct
|
||||
ld de, OBJECT_STRUCT_LENGTH
|
||||
ld c, NUM_OBJECT_STRUCTS - 1
|
||||
xor a
|
||||
.asm_2484
|
||||
.loop
|
||||
ld [hl], a
|
||||
add hl, de
|
||||
dec c
|
||||
jr nz, .asm_2484
|
||||
jr nz, .loop
|
||||
ret
|
||||
; 248a
|
||||
|
||||
@@ -681,34 +704,35 @@ RestoreFacingAfterWarp:: ; 248a
|
||||
ld h, [hl]
|
||||
ld l, a
|
||||
rept 3
|
||||
inc hl
|
||||
inc hl ; get to the warp coords
|
||||
endr
|
||||
ld a, [WarpNumber]
|
||||
dec a
|
||||
ld c, a
|
||||
ld b, $0
|
||||
ld a, $5
|
||||
ld b, 0
|
||||
ld a, 5
|
||||
call AddNTimes
|
||||
ld a, [hli]
|
||||
ld [YCoord], a
|
||||
ld a, [hli]
|
||||
ld [XCoord], a
|
||||
; destination warp number
|
||||
ld a, [hli]
|
||||
cp $ff
|
||||
jr nz, .asm_24b3
|
||||
call Function24ba
|
||||
jr nz, .skip
|
||||
call .backup
|
||||
|
||||
.asm_24b3
|
||||
.skip
|
||||
callba GetCoordOfUpperLeftCorner
|
||||
ret
|
||||
; 24ba
|
||||
|
||||
Function24ba:: ; 24ba
|
||||
ld a, [wd149]
|
||||
ld [wdcac], a
|
||||
ld a, [wd14a]
|
||||
.backup
|
||||
ld a, [wPrevWarp]
|
||||
ld [BackupWarpNumber], a
|
||||
ld a, [wPrevMapGroup]
|
||||
ld [BackupMapGroup], a
|
||||
ld a, [wd14b]
|
||||
ld a, [wPrevMapNumber]
|
||||
ld [BackupMapNumber], a
|
||||
ret
|
||||
; 24cd
|
||||
@@ -1415,7 +1439,7 @@ Function2821:: ; 2821
|
||||
ld [rVBK], a
|
||||
pop af
|
||||
ld [rSVBK], a
|
||||
ld a, [wd199]
|
||||
ld a, [wTileset]
|
||||
cp $1
|
||||
jr z, .asm_286f
|
||||
cp $2
|
||||
@@ -1836,6 +1860,7 @@ CheckFacingSign:: ; 2a8b
|
||||
ld a, [wCurrentMapSignpostCount]
|
||||
and a
|
||||
ret z
|
||||
|
||||
ld c, a
|
||||
ld a, [hROMBank]
|
||||
push af
|
||||
@@ -1849,7 +1874,7 @@ CheckFacingSign:: ; 2a8b
|
||||
|
||||
CheckIfFacingTileCoordIsSign:: ; 2aaa
|
||||
; Checks to see if you are facing a signpost. If so, copies it into EngineBuffer1 and sets carry.
|
||||
ld hl, wdc02
|
||||
ld hl, wCurrentMapSignpostHeaderPointer
|
||||
ld a, [hli]
|
||||
ld h, [hl]
|
||||
ld l, a
|
||||
@@ -1954,7 +1979,7 @@ CheckStandingOnXYTrigger:: ; 2ae7
|
||||
.copytrigger
|
||||
pop hl
|
||||
ld de, EngineBuffer1
|
||||
ld bc, $0008 ; xy-trigger size
|
||||
ld bc, 8 ; xy-trigger size
|
||||
call CopyBytes
|
||||
scf
|
||||
ret
|
||||
@@ -2160,15 +2185,19 @@ GetAnyMapBank:: ; 2c31
|
||||
ret
|
||||
; 2c3d
|
||||
|
||||
Function2c3d:: ; 2c3d
|
||||
PartiallyCopyMapHeader:: ; 2c3d
|
||||
; Copy second map header bank, tileset, permission, and second map header address
|
||||
; from the current map's map header.
|
||||
ld a, [hROMBank]
|
||||
push af
|
||||
ld a, BANK(MapGroupPointers)
|
||||
rst Bankswitch
|
||||
|
||||
call GetMapHeaderPointer
|
||||
ld de, wd197 + 1
|
||||
ld bc, $0005
|
||||
ld de, wSecondMapHeaderBank
|
||||
ld bc, MapHeader - wSecondMapHeaderBank
|
||||
call CopyBytes
|
||||
|
||||
pop af
|
||||
rst Bankswitch
|
||||
ret
|
||||
@@ -2220,7 +2249,7 @@ GetSecondaryMapHeaderPointer:: ; 0x2c7d
|
||||
; returns the current map's secondary map header pointer in hl.
|
||||
push bc
|
||||
push de
|
||||
ld de, $0003 ; secondary map header pointer (offset within header)
|
||||
ld de, 3 ; secondary map header pointer (offset within header)
|
||||
call GetMapHeaderMember
|
||||
ld l, c
|
||||
ld h, b
|
||||
@@ -2233,7 +2262,7 @@ GetMapPermission:: ; 2c8a
|
||||
push hl
|
||||
push de
|
||||
push bc
|
||||
ld de, 2
|
||||
ld de, 2 ; permission
|
||||
call GetMapHeaderMember
|
||||
ld a, c
|
||||
pop bc
|
||||
@@ -2250,7 +2279,7 @@ GetAnyMapPermission:: ; 2c99
|
||||
push hl
|
||||
push de
|
||||
push bc
|
||||
ld de, $0002
|
||||
ld de, 2 ; permission
|
||||
call GetAnyMapHeaderMember
|
||||
ld a, c
|
||||
pop bc
|
||||
@@ -2260,7 +2289,7 @@ GetAnyMapPermission:: ; 2c99
|
||||
; 2ca7
|
||||
|
||||
GetAnyMapTileset:: ; 2ca7
|
||||
ld de, $0001
|
||||
ld de, 1 ; tileset
|
||||
call GetAnyMapHeaderMember
|
||||
ld a, c
|
||||
ret
|
||||
@@ -2271,9 +2300,11 @@ GetWorldMapLocation:: ; 0x2caf
|
||||
push hl
|
||||
push de
|
||||
push bc
|
||||
ld de, 5
|
||||
|
||||
ld de, 5 ; landmark
|
||||
call GetAnyMapHeaderMember
|
||||
ld a, c
|
||||
|
||||
pop bc
|
||||
pop de
|
||||
pop hl
|
||||
@@ -2343,21 +2374,25 @@ GetMapHeaderPhoneServiceNybble:: ; 2d05
|
||||
GetPhoneServiceTimeOfDayByte:: ; 2d0d
|
||||
push hl
|
||||
push bc
|
||||
|
||||
ld de, 7 ; phone service and time of day
|
||||
call GetMapHeaderMember
|
||||
ld a, c
|
||||
|
||||
pop bc
|
||||
pop hl
|
||||
ret
|
||||
; 2d19
|
||||
|
||||
Function2d19:: ; 2d19
|
||||
GetFishingGroup:: ; 2d19
|
||||
push de
|
||||
push hl
|
||||
push bc
|
||||
|
||||
ld de, 8 ; fishing group
|
||||
call GetMapHeaderMember
|
||||
ld a, c
|
||||
|
||||
pop bc
|
||||
pop hl
|
||||
pop de
|
||||
@@ -2370,7 +2405,7 @@ LoadTilesetHeader:: ; 2d27
|
||||
|
||||
ld hl, Tilesets
|
||||
ld bc, Tileset01 - Tileset00
|
||||
ld a, [wd199]
|
||||
ld a, [wTileset]
|
||||
call AddNTimes
|
||||
|
||||
ld de, TilesetBank
|
||||
|
Reference in New Issue
Block a user