mirror of
https://github.com/deater/dos33fsprogs.git
synced 2024-07-31 21:29:26 +00:00
98 lines
1.2 KiB
ArmAsm
98 lines
1.2 KiB
ArmAsm
|
|
;=========================
|
|
; move duke
|
|
;=========================
|
|
move_duke:
|
|
|
|
lda DUKE_WALKING
|
|
beq done_move_duke
|
|
|
|
lda DUKE_DIRECTION
|
|
bmi move_left
|
|
|
|
lda DUKE_X
|
|
cmp #22
|
|
bcc duke_walk_right
|
|
|
|
duke_scroll_right:
|
|
|
|
inc TILEMAP_X
|
|
|
|
jsr copy_tilemap_subset
|
|
|
|
jmp done_move_duke
|
|
|
|
duke_walk_right:
|
|
inc DUKE_X
|
|
|
|
jmp done_move_duke
|
|
|
|
move_left:
|
|
|
|
lda DUKE_X
|
|
cmp #14
|
|
bcs duke_walk_left
|
|
|
|
duke_scroll_left:
|
|
|
|
dec TILEMAP_X
|
|
|
|
jsr copy_tilemap_subset
|
|
|
|
jmp done_move_duke
|
|
|
|
duke_walk_left:
|
|
dec DUKE_X
|
|
|
|
jmp done_move_duke
|
|
|
|
done_move_duke:
|
|
|
|
rts
|
|
|
|
;=========================
|
|
; draw duke
|
|
;=========================
|
|
draw_duke:
|
|
|
|
lda DUKE_X
|
|
sta XPOS
|
|
lda DUKE_Y
|
|
sta YPOS
|
|
|
|
lda DUKE_DIRECTION
|
|
bmi duke_facing_left
|
|
|
|
lda #<duke_sprite_stand_right
|
|
sta INL
|
|
lda #>duke_sprite_stand_right
|
|
jmp actually_draw_duke
|
|
duke_facing_left:
|
|
|
|
lda #<duke_sprite_stand_left
|
|
sta INL
|
|
lda #>duke_sprite_stand_left
|
|
|
|
actually_draw_duke:
|
|
sta INH
|
|
jsr put_sprite_crop
|
|
|
|
rts
|
|
|
|
duke_sprite_stand_right:
|
|
.byte 4,5
|
|
.byte $AA,$dA,$dA,$AA
|
|
.byte $AA,$dd,$bb,$AA
|
|
.byte $AA,$b3,$7A,$7A
|
|
.byte $AA,$66,$6b,$AA
|
|
.byte $AA,$56,$65,$AA
|
|
|
|
duke_sprite_stand_left:
|
|
.byte 4,5
|
|
.byte $AA,$dA,$dA,$AA
|
|
.byte $AA,$bb,$dd,$AA
|
|
.byte $7A,$7A,$b3,$AA
|
|
.byte $AA,$6b,$66,$AA
|
|
.byte $AA,$65,$56,$AA
|
|
|