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