From dde29e2c964b4e512e933fafaca59cc744713de2 Mon Sep 17 00:00:00 2001 From: Pecusx Date: Sat, 7 May 2022 18:06:25 +0200 Subject: [PATCH] Liquid Dirt weapon Roller bugfix and optimalisations and new weapon: Liquid Dirt (not optimal but works). --- definitions.asm | 2 +- scorch.xex | Bin 34190 -> 34409 bytes variables.asm | 3 + weapons.asm | 212 +++++++++++++++++++++++++++++++++--------------- 4 files changed, 149 insertions(+), 68 deletions(-) diff --git a/definitions.asm b/definitions.asm index a2aefc5..5ca715d 100644 --- a/definitions.asm +++ b/definitions.asm @@ -39,7 +39,7 @@ price_Heavy_Sandhog__ = 305 ;_24 price_Dirt_Clod______ = 104 ;_25 price_Dirt_Ball______ = 130 ;_26 price_Ton_of_Dirt____ = 171 ;_27 -price_Liquid_Dirt____ = 0 ;530 ;_28 +price_Liquid_Dirt____ = 530 ;_28 price_Dirt_Charge____ = 581 ;_29 price_Earth_Disrupter = 0 ;430 ;_30 price_Plasma_Blast___ = 0 ;274 ;_31 diff --git a/scorch.xex b/scorch.xex index 148e47c988fc6fec2cf0df8d58d6daa059987c8d..97670f30c2e98dc9a4472a54bfa6f6a9e629f996 100644 GIT binary patch delta 12106 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 - beq GoRightNow -HowMuchToFallLeft - bcs GoRightNow - mva #1 HowMuchToFall -GoRightNow - mwa #mountaintable tempXROLLER - adw tempXROLLER xdraw -SeekRight - inw tempXROLLER - lda (tempXROLLER),y - cmp HeightRol - bne HowMuchToFallRight - lda tempXROLLER - cmp #<(mountaintable+screenwidth) - bne SeekRight - lda tempXROLLER+1 - cmp #>(mountaintable+screenwidth) - beq HowMuchToFallKnown -HowMuchToFallRight - ; check if up or down - bcs HowMuchToFallKnown - lda HowMuchToFall - bpl ItIsLeftAlready - mva #2 HowMuchToFall - bne HowMuchToFallKnown -ItIsLeftAlready - mva #$ff HowMuchToFall -HowMuchToFallKnown - lda HowMuchToFall - bpl Rollin - lda #1 - clc - adc goleft - sta HowMuchToFall Rollin adw xdraw #mountaintable tempXROLLER ldy #0 @@ -798,6 +734,71 @@ ExplodeNow jmp xmissile rts .endp +; -------------------------------------------------- +.proc checkRollDirection +; check rolling direction (for roller and other rolling weapons) + ldy #0 + mwa #mountaintable tempXROLLER + + adw tempXROLLER xdraw + lda (tempXROLLER),y + sta ydraw + + lda vx+3 + ; if horizontal velocity is negative then change the direction + bpl PositiveVelocity + lda goleft + ora #$01 + sta goleft +PositiveVelocity + ; first we look for the left slope + ; then righ slope and set the flag + ; $FF - we are in a hole (flying in missile direction) + ; 1 - right, 2 - left + mva #$ff HowMuchToFall + mva ydraw HeightRol + ;mwa #mountaintable tempXROLLER - It's already done !!! + ;adw tempXROLLER xdraw +SeekLeft + cpw tempXROLLER #mountaintable + beq GoRightNow ; "bounce" if we have on left end +.nowarn dew tempXROLLER + lda (tempXROLLER),y ;fukk! beware of Y value + cmp HeightRol + bne HowMuchToFallLeft +HowMuchToFallLeft + bcs GoRightNow + mva #1 HowMuchToFall +GoRightNow + mwa #mountaintable tempXROLLER + adw tempXROLLER xdraw +SeekRight + cpw tempXROLLER #(mountaintable+screenwidth) + beq HowMuchToFallKnown ; "stop" if we have on left end + inw tempXROLLER + lda (tempXROLLER),y + cmp HeightRol + bne HowMuchToFallRight +HowMuchToFallRight + ; check if up or down + bcs HowMuchToFallKnown + lda HowMuchToFall + bpl ItIsLeftAlready + mva #2 HowMuchToFall + bne HowMuchToFallKnown +ItIsLeftAlready + mva #$ff HowMuchToFall +HowMuchToFallKnown + lda HowMuchToFall + bpl DirectionChecked + lda #1 + clc + adc goleft + sta HowMuchToFall +DirectionChecked + rts +.endp + ; -------------------------------------------------- .proc cleanDirt mva #0 color @@ -851,6 +852,83 @@ EndOfTheDirt mva ycircle ydraw rts .endp +; ---------------- +.proc liquiddirt ; + mva xdraw TempXfill + mva #200 FillCounter +RepeatFill + mva TempXfill xdraw + jsr checkRollDirection + ; HowMuchToFall - direction + ; $FF - we are in a hole (flying in missile direction) + ; 1 - right, 2 - left + adw xdraw #mountaintable tempXROLLER + ldy #0 + lda (tempXROLLER),y + sta HeightRol ; relative point + +RollinContinuesLiquid + ; new point is set + adw xdraw #mountaintable tempXROLLER + ldy #0 + lda (tempXROLLER),y + sta ydraw + beq FillNow + cmp HeightRol + beq UpNotYet2 + bcc FillNow +UpNotYet2 + sec ;clc + sta HeightRol + sbc #1 + sta ydraw + jsr unPlot + ; let's go the right direction + lda HowMuchToFall + cmp #1 + beq HowMuchToFallRight3 +.nowarn dew xdraw + lda xdraw + bne RollinContinuesLiquid + lda xdraw+1 + jne RollinContinuesLiquid + beq FillNow +HowMuchToFallRight3 + inw xdraw + cpw xdraw screenwidth + jne RollinContinuesLiquid +FillNow + mwa xdraw xcircle ; we must store somewhere (BAD) + mva ydraw ycircle ; xdraw and ydraw (BAD) + mwa #0 xdraw + mva #screenheight-1 ydraw + jsr unPlot + mwa xcircle xdraw ;(bad) + mva ycircle ydraw ;(bad) + + ; finally one pixel more + ldy #0 + lda HowMuchToFall + bmi FillHole + cmp#1 + beq FillLeft + inw xdraw + inw xdraw ; tricky but we must rollback xdraw in proper direction +FillLeft +.nowarn dew xdraw +FillHole + adw xdraw #mountaintable tempXROLLER + lda (tempXROLLER),y + sta ydraw + dec ydraw ; one pixel up + lda ydraw + sta (tempXROLLER),y ;mountaintable update + mva #1 color + jsr plot + dec FillCounter + jne RepeatFill + rts +.endp ;-------------------------------------------------- BeforeFire .proc ;TankNr (byte)