GameApi 28
Library used by GameApi Builder tool
Loading...
Searching...
No Matches
Serialize.hh
Go to the documentation of this file.
1
2#ifndef SERIALIZE_HH
3#define SERIALIZE_HH
4
5#include "Graph.hh"
6
8struct BitmapHandle;
9
11{
13 float time;
14 int activation_event_id; // -1 if not used
15 int deactivation_event_id; // -1 if not used
16 int time_origin_id; // -1 if global
17 int key_value; // -1 if not used
18 int state_change_id; // -1 if not used
19 bool timer;
21 bool key_up;
27};
28class MousePlane;
29class Sequencer;
30
32EventInfo event_timer(int activation_id, float time);
35EventInfo event_key_down(int key, int start_id, int end_id);
36EventInfo event_key_up(int key, int start_id, int end_id);
42
44{
47};
48
50{
51public:
52 virtual int NumEvents() const=0;
53 virtual EventInfo Event(int i) const=0;
54 virtual int NumLinks() const=0;
55 virtual LinkageInfo Linkage(int i) const=0;
56};
57
59{
60public:
61 virtual int NumEvents() const { return 0; }
62 virtual EventInfo Event(int i) const { return EventInfo(); }
63 virtual int NumLinks() const { return 0; }
64 virtual LinkageInfo Linkage(int i) const { return LinkageInfo(); }
65};
66
68{
69public:
70 NextSequencer(Sequencer &seq, EventInfo next) : seq(seq), next(next) { }
71 virtual int NumEvents() const { return seq.NumEvents()+1; }
72 virtual EventInfo Event(int i) const
73 {
74 if (i==0) return next;
75 return seq.Event(i-1);
76 }
77 virtual int NumLinks() const { return 0; }
78 virtual LinkageInfo Linkage(int i) const { return LinkageInfo(); }
79private:
80 Sequencer &seq;
81 EventInfo next;
82};
83
85{
86public:
87 PairSequencer(Sequencer &seq, EventInfo e1, EventInfo e2) : seq(seq), e1(e1), e2(e2) { }
88 virtual int NumEvents() const { return seq.NumEvents()+2; }
89 virtual EventInfo Event(int i) const
90 {
91 if (i==0) return e1;
92 if (i==1) return e2;
93 return seq.Event(i-2);
94 }
95 virtual int NumLinks() const { return seq.NumLinks()+1; }
96 virtual LinkageInfo Linkage(int i) const
97 {
98 if (i==0) { LinkageInfo ii; ii.start_event = 0; ii.end_event=1; return ii; }
99 return seq.Linkage(i-1);
100 }
101
102private:
103 Sequencer &seq;
104 EventInfo e1,e2;
105};
106
108{
109public:
111 virtual int NumEvents() const { return arr.Size(); }
112 virtual EventInfo Event(int i) const { return arr.Index(i); }
113 virtual int NumLinks() const { return arr.Size()-1; }
114 virtual LinkageInfo Linkage(int i) const
115 {
116 LinkageInfo ii;
117 ii.start_event = i;
118 ii.end_event = i+1;
119 return ii;
120 }
121private:
123};
124struct FunctionImpl;
125
127{ // either start or end is NULL in each event
128 LinkInfo() : start_event_id(-1), end_event_id(-1), polygon_start(NULL), polygon_end(NULL)/*, bitmap_start(NULL), bitmap_end(NULL), function1(NULL), scale_func1(false), function2(NULL), scale_func2(false), function3(NULL), scale_func3(false), function4(NULL), scale_func4(false)*/, polygon_posx_func(-1),
133 sound_channel_func(-1) { }
134 int start_event_id; // EventInfo
138 // NOTE: PADDING PROBLEMS WITH BOOLS.
141#if 0
142 FunctionImpl *function1;
143 bool scale_func1; // whether it's between [start,end] or [start,start+funclength]
144 FunctionImpl *function2;
145 bool scale_func2;
146 FunctionImpl *function3;
147 bool scale_func3;
148 FunctionImpl *function4;
149 bool scale_func4;
150#endif
161};
162
164{
165public:
166 virtual int NumEvents() const=0;
167 virtual EventInfo Event(int i) const=0;
168 virtual int NumLinks() const=0;
169 virtual LinkageInfo Linkage(int i) const=0;
170 virtual LinkInfo Links(int i) const=0;
171};
172
173class MousePlane : public Bitmap<EventInfo>
174{
175public:
176};
177
179{
180public:
181 MouseRectanglePlane(MousePlane *next, int sx, int sy) : next(next), sx(sx), sy(sy) { }
182 void push_back(int x, int y, int width, int height, EventInfo *info)
183 {
184 Rect r;
185 r.x = x;
186 r.y = y;
187 r.width = width;
188 r.height = height;
189 r.info = info;
190 vec.push_back(r);
191 }
192public:
193 virtual int SizeX() const { return sx; }
194 virtual int SizeY() const { return sy; }
195 virtual EventInfo Map(int x, int y) const
196 {
197 int s = vec.size();
198 for(int i=0;i<s;i++)
199 {
200 Rect r = vec[i];
201 if (x<r.x) continue;
202 if (y<r.y) continue;
203 if (x>r.x+r.width) continue;
204 if (y>r.y+r.height) continue;
205 return *r.info;
206 }
207 return next->Map(x,y);
208 }
209
210private:
211 struct Rect { int x,y,width,height; EventInfo *info; };
212 std::vector<Rect> vec;
213 MousePlane *next;
214 int sx,sy;
215};
216
218{
221};
230
238{
240 //CurveIn3d *curve;
242};
243struct StateInfo2
244{
245 Array<int, bool> *enable_obj_array; // dimension = numpositions, int=LL.id
247};
248struct StateRange
249{
250 int start_range;
251 int range_size;
252};
253
255{
256 // ranges [0..x] are described by two events, 0, and x.
257public:
258 // time
259 virtual int NumEvents() const=0;
260 virtual EventInfo Event(int i) const=0;
261
262 virtual int NumLinks() const=0;
263 virtual LinkageInfo Linkage(int i) const=0;
264 virtual LinkInfo Links(int i) const=0;
265 // positions
266 virtual int NumPositions() const=0;
267 virtual PosInfo Positions(int i) const=0;
268 // states
269 virtual int NumStates() const=0;
270 virtual StateInfo2 States(int i) const=0;
271 virtual ~Sequencer2() { }
272};
273
275{
276public:
277 virtual int NumEvents() const { return 0; }
278 virtual EventInfo Event(int i) const { return EventInfo(); }
279 virtual int NumLinks() const { return 0; }
280 virtual LinkageInfo Linkage(int i) const { return LinkageInfo(); }
281 virtual LinkInfo Links(int i) const { return LinkInfo(); }
282 virtual int NumPositions() const { return 0; }
283 virtual PosInfo Positions(int i) const { return PosInfo(); }
284 // states
285 virtual int NumStates() const { return 0; }
286 virtual StateInfo2 States(int i) const { return StateInfo2(); }
287};
288
290{
291public:
293 virtual int NumEvents() const { return seq->NumEvents(); }
294 virtual EventInfo Event(int i) const { return seq->Event(i); }
295 virtual int NumLinks() const { return seq->NumLinks(); }
296 virtual LinkageInfo Linkage(int i) const { return seq->Linkage(i); }
297 virtual LinkInfo Links(int i) const { return seq->Links(i); }
298 virtual int NumPositions() const { return seq->NumPositions(); }
299 virtual PosInfo Positions(int i) const { return seq->Positions(i); }
300 virtual int NumStates() const { return seq->NumStates(); }
301 virtual StateInfo2 States(int i) const { return seq->States(i); }
302
303protected:
305};
306
307#if 0
308class SingleEvent : public Sequencer2Impl
309{
310public:
311 SingleEvent(Sequencer2 *seq2, EventInfo info) : Sequencer2Impl(seq2), seq(seq2), info(info) { }
312 int CurrentEventNum() const { return seq->NumEvents(); }
313 virtual int NumEvents() const { return seq->NumEvents()+1; }
314 virtual EventInfo Event(int i) const
315 {
316 if (i<seq->NumEvents()) return seq->Event(i);
317 return info;
318 }
319private:
320 Sequencer2 *seq;
321 EventInfo info;
322};
323
324
325class SingleLink : public Sequencer2Impl
326{
327public:
328 SingleLink(Sequencer2 *seq2, LinkageInfo linkage, LinkInfo info)
329 : Sequencer2Impl(seq2), seq(seq2), linkage(linkage), info(info) { }
330 int CurrentLinkNum() const { return seq->NumLinks(); }
331
332 virtual int NumLinks() const { return seq->NumLinks()+1; }
333 virtual LinkageInfo Linkage(int i) const
334 {
335 if (i<seq->NumLinks()) return seq->Linkage(i);
336 return linkage;
337 }
338 virtual LinkInfo Links(int i) const
339 {
340 if (i<seq->NumLinks()) return seq->Links(i);
341 return info;
342 }
343private:
344 Sequencer2 *seq;
345 LinkageInfo linkage;
346 LinkInfo info;
347};
348#endif
349
350#if 0
351class SinglePos : public Sequencer2Impl
352{
353public:
354 SinglePos(Sequencer2 *seq, PosInfo pos)
355 : Sequencer2Impl(seq), pos(pos) { }
356 int CurrentPosNum() const { return seq->NumPositions(); }
357 virtual int NumPositions() const { return Sequencer2Impl::NumPositions()+1; }
358 virtual PosInfo Positions(int i) const
359 {
361 return pos;
362 }
363private:
364 PosInfo pos;
365};
366#endif
368{
369public:
370 AllStatesSequencer(Sequencer2 *next, StateInfo2 *array, int size)
371 : Sequencer2Impl(next), array(array), size(size) { }
372 int NumStates() const { return size; }
373 StateInfo2 States(int i) const { return array[i]; }
374private:
375 StateInfo2 *array;
376 int size;
377};
378
379#endif
EventInfo event_timer(int activation_id, float time)
Definition Serialize.cc:11
Sequencer * event_pair(EventInfo *i1, EventInfo *i2)
EventInfo game_start()
Definition Serialize.cc:4
EventInfo event_ac_mouse_plane(int activation_id, MousePlane &pl)
EventInfo event_key_down(int key)
Sequencer * event_single(EventInfo &info)
EventInfo event_key_up(int key)
EventInfo event_deac_mouse_plane(int deactivation_id, MousePlane &pl)
Sequencer * event_array(EventInfo *array, int size)
void info(std::string info)
Definition check.cc:24
AllStatesSequencer(Sequencer2 *next, StateInfo2 *array, int size)
Definition Serialize.hh:370
StateInfo2 States(int i) const
Definition Serialize.hh:373
int NumStates() const
Definition Serialize.hh:372
virtual int NumLinks() const
Definition Serialize.hh:113
virtual EventInfo Event(int i) const
Definition Serialize.hh:112
ArraySequencer(Array< int, EventInfo > &arr)
Definition Serialize.hh:110
virtual LinkageInfo Linkage(int i) const
Definition Serialize.hh:114
virtual int NumEvents() const
Definition Serialize.hh:111
Definition EffectI.hh:22
Definition GraphI.hh:826
Definition Serialize.hh:275
virtual StateInfo2 States(int i) const
Definition Serialize.hh:286
virtual int NumLinks() const
Definition Serialize.hh:279
virtual LinkInfo Links(int i) const
Definition Serialize.hh:281
virtual PosInfo Positions(int i) const
Definition Serialize.hh:283
virtual int NumStates() const
Definition Serialize.hh:285
virtual int NumPositions() const
Definition Serialize.hh:282
virtual int NumEvents() const
Definition Serialize.hh:277
virtual EventInfo Event(int i) const
Definition Serialize.hh:278
virtual LinkageInfo Linkage(int i) const
Definition Serialize.hh:280
Definition Serialize.hh:59
virtual EventInfo Event(int i) const
Definition Serialize.hh:62
virtual int NumLinks() const
Definition Serialize.hh:63
virtual LinkageInfo Linkage(int i) const
Definition Serialize.hh:64
virtual int NumEvents() const
Definition Serialize.hh:61
Definition Serialize.hh:174
virtual EventInfo Map(int x, int y) const
Definition Serialize.hh:195
virtual int SizeY() const
Definition Serialize.hh:194
MouseRectanglePlane(MousePlane *next, int sx, int sy)
Definition Serialize.hh:181
virtual int SizeX() const
Definition Serialize.hh:193
void push_back(int x, int y, int width, int height, EventInfo *info)
Definition Serialize.hh:182
Definition GraphI.hh:1154
virtual int NumEvents() const
Definition Serialize.hh:71
NextSequencer(Sequencer &seq, EventInfo next)
Definition Serialize.hh:70
virtual LinkageInfo Linkage(int i) const
Definition Serialize.hh:78
virtual EventInfo Event(int i) const
Definition Serialize.hh:72
virtual int NumLinks() const
Definition Serialize.hh:77
PairSequencer(Sequencer &seq, EventInfo e1, EventInfo e2)
Definition Serialize.hh:87
virtual LinkageInfo Linkage(int i) const
Definition Serialize.hh:96
virtual int NumLinks() const
Definition Serialize.hh:95
virtual int NumEvents() const
Definition Serialize.hh:88
virtual EventInfo Event(int i) const
Definition Serialize.hh:89
Definition Graph.hh:63
Definition Serialize.hh:290
virtual StateInfo2 States(int i) const
Definition Serialize.hh:301
virtual int NumEvents() const
Definition Serialize.hh:293
virtual int NumPositions() const
Definition Serialize.hh:298
virtual LinkInfo Links(int i) const
Definition Serialize.hh:297
Sequencer2 * seq
Definition Serialize.hh:304
virtual LinkageInfo Linkage(int i) const
Definition Serialize.hh:296
virtual PosInfo Positions(int i) const
Definition Serialize.hh:299
virtual int NumLinks() const
Definition Serialize.hh:295
Sequencer2Impl(Sequencer2 *seq)
Definition Serialize.hh:292
virtual int NumStates() const
Definition Serialize.hh:300
virtual EventInfo Event(int i) const
Definition Serialize.hh:294
Definition Serialize.hh:255
virtual int NumStates() const =0
virtual LinkInfo Links(int i) const =0
virtual StateInfo2 States(int i) const =0
virtual PosInfo Positions(int i) const =0
virtual EventInfo Event(int i) const =0
virtual ~Sequencer2()
Definition Serialize.hh:271
virtual LinkageInfo Linkage(int i) const =0
virtual int NumEvents() const =0
virtual int NumPositions() const =0
virtual int NumLinks() const =0
Definition Serialize.hh:50
virtual int NumLinks() const =0
virtual EventInfo Event(int i) const =0
virtual LinkageInfo Linkage(int i) const =0
virtual int NumEvents() const =0
line height
Definition meshpage.php:3536
n< br > font size
Definition meshpage.php:3536
Definition Parser.hh:8
Definition Serialize.hh:11
int state_change_id
Definition Serialize.hh:18
int time_origin_id
Definition Serialize.hh:16
int key_value
Definition Serialize.hh:17
int deactivation_event_id
Definition Serialize.hh:15
bool key_up
Definition Serialize.hh:21
bool key_down
Definition Serialize.hh:20
bool padding1
Definition Serialize.hh:25
bool deactivate_mouse
Definition Serialize.hh:23
bool activate_mouse
Definition Serialize.hh:22
bool padding2
Definition Serialize.hh:26
float time
Definition Serialize.hh:13
int activation_event_id
Definition Serialize.hh:14
bool state_change
Definition Serialize.hh:24
bool timer
Definition Serialize.hh:19
EventInfo()
Definition Serialize.hh:12
Definition Parser.hh:55
Definition GameApi_h.hh:480
Definition Serialize.hh:223
Point start_point
Definition Serialize.hh:225
EventInfo * start_event
Definition Serialize.hh:227
Point end_point
Definition Serialize.hh:226
bool is_start
Definition Serialize.hh:224
EventInfo * end_event
Definition Serialize.hh:228
Definition Serialize.hh:127
int start_event_id
Definition Serialize.hh:134
int bitmap_posx_func
Definition Serialize.hh:154
int polygon_xrot_func
Definition Serialize.hh:157
BitmapHandle * bitmap_start
Definition Serialize.hh:139
int polygon_posx_func
Definition Serialize.hh:151
int polygon_yrot_func
Definition Serialize.hh:158
int polygon_posz_func
Definition Serialize.hh:153
FaceCollPolyHandle * polygon_end
Definition Serialize.hh:137
LinkInfo()
Definition Serialize.hh:128
FaceCollPolyHandle * polygon_start
Definition Serialize.hh:136
BitmapHandle * bitmap_end
Definition Serialize.hh:140
int end_event_id
Definition Serialize.hh:135
int polygon_posy_func
Definition Serialize.hh:152
int sound_channel_func
Definition Serialize.hh:160
int bitmap_posz_func
Definition Serialize.hh:156
int polygon_zrot_func
Definition Serialize.hh:159
int bitmap_posy_func
Definition Serialize.hh:155
Definition Serialize.hh:44
int end_event
Definition Serialize.hh:46
int start_event
Definition Serialize.hh:45
Definition Serialize.hh:218
bool is_start
Definition Serialize.hh:219
Point p
Definition Serialize.hh:220
Definition Parser.cc:60
Definition Serialize.hh:232
LineInfo line
Definition Serialize.hh:235
PointInfo point
Definition Serialize.hh:234
bool is_point
Definition Serialize.hh:233
Definition Serialize.hh:238
NDim< float, Point > * curve
Definition Serialize.hh:241
int link_id
Definition Serialize.hh:239
Definition Common2.hh:95
MousePlane * plane
Definition Common2.hh:97
Array< int, bool > * enable_obj_array
Definition Common2.hh:96
Definition Common2.hh:100
int start_range
Definition Common2.hh:101
int range_size
Definition Common2.hh:102