summaryrefslogtreecommitdiffstats
path: root/src/motionant.cpp
diff options
context:
space:
mode:
authorKrzysztof H <krzys_h@interia.pl>2012-03-09 17:08:05 +0100
committerKrzysztof H <krzys_h@interia.pl>2012-03-09 17:08:05 +0100
commit84d1f79fdf02e0010e4b2d118458e8cd8ce0dd71 (patch)
tree842825145ada8e6f53d1de9f100383cc028d2b46 /src/motionant.cpp
parenta4c804b49ec872b71bd5a0167c3ad45704a3cc30 (diff)
downloadcolobot-84d1f79fdf02e0010e4b2d118458e8cd8ce0dd71.tar.gz
colobot-84d1f79fdf02e0010e4b2d118458e8cd8ce0dd71.tar.bz2
colobot-84d1f79fdf02e0010e4b2d118458e8cd8ce0dd71.zip
Added license info using a small program SrcHead.
Diffstat (limited to 'src/motionant.cpp')
-rw-r--r--src/motionant.cpp108
1 files changed, 61 insertions, 47 deletions
diff --git a/src/motionant.cpp b/src/motionant.cpp
index 4fd76f6..694d2b6 100644
--- a/src/motionant.cpp
+++ b/src/motionant.cpp
@@ -1,4 +1,18 @@
-// motionant.cpp
+// * This file is part of the COLOBOT source code
+// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch
+// *
+// * 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 .
#define STRICT
#define D3D_OVERLOADS
@@ -28,7 +42,7 @@
#define ADJUST_ANGLE FALSE // TRUE -> ajuste les angles des membres
-#define START_TIME 1000.0f // début du temps relatif
+#define START_TIME 1000.0f // d�but du temps relatif
@@ -65,7 +79,7 @@ void CMotionAnt::DeleteObject(BOOL bAll)
}
-// Crée un véhicule roulant quelconque posé sur le sol.
+// Cr�e un v�hicule roulant quelconque pos� sur le sol.
BOOL CMotionAnt::Create(D3DVECTOR pos, float angle, ObjectType type,
float power)
@@ -79,7 +93,7 @@ BOOL CMotionAnt::Create(D3DVECTOR pos, float angle, ObjectType type,
m_object->SetType(type);
- // Crée la base principale.
+ // Cr�e la base principale.
rank = m_engine->CreateObject();
m_engine->SetObjectType(rank, TYPEVEHICULE); // c'est un objet mobile
m_object->SetObjectRank(0, rank);
@@ -90,12 +104,12 @@ BOOL CMotionAnt::Create(D3DVECTOR pos, float angle, ObjectType type,
m_object->SetPosition(0, pos);
m_object->SetAngleY(0, angle);
- // Un véhicule doit avoir obligatoirement une sphère de
+ // Un v�hicule doit avoir obligatoirement une sph�re de
// collision avec un centre (0;y;0) (voir GetCrashSphere).
m_object->CreateCrashSphere(D3DVECTOR(0.0f, -2.0f, 0.0f), 4.0f, SOUND_BOUM, 0.20f);
m_object->SetGlobalSphere(D3DVECTOR(-0.5f, 1.0f, 0.0f), 4.0f);
- // Crée la tête.
+ // Cr�e la t�te.
rank = m_engine->CreateObject();
m_engine->SetObjectType(rank, TYPEDESCENDANT);
m_object->SetObjectRank(1, rank);
@@ -104,7 +118,7 @@ BOOL CMotionAnt::Create(D3DVECTOR pos, float angle, ObjectType type,
pModFile->CreateEngineObject(rank);
m_object->SetPosition(1, D3DVECTOR(2.0f, 0.0f, 0.0f));
- // Crée la queue.
+ // Cr�e la queue.
rank = m_engine->CreateObject();
m_engine->SetObjectType(rank, TYPEDESCENDANT);
m_object->SetObjectRank(2, rank);
@@ -113,7 +127,7 @@ BOOL CMotionAnt::Create(D3DVECTOR pos, float angle, ObjectType type,
pModFile->CreateEngineObject(rank);
m_object->SetPosition(2, D3DVECTOR(-1.0f, 0.0f, 0.0f));
- // Crée la cuisse 1 arrière-droite.
+ // Cr�e la cuisse 1 arri�re-droite.
rank = m_engine->CreateObject();
m_engine->SetObjectType(rank, TYPEDESCENDANT);
m_object->SetObjectRank(3, rank);
@@ -122,7 +136,7 @@ BOOL CMotionAnt::Create(D3DVECTOR pos, float angle, ObjectType type,
pModFile->CreateEngineObject(rank);
m_object->SetPosition(3, D3DVECTOR(-0.4f, -0.1f, -0.3f));
- // Crée la jambe 1 arrière-droite.
+ // Cr�e la jambe 1 arri�re-droite.
rank = m_engine->CreateObject();
m_engine->SetObjectType(rank, TYPEDESCENDANT);
m_object->SetObjectRank(4, rank);
@@ -131,7 +145,7 @@ BOOL CMotionAnt::Create(D3DVECTOR pos, float angle, ObjectType type,
pModFile->CreateEngineObject(rank);
m_object->SetPosition(4, D3DVECTOR(0.0f, 0.0f, -1.0f));
- // Crée le pied 1 arrière-droite.
+ // Cr�e le pied 1 arri�re-droite.
rank = m_engine->CreateObject();
m_engine->SetObjectType(rank, TYPEDESCENDANT);
m_object->SetObjectRank(5, rank);
@@ -140,7 +154,7 @@ BOOL CMotionAnt::Create(D3DVECTOR pos, float angle, ObjectType type,
pModFile->CreateEngineObject(rank);
m_object->SetPosition(5, D3DVECTOR(0.0f, 0.0f, -2.0f));
- // Crée la cuisse 2 milieu-droite.
+ // Cr�e la cuisse 2 milieu-droite.
rank = m_engine->CreateObject();
m_engine->SetObjectType(rank, TYPEDESCENDANT);
m_object->SetObjectRank(6, rank);
@@ -149,7 +163,7 @@ BOOL CMotionAnt::Create(D3DVECTOR pos, float angle, ObjectType type,
pModFile->CreateEngineObject(rank);
m_object->SetPosition(6, D3DVECTOR(0.1f, -0.1f, -0.4f));
- // Crée la jambe 2 milieu-droite.
+ // Cr�e la jambe 2 milieu-droite.
rank = m_engine->CreateObject();
m_engine->SetObjectType(rank, TYPEDESCENDANT);
m_object->SetObjectRank(7, rank);
@@ -158,7 +172,7 @@ BOOL CMotionAnt::Create(D3DVECTOR pos, float angle, ObjectType type,
pModFile->CreateEngineObject(rank);
m_object->SetPosition(7, D3DVECTOR(0.0f, 0.0f, -1.0f));
- // Crée le pied 2 milieu-droite.
+ // Cr�e le pied 2 milieu-droite.
rank = m_engine->CreateObject();
m_engine->SetObjectType(rank, TYPEDESCENDANT);
m_object->SetObjectRank(8, rank);
@@ -167,7 +181,7 @@ BOOL CMotionAnt::Create(D3DVECTOR pos, float angle, ObjectType type,
pModFile->CreateEngineObject(rank);
m_object->SetPosition(8, D3DVECTOR(0.0f, 0.0f, -2.0f));
- // Crée la cuisse 3 avant-droite.
+ // Cr�e la cuisse 3 avant-droite.
rank = m_engine->CreateObject();
m_engine->SetObjectType(rank, TYPEDESCENDANT);
m_object->SetObjectRank(9, rank);
@@ -176,7 +190,7 @@ BOOL CMotionAnt::Create(D3DVECTOR pos, float angle, ObjectType type,
pModFile->CreateEngineObject(rank);
m_object->SetPosition(9, D3DVECTOR(1.4f, -0.1f, -0.6f));
- // Crée la jambe 3 avant-droite.
+ // Cr�e la jambe 3 avant-droite.
rank = m_engine->CreateObject();
m_engine->SetObjectType(rank, TYPEDESCENDANT);
m_object->SetObjectRank(10, rank);
@@ -185,7 +199,7 @@ BOOL CMotionAnt::Create(D3DVECTOR pos, float angle, ObjectType type,
pModFile->CreateEngineObject(rank);
m_object->SetPosition(10, D3DVECTOR(0.0f, 0.0f, -1.0f));
- // Crée le pied 3 avant-droite.
+ // Cr�e le pied 3 avant-droite.
rank = m_engine->CreateObject();
m_engine->SetObjectType(rank, TYPEDESCENDANT);
m_object->SetObjectRank(11, rank);
@@ -194,7 +208,7 @@ BOOL CMotionAnt::Create(D3DVECTOR pos, float angle, ObjectType type,
pModFile->CreateEngineObject(rank);
m_object->SetPosition(11, D3DVECTOR(0.0f, 0.0f, -2.0f));
- // Crée la cuisse 1 arrière-gauche.
+ // Cr�e la cuisse 1 arri�re-gauche.
rank = m_engine->CreateObject();
m_engine->SetObjectType(rank, TYPEDESCENDANT);
m_object->SetObjectRank(12, rank);
@@ -204,7 +218,7 @@ BOOL CMotionAnt::Create(D3DVECTOR pos, float angle, ObjectType type,
pModFile->CreateEngineObject(rank);
m_object->SetPosition(12, D3DVECTOR(-0.4f, -0.1f, 0.3f));
- // Crée la jambe 1 arrière-gauche.
+ // Cr�e la jambe 1 arri�re-gauche.
rank = m_engine->CreateObject();
m_engine->SetObjectType(rank, TYPEDESCENDANT);
m_object->SetObjectRank(13, rank);
@@ -214,7 +228,7 @@ BOOL CMotionAnt::Create(D3DVECTOR pos, float angle, ObjectType type,
pModFile->CreateEngineObject(rank);
m_object->SetPosition(13, D3DVECTOR(0.0f, 0.0f, 1.0f));
- // Crée le pied 1 arrière-gauche.
+ // Cr�e le pied 1 arri�re-gauche.
rank = m_engine->CreateObject();
m_engine->SetObjectType(rank, TYPEDESCENDANT);
m_object->SetObjectRank(14, rank);
@@ -224,7 +238,7 @@ BOOL CMotionAnt::Create(D3DVECTOR pos, float angle, ObjectType type,
pModFile->CreateEngineObject(rank);
m_object->SetPosition(14, D3DVECTOR(0.0f, 0.0f, 2.0f));
- // Crée la cuisse 2 milieu-gauche.
+ // Cr�e la cuisse 2 milieu-gauche.
rank = m_engine->CreateObject();
m_engine->SetObjectType(rank, TYPEDESCENDANT);
m_object->SetObjectRank(15, rank);
@@ -234,7 +248,7 @@ BOOL CMotionAnt::Create(D3DVECTOR pos, float angle, ObjectType type,
pModFile->CreateEngineObject(rank);
m_object->SetPosition(15, D3DVECTOR(0.1f, -0.1f, 0.4f));
- // Crée la jambe 2 milieu-gauche.
+ // Cr�e la jambe 2 milieu-gauche.
rank = m_engine->CreateObject();
m_engine->SetObjectType(rank, TYPEDESCENDANT);
m_object->SetObjectRank(16, rank);
@@ -244,7 +258,7 @@ BOOL CMotionAnt::Create(D3DVECTOR pos, float angle, ObjectType type,
pModFile->CreateEngineObject(rank);
m_object->SetPosition(16, D3DVECTOR(0.0f, 0.0f, 1.0f));
- // Crée le pied 2 milieu-gauche.
+ // Cr�e le pied 2 milieu-gauche.
rank = m_engine->CreateObject();
m_engine->SetObjectType(rank, TYPEDESCENDANT);
m_object->SetObjectRank(17, rank);
@@ -254,7 +268,7 @@ BOOL CMotionAnt::Create(D3DVECTOR pos, float angle, ObjectType type,
pModFile->CreateEngineObject(rank);
m_object->SetPosition(17, D3DVECTOR(0.0f, 0.0f, 2.0f));
- // Crée la cuisse 3 avant-gauche.
+ // Cr�e la cuisse 3 avant-gauche.
rank = m_engine->CreateObject();
m_engine->SetObjectType(rank, TYPEDESCENDANT);
m_object->SetObjectRank(18, rank);
@@ -264,7 +278,7 @@ BOOL CMotionAnt::Create(D3DVECTOR pos, float angle, ObjectType type,
pModFile->CreateEngineObject(rank);
m_object->SetPosition(18, D3DVECTOR(1.4f, -0.1f, 0.6f));
- // Crée la jambe 3 avant-gauche.
+ // Cr�e la jambe 3 avant-gauche.
rank = m_engine->CreateObject();
m_engine->SetObjectType(rank, TYPEDESCENDANT);
m_object->SetObjectRank(19, rank);
@@ -274,7 +288,7 @@ BOOL CMotionAnt::Create(D3DVECTOR pos, float angle, ObjectType type,
pModFile->CreateEngineObject(rank);
m_object->SetPosition(19, D3DVECTOR(0.0f, 0.0f, 1.0f));
- // Crée le pied 3 avant-gauche.
+ // Cr�e le pied 3 avant-gauche.
rank = m_engine->CreateObject();
m_engine->SetObjectType(rank, TYPEDESCENDANT);
m_object->SetObjectRank(20, rank);
@@ -298,7 +312,7 @@ BOOL CMotionAnt::Create(D3DVECTOR pos, float angle, ObjectType type,
return TRUE;
}
-// Crée la physique de l'objet.
+// Cr�e la physique de l'objet.
void CMotionAnt::CreatePhysics()
{
@@ -315,7 +329,7 @@ void CMotionAnt::CreatePhysics()
0,30,0, 0,20,0, 0,15,0, // t1: cuisses 1..3
-15,-50,0, -20,-60,0, -10,-75,0, // t1: jambes 1..3
-40,50,0, -25,15,0, -50,35,0, // t1: pieds 1..3
- // au sol derrière :
+ // au sol derri�re :
0,35,0, 0,30,0, 0,20,0, // t2: cuisses 1..3
-20,-15,0, -30,-55,0, -25,-70,15, // t2: jambes 1..3
-25,25,0, -20,60,0, -30,95,0, // t2: pieds 1..3
@@ -331,7 +345,7 @@ void CMotionAnt::CreatePhysics()
0,30,0, 0,20,0, 0,15,0, // t1: cuisses 1..3
-15,-35,0, -20,-60,0, -15,-75,0, // t1: jambes 1..3
-35,35,0, -25,40,0, -40,65,0, // t1: pieds 1..3
- // au sol derrière :
+ // au sol derri�re :
0,30,0, 0,20,0, 0,15,0, // t2: cuisses 1..3
-15,-35,0, -20,-60,0, -15,-75,0, // t2: jambes 1..3
-35,35,0, -25,40,0, -40,65,0, // t2: pieds 1..3
@@ -339,7 +353,7 @@ void CMotionAnt::CreatePhysics()
int member_spec[] =
{
- // x1,y1,z1, x2,y2,z2, x3,y3,z3, // prépare le tir :
+ // x1,y1,z1, x2,y2,z2, x3,y3,z3, // pr�pare le tir :
0,20,0, 0,10,0, 0,50,0, // s0: cuisses 1..3
-50,-30,0, -20,-15,0, 35,-65,0, // s0: jambes 1..3
-5,-40,0, 20,-70,0, -10,-40,0, // s0: pieds 1..3
@@ -351,7 +365,7 @@ void CMotionAnt::CreatePhysics()
0,30,0, 0,20,0, 0,15,0, // s2: cuisses 1..3
-15,-50,0, -20,-60,0, -10,-75,0, // s2: jambes 1..3
-40,50,0, -25,15,0, -50,35,0, // s2: pieds 1..3
- // brûle :
+ // br�le :
0,30,0, 0,20,0, 0,15,0, // s3: cuisses 1..3
-15,-35,0, -20,-60,0, -15,-75,0, // s3: jambes 1..3
-35,35,0, -25,40,0, -40,65,0, // s3: pieds 1..3
@@ -414,7 +428,7 @@ void CMotionAnt::CreatePhysics()
}
-// Gestion d'un événement.
+// Gestion d'un �v�nement.
BOOL CMotionAnt::EventProcess(const Event &event)
{
@@ -459,7 +473,7 @@ BOOL CMotionAnt::EventProcess(const Event &event)
}
// Calcule une valeur (radians) proportionnelle comprise
-// entre a et b (degrés).
+// entre a et b (degr�s).
inline float Propf(float a, float b, float p)
{
@@ -471,7 +485,7 @@ inline float Propf(float a, float b, float p)
return aa+p*(bb-aa);
}
-// Gestion d'un événement.
+// Gestion d'un �v�nement.
BOOL CMotionAnt::EventFrame(const Event &event)
{
@@ -494,7 +508,7 @@ BOOL CMotionAnt::EventFrame(const Event &event)
m_armTimeMarch += (s)*event.rTime*0.15f;
m_armMember += (s+a)*event.rTime*0.15f;
- bStop = ( a == 0.0f && s == 0.0f ); // a l'arrêt ?
+ bStop = ( a == 0.0f && s == 0.0f ); // a l'arr�t ?
action = MA_MARCH; // marche
if ( s == 0.0f && a == 0.0f )
@@ -506,7 +520,7 @@ BOOL CMotionAnt::EventFrame(const Event &event)
{
prog = Mod(m_armTimeAbs, 2.0f)/10.0f;
a = Mod(m_armMember, 1.0f);
- a = (prog-a)*event.rTime*2.0f; // vient gentiment à position stop
+ a = (prog-a)*event.rTime*2.0f; // vient gentiment � position stop
m_armMember += a;
}
@@ -514,7 +528,7 @@ BOOL CMotionAnt::EventFrame(const Event &event)
{
m_actionType = MAS_RUIN;
}
- if ( m_object->RetBurn() ) // brûle ?
+ if ( m_object->RetBurn() ) // br�le ?
{
if ( m_object->RetFixed() )
{
@@ -528,7 +542,7 @@ BOOL CMotionAnt::EventFrame(const Event &event)
for ( i=0 ; i<6 ; i++ ) // les 6 pattes
{
- if ( m_actionType != -1 ) // action spéciale en cours ?
+ if ( m_actionType != -1 ) // action sp�ciale en cours ?
{
st = 3*3*3*3*MA_SPEC + 3*3*3*m_actionType + (i%3)*3;
nd = st;
@@ -634,7 +648,7 @@ BOOL CMotionAnt::EventFrame(const Event &event)
}
#endif
- if ( m_actionType == MAS_PREPARE ) // prépare le tir ?
+ if ( m_actionType == MAS_PREPARE ) // pr�pare le tir ?
{
prog = m_progress;
@@ -642,7 +656,7 @@ BOOL CMotionAnt::EventFrame(const Event &event)
dir.y = 0.0f;
dir.z = Prop(0, -50, prog);
SetInclinaison(dir);
- m_object->SetAngleZ(1, Prop(0, 65, prog)); // tête
+ m_object->SetAngleZ(1, Prop(0, 65, prog)); // t�te
m_object->SetAngleZ(2, Prop(0, -95, prog)); // queue
}
else if ( m_actionType == MAS_FIRE ) // tir ?
@@ -666,10 +680,10 @@ BOOL CMotionAnt::EventFrame(const Event &event)
dir.y = 0.0f;
dir.z = Prop(0, -50, prog);
SetInclinaison(dir);
- m_object->SetAngleZ(1, Prop(0, 65, prog)); // tête
+ m_object->SetAngleZ(1, Prop(0, 65, prog)); // t�te
m_object->SetAngleZ(2, Prop(0, -95, prog)); // queue
}
- else if ( m_actionType == MAS_BURN ) // brûle ?
+ else if ( m_actionType == MAS_BURN ) // br�le ?
{
dir = D3DVECTOR(PI, 0.0f, 0.0f);
SetCirVibration(dir);
@@ -679,7 +693,7 @@ BOOL CMotionAnt::EventFrame(const Event &event)
SetInclinaison(dir);
time = event.rTime*1.0f;
- m_object->SetAngleZ(1, Smooth(m_object->RetAngleZ(1), 0.0f, time)); // tête
+ m_object->SetAngleZ(1, Smooth(m_object->RetAngleZ(1), 0.0f, time)); // t�te
m_object->SetAngleZ(2, Smooth(m_object->RetAngleZ(2), 0.0f, time)); // queue
}
else if ( m_actionType == MAS_RUIN ) // ruine ?
@@ -770,9 +784,9 @@ BOOL CMotionAnt::EventFrame(const Event &event)
dir = D3DVECTOR(0.0f, 0.0f, 0.0f);
SetInclinaison(dir);
- m_object->SetAngleY(1, sinf(m_armTimeAbs*8.0f)*0.7f); // tête
+ m_object->SetAngleY(1, sinf(m_armTimeAbs*8.0f)*0.7f); // t�te
m_object->SetAngleY(2, cosf(m_armTimeAbs*8.0f)*0.7f); // queue
- m_object->SetAngleZ(1, 0.0f); // tête
+ m_object->SetAngleZ(1, 0.0f); // t�te
m_object->SetAngleZ(2, 0.0f); // queue
if ( m_progress >= 1.0f )
@@ -875,9 +889,9 @@ BOOL CMotionAnt::EventFrame(const Event &event)
dir = D3DVECTOR(0.0f, 0.0f, 0.0f);
SetCirVibration(dir);
- m_object->SetAngleZ(1, sinf(m_armTimeAbs*1.4f)*0.20f); // tête
- m_object->SetAngleX(1, sinf(m_armTimeAbs*1.9f)*0.10f); // tête
- m_object->SetAngleY(1, sinf(m_armTimeAbs*2.1f)*0.50f); // tête
+ m_object->SetAngleZ(1, sinf(m_armTimeAbs*1.4f)*0.20f); // t�te
+ m_object->SetAngleX(1, sinf(m_armTimeAbs*1.9f)*0.10f); // t�te
+ m_object->SetAngleY(1, sinf(m_armTimeAbs*2.1f)*0.50f); // t�te
}
return TRUE;