GSCats/player.s

129 lines
1.9 KiB
ArmAsm
Raw Normal View History

2017-08-15 19:40:14 +00:00
;
; players
; Code and data structures related to the players
;
; Created by Quinn Dunki on 8/13/17
;
playerData:
; gameobject data
.word 40 ; X pos in pixels (from left terrain edge)
.word 38 ; Y pos in pixels (from bottom terrain edge)
.word 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ; Saved background
2017-08-15 19:40:14 +00:00
2017-08-23 03:33:07 +00:00
.word 45 ; Angle in degrees from +X
2017-08-15 19:40:14 +00:00
.word 50 ; Power
PD_ANGLE = 36
PD_POWER = 38
.macro PLAYERPTR_Y
tya ; Pointer to player structure from index
asl
asl
asl
tay
.endmacro
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; playerDeltaAngle
;
; Y = Player index
; X = Delta
;
playerDeltaAngle:
SAVE_AXY
PLAYERPTR_Y
txa
clc
adc playerData+PD_ANGLE,y
bmi playerDeltaAngleClampLow
cmp #180
bpl playerDeltaAngleClampHigh
playerDeltaAngleStore:
sta playerData+PD_ANGLE,y
RESTORE_AXY
rts
playerDeltaAngleClampLow:
lda #0
bra playerDeltaAngleStore
playerDeltaAngleClampHigh:
lda #180
bra playerDeltaAngleStore
2017-08-15 19:40:14 +00:00
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; playerFire
;
; Y = Player index
;
playerFire:
SAVE_AY
PLAYERPTR_Y
lda playerData+GO_POSX,y
sta projectileParams
lda playerData+GO_POSY,y
clc
adc #GAMEOBJECTHEIGHT
sta projectileParams+2
lda playerData+PD_ANGLE,y
sta projectileParams+4
lda playerData+PD_POWER,y
sta projectileParams+6
jsr fireProjectile
RESTORE_AY
rts
2017-08-16 02:04:22 +00:00
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; renderPlayers
;
;
renderPlayers:
RENDER_GAMEOBJECT playerData
2017-08-16 02:04:22 +00:00
rts
2017-08-15 19:40:14 +00:00
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; renderPlayerHeader
;
; Y = Player index to render
;
renderPlayerHeader:
SAVE_AXY
PLAYERPTR_Y
2017-08-15 19:40:14 +00:00
ldx #0
lda #angleStr
jsr DrawString
lda playerData+PD_ANGLE,y
2017-08-15 19:40:14 +00:00
ldx #24
jsr drawNumber
ldx #48
lda #powerStr
jsr DrawString
lda playerData+PD_POWER,y
ldx #72
jsr drawNumber
2017-08-15 19:40:14 +00:00
RESTORE_AXY
rts
angleStr:
pstring "ANGLE: "
powerStr:
pstring "POWER: "