diff options
Diffstat (limited to 'src/object/motion')
-rw-r--r-- | src/object/motion/motion.cpp | 9 | ||||
-rw-r--r-- | src/object/motion/motion.h | 6 | ||||
-rw-r--r-- | src/object/motion/motionant.cpp | 51 | ||||
-rw-r--r-- | src/object/motion/motionbee.cpp | 55 | ||||
-rw-r--r-- | src/object/motion/motionhuman.cpp | 64 | ||||
-rw-r--r-- | src/object/motion/motionmother.cpp | 49 | ||||
-rw-r--r-- | src/object/motion/motionspider.cpp | 24 | ||||
-rw-r--r-- | src/object/motion/motiontoto.cpp | 31 | ||||
-rw-r--r-- | src/object/motion/motionvehicle.cpp | 161 | ||||
-rw-r--r-- | src/object/motion/motionworm.cpp | 19 |
10 files changed, 252 insertions, 217 deletions
diff --git a/src/object/motion/motion.cpp b/src/object/motion/motion.cpp index df8a4be..ff038ae 100644 --- a/src/object/motion/motion.cpp +++ b/src/object/motion/motion.cpp @@ -14,14 +14,16 @@ // * You should have received a copy of the GNU General Public License // * along with this program. If not, see http://www.gnu.org/licenses/. -// motion.cpp - #include "object/motion/motion.h" +#include "app/app.h" + #include "common/iman.h" + #include "script/cmdtoken.h" + #include <stdio.h> #include <string.h> @@ -33,9 +35,10 @@ CMotion::CMotion(CInstanceManager* iMan, CObject* object) m_iMan = iMan; m_iMan->AddInstance(CLASS_MOTION, this, 100); + m_app = CApplication::GetInstancePointer(); m_engine = static_cast< Gfx::CEngine* >(m_iMan->SearchInstance(CLASS_ENGINE)); m_light = static_cast< Gfx::CLight* >(m_iMan->SearchInstance(CLASS_LIGHT)); - m_particle = static_cast< Gfx::CParticle* >(m_iMan->SearchInstance(CLASS_PARTICULE)); + m_particle = static_cast< Gfx::CParticle* >(m_iMan->SearchInstance(CLASS_PARTICULE)); m_terrain = static_cast< Gfx::CTerrain* >(m_iMan->SearchInstance(CLASS_TERRAIN)); m_water = static_cast< Gfx::CWater* >(m_iMan->SearchInstance(CLASS_WATER)); m_camera = static_cast< Gfx::CCamera* >(m_iMan->SearchInstance(CLASS_CAMERA)); diff --git a/src/object/motion/motion.h b/src/object/motion/motion.h index d195e65..81bcb08 100644 --- a/src/object/motion/motion.h +++ b/src/object/motion/motion.h @@ -21,10 +21,9 @@ #include "common/event.h" #include "common/global.h" -#include "object/object.h" +#include "object/object.h" -class CInstanceManager; namespace Gfx { class CEngine; @@ -35,6 +34,8 @@ class CWater; class CCamera; } +class CInstanceManager; +class CApplication; class CBrain; class CPhysics; class CObject; @@ -74,6 +75,7 @@ protected: protected: CInstanceManager* m_iMan; + CApplication* m_app; Gfx::CEngine* m_engine; Gfx::CLight* m_light; Gfx::CParticle* m_particle; diff --git a/src/object/motion/motionant.cpp b/src/object/motion/motionant.cpp index da7880f..07ee6b8 100644 --- a/src/object/motion/motionant.cpp +++ b/src/object/motion/motionant.cpp @@ -14,18 +14,19 @@ // * You should have received a copy of the GNU General Public License // * along with this program. If not, see http://www.gnu.org/licenses/. -// motionant.cpp - - -#include <stdio.h> #include "object/motion/motionant.h" +#include "app/app.h" + #include "graphics/engine/modelfile.h" #include "graphics/engine/particle.h" + #include "physics/physics.h" +#include <stdio.h> + #define ADJUST_ANGLE false // true -> adjusts the angles of the members const float START_TIME = 1000.0f; // beginning of the relative time @@ -82,7 +83,7 @@ bool CMotionAnt::Create(Math::Vector pos, float angle, ObjectType type, m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_VEHICULE); // this is a moving object m_object->SetObjectRank(0, rank); - pModFile->ReadModel("data/models/ant1.mod"); + pModFile->ReadModel(m_app->GetDataFilePath(DIR_MODEL, "ant1.mod")); pModFile->CreateEngineObject(rank); m_object->SetPosition(0, pos); @@ -98,7 +99,7 @@ bool CMotionAnt::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("data/models/ant2.mod"); + pModFile->ReadModel(m_app->GetDataFilePath(DIR_MODEL, "ant2.mod")); pModFile->CreateEngineObject(rank); m_object->SetPosition(1, Math::Vector(2.0f, 0.0f, 0.0f)); @@ -107,7 +108,7 @@ bool CMotionAnt::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("data/models/ant3.mod"); + pModFile->ReadModel(m_app->GetDataFilePath(DIR_MODEL, "ant3.mod")); pModFile->CreateEngineObject(rank); m_object->SetPosition(2, Math::Vector(-1.0f, 0.0f, 0.0f)); @@ -116,7 +117,7 @@ bool CMotionAnt::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("data/models/ant4.mod"); + pModFile->ReadModel(m_app->GetDataFilePath(DIR_MODEL, "ant4.mod")); pModFile->CreateEngineObject(rank); m_object->SetPosition(3, Math::Vector(-0.4f, -0.1f, -0.3f)); @@ -125,7 +126,7 @@ bool CMotionAnt::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, 3); - pModFile->ReadModel("data/models/ant5.mod"); + pModFile->ReadModel(m_app->GetDataFilePath(DIR_MODEL, "ant5.mod")); pModFile->CreateEngineObject(rank); m_object->SetPosition(4, Math::Vector(0.0f, 0.0f, -1.0f)); @@ -134,7 +135,7 @@ bool CMotionAnt::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("data/models/ant6.mod"); + pModFile->ReadModel(m_app->GetDataFilePath(DIR_MODEL, "ant6.mod")); pModFile->CreateEngineObject(rank); m_object->SetPosition(5, Math::Vector(0.0f, 0.0f, -2.0f)); @@ -143,7 +144,7 @@ bool CMotionAnt::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, 0); - pModFile->ReadModel("data/models/ant4.mod"); + pModFile->ReadModel(m_app->GetDataFilePath(DIR_MODEL, "ant4.mod")); pModFile->CreateEngineObject(rank); m_object->SetPosition(6, Math::Vector(0.1f, -0.1f, -0.4f)); @@ -152,7 +153,7 @@ bool CMotionAnt::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, 6); - pModFile->ReadModel("data/models/ant5.mod"); + pModFile->ReadModel(m_app->GetDataFilePath(DIR_MODEL, "ant5.mod")); pModFile->CreateEngineObject(rank); m_object->SetPosition(7, Math::Vector(0.0f, 0.0f, -1.0f)); @@ -161,7 +162,7 @@ bool CMotionAnt::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("data/models/ant6.mod"); + pModFile->ReadModel(m_app->GetDataFilePath(DIR_MODEL, "ant6.mod")); pModFile->CreateEngineObject(rank); m_object->SetPosition(8, Math::Vector(0.0f, 0.0f, -2.0f)); @@ -170,7 +171,7 @@ bool CMotionAnt::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, 0); - pModFile->ReadModel("data/models/ant4.mod"); + pModFile->ReadModel(m_app->GetDataFilePath(DIR_MODEL, "ant4.mod")); pModFile->CreateEngineObject(rank); m_object->SetPosition(9, Math::Vector(1.4f, -0.1f, -0.6f)); @@ -179,7 +180,7 @@ bool CMotionAnt::Create(Math::Vector pos, float angle, ObjectType type, m_engine->SetObjectType(rank,Gfx::ENG_OBJTYPE_DESCENDANT); m_object->SetObjectRank(10, rank); m_object->SetObjectParent(10, 9); - pModFile->ReadModel("data/models/ant5.mod"); + pModFile->ReadModel(m_app->GetDataFilePath(DIR_MODEL, "ant5.mod")); pModFile->CreateEngineObject(rank); m_object->SetPosition(10, Math::Vector(0.0f, 0.0f, -1.0f)); @@ -188,7 +189,7 @@ bool CMotionAnt::Create(Math::Vector pos, float angle, ObjectType type, m_engine->SetObjectType(rank,Gfx::ENG_OBJTYPE_DESCENDANT); m_object->SetObjectRank(11, rank); m_object->SetObjectParent(11, 10); - pModFile->ReadModel("data/models/ant6.mod"); + pModFile->ReadModel(m_app->GetDataFilePath(DIR_MODEL, "ant6.mod")); pModFile->CreateEngineObject(rank); m_object->SetPosition(11, Math::Vector(0.0f, 0.0f, -2.0f)); @@ -197,7 +198,7 @@ bool CMotionAnt::Create(Math::Vector pos, float angle, ObjectType type, m_engine->SetObjectType(rank,Gfx::ENG_OBJTYPE_DESCENDANT); m_object->SetObjectRank(12, rank); m_object->SetObjectParent(12, 0); - pModFile->ReadModel("data/models/ant4.mod"); + pModFile->ReadModel(m_app->GetDataFilePath(DIR_MODEL, "ant4.mod")); pModFile->Mirror(); pModFile->CreateEngineObject(rank); m_object->SetPosition(12, Math::Vector(-0.4f, -0.1f, 0.3f)); @@ -207,7 +208,7 @@ bool CMotionAnt::Create(Math::Vector pos, float angle, ObjectType type, m_engine->SetObjectType(rank,Gfx::ENG_OBJTYPE_DESCENDANT); m_object->SetObjectRank(13, rank); m_object->SetObjectParent(13, 12); - pModFile->ReadModel("data/models/ant5.mod"); + pModFile->ReadModel(m_app->GetDataFilePath(DIR_MODEL, "ant5.mod")); pModFile->Mirror(); pModFile->CreateEngineObject(rank); m_object->SetPosition(13, Math::Vector(0.0f, 0.0f, 1.0f)); @@ -217,7 +218,7 @@ bool CMotionAnt::Create(Math::Vector pos, float angle, ObjectType type, m_engine->SetObjectType(rank,Gfx::ENG_OBJTYPE_DESCENDANT); m_object->SetObjectRank(14, rank); m_object->SetObjectParent(14, 13); - pModFile->ReadModel("data/models/ant6.mod"); + pModFile->ReadModel(m_app->GetDataFilePath(DIR_MODEL, "ant6.mod")); pModFile->Mirror(); pModFile->CreateEngineObject(rank); m_object->SetPosition(14, Math::Vector(0.0f, 0.0f, 2.0f)); @@ -227,7 +228,7 @@ bool CMotionAnt::Create(Math::Vector pos, float angle, ObjectType type, m_engine->SetObjectType(rank,Gfx::ENG_OBJTYPE_DESCENDANT); m_object->SetObjectRank(15, rank); m_object->SetObjectParent(15, 0); - pModFile->ReadModel("data/models/ant4.mod"); + pModFile->ReadModel(m_app->GetDataFilePath(DIR_MODEL, "ant4.mod")); pModFile->Mirror(); pModFile->CreateEngineObject(rank); m_object->SetPosition(15, Math::Vector(0.1f, -0.1f, 0.4f)); @@ -237,7 +238,7 @@ bool CMotionAnt::Create(Math::Vector pos, float angle, ObjectType type, m_engine->SetObjectType(rank,Gfx::ENG_OBJTYPE_DESCENDANT); m_object->SetObjectRank(16, rank); m_object->SetObjectParent(16, 15); - pModFile->ReadModel("data/models/ant5.mod"); + pModFile->ReadModel(m_app->GetDataFilePath(DIR_MODEL, "ant5.mod")); pModFile->Mirror(); pModFile->CreateEngineObject(rank); m_object->SetPosition(16, Math::Vector(0.0f, 0.0f, 1.0f)); @@ -247,7 +248,7 @@ bool CMotionAnt::Create(Math::Vector pos, float angle, ObjectType type, m_engine->SetObjectType(rank,Gfx::ENG_OBJTYPE_DESCENDANT); m_object->SetObjectRank(17, rank); m_object->SetObjectParent(17, 16); - pModFile->ReadModel("data/models/ant6.mod"); + pModFile->ReadModel(m_app->GetDataFilePath(DIR_MODEL, "ant6.mod")); pModFile->Mirror(); pModFile->CreateEngineObject(rank); m_object->SetPosition(17, Math::Vector(0.0f, 0.0f, 2.0f)); @@ -257,7 +258,7 @@ bool CMotionAnt::Create(Math::Vector pos, float angle, ObjectType type, m_engine->SetObjectType(rank,Gfx::ENG_OBJTYPE_DESCENDANT); m_object->SetObjectRank(18, rank); m_object->SetObjectParent(18, 0); - pModFile->ReadModel("data/models/ant4.mod"); + pModFile->ReadModel(m_app->GetDataFilePath(DIR_MODEL, "ant4.mod")); pModFile->Mirror(); pModFile->CreateEngineObject(rank); m_object->SetPosition(18, Math::Vector(1.4f, -0.1f, 0.6f)); @@ -267,7 +268,7 @@ bool CMotionAnt::Create(Math::Vector pos, float angle, ObjectType type, m_engine->SetObjectType(rank,Gfx::ENG_OBJTYPE_DESCENDANT); m_object->SetObjectRank(19, rank); m_object->SetObjectParent(19, 18); - pModFile->ReadModel("data/models/ant5.mod"); + pModFile->ReadModel(m_app->GetDataFilePath(DIR_MODEL, "ant5.mod")); pModFile->Mirror(); pModFile->CreateEngineObject(rank); m_object->SetPosition(19, Math::Vector(0.0f, 0.0f, 1.0f)); @@ -277,7 +278,7 @@ bool CMotionAnt::Create(Math::Vector pos, float angle, ObjectType type, m_engine->SetObjectType(rank,Gfx::ENG_OBJTYPE_DESCENDANT); m_object->SetObjectRank(20, rank); m_object->SetObjectParent(20, 19); - pModFile->ReadModel("data/models/ant6.mod"); + pModFile->ReadModel(m_app->GetDataFilePath(DIR_MODEL, "ant6.mod")); pModFile->Mirror(); pModFile->CreateEngineObject(rank); m_object->SetPosition(20, Math::Vector(0.0f, 0.0f, 2.0f)); diff --git a/src/object/motion/motionbee.cpp b/src/object/motion/motionbee.cpp index 026be7a..a3421b8 100644 --- a/src/object/motion/motionbee.cpp +++ b/src/object/motion/motionbee.cpp @@ -14,17 +14,18 @@ // * You should have received a copy of the GNU General Public License // * along with this program. If not, see http://www.gnu.org/licenses/. -// motionbee.cpp - - -#include <stdio.h> #include "object/motion/motionbee.h" +#include "app/app.h" + #include "graphics/engine/modelfile.h" + #include "physics/physics.h" +#include <stdio.h> + #define ADJUST_ANGLE false // true -> adjusts the angles of the members const float START_TIME = 1000.0f; // beginning of the relative time @@ -80,7 +81,7 @@ bool CMotionBee::Create(Math::Vector pos, float angle, ObjectType type, m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_VEHICULE); // this is a moving object m_object->SetObjectRank(0, rank); - pModFile->ReadModel("data/models/bee1.mod"); + pModFile->ReadModel(m_app->GetDataFilePath(DIR_MODEL, "bee1.mod")); pModFile->CreateEngineObject(rank); m_object->SetPosition(0, pos); @@ -96,7 +97,7 @@ bool CMotionBee::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("data/models/bee2.mod"); + pModFile->ReadModel(m_app->GetDataFilePath(DIR_MODEL, "bee2.mod")); pModFile->CreateEngineObject(rank); m_object->SetPosition(1, Math::Vector(1.6f, 0.3f, 0.0f)); @@ -105,7 +106,7 @@ bool CMotionBee::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("data/models/bee3.mod"); + pModFile->ReadModel(m_app->GetDataFilePath(DIR_MODEL, "bee3.mod")); pModFile->CreateEngineObject(rank); m_object->SetPosition(2, Math::Vector(-0.8f, 0.0f, 0.0f)); @@ -114,7 +115,7 @@ bool CMotionBee::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("data/models/ant4.mod"); + pModFile->ReadModel(m_app->GetDataFilePath(DIR_MODEL, "ant4.mod")); pModFile->CreateEngineObject(rank); m_object->SetPosition(3, Math::Vector(-0.3f, -0.1f, -0.2f)); @@ -123,7 +124,7 @@ bool CMotionBee::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, 3); - pModFile->ReadModel("data/models/ant5.mod"); + pModFile->ReadModel(m_app->GetDataFilePath(DIR_MODEL, "ant5.mod")); pModFile->CreateEngineObject(rank); m_object->SetPosition(4, Math::Vector(0.0f, 0.0f, -1.0f)); @@ -132,7 +133,7 @@ bool CMotionBee::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("data/models/ant6.mod"); + pModFile->ReadModel(m_app->GetDataFilePath(DIR_MODEL, "ant6.mod")); pModFile->CreateEngineObject(rank); m_object->SetPosition(5, Math::Vector(0.0f, 0.0f, -2.0f)); @@ -141,7 +142,7 @@ bool CMotionBee::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, 0); - pModFile->ReadModel("data/models/ant4.mod"); + pModFile->ReadModel(m_app->GetDataFilePath(DIR_MODEL, "ant4.mod")); pModFile->CreateEngineObject(rank); m_object->SetPosition(6, Math::Vector(0.3f, -0.1f, -0.4f)); @@ -150,7 +151,7 @@ bool CMotionBee::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, 6); - pModFile->ReadModel("data/models/ant5.mod"); + pModFile->ReadModel(m_app->GetDataFilePath(DIR_MODEL, "ant5.mod")); pModFile->CreateEngineObject(rank); m_object->SetPosition(7, Math::Vector(0.0f, 0.0f, -1.0f)); @@ -159,7 +160,7 @@ bool CMotionBee::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("data/models/ant6.mod"); + pModFile->ReadModel(m_app->GetDataFilePath(DIR_MODEL, "ant6.mod")); pModFile->CreateEngineObject(rank); m_object->SetPosition(8, Math::Vector(0.0f, 0.0f, -2.0f)); @@ -168,7 +169,7 @@ bool CMotionBee::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, 0); - pModFile->ReadModel("data/models/ant4.mod"); + pModFile->ReadModel(m_app->GetDataFilePath(DIR_MODEL, "ant4.mod")); pModFile->CreateEngineObject(rank); m_object->SetPosition(9, Math::Vector(1.0f, -0.1f, -0.7f)); @@ -177,7 +178,7 @@ bool CMotionBee::Create(Math::Vector pos, float angle, ObjectType type, m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT); m_object->SetObjectRank(10, rank); m_object->SetObjectParent(10, 9); - pModFile->ReadModel("data/models/ant5.mod"); + pModFile->ReadModel(m_app->GetDataFilePath(DIR_MODEL, "ant5.mod")); pModFile->CreateEngineObject(rank); m_object->SetPosition(10, Math::Vector(0.0f, 0.0f, -1.0f)); @@ -186,7 +187,7 @@ bool CMotionBee::Create(Math::Vector pos, float angle, ObjectType type, m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT); m_object->SetObjectRank(11, rank); m_object->SetObjectParent(11, 10); - pModFile->ReadModel("data/models/ant6.mod"); + pModFile->ReadModel(m_app->GetDataFilePath(DIR_MODEL, "ant6.mod")); pModFile->CreateEngineObject(rank); m_object->SetPosition(11, Math::Vector(0.0f, 0.0f, -2.0f)); @@ -195,7 +196,7 @@ bool CMotionBee::Create(Math::Vector pos, float angle, ObjectType type, m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT); m_object->SetObjectRank(12, rank); m_object->SetObjectParent(12, 0); - pModFile->ReadModel("data/models/ant4.mod"); + pModFile->ReadModel(m_app->GetDataFilePath(DIR_MODEL, "ant4.mod")); pModFile->CreateEngineObject(rank); m_object->SetPosition(12, Math::Vector(-0.3f, -0.1f, 0.2f)); m_object->SetAngleY(12, Math::PI); @@ -205,7 +206,7 @@ bool CMotionBee::Create(Math::Vector pos, float angle, ObjectType type, m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT); m_object->SetObjectRank(13, rank); m_object->SetObjectParent(13, 12); - pModFile->ReadModel("data/models/ant5.mod"); + pModFile->ReadModel(m_app->GetDataFilePath(DIR_MODEL, "ant5.mod")); pModFile->CreateEngineObject(rank); m_object->SetPosition(13, Math::Vector(0.0f, 0.0f, -1.0f)); @@ -214,7 +215,7 @@ bool CMotionBee::Create(Math::Vector pos, float angle, ObjectType type, m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT); m_object->SetObjectRank(14, rank); m_object->SetObjectParent(14, 13); - pModFile->ReadModel("data/models/ant6.mod"); + pModFile->ReadModel(m_app->GetDataFilePath(DIR_MODEL, "ant6.mod")); pModFile->CreateEngineObject(rank); m_object->SetPosition(14, Math::Vector(0.0f, 0.0f, -2.0f)); @@ -223,7 +224,7 @@ bool CMotionBee::Create(Math::Vector pos, float angle, ObjectType type, m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT); m_object->SetObjectRank(15, rank); m_object->SetObjectParent(15, 0); - pModFile->ReadModel("data/models/ant4.mod"); + pModFile->ReadModel(m_app->GetDataFilePath(DIR_MODEL, "ant4.mod")); pModFile->CreateEngineObject(rank); m_object->SetPosition(15, Math::Vector(0.3f, -0.1f, 0.4f)); m_object->SetAngleY(15, Math::PI); @@ -233,7 +234,7 @@ bool CMotionBee::Create(Math::Vector pos, float angle, ObjectType type, m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT); m_object->SetObjectRank(16, rank); m_object->SetObjectParent(16, 15); - pModFile->ReadModel("data/models/ant5.mod"); + pModFile->ReadModel(m_app->GetDataFilePath(DIR_MODEL, "ant5.mod")); pModFile->CreateEngineObject(rank); m_object->SetPosition(16, Math::Vector(0.0f, 0.0f, -1.0f)); @@ -242,7 +243,7 @@ bool CMotionBee::Create(Math::Vector pos, float angle, ObjectType type, m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT); m_object->SetObjectRank(17, rank); m_object->SetObjectParent(17, 16); - pModFile->ReadModel("data/models/ant6.mod"); + pModFile->ReadModel(m_app->GetDataFilePath(DIR_MODEL, "ant6.mod")); pModFile->CreateEngineObject(rank); m_object->SetPosition(17, Math::Vector(0.0f, 0.0f, -2.0f)); @@ -251,7 +252,7 @@ bool CMotionBee::Create(Math::Vector pos, float angle, ObjectType type, m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT); m_object->SetObjectRank(18, rank); m_object->SetObjectParent(18, 0); - pModFile->ReadModel("data/models/ant4.mod"); + pModFile->ReadModel(m_app->GetDataFilePath(DIR_MODEL, "ant4.mod")); pModFile->CreateEngineObject(rank); m_object->SetPosition(18, Math::Vector(1.0f, -0.1f, 0.7f)); m_object->SetAngleY(18, Math::PI); @@ -261,7 +262,7 @@ bool CMotionBee::Create(Math::Vector pos, float angle, ObjectType type, m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT); m_object->SetObjectRank(19, rank); m_object->SetObjectParent(19, 18); - pModFile->ReadModel("data/models/ant5.mod"); + pModFile->ReadModel(m_app->GetDataFilePath(DIR_MODEL, "ant5.mod")); pModFile->CreateEngineObject(rank); m_object->SetPosition(19, Math::Vector(0.0f, 0.0f, -1.0f)); @@ -270,7 +271,7 @@ bool CMotionBee::Create(Math::Vector pos, float angle, ObjectType type, m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT); m_object->SetObjectRank(20, rank); m_object->SetObjectParent(20, 19); - pModFile->ReadModel("data/models/ant6.mod"); + pModFile->ReadModel(m_app->GetDataFilePath(DIR_MODEL, "ant6.mod")); pModFile->CreateEngineObject(rank); m_object->SetPosition(20, Math::Vector(0.0f, 0.0f, -2.0f)); @@ -279,7 +280,7 @@ bool CMotionBee::Create(Math::Vector pos, float angle, ObjectType type, m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT); m_object->SetObjectRank(21, rank); m_object->SetObjectParent(21, 0); - pModFile->ReadModel("data/models/bee7.mod"); + pModFile->ReadModel(m_app->GetDataFilePath(DIR_MODEL, "bee7.mod")); pModFile->CreateEngineObject(rank); m_object->SetPosition(21, Math::Vector(0.8f, 0.4f, -0.5f)); @@ -288,7 +289,7 @@ bool CMotionBee::Create(Math::Vector pos, float angle, ObjectType type, m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT); m_object->SetObjectRank(22, rank); m_object->SetObjectParent(22, 0); - pModFile->ReadModel("data/models/bee7.mod"); + pModFile->ReadModel(m_app->GetDataFilePath(DIR_MODEL, "bee7.mod")); pModFile->Mirror(); pModFile->CreateEngineObject(rank); m_object->SetPosition(22, Math::Vector(0.8f, 0.4f, 0.5f)); diff --git a/src/object/motion/motionhuman.cpp b/src/object/motion/motionhuman.cpp index 6d849d7..a9b79b5 100644 --- a/src/object/motion/motionhuman.cpp +++ b/src/object/motion/motionhuman.cpp @@ -14,21 +14,25 @@ // * You should have received a copy of the GNU General Public License // * along with this program. If not, see http://www.gnu.org/licenses/. -// motionhuman.cpp - - -#include <stdio.h> #include "object/motion/motionhuman.h" +#include "app/app.h" + #include "graphics/engine/modelfile.h" #include "graphics/engine/terrain.h" #include "graphics/engine/water.h" + #include "math/geometry.h" + #include "object/robotmain.h" + #include "physics/physics.h" +#include <stdio.h> + + #define ADJUST_ANGLE false // true -> adjusts the angles of the members const int ADJUST_ACTION = (3*3*3*3*MH_SPEC+3*3*3*MHS_SATCOM); @@ -99,18 +103,22 @@ bool CMotionHuman::Create(Math::Vector pos, float angle, ObjectType type, // if ( m_engine->GetRestCreate() < 16 ) return false; + pModFile = new Gfx::CModelFile(m_iMan); m_object->SetType(type); option = m_object->GetOption(); + std::string baseName; + if ( m_main->GetGamerOnlyHead() ) { rank = m_engine->CreateObject(); m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_VEHICULE); // this is a moving object m_object->SetObjectRank(0, rank); face = m_main->GetGamerFace(); - sprintf(filename, "data/models/human2h%d.mod", face+1); + baseName = m_app->GetDataFilePath(DIR_MODEL, "human2h%d.mod"); + sprintf(filename, baseName.c_str(), face+1); pModFile->ReadModel(filename); pModFile->CreateEngineObject(rank); @@ -121,7 +129,8 @@ bool CMotionHuman::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); - sprintf(filename, "data/models/human2g%d.mod", glasses); + baseName = m_app->GetDataFilePath(DIR_MODEL, "human2g%d.mod"); + sprintf(filename, baseName.c_str(), glasses); pModFile->ReadModel(filename); pModFile->CreateEngineObject(rank); } @@ -142,15 +151,15 @@ bool CMotionHuman::Create(Math::Vector pos, float angle, ObjectType type, if ( option == 0 ) // head in helmet? { - pModFile->ReadModel("data/models/human1c.mod"); + pModFile->ReadModel(m_app->GetDataFilePath(DIR_MODEL, "human1c.mod")); } if ( option == 1 ) // head without helmet? { - pModFile->ReadModel("data/models/human1h.mod"); + pModFile->ReadModel(m_app->GetDataFilePath(DIR_MODEL, "human1h.mod")); } if ( option == 2 ) // without a backpack? { - pModFile->ReadModel("data/models/human1v.mod"); + pModFile->ReadModel(m_app->GetDataFilePath(DIR_MODEL, "human1v.mod")); } pModFile->CreateEngineObject(rank); @@ -172,20 +181,22 @@ bool CMotionHuman::Create(Math::Vector pos, float angle, ObjectType type, if ( option == 0 ) // head in helmet? { face = m_main->GetGamerFace(); - sprintf(filename, "data/models/human2c%d.mod", face+1); + baseName = m_app->GetDataFilePath(DIR_MODEL, "human2c%d.mod"); + sprintf(filename, baseName.c_str(), face+1); pModFile->ReadModel(filename); } if ( option == 1 || // head without helmet? option == 2 ) // without a backpack? { face = m_main->GetGamerFace(); - sprintf(filename, "data/models/human2h%d.mod", face+1); + baseName = m_app->GetDataFilePath(DIR_MODEL, "human2h%d.mod"); + sprintf(filename, baseName.c_str(), face+1); pModFile->ReadModel(filename); } } if ( type == OBJECT_TECH ) { - pModFile->ReadModel("data/models/human2t.mod"); + pModFile->ReadModel(m_app->GetDataFilePath(DIR_MODEL, "human2t.mod")); } pModFile->CreateEngineObject(rank); m_object->SetPosition(1, Math::Vector(0.0f, 2.7f, 0.0f)); @@ -203,7 +214,8 @@ bool CMotionHuman::Create(Math::Vector pos, float angle, ObjectType type, m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT); m_object->SetObjectRank(15, rank); m_object->SetObjectParent(15, 1); - sprintf(filename, "data/models/human2g%d.mod", glasses); + baseName = m_app->GetDataFilePath(DIR_MODEL, "human2g%d.mod"); + sprintf(filename, baseName.c_str(), glasses); pModFile->ReadModel(filename); pModFile->CreateEngineObject(rank); } @@ -213,7 +225,7 @@ bool CMotionHuman::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("data/models/human3.mod"); + pModFile->ReadModel(m_app->GetDataFilePath(DIR_MODEL, "human3.mod")); pModFile->CreateEngineObject(rank); m_object->SetPosition(2, Math::Vector(0.0f, 2.3f, -1.2f)); m_object->SetAngle(2, Math::Vector(90.0f*Math::PI/180.0f, 90.0f*Math::PI/180.0f, -50.0f*Math::PI/180.0f)); @@ -223,7 +235,7 @@ bool CMotionHuman::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, 2); - pModFile->ReadModel("data/models/human4r.mod"); + pModFile->ReadModel(m_app->GetDataFilePath(DIR_MODEL, "human4r.mod")); pModFile->CreateEngineObject(rank); m_object->SetPosition(3, Math::Vector(1.3f, 0.0f, 0.0f)); m_object->SetAngle(3, Math::Vector(0.0f*Math::PI/180.0f, -20.0f*Math::PI/180.0f, 0.0f*Math::PI/180.0f)); @@ -233,7 +245,7 @@ bool CMotionHuman::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, 3); - pModFile->ReadModel("data/models/human5.mod"); + pModFile->ReadModel(m_app->GetDataFilePath(DIR_MODEL, "human5.mod")); pModFile->CreateEngineObject(rank); m_object->SetPosition(4, Math::Vector(1.2f, 0.0f, 0.0f)); @@ -242,7 +254,7 @@ bool CMotionHuman::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, 0); - pModFile->ReadModel("data/models/human6.mod"); + pModFile->ReadModel(m_app->GetDataFilePath(DIR_MODEL, "human6.mod")); pModFile->CreateEngineObject(rank); m_object->SetPosition(5, Math::Vector(0.0f, 0.0f, -0.7f)); m_object->SetAngle(5, Math::Vector(10.0f*Math::PI/180.0f, 0.0f*Math::PI/180.0f, 5.0f*Math::PI/180.0f)); @@ -252,7 +264,7 @@ bool CMotionHuman::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("data/models/human7.mod"); + pModFile->ReadModel(m_app->GetDataFilePath(DIR_MODEL, "human7.mod")); pModFile->CreateEngineObject(rank); m_object->SetPosition(6, Math::Vector(0.0f, -1.5f, 0.0f)); m_object->SetAngle(6, Math::Vector(0.0f*Math::PI/180.0f, 0.0f*Math::PI/180.0f, -10.0f*Math::PI/180.0f)); @@ -262,7 +274,7 @@ bool CMotionHuman::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, 6); - pModFile->ReadModel("data/models/human8.mod"); + pModFile->ReadModel(m_app->GetDataFilePath(DIR_MODEL, "human8.mod")); pModFile->CreateEngineObject(rank); m_object->SetPosition(7, Math::Vector(0.0f, -1.5f, 0.0f)); m_object->SetAngle(7, Math::Vector(-10.0f*Math::PI/180.0f, 5.0f*Math::PI/180.0f, 5.0f*Math::PI/180.0f)); @@ -272,7 +284,7 @@ bool CMotionHuman::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, 0); - pModFile->ReadModel("data/models/human3.mod"); + pModFile->ReadModel(m_app->GetDataFilePath(DIR_MODEL, "human3.mod")); pModFile->Mirror(); pModFile->CreateEngineObject(rank); m_object->SetPosition(8, Math::Vector(0.0f, 2.3f, 1.2f)); @@ -283,7 +295,7 @@ bool CMotionHuman::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("data/models/human4l.mod"); + pModFile->ReadModel(m_app->GetDataFilePath(DIR_MODEL, "human4l.mod")); pModFile->Mirror(); pModFile->CreateEngineObject(rank); m_object->SetPosition(9, Math::Vector(1.3f, 0.0f, 0.0f)); @@ -294,7 +306,7 @@ bool CMotionHuman::Create(Math::Vector pos, float angle, ObjectType type, m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT); m_object->SetObjectRank(10, rank); m_object->SetObjectParent(10, 9); - pModFile->ReadModel("data/models/human5.mod"); + pModFile->ReadModel(m_app->GetDataFilePath(DIR_MODEL, "human5.mod")); pModFile->Mirror(); pModFile->CreateEngineObject(rank); m_object->SetPosition(10, Math::Vector(1.2f, 0.0f, 0.0f)); @@ -304,7 +316,7 @@ bool CMotionHuman::Create(Math::Vector pos, float angle, ObjectType type, m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT); m_object->SetObjectRank(11, rank); m_object->SetObjectParent(11, 0); - pModFile->ReadModel("data/models/human6.mod"); + pModFile->ReadModel(m_app->GetDataFilePath(DIR_MODEL, "human6.mod")); pModFile->Mirror(); pModFile->CreateEngineObject(rank); m_object->SetPosition(11, Math::Vector(0.0f, 0.0f, 0.7f)); @@ -315,7 +327,7 @@ bool CMotionHuman::Create(Math::Vector pos, float angle, ObjectType type, m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT); m_object->SetObjectRank(12, rank); m_object->SetObjectParent(12, 11); - pModFile->ReadModel("data/models/human7.mod"); + pModFile->ReadModel(m_app->GetDataFilePath(DIR_MODEL, "human7.mod")); pModFile->Mirror(); pModFile->CreateEngineObject(rank); m_object->SetPosition(12, Math::Vector(0.0f, -1.5f, 0.0f)); @@ -326,7 +338,7 @@ bool CMotionHuman::Create(Math::Vector pos, float angle, ObjectType type, m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT); m_object->SetObjectRank(13, rank); m_object->SetObjectParent(13, 12); - pModFile->ReadModel("data/models/human8.mod"); + pModFile->ReadModel(m_app->GetDataFilePath(DIR_MODEL, "human8.mod")); pModFile->Mirror(); pModFile->CreateEngineObject(rank); m_object->SetPosition(13, Math::Vector(0.0f, -1.5f, 0.0f)); @@ -339,7 +351,7 @@ bool CMotionHuman::Create(Math::Vector pos, float angle, ObjectType type, m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT); m_object->SetObjectRank(14, rank); m_object->SetObjectParent(14, 0); - pModFile->ReadModel("data/models/human9.mod"); + pModFile->ReadModel(m_app->GetDataFilePath(DIR_MODEL, "human9.mod")); pModFile->CreateEngineObject(rank); m_object->SetPosition(14, Math::Vector(-1.5f, 0.3f, -1.35f)); m_object->SetAngleZ(14, Math::PI); diff --git a/src/object/motion/motionmother.cpp b/src/object/motion/motionmother.cpp index 9f02e31..8ea77a5 100644 --- a/src/object/motion/motionmother.cpp +++ b/src/object/motion/motionmother.cpp @@ -14,17 +14,18 @@ // * You should have received a copy of the GNU General Public License // * along with this program. If not, see http://www.gnu.org/licenses/. -// motionmother.cpp - - -#include <stdio.h> #include "object/motion/motionmother.h" +#include "app/app.h" + #include "graphics/engine/modelfile.h" + #include "physics/physics.h" +#include <stdio.h> + #define ADJUST_ANGLE false // true -> adjusts the angles of the members const float START_TIME = 1000.0f; // beginning of the relative time @@ -81,7 +82,7 @@ bool CMotionMother::Create(Math::Vector pos, float angle, ObjectType type, m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_VEHICULE); // this is a moving object m_object->SetObjectRank(0, rank); - pModFile->ReadModel("data/models/mother1.mod"); + pModFile->ReadModel(m_app->GetDataFilePath(DIR_MODEL, "mother1.mod")); pModFile->CreateEngineObject(rank); m_object->SetPosition(0, pos); @@ -97,7 +98,7 @@ bool CMotionMother::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("data/models/mother2.mod"); + pModFile->ReadModel(m_app->GetDataFilePath(DIR_MODEL, "mother2.mod")); pModFile->CreateEngineObject(rank); m_object->SetPosition(1, Math::Vector(16.0f, 3.0f, 0.0f)); @@ -106,7 +107,7 @@ bool CMotionMother::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("data/models/mother3.mod"); + pModFile->ReadModel(m_app->GetDataFilePath(DIR_MODEL, "mother3.mod")); pModFile->CreateEngineObject(rank); m_object->SetPosition(2, Math::Vector(-5.0f, -1.0f, -12.0f)); @@ -115,7 +116,7 @@ bool CMotionMother::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, 2); - pModFile->ReadModel("data/models/mother4.mod"); + pModFile->ReadModel(m_app->GetDataFilePath(DIR_MODEL, "mother4.mod")); pModFile->CreateEngineObject(rank); m_object->SetPosition(3, Math::Vector(0.0f, 0.0f, -8.5f)); @@ -124,7 +125,7 @@ bool CMotionMother::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("data/models/mother3.mod"); + pModFile->ReadModel(m_app->GetDataFilePath(DIR_MODEL, "mother3.mod")); pModFile->CreateEngineObject(rank); m_object->SetPosition(4, Math::Vector(3.5f, -1.0f, -12.0f)); @@ -133,7 +134,7 @@ bool CMotionMother::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("data/models/mother4.mod"); + pModFile->ReadModel(m_app->GetDataFilePath(DIR_MODEL, "mother4.mod")); pModFile->CreateEngineObject(rank); m_object->SetPosition(5, Math::Vector(0.0f, 0.0f, -8.5f)); @@ -142,7 +143,7 @@ bool CMotionMother::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, 0); - pModFile->ReadModel("data/models/mother3.mod"); + pModFile->ReadModel(m_app->GetDataFilePath(DIR_MODEL, "mother3.mod")); pModFile->CreateEngineObject(rank); m_object->SetPosition(6, Math::Vector(10.0f, -1.0f, -10.0f)); @@ -151,7 +152,7 @@ bool CMotionMother::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, 6); - pModFile->ReadModel("data/models/mother4.mod"); + pModFile->ReadModel(m_app->GetDataFilePath(DIR_MODEL, "mother4.mod")); pModFile->CreateEngineObject(rank); m_object->SetPosition(7, Math::Vector(0.0f, 0.0f, -8.5f)); @@ -160,7 +161,7 @@ bool CMotionMother::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, 0); - pModFile->ReadModel("data/models/mother3.mod"); + pModFile->ReadModel(m_app->GetDataFilePath(DIR_MODEL, "mother3.mod")); pModFile->CreateEngineObject(rank); m_object->SetPosition(8, Math::Vector(-5.0f, -1.0f, 12.0f)); m_object->SetAngleY(8, Math::PI); @@ -170,7 +171,7 @@ bool CMotionMother::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("data/models/mother4.mod"); + pModFile->ReadModel(m_app->GetDataFilePath(DIR_MODEL, "mother4.mod")); pModFile->CreateEngineObject(rank); m_object->SetPosition(9, Math::Vector(0.0f, 0.0f, -8.5f)); @@ -179,7 +180,7 @@ bool CMotionMother::Create(Math::Vector pos, float angle, ObjectType type, m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT); m_object->SetObjectRank(10, rank); m_object->SetObjectParent(10, 0); - pModFile->ReadModel("data/models/mother3.mod"); + pModFile->ReadModel(m_app->GetDataFilePath(DIR_MODEL, "mother3.mod")); pModFile->CreateEngineObject(rank); m_object->SetPosition(10, Math::Vector(3.5f, -1.0f, 12.0f)); m_object->SetAngleY(10, Math::PI); @@ -189,7 +190,7 @@ bool CMotionMother::Create(Math::Vector pos, float angle, ObjectType type, m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT); m_object->SetObjectRank(11, rank); m_object->SetObjectParent(11, 10); - pModFile->ReadModel("data/models/mother4.mod"); + pModFile->ReadModel(m_app->GetDataFilePath(DIR_MODEL, "mother4.mod")); pModFile->CreateEngineObject(rank); m_object->SetPosition(11, Math::Vector(0.0f, 0.0f, -8.5f)); @@ -198,7 +199,7 @@ bool CMotionMother::Create(Math::Vector pos, float angle, ObjectType type, m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT); m_object->SetObjectRank(12, rank); m_object->SetObjectParent(12, 0); - pModFile->ReadModel("data/models/mother3.mod"); + pModFile->ReadModel(m_app->GetDataFilePath(DIR_MODEL, "mother3.mod")); pModFile->CreateEngineObject(rank); m_object->SetPosition(12, Math::Vector(10.0f, -1.0f, 10.0f)); m_object->SetAngleY(12, Math::PI); @@ -208,7 +209,7 @@ bool CMotionMother::Create(Math::Vector pos, float angle, ObjectType type, m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT); m_object->SetObjectRank(13, rank); m_object->SetObjectParent(13, 12); - pModFile->ReadModel("data/models/mother4.mod"); + pModFile->ReadModel(m_app->GetDataFilePath(DIR_MODEL, "mother4.mod")); pModFile->CreateEngineObject(rank); m_object->SetPosition(13, Math::Vector(0.0f, 0.0f, -8.5f)); @@ -217,7 +218,7 @@ bool CMotionMother::Create(Math::Vector pos, float angle, ObjectType type, m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT); m_object->SetObjectRank(14, rank); m_object->SetObjectParent(14, 1); - pModFile->ReadModel("data/models/mother5.mod"); + pModFile->ReadModel(m_app->GetDataFilePath(DIR_MODEL, "mother5.mod")); pModFile->CreateEngineObject(rank); m_object->SetPosition(14, Math::Vector(6.0f, 1.0f, -2.5f)); @@ -225,7 +226,7 @@ bool CMotionMother::Create(Math::Vector pos, float angle, ObjectType type, m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT); m_object->SetObjectRank(15, rank); m_object->SetObjectParent(15, 14); - pModFile->ReadModel("data/models/mother6.mod"); + pModFile->ReadModel(m_app->GetDataFilePath(DIR_MODEL, "mother6.mod")); pModFile->CreateEngineObject(rank); m_object->SetPosition(15, Math::Vector(8.0f, 0.0f, 0.0f)); @@ -234,7 +235,7 @@ bool CMotionMother::Create(Math::Vector pos, float angle, ObjectType type, m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT); m_object->SetObjectRank(16, rank); m_object->SetObjectParent(16, 1); - pModFile->ReadModel("data/models/mother5.mod"); + pModFile->ReadModel(m_app->GetDataFilePath(DIR_MODEL, "mother5.mod")); pModFile->CreateEngineObject(rank); m_object->SetPosition(16, Math::Vector(6.0f, 1.0f, 2.5f)); @@ -242,7 +243,7 @@ bool CMotionMother::Create(Math::Vector pos, float angle, ObjectType type, m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT); m_object->SetObjectRank(17, rank); m_object->SetObjectParent(17, 16); - pModFile->ReadModel("data/models/mother6.mod"); + pModFile->ReadModel(m_app->GetDataFilePath(DIR_MODEL, "mother6.mod")); pModFile->CreateEngineObject(rank); m_object->SetPosition(17, Math::Vector(8.0f, 0.0f, 0.0f)); @@ -251,7 +252,7 @@ bool CMotionMother::Create(Math::Vector pos, float angle, ObjectType type, m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT); m_object->SetObjectRank(18, rank); m_object->SetObjectParent(18, 1); - pModFile->ReadModel("data/models/mother7.mod"); + pModFile->ReadModel(m_app->GetDataFilePath(DIR_MODEL, "mother7.mod")); pModFile->CreateEngineObject(rank); m_object->SetPosition(18, Math::Vector(-4.0f, -3.5f, -8.0f)); m_object->SetZoomX(18, 1.2f); @@ -261,7 +262,7 @@ bool CMotionMother::Create(Math::Vector pos, float angle, ObjectType type, m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT); m_object->SetObjectRank(19, rank); m_object->SetObjectParent(19, 1); - pModFile->ReadModel("data/models/mother7.mod"); + pModFile->ReadModel(m_app->GetDataFilePath(DIR_MODEL, "mother7.mod")); pModFile->Mirror(); pModFile->CreateEngineObject(rank); m_object->SetPosition(19, Math::Vector(-4.0f, -3.5f, 8.0f)); diff --git a/src/object/motion/motionspider.cpp b/src/object/motion/motionspider.cpp index 0c0996a..516ec6e 100644 --- a/src/object/motion/motionspider.cpp +++ b/src/object/motion/motionspider.cpp @@ -14,17 +14,18 @@ // * You should have received a copy of the GNU General Public License // * along with this program. If not, see http://www.gnu.org/licenses/. -// motionspider.cpp - - -#include <stdio.h> #include "object/motion/motionspider.h" +#include "app/app.h" + #include "graphics/engine/modelfile.h" #include "graphics/engine/particle.h" + #include "physics/physics.h" +#include <stdio.h> + #define ADJUST_ANGLE false // true -> adjusts the angles of the members @@ -72,6 +73,8 @@ bool CMotionSpider::Create(Math::Vector pos, float angle, ObjectType type, int rank, i, j, parent; char name[50]; + std::string baseName; + float table[] = { // x y z @@ -106,7 +109,7 @@ bool CMotionSpider::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("data/models/spider0.mod"); // doesn't exist + pModFile->ReadModel(m_app->GetDataFilePath(DIR_MODEL, "spider0.mod")); // doesn't exist pModFile->CreateEngineObject(rank); m_object->SetPosition(0, pos); m_object->SetAngleY(0, angle); @@ -121,7 +124,7 @@ bool CMotionSpider::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("data/models/spider1.mod"); + pModFile->ReadModel(m_app->GetDataFilePath(DIR_MODEL, "spider1.mod")); pModFile->CreateEngineObject(rank); m_object->SetPosition(1, Math::Vector(1.0f, 0.0f, 0.0f)); @@ -130,7 +133,7 @@ bool CMotionSpider::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("data/models/spider2.mod"); + pModFile->ReadModel(m_app->GetDataFilePath(DIR_MODEL, "spider2.mod")); pModFile->CreateEngineObject(rank); m_object->SetPosition(2, Math::Vector(1.0f, 0.0f, 0.0f)); @@ -139,7 +142,8 @@ bool CMotionSpider::Create(Math::Vector pos, float angle, ObjectType type, { for ( j=0 ; j<4 ; j++ ) { - sprintf(name, "data/models/spider%d.mod", j+3); // 3..6 + baseName = m_app->GetDataFilePath(DIR_MODEL, "spider%d.mod"); + sprintf(name, baseName.c_str(), j+3); // 3..6 // Creates the right leg. rank = m_engine->CreateObject(); @@ -177,7 +181,7 @@ bool CMotionSpider::Create(Math::Vector pos, float angle, ObjectType type, m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT); m_object->SetObjectRank(35, rank); m_object->SetObjectParent(35, 1); - pModFile->ReadModel("data/models/spider7.mod"); + pModFile->ReadModel(m_app->GetDataFilePath(DIR_MODEL, "spider7.mod")); pModFile->CreateEngineObject(rank); m_object->SetPosition(35, Math::Vector(0.0f, 0.0f, -0.3f)); @@ -186,7 +190,7 @@ bool CMotionSpider::Create(Math::Vector pos, float angle, ObjectType type, m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT); m_object->SetObjectRank(36, rank); m_object->SetObjectParent(36, 1); - pModFile->ReadModel("data/models/spider7.mod"); + pModFile->ReadModel(m_app->GetDataFilePath(DIR_MODEL, "spider7.mod")); pModFile->Mirror(); pModFile->CreateEngineObject(rank); m_object->SetPosition(36, Math::Vector(0.0f, 0.0f, 0.3f)); diff --git a/src/object/motion/motiontoto.cpp b/src/object/motion/motiontoto.cpp index 7068564..274f171 100644 --- a/src/object/motion/motiontoto.cpp +++ b/src/object/motion/motiontoto.cpp @@ -14,20 +14,23 @@ // * You should have received a copy of the GNU General Public License // * along with this program. If not, see http://www.gnu.org/licenses/. -// motiontoto.cpp - - -#include <stdio.h> #include "object/motion/motiontoto.h" +#include "app/app.h" + #include "math/geometry.h" + #include "graphics/engine/terrain.h" #include "graphics/engine/water.h" #include "graphics/engine/modelfile.h" + #include "object/robotmain.h" +#include <stdio.h> + + const float START_TIME = 1000.0f; // beginning of the relative time @@ -91,7 +94,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("data/models/toto1.mod"); + pModFile->ReadModel(m_app->GetDataFilePath(DIR_MODEL, "toto1.mod")); pModFile->CreateEngineObject(rank); m_object->SetPosition(0, pos); m_object->SetAngleY(0, angle); @@ -101,7 +104,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("data/models/toto2.mod"); + pModFile->ReadModel(m_app->GetDataFilePath(DIR_MODEL, "toto2.mod")); pModFile->CreateEngineObject(rank); m_object->SetPosition(1, Math::Vector(1.00f, 0.17f, 0.00f)); @@ -110,7 +113,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("data/models/toto3.mod"); + pModFile->ReadModel(m_app->GetDataFilePath(DIR_MODEL, "toto3.mod")); pModFile->Mirror(); pModFile->CreateEngineObject(rank); m_object->SetPosition(2, Math::Vector(0.85f, 1.04f, 0.25f)); @@ -121,7 +124,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("data/models/toto3.mod"); + pModFile->ReadModel(m_app->GetDataFilePath(DIR_MODEL, "toto3.mod")); pModFile->CreateEngineObject(rank); m_object->SetPosition(3, Math::Vector(0.85f, 1.04f, -0.25f)); m_object->SetAngleY(3, 20.0f*Math::PI/180.0f); @@ -131,7 +134,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("data/models/toto4.mod"); + pModFile->ReadModel(m_app->GetDataFilePath(DIR_MODEL, "toto4.mod")); pModFile->CreateEngineObject(rank); m_object->SetPosition(4, Math::Vector(0.0f, 1.9f, 0.3f)); m_object->SetAngleX(4, 30.0f*Math::PI/180.0f); @@ -140,7 +143,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("data/models/toto4.mod"); + pModFile->ReadModel(m_app->GetDataFilePath(DIR_MODEL, "toto4.mod")); pModFile->CreateEngineObject(rank); m_object->SetPosition(5, Math::Vector(0.0f, 0.67f, 0.0f)); m_object->SetAngleX(5, 30.0f*Math::PI/180.0f); @@ -149,7 +152,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("data/models/toto5.mod"); + pModFile->ReadModel(m_app->GetDataFilePath(DIR_MODEL, "toto5.mod")); pModFile->CreateEngineObject(rank); m_object->SetPosition(6, Math::Vector(0.0f, 0.70f, 0.0f)); m_object->SetAngleX(6, 30.0f*Math::PI/180.0f); @@ -159,7 +162,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("data/models/toto4.mod"); + pModFile->ReadModel(m_app->GetDataFilePath(DIR_MODEL, "toto4.mod")); pModFile->CreateEngineObject(rank); m_object->SetPosition(7, Math::Vector(0.0f, 1.9f, -0.3f)); m_object->SetAngleX(7, -30.0f*Math::PI/180.0f); @@ -168,7 +171,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("data/models/toto4.mod"); + pModFile->ReadModel(m_app->GetDataFilePath(DIR_MODEL, "toto4.mod")); pModFile->CreateEngineObject(rank); m_object->SetPosition(8, Math::Vector(0.0f, 0.67f, 0.0f)); m_object->SetAngleX(8, -30.0f*Math::PI/180.0f); @@ -177,7 +180,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("data/models/toto5.mod"); + pModFile->ReadModel(m_app->GetDataFilePath(DIR_MODEL, "toto5.mod")); pModFile->CreateEngineObject(rank); m_object->SetPosition(9, Math::Vector(0.0f, 0.70f, 0.0f)); m_object->SetAngleX(9, -30.0f*Math::PI/180.0f); diff --git a/src/object/motion/motionvehicle.cpp b/src/object/motion/motionvehicle.cpp index ff74f71..849d53e 100644 --- a/src/object/motion/motionvehicle.cpp +++ b/src/object/motion/motionvehicle.cpp @@ -14,16 +14,19 @@ // * You should have received a copy of the GNU General Public License // * along with this program. If not, see http://www.gnu.org/licenses/. -// motionvehicle.cpp - #include "object/motion/motionvehicle.h" +#include "app/app.h" + #include "graphics/engine/modelfile.h" #include "graphics/engine/particle.h" #include "graphics/engine/terrain.h" + #include "math/geometry.h" + #include "object/brain.h" + #include "physics/physics.h" #include <stdio.h> @@ -111,14 +114,14 @@ bool CMotionVehicle::Create(Math::Vector pos, float angle, ObjectType type, type == OBJECT_MOBILEfi || type == OBJECT_MOBILEfs ) { - pModFile->ReadModel("data/models/lem1f.mod"); + pModFile->ReadModel(m_app->GetDataFilePath(DIR_MODEL, "lem1f.mod")); } if ( type == OBJECT_MOBILEta || type == OBJECT_MOBILEtc || type == OBJECT_MOBILEti || type == OBJECT_MOBILEts ) { - pModFile->ReadModel("data/models/lem1t.mod"); + pModFile->ReadModel(m_app->GetDataFilePath(DIR_MODEL, "lem1t.mod")); } if ( type == OBJECT_MOBILEwa || type == OBJECT_MOBILEwc || @@ -127,11 +130,11 @@ bool CMotionVehicle::Create(Math::Vector pos, float angle, ObjectType type, { if ( m_object->GetTrainer() ) { - pModFile->ReadModel("data/models/lem1wt.mod"); + pModFile->ReadModel(m_app->GetDataFilePath(DIR_MODEL, "lem1wt.mod")); } else { - pModFile->ReadModel("data/models/lem1w.mod"); + pModFile->ReadModel(m_app->GetDataFilePath(DIR_MODEL, "lem1w.mod")); } } if ( type == OBJECT_MOBILEia || @@ -139,46 +142,46 @@ bool CMotionVehicle::Create(Math::Vector pos, float angle, ObjectType type, type == OBJECT_MOBILEii || type == OBJECT_MOBILEis ) { - pModFile->ReadModel("data/models/lem1i.mod"); + pModFile->ReadModel(m_app->GetDataFilePath(DIR_MODEL, "lem1i.mod")); } if ( type == OBJECT_MOBILErt || type == OBJECT_MOBILErc || type == OBJECT_MOBILErr || type == OBJECT_MOBILErs ) { - pModFile->ReadModel("data/models/roller1.mod"); + pModFile->ReadModel(m_app->GetDataFilePath(DIR_MODEL, "roller1.mod")); } if ( type == OBJECT_MOBILEsa ) { - pModFile->ReadModel("data/models/subm1.mod"); + pModFile->ReadModel(m_app->GetDataFilePath(DIR_MODEL, "subm1.mod")); } if ( type == OBJECT_MOBILEtg ) { - pModFile->ReadModel("data/models/target.mod"); + pModFile->ReadModel(m_app->GetDataFilePath(DIR_MODEL, "target.mod")); } if ( type == OBJECT_MOBILEwt ) { - pModFile->ReadModel("data/models/trainerw.mod"); + pModFile->ReadModel(m_app->GetDataFilePath(DIR_MODEL, "trainerw.mod")); } if ( type == OBJECT_MOBILEft ) { - pModFile->ReadModel("data/models/trainerf.mod"); + pModFile->ReadModel(m_app->GetDataFilePath(DIR_MODEL, "trainerf.mod")); } if ( type == OBJECT_MOBILEtt ) { - pModFile->ReadModel("data/models/trainert.mod"); + pModFile->ReadModel(m_app->GetDataFilePath(DIR_MODEL, "trainert.mod")); } if ( type == OBJECT_MOBILEit ) { - pModFile->ReadModel("data/models/traineri.mod"); + pModFile->ReadModel(m_app->GetDataFilePath(DIR_MODEL, "traineri.mod")); } if ( type == OBJECT_MOBILEdr ) { - pModFile->ReadModel("data/models/drawer1.mod"); + pModFile->ReadModel(m_app->GetDataFilePath(DIR_MODEL, "drawer1.mod")); } if ( type == OBJECT_APOLLO2 ) { - pModFile->ReadModel("data/models/apolloj1.mod"); + pModFile->ReadModel(m_app->GetDataFilePath(DIR_MODEL, "apolloj1.mod")); } pModFile->CreateEngineObject(rank); @@ -225,7 +228,7 @@ bool CMotionVehicle::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("data/models/lem2.mod"); + pModFile->ReadModel(m_app->GetDataFilePath(DIR_MODEL, "lem2.mod")); pModFile->CreateEngineObject(rank); m_object->SetPosition(1, Math::Vector(0.0f, 5.3f, 0.0f)); m_object->SetAngleZ(1, ARM_NEUTRAL_ANGLE1); @@ -235,7 +238,7 @@ bool CMotionVehicle::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, 1); - pModFile->ReadModel("data/models/lem3.mod"); + pModFile->ReadModel(m_app->GetDataFilePath(DIR_MODEL, "lem3.mod")); pModFile->CreateEngineObject(rank); m_object->SetPosition(2, Math::Vector(5.0f, 0.0f, 0.0f)); m_object->SetAngleZ(2, ARM_NEUTRAL_ANGLE2); @@ -245,7 +248,7 @@ bool CMotionVehicle::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, 2); - pModFile->ReadModel("data/models/lem4.mod"); + pModFile->ReadModel(m_app->GetDataFilePath(DIR_MODEL, "lem4.mod")); pModFile->CreateEngineObject(rank); m_object->SetPosition(3, Math::Vector(3.5f, 0.0f, 0.0f)); m_object->SetAngleZ(3, ARM_NEUTRAL_ANGLE3); @@ -256,7 +259,7 @@ bool CMotionVehicle::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, 3); - pModFile->ReadModel("data/models/lem5.mod"); + pModFile->ReadModel(m_app->GetDataFilePath(DIR_MODEL, "lem5.mod")); pModFile->CreateEngineObject(rank); m_object->SetPosition(4, Math::Vector(1.5f, 0.0f, 0.0f)); m_object->SetAngleZ(4, -Math::PI*0.10f); @@ -266,7 +269,7 @@ bool CMotionVehicle::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, 3); - pModFile->ReadModel("data/models/lem6.mod"); + pModFile->ReadModel(m_app->GetDataFilePath(DIR_MODEL, "lem6.mod")); pModFile->CreateEngineObject(rank); m_object->SetPosition(5, Math::Vector(1.5f, 0.0f, 0.0f)); m_object->SetAngleZ(5, Math::PI*0.10f); @@ -282,7 +285,7 @@ bool CMotionVehicle::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("data/models/lem2.mod"); + pModFile->ReadModel(m_app->GetDataFilePath(DIR_MODEL, "lem2.mod")); pModFile->CreateEngineObject(rank); m_object->SetPosition(1, Math::Vector(0.0f, 5.3f, 0.0f)); m_object->SetAngleZ(1, 110.0f*Math::PI/180.0f); @@ -292,7 +295,7 @@ bool CMotionVehicle::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, 1); - pModFile->ReadModel("data/models/lem3.mod"); + pModFile->ReadModel(m_app->GetDataFilePath(DIR_MODEL, "lem3.mod")); pModFile->CreateEngineObject(rank); m_object->SetPosition(2, Math::Vector(5.0f, 0.0f, 0.0f)); m_object->SetAngleZ(2, -110.0f*Math::PI/180.0f); @@ -302,7 +305,7 @@ bool CMotionVehicle::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, 2); - pModFile->ReadModel("data/models/lem4s.mod"); + pModFile->ReadModel(m_app->GetDataFilePath(DIR_MODEL, "lem4s.mod")); pModFile->CreateEngineObject(rank); m_object->SetPosition(3, Math::Vector(3.5f, 0.0f, 0.0f)); m_object->SetAngleZ(3, -65.0f*Math::PI/180.0f); @@ -318,7 +321,7 @@ bool CMotionVehicle::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("data/models/canon.mod"); + pModFile->ReadModel(m_app->GetDataFilePath(DIR_MODEL, "canon.mod")); pModFile->CreateEngineObject(rank); //? m_object->SetPosition(1, Math::Vector(0.0f, 5.3f, 0.0f)); m_object->SetPosition(1, Math::Vector(0.0f, 5.3f, 0.0f)); @@ -335,7 +338,7 @@ bool CMotionVehicle::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("data/models/canoni1.mod"); + pModFile->ReadModel(m_app->GetDataFilePath(DIR_MODEL, "canoni1.mod")); pModFile->CreateEngineObject(rank); m_object->SetPosition(1, Math::Vector(0.0f, 5.3f, 0.0f)); m_object->SetAngleZ(1, 0.0f); @@ -344,7 +347,7 @@ bool CMotionVehicle::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, 1); - pModFile->ReadModel("data/models/canoni2.mod"); + pModFile->ReadModel(m_app->GetDataFilePath(DIR_MODEL, "canoni2.mod")); pModFile->CreateEngineObject(rank); m_object->SetPosition(2, Math::Vector(0.0f, 2.5f, 0.0f)); m_object->SetAngleZ(2, 0.0f); @@ -361,7 +364,7 @@ bool CMotionVehicle::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, 0); - pModFile->ReadModel("data/models/lem2w.mod"); + pModFile->ReadModel(m_app->GetDataFilePath(DIR_MODEL, "lem2w.mod")); pModFile->CreateEngineObject(rank); m_object->SetPosition(6, Math::Vector(-3.0f, 1.0f, -3.0f)); @@ -370,7 +373,7 @@ bool CMotionVehicle::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("data/models/lem2w.mod"); + pModFile->ReadModel(m_app->GetDataFilePath(DIR_MODEL, "lem2w.mod")); pModFile->CreateEngineObject(rank); m_object->SetPosition(7, Math::Vector(-3.0f, 1.0f, 3.0f)); m_object->SetAngleY(7, Math::PI); @@ -380,7 +383,7 @@ bool CMotionVehicle::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, 0); - pModFile->ReadModel("data/models/lem2w.mod"); + pModFile->ReadModel(m_app->GetDataFilePath(DIR_MODEL, "lem2w.mod")); pModFile->CreateEngineObject(rank); m_object->SetPosition(8, Math::Vector(2.0f, 1.0f, -3.0f)); @@ -389,7 +392,7 @@ bool CMotionVehicle::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, 0); - pModFile->ReadModel("data/models/lem2w.mod"); + pModFile->ReadModel(m_app->GetDataFilePath(DIR_MODEL, "lem2w.mod")); pModFile->CreateEngineObject(rank); m_object->SetPosition(9, Math::Vector(2.0f, 1.0f, 3.0f)); m_object->SetAngleY(9, Math::PI); @@ -402,7 +405,7 @@ bool CMotionVehicle::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, 0); - pModFile->ReadModel("data/models/lem2w.mod"); + pModFile->ReadModel(m_app->GetDataFilePath(DIR_MODEL, "lem2w.mod")); pModFile->CreateEngineObject(rank); m_object->SetPosition(6, Math::Vector(-2.0f, 1.0f, -3.0f)); @@ -411,7 +414,7 @@ bool CMotionVehicle::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("data/models/lem2w.mod"); + pModFile->ReadModel(m_app->GetDataFilePath(DIR_MODEL, "lem2w.mod")); pModFile->CreateEngineObject(rank); m_object->SetPosition(7, Math::Vector(-2.0f, 1.0f, 3.0f)); m_object->SetAngleY(7, Math::PI); @@ -421,7 +424,7 @@ bool CMotionVehicle::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, 0); - pModFile->ReadModel("data/models/lem2w.mod"); + pModFile->ReadModel(m_app->GetDataFilePath(DIR_MODEL, "lem2w.mod")); pModFile->CreateEngineObject(rank); m_object->SetPosition(8, Math::Vector(3.0f, 1.0f, -3.0f)); @@ -430,7 +433,7 @@ bool CMotionVehicle::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, 0); - pModFile->ReadModel("data/models/lem2w.mod"); + pModFile->ReadModel(m_app->GetDataFilePath(DIR_MODEL, "lem2w.mod")); pModFile->CreateEngineObject(rank); m_object->SetPosition(9, Math::Vector(3.0f, 1.0f, 3.0f)); m_object->SetAngleY(9, Math::PI); @@ -446,7 +449,7 @@ bool CMotionVehicle::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, 0); - pModFile->ReadModel("data/models/lem2t.mod"); + pModFile->ReadModel(m_app->GetDataFilePath(DIR_MODEL, "lem2t.mod")); pModFile->CreateEngineObject(rank); m_object->SetPosition(6, Math::Vector(0.0f, 2.0f, -3.0f)); @@ -455,7 +458,7 @@ bool CMotionVehicle::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("data/models/lem3t.mod"); + pModFile->ReadModel(m_app->GetDataFilePath(DIR_MODEL, "lem3t.mod")); pModFile->CreateEngineObject(rank); m_object->SetPosition(7, Math::Vector(0.0f, 2.0f, 3.0f)); } @@ -470,7 +473,7 @@ bool CMotionVehicle::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, 0); - pModFile->ReadModel("data/models/roller2.mod"); + pModFile->ReadModel(m_app->GetDataFilePath(DIR_MODEL, "roller2.mod")); pModFile->CreateEngineObject(rank); m_object->SetPosition(6, Math::Vector(0.0f, 2.0f, -3.0f)); @@ -479,7 +482,7 @@ bool CMotionVehicle::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("data/models/roller3.mod"); + pModFile->ReadModel(m_app->GetDataFilePath(DIR_MODEL, "roller3.mod")); pModFile->CreateEngineObject(rank); m_object->SetPosition(7, Math::Vector(0.0f, 2.0f, 3.0f)); } @@ -491,7 +494,7 @@ bool CMotionVehicle::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, 0); - pModFile->ReadModel("data/models/subm4.mod"); + pModFile->ReadModel(m_app->GetDataFilePath(DIR_MODEL, "subm4.mod")); pModFile->CreateEngineObject(rank); m_object->SetPosition(6, Math::Vector(0.0f, 1.0f, -3.0f)); @@ -500,7 +503,7 @@ bool CMotionVehicle::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("data/models/subm5.mod"); + pModFile->ReadModel(m_app->GetDataFilePath(DIR_MODEL, "subm5.mod")); pModFile->CreateEngineObject(rank); m_object->SetPosition(7, Math::Vector(0.0f, 1.0f, 3.0f)); } @@ -512,7 +515,7 @@ bool CMotionVehicle::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, 0); - pModFile->ReadModel("data/models/drawer2.mod"); + pModFile->ReadModel(m_app->GetDataFilePath(DIR_MODEL, "drawer2.mod")); pModFile->CreateEngineObject(rank); m_object->SetPosition(6, Math::Vector(0.0f, 1.0f, -3.0f)); @@ -521,7 +524,7 @@ bool CMotionVehicle::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("data/models/drawer3.mod"); + pModFile->ReadModel(m_app->GetDataFilePath(DIR_MODEL, "drawer3.mod")); pModFile->CreateEngineObject(rank); m_object->SetPosition(7, Math::Vector(0.0f, 1.0f, 3.0f)); } @@ -537,7 +540,7 @@ bool CMotionVehicle::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, 0); - pModFile->ReadModel("data/models/lem2f.mod"); + pModFile->ReadModel(m_app->GetDataFilePath(DIR_MODEL, "lem2f.mod")); pModFile->CreateEngineObject(rank); m_object->SetPosition(6, Math::Vector(1.7f, 3.0f, 0.0f)); @@ -546,7 +549,7 @@ bool CMotionVehicle::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("data/models/lem2f.mod"); + pModFile->ReadModel(m_app->GetDataFilePath(DIR_MODEL, "lem2f.mod")); pModFile->CreateEngineObject(rank); m_object->SetPosition(7, Math::Vector(-1.8f, 3.0f, -1.5f)); m_object->SetAngleY(7, 120.0f*Math::PI/180.0f); @@ -556,7 +559,7 @@ bool CMotionVehicle::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, 0); - pModFile->ReadModel("data/models/lem2f.mod"); + pModFile->ReadModel(m_app->GetDataFilePath(DIR_MODEL, "lem2f.mod")); pModFile->CreateEngineObject(rank); m_object->SetPosition(8, Math::Vector(-1.8f, 3.0f, 1.5f)); m_object->SetAngleY(8, -120.0f*Math::PI/180.0f); @@ -587,7 +590,8 @@ bool CMotionVehicle::Create(Math::Vector pos, float angle, ObjectType type, { for ( j=0 ; j<3 ; j++ ) { - sprintf(name, "data/models/ant%d.mod", j+4); // 4..6 + std::string baseName = m_app->GetDataFilePath(DIR_MODEL, "ant%d.mod"); + sprintf(name, baseName.c_str(), j+4); // 4..6 // Creates the right leg. rank = m_engine->CreateObject(); @@ -628,7 +632,7 @@ bool CMotionVehicle::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("data/models/roller2t.mod"); + pModFile->ReadModel(m_app->GetDataFilePath(DIR_MODEL, "roller2t.mod")); pModFile->CreateEngineObject(rank); m_object->SetPosition(1, Math::Vector(0.0f, 0.0f, 0.0f)); m_object->SetAngleZ(1, 0.0f); @@ -638,7 +642,7 @@ bool CMotionVehicle::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("data/models/roller3t.mod"); + pModFile->ReadModel(m_app->GetDataFilePath(DIR_MODEL, "roller3t.mod")); pModFile->CreateEngineObject(rank); m_object->SetPosition(2, Math::Vector(9.0f, 4.0f, 0.0f)); m_object->SetAngleZ(2, 0.0f); @@ -651,7 +655,7 @@ bool CMotionVehicle::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("data/models/roller2c.mod"); + pModFile->ReadModel(m_app->GetDataFilePath(DIR_MODEL, "roller2c.mod")); pModFile->CreateEngineObject(rank); m_object->SetPosition(1, Math::Vector(3.0f, 4.6f, 0.0f)); m_object->SetAngleZ(1, Math::PI/8.0f); @@ -661,7 +665,7 @@ bool CMotionVehicle::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("data/models/roller3p.mod"); + pModFile->ReadModel(m_app->GetDataFilePath(DIR_MODEL, "roller3p.mod")); pModFile->CreateEngineObject(rank); m_object->SetPosition(2, Math::Vector(7.0f, 6.5f, 0.0f)); m_object->SetAngleZ(2, 0.0f); @@ -674,7 +678,7 @@ bool CMotionVehicle::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("data/models/recover1.mod"); + pModFile->ReadModel(m_app->GetDataFilePath(DIR_MODEL, "recover1.mod")); pModFile->CreateEngineObject(rank); m_object->SetPosition(1, Math::Vector(2.0f, 5.0f, 0.0f)); @@ -683,7 +687,7 @@ bool CMotionVehicle::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, 1); - pModFile->ReadModel("data/models/recover2.mod"); + pModFile->ReadModel(m_app->GetDataFilePath(DIR_MODEL, "recover2.mod")); pModFile->CreateEngineObject(rank); m_object->SetPosition(2, Math::Vector(0.1f, 0.0f, -5.0f)); m_object->SetAngleZ(2, 126.0f*Math::PI/180.0f); @@ -693,7 +697,7 @@ bool CMotionVehicle::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, 2); - pModFile->ReadModel("data/models/recover3.mod"); + pModFile->ReadModel(m_app->GetDataFilePath(DIR_MODEL, "recover3.mod")); pModFile->CreateEngineObject(rank); m_object->SetPosition(3, Math::Vector(5.0f, 0.0f, -0.5f)); m_object->SetAngleZ(3, -144.0f*Math::PI/180.0f); @@ -703,7 +707,7 @@ bool CMotionVehicle::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, 1); - pModFile->ReadModel("data/models/recover2.mod"); + pModFile->ReadModel(m_app->GetDataFilePath(DIR_MODEL, "recover2.mod")); pModFile->Mirror(); pModFile->CreateEngineObject(rank); m_object->SetPosition(4, Math::Vector(0.1f, 0.0f, 5.0f)); @@ -714,7 +718,7 @@ bool CMotionVehicle::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("data/models/recover3.mod"); + pModFile->ReadModel(m_app->GetDataFilePath(DIR_MODEL, "recover3.mod")); pModFile->Mirror(); pModFile->CreateEngineObject(rank); m_object->SetPosition(5, Math::Vector(5.0f, 0.0f, 0.5f)); @@ -728,7 +732,7 @@ bool CMotionVehicle::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("data/models/roller2s.mod"); + pModFile->ReadModel(m_app->GetDataFilePath(DIR_MODEL, "roller2s.mod")); pModFile->CreateEngineObject(rank); m_object->SetPosition(1, Math::Vector(0.0f, 0.0f, 0.0f)); m_object->SetAngleZ(1, 0.0f); @@ -738,7 +742,7 @@ bool CMotionVehicle::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, 1); - pModFile->ReadModel("data/models/roller3s.mod"); + pModFile->ReadModel(m_app->GetDataFilePath(DIR_MODEL, "roller3s.mod")); pModFile->CreateEngineObject(rank); m_object->SetPosition(2, Math::Vector(7.0f, 4.5f, 0.0f)); m_object->SetAngleZ(2, 0.0f); @@ -748,7 +752,7 @@ bool CMotionVehicle::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, 2); - pModFile->ReadModel("data/models/roller4s.mod"); + pModFile->ReadModel(m_app->GetDataFilePath(DIR_MODEL, "roller4s.mod")); pModFile->CreateEngineObject(rank); m_object->SetPosition(3, Math::Vector(0.0f, 1.0f, 0.0f)); m_object->SetAngleZ(3, 0.0f); @@ -761,7 +765,7 @@ bool CMotionVehicle::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("data/models/subm2.mod"); + pModFile->ReadModel(m_app->GetDataFilePath(DIR_MODEL, "subm2.mod")); pModFile->CreateEngineObject(rank); m_object->SetPosition(1, Math::Vector(4.2f, 3.0f, 0.0f)); @@ -770,7 +774,7 @@ bool CMotionVehicle::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, 1); - pModFile->ReadModel("data/models/subm3.mod"); + pModFile->ReadModel(m_app->GetDataFilePath(DIR_MODEL, "subm3.mod")); pModFile->CreateEngineObject(rank); m_object->SetPosition(2, Math::Vector(0.5f, 0.0f, -1.5f)); @@ -779,7 +783,7 @@ bool CMotionVehicle::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, 1); - pModFile->ReadModel("data/models/subm3.mod"); + pModFile->ReadModel(m_app->GetDataFilePath(DIR_MODEL, "subm3.mod")); pModFile->Mirror(); pModFile->CreateEngineObject(rank); m_object->SetPosition(3, Math::Vector(0.5f, 0.0f, 1.5f)); @@ -792,7 +796,7 @@ bool CMotionVehicle::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("data/models/drawer4.mod"); + pModFile->ReadModel(m_app->GetDataFilePath(DIR_MODEL, "drawer4.mod")); pModFile->CreateEngineObject(rank); m_object->SetPosition(1, Math::Vector(-3.0f, 3.0f, 0.0f)); @@ -803,7 +807,7 @@ bool CMotionVehicle::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("data/models/drawer5.mod"); + pModFile->ReadModel(m_app->GetDataFilePath(DIR_MODEL, "drawer5.mod")); pModFile->CreateEngineObject(rank); m_posKey = Math::Vector(3.0f, 5.7f, 0.0f); m_object->SetPosition(2, m_posKey); @@ -817,7 +821,8 @@ bool CMotionVehicle::Create(Math::Vector pos, float angle, ObjectType type, m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT); m_object->SetObjectRank(10+i, rank); m_object->SetObjectParent(10+i, 1); - sprintf(name, "data/models/drawer%d.mod", 10+i); + std::string baseName = m_app->GetDataFilePath(DIR_MODEL, "drawer%d.mod"); + sprintf(name, baseName.c_str(), 10+i); pModFile->ReadModel(name); pModFile->CreateEngineObject(rank); m_object->SetPosition(10+i, Math::Vector(0.0f, 0.0f, 0.0f)); @@ -834,7 +839,7 @@ bool CMotionVehicle::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("data/models/drawer5.mod"); + pModFile->ReadModel(m_app->GetDataFilePath(DIR_MODEL, "drawer5.mod")); pModFile->CreateEngineObject(rank); m_posKey = Math::Vector(0.2f, 4.1f, 0.0f); m_object->SetPosition(2, m_posKey); @@ -849,7 +854,7 @@ bool CMotionVehicle::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("data/models/apolloj2.mod"); // antenna + pModFile->ReadModel(m_app->GetDataFilePath(DIR_MODEL, "apolloj2.mod")); // antenna pModFile->CreateEngineObject(rank); m_object->SetPosition(1, Math::Vector(5.5f, 8.8f, 2.0f)); m_object->SetAngleY(1, -120.0f*Math::PI/180.0f); @@ -859,7 +864,7 @@ bool CMotionVehicle::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("data/models/apolloj3.mod"); // camera + pModFile->ReadModel(m_app->GetDataFilePath(DIR_MODEL, "apolloj3.mod")); // camera pModFile->CreateEngineObject(rank); m_object->SetPosition(2, Math::Vector(5.5f, 2.8f, -2.0f)); m_object->SetAngleY(2, 30.0f*Math::PI/180.0f); @@ -869,7 +874,7 @@ bool CMotionVehicle::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, 0); - pModFile->ReadModel("data/models/apolloj4.mod"); // wheel + pModFile->ReadModel(m_app->GetDataFilePath(DIR_MODEL, "apolloj4.mod")); // wheel pModFile->CreateEngineObject(rank); m_object->SetPosition(6, Math::Vector(-5.75f, 1.65f, -5.0f)); @@ -877,7 +882,7 @@ bool CMotionVehicle::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("data/models/apolloj4.mod"); // wheel + pModFile->ReadModel(m_app->GetDataFilePath(DIR_MODEL, "apolloj4.mod")); // wheel pModFile->CreateEngineObject(rank); m_object->SetPosition(7, Math::Vector(-5.75f, 1.65f, 5.0f)); @@ -885,7 +890,7 @@ bool CMotionVehicle::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, 0); - pModFile->ReadModel("data/models/apolloj4.mod"); // wheel + pModFile->ReadModel(m_app->GetDataFilePath(DIR_MODEL, "apolloj4.mod")); // wheel pModFile->CreateEngineObject(rank); m_object->SetPosition(8, Math::Vector(5.75f, 1.65f, -5.0f)); @@ -893,7 +898,7 @@ bool CMotionVehicle::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, 0); - pModFile->ReadModel("data/models/apolloj4.mod"); // wheel + pModFile->ReadModel(m_app->GetDataFilePath(DIR_MODEL, "apolloj4.mod")); // wheel pModFile->CreateEngineObject(rank); m_object->SetPosition(9, Math::Vector(5.75f, 1.65f, 5.00f)); @@ -902,7 +907,7 @@ bool CMotionVehicle::Create(Math::Vector pos, float angle, ObjectType type, m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT); m_object->SetObjectRank(10, rank); m_object->SetObjectParent(10, 0); - pModFile->ReadModel("data/models/apolloj6.mod"); // wheel + pModFile->ReadModel(m_app->GetDataFilePath(DIR_MODEL, "apolloj6.mod")); // wheel pModFile->CreateEngineObject(rank); m_object->SetPosition(10, Math::Vector(-5.75f, 1.65f, -5.0f)); @@ -910,7 +915,7 @@ bool CMotionVehicle::Create(Math::Vector pos, float angle, ObjectType type, m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT); m_object->SetObjectRank(11, rank); m_object->SetObjectParent(11, 0); - pModFile->ReadModel("data/models/apolloj6.mod"); // wheel + pModFile->ReadModel(m_app->GetDataFilePath(DIR_MODEL, "apolloj6.mod")); // wheel pModFile->CreateEngineObject(rank); m_object->SetPosition(11, Math::Vector(-5.75f, 1.65f, 5.0f)); @@ -918,7 +923,7 @@ bool CMotionVehicle::Create(Math::Vector pos, float angle, ObjectType type, m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT); m_object->SetObjectRank(12, rank); m_object->SetObjectParent(12, 0); - pModFile->ReadModel("data/models/apolloj5.mod"); // wheel + pModFile->ReadModel(m_app->GetDataFilePath(DIR_MODEL, "apolloj5.mod")); // wheel pModFile->CreateEngineObject(rank); m_object->SetPosition(12, Math::Vector(5.75f, 1.65f, -5.0f)); @@ -926,7 +931,7 @@ bool CMotionVehicle::Create(Math::Vector pos, float angle, ObjectType type, m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT); m_object->SetObjectRank(13, rank); m_object->SetObjectParent(13, 0); - pModFile->ReadModel("data/models/apolloj5.mod"); // wheel + pModFile->ReadModel(m_app->GetDataFilePath(DIR_MODEL, "apolloj5.mod")); // wheel pModFile->CreateEngineObject(rank); m_object->SetPosition(13, Math::Vector(5.75f, 1.65f, 5.00f)); } @@ -1038,8 +1043,8 @@ bool CMotionVehicle::Create(Math::Vector pos, float angle, ObjectType type, m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_FIX); pPower->SetObjectRank(0, rank); - if ( power <= 1.0f ) pModFile->ReadModel("data/models/power.mod"); - else pModFile->ReadModel("data/models/atomic.mod"); + if ( power <= 1.0f ) pModFile->ReadModel(m_app->GetDataFilePath(DIR_MODEL, "power.mod")); + else pModFile->ReadModel(m_app->GetDataFilePath(DIR_MODEL, "atomic.mod")); pModFile->CreateEngineObject(rank); pPower->SetPosition(0, m_object->GetCharacter()->posPower); diff --git a/src/object/motion/motionworm.cpp b/src/object/motion/motionworm.cpp index dc8ecf0..2401ebd 100644 --- a/src/object/motion/motionworm.cpp +++ b/src/object/motion/motionworm.cpp @@ -14,20 +14,23 @@ // * You should have received a copy of the GNU General Public License // * along with this program. If not, see http://www.gnu.org/licenses/. -// motionworm.cpp - - -#include <stdio.h> #include "object/motion/motionworm.h" +#include "app/app.h" + #include "graphics/engine/modelfile.h" #include "graphics/engine/particle.h" #include "graphics/engine/terrain.h" + #include "math/geometry.h" + #include "physics/physics.h" +#include <stdio.h> + + const float START_TIME = 1000.0f; // beginning of the relative time @@ -92,7 +95,7 @@ bool CMotionWorm::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("data/models/worm0.mod"); // there is no purpose! + pModFile->ReadModel(m_app->GetDataFilePath(DIR_MODEL, "worm0.mod")); // there is no purpose! pModFile->CreateEngineObject(rank); m_object->SetPosition(0, pos); m_object->SetAngleY(0, angle); @@ -108,7 +111,7 @@ bool CMotionWorm::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("data/models/worm1.mod"); + pModFile->ReadModel(m_app->GetDataFilePath(DIR_MODEL, "worm1.mod")); pModFile->CreateEngineObject(rank); m_object->SetPosition(1, Math::Vector(px, 0.0f, 0.0f)); px -= 1.0f; @@ -120,7 +123,7 @@ bool CMotionWorm::Create(Math::Vector pos, float angle, ObjectType type, m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT); m_object->SetObjectRank(2+i, rank); m_object->SetObjectParent(2+i, 0); - pModFile->ReadModel("data/models/worm2.mod"); + pModFile->ReadModel(m_app->GetDataFilePath(DIR_MODEL, "worm2.mod")); pModFile->CreateEngineObject(rank); m_object->SetPosition(2+i, Math::Vector(px, 0.0f, 0.0f)); px -= 1.0f; @@ -131,7 +134,7 @@ bool CMotionWorm::Create(Math::Vector pos, float angle, ObjectType type, m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT); m_object->SetObjectRank(2+WORM_PART, rank); m_object->SetObjectParent(2+WORM_PART, 0); - pModFile->ReadModel("data/models/worm3.mod"); + pModFile->ReadModel(m_app->GetDataFilePath(DIR_MODEL, "worm3.mod")); pModFile->CreateEngineObject(rank); m_object->SetPosition(2+WORM_PART, Math::Vector(px, 0.0f, 0.0f)); |