Go to most recent revision | 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 <CyString.h>#include <StringList.h>#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; }CyString sName;CyString sID;CyString sClass;CyString sEnv;int iSpeed;} SShip;typedef struct STarget : public SShip {void Reset() { SShip::Reset(); iShields = iHull = iDist = 0; sRelation = ""; }int iShields;int iHull;CyString sRelation;int iDist;} STarget;typedef struct SRaceRep {void Reset() { sRace = ""; iRep = 0; iRepPct = 0; sRank = ""; bIncludeRace = false; }CyString sRace;CyString sRank;int iRep;int iRepPct;bool bIncludeRace;} SRaceRep;class CX3Data{public:bool ReadFile ( CyString, CyString );// get stringsbool IsLocked () { return m_bLocked; }SShip &GetShipData () { return m_shipData; }STarget &GetTargetData () { return m_targetData; }CyString &GetPilot () { return m_sPilot; }CyString &GetShipID () { return m_shipData.sID; }int GetShipsNum () { return m_iShips; }int GetStations () { return m_iStations; }CyString &GetCredits () { return m_sAccount; }CyString &GetGameTime () { return m_sGametime; }CyString &GetShipName () { return m_shipData.sName; }CyString &GetShipEnv () { return m_shipData.sEnv; }int GetShipClass (int s_class) { return m_iShipClass[s_class]; }SRaceRep &GetRaceRep (int race) { return m_Rep[race]; }bool HasTarget () { return (m_targetData.sName.Empty()) ? false : true; }CyString GetTarget () { return (!HasTarget()) ? "No Target" : m_targetData.sName; }CyString GetTargetRelation() { return m_targetData.sRelation; }CyString GetTargetDistanceStr(){int dist = m_targetData.iDist;if ( dist > 900 ){float fDist = (float)dist / 1000.0f;return CyString::CreateFromFloat(fDist, 1) + "Km";}return CyString::Number(dist) + "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; }CyString GetMyShip () { return (m_shipData.sName.Empty()) ? "No Ship" : (m_shipData.sName + " (" + m_shipData.sID + ") [" + m_shipData.sClass + "] / " + m_shipData.sEnv); }CyString GetMyTarget () { return (!HasTarget()) ? "No Target" : (m_targetData.sName + " (" + m_targetData.sID + ") [" + m_targetData.sClass + "]"); }CyStringList *GetCustomFiles () { return &m_lCustomFile; }CyStringList *GetCustomList () { return &m_lCustomList; }// set stringsvoid Reset ();void SetGameName(CyString &name) { m_sGameName = name; }void SetGameDirectory(CyString &name) { m_sGameDir = name; }CyString &GetGameName() { return m_sGameName; }CyString &GetProgDir() { return m_sProgDir; }CyString &GetGameDirectory() { return m_sGameDir; }CX3Data(CyString &progDir);virtual ~CX3Data();void SetRaceRep(int rep, CyString race, CyString &rest, bool old = false);private:CyString GetRepPercentage ( CyString &rank );CyString GetRankPercentage ( CyString &rank );// data lockingbool m_bLocked;// my ship dataSShip m_shipData;// my targets dataSTarget m_targetData;// pilot infoCyString 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;CyString m_sAccount;CyString m_sGametime;CyString m_sShipEnv;SRaceRep m_Rep[MAXRACEREP];CyString m_sGameName;CyString m_sGameDir;CyString m_sProgDir;bool m_bLoaded;CyStringList m_lCustomList;CyStringList m_lCustomFile;};#endif // !defined(AFX_X3DATA_H__491F0DBE_1AE5_4956_B262_F2D1B0D0E9FF__INCLUDED_)