From c7e87c67ec91b9f0f4af4c2fcbe454dd67ae8ee0 Mon Sep 17 00:00:00 2001 From: Pecusx Date: Sat, 20 Aug 2022 15:18:57 +0200 Subject: [PATCH] Hovercraft animations and Tank falls bugfix --- grafproc.asm | 106 +++++++++++++++++++++++++++++++++++++-------------- scorch.xex | Bin 51051 -> 51282 bytes weapons.asm | 76 ++++++++++++++++++++++++++++++------ 3 files changed, 142 insertions(+), 40 deletions(-) diff --git a/grafproc.asm b/grafproc.asm index 73152c9..d086ca3 100644 --- a/grafproc.asm +++ b/grafproc.asm @@ -914,6 +914,54 @@ ToHighToParachute rts .endp +;-------------------------------------------------- +.proc DrawTankRocketEngine +; X - tank number +; +; this proc change xdraw, ydraw and temp! +;-------------------------------------------------- + clc + lda Ytankstable,x + adc #2 ; 1 pixel down + sta ydraw + mva #0 ydraw+1 + + clc + lda XtanksTableL,x + adc #2 ; 2 pixels to right + sta xdraw + lda XtanksTableH,x + adc #0 + sta xdraw+1 + + ; draw first horizontal line + mva #5 temp +@ + jsr plot + inw xdraw + dec temp + bne @- + + sbw xdraw #2 ; 2 pixels left + inw ydraw ; 1 pixel down + + ; draw second horizontal line + mva #3 temp +@ + jsr plot +.nowarn dew xdraw + dec temp + bne @- + + adw xdraw #2 ; 2 pixels right + inw ydraw ; 1 pixel down + + ; and last pixel + jsr plot + + ldx TankNr + rts +.endp ;-------------------------------------------------- .proc TankFalls; ;-------------------------------------------------- @@ -995,7 +1043,7 @@ NoGroundCheck and #1 bne ParachutePresent ; decreasing energy - ldy #2 ; how much energy to substract + ldy #2 ; how much energy to substract if no parachute jsr DecreaseEnergyX ParachutePresent ; check parachute type @@ -1003,7 +1051,7 @@ ParachutePresent cmp #ind_StrongParachute ; strong parachute bne OneTimeParachute ; decreasing energy of parachute - ldy #2 ; how much energy to substract + ldy #1 ; how much parachute energy to substract jsr DecreaseShieldEnergyX cpy #0 ; is necessary to reduce tenk energy ? beq @+ @@ -1029,37 +1077,16 @@ NoFallingDown ldy #7 ; SlideLeftTable length -1 (from 0 to 7) @ lda SlideLeftTable,y cmp UnderTank1 - beq FallingRight - cmp UnderTank2 beq FallingLeft + cmp UnderTank2 + beq FallingRight dey bpl @- bmi NoLeftOrRight -FallingLeft - ; tank is falling left - bit PreviousFall ; bit 6 - right - bvs EndLeftFall - ; we finish falling left if the tank reached the edge of the screen - lda XtanksTableH,x - bne NotLeftEdge - lda XtanksTableL,x - cmp #2 ; 2 pixels correction due to a barrel wider than tank - beq EndLeftFall -NotLeftEdge - ; tank is falling left - modify coorinates - clc - lda XtankstableL,x - adc #1 - sta XtankstableL,x - lda XtankstableH,x - adc #0 - sta XtankstableH,x - mva #%10000000 PreviousFall ; set bit 7 - left - bne EndOfFCycle FallingRight ; tank is falling right - bit PreviousFall ; bit 7 - left - bmi EndRightFall + bit PreviousFall ; bit 6 - left + bvs EndRightFall ; we finish falling right if the tank reached the edge of the screen clc lda XtanksTableL,x @@ -1069,8 +1096,29 @@ FallingRight adc #0 sta temp+1 cpw temp #screenwidth-2 ; 2 pixels correction due to a barrel wider than tank - beq EndRightFall + bcs EndRightFall +NotLeftEdge ; tank is falling right - modify coorinates + clc + lda XtankstableL,x + adc #1 + sta XtankstableL,x + lda XtankstableH,x + adc #0 + sta XtankstableH,x + mva #%10000000 PreviousFall ; set bit 7 - right + bne EndOfFCycle +FallingLeft + ; tank is falling left + bit PreviousFall ; bit 7 - right + bmi EndLeftFall + ; we finish falling left if the tank reached the edge of the screen + lda XtanksTableH,x + bne NotLeftEdge + lda XtanksTableL,x + cmp #3 ; 2 pixels correction due to a barrel wider than tank + bcc EndLeftFall + ; tank is falling left - modify coorinates sec lda XtankstableL,x sbc #1 @@ -1078,7 +1126,7 @@ FallingRight lda XtankstableH,x sbc #0 sta XtankstableH,x - mva #%01000000 PreviousFall ; set bit 6 - right + mva #%01000000 PreviousFall ; set bit 6 - left bne EndOfFCycle EndLeftFall EndRightFall diff --git a/scorch.xex b/scorch.xex index 72d95d196e7078ef34848640763f45babd26123b..52781be1853b09262aa5dfe9d5ca2aedc821392e 100644 GIT binary patch delta 15850 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 delta 15720 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 ; tank width correction +2 + cmp #>(screenwidth-12) ; tank width correction +4 bne @+ lda XtankstableL,x - cmp #<(screenwidth-10) ; tank width correction +2 pixels + cmp #<(screenwidth-12) ; tank width correction +4 pixels @ bcs RightScreenEdge inc XtankstableL,x sne:inc XtankstableH,x @@ -2529,7 +2577,7 @@ pressedRight RightScreenEdge mva #sfx_dunno sfx_effect NoREdge - mva #25 AngleTable,x + mva #18 AngleTable,x ; then draw tank on new position jsr DrawTankNr jsr DisplayStatus @@ -2549,7 +2597,7 @@ pressedLeft cmp #0 bne @+ lda XtankstableL,x - cmp #5 ; 2 pixles from left edge + cmp #5 ; 4 pixles from left edge @ bcc LeftScreenEdge dec XtankstableL,x lda XtankstableL,x @@ -2559,7 +2607,7 @@ pressedLeft LeftScreenEdge mva #sfx_dunno sfx_effect NoLEdge - mva #155 AngleTable,x + mva #162 AngleTable,x ; then draw tank on new position jsr DrawTankNr jsr DisplayStatus @@ -2632,14 +2680,14 @@ TankBelow PassRight inc XtankstableL,x sne:inc XtankstableH,x - mva #25 AngleTable,x + mva #18 AngleTable,x bne Bypassing PassLeft dec XtankstableL,x lda XtankstableL,x cmp #$ff sne:dec XtankstableH,x - mva #155 AngleTable,x + mva #162 AngleTable,x Bypassing ; then draw tank on new position jsr DrawTankNr @@ -2681,13 +2729,19 @@ FloatDown ; first erase old tank position mva #1 Erase jsr DrawTankNr + jsr DrawTankParachute mva #0 Erase inc ytankstable,x ; then draw tank on new position jsr DrawTankNr + jsr DrawTankParachute jsr WaitOneFrame jmp FloatDown OnGround + ; clear parachute + mva #1 Erase + jsr DrawTankParachute + mva #0 Erase jsr WaitForKeyRelease ; and Soildown at the end (for correct mountaintable) ; calculate range