draw jmp(indirect) ellimination

This commit is contained in:
2022-05-28 13:42:42 -04:00
parent 2c640c370a
commit aa74cf133b
5 changed files with 35 additions and 39 deletions
+2 -2
View File
@@ -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
+26 -31
View File
@@ -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
; 0 - plot, %10000000 - LineLength (N), %01000000 - DrawCheck (V)
bit drawFunction
bpl @+
inw LineLength
rts
;-------------JumpPad-------------
DrawCheck .proc
lda tracerflag
ora SmokeTracerFlag
bne ContinueDraw ; ==jmp
@
bvc @+
DrawCheck
lda tracerflag
ora SmokeTracerFlag
yestrace
beq notrace
jsr plot
beq notrace
jsr plot
notrace
;aftertrace
lda HitFlag
@@ -267,12 +250,24 @@ 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
BIN
View File
Binary file not shown.
+2 -1
View File
@@ -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)
+3 -3
View File
@@ -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