From 1155f3b1137eca5dee46f2d5c8e8ccc6e522a9cf Mon Sep 17 00:00:00 2001 From: Vince Weaver Date: Tue, 22 Oct 2024 23:56:00 -0400 Subject: [PATCH] peasant: properly hook up new outer level --- games/peasant/Makefile | 48 ++++++------ games/peasant/cliff_heights/cliff_heights.s | 54 ++++---------- games/peasant/docs/NOTES | 13 ++++ games/peasant/docs/TODO | 18 +++-- games/peasant/new_map_location.s | 2 +- games/peasant/outer/Makefile | 1 + games/peasant/outer/outer.s | 70 ++++++++++-------- games/peasant/outer/sprites_outer/Makefile | 33 +++++++-- .../outer/sprites_outer/guitar_sprites.png | Bin 26178 -> 26453 bytes games/peasant/qload.s | 18 ++--- games/peasant/zp.inc | 7 +- 11 files changed, 145 insertions(+), 119 deletions(-) diff --git a/games/peasant/Makefile b/games/peasant/Makefile index 870b9565..d3bb0857 100644 --- a/games/peasant/Makefile +++ b/games/peasant/Makefile @@ -43,10 +43,8 @@ peasant_disk2.dsk: QBOOT QLOAD \ $(DOS33_RAW) peasant_disk2.dsk 25 0 PEASANT3 0 0 $(DOS33_RAW) peasant_disk2.dsk 30 0 PEASANT4 0 0 -peasant_disk3.dsk: ./trogdor/TROGDOR ./ending/ENDING \ - ./cliff_base/CLIFF_BASE ./cliff_heights/CLIFF_HEIGHTS \ - ./climb/CLIMB \ - ./game_over/GAME_OVER ./inside/INSIDE ./inn/INN \ +peasant_disk3.dsk: \ + ./inside/INSIDE ./inn/INN \ ./archery/ARCHERY ./map/MAP \ ./wrong_boot/WBOOT3 cp $(EMPTY_DISK)/empty.dsk peasant_disk3.dsk @@ -55,18 +53,20 @@ peasant_disk3.dsk: ./trogdor/TROGDOR ./ending/ENDING \ $(DOS33_RAW) peasant_disk3.dsk 3 0 ./archery/ARCHERY 0 0 $(DOS33_RAW) peasant_disk3.dsk 7 0 ./inside/INSIDE 0 0 $(DOS33_RAW) peasant_disk3.dsk 11 0 ./inn/INN 0 0 - $(DOS33_RAW) peasant_disk3.dsk 15 0 ./trogdor/TROGDOR 0 0 - $(DOS33_RAW) peasant_disk3.dsk 19 0 ./ending/ENDING 0 0 - $(DOS33_RAW) peasant_disk3.dsk 24 0 ./cliff_base/CLIFF_BASE 0 0 - $(DOS33_RAW) peasant_disk3.dsk 26 0 ./climb/CLIMB 0 0 - $(DOS33_RAW) peasant_disk3.dsk 30 0 ./cliff_heights/CLIFF_HEIGHTS 0 0 peasant_disk4.dsk: ./wrong_boot/WBOOT4 \ ./cliff_base/CLIFF_BASE ./climb/CLIMB \ - ./cliff_heights/CLIFF_HEIGHTS \ + ./cliff_heights/CLIFF_HEIGHTS ./outer/OUTER \ ./trogdor/TROGDOR ./ending/ENDING cp $(EMPTY_DISK)/empty.dsk peasant_disk4.dsk - $(DOS33_RAW) peasant_disk4.dsk 0 0 ./wrong_boot/WBOOT4 0 1 + $(DOS33_RAW) peasant_disk4.dsk 0 0 ./wrong_boot/WBOOT4 0 1 + $(DOS33_RAW) peasant_disk4.dsk 1 0 ./cliff_base/CLIFF_BASE 0 0 + $(DOS33_RAW) peasant_disk4.dsk 3 0 ./climb/CLIMB 0 0 + $(DOS33_RAW) peasant_disk4.dsk 7 0 ./cliff_heights/CLIFF_HEIGHTS 0 0 + $(DOS33_RAW) peasant_disk4.dsk 11 0 ./outer/OUTER 0 0 + $(DOS33_RAW) peasant_disk4.dsk 15 0 ./trogdor/TROGDOR 0 0 + $(DOS33_RAW) peasant_disk4.dsk 19 0 ./ending/ENDING 0 0 + peasant.2mg: dts_block PROBOOTHD QLOAD_HD \ @@ -74,7 +74,7 @@ peasant.2mg: dts_block PROBOOTHD QLOAD_HD \ ./music/MUSIC ./copy/COPY_CHECK ./inventory/INVENTORY \ ./map/MAP ./archery/ARCHERY ./inside/INSIDE ./inn/INN \ ./trogdor/TROGDOR ./ending/ENDING ./cliff_base/CLIFF_BASE \ - ./climb/CLIMB \ + ./climb/CLIMB ./outer/OUTER \ ./cliff_heights/CLIFF_HEIGHTS \ ./saves/SAVE_DATA PARSE_INPUT.ZX02 ./game_over/GAME_OVER $(PRODOSDIR)/mkprodosfs peasant.2mg -n PeasantsQ -b 2800 -2 @@ -99,11 +99,13 @@ peasant.2mg: dts_block PROBOOTHD QLOAD_HD \ $(PRODOS_RAW) peasant.2mg `./dts_block 3 3 0` ./archery/ARCHERY 0 0 $(PRODOS_RAW) peasant.2mg `./dts_block 3 7 0` ./inside/INSIDE 0 0 $(PRODOS_RAW) peasant.2mg `./dts_block 3 11 0` ./inn/INN 0 0 - $(PRODOS_RAW) peasant.2mg `./dts_block 3 15 0` ./trogdor/TROGDOR 0 0 - $(PRODOS_RAW) peasant.2mg `./dts_block 3 19 0` ./ending/ENDING 0 0 - $(PRODOS_RAW) peasant.2mg `./dts_block 3 24 0` ./cliff_base/CLIFF_BASE 0 0 - $(PRODOS_RAW) peasant.2mg `./dts_block 3 26 0` ./climb/CLIMB 0 0 - $(PRODOS_RAW) peasant.2mg `./dts_block 3 30 0` ./cliff_heights/CLIFF_HEIGHTS 0 0 + $(PRODOS_RAW) peasant.2mg `./dts_block 4 1 0` ./cliff_base/CLIFF_BASE 0 0 + $(PRODOS_RAW) peasant.2mg `./dts_block 4 3 0` ./climb/CLIMB 0 0 + $(PRODOS_RAW) peasant.2mg `./dts_block 4 7 0` ./cliff_heights/CLIFF_HEIGHTS 0 0 + $(PRODOS_RAW) peasant.2mg `./dts_block 4 11 0` ./outer/OUTER 0 0 + $(PRODOS_RAW) peasant.2mg `./dts_block 4 15 0` ./trogdor/TROGDOR 0 0 + $(PRODOS_RAW) peasant.2mg `./dts_block 4 19 0` ./ending/ENDING 0 0 + ### @@ -318,10 +320,12 @@ inventory/INVENTORY: ./game_over/GAME_OVER: cd game_over && make - ./knight_falls_rock/KNIGHT_FALLS_ROCK: DIALOG_KNIGHT_FALLS_ROCK.ZX02 cd knight_falls_rock && make +./outer/OUTER: + cd outer && make + ### @@ -496,10 +500,10 @@ text/dialog_peasant4.inc: #### -dialog_test: dialog_test.o - ld65 -o dialog_test dialog_test.o -C ../../linker_scripts/apple2_d000.inc +#dialog_test: dialog_test.o +# ld65 -o dialog_test dialog_test.o -C ../../linker_scripts/apple2_d000.inc -dialog_test.o: dialog_test.s +##dialog_test.o: dialog_test.s ca65 -o dialog_test.o dialog_test.s -l dialog_test.lst #### @@ -553,6 +557,7 @@ distclean: cd intro && make distclean cd inventory && make distclean cd map && make distclean + cd outer && make distclean cd saves && make distclean cd text && make distclean cd trogdor && make distclean @@ -579,6 +584,7 @@ clean: cd inventory && make clean cd map && make clean cd music && make clean + cd outer && make clean cd saves && make clean cd text && make clean cd title && make clean diff --git a/games/peasant/cliff_heights/cliff_heights.s b/games/peasant/cliff_heights/cliff_heights.s index e889bf78..f43a6954 100644 --- a/games/peasant/cliff_heights/cliff_heights.s +++ b/games/peasant/cliff_heights/cliff_heights.s @@ -13,7 +13,7 @@ .include "../inventory/inventory.inc" .include "../parse_input.inc" .include "../redbook_sound.inc" -.include "../common_locations.inc" +.include "../common_defines.inc" LOCATION_BASE = LOCATION_CLIFF_HEIGHTS ; (21 = $15) @@ -268,61 +268,35 @@ wait_loop: oops_new_location: - ; new location but same file +; lda MAP_LOCATION +; cmp #LOCATION_TROGDOR_OUTER +; bne not_outer - lda MAP_LOCATION - cmp #LOCATION_CLIFF_HEIGHTS - bne not_the_cliff - - lda PREVIOUS_LOCATION - cmp #LOCATION_TROGDOR_OUTER - beq to_cliff_from_outer - -to_cliff_from_cliff: - lda #18 - sta PEASANT_X - lda #140 - sta PEASANT_Y - bne not_the_cliff ; bra - -to_cliff_from_outer: - lda #32 - sta PEASANT_X - lda #120 - sta PEASANT_Y - bne not_the_cliff ; bra - -not_the_cliff: - - lda MAP_LOCATION - cmp #LOCATION_TROGDOR_OUTER - bne not_outer - - lda #2 - sta PEASANT_X - lda #100 - sta PEASANT_Y +; lda #2 +; sta PEASANT_X +; lda #100 +; sta PEASANT_Y not_outer: just_go_there: - jmp new_location +; jmp new_location - ;************************ + ;======================== ; exit level - ;************************ + ;======================== level_over: cmp #NEW_FROM_LOAD ; see if loading save game beq exiting_cliff ; new location - ; in theory this can only be TROGDOR + ; in theory this can only be OUTER - lda #4 + lda #2 sta PEASANT_X - lda #170 + lda #100 sta PEASANT_Y lda #0 diff --git a/games/peasant/docs/NOTES b/games/peasant/docs/NOTES index cbd715fa..2d167f32 100644 --- a/games/peasant/docs/NOTES +++ b/games/peasant/docs/NOTES @@ -1,3 +1,16 @@ +Moving locations around on disk: ++ Make sure LOCATIONS and LOAD are up to date in zp.inc ++ Update end of qload.s ++ edit new_map_location.s + + + + + + + + + Dialog issues: Uncompressed LZSA ZX02 DIALOG_PEASANT1 7394 4002 3804 diff --git a/games/peasant/docs/TODO b/games/peasant/docs/TODO index 8f439bac..a5529269 100644 --- a/games/peasant/docs/TODO +++ b/games/peasant/docs/TODO @@ -1,7 +1,10 @@ current: - finish base (mostly walk_to) + finish cliff_base (mostly walk_to) fix/add sound effects for rocks/lightning - add lightning + finish outer + + maybe have exiting x,y data in new_map_location somehow? + =============================== @@ -219,20 +222,21 @@ Cliff_Base: Cliff Climb ~~~~~~~~~~~ -+ Hook up + Sound effects for rocks falling + Sound effect for falling -+ Message upon hitting ground Cliff Heights ~~~~~~~~~~~~~ -+ Hook up points/message for arriving at cliff -+ Animate lightning -+ Fix the priority/entry points for the various entrances ++ Improve left lightning + +Outer +~~~~~ + Hook up dialog with keepers + Animate keepers + Animate the three deaths + peasant sprites for the various outfits ++ When give items, have them taken out of inventory ++ If don't have item like sub, skip letting them try to give something Trogdor: ~~~~~~~~ diff --git a/games/peasant/new_map_location.s b/games/peasant/new_map_location.s index af6715a6..22365b08 100644 --- a/games/peasant/new_map_location.s +++ b/games/peasant/new_map_location.s @@ -262,7 +262,7 @@ location_to_file: .byte LOAD_CLIFF_BASE ; LOCATION_CLIFF_BASE = 20 .byte LOAD_HEIGHTS ; LOCATION_CLIFF_HEIGHTS= 21 -.byte LOAD_HEIGHTS ; LOCATION_TROGDOR_OUTER= 22 +.byte LOAD_OUTER ; LOCATION_TROGDOR_OUTER= 22 .byte LOAD_TROGDOR ; LOCATION_TROGDOR_LAIR = 23 .byte LOAD_INSIDE ; LOCATION_HIDDEN_GLEN = 24 diff --git a/games/peasant/outer/Makefile b/games/peasant/outer/Makefile index a2b33073..af0f76d8 100644 --- a/games/peasant/outer/Makefile +++ b/games/peasant/outer/Makefile @@ -20,6 +20,7 @@ outer.o: outer.s \ sprites_outer/ron_sprites.inc \ sprites_outer/keeper1_sprites.inc \ sprites_outer/keeper2_sprites.inc \ + sprites_outer/guitar_sprites.inc \ ../sprites_peasant/robe_sprites.zx02 \ ../draw_peasant.s ../move_peasant.s \ ../gr_copy.s ../hgr_copy.s \ diff --git a/games/peasant/outer/outer.s b/games/peasant/outer/outer.s index 5c5ede3c..ebdda440 100644 --- a/games/peasant/outer/outer.s +++ b/games/peasant/outer/outer.s @@ -304,44 +304,38 @@ not_in_quiz: oops_new_location: ; new location but same file + ; actually not possible - lda MAP_LOCATION - cmp #LOCATION_CLIFF_HEIGHTS - bne not_the_cliff - lda PREVIOUS_LOCATION - cmp #LOCATION_TROGDOR_OUTER - beq to_cliff_from_outer +;to_cliff_from_cliff: +; lda #18 +; sta PEASANT_X +; lda #140 +; sta PEASANT_Y +; bne not_the_cliff ; bra -to_cliff_from_cliff: - lda #18 - sta PEASANT_X - lda #140 - sta PEASANT_Y - bne not_the_cliff ; bra +;to_cliff_from_outer: +; lda #32 +; sta PEASANT_X +; lda #120 +; sta PEASANT_Y +; bne not_the_cliff ; bra -to_cliff_from_outer: - lda #32 - sta PEASANT_X - lda #120 - sta PEASANT_Y - bne not_the_cliff ; bra +;not_the_cliff: -not_the_cliff: +; lda MAP_LOCATION +; cmp #LOCATION_TROGDOR_OUTER +; bne not_outer - lda MAP_LOCATION - cmp #LOCATION_TROGDOR_OUTER - bne not_outer - - lda #2 - sta PEASANT_X - lda #100 - sta PEASANT_Y +; lda #2 +; sta PEASANT_X +; lda #100 +; sta PEASANT_Y not_outer: just_go_there: - jmp new_location +; jmp new_location ;======================== @@ -350,20 +344,31 @@ just_go_there: level_over: cmp #NEW_FROM_LOAD ; see if loading save game - beq exiting_cliff + beq exiting_outer ; new location - ; in theory this can only be TROGDOR + + lda MAP_LOCATION + cmp #LOCATION_CLIFF_HEIGHTS + bne not_cliff +was_cliff: + lda #32 + sta PEASANT_X + lda #120 + bne done_outer_pos ; bra +not_cliff: + ; trogdor lda #4 sta PEASANT_X lda #170 +done_outer_pos: sta PEASANT_Y lda #0 sta PEASANT_XADD sta PEASANT_YADD -exiting_cliff: +exiting_outer: rts @@ -422,7 +427,8 @@ robe_sprite_data: .include "sprites_outer/keeper1_sprites.inc" .include "sprites_outer/ron_sprites.inc" -;.include "sprites_outer/keeper2_sprites.inc" +.include "sprites_outer/keeper2_sprites.inc" +.include "sprites_outer/guitar_sprites.inc" ;========================================== diff --git a/games/peasant/outer/sprites_outer/Makefile b/games/peasant/outer/sprites_outer/Makefile index 25f0c051..e9dd5da3 100644 --- a/games/peasant/outer/sprites_outer/Makefile +++ b/games/peasant/outer/sprites_outer/Makefile @@ -2,7 +2,7 @@ HGR_SPRITE = ../../../../utils/hgr-utils/hgr_make_sprite all: keeper1_sprites.inc ron_sprites.inc \ - keeper2_sprites.inc + keeper2_sprites.inc guitar_sprites.inc keeper1_sprites.inc: keeper1_sprites.png $(HGR_SPRITE) -l keeper_r0 keeper1_sprites.png 14 128 27 156 > keeper1_sprites.inc @@ -36,16 +36,16 @@ ron_sprites.inc: keeper1_sprites.png keeper2_sprites.inc: keeper2_sprites.png - $(HGR_SPRITE) -l keeper_l0 keeper2_sprites.png 14 128 27 156 > keeper2_sprites.inc - $(HGR_SPRITE) -l keeper_l1 keeper2_sprites.png 42 128 55 156 >> keeper2_sprites.inc + $(HGR_SPRITE) -l keeper_l0 keeper2_sprites.png 14 128 34 156 > keeper2_sprites.inc + $(HGR_SPRITE) -l keeper_l1 keeper2_sprites.png 42 128 62 156 >> keeper2_sprites.inc $(HGR_SPRITE) -l keeper_l2 keeper2_sprites.png 70 128 90 156 >> keeper2_sprites.inc $(HGR_SPRITE) -l keeper_l3 keeper2_sprites.png 98 128 118 156 >> keeper2_sprites.inc $(HGR_SPRITE) -l keeper_l4 keeper2_sprites.png 126 128 146 156 >> keeper2_sprites.inc $(HGR_SPRITE) -l keeper_l5 keeper2_sprites.png 154 128 174 156 >> keeper2_sprites.inc $(HGR_SPRITE) -l keeper_l6 keeper2_sprites.png 182 128 202 156 >> keeper2_sprites.inc $(HGR_SPRITE) -l keeper_l7 keeper2_sprites.png 210 128 230 156 >> keeper2_sprites.inc - $(HGR_SPRITE) -l keeper_l0_mask keeper2_sprites.png 14 159 27 187 >> keeper2_sprites.inc - $(HGR_SPRITE) -l keeper_l1_mask keeper2_sprites.png 42 159 55 187 >> keeper2_sprites.inc + $(HGR_SPRITE) -l keeper_l0_mask keeper2_sprites.png 14 159 34 187 >> keeper2_sprites.inc + $(HGR_SPRITE) -l keeper_l1_mask keeper2_sprites.png 42 159 62 187 >> keeper2_sprites.inc $(HGR_SPRITE) -l keeper_l2_mask keeper2_sprites.png 70 159 90 187 >> keeper2_sprites.inc $(HGR_SPRITE) -l keeper_l3_mask keeper2_sprites.png 98 159 118 187 >> keeper2_sprites.inc $(HGR_SPRITE) -l keeper_l4_mask keeper2_sprites.png 126 159 146 187 >> keeper2_sprites.inc @@ -53,7 +53,28 @@ keeper2_sprites.inc: keeper2_sprites.png $(HGR_SPRITE) -l keeper_l6_mask keeper2_sprites.png 182 159 202 187 >> keeper2_sprites.inc $(HGR_SPRITE) -l keeper_l7_mask keeper2_sprites.png 210 159 230 187 >> keeper2_sprites.inc +guitar_sprites.inc: guitar_sprites.png + $(HGR_SPRITE) -l guitar0 guitar_sprites.png 14 128 27 158 > guitar_sprites.inc + $(HGR_SPRITE) -l guitar1 guitar_sprites.png 56 128 68 158 >> guitar_sprites.inc + $(HGR_SPRITE) -l guitar2 guitar_sprites.png 98 128 118 158 >> guitar_sprites.inc + $(HGR_SPRITE) -l guitar3 guitar_sprites.png 140 128 167 158 >> guitar_sprites.inc + $(HGR_SPRITE) -l guitar4 guitar_sprites.png 140 32 167 62 >> guitar_sprites.inc + $(HGR_SPRITE) -l guitar5 guitar_sprites.png 14 32 41 62 >> guitar_sprites.inc + $(HGR_SPRITE) -l guitar6 guitar_sprites.png 56 32 83 62 >> guitar_sprites.inc + $(HGR_SPRITE) -l guitar7 guitar_sprites.png 98 32 125 62 >> guitar_sprites.inc + $(HGR_SPRITE) -l guitar0_mask guitar_sprites.png 14 159 27 189 >> guitar_sprites.inc + $(HGR_SPRITE) -l guitar1_mask guitar_sprites.png 56 159 68 189 >> guitar_sprites.inc + $(HGR_SPRITE) -l guitar2_mask guitar_sprites.png 98 159 118 189 >> guitar_sprites.inc + $(HGR_SPRITE) -l guitar3_mask guitar_sprites.png 140 159 167 189 >> guitar_sprites.inc + $(HGR_SPRITE) -l guitar4_mask guitar_sprites.png 140 63 167 92 >> guitar_sprites.inc + $(HGR_SPRITE) -l guitar5_mask guitar_sprites.png 14 63 41 92 >> guitar_sprites.inc + $(HGR_SPRITE) -l guitar6_mask guitar_sprites.png 56 63 83 92 >> guitar_sprites.inc + $(HGR_SPRITE) -l guitar7_mask guitar_sprites.png 98 63 125 92 >> guitar_sprites.inc + + + + clean: rm -f *~ \ keeper1_sprites.inc ron_sprites.inc \ - keeper2_sprites.inc + keeper2_sprites.inc guitar_sprites.inc diff --git a/games/peasant/outer/sprites_outer/guitar_sprites.png b/games/peasant/outer/sprites_outer/guitar_sprites.png index 4883d06fa73dac2d5a6c3b8eb9565dab31964a7f..96983e252ab7cccfe0ed3e0a8f559bfa0ce4aa52 100644 GIT binary patch delta 8556 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 diff --git a/games/peasant/qload.s b/games/peasant/qload.s index e9095759..6b8ea92c 100644 --- a/games/peasant/qload.s +++ b/games/peasant/qload.s @@ -29,10 +29,10 @@ qload_start: which_disk_array: .byte 1,1,1,1 ; VID_LOGO, TITLE, INTRO. COPY_CHECK .byte 2,2,2,2 ; PEASANT1, PEASANT2, PEASANT3, PEASANT4 - .byte 3,3,1,3 ; TROGDOR, ENDING, MUSIC, CLIFF_BASE + .byte 4,4,1,4 ; TROGDOR, ENDING, MUSIC, CLIFF_BASE .byte 1,1,1,3 ; GAME_OVER, INVENTORY, PARSE_INPUT, INN - .byte 3,3,3,3 ; INSIDE, ARCHERY, MAP, CLIMB - .byte 3 ; HEIGHTS + .byte 3,3,3,4 ; INSIDE, ARCHERY, MAP, CLIMB + .byte 4,4 ; HEIGHTS, OUTER .byte 1,1,1 ; SAVE_DATA, ?, ? .byte $f ; disk detect @@ -43,7 +43,7 @@ load_address_array: .byte $60,$60,$D0,$60 ; TROGDOR, ENDING, MUSIC, CLIFF .byte $60,$D0,$20,$60 ; GAME_OVER, INVENTORY, PARSE_INPUT, INN .byte $60,$60,$60,$60 ; INSIDE, ARCHERY, MAP, CLIMB - .byte $60 ; HEIGHTS + .byte $60,$60 ; HEIGHTS, OUTER .byte $BC,$BC,$BC ; SAVE_DATA,? , ? .byte $BC ; disk detect @@ -51,10 +51,10 @@ load_address_array: track_array: .byte 4, 6, 9,1 ; VID_LOGO, TITLE, INTRO, COPY_CHECK .byte 15,20,25,30 ; PEASANT1, PEASANT2, PEASANT3, PEASANT4 - .byte 15,19, 3,24 ; TROGDOR, ENDING, MUSIC, CLIFF_BASE + .byte 15,19, 3, 1 ; TROGDOR, ENDING, MUSIC, CLIFF_BASE .byte 15,14,13,11 ; GAME_OVER, INVENTORY, PARSE_INPUT, INN - .byte 7,3,1,26 ; INSIDE, ARCHERY, MAP, CLIMB - .byte 30 ; HEIGHTS + .byte 7,3,1,3 ; INSIDE, ARCHERY, MAP, CLIMB + .byte 7,11 ; HEIGHTS, OUTER .byte 0, 0, 0 ; SAVE_DATA, ?, ? .byte 0 ; disk detect @@ -65,7 +65,7 @@ sector_array: .byte 0, 0, 0, 0 ; TROGDOR, ENDING, MUSIC, CLIFF_BASE .byte 0, 0, 0, 0 ; GAME_OVER, INVENTORY, PARSE_INPUT, INN .byte 0, 0, 0, 0 ; INSIDE, ARCHERY, MAP, CLIMB - .byte 0 ; HEIGHTS + .byte 0, 0 ; HEIGHTS, OUTER .byte 12,0,0 ; SAVE_DATA, ?, ? .byte 0 ; disk detect @@ -76,7 +76,7 @@ length_array: .byte 64, 80, 16, 32 ; TROGDOR, ENDING, MUSIC, CLIFF_BASE .byte 16, 16, 16, 64 ; GAME_OVER, INVENTORY, PARSE_INPUT, INN .byte 64, 64, 32, 64 ; INSIDE, ARCHERY, MAP, CLIMB - .byte 64 ; HEIGHTS + .byte 64, 64 ; HEIGHTS, OUTER .byte 1,1,1 ; SAVE_DATA, ? , ? .byte 1 ; disk detect diff --git a/games/peasant/zp.inc b/games/peasant/zp.inc index 5020b354..899e8bca 100644 --- a/games/peasant/zp.inc +++ b/games/peasant/zp.inc @@ -349,10 +349,11 @@ LOAD_ARCHERY = 17 LOAD_MAP = 18 LOAD_CLIMB = 19 LOAD_HEIGHTS = 20 +LOAD_OUTER = 21 -LOAD_SAVE1 = 21 -LOAD_SAVE2 = 22 -LOAD_SAVE3 = 23 +LOAD_SAVE1 = 22 +LOAD_SAVE2 = 23 +LOAD_SAVE3 = 24 VGI_RCOLOR = P0