tfv: let you select target of attacks
This commit is contained in:
parent
b249df66fa
commit
09ad61c229
|
@ -1,6 +1,24 @@
|
|||
;===================
|
||||
; Selection Pointers
|
||||
;===================
|
||||
|
||||
finger_left_sprite:
|
||||
.byte 6,4
|
||||
.byte $AA,$AA,$AA,$AB,$BA,$AA
|
||||
.byte $BB,$BB,$BB,$BB,$BB,$BB
|
||||
.byte $AA,$AA,$BB,$BB,$BB,$BB
|
||||
.byte $AA,$AA,$AB,$BB,$BB,$AB
|
||||
|
||||
finger_right_sprite:
|
||||
.byte 6,4
|
||||
.byte $AA,$BA,$AB,$AA,$AA,$AA
|
||||
.byte $BB,$BB,$BB,$BB,$BB,$BB
|
||||
.byte $BB,$BB,$BB,$BB,$AA,$AA
|
||||
.byte $AB,$BB,$BB,$AB,$AA,$AA
|
||||
|
||||
;=========
|
||||
; Enemies
|
||||
;==========
|
||||
;=========
|
||||
|
||||
killer_crab_sprite:
|
||||
.byte $9,$6
|
||||
|
|
|
@ -12,7 +12,7 @@ magic_attack:
|
|||
lda #$15
|
||||
sta DAMAGE_VAL
|
||||
|
||||
lda MENU_POSITION
|
||||
lda MAGIC_TYPE
|
||||
cmp #MENU_MAGIC_HEAL
|
||||
beq do_magic_heal
|
||||
cmp #MENU_MAGIC_FIRE
|
||||
|
@ -75,9 +75,6 @@ done_magic_setup:
|
|||
|
||||
cast_the_magic:
|
||||
|
||||
lda MENU_POSITION
|
||||
sta MAGIC_TYPE
|
||||
|
||||
lda #10
|
||||
sta ANIMATE_LOOP
|
||||
|
||||
|
|
|
@ -55,7 +55,9 @@ draw_battle_bottom:
|
|||
|
||||
; set up jump table fakery
|
||||
handle_special:
|
||||
ldy MENU_STATE
|
||||
lda MENU_STATE
|
||||
and #$7f ; mask off Finger state
|
||||
tay
|
||||
lda battle_menu_jump_table_h,Y
|
||||
pha
|
||||
lda battle_menu_jump_table_l,Y
|
||||
|
@ -393,6 +395,44 @@ print_menu_zap:
|
|||
|
||||
done_draw_battle_menu:
|
||||
|
||||
;==============================
|
||||
; draw finger (when applicable)
|
||||
|
||||
lda MENU_STATE ; MENU finger is top bit
|
||||
bpl done_draw_finger
|
||||
|
||||
lda FINGER_DIRECTION
|
||||
bne draw_finger_left
|
||||
|
||||
draw_finger_right:
|
||||
|
||||
lda #20
|
||||
sta XPOS
|
||||
lda #20
|
||||
sta YPOS
|
||||
|
||||
lda #<finger_right_sprite
|
||||
sta INL
|
||||
lda #>finger_right_sprite
|
||||
sta INH
|
||||
jsr put_sprite_crop
|
||||
|
||||
jmp done_draw_finger
|
||||
draw_finger_left:
|
||||
|
||||
lda #12
|
||||
sta XPOS
|
||||
lda #20
|
||||
sta YPOS
|
||||
|
||||
lda #<finger_left_sprite
|
||||
sta INL
|
||||
lda #>finger_left_sprite
|
||||
sta INH
|
||||
jsr put_sprite_crop
|
||||
|
||||
done_draw_finger:
|
||||
|
||||
;========================
|
||||
; Draw inverse separator
|
||||
|
||||
|
@ -461,12 +501,96 @@ done_bar:
|
|||
|
||||
|
||||
|
||||
;=========================
|
||||
;=========================
|
||||
; battle menu keypress
|
||||
;=========================
|
||||
;=========================
|
||||
; FIXME: help, toggle-sound?
|
||||
|
||||
battle_menu_keypress:
|
||||
lda MENU_STATE
|
||||
bpl battle_menu_nofinger_keypress
|
||||
|
||||
battle_menu_finger_keypress:
|
||||
lda LAST_KEY
|
||||
cmp #27
|
||||
beq finger_escape
|
||||
cmp #' '
|
||||
beq finger_action
|
||||
cmp #13
|
||||
beq finger_action
|
||||
cmp #'A'
|
||||
beq finger_left
|
||||
cmp #'D'
|
||||
beq finger_right
|
||||
; jmp to common routines for others?
|
||||
|
||||
rts
|
||||
|
||||
finger_escape:
|
||||
lda MENU_STATE
|
||||
and #$7f
|
||||
sta MENU_STATE
|
||||
|
||||
rts
|
||||
|
||||
finger_left:
|
||||
lda #1
|
||||
sta FINGER_DIRECTION
|
||||
rts
|
||||
|
||||
finger_right:
|
||||
lda #0h
|
||||
sta FINGER_DIRECTION
|
||||
rts
|
||||
|
||||
finger_action:
|
||||
lda MENU_SUBMENU
|
||||
|
||||
cmp #MENU_MAIN_ATTACK
|
||||
beq finger_attack_action
|
||||
cmp #MENU_MAIN_MAGIC
|
||||
beq finger_magic_action
|
||||
cmp #MENU_MAIN_LIMIT
|
||||
beq finger_limit_action
|
||||
cmp #MENU_MAIN_SUMMON
|
||||
beq finger_summon_action
|
||||
brk
|
||||
|
||||
finger_attack_action:
|
||||
lda #0
|
||||
sta MENU_STATE
|
||||
|
||||
; attack and decrement HP
|
||||
jsr attack
|
||||
jsr done_attack
|
||||
|
||||
rts
|
||||
|
||||
finger_magic_action:
|
||||
lda #0
|
||||
sta MENU_STATE
|
||||
jsr magic_attack
|
||||
jsr done_attack
|
||||
rts
|
||||
|
||||
finger_limit_action:
|
||||
lda #0
|
||||
sta MENU_STATE
|
||||
jsr limit_break
|
||||
jsr done_attack
|
||||
rts
|
||||
|
||||
finger_summon_action:
|
||||
lda #0
|
||||
sta MENU_STATE
|
||||
jsr summon
|
||||
jsr done_attack
|
||||
|
||||
rts
|
||||
|
||||
battle_menu_nofinger_keypress:
|
||||
|
||||
lda LAST_KEY
|
||||
cmp #27
|
||||
|
@ -568,7 +692,6 @@ keypress_action:
|
|||
cmp #MENU_SUMMON
|
||||
beq keypress_summon_action
|
||||
|
||||
|
||||
;============================
|
||||
; handle action on main menu
|
||||
keypress_main_action:
|
||||
|
@ -586,11 +709,16 @@ keypress_main_action:
|
|||
cmp #MENU_MAIN_ESCAPE
|
||||
beq keypress_main_escape
|
||||
|
||||
|
||||
keypress_main_attack:
|
||||
; attack and decrement HP
|
||||
jsr attack
|
||||
jsr done_attack
|
||||
rts
|
||||
; move to finger mode
|
||||
; pointing left
|
||||
|
||||
; MENU_MAIN_ATTACK should be in A
|
||||
sta MENU_SUBMENU
|
||||
|
||||
jmp keypress_activate_finger_left
|
||||
|
||||
|
||||
keypress_main_skip:
|
||||
jsr done_attack
|
||||
|
@ -625,24 +753,53 @@ keypress_main_escape:
|
|||
jsr done_attack
|
||||
rts
|
||||
|
||||
keypress_magic_action:
|
||||
jsr magic_attack
|
||||
jsr done_attack
|
||||
rts
|
||||
keypress_summon_action:
|
||||
lda #MENU_MAIN_SUMMON
|
||||
sta MENU_SUBMENU
|
||||
lda MENU_POSITION
|
||||
sta MAGIC_TYPE
|
||||
jmp keypress_activate_finger_left
|
||||
|
||||
keypress_limit_action:
|
||||
jsr limit_break
|
||||
jsr done_attack
|
||||
rts
|
||||
lda #MENU_MAIN_LIMIT
|
||||
sta MENU_SUBMENU
|
||||
lda MENU_POSITION
|
||||
sta MAGIC_TYPE
|
||||
jmp keypress_activate_finger_left
|
||||
|
||||
keypress_magic_action:
|
||||
lda #MENU_MAIN_MAGIC
|
||||
sta MENU_SUBMENU
|
||||
|
||||
lda MENU_POSITION
|
||||
sta MAGIC_TYPE
|
||||
cmp #MENU_MAGIC_HEAL
|
||||
bne keypress_magic_action_noheal
|
||||
jmp keypress_activate_finger_right
|
||||
keypress_magic_action_noheal:
|
||||
jmp keypress_activate_finger_left
|
||||
|
||||
|
||||
keypress_activate_finger_right:
|
||||
lda #0
|
||||
beq keypress_activate_finger
|
||||
keypress_activate_finger_left:
|
||||
; move to finger mode
|
||||
; pointing left
|
||||
|
||||
lda #1
|
||||
keypress_activate_finger:
|
||||
sta FINGER_DIRECTION
|
||||
|
||||
lda MENU_STATE
|
||||
ora #MENU_FINGER
|
||||
sta MENU_STATE
|
||||
|
||||
|
||||
keypress_summon_action:
|
||||
jsr summon
|
||||
jsr done_attack
|
||||
|
||||
rts
|
||||
|
||||
|
||||
|
||||
;=============================
|
||||
; done attack
|
||||
;=============================
|
||||
|
@ -721,26 +878,33 @@ battle_menu_limit:
|
|||
.byte 24,21,"SLICE",0 ; 0
|
||||
.byte 24,22,"DROP",0 ; 2
|
||||
.byte 31,21,"ZAP",0 ; 1
|
||||
;
|
||||
; ATTACK SKIP
|
||||
; MAGIC LIMIT
|
||||
; SUMMON ESCAPE
|
||||
;
|
||||
; SUMMONS -> METROCAT VORTEXCN
|
||||
; MAGIC -> HEAL FIRE
|
||||
; ICE MALAISE
|
||||
; BOLT
|
||||
; LIMIT -> SLICE ZAP
|
||||
; DROP
|
||||
;
|
||||
|
||||
|
||||
; Main Menu
|
||||
; ATTACK SKIP
|
||||
; MAGIC ESCAPE
|
||||
; SUMMON LIMIT
|
||||
|
||||
; Magic Menu
|
||||
; HEAL FIRE
|
||||
; ICE MALAISE
|
||||
; BOLT
|
||||
|
||||
; Summon Menu
|
||||
; METROCAT
|
||||
; VORTEXCN
|
||||
|
||||
; Limit Menu
|
||||
; SLICE ZAP
|
||||
; DROP
|
||||
|
||||
; State Machine
|
||||
;
|
||||
; time
|
||||
; BOTTOM -------> MAIN_MENU ----->ATTACK
|
||||
; BOTTOM -------> MAIN_MENU ----->ATTACK--------------->FINGER
|
||||
; ------->SKIP
|
||||
; ------->MAGIC_MENU
|
||||
; ------->LIMIT_MENU
|
||||
; ------->SUMMON_MENU
|
||||
; ------->MAGIC->MAGIC_MENU---->FINGER
|
||||
; ------->LIMIT->LIMIT_MENU---->FINGER
|
||||
; ------->SUMMON->SUMMON_MENU-->FINGER
|
||||
; ------->ESCAPE
|
||||
;
|
||||
;
|
||||
|
||||
|
|
|
@ -117,20 +117,23 @@ ENEMY_TYPE = $B4 ; used in battle
|
|||
ENEMY_HP = $B5 ; enemy hitpoints
|
||||
ENEMY_X = $B6 ; enemy X position
|
||||
ENEMY_COUNT = $B7 ; enemy countdown to attack
|
||||
MENU_STATE = $B8 ; battle menu state
|
||||
MENU_POSITION = $B8
|
||||
MENU_STATE = $B9 ; battle menu state
|
||||
MENU_NONE = 0
|
||||
MENU_MAIN = 1
|
||||
MENU_MAGIC = 2
|
||||
MENU_SUMMON = 3
|
||||
MENU_LIMIT = 4
|
||||
MENU_POSITION = $B9
|
||||
MENU_FINGER = $80
|
||||
MENU_SUBMENU = $BA
|
||||
MENU_MAIN_ATTACK = 0
|
||||
MENU_MAIN_SKIP = 1
|
||||
MENU_MAIN_MAGIC = 2
|
||||
MENU_MAIN_ESCAPE = 3
|
||||
MENU_MAIN_SUMMON = 4
|
||||
MENU_MAIN_LIMIT = 5
|
||||
|
||||
MAGIC_TYPE = $BB ; same as below
|
||||
MENU_TYPE = $BB ; same as above
|
||||
MENU_SUMMON_METROCAT = 0
|
||||
MENU_SUMMON_VORTEX = 1
|
||||
|
||||
|
@ -144,11 +147,11 @@ MENU_POSITION = $B9
|
|||
MENU_LIMIT_ZAP = 1
|
||||
MENU_LIMIT_DROP = 2
|
||||
|
||||
LAST_KEY = $BA
|
||||
DAMAGE_VAL = $BB
|
||||
MAGIC_X = $BC
|
||||
MAGIC_Y = $BD
|
||||
MAGIC_TYPE = $BE
|
||||
LAST_KEY = $BC
|
||||
DAMAGE_VAL = $BD
|
||||
MAGIC_X = $BE
|
||||
MAGIC_Y = $BF
|
||||
FINGER_DIRECTION= $C0
|
||||
|
||||
COLOR1 = $E0
|
||||
COLOR2 = $E1
|
||||
|
|
Loading…
Reference in New Issue