diff --git a/ootw/ootw_c1_cavern.s b/ootw/ootw_c1_cavern.s index e1f21451..25a50c40 100644 --- a/ootw/ootw_c1_cavern.s +++ b/ootw/ootw_c1_cavern.s @@ -19,9 +19,9 @@ ootw_cavern: ;====================== ; setup room boundaries - lda #(0+128) + lda #(-4+128) sta LEFT_LIMIT - lda #(38+128) + lda #(39+128) sta RIGHT_LIMIT ;============================= diff --git a/ootw/ootw_c1_mesa.s b/ootw/ootw_c1_mesa.s index d4dd33ef..9716aaa8 100644 --- a/ootw/ootw_c1_mesa.s +++ b/ootw/ootw_c1_mesa.s @@ -33,7 +33,7 @@ beast_not_out_yet: sta RIGHT_LIMIT mesa_left: - lda #(128-3) + lda #(128-4) sta LEFT_LIMIT ;============================= @@ -202,6 +202,47 @@ level1_ending: mesa_frame_no_oflo: + ;======================================== + ;======================================== + ; check if triggering beast + ;======================================== + ;======================================== + lda BEAST_OUT + bne mesa_done_check_beast + + lda PHYSICIST_X + cmp #19 + bne mesa_done_check_beast ; blt + +trigger_beast: + ;======================= + ; trigger beast emerging + lda #1 + sta BEAST_OUT + + lda #0 + sta BEAST_DIRECTION + sta BEAST_GAIT + sta BEAST_STATE ; B_STANDING + sta GAME_OVER + sta PHYSICIST_STATE ; stop in tracks + + lda #50 + sta BEAST_COUNT + + lda #30 + sta BEAST_X + + lda #(39+128) ; update right side of screen + sta RIGHT_LIMIT ; this is mostly for testing + + jsr beast_cutscene + + jmp not_done_mesa + + +mesa_done_check_beast: + ;======================================== ;======================================== ; check if at edge of screen or game over @@ -225,11 +266,6 @@ mesa_check_right: ;===================== ; off screen to right - - lda BEAST_OUT ; if beast out trigger end - beq trigger_beast ; otherwise trigger beast - - ;===================== ; trigger ending lda #MAX_PROGRESSION @@ -243,32 +279,7 @@ mesa_check_right: jmp not_done_mesa -trigger_beast: - ;======================= - ; trigger beast emerging - lda #1 - sta BEAST_OUT - lda #0 - sta BEAST_DIRECTION - sta BEAST_GAIT - sta BEAST_STATE ; B_STANDING - sta GAME_OVER - sta PHYSICIST_STATE ; stop in tracks - - lda #50 - sta BEAST_COUNT - - lda #30 - sta BEAST_X - - - lda #(39+128) ; update right side of screen - sta RIGHT_LIMIT ; this is mostly for testing - - jsr beast_cutscene - - jmp not_done_mesa mesa_check_left: cmp #$1 diff --git a/ootw/ootw_c1_pool.s b/ootw/ootw_c1_pool.s index 4250f3af..b7a34ddc 100644 --- a/ootw/ootw_c1_pool.s +++ b/ootw/ootw_c1_pool.s @@ -1,14 +1,14 @@ ; Ootw Pool Party ootw_pool: - ;=========================== + ;================ ; Enable graphics bit LORES bit SET_GR bit FULLGR - ;============= + ;=================== ; disable earthquake lda #0 @@ -25,9 +25,9 @@ ootw_pool: ;=========================== ; Setup right/left exit paramaters - lda #(40+128) + lda #(39+128) sta RIGHT_LIMIT - lda #(-5+128) + lda #(-4+128) sta LEFT_LIMIT ;============================= diff --git a/ootw/ootw_c1_rope.s b/ootw/ootw_c1_rope.s index 4f862447..3f305b58 100644 --- a/ootw/ootw_c1_rope.s +++ b/ootw/ootw_c1_rope.s @@ -253,6 +253,36 @@ hes_swinging: rope_frame_no_oflo: + + ;=================== + ; check cliff's edge + + lda PHYSICIST_X + cmp #11 + bcs already_swung + + lda BEFORE_SWING + beq already_swung + + lda #0 + sta BEFORE_SWING + + ; FIXME: check for jump + + lda #80 + sta SWING_PROGRESS + + lda #11 + sta PHYSICIST_X + + lda #P_SWINGING + sta PHYSICIST_STATE + + jmp not_done_rope + +already_swung: + + ;========================= ; check if done this room ;========================= @@ -283,24 +313,6 @@ check_cliff_edge: lda #0 sta GAME_OVER - ;=================== - ; at cliff's edge - - lda #0 - sta BEFORE_SWING - - ; FIXME: check for jump - - lda #80 - sta SWING_PROGRESS - - lda #11 - sta PHYSICIST_X - - lda #P_SWINGING - sta PHYSICIST_STATE - - jmp not_done_rope check_swung_off: cmp #$5