| Line 11... |
Line 11... |
| 11 |
|
11 |
|
| 12 |
#include "lists.h"
|
12 |
#include "lists.h"
|
| 13 |
#include "StringList.h"
|
13 |
#include "StringList.h"
|
| 14 |
#include "File.h"
|
14 |
#include "File.h"
|
| 15 |
#include "Utils/String.h"
|
15 |
#include "Utils/String.h"
|
| - |
|
16 |
#include "Utils/StringList.h"
|
| 16 |
|
17 |
|
| 17 |
#include "Package/CorePackage.h"
|
18 |
#include "Package/CorePackage.h"
|
| 18 |
|
19 |
|
| 19 |
#define GAME_ALL 0
|
20 |
#define GAME_ALL 0
|
| 20 |
#define GAME_X2 1
|
21 |
#define GAME_X2 1
|
| Line 27... |
Line 28... |
| 27 |
#define FILEVERSION 4.20f
|
28 |
#define FILEVERSION 4.20f
|
| 28 |
|
29 |
|
| 29 |
#define WRITECHUNK 50000
|
30 |
#define WRITECHUNK 50000
|
| 30 |
|
31 |
|
| 31 |
class CPackages;
|
32 |
class CPackages;
|
| - |
|
33 |
|
| - |
|
34 |
namespace SPK {
|
| - |
|
35 |
class CTextDB;
|
| - |
|
36 |
}
|
| - |
|
37 |
|
| - |
|
38 |
using namespace SPK;
|
| 32 |
|
39 |
|
| 33 |
enum {
|
40 |
enum {
|
| 34 |
READFLAG_NONE = 0,
|
41 |
READFLAG_NONE = 0,
|
| 35 |
READFLAG_NOUNCOMPRESS = 1
|
42 |
READFLAG_NOUNCOMPRESS = 1
|
| 36 |
};
|
43 |
};
|
| Line 41... |
Line 48... |
| 41 |
enum {SPKINSTALL_CREATEDIRECTORY, SPKINSTALL_CREATEDIRECTORY_FAIL, SPKINSTALL_WRITEFILE, SPKINSTALL_WRITEFILE_FAIL, SPKINSTALL_DELETEFILE, SPKINSTALL_DELETEFILE_FAIL,
|
48 |
enum {SPKINSTALL_CREATEDIRECTORY, SPKINSTALL_CREATEDIRECTORY_FAIL, SPKINSTALL_WRITEFILE, SPKINSTALL_WRITEFILE_FAIL, SPKINSTALL_DELETEFILE, SPKINSTALL_DELETEFILE_FAIL,
|
| 42 |
SPKINSTALL_SKIPFILE, SPKINSTALL_REMOVEDIR, SPKINSTALL_ENABLEFILE, SPKINSTALL_DISABLEFILE, SPKINSTALL_ENABLEFILE_FAIL, SPKINSTALL_DISABLEFILE_FAIL,
|
49 |
SPKINSTALL_SKIPFILE, SPKINSTALL_REMOVEDIR, SPKINSTALL_ENABLEFILE, SPKINSTALL_DISABLEFILE, SPKINSTALL_ENABLEFILE_FAIL, SPKINSTALL_DISABLEFILE_FAIL,
|
| 43 |
SPKINSTALL_UNINSTALL_MOVE, SPKINSTALL_UNINSTALL_COPY, SPKINSTALL_UNINSTALL_MOVE_FAIL, SPKINSTALL_UNINSTALL_COPY_FAIL, SPKINSTALL_UNINSTALL_REMOVE, SPKINSTALL_UNINSTALL_REMOVE_FAIL,
|
50 |
SPKINSTALL_UNINSTALL_MOVE, SPKINSTALL_UNINSTALL_COPY, SPKINSTALL_UNINSTALL_MOVE_FAIL, SPKINSTALL_UNINSTALL_COPY_FAIL, SPKINSTALL_UNINSTALL_REMOVE, SPKINSTALL_UNINSTALL_REMOVE_FAIL,
|
| 44 |
SPKINSTALL_ORIGINAL_BACKUP, SPKINSTALL_ORIGINAL_RESTORE, SPKINSTALL_ORIGINAL_BACKUP_FAIL, SPKINSTALL_ORIGINAL_RESTORE_FAIL, SPKINSTALL_FAKEPATCH, SPKINSTALL_FAKEPATCH_FAIL,
|
51 |
SPKINSTALL_ORIGINAL_BACKUP, SPKINSTALL_ORIGINAL_RESTORE, SPKINSTALL_ORIGINAL_BACKUP_FAIL, SPKINSTALL_ORIGINAL_RESTORE_FAIL, SPKINSTALL_FAKEPATCH, SPKINSTALL_FAKEPATCH_FAIL,
|
| 45 |
SPKINSTALL_MISSINGFILE, SPKINSTALL_SHARED, SPKINSTALL_SHARED_FAIL, SPKINSTALL_ORPHANED, SPKINSTALL_ORPHANED_FAIL, SPKINSTALL_UNCOMPRESS_FAIL, SPKINSTALL_AUTOTEXT, SPKINSTALL_AUTOTEXT_FAIL
|
52 |
SPKINSTALL_MISSINGFILE, SPKINSTALL_SHARED, SPKINSTALL_SHARED_FAIL, SPKINSTALL_ORPHANED, SPKINSTALL_ORPHANED_FAIL, SPKINSTALL_UNCOMPRESS_FAIL, SPKINSTALL_AUTOTEXT, SPKINSTALL_AUTOTEXT_FAIL
|
| 46 |
};
|
53 |
};
|
| 47 |
|
54 |
|
| 48 |
enum {PACKAGETYPE_NORMAL, PACKAGETYPE_LIBRARY, PACKAGETYPE_CUSTOMSTART, PACKAGETYPE_PATCH, PACKAGETYPE_UPDATE, PACKAGETYPE_MOD, PACKAGETYPE_SHIP, PACKAGETYPE_FAKEPATCH};
|
55 |
enum {PACKAGETYPE_NORMAL, PACKAGETYPE_LIBRARY, PACKAGETYPE_CUSTOMSTART, PACKAGETYPE_PATCH, PACKAGETYPE_UPDATE, PACKAGETYPE_MOD, PACKAGETYPE_SHIP, PACKAGETYPE_FAKEPATCH};
|
| 49 |
|
56 |
|
| 50 |
enum {TYPE_BASE, TYPE_SPK, TYPE_XSP, TYPE_ARCHIVE};
|
57 |
enum {TYPE_BASE, TYPE_SPK, TYPE_XSP, TYPE_ARCHIVE};
|
| 51 |
|
58 |
|
| 52 |
// text pages
|
59 |
// text pages
|
| 53 |
#define TEXTPAGE_RACE 1266
|
60 |
#define TEXTPAGE_RACE 1266
|
| 54 |
#define TEXTPAGE_OBJECTS 17
|
61 |
#define TEXTPAGE_OBJECTS 17
|
| 55 |
#define TEXTPAGE_CLASS 2006
|
62 |
#define TEXTPAGE_CLASS 2006
|
| 56 |
#define TEXTPAGE_CARGOCLASS 1999
|
63 |
#define TEXTPAGE_CARGOCLASS 1999
|
| - |
|
64 |
|
| - |
|
65 |
|
| - |
|
66 |
enum WareTypes {
|
| - |
|
67 |
Ware_BuiltIn,
|
| - |
|
68 |
Ware_EMP,
|
| - |
|
69 |
Ware_Custom
|
| - |
|
70 |
};
|
| - |
|
71 |
|
| - |
|
72 |
tstruct SWareEntry {
|
| - |
|
73 |
Utils::String name;
|
| - |
|
74 |
Utils::String description;
|
| - |
|
75 |
enum WareTypes type;
|
| - |
|
76 |
Utils::String id;
|
| - |
|
77 |
int relval;
|
| - |
|
78 |
int notority;
|
| - |
|
79 |
int position;
|
| - |
|
80 |
} SWareEntry;
|
| 57 |
|
81 |
|
| 58 |
|
82 |
|
| 59 |
// spk header struct
|
83 |
// spk header struct
|
| 60 |
tstruct SSPKHeader {
|
84 |
tstruct SSPKHeader {
|
| 61 |
SSPKHeader () { fVersion = 0; iValueCompression = lValueCompressSize = 0; }
|
85 |
SSPKHeader () { fVersion = 0; iValueCompression = lValueCompressSize = 0; }
|
| Line 268... |
Line 292... |
| 268 |
void RemoveFakePatchOrder(CyString scriptName, CyString author);
|
292 |
void RemoveFakePatchOrder(CyString scriptName, CyString author);
|
| 269 |
void AddFakePatchOrder(bool after, CyString scriptName, CyString author);
|
293 |
void AddFakePatchOrder(bool after, CyString scriptName, CyString author);
|
| 270 |
bool AnyFakePatchOrder() { if ( !m_lFakePatchBefore.Empty() || !m_lFakePatchAfter.Empty() ) return true; return false; }
|
294 |
bool AnyFakePatchOrder() { if ( !m_lFakePatchBefore.Empty() || !m_lFakePatchAfter.Empty() ) return true; return false; }
|
| 271 |
CyStringList &GetFakePatchBeforeOrder() { return m_lFakePatchBefore; }
|
295 |
CyStringList &GetFakePatchBeforeOrder() { return m_lFakePatchBefore; }
|
| 272 |
CyStringList &GetFakePatchAfterOrder() { return m_lFakePatchAfter; }
|
296 |
CyStringList &GetFakePatchAfterOrder() { return m_lFakePatchAfter; }
|
| - |
|
297 |
void updateTextDB() { this->_resetTextDB(); }
|
| - |
|
298 |
|
| - |
|
299 |
virtual bool readWares(int iLang, CLinkList<SWareEntry> &list, const Utils::String &empWares);
|
| 273 |
|
300 |
|
| 274 |
// bool IsChanged() { return m_bChanged; }
|
301 |
// bool IsChanged() { return m_bChanged; }
|
| 275 |
// void SetChanged(bool b) { m_bChanged = b; }
|
302 |
// void SetChanged(bool b) { m_bChanged = b; }
|
| 276 |
|
303 |
|
| 277 |
int FindFirstGameInPackage();
|
304 |
int FindFirstGameInPackage();
|
| Line 322... |
Line 349... |
| 322 |
|
349 |
|
| 323 |
int _read_FileHeader(std::fstream &stream, int iReadType, int iMaxProgress, int iDoneLen, CProgressInfo *pProgress);
|
350 |
int _read_FileHeader(std::fstream &stream, int iReadType, int iMaxProgress, int iDoneLen, CProgressInfo *pProgress);
|
| 324 |
int _read_Header(std::fstream &stream, int iReadType, int iMaxProgress, CProgressInfo *pProgress);
|
351 |
int _read_Header(std::fstream &stream, int iReadType, int iMaxProgress, CProgressInfo *pProgress);
|
| 325 |
CFileIO *_startRead();
|
352 |
CFileIO *_startRead();
|
| 326 |
|
353 |
|
| - |
|
354 |
void _addFile(C_File *file, bool dontChange = false);
|
| - |
|
355 |
void _updateTextDB(C_File *file);
|
| - |
|
356 |
void _resetTextDB();
|
| - |
|
357 |
void _addWaresToList(int iLang, CLinkList<SWareEntry> &list, const Utils::String &wares, enum WareTypes eType);
|
| - |
|
358 |
|
| - |
|
359 |
protected:
|
| 327 |
SSPKHeader m_SHeader;
|
360 |
SSPKHeader m_SHeader;
|
| 328 |
SSPKHeader2 m_SHeader2;
|
361 |
SSPKHeader2 m_SHeader2;
|
| 329 |
|
362 |
|
| 330 |
C_File *m_pIconFile;
|
363 |
C_File *m_pIconFile;
|
| 331 |
CyString m_sIconExt;
|
364 |
CyString m_sIconExt;
|
| Line 335... |
Line 368... |
| 335 |
CLinkList<C_File> m_lFiles;
|
368 |
CLinkList<C_File> m_lFiles;
|
| 336 |
CLinkList<SNames> m_lNames; //TODO: move to CorePackage
|
369 |
CLinkList<SNames> m_lNames; //TODO: move to CorePackage
|
| 337 |
CyStringList m_lMirrors; //TODO: move to CorePackage
|
370 |
CyStringList m_lMirrors; //TODO: move to CorePackage
|
| 338 |
CyStringList m_lFakePatchBefore;
|
371 |
CyStringList m_lFakePatchBefore;
|
| 339 |
CyStringList m_lFakePatchAfter;
|
372 |
CyStringList m_lFakePatchAfter;
|
| - |
|
373 |
|
| - |
|
374 |
CTextDB *_pTextDB;
|
| 340 |
|
375 |
|
| 341 |
CLinkList<SGameCompat> m_lGames;
|
376 |
CLinkList<SGameCompat> m_lGames;
|
| 342 |
|
377 |
|
| 343 |
bool m_bSigned;
|
378 |
bool m_bSigned;
|
| 344 |
bool m_bFullyLoaded;
|
379 |
bool m_bFullyLoaded;
|