Open Source Tomb Raider Engine
Vous ne pouvez pas sélectionner plus de 25 sujets Les noms de sujets doivent commencer par une lettre ou un nombre, peuvent contenir des tirets ('-') et peuvent comporter jusqu'à 35 caractères.

Entity.cpp 2.4KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117
  1. /*!
  2. * \file src/Entity.cpp
  3. * \brief World Entities
  4. *
  5. * \author xythobuz
  6. */
  7. #include "global.h"
  8. #include "Log.h"
  9. #include "World.h"
  10. #include "Entity.h"
  11. Entity::Entity(float p[3], float a[3], int id, long r, unsigned int model) {
  12. for (int i = 0; i < 3; i++) {
  13. pos[i] = p[i];
  14. angles[i] = a[i];
  15. }
  16. objectId = id;
  17. moveType = MoveTypeWalk;
  18. room = r;
  19. skeletalModel = model;
  20. boneFrame = 0;
  21. animationFrame = 0;
  22. idleAnimation = 0;
  23. state = 0;
  24. }
  25. void Entity::display() {
  26. /*
  27. glPushMatrix();
  28. glTranslatef(pos[0], pos[1], pos[2]);
  29. glRotatef(glm::degrees(angles[1]), 0, 1, 0);
  30. glRotatef(glm::degrees(angles[0]), 1, 0, 0);
  31. //glRotatef(glm::degrees(angles[2]), 0, 0, 1);
  32. getWorld().getSkeletalModel(skeletalModel).display(animationFrame, boneFrame);
  33. glPopMatrix();
  34. */
  35. }
  36. void Entity::move(char movement) {
  37. }
  38. void Entity::print() {
  39. Log::get(LOG_INFO) << "Entity " << objectId << ":" << Log::endl
  40. << " Room " << room << " (" << getWorld().getRoom(room).getFlags()
  41. << ")" << Log::endl
  42. << " " << pos[0] << "x " << pos[1] << "y " << pos[2] << "z"
  43. << Log::endl
  44. << " " << glm::degrees(angles[1]) << " Yaw" << Log::endl;
  45. }
  46. SkeletalModel& Entity::getModel() {
  47. return getWorld().getSkeletalModel(skeletalModel);
  48. }
  49. void Entity::setSkeletalModel(unsigned int model) {
  50. skeletalModel = model;
  51. animationFrame = 0;
  52. boneFrame = 0;
  53. idleAnimation = 0;
  54. }
  55. Entity::MoveType Entity::getMoveType() {
  56. return moveType;
  57. }
  58. void Entity::setMoveType(MoveType m) {
  59. moveType = m;
  60. }
  61. int Entity::getObjectId() {
  62. return objectId;
  63. }
  64. void Entity::setAngles(float a[3]) {
  65. for (unsigned int i = 0; i < 3; i++)
  66. angles[i] = a[i];
  67. }
  68. float Entity::getPos(unsigned int i) {
  69. return pos[i];
  70. }
  71. float Entity::getAngle(unsigned int i) {
  72. return angles[i];
  73. }
  74. long Entity::getRoom() {
  75. return room;
  76. }
  77. unsigned long Entity::getAnimation() {
  78. return animationFrame;
  79. }
  80. void Entity::setAnimation(unsigned long index) {
  81. animationFrame = index;
  82. boneFrame = 0;
  83. }
  84. unsigned long Entity::getBoneFrame() {
  85. return boneFrame;
  86. }
  87. void Entity::setBoneFrame(unsigned long index) {
  88. boneFrame = index;
  89. }
  90. unsigned long Entity::getIdleAnimation() {
  91. return idleAnimation;
  92. }
  93. void Entity::setIdleAnimation(unsigned long index) {
  94. idleAnimation = index;
  95. }