mirror of
https://github.com/1dot13/source.git
synced 2026-09-02 14:36:06 +02:00
- reworked cities.xml handling section, added new fields
git-svn-id: https://ja2svn.mooo.com/source/ja2/trunk/GameSource/ja2_v1.13/Build@598 3b4a5df2-a311-0410-b5c6-a8a6f20db521
This commit is contained in:
@@ -129,39 +129,39 @@ UINT32 uiPercentLoyaltyDecreaseForCivMurder[]={
|
|||||||
|
|
||||||
// on a scale of 1-100, this is a measure of how much each town hates the Queen's opression & is willing to stand against it
|
// on a scale of 1-100, this is a measure of how much each town hates the Queen's opression & is willing to stand against it
|
||||||
// it primarily controls the RATE of loyalty change in each town: the loyalty effect of the same events depends on it
|
// it primarily controls the RATE of loyalty change in each town: the loyalty effect of the same events depends on it
|
||||||
UINT8 gubTownRebelSentiment[ NUM_TOWNS ] =
|
UINT8 gubTownRebelSentiment[ NUM_TOWNS ]; // =
|
||||||
{
|
//{
|
||||||
0, // not a town - blank sector index
|
// 0, // not a town - blank sector index
|
||||||
90, // OMERTA, - They ARE the rebels!!!
|
// 90, // OMERTA, - They ARE the rebels!!!
|
||||||
30, // DRASSEN, - Rebel friendly, makes it pretty easy to get first mine's income going at the start
|
// 30, // DRASSEN, - Rebel friendly, makes it pretty easy to get first mine's income going at the start
|
||||||
12, // ALMA - Military town, high loyalty to Queen, need quests to get 100%
|
// 12, // ALMA - Military town, high loyalty to Queen, need quests to get 100%
|
||||||
15, // GRUMM, - Close to Meduna, strong influence
|
// 15, // GRUMM, - Close to Meduna, strong influence
|
||||||
20, // TIXA, - Not a real town
|
// 20, // TIXA, - Not a real town
|
||||||
15, // CAMBRIA, - Artificially much lower 'cause it's big and central and too easy to get loyalty up there
|
// 15, // CAMBRIA, - Artificially much lower 'cause it's big and central and too easy to get loyalty up there
|
||||||
20, // SAN_MONA,- Neutral ground, loyalty doesn't vary
|
// 20, // SAN_MONA,- Neutral ground, loyalty doesn't vary
|
||||||
20, // ESTONI, - Not a real town
|
// 20, // ESTONI, - Not a real town
|
||||||
20, // ORTA, - Not a real town
|
// 20, // ORTA, - Not a real town
|
||||||
12, // BALIME, - Rich town, high loyalty to Queen
|
// 12, // BALIME, - Rich town, high loyalty to Queen
|
||||||
10, // MEDUNA, - Enemy HQ, for God's sake!
|
// 10, // MEDUNA, - Enemy HQ, for God's sake!
|
||||||
35, // CHITZENA, - Artificially high 'cause there's not enough fights near it to get the loyalty up otherwise
|
// 35, // CHITZENA, - Artificially high 'cause there's not enough fights near it to get the loyalty up otherwise
|
||||||
};
|
//};
|
||||||
|
|
||||||
BOOLEAN gfTownUsesLoyalty[ NUM_TOWNS ] =
|
BOOLEAN gfTownUsesLoyalty[ NUM_TOWNS ];// =
|
||||||
{
|
//{
|
||||||
FALSE, // not a town - blank sector index
|
// FALSE, // not a town - blank sector index
|
||||||
TRUE , // OMERTA
|
// TRUE , // OMERTA
|
||||||
TRUE, // DRASSEN
|
// TRUE, // DRASSEN
|
||||||
TRUE, // ALMA
|
// TRUE, // ALMA
|
||||||
TRUE, // GRUMM
|
// TRUE, // GRUMM
|
||||||
FALSE, // TIXA
|
// FALSE, // TIXA
|
||||||
TRUE, // CAMBRIA
|
// TRUE, // CAMBRIA
|
||||||
FALSE, // SAN_MONA
|
// FALSE, // SAN_MONA
|
||||||
FALSE, // ESTONI
|
// FALSE, // ESTONI
|
||||||
FALSE, // ORTA
|
// FALSE, // ORTA
|
||||||
TRUE, // BALIME
|
// TRUE, // BALIME
|
||||||
TRUE, // MEDUNA
|
// TRUE, // MEDUNA
|
||||||
TRUE, // CHITZENA
|
// TRUE, // CHITZENA
|
||||||
};
|
//};
|
||||||
|
|
||||||
// location of first enocunter with enemy
|
// location of first enocunter with enemy
|
||||||
INT16 sWorldSectorLocationOfFirstBattle = 0;
|
INT16 sWorldSectorLocationOfFirstBattle = 0;
|
||||||
|
|||||||
+111
-111
@@ -347,6 +347,9 @@ void CrippledVersionFailureToLoadMapCheck();
|
|||||||
#include "tiledat.h"
|
#include "tiledat.h"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
extern UINT8 gubTownRebelSentiment[ NUM_TOWNS ];
|
||||||
|
extern BOOLEAN gfTownUsesLoyalty[ NUM_TOWNS ];
|
||||||
|
|
||||||
#define MAX_CHAR_DATA_LENGTH 500
|
#define MAX_CHAR_DATA_LENGTH 500
|
||||||
|
|
||||||
typedef enum
|
typedef enum
|
||||||
@@ -365,6 +368,8 @@ typedef enum
|
|||||||
CITYTABLE_ELEMENT_TOWNPOINT,
|
CITYTABLE_ELEMENT_TOWNPOINT,
|
||||||
CITYTABLE_ELEMENT_TOWNPOINT_X,
|
CITYTABLE_ELEMENT_TOWNPOINT_X,
|
||||||
CITYTABLE_ELEMENT_TOWNPOINT_Y,
|
CITYTABLE_ELEMENT_TOWNPOINT_Y,
|
||||||
|
CITYTABLE_ELEMENT_USES_LOYALTY,
|
||||||
|
CITYTABLE_ELEMENT_REBEL_SENTIMENT
|
||||||
} CITYTABLE_PARSE_STAGE;
|
} CITYTABLE_PARSE_STAGE;
|
||||||
|
|
||||||
typedef struct
|
typedef struct
|
||||||
@@ -373,6 +378,8 @@ typedef struct
|
|||||||
UINT8 ubBaseX;
|
UINT8 ubBaseX;
|
||||||
UINT8 ubBaseY;
|
UINT8 ubBaseY;
|
||||||
POINT townPoint;
|
POINT townPoint;
|
||||||
|
BOOLEAN townUsesLoyalty;
|
||||||
|
UINT8 townRebelSentiment;
|
||||||
CHAR8 cityName[MAX_TOWN_NAME_LENGHT];
|
CHAR8 cityName[MAX_TOWN_NAME_LENGHT];
|
||||||
} cityInfo;
|
} cityInfo;
|
||||||
|
|
||||||
@@ -427,6 +434,8 @@ citytableStartElementHandle(void *userData, const char *name, const char **atts)
|
|||||||
|
|
||||||
memset(sBaseSectorList,0,sizeof(sBaseSectorList));
|
memset(sBaseSectorList,0,sizeof(sBaseSectorList));
|
||||||
memset(pTownPoints,0,sizeof(pTownPoints));
|
memset(pTownPoints,0,sizeof(pTownPoints));
|
||||||
|
memset(gfTownUsesLoyalty,0,sizeof(gfTownUsesLoyalty));
|
||||||
|
memset(gubTownRebelSentiment,0,sizeof(gubTownRebelSentiment));
|
||||||
|
|
||||||
pData->maxReadDepth++; //we are not skipping this element
|
pData->maxReadDepth++; //we are not skipping this element
|
||||||
}
|
}
|
||||||
@@ -438,7 +447,7 @@ citytableStartElementHandle(void *userData, const char *name, const char **atts)
|
|||||||
|
|
||||||
pData->maxReadDepth++; //we are not skipping this element
|
pData->maxReadDepth++; //we are not skipping this element
|
||||||
}
|
}
|
||||||
else if(strcmp(name, "cityName") == 0 && pData->curElement == CITYTABLE_ELEMENT_CITY)
|
else if(strcmp(name, "townName") == 0 && pData->curElement == CITYTABLE_ELEMENT_CITY)
|
||||||
{
|
{
|
||||||
pData->curElement = CITYTABLE_ELEMENT_NAME;
|
pData->curElement = CITYTABLE_ELEMENT_NAME;
|
||||||
pData->maxReadDepth++; //we are not skipping this element
|
pData->maxReadDepth++; //we are not skipping this element
|
||||||
@@ -448,6 +457,16 @@ citytableStartElementHandle(void *userData, const char *name, const char **atts)
|
|||||||
pData->curElement = CITYTABLE_ELEMENT_INDEX;
|
pData->curElement = CITYTABLE_ELEMENT_INDEX;
|
||||||
pData->maxReadDepth++; //we are not skipping this element
|
pData->maxReadDepth++; //we are not skipping this element
|
||||||
}
|
}
|
||||||
|
else if(strcmp(name, "townUsesLoyalty") == 0 && pData->curElement == CITYTABLE_ELEMENT_CITY)
|
||||||
|
{
|
||||||
|
pData->curElement = CITYTABLE_ELEMENT_USES_LOYALTY;
|
||||||
|
pData->maxReadDepth++; //we are not skipping this element
|
||||||
|
}
|
||||||
|
else if(strcmp(name, "townRebelSentiment") == 0 && pData->curElement == CITYTABLE_ELEMENT_CITY)
|
||||||
|
{
|
||||||
|
pData->curElement = CITYTABLE_ELEMENT_REBEL_SENTIMENT;
|
||||||
|
pData->maxReadDepth++; //we are not skipping this element
|
||||||
|
}
|
||||||
else if(strcmp(name, "baseSector") == 0 && pData->curElement == CITYTABLE_ELEMENT_CITY)
|
else if(strcmp(name, "baseSector") == 0 && pData->curElement == CITYTABLE_ELEMENT_CITY)
|
||||||
{
|
{
|
||||||
pData->curElement = CITYTABLE_ELEMENT_BASESECTOR;
|
pData->curElement = CITYTABLE_ELEMENT_BASESECTOR;
|
||||||
@@ -538,8 +557,12 @@ citytableEndElementHandle(void *userData, const char *name)
|
|||||||
{
|
{
|
||||||
pData->curElement = CITYTABLE_ELEMENT_CITYLIST;
|
pData->curElement = CITYTABLE_ELEMENT_CITYLIST;
|
||||||
|
|
||||||
sBaseSectorList[pData->curCityInfo.uiIndex-1] = SECTOR(pData->curCityInfo.ubBaseX,pData->curCityInfo.ubBaseY);
|
sBaseSectorList [pData->curCityInfo.uiIndex-1] = SECTOR(pData->curCityInfo.ubBaseX,pData->curCityInfo.ubBaseY);
|
||||||
pTownPoints[pData->curCityInfo.uiIndex] = pData->curCityInfo.townPoint;
|
pTownPoints [pData->curCityInfo.uiIndex ] = pData->curCityInfo.townPoint;
|
||||||
|
gfTownUsesLoyalty [pData->curCityInfo.uiIndex ] = pData->curCityInfo.townUsesLoyalty;
|
||||||
|
gubTownRebelSentiment [pData->curCityInfo.uiIndex ] = pData->curCityInfo.townRebelSentiment;
|
||||||
|
|
||||||
|
mbstowcs( pTownNames[pData->curCityInfo.uiIndex], pData->curCityInfo.cityName, MAX_TOWN_NAME_LENGHT);
|
||||||
}
|
}
|
||||||
else if(strcmp(name, "uiIndex") == 0 && pData->curElement == CITYTABLE_ELEMENT_INDEX)
|
else if(strcmp(name, "uiIndex") == 0 && pData->curElement == CITYTABLE_ELEMENT_INDEX)
|
||||||
{
|
{
|
||||||
@@ -547,13 +570,31 @@ citytableEndElementHandle(void *userData, const char *name)
|
|||||||
|
|
||||||
pData->curCityInfo.uiIndex = atol(pData->szCharData);
|
pData->curCityInfo.uiIndex = atol(pData->szCharData);
|
||||||
}
|
}
|
||||||
else if(strcmp(name, "cityName") == 0 && pData->curElement == CITYTABLE_ELEMENT_NAME)
|
else if(strcmp(name, "townName") == 0 && pData->curElement == CITYTABLE_ELEMENT_NAME)
|
||||||
{
|
{
|
||||||
// Copy this string into the pTownNames array
|
strncpy(pData->curCityInfo.cityName, (const char *) pData->szCharData, MAX_TOWN_NAME_LENGHT - 1);
|
||||||
mbstowcs(pTownNames[pData->curCityInfo.uiIndex], (const char *) pData->szCharData, MAX_TOWN_NAME_LENGHT);
|
pData->curCityInfo.cityName[MAX_TOWN_NAME_LENGHT - 1] = 0;
|
||||||
pTownNames[pData->curCityInfo.uiIndex][MAX_TOWN_NAME_LENGHT - 1] = 0;
|
|
||||||
pData->curElement = CITYTABLE_ELEMENT_CITY;
|
pData->curElement = CITYTABLE_ELEMENT_CITY;
|
||||||
}
|
}
|
||||||
|
else if(strcmp(name, "townUsesLoyalty") == 0 && pData->curElement == CITYTABLE_ELEMENT_USES_LOYALTY )
|
||||||
|
{
|
||||||
|
pData->curElement = CITYTABLE_ELEMENT_CITY;
|
||||||
|
|
||||||
|
pData->curCityInfo.townUsesLoyalty = (BOOLEAN)atol(pData->szCharData);
|
||||||
|
}
|
||||||
|
else if(strcmp(name, "townRebelSentiment") == 0 && pData->curElement == CITYTABLE_ELEMENT_REBEL_SENTIMENT )
|
||||||
|
{
|
||||||
|
pData->curElement = CITYTABLE_ELEMENT_CITY;
|
||||||
|
|
||||||
|
pData->curCityInfo.townRebelSentiment = (UINT8)atol(pData->szCharData);
|
||||||
|
if ( pData->curCityInfo.townRebelSentiment > 100 )
|
||||||
|
{
|
||||||
|
pData->curCityInfo.townRebelSentiment = 100;
|
||||||
|
}
|
||||||
|
else if ( !pData->curCityInfo.townRebelSentiment )
|
||||||
|
pData->curCityInfo.townRebelSentiment = 1;
|
||||||
|
}
|
||||||
else if(strcmp(name, "baseSector") == 0 && pData->curElement == CITYTABLE_ELEMENT_BASESECTOR)
|
else if(strcmp(name, "baseSector") == 0 && pData->curElement == CITYTABLE_ELEMENT_BASESECTOR)
|
||||||
{
|
{
|
||||||
pData->curElement = CITYTABLE_ELEMENT_CITY;
|
pData->curElement = CITYTABLE_ELEMENT_CITY;
|
||||||
@@ -593,6 +634,69 @@ citytableEndElementHandle(void *userData, const char *name)
|
|||||||
pData->currentDepth--;
|
pData->currentDepth--;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
BOOLEAN WriteInStrategicMapSectorTownNames(STR fileName)
|
||||||
|
{
|
||||||
|
HWFILE hFile;
|
||||||
|
|
||||||
|
hFile = FileOpen( fileName, FILE_ACCESS_WRITE | FILE_CREATE_ALWAYS, FALSE );
|
||||||
|
if ( !hFile )
|
||||||
|
return( FALSE );
|
||||||
|
|
||||||
|
{
|
||||||
|
UINT32 x, y, cnt;
|
||||||
|
|
||||||
|
|
||||||
|
FilePrintf(hFile,"<CITY_INFO>\r\n");
|
||||||
|
FilePrintf(hFile,"\t<CITYLIST>\r\n");
|
||||||
|
for(cnt = 1; cnt < NUM_TOWNS; cnt++)
|
||||||
|
{
|
||||||
|
FilePrintf(hFile,"\t\t<CITY>\r\n");
|
||||||
|
|
||||||
|
FilePrintf(hFile,"\t\t\t<uiIndex>%d</uiIndex>\r\n",cnt);
|
||||||
|
|
||||||
|
FilePrintf(hFile,"\t\t\t<townName>%S</townName>\r\n", pTownNames[cnt] );
|
||||||
|
|
||||||
|
FilePrintf(hFile,"\t\t\t<townUsesLoyalty>%d</townUsesLoyalty>\r\n", gfTownUsesLoyalty[cnt] );
|
||||||
|
|
||||||
|
FilePrintf(hFile,"\t\t\t<townRebelSentiment>%d</townRebelSentiment>\r\n", gubTownRebelSentiment[cnt] );
|
||||||
|
|
||||||
|
FilePrintf(hFile,"\t\t\t<baseSector>\r\n");
|
||||||
|
FilePrintf(hFile,"\t\t\t\t<x>%d</x>\r\n",(sBaseSectorList[cnt-1]%16)+1);
|
||||||
|
FilePrintf(hFile,"\t\t\t\t<y>%d</y>\r\n",(sBaseSectorList[cnt-1]/16)+1);
|
||||||
|
FilePrintf(hFile,"\t\t\t</baseSector>\r\n");
|
||||||
|
|
||||||
|
|
||||||
|
FilePrintf(hFile,"\t\t\t<townPoint>\r\n");
|
||||||
|
FilePrintf(hFile,"\t\t\t\t<x>%d</x>\r\n",pTownPoints[cnt].x);
|
||||||
|
FilePrintf(hFile,"\t\t\t\t<y>%d</y>\r\n",pTownPoints[cnt].y);
|
||||||
|
FilePrintf(hFile,"\t\t\t</townPoint>\r\n");
|
||||||
|
|
||||||
|
|
||||||
|
FilePrintf(hFile,"\t\t</CITY>\r\n");
|
||||||
|
}
|
||||||
|
FilePrintf(hFile,"\t</CITYLIST>\r\n");
|
||||||
|
|
||||||
|
FilePrintf(hFile,"\t<CITY_TABLE>\r\n");
|
||||||
|
for(y = 0;y < MAP_WORLD_Y;y++)
|
||||||
|
{
|
||||||
|
FilePrintf(hFile,"\t\t<CITY_TABLE_ROW row=\"%02d\">",y);
|
||||||
|
for(x = 0;x < MAP_WORLD_X;x++)
|
||||||
|
{
|
||||||
|
if(x < MAP_WORLD_X-1)
|
||||||
|
{
|
||||||
|
FilePrintf(hFile,"%3d",StrategicMap[x+y*MAP_WORLD_X].bNameId);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
FilePrintf(hFile,"%3d </CITY_TABLE_ROW>\r\n",StrategicMap[x+y*MAP_WORLD_X].bNameId);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
FilePrintf(hFile,"\t</CITY_TABLE>\r\n");
|
||||||
|
FilePrintf(hFile,"</CITY_INFO>\r\n");
|
||||||
|
}
|
||||||
|
FileClose( hFile );
|
||||||
|
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
BOOLEAN ReadInStrategicMapSectorTownNames(STR fileName)
|
BOOLEAN ReadInStrategicMapSectorTownNames(STR fileName)
|
||||||
{
|
{
|
||||||
@@ -649,110 +753,6 @@ BOOLEAN ReadInStrategicMapSectorTownNames(STR fileName)
|
|||||||
|
|
||||||
XML_ParserFree(parser);
|
XML_ParserFree(parser);
|
||||||
|
|
||||||
#ifdef JA2TESTVERSION
|
|
||||||
hFile = FileOpen( "TABLEDATA\\~Cities.xml", FILE_ACCESS_WRITE | FILE_CREATE_ALWAYS, FALSE );
|
|
||||||
if ( !hFile )
|
|
||||||
return( FALSE );
|
|
||||||
|
|
||||||
{
|
|
||||||
UINT32 x, y, cnt;
|
|
||||||
|
|
||||||
|
|
||||||
FilePrintf(hFile,"<CITY_INFO>\r\n");
|
|
||||||
FilePrintf(hFile,"\t<CITYLIST>\r\n");
|
|
||||||
for(cnt = 1;cnt <= 12;cnt++)
|
|
||||||
{
|
|
||||||
FilePrintf(hFile,"\t\t<CITY>\r\n");
|
|
||||||
|
|
||||||
FilePrintf(hFile,"\t\t\t<uiIndex>%d</uiIndex>\r\n",cnt);
|
|
||||||
|
|
||||||
switch(cnt)
|
|
||||||
{
|
|
||||||
case 1:
|
|
||||||
FilePrintf(hFile,"\t\t\t<szName>Omerta</szName>\r\n");
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 2:
|
|
||||||
FilePrintf(hFile,"\t\t\t<szName>Drassen</szName>\r\n");
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 3:
|
|
||||||
FilePrintf(hFile,"\t\t\t<szName>Alma</szName>\r\n");
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 4:
|
|
||||||
FilePrintf(hFile,"\t\t\t<szName>Grumm</szName>\r\n");
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 5:
|
|
||||||
FilePrintf(hFile,"\t\t\t<szName>Tixa</szName>\r\n");
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 6:
|
|
||||||
FilePrintf(hFile,"\t\t\t<szName>Cambria</szName>\r\n");
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 7:
|
|
||||||
FilePrintf(hFile,"\t\t\t<szName>San Mona</szName>\r\n");
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 8:
|
|
||||||
FilePrintf(hFile,"\t\t\t<szName>Estoni</szName>\r\n");
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 9:
|
|
||||||
FilePrintf(hFile,"\t\t\t<szName>Orta</szName>\r\n");
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 10:
|
|
||||||
FilePrintf(hFile,"\t\t\t<szName>Balime</szName>\r\n");
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 11:
|
|
||||||
FilePrintf(hFile,"\t\t\t<szName>Meduna</szName>\r\n");
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 12:
|
|
||||||
FilePrintf(hFile,"\t\t\t<szName>Chitzena</szName>\r\n");
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
FilePrintf(hFile,"\t\t\t<baseSector>\r\n");
|
|
||||||
FilePrintf(hFile,"\t\t\t\t<x>%d</x>\r\n",(sBaseSectorList[cnt-1]%16)+1);
|
|
||||||
FilePrintf(hFile,"\t\t\t\t<y>%d</y>\r\n",(sBaseSectorList[cnt-1]/16)+1);
|
|
||||||
FilePrintf(hFile,"\t\t\t</baseSector>\r\n");
|
|
||||||
|
|
||||||
|
|
||||||
FilePrintf(hFile,"\t\t\t<townPoint>\r\n");
|
|
||||||
FilePrintf(hFile,"\t\t\t\t<x>%d</x>\r\n",pTownPoints[cnt].x);
|
|
||||||
FilePrintf(hFile,"\t\t\t\t<y>%d</y>\r\n",pTownPoints[cnt].y);
|
|
||||||
FilePrintf(hFile,"\t\t\t</townPoint>\r\n");
|
|
||||||
|
|
||||||
|
|
||||||
FilePrintf(hFile,"\t\t</CITY>\r\n");
|
|
||||||
}
|
|
||||||
FilePrintf(hFile,"\t</CITYLIST>\r\n");
|
|
||||||
|
|
||||||
FilePrintf(hFile,"\t<CITY_TABLE>\r\n");
|
|
||||||
for(y = 0;y < MAP_WORLD_Y;y++)
|
|
||||||
{
|
|
||||||
FilePrintf(hFile,"\t\t<CITY_TABLE_ROW row=\"%02d\">",y);
|
|
||||||
for(x = 0;x < MAP_WORLD_X;x++)
|
|
||||||
{
|
|
||||||
if(x < MAP_WORLD_X-1)
|
|
||||||
{
|
|
||||||
FilePrintf(hFile,"%3d",StrategicMap[x+y*MAP_WORLD_X].bNameId);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
FilePrintf(hFile,"%3d </CITY_TABLE_ROW>\r\n",StrategicMap[x+y*MAP_WORLD_X].bNameId);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
FilePrintf(hFile,"\t</CITY_TABLE>\r\n");
|
|
||||||
FilePrintf(hFile,"</CITY_INFO>\r\n");
|
|
||||||
}
|
|
||||||
FileClose( hFile );
|
|
||||||
#endif
|
|
||||||
|
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -81,6 +81,8 @@ void UpdateMercsInSector( INT16 sSectorX, INT16 sSectorY, INT8 bSectorZ );
|
|||||||
void UpdateMercInSector( SOLDIERTYPE *pSoldier, INT16 sSectorX, INT16 sSectorY, INT8 bSectorZ );
|
void UpdateMercInSector( SOLDIERTYPE *pSoldier, INT16 sSectorX, INT16 sSectorY, INT8 bSectorZ );
|
||||||
|
|
||||||
BOOLEAN ReadInMapStructure(STR fileName);
|
BOOLEAN ReadInMapStructure(STR fileName);
|
||||||
|
BOOLEAN ReadInStrategicMapSectorTownNames(STR fileName);
|
||||||
|
BOOLEAN WriteInStrategicMapSectorTownNames(STR fileName);
|
||||||
|
|
||||||
// get short sector name without town name
|
// get short sector name without town name
|
||||||
void GetShortSectorString( INT16 sMapX,INT16 sMapY, STR16 sString );
|
void GetShortSectorString( INT16 sMapX,INT16 sMapY, STR16 sString );
|
||||||
|
|||||||
Reference in New Issue
Block a user