Subversion Repositories spk

Rev

Rev 217 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 217 Rev 218
Line 1... Line 1...
1
#ifndef _XSPFILE_H__
1
#ifndef _XSPFILE_H__
2
#define _XSPFILE_H__
2
#define _XSPFILE_H__
3
 
3
 
4
#include "BaseFile.h"
4
#include "BaseFile.h"
5
#include "ShipData.h"
5
#include "ShipData.h"
6
#include "StringList.h"
-
 
7
#include "VirtualFileSystem.h"
6
#include "VirtualFileSystem.h"
8
 
7
 
9
class CCatFile;
8
class CCatFile;
10
 
9
 
11
#define SHIPYARD_NONE		  0
10
#define SHIPYARD_NONE		  0
Line 81... Line 80...
81
public:
80
public:
82
	CXspFile ();
81
	CXspFile ();
83
	~CXspFile () { this->Delete(); }
82
	~CXspFile () { this->Delete(); }
84
 
83
 
85
	static bool ReadAnimations(const Utils::WStringList& lIn, Utils::WStringList& lOut, int startRecord);
84
	static bool ReadAnimations(const Utils::WStringList& lIn, Utils::WStringList& lOut, int startRecord);
86
	static bool ReadAnimations(const Utils::CStringList& lIn, Utils::CStringList& lOut, int startRecord);
-
 
87
	static int GetAnimationType(const Utils::String &sType);
85
	static int GetAnimationType(const Utils::WString &sType);
88
	static Utils::WString TypesListToString(Utils::CList<STypesSection> &list, bool deleteAfter = false);
86
	static Utils::WString TypesListToString(Utils::CList<STypesSection> &list, bool deleteAfter = false);
89
 
87
 
90
	bool writeHeader(CFileIO &file, int iHeader, int iLength) const override;
88
	bool writeHeader(CFileIO &file, int iHeader, int iLength) const override;
91
 
89
 
92
	bool IsLanguageText () { return m_bLanguageText; }
90
	bool IsLanguageText () { return m_bLanguageText; }
Line 119... Line 117...
119
	void setShipData			(const Utils::WString &sData ) { m_sData = sData; _changed(); }
117
	void setShipData			(const Utils::WString &sData ) { m_sData = sData; _changed(); }
120
 
118
 
121
	void SetSceneFile ( C_File *f ) { m_pSceneFile = f; }
119
	void SetSceneFile ( C_File *f ) { m_pSceneFile = f; }
122
	void SetCockpitFile ( C_File *f ) { m_pCockpitFile = f; }
120
	void SetCockpitFile ( C_File *f ) { m_pCockpitFile = f; }
123
 
121
 
124
	void addAnimation(const Utils::CStringList &list);
122
	void addAnimation(const Utils::WStringList &list);
125
	void addAnimation(const Utils::WString& data);
123
	void addAnimation(const Utils::WString& data);
126
	void addBodies(const Utils::WString &data);
124
	void addBodies(const Utils::WString &data);
127
	void addBody(const Utils::WString &section, const Utils::WString &data);
125
	void addBody(const Utils::WString &section, const Utils::WString &data);
128
	void addCutData(const Utils::WString& data);
126
	void addCutData(const Utils::WString& data);
129
	void addText(int id, const Utils::WString &name, const Utils::WString &desc);
127
	void addText(int id, const Utils::WString &name, const Utils::WString &desc);
130
	void addCockpit(const Utils::WString &cockpit, int game, int mask = -1, int index = -1 );
128
	void addCockpit(const Utils::WString &cockpit, int game, int mask = -1, int index = -1 );
131
	void addCockpitWeapon(const Utils::WString &cockpit, int game, int mask);
129
	void addCockpitWeapon(const Utils::WString &cockpit, int game, int mask);
132
	void NewCockpit(const Utils::String &id, const Utils::String &scene, int mask );
130
	void newCockpit(const Utils::WString &id, const Utils::WString &scene, int mask );
133
	void EditCockpit(const Utils::String &id, const Utils::String &cockpit);
131
	void editCockpit(const Utils::WString &id, const Utils::WString &cockpit);
134
	void EditCockpit(const Utils::String &id, const Utils::String &scene, int mask);
132
	void editCockpit(const Utils::WString &id, const Utils::WString &scene, int mask);
135
	Utils::String GetCockpitData(const Utils::String &id);
133
	Utils::WString getCockpitData(const Utils::WString &id);
136
	SCockpit *FindCockpit(const Utils::String &id);
134
	SCockpit *findCockpit(const Utils::WString &id);
137
	void addDummy(const Utils::WString &section, const Utils::WString &data );
135
	void addDummy(const Utils::WString &section, const Utils::WString &data );
138
	void addComponent(const Utils::WString &section, const Utils::WString &section2, const Utils::WString &data);
136
	void addComponent(const Utils::WString &section, const Utils::WString &section2, const Utils::WString &data);
139
	void AddWeaponMask(int game, int mask );
137
	void AddWeaponMask(int game, int mask );
140
	void AddMissileMask(int game, int mask );
138
	void AddMissileMask(int game, int mask );
141
	void RemoveText(int id);
139
	void RemoveText(int id);
Line 163... Line 161...
163
 
161
 
164
	virtual int GetType () { return TYPE_XSP; }
162
	virtual int GetType () { return TYPE_XSP; }
165
	virtual BaseFileType type() const override { return BaseFileType::TYPE_XSP; }
163
	virtual BaseFileType type() const override { return BaseFileType::TYPE_XSP; }
166
 
164
 
167
	Utils::WString shipName(int lang);
165
	Utils::WString shipName(int lang);
168
	bool ConvertOld(const Utils::String &file);
166
	bool convertOld(const Utils::WString &file);
169
 
167
 
170
	const Utils::WStringList &getAnimations() const { return _lAnimations; }
168
	const Utils::WStringList &getAnimations() const { return _lAnimations; }
171
	const Utils::WStringList &getCutData() const { return _lCutData; }
169
	const Utils::WStringList &getCutData() const { return _lCutData; }
172
	const Utils::WStringList &getBodies() const { return _lBodies; }
170
	const Utils::WStringList &getBodies() const { return _lBodies; }
173
	CLinkList<SWeaponMask> *GetLaserMasks() { return &m_lWeaponMasks; }
171
	CLinkList<SWeaponMask> *GetLaserMasks() { return &m_lWeaponMasks; }
Line 196... Line 194...
196
 
194
 
197
	Utils::WString shipClass() const;
195
	Utils::WString shipClass() const;
198
	virtual bool computeSigned(bool updateFiles) const override { return false; }
196
	virtual bool computeSigned(bool updateFiles) const override { return false; }
199
 
197
 
200
	// ship extraction
198
	// ship extraction
201
	bool startExtractShip(CVirtualFileSystem *pVfs, const Utils::String &sId, CProgressInfo *pProgress);
199
	bool startExtractShip(CVirtualFileSystem *pVfs, const Utils::WString &sId, CProgressInfo *pProgress);
202
	bool extractShip(CVirtualFileSystem *pVfs, const Utils::String &sId, CProgressInfo *progress);
200
	bool extractShip(CVirtualFileSystem *pVfs, const Utils::WString &sId, CProgressInfo *progress);
203
	bool extractSceneFiles(CVirtualFileSystem *pVfs);
201
	bool extractSceneFiles(CVirtualFileSystem *pVfs);
204
	void extractComponants(CVirtualFileSystem *pVfs, const Utils::CStringList &sceneModels);
202
	void extractComponants(CVirtualFileSystem *pVfs, const Utils::WStringList &sceneModels);
205
	void extractCutData(CVirtualFileSystem *pVfs, Utils::CStringList& sceneModels, bool add);
203
	void extractCutData(CVirtualFileSystem *pVfs, Utils::WStringList& sceneModels, bool add);
206
	void extractDummies(CVirtualFileSystem *pVfs, Utils::CStringList& sceneModels, bool add);
204
	void extractDummies(CVirtualFileSystem *pVfs, Utils::WStringList& sceneModels, bool add);
207
	void extractTextures(CVirtualFileSystem *pVfs);
205
	void extractTextures(CVirtualFileSystem *pVfs);
208
	bool extractBodies(CVirtualFileSystem *pVfs, const Utils::CStringList& sceneModels);
206
	bool extractBodies(CVirtualFileSystem *pVfs, const Utils::WStringList& sceneModels);
209
	bool extractCockpits(CVirtualFileSystem *pVfs);
207
	bool extractCockpits(CVirtualFileSystem *pVfs);
210
 
208
 
211
	void addComponentsToList(CLinkList<SComponentEntry> &componentList);
209
	void addComponentsToList(CLinkList<SComponentEntry> &componentList);
212
	void addDummiesToList(Utils::CList<STypesSection> &list);
210
	void addDummiesToList(Utils::CList<STypesSection> &list);
213
	void addCutDataToList(Utils::CList<STypesSection> &list);
211
	void addCutDataToList(Utils::CList<STypesSection> &list);
214
	void addBodiesToList(Utils::CList<STypesSection> &list);
212
	void addBodiesToList(Utils::CList<STypesSection> &list);
215
	void addAnimationsToList(Utils::CList<STypesSection> &list);
213
	void addAnimationsToList(Utils::CList<STypesSection> &list);
216
 
214
 
217
	bool processSceneFileSection(int section, CVirtualFileSystem *pVfs, Utils::CStringList &lModels, CProgressInfo *progress);
215
	bool processSceneFileSection(int section, CVirtualFileSystem *pVfs, Utils::WStringList &lModels, CProgressInfo *progress);
218
	bool processSceneFiles(CVirtualFileSystem *pVfs, CProgressInfo *progress);
216
	bool processSceneFiles(CVirtualFileSystem *pVfs, CProgressInfo *progress);
219
 
217
 
220
	void PackAllFiles();
218
	void PackAllFiles();
221
	bool readSceneModels(Utils::CStringList& out);
219
	bool readSceneModels(Utils::WStringList& out);
222
 
220
 
223
	//TODO: convert this
221
	//TODO: convert this
224
	void ExtractTexts(CCatFile *catFile, CCatFile *secondCatFile, int textId);
222
	void ExtractTexts(CCatFile *catFile, CCatFile *secondCatFile, int textId);
225
 
223
 
226
	bool getTextureList(Utils::WStringList &list, const unsigned char *olddata, size_t size) const;
224
	bool getTextureList(Utils::WStringList &list, const unsigned char *olddata, size_t size) const;
227
	bool addTextFromFile(const Utils::WString &file, int textId = -1);
225
	bool addTextFromFile(const Utils::WString &file, int textId = -1);
228
	bool importBodies(const Utils::CStringList &sceneModels, const Utils::String &filename);
226
	bool importBodies(const Utils::WStringList &sceneModels, const Utils::WString &filename);
229
	bool ImportCockpits(const Utils::String &filename);
227
	bool ImportCockpits(const Utils::WString &filename);
230
	Utils::WString formatShipData(const Utils::WStringList &cockpits, int *text, int game);
228
	Utils::WString formatShipData(const Utils::WStringList &cockpits, int *text, int game);
231
 
229
 
232
	virtual bool loadPackageData(const Utils::WString &sFirst, const Utils::WString &sRest, const Utils::WString &sMainGame, Utils::WStringList &otherGames, Utils::WStringList &gameAddons, CProgressInfo *progress = NULL) override;
230
	virtual bool loadPackageData(const Utils::WString &sFirst, const Utils::WString &sRest, const Utils::WString &sMainGame, Utils::WStringList &otherGames, Utils::WStringList &gameAddons, CProgressInfo *progress = NULL) override;
233
	virtual bool GeneratePackagerScript(bool wildcard, Utils::WStringList *list, int game, const Utils::WStringList &gameAddons, bool datafile = false) override;
231
	virtual bool GeneratePackagerScript(bool wildcard, Utils::WStringList *list, int game, const Utils::WStringList &gameAddons, bool datafile = false) override;
234
	virtual void addGeneratedFiles(HZIP &hz);
232
	virtual void addGeneratedFiles(HZIP &hz);