From aba8e609fc18cfbf517d4d1199b5a3e02ff19542 Mon Sep 17 00:00:00 2001 From: Vince Weaver Date: Fri, 16 Aug 2019 16:32:59 -0400 Subject: [PATCH] ootw: add crouch kicking, start hooking up more doors l2 --- ootw/Makefile | 1 + ootw/TODO | 9 +- ootw/keyboard.s | 11 +- ootw/ootw_c2_jail.s | 150 ++++++++++++++++----- ootw/ootw_c5_cave.s | 36 ----- ootw/ootw_graphics/l2jail/Makefile | 2 +- ootw/ootw_graphics/l2jail/ootw_c2_jail.inc | 128 ++++++++---------- ootw/ootw_graphics/sprites/physicist.inc | 18 +-- ootw/physicist.s | 9 ++ 9 files changed, 208 insertions(+), 156 deletions(-) diff --git a/ootw/Makefile b/ootw/Makefile index 2b55df18..36d573ae 100644 --- a/ootw/Makefile +++ b/ootw/Makefile @@ -70,6 +70,7 @@ ootw_c2.o: ootw_c2.s \ ootw_graphics/sprites/friend.inc \ ootw_c2_cage.s ootw_c2_jail.s ootw_c2_elevator.s ootw_c2_intro.s \ ootw_graphics/l2cage/ootw_c2_cage.inc \ + ootw_graphics/l2jail/ootw_c2_jail.inc \ ootw_graphics/l2intro/ootw_l2intro.inc \ ootw_graphics/l2laser/ootw_c2_laser.inc ca65 -o ootw_c2.o ootw_c2.s -l ootw_c2.lst diff --git a/ootw/TODO b/ootw/TODO index ba86e8ca..b8cbdf74 100644 --- a/ootw/TODO +++ b/ootw/TODO @@ -5,6 +5,11 @@ Before release: add detection of friend properly handle when multiple collision objects on screen at once + + door explosions should be cropped + + after teleport, re-run room boundary calcs + when calculating room calcs, take Y position into account L1 -- fix run/jumping L1 -- fix beast ending @@ -16,10 +21,6 @@ Before release: L2 -- add minimal friend AI L2 -- add way to leave L2 to L3 - L4 -- genericze doors - L4 -- blow up door to exit to L5 - L4 -- allow crouching w gun, up to exit crouch - L5 -- add ending scenes? intro -- add music? diff --git a/ootw/keyboard.s b/ootw/keyboard.s index c7e0ca2c..13cb3b50 100644 --- a/ootw/keyboard.s +++ b/ootw/keyboard.s @@ -337,7 +337,7 @@ check_space: jmp unknown ;====================== - ; Kick or shoot + ; SPACE -- Kick or shoot ;====================== space: lda HAVE_GUN @@ -371,7 +371,16 @@ stand_stance: jmp change_state_clear_gait kick: + lda PHYSICIST_STATE + cmp #P_CROUCHING + bne kick_standing + + lda #P_CROUCH_KICKING + jmp kick_final + +kick_standing: lda #P_KICKING +kick_final: sta PHYSICIST_STATE lda #15 sta GAIT diff --git a/ootw/ootw_c2_jail.s b/ootw/ootw_c2_jail.s index e0956fb6..99f23e94 100644 --- a/ootw/ootw_c2_jail.s +++ b/ootw/ootw_c2_jail.s @@ -18,7 +18,6 @@ ootw_jail_init: sta CHARGER_COUNT sta GUN_STATE sta GUN_FIRE - sta NUM_DOORS lda #100 sta GUN_CHARGE @@ -58,7 +57,7 @@ ootw_jail_init: lda #6 sta alien0_room - lda #26 + lda #20 sta alien0_x lda #20 @@ -72,6 +71,16 @@ ootw_jail_init: rts +; Map +; +; DD +; || +; R0=R1=R2=R3=E1 +; || +; R5=R4=E2 +; || +; R6=E3 + ;=========================== ; enter new room in jail @@ -85,6 +94,7 @@ ootw_jail: lda #0 sta ON_ELEVATOR sta TELEPORTING + sta NUM_DOORS ;============================ ; init shields @@ -103,6 +113,9 @@ ootw_jail: lda WHICH_JAIL bne jail1 + ;=================== + ; initial room + jail0: lda #(24+128) sta LEFT_LIMIT @@ -127,6 +140,8 @@ jail0: jmp jail_setup_done + ;=================== + ; first cellblock jail1: cmp #1 bne jail2 @@ -154,6 +169,8 @@ jail1: jmp jail_setup_done + ;=================== + ; second cellblock jail2: cmp #2 bne jail3 @@ -178,10 +195,21 @@ jail2: jmp jail_setup_done + ;=================== + ; room with doors jail3: cmp #3 bne jail4 + lda #3 + sta NUM_DOORS + + lda #door_c2_r3 + sta setup_door_table_loop_smc+2 + jsr setup_door_table + lda #(-4+128) sta LEFT_LIMIT lda #(39+128) @@ -205,10 +233,24 @@ jail3: jmp jail_setup_done + + ;=================== + ; multi-level room jail4: cmp #4 bne jail5 + lda #door_c2_r4 + sta setup_door_table_loop_smc+2 + jsr setup_door_table + + lda #4 + sta NUM_DOORS + + + lda PHYSICIST_Y cmp #30 ; see if coming in on bottom bne jail4_top @@ -468,6 +510,13 @@ actively_teleporting: jsr put_sprite_crop dec TELEPORTING + bne c2_done_draw_physicist + + ;================ + ; recalc collision on new floor + + jsr recalc_walk_collision + c2_done_draw_physicist: @@ -1017,39 +1066,76 @@ gun_movie_loop: rts +door_c2_r3: + .word door_c2_r3_status + .word door_c2_r3_x + .word door_c2_r3_y + .word door_c2_r3_xmin + .word door_c2_r3_xmax -door_y: - c4_r0_door0_y: .byte 24 - c4_r0_door1_y: .byte 24 - c4_r0_door2_y: .byte 24 - c4_r0_door3_y: .byte 24 - c4_r0_door4_y: .byte 24 +door_c2_r3_status: + c2_r3_door0_status: .byte DOOR_STATUS_CLOSED + c2_r3_door1_status: .byte DOOR_STATUS_CLOSED + c2_r3_door2_status: .byte DOOR_STATUS_CLOSED -door_status: - c4_r0_door0_status: .byte DOOR_STATUS_CLOSED - c4_r0_door1_status: .byte DOOR_STATUS_CLOSED - c4_r0_door2_status: .byte DOOR_STATUS_LOCKED - c4_r0_door3_status: .byte DOOR_STATUS_LOCKED - c4_r0_door4_status: .byte DOOR_STATUS_LOCKED +door_c2_r3_y: + c2_r3_door0_y: .byte 26 + c2_r3_door1_y: .byte 26 + c2_r3_door2_y: .byte 26 -door_x: - c4_r0_door0_x: .byte 7 - c4_r0_door1_x: .byte 18 - c4_r0_door2_x: .byte 29 - c4_r0_door3_x: .byte 31 - c4_r0_door4_x: .byte 33 +door_c2_r3_x: + c2_r3_door0_x: .byte 35 + c2_r3_door1_x: .byte 37 + c2_r3_door2_x: .byte 39 + + +door_c2_r3_xmin: + c2_r3_door0_xmin: .byte 26 ; 35-4-5 + c2_r3_door1_xmin: .byte 28 ; 37-4-5 + c2_r3_door2_xmin: .byte 30 ; 39-4-5 + +door_c2_r3_xmax: + c2_r3_door0_xmax: .byte 39 ; 35+4 + c2_r3_door1_xmax: .byte 41 ; 37+4 + c2_r3_door2_xmax: .byte 43 ; 39+4 + + +door_c2_r4: + .word door_c2_r4_status + .word door_c2_r4_x + .word door_c2_r4_y + .word door_c2_r4_xmin + .word door_c2_r4_xmax + +door_c2_r4_status: + c2_r4_door0_status: .byte DOOR_STATUS_CLOSED + c2_r4_door1_status: .byte DOOR_STATUS_CLOSED + c2_r4_door2_status: .byte DOOR_STATUS_CLOSED + c2_r4_door3_status: .byte DOOR_STATUS_CLOSED + +door_c2_r4_x: + c2_r4_door0_x: .byte 18 + c2_r4_door1_x: .byte 20 + c2_r4_door2_x: .byte 22 + c2_r4_door3_x: .byte 32 + +door_c2_r4_y: + c2_r4_door0_y: .byte 28 + c2_r4_door1_y: .byte 28 + c2_r4_door2_y: .byte 28 + c2_r4_door3_y: .byte 6 + +door_c2_r4_xmin: + c2_r4_door0_xmin: .byte 9 ; 18-4-5 + c2_r4_door1_xmin: .byte 11 ; 20-4-5 + c2_r4_door2_xmin: .byte 13 ; 22-4-5 + c2_r4_door3_xmin: .byte 23 ; 32-4-5 + +door_c2_r4_xmax: + c2_r4_door0_xmax: .byte 22 ; 18+4 + c2_r4_door1_xmax: .byte 24 ; 20+4 + c2_r4_door2_xmax: .byte 26 ; 22+4 + c2_r4_door3_xmax: .byte 36 ; 32+4 -door_xmin: - c4_r0_door0_xmin: .byte 0 ; 7-4-5 - c4_r0_door1_xmin: .byte 11 ; 18-4-5 - c4_r0_door2_xmin: .byte 20 ; 29-4-5 - c4_r0_door3_xmin: .byte 22 ; 31-4-5 - c4_r0_door4_xmin: .byte 24 ; 33-4-5 -door_xmax: - c4_r0_door0_xmax: .byte 11 ; 7+4 - c4_r0_door1_xmax: .byte 21 ; 18+4 - c4_r0_door2_xmax: .byte 33 ; don't care - c4_r0_door3_xmax: .byte 35 ; don't care - c4_r0_door4_xmax: .byte 37 ; don't care diff --git a/ootw/ootw_c5_cave.s b/ootw/ootw_c5_cave.s index 36e3dee5..fe2b13f7 100644 --- a/ootw/ootw_c5_cave.s +++ b/ootw/ootw_c5_cave.s @@ -410,39 +410,3 @@ large_rock: - -door_y: - c4_r0_door0_y: .byte 24 - c4_r0_door1_y: .byte 24 - c4_r0_door2_y: .byte 24 - c4_r0_door3_y: .byte 24 - c4_r0_door4_y: .byte 24 - -door_status: - c4_r0_door0_status: .byte DOOR_STATUS_CLOSED - c4_r0_door1_status: .byte DOOR_STATUS_CLOSED - c4_r0_door2_status: .byte DOOR_STATUS_LOCKED - c4_r0_door3_status: .byte DOOR_STATUS_LOCKED - c4_r0_door4_status: .byte DOOR_STATUS_LOCKED - -door_x: - c4_r0_door0_x: .byte 7 - c4_r0_door1_x: .byte 18 - c4_r0_door2_x: .byte 29 - c4_r0_door3_x: .byte 31 - c4_r0_door4_x: .byte 33 - -door_xmin: - c4_r0_door0_xmin: .byte 0 ; 7-4-5 - c4_r0_door1_xmin: .byte 11 ; 18-4-5 - c4_r0_door2_xmin: .byte 20 ; 29-4-5 - c4_r0_door3_xmin: .byte 22 ; 31-4-5 - c4_r0_door4_xmin: .byte 24 ; 33-4-5 - -door_xmax: - c4_r0_door0_xmax: .byte 11 ; 7+4 - c4_r0_door1_xmax: .byte 21 ; 18+4 - c4_r0_door2_xmax: .byte 33 ; don't care - c4_r0_door3_xmax: .byte 35 ; don't care - c4_r0_door4_xmax: .byte 37 ; don't care - diff --git a/ootw/ootw_graphics/l2jail/Makefile b/ootw/ootw_graphics/l2jail/Makefile index d63f6ab4..182fbdf5 100644 --- a/ootw/ootw_graphics/l2jail/Makefile +++ b/ootw/ootw_graphics/l2jail/Makefile @@ -10,7 +10,7 @@ all: ootw_c2_jail.inc ootw_c2_jail.inc: $(PNG2RLE) \ jail2_bg.png jail3_bg.png jail4_bg.png dome.png \ room_b2.png room_b3.png room_b4.png - $(PNG2RLE) asm jail2_bg.png jail2_rle >> ootw_c2_jail.inc + $(PNG2RLE) asm jail2_bg.png jail2_rle > ootw_c2_jail.inc $(PNG2RLE) asm jail3_bg.png jail3_rle >> ootw_c2_jail.inc $(PNG2RLE) asm jail4_bg.png jail4_rle >> ootw_c2_jail.inc $(PNG2RLE) asm dome.png dome_rle >> ootw_c2_jail.inc diff --git a/ootw/ootw_graphics/l2jail/ootw_c2_jail.inc b/ootw/ootw_graphics/l2jail/ootw_c2_jail.inc index 2bccc6fd..0f085bfb 100644 --- a/ootw/ootw_graphics/l2jail/ootw_c2_jail.inc +++ b/ootw/ootw_graphics/l2jail/ootw_c2_jail.inc @@ -152,56 +152,48 @@ jail3_rle: .byte $28 ; ysize=48 .byte $A1 jail4_rle: .byte $28 ; ysize=48 .byte $A0,$FF,$88, $A0,$FF,$88, $AA,$88, $A0,$1C,$20, $E0, $F0, $E0 - .byte $20, $50, $20,$20, $00, $20, $00, $20 - .byte $00, $22, $0A, $7A, $0A, $7A, $0A - .byte $22, $0A, $7A, $0A, $7A, $0A, $22 - .byte $0A, $7A, $0A, $7A, $0A, $22,$22, $0A - .byte $7A, $0A, $7A, $0A, $22, $0A, $7A - .byte $0A, $7A, $0A, $22, $55, $22,$22, $00 - .byte $22, $00, $22, $00, $22, $00, $77 + .byte $20, $50, $A7,$20, $22, $0A, $7A, $0A + .byte $7A, $0A, $22, $0A, $7A, $0A, $7A + .byte $0A, $22, $0A, $7A, $0A, $7A, $0A + .byte $22,$22, $0A, $7A, $0A, $7A, $0A, $22 + .byte $0A, $7A, $0A, $7A, $0A, $22, $55 + .byte $A8,$22, $00, $77, $00, $77, $00, $22 + .byte $00, $77, $00, $77, $00, $22, $00 + .byte $77, $00, $77, $00, $22,$22, $00, $77 + .byte $00, $77, $00, $22, $00, $77, $00 + .byte $77, $00, $22, $55, $A8,$22, $00, $77 .byte $00, $77, $00, $22, $00, $77, $00 .byte $77, $00, $22, $00, $77, $00, $77 .byte $00, $22,$22, $00, $77, $00, $77, $00 .byte $22, $00, $77, $00, $77, $00, $22 - .byte $55, $22,$22, $00, $22, $00, $22, $00 - .byte $22, $00, $77, $00, $77, $00, $22 + .byte $55, $A7,$22, $62, $00, $77, $00, $77 + .byte $00, $22, $00, $77, $60, $77, $00 + .byte $22, $00, $77, $00, $77, $00, $22,$22 .byte $00, $77, $00, $77, $00, $22, $00 - .byte $77, $00, $77, $00, $22,$22, $00, $77 - .byte $00, $77, $00, $22, $00, $77, $00 - .byte $77, $00, $22, $55, $22,$22, $00, $22 - .byte $00, $22, $00, $62, $00, $77, $00 - .byte $77, $00, $22, $00, $77, $60, $77 - .byte $00, $22, $00, $77, $00, $77, $00 - .byte $22,$22, $00, $77, $00, $77, $00, $22 - .byte $00, $77, $00, $77, $00, $22, $55 - .byte $77,$77, $00, $22, $00, $22, $00, $26 - .byte $00, $77, $00, $77, $88, $22, $00 - .byte $77, $66, $77, $88, $22, $00, $77 - .byte $00, $77, $88, $22,$22, $00, $77, $00 - .byte $77, $88, $22, $00, $77, $00, $77 - .byte $88, $22,$22, $77,$77, $00, $22, $00, $22 - .byte $00, $22, $00, $77, $00, $77, $88 - .byte $22, $55, $77, $00, $77, $58, $22 + .byte $77, $00, $77, $00, $22, $55, $77,$77 + .byte $A5,$22, $26, $00, $77, $00, $77, $88 + .byte $22, $00, $77, $66, $77, $88, $22 .byte $00, $77, $00, $77, $88, $22,$22, $00 .byte $77, $00, $77, $88, $22, $00, $77 - .byte $00, $77, $88, $A4,$22, $00, $22, $00 - .byte $22, $00, $22, $00, $77, $88, $77 - .byte $88, $22, $55, $77, $00, $77, $05 + .byte $00, $77, $88, $22,$22, $77,$77, $A6,$22, $00 + .byte $77, $00, $77, $88, $22, $55, $77 + .byte $00, $77, $58, $22, $00, $77, $00 + .byte $77, $88, $22,$22, $00, $77, $00, $77 + .byte $88, $22, $00, $77, $00, $77, $88 + .byte $AA,$22, $00, $77, $88, $77, $88, $22 + .byte $55, $77, $00, $77, $05, $22, $00 + .byte $77, $88, $77, $88, $22,$22, $00, $77 + .byte $88, $77, $88, $22, $00, $77, $88 + .byte $77, $88, $AA,$22, $00, $77, $88, $77 + .byte $88, $22, $05, $77, $66, $77, $00 .byte $22, $00, $77, $88, $77, $88, $22,$22 .byte $00, $77, $88, $77, $88, $22, $00 - .byte $77, $88, $77, $88, $A4,$22, $00, $22 - .byte $00, $22, $00, $22, $00, $77, $88 - .byte $77, $88, $22, $05, $77, $66, $77 - .byte $00, $22, $00, $77, $88, $77, $88 - .byte $22,$22, $00, $77, $88, $77, $88, $22 - .byte $00, $77, $88, $77, $88, $A4,$22, $00 - .byte $22, $00, $22, $00, $52, $50, $57 - .byte $58, $57, $58, $52, $50, $57, $58 - .byte $57, $50, $52, $50, $57, $58, $57 - .byte $58, $52,$52, $50, $57, $58, $57, $58 - .byte $52, $50, $E7, $E8, $E7, $E8, $E2 - .byte $A3,$52, $00, $52, $00, $52, $00, $A0,$1A,$05 - .byte $A7,$0E, $A7,$05 + .byte $77, $88, $77, $88, $A9,$22, $52, $50 + .byte $57, $58, $57, $58, $52, $50, $57 + .byte $58, $57, $50, $52, $50, $57, $58 + .byte $57, $58, $52,$52, $50, $57, $58, $57 + .byte $58, $52, $50, $E7, $E8, $E7, $E8 + .byte $E2, $A8,$52, $A0,$1A,$05, $A7,$0E, $A7,$05 .byte $A1 dome_rle: .byte $28 ; ysize=48 .byte $A7,$66, $26, $A3,$22, $A0,$12,$00, $A3,$22, $26, $AD,$66 @@ -275,38 +267,28 @@ room_b3_rle: .byte $28 ; ysize=48 .byte $A1 room_b4_rle: .byte $28 ; ysize=48 .byte $A0,$59,$88, $A0,$1F,$00, $A9,$88, $00, $65, $A3,$25, $27 - .byte $2E, $2F, $2E, $27, $A4,$25, $A3,$55, $A6,$25 - .byte $05, $A7,$25, $A9,$88, $00, $66, $AD,$22, $55 - .byte $A7,$22, $00, $A7,$22, $A9,$88, $00, $66, $AD,$22 - .byte $55, $A7,$22, $00, $A7,$22, $A9,$88, $00, $66 - .byte $AD,$22, $55, $A7,$22, $00, $A7,$22, $A8,$88, $00,$00 - .byte $66, $A0,$15,$22, $00, $A7,$22, $A8,$88, $00,$00, $66 - .byte $A0,$15,$22, $00, $A7,$22, $A8,$88, $00,$00, $66, $A6,$22 - .byte $52, $AE,$22, $00, $A7,$22, $A8,$88, $00,$00, $66 - .byte $A6,$22, $55, $AE,$22, $00, $A7,$22, $A8,$88, $00,$00 - .byte $66, $A4,$22, $62,$62, $55, $A6,$62, $52, $A7,$62 - .byte $00, $A7,$62, $A6,$88, $A5,$00, $20, $22,$22, $02 - .byte $A0,$24,$00, $20, $22,$22, $02, $A0,$19,$00, $A3,$25, $2E - .byte $2F, $2E, $25, $55, $A3,$25, $A7,$22, $00 - .byte $22, $00, $22, $00, $AA,$22, $55, $00,$00 - .byte $A4,$88, $A7,$22, $55, $AA,$22, $00, $22, $00 - .byte $22, $00, $22,$22, $A3,$00, $20, $00, $22 + .byte $2E, $2F, $2E, $27, $A4,$25, $A3,$55, $AE,$25 + .byte $A9,$88, $00, $66, $AD,$22, $55, $AF,$22, $A9,$88 + .byte $00, $66, $AD,$22, $55, $AF,$22, $A9,$88, $00 + .byte $66, $AD,$22, $55, $AF,$22, $A8,$88, $00,$00, $66 + .byte $A0,$1D,$22, $A8,$88, $00,$00, $66, $A0,$1D,$22, $A8,$88, $00,$00 + .byte $66, $A6,$22, $52, $A0,$16,$22, $A8,$88, $00,$00, $66 + .byte $A6,$22, $55, $A0,$16,$22, $A8,$88, $00,$00, $66, $A4,$22 + .byte $62,$62, $55, $A6,$62, $52, $A7,$62, $02, $A7,$62 + .byte $A6,$88, $A5,$00, $20, $22,$22, $02, $A0,$24,$00, $20 + .byte $22,$22, $02, $A0,$19,$00, $A3,$25, $2E, $2F, $2E + .byte $25, $55, $A3,$25, $A0,$16,$22, $55, $00,$00, $A4,$88 + .byte $A7,$22, $55, $A0,$11,$22, $A3,$00, $20, $00, $22 .byte $02, $22, $55, $00,$00, $A4,$88, $A7,$22, $25 - .byte $AA,$22, $00, $22, $00, $22, $00, $22,$22 - .byte $A3,$00, $22, $00, $22, $20, $22, $55 - .byte $00,$00, $A4,$88, $A0,$12,$22, $00, $22, $00, $22 - .byte $00, $22,$22, $A3,$00, $22, $00, $A3,$22, $55 - .byte $00,$00, $A4,$88, $A3,$22, $02, $AE,$22, $00, $22 - .byte $00, $22, $00, $22,$22, $A3,$00, $22, $00 - .byte $A3,$22, $55, $00,$00, $A4,$88, $22,$22, $02, $20 - .byte $22, $20, $22,$22, $20, $A9,$22, $00, $22 - .byte $00, $22, $00, $22,$22, $A3,$00, $22, $00 - .byte $A3,$22, $55, $00,$00, $A4,$88, $A4,$22, $20, $22,$22 - .byte $20, $AA,$22, $00, $22, $00, $22, $00 - .byte $22,$22, $A3,$00, $22, $00, $A3,$22, $55, $A3,$00 - .byte $A3,$88, $A0,$12,$22, $00, $22, $00, $22, $00 - .byte $22,$22, $A3,$00, $22, $00, $A3,$22, $66, $A3,$00 - .byte $A3,$88, $50, $52, $A0,$10,$62, $00, $62, $00 - .byte $62, $00, $62,$62, $A3,$60, $62, $60, $A3,$62 + .byte $A0,$11,$22, $A3,$00, $22, $00, $22, $20, $22 + .byte $55, $00,$00, $A4,$88, $A0,$19,$22, $A3,$00, $22, $00 + .byte $A3,$22, $55, $00,$00, $A4,$88, $A3,$22, $02, $A0,$15,$22 + .byte $A3,$00, $22, $00, $A3,$22, $55, $00,$00, $A4,$88 + .byte $22,$22, $02, $20, $22, $20, $22,$22, $20 + .byte $A0,$10,$22, $A3,$00, $22, $00, $A3,$22, $55, $00,$00 + .byte $A4,$88, $A4,$22, $20, $22,$22, $20, $A0,$11,$22, $A3,$00 + .byte $22, $00, $A3,$22, $55, $A3,$00, $A3,$88, $A0,$19,$22 + .byte $A3,$00, $22, $00, $A3,$22, $66, $A3,$00, $A3,$88 + .byte $50, $52, $A0,$17,$62, $A3,$60, $62, $60, $A3,$62 .byte $66, $A3,$00, $A3,$88, $A0,$22,$06, $A3,$00, $A3,$88 .byte $A1 diff --git a/ootw/ootw_graphics/sprites/physicist.inc b/ootw/ootw_graphics/sprites/physicist.inc index 08193030..cc149096 100644 --- a/ootw/ootw_graphics/sprites/physicist.inc +++ b/ootw/ootw_graphics/sprites/physicist.inc @@ -363,15 +363,15 @@ crouch1: .byte $5a,$fc,$f4 crouch2: - .byte 3,8 - .byte $aa,$aa,$aa - .byte $aa,$aa,$aa - .byte $9a,$9a,$aa - .byte $bb,$99,$aa - .byte $aa,$0b,$0a - .byte $aa,$bb,$00 - .byte $ba,$4b,$aa - .byte $54,$f4,$f4 + .byte 5,8 + .byte $AA,$aa,$aa,$aa,$AA + .byte $AA,$aa,$aa,$aa,$AA + .byte $AA,$9a,$9a,$aa,$AA + .byte $AA,$bb,$99,$aa,$AA + .byte $AA,$aa,$0b,$0a,$AA + .byte $AA,$aa,$bb,$00,$AA + .byte $AA,$ba,$4b,$aa,$AA + .byte $AA,$54,$f4,$f4,$AA ;===================== diff --git a/ootw/physicist.s b/ootw/physicist.s index 9107defb..f455ebd0 100644 --- a/ootw/physicist.s +++ b/ootw/physicist.s @@ -198,6 +198,15 @@ physicist_crouching: physicist_crouch_kicking: + dec GAIT + lda GAIT + bpl still_kicking + + lda #P_CROUCHING + sta PHYSICIST_STATE + +still_kicking: + lda #