Fixed up font handling -- print warnings instead of crashing
git-svn-id: svn://svn.code.sf.net/p/sc2/code/trunk@2284 8092fc87-c524-0410-9efc-e669fe64eaf9
This commit is contained in:
+17
-4
@@ -957,9 +957,6 @@ static soi_t* loadSois(const char* key, int count, script_t* scr)
|
|||||||
|
|
||||||
sprintf(buf, "%s.%d.%s", key, i, "name");
|
sprintf(buf, "%s.%d.%s", key, i, "name");
|
||||||
soi->name = scr_GetString(buf);
|
soi->name = scr_GetString(buf);
|
||||||
if (!soi->name)
|
|
||||||
continue;
|
|
||||||
|
|
||||||
sprintf(buf, "%s.%d.%s", key, i, "color");
|
sprintf(buf, "%s.%d.%s", key, i, "color");
|
||||||
parseColor(&soi->clr, buf, 0);
|
parseColor(&soi->clr, buf, 0);
|
||||||
sprintf(buf, "%s.%d.%s", key, i, "center.x");
|
sprintf(buf, "%s.%d.%s", key, i, "center.x");
|
||||||
@@ -1697,7 +1694,10 @@ static void drawGrid(const mg_driver_t* dst, script_t* scr)
|
|||||||
|
|
||||||
// draw grid numbers
|
// draw grid numbers
|
||||||
if (!scr->gridfnt || !gxstep1)
|
if (!scr->gridfnt || !gxstep1)
|
||||||
|
{
|
||||||
|
mg_verbose(2, "Warning: not enough data to render grid numbers\n");
|
||||||
return; // nothing else to do
|
return; // nothing else to do
|
||||||
|
}
|
||||||
|
|
||||||
for (i = 1, x = r.x + gxstep1; x < r.x + r.w - gxstep1 / 2; x += gxstep1, ++i)
|
for (i = 1, x = r.x + gxstep1; x < r.x + r.w - gxstep1 / 2; x += gxstep1, ++i)
|
||||||
{
|
{
|
||||||
@@ -2033,6 +2033,11 @@ static void drawClusteredNames(const mg_driver_t* dst, script_t* scr)
|
|||||||
|
|
||||||
static void drawClusterNames(const mg_driver_t* dst, script_t* scr)
|
static void drawClusterNames(const mg_driver_t* dst, script_t* scr)
|
||||||
{
|
{
|
||||||
|
if (!scr->cnamefnt)
|
||||||
|
{
|
||||||
|
mg_verbose(2, "Warning: not enough data to render cluster names (missing font)\n");
|
||||||
|
return;
|
||||||
|
}
|
||||||
if (!scr->stars || !scr->clusters)
|
if (!scr->stars || !scr->clusters)
|
||||||
{
|
{
|
||||||
mg_verbose(2, "Warning: not enough data to render cluster names\n");
|
mg_verbose(2, "Warning: not enough data to render cluster names\n");
|
||||||
@@ -2106,6 +2111,11 @@ static void drawStarDesignations(const mg_driver_t* dst, script_t* scr)
|
|||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
|
if (!scr->desigfnt)
|
||||||
|
{
|
||||||
|
mg_verbose(2, "Warning: not enough data to render star designations (missing font)\n");
|
||||||
|
return;
|
||||||
|
}
|
||||||
if (!scr->stars || !scr->desigtab || scr->cdesigtab == 0 || !scr->clusters)
|
if (!scr->stars || !scr->desigtab || scr->cdesigtab == 0 || !scr->clusters)
|
||||||
{
|
{
|
||||||
mg_verbose(2, "Warning: not enough data to render star designations\n");
|
mg_verbose(2, "Warning: not enough data to render star designations\n");
|
||||||
@@ -2156,8 +2166,11 @@ static void drawSphereNames(const mg_driver_t* dst, script_t* scr)
|
|||||||
double dstx, dsty;
|
double dstx, dsty;
|
||||||
mg_color_t clr = scr->backclr;
|
mg_color_t clr = scr->backclr;
|
||||||
|
|
||||||
if (!soi->name)
|
if (!soi->name || !soi->font)
|
||||||
|
{
|
||||||
|
mg_verbose(2, "Warning: not enough data to render SoI name (%d)\n", i + 1);
|
||||||
continue;
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
r.x = r.y = 0;
|
r.x = r.y = 0;
|
||||||
dst->getTextSize(soi->font, soi->name, &r);
|
dst->getTextSize(soi->font, soi->name, &r);
|
||||||
|
|||||||
Reference in New Issue
Block a user