| Line 28... | Line 28... | 
          
            | 28 | #define TSHIPPOS_CLASS		53
 | 28 | #define TSHIPPOS_CLASS		53
 | 
          
            | 29 |  
 | 29 |  
 | 
          
            | 30 | enum {IMPORTSHIP_NONE, IMPORTSHIP_SCENE, IMPORTSHIP_EXTRACTSCENE, IMPORTSHIP_DUMMIES, IMPORTSHIP_COMPONANT, IMPORTSHIP_MODELS, IMPORTSHIP_TEXTURES, IMPORTSHIP_TEXTS, IMPORTSHIP_BODIES, IMPORTSHIP_COCKPITS, IMPORTSHIP_PACK, IMPORTSHIP_DONE};
 | 30 | enum {IMPORTSHIP_NONE, IMPORTSHIP_SCENE, IMPORTSHIP_EXTRACTSCENE, IMPORTSHIP_DUMMIES, IMPORTSHIP_COMPONANT, IMPORTSHIP_MODELS, IMPORTSHIP_TEXTURES, IMPORTSHIP_TEXTS, IMPORTSHIP_BODIES, IMPORTSHIP_COCKPITS, IMPORTSHIP_PACK, IMPORTSHIP_DONE};
 | 
          
            | 31 |  
 | 31 |  
 | 
          
            | 32 | int		 SPKEXPORT GetMaxShipyards ();
 | 32 | int		 SPKEXPORT GetMaxShipyards ();
 | 
          
            | 33 | Utils::StringSPKEXPORT GetShipyardName (int s);
 | 33 | Utils::WString SPKEXPORT GetShipyardName (int s);
 | 
          
            | 34 |  
 | 34 |  
 | 
          
            | 35 | typedef struct STypesSection {
 | 35 | typedef struct STypesSection {
 | 
          
            | 36 | 	Utils::StringsSection;
 | 36 | 	Utils::WString		sSection;
 | 
          
            | 37 | 	Utils::CStringListlEntries;
 | 37 | 	Utils::WStringList	lEntries;
 | 
          
            | 38 | } STypesSection2;
 | 38 | } STypesSection2;
 | 
          
            | 39 |  
 | 39 |  
 | 
          
            | 40 | typedef struct SComponentEntry {
 | 40 | typedef struct SComponentEntry {
 | 
          
            | 41 | 	Utils::StringsSection;
 | 41 | 	Utils::WString		sSection;
 | 
          
            | 42 | 	Utils::CList<STypesSection> lEntries;
 | 42 | 	Utils::CList<STypesSection> lEntries;
 | 
          
            | 43 | } SComponentEntry;
 | 43 | } SComponentEntry;
 | 
          
            | 44 |  
 | 44 |  
 | 
          
            | 45 | typedef struct SWeaponMask {
 | 45 | typedef struct SWeaponMask {
 | 
          
            | 46 | 	int		iMask;
 | 46 | 	int		iMask;
 | 
          
            | Line 48... | Line 48... | 
          
            | 48 | } SWeaponMask;
 | 48 | } SWeaponMask;
 | 
          
            | 49 |  
 | 49 |  
 | 
          
            | 50 | typedef struct SText
 | 50 | typedef struct SText
 | 
          
            | 51 | {
 | 51 | {
 | 
          
            | 52 | 	int		iId;
 | 52 | 	int		iId;
 | 
          
            | 53 | 	Utils::StringsName;
 | 53 | 	Utils::WString sName;
 | 
          
            | 54 | 	Utils::StringsDesc;
 | 54 | 	Utils::WString sDesc;
 | 
          
            | 55 | } SText;
 | 55 | } SText;
 | 
          
            | 56 |  
 | 56 |  
 | 
          
            | 57 | typedef struct SDummy
 | 57 | typedef struct SDummy
 | 
          
            | 58 | {
 | 58 | {
 | 
          
            | 59 | 	Utils::StringsSection;
 | 59 | 	Utils::WString	sSection;
 | 
          
            | 60 | 	Utils::StringsData;
 | 60 | 	Utils::WString sData;
 | 
          
            | 61 | } SDummy;
 | 61 | } SDummy;
 | 
          
            | 62 |  
 | 62 |  
 | 
          
            | 63 | typedef struct SComponent
 | 63 | typedef struct SComponent
 | 
          
            | 64 | {
 | 64 | {
 | 
          
            | 65 | 	Utils::StringsSection;
 | 65 | 	Utils::WString sSection;
 | 
          
            | 66 | 	Utils::StringsSection2;
 | 66 | 	Utils::WString sSection2;
 | 
          
            | 67 | 	Utils::StringsData;
 | 67 | 	Utils::WString sData;
 | 
          
            | 68 | } SComponent;
 | 68 | } SComponent;
 | 
          
            | 69 |  
 | 69 |  
 | 
          
            | 70 | typedef struct SCockpit
 | 70 | typedef struct SCockpit
 | 
          
            | 71 | {
 | 71 | {
 | 
          
            | 72 | 	Utils::StringsCockpit;
 | 72 | 	Utils::WString	   sCockpit;
 | 
          
            | 73 | 	CLinkList<SWeaponMask> lWeaponMask;
 | 73 | 	CLinkList<SWeaponMask> lWeaponMask;
 | 
          
            | 74 | 	int				iIndex;
 | 74 | 	int				iIndex;
 | 
          
            | 75 | } SCockpit;
 | 75 | } SCockpit;
 | 
          
            | 76 |  
 | 76 |  
 | 
          
            | 77 | using namespace SPK;
 | 77 | using namespace SPK;
 | 
          
            | Line 83... | Line 83... | 
          
            | 83 | 	~CXspFile () { this->Delete(); }
 | 83 | 	~CXspFile () { this->Delete(); }
 | 
          
            | 84 |  
 | 84 |  
 | 
          
            | 85 | 	static bool ReadAnimations(const Utils::WStringList& lIn, Utils::WStringList& lOut, int startRecord);
 | 85 | 	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);
 | 86 | 	static bool ReadAnimations(const Utils::CStringList& lIn, Utils::CStringList& lOut, int startRecord);
 | 
          
            | 87 | 	static int GetAnimationType(const Utils::String &sType);
 | 87 | 	static int GetAnimationType(const Utils::String &sType);
 | 
          
            | 88 | 	static Utils::StringTypesListToString(Utils::CList<STypesSection> &list, bool deleteAfter = false);
 | 88 | 	static Utils::WString TypesListToString(Utils::CList<STypesSection> &list, bool deleteAfter = false);
 | 
          
            | 89 |  
 | 89 |  
 | 
          
            | 90 | 	bool writeHeader(CFileIO &file, int iHeader, int iLength) const override;
 | 90 | 	bool writeHeader(CFileIO &file, int iHeader, int iLength) const override;
 | 
          
            | 91 |  
 | 91 |  
 | 
          
            | 92 | 	bool IsLanguageText () { return m_bLanguageText; }
 | 92 | 	bool IsLanguageText () { return m_bLanguageText; }
 | 
          
            | 93 | 	bool IsExistingShip () { return m_bExistingShip; }
 | 93 | 	bool IsExistingShip () { return m_bExistingShip; }
 | 
          
            | Line 120... | Line 120... | 
          
            | 120 |  
 | 120 |  
 | 
          
            | 121 | 	void SetSceneFile ( C_File *f ) { m_pSceneFile = f; }
 | 121 | 	void SetSceneFile ( C_File *f ) { m_pSceneFile = f; }
 | 
          
            | 122 | 	void SetCockpitFile ( C_File *f ) { m_pCockpitFile = f; }
 | 122 | 	void SetCockpitFile ( C_File *f ) { m_pCockpitFile = f; }
 | 
          
            | 123 |  
 | 123 |  
 | 
          
            | 124 | 	void addAnimation(const Utils::CStringList &list);
 | 124 | 	void addAnimation(const Utils::CStringList &list);
 | 
          
            | 125 | 	void addAnimation(const Utils::String& data);
 | 125 | 	void addAnimation(const Utils::WString& data);
 | 
          
            | 126 | 	void addBodies(const Utils::String&data);
 | 126 | 	void addBodies(const Utils::WString &data);
 | 
          
            | 127 | 	void addBody(const Utils::String§ion, const Utils::String&data);
 | 127 | 	void addBody(const Utils::WString §ion, const Utils::WString &data);
 | 
          
            | 128 | 	void addCutData(const Utils::String& data);
 | 128 | 	void addCutData(const Utils::WString& data);
 | 
          
            | 129 | 	void AddText(int id, const Utils::String&name, const Utils::String&desc );
 | 129 | 	void addText(int id, const Utils::WString &name, const Utils::WString &desc);
 | 
          
            | 130 | 	void AddCockpit(const Utils::String&cockpit, int game, int mask = -1, int index = -1 );
 | 130 | 	void addCockpit(const Utils::WString &cockpit, int game, int mask = -1, int index = -1 );
 | 
          
            | 131 | 	void AddCockpitWeapon(const Utils::String&cockpit, int game, int mask);
 | 131 | 	void addCockpitWeapon(const Utils::WString &cockpit, int game, int mask);
 | 
          
            | 132 | 	void NewCockpit(const Utils::String &id, const Utils::String &scene, int mask );
 | 132 | 	void NewCockpit(const Utils::String &id, const Utils::String &scene, int mask );
 | 
          
            | 133 | 	void EditCockpit(const Utils::String &id, const Utils::String &cockpit);
 | 133 | 	void EditCockpit(const Utils::String &id, const Utils::String &cockpit);
 | 
          
            | 134 | 	void EditCockpit(const Utils::String &id, const Utils::String &scene, int mask);
 | 134 | 	void EditCockpit(const Utils::String &id, const Utils::String &scene, int mask);
 | 
          
            | 135 | 	Utils::String GetCockpitData(const Utils::String &id);
 | 135 | 	Utils::String GetCockpitData(const Utils::String &id);
 | 
          
            | 136 | 	SCockpit *FindCockpit(const Utils::String &id);
 | 136 | 	SCockpit *FindCockpit(const Utils::String &id);
 | 
          
            | 137 | 	void AddDummy(const Utils::String§ion, const Utils::String&data );
 | 137 | 	void addDummy(const Utils::WString §ion, const Utils::WString &data );
 | 
          
            | 138 | 	void AddComponent(const Utils::String§ion, const Utils::String§ion2, const Utils::String&data );
 | 138 | 	void addComponent(const Utils::WString §ion, const Utils::WString §ion2, const Utils::WString &data);
 | 
          
            | 139 | 	void AddWeaponMask(int game, int mask );
 | 139 | 	void AddWeaponMask(int game, int mask );
 | 
          
            | 140 | 	void AddMissileMask(int game, int mask );
 | 140 | 	void AddMissileMask(int game, int mask );
 | 
          
            | 141 | 	void RemoveText(int id);
 | 141 | 	void RemoveText(int id);
 | 
          
            | 142 | 	void ClearText() { m_lText.MemoryClear(); _changed(); }
 | 142 | 	void ClearText() { m_lText.MemoryClear(); _changed(); }
 | 
          
            | 143 |  
 | 143 |  
 | 
          
            | 144 | 	void AddShipyard ( int s ) { m_iShipyard |= s; _changed(); }
 | 144 | 	void AddShipyard ( int s ) { m_iShipyard |= s; _changed(); }
 | 
          
            | 145 | 	void RemoveShipyard ( int s ) { m_iShipyard &= ~(s); _changed(); }
 | 145 | 	void RemoveShipyard ( int s ) { m_iShipyard &= ~(s); _changed(); }
 | 
          
            | 146 | 	void SetShipyard(int s, bool b) { if ( b ) AddShipyard(s); else RemoveShipyard(s); }
 | 146 | 	void SetShipyard(int s, bool b) { if ( b ) AddShipyard(s); else RemoveShipyard(s); }
 | 
          
            | 147 | 	void ToggleShipyard(int s) { if ( this->IsShipyard(s) ) RemoveShipyard(s); else AddShipyard(s); }
 | 147 | 	void ToggleShipyard(int s) { if ( this->IsShipyard(s) ) RemoveShipyard(s); else AddShipyard(s); }
 | 
          
            | 148 |  
 | 148 |  
 | 
          
            | 149 | 	bool removeCutData(const Utils::String&cut);
 | 149 | 	bool removeCutData(const Utils::WString &cut);
 | 
          
            | 150 | 	bool removeCockpit(const Utils::String&cockpitid);
 | 150 | 	bool removeCockpit(const Utils::WString &cockpitid);
 | 
          
            | 151 | 	bool removeComponent(const Utils::String§ion1, const Utils::String§ion2, const Utils::String&data);
 | 151 | 	bool removeComponent(const Utils::WString §ion1, const Utils::WString §ion2, const Utils::WString &data);
 | 
          
            | 152 | 	bool removeDummy(const Utils::String§ion, const Utils::String&data);
 | 152 | 	bool removeDummy(const Utils::WString §ion, const Utils::WString &data);
 | 
          
            | 153 | 	bool removeBodies(const Utils::String&body);
 | 153 | 	bool removeBodies(const Utils::WString &body);
 | 
          
            | 154 | 	bool removeAnimation(const Utils::String&ani);
 | 154 | 	bool removeAnimation(const Utils::WString &ani);
 | 
          
            | 155 |  
 | 155 |  
 | 
          
            | 156 | 	bool IsSigned() { return false; }
 | 156 | 	bool IsSigned() { return false; }
 | 
          
            | 157 | 	bool IsValid ();
 | 157 | 	bool IsValid ();
 | 
          
            | 158 | 	bool IsShipyard(int s) { return (m_iShipyard & s) ? true : false; }
 | 158 | 	bool IsShipyard(int s) { return (m_iShipyard & s) ? true : false; }
 | 
          
            | 159 | 	bool AnyShipyards() { return (m_iShipyard > 0) ? true : false; }
 | 159 | 	bool AnyShipyards() { return (m_iShipyard > 0) ? true : false; }
 | 
          
            | Line 165... | Line 165... | 
          
            | 165 | 	virtual BaseFileType type() const override { return BaseFileType::TYPE_XSP; }
 | 165 | 	virtual BaseFileType type() const override { return BaseFileType::TYPE_XSP; }
 | 
          
            | 166 |  
 | 166 |  
 | 
          
            | 167 | 	Utils::WString shipName(int lang);
 | 167 | 	Utils::WString shipName(int lang);
 | 
          
            | 168 | 	bool ConvertOld(const Utils::String &file);
 | 168 | 	bool ConvertOld(const Utils::String &file);
 | 
          
            | 169 |  
 | 169 |  
 | 
          
            | 170 | 	const Utils::CStringList&getAnimations() const { return _lAnimations; }
 | 170 | 	const Utils::WStringList &getAnimations() const { return _lAnimations; }
 | 
          
            | 171 | 	const Utils::CStringList&getCutData() const { return _lCutData; }
 | 171 | 	const Utils::WStringList &getCutData() const { return _lCutData; }
 | 
          
            | 172 | 	const Utils::CStringList&getBodies() const { return _lBodies; }
 | 172 | 	const Utils::WStringList &getBodies() const { return _lBodies; }
 | 
          
            | 173 | 	CLinkList<SWeaponMask> *GetLaserMasks() { return &m_lWeaponMasks; }
 | 173 | 	CLinkList<SWeaponMask> *GetLaserMasks() { return &m_lWeaponMasks; }
 | 
          
            | 174 | 	CLinkList<SWeaponMask> *GetMissileMasks() { return &m_lMissileMasks; }
 | 174 | 	CLinkList<SWeaponMask> *GetMissileMasks() { return &m_lMissileMasks; }
 | 
          
            | 175 | 	CLinkList<SText> *GetTexts() { return &m_lText; }
 | 175 | 	CLinkList<SText> *GetTexts() { return &m_lText; }
 | 
          
            | 176 | 	CLinkList<SDummy> *GetDummies() { return &m_lDummy; }
 | 176 | 	CLinkList<SDummy> *GetDummies() { return &m_lDummy; }
 | 
          
            | 177 | 	CLinkList<SComponent> *GetComponents() { return &m_lComponent; }
 | 177 | 	CLinkList<SComponent> *GetComponents() { return &m_lComponent; }
 | 
          
            | Line 225... | Line 225... | 
          
            | 225 |  
 | 225 |  
 | 
          
            | 226 | 	bool getTextureList(Utils::WStringList &list, const unsigned char *olddata, size_t size) const;
 | 226 | 	bool getTextureList(Utils::WStringList &list, const unsigned char *olddata, size_t size) const;
 | 
          
            | 227 | 	bool addTextFromFile(const Utils::WString &file, int textId = -1);
 | 227 | 	bool addTextFromFile(const Utils::WString &file, int textId = -1);
 | 
          
            | 228 | 	bool importBodies(const Utils::CStringList &sceneModels, const Utils::String &filename);
 | 228 | 	bool importBodies(const Utils::CStringList &sceneModels, const Utils::String &filename);
 | 
          
            | 229 | 	bool ImportCockpits(const Utils::String &filename);
 | 229 | 	bool ImportCockpits(const Utils::String &filename);
 | 
          
            | 230 | 	Utils::StringformatShipData(const Utils::CStringList&cockpits, int *text, int game);
 | 230 | 	Utils::WString formatShipData(const Utils::WStringList &cockpits, int *text, int game);
 | 
          
            | 231 |  
 | 231 |  
 | 
          
            | 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;
 | 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;
 | 
          
            | 233 | 	virtual bool GeneratePackagerScript(bool wildcard, Utils::WStringList *list, int game, const Utils::WStringList &gameAddons, bool datafile = false) override;
 | 233 | 	virtual bool GeneratePackagerScript(bool wildcard, Utils::WStringList *list, int game, const Utils::WStringList &gameAddons, bool datafile = false) override;
 | 
          
            | 234 | 	virtual void addGeneratedFiles(HZIP &hz);
 | 234 | 	virtual void addGeneratedFiles(HZIP &hz);
 | 
          
            | 235 |  
 | 235 |  
 | 
          
            | 236 | protected:
 | 236 | protected:
 | 
          
            | 237 | 	virtual void Delete ();
 | 237 | 	virtual void Delete ();
 | 
          
            | 238 | 	virtual void SetDefaults ();
 | 238 | 	virtual void SetDefaults ();
 | 
          
            | 239 | 	virtual bool _checkHeader(const Utils::WString &header) const override;
 | 239 | 	virtual bool _checkHeader(const Utils::WString &header) const override;
 | 
          
            | 240 | 	SCockpit *_findCockpit(const Utils::String&sID);
 | 240 | 	SCockpit *_findCockpit(const Utils::WString &sID);
 | 
          
            | 241 | 	void _addSection(Utils::CList<STypesSection> &list, const Utils::String§ion, const Utils::String&data);
 | 241 | 	void _addSection(Utils::CList<STypesSection> &list, const Utils::WString §ion, const Utils::WString &data);
 | 
          
            | 242 | 	void _addDataSection(Utils::CStringList& list, Utils::CList<STypesSection>& sectionList, bool bUseFirst);
 | 242 | 	void _addDataSection(Utils::WStringList& list, Utils::CList<STypesSection>& sectionList, bool bUseFirst);
 | 
          
            | 243 | 	bool _addTextFromFile(CFileIO &F, int textId = -1);
 | 243 | 	bool _addTextFromFile(CFileIO &F, int textId = -1);
 | 
          
            | 244 |  
 | 244 |  
 | 
          
            | 245 | protected:
 | 245 | protected:
 | 
          
            | 246 | 	C_File *m_pSceneFile, *m_pCockpitFile;
 | 246 | 	C_File *m_pSceneFile, *m_pCockpitFile;
 | 
          
            | 247 |  
 | 247 |  
 | 
          
            | Line 250... | Line 250... | 
          
            | 250 | 	int m_iOrgDesc;
 | 250 | 	int m_iOrgDesc;
 | 
          
            | 251 |  
 | 251 |  
 | 
          
            | 252 | 	Utils::String m_sID;
 | 252 | 	Utils::String m_sID;
 | 
          
            | 253 | 	Utils::String m_sData;
 | 253 | 	Utils::String m_sData;
 | 
          
            | 254 |  
 | 254 |  
 | 
          
            | 255 | 	Utils::CStringList_lCutData;
 | 255 | 	Utils::WStringList		_lCutData;
 | 
          
            | 256 | 	Utils::CStringList_lBodies;
 | 256 | 	Utils::WStringList		_lBodies;
 | 
          
            | 257 | 	Utils::CStringList_lAnimations;
 | 257 | 	Utils::WStringList		_lAnimations;
 | 
          
            | 258 | 	CLinkList<SCockpit>		m_lCockpit;
 | 258 | 	CLinkList<SCockpit>		m_lCockpit;
 | 
          
            | 259 | 	CLinkList<SText>		m_lText;
 | 259 | 	CLinkList<SText>		m_lText;
 | 
          
            | 260 | 	CLinkList<SComponent>	m_lComponent;
 | 260 | 	CLinkList<SComponent>	m_lComponent;
 | 
          
            | 261 | 	CLinkList<SDummy>		m_lDummy;
 | 261 | 	CLinkList<SDummy>		m_lDummy;
 | 
          
            | 262 | 	CLinkList<SWeaponMask>  m_lWeaponMasks;
 | 262 | 	CLinkList<SWeaponMask>  m_lWeaponMasks;
 |