Rev 11 | Blame | Compare with Previous | Last modification | View Log | RSS feed
#ifndef __DISPLAY_H__#define __DISPLAY_H__#include <spk.h>#include "../../src/Visualisation/TextureFile.h"#include "../Overlay.h"#include "RenderObject.h"#ifdef FMOD#include <fmod.hpp>#endiftypedef struct SSound {struct SSound () { iStart = 0; bStarted = false; }CyString sFilename;long iStart;bool bStarted;} SSound;typedef struct SFunction {CyString sFunction;CyString sBlock;CyStringList lVaribles;CyStringList lStrings;} SFunction;typedef struct SCloseOn {struct SCloseOn () { iStart = 0; iEnd = 0; iMouseCommands = 0; iKeyCommands = 0; }int iStart;int iEnd;long iMouseCommands;long iKeyCommands;} SCloseOn;#define COMMAND_LEFTCLICK 1#define COMMAND_RIGHTCLICK 2#define COMMAND_LEFTCLICKIN 4#define COMMAND_RIGHTCLICKIN 8#define COMMAND_KEY_ENTER 1#define COMMAND_KEY_SPACE 2class CDisplay{public:CDisplay ( COverlay *overlay, MyDirect3DDevice9 *device, CyString name );~CDisplay ();int GetBorderSizeX () { return m_iBorderSizeX; }int GetBorderSizeY () { return m_iBorderSizeY; }int GetMouseX ();int GetMouseY ();static void Log ( CyString str ){FILE *id;fopen_s ( &id, "d:/log.txt", "a" );fputs ( str.c_str(), id );fclose ( id );}bool HaltMouse () { return m_bHaltMouse; }bool IsMouseInGui ();void SetMouse ( int *x, int *y ){m_pMouseX = x;m_pMouseY = y;if ( m_bContainMouse ){*m_pMouseX = m_iWidth / 2;*m_pMouseY = m_iHeight / 2;}}void CreateSound ( CyString file, long start );virtual void SetSize ( int width, int height, int maxwidth, int maxheight );CyString ParseVaribles ( CyString str, CyStringList *varibles );void SetTimeout ( long time ) { m_lTimeout = time; }long GetTimeout () { return m_lTimeout; }void AddObject ( CRenderObject *o ) { m_objects.push_back ( o ); }void RemoveObject ( CRenderObject *o ) { m_objects.remove ( o ); }void ClearObjects (){for ( CRenderObject *o = m_objects.First(); o; o = m_objects.Next() )delete o;m_objects.clear();}virtual float Update ( DWORD timeNow );virtual void render ( MyDirect3DDevice9 * );virtual void RenderBorder ( MyDirect3DDevice9 * );virtual void RenderCursor ( MyDirect3DDevice9 *device );virtual void SetBorderTexture ( CyString t );virtual void SetCursorTexture ( CyString t );virtual void SetLength(int i) { m_iSizeY = i; }virtual void SetWidth(int i) { m_iSizeX = i; }virtual void SetMaxSize(int x, int y) { m_iMaxWidth = x; m_iMaxHeight = y; }virtual bool MouseClick ( int b, bool );virtual bool CheckCloseEventKey ( int key );bool Closed () { return m_bClosed; }bool CheckName(const CyString &name) { return m_sGuiName.Compare(name); }bool CheckTimeout(DWORD tNow){if ( ((m_lTimeout != -1) && (m_lTimeout < (int)tNow)) || (m_bClosed) )return true;return false;}void SwitchRender () { m_bRender = !m_bRender; }virtual void SetPosition(int x, int y);virtual void SetSize(int width, int height);protected:RECT *GetFrame ( int frame );CLinkList<CRenderObject> m_objects;CLinkList<SSound> m_lSounds;CLinkList<SCloseOn> m_lClose;CLinkList<SFunction> m_lFunctions;int m_iCornerX, m_iCornerY;int m_iSizeX, m_iSizeY;LPDIRECT3DTEXTURE9 m_borderTexture;LPDIRECT3DTEXTURE9 m_cursorTexture;LPD3DXSPRITE m_sprite;bool m_bRender;bool m_bNoBorder;long m_lTimeout;int m_iBorderSizeX;int m_iBorderSizeY;MyDirect3DDevice9 *m_pDevice;short m_iAlpha;long m_iFadeIn;short m_iFadeState;long m_iStartDisplay;DWORD m_lastUpdate; // time when the world was last updatedCTextureFile *m_pBorderFile;CTextureFile *m_pCursorFile;int *m_pMouseX, *m_pMouseY;bool m_bContainMouse;bool m_bHaltMouse;bool m_bClosed;bool m_bLongWait;int m_iWidth, m_iHeight;int m_iMaxWidth, m_iMaxHeight;COverlay *m_pOverlay;CyString m_sGuiName;bool m_bLog;};#endif //__DISPLAY_H__