11 |
cycrow |
1 |
#ifndef __RENDEROBJECT_H__
|
|
|
2 |
#define __RENDEROBJECT_H__
|
|
|
3 |
|
|
|
4 |
#include <spk.h>
|
|
|
5 |
#include "../X3Overlay.h"
|
|
|
6 |
|
|
|
7 |
enum {FADE_NONE, FADE_AFTER, FADE_ALL};
|
|
|
8 |
enum {ANIM_NONE, ANIM_FADEIN, ANIM_FADEOUT, ANIM_FLASH, ANIM_MOVE, ANIM_MOVELINEAR, ANIM_CHANGETEXT, ANIM_CHANGECOLOUR, ANIM_FRAME, ANIM_ANIMATION, ANIM_ANIMATIONCONT, ANIM_ANIMATIONSTOP};
|
|
|
9 |
enum {MO_NONE, MO_COLOUR, MO_SOUND, MO_TEXTAPPEND, MO_TEXTPREPEND, MO_TEXTURE, MO_SETVARIABLE, MO_SWITCHVARIABLE, MO_CLOSE, MO_SEND, MO_FRAME, MO_ANIMATION};
|
|
|
10 |
|
|
|
11 |
typedef struct SAnimate {
|
|
|
12 |
struct SAnimate () { iType = ANIM_NONE; iStartTime = 0; iDone = 0; bRemove = false; }
|
|
|
13 |
int iType;
|
|
|
14 |
int iStartTime;
|
|
|
15 |
int iDone;
|
|
|
16 |
bool bRemove;
|
|
|
17 |
} SAnimate;
|
|
|
18 |
|
|
|
19 |
typedef struct SAnimateFadeIn : public SAnimate {
|
|
|
20 |
struct SAnimateFadeIn () : SAnimate() { iType = ANIM_FADEIN; iTime = 0; }
|
|
|
21 |
short iTime;
|
|
|
22 |
} SAnimateFadeIn;
|
|
|
23 |
|
|
|
24 |
typedef struct SAnimateFadeOut : public SAnimate {
|
|
|
25 |
struct SAnimateFadeOut () : SAnimate() { iType = ANIM_FADEOUT; iTime = 0; }
|
|
|
26 |
short iTime;
|
|
|
27 |
} SAnimateFadeOut;
|
|
|
28 |
|
|
|
29 |
typedef struct SAnimateFlash : public SAnimate {
|
|
|
30 |
struct SAnimateFlash () : SAnimate() { iType = ANIM_FLASH; iTime = 0; iCycle = 0; bIn = false; iDoneCycle = 0; }
|
|
|
31 |
int iTime;
|
|
|
32 |
int iCycle;
|
|
|
33 |
int iDoneCycle;
|
|
|
34 |
bool bIn;
|
|
|
35 |
} SAnimateFlash;
|
|
|
36 |
|
|
|
37 |
typedef struct SAnimatePos : public SAnimate {
|
|
|
38 |
struct SAnimatePos () : SAnimate() { iType = ANIM_MOVE; iX = 0; iY = 0; }
|
|
|
39 |
int iX;
|
|
|
40 |
int iY;
|
|
|
41 |
} SAnimatePos;
|
|
|
42 |
|
|
|
43 |
typedef struct SAnimateColour : public SAnimate {
|
|
|
44 |
struct SAnimateColour () : SAnimate() { iType = ANIM_CHANGECOLOUR; iR = 0; iG = 0; iB = 0; }
|
|
|
45 |
short iR;
|
|
|
46 |
short iG;
|
|
|
47 |
short iB;
|
|
|
48 |
} SAnimateColour;
|
|
|
49 |
|
|
|
50 |
typedef struct SAnimateFrame : public SAnimate {
|
|
|
51 |
struct SAnimateFrame () : SAnimate() { iType = ANIM_FRAME; iFrame = 0; }
|
|
|
52 |
int iFrame;
|
|
|
53 |
} SAnimateFrame;
|
|
|
54 |
|
|
|
55 |
typedef struct SAnimateAnim : public SAnimate {
|
|
|
56 |
struct SAnimateAnim () : SAnimate() { iType = ANIM_ANIMATION; iAnimation = 0; }
|
|
|
57 |
int iAnimation;
|
|
|
58 |
} SAnimateAnim;
|
|
|
59 |
|
|
|
60 |
typedef struct SAnimateAnimStop : public SAnimate {
|
|
|
61 |
struct SAnimateAnimStop () : SAnimate() { iType = ANIM_ANIMATIONSTOP; }
|
|
|
62 |
} SAnimateAnimStop;
|
|
|
63 |
|
|
|
64 |
typedef struct SAnimateAnimCont : public SAnimate {
|
|
|
65 |
struct SAnimateAnimCont () : SAnimate() { iType = ANIM_ANIMATIONCONT; }
|
|
|
66 |
} SAnimateAnimCont;
|
|
|
67 |
|
|
|
68 |
typedef struct SAnimateText : public SAnimate {
|
|
|
69 |
struct SAnimateText () : SAnimate() { iType = ANIM_CHANGETEXT; }
|
|
|
70 |
CyString sText;
|
|
|
71 |
} SAnimateText;
|
|
|
72 |
|
|
|
73 |
typedef struct SAnimateLinear : public SAnimatePos {
|
|
|
74 |
struct SAnimateLinear () : SAnimatePos() { iType = ANIM_MOVELINEAR; iTime = 0; }
|
|
|
75 |
int iTime;
|
|
|
76 |
} SAnimateLinear;
|
|
|
77 |
|
|
|
78 |
typedef struct SMouseOver {
|
|
|
79 |
struct SMouseOver () { iType = MO_NONE; bStarted = false; }
|
|
|
80 |
int iType;
|
|
|
81 |
bool bStarted;
|
|
|
82 |
} SMouseOver;
|
|
|
83 |
|
|
|
84 |
typedef struct SMOColour : public SMouseOver {
|
|
|
85 |
struct SMOColour () : SMouseOver() { iType = MO_COLOUR; iColour[0] = 0; iColour[1] = 0; iColour[2] = 0; }
|
|
|
86 |
short iColour[3];
|
|
|
87 |
} SMOColour;
|
|
|
88 |
|
|
|
89 |
typedef struct SMOSound : public SMouseOver {
|
|
|
90 |
struct SMOSound () : SMouseOver() { iType = MO_SOUND; }
|
|
|
91 |
CyString sFilename;
|
|
|
92 |
} SMOSound;
|
|
|
93 |
|
|
|
94 |
typedef struct SMOSet : public SMouseOver {
|
|
|
95 |
struct SMOSet () : SMouseOver() { iType = MO_SETVARIABLE; }
|
|
|
96 |
CyString sVariable;
|
|
|
97 |
CyString sSet;
|
|
|
98 |
} SMOSet;
|
|
|
99 |
|
|
|
100 |
typedef struct SMOSwitchV : public SMouseOver {
|
|
|
101 |
struct SMOSwitchV () : SMouseOver() { iType = MO_SWITCHVARIABLE; }
|
|
|
102 |
CyString sVariable;
|
|
|
103 |
CyStringList lSwitch;
|
|
|
104 |
} SMOSwitchV;
|
|
|
105 |
|
|
|
106 |
typedef struct SMOTextAppend : public SMouseOver {
|
|
|
107 |
struct SMOTextAppend () : SMouseOver() { iType = MO_TEXTAPPEND; }
|
|
|
108 |
CyString sText;
|
|
|
109 |
} SMOTextAppend;
|
|
|
110 |
|
|
|
111 |
typedef struct SMOTextPrepend : public SMouseOver {
|
|
|
112 |
struct SMOTextPrepend () : SMouseOver() { iType = MO_TEXTPREPEND; }
|
|
|
113 |
CyString sText;
|
|
|
114 |
} SMOTextPrepend;
|
|
|
115 |
|
|
|
116 |
typedef struct SMOTexture : public SMouseOver {
|
|
|
117 |
struct SMOTexture () : SMouseOver() { iType = MO_TEXTURE; }
|
|
|
118 |
LPDIRECT3DTEXTURE9 pTexture;
|
|
|
119 |
} SMOTexture;
|
|
|
120 |
|
|
|
121 |
typedef struct SMOFrame : public SMouseOver {
|
|
|
122 |
struct SMOFrame () : SMouseOver() { iType = MO_FRAME; iFrame = 1; }
|
|
|
123 |
int iFrame;
|
|
|
124 |
} SMOFrame;
|
|
|
125 |
|
|
|
126 |
typedef struct SMOAnimation : public SMouseOver {
|
|
|
127 |
struct SMOAnimation () : SMouseOver() { iType = MO_ANIMATION; iAnimation = 1; bStop = true; }
|
|
|
128 |
int iAnimation;
|
|
|
129 |
bool bStop;
|
|
|
130 |
} SMOAnimation;
|
|
|
131 |
|
|
|
132 |
typedef struct SMOSend : public SMouseOver {
|
|
|
133 |
struct SMOSend () : SMouseOver() { iType = MO_SEND; }
|
|
|
134 |
CyString sData;
|
|
|
135 |
CyString sName;
|
|
|
136 |
} SMOSend;
|
|
|
137 |
|
|
|
138 |
class CDisplay;
|
|
|
139 |
|
|
|
140 |
class CRenderObject
|
|
|
141 |
{
|
|
|
142 |
public:
|
|
|
143 |
CRenderObject ();
|
|
|
144 |
~CRenderObject ();
|
|
|
145 |
|
|
|
146 |
bool StartHidden() { return m_bStartHidden; }
|
|
|
147 |
bool MouseOver() { return m_bMouseOver; }
|
|
|
148 |
bool MouseClicked () { return m_bClicked; }
|
|
|
149 |
|
|
|
150 |
virtual bool DoReopen () { return false; }
|
|
|
151 |
|
|
|
152 |
virtual int SetMouseClicked ( COverlay *overlay, CyString name, int but, bool b );
|
|
|
153 |
void SetAlpha ( short a ) { if ( a > m_iMaxAlpha ) a = m_iMaxAlpha; m_iAlpha = a; }
|
|
|
154 |
void SetDevice ( MyDirect3DDevice9 *device ) { m_pDevice = device; }
|
|
|
155 |
|
|
|
156 |
virtual void AddMouseEvent ( CyString section, SMouseOver *e );
|
|
|
157 |
|
|
|
158 |
virtual void render ( MyDirect3DDevice9 *device, int x, int y, LPD3DXSPRITE sprite ) = 0;
|
|
|
159 |
virtual void Update ( COverlay *overlay, float dt, int mousex, int mousey, int offsetx, int offsety ) ;
|
|
|
160 |
|
|
|
161 |
virtual bool CheckMouse ( int x, int y, int offsetx, int offsety ) { return false; }
|
|
|
162 |
|
|
|
163 |
virtual bool Fade ( int end, int current, int maxtime, bool reverse = false );
|
|
|
164 |
virtual void DoAnimation ( SAnimate *anim, int iDt );
|
|
|
165 |
virtual void StartAnimation ( SAnimate *anim );
|
|
|
166 |
virtual void EndAnimation ( SAnimate *anim );
|
|
|
167 |
|
|
|
168 |
virtual void SetPosition ( int x, int y ) { m_iX = x; m_iY = y; }
|
|
|
169 |
virtual void ParseSetting ( COverlay *overlay, CyString cmd, CyString rest, CyString section );
|
|
|
170 |
|
|
|
171 |
virtual int ConvertAnimationTime ( CyString t );
|
|
|
172 |
CyString ParseVaribles ( CyString str, CyStringList *varibles );
|
|
|
173 |
|
|
|
174 |
void FinishedLoad ()
|
|
|
175 |
{
|
|
|
176 |
if ( (m_iFadeTo) || (m_bStartHidden) )
|
|
|
177 |
m_iAlpha = 0;
|
|
|
178 |
else
|
|
|
179 |
m_iAlpha = m_iMaxAlpha;
|
|
|
180 |
}
|
|
|
181 |
|
|
|
182 |
static void Log ( CyString str )
|
|
|
183 |
{
|
|
|
184 |
FILE *id;
|
|
|
185 |
if ( !fopen_s ( &id, "c:/log.txt", "a" ) )
|
|
|
186 |
{
|
|
|
187 |
fputs ( str.c_str(), id );
|
|
|
188 |
fclose ( id );
|
|
|
189 |
}
|
|
|
190 |
}
|
|
|
191 |
|
|
|
192 |
protected:
|
|
|
193 |
int m_iX;
|
|
|
194 |
int m_iY;
|
|
|
195 |
|
|
|
196 |
int m_iStartX, m_iStartY;
|
|
|
197 |
|
|
|
198 |
MyDirect3DDevice9 *m_pDevice;
|
|
|
199 |
int m_iStarted;
|
|
|
200 |
int m_iStartFade;
|
|
|
201 |
int m_iFadeTo;
|
|
|
202 |
short m_iAlpha;
|
|
|
203 |
short m_iMaxAlpha;
|
|
|
204 |
|
|
|
205 |
bool m_bStartHidden;
|
|
|
206 |
|
|
|
207 |
CLinkList<SAnimate> m_lAnimations;
|
|
|
208 |
CLinkList<SMouseOver> m_lMouseOver;
|
|
|
209 |
CLinkList<SMouseOver> m_lMouseClick;
|
|
|
210 |
|
|
|
211 |
CyStringList m_lVaribles;
|
|
|
212 |
|
|
|
213 |
bool m_bMouseOver;
|
|
|
214 |
bool m_bClicked;
|
|
|
215 |
|
|
|
216 |
bool m_bDontRender;
|
|
|
217 |
|
|
|
218 |
short m_iColour[3];
|
|
|
219 |
};
|
|
|
220 |
|
|
|
221 |
#endif //__RENDEROBJECT_H__
|