/** Draws a Myth/FF7 style viewing window */ static void drawViewingWindow(float radarX, float radarY, int x, int y, float pixSizeH, float pixSizeV) { Vector3i v[4], tv[4], centre; int shortX, longX, yDrop, yDropVar; int dif = getDistanceAdjust(); int dif2 = getLengthAdjust(); PIELIGHT colour; shortX = ((visibleTiles.x / 4) - (dif / 6)) * pixSizeH; longX = ((visibleTiles.x / 2) - (dif / 4)) * pixSizeH; yDropVar = ((visibleTiles.y / 2) - (dif2 / 3)) * pixSizeV; yDrop = ((visibleTiles.y / 2) - dif2 / 3) * pixSizeV; v[0].x = longX; v[0].y = -yDropVar; v[1].x = -longX; v[1].y = -yDropVar; v[2].x = shortX; v[2].y = yDrop; v[3].x = -shortX; v[3].y = yDrop; centre.x = radarX + x - scrollMinX*pixSizeH/2; centre.y = radarY + y - scrollMinY*pixSizeV/2; RotateVector2D(v,tv,¢re,player.r.y,4); switch (getCampaignNumber()) { case 1: case 2: // white colour.byte.r = UBYTE_MAX; colour.byte.g = UBYTE_MAX; colour.byte.b = UBYTE_MAX; colour.byte.a = 0x3f; break; case 3: // greenish colour.byte.r = 0x3f; colour.byte.a = 0x3f; colour.byte.g = UBYTE_MAX; colour.byte.b = 0x3f; default: // black colour.rgba = 0; colour.byte.a = 0x3f; break; } /* Send the four points to the draw routine and the clip box params */ pie_DrawViewingWindow(tv, radarX, radarY, radarX + radarWidth, radarY + radarHeight, colour); }
static void DrawRadarExtras() { pie_DrawViewingWindow(); RenderWindowFrame(FRAME_RADAR, -1, -1, radarWidth + 2, radarHeight + 2); }
static void DrawRadarExtras(const glm::mat4 &modelViewProjectionMatrix) { pie_DrawViewingWindow(modelViewProjectionMatrix); RenderWindowFrame(FRAME_RADAR, -1, -1, radarWidth + 2, radarHeight + 2, modelViewProjectionMatrix); }