/*! * \file include/World.h * \brief World Model * * \author Mongoose * \author xythobuz */ #ifndef _WORLD_H_ #define _WORLD_H_ #include #include #include "Entity.h" #include "Mesh.h" #include "Room.h" #include "SkeletalModel.h" #include "Sprite.h" #include "StaticMesh.h" /*! * \brief The game world (model) */ class World { public: /*! * \brief Deconstructs an object of World */ ~World(); /*! * \brief Clears all data in world */ void destroy(); void addRoom(Room* room); unsigned long sizeRoom(); Room& getRoom(unsigned long index); void addSprite(Sprite* sprite); unsigned long sizeSprite(); Sprite& getSprite(unsigned long index); void addSpriteSequence(SpriteSequence* sprite); unsigned long sizeSpriteSequence(); SpriteSequence& getSpriteSequence(unsigned long index); void addEntity(Entity* entity); unsigned long sizeEntity(); Entity& getEntity(unsigned long index); void addSkeletalModel(SkeletalModel* model); unsigned long sizeSkeletalModel(); SkeletalModel& getSkeletalModel(unsigned long index); void addStaticMesh(StaticMesh* model); unsigned long sizeStaticMesh(); StaticMesh& getStaticMesh(unsigned long index); void addMesh(Mesh* mesh); unsigned long sizeMesh(); Mesh& getMesh(unsigned long index); private: std::vector> mRooms; std::vector> mSprites; std::vector> mSpriteSequences; std::vector> mEntities; std::vector> mModels; std::vector> mStaticMeshes; std::vector> mMeshes; }; World& getWorld(); #endif