From f4a5d9759cdf14a5787c2ce9a95841d4481956e8 Mon Sep 17 00:00:00 2001 From: johns <> Date: Fri, 23 Mar 2001 17:25:30 +0000 Subject: [PATCH] Made icons configurable. --- src/unit/upgrade.cpp | 56 ++++++++++++++++++++++++-------------------- 1 file changed, 30 insertions(+), 26 deletions(-) diff --git a/src/unit/upgrade.cpp b/src/unit/upgrade.cpp index 34a54bcfd..9cf4f340d 100644 --- a/src/unit/upgrade.cpp +++ b/src/unit/upgrade.cpp @@ -357,10 +357,10 @@ local Upgrade* AddUpgrade(const char* ident,const char* icon,const int* costs) } if( icon ) { - upgrade->Icon = IconByIdent(icon); + upgrade->Icon.Name = strdup(icon); } else { // automatic generated icon-name sprintf(buf,"icon-%s",ident+8); - upgrade->Icon = IconByIdent(buf); + upgrade->Icon.Name = strdup(buf); } for( i=0; i<MaxCosts; ++i ) { @@ -432,37 +432,43 @@ global Upgrade* UpgradeByIdent(const char* ident) */ global void InitUpgrades(void) { -#ifndef USE_CCL - int z; + int i; +#ifndef USE_CCL if( !UpgradesCount ) { - InitIcons(); // wired, but I need them here // Setup the default upgrades - for( z = 0; z <sizeof(WcUpgrades)/sizeof(*WcUpgrades); z++ ) { + for( i = 0; i <sizeof(WcUpgrades)/sizeof(*WcUpgrades); i++ ) { // FIXME: perhaps we should parse some structures. AddSimpleUpgrade( - WcUpgrades[z].Ident, - WcUpgrades[z].Icon, + WcUpgrades[i].Ident, + WcUpgrades[i].Icon, - WcUpgrades[z].Costs, + WcUpgrades[i].Costs, - WcUpgrades[z].AttackRange, - WcUpgrades[z].SightRange, - WcUpgrades[z].BasicDamage, - WcUpgrades[z].PiercingDamage, - WcUpgrades[z].Armor, - WcUpgrades[z].Speed, - WcUpgrades[z].HitPoints, + WcUpgrades[i].AttackRange, + WcUpgrades[i].SightRange, + WcUpgrades[i].BasicDamage, + WcUpgrades[i].PiercingDamage, + WcUpgrades[i].Armor, + WcUpgrades[i].Speed, + WcUpgrades[i].HitPoints, - WcUpgrades[z].CostsModifier, + WcUpgrades[i].CostsModifier, - WcUpgrades[z].Units); + WcUpgrades[i].Units); } } SetupAllow(); #endif + + // + // Resolve the icons. + // + for( i=0; i<UpgradesCount; ++i ) { + Upgrades[i].Icon.Icon=IconByIdent(Upgrades[i].Icon.Name); + } } /** @@ -774,7 +780,7 @@ global void ParsePudUGRD(const char* ugrd,int length) costs[GoldCost]=gold; costs[WoodCost]=lumber; costs[OilCost]=oil; - AddUpgrade(UpgradeWcNames[i],IdentOfIcon(icon),costs); + AddUpgrade(UpgradeWcNames[i],IconWcNames[icon],costs); #else if( UpgradesCount ) { DebugLevel0Fn("// FIXME: no bock to write this better\n"); @@ -788,7 +794,7 @@ global void ParsePudUGRD(const char* ugrd,int length) for( j=OilCost+1; j<MaxCosts; ++j ) { WcUpgrades[i].Costs[j]=0; }} - WcUpgrades[i].Icon=IdentOfIcon(icon); + WcUpgrades[i].Icon=IconWcNames[icon]; #endif // group+flags are to mystic to be implemented @@ -814,7 +820,7 @@ global void SaveUpgrades(FILE* file) // for( i=0; i<UpgradesCount; ++i ) { fprintf(file,"(define-upgrade '%s 'icon '%s\n" - ,Upgrades[i].Ident,IdentOfIcon(Upgrades[i].Icon)); + ,Upgrades[i].Ident,Upgrades[i].Icon.Name); fprintf(file," 'costs #("); for( j=0; j<MaxCosts; ++j ) { fprintf(file," %5d",Upgrades[i].Costs[j]); @@ -1071,8 +1077,6 @@ local SCM CclDefineUpgrade(SCM list) int n; int j; - InitIcons(); - // Identifier ident=gh_scm2newstr(gh_car(list),NULL); @@ -1245,13 +1249,13 @@ global void UpgradesCclRegister(void) #if 0 void UpgradesDone(void) // free upgrade/allow structures { - int z; + int i; memset( &Upgrades, 0, sizeof(Upgrades) ); UpgradesCount = 0; - for ( z = 0; z < UpgradeModifiersCount; z++ ) - free( UpgradeModifiers[z] ); + for ( i = 0; i < UpgradeModifiersCount; i++ ) + free( UpgradeModifiers[i] ); UpgradeModifiersCount = 0; } #endif