From e9a59b1475975a5a8cc2f81e3758393a896fde9e Mon Sep 17 00:00:00 2001 From: pkali Date: Sun, 3 Jul 2022 00:02:06 -0400 Subject: [PATCH] sensible angles work! --- constants.asm | 156 ++++++++++++++++++++++++-------------------------- grafproc.asm | 13 +---- scorch.asm | 8 +-- scorch.xex | Bin 40489 -> 40282 bytes textproc.asm | 39 +++++++------ weapons.asm | 114 ++++++++++++++++++------------------ 6 files changed, 161 insertions(+), 169 deletions(-) diff --git a/constants.asm b/constants.asm index e39389b..98d315e 100644 --- a/constants.asm +++ b/constants.asm @@ -70,32 +70,6 @@ pmtableH .by >(pmgraph+$700) .by >(pmgraph+$300) ;----------- -; this table changes Angle to the appropriate tank character -BarrelTableL - .by $02,$02,$02,$02,$02,$02,$02,$02 - .by $04,$04,$04,$04,$04,$04,$04,$04 - .by $06,$06,$06,$06,$06,$06,$06,$06,$06 - .by $08,$08,$08,$08,$08,$08,$08,$08 - .by $0a,$0a,$0a,$0a,$0a,$0a,$0a,$0a - .by $0c,$0c,$0c,$0c,$0c,$0c,$0c,$0c,$0c - .by $0e,$0e,$0e,$0e,$0e,$0e,$0e,$0e - .by $10,$10,$10,$10,$10,$10,$10,$10 - .by $12,$12,$12,$12,$12,$12,$12,$12,$12 - .by $14,$14,$14,$14,$14,$14,$14,$14 - .by $16,$16,$16,$16,$16,$16,$16,$16 -BarrelTableR - .by $2c,$2c,$2c,$2c,$2c,$2c,$2c,$2c - .by $2a,$2a,$2a,$2a,$2a,$2a,$2a,$2a - .by $28,$28,$28,$28,$28,$28,$28,$28,$28 - .by $26,$26,$26,$26,$26,$26,$26,$26 - .by $24,$24,$24,$24,$24,$24,$24,$24 - .by $22,$22,$22,$22,$22,$22,$22,$22,$22 - .by $20,$20,$20,$20,$20,$20,$20,$20 - .by $1e,$1e,$1e,$1e,$1e,$1e,$1e,$1e - .by $1c,$1c,$1c,$1c,$1c,$1c,$1c,$1c,$1c - .by $1a,$1a,$1a,$1a,$1a,$1a,$1a,$1a - .by $18,$18,$18,$18,$18,$18,$18,$18 - sintable .by 0 .by 4 @@ -221,67 +195,89 @@ SlideLeftTable .BY %00000111 .BY %00001100 +;----------------------------------------------------------- +; this table changes Angle to the appropriate tank character +BarrelTable + + .by $2C,$2C,$2C,$2C,$2C,$2C,$2C,$2C,$2A,$2A, + .by $2A,$2A,$2A,$2A,$2A,$2A,$28,$28,$28,$28, + .by $28,$28,$28,$28,$28,$26,$26,$26,$26,$26, + .by $26,$26,$26,$24,$24,$24,$24,$24,$24,$24, + .by $24,$22,$22,$22,$22,$22,$22,$22,$22,$22, + .by $20,$20,$20,$20,$20,$20,$20,$20,$1E,$1E, + .by $1E,$1E,$1E,$1E,$1E,$1E,$1C,$1C,$1C,$1C, + .by $1C,$1C,$1C,$1C,$1C,$1A,$1A,$1A,$1A,$1A, + .by $1A,$1A,$1A,$18,$18,$18,$18,$18,$18,$18, + ;.by $18, + + .by $16,$16,$16,$16,$16,$16,$16,$16,$14,$14, + .by $14,$14,$14,$14,$14,$14,$12,$12,$12,$12, + .by $12,$12,$12,$12,$12,$10,$10,$10,$10,$10, + .by $10,$10,$10,$0E,$0E,$0E,$0E,$0E,$0E,$0E, + .by $0E,$0C,$0C,$0C,$0C,$0C,$0C,$0C,$0C,$0C, + .by $0A,$0A,$0A,$0A,$0A,$0A,$0A,$0A,$08,$08, + .by $08,$08,$08,$08,$08,$08,$06,$06,$06,$06, + .by $06,$06,$06,$06,$06,$04,$04,$04,$04,$04, + .by $04,$04,$04,$02,$02,$02,$02,$02,$02,$02, + .by $02, + EndOfTheBarrelX - ; right angles from 0 (vertically up) to 90 (horizontally to the right) - .by 4,4,4,4,4,4,4,4,4,4,4 - .by 5,5,5,5,5,5,5,5,5,5 - .by 6,6,6,6,6,6,6,6,6 - .by 7,7,7,7,7,7,7,7,7,7,7,7,7,7,7 - .by 7,7,7,7,7,7,7,7,7 - .by 7,7,7,7,7,7,7,7,7,7 - .by 7,7,7,7,7,7,7,7,7,7,7,7,7 - .by 7,7,7,7,7,7,7,7,7,7,7,7,7,7 + ; right angles from 0 (horizontally right) to 90 (up) - .by 0,0,0,0,0,0,0,0,0,0 ; not used - .by 0,0,0,0,0,0,0,0,0,0 ; not used - .by 0,0,0,0,0,0,0,0,0,0 ; not used - .by 0,0,0,0,0,0,0,0,0,0 ; not used - .by 0,0,0,0,0,0,0,0,0,0 ; not used - .by 0,0,0,0,0,0,0,0,0,0 ; not used - .by 0,0,0,0,0,0,0,0,0,0 ; not used - .by 0,0,0,0 ; not used + .by 7,7,7,7,7,7,7,7,7,7, + .by 7,7,7,7,7,7,7,7,7,7, + .by 7,7,7,7,7,7,7,7,7,7, + .by 7,7,7,7,7,7,7,7,7,7, + .by 7,7,7,7,7,7,7,7,7,7, + .by 7,7,7,7,7,7,7,7,7,7, + .by 7,6,6,6,6,6,6,6,6,6, + .by 5,5,5,5,5,5,5,5,5,5, + .by 4,4,4,4,4,4,4,4,4,4, + ;.by 4, - ; left angles from 90 (horizontally to the left) to 1 (vertically up) - .by 0,0,0,0,0,0,0,0,0,0,0,0,0,0 - .by 0,0,0,0,0,0,0,0,0,0,0,0,0 - .by 0,0,0,0,0,0,0,0,0,0 - .by 0,0,0,0,0,0,0,0,0 - .by 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 - .by 1,1,1,1,1,1,1,1,1 - .by 2,2,2,2,2,2,2,2,2,2 - .by 3,3,3,3,3,3,3,3,3,3,3 + ; left angles from 90 (vertical) to 180 (horizontally left) + .by 3,3,3,3,3,3,3,3,3,3, + .by 3,2,2,2,2,2,2,2,2,2, + .by 2,1,1,1,1,1,1,1,1,1, + .by 0,0,0,0,0,0,0,0,0,0, + .by 0,0,0,0,0,0,0,0,0,0, + .by 0,0,0,0,0,0,0,0,0,0, + .by 0,0,0,0,0,0,0,0,0,0, + .by 0,0,0,0,0,0,0,0,0,0, + .by 0,0,0,0,0,0,0,0,0,0, + .by 0 EndOfTheBarrelY - ; right angles from 0 (vertically up) to 90 (horizontally to the right) - .by 7,7,7,7,7,7,7,7,7,7,7 - .by 7,7,7,7,7,7,7,7,7,7 - .by 7,7,7,7,7,7,7,7,7 - .by 7,7,7,7,7,7,7,7,7,7,7,7,7,7,7 - .by 6,6,6,6,6,6,6,6,6 - .by 5,5,5,5,5,5,5,5,5,5 - .by 4,4,4,4,4,4,4,4,4,4,4,4,4 - .by 4,4,4,4,4,4,4,4,4,4,4,4,4,4 ; one pixel Up for fix problems with colision check -; .by 3,3,3,3,3,3,3,3,3,3,3,3,3,3 +; right angles from 0 (horizontally right) to 90 (up) + + ; one pixel Up for fix problems with colision check + ;.by 3,3,3,3,3,3,3,3,3,3,3,3,3,3 + .by 4,4,4,4,4,4,4,4,4,4, + .by 4,4,4,4,4,4,4,4,4,4, + .by 4,4,4,4,4,4,4,5,5,5, + .by 5,5,5,5,5,5,5,6,6,6, + .by 6,6,6,6,6,6,7,7,7,7, + .by 7,7,7,7,7,7,7,7,7,7, + .by 7,7,7,7,7,7,7,7,7,7, + .by 7,7,7,7,7,7,7,7,7,7, + .by 7,7,7,7,7,7,7,7,7,7, + ;.by 7, + +; left angles from 90 (vertical) to 180 (horizontally left) - .by 0,0,0,0,0,0,0,0,0,0 ; not used - .by 0,0,0,0,0,0,0,0,0,0 ; not used - .by 0,0,0,0,0,0,0,0,0,0 ; not used - .by 0,0,0,0,0,0,0,0,0,0 ; not used - .by 0,0,0,0,0,0,0,0,0,0 ; not used - .by 0,0,0,0,0,0,0,0,0,0 ; not used - .by 0,0,0,0,0,0,0,0,0,0 ; not used - .by 0,0,0,0 ; not used + .by 7,7,7,7,7,7,7,7,7,7, + .by 7,7,7,7,7,7,7,7,7,7, + .by 7,7,7,7,7,7,7,7,7,7, + .by 7,7,7,7,7,7,7,7,7,7, + .by 7,7,7,7,7,6,6,6,6,6, + .by 6,6,6,6,5,5,5,5,5,5, + .by 5,5,5,5,4,4,4,4,4,4, + .by 4,4,4,4,4,4,4,4,4,4, + .by 4,4,4,4,4,4,4,4,4,4, + .by 4, + ; one pixel Up for fix problems with colision check + ;.by 3,3,3,3,3,3,3,3,3,3,3,3,3,3 - ; left angles from 90 (horizontally to the left) to 1 (vertically up) -; .by 3,3,3,3,3,3,3,3,3,3,3,3,3,3 - .by 4,4,4,4,4,4,4,4,4,4,4,4,4,4 ; one pixel Up for fix problems with colision check - .by 4,4,4,4,4,4,4,4,4,4,4,4,4 - .by 5,5,5,5,5,5,5,5,5,5 - .by 6,6,6,6,6,6,6,6,6 - .by 7,7,7,7,7,7,7,7,7,7,7,7,7,7,7 - .by 7,7,7,7,7,7,7,7,7 - .by 7,7,7,7,7,7,7,7,7,7 - .by 7,7,7,7,7,7,7,7,7,7,7 ;------------------------------------------------- TanksNamesDefault diff --git a/grafproc.asm b/grafproc.asm index 218498e..1a55c8b 100644 --- a/grafproc.asm +++ b/grafproc.asm @@ -619,19 +619,8 @@ SkipRemovigPM lda AngleTable,x - bmi AngleToLeft01 - lda #90 - sec - sbc AngleTable,x - tay - lda BarrelTableR,y - jmp CharacterAlreadyKnown -AngleToLeft01 - sec - sbc #(255-90) tay - lda BarrelTableL,y -CharacterAlreadyKnown + lda BarrelTable,y sta CharCode DrawTankNrX ldx tanknr diff --git a/scorch.asm b/scorch.asm index 00967db..f445b6e 100644 --- a/scorch.asm +++ b/scorch.asm @@ -1079,9 +1079,9 @@ UsageLoop bcs RandomizeAngle - sta temp - lda #90 ; CARRY=0 here - sbc temp + ;sta temp + ;lda #90 ; CARRY=0 here + ;sbc temp rts .endp @@ -1347,7 +1347,7 @@ font4x4 ins 'artwork/font4x4s.bmp',+62 ;---------------------------------------------- TankFont - ins 'artwork/tanks.fnt' + ins 'artwork/tanksv2.fnt' ;---------------------------------------------- icl 'variables.asm' ;---------------------------------------------- diff --git a/scorch.xex b/scorch.xex index 62ee25954a2eebd747c1265f222438f739c96c07..18c2910b6b3908cc75b1ecb1d18fcc3fc53d6485 100644 GIT binary patch delta 14880 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 delta 14963 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 Y-hdc&pd|W$Iy+E1C$Mcn+3AG;1+63XBme*a diff --git a/textproc.asm b/textproc.asm index e632d29..cac0e40 100644 --- a/textproc.asm +++ b/textproc.asm @@ -1205,7 +1205,7 @@ CheckNextLevel .proc displaydec ;decimal (word), displayposition (word) ;-------------------------------------------------- ; displays decimal number as in parameters (in text mode) -; leading zeores are removed +; leading zeroes are removed ; the range is (0000..9999 - two bytes) ldy #3 ; there will be 4 digits @@ -1907,33 +1907,36 @@ NoShieldEnergy ldx TankNr lda AngleTable,x bmi AngleToLeft - lda #$7f ; (tab) character - sta textbuffer+40+25 - lda #0 ;space - sta textbuffer+40+22 - lda #90 - sec - sbc AngleTable,x + + lda AngleTable,x sta decimal + ;lda #$7f ; (tab) character + ;sta textbuffer+40+25 + lda #0 ;space + ;sta textbuffer+40+22 + sta decimal+1 ; angle is single byte, but displayed with displaydec (word) routine + ;lda #90 + ;sec + ;sbc AngleTable,x tay - lda BarrelTableR,y + lda BarrelTable,y sta CharCode bne AngleDisplay ;like jmp, because code always <>0 AngleToLeft - sec - sbc #(255-90) + ;sec + ;sbc #(255-90) sta decimal tay - lda BarrelTableL,y + lda BarrelTable,y sta CharCode - lda #$7e ;(del) char - sta textbuffer+40+22 - lda #0 ;space - sta textbuffer+40+25 + ;lda #$7e ;(del) char + ;sta textbuffer+40+22 + ;lda #0 ;space + ;sta textbuffer+40+25 AngleDisplay - mwa #textbuffer+40+23 displayposition - jsr displaybyte + mwa #textbuffer+40+21 displayposition + jsr displaydec ;========================= ;display Wind diff --git a/weapons.asm b/weapons.asm index 5e0f802..e67e9ac 100644 --- a/weapons.asm +++ b/weapons.asm @@ -202,11 +202,8 @@ FunkyBombLoop lda random sta Force mva #1 Force+1 - ;Angle randomization Range: (-16..+16) - lda random - lsr - and #%00011111 - scc:eor #$ff + ;Angle randomization Range: (70-110 degrees) + randomize 70 110 sta Angle lda #0 @@ -544,7 +541,7 @@ DiggerCharacter mwa xbyte LaserCoordinate+4 mwa ybyte LaserCoordinate+6 - + mva #sfx_lightning sfx_effect mva #51 yc ; laser blink counter @ lda yc @@ -555,7 +552,6 @@ DiggerCharacter mwa LaserCoordinate+4 xbyte mwa LaserCoordinate+6 ybyte mva #sfx_lightning sfx_effect - mva #sfx_lightning sfx_effect jsr draw dec:lda yc @@ -1175,34 +1171,34 @@ CTRLPressedDown bmi ForceGoesZero jmp BeforeFire -pressedLeft +pressedRight mva #sfx_set_power_2 sfx_effect ldx TankNr dec AngleTable,x lda AngleTable,x - cmp #$ff ; if angle goes through 0 we clear the barrel - bne NotThrough90DegreesLeft - mva #$2e CharCode - jsr DrawTankNr.drawtankNrX -NotThrough90DegreesLeft - cmp #(255-91) + ;cmp #180 ; if angle goes through 180 we clear the barrel + ;bne NotThrough90DegreesLeft + ;mva #$2e CharCode ; TODO: change + ;jsr DrawTankNr.drawtankNrX +;NotThrough90DegreesLeft + cmp #255 ; -1 jne BeforeFire - lda #90 + lda #180 sta AngleTable,x jmp BeforeFire -pressedRight +pressedLeft mva #sfx_set_power_2 sfx_effect ldx TankNr INC AngleTable,x lda AngleTable,x - bne NotThrough90DegreesRight - mva #$30 CharCode ; if angle goes through 0 we clear the barrel - jsr DrawTankNr.drawtankNrX -NotThrough90DegreesRight - cmp #91 + ;bne NotThrough90DegreesRight + ;mva #$30 CharCode ; if angle goes through 0 we clear the barrel + ;jsr DrawTankNr.drawtankNrX +;NotThrough90DegreesRight + cmp #181 jne BeforeFire - lda #(255-90) + lda #0 sta AngleTable,x jmp BeforeFire @@ -1606,8 +1602,8 @@ ThereWasNoParachute ; Angle(byte) 128=0, 255=maxright, 0=maxleft ;-------------------------------------------------- ;g=-0.1 -;vx=Force*sin(Angle) -;vy=Force*cos(Angle) +;vx=Force*cos(Angle) +;vy=Force*sin(Angle) ; ;:begin ;ytraj=ytray-vy @@ -1617,6 +1613,9 @@ ThereWasNoParachute ;plot xtraj,ytraj - there is clearing in plot ;goto begin + + + ; smoke tracer :) ldy #0 ldx TankNr @@ -1644,45 +1643,41 @@ RepeatFlight sta ydraw+1 ;vx calculation + ;vx = sin(90-Angle) for Angle <=90 + ;vx = -sin(Angle-90) for 90 < Angle <= 180 aslw Force ;Force = Force * 2 - ;sin(Angle) + ;cos(Angle) (but we use sin table only so some shenanigans happen) ldx Angle stx LeapFrogAngle ; we will need it later ;Angle works like this: - ;0 'degrees' is straight up - ;90 'degrees' is horizontally right - ;255 is straight up (same as 0) - ;255-90 (165) horizontally left - - bpl FlightRight + ;0 'degrees' is horizontally right + ;90 'degrees' is straight up + ;180 horizontally left + + ; (we have to set goleft used in rolling weapons) + + cpx #91 + bcc angleUnder90 - ;and if the highest bit is set then - ;Flight to LEFT - ;calculate Angle with this formula: - ;Angle=90-(Angle-165) - + ;over 90 + mva #1 goleft sec - txa - sbc #165 ;(Angle-165) - sta temp - lda #90 - sbc temp ;90-(Angle-165) - ;and we have rady angle here ... and we go LEFT! + txa ; lda # Angle + sbc #90 tax - sta Angle - - ; and now we contine as if nothing happened - ; (but we have goleft set to 1!!!) - mva #1 goleft - bne @+ + jmp @+ -FlightRight +angleUnder90 mva #0 goleft -@ - lda sintable,x ;sin(Angle) - sta Multiplee ;sin(Angle)*Force + sec ; X = 90-Angle + lda #90 + sbc Angle + tax +@ + lda sintable,x ; cos(X) + sta Multiplee ; *Force mwa Force Multiplier lda #$0 sta Multiplier+2 @@ -1721,18 +1716,27 @@ DoNotAdd .endr @ ;======vy - lda #0 ;cos(Angle) + ;vy = sin(Angle) for Angle <=90 + ;vy = sin(180-Angle) for 90 < Angle <= 180 + + lda #0 sta vy sta vy+1 sta vy+2 ;-- - lda #90 + ldx Angle + cpx #91 + bcc YangleUnder90 + + lda #180 sec sbc Angle tax + +YangleUnder90 lda sintable,x - sta Multiplee ;cos(Angle)*Force + sta Multiplee ;sin(Angle)*Force mwa Force Multiplier lda #$0 sta Multiplier+2