Merged from revision: 7163

Externalized keys and locks to xml (by anv)
- Locks (TableData/Items/Locks.xml): Originally 64 locks were kept in BinaryData/LOCKS.BIN. Now up to 255 locks can be specified in TableData/Locks.xml. If it isn't found, LOCKS.BIN will be loaded normally.
- Keys (TableData/Items/Keys.xml): Originally 10 keys were hardcoded in KeyTable[]. Now up to 255 keys can be specified in TableData/Keys.xml. If it isn't found, hardcoded array will be used normally. 
see: http://www.bears-pit.com/board/ubbthreads.php/topics/331900.html

git-svn-id: https://ja2svn.mooo.com/source/ja2/trunk/GameSource/ja2_v1.13/Build@7164 3b4a5df2-a311-0410-b5c6-a8a6f20db521
This commit is contained in:
Wanne
2014-04-24 18:35:30 +00:00
parent aaaa144261
commit c9a9acec5c
17 changed files with 599 additions and 20 deletions
+44 -2
View File
@@ -132,6 +132,8 @@
#include "mercs.h"
#endif
#include "XML.h"
// OJW - 20090419
UINT8 giMAXIMUM_NUMBER_OF_PLAYER_MERCS = CODE_MAXIMUM_NUMBER_OF_PLAYER_MERCS;
UINT8 giMAXIMUM_NUMBER_OF_PLAYER_VEHICLES = CODE_MAXIMUM_NUMBER_OF_PLAYER_VEHICLES;
@@ -571,8 +573,48 @@ BOOLEAN InitTacticalEngine( )
InitializeTacticalInterface( ); // Init Interface stuff
InitializeGameVideoObjects( ); // Init system objects
LoadPaletteData( ); // Init palette system
if( !LoadLockTable() )
return(FALSE);
//if( !LoadLockTable() )
// return(FALSE);
// anv: externalised locks and keys
//WriteLocks("WriteLocks.xml");
char fileName[MAX_PATH];
strcpy(fileName, TABLEDATA_DIRECTORY);
strcat(fileName, LOCKSFILENAME);
if ( FileExists(fileName) )
{
DebugMsg (TOPIC_JA2,DBG_LEVEL_3,String("LoadExternalGameplayData, fileName = %s", fileName));
SGP_THROW_IFFALSE(ReadInLocks(fileName,FALSE), LOCKSFILENAME);
}
else
{
DebugMsg (TOPIC_JA2,DBG_LEVEL_3,String("FileName = %s not found, trying to load LOCKS.BIN instead", fileName));
if( !LoadLockTable() )
return(FALSE);
}
#ifndef ENGLISH
AddLanguagePrefix(fileName);
if ( FileExists(fileName) )
{
DebugMsg (TOPIC_JA2,DBG_LEVEL_3,String("LoadExternalGameplayData, fileName = %s", fileName));
SGP_THROW_IFFALSE(ReadInLocks(fileName,TRUE), LOCKSFILENAME);
}
#endif
strcpy(fileName, TABLEDATA_DIRECTORY);
strcat(fileName, KEYSFILENAME);
if ( FileExists(fileName) )
{
DebugMsg (TOPIC_JA2,DBG_LEVEL_3,String("LoadExternalGameplayData, fileName = %s", fileName));
SGP_THROW_IFFALSE(ReadInKeys(fileName), KEYSFILENAME);
}
else
{
DebugMsg (TOPIC_JA2,DBG_LEVEL_3,String("FileName = %s not found, hardcoded values will be used", fileName));
}
InitInteractiveTileManagement( );
if (!InitPathAI()) // init path code
return( FALSE );