Open Source Tomb Raider Engine
Du kan inte välja fler än 25 ämnen Ämnen måste starta med en bokstav eller siffra, kan innehålla bindestreck ('-') och vara max 35 tecken långa.

Room.cpp 1.5KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. /*!
  2. * \file src/Room.cpp
  3. * \brief World Room Mesh
  4. *
  5. * \author xythobuz
  6. */
  7. #include "Room.h"
  8. StaticModel::StaticModel(int _index, vec_t _yaw, vec3_t _pos) {
  9. index = _index;
  10. yaw = _yaw;
  11. for (unsigned int i = 0; i < 3; i++)
  12. pos[i] = _pos[i];
  13. }
  14. Portal::Portal(vec3_t _vertices[4], vec3_t _normal, int _adjoiningRoom) {
  15. for (unsigned int i = 0; i < 3; i++) {
  16. vertices[0][i] = _vertices[0][i];
  17. vertices[1][i] = _vertices[1][i];
  18. vertices[2][i] = _vertices[2][i];
  19. vertices[3][i] = _vertices[3][i];
  20. normal[i] = _normal[i];
  21. }
  22. adjoiningRoom = _adjoiningRoom;
  23. }
  24. Box::Box(vec3_t _a, vec3_t _b, vec3_t _c, vec3_t _d) {
  25. for (unsigned int i = 0; i < 3; i++) {
  26. a[i] = _a[i];
  27. b[i] = _b[i];
  28. c[i] = _c[i];
  29. d[i] = _d[i];
  30. }
  31. }
  32. Sector::Sector(vec_t _floor, vec_t _ceiling, bool _wall) {
  33. floor = _floor;
  34. ceiling = _ceiling;
  35. wall = _wall;
  36. }
  37. Room::Room(int _id) {
  38. id = _id;
  39. flags = 0;
  40. numXSectors = 0;
  41. numZSectors = 0;
  42. pos[0] = pos[1] = pos[2] = 0.0f;
  43. bbox[0][0] = bbox[0][1] = bbox[0][2] = 0.0f;
  44. bbox[1][0] = bbox[1][1] = bbox[1][2] = 0.0f;
  45. }
  46. Room::~Room() {
  47. unsigned long i;
  48. for (i = 0; i < sprites.size(); i++)
  49. delete sprites[i];
  50. for (i = 0; i < models.size(); i++)
  51. delete models[i];
  52. for (i = 0; i < portals.size(); i++)
  53. delete portals[i];
  54. for (i = 0; i < boxes.size(); i++)
  55. delete boxes[i];
  56. for (i = 0; i < sectors.size(); i++)
  57. delete sectors[i];
  58. }