File: actions.h

package info (click to toggle)
qonk 0.3.1-1
  • links: PTS, VCS
  • area: main
  • in suites: lenny
  • size: 2,076 kB
  • ctags: 2,026
  • sloc: cpp: 14,978; sh: 3,464; makefile: 200
file content (39 lines) | stat: -rw-r--r-- 767 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
// Copyright 2005 by Anthony Liekens anthony@liekens.net

#ifndef ACTIONS_H
#define ACTIONS_H

#include <SDL/SDL.h>
#include <map>

class ActionQueue;

class Action {
private:
  ActionQueue* actionQueue;
protected:
  int actionID;
public:
  Action();
  virtual void execute( const Uint32& time ) = 0;
  virtual ~Action() {}
  void setActionQueue( ActionQueue* actionQueue );
  ActionQueue* getActionQueue() const;
  int getActionID() { return actionID; }
};

class ActionQueue : public std::multimap< Uint32, Action* > {
private:
  Uint32 time;
public:
  ActionQueue(); 
  void scheduleAction( Uint32 time, Action* action );
  
  Uint32 timeOfNextEvent();
  
  void executeNextEvent();
  void executeAllEvents();
  void executeEventsBefore( Uint32 time );
};

#endif