Open Source Tomb Raider Engine
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

World.cpp 2.1KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101
  1. /*!
  2. * \file src/World.cpp
  3. * \brief The game world (model)
  4. *
  5. * \author Mongoose
  6. */
  7. #include "global.h"
  8. #include "World.h"
  9. World::~World() {
  10. destroy();
  11. }
  12. void World::destroy() {
  13. mRooms.clear();
  14. mSprites.clear();
  15. mEntities.clear();
  16. mModels.clear();
  17. mStaticMeshes.clear();
  18. mMeshes.clear();
  19. }
  20. void World::addRoom(Room* room) {
  21. mRooms.emplace_back(std::unique_ptr<Room>(room));
  22. }
  23. unsigned long World::sizeRoom() {
  24. return mRooms.size();
  25. }
  26. Room& World::getRoom(unsigned long index) {
  27. assert(index < mRooms.size());
  28. return *mRooms.at(index);
  29. }
  30. void World::addSprite(SpriteSequence* sprite) {
  31. mSprites.emplace_back(std::unique_ptr<SpriteSequence>(sprite));
  32. }
  33. unsigned long World::sizeSprite() {
  34. return mSprites.size();
  35. }
  36. SpriteSequence& World::getSprite(unsigned long index) {
  37. assert(index < mSprites.size());
  38. return *mSprites.at(index);
  39. }
  40. void World::addEntity(Entity* entity) {
  41. mEntities.emplace_back(std::unique_ptr<Entity>(entity));
  42. }
  43. unsigned long World::sizeEntity() {
  44. return mEntities.size();
  45. }
  46. Entity& World::getEntity(unsigned long index) {
  47. assert(index < mEntities.size());
  48. return *mEntities.at(index);
  49. }
  50. void World::addSkeletalModel(SkeletalModel* model) {
  51. mModels.emplace_back(std::unique_ptr<SkeletalModel>(model));
  52. }
  53. unsigned long World::sizeSkeletalModel() {
  54. return mModels.size();
  55. }
  56. SkeletalModel& World::getSkeletalModel(unsigned long index) {
  57. assert(index < mModels.size());
  58. return *mModels.at(index);
  59. }
  60. void World::addStaticMesh(StaticMesh* model) {
  61. mStaticMeshes.emplace_back(std::unique_ptr<StaticMesh>(model));
  62. }
  63. unsigned long World::sizeStaticMesh() {
  64. return mStaticMeshes.size();
  65. }
  66. StaticMesh& World::getStaticMesh(unsigned long index) {
  67. assert(index < mStaticMeshes.size());
  68. return *mStaticMeshes.at(index);
  69. }
  70. void World::addMesh(Mesh* mesh) {
  71. mMeshes.emplace_back(mesh);
  72. }
  73. unsigned long World::sizeMesh() {
  74. return mMeshes.size();
  75. }
  76. Mesh& World::getMesh(unsigned long index) {
  77. assert(index < mMeshes.size());
  78. return *mMeshes.at(index);
  79. }