Line 80... |
Line 80... |
80 |
{
|
80 |
{
|
81 |
public:
|
81 |
public:
|
82 |
CXspFile ();
|
82 |
CXspFile ();
|
83 |
~CXspFile () { this->Delete(); }
|
83 |
~CXspFile () { this->Delete(); }
|
84 |
|
84 |
|
85 |
static bool ReadAnimations(CyStringList *lIn, CyStringList *lOut, int startRecord);
|
85 |
static bool ReadAnimations(const Utils::CStringList &lIn, Utils::CStringList &lOut, int startRecord);
|
86 |
static int GetAnimationType(const Utils::String &sType);
|
86 |
static int GetAnimationType(const Utils::String &sType);
|
87 |
static Utils::String TypesListToString(Utils::CList<STypesSection> &list, bool deleteAfter = false);
|
87 |
static Utils::String TypesListToString(Utils::CList<STypesSection> &list, bool deleteAfter = false);
|
88 |
|
88 |
|
89 |
bool WriteHeader(CFileIO &file, int iHeader, int iLength);
|
89 |
bool WriteHeader(CFileIO &file, int iHeader, int iLength);
|
90 |
|
90 |
|
Line 118... |
Line 118... |
118 |
void SetShipData (const Utils::String &sData ) { m_sData = sData; _changed(); }
|
118 |
void SetShipData (const Utils::String &sData ) { m_sData = sData; _changed(); }
|
119 |
|
119 |
|
120 |
void SetSceneFile ( C_File *f ) { m_pSceneFile = f; }
|
120 |
void SetSceneFile ( C_File *f ) { m_pSceneFile = f; }
|
121 |
void SetCockpitFile ( C_File *f ) { m_pCockpitFile = f; }
|
121 |
void SetCockpitFile ( C_File *f ) { m_pCockpitFile = f; }
|
122 |
|
122 |
|
123 |
void AddAnimation(CyStringList *list);
|
123 |
void addAnimation(const Utils::CStringList &list);
|
124 |
void AddAnimation(const Utils::String &data) { m_lAnimations.PushBack(CyString(data), true); _changed(); }
|
124 |
void addAnimation(const Utils::String& data);
|
125 |
void AddBodies(const Utils::String &data);
|
125 |
void addBodies(const Utils::String &data);
|
126 |
void AddBody(const Utils::String §ion, const Utils::String &data);
|
126 |
void addBody(const Utils::String §ion, const Utils::String &data);
|
127 |
void addCutData(const Utils::String& data);
|
127 |
void addCutData(const Utils::String& data);
|
128 |
void AddText(int id, const Utils::String &name, const Utils::String &desc );
|
128 |
void AddText(int id, const Utils::String &name, const Utils::String &desc );
|
129 |
void AddCockpit(const Utils::String &cockpit, int game, int mask = -1, int index = -1 );
|
129 |
void AddCockpit(const Utils::String &cockpit, int game, int mask = -1, int index = -1 );
|
130 |
void AddCockpitWeapon(const Utils::String &cockpit, int game, int mask);
|
130 |
void AddCockpitWeapon(const Utils::String &cockpit, int game, int mask);
|
131 |
void NewCockpit(const Utils::String &id, const Utils::String &scene, int mask );
|
131 |
void NewCockpit(const Utils::String &id, const Utils::String &scene, int mask );
|
Line 144... |
Line 144... |
144 |
void RemoveShipyard ( int s ) { m_iShipyard &= ~(s); _changed(); }
|
144 |
void RemoveShipyard ( int s ) { m_iShipyard &= ~(s); _changed(); }
|
145 |
void SetShipyard(int s, bool b) { if ( b ) AddShipyard(s); else RemoveShipyard(s); }
|
145 |
void SetShipyard(int s, bool b) { if ( b ) AddShipyard(s); else RemoveShipyard(s); }
|
146 |
void ToggleShipyard(int s) { if ( this->IsShipyard(s) ) RemoveShipyard(s); else AddShipyard(s); }
|
146 |
void ToggleShipyard(int s) { if ( this->IsShipyard(s) ) RemoveShipyard(s); else AddShipyard(s); }
|
147 |
|
147 |
|
148 |
bool removeCutData(const Utils::String &cut);
|
148 |
bool removeCutData(const Utils::String &cut);
|
149 |
bool RemoveCockpit(const Utils::String &cockpitid);
|
149 |
bool removeCockpit(const Utils::String &cockpitid);
|
150 |
bool RemoveComponent(const Utils::String §ion1, const Utils::String §ion2, const Utils::String &data);
|
150 |
bool removeComponent(const Utils::String §ion1, const Utils::String §ion2, const Utils::String &data);
|
151 |
bool RemoveDummy(const Utils::String §ion, const Utils::String &data);
|
151 |
bool removeDummy(const Utils::String §ion, const Utils::String &data);
|
152 |
bool RemoveBodies(const Utils::String &body);
|
152 |
bool removeBodies(const Utils::String &body);
|
153 |
bool RemoveAnimation(const Utils::String &ani);
|
153 |
bool removeAnimation(const Utils::String &ani);
|
154 |
|
154 |
|
155 |
bool IsSigned() { return false; }
|
155 |
bool IsSigned() { return false; }
|
156 |
bool IsValid ();
|
156 |
bool IsValid ();
|
157 |
bool IsShipyard(int s) { return (m_iShipyard & s) ? true : false; }
|
157 |
bool IsShipyard(int s) { return (m_iShipyard & s) ? true : false; }
|
158 |
bool AnyShipyards() { return (m_iShipyard > 0) ? true : false; }
|
158 |
bool AnyShipyards() { return (m_iShipyard > 0) ? true : false; }
|
Line 163... |
Line 163... |
163 |
virtual int GetType () { return TYPE_XSP; }
|
163 |
virtual int GetType () { return TYPE_XSP; }
|
164 |
|
164 |
|
165 |
Utils::String GetShipName(int lang);
|
165 |
Utils::String GetShipName(int lang);
|
166 |
bool ConvertOld(const Utils::String &file);
|
166 |
bool ConvertOld(const Utils::String &file);
|
167 |
|
167 |
|
168 |
CyStringList *GetAnimations() { return &m_lAnimations; }
|
168 |
const Utils::CStringList &getAnimations() const { return _lAnimations; }
|
169 |
const Utils::CStringList &getCutData() const { return _lCutData; }
|
169 |
const Utils::CStringList &getCutData() const { return _lCutData; }
|
170 |
CyStringList *GetBodies() { return &m_lBodies; }
|
170 |
const Utils::CStringList &getBodies() const { return _lBodies; }
|
171 |
CLinkList<SWeaponMask> *GetLaserMasks() { return &m_lWeaponMasks; }
|
171 |
CLinkList<SWeaponMask> *GetLaserMasks() { return &m_lWeaponMasks; }
|
172 |
CLinkList<SWeaponMask> *GetMissileMasks() { return &m_lMissileMasks; }
|
172 |
CLinkList<SWeaponMask> *GetMissileMasks() { return &m_lMissileMasks; }
|
173 |
CLinkList<SText> *GetTexts() { return &m_lText; }
|
173 |
CLinkList<SText> *GetTexts() { return &m_lText; }
|
174 |
CLinkList<SDummy> *GetDummies() { return &m_lDummy; }
|
174 |
CLinkList<SDummy> *GetDummies() { return &m_lDummy; }
|
175 |
CLinkList<SComponent> *GetComponents() { return &m_lComponent; }
|
175 |
CLinkList<SComponent> *GetComponents() { return &m_lComponent; }
|
Line 177... |
Line 177... |
177 |
int GetLaserMask(int game, bool getOnly = false);
|
177 |
int GetLaserMask(int game, bool getOnly = false);
|
178 |
int GetMissileMask(int game, bool getOnly = false);
|
178 |
int GetMissileMask(int game, bool getOnly = false);
|
179 |
void SetLaserMask(int game, int mask);
|
179 |
void SetLaserMask(int game, int mask);
|
180 |
void SetMissileMask(int game, int mask);
|
180 |
void SetMissileMask(int game, int mask);
|
181 |
|
181 |
|
182 |
void SetCreatedShipData(CShipData *data) { m_sData = data->CreateData().ToString(); }
|
182 |
void SetCreatedShipData(CShipData *data) { m_sData = data->createData(); }
|
183 |
bool AnyTexts() { return !m_lText.empty(); }
|
183 |
bool AnyTexts() { return !m_lText.empty(); }
|
184 |
bool AnyDummies() { return !m_lDummy.empty(); }
|
184 |
bool AnyDummies() { return !m_lDummy.empty(); }
|
185 |
bool AnyComponents() { return !m_lComponent.empty(); }
|
185 |
bool AnyComponents() { return !m_lComponent.empty(); }
|
186 |
bool AnyCockpits() { return !m_lCockpit.empty(); }
|
186 |
bool AnyCockpits() { return !m_lCockpit.empty(); }
|
187 |
bool anyCutData() { return !_lCutData.empty(); }
|
187 |
bool anyCutData() { return !_lCutData.empty(); }
|
188 |
bool AnyBodies() { return !m_lBodies.Empty(); }
|
188 |
bool anyBodies() const { return !_lBodies.empty(); }
|
189 |
bool AnyAnimations() { return !m_lAnimations.Empty(); }
|
189 |
bool anyAnimations() const { return !_lAnimations.empty(); }
|
190 |
|
190 |
|
191 |
void clearCutData();
|
191 |
void clearCutData();
|
- |
|
192 |
void clearAnimations();
|
- |
|
193 |
void clearBodies();
|
192 |
|
194 |
|
193 |
Utils::String GetShipClass();
|
195 |
Utils::String GetShipClass();
|
194 |
bool UpdateSigned(bool updateFiles) { m_bSigned = false; return false; }
|
196 |
bool UpdateSigned(bool updateFiles) { m_bSigned = false; return false; }
|
195 |
|
197 |
|
196 |
// ship extraction
|
198 |
// ship extraction
|
197 |
bool startExtractShip(CVirtualFileSystem *pVfs, const Utils::String &sId, CProgressInfo *pProgress);
|
199 |
bool startExtractShip(CVirtualFileSystem *pVfs, const Utils::String &sId, CProgressInfo *pProgress);
|
198 |
bool extractShip(CVirtualFileSystem *pVfs, const Utils::String &sId, CProgressInfo *progress);
|
200 |
bool extractShip(CVirtualFileSystem *pVfs, const Utils::String &sId, CProgressInfo *progress);
|
199 |
bool extractSceneFiles(CVirtualFileSystem *pVfs);
|
201 |
bool extractSceneFiles(CVirtualFileSystem *pVfs);
|
200 |
void extractComponants(CVirtualFileSystem *pVfs, CyStringList *sceneModels);
|
202 |
void extractComponants(CVirtualFileSystem *pVfs, const Utils::CStringList &sceneModels);
|
201 |
void extractCutData(CVirtualFileSystem *pVfs, CyStringList *sceneModels, bool add);
|
203 |
void extractCutData(CVirtualFileSystem *pVfs, Utils::CStringList& sceneModels, bool add);
|
202 |
void extractDummies(CVirtualFileSystem *pVfs, CyStringList *sceneModels, bool add);
|
204 |
void extractDummies(CVirtualFileSystem *pVfs, Utils::CStringList& sceneModels, bool add);
|
203 |
void extractTextures(CVirtualFileSystem *pVfs);
|
205 |
void extractTextures(CVirtualFileSystem *pVfs);
|
204 |
bool extractBodies(CVirtualFileSystem *pVfs, CyStringList *sceneModels);
|
206 |
bool extractBodies(CVirtualFileSystem *pVfs, const Utils::CStringList& sceneModels);
|
205 |
bool extractCockpits(CVirtualFileSystem *pVfs);
|
207 |
bool extractCockpits(CVirtualFileSystem *pVfs);
|
206 |
|
208 |
|
207 |
void addComponentsToList(CLinkList<SComponentEntry> &componentList);
|
209 |
void addComponentsToList(CLinkList<SComponentEntry> &componentList);
|
208 |
void addDummiesToList(Utils::CList<STypesSection> &list);
|
210 |
void addDummiesToList(Utils::CList<STypesSection> &list);
|
209 |
void addCutDataToList(Utils::CList<STypesSection> &list);
|
211 |
void addCutDataToList(Utils::CList<STypesSection> &list);
|
210 |
void addBodiesToList(Utils::CList<STypesSection> &list);
|
212 |
void addBodiesToList(Utils::CList<STypesSection> &list);
|
211 |
void addAnimationsToList(Utils::CList<STypesSection> &list);
|
213 |
void addAnimationsToList(Utils::CList<STypesSection> &list);
|
212 |
|
214 |
|
213 |
bool processSceneFileSection(int section, CVirtualFileSystem *pVfs, CyStringList *lModels, CProgressInfo *progress);
|
215 |
bool processSceneFileSection(int section, CVirtualFileSystem *pVfs, Utils::CStringList &lModels, CProgressInfo *progress);
|
214 |
bool processSceneFiles(CVirtualFileSystem *pVfs, CProgressInfo *progress);
|
216 |
bool processSceneFiles(CVirtualFileSystem *pVfs, CProgressInfo *progress);
|
215 |
|
217 |
|
216 |
void PackAllFiles();
|
218 |
void PackAllFiles();
|
217 |
CyStringList *ReadSceneModels();
|
219 |
bool readSceneModels(Utils::CStringList& out);
|
218 |
|
220 |
|
219 |
//TODO: convert this
|
221 |
//TODO: convert this
|
220 |
void ExtractTexts(CCatFile *catFile, CCatFile *secondCatFile, int textId);
|
222 |
void ExtractTexts(CCatFile *catFile, CCatFile *secondCatFile, int textId);
|
221 |
|
223 |
|
222 |
bool GetTextureList(CyStringList *list, const unsigned char *olddata, size_t size);
|
224 |
bool getTextureList(Utils::CStringList &list, const unsigned char *olddata, size_t size) const;
|
223 |
bool AddTextFromFile(const Utils::String &file, int textId = -1);
|
225 |
bool AddTextFromFile(const Utils::String &file, int textId = -1);
|
224 |
bool ImportBodies(CyStringList *sceneModels, const Utils::String &filename);
|
226 |
bool importBodies(const Utils::CStringList &sceneModels, const Utils::String &filename);
|
225 |
bool ImportCockpits(const Utils::String &filename);
|
227 |
bool ImportCockpits(const Utils::String &filename);
|
226 |
Utils::String FormatShipData(CyStringList *cockpits, int *text, int game);
|
228 |
Utils::String formatShipData(const Utils::CStringList &cockpits, int *text, int game);
|
227 |
|
229 |
|
228 |
virtual bool LoadPackageData(const Utils::String &sFirst, const Utils::String &sRest, const Utils::String &sMainGame, Utils::CStringList &otherGames, Utils::CStringList &gameAddons, CProgressInfo *progress = NULL) override;
|
230 |
virtual bool LoadPackageData(const Utils::String &sFirst, const Utils::String &sRest, const Utils::String &sMainGame, Utils::CStringList &otherGames, Utils::CStringList &gameAddons, CProgressInfo *progress = NULL) override;
|
229 |
virtual bool GeneratePackagerScript(bool wildcard, Utils::CStringList *list, int game, const Utils::CStringList &gameAddons, bool datafile = false) override;
|
231 |
virtual bool GeneratePackagerScript(bool wildcard, Utils::CStringList *list, int game, const Utils::CStringList &gameAddons, bool datafile = false) override;
|
230 |
virtual void addGeneratedFiles(HZIP &hz);
|
232 |
virtual void addGeneratedFiles(HZIP &hz);
|
231 |
|
233 |
|
Line 233... |
Line 235... |
233 |
virtual void Delete ();
|
235 |
virtual void Delete ();
|
234 |
virtual void SetDefaults ();
|
236 |
virtual void SetDefaults ();
|
235 |
virtual bool CheckHeader(const Utils::String header) const;
|
237 |
virtual bool CheckHeader(const Utils::String header) const;
|
236 |
SCockpit *_findCockpit(const Utils::String &sID);
|
238 |
SCockpit *_findCockpit(const Utils::String &sID);
|
237 |
void _addSection(Utils::CList<STypesSection> &list, const Utils::String §ion, const Utils::String &data);
|
239 |
void _addSection(Utils::CList<STypesSection> &list, const Utils::String §ion, const Utils::String &data);
|
238 |
void _addDataSection(CyStringList& list, Utils::CList<STypesSection>& sectionList, bool bUseFirst);
|
- |
|
239 |
void _addDataSection(Utils::CStringList& list, Utils::CList<STypesSection>& sectionList, bool bUseFirst);
|
240 |
void _addDataSection(Utils::CStringList& list, Utils::CList<STypesSection>& sectionList, bool bUseFirst);
|
240 |
bool _addTextFromFile(CFileIO &F, int textId = -1);
|
241 |
bool _addTextFromFile(CFileIO &F, int textId = -1);
|
241 |
|
242 |
|
242 |
protected:
|
243 |
protected:
|
243 |
C_File *m_pSceneFile, *m_pCockpitFile;
|
244 |
C_File *m_pSceneFile, *m_pCockpitFile;
|
Line 248... |
Line 249... |
248 |
|
249 |
|
249 |
Utils::String m_sID;
|
250 |
Utils::String m_sID;
|
250 |
Utils::String m_sData;
|
251 |
Utils::String m_sData;
|
251 |
|
252 |
|
252 |
Utils::CStringList _lCutData;
|
253 |
Utils::CStringList _lCutData;
|
253 |
CyStringList m_lBodies;
|
254 |
Utils::CStringList _lBodies;
|
254 |
CyStringList m_lAnimations;
|
255 |
Utils::CStringList _lAnimations;
|
255 |
CLinkList<SCockpit> m_lCockpit;
|
256 |
CLinkList<SCockpit> m_lCockpit;
|
256 |
CLinkList<SText> m_lText;
|
257 |
CLinkList<SText> m_lText;
|
257 |
CLinkList<SComponent> m_lComponent;
|
258 |
CLinkList<SComponent> m_lComponent;
|
258 |
CLinkList<SDummy> m_lDummy;
|
259 |
CLinkList<SDummy> m_lDummy;
|
259 |
CLinkList<SWeaponMask> m_lWeaponMasks;
|
260 |
CLinkList<SWeaponMask> m_lWeaponMasks;
|