mirror of
https://github.com/badvision/lawless-legends.git
synced 2024-10-03 21:55:17 +00:00
Added logic to load tilesets when moving across map
This commit is contained in:
parent
de57fc238d
commit
5c9c04f794
@ -38,6 +38,10 @@ NW_MAP_LOC=$52
|
|||||||
NE_MAP_LOC=$54
|
NE_MAP_LOC=$54
|
||||||
SW_MAP_LOC=$56
|
SW_MAP_LOC=$56
|
||||||
SE_MAP_LOC=$58
|
SE_MAP_LOC=$58
|
||||||
|
NW_TILESET_LOC=$70
|
||||||
|
NE_TILESET_LOC=$72
|
||||||
|
SW_TILESET_LOC=$74
|
||||||
|
SE_TILESET_LOC=$76
|
||||||
; Map section IDs (255 = not loaded)
|
; Map section IDs (255 = not loaded)
|
||||||
NOT_LOADED=$FF
|
NOT_LOADED=$FF
|
||||||
NW_MAP_ID=$5A
|
NW_MAP_ID=$5A
|
||||||
@ -125,8 +129,8 @@ FINISH_MAP_LOAD
|
|||||||
}
|
}
|
||||||
|
|
||||||
;----------------------------------------------------------------------
|
;----------------------------------------------------------------------
|
||||||
; >> RELEASE MAP SECTION
|
; >> RELEASE MAP SECTION OR TILESET
|
||||||
!macro releaseMapSection ptr {
|
!macro freeResource ptr {
|
||||||
; --> free up unused resource
|
; --> free up unused resource
|
||||||
LDX ptr
|
LDX ptr
|
||||||
LDY ptr+1
|
LDY ptr+1
|
||||||
@ -136,6 +140,18 @@ FINISH_MAP_LOAD
|
|||||||
;----------------------------------------------------------------------
|
;----------------------------------------------------------------------
|
||||||
; >> LOAD TILES
|
; >> LOAD TILES
|
||||||
; Load tile resource (A = Resource ID)
|
; Load tile resource (A = Resource ID)
|
||||||
|
LOAD_TILESET
|
||||||
|
TAY
|
||||||
|
LDX #RES_TYPE_TILESET
|
||||||
|
LDA #QUEUE_LOAD
|
||||||
|
JMP mainLoader
|
||||||
|
!macro loadTileset mapData, ptr {
|
||||||
|
LDY #4
|
||||||
|
LDA (mapData),Y
|
||||||
|
JSR LOAD_TILESET
|
||||||
|
STX ptr
|
||||||
|
STY ptr+1
|
||||||
|
}
|
||||||
;----------------------------------------------------------------------
|
;----------------------------------------------------------------------
|
||||||
; >> MOVE NORTH
|
; >> MOVE NORTH
|
||||||
; Check for boundary
|
; Check for boundary
|
||||||
@ -182,11 +198,32 @@ SET_XY
|
|||||||
STX to
|
STX to
|
||||||
}
|
}
|
||||||
|
|
||||||
|
FREE_ALL_TILES
|
||||||
|
+freeResource NW_TILESET_LOC
|
||||||
|
+freeResource NE_TILESET_LOC
|
||||||
|
+freeResource SW_TILESET_LOC
|
||||||
|
+freeResource SE_TILESET_LOC
|
||||||
|
RTS
|
||||||
|
!macro freeAllTiles {
|
||||||
|
JSR FREE_ALL_TILES
|
||||||
|
}
|
||||||
|
|
||||||
|
LOAD_ALL_TILES
|
||||||
|
+loadTileset NW_MAP_LOC, NW_TILESET_LOC
|
||||||
|
+loadTileset NE_MAP_LOC, NW_TILESET_LOC
|
||||||
|
+loadTileset SW_MAP_LOC, NW_TILESET_LOC
|
||||||
|
+loadTileset SE_MAP_LOC, NW_TILESET_LOC
|
||||||
|
RTS
|
||||||
|
!macro loadAllTiles {
|
||||||
|
JSR LOAD_ALL_TILES
|
||||||
|
}
|
||||||
|
|
||||||
; >> CROSS NORTH BOUNDARY (Load next section to the north)
|
; >> CROSS NORTH BOUNDARY (Load next section to the north)
|
||||||
!zone
|
!zone
|
||||||
CROSS_NORTH
|
CROSS_NORTH
|
||||||
+releaseMapSection SW_MAP_LOC
|
+freeAllTiles
|
||||||
+releaseMapSection SE_MAP_LOC
|
+freeResource SW_MAP_LOC
|
||||||
|
+freeResource SE_MAP_LOC
|
||||||
LDA REL_Y
|
LDA REL_Y
|
||||||
CLC
|
CLC
|
||||||
ADC #SECTION_HEIGHT
|
ADC #SECTION_HEIGHT
|
||||||
@ -205,14 +242,16 @@ CROSS_NORTH
|
|||||||
LDA (SE_MAP_LOC),Y
|
LDA (SE_MAP_LOC),Y
|
||||||
STA NE_MAP_ID
|
STA NE_MAP_ID
|
||||||
+loadSection NE_MAP_LOC
|
+loadSection NE_MAP_LOC
|
||||||
|
+loadAllTiles
|
||||||
+finishLoad
|
+finishLoad
|
||||||
RTS
|
RTS
|
||||||
;----------------------------------------------------------------------
|
;----------------------------------------------------------------------
|
||||||
; >> CROSS EAST BOUNDARY (Load next section to the east)
|
; >> CROSS EAST BOUNDARY (Load next section to the east)
|
||||||
!zone
|
!zone
|
||||||
CROSS_EAST
|
CROSS_EAST
|
||||||
+releaseMapSection NW_MAP_LOC
|
+freeAllTiles
|
||||||
+releaseMapSection SW_MAP_LOC
|
+freeResource NW_MAP_LOC
|
||||||
|
+freeResource SW_MAP_LOC
|
||||||
LDA REL_X
|
LDA REL_X
|
||||||
SEC
|
SEC
|
||||||
SBC #SECTION_WIDTH
|
SBC #SECTION_WIDTH
|
||||||
@ -232,14 +271,16 @@ CROSS_EAST
|
|||||||
LDA (SW_MAP_LOC),Y
|
LDA (SW_MAP_LOC),Y
|
||||||
STA SE_MAP_ID
|
STA SE_MAP_ID
|
||||||
+loadSection SE_MAP_LOC
|
+loadSection SE_MAP_LOC
|
||||||
|
+loadAllTiles
|
||||||
+finishLoad
|
+finishLoad
|
||||||
RTS
|
RTS
|
||||||
;----------------------------------------------------------------------
|
;----------------------------------------------------------------------
|
||||||
; >> CROSS SOUTH BOUNDARY (Load next section to the south)
|
; >> CROSS SOUTH BOUNDARY (Load next section to the south)
|
||||||
!zone
|
!zone
|
||||||
CROSS_SOUTH
|
CROSS_SOUTH
|
||||||
+releaseMapSection NW_MAP_LOC
|
+freeAllTiles
|
||||||
+releaseMapSection NE_MAP_LOC
|
+freeResource NW_MAP_LOC
|
||||||
|
+freeResource NE_MAP_LOC
|
||||||
LDA REL_Y
|
LDA REL_Y
|
||||||
SEC
|
SEC
|
||||||
SBC #SECTION_HEIGHT
|
SBC #SECTION_HEIGHT
|
||||||
@ -259,14 +300,16 @@ CROSS_SOUTH
|
|||||||
LDA (NE_MAP_LOC),Y
|
LDA (NE_MAP_LOC),Y
|
||||||
STA SE_MAP_ID
|
STA SE_MAP_ID
|
||||||
+loadSection SE_MAP_LOC
|
+loadSection SE_MAP_LOC
|
||||||
|
+loadAllTiles
|
||||||
+finishLoad
|
+finishLoad
|
||||||
RTS
|
RTS
|
||||||
;----------------------------------------------------------------------
|
;----------------------------------------------------------------------
|
||||||
; >> CROSS WEST BOUNDARY (load next section to the west)
|
; >> CROSS WEST BOUNDARY (load next section to the west)
|
||||||
!zone
|
!zone
|
||||||
CROSS_WEST
|
CROSS_WEST
|
||||||
+releaseMapSection NE_MAP_LOC
|
+freeAllTiles
|
||||||
+releaseMapSection SE_MAP_LOC
|
+freeResource NE_MAP_LOC
|
||||||
|
+freeResource SE_MAP_LOC
|
||||||
LDA REL_X
|
LDA REL_X
|
||||||
CLC
|
CLC
|
||||||
ADC #SECTION_WIDTH
|
ADC #SECTION_WIDTH
|
||||||
@ -286,6 +329,7 @@ CROSS_WEST
|
|||||||
LDA (SE_MAP_LOC),Y
|
LDA (SE_MAP_LOC),Y
|
||||||
STA SW_MAP_ID
|
STA SW_MAP_ID
|
||||||
+loadSection SW_MAP_LOC
|
+loadSection SW_MAP_LOC
|
||||||
|
+loadAllTiles
|
||||||
+finishLoad
|
+finishLoad
|
||||||
RTS
|
RTS
|
||||||
;----------------------------------------------------------------------
|
;----------------------------------------------------------------------
|
||||||
|
Loading…
Reference in New Issue
Block a user