ootw: more work on arena

This commit is contained in:
Vince Weaver 2021-04-30 22:16:55 -04:00
parent 5281233d56
commit 950f137ca5
33 changed files with 245 additions and 228 deletions

View File

@ -8,7 +8,8 @@ all: ootw_c14_arena.inc
#####
ootw_c14_arena.inc: \
arena.lzsa inside_bg.lzsa \
arena_main_bg.lzsa \
inside_bg.lzsa \
inside03.lzsa inside04.lzsa inside05.lzsa inside06.lzsa \
inside07.lzsa inside08.lzsa inside09.lzsa inside10.lzsa \
inside11.lzsa inside12.lzsa inside13.lzsa inside14.lzsa \
@ -35,8 +36,16 @@ ootw_c14_arena.inc: \
entering01.lzsa entering02.lzsa entering03.lzsa entering04.lzsa \
entering05.lzsa entering06.lzsa entering07.lzsa entering08.lzsa \
entering09.lzsa entering10.lzsa entering11.lzsa entering12.lzsa \
entering13.lzsa
echo "arena_lzsa: .incbin \"arena.lzsa\"" > ootw_c14_arena.inc
entering13.lzsa \
arena_next_bg.lzsa \
arena_next01.lzsa arena_next02.lzsa arena_next03.lzsa arena_next04.lzsa \
arena_next05.lzsa arena_next06.lzsa arena_next07.lzsa arena_next08.lzsa \
arena_next09.lzsa arena_next10.lzsa arena_next11.lzsa arena_next12.lzsa \
arena_next13.lzsa arena_next14.lzsa arena_next15.lzsa arena_next16.lzsa \
arena_next17.lzsa arena_next18.lzsa arena_next19.lzsa arena_next20.lzsa \
arena_next21.lzsa arena_next22.lzsa arena_next23.lzsa arena_next24.lzsa \
arena_next25.lzsa arena_next26.lzsa arena_next27.lzsa
echo "arena_main_bg_lzsa: .incbin \"arena_main_bg.lzsa\"" > ootw_c14_arena.inc
echo "inside_bg_lzsa: .incbin \"inside_bg.lzsa\"" >> ootw_c14_arena.inc
echo "inside03_lzsa: .incbin \"inside03.lzsa\"" >> ootw_c14_arena.inc
echo "inside04_lzsa: .incbin \"inside04.lzsa\"" >> ootw_c14_arena.inc
@ -127,6 +136,36 @@ ootw_c14_arena.inc: \
echo "entering11_lzsa: .incbin \"entering11.lzsa\"" >> ootw_c14_arena.inc
echo "entering12_lzsa: .incbin \"entering12.lzsa\"" >> ootw_c14_arena.inc
echo "entering13_lzsa: .incbin \"entering13.lzsa\"" >> ootw_c14_arena.inc
echo "arena_next_bg_lzsa: .incbin \"arena_next_bg.lzsa\"" >> ootw_c14_arena.inc
echo "arena_next01_lzsa: .incbin \"arena_next01.lzsa\"" >> ootw_c14_arena.inc
echo "arena_next02_lzsa: .incbin \"arena_next02.lzsa\"" >> ootw_c14_arena.inc
echo "arena_next03_lzsa: .incbin \"arena_next03.lzsa\"" >> ootw_c14_arena.inc
echo "arena_next04_lzsa: .incbin \"arena_next04.lzsa\"" >> ootw_c14_arena.inc
echo "arena_next05_lzsa: .incbin \"arena_next05.lzsa\"" >> ootw_c14_arena.inc
echo "arena_next06_lzsa: .incbin \"arena_next06.lzsa\"" >> ootw_c14_arena.inc
echo "arena_next07_lzsa: .incbin \"arena_next07.lzsa\"" >> ootw_c14_arena.inc
echo "arena_next08_lzsa: .incbin \"arena_next08.lzsa\"" >> ootw_c14_arena.inc
echo "arena_next09_lzsa: .incbin \"arena_next09.lzsa\"" >> ootw_c14_arena.inc
echo "arena_next10_lzsa: .incbin \"arena_next10.lzsa\"" >> ootw_c14_arena.inc
echo "arena_next11_lzsa: .incbin \"arena_next11.lzsa\"" >> ootw_c14_arena.inc
echo "arena_next12_lzsa: .incbin \"arena_next12.lzsa\"" >> ootw_c14_arena.inc
echo "arena_next13_lzsa: .incbin \"arena_next13.lzsa\"" >> ootw_c14_arena.inc
echo "arena_next14_lzsa: .incbin \"arena_next14.lzsa\"" >> ootw_c14_arena.inc
echo "arena_next15_lzsa: .incbin \"arena_next15.lzsa\"" >> ootw_c14_arena.inc
echo "arena_next16_lzsa: .incbin \"arena_next16.lzsa\"" >> ootw_c14_arena.inc
echo "arena_next17_lzsa: .incbin \"arena_next17.lzsa\"" >> ootw_c14_arena.inc
echo "arena_next18_lzsa: .incbin \"arena_next18.lzsa\"" >> ootw_c14_arena.inc
echo "arena_next19_lzsa: .incbin \"arena_next19.lzsa\"" >> ootw_c14_arena.inc
echo "arena_next20_lzsa: .incbin \"arena_next20.lzsa\"" >> ootw_c14_arena.inc
echo "arena_next21_lzsa: .incbin \"arena_next21.lzsa\"" >> ootw_c14_arena.inc
echo "arena_next22_lzsa: .incbin \"arena_next22.lzsa\"" >> ootw_c14_arena.inc
echo "arena_next23_lzsa: .incbin \"arena_next23.lzsa\"" >> ootw_c14_arena.inc
echo "arena_next24_lzsa: .incbin \"arena_next24.lzsa\"" >> ootw_c14_arena.inc
echo "arena_next25_lzsa: .incbin \"arena_next25.lzsa\"" >> ootw_c14_arena.inc
echo "arena_next26_lzsa: .incbin \"arena_next26.lzsa\"" >> ootw_c14_arena.inc
echo "arena_next27_lzsa: .incbin \"arena_next27.lzsa\"" >> ootw_c14_arena.inc
#####

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 679 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 723 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 741 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 720 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 738 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 731 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 734 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 730 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 727 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 731 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 740 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 731 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 732 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 736 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 737 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 735 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 739 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 744 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 746 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 746 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 735 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 734 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 734 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 743 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 684 B

View File

@ -133,19 +133,6 @@ wait_loop:
ootw_c14_level_init:
lda #0
sta WHICH_ROOM
sta NUM_DOORS
lda #1
sta HAVE_GUN
sta DIRECTION ; right
lda #0
sta PHYSICIST_X
lda #10
sta PHYSICIST_Y
lda #P_STANDING
sta PHYSICIST_STATE
rts
@ -158,72 +145,15 @@ ootw_c14_level_init:
ootw_c14_setup_room_and_play:
;==============================
; each room init
;==============================
; setup per-room variables
lda WHICH_ROOM
bne room1
jsr init_shields
;===============================
; Room0 -- the arena
;===============================
room:
lda #(0+128)
sta LEFT_LIMIT
lda #(39+128)
sta RIGHT_LIMIT
; set right exit
lda #$ff ; exit level if exit this way
sta cer_smc+1
; set left exit
lda #0
sta cel_smc+1
lda #28
sta PHYSICIST_Y
; load background
lda #>(arena_lzsa)
lda #>(arena_main_bg_lzsa)
sta getsrc_smc+2 ; LZSA_SRC_HI
lda #<(arena_lzsa)
jmp room_setup_done
; ????
room1:
; cmp #1
; bne room2
; lda #(-4+128)
; sta LEFT_LIMIT
; lda #(39+128)
; sta RIGHT_LIMIT
; set right exit
; lda #2
; sta cer_smc+1
; set left exit
; lda #0
; sta cel_smc+1
; lda #8
; sta PHYSICIST_Y
; load background
; lda #>(hallway_lzsa)
; sta getsrc_smc+2 ; LZSA_SRC_HI
; lda #<(hallway_lzsa)
jmp room_setup_done
lda #<(arena_main_bg_lzsa)
room_setup_done:
@ -231,12 +161,6 @@ room_setup_done:
lda #$c ; load to page $c00
jsr decompress_lzsa2_fast ; tail call
;=====================
; setup walk collision
jsr recalc_walk_collision
ootw_room_already_set:
;===========================
; Enable graphics
@ -250,14 +174,13 @@ ootw_room_already_set:
lda #0
sta DRAW_PAGE
lda #1
lda #4
sta DISP_PAGE
;=================================
; setup vars
lda #0
sta GAIT
sta GAME_OVER
;============================
@ -275,32 +198,6 @@ room_loop:
;==================================
; draw background action
lda WHICH_CAVE
bg_room0:
; cmp #0
; bne c4_no_bg_action
; lda FRAMEL
; and #$c
; lsr
; tay
; lda #11
; sta XPOS
; lda #24
; sta YPOS
; lda recharge_bg_progression,Y
; sta INL
; lda recharge_bg_progression+1,Y
; sta INH
; jsr put_sprite
c5_no_bg_action:
;===============================
; check keyboard
@ -308,73 +205,10 @@ c5_no_bg_action:
jsr handle_keypress
;===============================
; move physicist
;===============================
jsr move_physicist
;===============================
; check room limits
;===============================
jsr check_screen_limit
;===============================
; adjust floor
;===============================
; lda PHYSICIST_STATE
; cmp #P_FALLING_DOWN
; beq check_floor0_done
; lda WHICH_CAVE
; cmp #0
; bne check_floor1
; lda #14
; sta PHYSICIST_Y
; lda PHYSICIST_X
; cmp #19
; bcc check_floor0_done
; lda #12
; sta PHYSICIST_Y
; lda PHYSICIST_X
; cmp #28
; bcc check_floor0_done
; lda #10
; sta PHYSICIST_Y
check_floor0_done:
check_floor1:
;=====================================
; draw physicist
;=====================================
jsr draw_physicist
;=====================================
; handle gun
;=====================================
jsr handle_gun
;=====================================
; draw foreground action
;=====================================
; lda WHICH_CAVE
; cmp #0
; bne c5_no_fg_action
c5_draw_rocks:
; lda #1
; sta XPOS
@ -469,34 +303,6 @@ room_frame_no_oflo:
cmp #$ff ; if $ff, we died
beq done_room
;===============================
; check if exited room to right
cmp #1
beq room_exit_left
;=================
; exit to right
room_right_yes_exit:
lda #0
sta PHYSICIST_X
cer_smc:
lda #$0 ; smc+1 = exit location
sta WHICH_ROOM
jmp done_room
;=====================
; exit to left
room_exit_left:
lda #37
sta PHYSICIST_X
cel_smc:
lda #0 ; smc+1
sta WHICH_ROOM
jmp done_room
; loop forever
still_in_room:
@ -516,24 +322,24 @@ end_message:
.include "../gr_pageflip.s"
.include "../decompress_fast_v2.s"
.include "../gr_copy.s"
.include "../gr_putsprite.s"
.include "../gr_putsprite_crop.s"
;.include "../gr_putsprite.s"
;.include "../gr_putsprite_crop.s"
.include "../gr_offsets.s"
.include "../gr_hlin.s"
.include "../keyboard.s"
;.include "../gr_hlin.s"
;.include "../keyboard.s"
.include "../physicist.s"
.include "../alien.s"
.include "../dummy_friend.s"
;.include "../physicist.s"
;.include "../alien.s"
;.include "../dummy_friend.s"
.include "../gun.s"
.include "../laser.s"
.include "../alien_laser.s"
.include "../blast.s"
.include "../shield.s"
;.include "../gun.s"
;.include "../laser.s"
;.include "../alien_laser.s"
;.include "../blast.s"
;.include "../shield.s"
.include "../door.s"
.include "../collision.s"
;.include "../door.s"
;.include "../collision.s"
.include "../gr_overlay.s"
.include "../gr_run_sequence2.s"
@ -542,7 +348,149 @@ end_message:
.include "graphics/l14_arena/ootw_c14_arena.inc"
; sprites
.include "../sprites/physicist.inc"
.include "../sprites/alien.inc"
;.include "../sprites/alien.inc"
;======================================
; handle keypress
;======================================
; A or <- : start moving left
; D or -> : start moving right
; W or up : jump or elevator/transporter up
; S or down : crouch or pickup or elevator/transporter down
; L : charge gun
; space : action
; escape : quit
handle_keypress:
lda KEYPRESS ; 4
bmi keypress ; 3
no_keypress:
bit KEYRESET ; clear
; avoid keeping old keys around
rts ; nothing pressed, return
keypress:
; -1
and #$7f ; clear high bit
;======================
; check escape
check_quit:
cmp #27 ; quit if ESCAPE pressed
bne check_left
;=====================
; QUIT
;=====================
quit:
lda #$ff ; could just dec
sta GAME_OVER
rts
;======================
; check left
check_left:
cmp #'A'
beq left_pressed
cmp #$8 ; left arrow
bne check_right
;====================
;====================
; Left/A Pressed
;====================
;====================
left_pressed:
; inc GUN_FIRE ; fire gun if charging
; left==0
; lda DIRECTION ; if facing right, turn to face left
; bne left_going_right
jmp done_keypress
;========================
; check for right pressed
check_right:
cmp #'D'
beq right_pressed
cmp #$15
bne check_up
;===================
;===================
; Right/D Pressed
;===================
;===================
right_pressed:
jmp done_keypress
;=====================
; check up
check_up:
cmp #'W'
beq up
cmp #$0B
bne check_down
;==========================
;==========================
; UP/W Pressed --
;==========================
;==========================
up:
jmp done_keypress
;==========================
check_down:
cmp #'S'
beq down
cmp #$0A
bne check_space
;==========================
;==========================
; Down/S Pressed
;==========================
;==========================
down:
jmp done_keypress
;==========================
check_space:
cmp #' '
beq space
; cmp #$15 ; ascii 21=??
jmp unknown
;======================
; SPACE -- Keypress, also look for enter?
;======================
space:
unknown:
done_keypress:
bit KEYRESET ; clear the keyboard strobe ; 4
rts ; 6
;==============================
@ -640,17 +588,47 @@ tank_intro_sequence:
.byte 128+3 ; .word door_open13_lzsa ; (3)
.byte 255 ; load to bg
.word entrance_bg_lzsa ; this
.byte 128+2 ; .word entering01_lzsa ; (3)
.byte 128+2 ; .word entering02_lzsa ; (3)
.byte 128+2 ; .word entering03_lzsa ; (3)
.byte 128+2 ; .word entering04_lzsa ; (3)
.byte 128+2 ; .word entering05_lzsa ; (3)
.byte 128+2 ; .word entering06_lzsa ; (3)
.byte 128+2 ; .word entering07_lzsa ; (3)
.byte 128+2 ; .word entering08_lzsa ; (3)
.byte 128+2 ; .word entering09_lzsa ; (3)
.byte 128+2 ; .word entering10_lzsa ; (3)
.byte 128+2 ; .word entering11_lzsa ; (3)
.byte 128+2 ; .word entering12_lzsa ; (3)
.byte 128+2 ; .word entering13_lzsa ; (3)
.byte 128+2 ; .word entering01_lzsa ; (2)
.byte 128+2 ; .word entering02_lzsa ; (2)
.byte 128+2 ; .word entering03_lzsa ; (2)
.byte 128+2 ; .word entering04_lzsa ; (2)
.byte 128+2 ; .word entering05_lzsa ; (2)
.byte 128+2 ; .word entering06_lzsa ; (2)
.byte 128+2 ; .word entering07_lzsa ; (2)
.byte 128+2 ; .word entering08_lzsa ; (2)
.byte 128+2 ; .word entering09_lzsa ; (2)
.byte 128+2 ; .word entering10_lzsa ; (2)
.byte 128+2 ; .word entering11_lzsa ; (2)
.byte 128+2 ; .word entering12_lzsa ; (2)
.byte 128+32 ; .word entering13_lzsa ; (16) pause a bit
.byte 255 ; load to bg
.word arena_next_bg_lzsa ; this
.byte 128+28 ; .word arena_next01_lzsa ; (14)
.byte 128+14 ; .word arena_next02_lzsa ; (7)
.byte 128+14 ; .word arena_next03_lzsa ; (7)
.byte 128+14 ; .word arena_next04_lzsa ; (7)
.byte 128+14 ; .word arena_next05_lzsa ; (7)
.byte 128+14 ; .word arena_next06_lzsa ; (7)
.byte 128+14 ; .word arena_next07_lzsa ; (7)
.byte 128+14 ; .word arena_next08_lzsa ; (7)
.byte 128+14 ; .word arena_next09_lzsa ; (7)
.byte 128+14 ; .word arena_next10_lzsa ; (7)
.byte 128+14 ; .word arena_next11_lzsa ; (7)
.byte 128+14 ; .word arena_next12_lzsa ; (7)
.byte 128+14 ; .word arena_next13_lzsa ; (7)
.byte 128+14 ; .word arena_next14_lzsa ; (7)
.byte 128+14 ; .word arena_next15_lzsa ; (7)
.byte 128+14 ; .word arena_next16_lzsa ; (7)
.byte 128+14 ; .word arena_next17_lzsa ; (7)
.byte 128+14 ; .word arena_next18_lzsa ; (7)
.byte 128+14 ; .word arena_next19_lzsa ; (7)
.byte 128+14 ; .word arena_next20_lzsa ; (7)
.byte 128+14 ; .word arena_next21_lzsa ; (7)
.byte 128+14 ; .word arena_next22_lzsa ; (7)
.byte 128+14 ; .word arena_next23_lzsa ; (7)
.byte 128+14 ; .word arena_next24_lzsa ; (7)
.byte 128+14 ; .word arena_next25_lzsa ; (7)
.byte 128+14 ; .word arena_next26_lzsa ; (7)
.byte 128+14 ; .word arena_next27_lzsa ; (7)
.byte 0 ; ending