diff --git a/ootw/ootw_c2_cage.s b/ootw/ootw_c2_cage.s index 56e3874a..406accf4 100644 --- a/ootw/ootw_c2_cage.s +++ b/ootw/ootw_c2_cage.s @@ -799,7 +799,7 @@ ce_jump: ce_stand_right: - lda #27 + lda #29 sta XPOS lda #30 sta YPOS @@ -810,7 +810,7 @@ ce_stand_right: ce_stand_left: - lda #27 + lda #29 sta XPOS lda #30 sta YPOS @@ -831,20 +831,6 @@ ce_draw_physicist_right: ce_done_physicist: - ;============ - ; draw friend - ;============ - ; frame 10 crouching - ; frame 34 getting up one step? - ; frame 38 all stood up - ; frame 60 turns - ; frame 62 standing left - ; frame 74 turns - ; frame 76 standing right - ; frame 90-100 taps - ; frame 116 points, my tuba - - ;=========== ; draw cage ;=========== @@ -893,6 +879,101 @@ done_cage_endcage: ;================ ; FIXME + + ;============ + ; draw friend + ;============ + ; frame 10 crouching + ; frame 34 getting up one step? + ; frame 38 all stood up (right) + ; frame 60 turns + ; frame 62 standing left + ; frame 74 turns + ; frame 76 standing right + ; frame 90-100 taps + ; frame 116 points, my tuba + + lda #25 + sta XPOS + lda #30 + sta YPOS + + lda FRAMEL + cmp #10 + bcc ce_done_friend ; blt + + cmp #76 + bcs ce_friend_stand_right ; bge + + cmp #74 + bcs ce_friend_turn ; bge + + cmp #62 + bcs ce_friend_stand_left ; bge + + cmp #60 + bcs ce_friend_turn ; bge + + cmp #38 + bcs ce_friend_stand_right ; bge + + cmp #34 + bcs ce_friend_half_stand_cage ; bge + + + +ce_friend_crouch_cage: + + ldx #friend_crouch2 + jmp ce_draw_friend_right + +ce_friend_half_stand_cage: + + ldx #friend_crouch1 + jmp ce_draw_friend_right + +ce_friend_stand_cage: + + ldx #friend_turning_sprite + jmp ce_draw_friend_right + +ce_friend_turn: + + ldx #friend_stand + jmp ce_draw_friend_right + +ce_friend_stand_right: + + ldx #friend_stand + jmp ce_draw_friend_right + + +ce_friend_stand_left: + + ldx #friend_stand + +ce_draw_friend_left: + stx INL + sty INH + jsr put_sprite_crop + jmp ce_done_friend + +ce_draw_friend_right: + stx INL + sty INH + jsr put_sprite_flipped_crop +ce_done_friend: + + + + + ;========================== ; draw little dude ;========================== @@ -1000,13 +1081,13 @@ done_guard_endcage: ; frame 0 - 9 no draw ; frame 10 -- in air 28,36 ; frame 12 -- lower 28,40 - ; frame 14 -- on ground 28,44 - ; frame 16 -- bounce 28,42 - ; frame 18 -- ground 29,44 - ; frame 20 -- left2 30,44 - ; frame 22 -- left2 31,44 - ; frame 24 -- left1 32,44 - ; frame 26 -- left1 (done) 32,44 + ; frame 14 -- on ground 29,44 + ; frame 16 -- bounce 29,42 + ; frame 18 -- ground 30,44 + ; frame 20 -- left2 31,44 + ; frame 22 -- left2 32,44 + ; frame 24 -- left1 33,44 + ; frame 26 -- left1 (done) 34,44 lda FRAMEL cmp #10 @@ -1027,7 +1108,7 @@ done_guard_endcage: jmp ce_draw_gun ce_default_gun: - lda #32 + lda #34 sta XPOS lda #44 sta YPOS @@ -1099,11 +1180,14 @@ cage_ground_sprite: gun_arc: .byte 28,36 ; frame 10 -- in air 28,36 .byte 28,40 ; frame 12 -- lower 28,40 - .byte 28,44 ; frame 14 -- on ground 28,44 - .byte 28,42 ; frame 16 -- bounce 28,42 - .byte 29,44 ; frame 18 -- ground 29,44 - .byte 30,44 ; frame 20 -- left2 30,44 - .byte 31,44 ; frame 22 -- left2 31,44 - .byte 32,44 ; frame 24 -- left1 32,44 + .byte 29,44 ; frame 14 -- on ground 29,44 + .byte 29,42 ; frame 16 -- bounce 29,42 + .byte 30,44 ; frame 18 -- ground 30,44 + .byte 31,44 ; frame 20 -- left2 31,44 + .byte 32,44 ; frame 22 -- left2 32,44 + .byte 33,44 ; frame 24 -- left1 33,44 + + + diff --git a/ootw/ootw_c2_jail.s b/ootw/ootw_c2_jail.s index 5fe6cc17..ca12ec50 100644 --- a/ootw/ootw_c2_jail.s +++ b/ootw/ootw_c2_jail.s @@ -7,7 +7,6 @@ ootw_jail_init: sta CITY_MOVIE_SEEN sta CART_OUT sta DUDE_OUT - sta friend_direction sta PHYSICIST_STATE sta WHICH_JAIL @@ -15,13 +14,21 @@ ootw_jail_init: sta JAIL_POWER_ON sta GUN_OUT sta friend_out + sta friend_state + sta friend_direction lda #39 sta DUDE_X lda #$FA sta CART_X - lda #27 + lda #25 + sta friend_x + lda #30 + sta friend_y + + + lda #29 sta PHYSICIST_X lda #30 sta PHYSICIST_Y @@ -333,7 +340,7 @@ bg_jail0: lda GUN_OUT beq c2_no_bg_action - lda #32 + lda #34 sta XPOS lda #44 sta YPOS @@ -380,9 +387,17 @@ c2_no_bg_action: ;=============================== ; move physicist + ;=============================== jsr move_physicist + ;=============================== + ; move friend + ;=============================== + + jsr move_friend + + ;=============== ; check room limits @@ -414,6 +429,16 @@ actively_teleporting: c2_done_draw_physicist: + + ;=============== + ; draw friend + + jsr draw_friend + +c2_done_draw_friend: + + + ;======================== ; draw foreground action diff --git a/ootw/ootw_graphics/sprites/sprites_alien.inc b/ootw/ootw_graphics/sprites/sprites_alien.inc index ed69f03e..af147b50 100644 --- a/ootw/ootw_graphics/sprites/sprites_alien.inc +++ b/ootw/ootw_graphics/sprites/sprites_alien.inc @@ -11,14 +11,15 @@ alien_stand: .byte $5,$8 - .byte $aa,$9a,$9a,$aa,$aa - .byte $aa,$bb,$99,$aa,$aa - .byte $aa,$aa,$0b,$aa,$aa - .byte $aa,$aa,$bb,$aa,$aa - .byte $aa,$aa,$bb,$aa,$aa - .byte $aa,$aa,$44,$aa,$aa - .byte $aa,$aa,$44,$aa,$aa - .byte $aa,$fa,$f4,$aa,$aa + .byte $aa,$7a,$f7,$7f,$aa + .byte $aa,$77,$07,$00,$aa + .byte $aa,$aa,$00,$77,$aa + .byte $aa,$aa,$10,$77,$aa + .byte $aa,$aa,$07,$00,$aa + .byte $aa,$aa,$77,$a5,$5a + .byte $aa,$aa,$07,$aa,$05 + .byte $aa,$0a,$00,$0a,$00 + ;===================== diff --git a/ootw/ootw_graphics/sprites/sprites_friend.inc b/ootw/ootw_graphics/sprites/sprites_friend.inc index 4d6fc56d..40562e7b 100644 --- a/ootw/ootw_graphics/sprites/sprites_friend.inc +++ b/ootw/ootw_graphics/sprites/sprites_friend.inc @@ -10,16 +10,15 @@ ; Going Left friend_stand: - .byte $5,$8 - .byte $aa,$9a,$9a,$aa,$aa - .byte $aa,$bb,$99,$aa,$aa - .byte $aa,$aa,$0b,$aa,$aa - .byte $aa,$aa,$bb,$aa,$aa - .byte $aa,$aa,$bb,$aa,$aa - .byte $aa,$aa,$44,$aa,$aa - .byte $aa,$aa,$44,$aa,$aa - .byte $aa,$fa,$f4,$aa,$aa - + .byte $5,$8 + .byte $aa,$fa,$7f,$f7,$aa + .byte $aa,$ff,$0f,$0f,$aa + .byte $aa,$aa,$00,$ff,$aa + .byte $aa,$aa,$00,$ff,$aa + .byte $aa,$aa,$0f,$00,$aa + .byte $aa,$aa,$ff,$a7,$7a + .byte $aa,$aa,$0f,$aa,$07 + .byte $aa,$0a,$00,$0a,$00 ;===================== ;===================== @@ -42,90 +41,90 @@ friend_walk_progression: friend_walk_left1: .byte $5,$8 - .byte $aa,$7a,$f7,$7f,$aa - .byte $aa,$77,$07,$00,$aa - .byte $aa,$5a,$00,$77,$aa - .byte $aa,$55,$10,$77,$aa - .byte $aa,$aa,$00,$07,$aa - .byte $aa,$aa,$77,$a5,$5a - .byte $aa,$aa,$07,$aa,$05 + .byte $aa,$fa,$7f,$f7,$aa + .byte $aa,$ff,$0f,$0f,$aa + .byte $aa,$7a,$00,$ff,$aa + .byte $aa,$77,$00,$ff,$aa + .byte $aa,$aa,$00,$0f,$aa + .byte $aa,$aa,$ff,$a7,$7a + .byte $aa,$aa,$0f,$aa,$07 .byte $aa,$a0,$00,$0a,$00 friend_walk_left2: .byte $5,$8 - .byte $aa,$7a,$f7,$7f,$aa - .byte $aa,$77,$07,$00,$aa - .byte $aa,$aa,$00,$77,$aa - .byte $aa,$5a,$77,$17,$aa - .byte $aa,$aa,$07,$00,$aa - .byte $aa,$aa,$77,$55,$aa - .byte $aa,$aa,$07,$aa,$05 + .byte $aa,$fa,$7f,$f7,$aa + .byte $aa,$ff,$0f,$0f,$aa + .byte $aa,$aa,$00,$ff,$aa + .byte $aa,$7a,$ff,$0f,$aa + .byte $aa,$aa,$0f,$00,$aa + .byte $aa,$aa,$ff,$77,$aa + .byte $aa,$aa,$0f,$aa,$07 .byte $aa,$0a,$00,$00,$a0 friend_walk_left3: .byte $5,$8 - .byte $aa,$7a,$f7,$7f,$aa - .byte $aa,$77,$07,$00,$aa - .byte $aa,$aa,$00,$77,$aa - .byte $aa,$aa,$77,$10,$aa - .byte $aa,$aa,$07,$00,$aa - .byte $aa,$aa,$77,$55,$aa - .byte $aa,$aa,$07,$00,$0a + .byte $aa,$fa,$7f,$f7,$aa + .byte $aa,$ff,$0f,$0f,$aa + .byte $aa,$aa,$00,$ff,$aa + .byte $aa,$aa,$ff,$00,$aa + .byte $aa,$aa,$0f,$00,$aa + .byte $aa,$aa,$ff,$77,$aa + .byte $aa,$aa,$0f,$00,$0a .byte $aa,$0a,$00,$aa,$a0 friend_walk_left4: .byte $5,$8 - .byte $aa,$7a,$f7,$7f,$aa - .byte $aa,$77,$07,$00,$aa - .byte $aa,$aa,$00,$77,$aa - .byte $aa,$aa,$77,$10,$aa - .byte $aa,$a7,$00,$00,$aa - .byte $aa,$aa,$77,$55,$aa - .byte $aa,$aa,$07,$05,$aa + .byte $aa,$fa,$7f,$f7,$aa + .byte $aa,$ff,$0f,$0f,$aa + .byte $aa,$aa,$00,$ff,$aa + .byte $aa,$aa,$ff,$00,$aa + .byte $aa,$af,$00,$00,$aa + .byte $aa,$aa,$ff,$77,$aa + .byte $aa,$aa,$0f,$07,$aa .byte $aa,$0a,$00,$00,$aa friend_walk_left5: .byte $5,$8 - .byte $aa,$7a,$f7,$7f,$aa - .byte $aa,$77,$07,$00,$aa - .byte $aa,$aa,$00,$77,$aa - .byte $aa,$aa,$77,$10,$aa - .byte $aa,$a7,$00,$00,$aa - .byte $aa,$5a,$55,$77,$aa - .byte $aa,$00,$a7,$07,$aa + .byte $aa,$fa,$7f,$f7,$aa + .byte $aa,$ff,$0f,$0f,$aa + .byte $aa,$aa,$00,$ff,$aa + .byte $aa,$aa,$ff,$00,$aa + .byte $aa,$af,$00,$00,$aa + .byte $aa,$7a,$77,$ff,$aa + .byte $aa,$00,$af,$0f,$aa .byte $a0,$a0,$0a,$00,$aa friend_walk_left6: .byte $5,$8 - .byte $aa,$7a,$f7,$7f,$aa - .byte $aa,$77,$07,$00,$aa - .byte $aa,$aa,$00,$77,$aa - .byte $aa,$aa,$77,$17,$5a - .byte $aa,$aa,$07,$00,$a5 - .byte $aa,$5a,$55,$77,$7a - .byte $aa,$05,$aa,$aa,$07 + .byte $aa,$fa,$7f,$f7,$aa + .byte $aa,$ff,$0f,$0f,$aa + .byte $aa,$aa,$00,$ff,$aa + .byte $aa,$aa,$ff,$0f,$7a + .byte $aa,$aa,$0f,$00,$a7 + .byte $aa,$7a,$77,$ff,$fa + .byte $aa,$07,$aa,$aa,$0f .byte $a0,$a0,$aa,$0a,$00 friend_walk_left7: .byte $5,$8 - .byte $aa,$7a,$f7,$7f,$aa - .byte $aa,$77,$07,$00,$aa - .byte $aa,$aa,$00,$77,$aa - .byte $aa,$aa,$10,$77,$aa - .byte $aa,$aa,$00,$07,$aa - .byte $aa,$aa,$57,$77,$aa - .byte $aa,$aa,$05,$a7,$07 + .byte $aa,$fa,$7f,$f7,$aa + .byte $aa,$ff,$0f,$0f,$aa + .byte $aa,$aa,$00,$ff,$aa + .byte $aa,$aa,$00,$ff,$aa + .byte $aa,$aa,$00,$0f,$aa + .byte $aa,$aa,$7f,$ff,$aa + .byte $aa,$aa,$07,$af,$0f .byte $aa,$0a,$00,$00,$a0 friend_walk_left8: .byte $5,$8 - .byte $aa,$7a,$f7,$7f,$aa - .byte $aa,$77,$07,$00,$aa - .byte $aa,$aa,$00,$77,$aa - .byte $aa,$5a,$10,$77,$7a - .byte $aa,$a5,$00,$00,$a7 - .byte $aa,$aa,$55,$77,$aa - .byte $aa,$aa,$a5,$07,$aa + .byte $aa,$fa,$7f,$f7,$aa + .byte $aa,$ff,$0f,$0f,$aa + .byte $aa,$aa,$00,$ff,$aa + .byte $aa,$7a,$00,$ff,$fa + .byte $aa,$a7,$00,$00,$af + .byte $aa,$aa,$77,$ff,$aa + .byte $aa,$aa,$a7,$0f,$aa .byte $aa,$aa,$00,$00,$aa