diff options
Diffstat (limited to 'src/object/motion/motiontoto.cpp')
-rw-r--r-- | src/object/motion/motiontoto.cpp | 42 |
1 files changed, 13 insertions, 29 deletions
diff --git a/src/object/motion/motiontoto.cpp b/src/object/motion/motiontoto.cpp index 274f171..ddb1867 100644 --- a/src/object/motion/motiontoto.cpp +++ b/src/object/motion/motiontoto.cpp @@ -21,9 +21,9 @@ #include "math/geometry.h" +#include "graphics/engine/modelmanager.h" #include "graphics/engine/terrain.h" #include "graphics/engine/water.h" -#include "graphics/engine/modelfile.h" #include "object/robotmain.h" @@ -38,8 +38,7 @@ const float START_TIME = 1000.0f; // beginning of the relative time // Object's constructor. -CMotionToto::CMotionToto(CInstanceManager* iMan, CObject* object) - : CMotion(iMan, object) +CMotionToto::CMotionToto(CObject* object) : CMotion(object) { m_time = 0.0f; m_bDisplayInfo = false; @@ -81,12 +80,9 @@ void CMotionToto::DeleteObject(bool bAll) bool CMotionToto::Create(Math::Vector pos, float angle, ObjectType type, float power) { - Gfx::CModelFile* pModFile; + Gfx::CModelManager* modelManager = Gfx::CModelManager::GetInstancePointer(); int rank; -// if ( m_engine->GetRestCreate() < 10 ) return false; - - pModFile = new Gfx::CModelFile(m_iMan); m_object->SetType(type); @@ -94,8 +90,7 @@ bool CMotionToto::Create(Math::Vector pos, float angle, ObjectType type, rank = m_engine->CreateObject(); m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_VEHICULE); // this is a moving object m_object->SetObjectRank(0, rank); - pModFile->ReadModel(m_app->GetDataFilePath(DIR_MODEL, "toto1.mod")); - pModFile->CreateEngineObject(rank); + modelManager->AddModelReference("toto1.mod", false, rank); m_object->SetPosition(0, pos); m_object->SetAngleY(0, angle); @@ -104,8 +99,7 @@ bool CMotionToto::Create(Math::Vector pos, float angle, ObjectType type, m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT); m_object->SetObjectRank(1, rank); m_object->SetObjectParent(1, 0); - pModFile->ReadModel(m_app->GetDataFilePath(DIR_MODEL, "toto2.mod")); - pModFile->CreateEngineObject(rank); + modelManager->AddModelReference("toto2.mod", false, rank); m_object->SetPosition(1, Math::Vector(1.00f, 0.17f, 0.00f)); // Creates the left eye. @@ -113,9 +107,7 @@ bool CMotionToto::Create(Math::Vector pos, float angle, ObjectType type, m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT); m_object->SetObjectRank(2, rank); m_object->SetObjectParent(2, 0); - pModFile->ReadModel(m_app->GetDataFilePath(DIR_MODEL, "toto3.mod")); - pModFile->Mirror(); - pModFile->CreateEngineObject(rank); + modelManager->AddModelReference("toto3.mod", true, rank); m_object->SetPosition(2, Math::Vector(0.85f, 1.04f, 0.25f)); m_object->SetAngleY(2, -20.0f*Math::PI/180.0f); @@ -124,8 +116,7 @@ bool CMotionToto::Create(Math::Vector pos, float angle, ObjectType type, m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT); m_object->SetObjectRank(3, rank); m_object->SetObjectParent(3, 0); - pModFile->ReadModel(m_app->GetDataFilePath(DIR_MODEL, "toto3.mod")); - pModFile->CreateEngineObject(rank); + modelManager->AddModelReference("toto3.mod", false, rank); m_object->SetPosition(3, Math::Vector(0.85f, 1.04f, -0.25f)); m_object->SetAngleY(3, 20.0f*Math::PI/180.0f); @@ -134,8 +125,7 @@ bool CMotionToto::Create(Math::Vector pos, float angle, ObjectType type, m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT); m_object->SetObjectRank(4, rank); m_object->SetObjectParent(4, 0); - pModFile->ReadModel(m_app->GetDataFilePath(DIR_MODEL, "toto4.mod")); - pModFile->CreateEngineObject(rank); + modelManager->AddModelReference("toto4.mod", false, rank); m_object->SetPosition(4, Math::Vector(0.0f, 1.9f, 0.3f)); m_object->SetAngleX(4, 30.0f*Math::PI/180.0f); @@ -143,8 +133,7 @@ bool CMotionToto::Create(Math::Vector pos, float angle, ObjectType type, m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT); m_object->SetObjectRank(5, rank); m_object->SetObjectParent(5, 4); - pModFile->ReadModel(m_app->GetDataFilePath(DIR_MODEL, "toto4.mod")); - pModFile->CreateEngineObject(rank); + modelManager->AddModelReference("toto4.mod", false, rank); m_object->SetPosition(5, Math::Vector(0.0f, 0.67f, 0.0f)); m_object->SetAngleX(5, 30.0f*Math::PI/180.0f); @@ -152,8 +141,7 @@ bool CMotionToto::Create(Math::Vector pos, float angle, ObjectType type, m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT); m_object->SetObjectRank(6, rank); m_object->SetObjectParent(6, 5); - pModFile->ReadModel(m_app->GetDataFilePath(DIR_MODEL, "toto5.mod")); - pModFile->CreateEngineObject(rank); + modelManager->AddModelReference("toto5.mod", false, rank); m_object->SetPosition(6, Math::Vector(0.0f, 0.70f, 0.0f)); m_object->SetAngleX(6, 30.0f*Math::PI/180.0f); @@ -162,8 +150,7 @@ bool CMotionToto::Create(Math::Vector pos, float angle, ObjectType type, m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT); m_object->SetObjectRank(7, rank); m_object->SetObjectParent(7, 0); - pModFile->ReadModel(m_app->GetDataFilePath(DIR_MODEL, "toto4.mod")); - pModFile->CreateEngineObject(rank); + modelManager->AddModelReference("toto4.mod", false, rank); m_object->SetPosition(7, Math::Vector(0.0f, 1.9f, -0.3f)); m_object->SetAngleX(7, -30.0f*Math::PI/180.0f); @@ -171,8 +158,7 @@ bool CMotionToto::Create(Math::Vector pos, float angle, ObjectType type, m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT); m_object->SetObjectRank(8, rank); m_object->SetObjectParent(8, 7); - pModFile->ReadModel(m_app->GetDataFilePath(DIR_MODEL, "toto4.mod")); - pModFile->CreateEngineObject(rank); + modelManager->AddModelReference("toto4.mod", false, rank); m_object->SetPosition(8, Math::Vector(0.0f, 0.67f, 0.0f)); m_object->SetAngleX(8, -30.0f*Math::PI/180.0f); @@ -180,8 +166,7 @@ bool CMotionToto::Create(Math::Vector pos, float angle, ObjectType type, m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT); m_object->SetObjectRank(9, rank); m_object->SetObjectParent(9, 8); - pModFile->ReadModel(m_app->GetDataFilePath(DIR_MODEL, "toto5.mod")); - pModFile->CreateEngineObject(rank); + modelManager->AddModelReference("toto5.mod", false, rank); m_object->SetPosition(9, Math::Vector(0.0f, 0.70f, 0.0f)); m_object->SetAngleX(9, -30.0f*Math::PI/180.0f); @@ -193,7 +178,6 @@ bool CMotionToto::Create(Math::Vector pos, float angle, ObjectType type, m_engine->LoadAllTextures(); - delete pModFile; return true; } |