| 1 |
#ifndef CSAVEFILE_H_INCLUDED |
| 2 |
#define CSAVEFILE_H_INCLUDED |
| 3 |
|
| 4 |
class MD5; |
| 5 |
class CListView; |
| 6 |
class CRailWay; |
| 7 |
class CTrainGroup; |
| 8 |
class CDiaInstBase; |
| 9 |
class CScene; |
| 10 |
class CSurfacePlugin; |
| 11 |
class CPlatformInst; |
| 12 |
|
| 13 |
/* |
| 14 |
* セーブファイル |
| 15 |
*/ |
| 16 |
class CSaveFile{ |
| 17 |
friend class CFileMode; |
| 18 |
private: |
| 19 |
string m_FileName; // ファイル名 |
| 20 |
string m_FileDate; // 更新日時 |
| 21 |
string m_FileNote; // 備考 |
| 22 |
float m_Version; // バージョン |
| 23 |
int m_Year; // 年 |
| 24 |
int m_Month; // 月 |
| 25 |
int m_Day; // 日 |
| 26 |
int m_Hour; // 時 |
| 27 |
int m_Minute; // 分 |
| 28 |
int m_Second; // 秒 |
| 29 |
int m_Frame; // フレーム |
| 30 |
int m_DayOfWeek; // 曜日 |
| 31 |
int m_SumDays; // 日数 |
| 32 |
int m_GroupNum; // 編成数 |
| 33 |
int m_SceneNum; // シーン数 |
| 34 |
VEC3 m_WindDir1; // 風方向変化前 |
| 35 |
VEC3 m_WindDir2; // 風方向変化後 |
| 36 |
int m_WindCount; // 風方向カウンタ |
| 37 |
int m_WindTime; // 風方向変化時間 |
| 38 |
CRailWay *m_WarpList; // ワープ |
| 39 |
CTrainGroup *m_GroupList; // 編成 |
| 40 |
CScene *m_SceneList; // シーン |
| 41 |
int m_NetworkSyncCount; // ネットワーク同期カウンタ |
| 42 |
public: |
| 43 |
CSaveFile(bool); |
| 44 |
~CSaveFile(); |
| 45 |
char *GetFileName(){ return (char *)m_FileName.c_str(); } |
| 46 |
void SetFileName(char *fname){ m_FileName = fname; } |
| 47 |
int GetMonth(){ return m_Month; } |
| 48 |
void UpdateWind(); |
| 49 |
void SetWarpRoot(); |
| 50 |
//bool SetRailBlock(char *); |
| 51 |
bool DeleteWarp(); |
| 52 |
void AddGroup(); |
| 53 |
void DeleteGroup(CTrainGroup *); |
| 54 |
void ListGroup(CListView *); |
| 55 |
void ListGroupDia(CListView *, CDiaInstBase *); |
| 56 |
CTrainGroup *GetTrainGroup(){ return m_GroupList; } |
| 57 |
void DeletePlatform(CPlatformInst *); |
| 58 |
void NumberGroup(); |
| 59 |
void NextGroup(bool); |
| 60 |
vector<CTrainGroup *> GetTrainGroupByVector(); |
| 61 |
void SetTrainGroupByVector(vector<CTrainGroup *>); |
| 62 |
void ScanInputWarp(int, VEC3, VEC3); |
| 63 |
void ScanInputInst(int, VEC3, VEC3); |
| 64 |
int GetGroupNum(){ return m_GroupNum; } |
| 65 |
CScene *GetSceneList(){ return m_SceneList; } |
| 66 |
void AddScene(CSurfacePlugin *); |
| 67 |
void DeleteScene(CScene *); |
| 68 |
void ListScene(CListView *); |
| 69 |
void NumberScene(); |
| 70 |
void NextScene(bool); |
| 71 |
vector<CScene *> GetSceneByVector(); |
| 72 |
void SetSceneByVector(vector<CScene *>); |
| 73 |
void RenderScene(int); |
| 74 |
void Simulate(int); |
| 75 |
void ResetSwitch(); |
| 76 |
int GetSceneNum(){ return m_SceneNum; } |
| 77 |
int GetSumDays(){ return m_SumDays; } |
| 78 |
double GetDayTime(){ |
| 79 |
return (m_Hour+(m_Minute+(m_Second+m_Frame/30.0)/60.0)/60.0)/24.0; |
| 80 |
} |
| 81 |
double GetAbsTime(){ return m_SumDays+GetDayTime(); } |
| 82 |
char *GetTimeText(); |
| 83 |
bool Load(const char *, const char *, bool, bool, char **, int *, bool, char *); |
| 84 |
int Save(const char *, const char *, bool, bool); |
| 85 |
}; |
| 86 |
|
| 87 |
// 外部グローバル |
| 88 |
extern CSaveFile *g_SaveFile; |
| 89 |
extern map<void *, void *> g_AddressMap; |
| 90 |
extern void *RegisterNewMapAddress(void *); |
| 91 |
|
| 92 |
// 関数宣言 |
| 93 |
void *ReplaceAdr(void *); |
| 94 |
|
| 95 |
#endif |