Rev 1 | Blame | Compare with Previous | Last modification | View Log | RSS feed
// X3Data.h: interface for the CX3Data class.////////////////////////////////////////////////////////////////////////#if !defined(AFX_X3DATA_H__491F0DBE_1AE5_4956_B262_F2D1B0D0E9FF__INCLUDED_)#define AFX_X3DATA_H__491F0DBE_1AE5_4956_B262_F2D1B0D0E9FF__INCLUDED_#include <Utils/WStringList.h>Utils::WString GetEndOfLine(FILE* id, int* line, bool upper);#if _MSC_VER > 1000#pragma once#endif // _MSC_VER > 1000#define DATA_LOCKED m_bLocked = true;#define DATA_UNLOCKED m_bLocked = false;enum Rep { REP_TRADE, REP_FIGHT, REP_ARGON, REP_BORON, REP_SPLIT, REP_PARANID, REP_TELADI, REP_GONER, REP_TERRAN, REP_ATF, REP_PIRATES, REP_YAKI };enum ShipClass { CLASS_M1, CLASS_M2, CLASS_M3, CLASS_M4, CLASS_M5, CLASS_M6, CLASS_M7, CLASS_M8, CLASS_TP, CLASS_TS, CLASS_TM, CLASS_TL };#define MAXRACEREP 12#define MAXSHIPCLASS 12typedef struct SShip {void Reset() { sName = sID = sClass = sEnv = ""; iSpeed = 0; }Utils::WString sName;Utils::WString sID;Utils::WString sClass;Utils::WString sEnv;int iSpeed;} SShip;typedef struct STarget : public SShip {void Reset() { SShip::Reset(); iShields = iHull = iDist = 0; sRelation = ""; }int iShields;int iHull;Utils::WString sRelation;int iDist;} STarget;typedef struct SRaceRep {void Reset() { sRace = ""; iRep = 0; iRepPct = 0; sRank = ""; bIncludeRace = false; }Utils::WString sRace;Utils::WString sRank;int iRep;int iRepPct;bool bIncludeRace;} SRaceRep;class CX3Data{public:bool readFile(const Utils::WString &, const Utils::WString &);// get stringsbool IsLocked () { return m_bLocked; }SShip &GetShipData () { return m_shipData; }STarget &GetTargetData () { return m_targetData; }const Utils::WString &pilot () const { return m_sPilot; }const Utils::WString &shipId() const { return m_shipData.sID; }int GetShipsNum () { return m_iShips; }int GetStations () { return m_iStations; }const Utils::WString &credits () const { return m_sAccount; }const Utils::WString &gameTime () const { return m_sGametime; }const Utils::WString &shipName () const { return m_shipData.sName; }const Utils::WString &shipEnv () const { return m_shipData.sEnv; }int GetShipClass (int s_class) { return m_iShipClass[s_class]; }SRaceRep &GetRaceRep (int race) { return m_Rep[race]; }bool HasTarget () const { return (m_targetData.sName.empty()) ? false : true; }Utils::WString target () const { return (!HasTarget()) ? L"No Target" : m_targetData.sName; }const Utils::WString &targetRelation() { return m_targetData.sRelation; }Utils::WString GetTargetDistanceStr(){int dist = m_targetData.iDist;if ( dist > 900 ){float fDist = (float)dist / 1000.0f;return Utils::WString::FromFloat(fDist, 1) + L"Km";}return Utils::WString::Number(dist) + L"m";}int GetHull () { return m_iHull; }int GetShields () { return m_iShields; }int GetWeaponEnergy () { return m_iLaserProgress; }int GetMySpeed () { return m_shipData.iSpeed; }int GetTargetSpeed () { return m_targetData.iSpeed; }int GetTargetDistance () { return m_targetData.iDist; }int GetTargetHull () { return m_targetData.iHull; }int GetTargetShield () { return m_targetData.iShields; }int GetEnemies () { return m_iEnemies; }int GetEnemies2 () { return m_iEnemies2; }int GetMissiles () { return m_iMissiles; }int GetInsurance () { return m_iInsurance; }int GetVersion () { return m_iVersion; }Utils::WString myShip () const { return (m_shipData.sName.empty()) ? L"No Ship" : (m_shipData.sName + L" (" + m_shipData.sID + L") [" + m_shipData.sClass + L"] / " + m_shipData.sEnv); }Utils::WString myTarget () const { return (!HasTarget()) ? L"No Target" : (m_targetData.sName + L" (" + m_targetData.sID + L") [" + m_targetData.sClass + L"]"); }const Utils::WStringList &customFiles () const { return _lCustomFile; }const Utils::WStringList &customList () const { return _lCustomList; }// set stringsvoid Reset ();void setGameName(const Utils::WString &name) { m_sGameName = name; }void setGameDirectory(const Utils::WString &name) { m_sGameDir = name; }const Utils::WString &GetGameName() const { return m_sGameName; }const Utils::WString& GetProgDir() const { return m_sProgDir; }const Utils::WString& GetGameDirectory() const { return m_sGameDir; }CX3Data(const Utils::WString &progDir);virtual ~CX3Data();void setRaceRep(int rep, const Utils::WString &race, const Utils::WString &rest, bool old = false);private:Utils::WString _getRepPercentage(const Utils::WString &rank) const;Utils::WString _getRankPercentage(const Utils::WString &rank) const;// data lockingbool m_bLocked;// my ship dataSShip m_shipData;// my targets dataSTarget m_targetData;// pilot infoUtils::WString m_sPilot;int m_iShips;int m_iStations;int m_iAccount;int m_iInsurance;int m_iShipClass[MAXSHIPCLASS];// main ship informationint m_iHull;int m_iShields;int m_iLaser;int m_iMaxLaser;int m_iLaserProgress;int m_iMissiles;int m_iEnemies;int m_iEnemies2;int m_iVersion;int m_iLastUpdate;Utils::WString m_sAccount;Utils::WString m_sGametime;Utils::WString m_sShipEnv;SRaceRep m_Rep[MAXRACEREP];Utils::WString m_sGameName;Utils::WString m_sGameDir;Utils::WString m_sProgDir;bool m_bLoaded;Utils::WStringList _lCustomList;Utils::WStringList _lCustomFile;};#endif // !defined(AFX_X3DATA_H__491F0DBE_1AE5_4956_B262_F2D1B0D0E9FF__INCLUDED_)