diff --git a/ootw/TODO b/ootw/TODO index 867ae7ea..7ed143b5 100644 --- a/ootw/TODO +++ b/ootw/TODO @@ -1,4 +1,10 @@ BEHAVIOR DIFFERENCES: + +alien guard behavior: + + will punch you if you get too close + + l4, if you draw gun (but not fire) guard won't shoot you, + but instead will yell at you a bit + + L1 - underwater there is a water-motion effect - bubble motion is fancier in real thing diff --git a/ootw/door.s b/ootw/door.s index 1b331f16..ec0404f0 100644 --- a/ootw/door.s +++ b/ootw/door.s @@ -1,20 +1,13 @@ -DOOR_STATUS = 0 - DOOR_STATUS_OPEN = $01 - DOOR_STATUS_OPENING = $02 - DOOR_STATUS_CLOSING = $04 - DOOR_STATUS_CLOSED = $08 - DOOR_STATUS_EXPLODED = $10 - DOOR_STATUS_LOCKED = $20 - DOOR_STATUS_EXPLODING = $40 - - -door_state0: - .byte $0 ; status - .byte $0 ; explode_dir - .byte $0 ; left_trigger - .byte $0 ; right_trigger - .byte $0 ; step +DOOR_STATUS_OPEN = $00 +DOOR_STATUS_OPENING1 = $01 +DOOR_STATUS_OPENING2 = $02 +DOOR_STATUS_CLOSING1 = $03 +DOOR_STATUS_CLOSING2 = $04 +DOOR_STATUS_CLOSED = $05 +DOOR_STATUS_EXPLODED = $06 +DOOR_STATUS_LOCKED = $07 +DOOR_STATUS_EXPLODING = $08 ;================================== @@ -28,15 +21,15 @@ draw_doors: ldx #0 draw_doors_loop: - lda #door_closed_sprite + lda door_sprite_lookup_hi,Y sta INH - jmp actually_draw_door - - -door_not_closed: - actually_draw_door: lda door_x,X @@ -54,7 +47,7 @@ actually_draw_door: draw_doors_continue: inx - cmp NUM_DOORS + cpx NUM_DOORS bne draw_doors_loop done_draw_doors: @@ -89,6 +82,31 @@ handle_doors: ;====================================== ;====================================== + +door_sprite_lookup_lo: + .byte door_open_sprite ; DOOR_STATUS_OPEN + .byte >door_opening_sprite1 ; DOOR_STATUS_OPENING1 + .byte >door_opening_sprite2 ; DOOR_STATUS_OPENING2 + .byte >door_closing_sprite1 ; DOOR_STATUS_CLOSING1 + .byte >door_closing_sprite2 ; DOOR_STATUS_CLOSING2 + .byte >door_closed_sprite ; DOOR_STATUS_CLOSED + .byte >door_exploded_sprite ; DOOR_STATUS_EXPLODED + .byte >door_closed_sprite ; DOOR_STATUS_LOCKED + .byte >door_exploding_sprite1 ; DOOR_STATUS_EXPLODING + + door_closed_sprite: .byte 1,10 .byte $00 @@ -115,7 +133,7 @@ door_open_sprite: .byte $AA .byte $AA -door_opening_sprite: +door_opening_sprite2: door_closing_sprite1: .byte 1,10 .byte $00 @@ -129,6 +147,7 @@ door_closing_sprite1: .byte $0A .byte $00 +door_opening_sprite1: door_closing_sprite2: .byte 1,10 .byte $00 @@ -155,3 +174,16 @@ door_exploded_sprite: .byte $AA .byte $AA .byte $A5 + +door_exploding_sprite1: + .byte 1,10 + .byte $00 + .byte $A5 + .byte $AA + .byte $AA + .byte $AA + .byte $AA + .byte $AA + .byte $AA + .byte $AA + .byte $A5 diff --git a/ootw/ootw_c4_city.s b/ootw/ootw_c4_city.s index 9a6874d9..3005b006 100644 --- a/ootw/ootw_c4_city.s +++ b/ootw/ootw_c4_city.s @@ -1038,5 +1038,10 @@ door_y: c4_r0_door3_y: .byte 24 c4_r0_door4_y: .byte 24 - +door_status: + c4_r0_door0_status: .byte DOOR_STATUS_OPEN + c4_r0_door1_status: .byte DOOR_STATUS_CLOSED + c4_r0_door2_status: .byte DOOR_STATUS_EXPLODED + c4_r0_door3_status: .byte DOOR_STATUS_OPENING1 + c4_r0_door4_status: .byte DOOR_STATUS_OPENING2