mirror of
https://github.com/deater/dos33fsprogs.git
synced 2024-09-13 12:56:30 +00:00
ootw: adding aliens to levels, other small fixes
This commit is contained in:
parent
bfa49720d1
commit
a87138cb0e
57
ootw/alien.s
57
ootw/alien.s
@ -2,11 +2,6 @@
|
|||||||
|
|
||||||
MAX_ALIENS = 3
|
MAX_ALIENS = 3
|
||||||
|
|
||||||
alien_out:
|
|
||||||
alien0_out: .byte 0
|
|
||||||
alien1_out: .byte 0
|
|
||||||
alien2_out: .byte 0
|
|
||||||
|
|
||||||
alien_room:
|
alien_room:
|
||||||
alien0_room: .byte 0
|
alien0_room: .byte 0
|
||||||
alien1_room: .byte 0
|
alien1_room: .byte 0
|
||||||
@ -64,8 +59,9 @@ move_alien:
|
|||||||
; FIXME: loop through all alieans
|
; FIXME: loop through all alieans
|
||||||
ldx #0
|
ldx #0
|
||||||
|
|
||||||
lda alien_out,X
|
lda alien_room,X
|
||||||
beq done_move_alien
|
cmp WHICH_ROOM
|
||||||
|
bne done_move_alien
|
||||||
|
|
||||||
lda alien_state,X
|
lda alien_state,X
|
||||||
|
|
||||||
@ -176,8 +172,9 @@ draw_alien:
|
|||||||
; FIXME
|
; FIXME
|
||||||
ldx #0
|
ldx #0
|
||||||
|
|
||||||
lda alien_out,X
|
lda alien_room,X
|
||||||
beq no_alien
|
cmp WHICH_ROOM
|
||||||
|
bne no_alien
|
||||||
|
|
||||||
lda alien_state,X
|
lda alien_state,X
|
||||||
tay
|
tay
|
||||||
@ -365,8 +362,8 @@ alien_disintegrating:
|
|||||||
cmp #13
|
cmp #13
|
||||||
bne alien_keep_disintegrating
|
bne alien_keep_disintegrating
|
||||||
|
|
||||||
lda #0
|
lda #$ff
|
||||||
sta alien_out,X
|
sta alien_room,X
|
||||||
|
|
||||||
dec ALIEN_OUT
|
dec ALIEN_OUT
|
||||||
|
|
||||||
@ -464,41 +461,11 @@ alien_facing_right:
|
|||||||
;==================
|
;==================
|
||||||
;==================
|
;==================
|
||||||
clear_aliens:
|
clear_aliens:
|
||||||
lda #0
|
lda #$ff
|
||||||
sta alien0_out
|
sta alien0_room
|
||||||
sta alien1_out
|
sta alien1_room
|
||||||
sta alien2_out
|
sta alien2_room
|
||||||
|
|
||||||
rts
|
rts
|
||||||
|
|
||||||
|
|
||||||
;==============================
|
|
||||||
;==============================
|
|
||||||
; alien room init
|
|
||||||
;==============================
|
|
||||||
;==============================
|
|
||||||
|
|
||||||
alien_room_init:
|
|
||||||
;==============================
|
|
||||||
; if alien in room, set ALIEN_OUT
|
|
||||||
|
|
||||||
lda #0
|
|
||||||
sta ALIEN_OUT
|
|
||||||
|
|
||||||
ldx #0
|
|
||||||
alien_room_loop:
|
|
||||||
lda alien_out,X
|
|
||||||
beq alien_room_continue
|
|
||||||
|
|
||||||
lda alien_room,X
|
|
||||||
cmp WHICH_ROOM
|
|
||||||
bne alien_room_continue
|
|
||||||
|
|
||||||
inc ALIEN_OUT
|
|
||||||
|
|
||||||
alien_room_continue:
|
|
||||||
inx
|
|
||||||
cpx #MAX_ALIENS
|
|
||||||
bne alien_room_loop
|
|
||||||
|
|
||||||
rts
|
|
||||||
|
@ -253,8 +253,9 @@ calc_gun_right_alien:
|
|||||||
ldx #0
|
ldx #0
|
||||||
calc_gun_right_alien_loop:
|
calc_gun_right_alien_loop:
|
||||||
|
|
||||||
lda alien_out,X
|
lda alien_room,X
|
||||||
beq calc_gun_right_alien_continue
|
cmp WHICH_ROOM
|
||||||
|
bne calc_gun_right_alien_continue
|
||||||
|
|
||||||
lda PHYSICIST_X
|
lda PHYSICIST_X
|
||||||
|
|
||||||
@ -461,8 +462,9 @@ calc_gun_left_alien:
|
|||||||
|
|
||||||
calc_gun_left_alien_loop:
|
calc_gun_left_alien_loop:
|
||||||
|
|
||||||
lda alien_out,X
|
lda alien_room,X
|
||||||
beq calc_gun_left_alien_continue
|
cmp WHICH_ROOM
|
||||||
|
bne calc_gun_left_alien_continue
|
||||||
|
|
||||||
lda PHYSICIST_X
|
lda PHYSICIST_X
|
||||||
|
|
||||||
|
@ -29,12 +29,14 @@ fai_table_lo:
|
|||||||
.byte <friend_ai_runto_panel ; 01
|
.byte <friend_ai_runto_panel ; 01
|
||||||
.byte <friend_ai_opening_panel ; 02
|
.byte <friend_ai_opening_panel ; 02
|
||||||
.byte <friend_ai_disintegrating ; 03
|
.byte <friend_ai_disintegrating ; 03
|
||||||
|
.byte <friend_ai_end_l2 ; 04
|
||||||
|
|
||||||
fai_table_hi:
|
fai_table_hi:
|
||||||
.byte >friend_ai_following ; 00
|
.byte >friend_ai_following ; 00
|
||||||
.byte >friend_ai_runto_panel ; 01
|
.byte >friend_ai_runto_panel ; 01
|
||||||
.byte >friend_ai_opening_panel ; 02
|
.byte >friend_ai_opening_panel ; 02
|
||||||
.byte >friend_ai_disintegrating ; 03
|
.byte >friend_ai_disintegrating ; 03
|
||||||
|
.byte >friend_ai_end_l2 ; 04
|
||||||
|
|
||||||
|
|
||||||
;=======================================
|
;=======================================
|
||||||
@ -56,6 +58,7 @@ handle_friend_ai:
|
|||||||
friend_ai_end_l2:
|
friend_ai_end_l2:
|
||||||
; FAI_END_L2
|
; FAI_END_L2
|
||||||
; crouch, holding panel open
|
; crouch, holding panel open
|
||||||
|
rts
|
||||||
|
|
||||||
friend_ai_following:
|
friend_ai_following:
|
||||||
; FAI_FOLLOWING
|
; FAI_FOLLOWING
|
||||||
|
@ -37,6 +37,7 @@ ootw_cage:
|
|||||||
sta SHOOTING_BOTTOM
|
sta SHOOTING_BOTTOM
|
||||||
sta SHOOTING_TOP
|
sta SHOOTING_TOP
|
||||||
sta LITTLEGUY_OUT
|
sta LITTLEGUY_OUT
|
||||||
|
sta WHICH_ROOM
|
||||||
|
|
||||||
bit KEYRESET ; clear keypress
|
bit KEYRESET ; clear keypress
|
||||||
|
|
||||||
@ -436,8 +437,8 @@ guard_done_change:
|
|||||||
|
|
||||||
; start patrol
|
; start patrol
|
||||||
|
|
||||||
lda #1
|
lda #0
|
||||||
sta alien0_out
|
sta alien0_room
|
||||||
|
|
||||||
lda #33
|
lda #33
|
||||||
sta alien0_x
|
sta alien0_x
|
||||||
|
@ -14,7 +14,6 @@ ootw_jail_init:
|
|||||||
sta VENT_OPEN
|
sta VENT_OPEN
|
||||||
|
|
||||||
sta LASER_OUT
|
sta LASER_OUT
|
||||||
sta ALIEN_OUT
|
|
||||||
sta BLAST_OUT
|
sta BLAST_OUT
|
||||||
sta CHARGER_COUNT
|
sta CHARGER_COUNT
|
||||||
sta GUN_STATE
|
sta GUN_STATE
|
||||||
@ -55,24 +54,48 @@ ootw_jail_init:
|
|||||||
|
|
||||||
jsr clear_aliens
|
jsr clear_aliens
|
||||||
|
|
||||||
lda #1
|
lda #3
|
||||||
sta alien0_out
|
sta ALIEN_OUT
|
||||||
|
|
||||||
lda #6
|
; alien in hallway
|
||||||
|
|
||||||
|
lda #2
|
||||||
sta alien0_room
|
sta alien0_room
|
||||||
|
lda #22
|
||||||
lda #20
|
|
||||||
sta alien0_x
|
sta alien0_x
|
||||||
|
lda #30
|
||||||
lda #20
|
|
||||||
sta alien0_y
|
sta alien0_y
|
||||||
|
|
||||||
lda #A_STANDING
|
lda #A_STANDING
|
||||||
sta alien0_state
|
sta alien0_state
|
||||||
|
lda #0 ; facing left
|
||||||
lda #0
|
|
||||||
sta alien0_direction
|
sta alien0_direction
|
||||||
|
|
||||||
|
; alien in basement
|
||||||
|
|
||||||
|
lda #6
|
||||||
|
sta alien1_room
|
||||||
|
lda #20
|
||||||
|
sta alien1_x
|
||||||
|
lda #20
|
||||||
|
sta alien1_y
|
||||||
|
lda #A_STANDING
|
||||||
|
sta alien1_state
|
||||||
|
lda #0
|
||||||
|
sta alien1_direction
|
||||||
|
|
||||||
|
; alien in break room
|
||||||
|
|
||||||
|
lda #4
|
||||||
|
sta alien2_room
|
||||||
|
lda #20
|
||||||
|
sta alien2_x
|
||||||
|
lda #20
|
||||||
|
sta alien2_y
|
||||||
|
lda #A_STANDING
|
||||||
|
sta alien2_state
|
||||||
|
lda #0
|
||||||
|
sta alien2_direction
|
||||||
|
|
||||||
rts
|
rts
|
||||||
|
|
||||||
; Map
|
; Map
|
||||||
@ -108,7 +131,7 @@ ootw_jail:
|
|||||||
;============================
|
;============================
|
||||||
; init alien room
|
; init alien room
|
||||||
|
|
||||||
jsr alien_room_init
|
; jsr alien_room_init
|
||||||
|
|
||||||
|
|
||||||
;==============================
|
;==============================
|
||||||
@ -317,11 +340,16 @@ jail5:
|
|||||||
bne jail6
|
bne jail6
|
||||||
|
|
||||||
; FIXME -- setup friend with open vent
|
; FIXME -- setup friend with open vent
|
||||||
|
; for now just always have him with it open
|
||||||
sta friend_room
|
sta friend_room
|
||||||
lda #F_OPEN_VENT
|
lda #F_OPEN_VENT
|
||||||
sta friend_state
|
sta friend_state
|
||||||
lda #0
|
lda #0
|
||||||
sta friend_direction
|
sta friend_direction
|
||||||
|
lda #5
|
||||||
|
sta friend_room
|
||||||
|
lda #FAI_END_L2
|
||||||
|
sta friend_ai_state
|
||||||
|
|
||||||
; setup doors
|
; setup doors
|
||||||
|
|
||||||
@ -878,8 +906,10 @@ check_vent_falling:
|
|||||||
cmp #P_STANDING
|
cmp #P_STANDING
|
||||||
bne not_falling_down_vent
|
bne not_falling_down_vent
|
||||||
|
|
||||||
; vent at 18/19
|
; vent at 17/18/19
|
||||||
lda PHYSICIST_X
|
lda PHYSICIST_X
|
||||||
|
cmp #16
|
||||||
|
beq falling_down_vent
|
||||||
cmp #17
|
cmp #17
|
||||||
beq falling_down_vent
|
beq falling_down_vent
|
||||||
cmp #18
|
cmp #18
|
||||||
|
@ -12,7 +12,6 @@ ootw_city_init:
|
|||||||
sta BG_SCROLL
|
sta BG_SCROLL
|
||||||
sta DIRECTION ; left
|
sta DIRECTION ; left
|
||||||
sta LASER_OUT
|
sta LASER_OUT
|
||||||
sta ALIEN_OUT
|
|
||||||
sta BLAST_OUT
|
sta BLAST_OUT
|
||||||
sta CHARGER_COUNT
|
sta CHARGER_COUNT
|
||||||
sta GUN_STATE
|
sta GUN_STATE
|
||||||
@ -41,20 +40,16 @@ ootw_city_init:
|
|||||||
jsr clear_aliens
|
jsr clear_aliens
|
||||||
|
|
||||||
lda #1
|
lda #1
|
||||||
sta alien0_out
|
sta ALIEN_OUT
|
||||||
|
|
||||||
lda #2
|
lda #2
|
||||||
sta alien0_room
|
sta alien0_room
|
||||||
|
|
||||||
lda #27
|
lda #27
|
||||||
sta alien0_x
|
sta alien0_x
|
||||||
|
|
||||||
lda #18
|
lda #18
|
||||||
sta alien0_y
|
sta alien0_y
|
||||||
|
|
||||||
lda #A_STANDING
|
lda #A_STANDING
|
||||||
sta alien0_state
|
sta alien0_state
|
||||||
|
|
||||||
lda #0
|
lda #0
|
||||||
sta alien0_direction
|
sta alien0_direction
|
||||||
|
|
||||||
@ -104,7 +99,7 @@ ootw_city:
|
|||||||
jsr init_shields
|
jsr init_shields
|
||||||
|
|
||||||
|
|
||||||
jsr alien_room_init
|
; jsr alien_room_init
|
||||||
|
|
||||||
|
|
||||||
lda #0
|
lda #0
|
||||||
|
Loading…
Reference in New Issue
Block a user