
#ifndef _GLOBALDATA_H_
#define _GLOBALDATA_H_


#if _MSC_VER >= 1000
#pragma once
#endif // _MSC_VER >= 1000

#include "BinaryTool.h"
#include "BinaryToolDlg.h"

typedef struct tdstGlobalData_
{
	// Info on main window
	CBinaryToolDlg    *p_oMainDlg;
	CEdit             *p_oEditResults;

	// Directory where Binary Tool was launched
	CString           csStartupDirectory;

	// Event set when user wants to stop a work in progress
	HANDLE            hEventStop;
	BOOL              bStopWork;     // Same thing as EventStop (set and reset at the same time)

	// User settings
	CString           csBinDirectory;   // Path of binary data directory (ex: x:\cpa\exe\main\Bindatas)
	CString           csMainDirectory;  // Path of main directory (ex: x:\cpa\exe\main)
	CString           csExeName;        // Name of game executable without path (ex: MainWinR.exe )
	BOOL              bDebugVersion;    // True if debug, false if release
	CString           csTempTextureDirectory;   // A temporary directory for texture bigfile.

	// All possible executables (one per version (debug or release)
	CStringArray      csExecutableNames;

	// From version.ini
	CStringArray      a_csVersionDirectories;

	// From soundversion.ini
	CStringArray      a_csSoundVersionDirectories;

	// From game.dsc
	CStringArray      a_csLevelNames;

	// Binarized levels (array of booleans)
	CByteArray        a_cLevelsSelectedForBinarization;
	CByteArray        a_cBinarizedLevels;

	// Used when binarizing :
	BOOL              bCommonFilesAreCopied; // The files common to all levels have been copied (vignettes, options and such)
	BOOL              bStopBinarizeOnError;  // Stop if binarization fails on one map ?
	BOOL              bAutoTestMaps;         // Launch automatic test after binarize ?

	// When spawning programs.
	BOOL              bAutoDetectErrors;     // Automaticaly close spawned programs on error.

} tdstGlobalData;

extern struct tdstGlobalData_ g_stTheGlobalData; // Defined in BinaryTool.cpp

#endif /* _GLOBALDATA_H_ */
