summaryrefslogtreecommitdiffstats
path: root/src/object/task
diff options
context:
space:
mode:
Diffstat (limited to 'src/object/task')
-rw-r--r--src/object/task/task.cpp2
-rw-r--r--src/object/task/task.h20
-rw-r--r--src/object/task/taskadvance.cpp4
-rw-r--r--src/object/task/taskadvance.h2
-rw-r--r--src/object/task/taskbuild.cpp67
-rw-r--r--src/object/task/taskbuild.h2
-rw-r--r--src/object/task/taskfire.cpp70
-rw-r--r--src/object/task/taskfire.h2
-rw-r--r--src/object/task/taskfireant.cpp19
-rw-r--r--src/object/task/taskfireant.h1
-rw-r--r--src/object/task/taskflag.cpp13
-rw-r--r--src/object/task/taskflag.h5
-rw-r--r--src/object/task/taskgoto.cpp137
-rw-r--r--src/object/task/taskgoto.h4
-rw-r--r--src/object/task/taskgungoal.cpp8
-rw-r--r--src/object/task/taskgungoal.h2
-rw-r--r--src/object/task/taskinfo.cpp6
-rw-r--r--src/object/task/taskinfo.h2
-rw-r--r--src/object/task/taskmanager.cpp2
-rw-r--r--src/object/task/taskmanager.h2
-rw-r--r--src/object/task/taskmanip.cpp131
-rw-r--r--src/object/task/taskmanip.h2
-rw-r--r--src/object/task/taskpen.cpp42
-rw-r--r--src/object/task/taskpen.h1
-rw-r--r--src/object/task/taskrecover.cpp62
-rw-r--r--src/object/task/taskrecover.h1
-rw-r--r--src/object/task/taskreset.cpp44
-rw-r--r--src/object/task/taskreset.h2
-rw-r--r--src/object/task/tasksearch.cpp24
-rw-r--r--src/object/task/tasksearch.h2
-rw-r--r--src/object/task/taskshield.cpp46
-rw-r--r--src/object/task/taskshield.h2
-rw-r--r--src/object/task/taskspiderexplo.cpp2
-rw-r--r--src/object/task/taskspiderexplo.h2
-rw-r--r--src/object/task/tasktake.cpp55
-rw-r--r--src/object/task/tasktake.h2
-rw-r--r--src/object/task/taskterraform.cpp64
-rw-r--r--src/object/task/taskterraform.h2
-rw-r--r--src/object/task/taskturn.cpp2
-rw-r--r--src/object/task/taskturn.h2
-rw-r--r--src/object/task/taskwait.cpp2
-rw-r--r--src/object/task/taskwait.h2
42 files changed, 417 insertions, 447 deletions
diff --git a/src/object/task/task.cpp b/src/object/task/task.cpp
index 4be6067..ae92db5 100644
--- a/src/object/task/task.cpp
+++ b/src/object/task/task.cpp
@@ -16,8 +16,6 @@
// task.cpp
-#define STRICT
-#define D3D_OVERLOADS
#include <windows.h>
#include <stdio.h>
diff --git a/src/object/task/task.h b/src/object/task/task.h
index 97ac819..1d123a3 100644
--- a/src/object/task/task.h
+++ b/src/object/task/task.h
@@ -20,7 +20,7 @@
#include "common/misc.h"
-#include "math/old/math3d.h"
+#include "math/const.h"
class CInstanceManager;
@@ -43,16 +43,16 @@ class CSound;
const float TAKE_DIST = 6.0f; // distance to an object to pick it
const float TAKE_DIST_OTHER = 1.5f; // additional distance if on friend
-//?const float ARM_NEUTRAL_ANGLE1 = 155.0f*PI/180.0f;
-//?const float ARM_NEUTRAL_ANGLE2 = -125.0f*PI/180.0f;
-//?const float ARM_NEUTRAL_ANGLE3 = -45.0f*PI/180.0f;
-const float ARM_NEUTRAL_ANGLE1 = 110.0f*PI/180.0f;
-const float ARM_NEUTRAL_ANGLE2 = -130.0f*PI/180.0f;
-const float ARM_NEUTRAL_ANGLE3 = -50.0f*PI/180.0f;
+//?const float ARM_NEUTRAL_ANGLE1 = 155.0f*Math::PI/180.0f;
+//?const float ARM_NEUTRAL_ANGLE2 = -125.0f*Math::PI/180.0f;
+//?const float ARM_NEUTRAL_ANGLE3 = -45.0f*Math::PI/180.0f;
+const float ARM_NEUTRAL_ANGLE1 = 110.0f*Math::PI/180.0f;
+const float ARM_NEUTRAL_ANGLE2 = -130.0f*Math::PI/180.0f;
+const float ARM_NEUTRAL_ANGLE3 = -50.0f*Math::PI/180.0f;
-const float ARM_STOCK_ANGLE1 = 110.0f*PI/180.0f;
-const float ARM_STOCK_ANGLE2 = -100.0f*PI/180.0f;
-const float ARM_STOCK_ANGLE3 = -70.0f*PI/180.0f;
+const float ARM_STOCK_ANGLE1 = 110.0f*Math::PI/180.0f;
+const float ARM_STOCK_ANGLE2 = -100.0f*Math::PI/180.0f;
+const float ARM_STOCK_ANGLE3 = -70.0f*Math::PI/180.0f;
class CTask
diff --git a/src/object/task/taskadvance.cpp b/src/object/task/taskadvance.cpp
index 41b1602..8387dbe 100644
--- a/src/object/task/taskadvance.cpp
+++ b/src/object/task/taskadvance.cpp
@@ -16,8 +16,6 @@
// taskadvance.cpp
-#define STRICT
-#define D3D_OVERLOADS
#include <windows.h>
#include <stdio.h>
@@ -81,7 +79,7 @@ bool CTaskAdvance::EventProcess(const Event &event)
Error CTaskAdvance::Start(float length)
{
m_direction = (length>=0.0f)?1.0f:-1.0f;
- m_totalLength = Abs(length);
+ m_totalLength = fabs(length);
m_advanceLength = m_physics->RetLinLength(length);
m_startPos = m_object->RetPosition(0);
m_lastDist = 0.0f;
diff --git a/src/object/task/taskadvance.h b/src/object/task/taskadvance.h
index 2b2dcef..ee7346f 100644
--- a/src/object/task/taskadvance.h
+++ b/src/object/task/taskadvance.h
@@ -19,7 +19,7 @@
#pragma once
-#include "common/misc.h"
+#include "object/task/task.h"
#include "graphics/d3d/d3dengine.h"
diff --git a/src/object/task/taskbuild.cpp b/src/object/task/taskbuild.cpp
index 77ee14d..a031ade 100644
--- a/src/object/task/taskbuild.cpp
+++ b/src/object/task/taskbuild.cpp
@@ -16,14 +16,13 @@
// taskbuild.cpp
-#define STRICT
-#define D3D_OVERLOADS
#include <windows.h>
#include <stdio.h>
#include <d3d.h>
#include "common/struct.h"
+#include "math/geometry.h"
#include "graphics/d3d/d3dengine.h"
#include "math/old/math3d.h"
#include "common/event.h"
@@ -129,7 +128,7 @@ void CTaskBuild::CreateLight()
D3DLIGHT7 light;
D3DCOLORVALUE color;
D3DVECTOR center, pos, dir;
- FPOINT c, p;
+ Math::Point c, p;
float angle;
int i;
@@ -147,7 +146,7 @@ void CTaskBuild::CreateLight()
c.y = center.z;
p.x = center.x+40.0f;
p.y = center.z;
- p = RotatePoint(c, angle, p);
+ p = Math::RotatePoint(c, angle, p);
pos.x = p.x;
pos.z = p.y;
pos.y = center.y+40.0f;
@@ -170,7 +169,7 @@ void CTaskBuild::CreateLight()
light.dvAttenuation1 = 0.0f;
light.dvAttenuation2 = 0.0f;
light.dvTheta = 0.0f;
- light.dvPhi = PI/4.0f;
+ light.dvPhi = Math::PI/4.0f;
m_light->SetLight(m_lightRank[i], light);
color.r = -1.0f;
@@ -180,7 +179,7 @@ void CTaskBuild::CreateLight()
m_light->SetLightColor(m_lightRank[i], color);
m_light->SetLightColorSpeed(m_lightRank[i], 1.0f/((1.0f/m_speed)*0.25f));
- angle += (PI*2.0f)/TBMAXLIGHT;
+ angle += (Math::PI*2.0f)/TBMAXLIGHT;
}
m_bBlack = false;
@@ -214,7 +213,7 @@ bool CTaskBuild::EventProcess(const Event &event)
{
D3DMATRIX* mat;
D3DVECTOR pos, dir, speed;
- FPOINT dim;
+ Math::Point dim;
float a, g, cirSpeed, dist, linSpeed;
if ( m_engine->RetPause() ) return true;
@@ -229,7 +228,7 @@ bool CTaskBuild::EventProcess(const Event &event)
{
a = m_object->RetAngleY(0);
g = m_angleY;
- cirSpeed = Direction(a, g)*1.0f;
+ cirSpeed = Math::Direction(a, g)*1.0f;
if ( cirSpeed > 1.0f ) cirSpeed = 1.0f;
if ( cirSpeed < -1.0f ) cirSpeed = -1.0f;
@@ -274,13 +273,13 @@ bool CTaskBuild::EventProcess(const Event &event)
pos = m_metal->RetPosition(0);
a = m_object->RetAngleY(0);
- if ( !CreateBuilding(pos, a+PI) )
+ if ( !CreateBuilding(pos, a+Math::PI) )
{
m_metal->SetLock(false); // usable again
m_motion->SetAction(-1);
m_object->SetObjectParent(14, 0);
m_object->SetPosition(14, D3DVECTOR(-1.5f, 0.3f, -1.35f));
- m_object->SetAngleZ(14, PI);
+ m_object->SetAngleZ(14, Math::PI);
m_camera->FlushEffect();
Abort();
m_bError = true;
@@ -299,9 +298,9 @@ bool CTaskBuild::EventProcess(const Event &event)
a = (2.0f-2.0f*m_progress);
if ( a > 1.0f ) a = 1.0f;
- dir.x = (Rand()-0.5f)*a*0.1f;
- dir.z = (Rand()-0.5f)*a*0.1f;
- dir.y = (Rand()-0.5f)*a*0.1f;
+ dir.x = (Math::Rand()-0.5f)*a*0.1f;
+ dir.z = (Math::Rand()-0.5f)*a*0.1f;
+ dir.y = (Math::Rand()-0.5f)*a*0.1f;
m_building->SetCirVibration(dir);
if ( !m_bBlack && m_progress >= 0.25f )
@@ -314,10 +313,10 @@ bool CTaskBuild::EventProcess(const Event &event)
m_lastParticule = m_time;
pos = m_metal->RetPosition(0);
- speed.x = (Rand()-0.5f)*20.0f;
- speed.z = (Rand()-0.5f)*20.0f;
- speed.y = Rand()*10.0f;
- dim.x = Rand()*6.0f+4.0f;
+ speed.x = (Math::Rand()-0.5f)*20.0f;
+ speed.z = (Math::Rand()-0.5f)*20.0f;
+ speed.y = Math::Rand()*10.0f;
+ dim.x = Math::Rand()*6.0f+4.0f;
dim.y = dim.x;
m_particule->CreateParticule(pos, speed, dim, PARTIFIRE);
@@ -325,16 +324,16 @@ bool CTaskBuild::EventProcess(const Event &event)
mat = m_object->RetWorldMatrix(14);
pos = Transform(*mat, pos);
speed = m_metal->RetPosition(0);
- speed.x += (Rand()-0.5f)*5.0f;
- speed.z += (Rand()-0.5f)*5.0f;
+ speed.x += (Math::Rand()-0.5f)*5.0f;
+ speed.z += (Math::Rand()-0.5f)*5.0f;
speed -= pos;
dim.x = 2.0f;
dim.y = dim.x;
m_particule->CreateParticule(pos, speed, dim, PARTIFIREZ);
- if ( Rand() < 0.3f )
+ if ( Math::Rand() < 0.3f )
{
- m_sound->Play(SOUND_BUILD, m_object->RetPosition(0), 0.5f, 1.0f*Rand()*1.5f);
+ m_sound->Play(SOUND_BUILD, m_object->RetPosition(0), 0.5f, 1.0f*Math::Rand()*1.5f);
}
}
@@ -355,7 +354,7 @@ Error CTaskBuild::Start(ObjectType type)
m_progress = 0.0f;
iAngle = m_object->RetAngleY(0);
- iAngle = NormAngle(iAngle); // 0..2*PI
+ iAngle = Math::NormAngle(iAngle); // 0..2*Math::PI
oAngle = iAngle;
m_bError = true; // operation impossible
@@ -371,7 +370,7 @@ Error CTaskBuild::Start(ObjectType type)
if ( m_object->RetFret() != 0 ) return ERR_MANIP_BUSY;
- m_metal = SearchMetalObject(oAngle, 2.0f, 100.0f, PI*0.25f, err);
+ m_metal = SearchMetalObject(oAngle, 2.0f, 100.0f, Math::PI*0.25f, err);
if ( err == ERR_BUILD_METALNEAR && m_metal != 0 )
{
err = FlatFloor();
@@ -384,7 +383,7 @@ Error CTaskBuild::Start(ObjectType type)
if ( err != ERR_OK ) return err;
m_metal->SetLock(true); // not usable
- m_camera->StartCentering(m_object, PI*0.15f, 99.9f, 0.0f, 1.0f);
+ m_camera->StartCentering(m_object, Math::PI*0.15f, 99.9f, 0.0f, 1.0f);
m_phase = TBP_TURN; // rotation necessary preliminary
m_angleY = oAngle; // angle was reached
@@ -392,7 +391,7 @@ Error CTaskBuild::Start(ObjectType type)
pv = m_object->RetPosition(0);
pv.y += 8.3f;
pm = m_metal->RetPosition(0);
- m_angleZ = RotateAngle(Length2d(pv, pm), Abs(pv.y-pm.y));
+ m_angleZ = Math::RotateAngle(Length2d(pv, pm), fabs(pv.y-pm.y));
m_physics->SetFreeze(true); // it does not move
@@ -414,9 +413,9 @@ Error CTaskBuild::IsEnded()
if ( m_phase == TBP_TURN ) // preliminary rotation?
{
angle = m_object->RetAngleY(0);
- angle = NormAngle(angle); // 0..2*PI
+ angle = Math::NormAngle(angle); // 0..2*Math::PI
- if ( TestAngle(angle, m_angleY-PI*0.01f, m_angleY+PI*0.01f) )
+ if ( Math::TestAngle(angle, m_angleY-Math::PI*0.01f, m_angleY+Math::PI*0.01f) )
{
m_physics->SetMotorSpeedZ(0.0f);
@@ -527,7 +526,7 @@ Error CTaskBuild::IsEnded()
m_motion->SetAction(-1);
m_object->SetObjectParent(14, 0);
m_object->SetPosition(14, D3DVECTOR(-1.5f, 0.3f, -1.35f));
- m_object->SetAngleZ(14, PI);
+ m_object->SetAngleZ(14, Math::PI);
if ( m_type == OBJECT_FACTORY ||
m_type == OBJECT_RESEARCH ||
@@ -576,7 +575,7 @@ Error CTaskBuild::FlatFloor()
CObject *pObj;
ObjectType type;
D3DVECTOR center, pos, oPos, bPos;
- FPOINT c, p;
+ Math::Point c, p;
float radius, max, oRadius, bRadius, angle, dist;
int i, j;
bool bLittleFlat, bBase;
@@ -727,7 +726,7 @@ CObject* CTaskBuild::SearchMetalObject(float &angle, float dMin, float dMax,
iPos = m_object->RetPosition(0);
iAngle = m_object->RetAngleY(0);
- iAngle = NormAngle(iAngle); // 0..2*PI
+ iAngle = Math::NormAngle(iAngle); // 0..2*Math::PI
min = 1000000.0f;
pBest = 0;
@@ -747,10 +746,10 @@ CObject* CTaskBuild::SearchMetalObject(float &angle, float dMin, float dMax,
oPos = pObj->RetPosition(0);
distance = Length(oPos, iPos);
- a = RotateAngle(oPos.x-iPos.x, iPos.z-oPos.z); // CW!
+ a = Math::RotateAngle(oPos.x-iPos.x, iPos.z-oPos.z); // CW!
if ( distance > dMax ) continue;
- if ( !TestAngle(a, iAngle-aLimit, iAngle+aLimit) ) continue;
+ if ( !Math::TestAngle(a, iAngle-aLimit, iAngle+aLimit) ) continue;
if ( distance < dMin )
{
@@ -758,8 +757,8 @@ CObject* CTaskBuild::SearchMetalObject(float &angle, float dMin, float dMax,
return pObj;
}
- aa = Abs(a-iAngle);
- if ( aa > PI ) aa = PI*2.0f-aa;
+ aa = fabs(a-iAngle);
+ if ( aa > Math::PI ) aa = Math::PI*2.0f-aa;
magic = distance*aa;
if ( magic < min )
diff --git a/src/object/task/taskbuild.h b/src/object/task/taskbuild.h
index 1cced56..44698bd 100644
--- a/src/object/task/taskbuild.h
+++ b/src/object/task/taskbuild.h
@@ -19,7 +19,7 @@
#pragma once
-#include "common/misc.h"
+#include "object/task/task.h"
#include "object/object.h"
diff --git a/src/object/task/taskfire.cpp b/src/object/task/taskfire.cpp
index 81becda..a470933 100644
--- a/src/object/task/taskfire.cpp
+++ b/src/object/task/taskfire.cpp
@@ -16,8 +16,6 @@
// taskfire.cpp
-#define STRICT
-#define D3D_OVERLOADS
#include <windows.h>
#include <stdio.h>
@@ -75,7 +73,7 @@ bool CTaskFire::EventProcess(const Event &event)
D3DMATRIX* mat;
D3DVECTOR pos, speed, dir, vib;
ObjectType type;
- FPOINT dim;
+ Math::Point dim;
float energy, fire;
int i, channel;
@@ -119,13 +117,13 @@ bool CTaskFire::EventProcess(const Event &event)
speed += physics->RetLinMotion(MO_REASPEED);
}
- speed.x += (Rand()-0.5f)*10.0f;
- speed.y += (Rand()-0.5f)*20.0f;
- speed.z += (Rand()-0.5f)*30.0f;
+ speed.x += (Math::Rand()-0.5f)*10.0f;
+ speed.y += (Math::Rand()-0.5f)*20.0f;
+ speed.z += (Math::Rand()-0.5f)*30.0f;
speed = Transform(*mat, speed);
speed -= pos;
- dim.x = Rand()*0.5f+0.5f;
+ dim.x = Math::Rand()*0.5f+0.5f;
dim.y = dim.x;
channel = m_particule->CreateParticule(pos, speed, dim, PARTIGUN4, 0.8f, 0.0f, 0.0f);
@@ -144,9 +142,9 @@ bool CTaskFire::EventProcess(const Event &event)
pos = Transform(*mat, pos);
speed = D3DVECTOR(200.0f, 0.0f, 0.0f);
- speed.x += (Rand()-0.5f)*6.0f;
- speed.y += (Rand()-0.5f)*12.0f;
- speed.z += (Rand()-0.5f)*12.0f;
+ speed.x += (Math::Rand()-0.5f)*6.0f;
+ speed.y += (Math::Rand()-0.5f)*12.0f;
+ speed.z += (Math::Rand()-0.5f)*12.0f;
speed = Transform(*mat, speed);
speed -= pos;
@@ -157,9 +155,9 @@ bool CTaskFire::EventProcess(const Event &event)
m_particule->SetObjectFather(channel, m_object);
speed = D3DVECTOR(5.0f, 0.0f, 0.0f);
- speed.x += (Rand()-0.5f)*1.0f;
- speed.y += (Rand()-0.5f)*2.0f;
- speed.z += (Rand()-0.5f)*2.0f;
+ speed.x += (Math::Rand()-0.5f)*1.0f;
+ speed.y += (Math::Rand()-0.5f)*2.0f;
+ speed.z += (Math::Rand()-0.5f)*2.0f;
speed = Transform(*mat, speed);
speed -= pos;
speed.y += 5.0f;
@@ -192,8 +190,8 @@ bool CTaskFire::EventProcess(const Event &event)
{
pos = D3DVECTOR(3.0f, 1.0f, 0.0f);
}
- pos.y += (Rand()-0.5f)*1.0f;
- pos.z += (Rand()-0.5f)*1.0f;
+ pos.y += (Math::Rand()-0.5f)*1.0f;
+ pos.z += (Math::Rand()-0.5f)*1.0f;
pos = Transform(*mat, pos);
speed = D3DVECTOR(200.0f, 0.0f, 0.0f);
@@ -204,13 +202,13 @@ bool CTaskFire::EventProcess(const Event &event)
speed += physics->RetLinMotion(MO_REASPEED);
}
- speed.x += (Rand()-0.5f)*3.0f;
- speed.y += (Rand()-0.5f)*6.0f;
- speed.z += (Rand()-0.5f)*6.0f;
+ speed.x += (Math::Rand()-0.5f)*3.0f;
+ speed.y += (Math::Rand()-0.5f)*6.0f;
+ speed.z += (Math::Rand()-0.5f)*6.0f;
speed = Transform(*mat, speed);
speed -= pos;
- dim.x = Rand()*0.7f+0.7f;
+ dim.x = Math::Rand()*0.7f+0.7f;
dim.y = dim.x;
channel = m_particule->CreateParticule(pos, speed, dim, PARTIGUN1, 0.8f, 0.0f, 0.0f);
@@ -221,18 +219,18 @@ bool CTaskFire::EventProcess(const Event &event)
m_progress > 0.3f )
{
pos = D3DVECTOR(-1.0f, 1.0f, 0.0f);
- pos.y += (Rand()-0.5f)*0.4f;
- pos.z += (Rand()-0.5f)*0.4f;
+ pos.y += (Math::Rand()-0.5f)*0.4f;
+ pos.z += (Math::Rand()-0.5f)*0.4f;
pos = Transform(*mat, pos);
speed = D3DVECTOR(-4.0f, 0.0f, 0.0f);
- speed.x += (Rand()-0.5f)*2.0f;
- speed.y += (Rand()-0.2f)*4.0f;
- speed.z += (Rand()-0.5f)*4.0f;
+ speed.x += (Math::Rand()-0.5f)*2.0f;
+ speed.y += (Math::Rand()-0.2f)*4.0f;
+ speed.z += (Math::Rand()-0.5f)*4.0f;
speed = Transform(*mat, speed);
speed -= pos;
- dim.x = Rand()*1.2f+1.2f;
+ dim.x = Math::Rand()*1.2f+1.2f;
dim.y = dim.x;
m_particule->CreateParticule(pos, speed, dim, PARTICRASH, 2.0f, 0.0f, 0.0f);
@@ -243,32 +241,32 @@ bool CTaskFire::EventProcess(const Event &event)
dir = D3DVECTOR(0.0f, 0.0f, 0.0f);
if ( m_progress < 0.1f )
{
- dir.z = (PI*0.04f)*(m_progress*10.0f);
+ dir.z = (Math::PI*0.04f)*(m_progress*10.0f);
}
else if ( m_progress < 0.9f )
{
- dir.z = (PI*0.04f);
+ dir.z = (Math::PI*0.04f);
}
else
{
- dir.z = (PI*0.04f)*(1.0f-(m_progress-0.9f)*10.0f);
+ dir.z = (Math::PI*0.04f)*(1.0f-(m_progress-0.9f)*10.0f);
}
m_object->SetInclinaison(dir);
- vib.x = (Rand()-0.5f)*0.01f;
- vib.y = (Rand()-0.5f)*0.02f;
- vib.z = (Rand()-0.5f)*0.02f;
+ vib.x = (Math::Rand()-0.5f)*0.01f;
+ vib.y = (Math::Rand()-0.5f)*0.02f;
+ vib.z = (Math::Rand()-0.5f)*0.02f;
m_object->SetCirVibration(vib);
- vib.x = (Rand()-0.5f)*0.20f;
- vib.y = (Rand()-0.5f)*0.05f;
- vib.z = (Rand()-0.5f)*0.20f;
+ vib.x = (Math::Rand()-0.5f)*0.20f;
+ vib.y = (Math::Rand()-0.5f)*0.05f;
+ vib.z = (Math::Rand()-0.5f)*0.20f;
m_object->SetLinVibration(vib);
}
if ( m_bRay && m_lastSound <= 0.0f )
{
- m_lastSound = Rand()*0.4f+0.4f;
+ m_lastSound = Math::Rand()*0.4f+0.4f;
m_sound->Play(SOUND_FIREp, m_object->RetPosition(0));
}
@@ -337,7 +335,7 @@ Error CTaskFire::Start(float delay)
m_lastSound = 0.0f;
m_bError = false; // ok
-//? m_camera->StartCentering(m_object, PI*0.15f, 99.9f, 0.0f, 1.0f);
+//? m_camera->StartCentering(m_object, Math::PI*0.15f, 99.9f, 0.0f, 1.0f);
if ( m_bOrganic )
{
diff --git a/src/object/task/taskfire.h b/src/object/task/taskfire.h
index f3d4490..507979f 100644
--- a/src/object/task/taskfire.h
+++ b/src/object/task/taskfire.h
@@ -19,7 +19,7 @@
#pragma once
-#include "common/misc.h"
+#include "object/task/task.h"
class CInstanceManager;
diff --git a/src/object/task/taskfireant.cpp b/src/object/task/taskfireant.cpp
index 6f3b9c9..0c7aaf6 100644
--- a/src/object/task/taskfireant.cpp
+++ b/src/object/task/taskfireant.cpp
@@ -16,14 +16,13 @@
// taskfireant.cpp
-#define STRICT
-#define D3D_OVERLOADS
#include <windows.h>
#include <stdio.h>
#include <d3d.h>
#include "common/struct.h"
+#include "math/geometry.h"
#include "math/old/math3d.h"
#include "common/event.h"
#include "common/misc.h"
@@ -81,7 +80,7 @@ bool CTaskFireAnt::EventProcess(const Event &event)
{
a = m_object->RetAngleY(0);
g = m_angle;
- cirSpeed = Direction(a, g)*2.0f;
+ cirSpeed = Math::Direction(a, g)*2.0f;
if ( cirSpeed > 2.0f ) cirSpeed = 2.0f;
if ( cirSpeed < -2.0f ) cirSpeed = -2.0f;
@@ -113,7 +112,7 @@ Error CTaskFireAnt::Start(D3DVECTOR impact)
m_physics->SetMotorSpeed(D3DVECTOR(0.0f, 0.0f, 0.0f));
pos = m_object->RetPosition(0);
- m_angle = RotateAngle(m_impact.x-pos.x, pos.z-m_impact.z); // CW !
+ m_angle = Math::RotateAngle(m_impact.x-pos.x, pos.z-m_impact.z); // CW !
m_phase = TFA_TURN;
m_speed = 1.0f/1.0f;
@@ -132,7 +131,7 @@ Error CTaskFireAnt::IsEnded()
{
D3DMATRIX* mat;
D3DVECTOR pos, speed;
- FPOINT dim;
+ Math::Point dim;
float angle, dist;
int i, channel;
@@ -143,8 +142,8 @@ Error CTaskFireAnt::IsEnded()
if ( m_phase == TFA_TURN ) // rotation ?
{
angle = m_object->RetAngleY(0);
- angle = NormAngle(angle); // 0..2*PI
- if ( !TestAngle(angle, m_angle-PI*0.05f, m_angle+PI*0.05f) ) return ERR_CONTINUE;
+ angle = Math::NormAngle(angle); // 0..2*Math::PI
+ if ( !Math::TestAngle(angle, m_angle-Math::PI*0.05f, m_angle+Math::PI*0.05f) ) return ERR_CONTINUE;
m_physics->SetMotorSpeedZ(0.0f); // rotation ended
@@ -181,9 +180,9 @@ Error CTaskFireAnt::IsEnded()
pos = Transform(*mat, pos);
dist = Length(pos, m_impact);
speed = m_impact-pos;
- speed.x += (Rand()-0.5f)*dist*1.2f;
- speed.y += (Rand()-0.5f)*dist*0.4f+50.0f;
- speed.z += (Rand()-0.5f)*dist*1.2f;
+ speed.x += (Math::Rand()-0.5f)*dist*1.2f;
+ speed.y += (Math::Rand()-0.5f)*dist*0.4f+50.0f;
+ speed.z += (Math::Rand()-0.5f)*dist*1.2f;
dim.x = 1.0f;
dim.y = dim.x;
channel = m_particule->CreateParticule(pos, speed, dim, PARTIGUN2, 2.0f, 100.0f, 0.0f);
diff --git a/src/object/task/taskfireant.h b/src/object/task/taskfireant.h
index a94d943..8f9ea49 100644
--- a/src/object/task/taskfireant.h
+++ b/src/object/task/taskfireant.h
@@ -19,6 +19,7 @@
#pragma once
+#include "object/task/task.h"
#include "graphics/d3d/d3dengine.h"
diff --git a/src/object/task/taskflag.cpp b/src/object/task/taskflag.cpp
index 667b179..aa853f2 100644
--- a/src/object/task/taskflag.cpp
+++ b/src/object/task/taskflag.cpp
@@ -16,14 +16,13 @@
// taskflag.cpp
-#define STRICT
-#define D3D_OVERLOADS
#include <windows.h>
#include <stdio.h>
#include <d3d.h>
#include "common/struct.h"
+#include "math/geometry.h"
#include "graphics/d3d/d3dengine.h"
#include "math/old/d3dmath.h"
#include "math/old/math3d.h"
@@ -115,7 +114,7 @@ Error CTaskFlag::Start(TaskFlagOrder order, int rank)
m_bError = false;
m_motion->SetAction(MHS_FLAG); // sets/removes flag
- m_camera->StartCentering(m_object, PI*0.3f, 99.9f, 0.0f, 0.5f);
+ m_camera->StartCentering(m_object, Math::PI*0.3f, 99.9f, 0.0f, 0.5f);
return ERR_OK;
}
@@ -290,7 +289,7 @@ Error CTaskFlag::DeleteFlag()
iPos = m_object->RetPosition(0);
iAngle = m_object->RetAngleY(0);
- iAngle = NormAngle(iAngle); // 0..2*PI
+ iAngle = Math::NormAngle(iAngle); // 0..2*Math::PI
pObj = SearchNearest(iPos, OBJECT_NULL);
if ( pObj == 0 )
@@ -304,9 +303,9 @@ Error CTaskFlag::DeleteFlag()
}
oPos = pObj->RetPosition(0);
- angle = RotateAngle(oPos.x-iPos.x, iPos.z-oPos.z); // CW !
- aLimit = 45.0f*PI/180.0f;
- if ( !TestAngle(angle, iAngle-aLimit, iAngle+aLimit) )
+ angle = Math::RotateAngle(oPos.x-iPos.x, iPos.z-oPos.z); // CW !
+ aLimit = 45.0f*Math::PI/180.0f;
+ if ( !Math::TestAngle(angle, iAngle-aLimit, iAngle+aLimit) )
{
return ERR_FLAG_DELETE;
}
diff --git a/src/object/task/taskflag.h b/src/object/task/taskflag.h
index 31876fe..52e78e4 100644
--- a/src/object/task/taskflag.h
+++ b/src/object/task/taskflag.h
@@ -18,14 +18,15 @@
#pragma once
-#include "common/misc.h"
+#include "object/task/task.h"
+#include "graphics/d3d/d3dengine.h"
+#include "object/object.h"
class CInstanceManager;
class CTerrain;
class CBrain;
class CPhysics;
-class CObject;
diff --git a/src/object/task/taskgoto.cpp b/src/object/task/taskgoto.cpp
index c5ffaec..3846564 100644
--- a/src/object/task/taskgoto.cpp
+++ b/src/object/task/taskgoto.cpp
@@ -16,14 +16,13 @@
// taskgoto.cpp
-#define STRICT
-#define D3D_OVERLOADS
#include <windows.h>
#include <stdio.h>
#include <d3d.h>
#include "common/struct.h"
+#include "math/geometry.h"
#include "graphics/d3d/d3dengine.h"
#include "math/old/math3d.h"
#include "common/event.h"
@@ -67,7 +66,7 @@ CTaskGoto::~CTaskGoto()
bool CTaskGoto::EventProcess(const Event &event)
{
D3DVECTOR pos, goal;
- FPOINT rot, repulse;
+ Math::Point rot, repulse;
float a, g, dist, linSpeed, cirSpeed, h, hh, factor, dir;
Error ret;
@@ -102,14 +101,14 @@ bool CTaskGoto::EventProcess(const Event &event)
rot.y /= dist;
a = m_object->RetAngleY(0);
- g = RotateAngle(rot.x, -rot.y); // CW !
- a = Direction(a, g)*1.0f;
+ g = Math::RotateAngle(rot.x, -rot.y); // CW !
+ a = Math::Direction(a, g)*1.0f;
cirSpeed = a;
if ( cirSpeed > 1.0f ) cirSpeed = 1.0f;
if ( cirSpeed < -1.0f ) cirSpeed = -1.0f;
- a = NormAngle(a);
- if ( a > PI*0.5f && a < PI*1.5f )
+ a = Math::NormAngle(a);
+ if ( a > Math::PI*0.5f && a < Math::PI*1.5f )
{
linSpeed = 1.0f; // obstacle behind -> advance
cirSpeed = -cirSpeed;
@@ -159,8 +158,8 @@ bool CTaskGoto::EventProcess(const Event &event)
D3DVECTOR min, max;
min = pos;
max = m_goal;
- if ( min.x > max.x ) Swap(min.x, max.x);
- if ( min.z > max.z ) Swap(min.z, max.z);
+ if ( min.x > max.x ) Math::Swap(min.x, max.x);
+ if ( min.z > max.z ) Math::Swap(min.z, max.z);
min.x -= 50.0f;
min.z -= 50.0f;
max.x += 50.0f;
@@ -179,8 +178,8 @@ bool CTaskGoto::EventProcess(const Event &event)
D3DVECTOR min, max;
min = pos;
max = m_goal;
- if ( min.x > max.x ) Swap(min.x, max.x);
- if ( min.z > max.z ) Swap(min.z, max.z);
+ if ( min.x > max.x ) Math::Swap(min.x, max.x);
+ if ( min.z > max.z ) Math::Swap(min.z, max.z);
min.x -= 50.0f;
min.z -= 50.0f;
max.x += 50.0f;
@@ -240,7 +239,7 @@ bool CTaskGoto::EventProcess(const Event &event)
}
goal.y = pos.y;
hh = m_terrain->RetFloorHeight(goal, true, true);
- h = Min(h, hh);
+ h = Math::Min(h, hh);
linSpeed = 0.0f;
if ( h < m_altitude-1.0f )
{
@@ -261,8 +260,8 @@ bool CTaskGoto::EventProcess(const Event &event)
rot.y /= dist;
a = m_object->RetAngleY(0);
- g = RotateAngle(rot.x, -rot.y); // CW !
- cirSpeed = Direction(a, g)*2.0f;
+ g = Math::RotateAngle(rot.x, -rot.y); // CW !
+ cirSpeed = Math::Direction(a, g)*2.0f;
if ( cirSpeed > 1.0f ) cirSpeed = 1.0f;
if ( cirSpeed < -1.0f ) cirSpeed = -1.0f;
if ( dist < 4.0f ) cirSpeed *= dist/4.0f; // so close -> turns less
@@ -277,10 +276,10 @@ bool CTaskGoto::EventProcess(const Event &event)
linSpeed = 1.0f; // dark without stopping
}
- linSpeed *= 1.0f-(1.0f-0.3f)*Abs(cirSpeed);
+ linSpeed *= 1.0f-(1.0f-0.3f)*fabs(cirSpeed);
-//? if ( dist < 20.0f && Abs(cirSpeed) >= 0.5f )
- if ( Abs(cirSpeed) >= 0.2f )
+//? if ( dist < 20.0f && fabs(cirSpeed) >= 0.5f )
+ if ( fabs(cirSpeed) >= 0.2f )
{
linSpeed = 0.0f; // turns first, then advance
}
@@ -353,8 +352,8 @@ bool CTaskGoto::EventProcess(const Event &event)
rot.x = m_goal.x-pos.x;
rot.y = m_goal.z-pos.z;
a = m_object->RetAngleY(0);
- g = RotateAngle(rot.x, -rot.y); // CW !
- cirSpeed = Direction(a, g)*1.0f;
+ g = Math::RotateAngle(rot.x, -rot.y); // CW !
+ cirSpeed = Math::Direction(a, g)*1.0f;
if ( cirSpeed > 1.0f ) cirSpeed = 1.0f;
if ( cirSpeed < -1.0f ) cirSpeed = -1.0f;
@@ -402,8 +401,8 @@ bool CTaskGoto::EventProcess(const Event &event)
#if 0
pos = m_object->RetPosition(0);
a = m_object->RetAngleY(0);
- g = RotateAngle(m_goal.x-pos.x, pos.z-m_goal.z); // CW !
- cirSpeed = Direction(a, g)*1.0f;
+ g = Math::RotateAngle(m_goal.x-pos.x, pos.z-m_goal.z); // CW !
+ cirSpeed = Math::Direction(a, g)*1.0f;
if ( cirSpeed > 1.0f ) cirSpeed = 1.0f;
if ( cirSpeed < -1.0f ) cirSpeed = -1.0f;
@@ -411,7 +410,7 @@ bool CTaskGoto::EventProcess(const Event &event)
linSpeed = dist/(m_physics->RetLinStopLength()*1.5f);
if ( linSpeed > 1.0f ) linSpeed = 1.0f;
- if ( dist < 20.0f && Abs(cirSpeed) >= 0.5f )
+ if ( dist < 20.0f && fabs(cirSpeed) >= 0.5f )
{
linSpeed = 0.0f; // turns first, then advance
}
@@ -429,8 +428,8 @@ bool CTaskGoto::EventProcess(const Event &event)
rot.y += repulse.y*2.0f;
a = m_object->RetAngleY(0);
- g = RotateAngle(rot.x, -rot.y); // CW !
- cirSpeed = Direction(a, g)*1.0f;
+ g = Math::RotateAngle(rot.x, -rot.y); // CW !
+ cirSpeed = Math::Direction(a, g)*1.0f;
//? if ( m_physics->RetType() == TYPE_FLYING &&
//? m_physics->RetLand() ) // flying on the ground?
//? {
@@ -448,9 +447,9 @@ bool CTaskGoto::EventProcess(const Event &event)
//? }
if ( linSpeed > 1.0f ) linSpeed = 1.0f;
- linSpeed *= 1.0f-(1.0f-0.3f)*Abs(cirSpeed);
+ linSpeed *= 1.0f-(1.0f-0.3f)*fabs(cirSpeed);
- if ( dist < 20.0f && Abs(cirSpeed) >= 0.5f )
+ if ( dist < 20.0f && fabs(cirSpeed) >= 0.5f )
{
linSpeed = 0.0f; // turns first, then advance
}
@@ -466,7 +465,7 @@ bool CTaskGoto::EventProcess(const Event &event)
{
a = m_object->RetAngleY(0);
g = m_angle;
- cirSpeed = Direction(a, g)*1.0f;
+ cirSpeed = Math::Direction(a, g)*1.0f;
if ( cirSpeed > 1.0f ) cirSpeed = 1.0f;
if ( cirSpeed < -1.0f ) cirSpeed = -1.0f;
@@ -774,8 +773,8 @@ Error CTaskGoto::Start(D3DVECTOR goal, float altitude,
D3DVECTOR min, max;
min = m_object->RetPosition(0);
max = m_goal;
- if ( min.x > max.x ) Swap(min.x, max.x);
- if ( min.z > max.z ) Swap(min.z, max.z);
+ if ( min.x > max.x ) Math::Swap(min.x, max.x);
+ if ( min.z > max.z ) Math::Swap(min.z, max.z);
min.x -= 50.0f;
min.z -= 50.0f;
max.x += 50.0f;
@@ -865,8 +864,8 @@ Error CTaskGoto::IsEnded()
}
if ( m_bApprox ) limit = 2.0f;
- if ( Abs(pos.x - m_bmPoints[m_bmIndex].x) < limit &&
- Abs(pos.z - m_bmPoints[m_bmIndex].z) < limit )
+ if ( fabs(pos.x - m_bmPoints[m_bmIndex].x) < limit &&
+ fabs(pos.z - m_bmPoints[m_bmIndex].z) < limit )
{
m_physics->SetMotorSpeedX(0.0f); // stops the advance
m_physics->SetMotorSpeedZ(0.0f); // stops the rotation
@@ -895,7 +894,7 @@ Error CTaskGoto::IsEnded()
if ( m_bTake )
{
- m_angle = RotateAngle(m_goalObject.x-pos.x, pos.z-m_goalObject.z);
+ m_angle = Math::RotateAngle(m_goalObject.x-pos.x, pos.z-m_goalObject.z);
m_phase = TGP_TURN;
}
else
@@ -922,8 +921,8 @@ Error CTaskGoto::IsEnded()
else limit = 1.0f; // flying
if ( m_bApprox ) limit = 2.0f;
- if ( Abs(pos.x - m_goal.x) < limit &&
- Abs(pos.z - m_goal.z) < limit )
+ if ( fabs(pos.x - m_goal.x) < limit &&
+ fabs(pos.z - m_goal.z) < limit )
{
m_physics->SetMotorSpeedX(0.0f); // stops the advance
m_physics->SetMotorSpeedZ(0.0f); // stops the rotation
@@ -941,7 +940,7 @@ Error CTaskGoto::IsEnded()
if ( m_bTake )
{
- m_angle = RotateAngle(m_goalObject.x-pos.x, pos.z-m_goalObject.z);
+ m_angle = Math::RotateAngle(m_goalObject.x-pos.x, pos.z-m_goalObject.z);
m_phase = TGP_TURN;
}
else
@@ -952,17 +951,17 @@ Error CTaskGoto::IsEnded()
if ( m_phase == TGP_TURN ) // turns to the object?
{
- angle = NormAngle(m_object->RetAngleY(0));
+ angle = Math::NormAngle(m_object->RetAngleY(0));
limit = 0.02f;
if ( m_bApprox ) limit = 0.10f;
- if ( Abs(angle-m_angle) < limit )
+ if ( fabs(angle-m_angle) < limit )
{
m_physics->SetMotorSpeedZ(0.0f); // stops the rotation
if ( m_bmFinalMove == 0.0f ) return ERR_STOP;
m_bmFinalPos = m_object->RetPosition(0);
m_bmFinalDist = m_physics->RetLinLength(m_bmFinalMove);
- m_bmTimeLimit = m_physics->RetLinTimeLength(Abs(m_bmFinalMove))*1.5f;
+ m_bmTimeLimit = m_physics->RetLinTimeLength(fabs(m_bmFinalMove))*1.5f;
if ( m_bmTimeLimit < 0.5f ) m_bmTimeLimit = 0.5f;
m_phase = TGP_MOVE;
}
@@ -980,9 +979,9 @@ Error CTaskGoto::IsEnded()
if ( m_time >= 1.0f )
{
if ( m_crashMode == TGC_RIGHTLEFT ||
- m_crashMode == TGC_RIGHT ) angle = PI/2.0f; // 90 deegres to the right
- else angle = -PI/2.0f; // 90 deegres to the left
- m_angle = NormAngle(m_object->RetAngleY(0)+angle);
+ m_crashMode == TGC_RIGHT ) angle = Math::PI/2.0f; // 90 deegres to the right
+ else angle = -Math::PI/2.0f; // 90 deegres to the left
+ m_angle = Math::NormAngle(m_object->RetAngleY(0)+angle);
m_phase = TGP_CRTURN;
//? m_phase = TGP_ADVANCE;
}
@@ -990,9 +989,9 @@ Error CTaskGoto::IsEnded()
if ( m_phase == TGP_CRTURN ) // turns after collision?
{
- angle = NormAngle(m_object->RetAngleY(0));
+ angle = Math::NormAngle(m_object->RetAngleY(0));
limit = 0.1f;
- if ( Abs(angle-m_angle) < limit )
+ if ( fabs(angle-m_angle) < limit )
{
m_physics->SetMotorSpeedZ(0.0f); // stops the rotation
m_pos = pos;
@@ -1012,20 +1011,20 @@ Error CTaskGoto::IsEnded()
{
if ( m_time >= 1.0f )
{
- if ( m_crashMode == TGC_RIGHTLEFT ) angle = -PI;
- if ( m_crashMode == TGC_LEFTRIGHT ) angle = PI;
- if ( m_crashMode == TGC_RIGHT ) angle = PI/2.0f;
- if ( m_crashMode == TGC_LEFT ) angle = -PI/2.0f;
- m_angle = NormAngle(m_object->RetAngleY(0)+angle);
+ if ( m_crashMode == TGC_RIGHTLEFT ) angle = -Math::PI;
+ if ( m_crashMode == TGC_LEFTRIGHT ) angle = Math::PI;
+ if ( m_crashMode == TGC_RIGHT ) angle = Math::PI/2.0f;
+ if ( m_crashMode == TGC_LEFT ) angle = -Math::PI/2.0f;
+ m_angle = Math::NormAngle(m_object->RetAngleY(0)+angle);
m_phase = TGP_CLTURN;
}
}
if ( m_phase == TGP_CLTURN ) // turns after collision?
{
- angle = NormAngle(m_object->RetAngleY(0));
+ angle = Math::NormAngle(m_object->RetAngleY(0));
limit = 0.1f;
- if ( Abs(angle-m_angle) < limit )
+ if ( fabs(angle-m_angle) < limit )
{
m_physics->SetMotorSpeedZ(0.0f); // stops the rotation
m_pos = pos;
@@ -1429,11 +1428,11 @@ bool CTaskGoto::LeakSearch(D3DVECTOR &pos, float &delay)
// Calculates the force of repulsion due to obstacles.
// The vector length rendered is between 0 and 1.
-void CTaskGoto::ComputeRepulse(FPOINT &dir)
+void CTaskGoto::ComputeRepulse(Math::Point &dir)
{
#if 0
D3DVECTOR iPos, oPos;
- FPOINT repulse;
+ Math::Point repulse;
CObject *pObj;
float dist, iRadius, oRadius;
int i;
@@ -1478,7 +1477,7 @@ void CTaskGoto::ComputeRepulse(FPOINT &dir)
#else
ObjectType iType, oType;
D3DVECTOR iPos, oPos;
- FPOINT repulse;
+ Math::Point repulse;
CObject *pObj;
float gDist, add, addi, fac, dist, iRadius, oRadius;
int i, j;
@@ -1723,8 +1722,8 @@ void CTaskGoto::BeamStart()
min = m_object->RetPosition(0);
max = m_goal;
- if ( min.x > max.x ) Swap(min.x, max.x);
- if ( min.z > max.z ) Swap(min.z, max.z);
+ if ( min.x > max.x ) Math::Swap(min.x, max.x);
+ if ( min.z > max.z ) Math::Swap(min.z, max.z);
min.x -= 10.0f*BM_DIM_STEP;
min.z -= 10.0f*BM_DIM_STEP;
max.x += 10.0f*BM_DIM_STEP;
@@ -1780,7 +1779,7 @@ Error CTaskGoto::BeamSearch(const D3DVECTOR &start, const D3DVECTOR &goal,
if ( step > 20.0f ) step = 20.0f;
nbIter = 200; // in order not to lower the framerate
m_bmIterCounter = 0;
- return BeamExplore(start, start, goal, goalRadius, 165.0f*PI/180.0f, 22, step, 0, nbIter);
+ return BeamExplore(start, start, goal, goalRadius, 165.0f*Math::PI/180.0f, 22, step, 0, nbIter);
}
// prevPos: previous position
@@ -1890,7 +1889,7 @@ D3DVECTOR CTaskGoto::BeamPoint(const D3DVECTOR &startPoint,
D3DVECTOR resPoint;
float goalAngle;
- goalAngle = RotateAngle(goalPoint.x-startPoint.x, goalPoint.z-startPoint.z);
+ goalAngle = Math::RotateAngle(goalPoint.x-startPoint.x, goalPoint.z-startPoint.z);
resPoint.x = startPoint.x + cosf(goalAngle+angle)*step;
resPoint.z = startPoint.z + sinf(goalAngle+angle)*step;
@@ -1912,8 +1911,8 @@ void CTaskGoto::BitmapDebug(const D3DVECTOR &min, const D3DVECTOR &max,
maxx = (int)((max.x+1600.0f)/BM_DIM_STEP);
maxy = (int)((max.z+1600.0f)/BM_DIM_STEP);
- if ( minx > maxx ) Swap(minx, maxx);
- if ( miny > maxy ) Swap(miny, maxy);
+ if ( minx > maxx ) Math::Swap(minx, maxx);
+ if ( miny > maxy ) Math::Swap(miny, maxy);
OutputDebugString("Bitmap :\n");
for ( y=miny ; y<=maxy ; y++ )
@@ -2110,8 +2109,8 @@ void CTaskGoto::BitmapTerrain(int minx, int miny, int maxx, int maxy)
int x, y;
bool bAcceptWater, bFly;
- if ( minx > maxx ) Swap(minx, maxx);
- if ( miny > maxy ) Swap(miny, maxy);
+ if ( minx > maxx ) Math::Swap(minx, maxx);
+ if ( miny > maxy ) Math::Swap(miny, maxy);
if ( minx < 0 ) minx = 0;
if ( miny < 0 ) miny = 0;
@@ -2126,7 +2125,7 @@ void CTaskGoto::BitmapTerrain(int minx, int miny, int maxx, int maxy)
if ( minx >= m_bmMinX && maxx <= m_bmMaxX &&
miny >= m_bmMinY && maxy <= m_bmMaxY ) return;
- aLimit = 20.0f*PI/180.0f;
+ aLimit = 20.0f*Math::PI/180.0f;
bAcceptWater = false;
bFly = false;
@@ -2139,7 +2138,7 @@ void CTaskGoto::BitmapTerrain(int minx, int miny, int maxx, int maxy)
type == OBJECT_MOBILEwt ||
type == OBJECT_MOBILEtg ) // wheels?
{
- aLimit = 20.0f*PI/180.0f;
+ aLimit = 20.0f*Math::PI/180.0f;
}
if ( type == OBJECT_MOBILEta ||
@@ -2147,7 +2146,7 @@ void CTaskGoto::BitmapTerrain(int minx, int miny, int maxx, int maxy)
type == OBJECT_MOBILEti ||
type == OBJECT_MOBILEts ) // caterpillars?
{
- aLimit = 35.0f*PI/180.0f;
+ aLimit = 35.0f*Math::PI/180.0f;
}
if ( type == OBJECT_MOBILErt ||
@@ -2155,18 +2154,18 @@ void CTaskGoto::BitmapTerrain(int minx, int miny, int maxx, int maxy)
type == OBJECT_MOBILErr ||
type == OBJECT_MOBILErs ) // large caterpillars?
{
- aLimit = 35.0f*PI/180.0f;
+ aLimit = 35.0f*Math::PI/180.0f;
}
if ( type == OBJECT_MOBILEsa ) // submarine caterpillars?
{
- aLimit = 35.0f*PI/180.0f;
+ aLimit = 35.0f*Math::PI/180.0f;
bAcceptWater = true;
}
if ( type == OBJECT_MOBILEdr ) // designer caterpillars?
{
- aLimit = 35.0f*PI/180.0f;
+ aLimit = 35.0f*Math::PI/180.0f;
}
if ( type == OBJECT_MOBILEfa ||
@@ -2175,7 +2174,7 @@ void CTaskGoto::BitmapTerrain(int minx, int miny, int maxx, int maxy)
type == OBJECT_MOBILEfi ||
type == OBJECT_MOBILEft ) // flying?
{
- aLimit = 15.0f*PI/180.0f;
+ aLimit = 15.0f*Math::PI/180.0f;
bFly = true;
}
@@ -2184,7 +2183,7 @@ void CTaskGoto::BitmapTerrain(int minx, int miny, int maxx, int maxy)
type == OBJECT_MOBILEis ||
type == OBJECT_MOBILEii ) // insect legs?
{
- aLimit = 60.0f*PI/180.0f;
+ aLimit = 60.0f*Math::PI/180.0f;
}
for ( y=miny ; y<=maxy ; y++ )
diff --git a/src/object/task/taskgoto.h b/src/object/task/taskgoto.h
index 498bff5..d0e4953 100644
--- a/src/object/task/taskgoto.h
+++ b/src/object/task/taskgoto.h
@@ -19,7 +19,7 @@
#pragma once
-#include "common/misc.h"
+#include "object/task/task.h"
#include "graphics/d3d/d3dengine.h"
@@ -95,7 +95,7 @@ protected:
bool AdjustBuilding(D3DVECTOR &pos, float margin, float &distance);
bool GetHotPoint(CObject *pObj, D3DVECTOR &pos, bool bTake, float distance, float &suppl);
bool LeakSearch(D3DVECTOR &pos, float &delay);
- void ComputeRepulse(FPOINT &dir);
+ void ComputeRepulse(Math::Point &dir);
void ComputeFlyingRepulse(float &dir);
int BeamShortcut();
diff --git a/src/object/task/taskgungoal.cpp b/src/object/task/taskgungoal.cpp
index 5a44ade..d4db1c8 100644
--- a/src/object/task/taskgungoal.cpp
+++ b/src/object/task/taskgungoal.cpp
@@ -16,8 +16,6 @@
// taskgungoal.cpp
-#define STRICT
-#define D3D_OVERLOADS
#include <windows.h>
#include <stdio.h>
@@ -104,7 +102,7 @@ Error CTaskGunGoal::Start(float dirV, float dirH)
}
else
{
- speedV = 1.0f/(Abs(m_finalDirV-m_initialDirV)*1.0f);
+ speedV = 1.0f/(fabs(m_finalDirV-m_initialDirV)*1.0f);
}
m_initialDirH = m_object->RetGunGoalH();
@@ -118,10 +116,10 @@ Error CTaskGunGoal::Start(float dirV, float dirH)
}
else
{
- speedH = 1.0f/(Abs(m_finalDirH-m_initialDirH)*1.0f);
+ speedH = 1.0f/(fabs(m_finalDirH-m_initialDirH)*1.0f);
}
- m_speed = Min(speedV, speedH);
+ m_speed = Math::Min(speedV, speedH);
if ( m_finalDirV != m_initialDirV ||
m_finalDirH != m_initialDirH )
diff --git a/src/object/task/taskgungoal.h b/src/object/task/taskgungoal.h
index 2ef8efc..d8cca60 100644
--- a/src/object/task/taskgungoal.h
+++ b/src/object/task/taskgungoal.h
@@ -19,7 +19,7 @@
#pragma once
-#include "common/misc.h"
+#include "object/task/task.h"
class CInstanceManager;
diff --git a/src/object/task/taskinfo.cpp b/src/object/task/taskinfo.cpp
index 9897c88..3548426 100644
--- a/src/object/task/taskinfo.cpp
+++ b/src/object/task/taskinfo.cpp
@@ -16,8 +16,6 @@
// taskinfo.cpp
-#define STRICT
-#define D3D_OVERLOADS
#include <windows.h>
#include <stdio.h>
@@ -151,7 +149,7 @@ Error CTaskInfo::Start(char *name, float value, float power, bool bSend)
pos.y += 9.5f;
goal = m_object->RetPosition(0);
goal.y += 4.0f;
- m_particule->CreateRay(pos, goal, PARTIRAY3, FPOINT(2.0f, 2.0f), 1.0f);
+ m_particule->CreateRay(pos, goal, PARTIRAY3, Math::Point(2.0f, 2.0f), 1.0f);
}
if ( op == 2 ) // reception?
{
@@ -159,7 +157,7 @@ Error CTaskInfo::Start(char *name, float value, float power, bool bSend)
goal.y += 9.5f;
pos = m_object->RetPosition(0);
pos.y += 4.0f;
- m_particule->CreateRay(pos, goal, PARTIRAY3, FPOINT(2.0f, 2.0f), 1.0f);
+ m_particule->CreateRay(pos, goal, PARTIRAY3, Math::Point(2.0f, 2.0f), 1.0f);
}
m_progress = 0.0f;
diff --git a/src/object/task/taskinfo.h b/src/object/task/taskinfo.h
index 5f08f01..9c0ae12 100644
--- a/src/object/task/taskinfo.h
+++ b/src/object/task/taskinfo.h
@@ -19,7 +19,7 @@
#pragma once
-#include "common/misc.h"
+#include "object/task/task.h"
class CInstanceManager;
diff --git a/src/object/task/taskmanager.cpp b/src/object/task/taskmanager.cpp
index 08ab0ce..2ec51fc 100644
--- a/src/object/task/taskmanager.cpp
+++ b/src/object/task/taskmanager.cpp
@@ -16,8 +16,6 @@
// taskmanager.cpp
-#define STRICT
-#define D3D_OVERLOADS
#include <windows.h>
#include <stdio.h>
diff --git a/src/object/task/taskmanager.h b/src/object/task/taskmanager.h
index 476e90f..36406e4 100644
--- a/src/object/task/taskmanager.h
+++ b/src/object/task/taskmanager.h
@@ -19,7 +19,7 @@
#pragma once
-#include "common/misc.h"
+#include "object/task/task.h"
#include "object/object.h"
#include "object/task/taskmanip.h"
#include "object/task/taskgoto.h"
diff --git a/src/object/task/taskmanip.cpp b/src/object/task/taskmanip.cpp
index 36bc4ae..3e1fea7 100644
--- a/src/object/task/taskmanip.cpp
+++ b/src/object/task/taskmanip.cpp
@@ -16,14 +16,13 @@
// taskmanip.cpp
-#define STRICT
-#define D3D_OVERLOADS
#include <windows.h>
#include <stdio.h>
#include <d3d.h>
#include "common/struct.h"
+#include "math/geometry.h"
#include "graphics/d3d/d3dengine.h"
#include "math/old/d3dmath.h"
#include "math/old/math3d.h"
@@ -91,7 +90,7 @@ bool CTaskManip::EventProcess(const Event &event)
{
a = m_object->RetAngleY(0);
g = m_angle;
- cirSpeed = Direction(a, g)*1.0f;
+ cirSpeed = Math::Direction(a, g)*1.0f;
if ( m_physics->RetType() == TYPE_FLYING ) // flying on the ground?
{
cirSpeed *= 4.0f; // more fishing
@@ -206,47 +205,47 @@ void CTaskManip::InitAngle()
}
if ( m_arm == TMA_FFRONT )
{
- m_finalAngle[0] = 35.0f*PI/180.0f; // arm
- m_finalAngle[1] = -95.0f*PI/180.0f; // forearm
- m_finalAngle[2] = -27.0f*PI/180.0f; // hand
+ m_finalAngle[0] = 35.0f*Math::PI/180.0f; // arm
+ m_finalAngle[1] = -95.0f*Math::PI/180.0f; // forearm
+ m_finalAngle[2] = -27.0f*Math::PI/180.0f; // hand
}
if ( m_arm == TMA_FBACK )
{
- m_finalAngle[0] = 145.0f*PI/180.0f; // arm
- m_finalAngle[1] = 95.0f*PI/180.0f; // forearm
- m_finalAngle[2] = 27.0f*PI/180.0f; // hand
+ m_finalAngle[0] = 145.0f*Math::PI/180.0f; // arm
+ m_finalAngle[1] = 95.0f*Math::PI/180.0f; // forearm
+ m_finalAngle[2] = 27.0f*Math::PI/180.0f; // hand
}
if ( m_arm == TMA_POWER )
{
- m_finalAngle[0] = 95.0f*PI/180.0f; // arm
- m_finalAngle[1] = 125.0f*PI/180.0f; // forearm
- m_finalAngle[2] = 50.0f*PI/180.0f; // hand
+ m_finalAngle[0] = 95.0f*Math::PI/180.0f; // arm
+ m_finalAngle[1] = 125.0f*Math::PI/180.0f; // forearm
+ m_finalAngle[2] = 50.0f*Math::PI/180.0f; // hand
}
if ( m_arm == TMA_OTHER )
{
if ( m_height <= 3.0f )
{
- m_finalAngle[0] = 55.0f*PI/180.0f; // arm
- m_finalAngle[1] = -90.0f*PI/180.0f; // forearm
- m_finalAngle[2] = -35.0f*PI/180.0f; // hand
+ m_finalAngle[0] = 55.0f*Math::PI/180.0f; // arm
+ m_finalAngle[1] = -90.0f*Math::PI/180.0f; // forearm
+ m_finalAngle[2] = -35.0f*Math::PI/180.0f; // hand
}
else
{
- m_finalAngle[0] = 70.0f*PI/180.0f; // arm
- m_finalAngle[1] = -90.0f*PI/180.0f; // forearm
- m_finalAngle[2] = -50.0f*PI/180.0f; // hand
+ m_finalAngle[0] = 70.0f*Math::PI/180.0f; // arm
+ m_finalAngle[1] = -90.0f*Math::PI/180.0f; // forearm
+ m_finalAngle[2] = -50.0f*Math::PI/180.0f; // hand
}
}
if ( m_hand == TMH_OPEN ) // open clamp?
{
- m_finalAngle[3] = -PI*0.10f; // clamp close
- m_finalAngle[4] = PI*0.10f; // clamp remote
+ m_finalAngle[3] = -Math::PI*0.10f; // clamp close
+ m_finalAngle[4] = Math::PI*0.10f; // clamp remote
}
if ( m_hand == TMH_CLOSE ) // clamp closed?
{
- m_finalAngle[3] = PI*0.05f; // clamp close
- m_finalAngle[4] = -PI*0.05f; // clamp remote
+ m_finalAngle[3] = Math::PI*0.05f; // clamp close
+ m_finalAngle[4] = -Math::PI*0.05f; // clamp remote
}
for ( i=0 ; i<5 ; i++ )
@@ -257,9 +256,9 @@ void CTaskManip::InitAngle()
max = 0.0f;
for ( i=0 ; i<5 ; i++ )
{
- max = Max(max, Abs(m_initialAngle[i] - m_finalAngle[i]));
+ max = Math::Max(max, fabs(m_initialAngle[i] - m_finalAngle[i]));
}
- m_speed = (PI*1.0f)/max;
+ m_speed = (Math::PI*1.0f)/max;
if ( m_speed > 3.0f ) m_speed = 3.0f; // piano, ma non troppo (?)
energy = 0.0f;
@@ -315,7 +314,7 @@ Error CTaskManip::Start(TaskManipOrder order, TaskManipArm arm)
m_speed = 1.0f/1.5f;
iAngle = m_object->RetAngleY(0);
- iAngle = NormAngle(iAngle); // 0..2*PI
+ iAngle = Math::NormAngle(iAngle); // 0..2*Math::PI
oAngle = iAngle;
m_bError = true; // operation impossible
@@ -459,7 +458,7 @@ Error CTaskManip::Start(TaskManipOrder order, TaskManipArm arm)
{
return ERR_MANIP_NIL;
}
- m_angle += PI;
+ m_angle += Math::PI;
m_move = -1.0f; // back necessary
}
if ( m_arm == TMA_POWER )
@@ -508,7 +507,7 @@ Error CTaskManip::Start(TaskManipOrder order, TaskManipArm arm)
if ( m_move != 0.0f ) // forward or backward?
{
- m_timeLimit = m_physics->RetLinTimeLength(Abs(len))*1.5f;
+ m_timeLimit = m_physics->RetLinTimeLength(fabs(len))*1.5f;
if ( m_timeLimit < 0.5f ) m_timeLimit = 0.5f;
}
@@ -535,7 +534,7 @@ Error CTaskManip::Start(TaskManipOrder order, TaskManipArm arm)
if ( m_bSubm )
{
- m_camera->StartCentering(m_object, PI*0.8f, 99.9f, 0.0f, 0.5f);
+ m_camera->StartCentering(m_object, Math::PI*0.8f, 99.9f, 0.0f, 0.5f);
}
m_physics->SetFreeze(true); // it does not move
@@ -564,9 +563,9 @@ Error CTaskManip::IsEnded()
if ( m_bTurn ) // preliminary rotation?
{
angle = m_object->RetAngleY(0);
- angle = NormAngle(angle); // 0..2*PI
+ angle = Math::NormAngle(angle); // 0..2*Math::PI
- if ( TestAngle(angle, m_angle-PI*0.01f, m_angle+PI*0.01f) )
+ if ( Math::TestAngle(angle, m_angle-Math::PI*0.01f, m_angle+Math::PI*0.01f) )
{
m_bTurn = false; // rotation ended
m_physics->SetMotorSpeedZ(0.0f);
@@ -800,17 +799,17 @@ CObject* CTaskManip::SearchTakeFrontObject(bool bAdvance, D3DVECTOR &pos,
iPos = m_object->RetPosition(0);
iAngle = m_object->RetAngleY(0);
- iAngle = NormAngle(iAngle); // 0..2*PI
+ iAngle = Math::NormAngle(iAngle); // 0..2*Math::PI
if ( bAdvance && m_energy > 0.0f )
{
- aLimit = 60.0f*PI/180.0f;
+ aLimit = 60.0f*Math::PI/180.0f;
dLimit = MARGIN_FRONT+10.0f;
}
else
{
-//? aLimit = 7.0f*PI/180.0f;
- aLimit = 15.0f*PI/180.0f; //OK 1.9
+//? aLimit = 7.0f*Math::PI/180.0f;
+ aLimit = 15.0f*Math::PI/180.0f; //OK 1.9
dLimit = MARGIN_FRONT;
}
@@ -848,12 +847,12 @@ CObject* CTaskManip::SearchTakeFrontObject(bool bAdvance, D3DVECTOR &pos,
if ( pObj->RetZoomY(0) != 1.0f ) continue;
oPos = pObj->RetPosition(0);
- distance = Abs(Length(oPos, iPos)-TAKE_DIST);
+ distance = fabs(Length(oPos, iPos)-TAKE_DIST);
f = 1.0f-distance/50.0f;
if ( f < 0.5f ) f = 0.5f;
- angle = RotateAngle(oPos.x-iPos.x, iPos.z-oPos.z); // CW !
- if ( !TestAngle(angle, iAngle-aLimit*f, iAngle+aLimit*f) ) continue;
+ angle = Math::RotateAngle(oPos.x-iPos.x, iPos.z-oPos.z); // CW !
+ if ( !Math::TestAngle(angle, iAngle-aLimit*f, iAngle+aLimit*f) ) continue;
if ( distance < -dLimit ||
distance > dLimit ) continue;
@@ -891,17 +890,17 @@ CObject* CTaskManip::SearchTakeBackObject(bool bAdvance, D3DVECTOR &pos,
int i;
iPos = m_object->RetPosition(0);
- iAngle = m_object->RetAngleY(0)+PI;
- iAngle = NormAngle(iAngle); // 0..2*PI
+ iAngle = m_object->RetAngleY(0)+Math::PI;
+ iAngle = Math::NormAngle(iAngle); // 0..2*Math::PI
if ( bAdvance && m_energy > 0.0f )
{
- aLimit = 60.0f*PI/180.0f;
+ aLimit = 60.0f*Math::PI/180.0f;
dLimit = MARGIN_BACK+5.0f;
}
else
{
- aLimit = 7.0f*PI/180.0f;
+ aLimit = 7.0f*Math::PI/180.0f;
dLimit = MARGIN_BACK;
}
@@ -939,12 +938,12 @@ CObject* CTaskManip::SearchTakeBackObject(bool bAdvance, D3DVECTOR &pos,
if ( pObj->RetZoomY(0) != 1.0f ) continue;
oPos = pObj->RetPosition(0);
- distance = Abs(Length(oPos, iPos)-TAKE_DIST);
+ distance = fabs(Length(oPos, iPos)-TAKE_DIST);
f = 1.0f-distance/50.0f;
if ( f < 0.5f ) f = 0.5f;
- angle = RotateAngle(oPos.x-iPos.x, iPos.z-oPos.z); // CW !
- if ( !TestAngle(angle, iAngle-aLimit*f, iAngle+aLimit*f) ) continue;
+ angle = Math::RotateAngle(oPos.x-iPos.x, iPos.z-oPos.z); // CW !
+ if ( !Math::TestAngle(angle, iAngle-aLimit*f, iAngle+aLimit*f) ) continue;
if ( distance < -dLimit ||
distance > dLimit ) continue;
@@ -992,16 +991,16 @@ CObject* CTaskManip::SearchOtherObject(bool bAdvance, D3DVECTOR &pos,
if ( !m_object->GetCrashSphere(0, iPos, iRad) ) return 0;
iAngle = m_object->RetAngleY(0);
- iAngle = NormAngle(iAngle); // 0..2*PI
+ iAngle = Math::NormAngle(iAngle); // 0..2*Math::PI
if ( bAdvance && m_energy > 0.0f )
{
- aLimit = 60.0f*PI/180.0f;
+ aLimit = 60.0f*Math::PI/180.0f;
dLimit = MARGIN_FRIEND+10.0f;
}
else
{
- aLimit = 7.0f*PI/180.0f;
+ aLimit = 7.0f*Math::PI/180.0f;
dLimit = MARGIN_FRIEND;
}
@@ -1064,34 +1063,34 @@ CObject* CTaskManip::SearchOtherObject(bool bAdvance, D3DVECTOR &pos,
if ( type == OBJECT_TOWER ||
type == OBJECT_RESEARCH )
{
- oLimit = 45.0f*PI/180.0f;
+ oLimit = 45.0f*Math::PI/180.0f;
}
else if ( type == OBJECT_ENERGY )
{
- oLimit = 90.0f*PI/180.0f;
+ oLimit = 90.0f*Math::PI/180.0f;
}
else if ( type == OBJECT_LABO )
{
- oLimit = 120.0f*PI/180.0f;
+ oLimit = 120.0f*Math::PI/180.0f;
}
else if ( type == OBJECT_NUCLEAR )
{
- oLimit = 45.0f*PI/180.0f;
+ oLimit = 45.0f*Math::PI/180.0f;
}
else
{
- oLimit = 45.0f*PI/180.0f;
- oAngle += PI; // is behind
+ oLimit = 45.0f*Math::PI/180.0f;
+ oAngle += Math::PI; // is behind
}
- oAngle = NormAngle(oAngle); // 0..2*PI
- angle = RotateAngle(iPos.x-oPos.x, oPos.z-iPos.z); // CW !
- if ( !TestAngle(angle, oAngle-oLimit, oAngle+oLimit) ) continue;
+ oAngle = Math::NormAngle(oAngle); // 0..2*Math::PI
+ angle = Math::RotateAngle(iPos.x-oPos.x, oPos.z-iPos.z); // CW !
+ if ( !Math::TestAngle(angle, oAngle-oLimit, oAngle+oLimit) ) continue;
- distance = Abs(Length(oPos, iPos)-TAKE_DIST);
+ distance = fabs(Length(oPos, iPos)-TAKE_DIST);
if ( distance <= dLimit )
{
- angle = RotateAngle(oPos.x-iPos.x, iPos.z-oPos.z); // CW !
- if ( TestAngle(angle, iAngle-aLimit, iAngle+aLimit) )
+ angle = Math::RotateAngle(oPos.x-iPos.x, iPos.z-oPos.z); // CW !
+ if ( Math::TestAngle(angle, iAngle-aLimit, iAngle+aLimit) )
{
character = pObj->RetCharacter();
height = character->posPower.y;
@@ -1152,7 +1151,7 @@ bool CTaskManip::TruckTakeObject()
pos = D3DVECTOR(4.7f, 0.0f, 0.0f); // relative to the hand (lem4)
fret->SetPosition(0, pos);
fret->SetAngleX(0, 0.0f);
- fret->SetAngleZ(0, PI/2.0f);
+ fret->SetAngleZ(0, Math::PI/2.0f);
fret->SetAngleY(0, 0.0f);
}
@@ -1184,7 +1183,7 @@ bool CTaskManip::TruckTakeObject()
pos = D3DVECTOR(4.7f, 0.0f, 0.0f); // relative to the hand (lem4)
fret->SetPosition(0, pos);
fret->SetAngleX(0, 0.0f);
- fret->SetAngleZ(0, PI/2.0f);
+ fret->SetAngleZ(0, Math::PI/2.0f);
fret->SetAngleY(0, 0.0f);
}
@@ -1203,7 +1202,7 @@ bool CTaskManip::TruckTakeObject()
pos = D3DVECTOR(4.7f, 0.0f, 0.0f); // relative to the hand (lem4)
fret->SetPosition(0, pos);
fret->SetAngleX(0, 0.0f);
- fret->SetAngleZ(0, PI/2.0f);
+ fret->SetAngleZ(0, Math::PI/2.0f);
fret->SetAngleY(0, 0.0f);
m_object->SetFret(fret); // takes
@@ -1218,7 +1217,7 @@ bool CTaskManip::TruckTakeObject()
pos = D3DVECTOR(4.7f, 0.0f, 0.0f); // relative to the hand (lem4)
fret->SetPosition(0, pos);
fret->SetAngleX(0, 0.0f);
- fret->SetAngleZ(0, PI/2.0f);
+ fret->SetAngleZ(0, Math::PI/2.0f);
fret->SetAngleY(0, 0.0f);
fret->SetTruckPart(3); // takes with the hand
@@ -1242,7 +1241,7 @@ bool CTaskManip::TruckTakeObject()
pos = D3DVECTOR(4.7f, 0.0f, 0.0f); // relative to the hand (lem4)
fret->SetPosition(0, pos);
fret->SetAngleX(0, 0.0f);
- fret->SetAngleZ(0, PI/2.0f);
+ fret->SetAngleZ(0, Math::PI/2.0f);
fret->SetAngleY(0, 0.0f);
m_object->SetFret(fret); // takes
@@ -1272,7 +1271,7 @@ bool CTaskManip::TruckDeposeObject()
pos = Transform(*mat, D3DVECTOR(0.0f, 1.0f, 0.0f));
m_terrain->MoveOnFloor(pos);
fret->SetPosition(0, pos);
- fret->SetAngleY(0, m_object->RetAngleY(0)+PI/2.0f);
+ fret->SetAngleY(0, m_object->RetAngleY(0)+Math::PI/2.0f);
fret->SetAngleX(0, 0.0f);
fret->SetAngleZ(0, 0.0f);
fret->FloorAdjust(); // plate well on the ground
@@ -1291,7 +1290,7 @@ bool CTaskManip::TruckDeposeObject()
pos = Transform(*mat, D3DVECTOR(0.0f, 1.0f, 0.0f));
m_terrain->MoveOnFloor(pos);
fret->SetPosition(0, pos);
- fret->SetAngleY(0, m_object->RetAngleY(0)+PI/2.0f);
+ fret->SetAngleY(0, m_object->RetAngleY(0)+Math::PI/2.0f);
fret->SetAngleX(0, 0.0f);
fret->SetAngleZ(0, 0.0f);
diff --git a/src/object/task/taskmanip.h b/src/object/task/taskmanip.h
index b2c8c29..da1be09 100644
--- a/src/object/task/taskmanip.h
+++ b/src/object/task/taskmanip.h
@@ -20,8 +20,8 @@
#include "object/task/task.h"
-#include "common/misc.h"
#include "graphics/d3d/d3dengine.h"
+#include "object/object.h"
class CInstanceManager;
diff --git a/src/object/task/taskpen.cpp b/src/object/task/taskpen.cpp
index bd88b26..8a62431 100644
--- a/src/object/task/taskpen.cpp
+++ b/src/object/task/taskpen.cpp
@@ -16,8 +16,6 @@
// taskpen.cpp
-#define STRICT
-#define D3D_OVERLOADS
#include <windows.h>
#include <stdio.h>
@@ -62,7 +60,7 @@ CTaskPen::~CTaskPen()
bool CTaskPen::EventProcess(const Event &event)
{
D3DVECTOR pos, speed;
- FPOINT dim;
+ Math::Point dim;
int i;
if ( m_engine->RetPause() ) return true;
@@ -96,12 +94,12 @@ bool CTaskPen::EventProcess(const Event &event)
m_lastParticule = m_time;
pos = m_supportPos;
- pos.x += (Rand()-0.5f)*5.0f;
- pos.z += (Rand()-0.5f)*5.0f;
- speed.x = (Rand()-0.5f)*3.0f;
- speed.z = (Rand()-0.5f)*3.0f;
- speed.y = Rand()*2.0f;
- dim.x = Rand()*1.5f+2.0f;
+ pos.x += (Math::Rand()-0.5f)*5.0f;
+ pos.z += (Math::Rand()-0.5f)*5.0f;
+ speed.x = (Math::Rand()-0.5f)*3.0f;
+ speed.z = (Math::Rand()-0.5f)*3.0f;
+ speed.y = Math::Rand()*2.0f;
+ dim.x = Math::Rand()*1.5f+2.0f;
dim.y = dim.x;
m_particule->CreateParticule(pos, speed, dim, PARTISMOKE3, 4.0f);
}
@@ -116,12 +114,12 @@ bool CTaskPen::EventProcess(const Event &event)
m_lastParticule = m_time;
pos = m_supportPos;
- pos.x += (Rand()-0.5f)*5.0f;
- pos.z += (Rand()-0.5f)*5.0f;
- speed.x = (Rand()-0.5f)*3.0f;
- speed.z = (Rand()-0.5f)*3.0f;
- speed.y = Rand()*5.0f;
- dim.x = Rand()*1.0f+1.0f;
+ pos.x += (Math::Rand()-0.5f)*5.0f;
+ pos.z += (Math::Rand()-0.5f)*5.0f;
+ speed.x = (Math::Rand()-0.5f)*3.0f;
+ speed.z = (Math::Rand()-0.5f)*3.0f;
+ speed.y = Math::Rand()*5.0f;
+ dim.x = Math::Rand()*1.0f+1.0f;
dim.y = dim.x;
m_particule->CreateParticule(pos, speed, dim, PARTIVAPOR, 4.0f);
}
@@ -134,7 +132,7 @@ bool CTaskPen::EventProcess(const Event &event)
}
else
{
- pos.y = -3.2f*Bounce(Min(m_progress*1.8f, 1.0f));
+ pos.y = -3.2f*Math::Bounce(Math::Min(m_progress*1.8f, 1.0f));
}
m_object->SetPosition(10+i, pos);
}
@@ -200,7 +198,7 @@ Error CTaskPen::Start(bool bDown, int color)
m_lastParticule = 0.0f;
-//? m_camera->StartCentering(m_object, PI*0.60f, 99.9f, 5.0f, 0.5f);
+//? m_camera->StartCentering(m_object, Math::PI*0.60f, 99.9f, 5.0f, 0.5f);
return ERR_OK;
}
@@ -219,7 +217,7 @@ Error CTaskPen::IsEnded()
{
m_phase = TPP_TURN;
m_progress = 0.0f;
- m_delay = Abs(m_oldAngle-m_newAngle)/PI;
+ m_delay = fabs(m_oldAngle-m_newAngle)/Math::PI;
m_time = 0.0f;
m_lastParticule = 0.0f;
if ( m_delay > 0.0f )
@@ -270,17 +268,17 @@ void CTaskPen::SoundManip(float time, float amplitude, float frequency)
int CTaskPen::AngleToRank(float angle)
{
-//? return (int)(angle/(-45.0f*PI/180.0f));
+//? return (int)(angle/(-45.0f*Math::PI/180.0f));
angle = -angle;
- angle += (45.0f*PI/180.0f)/2.0f;
- return (int)(angle/(45.0f*PI/180.0f));
+ angle += (45.0f*Math::PI/180.0f)/2.0f;
+ return (int)(angle/(45.0f*Math::PI/180.0f));
}
// Converting a color to the angle of carousel of pencils.
float CTaskPen::ColorToAngle(int color)
{
- return -45.0f*PI/180.0f*ColorToRank(color);
+ return -45.0f*Math::PI/180.0f*ColorToRank(color);
}
// Converting a color number to the pencil (0 .. 7).
diff --git a/src/object/task/taskpen.h b/src/object/task/taskpen.h
index 2f1f270..4ed135d 100644
--- a/src/object/task/taskpen.h
+++ b/src/object/task/taskpen.h
@@ -19,6 +19,7 @@
#pragma once
+#include "object/task/task.h"
#include "graphics/d3d/d3dengine.h"
diff --git a/src/object/task/taskrecover.cpp b/src/object/task/taskrecover.cpp
index cb47bce..3e3243c 100644
--- a/src/object/task/taskrecover.cpp
+++ b/src/object/task/taskrecover.cpp
@@ -16,14 +16,14 @@
// taskrecover.cpp
-#define STRICT
-#define D3D_OVERLOADS
#include <windows.h>
#include <stdio.h>
#include <d3d.h>
#include "common/struct.h"
+#include "math/func.h"
+#include "math/geometry.h"
#include "math/old/math3d.h"
#include "common/event.h"
#include "common/misc.h"
@@ -67,7 +67,7 @@ bool CTaskRecover::EventProcess(const Event &event)
{
CObject* power;
D3DVECTOR pos, speed;
- FPOINT dim;
+ Math::Point dim;
float a, g, cirSpeed, angle, energy, dist, linSpeed;
if ( m_engine->RetPause() ) return true;
@@ -78,7 +78,7 @@ bool CTaskRecover::EventProcess(const Event &event)
{
a = m_object->RetAngleY(0);
g = m_angle;
- cirSpeed = Direction(a, g)*1.0f;
+ cirSpeed = Math::Direction(a, g)*1.0f;
if ( cirSpeed > 1.0f ) cirSpeed = 1.0f;
if ( cirSpeed < -1.0f ) cirSpeed = -1.0f;
@@ -91,11 +91,11 @@ bool CTaskRecover::EventProcess(const Event &event)
if ( m_phase == TRP_DOWN )
{
- angle = Prop(126, -10, m_progress);
+ angle = Math::PropAngle(126, -10, m_progress);
m_object->SetAngleZ(2, angle);
m_object->SetAngleZ(4, angle);
- angle = Prop(-144, 0, m_progress);
+ angle = Math::PropAngle(-144, 0, m_progress);
m_object->SetAngleZ(3, angle);
m_object->SetAngleZ(5, angle);
}
@@ -119,9 +119,9 @@ bool CTaskRecover::EventProcess(const Event &event)
power->SetEnergy(energy-ENERGY_RECOVER*event.rTime*m_speed);
}
- speed.x = (Rand()-0.5f)*0.1f*m_progress;
- speed.y = (Rand()-0.5f)*0.1f*m_progress;
- speed.z = (Rand()-0.5f)*0.1f*m_progress;
+ speed.x = (Math::Rand()-0.5f)*0.1f*m_progress;
+ speed.y = (Math::Rand()-0.5f)*0.1f*m_progress;
+ speed.z = (Math::Rand()-0.5f)*0.1f*m_progress;
m_ruin->SetCirVibration(speed);
if ( m_progress >= 0.75f )
@@ -139,13 +139,13 @@ bool CTaskRecover::EventProcess(const Event &event)
m_lastParticule = m_time;
pos = m_recoverPos;
- pos.x += (Rand()-0.5f)*8.0f*(1.0f-m_progress);
- pos.z += (Rand()-0.5f)*8.0f*(1.0f-m_progress);
+ pos.x += (Math::Rand()-0.5f)*8.0f*(1.0f-m_progress);
+ pos.z += (Math::Rand()-0.5f)*8.0f*(1.0f-m_progress);
pos.y -= 4.0f;
- speed.x = (Rand()-0.5f)*0.0f;
- speed.z = (Rand()-0.5f)*0.0f;
- speed.y = Rand()*15.0f;
- dim.x = Rand()*2.0f+1.5f;
+ speed.x = (Math::Rand()-0.5f)*0.0f;
+ speed.z = (Math::Rand()-0.5f)*0.0f;
+ speed.y = Math::Rand()*15.0f;
+ dim.x = Math::Rand()*2.0f+1.5f;
dim.y = dim.x;
m_particule->CreateParticule(pos, speed, dim, PARTIRECOVER, 1.0f, 0.0f, 0.0f);
}
@@ -153,11 +153,11 @@ bool CTaskRecover::EventProcess(const Event &event)
if ( m_phase == TRP_UP )
{
- angle = Prop(-10, 126, m_progress);
+ angle = Math::PropAngle(-10, 126, m_progress);
m_object->SetAngleZ(2, angle);
m_object->SetAngleZ(4, angle);
- angle = Prop(0, -144, m_progress);
+ angle = Math::PropAngle(0, -144, m_progress);
m_object->SetAngleZ(3, angle);
m_object->SetAngleZ(5, angle);
@@ -167,10 +167,10 @@ bool CTaskRecover::EventProcess(const Event &event)
pos = m_recoverPos;
pos.y -= 4.0f;
- speed.x = (Rand()-0.5f)*0.0f;
- speed.z = (Rand()-0.5f)*0.0f;
- speed.y = Rand()*15.0f;
- dim.x = Rand()*2.0f+1.5f;
+ speed.x = (Math::Rand()-0.5f)*0.0f;
+ speed.z = (Math::Rand()-0.5f)*0.0f;
+ speed.y = Math::Rand()*15.0f;
+ dim.x = Math::Rand()*2.0f+1.5f;
dim.y = dim.x;
m_particule->CreateParticule(pos, speed, dim, PARTIRECOVER, 1.0f, 0.0f, 0.0f);
}
@@ -213,7 +213,7 @@ Error CTaskRecover::Start()
iPos = m_object->RetPosition(0);
oPos = m_ruin->RetPosition(0);
- m_angle = RotateAngle(oPos.x-iPos.x, iPos.z-oPos.z); // CW !
+ m_angle = Math::RotateAngle(oPos.x-iPos.x, iPos.z-oPos.z); // CW !
m_metal = 0;
@@ -225,7 +225,7 @@ Error CTaskRecover::Start()
m_bError = false; // ok
- m_camera->StartCentering(m_object, PI*0.85f, 99.9f, 10.0f, 3.0f);
+ m_camera->StartCentering(m_object, Math::PI*0.85f, 99.9f, 10.0f, 3.0f);
return ERR_OK;
}
@@ -235,7 +235,7 @@ Error CTaskRecover::IsEnded()
{
D3DMATRIX* mat;
D3DVECTOR pos, speed, goal;
- FPOINT dim;
+ Math::Point dim;
float angle, dist, time;
int i;
@@ -245,9 +245,9 @@ Error CTaskRecover::IsEnded()
if ( m_phase == TRP_TURN ) // preliminary rotation?
{
angle = m_object->RetAngleY(0);
- angle = NormAngle(angle); // 0..2*PI
+ angle = Math::NormAngle(angle); // 0..2*Math::PI
- if ( TestAngle(angle, m_angle-PI*0.01f, m_angle+PI*0.01f) )
+ if ( Math::TestAngle(angle, m_angle-Math::PI*0.01f, m_angle+Math::PI*0.01f) )
{
m_physics->SetMotorSpeedZ(0.0f);
@@ -328,7 +328,7 @@ Error CTaskRecover::IsEnded()
goal = D3DVECTOR(RECOVER_DIST, 3.1f, -3.9f);
goal = Transform(*mat, goal);
m_particule->CreateRay(pos, goal, PARTIRAY2,
- FPOINT(2.0f, 2.0f), 8.0f);
+ Math::Point(2.0f, 2.0f), 8.0f);
m_soundChannel = m_sound->Play(SOUND_RECOVER, m_ruin->RetPosition(0), 0.0f, 1.0f, true);
m_sound->AddEnvelope(m_soundChannel, 0.6f, 1.0f, 2.0f, SOPER_CONTINUE);
@@ -370,10 +370,10 @@ Error CTaskRecover::IsEnded()
bool CTaskRecover::Abort()
{
- m_object->SetAngleZ(2, 126.0f*PI/180.0f);
- m_object->SetAngleZ(4, 126.0f*PI/180.0f);
- m_object->SetAngleZ(3, -144.0f*PI/180.0f);
- m_object->SetAngleZ(5, -144.0f*PI/180.0f); // rest
+ m_object->SetAngleZ(2, 126.0f*Math::PI/180.0f);
+ m_object->SetAngleZ(4, 126.0f*Math::PI/180.0f);
+ m_object->SetAngleZ(3, -144.0f*Math::PI/180.0f);
+ m_object->SetAngleZ(5, -144.0f*Math::PI/180.0f); // rest
if ( m_soundChannel != -1 )
{
diff --git a/src/object/task/taskrecover.h b/src/object/task/taskrecover.h
index 87efc07..9d9aa07 100644
--- a/src/object/task/taskrecover.h
+++ b/src/object/task/taskrecover.h
@@ -19,6 +19,7 @@
#pragma once
+#include "object/task/task.h"
#include "graphics/d3d/d3dengine.h"
diff --git a/src/object/task/taskreset.cpp b/src/object/task/taskreset.cpp
index 1b7ff95..f44f22a 100644
--- a/src/object/task/taskreset.cpp
+++ b/src/object/task/taskreset.cpp
@@ -16,8 +16,6 @@
// taskreset.cpp
-#define STRICT
-#define D3D_OVERLOADS
#include <windows.h>
#include <stdio.h>
@@ -66,7 +64,7 @@ CTaskReset::~CTaskReset()
bool CTaskReset::EventProcess(const Event &event)
{
D3DVECTOR pos, speed;
- FPOINT dim;
+ Math::Point dim;
float angle, duration;
if ( m_engine->RetPause() ) return true;
@@ -88,26 +86,26 @@ bool CTaskReset::EventProcess(const Event &event)
m_lastParticule = m_time;
pos = m_begin;
- pos.x += (Rand()-0.5f)*5.0f;
- pos.z += (Rand()-0.5f)*5.0f;
+ pos.x += (Math::Rand()-0.5f)*5.0f;
+ pos.z += (Math::Rand()-0.5f)*5.0f;
speed.x = 0.0f;
speed.z = 0.0f;
- speed.y = 5.0f+Rand()*5.0f;
- dim.x = Rand()*2.0f+2.0f;
+ speed.y = 5.0f+Math::Rand()*5.0f;
+ dim.x = Math::Rand()*2.0f+2.0f;
dim.y = dim.x;
m_particule->CreateParticule(pos, speed, dim, PARTIGLINTb, 2.0f);
pos = m_begin;
- speed.x = (Rand()-0.5f)*20.0f;
- speed.z = (Rand()-0.5f)*20.0f;
- speed.y = Rand()*10.0f;
+ speed.x = (Math::Rand()-0.5f)*20.0f;
+ speed.z = (Math::Rand()-0.5f)*20.0f;
+ speed.y = Math::Rand()*10.0f;
speed *= 1.0f-m_progress*0.5f;
pos += speed*1.5f;
speed = -speed;
dim.x = 0.6f;
dim.y = dim.x;
pos.y += dim.y;
- duration = Rand()*1.5f+1.5f;
+ duration = Math::Rand()*1.5f+1.5f;
m_particule->CreateTrack(pos, speed, dim, PARTITRACK6,
duration, 0.0f,
duration*0.9f, 0.7f);
@@ -123,12 +121,12 @@ bool CTaskReset::EventProcess(const Event &event)
{
m_lastParticule = m_time;
- pos.x += (Rand()-0.5f)*5.0f;
- pos.z += (Rand()-0.5f)*5.0f;
+ pos.x += (Math::Rand()-0.5f)*5.0f;
+ pos.z += (Math::Rand()-0.5f)*5.0f;
speed.x = 0.0f;
speed.z = 0.0f;
- speed.y = 2.0f+Rand()*2.0f;
- dim.x = Rand()*2.0f+2.0f;
+ speed.y = 2.0f+Math::Rand()*2.0f;
+ dim.x = Math::Rand()*2.0f+2.0f;
dim.y = dim.x;
m_particule->CreateParticule(pos, speed, dim, PARTIGLINTb, 2.0f);
}
@@ -146,24 +144,24 @@ bool CTaskReset::EventProcess(const Event &event)
m_lastParticule = m_time;
pos = m_goal;
- pos.x += (Rand()-0.5f)*5.0f;
- pos.z += (Rand()-0.5f)*5.0f;
+ pos.x += (Math::Rand()-0.5f)*5.0f;
+ pos.z += (Math::Rand()-0.5f)*5.0f;
speed.x = 0.0f;
speed.z = 0.0f;
- speed.y = 5.0f+Rand()*5.0f;
- dim.x = Rand()*2.0f+2.0f;
+ speed.y = 5.0f+Math::Rand()*5.0f;
+ dim.x = Math::Rand()*2.0f+2.0f;
dim.y = dim.x;
m_particule->CreateParticule(pos, speed, dim, PARTIGLINTb, 2.0f);
pos = m_goal;
- speed.x = (Rand()-0.5f)*20.0f;
- speed.z = (Rand()-0.5f)*20.0f;
- speed.y = Rand()*10.0f;
+ speed.x = (Math::Rand()-0.5f)*20.0f;
+ speed.z = (Math::Rand()-0.5f)*20.0f;
+ speed.y = Math::Rand()*10.0f;
speed *= 0.5f+m_progress*0.5f;
dim.x = 0.6f;
dim.y = dim.x;
pos.y += dim.y;
- duration = Rand()*1.5f+1.5f;
+ duration = Math::Rand()*1.5f+1.5f;
m_particule->CreateTrack(pos, speed, dim, PARTITRACK6,
duration, 0.0f,
duration*0.9f, 0.7f);
diff --git a/src/object/task/taskreset.h b/src/object/task/taskreset.h
index 4ebc032..d622cd0 100644
--- a/src/object/task/taskreset.h
+++ b/src/object/task/taskreset.h
@@ -19,7 +19,7 @@
#pragma once
-#include "common/misc.h"
+#include "object/task/task.h"
#include "graphics/d3d/d3dengine.h"
diff --git a/src/object/task/tasksearch.cpp b/src/object/task/tasksearch.cpp
index f182250..c002d6a 100644
--- a/src/object/task/tasksearch.cpp
+++ b/src/object/task/tasksearch.cpp
@@ -16,8 +16,6 @@
// tasksearch.cpp
-#define STRICT
-#define D3D_OVERLOADS
#include <windows.h>
#include <stdio.h>
@@ -63,7 +61,7 @@ bool CTaskSearch::EventProcess(const Event &event)
{
D3DMATRIX* mat;
D3DVECTOR pos, speed;
- FPOINT dim;
+ Math::Point dim;
float angle;
int i;
@@ -94,10 +92,10 @@ bool CTaskSearch::EventProcess(const Event &event)
pos = D3DVECTOR(6.5f, 0.2f, 0.0f);
pos = Transform(*mat, pos); // sensor position
- speed.x = (Rand()-0.5f)*20.0f;
- speed.z = (Rand()-0.5f)*20.0f;
+ speed.x = (Math::Rand()-0.5f)*20.0f;
+ speed.z = (Math::Rand()-0.5f)*20.0f;
speed.y = 0.0f;
- dim.x = Rand()*1.0f+1.0f;
+ dim.x = Math::Rand()*1.0f+1.0f;
dim.y = dim.x;
m_particule->CreateParticule(pos, speed, dim, PARTIGAS);
}
@@ -114,15 +112,15 @@ void CTaskSearch::InitAngle()
if ( m_hand == TSH_UP )
{
- m_finalAngle[0] = 110.0f*PI/180.0f; // arm
- m_finalAngle[1] = -110.0f*PI/180.0f; // forearm
- m_finalAngle[2] = -65.0f*PI/180.0f; // sensor
+ m_finalAngle[0] = 110.0f*Math::PI/180.0f; // arm
+ m_finalAngle[1] = -110.0f*Math::PI/180.0f; // forearm
+ m_finalAngle[2] = -65.0f*Math::PI/180.0f; // sensor
}
if ( m_hand == TSH_DOWN )
{
- m_finalAngle[0] = 25.0f*PI/180.0f; // arm
- m_finalAngle[1] = -70.0f*PI/180.0f; // forearm
- m_finalAngle[2] = -45.0f*PI/180.0f; // sensor
+ m_finalAngle[0] = 25.0f*Math::PI/180.0f; // arm
+ m_finalAngle[1] = -70.0f*Math::PI/180.0f; // forearm
+ m_finalAngle[2] = -45.0f*Math::PI/180.0f; // sensor
}
for ( i=0 ; i<3 ; i++ )
@@ -163,7 +161,7 @@ Error CTaskSearch::Start()
InitAngle();
m_bError = false; // ok
- m_camera->StartCentering(m_object, PI*0.50f, 99.9f, 0.0f, 1.0f);
+ m_camera->StartCentering(m_object, Math::PI*0.50f, 99.9f, 0.0f, 1.0f);
i = m_sound->Play(SOUND_MANIP, m_object->RetPosition(0), 0.0f, 0.3f, true);
m_sound->AddEnvelope(i, 0.5f, 1.0f, 0.1f, SOPER_CONTINUE);
diff --git a/src/object/task/tasksearch.h b/src/object/task/tasksearch.h
index 48b1a32..76c0b6d 100644
--- a/src/object/task/tasksearch.h
+++ b/src/object/task/tasksearch.h
@@ -19,7 +19,7 @@
#pragma once
-#include "common/misc.h"
+#include "object/task/task.h"
class CInstanceManager;
diff --git a/src/object/task/taskshield.cpp b/src/object/task/taskshield.cpp
index 86e45df..c4993fc 100644
--- a/src/object/task/taskshield.cpp
+++ b/src/object/task/taskshield.cpp
@@ -16,8 +16,6 @@
// taskshield.cpp
-#define STRICT
-#define D3D_OVERLOADS
#include <windows.h>
#include <stdio.h>
@@ -72,7 +70,7 @@ bool CTaskShield::EventProcess(const Event &event)
D3DMATRIX matrix;
D3DVECTOR pos, speed, goal, angle;
D3DCOLORVALUE color;
- FPOINT dim;
+ Math::Point dim;
float energy;
if ( m_engine->RetPause() ) return true;
@@ -99,7 +97,7 @@ bool CTaskShield::EventProcess(const Event &event)
if ( m_phase == TS_UP1 )
{
pos.x = 7.0f;
- pos.y = 4.5f+Bounce(m_progress)*3.0f;
+ pos.y = 4.5f+Math::Bounce(m_progress)*3.0f;
pos.z = 0.0f;
m_object->SetPosition(2, pos);
}
@@ -107,7 +105,7 @@ bool CTaskShield::EventProcess(const Event &event)
if ( m_phase == TS_UP2 )
{
pos.x = 0.0f;
- pos.y = 1.0f+Bounce(m_progress)*3.0f;
+ pos.y = 1.0f+Math::Bounce(m_progress)*3.0f;
pos.z = 0.0f;
m_object->SetPosition(3, pos);
}
@@ -156,12 +154,12 @@ bool CTaskShield::EventProcess(const Event &event)
m_lastParticule = m_time;
pos = m_shieldPos;
- pos.x += (Rand()-0.5f)*5.0f;
- pos.z += (Rand()-0.5f)*5.0f;
- speed.x = (Rand()-0.5f)*0.0f;
- speed.z = (Rand()-0.5f)*0.0f;
- speed.y = Rand()*15.0f;
- dim.x = Rand()*6.0f+4.0f;
+ pos.x += (Math::Rand()-0.5f)*5.0f;
+ pos.z += (Math::Rand()-0.5f)*5.0f;
+ speed.x = (Math::Rand()-0.5f)*0.0f;
+ speed.z = (Math::Rand()-0.5f)*0.0f;
+ speed.y = Math::Rand()*15.0f;
+ dim.x = Math::Rand()*6.0f+4.0f;
dim.y = dim.x;
m_particule->CreateParticule(pos, speed, dim, PARTIBLUE, 1.0f, 0.0f, 0.0f);
}
@@ -173,9 +171,9 @@ bool CTaskShield::EventProcess(const Event &event)
pos = m_shieldPos;
dim.x = RetRadius()/20.0f;
dim.y = dim.x;
- angle.x = (Rand()-0.5f)*PI*1.2f;
+ angle.x = (Math::Rand()-0.5f)*Math::PI*1.2f;
angle.y = 0.0f;
- angle.z = (Rand()-0.5f)*PI*1.2f;
+ angle.z = (Math::Rand()-0.5f)*Math::PI*1.2f;
MatRotateXZY(matrix, angle);
goal = Transform(matrix, D3DVECTOR(0.0f, RetRadius()-dim.x, 0.0f));
goal += pos;
@@ -203,12 +201,12 @@ bool CTaskShield::EventProcess(const Event &event)
m_lastParticule = m_time;
pos = m_shieldPos;
- pos.x += (Rand()-0.5f)*5.0f;
- pos.z += (Rand()-0.5f)*5.0f;
- speed.x = (Rand()-0.5f)*3.0f;
- speed.z = (Rand()-0.5f)*3.0f;
- speed.y = (Rand()-0.5f)*3.0f;
- dim.x = Rand()*1.5f+2.0f;
+ pos.x += (Math::Rand()-0.5f)*5.0f;
+ pos.z += (Math::Rand()-0.5f)*5.0f;
+ speed.x = (Math::Rand()-0.5f)*3.0f;
+ speed.z = (Math::Rand()-0.5f)*3.0f;
+ speed.y = (Math::Rand()-0.5f)*3.0f;
+ dim.x = Math::Rand()*1.5f+2.0f;
dim.y = dim.x;
m_particule->CreateParticule(pos, speed, dim, PARTISMOKE3, 4.0f);
}
@@ -217,7 +215,7 @@ bool CTaskShield::EventProcess(const Event &event)
if ( m_phase == TS_DOWN1 )
{
pos.x = 0.0f;
- pos.y = 1.0f+(1.0f-Bounce(m_progress))*3.0f;
+ pos.y = 1.0f+(1.0f-Math::Bounce(m_progress))*3.0f;
pos.z = 0.0f;
m_object->SetPosition(3, pos);
}
@@ -225,7 +223,7 @@ bool CTaskShield::EventProcess(const Event &event)
if ( m_phase == TS_DOWN2 )
{
pos.x = 7.0f;
- pos.y = 4.5f+(1.0f-Bounce(m_progress))*3.0f;
+ pos.y = 4.5f+(1.0f-Math::Bounce(m_progress))*3.0f;
pos.z = 0.0f;
m_object->SetPosition(2, pos);
}
@@ -293,7 +291,7 @@ Error CTaskShield::Start(TaskShieldMode mode, float delay)
{
m_brain->UpdateInterface();
}
-//? m_camera->StartCentering(m_object, PI*0.85f, -PI*0.15f, RetRadius()+40.0f, 3.0f);
+//? m_camera->StartCentering(m_object, Math::PI*0.85f, -Math::PI*0.15f, RetRadius()+40.0f, 3.0f);
return ERR_OK;
}
@@ -344,7 +342,7 @@ Error CTaskShield::IsEnded()
{
CObject* power;
D3DVECTOR pos, speed;
- FPOINT dim;
+ Math::Point dim;
float energy;
if ( m_engine->RetPause() ) return ERR_CONTINUE;
@@ -514,7 +512,7 @@ bool CTaskShield::CreateLight(D3DVECTOR pos)
light.dvAttenuation1 = 0.0f;
light.dvAttenuation2 = 0.0f;
light.dvTheta = 0.0f;
- light.dvPhi = PI/4.0f;
+ light.dvPhi = Math::PI/4.0f;
m_effectLight = m_light->CreateLight();
if ( m_effectLight == -1 ) return false;
diff --git a/src/object/task/taskshield.h b/src/object/task/taskshield.h
index 5917158..916cd6d 100644
--- a/src/object/task/taskshield.h
+++ b/src/object/task/taskshield.h
@@ -19,7 +19,7 @@
#pragma once
-#include "common/misc.h"
+#include "object/task/task.h"
#include "graphics/d3d/d3dengine.h"
diff --git a/src/object/task/taskspiderexplo.cpp b/src/object/task/taskspiderexplo.cpp
index 496916c..f545b7e 100644
--- a/src/object/task/taskspiderexplo.cpp
+++ b/src/object/task/taskspiderexplo.cpp
@@ -16,8 +16,6 @@
// taskspiderexplo.cpp
-#define STRICT
-#define D3D_OVERLOADS
#include <windows.h>
#include <stdio.h>
diff --git a/src/object/task/taskspiderexplo.h b/src/object/task/taskspiderexplo.h
index a08e9dd..0b60f34 100644
--- a/src/object/task/taskspiderexplo.h
+++ b/src/object/task/taskspiderexplo.h
@@ -19,7 +19,7 @@
#pragma once
-#include "common/misc.h"
+#include "object/task/task.h"
class CInstanceManager;
diff --git a/src/object/task/tasktake.cpp b/src/object/task/tasktake.cpp
index b09366a..adb6e71 100644
--- a/src/object/task/tasktake.cpp
+++ b/src/object/task/tasktake.cpp
@@ -16,15 +16,14 @@
// tasktake.cpp
-#define STRICT
-#define D3D_OVERLOADS
#include <windows.h>
#include <stdio.h>
#include <d3d.h>
-#include "math/const.h"
#include "common/struct.h"
+#include "math/const.h"
+#include "math/geometry.h"
#include "graphics/d3d/d3dengine.h"
#include "math/old/d3dmath.h"
#include "math/old/math3d.h"
@@ -78,7 +77,7 @@ bool CTaskTake::EventProcess(const Event &event)
{
a = m_object->RetAngleY(0);
g = m_angle;
- cirSpeed = Direction(a, g)*2.0f;
+ cirSpeed = Math::Direction(a, g)*2.0f;
if ( cirSpeed > 1.0f ) cirSpeed = 1.0f;
if ( cirSpeed < -1.0f ) cirSpeed = -1.0f;
@@ -108,7 +107,7 @@ Error CTaskTake::Start()
m_progress = 0.0f;
iAngle = m_object->RetAngleY(0);
- iAngle = NormAngle(iAngle); // 0..2*PI
+ iAngle = Math::NormAngle(iAngle); // 0..2*Math::PI
oAngle = iAngle;
m_bError = true; // operation impossible
@@ -141,7 +140,7 @@ Error CTaskTake::Start()
h = m_water->RetLevel(m_object);
if ( pos.y < h ) return ERR_MANIP_WATER; // impossible under water
- other = SearchFriendObject(oAngle, 1.5f, PI*0.50f);
+ other = SearchFriendObject(oAngle, 1.5f, Math::PI*0.50f);
if ( other != 0 && other->RetPower() != 0 )
{
type = other->RetPower()->RetType();
@@ -158,16 +157,16 @@ Error CTaskTake::Start()
type != OBJECT_KEYc &&
type != OBJECT_KEYd &&
type != OBJECT_TNT ) return ERR_MANIP_FRIEND;
-//? m_camera->StartCentering(m_object, PI*0.3f, -PI*0.1f, 0.0f, 0.8f);
+//? m_camera->StartCentering(m_object, Math::PI*0.3f, -Math::PI*0.1f, 0.0f, 0.8f);
m_arm = TTA_FRIEND;
}
else
{
- other = SearchTakeObject(oAngle, 1.5f, PI*0.45f);
+ other = SearchTakeObject(oAngle, 1.5f, Math::PI*0.45f);
if ( other == 0 ) return ERR_MANIP_NIL;
type = other->RetType();
if ( type == OBJECT_URANIUM ) return ERR_MANIP_RADIO;
-//? m_camera->StartCentering(m_object, PI*0.3f, 99.9f, 0.0f, 0.8f);
+//? m_camera->StartCentering(m_object, Math::PI*0.3f, 99.9f, 0.0f, 0.8f);
m_arm = TTA_FFRONT;
m_main->HideDropZone(other); // hides buildable area
}
@@ -179,16 +178,16 @@ Error CTaskTake::Start()
//? if ( speed.x != 0.0f ||
//? speed.z != 0.0f ) return ERR_MANIP_MOTOR;
- other = SearchFriendObject(oAngle, 1.5f, PI*0.50f);
+ other = SearchFriendObject(oAngle, 1.5f, Math::PI*0.50f);
if ( other != 0 && other->RetPower() == 0 )
{
-//? m_camera->StartCentering(m_object, PI*0.3f, -PI*0.1f, 0.0f, 0.8f);
+//? m_camera->StartCentering(m_object, Math::PI*0.3f, -Math::PI*0.1f, 0.0f, 0.8f);
m_arm = TTA_FRIEND;
}
else
{
if ( !IsFreeDeposeObject(D3DVECTOR(2.5f, 0.0f, 0.0f)) ) return ERR_MANIP_OCC;
-//? m_camera->StartCentering(m_object, PI*0.3f, 99.9f, 0.0f, 0.8f);
+//? m_camera->StartCentering(m_object, Math::PI*0.3f, 99.9f, 0.0f, 0.8f);
m_arm = TTA_FFRONT;
}
}
@@ -215,9 +214,9 @@ Error CTaskTake::IsEnded()
if ( m_bTurn ) // preliminary rotation?
{
angle = m_object->RetAngleY(0);
- angle = NormAngle(angle); // 0..2*PI
+ angle = Math::NormAngle(angle); // 0..2*Math::PI
- if ( TestAngle(angle, m_angle-PI*0.01f, m_angle+PI*0.01f) )
+ if ( Math::TestAngle(angle, m_angle-Math::PI*0.01f, m_angle+Math::PI*0.01f) )
{
m_bTurn = false; // rotation ended
m_physics->SetMotorSpeedZ(0.0f);
@@ -321,7 +320,7 @@ CObject* CTaskTake::SearchTakeObject(float &angle,
iPos = m_object->RetPosition(0);
iAngle = m_object->RetAngleY(0);
- iAngle = NormAngle(iAngle); // 0..2*PI
+ iAngle = Math::NormAngle(iAngle); // 0..2*Math::PI
min = 1000000.0f;
pBest = 0;
@@ -356,11 +355,11 @@ CObject* CTaskTake::SearchTakeObject(float &angle,
if ( distance >= 4.0f-dLimit &&
distance <= 4.0f+dLimit )
{
- angle = RotateAngle(oPos.x-iPos.x, iPos.z-oPos.z); // CW !
- if ( TestAngle(angle, iAngle-aLimit, iAngle+aLimit) )
+ angle = Math::RotateAngle(oPos.x-iPos.x, iPos.z-oPos.z); // CW !
+ if ( Math::TestAngle(angle, iAngle-aLimit, iAngle+aLimit) )
{
- a = Abs(angle-iAngle);
- if ( a > PI ) a = PI*2.0f-a;
+ a = fabs(angle-iAngle);
+ if ( a > Math::PI ) a = Math::PI*2.0f-a;
if ( a < min )
{
min = a;
@@ -390,7 +389,7 @@ CObject* CTaskTake::SearchFriendObject(float &angle,
if ( !m_object->GetCrashSphere(0, iPos, iRad) ) return 0;
iAngle = m_object->RetAngleY(0);
- iAngle = NormAngle(iAngle); // 0..2*PI
+ iAngle = Math::NormAngle(iAngle); // 0..2*Math::PI
for ( i=0 ; i<1000000 ; i++ )
{
@@ -447,11 +446,11 @@ CObject* CTaskTake::SearchFriendObject(float &angle,
character = pObj->RetCharacter();
oPos = Transform(*mat, character->posPower);
- distance = Abs(Length(oPos, iPos) - (iRad+1.0f));
+ distance = fabs(Length(oPos, iPos) - (iRad+1.0f));
if ( distance <= dLimit )
{
- angle = RotateAngle(oPos.x-iPos.x, iPos.z-oPos.z); // CW !
- if ( TestAngle(angle, iAngle-aLimit, iAngle+aLimit) )
+ angle = Math::RotateAngle(oPos.x-iPos.x, iPos.z-oPos.z); // CW !
+ if ( Math::TestAngle(angle, iAngle-aLimit, iAngle+aLimit) )
{
character = pObj->RetCharacter();
m_height = character->posPower.y;
@@ -474,8 +473,8 @@ bool CTaskTake::TruckTakeObject()
if ( m_arm == TTA_FFRONT ) // takes on the ground in front?
{
-//? fret = SearchTakeObject(angle, 1.5f, PI*0.04f);
- fret = SearchTakeObject(angle, 1.5f, PI*0.15f); //OK 1.9
+//? fret = SearchTakeObject(angle, 1.5f, Math::PI*0.04f);
+ fret = SearchTakeObject(angle, 1.5f, Math::PI*0.15f); //OK 1.9
if ( fret == 0 ) return false; // rien � prendre ?
m_fretType = fret->RetType();
@@ -493,7 +492,7 @@ bool CTaskTake::TruckTakeObject()
if ( m_arm == TTA_FRIEND ) // takes friend's battery?
{
- other = SearchFriendObject(angle, 1.5f, PI*0.04f);
+ other = SearchFriendObject(angle, 1.5f, Math::PI*0.04f);
if ( other == 0 ) return false;
fret = other->RetPower();
@@ -537,7 +536,7 @@ bool CTaskTake::TruckDeposeObject()
pos = Transform(*mat, D3DVECTOR(-0.5f, 1.0f, 0.0f));
m_terrain->MoveOnFloor(pos);
fret->SetPosition(0, pos);
- fret->SetAngleY(0, m_object->RetAngleY(0)+PI/2.0f);
+ fret->SetAngleY(0, m_object->RetAngleY(0)+Math::PI/2.0f);
fret->SetAngleX(0, 0.0f);
fret->SetAngleZ(0, 0.0f);
fret->FloorAdjust(); // plate well on the ground
@@ -548,7 +547,7 @@ bool CTaskTake::TruckDeposeObject()
if ( m_arm == TTA_FRIEND ) // deposes battery on friends?
{
- other = SearchFriendObject(angle, 1.5f, PI*0.04f);
+ other = SearchFriendObject(angle, 1.5f, Math::PI*0.04f);
if ( other == 0 ) return false;
fret = other->RetPower();
diff --git a/src/object/task/tasktake.h b/src/object/task/tasktake.h
index f94c366..68d2c8e 100644
--- a/src/object/task/tasktake.h
+++ b/src/object/task/tasktake.h
@@ -19,7 +19,7 @@
#pragma once
-#include "common/misc.h"
+#include "object/task/task.h"
#include "object/object.h"
diff --git a/src/object/task/taskterraform.cpp b/src/object/task/taskterraform.cpp
index 1432c3e..efa251f 100644
--- a/src/object/task/taskterraform.cpp
+++ b/src/object/task/taskterraform.cpp
@@ -16,8 +16,6 @@
// taskterraform.cpp
-#define STRICT
-#define D3D_OVERLOADS
#include <windows.h>
#include <stdio.h>
@@ -72,7 +70,7 @@ bool CTaskTerraform::EventProcess(const Event &event)
CObject* power;
D3DMATRIX* mat;
D3DVECTOR pos, dir, speed;
- FPOINT dim;
+ Math::Point dim;
float energy;
if ( m_engine->RetPause() ) return true;
@@ -98,7 +96,7 @@ bool CTaskTerraform::EventProcess(const Event &event)
}
dir.x = 0.0f;
- dir.y = (Rand()-0.5f)*0.2f*m_progress;
+ dir.y = (Math::Rand()-0.5f)*0.2f*m_progress;
dir.z = 0.0f;
m_object->SetCirVibration(dir);
@@ -160,12 +158,12 @@ bool CTaskTerraform::EventProcess(const Event &event)
{
// Battery.
pos = D3DVECTOR(-6.0f, 5.5f+2.0f*m_progress, 0.0f);
- pos.x += (Rand()-0.5f)*1.0f;
- pos.z += (Rand()-0.5f)*1.0f;
+ pos.x += (Math::Rand()-0.5f)*1.0f;
+ pos.z += (Math::Rand()-0.5f)*1.0f;
pos = Transform(*mat, pos);
- speed.x = (Rand()-0.5f)*6.0f*(1.0f+m_progress*4.0f);
- speed.z = (Rand()-0.5f)*6.0f*(1.0f+m_progress*4.0f);
- speed.y = 6.0f+Rand()*4.0f*(1.0f+m_progress*2.0f);
+ speed.x = (Math::Rand()-0.5f)*6.0f*(1.0f+m_progress*4.0f);
+ speed.z = (Math::Rand()-0.5f)*6.0f*(1.0f+m_progress*4.0f);
+ speed.y = 6.0f+Math::Rand()*4.0f*(1.0f+m_progress*2.0f);
dim.x = 0.5f+1.5f*m_progress;
dim.y = dim.x;
m_particule->CreateParticule(pos, speed, dim, PARTIBLITZ, 2.0f, 20.0f);
@@ -175,29 +173,29 @@ bool CTaskTerraform::EventProcess(const Event &event)
{
// Left grid.
pos = D3DVECTOR(-1.0f, 5.8f, 3.5f);
- pos.x += (Rand()-0.5f)*1.0f;
- pos.z += (Rand()-0.5f)*1.0f;
+ pos.x += (Math::Rand()-0.5f)*1.0f;
+ pos.z += (Math::Rand()-0.5f)*1.0f;
pos = Transform(*mat, pos);
- speed.x = Rand()*4.0f;
- speed.z = Rand()*2.0f;
- speed.y = 2.5f+Rand()*1.0f;
+ speed.x = Math::Rand()*4.0f;
+ speed.z = Math::Rand()*2.0f;
+ speed.y = 2.5f+Math::Rand()*1.0f;
speed = Transform(*mat, speed);
speed -= m_object->RetPosition(0);
- dim.x = Rand()*1.0f+1.0f;
+ dim.x = Math::Rand()*1.0f+1.0f;
dim.y = dim.x;
m_particule->CreateParticule(pos, speed, dim, PARTISMOKE1, 3.0f);
// Right grid.
pos = D3DVECTOR(-1.0f, 5.8f, -3.5f);
- pos.x += (Rand()-0.5f)*1.0f;
- pos.z += (Rand()-0.5f)*1.0f;
+ pos.x += (Math::Rand()-0.5f)*1.0f;
+ pos.z += (Math::Rand()-0.5f)*1.0f;
pos = Transform(*mat, pos);
- speed.x = Rand()*4.0f;
- speed.z = -Rand()*2.0f;
- speed.y = 2.5f+Rand()*1.0f;
+ speed.x = Math::Rand()*4.0f;
+ speed.z = -Math::Rand()*2.0f;
+ speed.y = 2.5f+Math::Rand()*1.0f;
speed = Transform(*mat, speed);
speed -= m_object->RetPosition(0);
- dim.x = Rand()*1.0f+1.0f;
+ dim.x = Math::Rand()*1.0f+1.0f;
dim.y = dim.x;
m_particule->CreateParticule(pos, speed, dim, PARTISMOKE1, 3.0f);
}
@@ -249,7 +247,7 @@ Error CTaskTerraform::Start()
m_bError = false; // ok
- m_camera->StartCentering(m_object, PI*0.35f, 99.9f, 20.0f, 2.0f);
+ m_camera->StartCentering(m_object, Math::PI*0.35f, 99.9f, 20.0f, 2.0f);
return ERR_OK;
}
@@ -259,7 +257,7 @@ Error CTaskTerraform::IsEnded()
{
CObject* power;
D3DVECTOR pos, speed;
- FPOINT dim;
+ Math::Point dim;
float dist, duration;
int i, max;
@@ -298,26 +296,26 @@ Error CTaskTerraform::IsEnded()
max= (int)(50.0f*m_engine->RetParticuleDensity());
for ( i=0 ; i<max ; i++ )
{
- pos.x = m_terraPos.x+(Rand()-0.5f)*80.0f;
- pos.z = m_terraPos.z+(Rand()-0.5f)*80.0f;
+ pos.x = m_terraPos.x+(Math::Rand()-0.5f)*80.0f;
+ pos.z = m_terraPos.z+(Math::Rand()-0.5f)*80.0f;
pos.y = m_terraPos.y;
m_terrain->MoveOnFloor(pos);
dist = Length(pos, m_terraPos);
speed = D3DVECTOR(0.0f, 0.0f, 0.0f);
- dim.x = 2.0f+(40.0f-dist)/(1.0f+Rand()*4.0f);
+ dim.x = 2.0f+(40.0f-dist)/(1.0f+Math::Rand()*4.0f);
dim.y = dim.x;
m_particule->CreateParticule(pos, speed, dim, PARTICRASH, 2.0f);
pos = m_terraPos;
- speed.x = (Rand()-0.5f)*40.0f;
- speed.z = (Rand()-0.5f)*40.0f;
- speed.y = Rand()*15.0f+15.0f;
+ speed.x = (Math::Rand()-0.5f)*40.0f;
+ speed.z = (Math::Rand()-0.5f)*40.0f;
+ speed.y = Math::Rand()*15.0f+15.0f;
dim.x = 0.6f;
dim.y = dim.x;
pos.y += dim.y;
- duration = Rand()*3.0f+3.0f;
+ duration = Math::Rand()*3.0f+3.0f;
m_particule->CreateTrack(pos, speed, dim, PARTITRACK5,
- duration, Rand()*10.0f+15.0f,
+ duration, Math::Rand()*10.0f+15.0f,
duration*0.2f, 1.0f);
}
@@ -410,14 +408,14 @@ bool CTaskTerraform::Terraform()
{
brain = pObj->RetBrain();
if ( brain != 0 ) brain->StopTask();
- motion->SetAction(MAS_BACK1, 0.8f+Rand()*0.3f);
+ motion->SetAction(MAS_BACK1, 0.8f+Math::Rand()*0.3f);
pObj->SetFixed(true); // not moving
}
if ( type == OBJECT_SPIDER )
{
brain = pObj->RetBrain();
if ( brain != 0 ) brain->StopTask();
- motion->SetAction(MSS_BACK1, 0.8f+Rand()*0.3f);
+ motion->SetAction(MSS_BACK1, 0.8f+Math::Rand()*0.3f);
pObj->SetFixed(true); // not moving
}
}
diff --git a/src/object/task/taskterraform.h b/src/object/task/taskterraform.h
index dfb3488..7d5ef30 100644
--- a/src/object/task/taskterraform.h
+++ b/src/object/task/taskterraform.h
@@ -19,7 +19,7 @@
#pragma once
-#include "common/misc.h"
+#include "object/task/task.h"
#include "graphics/d3d/d3dengine.h"
diff --git a/src/object/task/taskturn.cpp b/src/object/task/taskturn.cpp
index 35f1eb9..9b02a0c 100644
--- a/src/object/task/taskturn.cpp
+++ b/src/object/task/taskturn.cpp
@@ -16,8 +16,6 @@
// taskturn.cpp
-#define STRICT
-#define D3D_OVERLOADS
#include <windows.h>
#include <stdio.h>
diff --git a/src/object/task/taskturn.h b/src/object/task/taskturn.h
index b9a432b..880c4b5 100644
--- a/src/object/task/taskturn.h
+++ b/src/object/task/taskturn.h
@@ -19,7 +19,7 @@
#pragma once
-#include "common/misc.h"
+#include "object/task/task.h"
class CInstanceManager;
diff --git a/src/object/task/taskwait.cpp b/src/object/task/taskwait.cpp
index 64883c1..9bd5197 100644
--- a/src/object/task/taskwait.cpp
+++ b/src/object/task/taskwait.cpp
@@ -16,8 +16,6 @@
// taskwait.cpp
-#define STRICT
-#define D3D_OVERLOADS
#include <windows.h>
#include <stdio.h>
diff --git a/src/object/task/taskwait.h b/src/object/task/taskwait.h
index 25e8e67..5fec9ae 100644
--- a/src/object/task/taskwait.h
+++ b/src/object/task/taskwait.h
@@ -19,7 +19,7 @@
#pragma once
-#include "common/misc.h"
+#include "object/task/task.h"
class CInstanceManager;