diff --git a/cpp_version/EU3toV2Converter/EU3toV2Converter.cpp b/cpp_version/EU3toV2Converter/EU3toV2Converter.cpp index 263b0b0ed..06d18c788 100644 --- a/cpp_version/EU3toV2Converter/EU3toV2Converter.cpp +++ b/cpp_version/EU3toV2Converter/EU3toV2Converter.cpp @@ -117,7 +117,7 @@ int main(int argc, char * argv[]) //changed from TCHAR, no use when everything e printf("Error: Could not open countries.txt\n"); return 1; } - destWorld.addPotentialCountries(V2CountriesInput); + destWorld.addPotentialCountries(V2CountriesInput, V2Loc); V2CountriesInput.close(); initParser(); diff --git a/cpp_version/EU3toV2Converter/V2Country.cpp b/cpp_version/EU3toV2Converter/V2Country.cpp index dd1952faa..71978693e 100644 --- a/cpp_version/EU3toV2Converter/V2Country.cpp +++ b/cpp_version/EU3toV2Converter/V2Country.cpp @@ -2,10 +2,11 @@ -void V2Country::init(string newTag, string newCountryFile) +void V2Country::init(string newTag, string newCountryFile, vector newParties) { tag = newTag; countryFile = newCountryFile; + parties = newParties; } @@ -48,6 +49,12 @@ void V2Country::output(FILE* output) fprintf(output, " capital=%d\n", capital); } outputCountryHeader(output); + fprintf(output, " ruling_party=%d\n", parties[0]); + for (unsigned int i = 0; i < parties.size(); i++) + { + fprintf(output, " active_party=%d\n", parties[i]); + } + outputCountryHeader2(output); outputCountryMiddle(output); if (civilized) { diff --git a/cpp_version/EU3toV2Converter/V2Country.h b/cpp_version/EU3toV2Converter/V2Country.h index 9d4b7a77f..c3432c6f6 100644 --- a/cpp_version/EU3toV2Converter/V2Country.h +++ b/cpp_version/EU3toV2Converter/V2Country.h @@ -9,7 +9,7 @@ using namespace std; class V2Country { public: - void init(string tag, string countryFile); + void init(string tag, string countryFile, vector parties); string getTag(); void setSourceCountryIndex(int); void addState(V2State); @@ -22,6 +22,7 @@ class V2Country vector states; int capital; bool civilized; + vector parties; int sourceCountryIndex; string countryFile; }; \ No newline at end of file diff --git a/cpp_version/EU3toV2Converter/V2World.cpp b/cpp_version/EU3toV2Converter/V2World.cpp index 2cdef9f66..f3f012019 100644 --- a/cpp_version/EU3toV2Converter/V2World.cpp +++ b/cpp_version/EU3toV2Converter/V2World.cpp @@ -21,8 +21,9 @@ void V2World::init(Object* obj) } -void V2World::addPotentialCountries(ifstream &countriesMapping) +void V2World::addPotentialCountries(ifstream &countriesMapping, string V2Loc) { + int partiesIndex = 0; while (!countriesMapping.eof()) { string line; @@ -35,18 +36,35 @@ void V2World::addPotentialCountries(ifstream &countriesMapping) string tag; tag = line.substr(0, 3); + + string countryFileName; + int start = line.find_first_of('/'); + int size = line.find_last_of('\"') - start; + countryFileName = line.substr(start, size); + + int oldPartiesIndex = partiesIndex; + ifstream countryFile( (V2Loc + "\\common\\countries\\" + countryFileName).c_str()); + while (!countryFile.eof()) + { + string line2; + getline(countryFile, line2); + if (line2 == "party = {") + { + partiesIndex++; + } + } + vector parties; + for(int i = oldPartiesIndex; i < partiesIndex; i++) + { + parties.push_back(i); + } + if (tag == "REB") { continue; } - - string countryFile; - int start = line.find_first_of('/'); - int size = line.find_last_of('\"') - start; - countryFile = line.substr(start, size); - V2Country newCountry; - newCountry.init(tag, countryFile); + newCountry.init(tag, countryFileName, parties); potentialCountries.push_back(newCountry); } } @@ -94,7 +112,8 @@ void V2World::convertCountries(EU3World sourceWorld, countryMapping countryMap) { log("Error: Could not convert EU3 tag %s to V2.\n", sourceCountries[i].getTag().c_str()); printf("Error: Could not convert EU3 tag %s to V2.\n", sourceCountries[i].getTag().c_str()); - newCountry.init("", ""); + vector empty; + newCountry.init("", "", empty); } countries.push_back(newCountry); diff --git a/cpp_version/EU3toV2Converter/V2World.h b/cpp_version/EU3toV2Converter/V2World.h index 49730f6fc..68866eb43 100644 --- a/cpp_version/EU3toV2Converter/V2World.h +++ b/cpp_version/EU3toV2Converter/V2World.h @@ -17,7 +17,7 @@ using namespace std; class V2World { public: void init(Object* obj); - void addPotentialCountries(ifstream &countriesMapping); + void addPotentialCountries(ifstream &countriesMapping, string V2Loc); vector getPotentialTags(); void convertCountries(EU3World sourceWorld, countryMapping countryMap); void convertProvinces(EU3World sourceWorld, provinceMapping provinceMap, countryMapping countryMap); diff --git a/cpp_version/EU3toV2Converter/tempFuncs.cpp b/cpp_version/EU3toV2Converter/tempFuncs.cpp index a5860b015..502ed8ed3 100644 --- a/cpp_version/EU3toV2Converter/tempFuncs.cpp +++ b/cpp_version/EU3toV2Converter/tempFuncs.cpp @@ -66,10 +66,10 @@ void outputCountryHeader(FILE* output) fprintf(output, " conservative=1.00000\n"); fprintf(output, " liberal=0.00000\n"); fprintf(output, " }\n"); - fprintf(output, " ruling_party=1\n"); - fprintf(output, " active_party=1\n"); - fprintf(output, " active_party=2\n"); - fprintf(output, " active_party=5\n"); +} + +void outputCountryHeader2(FILE* output) +{ fprintf(output, " government=absolute_monarchy\n"); fprintf(output, " rich_tax=\n"); fprintf(output, " {\n"); diff --git a/cpp_version/EU3toV2Converter/tempFuncs.h b/cpp_version/EU3toV2Converter/tempFuncs.h index 60786129b..fc366b1ff 100644 --- a/cpp_version/EU3toV2Converter/tempFuncs.h +++ b/cpp_version/EU3toV2Converter/tempFuncs.h @@ -10,6 +10,7 @@ using namespace std; void outputHeader(FILE*); void outputPopStuff(FILE*, int, string); void outputCountryHeader(FILE*); +void outputCountryHeader2(FILE*); void outputCountryMiddle(FILE*);