mirror of
https://github.com/pkali/scorch_src.git
synced 2026-05-20 22:34:21 +02:00
draw jmp(indirect) ellimination
This commit is contained in:
@@ -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
|
||||
|
||||
+28
-33
@@ -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 :)
|
||||
|
||||
BIN
Binary file not shown.
+2
-1
@@ -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
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user