refactor object_handler
This commit is contained in:
@@ -38,11 +38,11 @@ org $07D938
|
|||||||
; Bank01 Free Space
|
; Bank01 Free Space
|
||||||
org $01B53C
|
org $01B53C
|
||||||
ExpandedObject:
|
ExpandedObject:
|
||||||
JSL NewObjectsCode
|
JSL CustomObjectHandler
|
||||||
RTS
|
RTS
|
||||||
|
|
||||||
ExpandedObject2:
|
ExpandedObject2:
|
||||||
JSL NewObjectsCode2
|
JSL CustomObjectHandler2
|
||||||
RTS
|
RTS
|
||||||
|
|
||||||
SpriteBodyObjects:
|
SpriteBodyObjects:
|
||||||
@@ -56,7 +56,7 @@ org $01B53C
|
|||||||
warnpc $01B560
|
warnpc $01B560
|
||||||
|
|
||||||
org $2C8000
|
org $2C8000
|
||||||
NewObjectsCode:
|
CustomObjectHandler:
|
||||||
{
|
{
|
||||||
PHB : PHK : PLB
|
PHB : PHK : PLB
|
||||||
PHX
|
PHX
|
||||||
@@ -73,31 +73,31 @@ NewObjectsCode:
|
|||||||
TAX
|
TAX
|
||||||
|
|
||||||
.lineLoop
|
.lineLoop
|
||||||
LDA .ObjData, X : BNE .continue
|
LDA .ObjData, X : BNE .continue
|
||||||
;break
|
;break
|
||||||
BRA .Done
|
BRA .Done
|
||||||
.continue
|
.continue
|
||||||
PHY ; Keep current position in the buffer
|
PHY ; Keep current position in the buffer
|
||||||
|
|
||||||
STA $00 ; we save the tile count + tile to skip
|
STA $00 ; we save the tile count + tile to skip
|
||||||
|
|
||||||
-- ;Tiles Loop
|
-- ;Tiles Loop
|
||||||
INX : INX
|
INX : INX
|
||||||
; Vhopppcc cccccccc
|
; Vhopppcc cccccccc
|
||||||
LDA .ObjData, X : BEQ +
|
LDA .ObjData, X : BEQ +
|
||||||
STA [$BF], Y
|
STA [$BF], Y
|
||||||
+
|
+
|
||||||
|
|
||||||
INY : INY
|
INY : INY
|
||||||
LDA $00 : DEC : STA $00 : AND #$001F : BNE +
|
LDA $00 : DEC : STA $00 : AND #$001F : BNE +
|
||||||
LDA $00 : XBA : AND #$00FF : STA $00
|
LDA $00 : XBA : AND #$00FF : STA $00
|
||||||
PLA ;Pull back position
|
PLA ;Pull back position
|
||||||
CLC : ADC $00 : TAY
|
CLC : ADC $00 : TAY
|
||||||
INX : INX
|
INX : INX
|
||||||
BRA .lineLoop
|
BRA .lineLoop
|
||||||
+
|
+
|
||||||
|
|
||||||
BRA --
|
BRA --
|
||||||
|
|
||||||
.Done
|
.Done
|
||||||
|
|
||||||
@@ -108,67 +108,70 @@ NewObjectsCode:
|
|||||||
PLB
|
PLB
|
||||||
RTL
|
RTL
|
||||||
|
|
||||||
.ObjOffset
|
.ObjOffset
|
||||||
dw .LeftRight-.ObjData ; 00
|
dw .LeftRight-.ObjData ; 00
|
||||||
dw .UpDown-.ObjData ; 01
|
dw .UpDown-.ObjData ; 01
|
||||||
dw .TopLeft-.ObjData ; 02
|
dw .TopLeft-.ObjData ; 02
|
||||||
dw .TopRight-.ObjData ; 03
|
dw .TopRight-.ObjData ; 03
|
||||||
dw .Bottomleft-.ObjData ; 04
|
dw .Bottomleft-.ObjData ; 04
|
||||||
dw .BottomRight-.ObjData ; 05
|
dw .BottomRight-.ObjData ; 05
|
||||||
dw .UpDownFloor-.ObjData ; 06
|
dw .UpDownFloor-.ObjData ; 06
|
||||||
dw .LeftRightFloor-.ObjData ; 07
|
dw .LeftRightFloor-.ObjData ; 07
|
||||||
dw .TopLeftFloor-.ObjData ; 08
|
dw .TopLeftFloor-.ObjData ; 08
|
||||||
dw .TopRightFloor-.ObjData ; 09
|
dw .TopRightFloor-.ObjData ; 09
|
||||||
dw .BottomleftFloor-.ObjData ; 10
|
dw .BottomleftFloor-.ObjData ; 10
|
||||||
dw .BottomRightFloor-.ObjData ; 11
|
dw .BottomRightFloor-.ObjData ; 11
|
||||||
dw .FloorAny-.ObjData ; 12
|
dw .FloorAny-.ObjData ; 12
|
||||||
dw .WallSwordHouse-.ObjData ; 13
|
dw .WallSwordHouse-.ObjData ; 13
|
||||||
dw .TrackAny-.ObjData ; 14
|
dw .TrackAny-.ObjData ; 14
|
||||||
dw .SmallStatue-.ObjData ; 15
|
dw .SmallStatue-.ObjData ; 15
|
||||||
|
|
||||||
.ObjData
|
.ObjData
|
||||||
.LeftRight
|
.LeftRight
|
||||||
incbin Data/track_LR.bin
|
incbin Data/track_LR.bin
|
||||||
.UpDown
|
.UpDown
|
||||||
incbin Data/track_UD.bin
|
incbin Data/track_UD.bin
|
||||||
.TopLeft
|
.TopLeft
|
||||||
incbin Data/track_corner_TL.bin
|
incbin Data/track_corner_TL.bin
|
||||||
.TopRight
|
.TopRight
|
||||||
incbin Data/track_corner_TR.bin
|
incbin Data/track_corner_TR.bin
|
||||||
.Bottomleft
|
.Bottomleft
|
||||||
incbin Data/track_corner_BL.bin
|
incbin Data/track_corner_BL.bin
|
||||||
.BottomRight
|
.BottomRight
|
||||||
incbin Data/track_corner_BR.bin
|
incbin Data/track_corner_BR.bin
|
||||||
.UpDownFloor
|
.UpDownFloor
|
||||||
incbin Data/track_floor_UD.bin
|
incbin Data/track_floor_UD.bin
|
||||||
.LeftRightFloor
|
.LeftRightFloor
|
||||||
incbin Data/track_floor_LR.bin
|
incbin Data/track_floor_LR.bin
|
||||||
.TopLeftFloor
|
.TopLeftFloor
|
||||||
incbin Data/track_floor_corner_TL.bin
|
incbin Data/track_floor_corner_TL.bin
|
||||||
.TopRightFloor
|
.TopRightFloor
|
||||||
incbin Data/track_floor_corner_TR.bin
|
incbin Data/track_floor_corner_TR.bin
|
||||||
.BottomleftFloor
|
.BottomleftFloor
|
||||||
incbin Data/track_floor_corner_BL.bin
|
incbin Data/track_floor_corner_BL.bin
|
||||||
.BottomRightFloor
|
.BottomRightFloor
|
||||||
incbin Data/track_floor_corner_BR.bin
|
incbin Data/track_floor_corner_BR.bin
|
||||||
.FloorAny
|
.FloorAny
|
||||||
incbin Data/track_floor_any.bin
|
incbin Data/track_floor_any.bin
|
||||||
.WallSwordHouse
|
.WallSwordHouse
|
||||||
incbin Data/wall_sword_house.bin
|
incbin Data/wall_sword_house.bin
|
||||||
.TrackAny
|
.TrackAny
|
||||||
incbin Data/track_any.bin
|
incbin Data/track_any.bin
|
||||||
.SmallStatue
|
.SmallStatue
|
||||||
incbin Data/small_statue.bin
|
incbin Data/small_statue.bin
|
||||||
}
|
}
|
||||||
|
|
||||||
; TODO: Fix the graphics used for the heavy pot in game
|
; TODO: Fix the graphics used for the heavy pot in game
|
||||||
InitHeavyPot:
|
InitHeavyPot:
|
||||||
{
|
{
|
||||||
LDA.w #$1010
|
LDA.w #$1010
|
||||||
PHX : LDX.w $042C
|
PHX
|
||||||
LDA.w #$1111 : STA $0500, X
|
LDX.w $042C ; MANIPINDEX
|
||||||
|
LDA.w #$1111 : STA $0500, X ; M16BUFF500
|
||||||
|
|
||||||
; Store this object's position in the object buffer to $0520, X
|
; Store this object's position in the object buffer to $0520, X
|
||||||
LDA $BA : STA $0520, X
|
LDA $BA : STA $0520, X
|
||||||
|
|
||||||
; Store it's tilemap position.
|
; Store it's tilemap position.
|
||||||
TYA : STA $0540, X
|
TYA : STA $0540, X
|
||||||
RTL
|
RTL
|
||||||
@@ -239,7 +242,7 @@ SpriteObjectsDraw:
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
NewObjectsCode2:
|
CustomObjectHandler2:
|
||||||
{
|
{
|
||||||
PHB : PHK : PLB
|
PHB : PHK : PLB
|
||||||
PHX
|
PHX
|
||||||
@@ -256,32 +259,31 @@ NewObjectsCode2:
|
|||||||
TAX
|
TAX
|
||||||
|
|
||||||
.lineLoop
|
.lineLoop
|
||||||
LDA .ObjData, X : BNE .continue
|
LDA .ObjData, X : BNE .continue
|
||||||
;break
|
;break
|
||||||
BRA .Done
|
BRA .Done
|
||||||
.continue
|
.continue
|
||||||
PHY ; Keep current position in the buffer
|
PHY ; Keep current position in the buffer
|
||||||
|
|
||||||
STA $00 ; we save the tile count + tile to skip
|
STA $00 ; we save the tile count + tile to skip
|
||||||
|
|
||||||
-- ;Tiles Loop
|
-- ;Tiles Loop
|
||||||
INX : INX
|
INX : INX
|
||||||
; Vhopppcc cccccccc
|
; Vhopppcc cccccccc
|
||||||
LDA .ObjData, X : BEQ +
|
LDA .ObjData, X : BEQ +
|
||||||
|
STA [$BF], Y
|
||||||
STA [$BF], Y
|
+
|
||||||
+
|
|
||||||
|
|
||||||
INY : INY
|
INY : INY
|
||||||
LDA $00 : DEC : STA $00 : AND #$001F : BNE +
|
LDA $00 : DEC : STA $00 : AND #$001F : BNE +
|
||||||
LDA $00 : XBA : AND #$00FF : STA $00
|
LDA $00 : XBA : AND #$00FF : STA $00
|
||||||
PLA ;Pull back position
|
PLA ;Pull back position
|
||||||
CLC : ADC $00 : TAY
|
CLC : ADC $00 : TAY
|
||||||
INX : INX
|
INX : INX
|
||||||
BRA .lineLoop
|
BRA .lineLoop
|
||||||
+
|
+
|
||||||
|
|
||||||
BRA --
|
BRA --
|
||||||
|
|
||||||
.Done
|
.Done
|
||||||
|
|
||||||
@@ -292,18 +294,18 @@ NewObjectsCode2:
|
|||||||
PLB
|
PLB
|
||||||
RTL
|
RTL
|
||||||
|
|
||||||
.ObjOffset
|
.ObjOffset
|
||||||
dw .IceFurnace-.ObjData ; 00
|
dw .IceFurnace-.ObjData ; 00
|
||||||
dw .Firewood-.ObjData ; 01
|
dw .Firewood-.ObjData ; 01
|
||||||
dw .IceChair-.ObjData ; 02
|
dw .IceChair-.ObjData ; 02
|
||||||
|
|
||||||
.ObjData
|
.ObjData
|
||||||
.IceFurnace
|
.IceFurnace
|
||||||
incbin Data/furnace.bin
|
incbin Data/furnace.bin
|
||||||
.Firewood
|
.Firewood
|
||||||
incbin Data/firewood.bin
|
incbin Data/firewood.bin
|
||||||
.IceChair
|
.IceChair
|
||||||
incbin Data/ice_chair.bin
|
incbin Data/ice_chair.bin
|
||||||
}
|
}
|
||||||
|
|
||||||
pushpc
|
pushpc
|
||||||
|
|||||||
Reference in New Issue
Block a user