summaryrefslogtreecommitdiffstats
path: root/src/object/motion
diff options
context:
space:
mode:
authorPiotr Dziwinski <piotrdz@gmail.com>2013-06-24 21:37:15 +0200
committerPiotr Dziwinski <piotrdz@gmail.com>2013-06-24 21:37:15 +0200
commit7c2e955e1552a9c4e412ea2c936be61fc78ba010 (patch)
treeee506dfbec54f998d10c385bde3a1c3fa04e66b2 /src/object/motion
parente218dcfdf2c58f8841e7ebd220527d08e870a6d5 (diff)
parentb376486fd74fa02b0297ceef6d0f977b32358e5e (diff)
downloadcolobot-7c2e955e1552a9c4e412ea2c936be61fc78ba010.tar.gz
colobot-7c2e955e1552a9c4e412ea2c936be61fc78ba010.tar.bz2
colobot-7c2e955e1552a9c4e412ea2c936be61fc78ba010.zip
Colobot Gold 0.1.0-alpha
Diffstat (limited to 'src/object/motion')
-rw-r--r--src/object/motion/motionant.cpp5
-rw-r--r--src/object/motion/motionbee.cpp5
-rw-r--r--src/object/motion/motiondummy.cpp85
-rw-r--r--src/object/motion/motiondummy.h34
-rw-r--r--src/object/motion/motionhuman.cpp15
-rw-r--r--src/object/motion/motionmother.cpp3
-rw-r--r--src/object/motion/motionspider.cpp5
-rw-r--r--src/object/motion/motiontoto.cpp3
-rw-r--r--src/object/motion/motionvehicle.cpp6
-rw-r--r--src/object/motion/motionworm.cpp5
10 files changed, 139 insertions, 27 deletions
diff --git a/src/object/motion/motionant.cpp b/src/object/motion/motionant.cpp
index 384d683..16e53aa 100644
--- a/src/object/motion/motionant.cpp
+++ b/src/object/motion/motionant.cpp
@@ -75,7 +75,7 @@ bool CMotionAnt::Create(Math::Vector pos, float angle, ObjectType type,
// Creates the main base.
rank = m_engine->CreateObject();
- m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_VEHICULE); // this is a moving object
+ m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_VEHICLE); // this is a moving object
m_object->SetObjectRank(0, rank);
modelManager->AddModelReference("ant1.mod", false, rank);
m_object->SetPosition(0, pos);
@@ -425,7 +425,7 @@ bool CMotionAnt::EventFrame(const Event &event)
{
Math::Vector dir, pos, speed;
Math::Point dim;
- float s, a, prog, time;
+ float s, a, prog = 0.0f, time;
float tSt[9], tNd[9];
int i, ii, st, nd, action;
bool bStop;
@@ -831,4 +831,3 @@ bool CMotionAnt::EventFrame(const Event &event)
return true;
}
-
diff --git a/src/object/motion/motionbee.cpp b/src/object/motion/motionbee.cpp
index 8f69945..2a052b2 100644
--- a/src/object/motion/motionbee.cpp
+++ b/src/object/motion/motionbee.cpp
@@ -73,7 +73,7 @@ bool CMotionBee::Create(Math::Vector pos, float angle, ObjectType type,
// Creates main base.
rank = m_engine->CreateObject();
- m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_VEHICULE); // this is a moving object
+ m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_VEHICLE); // this is a moving object
m_object->SetObjectRank(0, rank);
modelManager->AddModelReference("bee1.mod", false, rank);
m_object->SetPosition(0, pos);
@@ -406,7 +406,7 @@ bool CMotionBee::EventProcess(const Event &event)
bool CMotionBee::EventFrame(const Event &event)
{
Math::Vector dir;
- float s, a, prog;
+ float s, a, prog = 0.0f;
int action, i, st, nd;
bool bStop;
@@ -610,4 +610,3 @@ bool CMotionBee::EventFrame(const Event &event)
return true;
}
-
diff --git a/src/object/motion/motiondummy.cpp b/src/object/motion/motiondummy.cpp
new file mode 100644
index 0000000..86e389e
--- /dev/null
+++ b/src/object/motion/motiondummy.cpp
@@ -0,0 +1,85 @@
+// * This file is part of the COLOBOT source code
+// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch
+// * Copyright (C) 2013 Polish Portal of Colobot (PPC)
+// *
+// * This program is free software: you can redistribute it and/or modify
+// * it under the terms of the GNU General Public License as published by
+// * the Free Software Foundation, either version 3 of the License, or
+// * (at your option) any later version.
+// *
+// * This program is distributed in the hope that it will be useful,
+// * but WITHOUT ANY WARRANTY; without even the implied warranty of
+// * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// * GNU General Public License for more details.
+// *
+// * You should have received a copy of the GNU General Public License
+// * along with this program. If not, see http://www.gnu.org/licenses/.
+
+
+#include "object/motion/motiondummy.h"
+#include "physics/physics.h"
+#include "graphics/engine/modelmanager.h"
+
+#include <stdio.h>
+#include <string.h>
+
+// Object's constructor.
+
+CMotionDummy::CMotionDummy(CObject* object) : CMotion(object)
+{
+}
+
+// Object's destructor.
+
+CMotionDummy::~CMotionDummy()
+{
+}
+
+
+// Removes an object.
+
+void CMotionDummy::DeleteObject(bool bAll)
+{
+}
+
+
+// Creates a Dummy traveling any lands on the ground.
+
+bool CMotionDummy::Create(Math::Vector pos, float angle, ObjectType type,
+ float power)
+{
+ m_object->SetType(type);
+
+ // Creates the main base.
+ int rank = m_engine->CreateObject();
+ m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_VEHICLE); // this is a moving object
+ m_object->SetObjectRank(0, rank);
+
+ // Movement
+ m_physics->SetType(TYPE_FLYING);
+
+ m_physics->SetLinMotionX(MO_ADVSPEED, 50.0f);
+ m_physics->SetLinMotionX(MO_RECSPEED, 50.0f);
+ m_physics->SetLinMotionX(MO_ADVACCEL, 20.0f);
+ m_physics->SetLinMotionX(MO_RECACCEL, 20.0f);
+ m_physics->SetLinMotionX(MO_STOACCEL, 20.0f);
+ m_physics->SetLinMotionX(MO_TERSLIDE, 0.0f);
+ m_physics->SetLinMotionZ(MO_TERSLIDE, 0.0f);
+ m_physics->SetLinMotionX(MO_TERFORCE, 0.0f);
+ m_physics->SetLinMotionZ(MO_TERFORCE, 0.0f);
+ m_physics->SetLinMotionZ(MO_MOTACCEL, 40.0f);
+ m_physics->SetLinMotionY(MO_ADVSPEED, 60.0f);
+ m_physics->SetLinMotionY(MO_RECSPEED, 60.0f);
+ m_physics->SetLinMotionY(MO_ADVACCEL, 20.0f);
+ m_physics->SetLinMotionY(MO_RECACCEL, 50.0f);
+ m_physics->SetLinMotionY(MO_STOACCEL, 50.0f);
+
+ m_physics->SetCirMotionY(MO_ADVSPEED, 0.4f*Math::PI);
+ m_physics->SetCirMotionY(MO_RECSPEED, 0.4f*Math::PI);
+ m_physics->SetCirMotionY(MO_ADVACCEL, 2.0f);
+ m_physics->SetCirMotionY(MO_RECACCEL, 2.0f);
+ m_physics->SetCirMotionY(MO_STOACCEL, 2.0f);
+
+ return true;
+}
+
diff --git a/src/object/motion/motiondummy.h b/src/object/motion/motiondummy.h
new file mode 100644
index 0000000..2cb3a88
--- /dev/null
+++ b/src/object/motion/motiondummy.h
@@ -0,0 +1,34 @@
+// * This file is part of the COLOBOT source code
+// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch
+// * Copyright (C) 2013 Polish Portal of Colobot (PPC)
+// *
+// * This program is free software: you can redistribute it and/or modify
+// * it under the terms of the GNU General Public License as published by
+// * the Free Software Foundation, either version 3 of the License, or
+// * (at your option) any later version.
+// *
+// * This program is distributed in the hope that it will be useful,
+// * but WITHOUT ANY WARRANTY; without even the implied warranty of
+// * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// * GNU General Public License for more details.
+// *
+// * You should have received a copy of the GNU General Public License
+// * along with this program. If not, see http://www.gnu.org/licenses/.
+
+// motiondummy.h
+
+#pragma once
+
+
+#include "object/motion/motion.h"
+
+class CMotionDummy : public CMotion
+{
+public:
+ CMotionDummy(CObject* object);
+ ~CMotionDummy();
+
+ void DeleteObject(bool bAll=false);
+ bool Create(Math::Vector pos, float angle, ObjectType type, float power);
+};
+
diff --git a/src/object/motion/motionhuman.cpp b/src/object/motion/motionhuman.cpp
index dc5ff34..edee260 100644
--- a/src/object/motion/motionhuman.cpp
+++ b/src/object/motion/motionhuman.cpp
@@ -107,7 +107,7 @@ bool CMotionHuman::Create(Math::Vector pos, float angle, ObjectType type,
if ( m_main->GetGamerOnlyHead() )
{
rank = m_engine->CreateObject();
- m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_VEHICULE); // this is a moving object
+ m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_VEHICLE); // this is a moving object
m_object->SetObjectRank(0, rank);
face = m_main->GetGamerFace();
sprintf(filename, "human2h%d.mod", face+1);
@@ -134,7 +134,7 @@ bool CMotionHuman::Create(Math::Vector pos, float angle, ObjectType type,
// Creates the main base.
rank = m_engine->CreateObject();
- m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_VEHICULE); // this is a moving object
+ m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_VEHICLE); // this is a moving object
m_object->SetObjectRank(0, rank);
if (option == 0) // head in helmet?
@@ -677,7 +677,7 @@ bool CMotionHuman::EventFrame(const Event &event)
float s, a, prog, rTime[2], lTime[2], time, rot, hr, hl;
float al, ar, af;
float tSt[9], tNd[9];
- float aa, bb, shield, deadFactor, level;
+ float aa, bb, shield, deadFactor = 0.0f, level;
int i, ii, st, nd, action, legAction, armAction;
bool bOnBoard, bSwim;
@@ -1617,18 +1617,18 @@ bool CMotionHuman::EventFrame(const Event &event)
legAction == MH_MARCHTAKE )
{
Sound sound[2];
- float speed, synchro, volume[2], freq[2], hard, level;
+ float synchro, volume[2], freq[2], hard;
- speed = m_physics->GetLinMotionX(MO_REASPEED);
+ float speedX = m_physics->GetLinMotionX(MO_REASPEED);
if ( m_object->GetFret() == 0 )
{
- if ( speed > 0.0f ) synchro = 0.21f; // synchro forward
+ if ( speedX > 0.0f ) synchro = 0.21f; // synchro forward
else synchro = 0.29f; // synchro backward
}
else
{
- if ( speed > 0.0f ) synchro = 0.15f; // synchro forward
+ if ( speedX > 0.0f ) synchro = 0.15f; // synchro forward
else synchro = 0.35f; // synchro backward
}
time = rTime[1]+synchro;
@@ -1735,4 +1735,3 @@ void CMotionHuman::StopDisplayPerso()
m_bDisplayPerso = false;
}
-
diff --git a/src/object/motion/motionmother.cpp b/src/object/motion/motionmother.cpp
index 573a2e4..03e7c21 100644
--- a/src/object/motion/motionmother.cpp
+++ b/src/object/motion/motionmother.cpp
@@ -74,7 +74,7 @@ bool CMotionMother::Create(Math::Vector pos, float angle, ObjectType type,
// Creates main base.
rank = m_engine->CreateObject();
- m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_VEHICULE); // this is a moving object
+ m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_VEHICLE); // this is a moving object
m_object->SetObjectRank(0, rank);
modelManager->AddModelReference("mother1.mod", false, rank);
m_object->SetPosition(0, pos);
@@ -493,4 +493,3 @@ bool CMotionMother::EventFrame(const Event &event)
return true;
}
-
diff --git a/src/object/motion/motionspider.cpp b/src/object/motion/motionspider.cpp
index 59bc6e0..8d339b6 100644
--- a/src/object/motion/motionspider.cpp
+++ b/src/object/motion/motionspider.cpp
@@ -101,7 +101,7 @@ bool CMotionSpider::Create(Math::Vector pos, float angle, ObjectType type,
// Creates the main base.
rank = m_engine->CreateObject();
- m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_VEHICULE); // this is a moving object
+ m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_VEHICLE); // this is a moving object
m_object->SetObjectRank(0, rank);
// This is an "empty" object, without triangles
m_object->SetPosition(0, pos);
@@ -363,7 +363,7 @@ bool CMotionSpider::EventFrame(const Event &event)
{
Math::Vector dir, pos, speed;
Math::Point dim;
- float s, a, prog, time;
+ float s, a, prog = 0.0f, time;
float tSt[12], tNd[12];
int i, ii, st, nd, action;
bool bStop;
@@ -743,4 +743,3 @@ bool CMotionSpider::EventFrame(const Event &event)
return true;
}
-
diff --git a/src/object/motion/motiontoto.cpp b/src/object/motion/motiontoto.cpp
index ddb1867..b4ed89d 100644
--- a/src/object/motion/motiontoto.cpp
+++ b/src/object/motion/motiontoto.cpp
@@ -88,7 +88,7 @@ bool CMotionToto::Create(Math::Vector pos, float angle, ObjectType type,
// Creates the head.
rank = m_engine->CreateObject();
- m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_VEHICULE); // this is a moving object
+ m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_VEHICLE); // this is a moving object
m_object->SetObjectRank(0, rank);
modelManager->AddModelReference("toto1.mod", false, rank);
m_object->SetPosition(0, pos);
@@ -853,4 +853,3 @@ void CMotionToto::SetLinkType(ObjectType type)
m_type = type;
}
-
diff --git a/src/object/motion/motionvehicle.cpp b/src/object/motion/motionvehicle.cpp
index 44b8fdd..a67ae24 100644
--- a/src/object/motion/motionvehicle.cpp
+++ b/src/object/motion/motionvehicle.cpp
@@ -102,7 +102,7 @@ bool CMotionVehicle::Create(Math::Vector pos, float angle, ObjectType type,
// Creates the main base.
rank = m_engine->CreateObject();
- m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_VEHICULE); // this is a moving object
+ m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_VEHICLE); // this is a moving object
m_object->SetObjectRank(0, rank);
if (type == OBJECT_MOBILEfa ||
@@ -931,6 +931,7 @@ bool CMotionVehicle::Create(Math::Vector pos, float angle, ObjectType type,
rank = m_engine->CreateObject();
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_FIX);
pPower->SetObjectRank(0, rank);
+ pPower->CreateShadowCircle(1.5f, 1.0f); //create a shadow for battary
if ( power <= 1.0f ) modelManager->AddModelCopy("power.mod", false, rank);
else modelManager->AddModelCopy("atomic.mod", false, rank);
@@ -1649,7 +1650,7 @@ bool CMotionVehicle::EventFrameFly(const Event &event)
bool CMotionVehicle::EventFrameInsect(const Event &event)
{
Math::Vector dir;
- float s, a, prog, time;
+ float s, a, prog = 0.0f, time;
int i, st, nd, action;
bool bStop, bOnBoard;
@@ -1943,4 +1944,3 @@ void CMotionVehicle::SetTraceWidth(float width)
m_traceWidth = width;
}
-
diff --git a/src/object/motion/motionworm.cpp b/src/object/motion/motionworm.cpp
index ee555a8..80bf7fc 100644
--- a/src/object/motion/motionworm.cpp
+++ b/src/object/motion/motionworm.cpp
@@ -89,9 +89,9 @@ bool CMotionWorm::Create(Math::Vector pos, float angle, ObjectType type,
// Creates the main base.
rank = m_engine->CreateObject();
- m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_VEHICULE); // this is a moving object
+ m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_VEHICLE); // this is a moving object
m_object->SetObjectRank(0, rank);
- // This is an "empty" object, without triangles
+ // This is an "empty" object, without triangles
m_object->SetPosition(0, pos);
m_object->SetAngleY(0, angle);
@@ -356,4 +356,3 @@ bool CMotionWorm::EventFrame(const Event &event)
return true;
}
-