DrawUnitInfo uses Resource Names instead of hard coded
This commit is contained in:
parent
3ad795a908
commit
ae3c1b52e1
2 changed files with 31 additions and 80 deletions
|
@ -36,6 +36,7 @@
|
|||
<li>Future 1.19 Release<p>
|
||||
<ul>
|
||||
<li>++
|
||||
<li>DrawUnitInfo uses Resource Names instead of hard coded (from Russell Smith).
|
||||
<li>Use first races UI by default, it should be defined (from Russell Smith).
|
||||
<li>Allow victory/defeat backgrounds to not be set (from Russell Smith).
|
||||
<li>Removed 'tower CCL directive (from Russell Smith).
|
||||
|
|
|
@ -181,6 +181,7 @@ global void DrawUnitInfo(const Unit* unit)
|
|||
const UnitType* type;
|
||||
const UnitStats* stats;
|
||||
int i;
|
||||
int vpos;
|
||||
int x;
|
||||
int y;
|
||||
Unit* uins;
|
||||
|
@ -243,24 +244,14 @@ global void DrawUnitInfo(const Unit* unit)
|
|||
}
|
||||
|
||||
//
|
||||
// Show for all players.
|
||||
// Show How much a resource has left for owner and neutral.
|
||||
//
|
||||
if( type->GivesResource==GoldCost ) {
|
||||
VideoDrawText(x+37,y+8+78,GameFont,"Gold Left:");
|
||||
if ( !unit->Value ) {
|
||||
VideoDrawText(x+108,y+8+78,GameFont,"(none)");
|
||||
} else {
|
||||
VideoDrawNumber(x+108,y+8+78,GameFont,unit->Value);
|
||||
}
|
||||
return;
|
||||
}
|
||||
// Not our building and not under construction
|
||||
if( unit->Player!=ThisPlayer
|
||||
|| unit->Orders[0].Action!=UnitActionBuilded ) {
|
||||
if( type->GivesResource==OilCost ) {
|
||||
VideoDrawText(x+47,y+8+78,GameFont,"Oil Left:");
|
||||
if( unit->Player==ThisPlayer || unit->Player->Player==PlayerNumNeutral ) {
|
||||
if( type->GivesResource ) {
|
||||
sprintf(buf,"%s Left:",DefaultResourceNames[type->GivesResource]);
|
||||
VideoDrawText(x+108-VideoTextLength(GameFont,buf),y+8+78,GameFont,buf);
|
||||
if ( !unit->Value ) {
|
||||
VideoDrawText(x+108,y+8+78,GameFont,"(depleted)");
|
||||
VideoDrawText(x+108,y+8+78,GameFont,"(none)");
|
||||
} else {
|
||||
VideoDrawNumber(x+108,y+8+78,GameFont,unit->Value);
|
||||
}
|
||||
|
@ -369,73 +360,32 @@ global void DrawUnitInfo(const Unit* unit)
|
|||
}
|
||||
}
|
||||
|
||||
if( type->CanStore[GoldCost] ) {
|
||||
VideoDrawText(x+20,y+8+61,GameFont,"Production");
|
||||
VideoDrawText(x+43,y+8+77,GameFont,"Gold:");
|
||||
VideoDrawNumber(x+78,y+8+77,GameFont,DefaultIncomes[GoldCost]);
|
||||
// Keep/Stronghold, Castle/Fortress
|
||||
if( unit->Player->Incomes[GoldCost] != DefaultIncomes[GoldCost] ) {
|
||||
vpos=77; // Start of resource drawing
|
||||
for(i=1; i < MaxCosts; ++i) {
|
||||
if( type->CanStore[i] ) {
|
||||
if( vpos==77 ) {
|
||||
VideoDrawText(x+20,y+8+61,GameFont,"Production");
|
||||
}
|
||||
sprintf(buf,"%s:",DefaultResourceNames[i]);
|
||||
VideoDrawText(x+78-VideoTextLength(GameFont,buf),y+8+vpos,GameFont,buf);
|
||||
VideoDrawNumber(x+78,y+8+vpos,GameFont,DefaultIncomes[i]);
|
||||
// Incomes have been upgraded
|
||||
if( unit->Player->Incomes[i] != DefaultIncomes[i] ) {
|
||||
sprintf(buf, "~<+%i~>",
|
||||
unit->Player->Incomes[GoldCost]-DefaultIncomes[GoldCost]);
|
||||
VideoDrawText(x+96,y+8+77,GameFont,buf);
|
||||
unit->Player->Incomes[i]-DefaultIncomes[i]);
|
||||
VideoDrawText(x+96,y+8+vpos,GameFont,buf);
|
||||
}
|
||||
sprintf(buf, "(%+.1f)", unit->Player->Revenue[i] / 1000.0);
|
||||
VideoDrawText(x+120,y+8+vpos,GameFont,buf);
|
||||
vpos+=16;
|
||||
}
|
||||
sprintf(buf, "(%+.1f)", unit->Player->Revenue[GoldCost] / 1000.0);
|
||||
VideoDrawText(x+120,y+8+77,GameFont,buf);
|
||||
|
||||
VideoDrawText(x+22,y+8+93,GameFont,"Lumber:");
|
||||
VideoDrawNumber(x+78,y+8+93,GameFont,DefaultIncomes[WoodCost]);
|
||||
// Lumber mill
|
||||
if( unit->Player->Incomes[WoodCost]!=DefaultIncomes[WoodCost] ) {
|
||||
sprintf(buf, "~<+%i~>",
|
||||
unit->Player->Incomes[WoodCost]-DefaultIncomes[WoodCost]);
|
||||
VideoDrawText(x+96,y+8+93,GameFont,buf);
|
||||
}
|
||||
sprintf(buf, "(%+.1f)", unit->Player->Revenue[WoodCost] / 1000.0);
|
||||
VideoDrawText(x+120,y+8+93,GameFont,buf);
|
||||
|
||||
VideoDrawText(x+54,y+8+109,GameFont,"Oil:");
|
||||
VideoDrawNumber(x+78,y+8+109,GameFont,DefaultIncomes[OilCost]);
|
||||
if( unit->Player->Incomes[OilCost]!=DefaultIncomes[OilCost] ) {
|
||||
sprintf(buf, "~<+%i~>",
|
||||
unit->Player->Incomes[OilCost]-DefaultIncomes[OilCost]);
|
||||
VideoDrawText(x+96,y+8+109,GameFont,buf);
|
||||
}
|
||||
sprintf(buf, "(%+.1f)", unit->Player->Revenue[OilCost] / 1000.0);
|
||||
VideoDrawText(x+120,y+8+109,GameFont,buf);
|
||||
}
|
||||
if( vpos != 77 ) {
|
||||
// We displayed at least one resource
|
||||
return;
|
||||
|
||||
} else if (type->CanStore[WoodCost] ) {
|
||||
VideoDrawText(x+20,y+8+78,GameFont,"Production");
|
||||
VideoDrawText(x+22,y+8+93,GameFont,"Lumber:");
|
||||
// I'm assuming that it will be short enough to fit in the space
|
||||
// I'm also assuming that it won't be 100 - x
|
||||
// and since the default is used for comparison we might as well
|
||||
// use that in the printing too.
|
||||
VideoDrawNumber(x+78,y+8+93,GameFont,DefaultIncomes[WoodCost]);
|
||||
|
||||
if( unit->Player->Incomes[WoodCost] != DefaultIncomes[WoodCost] ) {
|
||||
sprintf(buf, "~<+%i~>",
|
||||
unit->Player->Incomes[WoodCost]-DefaultIncomes[WoodCost]);
|
||||
VideoDrawText(x+96,y+8+93,GameFont,buf);
|
||||
}
|
||||
sprintf(buf, "(%+.1f)", unit->Player->Revenue[WoodCost] / 1000.0);
|
||||
VideoDrawText(x+120,y+8+93,GameFont,buf);
|
||||
return;
|
||||
|
||||
} else if( type->CanStore[OilCost] ) {
|
||||
VideoDrawText(x+20,y+8+78,GameFont,"Production");
|
||||
VideoDrawText(x+54,y+8+93,GameFont,"Oil:");
|
||||
VideoDrawNumber(x+78,y+8+93,GameFont,DefaultIncomes[OilCost]);
|
||||
if( unit->Player->Incomes[OilCost]!=DefaultIncomes[OilCost] ) {
|
||||
sprintf(buf, "~<+%i~>",
|
||||
unit->Player->Incomes[OilCost]-DefaultIncomes[OilCost]);
|
||||
VideoDrawText(x+96,y+8+93,GameFont,buf);
|
||||
}
|
||||
sprintf(buf, "(%+.1f)", unit->Player->Revenue[OilCost] / 1000.0);
|
||||
VideoDrawText(x+120,y+8+93,GameFont,buf);
|
||||
return;
|
||||
|
||||
} else if( type->Transporter && unit->InsideCount ) {
|
||||
}
|
||||
|
||||
if( type->Transporter && unit->InsideCount ) {
|
||||
uins=unit->UnitInside;
|
||||
for( i=0; i<unit->InsideCount; ++i,uins=uins->NextContained ) {
|
||||
DrawUnitIcon(unit->Player
|
||||
|
|
Loading…
Add table
Reference in a new issue