diff options
Diffstat (limited to 'src/object/robotmain.h')
-rw-r--r-- | src/object/robotmain.h | 918 |
1 files changed, 459 insertions, 459 deletions
diff --git a/src/object/robotmain.h b/src/object/robotmain.h index a4b0489..559453b 100644 --- a/src/object/robotmain.h +++ b/src/object/robotmain.h @@ -1,459 +1,459 @@ -// * This file is part of the COLOBOT source code
-// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch
-// *
-// * This program is free software: you can redistribute it and/or modify
-// * it under the terms of the GNU General Public License as published by
-// * the Free Software Foundation, either version 3 of the License, or
-// * (at your option) any later version.
-// *
-// * This program is distributed in the hope that it will be useful,
-// * but WITHOUT ANY WARRANTY; without even the implied warranty of
-// * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// * GNU General Public License for more details.
-// *
-// * You should have received a copy of the GNU General Public License
-// * along with this program. If not, see http://www.gnu.org/licenses/.
-
-// robotmain.h
-
-#pragma once
-
-
-#include <stdio.h>
-
-#include "common/misc.h"
-#include "old/d3dengine.h"
-#include "object/object.h"
-#include "object/mainmovie.h"
-#include "old/camera.h"
-#include "old/particule.h"
-
-
-enum Phase
-{
- PHASE_INIT,
- PHASE_TERM,
- PHASE_NAME,
- PHASE_PERSO,
- PHASE_TRAINER,
- PHASE_DEFI,
- PHASE_MISSION,
- PHASE_FREE,
- PHASE_TEEN,
- PHASE_USER,
- PHASE_PROTO,
- PHASE_LOADING,
- PHASE_SIMUL,
- PHASE_MODEL,
- PHASE_SETUPd,
- PHASE_SETUPg,
- PHASE_SETUPp,
- PHASE_SETUPc,
- PHASE_SETUPs,
- PHASE_SETUPds,
- PHASE_SETUPgs,
- PHASE_SETUPps,
- PHASE_SETUPcs,
- PHASE_SETUPss,
- PHASE_WRITE,
- PHASE_READ,
- PHASE_WRITEs,
- PHASE_READs,
- PHASE_WIN,
- PHASE_LOST,
- PHASE_WELCOME1,
- PHASE_WELCOME2,
- PHASE_WELCOME3,
- PHASE_GENERIC,
-};
-
-
-class CInstanceManager;
-class CMainDialog;
-class CMainShort;
-class CMainMap;
-class CEvent;
-class CD3DEngine;
-class CLight;
-class CWater;
-class CCloud;
-class CBlitz;
-class CPlanet;
-class CTerrain;
-class CModel;
-class CInterface;
-class CWindow;
-class CControl;
-class CDisplayText;
-class CDisplayInfo;
-class CSound;
-
-
-struct EndTake
-{
- Math::Vector pos;
- float dist;
- ObjectType type;
- int min; // wins if>
- int max; // wins if <
- int lost; // lost if <=
- bool bImmediat;
- char message[100];
-};
-
-
-const int MAXNEWSCRIPTNAME = 20;
-
-struct NewScriptName
-{
- bool bUsed;
- ObjectType type;
- char name[40];
-};
-
-
-const int MAXSHOWLIMIT = 5;
-const int MAXSHOWPARTI = 200;
-const float SHOWLIMITTIME = 20.0f;
-
-struct ShowLimit
-{
- bool bUsed;
- Math::Vector pos;
- float radius;
- int total;
- int parti[MAXSHOWPARTI];
- CObject* link;
- float duration;
- float time;
-};
-
-
-const int SATCOM_HUSTON = 0;
-const int SATCOM_SAT = 1;
-const int SATCOM_OBJECT = 2;
-const int SATCOM_LOADING = 3;
-const int SATCOM_PROG = 4;
-const int SATCOM_SOLUCE = 5;
-const int SATCOM_MAX = 6;
-
-
-
-class CRobotMain
-{
-public:
- CRobotMain(CInstanceManager* iMan);
- ~CRobotMain();
-
- void CreateIni();
-
- void ChangePhase(Phase phase);
- bool EventProcess(const Event &event);
-
- bool CreateShortcuts();
- void ScenePerso();
-
- void SetMovieLock(bool bLock);
- bool RetMovieLock();
- bool RetInfoLock();
- void SetSatComLock(bool bLock);
- bool RetSatComLock();
- void SetEditLock(bool bLock, bool bEdit);
- bool RetEditLock();
- void SetEditFull(bool bFull);
- bool RetEditFull();
- bool RetFreePhoto();
- void SetFriendAim(bool bFriend);
- bool RetFriendAim();
-
- void SetTracePrecision(float factor);
- float RetTracePrecision();
-
- void ChangePause(bool bPause);
-
- void SetSpeed(float speed);
- float RetSpeed();
-
- void UpdateShortcuts();
- void SelectHuman();
- CObject* SearchHuman();
- CObject* SearchToto();
- CObject* SearchNearest(Math::Vector pos, CObject* pExclu);
- bool SelectObject(CObject* pObj, bool bDisplayError=true);
- CObject* RetSelectObject();
- CObject* DeselectAll();
- bool DeleteObject();
-
- void ResetObject();
- void ResetCreate();
- Error CheckEndMission(bool bFrame);
- void CheckEndMessage(char *message);
- int RetObligatoryToken();
- char* RetObligatoryToken(int i);
- int IsObligatoryToken(char *token);
- bool IsProhibitedToken(char *token);
- void UpdateMap();
- bool RetShowMap();
-
- MainMovieType RetMainMovie();
-
- void FlushDisplayInfo();
- void StartDisplayInfo(int index, bool bMovie);
- void StartDisplayInfo(char *filename, int index);
- void StopDisplayInfo();
- char* RetDisplayInfoName(int index);
- int RetDisplayInfoPosition(int index);
- void SetDisplayInfoPosition(int index, int pos);
-
- void StartSuspend();
- void StopSuspend();
-
- float RetGameTime();
-
- void SetFontSize(float size);
- float RetFontSize();
- void SetWindowPos(Math::Point pos);
- Math::Point RetWindowPos();
- void SetWindowDim(Math::Point dim);
- Math::Point RetWindowDim();
-
- void SetIOPublic(bool bMode);
- bool RetIOPublic();
- void SetIOPos(Math::Point pos);
- Math::Point RetIOPos();
- void SetIODim(Math::Point dim);
- Math::Point RetIODim();
-
- char* RetTitle();
- char* RetResume();
- char* RetScriptName();
- char* RetScriptFile();
- bool RetTrainerPilot();
- bool RetFixScene();
- bool RetGlint();
- bool RetSoluce4();
- bool RetMovies();
- bool RetNiceReset();
- bool RetHimselfDamage();
- bool RetShowSoluce();
- bool RetSceneSoluce();
- bool RetShowAll();
- bool RetCheatRadar();
- char* RetSavegameDir();
- char* RetPublicDir();
- char* RetFilesDir();
-
- void SetGamerName(char *name);
- char* RetGamerName();
- int RetGamerFace();
- int RetGamerGlasses();
- bool RetGamerOnlyHead();
- float RetPersoAngle();
-
- void StartMusic();
- void ClearInterface();
- void ChangeColor();
-
- float SearchNearestObject(Math::Vector center, CObject *exclu);
- bool FreeSpace(Math::Vector ¢er, float minRadius, float maxRadius, float space, CObject *exclu);
- float RetFlatZoneRadius(Math::Vector center, float maxRadius, CObject *exclu);
- void HideDropZone(CObject* metal);
- void ShowDropZone(CObject* metal, CObject* truck);
- void FlushShowLimit(int i);
- void SetShowLimit(int i, ParticuleType parti, CObject *pObj, Math::Vector pos, float radius, float duration=SHOWLIMITTIME);
- void AdjustShowLimit(int i, Math::Vector pos);
- void StartShowLimit();
- void FrameShowLimit(float rTime);
-
- void CompileScript(bool bSoluce);
- void LoadOneScript(CObject *pObj, int &nbError);
- void LoadFileScript(CObject *pObj, char* filename, int objRank, int &nbError);
- void SaveAllScript();
- void SaveOneScript(CObject *pObj);
- void SaveFileScript(CObject *pObj, char* filename, int objRank);
- bool SaveFileStack(CObject *pObj, FILE *file, int objRank);
- bool ReadFileStack(CObject *pObj, FILE *file, int objRank);
-
- bool FlushNewScriptName();
- bool AddNewScriptName(ObjectType type, char *name);
- char* RetNewScriptName(ObjectType type, int rank);
-
- void WriteFreeParam();
- void ReadFreeParam();
-
- bool IsBusy();
- bool IOWriteScene(char *filename, char *filecbot, char *info);
- CObject* IOReadScene(char *filename, char *filecbot);
- void IOWriteObject(FILE *file, CObject* pObj, char *cmd);
- CObject* IOReadObject(char *line, char* filename, int objRank);
-
- int CreateSpot(Math::Vector pos, D3DCOLORVALUE color);
-
-protected:
- bool EventFrame(const Event &event);
- bool EventObject(const Event &event);
- void InitEye();
-
- void Convert();
- void CreateScene(bool bSoluce, bool bFixScene, bool bResetObject);
-
- void CreateModel();
- Math::Vector LookatPoint( Math::Vector eye, float angleH, float angleV, float length );
- CObject* CreateObject(Math::Vector pos, float angle, float zoom, float height, ObjectType type, float power=1.0f, bool bTrainer=false, bool bToy=false, int option=0);
- int CreateLight(Math::Vector direction, D3DCOLORVALUE color);
- void HiliteClear();
- void HiliteObject(Math::Point pos);
- void HiliteFrame(float rTime);
- void CreateTooltip(Math::Point pos, char* text);
- void ClearTooltip();
- CObject* DetectObject(Math::Point pos);
- void ChangeCamera();
- void RemoteCamera(float pan, float zoom, float rTime);
- void KeyCamera(EventMsg event, long param);
- void AbortMovie();
- bool IsSelectable(CObject* pObj);
- void SelectOneObject(CObject* pObj, bool bDisplayError=true);
- void HelpObject();
- bool DeselectObject();
- void DeleteAllObjects();
- void UpdateInfoText();
- CObject* SearchObject(ObjectType type);
- CObject* RetSelect();
- void StartDisplayVisit(EventMsg event);
- void FrameVisit(float rTime);
- void StopDisplayVisit();
- void ExecuteCmd(char *cmd);
- bool TestGadgetQuantity(int rank);
-
-protected:
- CInstanceManager* m_iMan;
- CMainMovie* m_movie;
- CMainDialog* m_dialog;
- CMainShort* m_short;
- CMainMap* m_map;
- CEvent* m_event;
- CD3DEngine* m_engine;
- CParticule* m_particule;
- CWater* m_water;
- CCloud* m_cloud;
- CBlitz* m_blitz;
- CPlanet* m_planet;
- CLight* m_light;
- CTerrain* m_terrain;
- CModel* m_model;
- CInterface* m_interface;
- CCamera* m_camera;
- CDisplayText* m_displayText;
- CDisplayInfo* m_displayInfo;
- CSound* m_sound;
-
- float m_time;
- float m_gameTime;
- float m_checkEndTime;
- float m_winDelay;
- float m_lostDelay;
- bool m_bFixScene; // scene fixed, no interraction
- bool m_bBase; // OBJECT_BASE exists in mission
- Math::Point m_lastMousePos;
- CObject* m_selectObject;
-
- Phase m_phase;
- int m_cameraRank;
- D3DCOLORVALUE m_color;
- bool m_bFreePhoto;
- bool m_bCmdEdit;
- bool m_bShowPos;
- bool m_bSelectInsect;
- bool m_bShowSoluce;
- bool m_bShowAll;
- bool m_bCheatRadar;
- bool m_bAudioRepeat;
- bool m_bShortCut;
- int m_audioTrack;
- int m_delayWriteMessage;
- int m_movieInfoIndex;
-
- bool m_bImmediatSatCom; // SatCom immediately?
- bool m_bBeginSatCom; // messages SatCom poster?
- bool m_bMovieLock; // movie in progress?
- bool m_bSatComLock; // call of SatCom is possible?
- bool m_bEditLock; // edition in progress?
- bool m_bEditFull; // edition in full screen?
- bool m_bPause; // simulation paused
- bool m_bHilite;
- bool m_bTrainerPilot; // remote trainer?
- bool m_bSuspend;
- bool m_bFriendAim;
- bool m_bResetCreate;
- bool m_bMapShow;
- bool m_bMapImage;
- char m_mapFilename[100];
-
- Math::Point m_tooltipPos;
- char m_tooltipName[100];
- float m_tooltipTime;
-
- char m_infoFilename[SATCOM_MAX][100]; // names of text files
- CObject* m_infoObject;
- int m_infoIndex;
- int m_infoPos[SATCOM_MAX];
- int m_infoUsed;
-
- char m_title[100];
- char m_resume[500];
- char m_scriptName[100];
- char m_scriptFile[100];
- int m_endingWinRank;
- int m_endingLostRank;
- bool m_bWinTerminate;
-
- float m_fontSize;
- Math::Point m_windowPos;
- Math::Point m_windowDim;
-
- bool m_IOPublic;
- Math::Point m_IOPos;
- Math::Point m_IODim;
-
- NewScriptName m_newScriptName[MAXNEWSCRIPTNAME];
-
- float m_cameraPan;
- float m_cameraZoom;
-
- EventMsg m_visitLast;
- CObject* m_visitObject;
- CObject* m_visitArrow;
- float m_visitTime;
- float m_visitParticule;
- Math::Vector m_visitPos;
- Math::Vector m_visitPosArrow;
-
- int m_endTakeTotal;
- EndTake m_endTake[10];
- long m_endTakeResearch;
- float m_endTakeWinDelay;
- float m_endTakeLostDelay;
-
- int m_obligatoryTotal;
- char m_obligatoryToken[100][20];
- int m_prohibitedTotal;
- char m_prohibitedToken[100][20];
-
- char m_gamerName[100];
-
- long m_freeBuild; // constructible buildings
- long m_freeResearch; // researches possible
-
- ShowLimit m_showLimit[MAXSHOWLIMIT];
-
- D3DCOLORVALUE m_colorRefBot;
- D3DCOLORVALUE m_colorNewBot;
- D3DCOLORVALUE m_colorRefAlien;
- D3DCOLORVALUE m_colorNewAlien;
- D3DCOLORVALUE m_colorRefGreen;
- D3DCOLORVALUE m_colorNewGreen;
- D3DCOLORVALUE m_colorRefWater;
- D3DCOLORVALUE m_colorNewWater;
- float m_colorShiftWater;
-};
-
+// * This file is part of the COLOBOT source code +// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch +// * +// * This program is free software: you can redistribute it and/or modify +// * it under the terms of the GNU General Public License as published by +// * the Free Software Foundation, either version 3 of the License, or +// * (at your option) any later version. +// * +// * This program is distributed in the hope that it will be useful, +// * but WITHOUT ANY WARRANTY; without even the implied warranty of +// * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// * GNU General Public License for more details. +// * +// * You should have received a copy of the GNU General Public License +// * along with this program. If not, see http://www.gnu.org/licenses/. + +// robotmain.h + +#pragma once + + +#include <stdio.h> + +#include "common/misc.h" +#include "old/d3dengine.h" +#include "object/object.h" +#include "object/mainmovie.h" +#include "old/camera.h" +#include "old/particule.h" + + +enum Phase +{ + PHASE_INIT, + PHASE_TERM, + PHASE_NAME, + PHASE_PERSO, + PHASE_TRAINER, + PHASE_DEFI, + PHASE_MISSION, + PHASE_FREE, + PHASE_TEEN, + PHASE_USER, + PHASE_PROTO, + PHASE_LOADING, + PHASE_SIMUL, + PHASE_MODEL, + PHASE_SETUPd, + PHASE_SETUPg, + PHASE_SETUPp, + PHASE_SETUPc, + PHASE_SETUPs, + PHASE_SETUPds, + PHASE_SETUPgs, + PHASE_SETUPps, + PHASE_SETUPcs, + PHASE_SETUPss, + PHASE_WRITE, + PHASE_READ, + PHASE_WRITEs, + PHASE_READs, + PHASE_WIN, + PHASE_LOST, + PHASE_WELCOME1, + PHASE_WELCOME2, + PHASE_WELCOME3, + PHASE_GENERIC, +}; + + +class CInstanceManager; +class CMainDialog; +class CMainShort; +class CMainMap; +class CEvent; +class CD3DEngine; +class CLight; +class CWater; +class CCloud; +class CBlitz; +class CPlanet; +class CTerrain; +class CModel; +class CInterface; +class CWindow; +class CControl; +class CDisplayText; +class CDisplayInfo; +class CSound; + + +struct EndTake +{ + Math::Vector pos; + float dist; + ObjectType type; + int min; // wins if> + int max; // wins if < + int lost; // lost if <= + bool bImmediat; + char message[100]; +}; + + +const int MAXNEWSCRIPTNAME = 20; + +struct NewScriptName +{ + bool bUsed; + ObjectType type; + char name[40]; +}; + + +const int MAXSHOWLIMIT = 5; +const int MAXSHOWPARTI = 200; +const float SHOWLIMITTIME = 20.0f; + +struct ShowLimit +{ + bool bUsed; + Math::Vector pos; + float radius; + int total; + int parti[MAXSHOWPARTI]; + CObject* link; + float duration; + float time; +}; + + +const int SATCOM_HUSTON = 0; +const int SATCOM_SAT = 1; +const int SATCOM_OBJECT = 2; +const int SATCOM_LOADING = 3; +const int SATCOM_PROG = 4; +const int SATCOM_SOLUCE = 5; +const int SATCOM_MAX = 6; + + + +class CRobotMain +{ +public: + CRobotMain(CInstanceManager* iMan); + ~CRobotMain(); + + void CreateIni(); + + void ChangePhase(Phase phase); + bool EventProcess(const Event &event); + + bool CreateShortcuts(); + void ScenePerso(); + + void SetMovieLock(bool bLock); + bool RetMovieLock(); + bool RetInfoLock(); + void SetSatComLock(bool bLock); + bool RetSatComLock(); + void SetEditLock(bool bLock, bool bEdit); + bool RetEditLock(); + void SetEditFull(bool bFull); + bool RetEditFull(); + bool RetFreePhoto(); + void SetFriendAim(bool bFriend); + bool RetFriendAim(); + + void SetTracePrecision(float factor); + float RetTracePrecision(); + + void ChangePause(bool bPause); + + void SetSpeed(float speed); + float RetSpeed(); + + void UpdateShortcuts(); + void SelectHuman(); + CObject* SearchHuman(); + CObject* SearchToto(); + CObject* SearchNearest(Math::Vector pos, CObject* pExclu); + bool SelectObject(CObject* pObj, bool bDisplayError=true); + CObject* RetSelectObject(); + CObject* DeselectAll(); + bool DeleteObject(); + + void ResetObject(); + void ResetCreate(); + Error CheckEndMission(bool bFrame); + void CheckEndMessage(char *message); + int RetObligatoryToken(); + char* RetObligatoryToken(int i); + int IsObligatoryToken(char *token); + bool IsProhibitedToken(char *token); + void UpdateMap(); + bool RetShowMap(); + + MainMovieType RetMainMovie(); + + void FlushDisplayInfo(); + void StartDisplayInfo(int index, bool bMovie); + void StartDisplayInfo(char *filename, int index); + void StopDisplayInfo(); + char* RetDisplayInfoName(int index); + int RetDisplayInfoPosition(int index); + void SetDisplayInfoPosition(int index, int pos); + + void StartSuspend(); + void StopSuspend(); + + float RetGameTime(); + + void SetFontSize(float size); + float RetFontSize(); + void SetWindowPos(Math::Point pos); + Math::Point RetWindowPos(); + void SetWindowDim(Math::Point dim); + Math::Point RetWindowDim(); + + void SetIOPublic(bool bMode); + bool RetIOPublic(); + void SetIOPos(Math::Point pos); + Math::Point RetIOPos(); + void SetIODim(Math::Point dim); + Math::Point RetIODim(); + + char* RetTitle(); + char* RetResume(); + char* RetScriptName(); + char* RetScriptFile(); + bool RetTrainerPilot(); + bool RetFixScene(); + bool RetGlint(); + bool RetSoluce4(); + bool RetMovies(); + bool RetNiceReset(); + bool RetHimselfDamage(); + bool RetShowSoluce(); + bool RetSceneSoluce(); + bool RetShowAll(); + bool RetCheatRadar(); + char* RetSavegameDir(); + char* RetPublicDir(); + char* RetFilesDir(); + + void SetGamerName(char *name); + char* RetGamerName(); + int RetGamerFace(); + int RetGamerGlasses(); + bool RetGamerOnlyHead(); + float RetPersoAngle(); + + void StartMusic(); + void ClearInterface(); + void ChangeColor(); + + float SearchNearestObject(Math::Vector center, CObject *exclu); + bool FreeSpace(Math::Vector ¢er, float minRadius, float maxRadius, float space, CObject *exclu); + float RetFlatZoneRadius(Math::Vector center, float maxRadius, CObject *exclu); + void HideDropZone(CObject* metal); + void ShowDropZone(CObject* metal, CObject* truck); + void FlushShowLimit(int i); + void SetShowLimit(int i, ParticuleType parti, CObject *pObj, Math::Vector pos, float radius, float duration=SHOWLIMITTIME); + void AdjustShowLimit(int i, Math::Vector pos); + void StartShowLimit(); + void FrameShowLimit(float rTime); + + void CompileScript(bool bSoluce); + void LoadOneScript(CObject *pObj, int &nbError); + void LoadFileScript(CObject *pObj, char* filename, int objRank, int &nbError); + void SaveAllScript(); + void SaveOneScript(CObject *pObj); + void SaveFileScript(CObject *pObj, char* filename, int objRank); + bool SaveFileStack(CObject *pObj, FILE *file, int objRank); + bool ReadFileStack(CObject *pObj, FILE *file, int objRank); + + bool FlushNewScriptName(); + bool AddNewScriptName(ObjectType type, char *name); + char* RetNewScriptName(ObjectType type, int rank); + + void WriteFreeParam(); + void ReadFreeParam(); + + bool IsBusy(); + bool IOWriteScene(char *filename, char *filecbot, char *info); + CObject* IOReadScene(char *filename, char *filecbot); + void IOWriteObject(FILE *file, CObject* pObj, char *cmd); + CObject* IOReadObject(char *line, char* filename, int objRank); + + int CreateSpot(Math::Vector pos, D3DCOLORVALUE color); + +protected: + bool EventFrame(const Event &event); + bool EventObject(const Event &event); + void InitEye(); + + void Convert(); + void CreateScene(bool bSoluce, bool bFixScene, bool bResetObject); + + void CreateModel(); + Math::Vector LookatPoint( Math::Vector eye, float angleH, float angleV, float length ); + CObject* CreateObject(Math::Vector pos, float angle, float zoom, float height, ObjectType type, float power=1.0f, bool bTrainer=false, bool bToy=false, int option=0); + int CreateLight(Math::Vector direction, D3DCOLORVALUE color); + void HiliteClear(); + void HiliteObject(Math::Point pos); + void HiliteFrame(float rTime); + void CreateTooltip(Math::Point pos, char* text); + void ClearTooltip(); + CObject* DetectObject(Math::Point pos); + void ChangeCamera(); + void RemoteCamera(float pan, float zoom, float rTime); + void KeyCamera(EventMsg event, long param); + void AbortMovie(); + bool IsSelectable(CObject* pObj); + void SelectOneObject(CObject* pObj, bool bDisplayError=true); + void HelpObject(); + bool DeselectObject(); + void DeleteAllObjects(); + void UpdateInfoText(); + CObject* SearchObject(ObjectType type); + CObject* RetSelect(); + void StartDisplayVisit(EventMsg event); + void FrameVisit(float rTime); + void StopDisplayVisit(); + void ExecuteCmd(char *cmd); + bool TestGadgetQuantity(int rank); + +protected: + CInstanceManager* m_iMan; + CMainMovie* m_movie; + CMainDialog* m_dialog; + CMainShort* m_short; + CMainMap* m_map; + CEvent* m_event; + CD3DEngine* m_engine; + CParticule* m_particule; + CWater* m_water; + CCloud* m_cloud; + CBlitz* m_blitz; + CPlanet* m_planet; + CLight* m_light; + CTerrain* m_terrain; + CModel* m_model; + CInterface* m_interface; + CCamera* m_camera; + CDisplayText* m_displayText; + CDisplayInfo* m_displayInfo; + CSound* m_sound; + + float m_time; + float m_gameTime; + float m_checkEndTime; + float m_winDelay; + float m_lostDelay; + bool m_bFixScene; // scene fixed, no interraction + bool m_bBase; // OBJECT_BASE exists in mission + Math::Point m_lastMousePos; + CObject* m_selectObject; + + Phase m_phase; + int m_cameraRank; + D3DCOLORVALUE m_color; + bool m_bFreePhoto; + bool m_bCmdEdit; + bool m_bShowPos; + bool m_bSelectInsect; + bool m_bShowSoluce; + bool m_bShowAll; + bool m_bCheatRadar; + bool m_bAudioRepeat; + bool m_bShortCut; + int m_audioTrack; + int m_delayWriteMessage; + int m_movieInfoIndex; + + bool m_bImmediatSatCom; // SatCom immediately? + bool m_bBeginSatCom; // messages SatCom poster? + bool m_bMovieLock; // movie in progress? + bool m_bSatComLock; // call of SatCom is possible? + bool m_bEditLock; // edition in progress? + bool m_bEditFull; // edition in full screen? + bool m_bPause; // simulation paused + bool m_bHilite; + bool m_bTrainerPilot; // remote trainer? + bool m_bSuspend; + bool m_bFriendAim; + bool m_bResetCreate; + bool m_bMapShow; + bool m_bMapImage; + char m_mapFilename[100]; + + Math::Point m_tooltipPos; + char m_tooltipName[100]; + float m_tooltipTime; + + char m_infoFilename[SATCOM_MAX][100]; // names of text files + CObject* m_infoObject; + int m_infoIndex; + int m_infoPos[SATCOM_MAX]; + int m_infoUsed; + + char m_title[100]; + char m_resume[500]; + char m_scriptName[100]; + char m_scriptFile[100]; + int m_endingWinRank; + int m_endingLostRank; + bool m_bWinTerminate; + + float m_fontSize; + Math::Point m_windowPos; + Math::Point m_windowDim; + + bool m_IOPublic; + Math::Point m_IOPos; + Math::Point m_IODim; + + NewScriptName m_newScriptName[MAXNEWSCRIPTNAME]; + + float m_cameraPan; + float m_cameraZoom; + + EventMsg m_visitLast; + CObject* m_visitObject; + CObject* m_visitArrow; + float m_visitTime; + float m_visitParticule; + Math::Vector m_visitPos; + Math::Vector m_visitPosArrow; + + int m_endTakeTotal; + EndTake m_endTake[10]; + long m_endTakeResearch; + float m_endTakeWinDelay; + float m_endTakeLostDelay; + + int m_obligatoryTotal; + char m_obligatoryToken[100][20]; + int m_prohibitedTotal; + char m_prohibitedToken[100][20]; + + char m_gamerName[100]; + + long m_freeBuild; // constructible buildings + long m_freeResearch; // researches possible + + ShowLimit m_showLimit[MAXSHOWLIMIT]; + + D3DCOLORVALUE m_colorRefBot; + D3DCOLORVALUE m_colorNewBot; + D3DCOLORVALUE m_colorRefAlien; + D3DCOLORVALUE m_colorNewAlien; + D3DCOLORVALUE m_colorRefGreen; + D3DCOLORVALUE m_colorNewGreen; + D3DCOLORVALUE m_colorRefWater; + D3DCOLORVALUE m_colorNewWater; + float m_colorShiftWater; +}; + |