25 |
#include "px/px.hh" |
#include "px/px.hh" |
26 |
#include "px/cache.hh" |
#include "px/cache.hh" |
27 |
#include "display.hh" |
#include "display.hh" |
28 |
|
#include "d_engine.hh" |
29 |
#include <cstdio> |
#include <cstdio> |
30 |
#include <string> |
#include <string> |
31 |
#include <list> |
#include <list> |
164 |
~ShadedModel() { delete model; delete shade; } |
~ShadedModel() { delete model; delete shade; } |
165 |
|
|
166 |
// Model interface |
// Model interface |
167 |
void activate(double worldx, double worldy, bool is_sprite) { |
|
168 |
model->activate(worldx, worldy, is_sprite); |
virtual void expose (ModelLayer *ml, const px::V2 &pos) { |
169 |
|
model->expose(ml, pos); |
170 |
|
} |
171 |
|
virtual void remove (ModelLayer *ml) { |
172 |
|
model->remove(ml); |
173 |
} |
} |
174 |
void deactivate() { model->deactivate(); } |
|
175 |
|
// void activate(double worldx, double worldy, bool is_sprite) { |
176 |
|
// model->activate(worldx, worldy, is_sprite); |
177 |
|
// } |
178 |
|
// void deactivate() { model->deactivate(); } |
179 |
void set_callback(ModelCallback *cb) { model->set_callback(cb); } |
void set_callback(ModelCallback *cb) { model->set_callback(cb); } |
180 |
void reverse() { model->reverse(); } |
void reverse() { model->reverse(); } |
181 |
void draw(px::GC &gc, int x, int y) { |
void draw(px::GC &gc, int x, int y) { |
224 |
} |
} |
225 |
|
|
226 |
// Model interface |
// Model interface |
227 |
void activate(double worldx, double worldy, bool is_sprite) { |
virtual void expose (ModelLayer *ml, const px::V2 &pos) { |
228 |
bg->activate(worldx, worldy, is_sprite); |
fg->expose (ml, pos); |
229 |
fg->activate(worldx, worldy, is_sprite); |
bg->expose (ml, pos); |
230 |
} |
} |
231 |
void deactivate() { |
virtual void remove (ModelLayer *ml) { |
232 |
bg->deactivate(); |
fg->remove (ml); |
233 |
fg->deactivate(); |
bg->remove (ml); |
234 |
} |
} |
235 |
|
// void activate(double worldx, double worldy, bool is_sprite) { |
236 |
|
// bg->activate(worldx, worldy, is_sprite); |
237 |
|
// fg->activate(worldx, worldy, is_sprite); |
238 |
|
// } |
239 |
|
// void deactivate() { |
240 |
|
// bg->deactivate(); |
241 |
|
// fg->deactivate(); |
242 |
|
// } |
243 |
void draw(px::GC &gc, int x, int y) { |
void draw(px::GC &gc, int x, int y) { |
244 |
bg->draw(gc,x,y); |
bg->draw(gc,x,y); |
245 |
fg->draw(gc,x,y); |
fg->draw(gc,x,y); |
324 |
|
|
325 |
void add_frame(Model *m, double duration); |
void add_frame(Model *m, double duration); |
326 |
|
|
327 |
// Model interface |
/* |
328 |
|
** Model interface |
329 |
|
*/ |
330 |
void draw(px::GC &gc, int x, int y); |
void draw(px::GC &gc, int x, int y); |
331 |
void draw_shade(px::GC &gc, int x, int y); |
void draw_shade(px::GC &gc, int x, int y); |
332 |
Model *clone() { return new Anim2d(rep); } |
Model *clone() { return new Anim2d(rep); } |
333 |
void reverse() { reversep = !reversep; } |
void reverse() { reversep = !reversep; } |
334 |
|
|
335 |
|
void expose (ModelLayer *ml, const px::V2 &pos); |
336 |
|
void remove (ModelLayer *ml); |
337 |
|
|
338 |
void activate(double worldx, double worldy, bool is_sprite); |
void activate(double worldx, double worldy, bool is_sprite); |
339 |
void deactivate(); |
void deactivate(); |
340 |
void tick(double dtime); |
void tick(double dtime); |
343 |
private: |
private: |
344 |
Anim2d(AnimRep *r); |
Anim2d(AnimRep *r); |
345 |
|
|
346 |
|
/* |
347 |
|
** Variables |
348 |
|
*/ |
349 |
AnimRep *rep; |
AnimRep *rep; |
350 |
unsigned curframe; // Current frame number. |
unsigned curframe; // Current frame number. |
351 |
double frametime; // Elapsed time since frame was activated |
double frametime; // Elapsed time since frame was activated |