peasant: move inventory to language card

This commit is contained in:
Vince Weaver 2021-10-17 19:58:14 -04:00
parent 929c8e50c3
commit 9235f5da0c
6 changed files with 111 additions and 59 deletions

View File

@ -24,9 +24,10 @@ peasant.dsk: QBOOT QLOAD VID_LOGO TITLE INTRO \
$(DOS33_RAW) peasant.dsk 4 0 VID_LOGO 0 0
$(DOS33_RAW) peasant.dsk 6 0 TITLE 0 0
$(DOS33_RAW) peasant.dsk 9 0 INTRO 0 0
$(DOS33_RAW) peasant.dsk 13 0 PEASANT1 0 0
$(DOS33_RAW) peasant.dsk 18 0 PEASANT2 0 0
$(DOS33_RAW) peasant.dsk 24 0 PEASANT3 0 0
$(DOS33_RAW) peasant.dsk 14 0 INVENTORY 0 0
$(DOS33_RAW) peasant.dsk 15 0 PEASANT1 0 0
$(DOS33_RAW) peasant.dsk 20 0 PEASANT2 0 0
$(DOS33_RAW) peasant.dsk 25 0 PEASANT3 0 0
$(DOS33_RAW) peasant.dsk 30 0 PEASANT4 0 0
peasant_side2.dsk: WBOOT2 COPY_CHECK TROGDOR ENDING CLIFF GAME_OVER
@ -185,7 +186,8 @@ intro.o: intro.s zp.inc qload.inc music.inc \
wait_a_bit.s draw_peasant.s hgr_text_box.s \
title.s directions.s \
intro_cottage.s intro_lake_w.s intro_lake_e.s \
intro_river.s intro_knight.s
intro_river.s intro_knight.s \
new_game.s
ca65 -o intro.o intro.s -l intro.lst
###

View File

@ -1,8 +1,10 @@
TODO:
+ animation for game_over
+ print warning message on 48k systems that we need at least 64k
+ more frames in animation for game_over
+ hook up game_over for "quit" and "copy"
+ music for game over
+ better music for game over
+ consolidate the lookup info for message box sizes, as in the
end only Y2 is changing

View File

@ -114,57 +114,12 @@ mockingboard_notfound2:
;=============================
; start new game
;=============================
start_new_game:
lda #LOAD_PEASANT2
sta WHICH_LOAD
;=========================
; init peasant position
; draw at 18,108
jmp start_new_game
lda #18
sta PEASANT_X
lda #108
sta PEASANT_Y
lda #PEASANT_DIR_RIGHT
sta PEASANT_DIR
lda #0
sta PEASANT_XADD
sta PEASANT_YADD
lda #0
sta SCORE_HUNDREDS
lda #$00
sta SCORE_TENSONES
lda #4
sta MAP_X
lda #1
sta MAP_Y
lda #$00
sta INVENTORY_1
sta INVENTORY_2
lda #INV3_SHIRT
sta INVENTORY_3
; 1100 1011
lda #$00
sta INVENTORY_1_GONE
; 0001 1101
lda #$00
sta INVENTORY_2_GONE
;
lda #$0
sta INVENTORY_3_GONE
rts
.include "new_game.s"
;.include "decompress_fast_v2.s"
.include "wait_keypress.s"
.include "intro_cottage.s"
@ -175,6 +130,7 @@ start_new_game:
.include "draw_peasant.s"
;.include "decompress_fast_v2.s"
;.include "hgr_font.s"
;.include "draw_box.s"
;.include "hgr_rectangle.s"

91
games/peasant/new_game.s Normal file
View File

@ -0,0 +1,91 @@
; Peasant's Quest / New Game
; included by intro.s
; by Vince `deater` Weaver vince@deater.net
;=============================
; start new game
;=============================
start_new_game:
;===================================================
; load inventory code to language card $d000 bank 2
; switch in language card
; read/write RAM, $d000 bank 2
lda $C083
lda $C083
; actually load it
lda #LOAD_INVENTORY
sta WHICH_LOAD
jsr load_file
; start in PEASANT2 file
lda #LOAD_PEASANT2
sta WHICH_LOAD
;=========================
; init peasant position
; draw at 18,108
lda #18
sta PEASANT_X
lda #108
sta PEASANT_Y
; set direction
lda #PEASANT_DIR_RIGHT
sta PEASANT_DIR
; set not walking
lda #0
sta PEASANT_XADD
sta PEASANT_YADD
; set score to 0
lda #0
sta SCORE_HUNDREDS
lda #$00
sta SCORE_TENSONES
; map location
lda #4
sta MAP_X
lda #1
sta MAP_Y
; inventory is only t-shirt
lda #$00
sta INVENTORY_1
sta INVENTORY_2
lda #INV3_SHIRT
sta INVENTORY_3
; inventory items gone
; 1100 1011
lda #$00
sta INVENTORY_1_GONE
; 0001 1101
; lda #$00
sta INVENTORY_2_GONE
;
; lda #$00
sta INVENTORY_3_GONE
rts

View File

@ -196,7 +196,7 @@ which_disk_array:
.byte 1,1,1,2 ; VID_LOGO, TITLE, INTRO. COPY_CHECK
.byte 1,1,1,1 ; PEASANT1, PEASANT2, PEASANT3, PEASANT4
.byte 2,2,1,2 ; TROGDOR, ENDING, MUSIC, CLIFF
.byte 2,1,1,1 ; GAME_OVER
.byte 2,1,1,1 ; GAME_OVER, INVENTORY
.byte 1 ;
.byte 1,1,1,1,1 ; SAVE1, SAVE2, SAVE3
.byte $f ; disk detect
@ -205,7 +205,7 @@ load_address_array:
.byte $60,$60,$60,$60 ; VID_LOGO, TITLE, INTRO, COPY_CHECK
.byte $60,$60,$60,$60 ; PEASANT1, PEASANT2, PEASANT3, PEASANT4
.byte $60,$60,$D0,$60 ; TROGDOR, ENDING, MUSIC, CLIFF
.byte $60,$40,$40,$40 ; GAME_OVER
.byte $60,$D0,$40,$40 ; GAME_OVER, INVENTORY
.byte $08 ;
.byte $BC,$BC,$BC,$0A ; SAVE1, SAVE2, SAVE3
.byte $0A ;
@ -213,9 +213,9 @@ load_address_array:
track_array:
.byte 4, 6, 9,1 ; VID_LOGO, TITLE, INTRO, COPY_CHECK
.byte 13,18,24,30 ; PEASANT1, PEASANT2, PEASANT3, PEASANT4
.byte 15,20,25,30 ; PEASANT1, PEASANT2, PEASANT3, PEASANT4
.byte 19,24, 3,29 ; TROGDOR, ENDING, MUSIC, CLIFF
.byte 3,32,28,30 ; GAME_OVER
.byte 3,14,28,30 ; GAME_OVER, INVENTORY
.byte 0 ;
.byte 0, 0, 0, 0, 0 ; SAVE1, SAVE2, SAVE3
.byte 0 ; disk detect
@ -224,7 +224,7 @@ sector_array:
.byte 0, 0, 0, 0 ; VID_LOGO, TITLE, INTRO, COPY_CHECK
.byte 0, 0, 0, 0 ; PEASANT1, PEASANT2, PEASANT3, PEASANT4
.byte 0, 0, 0, 0 ; TROGDOR, ENDING, MUSIC, CLIFF
.byte 0,13, 0, 1 ; GAME_OVER
.byte 0, 0, 0, 1 ; GAME_OVER, INVENTORY
.byte 6 ;
.byte 11,12,13,14,15 ; SAVE1, SAVE2, SAVE3
.byte 0 ; disk detect
@ -233,7 +233,7 @@ length_array:
.byte 32, 50, 60, 20 ; VID_LOGO, TITLE, INTRO, COPY_CHECK
.byte 80, 88, 88, 80 ; PEASANT1, PEASANT2, PEASANT3, PEASANT4
.byte 80, 80, 16, 80 ; TROGDOR, ENDING, MUSIC, CLIFF
.byte 16, 33, 27, 78 ; GAME_OVER
.byte 16, 16, 27, 78 ; GAME_OVER, INVENTORY
.byte 3 ;
.byte 1,1,1,1,1 ; SAVE1, SAVE2, SAVE3
.byte 1 ; disk detect

View File

@ -234,6 +234,7 @@ LOAD_ENDING = 9
LOAD_MUSIC = 10
LOAD_CLIFF = 11
LOAD_GAME_OVER = 12
LOAD_INVENTORY = 13
LOAD_SAVE1 = 17
LOAD_SAVE2 = 18