00001
#ifndef DEF_SCENARIO_H
00002
#define DEF_SCENARIO_H 1
00003
00026 class Scenario {
00027
public:
00029
Scenario();
00030 ~
Scenario();
00037
Hit checkPlace(
const SDL_Rect& src,
const SDL_Rect& dest)
const;
00048 std::set<Character *>
getCharactersIn(Uint16 mask,
const SDL_Rect& rect,
bool touch=
false, Uint16 radius=0, Uint16 dir=DIR_ALL)
const;
00049 std::set<Object *> getObjectsIn(Uint16 mask,
const SDL_Rect& rect,
bool touch=
false, Uint16 radius=0, Uint16 dir=DIR_ALL)
const;
00051
Object*
getObjectAt(Sint16 x, Sint16 y, Uint16 mask=ALL)
const;
00056 Uint16
getDirection(
const SDL_Rect& src,
const SDL_Rect& dest)
const;
00058
int loadScenario(string
scenarioname);
00059
00061 Background*
background;
00063 SDL_Rect*
area;
00065 Player*
player;
00067 ImageCache*
imgcache;
00069 SoundCache*
sndcache;
00071 ObjectsPool*
pool;
00073 PhysicHandler*
physic;
00075
void newMap(
const ParameterMap& bg_parameters);
00077
int loadMapBuf(string mapname);
00079
int reloadMap();
00085
int loadMap(string mapname);
00086
int loadMap(Uint8 level=0);
00087
void loadNextMap();
00088
int startScenario();
00089
void winScenario();
00090
void resetScenario();
00092 bool failed;
00094 bool finnished;
00096 string
mapname;
00098 string scenarioname;
00100 string
bgimage;
00101 std::vector<string> mapbuf;
00103 Uint32
max_obj_num;
00104 std::vector<string> maps;
00105 std::vector<string> playlist;
00106 Uint8 currentmap;
00107
private:
00108
inline void reinitMap();
00109 };
00110
00111
#endif