/** 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/2) + ((visibleTiles.x - scrollMinX) * pixSizeH) / 2; centre.y = radarY + (y - scrollMinY/2) + ((visibleTiles.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); }
/** Draws a Myth/FF7 style viewing window */ static void setViewingWindow() { float pixSizeH, pixSizeV; Vector3i v[4], tv[4], centre; int shortX, longX, yDrop, yDropVar; int dif = getDistanceAdjust(); int dif2 = getLengthAdjust(); PIELIGHT colour; CalcRadarPixelSize(&pixSizeH, &pixSizeV); int x = player.p.x * pixSizeH / TILE_UNITS; int y = player.p.z * pixSizeV / TILE_UNITS; 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 = x - scrollMinX * pixSizeH; centre.y = y - scrollMinY * pixSizeV; 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.g = UBYTE_MAX; colour.byte.b = 0x3f; colour.byte.a = 0x3f; break; default: // black colour.rgba = 0; colour.byte.a = 0x3f; break; } /* Send the four points to the draw routine and the clip box params */ pie_SetViewingWindow(tv, colour); }