More platforms, fixed graphics when switching floors

This commit is contained in:
Smallhacker
2018-01-04 23:35:28 -05:00
parent 3dde5bcbbd
commit c5b97deda1
3 changed files with 101 additions and 45 deletions

View File

@@ -7,7 +7,9 @@ LoadRoomHook:
JSL $00879c ; UseImplicitRegIndexedLocalJumpTable
; Callback routines:
dl NoCallback ; 00
dl IcePalace1 ; 01
dl IcePalaceBombosSE ; 01
dl IcePalaceBombosSW ; 02
dl IcePalaceBombosNE ; 03
NoCallback:
RTL
@@ -25,42 +27,48 @@ macro writeTile()
INX #2
endmacro
!IP_BORDER = #$08D0
!IP_ICON_1 = #$0CCA
!IP_ICON_2 = #$0CCB
!IP_ICON_3 = #$0CDA
!IP_ICON_4 = #$0CDB
!IP1_X = 14
!IP1_Y = 18
IcePalace1:
!BOMBOS_BORDER = #$08D0
!BOMBOS_ICON_1 = #$0CCA
!BOMBOS_ICON_2 = #$0CCB
!BOMBOS_ICON_3 = #$0CDA
!BOMBOS_ICON_4 = #$0CDB
macro DrawBombosPlatform(roomX, roomY, quadX, quadY)
REP #$30 ; 16 AXY
%setTilePointer(!IP1_X, !IP1_Y, 1, 1)
LDA.w !IP_BORDER
%writeTile()
%writeTile()
%writeTile()
%writeTile()
%setTilePointer(<roomX>, <roomY>, <quadX>, <quadY>)
LDA.w !BOMBOS_BORDER
%writeTile()
%writeTile()
%writeTile()
%writeTile()
%setTilePointer(!IP1_X, !IP1_Y+1, 1, 1)
%writeTile()
LDA.w !IP_ICON_1 : %writeTile()
LDA.w !IP_ICON_2 : %writeTile()
LDA.w !IP_BORDER : %writeTile()
%setTilePointer(<roomX>, <roomY>+1, <quadX>, <quadY>)
%writeTile()
LDA.w !BOMBOS_ICON_1 : %writeTile()
LDA.w !BOMBOS_ICON_2 : %writeTile()
LDA.w !BOMBOS_BORDER : %writeTile()
%setTilePointer(!IP1_X, !IP1_Y+2, 1, 1)
%writeTile()
LDA.w !IP_ICON_3 : %writeTile()
LDA.w !IP_ICON_4 : %writeTile()
LDA.w !IP_BORDER : %writeTile()
%setTilePointer(<roomX>, <roomY>+2, <quadX>, <quadY>)
%writeTile()
LDA.w !BOMBOS_ICON_3 : %writeTile()
LDA.w !BOMBOS_ICON_4 : %writeTile()
LDA.w !BOMBOS_BORDER : %writeTile()
%setTilePointer(!IP1_X, !IP1_Y+3, 1, 1)
%writeTile()
%writeTile()
%writeTile()
%writeTile()
%setTilePointer(<roomX>, <roomY>+3, <quadX>, <quadY>)
%writeTile()
%writeTile()
%writeTile()
%writeTile()
SEP #$30 ; 8 AXY
endMacro
IcePalaceBombosSE:
%DrawBombosPlatform(14, 18, 1, 1)
RTL
IcePalaceBombosSW:
%DrawBombosPlatform(14, 18, 0, 1)
RTL
IcePalaceBombosNE:
%DrawBombosPlatform(14, 18, 1, 0)
RTL
RoomCallbackTable:
@@ -71,13 +79,13 @@ RoomCallbackTable:
db $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; 04x
db $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; 05x
db $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; 06x
db $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; 07x
db $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $02, $00 ; 07x
db $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; 08x
db $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; 09x
db $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; 0Ax
db $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; 0Bx
db $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; 0Cx
db $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; 0Dx
db $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $03, $00 ; 0Dx
db $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; 0Ex
db $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; 0Fx
db $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; 0Fx