Adapt missile starfield to match my own hardware.

This commit is contained in:
Christian Speckner 2017-03-18 14:14:03 +01:00
parent 0c7b9aa079
commit 41e2f77333
1 changed files with 21 additions and 19 deletions

View File

@ -176,18 +176,20 @@ void Missile::render()
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
void Missile::tick(bool isReceivingMclock)
{
bool starfieldEffect = myIsMoving && isReceivingMclock;
if (myDecodes[myCounter]) {
myIsRendering = true;
myRenderCounter = Count::renderCounterOffset;
uInt8 starfieldDelta = (myCounter + 160 - myLastMovementTick) % 4;
if (starfieldEffect && starfieldDelta == 3 && myWidth < 4) myRenderCounter++;
} else if (myIsRendering) {
bool starfieldEffect = myIsMoving && isReceivingMclock;
uInt8 starfieldDelta = (myCounter + 160 - myLastMovementTick + 2) % 4;
if (myRenderCounter == -2 && starfieldEffect) {
switch (starfieldDelta) {
case 3:
myEffectiveWidth = myWidth == 1 ? 2 : myWidth;
if (myWidth < 4) myRenderCounter++;
break;
case 2:
@ -199,10 +201,10 @@ void Missile::tick(bool isReceivingMclock)
break;
}
} else if (
myIsRendering && ++myRenderCounter >= (starfieldEffect ? myEffectiveWidth : myWidth)
)
myIsRendering = false;
}
if (++myRenderCounter >= (starfieldEffect ? myEffectiveWidth : myWidth)) myIsRendering = false;
}
if (++myCounter >= 160) myCounter = 0;
}