Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Do_HandleActorMetaTileAnimation:
- asl
- tay
- lda ActorAnimationStatePointerTable+0,y
- sta _TmpPointerL
- lda ActorAnimationStatePointerTable+1,y
- sta _TmpPointerH
- ldy _ActorAnimationIdx
- lda (_TmpPointerL),y
- sta _ActorAnimationIndexOffset
- jsr Do_MetaTilePointer
- lda _ActorXPositionH,x
- sta _TmpActorXPositionH
- lda _ActorYPositionH,x
- sta _TmpActorYPositionH
- jsr Do_HandleActorMetaTileUpdate
- rts
- ;===============================================================
- Do_HandleActorMetaTileUpdate:
- lda $24
- asl
- asl
- tax
- ldy #0
- lda (_ActorMetaTilePointerL),y
- pha
- and #%00001111
- sta _ActorYMetaTileCount
- pla
- and #%11110000
- lsr
- lsr
- lsr
- lsr
- sta _ActorXMetaTileCount
- sta _ActorXMetaTileCountReset
- lda _TmpActorYPositionH
- sta _TmpActorYOffset
- lda _TmpActorXPositionH
- sta _TmpActorXOffset
- iny
- -:
- lda (_ActorMetaTilePointerL),y
- cmp #$ff
- beq +++
- lda _TmpActorYOffset
- sta $200,x
- lda _TmpActorXOffset
- sta $203,x
- lda (_ActorMetaTilePointerL),y
- sta $201,x
- iny
- lda (_ActorMetaTilePointerL),y
- ora $22
- sta $202,x
- iny
- inx
- inx
- inx
- inx
- inc $24
- MetatileL:
- lda _TmpActorXOffset
- clc
- adc #8
- sta _TmpActorXOffset
- dec _ActorXMetaTileCount
- bne -
- lda _TmpActorXPositionH
- sta _TmpActorXOffset
- lda _TmpActorYOffset
- clc
- adc #8
- sta _TmpActorYOffset
- lda _ActorXMetaTileCountReset
- sta _ActorXMetaTileCount
- dec _ActorYMetaTileCount
- bne -
- rts
- +++:
- iny
- iny
- jmp MetatileL
- ;===============================================================
- Do_MetaTilePointer:
- lda _ActorAnimationIndexOffset
- asl
- tay
- lda ActorMetaTilePointersTable+0,y
- sta _ActorMetaTilePointerL
- lda ActorMetaTilePointersTable+1,y
- sta _ActorMetaTilePointerH
- rts
- ;===============================================================
- ActorAnimationStatePointerTable:
- .dw Clark
- .dw Mike ;Not Shown In Example
- ;===============================================================
- ActorMetaTilePointersTable:
- .dw ClarkRunRightMetaTileStructure1
- .dw ClarkRunRightMetaTileStructure2
- .dw ClarkRunRightMetaTileStructure3
- ;===============================================================
- Clark:
- .db 1
- .db 2
- .db 1
- .db 0
- ;============================================================
- ;Byte 1 = X/Y Tile Count
- ;Tile #
- ;Flipped & Palette #
- ;============================================================
- ClarkRunRightMetaTileStructure1:
- .db $23
- .db $01
- .db $40
- .db $00
- .db $40
- .db $31
- .db $40
- .db $30
- .db $40
- .db $03
- .db $40
- .db $02
- .db $40
- ClarkRunRightMetaTileStructure2:
- .db $23
- .db $01
- .db $40
- .db $00
- .db $40
- .db $11
- .db $40
- .db $10
- .db $40
- .db $21
- .db $40
- .db $20
- .db $40
- ClarkRunRightMetaTileStructure3:
- .db $23
- .db $01
- .db $40
- .db $00
- .db $40
- .db $13
- .db $40
- .db $12
- .db $40
- .db $23
- .db $40
- .db $22
- .db $40
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement