Pararena2/Sources/Render.c

1 line
5.8 KiB
C
Raw Permalink Normal View History

/*============================================================*/ /*============================================================*/ /*== ==*/ /*== Rendering Directing Routines ==*/ /*== ==*/ /*============================================================*/ /*============================================================*/ /*======================================================== Includes */ #include "Globals.h" #include "UnivUtilities.h" #include "Render.h" #include "RenderAsm1.h" #include "RenderAsm4.h" #include "RenderQD.h" /*======================================================== Functions */ /*======================================================== FillInTheSrcAndMaskRect */ void FillInTheSrcAndMaskRect (playerType *who) { if (who->selector == kPlayerSelector) { if (leftGoalIsPlayers) who->srcRect = playerSrcRects[who->dirFlagSrc][who->postFlagSrc]; else who->srcRect = opponentSrcRects[who->dirFlagSrc][who->postFlagSrc]; } else { if (leftGoalIsPlayers) who->srcRect = opponentSrcRects[who->dirFlagSrc][who->postFlagSrc]; else who->srcRect = playerSrcRects[who->dirFlagSrc][who->postFlagSrc]; } if (who->arrayFlagMask == kMask) { who->maskRect = playerSrcRects[who->dirFlagMask][who->postFlagMask]; } else { who->maskRect = fadeMaskRects[who->dirFlagMask][who->postFlagMask]; } } /*======================================================== FillInTheSrcAndMaskAddr */ void FillInTheSrcAndMaskAddr (playerType *who) { if (who->selector == kPlayerSelector) { if (leftGoalIsPlayers) who->srcAddr = playerSrcAddrs[who->dirFlagSrc][who->postFlagSrc]; else who->srcAddr = opponentSrcAddrs[who->dirFlagSrc][who->postFlagSrc]; } else { if (leftGoalIsPlayers) who->srcAddr = opponentSrcAddrs[who->dirFlagSrc][who->postFlagSrc]; else who->srcAddr = playerSrcAddrs[who->dirFlagSrc][who->postFlagSrc]; } if (who->arrayFlagMask == kMask) who->maskAddr = maskAddrs[who->dirFlagMask][who->postFlagMask]; else who->maskAddr = fadeMaskAddrs[who->dirFlagMask][who->postFlagMask]; } /*======================================================== DetermineFrameRate */ void DetermineFrameRate (void) { if (doSkipFrames) { if ((Ticks % kFramesToSkip) == 0) drawThisFrame = TRUE; else drawThisFrame = FALSE; } else drawThisFrame = TRUE; } /*======================================================== HandlePreGraphics */ void HandlePreGraphics (void) { if (netGameInSession) { if (imTheMaster) { playerInBack = (thePlayer.zPos > theOpponent.zPos); } else if (!madeThePickUp) { return; } } else { playerInBack = (thePlayer.zPos > theOpponent.zPos); } if (useQD) { FillInTheSrcAndMaskRect(&thePlayer); FillInTheSrcAndMaskRect(&theOpponent); } else { FillInTheSrcAndMaskAddr(&thePlayer); FillInTheSrcAndMaskAddr(&theOpponent); } } /*======================================================== HandlePostGraphics */ void HandlePostGraphics (void) { if (netGameInSession) { if ((!imTheMaster) && (!madeThePickUp)) return; } if (drawThisFrame) { theBall.eraser = theBall.isRect; thePlayer.wasRect = thePlayer.isRect; theOpponent.wasRect = theOpponent.isRect; theBall.wasRect = theBall.isRect; boardCursor.wasRect = boardCursor.isRect; } } /*======================================================== RenderScene */ void RenderScene (void) { if (netGameInSession) { if ((!imTheMaster) && (!madeThePickUp)) return; } if (useQD) { if (isColor) RenderSceneQDC(); else RenderSceneQD1(); } else { switch (isDepth) { case kDisplay1Bit: RenderSceneAsm1(); break; case kDisplay4Bit: RenderSceneAsm4(); break; case kDisplay8Bit: break; } } } /*======================================================== DisplayScoreDigit */ void DisplayScoreDigit (short place, short digit, short who) { if (isColor) DisplayScoreDigitQDC(place, digit, who); else DisplayScoreDigitQD1(place, digit, who); } /*========================================