diff --git a/ai.asm b/ai.asm index 838f4b0..4486f9d 100644 --- a/ai.asm +++ b/ai.asm @@ -123,11 +123,11 @@ tankIsOnTheRight forceNow mwa #100 RandBoundaryLow mwa #800 RandBoundaryHigh - ldx TankNr + ldx TankNr ;this is possibly not necessary jsr RandomizeForce endo - ;ldx TankNr ;this is possibly not necessary + ldx TankNr ;this is possibly not necessary lda NewAngle sta PreviousAngle,x lda EnergyTableL,x diff --git a/grafproc.asm b/grafproc.asm index ded2450..50f841d 100644 --- a/grafproc.asm +++ b/grafproc.asm @@ -214,37 +214,20 @@ LineGoesLeft ; line goes left - we are reversing X sbw xtempDRAW temp xdraw ; XI PutPixelinDraw - jsr DrawJumpPad -; end of the special PLOT for DRAW - - ; XI=XI+1 - ; UNTIL XI=XK - inw XI - cpw XI XK - jne DrawLoop - -EndOfDraw - mwa xtempDRAW xdraw - mva ytempDRAW ydraw - rts -.endp - -;-------------JumpPad------------- -DrawJumpPad - jmp (DrawJumpAddr) -Drawplot - jmp plot -DrawLen - inw LineLength - rts -;-------------JumpPad------------- -DrawCheck .proc - lda tracerflag - ora SmokeTracerFlag + ; 0 - plot, %10000000 - LineLength (N), %01000000 - DrawCheck (V) + bit drawFunction + bpl @+ + inw LineLength + bne ContinueDraw ; ==jmp +@ + bvc @+ +DrawCheck + lda tracerflag + ora SmokeTracerFlag yestrace - beq notrace - jsr plot + beq notrace + jsr plot notrace ;aftertrace lda HitFlag @@ -267,14 +250,26 @@ CheckCollisionDraw cmp (temp),y bcc StopHitChecking - mva #1 HitFlag mwa xdraw XHit mwa ydraw YHit - - + mva #1 HitFlag StopHitChecking + jmp ContinueDraw +@ + jsr plot + +ContinueDraw + ; XI=XI+1 + ; UNTIL XI=XK + inw XI + cpw XI XK + jne DrawLoop + +EndOfDraw + mwa xtempDRAW xdraw + mva ytempDRAW ydraw rts -.endp +.endp ;-------------------------------------------------- circle .proc ;fxxxing good circle drawing :) diff --git a/scorch.xex b/scorch.xex index e27f497..da88c92 100644 Binary files a/scorch.xex and b/scorch.xex differ diff --git a/variables.asm b/variables.asm index 2f570b9..033d96d 100644 --- a/variables.asm +++ b/variables.asm @@ -33,6 +33,8 @@ RoundNrDisplay .byte $ff variablesStart ; zeroing starts here +drawFunction .ds 1 ; 0 - plot, %10000000 - LineLength (N), %01000000 - DrawCheck (V) +;-------------- escFlag .ds 1 ;-------------- sfx_effect .ds 1 @@ -159,7 +161,6 @@ sandhogflag .DS 1 ; (0 digger, 8 sandhog) ;ofdirt magic .DS 2 ; was tempor2, but it was not compiling!!! (bug in OMC65) ;draw -DrawJumpAddr .DS 2 HowToDraw .DS 1 ; bits here mean ; 0 - negative X (go up) diff --git a/weapons.asm b/weapons.asm index 00ace49..9d38b4f 100644 --- a/weapons.asm +++ b/weapons.asm @@ -544,7 +544,7 @@ DiggerCharacter sbc EndOfTheBarrelY,y sta ybyte mva #0 ybyte+1 - mwa #Drawplot DrawJumpAddr + mva #0 drawFunction mwa xdraw LaserCoordinate mwa ydraw LaserCoordinate+2 mwa xbyte LaserCoordinate+4 @@ -615,7 +615,7 @@ ExplosionLoop2 ;check tanks' distance from the centre of the explosion - mwa #DrawLen DrawJumpAddr + mva #%10000000 drawFunction ;the above switches Draw to measuring length ;trick is easy - how many pixels does it take to draw ;a line from one point to another @@ -1535,7 +1535,7 @@ noSmokeTracer RepeatIfSmokeTracer mwa ytraj+1 Ytrajold+1 mwa xtraj+1 Xtrajold+1 - mwa #DrawCheck DrawJumpAddr + mwa #%01000000 drawFunction lda #0 sta Result