diff options
| author | Jonas Ask | 2009-10-24 13:06:23 +0000 |
|---|---|---|
| committer | Jonas Ask | 2009-10-24 13:06:23 +0000 |
| commit | bcc3757c422be47d0889bbab87767c6417d311d3 (patch) | |
| tree | 15f835789acc32cb4966435d11c90094b3eb30e2 /BuildingConfiguration.cpp | |
| parent | fd079cc1f027971e629596ea856c1553ad5960f4 (diff) | |
| download | stonesense-bcc3757c422be47d0889bbab87767c6417d311d3.tar.gz stonesense-bcc3757c422be47d0889bbab87767c6417d311d3.tar.bz2 stonesense-bcc3757c422be47d0889bbab87767c6417d311d3.tar.xz | |
Changed buildings configs to use strings as IDs, this makes things more readable and less breakish
Diffstat (limited to 'BuildingConfiguration.cpp')
| -rw-r--r-- | BuildingConfiguration.cpp | 35 |
1 files changed, 33 insertions, 2 deletions
diff --git a/BuildingConfiguration.cpp b/BuildingConfiguration.cpp index b7a5034..367ba95 100644 --- a/BuildingConfiguration.cpp +++ b/BuildingConfiguration.cpp @@ -1,15 +1,46 @@ #include "SpriteMaps.h"
#include "BuildingConfiguration.h"
+#include "GameBuildings.h"
-BuildingConfiguration::BuildingConfiguration(string name, int ID)
+bool BuildingNamesTranslatedFromGame = false;
+
+BuildingConfiguration::BuildingConfiguration(string name, char* IDstring)
{
+ memset(this, 0, sizeof(BuildingConfiguration));
+
this->name = name;
- this->gameID = ID;
+ this->gameID = -1;
this->width = this->height = 1;
this->canBeFloating = false;
this->canBeAnySize = false;
+
+ int len = (int) strlen(IDstring);
+ if(len > 100) len = 100;
+ memcpy(this->gameIDstr, IDstring, len);
}
BuildingConfiguration::~BuildingConfiguration(void)
{
}
+
+
+
+void TranslateBuildingNames(){
+ //for each config, find it's integer ID
+ for(uint32_t i=0; i < buildingTypes.size(); i++){
+ char* ptr = buildingTypes[i].gameIDstr;
+ uint32_t j;
+ for(j=0; j < v_buildingtypes.size(); j++){
+ if( strcmpi( ptr, v_buildingtypes[j].c_str()) == 0){
+ //assign ID
+ buildingTypes[i].gameID = j;
+ //jump to next buildingType
+ break;
+ }
+ }
+ if(j >= v_buildingtypes.size())
+ WriteErr("Unable to match building '%s' to anything in-game\n", ptr);
+ }
+
+ BuildingNamesTranslatedFromGame = true;
+}
\ No newline at end of file |
