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

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