source: trunk/src/asset.h @ 130

Last change on this file since 130 was 130, checked in by sam, 11 years ago

Try to detect assets not calling their super tick methods. Already spotted
one bug thanks to that.

  • Property svn:keywords set to Id
File size: 1.1 KB
Line 
1//
2// Deus Hax (working title)
3// Copyright (c) 2010 Sam Hocevar <sam@hocevar.net>
4//
5
6//
7// The Asset class
8// ---------------
9// Assets are objects that can be ticked by the game loop and/or the render
10// loop. Assets are implemented as one or several linked lists. See the
11// Ticker class for the ticking logic and the linked list implementation.
12//
13
14#if !defined __DH_ASSET_H__
15#define __DH_ASSET_H__
16
17#include <stdint.h>
18
19class Asset
20{
21    friend class Ticker;
22    friend class TickerData;
23
24public:
25    virtual void Ref();
26    virtual int Unref();
27
28protected:
29    typedef enum
30    {
31        GROUP_BEFORE = 0,
32        GROUP_DEFAULT,
33        GROUP_AFTER,
34        GROUP_COUNT
35    }
36    Group;
37
38    Asset();
39    virtual ~Asset();
40
41    virtual Group GetGroup();
42
43    virtual void TickGame(float delta_time);
44    virtual void TickRender(float delta_time);
45
46    Asset *next;
47    int ref, destroy;
48
49#if !FINAL_RELEASE
50    enum
51    {
52        STATE_IDLE = 0,
53        STATE_PRETICK_GAME,
54        STATE_POSTTICK_GAME,
55        STATE_PRETICK_RENDER,
56        STATE_POSTTICK_RENDER,
57    }
58    state;
59#endif
60};
61
62#endif // __DH_ASSET_H__
63
Note: See TracBrowser for help on using the repository browser.