diff --git a/src/samples/floors/objects/enemy.cpp b/src/samples/floors/objects/enemy.cpp index b7a46a8..57bf4b9 100644 --- a/src/samples/floors/objects/enemy.cpp +++ b/src/samples/floors/objects/enemy.cpp @@ -26,33 +26,25 @@ Enemy::Enemy(TextureRepository *t_texRepo) PRINT_LOG("Creating enemy object"); meshes = new Mesh[getMeshesCount()]; + drawMeshes = new Mesh *[getMeshesCount()]; meshes[0].loadMD2("meshes/enemy/", "poss_head", 0.3F, false); - meshes[0].rotation.x = -1.566F; - meshes[0].rotation.z = 1.566F; - meshes[0].shouldBeFrustumCulled = false; - meshes[1].loadMD2("meshes/enemy/", "poss_body", 0.3F, false); - meshes[1].rotation.x = -1.566F; - meshes[1].rotation.z = 1.566F; - meshes[1].shouldBeFrustumCulled = false; - meshes[2].loadMD2("meshes/enemy/", "poss_weapon", 0.3F, false); - meshes[2].rotation.x = -1.566F; - meshes[2].rotation.z = 1.566F; - meshes[2].shouldBeFrustumCulled = false; + + for (u8 i = 0; i < 3; i++) + { + meshes[i].rotation.x = -1.566F; + meshes[i].rotation.z = 1.566F; + meshes[i].shouldBeFrustumCulled = false; + t_texRepo->addByMesh("meshes/enemy/", meshes[i], PNG); + meshes[i].playAnimation(1, 6); + drawMeshes[i] = &meshes[i]; + } Vector3 initPos = Vector3(0.00F, 40.00F, 0.00F); setPosition(initPos); - t_texRepo->addByMesh("meshes/enemy/", meshes[0], PNG); - t_texRepo->addByMesh("meshes/enemy/", meshes[1], PNG); - t_texRepo->addByMesh("meshes/enemy/", meshes[2], PNG); - - meshes[0].playAnimation(1, 6); - meshes[1].playAnimation(1, 6); - meshes[2].playAnimation(1, 6); - isKilled = true; PRINT_LOG("Enemy object created!"); diff --git a/src/samples/floors/objects/enemy.hpp b/src/samples/floors/objects/enemy.hpp index 601a4e9..4ed530a 100644 --- a/src/samples/floors/objects/enemy.hpp +++ b/src/samples/floors/objects/enemy.hpp @@ -24,7 +24,7 @@ public: Enemy(TextureRepository *t_texRepo); ~Enemy(); - inline Mesh *getMeshes() const { return meshes; } + inline Mesh **getMeshes() const { return drawMeshes; } inline u8 getMeshesCount() const { return 3; } inline Vector3 getPosition() const { return position; } void setPosition(const Vector3 &t_vec); @@ -35,6 +35,8 @@ public: private: /** 0 - head, 1 - body, 2 - weapon */ Mesh *meshes; + /** Only for draw() method. */ + Mesh **drawMeshes; const Floor *currentFloor; Vector3 position, currFloorMin, currFloorMax; u8 isKilled;