diff --git a/games/peasant/cliff.s b/games/peasant/cliff.s index 4fb3e7e4..40dea7c9 100644 --- a/games/peasant/cliff.s +++ b/games/peasant/cliff.s @@ -124,12 +124,11 @@ new_location: ;===================== ; move peasant - ; FIXME: don't do this if loading game - lda #20 - sta PEASANT_X - lda #150 - sta PEASANT_Y +; lda #20 +; sta PEASANT_X +; lda #150 +; sta PEASANT_Y ;==================== ; save background @@ -156,7 +155,7 @@ game_loop: lda LEVEL_OVER bmi oops_new_location - bne game_over + bne level_over ; delay @@ -168,13 +167,54 @@ game_loop: jmp game_loop oops_new_location: + + ; new location but same file + + 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 + +not_outer: +just_go_there: + jmp new_location ;************************ ; exit level ;************************ -game_over: +level_over: + + ; new location, different file rts diff --git a/games/peasant/graphics_cliff/Makefile b/games/peasant/graphics_cliff/Makefile index 67727374..6c5a341e 100644 --- a/games/peasant/graphics_cliff/Makefile +++ b/games/peasant/graphics_cliff/Makefile @@ -45,21 +45,21 @@ outer.hgr: outer.png ### priority_cliff.inc: \ - todo_priority.lzsa \ + outer_priority.lzsa \ cliff_base_priority.lzsa \ cliff_heights_priority.lzsa echo "cliff_base_priority_lzsa: .incbin \"cliff_base_priority.lzsa\"" > priority_cliff.inc echo "cliff_heights_priority_lzsa: .incbin \"cliff_heights_priority.lzsa\"" >> priority_cliff.inc - echo "outer_priority_lzsa: .incbin \"todo_priority.lzsa\"" >> priority_cliff.inc + echo "outer_priority_lzsa: .incbin \"outer_priority.lzsa\"" >> priority_cliff.inc #### -todo_priority.lzsa: todo_priority.gr - $(LZSA) -r -f2 todo_priority.gr todo_priority.lzsa +outer_priority.lzsa: outer_priority.gr + $(LZSA) -r -f2 outer_priority.gr outer_priority.lzsa -todo_priority.gr: todo_priority.png - $(PNG2GR) todo_priority.png todo_priority.gr +outer_priority.gr: outer_priority.png + $(PNG2GR) outer_priority.png outer_priority.gr #### diff --git a/games/peasant/graphics_cliff/outer_priority.png b/games/peasant/graphics_cliff/outer_priority.png new file mode 100644 index 00000000..43a6c3e8 Binary files /dev/null and b/games/peasant/graphics_cliff/outer_priority.png differ diff --git a/games/peasant/graphics_cliff/todo_priority.png b/games/peasant/graphics_cliff/todo_priority.png deleted file mode 100644 index a2c6dff9..00000000 Binary files a/games/peasant/graphics_cliff/todo_priority.png and /dev/null differ diff --git a/games/peasant/new_map_location.s b/games/peasant/new_map_location.s index 80768851..bed146d1 100644 --- a/games/peasant/new_map_location.s +++ b/games/peasant/new_map_location.s @@ -207,7 +207,7 @@ exits_west: .byte LOCATION_EMPTY ; LOCATION_CLIFF_BASE = 20 .byte LOCATION_EMPTY ; LOCATION_CLIFF_HEIGHTS= 21 -.byte LOCATION_EMPTY ; LOCATION_TROGDOR_OUTER= 22 +.byte LOCATION_CLIFF_HEIGHTS ; LOCATION_TROGDOR_OUTER= 22 .byte LOCATION_EMPTY ; LOCATION_TROGDOR_LAIR = 23 .byte LOCATION_EMPTY ; LOCATION_HIDDEN_GLEN = 24 diff --git a/games/peasant/peasant2.s b/games/peasant/peasant2.s index 6ca2728c..d692a40b 100644 --- a/games/peasant/peasant2.s +++ b/games/peasant/peasant2.s @@ -316,30 +316,51 @@ oops_new_location: ; exit level ;======================== level_over: + + ; specical case if going outside inn + ; we don't want to end up behind inn + lda MAP_LOCATION cmp #LOCATION_OUTSIDE_INN - bne really_level_over + bne not_behind_inn ; be sure we're in range lda PEASANT_X cmp #6 - bcc really_level_over ; fine + bcc really_level_over ; fine if at far right cmp #18 - bcc to_left + bcc to_left_of_inn cmp #30 - bcc to_right + bcc to_right_of_inn + ; fine if at far left + +not_behind_inn: + lda MAP_LOCATION + cmp #LOCATION_CLIFF_BASE + bne not_going_to_cliff + + lda #18 + sta PEASANT_X + lda #140 + sta PEASANT_Y + lda #0 + sta PEASANT_XADD + sta PEASANT_YADD + sta PEASANT_DIR + +not_going_to_cliff: really_level_over: rts -to_right: +to_right_of_inn: lda #31 sta PEASANT_X rts -to_left: +to_left_of_inn: lda #5 sta PEASANT_X rts diff --git a/games/peasant/text/cliff.inc b/games/peasant/text/cliff.inc index a00686a5..78d95f68 100644 --- a/games/peasant/text/cliff.inc +++ b/games/peasant/text/cliff.inc @@ -12,7 +12,6 @@ cliff_base_look_message: .byte "falling down the minute you",13 .byte "try to climb it.",0 -; +3 POINTS (maybe at the top?) ; + climb (walks to center of cliff) cliff_base_climb_message: .byte "With a new determination",13 @@ -47,6 +46,8 @@ cliff_base_climb2_message: ;=================== ; arrive +; +3 POINTS (maybe at the top?) + .byte "Nice jorb climbing the",13 .byte "cliff. You have a real way",13 .byte "with those arrow keys.",0 @@ -92,6 +93,9 @@ cliff_heights_get_bone_message: ; Trogdor's Outer Sanctum / Outer Cave ;====================================== +; note: if you don't have the item, it doesn't give +; you an option and launches directly into the quiz + ; +5 POINTS (give sub or answer question) ; +5 POINTS (give soda or answer question) ; +5 POINTS (give pills or answer question)