* Make globals g_HomeDirectory and g_WorkDirectory an std::string instead of char[1024]
* Use a function to return the current directory as an std::string (rather than writing it into a buffer that's given along) * #define snprintf _snprintf so we can use that as well... * Some const correctness git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@3181 4a71c877-e1ca-e34f-864e-861f7616d084master
parent
8708174859
commit
c7894a8a01
|
@ -33,6 +33,12 @@
|
||||||
#include "bteditview.h"
|
#include "bteditview.h"
|
||||||
//#include "debugwin.h"
|
//#include "debugwin.h"
|
||||||
|
|
||||||
|
#include <string>
|
||||||
|
#include <boost/scoped_array.hpp>
|
||||||
|
|
||||||
|
using std::string;
|
||||||
|
using boost::scoped_array;
|
||||||
|
|
||||||
CBTEditCommandLineInfo g_cmdInfo;
|
CBTEditCommandLineInfo g_cmdInfo;
|
||||||
|
|
||||||
void CBTEditCommandLineInfo::ParseParam(const char* pszParam,BOOL bFlag,BOOL bLast)
|
void CBTEditCommandLineInfo::ParseParam(const char* pszParam,BOOL bFlag,BOOL bLast)
|
||||||
|
@ -82,8 +88,7 @@ void CBTEditCommandLineInfo::ParseParam(const char* pszParam,BOOL bFlag,BOOL bLa
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
// CBTEditApp initialization
|
// CBTEditApp initialization
|
||||||
|
|
||||||
char g_HomeDirectory[1024];
|
string g_HomeDirectory, g_WorkDirectory;
|
||||||
char g_WorkDirectory[1024];
|
|
||||||
|
|
||||||
HCURSOR g_Wait;
|
HCURSOR g_Wait;
|
||||||
HCURSOR g_Pointer;
|
HCURSOR g_Pointer;
|
||||||
|
@ -142,7 +147,7 @@ class CBTEditApp : public CWinApp
|
||||||
RUNTIME_CLASS(CBTEditView));
|
RUNTIME_CLASS(CBTEditView));
|
||||||
AddDocTemplate(pDocTemplate);
|
AddDocTemplate(pDocTemplate);
|
||||||
|
|
||||||
GetCurrentDirectory(sizeof(g_HomeDirectory),g_HomeDirectory);
|
g_HomeDirectory = getCurrentDirectory();
|
||||||
|
|
||||||
g_Wait = ::LoadCursor(NULL,IDC_WAIT);
|
g_Wait = ::LoadCursor(NULL,IDC_WAIT);
|
||||||
g_Pointer = LoadCursor(IDC_POINTER);
|
g_Pointer = LoadCursor(IDC_POINTER);
|
||||||
|
@ -196,3 +201,18 @@ BEGIN_MESSAGE_MAP(CBTEditApp, CWinApp)
|
||||||
END_MESSAGE_MAP()
|
END_MESSAGE_MAP()
|
||||||
|
|
||||||
CBTEditApp theApp;
|
CBTEditApp theApp;
|
||||||
|
|
||||||
|
std::string getCurrentDirectory()
|
||||||
|
{
|
||||||
|
// Determine the required buffer size to contain the current directory
|
||||||
|
const DWORD curDirSize = GetCurrentDirectory(0, NULL);
|
||||||
|
scoped_array<char> curDir(new char[curDirSize]);
|
||||||
|
|
||||||
|
// Retrieve the current directory
|
||||||
|
GetCurrentDirectory(curDirSize, curDir.get());
|
||||||
|
|
||||||
|
MessageBox(0, curDir.get(), "curDir.get()", MB_OK);
|
||||||
|
|
||||||
|
// Return the current directory as a STL string
|
||||||
|
return std::string(curDir.get());
|
||||||
|
}
|
||||||
|
|
|
@ -29,6 +29,9 @@
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#include "resource.h" // main symbols
|
#include "resource.h" // main symbols
|
||||||
|
#include <string>
|
||||||
|
|
||||||
|
#define snprintf _snprintf
|
||||||
|
|
||||||
class CBTEditCommandLineInfo : public CCommandLineInfo
|
class CBTEditCommandLineInfo : public CCommandLineInfo
|
||||||
{
|
{
|
||||||
|
@ -53,3 +56,5 @@ public:
|
||||||
};
|
};
|
||||||
|
|
||||||
extern CBTEditCommandLineInfo g_cmdInfo;
|
extern CBTEditCommandLineInfo g_cmdInfo;
|
||||||
|
|
||||||
|
extern std::string getCurrentDirectory();
|
|
@ -48,10 +48,12 @@
|
||||||
|
|
||||||
#include <string>
|
#include <string>
|
||||||
|
|
||||||
|
using std::string;
|
||||||
|
|
||||||
#define MAX_FILESTRING 512
|
#define MAX_FILESTRING 512
|
||||||
|
|
||||||
extern char g_HomeDirectory[1024];
|
extern string g_HomeDirectory;
|
||||||
extern char g_WorkDirectory[1024];
|
extern string g_WorkDirectory;
|
||||||
extern BOOL g_OverlayTypes;
|
extern BOOL g_OverlayTypes;
|
||||||
extern BOOL g_OverlayZoneIDs;
|
extern BOOL g_OverlayZoneIDs;
|
||||||
|
|
||||||
|
@ -638,7 +640,7 @@ void CBTEditDoc::InitialiseData(void)
|
||||||
|
|
||||||
// m_DirectDrawView->SetFilter(TRUE);
|
// m_DirectDrawView->SetFilter(TRUE);
|
||||||
|
|
||||||
GetCurrentDirectory(sizeof(g_WorkDirectory),g_WorkDirectory);
|
g_WorkDirectory = getCurrentDirectory();
|
||||||
|
|
||||||
// m_DirectDrawView = new CDirectDraw(NULL,NULL,FALSE,
|
// m_DirectDrawView = new CDirectDraw(NULL,NULL,FALSE,
|
||||||
// &DesiredProfile);
|
// &DesiredProfile);
|
||||||
|
@ -699,14 +701,14 @@ void CBTEditDoc::InitialiseData(void)
|
||||||
|
|
||||||
// Read in all the objects.
|
// Read in all the objects.
|
||||||
// char Name[256];
|
// char Name[256];
|
||||||
// strcpy(Name,g_HomeDirectory);
|
// strcpy(Name,g_HomeDirectory.c_str());
|
||||||
// strcat(Name,"\\Data\\Startup.txt");
|
// strcat(Name,"\\Data\\Startup.txt");
|
||||||
// m_HeightMap->ReadObjects(Name);
|
// m_HeightMap->ReadObjects(Name);
|
||||||
|
|
||||||
m_HeightMap->GetTextureSize(&m_TextureHeight,&m_TextureWidth);
|
m_HeightMap->GetTextureSize(&m_TextureHeight,&m_TextureWidth);
|
||||||
|
|
||||||
// char Name[256];
|
// char Name[256];
|
||||||
// strcpy(Name,g_HomeDirectory);
|
// strcpy(Name,g_HomeDirectory.c_str());
|
||||||
// strcat(Name,"\\Data\\Structures.txt");
|
// strcat(Name,"\\Data\\Structures.txt");
|
||||||
// if(!m_HeightMap->ReadStructureStats(Name)) { // Temp to test structure file parser.
|
// if(!m_HeightMap->ReadStructureStats(Name)) { // Temp to test structure file parser.
|
||||||
// MessageBox(NULL,"Error parsing file.","Structures.txt",MB_OK);
|
// MessageBox(NULL,"Error parsing file.","Structures.txt",MB_OK);
|
||||||
|
@ -2432,8 +2434,8 @@ BOOL CBTEditDoc::GetFilePath(char *FilterList,char *ExtType,char *Filter,BOOL Op
|
||||||
strcpy(FullPath,Tmp.GetBuffer(0));
|
strcpy(FullPath,Tmp.GetBuffer(0));
|
||||||
}
|
}
|
||||||
|
|
||||||
GetCurrentDirectory(sizeof(g_WorkDirectory),g_WorkDirectory);
|
g_WorkDirectory = getCurrentDirectory();
|
||||||
DebugPrint("New working directory %s\n",g_WorkDirectory);
|
DebugPrint("New working directory %s\n", g_WorkDirectory.c_str());
|
||||||
|
|
||||||
SetButtonLapse();
|
SetButtonLapse();
|
||||||
|
|
||||||
|
@ -5646,7 +5648,7 @@ std::string EditorDataFileName(const std::string& fileName)
|
||||||
|
|
||||||
// Try the data directory.
|
// Try the data directory.
|
||||||
_splitpath(fileName.c_str(), Drive, Dir, FName, Ext);
|
_splitpath(fileName.c_str(), Drive, Dir, FName, Ext);
|
||||||
sprintf(AltName, "%s\\data\\%s%s", g_HomeDirectory, FName, Ext);
|
snprintf(AltName, sizeof(AltName), "%s\\data\\%s%s", g_HomeDirectory.c_str(), FName, Ext);
|
||||||
|
|
||||||
return std::string(AltName);
|
return std::string(AltName);
|
||||||
}
|
}
|
||||||
|
|
|
@ -45,6 +45,8 @@
|
||||||
#include <string>
|
#include <string>
|
||||||
#include <algorithm>
|
#include <algorithm>
|
||||||
|
|
||||||
|
using std::string;
|
||||||
|
|
||||||
//#define MIPMAP_TILES
|
//#define MIPMAP_TILES
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -152,8 +154,8 @@ extern CUndoRedo *g_UndoRedo;
|
||||||
|
|
||||||
//#define TESTFLAGS // If defined then write random flags when doing flood fill.
|
//#define TESTFLAGS // If defined then write random flags when doing flood fill.
|
||||||
|
|
||||||
extern char g_HomeDirectory[1024];
|
extern string g_HomeDirectory;
|
||||||
extern char g_WorkDirectory[1024];
|
extern string g_WorkDirectory;
|
||||||
extern FILE *OpenEditorFile(const char *FileName);
|
extern FILE *OpenEditorFile(const char *FileName);
|
||||||
extern std::string EditorDataFileName(const std::string& fileName);
|
extern std::string EditorDataFileName(const std::string& fileName);
|
||||||
|
|
||||||
|
@ -1396,13 +1398,9 @@ Pixel CHeightMap::PixelRead(int x,int y)
|
||||||
|
|
||||||
BOOL CHeightMap::PixelCompare(int x,int y,DWORD Tid,DWORD Type,DWORD Flags)
|
BOOL CHeightMap::PixelCompare(int x,int y,DWORD Tid,DWORD Type,DWORD Flags)
|
||||||
{
|
{
|
||||||
if( (m_MapTiles[(y*m_MapWidth)+x].TMapID == Tid) &&
|
return (m_MapTiles[y * m_MapWidth + x].TMapID == Tid
|
||||||
// (m_MapTiles[(y*m_MapWidth)+x].Flags & TF_TYPEMASK == Type) &&
|
// && (m_MapTiles[y * m_MapWidth + x].Flags & TF_TYPEMASK) == Type)
|
||||||
(m_MapTiles[(y*m_MapWidth)+x].Flags & TF_TEXTUREMASK == Flags) ) {
|
&& (m_MapTiles[y * m_MapWidth + x].Flags & TF_TEXTUREMASK) == Flags);
|
||||||
return TRUE;
|
|
||||||
}
|
|
||||||
|
|
||||||
return FALSE;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -3507,7 +3505,7 @@ _inline float SafeDivide(float a, float b)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
BOOL CHeightMap::ReadFeatureStats(char *ScriptFile,char *IMDDir,char *TextDir)
|
BOOL CHeightMap::ReadFeatureStats(const char *ScriptFile, const char* IMDDir, const char* TextDir)
|
||||||
{
|
{
|
||||||
BOOL Flanged = TRUE;
|
BOOL Flanged = TRUE;
|
||||||
BOOL TileSnap = TRUE;
|
BOOL TileSnap = TRUE;
|
||||||
|
@ -3550,9 +3548,8 @@ BOOL CHeightMap::ReadFeatureStats(char *ScriptFile,char *IMDDir,char *TextDir)
|
||||||
|
|
||||||
// DebugPrint("%s\n",m_Features[j].featureName);
|
// DebugPrint("%s\n",m_Features[j].featureName);
|
||||||
|
|
||||||
char Name[256];
|
const string Name = g_WorkDirectory + "\\" + string(IMDDir) + string(m_Features[j].IMDName);
|
||||||
sprintf(Name,"%s\\%s%s",g_WorkDirectory,IMDDir,m_Features[j].IMDName);
|
if(!ReadIMD(Name.c_str(), m_Features[j].featureName, TextDir, IMD_FEATURE, Flanged, TileSnap, ColourIndex, ShadeMode, j)) {
|
||||||
if(!ReadIMD(Name,m_Features[j].featureName,TextDir,IMD_FEATURE,Flanged,TileSnap,ColourIndex,ShadeMode,j)) {
|
|
||||||
char String[256];
|
char String[256];
|
||||||
sprintf(String,"Feature : %s\nObject : %s",m_Features[j].featureName,Name);
|
sprintf(String,"Feature : %s\nObject : %s",m_Features[j].featureName,Name);
|
||||||
MessageBox(NULL,String,"Error reading file",MB_OK);
|
MessageBox(NULL,String,"Error reading file",MB_OK);
|
||||||
|
@ -3565,7 +3562,7 @@ BOOL CHeightMap::ReadFeatureStats(char *ScriptFile,char *IMDDir,char *TextDir)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
BOOL CHeightMap::ReadStructureStats(char *ScriptFile,char *IMDDir,char *TextDir)
|
BOOL CHeightMap::ReadStructureStats(const char* ScriptFile,char *IMDDir,char *TextDir)
|
||||||
{
|
{
|
||||||
BOOL Flanged = TRUE;
|
BOOL Flanged = TRUE;
|
||||||
BOOL TileSnap = TRUE;
|
BOOL TileSnap = TRUE;
|
||||||
|
@ -3661,9 +3658,9 @@ BOOL CHeightMap::ReadStructureStats(char *ScriptFile,char *IMDDir,char *TextDir)
|
||||||
Parser.Parse(m_Structures[j].IMDName[i],sizeof(m_Structures[j].IMDName[i]));
|
Parser.Parse(m_Structures[j].IMDName[i],sizeof(m_Structures[j].IMDName[i]));
|
||||||
// DebugPrint("%s\n",m_Structures[j].IMDName[i]);
|
// DebugPrint("%s\n",m_Structures[j].IMDName[i]);
|
||||||
|
|
||||||
char Name[256];
|
const string Name = g_WorkDirectory + "\\" + string(IMDDir) + string(m_Structures[j].IMDName[i]);
|
||||||
sprintf(Name,"%s\\%s%s",g_WorkDirectory,IMDDir,m_Structures[j].IMDName[i]);
|
if(!ReadIMD(Name.c_str(), m_Structures[j].StructureName, TextDir, IMD_STRUCTURE, Flanged, TileSnap, ColourIndex, ShadeMode, j, i))
|
||||||
if(!ReadIMD(Name,m_Structures[j].StructureName,TextDir,IMD_STRUCTURE,Flanged,TileSnap,ColourIndex,ShadeMode,j,i)) {
|
{
|
||||||
char String[256];
|
char String[256];
|
||||||
sprintf(String,"Structure : %s\nObject : %s",m_Structures[j].StructureName,Name);
|
sprintf(String,"Structure : %s\nObject : %s",m_Structures[j].StructureName,Name);
|
||||||
MessageBox(NULL,String,"Error reading file",MB_OK);
|
MessageBox(NULL,String,"Error reading file",MB_OK);
|
||||||
|
@ -3676,11 +3673,12 @@ BOOL CHeightMap::ReadStructureStats(char *ScriptFile,char *IMDDir,char *TextDir)
|
||||||
Parser.Parse(m_Structures[j].BaseIMD,sizeof(m_Structures[j].BaseIMD));
|
Parser.Parse(m_Structures[j].BaseIMD,sizeof(m_Structures[j].BaseIMD));
|
||||||
// DebugPrint("%s\n",m_Structures[j].BaseIMD);
|
// DebugPrint("%s\n",m_Structures[j].BaseIMD);
|
||||||
|
|
||||||
if(strlen(m_Structures[j].BaseIMD) > 1) {
|
if(strlen(m_Structures[j].BaseIMD) > 1)
|
||||||
char Name[256];
|
{
|
||||||
sprintf(Name,"%s\\%s%s",g_WorkDirectory,IMDDir,m_Structures[j].BaseIMD);
|
const string Name = g_WorkDirectory + "\\" + string(IMDDir) + string(m_Structures[j].BaseIMD);
|
||||||
if(!ReadIMD(Name,m_Structures[j].StructureName,TextDir,IMD_STRUCTURE,
|
if (!ReadIMD(Name.c_str(), m_Structures[j].StructureName, TextDir, IMD_STRUCTURE,
|
||||||
Flanged,TileSnap,ColourIndex,ShadeMode,j,0,&BasePlate)) {
|
Flanged, TileSnap, ColourIndex, ShadeMode, j, 0, &BasePlate))
|
||||||
|
{
|
||||||
char String[256];
|
char String[256];
|
||||||
sprintf(String,"Structure : %s\nObject : %s",m_Structures[j].StructureName,Name);
|
sprintf(String,"Structure : %s\nObject : %s",m_Structures[j].StructureName,Name);
|
||||||
MessageBox(NULL,String,"Error reading file",MB_OK);
|
MessageBox(NULL,String,"Error reading file",MB_OK);
|
||||||
|
@ -3748,7 +3746,7 @@ TECH_LEVEL CHeightMap::SetTechLevel(char *pLevel)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
BOOL CHeightMap::ReadTemplateStats(char *ScriptFile,char *IMDDir,char *TextDir)
|
BOOL CHeightMap::ReadTemplateStats(const char* ScriptFile, char* IMDDir, char* TextDir)
|
||||||
{
|
{
|
||||||
char String[256];
|
char String[256];
|
||||||
BOOL Ok = TRUE;
|
BOOL Ok = TRUE;
|
||||||
|
@ -3787,9 +3785,9 @@ BOOL CHeightMap::ReadTemplateStats(char *ScriptFile,char *IMDDir,char *TextDir)
|
||||||
// DebugPrint("Bang\n");
|
// DebugPrint("Bang\n");
|
||||||
// }
|
// }
|
||||||
|
|
||||||
char Name[256];
|
string Name = g_HomeDirectory + "\\Data\\Icon.PIE";
|
||||||
sprintf(Name,"%s\\%s%s",g_HomeDirectory,"Data\\","Icon.PIE");
|
if(!ReadIMD(Name.c_str(), m_Templates[i].Name, TextDir, IMD_DROID, FALSE, FALSE, 0, NT_SMOOTHNORMALS, i))
|
||||||
if(!ReadIMD(Name,m_Templates[i].Name,TextDir,IMD_DROID,FALSE,FALSE,0,NT_SMOOTHNORMALS,i)) {
|
{
|
||||||
char String[256];
|
char String[256];
|
||||||
sprintf(String,"Template : %s\nObject : %s",Name,"Icon.PIE");
|
sprintf(String,"Template : %s\nObject : %s",Name,"Icon.PIE");
|
||||||
MessageBox(NULL,String,"Error reading file",MB_OK);
|
MessageBox(NULL,String,"Error reading file",MB_OK);
|
||||||
|
@ -3985,7 +3983,6 @@ BOOL CHeightMap::ReadMisc(fileParser& Parser,char *Begin,char *End)
|
||||||
BOOL CHeightMap::ReadFeatures(fileParser& Parser,char *Begin,char *End)
|
BOOL CHeightMap::ReadFeatures(fileParser& Parser,char *Begin,char *End)
|
||||||
{
|
{
|
||||||
char String[256];
|
char String[256];
|
||||||
char Name[256];
|
|
||||||
char StatsDir[256];
|
char StatsDir[256];
|
||||||
char IMDDir[256];
|
char IMDDir[256];
|
||||||
char TextDir[256];
|
char TextDir[256];
|
||||||
|
@ -4017,14 +4014,16 @@ BOOL CHeightMap::ReadFeatures(fileParser& Parser,char *Begin,char *End)
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
while(1) {
|
while(1)
|
||||||
|
{
|
||||||
Parser.Parse(String,sizeof(String));
|
Parser.Parse(String,sizeof(String));
|
||||||
if(strcmp(String,End) == 0) break;
|
if(strcmp(String,End) == 0) break;
|
||||||
|
|
||||||
sprintf(Name,"%s\\%s%s",g_WorkDirectory,StatsDir,String);
|
const string Name = g_WorkDirectory + "\\" + string(StatsDir) + string(String);
|
||||||
if(!ReadFeatureStats(Name,IMDDir,TextDir)) {
|
if (!ReadFeatureStats(Name.c_str(), IMDDir, TextDir))
|
||||||
DebugPrint("Error loading IMD %s\n",Name);
|
{
|
||||||
MessageBox(NULL,"Error reading IMD",Name,MB_OK);
|
DebugPrint("Error loading IMD %s\n", Name.c_str());
|
||||||
|
MessageBox(NULL, "Error reading IMD", Name.c_str(), MB_OK);
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -4036,7 +4035,6 @@ BOOL CHeightMap::ReadFeatures(fileParser& Parser,char *Begin,char *End)
|
||||||
BOOL CHeightMap::ReadStructures(fileParser& Parser,char *Begin,char *End)
|
BOOL CHeightMap::ReadStructures(fileParser& Parser,char *Begin,char *End)
|
||||||
{
|
{
|
||||||
char String[256];
|
char String[256];
|
||||||
char Name[256];
|
|
||||||
char StatsDir[256];
|
char StatsDir[256];
|
||||||
char IMDDir[256];
|
char IMDDir[256];
|
||||||
char TextDir[256];
|
char TextDir[256];
|
||||||
|
@ -4072,10 +4070,11 @@ BOOL CHeightMap::ReadStructures(fileParser& Parser,char *Begin,char *End)
|
||||||
Parser.Parse(String,sizeof(String));
|
Parser.Parse(String,sizeof(String));
|
||||||
if(strcmp(String,End) == 0) break;
|
if(strcmp(String,End) == 0) break;
|
||||||
|
|
||||||
sprintf(Name,"%s\\%s%s",g_WorkDirectory,StatsDir,String);
|
const string Name = g_WorkDirectory + "\\" + string(StatsDir) + string(String);
|
||||||
if(!ReadStructureStats(Name,IMDDir,TextDir)) {
|
if (!ReadStructureStats(Name.c_str(), IMDDir, TextDir))
|
||||||
DebugPrint("Error loading IMD %s\n",Name);
|
{
|
||||||
MessageBox(NULL,"Error reading IMD",Name,MB_OK);
|
DebugPrint("Error loading IMD %s\n", Name.c_str());
|
||||||
|
MessageBox(NULL,"Error reading IMD", Name.c_str(), MB_OK);
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -4087,7 +4086,6 @@ BOOL CHeightMap::ReadStructures(fileParser& Parser,char *Begin,char *End)
|
||||||
BOOL CHeightMap::ReadTemplates(fileParser& Parser,char *Begin,char *End)
|
BOOL CHeightMap::ReadTemplates(fileParser& Parser,char *Begin,char *End)
|
||||||
{
|
{
|
||||||
char String[256];
|
char String[256];
|
||||||
char Name[256];
|
|
||||||
char StatsDir[256];
|
char StatsDir[256];
|
||||||
char IMDDir[256];
|
char IMDDir[256];
|
||||||
char TextDir[256];
|
char TextDir[256];
|
||||||
|
@ -4123,10 +4121,11 @@ BOOL CHeightMap::ReadTemplates(fileParser& Parser,char *Begin,char *End)
|
||||||
Parser.Parse(String,sizeof(String));
|
Parser.Parse(String,sizeof(String));
|
||||||
if(strcmp(String,End) == 0) break;
|
if(strcmp(String,End) == 0) break;
|
||||||
|
|
||||||
sprintf(Name,"%s\\%s%s",g_WorkDirectory,StatsDir,String);
|
const string Name = g_WorkDirectory + "\\" + string(StatsDir) + string(String);
|
||||||
if(!ReadTemplateStats(Name,IMDDir,TextDir)) {
|
if(!ReadTemplateStats(Name.c_str(), IMDDir, TextDir))
|
||||||
DebugPrint("Error loading IMD %s\n",Name);
|
{
|
||||||
MessageBox(NULL,"Error reading IMD",Name,MB_OK);
|
DebugPrint("Error loading IMD %s\n", Name.c_str());
|
||||||
|
MessageBox(NULL,"Error reading IMD", Name.c_str(), MB_OK);
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -4139,7 +4138,6 @@ BOOL CHeightMap::ReadTemplates(fileParser& Parser,char *Begin,char *End)
|
||||||
BOOL CHeightMap::ReadObjects(fileParser& Parser,char *Begin,char *End,int TypeID)
|
BOOL CHeightMap::ReadObjects(fileParser& Parser,char *Begin,char *End,int TypeID)
|
||||||
{
|
{
|
||||||
char String[256];
|
char String[256];
|
||||||
char Name[256];
|
|
||||||
char Description[256];
|
char Description[256];
|
||||||
char Type[256];
|
char Type[256];
|
||||||
char StatsDir[256];
|
char StatsDir[256];
|
||||||
|
@ -4231,18 +4229,17 @@ BOOL CHeightMap::ReadObjects(fileParser& Parser,char *Begin,char *End,int TypeID
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
// char Name[256];
|
|
||||||
sprintf(Name,"%s\\%s%s",g_WorkDirectory,IMDDir,String);
|
|
||||||
// strcpy(Name,g_HomeDirectory);
|
|
||||||
// strcat(Name,"\\Data\\");
|
|
||||||
// strcat(Name,String);
|
|
||||||
char *Desc = NULL;
|
char *Desc = NULL;
|
||||||
if(_stricmp(Description,"NONAME")) {
|
if(_stricmp(Description,"NONAME")) {
|
||||||
Desc = Description;
|
Desc = Description;
|
||||||
}
|
}
|
||||||
if(!ReadIMD(Name,Desc,TextDir,TypeID,Flanged,TileSnap,ColourIndex,ShadeMode)) {
|
|
||||||
DebugPrint("Error loading IMD %s\n",Name);
|
const string Name = g_WorkDirectory + "\\" + string(IMDDir) + string(String);
|
||||||
MessageBox(NULL,"Error reading IMD",Name,MB_OK);
|
|
||||||
|
if(!ReadIMD(Name.c_str(), Desc, TextDir, TypeID, Flanged, TileSnap, ColourIndex, ShadeMode))
|
||||||
|
{
|
||||||
|
DebugPrint("Error loading IMD %s\n", Name.c_str());
|
||||||
|
MessageBox(NULL,"Error reading IMD", Name.c_str(), MB_OK);
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
NumObjects++;
|
NumObjects++;
|
||||||
|
@ -4258,7 +4255,7 @@ BOOL CHeightMap::ReadObjects(fileParser& Parser,char *Begin,char *End,int TypeID
|
||||||
//
|
//
|
||||||
// Returns TRUE if succesfull.
|
// Returns TRUE if succesfull.
|
||||||
//
|
//
|
||||||
BOOL CHeightMap::ReadIMD(char *FileName,char *Description,char *TextDir,int TypeID,BOOL Flanged,BOOL Snap,int ColourKeyIndex,NORMALTYPE NType,
|
BOOL CHeightMap::ReadIMD(const char* FileName,char *Description, const char* TextDir,int TypeID,BOOL Flanged,BOOL Snap,int ColourKeyIndex,NORMALTYPE NType,
|
||||||
int StructureIndex,int PlayerIndex,C3DObject *Object)
|
int StructureIndex,int PlayerIndex,C3DObject *Object)
|
||||||
{
|
{
|
||||||
char Buffer[80];
|
char Buffer[80];
|
||||||
|
@ -4359,16 +4356,16 @@ BOOL CHeightMap::ReadIMD(char *FileName,char *Description,char *TextDir,int Type
|
||||||
|
|
||||||
DebugPrint("## %s ## \n",texfile);
|
DebugPrint("## %s ## \n",texfile);
|
||||||
|
|
||||||
std::string TName;
|
string TName;
|
||||||
|
|
||||||
if((TextDir) && (TextDir[0] != 0))
|
if((TextDir) && (TextDir[0] != 0))
|
||||||
{
|
{
|
||||||
TName = std::string(g_WorkDirectory) + "\\" + std::string(TextDir) + std::string(texfile);
|
TName = g_WorkDirectory + "\\" + string(TextDir) + string(texfile);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
// set the path for the texture to the path used for the .IMD
|
// set the path for the texture to the path used for the .IMD
|
||||||
TName = std::string(Drive) + std::string(Dir) + std::string(texfile);
|
TName = string(Drive) + string(Dir) + string(texfile);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Read the specified bitmap.
|
// Read the specified bitmap.
|
||||||
|
@ -4379,7 +4376,7 @@ BOOL CHeightMap::ReadIMD(char *FileName,char *Description,char *TextDir,int Type
|
||||||
std::ifstream* PCXFile = new std::ifstream(TName.c_str(), std::ios_base::binary);
|
std::ifstream* PCXFile = new std::ifstream(TName.c_str(), std::ios_base::binary);
|
||||||
if (!PCXFile->is_open())
|
if (!PCXFile->is_open())
|
||||||
{
|
{
|
||||||
TName = std::string(Drive) + std::string(Dir) + std::string(texfile);
|
TName = string(Drive) + string(Dir) + string(texfile);
|
||||||
|
|
||||||
// Reconstruct std::ifstream object;
|
// Reconstruct std::ifstream object;
|
||||||
// A simple PCXFile->close() followed by PCXFile->open(...) should work, but doesn't
|
// A simple PCXFile->close() followed by PCXFile->open(...) should work, but doesn't
|
||||||
|
@ -6890,8 +6887,8 @@ BOOL CHeightMap::ReadObjectList(FILE *Stream)
|
||||||
|
|
||||||
/* 12/4/99
|
/* 12/4/99
|
||||||
if(strcmp(FeatureSet,"(null)")) {
|
if(strcmp(FeatureSet,"(null)")) {
|
||||||
sprintf(FullPath,"%s\\%s",g_WorkDirectory,FeatureSet);
|
sprintf(FullPath,"%s\\%s",g_WorkDirectory.c_str(),FeatureSet);
|
||||||
// strcpy(FullPath,g_WorkDirectory);
|
// strcpy(FullPath,g_WorkDirectory.c_str());
|
||||||
// strcat(FullPath,"\\Data\\");
|
// strcat(FullPath,"\\Data\\");
|
||||||
// strcat(FullPath,FeatureSet);
|
// strcat(FullPath,FeatureSet);
|
||||||
if(!ReadIMDObjects(FullPath)) {
|
if(!ReadIMDObjects(FullPath)) {
|
||||||
|
|
|
@ -850,10 +850,10 @@ class CHeightMap : public CChnkIO
|
||||||
void UpdateLargest(D3DVECTOR &v,D3DVECTOR &Largest);
|
void UpdateLargest(D3DVECTOR &v,D3DVECTOR &Largest);
|
||||||
|
|
||||||
// Public functions related to objects.
|
// Public functions related to objects.
|
||||||
BOOL ReadFeatureStats(char *ScriptFile,char *IMDDir,char *TextDir);
|
BOOL ReadFeatureStats(const char* ScriptFile, const char* IMDDir, const char* TextDir);
|
||||||
BOOL ReadStructureStats(char *ScriptFile,char *IMDDir,char *TextDir);
|
BOOL ReadStructureStats(const char* ScriptFile, char *IMDDir,char *TextDir);
|
||||||
TECH_LEVEL CHeightMap::SetTechLevel(char *pLevel);
|
TECH_LEVEL CHeightMap::SetTechLevel(char *pLevel);
|
||||||
BOOL ReadTemplateStats(char *ScriptFile,char *IMDDir,char *TextDir);
|
BOOL ReadTemplateStats(const char* ScriptFile, char* IMDDir, char* TextDir);
|
||||||
BOOL ReadObjectNames(char *FileName);
|
BOOL ReadObjectNames(char *FileName);
|
||||||
int MatchObjName(char *IDString);
|
int MatchObjName(char *IDString);
|
||||||
|
|
||||||
|
@ -872,7 +872,7 @@ class CHeightMap : public CChnkIO
|
||||||
return m_Num3DObjects;
|
return m_Num3DObjects;
|
||||||
}
|
}
|
||||||
|
|
||||||
BOOL ReadIMD(char *FileName,char *Description,char *TextDir,int TypeID,BOOL Flanged = FALSE,BOOL Snap = FALSE,int ColourKeyIndex = FALSE,NORMALTYPE NType = NT_DEFAULTNORMALS,
|
BOOL ReadIMD(const char* FileName, char *Description, const char* TextDir,int TypeID,BOOL Flanged = FALSE,BOOL Snap = FALSE,int ColourKeyIndex = FALSE,NORMALTYPE NType = NT_DEFAULTNORMALS,
|
||||||
int StructureIndex = 0,int PlayerIndex = 0,C3DObject *Object=NULL);
|
int StructureIndex = 0,int PlayerIndex = 0,C3DObject *Object=NULL);
|
||||||
void RenderIMD(C3DObject *Object);
|
void RenderIMD(C3DObject *Object);
|
||||||
void RenderFlatIMD(C3DObject *Object);
|
void RenderFlatIMD(C3DObject *Object);
|
||||||
|
|
|
@ -33,7 +33,9 @@
|
||||||
#include <fstream>
|
#include <fstream>
|
||||||
#include <string>
|
#include <string>
|
||||||
|
|
||||||
extern char g_HomeDirectory[1024];
|
using std::string;
|
||||||
|
|
||||||
|
extern string g_HomeDirectory;
|
||||||
|
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
// CTextureSelector
|
// CTextureSelector
|
||||||
|
@ -129,7 +131,7 @@ BOOL CTextureSelector::Read(DWORD NumTextures,char **TextureList,DWORD TextureWi
|
||||||
{
|
{
|
||||||
char tmpCharArr[1024];
|
char tmpCharArr[1024];
|
||||||
GetCurrentDirectory(sizeof(tmpCharArr), tmpCharArr);
|
GetCurrentDirectory(sizeof(tmpCharArr), tmpCharArr);
|
||||||
std::string CurDir(tmpCharArr);
|
string CurDir(tmpCharArr);
|
||||||
CurDir += "\\";
|
CurDir += "\\";
|
||||||
CurDir += FileName;
|
CurDir += FileName;
|
||||||
MessageBox(NULL, "Error reading PCX", CurDir.c_str(), MB_OK);
|
MessageBox(NULL, "Error reading PCX", CurDir.c_str(), MB_OK);
|
||||||
|
@ -170,8 +172,7 @@ BOOL CTextureSelector::Read(DWORD NumTextures,char **TextureList,DWORD TextureWi
|
||||||
m_Height = (SpriteNum / (m_Width / m_TextureWidth)) * m_TextureHeight;
|
m_Height = (SpriteNum / (m_Width / m_TextureWidth)) * m_TextureHeight;
|
||||||
}
|
}
|
||||||
|
|
||||||
std::string Name(g_HomeDirectory);
|
string Name = g_HomeDirectory + "\\Data\\Buttons.PCX";
|
||||||
Name += "\\Data\\Buttons.PCX";
|
|
||||||
|
|
||||||
std::ifstream PCXFile(Name.c_str(), std::ios_base::binary);
|
std::ifstream PCXFile(Name.c_str(), std::ios_base::binary);
|
||||||
if (!PCXFile.is_open())
|
if (!PCXFile.is_open())
|
||||||
|
|
Loading…
Reference in New Issue