| 1 | cycrow | 1 | // X3Data.h: interface for the CX3Data class.
 | 
        
           |  |  | 2 | //
 | 
        
           |  |  | 3 | //////////////////////////////////////////////////////////////////////
 | 
        
           |  |  | 4 |   | 
        
           |  |  | 5 | #if !defined(AFX_X3DATA_H__491F0DBE_1AE5_4956_B262_F2D1B0D0E9FF__INCLUDED_)
 | 
        
           |  |  | 6 | #define AFX_X3DATA_H__491F0DBE_1AE5_4956_B262_F2D1B0D0E9FF__INCLUDED_
 | 
        
           |  |  | 7 |   | 
        
           |  |  | 8 | #include <CyString.h>
 | 
        
           |  |  | 9 | #include <StringList.h>
 | 
        
           |  |  | 10 |   | 
        
           |  |  | 11 | #if _MSC_VER > 1000
 | 
        
           |  |  | 12 | #pragma once
 | 
        
           |  |  | 13 | #endif // _MSC_VER > 1000
 | 
        
           |  |  | 14 |   | 
        
           |  |  | 15 | #define DATA_LOCKED  m_bLocked = true;
 | 
        
           |  |  | 16 | #define DATA_UNLOCKED m_bLocked = false;
 | 
        
           |  |  | 17 |   | 
        
           |  |  | 18 | 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 };
 | 
        
           |  |  | 19 | 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 };
 | 
        
           |  |  | 20 | #define MAXRACEREP		12
 | 
        
           |  |  | 21 | #define MAXSHIPCLASS	12
 | 
        
           |  |  | 22 |   | 
        
           |  |  | 23 | typedef struct SShip {
 | 
        
           |  |  | 24 | 	void Reset() { sName = sID = sClass = sEnv = ""; iSpeed = 0; }
 | 
        
           |  |  | 25 | 	CyString sName;
 | 
        
           |  |  | 26 | 	CyString sID;
 | 
        
           |  |  | 27 | 	CyString sClass;
 | 
        
           |  |  | 28 | 	CyString sEnv;
 | 
        
           |  |  | 29 | 	int		 iSpeed;
 | 
        
           |  |  | 30 | } SShip;
 | 
        
           |  |  | 31 |   | 
        
           |  |  | 32 | typedef struct STarget : public SShip {
 | 
        
           |  |  | 33 | 	void Reset() { SShip::Reset(); iShields = iHull = iDist = 0; sRelation = ""; }
 | 
        
           |  |  | 34 | 	int			iShields;
 | 
        
           |  |  | 35 | 	int			iHull;
 | 
        
           |  |  | 36 | 	CyString	sRelation;
 | 
        
           |  |  | 37 | 	int			iDist;
 | 
        
           |  |  | 38 | } STarget;
 | 
        
           |  |  | 39 |   | 
        
           |  |  | 40 | typedef struct SRaceRep {
 | 
        
           |  |  | 41 | 	void Reset() { sRace = ""; iRep = 0; iRepPct = 0; sRank = ""; bIncludeRace = false; }
 | 
        
           |  |  | 42 | 	CyString	sRace;
 | 
        
           |  |  | 43 | 	CyString	sRank;
 | 
        
           |  |  | 44 | 	int			iRep;
 | 
        
           |  |  | 45 | 	int			iRepPct;
 | 
        
           |  |  | 46 | 	bool		bIncludeRace;
 | 
        
           |  |  | 47 | } SRaceRep;
 | 
        
           |  |  | 48 |   | 
        
           |  |  | 49 | class CX3Data  
 | 
        
           |  |  | 50 | {
 | 
        
           |  |  | 51 | public:
 | 
        
           |  |  | 52 | 	bool ReadFile ( CyString, CyString );
 | 
        
           |  |  | 53 |   | 
        
           |  |  | 54 | 	// get strings
 | 
        
           |  |  | 55 | 	bool	IsLocked			() { return m_bLocked; }
 | 
        
           |  |  | 56 | 	SShip	 &GetShipData		() { return m_shipData; }
 | 
        
           |  |  | 57 | 	STarget  &GetTargetData		() { return m_targetData; }
 | 
        
           |  |  | 58 | 	CyString &GetPilot		() { return m_sPilot; }
 | 
        
           |  |  | 59 | 	CyString &GetShipID			() { return m_shipData.sID; }
 | 
        
           |  |  | 60 | 	int		  GetShipsNum		() { return m_iShips; }
 | 
        
           |  |  | 61 | 	int		  GetStations		() { return m_iStations; }
 | 
        
           |  |  | 62 | 	CyString &GetCredits	    () { return m_sAccount; }
 | 
        
           |  |  | 63 | 	CyString &GetGameTime		() { return m_sGametime; }
 | 
        
           |  |  | 64 | 	CyString &GetShipName		() { return m_shipData.sName; }
 | 
        
           |  |  | 65 | 	CyString &GetShipEnv		() { return m_shipData.sEnv; }
 | 
        
           |  |  | 66 | 	int GetShipClass (int s_class) { return m_iShipClass[s_class]; }
 | 
        
           |  |  | 67 | 	SRaceRep &GetRaceRep	(int race) { return m_Rep[race]; }
 | 
        
           |  |  | 68 | 	bool	 HasTarget		() { return (m_targetData.sName.Empty()) ? false : true; }
 | 
        
           |  |  | 69 | 	CyString  GetTarget		() { return (!HasTarget()) ? "No Target" : m_targetData.sName; }
 | 
        
           |  |  | 70 | 	CyString GetTargetRelation() { return m_targetData.sRelation; }
 | 
        
           |  |  | 71 | 	CyString GetTargetDistanceStr()
 | 
        
           |  |  | 72 | 	{
 | 
        
           |  |  | 73 | 		int dist = m_targetData.iDist;
 | 
        
           |  |  | 74 | 		if ( dist > 900 )
 | 
        
           |  |  | 75 | 		{
 | 
        
           |  |  | 76 | 			float fDist = (float)dist / 1000.0f;
 | 
        
           |  |  | 77 | 			return CyString::CreateFromFloat(fDist, 1) + "Km";
 | 
        
           |  |  | 78 | 		}
 | 
        
           |  |  | 79 | 		return CyString::Number(dist) + "m";
 | 
        
           |  |  | 80 | 	}
 | 
        
           |  |  | 81 | 	int     GetHull			() { return m_iHull; }
 | 
        
           |  |  | 82 | 	int     GetShields      () { return m_iShields; }
 | 
        
           |  |  | 83 | 	int     GetWeaponEnergy () { return m_iLaserProgress; }
 | 
        
           |  |  | 84 | 	int		GetMySpeed		() { return m_shipData.iSpeed; }
 | 
        
           |  |  | 85 | 	int		GetTargetSpeed  () { return m_targetData.iSpeed; }
 | 
        
           |  |  | 86 | 	int		GetTargetDistance  () { return m_targetData.iDist; }
 | 
        
           |  |  | 87 | 	int		GetTargetHull	() { return m_targetData.iHull; }
 | 
        
           |  |  | 88 | 	int		GetTargetShield	() { return m_targetData.iShields;  }
 | 
        
           |  |  | 89 | 	int		GetEnemies		() { return m_iEnemies; }
 | 
        
           |  |  | 90 | 	int		GetEnemies2		() { return m_iEnemies2; }
 | 
        
           |  |  | 91 | 	int		GetMissiles		() { return m_iMissiles; }
 | 
        
           |  |  | 92 | 	int		GetInsurance	() { return m_iInsurance; }
 | 
        
           |  |  | 93 | 	int		GetVersion		() { return m_iVersion; }
 | 
        
           |  |  | 94 | 	CyString	GetMyShip		() { return (m_shipData.sName.Empty()) ? "No Ship" : (m_shipData.sName + " (" + m_shipData.sID + ") [" + m_shipData.sClass + "] / " + m_shipData.sEnv); }
 | 
        
           |  |  | 95 | 	CyString	GetMyTarget		() { return (!HasTarget()) ? "No Target" : (m_targetData.sName + " (" + m_targetData.sID + ") [" + m_targetData.sClass + "]"); }
 | 
        
           |  |  | 96 |   | 
        
           |  |  | 97 | 	CyStringList *GetCustomFiles () { return &m_lCustomFile; }
 | 
        
           |  |  | 98 | 	CyStringList *GetCustomList () { return &m_lCustomList; }
 | 
        
           |  |  | 99 |   | 
        
           |  |  | 100 | 	// set strings
 | 
        
           |  |  | 101 | 	void Reset ();
 | 
        
           |  |  | 102 | 	void SetGameName(CyString &name) { m_sGameName = name; }
 | 
        
           |  |  | 103 | 	void SetGameDirectory(CyString &name) { m_sGameDir = name; }
 | 
        
           |  |  | 104 |   | 
        
           |  |  | 105 | 	CyString &GetGameName() { return m_sGameName; }
 | 
        
           |  |  | 106 | 	CyString &GetProgDir()  { return m_sProgDir; }
 | 
        
           |  |  | 107 | 	CyString &GetGameDirectory()  { return m_sGameDir; }
 | 
        
           |  |  | 108 |   | 
        
           |  |  | 109 | 	CX3Data(CyString &progDir);
 | 
        
           |  |  | 110 | 	virtual ~CX3Data();
 | 
        
           |  |  | 111 |   | 
        
           |  |  | 112 | 	void SetRaceRep(int rep, CyString race, CyString &rest, bool old = false);
 | 
        
           |  |  | 113 |   | 
        
           |  |  | 114 | private:
 | 
        
           |  |  | 115 | 	CyString GetRepPercentage ( CyString &rank );
 | 
        
           |  |  | 116 | 	CyString GetRankPercentage ( CyString &rank );
 | 
        
           |  |  | 117 |   | 
        
           |  |  | 118 | 	// data locking
 | 
        
           |  |  | 119 | 	bool		m_bLocked;
 | 
        
           |  |  | 120 |   | 
        
           |  |  | 121 | 	// my ship data
 | 
        
           |  |  | 122 | 	SShip		m_shipData;
 | 
        
           |  |  | 123 | 	// my targets data
 | 
        
           |  |  | 124 | 	STarget		m_targetData;
 | 
        
           |  |  | 125 |   | 
        
           |  |  | 126 | 	// pilot info
 | 
        
           |  |  | 127 | 	CyString	m_sPilot;
 | 
        
           |  |  | 128 | 	int			m_iShips;
 | 
        
           |  |  | 129 | 	int			m_iStations;
 | 
        
           |  |  | 130 | 	int			m_iAccount;
 | 
        
           |  |  | 131 | 	int			m_iInsurance;
 | 
        
           |  |  | 132 | 	int			m_iShipClass[MAXSHIPCLASS];
 | 
        
           |  |  | 133 | 	// main ship information
 | 
        
           |  |  | 134 | 	int			m_iHull;
 | 
        
           |  |  | 135 | 	int			m_iShields;
 | 
        
           |  |  | 136 | 	int			m_iLaser;
 | 
        
           |  |  | 137 | 	int			m_iMaxLaser;
 | 
        
           |  |  | 138 | 	int			m_iLaserProgress;
 | 
        
           |  |  | 139 | 	int			m_iMissiles;
 | 
        
           |  |  | 140 | 	int			m_iEnemies;
 | 
        
           |  |  | 141 | 	int			m_iEnemies2;
 | 
        
           |  |  | 142 | 	int			m_iVersion;
 | 
        
           |  |  | 143 | 	int			m_iLastUpdate;
 | 
        
           |  |  | 144 |   | 
        
           |  |  | 145 | 	CyString	m_sAccount;
 | 
        
           |  |  | 146 | 	CyString	m_sGametime;
 | 
        
           |  |  | 147 | 	CyString	m_sShipEnv;
 | 
        
           |  |  | 148 | 	SRaceRep	m_Rep[MAXRACEREP];
 | 
        
           |  |  | 149 | 	CyString	m_sGameName;
 | 
        
           |  |  | 150 | 	CyString	m_sGameDir;
 | 
        
           |  |  | 151 | 	CyString	m_sProgDir;
 | 
        
           |  |  | 152 |   | 
        
           |  |  | 153 | 	bool		m_bLoaded;
 | 
        
           |  |  | 154 |   | 
        
           |  |  | 155 | 	CyStringList m_lCustomList;
 | 
        
           |  |  | 156 | 	CyStringList m_lCustomFile;
 | 
        
           |  |  | 157 | };
 | 
        
           |  |  | 158 |   | 
        
           |  |  | 159 | #endif // !defined(AFX_X3DATA_H__491F0DBE_1AE5_4956_B262_F2D1B0D0E9FF__INCLUDED_)
 |