00001 #ifndef HEADER_LEVELSCRIPT_H 00002 #define HEADER_LEVELSCRIPT_H 00003 00004 class V2; 00005 class Path; 00006 class Cube; 00007 class Unit; 00008 class Level; 00009 class Command; 00010 00011 #include "Planner.h" 00012 #include "RoomAccess.h" 00013 00014 #include <string> 00015 00016 /** 00017 * Handle plan for dialogs and planned actions. 00018 */ 00019 class LevelScript : public Planner, public RoomAccess { 00020 private: 00021 Level *m_level; 00022 private: 00023 void registerGameFuncs(); 00024 void registerLevelFuncs(); 00025 public: 00026 LevelScript(Level *aLevel); 00027 00028 void updateScript(); 00029 virtual void interruptPlan(); 00030 00031 Level *level() { return m_level; } 00032 Command *createCommand(int funcRef); 00033 00034 int addModel(Cube *new_model, Unit *new_unit); 00035 Cube *getModel(int model_index); 00036 Cube *askField(const V2 &loc); 00037 00038 void addSound(const std::string &name, const Path &file); 00039 void playSound(const std::string &name, int volume); 00040 }; 00041 00042 #endif