summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/CMakeLists.txt4
-rw-r--r--src/app/d3dapp.cpp9
-rw-r--r--src/app/d3dapp.h5
-rw-r--r--src/common/modfile.cpp15
-rw-r--r--src/common/modfile.h5
-rw-r--r--src/common/struct.h4
-rw-r--r--src/graphics/common/blitz.cpp24
-rw-r--r--src/graphics/common/blitz.h4
-rw-r--r--src/graphics/common/camera.cpp164
-rw-r--r--src/graphics/common/camera.h52
-rw-r--r--src/graphics/common/cloud.cpp28
-rw-r--r--src/graphics/common/cloud.h4
-rw-r--r--src/graphics/common/light.cpp23
-rw-r--r--src/graphics/common/light.h8
-rw-r--r--src/graphics/common/model.cpp78
-rw-r--r--src/graphics/common/model.h12
-rw-r--r--src/graphics/common/particule.cpp270
-rw-r--r--src/graphics/common/particule.h40
-rw-r--r--src/graphics/common/planet.cpp12
-rw-r--r--src/graphics/common/pyro.cpp69
-rw-r--r--src/graphics/common/pyro.h18
-rw-r--r--src/graphics/common/terrain.cpp118
-rw-r--r--src/graphics/common/terrain.h56
-rw-r--r--src/graphics/common/text.cpp40
-rw-r--r--src/graphics/common/water.cpp59
-rw-r--r--src/graphics/common/water.h12
-rw-r--r--src/graphics/d3d/d3dengine.cpp393
-rw-r--r--src/graphics/d3d/d3dengine.h68
-rw-r--r--src/math/matrix.h10
-rw-r--r--src/math/old/math3d.cpp59
-rw-r--r--src/math/old/math3d.h65
-rw-r--r--src/object/auto/autobase.cpp116
-rw-r--r--src/object/auto/autobase.h8
-rw-r--r--src/object/auto/autoconvert.cpp16
-rw-r--r--src/object/auto/autoderrick.cpp25
-rw-r--r--src/object/auto/autoderrick.h6
-rw-r--r--src/object/auto/autodestroyer.cpp18
-rw-r--r--src/object/auto/autoegg.cpp5
-rw-r--r--src/object/auto/autoenergy.cpp16
-rw-r--r--src/object/auto/autofactory.cpp33
-rw-r--r--src/object/auto/autofactory.h2
-rw-r--r--src/object/auto/autoflag.cpp4
-rw-r--r--src/object/auto/autohuston.cpp44
-rw-r--r--src/object/auto/autohuston.h2
-rw-r--r--src/object/auto/autoinfo.cpp8
-rw-r--r--src/object/auto/autoinfo.h2
-rw-r--r--src/object/auto/autojostle.cpp4
-rw-r--r--src/object/auto/autokid.cpp4
-rw-r--r--src/object/auto/autolabo.cpp12
-rw-r--r--src/object/auto/automush.cpp12
-rw-r--r--src/object/auto/autonest.cpp16
-rw-r--r--src/object/auto/autonest.h6
-rw-r--r--src/object/auto/autonuclear.cpp17
-rw-r--r--src/object/auto/autonuclear.h2
-rw-r--r--src/object/auto/autopara.cpp11
-rw-r--r--src/object/auto/autopara.h2
-rw-r--r--src/object/auto/autoportico.cpp8
-rw-r--r--src/object/auto/autoportico.h4
-rw-r--r--src/object/auto/autoradar.cpp8
-rw-r--r--src/object/auto/autoradar.h2
-rw-r--r--src/object/auto/autorepair.cpp6
-rw-r--r--src/object/auto/autoresearch.cpp11
-rw-r--r--src/object/auto/autoroot.cpp13
-rw-r--r--src/object/auto/autoroot.h2
-rw-r--r--src/object/auto/autosafe.cpp26
-rw-r--r--src/object/auto/autosafe.h2
-rw-r--r--src/object/auto/autostation.cpp13
-rw-r--r--src/object/auto/autostation.h2
-rw-r--r--src/object/auto/autotower.cpp16
-rw-r--r--src/object/auto/autotower.h4
-rw-r--r--src/object/brain.cpp19
-rw-r--r--src/object/brain.h8
-rw-r--r--src/object/mainmovie.cpp (renamed from src/graphics/common/mainmovie.cpp)17
-rw-r--r--src/object/mainmovie.h (renamed from src/graphics/common/mainmovie.h)8
-rw-r--r--src/object/motion/motion.cpp22
-rw-r--r--src/object/motion/motion.h20
-rw-r--r--src/object/motion/motionant.cpp68
-rw-r--r--src/object/motion/motionant.h2
-rw-r--r--src/object/motion/motionbee.cpp52
-rw-r--r--src/object/motion/motionbee.h2
-rw-r--r--src/object/motion/motionhuman.cpp80
-rw-r--r--src/object/motion/motionhuman.h2
-rw-r--r--src/object/motion/motionmother.cpp46
-rw-r--r--src/object/motion/motionmother.h2
-rw-r--r--src/object/motion/motionspider.cpp34
-rw-r--r--src/object/motion/motionspider.h2
-rw-r--r--src/object/motion/motiontoto.cpp44
-rw-r--r--src/object/motion/motiontoto.h2
-rw-r--r--src/object/motion/motionvehicle.cpp213
-rw-r--r--src/object/motion/motionvehicle.h8
-rw-r--r--src/object/motion/motionworm.cpp20
-rw-r--r--src/object/motion/motionworm.h2
-rw-r--r--src/object/object.cpp1489
-rw-r--r--src/object/object.h116
-rw-r--r--src/object/robotmain.cpp125
-rw-r--r--src/object/robotmain.h30
-rw-r--r--src/object/task/taskadvance.cpp5
-rw-r--r--src/object/task/taskadvance.h2
-rw-r--r--src/object/task/taskbuild.cpp46
-rw-r--r--src/object/task/taskbuild.h6
-rw-r--r--src/object/task/taskfire.cpp53
-rw-r--r--src/object/task/taskfireant.cpp18
-rw-r--r--src/object/task/taskfireant.h4
-rw-r--r--src/object/task/taskflag.cpp22
-rw-r--r--src/object/task/taskflag.h2
-rw-r--r--src/object/task/taskgoto.cpp150
-rw-r--r--src/object/task/taskgoto.h44
-rw-r--r--src/object/task/taskinfo.cpp6
-rw-r--r--src/object/task/taskmanager.cpp6
-rw-r--r--src/object/task/taskmanager.h6
-rw-r--r--src/object/task/taskmanip.cpp82
-rw-r--r--src/object/task/taskmanip.h12
-rw-r--r--src/object/task/taskpen.cpp11
-rw-r--r--src/object/task/taskpen.h2
-rw-r--r--src/object/task/taskrecover.cpp28
-rw-r--r--src/object/task/taskrecover.h2
-rw-r--r--src/object/task/taskreset.cpp10
-rw-r--r--src/object/task/taskreset.h8
-rw-r--r--src/object/task/tasksearch.cpp21
-rw-r--r--src/object/task/taskshield.cpp33
-rw-r--r--src/object/task/taskshield.h4
-rw-r--r--src/object/task/tasktake.cpp42
-rw-r--r--src/object/task/tasktake.h2
-rw-r--r--src/object/task/taskterraform.cpp47
-rw-r--r--src/object/task/taskterraform.h2
-rw-r--r--src/physics/physics.cpp184
-rw-r--r--src/physics/physics.h52
-rw-r--r--src/script/cmdtoken.cpp12
-rw-r--r--src/script/cmdtoken.h4
-rw-r--r--src/script/dd.cpp4
-rw-r--r--src/script/script.cpp46
-rw-r--r--src/sound/sound.cpp25
-rw-r--r--src/sound/sound.h14
-rw-r--r--src/ui/compass.cpp18
-rw-r--r--src/ui/control.cpp100
-rw-r--r--src/ui/displayinfo.cpp2
-rw-r--r--src/ui/displaytext.cpp16
-rw-r--r--src/ui/displaytext.h8
-rw-r--r--src/ui/maindialog.cpp28
-rw-r--r--src/ui/map.cpp50
-rw-r--r--src/ui/shortcut.cpp12
141 files changed, 3051 insertions, 2869 deletions
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index 4f7275a..dea9d2a 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -15,7 +15,6 @@ graphics/common/blitz.cpp
graphics/common/camera.cpp
graphics/common/cloud.cpp
graphics/common/light.cpp
-graphics/common/mainmovie.cpp
graphics/common/model.cpp
graphics/common/particule.cpp
graphics/common/planet.cpp
@@ -57,6 +56,7 @@ object/auto/autosafe.cpp
object/auto/autostation.cpp
object/auto/autotower.cpp
object/brain.cpp
+object/mainmovie.cpp
object/motion/motion.cpp
object/motion/motionant.cpp
object/motion/motionbee.cpp
@@ -125,7 +125,7 @@ ui/window.cpp
add_definitions(-DSTRICT -DD3D_OVERLOADS)
# Change to DirectX SDK directory
-set(DXSDK_DIR "c:/dxsdk")
+set(DXSDK_DIR "/mnt/windows/dxsdk")
include_directories(${DXSDK_DIR}/include .)
diff --git a/src/app/d3dapp.cpp b/src/app/d3dapp.cpp
index ed88d6b..4f29584 100644
--- a/src/app/d3dapp.cpp
+++ b/src/app/d3dapp.cpp
@@ -135,8 +135,8 @@ CD3DApplication::CD3DApplication()
m_pddsDepthBuffer = 0;
m_keyState = 0;
- m_axeKey = D3DVECTOR(0.0f, 0.0f, 0.0f);
- m_axeJoy = D3DVECTOR(0.0f, 0.0f, 0.0f);
+ m_axeKey = Math::Vector(0.0f, 0.0f, 0.0f);
+ m_axeJoy = Math::Vector(0.0f, 0.0f, 0.0f);
m_vidMemTotal = 0;
m_bActive = false;
@@ -496,6 +496,7 @@ HRESULT CD3DApplication::Create( HINSTANCE hInst, TCHAR* strCmdLine )
{
m_pDeviceInfo->bWindowed = !bFull;
}
+ m_pDeviceInfo->bWindowed = true;
// Create the 3D engine.
if( (m_pD3DEngine = new CD3DEngine(m_iMan, this)) == NULL )
@@ -978,8 +979,8 @@ BOOL CALLBACK AboutProc( HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM )
void CD3DApplication::FlushPressKey()
{
m_keyState = 0;
- m_axeKey = D3DVECTOR(0.0f, 0.0f, 0.0f);
- m_axeJoy = D3DVECTOR(0.0f, 0.0f, 0.0f);
+ m_axeKey = Math::Vector(0.0f, 0.0f, 0.0f);
+ m_axeJoy = Math::Vector(0.0f, 0.0f, 0.0f);
}
// Resets the default keys.
diff --git a/src/app/d3dapp.h b/src/app/d3dapp.h
index db18f5d..2171057 100644
--- a/src/app/d3dapp.h
+++ b/src/app/d3dapp.h
@@ -22,6 +22,7 @@
#define D3D_OVERLOADS
#include <d3d.h>
+#include "math/vector.h"
#include "graphics/d3d/d3dengine.h"
#include "graphics/d3d/d3dframe.h"
#include "graphics/d3d/d3denum.h"
@@ -152,8 +153,8 @@ public:
CSound* m_pSound;
int m_keyState;
- D3DVECTOR m_axeKey;
- D3DVECTOR m_axeJoy;
+ Math::Vector m_axeKey;
+ Math::Vector m_axeJoy;
bool m_bJoyButton[32];
Math::Point m_mousePos;
DWORD m_mshMouseWheel;
diff --git a/src/common/modfile.cpp b/src/common/modfile.cpp
index 79d6612..eb11065 100644
--- a/src/common/modfile.cpp
+++ b/src/common/modfile.cpp
@@ -22,6 +22,7 @@
#include <d3d.h>
#include "common/struct.h"
+#include "math/geometry.h"
#include "graphics/d3d/d3dengine.h"
#include "math/old/d3dmath.h"
#include "common/language.h"
@@ -62,10 +63,10 @@ CModFile::~CModFile()
// Creates a triangle in the internal structure.
-bool CModFile::CreateTriangle(D3DVECTOR p1, D3DVECTOR p2, D3DVECTOR p3,
+bool CModFile::CreateTriangle(Math::Vector p1, Math::Vector p2, Math::Vector p3,
float min, float max)
{
- D3DVECTOR n;
+ Math::Vector n;
int i;
if ( m_triangleUsed >= MAX_VERTICES )
@@ -81,7 +82,7 @@ bool CModFile::CreateTriangle(D3DVECTOR p1, D3DVECTOR p2, D3DVECTOR p3,
m_triangleTable[i].bUsed = true;
m_triangleTable[i].bSelect = false;
- n = ComputeNormal(p3, p2, p1);
+ n = Math::NormalToPlane(p3, p2, p1);
m_triangleTable[i].p1 = D3DVERTEX2( p1, n);
m_triangleTable[i].p2 = D3DVERTEX2( p2, n);
m_triangleTable[i].p3 = D3DVERTEX2( p3, n);
@@ -106,7 +107,7 @@ bool CModFile::ReadDXF(char *filename, float min, float max)
FILE* file = NULL;
char line[100];
int command, rankSommet, nbSommet, nbFace;
- D3DVECTOR table[MAX_VERTICES];
+ Math::Vector table[MAX_VERTICES];
bool bWaitNbSommet;
bool bWaitNbFace;
bool bWaitSommetX;
@@ -187,7 +188,7 @@ bool CModFile::ReadDXF(char *filename, float min, float max)
nbSommet --;
if ( nbSommet >= 0 )
{
- D3DVECTOR p(x,z,y); // permutation of Y and Z!
+ Math::Vector p(x,z,y); // permutation of Y and Z!
table[rankSommet++] = p;
bWaitSommetX = true;
@@ -657,9 +658,9 @@ ModelTriangle* CModFile::RetTriangleList()
// Returns the height according to a position (x - z);
-float CModFile::RetHeight(D3DVECTOR pos)
+float CModFile::RetHeight(Math::Vector pos)
{
- D3DVECTOR p1, p2, p3;
+ Math::Vector p1, p2, p3;
float limit;
int i;
diff --git a/src/common/modfile.h b/src/common/modfile.h
index 8095a91..fb85118 100644
--- a/src/common/modfile.h
+++ b/src/common/modfile.h
@@ -19,6 +19,7 @@
#pragma once
+#include "math/vector.h"
#include "graphics/d3d/d3dengine.h"
@@ -98,10 +99,10 @@ public:
int RetTriangleMax();
ModelTriangle* RetTriangleList();
- float RetHeight(D3DVECTOR pos);
+ float RetHeight(Math::Vector pos);
protected:
- bool CreateTriangle(D3DVECTOR p1, D3DVECTOR p2, D3DVECTOR p3, float min, float max);
+ bool CreateTriangle(Math::Vector p1, Math::Vector p2, Math::Vector p3, float min, float max);
protected:
CInstanceManager* m_iMan;
diff --git a/src/common/struct.h b/src/common/struct.h
index 76594fe..cf62743 100644
--- a/src/common/struct.h
+++ b/src/common/struct.h
@@ -21,6 +21,8 @@
#include <d3d.h>
+#include <math/vector.h>
+
#define D3DFVF_VERTEX2 (D3DFVF_XYZ|D3DFVF_NORMAL|D3DFVF_TEX2)
@@ -32,7 +34,7 @@ struct D3DVERTEX2
float tu2, tv2;
D3DVERTEX2() { }
- D3DVERTEX2(const D3DVECTOR& _v, const D3DVECTOR& _n, float _tu=0.0f, float _tv=0.0f, float _tu2=0.0f, float _tv2=0.0f)
+ D3DVERTEX2(const Math::Vector& _v, const Math::Vector& _n, float _tu=0.0f, float _tv=0.0f, float _tu2=0.0f, float _tv2=0.0f)
{
x = _v.x;
y = _v.y;
diff --git a/src/graphics/common/blitz.cpp b/src/graphics/common/blitz.cpp
index 9bf5a93..10c78e5 100644
--- a/src/graphics/common/blitz.cpp
+++ b/src/graphics/common/blitz.cpp
@@ -22,6 +22,7 @@
#include "common/struct.h"
#include "math/const.h"
#include "math/geometry.h"
+#include "math/conv.h"
#include "graphics/d3d/d3dengine.h"
#include "math/old/d3dmath.h"
#include "graphics/d3d/d3dutil.h"
@@ -99,7 +100,7 @@ bool CBlitz::EventFrame(const Event &event)
CObject* pObj;
CAutoPara* automat;
ObjectType type;
- D3DVECTOR eye, pos;
+ Math::Vector eye, pos;
float dist, deep, max;
int i;
@@ -153,7 +154,7 @@ bool CBlitz::EventFrame(const Event &event)
}
eye = m_engine->RetEyePt();
- dist = Length(m_pos, eye);
+ dist = Math::Distance(m_pos, eye);
deep = m_engine->RetDeepView();
if ( dist < deep )
@@ -213,8 +214,8 @@ void CBlitz::Draw()
{
LPDIRECT3DDEVICE7 device;
D3DVERTEX2 vertex[4]; // 2 triangles
- D3DVECTOR corner[4], eye, n, p, p1, p2;
- D3DMATRIX matrix;
+ Math::Vector corner[4], eye, n, p, p1, p2;
+ Math::Matrix matrix;
Math::Point texInf, texSup, rot;
float a;
int i;
@@ -225,8 +226,11 @@ void CBlitz::Draw()
device = m_engine->RetD3DDevice();
device->SetRenderState(D3DRENDERSTATE_ZWRITEENABLE, false);
- D3DUtil_SetIdentityMatrix(matrix);
- device->SetTransform(D3DTRANSFORMSTATE_WORLD, &matrix);
+ matrix.LoadIdentity();
+ {
+ D3DMATRIX mat = MAT_TO_D3DMAT(matrix);
+ device->SetTransform(D3DTRANSFORMSTATE_WORLD, &mat);
+ }
m_engine->SetTexture("effect00.tga");
m_engine->SetState(D3DSTATETTb);
@@ -358,10 +362,10 @@ bool CBlitz::SetStatus(float sleep, float delay, float magnetic, float progress)
// Seeking the object closest to the lightning.
-CObject* CBlitz::SearchObject(D3DVECTOR pos)
+CObject* CBlitz::SearchObject(Math::Vector pos)
{
CObject *pObj, *pBest, *pObjPara[100];
- D3DVECTOR oPos, pPos[100];
+ Math::Vector oPos, pPos[100];
ObjectType type;
float min, dist, detect;
int i, nbPara;
@@ -446,7 +450,7 @@ CObject* CBlitz::SearchObject(D3DVECTOR pos)
if ( detect == 0.0f ) continue;
oPos = pObj->RetPosition(0);
- dist = Length2d(oPos, pos);
+ dist = Math::DistanceProjected(oPos, pos);
if ( dist > detect ) continue;
if ( dist < min )
{
@@ -460,7 +464,7 @@ CObject* CBlitz::SearchObject(D3DVECTOR pos)
oPos = pBest->RetPosition(0);
for ( i=nbPara-1 ; i>=0 ; i-- )
{
- dist = Length2d(oPos, pPos[i]);
+ dist = Math::DistanceProjected(oPos, pPos[i]);
if ( dist <= BLITZPARA )
{
return pObjPara[i];
diff --git a/src/graphics/common/blitz.h b/src/graphics/common/blitz.h
index a4e47a6..c2cfe6c 100644
--- a/src/graphics/common/blitz.h
+++ b/src/graphics/common/blitz.h
@@ -59,7 +59,7 @@ public:
protected:
bool EventFrame(const Event &event);
- CObject* SearchObject(D3DVECTOR pos);
+ CObject* SearchObject(Math::Vector pos);
protected:
CInstanceManager* m_iMan;
@@ -76,7 +76,7 @@ protected:
float m_time;
float m_speed;
float m_progress;
- D3DVECTOR m_pos;
+ Math::Vector m_pos;
Math::Point m_shift[BLITZMAX];
float m_width[BLITZMAX];
};
diff --git a/src/graphics/common/camera.cpp b/src/graphics/common/camera.cpp
index 1298c3c..1de5d45 100644
--- a/src/graphics/common/camera.cpp
+++ b/src/graphics/common/camera.cpp
@@ -56,12 +56,12 @@ CCamera::CCamera(CInstanceManager* iMan)
m_eyeDistance = 10.0f;
m_initDelay = 0.0f;
- m_actualEye = D3DVECTOR(0.0f, 0.0f, 0.0f);
- m_actualLookat = D3DVECTOR(0.0f, 0.0f, 0.0f);
- m_finalEye = D3DVECTOR(0.0f, 0.0f, 0.0f);
- m_finalLookat = D3DVECTOR(0.0f, 0.0f, 0.0f);
- m_normEye = D3DVECTOR(0.0f, 0.0f, 0.0f);
- m_normLookat = D3DVECTOR(0.0f, 0.0f, 0.0f);
+ m_actualEye = Math::Vector(0.0f, 0.0f, 0.0f);
+ m_actualLookat = Math::Vector(0.0f, 0.0f, 0.0f);
+ m_finalEye = Math::Vector(0.0f, 0.0f, 0.0f);
+ m_finalLookat = Math::Vector(0.0f, 0.0f, 0.0f);
+ m_normEye = Math::Vector(0.0f, 0.0f, 0.0f);
+ m_normLookat = Math::Vector(0.0f, 0.0f, 0.0f);
m_focus = 1.0f;
m_bRightDown = false;
@@ -69,7 +69,7 @@ CCamera::CCamera(CInstanceManager* iMan)
m_rightPosCenter = Math::Point(0.5f, 0.5f);
m_rightPosMove = Math::Point(0.5f, 0.5f);
- m_eyePt = D3DVECTOR(0.0f, 0.0f, 0.0f);
+ m_eyePt = Math::Vector(0.0f, 0.0f, 0.0f);
m_directionH = 0.0f;
m_directionV = 0.0f;
m_heightEye = 20.0f;
@@ -86,7 +86,7 @@ CCamera::CCamera(CInstanceManager* iMan)
m_fixDirectionH = 0.0f;
m_fixDirectionV = 0.0f;
- m_visitGoal = D3DVECTOR(0.0f, 0.0f, 0.0f);
+ m_visitGoal = Math::Vector(0.0f, 0.0f, 0.0f);
m_visitDist = 0.0f;
m_visitTime = 0.0f;
m_visitType = CAMERA_NULL;
@@ -114,13 +114,13 @@ CCamera::CCamera(CInstanceManager* iMan)
m_centeringProgress = 0.0f;
m_effectType = CE_NULL;
- m_effectPos = D3DVECTOR(0.0f, 0.0f, 0.0f);
+ m_effectPos = Math::Vector(0.0f, 0.0f, 0.0f);
m_effectForce = 0.0f;
m_effectProgress = 0.0f;
- m_effectOffset = D3DVECTOR(0.0f, 0.0f, 0.0f);
+ m_effectOffset = Math::Vector(0.0f, 0.0f, 0.0f);
- m_scriptEye = D3DVECTOR(0.0f, 0.0f, 0.0f);
- m_scriptLookat = D3DVECTOR(0.0f, 0.0f, 0.0f);
+ m_scriptEye = Math::Vector(0.0f, 0.0f, 0.0f);
+ m_scriptLookat = Math::Vector(0.0f, 0.0f, 0.0f);
m_bEffect = true;
m_bCameraScroll = true;
@@ -168,9 +168,9 @@ float CCamera::RetMotorTurn()
// Initializes the camera.
-void CCamera::Init(D3DVECTOR eye, D3DVECTOR lookat, float delay)
+void CCamera::Init(Math::Vector eye, Math::Vector lookat, float delay)
{
- D3DVECTOR vUpVec;
+ Math::Vector vUpVec;
m_initDelay = delay;
@@ -181,7 +181,7 @@ void CCamera::Init(D3DVECTOR eye, D3DVECTOR lookat, float delay)
m_eyePt = eye;
m_directionH = Math::RotateAngle(eye.x-lookat.x, eye.z-lookat.z)+Math::PI/2.0f;
- m_directionV = -Math::RotateAngle(Length2d(eye, lookat), eye.y-lookat.y);
+ m_directionV = -Math::RotateAngle(Math::DistanceProjected(eye, lookat), eye.y-lookat.y);
m_eyeDistance = 10.0f;
m_heightLookat = 10.0f;
@@ -194,7 +194,7 @@ void CCamera::Init(D3DVECTOR eye, D3DVECTOR lookat, float delay)
m_fixDirectionV = -Math::PI*0.10f;
m_centeringPhase = CP_NULL;
m_actualEye = m_eyePt;
- m_actualLookat = LookatPoint(m_eyePt, m_directionH, m_directionV, 50.0f);
+ m_actualLookat = Math::LookatPoint(m_eyePt, m_directionH, m_directionV, 50.0f);
m_finalEye = m_actualEye;
m_finalLookat = m_actualLookat;
m_scriptEye = m_actualEye;
@@ -250,7 +250,7 @@ void CCamera::SetType(CameraType type)
{
CObject* pObj;
ObjectType oType;
- D3DVECTOR vUpVec;
+ Math::Vector vUpVec;
int i;
m_remotePan = 0.0f;
@@ -287,39 +287,39 @@ void CCamera::SetType(CameraType type)
m_engine->SetFocus(m_focus); // gives initial focus
m_type = type;
- vUpVec = D3DVECTOR(0.0f, 1.0f, 0.0f);
+ vUpVec = Math::Vector(0.0f, 1.0f, 0.0f);
SetViewParams(m_normEye, m_normLookat, vUpVec);
return;
}
if ( m_type == CAMERA_BACK && type == CAMERA_FREE ) // back -> free ?
{
- m_eyePt = LookatPoint(m_eyePt, m_directionH, m_directionV, -50.0f);
+ m_eyePt = Math::LookatPoint(m_eyePt, m_directionH, m_directionV, -50.0f);
}
if ( m_type == CAMERA_BACK && type == CAMERA_EDIT ) // back -> edit ?
{
- m_eyePt = LookatPoint(m_eyePt, m_directionH, m_directionV, -1.0f);
+ m_eyePt = Math::LookatPoint(m_eyePt, m_directionH, m_directionV, -1.0f);
}
if ( m_type == CAMERA_ONBOARD && type == CAMERA_FREE ) // onboard -> free ?
{
- m_eyePt = LookatPoint(m_eyePt, m_directionH, m_directionV, -30.0f);
+ m_eyePt = Math::LookatPoint(m_eyePt, m_directionH, m_directionV, -30.0f);
}
if ( m_type == CAMERA_ONBOARD && type == CAMERA_EDIT ) // onboard -> edit ?
{
- m_eyePt = LookatPoint(m_eyePt, m_directionH, m_directionV, -30.0f);
+ m_eyePt = Math::LookatPoint(m_eyePt, m_directionH, m_directionV, -30.0f);
}
if ( m_type == CAMERA_ONBOARD && type == CAMERA_EXPLO ) // onboard -> explo ?
{
- m_eyePt = LookatPoint(m_eyePt, m_directionH, m_directionV, -50.0f);
+ m_eyePt = Math::LookatPoint(m_eyePt, m_directionH, m_directionV, -50.0f);
}
if ( m_type == CAMERA_BACK && type == CAMERA_EXPLO ) // back -> explo ?
{
- m_eyePt = LookatPoint(m_eyePt, m_directionH, m_directionV, -20.0f);
+ m_eyePt = Math::LookatPoint(m_eyePt, m_directionH, m_directionV, -20.0f);
}
if ( type == CAMERA_FIX ||
@@ -483,7 +483,7 @@ float CCamera::RetRemoteZoom()
// Start with a tour round the camera.
-void CCamera::StartVisit(D3DVECTOR goal, float dist)
+void CCamera::StartVisit(Math::Vector goal, float dist)
{
m_visitType = m_type;
SetType(CAMERA_VISIT);
@@ -504,10 +504,10 @@ void CCamera::StopVisit()
// Returns the point of view of the camera.
-void CCamera::RetCamera(D3DVECTOR &eye, D3DVECTOR &lookat)
+void CCamera::RetCamera(Math::Vector &eye, Math::Vector &lookat)
{
eye = m_eyePt;
- lookat = LookatPoint(m_eyePt, m_directionH, m_directionV, 50.0f);
+ lookat = Math::LookatPoint(m_eyePt, m_directionH, m_directionV, 50.0f);
}
@@ -595,12 +595,12 @@ void CCamera::FlushEffect()
m_effectType = CE_NULL;
m_effectForce = 0.0f;
m_effectProgress = 0.0f;
- m_effectOffset = D3DVECTOR(0.0f, 0.0f, 0.0f);
+ m_effectOffset = Math::Vector(0.0f, 0.0f, 0.0f);
}
// Starts a special effect with the camera.
-void CCamera::StartEffect(CameraEffect effect, D3DVECTOR pos, float force)
+void CCamera::StartEffect(CameraEffect effect, Math::Vector pos, float force)
{
if ( !m_bEffect ) return;
@@ -621,7 +621,7 @@ void CCamera::EffectFrame(const Event &event)
if ( m_effectType == CE_NULL ) return;
- m_effectOffset = D3DVECTOR(0.0f, 0.0f, 0.0f);
+ m_effectOffset = Math::Vector(0.0f, 0.0f, 0.0f);
force = m_effectForce;
if ( m_effectType == CE_TERRAFORM )
@@ -678,7 +678,7 @@ void CCamera::EffectFrame(const Event &event)
m_effectOffset.z = (Math::Rand()-0.5f)*0.2f;
}
- dist = Length(m_eyePt, m_effectPos);
+ dist = Math::Distance(m_eyePt, m_effectPos);
dist = Math::Norm((dist-100.f)/100.0f);
force *= 1.0f-dist;
@@ -715,7 +715,7 @@ void CCamera::SetOverBaseColor(D3DCOLORVALUE color)
// Starts a layering effect in the foreground.
-void CCamera::StartOver(OverEffect effect, D3DVECTOR pos, float force)
+void CCamera::StartOver(OverEffect effect, Math::Vector pos, float force)
{
D3DCOLOR color;
float dist, decay;
@@ -725,7 +725,7 @@ void CCamera::StartOver(OverEffect effect, D3DVECTOR pos, float force)
if ( m_overType == OE_BLITZ ) decay = 400.0f;
else decay = 100.0f;
- dist = Length(m_eyePt, pos);
+ dist = Math::Distance(m_eyePt, pos);
dist = (dist-decay)/decay;
if ( dist < 0.0f ) dist = 0.0f;
if ( dist > 1.0f ) dist = 1.0f;
@@ -898,11 +898,11 @@ void CCamera::FixCamera()
// Specifies the location and direction of view to the 3D engine.
-void CCamera::SetViewTime(const D3DVECTOR &vEyePt,
- const D3DVECTOR &vLookatPt,
+void CCamera::SetViewTime(const Math::Vector &vEyePt,
+ const Math::Vector &vLookatPt,
float rTime)
{
- D3DVECTOR vUpVec, eye, lookat;
+ Math::Vector vUpVec, eye, lookat;
float prog, dist, h;
if ( m_type == CAMERA_INFO )
@@ -927,7 +927,7 @@ void CCamera::SetViewTime(const D3DVECTOR &vEyePt,
m_finalLookat = lookat;
}
- dist = Length(m_finalEye, m_actualEye);
+ dist = Math::Distance(m_finalEye, m_actualEye);
if ( m_smooth == CS_NONE ) prog = dist;
if ( m_smooth == CS_NORM ) prog = powf(dist, 1.5f)*rTime*0.5f;
if ( m_smooth == CS_HARD ) prog = powf(dist, 1.0f)*rTime*4.0f;
@@ -942,7 +942,7 @@ void CCamera::SetViewTime(const D3DVECTOR &vEyePt,
m_actualEye = (m_finalEye-m_actualEye)/dist*prog + m_actualEye;
}
- dist = Length(m_finalLookat, m_actualLookat);
+ dist = Math::Distance(m_finalLookat, m_actualLookat);
if ( m_smooth == CS_NONE ) prog = dist;
if ( m_smooth == CS_NORM ) prog = powf(dist, 1.5f)*rTime*2.0f;
if ( m_smooth == CS_HARD ) prog = powf(dist, 1.0f)*rTime*4.0f;
@@ -969,14 +969,14 @@ void CCamera::SetViewTime(const D3DVECTOR &vEyePt,
lookat = m_effectOffset+m_actualLookat;
}
- vUpVec = D3DVECTOR(0.0f, 1.0f, 0.0f);
+ vUpVec = Math::Vector(0.0f, 1.0f, 0.0f);
SetViewParams(eye, lookat, vUpVec);
}
// Avoid the obstacles.
-bool CCamera::IsCollision(D3DVECTOR &eye, D3DVECTOR lookat)
+bool CCamera::IsCollision(Math::Vector &eye, Math::Vector lookat)
{
if ( m_type == CAMERA_BACK ) return IsCollisionBack(eye, lookat);
if ( m_type == CAMERA_FIX ) return IsCollisionFix(eye, lookat);
@@ -986,11 +986,11 @@ bool CCamera::IsCollision(D3DVECTOR &eye, D3DVECTOR lookat)
// Avoid the obstacles.
-bool CCamera::IsCollisionBack(D3DVECTOR &eye, D3DVECTOR lookat)
+bool CCamera::IsCollisionBack(Math::Vector &eye, Math::Vector lookat)
{
#if 0
CObject *pObj;
- D3DVECTOR oPos, min, max, proj;
+ Math::Vector oPos, min, max, proj;
ObjectType oType, iType;
float oRadius, dpp, dpl, del, dist, len, prox;
int i;
@@ -1061,22 +1061,22 @@ bool CCamera::IsCollisionBack(D3DVECTOR &eye, D3DVECTOR lookat)
if ( iType == OBJECT_FACTORY )
{
- dpl = Length(oPos, lookat);
+ dpl = Math::Distance(oPos, lookat);
if ( dpl < oRadius ) continue;
}
proj = Projection(eye, lookat, oPos);
- dpp = Length(proj, oPos);
+ dpp = Math::Distance(proj, oPos);
if ( dpp > oRadius ) continue;
- del = Length(eye, lookat);
- len = Length(eye, proj);
+ del = Math::Distance(eye, lookat);
+ len = Math::Distance(eye, proj);
if ( len > del ) continue;
dist = sqrtf(oRadius*oRadius + dpp*dpp)-3.0f;
if ( dist < 0.0f ) dist = 0.0f;
proj = (lookat-eye)*dist/del + proj;
- len = Length(eye, proj);
+ len = Math::Distance(eye, proj);
if ( len < del-prox )
{
@@ -1094,7 +1094,7 @@ bool CCamera::IsCollisionBack(D3DVECTOR &eye, D3DVECTOR lookat)
return false;
#else
CObject *pObj;
- D3DVECTOR oPos, min, max, proj;
+ Math::Vector oPos, min, max, proj;
ObjectType oType, iType;
float oRadius, dpp, del, len, angle;
int i;
@@ -1168,7 +1168,7 @@ bool CCamera::IsCollisionBack(D3DVECTOR &eye, D3DVECTOR lookat)
oPos.z-oRadius > max.z ) continue;
proj = Projection(m_actualEye, m_actualLookat, oPos);
- dpp = Length(proj, oPos);
+ dpp = Math::Distance(proj, oPos);
if ( dpp > oRadius ) continue;
if ( oType == OBJECT_FACTORY )
@@ -1178,13 +1178,13 @@ bool CCamera::IsCollisionBack(D3DVECTOR &eye, D3DVECTOR lookat)
if ( fabs(angle) < 30.0f*Math::PI/180.0f ) continue; // in the gate?
}
- del = Length(m_actualEye, m_actualLookat);
+ del = Math::Distance(m_actualEye, m_actualLookat);
if ( oType == OBJECT_FACTORY )
{
del += oRadius;
}
- len = Length(m_actualEye, proj);
+ len = Math::Distance(m_actualEye, proj);
if ( len > del ) continue;
SetTransparency(pObj, 1.0f); // transparent object
@@ -1196,10 +1196,10 @@ bool CCamera::IsCollisionBack(D3DVECTOR &eye, D3DVECTOR lookat)
// Avoid the obstacles.
-bool CCamera::IsCollisionFix(D3DVECTOR &eye, D3DVECTOR lookat)
+bool CCamera::IsCollisionFix(Math::Vector &eye, Math::Vector lookat)
{
CObject *pObj;
- D3DVECTOR oPos, proj;
+ Math::Vector oPos, proj;
ObjectType type;
float oRadius, dist;
int i;
@@ -1233,10 +1233,10 @@ bool CCamera::IsCollisionFix(D3DVECTOR &eye, D3DVECTOR lookat)
pObj->GetGlobalSphere(oPos, oRadius);
if ( oRadius == 0.0f ) continue;
- dist = Length(eye, oPos);
+ dist = Math::Distance(eye, oPos);
if ( dist < oRadius )
{
- dist = Length(eye, lookat);
+ dist = Math::Distance(eye, lookat);
proj = Projection(eye, lookat, oPos);
eye = (lookat-eye)*oRadius/dist + proj;
return false;
@@ -1484,7 +1484,7 @@ D3DMouse CCamera::RetMouseDef(Math::Point pos)
bool CCamera::EventFrameFree(const Event &event)
{
- D3DVECTOR pos, vLookatPt;
+ Math::Vector pos, vLookatPt;
float factor;
factor = m_heightEye*0.5f+30.0f;
@@ -1495,22 +1495,22 @@ bool CCamera::EventFrameFree(const Event &event)
}
if ( m_mouseDirV != 0.0f )
{
- m_eyePt = LookatPoint(m_eyePt, m_directionH, m_directionV, m_mouseDirV*event.rTime*factor*m_speed);
+ m_eyePt = Math::LookatPoint(m_eyePt, m_directionH, m_directionV, m_mouseDirV*event.rTime*factor*m_speed);
}
// Up/Down.
- m_eyePt = LookatPoint(m_eyePt, m_directionH, m_directionV, event.axeY*event.rTime*factor*m_speed);
+ m_eyePt = Math::LookatPoint(m_eyePt, m_directionH, m_directionV, event.axeY*event.rTime*factor*m_speed);
// Left/Right.
if ( event.keyState & KS_CONTROL )
{
if ( event.axeX < 0.0f )
{
- m_eyePt = LookatPoint(m_eyePt, m_directionH+Math::PI/2.0f, m_directionV, -event.axeX*event.rTime*factor*m_speed);
+ m_eyePt = Math::LookatPoint(m_eyePt, m_directionH+Math::PI/2.0f, m_directionV, -event.axeX*event.rTime*factor*m_speed);
}
if ( event.axeX > 0.0f )
{
- m_eyePt = LookatPoint(m_eyePt, m_directionH-Math::PI/2.0f, m_directionV, event.axeX*event.rTime*factor*m_speed);
+ m_eyePt = Math::LookatPoint(m_eyePt, m_directionH-Math::PI/2.0f, m_directionV, event.axeX*event.rTime*factor*m_speed);
}
}
else
@@ -1552,7 +1552,7 @@ bool CCamera::EventFrameFree(const Event &event)
}
- vLookatPt = LookatPoint( m_eyePt, m_directionH, m_directionV, 50.0f );
+ vLookatPt = Math::LookatPoint( m_eyePt, m_directionH, m_directionV, 50.0f );
if ( m_terrain->MoveOnFloor(vLookatPt, true) )
{
@@ -1568,7 +1568,7 @@ bool CCamera::EventFrameFree(const Event &event)
bool CCamera::EventFrameEdit(const Event &event)
{
- D3DVECTOR pos, vLookatPt;
+ Math::Vector pos, vLookatPt;
float factor;
factor = m_editHeight*0.5f+30.0f;
@@ -1579,7 +1579,7 @@ bool CCamera::EventFrameEdit(const Event &event)
}
if ( m_mouseDirV != 0.0f )
{
- m_eyePt = LookatPoint(m_eyePt, m_directionH, m_directionV, m_mouseDirV*event.rTime*factor*m_speed);
+ m_eyePt = Math::LookatPoint(m_eyePt, m_directionH, m_directionV, m_mouseDirV*event.rTime*factor*m_speed);
}
if ( m_bCameraScroll )
@@ -1612,7 +1612,7 @@ bool CCamera::EventFrameEdit(const Event &event)
}
- vLookatPt = LookatPoint( m_eyePt, m_directionH, m_directionV, 50.0f );
+ vLookatPt = Math::LookatPoint( m_eyePt, m_directionH, m_directionV, 50.0f );
if ( m_terrain->MoveOnFloor(vLookatPt, true) )
{
@@ -1637,7 +1637,7 @@ bool CCamera::EventFrameBack(const Event &event)
{
CPhysics* physics;
ObjectType type;
- D3DVECTOR pos, vLookatPt;
+ Math::Vector pos, vLookatPt;
Math::Point mouse;
float centeringH, centeringV, centeringD, h, v, d, floor;
@@ -1838,7 +1838,7 @@ bool CCamera::EventFrameBack(const Event &event)
bool CCamera::EventFrameFix(const Event &event)
{
- D3DVECTOR pos, vLookatPt;
+ Math::Vector pos, vLookatPt;
float h, v, d;
// +/-.
@@ -1898,7 +1898,7 @@ bool CCamera::EventFrameFix(const Event &event)
bool CCamera::EventFrameExplo(const Event &event)
{
- D3DVECTOR pos, vLookatPt;
+ Math::Vector pos, vLookatPt;
float factor;
factor = m_heightEye*0.5f+30.0f;
@@ -1926,7 +1926,7 @@ bool CCamera::EventFrameExplo(const Event &event)
}
- vLookatPt = LookatPoint( m_eyePt, m_directionH, m_directionV, 50.0f );
+ vLookatPt = Math::LookatPoint( m_eyePt, m_directionH, m_directionV, 50.0f );
if ( m_terrain->MoveOnFloor(vLookatPt, true) )
{
@@ -1942,7 +1942,7 @@ bool CCamera::EventFrameExplo(const Event &event)
bool CCamera::EventFrameOnBoard(const Event &event)
{
- D3DVECTOR vLookatPt, vUpVec, eye, lookat, pos;
+ Math::Vector vLookatPt, vUpVec, eye, lookat, pos;
if ( m_cameraObj != 0 )
{
@@ -1962,8 +1962,8 @@ bool CCamera::EventFrameOnBoard(const Event &event)
bool CCamera::EventFrameInfo(const Event &event)
{
- SetViewTime(D3DVECTOR(0.0f, 0.0f, 0.0f),
- D3DVECTOR(0.0f, 0.0f, 1.0f),
+ SetViewTime(Math::Vector(0.0f, 0.0f, 0.0f),
+ Math::Vector(0.0f, 0.0f, 1.0f),
event.rTime);
return true;
}
@@ -1972,7 +1972,7 @@ bool CCamera::EventFrameInfo(const Event &event)
bool CCamera::EventFrameVisit(const Event &event)
{
- D3DVECTOR eye;
+ Math::Vector eye;
float angleH, angleV;
m_visitTime += event.rTime;
@@ -2027,12 +2027,12 @@ bool CCamera::EventFrameScript(const Event &event)
return true;
}
-void CCamera::SetScriptEye(D3DVECTOR eye)
+void CCamera::SetScriptEye(Math::Vector eye)
{
m_scriptEye = eye;
}
-void CCamera::SetScriptLookat(D3DVECTOR lookat)
+void CCamera::SetScriptLookat(Math::Vector lookat)
{
m_scriptLookat = lookat;
}
@@ -2040,8 +2040,8 @@ void CCamera::SetScriptLookat(D3DVECTOR lookat)
// Specifies the location and direction of view.
-void CCamera::SetViewParams(const D3DVECTOR &eye, const D3DVECTOR &lookat,
- const D3DVECTOR &up)
+void CCamera::SetViewParams(const Math::Vector &eye, const Math::Vector &lookat,
+ const Math::Vector &up)
{
bool bUnder;
@@ -2055,16 +2055,16 @@ void CCamera::SetViewParams(const D3DVECTOR &eye, const D3DVECTOR &lookat,
// Adjusts the camera not to enter the field.
-D3DVECTOR CCamera::ExcludeTerrain(D3DVECTOR eye, D3DVECTOR lookat,
+Math::Vector CCamera::ExcludeTerrain(Math::Vector eye, Math::Vector lookat,
float &angleH, float &angleV)
{
- D3DVECTOR pos;
+ Math::Vector pos;
float dist;
pos = eye;
if ( m_terrain->MoveOnFloor(pos) )
{
- dist = Length2d(lookat, pos);
+ dist = Math::DistanceProjected(lookat, pos);
pos.y += 2.0f+dist*0.1f;
if ( pos.y > eye.y )
{
@@ -2077,11 +2077,11 @@ D3DVECTOR CCamera::ExcludeTerrain(D3DVECTOR eye, D3DVECTOR lookat,
// Adjusts the camera not to enter an object.
-D3DVECTOR CCamera::ExcludeObject(D3DVECTOR eye, D3DVECTOR lookat,
+Math::Vector CCamera::ExcludeObject(Math::Vector eye, Math::Vector lookat,
float &angleH, float &angleV)
{
CObject* pObj;
- D3DVECTOR oPos;
+ Math::Vector oPos;
float oRad, dist;
int i, j;
@@ -2095,7 +2095,7 @@ return eye;
j = 0;
while ( pObj->GetCrashSphere(j++, oPos, oRad) )
{
- dist = Length(oPos, eye);
+ dist = Math::Distance(oPos, eye);
if ( dist < oRad+2.0f )
{
eye.y = oPos.y+oRad+2.0f;
diff --git a/src/graphics/common/camera.h b/src/graphics/common/camera.h
index 433a458..21ff2c9 100644
--- a/src/graphics/common/camera.h
+++ b/src/graphics/common/camera.h
@@ -94,7 +94,7 @@ public:
bool EventProcess(const Event &event);
- void Init(D3DVECTOR eye, D3DVECTOR lookat, float delay);
+ void Init(Math::Vector eye, Math::Vector lookat, float delay);
void SetObject(CObject* object);
CObject* RetObject();
@@ -117,25 +117,25 @@ public:
void SetRemoteZoom(float value);
float RetRemoteZoom();
- void StartVisit(D3DVECTOR goal, float dist);
+ void StartVisit(Math::Vector goal, float dist);
void StopVisit();
- void RetCamera(D3DVECTOR &eye, D3DVECTOR &lookat);
+ void RetCamera(Math::Vector &eye, Math::Vector &lookat);
bool StartCentering(CObject *object, float angleH, float angleV, float dist, float time);
bool StopCentering(CObject *object, float time);
void AbortCentering();
void FlushEffect();
- void StartEffect(CameraEffect effect, D3DVECTOR pos, float force);
+ void StartEffect(CameraEffect effect, Math::Vector pos, float force);
void FlushOver();
void SetOverBaseColor(D3DCOLORVALUE color);
- void StartOver(OverEffect effect, D3DVECTOR pos, float force);
+ void StartOver(OverEffect effect, Math::Vector pos, float force);
void FixCamera();
- void SetScriptEye(D3DVECTOR eye);
- void SetScriptLookat(D3DVECTOR lookat);
+ void SetScriptEye(Math::Vector eye);
+ void SetScriptLookat(Math::Vector lookat);
void SetEffect(bool bEnable);
void SetCameraScroll(bool bScroll);
@@ -160,15 +160,15 @@ protected:
bool EventFrameVisit(const Event &event);
bool EventFrameScript(const Event &event);
- void SetViewTime(const D3DVECTOR &vEyePt, const D3DVECTOR &vLookatPt, float rTime);
- bool IsCollision(D3DVECTOR &eye, D3DVECTOR lookat);
- bool IsCollisionBack(D3DVECTOR &eye, D3DVECTOR lookat);
- bool IsCollisionFix(D3DVECTOR &eye, D3DVECTOR lookat);
+ void SetViewTime(const Math::Vector &vEyePt, const Math::Vector &vLookatPt, float rTime);
+ bool IsCollision(Math::Vector &eye, Math::Vector lookat);
+ bool IsCollisionBack(Math::Vector &eye, Math::Vector lookat);
+ bool IsCollisionFix(Math::Vector &eye, Math::Vector lookat);
- D3DVECTOR ExcludeTerrain(D3DVECTOR eye, D3DVECTOR lookat, float &angleH, float &angleV);
- D3DVECTOR ExcludeObject(D3DVECTOR eye, D3DVECTOR lookat, float &angleH, float &angleV);
+ Math::Vector ExcludeTerrain(Math::Vector eye, Math::Vector lookat, float &angleH, float &angleV);
+ Math::Vector ExcludeObject(Math::Vector eye, Math::Vector lookat, float &angleH, float &angleV);
- void SetViewParams(const D3DVECTOR &eye, const D3DVECTOR &lookat, const D3DVECTOR &up);
+ void SetViewParams(const Math::Vector &eye, const Math::Vector &lookat, const Math::Vector &up);
void EffectFrame(const Event &event);
void OverFrame(const Event &event);
@@ -185,12 +185,12 @@ protected:
float m_eyeDistance; // distance between the eyes
float m_initDelay; // time of initial centering
- D3DVECTOR m_actualEye; // current eye
- D3DVECTOR m_actualLookat; // aim current
- D3DVECTOR m_finalEye; // final eye
- D3DVECTOR m_finalLookat; // aim final
- D3DVECTOR m_normEye; // normal eye
- D3DVECTOR m_normLookat; // aim normal
+ Math::Vector m_actualEye; // current eye
+ Math::Vector m_actualLookat; // aim current
+ Math::Vector m_finalEye; // final eye
+ Math::Vector m_finalLookat; // aim final
+ Math::Vector m_normEye; // normal eye
+ Math::Vector m_normLookat; // aim normal
float m_focus;
bool m_bRightDown;
@@ -198,7 +198,7 @@ protected:
Math::Point m_rightPosCenter;
Math::Point m_rightPosMove;
- D3DVECTOR m_eyePt; // CAMERA_FREE: eye
+ Math::Vector m_eyePt; // CAMERA_FREE: eye
float m_directionH; // CAMERA_FREE: horizontal direction
float m_directionV; // CAMERA_FREE: vertical direction
float m_heightEye; // CAMERA_FREE: height above the ground
@@ -215,7 +215,7 @@ protected:
float m_fixDirectionH; // CAMERA_FIX: direction
float m_fixDirectionV; // CAMERA_FIX: direction
- D3DVECTOR m_visitGoal; // CAMERA_VISIT: target position
+ Math::Vector m_visitGoal; // CAMERA_VISIT: target position
float m_visitDist; // CAMERA_VISIT: distance
float m_visitTime; // CAMERA_VISIT: relative time
CameraType m_visitType; // CAMERA_VISIT: initial type
@@ -244,10 +244,10 @@ protected:
float m_centeringProgress;
CameraEffect m_effectType;
- D3DVECTOR m_effectPos;
+ Math::Vector m_effectPos;
float m_effectForce;
float m_effectProgress;
- D3DVECTOR m_effectOffset;
+ Math::Vector m_effectOffset;
OverEffect m_overType;
float m_overForce;
@@ -258,8 +258,8 @@ protected:
float m_overFadeIn;
float m_overFadeOut;
- D3DVECTOR m_scriptEye;
- D3DVECTOR m_scriptLookat;
+ Math::Vector m_scriptEye;
+ Math::Vector m_scriptLookat;
bool m_bEffect; // shocks if explosion?
bool m_bCameraScroll; // scroll in the edges?
diff --git a/src/graphics/common/cloud.cpp b/src/graphics/common/cloud.cpp
index 507da66..67e2fe2 100644
--- a/src/graphics/common/cloud.cpp
+++ b/src/graphics/common/cloud.cpp
@@ -20,6 +20,8 @@
#include <d3d.h>
#include "common/struct.h"
+#include "math/geometry.h"
+#include "math/conv.h"
#include "graphics/d3d/d3dengine.h"
#include "math/old/d3dmath.h"
#include "graphics/d3d/d3dutil.h"
@@ -48,7 +50,7 @@ CCloud::CCloud(CInstanceManager* iMan, CD3DEngine* engine)
m_terrain = 0;
m_level = 0.0f;
- m_wind = D3DVECTOR(0.0f, 0.0f, 0.0f);
+ m_wind = Math::Vector(0.0f, 0.0f, 0.0f);
m_subdiv = 8;
m_filename[0] = 0;
m_bEnable = true;
@@ -91,7 +93,7 @@ bool CCloud::EventFrame(const Event &event)
// Adjusts the position to normal, to imitate the clouds
// at movement.
-void CCloud::AdjustLevel(D3DVECTOR &pos, D3DVECTOR &eye, float deep,
+void CCloud::AdjustLevel(Math::Vector &pos, Math::Vector &eye, float deep,
Math::Point &uv1, Math::Point &uv2)
{
float dist, factor;
@@ -104,7 +106,7 @@ void CCloud::AdjustLevel(D3DVECTOR &pos, D3DVECTOR &eye, float deep,
uv2.x = 0.0f;
uv2.y = 0.0f;
- dist = Length2d(pos, eye);
+ dist = Math::DistanceProjected(pos, eye);
factor = powf(dist/deep, 2.0f);
pos.y -= m_level*factor*10.0f;
}
@@ -120,10 +122,10 @@ void CCloud::Draw()
{
LPDIRECT3DDEVICE7 device;
D3DVERTEX2* vertex;
- D3DMATRIX* matView;
+ Math::Matrix* matView;
D3DMATERIAL7 material;
- D3DMATRIX matrix;
- D3DVECTOR n, pos, p, eye;
+ Math::Matrix matrix;
+ Math::Vector n, pos, p, eye;
Math::Point uv1, uv2;
float iDeep, deep, size, fogStart, fogEnd;
int i, j, u;
@@ -155,7 +157,10 @@ void CCloud::Draw()
device->SetRenderState(D3DRENDERSTATE_FOGEND, F2DW(fogEnd));
matView = m_engine->RetMatView();
- device->SetTransform(D3DTRANSFORMSTATE_VIEW, matView);
+ {
+ D3DMATRIX mat = MAT_TO_D3DMAT(*matView);
+ device->SetTransform(D3DTRANSFORMSTATE_VIEW, &mat);
+ }
ZeroMemory( &material, sizeof(D3DMATERIAL7) );
material.diffuse = m_diffuse;
@@ -169,12 +174,15 @@ void CCloud::Draw()
m_engine->SetState(D3DSTATETTb|D3DSTATEFOG|D3DSTATEWRAP);
//? m_engine->SetState(D3DSTATEWRAP);
- D3DUtil_SetIdentityMatrix(matrix);
- device->SetTransform(D3DTRANSFORMSTATE_WORLD, &matrix);
+ matrix.LoadIdentity();
+ {
+ D3DMATRIX mat = MAT_TO_D3DMAT(matrix);
+ device->SetTransform(D3DTRANSFORMSTATE_WORLD, &mat);
+ }
size = m_size/2.0f;
eye = m_engine->RetEyePt();
- n = D3DVECTOR(0.0f, -1.0f, 0.0f);
+ n = Math::Vector(0.0f, -1.0f, 0.0f);
// Draws all the lines.
for ( i=0 ; i<m_lineUsed ; i++ )
diff --git a/src/graphics/common/cloud.h b/src/graphics/common/cloud.h
index d806c03..59d929c 100644
--- a/src/graphics/common/cloud.h
+++ b/src/graphics/common/cloud.h
@@ -59,7 +59,7 @@ public:
protected:
bool EventFrame(const Event &event);
- void AdjustLevel(D3DVECTOR &pos, D3DVECTOR &eye, float deep, Math::Point &uv1, Math::Point &uv2);
+ void AdjustLevel(Math::Vector &pos, Math::Vector &eye, float deep, Math::Point &uv1, Math::Point &uv2);
bool CreateLine(int x, int y, int len);
protected:
@@ -76,7 +76,7 @@ protected:
float m_lastTest;
int m_subdiv;
- D3DVECTOR m_wind; // wind speed
+ Math::Vector m_wind; // wind speed
int m_brick; // brick mosaic
float m_size; // size of a brick element
diff --git a/src/graphics/common/light.cpp b/src/graphics/common/light.cpp
index 3077c27..cc50f87 100644
--- a/src/graphics/common/light.cpp
+++ b/src/graphics/common/light.cpp
@@ -24,6 +24,7 @@
#include "common/struct.h"
#include "math/const.h"
#include "math/geometry.h"
+#include "math/conv.h"
#include "graphics/d3d/d3dengine.h"
#include "common/event.h"
#include "common/misc.h"
@@ -258,37 +259,37 @@ bool CLight::SetLightExcluType(int lightRank, D3DTypeObj type)
// Management of the position of the light.
-bool CLight::SetLightPos(int lightRank, D3DVECTOR pos)
+bool CLight::SetLightPos(int lightRank, Math::Vector pos)
{
if ( lightRank < 0 || lightRank >= D3DMAXLIGHT ) return false;
- m_lightTable[lightRank].light.dvPosition = pos;
+ m_lightTable[lightRank].light.dvPosition = VEC_TO_D3DVEC(pos);
return true;
}
-D3DVECTOR CLight::RetLightPos(int lightRank)
+Math::Vector CLight::RetLightPos(int lightRank)
{
- if ( lightRank < 0 || lightRank >= D3DMAXLIGHT ) return D3DVECTOR(0.0f, 0.0f, 0.0f);
+ if ( lightRank < 0 || lightRank >= D3DMAXLIGHT ) return Math::Vector(0.0f, 0.0f, 0.0f);
- return m_lightTable[lightRank].light.dvPosition;
+ return D3DVEC_TO_VEC(m_lightTable[lightRank].light.dvPosition);
}
// Management direction of the light.
-bool CLight::SetLightDir(int lightRank, D3DVECTOR dir)
+bool CLight::SetLightDir(int lightRank, Math::Vector dir)
{
if ( lightRank < 0 || lightRank >= D3DMAXLIGHT ) return false;
- m_lightTable[lightRank].light.dvDirection = dir;
+ m_lightTable[lightRank].light.dvDirection = VEC_TO_D3DVEC(dir);
return true;
}
-D3DVECTOR CLight::RetLightDir(int lightRank)
+Math::Vector CLight::RetLightDir(int lightRank)
{
- if ( lightRank < 0 || lightRank >= D3DMAXLIGHT ) return D3DVECTOR(0.0f, 0.0f, 0.0f);
+ if ( lightRank < 0 || lightRank >= D3DMAXLIGHT ) return Math::Vector(0.0f, 0.0f, 0.0f);
- return m_lightTable[lightRank].light.dvDirection;
+ return D3DVEC_TO_VEC(m_lightTable[lightRank].light.dvDirection);
}
@@ -397,7 +398,7 @@ void CLight::AdaptLightColor(D3DCOLORVALUE color, float factor)
void CLight::FrameLight(float rTime)
{
- D3DVECTOR dir;
+ Math::Vector dir;
float angle;
int i;
diff --git a/src/graphics/common/light.h b/src/graphics/common/light.h
index 2b20094..683f715 100644
--- a/src/graphics/common/light.h
+++ b/src/graphics/common/light.h
@@ -75,11 +75,11 @@ public:
bool SetLightIncluType(int lightRank, D3DTypeObj type);
bool SetLightExcluType(int lightRank, D3DTypeObj type);
- bool SetLightPos(int lightRank, D3DVECTOR pos);
- D3DVECTOR RetLightPos(int lightRank);
+ bool SetLightPos(int lightRank, Math::Vector pos);
+ Math::Vector RetLightPos(int lightRank);
- bool SetLightDir(int lightRank, D3DVECTOR dir);
- D3DVECTOR RetLightDir(int lightRank);
+ bool SetLightDir(int lightRank, Math::Vector dir);
+ Math::Vector RetLightDir(int lightRank);
bool SetLightIntensitySpeed(int lightRank, float speed);
bool SetLightIntensity(int lightRank, float value);
diff --git a/src/graphics/common/model.cpp b/src/graphics/common/model.cpp
index 8fc6be3..b464244 100644
--- a/src/graphics/common/model.cpp
+++ b/src/graphics/common/model.cpp
@@ -752,22 +752,22 @@ bool CModel::EventProcess(const Event &event)
break;
case EVENT_BUTTON13: // +X ?
- MoveSelect(D3DVECTOR(1.0f, 0.0f, 0.0f));
+ MoveSelect(Math::Vector(1.0f, 0.0f, 0.0f));
break;
case EVENT_BUTTON16: // -X ?
- MoveSelect(D3DVECTOR(-1.0f, 0.0f, 0.0f));
+ MoveSelect(Math::Vector(-1.0f, 0.0f, 0.0f));
break;
case EVENT_BUTTON14: // +Y ?
- MoveSelect(D3DVECTOR(0.0f, 1.0f, 0.0f));
+ MoveSelect(Math::Vector(0.0f, 1.0f, 0.0f));
break;
case EVENT_BUTTON17: // -Y ?
- MoveSelect(D3DVECTOR(0.0f, -1.0f, 0.0f));
+ MoveSelect(Math::Vector(0.0f, -1.0f, 0.0f));
break;
case EVENT_BUTTON15: // +Z ?
- MoveSelect(D3DVECTOR(0.0f, 0.0f, 1.0f));
+ MoveSelect(Math::Vector(0.0f, 0.0f, 1.0f));
break;
case EVENT_BUTTON18: // -Z ?
- MoveSelect(D3DVECTOR(0.0f, 0.0f, -1.0f));
+ MoveSelect(Math::Vector(0.0f, 0.0f, -1.0f));
break;
}
@@ -945,7 +945,7 @@ void CModel::SmoothSelect()
int index[100];
int used, i, j, rank;
D3DVERTEX2 vi, vj;
- D3DVECTOR sum;
+ Math::Vector sum;
used = m_modFile->RetTriangleUsed();
@@ -1008,7 +1008,7 @@ void CModel::SmoothSelect()
void CModel::PlaneSelect()
{
- D3DVECTOR p1, p2, p3, n;
+ Math::Vector p1, p2, p3, n;
int used, i;
used = m_modFile->RetTriangleUsed();
@@ -1029,7 +1029,7 @@ void CModel::PlaneSelect()
p3.y = m_triangleTable[i].p3.y;
p3.z = m_triangleTable[i].p3.z;
- n = ComputeNormal(p3, p2, p1);
+ n = Math::NormalToPlane(p3, p2, p1);
m_triangleTable[i].p3.nx = n.x;
m_triangleTable[i].p3.ny = n.y;
@@ -1082,7 +1082,7 @@ void CModel::StateSelect()
// Moves the selection.
-void CModel::MoveSelect(D3DVECTOR move)
+void CModel::MoveSelect(Math::Vector move)
{
if ( m_oper == 'Z' )
{
@@ -1120,7 +1120,7 @@ void CModel::MoveSelect(D3DVECTOR move)
// Moves the selection.
-void CModel::OperSelect(D3DVECTOR move, char oper)
+void CModel::OperSelect(Math::Vector move, char oper)
{
Math::Point rot;
int used, i;
@@ -1233,7 +1233,7 @@ void CModel::ReadScript(char *filename)
char name[200];
char buffer[200];
int i, first, last;
- D3DVECTOR move;
+ Math::Vector move;
bool bFirst = true;
file = fopen(filename, "r");
@@ -1290,7 +1290,7 @@ void CModel::ReadScript(char *filename)
// Computes the bbox of selected triangles.
-void CModel::BBoxCompute(D3DVECTOR &min, D3DVECTOR &max)
+void CModel::BBoxCompute(Math::Vector &min, Math::Vector &max)
{
D3DVERTEX2 vertex;
int used, i;
@@ -1320,9 +1320,9 @@ void CModel::BBoxCompute(D3DVECTOR &min, D3DVECTOR &max)
// Returns the gravity center of the selection.
-D3DVECTOR CModel::RetSelectCDG()
+Math::Vector CModel::RetSelectCDG()
{
- D3DVECTOR min, max, cdg;
+ Math::Vector min, max, cdg;
BBoxCompute(min, max);
@@ -1335,9 +1335,9 @@ D3DVECTOR CModel::RetSelectCDG()
// Returns the normal vector of the selection.
-D3DVECTOR CModel::RetSelectNormal()
+Math::Vector CModel::RetSelectNormal()
{
- D3DVECTOR p1, p2, p3, n;
+ Math::Vector p1, p2, p3, n;
p1.x = m_triangleTable[m_triangleSel1].p1.nx;
p1.y = m_triangleTable[m_triangleSel1].p1.ny;
@@ -1361,7 +1361,7 @@ D3DVECTOR CModel::RetSelectNormal()
bool CModel::IsMappingSelectPlausible(D3DMaping D3Dmode)
{
D3DVERTEX2 vertex[3];
- D3DVECTOR min, max;
+ Math::Vector min, max;
Math::Point a, b, ti, ts;
float au, bu, av, bv;
int used, i, j;
@@ -1443,7 +1443,7 @@ void CModel::MappingSelect(int mode, int rotate, bool bMirrorX, bool bMirrorY,
Math::Point ti, Math::Point ts, char *texName)
{
D3DVERTEX2 vertex;
- D3DVECTOR min, max;
+ Math::Vector min, max;
Math::Point a, b;
D3DMaping D3Dmode;
float au, bu, av, bv;
@@ -1562,7 +1562,7 @@ void CModel::MappingSelectSpherical(int mode, int rotate, bool bMirrorX, bool bM
Math::Point ti, Math::Point ts, char *texName)
{
D3DVERTEX2 vertex;
- D3DVECTOR min, max, center, dim, p;
+ Math::Vector min, max, center, dim, p;
float radius, k, u, v;
int used, i;
@@ -1590,7 +1590,7 @@ void CModel::MappingSelectSpherical(int mode, int rotate, bool bMirrorX, bool bM
p.y = vertex.y-center.y;
p.z = vertex.z-center.z;
- k = radius/Length(p);
+ k = radius/p.Length();
u = k*p.x;
v = k*p.z;
u = (u/dim.x*2.0f+1.0f)/2.0f; // 0..1
@@ -1607,10 +1607,10 @@ void CModel::MappingSelectSpherical(int mode, int rotate, bool bMirrorX, bool bM
// Seeking the center of a group of points.
-D3DVECTOR CModel::RetMappingCenter(D3DVECTOR pos, D3DVECTOR min)
+Math::Vector CModel::RetMappingCenter(Math::Vector pos, Math::Vector min)
{
D3DVERTEX2 vertex;
- D3DVECTOR center, p;
+ Math::Vector center, p;
int used, i, nb;
center.x = 0.0f;
@@ -1653,7 +1653,7 @@ void CModel::MappingSelectCylindrical(int mode, int rotate, bool bMirrorX, bool
Math::Point ti, Math::Point ts, char *texName)
{
D3DVERTEX2 vertex;
- D3DVECTOR min, max, center, local, dim, p, pp, box;
+ Math::Vector min, max, center, local, dim, p, pp, box;
float radius, u, v;
int used, i;
@@ -1755,7 +1755,7 @@ void CModel::MappingSelectFace(int mode, int rotate, bool bMirrorX, bool bMirror
Math::Point ti, Math::Point ts, char *texName)
{
D3DVERTEX2 vertex[3];
- D3DVECTOR min, max, center, local, dim, p;
+ Math::Vector min, max, center, local, dim, p;
float radius, u[3], v[3], m[3], avg;
int used, i, j;
@@ -1828,7 +1828,7 @@ void CModel::MappingSelect2(int texNum2, int subdiv,
bool bMirrorX, bool bMirrorY)
{
D3DVERTEX2 vertex;
- D3DVECTOR min, max, center, p;
+ Math::Vector min, max, center, p;
float u ,v;
int used, i;
@@ -1871,7 +1871,7 @@ void CModel::MappingSelect2(int texNum2, int subdiv,
p.z = vertex.z-center.z;
u = Math::RotateAngle(p.x, p.z);
- v = Math::RotateAngle(Length(p.x, p.z), p.y);
+ v = Math::RotateAngle(Math::Point(p.x, p.z).Length(), p.y);
if ( p.x < 0.0f ) v += Math::PI;
u = Math::NormAngle(u+(float)offsetU*Math::PI/180.0f);
@@ -1904,7 +1904,7 @@ void CModel::MappingSelect2(int texNum2, int subdiv,
void CModel::MappingSelectPlane2(int mode, bool bMirrorX, bool bMirrorY)
{
D3DVERTEX2 vertex;
- D3DVECTOR min, max;
+ Math::Vector min, max;
Math::Point ti, ts, a, b;
float au, bu, av, bv;
int used, i;
@@ -1984,7 +1984,7 @@ void CModel::MappingSelectPlane2(int mode, bool bMirrorX, bool bMirrorY)
void CModel::MappingSelectSpherical2(bool bMirrorX, bool bMirrorY)
{
D3DVERTEX2 vertex;
- D3DVECTOR min, max, center, dim, p;
+ Math::Vector min, max, center, dim, p;
Math::Point ti, ts;
float radius, k, u, v;
int used, i;
@@ -2016,7 +2016,7 @@ void CModel::MappingSelectSpherical2(bool bMirrorX, bool bMirrorY)
p.y = vertex.y-center.y;
p.z = vertex.z-center.z;
- k = radius/Length(p);
+ k = radius/p.Length();
u = k*p.x;
v = k*p.z;
u = (u/dim.x*2.0f+1.0f)/2.0f; // 0..1
@@ -2036,7 +2036,7 @@ void CModel::MappingSelectSpherical2(bool bMirrorX, bool bMirrorY)
void CModel::MappingSelectMagic2(bool bMirrorX, bool bMirrorY)
{
D3DVERTEX2 vertex, v[3];
- D3DVECTOR min, max, au, bu, av, bv, n;
+ Math::Vector min, max, au, bu, av, bv, n;
Math::Point ti, ts;
int used, i, mode;
@@ -2078,9 +2078,9 @@ void CModel::MappingSelectMagic2(bool bMirrorX, bool bMirrorY)
if ( !GetVertex(i+1, v[1]) ) continue;
if ( !GetVertex(i+2, v[2]) ) continue;
- n = ComputeNormal(D3DVECTOR(v[0].x, v[0].y, v[0].z),
- D3DVECTOR(v[1].x, v[1].y, v[1].z),
- D3DVECTOR(v[2].x, v[2].y, v[2].z));
+ n = Math::NormalToPlane(Math::Vector(v[0].x, v[0].y, v[0].z),
+ Math::Vector(v[1].x, v[1].y, v[1].z),
+ Math::Vector(v[2].x, v[2].y, v[2].z));
n.x = fabs(n.x);
n.y = fabs(n.y);
@@ -2142,7 +2142,7 @@ int CModel::SearchNext(int rank, int step)
int CModel::SearchSamePlane(int first, int step)
{
- D3DVECTOR vFirst[3], vNext[3];
+ Math::Vector vFirst[3], vNext[3];
int last, i;
vFirst[0].x = m_triangleTable[first].p1.x;
@@ -2424,7 +2424,7 @@ void CModel::InitView()
void CModel::InitViewFromSelect()
{
#if 0
- D3DVECTOR n;
+ Math::Vector n;
float h,v;
n = RetSelectNormal();
@@ -2456,13 +2456,13 @@ void CModel::InitViewFromSelect()
void CModel::UpdateView()
{
- D3DVECTOR eye, lookat, vUpVec;
+ Math::Vector eye, lookat, vUpVec;
//? lookat = RetSelectCDG();
- lookat = D3DVECTOR(0.0f, m_viewHeight, 0.0f);
+ lookat = Math::Vector(0.0f, m_viewHeight, 0.0f);
eye = RotateView(lookat, m_viewAngleH, m_viewAngleV, m_viewDist);
- vUpVec = D3DVECTOR(0.0f, 1.0f, 0.0f);
+ vUpVec = Math::Vector(0.0f, 1.0f, 0.0f);
m_engine->SetViewParams(eye, lookat, vUpVec, 10.0f);
m_engine->SetRankView(0);
}
diff --git a/src/graphics/common/model.h b/src/graphics/common/model.h
index 385f4e1..74914f0 100644
--- a/src/graphics/common/model.h
+++ b/src/graphics/common/model.h
@@ -51,20 +51,20 @@ protected:
bool EventFrame(const Event &event);
bool GetVertex(int rank, D3DVERTEX2 &vertex);
bool SetVertex(int rank, D3DVERTEX2 &vertex);
- D3DVECTOR RetSelectCDG();
- D3DVECTOR RetSelectNormal();
+ Math::Vector RetSelectCDG();
+ Math::Vector RetSelectNormal();
void SmoothSelect();
void PlaneSelect();
void ColorSelect();
void StateSelect();
- void MoveSelect(D3DVECTOR move);
- void OperSelect(D3DVECTOR move, char oper);
+ void MoveSelect(Math::Vector move);
+ void OperSelect(Math::Vector move, char oper);
void ReadScript(char *filename);
- void BBoxCompute(D3DVECTOR &min, D3DVECTOR &max);
+ void BBoxCompute(Math::Vector &min, Math::Vector &max);
bool IsMappingSelectPlausible(D3DMaping D3Dmode);
void MappingSelect(int mode, int rotate, bool bMirrorX, bool bMirrorY, Math::Point ti, Math::Point ts, char *texName);
void MappingSelectSpherical(int mode, int rotate, bool bMirrorX, bool bMirrorY, Math::Point ti, Math::Point ts, char *texName);
- D3DVECTOR RetMappingCenter(D3DVECTOR pos, D3DVECTOR min);
+ Math::Vector RetMappingCenter(Math::Vector pos, Math::Vector min);
void MappingSelectCylindrical(int mode, int rotate, bool bMirrorX, bool bMirrorY, Math::Point ti, Math::Point ts, char *texName);
void MappingSelectFace(int mode, int rotate, bool bMirrorX, bool bMirrorY, Math::Point ti, Math::Point ts, char *texName);
void MappingSelect2(int texNum2, int subdiv, int offsetU, int offsetV, bool bMirrorX, bool bMirrorY);
diff --git a/src/graphics/common/particule.cpp b/src/graphics/common/particule.cpp
index 6359ddf..0c63049 100644
--- a/src/graphics/common/particule.cpp
+++ b/src/graphics/common/particule.cpp
@@ -24,6 +24,7 @@
#include "common/struct.h"
#include "math/const.h"
#include "math/geometry.h"
+#include "math/conv.h"
#include "math/old/d3dmath.h"
#include "graphics/d3d/d3dtextr.h"
#include "graphics/d3d/d3dengine.h"
@@ -249,7 +250,7 @@ void NameParticule(char *buffer, int num)
// Creates a new particle.
// Returns the channel of the particle created or -1 on error.
-int CParticule::CreateParticule(D3DVECTOR pos, D3DVECTOR speed, Math::Point dim,
+int CParticule::CreateParticule(Math::Vector pos, Math::Vector speed, Math::Point dim,
ParticuleType type,
float duration, float mass,
float windSensitivity, int sheet)
@@ -273,7 +274,7 @@ int CParticule::CreateParticule(D3DVECTOR pos, D3DVECTOR speed, Math::Point dim,
type != PARTIQUARTZ &&
!m_main->RetMovieLock() )
{
- dist = Length(pos, m_engine->RetEyePt());
+ dist = Math::Distance(pos, m_engine->RetEyePt());
if ( dist > 300.0f ) return -1;
}
#endif
@@ -454,13 +455,13 @@ int CParticule::CreateParticule(D3DVECTOR pos, D3DVECTOR speed, Math::Point dim,
// Creates a new triangular particle (debris).
// Returns the channel of the particle created or -1 on error.
-int CParticule::CreateFrag(D3DVECTOR pos, D3DVECTOR speed,
+int CParticule::CreateFrag(Math::Vector pos, Math::Vector speed,
D3DTriangle *triangle,
ParticuleType type,
float duration, float mass,
float windSensitivity, int sheet)
{
- D3DVECTOR p1, p2, p3, n;
+ Math::Vector p1, p2, p3, n;
float l1, l2, l3, dx, dy;
int i, j, t;
@@ -513,14 +514,14 @@ int CParticule::CreateFrag(D3DVECTOR pos, D3DVECTOR speed,
p3.y = m_triangle[i].triangle[2].y;
p3.z = m_triangle[i].triangle[2].z;
- l1 = Length(p1, p2);
- l2 = Length(p2, p3);
- l3 = Length(p3, p1);
+ l1 = Math::Distance(p1, p2);
+ l2 = Math::Distance(p2, p3);
+ l3 = Math::Distance(p3, p1);
dx = fabs(Math::Min(l1, l2, l3))*0.5f;
dy = fabs(Math::Max(l1, l2, l3))*0.5f;
- p1 = D3DVECTOR(-dx, dy, 0.0f);
- p2 = D3DVECTOR( dx, dy, 0.0f);
- p3 = D3DVECTOR(-dx, -dy, 0.0f);
+ p1 = Math::Vector(-dx, dy, 0.0f);
+ p2 = Math::Vector( dx, dy, 0.0f);
+ p3 = Math::Vector(-dx, -dy, 0.0f);
m_triangle[i].triangle[0].x = p1.x;
m_triangle[i].triangle[0].y = p1.y;
@@ -534,7 +535,7 @@ int CParticule::CreateFrag(D3DVECTOR pos, D3DVECTOR speed,
m_triangle[i].triangle[2].y = p3.y;
m_triangle[i].triangle[2].z = p3.z;
- n = D3DVECTOR(0.0f, 0.0f, -1.0f);
+ n = Math::Vector(0.0f, 0.0f, -1.0f);
m_triangle[i].triangle[0].nx = n.x;
m_triangle[i].triangle[0].ny = n.y;
@@ -562,7 +563,7 @@ int CParticule::CreateFrag(D3DVECTOR pos, D3DVECTOR speed,
// Creates a new particle being a part of object.
// Returns the channel of the particle created or -1 on error.
-int CParticule::CreatePart(D3DVECTOR pos, D3DVECTOR speed,
+int CParticule::CreatePart(Math::Vector pos, Math::Vector speed,
ParticuleType type,
float duration, float mass, float weight,
float windSensitivity, int sheet)
@@ -614,7 +615,7 @@ int CParticule::CreatePart(D3DVECTOR pos, D3DVECTOR speed,
// Creates a new linear particle (radius).
// Returns the channel of the particle created or -1 on error.
-int CParticule::CreateRay(D3DVECTOR pos, D3DVECTOR goal,
+int CParticule::CreateRay(Math::Vector pos, Math::Vector goal,
ParticuleType type, Math::Point dim,
float duration, int sheet)
{
@@ -646,7 +647,7 @@ int CParticule::CreateRay(D3DVECTOR pos, D3DVECTOR goal,
m_particule[i].duration = duration;
m_particule[i].pos = pos;
m_particule[i].goal = goal;
- m_particule[i].speed = D3DVECTOR(0.0f, 0.0f, 0.0f);
+ m_particule[i].speed = Math::Vector(0.0f, 0.0f, 0.0f);
m_particule[i].windSensitivity = 0.0f;
m_particule[i].dim = dim;
m_particule[i].zoom = 1.0f;
@@ -677,7 +678,7 @@ int CParticule::CreateRay(D3DVECTOR pos, D3DVECTOR goal,
// Creates a particle with a trail.
// "length" is the length of the tail of drag (in seconds)!
-int CParticule::CreateTrack(D3DVECTOR pos, D3DVECTOR speed, Math::Point dim,
+int CParticule::CreateTrack(Math::Vector pos, Math::Vector speed, Math::Point dim,
ParticuleType type, float duration, float mass,
float length, float width)
{
@@ -713,8 +714,8 @@ int CParticule::CreateTrack(D3DVECTOR pos, D3DVECTOR speed, Math::Point dim,
// Creates a tire mark.
-void CParticule::CreateWheelTrace(const D3DVECTOR &p1, const D3DVECTOR &p2,
- const D3DVECTOR &p3, const D3DVECTOR &p4,
+void CParticule::CreateWheelTrace(const Math::Vector &p1, const Math::Vector &p2,
+ const Math::Vector &p3, const Math::Vector &p4,
ParticuleType type)
{
int i, max;
@@ -866,7 +867,7 @@ void CParticule::SetObjectFather(int channel, CObject *object)
m_particule[channel].objFather = object;
}
-void CParticule::SetPosition(int channel, D3DVECTOR pos)
+void CParticule::SetPosition(int channel, Math::Vector pos)
{
if ( !CheckChannel(channel) ) return;
m_particule[channel].pos = pos;
@@ -896,7 +897,7 @@ void CParticule::SetIntensity(int channel, float intensity)
m_particule[channel].intensity = intensity;
}
-void CParticule::SetParam(int channel, D3DVECTOR pos, Math::Point dim, float zoom,
+void CParticule::SetParam(int channel, Math::Vector pos, Math::Point dim, float zoom,
float angle, float intensity)
{
if ( !CheckChannel(channel) ) return;
@@ -917,7 +918,7 @@ void CParticule::SetPhase(int channel, ParticulePhase phase, float duration)
// Returns the position of the particle.
-bool CParticule::GetPosition(int channel, D3DVECTOR &pos)
+bool CParticule::GetPosition(int channel, Math::Vector &pos)
{
if ( !CheckChannel(channel) ) return false;
pos = m_particule[channel].pos;
@@ -937,7 +938,7 @@ void CParticule::SetFrameUpdate(int sheet, bool bUpdate)
void CParticule::FrameParticule(float rTime)
{
CObject* object;
- D3DVECTOR eye, pos, speed, wind;
+ Math::Vector eye, pos, speed, wind;
Math::Point ts, ti, dim;
bool bPause;
float progress, dp, h, duration, mass, amplitude;
@@ -1417,7 +1418,7 @@ void CParticule::FrameParticule(float rTime)
{
if ( object->RetShieldRadius() > 0.0f ) // protected by shield?
{
- CreateParticule(m_particule[i].pos, D3DVECTOR(0.0f, 0.0f, 0.0f), Math::Point(6.0f, 6.0f), PARTIGUNDEL, 2.0f);
+ CreateParticule(m_particule[i].pos, Math::Vector(0.0f, 0.0f, 0.0f), Math::Point(6.0f, 6.0f), PARTIGUNDEL, 2.0f);
if ( m_lastTimeGunDel > 0.2f )
{
m_lastTimeGunDel = 0.0f;
@@ -1463,7 +1464,7 @@ void CParticule::FrameParticule(float rTime)
{
if ( object->RetShieldRadius() > 0.0f )
{
- CreateParticule(m_particule[i].pos, D3DVECTOR(0.0f, 0.0f, 0.0f), Math::Point(6.0f, 6.0f), PARTIGUNDEL, 2.0f);
+ CreateParticule(m_particule[i].pos, Math::Vector(0.0f, 0.0f, 0.0f), Math::Point(6.0f, 6.0f), PARTIGUNDEL, 2.0f);
if ( m_lastTimeGunDel > 0.2f )
{
m_lastTimeGunDel = 0.0f;
@@ -2144,12 +2145,12 @@ void CParticule::FrameParticule(float rTime)
{
m_particule[i].testTime = 0.0f;
- D3DVECTOR pos, speed;
+ Math::Vector pos, speed;
Math::Point dim;
pos = m_particule[i].pos;
//? speed = -m_particule[i].speed*0.5f;
- speed = D3DVECTOR(0.0f, 0.0f, 0.0f);
+ speed = Math::Vector(0.0f, 0.0f, 0.0f);
dim.x = 1.0f*(Math::Rand()*0.8f+0.6f);
dim.y = dim.x;
CreateParticule(pos, speed, dim, PARTIGAS, 0.5f);
@@ -2748,9 +2749,9 @@ void CParticule::FrameParticule(float rTime)
// Moves a drag.
// Returns true if the drag is finished.
-bool CParticule::TrackMove(int i, D3DVECTOR pos, float progress)
+bool CParticule::TrackMove(int i, Math::Vector pos, float progress)
{
- D3DVECTOR last;
+ Math::Vector last;
int h, hh;
if ( i < 0 || i >= MAXTRACK ) return true;
@@ -2776,7 +2777,7 @@ bool CParticule::TrackMove(int i, D3DVECTOR pos, float progress)
last = m_track[i].pos[hh];
}
m_track[i].pos[h] = pos;
- m_track[i].len[h] = Length(pos, last);
+ m_track[i].len[h] = Math::Distance(pos, last);
m_track[i].head = h;
@@ -2797,8 +2798,8 @@ bool CParticule::TrackMove(int i, D3DVECTOR pos, float progress)
void CParticule::TrackDraw(int i, ParticuleType type)
{
D3DVERTEX2 vertex[4]; // 2 triangles
- D3DVECTOR corner[4], p1, p2, p, n, eye;
- D3DMATRIX matrix;
+ Math::Vector corner[4], p1, p2, p, n, eye;
+ Math::Matrix matrix;
Math::Point texInf, texSup, rot;
float lTotal, f1, f2, a;
int counter, h;
@@ -2812,8 +2813,11 @@ void CParticule::TrackDraw(int i, ParticuleType type)
h --; if ( h < 0 ) h = MAXTRACKLEN-1;
}
- D3DUtil_SetIdentityMatrix(matrix);
- m_pD3DDevice->SetTransform(D3DTRANSFORMSTATE_WORLD, &matrix);
+ matrix.LoadIdentity();
+ {
+ D3DMATRIX mat = MAT_TO_D3DMAT(matrix);
+ m_pD3DDevice->SetTransform(D3DTRANSFORMSTATE_WORLD, &mat);
+ }
if ( type == PARTITRACK1 ) // explosion technique?
{
@@ -2967,8 +2971,8 @@ void CParticule::TrackDraw(int i, ParticuleType type)
void CParticule::DrawParticuleTriangle(int i)
{
CObject* object;
- D3DMATRIX matrix;
- D3DVECTOR eye, pos, angle;
+ Math::Matrix matrix;
+ Math::Vector eye, pos, angle;
if ( m_particule[i].zoom == 0.0f ) return;
@@ -2981,15 +2985,18 @@ void CParticule::DrawParticuleTriangle(int i)
pos += object->RetPosition(0);
}
- angle.x = -Math::RotateAngle(Length2d(pos, eye), pos.y-eye.y);
+ angle.x = -Math::RotateAngle(Math::DistanceProjected(pos, eye), pos.y-eye.y);
angle.y = Math::RotateAngle(pos.z-eye.z, pos.x-eye.x);
angle.z = m_particule[i].angle;
- MatRotateXZY(matrix, angle);
- matrix._41 = pos.x;
- matrix._42 = pos.y;
- matrix._43 = pos.z;
- m_pD3DDevice->SetTransform(D3DTRANSFORMSTATE_WORLD, &matrix);
+ Math::LoadRotationXZYMatrix(matrix, angle);
+ matrix.Set(1, 4, pos.x);
+ matrix.Set(2, 4, pos.y);
+ matrix.Set(3, 4, pos.z);
+ {
+ D3DMATRIX mat = MAT_TO_D3DMAT(matrix);
+ m_pD3DDevice->SetTransform(D3DTRANSFORMSTATE_WORLD, &mat);
+ }
m_pD3DDevice->DrawPrimitive(D3DPT_TRIANGLELIST, D3DFVF_VERTEX2,
m_triangle[i].triangle, 3, NULL);
@@ -3002,8 +3009,8 @@ void CParticule::DrawParticuleNorm(int i)
{
CObject* object;
D3DVERTEX2 vertex[4]; // 2 triangles
- D3DMATRIX matrix;
- D3DVECTOR corner[4], eye, pos, n, angle;
+ Math::Matrix matrix;
+ Math::Vector corner[4], eye, pos, n, angle;
Math::Point dim;
float zoom;
@@ -3020,7 +3027,7 @@ void CParticule::DrawParticuleNorm(int i)
{
pos = m_particule[i].pos;
- n = D3DVECTOR(0.0f, 0.0f, -1.0f);
+ n = Math::Vector(0.0f, 0.0f, -1.0f);
dim.x = m_particule[i].dim.x * zoom;
dim.y = m_particule[i].dim.y * zoom;
@@ -3060,17 +3067,20 @@ void CParticule::DrawParticuleNorm(int i)
pos += object->RetPosition(0);
}
- angle.x = -Math::RotateAngle(Length2d(pos, eye), pos.y-eye.y);
+ angle.x = -Math::RotateAngle(Math::DistanceProjected(pos, eye), pos.y-eye.y);
angle.y = Math::RotateAngle(pos.z-eye.z, pos.x-eye.x);
angle.z = m_particule[i].angle;
- MatRotateXZY(matrix, angle);
- matrix._41 = pos.x;
- matrix._42 = pos.y;
- matrix._43 = pos.z;
- m_pD3DDevice->SetTransform(D3DTRANSFORMSTATE_WORLD, &matrix);
+ Math::LoadRotationXZYMatrix(matrix, angle);
+ matrix.Set(1, 4, pos.x);
+ matrix.Set(2, 4, pos.y);
+ matrix.Set(3, 4, pos.z);
+ {
+ D3DMATRIX mat = MAT_TO_D3DMAT(matrix);
+ m_pD3DDevice->SetTransform(D3DTRANSFORMSTATE_WORLD, &mat);
+ }
- n = D3DVECTOR(0.0f, 0.0f, -1.0f);
+ n = Math::Vector(0.0f, 0.0f, -1.0f);
dim.x = m_particule[i].dim.x * zoom;
dim.y = m_particule[i].dim.y * zoom;
@@ -3107,8 +3117,8 @@ void CParticule::DrawParticuleFlat(int i)
{
CObject* object;
D3DVERTEX2 vertex[4]; // 2 triangles
- D3DMATRIX matrix;
- D3DVECTOR corner[4], pos, n, angle, eye;
+ Math::Matrix matrix;
+ Math::Vector corner[4], pos, n, angle, eye;
Math::Point dim;
if ( m_particule[i].zoom == 0.0f ) return;
@@ -3145,13 +3155,16 @@ void CParticule::DrawParticuleFlat(int i)
}
#endif
- MatRotateXZY(matrix, angle);
- matrix._41 = pos.x;
- matrix._42 = pos.y;
- matrix._43 = pos.z;
- m_pD3DDevice->SetTransform(D3DTRANSFORMSTATE_WORLD, &matrix);
+ Math::LoadRotationXZYMatrix(matrix, angle);
+ matrix.Set(1, 4, pos.x);
+ matrix.Set(2, 4, pos.y);
+ matrix.Set(3, 4, pos.z);
+ {
+ D3DMATRIX mat = MAT_TO_D3DMAT(matrix);
+ m_pD3DDevice->SetTransform(D3DTRANSFORMSTATE_WORLD, &mat);
+ }
- n = D3DVECTOR(0.0f, 0.0f, -1.0f);
+ n = Math::Vector(0.0f, 0.0f, -1.0f);
dim.x = m_particule[i].dim.x * m_particule[i].zoom;
dim.y = m_particule[i].dim.y * m_particule[i].zoom;
@@ -3187,8 +3200,8 @@ void CParticule::DrawParticuleFog(int i)
{
CObject* object;
D3DVERTEX2 vertex[4]; // 2 triangles
- D3DMATRIX matrix;
- D3DVECTOR corner[4], pos, n, angle, eye;
+ Math::Matrix matrix;
+ Math::Vector corner[4], pos, n, angle, eye;
Math::Point dim, zoom;
if ( !m_engine->RetFog() ) return;
@@ -3244,13 +3257,16 @@ void CParticule::DrawParticuleFog(int i)
angle.x = -Math::PI/2.0f;
}
- MatRotateXZY(matrix, angle);
- matrix._41 = pos.x;
- matrix._42 = pos.y;
- matrix._43 = pos.z;
- m_pD3DDevice->SetTransform(D3DTRANSFORMSTATE_WORLD, &matrix);
+ Math::LoadRotationXZYMatrix(matrix, angle);
+ matrix.Set(1, 4, pos.x);
+ matrix.Set(2, 4, pos.y);
+ matrix.Set(3, 4, pos.z);
+ {
+ D3DMATRIX mat = MAT_TO_D3DMAT(matrix);
+ m_pD3DDevice->SetTransform(D3DTRANSFORMSTATE_WORLD, &mat);
+ }
- n = D3DVECTOR(0.0f, 0.0f, -1.0f);
+ n = Math::Vector(0.0f, 0.0f, -1.0f);
corner[0].x = dim.x;
corner[0].y = dim.y;
@@ -3283,8 +3299,8 @@ void CParticule::DrawParticuleRay(int i)
{
CObject* object;
D3DVERTEX2 vertex[4]; // 2 triangles
- D3DMATRIX matrix;
- D3DVECTOR corner[4], eye, pos, goal, n, angle, proj;
+ Math::Matrix matrix;
+ Math::Vector corner[4], eye, pos, goal, n, angle, proj;
Math::Point dim, texInf, texSup;
bool bLeft;
float a, len, adv, prop, vario1, vario2;
@@ -3306,26 +3322,29 @@ void CParticule::DrawParticuleRay(int i)
a = Math::RotateAngle(Math::Point(pos.x,pos.z), Math::Point(goal.x,goal.z), Math::Point(eye.x,eye.z));
bLeft = (a < Math::PI);
- proj = Projection(pos, goal, eye);
- angle.x = -Math::RotateAngle(Length2d(proj, eye), proj.y-eye.y);
+ proj = Math::Projection(pos, goal, eye);
+ angle.x = -Math::RotateAngle(Math::DistanceProjected(proj, eye), proj.y-eye.y);
angle.y = Math::RotateAngle(pos.z-goal.z, pos.x-goal.x)+Math::PI/2.0f;
- angle.z = -Math::RotateAngle(Length2d(pos, goal), pos.y-goal.y);
+ angle.z = -Math::RotateAngle(Math::DistanceProjected(pos, goal), pos.y-goal.y);
if ( bLeft ) angle.x = -angle.x;
- MatRotateZXY(matrix, angle);
- matrix._41 = pos.x;
- matrix._42 = pos.y;
- matrix._43 = pos.z;
- m_pD3DDevice->SetTransform(D3DTRANSFORMSTATE_WORLD, &matrix);
+ Math::LoadRotationZXYMatrix(matrix, angle);
+ matrix.Set(1, 4, pos.x);
+ matrix.Set(2, 4, pos.y);
+ matrix.Set(3, 4, pos.z);
+ {
+ D3DMATRIX mat = MAT_TO_D3DMAT(matrix);
+ m_pD3DDevice->SetTransform(D3DTRANSFORMSTATE_WORLD, &mat);
+ }
- n = D3DVECTOR(0.0f, 0.0f, bLeft?1.0f:-1.0f);
+ n = Math::Vector(0.0f, 0.0f, bLeft?1.0f:-1.0f);
dim.x = m_particule[i].dim.x * m_particule[i].zoom;
dim.y = m_particule[i].dim.y * m_particule[i].zoom;
if ( bLeft ) dim.y = -dim.y;
- len = Length(pos, goal);
+ len = Math::Distance(pos, goal);
adv = 0.0f;
step = (int)(len/(dim.x*2.0f))+1;
@@ -3449,8 +3468,8 @@ void CParticule::DrawParticuleRay(int i)
void CParticule::DrawParticuleSphere(int i)
{
D3DVERTEX2 vertex[2*16*(16+1)]; // triangles
- D3DMATRIX matrix, rot;
- D3DVECTOR angle, v0, v1;
+ Math::Matrix matrix, rot;
+ Math::Vector angle, v0, v1;
Math::Point ts, ti;
float zoom, deltaRingAngle, deltaSegAngle;
float r0,r1, tu0,tv0, tu1,tv1;
@@ -3468,24 +3487,27 @@ void CParticule::DrawParticuleSphere(int i)
m_engine->SetState(D3DSTATETTb|D3DSTATE2FACE|D3DSTATEWRAP, RetColor(m_particule[i].intensity));
- D3DUtil_SetIdentityMatrix(matrix);
- matrix._11 = zoom;
- matrix._22 = zoom;
- matrix._33 = zoom;
- matrix._41 = m_particule[i].pos.x;
- matrix._42 = m_particule[i].pos.y;
- matrix._43 = m_particule[i].pos.z;
+ matrix.LoadIdentity();
+ matrix.Set(1, 1, zoom);
+ matrix.Set(2, 2, zoom);
+ matrix.Set(3, 3, zoom);
+ matrix.Set(1, 4, m_particule[i].pos.x);
+ matrix.Set(2, 4, m_particule[i].pos.y);
+ matrix.Set(3, 4, m_particule[i].pos.z);
if ( m_particule[i].angle != 0.0f )
{
angle.x = m_particule[i].angle*0.4f;
angle.y = m_particule[i].angle*1.0f;
angle.z = m_particule[i].angle*0.7f;
- MatRotateZXY(rot, angle);
- matrix = rot*matrix;
+ Math::LoadRotationZXYMatrix(rot, angle);
+ matrix = Math::MultiplyMatrices(rot, matrix);
}
- m_pD3DDevice->SetTransform(D3DTRANSFORMSTATE_WORLD, &matrix);
+ {
+ D3DMATRIX mat = MAT_TO_D3DMAT(matrix);
+ m_pD3DDevice->SetTransform(D3DTRANSFORMSTATE_WORLD, &mat);
+ }
ts.x = m_particule[i].texSup.x;
ts.y = m_particule[i].texSup.y;
@@ -3566,8 +3588,8 @@ float ProgressCylinder(float progress)
void CParticule::DrawParticuleCylinder(int i)
{
D3DVERTEX2 vertex[2*5*(10+1)]; // triangles
- D3DMATRIX matrix, rot;
- D3DVECTOR angle, v0, v1;
+ Math::Matrix matrix, rot;
+ Math::Vector angle, v0, v1;
Math::Point ts, ti;
float progress, zoom, diam, deltaSegAngle, h[6], d[6];
float r0,r1, tu0,tv0, tu1,tv1, p1, p2, pp;
@@ -3580,15 +3602,18 @@ void CParticule::DrawParticuleCylinder(int i)
m_engine->SetState(D3DSTATETTb|D3DSTATE2FACE|D3DSTATEWRAP, RetColor(m_particule[i].intensity));
- D3DUtil_SetIdentityMatrix(matrix);
- matrix._11 = zoom;
- matrix._22 = zoom;
- matrix._33 = zoom;
- matrix._41 = m_particule[i].pos.x;
- matrix._42 = m_particule[i].pos.y;
- matrix._43 = m_particule[i].pos.z;
+ matrix.LoadIdentity();
+ matrix.Set(1, 1, zoom);
+ matrix.Set(2, 2, zoom);
+ matrix.Set(3, 3, zoom);
+ matrix.Set(1, 4, m_particule[i].pos.x);
+ matrix.Set(2, 4, m_particule[i].pos.y);
+ matrix.Set(3, 4, m_particule[i].pos.z);
- m_pD3DDevice->SetTransform(D3DTRANSFORMSTATE_WORLD, &matrix);
+ {
+ D3DMATRIX mat = MAT_TO_D3DMAT(matrix);
+ m_pD3DDevice->SetTransform(D3DTRANSFORMSTATE_WORLD, &mat);
+ }
ts.x = m_particule[i].texSup.x;
ts.y = m_particule[i].texSup.y;
@@ -3666,13 +3691,13 @@ void CParticule::DrawParticuleCylinder(int i)
void CParticule::DrawParticuleWheel(int i)
{
- D3DVECTOR pos[4], center;
+ Math::Vector pos[4], center;
D3DVERTEX2 vertex[4]; // 2 triangles
- D3DVECTOR n;
+ Math::Vector n;
Math::Point ts, ti;
float dist, dp;
- dist = Length2d(m_engine->RetEyePt(), m_wheelTrace[i].pos[0]);
+ dist = Math::DistanceProjected(m_engine->RetEyePt(), m_wheelTrace[i].pos[0]);
if ( dist > 300.0f ) return;
pos[0] = m_wheelTrace[i].pos[0];
@@ -3793,7 +3818,7 @@ void CParticule::DrawParticuleWheel(int i)
ti.x = ti.x-dp;
ti.y = ti.y-dp;
- n = D3DVECTOR(0.0f, 1.0f, 0.0f);
+ n = Math::Vector(0.0f, 1.0f, 0.0f);
vertex[0] = D3DVERTEX2(pos[0], n, ts.x, ts.y);
vertex[1] = D3DVERTEX2(pos[1], n, ti.x, ts.y);
@@ -3809,7 +3834,7 @@ void CParticule::DrawParticuleWheel(int i)
void CParticule::DrawParticule(int sheet)
{
D3DMATERIAL7 mat;
- D3DMATRIX matrix;
+ Math::Matrix matrix;
bool bLoadTexture;
char name[20];
int state, t, i, j, r;
@@ -3857,8 +3882,11 @@ void CParticule::DrawParticule(int sheet)
#endif
m_engine->SetState(D3DSTATETTw);
//? m_engine->SetState(D3DSTATENORMAL);
- D3DUtil_SetIdentityMatrix(matrix);
- m_pD3DDevice->SetTransform(D3DTRANSFORMSTATE_WORLD, &matrix);
+ matrix.LoadIdentity();
+ {
+ D3DMATRIX mat = MAT_TO_D3DMAT(matrix);
+ m_pD3DDevice->SetTransform(D3DTRANSFORMSTATE_WORLD, &mat);
+ }
for ( i=0 ; i<m_wheelTraceTotal ; i++ )
{
DrawParticuleWheel(i);
@@ -3939,11 +3967,11 @@ void CParticule::DrawParticule(int sheet)
// Seeks if an object collided with a bullet.
-CObject* CParticule::SearchObjectGun(D3DVECTOR old, D3DVECTOR pos,
+CObject* CParticule::SearchObjectGun(Math::Vector old, Math::Vector pos,
ParticuleType type, CObject *father)
{
CObject *pObj, *pBest;
- D3DVECTOR box1, box2, oPos, p;
+ Math::Vector box1, box2, oPos, p;
ObjectType oType;
bool bShield;
float min, oRadius, dist, shieldRadius;
@@ -4044,7 +4072,7 @@ CObject* CParticule::SearchObjectGun(D3DVECTOR old, D3DVECTOR pos,
shieldRadius = pObj->RetShieldRadius();
if ( shieldRadius > 0.0f )
{
- dist = Length(oPos, pos);
+ dist = Math::Distance(oPos, pos);
if ( dist <= shieldRadius )
{
pBest = pObj;
@@ -4056,7 +4084,7 @@ CObject* CParticule::SearchObjectGun(D3DVECTOR old, D3DVECTOR pos,
// Test the center of the object, which is necessary for objects
// that have no sphere in the center (station).
- dist = Length(oPos, pos)-4.0f;
+ dist = Math::Distance(oPos, pos)-4.0f;
if ( dist < min )
{
pBest = pObj;
@@ -4070,8 +4098,8 @@ CObject* CParticule::SearchObjectGun(D3DVECTOR old, D3DVECTOR pos,
oPos.y+oRadius < box1.y || oPos.y-oRadius > box2.y ||
oPos.z+oRadius < box1.z || oPos.z-oRadius > box2.z ) continue;
- p = Projection(old, pos, oPos);
- dist = Length(p, oPos)-oRadius;
+ p = Math::Projection(old, pos, oPos);
+ dist = Math::Distance(p, oPos)-oRadius;
if ( dist < min )
{
pBest = pObj;
@@ -4084,11 +4112,11 @@ CObject* CParticule::SearchObjectGun(D3DVECTOR old, D3DVECTOR pos,
// Seeks if an object collided with a ray.
-CObject* CParticule::SearchObjectRay(D3DVECTOR pos, D3DVECTOR goal,
+CObject* CParticule::SearchObjectRay(Math::Vector pos, Math::Vector goal,
ParticuleType type, CObject *father)
{
CObject* pObj;
- D3DVECTOR box1, box2, oPos, p;
+ Math::Vector box1, box2, oPos, p;
ObjectType oType;
float min, dist;
int i;
@@ -4138,8 +4166,8 @@ CObject* CParticule::SearchObjectRay(D3DVECTOR pos, D3DVECTOR goal,
oPos.y < box1.y || oPos.y > box2.y ||
oPos.z < box1.z || oPos.z > box2.z ) continue;
- p = Projection(pos, goal, oPos);
- dist = Length(p, oPos);
+ p = Math::Projection(pos, goal, oPos);
+ dist = Math::Distance(p, oPos);
if ( dist < min ) return pObj;
}
@@ -4149,7 +4177,7 @@ CObject* CParticule::SearchObjectRay(D3DVECTOR pos, D3DVECTOR goal,
// Sounded one.
-void CParticule::Play(Sound sound, D3DVECTOR pos, float amplitude)
+void CParticule::Play(Sound sound, Math::Vector pos, float amplitude)
{
if ( m_sound == 0 )
{
@@ -4164,7 +4192,7 @@ void CParticule::Play(Sound sound, D3DVECTOR pos, float amplitude)
// Seeks the color if you're in the fog.
// Returns black if you're not in the fog.
-D3DCOLORVALUE CParticule::RetFogColor(D3DVECTOR pos)
+D3DCOLORVALUE CParticule::RetFogColor(Math::Vector pos)
{
D3DCOLORVALUE result, color;
float dist, factor;
@@ -4182,7 +4210,7 @@ D3DCOLORVALUE CParticule::RetFogColor(D3DVECTOR pos)
if ( pos.y >= m_particule[i].pos.y+FOG_HSUP ) continue;
if ( pos.y <= m_particule[i].pos.y-FOG_HINF ) continue;
- dist = Length2d(pos, m_particule[i].pos);
+ dist = Math::DistanceProjected(pos, m_particule[i].pos);
if ( dist >= m_particule[i].dim.x*1.5f ) continue;
// Calculates the horizontal distance.
@@ -4251,7 +4279,7 @@ D3DCOLORVALUE CParticule::RetFogColor(D3DVECTOR pos)
// Writes a file. BMP containing all the tire tracks.
bool CParticule::WriteWheelTrace(char *filename, int width, int height,
- D3DVECTOR dl, D3DVECTOR ur)
+ Math::Vector dl, Math::Vector ur)
{
HDC hDC;
HDC hDCImage;
diff --git a/src/graphics/common/particule.h b/src/graphics/common/particule.h
index 19e4053..d82e0a7 100644
--- a/src/graphics/common/particule.h
+++ b/src/graphics/common/particule.h
@@ -213,9 +213,9 @@ struct Particule
float mass; // mass of the particle (in rebounding)
float weight; // weight of the particle (for noise)
float duration; // length of life
- D3DVECTOR pos; // absolute position (relative if object links)
- D3DVECTOR goal; // goal position (if bRay)
- D3DVECTOR speed; // speed of displacement
+ Math::Vector pos; // absolute position (relative if object links)
+ Math::Vector goal; // goal position (if bRay)
+ Math::Vector speed; // speed of displacement
float windSensitivity;
short bounce; // number of rebounds
Math::Point dim; // dimensions of the rectangle
@@ -243,14 +243,14 @@ struct Track
float width; // tail width
int used; // number of positions in "pos"
int head; // head to write index
- D3DVECTOR pos[MAXTRACKLEN];
+ Math::Vector pos[MAXTRACKLEN];
float len[MAXTRACKLEN];
};
struct WheelTrace
{
ParticuleType type; // type PARTI*
- D3DVECTOR pos[4]; // rectangle positions
+ Math::Vector pos[4]; // rectangle positions
float startTime; // beginning of life
};
@@ -266,32 +266,32 @@ public:
void FlushParticule();
void FlushParticule(int sheet);
- int CreateParticule(D3DVECTOR pos, D3DVECTOR speed, Math::Point dim, ParticuleType type, float duration=1.0f, float mass=0.0f, float windSensitivity=1.0f, int sheet=0);
- int CreateFrag(D3DVECTOR pos, D3DVECTOR speed, D3DTriangle *triangle, ParticuleType type, float duration=1.0f, float mass=0.0f, float windSensitivity=1.0f, int sheet=0);
- int CreatePart(D3DVECTOR pos, D3DVECTOR speed, ParticuleType type, float duration=1.0f, float mass=0.0f, float weight=0.0f, float windSensitivity=1.0f, int sheet=0);
- int CreateRay(D3DVECTOR pos, D3DVECTOR goal, ParticuleType type, Math::Point dim, float duration=1.0f, int sheet=0);
- int CreateTrack(D3DVECTOR pos, D3DVECTOR speed, Math::Point dim, ParticuleType type, float duration=1.0f, float mass=0.0f, float length=10.0f, float width=1.0f);
- void CreateWheelTrace(const D3DVECTOR &p1, const D3DVECTOR &p2, const D3DVECTOR &p3, const D3DVECTOR &p4, ParticuleType type);
+ int CreateParticule(Math::Vector pos, Math::Vector speed, Math::Point dim, ParticuleType type, float duration=1.0f, float mass=0.0f, float windSensitivity=1.0f, int sheet=0);
+ int CreateFrag(Math::Vector pos, Math::Vector speed, D3DTriangle *triangle, ParticuleType type, float duration=1.0f, float mass=0.0f, float windSensitivity=1.0f, int sheet=0);
+ int CreatePart(Math::Vector pos, Math::Vector speed, ParticuleType type, float duration=1.0f, float mass=0.0f, float weight=0.0f, float windSensitivity=1.0f, int sheet=0);
+ int CreateRay(Math::Vector pos, Math::Vector goal, ParticuleType type, Math::Point dim, float duration=1.0f, int sheet=0);
+ int CreateTrack(Math::Vector pos, Math::Vector speed, Math::Point dim, ParticuleType type, float duration=1.0f, float mass=0.0f, float length=10.0f, float width=1.0f);
+ void CreateWheelTrace(const Math::Vector &p1, const Math::Vector &p2, const Math::Vector &p3, const Math::Vector &p4, ParticuleType type);
void DeleteParticule(ParticuleType type);
void DeleteParticule(int channel);
void SetObjectLink(int channel, CObject *object);
void SetObjectFather(int channel, CObject *object);
- void SetPosition(int channel, D3DVECTOR pos);
+ void SetPosition(int channel, Math::Vector pos);
void SetDimension(int channel, Math::Point dim);
void SetZoom(int channel, float zoom);
void SetAngle(int channel, float angle);
void SetIntensity(int channel, float intensity);
- void SetParam(int channel, D3DVECTOR pos, Math::Point dim, float zoom, float angle, float intensity);
+ void SetParam(int channel, Math::Vector pos, Math::Point dim, float zoom, float angle, float intensity);
void SetPhase(int channel, ParticulePhase phase, float duration);
- bool GetPosition(int channel, D3DVECTOR &pos);
+ bool GetPosition(int channel, Math::Vector &pos);
- D3DCOLORVALUE RetFogColor(D3DVECTOR pos);
+ D3DCOLORVALUE RetFogColor(Math::Vector pos);
void SetFrameUpdate(int sheet, bool bUpdate);
void FrameParticule(float rTime);
void DrawParticule(int sheet);
- bool WriteWheelTrace(char *filename, int width, int height, D3DVECTOR dl, D3DVECTOR ur);
+ bool WriteWheelTrace(char *filename, int width, int height, Math::Vector dl, Math::Vector ur);
protected:
void DeleteRank(int rank);
@@ -304,10 +304,10 @@ protected:
void DrawParticuleSphere(int i);
void DrawParticuleCylinder(int i);
void DrawParticuleWheel(int i);
- CObject* SearchObjectGun(D3DVECTOR old, D3DVECTOR pos, ParticuleType type, CObject *father);
- CObject* SearchObjectRay(D3DVECTOR pos, D3DVECTOR goal, ParticuleType type, CObject *father);
- void Play(Sound sound, D3DVECTOR pos, float amplitude);
- bool TrackMove(int i, D3DVECTOR pos, float progress);
+ CObject* SearchObjectGun(Math::Vector old, Math::Vector pos, ParticuleType type, CObject *father);
+ CObject* SearchObjectRay(Math::Vector pos, Math::Vector goal, ParticuleType type, CObject *father);
+ void Play(Sound sound, Math::Vector pos, float amplitude);
+ bool TrackMove(int i, Math::Vector pos, float progress);
void TrackDraw(int i, ParticuleType type);
protected:
diff --git a/src/graphics/common/planet.cpp b/src/graphics/common/planet.cpp
index 5353c54..6be1d31 100644
--- a/src/graphics/common/planet.cpp
+++ b/src/graphics/common/planet.cpp
@@ -135,7 +135,7 @@ void CPlanet::Draw()
{
LPDIRECT3DDEVICE7 device;
D3DVERTEX2 vertex[4]; // 2 triangles
- D3DVECTOR n;
+ Math::Vector n;
Math::Point p1, p2;
float eyeDirH, eyeDirV, dp, u1, u2, v1, v2, a;
int i;
@@ -144,7 +144,7 @@ void CPlanet::Draw()
eyeDirH = m_engine->RetEyeDirH();
eyeDirV = m_engine->RetEyeDirV();
- n = D3DVECTOR(0.0f, 0.0f, -1.0f); // normal
+ n = Math::Vector(0.0f, 0.0f, -1.0f); // normal
dp = 0.5f/256.0f;
for ( i=0 ; i<MAXPLANET ; i++ )
@@ -178,10 +178,10 @@ void CPlanet::Draw()
u2 = m_planet[m_mode][i].uv2.x - dp;
v2 = m_planet[m_mode][i].uv2.y - dp;
- vertex[0] = D3DVERTEX2(D3DVECTOR(p1.x, p1.y, 0.0f), n, u1,v2);
- vertex[1] = D3DVERTEX2(D3DVECTOR(p1.x, p2.y, 0.0f), n, u1,v1);
- vertex[2] = D3DVERTEX2(D3DVECTOR(p2.x, p1.y, 0.0f), n, u2,v2);
- vertex[3] = D3DVERTEX2(D3DVECTOR(p2.x, p2.y, 0.0f), n, u2,v1);
+ vertex[0] = D3DVERTEX2(Math::Vector(p1.x, p1.y, 0.0f), n, u1,v2);
+ vertex[1] = D3DVERTEX2(Math::Vector(p1.x, p2.y, 0.0f), n, u1,v1);
+ vertex[2] = D3DVERTEX2(Math::Vector(p2.x, p1.y, 0.0f), n, u2,v2);
+ vertex[3] = D3DVERTEX2(Math::Vector(p2.x, p2.y, 0.0f), n, u2,v1);
device->DrawPrimitive(D3DPT_TRIANGLESTRIP, D3DFVF_VERTEX2, vertex, 4, NULL);
m_engine->AddStatisticTriangle(2);
diff --git a/src/graphics/common/pyro.cpp b/src/graphics/common/pyro.cpp
index 0f187c8..443d428 100644
--- a/src/graphics/common/pyro.cpp
+++ b/src/graphics/common/pyro.cpp
@@ -23,6 +23,7 @@
#include "common/struct.h"
#include "math/const.h"
+#include "math/geometry.h"
#include "graphics/d3d/d3dengine.h"
#include "math/old/d3dmath.h"
#include "common/event.h"
@@ -92,10 +93,10 @@ void CPyro::DeleteObject(bool bAll)
bool CPyro::Create(PyroType type, CObject* pObj, float force)
{
- D3DMATRIX* mat;
+ Math::Matrix* mat;
CObject* power;
CMotion* motion;
- D3DVECTOR min, max, pos, speed;
+ Math::Vector min, max, pos, speed;
Math::Point dim;
ObjectType oType;
Sound sound;
@@ -130,7 +131,7 @@ bool CPyro::Create(PyroType type, CObject* pObj, float force)
}
else
{
- m_size = Length(min, max)*2.0f;
+ m_size = Math::Distance(min, max)*2.0f;
if ( m_size < 4.0f ) m_size = 4.0f;
if ( m_size > 80.0f ) m_size = 80.0f;
}
@@ -167,7 +168,7 @@ bool CPyro::Create(PyroType type, CObject* pObj, float force)
pos = power->RetPosition(0);
pos.y += 1.0f;
mat = pObj->RetWorldMatrix(0);
- m_posPower = Transform(*mat, pos);
+ m_posPower = Math::Transform(*mat, pos);
}
if ( oType == OBJECT_POWER ||
oType == OBJECT_ATOMIC ||
@@ -184,14 +185,14 @@ bool CPyro::Create(PyroType type, CObject* pObj, float force)
{
m_bPower = true;
mat = pObj->RetWorldMatrix(0);
- m_posPower = Transform(*mat, D3DVECTOR(-15.0f, 7.0f, 0.0f));
+ m_posPower = Math::Transform(*mat, Math::Vector(-15.0f, 7.0f, 0.0f));
m_pos = m_posPower;
}
if ( oType == OBJECT_ENERGY )
{
m_bPower = true;
mat = pObj->RetWorldMatrix(0);
- m_posPower = Transform(*mat, D3DVECTOR(-7.0f, 6.0f, 0.0f));
+ m_posPower = Math::Transform(*mat, Math::Vector(-7.0f, 6.0f, 0.0f));
m_pos = m_posPower;
}
if ( oType == OBJECT_NUCLEAR )
@@ -416,9 +417,9 @@ bool CPyro::Create(PyroType type, CObject* pObj, float force)
{
m_speed = 1.0f/15.0f;
- pos = D3DVECTOR(-3.0f, 2.0f, 0.0f);
+ pos = Math::Vector(-3.0f, 2.0f, 0.0f);
mat = pObj->RetWorldMatrix(0);
- m_pos = Transform(*mat, pos);
+ m_pos = Math::Transform(*mat, pos);
m_engine->ShadowDelete(m_object->RetObjectRank(0));
}
@@ -541,7 +542,7 @@ bool CPyro::Create(PyroType type, CObject* pObj, float force)
}
dim.x = m_size*0.4f;
dim.y = dim.x;
- m_particule->CreateParticule(pos, D3DVECTOR(0.0f,0.0f,0.0f), dim, PARTISPHERE0, 2.0f, 0.0f, 0.0f);
+ m_particule->CreateParticule(pos, Math::Vector(0.0f,0.0f,0.0f), dim, PARTISPHERE0, 2.0f, 0.0f, 0.0f);
}
}
@@ -621,7 +622,7 @@ bool CPyro::Create(PyroType type, CObject* pObj, float force)
pos = m_pos;
//? m_terrain->MoveOnFloor(pos);
//? pos.y += 2.0f;
- speed = D3DVECTOR(0.0f, 0.0f, 0.0f);
+ speed = Math::Vector(0.0f, 0.0f, 0.0f);
dim.x = m_size;
dim.y = dim.x;
m_particule->CreateParticule(pos, speed, dim, PARTICHOC, 2.0f);
@@ -636,8 +637,8 @@ bool CPyro::Create(PyroType type, CObject* pObj, float force)
void CPyro::CreateTriangle(CObject* pObj, ObjectType oType, int part)
{
D3DTriangle buffer[100];
- D3DMATRIX* mat;
- D3DVECTOR offset, pos, speed;
+ Math::Matrix* mat;
+ Math::Vector offset, pos, speed;
float percent, min, max, h, duration, mass;
int objRank, total, i;
@@ -665,7 +666,7 @@ void CPyro::CreateTriangle(CObject* pObj, ObjectType oType, int part)
for ( i=0 ; i<total ; i++ )
{
- D3DVECTOR p1, p2, p3;
+ Math::Vector p1, p2, p3;
p1.x = buffer[i].triangle[0].x;
p1.y = buffer[i].triangle[0].y;
@@ -677,7 +678,7 @@ void CPyro::CreateTriangle(CObject* pObj, ObjectType oType, int part)
p3.y = buffer[i].triangle[2].y;
p3.z = buffer[i].triangle[2].z;
- h = Length(p1, p2);
+ h = Math::Distance(p1, p2);
if ( h > 5.0f )
{
p2.x = p1.x+((p2.x-p1.x)*5.0f/h);
@@ -685,7 +686,7 @@ void CPyro::CreateTriangle(CObject* pObj, ObjectType oType, int part)
p2.z = p1.z+((p2.z-p1.z)*5.0f/h);
}
- h = Length(p2, p3);
+ h = Math::Distance(p2, p3);
if ( h > 5.0f )
{
p3.x = p2.x+((p3.x-p2.x)*5.0f/h);
@@ -693,7 +694,7 @@ void CPyro::CreateTriangle(CObject* pObj, ObjectType oType, int part)
p3.z = p2.z+((p3.z-p2.z)*5.0f/h);
}
- h = Length(p3, p1);
+ h = Math::Distance(p3, p1);
if ( h > 5.0f )
{
p1.x = p3.x+((p1.x-p3.x)*5.0f/h);
@@ -728,7 +729,7 @@ void CPyro::CreateTriangle(CObject* pObj, ObjectType oType, int part)
buffer[i].triangle[2].z -= offset.z;
mat = pObj->RetWorldMatrix(part);
- pos = Transform(*mat, offset);
+ pos = Math::Transform(*mat, offset);
if ( m_type == PT_EGG )
{
speed.x = (Math::Rand()-0.5f)*10.0f;
@@ -851,7 +852,7 @@ void CPyro::DisplayError(PyroType type, CObject* pObj)
bool CPyro::EventProcess(const Event &event)
{
ParticuleType type;
- D3DVECTOR pos, speed, angle;
+ Math::Vector pos, speed, angle;
Math::Point dim;
float prog, factor, duration;
int i, r;
@@ -1463,7 +1464,7 @@ Error CPyro::IsEnded()
void CPyro::DeleteObject(bool bPrimary, bool bSecondary)
{
CObject *sub, *truck;
- D3DVECTOR pos;
+ Math::Vector pos;
ObjectType type;
if ( m_object == 0 ) return;
@@ -1579,7 +1580,7 @@ void CPyro::LightOperFrame(float rTime)
// Creates light to accompany a pyrotechnic effect.
-bool CPyro::CreateLight(D3DVECTOR pos, float height)
+bool CPyro::CreateLight(Math::Vector pos, float height)
{
D3DLIGHT7 light;
@@ -1620,7 +1621,7 @@ bool CPyro::CreateLight(D3DVECTOR pos, float height)
void CPyro::ExploStart()
{
- D3DVECTOR pos, angle, speed, min, max;
+ Math::Vector pos, angle, speed, min, max;
float weight;
int i, objRank, channel;
@@ -1661,7 +1662,7 @@ void CPyro::ExploStart()
else
{
m_engine->GetBBox(objRank, min, max);
- weight = Length(min, max); // weight according to size!
+ weight = Math::Distance(min, max); // weight according to size!
speed.y = 10.0f+Math::Rand()*20.0f;
speed.x = (Math::Rand()-0.5f)*20.0f;
@@ -1691,7 +1692,7 @@ void CPyro::ExploTerminate()
void CPyro::BurnStart()
{
- D3DVECTOR pos, angle;
+ Math::Vector pos, angle;
int i, objRank;
m_burnType = m_object->RetType();
@@ -2162,7 +2163,7 @@ void CPyro::BurnStart()
// Adds a part move.
-void CPyro::BurnAddPart(int part, D3DVECTOR pos, D3DVECTOR angle)
+void CPyro::BurnAddPart(int part, Math::Vector pos, Math::Vector angle)
{
int i;
@@ -2181,7 +2182,7 @@ void CPyro::BurnAddPart(int part, D3DVECTOR pos, D3DVECTOR angle)
void CPyro::BurnProgress()
{
CObject* sub;
- D3DVECTOR pos;
+ Math::Vector pos;
float h;
int i;
@@ -2285,7 +2286,7 @@ void CPyro::BurnTerminate()
void CPyro::FallStart()
{
- D3DVECTOR pos;
+ Math::Vector pos;
m_object->SetBurn(true); // usable
@@ -2301,7 +2302,7 @@ void CPyro::FallStart()
CObject* CPyro::FallSearchBeeExplo()
{
CObject* pObj;
- D3DVECTOR iPos, oPos;
+ Math::Vector iPos, oPos;
ObjectType oType;
float iRadius, oRadius, distance, shieldRadius;
int i, j;
@@ -2370,26 +2371,26 @@ CObject* CPyro::FallSearchBeeExplo()
shieldRadius = pObj->RetShieldRadius();
if ( shieldRadius > 0.0f )
{
- distance = Length(oPos, iPos);
+ distance = Math::Distance(oPos, iPos);
if ( distance <= shieldRadius ) return pObj;
}
if ( oType == OBJECT_BASE )
{
- distance = Length(oPos, iPos);
+ distance = Math::Distance(oPos, iPos);
if ( distance < 25.0f ) return pObj;
}
// Test the center of the object, which is necessary for objects
// that have no sphere in the center (station).
- distance = Length(oPos, iPos)-4.0f;
+ distance = Math::Distance(oPos, iPos)-4.0f;
if ( distance < 5.0f ) return pObj;
// Test with all spheres of the object.
j = 0;
while ( pObj->GetCrashSphere(j++, oPos, oRadius) )
{
- distance = Length(oPos, iPos);
+ distance = Math::Distance(oPos, iPos);
if ( distance <= iRadius+oRadius )
{
return pObj;
@@ -2404,7 +2405,7 @@ CObject* CPyro::FallSearchBeeExplo()
void CPyro::FallProgress(float rTime)
{
CObject* pObj;
- D3DVECTOR pos;
+ Math::Vector pos;
bool bFloor = false;
if ( m_object == 0 ) return;
@@ -2440,7 +2441,7 @@ void CPyro::FallProgress(float rTime)
{
if ( pObj->RetShieldRadius() > 0.0f ) // protected by shield?
{
- m_particule->CreateParticule(pos, D3DVECTOR(0.0f, 0.0f, 0.0f), Math::Point(6.0f, 6.0f), PARTIGUNDEL, 2.0f, 0.0f, 0.0f);
+ m_particule->CreateParticule(pos, Math::Vector(0.0f, 0.0f, 0.0f), Math::Point(6.0f, 6.0f), PARTIGUNDEL, 2.0f, 0.0f, 0.0f);
m_sound->Play(SOUND_GUNDEL);
DeleteObject(true, true); // removes the ball
@@ -2470,7 +2471,7 @@ void CPyro::FallProgress(float rTime)
Error CPyro::FallIsEnded()
{
- D3DVECTOR pos;
+ Math::Vector pos;
if ( m_bFallEnding || m_object == 0 ) return ERR_STOP;
diff --git a/src/graphics/common/pyro.h b/src/graphics/common/pyro.h
index d898a94..9f35438 100644
--- a/src/graphics/common/pyro.h
+++ b/src/graphics/common/pyro.h
@@ -70,10 +70,10 @@ enum PyroType
struct PyroBurnPart
{
int part;
- D3DVECTOR initialPos;
- D3DVECTOR finalPos;
- D3DVECTOR initialAngle;
- D3DVECTOR finalAngle;
+ Math::Vector initialPos;
+ Math::Vector finalPos;
+ Math::Vector initialAngle;
+ Math::Vector finalAngle;
};
struct PyroLightOper
@@ -99,7 +99,7 @@ public:
protected:
void DisplayError(PyroType type, CObject* pObj);
- bool CreateLight(D3DVECTOR pos, float height);
+ bool CreateLight(Math::Vector pos, float height);
void DeleteObject(bool bPrimary, bool bSecondary);
void CreateTriangle(CObject* pObj, ObjectType oType, int part);
@@ -108,7 +108,7 @@ protected:
void ExploTerminate();
void BurnStart();
- void BurnAddPart(int part, D3DVECTOR pos, D3DVECTOR angle);
+ void BurnAddPart(int part, Math::Vector pos, Math::Vector angle);
void BurnProgress();
bool BurnIsKeepPart(int part);
void BurnTerminate();
@@ -134,8 +134,8 @@ protected:
CRobotMain* m_main;
CSound* m_sound;
- D3DVECTOR m_pos; // center of the effect
- D3DVECTOR m_posPower; // center of the battery
+ Math::Vector m_pos; // center of the effect
+ Math::Vector m_posPower; // center of the battery
bool m_bPower; // battery exists?
PyroType m_type;
float m_force;
@@ -164,7 +164,7 @@ protected:
bool m_bFallEnding;
int m_crashSphereUsed; // number of spheres used
- D3DVECTOR m_crashSpherePos[50];
+ Math::Vector m_crashSpherePos[50];
float m_crashSphereRadius[50];
};
diff --git a/src/graphics/common/terrain.cpp b/src/graphics/common/terrain.cpp
index dbf92c3..edc1611 100644
--- a/src/graphics/common/terrain.cpp
+++ b/src/graphics/common/terrain.cpp
@@ -70,7 +70,7 @@ CTerrain::CTerrain(CInstanceManager* iMan)
m_levelMatTotal = 0;
m_levelMatMax = 0;
m_levelDot = 0;
- m_wind = D3DVECTOR(0.0f, 0.0f, 0.0f);
+ m_wind = Math::Vector(0.0f, 0.0f, 0.0f);
m_defHardness = 0.5f;
FlushBuildingLevel();
@@ -299,7 +299,7 @@ bool CTerrain::ResFromBMP(const char* filename)
// Returns the resource type available underground.
-TerrainRes CTerrain::RetResource(const D3DVECTOR &p)
+TerrainRes CTerrain::RetResource(const Math::Vector &p)
{
int x, y, size, sizem, ress;
@@ -405,7 +405,7 @@ bool CTerrain::ReliefFromBMP(const char* filename, float scaleRelief,
// Adds a point of elevation in the buffer of relief.
-bool CTerrain::ReliefAddDot(D3DVECTOR pos, float scaleRelief)
+bool CTerrain::ReliefAddDot(Math::Vector pos, float scaleRelief)
{
float dim;
int size, x, y;
@@ -436,7 +436,7 @@ bool CTerrain::ReliefFromDXF(const char* filename, float scaleRelief)
FILE* file = NULL;
char line[100];
int command, rankSommet, nbSommet, nbFace, size;
- D3DVECTOR* table;
+ Math::Vector* table;
bool bWaitNbSommet;
bool bWaitNbFace;
bool bWaitSommetX;
@@ -454,7 +454,7 @@ bool CTerrain::ReliefFromDXF(const char* filename, float scaleRelief)
if ( file == NULL ) return false;
size = (m_mosaic*m_brick)+1;
- table = (D3DVECTOR*)malloc(sizeof(D3DVECTOR)*size*size);
+ table = (Math::Vector*)malloc(sizeof(Math::Vector)*size*size);
rankSommet = 0;
bWaitNbSommet = false;
@@ -514,7 +514,7 @@ bool CTerrain::ReliefFromDXF(const char* filename, float scaleRelief)
nbSommet --;
if ( nbSommet >= 0 )
{
- D3DVECTOR p(x,z,y); // permutation of Y and Z!
+ Math::Vector p(x,z,y); // permutation of Y and Z!
table[rankSommet++] = p;
bWaitSommetX = true;
}
@@ -566,7 +566,7 @@ bool CTerrain::ReliefFromDXF(const char* filename, float scaleRelief)
// Adjusts a position so that it does not exceed the boundaries.
-void CTerrain::LimitPos(D3DVECTOR &pos)
+void CTerrain::LimitPos(Math::Vector &pos)
{
float dim;
@@ -649,9 +649,9 @@ void CTerrain::AdjustRelief()
// Calculates a vector of the terrain.
-D3DVECTOR CTerrain::RetVector(int x, int y)
+Math::Vector CTerrain::RetVector(int x, int y)
{
- D3DVECTOR p;
+ Math::Vector p;
p.x = x*m_size - (m_mosaic*m_brick*m_size)/2;
p.z = y*m_size - (m_mosaic*m_brick*m_size)/2;
@@ -686,7 +686,7 @@ D3DVECTOR CTerrain::RetVector(int x, int y)
D3DVERTEX2 CTerrain::RetVertex(int x, int y, int step)
{
D3DVERTEX2 v;
- D3DVECTOR o, oo, a,b,c,d,e,f, n, s;
+ Math::Vector o, oo, a,b,c,d,e,f, n, s;
int brick;
o = RetVector(x, y);
@@ -701,28 +701,28 @@ D3DVERTEX2 CTerrain::RetVertex(int x, int y, int step)
e = RetVector(x+step, y-step);
f = RetVector(x, y-step);
- s = D3DVECTOR(0.0f, 0.0f, 0.0f);
+ s = Math::Vector(0.0f, 0.0f, 0.0f);
if ( x-step >= 0 && y+step <= m_mosaic*m_brick+1 )
{
- s += ComputeNormal(b,a,o);
- s += ComputeNormal(c,b,o);
+ s += Math::NormalToPlane(b,a,o);
+ s += Math::NormalToPlane(c,b,o);
}
if ( x+step <= m_mosaic*m_brick+1 && y+step <= m_mosaic*m_brick+1 )
{
- s += ComputeNormal(d,c,o);
+ s += Math::NormalToPlane(d,c,o);
}
if ( x+step <= m_mosaic*m_brick+1 && y-step >= 0 )
{
- s += ComputeNormal(e,d,o);
- s += ComputeNormal(f,e,o);
+ s += Math::NormalToPlane(e,d,o);
+ s += Math::NormalToPlane(f,e,o);
}
if ( x-step >= 0 && y-step >= 0 )
{
- s += ComputeNormal(a,f,o);
+ s += Math::NormalToPlane(a,f,o);
}
s = Normalize(s);
@@ -763,7 +763,7 @@ bool CTerrain::CreateMosaic(int ox, int oy, int step, int objRank,
const D3DMATERIAL7 &mat,
float min, float max)
{
- D3DMATRIX transform;
+ Math::Matrix transform;
D3DVERTEX2 o, p1, p2;
D3DObjLevel6* buffer;
Math::Point uv;
@@ -915,9 +915,9 @@ bool CTerrain::CreateMosaic(int ox, int oy, int step, int objRank,
}
}
- D3DUtil_SetIdentityMatrix(transform);
- transform._41 = o.x;
- transform._43 = o.z;
+ transform.LoadIdentity();
+ transform.Set(1, 4, o.x);
+ transform.Set(3, 4, o.z);
m_engine->SetObjectTransform(objRank, transform);
return true;
@@ -1403,10 +1403,10 @@ bool CTerrain::LevelInit(int id)
bool CTerrain::LevelGenerate(int *id, float min, float max,
float slope, float freq,
- D3DVECTOR center, float radius)
+ Math::Vector center, float radius)
{
TerrainMaterial *tm;
- D3DVECTOR pos;
+ Math::Vector pos;
int i, numID, x, y, xx, yy, group, rnd;
float dim;
@@ -1461,7 +1461,7 @@ bool CTerrain::LevelGenerate(int *id, float min, float max,
{
pos.x = ((float)x-m_levelDotSize/2.0f)*group*m_size;
pos.z = ((float)y-m_levelDotSize/2.0f)*group*m_size;
- if ( Length2d(pos, center) > radius ) continue;
+ if ( Math::DistanceProjected(pos, center) > radius ) continue;
}
if ( freq < 100.0f )
@@ -1582,7 +1582,7 @@ bool CTerrain::CreateObjects(bool bMultiRes)
// Modifies the terrain's relief.
// ATTENTION: ok only with m_depth = 2!
-bool CTerrain::Terraform(const D3DVECTOR &p1, const D3DVECTOR &p2, float height)
+bool CTerrain::Terraform(const Math::Vector &p1, const Math::Vector &p2, float height)
{
POINT tp1, tp2, pp1, pp2;
float dim, avg;
@@ -1671,12 +1671,12 @@ bool CTerrain::Terraform(const D3DVECTOR &p1, const D3DVECTOR &p2, float height)
// Management of the wind.
-void CTerrain::SetWind(D3DVECTOR speed)
+void CTerrain::SetWind(Math::Vector speed)
{
m_wind = speed;
}
-D3DVECTOR CTerrain::RetWind()
+Math::Vector CTerrain::RetWind()
{
return m_wind;
}
@@ -1684,17 +1684,17 @@ D3DVECTOR CTerrain::RetWind()
// Gives the exact slope of the terrain of a place given.
-float CTerrain::RetFineSlope(const D3DVECTOR &pos)
+float CTerrain::RetFineSlope(const Math::Vector &pos)
{
- D3DVECTOR n;
+ Math::Vector n;
if ( !GetNormal(n, pos) ) return 0.0f;
- return fabs(Math::RotateAngle(Length(n.x, n.z), n.y)-Math::PI/2.0f);
+ return fabs(Math::RotateAngle(Math::Point(n.x, n.z).Length(), n.y)-Math::PI/2.0f);
}
// Gives the approximate slope of the terrain of a specific location.
-float CTerrain::RetCoarseSlope(const D3DVECTOR &pos)
+float CTerrain::RetCoarseSlope(const Math::Vector &pos)
{
float dim, level[4], min, max;
int x, y;
@@ -1722,9 +1722,9 @@ float CTerrain::RetCoarseSlope(const D3DVECTOR &pos)
// Gives the normal vector at the position p (x,-,z) of the ground.
-bool CTerrain::GetNormal(D3DVECTOR &n, const D3DVECTOR &p)
+bool CTerrain::GetNormal(Math::Vector &n, const Math::Vector &p)
{
- D3DVECTOR p1, p2, p3, p4;
+ Math::Vector p1, p2, p3, p4;
float dim;
int x, y;
@@ -1743,20 +1743,20 @@ bool CTerrain::GetNormal(D3DVECTOR &n, const D3DVECTOR &p)
if ( fabs(p.z-p2.z) < fabs(p.x-p2.x) )
{
- n = ComputeNormal(p1,p2,p3);
+ n = Math::NormalToPlane(p1,p2,p3);
}
else
{
- n = ComputeNormal(p2,p4,p3);
+ n = Math::NormalToPlane(p2,p4,p3);
}
return true;
}
// Returns the height of the ground.
-float CTerrain::RetFloorLevel(const D3DVECTOR &p, bool bBrut, bool bWater)
+float CTerrain::RetFloorLevel(const Math::Vector &p, bool bBrut, bool bWater)
{
- D3DVECTOR p1, p2, p3, p4, ps;
+ Math::Vector p1, p2, p3, p4, ps;
float dim, level;
int x, y;
@@ -1797,9 +1797,9 @@ float CTerrain::RetFloorLevel(const D3DVECTOR &p, bool bBrut, bool bWater)
// Returns the height to the ground.
// This height is positive when you are above the ground.
-float CTerrain::RetFloorHeight(const D3DVECTOR &p, bool bBrut, bool bWater)
+float CTerrain::RetFloorHeight(const Math::Vector &p, bool bBrut, bool bWater)
{
- D3DVECTOR p1, p2, p3, p4, ps;
+ Math::Vector p1, p2, p3, p4, ps;
float dim, level;
int x, y;
@@ -1839,9 +1839,9 @@ float CTerrain::RetFloorHeight(const D3DVECTOR &p, bool bBrut, bool bWater)
// Modifies the coordinate "y" of point "p" to rest on the ground floor.
-bool CTerrain::MoveOnFloor(D3DVECTOR &p, bool bBrut, bool bWater)
+bool CTerrain::MoveOnFloor(Math::Vector &p, bool bBrut, bool bWater)
{
- D3DVECTOR p1, p2, p3, p4;
+ Math::Vector p1, p2, p3, p4;
float dim, level;
int x, y;
@@ -1881,7 +1881,7 @@ bool CTerrain::MoveOnFloor(D3DVECTOR &p, bool bBrut, bool bWater)
// Modifies a coordinate so that it is on the ground.
// Returns false if the initial coordinate was too far.
-bool CTerrain::ValidPosition(D3DVECTOR &p, float marging)
+bool CTerrain::ValidPosition(Math::Vector &p, float marging)
{
bool bOK = true;
float limit;
@@ -1926,7 +1926,7 @@ void CTerrain::FlushBuildingLevel()
// Adds a new elevation for a building.
-bool CTerrain::AddBuildingLevel(D3DVECTOR center, float min, float max,
+bool CTerrain::AddBuildingLevel(Math::Vector center, float min, float max,
float height, float factor)
{
int i;
@@ -1960,7 +1960,7 @@ bool CTerrain::AddBuildingLevel(D3DVECTOR center, float min, float max,
// Updates the elevation for a building when it was moved up (after a terraforming).
-bool CTerrain::UpdateBuildingLevel(D3DVECTOR center)
+bool CTerrain::UpdateBuildingLevel(Math::Vector center)
{
int i;
@@ -1979,7 +1979,7 @@ bool CTerrain::UpdateBuildingLevel(D3DVECTOR center)
// Removes the elevation for a building when it was destroyed.
-bool CTerrain::DeleteBuildingLevel(D3DVECTOR center)
+bool CTerrain::DeleteBuildingLevel(Math::Vector center)
{
int i, j;
@@ -2001,7 +2001,7 @@ bool CTerrain::DeleteBuildingLevel(D3DVECTOR center)
// Returns the influence factor whether a position is on a possible rise.
-float CTerrain::RetBuildingFactor(const D3DVECTOR &p)
+float CTerrain::RetBuildingFactor(const Math::Vector &p)
{
float dist;
int i;
@@ -2013,7 +2013,7 @@ float CTerrain::RetBuildingFactor(const D3DVECTOR &p)
p.z < m_buildingTable[i].bboxMinZ ||
p.z > m_buildingTable[i].bboxMaxZ ) continue;
- dist = Length2d(p, m_buildingTable[i].center);
+ dist = Math::DistanceProjected(p, m_buildingTable[i].center);
if ( dist <= m_buildingTable[i].max )
{
@@ -2025,9 +2025,9 @@ float CTerrain::RetBuildingFactor(const D3DVECTOR &p)
// Adjusts a position according to a possible rise.
-void CTerrain::AdjustBuildingLevel(D3DVECTOR &p)
+void CTerrain::AdjustBuildingLevel(Math::Vector &p)
{
- D3DVECTOR border;
+ Math::Vector border;
float dist, base;
int i;
@@ -2038,7 +2038,7 @@ void CTerrain::AdjustBuildingLevel(D3DVECTOR &p)
p.z < m_buildingTable[i].bboxMinZ ||
p.z > m_buildingTable[i].bboxMaxZ ) continue;
- dist = Length2d(p, m_buildingTable[i].center);
+ dist = Math::DistanceProjected(p, m_buildingTable[i].center);
if ( dist > m_buildingTable[i].max ) continue;
@@ -2077,7 +2077,7 @@ void CTerrain::AdjustBuildingLevel(D3DVECTOR &p)
// Returns the hardness of the ground in a given place.
// The hardness determines the noise (SOUND_STEP and SOUND_BOUM).
-float CTerrain::RetHardness(const D3DVECTOR &p)
+float CTerrain::RetHardness(const Math::Vector &p)
{
TerrainMaterial* tm;
float factor, dim;
@@ -2112,9 +2112,9 @@ float CTerrain::RetHardness(const D3DVECTOR &p)
// Shows the flat areas on the ground.
-void CTerrain::GroundFlat(D3DVECTOR pos)
+void CTerrain::GroundFlat(Math::Vector pos)
{
- D3DVECTOR p;
+ Math::Vector p;
float rapport, angle;
int x, y, i;
static char table[41*41];
@@ -2132,7 +2132,7 @@ void CTerrain::GroundFlat(D3DVECTOR pos)
p.x = (x-20)*rapport;
p.z = (y-20)*rapport;
p.y = 0.0f;
- if ( Length(p.x, p.y) > 20.0f*rapport ) continue;
+ if ( Math::Point(p.x, p.y).Length() > 20.0f*rapport ) continue;
angle = RetFineSlope(pos+p);
@@ -2154,9 +2154,9 @@ void CTerrain::GroundFlat(D3DVECTOR pos)
// Calculates the radius of the largest flat area available.
// This calculation is not optimized!
-float CTerrain::RetFlatZoneRadius(D3DVECTOR center, float max)
+float CTerrain::RetFlatZoneRadius(Math::Vector center, float max)
{
- D3DVECTOR pos;
+ Math::Vector pos;
Math::Point c, p;
float ref, radius, angle, h;
int i, nb;
@@ -2218,7 +2218,7 @@ void CTerrain::FlushFlyingLimit()
// Empty the limits table of flight.
-bool CTerrain::AddFlyingLimit(D3DVECTOR center,
+bool CTerrain::AddFlyingLimit(Math::Vector center,
float extRadius, float intRadius,
float maxHeight)
{
@@ -2238,7 +2238,7 @@ bool CTerrain::AddFlyingLimit(D3DVECTOR center,
// Returns the maximum height of flight.
-float CTerrain::RetFlyingLimit(D3DVECTOR pos, bool bNoLimit)
+float CTerrain::RetFlyingLimit(Math::Vector pos, bool bNoLimit)
{
float dist, h;
int i;
@@ -2248,7 +2248,7 @@ float CTerrain::RetFlyingLimit(D3DVECTOR pos, bool bNoLimit)
for ( i=0 ; i<m_flyingLimitTotal ; i++ )
{
- dist = Length2d(pos, m_flyingLimit[i].center);
+ dist = Math::DistanceProjected(pos, m_flyingLimit[i].center);
if ( dist >= m_flyingLimit[i].extRadius ) continue;
diff --git a/src/graphics/common/terrain.h b/src/graphics/common/terrain.h
index dd04377..d41cd15 100644
--- a/src/graphics/common/terrain.h
+++ b/src/graphics/common/terrain.h
@@ -50,7 +50,7 @@ const int MAXBUILDINGLEVEL = 100;
struct BuildingLevel
{
- D3DVECTOR center;
+ Math::Vector center;
float factor;
float min;
float max;
@@ -85,7 +85,7 @@ const int MAXFLYINGLIMIT = 10;
struct FlyingLimit
{
- D3DVECTOR center;
+ Math::Vector center;
float extRadius;
float intRadius;
float maxHeight;
@@ -104,52 +104,52 @@ public:
void LevelFlush();
bool LevelMaterial(int id, char* baseName, float u, float v, int up, int right, int down, int left, float hardness);
bool LevelInit(int id);
- bool LevelGenerate(int *id, float min, float max, float slope, float freq, D3DVECTOR center, float radius);
+ bool LevelGenerate(int *id, float min, float max, float slope, float freq, Math::Vector center, float radius);
void FlushRelief();
bool ReliefFromBMP(const char* filename, float scaleRelief, bool adjustBorder);
bool ReliefFromDXF(const char* filename, float scaleRelief);
bool ResFromBMP(const char* filename);
bool CreateObjects(bool bMultiRes);
- bool Terraform(const D3DVECTOR &p1, const D3DVECTOR &p2, float height);
+ bool Terraform(const Math::Vector &p1, const Math::Vector &p2, float height);
- void SetWind(D3DVECTOR speed);
- D3DVECTOR RetWind();
+ void SetWind(Math::Vector speed);
+ Math::Vector RetWind();
- float RetFineSlope(const D3DVECTOR &pos);
- float RetCoarseSlope(const D3DVECTOR &pos);
- bool GetNormal(D3DVECTOR &n, const D3DVECTOR &p);
- float RetFloorLevel(const D3DVECTOR &p, bool bBrut=false, bool bWater=false);
- float RetFloorHeight(const D3DVECTOR &p, bool bBrut=false, bool bWater=false);
- bool MoveOnFloor(D3DVECTOR &p, bool bBrut=false, bool bWater=false);
- bool ValidPosition(D3DVECTOR &p, float marging);
- TerrainRes RetResource(const D3DVECTOR &p);
- void LimitPos(D3DVECTOR &pos);
+ float RetFineSlope(const Math::Vector &pos);
+ float RetCoarseSlope(const Math::Vector &pos);
+ bool GetNormal(Math::Vector &n, const Math::Vector &p);
+ float RetFloorLevel(const Math::Vector &p, bool bBrut=false, bool bWater=false);
+ float RetFloorHeight(const Math::Vector &p, bool bBrut=false, bool bWater=false);
+ bool MoveOnFloor(Math::Vector &p, bool bBrut=false, bool bWater=false);
+ bool ValidPosition(Math::Vector &p, float marging);
+ TerrainRes RetResource(const Math::Vector &p);
+ void LimitPos(Math::Vector &pos);
void FlushBuildingLevel();
- bool AddBuildingLevel(D3DVECTOR center, float min, float max, float height, float factor);
- bool UpdateBuildingLevel(D3DVECTOR center);
- bool DeleteBuildingLevel(D3DVECTOR center);
- float RetBuildingFactor(const D3DVECTOR &p);
- float RetHardness(const D3DVECTOR &p);
+ bool AddBuildingLevel(Math::Vector center, float min, float max, float height, float factor);
+ bool UpdateBuildingLevel(Math::Vector center);
+ bool DeleteBuildingLevel(Math::Vector center);
+ float RetBuildingFactor(const Math::Vector &p);
+ float RetHardness(const Math::Vector &p);
int RetMosaic();
int RetBrick();
float RetSize();
float RetScaleRelief();
- void GroundFlat(D3DVECTOR pos);
- float RetFlatZoneRadius(D3DVECTOR center, float max);
+ void GroundFlat(Math::Vector pos);
+ float RetFlatZoneRadius(Math::Vector center, float max);
void SetFlyingMaxHeight(float height);
float RetFlyingMaxHeight();
void FlushFlyingLimit();
- bool AddFlyingLimit(D3DVECTOR center, float extRadius, float intRadius, float maxHeight);
- float RetFlyingLimit(D3DVECTOR pos, bool bNoLimit);
+ bool AddFlyingLimit(Math::Vector center, float extRadius, float intRadius, float maxHeight);
+ float RetFlyingLimit(Math::Vector pos, bool bNoLimit);
protected:
- bool ReliefAddDot(D3DVECTOR pos, float scaleRelief);
+ bool ReliefAddDot(Math::Vector pos, float scaleRelief);
void AdjustRelief();
- D3DVECTOR RetVector(int x, int y);
+ Math::Vector RetVector(int x, int y);
D3DVERTEX2 RetVertex(int x, int y, int step);
bool CreateMosaic(int ox, int oy, int step, int objRank, const D3DMATERIAL7 &mat, float min, float max);
bool CreateSquare(bool bMultiRes, int x, int y);
@@ -165,7 +165,7 @@ protected:
void LevelOpenTable();
void LevelCloseTable();
- void AdjustBuildingLevel(D3DVECTOR &p);
+ void AdjustBuildingLevel(Math::Vector &p);
protected:
CInstanceManager* m_iMan;
@@ -200,7 +200,7 @@ protected:
BuildingLevel m_buildingTable[MAXBUILDINGLEVEL];
unsigned char* m_resources;
- D3DVECTOR m_wind; // wind speed
+ Math::Vector m_wind; // wind speed
float m_flyingMaxHeight;
int m_flyingLimitTotal;
diff --git a/src/graphics/common/text.cpp b/src/graphics/common/text.cpp
index 2bee6f4..f8d3f49 100644
--- a/src/graphics/common/text.cpp
+++ b/src/graphics/common/text.cpp
@@ -1648,7 +1648,7 @@ void CText::DrawColor(Math::Point pos, float size, float width, int color)
D3DVERTEX2 vertex[4]; // 2 triangles
Math::Point p1, p2;
POINT dim;
- D3DVECTOR n;
+ Math::Vector n;
float h, u1, u2, v1, v2, dp;
int icon;
@@ -1707,12 +1707,12 @@ void CText::DrawColor(Math::Point pos, float size, float width, int color)
u2 -= dp;
v2 -= dp;
- n = D3DVECTOR(0.0f, 0.0f, -1.0f); // normal
+ n = Math::Vector(0.0f, 0.0f, -1.0f); // normal
- vertex[0] = D3DVERTEX2(D3DVECTOR(p1.x, p1.y, 0.0f), n, u1,v2);
- vertex[1] = D3DVERTEX2(D3DVECTOR(p1.x, p2.y, 0.0f), n, u1,v1);
- vertex[2] = D3DVERTEX2(D3DVECTOR(p2.x, p1.y, 0.0f), n, u2,v2);
- vertex[3] = D3DVERTEX2(D3DVECTOR(p2.x, p2.y, 0.0f), n, u2,v1);
+ vertex[0] = D3DVERTEX2(Math::Vector(p1.x, p1.y, 0.0f), n, u1,v2);
+ vertex[1] = D3DVERTEX2(Math::Vector(p1.x, p2.y, 0.0f), n, u1,v1);
+ vertex[2] = D3DVERTEX2(Math::Vector(p2.x, p1.y, 0.0f), n, u2,v2);
+ vertex[3] = D3DVERTEX2(Math::Vector(p2.x, p2.y, 0.0f), n, u2,v1);
m_pD3DDevice->DrawPrimitive(D3DPT_TRIANGLESTRIP, D3DFVF_VERTEX2, vertex, 4, NULL);
m_engine->AddStatisticTriangle(2);
@@ -1730,12 +1730,12 @@ void CText::DrawChar(int character, Math::Point pos, float size,
{
D3DVERTEX2 vertex[4]; // 2 triangles
Math::Point p1, p2;
- D3DVECTOR n;
+ Math::Vector n;
float width, height, u1, u2, v1, v2, dp;
short* pt;
dp = 0.5f/256.0f;
- n = D3DVECTOR(0.0f, 0.0f, -1.0f); // normal
+ n = Math::Vector(0.0f, 0.0f, -1.0f); // normal
if ( font == FONT_BUTTON )
{
@@ -1767,10 +1767,10 @@ void CText::DrawChar(int character, Math::Point pos, float size,
u2 -= dp;
v2 -= dp;
- vertex[0] = D3DVERTEX2(D3DVECTOR(p1.x, p1.y, 0.0f), n, u1,v2);
- vertex[1] = D3DVERTEX2(D3DVECTOR(p1.x, p2.y, 0.0f), n, u1,v1);
- vertex[2] = D3DVERTEX2(D3DVECTOR(p2.x, p1.y, 0.0f), n, u2,v2);
- vertex[3] = D3DVERTEX2(D3DVECTOR(p2.x, p2.y, 0.0f), n, u2,v1);
+ vertex[0] = D3DVERTEX2(Math::Vector(p1.x, p1.y, 0.0f), n, u1,v2);
+ vertex[1] = D3DVERTEX2(Math::Vector(p1.x, p2.y, 0.0f), n, u1,v1);
+ vertex[2] = D3DVERTEX2(Math::Vector(p2.x, p1.y, 0.0f), n, u2,v2);
+ vertex[3] = D3DVERTEX2(Math::Vector(p2.x, p2.y, 0.0f), n, u2,v1);
m_pD3DDevice->DrawPrimitive(D3DPT_TRIANGLESTRIP, D3DFVF_VERTEX2, vertex, 4, NULL);
m_engine->AddStatisticTriangle(2);
@@ -1803,10 +1803,10 @@ void CText::DrawChar(int character, Math::Point pos, float size,
u2 -= dp;
v2 -= dp;
- vertex[0] = D3DVERTEX2(D3DVECTOR(p1.x, p1.y, 0.0f), n, u1,v2);
- vertex[1] = D3DVERTEX2(D3DVECTOR(p1.x, p2.y, 0.0f), n, u1,v1);
- vertex[2] = D3DVERTEX2(D3DVECTOR(p2.x, p1.y, 0.0f), n, u2,v2);
- vertex[3] = D3DVERTEX2(D3DVECTOR(p2.x, p2.y, 0.0f), n, u2,v1);
+ vertex[0] = D3DVERTEX2(Math::Vector(p1.x, p1.y, 0.0f), n, u1,v2);
+ vertex[1] = D3DVERTEX2(Math::Vector(p1.x, p2.y, 0.0f), n, u1,v1);
+ vertex[2] = D3DVERTEX2(Math::Vector(p2.x, p1.y, 0.0f), n, u2,v2);
+ vertex[3] = D3DVERTEX2(Math::Vector(p2.x, p2.y, 0.0f), n, u2,v1);
m_pD3DDevice->DrawPrimitive(D3DPT_TRIANGLESTRIP, D3DFVF_VERTEX2, vertex, 4, NULL);
m_engine->AddStatisticTriangle(2);
@@ -1868,10 +1868,10 @@ void CText::DrawChar(int character, Math::Point pos, float size,
}
- vertex[0] = D3DVERTEX2(D3DVECTOR(p1.x, p1.y, 0.0f), n, u1,v2);
- vertex[1] = D3DVERTEX2(D3DVECTOR(p1.x, p2.y, 0.0f), n, u1,v1);
- vertex[2] = D3DVERTEX2(D3DVECTOR(p2.x, p1.y, 0.0f), n, u2,v2);
- vertex[3] = D3DVERTEX2(D3DVECTOR(p2.x, p2.y, 0.0f), n, u2,v1);
+ vertex[0] = D3DVERTEX2(Math::Vector(p1.x, p1.y, 0.0f), n, u1,v2);
+ vertex[1] = D3DVERTEX2(Math::Vector(p1.x, p2.y, 0.0f), n, u1,v1);
+ vertex[2] = D3DVERTEX2(Math::Vector(p2.x, p1.y, 0.0f), n, u2,v2);
+ vertex[3] = D3DVERTEX2(Math::Vector(p2.x, p2.y, 0.0f), n, u2,v1);
m_pD3DDevice->DrawPrimitive(D3DPT_TRIANGLESTRIP, D3DFVF_VERTEX2, vertex, 4, NULL);
m_engine->AddStatisticTriangle(2);
diff --git a/src/graphics/common/water.cpp b/src/graphics/common/water.cpp
index 7bd5614..dd4b5f3 100644
--- a/src/graphics/common/water.cpp
+++ b/src/graphics/common/water.cpp
@@ -22,6 +22,8 @@
#include <d3d.h>
#include "common/struct.h"
+#include "math/geometry.h"
+#include "math/conv.h"
#include "graphics/d3d/d3dengine.h"
#include "math/old/d3dmath.h"
#include "graphics/d3d/d3dutil.h"
@@ -170,7 +172,7 @@ bool CWater::EventFrame(const Event &event)
void CWater::LavaFrame(float rTime)
{
- D3DVECTOR eye, lookat, dir, perp, pos;
+ Math::Vector eye, lookat, dir, perp, pos;
float distance, shift, level;
int i;
@@ -245,7 +247,7 @@ void CWater::VaporFlush()
// Creates a new steam.
-bool CWater::VaporCreate(ParticuleType type, D3DVECTOR pos, float delay)
+bool CWater::VaporCreate(ParticuleType type, Math::Vector pos, float delay)
{
int i;
@@ -283,7 +285,7 @@ bool CWater::VaporCreate(ParticuleType type, D3DVECTOR pos, float delay)
void CWater::VaporFrame(int i, float rTime)
{
- D3DVECTOR pos, speed;
+ Math::Vector pos, speed;
Math::Point dim;
int j;
@@ -353,7 +355,7 @@ void CWater::VaporFrame(int i, float rTime)
// Adjusts the position to normal, to imitate reflections on an expanse of water at rest.
-void CWater::AdjustLevel(D3DVECTOR &pos, D3DVECTOR &norm,
+void CWater::AdjustLevel(Math::Vector &pos, Math::Vector &norm,
Math::Point &uv1, Math::Point &uv2)
{
#if 0
@@ -377,7 +379,7 @@ void CWater::AdjustLevel(D3DVECTOR &pos, D3DVECTOR &norm,
t1 = m_time*0.7f + pos.x*5.5f + pos.z*5.6f;
t2 = m_time*0.8f + pos.x*5.7f + pos.z*5.8f;
- norm = D3DVECTOR(sinf(t1)*m_glint, 1.0f, sinf(t2)*m_glint);
+ norm = Math::Vector(sinf(t1)*m_glint, 1.0f, sinf(t2)*m_glint);
#else
float t1, t2;
@@ -392,7 +394,7 @@ void CWater::AdjustLevel(D3DVECTOR &pos, D3DVECTOR &norm,
t1 = m_time*0.50f + pos.x*2.1f + pos.z*1.1f;
t2 = m_time*0.75f + pos.x*2.0f + pos.z*1.0f;
- norm = D3DVECTOR(sinf(t1)*m_glint, 1.0f, sinf(t2)*m_glint);
+ norm = Math::Vector(sinf(t1)*m_glint, 1.0f, sinf(t2)*m_glint);
#endif
}
@@ -404,8 +406,8 @@ void CWater::DrawBack()
LPDIRECT3DDEVICE7 device;
D3DVERTEX2 vertex[4]; // 2 triangles
D3DMATERIAL7 material;
- D3DMATRIX matrix;
- D3DVECTOR eye, lookat, n, p, p1, p2;
+ Math::Matrix matrix;
+ Math::Vector eye, lookat, n, p, p1, p2;
Math::Point uv1, uv2;
float deep, dist;
@@ -434,12 +436,15 @@ void CWater::DrawBack()
m_engine->SetFocus(m_engine->RetFocus());
m_engine->UpdateMatProj(); // twice the depth of view
- D3DUtil_SetIdentityMatrix(matrix);
- device->SetTransform(D3DTRANSFORMSTATE_WORLD, &matrix);
+ matrix.LoadIdentity();
+ {
+ D3DMATRIX mat = MAT_TO_D3DMAT(matrix);
+ device->SetTransform(D3DTRANSFORMSTATE_WORLD, &mat);
+ }
p.x = eye.x;
p.z = eye.z;
- dist = Length2d(eye, lookat);
+ dist = Math::DistanceProjected(eye, lookat);
p.x = (lookat.x-eye.x)*deep*1.0f/dist + eye.x;
p.z = (lookat.z-eye.z)*deep*1.0f/dist + eye.z;
@@ -458,10 +463,10 @@ void CWater::DrawBack()
uv1.x = uv1.y = 0.0f;
uv2.x = uv2.y = 0.0f;
- vertex[0] = D3DVERTEX2(D3DVECTOR(p1.x, p2.y, p1.z), n, uv1.x,uv2.y);
- vertex[1] = D3DVERTEX2(D3DVECTOR(p1.x, p1.y, p1.z), n, uv1.x,uv1.y);
- vertex[2] = D3DVERTEX2(D3DVECTOR(p2.x, p2.y, p2.z), n, uv2.x,uv2.y);
- vertex[3] = D3DVERTEX2(D3DVECTOR(p2.x, p1.y, p2.z), n, uv2.x,uv1.y);
+ vertex[0] = D3DVERTEX2(Math::Vector(p1.x, p2.y, p1.z), n, uv1.x,uv2.y);
+ vertex[1] = D3DVERTEX2(Math::Vector(p1.x, p1.y, p1.z), n, uv1.x,uv1.y);
+ vertex[2] = D3DVERTEX2(Math::Vector(p2.x, p2.y, p2.z), n, uv2.x,uv2.y);
+ vertex[3] = D3DVERTEX2(Math::Vector(p2.x, p1.y, p2.z), n, uv2.x,uv1.y);
device->DrawPrimitive(D3DPT_TRIANGLESTRIP, D3DFVF_VERTEX2, vertex, 4, NULL);
m_engine->AddStatisticTriangle(2);
@@ -482,8 +487,8 @@ void CWater::DrawSurf()
LPDIRECT3DDEVICE7 device;
D3DVERTEX2* vertex; // triangles
D3DMATERIAL7 material;
- D3DMATRIX matrix;
- D3DVECTOR eye, lookat, n, pos, p;
+ Math::Matrix matrix;
+ Math::Vector eye, lookat, n, pos, p;
Math::Point uv1, uv2;
bool bUnder;
DWORD flags;
@@ -508,8 +513,11 @@ void CWater::DrawSurf()
//? device->SetRenderState(D3DRENDERSTATE_ZENABLE, false);
device->SetRenderState(D3DRENDERSTATE_ZWRITEENABLE, false);
- D3DUtil_SetIdentityMatrix(matrix);
- device->SetTransform(D3DTRANSFORMSTATE_WORLD, &matrix);
+ matrix.LoadIdentity();
+ {
+ D3DMATRIX mat = MAT_TO_D3DMAT(matrix);
+ device->SetTransform(D3DTRANSFORMSTATE_WORLD, &mat);
+ }
ZeroMemory( &material, sizeof(D3DMATERIAL7) );
material.diffuse = m_diffuse;
@@ -554,8 +562,11 @@ void CWater::DrawSurf()
p = pos;
p.x += size*(m_line[i].len-1);
radius = sqrtf(powf(size, 2.0f)+powf(size*m_line[i].len, 2.0f));
- if ( Length(p, eye) > deep+radius ) continue;
- device->ComputeSphereVisibility(&p, &radius, 1, 0, &flags);
+ if ( Math::Distance(p, eye) > deep+radius ) continue;
+
+ D3DVECTOR pD3D = VEC_TO_D3DVEC(p);
+ device->ComputeSphereVisibility(&pD3D, &radius, 1, 0, &flags);
+
if ( flags & D3DSTATUS_CLIPINTERSECTIONALL ) continue;
u = 0;
@@ -604,7 +615,7 @@ void CWater::DrawSurf()
bool CWater::RetWater(int x, int y)
{
- D3DVECTOR pos;
+ Math::Vector pos;
float size, offset, level;
int dx, dy;
@@ -653,7 +664,7 @@ bool CWater::CreateLine(int x, int y, int len)
bool CWater::Create(WaterType type1, WaterType type2, const char *filename,
D3DCOLORVALUE diffuse, D3DCOLORVALUE ambient,
- float level, float glint, D3DVECTOR eddy)
+ float level, float glint, Math::Vector eddy)
{
int x, y, len;
@@ -812,7 +823,7 @@ bool CWater::RetLava()
// Adjusts the eye of the camera, not to be in the water.
-void CWater::AdjustEye(D3DVECTOR &eye)
+void CWater::AdjustEye(Math::Vector &eye)
{
if ( m_bLava )
{
diff --git a/src/graphics/common/water.h b/src/graphics/common/water.h
index c385963..45a545d 100644
--- a/src/graphics/common/water.h
+++ b/src/graphics/common/water.h
@@ -46,7 +46,7 @@ struct WaterVapor
{
bool bUsed;
ParticuleType type;
- D3DVECTOR pos;
+ Math::Vector pos;
float delay;
float time;
float last;
@@ -72,7 +72,7 @@ public:
void SetD3DDevice(LPDIRECT3DDEVICE7 device);
bool EventProcess(const Event &event);
void Flush();
- bool Create(WaterType type1, WaterType type2, const char *filename, D3DCOLORVALUE diffuse, D3DCOLORVALUE ambient, float level, float glint, D3DVECTOR eddy);
+ bool Create(WaterType type1, WaterType type2, const char *filename, D3DCOLORVALUE diffuse, D3DCOLORVALUE ambient, float level, float glint, Math::Vector eddy);
void DrawBack();
void DrawSurf();
@@ -83,17 +83,17 @@ public:
void SetLava(bool bLava);
bool RetLava();
- void AdjustEye(D3DVECTOR &eye);
+ void AdjustEye(Math::Vector &eye);
protected:
bool EventFrame(const Event &event);
void LavaFrame(float rTime);
- void AdjustLevel(D3DVECTOR &pos, D3DVECTOR &norm, Math::Point &uv1, Math::Point &uv2);
+ void AdjustLevel(Math::Vector &pos, Math::Vector &norm, Math::Point &uv1, Math::Point &uv2);
bool RetWater(int x, int y);
bool CreateLine(int x, int y, int len);
void VaporFlush();
- bool VaporCreate(ParticuleType type, D3DVECTOR pos, float delay);
+ bool VaporCreate(ParticuleType type, Math::Vector pos, float delay);
void VaporFrame(int i, float rTime);
protected:
@@ -108,7 +108,7 @@ protected:
char m_filename[100];
float m_level; // overall level
float m_glint; // amplitude of reflections
- D3DVECTOR m_eddy; // amplitude of swirls
+ Math::Vector m_eddy; // amplitude of swirls
D3DCOLORVALUE m_diffuse; // diffuse color
D3DCOLORVALUE m_ambient; // ambient color
float m_time;
diff --git a/src/graphics/d3d/d3dengine.cpp b/src/graphics/d3d/d3dengine.cpp
index 8b179ed..731a839 100644
--- a/src/graphics/d3d/d3dengine.cpp
+++ b/src/graphics/d3d/d3dengine.cpp
@@ -23,6 +23,7 @@
#include "common/struct.h"
#include "math/const.h"
#include "math/geometry.h"
+#include "math/conv.h"
#include "app/d3dapp.h"
#include "graphics/d3d/d3dtextr.h"
#include "graphics/d3d/d3dutil.h"
@@ -163,8 +164,8 @@ CD3DEngine::CD3DEngine(CInstanceManager *iMan, CD3DApplication *app)
m_bMouseHide = false;
m_imageSurface = 0;
m_imageCopy = 0;
- m_eyePt = D3DVECTOR(0.0f, 0.0f, 0.0f);
- m_lookatPt = D3DVECTOR(0.0f, 0.0f, 1.0f);
+ m_eyePt = Math::Vector(0.0f, 0.0f, 0.0f);
+ m_lookatPt = Math::Vector(0.0f, 0.0f, 1.0f);
m_bDrawWorld = true;
m_bDrawFront = false;
m_limitLOD[0] = 100.0f;
@@ -668,7 +669,7 @@ int CD3DEngine::RetRestCreate()
int CD3DEngine::CreateObject()
{
- D3DMATRIX mat;
+ Math::Matrix mat;
int i;
for ( i=0 ; i<D3DMAXOBJECT ; i++ )
@@ -678,13 +679,13 @@ int CD3DEngine::CreateObject()
ZeroMemory(&m_objectParam[i], sizeof(D3DObject));
m_objectParam[i].bUsed = true;
- D3DUtil_SetIdentityMatrix(mat);
+ mat.LoadIdentity();
SetObjectTransform(i, mat);
m_objectParam[i].bDrawWorld = true;
m_objectParam[i].distance = 0.0f;
- m_objectParam[i].bboxMin = D3DVECTOR(0.0f, 0.0f, 0.0f);
- m_objectParam[i].bboxMax = D3DVECTOR(0.0f, 0.0f, 0.0f);
+ m_objectParam[i].bboxMin = Math::Vector(0.0f, 0.0f, 0.0f);
+ m_objectParam[i].bboxMax = Math::Vector(0.0f, 0.0f, 0.0f);
m_objectParam[i].shadowRank = -1;
if ( i >= m_objectParamTotal )
@@ -1031,8 +1032,8 @@ bool CD3DEngine::AddTriangle(int objRank, D3DVERTEX2* vertex, int nb,
m_objectParam[objRank].bboxMax.z = Math::Max(vertex[i].z, m_objectParam[objRank].bboxMax.z);
}
- m_objectParam[objRank].radius = Math::Max(Length(m_objectParam[objRank].bboxMin),
- Length(m_objectParam[objRank].bboxMax));
+ m_objectParam[objRank].radius = Math::Max(m_objectParam[objRank].bboxMin.Length(),
+ m_objectParam[objRank].bboxMax.Length());
}
m_objectParam[objRank].totalTriangle += nb/3;
@@ -1078,8 +1079,8 @@ bool CD3DEngine::AddSurface(int objRank, D3DVERTEX2* vertex, int nb,
m_objectParam[objRank].bboxMax.z = Math::Max(vertex[i].z, m_objectParam[objRank].bboxMax.z);
}
- m_objectParam[objRank].radius = Math::Max(Length(m_objectParam[objRank].bboxMin),
- Length(m_objectParam[objRank].bboxMax));
+ m_objectParam[objRank].radius = Math::Max(m_objectParam[objRank].bboxMin.Length(),
+ m_objectParam[objRank].bboxMax.Length());
}
m_objectParam[objRank].totalTriangle += nb-2;
@@ -1124,8 +1125,8 @@ bool CD3DEngine::AddQuick(int objRank, D3DObjLevel6* buffer,
m_objectParam[objRank].bboxMax.z = Math::Max(buffer->vertex[i].z, m_objectParam[objRank].bboxMax.z);
}
- m_objectParam[objRank].radius = Math::Max(Length(m_objectParam[objRank].bboxMin),
- Length(m_objectParam[objRank].bboxMax));
+ m_objectParam[objRank].radius = Math::Max(m_objectParam[objRank].bboxMin.Length(),
+ m_objectParam[objRank].bboxMax.Length());
}
m_objectParam[objRank].totalTriangle += buffer->totalUsed-2;
@@ -1388,7 +1389,7 @@ int CD3DEngine::GetTriangles(int objRank, float min, float max,
// Give the box of an object.
-bool CD3DEngine::GetBBox(int objRank, D3DVECTOR &min, D3DVECTOR &max)
+bool CD3DEngine::GetBBox(int objRank, Math::Vector &min, Math::Vector &max)
{
min = m_objectParam[objRank].bboxMin;
max = m_objectParam[objRank].bboxMax;
@@ -1530,7 +1531,7 @@ bool CD3DEngine::TrackTextureMapping(int objRank,
{
D3DObjLevel6* p6;
D3DVERTEX2* pv;
- D3DVECTOR current;
+ Math::Vector current;
float ps, pe, pps, ppe, offset;
int l6, nb, i, j, s, e;
int is[6], ie[6];
@@ -1580,8 +1581,8 @@ bool CD3DEngine::TrackTextureMapping(int objRank,
}
if ( s == 3 && e == 3 )
{
- pe = ps+Length(pv[is[0]].x-pv[ie[0]].x,
- pv[is[0]].y-pv[ie[0]].y)/factor; // end position on the periphery
+ pe = ps+Math::Point(pv[is[0]].x-pv[ie[0]].x,
+ pv[is[0]].y-pv[ie[0]].y).Length() / factor; // end position on the periphery
pps = ps+pos;
ppe = pe+pos;
@@ -1673,8 +1674,8 @@ void CD3DEngine::UpdateGeometry()
m_objectParam[objRank].bboxMax.z = Math::Max(p6->vertex[i].z, m_objectParam[objRank].bboxMax.z);
}
- m_objectParam[objRank].radius = Math::Max(Length(m_objectParam[objRank].bboxMin),
- Length(m_objectParam[objRank].bboxMax));
+ m_objectParam[objRank].radius = Math::Max(m_objectParam[objRank].bboxMin.Length(),
+ m_objectParam[objRank].bboxMax.Length());
}
}
}
@@ -1690,13 +1691,16 @@ void CD3DEngine::UpdateGeometry()
bool CD3DEngine::IsVisible(int objRank)
{
- D3DVECTOR center;
+ Math::Vector center;
DWORD flags;
float radius;
radius = m_objectParam[objRank].radius;
- center = D3DVECTOR(0.0f, 0.0f, 0.0f);
- m_pD3DDevice->ComputeSphereVisibility(&center, &radius, 1, 0, &flags);
+ center = Math::Vector(0.0f, 0.0f, 0.0f);
+ {
+ D3DVECTOR centerD3D = VEC_TO_D3DVEC(center);
+ m_pD3DDevice->ComputeSphereVisibility(&centerD3D, &radius, 1, 0, &flags);
+ }
if ( flags & D3DSTATUS_CLIPINTERSECTIONALL )
{
@@ -1793,7 +1797,7 @@ int CD3DEngine::DetectObject(Math::Point mouse)
bool CD3DEngine::DetectTriangle(Math::Point mouse, D3DVERTEX2 *triangle,
int objRank, float &dist)
{
- D3DVECTOR p2D[3], p3D;
+ Math::Vector p2D[3], p3D;
Math::Point a, b, c;
int i;
@@ -1834,7 +1838,7 @@ bool CD3DEngine::DetectTriangle(Math::Point mouse, D3DVERTEX2 *triangle,
bool CD3DEngine::DetectBBox(int objRank, Math::Point mouse)
{
- D3DVECTOR p, pp;
+ Math::Vector p, pp;
Math::Point min, max;
int i;
@@ -1869,15 +1873,15 @@ bool CD3DEngine::DetectBBox(int objRank, Math::Point mouse)
// Transforms a 3D point (x, y, z) in 2D space (x, y, -) of the window.
// The coordinated p2D.z gives the distance.
-bool CD3DEngine::TransformPoint(D3DVECTOR &p2D, int objRank, D3DVECTOR p3D)
+bool CD3DEngine::TransformPoint(Math::Vector &p2D, int objRank, Math::Vector p3D)
{
- p3D = Transform(m_objectParam[objRank].transform, p3D);
- p3D = Transform(m_matView, p3D);
+ p3D = Math::Transform(m_objectParam[objRank].transform, p3D);
+ p3D = Math::Transform(m_matView, p3D);
if ( p3D.z < 2.0f ) return false; // behind?
- p2D.x = (p3D.x/p3D.z)*m_matProj._11;
- p2D.y = (p3D.y/p3D.z)*m_matProj._22;
+ p2D.x = (p3D.x/p3D.z)*m_matProj.Get(1,1);
+ p2D.y = (p3D.y/p3D.z)*m_matProj.Get(2,2);
p2D.z = p3D.z;
p2D.x = (p2D.x+1.0f)/2.0f; // [-1..1] -> [0..1]
@@ -1892,7 +1896,7 @@ bool CD3DEngine::TransformPoint(D3DVECTOR &p2D, int objRank, D3DVECTOR p3D)
void CD3DEngine::ComputeDistance()
{
- D3DVECTOR v;
+ Math::Vector v;
int i;
float distance;
@@ -1902,10 +1906,10 @@ void CD3DEngine::ComputeDistance()
{
if ( m_objectParam[i].bUsed == false ) continue;
- v.x = m_eyePt.x - m_objectParam[i].transform._41;
- v.y = m_eyePt.y - m_objectParam[i].transform._42;
- v.z = m_eyePt.z - m_objectParam[i].transform._43;
- m_objectParam[i].distance = Length(v);
+ v.x = m_eyePt.x - m_objectParam[i].transform.Get(1,4);
+ v.y = m_eyePt.y - m_objectParam[i].transform.Get(2,4);
+ v.z = m_eyePt.z - m_objectParam[i].transform.Get(3,4);
+ m_objectParam[i].distance = v.Length();
}
}
else
@@ -1929,10 +1933,10 @@ void CD3DEngine::ComputeDistance()
if ( m_objectParam[i].type == TYPETERRAIN )
{
- v.x = m_eyePt.x - m_objectParam[i].transform._41;
- v.y = m_eyePt.y - m_objectParam[i].transform._42;
- v.z = m_eyePt.z - m_objectParam[i].transform._43;
- m_objectParam[i].distance = Length(v);
+ v.x = m_eyePt.x - m_objectParam[i].transform.Get(1,4);
+ v.y = m_eyePt.y - m_objectParam[i].transform.Get(2,4);
+ v.z = m_eyePt.z - m_objectParam[i].transform.Get(3,4);
+ m_objectParam[i].distance = v.Length();
}
else
{
@@ -2002,17 +2006,17 @@ bool CD3DEngine::ChangeDevice(char *device, char *mode, bool bFull)
-D3DMATRIX* CD3DEngine::RetMatView()
+Math::Matrix* CD3DEngine::RetMatView()
{
return &m_matView;
}
-D3DMATRIX* CD3DEngine::RetMatLeftView()
+Math::Matrix* CD3DEngine::RetMatLeftView()
{
return &m_matLeftView;
}
-D3DMATRIX* CD3DEngine::RetMatRightView()
+Math::Matrix* CD3DEngine::RetMatRightView()
{
return &m_matRightView;
}
@@ -2020,9 +2024,9 @@ D3DMATRIX* CD3DEngine::RetMatRightView()
// Specifies the location and direction of view.
-void CD3DEngine::SetViewParams(const D3DVECTOR &vEyePt,
- const D3DVECTOR &vLookatPt,
- const D3DVECTOR &vUpVec,
+void CD3DEngine::SetViewParams(const Math::Vector &vEyePt,
+ const Math::Vector &vLookatPt,
+ const Math::Vector &vUpVec,
FLOAT fEyeDistance)
{
#if 0
@@ -2030,24 +2034,24 @@ void CD3DEngine::SetViewParams(const D3DVECTOR &vEyePt,
// Adjust camera position for left or right eye along the axis
// perpendicular to the view direction vector and the up vector.
- D3DVECTOR vView = (vLookatPt) - (vEyePt);
+ Math::Vector vView = (vLookatPt) - (vEyePt);
vView = CrossProduct( vView, (vUpVec) );
vView = Normalize( vView ) * fEyeDistance;
- D3DVECTOR vLeftEyePt = (vEyePt) + vView;
- D3DVECTOR vRightEyePt = (vEyePt) - vView;
+ Math::Vector vLeftEyePt = (vEyePt) + vView;
+ Math::Vector vRightEyePt = (vEyePt) - vView;
// Set the view matrices
- D3DUtil_SetViewMatrix( m_matLeftView, (D3DVECTOR)vLeftEyePt, (D3DVECTOR)vLookatPt, (D3DVECTOR)vUpVec );
- D3DUtil_SetViewMatrix( m_matRightView, (D3DVECTOR)vRightEyePt, (D3DVECTOR)vLookatPt, (D3DVECTOR)vUpVec );
- D3DUtil_SetViewMatrix( m_matView, (D3DVECTOR)vEyePt, (D3DVECTOR)vLookatPt, (D3DVECTOR)vUpVec );
+ Math::LoadViewMatrix( m_matLeftView, (Math::Vector)vLeftEyePt, (Math::Vector)vLookatPt, (Math::Vector)vUpVec );
+ Math::LoadViewMatrix( m_matRightView, (Math::Vector)vRightEyePt, (Math::Vector)vLookatPt, (Math::Vector)vUpVec );
+ Math::LoadViewMatrix( m_matView, (Math::Vector)vEyePt, (Math::Vector)vLookatPt, (Math::Vector)vUpVec );
#else
m_eyePt = vEyePt;
m_lookatPt = vLookatPt;
m_eyeDirH = Math::RotateAngle(vEyePt.x-vLookatPt.x, vEyePt.z-vLookatPt.z);
- m_eyeDirV = Math::RotateAngle(Length2d(vEyePt, vLookatPt), vEyePt.y-vLookatPt.y);
+ m_eyeDirV = Math::RotateAngle(Math::DistanceProjected(vEyePt, vLookatPt), vEyePt.y-vLookatPt.y);
- D3DUtil_SetViewMatrix(m_matView, (D3DVECTOR&)vEyePt, (D3DVECTOR&)vLookatPt, (D3DVECTOR&)vUpVec);
+ Math::LoadViewMatrix(m_matView, vEyePt, vLookatPt, vUpVec);
if ( m_sound == 0 )
{
@@ -2060,7 +2064,7 @@ void CD3DEngine::SetViewParams(const D3DVECTOR &vEyePt,
// Specifies the transformation matrix of an object.
-bool CD3DEngine::SetObjectTransform(int objRank, const D3DMATRIX &transform)
+bool CD3DEngine::SetObjectTransform(int objRank, const Math::Matrix &transform)
{
if ( objRank < 0 || objRank >= D3DMAXOBJECT ) return false;
@@ -2070,7 +2074,7 @@ bool CD3DEngine::SetObjectTransform(int objRank, const D3DMATRIX &transform)
// Gives the transformation matrix of an object.
-bool CD3DEngine::GetObjectTransform(int objRank, D3DMATRIX &transform)
+bool CD3DEngine::GetObjectTransform(int objRank, Math::Matrix &transform)
{
if ( objRank < 0 || objRank >= D3DMAXOBJECT ) return false;
@@ -2150,7 +2154,7 @@ void CD3DEngine::ShadowDelete(int objRank)
m_shadow[i].bUsed = false;
m_shadow[i].objRank = -1;
- m_shadow[i].pos = D3DVECTOR(0.0f, 0.0f, 0.0f);
+ m_shadow[i].pos = Math::Vector(0.0f, 0.0f, 0.0f);
m_shadow[i].type = D3DSHADOWNORM;
m_objectParam[objRank].shadowRank = -1;
@@ -2191,7 +2195,7 @@ bool CD3DEngine::SetObjectShadowType(int objRank, D3DShadowType type)
// Specifies the position of the shadow of the object.
-bool CD3DEngine::SetObjectShadowPos(int objRank, const D3DVECTOR &pos)
+bool CD3DEngine::SetObjectShadowPos(int objRank, const Math::Vector &pos)
{
if ( objRank < 0 || objRank >= D3DMAXOBJECT ) return false;
@@ -2204,7 +2208,7 @@ bool CD3DEngine::SetObjectShadowPos(int objRank, const D3DVECTOR &pos)
// Specifies the normal shadow to the field of the object.
-bool CD3DEngine::SetObjectShadowNormal(int objRank, const D3DVECTOR &n)
+bool CD3DEngine::SetObjectShadowNormal(int objRank, const Math::Vector &n)
{
if ( objRank < 0 || objRank >= D3DMAXOBJECT ) return false;
@@ -2340,12 +2344,12 @@ int CD3DEngine::GroundSpotCreate()
void CD3DEngine::GroundSpotDelete(int rank)
{
m_groundSpot[rank].bUsed = false;
- m_groundSpot[rank].pos = D3DVECTOR(0.0f, 0.0f, 0.0f);
+ m_groundSpot[rank].pos = Math::Vector(0.0f, 0.0f, 0.0f);
}
// Specifies the position of surface marking of the object.
-bool CD3DEngine::SetObjectGroundSpotPos(int rank, const D3DVECTOR &pos)
+bool CD3DEngine::SetObjectGroundSpotPos(int rank, const Math::Vector &pos)
{
m_groundSpot[rank].pos = pos;
return true;
@@ -2387,7 +2391,7 @@ bool CD3DEngine::SetObjectGroundSpotSmooth(int rank, float smooth)
// Creates ground marks.
-int CD3DEngine::GroundMarkCreate(D3DVECTOR pos, float radius,
+int CD3DEngine::GroundMarkCreate(Math::Vector pos, float radius,
float delay1, float delay2, float delay3,
int dx, int dy, char* table)
{
@@ -2947,12 +2951,12 @@ void CD3DEngine::ApplyChange()
// Returns the point of view of the user.
-D3DVECTOR CD3DEngine::RetEyePt()
+Math::Vector CD3DEngine::RetEyePt()
{
return m_eyePt;
}
-D3DVECTOR CD3DEngine::RetLookatPt()
+Math::Vector CD3DEngine::RetLookatPt()
{
return m_lookatPt;
}
@@ -3638,7 +3642,7 @@ void CD3DEngine::RenderGroundSpot()
DDSURFACEDESC2 ddsd;
WORD* pbSurf;
D3DCOLORVALUE color;
- D3DVECTOR pos;
+ Math::Vector pos;
Math::Point min, max;
int s, i, j, dot, ix, iy, y;
float tu, tv, cx, cy, px, py, ppx, ppy;
@@ -3780,7 +3784,7 @@ void CD3DEngine::RenderGroundSpot()
}
else
{
- intensity = Length(ppx-cx, ppy-cy)/dot;
+ intensity = Math::Point(ppx-cx, ppy-cy).Length()/dot;
//? intensity = powf(intensity, m_groundSpot[i].smooth);
}
@@ -3859,7 +3863,7 @@ void CD3DEngine::RenderGroundSpot()
ppx -= min.x; // on the texture
ppy -= min.y;
- intensity = 1.0f-Length((float)ix, (float)iy)/dot;
+ intensity = 1.0f-Math::Point((float)ix, (float)iy).Length()/dot;
if ( intensity <= 0.0f ) continue;
intensity *= m_groundMark.intensity;
@@ -3912,9 +3916,9 @@ void CD3DEngine::RenderGroundSpot()
void CD3DEngine::DrawShadow()
{
D3DVERTEX2 vertex[4]; // 2 triangles
- D3DVECTOR corner[4], n, pos;
+ Math::Vector corner[4], n, pos;
D3DMATERIAL7 material;
- D3DMATRIX matrix;
+ Math::Matrix matrix;
Math::Point ts, ti, rot;
float startDeepView, endDeepView;
float intensity, lastIntensity, hFactor, radius, max, height;
@@ -3924,8 +3928,11 @@ void CD3DEngine::DrawShadow()
m_pD3DDevice->SetRenderState(D3DRENDERSTATE_ZWRITEENABLE, false);
m_pD3DDevice->SetRenderState(D3DRENDERSTATE_LIGHTING, false);
- D3DUtil_SetIdentityMatrix(matrix);
- m_pD3DDevice->SetTransform(D3DTRANSFORMSTATE_WORLD, &matrix);
+ matrix.LoadIdentity();
+ {
+ D3DMATRIX mat = MAT_TO_D3DMAT(matrix);
+ m_pD3DDevice->SetTransform(D3DTRANSFORMSTATE_WORLD, &mat);
+ }
ZeroMemory( &material, sizeof(D3DMATERIAL7) );
material.diffuse.r = 1.0f;
@@ -3948,7 +3955,7 @@ void CD3DEngine::DrawShadow()
ts.y += dp;
ti.y -= dp;
- n = D3DVECTOR(0.0f, 1.0f, 0.0f);
+ n = Math::Vector(0.0f, 1.0f, 0.0f);
startDeepView = m_deepView[m_rankView]*m_fogStart[m_rankView];
endDeepView = m_deepView[m_rankView];
@@ -3973,7 +3980,7 @@ void CD3DEngine::DrawShadow()
if ( h > max ) h = max;
if ( h > 4.0f ) h = 4.0f;
- D = Length(m_eyePt, pos);
+ D = Math::Distance(m_eyePt, pos);
if ( D >= endDeepView ) continue;
d = D*h/height;
@@ -3989,7 +3996,7 @@ void CD3DEngine::DrawShadow()
if ( h > max ) h = max;
if ( h > 4.0f ) h = 4.0f;
- D = Length(m_eyePt, pos);
+ D = Math::Distance(m_eyePt, pos);
if ( D >= endDeepView ) continue;
d = D*h/height;
@@ -4065,10 +4072,10 @@ void CD3DEngine::DrawShadow()
}
}
- corner[0] = Cross(corner[0], m_shadow[i].normal);
- corner[1] = Cross(corner[1], m_shadow[i].normal);
- corner[2] = Cross(corner[2], m_shadow[i].normal);
- corner[3] = Cross(corner[3], m_shadow[i].normal);
+ corner[0] = Math::CrossProduct(corner[0], m_shadow[i].normal);
+ corner[1] = Math::CrossProduct(corner[1], m_shadow[i].normal);
+ corner[2] = Math::CrossProduct(corner[2], m_shadow[i].normal);
+ corner[3] = Math::CrossProduct(corner[3], m_shadow[i].normal);
corner[0] += pos;
corner[1] += pos;
@@ -4172,7 +4179,10 @@ HRESULT CD3DEngine::Render()
m_pD3DDevice->SetRenderState(D3DRENDERSTATE_ZENABLE, true);
//? m_pD3DDevice->SetRenderState(D3DRENDERSTATE_ZBIAS, F2DW(16));
//? m_pD3DDevice->SetRenderState(D3DRENDERSTATE_ZFUNC, D3DCMP_LESSEQUAL);
- m_pD3DDevice->SetTransform(D3DTRANSFORMSTATE_PROJECTION, &m_matProj);
+ {
+ D3DMATRIX mat = MAT_TO_D3DMAT(m_matProj);
+ m_pD3DDevice->SetTransform(D3DTRANSFORMSTATE_PROJECTION, &mat);
+ }
m_pD3DDevice->SetRenderState(D3DRENDERSTATE_LIGHTING, true);
m_pD3DDevice->SetRenderState(D3DRENDERSTATE_FOGENABLE, true);
@@ -4181,7 +4191,10 @@ HRESULT CD3DEngine::Render()
m_pD3DDevice->SetRenderState(D3DRENDERSTATE_FOGSTART, F2DW(m_deepView[m_rankView]*m_fogStart[m_rankView]));
m_pD3DDevice->SetRenderState(D3DRENDERSTATE_FOGEND, F2DW(m_deepView[m_rankView]));
- m_pD3DDevice->SetTransform(D3DTRANSFORMSTATE_VIEW, &m_matView);
+ {
+ D3DMATRIX mat = MAT_TO_D3DMAT(m_matView);
+ m_pD3DDevice->SetTransform(D3DTRANSFORMSTATE_VIEW, &mat);
+ }
if ( m_bWaterMode ) m_water->DrawBack(); // draws water
@@ -4202,8 +4215,12 @@ HRESULT CD3DEngine::Render()
objRank = p3->objRank;
if ( m_objectParam[objRank].type != TYPETERRAIN ) continue;
if ( !m_objectParam[objRank].bDrawWorld ) continue;
- m_pD3DDevice->SetTransform(D3DTRANSFORMSTATE_WORLD,
- &m_objectParam[objRank].transform);
+
+ {
+ D3DMATRIX mat = MAT_TO_D3DMAT(m_objectParam[objRank].transform);
+ m_pD3DDevice->SetTransform(D3DTRANSFORMSTATE_WORLD, &mat);
+ }
+
if ( !IsVisible(objRank) ) continue;
m_light->LightUpdate(m_objectParam[objRank].type);
for ( l3=0 ; l3<p3->totalUsed ; l3++ )
@@ -4265,8 +4282,12 @@ HRESULT CD3DEngine::Render()
objRank = p3->objRank;
if ( m_bShadow && m_objectParam[objRank].type == TYPETERRAIN ) continue;
if ( !m_objectParam[objRank].bDrawWorld ) continue;
- m_pD3DDevice->SetTransform(D3DTRANSFORMSTATE_WORLD,
- &m_objectParam[objRank].transform);
+
+ {
+ D3DMATRIX mat = MAT_TO_D3DMAT(m_objectParam[objRank].transform);
+ m_pD3DDevice->SetTransform(D3DTRANSFORMSTATE_WORLD, &mat);
+ }
+
if ( !IsVisible(objRank) ) continue;
m_light->LightUpdate(m_objectParam[objRank].type);
for ( l3=0 ; l3<p3->totalUsed ; l3++ )
@@ -4342,8 +4363,12 @@ HRESULT CD3DEngine::Render()
objRank = p3->objRank;
if ( m_bShadow && m_objectParam[objRank].type == TYPETERRAIN ) continue;
if ( !m_objectParam[objRank].bDrawWorld ) continue;
- m_pD3DDevice->SetTransform(D3DTRANSFORMSTATE_WORLD,
- &m_objectParam[objRank].transform);
+
+ {
+ D3DMATRIX mat = MAT_TO_D3DMAT(m_objectParam[objRank].transform);
+ m_pD3DDevice->SetTransform(D3DTRANSFORMSTATE_WORLD, &mat);
+ }
+
if ( !IsVisible(objRank) ) continue;
m_light->LightUpdate(m_objectParam[objRank].type);
for ( l3=0 ; l3<p3->totalUsed ; l3++ )
@@ -4404,9 +4429,18 @@ HRESULT CD3DEngine::Render()
m_pD3DDevice->SetRenderState(D3DRENDERSTATE_LIGHTING, false);
m_pD3DDevice->SetRenderState(D3DRENDERSTATE_FOGENABLE, false);
- m_pD3DDevice->SetTransform(D3DTRANSFORMSTATE_VIEW, &m_matViewInterface);
- m_pD3DDevice->SetTransform(D3DTRANSFORMSTATE_PROJECTION, &m_matProjInterface);
- m_pD3DDevice->SetTransform(D3DTRANSFORMSTATE_WORLD, &m_matWorldInterface);
+ {
+ D3DMATRIX mat = MAT_TO_D3DMAT(m_matViewInterface);
+ m_pD3DDevice->SetTransform(D3DTRANSFORMSTATE_VIEW, &mat);
+ }
+ {
+ D3DMATRIX mat = MAT_TO_D3DMAT(m_matProjInterface);
+ m_pD3DDevice->SetTransform(D3DTRANSFORMSTATE_PROJECTION, &mat);
+ }
+ {
+ D3DMATRIX mat = MAT_TO_D3DMAT(m_matWorldInterface);
+ m_pD3DDevice->SetTransform(D3DTRANSFORMSTATE_WORLD, &mat);
+ }
pInterface = (CInterface*)m_iMan->SearchInstance(CLASS_INTERFACE);
if ( pInterface != 0 )
@@ -4421,7 +4455,10 @@ HRESULT CD3DEngine::Render()
m_pD3DDevice->SetRenderState(D3DRENDERSTATE_ZENABLE, true);
//? m_pD3DDevice->SetRenderState(D3DRENDERSTATE_ZBIAS, F2DW(16));
//? m_pD3DDevice->SetRenderState(D3DRENDERSTATE_ZFUNC, D3DCMP_LESSEQUAL);
- m_pD3DDevice->SetTransform(D3DTRANSFORMSTATE_PROJECTION, &m_matProj);
+ {
+ D3DMATRIX mat = MAT_TO_D3DMAT(m_matProj);
+ m_pD3DDevice->SetTransform(D3DTRANSFORMSTATE_PROJECTION, &mat);
+ }
m_pD3DDevice->SetRenderState(D3DRENDERSTATE_AMBIENT, m_ambiantColor[m_rankView]);
m_pD3DDevice->SetRenderState(D3DRENDERSTATE_LIGHTING, true);
@@ -4431,7 +4468,10 @@ HRESULT CD3DEngine::Render()
m_pD3DDevice->SetRenderState(D3DRENDERSTATE_FOGSTART, F2DW(m_deepView[m_rankView]*m_fogStart[m_rankView]));
m_pD3DDevice->SetRenderState(D3DRENDERSTATE_FOGEND, F2DW(m_deepView[m_rankView]));
- m_pD3DDevice->SetTransform(D3DTRANSFORMSTATE_VIEW, &m_matView);
+ {
+ D3DMATRIX mat = MAT_TO_D3DMAT(m_matView);
+ m_pD3DDevice->SetTransform(D3DTRANSFORMSTATE_VIEW, &mat);
+ }
p1 = m_objectPointer;
for ( l1=0 ; l1<p1->totalUsed ; l1++ )
@@ -4446,8 +4486,12 @@ HRESULT CD3DEngine::Render()
if ( p3 == 0 ) continue;
objRank = p3->objRank;
if ( !m_objectParam[objRank].bDrawFront ) continue;
- m_pD3DDevice->SetTransform(D3DTRANSFORMSTATE_WORLD,
- &m_objectParam[objRank].transform);
+
+ {
+ D3DMATRIX mat = MAT_TO_D3DMAT(m_objectParam[objRank].transform);
+ m_pD3DDevice->SetTransform(D3DTRANSFORMSTATE_WORLD, &mat);
+ }
+
if ( !IsVisible(objRank) ) continue;
m_light->LightUpdate(m_objectParam[objRank].type);
for ( l3=0 ; l3<p3->totalUsed ; l3++ )
@@ -4497,9 +4541,18 @@ HRESULT CD3DEngine::Render()
m_pD3DDevice->SetRenderState(D3DRENDERSTATE_LIGHTING, false);
m_pD3DDevice->SetRenderState(D3DRENDERSTATE_FOGENABLE, false);
- m_pD3DDevice->SetTransform(D3DTRANSFORMSTATE_VIEW, &m_matViewInterface);
- m_pD3DDevice->SetTransform(D3DTRANSFORMSTATE_PROJECTION, &m_matProjInterface);
- m_pD3DDevice->SetTransform(D3DTRANSFORMSTATE_WORLD, &m_matWorldInterface);
+ {
+ D3DMATRIX mat = MAT_TO_D3DMAT(m_matViewInterface);
+ m_pD3DDevice->SetTransform(D3DTRANSFORMSTATE_VIEW, &mat);
+ }
+ {
+ D3DMATRIX mat = MAT_TO_D3DMAT(m_matProjInterface);
+ m_pD3DDevice->SetTransform(D3DTRANSFORMSTATE_PROJECTION, &mat);
+ }
+ {
+ D3DMATRIX mat = MAT_TO_D3DMAT(m_matWorldInterface);
+ m_pD3DDevice->SetTransform(D3DTRANSFORMSTATE_WORLD, &mat);
+ }
}
if ( m_bOverFront ) DrawOverColor(); // draws the foreground color
@@ -4568,9 +4621,18 @@ void CD3DEngine::DrawBackgroundGradient(D3DCOLOR up, D3DCOLOR down)
SetTexture("xxx.tga"); // no texture
SetState(D3DSTATENORMAL);
- m_pD3DDevice->SetTransform(D3DTRANSFORMSTATE_VIEW, &m_matViewInterface);
- m_pD3DDevice->SetTransform(D3DTRANSFORMSTATE_PROJECTION, &m_matProjInterface);
- m_pD3DDevice->SetTransform(D3DTRANSFORMSTATE_WORLD, &m_matWorldInterface);
+ {
+ D3DMATRIX mat = MAT_TO_D3DMAT(m_matViewInterface);
+ m_pD3DDevice->SetTransform(D3DTRANSFORMSTATE_VIEW, &mat);
+ }
+ {
+ D3DMATRIX mat = MAT_TO_D3DMAT(m_matProjInterface);
+ m_pD3DDevice->SetTransform(D3DTRANSFORMSTATE_PROJECTION, &mat);
+ }
+ {
+ D3DMATRIX mat = MAT_TO_D3DMAT(m_matWorldInterface);
+ m_pD3DDevice->SetTransform(D3DTRANSFORMSTATE_WORLD, &mat);
+ }
vertex[0] = D3DLVERTEX(D3DVECTOR(p1.x, p1.y, 0.0f), color[1],color[2], 0.0f,0.0f);
vertex[1] = D3DLVERTEX(D3DVECTOR(p1.x, p2.y, 0.0f), color[0],color[2], 0.0f,0.0f);
@@ -4586,10 +4648,10 @@ void CD3DEngine::DrawBackgroundGradient(D3DCOLOR up, D3DCOLOR down)
void CD3DEngine::DrawBackgroundImageQuarter(Math::Point p1, Math::Point p2, char *name)
{
D3DVERTEX2 vertex[4]; // 2 triangles
- D3DVECTOR n;
+ Math::Vector n;
float u1, u2, v1, v2, h, a;
- n = D3DVECTOR(0.0f, 0.0f, -1.0f); // normal
+ n = Math::Vector(0.0f, 0.0f, -1.0f); // normal
if ( m_bBackgroundFull )
{
@@ -4632,14 +4694,23 @@ void CD3DEngine::DrawBackgroundImageQuarter(Math::Point p1, Math::Point p2, char
SetTexture(name);
SetState(D3DSTATEWRAP);
- m_pD3DDevice->SetTransform(D3DTRANSFORMSTATE_VIEW, &m_matViewInterface);
- m_pD3DDevice->SetTransform(D3DTRANSFORMSTATE_PROJECTION, &m_matProjInterface);
- m_pD3DDevice->SetTransform(D3DTRANSFORMSTATE_WORLD, &m_matWorldInterface);
+ {
+ D3DMATRIX mat = MAT_TO_D3DMAT(m_matViewInterface);
+ m_pD3DDevice->SetTransform(D3DTRANSFORMSTATE_VIEW, &mat);
+ }
+ {
+ D3DMATRIX mat = MAT_TO_D3DMAT(m_matProjInterface);
+ m_pD3DDevice->SetTransform(D3DTRANSFORMSTATE_PROJECTION, &mat);
+ }
+ {
+ D3DMATRIX mat = MAT_TO_D3DMAT(m_matWorldInterface);
+ m_pD3DDevice->SetTransform(D3DTRANSFORMSTATE_WORLD, &mat);
+ }
- vertex[0] = D3DVERTEX2(D3DVECTOR(p1.x, p1.y, 0.0f), n, u1,v2);
- vertex[1] = D3DVERTEX2(D3DVECTOR(p1.x, p2.y, 0.0f), n, u1,v1);
- vertex[2] = D3DVERTEX2(D3DVECTOR(p2.x, p1.y, 0.0f), n, u2,v2);
- vertex[3] = D3DVERTEX2(D3DVECTOR(p2.x, p2.y, 0.0f), n, u2,v1);
+ vertex[0] = D3DVERTEX2(Math::Vector(p1.x, p1.y, 0.0f), n, u1,v2);
+ vertex[1] = D3DVERTEX2(Math::Vector(p1.x, p2.y, 0.0f), n, u1,v1);
+ vertex[2] = D3DVERTEX2(Math::Vector(p2.x, p1.y, 0.0f), n, u2,v2);
+ vertex[3] = D3DVERTEX2(Math::Vector(p2.x, p2.y, 0.0f), n, u2,v1);
m_pD3DDevice->DrawPrimitive(D3DPT_TRIANGLESTRIP, D3DFVF_VERTEX2, vertex, 4, NULL);
AddStatisticTriangle(2);
@@ -4704,9 +4775,18 @@ void CD3DEngine::DrawPlanet()
m_pD3DDevice->SetRenderState(D3DRENDERSTATE_LIGHTING, false );
m_pD3DDevice->SetRenderState(D3DRENDERSTATE_FOGENABLE, false);
- m_pD3DDevice->SetTransform(D3DTRANSFORMSTATE_VIEW, &m_matViewInterface);
- m_pD3DDevice->SetTransform(D3DTRANSFORMSTATE_PROJECTION, &m_matProjInterface);
- m_pD3DDevice->SetTransform(D3DTRANSFORMSTATE_WORLD, &m_matWorldInterface);
+ {
+ D3DMATRIX mat = MAT_TO_D3DMAT(m_matViewInterface);
+ m_pD3DDevice->SetTransform(D3DTRANSFORMSTATE_VIEW, &mat);
+ }
+ {
+ D3DMATRIX mat = MAT_TO_D3DMAT(m_matProjInterface);
+ m_pD3DDevice->SetTransform(D3DTRANSFORMSTATE_PROJECTION, &mat);
+ }
+ {
+ D3DMATRIX mat = MAT_TO_D3DMAT(m_matWorldInterface);
+ m_pD3DDevice->SetTransform(D3DTRANSFORMSTATE_WORLD, &mat);
+ }
m_planet->Draw(); // draws the planets
}
@@ -4716,13 +4796,13 @@ void CD3DEngine::DrawPlanet()
void CD3DEngine::DrawFrontsize()
{
D3DVERTEX2 vertex[4]; // 2 triangles
- D3DVECTOR n;
+ Math::Vector n;
Math::Point p1, p2;
float u1, u2, v1, v2;
if ( m_frontsizeName[0] == 0 ) return;
- n = D3DVECTOR(0.0f, 0.0f, -1.0f); // normal
+ n = Math::Vector(0.0f, 0.0f, -1.0f); // normal
p1.x = 0.0f;
p1.y = 0.0f;
@@ -4741,10 +4821,10 @@ void CD3DEngine::DrawFrontsize()
SetInfoText(3, s);
#endif
- vertex[0] = D3DVERTEX2(D3DVECTOR(p1.x, p1.y, 0.0f), n, u1,v2);
- vertex[1] = D3DVERTEX2(D3DVECTOR(p1.x, p2.y, 0.0f), n, u1,v1);
- vertex[2] = D3DVERTEX2(D3DVECTOR(p2.x, p1.y, 0.0f), n, u2,v2);
- vertex[3] = D3DVERTEX2(D3DVECTOR(p2.x, p2.y, 0.0f), n, u2,v1);
+ vertex[0] = D3DVERTEX2(Math::Vector(p1.x, p1.y, 0.0f), n, u1,v2);
+ vertex[1] = D3DVERTEX2(Math::Vector(p1.x, p2.y, 0.0f), n, u1,v1);
+ vertex[2] = D3DVERTEX2(Math::Vector(p2.x, p1.y, 0.0f), n, u2,v2);
+ vertex[3] = D3DVERTEX2(Math::Vector(p2.x, p2.y, 0.0f), n, u2,v1);
//? m_pD3DDevice->SetRenderState(D3DRENDERSTATE_ZENABLE, false);
m_pD3DDevice->SetRenderState(D3DRENDERSTATE_ZWRITEENABLE, false);
@@ -4755,9 +4835,18 @@ void CD3DEngine::DrawFrontsize()
SetTexture(m_frontsizeName);
SetState(D3DSTATECLAMP|D3DSTATETTb);
- m_pD3DDevice->SetTransform(D3DTRANSFORMSTATE_VIEW, &m_matViewInterface);
- m_pD3DDevice->SetTransform(D3DTRANSFORMSTATE_PROJECTION, &m_matProjInterface);
- m_pD3DDevice->SetTransform(D3DTRANSFORMSTATE_WORLD, &m_matWorldInterface);
+ {
+ D3DMATRIX mat = MAT_TO_D3DMAT(m_matViewInterface);
+ m_pD3DDevice->SetTransform(D3DTRANSFORMSTATE_VIEW, &mat);
+ }
+ {
+ D3DMATRIX mat = MAT_TO_D3DMAT(m_matProjInterface);
+ m_pD3DDevice->SetTransform(D3DTRANSFORMSTATE_PROJECTION, &mat);
+ }
+ {
+ D3DMATRIX mat = MAT_TO_D3DMAT(m_matWorldInterface);
+ m_pD3DDevice->SetTransform(D3DTRANSFORMSTATE_WORLD, &mat);
+ }
m_pD3DDevice->DrawPrimitive(D3DPT_TRIANGLESTRIP, D3DFVF_VERTEX2, vertex, 4, NULL);
AddStatisticTriangle(2);
@@ -4793,9 +4882,18 @@ void CD3DEngine::DrawOverColor()
SetTexture("xxx.tga"); // no texture
SetState(m_overMode);
- m_pD3DDevice->SetTransform(D3DTRANSFORMSTATE_VIEW, &m_matViewInterface);
- m_pD3DDevice->SetTransform(D3DTRANSFORMSTATE_PROJECTION, &m_matProjInterface);
- m_pD3DDevice->SetTransform(D3DTRANSFORMSTATE_WORLD, &m_matWorldInterface);
+ {
+ D3DMATRIX mat = MAT_TO_D3DMAT(m_matViewInterface);
+ m_pD3DDevice->SetTransform(D3DTRANSFORMSTATE_VIEW, &mat);
+ }
+ {
+ D3DMATRIX mat = MAT_TO_D3DMAT(m_matProjInterface);
+ m_pD3DDevice->SetTransform(D3DTRANSFORMSTATE_PROJECTION, &mat);
+ }
+ {
+ D3DMATRIX mat = MAT_TO_D3DMAT(m_matWorldInterface);
+ m_pD3DDevice->SetTransform(D3DTRANSFORMSTATE_WORLD, &mat);
+ }
vertex[0] = D3DLVERTEX(D3DVECTOR(p1.x, p1.y, 0.0f), color[1],color[2], 0.0f,0.0f);
vertex[1] = D3DLVERTEX(D3DVECTOR(p1.x, p2.y, 0.0f), color[0],color[2], 0.0f,0.0f);
@@ -4825,7 +4923,7 @@ void CD3DEngine::SetHiliteRank(int *rankList)
bool CD3DEngine::GetBBox2D(int objRank, Math::Point &min, Math::Point &max)
{
- D3DVECTOR p, pp;
+ Math::Vector p, pp;
int i;
min.x = 1000000.0f;
@@ -4924,11 +5022,11 @@ int CD3DEngine::RetStatisticTriangle()
bool CD3DEngine::GetSpriteCoord(int &x, int &y)
{
D3DVIEWPORT7 vp;
- D3DVECTOR v, vv;
+ Math::Vector v, vv;
return false;
//?
- vv = D3DVECTOR(0.0f, 0.0f, 0.0f);
+ vv = Math::Vector(0.0f, 0.0f, 0.0f);
if ( !TransformPoint(v, 20*20+1, vv) ) return false;
m_pD3DDevice->GetViewport(&vp);
@@ -5328,8 +5426,8 @@ void CD3DEngine::SetFocus(float focus)
}
fAspect = ((float)m_dim.y) / m_dim.x;
-//? D3DUtil_SetProjectionMatrix(m_matProj, m_focus, fAspect, 0.5f, m_deepView[m_rankView]);
- D3DUtil_SetProjectionMatrix(m_matProj, m_focus, fAspect, 0.5f, m_deepView[0]);
+//? Math::LoadProjectionMatrix(m_matProj, m_focus, fAspect, 0.5f, m_deepView[m_rankView]);
+ Math::LoadProjectionMatrix(m_matProj, m_focus, fAspect, 0.5f, m_deepView[0]);
}
float CD3DEngine::RetFocus()
@@ -5341,7 +5439,8 @@ float CD3DEngine::RetFocus()
void CD3DEngine::UpdateMatProj()
{
- m_pD3DDevice->SetTransform(D3DTRANSFORMSTATE_PROJECTION, &m_matProj);
+ D3DMATRIX mat = MAT_TO_D3DMAT(m_matProj);
+ m_pD3DDevice->SetTransform(D3DTRANSFORMSTATE_PROJECTION, &mat);
}
@@ -5406,9 +5505,9 @@ bool CD3DEngine::RetSetupMode()
// Indicates whether a point is visible.
-bool CD3DEngine::IsVisiblePoint(const D3DVECTOR &pos)
+bool CD3DEngine::IsVisiblePoint(const Math::Vector &pos)
{
- return ( Length(m_eyePt, pos) <= m_deepView[0] );
+ return ( Math::Distance(m_eyePt, pos) <= m_deepView[0] );
}
@@ -5432,19 +5531,19 @@ HRESULT CD3DEngine::InitDeviceObjects()
SetFocus(m_focus);
// Definitions of the matrices for the interface.
- D3DUtil_SetIdentityMatrix(m_matWorldInterface);
-
- D3DUtil_SetIdentityMatrix(m_matViewInterface);
- m_matViewInterface._41 = -0.5f;
- m_matViewInterface._42 = -0.5f;
- m_matViewInterface._43 = 1.0f;
-
- D3DUtil_SetIdentityMatrix(m_matProjInterface);
- m_matProjInterface._11 = 2.0f;
- m_matProjInterface._22 = 2.0f;
- m_matProjInterface._34 = 1.0f;
- m_matProjInterface._43 = -1.0f;
- m_matProjInterface._44 = 0.0f;
+ m_matWorldInterface.LoadIdentity();
+
+ m_matViewInterface.LoadIdentity();
+ m_matViewInterface.Set(1, 4, -0.5f);
+ m_matViewInterface.Set(2, 4, -0.5f);
+ m_matViewInterface.Set(3, 4, 1.0f);
+
+ m_matProjInterface.LoadIdentity();
+ m_matProjInterface.Set(1, 1, 2.0f);
+ m_matProjInterface.Set(2, 2, 2.0f);
+ m_matProjInterface.Set(4, 3, 1.0f);
+ m_matProjInterface.Set(3, 4, -1.0f);
+ m_matProjInterface.Set(4, 4, 0.0f);
return S_OK;
}
@@ -5692,7 +5791,7 @@ void CD3DEngine::DrawSprite(Math::Point pos, Math::Point dim, int icon)
{
D3DVERTEX2 vertex[4]; // 2 triangles
Math::Point p1, p2;
- D3DVECTOR n;
+ Math::Vector n;
float u1, u2, v1, v2, dp;
if ( icon == -1 ) return;
@@ -5713,12 +5812,12 @@ void CD3DEngine::DrawSprite(Math::Point pos, Math::Point dim, int icon)
u2 -= dp;
v2 -= dp;
- n = D3DVECTOR(0.0f, 0.0f, -1.0f); // normal
+ n = Math::Vector(0.0f, 0.0f, -1.0f); // normal
- vertex[0] = D3DVERTEX2(D3DVECTOR(p1.x, p1.y, 0.0f), n, u1,v2);
- vertex[1] = D3DVERTEX2(D3DVECTOR(p1.x, p2.y, 0.0f), n, u1,v1);
- vertex[2] = D3DVERTEX2(D3DVECTOR(p2.x, p1.y, 0.0f), n, u2,v2);
- vertex[3] = D3DVERTEX2(D3DVECTOR(p2.x, p2.y, 0.0f), n, u2,v1);
+ vertex[0] = D3DVERTEX2(Math::Vector(p1.x, p1.y, 0.0f), n, u1,v2);
+ vertex[1] = D3DVERTEX2(Math::Vector(p1.x, p2.y, 0.0f), n, u1,v1);
+ vertex[2] = D3DVERTEX2(Math::Vector(p2.x, p1.y, 0.0f), n, u2,v2);
+ vertex[3] = D3DVERTEX2(Math::Vector(p2.x, p2.y, 0.0f), n, u2,v1);
m_pD3DDevice->DrawPrimitive(D3DPT_TRIANGLESTRIP, D3DFVF_VERTEX2, vertex, 4, NULL);
AddStatisticTriangle(2);
diff --git a/src/graphics/d3d/d3dengine.h b/src/graphics/d3d/d3dengine.h
index 8450f91..d028d2c 100644
--- a/src/graphics/d3d/d3dengine.h
+++ b/src/graphics/d3d/d3dengine.h
@@ -20,6 +20,8 @@
#include "math/point.h"
+#include "math/vector.h"
+#include "math/matrix.h"
#include "common/struct.h"
@@ -188,10 +190,10 @@ struct D3DObject
char bDrawFront; // true -> shape before the interface
int totalTriangle; // number of triangles used
D3DTypeObj type; // type of the object (TYPE*)
- D3DMATRIX transform; // transformation matrix
+ Math::Matrix transform; // transformation matrix
float distance; // distance point of view - original
- D3DVECTOR bboxMin; // bounding box of the object
- D3DVECTOR bboxMax; // (the origin 0, 0, 0 is always included)
+ Math::Vector bboxMin; // bounding box of the object
+ Math::Vector bboxMax; // (the origin 0, 0, 0 is always included)
float radius; // radius of the sphere at the origin
int shadowRank; // rank of the associated shadow
float transparency; // transparency of the object (0 .. 1)
@@ -203,8 +205,8 @@ struct D3DShadow
char bHide; // true -> invisible shadow (object carried by ex.)
int objRank; // rank of the object
D3DShadowType type; // type of shadow
- D3DVECTOR pos; // position for the shadow
- D3DVECTOR normal; // normal terrain
+ Math::Vector pos; // position for the shadow
+ Math::Vector normal; // normal terrain
float angle; // angle of the shadow
float radius; // radius of the shadow
float intensity; // intensity of the shadow
@@ -217,9 +219,9 @@ struct D3DGroundSpot
D3DCOLORVALUE color; // color of the shadow
float min, max; // altitudes min / max
float smooth; // transition area
- D3DVECTOR pos; // position for the shadow
+ Math::Vector pos; // position for the shadow
float radius; // radius of the shadow
- D3DVECTOR drawPos; // drawn to position the shade
+ Math::Vector drawPos; // drawn to position the shade
float drawRadius; // radius of the shadow drawn
};
@@ -230,10 +232,10 @@ struct D3DGroundMark
int phase; // 1 = increase, 2 = fixed, 3 = decrease
float delay[3]; // time for 3 phases
float fix; // fixed time
- D3DVECTOR pos; // position for marks
+ Math::Vector pos; // position for marks
float radius; // radius of marks
float intensity; // color intensity
- D3DVECTOR drawPos; // drawn in position marks
+ Math::Vector drawPos; // drawn in position marks
float drawRadius; // radius marks drawn
float drawIntensity; // current drawn
int dx, dy; // dimensions table
@@ -291,9 +293,9 @@ public:
bool RetFullScreen();
bool ChangeDevice(char *device, char *mode, bool bFull);
- D3DMATRIX* RetMatView();
- D3DMATRIX* RetMatLeftView();
- D3DMATRIX* RetMatRightView();
+ Math::Matrix* RetMatView();
+ Math::Matrix* RetMatLeftView();
+ Math::Matrix* RetMatRightView();
void TimeInit();
void TimeEnterGel();
@@ -314,11 +316,11 @@ public:
bool ChangeSecondTexture(int objRank, char* texName2);
int RetTotalTriangles(int objRank);
int GetTriangles(int objRank, float min, float max, D3DTriangle* buffer, int size, float percent);
- bool GetBBox(int objRank, D3DVECTOR &min, D3DVECTOR &max);
+ bool GetBBox(int objRank, Math::Vector &min, Math::Vector &max);
bool ChangeTextureMapping(int objRank, const D3DMATERIAL7 &mat, int state, char* texName1, char* texName2, float min, float max, D3DMaping mode, float au, float bu, float av, float bv);
bool TrackTextureMapping(int objRank, const D3DMATERIAL7 &mat, int state, char* texName1, char* texName2, float min, float max, D3DMaping mode, float pos, float factor, float tl, float ts, float tt);
- bool SetObjectTransform(int objRank, const D3DMATRIX &transform);
- bool GetObjectTransform(int objRank, D3DMATRIX &transform);
+ bool SetObjectTransform(int objRank, const Math::Matrix &transform);
+ bool GetObjectTransform(int objRank, Math::Matrix &transform);
bool SetObjectType(int objRank, D3DTypeObj type);
D3DTypeObj RetObjectType(int objRank);
bool SetObjectTransparency(int objRank, float value);
@@ -327,8 +329,8 @@ public:
void ShadowDelete(int objRank);
bool SetObjectShadowHide(int objRank, bool bHide);
bool SetObjectShadowType(int objRank, D3DShadowType type);
- bool SetObjectShadowPos(int objRank, const D3DVECTOR &pos);
- bool SetObjectShadowNormal(int objRank, const D3DVECTOR &n);
+ bool SetObjectShadowPos(int objRank, const Math::Vector &pos);
+ bool SetObjectShadowNormal(int objRank, const Math::Vector &n);
bool SetObjectShadowAngle(int objRank, float angle);
bool SetObjectShadowRadius(int objRank, float radius);
bool SetObjectShadowIntensity(int objRank, float intensity);
@@ -338,18 +340,18 @@ public:
void GroundSpotFlush();
int GroundSpotCreate();
void GroundSpotDelete(int rank);
- bool SetObjectGroundSpotPos(int rank, const D3DVECTOR &pos);
+ bool SetObjectGroundSpotPos(int rank, const Math::Vector &pos);
bool SetObjectGroundSpotRadius(int rank, float radius);
bool SetObjectGroundSpotColor(int rank, D3DCOLORVALUE color);
bool SetObjectGroundSpotMinMax(int rank, float min, float max);
bool SetObjectGroundSpotSmooth(int rank, float smooth);
- int GroundMarkCreate(D3DVECTOR pos, float radius, float delay1, float delay2, float delay3, int dx, int dy, char* table);
+ int GroundMarkCreate(Math::Vector pos, float radius, float delay1, float delay2, float delay3, int dx, int dy, char* table);
bool GroundMarkDelete(int rank);
void Update();
- void SetViewParams(const D3DVECTOR &vEyePt, const D3DVECTOR &vLookatPt, const D3DVECTOR &vUpVec, FLOAT fEyeDistance);
+ void SetViewParams(const Math::Vector &vEyePt, const Math::Vector &vLookatPt, const Math::Vector &vUpVec, FLOAT fEyeDistance);
bool FreeTexture(char* name);
bool LoadTexture(char* name, int stage=0);
@@ -454,8 +456,8 @@ public:
void SetFocus(float focus);
float RetFocus();
- D3DVECTOR RetEyePt();
- D3DVECTOR RetLookatPt();
+ Math::Vector RetEyePt();
+ Math::Vector RetLookatPt();
float RetEyeDirH();
float RetEyeDirV();
POINT RetDim();
@@ -475,7 +477,7 @@ public:
bool RetDebugMode();
bool RetSetupMode();
- bool IsVisiblePoint(const D3DVECTOR &pos);
+ bool IsVisiblePoint(const Math::Vector &pos);
int DetectObject(Math::Point mouse);
void SetState(int state, D3DCOLOR color=0xffffffff);
@@ -525,7 +527,7 @@ protected:
bool IsVisible(int objRank);
bool DetectBBox(int objRank, Math::Point mouse);
bool DetectTriangle(Math::Point mouse, D3DVERTEX2 *triangle, int objRank, float &dist);
- bool TransformPoint(D3DVECTOR &p2D, int objRank, D3DVECTOR p3D);
+ bool TransformPoint(Math::Vector &p2D, int objRank, Math::Vector p3D);
void ComputeDistance();
void UpdateGeometry();
void RenderGroundSpot();
@@ -565,15 +567,15 @@ protected:
int m_alphaSrcBlend[2];
int m_alphaDestBlend[2];
- D3DMATRIX m_matProj;
- D3DMATRIX m_matLeftView;
- D3DMATRIX m_matRightView;
- D3DMATRIX m_matView;
+ Math::Matrix m_matProj;
+ Math::Matrix m_matLeftView;
+ Math::Matrix m_matRightView;
+ Math::Matrix m_matView;
float m_focus;
- D3DMATRIX m_matWorldInterface;
- D3DMATRIX m_matProjInterface;
- D3DMATRIX m_matViewInterface;
+ Math::Matrix m_matWorldInterface;
+ Math::Matrix m_matProjInterface;
+ Math::Matrix m_matViewInterface;
DWORD m_baseTime;
DWORD m_stopTime;
@@ -593,8 +595,8 @@ protected:
D3DShadow* m_shadow;
D3DGroundSpot* m_groundSpot;
D3DGroundMark m_groundMark;
- D3DVECTOR m_eyePt;
- D3DVECTOR m_lookatPt;
+ Math::Vector m_eyePt;
+ Math::Vector m_lookatPt;
float m_eyeDirH;
float m_eyeDirV;
int m_rankView;
diff --git a/src/math/matrix.h b/src/math/matrix.h
index 5b098d7..35871cf 100644
--- a/src/math/matrix.h
+++ b/src/math/matrix.h
@@ -91,6 +91,16 @@ struct Matrix
}
}
+ inline void Set(int row, int col, float value)
+ {
+ m[(col-1)*4+(row-1)] = value;
+ }
+
+ inline float Get(int row, int col)
+ {
+ return m[(col-1)*4+(row-1)];
+ }
+
//! Loads the zero matrix
inline void LoadZero()
{
diff --git a/src/math/old/math3d.cpp b/src/math/old/math3d.cpp
index 05154fe..a9d67f2 100644
--- a/src/math/old/math3d.cpp
+++ b/src/math/old/math3d.cpp
@@ -125,6 +125,65 @@ float Smooth(float actual, float hope, float time);
float Bounce(float progress, float middle=0.3f, float bounce=0.4f);
+//>>> geometry.h SegmentPoint()
+D3DVECTOR SegmentDist(const D3DVECTOR &p1, const D3DVECTOR &p2, float dist);
+
+//>>> geometry.h Intersect()
+bool Intersect(D3DVECTOR a, D3DVECTOR b, D3DVECTOR c, D3DVECTOR d, D3DVECTOR e, D3DVECTOR &i);
+
+//>>> geometry.h IntersectY()
+bool IntersectY(D3DVECTOR a, D3DVECTOR b, D3DVECTOR c, D3DVECTOR &p);
+
+//>>> geometry.h RotatePoint()
+void RotatePoint(D3DVECTOR center, float angleH, float angleV, D3DVECTOR &p);
+
+//>>> geometry.h RotatePoint2()
+void RotatePoint2(D3DVECTOR center, float angleH, float angleV, D3DVECTOR &p);
+
+//>>> geometry.h RotateView()
+D3DVECTOR RotateView(D3DVECTOR center, float angleH, float angleV, float dist);
+
+//>>> geometry.h LookatPoint()
+D3DVECTOR LookatPoint( D3DVECTOR eye, float angleH, float angleV, float length );
+
+//>>> vector.h Vector::Length()
+float Length(const D3DVECTOR &u);
+
+//>>> vector.h Distance()
+float Length(const D3DVECTOR &a, const D3DVECTOR &b);
+
+//>>> geometry.h DistanceProjected()
+float Length2d(const D3DVECTOR &a, const D3DVECTOR &b);
+
+//>>> vector.h Angle()
+float Angle( D3DVECTOR u, D3DVECTOR v );
+
+//>>> vector.h CrossProduct()
+D3DVECTOR Cross( D3DVECTOR u, D3DVECTOR v );
+
+//>>> geometry.h NormalToPlane()
+D3DVECTOR ComputeNormal( D3DVECTOR p1, D3DVECTOR p2, D3DVECTOR p3 );
+
+//>>> geometry.h Transform()
+D3DVECTOR Transform(const D3DMATRIX &m, D3DVECTOR p);
+
+//>>> geometry.h Projection()
+D3DVECTOR Projection(const D3DVECTOR &a, const D3DVECTOR &b, const D3DVECTOR &p);
+
+//>>> geometry.h DistanceToPlane()
+float DistancePlanPoint(const D3DVECTOR &a, const D3DVECTOR &b, const D3DVECTOR &c, const D3DVECTOR &p);
+
+//>>> geometry.h IsSamePlane()
+bool IsSamePlane(D3DVECTOR *plan1, D3DVECTOR *plan2);
+
+//>>> geometry.h LoadRotationXZYMatrix()
+void MatRotateXZY(D3DMATRIX &mat, D3DVECTOR angle);
+
+//>>> geometry.h LoadRotationZXYMatrix()
+void MatRotateZXY(D3DMATRIX &mat, D3DVECTOR angle);
+
+
+
// UNUSED
float MidPoint(FPOINT a, FPOINT b, float px);
diff --git a/src/math/old/math3d.h b/src/math/old/math3d.h
index 0a3ddc1..5ef6f43 100644
--- a/src/math/old/math3d.h
+++ b/src/math/old/math3d.h
@@ -24,77 +24,12 @@
#include "common/struct.h"
-//>>> geometry.h SegmentPoint()
-D3DVECTOR SegmentDist(const D3DVECTOR &p1, const D3DVECTOR &p2, float dist);
-
-//>>> geometry.h Intersect()
-bool Intersect(D3DVECTOR a, D3DVECTOR b, D3DVECTOR c, D3DVECTOR d, D3DVECTOR e, D3DVECTOR &i);
-
-//>>> geometry.h IntersectY()
-bool IntersectY(D3DVECTOR a, D3DVECTOR b, D3DVECTOR c, D3DVECTOR &p);
-
-//>>> geometry.h RotatePoint()
-void RotatePoint(D3DVECTOR center, float angleH, float angleV, D3DVECTOR &p);
-
-//>>> geometry.h RotatePoint2()
-void RotatePoint2(D3DVECTOR center, float angleH, float angleV, D3DVECTOR &p);
-
-//>>> geometry.h RotateView()
-// TODO test & verify
-D3DVECTOR RotateView(D3DVECTOR center, float angleH, float angleV, float dist);
-
-//>>> geometry.h LookatPoint()
-// TODO test & verify
-D3DVECTOR LookatPoint( D3DVECTOR eye, float angleH, float angleV, float length );
-
-//>>> vector.h Vector::Length()
-float Length(const D3DVECTOR &u);
-
-//>>> vector.h Distance()
-float Length(const D3DVECTOR &a, const D3DVECTOR &b);
-
-//>>> geometry.h DistanceProjected()
-float Length2d(const D3DVECTOR &a, const D3DVECTOR &b);
-
-//>>> vector.h Angle()
-// TODO test & verify
-float Angle( D3DVECTOR u, D3DVECTOR v );
-
-//>>> vector.h CrossProduct()
-D3DVECTOR Cross( D3DVECTOR u, D3DVECTOR v );
-
-//>>> geometry.h NormalToPlane()
-D3DVECTOR ComputeNormal( D3DVECTOR p1, D3DVECTOR p2, D3DVECTOR p3 );
-
-//>>> geometry.h Transform()
-// TODO test & verify
-D3DVECTOR Transform(const D3DMATRIX &m, D3DVECTOR p);
-
-//>>> geometry.h Projection()
-// TODO test & verify
-D3DVECTOR Projection(const D3DVECTOR &a, const D3DVECTOR &b, const D3DVECTOR &p);
-
// TODO
void MappingObject( D3DVERTEX2* pVertices, int nb, float scale );
// TODO
void SmoothObject( D3DVERTEX2* pVertices, int nb );
-//>>> geometry.h DistanceToPlane()
-float DistancePlanPoint(const D3DVECTOR &a, const D3DVECTOR &b, const D3DVECTOR &c, const D3DVECTOR &p);
-
-//>>> geometry.h IsSamePlane()
-bool IsSamePlane(D3DVECTOR *plan1, D3DVECTOR *plan2);
-
-//>>> geometry.h LoadRotationXZYMatrix()
-// TODO test & verify
-void MatRotateXZY(D3DMATRIX &mat, D3DVECTOR angle);
-
-//>>> geometry.h LoadRotationZXYMatrix()
-// TODO test & verify
-void MatRotateZXY(D3DMATRIX &mat, D3DVECTOR angle);
-
-
// TODO
D3DCOLOR RetColor(float intensity);
diff --git a/src/object/auto/autobase.cpp b/src/object/auto/autobase.cpp
index 2091091..abd231f 100644
--- a/src/object/auto/autobase.cpp
+++ b/src/object/auto/autobase.cpp
@@ -127,10 +127,10 @@ void CAutoBase::Start(int param)
bool CAutoBase::EventProcess(const Event &event)
{
- D3DMATRIX* mat;
+ Math::Matrix* mat;
Event newEvent;
CObject* pObj;
- D3DVECTOR pos, speed, vibCir, iPos;
+ Math::Vector pos, speed, vibCir, iPos;
Math::Point dim, p;
Error err;
float angle, dist, time, h, len, vSpeed;
@@ -162,8 +162,8 @@ begin:
m_object->SetAngleZ(1+i, Math::PI/2.0f-124.0f*Math::PI/180.0f);
m_object->SetAngleX(10+i, -10.0f*Math::PI/180.0f);
m_object->SetAngleX(18+i, 10.0f*Math::PI/180.0f);
- m_object->SetPosition(10+i, D3DVECTOR(23.5f, 0.0f, -11.5f));
- m_object->SetPosition(18+i, D3DVECTOR(23.5f, 0.0f, 11.5f));
+ m_object->SetPosition(10+i, Math::Vector(23.5f, 0.0f, -11.5f));
+ m_object->SetPosition(18+i, Math::Vector(23.5f, 0.0f, 11.5f));
}
pObj = m_main->RetSelectObject();
@@ -193,8 +193,8 @@ begin:
m_object->SetAngleZ(1+i, Math::PI/2.0f-124.0f*Math::PI/180.0f);
m_object->SetAngleX(10+i, -10.0f*Math::PI/180.0f);
m_object->SetAngleX(18+i, 10.0f*Math::PI/180.0f);
- m_object->SetPosition(10+i, D3DVECTOR(23.5f, 0.0f, -11.5f));
- m_object->SetPosition(18+i, D3DVECTOR(23.5f, 0.0f, 11.5f));
+ m_object->SetPosition(10+i, Math::Vector(23.5f, 0.0f, -11.5f));
+ m_object->SetPosition(18+i, Math::Vector(23.5f, 0.0f, 11.5f));
}
}
@@ -280,31 +280,31 @@ begin:
BeginTransit();
mat = m_object->RetWorldMatrix(0);
- speed = D3DVECTOR(0.0f, 0.0f, 0.0f);
+ speed = Math::Vector(0.0f, 0.0f, 0.0f);
dim.x = 10.0f;
dim.y = dim.x;
- pos = D3DVECTOR(42.0f, -2.0f, 17.0f);
+ pos = Math::Vector(42.0f, -2.0f, 17.0f);
pos = Transform(*mat, pos);
m_partiChannel[0] = m_particule->CreateParticule(pos, speed, dim, PARTILENS1, BASE_TRANSIT_TIME+1.0f, 0.0f, 0.0f);
- pos = D3DVECTOR(17.0f, -2.0f, 42.0f);
+ pos = Math::Vector(17.0f, -2.0f, 42.0f);
pos = Transform(*mat, pos);
m_partiChannel[1] = m_particule->CreateParticule(pos, speed, dim, PARTILENS1, BASE_TRANSIT_TIME+1.0f, 0.0f, 0.0f);
- pos = D3DVECTOR(42.0f, -2.0f, -17.0f);
+ pos = Math::Vector(42.0f, -2.0f, -17.0f);
pos = Transform(*mat, pos);
m_partiChannel[2] = m_particule->CreateParticule(pos, speed, dim, PARTILENS1, BASE_TRANSIT_TIME+1.0f, 0.0f, 0.0f);
- pos = D3DVECTOR(17.0f, -2.0f, -42.0f);
+ pos = Math::Vector(17.0f, -2.0f, -42.0f);
pos = Transform(*mat, pos);
m_partiChannel[3] = m_particule->CreateParticule(pos, speed, dim, PARTILENS1, BASE_TRANSIT_TIME+1.0f, 0.0f, 0.0f);
- pos = D3DVECTOR(-42.0f, -2.0f, 17.0f);
+ pos = Math::Vector(-42.0f, -2.0f, 17.0f);
pos = Transform(*mat, pos);
m_partiChannel[4] = m_particule->CreateParticule(pos, speed, dim, PARTILENS1, BASE_TRANSIT_TIME+1.0f, 0.0f, 0.0f);
- pos = D3DVECTOR(-17.0f, -2.0f, 42.0f);
+ pos = Math::Vector(-17.0f, -2.0f, 42.0f);
pos = Transform(*mat, pos);
m_partiChannel[5] = m_particule->CreateParticule(pos, speed, dim, PARTILENS1, BASE_TRANSIT_TIME+1.0f, 0.0f, 0.0f);
- pos = D3DVECTOR(-42.0f, -2.0f, -17.0f);
+ pos = Math::Vector(-42.0f, -2.0f, -17.0f);
pos = Transform(*mat, pos);
m_partiChannel[6] = m_particule->CreateParticule(pos, speed, dim, PARTILENS1, BASE_TRANSIT_TIME+1.0f, 0.0f, 0.0f);
- pos = D3DVECTOR(-17.0f, -2.0f, -42.0f);
+ pos = Math::Vector(-17.0f, -2.0f, -42.0f);
pos = Transform(*mat, pos);
m_partiChannel[7] = m_particule->CreateParticule(pos, speed, dim, PARTILENS1, BASE_TRANSIT_TIME+1.0f, 0.0f, 0.0f);
@@ -459,7 +459,7 @@ begin:
m_bMotor = false; // put out the reactor
m_object->SetPosition(0, m_pos); // setting down
- m_object->SetCirVibration(D3DVECTOR(0.0f, 0.0f, 0.0f));
+ m_object->SetCirVibration(Math::Vector(0.0f, 0.0f, 0.0f));
MoveCargo(); // all cargo moves
// Impact with the ground.
@@ -471,7 +471,7 @@ begin:
pos = m_pos;
pos.x += p.x;
pos.z += p.y;
- speed = D3DVECTOR(0.0f, 0.0f, 0.0f);
+ speed = Math::Vector(0.0f, 0.0f, 0.0f);
dim.x = Math::Rand()*10.0f+10.0f;
dim.y = dim.x;
time = Math::Rand()*2.0f+1.5f;
@@ -565,7 +565,7 @@ begin:
pos = m_pos;
pos.x += p.x;
pos.z += p.y;
- speed = D3DVECTOR(0.0f, 0.0f, 0.0f);
+ speed = Math::Vector(0.0f, 0.0f, 0.0f);
dim.x = Math::Rand()*8.0f+8.0f;
dim.y = dim.x;
time = Math::Rand()*2.0f+1.5f;
@@ -589,8 +589,8 @@ begin:
len = 7.0f-m_progress*(7.0f+11.5f);
for ( i=0 ; i<8 ; i++ )
{
- m_object->SetPosition(10+i, D3DVECTOR(23.5f, 0.0f, len));
- m_object->SetPosition(18+i, D3DVECTOR(23.5f, 0.0f, -len));
+ m_object->SetPosition(10+i, Math::Vector(23.5f, 0.0f, len));
+ m_object->SetPosition(18+i, Math::Vector(23.5f, 0.0f, -len));
m_object->SetAngleX(10+i, -10.0f*Math::PI/180.0f*m_progress);
m_object->SetAngleX(18+i, 10.0f*Math::PI/180.0f*m_progress);
}
@@ -614,8 +614,8 @@ begin:
{
for ( i=0 ; i<8 ; i++ )
{
- m_object->SetPosition(10+i, D3DVECTOR(23.5f, 0.0f, -11.5f));
- m_object->SetPosition(18+i, D3DVECTOR(23.5f, 0.0f, 11.5f));
+ m_object->SetPosition(10+i, Math::Vector(23.5f, 0.0f, -11.5f));
+ m_object->SetPosition(18+i, Math::Vector(23.5f, 0.0f, 11.5f));
m_object->SetAngleX(10+i, -10.0f*Math::PI/180.0f);
m_object->SetAngleX(18+i, 10.0f*Math::PI/180.0f);
}
@@ -668,8 +668,8 @@ begin:
len = 7.0f-(1.0f-m_progress)*(7.0f+11.5f);
for ( i=0 ; i<8 ; i++ )
{
- m_object->SetPosition(10+i, D3DVECTOR(23.5f, 0.0f, len));
- m_object->SetPosition(18+i, D3DVECTOR(23.5f, 0.0f, -len));
+ m_object->SetPosition(10+i, Math::Vector(23.5f, 0.0f, len));
+ m_object->SetPosition(18+i, Math::Vector(23.5f, 0.0f, -len));
m_object->SetAngleX(10+i, -10.0f*Math::PI/180.0f*(1.0f-m_progress));
m_object->SetAngleX(18+i, 10.0f*Math::PI/180.0f*(1.0f-m_progress));
}
@@ -678,8 +678,8 @@ begin:
{
for ( i=0 ; i<8 ; i++ )
{
- m_object->SetPosition(10+i, D3DVECTOR(23.5f, 0.0f, 7.0f));
- m_object->SetPosition(18+i, D3DVECTOR(23.5f, 0.0f, -7.0f));
+ m_object->SetPosition(10+i, Math::Vector(23.5f, 0.0f, 7.0f));
+ m_object->SetPosition(18+i, Math::Vector(23.5f, 0.0f, -7.0f));
m_object->SetAngleX(10+i, 0.0f);
m_object->SetAngleX(18+i, 0.0f);
}
@@ -723,7 +723,7 @@ begin:
pos.x += p.x;
pos.z += p.y;
pos.y += 85.0f;
- speed = D3DVECTOR(0.0f, 0.0f, 0.0f);
+ speed = Math::Vector(0.0f, 0.0f, 0.0f);
dim.x = Math::Rand()*3.0f+3.0f;
dim.y = dim.x;
time = Math::Rand()*1.0f+1.0f;
@@ -912,7 +912,7 @@ begin:
pos = m_pos;
pos.x += p.x;
pos.z += p.y;
- speed = D3DVECTOR(0.0f, 0.0f, 0.0f);
+ speed = Math::Vector(0.0f, 0.0f, 0.0f);
dim.x = Math::Rand()*10.0f+10.0f;
dim.y = dim.x;
time = Math::Rand()*2.0f+1.5f;
@@ -1005,7 +1005,7 @@ begin:
if ( vSpeed < 0.0f ) vSpeed *= 1.5f;
}
- pos = D3DVECTOR(0.0f, 6.0f, 0.0f);
+ pos = Math::Vector(0.0f, 6.0f, 0.0f);
speed.x = (Math::Rand()-0.5f)*4.0f;
speed.z = (Math::Rand()-0.5f)*4.0f;
speed.y = vSpeed*0.8f-(8.0f+Math::Rand()*6.0f);
@@ -1021,72 +1021,72 @@ begin:
if ( m_phase == ABP_TRANSIT_MOVE )
{
- speed = D3DVECTOR(0.0f, 0.0f, 0.0f);
+ speed = Math::Vector(0.0f, 0.0f, 0.0f);
dim.x = 12.0f;
dim.y = dim.x;
- pos = D3DVECTOR(0.0f, 7.0f, 0.0f);
+ pos = Math::Vector(0.0f, 7.0f, 0.0f);
pos.x += (Math::Rand()-0.5f)*2.0f; pos.z += (Math::Rand()-0.5f)*2.0f;
pos = Transform(*mat, pos);
m_particule->CreateParticule(pos, speed, dim, PARTIGAS, 1.0f, 0.0f, 0.0f);
- speed = D3DVECTOR(0.0f, 0.0f, 0.0f);
+ speed = Math::Vector(0.0f, 0.0f, 0.0f);
dim.x = 4.0f;
dim.y = dim.x;
- pos = D3DVECTOR(42.0f, 0.0f, 17.0f);
+ pos = Math::Vector(42.0f, 0.0f, 17.0f);
pos.x += (Math::Rand()-0.5f)*2.0f; pos.z += (Math::Rand()-0.5f)*2.0f;
pos = Transform(*mat, pos);
m_particule->CreateParticule(pos, speed, dim, PARTIGAS, 0.5f, 0.0f, 0.0f);
- pos = D3DVECTOR(17.0f, 0.0f, 42.0f);
+ pos = Math::Vector(17.0f, 0.0f, 42.0f);
pos.x += (Math::Rand()-0.5f)*2.0f; pos.z += (Math::Rand()-0.5f)*2.0f;
pos = Transform(*mat, pos);
m_particule->CreateParticule(pos, speed, dim, PARTIGAS, 0.5f, 0.0f, 0.0f);
- pos = D3DVECTOR(42.0f, 0.0f, -17.0f);
+ pos = Math::Vector(42.0f, 0.0f, -17.0f);
pos.x += (Math::Rand()-0.5f)*2.0f; pos.z += (Math::Rand()-0.5f)*2.0f;
pos = Transform(*mat, pos);
m_particule->CreateParticule(pos, speed, dim, PARTIGAS, 0.5f, 0.0f, 0.0f);
- pos = D3DVECTOR(17.0f, 0.0f, -42.0f);
+ pos = Math::Vector(17.0f, 0.0f, -42.0f);
pos.x += (Math::Rand()-0.5f)*2.0f; pos.z += (Math::Rand()-0.5f)*2.0f;
pos = Transform(*mat, pos);
m_particule->CreateParticule(pos, speed, dim, PARTIGAS, 0.5f, 0.0f, 0.0f);
- pos = D3DVECTOR(-42.0f, 0.0f, 17.0f);
+ pos = Math::Vector(-42.0f, 0.0f, 17.0f);
pos.x += (Math::Rand()-0.5f)*2.0f; pos.z += (Math::Rand()-0.5f)*2.0f;
pos = Transform(*mat, pos);
m_particule->CreateParticule(pos, speed, dim, PARTIGAS, 0.5f, 0.0f, 0.0f);
- pos = D3DVECTOR(-17.0f, 0.0f, 42.0f);
+ pos = Math::Vector(-17.0f, 0.0f, 42.0f);
pos.x += (Math::Rand()-0.5f)*2.0f; pos.z += (Math::Rand()-0.5f)*2.0f;
pos = Transform(*mat, pos);
m_particule->CreateParticule(pos, speed, dim, PARTIGAS, 0.5f, 0.0f, 0.0f);
- pos = D3DVECTOR(-42.0f, 0.0f, -17.0f);
+ pos = Math::Vector(-42.0f, 0.0f, -17.0f);
pos.x += (Math::Rand()-0.5f)*2.0f; pos.z += (Math::Rand()-0.5f)*2.0f;
pos = Transform(*mat, pos);
m_particule->CreateParticule(pos, speed, dim, PARTIGAS, 0.5f, 0.0f, 0.0f);
- pos = D3DVECTOR(-17.0f, 0.0f, -42.0f);
+ pos = Math::Vector(-17.0f, 0.0f, -42.0f);
pos.x += (Math::Rand()-0.5f)*2.0f; pos.z += (Math::Rand()-0.5f)*2.0f;
pos = Transform(*mat, pos);
m_particule->CreateParticule(pos, speed, dim, PARTIGAS, 0.5f, 0.0f, 0.0f);
- pos = D3DVECTOR(42.0f, -2.0f, 17.0f);
+ pos = Math::Vector(42.0f, -2.0f, 17.0f);
pos = Transform(*mat, pos);
m_particule->SetPosition(m_partiChannel[0], pos);
- pos = D3DVECTOR(17.0f, -2.0f, 42.0f);
+ pos = Math::Vector(17.0f, -2.0f, 42.0f);
pos = Transform(*mat, pos);
m_particule->SetPosition(m_partiChannel[1], pos);
- pos = D3DVECTOR(42.0f, -2.0f, -17.0f);
+ pos = Math::Vector(42.0f, -2.0f, -17.0f);
pos = Transform(*mat, pos);
m_particule->SetPosition(m_partiChannel[2], pos);
- pos = D3DVECTOR(17.0f, -2.0f, -42.0f);
+ pos = Math::Vector(17.0f, -2.0f, -42.0f);
pos = Transform(*mat, pos);
m_particule->SetPosition(m_partiChannel[3], pos);
- pos = D3DVECTOR(-42.0f, -2.0f, 17.0f);
+ pos = Math::Vector(-42.0f, -2.0f, 17.0f);
pos = Transform(*mat, pos);
m_particule->SetPosition(m_partiChannel[4], pos);
- pos = D3DVECTOR(-17.0f, -2.0f, 42.0f);
+ pos = Math::Vector(-17.0f, -2.0f, 42.0f);
pos = Transform(*mat, pos);
m_particule->SetPosition(m_partiChannel[5], pos);
- pos = D3DVECTOR(-42.0f, -2.0f, -17.0f);
+ pos = Math::Vector(-42.0f, -2.0f, -17.0f);
pos = Transform(*mat, pos);
m_particule->SetPosition(m_partiChannel[6], pos);
- pos = D3DVECTOR(-17.0f, -2.0f, -42.0f);
+ pos = Math::Vector(-17.0f, -2.0f, -42.0f);
pos = Transform(*mat, pos);
m_particule->SetPosition(m_partiChannel[7], pos);
}
@@ -1140,8 +1140,8 @@ bool CAutoBase::Abort()
m_object->SetAngleZ(1+i, Math::PI/2.0f-124.0f*Math::PI/180.0f);
m_object->SetAngleX(10+i, -10.0f*Math::PI/180.0f);
m_object->SetAngleX(18+i, 10.0f*Math::PI/180.0f);
- m_object->SetPosition(10+i, D3DVECTOR(23.5f, 0.0f, -11.5f));
- m_object->SetPosition(18+i, D3DVECTOR(23.5f, 0.0f, 11.5f));
+ m_object->SetPosition(10+i, Math::Vector(23.5f, 0.0f, -11.5f));
+ m_object->SetPosition(18+i, Math::Vector(23.5f, 0.0f, 11.5f));
}
}
else
@@ -1155,15 +1155,15 @@ bool CAutoBase::Abort()
m_bOpen = true;
m_object->SetPosition(0, m_pos); // setting down
- m_object->SetCirVibration(D3DVECTOR(0.0f, 0.0f, 0.0f));
+ m_object->SetCirVibration(Math::Vector(0.0f, 0.0f, 0.0f));
MoveCargo(); // all cargo moves
for ( i=0 ; i<8 ; i++ )
{
m_object->SetAngleZ(1+i, Math::PI/2.0f-124.0f*Math::PI/180.0f);
m_object->SetAngleX(10+i, -10.0f*Math::PI/180.0f);
m_object->SetAngleX(18+i, 10.0f*Math::PI/180.0f);
- m_object->SetPosition(10+i, D3DVECTOR(23.5f, 0.0f, -11.5f));
- m_object->SetPosition(18+i, D3DVECTOR(23.5f, 0.0f, 11.5f));
+ m_object->SetPosition(10+i, Math::Vector(23.5f, 0.0f, -11.5f));
+ m_object->SetPosition(18+i, Math::Vector(23.5f, 0.0f, 11.5f));
}
m_main->SetMovieLock(false); // you can play!
@@ -1294,7 +1294,7 @@ void CAutoBase::FreezeCargo(bool bFreeze)
{
CObject* pObj;
CPhysics* physics;
- D3DVECTOR oPos;
+ Math::Vector oPos;
float dist;
int i;
@@ -1309,7 +1309,7 @@ void CAutoBase::FreezeCargo(bool bFreeze)
if ( pObj->RetTruck() != 0 ) continue; // transport object?
oPos = pObj->RetPosition(0);
- dist = Length2d(m_pos, oPos);
+ dist = Math::DistanceProjected(m_pos, oPos);
if ( dist < 32.0f )
{
if ( bFreeze )
@@ -1331,7 +1331,7 @@ void CAutoBase::FreezeCargo(bool bFreeze)
void CAutoBase::MoveCargo()
{
CObject* pObj;
- D3DVECTOR oPos, sPos;
+ Math::Vector oPos, sPos;
int i;
sPos = m_object->RetPosition(0);
@@ -1360,7 +1360,7 @@ void CAutoBase::MoveCargo()
Error CAutoBase::CheckCloseDoor()
{
CObject* pObj;
- D3DVECTOR oPos;
+ Math::Vector oPos;
ObjectType type;
float oRad, dist;
int i, j;
@@ -1379,7 +1379,7 @@ Error CAutoBase::CheckCloseDoor()
j = 0;
while ( pObj->GetCrashSphere(j++, oPos, oRad) )
{
- dist = Length2d(m_pos, oPos);
+ dist = Math::DistanceProjected(m_pos, oPos);
if ( dist+oRad > 32.0f &&
dist-oRad < 72.0f )
{
diff --git a/src/object/auto/autobase.h b/src/object/auto/autobase.h
index 513f16e..aed5a47 100644
--- a/src/object/auto/autobase.h
+++ b/src/object/auto/autobase.h
@@ -102,10 +102,10 @@ protected:
float m_lastMotorParticule;
float m_fogStart;
float m_deepView;
- D3DVECTOR m_pos;
- D3DVECTOR m_posSound;
- D3DVECTOR m_finalPos;
- D3DVECTOR m_lastPos;
+ Math::Vector m_pos;
+ Math::Vector m_posSound;
+ Math::Vector m_finalPos;
+ Math::Vector m_lastPos;
int m_param;
int m_soundChannel;
int m_partiChannel[8];
diff --git a/src/object/auto/autoconvert.cpp b/src/object/auto/autoconvert.cpp
index 75dcc9c..ef5fbb1 100644
--- a/src/object/auto/autoconvert.cpp
+++ b/src/object/auto/autoconvert.cpp
@@ -109,7 +109,7 @@ void CAutoConvert::Init()
bool CAutoConvert::EventProcess(const Event &event)
{
CObject* fret;
- D3DVECTOR pos, speed;
+ Math::Vector pos, speed;
Math::Point dim, c, p;
float angle;
@@ -230,7 +230,7 @@ bool CAutoConvert::EventProcess(const Event &event)
pos.x = p.x;
pos.z = p.y;
pos.y += 1.0f;
- speed = D3DVECTOR(0.0f, 0.0f, 0.0f);
+ speed = Math::Vector(0.0f, 0.0f, 0.0f);
dim.x = Math::Rand()*2.0f+1.0f;
dim.y = dim.x;
m_particule->CreateParticule(pos, speed, dim, PARTIGAS, 1.0f, 0.0f, 0.0f);
@@ -276,7 +276,7 @@ bool CAutoConvert::EventProcess(const Event &event)
pos.x += (Math::Rand()-0.5f)*6.0f;
pos.z += (Math::Rand()-0.5f)*6.0f;
pos.y += Math::Rand()*4.0f;
- speed = D3DVECTOR(0.0f, 0.0f, 0.0f);
+ speed = Math::Vector(0.0f, 0.0f, 0.0f);
dim.x = Math::Rand()*4.0f+3.0f;
dim.y = dim.x;
m_particule->CreateParticule(pos, speed, dim, PARTIBLUE, 1.0f, 0.0f, 0.0f);
@@ -420,7 +420,7 @@ bool CAutoConvert::Read(char *line)
CObject* CAutoConvert::SearchStone(ObjectType type)
{
CObject* pObj;
- D3DVECTOR cPos, oPos;
+ Math::Vector cPos, oPos;
ObjectType oType;
float dist;
int i;
@@ -437,7 +437,7 @@ CObject* CAutoConvert::SearchStone(ObjectType type)
if ( pObj->RetTruck() != 0 ) continue;
oPos = pObj->RetPosition(0);
- dist = Length(oPos, cPos);
+ dist = Math::Distance(oPos, cPos);
if ( dist <= 5.0f ) return pObj;
}
@@ -450,7 +450,7 @@ CObject* CAutoConvert::SearchStone(ObjectType type)
bool CAutoConvert::SearchVehicle()
{
CObject* pObj;
- D3DVECTOR cPos, oPos;
+ Math::Vector cPos, oPos;
ObjectType type;
float oRadius, dist;
int i;
@@ -505,7 +505,7 @@ bool CAutoConvert::SearchVehicle()
type != OBJECT_WORM ) continue;
if ( !pObj->GetCrashSphere(0, oPos, oRadius) ) continue;
- dist = Length(oPos, cPos)-oRadius;
+ dist = Math::Distance(oPos, cPos)-oRadius;
if ( dist < 8.0f ) return true;
}
@@ -517,7 +517,7 @@ bool CAutoConvert::SearchVehicle()
void CAutoConvert::CreateMetal()
{
- D3DVECTOR pos;
+ Math::Vector pos;
float angle;
CObject* fret;
diff --git a/src/object/auto/autoderrick.cpp b/src/object/auto/autoderrick.cpp
index 7f40da0..3e33466 100644
--- a/src/object/auto/autoderrick.cpp
+++ b/src/object/auto/autoderrick.cpp
@@ -20,6 +20,7 @@
#include <d3d.h>
#include "common/struct.h"
+#include "math/geometry.h"
#include "graphics/d3d/d3dengine.h"
#include "math/old/d3dmath.h"
#include "common/event.h"
@@ -95,8 +96,8 @@ void CAutoDerrick::DeleteObject(bool bAll)
void CAutoDerrick::Init()
{
- D3DMATRIX* mat;
- D3DVECTOR pos;
+ Math::Matrix* mat;
+ Math::Vector pos;
TerrainRes res;
pos = m_object->RetPosition(0);
@@ -133,9 +134,9 @@ void CAutoDerrick::Init()
m_lastParticule = 0.0f;
m_lastTrack = 0.0f;
- pos = D3DVECTOR(7.0f, 0.0f, 0.0f);
+ pos = Math::Vector(7.0f, 0.0f, 0.0f);
mat = m_object->RetWorldMatrix(0);
- pos = Transform(*mat, pos);
+ pos = Math::Transform(*mat, pos);
m_terrain->MoveOnFloor(pos);
m_fretPos = pos;
}
@@ -146,7 +147,7 @@ void CAutoDerrick::Init()
bool CAutoDerrick::EventProcess(const Event &event)
{
CObject* fret;
- D3DVECTOR pos, speed;
+ Math::Vector pos, speed;
Math::Point dim;
float angle, duration, factor;
@@ -345,7 +346,7 @@ bool CAutoDerrick::EventProcess(const Event &event)
pos.x += (Math::Rand()-0.5f)*5.0f;
pos.z += (Math::Rand()-0.5f)*5.0f;
pos.y += (Math::Rand()-0.5f)*5.0f;
- speed = D3DVECTOR(0.0f, 0.0f, 0.0f);
+ speed = Math::Vector(0.0f, 0.0f, 0.0f);
dim.x = 3.0f;
dim.y = dim.x;
m_particule->CreateParticule(pos, speed, dim, PARTIFIRE, 1.0f, 0.0f, 0.0f);
@@ -356,7 +357,7 @@ bool CAutoDerrick::EventProcess(const Event &event)
pos.x += (Math::Rand()-0.5f)*5.0f;
pos.z += (Math::Rand()-0.5f)*5.0f;
pos.y += Math::Rand()*2.5f;
- speed = D3DVECTOR(0.0f, 0.0f, 0.0f);
+ speed = Math::Vector(0.0f, 0.0f, 0.0f);
dim.x = 1.0f;
dim.y = dim.x;
m_particule->CreateParticule(pos, speed, dim, PARTIGLINT, 2.0f, 0.0f, 0.0f);
@@ -481,7 +482,7 @@ bool CAutoDerrick::Read(char *line)
CObject* CAutoDerrick::SearchFret()
{
CObject* pObj;
- D3DVECTOR oPos;
+ Math::Vector oPos;
ObjectType type;
int i;
@@ -504,10 +505,10 @@ CObject* CAutoDerrick::SearchFret()
// Seeks if a site is free.
-bool CAutoDerrick::SearchFree(D3DVECTOR pos)
+bool CAutoDerrick::SearchFree(Math::Vector pos)
{
CObject* pObj;
- D3DVECTOR sPos;
+ Math::Vector sPos;
ObjectType type;
float sRadius, distance;
int i, j;
@@ -523,7 +524,7 @@ bool CAutoDerrick::SearchFree(D3DVECTOR pos)
j = 0;
while ( pObj->GetCrashSphere(j++, sPos, sRadius) )
{
- distance = Length(sPos, pos);
+ distance = Math::Distance(sPos, pos);
distance -= sRadius;
if ( distance < 2.0f ) return false; // location occupied
}
@@ -534,7 +535,7 @@ bool CAutoDerrick::SearchFree(D3DVECTOR pos)
// Create a transportable object.
-void CAutoDerrick::CreateFret(D3DVECTOR pos, float angle, ObjectType type,
+void CAutoDerrick::CreateFret(Math::Vector pos, float angle, ObjectType type,
float height)
{
CObject* fret;
diff --git a/src/object/auto/autoderrick.h b/src/object/auto/autoderrick.h
index 9306a86..fb39bc3 100644
--- a/src/object/auto/autoderrick.h
+++ b/src/object/auto/autoderrick.h
@@ -63,8 +63,8 @@ public:
protected:
CObject* SearchFret();
- bool SearchFree(D3DVECTOR pos);
- void CreateFret(D3DVECTOR pos, float angle, ObjectType type, float height);
+ bool SearchFree(Math::Vector pos);
+ void CreateFret(Math::Vector pos, float angle, ObjectType type, float height);
bool ExistKey();
protected:
@@ -74,7 +74,7 @@ protected:
float m_timeVirus;
float m_lastParticule;
float m_lastTrack;
- D3DVECTOR m_fretPos;
+ Math::Vector m_fretPos;
int m_soundChannel;
bool m_bSoundFall;
};
diff --git a/src/object/auto/autodestroyer.cpp b/src/object/auto/autodestroyer.cpp
index b7c1221..76648f1 100644
--- a/src/object/auto/autodestroyer.cpp
+++ b/src/object/auto/autodestroyer.cpp
@@ -91,7 +91,7 @@ bool CAutoDestroyer::EventProcess(const Event &event)
{
CObject* scrap;
CPyro* pyro;
- D3DVECTOR pos, speed;
+ Math::Vector pos, speed;
Math::Point dim;
CAuto::EventProcess(event);
@@ -161,13 +161,13 @@ bool CAutoDestroyer::EventProcess(const Event &event)
if ( m_progress < 1.0f )
{
- pos = D3DVECTOR(0.0f, -10.0f, 0.0f);
+ pos = Math::Vector(0.0f, -10.0f, 0.0f);
pos.y = -Math::Bounce(m_progress, 0.3f)*10.0f;
m_object->SetPosition(1, pos);
}
else
{
- m_object->SetPosition(1, D3DVECTOR(0.0f, -10.0f, 0.0f));
+ m_object->SetPosition(1, Math::Vector(0.0f, -10.0f, 0.0f));
m_sound->Play(SOUND_REPAIR, m_object->RetPosition(0));
m_phase = ADEP_REPAIR;
@@ -195,13 +195,13 @@ bool CAutoDestroyer::EventProcess(const Event &event)
{
if ( m_progress < 1.0f )
{
- pos = D3DVECTOR(0.0f, -10.0f, 0.0f);
+ pos = Math::Vector(0.0f, -10.0f, 0.0f);
pos.y = -(1.0f-m_progress)*10.0f;
m_object->SetPosition(1, pos);
}
else
{
- m_object->SetPosition(1, D3DVECTOR(0.0f, 0.0f, 0.0f));
+ m_object->SetPosition(1, Math::Vector(0.0f, 0.0f, 0.0f));
m_phase = ADEP_WAIT;
m_progress = 0.0f;
@@ -248,7 +248,7 @@ bool CAutoDestroyer::CreateInterface(bool bSelect)
CObject* CAutoDestroyer::SearchPlastic()
{
CObject* pObj;
- D3DVECTOR sPos, oPos;
+ Math::Vector sPos, oPos;
ObjectType type;
float dist;
int i;
@@ -265,7 +265,7 @@ CObject* CAutoDestroyer::SearchPlastic()
type != OBJECT_SCRAP5 ) continue;
oPos = pObj->RetPosition(0);
- dist = Length(oPos, sPos);
+ dist = Math::Distance(oPos, sPos);
if ( dist <= 5.0f ) return pObj;
}
@@ -277,7 +277,7 @@ CObject* CAutoDestroyer::SearchPlastic()
bool CAutoDestroyer::SearchVehicle()
{
CObject* pObj;
- D3DVECTOR cPos, oPos;
+ Math::Vector cPos, oPos;
ObjectType type;
float oRadius, dist;
int i;
@@ -325,7 +325,7 @@ bool CAutoDestroyer::SearchVehicle()
type != OBJECT_WORM ) continue;
if ( !pObj->GetCrashSphere(0, oPos, oRadius) ) continue;
- dist = Length(oPos, cPos)-oRadius;
+ dist = Math::Distance(oPos, cPos)-oRadius;
if ( dist < 20.0f ) return true;
}
diff --git a/src/object/auto/autoegg.cpp b/src/object/auto/autoegg.cpp
index c6400f8..56a2899 100644
--- a/src/object/auto/autoegg.cpp
+++ b/src/object/auto/autoegg.cpp
@@ -20,6 +20,7 @@
#include <d3d.h>
#include "common/struct.h"
+#include "math/geometry.h"
#include "graphics/d3d/d3dengine.h"
#include "math/old/d3dmath.h"
#include "common/event.h"
@@ -283,7 +284,7 @@ CObject* CAutoEgg::SearchAlien()
{
CObject* pObj;
CObject* pBest;
- D3DVECTOR cPos, oPos;
+ Math::Vector cPos, oPos;
ObjectType type;
float dist, min;
int i;
@@ -305,7 +306,7 @@ CObject* CAutoEgg::SearchAlien()
type != OBJECT_WORM ) continue;
oPos = pObj->RetPosition(0);
- dist = Length2d(oPos, cPos);
+ dist = Math::DistanceProjected(oPos, cPos);
if ( dist < 8.0f && dist < min )
{
min = dist;
diff --git a/src/object/auto/autoenergy.cpp b/src/object/auto/autoenergy.cpp
index d4f4ce9..351db83 100644
--- a/src/object/auto/autoenergy.cpp
+++ b/src/object/auto/autoenergy.cpp
@@ -122,7 +122,7 @@ void CAutoEnergy::Init()
bool CAutoEnergy::EventProcess(const Event &event)
{
CObject* fret;
- D3DVECTOR pos, ppos, speed;
+ Math::Vector pos, ppos, speed;
Math::Point dim, c, p;
TerrainRes res;
float big;
@@ -201,7 +201,7 @@ bool CAutoEnergy::EventProcess(const Event &event)
pos = m_object->RetPosition(0);
pos.y += 4.0f;
- speed = D3DVECTOR(0.0f, 0.0f, 0.0f);
+ speed = Math::Vector(0.0f, 0.0f, 0.0f);
dim.x = 3.0f;
dim.y = dim.x;
m_partiSphere = m_particule->CreateParticule(pos, speed, dim, PARTISPHERE1, ENERGY_DELAY, 0.0f, 0.0f);
@@ -290,7 +290,7 @@ bool CAutoEnergy::EventProcess(const Event &event)
pos.x = p.x;
pos.z = p.y;
pos.y += 2.5f+Math::Rand()*3.0f;
- speed = D3DVECTOR(0.0f, 0.0f, 0.0f);
+ speed = Math::Vector(0.0f, 0.0f, 0.0f);
dim.x = Math::Rand()*2.0f+1.0f;
dim.y = dim.x;
m_particule->CreateParticule(pos, speed, dim, PARTIGLINT, 1.0f, 0.0f, 0.0f);
@@ -333,7 +333,7 @@ bool CAutoEnergy::EventProcess(const Event &event)
fret->SetZoom(0, 1.0f);
fret->SetLock(false); // usable battery
fret->SetTruck(m_object);
- fret->SetPosition(0, D3DVECTOR(0.0f, 3.0f, 0.0f));
+ fret->SetPosition(0, Math::Vector(0.0f, 3.0f, 0.0f));
m_object->SetPower(fret);
m_displayText->DisplayError(INFO_ENERGY, m_object);
@@ -408,7 +408,7 @@ CObject* CAutoEnergy::SearchMetal()
bool CAutoEnergy::SearchVehicle()
{
CObject* pObj;
- D3DVECTOR cPos, oPos;
+ Math::Vector cPos, oPos;
ObjectType type;
float oRadius, dist;
int i;
@@ -456,7 +456,7 @@ bool CAutoEnergy::SearchVehicle()
type != OBJECT_WORM ) continue;
if ( !pObj->GetCrashSphere(0, oPos, oRadius) ) continue;
- dist = Length(oPos, cPos)-oRadius;
+ dist = Math::Distance(oPos, cPos)-oRadius;
if ( dist < 10.0f ) return true;
}
@@ -469,7 +469,7 @@ bool CAutoEnergy::SearchVehicle()
void CAutoEnergy::CreatePower()
{
CObject* power;
- D3DVECTOR pos;
+ Math::Vector pos;
float angle;
pos = m_object->RetPosition(0);
@@ -494,7 +494,7 @@ void CAutoEnergy::CreatePower()
CObject* CAutoEnergy::SearchPower()
{
CObject* pObj;
- D3DVECTOR cPos, oPos;
+ Math::Vector cPos, oPos;
ObjectType type;
int i;
diff --git a/src/object/auto/autofactory.cpp b/src/object/auto/autofactory.cpp
index 1fc669f..f552440 100644
--- a/src/object/auto/autofactory.cpp
+++ b/src/object/auto/autofactory.cpp
@@ -20,6 +20,7 @@
#include <d3d.h>
#include "math/const.h"
+#include "math/geometry.h"
#include "common/struct.h"
#include "graphics/d3d/d3dengine.h"
#include "math/old/d3dmath.h"
@@ -125,9 +126,9 @@ bool CAutoFactory::EventProcess(const Event &event)
{
CObject* fret;
CObject* vehicle;
- D3DMATRIX* mat;
+ Math::Matrix* mat;
CPhysics* physics;
- D3DVECTOR pos, speed;
+ Math::Vector pos, speed;
Math::Point dim;
ObjectType type;
float zoom, angle, prog;
@@ -348,8 +349,8 @@ bool CAutoFactory::EventProcess(const Event &event)
m_particule->CreateParticule(pos, speed, dim, PARTIBLUE, 1.0f, 0.0f, 0.0f);
#else
mat = m_object->RetWorldMatrix(0);
- pos = D3DVECTOR(-12.0f, 20.0f, -4.0f); // position of chimney
- pos = Transform(*mat, pos);
+ pos = Math::Vector(-12.0f, 20.0f, -4.0f); // position of chimney
+ pos = Math::Transform(*mat, pos);
pos.y += 2.0f;
pos.x += (Math::Rand()-0.5f)*2.0f;
pos.z += (Math::Rand()-0.5f)*2.0f;
@@ -416,7 +417,7 @@ bool CAutoFactory::EventProcess(const Event &event)
pos.x += (Math::Rand()-0.5f)*10.0f;
pos.z += (Math::Rand()-0.5f)*10.0f;
pos.y += Math::Rand()*10.0f;
- speed = D3DVECTOR(0.0f, 0.0f, 0.0f);
+ speed = Math::Vector(0.0f, 0.0f, 0.0f);
dim.x = 2.0f;
dim.y = dim.x;
m_particule->CreateParticule(pos, speed, dim, PARTIGLINT, 2.0f, 0.0f, 0.0f);
@@ -459,7 +460,7 @@ bool CAutoFactory::EventProcess(const Event &event)
pos.x += (Math::Rand()-0.5f)*10.0f;
pos.z += (Math::Rand()-0.5f)*10.0f;
pos.y += Math::Rand()*10.0f;
- speed = D3DVECTOR(0.0f, 0.0f, 0.0f);
+ speed = Math::Vector(0.0f, 0.0f, 0.0f);
dim.x = 2.0f;
dim.y = dim.x;
m_particule->CreateParticule(pos, speed, dim, PARTIGLINT, 2.0f, 0.0f, 0.0f);
@@ -535,7 +536,7 @@ bool CAutoFactory::Read(char *line)
CObject* CAutoFactory::SearchFret()
{
CObject* pObj;
- D3DVECTOR oPos;
+ Math::Vector oPos;
ObjectType type;
float dist;
int i;
@@ -550,7 +551,7 @@ CObject* CAutoFactory::SearchFret()
if ( pObj->RetTruck() != 0 ) continue;
oPos = pObj->RetPosition(0);
- dist = Length(oPos, m_fretPos);
+ dist = Math::Distance(oPos, m_fretPos);
if ( dist < 8.0f ) return pObj;
}
@@ -563,7 +564,7 @@ CObject* CAutoFactory::SearchFret()
bool CAutoFactory::NearestVehicle()
{
CObject* pObj;
- D3DVECTOR cPos, oPos;
+ Math::Vector cPos, oPos;
ObjectType type;
float oRadius, dist;
int i;
@@ -611,7 +612,7 @@ bool CAutoFactory::NearestVehicle()
type != OBJECT_WORM ) continue;
if ( !pObj->GetCrashSphere(0, oPos, oRadius) ) continue;
- dist = Length(oPos, cPos)-oRadius;
+ dist = Math::Distance(oPos, cPos)-oRadius;
if ( dist < 10.0f ) return true;
}
@@ -625,9 +626,9 @@ bool CAutoFactory::NearestVehicle()
bool CAutoFactory::CreateVehicle()
{
CObject* vehicle;
- D3DMATRIX* mat;
+ Math::Matrix* mat;
CPhysics* physics;
- D3DVECTOR pos;
+ Math::Vector pos;
float angle;
char* name;
int i;
@@ -640,11 +641,11 @@ bool CAutoFactory::CreateVehicle()
m_type == OBJECT_MOBILErr ||
m_type == OBJECT_MOBILErs )
{
- pos = D3DVECTOR(2.0f, 0.0f, 0.0f);
+ pos = Math::Vector(2.0f, 0.0f, 0.0f);
}
else
{
- pos = D3DVECTOR(4.0f, 0.0f, 0.0f);
+ pos = Math::Vector(4.0f, 0.0f, 0.0f);
}
pos = Transform(*mat, pos);
@@ -680,7 +681,7 @@ bool CAutoFactory::CreateVehicle()
CObject* CAutoFactory::SearchVehicle()
{
CObject* pObj;
- D3DVECTOR oPos;
+ Math::Vector oPos;
ObjectType type;
float dist;
int i;
@@ -697,7 +698,7 @@ CObject* CAutoFactory::SearchVehicle()
if ( pObj->RetTruck() != 0 ) continue;
oPos = pObj->RetPosition(0);
- dist = Length(oPos, m_fretPos);
+ dist = Math::Distance(oPos, m_fretPos);
if ( dist < 8.0f ) return pObj;
}
diff --git a/src/object/auto/autofactory.h b/src/object/auto/autofactory.h
index 82e2a96..30692c8 100644
--- a/src/object/auto/autofactory.h
+++ b/src/object/auto/autofactory.h
@@ -76,7 +76,7 @@ protected:
float m_progress;
float m_speed;
float m_lastParticule;
- D3DVECTOR m_fretPos;
+ Math::Vector m_fretPos;
int m_channelSound;
};
diff --git a/src/object/auto/autoflag.cpp b/src/object/auto/autoflag.cpp
index c75f914..b6497eb 100644
--- a/src/object/auto/autoflag.cpp
+++ b/src/object/auto/autoflag.cpp
@@ -73,7 +73,7 @@ void CAutoFlag::DeleteObject(bool bAll)
void CAutoFlag::Init()
{
- D3DVECTOR wind;
+ Math::Vector wind;
float angle;
m_time = 0.0f;
@@ -84,7 +84,7 @@ void CAutoFlag::Init()
angle = Math::RotateAngle(wind.x, -wind.z);
m_object->SetAngleY(0, angle); // directs the flag in the wind
- m_strong = Length(wind);
+ m_strong = wind.Length();
}
diff --git a/src/object/auto/autohuston.cpp b/src/object/auto/autohuston.cpp
index 9ff5197..256d394 100644
--- a/src/object/auto/autohuston.cpp
+++ b/src/object/auto/autohuston.cpp
@@ -44,7 +44,7 @@
CAutoHuston::CAutoHuston(CInstanceManager* iMan, CObject* object)
: CAuto(iMan, object)
{
- D3DVECTOR pos;
+ Math::Vector pos;
int i;
for ( i=0 ; i<HUSTONMAXLENS ; i++ )
@@ -57,10 +57,10 @@ CAutoHuston::CAutoHuston(CInstanceManager* iMan, CObject* object)
m_lens[1].type = PARTISELR;
m_lens[2].type = PARTISELR;
m_lens[3].type = PARTISELR;
- m_lens[0].pos = pos+D3DVECTOR(0.0f+13.0f, 34.0f, 30.0f );
- m_lens[1].pos = pos+D3DVECTOR(0.0f-13.0f, 34.0f, 30.0f );
- m_lens[2].pos = pos+D3DVECTOR(0.0f , 34.0f, 30.0f+13.0f);
- m_lens[3].pos = pos+D3DVECTOR(0.0f , 34.0f, 30.0f-13.0f);
+ m_lens[0].pos = pos+Math::Vector(0.0f+13.0f, 34.0f, 30.0f );
+ m_lens[1].pos = pos+Math::Vector(0.0f-13.0f, 34.0f, 30.0f );
+ m_lens[2].pos = pos+Math::Vector(0.0f , 34.0f, 30.0f+13.0f);
+ m_lens[3].pos = pos+Math::Vector(0.0f , 34.0f, 30.0f-13.0f);
m_lens[0].dim = 4.0f;
m_lens[1].dim = 4.0f;
m_lens[2].dim = 4.0f;
@@ -77,46 +77,46 @@ CAutoHuston::CAutoHuston(CInstanceManager* iMan, CObject* object)
// Part under the radar.
i = 4;
m_lens[i].type = PARTISELR;
- m_lens[i].pos = pos+D3DVECTOR(-7.0f, 9.9f, 40.1f);
+ m_lens[i].pos = pos+Math::Vector(-7.0f, 9.9f, 40.1f);
m_lens[i].dim = 1.8f;
m_lens[i].total = 0.4f;
m_lens[i].off = 0.2f;
i ++;
m_lens[i].type = PARTISELY;
- m_lens[i].pos = pos+D3DVECTOR(-7.0f, 7.2f, 34.8f);
+ m_lens[i].pos = pos+Math::Vector(-7.0f, 7.2f, 34.8f);
m_lens[i].dim = 0.4f;
m_lens[i].total = 0.7f;
m_lens[i].off = 0.3f;
i ++;
m_lens[i].type = PARTISELY;
- m_lens[i].pos = pos+D3DVECTOR(-7.0f, 6.5f, 34.3f);
+ m_lens[i].pos = pos+Math::Vector(-7.0f, 6.5f, 34.3f);
m_lens[i].dim = 0.4f;
m_lens[i].total = 0.7f;
m_lens[i].off = 0.3f;
i ++;
m_lens[i].type = PARTISELR;
- m_lens[i].pos = pos+D3DVECTOR(-7.0f, 6.5f, 33.4f);
+ m_lens[i].pos = pos+Math::Vector(-7.0f, 6.5f, 33.4f);
m_lens[i].dim = 0.4f;
m_lens[i].total = 0.0f;
m_lens[i].off = 0.0f;
i ++;
m_lens[i].type = PARTISELR;
- m_lens[i].pos = pos+D3DVECTOR(-7.0f, 6.5f, 33.0f);
+ m_lens[i].pos = pos+Math::Vector(-7.0f, 6.5f, 33.0f);
m_lens[i].dim = 0.4f;
m_lens[i].total = 1.0f;
m_lens[i].off = 0.5f;
i ++;
m_lens[i].type = PARTISELY;
- m_lens[i].pos = pos+D3DVECTOR(-7.0f, 8.5f, 14.0f);
+ m_lens[i].pos = pos+Math::Vector(-7.0f, 8.5f, 14.0f);
m_lens[i].dim = 1.2f;
m_lens[i].total = 0.8f;
m_lens[i].off = 0.2f;
i ++;
m_lens[i].type = PARTISELR;
- m_lens[i].pos = pos+D3DVECTOR(4.0f, 6.0f, 8.6f);
+ m_lens[i].pos = pos+Math::Vector(4.0f, 6.0f, 8.6f);
m_lens[i].dim = 1.0f;
m_lens[i].total = 0.9f;
m_lens[i].off = 0.7f;
@@ -124,53 +124,53 @@ CAutoHuston::CAutoHuston(CInstanceManager* iMan, CObject* object)
// Part with three windows.
m_lens[i].type = PARTISELR;
- m_lens[i].pos = pos+D3DVECTOR(-7.0f, 9.9f, -19.9f);
+ m_lens[i].pos = pos+Math::Vector(-7.0f, 9.9f, -19.9f);
m_lens[i].dim = 1.0f;
m_lens[i].total = 0.6f;
m_lens[i].off = 0.3f;
i ++;
m_lens[i].type = PARTISELY;
- m_lens[i].pos = pos+D3DVECTOR(-7.0f, 7.2f, 34.8f-60.0f);
+ m_lens[i].pos = pos+Math::Vector(-7.0f, 7.2f, 34.8f-60.0f);
m_lens[i].dim = 0.4f;
m_lens[i].total = 0.7f;
m_lens[i].off = 0.3f;
i ++;
m_lens[i].type = PARTISELY;
- m_lens[i].pos = pos+D3DVECTOR(-7.0f, 6.5f, 34.3f-60.0f);
+ m_lens[i].pos = pos+Math::Vector(-7.0f, 6.5f, 34.3f-60.0f);
m_lens[i].dim = 0.4f;
m_lens[i].total = 0.0f;
m_lens[i].off = 0.0f;
i ++;
m_lens[i].type = PARTISELR;
- m_lens[i].pos = pos+D3DVECTOR(-7.0f, 6.5f, 33.4f-60.0f);
+ m_lens[i].pos = pos+Math::Vector(-7.0f, 6.5f, 33.4f-60.0f);
m_lens[i].dim = 0.4f;
m_lens[i].total = 0.6f;
m_lens[i].off = 0.4f;
i ++;
m_lens[i].type = PARTISELR;
- m_lens[i].pos = pos+D3DVECTOR(-7.0f, 6.5f, 33.0f-60.0f);
+ m_lens[i].pos = pos+Math::Vector(-7.0f, 6.5f, 33.0f-60.0f);
m_lens[i].dim = 0.4f;
m_lens[i].total = 0.8f;
m_lens[i].off = 0.2f;
i ++;
m_lens[i].type = PARTISELY;
- m_lens[i].pos = pos+D3DVECTOR(-6.5f, 13.5f, -37.0f);
+ m_lens[i].pos = pos+Math::Vector(-6.5f, 13.5f, -37.0f);
m_lens[i].dim = 1.0f;
m_lens[i].total = 0.0f;
m_lens[i].off = 0.0f;
i ++;
m_lens[i].type = PARTISELY;
- m_lens[i].pos = pos+D3DVECTOR(-7.0f, 12.2f, -39.8f);
+ m_lens[i].pos = pos+Math::Vector(-7.0f, 12.2f, -39.8f);
m_lens[i].dim = 1.8f;
m_lens[i].total = 1.5f;
m_lens[i].off = 0.5f;
i ++;
m_lens[i].type = PARTISELY;
- m_lens[i].pos = pos+D3DVECTOR(-7.0f, 8.5f, -47.0f);
+ m_lens[i].pos = pos+Math::Vector(-7.0f, 8.5f, -47.0f);
m_lens[i].dim = 0.6f;
m_lens[i].total = 0.7f;
m_lens[i].off = 0.5f;
@@ -218,7 +218,7 @@ void CAutoHuston::Start(int param)
bool CAutoHuston::EventProcess(const Event &event)
{
- D3DVECTOR speed;
+ Math::Vector speed;
Math::Point dim;
float angle;
int i;
@@ -237,7 +237,7 @@ bool CAutoHuston::EventProcess(const Event &event)
m_progress += event.rTime*m_speed;
// Flashes the keys.
- speed = D3DVECTOR(0.0f, 0.0f, 0.0f);
+ speed = Math::Vector(0.0f, 0.0f, 0.0f);
for ( i=0 ; i<m_lensTotal ; i++ )
{
if ( m_lens[i].total != 0.0f &&
diff --git a/src/object/auto/autohuston.h b/src/object/auto/autohuston.h
index 552def8..4e79a9c 100644
--- a/src/object/auto/autohuston.h
+++ b/src/object/auto/autohuston.h
@@ -37,7 +37,7 @@ struct HustonLens
{
int parti;
ParticuleType type;
- D3DVECTOR pos;
+ Math::Vector pos;
float dim;
float total;
float off;
diff --git a/src/object/auto/autoinfo.cpp b/src/object/auto/autoinfo.cpp
index f96808c..783dd56 100644
--- a/src/object/auto/autoinfo.cpp
+++ b/src/object/auto/autoinfo.cpp
@@ -83,7 +83,7 @@ void CAutoInfo::Init()
void CAutoInfo::Start(int param)
{
- D3DVECTOR pos, speed;
+ Math::Vector pos, speed;
Math::Point dim;
if ( param == 0 ) // instruction "receive" ?
@@ -112,7 +112,7 @@ void CAutoInfo::Start(int param)
{
pos = m_goal;
pos.y += 9.5f;
- speed = D3DVECTOR(0.0f, 0.0f, 0.0f);
+ speed = Math::Vector(0.0f, 0.0f, 0.0f);
dim.x = 30.0f;
dim.y = dim.x;
m_particule->CreateParticule(pos, speed, dim, PARTISPHERE4, 1.5f, 0.0f, 0.0f);
@@ -123,7 +123,7 @@ void CAutoInfo::Start(int param)
{
pos = m_goal;
pos.y += 9.5f;
- speed = D3DVECTOR(0.0f, 0.0f, 0.0f);
+ speed = Math::Vector(0.0f, 0.0f, 0.0f);
dim.x = 50.0f;
dim.y = dim.x;
m_particule->CreateParticule(pos, speed, dim, PARTISPHERE6, 1.5f, 0.0f, 0.0f);
@@ -141,7 +141,7 @@ void CAutoInfo::Start(int param)
bool CAutoInfo::EventProcess(const Event &event)
{
- D3DVECTOR pos, speed;
+ Math::Vector pos, speed;
Math::Point dim;
float duration, angle, rTime;
int i;
diff --git a/src/object/auto/autoinfo.h b/src/object/auto/autoinfo.h
index 7cd3002..7596c41 100644
--- a/src/object/auto/autoinfo.h
+++ b/src/object/auto/autoinfo.h
@@ -71,7 +71,7 @@ protected:
float m_speed;
float m_timeVirus;
float m_lastParticule;
- D3DVECTOR m_goal;
+ Math::Vector m_goal;
bool m_bLastVirus;
};
diff --git a/src/object/auto/autojostle.cpp b/src/object/auto/autojostle.cpp
index ee09d93..c2e3eea 100644
--- a/src/object/auto/autojostle.cpp
+++ b/src/object/auto/autojostle.cpp
@@ -105,7 +105,7 @@ void CAutoJostle::Start(int param, float force)
bool CAutoJostle::EventProcess(const Event &event)
{
- D3DVECTOR dir;
+ Math::Vector dir;
float factor, angle, zoom;
CAuto::EventProcess(event);
@@ -145,7 +145,7 @@ bool CAutoJostle::EventProcess(const Event &event)
{
m_object->SetAngleX(0, 0.0f);
m_object->SetAngleZ(0, 0.0f);
- m_object->SetZoom(0, D3DVECTOR(1.0f, 1.0f, 1.0f));
+ m_object->SetZoom(0, Math::Vector(1.0f, 1.0f, 1.0f));
m_error = ERR_STOP;
}
diff --git a/src/object/auto/autokid.cpp b/src/object/auto/autokid.cpp
index 5507d0f..f2f90b3 100644
--- a/src/object/auto/autokid.cpp
+++ b/src/object/auto/autokid.cpp
@@ -73,7 +73,7 @@ void CAutoKid::DeleteObject(bool bAll)
void CAutoKid::Init()
{
- D3DVECTOR pos;
+ Math::Vector pos;
m_speed = 1.0f/1.0f;
m_progress = 0.0f;
@@ -108,7 +108,7 @@ void CAutoKid::Init()
bool CAutoKid::EventProcess(const Event &event)
{
- D3DVECTOR vib, pos, speed;
+ Math::Vector vib, pos, speed;
Math::Point dim;
CAuto::EventProcess(event);
diff --git a/src/object/auto/autolabo.cpp b/src/object/auto/autolabo.cpp
index 7033318..828e1c2 100644
--- a/src/object/auto/autolabo.cpp
+++ b/src/object/auto/autolabo.cpp
@@ -128,7 +128,7 @@ void CAutoLabo::Init()
bool CAutoLabo::EventProcess(const Event &event)
{
CObject* power;
- D3DVECTOR pos, goal, speed;
+ Math::Vector pos, goal, speed;
Math::Point dim, rot;
float angle;
int i;
@@ -243,7 +243,7 @@ bool CAutoLabo::EventProcess(const Event &event)
}
else
{
- m_object->SetPosition(1, D3DVECTOR(-9.0f, 13.0f, 0.0f));
+ m_object->SetPosition(1, Math::Vector(-9.0f, 13.0f, 0.0f));
SoundManip(1.5f, 1.0f, 0.5f);
m_phase = ALAP_OPEN3;
@@ -284,7 +284,7 @@ bool CAutoLabo::EventProcess(const Event &event)
pos = m_object->RetPosition(0);
pos.y += 4.0f;
- speed = D3DVECTOR(0.0f, 0.0f, 0.0f);
+ speed = Math::Vector(0.0f, 0.0f, 0.0f);
dim.x = 4.0f;
dim.y = dim.x;
m_partiSphere = m_particule->CreateParticule(pos, speed, dim, PARTISPHERE2, LABO_DELAY, 0.0f, 0.0f);
@@ -400,7 +400,7 @@ bool CAutoLabo::EventProcess(const Event &event)
}
else
{
- m_object->SetPosition(1, D3DVECTOR(-9.0f, 3.0f, 0.0f));
+ m_object->SetPosition(1, Math::Vector(-9.0f, 3.0f, 0.0f));
SoundManip(1.0f, 1.0f, 1.0f);
m_phase = ALAP_CLOSE3;
@@ -578,7 +578,7 @@ void CAutoLabo::SoundManip(float time, float amplitude, float frequency)
bool CAutoLabo::Write(char *line)
{
- D3DVECTOR pos;
+ Math::Vector pos;
char name[100];
if ( m_phase == ALAP_WAIT ) return false;
@@ -607,7 +607,7 @@ bool CAutoLabo::Write(char *line)
bool CAutoLabo::Read(char *line)
{
- D3DVECTOR pos;
+ Math::Vector pos;
if ( OpInt(line, "aExist", 0) == 0 ) return false;
diff --git a/src/object/auto/automush.cpp b/src/object/auto/automush.cpp
index 44272d0..90dc13a 100644
--- a/src/object/auto/automush.cpp
+++ b/src/object/auto/automush.cpp
@@ -79,7 +79,7 @@ void CAutoMush::Init()
bool CAutoMush::EventProcess(const Event &event)
{
- D3DVECTOR pos, speed, dir;
+ Math::Vector pos, speed, dir;
Math::Point dim;
float factor, zoom, size, angle;
int i, channel;
@@ -223,7 +223,7 @@ bool CAutoMush::EventProcess(const Event &event)
{
m_object->SetAngleX(0, 0.0f);
m_object->SetAngleZ(0, 0.0f);
- m_object->SetZoom(0, D3DVECTOR(1.0f, 1.0f, 1.0f));
+ m_object->SetZoom(0, Math::Vector(1.0f, 1.0f, 1.0f));
}
return true;
@@ -235,7 +235,7 @@ bool CAutoMush::EventProcess(const Event &event)
bool CAutoMush::SearchTarget()
{
CObject* pObj;
- D3DVECTOR iPos, oPos;
+ Math::Vector iPos, oPos;
ObjectType type;
float dist;
int i;
@@ -294,7 +294,7 @@ bool CAutoMush::SearchTarget()
type != OBJECT_HUMAN ) continue;
oPos = pObj->RetPosition(0);
- dist = Length(oPos, iPos);
+ dist = Math::Distance(oPos, iPos);
if ( dist < 50.0f ) return true;
}
@@ -314,7 +314,7 @@ Error CAutoMush::RetError()
bool CAutoMush::Write(char *line)
{
- D3DVECTOR pos;
+ Math::Vector pos;
char name[100];
if ( m_phase == AMP_WAIT ) return false;
@@ -340,7 +340,7 @@ bool CAutoMush::Write(char *line)
bool CAutoMush::Read(char *line)
{
- D3DVECTOR pos;
+ Math::Vector pos;
if ( OpInt(line, "aExist", 0) == 0 ) return false;
diff --git a/src/object/auto/autonest.cpp b/src/object/auto/autonest.cpp
index a566444..3644318 100644
--- a/src/object/auto/autonest.cpp
+++ b/src/object/auto/autonest.cpp
@@ -76,7 +76,7 @@ void CAutoNest::DeleteObject(bool bAll)
void CAutoNest::Init()
{
- D3DVECTOR pos;
+ Math::Vector pos;
m_phase = ANP_WAIT;
m_progress = 0.0f;
@@ -155,10 +155,10 @@ bool CAutoNest::EventProcess(const Event &event)
// Seeks if a site is free.
-bool CAutoNest::SearchFree(D3DVECTOR pos)
+bool CAutoNest::SearchFree(Math::Vector pos)
{
CObject* pObj;
- D3DVECTOR sPos;
+ Math::Vector sPos;
ObjectType type;
float sRadius, distance;
int i, j;
@@ -174,7 +174,7 @@ bool CAutoNest::SearchFree(D3DVECTOR pos)
j = 0;
while ( pObj->GetCrashSphere(j++, sPos, sRadius) )
{
- distance = Length(sPos, pos);
+ distance = Math::Distance(sPos, pos);
distance -= sRadius;
if ( distance < 2.0f ) return false; // location occupied
}
@@ -185,7 +185,7 @@ bool CAutoNest::SearchFree(D3DVECTOR pos)
// Create a transportable object.
-void CAutoNest::CreateFret(D3DVECTOR pos, float angle, ObjectType type)
+void CAutoNest::CreateFret(Math::Vector pos, float angle, ObjectType type)
{
CObject* fret;
@@ -204,7 +204,7 @@ void CAutoNest::CreateFret(D3DVECTOR pos, float angle, ObjectType type)
CObject* CAutoNest::SearchFret()
{
CObject* pObj;
- D3DVECTOR oPos;
+ Math::Vector oPos;
ObjectType type;
int i;
@@ -242,7 +242,7 @@ Error CAutoNest::RetError()
bool CAutoNest::Write(char *line)
{
- D3DVECTOR pos;
+ Math::Vector pos;
char name[100];
if ( m_phase == ANP_WAIT ) return false;
@@ -268,7 +268,7 @@ bool CAutoNest::Write(char *line)
bool CAutoNest::Read(char *line)
{
- D3DVECTOR pos;
+ Math::Vector pos;
if ( OpInt(line, "aExist", 0) == 0 ) return false;
diff --git a/src/object/auto/autonest.h b/src/object/auto/autonest.h
index 55ee2f0..faf9235 100644
--- a/src/object/auto/autonest.h
+++ b/src/object/auto/autonest.h
@@ -56,8 +56,8 @@ public:
bool Read(char *line);
protected:
- bool SearchFree(D3DVECTOR pos);
- void CreateFret(D3DVECTOR pos, float angle, ObjectType type);
+ bool SearchFree(Math::Vector pos);
+ void CreateFret(Math::Vector pos, float angle, ObjectType type);
CObject* SearchFret();
protected:
@@ -65,6 +65,6 @@ protected:
float m_progress;
float m_speed;
float m_lastParticule;
- D3DVECTOR m_fretPos;
+ Math::Vector m_fretPos;
};
diff --git a/src/object/auto/autonuclear.cpp b/src/object/auto/autonuclear.cpp
index 49ae0bd..8b9ff36 100644
--- a/src/object/auto/autonuclear.cpp
+++ b/src/object/auto/autonuclear.cpp
@@ -20,6 +20,7 @@
#include <d3d.h>
#include "common/struct.h"
+#include "math/geometry.h"
#include "graphics/d3d/d3dengine.h"
#include "math/old/d3dmath.h"
#include "common/global.h"
@@ -95,14 +96,14 @@ void CAutoNuclear::DeleteObject(bool bAll)
void CAutoNuclear::Init()
{
- D3DMATRIX* mat;
+ Math::Matrix* mat;
m_time = 0.0f;
m_timeVirus = 0.0f;
m_lastParticule = 0.0f;
mat = m_object->RetWorldMatrix(0);
- m_pos = Transform(*mat, D3DVECTOR(22.0f, 4.0f, 0.0f));
+ m_pos = Math::Transform(*mat, Math::Vector(22.0f, 4.0f, 0.0f));
m_phase = ANUP_WAIT; // waiting ...
m_progress = 0.0f;
@@ -117,8 +118,8 @@ void CAutoNuclear::Init()
bool CAutoNuclear::EventProcess(const Event &event)
{
CObject* fret;
- D3DMATRIX* mat;
- D3DVECTOR pos, goal, speed;
+ Math::Matrix* mat;
+ Math::Vector pos, goal, speed;
Math::Point dim, rot;
float angle;
int i, max;
@@ -345,7 +346,7 @@ CObject* CAutoNuclear::SearchUranium()
bool CAutoNuclear::SearchVehicle()
{
CObject* pObj;
- D3DVECTOR oPos;
+ Math::Vector oPos;
ObjectType type;
float oRadius, dist;
int i;
@@ -391,7 +392,7 @@ bool CAutoNuclear::SearchVehicle()
type != OBJECT_WORM ) continue;
if ( !pObj->GetCrashSphere(0, oPos, oRadius) ) continue;
- dist = Length(oPos, m_pos)-oRadius;
+ dist = Math::Distance(oPos, m_pos)-oRadius;
if ( dist < 10.0f ) return true;
}
@@ -404,7 +405,7 @@ bool CAutoNuclear::SearchVehicle()
void CAutoNuclear::CreatePower()
{
CObject* power;
- D3DVECTOR pos;
+ Math::Vector pos;
float angle;
pos = m_object->RetPosition(0);
@@ -419,7 +420,7 @@ void CAutoNuclear::CreatePower()
}
power->SetTruck(m_object);
- power->SetPosition(0, D3DVECTOR(22.0f, 3.0f, 0.0f));
+ power->SetPosition(0, Math::Vector(22.0f, 3.0f, 0.0f));
m_object->SetPower(power);
}
diff --git a/src/object/auto/autonuclear.h b/src/object/auto/autonuclear.h
index 36b3483..df34601 100644
--- a/src/object/auto/autonuclear.h
+++ b/src/object/auto/autonuclear.h
@@ -71,7 +71,7 @@ protected:
float m_speed;
float m_timeVirus;
float m_lastParticule;
- D3DVECTOR m_pos;
+ Math::Vector m_pos;
int m_channelSound;
};
diff --git a/src/object/auto/autopara.cpp b/src/object/auto/autopara.cpp
index 46a34f9..568156b 100644
--- a/src/object/auto/autopara.cpp
+++ b/src/object/auto/autopara.cpp
@@ -20,6 +20,7 @@
#include <d3d.h>
#include "common/struct.h"
+#include "math/geometry.h"
#include "graphics/d3d/d3dengine.h"
#include "math/old/d3dmath.h"
#include "common/global.h"
@@ -79,14 +80,14 @@ void CAutoPara::DeleteObject(bool bAll)
void CAutoPara::Init()
{
- D3DMATRIX* mat;
+ Math::Matrix* mat;
m_time = 0.0f;
m_timeVirus = 0.0f;
m_lastParticule = 0.0f;
mat = m_object->RetWorldMatrix(0);
- m_pos = Transform(*mat, D3DVECTOR(22.0f, 4.0f, 0.0f));
+ m_pos = Math::Transform(*mat, Math::Vector(22.0f, 4.0f, 0.0f));
m_phase = APAP_WAIT; // waiting ...
m_progress = 0.0f;
@@ -110,7 +111,7 @@ void CAutoPara::StartBlitz()
bool CAutoPara::EventProcess(const Event &event)
{
- D3DVECTOR pos, speed;
+ Math::Vector pos, speed;
Math::Point dim;
int i;
@@ -253,7 +254,7 @@ void CAutoPara::ChargeObject(float rTime)
{
CObject* pObj;
CObject* power;
- D3DVECTOR sPos, oPos;
+ Math::Vector sPos, oPos;
float dist, energy;
int i;
@@ -265,7 +266,7 @@ void CAutoPara::ChargeObject(float rTime)
if ( pObj == 0 ) break;
oPos = pObj->RetPosition(0);
- dist = Length(oPos, sPos);
+ dist = Math::Distance(oPos, sPos);
if ( dist > 20.0f ) continue;
if ( pObj->RetTruck() == 0 && pObj->RetType() == OBJECT_POWER )
diff --git a/src/object/auto/autopara.h b/src/object/auto/autopara.h
index 9eab4d7..6878c42 100644
--- a/src/object/auto/autopara.h
+++ b/src/object/auto/autopara.h
@@ -68,7 +68,7 @@ protected:
float m_speed;
float m_timeVirus;
float m_lastParticule;
- D3DVECTOR m_pos;
+ Math::Vector m_pos;
int m_channelSound;
};
diff --git a/src/object/auto/autoportico.cpp b/src/object/auto/autoportico.cpp
index cedb1d7..388bfcc 100644
--- a/src/object/auto/autoportico.cpp
+++ b/src/object/auto/autoportico.cpp
@@ -123,7 +123,7 @@ void CAutoPortico::Init()
void CAutoPortico::Start(int param)
{
- D3DVECTOR pos;
+ Math::Vector pos;
pos = m_object->RetPosition(0);
m_finalPos = pos;
@@ -131,7 +131,7 @@ void CAutoPortico::Start(int param)
m_object->SetPosition(0, pos);
m_finalPos.z += PORTICO_TIME_OPEN*5.3f;
- m_object->SetPosition(1, D3DVECTOR(0.0f, PORTICO_POSa, 0.0f));
+ m_object->SetPosition(1, Math::Vector(0.0f, PORTICO_POSa, 0.0f));
m_object->SetAngleY(2, PORTICO_ANGLE1a);
m_object->SetAngleY(3, PORTICO_ANGLE2a);
m_object->SetAngleY(4, PORTICO_ANGLE3a);
@@ -152,7 +152,7 @@ void CAutoPortico::Start(int param)
bool CAutoPortico::EventProcess(const Event &event)
{
CObject* pObj;
- D3DVECTOR pos;
+ Math::Vector pos;
float angle;
CAuto::EventProcess(event);
@@ -372,7 +372,7 @@ bool CAutoPortico::Abort()
CObject* pObj;
m_object->SetPosition(0, m_finalPos);
- m_object->SetPosition(1, D3DVECTOR(0.0f, PORTICO_POSb, 0.0f));
+ m_object->SetPosition(1, Math::Vector(0.0f, PORTICO_POSb, 0.0f));
m_object->SetAngleY(2, PORTICO_ANGLE1b);
m_object->SetAngleY(3, PORTICO_ANGLE2b);
m_object->SetAngleY(4, PORTICO_ANGLE3b);
diff --git a/src/object/auto/autoportico.h b/src/object/auto/autoportico.h
index 196140d..c6ce6d7 100644
--- a/src/object/auto/autoportico.h
+++ b/src/object/auto/autoportico.h
@@ -69,8 +69,8 @@ protected:
float m_cameraProgress;
float m_cameraSpeed;
float m_lastParticule;
- D3DVECTOR m_finalPos;
- D3DVECTOR m_startPos;
+ Math::Vector m_finalPos;
+ Math::Vector m_startPos;
float m_posTrack;
int m_param;
int m_soundChannel;
diff --git a/src/object/auto/autoradar.cpp b/src/object/auto/autoradar.cpp
index 535bfee..0f91d08 100644
--- a/src/object/auto/autoradar.cpp
+++ b/src/object/auto/autoradar.cpp
@@ -85,7 +85,7 @@ void CAutoRadar::Init()
bool CAutoRadar::EventProcess(const Event &event)
{
- D3DVECTOR pos, ePos;
+ Math::Vector pos, ePos;
float speed, angle, prog, freq, ampl;
CAuto::EventProcess(event);
@@ -274,11 +274,11 @@ void CAutoRadar::UpdateInterface()
// Seeking the position of an enemy.
-bool CAutoRadar::SearchEnemy(D3DVECTOR &pos)
+bool CAutoRadar::SearchEnemy(Math::Vector &pos)
{
CObject* pObj;
CObject* pBest = 0;
- D3DVECTOR iPos, oPos;
+ Math::Vector iPos, oPos;
ObjectType oType;
float distance, min;
int i;
@@ -304,7 +304,7 @@ bool CAutoRadar::SearchEnemy(D3DVECTOR &pos)
m_totalDetect ++;
oPos = pObj->RetPosition(0);
- distance = Length(oPos, iPos);
+ distance = Math::Distance(oPos, iPos);
if ( distance < min )
{
min = distance;
diff --git a/src/object/auto/autoradar.h b/src/object/auto/autoradar.h
index 616a6eb..9681789 100644
--- a/src/object/auto/autoradar.h
+++ b/src/object/auto/autoradar.h
@@ -57,7 +57,7 @@ public:
protected:
void UpdateInterface();
- bool SearchEnemy(D3DVECTOR &pos);
+ bool SearchEnemy(Math::Vector &pos);
protected:
AutoRadarPhase m_phase;
diff --git a/src/object/auto/autorepair.cpp b/src/object/auto/autorepair.cpp
index 79bccc8..fdfb072 100644
--- a/src/object/auto/autorepair.cpp
+++ b/src/object/auto/autorepair.cpp
@@ -90,7 +90,7 @@ void CAutoRepair::Init()
bool CAutoRepair::EventProcess(const Event &event)
{
CObject* vehicule;
- D3DVECTOR pos, speed;
+ Math::Vector pos, speed;
Math::Point dim;
float angle, shield;
@@ -247,7 +247,7 @@ CObject* CAutoRepair::SearchVehicle()
{
CObject* pObj;
CPhysics* physics;
- D3DVECTOR sPos, oPos;
+ Math::Vector sPos, oPos;
ObjectType type;
float dist;
int i;
@@ -292,7 +292,7 @@ CObject* CAutoRepair::SearchVehicle()
if ( physics != 0 && !physics->RetLand() ) continue; // in flight?
oPos = pObj->RetPosition(0);
- dist = Length(oPos, sPos);
+ dist = Math::Distance(oPos, sPos);
if ( dist <= 5.0f ) return pObj;
}
diff --git a/src/object/auto/autoresearch.cpp b/src/object/auto/autoresearch.cpp
index f1602cf..07c64c1 100644
--- a/src/object/auto/autoresearch.cpp
+++ b/src/object/auto/autoresearch.cpp
@@ -20,6 +20,7 @@
#include <d3d.h>
#include "math/const.h"
+#include "math/geometry.h"
#include "common/struct.h"
#include "graphics/d3d/d3dengine.h"
#include "math/old/d3dmath.h"
@@ -108,7 +109,7 @@ void CAutoResearch::Init()
bool CAutoResearch::EventProcess(const Event &event)
{
CObject* power;
- D3DVECTOR pos, speed;
+ Math::Vector pos, speed;
Error message;
Math::Point dim;
float angle, time;
@@ -512,8 +513,8 @@ void CAutoResearch::SetResearch(EventMsg event)
void CAutoResearch::FireStopUpdate(float progress, bool bLightOn)
{
- D3DMATRIX* mat;
- D3DVECTOR pos, speed;
+ Math::Matrix* mat;
+ Math::Vector pos, speed;
Math::Point dim;
int i;
@@ -542,7 +543,7 @@ void CAutoResearch::FireStopUpdate(float progress, bool bLightOn)
mat = m_object->RetWorldMatrix(0);
- speed = D3DVECTOR(0.0f, 0.0f, 0.0f);
+ speed = Math::Vector(0.0f, 0.0f, 0.0f);
dim.x = 2.0f;
dim.y = dim.x;
@@ -563,7 +564,7 @@ void CAutoResearch::FireStopUpdate(float progress, bool bLightOn)
pos.x = listpos[i*2+0];
pos.y = 11.5f;
pos.z = listpos[i*2+1];
- pos = Transform(*mat, pos);
+ pos = Math::Transform(*mat, pos);
m_partiStop[i] = m_particule->CreateParticule(pos, speed,
dim, PARTISELY,
1.0f, 0.0f, 0.0f);
diff --git a/src/object/auto/autoroot.cpp b/src/object/auto/autoroot.cpp
index 8b16615..df7f0cb 100644
--- a/src/object/auto/autoroot.cpp
+++ b/src/object/auto/autoroot.cpp
@@ -20,6 +20,7 @@
#include <d3d.h>
#include "common/struct.h"
+#include "math/geometry.h"
#include "graphics/d3d/d3dengine.h"
#include "math/old/d3dmath.h"
#include "common/event.h"
@@ -63,19 +64,19 @@ void CAutoRoot::DeleteObject(bool bAll)
void CAutoRoot::Init()
{
- D3DMATRIX* mat;
- D3DVECTOR pos, speed;
+ Math::Matrix* mat;
+ Math::Vector pos, speed;
Math::Point dim;
m_time = 0.0f;
m_lastParticule = 0.0f;
mat = m_object->RetWorldMatrix(0);
- pos = D3DVECTOR(-5.0f, 28.0f, -4.0f); // peak position
- pos = Transform(*mat, pos);
+ pos = Math::Vector(-5.0f, 28.0f, -4.0f); // peak position
+ pos = Math::Transform(*mat, pos);
m_center = pos;
- speed = D3DVECTOR(0.0f, 0.0f, 0.0f);
+ speed = Math::Vector(0.0f, 0.0f, 0.0f);
dim.x = 100.0f;
dim.y = dim.x;
m_particule->CreateParticule(m_center, speed, dim, PARTISPHERE5, 0.5f, 0.0f, 0.0f);
@@ -88,7 +89,7 @@ void CAutoRoot::Init()
bool CAutoRoot::EventProcess(const Event &event)
{
- D3DVECTOR pos, speed;
+ Math::Vector pos, speed;
Math::Point dim;
CAuto::EventProcess(event);
diff --git a/src/object/auto/autoroot.h b/src/object/auto/autoroot.h
index 0be9b24..8e2a279 100644
--- a/src/object/auto/autoroot.h
+++ b/src/object/auto/autoroot.h
@@ -48,6 +48,6 @@ protected:
protected:
float m_lastParticule;
- D3DVECTOR m_center;
+ Math::Vector m_center;
};
diff --git a/src/object/auto/autosafe.cpp b/src/object/auto/autosafe.cpp
index 6cdccf5..97434f9 100644
--- a/src/object/auto/autosafe.cpp
+++ b/src/object/auto/autosafe.cpp
@@ -125,7 +125,7 @@ void CAutoSafe::Init()
bool CAutoSafe::EventProcess(const Event &event)
{
CObject* pObj;
- D3DVECTOR pos, speed;
+ Math::Vector pos, speed;
Math::Point dim;
int i, count;
@@ -256,7 +256,7 @@ bool CAutoSafe::EventProcess(const Event &event)
}
m_object->FlushCrashShere();
- m_object->SetGlobalSphere(D3DVECTOR(0.0f, 0.0f, 0.0f), 0.0f);
+ m_object->SetGlobalSphere(Math::Vector(0.0f, 0.0f, 0.0f), 0.0f);
m_sound->Play(SOUND_FINDING, m_object->RetPosition(0));
@@ -294,7 +294,7 @@ bool CAutoSafe::EventProcess(const Event &event)
}
// Blinks the keys.
- speed = D3DVECTOR(0.0f, 0.0f, 0.0f);
+ speed = Math::Vector(0.0f, 0.0f, 0.0f);
dim.x = 2.0f;
dim.y = dim.x;
for ( i=0 ; i<4 ; i++ )
@@ -412,7 +412,7 @@ bool CAutoSafe::Read(char *line)
int CAutoSafe::CountKeys()
{
CObject* pObj;
- D3DVECTOR cPos, oPos;
+ Math::Vector cPos, oPos;
Math::Point rot;
ObjectType oType;
float dist, angle, limit, cAngle, oAngle;
@@ -441,7 +441,7 @@ int CAutoSafe::CountKeys()
oType != OBJECT_KEYd ) continue;
oPos = pObj->RetPosition(0);
- dist = Length2d(oPos, cPos);
+ dist = Math::DistanceProjected(oPos, cPos);
if ( dist > 20.0f ) continue;
if ( oType == OBJECT_KEYa )
@@ -497,7 +497,7 @@ int CAutoSafe::CountKeys()
void CAutoSafe::LockKeys()
{
CObject* pObj;
- D3DVECTOR cPos, oPos;
+ Math::Vector cPos, oPos;
ObjectType oType;
float dist;
int i;
@@ -518,7 +518,7 @@ void CAutoSafe::LockKeys()
oType != OBJECT_KEYd ) continue;
oPos = pObj->RetPosition(0);
- dist = Length2d(oPos, cPos);
+ dist = Math::DistanceProjected(oPos, cPos);
if ( dist > 20.0f ) continue;
pObj->SetLock(true);
@@ -530,7 +530,7 @@ void CAutoSafe::LockKeys()
void CAutoSafe::DownKeys(float progress)
{
CObject* pObj;
- D3DVECTOR cPos, oPos;
+ Math::Vector cPos, oPos;
ObjectType oType;
float dist;
int i;
@@ -551,7 +551,7 @@ void CAutoSafe::DownKeys(float progress)
oType != OBJECT_KEYd ) continue;
oPos = pObj->RetPosition(0);
- dist = Length2d(oPos, cPos);
+ dist = Math::DistanceProjected(oPos, cPos);
if ( dist > 20.0f ) continue;
oPos.y = cPos.y+1.0f-progress*2.2f;
@@ -564,7 +564,7 @@ void CAutoSafe::DownKeys(float progress)
void CAutoSafe::DeleteKeys()
{
CObject* pObj;
- D3DVECTOR cPos, oPos;
+ Math::Vector cPos, oPos;
ObjectType oType;
float dist;
int i;
@@ -589,7 +589,7 @@ void CAutoSafe::DeleteKeys()
oType != OBJECT_KEYd ) continue;
oPos = pObj->RetPosition(0);
- dist = Length2d(oPos, cPos);
+ dist = Math::DistanceProjected(oPos, cPos);
if ( dist > 20.0f ) continue;
pObj->DeleteObject();
@@ -605,7 +605,7 @@ void CAutoSafe::DeleteKeys()
CObject* CAutoSafe::SearchVehicle()
{
CObject* pObj;
- D3DVECTOR cPos, oPos;
+ Math::Vector cPos, oPos;
ObjectType oType;
float dist;
int i;
@@ -622,7 +622,7 @@ CObject* CAutoSafe::SearchVehicle()
if ( pObj->RetTruck() != 0 ) continue;
oPos = pObj->RetPosition(0);
- dist = Length2d(oPos, cPos);
+ dist = Math::DistanceProjected(oPos, cPos);
if ( dist <= 4.0f ) return pObj;
}
return 0;
diff --git a/src/object/auto/autosafe.h b/src/object/auto/autosafe.h
index 2e43359..083f06b 100644
--- a/src/object/auto/autosafe.h
+++ b/src/object/auto/autosafe.h
@@ -77,7 +77,7 @@ protected:
float m_actualAngle;
float m_finalAngle;
bool m_bKey[4];
- D3DVECTOR m_keyPos[4];
+ Math::Vector m_keyPos[4];
int m_keyParti[4];
};
diff --git a/src/object/auto/autostation.cpp b/src/object/auto/autostation.cpp
index cc93545..9ec48d5 100644
--- a/src/object/auto/autostation.cpp
+++ b/src/object/auto/autostation.cpp
@@ -20,6 +20,7 @@
#include <d3d.h>
#include "common/struct.h"
+#include "math/geometry.h"
#include "graphics/d3d/d3dengine.h"
#include "math/old/d3dmath.h"
#include "common/event.h"
@@ -90,8 +91,8 @@ void CAutoStation::Init()
bool CAutoStation::EventProcess(const Event &event)
{
- D3DMATRIX* mat;
- D3DVECTOR pos, ppos, speed;
+ Math::Matrix* mat;
+ Math::Vector pos, ppos, speed;
Math::Point dim;
CObject* vehicule;
CObject* power;
@@ -201,8 +202,8 @@ bool CAutoStation::EventProcess(const Event &event)
m_lastParticule = m_time;
mat = m_object->RetWorldMatrix(0);
- pos = D3DVECTOR(-15.0f, 7.0f, 0.0f); // battery position
- pos = Transform(*mat, pos);
+ pos = Math::Vector(-15.0f, 7.0f, 0.0f); // battery position
+ pos = Math::Transform(*mat, pos);
speed.x = (Math::Rand()-0.5f)*20.0f;
speed.y = (Math::Rand()-0.5f)*20.0f;
speed.z = (Math::Rand()-0.5f)*20.0f;
@@ -251,7 +252,7 @@ bool CAutoStation::EventProcess(const Event &event)
CObject* CAutoStation::SearchVehicle()
{
CObject* pObj;
- D3DVECTOR sPos, oPos;
+ Math::Vector sPos, oPos;
ObjectType type;
float dist;
int i;
@@ -293,7 +294,7 @@ CObject* CAutoStation::SearchVehicle()
type != OBJECT_MOBILEdr ) continue;
oPos = pObj->RetPosition(0);
- dist = Length(oPos, sPos);
+ dist = Math::Distance(oPos, sPos);
if ( dist <= 5.0f ) return pObj;
}
diff --git a/src/object/auto/autostation.h b/src/object/auto/autostation.h
index 04f6b46..f2b50a8 100644
--- a/src/object/auto/autostation.h
+++ b/src/object/auto/autostation.h
@@ -58,7 +58,7 @@ protected:
float m_lastUpdateTime;
float m_lastParticule;
int m_soundChannel;
- D3DVECTOR m_fretPos;
+ Math::Vector m_fretPos;
bool m_bLastVirus;
float m_energyVirus;
};
diff --git a/src/object/auto/autotower.cpp b/src/object/auto/autotower.cpp
index a76260e..227a1e9 100644
--- a/src/object/auto/autotower.cpp
+++ b/src/object/auto/autotower.cpp
@@ -105,7 +105,7 @@ bool CAutoTower::EventProcess(const Event &event)
{
CObject* power;
CObject* target;
- D3DVECTOR pos;
+ Math::Vector pos;
float angle, energy, quick;
CAuto::EventProcess(event);
@@ -209,7 +209,7 @@ bool CAutoTower::EventProcess(const Event &event)
m_angleYactual = Math::NormAngle(m_object->RetAngleY(1));
m_angleZfinal = -Math::PI/2.0f;
- m_angleZfinal -= Math::RotateAngle(Length2d(m_targetPos, pos), pos.y-m_targetPos.y); // CW !
+ m_angleZfinal -= Math::RotateAngle(Math::DistanceProjected(m_targetPos, pos), pos.y-m_targetPos.y); // CW !
m_angleZactual = m_object->RetAngleZ(2);
m_phase = ATP_TURN;
@@ -274,12 +274,12 @@ bool CAutoTower::EventProcess(const Event &event)
// Seeks the nearest target object.
-CObject* CAutoTower::SearchTarget(D3DVECTOR &impact)
+CObject* CAutoTower::SearchTarget(Math::Vector &impact)
{
CObject* pObj;
CObject* pBest = 0;
CPhysics* physics;
- D3DVECTOR iPos, oPos;
+ Math::Vector iPos, oPos;
ObjectType oType;
float distance, min, radius, speed;
int i;
@@ -313,7 +313,7 @@ CObject* CAutoTower::SearchTarget(D3DVECTOR &impact)
}
if ( !pObj->GetCrashSphere(0, oPos, radius) ) continue;
- distance = Length(oPos, iPos);
+ distance = Math::Distance(oPos, iPos);
if ( distance > TOWER_SCOPE ) continue; // too far
if ( distance < min )
{
@@ -359,8 +359,8 @@ Error CAutoTower::RetError()
void CAutoTower::FireStopUpdate(float progress, bool bLightOn)
{
- D3DMATRIX* mat;
- D3DVECTOR pos, speed;
+ Math::Matrix* mat;
+ Math::Vector pos, speed;
Math::Point dim;
int i;
@@ -387,7 +387,7 @@ void CAutoTower::FireStopUpdate(float progress, bool bLightOn)
mat = m_object->RetWorldMatrix(0);
- speed = D3DVECTOR(0.0f, 0.0f, 0.0f);
+ speed = Math::Vector(0.0f, 0.0f, 0.0f);
dim.x = 2.0f;
dim.y = dim.x;
diff --git a/src/object/auto/autotower.h b/src/object/auto/autotower.h
index cf4fc3b..57b941d 100644
--- a/src/object/auto/autotower.h
+++ b/src/object/auto/autotower.h
@@ -63,7 +63,7 @@ public:
protected:
void UpdateInterface(float rTime);
- CObject* SearchTarget(D3DVECTOR &impact);
+ CObject* SearchTarget(Math::Vector &impact);
void FireStopUpdate(float progress, bool bLightOn);
protected:
@@ -73,7 +73,7 @@ protected:
float m_timeVirus;
float m_lastUpdateTime;
float m_lastParticule;
- D3DVECTOR m_targetPos;
+ Math::Vector m_targetPos;
float m_angleYactual;
float m_angleZactual;
float m_angleYfinal;
diff --git a/src/object/brain.cpp b/src/object/brain.cpp
index 964ab70..c692b88 100644
--- a/src/object/brain.cpp
+++ b/src/object/brain.cpp
@@ -21,6 +21,7 @@
#include "CBot/CBotDll.h"
#include "common/struct.h"
+#include "math/geometry.h"
#include "math/const.h"
#include "graphics/d3d/d3dengine.h"
#include "math/old/d3dmath.h"
@@ -717,7 +718,7 @@ bool CBrain::EventProcess(const Event &event)
#if 0
if ( event.param == 'T' )
{
- D3DVECTOR p1, p2;
+ Math::Vector p1, p2;
float h;
p1 = m_object->RetPosition(0);
h = m_terrain->RetFloorLevel(p1);
@@ -730,7 +731,7 @@ bool CBrain::EventProcess(const Event &event)
}
if ( event.param == 'R' )
{
- D3DVECTOR p1, p2;
+ Math::Vector p1, p2;
float h;
p1 = m_object->RetPosition(0);
h = m_terrain->RetFloorLevel(p1);
@@ -1097,7 +1098,7 @@ Error CBrain::StartTaskFire(float delay)
// Shoots to the ant.
-Error CBrain::StartTaskFireAnt(D3DVECTOR impact)
+Error CBrain::StartTaskFireAnt(Math::Vector impact)
{
Error err;
@@ -1133,7 +1134,7 @@ Error CBrain::StartTaskGunGoal(float dirV, float dirH)
// Reset.
-Error CBrain::StartTaskReset(D3DVECTOR goal, D3DVECTOR angle)
+Error CBrain::StartTaskReset(Math::Vector goal, Math::Vector angle)
{
Error err;
@@ -1186,7 +1187,7 @@ Error CBrain::EndedTask()
void CBrain::GroundFlat()
{
- D3DVECTOR pos, speed;
+ Math::Vector pos, speed;
Math::Point dim;
Error err;
float level;
@@ -1206,7 +1207,7 @@ void CBrain::GroundFlat()
level = m_terrain->RetFloorLevel(pos)+2.0f;
if ( pos.y < level ) pos.y = level; // not below the soil
- speed = D3DVECTOR(0.0f, 0.0f, 0.0f);
+ speed = Math::Vector(0.0f, 0.0f, 0.0f);
dim.x = 40.0f;
dim.y = dim.x;
m_particule->CreateParticule(pos, speed, dim, PARTIGFLAT, 1.0f);
@@ -1935,7 +1936,7 @@ void CBrain::UpdateInterface(float rTime)
CGroup* pgr;
CTarget* ptg;
CObject* power;
- D3DVECTOR pos, hPos;
+ Math::Vector pos, hPos;
Math::Point ppos;
float energy, limit, angle, range;
int icon;
@@ -2829,7 +2830,7 @@ void CBrain::TraceRecordStart()
void CBrain::TraceRecordFrame()
{
TraceOper oper = TO_STOP;
- D3DVECTOR pos;
+ Math::Vector pos;
float angle, len, speed;
int color;
@@ -2856,7 +2857,7 @@ void CBrain::TraceRecordFrame()
m_traceOper == TO_RECEDE )
{
pos = m_object->RetPosition(0);
- len = Length2d(pos, m_tracePos);
+ len = Math::DistanceProjected(pos, m_tracePos);
TraceRecordOper(m_traceOper, len);
}
if ( m_traceOper == TO_TURN )
diff --git a/src/object/brain.h b/src/object/brain.h
index c54f0f7..895675e 100644
--- a/src/object/brain.h
+++ b/src/object/brain.h
@@ -123,9 +123,9 @@ public:
Error StartTaskRecover();
Error StartTaskShield(TaskShieldMode mode);
Error StartTaskFire(float delay);
- Error StartTaskFireAnt(D3DVECTOR impact);
+ Error StartTaskFireAnt(Math::Vector impact);
Error StartTaskGunGoal(float dirV, float dirH);
- Error StartTaskReset(D3DVECTOR goal, D3DVECTOR angle);
+ Error StartTaskReset(Math::Vector goal, Math::Vector angle);
void UpdateInterface(float rTime);
void UpdateInterface();
@@ -193,7 +193,7 @@ protected:
CObject* m_antTarget;
CObject* m_beeBullet;
float m_beeBulletSpeed;
- D3DVECTOR m_startPos;
+ Math::Vector m_startPos;
float m_time;
float m_burnTime;
float m_lastUpdateTime;
@@ -207,7 +207,7 @@ protected:
bool m_bTraceRecord;
TraceOper m_traceOper;
- D3DVECTOR m_tracePos;
+ Math::Vector m_tracePos;
float m_traceAngle;
int m_traceColor;
int m_traceRecordIndex;
diff --git a/src/graphics/common/mainmovie.cpp b/src/object/mainmovie.cpp
index e890ae7..8393d5a 100644
--- a/src/graphics/common/mainmovie.cpp
+++ b/src/object/mainmovie.cpp
@@ -22,6 +22,7 @@
#include <d3d.h>
#include "common/struct.h"
+#include "math/geometry.h"
#include "graphics/d3d/d3dengine.h"
#include "common/global.h"
#include "common/event.h"
@@ -34,7 +35,7 @@
#include "ui/interface.h"
#include "object/robotmain.h"
#include "sound/sound.h"
-#include "graphics/common/mainmovie.h"
+#include "object/mainmovie.h"
@@ -75,8 +76,8 @@ void CMainMovie::Flush()
bool CMainMovie::Start(MainMovieType type, float time)
{
- D3DMATRIX* mat;
- D3DVECTOR pos;
+ Math::Matrix* mat;
+ Math::Vector pos;
CObject* pObj;
CMotion* motion;
@@ -107,10 +108,10 @@ bool CMainMovie::Start(MainMovieType type, float time)
m_camera->FixCamera();
mat = pObj->RetWorldMatrix(0);
- m_finalLookat[0] = Transform(*mat, D3DVECTOR( 1.6f, 1.0f, 1.2f));
- m_finalEye[0] = Transform(*mat, D3DVECTOR(-1.5f, 5.0f, 3.0f));
- m_finalLookat[1] = Transform(*mat, D3DVECTOR( 1.6f, 1.0f, 1.2f));
- m_finalEye[1] = Transform(*mat, D3DVECTOR( 0.8f, 3.0f, 0.8f));
+ m_finalLookat[0] = Math::Transform(*mat, Math::Vector( 1.6f, 1.0f, 1.2f));
+ m_finalEye[0] = Math::Transform(*mat, Math::Vector(-1.5f, 5.0f, 3.0f));
+ m_finalLookat[1] = Math::Transform(*mat, Math::Vector( 1.6f, 1.0f, 1.2f));
+ m_finalEye[1] = Math::Transform(*mat, Math::Vector( 0.8f, 3.0f, 0.8f));
}
if ( m_type == MM_SATCOMclose )
@@ -168,7 +169,7 @@ bool CMainMovie::IsExist()
bool CMainMovie::EventProcess(const Event &event)
{
- D3DVECTOR initialEye, initialLookat, finalEye, finalLookat, eye, lookat;
+ Math::Vector initialEye, initialLookat, finalEye, finalLookat, eye, lookat;
float progress;
if ( m_type == MM_NONE ) return true;
diff --git a/src/graphics/common/mainmovie.h b/src/object/mainmovie.h
index ddc1b96..d7ac4ab 100644
--- a/src/graphics/common/mainmovie.h
+++ b/src/object/mainmovie.h
@@ -72,9 +72,9 @@ protected:
MainMovieType m_stopType;
float m_speed;
float m_progress;
- D3DVECTOR m_initialEye;
- D3DVECTOR m_initialLookat;
- D3DVECTOR m_finalEye[2];
- D3DVECTOR m_finalLookat[2];
+ Math::Vector m_initialEye;
+ Math::Vector m_initialLookat;
+ Math::Vector m_finalEye[2];
+ Math::Vector m_finalLookat[2];
};
diff --git a/src/object/motion/motion.cpp b/src/object/motion/motion.cpp
index 255feb7..f769dae 100644
--- a/src/object/motion/motion.cpp
+++ b/src/object/motion/motion.cpp
@@ -69,9 +69,9 @@ CMotion::CMotion(CInstanceManager* iMan, CObject* object)
m_actionTime = 0.0f;
m_progress = 0.0f;
- m_linVibration = D3DVECTOR(0.0f, 0.0f, 0.0f);
- m_cirVibration = D3DVECTOR(0.0f, 0.0f, 0.0f);
- m_inclinaison = D3DVECTOR(0.0f, 0.0f, 0.0f);
+ m_linVibration = Math::Vector(0.0f, 0.0f, 0.0f);
+ m_cirVibration = Math::Vector(0.0f, 0.0f, 0.0f);
+ m_inclinaison = Math::Vector(0.0f, 0.0f, 0.0f);
}
// Object's destructor.
@@ -101,7 +101,7 @@ void CMotion::SetBrain(CBrain* brain)
// Creates.
-bool CMotion::Create(D3DVECTOR pos, float angle, ObjectType type, float power)
+bool CMotion::Create(Math::Vector pos, float angle, ObjectType type, float power)
{
return true;
}
@@ -110,7 +110,7 @@ bool CMotion::Create(D3DVECTOR pos, float angle, ObjectType type, float power)
bool CMotion::EventProcess(const Event &event)
{
- D3DVECTOR pos, dir;
+ Math::Vector pos, dir;
float time;
if ( m_object->RetType() != OBJECT_TOTO &&
@@ -221,36 +221,36 @@ bool CMotion::Read(char *line)
// Gives the linear vibration.
-void CMotion::SetLinVibration(D3DVECTOR dir)
+void CMotion::SetLinVibration(Math::Vector dir)
{
m_linVibration = dir;
}
-D3DVECTOR CMotion::RetLinVibration()
+Math::Vector CMotion::RetLinVibration()
{
return m_linVibration;
}
// Gives the circular vibration.
-void CMotion::SetCirVibration(D3DVECTOR dir)
+void CMotion::SetCirVibration(Math::Vector dir)
{
m_cirVibration = dir;
}
-D3DVECTOR CMotion::RetCirVibration()
+Math::Vector CMotion::RetCirVibration()
{
return m_cirVibration;
}
// Gives the tilt.
-void CMotion::SetInclinaison(D3DVECTOR dir)
+void CMotion::SetInclinaison(Math::Vector dir)
{
m_inclinaison = dir;
}
-D3DVECTOR CMotion::RetInclinaison()
+Math::Vector CMotion::RetInclinaison()
{
return m_inclinaison;
}
diff --git a/src/object/motion/motion.h b/src/object/motion/motion.h
index 1c3ab6c..ca2ef79 100644
--- a/src/object/motion/motion.h
+++ b/src/object/motion/motion.h
@@ -49,7 +49,7 @@ public:
void SetBrain(CBrain* brain);
virtual void DeleteObject(bool bAll=false);
- virtual bool Create(D3DVECTOR pos, float angle, ObjectType type, float power);
+ virtual bool Create(Math::Vector pos, float angle, ObjectType type, float power);
virtual bool EventProcess(const Event &event);
virtual Error SetAction(int action, float time=0.2f);
virtual int RetAction();
@@ -60,12 +60,12 @@ public:
virtual bool Write(char *line);
virtual bool Read(char *line);
- virtual void SetLinVibration(D3DVECTOR dir);
- virtual D3DVECTOR RetLinVibration();
- virtual void SetCirVibration(D3DVECTOR dir);
- virtual D3DVECTOR RetCirVibration();
- virtual void SetInclinaison(D3DVECTOR dir);
- virtual D3DVECTOR RetInclinaison();
+ virtual void SetLinVibration(Math::Vector dir);
+ virtual Math::Vector RetLinVibration();
+ virtual void SetCirVibration(Math::Vector dir);
+ virtual Math::Vector RetCirVibration();
+ virtual void SetInclinaison(Math::Vector dir);
+ virtual Math::Vector RetInclinaison();
protected:
@@ -87,8 +87,8 @@ protected:
float m_actionTime;
float m_progress;
- D3DVECTOR m_linVibration; // linear vibration
- D3DVECTOR m_cirVibration; // circular vibration
- D3DVECTOR m_inclinaison; // tilt
+ Math::Vector m_linVibration; // linear vibration
+ Math::Vector m_cirVibration; // circular vibration
+ Math::Vector m_inclinaison; // tilt
};
diff --git a/src/object/motion/motionant.cpp b/src/object/motion/motionant.cpp
index 62a58dc..bdfe773 100644
--- a/src/object/motion/motionant.cpp
+++ b/src/object/motion/motionant.cpp
@@ -80,7 +80,7 @@ void CMotionAnt::DeleteObject(bool bAll)
// Creates a vehicle poses some rolling on the floor.
-bool CMotionAnt::Create(D3DVECTOR pos, float angle, ObjectType type,
+bool CMotionAnt::Create(Math::Vector pos, float angle, ObjectType type,
float power)
{
CModFile* pModFile;
@@ -105,8 +105,8 @@ bool CMotionAnt::Create(D3DVECTOR pos, float angle, ObjectType type,
// A vehicle must have necessarily a collision
//with a sphere of center (0, y, 0) (see 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);
+ m_object->CreateCrashSphere(Math::Vector(0.0f, -2.0f, 0.0f), 4.0f, SOUND_BOUM, 0.20f);
+ m_object->SetGlobalSphere(Math::Vector(-0.5f, 1.0f, 0.0f), 4.0f);
// Creates the head.
rank = m_engine->CreateObject();
@@ -115,7 +115,7 @@ bool CMotionAnt::Create(D3DVECTOR pos, float angle, ObjectType type,
m_object->SetObjectParent(1, 0);
pModFile->ReadModel("objects\\ant2.mod");
pModFile->CreateEngineObject(rank);
- m_object->SetPosition(1, D3DVECTOR(2.0f, 0.0f, 0.0f));
+ m_object->SetPosition(1, Math::Vector(2.0f, 0.0f, 0.0f));
// Creates the tail.
rank = m_engine->CreateObject();
@@ -124,7 +124,7 @@ bool CMotionAnt::Create(D3DVECTOR pos, float angle, ObjectType type,
m_object->SetObjectParent(2, 0);
pModFile->ReadModel("objects\\ant3.mod");
pModFile->CreateEngineObject(rank);
- m_object->SetPosition(2, D3DVECTOR(-1.0f, 0.0f, 0.0f));
+ m_object->SetPosition(2, Math::Vector(-1.0f, 0.0f, 0.0f));
// Creates a right-back thigh.
rank = m_engine->CreateObject();
@@ -133,7 +133,7 @@ bool CMotionAnt::Create(D3DVECTOR pos, float angle, ObjectType type,
m_object->SetObjectParent(3, 0);
pModFile->ReadModel("objects\\ant4.mod");
pModFile->CreateEngineObject(rank);
- m_object->SetPosition(3, D3DVECTOR(-0.4f, -0.1f, -0.3f));
+ m_object->SetPosition(3, Math::Vector(-0.4f, -0.1f, -0.3f));
// Creates a right-back leg.
rank = m_engine->CreateObject();
@@ -142,7 +142,7 @@ bool CMotionAnt::Create(D3DVECTOR pos, float angle, ObjectType type,
m_object->SetObjectParent(4, 3);
pModFile->ReadModel("objects\\ant5.mod");
pModFile->CreateEngineObject(rank);
- m_object->SetPosition(4, D3DVECTOR(0.0f, 0.0f, -1.0f));
+ m_object->SetPosition(4, Math::Vector(0.0f, 0.0f, -1.0f));
// Creates a right-back foot.
rank = m_engine->CreateObject();
@@ -151,7 +151,7 @@ bool CMotionAnt::Create(D3DVECTOR pos, float angle, ObjectType type,
m_object->SetObjectParent(5, 4);
pModFile->ReadModel("objects\\ant6.mod");
pModFile->CreateEngineObject(rank);
- m_object->SetPosition(5, D3DVECTOR(0.0f, 0.0f, -2.0f));
+ m_object->SetPosition(5, Math::Vector(0.0f, 0.0f, -2.0f));
// Creates two middle-right thighs.
rank = m_engine->CreateObject();
@@ -160,7 +160,7 @@ bool CMotionAnt::Create(D3DVECTOR pos, float angle, ObjectType type,
m_object->SetObjectParent(6, 0);
pModFile->ReadModel("objects\\ant4.mod");
pModFile->CreateEngineObject(rank);
- m_object->SetPosition(6, D3DVECTOR(0.1f, -0.1f, -0.4f));
+ m_object->SetPosition(6, Math::Vector(0.1f, -0.1f, -0.4f));
// Creates two middle-right legs.
rank = m_engine->CreateObject();
@@ -169,7 +169,7 @@ bool CMotionAnt::Create(D3DVECTOR pos, float angle, ObjectType type,
m_object->SetObjectParent(7, 6);
pModFile->ReadModel("objects\\ant5.mod");
pModFile->CreateEngineObject(rank);
- m_object->SetPosition(7, D3DVECTOR(0.0f, 0.0f, -1.0f));
+ m_object->SetPosition(7, Math::Vector(0.0f, 0.0f, -1.0f));
// Creates two middle-right foots.
rank = m_engine->CreateObject();
@@ -178,7 +178,7 @@ bool CMotionAnt::Create(D3DVECTOR pos, float angle, ObjectType type,
m_object->SetObjectParent(8, 7);
pModFile->ReadModel("objects\\ant6.mod");
pModFile->CreateEngineObject(rank);
- m_object->SetPosition(8, D3DVECTOR(0.0f, 0.0f, -2.0f));
+ m_object->SetPosition(8, Math::Vector(0.0f, 0.0f, -2.0f));
// Creates the right front thigh.
rank = m_engine->CreateObject();
@@ -187,7 +187,7 @@ bool CMotionAnt::Create(D3DVECTOR pos, float angle, ObjectType type,
m_object->SetObjectParent(9, 0);
pModFile->ReadModel("objects\\ant4.mod");
pModFile->CreateEngineObject(rank);
- m_object->SetPosition(9, D3DVECTOR(1.4f, -0.1f, -0.6f));
+ m_object->SetPosition(9, Math::Vector(1.4f, -0.1f, -0.6f));
// Creates the right front leg.
rank = m_engine->CreateObject();
@@ -196,7 +196,7 @@ bool CMotionAnt::Create(D3DVECTOR pos, float angle, ObjectType type,
m_object->SetObjectParent(10, 9);
pModFile->ReadModel("objects\\ant5.mod");
pModFile->CreateEngineObject(rank);
- m_object->SetPosition(10, D3DVECTOR(0.0f, 0.0f, -1.0f));
+ m_object->SetPosition(10, Math::Vector(0.0f, 0.0f, -1.0f));
// Creates the right front foot.
rank = m_engine->CreateObject();
@@ -205,7 +205,7 @@ bool CMotionAnt::Create(D3DVECTOR pos, float angle, ObjectType type,
m_object->SetObjectParent(11, 10);
pModFile->ReadModel("objects\\ant6.mod");
pModFile->CreateEngineObject(rank);
- m_object->SetPosition(11, D3DVECTOR(0.0f, 0.0f, -2.0f));
+ m_object->SetPosition(11, Math::Vector(0.0f, 0.0f, -2.0f));
// Creates a left-back thigh.
rank = m_engine->CreateObject();
@@ -215,7 +215,7 @@ bool CMotionAnt::Create(D3DVECTOR pos, float angle, ObjectType type,
pModFile->ReadModel("objects\\ant4.mod");
pModFile->Mirror();
pModFile->CreateEngineObject(rank);
- m_object->SetPosition(12, D3DVECTOR(-0.4f, -0.1f, 0.3f));
+ m_object->SetPosition(12, Math::Vector(-0.4f, -0.1f, 0.3f));
// Creates a left-back leg.
rank = m_engine->CreateObject();
@@ -225,7 +225,7 @@ bool CMotionAnt::Create(D3DVECTOR pos, float angle, ObjectType type,
pModFile->ReadModel("objects\\ant5.mod");
pModFile->Mirror();
pModFile->CreateEngineObject(rank);
- m_object->SetPosition(13, D3DVECTOR(0.0f, 0.0f, 1.0f));
+ m_object->SetPosition(13, Math::Vector(0.0f, 0.0f, 1.0f));
// Creates a left-back foot.
rank = m_engine->CreateObject();
@@ -235,7 +235,7 @@ bool CMotionAnt::Create(D3DVECTOR pos, float angle, ObjectType type,
pModFile->ReadModel("objects\\ant6.mod");
pModFile->Mirror();
pModFile->CreateEngineObject(rank);
- m_object->SetPosition(14, D3DVECTOR(0.0f, 0.0f, 2.0f));
+ m_object->SetPosition(14, Math::Vector(0.0f, 0.0f, 2.0f));
// Creates two middle-left thighs.
rank = m_engine->CreateObject();
@@ -245,7 +245,7 @@ bool CMotionAnt::Create(D3DVECTOR pos, float angle, ObjectType type,
pModFile->ReadModel("objects\\ant4.mod");
pModFile->Mirror();
pModFile->CreateEngineObject(rank);
- m_object->SetPosition(15, D3DVECTOR(0.1f, -0.1f, 0.4f));
+ m_object->SetPosition(15, Math::Vector(0.1f, -0.1f, 0.4f));
// Creates two middle-left legs.
rank = m_engine->CreateObject();
@@ -255,7 +255,7 @@ bool CMotionAnt::Create(D3DVECTOR pos, float angle, ObjectType type,
pModFile->ReadModel("objects\\ant5.mod");
pModFile->Mirror();
pModFile->CreateEngineObject(rank);
- m_object->SetPosition(16, D3DVECTOR(0.0f, 0.0f, 1.0f));
+ m_object->SetPosition(16, Math::Vector(0.0f, 0.0f, 1.0f));
// Creates two middle-left foot.
rank = m_engine->CreateObject();
@@ -265,7 +265,7 @@ bool CMotionAnt::Create(D3DVECTOR pos, float angle, ObjectType type,
pModFile->ReadModel("objects\\ant6.mod");
pModFile->Mirror();
pModFile->CreateEngineObject(rank);
- m_object->SetPosition(17, D3DVECTOR(0.0f, 0.0f, 2.0f));
+ m_object->SetPosition(17, Math::Vector(0.0f, 0.0f, 2.0f));
// Creates the left front thigh.
rank = m_engine->CreateObject();
@@ -275,7 +275,7 @@ bool CMotionAnt::Create(D3DVECTOR pos, float angle, ObjectType type,
pModFile->ReadModel("objects\\ant4.mod");
pModFile->Mirror();
pModFile->CreateEngineObject(rank);
- m_object->SetPosition(18, D3DVECTOR(1.4f, -0.1f, 0.6f));
+ m_object->SetPosition(18, Math::Vector(1.4f, -0.1f, 0.6f));
// Creates the left front leg.
rank = m_engine->CreateObject();
@@ -285,7 +285,7 @@ bool CMotionAnt::Create(D3DVECTOR pos, float angle, ObjectType type,
pModFile->ReadModel("objects\\ant5.mod");
pModFile->Mirror();
pModFile->CreateEngineObject(rank);
- m_object->SetPosition(19, D3DVECTOR(0.0f, 0.0f, 1.0f));
+ m_object->SetPosition(19, Math::Vector(0.0f, 0.0f, 1.0f));
// Creates the left front foot.
rank = m_engine->CreateObject();
@@ -295,7 +295,7 @@ bool CMotionAnt::Create(D3DVECTOR pos, float angle, ObjectType type,
pModFile->ReadModel("objects\\ant6.mod");
pModFile->Mirror();
pModFile->CreateEngineObject(rank);
- m_object->SetPosition(20, D3DVECTOR(0.0f, 0.0f, 2.0f));
+ m_object->SetPosition(20, Math::Vector(0.0f, 0.0f, 2.0f));
m_object->CreateShadowCircle(4.0f, 0.5f);
@@ -475,7 +475,7 @@ bool CMotionAnt::EventProcess(const Event &event)
bool CMotionAnt::EventFrame(const Event &event)
{
- D3DVECTOR dir, pos, speed;
+ Math::Vector dir, pos, speed;
Math::Point dim;
float s, a, prog, time;
float tSt[9], tNd[9];
@@ -671,11 +671,11 @@ bool CMotionAnt::EventFrame(const Event &event)
}
else if ( m_actionType == MAS_BURN ) // burning?
{
- dir = D3DVECTOR(Math::PI, 0.0f, 0.0f);
+ dir = Math::Vector(Math::PI, 0.0f, 0.0f);
SetCirVibration(dir);
- dir = D3DVECTOR(0.0f, -1.5f, 0.0f);
+ dir = Math::Vector(0.0f, -1.5f, 0.0f);
SetLinVibration(dir);
- dir = D3DVECTOR(0.0f, 0.0f, 0.0f);
+ dir = Math::Vector(0.0f, 0.0f, 0.0f);
SetInclinaison(dir);
time = event.rTime*1.0f;
@@ -684,7 +684,7 @@ bool CMotionAnt::EventFrame(const Event &event)
}
else if ( m_actionType == MAS_RUIN ) // destroyed?
{
- dir = D3DVECTOR(0.0f, 0.0f, 0.0f);
+ dir = Math::Vector(0.0f, 0.0f, 0.0f);
SetLinVibration(dir);
SetCirVibration(dir);
SetInclinaison(dir);
@@ -723,7 +723,7 @@ bool CMotionAnt::EventFrame(const Event &event)
dir.z = 0.0f;
SetCirVibration(dir);
- dir = D3DVECTOR(0.0f, 0.0f, 0.0f);
+ dir = Math::Vector(0.0f, 0.0f, 0.0f);
SetInclinaison(dir);
if ( m_progress >= 1.0f )
@@ -752,7 +752,7 @@ bool CMotionAnt::EventFrame(const Event &event)
}
}
- dir = D3DVECTOR(0.0f, -1.0f, 0.0f);
+ dir = Math::Vector(0.0f, -1.0f, 0.0f);
SetLinVibration(dir);
dir.x = sinf(m_armTimeAbs* 4.0f)*0.10f+
sinf(m_armTimeAbs* 7.0f)*0.20f+
@@ -767,7 +767,7 @@ bool CMotionAnt::EventFrame(const Event &event)
sinf(m_armTimeAbs* 9.0f)*0.04f+
sinf(m_armTimeAbs*23.0f)*0.03f;
SetCirVibration(dir);
- dir = D3DVECTOR(0.0f, 0.0f, 0.0f);
+ dir = Math::Vector(0.0f, 0.0f, 0.0f);
SetInclinaison(dir);
m_object->SetAngleY(1, sinf(m_armTimeAbs*8.0f)*0.7f); // head
@@ -814,7 +814,7 @@ bool CMotionAnt::EventFrame(const Event &event)
dir.z = 0.0f;
SetCirVibration(dir);
- dir = D3DVECTOR(0.0f, 0.0f, 0.0f);
+ dir = Math::Vector(0.0f, 0.0f, 0.0f);
SetInclinaison(dir);
if ( m_progress >= 1.0f )
@@ -833,7 +833,7 @@ bool CMotionAnt::EventFrame(const Event &event)
{
m_object->SetAngleZ(2, sinf(m_armTimeAbs*1.7f)*0.15f); // tail
- dir = D3DVECTOR(0.0f, 0.0f, 0.0f);
+ dir = Math::Vector(0.0f, 0.0f, 0.0f);
SetLinVibration(dir);
SetInclinaison(dir);
}
@@ -872,7 +872,7 @@ bool CMotionAnt::EventFrame(const Event &event)
SetLinVibration(dir);
}
- dir = D3DVECTOR(0.0f, 0.0f, 0.0f);
+ dir = Math::Vector(0.0f, 0.0f, 0.0f);
SetCirVibration(dir);
m_object->SetAngleZ(1, sinf(m_armTimeAbs*1.4f)*0.20f); // head
diff --git a/src/object/motion/motionant.h b/src/object/motion/motionant.h
index dc969fe..499e18e 100644
--- a/src/object/motion/motionant.h
+++ b/src/object/motion/motionant.h
@@ -59,7 +59,7 @@ public:
~CMotionAnt();
void DeleteObject(bool bAll=false);
- bool Create(D3DVECTOR pos, float angle, ObjectType type, float power);
+ bool Create(Math::Vector pos, float angle, ObjectType type, float power);
bool EventProcess(const Event &event);
protected:
diff --git a/src/object/motion/motionbee.cpp b/src/object/motion/motionbee.cpp
index 41da476..c072ea2 100644
--- a/src/object/motion/motionbee.cpp
+++ b/src/object/motion/motionbee.cpp
@@ -79,7 +79,7 @@ void CMotionBee::DeleteObject(bool bAll)
// Creates a vehicle traveling any lands on the ground.
-bool CMotionBee::Create(D3DVECTOR pos, float angle, ObjectType type,
+bool CMotionBee::Create(Math::Vector pos, float angle, ObjectType type,
float power)
{
CModFile* pModFile;
@@ -104,8 +104,8 @@ bool CMotionBee::Create(D3DVECTOR pos, float angle, ObjectType type,
// A vehicle must have an obligatory collision
// with a sphere of center (0, y, 0) (see GetCrashSphere).
- m_object->CreateCrashSphere(D3DVECTOR(0.0f, 0.0f, 0.0f), 4.0f, SOUND_BOUM, 0.20f);
- m_object->SetGlobalSphere(D3DVECTOR(-1.0f, 1.0f, 0.0f), 5.0f);
+ m_object->CreateCrashSphere(Math::Vector(0.0f, 0.0f, 0.0f), 4.0f, SOUND_BOUM, 0.20f);
+ m_object->SetGlobalSphere(Math::Vector(-1.0f, 1.0f, 0.0f), 5.0f);
// Creates the head.
rank = m_engine->CreateObject();
@@ -114,7 +114,7 @@ bool CMotionBee::Create(D3DVECTOR pos, float angle, ObjectType type,
m_object->SetObjectParent(1, 0);
pModFile->ReadModel("objects\\bee2.mod");
pModFile->CreateEngineObject(rank);
- m_object->SetPosition(1, D3DVECTOR(1.6f, 0.3f, 0.0f));
+ m_object->SetPosition(1, Math::Vector(1.6f, 0.3f, 0.0f));
// Creates the tail.
rank = m_engine->CreateObject();
@@ -123,7 +123,7 @@ bool CMotionBee::Create(D3DVECTOR pos, float angle, ObjectType type,
m_object->SetObjectParent(2, 0);
pModFile->ReadModel("objects\\bee3.mod");
pModFile->CreateEngineObject(rank);
- m_object->SetPosition(2, D3DVECTOR(-0.8f, 0.0f, 0.0f));
+ m_object->SetPosition(2, Math::Vector(-0.8f, 0.0f, 0.0f));
// Creates a right-back thigh.
rank = m_engine->CreateObject();
@@ -132,7 +132,7 @@ bool CMotionBee::Create(D3DVECTOR pos, float angle, ObjectType type,
m_object->SetObjectParent(3, 0);
pModFile->ReadModel("objects\\ant4.mod");
pModFile->CreateEngineObject(rank);
- m_object->SetPosition(3, D3DVECTOR(-0.3f, -0.1f, -0.2f));
+ m_object->SetPosition(3, Math::Vector(-0.3f, -0.1f, -0.2f));
// Creates a right-back leg.
rank = m_engine->CreateObject();
@@ -141,7 +141,7 @@ bool CMotionBee::Create(D3DVECTOR pos, float angle, ObjectType type,
m_object->SetObjectParent(4, 3);
pModFile->ReadModel("objects\\ant5.mod");
pModFile->CreateEngineObject(rank);
- m_object->SetPosition(4, D3DVECTOR(0.0f, 0.0f, -1.0f));
+ m_object->SetPosition(4, Math::Vector(0.0f, 0.0f, -1.0f));
// Creates a right-back foot.
rank = m_engine->CreateObject();
@@ -150,7 +150,7 @@ bool CMotionBee::Create(D3DVECTOR pos, float angle, ObjectType type,
m_object->SetObjectParent(5, 4);
pModFile->ReadModel("objects\\ant6.mod");
pModFile->CreateEngineObject(rank);
- m_object->SetPosition(5, D3DVECTOR(0.0f, 0.0f, -2.0f));
+ m_object->SetPosition(5, Math::Vector(0.0f, 0.0f, -2.0f));
// Creates two middle-right thighs.
rank = m_engine->CreateObject();
@@ -159,7 +159,7 @@ bool CMotionBee::Create(D3DVECTOR pos, float angle, ObjectType type,
m_object->SetObjectParent(6, 0);
pModFile->ReadModel("objects\\ant4.mod");
pModFile->CreateEngineObject(rank);
- m_object->SetPosition(6, D3DVECTOR(0.3f, -0.1f, -0.4f));
+ m_object->SetPosition(6, Math::Vector(0.3f, -0.1f, -0.4f));
// Creates two middle-right legs.
rank = m_engine->CreateObject();
@@ -168,7 +168,7 @@ bool CMotionBee::Create(D3DVECTOR pos, float angle, ObjectType type,
m_object->SetObjectParent(7, 6);
pModFile->ReadModel("objects\\ant5.mod");
pModFile->CreateEngineObject(rank);
- m_object->SetPosition(7, D3DVECTOR(0.0f, 0.0f, -1.0f));
+ m_object->SetPosition(7, Math::Vector(0.0f, 0.0f, -1.0f));
// Creates two middle-right feet.
rank = m_engine->CreateObject();
@@ -177,7 +177,7 @@ bool CMotionBee::Create(D3DVECTOR pos, float angle, ObjectType type,
m_object->SetObjectParent(8, 7);
pModFile->ReadModel("objects\\ant6.mod");
pModFile->CreateEngineObject(rank);
- m_object->SetPosition(8, D3DVECTOR(0.0f, 0.0f, -2.0f));
+ m_object->SetPosition(8, Math::Vector(0.0f, 0.0f, -2.0f));
// Creates the right front thigh.
rank = m_engine->CreateObject();
@@ -186,7 +186,7 @@ bool CMotionBee::Create(D3DVECTOR pos, float angle, ObjectType type,
m_object->SetObjectParent(9, 0);
pModFile->ReadModel("objects\\ant4.mod");
pModFile->CreateEngineObject(rank);
- m_object->SetPosition(9, D3DVECTOR(1.0f, -0.1f, -0.7f));
+ m_object->SetPosition(9, Math::Vector(1.0f, -0.1f, -0.7f));
// Creates the right front leg.
rank = m_engine->CreateObject();
@@ -195,7 +195,7 @@ bool CMotionBee::Create(D3DVECTOR pos, float angle, ObjectType type,
m_object->SetObjectParent(10, 9);
pModFile->ReadModel("objects\\ant5.mod");
pModFile->CreateEngineObject(rank);
- m_object->SetPosition(10, D3DVECTOR(0.0f, 0.0f, -1.0f));
+ m_object->SetPosition(10, Math::Vector(0.0f, 0.0f, -1.0f));
// Creates the right front foot.
rank = m_engine->CreateObject();
@@ -204,7 +204,7 @@ bool CMotionBee::Create(D3DVECTOR pos, float angle, ObjectType type,
m_object->SetObjectParent(11, 10);
pModFile->ReadModel("objects\\ant6.mod");
pModFile->CreateEngineObject(rank);
- m_object->SetPosition(11, D3DVECTOR(0.0f, 0.0f, -2.0f));
+ m_object->SetPosition(11, Math::Vector(0.0f, 0.0f, -2.0f));
// Creates a left-back thigh.
rank = m_engine->CreateObject();
@@ -213,7 +213,7 @@ bool CMotionBee::Create(D3DVECTOR pos, float angle, ObjectType type,
m_object->SetObjectParent(12, 0);
pModFile->ReadModel("objects\\ant4.mod");
pModFile->CreateEngineObject(rank);
- m_object->SetPosition(12, D3DVECTOR(-0.3f, -0.1f, 0.2f));
+ m_object->SetPosition(12, Math::Vector(-0.3f, -0.1f, 0.2f));
m_object->SetAngleY(12, Math::PI);
// Creates a left-back leg.
@@ -223,7 +223,7 @@ bool CMotionBee::Create(D3DVECTOR pos, float angle, ObjectType type,
m_object->SetObjectParent(13, 12);
pModFile->ReadModel("objects\\ant5.mod");
pModFile->CreateEngineObject(rank);
- m_object->SetPosition(13, D3DVECTOR(0.0f, 0.0f, -1.0f));
+ m_object->SetPosition(13, Math::Vector(0.0f, 0.0f, -1.0f));
// Creates a left-back foot.
rank = m_engine->CreateObject();
@@ -232,7 +232,7 @@ bool CMotionBee::Create(D3DVECTOR pos, float angle, ObjectType type,
m_object->SetObjectParent(14, 13);
pModFile->ReadModel("objects\\ant6.mod");
pModFile->CreateEngineObject(rank);
- m_object->SetPosition(14, D3DVECTOR(0.0f, 0.0f, -2.0f));
+ m_object->SetPosition(14, Math::Vector(0.0f, 0.0f, -2.0f));
// Creates two middle-left thigh.
rank = m_engine->CreateObject();
@@ -241,7 +241,7 @@ bool CMotionBee::Create(D3DVECTOR pos, float angle, ObjectType type,
m_object->SetObjectParent(15, 0);
pModFile->ReadModel("objects\\ant4.mod");
pModFile->CreateEngineObject(rank);
- m_object->SetPosition(15, D3DVECTOR(0.3f, -0.1f, 0.4f));
+ m_object->SetPosition(15, Math::Vector(0.3f, -0.1f, 0.4f));
m_object->SetAngleY(15, Math::PI);
// Creates two middle-left legs.
@@ -251,7 +251,7 @@ bool CMotionBee::Create(D3DVECTOR pos, float angle, ObjectType type,
m_object->SetObjectParent(16, 15);
pModFile->ReadModel("objects\\ant5.mod");
pModFile->CreateEngineObject(rank);
- m_object->SetPosition(16, D3DVECTOR(0.0f, 0.0f, -1.0f));
+ m_object->SetPosition(16, Math::Vector(0.0f, 0.0f, -1.0f));
// Creates two middle-left feet.
rank = m_engine->CreateObject();
@@ -260,7 +260,7 @@ bool CMotionBee::Create(D3DVECTOR pos, float angle, ObjectType type,
m_object->SetObjectParent(17, 16);
pModFile->ReadModel("objects\\ant6.mod");
pModFile->CreateEngineObject(rank);
- m_object->SetPosition(17, D3DVECTOR(0.0f, 0.0f, -2.0f));
+ m_object->SetPosition(17, Math::Vector(0.0f, 0.0f, -2.0f));
// Creates front-left thigh.
rank = m_engine->CreateObject();
@@ -269,7 +269,7 @@ bool CMotionBee::Create(D3DVECTOR pos, float angle, ObjectType type,
m_object->SetObjectParent(18, 0);
pModFile->ReadModel("objects\\ant4.mod");
pModFile->CreateEngineObject(rank);
- m_object->SetPosition(18, D3DVECTOR(1.0f, -0.1f, 0.7f));
+ m_object->SetPosition(18, Math::Vector(1.0f, -0.1f, 0.7f));
m_object->SetAngleY(18, Math::PI);
// Creates front-left leg.
@@ -279,7 +279,7 @@ bool CMotionBee::Create(D3DVECTOR pos, float angle, ObjectType type,
m_object->SetObjectParent(19, 18);
pModFile->ReadModel("objects\\ant5.mod");
pModFile->CreateEngineObject(rank);
- m_object->SetPosition(19, D3DVECTOR(0.0f, 0.0f, -1.0f));
+ m_object->SetPosition(19, Math::Vector(0.0f, 0.0f, -1.0f));
// Creates front-left foot.
rank = m_engine->CreateObject();
@@ -288,7 +288,7 @@ bool CMotionBee::Create(D3DVECTOR pos, float angle, ObjectType type,
m_object->SetObjectParent(20, 19);
pModFile->ReadModel("objects\\ant6.mod");
pModFile->CreateEngineObject(rank);
- m_object->SetPosition(20, D3DVECTOR(0.0f, 0.0f, -2.0f));
+ m_object->SetPosition(20, Math::Vector(0.0f, 0.0f, -2.0f));
// Creates the right wing.
rank = m_engine->CreateObject();
@@ -297,7 +297,7 @@ bool CMotionBee::Create(D3DVECTOR pos, float angle, ObjectType type,
m_object->SetObjectParent(21, 0);
pModFile->ReadModel("objects\\bee7.mod");
pModFile->CreateEngineObject(rank);
- m_object->SetPosition(21, D3DVECTOR(0.8f, 0.4f, -0.5f));
+ m_object->SetPosition(21, Math::Vector(0.8f, 0.4f, -0.5f));
// Creates the left wing.
rank = m_engine->CreateObject();
@@ -307,7 +307,7 @@ bool CMotionBee::Create(D3DVECTOR pos, float angle, ObjectType type,
pModFile->ReadModel("objects\\bee7.mod");
pModFile->Mirror();
pModFile->CreateEngineObject(rank);
- m_object->SetPosition(22, D3DVECTOR(0.8f, 0.4f, 0.5f));
+ m_object->SetPosition(22, Math::Vector(0.8f, 0.4f, 0.5f));
m_object->CreateShadowCircle(6.0f, 0.5f);
@@ -452,7 +452,7 @@ bool CMotionBee::EventProcess(const Event &event)
bool CMotionBee::EventFrame(const Event &event)
{
- D3DVECTOR dir;
+ Math::Vector dir;
float s, a, prog;
int action, i, st, nd;
bool bStop;
diff --git a/src/object/motion/motionbee.h b/src/object/motion/motionbee.h
index 5c69bff..7dce32b 100644
--- a/src/object/motion/motionbee.h
+++ b/src/object/motion/motionbee.h
@@ -54,7 +54,7 @@ public:
~CMotionBee();
void DeleteObject(bool bAll=false);
- bool Create(D3DVECTOR pos, float angle, ObjectType type, float power);
+ bool Create(Math::Vector pos, float angle, ObjectType type, float power);
bool EventProcess(const Event &event);
protected:
diff --git a/src/object/motion/motionhuman.cpp b/src/object/motion/motionhuman.cpp
index bcdf2df..bf4e588 100644
--- a/src/object/motion/motionhuman.cpp
+++ b/src/object/motion/motionhuman.cpp
@@ -105,7 +105,7 @@ Error CMotionHuman::SetAction(int action, float time)
// Creates cosmonaut on the ground.
-bool CMotionHuman::Create(D3DVECTOR pos, float angle, ObjectType type,
+bool CMotionHuman::Create(Math::Vector pos, float angle, ObjectType type,
float power)
{
CModFile* pModFile;
@@ -173,8 +173,8 @@ bool CMotionHuman::Create(D3DVECTOR pos, float angle, ObjectType type,
m_object->SetAngleY(0, angle);
// A vehicle must have an obligatory collision with a sphere of center (0, y, 0) (see GetCrashSphere).
- m_object->CreateCrashSphere(D3DVECTOR(0.0f, 0.0f, 0.0f), 2.0f, SOUND_AIE, 0.20f);
- m_object->SetGlobalSphere(D3DVECTOR(0.0f, 1.0f, 0.0f), 4.0f);
+ m_object->CreateCrashSphere(Math::Vector(0.0f, 0.0f, 0.0f), 2.0f, SOUND_AIE, 0.20f);
+ m_object->SetGlobalSphere(Math::Vector(0.0f, 1.0f, 0.0f), 4.0f);
// Creates the head.
rank = m_engine->CreateObject();
@@ -203,11 +203,11 @@ bool CMotionHuman::Create(D3DVECTOR pos, float angle, ObjectType type,
pModFile->ReadModel("objects\\human2t.mod");
}
pModFile->CreateEngineObject(rank);
- m_object->SetPosition(1, D3DVECTOR(0.0f, 2.7f, 0.0f));
+ m_object->SetPosition(1, Math::Vector(0.0f, 2.7f, 0.0f));
if ( option == 1 || // head without helmet?
option == 2 ) // without a backpack?
{
- m_object->SetZoom(1, D3DVECTOR(1.0f, 1.05f, 1.0f));
+ m_object->SetZoom(1, Math::Vector(1.0f, 1.05f, 1.0f));
}
// Creates the glasses.
@@ -230,8 +230,8 @@ bool CMotionHuman::Create(D3DVECTOR pos, float angle, ObjectType type,
m_object->SetObjectParent(2, 0);
pModFile->ReadModel("objects\\human3.mod");
pModFile->CreateEngineObject(rank);
- m_object->SetPosition(2, D3DVECTOR(0.0f, 2.3f, -1.2f));
- m_object->SetAngle(2, D3DVECTOR(90.0f*Math::PI/180.0f, 90.0f*Math::PI/180.0f, -50.0f*Math::PI/180.0f));
+ m_object->SetPosition(2, Math::Vector(0.0f, 2.3f, -1.2f));
+ m_object->SetAngle(2, Math::Vector(90.0f*Math::PI/180.0f, 90.0f*Math::PI/180.0f, -50.0f*Math::PI/180.0f));
// Creates the right forearm.
rank = m_engine->CreateObject();
@@ -240,8 +240,8 @@ bool CMotionHuman::Create(D3DVECTOR pos, float angle, ObjectType type,
m_object->SetObjectParent(3, 2);
pModFile->ReadModel("objects\\human4r.mod");
pModFile->CreateEngineObject(rank);
- m_object->SetPosition(3, D3DVECTOR(1.3f, 0.0f, 0.0f));
- m_object->SetAngle(3, D3DVECTOR(0.0f*Math::PI/180.0f, -20.0f*Math::PI/180.0f, 0.0f*Math::PI/180.0f));
+ m_object->SetPosition(3, Math::Vector(1.3f, 0.0f, 0.0f));
+ m_object->SetAngle(3, Math::Vector(0.0f*Math::PI/180.0f, -20.0f*Math::PI/180.0f, 0.0f*Math::PI/180.0f));
// Creates right hand.
rank = m_engine->CreateObject();
@@ -250,7 +250,7 @@ bool CMotionHuman::Create(D3DVECTOR pos, float angle, ObjectType type,
m_object->SetObjectParent(4, 3);
pModFile->ReadModel("objects\\human5.mod");
pModFile->CreateEngineObject(rank);
- m_object->SetPosition(4, D3DVECTOR(1.2f, 0.0f, 0.0f));
+ m_object->SetPosition(4, Math::Vector(1.2f, 0.0f, 0.0f));
// Creates the right thigh.
rank = m_engine->CreateObject();
@@ -259,8 +259,8 @@ bool CMotionHuman::Create(D3DVECTOR pos, float angle, ObjectType type,
m_object->SetObjectParent(5, 0);
pModFile->ReadModel("objects\\human6.mod");
pModFile->CreateEngineObject(rank);
- m_object->SetPosition(5, D3DVECTOR(0.0f, 0.0f, -0.7f));
- m_object->SetAngle(5, D3DVECTOR(10.0f*Math::PI/180.0f, 0.0f*Math::PI/180.0f, 5.0f*Math::PI/180.0f));
+ m_object->SetPosition(5, Math::Vector(0.0f, 0.0f, -0.7f));
+ m_object->SetAngle(5, Math::Vector(10.0f*Math::PI/180.0f, 0.0f*Math::PI/180.0f, 5.0f*Math::PI/180.0f));
// Creates the right leg.
rank = m_engine->CreateObject();
@@ -269,8 +269,8 @@ bool CMotionHuman::Create(D3DVECTOR pos, float angle, ObjectType type,
m_object->SetObjectParent(6, 5);
pModFile->ReadModel("objects\\human7.mod");
pModFile->CreateEngineObject(rank);
- m_object->SetPosition(6, D3DVECTOR(0.0f, -1.5f, 0.0f));
- m_object->SetAngle(6, D3DVECTOR(0.0f*Math::PI/180.0f, 0.0f*Math::PI/180.0f, -10.0f*Math::PI/180.0f));
+ m_object->SetPosition(6, Math::Vector(0.0f, -1.5f, 0.0f));
+ m_object->SetAngle(6, Math::Vector(0.0f*Math::PI/180.0f, 0.0f*Math::PI/180.0f, -10.0f*Math::PI/180.0f));
// Creates the right foot.
rank = m_engine->CreateObject();
@@ -279,8 +279,8 @@ bool CMotionHuman::Create(D3DVECTOR pos, float angle, ObjectType type,
m_object->SetObjectParent(7, 6);
pModFile->ReadModel("objects\\human8.mod");
pModFile->CreateEngineObject(rank);
- m_object->SetPosition(7, D3DVECTOR(0.0f, -1.5f, 0.0f));
- m_object->SetAngle(7, D3DVECTOR(-10.0f*Math::PI/180.0f, 5.0f*Math::PI/180.0f, 5.0f*Math::PI/180.0f));
+ m_object->SetPosition(7, Math::Vector(0.0f, -1.5f, 0.0f));
+ m_object->SetAngle(7, Math::Vector(-10.0f*Math::PI/180.0f, 5.0f*Math::PI/180.0f, 5.0f*Math::PI/180.0f));
// Creates the left arm.
rank = m_engine->CreateObject();
@@ -290,8 +290,8 @@ bool CMotionHuman::Create(D3DVECTOR pos, float angle, ObjectType type,
pModFile->ReadModel("objects\\human3.mod");
pModFile->Mirror();
pModFile->CreateEngineObject(rank);
- m_object->SetPosition(8, D3DVECTOR(0.0f, 2.3f, 1.2f));
- m_object->SetAngle(8, D3DVECTOR(-90.0f*Math::PI/180.0f, -90.0f*Math::PI/180.0f, -50.0f*Math::PI/180.0f));
+ m_object->SetPosition(8, Math::Vector(0.0f, 2.3f, 1.2f));
+ m_object->SetAngle(8, Math::Vector(-90.0f*Math::PI/180.0f, -90.0f*Math::PI/180.0f, -50.0f*Math::PI/180.0f));
// Creates the left forearm.
rank = m_engine->CreateObject();
@@ -301,8 +301,8 @@ bool CMotionHuman::Create(D3DVECTOR pos, float angle, ObjectType type,
pModFile->ReadModel("objects\\human4l.mod");
pModFile->Mirror();
pModFile->CreateEngineObject(rank);
- m_object->SetPosition(9, D3DVECTOR(1.3f, 0.0f, 0.0f));
- m_object->SetAngle(9, D3DVECTOR(0.0f*Math::PI/180.0f, 20.0f*Math::PI/180.0f, 0.0f*Math::PI/180.0f));
+ m_object->SetPosition(9, Math::Vector(1.3f, 0.0f, 0.0f));
+ m_object->SetAngle(9, Math::Vector(0.0f*Math::PI/180.0f, 20.0f*Math::PI/180.0f, 0.0f*Math::PI/180.0f));
// Creates left hand.
rank = m_engine->CreateObject();
@@ -312,7 +312,7 @@ bool CMotionHuman::Create(D3DVECTOR pos, float angle, ObjectType type,
pModFile->ReadModel("objects\\human5.mod");
pModFile->Mirror();
pModFile->CreateEngineObject(rank);
- m_object->SetPosition(10, D3DVECTOR(1.2f, 0.0f, 0.0f));
+ m_object->SetPosition(10, Math::Vector(1.2f, 0.0f, 0.0f));
// Creates the left thigh.
rank = m_engine->CreateObject();
@@ -322,8 +322,8 @@ bool CMotionHuman::Create(D3DVECTOR pos, float angle, ObjectType type,
pModFile->ReadModel("objects\\human6.mod");
pModFile->Mirror();
pModFile->CreateEngineObject(rank);
- m_object->SetPosition(11, D3DVECTOR(0.0f, 0.0f, 0.7f));
- m_object->SetAngle(11, D3DVECTOR(-10.0f*Math::PI/180.0f, 0.0f*Math::PI/180.0f, 5.0f*Math::PI/180.0f));
+ m_object->SetPosition(11, Math::Vector(0.0f, 0.0f, 0.7f));
+ m_object->SetAngle(11, Math::Vector(-10.0f*Math::PI/180.0f, 0.0f*Math::PI/180.0f, 5.0f*Math::PI/180.0f));
// Creates the left leg.
rank = m_engine->CreateObject();
@@ -333,8 +333,8 @@ bool CMotionHuman::Create(D3DVECTOR pos, float angle, ObjectType type,
pModFile->ReadModel("objects\\human7.mod");
pModFile->Mirror();
pModFile->CreateEngineObject(rank);
- m_object->SetPosition(12, D3DVECTOR(0.0f, -1.5f, 0.0f));
- m_object->SetAngle(12, D3DVECTOR(0.0f*Math::PI/180.0f, 0.0f*Math::PI/180.0f, -10.0f*Math::PI/180.0f));
+ m_object->SetPosition(12, Math::Vector(0.0f, -1.5f, 0.0f));
+ m_object->SetAngle(12, Math::Vector(0.0f*Math::PI/180.0f, 0.0f*Math::PI/180.0f, -10.0f*Math::PI/180.0f));
// Creates the left foot.
rank = m_engine->CreateObject();
@@ -344,8 +344,8 @@ bool CMotionHuman::Create(D3DVECTOR pos, float angle, ObjectType type,
pModFile->ReadModel("objects\\human8.mod");
pModFile->Mirror();
pModFile->CreateEngineObject(rank);
- m_object->SetPosition(13, D3DVECTOR(0.0f, -1.5f, 0.0f));
- m_object->SetAngle(13, D3DVECTOR(10.0f*Math::PI/180.0f, -5.0f*Math::PI/180.0f, 5.0f*Math::PI/180.0f));
+ m_object->SetPosition(13, Math::Vector(0.0f, -1.5f, 0.0f));
+ m_object->SetAngle(13, Math::Vector(10.0f*Math::PI/180.0f, -5.0f*Math::PI/180.0f, 5.0f*Math::PI/180.0f));
// Creates the neutron gun.
if ( option != 2 ) // with backpack?
@@ -356,7 +356,7 @@ bool CMotionHuman::Create(D3DVECTOR pos, float angle, ObjectType type,
m_object->SetObjectParent(14, 0);
pModFile->ReadModel("objects\\human9.mod");
pModFile->CreateEngineObject(rank);
- m_object->SetPosition(14, D3DVECTOR(-1.5f, 0.3f, -1.35f));
+ m_object->SetPosition(14, Math::Vector(-1.5f, 0.3f, -1.35f));
m_object->SetAngleZ(14, Math::PI);
}
@@ -717,8 +717,8 @@ bool CMotionHuman::EventProcess(const Event &event)
bool CMotionHuman::EventFrame(const Event &event)
{
- D3DMATRIX* mat;
- D3DVECTOR dir, actual, pos, speed, pf;
+ Math::Matrix* mat;
+ Math::Vector dir, actual, pos, speed, pf;
Math::Point center, dim, p2;
float s, a, prog, rTime[2], lTime[2], time, rot, hr, hl;
float al, ar, af;
@@ -749,13 +749,13 @@ bool CMotionHuman::EventFrame(const Event &event)
if ( m_bDisplayPerso && m_main->RetGamerOnlyHead() )
{
m_time += event.rTime;
- m_object->SetLinVibration(D3DVECTOR(0.0f, -0.55f, 0.0f));
- m_object->SetCirVibration(D3DVECTOR(0.0f, m_main->RetPersoAngle(), 0.0f));
+ m_object->SetLinVibration(Math::Vector(0.0f, -0.55f, 0.0f));
+ m_object->SetCirVibration(Math::Vector(0.0f, m_main->RetPersoAngle(), 0.0f));
return true;
}
if ( m_bDisplayPerso )
{
- m_object->SetCirVibration(D3DVECTOR(0.0f, m_main->RetPersoAngle()+0.2f, 0.0f));
+ m_object->SetCirVibration(Math::Vector(0.0f, m_main->RetPersoAngle()+0.2f, 0.0f));
}
shield = m_object->RetShield();
@@ -1322,7 +1322,7 @@ bool CMotionHuman::EventFrame(const Event &event)
pos.x += (Math::Rand()-0.5f)*4.0f;
pos.z += (Math::Rand()-0.5f)*4.0f;
m_terrain->MoveOnFloor(pos);
- speed = D3DVECTOR(0.0f, 0.0f, 0.0f);
+ speed = Math::Vector(0.0f, 0.0f, 0.0f);
dim.x = 1.2f+Math::Rand()*1.2f;
dim.y = dim.x;
m_particule->CreateParticule(pos, speed, dim, PARTICRASH, 2.0f, 0.0f, 0.0f);
@@ -1392,7 +1392,7 @@ bool CMotionHuman::EventFrame(const Event &event)
pos.x += (Math::Rand()-0.5f)*8.0f;
pos.z += (Math::Rand()-0.5f)*8.0f;
m_terrain->MoveOnFloor(pos);
- speed = D3DVECTOR(0.0f, 0.0f, 0.0f);
+ speed = Math::Vector(0.0f, 0.0f, 0.0f);
dim.x = 2.0f+Math::Rand()*1.5f;
dim.y = dim.x;
m_particule->CreateParticule(pos, speed, dim, PARTICRASH, 2.0f, 0.0f, 0.0f);
@@ -1488,7 +1488,7 @@ bool CMotionHuman::EventFrame(const Event &event)
dir.z = Math::Smooth(actual.z, dir.z, time);
m_object->SetInclinaison(dir);
- m_object->SetCirVibration(D3DVECTOR(0.0f, 0.0f, 0.0f));
+ m_object->SetCirVibration(Math::Vector(0.0f, 0.0f, 0.0f));
}
else if ( m_actionType == MHS_LOST ) // lost?
{
@@ -1510,7 +1510,7 @@ bool CMotionHuman::EventFrame(const Event &event)
SetLinVibration(dir);
mat = m_object->RetWorldMatrix(0);
- pos = D3DVECTOR(0.5f, 3.7f, 0.0f);
+ pos = Math::Vector(0.5f, 3.7f, 0.0f);
pos.x += (Math::Rand()-0.5f)*1.0f;
pos.y += (Math::Rand()-0.5f)*1.0f;
pos.z += (Math::Rand()-0.5f)*1.0f;
@@ -1524,9 +1524,9 @@ bool CMotionHuman::EventFrame(const Event &event)
}
else if ( m_actionType == MHS_SATCOM ) // look at the SatCom?
{
- SetCirVibration(D3DVECTOR(0.0f, 0.0f, 0.0f));
- SetLinVibration(D3DVECTOR(0.0f, 0.0f, 0.0f));
- SetInclinaison(D3DVECTOR(0.0f, 0.0f, 0.0f));
+ SetCirVibration(Math::Vector(0.0f, 0.0f, 0.0f));
+ SetLinVibration(Math::Vector(0.0f, 0.0f, 0.0f));
+ SetInclinaison(Math::Vector(0.0f, 0.0f, 0.0f));
}
else
{
diff --git a/src/object/motion/motionhuman.h b/src/object/motion/motionhuman.h
index 1fc8d57..f83bc13 100644
--- a/src/object/motion/motionhuman.h
+++ b/src/object/motion/motionhuman.h
@@ -73,7 +73,7 @@ public:
~CMotionHuman();
void DeleteObject(bool bAll=false);
- bool Create(D3DVECTOR pos, float angle, ObjectType type, float power);
+ bool Create(Math::Vector pos, float angle, ObjectType type, float power);
bool EventProcess(const Event &event);
Error SetAction(int action, float time=0.2f);
diff --git a/src/object/motion/motionmother.cpp b/src/object/motion/motionmother.cpp
index 7f98eca..d8d049c 100644
--- a/src/object/motion/motionmother.cpp
+++ b/src/object/motion/motionmother.cpp
@@ -80,7 +80,7 @@ void CMotionMother::DeleteObject(bool bAll)
// Creates a vehicle traveling any lands on the ground.
-bool CMotionMother::Create(D3DVECTOR pos, float angle, ObjectType type,
+bool CMotionMother::Create(Math::Vector pos, float angle, ObjectType type,
float power)
{
CModFile* pModFile;
@@ -105,8 +105,8 @@ bool CMotionMother::Create(D3DVECTOR pos, float angle, ObjectType type,
// A vehicle must have a obligatory collision
//with a sphere of center (0, y, 0) (see GetCrashSphere).
- m_object->CreateCrashSphere(D3DVECTOR(0.0f, 0.0f, 0.0f), 20.0f, SOUND_BOUM, 0.20f);
- m_object->SetGlobalSphere(D3DVECTOR(-2.0f, 10.0f, 0.0f), 25.0f);
+ m_object->CreateCrashSphere(Math::Vector(0.0f, 0.0f, 0.0f), 20.0f, SOUND_BOUM, 0.20f);
+ m_object->SetGlobalSphere(Math::Vector(-2.0f, 10.0f, 0.0f), 25.0f);
// Creates the head.
rank = m_engine->CreateObject();
@@ -115,7 +115,7 @@ bool CMotionMother::Create(D3DVECTOR pos, float angle, ObjectType type,
m_object->SetObjectParent(1, 0);
pModFile->ReadModel("objects\\mother2.mod");
pModFile->CreateEngineObject(rank);
- m_object->SetPosition(1, D3DVECTOR(16.0f, 3.0f, 0.0f));
+ m_object->SetPosition(1, Math::Vector(16.0f, 3.0f, 0.0f));
// Creates a right-back leg.
rank = m_engine->CreateObject();
@@ -124,7 +124,7 @@ bool CMotionMother::Create(D3DVECTOR pos, float angle, ObjectType type,
m_object->SetObjectParent(2, 0);
pModFile->ReadModel("objects\\mother3.mod");
pModFile->CreateEngineObject(rank);
- m_object->SetPosition(2, D3DVECTOR(-5.0f, -1.0f, -12.0f));
+ m_object->SetPosition(2, Math::Vector(-5.0f, -1.0f, -12.0f));
// Creates a right-back foot.
rank = m_engine->CreateObject();
@@ -133,7 +133,7 @@ bool CMotionMother::Create(D3DVECTOR pos, float angle, ObjectType type,
m_object->SetObjectParent(3, 2);
pModFile->ReadModel("objects\\mother4.mod");
pModFile->CreateEngineObject(rank);
- m_object->SetPosition(3, D3DVECTOR(0.0f, 0.0f, -8.5f));
+ m_object->SetPosition(3, Math::Vector(0.0f, 0.0f, -8.5f));
// Creates a middle-right leg.
rank = m_engine->CreateObject();
@@ -142,7 +142,7 @@ bool CMotionMother::Create(D3DVECTOR pos, float angle, ObjectType type,
m_object->SetObjectParent(4, 0);
pModFile->ReadModel("objects\\mother3.mod");
pModFile->CreateEngineObject(rank);
- m_object->SetPosition(4, D3DVECTOR(3.5f, -1.0f, -12.0f));
+ m_object->SetPosition(4, Math::Vector(3.5f, -1.0f, -12.0f));
// Creates a middle-right foot.
rank = m_engine->CreateObject();
@@ -151,7 +151,7 @@ bool CMotionMother::Create(D3DVECTOR pos, float angle, ObjectType type,
m_object->SetObjectParent(5, 4);
pModFile->ReadModel("objects\\mother4.mod");
pModFile->CreateEngineObject(rank);
- m_object->SetPosition(5, D3DVECTOR(0.0f, 0.0f, -8.5f));
+ m_object->SetPosition(5, Math::Vector(0.0f, 0.0f, -8.5f));
// Creates a right-front leg.
rank = m_engine->CreateObject();
@@ -160,7 +160,7 @@ bool CMotionMother::Create(D3DVECTOR pos, float angle, ObjectType type,
m_object->SetObjectParent(6, 0);
pModFile->ReadModel("objects\\mother3.mod");
pModFile->CreateEngineObject(rank);
- m_object->SetPosition(6, D3DVECTOR(10.0f, -1.0f, -10.0f));
+ m_object->SetPosition(6, Math::Vector(10.0f, -1.0f, -10.0f));
// Creates a right-front foot.
rank = m_engine->CreateObject();
@@ -169,7 +169,7 @@ bool CMotionMother::Create(D3DVECTOR pos, float angle, ObjectType type,
m_object->SetObjectParent(7, 6);
pModFile->ReadModel("objects\\mother4.mod");
pModFile->CreateEngineObject(rank);
- m_object->SetPosition(7, D3DVECTOR(0.0f, 0.0f, -8.5f));
+ m_object->SetPosition(7, Math::Vector(0.0f, 0.0f, -8.5f));
// Creates a left-back leg.
rank = m_engine->CreateObject();
@@ -178,7 +178,7 @@ bool CMotionMother::Create(D3DVECTOR pos, float angle, ObjectType type,
m_object->SetObjectParent(8, 0);
pModFile->ReadModel("objects\\mother3.mod");
pModFile->CreateEngineObject(rank);
- m_object->SetPosition(8, D3DVECTOR(-5.0f, -1.0f, 12.0f));
+ m_object->SetPosition(8, Math::Vector(-5.0f, -1.0f, 12.0f));
m_object->SetAngleY(8, Math::PI);
// Creates a left-back foot.
@@ -188,7 +188,7 @@ bool CMotionMother::Create(D3DVECTOR pos, float angle, ObjectType type,
m_object->SetObjectParent(9, 8);
pModFile->ReadModel("objects\\mother4.mod");
pModFile->CreateEngineObject(rank);
- m_object->SetPosition(9, D3DVECTOR(0.0f, 0.0f, -8.5f));
+ m_object->SetPosition(9, Math::Vector(0.0f, 0.0f, -8.5f));
// Creates a middle-left leg.
rank = m_engine->CreateObject();
@@ -197,7 +197,7 @@ bool CMotionMother::Create(D3DVECTOR pos, float angle, ObjectType type,
m_object->SetObjectParent(10, 0);
pModFile->ReadModel("objects\\mother3.mod");
pModFile->CreateEngineObject(rank);
- m_object->SetPosition(10, D3DVECTOR(3.5f, -1.0f, 12.0f));
+ m_object->SetPosition(10, Math::Vector(3.5f, -1.0f, 12.0f));
m_object->SetAngleY(10, Math::PI);
// Creates a middle-left foot.
@@ -207,7 +207,7 @@ bool CMotionMother::Create(D3DVECTOR pos, float angle, ObjectType type,
m_object->SetObjectParent(11, 10);
pModFile->ReadModel("objects\\mother4.mod");
pModFile->CreateEngineObject(rank);
- m_object->SetPosition(11, D3DVECTOR(0.0f, 0.0f, -8.5f));
+ m_object->SetPosition(11, Math::Vector(0.0f, 0.0f, -8.5f));
// Creates a left-front leg.
rank = m_engine->CreateObject();
@@ -216,7 +216,7 @@ bool CMotionMother::Create(D3DVECTOR pos, float angle, ObjectType type,
m_object->SetObjectParent(12, 0);
pModFile->ReadModel("objects\\mother3.mod");
pModFile->CreateEngineObject(rank);
- m_object->SetPosition(12, D3DVECTOR(10.0f, -1.0f, 10.0f));
+ m_object->SetPosition(12, Math::Vector(10.0f, -1.0f, 10.0f));
m_object->SetAngleY(12, Math::PI);
// Creates a left-front foot.
@@ -226,7 +226,7 @@ bool CMotionMother::Create(D3DVECTOR pos, float angle, ObjectType type,
m_object->SetObjectParent(13, 12);
pModFile->ReadModel("objects\\mother4.mod");
pModFile->CreateEngineObject(rank);
- m_object->SetPosition(13, D3DVECTOR(0.0f, 0.0f, -8.5f));
+ m_object->SetPosition(13, Math::Vector(0.0f, 0.0f, -8.5f));
// Creates the right antenna.
rank = m_engine->CreateObject();
@@ -235,7 +235,7 @@ bool CMotionMother::Create(D3DVECTOR pos, float angle, ObjectType type,
m_object->SetObjectParent(14, 1);
pModFile->ReadModel("objects\\mother5.mod");
pModFile->CreateEngineObject(rank);
- m_object->SetPosition(14, D3DVECTOR(6.0f, 1.0f, -2.5f));
+ m_object->SetPosition(14, Math::Vector(6.0f, 1.0f, -2.5f));
rank = m_engine->CreateObject();
m_engine->SetObjectType(rank, TYPEDESCENDANT);
@@ -243,7 +243,7 @@ bool CMotionMother::Create(D3DVECTOR pos, float angle, ObjectType type,
m_object->SetObjectParent(15, 14);
pModFile->ReadModel("objects\\mother6.mod");
pModFile->CreateEngineObject(rank);
- m_object->SetPosition(15, D3DVECTOR(8.0f, 0.0f, 0.0f));
+ m_object->SetPosition(15, Math::Vector(8.0f, 0.0f, 0.0f));
// Creates the left antenna.
rank = m_engine->CreateObject();
@@ -252,7 +252,7 @@ bool CMotionMother::Create(D3DVECTOR pos, float angle, ObjectType type,
m_object->SetObjectParent(16, 1);
pModFile->ReadModel("objects\\mother5.mod");
pModFile->CreateEngineObject(rank);
- m_object->SetPosition(16, D3DVECTOR(6.0f, 1.0f, 2.5f));
+ m_object->SetPosition(16, Math::Vector(6.0f, 1.0f, 2.5f));
rank = m_engine->CreateObject();
m_engine->SetObjectType(rank, TYPEDESCENDANT);
@@ -260,7 +260,7 @@ bool CMotionMother::Create(D3DVECTOR pos, float angle, ObjectType type,
m_object->SetObjectParent(17, 16);
pModFile->ReadModel("objects\\mother6.mod");
pModFile->CreateEngineObject(rank);
- m_object->SetPosition(17, D3DVECTOR(8.0f, 0.0f, 0.0f));
+ m_object->SetPosition(17, Math::Vector(8.0f, 0.0f, 0.0f));
// Creates the right claw.
rank = m_engine->CreateObject();
@@ -269,7 +269,7 @@ bool CMotionMother::Create(D3DVECTOR pos, float angle, ObjectType type,
m_object->SetObjectParent(18, 1);
pModFile->ReadModel("objects\\mother7.mod");
pModFile->CreateEngineObject(rank);
- m_object->SetPosition(18, D3DVECTOR(-4.0f, -3.5f, -8.0f));
+ m_object->SetPosition(18, Math::Vector(-4.0f, -3.5f, -8.0f));
m_object->SetZoomX(18, 1.2f);
// Creates the left claw.
@@ -280,7 +280,7 @@ bool CMotionMother::Create(D3DVECTOR pos, float angle, ObjectType type,
pModFile->ReadModel("objects\\mother7.mod");
pModFile->Mirror();
pModFile->CreateEngineObject(rank);
- m_object->SetPosition(19, D3DVECTOR(-4.0f, -3.5f, 8.0f));
+ m_object->SetPosition(19, Math::Vector(-4.0f, -3.5f, 8.0f));
m_object->SetZoomX(19, 1.2f);
m_object->CreateShadowCircle(18.0f, 0.8f);
@@ -401,7 +401,7 @@ bool CMotionMother::EventProcess(const Event &event)
bool CMotionMother::EventFrame(const Event &event)
{
- D3DVECTOR dir;
+ Math::Vector dir;
float s, a, prog;
int i, st, nd;
bool bStop;
diff --git a/src/object/motion/motionmother.h b/src/object/motion/motionmother.h
index d3a6b2a..6578f91 100644
--- a/src/object/motion/motionmother.h
+++ b/src/object/motion/motionmother.h
@@ -40,7 +40,7 @@ public:
~CMotionMother();
void DeleteObject(bool bAll=false);
- bool Create(D3DVECTOR pos, float angle, ObjectType type, float power);
+ bool Create(Math::Vector pos, float angle, ObjectType type, float power);
bool EventProcess(const Event &event);
protected:
diff --git a/src/object/motion/motionspider.cpp b/src/object/motion/motionspider.cpp
index 4ac799b..5447c35 100644
--- a/src/object/motion/motionspider.cpp
+++ b/src/object/motion/motionspider.cpp
@@ -80,7 +80,7 @@ void CMotionSpider::DeleteObject(bool bAll)
// Creates a vehicle traveling any lands on the ground.
-bool CMotionSpider::Create(D3DVECTOR pos, float angle, ObjectType type,
+bool CMotionSpider::Create(Math::Vector pos, float angle, ObjectType type,
float power)
{
CModFile* pModFile;
@@ -128,8 +128,8 @@ bool CMotionSpider::Create(D3DVECTOR pos, float angle, ObjectType type,
// A vehicle must have a obligatory collision
// with a sphere of center (0, y, 0) (see 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);
+ m_object->CreateCrashSphere(Math::Vector(0.0f, -2.0f, 0.0f), 4.0f, SOUND_BOUM, 0.20f);
+ m_object->SetGlobalSphere(Math::Vector(-0.5f, 1.0f, 0.0f), 4.0f);
// Creates the abdomen.
rank = m_engine->CreateObject();
@@ -138,7 +138,7 @@ bool CMotionSpider::Create(D3DVECTOR pos, float angle, ObjectType type,
m_object->SetObjectParent(1, 0);
pModFile->ReadModel("objects\\spider1.mod");
pModFile->CreateEngineObject(rank);
- m_object->SetPosition(1, D3DVECTOR(1.0f, 0.0f, 0.0f));
+ m_object->SetPosition(1, Math::Vector(1.0f, 0.0f, 0.0f));
// Creates the head.
rank = m_engine->CreateObject();
@@ -147,7 +147,7 @@ bool CMotionSpider::Create(D3DVECTOR pos, float angle, ObjectType type,
m_object->SetObjectParent(2, 0);
pModFile->ReadModel("objects\\spider2.mod");
pModFile->CreateEngineObject(rank);
- m_object->SetPosition(2, D3DVECTOR(1.0f, 0.0f, 0.0f));
+ m_object->SetPosition(2, Math::Vector(1.0f, 0.0f, 0.0f));
// Creates legs.
for ( i=0 ; i<4 ; i++ )
@@ -194,7 +194,7 @@ bool CMotionSpider::Create(D3DVECTOR pos, float angle, ObjectType type,
m_object->SetObjectParent(35, 1);
pModFile->ReadModel("objects\\spider7.mod");
pModFile->CreateEngineObject(rank);
- m_object->SetPosition(35, D3DVECTOR(0.0f, 0.0f, -0.3f));
+ m_object->SetPosition(35, Math::Vector(0.0f, 0.0f, -0.3f));
// Creates the left mandible.
rank = m_engine->CreateObject();
@@ -204,7 +204,7 @@ bool CMotionSpider::Create(D3DVECTOR pos, float angle, ObjectType type,
pModFile->ReadModel("objects\\spider7.mod");
pModFile->Mirror();
pModFile->CreateEngineObject(rank);
- m_object->SetPosition(36, D3DVECTOR(0.0f, 0.0f, 0.3f));
+ m_object->SetPosition(36, Math::Vector(0.0f, 0.0f, 0.3f));
m_object->CreateShadowCircle(4.0f, 0.5f);
@@ -389,7 +389,7 @@ bool CMotionSpider::EventProcess(const Event &event)
bool CMotionSpider::EventFrame(const Event &event)
{
- D3DVECTOR dir, pos, speed;
+ Math::Vector dir, pos, speed;
Math::Point dim;
float s, a, prog, time;
float tSt[12], tNd[12];
@@ -567,9 +567,9 @@ bool CMotionSpider::EventFrame(const Event &event)
if ( m_actionType == MSS_BURN ) // burning?
{
- dir = D3DVECTOR(Math::PI, 0.0f, 0.0f);
+ dir = Math::Vector(Math::PI, 0.0f, 0.0f);
SetCirVibration(dir);
- dir = D3DVECTOR(0.0f, 0.0f, 0.0f);
+ dir = Math::Vector(0.0f, 0.0f, 0.0f);
SetLinVibration(dir);
SetInclinaison(dir);
@@ -578,7 +578,7 @@ bool CMotionSpider::EventFrame(const Event &event)
}
else if ( m_actionType == MSS_RUIN ) // destroyed?
{
- dir = D3DVECTOR(0.0f, 0.0f, 0.0f);
+ dir = Math::Vector(0.0f, 0.0f, 0.0f);
SetLinVibration(dir);
SetCirVibration(dir);
SetInclinaison(dir);
@@ -628,7 +628,7 @@ bool CMotionSpider::EventFrame(const Event &event)
dir.z = 0.0f;
SetCirVibration(dir);
- dir = D3DVECTOR(0.0f, 0.0f, 0.0f);
+ dir = Math::Vector(0.0f, 0.0f, 0.0f);
SetInclinaison(dir);
if ( m_progress >= 1.0f )
@@ -657,7 +657,7 @@ bool CMotionSpider::EventFrame(const Event &event)
}
}
- dir = D3DVECTOR(0.0f, 0.0f, 0.0f);
+ dir = Math::Vector(0.0f, 0.0f, 0.0f);
SetLinVibration(dir);
dir.x = sinf(m_armTimeAbs* 3.0f)*0.20f+
sinf(m_armTimeAbs* 6.0f)*0.20f+
@@ -672,7 +672,7 @@ bool CMotionSpider::EventFrame(const Event &event)
sinf(m_armTimeAbs*13.0f)*0.02f+
sinf(m_armTimeAbs*15.0f)*0.03f;
SetCirVibration(dir);
- dir = D3DVECTOR(0.0f, 0.0f, 0.0f);
+ dir = Math::Vector(0.0f, 0.0f, 0.0f);
SetInclinaison(dir);
m_object->SetAngleY(1, sinf(m_armTimeAbs*5.0f)*0.05f); // tail
@@ -719,7 +719,7 @@ bool CMotionSpider::EventFrame(const Event &event)
dir.z = 0.0f;
SetCirVibration(dir);
- dir = D3DVECTOR(0.0f, 0.0f, 0.0f);
+ dir = Math::Vector(0.0f, 0.0f, 0.0f);
SetInclinaison(dir);
if ( m_progress >= 1.0f )
@@ -732,7 +732,7 @@ bool CMotionSpider::EventFrame(const Event &event)
{
if ( bStop )
{
- dir = D3DVECTOR(0.0f, 0.0f, 0.0f);
+ dir = Math::Vector(0.0f, 0.0f, 0.0f);
SetInclinaison(dir);
}
else
@@ -751,7 +751,7 @@ bool CMotionSpider::EventFrame(const Event &event)
SetInclinaison(dir);
}
- dir = D3DVECTOR(0.0f, 0.0f, 0.0f);
+ dir = Math::Vector(0.0f, 0.0f, 0.0f);
SetLinVibration(dir);
SetCirVibration(dir);
diff --git a/src/object/motion/motionspider.h b/src/object/motion/motionspider.h
index 6f18e07..3c6fa17 100644
--- a/src/object/motion/motionspider.h
+++ b/src/object/motion/motionspider.h
@@ -58,7 +58,7 @@ public:
~CMotionSpider();
void DeleteObject(bool bAll=false);
- bool Create(D3DVECTOR pos, float angle, ObjectType type, float power);
+ bool Create(Math::Vector pos, float angle, ObjectType type, float power);
bool EventProcess(const Event &event);
protected:
diff --git a/src/object/motion/motiontoto.cpp b/src/object/motion/motiontoto.cpp
index 95caf3d..9a66362 100644
--- a/src/object/motion/motiontoto.cpp
+++ b/src/object/motion/motiontoto.cpp
@@ -89,7 +89,7 @@ void CMotionToto::DeleteObject(bool bAll)
// Creates a vehicle traveling any lands on the ground.
-bool CMotionToto::Create(D3DVECTOR pos, float angle, ObjectType type,
+bool CMotionToto::Create(Math::Vector pos, float angle, ObjectType type,
float power)
{
CModFile* pModFile;
@@ -117,7 +117,7 @@ bool CMotionToto::Create(D3DVECTOR pos, float angle, ObjectType type,
m_object->SetObjectParent(1, 0);
pModFile->ReadModel("objects\\toto2.mod");
pModFile->CreateEngineObject(rank);
- m_object->SetPosition(1, D3DVECTOR(1.00f, 0.17f, 0.00f));
+ m_object->SetPosition(1, Math::Vector(1.00f, 0.17f, 0.00f));
// Creates the left eye.
rank = m_engine->CreateObject();
@@ -127,7 +127,7 @@ bool CMotionToto::Create(D3DVECTOR pos, float angle, ObjectType type,
pModFile->ReadModel("objects\\toto3.mod");
pModFile->Mirror();
pModFile->CreateEngineObject(rank);
- m_object->SetPosition(2, D3DVECTOR(0.85f, 1.04f, 0.25f));
+ m_object->SetPosition(2, Math::Vector(0.85f, 1.04f, 0.25f));
m_object->SetAngleY(2, -20.0f*Math::PI/180.0f);
// Creates the right eye.
@@ -137,7 +137,7 @@ bool CMotionToto::Create(D3DVECTOR pos, float angle, ObjectType type,
m_object->SetObjectParent(3, 0);
pModFile->ReadModel("objects\\toto3.mod");
pModFile->CreateEngineObject(rank);
- m_object->SetPosition(3, D3DVECTOR(0.85f, 1.04f, -0.25f));
+ m_object->SetPosition(3, Math::Vector(0.85f, 1.04f, -0.25f));
m_object->SetAngleY(3, 20.0f*Math::PI/180.0f);
// Creates left antenna.
@@ -147,7 +147,7 @@ bool CMotionToto::Create(D3DVECTOR pos, float angle, ObjectType type,
m_object->SetObjectParent(4, 0);
pModFile->ReadModel("objects\\toto4.mod");
pModFile->CreateEngineObject(rank);
- m_object->SetPosition(4, D3DVECTOR(0.0f, 1.9f, 0.3f));
+ m_object->SetPosition(4, Math::Vector(0.0f, 1.9f, 0.3f));
m_object->SetAngleX(4, 30.0f*Math::PI/180.0f);
rank = m_engine->CreateObject();
@@ -156,7 +156,7 @@ bool CMotionToto::Create(D3DVECTOR pos, float angle, ObjectType type,
m_object->SetObjectParent(5, 4);
pModFile->ReadModel("objects\\toto4.mod");
pModFile->CreateEngineObject(rank);
- m_object->SetPosition(5, D3DVECTOR(0.0f, 0.67f, 0.0f));
+ m_object->SetPosition(5, Math::Vector(0.0f, 0.67f, 0.0f));
m_object->SetAngleX(5, 30.0f*Math::PI/180.0f);
rank = m_engine->CreateObject();
@@ -165,7 +165,7 @@ bool CMotionToto::Create(D3DVECTOR pos, float angle, ObjectType type,
m_object->SetObjectParent(6, 5);
pModFile->ReadModel("objects\\toto5.mod");
pModFile->CreateEngineObject(rank);
- m_object->SetPosition(6, D3DVECTOR(0.0f, 0.70f, 0.0f));
+ m_object->SetPosition(6, Math::Vector(0.0f, 0.70f, 0.0f));
m_object->SetAngleX(6, 30.0f*Math::PI/180.0f);
// Creates right antenna.
@@ -175,7 +175,7 @@ bool CMotionToto::Create(D3DVECTOR pos, float angle, ObjectType type,
m_object->SetObjectParent(7, 0);
pModFile->ReadModel("objects\\toto4.mod");
pModFile->CreateEngineObject(rank);
- m_object->SetPosition(7, D3DVECTOR(0.0f, 1.9f, -0.3f));
+ m_object->SetPosition(7, Math::Vector(0.0f, 1.9f, -0.3f));
m_object->SetAngleX(7, -30.0f*Math::PI/180.0f);
rank = m_engine->CreateObject();
@@ -184,7 +184,7 @@ bool CMotionToto::Create(D3DVECTOR pos, float angle, ObjectType type,
m_object->SetObjectParent(8, 7);
pModFile->ReadModel("objects\\toto4.mod");
pModFile->CreateEngineObject(rank);
- m_object->SetPosition(8, D3DVECTOR(0.0f, 0.67f, 0.0f));
+ m_object->SetPosition(8, Math::Vector(0.0f, 0.67f, 0.0f));
m_object->SetAngleX(8, -30.0f*Math::PI/180.0f);
rank = m_engine->CreateObject();
@@ -193,7 +193,7 @@ bool CMotionToto::Create(D3DVECTOR pos, float angle, ObjectType type,
m_object->SetObjectParent(9, 8);
pModFile->ReadModel("objects\\toto5.mod");
pModFile->CreateEngineObject(rank);
- m_object->SetPosition(9, D3DVECTOR(0.0f, 0.70f, 0.0f));
+ m_object->SetPosition(9, Math::Vector(0.0f, 0.70f, 0.0f));
m_object->SetAngleX(9, -30.0f*Math::PI/180.0f);
m_object->SetZoom(0, 0.5f); // is little
@@ -259,9 +259,9 @@ bool CMotionToto::EventProcess(const Event &event)
bool CMotionToto::EventFrame(const Event &event)
{
- D3DMATRIX* mat;
- D3DVECTOR eye, lookat, dir, perp, nPos, aPos, pos, speed;
- D3DVECTOR vibLin, vibCir, dirSpeed, aAntenna;
+ Math::Matrix* mat;
+ Math::Vector eye, lookat, dir, perp, nPos, aPos, pos, speed;
+ Math::Vector vibLin, vibCir, dirSpeed, aAntenna;
Math::Point dim;
POINT wDim;
ParticuleType type;
@@ -337,9 +337,9 @@ bool CMotionToto::EventFrame(const Event &event)
eye = m_engine->RetEyePt();
lookat = m_engine->RetLookatPt();
- vibLin = D3DVECTOR(0.0f, 0.0f, 0.0f);
- vibCir = D3DVECTOR(0.0f, 0.0f, 0.0f);
- aAntenna = D3DVECTOR(0.0f, 0.0f, 0.0f);
+ vibLin = Math::Vector(0.0f, 0.0f, 0.0f);
+ vibCir = Math::Vector(0.0f, 0.0f, 0.0f);
+ aAntenna = Math::Vector(0.0f, 0.0f, 0.0f);
aAntenna.x += 30.0f*Math::PI/180.0f;
// Calculates the new position.
@@ -456,7 +456,7 @@ bool CMotionToto::EventFrame(const Event &event)
if ( m_bStartAction )
{
m_bStartAction = false;
- m_speedAction = Length(nPos, aPos)/15.0f;
+ m_speedAction = Math::Distance(nPos, aPos)/15.0f;
if ( m_speedAction < 20.0f ) m_speedAction = 20.0f;
}
level = m_speedAction;
@@ -464,7 +464,7 @@ bool CMotionToto::EventFrame(const Event &event)
if ( level > 1.0f/event.rTime ) level = 1.0f/event.rTime;
nPos = aPos + (nPos-aPos)*event.rTime*level; // progression aPos -> nPos
- linSpeed = Length2d(nPos, aPos)/event.rTime;
+ linSpeed = Math::DistanceProjected(nPos, aPos)/event.rTime;
dirSpeed = (nPos-aPos)/event.rTime;
nPos.y -= linSpeed*0.015f*(1.0f-progress); // at ground level if moving fast
}
@@ -748,7 +748,7 @@ bool CMotionToto::EventFrame(const Event &event)
float t = Math::Mod(m_time, 3.5f);
if ( t >= 2.2f || ( t >= 1.2f && t <= 1.4f ) ) // breathe?
{
- pos = D3DVECTOR(1.0f, 0.2f, 0.0f);
+ pos = Math::Vector(1.0f, 0.2f, 0.0f);
pos.z += (Math::Rand()-0.5f)*0.5f;
speed = pos;
@@ -766,7 +766,7 @@ bool CMotionToto::EventFrame(const Event &event)
}
else // out of water?
{
- pos = D3DVECTOR(0.0f, -0.5f, 0.0f);
+ pos = Math::Vector(0.0f, -0.5f, 0.0f);
pos.z += (Math::Rand()-0.5f)*0.5f;
speed = pos;
@@ -790,7 +790,7 @@ bool CMotionToto::EventFrame(const Event &event)
pos.y = (Math::Rand()-0.5f)*1.0f+3.5f;
pos.z = (Math::Rand()-0.5f)*1.0f;
pos = Transform(*mat, pos);
- speed = D3DVECTOR(0.0f, 0.0f, 0.0f);
+ speed = Math::Vector(0.0f, 0.0f, 0.0f);
dim.x = (Math::Rand()*0.3f+0.3f);
dim.y = dim.x;
if ( m_actionType == MT_ERROR ) type = PARTIERROR;
@@ -814,7 +814,7 @@ bool CMotionToto::EventFrame(const Event &event)
pos.y = (Math::Rand()-0.5f)*1.4f+3.5f;
pos.z = (Math::Rand()-0.5f)*1.4f;
pos = Transform(*mat, pos);
- speed = D3DVECTOR(0.0f, 0.0f, 0.0f);
+ speed = Math::Vector(0.0f, 0.0f, 0.0f);
dim.x = (Math::Rand()*0.5f+0.5f);
dim.y = dim.x;
m_particule->CreateParticule(pos, speed, dim, PARTIERROR, 0.5f+Math::Rand()*0.5f, 0.0f, 1.0f, sheet);
diff --git a/src/object/motion/motiontoto.h b/src/object/motion/motiontoto.h
index 2201882..a2c46d5 100644
--- a/src/object/motion/motiontoto.h
+++ b/src/object/motion/motiontoto.h
@@ -50,7 +50,7 @@ public:
~CMotionToto();
void DeleteObject(bool bAll=false);
- bool Create(D3DVECTOR pos, float angle, ObjectType type, float power);
+ bool Create(Math::Vector pos, float angle, ObjectType type, float power);
bool EventProcess(const Event &event);
Error SetAction(int action, float time=0.2f);
void SetLinkType(ObjectType type);
diff --git a/src/object/motion/motionvehicle.cpp b/src/object/motion/motionvehicle.cpp
index 1c30514..c112900 100644
--- a/src/object/motion/motionvehicle.cpp
+++ b/src/object/motion/motionvehicle.cpp
@@ -23,6 +23,7 @@
#include "common/struct.h"
#include "math/func.h"
+#include "math/geometry.h"
#include "graphics/d3d/d3dengine.h"
#include "math/old/math3d.h"
#include "common/event.h"
@@ -66,9 +67,9 @@ CMotionVehicle::CMotionVehicle(CInstanceManager* iMan, CObject* object)
m_armMember = 1000.0f;
m_canonTime = 0.0f;
m_lastTimeCanon = 0.0f;
- m_wheelLastPos = D3DVECTOR(0.0f, 0.0f, 0.0f);
- m_wheelLastAngle = D3DVECTOR(0.0f, 0.0f, 0.0f);
- m_posKey = D3DVECTOR(0.0f, 0.0f, 0.0f);
+ m_wheelLastPos = Math::Vector(0.0f, 0.0f, 0.0f);
+ m_wheelLastAngle = Math::Vector(0.0f, 0.0f, 0.0f);
+ m_posKey = Math::Vector(0.0f, 0.0f, 0.0f);
m_bFlyFix = false;
m_bTraceDown = false;
@@ -97,7 +98,7 @@ void CMotionVehicle::DeleteObject(bool bAll)
// Creates a vehicle traveling any lands on the ground.
-bool CMotionVehicle::Create(D3DVECTOR pos, float angle, ObjectType type,
+bool CMotionVehicle::Create(Math::Vector pos, float angle, ObjectType type,
float power)
{
CModFile* pModFile;
@@ -203,27 +204,27 @@ bool CMotionVehicle::Create(D3DVECTOR pos, float angle, ObjectType type,
type == OBJECT_MOBILErr ||
type == OBJECT_MOBILErs )
{
- m_object->CreateCrashSphere(D3DVECTOR(0.0f, 4.0f, 0.0f), 6.5f, SOUND_BOUMm, 0.45f);
- m_object->SetGlobalSphere(D3DVECTOR(0.0f, 3.0f, 0.0f), 7.0f);
+ m_object->CreateCrashSphere(Math::Vector(0.0f, 4.0f, 0.0f), 6.5f, SOUND_BOUMm, 0.45f);
+ m_object->SetGlobalSphere(Math::Vector(0.0f, 3.0f, 0.0f), 7.0f);
}
else if ( type == OBJECT_MOBILEsa )
{
- m_object->CreateCrashSphere(D3DVECTOR(0.0f, 3.0f, 0.0f), 4.5f, SOUND_BOUMm, 0.45f);
- m_object->SetGlobalSphere(D3DVECTOR(0.0f, 3.0f, 0.0f), 6.0f);
+ m_object->CreateCrashSphere(Math::Vector(0.0f, 3.0f, 0.0f), 4.5f, SOUND_BOUMm, 0.45f);
+ m_object->SetGlobalSphere(Math::Vector(0.0f, 3.0f, 0.0f), 6.0f);
}
else if ( type == OBJECT_MOBILEdr )
{
- m_object->CreateCrashSphere(D3DVECTOR(0.0f, 3.0f, 0.0f), 5.0f, SOUND_BOUMm, 0.45f);
- m_object->SetGlobalSphere(D3DVECTOR(0.0f, 3.0f, 0.0f), 7.0f);
+ m_object->CreateCrashSphere(Math::Vector(0.0f, 3.0f, 0.0f), 5.0f, SOUND_BOUMm, 0.45f);
+ m_object->SetGlobalSphere(Math::Vector(0.0f, 3.0f, 0.0f), 7.0f);
}
else if ( type == OBJECT_APOLLO2 )
{
- m_object->CreateCrashSphere(D3DVECTOR(0.0f, 0.0f, 0.0f), 8.0f, SOUND_BOUMm, 0.45f);
+ m_object->CreateCrashSphere(Math::Vector(0.0f, 0.0f, 0.0f), 8.0f, SOUND_BOUMm, 0.45f);
}
else
{
- m_object->CreateCrashSphere(D3DVECTOR(0.0f, 3.0f, 0.0f), 4.5f, SOUND_BOUMm, 0.45f);
- m_object->SetGlobalSphere(D3DVECTOR(0.0f, 4.0f, 0.0f), 6.0f);
+ m_object->CreateCrashSphere(Math::Vector(0.0f, 3.0f, 0.0f), 4.5f, SOUND_BOUMm, 0.45f);
+ m_object->SetGlobalSphere(Math::Vector(0.0f, 4.0f, 0.0f), 6.0f);
}
if ( type == OBJECT_MOBILEfa ||
@@ -238,7 +239,7 @@ bool CMotionVehicle::Create(D3DVECTOR pos, float angle, ObjectType type,
m_object->SetObjectParent(1, 0);
pModFile->ReadModel("objects\\lem2.mod");
pModFile->CreateEngineObject(rank);
- m_object->SetPosition(1, D3DVECTOR(0.0f, 5.3f, 0.0f));
+ m_object->SetPosition(1, Math::Vector(0.0f, 5.3f, 0.0f));
m_object->SetAngleZ(1, ARM_NEUTRAL_ANGLE1);
// Creates the forearm.
@@ -248,7 +249,7 @@ bool CMotionVehicle::Create(D3DVECTOR pos, float angle, ObjectType type,
m_object->SetObjectParent(2, 1);
pModFile->ReadModel("objects\\lem3.mod");
pModFile->CreateEngineObject(rank);
- m_object->SetPosition(2, D3DVECTOR(5.0f, 0.0f, 0.0f));
+ m_object->SetPosition(2, Math::Vector(5.0f, 0.0f, 0.0f));
m_object->SetAngleZ(2, ARM_NEUTRAL_ANGLE2);
// Creates the hand.
@@ -258,7 +259,7 @@ bool CMotionVehicle::Create(D3DVECTOR pos, float angle, ObjectType type,
m_object->SetObjectParent(3, 2);
pModFile->ReadModel("objects\\lem4.mod");
pModFile->CreateEngineObject(rank);
- m_object->SetPosition(3, D3DVECTOR(3.5f, 0.0f, 0.0f));
+ m_object->SetPosition(3, Math::Vector(3.5f, 0.0f, 0.0f));
m_object->SetAngleZ(3, ARM_NEUTRAL_ANGLE3);
m_object->SetAngleX(3, Math::PI/2.0f);
@@ -269,7 +270,7 @@ bool CMotionVehicle::Create(D3DVECTOR pos, float angle, ObjectType type,
m_object->SetObjectParent(4, 3);
pModFile->ReadModel("objects\\lem5.mod");
pModFile->CreateEngineObject(rank);
- m_object->SetPosition(4, D3DVECTOR(1.5f, 0.0f, 0.0f));
+ m_object->SetPosition(4, Math::Vector(1.5f, 0.0f, 0.0f));
m_object->SetAngleZ(4, -Math::PI*0.10f);
// Creates the remote clamp.
@@ -279,7 +280,7 @@ bool CMotionVehicle::Create(D3DVECTOR pos, float angle, ObjectType type,
m_object->SetObjectParent(5, 3);
pModFile->ReadModel("objects\\lem6.mod");
pModFile->CreateEngineObject(rank);
- m_object->SetPosition(5, D3DVECTOR(1.5f, 0.0f, 0.0f));
+ m_object->SetPosition(5, Math::Vector(1.5f, 0.0f, 0.0f));
m_object->SetAngleZ(5, Math::PI*0.10f);
}
@@ -295,7 +296,7 @@ bool CMotionVehicle::Create(D3DVECTOR pos, float angle, ObjectType type,
m_object->SetObjectParent(1, 0);
pModFile->ReadModel("objects\\lem2.mod");
pModFile->CreateEngineObject(rank);
- m_object->SetPosition(1, D3DVECTOR(0.0f, 5.3f, 0.0f));
+ m_object->SetPosition(1, Math::Vector(0.0f, 5.3f, 0.0f));
m_object->SetAngleZ(1, 110.0f*Math::PI/180.0f);
// Creates the forearm.
@@ -305,7 +306,7 @@ bool CMotionVehicle::Create(D3DVECTOR pos, float angle, ObjectType type,
m_object->SetObjectParent(2, 1);
pModFile->ReadModel("objects\\lem3.mod");
pModFile->CreateEngineObject(rank);
- m_object->SetPosition(2, D3DVECTOR(5.0f, 0.0f, 0.0f));
+ m_object->SetPosition(2, Math::Vector(5.0f, 0.0f, 0.0f));
m_object->SetAngleZ(2, -110.0f*Math::PI/180.0f);
// Creates the sensor.
@@ -315,7 +316,7 @@ bool CMotionVehicle::Create(D3DVECTOR pos, float angle, ObjectType type,
m_object->SetObjectParent(3, 2);
pModFile->ReadModel("objects\\lem4s.mod");
pModFile->CreateEngineObject(rank);
- m_object->SetPosition(3, D3DVECTOR(3.5f, 0.0f, 0.0f));
+ m_object->SetPosition(3, Math::Vector(3.5f, 0.0f, 0.0f));
m_object->SetAngleZ(3, -65.0f*Math::PI/180.0f);
}
@@ -331,8 +332,8 @@ bool CMotionVehicle::Create(D3DVECTOR pos, float angle, ObjectType type,
m_object->SetObjectParent(1, 0);
pModFile->ReadModel("objects\\canon.mod");
pModFile->CreateEngineObject(rank);
-//? m_object->SetPosition(1, D3DVECTOR(0.0f, 5.3f, 0.0f));
- m_object->SetPosition(1, D3DVECTOR(0.0f, 5.3f, 0.0f));
+//? m_object->SetPosition(1, Math::Vector(0.0f, 5.3f, 0.0f));
+ m_object->SetPosition(1, Math::Vector(0.0f, 5.3f, 0.0f));
m_object->SetAngleZ(1, 0.0f);
}
@@ -348,7 +349,7 @@ bool CMotionVehicle::Create(D3DVECTOR pos, float angle, ObjectType type,
m_object->SetObjectParent(1, 0);
pModFile->ReadModel("objects\\canoni1.mod");
pModFile->CreateEngineObject(rank);
- m_object->SetPosition(1, D3DVECTOR(0.0f, 5.3f, 0.0f));
+ m_object->SetPosition(1, Math::Vector(0.0f, 5.3f, 0.0f));
m_object->SetAngleZ(1, 0.0f);
rank = m_engine->CreateObject();
@@ -357,7 +358,7 @@ bool CMotionVehicle::Create(D3DVECTOR pos, float angle, ObjectType type,
m_object->SetObjectParent(2, 1);
pModFile->ReadModel("objects\\canoni2.mod");
pModFile->CreateEngineObject(rank);
- m_object->SetPosition(2, D3DVECTOR(0.0f, 2.5f, 0.0f));
+ m_object->SetPosition(2, Math::Vector(0.0f, 2.5f, 0.0f));
m_object->SetAngleZ(2, 0.0f);
}
@@ -374,7 +375,7 @@ bool CMotionVehicle::Create(D3DVECTOR pos, float angle, ObjectType type,
m_object->SetObjectParent(6, 0);
pModFile->ReadModel("objects\\lem2w.mod");
pModFile->CreateEngineObject(rank);
- m_object->SetPosition(6, D3DVECTOR(-3.0f, 1.0f, -3.0f));
+ m_object->SetPosition(6, Math::Vector(-3.0f, 1.0f, -3.0f));
// Creates the left-back wheel.
rank = m_engine->CreateObject();
@@ -383,7 +384,7 @@ bool CMotionVehicle::Create(D3DVECTOR pos, float angle, ObjectType type,
m_object->SetObjectParent(7, 0);
pModFile->ReadModel("objects\\lem2w.mod");
pModFile->CreateEngineObject(rank);
- m_object->SetPosition(7, D3DVECTOR(-3.0f, 1.0f, 3.0f));
+ m_object->SetPosition(7, Math::Vector(-3.0f, 1.0f, 3.0f));
m_object->SetAngleY(7, Math::PI);
// Creates the right-front wheel.
@@ -393,7 +394,7 @@ bool CMotionVehicle::Create(D3DVECTOR pos, float angle, ObjectType type,
m_object->SetObjectParent(8, 0);
pModFile->ReadModel("objects\\lem2w.mod");
pModFile->CreateEngineObject(rank);
- m_object->SetPosition(8, D3DVECTOR(2.0f, 1.0f, -3.0f));
+ m_object->SetPosition(8, Math::Vector(2.0f, 1.0f, -3.0f));
// Creates the left-front wheel.
rank = m_engine->CreateObject();
@@ -402,7 +403,7 @@ bool CMotionVehicle::Create(D3DVECTOR pos, float angle, ObjectType type,
m_object->SetObjectParent(9, 0);
pModFile->ReadModel("objects\\lem2w.mod");
pModFile->CreateEngineObject(rank);
- m_object->SetPosition(9, D3DVECTOR(2.0f, 1.0f, 3.0f));
+ m_object->SetPosition(9, Math::Vector(2.0f, 1.0f, 3.0f));
m_object->SetAngleY(9, Math::PI);
}
@@ -415,7 +416,7 @@ bool CMotionVehicle::Create(D3DVECTOR pos, float angle, ObjectType type,
m_object->SetObjectParent(6, 0);
pModFile->ReadModel("objects\\lem2w.mod");
pModFile->CreateEngineObject(rank);
- m_object->SetPosition(6, D3DVECTOR(-2.0f, 1.0f, -3.0f));
+ m_object->SetPosition(6, Math::Vector(-2.0f, 1.0f, -3.0f));
// Creates the left-back wheel.
rank = m_engine->CreateObject();
@@ -424,7 +425,7 @@ bool CMotionVehicle::Create(D3DVECTOR pos, float angle, ObjectType type,
m_object->SetObjectParent(7, 0);
pModFile->ReadModel("objects\\lem2w.mod");
pModFile->CreateEngineObject(rank);
- m_object->SetPosition(7, D3DVECTOR(-2.0f, 1.0f, 3.0f));
+ m_object->SetPosition(7, Math::Vector(-2.0f, 1.0f, 3.0f));
m_object->SetAngleY(7, Math::PI);
// Creates the right-front wheel.
@@ -434,7 +435,7 @@ bool CMotionVehicle::Create(D3DVECTOR pos, float angle, ObjectType type,
m_object->SetObjectParent(8, 0);
pModFile->ReadModel("objects\\lem2w.mod");
pModFile->CreateEngineObject(rank);
- m_object->SetPosition(8, D3DVECTOR(3.0f, 1.0f, -3.0f));
+ m_object->SetPosition(8, Math::Vector(3.0f, 1.0f, -3.0f));
// Creates the left-front wheel.
rank = m_engine->CreateObject();
@@ -443,7 +444,7 @@ bool CMotionVehicle::Create(D3DVECTOR pos, float angle, ObjectType type,
m_object->SetObjectParent(9, 0);
pModFile->ReadModel("objects\\lem2w.mod");
pModFile->CreateEngineObject(rank);
- m_object->SetPosition(9, D3DVECTOR(3.0f, 1.0f, 3.0f));
+ m_object->SetPosition(9, Math::Vector(3.0f, 1.0f, 3.0f));
m_object->SetAngleY(9, Math::PI);
}
@@ -459,7 +460,7 @@ bool CMotionVehicle::Create(D3DVECTOR pos, float angle, ObjectType type,
m_object->SetObjectParent(6, 0);
pModFile->ReadModel("objects\\lem2t.mod");
pModFile->CreateEngineObject(rank);
- m_object->SetPosition(6, D3DVECTOR(0.0f, 2.0f, -3.0f));
+ m_object->SetPosition(6, Math::Vector(0.0f, 2.0f, -3.0f));
// Creates the left caterpillar.
rank = m_engine->CreateObject();
@@ -468,7 +469,7 @@ bool CMotionVehicle::Create(D3DVECTOR pos, float angle, ObjectType type,
m_object->SetObjectParent(7, 0);
pModFile->ReadModel("objects\\lem3t.mod");
pModFile->CreateEngineObject(rank);
- m_object->SetPosition(7, D3DVECTOR(0.0f, 2.0f, 3.0f));
+ m_object->SetPosition(7, Math::Vector(0.0f, 2.0f, 3.0f));
}
if ( type == OBJECT_MOBILErt ||
@@ -483,7 +484,7 @@ bool CMotionVehicle::Create(D3DVECTOR pos, float angle, ObjectType type,
m_object->SetObjectParent(6, 0);
pModFile->ReadModel("objects\\roller2.mod");
pModFile->CreateEngineObject(rank);
- m_object->SetPosition(6, D3DVECTOR(0.0f, 2.0f, -3.0f));
+ m_object->SetPosition(6, Math::Vector(0.0f, 2.0f, -3.0f));
// Creates the left caterpillar.
rank = m_engine->CreateObject();
@@ -492,7 +493,7 @@ bool CMotionVehicle::Create(D3DVECTOR pos, float angle, ObjectType type,
m_object->SetObjectParent(7, 0);
pModFile->ReadModel("objects\\roller3.mod");
pModFile->CreateEngineObject(rank);
- m_object->SetPosition(7, D3DVECTOR(0.0f, 2.0f, 3.0f));
+ m_object->SetPosition(7, Math::Vector(0.0f, 2.0f, 3.0f));
}
if ( type == OBJECT_MOBILEsa ) // underwater caterpillars?
@@ -504,7 +505,7 @@ bool CMotionVehicle::Create(D3DVECTOR pos, float angle, ObjectType type,
m_object->SetObjectParent(6, 0);
pModFile->ReadModel("objects\\subm4.mod");
pModFile->CreateEngineObject(rank);
- m_object->SetPosition(6, D3DVECTOR(0.0f, 1.0f, -3.0f));
+ m_object->SetPosition(6, Math::Vector(0.0f, 1.0f, -3.0f));
// Creates the left caterpillar.
rank = m_engine->CreateObject();
@@ -513,7 +514,7 @@ bool CMotionVehicle::Create(D3DVECTOR pos, float angle, ObjectType type,
m_object->SetObjectParent(7, 0);
pModFile->ReadModel("objects\\subm5.mod");
pModFile->CreateEngineObject(rank);
- m_object->SetPosition(7, D3DVECTOR(0.0f, 1.0f, 3.0f));
+ m_object->SetPosition(7, Math::Vector(0.0f, 1.0f, 3.0f));
}
if ( type == OBJECT_MOBILEdr ) // caterpillars?
@@ -525,7 +526,7 @@ bool CMotionVehicle::Create(D3DVECTOR pos, float angle, ObjectType type,
m_object->SetObjectParent(6, 0);
pModFile->ReadModel("objects\\drawer2.mod");
pModFile->CreateEngineObject(rank);
- m_object->SetPosition(6, D3DVECTOR(0.0f, 1.0f, -3.0f));
+ m_object->SetPosition(6, Math::Vector(0.0f, 1.0f, -3.0f));
// Creates the left caterpillar.
rank = m_engine->CreateObject();
@@ -534,7 +535,7 @@ bool CMotionVehicle::Create(D3DVECTOR pos, float angle, ObjectType type,
m_object->SetObjectParent(7, 0);
pModFile->ReadModel("objects\\drawer3.mod");
pModFile->CreateEngineObject(rank);
- m_object->SetPosition(7, D3DVECTOR(0.0f, 1.0f, 3.0f));
+ m_object->SetPosition(7, Math::Vector(0.0f, 1.0f, 3.0f));
}
if ( type == OBJECT_MOBILEfa ||
@@ -550,7 +551,7 @@ bool CMotionVehicle::Create(D3DVECTOR pos, float angle, ObjectType type,
m_object->SetObjectParent(6, 0);
pModFile->ReadModel("objects\\lem2f.mod");
pModFile->CreateEngineObject(rank);
- m_object->SetPosition(6, D3DVECTOR(1.7f, 3.0f, 0.0f));
+ m_object->SetPosition(6, Math::Vector(1.7f, 3.0f, 0.0f));
// Creates the right-back foot.
rank = m_engine->CreateObject();
@@ -559,7 +560,7 @@ bool CMotionVehicle::Create(D3DVECTOR pos, float angle, ObjectType type,
m_object->SetObjectParent(7, 0);
pModFile->ReadModel("objects\\lem2f.mod");
pModFile->CreateEngineObject(rank);
- m_object->SetPosition(7, D3DVECTOR(-1.8f, 3.0f, -1.5f));
+ m_object->SetPosition(7, Math::Vector(-1.8f, 3.0f, -1.5f));
m_object->SetAngleY(7, 120.0f*Math::PI/180.0f);
// Creates the left-back foot.
@@ -569,7 +570,7 @@ bool CMotionVehicle::Create(D3DVECTOR pos, float angle, ObjectType type,
m_object->SetObjectParent(8, 0);
pModFile->ReadModel("objects\\lem2f.mod");
pModFile->CreateEngineObject(rank);
- m_object->SetPosition(8, D3DVECTOR(-1.8f, 3.0f, 1.5f));
+ m_object->SetPosition(8, Math::Vector(-1.8f, 3.0f, 1.5f));
m_object->SetAngleY(8, -120.0f*Math::PI/180.0f);
}
@@ -641,7 +642,7 @@ bool CMotionVehicle::Create(D3DVECTOR pos, float angle, ObjectType type,
m_object->SetObjectParent(1, 0);
pModFile->ReadModel("objects\\roller2t.mod");
pModFile->CreateEngineObject(rank);
- m_object->SetPosition(1, D3DVECTOR(0.0f, 0.0f, 0.0f));
+ m_object->SetPosition(1, Math::Vector(0.0f, 0.0f, 0.0f));
m_object->SetAngleZ(1, 0.0f);
// Creates the pestle.
@@ -651,7 +652,7 @@ bool CMotionVehicle::Create(D3DVECTOR pos, float angle, ObjectType type,
m_object->SetObjectParent(2, 0);
pModFile->ReadModel("objects\\roller3t.mod");
pModFile->CreateEngineObject(rank);
- m_object->SetPosition(2, D3DVECTOR(9.0f, 4.0f, 0.0f));
+ m_object->SetPosition(2, Math::Vector(9.0f, 4.0f, 0.0f));
m_object->SetAngleZ(2, 0.0f);
}
@@ -664,7 +665,7 @@ bool CMotionVehicle::Create(D3DVECTOR pos, float angle, ObjectType type,
m_object->SetObjectParent(1, 0);
pModFile->ReadModel("objects\\roller2c.mod");
pModFile->CreateEngineObject(rank);
- m_object->SetPosition(1, D3DVECTOR(3.0f, 4.6f, 0.0f));
+ m_object->SetPosition(1, Math::Vector(3.0f, 4.6f, 0.0f));
m_object->SetAngleZ(1, Math::PI/8.0f);
// Creates the cannon.
@@ -674,7 +675,7 @@ bool CMotionVehicle::Create(D3DVECTOR pos, float angle, ObjectType type,
m_object->SetObjectParent(2, 0);
pModFile->ReadModel("objects\\roller3p.mod");
pModFile->CreateEngineObject(rank);
- m_object->SetPosition(2, D3DVECTOR(7.0f, 6.5f, 0.0f));
+ m_object->SetPosition(2, Math::Vector(7.0f, 6.5f, 0.0f));
m_object->SetAngleZ(2, 0.0f);
}
@@ -687,7 +688,7 @@ bool CMotionVehicle::Create(D3DVECTOR pos, float angle, ObjectType type,
m_object->SetObjectParent(1, 0);
pModFile->ReadModel("objects\\recover1.mod");
pModFile->CreateEngineObject(rank);
- m_object->SetPosition(1, D3DVECTOR(2.0f, 5.0f, 0.0f));
+ m_object->SetPosition(1, Math::Vector(2.0f, 5.0f, 0.0f));
// Creates the right arm.
rank = m_engine->CreateObject();
@@ -696,7 +697,7 @@ bool CMotionVehicle::Create(D3DVECTOR pos, float angle, ObjectType type,
m_object->SetObjectParent(2, 1);
pModFile->ReadModel("objects\\recover2.mod");
pModFile->CreateEngineObject(rank);
- m_object->SetPosition(2, D3DVECTOR(0.1f, 0.0f, -5.0f));
+ m_object->SetPosition(2, Math::Vector(0.1f, 0.0f, -5.0f));
m_object->SetAngleZ(2, 126.0f*Math::PI/180.0f);
// Creates the right forearm.
@@ -706,7 +707,7 @@ bool CMotionVehicle::Create(D3DVECTOR pos, float angle, ObjectType type,
m_object->SetObjectParent(3, 2);
pModFile->ReadModel("objects\\recover3.mod");
pModFile->CreateEngineObject(rank);
- m_object->SetPosition(3, D3DVECTOR(5.0f, 0.0f, -0.5f));
+ m_object->SetPosition(3, Math::Vector(5.0f, 0.0f, -0.5f));
m_object->SetAngleZ(3, -144.0f*Math::PI/180.0f);
// Creates the left arm.
@@ -717,7 +718,7 @@ bool CMotionVehicle::Create(D3DVECTOR pos, float angle, ObjectType type,
pModFile->ReadModel("objects\\recover2.mod");
pModFile->Mirror();
pModFile->CreateEngineObject(rank);
- m_object->SetPosition(4, D3DVECTOR(0.1f, 0.0f, 5.0f));
+ m_object->SetPosition(4, Math::Vector(0.1f, 0.0f, 5.0f));
m_object->SetAngleZ(4, 126.0f*Math::PI/180.0f);
// Creates the left forearm.
@@ -728,7 +729,7 @@ bool CMotionVehicle::Create(D3DVECTOR pos, float angle, ObjectType type,
pModFile->ReadModel("objects\\recover3.mod");
pModFile->Mirror();
pModFile->CreateEngineObject(rank);
- m_object->SetPosition(5, D3DVECTOR(5.0f, 0.0f, 0.5f));
+ m_object->SetPosition(5, Math::Vector(5.0f, 0.0f, 0.5f));
m_object->SetAngleZ(5, -144.0f*Math::PI/180.0f);
}
@@ -741,7 +742,7 @@ bool CMotionVehicle::Create(D3DVECTOR pos, float angle, ObjectType type,
m_object->SetObjectParent(1, 0);
pModFile->ReadModel("objects\\roller2s.mod");
pModFile->CreateEngineObject(rank);
- m_object->SetPosition(1, D3DVECTOR(0.0f, 0.0f, 0.0f));
+ m_object->SetPosition(1, Math::Vector(0.0f, 0.0f, 0.0f));
m_object->SetAngleZ(1, 0.0f);
// Creates the intermediate piston.
@@ -751,7 +752,7 @@ bool CMotionVehicle::Create(D3DVECTOR pos, float angle, ObjectType type,
m_object->SetObjectParent(2, 1);
pModFile->ReadModel("objects\\roller3s.mod");
pModFile->CreateEngineObject(rank);
- m_object->SetPosition(2, D3DVECTOR(7.0f, 4.5f, 0.0f));
+ m_object->SetPosition(2, Math::Vector(7.0f, 4.5f, 0.0f));
m_object->SetAngleZ(2, 0.0f);
// Creates the piston with the sphere.
@@ -761,7 +762,7 @@ bool CMotionVehicle::Create(D3DVECTOR pos, float angle, ObjectType type,
m_object->SetObjectParent(3, 2);
pModFile->ReadModel("objects\\roller4s.mod");
pModFile->CreateEngineObject(rank);
- m_object->SetPosition(3, D3DVECTOR(0.0f, 1.0f, 0.0f));
+ m_object->SetPosition(3, Math::Vector(0.0f, 1.0f, 0.0f));
m_object->SetAngleZ(3, 0.0f);
}
@@ -774,7 +775,7 @@ bool CMotionVehicle::Create(D3DVECTOR pos, float angle, ObjectType type,
m_object->SetObjectParent(1, 0);
pModFile->ReadModel("objects\\subm2.mod");
pModFile->CreateEngineObject(rank);
- m_object->SetPosition(1, D3DVECTOR(4.2f, 3.0f, 0.0f));
+ m_object->SetPosition(1, Math::Vector(4.2f, 3.0f, 0.0f));
// Creates the right tong.
rank = m_engine->CreateObject();
@@ -783,7 +784,7 @@ bool CMotionVehicle::Create(D3DVECTOR pos, float angle, ObjectType type,
m_object->SetObjectParent(2, 1);
pModFile->ReadModel("objects\\subm3.mod");
pModFile->CreateEngineObject(rank);
- m_object->SetPosition(2, D3DVECTOR(0.5f, 0.0f, -1.5f));
+ m_object->SetPosition(2, Math::Vector(0.5f, 0.0f, -1.5f));
// Creates the left tong.
rank = m_engine->CreateObject();
@@ -793,7 +794,7 @@ bool CMotionVehicle::Create(D3DVECTOR pos, float angle, ObjectType type,
pModFile->ReadModel("objects\\subm3.mod");
pModFile->Mirror();
pModFile->CreateEngineObject(rank);
- m_object->SetPosition(3, D3DVECTOR(0.5f, 0.0f, 1.5f));
+ m_object->SetPosition(3, Math::Vector(0.5f, 0.0f, 1.5f));
}
if ( type == OBJECT_MOBILEdr )
@@ -805,7 +806,7 @@ bool CMotionVehicle::Create(D3DVECTOR pos, float angle, ObjectType type,
m_object->SetObjectParent(1, 0);
pModFile->ReadModel("objects\\drawer4.mod");
pModFile->CreateEngineObject(rank);
- m_object->SetPosition(1, D3DVECTOR(-3.0f, 3.0f, 0.0f));
+ m_object->SetPosition(1, Math::Vector(-3.0f, 3.0f, 0.0f));
// Creates the key.
if ( m_object->RetToy() )
@@ -816,7 +817,7 @@ bool CMotionVehicle::Create(D3DVECTOR pos, float angle, ObjectType type,
m_object->SetObjectParent(2, 0);
pModFile->ReadModel("objects\\drawer5.mod");
pModFile->CreateEngineObject(rank);
- m_posKey = D3DVECTOR(3.0f, 5.7f, 0.0f);
+ m_posKey = Math::Vector(3.0f, 5.7f, 0.0f);
m_object->SetPosition(2, m_posKey);
m_object->SetAngleY(2, 90.0f*Math::PI/180.0f);
}
@@ -831,7 +832,7 @@ bool CMotionVehicle::Create(D3DVECTOR pos, float angle, ObjectType type,
sprintf(name, "objects\\drawer%d.mod", 10+i);
pModFile->ReadModel(name);
pModFile->CreateEngineObject(rank);
- m_object->SetPosition(10+i, D3DVECTOR(0.0f, 0.0f, 0.0f));
+ m_object->SetPosition(10+i, Math::Vector(0.0f, 0.0f, 0.0f));
m_object->SetAngleY(10+i, 45.0f*Math::PI/180.0f*i);
}
}
@@ -847,7 +848,7 @@ bool CMotionVehicle::Create(D3DVECTOR pos, float angle, ObjectType type,
m_object->SetObjectParent(2, 0);
pModFile->ReadModel("objects\\drawer5.mod");
pModFile->CreateEngineObject(rank);
- m_posKey = D3DVECTOR(0.2f, 4.1f, 0.0f);
+ m_posKey = Math::Vector(0.2f, 4.1f, 0.0f);
m_object->SetPosition(2, m_posKey);
m_object->SetAngleY(2, 90.0f*Math::PI/180.0f);
}
@@ -862,7 +863,7 @@ bool CMotionVehicle::Create(D3DVECTOR pos, float angle, ObjectType type,
m_object->SetObjectParent(1, 0);
pModFile->ReadModel("objects\\apolloj2.mod"); // antenna
pModFile->CreateEngineObject(rank);
- m_object->SetPosition(1, D3DVECTOR(5.5f, 8.8f, 2.0f));
+ m_object->SetPosition(1, Math::Vector(5.5f, 8.8f, 2.0f));
m_object->SetAngleY(1, -120.0f*Math::PI/180.0f);
m_object->SetAngleZ(1, 45.0f*Math::PI/180.0f);
@@ -872,7 +873,7 @@ bool CMotionVehicle::Create(D3DVECTOR pos, float angle, ObjectType type,
m_object->SetObjectParent(2, 0);
pModFile->ReadModel("objects\\apolloj3.mod"); // camera
pModFile->CreateEngineObject(rank);
- m_object->SetPosition(2, D3DVECTOR(5.5f, 2.8f, -2.0f));
+ m_object->SetPosition(2, Math::Vector(5.5f, 2.8f, -2.0f));
m_object->SetAngleY(2, 30.0f*Math::PI/180.0f);
// Creates the wheels.
@@ -882,7 +883,7 @@ bool CMotionVehicle::Create(D3DVECTOR pos, float angle, ObjectType type,
m_object->SetObjectParent(6, 0);
pModFile->ReadModel("objects\\apolloj4.mod"); // wheel
pModFile->CreateEngineObject(rank);
- m_object->SetPosition(6, D3DVECTOR(-5.75f, 1.65f, -5.0f));
+ m_object->SetPosition(6, Math::Vector(-5.75f, 1.65f, -5.0f));
rank = m_engine->CreateObject();
m_engine->SetObjectType(rank, TYPEDESCENDANT);
@@ -890,7 +891,7 @@ bool CMotionVehicle::Create(D3DVECTOR pos, float angle, ObjectType type,
m_object->SetObjectParent(7, 0);
pModFile->ReadModel("objects\\apolloj4.mod"); // wheel
pModFile->CreateEngineObject(rank);
- m_object->SetPosition(7, D3DVECTOR(-5.75f, 1.65f, 5.0f));
+ m_object->SetPosition(7, Math::Vector(-5.75f, 1.65f, 5.0f));
rank = m_engine->CreateObject();
m_engine->SetObjectType(rank, TYPEDESCENDANT);
@@ -898,7 +899,7 @@ bool CMotionVehicle::Create(D3DVECTOR pos, float angle, ObjectType type,
m_object->SetObjectParent(8, 0);
pModFile->ReadModel("objects\\apolloj4.mod"); // wheel
pModFile->CreateEngineObject(rank);
- m_object->SetPosition(8, D3DVECTOR(5.75f, 1.65f, -5.0f));
+ m_object->SetPosition(8, Math::Vector(5.75f, 1.65f, -5.0f));
rank = m_engine->CreateObject();
m_engine->SetObjectType(rank, TYPEDESCENDANT);
@@ -906,7 +907,7 @@ bool CMotionVehicle::Create(D3DVECTOR pos, float angle, ObjectType type,
m_object->SetObjectParent(9, 0);
pModFile->ReadModel("objects\\apolloj4.mod"); // wheel
pModFile->CreateEngineObject(rank);
- m_object->SetPosition(9, D3DVECTOR(5.75f, 1.65f, 5.00f));
+ m_object->SetPosition(9, Math::Vector(5.75f, 1.65f, 5.00f));
// Creates mud guards.
rank = m_engine->CreateObject();
@@ -915,7 +916,7 @@ bool CMotionVehicle::Create(D3DVECTOR pos, float angle, ObjectType type,
m_object->SetObjectParent(10, 0);
pModFile->ReadModel("objects\\apolloj6.mod"); // wheel
pModFile->CreateEngineObject(rank);
- m_object->SetPosition(10, D3DVECTOR(-5.75f, 1.65f, -5.0f));
+ m_object->SetPosition(10, Math::Vector(-5.75f, 1.65f, -5.0f));
rank = m_engine->CreateObject();
m_engine->SetObjectType(rank, TYPEDESCENDANT);
@@ -923,7 +924,7 @@ bool CMotionVehicle::Create(D3DVECTOR pos, float angle, ObjectType type,
m_object->SetObjectParent(11, 0);
pModFile->ReadModel("objects\\apolloj6.mod"); // wheel
pModFile->CreateEngineObject(rank);
- m_object->SetPosition(11, D3DVECTOR(-5.75f, 1.65f, 5.0f));
+ m_object->SetPosition(11, Math::Vector(-5.75f, 1.65f, 5.0f));
rank = m_engine->CreateObject();
m_engine->SetObjectType(rank, TYPEDESCENDANT);
@@ -931,7 +932,7 @@ bool CMotionVehicle::Create(D3DVECTOR pos, float angle, ObjectType type,
m_object->SetObjectParent(12, 0);
pModFile->ReadModel("objects\\apolloj5.mod"); // wheel
pModFile->CreateEngineObject(rank);
- m_object->SetPosition(12, D3DVECTOR(5.75f, 1.65f, -5.0f));
+ m_object->SetPosition(12, Math::Vector(5.75f, 1.65f, -5.0f));
rank = m_engine->CreateObject();
m_engine->SetObjectType(rank, TYPEDESCENDANT);
@@ -939,7 +940,7 @@ bool CMotionVehicle::Create(D3DVECTOR pos, float angle, ObjectType type,
m_object->SetObjectParent(13, 0);
pModFile->ReadModel("objects\\apolloj5.mod"); // wheel
pModFile->CreateEngineObject(rank);
- m_object->SetPosition(13, D3DVECTOR(5.75f, 1.65f, 5.00f));
+ m_object->SetPosition(13, Math::Vector(5.75f, 1.65f, 5.00f));
}
#if 1
@@ -1054,8 +1055,8 @@ bool CMotionVehicle::Create(D3DVECTOR pos, float angle, ObjectType type,
pModFile->CreateEngineObject(rank);
pPower->SetPosition(0, m_object->RetCharacter()->posPower);
- pPower->CreateCrashSphere(D3DVECTOR(0.0f, 1.0f, 0.0f), 1.0f, SOUND_BOUMm, 0.45f);
- pPower->SetGlobalSphere(D3DVECTOR(0.0f, 1.0f, 0.0f), 1.5f);
+ pPower->CreateCrashSphere(Math::Vector(0.0f, 1.0f, 0.0f), 1.0f, SOUND_BOUMm, 0.45f);
+ pPower->SetGlobalSphere(Math::Vector(0.0f, 1.0f, 0.0f), 1.5f);
pPower->SetTruck(m_object);
m_object->SetPower(pPower);
@@ -1093,7 +1094,7 @@ void CMotionVehicle::CreatePhysics(ObjectType type)
character->wheelBack = 4.0f;
character->wheelLeft = 4.0f;
character->wheelRight = 4.0f;
- character->posPower = D3DVECTOR(-3.2f, 3.0f, 0.0f);
+ character->posPower = Math::Vector(-3.2f, 3.0f, 0.0f);
m_physics->SetLinMotionX(MO_ADVSPEED, 20.0f);
m_physics->SetLinMotionX(MO_RECSPEED, 10.0f);
@@ -1121,7 +1122,7 @@ void CMotionVehicle::CreatePhysics(ObjectType type)
character->wheelBack = 3.0f;
character->wheelLeft = 4.0f;
character->wheelRight = 4.0f;
- character->posPower = D3DVECTOR(-3.2f, 3.0f, 0.0f);
+ character->posPower = Math::Vector(-3.2f, 3.0f, 0.0f);
m_physics->SetLinMotionX(MO_ADVSPEED, 20.0f);
m_physics->SetLinMotionX(MO_RECSPEED, 10.0f);
@@ -1152,7 +1153,7 @@ void CMotionVehicle::CreatePhysics(ObjectType type)
character->wheelBack = 4.0f;
character->wheelLeft = 4.8f;
character->wheelRight = 4.8f;
- character->posPower = D3DVECTOR(-3.2f, 3.0f, 0.0f);
+ character->posPower = Math::Vector(-3.2f, 3.0f, 0.0f);
m_physics->SetLinMotionX(MO_ADVSPEED, 15.0f);
m_physics->SetLinMotionX(MO_RECSPEED, 8.0f);
@@ -1183,7 +1184,7 @@ void CMotionVehicle::CreatePhysics(ObjectType type)
character->wheelBack = 4.0f;
character->wheelLeft = 5.0f;
character->wheelRight = 5.0f;
- character->posPower = D3DVECTOR(-3.2f, 3.0f, 0.0f);
+ character->posPower = Math::Vector(-3.2f, 3.0f, 0.0f);
m_physics->SetLinMotionX(MO_ADVSPEED, 15.0f);
m_physics->SetLinMotionX(MO_RECSPEED, 8.0f);
@@ -1216,7 +1217,7 @@ void CMotionVehicle::CreatePhysics(ObjectType type)
character->wheelBack = 4.0f;
character->wheelLeft = 4.5f;
character->wheelRight = 4.5f;
- character->posPower = D3DVECTOR(-3.2f, 3.0f, 0.0f);
+ character->posPower = Math::Vector(-3.2f, 3.0f, 0.0f);
m_physics->SetLinMotionX(MO_ADVSPEED, 50.0f);
m_physics->SetLinMotionX(MO_RECSPEED, 50.0f);
@@ -1252,7 +1253,7 @@ void CMotionVehicle::CreatePhysics(ObjectType type)
character->wheelBack = 5.0f;
character->wheelLeft = 6.0f;
character->wheelRight = 6.0f;
- character->posPower = D3DVECTOR(-5.8f, 4.0f, 0.0f);
+ character->posPower = Math::Vector(-5.8f, 4.0f, 0.0f);
m_physics->SetLinMotionX(MO_ADVSPEED, 10.0f);
m_physics->SetLinMotionX(MO_RECSPEED, 5.0f);
@@ -1280,7 +1281,7 @@ void CMotionVehicle::CreatePhysics(ObjectType type)
character->wheelBack = 4.0f;
character->wheelLeft = 4.0f;
character->wheelRight = 4.0f;
- character->posPower = D3DVECTOR(-5.0f, 3.0f, 0.0f);
+ character->posPower = Math::Vector(-5.0f, 3.0f, 0.0f);
m_physics->SetLinMotionX(MO_ADVSPEED, 15.0f);
m_physics->SetLinMotionX(MO_RECSPEED, 10.0f);
@@ -1308,7 +1309,7 @@ void CMotionVehicle::CreatePhysics(ObjectType type)
character->wheelBack = 4.0f;
character->wheelLeft = 4.0f;
character->wheelRight = 4.0f;
- character->posPower = D3DVECTOR(-5.0f, 3.0f, 0.0f);
+ character->posPower = Math::Vector(-5.0f, 3.0f, 0.0f);
m_physics->SetLinMotionX(MO_ADVSPEED, 15.0f);
m_physics->SetLinMotionX(MO_RECSPEED, 10.0f);
@@ -1379,9 +1380,9 @@ bool CMotionVehicle::EventProcess(const Event &event)
bool CMotionVehicle::EventFrame(const Event &event)
{
- D3DMATRIX* mat;
+ Math::Matrix* mat;
Character* character;
- D3DVECTOR pos, angle, floor;
+ Math::Vector pos, angle, floor;
ObjectType type;
float s, a, speedBL, speedBR, speedFL, speedFR, h, a1, a2;
float back, front, dist, radius, limit[2];
@@ -1482,7 +1483,7 @@ bool CMotionVehicle::EventFrame(const Event &event)
radius = 1.0f;
}
- if ( Length(pos, m_engine->RetEyePt()) < 50.0f ) // suspension?
+ if ( Math::Distance(pos, m_engine->RetEyePt()) < 50.0f ) // suspension?
{
character = m_object->RetCharacter();
mat = m_object->RetWorldMatrix(0);
@@ -1490,7 +1491,7 @@ bool CMotionVehicle::EventFrame(const Event &event)
pos.x = -character->wheelBack; // right back wheel
pos.z = -character->wheelRight;
pos.y = 0.0f;
- pos = Transform(*mat, pos);
+ pos = Math::Transform(*mat, pos);
h = m_terrain->RetFloorHeight(pos);
if ( h > 0.5f ) h = 0.5f;
if ( h < -0.5f ) h = -0.5f;
@@ -1503,7 +1504,7 @@ bool CMotionVehicle::EventFrame(const Event &event)
pos.x = -character->wheelBack; // left back wheel
pos.z = character->wheelLeft;
pos.y = 0.0f;
- pos = Transform(*mat, pos);
+ pos = Math::Transform(*mat, pos);
h = m_terrain->RetFloorHeight(pos);
if ( h > 0.5f ) h = 0.5f;
if ( h < -0.5f ) h = -0.5f;
@@ -1516,7 +1517,7 @@ bool CMotionVehicle::EventFrame(const Event &event)
pos.x = character->wheelFront; // right front wheel
pos.z = -character->wheelRight;
pos.y = 0.0f;
- pos = Transform(*mat, pos);
+ pos = Math::Transform(*mat, pos);
h = m_terrain->RetFloorHeight(pos);
if ( h > 0.5f ) h = 0.5f;
if ( h < -0.5f ) h = -0.5f;
@@ -1529,7 +1530,7 @@ bool CMotionVehicle::EventFrame(const Event &event)
pos.x = character->wheelFront; // left front wheel
pos.z = character->wheelLeft;
pos.y = 0.0f;
- pos = Transform(*mat, pos);
+ pos = Math::Transform(*mat, pos);
h = m_terrain->RetFloorHeight(pos);
if ( h > 0.5f ) h = 0.5f;
if ( h < -0.5f ) h = -0.5f;
@@ -1541,17 +1542,17 @@ bool CMotionVehicle::EventFrame(const Event &event)
}
else
{
- m_object->SetPosition(6, D3DVECTOR(back, radius, -dist));
- m_object->SetPosition(7, D3DVECTOR(back, radius, dist));
- m_object->SetPosition(8, D3DVECTOR(front, radius, -dist));
- m_object->SetPosition(9, D3DVECTOR(front, radius, dist));
+ m_object->SetPosition(6, Math::Vector(back, radius, -dist));
+ m_object->SetPosition(7, Math::Vector(back, radius, dist));
+ m_object->SetPosition(8, Math::Vector(front, radius, -dist));
+ m_object->SetPosition(9, Math::Vector(front, radius, dist));
if ( type == OBJECT_APOLLO2 )
{
- m_object->SetPosition(10, D3DVECTOR(back, radius, -dist));
- m_object->SetPosition(11, D3DVECTOR(back, radius, dist));
- m_object->SetPosition(12, D3DVECTOR(front, radius, -dist));
- m_object->SetPosition(13, D3DVECTOR(front, radius, dist));
+ m_object->SetPosition(10, Math::Vector(back, radius, -dist));
+ m_object->SetPosition(11, Math::Vector(back, radius, dist));
+ m_object->SetPosition(12, Math::Vector(front, radius, -dist));
+ m_object->SetPosition(13, Math::Vector(front, radius, dist));
}
}
}
@@ -1612,7 +1613,7 @@ bool CMotionVehicle::EventFrame(const Event &event)
limit[1] = -10.0f*Math::PI/180.0f;
}
- if ( Length(pos, m_engine->RetEyePt()) < 50.0f ) // suspension?
+ if ( Math::Distance(pos, m_engine->RetEyePt()) < 50.0f ) // suspension?
{
character = m_object->RetCharacter();
mat = m_object->RetWorldMatrix(0);
@@ -1707,8 +1708,8 @@ bool CMotionVehicle::EventFrame(const Event &event)
bool CMotionVehicle::EventFrameFly(const Event &event)
{
- D3DMATRIX* mat;
- D3DVECTOR pos, angle, paw[3];
+ Math::Matrix* mat;
+ Math::Vector pos, angle, paw[3];
float hope[3], actual, final, h, a;
int i;
@@ -1728,9 +1729,9 @@ bool CMotionVehicle::EventFrameFly(const Event &event)
if ( m_physics->RetLand() ) // on the ground?
{
mat = m_object->RetWorldMatrix(0);
- paw[0] = Transform(*mat, D3DVECTOR( 4.2f, 0.0f, 0.0f)); // front
- paw[1] = Transform(*mat, D3DVECTOR(-3.0f, 0.0f, -3.7f)); // right back
- paw[2] = Transform(*mat, D3DVECTOR(-3.0f, 0.0f, 3.7f)); // left back
+ paw[0] = Transform(*mat, Math::Vector( 4.2f, 0.0f, 0.0f)); // front
+ paw[1] = Transform(*mat, Math::Vector(-3.0f, 0.0f, -3.7f)); // right back
+ paw[2] = Transform(*mat, Math::Vector(-3.0f, 0.0f, 3.7f)); // left back
for ( i=0 ; i<3 ; i++ )
{
@@ -1767,7 +1768,7 @@ bool CMotionVehicle::EventFrameFly(const Event &event)
bool CMotionVehicle::EventFrameInsect(const Event &event)
{
- D3DVECTOR dir;
+ Math::Vector dir;
float s, a, prog, time;
int i, st, nd, action;
bool bStop, bOnBoard;
@@ -1920,7 +1921,7 @@ bool CMotionVehicle::EventFrameInsect(const Event &event)
bool CMotionVehicle::EventFrameCanoni(const Event &event)
{
CObject* power;
- D3DVECTOR pos, speed;
+ Math::Vector pos, speed;
Math::Point dim;
float zoom, angle, energy, factor;
bool bOnBoard = false;
diff --git a/src/object/motion/motionvehicle.h b/src/object/motion/motionvehicle.h
index b9ac0c9..8bc4dd2 100644
--- a/src/object/motion/motionvehicle.h
+++ b/src/object/motion/motionvehicle.h
@@ -40,7 +40,7 @@ public:
~CMotionVehicle();
void DeleteObject(bool bAll=false);
- bool Create(D3DVECTOR pos, float angle, ObjectType type, float power);
+ bool Create(Math::Vector pos, float angle, ObjectType type, float power);
bool EventProcess(const Event &event);
bool RetTraceDown();
@@ -68,9 +68,9 @@ protected:
float m_armMember;
float m_canonTime;
float m_lastTimeCanon;
- D3DVECTOR m_wheelLastPos;
- D3DVECTOR m_wheelLastAngle;
- D3DVECTOR m_posKey;
+ Math::Vector m_wheelLastPos;
+ Math::Vector m_wheelLastAngle;
+ Math::Vector m_posKey;
bool m_bFlyFix;
bool m_bTraceDown;
int m_traceColor;
diff --git a/src/object/motion/motionworm.cpp b/src/object/motion/motionworm.cpp
index ab3f946..0918a0f 100644
--- a/src/object/motion/motionworm.cpp
+++ b/src/object/motion/motionworm.cpp
@@ -87,7 +87,7 @@ void CMotionWorm::DeleteObject(bool bAll)
// Creates a vehicle traveling any lands on the ground.
-bool CMotionWorm::Create(D3DVECTOR pos, float angle, ObjectType type,
+bool CMotionWorm::Create(Math::Vector pos, float angle, ObjectType type,
float power)
{
CModFile* pModFile;
@@ -110,8 +110,8 @@ bool CMotionWorm::Create(D3DVECTOR pos, float angle, ObjectType type,
m_object->SetAngleY(0, angle);
// A vehicle must have a obligatory collision with a sphere of center (0, y, 0) (see GetCrashSphere).
- m_object->CreateCrashSphere(D3DVECTOR(0.0f, 0.0f, 0.0f), 4.0f, SOUND_BOUM, 0.20f);
- m_object->SetGlobalSphere(D3DVECTOR(0.0f, 0.0f, 0.0f), 5.0f);
+ m_object->CreateCrashSphere(Math::Vector(0.0f, 0.0f, 0.0f), 4.0f, SOUND_BOUM, 0.20f);
+ m_object->SetGlobalSphere(Math::Vector(0.0f, 0.0f, 0.0f), 5.0f);
px = 1.0f+WORM_PART/2;
@@ -122,7 +122,7 @@ bool CMotionWorm::Create(D3DVECTOR pos, float angle, ObjectType type,
m_object->SetObjectParent(1, 0);
pModFile->ReadModel("objects\\worm1.mod");
pModFile->CreateEngineObject(rank);
- m_object->SetPosition(1, D3DVECTOR(px, 0.0f, 0.0f));
+ m_object->SetPosition(1, Math::Vector(px, 0.0f, 0.0f));
px -= 1.0f;
// Creates the body.
@@ -134,7 +134,7 @@ bool CMotionWorm::Create(D3DVECTOR pos, float angle, ObjectType type,
m_object->SetObjectParent(2+i, 0);
pModFile->ReadModel("objects\\worm2.mod");
pModFile->CreateEngineObject(rank);
- m_object->SetPosition(2+i, D3DVECTOR(px, 0.0f, 0.0f));
+ m_object->SetPosition(2+i, Math::Vector(px, 0.0f, 0.0f));
px -= 1.0f;
}
@@ -145,7 +145,7 @@ bool CMotionWorm::Create(D3DVECTOR pos, float angle, ObjectType type,
m_object->SetObjectParent(2+WORM_PART, 0);
pModFile->ReadModel("objects\\worm3.mod");
pModFile->CreateEngineObject(rank);
- m_object->SetPosition(2+WORM_PART, D3DVECTOR(px, 0.0f, 0.0f));
+ m_object->SetPosition(2+WORM_PART, Math::Vector(px, 0.0f, 0.0f));
m_object->CreateShadowCircle(0.0f, 1.0f, D3DSHADOWWORM);
@@ -246,8 +246,8 @@ bool CMotionWorm::EventProcess(const Event &event)
bool CMotionWorm::EventFrame(const Event &event)
{
- D3DMATRIX* mat;
- D3DVECTOR pos, p, angle, speed;
+ Math::Matrix* mat;
+ Math::Vector pos, p, angle, speed;
Math::Point center, pp, dim;
float height[WORM_PART+2];
float floor, a, s, px, curve, phase, h, zoom, radius;
@@ -346,7 +346,7 @@ bool CMotionWorm::EventFrame(const Event &event)
pos.y += -height[i];
pos.x += (Math::Rand()-0.5f)*4.0f;
pos.z += (Math::Rand()-0.5f)*4.0f;
- speed = D3DVECTOR(0.0f, 0.0f, 0.0f);
+ speed = Math::Vector(0.0f, 0.0f, 0.0f);
dim.x = Math::Rand()*2.0f+1.5f;
dim.y = dim.x;
m_particule->CreateParticule(pos, speed, dim, PARTICRASH, 2.0f);
@@ -360,7 +360,7 @@ bool CMotionWorm::EventFrame(const Event &event)
pos = m_object->RetPosition(i+2);
pos -= m_object->RetPosition(i+1);
- angle.z = -Math::RotateAngle(Length(pos.x, pos.z), pos.y);
+ angle.z = -Math::RotateAngle(Math::Point(pos.x, pos.z).Length(), pos.y);
angle.y = Math::PI-Math::RotateAngle(pos.x, pos.z);
angle.x = 0.0f;
m_object->SetAngle(i+1, angle);
diff --git a/src/object/motion/motionworm.h b/src/object/motion/motionworm.h
index 6dca520..687435e 100644
--- a/src/object/motion/motionworm.h
+++ b/src/object/motion/motionworm.h
@@ -40,7 +40,7 @@ public:
~CMotionWorm();
void DeleteObject(bool bAll=false);
- bool Create(D3DVECTOR pos, float angle, ObjectType type, float power);
+ bool Create(Math::Vector pos, float angle, ObjectType type, float power);
bool EventProcess(const Event &event);
bool SetParam(int rank, float value);
diff --git a/src/object/object.cpp b/src/object/object.cpp
index 130bf3b..360224e 100644
--- a/src/object/object.cpp
+++ b/src/object/object.cpp
@@ -34,7 +34,7 @@
#include "common/iman.h"
#include "common/restext.h"
#include "math/old/math3d.h"
-#include "graphics/common/mainmovie.h"
+#include "object/mainmovie.h"
#include "object/robotmain.h"
#include "graphics/common/light.h"
#include "graphics/common/terrain.h"
@@ -122,7 +122,7 @@ void uObject(CBotVar* botThis, void* user)
CPhysics* physics;
CBotVar *pVar, *pSub;
ObjectType type;
- D3DVECTOR pos;
+ Math::Vector pos;
float value;
int iValue;
@@ -247,9 +247,9 @@ CObject::CObject(CInstanceManager* iMan)
m_partiReactor = -1;
m_shadowLight = -1;
m_effectLight = -1;
- m_linVibration = D3DVECTOR(0.0f, 0.0f, 0.0f);
- m_cirVibration = D3DVECTOR(0.0f, 0.0f, 0.0f);
- m_inclinaison = D3DVECTOR(0.0f, 0.0f, 0.0f);
+ m_linVibration = Math::Vector(0.0f, 0.0f, 0.0f);
+ m_cirVibration = Math::Vector(0.0f, 0.0f, 0.0f);
+ m_inclinaison = Math::Vector(0.0f, 0.0f, 0.0f);
m_lastParticule = 0.0f;
m_power = 0;
@@ -305,8 +305,8 @@ CObject::CObject(CInstanceManager* iMan)
m_resetCap = RESET_NONE;
m_bResetBusy = false;
- m_resetPosition = D3DVECTOR(0.0f, 0.0f, 0.0f);
- m_resetAngle = D3DVECTOR(0.0f, 0.0f, 0.0f);
+ m_resetPosition = Math::Vector(0.0f, 0.0f, 0.0f);
+ m_resetAngle = Math::Vector(0.0f, 0.0f, 0.0f);
m_resetRun = -1;
m_cameraType = CAMERA_BACK;
@@ -334,9 +334,9 @@ CObject::CObject(CInstanceManager* iMan)
}
FlushCrashShere();
- m_globalSpherePos = D3DVECTOR(0.0f, 0.0f, 0.0f);
+ m_globalSpherePos = Math::Vector(0.0f, 0.0f, 0.0f);
m_globalSphereRadius = 0.0f;
- m_jotlerSpherePos = D3DVECTOR(0.0f, 0.0f, 0.0f);
+ m_jotlerSpherePos = Math::Vector(0.0f, 0.0f, 0.0f);
m_jotlerSphereRadius = 0.0f;
CBotClass* bc = CBotClass::Find("object");
@@ -811,20 +811,20 @@ void CObject::InitPart(int part)
m_objectPart[part].object = -1;
m_objectPart[part].parentPart = -1;
- m_objectPart[part].position = D3DVECTOR(0.0f, 0.0f, 0.0f);
+ m_objectPart[part].position = Math::Vector(0.0f, 0.0f, 0.0f);
m_objectPart[part].angle.y = 0.0f;
m_objectPart[part].angle.x = 0.0f;
m_objectPart[part].angle.z = 0.0f;
- m_objectPart[part].zoom = D3DVECTOR(1.0f, 1.0f, 1.0f);
+ m_objectPart[part].zoom = Math::Vector(1.0f, 1.0f, 1.0f);
m_objectPart[part].bTranslate = true;
m_objectPart[part].bRotate = true;
m_objectPart[part].bZoom = false;
- D3DUtil_SetIdentityMatrix(m_objectPart[part].matTranslate);
- D3DUtil_SetIdentityMatrix(m_objectPart[part].matRotate);
- D3DUtil_SetIdentityMatrix(m_objectPart[part].matTransform);
- D3DUtil_SetIdentityMatrix(m_objectPart[part].matWorld);
+ m_objectPart[part].matTranslate.LoadIdentity();
+ m_objectPart[part].matRotate.LoadIdentity();
+ m_objectPart[part].matTransform.LoadIdentity();
+ m_objectPart[part].matWorld.LoadIdentity();;
m_objectPart[part].masterParti = -1;
}
@@ -990,7 +990,7 @@ int CObject::RetID()
bool CObject::Write(char *line)
{
- D3DVECTOR pos;
+ Math::Vector pos;
Info info;
char name[100];
float value;
@@ -1168,7 +1168,7 @@ bool CObject::Write(char *line)
bool CObject::Read(char *line)
{
- D3DVECTOR pos, dir;
+ Math::Vector pos, dir;
Info info;
CameraType cType;
char op[20];
@@ -1284,7 +1284,7 @@ void CObject::FlushCrashShere()
// Adds a new sphere.
-int CObject::CreateCrashSphere(D3DVECTOR pos, float radius, Sound sound,
+int CObject::CreateCrashSphere(Math::Vector pos, float radius, Sound sound,
float hardness)
{
float zoom;
@@ -1309,7 +1309,7 @@ int CObject::RetCrashSphereTotal()
// Returns a sphere for collisions.
// The position is absolute in the world.
-bool CObject::GetCrashSphere(int rank, D3DVECTOR &pos, float &radius)
+bool CObject::GetCrashSphere(int rank, Math::Vector &pos, float &radius)
{
if ( rank < 0 || rank >= m_crashSphereUsed )
{
@@ -1337,7 +1337,7 @@ bool CObject::GetCrashSphere(int rank, D3DVECTOR &pos, float &radius)
{
UpdateTransformObject();
}
- pos = Transform(m_objectPart[0].matWorld, m_crashSpherePos[rank]);
+ pos = Math::Transform(m_objectPart[0].matWorld, m_crashSpherePos[rank]);
radius = m_crashSphereRadius[rank];
return true;
}
@@ -1374,7 +1374,7 @@ void CObject::DeleteCrashSphere(int rank)
// Specifies the global sphere, relative to the object.
-void CObject::SetGlobalSphere(D3DVECTOR pos, float radius)
+void CObject::SetGlobalSphere(Math::Vector pos, float radius)
{
float zoom;
@@ -1385,16 +1385,16 @@ void CObject::SetGlobalSphere(D3DVECTOR pos, float radius)
// Returns the global sphere, in the world.
-void CObject::GetGlobalSphere(D3DVECTOR &pos, float &radius)
+void CObject::GetGlobalSphere(Math::Vector &pos, float &radius)
{
- pos = Transform(m_objectPart[0].matWorld, m_globalSpherePos);
+ pos = Math::Transform(m_objectPart[0].matWorld, m_globalSpherePos);
radius = m_globalSphereRadius;
}
// Specifies the sphere of jostling, relative to the object.
-void CObject::SetJotlerSphere(D3DVECTOR pos, float radius)
+void CObject::SetJotlerSphere(Math::Vector pos, float radius)
{
m_jotlerSpherePos = pos;
m_jotlerSphereRadius = radius;
@@ -1402,9 +1402,9 @@ void CObject::SetJotlerSphere(D3DVECTOR pos, float radius)
// Specifies the sphere of jostling, in the world.
-void CObject::GetJotlerSphere(D3DVECTOR &pos, float &radius)
+void CObject::GetJotlerSphere(Math::Vector &pos, float &radius)
{
- pos = Transform(m_objectPart[0].matWorld, m_jotlerSpherePos);
+ pos = Math::Transform(m_objectPart[0].matWorld, m_jotlerSpherePos);
radius = m_jotlerSphereRadius;
}
@@ -1428,7 +1428,7 @@ float CObject::RetShieldRadius()
void CObject::SetFloorHeight(float height)
{
- D3DVECTOR pos;
+ Math::Vector pos;
pos = m_objectPart[0].position;
m_terrain->MoveOnFloor(pos);
@@ -1447,7 +1447,7 @@ void CObject::SetFloorHeight(float height)
void CObject::FloorAdjust()
{
- D3DVECTOR pos, n;
+ Math::Vector pos, n;
Math::Point nn;
float a;
@@ -1470,7 +1470,7 @@ void CObject::FloorAdjust()
// Gives the linear vibration.
-void CObject::SetLinVibration(D3DVECTOR dir)
+void CObject::SetLinVibration(Math::Vector dir)
{
if ( m_linVibration.x != dir.x ||
m_linVibration.y != dir.y ||
@@ -1481,14 +1481,14 @@ void CObject::SetLinVibration(D3DVECTOR dir)
}
}
-D3DVECTOR CObject::RetLinVibration()
+Math::Vector CObject::RetLinVibration()
{
return m_linVibration;
}
// Gives the circular vibration.
-void CObject::SetCirVibration(D3DVECTOR dir)
+void CObject::SetCirVibration(Math::Vector dir)
{
if ( m_cirVibration.x != dir.x ||
m_cirVibration.y != dir.y ||
@@ -1499,14 +1499,14 @@ void CObject::SetCirVibration(D3DVECTOR dir)
}
}
-D3DVECTOR CObject::RetCirVibration()
+Math::Vector CObject::RetCirVibration()
{
return m_cirVibration;
}
// Gives the inclination.
-void CObject::SetInclinaison(D3DVECTOR dir)
+void CObject::SetInclinaison(Math::Vector dir)
{
if ( m_inclinaison.x != dir.x ||
m_inclinaison.y != dir.y ||
@@ -1517,7 +1517,7 @@ void CObject::SetInclinaison(D3DVECTOR dir)
}
}
-D3DVECTOR CObject::RetInclinaison()
+Math::Vector CObject::RetInclinaison()
{
return m_inclinaison;
}
@@ -1525,9 +1525,9 @@ D3DVECTOR CObject::RetInclinaison()
// Gives the position of center of the object.
-void CObject::SetPosition(int part, const D3DVECTOR &pos)
+void CObject::SetPosition(int part, const Math::Vector &pos)
{
- D3DVECTOR shPos, n[20], norm;
+ Math::Vector shPos, n[20], norm;
float height, radius;
int rank, i, j;
@@ -1614,7 +1614,7 @@ void CObject::SetPosition(int part, const D3DVECTOR &pos)
m_terrain->GetNormal(norm, shPos);
n[i++] = norm;
- norm = 0.0f;
+ norm.LoadZero();
for ( j=0 ; j<i ; j++ )
{
norm += n[j];
@@ -1644,14 +1644,14 @@ void CObject::SetPosition(int part, const D3DVECTOR &pos)
}
}
-D3DVECTOR CObject::RetPosition(int part)
+Math::Vector CObject::RetPosition(int part)
{
return m_objectPart[part].position;
}
// Gives the rotation around three axis.
-void CObject::SetAngle(int part, const D3DVECTOR &angle)
+void CObject::SetAngle(int part, const Math::Vector &angle)
{
m_objectPart[part].angle = angle;
m_objectPart[part].bRotate = true; // it will recalculate the matrices
@@ -1662,7 +1662,7 @@ void CObject::SetAngle(int part, const D3DVECTOR &angle)
}
}
-D3DVECTOR CObject::RetAngle(int part)
+Math::Vector CObject::RetAngle(int part)
{
return m_objectPart[part].angle;
}
@@ -1726,7 +1726,7 @@ void CObject::SetZoom(int part, float zoom)
m_objectPart[part].zoom.z != 1.0f );
}
-void CObject::SetZoom(int part, D3DVECTOR zoom)
+void CObject::SetZoom(int part, Math::Vector zoom)
{
m_objectPart[part].bTranslate = true; // it will recalculate the matrices
m_objectPart[part].zoom = zoom;
@@ -1736,7 +1736,7 @@ void CObject::SetZoom(int part, D3DVECTOR zoom)
m_objectPart[part].zoom.z != 1.0f );
}
-D3DVECTOR CObject::RetZoom(int part)
+Math::Vector CObject::RetZoom(int part)
{
return m_objectPart[part].zoom;
}
@@ -1850,22 +1850,22 @@ bool CObject::RetResetBusy()
return m_bResetBusy;
}
-void CObject::SetResetPosition(const D3DVECTOR &pos)
+void CObject::SetResetPosition(const Math::Vector &pos)
{
m_resetPosition = pos;
}
-D3DVECTOR CObject::RetResetPosition()
+Math::Vector CObject::RetResetPosition()
{
return m_resetPosition;
}
-void CObject::SetResetAngle(const D3DVECTOR &angle)
+void CObject::SetResetAngle(const Math::Vector &angle)
{
m_resetAngle = angle;
}
-D3DVECTOR CObject::RetResetAngle()
+Math::Vector CObject::RetResetAngle()
{
return m_resetAngle;
}
@@ -2025,22 +2025,22 @@ float CObject::RetCmdLine(int rank)
// Returns matrices of an object portion.
-D3DMATRIX* CObject::RetRotateMatrix(int part)
+Math::Matrix* CObject::RetRotateMatrix(int part)
{
return &m_objectPart[part].matRotate;
}
-D3DMATRIX* CObject::RetTranslateMatrix(int part)
+Math::Matrix* CObject::RetTranslateMatrix(int part)
{
return &m_objectPart[part].matTranslate;
}
-D3DMATRIX* CObject::RetTransformMatrix(int part)
+Math::Matrix* CObject::RetTransformMatrix(int part)
{
return &m_objectPart[part].matTransform;
}
-D3DMATRIX* CObject::RetWorldMatrix(int part)
+Math::Matrix* CObject::RetWorldMatrix(int part)
{
if ( m_objectPart[0].bTranslate ||
m_objectPart[0].bRotate )
@@ -2085,7 +2085,7 @@ void CObject::SetDrawFront(bool bDraw)
// Creates a vehicle traveling any pose on the floor.
-bool CObject::CreateVehicle(D3DVECTOR pos, float angle, ObjectType type,
+bool CObject::CreateVehicle(Math::Vector pos, float angle, ObjectType type,
float power, bool bTrainer, bool bToy)
{
m_type = type;
@@ -2178,7 +2178,7 @@ bool CObject::CreateVehicle(D3DVECTOR pos, float angle, ObjectType type,
// Creates an insect lands on any ground.
-bool CObject::CreateInsect(D3DVECTOR pos, float angle, ObjectType type)
+bool CObject::CreateInsect(Math::Vector pos, float angle, ObjectType type)
{
m_type = type;
@@ -2245,7 +2245,7 @@ bool CObject::CreateInsect(D3DVECTOR pos, float angle, ObjectType type)
bool CObject::CreateShadowLight(float height, D3DCOLORVALUE color)
{
D3DLIGHT7 light;
- D3DVECTOR pos;
+ Math::Vector pos;
if ( !m_engine->RetLightMode() ) return true;
@@ -2358,7 +2358,7 @@ bool CObject::CreateShadowCircle(float radius, float intensity,
// Creates a building laying on the ground.
-bool CObject::CreateBuilding(D3DVECTOR pos, float angle, float height,
+bool CObject::CreateBuilding(Math::Vector pos, float angle, float height,
ObjectType type, float power)
{
CModFile* pModFile;
@@ -2389,7 +2389,7 @@ bool CObject::CreateBuilding(D3DVECTOR pos, float angle, float height,
SetObjectParent(1, 0);
pModFile->ReadModel("objects\\portico2.mod");
pModFile->CreateEngineObject(rank);
- SetPosition(1, D3DVECTOR(0.0f, 67.0f, 0.0f));
+ SetPosition(1, Math::Vector(0.0f, 67.0f, 0.0f));
rank = m_engine->CreateObject();
m_engine->SetObjectType(rank, TYPEDESCENDANT);
@@ -2397,7 +2397,7 @@ bool CObject::CreateBuilding(D3DVECTOR pos, float angle, float height,
SetObjectParent(2, 1);
pModFile->ReadModel("objects\\portico3.mod");
pModFile->CreateEngineObject(rank);
- SetPosition(2, D3DVECTOR(0.0f, 0.0f, -33.0f));
+ SetPosition(2, Math::Vector(0.0f, 0.0f, -33.0f));
SetAngleY(2, 45.0f*Math::PI/180.0f);
rank = m_engine->CreateObject();
@@ -2406,7 +2406,7 @@ bool CObject::CreateBuilding(D3DVECTOR pos, float angle, float height,
SetObjectParent(3, 2);
pModFile->ReadModel("objects\\portico4.mod");
pModFile->CreateEngineObject(rank);
- SetPosition(3, D3DVECTOR(50.0f, 0.0f, 0.0f));
+ SetPosition(3, Math::Vector(50.0f, 0.0f, 0.0f));
SetAngleY(3, -60.0f*Math::PI/180.0f);
rank = m_engine->CreateObject();
@@ -2415,7 +2415,7 @@ bool CObject::CreateBuilding(D3DVECTOR pos, float angle, float height,
SetObjectParent(4, 3);
pModFile->ReadModel("objects\\portico5.mod");
pModFile->CreateEngineObject(rank);
- SetPosition(4, D3DVECTOR(35.0f, 0.0f, 0.0f));
+ SetPosition(4, Math::Vector(35.0f, 0.0f, 0.0f));
SetAngleY(4, -55.0f*Math::PI/180.0f);
rank = m_engine->CreateObject();
@@ -2424,7 +2424,7 @@ bool CObject::CreateBuilding(D3DVECTOR pos, float angle, float height,
SetObjectParent(5, 1);
pModFile->ReadModel("objects\\portico3.mod");
pModFile->CreateEngineObject(rank);
- SetPosition(5, D3DVECTOR(0.0f, 0.0f, 33.0f));
+ SetPosition(5, Math::Vector(0.0f, 0.0f, 33.0f));
SetAngleY(5, -45.0f*Math::PI/180.0f);
rank = m_engine->CreateObject();
@@ -2433,7 +2433,7 @@ bool CObject::CreateBuilding(D3DVECTOR pos, float angle, float height,
SetObjectParent(6, 5);
pModFile->ReadModel("objects\\portico4.mod");
pModFile->CreateEngineObject(rank);
- SetPosition(6, D3DVECTOR(50.0f, 0.0f, 0.0f));
+ SetPosition(6, Math::Vector(50.0f, 0.0f, 0.0f));
SetAngleY(6, 60.0f*Math::PI/180.0f);
rank = m_engine->CreateObject();
@@ -2442,7 +2442,7 @@ bool CObject::CreateBuilding(D3DVECTOR pos, float angle, float height,
SetObjectParent(7, 6);
pModFile->ReadModel("objects\\portico5.mod");
pModFile->CreateEngineObject(rank);
- SetPosition(7, D3DVECTOR(35.0f, 0.0f, 0.0f));
+ SetPosition(7, Math::Vector(35.0f, 0.0f, 0.0f));
SetAngleY(7, 55.0f*Math::PI/180.0f);
rank = m_engine->CreateObject();
@@ -2451,7 +2451,7 @@ bool CObject::CreateBuilding(D3DVECTOR pos, float angle, float height,
SetObjectParent(8, 0);
pModFile->ReadModel("objects\\portico6.mod");
pModFile->CreateEngineObject(rank);
- SetPosition(8, D3DVECTOR(-35.0f, 50.0f, -35.0f));
+ SetPosition(8, Math::Vector(-35.0f, 50.0f, -35.0f));
SetAngleY(8, -Math::PI/2.0f);
SetZoom(8, 2.0f);
@@ -2461,7 +2461,7 @@ bool CObject::CreateBuilding(D3DVECTOR pos, float angle, float height,
SetObjectParent(9, 8);
pModFile->ReadModel("objects\\portico7.mod");
pModFile->CreateEngineObject(rank);
- SetPosition(9, D3DVECTOR(0.0f, 4.5f, 1.9f));
+ SetPosition(9, Math::Vector(0.0f, 4.5f, 1.9f));
rank = m_engine->CreateObject();
m_engine->SetObjectType(rank, TYPEDESCENDANT);
@@ -2469,7 +2469,7 @@ bool CObject::CreateBuilding(D3DVECTOR pos, float angle, float height,
SetObjectParent(10, 0);
pModFile->ReadModel("objects\\portico6.mod");
pModFile->CreateEngineObject(rank);
- SetPosition(10, D3DVECTOR(-35.0f, 50.0f, 35.0f));
+ SetPosition(10, Math::Vector(-35.0f, 50.0f, 35.0f));
SetAngleY(10, -Math::PI/2.0f);
SetZoom(10, 2.0f);
@@ -2479,20 +2479,20 @@ bool CObject::CreateBuilding(D3DVECTOR pos, float angle, float height,
SetObjectParent(11, 10);
pModFile->ReadModel("objects\\portico7.mod");
pModFile->CreateEngineObject(rank);
- SetPosition(11, D3DVECTOR(0.0f, 4.5f, 1.9f));
-
- CreateCrashSphere(D3DVECTOR( 0.0f, 28.0f, 0.0f), 45.5f, SOUND_BOUMm, 0.45f);
- CreateCrashSphere(D3DVECTOR( 27.0f, 10.0f, -42.0f), 15.0f, SOUND_BOUMm, 0.45f);
- CreateCrashSphere(D3DVECTOR( 0.0f, 10.0f, -42.0f), 15.0f, SOUND_BOUMm, 0.45f);
- CreateCrashSphere(D3DVECTOR(-27.0f, 10.0f, -42.0f), 15.0f, SOUND_BOUMm, 0.45f);
- CreateCrashSphere(D3DVECTOR( 27.0f, 10.0f, 42.0f), 15.0f, SOUND_BOUMm, 0.45f);
- CreateCrashSphere(D3DVECTOR( 0.0f, 10.0f, 42.0f), 15.0f, SOUND_BOUMm, 0.45f);
- CreateCrashSphere(D3DVECTOR(-27.0f, 10.0f, 42.0f), 15.0f, SOUND_BOUMm, 0.45f);
- CreateCrashSphere(D3DVECTOR(-32.0f, 45.0f, -32.0f), 10.0f, SOUND_BOUMm, 0.45f);
- CreateCrashSphere(D3DVECTOR(-32.0f, 45.0f, 32.0f), 10.0f, SOUND_BOUMm, 0.45f);
- CreateCrashSphere(D3DVECTOR( 32.0f, 45.0f, -32.0f), 10.0f, SOUND_BOUMm, 0.45f);
- CreateCrashSphere(D3DVECTOR( 32.0f, 45.0f, 32.0f), 10.0f, SOUND_BOUMm, 0.45f);
- SetGlobalSphere(D3DVECTOR(0.0f, 35.0f, 0.0f), 50.0f);
+ SetPosition(11, Math::Vector(0.0f, 4.5f, 1.9f));
+
+ CreateCrashSphere(Math::Vector( 0.0f, 28.0f, 0.0f), 45.5f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector( 27.0f, 10.0f, -42.0f), 15.0f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector( 0.0f, 10.0f, -42.0f), 15.0f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector(-27.0f, 10.0f, -42.0f), 15.0f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector( 27.0f, 10.0f, 42.0f), 15.0f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector( 0.0f, 10.0f, 42.0f), 15.0f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector(-27.0f, 10.0f, 42.0f), 15.0f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector(-32.0f, 45.0f, -32.0f), 10.0f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector(-32.0f, 45.0f, 32.0f), 10.0f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector( 32.0f, 45.0f, -32.0f), 10.0f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector( 32.0f, 45.0f, 32.0f), 10.0f, SOUND_BOUMm, 0.45f);
+ SetGlobalSphere(Math::Vector(0.0f, 35.0f, 0.0f), 50.0f);
CreateShadowCircle(50.0f, 1.0f);
}
@@ -2514,7 +2514,7 @@ bool CObject::CreateBuilding(D3DVECTOR pos, float angle, float height,
pModFile->ReadModel("objects\\base2.mod");
pModFile->CreateEngineObject(rank);
p = Math::RotatePoint(-Math::PI/4.0f*i, 27.8f);
- SetPosition(1+i, D3DVECTOR(p.x, 30.0f, p.y));
+ SetPosition(1+i, Math::Vector(p.x, 30.0f, p.y));
SetAngleY(1+i, Math::PI/4.0f*i);
SetAngleZ(1+i, Math::PI/2.0f);
@@ -2524,7 +2524,7 @@ bool CObject::CreateBuilding(D3DVECTOR pos, float angle, float height,
SetObjectParent(10+i, 1+i);
pModFile->ReadModel("objects\\base4.mod");
pModFile->CreateEngineObject(rank);
- SetPosition(10+i, D3DVECTOR(23.5f, 0.0f, 7.0f));
+ SetPosition(10+i, Math::Vector(23.5f, 0.0f, 7.0f));
rank = m_engine->CreateObject();
m_engine->SetObjectType(rank, TYPEDESCENDANT);
@@ -2533,7 +2533,7 @@ bool CObject::CreateBuilding(D3DVECTOR pos, float angle, float height,
pModFile->ReadModel("objects\\base4.mod");
pModFile->Mirror();
pModFile->CreateEngineObject(rank);
- SetPosition(18+i, D3DVECTOR(23.5f, 0.0f, -7.0f));
+ SetPosition(18+i, Math::Vector(23.5f, 0.0f, -7.0f));
}
rank = m_engine->CreateObject();
@@ -2543,25 +2543,25 @@ bool CObject::CreateBuilding(D3DVECTOR pos, float angle, float height,
pModFile->ReadModel("objects\\base3.mod"); // central pillar
pModFile->CreateEngineObject(rank);
- CreateCrashSphere(D3DVECTOR( 0.0f, 33.0f, 0.0f), 2.5f, SOUND_BOUMm, 0.45f);
- CreateCrashSphere(D3DVECTOR( 0.0f, 39.0f, 0.0f), 2.5f, SOUND_BOUMm, 0.45f);
- CreateCrashSphere(D3DVECTOR( 0.0f, 45.0f, 0.0f), 2.5f, SOUND_BOUMm, 0.45f);
- CreateCrashSphere(D3DVECTOR( 0.0f, 51.0f, 0.0f), 2.5f, SOUND_BOUMm, 0.45f);
- CreateCrashSphere(D3DVECTOR( 0.0f, 57.0f, 0.0f), 2.5f, SOUND_BOUMm, 0.45f);
- CreateCrashSphere(D3DVECTOR( 0.0f, 63.0f, 0.0f), 2.5f, SOUND_BOUMm, 0.45f);
- CreateCrashSphere(D3DVECTOR( 0.0f, 69.0f, 0.0f), 2.5f, SOUND_BOUMm, 0.45f);
- CreateCrashSphere(D3DVECTOR( 0.0f, 82.0f, 0.0f), 8.0f, SOUND_BOUMm, 0.45f);
- CreateCrashSphere(D3DVECTOR( 18.0f, 94.0f, 0.0f), 10.0f, SOUND_BOUMm, 0.45f);
- CreateCrashSphere(D3DVECTOR(-18.0f, 94.0f, 0.0f), 10.0f, SOUND_BOUMm, 0.45f);
- CreateCrashSphere(D3DVECTOR( 0.0f, 94.0f, 18.0f), 10.0f, SOUND_BOUMm, 0.45f);
- CreateCrashSphere(D3DVECTOR( 0.0f, 94.0f, -18.0f), 10.0f, SOUND_BOUMm, 0.45f);
- CreateCrashSphere(D3DVECTOR( 13.0f, 94.0f, 13.0f), 10.0f, SOUND_BOUMm, 0.45f);
- CreateCrashSphere(D3DVECTOR(-13.0f, 94.0f, 13.0f), 10.0f, SOUND_BOUMm, 0.45f);
- CreateCrashSphere(D3DVECTOR( 13.0f, 94.0f, -13.0f), 10.0f, SOUND_BOUMm, 0.45f);
- CreateCrashSphere(D3DVECTOR(-13.0f, 94.0f, -13.0f), 10.0f, SOUND_BOUMm, 0.45f);
- CreateCrashSphere(D3DVECTOR( 0.0f,104.0f, 0.0f), 14.0f, SOUND_BOUMm, 0.45f);
-
- SetGlobalSphere(D3DVECTOR(0.0f, 45.0f, 0.0f), 10.0f);
+ CreateCrashSphere(Math::Vector( 0.0f, 33.0f, 0.0f), 2.5f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector( 0.0f, 39.0f, 0.0f), 2.5f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector( 0.0f, 45.0f, 0.0f), 2.5f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector( 0.0f, 51.0f, 0.0f), 2.5f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector( 0.0f, 57.0f, 0.0f), 2.5f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector( 0.0f, 63.0f, 0.0f), 2.5f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector( 0.0f, 69.0f, 0.0f), 2.5f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector( 0.0f, 82.0f, 0.0f), 8.0f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector( 18.0f, 94.0f, 0.0f), 10.0f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector(-18.0f, 94.0f, 0.0f), 10.0f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector( 0.0f, 94.0f, 18.0f), 10.0f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector( 0.0f, 94.0f, -18.0f), 10.0f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector( 13.0f, 94.0f, 13.0f), 10.0f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector(-13.0f, 94.0f, 13.0f), 10.0f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector( 13.0f, 94.0f, -13.0f), 10.0f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector(-13.0f, 94.0f, -13.0f), 10.0f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector( 0.0f,104.0f, 0.0f), 14.0f, SOUND_BOUMm, 0.45f);
+
+ SetGlobalSphere(Math::Vector(0.0f, 45.0f, 0.0f), 10.0f);
CreateShadowCircle(60.0f, 1.0f);
m_showLimitRadius = 200.0f;
@@ -2584,12 +2584,12 @@ bool CObject::CreateBuilding(D3DVECTOR pos, float angle, float height,
pModFile->ReadModel("objects\\derrick2.mod");
pModFile->CreateEngineObject(rank);
- CreateCrashSphere(D3DVECTOR(0.0f, 0.0f, 0.0f), 6.0f, SOUND_BOUMm, 0.45f);
- CreateCrashSphere(D3DVECTOR(0.0f, 10.0f, 0.0f), 5.0f, SOUND_BOUMm, 0.45f);
- CreateCrashSphere(D3DVECTOR(0.0f, 17.0f, 0.0f), 6.0f, SOUND_BOUMm, 0.45f);
- CreateCrashSphere(D3DVECTOR(0.0f, 26.0f, 0.0f), 3.0f, SOUND_BOUMm, 0.45f);
- CreateCrashSphere(D3DVECTOR(7.0f, 17.0f, 0.0f), 3.0f, SOUND_BOUMm, 0.45f);
- SetGlobalSphere(D3DVECTOR(0.0f, 10.0f, 0.0f), 10.0f);
+ CreateCrashSphere(Math::Vector(0.0f, 0.0f, 0.0f), 6.0f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector(0.0f, 10.0f, 0.0f), 5.0f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector(0.0f, 17.0f, 0.0f), 6.0f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector(0.0f, 26.0f, 0.0f), 3.0f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector(7.0f, 17.0f, 0.0f), 3.0f, SOUND_BOUMm, 0.45f);
+ SetGlobalSphere(Math::Vector(0.0f, 10.0f, 0.0f), 10.0f);
CreateShadowCircle(10.0f, 0.4f);
}
@@ -2608,7 +2608,7 @@ bool CObject::CreateBuilding(D3DVECTOR pos, float angle, float height,
SetObjectParent(1, 0);
pModFile->ReadModel("objects\\search2.mod");
pModFile->CreateEngineObject(rank);
- SetPosition(1, D3DVECTOR(0.0f, 13.0f, 0.0f));
+ SetPosition(1, Math::Vector(0.0f, 13.0f, 0.0f));
rank = m_engine->CreateObject();
m_engine->SetObjectType(rank, TYPEDESCENDANT);
@@ -2616,15 +2616,15 @@ bool CObject::CreateBuilding(D3DVECTOR pos, float angle, float height,
SetObjectParent(2, 1);
pModFile->ReadModel("objects\\search3.mod");
pModFile->CreateEngineObject(rank);
- SetPosition(2, D3DVECTOR(0.0f, 4.0f, 0.0f));
+ SetPosition(2, Math::Vector(0.0f, 4.0f, 0.0f));
SetAngleZ(2, 35.0f*Math::PI/180.0f);
- CreateCrashSphere(D3DVECTOR(0.0f, 0.0f, 0.0f), 9.0f, SOUND_BOUMm, 0.45f);
- CreateCrashSphere(D3DVECTOR(0.0f, 6.0f, 0.0f), 9.0f, SOUND_BOUMm, 0.45f);
- CreateCrashSphere(D3DVECTOR(0.0f, 14.0f, 0.0f), 7.0f, SOUND_BOUMm, 0.45f);
- SetGlobalSphere(D3DVECTOR(0.0f, 8.0f, 0.0f), 12.0f);
+ CreateCrashSphere(Math::Vector(0.0f, 0.0f, 0.0f), 9.0f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector(0.0f, 6.0f, 0.0f), 9.0f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector(0.0f, 14.0f, 0.0f), 7.0f, SOUND_BOUMm, 0.45f);
+ SetGlobalSphere(Math::Vector(0.0f, 8.0f, 0.0f), 12.0f);
- m_character.posPower = D3DVECTOR(7.5f, 3.0f, 0.0f);
+ m_character.posPower = Math::Vector(7.5f, 3.0f, 0.0f);
CreateShadowCircle(12.0f, 1.0f);
}
@@ -2643,7 +2643,7 @@ bool CObject::CreateBuilding(D3DVECTOR pos, float angle, float height,
SetObjectParent(1, 0);
pModFile->ReadModel("objects\\radar2.mod");
pModFile->CreateEngineObject(rank);
- SetPosition(1, D3DVECTOR(0.0f, 5.0f, 0.0f));
+ SetPosition(1, Math::Vector(0.0f, 5.0f, 0.0f));
rank = m_engine->CreateObject();
m_engine->SetObjectType(rank, TYPEDESCENDANT);
@@ -2651,7 +2651,7 @@ bool CObject::CreateBuilding(D3DVECTOR pos, float angle, float height,
SetObjectParent(2, 0);
pModFile->ReadModel("objects\\radar3.mod");
pModFile->CreateEngineObject(rank);
- SetPosition(2, D3DVECTOR(0.0f, 11.0f, 0.0f));
+ SetPosition(2, Math::Vector(0.0f, 11.0f, 0.0f));
SetAngleY(2, -Math::PI/2.0f);
rank = m_engine->CreateObject();
@@ -2660,11 +2660,11 @@ bool CObject::CreateBuilding(D3DVECTOR pos, float angle, float height,
SetObjectParent(3, 2);
pModFile->ReadModel("objects\\radar4.mod");
pModFile->CreateEngineObject(rank);
- SetPosition(3, D3DVECTOR(0.0f, 4.5f, 1.9f));
+ SetPosition(3, Math::Vector(0.0f, 4.5f, 1.9f));
- CreateCrashSphere(D3DVECTOR(0.0f, 3.0f, 0.0f), 6.0f, SOUND_BOUMm, 0.45f);
- CreateCrashSphere(D3DVECTOR(0.0f, 11.0f, 0.0f), 6.0f, SOUND_BOUMm, 0.45f);
- SetGlobalSphere(D3DVECTOR(0.0f, 7.0f, 0.0f), 7.0f);
+ CreateCrashSphere(Math::Vector(0.0f, 3.0f, 0.0f), 6.0f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector(0.0f, 11.0f, 0.0f), 6.0f, SOUND_BOUMm, 0.45f);
+ SetGlobalSphere(Math::Vector(0.0f, 7.0f, 0.0f), 7.0f);
CreateShadowCircle(8.0f, 1.0f);
}
@@ -2683,7 +2683,7 @@ bool CObject::CreateBuilding(D3DVECTOR pos, float angle, float height,
SetObjectParent(1, 0);
pModFile->ReadModel("objects\\info2.mod");
pModFile->CreateEngineObject(rank);
- SetPosition(1, D3DVECTOR(0.0f, 5.0f, 0.0f));
+ SetPosition(1, Math::Vector(0.0f, 5.0f, 0.0f));
for ( i=0 ; i<3 ; i++ )
{
@@ -2693,7 +2693,7 @@ bool CObject::CreateBuilding(D3DVECTOR pos, float angle, float height,
SetObjectParent(2+i*2, 1);
pModFile->ReadModel("objects\\info3.mod");
pModFile->CreateEngineObject(rank);
- SetPosition(2+i*2, D3DVECTOR(0.0f, 4.5f, 0.0f));
+ SetPosition(2+i*2, Math::Vector(0.0f, 4.5f, 0.0f));
rank = m_engine->CreateObject();
m_engine->SetObjectType(rank, TYPEDESCENDANT);
@@ -2701,14 +2701,14 @@ bool CObject::CreateBuilding(D3DVECTOR pos, float angle, float height,
SetObjectParent(3+i*2, 2+i*2);
pModFile->ReadModel("objects\\radar4.mod");
pModFile->CreateEngineObject(rank);
- SetPosition(3+i*2, D3DVECTOR(0.0f, 0.0f, -4.0f));
+ SetPosition(3+i*2, Math::Vector(0.0f, 0.0f, -4.0f));
SetAngleY(2+i*2, 2.0f*Math::PI/3.0f*i);
}
- CreateCrashSphere(D3DVECTOR(0.0f, 3.0f, 0.0f), 6.0f, SOUND_BOUMm, 0.45f);
- CreateCrashSphere(D3DVECTOR(0.0f, 11.0f, 0.0f), 6.0f, SOUND_BOUMm, 0.45f);
- SetGlobalSphere(D3DVECTOR(0.0f, 5.0f, 0.0f), 6.0f);
+ CreateCrashSphere(Math::Vector(0.0f, 3.0f, 0.0f), 6.0f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector(0.0f, 11.0f, 0.0f), 6.0f, SOUND_BOUMm, 0.45f);
+ SetGlobalSphere(Math::Vector(0.0f, 5.0f, 0.0f), 6.0f);
CreateShadowCircle(8.0f, 1.0f);
}
@@ -2721,12 +2721,12 @@ bool CObject::CreateBuilding(D3DVECTOR pos, float angle, float height,
SetAngleY(0, angle);
SetFloorHeight(0.0f);
- CreateCrashSphere(D3DVECTOR(-2.0f, 13.0f, 0.0f), 6.0f, SOUND_BOUMm, 0.45f);
- CreateCrashSphere(D3DVECTOR(-7.0f, 3.0f, 0.0f), 5.0f, SOUND_BOUMm, 0.45f);
- CreateCrashSphere(D3DVECTOR( 0.0f, 1.0f, 0.0f), 1.5f, SOUND_BOUMm, 0.45f);
- SetGlobalSphere(D3DVECTOR(-7.0f, 5.0f, 0.0f), 5.0f);
+ CreateCrashSphere(Math::Vector(-2.0f, 13.0f, 0.0f), 6.0f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector(-7.0f, 3.0f, 0.0f), 5.0f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector( 0.0f, 1.0f, 0.0f), 1.5f, SOUND_BOUMm, 0.45f);
+ SetGlobalSphere(Math::Vector(-7.0f, 5.0f, 0.0f), 5.0f);
- m_character.posPower = D3DVECTOR(0.0f, 3.0f, 0.0f);
+ m_character.posPower = Math::Vector(0.0f, 3.0f, 0.0f);
m_energy = power; // initializes the energy level
CreateShadowCircle(6.0f, 0.5f);
@@ -2746,7 +2746,7 @@ bool CObject::CreateBuilding(D3DVECTOR pos, float angle, float height,
SetObjectParent(1, 0);
pModFile->ReadModel("objects\\labo2.mod");
pModFile->CreateEngineObject(rank);
- SetPosition(1, D3DVECTOR(-9.0f, 3.0f, 0.0f));
+ SetPosition(1, Math::Vector(-9.0f, 3.0f, 0.0f));
SetAngleZ(1, Math::PI/2.0f);
rank = m_engine->CreateObject();
@@ -2755,7 +2755,7 @@ bool CObject::CreateBuilding(D3DVECTOR pos, float angle, float height,
SetObjectParent(2, 1);
pModFile->ReadModel("objects\\labo3.mod");
pModFile->CreateEngineObject(rank);
- SetPosition(2, D3DVECTOR(9.0f, -1.0f, 0.0f));
+ SetPosition(2, Math::Vector(9.0f, -1.0f, 0.0f));
rank = m_engine->CreateObject();
m_engine->SetObjectType(rank, TYPEDESCENDANT);
@@ -2763,7 +2763,7 @@ bool CObject::CreateBuilding(D3DVECTOR pos, float angle, float height,
SetObjectParent(3, 2);
pModFile->ReadModel("objects\\labo4.mod");
pModFile->CreateEngineObject(rank);
- SetPosition(3, D3DVECTOR(0.0f, 0.0f, 0.0f));
+ SetPosition(3, Math::Vector(0.0f, 0.0f, 0.0f));
SetAngleZ(3, 80.0f*Math::PI/180.0f);
rank = m_engine->CreateObject();
@@ -2772,7 +2772,7 @@ bool CObject::CreateBuilding(D3DVECTOR pos, float angle, float height,
SetObjectParent(4, 2);
pModFile->ReadModel("objects\\labo4.mod");
pModFile->CreateEngineObject(rank);
- SetPosition(4, D3DVECTOR(0.0f, 0.0f, 0.0f));
+ SetPosition(4, Math::Vector(0.0f, 0.0f, 0.0f));
SetAngleZ(4, 80.0f*Math::PI/180.0f);
SetAngleY(4, Math::PI*2.0f/3.0f);
@@ -2782,18 +2782,18 @@ bool CObject::CreateBuilding(D3DVECTOR pos, float angle, float height,
SetObjectParent(5, 2);
pModFile->ReadModel("objects\\labo4.mod");
pModFile->CreateEngineObject(rank);
- SetPosition(5, D3DVECTOR(0.0f, 0.0f, 0.0f));
+ SetPosition(5, Math::Vector(0.0f, 0.0f, 0.0f));
SetAngleZ(5, 80.0f*Math::PI/180.0f);
SetAngleY(5, -Math::PI*2.0f/3.0f);
- CreateCrashSphere(D3DVECTOR( 0.0f, 1.0f, 0.0f), 1.5f, SOUND_BOUMm, 0.45f);
- CreateCrashSphere(D3DVECTOR( 0.0f, 11.0f, 0.0f), 4.0f, SOUND_BOUMm, 0.45f);
- CreateCrashSphere(D3DVECTOR(-10.0f, 10.0f, 0.0f), 4.0f, SOUND_BOUMm, 0.45f);
- CreateCrashSphere(D3DVECTOR(-12.0f, 3.0f, 3.0f), 4.0f, SOUND_BOUMm, 0.45f);
- CreateCrashSphere(D3DVECTOR(-12.0f, 3.0f, -3.0f), 4.0f, SOUND_BOUMm, 0.45f);
- SetGlobalSphere(D3DVECTOR(-10.0f, 5.0f, 0.0f), 7.0f);
+ CreateCrashSphere(Math::Vector( 0.0f, 1.0f, 0.0f), 1.5f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector( 0.0f, 11.0f, 0.0f), 4.0f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector(-10.0f, 10.0f, 0.0f), 4.0f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector(-12.0f, 3.0f, 3.0f), 4.0f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector(-12.0f, 3.0f, -3.0f), 4.0f, SOUND_BOUMm, 0.45f);
+ SetGlobalSphere(Math::Vector(-10.0f, 5.0f, 0.0f), 7.0f);
- m_character.posPower = D3DVECTOR(0.0f, 3.0f, 0.0f);
+ m_character.posPower = Math::Vector(0.0f, 3.0f, 0.0f);
CreateShadowCircle(7.0f, 0.5f);
}
@@ -2814,7 +2814,7 @@ bool CObject::CreateBuilding(D3DVECTOR pos, float angle, float height,
SetObjectParent(1+i, 0);
pModFile->ReadModel("objects\\factory2.mod");
pModFile->CreateEngineObject(rank);
- SetPosition(1+i, D3DVECTOR(10.0f, 2.0f*i, 10.0f));
+ SetPosition(1+i, Math::Vector(10.0f, 2.0f*i, 10.0f));
SetAngleZ(1+i, Math::PI/2.0f);
SetZoomZ(1+i, 0.30f);
@@ -2824,7 +2824,7 @@ bool CObject::CreateBuilding(D3DVECTOR pos, float angle, float height,
SetObjectParent(10+i, 0);
pModFile->ReadModel("objects\\factory2.mod");
pModFile->CreateEngineObject(rank);
- SetPosition(10+i, D3DVECTOR(10.0f, 2.0f*i, -10.0f));
+ SetPosition(10+i, Math::Vector(10.0f, 2.0f*i, -10.0f));
SetAngleZ(10+i, -Math::PI/2.0f);
SetAngleY(10+i, Math::PI);
SetZoomZ(10+i, 0.30f);
@@ -2833,27 +2833,27 @@ bool CObject::CreateBuilding(D3DVECTOR pos, float angle, float height,
for ( i=0 ; i<2 ; i++ )
{
float s = (float)(i*2-1);
- CreateCrashSphere(D3DVECTOR(-10.0f, 2.0f, 11.0f*s), 4.0f, SOUND_BOUMm, 0.45f);
- CreateCrashSphere(D3DVECTOR( -3.0f, 2.0f, 11.0f*s), 4.0f, SOUND_BOUMm, 0.45f);
- CreateCrashSphere(D3DVECTOR( 3.0f, 2.0f, 11.0f*s), 4.0f, SOUND_BOUMm, 0.45f);
- CreateCrashSphere(D3DVECTOR( 10.0f, 2.0f, 11.0f*s), 4.0f, SOUND_BOUMm, 0.45f);
- CreateCrashSphere(D3DVECTOR(-10.0f, 9.0f, 11.0f*s), 4.0f, SOUND_BOUMm, 0.45f);
- CreateCrashSphere(D3DVECTOR( -3.0f, 9.0f, 11.0f*s), 4.0f, SOUND_BOUMm, 0.45f);
- CreateCrashSphere(D3DVECTOR( 3.0f, 9.0f, 11.0f*s), 4.0f, SOUND_BOUMm, 0.45f);
- CreateCrashSphere(D3DVECTOR( 10.0f, 9.0f, 11.0f*s), 4.0f, SOUND_BOUMm, 0.45f);
- CreateCrashSphere(D3DVECTOR(-10.0f, 16.0f, 11.0f*s), 4.0f, SOUND_BOUMm, 0.45f);
- CreateCrashSphere(D3DVECTOR( -3.0f, 16.0f, 11.0f*s), 4.0f, SOUND_BOUMm, 0.45f);
- CreateCrashSphere(D3DVECTOR( 3.0f, 16.0f, 11.0f*s), 4.0f, SOUND_BOUMm, 0.45f);
- CreateCrashSphere(D3DVECTOR( 10.0f, 16.0f, 11.0f*s), 4.0f, SOUND_BOUMm, 0.45f);
- CreateCrashSphere(D3DVECTOR(-10.0f, 16.0f, 4.0f*s), 4.0f, SOUND_BOUMm, 0.45f);
- CreateCrashSphere(D3DVECTOR( -3.0f, 16.0f, 4.0f*s), 4.0f, SOUND_BOUMm, 0.45f);
- CreateCrashSphere(D3DVECTOR( 3.0f, 16.0f, 4.0f*s), 4.0f, SOUND_BOUMm, 0.45f);
- CreateCrashSphere(D3DVECTOR( 10.0f, 16.0f, 4.0f*s), 4.0f, SOUND_BOUMm, 0.45f);
- CreateCrashSphere(D3DVECTOR(-10.0f, 2.0f, 4.0f*s), 4.0f, SOUND_BOUMm, 0.45f);
- CreateCrashSphere(D3DVECTOR(-10.0f, 9.0f, 4.0f*s), 4.0f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector(-10.0f, 2.0f, 11.0f*s), 4.0f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector( -3.0f, 2.0f, 11.0f*s), 4.0f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector( 3.0f, 2.0f, 11.0f*s), 4.0f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector( 10.0f, 2.0f, 11.0f*s), 4.0f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector(-10.0f, 9.0f, 11.0f*s), 4.0f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector( -3.0f, 9.0f, 11.0f*s), 4.0f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector( 3.0f, 9.0f, 11.0f*s), 4.0f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector( 10.0f, 9.0f, 11.0f*s), 4.0f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector(-10.0f, 16.0f, 11.0f*s), 4.0f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector( -3.0f, 16.0f, 11.0f*s), 4.0f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector( 3.0f, 16.0f, 11.0f*s), 4.0f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector( 10.0f, 16.0f, 11.0f*s), 4.0f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector(-10.0f, 16.0f, 4.0f*s), 4.0f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector( -3.0f, 16.0f, 4.0f*s), 4.0f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector( 3.0f, 16.0f, 4.0f*s), 4.0f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector( 10.0f, 16.0f, 4.0f*s), 4.0f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector(-10.0f, 2.0f, 4.0f*s), 4.0f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector(-10.0f, 9.0f, 4.0f*s), 4.0f, SOUND_BOUMm, 0.45f);
}
- CreateCrashSphere(D3DVECTOR(-10.0f, 21.0f, -4.0f), 3.0f, SOUND_BOUMm, 0.45f);
- SetGlobalSphere(D3DVECTOR(0.0f, 10.0f, 0.0f), 18.0f);
+ CreateCrashSphere(Math::Vector(-10.0f, 21.0f, -4.0f), 3.0f, SOUND_BOUMm, 0.45f);
+ SetGlobalSphere(Math::Vector(0.0f, 10.0f, 0.0f), 18.0f);
CreateShadowCircle(24.0f, 0.3f);
}
@@ -2872,16 +2872,16 @@ bool CObject::CreateBuilding(D3DVECTOR pos, float angle, float height,
SetObjectParent(1, 0);
pModFile->ReadModel("objects\\repair2.mod");
pModFile->CreateEngineObject(rank);
- SetPosition(1, D3DVECTOR(-11.0f, 13.5f, 0.0f));
+ SetPosition(1, Math::Vector(-11.0f, 13.5f, 0.0f));
SetAngleZ(1, Math::PI/2.0f);
m_terrain->AddBuildingLevel(pos, 7.0f, 9.0f, 1.0f, 0.5f);
- CreateCrashSphere(D3DVECTOR(-11.0f, 0.0f, 4.0f), 5.0f, SOUND_BOUMm, 0.45f);
- CreateCrashSphere(D3DVECTOR(-11.0f, 0.0f, 0.0f), 5.0f, SOUND_BOUMm, 0.45f);
- CreateCrashSphere(D3DVECTOR(-11.0f, 0.0f, -4.0f), 5.0f, SOUND_BOUMm, 0.45f);
- CreateCrashSphere(D3DVECTOR(-11.0f, 10.0f, 0.0f), 5.0f, SOUND_BOUMm, 0.45f);
- SetGlobalSphere(D3DVECTOR(-11.0f, 13.0f, 0.0f), 15.0f);
+ CreateCrashSphere(Math::Vector(-11.0f, 0.0f, 4.0f), 5.0f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector(-11.0f, 0.0f, 0.0f), 5.0f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector(-11.0f, 0.0f, -4.0f), 5.0f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector(-11.0f, 10.0f, 0.0f), 5.0f, SOUND_BOUMm, 0.45f);
+ SetGlobalSphere(Math::Vector(-11.0f, 13.0f, 0.0f), 15.0f);
}
if ( m_type == OBJECT_DESTROYER )
@@ -2898,14 +2898,14 @@ bool CObject::CreateBuilding(D3DVECTOR pos, float angle, float height,
SetObjectParent(1, 0);
pModFile->ReadModel("objects\\destroy2.mod");
pModFile->CreateEngineObject(rank);
- SetPosition(1, D3DVECTOR(0.0f, 0.0f, 0.0f));
+ SetPosition(1, Math::Vector(0.0f, 0.0f, 0.0f));
m_terrain->AddBuildingLevel(pos, 7.0f, 9.0f, 1.0f, 0.5f);
- CreateCrashSphere(D3DVECTOR(-3.5f, 0.0f, -13.5f), 4.0f, SOUND_BOUMm, 0.45f);
- CreateCrashSphere(D3DVECTOR( 3.5f, 0.0f, -13.5f), 4.0f, SOUND_BOUMm, 0.45f);
- CreateCrashSphere(D3DVECTOR(-3.5f, 0.0f, 13.5f), 4.0f, SOUND_BOUMm, 0.45f);
- CreateCrashSphere(D3DVECTOR( 3.5f, 0.0f, 13.5f), 4.0f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector(-3.5f, 0.0f, -13.5f), 4.0f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector( 3.5f, 0.0f, -13.5f), 4.0f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector(-3.5f, 0.0f, 13.5f), 4.0f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector( 3.5f, 0.0f, 13.5f), 4.0f, SOUND_BOUMm, 0.45f);
CreateShadowCircle(19.0f, 1.0f);
}
@@ -2920,9 +2920,9 @@ bool CObject::CreateBuilding(D3DVECTOR pos, float angle, float height,
m_terrain->AddBuildingLevel(pos, 7.0f, 9.0f, 1.0f, 0.5f);
- CreateCrashSphere(D3DVECTOR(-15.0f, 2.0f, 0.0f), 5.0f, SOUND_BOUMm, 0.45f);
- CreateCrashSphere(D3DVECTOR(-15.0f, 6.0f, 0.0f), 4.0f, SOUND_BOUMm, 0.45f);
- SetGlobalSphere(D3DVECTOR(-15.0f, 5.0f, 0.0f), 6.0f);
+ CreateCrashSphere(Math::Vector(-15.0f, 2.0f, 0.0f), 5.0f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector(-15.0f, 6.0f, 0.0f), 4.0f, SOUND_BOUMm, 0.45f);
+ SetGlobalSphere(Math::Vector(-15.0f, 5.0f, 0.0f), 6.0f);
m_energy = power; // initialise le niveau d'�nergie
}
@@ -2941,7 +2941,7 @@ bool CObject::CreateBuilding(D3DVECTOR pos, float angle, float height,
SetObjectParent(1, 0);
pModFile->ReadModel("objects\\convert2.mod");
pModFile->CreateEngineObject(rank);
- SetPosition(1, D3DVECTOR(0.0f, 14.0f, 0.0f));
+ SetPosition(1, Math::Vector(0.0f, 14.0f, 0.0f));
rank = m_engine->CreateObject();
m_engine->SetObjectType(rank, TYPEDESCENDANT);
@@ -2949,7 +2949,7 @@ bool CObject::CreateBuilding(D3DVECTOR pos, float angle, float height,
SetObjectParent(2, 0);
pModFile->ReadModel("objects\\convert3.mod");
pModFile->CreateEngineObject(rank);
- SetPosition(2, D3DVECTOR(0.0f, 11.5f, 0.0f));
+ SetPosition(2, Math::Vector(0.0f, 11.5f, 0.0f));
SetAngleX(2, -Math::PI*0.35f);
rank = m_engine->CreateObject();
@@ -2958,17 +2958,17 @@ bool CObject::CreateBuilding(D3DVECTOR pos, float angle, float height,
SetObjectParent(3, 0);
pModFile->ReadModel("objects\\convert3.mod");
pModFile->CreateEngineObject(rank);
- SetPosition(3, D3DVECTOR(0.0f, 11.5f, 0.0f));
+ SetPosition(3, Math::Vector(0.0f, 11.5f, 0.0f));
SetAngleY(3, Math::PI);
SetAngleX(3, -Math::PI*0.35f);
m_terrain->AddBuildingLevel(pos, 7.0f, 9.0f, 1.0f, 0.5f);
- CreateCrashSphere(D3DVECTOR(-10.0f, 2.0f, 4.0f), 5.0f, SOUND_BOUMm, 0.45f);
- CreateCrashSphere(D3DVECTOR(-10.0f, 2.0f, -4.0f), 5.0f, SOUND_BOUMm, 0.45f);
- CreateCrashSphere(D3DVECTOR(-10.0f, 9.0f, 0.0f), 6.0f, SOUND_BOUMm, 0.45f);
- CreateCrashSphere(D3DVECTOR( 0.0f, 14.0f, 0.0f), 1.5f, SOUND_BOUMm, 0.45f);
- SetGlobalSphere(D3DVECTOR(-3.0f, 8.0f, 0.0f), 14.0f);
+ CreateCrashSphere(Math::Vector(-10.0f, 2.0f, 4.0f), 5.0f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector(-10.0f, 2.0f, -4.0f), 5.0f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector(-10.0f, 9.0f, 0.0f), 6.0f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector( 0.0f, 14.0f, 0.0f), 1.5f, SOUND_BOUMm, 0.45f);
+ SetGlobalSphere(Math::Vector(-3.0f, 8.0f, 0.0f), 14.0f);
}
if ( m_type == OBJECT_TOWER )
@@ -2985,7 +2985,7 @@ bool CObject::CreateBuilding(D3DVECTOR pos, float angle, float height,
SetObjectParent(1, 0);
pModFile->ReadModel("objects\\roller2c.mod");
pModFile->CreateEngineObject(rank);
- SetPosition(1, D3DVECTOR(0.0f, 20.0f, 0.0f));
+ SetPosition(1, Math::Vector(0.0f, 20.0f, 0.0f));
SetAngleZ(1, Math::PI/2.0f);
rank = m_engine->CreateObject();
@@ -2994,16 +2994,16 @@ bool CObject::CreateBuilding(D3DVECTOR pos, float angle, float height,
SetObjectParent(2, 1);
pModFile->ReadModel("objects\\roller3c.mod");
pModFile->CreateEngineObject(rank);
- SetPosition(2, D3DVECTOR(4.5f, 0.0f, 0.0f));
+ SetPosition(2, Math::Vector(4.5f, 0.0f, 0.0f));
SetAngleZ(2, 0.0f);
- CreateCrashSphere(D3DVECTOR(0.0f, 0.0f, 0.0f), 6.5f, SOUND_BOUMm, 0.45f);
- CreateCrashSphere(D3DVECTOR(0.0f, 8.0f, 0.0f), 4.0f, SOUND_BOUMm, 0.45f);
- CreateCrashSphere(D3DVECTOR(0.0f, 15.0f, 0.0f), 5.0f, SOUND_BOUMm, 0.45f);
- CreateCrashSphere(D3DVECTOR(0.0f, 24.0f, 0.0f), 5.0f, SOUND_BOUMm, 0.45f);
- SetGlobalSphere(D3DVECTOR(0.0f, 5.0f, 0.0f), 7.0f);
+ CreateCrashSphere(Math::Vector(0.0f, 0.0f, 0.0f), 6.5f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector(0.0f, 8.0f, 0.0f), 4.0f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector(0.0f, 15.0f, 0.0f), 5.0f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector(0.0f, 24.0f, 0.0f), 5.0f, SOUND_BOUMm, 0.45f);
+ SetGlobalSphere(Math::Vector(0.0f, 5.0f, 0.0f), 7.0f);
- m_character.posPower = D3DVECTOR(5.0f, 3.0f, 0.0f);
+ m_character.posPower = Math::Vector(5.0f, 3.0f, 0.0f);
CreateShadowCircle(6.0f, 1.0f);
m_showLimitRadius = BLITZPARA;
@@ -3023,15 +3023,15 @@ bool CObject::CreateBuilding(D3DVECTOR pos, float angle, float height,
SetObjectParent(1, 0);
pModFile->ReadModel("objects\\nuclear2.mod");
pModFile->CreateEngineObject(rank);
- SetPosition(1, D3DVECTOR(20.0f, 10.0f, 0.0f));
+ SetPosition(1, Math::Vector(20.0f, 10.0f, 0.0f));
SetAngleZ(1, 135.0f*Math::PI/180.0f);
- CreateCrashSphere(D3DVECTOR( 0.0f, 0.0f, 0.0f), 19.0f, SOUND_BOUMm, 0.45f);
- CreateCrashSphere(D3DVECTOR( 0.0f, 24.0f, 0.0f), 15.0f, SOUND_BOUMm, 0.45f);
- CreateCrashSphere(D3DVECTOR(22.0f, 1.0f, 0.0f), 1.5f, SOUND_BOUMm, 0.45f);
- SetGlobalSphere(D3DVECTOR(0.0f, 17.0f, 0.0f), 26.0f);
+ CreateCrashSphere(Math::Vector( 0.0f, 0.0f, 0.0f), 19.0f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector( 0.0f, 24.0f, 0.0f), 15.0f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector(22.0f, 1.0f, 0.0f), 1.5f, SOUND_BOUMm, 0.45f);
+ SetGlobalSphere(Math::Vector(0.0f, 17.0f, 0.0f), 26.0f);
- m_character.posPower = D3DVECTOR(22.0f, 3.0f, 0.0f);
+ m_character.posPower = Math::Vector(22.0f, 3.0f, 0.0f);
CreateShadowCircle(21.0f, 1.0f);
}
@@ -3046,17 +3046,17 @@ bool CObject::CreateBuilding(D3DVECTOR pos, float angle, float height,
m_terrain->AddBuildingLevel(pos, 16.0f, 18.0f, 1.0f, 0.5f);
- CreateCrashSphere(D3DVECTOR( 13.0f, 3.0f, 13.0f), 3.0f, SOUND_BOUMm, 0.45f);
- CreateCrashSphere(D3DVECTOR( 11.0f, 15.0f, 11.0f), 2.0f, SOUND_BOUMm, 0.45f);
- CreateCrashSphere(D3DVECTOR(-13.0f, 3.0f, 13.0f), 3.0f, SOUND_BOUMm, 0.45f);
- CreateCrashSphere(D3DVECTOR(-11.0f, 15.0f, -11.0f), 2.0f, SOUND_BOUMm, 0.45f);
- CreateCrashSphere(D3DVECTOR( 13.0f, 3.0f, -13.0f), 3.0f, SOUND_BOUMm, 0.45f);
- CreateCrashSphere(D3DVECTOR( 11.0f, 15.0f, -11.0f), 2.0f, SOUND_BOUMm, 0.45f);
- CreateCrashSphere(D3DVECTOR(-13.0f, 3.0f, -13.0f), 3.0f, SOUND_BOUMm, 0.45f);
- CreateCrashSphere(D3DVECTOR(-11.0f, 15.0f, -11.0f), 2.0f, SOUND_BOUMm, 0.45f);
- CreateCrashSphere(D3DVECTOR( 0.0f, 26.0f, 0.0f), 9.0f, SOUND_BOUMm, 0.45f);
- CreateCrashSphere(D3DVECTOR( 0.0f, 54.0f, 0.0f), 14.0f, SOUND_BOUMm, 0.45f);
- SetGlobalSphere(D3DVECTOR(0.0f, 10.0f, 0.0f), 20.0f);
+ CreateCrashSphere(Math::Vector( 13.0f, 3.0f, 13.0f), 3.0f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector( 11.0f, 15.0f, 11.0f), 2.0f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector(-13.0f, 3.0f, 13.0f), 3.0f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector(-11.0f, 15.0f, -11.0f), 2.0f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector( 13.0f, 3.0f, -13.0f), 3.0f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector( 11.0f, 15.0f, -11.0f), 2.0f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector(-13.0f, 3.0f, -13.0f), 3.0f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector(-11.0f, 15.0f, -11.0f), 2.0f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector( 0.0f, 26.0f, 0.0f), 9.0f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector( 0.0f, 54.0f, 0.0f), 14.0f, SOUND_BOUMm, 0.45f);
+ SetGlobalSphere(Math::Vector(0.0f, 10.0f, 0.0f), 20.0f);
CreateShadowCircle(21.0f, 1.0f);
m_showLimitRadius = BLITZPARA;
@@ -3088,8 +3088,8 @@ bool CObject::CreateBuilding(D3DVECTOR pos, float angle, float height,
m_terrain->AddBuildingLevel(pos, 18.0f, 20.0f, 1.0f, 0.5f);
- CreateCrashSphere(D3DVECTOR(0.0f, 1.0f, 0.0f), 13.0f, SOUND_BOUMm, 0.45f);
- SetGlobalSphere(D3DVECTOR(0.0f, 1.0f, 0.0f), 13.0f);
+ CreateCrashSphere(Math::Vector(0.0f, 1.0f, 0.0f), 13.0f, SOUND_BOUMm, 0.45f);
+ SetGlobalSphere(Math::Vector(0.0f, 1.0f, 0.0f), 13.0f);
CreateShadowCircle(23.0f, 1.0f);
}
@@ -3108,7 +3108,7 @@ bool CObject::CreateBuilding(D3DVECTOR pos, float angle, float height,
SetObjectParent(1, 0);
pModFile->ReadModel("objects\\huston2.mod");
pModFile->CreateEngineObject(rank);
- SetPosition(1, D3DVECTOR(0.0f, 39.0f, 30.0f));
+ SetPosition(1, Math::Vector(0.0f, 39.0f, 30.0f));
SetAngleY(1, -Math::PI/2.0f);
SetZoom(1, 3.0f);
@@ -3118,24 +3118,24 @@ bool CObject::CreateBuilding(D3DVECTOR pos, float angle, float height,
SetObjectParent(2, 1);
pModFile->ReadModel("objects\\huston3.mod");
pModFile->CreateEngineObject(rank);
- SetPosition(2, D3DVECTOR(0.0f, 4.5f, 1.9f));
-
- CreateCrashSphere(D3DVECTOR( 15.0f, 6.0f, -53.0f), 16.0f, SOUND_BOUMm, 0.45f);
- CreateCrashSphere(D3DVECTOR(-15.0f, 6.0f, -53.0f), 16.0f, SOUND_BOUMm, 0.45f);
- CreateCrashSphere(D3DVECTOR( 15.0f, 6.0f, -26.0f), 16.0f, SOUND_BOUMm, 0.45f);
- CreateCrashSphere(D3DVECTOR(-15.0f, 6.0f, -26.0f), 16.0f, SOUND_BOUMm, 0.45f);
- CreateCrashSphere(D3DVECTOR( 15.0f, 6.0f, 0.0f), 16.0f, SOUND_BOUMm, 0.45f);
- CreateCrashSphere(D3DVECTOR(-15.0f, 6.0f, 0.0f), 16.0f, SOUND_BOUMm, 0.45f);
- CreateCrashSphere(D3DVECTOR( 15.0f, 6.0f, 26.0f), 16.0f, SOUND_BOUMm, 0.45f);
- CreateCrashSphere(D3DVECTOR(-15.0f, 6.0f, 26.0f), 16.0f, SOUND_BOUMm, 0.45f);
- CreateCrashSphere(D3DVECTOR( 15.0f, 6.0f, 53.0f), 16.0f, SOUND_BOUMm, 0.45f);
- CreateCrashSphere(D3DVECTOR(-15.0f, 6.0f, 53.0f), 16.0f, SOUND_BOUMm, 0.45f);
- CreateCrashSphere(D3DVECTOR( 0.0f, 27.0f, 30.0f), 12.0f, SOUND_BOUMm, 0.45f);
- CreateCrashSphere(D3DVECTOR( 0.0f, 45.0f, 30.0f), 14.0f, SOUND_BOUMm, 0.45f);
- CreateCrashSphere(D3DVECTOR( 26.0f, 4.0f, -61.0f), 5.0f, SOUND_BOUMm, 0.45f);
- CreateCrashSphere(D3DVECTOR(-26.0f, 4.0f, -61.0f), 5.0f, SOUND_BOUMm, 0.45f);
- CreateCrashSphere(D3DVECTOR( 26.0f, 4.0f, 61.0f), 5.0f, SOUND_BOUMm, 0.45f);
- CreateCrashSphere(D3DVECTOR(-26.0f, 4.0f, 61.0f), 5.0f, SOUND_BOUMm, 0.45f);
+ SetPosition(2, Math::Vector(0.0f, 4.5f, 1.9f));
+
+ CreateCrashSphere(Math::Vector( 15.0f, 6.0f, -53.0f), 16.0f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector(-15.0f, 6.0f, -53.0f), 16.0f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector( 15.0f, 6.0f, -26.0f), 16.0f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector(-15.0f, 6.0f, -26.0f), 16.0f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector( 15.0f, 6.0f, 0.0f), 16.0f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector(-15.0f, 6.0f, 0.0f), 16.0f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector( 15.0f, 6.0f, 26.0f), 16.0f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector(-15.0f, 6.0f, 26.0f), 16.0f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector( 15.0f, 6.0f, 53.0f), 16.0f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector(-15.0f, 6.0f, 53.0f), 16.0f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector( 0.0f, 27.0f, 30.0f), 12.0f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector( 0.0f, 45.0f, 30.0f), 14.0f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector( 26.0f, 4.0f, -61.0f), 5.0f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector(-26.0f, 4.0f, -61.0f), 5.0f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector( 26.0f, 4.0f, 61.0f), 5.0f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector(-26.0f, 4.0f, 61.0f), 5.0f, SOUND_BOUMm, 0.45f);
}
if ( m_type == OBJECT_TARGET1 )
@@ -3147,23 +3147,23 @@ bool CObject::CreateBuilding(D3DVECTOR pos, float angle, float height,
SetZoom(0, 1.5f);
SetFloorHeight(0.0f);
- CreateCrashSphere(D3DVECTOR( 0.0f, 50.0f+14.0f, 0.0f), 3.0f, SOUND_BOUMm, 0.45f);
- CreateCrashSphere(D3DVECTOR( -7.0f, 50.0f+12.0f, 0.0f), 3.0f, SOUND_BOUMm, 0.45f);
- CreateCrashSphere(D3DVECTOR( 7.0f, 50.0f+12.0f, 0.0f), 3.0f, SOUND_BOUMm, 0.45f);
- CreateCrashSphere(D3DVECTOR(-12.0f, 50.0f+ 7.0f, 0.0f), 3.0f, SOUND_BOUMm, 0.45f);
- CreateCrashSphere(D3DVECTOR( 12.0f, 50.0f+ 7.0f, 0.0f), 3.0f, SOUND_BOUMm, 0.45f);
- CreateCrashSphere(D3DVECTOR(-14.0f, 50.0f+ 0.0f, 0.0f), 3.0f, SOUND_BOUMm, 0.45f);
- CreateCrashSphere(D3DVECTOR( 14.0f, 50.0f+ 0.0f, 0.0f), 3.0f, SOUND_BOUMm, 0.45f);
- CreateCrashSphere(D3DVECTOR(-12.0f, 50.0f- 7.0f, 0.0f), 3.0f, SOUND_BOUMm, 0.45f);
- CreateCrashSphere(D3DVECTOR( 12.0f, 50.0f- 7.0f, 0.0f), 3.0f, SOUND_BOUMm, 0.45f);
- CreateCrashSphere(D3DVECTOR( -7.0f, 50.0f-12.0f, 0.0f), 3.0f, SOUND_BOUMm, 0.45f);
- CreateCrashSphere(D3DVECTOR( 7.0f, 50.0f-12.0f, 0.0f), 3.0f, SOUND_BOUMm, 0.45f);
- CreateCrashSphere(D3DVECTOR( 0.0f, 50.0f-14.0f, 0.0f), 3.0f, SOUND_BOUMm, 0.45f);
-
- CreateCrashSphere(D3DVECTOR(0.0f, 30.0f, 0.0f), 2.0f, SOUND_BOUMm, 0.45f);
- CreateCrashSphere(D3DVECTOR(0.0f, 24.0f, 0.0f), 3.0f, SOUND_BOUMm, 0.45f);
- CreateCrashSphere(D3DVECTOR(0.0f, 16.0f, 0.0f), 4.0f, SOUND_BOUMm, 0.45f);
- CreateCrashSphere(D3DVECTOR(0.0f, 4.0f, 0.0f), 8.0f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector( 0.0f, 50.0f+14.0f, 0.0f), 3.0f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector( -7.0f, 50.0f+12.0f, 0.0f), 3.0f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector( 7.0f, 50.0f+12.0f, 0.0f), 3.0f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector(-12.0f, 50.0f+ 7.0f, 0.0f), 3.0f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector( 12.0f, 50.0f+ 7.0f, 0.0f), 3.0f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector(-14.0f, 50.0f+ 0.0f, 0.0f), 3.0f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector( 14.0f, 50.0f+ 0.0f, 0.0f), 3.0f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector(-12.0f, 50.0f- 7.0f, 0.0f), 3.0f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector( 12.0f, 50.0f- 7.0f, 0.0f), 3.0f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector( -7.0f, 50.0f-12.0f, 0.0f), 3.0f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector( 7.0f, 50.0f-12.0f, 0.0f), 3.0f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector( 0.0f, 50.0f-14.0f, 0.0f), 3.0f, SOUND_BOUMm, 0.45f);
+
+ CreateCrashSphere(Math::Vector(0.0f, 30.0f, 0.0f), 2.0f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector(0.0f, 24.0f, 0.0f), 3.0f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector(0.0f, 16.0f, 0.0f), 4.0f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector(0.0f, 4.0f, 0.0f), 8.0f, SOUND_BOUMm, 0.45f);
CreateShadowCircle(15.0f, 1.0f);
}
@@ -3231,8 +3231,8 @@ bool CObject::CreateBuilding(D3DVECTOR pos, float angle, float height,
pModFile->CreateEngineObject(rank);
pPower->SetPosition(0, RetCharacter()->posPower);
- pPower->CreateCrashSphere(D3DVECTOR(0.0f, 1.0f, 0.0f), 1.0f, SOUND_BOUMm, 0.45f);
- pPower->SetGlobalSphere(D3DVECTOR(0.0f, 1.0f, 0.0f), 1.5f);
+ pPower->CreateCrashSphere(Math::Vector(0.0f, 1.0f, 0.0f), 1.0f, SOUND_BOUMm, 0.45f);
+ pPower->SetGlobalSphere(Math::Vector(0.0f, 1.0f, 0.0f), 1.5f);
pPower->SetTruck(this);
SetPower(pPower);
@@ -3255,7 +3255,7 @@ bool CObject::CreateBuilding(D3DVECTOR pos, float angle, float height,
// Creates a small resource set on the ground.
-bool CObject::CreateResource(D3DVECTOR pos, float angle, ObjectType type,
+bool CObject::CreateResource(Math::Vector pos, float angle, ObjectType type,
float power)
{
CModFile* pModFile;
@@ -3336,28 +3336,28 @@ bool CObject::CreateResource(D3DVECTOR pos, float angle, ObjectType type,
}
else if ( type == OBJECT_EGG )
{
- CreateCrashSphere(D3DVECTOR(-1.0f, 2.8f, 0.0f), 3.0f, SOUND_BOUMm, 0.45f);
- SetGlobalSphere(D3DVECTOR(0.0f, 5.0f, 0.0f), 10.0f);
+ CreateCrashSphere(Math::Vector(-1.0f, 2.8f, 0.0f), 3.0f, SOUND_BOUMm, 0.45f);
+ SetGlobalSphere(Math::Vector(0.0f, 5.0f, 0.0f), 10.0f);
radius = 3.0f;
}
else if ( type == OBJECT_BOMB )
{
- CreateCrashSphere(D3DVECTOR(0.0f, 0.0f, 0.0f), 3.0f, SOUND_BOUMm, 0.45f);
- SetGlobalSphere(D3DVECTOR(0.0f, 0.0f, 0.0f), 3.0f);
+ CreateCrashSphere(Math::Vector(0.0f, 0.0f, 0.0f), 3.0f, SOUND_BOUMm, 0.45f);
+ SetGlobalSphere(Math::Vector(0.0f, 0.0f, 0.0f), 3.0f);
radius = 3.0f;
}
else if ( type == OBJECT_BAG )
{
- CreateCrashSphere(D3DVECTOR(0.0f, 0.0f, 0.0f), 4.0f, SOUND_BOUMm, 0.45f);
- SetGlobalSphere(D3DVECTOR(0.0f, 0.0f, 0.0f), 4.0f);
+ CreateCrashSphere(Math::Vector(0.0f, 0.0f, 0.0f), 4.0f, SOUND_BOUMm, 0.45f);
+ SetGlobalSphere(Math::Vector(0.0f, 0.0f, 0.0f), 4.0f);
SetZoom(0, 1.5f);
radius = 5.0f;
height = -1.4f;
}
else
{
- CreateCrashSphere(D3DVECTOR(0.0f, 1.0f, 0.0f), 1.0f, SOUND_BOUMm, 0.45f);
- SetGlobalSphere(D3DVECTOR(0.0f, 1.0f, 0.0f), 1.5f);
+ CreateCrashSphere(Math::Vector(0.0f, 1.0f, 0.0f), 1.0f, SOUND_BOUMm, 0.45f);
+ SetGlobalSphere(Math::Vector(0.0f, 1.0f, 0.0f), 1.5f);
}
CreateShadowCircle(radius, 1.0f);
@@ -3376,7 +3376,7 @@ bool CObject::CreateResource(D3DVECTOR pos, float angle, ObjectType type,
// Creates a flag placed on the ground.
-bool CObject::CreateFlag(D3DVECTOR pos, float angle, ObjectType type)
+bool CObject::CreateFlag(Math::Vector pos, float angle, ObjectType type)
{
CModFile* pModFile;
char name[50];
@@ -3418,11 +3418,11 @@ bool CObject::CreateFlag(D3DVECTOR pos, float angle, ObjectType type)
SetObjectParent(1+i, i);
pModFile->ReadModel(name);
pModFile->CreateEngineObject(rank);
- if ( i == 0 ) SetPosition(1+i, D3DVECTOR(0.15f, 5.0f, 0.0f));
- else SetPosition(1+i, D3DVECTOR(0.79f, 0.0f, 0.0f));
+ if ( i == 0 ) SetPosition(1+i, Math::Vector(0.15f, 5.0f, 0.0f));
+ else SetPosition(1+i, Math::Vector(0.79f, 0.0f, 0.0f));
}
- SetJotlerSphere(D3DVECTOR(0.0f, 4.0f, 0.0f), 1.0f);
+ SetJotlerSphere(Math::Vector(0.0f, 4.0f, 0.0f), 1.0f);
CreateShadowCircle(2.0f, 0.3f);
SetFloorHeight(0.0f);
@@ -3439,7 +3439,7 @@ bool CObject::CreateFlag(D3DVECTOR pos, float angle, ObjectType type)
// Creates a barrier placed on the ground.
-bool CObject::CreateBarrier(D3DVECTOR pos, float angle, float height,
+bool CObject::CreateBarrier(Math::Vector pos, float angle, float height,
ObjectType type)
{
CModFile* pModFile;
@@ -3461,9 +3461,9 @@ bool CObject::CreateBarrier(D3DVECTOR pos, float angle, float height,
SetPosition(0, pos);
SetAngleY(0, angle);
- CreateCrashSphere(D3DVECTOR( 3.5f, 3.0f, 0.0f), 0.7f, SOUND_BOUMm, 0.45f);
- CreateCrashSphere(D3DVECTOR( 0.0f, 3.0f, 0.0f), 0.7f, SOUND_BOUMm, 0.45f);
- CreateCrashSphere(D3DVECTOR(-3.5f, 3.0f, 0.0f), 0.7f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector( 3.5f, 3.0f, 0.0f), 0.7f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector( 0.0f, 3.0f, 0.0f), 0.7f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector(-3.5f, 3.0f, 0.0f), 0.7f, SOUND_BOUMm, 0.45f);
CreateShadowCircle(6.0f, 0.5f, D3DSHADOWWORM);
}
@@ -3478,11 +3478,11 @@ bool CObject::CreateBarrier(D3DVECTOR pos, float angle, float height,
SetPosition(0, pos);
SetAngleY(0, angle);
- CreateCrashSphere(D3DVECTOR( 8.5f, 3.0f, 0.0f), 0.7f, SOUND_BOUMm, 0.45f);
- CreateCrashSphere(D3DVECTOR( 3.5f, 3.0f, 0.0f), 0.7f, SOUND_BOUMm, 0.45f);
- CreateCrashSphere(D3DVECTOR( 0.0f, 3.0f, 0.0f), 0.7f, SOUND_BOUMm, 0.45f);
- CreateCrashSphere(D3DVECTOR(-3.5f, 3.0f, 0.0f), 0.7f, SOUND_BOUMm, 0.45f);
- CreateCrashSphere(D3DVECTOR(-8.5f, 3.0f, 0.0f), 0.7f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector( 8.5f, 3.0f, 0.0f), 0.7f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector( 3.5f, 3.0f, 0.0f), 0.7f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector( 0.0f, 3.0f, 0.0f), 0.7f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector(-3.5f, 3.0f, 0.0f), 0.7f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector(-8.5f, 3.0f, 0.0f), 0.7f, SOUND_BOUMm, 0.45f);
CreateShadowCircle(12.0f, 0.5f, D3DSHADOWWORM);
}
@@ -3497,11 +3497,11 @@ bool CObject::CreateBarrier(D3DVECTOR pos, float angle, float height,
SetPosition(0, pos);
SetAngleY(0, angle);
- CreateCrashSphere(D3DVECTOR( 8.5f, 3.0f, 0.0f), 0.7f, SOUND_BOUMm, 0.45f);
- CreateCrashSphere(D3DVECTOR( 3.5f, 3.0f, 0.0f), 0.7f, SOUND_BOUMm, 0.45f);
- CreateCrashSphere(D3DVECTOR( 0.0f, 3.0f, 0.0f), 0.7f, SOUND_BOUMm, 0.45f);
- CreateCrashSphere(D3DVECTOR(-3.5f, 3.0f, 0.0f), 0.7f, SOUND_BOUMm, 0.45f);
- CreateCrashSphere(D3DVECTOR(-8.5f, 3.0f, 0.0f), 0.7f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector( 8.5f, 3.0f, 0.0f), 0.7f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector( 3.5f, 3.0f, 0.0f), 0.7f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector( 0.0f, 3.0f, 0.0f), 0.7f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector(-3.5f, 3.0f, 0.0f), 0.7f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector(-8.5f, 3.0f, 0.0f), 0.7f, SOUND_BOUMm, 0.45f);
CreateShadowCircle(12.0f, 0.8f, D3DSHADOWWORM);
}
@@ -3516,11 +3516,11 @@ bool CObject::CreateBarrier(D3DVECTOR pos, float angle, float height,
SetPosition(0, pos);
SetAngleY(0, angle);
- CreateCrashSphere(D3DVECTOR( 8.5f, 3.0f, 0.0f), 0.7f, SOUND_BOUMm, 0.45f);
- CreateCrashSphere(D3DVECTOR( 3.5f, 3.0f, 0.0f), 0.7f, SOUND_BOUMm, 0.45f);
- CreateCrashSphere(D3DVECTOR( 0.0f, 3.0f, 0.0f), 0.7f, SOUND_BOUMm, 0.45f);
- CreateCrashSphere(D3DVECTOR(-3.5f, 3.0f, 0.0f), 0.7f, SOUND_BOUMm, 0.45f);
- CreateCrashSphere(D3DVECTOR(-8.5f, 3.0f, 0.0f), 0.7f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector( 8.5f, 3.0f, 0.0f), 0.7f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector( 3.5f, 3.0f, 0.0f), 0.7f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector( 0.0f, 3.0f, 0.0f), 0.7f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector(-3.5f, 3.0f, 0.0f), 0.7f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector(-8.5f, 3.0f, 0.0f), 0.7f, SOUND_BOUMm, 0.45f);
CreateShadowCircle(10.0f, 0.5f, D3DSHADOWWORM);
}
@@ -3542,7 +3542,7 @@ bool CObject::CreateBarrier(D3DVECTOR pos, float angle, float height,
// Creates a plant placed on the ground.
-bool CObject::CreatePlant(D3DVECTOR pos, float angle, float height,
+bool CObject::CreatePlant(Math::Vector pos, float angle, float height,
ObjectType type)
{
CModFile* pModFile;
@@ -3574,9 +3574,9 @@ bool CObject::CreatePlant(D3DVECTOR pos, float angle, float height,
height -= 2.0f;
- CreateCrashSphere(D3DVECTOR(0.0f, 0.0f, 0.0f), 4.0f, SOUND_BOUM, 0.10f);
- SetGlobalSphere(D3DVECTOR(0.0f, 3.0f, 0.0f), 6.0f);
- SetJotlerSphere(D3DVECTOR(0.0f, 0.0f, 0.0f), 8.0f);
+ CreateCrashSphere(Math::Vector(0.0f, 0.0f, 0.0f), 4.0f, SOUND_BOUM, 0.10f);
+ SetGlobalSphere(Math::Vector(0.0f, 3.0f, 0.0f), 6.0f);
+ SetJotlerSphere(Math::Vector(0.0f, 0.0f, 0.0f), 8.0f);
CreateShadowCircle(8.0f, 0.5f);
}
@@ -3595,8 +3595,8 @@ bool CObject::CreatePlant(D3DVECTOR pos, float angle, float height,
SetPosition(0, pos);
SetAngleY(0, angle);
-//? CreateCrashSphere(D3DVECTOR(0.0f, 0.0f, 0.0f), 3.0f, SOUND_BOUM, 0.10f);
- SetJotlerSphere(D3DVECTOR(0.0f, 0.0f, 0.0f), 4.0f);
+//? CreateCrashSphere(Math::Vector(0.0f, 0.0f, 0.0f), 3.0f, SOUND_BOUM, 0.10f);
+ SetJotlerSphere(Math::Vector(0.0f, 0.0f, 0.0f), 4.0f);
CreateShadowCircle(5.0f, 0.3f);
}
@@ -3613,8 +3613,8 @@ bool CObject::CreatePlant(D3DVECTOR pos, float angle, float height,
SetPosition(0, pos);
SetAngleY(0, angle);
- CreateCrashSphere(D3DVECTOR(0.0f, 2.0f, 0.0f), 4.0f, SOUND_BOUM, 0.10f);
- CreateCrashSphere(D3DVECTOR(0.0f, 10.0f, 0.0f), 4.0f, SOUND_BOUM, 0.10f);
+ CreateCrashSphere(Math::Vector(0.0f, 2.0f, 0.0f), 4.0f, SOUND_BOUM, 0.10f);
+ CreateCrashSphere(Math::Vector(0.0f, 10.0f, 0.0f), 4.0f, SOUND_BOUM, 0.10f);
CreateShadowCircle(10.0f, 0.5f);
}
@@ -3637,9 +3637,9 @@ bool CObject::CreatePlant(D3DVECTOR pos, float angle, float height,
SetPosition(0, pos);
SetAngleY(0, angle);
- CreateCrashSphere(D3DVECTOR(0.0f, 12.0f, 0.0f), 5.0f, SOUND_BOUM, 0.10f);
- SetGlobalSphere(D3DVECTOR(0.0f, 6.0f, 0.0f), 6.0f);
- SetJotlerSphere(D3DVECTOR(0.0f, 4.0f, 0.0f), 8.0f);
+ CreateCrashSphere(Math::Vector(0.0f, 12.0f, 0.0f), 5.0f, SOUND_BOUM, 0.10f);
+ SetGlobalSphere(Math::Vector(0.0f, 6.0f, 0.0f), 6.0f);
+ SetJotlerSphere(Math::Vector(0.0f, 4.0f, 0.0f), 8.0f);
CreateShadowCircle(8.0f, 0.3f);
}
@@ -3664,10 +3664,10 @@ bool CObject::CreatePlant(D3DVECTOR pos, float angle, float height,
if ( type != OBJECT_PLANT19 )
{
- CreateCrashSphere(D3DVECTOR(0.0f, 0.0f, 0.0f), 4.0f, SOUND_BOUM, 0.10f);
- SetGlobalSphere(D3DVECTOR(0.0f, 3.0f, 0.0f), 6.0f);
+ CreateCrashSphere(Math::Vector(0.0f, 0.0f, 0.0f), 4.0f, SOUND_BOUM, 0.10f);
+ SetGlobalSphere(Math::Vector(0.0f, 3.0f, 0.0f), 6.0f);
}
- SetJotlerSphere(D3DVECTOR(0.0f, 0.0f, 0.0f), 8.0f);
+ SetJotlerSphere(Math::Vector(0.0f, 0.0f, 0.0f), 8.0f);
CreateShadowCircle(8.0f, 0.5f);
}
@@ -3682,10 +3682,10 @@ bool CObject::CreatePlant(D3DVECTOR pos, float angle, float height,
SetPosition(0, pos);
SetAngleY(0, angle);
- CreateCrashSphere(D3DVECTOR( 0.0f, 3.0f, 2.0f), 3.0f, SOUND_BOUMs, 0.20f);
- CreateCrashSphere(D3DVECTOR(-1.0f, 10.0f, 1.0f), 2.0f, SOUND_BOUMs, 0.20f);
- CreateCrashSphere(D3DVECTOR( 0.0f, 17.0f, 0.0f), 2.0f, SOUND_BOUMs, 0.20f);
- CreateCrashSphere(D3DVECTOR( 1.0f, 27.0f, 0.0f), 2.0f, SOUND_BOUMs, 0.20f);
+ CreateCrashSphere(Math::Vector( 0.0f, 3.0f, 2.0f), 3.0f, SOUND_BOUMs, 0.20f);
+ CreateCrashSphere(Math::Vector(-1.0f, 10.0f, 1.0f), 2.0f, SOUND_BOUMs, 0.20f);
+ CreateCrashSphere(Math::Vector( 0.0f, 17.0f, 0.0f), 2.0f, SOUND_BOUMs, 0.20f);
+ CreateCrashSphere(Math::Vector( 1.0f, 27.0f, 0.0f), 2.0f, SOUND_BOUMs, 0.20f);
CreateShadowCircle(8.0f, 0.5f);
}
@@ -3700,11 +3700,11 @@ bool CObject::CreatePlant(D3DVECTOR pos, float angle, float height,
SetPosition(0, pos);
SetAngleY(0, angle);
- CreateCrashSphere(D3DVECTOR( 0.0f, 3.0f, 2.0f), 3.0f, SOUND_BOUMs, 0.20f);
- CreateCrashSphere(D3DVECTOR(-2.0f, 11.0f, 1.0f), 2.0f, SOUND_BOUMs, 0.20f);
- CreateCrashSphere(D3DVECTOR(-2.0f, 19.0f, 2.0f), 2.0f, SOUND_BOUMs, 0.20f);
- CreateCrashSphere(D3DVECTOR( 2.0f, 26.0f, 0.0f), 2.0f, SOUND_BOUMs, 0.20f);
- CreateCrashSphere(D3DVECTOR( 2.0f, 34.0f,-2.0f), 2.0f, SOUND_BOUMs, 0.20f);
+ CreateCrashSphere(Math::Vector( 0.0f, 3.0f, 2.0f), 3.0f, SOUND_BOUMs, 0.20f);
+ CreateCrashSphere(Math::Vector(-2.0f, 11.0f, 1.0f), 2.0f, SOUND_BOUMs, 0.20f);
+ CreateCrashSphere(Math::Vector(-2.0f, 19.0f, 2.0f), 2.0f, SOUND_BOUMs, 0.20f);
+ CreateCrashSphere(Math::Vector( 2.0f, 26.0f, 0.0f), 2.0f, SOUND_BOUMs, 0.20f);
+ CreateCrashSphere(Math::Vector( 2.0f, 34.0f,-2.0f), 2.0f, SOUND_BOUMs, 0.20f);
CreateShadowCircle(8.0f, 0.5f);
}
@@ -3719,11 +3719,11 @@ bool CObject::CreatePlant(D3DVECTOR pos, float angle, float height,
SetPosition(0, pos);
SetAngleY(0, angle);
- CreateCrashSphere(D3DVECTOR( 0.0f, 3.0f, 1.0f), 3.0f, SOUND_BOUMs, 0.20f);
- CreateCrashSphere(D3DVECTOR(-2.0f, 10.0f, 1.0f), 2.0f, SOUND_BOUMs, 0.20f);
- CreateCrashSphere(D3DVECTOR(-2.0f, 19.0f, 2.0f), 2.0f, SOUND_BOUMs, 0.20f);
- CreateCrashSphere(D3DVECTOR( 2.0f, 25.0f, 0.0f), 2.0f, SOUND_BOUMs, 0.20f);
- CreateCrashSphere(D3DVECTOR( 3.0f, 32.0f,-2.0f), 2.0f, SOUND_BOUMs, 0.20f);
+ CreateCrashSphere(Math::Vector( 0.0f, 3.0f, 1.0f), 3.0f, SOUND_BOUMs, 0.20f);
+ CreateCrashSphere(Math::Vector(-2.0f, 10.0f, 1.0f), 2.0f, SOUND_BOUMs, 0.20f);
+ CreateCrashSphere(Math::Vector(-2.0f, 19.0f, 2.0f), 2.0f, SOUND_BOUMs, 0.20f);
+ CreateCrashSphere(Math::Vector( 2.0f, 25.0f, 0.0f), 2.0f, SOUND_BOUMs, 0.20f);
+ CreateCrashSphere(Math::Vector( 3.0f, 32.0f,-2.0f), 2.0f, SOUND_BOUMs, 0.20f);
CreateShadowCircle(8.0f, 0.5f);
}
@@ -3738,10 +3738,10 @@ bool CObject::CreatePlant(D3DVECTOR pos, float angle, float height,
SetPosition(0, pos);
SetAngleY(0, angle);
- CreateCrashSphere(D3DVECTOR(-2.0f, 3.0f, 2.0f), 3.0f, SOUND_BOUMs, 0.20f);
- CreateCrashSphere(D3DVECTOR(-3.0f, 9.0f, 1.0f), 2.0f, SOUND_BOUMs, 0.20f);
- CreateCrashSphere(D3DVECTOR( 0.0f, 18.0f, 0.0f), 2.0f, SOUND_BOUMs, 0.20f);
- CreateCrashSphere(D3DVECTOR( 0.0f, 27.0f, 7.0f), 2.0f, SOUND_BOUMs, 0.20f);
+ CreateCrashSphere(Math::Vector(-2.0f, 3.0f, 2.0f), 3.0f, SOUND_BOUMs, 0.20f);
+ CreateCrashSphere(Math::Vector(-3.0f, 9.0f, 1.0f), 2.0f, SOUND_BOUMs, 0.20f);
+ CreateCrashSphere(Math::Vector( 0.0f, 18.0f, 0.0f), 2.0f, SOUND_BOUMs, 0.20f);
+ CreateCrashSphere(Math::Vector( 0.0f, 27.0f, 7.0f), 2.0f, SOUND_BOUMs, 0.20f);
CreateShadowCircle(8.0f, 0.5f);
}
@@ -3756,9 +3756,9 @@ bool CObject::CreatePlant(D3DVECTOR pos, float angle, float height,
SetPosition(0, pos);
SetAngleY(0, angle);
- CreateCrashSphere(D3DVECTOR(0.0f, 10.0f, 0.0f), 10.0f, SOUND_BOUMs, 0.20f);
- CreateCrashSphere(D3DVECTOR(0.0f, 21.0f, 0.0f), 8.0f, SOUND_BOUMs, 0.20f);
- CreateCrashSphere(D3DVECTOR(0.0f, 32.0f, 0.0f), 7.0f, SOUND_BOUMs, 0.20f);
+ CreateCrashSphere(Math::Vector(0.0f, 10.0f, 0.0f), 10.0f, SOUND_BOUMs, 0.20f);
+ CreateCrashSphere(Math::Vector(0.0f, 21.0f, 0.0f), 8.0f, SOUND_BOUMs, 0.20f);
+ CreateCrashSphere(Math::Vector(0.0f, 32.0f, 0.0f), 7.0f, SOUND_BOUMs, 0.20f);
CreateShadowCircle(8.0f, 0.5f);
}
@@ -3773,9 +3773,9 @@ bool CObject::CreatePlant(D3DVECTOR pos, float angle, float height,
SetPosition(0, pos);
SetAngleY(0, angle);
- CreateCrashSphere(D3DVECTOR( 0.0f, 5.0f,-10.0f), 25.0f, SOUND_BOUMs, 0.20f);
- CreateCrashSphere(D3DVECTOR(-65.0f, 5.0f, 65.0f), 20.0f, SOUND_BOUMs, 0.20f);
- CreateCrashSphere(D3DVECTOR( 38.0f, 5.0f, 21.0f), 18.0f, SOUND_BOUMs, 0.20f);
+ CreateCrashSphere(Math::Vector( 0.0f, 5.0f,-10.0f), 25.0f, SOUND_BOUMs, 0.20f);
+ CreateCrashSphere(Math::Vector(-65.0f, 5.0f, 65.0f), 20.0f, SOUND_BOUMs, 0.20f);
+ CreateCrashSphere(Math::Vector( 38.0f, 5.0f, 21.0f), 18.0f, SOUND_BOUMs, 0.20f);
CreateShadowCircle(50.0f, 0.5f);
}
@@ -3796,7 +3796,7 @@ bool CObject::CreatePlant(D3DVECTOR pos, float angle, float height,
// Creates a mushroom placed on the ground.
-bool CObject::CreateMushroom(D3DVECTOR pos, float angle, float height,
+bool CObject::CreateMushroom(Math::Vector pos, float angle, float height,
ObjectType type)
{
CModFile* pModFile;
@@ -3818,9 +3818,9 @@ bool CObject::CreateMushroom(D3DVECTOR pos, float angle, float height,
SetPosition(0, pos);
SetAngleY(0, angle);
- CreateCrashSphere(D3DVECTOR(0.0f, 4.0f, 0.0f), 3.0f, SOUND_BOUM, 0.10f);
- SetGlobalSphere(D3DVECTOR(0.0f, 3.0f, 0.0f), 5.5f);
- SetJotlerSphere(D3DVECTOR(0.0f, 3.0f, 0.0f), 5.5f);
+ CreateCrashSphere(Math::Vector(0.0f, 4.0f, 0.0f), 3.0f, SOUND_BOUM, 0.10f);
+ SetGlobalSphere(Math::Vector(0.0f, 3.0f, 0.0f), 5.5f);
+ SetJotlerSphere(Math::Vector(0.0f, 3.0f, 0.0f), 5.5f);
CreateShadowCircle(6.0f, 0.5f);
}
@@ -3835,9 +3835,9 @@ bool CObject::CreateMushroom(D3DVECTOR pos, float angle, float height,
SetPosition(0, pos);
SetAngleY(0, angle);
- CreateCrashSphere(D3DVECTOR(0.0f, 5.0f, 0.0f), 3.0f, SOUND_BOUM, 0.10f);
- SetGlobalSphere(D3DVECTOR(0.0f, 4.0f, 0.0f), 5.5f);
- SetJotlerSphere(D3DVECTOR(0.0f, 4.0f, 0.0f), 5.5f);
+ CreateCrashSphere(Math::Vector(0.0f, 5.0f, 0.0f), 3.0f, SOUND_BOUM, 0.10f);
+ SetGlobalSphere(Math::Vector(0.0f, 4.0f, 0.0f), 5.5f);
+ SetJotlerSphere(Math::Vector(0.0f, 4.0f, 0.0f), 5.5f);
CreateShadowCircle(5.0f, 0.5f);
}
@@ -3858,11 +3858,11 @@ bool CObject::CreateMushroom(D3DVECTOR pos, float angle, float height,
// Creates a toy placed on the ground.
-bool CObject::CreateTeen(D3DVECTOR pos, float angle, float zoom, float height,
+bool CObject::CreateTeen(Math::Vector pos, float angle, float zoom, float height,
ObjectType type)
{
CModFile* pModFile;
- D3DMATRIX* mat;
+ Math::Matrix* mat;
D3DCOLORVALUE color;
int rank;
float fShadow;
@@ -3887,11 +3887,11 @@ bool CObject::CreateTeen(D3DVECTOR pos, float angle, float zoom, float height,
SetAngleY(0, angle);
SetZoom(0, zoom);
- CreateCrashSphere(D3DVECTOR( 5.0f, 1.0f, 0.0f), 1.0f, SOUND_BOUMm, 0.45f);
- CreateCrashSphere(D3DVECTOR( 2.5f, 1.0f, 0.0f), 1.0f, SOUND_BOUMm, 0.45f);
- CreateCrashSphere(D3DVECTOR( 0.0f, 1.0f, 0.0f), 1.0f, SOUND_BOUMm, 0.45f);
- CreateCrashSphere(D3DVECTOR(-2.5f, 1.0f, 0.0f), 1.0f, SOUND_BOUMm, 0.45f);
- CreateCrashSphere(D3DVECTOR(-5.0f, 1.0f, 0.0f), 1.0f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector( 5.0f, 1.0f, 0.0f), 1.0f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector( 2.5f, 1.0f, 0.0f), 1.0f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector( 0.0f, 1.0f, 0.0f), 1.0f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector(-2.5f, 1.0f, 0.0f), 1.0f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector(-5.0f, 1.0f, 0.0f), 1.0f, SOUND_BOUMm, 0.45f);
CreateShadowCircle(5.0f, 0.8f*fShadow, D3DSHADOWWORM);
}
@@ -3907,13 +3907,13 @@ bool CObject::CreateTeen(D3DVECTOR pos, float angle, float zoom, float height,
SetAngleY(0, angle);
SetZoom(0, zoom);
- CreateCrashSphere(D3DVECTOR( 6.0f, 1.0f, 0.0f), 1.0f, SOUND_BOUMm, 0.45f);
- CreateCrashSphere(D3DVECTOR( 4.0f, 1.0f, 0.0f), 1.0f, SOUND_BOUMm, 0.45f);
- CreateCrashSphere(D3DVECTOR( 2.0f, 1.0f, 0.0f), 1.0f, SOUND_BOUMm, 0.45f);
- CreateCrashSphere(D3DVECTOR( 0.0f, 1.0f, 0.0f), 1.0f, SOUND_BOUMm, 0.45f);
- CreateCrashSphere(D3DVECTOR(-2.0f, 1.0f, 0.0f), 1.0f, SOUND_BOUMm, 0.45f);
- CreateCrashSphere(D3DVECTOR(-4.0f, 1.0f, 0.0f), 1.0f, SOUND_BOUMm, 0.45f);
- CreateCrashSphere(D3DVECTOR(-6.0f, 1.0f, 0.0f), 1.0f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector( 6.0f, 1.0f, 0.0f), 1.0f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector( 4.0f, 1.0f, 0.0f), 1.0f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector( 2.0f, 1.0f, 0.0f), 1.0f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector( 0.0f, 1.0f, 0.0f), 1.0f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector(-2.0f, 1.0f, 0.0f), 1.0f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector(-4.0f, 1.0f, 0.0f), 1.0f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector(-6.0f, 1.0f, 0.0f), 1.0f, SOUND_BOUMm, 0.45f);
CreateShadowCircle(6.0f, 0.8f*fShadow, D3DSHADOWWORM);
}
@@ -3929,13 +3929,13 @@ bool CObject::CreateTeen(D3DVECTOR pos, float angle, float zoom, float height,
SetAngleY(0, angle);
SetZoom(0, zoom);
- CreateCrashSphere(D3DVECTOR( 7.0f, 1.0f, 0.0f), 1.0f, SOUND_BOUMm, 0.45f);
- CreateCrashSphere(D3DVECTOR( 4.7f, 1.0f, 0.0f), 1.0f, SOUND_BOUMm, 0.45f);
- CreateCrashSphere(D3DVECTOR( 2.3f, 1.0f, 0.0f), 1.0f, SOUND_BOUMm, 0.45f);
- CreateCrashSphere(D3DVECTOR( 0.0f, 1.0f, 0.0f), 1.0f, SOUND_BOUMm, 0.45f);
- CreateCrashSphere(D3DVECTOR(-2.3f, 1.0f, 0.0f), 1.0f, SOUND_BOUMm, 0.45f);
- CreateCrashSphere(D3DVECTOR(-4.7f, 1.0f, 0.0f), 1.0f, SOUND_BOUMm, 0.45f);
- CreateCrashSphere(D3DVECTOR(-7.0f, 1.0f, 0.0f), 1.0f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector( 7.0f, 1.0f, 0.0f), 1.0f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector( 4.7f, 1.0f, 0.0f), 1.0f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector( 2.3f, 1.0f, 0.0f), 1.0f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector( 0.0f, 1.0f, 0.0f), 1.0f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector(-2.3f, 1.0f, 0.0f), 1.0f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector(-4.7f, 1.0f, 0.0f), 1.0f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector(-7.0f, 1.0f, 0.0f), 1.0f, SOUND_BOUMm, 0.45f);
CreateShadowCircle(6.0f, 0.8f*fShadow, D3DSHADOWWORM);
}
@@ -3952,8 +3952,8 @@ bool CObject::CreateTeen(D3DVECTOR pos, float angle, float zoom, float height,
SetAngleY(0, angle);
SetZoom(0, zoom);
- CreateCrashSphere(D3DVECTOR( 0.0f, 4.0f, 0.0f), 4.0f, SOUND_BOUMm, 0.45f);
- SetGlobalSphere(D3DVECTOR(0.0f, 4.0f, 0.0f), 4.0f);
+ CreateCrashSphere(Math::Vector( 0.0f, 4.0f, 0.0f), 4.0f, SOUND_BOUMm, 0.45f);
+ SetGlobalSphere(Math::Vector(0.0f, 4.0f, 0.0f), 4.0f);
CreateShadowCircle(6.0f, 0.5f*fShadow);
}
@@ -3968,13 +3968,13 @@ bool CObject::CreateTeen(D3DVECTOR pos, float angle, float zoom, float height,
SetAngleY(0, angle);
SetZoom(0, zoom);
- CreateCrashSphere(D3DVECTOR(-9.0f, 1.0f, 0.0f), 1.0f, SOUND_BOUMm, 0.45f);
- CreateCrashSphere(D3DVECTOR(-6.0f, 1.0f, 0.0f), 1.1f, SOUND_BOUMm, 0.45f);
- CreateCrashSphere(D3DVECTOR(-3.0f, 1.0f, 0.0f), 1.2f, SOUND_BOUMm, 0.45f);
- CreateCrashSphere(D3DVECTOR( 0.0f, 1.0f, 0.0f), 1.3f, SOUND_BOUMm, 0.45f);
- CreateCrashSphere(D3DVECTOR( 5.1f, 1.0f,-1.3f), 2.6f, SOUND_BOUMm, 0.45f);
- CreateCrashSphere(D3DVECTOR( 8.0f, 1.0f, 2.2f), 2.3f, SOUND_BOUMm, 0.45f);
- CreateCrashSphere(D3DVECTOR( 9.4f, 1.0f,-2.0f), 2.0f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector(-9.0f, 1.0f, 0.0f), 1.0f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector(-6.0f, 1.0f, 0.0f), 1.1f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector(-3.0f, 1.0f, 0.0f), 1.2f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector( 0.0f, 1.0f, 0.0f), 1.3f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector( 5.1f, 1.0f,-1.3f), 2.6f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector( 8.0f, 1.0f, 2.2f), 2.3f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector( 9.4f, 1.0f,-2.0f), 2.0f, SOUND_BOUMm, 0.45f);
CreateShadowCircle(10.0f, 0.5f*fShadow, D3DSHADOWWORM);
}
@@ -4007,12 +4007,12 @@ bool CObject::CreateTeen(D3DVECTOR pos, float angle, float zoom, float height,
SetAngleY(0, angle);
SetZoom(0, zoom);
- CreateCrashSphere(D3DVECTOR(-5.0f, 3.0f, 7.5f), 5.0f, SOUND_BOUMm, 0.45f);
- CreateCrashSphere(D3DVECTOR( 4.5f, 3.0f, 7.5f), 5.0f, SOUND_BOUMm, 0.45f);
- CreateCrashSphere(D3DVECTOR(-5.0f, 3.0f, 0.0f), 5.0f, SOUND_BOUMm, 0.45f);
- CreateCrashSphere(D3DVECTOR( 4.5f, 3.0f, 0.0f), 5.0f, SOUND_BOUMm, 0.45f);
- CreateCrashSphere(D3DVECTOR(-5.0f, 3.0f,-7.5f), 5.0f, SOUND_BOUMm, 0.45f);
- CreateCrashSphere(D3DVECTOR( 4.5f, 3.0f,-7.5f), 5.0f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector(-5.0f, 3.0f, 7.5f), 5.0f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector( 4.5f, 3.0f, 7.5f), 5.0f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector(-5.0f, 3.0f, 0.0f), 5.0f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector( 4.5f, 3.0f, 0.0f), 5.0f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector(-5.0f, 3.0f,-7.5f), 5.0f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector( 4.5f, 3.0f,-7.5f), 5.0f, SOUND_BOUMm, 0.45f);
CreateShadowCircle(20.0f, 0.2f*fShadow);
}
@@ -4028,12 +4028,12 @@ bool CObject::CreateTeen(D3DVECTOR pos, float angle, float zoom, float height,
SetAngleY(0, angle);
SetZoom(0, zoom);
- CreateCrashSphere(D3DVECTOR(-5.0f, 3.0f, 7.5f), 5.0f, SOUND_BOUMm, 0.45f);
- CreateCrashSphere(D3DVECTOR( 4.5f, 3.0f, 7.5f), 5.0f, SOUND_BOUMm, 0.45f);
- CreateCrashSphere(D3DVECTOR(-5.0f, 3.0f, 0.0f), 5.0f, SOUND_BOUMm, 0.45f);
- CreateCrashSphere(D3DVECTOR( 4.5f, 3.0f, 0.0f), 5.0f, SOUND_BOUMm, 0.45f);
- CreateCrashSphere(D3DVECTOR(-5.0f, 3.0f,-7.5f), 5.0f, SOUND_BOUMm, 0.45f);
- CreateCrashSphere(D3DVECTOR( 4.5f, 3.0f,-7.5f), 5.0f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector(-5.0f, 3.0f, 7.5f), 5.0f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector( 4.5f, 3.0f, 7.5f), 5.0f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector(-5.0f, 3.0f, 0.0f), 5.0f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector( 4.5f, 3.0f, 0.0f), 5.0f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector(-5.0f, 3.0f,-7.5f), 5.0f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector( 4.5f, 3.0f,-7.5f), 5.0f, SOUND_BOUMm, 0.45f);
CreateShadowCircle(20.0f, 0.2f*fShadow);
}
@@ -4049,14 +4049,14 @@ bool CObject::CreateTeen(D3DVECTOR pos, float angle, float zoom, float height,
SetAngleY(0, angle);
SetZoom(0, zoom);
- CreateCrashSphere(D3DVECTOR(-5.0f, 3.0f, 7.5f), 5.0f, SOUND_BOUMm, 0.45f);
- CreateCrashSphere(D3DVECTOR( 4.5f, 3.0f, 7.5f), 5.0f, SOUND_BOUMm, 0.45f);
- CreateCrashSphere(D3DVECTOR(-5.0f, 3.0f, 0.0f), 5.0f, SOUND_BOUMm, 0.45f);
- CreateCrashSphere(D3DVECTOR( 4.5f, 3.0f, 0.0f), 5.0f, SOUND_BOUMm, 0.45f);
- CreateCrashSphere(D3DVECTOR(-5.0f, 3.0f,-7.5f), 5.0f, SOUND_BOUMm, 0.45f);
- CreateCrashSphere(D3DVECTOR( 4.5f, 3.0f,-7.5f), 5.0f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector(-5.0f, 3.0f, 7.5f), 5.0f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector( 4.5f, 3.0f, 7.5f), 5.0f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector(-5.0f, 3.0f, 0.0f), 5.0f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector( 4.5f, 3.0f, 0.0f), 5.0f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector(-5.0f, 3.0f,-7.5f), 5.0f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector( 4.5f, 3.0f,-7.5f), 5.0f, SOUND_BOUMm, 0.45f);
- SetGlobalSphere(D3DVECTOR(0.0f, 10.0f, 0.0f), 12.0f);
+ SetGlobalSphere(Math::Vector(0.0f, 10.0f, 0.0f), 12.0f);
CreateShadowCircle(20.0f, 0.2f*fShadow);
}
@@ -4071,14 +4071,14 @@ bool CObject::CreateTeen(D3DVECTOR pos, float angle, float zoom, float height,
SetAngleY(0, angle);
SetZoom(0, zoom);
- CreateCrashSphere(D3DVECTOR(-5.0f, 3.0f, 7.5f), 5.0f, SOUND_BOUMm, 0.45f);
- CreateCrashSphere(D3DVECTOR( 4.5f, 3.0f, 7.5f), 5.0f, SOUND_BOUMm, 0.45f);
- CreateCrashSphere(D3DVECTOR(-5.0f, 3.0f, 0.0f), 5.0f, SOUND_BOUMm, 0.45f);
- CreateCrashSphere(D3DVECTOR( 4.5f, 3.0f, 0.0f), 5.0f, SOUND_BOUMm, 0.45f);
- CreateCrashSphere(D3DVECTOR(-5.0f, 3.0f,-7.5f), 5.0f, SOUND_BOUMm, 0.45f);
- CreateCrashSphere(D3DVECTOR( 4.5f, 3.0f,-7.5f), 5.0f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector(-5.0f, 3.0f, 7.5f), 5.0f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector( 4.5f, 3.0f, 7.5f), 5.0f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector(-5.0f, 3.0f, 0.0f), 5.0f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector( 4.5f, 3.0f, 0.0f), 5.0f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector(-5.0f, 3.0f,-7.5f), 5.0f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector( 4.5f, 3.0f,-7.5f), 5.0f, SOUND_BOUMm, 0.45f);
- SetGlobalSphere(D3DVECTOR(0.0f, 10.0f, 0.0f), 12.0f);
+ SetGlobalSphere(Math::Vector(0.0f, 10.0f, 0.0f), 12.0f);
CreateShadowCircle(20.0f, 0.2f*fShadow);
}
@@ -4093,18 +4093,18 @@ bool CObject::CreateTeen(D3DVECTOR pos, float angle, float zoom, float height,
SetAngleY(0, angle);
SetZoom(0, zoom);
- CreateCrashSphere(D3DVECTOR(-26.0f, 3.0f, 0.0f), 6.0f, SOUND_BOUMm, 0.45f);
- CreateCrashSphere(D3DVECTOR(-15.0f, 3.0f,-4.0f), 6.0f, SOUND_BOUMm, 0.45f);
- CreateCrashSphere(D3DVECTOR(-15.0f, 3.0f, 5.0f), 6.0f, SOUND_BOUMm, 0.45f);
- CreateCrashSphere(D3DVECTOR( -4.0f, 3.0f,-4.0f), 6.0f, SOUND_BOUMm, 0.45f);
- CreateCrashSphere(D3DVECTOR( -4.0f, 3.0f, 5.0f), 6.0f, SOUND_BOUMm, 0.45f);
- CreateCrashSphere(D3DVECTOR( 6.0f, 3.0f,-4.0f), 6.0f, SOUND_BOUMm, 0.45f);
- CreateCrashSphere(D3DVECTOR( 6.0f, 3.0f, 4.0f), 6.0f, SOUND_BOUMm, 0.45f);
- CreateCrashSphere(D3DVECTOR( 14.0f, 3.0f,-3.0f), 6.0f, SOUND_BOUMm, 0.45f);
- CreateCrashSphere(D3DVECTOR( 14.0f, 3.0f, 2.0f), 6.0f, SOUND_BOUMm, 0.45f);
- CreateCrashSphere(D3DVECTOR( 24.0f, 3.0f, 5.0f), 6.0f, SOUND_BOUMm, 0.45f);
-
- SetGlobalSphere(D3DVECTOR(0.0f, 6.0f, 0.0f), 20.0f);
+ CreateCrashSphere(Math::Vector(-26.0f, 3.0f, 0.0f), 6.0f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector(-15.0f, 3.0f,-4.0f), 6.0f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector(-15.0f, 3.0f, 5.0f), 6.0f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector( -4.0f, 3.0f,-4.0f), 6.0f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector( -4.0f, 3.0f, 5.0f), 6.0f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector( 6.0f, 3.0f,-4.0f), 6.0f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector( 6.0f, 3.0f, 4.0f), 6.0f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector( 14.0f, 3.0f,-3.0f), 6.0f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector( 14.0f, 3.0f, 2.0f), 6.0f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector( 24.0f, 3.0f, 5.0f), 6.0f, SOUND_BOUMm, 0.45f);
+
+ SetGlobalSphere(Math::Vector(0.0f, 6.0f, 0.0f), 20.0f);
CreateShadowCircle(40.0f, 0.2f*fShadow);
}
@@ -4121,10 +4121,10 @@ bool CObject::CreateTeen(D3DVECTOR pos, float angle, float zoom, float height,
SetZoom(0, zoom);
mat = RetWorldMatrix(0);
- pos = Transform(*mat, D3DVECTOR(-56.0f, 22.0f, 0.0f));
- m_particule->CreateParticule(pos, D3DVECTOR(0.0f, 0.0f, 0.0f), Math::Point(20.0f, 20.0f), PARTISELY, 1.0f, 0.0f, 0.0f);
+ pos = Math::Transform(*mat, Math::Vector(-56.0f, 22.0f, 0.0f));
+ m_particule->CreateParticule(pos, Math::Vector(0.0f, 0.0f, 0.0f), Math::Point(20.0f, 20.0f), PARTISELY, 1.0f, 0.0f, 0.0f);
- pos = Transform(*mat, D3DVECTOR(-65.0f, 40.0f, 0.0f));
+ pos = Math::Transform(*mat, Math::Vector(-65.0f, 40.0f, 0.0f));
color.r = 4.0f;
color.g = 2.0f;
color.b = 0.0f; // yellow-orange
@@ -4144,8 +4144,8 @@ bool CObject::CreateTeen(D3DVECTOR pos, float angle, float zoom, float height,
SetAngleY(0, angle);
SetZoom(0, zoom);
- CreateCrashSphere(D3DVECTOR( 0.0f, 4.0f, 0.0f), 4.0f, SOUND_BOUMm, 0.45f);
- SetGlobalSphere(D3DVECTOR(0.0f, 9.0f, 0.0f), 5.0f);
+ CreateCrashSphere(Math::Vector( 0.0f, 4.0f, 0.0f), 4.0f, SOUND_BOUMm, 0.45f);
+ SetGlobalSphere(Math::Vector(0.0f, 9.0f, 0.0f), 5.0f);
CreateShadowCircle(4.5f, 1.0f*fShadow);
}
@@ -4160,17 +4160,17 @@ bool CObject::CreateTeen(D3DVECTOR pos, float angle, float zoom, float height,
SetAngleY(0, angle);
SetZoom(0, zoom);
- CreateCrashSphere(D3DVECTOR(-10.0f, 4.0f,-7.0f), 5.0f, SOUND_BOUMm, 0.45f);
- CreateCrashSphere(D3DVECTOR( 0.0f, 4.0f,-7.0f), 5.0f, SOUND_BOUMm, 0.45f);
- CreateCrashSphere(D3DVECTOR( 10.0f, 4.0f,-7.0f), 5.0f, SOUND_BOUMm, 0.45f);
- CreateCrashSphere(D3DVECTOR(-10.0f, 4.0f, 0.0f), 5.0f, SOUND_BOUMm, 0.45f);
- CreateCrashSphere(D3DVECTOR( 0.0f, 4.0f, 0.0f), 5.0f, SOUND_BOUMm, 0.45f);
- CreateCrashSphere(D3DVECTOR( 10.0f, 4.0f, 0.0f), 5.0f, SOUND_BOUMm, 0.45f);
- CreateCrashSphere(D3DVECTOR(-10.0f, 4.0f, 7.0f), 5.0f, SOUND_BOUMm, 0.45f);
- CreateCrashSphere(D3DVECTOR( 0.0f, 4.0f, 7.0f), 5.0f, SOUND_BOUMm, 0.45f);
- CreateCrashSphere(D3DVECTOR( 10.0f, 4.0f, 7.0f), 5.0f, SOUND_BOUMm, 0.45f);
-
- SetGlobalSphere(D3DVECTOR(0.0f, 5.0f, 0.0f), 15.0f);
+ CreateCrashSphere(Math::Vector(-10.0f, 4.0f,-7.0f), 5.0f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector( 0.0f, 4.0f,-7.0f), 5.0f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector( 10.0f, 4.0f,-7.0f), 5.0f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector(-10.0f, 4.0f, 0.0f), 5.0f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector( 0.0f, 4.0f, 0.0f), 5.0f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector( 10.0f, 4.0f, 0.0f), 5.0f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector(-10.0f, 4.0f, 7.0f), 5.0f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector( 0.0f, 4.0f, 7.0f), 5.0f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector( 10.0f, 4.0f, 7.0f), 5.0f, SOUND_BOUMm, 0.45f);
+
+ SetGlobalSphere(Math::Vector(0.0f, 5.0f, 0.0f), 15.0f);
CreateShadowCircle(20.0f, 1.0f*fShadow);
}
@@ -4185,17 +4185,17 @@ bool CObject::CreateTeen(D3DVECTOR pos, float angle, float zoom, float height,
SetAngleY(0, angle);
SetZoom(0, zoom);
- CreateCrashSphere(D3DVECTOR(-10.0f, 4.0f,-7.0f), 5.0f, SOUND_BOUMm, 0.45f);
- CreateCrashSphere(D3DVECTOR( 0.0f, 4.0f,-7.0f), 5.0f, SOUND_BOUMm, 0.45f);
- CreateCrashSphere(D3DVECTOR( 10.0f, 4.0f,-7.0f), 5.0f, SOUND_BOUMm, 0.45f);
- CreateCrashSphere(D3DVECTOR(-10.0f, 4.0f, 0.0f), 5.0f, SOUND_BOUMm, 0.45f);
- CreateCrashSphere(D3DVECTOR( 0.0f, 4.0f, 0.0f), 5.0f, SOUND_BOUMm, 0.45f);
- CreateCrashSphere(D3DVECTOR( 10.0f, 4.0f, 0.0f), 5.0f, SOUND_BOUMm, 0.45f);
- CreateCrashSphere(D3DVECTOR(-10.0f, 4.0f, 7.0f), 5.0f, SOUND_BOUMm, 0.45f);
- CreateCrashSphere(D3DVECTOR( 0.0f, 4.0f, 7.0f), 5.0f, SOUND_BOUMm, 0.45f);
- CreateCrashSphere(D3DVECTOR( 10.0f, 4.0f, 7.0f), 5.0f, SOUND_BOUMm, 0.45f);
-
- SetGlobalSphere(D3DVECTOR(0.0f, 5.0f, 0.0f), 15.0f);
+ CreateCrashSphere(Math::Vector(-10.0f, 4.0f,-7.0f), 5.0f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector( 0.0f, 4.0f,-7.0f), 5.0f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector( 10.0f, 4.0f,-7.0f), 5.0f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector(-10.0f, 4.0f, 0.0f), 5.0f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector( 0.0f, 4.0f, 0.0f), 5.0f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector( 10.0f, 4.0f, 0.0f), 5.0f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector(-10.0f, 4.0f, 7.0f), 5.0f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector( 0.0f, 4.0f, 7.0f), 5.0f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector( 10.0f, 4.0f, 7.0f), 5.0f, SOUND_BOUMm, 0.45f);
+
+ SetGlobalSphere(Math::Vector(0.0f, 5.0f, 0.0f), 15.0f);
CreateShadowCircle(20.0f, 1.0f*fShadow);
}
@@ -4210,17 +4210,17 @@ bool CObject::CreateTeen(D3DVECTOR pos, float angle, float zoom, float height,
SetAngleY(0, angle);
SetZoom(0, zoom);
- CreateCrashSphere(D3DVECTOR(-10.0f, 4.0f,-7.0f), 5.0f, SOUND_BOUMm, 0.45f);
- CreateCrashSphere(D3DVECTOR( 0.0f, 4.0f,-7.0f), 5.0f, SOUND_BOUMm, 0.45f);
- CreateCrashSphere(D3DVECTOR( 10.0f, 4.0f,-7.0f), 5.0f, SOUND_BOUMm, 0.45f);
- CreateCrashSphere(D3DVECTOR(-10.0f, 4.0f, 0.0f), 5.0f, SOUND_BOUMm, 0.45f);
- CreateCrashSphere(D3DVECTOR( 0.0f, 4.0f, 0.0f), 5.0f, SOUND_BOUMm, 0.45f);
- CreateCrashSphere(D3DVECTOR( 10.0f, 4.0f, 0.0f), 5.0f, SOUND_BOUMm, 0.45f);
- CreateCrashSphere(D3DVECTOR(-10.0f, 4.0f, 7.0f), 5.0f, SOUND_BOUMm, 0.45f);
- CreateCrashSphere(D3DVECTOR( 0.0f, 4.0f, 7.0f), 5.0f, SOUND_BOUMm, 0.45f);
- CreateCrashSphere(D3DVECTOR( 10.0f, 4.0f, 7.0f), 5.0f, SOUND_BOUMm, 0.45f);
-
- SetGlobalSphere(D3DVECTOR(0.0f, 5.0f, 0.0f), 15.0f);
+ CreateCrashSphere(Math::Vector(-10.0f, 4.0f,-7.0f), 5.0f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector( 0.0f, 4.0f,-7.0f), 5.0f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector( 10.0f, 4.0f,-7.0f), 5.0f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector(-10.0f, 4.0f, 0.0f), 5.0f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector( 0.0f, 4.0f, 0.0f), 5.0f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector( 10.0f, 4.0f, 0.0f), 5.0f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector(-10.0f, 4.0f, 7.0f), 5.0f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector( 0.0f, 4.0f, 7.0f), 5.0f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector( 10.0f, 4.0f, 7.0f), 5.0f, SOUND_BOUMm, 0.45f);
+
+ SetGlobalSphere(Math::Vector(0.0f, 5.0f, 0.0f), 15.0f);
CreateShadowCircle(20.0f, 1.0f*fShadow);
}
@@ -4235,10 +4235,10 @@ bool CObject::CreateTeen(D3DVECTOR pos, float angle, float zoom, float height,
SetAngleY(0, angle);
SetZoom(0, zoom);
- CreateCrashSphere(D3DVECTOR(-8.0f, 4.0f, 0.0f), 12.0f, SOUND_BOUMm, 0.45f);
- CreateCrashSphere(D3DVECTOR( 8.0f, 4.0f, 0.0f), 12.0f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector(-8.0f, 4.0f, 0.0f), 12.0f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector( 8.0f, 4.0f, 0.0f), 12.0f, SOUND_BOUMm, 0.45f);
- SetGlobalSphere(D3DVECTOR(0.0f, 13.0f, 0.0f), 20.0f);
+ SetGlobalSphere(Math::Vector(0.0f, 13.0f, 0.0f), 20.0f);
CreateShadowCircle(18.0f, 1.0f*fShadow);
}
@@ -4253,8 +4253,8 @@ bool CObject::CreateTeen(D3DVECTOR pos, float angle, float zoom, float height,
SetAngleY(0, angle);
SetZoom(0, zoom);
- CreateCrashSphere(D3DVECTOR( 0.0f, 31.0f, 0.0f), 31.0f, SOUND_BOUMm, 0.45f);
- SetGlobalSphere(D3DVECTOR(0.0f, 31.0f, 0.0f), 31.0f);
+ CreateCrashSphere(Math::Vector( 0.0f, 31.0f, 0.0f), 31.0f, SOUND_BOUMm, 0.45f);
+ SetGlobalSphere(Math::Vector(0.0f, 31.0f, 0.0f), 31.0f);
CreateShadowCircle(24.0f, 0.5f*fShadow);
}
@@ -4269,8 +4269,8 @@ bool CObject::CreateTeen(D3DVECTOR pos, float angle, float zoom, float height,
SetAngleY(0, angle);
SetZoom(0, zoom);
- CreateCrashSphere(D3DVECTOR( 0.0f, 31.0f, 0.0f), 31.0f, SOUND_BOUMm, 0.45f);
- SetGlobalSphere(D3DVECTOR(0.0f, 31.0f, 0.0f), 31.0f);
+ CreateCrashSphere(Math::Vector( 0.0f, 31.0f, 0.0f), 31.0f, SOUND_BOUMm, 0.45f);
+ SetGlobalSphere(Math::Vector(0.0f, 31.0f, 0.0f), 31.0f);
CreateShadowCircle(24.0f, 0.5f*fShadow);
}
@@ -4285,8 +4285,8 @@ bool CObject::CreateTeen(D3DVECTOR pos, float angle, float zoom, float height,
SetAngleY(0, angle);
SetZoom(0, zoom);
- CreateCrashSphere(D3DVECTOR( 0.0f, 10.0f, 0.0f), 32.0f, SOUND_BOUMm, 0.45f);
- SetGlobalSphere(D3DVECTOR(0.0f, 10.0f, 0.0f), 32.0f);
+ CreateCrashSphere(Math::Vector( 0.0f, 10.0f, 0.0f), 32.0f, SOUND_BOUMm, 0.45f);
+ SetGlobalSphere(Math::Vector(0.0f, 10.0f, 0.0f), 32.0f);
CreateShadowCircle(33.0f, 1.0f*fShadow);
}
@@ -4301,14 +4301,14 @@ bool CObject::CreateTeen(D3DVECTOR pos, float angle, float zoom, float height,
SetAngleY(0, angle);
SetZoom(0, zoom);
- CreateCrashSphere(D3DVECTOR(-175.0f, 0.0f, -5.0f), 4.0f, SOUND_BOUMm, 0.45f);
- CreateCrashSphere(D3DVECTOR(-175.0f, 0.0f, -35.0f), 4.0f, SOUND_BOUMm, 0.45f);
- CreateCrashSphere(D3DVECTOR( -55.0f, 0.0f, -5.0f), 4.0f, SOUND_BOUMm, 0.45f);
- CreateCrashSphere(D3DVECTOR( -55.0f, 0.0f, -35.0f), 4.0f, SOUND_BOUMm, 0.45f);
- CreateCrashSphere(D3DVECTOR( -37.0f, 0.0f, -5.0f), 4.0f, SOUND_BOUMm, 0.45f);
- CreateCrashSphere(D3DVECTOR( -37.0f, 0.0f, -35.0f), 4.0f, SOUND_BOUMm, 0.45f);
- CreateCrashSphere(D3DVECTOR( 83.0f, 0.0f, -5.0f), 4.0f, SOUND_BOUMm, 0.45f);
- CreateCrashSphere(D3DVECTOR( 83.0f, 0.0f, -35.0f), 4.0f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector(-175.0f, 0.0f, -5.0f), 4.0f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector(-175.0f, 0.0f, -35.0f), 4.0f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector( -55.0f, 0.0f, -5.0f), 4.0f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector( -55.0f, 0.0f, -35.0f), 4.0f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector( -37.0f, 0.0f, -5.0f), 4.0f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector( -37.0f, 0.0f, -35.0f), 4.0f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector( 83.0f, 0.0f, -5.0f), 4.0f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector( 83.0f, 0.0f, -35.0f), 4.0f, SOUND_BOUMm, 0.45f);
}
if ( type == OBJECT_TEEN21 ) // wall with window
@@ -4334,10 +4334,10 @@ bool CObject::CreateTeen(D3DVECTOR pos, float angle, float zoom, float height,
SetAngleY(0, angle);
SetZoom(0, zoom);
- CreateCrashSphere(D3DVECTOR(-135.0f, 0.0f, -5.0f), 4.0f, SOUND_BOUMm, 0.45f);
- CreateCrashSphere(D3DVECTOR(-135.0f, 0.0f, -35.0f), 4.0f, SOUND_BOUMm, 0.45f);
- CreateCrashSphere(D3DVECTOR( -15.0f, 0.0f, -5.0f), 4.0f, SOUND_BOUMm, 0.45f);
- CreateCrashSphere(D3DVECTOR( -15.0f, 0.0f, -35.0f), 4.0f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector(-135.0f, 0.0f, -5.0f), 4.0f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector(-135.0f, 0.0f, -35.0f), 4.0f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector( -15.0f, 0.0f, -5.0f), 4.0f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector( -15.0f, 0.0f, -35.0f), 4.0f, SOUND_BOUMm, 0.45f);
}
if ( type == OBJECT_TEEN23 ) // skateboard on wheels
@@ -4353,16 +4353,16 @@ bool CObject::CreateTeen(D3DVECTOR pos, float angle, float zoom, float height,
if ( m_option == 1 ) // passage under the prohibited skateboard?
{
- CreateCrashSphere(D3DVECTOR(-10.0f, 2.0f, 0.0f), 11.0f, SOUND_BOUMm, 0.45f);
- CreateCrashSphere(D3DVECTOR( 10.0f, 2.0f, 0.0f), 11.0f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector(-10.0f, 2.0f, 0.0f), 11.0f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector( 10.0f, 2.0f, 0.0f), 11.0f, SOUND_BOUMm, 0.45f);
}
- CreateCrashSphere(D3DVECTOR(-23.0f, 2.0f, 7.0f), 3.0f, SOUND_BOUMm, 0.45f);
- CreateCrashSphere(D3DVECTOR(-23.0f, 2.0f, 0.0f), 3.0f, SOUND_BOUMm, 0.45f);
- CreateCrashSphere(D3DVECTOR(-23.0f, 2.0f,-7.0f), 3.0f, SOUND_BOUMm, 0.45f);
- CreateCrashSphere(D3DVECTOR( 23.0f, 2.0f, 7.0f), 3.0f, SOUND_BOUMm, 0.45f);
- CreateCrashSphere(D3DVECTOR( 23.0f, 2.0f, 0.0f), 3.0f, SOUND_BOUMm, 0.45f);
- CreateCrashSphere(D3DVECTOR( 23.0f, 2.0f,-7.0f), 3.0f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector(-23.0f, 2.0f, 7.0f), 3.0f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector(-23.0f, 2.0f, 0.0f), 3.0f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector(-23.0f, 2.0f,-7.0f), 3.0f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector( 23.0f, 2.0f, 7.0f), 3.0f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector( 23.0f, 2.0f, 0.0f), 3.0f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector( 23.0f, 2.0f,-7.0f), 3.0f, SOUND_BOUMm, 0.45f);
CreateShadowCircle(35.0f, 0.8f*fShadow, D3DSHADOWWORM);
}
@@ -4378,8 +4378,8 @@ bool CObject::CreateTeen(D3DVECTOR pos, float angle, float zoom, float height,
SetAngleY(0, angle);
SetZoom(0, zoom);
- CreateCrashSphere(D3DVECTOR(-12.0f, 0.0f, -3.0f), 3.0f, SOUND_BOUMm, 0.45f);
- CreateCrashSphere(D3DVECTOR(-12.0f, 0.0f, 3.0f), 3.0f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector(-12.0f, 0.0f, -3.0f), 3.0f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector(-12.0f, 0.0f, 3.0f), 3.0f, SOUND_BOUMm, 0.45f);
CreateShadowCircle(20.0f, 0.2f*fShadow);
}
@@ -4394,8 +4394,8 @@ bool CObject::CreateTeen(D3DVECTOR pos, float angle, float zoom, float height,
SetAngleY(0, angle);
SetZoom(0, zoom);
- CreateCrashSphere(D3DVECTOR(-12.0f, 0.0f, -3.0f), 3.0f, SOUND_BOUMm, 0.45f);
- CreateCrashSphere(D3DVECTOR(-12.0f, 0.0f, 3.0f), 3.0f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector(-12.0f, 0.0f, -3.0f), 3.0f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector(-12.0f, 0.0f, 3.0f), 3.0f, SOUND_BOUMm, 0.45f);
CreateShadowCircle(20.0f, 0.2f*fShadow);
}
@@ -4412,10 +4412,10 @@ bool CObject::CreateTeen(D3DVECTOR pos, float angle, float zoom, float height,
SetFloorHeight(0.0f);
mat = RetWorldMatrix(0);
- pos = Transform(*mat, D3DVECTOR(0.0f, 50.0f, 0.0f));
- m_particule->CreateParticule(pos, D3DVECTOR(0.0f, 0.0f, 0.0f), Math::Point(100.0f, 100.0f), PARTISELY, 1.0f, 0.0f, 0.0f);
+ pos = Math::Transform(*mat, Math::Vector(0.0f, 50.0f, 0.0f));
+ m_particule->CreateParticule(pos, Math::Vector(0.0f, 0.0f, 0.0f), Math::Point(100.0f, 100.0f), PARTISELY, 1.0f, 0.0f, 0.0f);
- pos = Transform(*mat, D3DVECTOR(0.0f, 50.0f, 0.0f));
+ pos = Math::Transform(*mat, Math::Vector(0.0f, 50.0f, 0.0f));
color.r = 4.0f;
color.g = 2.0f;
color.b = 0.0f; // yellow-orange
@@ -4434,7 +4434,7 @@ bool CObject::CreateTeen(D3DVECTOR pos, float angle, float zoom, float height,
SetAngleY(0, angle);
SetZoom(0, zoom);
- CreateCrashSphere(D3DVECTOR(0.0f, 0.0f, 0.0f), 4.0f, SOUND_BOUM, 0.10f);
+ CreateCrashSphere(Math::Vector(0.0f, 0.0f, 0.0f), 4.0f, SOUND_BOUM, 0.10f);
CreateShadowCircle(40.0f, 0.5f);
}
@@ -4450,7 +4450,7 @@ bool CObject::CreateTeen(D3DVECTOR pos, float angle, float zoom, float height,
SetAngleY(0, angle);
SetZoom(0, zoom);
- CreateCrashSphere(D3DVECTOR(0.0f, 2.0f, 0.0f), 5.0f, SOUND_BOUM, 0.10f);
+ CreateCrashSphere(Math::Vector(0.0f, 2.0f, 0.0f), 5.0f, SOUND_BOUM, 0.10f);
CreateShadowCircle(7.0f, 0.6f*fShadow);
}
@@ -4478,8 +4478,8 @@ bool CObject::CreateTeen(D3DVECTOR pos, float angle, float zoom, float height,
SetAngleY(0, angle);
SetZoom(0, zoom);
- CreateCrashSphere(D3DVECTOR(0.0f, 4.0f, 0.0f), 15.0f, SOUND_BOUM, 0.10f);
- SetGlobalSphere(D3DVECTOR(0.0f, 15.0f, 0.0f), 17.0f);
+ CreateCrashSphere(Math::Vector(0.0f, 4.0f, 0.0f), 15.0f, SOUND_BOUM, 0.10f);
+ SetGlobalSphere(Math::Vector(0.0f, 15.0f, 0.0f), 17.0f);
CreateShadowCircle(20.0f, 1.0f*fShadow);
}
@@ -4494,11 +4494,11 @@ bool CObject::CreateTeen(D3DVECTOR pos, float angle, float zoom, float height,
SetAngleY(0, angle);
SetZoom(0, zoom);
- CreateCrashSphere(D3DVECTOR(-10.0f, 2.0f, 0.0f), 5.0f, SOUND_BOUM, 0.10f);
- CreateCrashSphere(D3DVECTOR( 0.0f, 2.0f, 0.0f), 6.0f, SOUND_BOUM, 0.10f);
- CreateCrashSphere(D3DVECTOR( 9.0f, 4.0f, 1.0f), 6.0f, SOUND_BOUM, 0.10f);
+ CreateCrashSphere(Math::Vector(-10.0f, 2.0f, 0.0f), 5.0f, SOUND_BOUM, 0.10f);
+ CreateCrashSphere(Math::Vector( 0.0f, 2.0f, 0.0f), 6.0f, SOUND_BOUM, 0.10f);
+ CreateCrashSphere(Math::Vector( 9.0f, 4.0f, 1.0f), 6.0f, SOUND_BOUM, 0.10f);
- SetGlobalSphere(D3DVECTOR(0.0f, 0.0f, 0.0f), 10.0f);
+ SetGlobalSphere(Math::Vector(0.0f, 0.0f, 0.0f), 10.0f);
CreateShadowCircle(16.0f, 0.6f*fShadow);
}
@@ -4513,11 +4513,11 @@ bool CObject::CreateTeen(D3DVECTOR pos, float angle, float zoom, float height,
SetAngleY(0, angle);
SetZoom(0, zoom);
- CreateCrashSphere(D3DVECTOR( 17.5f, 1.0f, 17.5f), 3.5f, SOUND_BOUM, 0.10f);
- CreateCrashSphere(D3DVECTOR( 17.5f, 1.0f, -17.5f), 3.5f, SOUND_BOUM, 0.10f);
- CreateCrashSphere(D3DVECTOR(-17.5f, 1.0f, 17.5f), 3.5f, SOUND_BOUM, 0.10f);
- CreateCrashSphere(D3DVECTOR(-17.5f, 1.0f, -17.5f), 3.5f, SOUND_BOUM, 0.10f);
- SetGlobalSphere(D3DVECTOR(0.0f, 0.0f, 0.0f), 26.0f);
+ CreateCrashSphere(Math::Vector( 17.5f, 1.0f, 17.5f), 3.5f, SOUND_BOUM, 0.10f);
+ CreateCrashSphere(Math::Vector( 17.5f, 1.0f, -17.5f), 3.5f, SOUND_BOUM, 0.10f);
+ CreateCrashSphere(Math::Vector(-17.5f, 1.0f, 17.5f), 3.5f, SOUND_BOUM, 0.10f);
+ CreateCrashSphere(Math::Vector(-17.5f, 1.0f, -17.5f), 3.5f, SOUND_BOUM, 0.10f);
+ SetGlobalSphere(Math::Vector(0.0f, 0.0f, 0.0f), 26.0f);
CreateShadowCircle(35.0f, 0.3f*fShadow);
}
@@ -4532,7 +4532,7 @@ bool CObject::CreateTeen(D3DVECTOR pos, float angle, float zoom, float height,
SetAngleY(0, angle);
SetZoom(0, zoom);
- CreateCrashSphere(D3DVECTOR(0.0f, 2.0f, 0.0f), 4.0f, SOUND_BOUM, 0.10f);
+ CreateCrashSphere(Math::Vector(0.0f, 2.0f, 0.0f), 4.0f, SOUND_BOUM, 0.10f);
CreateShadowCircle(10.0f, 0.3f*fShadow);
}
@@ -4547,7 +4547,7 @@ bool CObject::CreateTeen(D3DVECTOR pos, float angle, float zoom, float height,
SetAngleY(0, angle);
SetZoom(0, zoom);
- CreateCrashSphere(D3DVECTOR(0.0f, 2.0f, 0.0f), 4.0f, SOUND_BOUM, 0.10f);
+ CreateCrashSphere(Math::Vector(0.0f, 2.0f, 0.0f), 4.0f, SOUND_BOUM, 0.10f);
CreateShadowCircle(3.0f, 1.0f*fShadow);
}
@@ -4562,11 +4562,11 @@ bool CObject::CreateTeen(D3DVECTOR pos, float angle, float zoom, float height,
SetAngleY(0, angle);
SetZoom(0, zoom);
- CreateCrashSphere(D3DVECTOR(-40.0f, 5.0f, 0.0f), 10.0f, SOUND_BOUM, 0.10f);
- CreateCrashSphere(D3DVECTOR(-20.0f, 5.0f, 0.0f), 10.0f, SOUND_BOUM, 0.10f);
- CreateCrashSphere(D3DVECTOR( 0.0f, 5.0f, 0.0f), 10.0f, SOUND_BOUM, 0.10f);
- CreateCrashSphere(D3DVECTOR( 20.0f, 5.0f, 0.0f), 10.0f, SOUND_BOUM, 0.10f);
- CreateCrashSphere(D3DVECTOR( 40.0f, 5.0f, 0.0f), 10.0f, SOUND_BOUM, 0.10f);
+ CreateCrashSphere(Math::Vector(-40.0f, 5.0f, 0.0f), 10.0f, SOUND_BOUM, 0.10f);
+ CreateCrashSphere(Math::Vector(-20.0f, 5.0f, 0.0f), 10.0f, SOUND_BOUM, 0.10f);
+ CreateCrashSphere(Math::Vector( 0.0f, 5.0f, 0.0f), 10.0f, SOUND_BOUM, 0.10f);
+ CreateCrashSphere(Math::Vector( 20.0f, 5.0f, 0.0f), 10.0f, SOUND_BOUM, 0.10f);
+ CreateCrashSphere(Math::Vector( 40.0f, 5.0f, 0.0f), 10.0f, SOUND_BOUM, 0.10f);
CreateShadowCircle(40.0f, 0.8f*fShadow, D3DSHADOWWORM);
}
@@ -4613,7 +4613,7 @@ bool CObject::CreateTeen(D3DVECTOR pos, float angle, float zoom, float height,
SetObjectParent(1, 0);
pModFile->ReadModel("objects\\teen38b.mod"); // engine
pModFile->CreateEngineObject(rank);
- SetPosition(1, D3DVECTOR(0.0f, 30.0f, 0.0f));
+ SetPosition(1, Math::Vector(0.0f, 30.0f, 0.0f));
rank = m_engine->CreateObject();
m_engine->SetObjectType(rank, TYPEDESCENDANT);
@@ -4621,10 +4621,10 @@ bool CObject::CreateTeen(D3DVECTOR pos, float angle, float zoom, float height,
SetObjectParent(2, 1);
pModFile->ReadModel("objects\\teen38c.mod"); // propeller
pModFile->CreateEngineObject(rank);
- SetPosition(2, D3DVECTOR(0.0f, 0.0f, 0.0f));
+ SetPosition(2, Math::Vector(0.0f, 0.0f, 0.0f));
- CreateCrashSphere(D3DVECTOR(0.0f, 2.0f, 0.0f), 10.0f, SOUND_BOUM, 0.10f);
- SetGlobalSphere(D3DVECTOR(0.0f, 2.0f, 0.0f), 10.0f);
+ CreateCrashSphere(Math::Vector(0.0f, 2.0f, 0.0f), 10.0f, SOUND_BOUM, 0.10f);
+ SetGlobalSphere(Math::Vector(0.0f, 2.0f, 0.0f), 10.0f);
CreateShadowCircle(15.0f, 0.5f*fShadow);
}
@@ -4639,8 +4639,8 @@ bool CObject::CreateTeen(D3DVECTOR pos, float angle, float zoom, float height,
SetAngleY(0, angle);
SetZoom(0, zoom);
- CreateCrashSphere(D3DVECTOR(0.0f, 2.0f, 0.0f), 8.5f, SOUND_BOUM, 0.10f);
- SetGlobalSphere(D3DVECTOR(0.0f, 2.0f, 0.0f), 8.5f);
+ CreateCrashSphere(Math::Vector(0.0f, 2.0f, 0.0f), 8.5f, SOUND_BOUM, 0.10f);
+ SetGlobalSphere(Math::Vector(0.0f, 2.0f, 0.0f), 8.5f);
CreateShadowCircle(10.0f, 1.0f*fShadow);
}
@@ -4655,8 +4655,8 @@ bool CObject::CreateTeen(D3DVECTOR pos, float angle, float zoom, float height,
SetAngleY(0, angle);
SetZoom(0, zoom);
- CreateCrashSphere(D3DVECTOR(0.0f, 5.0f, 0.0f), 11.0f, SOUND_BOUM, 0.10f);
- SetGlobalSphere(D3DVECTOR(0.0f, 14.0f, 0.0f), 15.0f);
+ CreateCrashSphere(Math::Vector(0.0f, 5.0f, 0.0f), 11.0f, SOUND_BOUM, 0.10f);
+ SetGlobalSphere(Math::Vector(0.0f, 14.0f, 0.0f), 15.0f);
CreateShadowCircle(15.0f, 0.7f*fShadow);
}
@@ -4683,7 +4683,7 @@ bool CObject::CreateTeen(D3DVECTOR pos, float angle, float zoom, float height,
SetAngleY(0, angle);
SetZoom(0, zoom);
- CreateCrashSphere(D3DVECTOR(0.0f, 2.0f, 0.0f), 2.0f, SOUND_BOUM, 0.10f);
+ CreateCrashSphere(Math::Vector(0.0f, 2.0f, 0.0f), 2.0f, SOUND_BOUM, 0.10f);
CreateShadowCircle(15.0f, 0.4f*fShadow);
}
@@ -4698,7 +4698,7 @@ bool CObject::CreateTeen(D3DVECTOR pos, float angle, float zoom, float height,
SetAngleY(0, angle);
SetZoom(0, zoom);
- CreateCrashSphere(D3DVECTOR(0.0f, 2.0f, 0.0f), 2.0f, SOUND_BOUM, 0.10f);
+ CreateCrashSphere(Math::Vector(0.0f, 2.0f, 0.0f), 2.0f, SOUND_BOUM, 0.10f);
CreateShadowCircle(15.0f, 0.4f*fShadow);
}
@@ -4713,8 +4713,8 @@ bool CObject::CreateTeen(D3DVECTOR pos, float angle, float zoom, float height,
SetAngleY(0, angle);
SetZoom(0, zoom);
- CreateCrashSphere(D3DVECTOR(0.0f, 10.0f, 0.0f), 55.0f, SOUND_BOUM, 0.10f);
- SetGlobalSphere(D3DVECTOR(0.0f, 10.0f, 0.0f), 55.0f);
+ CreateCrashSphere(Math::Vector(0.0f, 10.0f, 0.0f), 55.0f, SOUND_BOUM, 0.10f);
+ SetGlobalSphere(Math::Vector(0.0f, 10.0f, 0.0f), 55.0f);
CreateShadowCircle(55.0f, 1.0f*fShadow);
}
@@ -4739,7 +4739,7 @@ bool CObject::CreateTeen(D3DVECTOR pos, float angle, float zoom, float height,
// Creates a crystal placed on the ground.
-bool CObject::CreateQuartz(D3DVECTOR pos, float angle, float height,
+bool CObject::CreateQuartz(Math::Vector pos, float angle, float height,
ObjectType type)
{
CModFile* pModFile;
@@ -4762,8 +4762,8 @@ bool CObject::CreateQuartz(D3DVECTOR pos, float angle, float height,
SetPosition(0, pos);
SetAngleY(0, angle);
- CreateCrashSphere(D3DVECTOR(0.0f, 2.0f, 0.0f), 3.5f, SOUND_BOUMm, 0.45f);
- SetGlobalSphere(D3DVECTOR(0.0f, 2.0f, 0.0f), 3.5f);
+ CreateCrashSphere(Math::Vector(0.0f, 2.0f, 0.0f), 3.5f, SOUND_BOUMm, 0.45f);
+ SetGlobalSphere(Math::Vector(0.0f, 2.0f, 0.0f), 3.5f);
CreateShadowCircle(4.0f, 0.5f);
}
@@ -4777,8 +4777,8 @@ bool CObject::CreateQuartz(D3DVECTOR pos, float angle, float height,
SetPosition(0, pos);
SetAngleY(0, angle);
- CreateCrashSphere(D3DVECTOR(0.0f, 4.0f, 0.0f), 5.0f, SOUND_BOUMm, 0.45f);
- SetGlobalSphere(D3DVECTOR(0.0f, 4.0f, 0.0f), 5.0f);
+ CreateCrashSphere(Math::Vector(0.0f, 4.0f, 0.0f), 5.0f, SOUND_BOUMm, 0.45f);
+ SetGlobalSphere(Math::Vector(0.0f, 4.0f, 0.0f), 5.0f);
CreateShadowCircle(5.0f, 0.5f);
}
@@ -4792,8 +4792,8 @@ bool CObject::CreateQuartz(D3DVECTOR pos, float angle, float height,
SetPosition(0, pos);
SetAngleY(0, angle);
- CreateCrashSphere(D3DVECTOR(0.0f, 6.0f, 0.0f), 6.0f, SOUND_BOUMm, 0.45f);
- SetGlobalSphere(D3DVECTOR(0.0f, 6.0f, 0.0f), 6.0f);
+ CreateCrashSphere(Math::Vector(0.0f, 6.0f, 0.0f), 6.0f, SOUND_BOUMm, 0.45f);
+ SetGlobalSphere(Math::Vector(0.0f, 6.0f, 0.0f), 6.0f);
CreateShadowCircle(6.0f, 0.5f);
}
@@ -4807,8 +4807,8 @@ bool CObject::CreateQuartz(D3DVECTOR pos, float angle, float height,
SetPosition(0, pos);
SetAngleY(0, angle);
- CreateCrashSphere(D3DVECTOR(0.0f, 10.0f, 0.0f), 10.0f, SOUND_BOUMm, 0.45f);
- SetGlobalSphere(D3DVECTOR(0.0f, 10.0f, 0.0f), 10.0f);
+ CreateCrashSphere(Math::Vector(0.0f, 10.0f, 0.0f), 10.0f, SOUND_BOUMm, 0.45f);
+ SetGlobalSphere(Math::Vector(0.0f, 10.0f, 0.0f), 10.0f);
CreateShadowCircle(10.0f, 0.5f);
}
@@ -4852,7 +4852,7 @@ bool CObject::CreateQuartz(D3DVECTOR pos, float angle, float height,
// Creates a root placed on the ground.
-bool CObject::CreateRoot(D3DVECTOR pos, float angle, float height,
+bool CObject::CreateRoot(Math::Vector pos, float angle, float height,
ObjectType type)
{
CModFile* pModFile;
@@ -4875,14 +4875,14 @@ bool CObject::CreateRoot(D3DVECTOR pos, float angle, float height,
SetAngleY(0, angle);
SetZoom(0, 2.0f);
- CreateCrashSphere(D3DVECTOR(-5.0f, 1.0f, 0.0f), 2.0f, SOUND_BOUMv, 0.15f);
- CreateCrashSphere(D3DVECTOR( 4.0f, 1.0f, 2.0f), 2.0f, SOUND_BOUMv, 0.15f);
- CreateCrashSphere(D3DVECTOR( 4.0f, 1.0f, -3.0f), 2.0f, SOUND_BOUMv, 0.15f);
- CreateCrashSphere(D3DVECTOR( 2.0f, 5.0f, -1.0f), 1.5f, SOUND_BOUMv, 0.15f);
- CreateCrashSphere(D3DVECTOR(-4.0f, 5.0f, -1.0f), 1.0f, SOUND_BOUMv, 0.15f);
- CreateCrashSphere(D3DVECTOR(-2.0f, 8.0f, -0.5f), 1.0f, SOUND_BOUMv, 0.15f);
- CreateCrashSphere(D3DVECTOR( 0.0f, 10.0f, -0.5f), 1.0f, SOUND_BOUMv, 0.15f);
-//? SetGlobalSphere(D3DVECTOR(0.0f, 6.0f, 0.0f), 11.0f);
+ CreateCrashSphere(Math::Vector(-5.0f, 1.0f, 0.0f), 2.0f, SOUND_BOUMv, 0.15f);
+ CreateCrashSphere(Math::Vector( 4.0f, 1.0f, 2.0f), 2.0f, SOUND_BOUMv, 0.15f);
+ CreateCrashSphere(Math::Vector( 4.0f, 1.0f, -3.0f), 2.0f, SOUND_BOUMv, 0.15f);
+ CreateCrashSphere(Math::Vector( 2.0f, 5.0f, -1.0f), 1.5f, SOUND_BOUMv, 0.15f);
+ CreateCrashSphere(Math::Vector(-4.0f, 5.0f, -1.0f), 1.0f, SOUND_BOUMv, 0.15f);
+ CreateCrashSphere(Math::Vector(-2.0f, 8.0f, -0.5f), 1.0f, SOUND_BOUMv, 0.15f);
+ CreateCrashSphere(Math::Vector( 0.0f, 10.0f, -0.5f), 1.0f, SOUND_BOUMv, 0.15f);
+//? SetGlobalSphere(Math::Vector(0.0f, 6.0f, 0.0f), 11.0f);
CreateShadowCircle(16.0f, 0.5f);
}
@@ -4897,14 +4897,14 @@ bool CObject::CreateRoot(D3DVECTOR pos, float angle, float height,
SetAngleY(0, angle);
SetZoom(0, 2.0f);
- CreateCrashSphere(D3DVECTOR(-4.0f, 1.0f, 1.0f), 2.0f, SOUND_BOUMv, 0.15f);
- CreateCrashSphere(D3DVECTOR( 0.0f, 1.0f, 2.0f), 1.5f, SOUND_BOUMv, 0.15f);
- CreateCrashSphere(D3DVECTOR( 3.0f, 1.0f, -2.0f), 2.0f, SOUND_BOUMv, 0.15f);
- CreateCrashSphere(D3DVECTOR(-2.0f, 5.0f, 1.0f), 1.0f, SOUND_BOUMv, 0.15f);
- CreateCrashSphere(D3DVECTOR( 2.0f, 5.0f, 0.0f), 1.0f, SOUND_BOUMv, 0.15f);
- CreateCrashSphere(D3DVECTOR( 0.0f, 8.0f, 1.0f), 1.0f, SOUND_BOUMv, 0.15f);
- CreateCrashSphere(D3DVECTOR( 0.0f, 12.0f, 1.0f), 1.0f, SOUND_BOUMv, 0.15f);
-//? SetGlobalSphere(D3DVECTOR(0.0f, 6.0f, 0.0f), 12.0f);
+ CreateCrashSphere(Math::Vector(-4.0f, 1.0f, 1.0f), 2.0f, SOUND_BOUMv, 0.15f);
+ CreateCrashSphere(Math::Vector( 0.0f, 1.0f, 2.0f), 1.5f, SOUND_BOUMv, 0.15f);
+ CreateCrashSphere(Math::Vector( 3.0f, 1.0f, -2.0f), 2.0f, SOUND_BOUMv, 0.15f);
+ CreateCrashSphere(Math::Vector(-2.0f, 5.0f, 1.0f), 1.0f, SOUND_BOUMv, 0.15f);
+ CreateCrashSphere(Math::Vector( 2.0f, 5.0f, 0.0f), 1.0f, SOUND_BOUMv, 0.15f);
+ CreateCrashSphere(Math::Vector( 0.0f, 8.0f, 1.0f), 1.0f, SOUND_BOUMv, 0.15f);
+ CreateCrashSphere(Math::Vector( 0.0f, 12.0f, 1.0f), 1.0f, SOUND_BOUMv, 0.15f);
+//? SetGlobalSphere(Math::Vector(0.0f, 6.0f, 0.0f), 12.0f);
CreateShadowCircle(16.0f, 0.5f);
}
@@ -4919,13 +4919,13 @@ bool CObject::CreateRoot(D3DVECTOR pos, float angle, float height,
SetAngleY(0, angle);
SetZoom(0, 2.0f);
- CreateCrashSphere(D3DVECTOR(-3.0f, 1.0f, 0.5f), 2.0f, SOUND_BOUMv, 0.15f);
- CreateCrashSphere(D3DVECTOR( 3.0f, 1.0f, -1.0f), 2.0f, SOUND_BOUMv, 0.15f);
- CreateCrashSphere(D3DVECTOR(-1.0f, 4.5f, 0.0f), 1.0f, SOUND_BOUMv, 0.15f);
- CreateCrashSphere(D3DVECTOR( 3.0f, 7.0f, 1.0f), 1.0f, SOUND_BOUMv, 0.15f);
- CreateCrashSphere(D3DVECTOR( 0.0f, 7.0f, -1.0f), 1.0f, SOUND_BOUMv, 0.15f);
- CreateCrashSphere(D3DVECTOR( 4.0f, 11.0f, 1.0f), 1.0f, SOUND_BOUMv, 0.15f);
-//? SetGlobalSphere(D3DVECTOR(0.0f, 6.0f, 0.0f), 10.0f);
+ CreateCrashSphere(Math::Vector(-3.0f, 1.0f, 0.5f), 2.0f, SOUND_BOUMv, 0.15f);
+ CreateCrashSphere(Math::Vector( 3.0f, 1.0f, -1.0f), 2.0f, SOUND_BOUMv, 0.15f);
+ CreateCrashSphere(Math::Vector(-1.0f, 4.5f, 0.0f), 1.0f, SOUND_BOUMv, 0.15f);
+ CreateCrashSphere(Math::Vector( 3.0f, 7.0f, 1.0f), 1.0f, SOUND_BOUMv, 0.15f);
+ CreateCrashSphere(Math::Vector( 0.0f, 7.0f, -1.0f), 1.0f, SOUND_BOUMv, 0.15f);
+ CreateCrashSphere(Math::Vector( 4.0f, 11.0f, 1.0f), 1.0f, SOUND_BOUMv, 0.15f);
+//? SetGlobalSphere(Math::Vector(0.0f, 6.0f, 0.0f), 10.0f);
CreateShadowCircle(16.0f, 0.5f);
}
@@ -4940,15 +4940,15 @@ bool CObject::CreateRoot(D3DVECTOR pos, float angle, float height,
SetAngleY(0, angle);
SetZoom(0, 2.0f);
- CreateCrashSphere(D3DVECTOR(-4.0f, 1.0f, 1.0f), 3.0f, SOUND_BOUMv, 0.15f);
- CreateCrashSphere(D3DVECTOR( 4.0f, 1.0f, -3.0f), 3.0f, SOUND_BOUMv, 0.15f);
- CreateCrashSphere(D3DVECTOR( 6.0f, 1.0f, 4.0f), 3.0f, SOUND_BOUMv, 0.15f);
- CreateCrashSphere(D3DVECTOR(-2.5f, 7.0f, 2.0f), 2.0f, SOUND_BOUMv, 0.15f);
- CreateCrashSphere(D3DVECTOR( 4.0f, 7.0f, 2.0f), 2.0f, SOUND_BOUMv, 0.15f);
- CreateCrashSphere(D3DVECTOR( 3.0f, 6.0f, -1.0f), 1.0f, SOUND_BOUMv, 0.15f);
- CreateCrashSphere(D3DVECTOR( 0.0f, 12.0f, 0.0f), 2.0f, SOUND_BOUMv, 0.15f);
- CreateCrashSphere(D3DVECTOR( 1.0f, 16.0f, 0.0f), 1.0f, SOUND_BOUMv, 0.15f);
-//? SetGlobalSphere(D3DVECTOR(0.0f, 10.0f, 0.0f), 14.0f);
+ CreateCrashSphere(Math::Vector(-4.0f, 1.0f, 1.0f), 3.0f, SOUND_BOUMv, 0.15f);
+ CreateCrashSphere(Math::Vector( 4.0f, 1.0f, -3.0f), 3.0f, SOUND_BOUMv, 0.15f);
+ CreateCrashSphere(Math::Vector( 6.0f, 1.0f, 4.0f), 3.0f, SOUND_BOUMv, 0.15f);
+ CreateCrashSphere(Math::Vector(-2.5f, 7.0f, 2.0f), 2.0f, SOUND_BOUMv, 0.15f);
+ CreateCrashSphere(Math::Vector( 4.0f, 7.0f, 2.0f), 2.0f, SOUND_BOUMv, 0.15f);
+ CreateCrashSphere(Math::Vector( 3.0f, 6.0f, -1.0f), 1.0f, SOUND_BOUMv, 0.15f);
+ CreateCrashSphere(Math::Vector( 0.0f, 12.0f, 0.0f), 2.0f, SOUND_BOUMv, 0.15f);
+ CreateCrashSphere(Math::Vector( 1.0f, 16.0f, 0.0f), 1.0f, SOUND_BOUMv, 0.15f);
+//? SetGlobalSphere(Math::Vector(0.0f, 10.0f, 0.0f), 14.0f);
CreateShadowCircle(22.0f, 0.5f);
}
@@ -4963,17 +4963,17 @@ bool CObject::CreateRoot(D3DVECTOR pos, float angle, float height,
SetAngleY(0, angle);
SetZoom(0, 2.0f);
- CreateCrashSphere(D3DVECTOR( -7.0f, 2.0f, 3.0f), 4.0f, SOUND_BOUMv, 0.15f);
- CreateCrashSphere(D3DVECTOR( 5.0f, 2.0f, -6.0f), 4.0f, SOUND_BOUMv, 0.15f);
- CreateCrashSphere(D3DVECTOR( 6.0f, 2.0f, 6.0f), 3.0f, SOUND_BOUMv, 0.15f);
- CreateCrashSphere(D3DVECTOR(-11.0f, 1.0f, -2.0f), 2.0f, SOUND_BOUMv, 0.15f);
- CreateCrashSphere(D3DVECTOR( 1.0f, 1.0f, -7.0f), 2.0f, SOUND_BOUMv, 0.15f);
- CreateCrashSphere(D3DVECTOR( -4.0f, 10.0f, 3.0f), 2.0f, SOUND_BOUMv, 0.15f);
- CreateCrashSphere(D3DVECTOR( 1.0f, 11.0f, 7.0f), 2.0f, SOUND_BOUMv, 0.15f);
- CreateCrashSphere(D3DVECTOR( 3.0f, 11.0f, -3.0f), 2.0f, SOUND_BOUMv, 0.15f);
- CreateCrashSphere(D3DVECTOR( -3.0f, 17.0f, 1.0f), 2.0f, SOUND_BOUMv, 0.15f);
- CreateCrashSphere(D3DVECTOR( -3.0f, 23.0f, -1.0f), 2.0f, SOUND_BOUMv, 0.15f);
-//? SetGlobalSphere(D3DVECTOR(0.0f, 12.0f, 0.0f), 20.0f);
+ CreateCrashSphere(Math::Vector( -7.0f, 2.0f, 3.0f), 4.0f, SOUND_BOUMv, 0.15f);
+ CreateCrashSphere(Math::Vector( 5.0f, 2.0f, -6.0f), 4.0f, SOUND_BOUMv, 0.15f);
+ CreateCrashSphere(Math::Vector( 6.0f, 2.0f, 6.0f), 3.0f, SOUND_BOUMv, 0.15f);
+ CreateCrashSphere(Math::Vector(-11.0f, 1.0f, -2.0f), 2.0f, SOUND_BOUMv, 0.15f);
+ CreateCrashSphere(Math::Vector( 1.0f, 1.0f, -7.0f), 2.0f, SOUND_BOUMv, 0.15f);
+ CreateCrashSphere(Math::Vector( -4.0f, 10.0f, 3.0f), 2.0f, SOUND_BOUMv, 0.15f);
+ CreateCrashSphere(Math::Vector( 1.0f, 11.0f, 7.0f), 2.0f, SOUND_BOUMv, 0.15f);
+ CreateCrashSphere(Math::Vector( 3.0f, 11.0f, -3.0f), 2.0f, SOUND_BOUMv, 0.15f);
+ CreateCrashSphere(Math::Vector( -3.0f, 17.0f, 1.0f), 2.0f, SOUND_BOUMv, 0.15f);
+ CreateCrashSphere(Math::Vector( -3.0f, 23.0f, -1.0f), 2.0f, SOUND_BOUMv, 0.15f);
+//? SetGlobalSphere(Math::Vector(0.0f, 12.0f, 0.0f), 20.0f);
CreateShadowCircle(30.0f, 0.5f);
}
@@ -4994,21 +4994,21 @@ bool CObject::CreateRoot(D3DVECTOR pos, float angle, float height,
SetObjectParent(1, 0);
pModFile->ReadModel("objects\\root5.mod");
pModFile->CreateEngineObject(rank);
- SetPosition(1, D3DVECTOR(-5.0f, 28.0f, -4.0f));
+ SetPosition(1, Math::Vector(-5.0f, 28.0f, -4.0f));
SetAngleX(1, -30.0f*Math::PI/180.0f);
SetAngleZ(1, 20.0f*Math::PI/180.0f);
- CreateCrashSphere(D3DVECTOR( -7.0f, 2.0f, 3.0f), 4.0f, SOUND_BOUMv, 0.15f);
- CreateCrashSphere(D3DVECTOR( 5.0f, 2.0f, -6.0f), 4.0f, SOUND_BOUMv, 0.15f);
- CreateCrashSphere(D3DVECTOR( 6.0f, 2.0f, 6.0f), 3.0f, SOUND_BOUMv, 0.15f);
- CreateCrashSphere(D3DVECTOR(-11.0f, 1.0f, -2.0f), 2.0f, SOUND_BOUMv, 0.15f);
- CreateCrashSphere(D3DVECTOR( 1.0f, 1.0f, -7.0f), 2.0f, SOUND_BOUMv, 0.15f);
- CreateCrashSphere(D3DVECTOR( -4.0f, 10.0f, 3.0f), 2.0f, SOUND_BOUMv, 0.15f);
- CreateCrashSphere(D3DVECTOR( 1.0f, 11.0f, 7.0f), 2.0f, SOUND_BOUMv, 0.15f);
- CreateCrashSphere(D3DVECTOR( 3.0f, 11.0f, -3.0f), 2.0f, SOUND_BOUMv, 0.15f);
- CreateCrashSphere(D3DVECTOR( -3.0f, 17.0f, 1.0f), 2.0f, SOUND_BOUMv, 0.15f);
- CreateCrashSphere(D3DVECTOR( -3.0f, 23.0f, -1.0f), 2.0f, SOUND_BOUMv, 0.15f);
-//? SetGlobalSphere(D3DVECTOR(0.0f, 12.0f, 0.0f), 20.0f);
+ CreateCrashSphere(Math::Vector( -7.0f, 2.0f, 3.0f), 4.0f, SOUND_BOUMv, 0.15f);
+ CreateCrashSphere(Math::Vector( 5.0f, 2.0f, -6.0f), 4.0f, SOUND_BOUMv, 0.15f);
+ CreateCrashSphere(Math::Vector( 6.0f, 2.0f, 6.0f), 3.0f, SOUND_BOUMv, 0.15f);
+ CreateCrashSphere(Math::Vector(-11.0f, 1.0f, -2.0f), 2.0f, SOUND_BOUMv, 0.15f);
+ CreateCrashSphere(Math::Vector( 1.0f, 1.0f, -7.0f), 2.0f, SOUND_BOUMv, 0.15f);
+ CreateCrashSphere(Math::Vector( -4.0f, 10.0f, 3.0f), 2.0f, SOUND_BOUMv, 0.15f);
+ CreateCrashSphere(Math::Vector( 1.0f, 11.0f, 7.0f), 2.0f, SOUND_BOUMv, 0.15f);
+ CreateCrashSphere(Math::Vector( 3.0f, 11.0f, -3.0f), 2.0f, SOUND_BOUMv, 0.15f);
+ CreateCrashSphere(Math::Vector( -3.0f, 17.0f, 1.0f), 2.0f, SOUND_BOUMv, 0.15f);
+ CreateCrashSphere(Math::Vector( -3.0f, 23.0f, -1.0f), 2.0f, SOUND_BOUMv, 0.15f);
+//? SetGlobalSphere(Math::Vector(0.0f, 12.0f, 0.0f), 20.0f);
CreateShadowCircle(30.0f, 0.5f);
}
@@ -5029,7 +5029,7 @@ bool CObject::CreateRoot(D3DVECTOR pos, float angle, float height,
// Creates a small home.
-bool CObject::CreateHome(D3DVECTOR pos, float angle, float height,
+bool CObject::CreateHome(Math::Vector pos, float angle, float height,
ObjectType type)
{
CModFile* pModFile;
@@ -5052,8 +5052,8 @@ bool CObject::CreateHome(D3DVECTOR pos, float angle, float height,
SetAngleY(0, angle);
SetZoom(0, 1.3f);
- CreateCrashSphere(D3DVECTOR(0.0f, 5.0f, 0.0f), 10.0f, SOUND_BOUMs, 0.25f);
-//? SetGlobalSphere(D3DVECTOR(0.0f, 6.0f, 0.0f), 11.0f);
+ CreateCrashSphere(Math::Vector(0.0f, 5.0f, 0.0f), 10.0f, SOUND_BOUMs, 0.25f);
+//? SetGlobalSphere(Math::Vector(0.0f, 6.0f, 0.0f), 11.0f);
CreateShadowCircle(16.0f, 0.5f);
}
@@ -5073,7 +5073,7 @@ bool CObject::CreateHome(D3DVECTOR pos, float angle, float height,
// Creates ruin placed on the ground.
-bool CObject::CreateRuin(D3DVECTOR pos, float angle, float height,
+bool CObject::CreateRuin(Math::Vector pos, float angle, float height,
ObjectType type)
{
CModFile* pModFile;
@@ -5122,7 +5122,7 @@ bool CObject::CreateRuin(D3DVECTOR pos, float angle, float height,
pModFile->ReadModel("objects\\ruin1w.mod");
pModFile->CreateEngineObject(rank);
- SetPosition(6, D3DVECTOR(-3.0f, 1.8f, -4.0f));
+ SetPosition(6, Math::Vector(-3.0f, 1.8f, -4.0f));
SetAngleX(6, -Math::PI/2.0f);
// Creates the left-back wheel.
@@ -5134,7 +5134,7 @@ bool CObject::CreateRuin(D3DVECTOR pos, float angle, float height,
pModFile->ReadModel("objects\\ruin1w.mod");
pModFile->CreateEngineObject(rank);
- SetPosition(7, D3DVECTOR(-3.0f, 1.0f, 3.0f));
+ SetPosition(7, Math::Vector(-3.0f, 1.0f, 3.0f));
SetAngleY(7, Math::PI-0.3f);
SetAngleX(7, -0.3f);
@@ -5147,7 +5147,7 @@ bool CObject::CreateRuin(D3DVECTOR pos, float angle, float height,
pModFile->ReadModel("objects\\ruin1w.mod");
pModFile->CreateEngineObject(rank);
- SetPosition(8, D3DVECTOR(2.0f, 1.6f, -3.0f));
+ SetPosition(8, Math::Vector(2.0f, 1.6f, -3.0f));
SetAngleY(8, 0.3f);
// Creates the left-front wheel.
@@ -5159,12 +5159,12 @@ bool CObject::CreateRuin(D3DVECTOR pos, float angle, float height,
pModFile->ReadModel("objects\\ruin1w.mod");
pModFile->CreateEngineObject(rank);
- SetPosition(9, D3DVECTOR(2.0f, 1.0f, 3.0f));
+ SetPosition(9, Math::Vector(2.0f, 1.0f, 3.0f));
SetAngleY(9, Math::PI-0.2f);
SetAngleX(9, 0.2f);
- CreateCrashSphere(D3DVECTOR(0.0f, 2.8f, 0.0f), 3.0f, SOUND_BOUMm, 0.45f);
-//? SetGlobalSphere(D3DVECTOR(0.0f, 5.0f, 0.0f), 10.0f);
+ CreateCrashSphere(Math::Vector(0.0f, 2.8f, 0.0f), 3.0f, SOUND_BOUMm, 0.45f);
+//? SetGlobalSphere(Math::Vector(0.0f, 5.0f, 0.0f), 10.0f);
CreateShadowCircle(4.0f, 1.0f);
}
@@ -5180,7 +5180,7 @@ bool CObject::CreateRuin(D3DVECTOR pos, float angle, float height,
pModFile->ReadModel("objects\\ruin1w.mod");
pModFile->CreateEngineObject(rank);
- SetPosition(7, D3DVECTOR(-3.0f, 1.0f, 3.0f));
+ SetPosition(7, Math::Vector(-3.0f, 1.0f, 3.0f));
SetAngleY(7, Math::PI+0.3f);
SetAngleX(7, 0.4f);
@@ -5193,12 +5193,12 @@ bool CObject::CreateRuin(D3DVECTOR pos, float angle, float height,
pModFile->ReadModel("objects\\ruin1w.mod");
pModFile->CreateEngineObject(rank);
- SetPosition(9, D3DVECTOR(2.0f, 1.0f, 3.0f));
+ SetPosition(9, Math::Vector(2.0f, 1.0f, 3.0f));
SetAngleY(9, Math::PI+0.3f);
SetAngleX(9, -0.3f);
- CreateCrashSphere(D3DVECTOR(0.0f, 2.8f, 0.0f), 3.0f, SOUND_BOUMm, 0.45f);
-//? SetGlobalSphere(D3DVECTOR(0.0f, 5.0f, 0.0f), 10.0f);
+ CreateCrashSphere(Math::Vector(0.0f, 2.8f, 0.0f), 3.0f, SOUND_BOUMm, 0.45f);
+//? SetGlobalSphere(Math::Vector(0.0f, 5.0f, 0.0f), 10.0f);
CreateShadowCircle(4.0f, 1.0f);
}
@@ -5214,77 +5214,77 @@ bool CObject::CreateRuin(D3DVECTOR pos, float angle, float height,
pModFile->ReadModel("objects\\ruin2c.mod");
pModFile->CreateEngineObject(rank);
- SetPosition(1, D3DVECTOR(3.0f, 5.0f, -2.5f));
+ SetPosition(1, Math::Vector(3.0f, 5.0f, -2.5f));
SetAngleX(1, -Math::PI*0.85f);
SetAngleY(1, -0.4f);
SetAngleZ(1, -0.1f);
- CreateCrashSphere(D3DVECTOR(1.0f, 2.8f, -1.0f), 5.0f, SOUND_BOUMm, 0.45f);
-//? SetGlobalSphere(D3DVECTOR(1.0f, 5.0f, -1.0f), 10.0f);
+ CreateCrashSphere(Math::Vector(1.0f, 2.8f, -1.0f), 5.0f, SOUND_BOUMm, 0.45f);
+//? SetGlobalSphere(Math::Vector(1.0f, 5.0f, -1.0f), 10.0f);
CreateShadowCircle(5.0f, 1.0f);
}
if ( type == OBJECT_RUINmobilet2 ) // vehicle have caterpillars?
{
- CreateCrashSphere(D3DVECTOR(0.0f, 2.8f, 0.0f), 5.0f, SOUND_BOUMm, 0.45f);
-//? SetGlobalSphere(D3DVECTOR(0.0f, 5.0f, 0.0f), 10.0f);
+ CreateCrashSphere(Math::Vector(0.0f, 2.8f, 0.0f), 5.0f, SOUND_BOUMm, 0.45f);
+//? SetGlobalSphere(Math::Vector(0.0f, 5.0f, 0.0f), 10.0f);
CreateShadowCircle(5.0f, 1.0f);
}
if ( type == OBJECT_RUINmobiler1 ) // vehicle skating?
{
- CreateCrashSphere(D3DVECTOR(1.0f, 2.8f, -1.0f), 5.0f, SOUND_BOUMm, 0.45f);
- SetGlobalSphere(D3DVECTOR(1.0f, 5.0f, -1.0f), 10.0f);
+ CreateCrashSphere(Math::Vector(1.0f, 2.8f, -1.0f), 5.0f, SOUND_BOUMm, 0.45f);
+ SetGlobalSphere(Math::Vector(1.0f, 5.0f, -1.0f), 10.0f);
CreateShadowCircle(5.0f, 1.0f);
}
if ( type == OBJECT_RUINmobiler2 ) // vehicle skating?
{
- CreateCrashSphere(D3DVECTOR(0.0f, 1.0f, 0.0f), 5.0f, SOUND_BOUMm, 0.45f);
- SetGlobalSphere(D3DVECTOR(0.0f, 5.0f, 0.0f), 10.0f);
+ CreateCrashSphere(Math::Vector(0.0f, 1.0f, 0.0f), 5.0f, SOUND_BOUMm, 0.45f);
+ SetGlobalSphere(Math::Vector(0.0f, 5.0f, 0.0f), 10.0f);
CreateShadowCircle(6.0f, 1.0f);
}
if ( type == OBJECT_RUINfactory ) // factory ?
{
- CreateCrashSphere(D3DVECTOR( 9.0f, 1.0f, -11.0f), 5.0f, SOUND_BOUMm, 0.45f);
- CreateCrashSphere(D3DVECTOR( 0.0f, 2.0f, -11.0f), 4.0f, SOUND_BOUMm, 0.45f);
- CreateCrashSphere(D3DVECTOR(-10.0f, 4.0f, -10.0f), 5.0f, SOUND_BOUMm, 0.45f);
- CreateCrashSphere(D3DVECTOR(-12.0f, 11.0f, -4.0f), 3.0f, SOUND_BOUMm, 0.45f);
- CreateCrashSphere(D3DVECTOR(-10.0f, 4.0f, -2.0f), 3.0f, SOUND_BOUMm, 0.45f);
- CreateCrashSphere(D3DVECTOR(-11.0f, 8.0f, 3.0f), 3.0f, SOUND_BOUMm, 0.45f);
- CreateCrashSphere(D3DVECTOR(-11.0f, 2.0f, 4.0f), 3.0f, SOUND_BOUMm, 0.45f);
- CreateCrashSphere(D3DVECTOR(-11.0f, 2.0f, 10.0f), 3.0f, SOUND_BOUMm, 0.45f);
- CreateCrashSphere(D3DVECTOR( -4.0f, 0.0f, 10.0f), 3.0f, SOUND_BOUMm, 0.45f);
- SetGlobalSphere(D3DVECTOR(0.0f, 0.0f, 0.0f), 18.0f);
+ CreateCrashSphere(Math::Vector( 9.0f, 1.0f, -11.0f), 5.0f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector( 0.0f, 2.0f, -11.0f), 4.0f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector(-10.0f, 4.0f, -10.0f), 5.0f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector(-12.0f, 11.0f, -4.0f), 3.0f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector(-10.0f, 4.0f, -2.0f), 3.0f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector(-11.0f, 8.0f, 3.0f), 3.0f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector(-11.0f, 2.0f, 4.0f), 3.0f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector(-11.0f, 2.0f, 10.0f), 3.0f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector( -4.0f, 0.0f, 10.0f), 3.0f, SOUND_BOUMm, 0.45f);
+ SetGlobalSphere(Math::Vector(0.0f, 0.0f, 0.0f), 18.0f);
CreateShadowCircle(20.0f, 0.7f);
}
if ( type == OBJECT_RUINdoor ) // converter holder?
{
- CreateCrashSphere(D3DVECTOR(0.0f, 0.0f, 0.0f), 5.0f, SOUND_BOUMm, 0.45f);
-//? SetGlobalSphere(D3DVECTOR(0.0f, 0.0f, 0.0f), 6.0f);
+ CreateCrashSphere(Math::Vector(0.0f, 0.0f, 0.0f), 5.0f, SOUND_BOUMm, 0.45f);
+//? SetGlobalSphere(Math::Vector(0.0f, 0.0f, 0.0f), 6.0f);
CreateShadowCircle(6.0f, 1.0f);
}
if ( type == OBJECT_RUINsupport ) // radar holder?
{
- CreateCrashSphere(D3DVECTOR(0.0f, 0.0f, 0.0f), 3.0f, SOUND_BOUMm, 0.45f);
-//? SetGlobalSphere(D3DVECTOR(0.0f, 0.0f, 0.0f), 4.0f);
+ CreateCrashSphere(Math::Vector(0.0f, 0.0f, 0.0f), 3.0f, SOUND_BOUMm, 0.45f);
+//? SetGlobalSphere(Math::Vector(0.0f, 0.0f, 0.0f), 4.0f);
CreateShadowCircle(3.0f, 1.0f);
}
if ( type == OBJECT_RUINradar ) // radar base?
{
- CreateCrashSphere(D3DVECTOR(0.0f, 0.0f, 0.0f), 5.0f, SOUND_BOUMm, 0.45f);
-//? SetGlobalSphere(D3DVECTOR(0.0f, 0.0f, 0.0f), 6.0f);
+ CreateCrashSphere(Math::Vector(0.0f, 0.0f, 0.0f), 5.0f, SOUND_BOUMm, 0.45f);
+//? SetGlobalSphere(Math::Vector(0.0f, 0.0f, 0.0f), 6.0f);
CreateShadowCircle(6.0f, 1.0f);
}
@@ -5293,48 +5293,48 @@ bool CObject::CreateRuin(D3DVECTOR pos, float angle, float height,
{
m_terrain->AddBuildingLevel(pos, 7.0f, 9.0f, 1.0f, 0.5f);
- CreateCrashSphere(D3DVECTOR(-10.0f, 0.0f, 4.0f), 5.0f, SOUND_BOUMm, 0.45f);
- CreateCrashSphere(D3DVECTOR(-10.0f, 0.0f, -4.0f), 5.0f, SOUND_BOUMm, 0.45f);
-//? SetGlobalSphere(D3DVECTOR(-3.0f, 0.0f, 0.0f), 14.0f);
+ CreateCrashSphere(Math::Vector(-10.0f, 0.0f, 4.0f), 5.0f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector(-10.0f, 0.0f, -4.0f), 5.0f, SOUND_BOUMm, 0.45f);
+//? SetGlobalSphere(Math::Vector(-3.0f, 0.0f, 0.0f), 14.0f);
}
if ( type == OBJECT_RUINbase ) // base?
{
- CreateCrashSphere(D3DVECTOR( 0.0f, 15.0f, 0.0f),28.0f, SOUND_BOUMm, 0.45f);
- CreateCrashSphere(D3DVECTOR( 17.0f, 6.0f, 42.0f), 6.0f, SOUND_BOUMm, 0.45f);
- CreateCrashSphere(D3DVECTOR( 17.0f, 17.0f, 42.0f), 4.0f, SOUND_BOUMm, 0.45f);
- CreateCrashSphere(D3DVECTOR(-17.0f, 6.0f, 42.0f), 6.0f, SOUND_BOUMm, 0.45f);
- CreateCrashSphere(D3DVECTOR(-17.0f, 17.0f, 42.0f), 4.0f, SOUND_BOUMm, 0.45f);
- CreateCrashSphere(D3DVECTOR(-42.0f, 6.0f, 17.0f), 6.0f, SOUND_BOUMm, 0.45f);
- CreateCrashSphere(D3DVECTOR(-42.0f, 17.0f, 17.0f), 4.0f, SOUND_BOUMm, 0.45f);
- CreateCrashSphere(D3DVECTOR(-42.0f, 6.0f, -17.0f), 6.0f, SOUND_BOUMm, 0.45f);
- CreateCrashSphere(D3DVECTOR(-42.0f, 17.0f, -17.0f), 4.0f, SOUND_BOUMm, 0.45f);
- CreateCrashSphere(D3DVECTOR(-17.0f, 6.0f, -42.0f), 6.0f, SOUND_BOUMm, 0.45f);
- CreateCrashSphere(D3DVECTOR(-17.0f, 10.0f, -42.0f), 4.0f, SOUND_BOUMm, 0.45f);
- CreateCrashSphere(D3DVECTOR( 15.0f, 13.0f, -34.0f), 3.0f, SOUND_BOUMm, 0.45f);
- CreateCrashSphere(D3DVECTOR( 31.0f, 15.0f, -13.0f), 3.0f, SOUND_BOUMm, 0.45f);
- CreateCrashSphere(D3DVECTOR( 21.0f, 8.0f, -39.0f), 5.0f, SOUND_BOUMm, 0.45f);
- CreateCrashSphere(D3DVECTOR( 26.0f, 8.0f, -33.0f), 5.0f, SOUND_BOUMm, 0.45f);
- SetGlobalSphere(D3DVECTOR(0.0f, 0.0f, 0.0f), 48.0f);
+ CreateCrashSphere(Math::Vector( 0.0f, 15.0f, 0.0f),28.0f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector( 17.0f, 6.0f, 42.0f), 6.0f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector( 17.0f, 17.0f, 42.0f), 4.0f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector(-17.0f, 6.0f, 42.0f), 6.0f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector(-17.0f, 17.0f, 42.0f), 4.0f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector(-42.0f, 6.0f, 17.0f), 6.0f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector(-42.0f, 17.0f, 17.0f), 4.0f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector(-42.0f, 6.0f, -17.0f), 6.0f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector(-42.0f, 17.0f, -17.0f), 4.0f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector(-17.0f, 6.0f, -42.0f), 6.0f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector(-17.0f, 10.0f, -42.0f), 4.0f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector( 15.0f, 13.0f, -34.0f), 3.0f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector( 31.0f, 15.0f, -13.0f), 3.0f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector( 21.0f, 8.0f, -39.0f), 5.0f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector( 26.0f, 8.0f, -33.0f), 5.0f, SOUND_BOUMm, 0.45f);
+ SetGlobalSphere(Math::Vector(0.0f, 0.0f, 0.0f), 48.0f);
CreateShadowCircle(40.0f, 1.0f);
}
if ( type == OBJECT_RUINhead ) // base cap?
{
- CreateCrashSphere(D3DVECTOR( 0.0f, 13.0f, 0.0f),20.0f, SOUND_BOUMm, 0.45f);
- CreateCrashSphere(D3DVECTOR( 0.0f, -8.0f, 0.0f), 5.0f, SOUND_BOUMm, 0.45f);
- CreateCrashSphere(D3DVECTOR( 0.0f,-16.0f, 0.0f), 3.0f, SOUND_BOUMm, 0.45f);
- CreateCrashSphere(D3DVECTOR( 0.0f,-22.0f, 0.0f), 3.0f, SOUND_BOUMm, 0.45f);
- CreateCrashSphere(D3DVECTOR(-21.0f, 7.0f, 9.0f), 8.0f, SOUND_BOUMm, 0.45f);
- CreateCrashSphere(D3DVECTOR( -9.0f, 7.0f, 21.0f), 8.0f, SOUND_BOUMm, 0.45f);
- CreateCrashSphere(D3DVECTOR( 21.0f, 7.0f, 9.0f), 8.0f, SOUND_BOUMm, 0.45f);
- CreateCrashSphere(D3DVECTOR( 9.0f, 7.0f, 21.0f), 8.0f, SOUND_BOUMm, 0.45f);
- CreateCrashSphere(D3DVECTOR(-21.0f, 7.0f, -9.0f), 8.0f, SOUND_BOUMm, 0.45f);
- CreateCrashSphere(D3DVECTOR( -9.0f, 7.0f, -21.0f), 8.0f, SOUND_BOUMm, 0.45f);
- CreateCrashSphere(D3DVECTOR( 21.0f, 7.0f, -9.0f), 8.0f, SOUND_BOUMm, 0.45f);
- CreateCrashSphere(D3DVECTOR( 9.0f, 7.0f, -21.0f), 8.0f, SOUND_BOUMm, 0.45f);
- SetGlobalSphere(D3DVECTOR(0.0f, 0.0f, 0.0f), 35.0f);
+ CreateCrashSphere(Math::Vector( 0.0f, 13.0f, 0.0f),20.0f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector( 0.0f, -8.0f, 0.0f), 5.0f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector( 0.0f,-16.0f, 0.0f), 3.0f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector( 0.0f,-22.0f, 0.0f), 3.0f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector(-21.0f, 7.0f, 9.0f), 8.0f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector( -9.0f, 7.0f, 21.0f), 8.0f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector( 21.0f, 7.0f, 9.0f), 8.0f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector( 9.0f, 7.0f, 21.0f), 8.0f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector(-21.0f, 7.0f, -9.0f), 8.0f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector( -9.0f, 7.0f, -21.0f), 8.0f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector( 21.0f, 7.0f, -9.0f), 8.0f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector( 9.0f, 7.0f, -21.0f), 8.0f, SOUND_BOUMm, 0.45f);
+ SetGlobalSphere(Math::Vector(0.0f, 0.0f, 0.0f), 35.0f);
CreateShadowCircle(30.0f, 1.0f);
}
@@ -5500,7 +5500,7 @@ bool CObject::CreateRuin(D3DVECTOR pos, float angle, float height,
// Creates a gadget apollo.
-bool CObject::CreateApollo(D3DVECTOR pos, float angle, ObjectType type)
+bool CObject::CreateApollo(Math::Vector pos, float angle, ObjectType type)
{
CModFile* pModFile;
int rank, i;
@@ -5543,13 +5543,13 @@ bool CObject::CreateApollo(D3DVECTOR pos, float angle, ObjectType type)
//? m_terrain->AddBuildingLevel(pos, 10.0f, 13.0f, 12.0f, 0.0f);
- CreateCrashSphere(D3DVECTOR( 0.0f, 4.0f, 0.0f), 9.0f, SOUND_BOUMm, 0.45f);
- CreateCrashSphere(D3DVECTOR( 11.0f, 5.0f, 0.0f), 3.0f, SOUND_BOUMm, 0.45f);
- CreateCrashSphere(D3DVECTOR(-11.0f, 5.0f, 0.0f), 3.0f, SOUND_BOUMm, 0.45f);
- CreateCrashSphere(D3DVECTOR( 0.0f, 5.0f, -11.0f), 3.0f, SOUND_BOUMm, 0.45f);
- CreateCrashSphere(D3DVECTOR( 0.0f, 5.0f, 11.0f), 3.0f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector( 0.0f, 4.0f, 0.0f), 9.0f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector( 11.0f, 5.0f, 0.0f), 3.0f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector(-11.0f, 5.0f, 0.0f), 3.0f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector( 0.0f, 5.0f, -11.0f), 3.0f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector( 0.0f, 5.0f, 11.0f), 3.0f, SOUND_BOUMm, 0.45f);
- SetGlobalSphere(D3DVECTOR(0.0f, 4.0f, 0.0f), 9.0f);
+ SetGlobalSphere(Math::Vector(0.0f, 4.0f, 0.0f), 9.0f);
CreateShadowCircle(16.0f, 0.5f);
}
@@ -5572,7 +5572,7 @@ bool CObject::CreateApollo(D3DVECTOR pos, float angle, ObjectType type)
SetObjectParent(1, 0);
pModFile->ReadModel("objects\\apolloj4.mod"); // wheel
pModFile->CreateEngineObject(rank);
- SetPosition(1, D3DVECTOR(-5.75f, 1.65f, -5.0f));
+ SetPosition(1, Math::Vector(-5.75f, 1.65f, -5.0f));
rank = m_engine->CreateObject();
m_engine->SetObjectType(rank, TYPEDESCENDANT);
@@ -5580,7 +5580,7 @@ bool CObject::CreateApollo(D3DVECTOR pos, float angle, ObjectType type)
SetObjectParent(2, 0);
pModFile->ReadModel("objects\\apolloj4.mod"); // wheel
pModFile->CreateEngineObject(rank);
- SetPosition(2, D3DVECTOR(-5.75f, 1.65f, 5.0f));
+ SetPosition(2, Math::Vector(-5.75f, 1.65f, 5.0f));
rank = m_engine->CreateObject();
m_engine->SetObjectType(rank, TYPEDESCENDANT);
@@ -5588,7 +5588,7 @@ bool CObject::CreateApollo(D3DVECTOR pos, float angle, ObjectType type)
SetObjectParent(3, 0);
pModFile->ReadModel("objects\\apolloj4.mod"); // wheel
pModFile->CreateEngineObject(rank);
- SetPosition(3, D3DVECTOR(5.75f, 1.65f, -5.0f));
+ SetPosition(3, Math::Vector(5.75f, 1.65f, -5.0f));
rank = m_engine->CreateObject();
m_engine->SetObjectType(rank, TYPEDESCENDANT);
@@ -5596,7 +5596,7 @@ bool CObject::CreateApollo(D3DVECTOR pos, float angle, ObjectType type)
SetObjectParent(4, 0);
pModFile->ReadModel("objects\\apolloj4.mod"); // wheel
pModFile->CreateEngineObject(rank);
- SetPosition(4, D3DVECTOR(5.75f, 1.65f, 5.0f));
+ SetPosition(4, Math::Vector(5.75f, 1.65f, 5.0f));
// Accessories:
rank = m_engine->CreateObject();
@@ -5605,7 +5605,7 @@ bool CObject::CreateApollo(D3DVECTOR pos, float angle, ObjectType type)
SetObjectParent(5, 0);
pModFile->ReadModel("objects\\apolloj2.mod"); // antenna
pModFile->CreateEngineObject(rank);
- SetPosition(5, D3DVECTOR(5.5f, 8.8f, 2.0f));
+ SetPosition(5, Math::Vector(5.5f, 8.8f, 2.0f));
SetAngleY(5, -120.0f*Math::PI/180.0f);
SetAngleZ(5, 45.0f*Math::PI/180.0f);
@@ -5615,12 +5615,12 @@ bool CObject::CreateApollo(D3DVECTOR pos, float angle, ObjectType type)
SetObjectParent(6, 0);
pModFile->ReadModel("objects\\apolloj3.mod"); // camera
pModFile->CreateEngineObject(rank);
- SetPosition(6, D3DVECTOR(5.5f, 2.8f, -2.0f));
+ SetPosition(6, Math::Vector(5.5f, 2.8f, -2.0f));
SetAngleY(6, 30.0f*Math::PI/180.0f);
- CreateCrashSphere(D3DVECTOR( 3.0f, 2.0f, 0.0f), 5.0f, SOUND_BOUMm, 0.45f);
- CreateCrashSphere(D3DVECTOR(-3.0f, 2.0f, 0.0f), 5.0f, SOUND_BOUMm, 0.45f);
- CreateCrashSphere(D3DVECTOR( 7.0f, 9.0f, 2.0f), 2.0f, SOUND_BOUMm, 0.20f);
+ CreateCrashSphere(Math::Vector( 3.0f, 2.0f, 0.0f), 5.0f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector(-3.0f, 2.0f, 0.0f), 5.0f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector( 7.0f, 9.0f, 2.0f), 2.0f, SOUND_BOUMm, 0.20f);
CreateShadowCircle(7.0f, 0.8f);
@@ -5638,7 +5638,7 @@ bool CObject::CreateApollo(D3DVECTOR pos, float angle, ObjectType type)
SetAngleY(0, angle);
SetFloorHeight(0.0f);
- SetJotlerSphere(D3DVECTOR(0.0f, 4.0f, 0.0f), 1.0f);
+ SetJotlerSphere(Math::Vector(0.0f, 4.0f, 0.0f), 1.0f);
CreateShadowCircle(2.0f, 0.3f);
}
@@ -5653,7 +5653,7 @@ bool CObject::CreateApollo(D3DVECTOR pos, float angle, ObjectType type)
SetAngleY(0, angle);
SetFloorHeight(0.0f);
- CreateCrashSphere(D3DVECTOR(0.0f, 2.0f, 0.0f), 2.0f, SOUND_BOUMm, 0.45f);
+ CreateCrashSphere(Math::Vector(0.0f, 2.0f, 0.0f), 2.0f, SOUND_BOUMm, 0.45f);
CreateShadowCircle(5.0f, 0.8f);
FloorAdjust();
@@ -5676,11 +5676,11 @@ bool CObject::CreateApollo(D3DVECTOR pos, float angle, ObjectType type)
SetObjectParent(1, 0);
pModFile->ReadModel("objects\\apolloj2.mod"); // antenna
pModFile->CreateEngineObject(rank);
- SetPosition(1, D3DVECTOR(0.0f, 5.0f, 0.0f));
+ SetPosition(1, Math::Vector(0.0f, 5.0f, 0.0f));
SetAngleY(1, -120.0f*Math::PI/180.0f);
SetAngleZ(1, 45.0f*Math::PI/180.0f);
- CreateCrashSphere(D3DVECTOR(0.0f, 4.0f, 0.0f), 3.0f, SOUND_BOUMm, 0.35f);
+ CreateCrashSphere(Math::Vector(0.0f, 4.0f, 0.0f), 3.0f, SOUND_BOUMm, 0.35f);
CreateShadowCircle(3.0f, 0.7f);
}
@@ -5850,7 +5850,7 @@ bool CObject::RunProgram(int rank)
bool CObject::UpdateTransformObject(int part, bool bForceUpdate)
{
- D3DVECTOR position, angle, eye;
+ Math::Vector position, angle, eye;
bool bModif = false;
int parent;
@@ -5878,32 +5878,31 @@ bool CObject::UpdateTransformObject(int part, bool bForceUpdate)
{
if ( m_objectPart[part].bTranslate )
{
- D3DUtil_SetIdentityMatrix(m_objectPart[part].matTranslate);
- m_objectPart[part].matTranslate._41 = position.x;
- m_objectPart[part].matTranslate._42 = position.y;
- m_objectPart[part].matTranslate._43 = position.z;
+ m_objectPart[part].matTranslate.LoadIdentity();
+ m_objectPart[part].matTranslate.Set(1, 4, position.x);
+ m_objectPart[part].matTranslate.Set(2, 4, position.y);
+ m_objectPart[part].matTranslate.Set(3, 4, position.z);
}
if ( m_objectPart[part].bRotate )
{
- MatRotateZXY(m_objectPart[part].matRotate, angle);
+ Math::LoadRotationZXYMatrix(m_objectPart[part].matRotate, angle);
}
if ( m_objectPart[part].bZoom )
{
- D3DMATRIX mz;
- D3DUtil_SetIdentityMatrix(mz);
- mz._11 = m_objectPart[part].zoom.x;
- mz._22 = m_objectPart[part].zoom.y;
- mz._33 = m_objectPart[part].zoom.z;
- m_objectPart[part].matTransform = mz *
- m_objectPart[part].matRotate *
- m_objectPart[part].matTranslate;
+ Math::Matrix mz;
+ mz.LoadIdentity();
+ mz.Set(1, 1, m_objectPart[part].zoom.x);
+ mz.Set(2, 2, m_objectPart[part].zoom.y);
+ mz.Set(3, 3, m_objectPart[part].zoom.z);
+ m_objectPart[part].matTransform = Math::MultiplyMatrices(m_objectPart[part].matTranslate,
+ Math::MultiplyMatrices(m_objectPart[part].matRotate, mz));
}
else
{
- m_objectPart[part].matTransform = m_objectPart[part].matRotate *
- m_objectPart[part].matTranslate;
+ m_objectPart[part].matTransform = Math::MultiplyMatrices(m_objectPart[part].matTranslate,
+ m_objectPart[part].matRotate);
}
bModif = true;
}
@@ -5916,10 +5915,10 @@ bool CObject::UpdateTransformObject(int part, bool bForceUpdate)
if ( part == 0 && m_truck != 0 ) // transported by a truck?
{
- D3DMATRIX* matWorldTruck;
+ Math::Matrix* matWorldTruck;
matWorldTruck = m_truck->RetWorldMatrix(m_truckLink);
- m_objectPart[part].matWorld = m_objectPart[part].matTransform *
- *matWorldTruck;
+ m_objectPart[part].matWorld = Math::MultiplyMatrices(*matWorldTruck,
+ m_objectPart[part].matTransform);
}
else
{
@@ -5929,8 +5928,8 @@ bool CObject::UpdateTransformObject(int part, bool bForceUpdate)
}
else
{
- m_objectPart[part].matWorld = m_objectPart[part].matTransform *
- m_objectPart[parent].matWorld;
+ m_objectPart[part].matWorld = Math::MultiplyMatrices(m_objectPart[parent].matWorld,
+ m_objectPart[part].matTransform);
}
}
bModif = true;
@@ -6020,17 +6019,17 @@ void CObject::FlatParent()
for ( i=0 ; i<m_totalPart ; i++ )
{
- m_objectPart[i].position.x = m_objectPart[i].matWorld._41;
- m_objectPart[i].position.y = m_objectPart[i].matWorld._42;
- m_objectPart[i].position.z = m_objectPart[i].matWorld._43;
+ m_objectPart[i].position.x = m_objectPart[i].matWorld.Get(1, 4);
+ m_objectPart[i].position.y = m_objectPart[i].matWorld.Get(2, 4);
+ m_objectPart[i].position.z = m_objectPart[i].matWorld.Get(3, 4);
- m_objectPart[i].matWorld._41 = 0.0f;
- m_objectPart[i].matWorld._42 = 0.0f;
- m_objectPart[i].matWorld._43 = 0.0f;
+ m_objectPart[i].matWorld.Set(1, 4, 0.0f);
+ m_objectPart[i].matWorld.Set(2, 4, 0.0f);
+ m_objectPart[i].matWorld.Set(3, 4, 0.0f);
- m_objectPart[i].matTranslate._41 = 0.0f;
- m_objectPart[i].matTranslate._42 = 0.0f;
- m_objectPart[i].matTranslate._43 = 0.0f;
+ m_objectPart[i].matTranslate.Set(1, 4, 0.0f);
+ m_objectPart[i].matTranslate.Set(2, 4, 0.0f);
+ m_objectPart[i].matTranslate.Set(3, 4, 0.0f);
m_objectPart[i].parentPart = -1; // more parents
}
@@ -6212,11 +6211,11 @@ bool CObject::EventFrame(const Event &event)
if ( m_bProxyActivate ) // active if it is near?
{
CPyro* pyro;
- D3DVECTOR eye;
+ Math::Vector eye;
float dist;
eye = m_engine->RetLookatPt();
- dist = Length(eye, RetPosition(0));
+ dist = Math::Distance(eye, RetPosition(0));
if ( dist < m_proxyDistance )
{
m_bProxyActivate = false;
@@ -6250,7 +6249,7 @@ void CObject::UpdateMapping()
void CObject::VirusFrame(float rTime)
{
ParticuleType type;
- D3DVECTOR pos, speed;
+ Math::Vector pos, speed;
Math::Point dim;
int r;
@@ -6295,7 +6294,7 @@ void CObject::VirusFrame(float rTime)
void CObject::PartiFrame(float rTime)
{
- D3DVECTOR pos, angle, factor;
+ Math::Vector pos, angle, factor;
int i, channel;
for ( i=0 ; i<OBJECTMAXPART ; i++ )
@@ -6316,11 +6315,11 @@ void CObject::PartiFrame(float rTime)
// Each song spins differently.
switch( i%5 )
{
- case 0: factor = D3DVECTOR( 0.5f, 0.3f, 0.6f); break;
- case 1: factor = D3DVECTOR(-0.3f, 0.4f,-0.2f); break;
- case 2: factor = D3DVECTOR( 0.4f,-0.6f,-0.3f); break;
- case 3: factor = D3DVECTOR(-0.6f,-0.2f, 0.0f); break;
- case 4: factor = D3DVECTOR( 0.4f, 0.1f,-0.7f); break;
+ case 0: factor = Math::Vector( 0.5f, 0.3f, 0.6f); break;
+ case 1: factor = Math::Vector(-0.3f, 0.4f,-0.2f); break;
+ case 2: factor = Math::Vector( 0.4f,-0.6f,-0.3f); break;
+ case 3: factor = Math::Vector(-0.6f,-0.2f, 0.0f); break;
+ case 4: factor = Math::Vector( 0.4f, 0.1f,-0.7f); break;
}
angle = RetAngle(i);
@@ -6333,8 +6332,8 @@ void CObject::PartiFrame(float rTime)
// Changes the perspective to view if it was like in the vehicle,
// or behind the vehicle.
-void CObject::SetViewFromHere(D3DVECTOR &eye, float &dirH, float &dirV,
- D3DVECTOR &lookat, D3DVECTOR &upVec,
+void CObject::SetViewFromHere(Math::Vector &eye, float &dirH, float &dirV,
+ Math::Vector &lookat, Math::Vector &upVec,
CameraType type)
{
float speed;
@@ -6440,11 +6439,11 @@ void CObject::SetViewFromHere(D3DVECTOR &eye, float &dirH, float &dirV,
lookat.y = eye.y+0.0f;
lookat.z = eye.z+0.0f;
- eye = Transform(m_objectPart[part].matWorld, eye);
- lookat = Transform(m_objectPart[part].matWorld, lookat);
+ eye = Math::Transform(m_objectPart[part].matWorld, eye);
+ lookat = Math::Transform(m_objectPart[part].matWorld, lookat);
// Camera tilts when turning.
- upVec = D3DVECTOR(0.0f, 1.0f, 0.0f);
+ upVec = Math::Vector(0.0f, 1.0f, 0.0f);
if ( m_physics != 0 )
{
if ( m_physics->RetLand() ) // on ground?
@@ -6464,7 +6463,7 @@ void CObject::SetViewFromHere(D3DVECTOR &eye, float &dirH, float &dirV,
upVec.z += speed*0.08f;
}
}
- upVec = Transform(m_objectPart[0].matRotate, upVec);
+ upVec = Math::Transform(m_objectPart[0].matRotate, upVec);
dirH = -(m_objectPart[part].angle.y+Math::PI/2.0f);
dirV = 0.0f;
@@ -6709,22 +6708,22 @@ bool CObject::JostleObject(float force)
void CObject::StartDetectEffect(CObject *target, bool bFound)
{
- D3DMATRIX* mat;
- D3DVECTOR pos, goal;
+ Math::Matrix* mat;
+ Math::Vector pos, goal;
Math::Point dim;
mat = RetWorldMatrix(0);
- pos = Transform(*mat, D3DVECTOR(2.0f, 3.0f, 0.0f));
+ pos = Math::Transform(*mat, Math::Vector(2.0f, 3.0f, 0.0f));
if ( target == 0 )
{
- goal = Transform(*mat, D3DVECTOR(50.0f, 3.0f, 0.0f));
+ goal = Math::Transform(*mat, Math::Vector(50.0f, 3.0f, 0.0f));
}
else
{
goal = target->RetPosition(0);
goal.y += 3.0f;
- goal = SegmentDist(pos, goal, Length(pos, goal)-3.0f);
+ goal = Math::SegmentPoint(pos, goal, Math::Distance(pos, goal)-3.0f);
}
dim.x = 3.0f;
@@ -6735,10 +6734,10 @@ void CObject::StartDetectEffect(CObject *target, bool bFound)
{
goal = target->RetPosition(0);
goal.y += 3.0f;
- goal = SegmentDist(pos, goal, Length(pos, goal)-1.0f);
+ goal = Math::SegmentPoint(pos, goal, Math::Distance(pos, goal)-1.0f);
dim.x = 6.0f;
dim.y = dim.x;
- m_particule->CreateParticule(goal, D3DVECTOR(0.0f, 0.0f, 0.0f), dim,
+ m_particule->CreateParticule(goal, Math::Vector(0.0f, 0.0f, 0.0f), dim,
bFound?PARTIGLINT:PARTIGLINTr, 0.5f);
}
@@ -7222,7 +7221,7 @@ bool CObject::IsProgram()
void CObject::CreateSelectParticule()
{
- D3DVECTOR pos, speed;
+ Math::Vector pos, speed;
Math::Point dim;
int i;
@@ -7267,8 +7266,8 @@ void CObject::CreateSelectParticule()
m_type == OBJECT_MOBILEit ||
m_type == OBJECT_MOBILEdr ) // vehicle?
{
- pos = D3DVECTOR(0.0f, 0.0f, 0.0f);
- speed = D3DVECTOR(0.0f, 0.0f, 0.0f);
+ pos = Math::Vector(0.0f, 0.0f, 0.0f);
+ speed = Math::Vector(0.0f, 0.0f, 0.0f);
dim.x = 0.0f;
dim.y = 0.0f;
m_partiSel[0] = m_particule->CreateParticule(pos, speed, dim, PARTISELY, 1.0f, 0.0f, 0.0f);
@@ -7284,7 +7283,7 @@ void CObject::CreateSelectParticule()
void CObject::UpdateSelectParticule()
{
- D3DVECTOR pos[4];
+ Math::Vector pos[4];
Math::Point dim[4];
float zoom[4];
float angle;
@@ -7303,8 +7302,8 @@ void CObject::UpdateSelectParticule()
m_type == OBJECT_MOBILErr ||
m_type == OBJECT_MOBILErs ) // large caterpillars?
{
- pos[0] = D3DVECTOR(4.2f, 2.8f, 1.5f);
- pos[1] = D3DVECTOR(4.2f, 2.8f, -1.5f);
+ pos[0] = Math::Vector(4.2f, 2.8f, 1.5f);
+ pos[1] = Math::Vector(4.2f, 2.8f, -1.5f);
dim[0].x = 1.5f;
dim[1].x = 1.5f;
}
@@ -7313,30 +7312,30 @@ void CObject::UpdateSelectParticule()
m_type == OBJECT_MOBILEft ||
m_type == OBJECT_MOBILEit ) // trainer ?
{
- pos[0] = D3DVECTOR(4.2f, 2.5f, 1.2f);
- pos[1] = D3DVECTOR(4.2f, 2.5f, -1.2f);
+ pos[0] = Math::Vector(4.2f, 2.5f, 1.2f);
+ pos[1] = Math::Vector(4.2f, 2.5f, -1.2f);
dim[0].x = 1.5f;
dim[1].x = 1.5f;
}
else if ( m_type == OBJECT_MOBILEsa ) // submarine?
{
- pos[0] = D3DVECTOR(3.6f, 4.0f, 2.0f);
- pos[1] = D3DVECTOR(3.6f, 4.0f, -2.0f);
+ pos[0] = Math::Vector(3.6f, 4.0f, 2.0f);
+ pos[1] = Math::Vector(3.6f, 4.0f, -2.0f);
}
else if ( m_type == OBJECT_MOBILEtg ) // target?
{
- pos[0] = D3DVECTOR(3.4f, 6.5f, 2.0f);
- pos[1] = D3DVECTOR(3.4f, 6.5f, -2.0f);
+ pos[0] = Math::Vector(3.4f, 6.5f, 2.0f);
+ pos[1] = Math::Vector(3.4f, 6.5f, -2.0f);
}
else if ( m_type == OBJECT_MOBILEdr ) // designer?
{
- pos[0] = D3DVECTOR(4.9f, 3.5f, 2.5f);
- pos[1] = D3DVECTOR(4.9f, 3.5f, -2.5f);
+ pos[0] = Math::Vector(4.9f, 3.5f, 2.5f);
+ pos[1] = Math::Vector(4.9f, 3.5f, -2.5f);
}
else
{
- pos[0] = D3DVECTOR(4.2f, 2.5f, 1.5f);
- pos[1] = D3DVECTOR(4.2f, 2.5f, -1.5f);
+ pos[0] = Math::Vector(4.2f, 2.5f, 1.5f);
+ pos[1] = Math::Vector(4.2f, 2.5f, -1.5f);
}
// Red back lens
@@ -7346,8 +7345,8 @@ void CObject::UpdateSelectParticule()
m_type == OBJECT_MOBILEfs ||
m_type == OBJECT_MOBILEft ) // flying?
{
- pos[2] = D3DVECTOR(-4.0f, 3.1f, 4.5f);
- pos[3] = D3DVECTOR(-4.0f, 3.1f, -4.5f);
+ pos[2] = Math::Vector(-4.0f, 3.1f, 4.5f);
+ pos[3] = Math::Vector(-4.0f, 3.1f, -4.5f);
dim[2].x = 0.6f;
dim[3].x = 0.6f;
}
@@ -7356,13 +7355,13 @@ void CObject::UpdateSelectParticule()
m_type == OBJECT_MOBILEwi ||
m_type == OBJECT_MOBILEws ) // wheels?
{
- pos[2] = D3DVECTOR(-4.5f, 2.7f, 2.8f);
- pos[3] = D3DVECTOR(-4.5f, 2.7f, -2.8f);
+ pos[2] = Math::Vector(-4.5f, 2.7f, 2.8f);
+ pos[3] = Math::Vector(-4.5f, 2.7f, -2.8f);
}
if ( m_type == OBJECT_MOBILEwt ) // wheels?
{
- pos[2] = D3DVECTOR(-4.0f, 2.5f, 2.2f);
- pos[3] = D3DVECTOR(-4.0f, 2.5f, -2.2f);
+ pos[2] = Math::Vector(-4.0f, 2.5f, 2.2f);
+ pos[3] = Math::Vector(-4.0f, 2.5f, -2.2f);
}
if ( m_type == OBJECT_MOBILEia ||
m_type == OBJECT_MOBILEic ||
@@ -7370,8 +7369,8 @@ void CObject::UpdateSelectParticule()
m_type == OBJECT_MOBILEis ||
m_type == OBJECT_MOBILEit ) // legs?
{
- pos[2] = D3DVECTOR(-4.5f, 2.7f, 2.8f);
- pos[3] = D3DVECTOR(-4.5f, 2.7f, -2.8f);
+ pos[2] = Math::Vector(-4.5f, 2.7f, 2.8f);
+ pos[3] = Math::Vector(-4.5f, 2.7f, -2.8f);
}
if ( m_type == OBJECT_MOBILEta ||
m_type == OBJECT_MOBILEtc ||
@@ -7379,31 +7378,31 @@ void CObject::UpdateSelectParticule()
m_type == OBJECT_MOBILEts ||
m_type == OBJECT_MOBILEtt ) // caterpillars?
{
- pos[2] = D3DVECTOR(-3.6f, 4.2f, 3.0f);
- pos[3] = D3DVECTOR(-3.6f, 4.2f, -3.0f);
+ pos[2] = Math::Vector(-3.6f, 4.2f, 3.0f);
+ pos[3] = Math::Vector(-3.6f, 4.2f, -3.0f);
}
if ( m_type == OBJECT_MOBILErt ||
m_type == OBJECT_MOBILErc ||
m_type == OBJECT_MOBILErr ||
m_type == OBJECT_MOBILErs ) // large caterpillars?
{
- pos[2] = D3DVECTOR(-5.0f, 5.2f, 2.5f);
- pos[3] = D3DVECTOR(-5.0f, 5.2f, -2.5f);
+ pos[2] = Math::Vector(-5.0f, 5.2f, 2.5f);
+ pos[3] = Math::Vector(-5.0f, 5.2f, -2.5f);
}
if ( m_type == OBJECT_MOBILEsa ) // submarine?
{
- pos[2] = D3DVECTOR(-3.6f, 4.0f, 2.0f);
- pos[3] = D3DVECTOR(-3.6f, 4.0f, -2.0f);
+ pos[2] = Math::Vector(-3.6f, 4.0f, 2.0f);
+ pos[3] = Math::Vector(-3.6f, 4.0f, -2.0f);
}
if ( m_type == OBJECT_MOBILEtg ) // target?
{
- pos[2] = D3DVECTOR(-2.4f, 6.5f, 2.0f);
- pos[3] = D3DVECTOR(-2.4f, 6.5f, -2.0f);
+ pos[2] = Math::Vector(-2.4f, 6.5f, 2.0f);
+ pos[3] = Math::Vector(-2.4f, 6.5f, -2.0f);
}
if ( m_type == OBJECT_MOBILEdr ) // designer?
{
- pos[2] = D3DVECTOR(-5.3f, 2.7f, 1.8f);
- pos[3] = D3DVECTOR(-5.3f, 2.7f, -1.8f);
+ pos[2] = Math::Vector(-5.3f, 2.7f, 1.8f);
+ pos[3] = Math::Vector(-5.3f, 2.7f, -1.8f);
}
angle = RetAngleY(0)/Math::PI;
@@ -7425,7 +7424,7 @@ void CObject::UpdateSelectParticule()
// Updates lens.
for ( i=0 ; i<4 ; i++ )
{
- pos[i] = Transform(m_objectPart[0].matWorld, pos[i]);
+ pos[i] = Math::Transform(m_objectPart[0].matWorld, pos[i]);
dim[i].y = dim[i].x;
m_particule->SetParam(m_partiSel[i], pos[i], dim[i], zoom[i], angle, 1.0f);
}
diff --git a/src/object/object.h b/src/object/object.h
index 88eac3d..5b3cbf6 100644
--- a/src/object/object.h
+++ b/src/object/object.h
@@ -309,16 +309,16 @@ struct ObjectPart
int object; // number of the object in CD3DEngine
int parentPart; // number of father part
int masterParti; // master canal of the particle
- D3DVECTOR position;
- D3DVECTOR angle;
- D3DVECTOR zoom;
+ Math::Vector position;
+ Math::Vector angle;
+ Math::Vector zoom;
char bTranslate;
char bRotate;
char bZoom;
- D3DMATRIX matTranslate;
- D3DMATRIX matRotate;
- D3DMATRIX matTransform;
- D3DMATRIX matWorld;
+ Math::Matrix matTranslate;
+ Math::Matrix matRotate;
+ Math::Matrix matTransform;
+ Math::Matrix matWorld;
};
struct Character
@@ -328,7 +328,7 @@ struct Character
float wheelLeft; // position Z of the left wheels
float wheelRight; // position Z of the right wheels
float height; // normal height on top of ground
- D3DVECTOR posPower; // position of the battery
+ Math::Vector posPower; // position of the battery
};
struct Info
@@ -394,20 +394,20 @@ public:
void SetDrawWorld(bool bDraw);
void SetDrawFront(bool bDraw);
- bool CreateVehicle(D3DVECTOR pos, float angle, ObjectType type, float power, bool bTrainer, bool bToy);
- bool CreateInsect(D3DVECTOR pos, float angle, ObjectType type);
- bool CreateBuilding(D3DVECTOR pos, float angle, float height, ObjectType type, float power=1.0f);
- bool CreateResource(D3DVECTOR pos, float angle, ObjectType type, float power=1.0f);
- bool CreateFlag(D3DVECTOR pos, float angle, ObjectType type);
- bool CreateBarrier(D3DVECTOR pos, float angle, float height, ObjectType type);
- bool CreatePlant(D3DVECTOR pos, float angle, float height, ObjectType type);
- bool CreateMushroom(D3DVECTOR pos, float angle, float height, ObjectType type);
- bool CreateTeen(D3DVECTOR pos, float angle, float zoom, float height, ObjectType type);
- bool CreateQuartz(D3DVECTOR pos, float angle, float height, ObjectType type);
- bool CreateRoot(D3DVECTOR pos, float angle, float height, ObjectType type);
- bool CreateHome(D3DVECTOR pos, float angle, float height, ObjectType type);
- bool CreateRuin(D3DVECTOR pos, float angle, float height, ObjectType type);
- bool CreateApollo(D3DVECTOR pos, float angle, ObjectType type);
+ bool CreateVehicle(Math::Vector pos, float angle, ObjectType type, float power, bool bTrainer, bool bToy);
+ bool CreateInsect(Math::Vector pos, float angle, ObjectType type);
+ bool CreateBuilding(Math::Vector pos, float angle, float height, ObjectType type, float power=1.0f);
+ bool CreateResource(Math::Vector pos, float angle, ObjectType type, float power=1.0f);
+ bool CreateFlag(Math::Vector pos, float angle, ObjectType type);
+ bool CreateBarrier(Math::Vector pos, float angle, float height, ObjectType type);
+ bool CreatePlant(Math::Vector pos, float angle, float height, ObjectType type);
+ bool CreateMushroom(Math::Vector pos, float angle, float height, ObjectType type);
+ bool CreateTeen(Math::Vector pos, float angle, float zoom, float height, ObjectType type);
+ bool CreateQuartz(Math::Vector pos, float angle, float height, ObjectType type);
+ bool CreateRoot(Math::Vector pos, float angle, float height, ObjectType type);
+ bool CreateHome(Math::Vector pos, float angle, float height, ObjectType type);
+ bool CreateRuin(Math::Vector pos, float angle, float height, ObjectType type);
+ bool CreateApollo(Math::Vector pos, float angle, ObjectType type);
bool ReadProgram(int rank, char* filename);
bool WriteProgram(int rank, char* filename);
@@ -417,33 +417,33 @@ public:
int RetEffectLight();
void FlushCrashShere();
- int CreateCrashSphere(D3DVECTOR pos, float radius, Sound sound, float hardness=0.45f);
+ int CreateCrashSphere(Math::Vector pos, float radius, Sound sound, float hardness=0.45f);
int RetCrashSphereTotal();
- bool GetCrashSphere(int rank, D3DVECTOR &pos, float &radius);
+ bool GetCrashSphere(int rank, Math::Vector &pos, float &radius);
float RetCrashSphereHardness(int rank);
Sound RetCrashSphereSound(int rank);
void DeleteCrashSphere(int rank);
- void SetGlobalSphere(D3DVECTOR pos, float radius);
- void GetGlobalSphere(D3DVECTOR &pos, float &radius);
- void SetJotlerSphere(D3DVECTOR pos, float radius);
- void GetJotlerSphere(D3DVECTOR &pos, float &radius);
+ void SetGlobalSphere(Math::Vector pos, float radius);
+ void GetGlobalSphere(Math::Vector &pos, float &radius);
+ void SetJotlerSphere(Math::Vector pos, float radius);
+ void GetJotlerSphere(Math::Vector &pos, float &radius);
void SetShieldRadius(float radius);
float RetShieldRadius();
void SetFloorHeight(float height);
void FloorAdjust();
- void SetLinVibration(D3DVECTOR dir);
- D3DVECTOR RetLinVibration();
- void SetCirVibration(D3DVECTOR dir);
- D3DVECTOR RetCirVibration();
- void SetInclinaison(D3DVECTOR dir);
- D3DVECTOR RetInclinaison();
-
- void SetPosition(int part, const D3DVECTOR &pos);
- D3DVECTOR RetPosition(int part);
- void SetAngle(int part, const D3DVECTOR &angle);
- D3DVECTOR RetAngle(int part);
+ void SetLinVibration(Math::Vector dir);
+ Math::Vector RetLinVibration();
+ void SetCirVibration(Math::Vector dir);
+ Math::Vector RetCirVibration();
+ void SetInclinaison(Math::Vector dir);
+ Math::Vector RetInclinaison();
+
+ void SetPosition(int part, const Math::Vector &pos);
+ Math::Vector RetPosition(int part);
+ void SetAngle(int part, const Math::Vector &angle);
+ Math::Vector RetAngle(int part);
void SetAngleY(int part, float angle);
void SetAngleX(int part, float angle);
void SetAngleZ(int part, float angle);
@@ -451,8 +451,8 @@ public:
float RetAngleX(int part);
float RetAngleZ(int part);
void SetZoom(int part, float zoom);
- void SetZoom(int part, D3DVECTOR zoom);
- D3DVECTOR RetZoom(int part);
+ void SetZoom(int part, Math::Vector zoom);
+ Math::Vector RetZoom(int part);
void SetZoomX(int part, float zoom);
float RetZoomX(int part);
void SetZoomY(int part, float zoom);
@@ -475,10 +475,10 @@ public:
ResetCap RetResetCap();
void SetResetBusy(bool bBusy);
bool RetResetBusy();
- void SetResetPosition(const D3DVECTOR &pos);
- D3DVECTOR RetResetPosition();
- void SetResetAngle(const D3DVECTOR &angle);
- D3DVECTOR RetResetAngle();
+ void SetResetPosition(const Math::Vector &pos);
+ Math::Vector RetResetPosition();
+ void SetResetAngle(const Math::Vector &angle);
+ Math::Vector RetResetAngle();
void SetResetRun(int run);
int RetResetRun();
@@ -507,12 +507,12 @@ public:
bool SetCmdLine(int rank, float value);
float RetCmdLine(int rank);
- D3DMATRIX* RetRotateMatrix(int part);
- D3DMATRIX* RetTranslateMatrix(int part);
- D3DMATRIX* RetTransformMatrix(int part);
- D3DMATRIX* RetWorldMatrix(int part);
+ Math::Matrix* RetRotateMatrix(int part);
+ Math::Matrix* RetTranslateMatrix(int part);
+ Math::Matrix* RetTransformMatrix(int part);
+ Math::Matrix* RetWorldMatrix(int part);
- void SetViewFromHere(D3DVECTOR &eye, float &dirH, float &dirV, D3DVECTOR &lookat, D3DVECTOR &upVec, CameraType type);
+ void SetViewFromHere(Math::Vector &eye, float &dirH, float &dirV, Math::Vector &lookat, Math::Vector &upVec, CameraType type);
void SetCharacter(Character* character);
void GetCharacter(Character* character);
@@ -689,9 +689,9 @@ protected:
float m_shadowHeight; // height of light from the shadows
int m_effectLight; // number of light effects
float m_effectHeight; // height of light effects
- D3DVECTOR m_linVibration; // linear vibration
- D3DVECTOR m_cirVibration; // circular vibration
- D3DVECTOR m_inclinaison; // tilt
+ Math::Vector m_linVibration; // linear vibration
+ Math::Vector m_cirVibration; // circular vibration
+ Math::Vector m_inclinaison; // tilt
CObject* m_power; // battery used by the vehicle
CObject* m_fret; // object transported
CObject* m_truck; // object with the latter
@@ -741,13 +741,13 @@ protected:
float m_param;
int m_crashSphereUsed; // number of spheres used
- D3DVECTOR m_crashSpherePos[MAXCRASHSPHERE];
+ Math::Vector m_crashSpherePos[MAXCRASHSPHERE];
float m_crashSphereRadius[MAXCRASHSPHERE];
float m_crashSphereHardness[MAXCRASHSPHERE];
Sound m_crashSphereSound[MAXCRASHSPHERE];
- D3DVECTOR m_globalSpherePos;
+ Math::Vector m_globalSpherePos;
float m_globalSphereRadius;
- D3DVECTOR m_jotlerSpherePos;
+ Math::Vector m_jotlerSpherePos;
float m_jotlerSphereRadius;
float m_shieldRadius;
@@ -761,8 +761,8 @@ protected:
ResetCap m_resetCap;
bool m_bResetBusy;
- D3DVECTOR m_resetPosition;
- D3DVECTOR m_resetAngle;
+ Math::Vector m_resetPosition;
+ Math::Vector m_resetAngle;
int m_resetRun;
int m_infoTotal;
diff --git a/src/object/robotmain.cpp b/src/object/robotmain.cpp
index 1408787..6b40570 100644
--- a/src/object/robotmain.cpp
+++ b/src/object/robotmain.cpp
@@ -25,6 +25,7 @@
#include "common/struct.h"
#include "math/const.h"
#include "math/geometry.h"
+#include "math/conv.h"
#include "graphics/d3d/d3dengine.h"
#include "math/old/d3dmath.h"
#include "common/language.h"
@@ -71,7 +72,7 @@
#include "sound/sound.h"
#include "script/cbottoken.h"
#include "script/cmdtoken.h"
-#include "graphics/common/mainmovie.h"
+#include "object/mainmovie.h"
#include "ui/maindialog.h"
#include "ui/mainshort.h"
#include "ui/mainmap.h"
@@ -501,7 +502,7 @@ void CRobotMain::ChangePhase(Phase phase)
m_engine->SetOverColor();
m_engine->GroundMarkDelete(0);
SetSpeed(1.0f);
- m_terrain->SetWind(D3DVECTOR(0.0f, 0.0f, 0.0f));
+ m_terrain->SetWind(Math::Vector(0.0f, 0.0f, 0.0f));
m_terrain->FlushBuildingLevel();
m_terrain->FlushFlyingLimit();
m_light->FlushLight();
@@ -518,7 +519,7 @@ void CRobotMain::ChangePhase(Phase phase)
m_interface->Flush();
ClearInterface();
FlushNewScriptName();
- m_sound->SetListener(D3DVECTOR(0.0f, 0.0f, 0.0f), D3DVECTOR(0.0f, 0.0f, 1.0f));
+ m_sound->SetListener(Math::Vector(0.0f, 0.0f, 0.0f), Math::Vector(0.0f, 0.0f, 1.0f));
m_camera->SetType(CAMERA_DIALOG);
m_movie->Flush();
m_movieInfoIndex = -1;
@@ -723,7 +724,7 @@ void CRobotMain::ChangePhase(Phase phase)
}
else
{
- m_displayText->DisplayError(INFO_WIN, D3DVECTOR(0.0f,0.0f,0.0f), 15.0f, 60.0f, 1000.0f);
+ m_displayText->DisplayError(INFO_WIN, Math::Vector(0.0f,0.0f,0.0f), 15.0f, 60.0f, 1000.0f);
}
}
m_sound->StopAll();
@@ -746,7 +747,7 @@ void CRobotMain::ChangePhase(Phase phase)
pos.x = ox+sx*1; pos.y = oy+sy*1;
ddim.x = dim.x*2; ddim.y = dim.y*2;
m_interface->CreateButton(pos, ddim, 16, EVENT_BUTTON_OK);
- m_displayText->DisplayError(INFO_LOST, D3DVECTOR(0.0f,0.0f,0.0f), 15.0f, 60.0f, 1000.0f);
+ m_displayText->DisplayError(INFO_LOST, Math::Vector(0.0f,0.0f,0.0f), 15.0f, 60.0f, 1000.0f);
}
m_sound->StopAll();
StartMusic();
@@ -915,7 +916,7 @@ bool CRobotMain::EventProcess(const Event &event)
HiliteClear();
if ( event.param == VK_F11 )
{
- m_particule->WriteWheelTrace("Savegame\\t.bmp", 256, 256, D3DVECTOR(16.0f, 0.0f, -368.0f), D3DVECTOR(140.0f, 0.0f, -248.0f));
+ m_particule->WriteWheelTrace("Savegame\\t.bmp", 256, 256, Math::Vector(16.0f, 0.0f, -368.0f), Math::Vector(140.0f, 0.0f, -248.0f));
return false;
}
if ( m_bEditLock ) // current edition?
@@ -1575,7 +1576,7 @@ void CRobotMain::ExecuteCmd(char *cmd)
if ( m_phase == PHASE_SIMUL )
{
- m_displayText->DisplayError(ERR_CMD, D3DVECTOR(0.0f,0.0f,0.0f));
+ m_displayText->DisplayError(ERR_CMD, Math::Vector(0.0f,0.0f,0.0f));
}
}
@@ -1881,7 +1882,7 @@ void CRobotMain::StartDisplayVisit(EventMsg event)
CWindow* pw;
CButton* button;
CGroup* group;
- D3DVECTOR goal;
+ Math::Vector goal;
Math::Point pos, dim;
int i, j;
@@ -1978,7 +1979,7 @@ void CRobotMain::StartDisplayVisit(EventMsg event)
void CRobotMain::FrameVisit(float rTime)
{
- D3DVECTOR pos, speed;
+ Math::Vector pos, speed;
Math::Point dim;
float level;
@@ -2001,7 +2002,7 @@ void CRobotMain::FrameVisit(float rTime)
pos = m_visitPos;
level = m_terrain->RetFloorLevel(pos)+2.0f;
if ( pos.y < level ) pos.y = level; // not below the ground
- speed = D3DVECTOR(0.0f, 0.0f, 0.0f);
+ speed = Math::Vector(0.0f, 0.0f, 0.0f);
dim.x = 30.0f;
dim.y = dim.x;
m_particule->CreateParticule(pos, speed, dim, PARTISHOW, 2.0f);
@@ -2291,11 +2292,11 @@ CObject* CRobotMain::SearchToto()
// Returns the nearest selectable object from a given position.
-CObject* CRobotMain::SearchNearest(D3DVECTOR pos, CObject* pExclu)
+CObject* CRobotMain::SearchNearest(Math::Vector pos, CObject* pExclu)
{
ObjectType type;
CObject *pObj, *pBest;
- D3DVECTOR oPos;
+ Math::Vector oPos;
float min, dist;
int i;
@@ -2313,7 +2314,7 @@ CObject* CRobotMain::SearchNearest(D3DVECTOR pos, CObject* pExclu)
if ( type == OBJECT_TOTO ) continue;
oPos = pObj->RetPosition(0);
- dist = Length2d(oPos, pos);
+ dist = Math::DistanceProjected(oPos, pos);
if ( dist < min )
{
min = dist;
@@ -2988,7 +2989,7 @@ void CRobotMain::AbortMovie()
void CRobotMain::UpdateInfoText()
{
CObject* pObj;
- D3DVECTOR pos;
+ Math::Vector pos;
char info[100];
if ( m_bShowPos )
@@ -3010,8 +3011,8 @@ void CRobotMain::InitEye()
{
if ( m_phase == PHASE_SIMUL )
{
- m_camera->Init(D3DVECTOR( 0.0f, 10.0f, 0.0f),
- D3DVECTOR(10.0f, 5.0f, 0.0f), 0.0f);
+ m_camera->Init(Math::Vector( 0.0f, 10.0f, 0.0f),
+ Math::Vector(10.0f, 5.0f, 0.0f), 0.0f);
}
if ( m_phase == PHASE_MODEL )
@@ -3037,7 +3038,7 @@ bool CRobotMain::EventFrame(const Event &event)
if ( !m_bImmediatSatCom && !m_bBeginSatCom &&
m_gameTime > 0.1f && m_phase == PHASE_SIMUL )
{
- m_displayText->DisplayError(INFO_BEGINSATCOM, D3DVECTOR(0.0f,0.0f,0.0f));
+ m_displayText->DisplayError(INFO_BEGINSATCOM, Math::Vector(0.0f,0.0f,0.0f));
m_bBeginSatCom = true; // message appears
}
@@ -3255,7 +3256,7 @@ bool CRobotMain::EventFrame(const Event &event)
m_delayWriteMessage --;
if ( m_delayWriteMessage == 0 )
{
- m_displayText->DisplayError(INFO_WRITEOK, D3DVECTOR(0.0f,0.0f,0.0f));
+ m_displayText->DisplayError(INFO_WRITEOK, Math::Vector(0.0f,0.0f,0.0f));
}
}
@@ -3292,10 +3293,10 @@ bool CRobotMain::EventObject(const Event &event)
// Calculates the point of arrival of the camera.
-D3DVECTOR CRobotMain::LookatPoint(D3DVECTOR eye, float angleH, float angleV,
+Math::Vector CRobotMain::LookatPoint(Math::Vector eye, float angleH, float angleV,
float length)
{
- D3DVECTOR lookat;
+ Math::Vector lookat;
lookat = eye;
lookat.z += length;
@@ -3327,7 +3328,7 @@ void CRobotMain::Convert()
char* base;
char* p;
int rank;
- D3DVECTOR pos;
+ Math::Vector pos;
float value;
base = m_dialog->RetSceneName();
@@ -3567,7 +3568,7 @@ void CRobotMain::CreateScene(bool bSoluce, bool bFixScene, bool bResetObject)
char* stack;
char* base;
D3DCOLORVALUE color;
- D3DVECTOR pos;
+ Math::Vector pos;
int rank, obj, i, rankObj, rankGadget;
//? Convert();
@@ -3792,7 +3793,7 @@ void CRobotMain::CreateScene(bool bSoluce, bool bFixScene, bool bResetObject)
if ( Cmd(line, "Planet") && !bResetObject )
{
- D3DVECTOR ppos, uv1, uv2;
+ Math::Vector ppos, uv1, uv2;
ppos = OpPos(line, "pos");
uv1 = OpPos(line, "uv1");
@@ -3981,7 +3982,7 @@ void CRobotMain::CreateScene(bool bSoluce, bool bFixScene, bool bResetObject)
SetMovieLock(false);
if ( !m_bFixScene )
{
-//? CreateObject(D3DVECTOR(0.0f, 0.0f, 0.0f), 0.0f, 0.0f, OBJECT_TOTO);
+//? CreateObject(Math::Vector(0.0f, 0.0f, 0.0f), 0.0f, 0.0f, OBJECT_TOTO);
}
if ( read[0] != 0 ) // loading file ?
@@ -4207,7 +4208,7 @@ void CRobotMain::CreateScene(bool bSoluce, bool bFixScene, bool bResetObject)
pos.y += height;
dim.x = ddim;
dim.y = dim.x;
- m_particule->CreateParticule(pos, D3DVECTOR(0.0f, 0.0f, 0.0f), dim, type, delay, 0.0f, 0.0f);
+ m_particule->CreateParticule(pos, Math::Vector(0.0f, 0.0f, 0.0f), dim, type, delay, 0.0f, 0.0f);
}
if ( Cmd(line, "CreateLight") && !bResetObject )
@@ -4302,7 +4303,7 @@ void CRobotMain::CreateScene(bool bSoluce, bool bFixScene, bool bResetObject)
m_bMapImage = OpInt(line, "image", 0);
if ( m_bMapImage )
{
- D3DVECTOR offset;
+ Math::Vector offset;
OpString(line, "filename", m_mapFilename);
offset = OpPos(line, "offset");
m_map->SetFixParam(OpFloat(line, "zoom", 1.0f),
@@ -4338,7 +4339,7 @@ void CRobotMain::CreateScene(bool bSoluce, bool bFixScene, bool bResetObject)
if ( OpInt(line, "fadeIn", 0) == 1 )
{
- m_camera->StartOver(OE_FADEINw, D3DVECTOR(0.0f, 0.0f, 0.0f), 1.0f);
+ m_camera->StartOver(OE_FADEINw, Math::Vector(0.0f, 0.0f, 0.0f), 1.0f);
}
m_camera->SetFixDirection(OpFloat(line, "fixDirection", 0.25f)*Math::PI);
}
@@ -4491,7 +4492,7 @@ void CRobotMain::CreateScene(bool bSoluce, bool bFixScene, bool bResetObject)
// Creates an object of decoration mobile or stationary.
-CObject* CRobotMain::CreateObject(D3DVECTOR pos, float angle, float zoom, float height,
+CObject* CRobotMain::CreateObject(Math::Vector pos, float angle, float zoom, float height,
ObjectType type, float power,
bool bTrainer, bool bToy,
int option)
@@ -4830,7 +4831,7 @@ CObject* CRobotMain::CreateObject(D3DVECTOR pos, float angle, float zoom, float
void CRobotMain::CreateModel()
{
- D3DVECTOR direction;
+ Math::Vector direction;
D3DCOLORVALUE color;
m_engine->SetAmbiantColor(0xC0C0C0C0); // gray
@@ -4842,31 +4843,31 @@ void CRobotMain::CreateModel()
m_model->StartUserAction();
- direction = D3DVECTOR(1.0f, -1.0f, 1.0f);
+ direction = Math::Vector(1.0f, -1.0f, 1.0f);
color.r = 0.7f;
color.g = 0.7f;
color.b = 0.7f; // white
CreateLight(direction, color);
- direction = D3DVECTOR(-1.0f, -1.0f, 1.0f);
+ direction = Math::Vector(-1.0f, -1.0f, 1.0f);
color.r = 0.7f;
color.g = 0.7f;
color.b = 0.7f; // white
CreateLight(direction, color);
- direction = D3DVECTOR(1.0f, -1.0f, -1.0f);
+ direction = Math::Vector(1.0f, -1.0f, -1.0f);
color.r = 0.7f;
color.g = 0.7f;
color.b = 0.7f; // white
CreateLight(direction, color);
- direction = D3DVECTOR(-1.0f, -1.0f, -1.0f);
+ direction = Math::Vector(-1.0f, -1.0f, -1.0f);
color.r = 0.7f;
color.g = 0.7f;
color.b = 0.7f; // white
CreateLight(direction, color);
- direction = D3DVECTOR(0.0f, 1.0f, 0.0f);
+ direction = Math::Vector(0.0f, 1.0f, 0.0f);
color.r = 0.7f;
color.g = 0.7f;
color.b = 0.7f; // white
@@ -4883,7 +4884,7 @@ void CRobotMain::CreateModel()
// Creates a directional light.
-int CRobotMain::CreateLight(D3DVECTOR direction, D3DCOLORVALUE color)
+int CRobotMain::CreateLight(Math::Vector direction, D3DCOLORVALUE color)
{
D3DLIGHT7 light;
int obj;
@@ -4900,7 +4901,7 @@ int CRobotMain::CreateLight(D3DVECTOR direction, D3DCOLORVALUE color)
light.dcvDiffuse.r = color.r;
light.dcvDiffuse.g = color.g;
light.dcvDiffuse.b = color.b;
- light.dvDirection = direction;
+ light.dvDirection = VEC_TO_D3DVEC(direction);
obj = m_light->CreateLight();
m_light->SetLight(obj, light);
@@ -4909,7 +4910,7 @@ int CRobotMain::CreateLight(D3DVECTOR direction, D3DCOLORVALUE color)
// Creates a light spot.
-int CRobotMain::CreateSpot(D3DVECTOR pos, D3DCOLORVALUE color)
+int CRobotMain::CreateSpot(Math::Vector pos, D3DCOLORVALUE color)
{
D3DLIGHT7 light;
int obj;
@@ -4923,7 +4924,7 @@ int CRobotMain::CreateSpot(D3DVECTOR pos, D3DCOLORVALUE color)
light.dcvDiffuse.r = color.r;
light.dcvDiffuse.g = color.g;
light.dcvDiffuse.b = color.b;
- light.dvPosition = pos;
+ light.dvPosition = VEC_TO_D3DVEC(pos);
light.dvDirection = D3DVECTOR(0.0f, -1.0f, 0.0f);
light.dvRange = D3DLIGHT_RANGE_MAX;
light.dvFalloff = 1.0f;
@@ -5102,11 +5103,11 @@ bool CRobotMain::TestGadgetQuantity(int rank)
// Calculates the distance to the nearest object.
-float CRobotMain::SearchNearestObject(D3DVECTOR center, CObject *exclu)
+float CRobotMain::SearchNearestObject(Math::Vector center, CObject *exclu)
{
CObject* pObj;
ObjectType type;
- D3DVECTOR oPos;
+ Math::Vector oPos;
float min, dist, oRadius;
int i, j;
@@ -5128,7 +5129,7 @@ float CRobotMain::SearchNearestObject(D3DVECTOR center, CObject *exclu)
if ( oPos.x != center.x ||
oPos.z != center.z )
{
- dist = Length(center, oPos)-80.0f;
+ dist = Math::Distance(center, oPos)-80.0f;
if ( dist < 0.0f ) dist = 0.0f;
min = Math::Min(min, dist);
continue;
@@ -5140,7 +5141,7 @@ float CRobotMain::SearchNearestObject(D3DVECTOR center, CObject *exclu)
type == OBJECT_DESTROYER )
{
oPos = pObj->RetPosition(0);
- dist = Length(center, oPos)-8.0f;
+ dist = Math::Distance(center, oPos)-8.0f;
if ( dist < 0.0f ) dist = 0.0f;
min = Math::Min(min, dist);
}
@@ -5148,7 +5149,7 @@ float CRobotMain::SearchNearestObject(D3DVECTOR center, CObject *exclu)
j = 0;
while ( pObj->GetCrashSphere(j++, oPos, oRadius) )
{
- dist = Length(center, oPos)-oRadius;
+ dist = Math::Distance(center, oPos)-oRadius;
if ( dist < 0.0f ) dist = 0.0f;
min = Math::Min(min, dist);
}
@@ -5158,10 +5159,10 @@ float CRobotMain::SearchNearestObject(D3DVECTOR center, CObject *exclu)
// Calculates a free space.
-bool CRobotMain::FreeSpace(D3DVECTOR &center, float minRadius, float maxRadius,
+bool CRobotMain::FreeSpace(Math::Vector &center, float minRadius, float maxRadius,
float space, CObject *exclu)
{
- D3DVECTOR pos;
+ Math::Vector pos;
Math::Point p;
float radius, ia, angle, dist, flat;
@@ -5224,7 +5225,7 @@ bool CRobotMain::FreeSpace(D3DVECTOR &center, float minRadius, float maxRadius,
// Calculates the maximum radius of a free space.
-float CRobotMain::RetFlatZoneRadius(D3DVECTOR center, float maxRadius,
+float CRobotMain::RetFlatZoneRadius(Math::Vector center, float maxRadius,
CObject *exclu)
{
float dist;
@@ -5262,7 +5263,7 @@ void CRobotMain::ShowDropZone(CObject* metal, CObject* truck)
{
CObject* pObj;
ObjectType type;
- D3DVECTOR center, oPos;
+ Math::Vector center, oPos;
float oMax, tMax, dist, oRadius, radius;
int i, j;
@@ -5286,7 +5287,7 @@ void CRobotMain::ShowDropZone(CObject* metal, CObject* truck)
if ( type == OBJECT_BASE )
{
oPos = pObj->RetPosition(0);
- dist = Length(center, oPos)-80.0f;
+ dist = Math::Distance(center, oPos)-80.0f;
oMax = Math::Min(oMax, dist);
}
else
@@ -5294,7 +5295,7 @@ void CRobotMain::ShowDropZone(CObject* metal, CObject* truck)
j = 0;
while ( pObj->GetCrashSphere(j++, oPos, oRadius) )
{
- dist = Length(center, oPos)-oRadius;
+ dist = Math::Distance(center, oPos)-oRadius;
oMax = Math::Min(oMax, dist);
}
}
@@ -5321,7 +5322,7 @@ void CRobotMain::ShowDropZone(CObject* metal, CObject* truck)
j = 0;
while ( pObj->GetCrashSphere(j++, oPos, oRadius) )
{
- dist = Length(center, oPos)-oRadius-BUILDMARGIN;
+ dist = Math::Distance(center, oPos)-oRadius-BUILDMARGIN;
oMax = Math::Min(oMax, dist);
}
}
@@ -5371,7 +5372,7 @@ void CRobotMain::FlushShowLimit(int i)
// Specifies the boundaries to show.
void CRobotMain::SetShowLimit(int i, ParticuleType parti, CObject *pObj,
- D3DVECTOR pos, float radius, float duration)
+ Math::Vector pos, float radius, float duration)
{
Math::Point dim;
float dist;
@@ -5403,13 +5404,13 @@ void CRobotMain::SetShowLimit(int i, ParticuleType parti, CObject *pObj,
for ( j=0 ; j<m_showLimit[i].total ; j++ )
{
- m_showLimit[i].parti[j] = m_particule->CreateParticule(pos, D3DVECTOR(0.0f, 0.0f, 0.0f), dim, parti, duration);
+ m_showLimit[i].parti[j] = m_particule->CreateParticule(pos, Math::Vector(0.0f, 0.0f, 0.0f), dim, parti, duration);
}
}
// Adjusts the boundaries to show.
-void CRobotMain::AdjustShowLimit(int i, D3DVECTOR pos)
+void CRobotMain::AdjustShowLimit(int i, Math::Vector pos)
{
m_showLimit[i].pos = pos;
}
@@ -5430,7 +5431,7 @@ void CRobotMain::StartShowLimit()
void CRobotMain::FrameShowLimit(float rTime)
{
- D3DVECTOR pos;
+ Math::Vector pos;
Math::Point center, rotate;
float angle, factor, speed;
int i, j;
@@ -5869,7 +5870,7 @@ bool CRobotMain::IsBusy()
void CRobotMain::IOWriteObject(FILE *file, CObject* pObj, char *cmd)
{
- D3DVECTOR pos;
+ Math::Vector pos;
CBrain* pBrain;
char line[3000];
char name[100];
@@ -6075,7 +6076,7 @@ CObject* CRobotMain::IOReadObject(char *line, char* filename, int objRank)
CObject* pObj;
//? CBrain* pBrain;
CAuto* pAuto;
- D3DVECTOR pos, dir, zoom;
+ Math::Vector pos, dir, zoom;
ObjectType type;
int id, run, trainer, toy, option, i;
char op[10];
@@ -6365,7 +6366,7 @@ void CRobotMain::ResetObject()
CBrain* brain;
CPyro* pyro;
ResetCap cap;
- D3DVECTOR pos, angle;
+ Math::Vector pos, angle;
int i;
// Removes all pyrotechnic effects in progress.
@@ -6499,7 +6500,7 @@ void CRobotMain::ResetCreate()
Error CRobotMain::CheckEndMission(bool bFrame)
{
CObject* pObj;
- D3DVECTOR bPos, oPos;
+ Math::Vector bPos, oPos;
ObjectType type;
int t, i, nb;
@@ -6541,7 +6542,7 @@ Error CRobotMain::CheckEndMission(bool bFrame)
oPos = pObj->RetTruck()->RetPosition(0);
}
oPos.y = 0.0f;
- if ( Length2d(oPos, bPos) <= m_endTake[t].dist )
+ if ( Math::DistanceProjected(oPos, bPos) <= m_endTake[t].dist )
{
nb ++;
}
@@ -6563,7 +6564,7 @@ Error CRobotMain::CheckEndMission(bool bFrame)
{
if ( m_lostDelay == 0.0f )
{
- m_displayText->DisplayError(INFO_LOST, D3DVECTOR(0.0f,0.0f,0.0f));
+ m_displayText->DisplayError(INFO_LOST, Math::Vector(0.0f,0.0f,0.0f));
m_lostDelay = m_endTakeLostDelay; // lost in 6 seconds
m_winDelay = 0.0f;
}
@@ -6610,7 +6611,7 @@ Error CRobotMain::CheckEndMission(bool bFrame)
if ( m_winDelay == 0.0f )
{
- m_displayText->DisplayError(INFO_WIN, D3DVECTOR(0.0f,0.0f,0.0f));
+ m_displayText->DisplayError(INFO_WIN, Math::Vector(0.0f,0.0f,0.0f));
m_winDelay = m_endTakeWinDelay; // wins in two seconds
m_lostDelay = 0.0f;
}
@@ -6630,7 +6631,7 @@ void CRobotMain::CheckEndMessage(char *message)
if ( strcmp(m_endTake[t].message, message) == 0 )
{
- m_displayText->DisplayError(INFO_WIN, D3DVECTOR(0.0f,0.0f,0.0f));
+ m_displayText->DisplayError(INFO_WIN, Math::Vector(0.0f,0.0f,0.0f));
m_winDelay = m_endTakeWinDelay; // wins in 2 seconds
m_lostDelay = 0.0f;
}
diff --git a/src/object/robotmain.h b/src/object/robotmain.h
index 38f9e3e..5dde5c8 100644
--- a/src/object/robotmain.h
+++ b/src/object/robotmain.h
@@ -24,7 +24,7 @@
#include "common/misc.h"
#include "graphics/d3d/d3dengine.h"
#include "object/object.h"
-#include "graphics/common/mainmovie.h"
+#include "object/mainmovie.h"
#include "graphics/common/camera.h"
#include "graphics/common/particule.h"
@@ -91,7 +91,7 @@ class CSound;
struct EndTake
{
- D3DVECTOR pos;
+ Math::Vector pos;
float dist;
ObjectType type;
int min; // wins if>
@@ -119,7 +119,7 @@ const float SHOWLIMITTIME = 20.0f;
struct ShowLimit
{
bool bUsed;
- D3DVECTOR pos;
+ Math::Vector pos;
float radius;
int total;
int parti[MAXSHOWPARTI];
@@ -178,7 +178,7 @@ public:
void SelectHuman();
CObject* SearchHuman();
CObject* SearchToto();
- CObject* SearchNearest(D3DVECTOR pos, CObject* pExclu);
+ CObject* SearchNearest(Math::Vector pos, CObject* pExclu);
bool SelectObject(CObject* pObj, bool bDisplayError=true);
CObject* RetSelectObject();
CObject* DeselectAll();
@@ -254,14 +254,14 @@ public:
void ClearInterface();
void ChangeColor();
- float SearchNearestObject(D3DVECTOR center, CObject *exclu);
- bool FreeSpace(D3DVECTOR &center, float minRadius, float maxRadius, float space, CObject *exclu);
- float RetFlatZoneRadius(D3DVECTOR center, float maxRadius, CObject *exclu);
+ float SearchNearestObject(Math::Vector center, CObject *exclu);
+ bool FreeSpace(Math::Vector &center, float minRadius, float maxRadius, float space, CObject *exclu);
+ float RetFlatZoneRadius(Math::Vector center, float maxRadius, CObject *exclu);
void HideDropZone(CObject* metal);
void ShowDropZone(CObject* metal, CObject* truck);
void FlushShowLimit(int i);
- void SetShowLimit(int i, ParticuleType parti, CObject *pObj, D3DVECTOR pos, float radius, float duration=SHOWLIMITTIME);
- void AdjustShowLimit(int i, D3DVECTOR pos);
+ void SetShowLimit(int i, ParticuleType parti, CObject *pObj, Math::Vector pos, float radius, float duration=SHOWLIMITTIME);
+ void AdjustShowLimit(int i, Math::Vector pos);
void StartShowLimit();
void FrameShowLimit(float rTime);
@@ -287,7 +287,7 @@ public:
void IOWriteObject(FILE *file, CObject* pObj, char *cmd);
CObject* IOReadObject(char *line, char* filename, int objRank);
- int CreateSpot(D3DVECTOR pos, D3DCOLORVALUE color);
+ int CreateSpot(Math::Vector pos, D3DCOLORVALUE color);
protected:
bool EventFrame(const Event &event);
@@ -298,9 +298,9 @@ protected:
void CreateScene(bool bSoluce, bool bFixScene, bool bResetObject);
void CreateModel();
- D3DVECTOR LookatPoint( D3DVECTOR eye, float angleH, float angleV, float length );
- CObject* CreateObject(D3DVECTOR pos, float angle, float zoom, float height, ObjectType type, float power=1.0f, bool bTrainer=false, bool bToy=false, int option=0);
- int CreateLight(D3DVECTOR direction, D3DCOLORVALUE color);
+ Math::Vector LookatPoint( Math::Vector eye, float angleH, float angleV, float length );
+ CObject* CreateObject(Math::Vector pos, float angle, float zoom, float height, ObjectType type, float power=1.0f, bool bTrainer=false, bool bToy=false, int option=0);
+ int CreateLight(Math::Vector direction, D3DCOLORVALUE color);
void HiliteClear();
void HiliteObject(Math::Point pos);
void HiliteFrame(float rTime);
@@ -425,8 +425,8 @@ protected:
CObject* m_visitArrow;
float m_visitTime;
float m_visitParticule;
- D3DVECTOR m_visitPos;
- D3DVECTOR m_visitPosArrow;
+ Math::Vector m_visitPos;
+ Math::Vector m_visitPosArrow;
int m_endTakeTotal;
EndTake m_endTake[10];
diff --git a/src/object/task/taskadvance.cpp b/src/object/task/taskadvance.cpp
index 8387dbe..c7326c4 100644
--- a/src/object/task/taskadvance.cpp
+++ b/src/object/task/taskadvance.cpp
@@ -22,6 +22,7 @@
#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"
@@ -100,7 +101,7 @@ Error CTaskAdvance::Start(float length)
Error CTaskAdvance::IsEnded()
{
- D3DVECTOR pos;
+ Math::Vector pos;
float length;
if ( m_engine->RetPause() ) return ERR_CONTINUE;
@@ -117,7 +118,7 @@ Error CTaskAdvance::IsEnded()
}
pos = m_object->RetPosition(0);
- length = Length2d(pos, m_startPos);
+ length = Math::DistanceProjected(pos, m_startPos);
if ( length > m_lastDist ) // forward?
{
diff --git a/src/object/task/taskadvance.h b/src/object/task/taskadvance.h
index ee7346f..a109962 100644
--- a/src/object/task/taskadvance.h
+++ b/src/object/task/taskadvance.h
@@ -48,7 +48,7 @@ protected:
float m_advanceLength;
float m_direction;
float m_timeLimit;
- D3DVECTOR m_startPos;
+ Math::Vector m_startPos;
float m_lastDist;
float m_fixTime;
bool m_bError;
diff --git a/src/object/task/taskbuild.cpp b/src/object/task/taskbuild.cpp
index a031ade..6a448c9 100644
--- a/src/object/task/taskbuild.cpp
+++ b/src/object/task/taskbuild.cpp
@@ -88,7 +88,7 @@ CTaskBuild::~CTaskBuild()
// Creates a building.
-bool CTaskBuild::CreateBuilding(D3DVECTOR pos, float angle)
+bool CTaskBuild::CreateBuilding(Math::Vector pos, float angle)
{
m_building = new CObject(m_iMan);
if ( !m_building->CreateBuilding(pos, angle, 0.0f, m_type, 0.0f) )
@@ -127,7 +127,7 @@ void CTaskBuild::CreateLight()
{
D3DLIGHT7 light;
D3DCOLORVALUE color;
- D3DVECTOR center, pos, dir;
+ Math::Vector center, pos, dir;
Math::Point c, p;
float angle;
int i;
@@ -211,8 +211,8 @@ void CTaskBuild::BlackLight()
bool CTaskBuild::EventProcess(const Event &event)
{
- D3DMATRIX* mat;
- D3DVECTOR pos, dir, speed;
+ Math::Matrix* mat;
+ Math::Vector pos, dir, speed;
Math::Point dim;
float a, g, cirSpeed, dist, linSpeed;
@@ -238,7 +238,7 @@ bool CTaskBuild::EventProcess(const Event &event)
if ( m_phase == TBP_MOVE ) // preliminary forward/backward?
{
- dist = Length(m_object->RetPosition(0), m_metal->RetPosition(0));
+ dist = Math::Distance(m_object->RetPosition(0), m_metal->RetPosition(0));
linSpeed = 0.0f;
if ( dist > 30.0f ) linSpeed = 1.0f;
if ( dist < 30.0f ) linSpeed = -1.0f;
@@ -278,7 +278,7 @@ bool CTaskBuild::EventProcess(const Event &event)
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->SetPosition(14, Math::Vector(-1.5f, 0.3f, -1.35f));
m_object->SetAngleZ(14, Math::PI);
m_camera->FlushEffect();
Abort();
@@ -320,7 +320,7 @@ bool CTaskBuild::EventProcess(const Event &event)
dim.y = dim.x;
m_particule->CreateParticule(pos, speed, dim, PARTIFIRE);
- pos = D3DVECTOR(0.0f, 0.5f, 0.0f);
+ pos = Math::Vector(0.0f, 0.5f, 0.0f);
mat = m_object->RetWorldMatrix(14);
pos = Transform(*mat, pos);
speed = m_metal->RetPosition(0);
@@ -345,7 +345,7 @@ bool CTaskBuild::EventProcess(const Event &event)
Error CTaskBuild::Start(ObjectType type)
{
- D3DVECTOR pos, speed, pv, pm;
+ Math::Vector pos, speed, pv, pm;
Error err;
float iAngle, oAngle;
@@ -391,7 +391,7 @@ Error CTaskBuild::Start(ObjectType type)
pv = m_object->RetPosition(0);
pv.y += 8.3f;
pm = m_metal->RetPosition(0);
- m_angleZ = Math::RotateAngle(Length2d(pv, pm), fabs(pv.y-pm.y));
+ m_angleZ = Math::RotateAngle(Math::DistanceProjected(pv, pm), fabs(pv.y-pm.y));
m_physics->SetFreeze(true); // it does not move
@@ -419,7 +419,7 @@ Error CTaskBuild::IsEnded()
{
m_physics->SetMotorSpeedZ(0.0f);
- dist = Length(m_object->RetPosition(0), m_metal->RetPosition(0));
+ dist = Math::Distance(m_object->RetPosition(0), m_metal->RetPosition(0));
if ( dist > 30.0f )
{
time = m_physics->RetLinTimeLength(dist-30.0f, 1.0f);
@@ -438,7 +438,7 @@ Error CTaskBuild::IsEnded()
if ( m_phase == TBP_MOVE ) // preliminary forward/backward?
{
- dist = Length(m_object->RetPosition(0), m_metal->RetPosition(0));
+ dist = Math::Distance(m_object->RetPosition(0), m_metal->RetPosition(0));
if ( dist >= 25.0f && dist <= 35.0f )
{
@@ -467,7 +467,7 @@ Error CTaskBuild::IsEnded()
m_motion->SetAction(MHS_FIRE); // shooting position
m_object->SetObjectParent(14, 4);
- m_object->SetPosition(14, D3DVECTOR(0.6f, 0.1f, 0.3f));
+ m_object->SetPosition(14, Math::Vector(0.6f, 0.1f, 0.3f));
m_object->SetAngleZ(14, 0.0f);
m_phase = TBP_PREP;
@@ -502,7 +502,7 @@ Error CTaskBuild::IsEnded()
m_metal = 0;
m_building->SetZoom(0, 1.0f);
- m_building->SetCirVibration(D3DVECTOR(0.0f, 0.0f, 0.0f));
+ m_building->SetCirVibration(Math::Vector(0.0f, 0.0f, 0.0f));
m_building->SetLock(false); // building usable
m_main->CreateShortcuts();
m_displayText->DisplayError(INFO_BUILD, m_buildingPos, 10.0f, 50.0f);
@@ -525,7 +525,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->SetPosition(14, Math::Vector(-1.5f, 0.3f, -1.35f));
m_object->SetAngleZ(14, Math::PI);
if ( m_type == OBJECT_FACTORY ||
@@ -574,7 +574,7 @@ Error CTaskBuild::FlatFloor()
{
CObject *pObj;
ObjectType type;
- D3DVECTOR center, pos, oPos, bPos;
+ Math::Vector center, pos, oPos, bPos;
Math::Point c, p;
float radius, max, oRadius, bRadius, angle, dist;
int i, j;
@@ -626,7 +626,7 @@ Error CTaskBuild::FlatFloor()
if ( type == OBJECT_BASE )
{
oPos = pObj->RetPosition(0);
- dist = Length(center, oPos)-80.0f;
+ dist = Math::Distance(center, oPos)-80.0f;
if ( dist < max )
{
max = dist;
@@ -640,7 +640,7 @@ Error CTaskBuild::FlatFloor()
j = 0;
while ( pObj->GetCrashSphere(j++, oPos, oRadius) )
{
- dist = Length(center, oPos)-oRadius;
+ dist = Math::Distance(center, oPos)-oRadius;
if ( dist < max )
{
max = dist;
@@ -692,7 +692,7 @@ Error CTaskBuild::FlatFloor()
j = 0;
while ( pObj->GetCrashSphere(j++, oPos, oRadius) )
{
- dist = Length(center, oPos)-oRadius;
+ dist = Math::Distance(center, oPos)-oRadius;
if ( dist < max )
{
max = dist;
@@ -718,7 +718,7 @@ CObject* CTaskBuild::SearchMetalObject(float &angle, float dMin, float dMax,
float aLimit, Error &err)
{
CObject *pObj, *pBest;
- D3DVECTOR iPos, oPos;
+ Math::Vector iPos, oPos;
ObjectType type;
float min, iAngle, a, aa, aBest, distance, magic;
int i;
@@ -745,7 +745,7 @@ CObject* CTaskBuild::SearchMetalObject(float &angle, float dMin, float dMax,
bMetal = true; // metal exists
oPos = pObj->RetPosition(0);
- distance = Length(oPos, iPos);
+ distance = Math::Distance(oPos, iPos);
a = Math::RotateAngle(oPos.x-iPos.x, iPos.z-oPos.z); // CW!
if ( distance > dMax ) continue;
@@ -784,10 +784,10 @@ CObject* CTaskBuild::SearchMetalObject(float &angle, float dMin, float dMax,
// Destroys all the close marks.
-void CTaskBuild::DeleteMark(D3DVECTOR pos, float radius)
+void CTaskBuild::DeleteMark(Math::Vector pos, float radius)
{
CObject* pObj;
- D3DVECTOR oPos;
+ Math::Vector oPos;
ObjectType type;
float distance;
int i;
@@ -807,7 +807,7 @@ void CTaskBuild::DeleteMark(D3DVECTOR pos, float radius)
type != OBJECT_MARKPOWER ) continue;
oPos = pObj->RetPosition(0);
- distance = Length(oPos, pos);
+ distance = Math::Distance(oPos, pos);
if ( distance <= radius )
{
pObj->DeleteObject(); // removes the mark
diff --git a/src/object/task/taskbuild.h b/src/object/task/taskbuild.h
index 44698bd..f1908d0 100644
--- a/src/object/task/taskbuild.h
+++ b/src/object/task/taskbuild.h
@@ -61,11 +61,11 @@ public:
protected:
Error FlatFloor();
- bool CreateBuilding(D3DVECTOR pos, float angle);
+ bool CreateBuilding(Math::Vector pos, float angle);
void CreateLight();
void BlackLight();
CObject* SearchMetalObject(float &angle, float dMin, float dMax, float aLimit, Error &err);
- void DeleteMark(D3DVECTOR pos, float radius);
+ void DeleteMark(Math::Vector pos, float radius);
protected:
ObjectType m_type; // type of construction
@@ -82,7 +82,7 @@ protected:
float m_speed; // speed of progression
float m_angleY; // rotation angle of the vehicle
float m_angleZ; // angle of rotation of the gun
- D3DVECTOR m_buildingPos; // initial position of the building
+ Math::Vector m_buildingPos; // initial position of the building
float m_buildingHeight; // height of the building
int m_lightRank[TBMAXLIGHT];// lights for the effects
int m_soundChannel;
diff --git a/src/object/task/taskfire.cpp b/src/object/task/taskfire.cpp
index a470933..4e28d35 100644
--- a/src/object/task/taskfire.cpp
+++ b/src/object/task/taskfire.cpp
@@ -22,6 +22,7 @@
#include <d3d.h>
#include "common/struct.h"
+#include "math/geometry.h"
#include "math/old/math3d.h"
#include "common/event.h"
#include "common/misc.h"
@@ -70,8 +71,8 @@ bool CTaskFire::EventProcess(const Event &event)
{
CObject* power;
CPhysics* physics;
- D3DMATRIX* mat;
- D3DVECTOR pos, speed, dir, vib;
+ Math::Matrix* mat;
+ Math::Vector pos, speed, dir, vib;
ObjectType type;
Math::Point dim;
float energy, fire;
@@ -106,10 +107,10 @@ bool CTaskFire::EventProcess(const Event &event)
for ( i=0 ; i<6 ; i++ )
{
- pos = D3DVECTOR(0.0f, 2.5f, 0.0f);
- pos = Transform(*mat, pos);
+ pos = Math::Vector(0.0f, 2.5f, 0.0f);
+ pos = Math::Transform(*mat, pos);
- speed = D3DVECTOR(200.0f, 0.0f, 0.0f);
+ speed = Math::Vector(200.0f, 0.0f, 0.0f);
physics = m_object->RetPhysics();
if ( physics != 0 )
@@ -120,7 +121,7 @@ bool CTaskFire::EventProcess(const Event &event)
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 = Math::Transform(*mat, speed);
speed -= pos;
dim.x = Math::Rand()*0.5f+0.5f;
@@ -136,16 +137,16 @@ bool CTaskFire::EventProcess(const Event &event)
for ( i=0 ; i<4 ; i++ )
{
- pos = D3DVECTOR(4.0f, 0.0f, 0.0f);
+ pos = Math::Vector(4.0f, 0.0f, 0.0f);
pos.y += (rand()%3-1)*1.5f;
pos.z += (rand()%3-1)*1.5f;
- pos = Transform(*mat, pos);
+ pos = Math::Transform(*mat, pos);
- speed = D3DVECTOR(200.0f, 0.0f, 0.0f);
+ speed = Math::Vector(200.0f, 0.0f, 0.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 = Math::Transform(*mat, speed);
speed -= pos;
dim.x = 1.0f;
@@ -154,11 +155,11 @@ bool CTaskFire::EventProcess(const Event &event)
2.0f, 200.0f, 0.5f, 1.0f);
m_particule->SetObjectFather(channel, m_object);
- speed = D3DVECTOR(5.0f, 0.0f, 0.0f);
+ speed = Math::Vector(5.0f, 0.0f, 0.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 = Math::Transform(*mat, speed);
speed -= pos;
speed.y += 5.0f;
@@ -184,17 +185,17 @@ bool CTaskFire::EventProcess(const Event &event)
{
if ( type == OBJECT_MOBILErc )
{
- pos = D3DVECTOR(0.0f, 0.0f, 0.0f);
+ pos = Math::Vector(0.0f, 0.0f, 0.0f);
}
else
{
- pos = D3DVECTOR(3.0f, 1.0f, 0.0f);
+ pos = Math::Vector(3.0f, 1.0f, 0.0f);
}
pos.y += (Math::Rand()-0.5f)*1.0f;
pos.z += (Math::Rand()-0.5f)*1.0f;
- pos = Transform(*mat, pos);
+ pos = Math::Transform(*mat, pos);
- speed = D3DVECTOR(200.0f, 0.0f, 0.0f);
+ speed = Math::Vector(200.0f, 0.0f, 0.0f);
physics = m_object->RetPhysics();
if ( physics != 0 )
@@ -205,7 +206,7 @@ bool CTaskFire::EventProcess(const Event &event)
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 = Math::Transform(*mat, speed);
speed -= pos;
dim.x = Math::Rand()*0.7f+0.7f;
@@ -218,16 +219,16 @@ bool CTaskFire::EventProcess(const Event &event)
if ( type != OBJECT_MOBILErc &&
m_progress > 0.3f )
{
- pos = D3DVECTOR(-1.0f, 1.0f, 0.0f);
+ pos = Math::Vector(-1.0f, 1.0f, 0.0f);
pos.y += (Math::Rand()-0.5f)*0.4f;
pos.z += (Math::Rand()-0.5f)*0.4f;
- pos = Transform(*mat, pos);
+ pos = Math::Transform(*mat, pos);
- speed = D3DVECTOR(-4.0f, 0.0f, 0.0f);
+ speed = Math::Vector(-4.0f, 0.0f, 0.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 = Math::Transform(*mat, speed);
speed -= pos;
dim.x = Math::Rand()*1.2f+1.2f;
@@ -238,7 +239,7 @@ bool CTaskFire::EventProcess(const Event &event)
}
}
- dir = D3DVECTOR(0.0f, 0.0f, 0.0f);
+ dir = Math::Vector(0.0f, 0.0f, 0.0f);
if ( m_progress < 0.1f )
{
dir.z = (Math::PI*0.04f)*(m_progress*10.0f);
@@ -279,7 +280,7 @@ bool CTaskFire::EventProcess(const Event &event)
Error CTaskFire::Start(float delay)
{
CObject* power;
- D3DVECTOR pos, goal, speed;
+ Math::Vector pos, goal, speed;
float energy, fire;
ObjectType type;
@@ -378,9 +379,9 @@ Error CTaskFire::IsEnded()
bool CTaskFire::Abort()
{
- m_object->SetInclinaison(D3DVECTOR(0.0f, 0.0f, 0.0f));
- m_object->SetCirVibration(D3DVECTOR(0.0f, 0.0f, 0.0f));
- m_object->SetLinVibration(D3DVECTOR(0.0f, 0.0f, 0.0f));
+ m_object->SetInclinaison(Math::Vector(0.0f, 0.0f, 0.0f));
+ m_object->SetCirVibration(Math::Vector(0.0f, 0.0f, 0.0f));
+ m_object->SetLinVibration(Math::Vector(0.0f, 0.0f, 0.0f));
if ( m_soundChannel != -1 )
{
diff --git a/src/object/task/taskfireant.cpp b/src/object/task/taskfireant.cpp
index 0c7aaf6..f2fbd09 100644
--- a/src/object/task/taskfireant.cpp
+++ b/src/object/task/taskfireant.cpp
@@ -60,7 +60,7 @@ CTaskFireAnt::~CTaskFireAnt()
bool CTaskFireAnt::EventProcess(const Event &event)
{
- D3DVECTOR dir, vib;
+ Math::Vector dir, vib;
float a, g, cirSpeed;
if ( m_engine->RetPause() ) return true;
@@ -93,9 +93,9 @@ bool CTaskFireAnt::EventProcess(const Event &event)
// Assigns the goal was achieved.
-Error CTaskFireAnt::Start(D3DVECTOR impact)
+Error CTaskFireAnt::Start(Math::Vector impact)
{
- D3DVECTOR pos;
+ Math::Vector pos;
ObjectType type;
m_impact = impact;
@@ -109,7 +109,7 @@ Error CTaskFireAnt::Start(D3DVECTOR impact)
// Insect on its back?
if ( m_object->RetFixed() ) return ERR_FIRE_VEH;
- m_physics->SetMotorSpeed(D3DVECTOR(0.0f, 0.0f, 0.0f));
+ m_physics->SetMotorSpeed(Math::Vector(0.0f, 0.0f, 0.0f));
pos = m_object->RetPosition(0);
m_angle = Math::RotateAngle(m_impact.x-pos.x, pos.z-m_impact.z); // CW !
@@ -129,8 +129,8 @@ Error CTaskFireAnt::Start(D3DVECTOR impact)
Error CTaskFireAnt::IsEnded()
{
- D3DMATRIX* mat;
- D3DVECTOR pos, speed;
+ Math::Matrix* mat;
+ Math::Vector pos, speed;
Math::Point dim;
float angle, dist;
int i, channel;
@@ -175,10 +175,10 @@ Error CTaskFireAnt::IsEnded()
for ( i=0 ; i<20 ; i++ )
{
- pos = D3DVECTOR(-2.5f, -0.7f, 0.0f);
+ pos = Math::Vector(-2.5f, -0.7f, 0.0f);
mat = m_object->RetWorldMatrix(2);
- pos = Transform(*mat, pos);
- dist = Length(pos, m_impact);
+ pos = Math::Transform(*mat, pos);
+ dist = Math::Distance(pos, m_impact);
speed = m_impact-pos;
speed.x += (Math::Rand()-0.5f)*dist*1.2f;
speed.y += (Math::Rand()-0.5f)*dist*0.4f+50.0f;
diff --git a/src/object/task/taskfireant.h b/src/object/task/taskfireant.h
index 8f9ea49..46df388 100644
--- a/src/object/task/taskfireant.h
+++ b/src/object/task/taskfireant.h
@@ -50,14 +50,14 @@ public:
bool EventProcess(const Event &event);
- Error Start(D3DVECTOR impact);
+ Error Start(Math::Vector impact);
Error IsEnded();
bool Abort();
protected:
protected:
- D3DVECTOR m_impact;
+ Math::Vector m_impact;
TaskFireAnt m_phase;
float m_progress;
float m_speed;
diff --git a/src/object/task/taskflag.cpp b/src/object/task/taskflag.cpp
index aa853f2..0899737 100644
--- a/src/object/task/taskflag.cpp
+++ b/src/object/task/taskflag.cpp
@@ -79,7 +79,7 @@ bool CTaskFlag::EventProcess(const Event &event)
Error CTaskFlag::Start(TaskFlagOrder order, int rank)
{
- D3DVECTOR pos, speed;
+ Math::Vector pos, speed;
Error err;
m_order = order;
@@ -145,11 +145,11 @@ bool CTaskFlag::Abort()
// Returns the closest object to a given position.
-CObject* CTaskFlag::SearchNearest(D3DVECTOR pos, ObjectType type)
+CObject* CTaskFlag::SearchNearest(Math::Vector pos, ObjectType type)
{
ObjectType oType;
CObject *pObj, *pBest;
- D3DVECTOR oPos;
+ Math::Vector oPos;
float min, dist;
int i;
@@ -177,7 +177,7 @@ CObject* CTaskFlag::SearchNearest(D3DVECTOR pos, ObjectType type)
}
oPos = pObj->RetPosition(0);
- dist = Length2d(oPos, pos);
+ dist = Math::DistanceProjected(oPos, pos);
if ( dist < min )
{
min = dist;
@@ -193,7 +193,7 @@ int CTaskFlag::CountObject(ObjectType type)
{
ObjectType oType;
CObject *pObj;
- D3DVECTOR oPos;
+ Math::Vector oPos;
int i, count;
count = 0;
@@ -230,8 +230,8 @@ Error CTaskFlag::CreateFlag(int rank)
CObject* pObj;
CObject* pNew;
CPyro* pyro;
- D3DMATRIX* mat;
- D3DVECTOR pos;
+ Math::Matrix* mat;
+ Math::Vector pos;
float dist;
int i;
@@ -245,12 +245,12 @@ Error CTaskFlag::CreateFlag(int rank)
};
mat = m_object->RetWorldMatrix(0);
- pos = Transform(*mat, D3DVECTOR(4.0f, 0.0f, 0.0f));
+ pos = Transform(*mat, Math::Vector(4.0f, 0.0f, 0.0f));
pObj = SearchNearest(pos, OBJECT_NULL);
if ( pObj != 0 )
{
- dist = Length(pos, pObj->RetPosition(0));
+ dist = Math::Distance(pos, pObj->RetPosition(0));
if ( dist < 10.0f )
{
return ERR_FLAG_PROXY;
@@ -284,7 +284,7 @@ Error CTaskFlag::DeleteFlag()
{
CObject* pObj;
CPyro* pyro;
- D3DVECTOR iPos, oPos;
+ Math::Vector iPos, oPos;
float iAngle, angle, aLimit, dist;
iPos = m_object->RetPosition(0);
@@ -296,7 +296,7 @@ Error CTaskFlag::DeleteFlag()
{
return ERR_FLAG_DELETE;
}
- dist = Length(iPos, pObj->RetPosition(0));
+ dist = Math::Distance(iPos, pObj->RetPosition(0));
if ( dist > 10.0f )
{
return ERR_FLAG_DELETE;
diff --git a/src/object/task/taskflag.h b/src/object/task/taskflag.h
index 52e78e4..dc15e27 100644
--- a/src/object/task/taskflag.h
+++ b/src/object/task/taskflag.h
@@ -53,7 +53,7 @@ public:
protected:
Error CreateFlag(int rank);
Error DeleteFlag();
- CObject* SearchNearest(D3DVECTOR pos, ObjectType type);
+ CObject* SearchNearest(Math::Vector pos, ObjectType type);
int CountObject(ObjectType type);
protected:
diff --git a/src/object/task/taskgoto.cpp b/src/object/task/taskgoto.cpp
index 3846564..06980c2 100644
--- a/src/object/task/taskgoto.cpp
+++ b/src/object/task/taskgoto.cpp
@@ -65,7 +65,7 @@ CTaskGoto::~CTaskGoto()
bool CTaskGoto::EventProcess(const Event &event)
{
- D3DVECTOR pos, goal;
+ Math::Vector pos, goal;
Math::Point rot, repulse;
float a, g, dist, linSpeed, cirSpeed, h, hh, factor, dir;
Error ret;
@@ -96,7 +96,7 @@ bool CTaskGoto::EventProcess(const Event &event)
rot.x = m_leakPos.x-pos.x;
rot.y = m_leakPos.z-pos.z;
- dist = Length(rot.x, rot.y);
+ dist = Math::Point(rot.x, rot.y).Length();
rot.x /= dist;
rot.y /= dist;
@@ -155,7 +155,7 @@ bool CTaskGoto::EventProcess(const Event &event)
if ( ret == ERR_OK )
{
#if 0
- D3DVECTOR min, max;
+ Math::Vector min, max;
min = pos;
max = m_goal;
if ( min.x > max.x ) Math::Swap(min.x, max.x);
@@ -175,7 +175,7 @@ bool CTaskGoto::EventProcess(const Event &event)
if ( ret == ERR_GOTO_IMPOSSIBLE || ret == ERR_GOTO_ITER )
{
#if 0
- D3DVECTOR min, max;
+ Math::Vector min, max;
min = pos;
max = m_goal;
if ( min.x > max.x ) Math::Swap(min.x, max.x);
@@ -229,7 +229,7 @@ bool CTaskGoto::EventProcess(const Event &event)
goal = m_bmPoints[m_bmIndex];
goal.y = pos.y;
h = m_terrain->RetFloorHeight(goal, true, true);
- dist = Length2d(pos, goal);
+ dist = Math::DistanceProjected(pos, goal);
if ( dist != 0.0f ) // anticipates?
{
linSpeed = m_physics->RetLinMotionX(MO_REASPEED);
@@ -255,7 +255,7 @@ bool CTaskGoto::EventProcess(const Event &event)
rot.x = m_bmPoints[m_bmIndex].x-pos.x;
rot.y = m_bmPoints[m_bmIndex].z-pos.z;
- dist = Length(rot.x, rot.y);
+ dist = Math::Point(rot.x, rot.y).Length();
rot.x /= dist;
rot.y /= dist;
@@ -284,7 +284,7 @@ bool CTaskGoto::EventProcess(const Event &event)
linSpeed = 0.0f; // turns first, then advance
}
- dist = Length2d(pos, m_bmWatchDogPos);
+ dist = Math::DistanceProjected(pos, m_bmWatchDogPos);
if ( dist < 1.0f && linSpeed != 0.0f )
{
m_bmWatchDogTime += event.rTime;
@@ -367,7 +367,7 @@ bool CTaskGoto::EventProcess(const Event &event)
m_altitude > 0.0f )
{
pos = m_object->RetPosition(0);
- dist = Length2d(m_goal, pos);
+ dist = Math::DistanceProjected(m_goal, pos);
factor = (dist-20.0f)/20.0f;
if ( factor < 0.0f ) factor = 0.0f;
if ( factor > 1.0f ) factor = 1.0f;
@@ -406,7 +406,7 @@ bool CTaskGoto::EventProcess(const Event &event)
if ( cirSpeed > 1.0f ) cirSpeed = 1.0f;
if ( cirSpeed < -1.0f ) cirSpeed = -1.0f;
- dist = Length2d(m_goal, pos);
+ dist = Math::DistanceProjected(m_goal, pos);
linSpeed = dist/(m_physics->RetLinStopLength()*1.5f);
if ( linSpeed > 1.0f ) linSpeed = 1.0f;
@@ -419,7 +419,7 @@ bool CTaskGoto::EventProcess(const Event &event)
rot.x = m_goal.x-pos.x;
rot.y = m_goal.z-pos.z;
- dist = Length(rot.x, rot.y);
+ dist = Math::Point(rot.x, rot.y).Length();
rot.x /= dist;
rot.y /= dist;
@@ -438,7 +438,7 @@ bool CTaskGoto::EventProcess(const Event &event)
if ( cirSpeed > 1.0f ) cirSpeed = 1.0f;
if ( cirSpeed < -1.0f ) cirSpeed = -1.0f;
- dist = Length2d(m_goal, pos);
+ dist = Math::DistanceProjected(m_goal, pos);
linSpeed = dist/(m_physics->RetLinStopLength()*1.5f);
//? if ( m_physics->RetType() == TYPE_FLYING &&
//? m_physics->RetLand() ) // flying on the ground?
@@ -516,11 +516,11 @@ bool CTaskGoto::EventProcess(const Event &event)
// Sought a target for the worm.
-CObject* CTaskGoto::WormSearch(D3DVECTOR &impact)
+CObject* CTaskGoto::WormSearch(Math::Vector &impact)
{
CObject* pObj;
CObject* pBest = 0;
- D3DVECTOR iPos, oPos;
+ Math::Vector iPos, oPos;
ObjectType oType;
float distance, min, radius;
int i;
@@ -581,7 +581,7 @@ CObject* CTaskGoto::WormSearch(D3DVECTOR &impact)
if ( pObj->RetVirusMode() ) continue; // object infected?
if ( !pObj->GetCrashSphere(0, oPos, radius) ) continue;
- distance = Length2d(oPos, iPos);
+ distance = Math::DistanceProjected(oPos, iPos);
if ( distance < min )
{
min = distance;
@@ -599,7 +599,7 @@ CObject* CTaskGoto::WormSearch(D3DVECTOR &impact)
void CTaskGoto::WormFrame(float rTime)
{
CObject* pObj;
- D3DVECTOR impact, pos;
+ Math::Vector impact, pos;
float dist;
m_wormLastTime += rTime;
@@ -612,7 +612,7 @@ void CTaskGoto::WormFrame(float rTime)
if ( pObj != 0 )
{
pos = m_object->RetPosition(0);
- dist = Length(pos, impact);
+ dist = Math::Distance(pos, impact);
if ( dist <= 15.0f )
{
pObj->SetVirusMode(true); // bam, infected!
@@ -626,10 +626,10 @@ void CTaskGoto::WormFrame(float rTime)
// Assigns the goal was achieved.
// "dist" is the distance that needs to go far to make a deposit or object.
-Error CTaskGoto::Start(D3DVECTOR goal, float altitude,
+Error CTaskGoto::Start(Math::Vector goal, float altitude,
TaskGotoGoal goalMode, TaskGotoCrash crashMode)
{
- D3DVECTOR pos;
+ Math::Vector pos;
CObject* target;
ObjectType type;
float dist;
@@ -677,7 +677,7 @@ Error CTaskGoto::Start(D3DVECTOR goal, float altitude,
m_bmFinalMove = 0.0f;
pos = m_object->RetPosition(0);
- dist = Length2d(pos, m_goal);
+ dist = Math::DistanceProjected(pos, m_goal);
if ( dist < 10.0f && m_crashMode == TGC_BEAM )
{
m_crashMode = TGC_RIGHTLEFT;
@@ -754,7 +754,7 @@ Error CTaskGoto::Start(D3DVECTOR goal, float altitude,
if ( m_physics->RetType() == TYPE_FLYING && m_altitude == 0.0f )
{
pos = m_object->RetPosition(0);
- dist = Length2d(pos, m_goal);
+ dist = Math::DistanceProjected(pos, m_goal);
if ( dist > FLY_DIST_GROUND ) // over 20 meters?
{
m_altitude = FLY_DEF_HEIGHT; // default altitude
@@ -770,7 +770,7 @@ Error CTaskGoto::Start(D3DVECTOR goal, float altitude,
if ( BitmapTestDot(0, x, y) ) // arrival occupied?
{
#if 0
- D3DVECTOR min, max;
+ Math::Vector min, max;
min = m_object->RetPosition(0);
max = m_goal;
if ( min.x > max.x ) Math::Swap(min.x, max.x);
@@ -794,7 +794,7 @@ Error CTaskGoto::Start(D3DVECTOR goal, float altitude,
Error CTaskGoto::IsEnded()
{
- D3DVECTOR pos;
+ Math::Vector pos;
float limit, angle, dist, h, level;
if ( m_engine->RetPause() ) return ERR_CONTINUE;
@@ -907,7 +907,7 @@ Error CTaskGoto::IsEnded()
if ( m_goalMode == TGG_EXPRESS )
{
- dist = Length2d(m_goal, pos);
+ dist = Math::DistanceProjected(m_goal, pos);
if ( dist < 10.0f && dist > m_lastDistance )
{
return ERR_STOP;
@@ -1001,7 +1001,7 @@ Error CTaskGoto::IsEnded()
if ( m_phase == TGP_CRADVANCE ) // advance after collision?
{
- if ( Length(pos, m_pos) >= 5.0f )
+ if ( Math::Distance(pos, m_pos) >= 5.0f )
{
m_phase = TGP_ADVANCE;
}
@@ -1034,7 +1034,7 @@ Error CTaskGoto::IsEnded()
if ( m_phase == TGP_CLADVANCE ) // advance after collision?
{
- if ( Length(pos, m_pos) >= 10.0f )
+ if ( Math::Distance(pos, m_pos) >= 10.0f )
{
m_phase = TGP_ADVANCE;
m_try ++;
@@ -1050,7 +1050,7 @@ Error CTaskGoto::IsEnded()
return ERR_STOP;
}
- dist = Length(m_bmFinalPos, m_object->RetPosition(0));
+ dist = Math::Distance(m_bmFinalPos, m_object->RetPosition(0));
if ( dist < m_bmFinalDist ) return ERR_CONTINUE;
m_physics->SetMotorSpeedX(0.0f); // stops the advance
return ERR_STOP;
@@ -1062,10 +1062,10 @@ Error CTaskGoto::IsEnded()
// Tries the object is the target position.
-CObject* CTaskGoto::SearchTarget(D3DVECTOR pos, float margin)
+CObject* CTaskGoto::SearchTarget(Math::Vector pos, float margin)
{
CObject *pObj, *pBest;
- D3DVECTOR oPos;
+ Math::Vector oPos;
float dist, min;
int i;
@@ -1080,7 +1080,7 @@ CObject* CTaskGoto::SearchTarget(D3DVECTOR pos, float margin)
if ( pObj->RetTruck() != 0 ) continue; // object transtorted?
oPos = pObj->RetPosition(0);
- dist = Length2d(pos, oPos);
+ dist = Math::DistanceProjected(pos, oPos);
if ( dist <= margin && dist <= min )
{
@@ -1095,12 +1095,12 @@ CObject* CTaskGoto::SearchTarget(D3DVECTOR pos, float margin)
// Adjusts the target as a function of the object.
// Returns true if it is cargo laying on the ground, which can be approached from any site.
-bool CTaskGoto::AdjustTarget(CObject* pObj, D3DVECTOR &pos, float &distance)
+bool CTaskGoto::AdjustTarget(CObject* pObj, Math::Vector &pos, float &distance)
{
ObjectType type;
Character* character;
- D3DMATRIX* mat;
- D3DVECTOR goal;
+ Math::Matrix* mat;
+ Math::Vector goal;
float dist, suppl;
type = m_object->RetType();
@@ -1141,7 +1141,7 @@ bool CTaskGoto::AdjustTarget(CObject* pObj, D3DVECTOR &pos, float &distance)
{
pos = m_object->RetPosition(0);
goal = pObj->RetPosition(0);
- dist = Length(goal, pos);
+ dist = Math::Distance(goal, pos);
pos = (pos-goal)*(TAKE_DIST+distance)/dist + goal;
return true; // approach from all sites
}
@@ -1150,7 +1150,7 @@ bool CTaskGoto::AdjustTarget(CObject* pObj, D3DVECTOR &pos, float &distance)
{
pos = m_object->RetPosition(0);
goal = pObj->RetPosition(0);
- dist = Length(goal, pos);
+ dist = Math::Distance(goal, pos);
pos = (pos-goal)*(TAKE_DIST+distance)/dist + goal;
return true; // approach from all sites
}
@@ -1206,10 +1206,10 @@ bool CTaskGoto::AdjustTarget(CObject* pObj, D3DVECTOR &pos, float &distance)
// If you are on an object produced by a building (ore produced by derrick),
// changes the position by report the building.
-bool CTaskGoto::AdjustBuilding(D3DVECTOR &pos, float margin, float &distance)
+bool CTaskGoto::AdjustBuilding(Math::Vector &pos, float margin, float &distance)
{
CObject* pObj;
- D3DVECTOR oPos;
+ Math::Vector oPos;
float dist, suppl;
int i;
@@ -1222,7 +1222,7 @@ bool CTaskGoto::AdjustBuilding(D3DVECTOR &pos, float margin, float &distance)
if ( pObj->RetTruck() != 0 ) continue; // object transported?
if ( !GetHotPoint(pObj, oPos, false, 0.0f, suppl) ) continue;
- dist = Length2d(pos, oPos);
+ dist = Math::DistanceProjected(pos, oPos);
if ( dist <= margin )
{
GetHotPoint(pObj, pos, true, distance, suppl);
@@ -1235,13 +1235,13 @@ bool CTaskGoto::AdjustBuilding(D3DVECTOR &pos, float margin, float &distance)
// Returns the item or product or pose is something on a building.
-bool CTaskGoto::GetHotPoint(CObject *pObj, D3DVECTOR &pos,
+bool CTaskGoto::GetHotPoint(CObject *pObj, Math::Vector &pos,
bool bTake, float distance, float &suppl)
{
ObjectType type;
- D3DMATRIX* mat;
+ Math::Matrix* mat;
- pos = D3DVECTOR(0.0f, 0.0f, 0.0f);
+ pos = Math::Vector(0.0f, 0.0f, 0.0f);
suppl = 0.0f;
type = pObj->RetType();
@@ -1371,10 +1371,10 @@ bool CTaskGoto::GetHotPoint(CObject *pObj, D3DVECTOR &pos,
// Seeks an object too close that he must flee.
-bool CTaskGoto::LeakSearch(D3DVECTOR &pos, float &delay)
+bool CTaskGoto::LeakSearch(Math::Vector &pos, float &delay)
{
CObject *pObj, *pObstacle;
- D3DVECTOR iPos, oPos, bPos;
+ Math::Vector iPos, oPos, bPos;
float iRadius, oRadius, bRadius, dist, min, dir;
int i, j;
@@ -1396,7 +1396,7 @@ bool CTaskGoto::LeakSearch(D3DVECTOR &pos, float &delay)
j = 0;
while ( pObj->GetCrashSphere(j++, oPos, oRadius) )
{
- dist = Length2d(oPos, iPos);
+ dist = Math::DistanceProjected(oPos, iPos);
if ( dist < min )
{
min = dist;
@@ -1431,7 +1431,7 @@ bool CTaskGoto::LeakSearch(D3DVECTOR &pos, float &delay)
void CTaskGoto::ComputeRepulse(Math::Point &dir)
{
#if 0
- D3DVECTOR iPos, oPos;
+ Math::Vector iPos, oPos;
Math::Point repulse;
CObject *pObj;
float dist, iRadius, oRadius;
@@ -1451,12 +1451,12 @@ void CTaskGoto::ComputeRepulse(Math::Point &dir)
if ( pObj->RetTruck() != 0 ) continue;
oPos = pObj->RetPosition(0);
- dist = Length(oPos, m_goalObject);
+ dist = Math::Distance(oPos, m_goalObject);
if ( dist <= 1.0f ) continue;
pObj->GetGlobalSphere(oPos, oRadius);
oRadius += iRadius+m_physics->RetLinStopLength()*1.1f;
- dist = Length2d(oPos, iPos);
+ dist = Math::DistanceProjected(oPos, iPos);
if ( dist <= oRadius )
{
repulse.x = iPos.x-oPos.x;
@@ -1476,7 +1476,7 @@ void CTaskGoto::ComputeRepulse(Math::Point &dir)
}
#else
ObjectType iType, oType;
- D3DVECTOR iPos, oPos;
+ Math::Vector iPos, oPos;
Math::Point repulse;
CObject *pObj;
float gDist, add, addi, fac, dist, iRadius, oRadius;
@@ -1491,7 +1491,7 @@ void CTaskGoto::ComputeRepulse(Math::Point &dir)
if ( iType == OBJECT_WORM ) return;
m_object->GetCrashSphere(0, iPos, iRadius);
- gDist = Length(iPos, m_goal);
+ gDist = Math::Distance(iPos, m_goal);
add = m_physics->RetLinStopLength()*1.1f; // braking distance
fac = 2.0f;
@@ -1616,11 +1616,11 @@ void CTaskGoto::ComputeRepulse(Math::Point &dir)
if ( oPos.y-oRadius > iPos.y+iRadius ) continue;
if ( oPos.y+oRadius < iPos.y-iRadius ) continue;
- dist = Length(oPos, m_goal);
+ dist = Math::Distance(oPos, m_goal);
if ( dist <= 1.0f ) continue; // on purpose?
oRadius += iRadius+addi;
- dist = Length2d(oPos, iPos);
+ dist = Math::DistanceProjected(oPos, iPos);
if ( dist > gDist ) continue; // beyond the goal?
if ( dist <= oRadius )
{
@@ -1646,7 +1646,7 @@ void CTaskGoto::ComputeRepulse(Math::Point &dir)
void CTaskGoto::ComputeFlyingRepulse(float &dir)
{
ObjectType oType;
- D3DVECTOR iPos, oPos;
+ Math::Vector iPos, oPos;
CObject *pObj;
float add, fac, dist, iRadius, oRadius, repulse;
int i, j;
@@ -1673,7 +1673,7 @@ void CTaskGoto::ComputeFlyingRepulse(float &dir)
while ( pObj->GetCrashSphere(j++, oPos, oRadius) )
{
oRadius += iRadius+add;
- dist = Length2d(oPos, iPos);
+ dist = Math::DistanceProjected(oPos, iPos);
if ( dist <= oRadius )
{
repulse = iPos.y-oPos.y;
@@ -1715,7 +1715,7 @@ int CTaskGoto::BeamShortcut()
void CTaskGoto::BeamStart()
{
- D3DVECTOR min, max;
+ Math::Vector min, max;
BitmapOpen();
BitmapObject();
@@ -1765,7 +1765,7 @@ void CTaskGoto::BeamInit()
// ERR_CONTINUE if not done yet
// goalRadius: distance at which we must approach the goal
-Error CTaskGoto::BeamSearch(const D3DVECTOR &start, const D3DVECTOR &goal,
+Error CTaskGoto::BeamSearch(const Math::Vector &start, const Math::Vector &goal,
float goalRadius)
{
float step, len;
@@ -1773,7 +1773,7 @@ Error CTaskGoto::BeamSearch(const D3DVECTOR &start, const D3DVECTOR &goal,
m_bmStep ++;
- len = Length2d(start, goal);
+ len = Math::DistanceProjected(start, goal);
step = len/5.0f;
if ( step < BM_DIM_STEP*2.1f ) step = BM_DIM_STEP*2.1f;
if ( step > 20.0f ) step = 20.0f;
@@ -1791,12 +1791,12 @@ Error CTaskGoto::BeamSearch(const D3DVECTOR &start, const D3DVECTOR &goal,
// i number of recursions made
// nbIter maximum number of iterations you have the right to make before temporarily interrupt
-Error CTaskGoto::BeamExplore(const D3DVECTOR &prevPos, const D3DVECTOR &curPos,
- const D3DVECTOR &goalPos, float goalRadius,
+Error CTaskGoto::BeamExplore(const Math::Vector &prevPos, const Math::Vector &curPos,
+ const Math::Vector &goalPos, float goalRadius,
float angle, int nbDiv, float step,
int i, int nbIter)
{
- D3DVECTOR newPos;
+ Math::Vector newPos;
Error ret;
int iDiv, iClear, iLar;
@@ -1817,7 +1817,7 @@ Error CTaskGoto::BeamExplore(const D3DVECTOR &prevPos, const D3DVECTOR &curPos,
m_bmPoints[i] = curPos;
- if ( Length2d(curPos, goalPos)-goalRadius <= step )
+ if ( Math::DistanceProjected(curPos, goalPos)-goalRadius <= step )
{
if ( goalRadius == 0.0f )
{
@@ -1825,7 +1825,7 @@ Error CTaskGoto::BeamExplore(const D3DVECTOR &prevPos, const D3DVECTOR &curPos,
}
else
{
- newPos = BeamPoint(curPos, goalPos, 0, Length2d(curPos, goalPos)-goalRadius);
+ newPos = BeamPoint(curPos, goalPos, 0, Math::DistanceProjected(curPos, goalPos)-goalRadius);
}
if ( BitmapTestLine(curPos, newPos, angle/nbDiv, false) )
{
@@ -1882,11 +1882,11 @@ Error CTaskGoto::BeamExplore(const D3DVECTOR &prevPos, const D3DVECTOR &curPos,
// Is a right "start-goal". Calculates the point located at the distance "step"
// from the point "start" and an angle "angle" with the right.
-D3DVECTOR CTaskGoto::BeamPoint(const D3DVECTOR &startPoint,
- const D3DVECTOR &goalPoint,
+Math::Vector CTaskGoto::BeamPoint(const Math::Vector &startPoint,
+ const Math::Vector &goalPoint,
float angle, float step)
{
- D3DVECTOR resPoint;
+ Math::Vector resPoint;
float goalAngle;
goalAngle = Math::RotateAngle(goalPoint.x-startPoint.x, goalPoint.z-startPoint.z);
@@ -1900,8 +1900,8 @@ D3DVECTOR CTaskGoto::BeamPoint(const D3DVECTOR &startPoint,
// Displays a bitmap part.
-void CTaskGoto::BitmapDebug(const D3DVECTOR &min, const D3DVECTOR &max,
- const D3DVECTOR &start, const D3DVECTOR &goal)
+void CTaskGoto::BitmapDebug(const Math::Vector &min, const Math::Vector &max,
+ const Math::Vector &start, const Math::Vector &goal)
{
int minx, miny, maxx, maxy, x, y, i ,n;
char s[2000];
@@ -1978,17 +1978,17 @@ void CTaskGoto::BitmapDebug(const D3DVECTOR &min, const D3DVECTOR &max,
// Tests if a path along a straight line is possible.
-bool CTaskGoto::BitmapTestLine(const D3DVECTOR &start, const D3DVECTOR &goal,
+bool CTaskGoto::BitmapTestLine(const Math::Vector &start, const Math::Vector &goal,
float stepAngle, bool bSecond)
{
- D3DVECTOR pos, inc;
+ Math::Vector pos, inc;
float dist, step;
float distNoB2;
int i, max, x, y;
if ( m_bmArray == 0 ) return true;
- dist = Length2d(start, goal);
+ dist = Math::DistanceProjected(start, goal);
if ( dist == 0.0f ) return true;
step = BM_DIM_STEP*0.5f;
@@ -2043,7 +2043,7 @@ void CTaskGoto::BitmapObject()
{
CObject *pObj;
ObjectType type;
- D3DVECTOR iPos, oPos;
+ Math::Vector iPos, oPos;
float iRadius, oRadius, h;
int i, j;
@@ -2087,7 +2087,7 @@ void CTaskGoto::BitmapObject()
// Adds a section of land in the bitmap.
-void CTaskGoto::BitmapTerrain(const D3DVECTOR &min, const D3DVECTOR &max)
+void CTaskGoto::BitmapTerrain(const Math::Vector &min, const Math::Vector &max)
{
int minx, miny, maxx, maxy;
@@ -2104,7 +2104,7 @@ void CTaskGoto::BitmapTerrain(const D3DVECTOR &min, const D3DVECTOR &max)
void CTaskGoto::BitmapTerrain(int minx, int miny, int maxx, int maxy)
{
ObjectType type;
- D3DVECTOR p;
+ Math::Vector p;
float aLimit, angle, h;
int x, y;
bool bAcceptWater, bFly;
@@ -2265,7 +2265,7 @@ bool CTaskGoto::BitmapClose()
// Puts a circle in the bitmap.
-void CTaskGoto::BitmapSetCircle(const D3DVECTOR &pos, float radius)
+void CTaskGoto::BitmapSetCircle(const Math::Vector &pos, float radius)
{
float d, r;
int cx, cy, ix, iy;
@@ -2278,7 +2278,7 @@ void CTaskGoto::BitmapSetCircle(const D3DVECTOR &pos, float radius)
{
for ( ix=cx-(int)r ; ix<=cx+(int)r ; ix++ )
{
- d = Length((float)(ix-cx), (float)(iy-cy));
+ d = Math::Point((float)(ix-cx), (float)(iy-cy)).Length();
if ( d > r ) continue;
BitmapSetDot(0, ix, iy);
}
@@ -2287,7 +2287,7 @@ void CTaskGoto::BitmapSetCircle(const D3DVECTOR &pos, float radius)
// Removes a circle in the bitmap.
-void CTaskGoto::BitmapClearCircle(const D3DVECTOR &pos, float radius)
+void CTaskGoto::BitmapClearCircle(const Math::Vector &pos, float radius)
{
float d, r;
int cx, cy, ix, iy;
@@ -2300,7 +2300,7 @@ void CTaskGoto::BitmapClearCircle(const D3DVECTOR &pos, float radius)
{
for ( ix=cx-(int)r ; ix<=cx+(int)r ; ix++ )
{
- d = Length((float)(ix-cx), (float)(iy-cy));
+ d = Math::Point((float)(ix-cx), (float)(iy-cy)).Length();
if ( d > r ) continue;
BitmapClearDot(0, ix, iy);
}
diff --git a/src/object/task/taskgoto.h b/src/object/task/taskgoto.h
index d0e4953..97009d4 100644
--- a/src/object/task/taskgoto.h
+++ b/src/object/task/taskgoto.h
@@ -84,43 +84,43 @@ public:
bool EventProcess(const Event &event);
- Error Start(D3DVECTOR goal, float altitude, TaskGotoGoal goalMode, TaskGotoCrash crashMode);
+ Error Start(Math::Vector goal, float altitude, TaskGotoGoal goalMode, TaskGotoCrash crashMode);
Error IsEnded();
protected:
- CObject* WormSearch(D3DVECTOR &impact);
+ CObject* WormSearch(Math::Vector &impact);
void WormFrame(float rTime);
- CObject* SearchTarget(D3DVECTOR pos, float margin);
- bool AdjustTarget(CObject* pObj, D3DVECTOR &pos, float &distance);
- 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);
+ CObject* SearchTarget(Math::Vector pos, float margin);
+ bool AdjustTarget(CObject* pObj, Math::Vector &pos, float &distance);
+ bool AdjustBuilding(Math::Vector &pos, float margin, float &distance);
+ bool GetHotPoint(CObject *pObj, Math::Vector &pos, bool bTake, float distance, float &suppl);
+ bool LeakSearch(Math::Vector &pos, float &delay);
void ComputeRepulse(Math::Point &dir);
void ComputeFlyingRepulse(float &dir);
int BeamShortcut();
void BeamStart();
void BeamInit();
- Error BeamSearch(const D3DVECTOR &start, const D3DVECTOR &goal, float goalRadius);
- Error BeamExplore(const D3DVECTOR &prevPos, const D3DVECTOR &curPos, const D3DVECTOR &goalPos, float goalRadius, float angle, int nbDiv, float step, int i, int nbIter);
- D3DVECTOR BeamPoint(const D3DVECTOR &startPoint, const D3DVECTOR &goalPoint, float angle, float step);
+ Error BeamSearch(const Math::Vector &start, const Math::Vector &goal, float goalRadius);
+ Error BeamExplore(const Math::Vector &prevPos, const Math::Vector &curPos, const Math::Vector &goalPos, float goalRadius, float angle, int nbDiv, float step, int i, int nbIter);
+ Math::Vector BeamPoint(const Math::Vector &startPoint, const Math::Vector &goalPoint, float angle, float step);
- void BitmapDebug(const D3DVECTOR &min, const D3DVECTOR &max, const D3DVECTOR &start, const D3DVECTOR &goal);
- bool BitmapTestLine(const D3DVECTOR &start, const D3DVECTOR &goal, float stepAngle, bool bSecond);
+ void BitmapDebug(const Math::Vector &min, const Math::Vector &max, const Math::Vector &start, const Math::Vector &goal);
+ bool BitmapTestLine(const Math::Vector &start, const Math::Vector &goal, float stepAngle, bool bSecond);
void BitmapObject();
- void BitmapTerrain(const D3DVECTOR &min, const D3DVECTOR &max);
+ void BitmapTerrain(const Math::Vector &min, const Math::Vector &max);
void BitmapTerrain(int minx, int miny, int maxx, int maxy);
bool BitmapOpen();
bool BitmapClose();
- void BitmapSetCircle(const D3DVECTOR &pos, float radius);
- void BitmapClearCircle(const D3DVECTOR &pos, float radius);
+ void BitmapSetCircle(const Math::Vector &pos, float radius);
+ void BitmapClearCircle(const Math::Vector &pos, float radius);
void BitmapSetDot(int rank, int x, int y);
void BitmapClearDot(int rank, int x, int y);
bool BitmapTestDot(int rank, int x, int y);
protected:
- D3DVECTOR m_goal;
- D3DVECTOR m_goalObject;
+ Math::Vector m_goal;
+ Math::Vector m_goalObject;
float m_angle;
float m_altitude;
TaskGotoCrash m_crashMode;
@@ -131,7 +131,7 @@ protected:
bool m_bTake;
float m_stopLength; // braking distance
float m_time;
- D3DVECTOR m_pos;
+ Math::Vector m_pos;
bool m_bWorm;
bool m_bApprox;
float m_wormLastTime;
@@ -145,18 +145,18 @@ protected:
int m_bmMaxX, m_bmMaxY;
int m_bmTotal; // number of points in m_bmPoints
int m_bmIndex; // index in m_bmPoints
- D3DVECTOR m_bmPoints[MAXPOINTS+2];
+ Math::Vector m_bmPoints[MAXPOINTS+2];
char m_bmIter[MAXPOINTS+2];
int m_bmIterCounter;
CObject* m_bmFretObject;
float m_bmFinalMove; // final advance distance
float m_bmFinalDist; // effective distance to advance
- D3DVECTOR m_bmFinalPos; // initial position before advance
+ Math::Vector m_bmFinalPos; // initial position before advance
float m_bmTimeLimit;
int m_bmStep;
- D3DVECTOR m_bmWatchDogPos;
+ Math::Vector m_bmWatchDogPos;
float m_bmWatchDogTime;
- D3DVECTOR m_leakPos; // initial position leak
+ Math::Vector m_leakPos; // initial position leak
float m_leakDelay;
float m_leakTime;
bool m_bLeakRecede;
diff --git a/src/object/task/taskinfo.cpp b/src/object/task/taskinfo.cpp
index 3548426..7ce0a36 100644
--- a/src/object/task/taskinfo.cpp
+++ b/src/object/task/taskinfo.cpp
@@ -75,7 +75,7 @@ Error CTaskInfo::Start(char *name, float value, float power, bool bSend)
{
CObject* pInfo;
CAutoInfo* pAuto;
- D3DVECTOR pos, goal;
+ Math::Vector pos, goal;
Info info;
int i, total, op;
@@ -196,7 +196,7 @@ bool CTaskInfo::Abort()
CObject* CTaskInfo::SearchInfo(float power)
{
CObject *pObj, *pBest;
- D3DVECTOR iPos, oPos;
+ Math::Vector iPos, oPos;
ObjectType type;
float dist, min;
int i;
@@ -216,7 +216,7 @@ CObject* CTaskInfo::SearchInfo(float power)
if ( !pObj->RetActif() ) continue;
oPos = pObj->RetPosition(0);
- dist = Length(oPos, iPos);
+ dist = Math::Distance(oPos, iPos);
if ( dist > power ) continue; // too far?
if ( dist < min )
{
diff --git a/src/object/task/taskmanager.cpp b/src/object/task/taskmanager.cpp
index 2ec51fc..a4956b5 100644
--- a/src/object/task/taskmanager.cpp
+++ b/src/object/task/taskmanager.cpp
@@ -99,7 +99,7 @@ Error CTaskManager::StartTaskTurn(float angle)
// Reaches a given position.
-Error CTaskManager::StartTaskGoto(D3DVECTOR pos, float altitude, TaskGotoGoal goalMode, TaskGotoCrash crashMode)
+Error CTaskManager::StartTaskGoto(Math::Vector pos, float altitude, TaskGotoGoal goalMode, TaskGotoCrash crashMode)
{
m_task = new CTaskGoto(m_iMan, m_object);
return ((CTaskGoto*)m_task)->Start(pos, altitude, goalMode, crashMode);
@@ -208,7 +208,7 @@ Error CTaskManager::StartTaskFire(float delay)
// Shoots with the ant.
-Error CTaskManager::StartTaskFireAnt(D3DVECTOR impact)
+Error CTaskManager::StartTaskFireAnt(Math::Vector impact)
{
m_task = new CTaskFireAnt(m_iMan, m_object);
return ((CTaskFireAnt*)m_task)->Start(impact);
@@ -232,7 +232,7 @@ Error CTaskManager::StartTaskSpiderExplo()
// Reset.
-Error CTaskManager::StartTaskReset(D3DVECTOR goal, D3DVECTOR angle)
+Error CTaskManager::StartTaskReset(Math::Vector goal, Math::Vector angle)
{
m_task = new CTaskReset(m_iMan, m_object);
return ((CTaskReset*)m_task)->Start(goal, angle);
diff --git a/src/object/task/taskmanager.h b/src/object/task/taskmanager.h
index 36406e4..410efcf 100644
--- a/src/object/task/taskmanager.h
+++ b/src/object/task/taskmanager.h
@@ -41,7 +41,7 @@ public:
Error StartTaskWait(float time);
Error StartTaskAdvance(float length);
Error StartTaskTurn(float angle);
- Error StartTaskGoto(D3DVECTOR pos, float altitude, TaskGotoGoal goalMode, TaskGotoCrash crashMode);
+ Error StartTaskGoto(Math::Vector pos, float altitude, TaskGotoGoal goalMode, TaskGotoCrash crashMode);
Error StartTaskTake();
Error StartTaskManip(TaskManipOrder order, TaskManipArm arm);
Error StartTaskFlag(TaskFlagOrder order, int rank);
@@ -53,10 +53,10 @@ public:
Error StartTaskRecover();
Error StartTaskShield(TaskShieldMode mode, float delay);
Error StartTaskFire(float delay);
- Error StartTaskFireAnt(D3DVECTOR impact);
+ Error StartTaskFireAnt(Math::Vector impact);
Error StartTaskGunGoal(float dirV, float dirH);
Error StartTaskSpiderExplo();
- Error StartTaskReset(D3DVECTOR goal, D3DVECTOR angle);
+ Error StartTaskReset(Math::Vector goal, Math::Vector angle);
bool EventProcess(const Event &event);
Error IsEnded();
diff --git a/src/object/task/taskmanip.cpp b/src/object/task/taskmanip.cpp
index 3e1fea7..6f20cad 100644
--- a/src/object/task/taskmanip.cpp
+++ b/src/object/task/taskmanip.cpp
@@ -73,7 +73,7 @@ CTaskManip::~CTaskManip()
bool CTaskManip::EventProcess(const Event &event)
{
- D3DVECTOR pos;
+ Math::Vector pos;
float angle, a, g, cirSpeed, progress;
int i;
@@ -305,7 +305,7 @@ Error CTaskManip::Start(TaskManipOrder order, TaskManipArm arm)
CPyro *pyro;
float iAngle, dist, len;
float fDist, fAngle, oDist, oAngle, oHeight;
- D3DVECTOR pos, fPos, oPos;
+ Math::Vector pos, fPos, oPos;
m_arm = arm;
m_height = 0.0f;
@@ -324,7 +324,7 @@ Error CTaskManip::Start(TaskManipOrder order, TaskManipArm arm)
m_arm != TMA_POWER &&
m_arm != TMA_GRAB ) return ERR_MANIP_VEH;
- m_physics->SetMotorSpeed(D3DVECTOR(0.0f, 0.0f, 0.0f));
+ m_physics->SetMotorSpeed(Math::Vector(0.0f, 0.0f, 0.0f));
type = m_object->RetType();
if ( type == OBJECT_BEE ) // bee?
@@ -338,7 +338,7 @@ Error CTaskManip::Start(TaskManipOrder order, TaskManipArm arm)
m_object->SetFret(other); // takes the ball
other->SetTruck(m_object);
other->SetTruckPart(0); // taken with the base
- other->SetPosition(0, D3DVECTOR(0.0f, -3.0f, 0.0f));
+ other->SetPosition(0, Math::Vector(0.0f, -3.0f, 0.0f));
}
else
{
@@ -482,12 +482,12 @@ Error CTaskManip::Start(TaskManipOrder order, TaskManipArm arm)
}
else
{
- if ( !IsFreeDeposeObject(D3DVECTOR(TAKE_DIST, 0.0f, 0.0f)) ) return ERR_MANIP_OCC;
+ if ( !IsFreeDeposeObject(Math::Vector(TAKE_DIST, 0.0f, 0.0f)) ) return ERR_MANIP_OCC;
}
}
if ( m_arm == TMA_FBACK )
{
- if ( !IsFreeDeposeObject(D3DVECTOR(-TAKE_DIST, 0.0f, 0.0f)) ) return ERR_MANIP_OCC;
+ if ( !IsFreeDeposeObject(Math::Vector(-TAKE_DIST, 0.0f, 0.0f)) ) return ERR_MANIP_OCC;
}
if ( m_arm == TMA_POWER )
{
@@ -495,7 +495,7 @@ Error CTaskManip::Start(TaskManipOrder order, TaskManipArm arm)
}
}
- dist = Length(m_object->RetPosition(0), m_targetPos);
+ dist = Math::Distance(m_object->RetPosition(0), m_targetPos);
len = dist-TAKE_DIST;
if ( m_arm == TMA_OTHER ) len -= TAKE_DIST_OTHER;
if ( len < 0.0f ) len = 0.0f;
@@ -548,7 +548,7 @@ Error CTaskManip::Start(TaskManipOrder order, TaskManipArm arm)
Error CTaskManip::IsEnded()
{
CObject* fret;
- D3DVECTOR pos;
+ Math::Vector pos;
float angle, dist;
int i;
@@ -582,7 +582,7 @@ Error CTaskManip::IsEnded()
if ( m_timeLimit <= 0.0f )
{
//OK 1.9
- dist = Length(m_object->RetPosition(0), m_targetPos);
+ dist = Math::Distance(m_object->RetPosition(0), m_targetPos);
if ( dist <= m_advanceLength + 2.0f )
{
m_move = 0.0f; // advance ended
@@ -600,7 +600,7 @@ Error CTaskManip::IsEnded()
}
}
- dist = Length(m_object->RetPosition(0), m_targetPos);
+ dist = Math::Distance(m_object->RetPosition(0), m_targetPos);
if ( dist <= m_advanceLength )
{
m_move = 0.0f; // advance ended
@@ -733,10 +733,10 @@ bool CTaskManip::Abort()
// Seeks the object below to take (for bees).
-CObject* CTaskManip::SearchTakeUnderObject(D3DVECTOR &pos, float dLimit)
+CObject* CTaskManip::SearchTakeUnderObject(Math::Vector &pos, float dLimit)
{
CObject *pObj, *pBest;
- D3DVECTOR iPos, oPos;
+ Math::Vector iPos, oPos;
ObjectType type;
float min, distance;
int i;
@@ -771,7 +771,7 @@ CObject* CTaskManip::SearchTakeUnderObject(D3DVECTOR &pos, float dLimit)
if ( pObj->RetZoomY(0) != 1.0f ) continue;
oPos = pObj->RetPosition(0);
- distance = Length(oPos, iPos);
+ distance = Math::Distance(oPos, iPos);
if ( distance <= dLimit &&
distance < min )
{
@@ -788,11 +788,11 @@ CObject* CTaskManip::SearchTakeUnderObject(D3DVECTOR &pos, float dLimit)
// Seeks the object in front to take.
-CObject* CTaskManip::SearchTakeFrontObject(bool bAdvance, D3DVECTOR &pos,
+CObject* CTaskManip::SearchTakeFrontObject(bool bAdvance, Math::Vector &pos,
float &distance, float &angle)
{
CObject *pObj, *pBest;
- D3DVECTOR iPos, oPos;
+ Math::Vector iPos, oPos;
ObjectType type;
float min, iAngle, bAngle, aLimit, dLimit, f;
int i;
@@ -847,7 +847,7 @@ CObject* CTaskManip::SearchTakeFrontObject(bool bAdvance, D3DVECTOR &pos,
if ( pObj->RetZoomY(0) != 1.0f ) continue;
oPos = pObj->RetPosition(0);
- distance = fabs(Length(oPos, iPos)-TAKE_DIST);
+ distance = fabs(Math::Distance(oPos, iPos)-TAKE_DIST);
f = 1.0f-distance/50.0f;
if ( f < 0.5f ) f = 0.5f;
@@ -880,11 +880,11 @@ CObject* CTaskManip::SearchTakeFrontObject(bool bAdvance, D3DVECTOR &pos,
// Seeks the object back to take.
-CObject* CTaskManip::SearchTakeBackObject(bool bAdvance, D3DVECTOR &pos,
+CObject* CTaskManip::SearchTakeBackObject(bool bAdvance, Math::Vector &pos,
float &distance, float &angle)
{
CObject *pObj, *pBest;
- D3DVECTOR iPos, oPos;
+ Math::Vector iPos, oPos;
ObjectType type;
float min, iAngle, bAngle, aLimit, dLimit, f;
int i;
@@ -938,7 +938,7 @@ CObject* CTaskManip::SearchTakeBackObject(bool bAdvance, D3DVECTOR &pos,
if ( pObj->RetZoomY(0) != 1.0f ) continue;
oPos = pObj->RetPosition(0);
- distance = fabs(Length(oPos, iPos)-TAKE_DIST);
+ distance = fabs(Math::Distance(oPos, iPos)-TAKE_DIST);
f = 1.0f-distance/50.0f;
if ( f < 0.5f ) f = 0.5f;
@@ -971,15 +971,15 @@ CObject* CTaskManip::SearchTakeBackObject(bool bAdvance, D3DVECTOR &pos,
// Seeks the robot or building on which it wants to put a battery or or other object.
-CObject* CTaskManip::SearchOtherObject(bool bAdvance, D3DVECTOR &pos,
+CObject* CTaskManip::SearchOtherObject(bool bAdvance, Math::Vector &pos,
float &distance, float &angle,
float &height)
{
Character* character;
CObject* pObj;
CObject* pPower;
- D3DMATRIX* mat;
- D3DVECTOR iPos, oPos;
+ Math::Matrix* mat;
+ Math::Vector iPos, oPos;
ObjectType type, powerType;
float iAngle, iRad, oAngle, oLimit, aLimit, dLimit;
int i;
@@ -1086,7 +1086,7 @@ CObject* CTaskManip::SearchOtherObject(bool bAdvance, D3DVECTOR &pos,
angle = Math::RotateAngle(iPos.x-oPos.x, oPos.z-iPos.z); // CW !
if ( !Math::TestAngle(angle, oAngle-oLimit, oAngle+oLimit) ) continue;
- distance = fabs(Length(oPos, iPos)-TAKE_DIST);
+ distance = fabs(Math::Distance(oPos, iPos)-TAKE_DIST);
if ( distance <= dLimit )
{
angle = Math::RotateAngle(oPos.x-iPos.x, iPos.z-oPos.z); // CW !
@@ -1111,8 +1111,8 @@ bool CTaskManip::TruckTakeObject()
{
CObject* fret;
CObject* other;
- D3DMATRIX matRotate;
- D3DVECTOR pos;
+ Math::Matrix matRotate;
+ Math::Vector pos;
float angle, dist;
if ( m_arm == TMA_GRAB ) // takes immediately?
@@ -1127,7 +1127,7 @@ bool CTaskManip::TruckTakeObject()
fret->SetTruck(m_object);
fret->SetTruckPart(4); // takes with the hand
- fret->SetPosition(0, D3DVECTOR(1.7f, -0.5f, 1.1f));
+ fret->SetPosition(0, Math::Vector(1.7f, -0.5f, 1.1f));
fret->SetAngleY(0, 0.1f);
fret->SetAngleX(0, 0.0f);
fret->SetAngleZ(0, 0.8f);
@@ -1137,7 +1137,7 @@ bool CTaskManip::TruckTakeObject()
fret->SetTruck(m_object);
fret->SetTruckPart(2); // takes with the right claw
- pos = D3DVECTOR(1.1f, -1.0f, 1.0f); // relative
+ pos = Math::Vector(1.1f, -1.0f, 1.0f); // relative
fret->SetPosition(0, pos);
fret->SetAngleX(0, 0.0f);
fret->SetAngleY(0, 0.0f);
@@ -1148,7 +1148,7 @@ bool CTaskManip::TruckTakeObject()
fret->SetTruck(m_object);
fret->SetTruckPart(3); // takes with the hand
- pos = D3DVECTOR(4.7f, 0.0f, 0.0f); // relative to the hand (lem4)
+ pos = Math::Vector(4.7f, 0.0f, 0.0f); // relative to the hand (lem4)
fret->SetPosition(0, pos);
fret->SetAngleX(0, 0.0f);
fret->SetAngleZ(0, Math::PI/2.0f);
@@ -1169,7 +1169,7 @@ bool CTaskManip::TruckTakeObject()
fret->SetTruck(m_object);
fret->SetTruckPart(2); // takes with the right claw
- pos = D3DVECTOR(1.1f, -1.0f, 1.0f); // relative
+ pos = Math::Vector(1.1f, -1.0f, 1.0f); // relative
fret->SetPosition(0, pos);
fret->SetAngleX(0, 0.0f);
fret->SetAngleY(0, 0.0f);
@@ -1180,7 +1180,7 @@ bool CTaskManip::TruckTakeObject()
fret->SetTruck(m_object);
fret->SetTruckPart(3); // takes with the hand
- pos = D3DVECTOR(4.7f, 0.0f, 0.0f); // relative to the hand (lem4)
+ pos = Math::Vector(4.7f, 0.0f, 0.0f); // relative to the hand (lem4)
fret->SetPosition(0, pos);
fret->SetAngleX(0, 0.0f);
fret->SetAngleZ(0, Math::PI/2.0f);
@@ -1199,7 +1199,7 @@ bool CTaskManip::TruckTakeObject()
fret->SetTruck(m_object);
fret->SetTruckPart(3); // takes with the hand
- pos = D3DVECTOR(4.7f, 0.0f, 0.0f); // relative to the hand (lem4)
+ pos = Math::Vector(4.7f, 0.0f, 0.0f); // relative to the hand (lem4)
fret->SetPosition(0, pos);
fret->SetAngleX(0, 0.0f);
fret->SetAngleZ(0, Math::PI/2.0f);
@@ -1214,7 +1214,7 @@ bool CTaskManip::TruckTakeObject()
if ( fret == 0 ) return false; // no battery?
m_fretType = fret->RetType();
- pos = D3DVECTOR(4.7f, 0.0f, 0.0f); // relative to the hand (lem4)
+ pos = Math::Vector(4.7f, 0.0f, 0.0f); // relative to the hand (lem4)
fret->SetPosition(0, pos);
fret->SetAngleX(0, 0.0f);
fret->SetAngleZ(0, Math::PI/2.0f);
@@ -1238,7 +1238,7 @@ bool CTaskManip::TruckTakeObject()
fret->SetTruck(m_object);
fret->SetTruckPart(3); // takes with the hand
- pos = D3DVECTOR(4.7f, 0.0f, 0.0f); // relative to the hand (lem4)
+ pos = Math::Vector(4.7f, 0.0f, 0.0f); // relative to the hand (lem4)
fret->SetPosition(0, pos);
fret->SetAngleX(0, 0.0f);
fret->SetAngleZ(0, Math::PI/2.0f);
@@ -1257,8 +1257,8 @@ bool CTaskManip::TruckDeposeObject()
Character* character;
CObject* fret;
CObject* other;
- D3DMATRIX* mat;
- D3DVECTOR pos;
+ Math::Matrix* mat;
+ Math::Vector pos;
float angle, dist;
if ( m_arm == TMA_FFRONT ) // deposits on the ground in front?
@@ -1268,7 +1268,7 @@ bool CTaskManip::TruckDeposeObject()
m_fretType = fret->RetType();
mat = fret->RetWorldMatrix(0);
- pos = Transform(*mat, D3DVECTOR(0.0f, 1.0f, 0.0f));
+ pos = Transform(*mat, Math::Vector(0.0f, 1.0f, 0.0f));
m_terrain->MoveOnFloor(pos);
fret->SetPosition(0, pos);
fret->SetAngleY(0, m_object->RetAngleY(0)+Math::PI/2.0f);
@@ -1287,7 +1287,7 @@ bool CTaskManip::TruckDeposeObject()
m_fretType = fret->RetType();
mat = fret->RetWorldMatrix(0);
- pos = Transform(*mat, D3DVECTOR(0.0f, 1.0f, 0.0f));
+ pos = Transform(*mat, Math::Vector(0.0f, 1.0f, 0.0f));
m_terrain->MoveOnFloor(pos);
fret->SetPosition(0, pos);
fret->SetAngleY(0, m_object->RetAngleY(0)+Math::PI/2.0f);
@@ -1349,11 +1349,11 @@ bool CTaskManip::TruckDeposeObject()
// Seeks if a location allows to deposit an object.
-bool CTaskManip::IsFreeDeposeObject(D3DVECTOR pos)
+bool CTaskManip::IsFreeDeposeObject(Math::Vector pos)
{
CObject* pObj;
- D3DMATRIX* mat;
- D3DVECTOR iPos, oPos;
+ Math::Matrix* mat;
+ Math::Vector iPos, oPos;
float oRadius;
int i, j;
@@ -1372,7 +1372,7 @@ bool CTaskManip::IsFreeDeposeObject(D3DVECTOR pos)
j = 0;
while ( pObj->GetCrashSphere(j++, oPos, oRadius) )
{
- if ( Length(iPos, oPos)-(oRadius+1.0f) < 2.0f )
+ if ( Math::Distance(iPos, oPos)-(oRadius+1.0f) < 2.0f )
{
return false; // location occupied
}
diff --git a/src/object/task/taskmanip.h b/src/object/task/taskmanip.h
index da1be09..77360f3 100644
--- a/src/object/task/taskmanip.h
+++ b/src/object/task/taskmanip.h
@@ -72,13 +72,13 @@ public:
protected:
void InitAngle();
- CObject* SearchTakeUnderObject(D3DVECTOR &pos, float dLimit);
- CObject* SearchTakeFrontObject(bool bAdvance, D3DVECTOR &pos, float &distance, float &angle);
- CObject* SearchTakeBackObject(bool bAdvance, D3DVECTOR &pos, float &distance, float &angle);
- CObject* SearchOtherObject(bool bAdvance, D3DVECTOR &pos, float &distance, float &angle, float &height);
+ CObject* SearchTakeUnderObject(Math::Vector &pos, float dLimit);
+ CObject* SearchTakeFrontObject(bool bAdvance, Math::Vector &pos, float &distance, float &angle);
+ CObject* SearchTakeBackObject(bool bAdvance, Math::Vector &pos, float &distance, float &angle);
+ CObject* SearchOtherObject(bool bAdvance, Math::Vector &pos, float &distance, float &angle, float &height);
bool TruckTakeObject();
bool TruckDeposeObject();
- bool IsFreeDeposeObject(D3DVECTOR pos);
+ bool IsFreeDeposeObject(Math::Vector pos);
void SoundManip(float time, float amplitude=1.0f, float frequency=1.0f);
protected:
@@ -99,7 +99,7 @@ protected:
bool m_bBee;
float m_angle;
float m_move;
- D3DVECTOR m_targetPos;
+ Math::Vector m_targetPos;
float m_timeLimit;
ObjectType m_fretType;
};
diff --git a/src/object/task/taskpen.cpp b/src/object/task/taskpen.cpp
index 8a62431..3e29d30 100644
--- a/src/object/task/taskpen.cpp
+++ b/src/object/task/taskpen.cpp
@@ -22,6 +22,7 @@
#include <d3d.h>
#include "common/struct.h"
+#include "math/geometry.h"
#include "math/old/math3d.h"
#include "common/event.h"
#include "common/misc.h"
@@ -59,7 +60,7 @@ CTaskPen::~CTaskPen()
bool CTaskPen::EventProcess(const Event &event)
{
- D3DVECTOR pos, speed;
+ Math::Vector pos, speed;
Math::Point dim;
int i;
@@ -145,8 +146,8 @@ bool CTaskPen::EventProcess(const Event &event)
Error CTaskPen::Start(bool bDown, int color)
{
- D3DVECTOR pos;
- D3DMATRIX* mat;
+ Math::Vector pos;
+ Math::Matrix* mat;
ObjectType type;
int i;
@@ -182,8 +183,8 @@ Error CTaskPen::Start(bool bDown, int color)
}
mat = m_object->RetWorldMatrix(0);
- pos = D3DVECTOR(-3.0f, 7.0f, 0.0f);
- pos = Transform(*mat, pos); // position of carousel
+ pos = Math::Vector(-3.0f, 7.0f, 0.0f);
+ pos = Math::Transform(*mat, pos); // position of carousel
m_supportPos = pos;
m_phase = TPP_UP;
diff --git a/src/object/task/taskpen.h b/src/object/task/taskpen.h
index 4ed135d..918384b 100644
--- a/src/object/task/taskpen.h
+++ b/src/object/task/taskpen.h
@@ -65,7 +65,7 @@ protected:
float m_delay;
float m_time;
float m_lastParticule;
- D3DVECTOR m_supportPos;
+ Math::Vector m_supportPos;
float m_timeUp;
float m_oldAngle;
diff --git a/src/object/task/taskrecover.cpp b/src/object/task/taskrecover.cpp
index 3e3243c..a7e372a 100644
--- a/src/object/task/taskrecover.cpp
+++ b/src/object/task/taskrecover.cpp
@@ -66,7 +66,7 @@ CTaskRecover::~CTaskRecover()
bool CTaskRecover::EventProcess(const Event &event)
{
CObject* power;
- D3DVECTOR pos, speed;
+ Math::Vector pos, speed;
Math::Point dim;
float a, g, cirSpeed, angle, energy, dist, linSpeed;
@@ -102,7 +102,7 @@ bool CTaskRecover::EventProcess(const Event &event)
if ( m_phase == TRP_MOVE ) // preliminary forward/backward?
{
- dist = Length(m_object->RetPosition(0), m_ruin->RetPosition(0));
+ dist = Math::Distance(m_object->RetPosition(0), m_ruin->RetPosition(0));
linSpeed = 0.0f;
if ( dist > RECOVER_DIST ) linSpeed = 1.0f;
if ( dist < RECOVER_DIST ) linSpeed = -1.0f;
@@ -185,8 +185,8 @@ bool CTaskRecover::EventProcess(const Event &event)
Error CTaskRecover::Start()
{
CObject* power;
- D3DMATRIX* mat;
- D3DVECTOR pos, iPos, oPos;
+ Math::Matrix* mat;
+ Math::Vector pos, iPos, oPos;
float energy;
ObjectType type;
@@ -203,7 +203,7 @@ Error CTaskRecover::Start()
if ( energy < ENERGY_RECOVER/power->RetCapacity()+0.05f ) return ERR_RECOVER_ENERGY;
mat = m_object->RetWorldMatrix(0);
- pos = D3DVECTOR(RECOVER_DIST, 3.3f, 0.0f);
+ pos = Math::Vector(RECOVER_DIST, 3.3f, 0.0f);
pos = Transform(*mat, pos); // position in front
m_recoverPos = pos;
@@ -233,8 +233,8 @@ Error CTaskRecover::Start()
Error CTaskRecover::IsEnded()
{
- D3DMATRIX* mat;
- D3DVECTOR pos, speed, goal;
+ Math::Matrix* mat;
+ Math::Vector pos, speed, goal;
Math::Point dim;
float angle, dist, time;
int i;
@@ -251,7 +251,7 @@ Error CTaskRecover::IsEnded()
{
m_physics->SetMotorSpeedZ(0.0f);
- dist = Length(m_object->RetPosition(0), m_ruin->RetPosition(0));
+ dist = Math::Distance(m_object->RetPosition(0), m_ruin->RetPosition(0));
if ( dist > RECOVER_DIST )
{
time = m_physics->RetLinTimeLength(dist-RECOVER_DIST, 1.0f);
@@ -270,7 +270,7 @@ Error CTaskRecover::IsEnded()
if ( m_phase == TRP_MOVE ) // preliminary advance?
{
- dist = Length(m_object->RetPosition(0), m_ruin->RetPosition(0));
+ dist = Math::Distance(m_object->RetPosition(0), m_ruin->RetPosition(0));
if ( dist >= RECOVER_DIST-1.0f &&
dist <= RECOVER_DIST+1.0f )
@@ -278,7 +278,7 @@ Error CTaskRecover::IsEnded()
m_physics->SetMotorSpeedX(0.0f);
mat = m_object->RetWorldMatrix(0);
- pos = D3DVECTOR(RECOVER_DIST, 3.3f, 0.0f);
+ pos = Math::Vector(RECOVER_DIST, 3.3f, 0.0f);
pos = Transform(*mat, pos); // position in front
m_recoverPos = pos;
@@ -323,9 +323,9 @@ Error CTaskRecover::IsEnded()
m_metal->SetZoom(0, 0.0f);
mat = m_object->RetWorldMatrix(0);
- pos = D3DVECTOR(RECOVER_DIST, 3.1f, 3.9f);
+ pos = Math::Vector(RECOVER_DIST, 3.1f, 3.9f);
pos = Transform(*mat, pos);
- goal = D3DVECTOR(RECOVER_DIST, 3.1f, -3.9f);
+ goal = Math::Vector(RECOVER_DIST, 3.1f, -3.9f);
goal = Transform(*mat, goal);
m_particule->CreateRay(pos, goal, PARTIRAY2,
Math::Point(2.0f, 2.0f), 8.0f);
@@ -392,7 +392,7 @@ bool CTaskRecover::Abort()
CObject* CTaskRecover::SearchRuin()
{
CObject *pObj, *pBest;
- D3DVECTOR oPos;
+ Math::Vector oPos;
ObjectType type;
float dist, min;
int i;
@@ -413,7 +413,7 @@ CObject* CTaskRecover::SearchRuin()
type == OBJECT_RUINmobiler2 ) // vehicle in ruin?
{
oPos = pObj->RetPosition(0);
- dist = Length(oPos, m_recoverPos);
+ dist = Math::Distance(oPos, m_recoverPos);
if ( dist > 40.0f ) continue;
if ( dist < min )
diff --git a/src/object/task/taskrecover.h b/src/object/task/taskrecover.h
index 9d9aa07..4632b0b 100644
--- a/src/object/task/taskrecover.h
+++ b/src/object/task/taskrecover.h
@@ -67,7 +67,7 @@ protected:
bool m_bError;
CObject* m_ruin;
CObject* m_metal;
- D3DVECTOR m_recoverPos;
+ Math::Vector m_recoverPos;
int m_soundChannel;
};
diff --git a/src/object/task/taskreset.cpp b/src/object/task/taskreset.cpp
index f44f22a..0d18c6d 100644
--- a/src/object/task/taskreset.cpp
+++ b/src/object/task/taskreset.cpp
@@ -63,7 +63,7 @@ CTaskReset::~CTaskReset()
bool CTaskReset::EventProcess(const Event &event)
{
- D3DVECTOR pos, speed;
+ Math::Vector pos, speed;
Math::Point dim;
float angle, duration;
@@ -175,7 +175,7 @@ bool CTaskReset::EventProcess(const Event &event)
// Assigns the goal was achieved.
// A positive angle makes a turn right.
-Error CTaskReset::Start(D3DVECTOR goal, D3DVECTOR angle)
+Error CTaskReset::Start(Math::Vector goal, Math::Vector angle)
{
CObject* fret;
int i;
@@ -242,7 +242,7 @@ Error CTaskReset::IsEnded()
if ( m_phase == TRSP_ZOUT )
{
- dist = Length(m_begin, m_goal);
+ dist = Math::Distance(m_begin, m_goal);
m_phase = TRSP_MOVE;
m_speed = 1.0f/(dist*RESET_DELAY_MOVE/100.0f);
m_progress = 0.0f;
@@ -283,7 +283,7 @@ Error CTaskReset::IsEnded()
bool CTaskReset::SearchVehicle()
{
CObject* pObj;
- D3DVECTOR oPos;
+ Math::Vector oPos;
ObjectType type;
float oRadius, dist;
int i;
@@ -332,7 +332,7 @@ bool CTaskReset::SearchVehicle()
type != OBJECT_WORM ) continue;
if ( !pObj->GetCrashSphere(0, oPos, oRadius) ) continue;
- dist = Length(oPos, m_goal)-oRadius;
+ dist = Math::Distance(oPos, m_goal)-oRadius;
if ( dist < 5.0f ) return true;
}
diff --git a/src/object/task/taskreset.h b/src/object/task/taskreset.h
index d622cd0..603aef2 100644
--- a/src/object/task/taskreset.h
+++ b/src/object/task/taskreset.h
@@ -48,16 +48,16 @@ public:
bool EventProcess(const Event &event);
- Error Start(D3DVECTOR goal, D3DVECTOR angle);
+ Error Start(Math::Vector goal, Math::Vector angle);
Error IsEnded();
protected:
bool SearchVehicle();
protected:
- D3DVECTOR m_begin;
- D3DVECTOR m_goal;
- D3DVECTOR m_angle;
+ Math::Vector m_begin;
+ Math::Vector m_goal;
+ Math::Vector m_angle;
TaskResetPhase m_phase;
bool m_bError;
diff --git a/src/object/task/tasksearch.cpp b/src/object/task/tasksearch.cpp
index c002d6a..7660bfa 100644
--- a/src/object/task/tasksearch.cpp
+++ b/src/object/task/tasksearch.cpp
@@ -22,6 +22,7 @@
#include <d3d.h>
#include "common/struct.h"
+#include "math/geometry.h"
#include "math/old/math3d.h"
#include "common/event.h"
#include "common/misc.h"
@@ -59,8 +60,8 @@ CTaskSearch::~CTaskSearch()
bool CTaskSearch::EventProcess(const Event &event)
{
- D3DMATRIX* mat;
- D3DVECTOR pos, speed;
+ Math::Matrix* mat;
+ Math::Vector pos, speed;
Math::Point dim;
float angle;
int i;
@@ -89,8 +90,8 @@ bool CTaskSearch::EventProcess(const Event &event)
m_lastParticule = m_time;
mat = m_object->RetWorldMatrix(0);
- pos = D3DVECTOR(6.5f, 0.2f, 0.0f);
- pos = Transform(*mat, pos); // sensor position
+ pos = Math::Vector(6.5f, 0.2f, 0.0f);
+ pos = Math::Transform(*mat, pos); // sensor position
speed.x = (Math::Rand()-0.5f)*20.0f;
speed.z = (Math::Rand()-0.5f)*20.0f;
@@ -135,7 +136,7 @@ void CTaskSearch::InitAngle()
Error CTaskSearch::Start()
{
ObjectType type;
- D3DVECTOR speed;
+ Math::Vector speed;
int i;
m_bError = true;
@@ -240,14 +241,14 @@ bool CTaskSearch::CreateMark()
{
CObject* fret;
ObjectType type;
- D3DMATRIX* mat;
- D3DVECTOR pos;
+ Math::Matrix* mat;
+ Math::Vector pos;
TerrainRes res;
Error info;
mat = m_object->RetWorldMatrix(0);
- pos = D3DVECTOR(7.5f, 0.0f, 0.0f);
- pos = Transform(*mat, pos); // sensor position
+ pos = Math::Vector(7.5f, 0.0f, 0.0f);
+ pos = Math::Transform(*mat, pos); // sensor position
res = m_terrain->RetResource(pos);
if ( res == TR_NULL ) return false;
@@ -310,7 +311,7 @@ bool CTaskSearch::CreateMark()
void CTaskSearch::DeleteMark(ObjectType type)
{
CObject* pObj;
- D3DVECTOR oPos;
+ Math::Vector oPos;
int i;
for ( i=0 ; i<1000000 ; i++ )
diff --git a/src/object/task/taskshield.cpp b/src/object/task/taskshield.cpp
index c4993fc..cedce35 100644
--- a/src/object/task/taskshield.cpp
+++ b/src/object/task/taskshield.cpp
@@ -22,6 +22,7 @@
#include <d3d.h>
#include "math/const.h"
+#include "math/geometry.h"
#include "common/struct.h"
#include "math/old/math3d.h"
#include "common/event.h"
@@ -66,9 +67,9 @@ CTaskShield::~CTaskShield()
bool CTaskShield::EventProcess(const Event &event)
{
CObject* power;
- D3DMATRIX* mat;
- D3DMATRIX matrix;
- D3DVECTOR pos, speed, goal, angle;
+ Math::Matrix* mat;
+ Math::Matrix matrix;
+ Math::Vector pos, speed, goal, angle;
D3DCOLORVALUE color;
Math::Point dim;
float energy;
@@ -82,8 +83,8 @@ bool CTaskShield::EventProcess(const Event &event)
m_delay -= event.rTime;
mat = m_object->RetWorldMatrix(0);
- pos = D3DVECTOR(7.0f, 15.0f, 0.0f);
- pos = Transform(*mat, pos); // sphere position
+ pos = Math::Vector(7.0f, 15.0f, 0.0f);
+ pos = Math::Transform(*mat, pos); // sphere position
m_shieldPos = pos;
if ( m_rankSphere != -1 )
@@ -174,8 +175,8 @@ bool CTaskShield::EventProcess(const Event &event)
angle.x = (Math::Rand()-0.5f)*Math::PI*1.2f;
angle.y = 0.0f;
angle.z = (Math::Rand()-0.5f)*Math::PI*1.2f;
- MatRotateXZY(matrix, angle);
- goal = Transform(matrix, D3DVECTOR(0.0f, RetRadius()-dim.x, 0.0f));
+ Math::LoadRotationXZYMatrix(matrix, angle);
+ goal = Math::Transform(matrix, Math::Vector(0.0f, RetRadius()-dim.x, 0.0f));
goal += pos;
m_particule->CreateRay(pos, goal, PARTIRAY2, dim, 0.3f);
}
@@ -238,8 +239,8 @@ bool CTaskShield::EventProcess(const Event &event)
Error CTaskShield::Start(TaskShieldMode mode, float delay)
{
CObject* power;
- D3DMATRIX* mat;
- D3DVECTOR pos, iPos, oPos, speed;
+ Math::Matrix* mat;
+ Math::Vector pos, iPos, oPos, speed;
ObjectType type;
float energy;
@@ -269,7 +270,7 @@ Error CTaskShield::Start(TaskShieldMode mode, float delay)
if ( energy == 0.0f ) return ERR_SHIELD_ENERGY;
mat = m_object->RetWorldMatrix(0);
- pos = D3DVECTOR(7.0f, 15.0f, 0.0f);
+ pos = Math::Vector(7.0f, 15.0f, 0.0f);
pos = Transform(*mat, pos); // sphere position
m_shieldPos = pos;
@@ -341,7 +342,7 @@ Error CTaskShield::Stop()
Error CTaskShield::IsEnded()
{
CObject* power;
- D3DVECTOR pos, speed;
+ Math::Vector pos, speed;
Math::Point dim;
float energy;
@@ -396,7 +397,7 @@ Error CTaskShield::IsEnded()
m_object->SetShieldRadius(RetRadius());
pos = m_shieldPos;
- speed = D3DVECTOR(0.0f, 0.0f, 0.0f);
+ speed = Math::Vector(0.0f, 0.0f, 0.0f);
dim.x = RetRadius();
dim.y = dim.x;
m_rankSphere = m_particule->CreateParticule(pos, speed, dim, PARTISPHERE3, 2.0f, 0.0f, 0.0f);
@@ -449,7 +450,7 @@ bool CTaskShield::IsBusy()
bool CTaskShield::Abort()
{
- D3DVECTOR pos;
+ Math::Vector pos;
m_object->SetShieldRadius(0.0f);
@@ -489,7 +490,7 @@ bool CTaskShield::Abort()
// Creates the light to accompany a pyrotechnic effect.
-bool CTaskShield::CreateLight(D3DVECTOR pos)
+bool CTaskShield::CreateLight(Math::Vector pos)
{
D3DLIGHT7 light;
@@ -530,7 +531,7 @@ void CTaskShield::IncreaseShield()
{
ObjectType type;
CObject* pObj;
- D3DVECTOR oPos;
+ Math::Vector oPos;
float dist, shield;
int i;
@@ -547,7 +548,7 @@ void CTaskShield::IncreaseShield()
type == OBJECT_WORM ) continue;
oPos = pObj->RetPosition(0);
- dist = Length(oPos, m_shieldPos);
+ dist = Math::Distance(oPos, m_shieldPos);
if ( dist <= RetRadius()+10.0f )
{
shield = pObj->RetShield();
diff --git a/src/object/task/taskshield.h b/src/object/task/taskshield.h
index 916cd6d..0e36e49 100644
--- a/src/object/task/taskshield.h
+++ b/src/object/task/taskshield.h
@@ -68,7 +68,7 @@ public:
protected:
Error Stop();
- bool CreateLight(D3DVECTOR pos);
+ bool CreateLight(Math::Vector pos);
void IncreaseShield();
float RetRadius();
@@ -83,7 +83,7 @@ protected:
float m_lastIncrease;
float m_energyUsed;
bool m_bError;
- D3DVECTOR m_shieldPos;
+ Math::Vector m_shieldPos;
int m_rankSphere;
int m_soundChannel;
int m_effectLight;
diff --git a/src/object/task/tasktake.cpp b/src/object/task/tasktake.cpp
index adb6e71..7817b90 100644
--- a/src/object/task/tasktake.cpp
+++ b/src/object/task/tasktake.cpp
@@ -87,7 +87,7 @@ bool CTaskTake::EventProcess(const Event &event)
m_progress += event.rTime*m_speed; // others advance
- m_physics->SetMotorSpeed(D3DVECTOR(0.0f, 0.0f, 0.0f)); // immobile!
+ m_physics->SetMotorSpeed(Math::Vector(0.0f, 0.0f, 0.0f)); // immobile!
return true;
}
@@ -100,7 +100,7 @@ Error CTaskTake::Start()
ObjectType type;
CObject* other;
float iAngle, oAngle, h;
- D3DVECTOR pos;
+ Math::Vector pos;
m_height = 0.0f;
m_step = 0;
@@ -123,7 +123,7 @@ Error CTaskTake::Start()
if ( type != OBJECT_HUMAN &&
type != OBJECT_TECH ) return ERR_MANIP_VEH;
- m_physics->SetMotorSpeed(D3DVECTOR(0.0f, 0.0f, 0.0f));
+ m_physics->SetMotorSpeed(Math::Vector(0.0f, 0.0f, 0.0f));
if ( m_object->RetFret() == 0 )
{
@@ -186,7 +186,7 @@ Error CTaskTake::Start()
}
else
{
- if ( !IsFreeDeposeObject(D3DVECTOR(2.5f, 0.0f, 0.0f)) ) return ERR_MANIP_OCC;
+ if ( !IsFreeDeposeObject(Math::Vector(2.5f, 0.0f, 0.0f)) ) return ERR_MANIP_OCC;
//? m_camera->StartCentering(m_object, Math::PI*0.3f, 99.9f, 0.0f, 0.8f);
m_arm = TTA_FFRONT;
}
@@ -313,7 +313,7 @@ CObject* CTaskTake::SearchTakeObject(float &angle,
float dLimit, float aLimit)
{
CObject *pObj, *pBest;
- D3DVECTOR iPos, oPos;
+ Math::Vector iPos, oPos;
ObjectType type;
float min, iAngle, bAngle, a, distance;
int i;
@@ -351,7 +351,7 @@ CObject* CTaskTake::SearchTakeObject(float &angle,
if ( pObj->RetZoomY(0) != 1.0f ) continue;
oPos = pObj->RetPosition(0);
- distance = Length(oPos, iPos);
+ distance = Math::Distance(oPos, iPos);
if ( distance >= 4.0f-dLimit &&
distance <= 4.0f+dLimit )
{
@@ -381,8 +381,8 @@ CObject* CTaskTake::SearchFriendObject(float &angle,
Character* character;
CObject* pObj;
CObject* pPower;
- D3DMATRIX* mat;
- D3DVECTOR iPos, oPos;
+ Math::Matrix* mat;
+ Math::Vector iPos, oPos;
ObjectType type, powerType;
float iAngle, iRad, distance;
int i;
@@ -446,7 +446,7 @@ CObject* CTaskTake::SearchFriendObject(float &angle,
character = pObj->RetCharacter();
oPos = Transform(*mat, character->posPower);
- distance = fabs(Length(oPos, iPos) - (iRad+1.0f));
+ distance = fabs(Math::Distance(oPos, iPos) - (iRad+1.0f));
if ( distance <= dLimit )
{
angle = Math::RotateAngle(oPos.x-iPos.x, iPos.z-oPos.z); // CW !
@@ -468,7 +468,7 @@ bool CTaskTake::TruckTakeObject()
{
CObject* fret;
CObject* other;
- D3DMATRIX matRotate;
+ Math::Matrix matRotate;
float angle;
if ( m_arm == TTA_FFRONT ) // takes on the ground in front?
@@ -481,8 +481,8 @@ bool CTaskTake::TruckTakeObject()
fret->SetTruck(m_object);
fret->SetTruckPart(4); // takes with the hand
-//? fret->SetPosition(0, D3DVECTOR(2.2f, -1.0f, 1.1f));
- fret->SetPosition(0, D3DVECTOR(1.7f, -0.5f, 1.1f));
+//? fret->SetPosition(0, Math::Vector(2.2f, -1.0f, 1.1f));
+ fret->SetPosition(0, Math::Vector(1.7f, -0.5f, 1.1f));
fret->SetAngleY(0, 0.1f);
fret->SetAngleX(0, 0.0f);
fret->SetAngleZ(0, 0.8f);
@@ -503,8 +503,8 @@ bool CTaskTake::TruckTakeObject()
fret->SetTruck(m_object);
fret->SetTruckPart(4); // takes with the hand
-//? fret->SetPosition(0, D3DVECTOR(2.2f, -1.0f, 1.1f));
- fret->SetPosition(0, D3DVECTOR(1.7f, -0.5f, 1.1f));
+//? fret->SetPosition(0, Math::Vector(2.2f, -1.0f, 1.1f));
+ fret->SetPosition(0, Math::Vector(1.7f, -0.5f, 1.1f));
fret->SetAngleY(0, 0.1f);
fret->SetAngleX(0, 0.0f);
fret->SetAngleZ(0, 0.8f);
@@ -522,8 +522,8 @@ bool CTaskTake::TruckDeposeObject()
Character* character;
CObject* fret;
CObject* other;
- D3DMATRIX* mat;
- D3DVECTOR pos;
+ Math::Matrix* mat;
+ Math::Vector pos;
float angle;
if ( m_arm == TTA_FFRONT ) // deposes on the ground in front?
@@ -533,7 +533,7 @@ bool CTaskTake::TruckDeposeObject()
m_fretType = fret->RetType();
mat = fret->RetWorldMatrix(0);
- pos = Transform(*mat, D3DVECTOR(-0.5f, 1.0f, 0.0f));
+ pos = Transform(*mat, Math::Vector(-0.5f, 1.0f, 0.0f));
m_terrain->MoveOnFloor(pos);
fret->SetPosition(0, pos);
fret->SetAngleY(0, m_object->RetAngleY(0)+Math::PI/2.0f);
@@ -575,11 +575,11 @@ bool CTaskTake::TruckDeposeObject()
// Seeks if a location allows to deposit an object.
-bool CTaskTake::IsFreeDeposeObject(D3DVECTOR pos)
+bool CTaskTake::IsFreeDeposeObject(Math::Vector pos)
{
CObject* pObj;
- D3DMATRIX* mat;
- D3DVECTOR iPos, oPos;
+ Math::Matrix* mat;
+ Math::Vector iPos, oPos;
float oRadius;
int i, j;
@@ -598,7 +598,7 @@ bool CTaskTake::IsFreeDeposeObject(D3DVECTOR pos)
j = 0;
while ( pObj->GetCrashSphere(j++, oPos, oRadius) )
{
- if ( Length(iPos, oPos)-(oRadius+1.0f) < 1.0f )
+ if ( Math::Distance(iPos, oPos)-(oRadius+1.0f) < 1.0f )
{
return false; // location occupied
}
diff --git a/src/object/task/tasktake.h b/src/object/task/tasktake.h
index 68d2c8e..b9dc053 100644
--- a/src/object/task/tasktake.h
+++ b/src/object/task/tasktake.h
@@ -63,7 +63,7 @@ protected:
CObject* SearchFriendObject(float &angle, float dLimit, float aLimit);
bool TruckTakeObject();
bool TruckDeposeObject();
- bool IsFreeDeposeObject(D3DVECTOR pos);
+ bool IsFreeDeposeObject(Math::Vector pos);
protected:
CTerrain* m_terrain;
diff --git a/src/object/task/taskterraform.cpp b/src/object/task/taskterraform.cpp
index efa251f..5d06956 100644
--- a/src/object/task/taskterraform.cpp
+++ b/src/object/task/taskterraform.cpp
@@ -22,6 +22,7 @@
#include <d3d.h>
#include "common/struct.h"
+#include "math/geometry.h"
#include "common/language.h"
#include "math/old/math3d.h"
#include "common/event.h"
@@ -68,8 +69,8 @@ CTaskTerraform::~CTaskTerraform()
bool CTaskTerraform::EventProcess(const Event &event)
{
CObject* power;
- D3DMATRIX* mat;
- D3DVECTOR pos, dir, speed;
+ Math::Matrix* mat;
+ Math::Vector pos, dir, speed;
Math::Point dim;
float energy;
@@ -157,10 +158,10 @@ bool CTaskTerraform::EventProcess(const Event &event)
if ( m_phase == TTP_CHARGE )
{
// Battery.
- pos = D3DVECTOR(-6.0f, 5.5f+2.0f*m_progress, 0.0f);
+ pos = Math::Vector(-6.0f, 5.5f+2.0f*m_progress, 0.0f);
pos.x += (Math::Rand()-0.5f)*1.0f;
pos.z += (Math::Rand()-0.5f)*1.0f;
- pos = Transform(*mat, pos);
+ pos = Math::Transform(*mat, pos);
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);
@@ -172,28 +173,28 @@ bool CTaskTerraform::EventProcess(const Event &event)
if ( m_phase != TTP_CHARGE )
{
// Left grid.
- pos = D3DVECTOR(-1.0f, 5.8f, 3.5f);
+ pos = Math::Vector(-1.0f, 5.8f, 3.5f);
pos.x += (Math::Rand()-0.5f)*1.0f;
pos.z += (Math::Rand()-0.5f)*1.0f;
- pos = Transform(*mat, pos);
+ pos = Math::Transform(*mat, pos);
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 = Math::Transform(*mat, speed);
speed -= m_object->RetPosition(0);
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 = Math::Vector(-1.0f, 5.8f, -3.5f);
pos.x += (Math::Rand()-0.5f)*1.0f;
pos.z += (Math::Rand()-0.5f)*1.0f;
- pos = Transform(*mat, pos);
+ pos = Math::Transform(*mat, pos);
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 = Math::Transform(*mat, speed);
speed -= m_object->RetPosition(0);
dim.x = Math::Rand()*1.0f+1.0f;
dim.y = dim.x;
@@ -210,8 +211,8 @@ bool CTaskTerraform::EventProcess(const Event &event)
Error CTaskTerraform::Start()
{
CObject* power;
- D3DMATRIX* mat;
- D3DVECTOR pos, speed;
+ Math::Matrix* mat;
+ Math::Vector pos, speed;
float energy;
ObjectType type;
@@ -232,8 +233,8 @@ Error CTaskTerraform::Start()
speed.z != 0.0f ) return ERR_MANIP_MOTOR;
mat = m_object->RetWorldMatrix(0);
- pos = D3DVECTOR(9.0f, 0.0f, 0.0f);
- pos = Transform(*mat, pos); // battery position
+ pos = Math::Vector(9.0f, 0.0f, 0.0f);
+ pos = Math::Transform(*mat, pos); // battery position
m_terraPos = pos;
m_phase = TTP_CHARGE;
@@ -256,7 +257,7 @@ Error CTaskTerraform::Start()
Error CTaskTerraform::IsEnded()
{
CObject* power;
- D3DVECTOR pos, speed;
+ Math::Vector pos, speed;
Math::Point dim;
float dist, duration;
int i, max;
@@ -284,7 +285,7 @@ Error CTaskTerraform::IsEnded()
Terraform(); // changes the terrain.
#endif
- m_object->SetCirVibration(D3DVECTOR(0.0f, 0.0f, 0.0f));
+ m_object->SetCirVibration(Math::Vector(0.0f, 0.0f, 0.0f));
m_object->SetZoom(0, 1.0f);
power = m_object->RetPower();
@@ -300,8 +301,8 @@ Error CTaskTerraform::IsEnded()
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);
+ dist = Math::Distance(pos, m_terraPos);
+ speed = Math::Vector(0.0f, 0.0f, 0.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);
@@ -348,9 +349,9 @@ bool CTaskTerraform::Abort()
m_soundChannel = -1;
}
- m_object->SetPosition(2, D3DVECTOR(9.0f, 4.0f, 0.0f));
- m_object->SetInclinaison(D3DVECTOR(0.0f, 0.0f, 0.0f));
- m_object->SetCirVibration(D3DVECTOR(0.0f, 0.0f, 0.0f));
+ m_object->SetPosition(2, Math::Vector(9.0f, 4.0f, 0.0f));
+ m_object->SetInclinaison(Math::Vector(0.0f, 0.0f, 0.0f));
+ m_object->SetCirVibration(Math::Vector(0.0f, 0.0f, 0.0f));
m_object->SetZoom(0, 1.0f);
power = m_object->RetPower();
@@ -390,7 +391,7 @@ bool CTaskTerraform::Terraform()
if ( type == OBJECT_TEEN34 ) // stone?
{
- dist = Length(m_terraPos, pObj->RetPosition(0));
+ dist = Math::Distance(m_terraPos, pObj->RetPosition(0));
if ( dist > 20.0f ) continue;
pyro = new CPyro(m_iMan);
@@ -401,7 +402,7 @@ bool CTaskTerraform::Terraform()
motion = pObj->RetMotion();
if ( motion == 0 ) continue;
- dist = Length(m_terraPos, pObj->RetPosition(0));
+ dist = Math::Distance(m_terraPos, pObj->RetPosition(0));
if ( dist > ACTION_RADIUS ) continue;
if ( type == OBJECT_ANT )
diff --git a/src/object/task/taskterraform.h b/src/object/task/taskterraform.h
index 7d5ef30..c3ab957 100644
--- a/src/object/task/taskterraform.h
+++ b/src/object/task/taskterraform.h
@@ -64,6 +64,6 @@ protected:
float m_lastParticule;
int m_soundChannel;
bool m_bError;
- D3DVECTOR m_terraPos;
+ Math::Vector m_terraPos;
};
diff --git a/src/physics/physics.cpp b/src/physics/physics.cpp
index 7490ab6..f173c61 100644
--- a/src/physics/physics.cpp
+++ b/src/physics/physics.cpp
@@ -78,7 +78,7 @@ CPhysics::CPhysics(CInstanceManager* iMan, CObject* object)
m_gravity = 9.81f; // default gravity
m_time = 0.0f;
m_timeUnderWater = 0.0f;
- m_motorSpeed = D3DVECTOR(0.0f, 0.0f, 0.0f);
+ m_motorSpeed = Math::Vector(0.0f, 0.0f, 0.0f);
m_bMotor = false;
m_bLand = true; // ground
m_bSwim = false; // in air
@@ -327,7 +327,7 @@ float CPhysics::RetReactorRange()
// y = up/down
// z = turn
-void CPhysics::SetMotorSpeed(D3DVECTOR speed)
+void CPhysics::SetMotorSpeed(Math::Vector speed)
{
m_motorSpeed = speed;
}
@@ -359,7 +359,7 @@ void CPhysics::SetMotorSpeedZ(float speed)
m_motorSpeed.z = speed;
}
-D3DVECTOR CPhysics::RetMotorSpeed()
+Math::Vector CPhysics::RetMotorSpeed()
{
return m_motorSpeed;
}
@@ -383,7 +383,7 @@ float CPhysics::RetMotorSpeedZ()
// Management of linear and angular velocities.
// Specifies the speed parallel to the direction of travel.
-void CPhysics::SetLinMotion(PhysicsMode mode, D3DVECTOR value)
+void CPhysics::SetLinMotion(PhysicsMode mode, Math::Vector value)
{
if ( mode == MO_ADVACCEL ) m_linMotion.advanceAccel = value;
if ( mode == MO_RECACCEL ) m_linMotion.recedeAccel = value;
@@ -399,7 +399,7 @@ void CPhysics::SetLinMotion(PhysicsMode mode, D3DVECTOR value)
if ( mode == MO_REASPEED ) m_linMotion.realSpeed = value;
}
-D3DVECTOR CPhysics::RetLinMotion(PhysicsMode mode)
+Math::Vector CPhysics::RetLinMotion(PhysicsMode mode)
{
if ( mode == MO_ADVACCEL ) return m_linMotion.advanceAccel;
if ( mode == MO_RECACCEL ) return m_linMotion.recedeAccel;
@@ -413,7 +413,7 @@ D3DVECTOR CPhysics::RetLinMotion(PhysicsMode mode)
if ( mode == MO_MOTSPEED ) return m_linMotion.motorSpeed;
if ( mode == MO_CURSPEED ) return m_linMotion.currentSpeed;
if ( mode == MO_REASPEED ) return m_linMotion.realSpeed;
- return D3DVECTOR(0.0f, 0.0f, 0.0f);
+ return Math::Vector(0.0f, 0.0f, 0.0f);
}
void CPhysics::SetLinMotionX(PhysicsMode mode, float value)
@@ -521,7 +521,7 @@ float CPhysics::RetLinMotionZ(PhysicsMode mode)
// Specifies the rotation around the axis of walk.
-void CPhysics::SetCirMotion(PhysicsMode mode, D3DVECTOR value)
+void CPhysics::SetCirMotion(PhysicsMode mode, Math::Vector value)
{
if ( mode == MO_ADVACCEL ) m_cirMotion.advanceAccel = value;
if ( mode == MO_RECACCEL ) m_cirMotion.recedeAccel = value;
@@ -537,7 +537,7 @@ void CPhysics::SetCirMotion(PhysicsMode mode, D3DVECTOR value)
if ( mode == MO_REASPEED ) m_cirMotion.realSpeed = value;
}
-D3DVECTOR CPhysics::RetCirMotion(PhysicsMode mode)
+Math::Vector CPhysics::RetCirMotion(PhysicsMode mode)
{
if ( mode == MO_ADVACCEL ) return m_cirMotion.advanceAccel;
if ( mode == MO_RECACCEL ) return m_cirMotion.recedeAccel;
@@ -551,7 +551,7 @@ D3DVECTOR CPhysics::RetCirMotion(PhysicsMode mode)
if ( mode == MO_MOTSPEED ) return m_cirMotion.motorSpeed;
if ( mode == MO_CURSPEED ) return m_cirMotion.currentSpeed;
if ( mode == MO_REASPEED ) return m_cirMotion.realSpeed;
- return D3DVECTOR(0.0f, 0.0f, 0.0f);
+ return Math::Vector(0.0f, 0.0f, 0.0f);
}
void CPhysics::SetCirMotionX(PhysicsMode mode, float value)
@@ -789,7 +789,7 @@ void CPhysics::MotorUpdate(float aTime, float rTime)
{
ObjectType type;
CObject* power;
- D3DVECTOR pos, motorSpeed;
+ Math::Vector pos, motorSpeed;
float energy, speed, factor, h;
type = m_object->RetType();
@@ -1045,7 +1045,7 @@ void CPhysics::MotorUpdate(float aTime, float rTime)
void CPhysics::EffectUpdate(float aTime, float rTime)
{
Character* character;
- D3DVECTOR vibLin, vibCir, incl;
+ Math::Vector vibLin, vibCir, incl;
float speedLin, speedCir, accel;
ObjectType type;
bool bOnBoard;
@@ -1174,9 +1174,9 @@ void CPhysics::EffectUpdate(float aTime, float rTime)
}
else
{
- m_motion->SetLinVibration(D3DVECTOR(0.0f, 0.0f, 0.0f));
-//? m_motion->SetCirVibration(D3DVECTOR(0.0f, 0.0f, 0.0f));
-//? m_motion->SetInclinaison(D3DVECTOR(0.0f, 0.0f, 0.0f));
+ m_motion->SetLinVibration(Math::Vector(0.0f, 0.0f, 0.0f));
+//? m_motion->SetCirVibration(Math::Vector(0.0f, 0.0f, 0.0f));
+//? m_motion->SetInclinaison(Math::Vector(0.0f, 0.0f, 0.0f));
}
}
@@ -1233,9 +1233,9 @@ void CPhysics::EffectUpdate(float aTime, float rTime)
{
if ( m_bLand ) // on the ground?
{
- m_motion->SetLinVibration(D3DVECTOR(0.0f, 0.0f, 0.0f));
- m_motion->SetCirVibration(D3DVECTOR(0.0f, 0.0f, 0.0f));
- m_motion->SetInclinaison(D3DVECTOR(0.0f, 0.0f, 0.0f));
+ m_motion->SetLinVibration(Math::Vector(0.0f, 0.0f, 0.0f));
+ m_motion->SetCirVibration(Math::Vector(0.0f, 0.0f, 0.0f));
+ m_motion->SetInclinaison(Math::Vector(0.0f, 0.0f, 0.0f));
}
else // in flight?
{
@@ -1470,8 +1470,8 @@ void CPhysics::UpdateMotionStruct(float rTime, Motion &motion)
bool CPhysics::EventFrame(const Event &event)
{
ObjectType type;
- D3DMATRIX objRotate, matRotate;
- D3DVECTOR iPos, iAngle, tAngle, pos, newpos, angle, newangle, n;
+ Math::Matrix objRotate, matRotate;
+ Math::Vector iPos, iAngle, tAngle, pos, newpos, angle, newangle, n;
float h, w;
int i;
@@ -1549,7 +1549,7 @@ bool CPhysics::EventFrame(const Event &event)
UpdateMotionStruct(event.rTime, m_cirMotion);
newangle = angle + event.rTime*m_cirMotion.realSpeed;
- MatRotateZXY(matRotate, newangle);
+ Math::LoadRotationZXYMatrix(matRotate, newangle);
newpos = event.rTime*m_linMotion.realSpeed;
newpos = Transform(matRotate, newpos);
newpos += pos;
@@ -1763,7 +1763,7 @@ void CPhysics::SoundMotor(float rTime)
void CPhysics::WaterFrame(float aTime, float rTime)
{
ObjectType type;
- D3DVECTOR pos, speed;
+ Math::Vector pos, speed;
Math::Point dim;
float level;
@@ -1962,8 +1962,8 @@ void CPhysics::SoundMotorFull(float rTime, ObjectType type)
void CPhysics::SoundMotorSlow(float rTime, ObjectType type)
{
- D3DMATRIX* mat;
- D3DVECTOR pos, speed;
+ Math::Matrix* mat;
+ Math::Vector pos, speed;
Math::Point dim;
Sound sound;
float amplitude;
@@ -2064,7 +2064,7 @@ void CPhysics::SoundMotorSlow(float rTime, ObjectType type)
max = (int)(10.0f*m_engine->RetParticuleDensity());
for ( i=0 ; i<max ; i++ )
{
- pos = D3DVECTOR(-5.0f, 2.0f, 0.0f);
+ pos = Math::Vector(-5.0f, 2.0f, 0.0f);
pos.x += Math::Rand()*4.0f;
pos.z += (Math::Rand()-0.5f)*2.0f;
@@ -2119,8 +2119,8 @@ void CPhysics::SoundMotorStop(float rTime, ObjectType type)
void CPhysics::SoundReactorFull(float rTime, ObjectType type)
{
Sound sound;
- D3DMATRIX* mat;
- D3DVECTOR pos, speed;
+ Math::Matrix* mat;
+ Math::Vector pos, speed;
Math::Point dim;
float freq;
int i;
@@ -2179,11 +2179,11 @@ void CPhysics::SoundReactorFull(float rTime, ObjectType type)
if ( m_object->RetType() == OBJECT_HUMAN ||
m_object->RetType() == OBJECT_TECH )
{
- pos = D3DVECTOR(-1.6f, -0.5f, 0.0f);
+ pos = Math::Vector(-1.6f, -0.5f, 0.0f);
}
else
{
- pos = D3DVECTOR(0.0f, -1.0f, 0.0f);
+ pos = Math::Vector(0.0f, -1.0f, 0.0f);
}
pos.x += (Math::Rand()-0.5f)*2.0f;
pos.z += (Math::Rand()-0.5f)*2.0f;
@@ -2204,11 +2204,11 @@ void CPhysics::SoundReactorFull(float rTime, ObjectType type)
if ( m_object->RetType() == OBJECT_HUMAN ||
m_object->RetType() == OBJECT_TECH )
{
- pos = D3DVECTOR(-1.6f, -0.5f, 0.0f);
+ pos = Math::Vector(-1.6f, -0.5f, 0.0f);
}
else
{
- pos = D3DVECTOR(0.0f, -1.0f, 0.0f);
+ pos = Math::Vector(0.0f, -1.0f, 0.0f);
}
pos.x += (Math::Rand()-0.5f)*1.0f;
pos.z += (Math::Rand()-0.5f)*1.0f;
@@ -2286,12 +2286,12 @@ void CPhysics::SoundReactorStop(float rTime, ObjectType type)
// Adapts the physics of the object based on the ground.
void CPhysics::FloorAdapt(float aTime, float rTime,
- D3DVECTOR &pos, D3DVECTOR &angle)
+ Math::Vector &pos, Math::Vector &angle)
{
Character* character;
ObjectType type;
- D3DVECTOR norm;
- D3DMATRIX matRotate;
+ Math::Vector norm;
+ Math::Matrix matRotate;
float level, h, f, a1, volume, freq, force;
bool bOldSwim, bSlopingTerrain;
@@ -2325,7 +2325,7 @@ void CPhysics::FloorAdapt(float aTime, float rTime,
if ( !m_bLand ) // in flight?
{
m_terrain->GetNormal(norm, pos);
- a1 = fabs(Math::RotateAngle(Length(norm.x, norm.z), norm.y));
+ a1 = fabs(Math::RotateAngle(Math::Point(norm.x, norm.z).Length(), norm.y));
if ( a1 < (90.0f-55.0f)*Math::PI/180.0f ) // slope exceeds 55 degrees?
{
bSlopingTerrain = true; // very sloped ground
@@ -2335,7 +2335,7 @@ void CPhysics::FloorAdapt(float aTime, float rTime,
force = 5.0f+fabs(m_linMotion.realSpeed.x*0.3f)+
fabs(m_linMotion.realSpeed.y*0.3f);
m_linMotion.currentSpeed = norm*force;
- MatRotateXZY(matRotate, -angle);
+ Math::LoadRotationXZYMatrix(matRotate, -angle);
m_linMotion.currentSpeed = Transform(matRotate, m_linMotion.currentSpeed);
if ( aTime-m_soundTimeBoum > 0.5f )
@@ -2457,10 +2457,10 @@ void CPhysics::FloorAdapt(float aTime, float rTime,
// Calculates the angle of an object with the field.
-void CPhysics::FloorAngle(const D3DVECTOR &pos, D3DVECTOR &angle)
+void CPhysics::FloorAngle(const Math::Vector &pos, Math::Vector &angle)
{
Character* character;
- D3DVECTOR pw, norm;
+ Math::Vector pw, norm;
float a1, a2;
character = m_object->RetCharacter();
@@ -2496,13 +2496,13 @@ void CPhysics::FloorAngle(const D3DVECTOR &pos, D3DVECTOR &angle)
// Returns 1 -> immobile object (because collision)
// Returns 2 -> destroyed object
-int CPhysics::ObjectAdapt(const D3DVECTOR &pos, const D3DVECTOR &angle)
+int CPhysics::ObjectAdapt(const Math::Vector &pos, const Math::Vector &angle)
{
CObject* pObj;
CPyro* pyro;
CPhysics* ph;
- D3DMATRIX matRotate;
- D3DVECTOR iPos, oPos, iiPos, oAngle, oSpeed;
+ Math::Matrix matRotate;
+ Math::Vector iPos, oPos, iiPos, oAngle, oSpeed;
Sound sound;
float iRad, oRad, distance, force, volume;
int i, j, colType;
@@ -2581,7 +2581,7 @@ int CPhysics::ObjectAdapt(const D3DVECTOR &pos, const D3DVECTOR &angle)
#endif
{
oPos = pObj->RetPosition(0);
- distance = Length2d(oPos, iPos);
+ distance = Math::DistanceProjected(oPos, iPos);
if ( distance < 4.0f )
{
m_sound->Play(SOUND_WAYPOINT, m_object->RetPosition(0));
@@ -2593,7 +2593,7 @@ int CPhysics::ObjectAdapt(const D3DVECTOR &pos, const D3DVECTOR &angle)
if ( oType == OBJECT_TARGET2 )
{
oPos = pObj->RetPosition(0);
- distance = Length(oPos, iPos);
+ distance = Math::Distance(oPos, iPos);
if ( distance < 10.0f*1.5f )
{
m_sound->Play(SOUND_WAYPOINT, m_object->RetPosition(0));
@@ -2611,10 +2611,10 @@ int CPhysics::ObjectAdapt(const D3DVECTOR &pos, const D3DVECTOR &angle)
if ( iType == OBJECT_BEE && oRad <= 1.2f ) continue;
if ( iType == OBJECT_WORM && oRad <= 1.2f ) continue;
- distance = Length(oPos, iPos);
+ distance = Math::Distance(oPos, iPos);
if ( distance < iRad+oRad ) // collision?
{
- distance = Length(oPos, iiPos);
+ distance = Math::Distance(oPos, iiPos);
if ( distance >= iRad+oRad ) // view (*)
{
m_bCollision = true;
@@ -2631,7 +2631,7 @@ int CPhysics::ObjectAdapt(const D3DVECTOR &pos, const D3DVECTOR &angle)
if ( colType == 0 ) continue; // ignores?
}
- force = Length(m_linMotion.realSpeed);
+ force = m_linMotion.realSpeed.Length();
force *= pObj->RetCrashSphereHardness(j-1);
volume = fabs(force*0.05f);
if ( volume > 1.0f ) volume = 1.0f;
@@ -2656,7 +2656,7 @@ int CPhysics::ObjectAdapt(const D3DVECTOR &pos, const D3DVECTOR &angle)
}
m_linMotion.currentSpeed = Normalize(iPos-oPos)*force;
- MatRotateXZY(matRotate, -angle);
+ Math::LoadRotationXZYMatrix(matRotate, -angle);
m_linMotion.currentSpeed = Transform(matRotate, m_linMotion.currentSpeed);
if ( m_type == TYPE_ROLLING )
{
@@ -2668,7 +2668,7 @@ int CPhysics::ObjectAdapt(const D3DVECTOR &pos, const D3DVECTOR &angle)
{
oAngle = pObj->RetAngle(0);
oSpeed = Normalize(oPos-iPos)*force;
- MatRotateXZY(matRotate, -oAngle);
+ Math::LoadRotationXZYMatrix(matRotate, -oAngle);
oSpeed = Transform(matRotate, oSpeed);
if ( ph->RetType() == TYPE_ROLLING )
{
@@ -2696,13 +2696,13 @@ int CPhysics::ObjectAdapt(const D3DVECTOR &pos, const D3DVECTOR &angle)
// Shakes an object.
-bool CPhysics::JostleObject(CObject* pObj, D3DVECTOR iPos, float iRad,
- D3DVECTOR oPos, float oRad)
+bool CPhysics::JostleObject(CObject* pObj, Math::Vector iPos, float iRad,
+ Math::Vector oPos, float oRad)
{
- D3DVECTOR speed;
+ Math::Vector speed;
float distance, force, d, f;
- distance = Length(oPos, iPos);
+ distance = Math::Distance(oPos, iPos);
if ( distance >= iRad+oRad ) return false;
d = (iRad+oRad)/2.0f;
@@ -2712,7 +2712,7 @@ bool CPhysics::JostleObject(CObject* pObj, D3DVECTOR iPos, float iRad,
speed = m_linMotion.realSpeed;
speed.y = 0.0f;
- force = Length(speed)*f*0.05f;
+ force = speed.Length()*f*0.05f;
if ( force > 1.0f ) force = 1.0f;
if ( m_soundTimeJostle >= 0.20f )
@@ -2728,7 +2728,7 @@ bool CPhysics::JostleObject(CObject* pObj, D3DVECTOR iPos, float iRad,
bool CPhysics::JostleObject(CObject* pObj, float force)
{
- D3DVECTOR oPos;
+ Math::Vector oPos;
float oRad;
pObj->GetJotlerSphere(oPos, oRad);
@@ -2982,7 +2982,7 @@ int CPhysics::ExploHimself(ObjectType iType, ObjectType oType, float force)
void CPhysics::FrameParticule(float aTime, float rTime)
{
- D3DVECTOR pos;
+ Math::Vector pos;
CObject* power;
float energy, intensity;
int effectLight;
@@ -3046,8 +3046,8 @@ void CPhysics::PowerParticule(float factor, bool bBreak)
{
Character* character;
CObject* fret;
- D3DMATRIX* mat;
- D3DVECTOR pos, ppos, eye, speed;
+ Math::Matrix* mat;
+ Math::Vector pos, ppos, eye, speed;
Math::Point dim;
bool bCarryPower;
@@ -3082,7 +3082,7 @@ void CPhysics::PowerParticule(float factor, bool bBreak)
if ( bCarryPower ) // carry a battery?
{
- pos = D3DVECTOR(3.0f, 5.6f, 0.0f); // position of battery holder
+ pos = Math::Vector(3.0f, 5.6f, 0.0f); // position of battery holder
pos = Transform(*mat, pos);
speed.x = (Math::Rand()-0.5f)*12.0f;
@@ -3105,7 +3105,7 @@ void CPhysics::PowerParticule(float factor, bool bBreak)
void CPhysics::CrashParticule(float crash)
{
- D3DVECTOR pos, ppos, speed;
+ Math::Vector pos, ppos, speed;
Math::Point dim;
float len;
int i, max;
@@ -3123,7 +3123,7 @@ void CPhysics::CrashParticule(float crash)
ppos.x = pos.x + (Math::Rand()-0.5f)*15.0f*crash;
ppos.z = pos.z + (Math::Rand()-0.5f)*15.0f*crash;
ppos.y = pos.y + Math::Rand()*4.0f;
- len = 1.0f-(Length(ppos, pos)/(15.0f+5.0f));
+ len = 1.0f-(Math::Distance(ppos, pos)/(15.0f+5.0f));
if ( len <= 0.0f ) continue;
speed.x = (ppos.x-pos.x)*0.1f;
speed.z = (ppos.z-pos.z)*0.1f;
@@ -3138,8 +3138,8 @@ void CPhysics::CrashParticule(float crash)
void CPhysics::MotorParticule(float aTime, float rTime)
{
- D3DMATRIX* mat;
- D3DVECTOR pos, speed;
+ Math::Matrix* mat;
+ Math::Vector pos, speed;
Math::Point dim;
ObjectType type;
Math::Point c, p;
@@ -3246,7 +3246,7 @@ void CPhysics::MotorParticule(float aTime, float rTime)
pos.z = Math::Rand()*0.4f+1.0f;
if ( rand()%2 == 0 ) pos.z = -pos.z;
pos = Transform(*mat, pos);
- speed = D3DVECTOR(0.0f, 1.0f, 0.0f);
+ speed = Math::Vector(0.0f, 1.0f, 0.0f);
dim.x = Math::Rand()*(h-5.0f)/2.0f+1.0f;
if ( dim.x > 2.5f ) dim.x = 2.5f;
dim.y = dim.x;
@@ -3273,7 +3273,7 @@ void CPhysics::MotorParticule(float aTime, float rTime)
pos.z = Math::Rand()*2.0f+3.0f;
if ( rand()%2 == 0 ) pos.z = -pos.z;
pos = Transform(*mat, pos);
- speed = D3DVECTOR(0.0f, 0.0f, 0.0f);
+ speed = Math::Vector(0.0f, 0.0f, 0.0f);
dim.x = Math::Rand()*(h-5.0f)/2.0f+1.0f;
if ( dim.x > 3.0f ) dim.x = 3.0f;
dim.y = dim.x;
@@ -3300,7 +3300,7 @@ void CPhysics::MotorParticule(float aTime, float rTime)
pos.z = Math::Rand()*3.0f+3.0f;
if ( rand()%2 == 0 ) pos.z = -pos.z;
pos = Transform(*mat, pos);
- speed = D3DVECTOR(0.0f, 0.0f, 0.0f);
+ speed = Math::Vector(0.0f, 0.0f, 0.0f);
dim.x = Math::Rand()*(h-5.0f)/2.0f+1.0f;
if ( dim.x > 3.0f ) dim.x = 3.0f;
dim.y = dim.x;
@@ -3326,7 +3326,7 @@ void CPhysics::MotorParticule(float aTime, float rTime)
aTime-m_lastMotorParticule < m_engine->ParticuleAdapt(0.05f) ) return;
m_lastMotorParticule = aTime;
- pos = D3DVECTOR(-1.6f, -0.5f, 0.0f);
+ pos = Math::Vector(-1.6f, -0.5f, 0.0f);
mat = m_object->RetWorldMatrix(0);
pos = Transform(*mat, pos);
@@ -3355,7 +3355,7 @@ void CPhysics::MotorParticule(float aTime, float rTime)
if ( aTime-m_lastMotorParticule < m_engine->ParticuleAdapt(0.02f) ) return;
m_lastMotorParticule = aTime;
- pos = D3DVECTOR(-1.6f, -1.0f, 0.0f);
+ pos = Math::Vector(-1.6f, -1.0f, 0.0f);
pos.x += (Math::Rand()-0.5f)*3.0f;
pos.y += (Math::Rand()-0.5f)*1.5f;
pos.z += (Math::Rand()-0.5f)*3.0f;
@@ -3365,7 +3365,7 @@ void CPhysics::MotorParticule(float aTime, float rTime)
h = m_floorHeight;
if ( h > 10.0f ) // high enough?
{
- speed = D3DVECTOR(0.0f, -10.0f, 0.0f); // against the bottom
+ speed = Math::Vector(0.0f, -10.0f, 0.0f); // against the bottom
}
else
{
@@ -3380,7 +3380,7 @@ void CPhysics::MotorParticule(float aTime, float rTime)
m_particule->CreateParticule(pos, speed, dim, PARTISCRAPS, 2.0f, 10.0f);
#if 1
- pos = D3DVECTOR(-1.6f, -0.5f, 0.0f);
+ pos = Math::Vector(-1.6f, -0.5f, 0.0f);
pos = Transform(*mat, pos);
speed.x = (Math::Rand()-0.5f)*1.0f;
@@ -3435,15 +3435,15 @@ void CPhysics::MotorParticule(float aTime, float rTime)
m_lastMotorParticule = aTime;
r = rand()%3;
- if ( r == 0 ) pos = D3DVECTOR(-3.0f, 0.0f, -4.0f);
- if ( r == 1 ) pos = D3DVECTOR(-3.0f, 0.0f, 4.0f);
- if ( r == 2 ) pos = D3DVECTOR( 4.0f, 0.0f, 0.0f);
+ if ( r == 0 ) pos = Math::Vector(-3.0f, 0.0f, -4.0f);
+ if ( r == 1 ) pos = Math::Vector(-3.0f, 0.0f, 4.0f);
+ if ( r == 2 ) pos = Math::Vector( 4.0f, 0.0f, 0.0f);
pos.x += (Math::Rand()-0.5f)*2.0f;
pos.z += (Math::Rand()-0.5f)*2.0f;
mat = m_object->RetWorldMatrix(0);
pos = Transform(*mat, pos);
- speed = D3DVECTOR(0.0f, 0.0f, 0.0f);
+ speed = Math::Vector(0.0f, 0.0f, 0.0f);
dim.x = Math::Rand()*h/5.0f+2.0f;
dim.y = dim.x;
m_particule->CreateParticule(pos, speed, dim, PARTICRASH, 2.0f);
@@ -3457,15 +3457,15 @@ void CPhysics::MotorParticule(float aTime, float rTime)
m_lastMotorParticule = aTime;
r = rand()%3;
- if ( r == 0 ) pos = D3DVECTOR(-3.0f, 0.0f, -4.0f);
- if ( r == 1 ) pos = D3DVECTOR(-3.0f, 0.0f, 4.0f);
- if ( r == 2 ) pos = D3DVECTOR( 4.0f, 0.0f, 0.0f);
+ if ( r == 0 ) pos = Math::Vector(-3.0f, 0.0f, -4.0f);
+ if ( r == 1 ) pos = Math::Vector(-3.0f, 0.0f, 4.0f);
+ if ( r == 2 ) pos = Math::Vector( 4.0f, 0.0f, 0.0f);
pos.x += (Math::Rand()-0.5f)*1.0f;
pos.z += (Math::Rand()-0.5f)*1.0f;
mat = m_object->RetWorldMatrix(0);
pos = Transform(*mat, pos);
- speed = D3DVECTOR(0.0f, 0.0f, 0.0f);
+ speed = Math::Vector(0.0f, 0.0f, 0.0f);
dim.x = 1.0f;
dim.y = dim.x;
m_particule->CreateParticule(pos, speed, dim, PARTIEJECT);
@@ -3478,7 +3478,7 @@ void CPhysics::MotorParticule(float aTime, float rTime)
if ( aTime-m_lastMotorParticule < m_engine->ParticuleAdapt(0.02f) ) return;
m_lastMotorParticule = aTime;
- pos = D3DVECTOR(0.0f, -1.0f, 0.0f);
+ pos = Math::Vector(0.0f, -1.0f, 0.0f);
pos.x += (Math::Rand()-0.5f)*6.0f;
pos.y += (Math::Rand()-0.5f)*3.0f;
pos.z += (Math::Rand()-0.5f)*6.0f;
@@ -3488,7 +3488,7 @@ void CPhysics::MotorParticule(float aTime, float rTime)
h = m_floorHeight;
if ( h > 10.0f ) // high enough?
{
- speed = D3DVECTOR(0.0f, -10.0f, 0.0f); // against the bottom
+ speed = Math::Vector(0.0f, -10.0f, 0.0f); // against the bottom
}
else
{
@@ -3503,7 +3503,7 @@ void CPhysics::MotorParticule(float aTime, float rTime)
m_particule->CreateParticule(pos, speed, dim, PARTISCRAPS, 2.0f, 10.0f);
#if 1
- pos = D3DVECTOR(0.0f, 1.0f, 0.0f);
+ pos = Math::Vector(0.0f, 1.0f, 0.0f);
pos = Transform(*mat, pos);
speed.x = (Math::Rand()-0.5f)*1.0f;
@@ -3544,7 +3544,7 @@ void CPhysics::MotorParticule(float aTime, float rTime)
if ( aTime-m_lastMotorParticule < m_engine->ParticuleAdapt(0.06f) ) return;
m_lastMotorParticule = aTime;
- pos = D3DVECTOR(0.0f, 3.0f, 0.0f);
+ pos = Math::Vector(0.0f, 3.0f, 0.0f);
mat = m_object->RetWorldMatrix(0);
pos = Transform(*mat, pos);
pos.x += (Math::Rand()-0.5f)*1.0f;
@@ -3570,7 +3570,7 @@ void CPhysics::MotorParticule(float aTime, float rTime)
if ( aTime-m_lastMotorParticule < m_engine->ParticuleAdapt(0.06f) ) return;
m_lastMotorParticule = aTime;
- pos = D3DVECTOR(0.0f, 3.0f, 0.0f);
+ pos = Math::Vector(0.0f, 3.0f, 0.0f);
mat = m_object->RetWorldMatrix(0);
pos = Transform(*mat, pos);
pos.x += (Math::Rand()-0.5f)*1.0f;
@@ -3603,7 +3603,7 @@ void CPhysics::MotorParticule(float aTime, float rTime)
if ( aTime-m_lastMotorParticule < m_engine->ParticuleAdapt(0.1f) ) return;
m_lastMotorParticule = aTime;
- pos = D3DVECTOR(-2.5f, 10.3f, -1.3f);
+ pos = Math::Vector(-2.5f, 10.3f, -1.3f);
pos.x += (Math::Rand()-0.5f)*1.0f;
pos.z += (Math::Rand()-0.5f)*1.0f;
mat = m_object->RetWorldMatrix(0);
@@ -3625,7 +3625,7 @@ void CPhysics::MotorParticule(float aTime, float rTime)
if ( aTime-m_lastMotorParticule < m_engine->ParticuleAdapt(0.05f) ) return;
m_lastMotorParticule = aTime;
- pos = D3DVECTOR(-3.4f, 1.8f, 0.5f);
+ pos = Math::Vector(-3.4f, 1.8f, 0.5f);
speed = pos;
if ( m_linMotion.currentSpeed.x < 0.0f )
@@ -3657,10 +3657,10 @@ void CPhysics::MotorParticule(float aTime, float rTime)
// Generates some particles after falling into the water.
-void CPhysics::WaterParticule(float aTime, D3DVECTOR pos, ObjectType type,
+void CPhysics::WaterParticule(float aTime, Math::Vector pos, ObjectType type,
float floor, float advance, float turn)
{
- D3DVECTOR ppos, speed;
+ Math::Vector ppos, speed;
Math::Point dim;
float delay, level, min, max, force, volume, diam;
int i, nb;
@@ -3704,7 +3704,7 @@ void CPhysics::WaterParticule(float aTime, D3DVECTOR pos, ObjectType type,
pos.y = m_water->RetLevel()-1.0f;
dim.x = 2.0f*force; // height
dim.y = diam; // diameter
- m_particule->CreateParticule(pos, D3DVECTOR(0.0f, 0.0f, 0.0f), dim, PARTIPLOUF0, 1.4f, 0.0f, 0.0f);
+ m_particule->CreateParticule(pos, Math::Vector(0.0f, 0.0f, 0.0f), dim, PARTIPLOUF0, 1.4f, 0.0f, 0.0f);
force = (0.5f+force*0.5f);
nb = (int)(force*50.0f*m_engine->RetParticuleDensity());
@@ -3776,8 +3776,8 @@ void CPhysics::WaterParticule(float aTime, D3DVECTOR pos, ObjectType type,
void CPhysics::WheelParticule(int color, float width)
{
Character* character;
- D3DMATRIX* mat;
- D3DVECTOR goal1, goal2, wheel1, wheel2;
+ Math::Matrix* mat;
+ Math::Vector goal1, goal2, wheel1, wheel2;
ParticuleType parti;
float dist1, dist2, step;
@@ -3810,11 +3810,11 @@ void CPhysics::WheelParticule(int color, float width)
while ( true )
{
- dist1 = Length(m_wheelParticulePos[0], goal1);
+ dist1 = Math::Distance(m_wheelParticulePos[0], goal1);
if ( dist1 < step ) break;
- dist2 = Length(m_wheelParticulePos[1], goal2);
- wheel1 = SegmentDist(m_wheelParticulePos[0], goal1, step);
- wheel2 = SegmentDist(m_wheelParticulePos[1], goal2, step*dist2/dist1);
+ dist2 = Math::Distance(m_wheelParticulePos[1], goal2);
+ wheel1 = Math::SegmentPoint(m_wheelParticulePos[0], goal1, step);
+ wheel2 = Math::SegmentPoint(m_wheelParticulePos[1], goal2, step*dist2/dist1);
if ( m_linMotion.realSpeed.x >= 0.0f )
{
m_particule->CreateWheelTrace(m_wheelParticulePos[0], m_wheelParticulePos[1], wheel1, wheel2, parti);
diff --git a/src/physics/physics.h b/src/physics/physics.h
index 584ebc4..cb6b500 100644
--- a/src/physics/physics.h
+++ b/src/physics/physics.h
@@ -62,23 +62,23 @@ enum PhysicsMode
struct Motion
{
- D3DVECTOR advanceAccel; // acceleration starting (+)
- D3DVECTOR recedeAccel; // acceleration starting (+)
- D3DVECTOR stopAccel; // acceleration stoping (+)
- D3DVECTOR motorAccel; // current acceleration (+/-)
+ Math::Vector advanceAccel; // acceleration starting (+)
+ Math::Vector recedeAccel; // acceleration starting (+)
+ Math::Vector stopAccel; // acceleration stoping (+)
+ Math::Vector motorAccel; // current acceleration (+/-)
- D3DVECTOR advanceSpeed; // forward speed (+)
- D3DVECTOR recedeSpeed; // reversing speed (+)
- D3DVECTOR motorSpeed; // desired speed (+/-)
- D3DVECTOR currentSpeed; // current speed (+/-)
+ Math::Vector advanceSpeed; // forward speed (+)
+ Math::Vector recedeSpeed; // reversing speed (+)
+ Math::Vector motorSpeed; // desired speed (+/-)
+ Math::Vector currentSpeed; // current speed (+/-)
- D3DVECTOR terrainForce; // power of resistance of the ground (+)
- D3DVECTOR terrainSpeed; // speed of the ground (+/-)
- D3DVECTOR terrainSlide; // limit sliding speed (+)
+ Math::Vector terrainForce; // power of resistance of the ground (+)
+ Math::Vector terrainSpeed; // speed of the ground (+/-)
+ Math::Vector terrainSlide; // limit sliding speed (+)
- D3DVECTOR realSpeed; // real speed(+/-)
+ Math::Vector realSpeed; // real speed(+/-)
- D3DVECTOR finalInclin; // final inclination
+ Math::Vector finalInclin; // final inclination
};
@@ -108,8 +108,8 @@ public:
float RetFloorHeight();
- void SetLinMotion(PhysicsMode mode, D3DVECTOR value);
- D3DVECTOR RetLinMotion(PhysicsMode mode);
+ void SetLinMotion(PhysicsMode mode, Math::Vector value);
+ Math::Vector RetLinMotion(PhysicsMode mode);
void SetLinMotionX(PhysicsMode mode, float value);
void SetLinMotionY(PhysicsMode mode, float value);
void SetLinMotionZ(PhysicsMode mode, float value);
@@ -117,8 +117,8 @@ public:
float RetLinMotionY(PhysicsMode mode);
float RetLinMotionZ(PhysicsMode mode);
- void SetCirMotion(PhysicsMode mode, D3DVECTOR value);
- D3DVECTOR RetCirMotion(PhysicsMode mode);
+ void SetCirMotion(PhysicsMode mode, Math::Vector value);
+ Math::Vector RetCirMotion(PhysicsMode mode);
void SetCirMotionX(PhysicsMode mode, float value);
void SetCirMotionY(PhysicsMode mode, float value);
void SetCirMotionZ(PhysicsMode mode, float value);
@@ -145,11 +145,11 @@ public:
void SetReactorRange(float range);
float RetReactorRange();
- void SetMotorSpeed(D3DVECTOR speed);
+ void SetMotorSpeed(Math::Vector speed);
void SetMotorSpeedX(float speed);
void SetMotorSpeedY(float speed);
void SetMotorSpeedZ(float speed);
- D3DVECTOR RetMotorSpeed();
+ Math::Vector RetMotorSpeed();
float RetMotorSpeedX();
float RetMotorSpeedY();
float RetMotorSpeedZ();
@@ -170,10 +170,10 @@ protected:
void MotorUpdate(float aTime, float rTime);
void EffectUpdate(float aTime, float rTime);
void UpdateMotionStruct(float rTime, Motion &motion);
- void FloorAdapt(float aTime, float rTime, D3DVECTOR &pos, D3DVECTOR &angle);
- void FloorAngle(const D3DVECTOR &pos, D3DVECTOR &angle);
- int ObjectAdapt(const D3DVECTOR &pos, const D3DVECTOR &angle);
- bool JostleObject(CObject* pObj, D3DVECTOR iPos, float iRad, D3DVECTOR oPos, float oRad);
+ void FloorAdapt(float aTime, float rTime, Math::Vector &pos, Math::Vector &angle);
+ void FloorAngle(const Math::Vector &pos, Math::Vector &angle);
+ int ObjectAdapt(const Math::Vector &pos, const Math::Vector &angle);
+ bool JostleObject(CObject* pObj, Math::Vector iPos, float iRad, Math::Vector oPos, float oRad);
bool JostleObject(CObject* pObj, float force);
bool ExploOther(ObjectType iType, CObject *pObj, ObjectType oType, float force);
int ExploHimself(ObjectType iType, ObjectType oType, float force);
@@ -181,7 +181,7 @@ protected:
void PowerParticule(float factor, bool bBreak);
void CrashParticule(float crash);
void MotorParticule(float aTime, float rTime);
- void WaterParticule(float aTime, D3DVECTOR pos, ObjectType type, float floor, float advance, float turn);
+ void WaterParticule(float aTime, Math::Vector pos, ObjectType type, float floor, float advance, float turn);
void WheelParticule(int color, float width);
protected:
@@ -200,7 +200,7 @@ protected:
PhysicsType m_type; // TYPE_*
float m_gravity; // force of gravity
float m_time; // absolute time
- D3DVECTOR m_motorSpeed; // motor speed (-1..1)
+ Math::Vector m_motorSpeed; // motor speed (-1..1)
Motion m_linMotion; // linear motion
Motion m_cirMotion; // circular motion
bool m_bMotor;
@@ -221,7 +221,7 @@ protected:
float m_lastPloufParticule;
float m_lastFlameParticule;
bool m_bWheelParticuleBrake;
- D3DVECTOR m_wheelParticulePos[2];
+ Math::Vector m_wheelParticulePos[2];
float m_absorbWater;
float m_reactorTemperature;
float m_reactorRange;
diff --git a/src/script/cmdtoken.cpp b/src/script/cmdtoken.cpp
index b370343..70d1a7b 100644
--- a/src/script/cmdtoken.cpp
+++ b/src/script/cmdtoken.cpp
@@ -906,14 +906,14 @@ int OpBuild(char *line, char *op)
// Returns a position in the XZ plane (top view).
-D3DVECTOR OpPos(char *line, char *op)
+Math::Vector OpPos(char *line, char *op)
{
- D3DVECTOR pos;
+ Math::Vector pos;
line = SearchOp(line, op);
if ( *line == 0 )
{
- pos = D3DVECTOR(0.0f, 0.0f, 0.0f);
+ pos = Math::Vector(0.0f, 0.0f, 0.0f);
return pos;
}
pos.x = GetFloat(line, 0, 0.0f);
@@ -924,14 +924,14 @@ D3DVECTOR OpPos(char *line, char *op)
// Returns a direction.
-D3DVECTOR OpDir(char *line, char *op)
+Math::Vector OpDir(char *line, char *op)
{
- D3DVECTOR dir;
+ Math::Vector dir;
line = SearchOp(line, op);
if ( *line == 0 )
{
- dir = D3DVECTOR(0.0f, 0.0f, 0.0f);
+ dir = Math::Vector(0.0f, 0.0f, 0.0f);
return dir;
}
dir.x = GetFloat(line, 0, 0.0f);
diff --git a/src/script/cmdtoken.h b/src/script/cmdtoken.h
index 70e1441..e8cc812 100644
--- a/src/script/cmdtoken.h
+++ b/src/script/cmdtoken.h
@@ -56,8 +56,8 @@ extern int OpResearch(char *line, char *op);
extern PyroType OpPyro(char *line, char *op);
extern CameraType OpCamera(char *line, char *op);
extern int OpBuild(char *line, char *op);
-extern D3DVECTOR OpPos(char *line, char *op);
-extern D3DVECTOR OpDir(char *line, char *op);
+extern Math::Vector OpPos(char *line, char *op);
+extern Math::Vector OpDir(char *line, char *op);
extern D3DCOLOR OpColor(char *line, char *op, D3DCOLOR def);
extern D3DCOLORVALUE OpColorValue(char *line, char *op, D3DCOLORVALUE def);
diff --git a/src/script/dd.cpp b/src/script/dd.cpp
index b9d5f2f..4c7095e 100644
--- a/src/script/dd.cpp
+++ b/src/script/dd.cpp
@@ -44,7 +44,7 @@ int cPoint(CBotVar* &var, CBotString& retClass, void* user)
// Gives a parameter of type "point".
-bool GetPoint(CBotVar* &var, int& exception, D3DVECTOR& pos)
+bool GetPoint(CBotVar* &var, int& exception, Math::Vector& pos)
{
CBotVar *pX, *pY, *pZ;
@@ -124,7 +124,7 @@ bool rSpace(CBotVar* var, CBotVar* result, int& exception, void* user)
CScript* script = ((CObject*)user)->RetRunScript();
CObject* pThis = (CObject*)user;
CBotVar* pSub;
- D3DVECTOR center;
+ Math::Vector center;
float rMin, rMax, dist;
rMin = 5.0f*UNIT;
diff --git a/src/script/script.cpp b/src/script/script.cpp
index 94c1228..5d4dfcb 100644
--- a/src/script/script.cpp
+++ b/src/script/script.cpp
@@ -164,7 +164,7 @@ bool FindList(CBotVar* array, int type)
// Gives a parameter of type "point".
-bool GetPoint(CBotVar* &var, int& exception, D3DVECTOR& pos)
+bool GetPoint(CBotVar* &var, int& exception, Math::Vector& pos)
{
CBotVar *pX, *pY, *pZ;
@@ -385,7 +385,7 @@ bool rSearch(CBotVar* var, CBotVar* result, int& exception, void* user)
CScript* script = ((CObject*)user)->RetRunScript();
CObject *pObj, *pBest;
CBotVar* array;
- D3DVECTOR pos, oPos;
+ Math::Vector pos, oPos;
bool bNearest = false;
bool bArray;
float min, dist;
@@ -456,7 +456,7 @@ bool rSearch(CBotVar* var, CBotVar* result, int& exception, void* user)
if ( bNearest )
{
oPos = pObj->RetPosition(0);
- dist = Length2d(pos, oPos);
+ dist = Math::DistanceProjected(pos, oPos);
if ( dist < min )
{
min = dist;
@@ -528,7 +528,7 @@ bool rRadar(CBotVar* var, CBotVar* result, int& exception, void* user)
CObject *pObj, *pBest;
CPhysics* physics;
CBotVar* array;
- D3DVECTOR iPos, oPos;
+ Math::Vector iPos, oPos;
RadarFilter filter;
float best, minDist, maxDist, sens, iAngle, angle, focus, d, a;
int type, oType, i;
@@ -656,7 +656,7 @@ bool rRadar(CBotVar* var, CBotVar* result, int& exception, void* user)
}
oPos = pObj->RetPosition(0);
- d = Length2d(iPos, oPos);
+ d = Math::DistanceProjected(iPos, oPos);
if ( d < minDist || d > maxDist ) continue; // too close or too far?
if ( focus >= Math::PI*2.0f )
@@ -744,7 +744,7 @@ bool rDetect(CBotVar* var, CBotVar* result, int& exception, void* user)
CObject *pObj, *pGoal, *pBest;
CPhysics* physics;
CBotVar* array;
- D3DVECTOR iPos, oPos;
+ Math::Vector iPos, oPos;
RadarFilter filter;
float bGoal, best, minDist, maxDist, sens, iAngle, angle, focus, d, a;
int type, oType, i;
@@ -843,7 +843,7 @@ bool rDetect(CBotVar* var, CBotVar* result, int& exception, void* user)
}
oPos = pObj->RetPosition(0);
- d = Length2d(iPos, oPos);
+ d = Math::DistanceProjected(iPos, oPos);
a = Math::RotateAngle(oPos.x-iPos.x, iPos.z-oPos.z); // CW !
if ( d < bGoal &&
@@ -929,7 +929,7 @@ bool rDirection(CBotVar* var, CBotVar* result, int& exception, void* user)
{
CScript* script = ((CObject*)user)->RetRunScript();
CObject* pThis = (CObject*)user;
- D3DVECTOR iPos, oPos;
+ Math::Vector iPos, oPos;
float a, g;
if ( !GetPoint(var, exception, oPos) ) return true;
@@ -979,7 +979,7 @@ bool rProduce(CBotVar* var, CBotVar* result, int& exception, void* user)
CObject* object;
CBotString cbs;
const char* name;
- D3DVECTOR pos;
+ Math::Vector pos;
float angle;
ObjectType type;
@@ -1085,13 +1085,13 @@ CBotTypResult cDistance(CBotVar* &var, void* user)
bool rDistance(CBotVar* var, CBotVar* result, int& exception, void* user)
{
- D3DVECTOR p1, p2;
+ Math::Vector p1, p2;
float value;
if ( !GetPoint(var, exception, p1) ) return true;
if ( !GetPoint(var, exception, p2) ) return true;
- value = Length(p1, p2);
+ value = Math::Distance(p1, p2);
result->SetValFloat(value/g_unit);
return true;
}
@@ -1100,13 +1100,13 @@ bool rDistance(CBotVar* var, CBotVar* result, int& exception, void* user)
bool rDistance2d(CBotVar* var, CBotVar* result, int& exception, void* user)
{
- D3DVECTOR p1, p2;
+ Math::Vector p1, p2;
float value;
if ( !GetPoint(var, exception, p1) ) return true;
if ( !GetPoint(var, exception, p2) ) return true;
- value = Length2d(p1, p2);
+ value = Math::DistanceProjected(p1, p2);
result->SetValFloat(value/g_unit);
return true;
}
@@ -1145,7 +1145,7 @@ bool rSpace(CBotVar* var, CBotVar* result, int& exception, void* user)
CScript* script = ((CObject*)user)->RetRunScript();
CObject* pThis = (CObject*)user;
CBotVar* pSub;
- D3DVECTOR center;
+ Math::Vector center;
float rMin, rMax, dist;
rMin = 10.0f*g_unit;
@@ -1221,7 +1221,7 @@ bool rFlatGround(CBotVar* var, CBotVar* result, int& exception, void* user)
{
CScript* script = ((CObject*)user)->RetRunScript();
CObject* pThis = (CObject*)user;
- D3DVECTOR center;
+ Math::Vector center;
float rMax, dist;
if ( !GetPoint(var, exception, center) ) return true;
@@ -1359,7 +1359,7 @@ CBotTypResult cGoto(CBotVar* &var, void* user)
bool rGoto(CBotVar* var, CBotVar* result, int& exception, void* user)
{
CScript* script = ((CObject*)user)->RetRunScript();
- D3DVECTOR pos;
+ Math::Vector pos;
TaskGotoGoal goal;
TaskGotoCrash crash;
float altitude;
@@ -1415,7 +1415,7 @@ bool rGoto(CBotVar* var, CBotVar* result, int& exception, void* user)
bool rFind(CBotVar* var, CBotVar* result, int& exception, void* user)
{
CScript* script = ((CObject*)user)->RetRunScript();
- D3DVECTOR pos;
+ Math::Vector pos;
TaskGotoGoal goal;
TaskGotoCrash crash;
float altitude;
@@ -1423,7 +1423,7 @@ bool rFind(CBotVar* var, CBotVar* result, int& exception, void* user)
CObject* pThis = (CObject*)user;
CObject *pObj, *pBest;
CBotVar* array;
- D3DVECTOR iPos, oPos;
+ Math::Vector iPos, oPos;
float best, minDist, maxDist, sens, iAngle, angle, focus, d, a;
int type, oType, i;
bool bArray;
@@ -1498,7 +1498,7 @@ bool rFind(CBotVar* var, CBotVar* result, int& exception, void* user)
}
oPos = pObj->RetPosition(0);
- d = Length2d(iPos, oPos);
+ d = Math::DistanceProjected(iPos, oPos);
if ( d < minDist || d > maxDist ) continue; // too close or too far?
if ( focus >= Math::PI*2.0f )
@@ -1821,7 +1821,7 @@ bool rSend(CBotVar* var, CBotVar* result, int& exception, void* user)
CObject* SearchInfo(CScript* script, CObject* object, float power)
{
CObject *pObj, *pBest;
- D3DVECTOR iPos, oPos;
+ Math::Vector iPos, oPos;
ObjectType type;
float dist, min;
int i;
@@ -1841,7 +1841,7 @@ CObject* SearchInfo(CScript* script, CObject* object, float power)
if ( !pObj->RetActif() ) continue;
oPos = pObj->RetPosition(0);
- dist = Length(oPos, iPos);
+ dist = Math::Distance(oPos, iPos);
if ( dist > power ) continue; // too far?
if ( dist < min )
{
@@ -2147,7 +2147,7 @@ bool rFire(CBotVar* var, CBotVar* result, int& exception, void* user)
CScript* script = ((CObject*)user)->RetRunScript();
CObject* pThis = (CObject*)user;
float delay;
- D3DVECTOR impact;
+ Math::Vector impact;
Error err;
ObjectType type;
@@ -2294,7 +2294,7 @@ CBotTypResult cTopo(CBotVar* &var, void* user)
bool rTopo(CBotVar* var, CBotVar* result, int& exception, void* user)
{
CScript* script = ((CObject*)user)->RetRunScript();
- D3DVECTOR pos;
+ Math::Vector pos;
float level;
exception = 0;
diff --git a/src/sound/sound.cpp b/src/sound/sound.cpp
index d28dee5..04b7140 100644
--- a/src/sound/sound.cpp
+++ b/src/sound/sound.cpp
@@ -27,6 +27,7 @@
#include "common/struct.h"
#include "common/iman.h"
#include "math/geometry.h"
+#include "math/conv.h"
#include "math/old/math3d.h"
#include "sound/sound.h"
@@ -313,7 +314,7 @@ CSound::CSound(CInstanceManager* iMan)
m_playTime = 0.0f;
m_uniqueStamp = 0;
m_maxSound = MAXSOUND;
- m_eye = D3DVECTOR(0.0f, 0.0f, 0.0f);
+ m_eye = Math::Vector(0.0f, 0.0f, 0.0f);
m_hWnd = 0;
m_lpDS = NULL;
@@ -931,7 +932,7 @@ bool CSound::CreateBuffer(int channel, Sound sound)
// Calculates the volume and pan of a sound, non-3D mode.
-void CSound::ComputeVolumePan2D(int channel, const D3DVECTOR &pos)
+void CSound::ComputeVolumePan2D(int channel, const Math::Vector &pos)
{
float dist, a, g;
@@ -945,7 +946,7 @@ void CSound::ComputeVolumePan2D(int channel, const D3DVECTOR &pos)
}
#if _TEEN
- dist = Length(pos, m_eye);
+ dist = Math::Distance(pos, m_eye);
if ( dist >= 210.0f ) // very far?
{
m_channel[channel].volume = 0.0f; // silence
@@ -960,7 +961,7 @@ void CSound::ComputeVolumePan2D(int channel, const D3DVECTOR &pos)
}
m_channel[channel].volume = 1.0f-((dist-10.0f)/200.0f);
#else
- dist = Length(pos, m_eye);
+ dist = Math::Distance(pos, m_eye);
if ( dist >= 110.0f ) // very far?
{
m_channel[channel].volume = 0.0f; // silence
@@ -992,7 +993,7 @@ int CSound::Play(Sound sound, float amplitude, float frequency, bool bLoop)
// Sounds at a given position.
// Returns the associated channel or -1.
-int CSound::Play(Sound sound, D3DVECTOR pos,
+int CSound::Play(Sound sound, Math::Vector pos,
float amplitude, float frequency, bool bLoop)
{
DS3DBUFFER sb;
@@ -1004,7 +1005,7 @@ int CSound::Play(Sound sound, D3DVECTOR pos,
if ( !m_bEnable ) return -1;
if ( !m_bState || m_audioVolume == 0 ) return -1;
-//? if ( Length(pos, m_eye) > 100.0f ) return -1;
+//? if ( Math::Distance(pos, m_eye) > 100.0f ) return -1;
if ( !SearchFreeBuffer(sound, channel, bAlreadyLoaded) ) return -1;
@@ -1054,10 +1055,10 @@ int CSound::Play(Sound sound, D3DVECTOR pos,
err = m_channel[channel].soundBuffer3D->GetAllParameters(&sb);
DisplayError("GetAllParameters", sound, err);
- sb.vPosition = pos;
+ sb.vPosition = VEC_TO_D3DVEC(pos);
//? sb.dwInsideConeAngle = 90;
//? sb.dwOutsideConeAngle = 180;
-//? sb.vConeOrientation = D3DVECTOR(0.0f, 1.0f, 0.0f);
+//? sb.vConeOrientation = Math::Vector(0.0f, 1.0f, 0.0f);
sb.lConeOutsideVolume = DSBVOLUME_MIN;
#if _TEEN
sb.flMinDistance = 50.0f;
@@ -1178,7 +1179,7 @@ bool CSound::AddEnvelope(int channel, float amplitude, float frequency,
// Changes the position of a sound.
-bool CSound::Position(int channel, D3DVECTOR pos)
+bool CSound::Position(int channel, Math::Vector pos)
{
float amplitude, pan;
int iVolume, iPan;
@@ -1383,7 +1384,7 @@ void CSound::FrameMove(float rTime)
// Specifies the position of the listener.
// Must be called whenever the camera moves.
-void CSound::SetListener(D3DVECTOR eye, D3DVECTOR lookat)
+void CSound::SetListener(Math::Vector eye, Math::Vector lookat)
{
DS3DLISTENER listenerParams;
HRESULT err;
@@ -1426,8 +1427,8 @@ void CSound::SetListener(D3DVECTOR eye, D3DVECTOR lookat)
listenerParams.dwSize = sizeof(DS3DLISTENER);
m_listener->GetAllParameters(&listenerParams);
- listenerParams.vPosition = eye;
- listenerParams.vOrientFront = lookat-eye;
+ listenerParams.vPosition = VEC_TO_D3DVEC(eye);
+ listenerParams.vOrientFront = VEC_TO_D3DVEC(lookat-eye);
listenerParams.vOrientTop = D3DVECTOR(0.0f, 1.0f, 0.0f);
listenerParams.flDistanceFactor = 10.0f;
listenerParams.flRolloffFactor = 1.0f;
diff --git a/src/sound/sound.h b/src/sound/sound.h
index e2ddb99..2dcdc2c 100644
--- a/src/sound/sound.h
+++ b/src/sound/sound.h
@@ -139,7 +139,7 @@ struct SoundChannel
char bMute; // silence?
Sound type; // SOUND_*
int priority; // so great -> important
- D3DVECTOR pos; // position in space
+ Math::Vector pos; // position in space
unsigned short uniqueStamp; // unique marker
LPDIRECTSOUNDBUFFER soundBuffer;
LPDIRECTSOUND3DBUFFER soundBuffer3D;
@@ -179,14 +179,14 @@ public:
void SetMidiVolume(int volume);
int RetMidiVolume();
- void SetListener(D3DVECTOR eye, D3DVECTOR lookat);
+ void SetListener(Math::Vector eye, Math::Vector lookat);
void FrameMove(float rTime);
int Play(Sound sound, float amplitude=1.0f, float frequency=1.0f, bool bLoop=false);
- int Play(Sound sound, D3DVECTOR pos, float amplitude=1.0f, float frequency=1.0f, bool bLoop=false);
+ int Play(Sound sound, Math::Vector pos, float amplitude=1.0f, float frequency=1.0f, bool bLoop=false);
bool FlushEnvelope(int channel);
bool AddEnvelope(int channel, float amplitude, float frequency, float time, SoundNext oper);
- bool Position(int channel, D3DVECTOR pos);
+ bool Position(int channel, Math::Vector pos);
bool Frequency(int channel, float frequency);
bool Stop(int channel);
bool StopAll();
@@ -204,7 +204,7 @@ protected:
bool CreateSoundBuffer(int channel, DWORD size, DWORD freq, DWORD bitsPerSample, DWORD blkAlign, bool bStereo);
bool ReadData(LPDIRECTSOUNDBUFFER lpDSB, Sound sound, DWORD size);
bool CreateBuffer(int channel, Sound sound);
- void ComputeVolumePan2D(int channel, const D3DVECTOR &pos);
+ void ComputeVolumePan2D(int channel, const Math::Vector &pos);
bool ReadFile(Sound sound, char *metaname, char *filename);
int RetPriority(Sound sound);
bool SearchFreeBuffer(Sound sound, int &channel, bool &bAlreadyLoaded);
@@ -230,8 +230,8 @@ protected:
int m_audioVolume;
int m_midiVolume;
int m_lastMidiVolume;
- D3DVECTOR m_eye;
- D3DVECTOR m_lookat;
+ Math::Vector m_eye;
+ Math::Vector m_lookat;
float m_lastTime;
float m_playTime;
int m_uniqueStamp;
diff --git a/src/ui/compass.cpp b/src/ui/compass.cpp
index e7e1eee..94c2d1e 100644
--- a/src/ui/compass.cpp
+++ b/src/ui/compass.cpp
@@ -84,7 +84,7 @@ void CCompass::Draw()
LPDIRECT3DDEVICE7 device;
D3DVERTEX2 vertex[4]; // 2 triangles
Math::Point p1, p2, p3, c, uv1, uv2;
- D3DVECTOR n;
+ Math::Vector n;
float dp;
if ( (m_state & STATE_VISIBLE) == 0 ) return;
@@ -113,12 +113,12 @@ void CCompass::Draw()
uv2.x -= dp;
uv2.y -= dp;
- n = D3DVECTOR(0.0f, 0.0f, -1.0f); // normal
+ n = Math::Vector(0.0f, 0.0f, -1.0f); // normal
- vertex[0] = D3DVERTEX2(D3DVECTOR(p1.x, p1.y, 0.0f), n, uv1.x,uv2.y);
- vertex[1] = D3DVERTEX2(D3DVECTOR(p1.x, p2.y, 0.0f), n, uv1.x,uv1.y);
- vertex[2] = D3DVERTEX2(D3DVECTOR(p2.x, p1.y, 0.0f), n, uv2.x,uv2.y);
- vertex[3] = D3DVERTEX2(D3DVECTOR(p2.x, p2.y, 0.0f), n, uv2.x,uv1.y);
+ vertex[0] = D3DVERTEX2(Math::Vector(p1.x, p1.y, 0.0f), n, uv1.x,uv2.y);
+ vertex[1] = D3DVERTEX2(Math::Vector(p1.x, p2.y, 0.0f), n, uv1.x,uv1.y);
+ vertex[2] = D3DVERTEX2(Math::Vector(p2.x, p1.y, 0.0f), n, uv2.x,uv2.y);
+ vertex[3] = D3DVERTEX2(Math::Vector(p2.x, p2.y, 0.0f), n, uv2.x,uv1.y);
device->DrawPrimitive(D3DPT_TRIANGLESTRIP, D3DFVF_VERTEX2, vertex, 4, NULL);
m_engine->AddStatisticTriangle(2);
@@ -150,9 +150,9 @@ void CCompass::Draw()
uv2.x -= dp;
uv2.y -= dp;
- vertex[0] = D3DVERTEX2(D3DVECTOR(p1.x, p1.y, 0.0f), n, uv1.x,uv1.y);
- vertex[1] = D3DVERTEX2(D3DVECTOR(p2.x, p2.y, 0.0f), n, uv1.x,uv2.y);
- vertex[2] = D3DVERTEX2(D3DVECTOR(p3.x, p3.y, 0.0f), n, uv2.x,uv2.y);
+ vertex[0] = D3DVERTEX2(Math::Vector(p1.x, p1.y, 0.0f), n, uv1.x,uv1.y);
+ vertex[1] = D3DVERTEX2(Math::Vector(p2.x, p2.y, 0.0f), n, uv1.x,uv2.y);
+ vertex[2] = D3DVERTEX2(Math::Vector(p3.x, p3.y, 0.0f), n, uv2.x,uv2.y);
device->DrawPrimitive(D3DPT_TRIANGLELIST, D3DFVF_VERTEX2, vertex, 3, NULL);
m_engine->AddStatisticTriangle(1);
diff --git a/src/ui/control.cpp b/src/ui/control.cpp
index ee08e9f..77fc9ab 100644
--- a/src/ui/control.cpp
+++ b/src/ui/control.cpp
@@ -439,7 +439,7 @@ void CControl::GlintCreate(Math::Point ref, bool bLeft, bool bUp)
void CControl::GlintFrame(const Event &event)
{
- D3DVECTOR pos, speed;
+ Math::Vector pos, speed;
Math::Point dim;
if ( (m_state & STATE_GLINT ) == 0 ||
@@ -455,7 +455,7 @@ void CControl::GlintFrame(const Event &event)
pos.x = m_glintCorner1.x + (m_glintCorner2.x-m_glintCorner1.x)*Math::Rand();
pos.y = m_glintCorner1.y + (m_glintCorner2.y-m_glintCorner1.y)*Math::Rand();
pos.z = 0.0f;
- speed = D3DVECTOR(0.0f, 0.0f, 0.0f);
+ speed = Math::Vector(0.0f, 0.0f, 0.0f);
dim.x = ((15.0f+Math::Rand()*15.0f)/640.0f);
dim.y = dim.x/0.75f;
m_particule->CreateParticule(pos, speed, dim, PARTICONTROL,
@@ -655,7 +655,7 @@ void CControl::DrawIcon(Math::Point pos, Math::Point dim, Math::Point uv1, Math:
LPDIRECT3DDEVICE7 device;
D3DVERTEX2 vertex[8]; // 6 triangles
Math::Point p1, p2, p3, p4;
- D3DVECTOR n;
+ Math::Vector n;
device = m_engine->RetD3DDevice();
@@ -664,14 +664,14 @@ void CControl::DrawIcon(Math::Point pos, Math::Point dim, Math::Point uv1, Math:
p2.x = pos.x + dim.x;
p2.y = pos.y + dim.y;
- n = D3DVECTOR(0.0f, 0.0f, -1.0f); // normal
+ n = Math::Vector(0.0f, 0.0f, -1.0f); // normal
if ( ex == 0.0f ) // one piece?
{
- vertex[0] = D3DVERTEX2(D3DVECTOR(p1.x, p1.y, 0.0f), n, uv1.x,uv2.y);
- vertex[1] = D3DVERTEX2(D3DVECTOR(p1.x, p2.y, 0.0f), n, uv1.x,uv1.y);
- vertex[2] = D3DVERTEX2(D3DVECTOR(p2.x, p1.y, 0.0f), n, uv2.x,uv2.y);
- vertex[3] = D3DVERTEX2(D3DVECTOR(p2.x, p2.y, 0.0f), n, uv2.x,uv1.y);
+ vertex[0] = D3DVERTEX2(Math::Vector(p1.x, p1.y, 0.0f), n, uv1.x,uv2.y);
+ vertex[1] = D3DVERTEX2(Math::Vector(p1.x, p2.y, 0.0f), n, uv1.x,uv1.y);
+ vertex[2] = D3DVERTEX2(Math::Vector(p2.x, p1.y, 0.0f), n, uv2.x,uv2.y);
+ vertex[3] = D3DVERTEX2(Math::Vector(p2.x, p2.y, 0.0f), n, uv2.x,uv1.y);
device->DrawPrimitive(D3DPT_TRIANGLESTRIP, D3DFVF_VERTEX2, vertex, 4, NULL);
m_engine->AddStatisticTriangle(2);
@@ -683,14 +683,14 @@ void CControl::DrawIcon(Math::Point pos, Math::Point dim, Math::Point uv1, Math:
p3.x = p1.x + ex*dim.y/(uv2.y-uv1.y);
p4.x = p2.x - ex*dim.y/(uv2.y-uv1.y);
- vertex[0] = D3DVERTEX2(D3DVECTOR(p1.x, p1.y, 0.0f), n, uv1.x, uv2.y);
- vertex[1] = D3DVERTEX2(D3DVECTOR(p1.x, p2.y, 0.0f), n, uv1.x, uv1.y);
- vertex[2] = D3DVERTEX2(D3DVECTOR(p3.x, p1.y, 0.0f), n, uv1.x+ex,uv2.y);
- vertex[3] = D3DVERTEX2(D3DVECTOR(p3.x, p2.y, 0.0f), n, uv1.x+ex,uv1.y);
- vertex[4] = D3DVERTEX2(D3DVECTOR(p4.x, p1.y, 0.0f), n, uv2.x-ex,uv2.y);
- vertex[5] = D3DVERTEX2(D3DVECTOR(p4.x, p2.y, 0.0f), n, uv2.x-ex,uv1.y);
- vertex[6] = D3DVERTEX2(D3DVECTOR(p2.x, p1.y, 0.0f), n, uv2.x, uv2.y);
- vertex[7] = D3DVERTEX2(D3DVECTOR(p2.x, p2.y, 0.0f), n, uv2.x, uv1.y);
+ vertex[0] = D3DVERTEX2(Math::Vector(p1.x, p1.y, 0.0f), n, uv1.x, uv2.y);
+ vertex[1] = D3DVERTEX2(Math::Vector(p1.x, p2.y, 0.0f), n, uv1.x, uv1.y);
+ vertex[2] = D3DVERTEX2(Math::Vector(p3.x, p1.y, 0.0f), n, uv1.x+ex,uv2.y);
+ vertex[3] = D3DVERTEX2(Math::Vector(p3.x, p2.y, 0.0f), n, uv1.x+ex,uv1.y);
+ vertex[4] = D3DVERTEX2(Math::Vector(p4.x, p1.y, 0.0f), n, uv2.x-ex,uv2.y);
+ vertex[5] = D3DVERTEX2(Math::Vector(p4.x, p2.y, 0.0f), n, uv2.x-ex,uv1.y);
+ vertex[6] = D3DVERTEX2(Math::Vector(p2.x, p1.y, 0.0f), n, uv2.x, uv2.y);
+ vertex[7] = D3DVERTEX2(Math::Vector(p2.x, p2.y, 0.0f), n, uv2.x, uv1.y);
device->DrawPrimitive(D3DPT_TRIANGLESTRIP, D3DFVF_VERTEX2, vertex, 8, NULL);
m_engine->AddStatisticTriangle(6);
@@ -700,14 +700,14 @@ void CControl::DrawIcon(Math::Point pos, Math::Point dim, Math::Point uv1, Math:
p3.y = p1.y + ex*dim.x/(uv2.x-uv1.x);
p4.y = p2.y - ex*dim.x/(uv2.x-uv1.x);
- vertex[0] = D3DVERTEX2(D3DVECTOR(p2.x, p1.y, 0.0f), n, uv2.x,uv2.y );
- vertex[1] = D3DVERTEX2(D3DVECTOR(p1.x, p1.y, 0.0f), n, uv1.x,uv2.y );
- vertex[2] = D3DVERTEX2(D3DVECTOR(p2.x, p3.y, 0.0f), n, uv2.x,uv2.y-ex);
- vertex[3] = D3DVERTEX2(D3DVECTOR(p1.x, p3.y, 0.0f), n, uv1.x,uv2.y-ex);
- vertex[4] = D3DVERTEX2(D3DVECTOR(p2.x, p4.y, 0.0f), n, uv2.x,uv1.y+ex);
- vertex[5] = D3DVERTEX2(D3DVECTOR(p1.x, p4.y, 0.0f), n, uv1.x,uv1.y+ex);
- vertex[6] = D3DVERTEX2(D3DVECTOR(p2.x, p2.y, 0.0f), n, uv2.x,uv1.y );
- vertex[7] = D3DVERTEX2(D3DVECTOR(p1.x, p2.y, 0.0f), n, uv1.x,uv1.y );
+ vertex[0] = D3DVERTEX2(Math::Vector(p2.x, p1.y, 0.0f), n, uv2.x,uv2.y );
+ vertex[1] = D3DVERTEX2(Math::Vector(p1.x, p1.y, 0.0f), n, uv1.x,uv2.y );
+ vertex[2] = D3DVERTEX2(Math::Vector(p2.x, p3.y, 0.0f), n, uv2.x,uv2.y-ex);
+ vertex[3] = D3DVERTEX2(Math::Vector(p1.x, p3.y, 0.0f), n, uv1.x,uv2.y-ex);
+ vertex[4] = D3DVERTEX2(Math::Vector(p2.x, p4.y, 0.0f), n, uv2.x,uv1.y+ex);
+ vertex[5] = D3DVERTEX2(Math::Vector(p1.x, p4.y, 0.0f), n, uv1.x,uv1.y+ex);
+ vertex[6] = D3DVERTEX2(Math::Vector(p2.x, p2.y, 0.0f), n, uv2.x,uv1.y );
+ vertex[7] = D3DVERTEX2(Math::Vector(p1.x, p2.y, 0.0f), n, uv1.x,uv1.y );
device->DrawPrimitive(D3DPT_TRIANGLESTRIP, D3DFVF_VERTEX2, vertex, 8, NULL);
m_engine->AddStatisticTriangle(6);
@@ -723,7 +723,7 @@ void CControl::DrawIcon(Math::Point pos, Math::Point dim, Math::Point uv1, Math:
LPDIRECT3DDEVICE7 device;
D3DVERTEX2 vertex[8]; // 6 triangles
Math::Point p1, p2, p3, p4;
- D3DVECTOR n;
+ Math::Vector n;
device = m_engine->RetD3DDevice();
@@ -732,7 +732,7 @@ void CControl::DrawIcon(Math::Point pos, Math::Point dim, Math::Point uv1, Math:
p2.x = pos.x + dim.x;
p2.y = pos.y + dim.y;
- n = D3DVECTOR(0.0f, 0.0f, -1.0f); // normal
+ n = Math::Vector(0.0f, 0.0f, -1.0f); // normal
if ( corner.x > dim.x/2.0f ) corner.x = dim.x/2.0f;
if ( corner.y > dim.y/2.0f ) corner.y = dim.y/2.0f;
@@ -747,38 +747,38 @@ void CControl::DrawIcon(Math::Point pos, Math::Point dim, Math::Point uv1, Math:
p4.y = p2.y - corner.y;
// Bottom horizontal band.
- vertex[0] = D3DVERTEX2(D3DVECTOR(p1.x, p1.y, 0.0f), n, uv1.x, uv2.y );
- vertex[1] = D3DVERTEX2(D3DVECTOR(p1.x, p3.y, 0.0f), n, uv1.x, uv2.y-ex);
- vertex[2] = D3DVERTEX2(D3DVECTOR(p3.x, p1.y, 0.0f), n, uv1.x+ex,uv2.y );
- vertex[3] = D3DVERTEX2(D3DVECTOR(p3.x, p3.y, 0.0f), n, uv1.x+ex,uv2.y-ex);
- vertex[4] = D3DVERTEX2(D3DVECTOR(p4.x, p1.y, 0.0f), n, uv2.x-ex,uv2.y );
- vertex[5] = D3DVERTEX2(D3DVECTOR(p4.x, p3.y, 0.0f), n, uv2.x-ex,uv2.y-ex);
- vertex[6] = D3DVERTEX2(D3DVECTOR(p2.x, p1.y, 0.0f), n, uv2.x, uv2.y );
- vertex[7] = D3DVERTEX2(D3DVECTOR(p2.x, p3.y, 0.0f), n, uv2.x, uv2.y-ex);
+ vertex[0] = D3DVERTEX2(Math::Vector(p1.x, p1.y, 0.0f), n, uv1.x, uv2.y );
+ vertex[1] = D3DVERTEX2(Math::Vector(p1.x, p3.y, 0.0f), n, uv1.x, uv2.y-ex);
+ vertex[2] = D3DVERTEX2(Math::Vector(p3.x, p1.y, 0.0f), n, uv1.x+ex,uv2.y );
+ vertex[3] = D3DVERTEX2(Math::Vector(p3.x, p3.y, 0.0f), n, uv1.x+ex,uv2.y-ex);
+ vertex[4] = D3DVERTEX2(Math::Vector(p4.x, p1.y, 0.0f), n, uv2.x-ex,uv2.y );
+ vertex[5] = D3DVERTEX2(Math::Vector(p4.x, p3.y, 0.0f), n, uv2.x-ex,uv2.y-ex);
+ vertex[6] = D3DVERTEX2(Math::Vector(p2.x, p1.y, 0.0f), n, uv2.x, uv2.y );
+ vertex[7] = D3DVERTEX2(Math::Vector(p2.x, p3.y, 0.0f), n, uv2.x, uv2.y-ex);
device->DrawPrimitive(D3DPT_TRIANGLESTRIP, D3DFVF_VERTEX2, vertex, 8, NULL);
m_engine->AddStatisticTriangle(6);
// Central horizontal band.
- vertex[0] = D3DVERTEX2(D3DVECTOR(p1.x, p3.y, 0.0f), n, uv1.x, uv2.y-ex);
- vertex[1] = D3DVERTEX2(D3DVECTOR(p1.x, p4.y, 0.0f), n, uv1.x, uv1.y+ex);
- vertex[2] = D3DVERTEX2(D3DVECTOR(p3.x, p3.y, 0.0f), n, uv1.x+ex,uv2.y-ex);
- vertex[3] = D3DVERTEX2(D3DVECTOR(p3.x, p4.y, 0.0f), n, uv1.x+ex,uv1.y+ex);
- vertex[4] = D3DVERTEX2(D3DVECTOR(p4.x, p3.y, 0.0f), n, uv2.x-ex,uv2.y-ex);
- vertex[5] = D3DVERTEX2(D3DVECTOR(p4.x, p4.y, 0.0f), n, uv2.x-ex,uv1.y+ex);
- vertex[6] = D3DVERTEX2(D3DVECTOR(p2.x, p3.y, 0.0f), n, uv2.x, uv2.y-ex);
- vertex[7] = D3DVERTEX2(D3DVECTOR(p2.x, p4.y, 0.0f), n, uv2.x, uv1.y+ex);
+ vertex[0] = D3DVERTEX2(Math::Vector(p1.x, p3.y, 0.0f), n, uv1.x, uv2.y-ex);
+ vertex[1] = D3DVERTEX2(Math::Vector(p1.x, p4.y, 0.0f), n, uv1.x, uv1.y+ex);
+ vertex[2] = D3DVERTEX2(Math::Vector(p3.x, p3.y, 0.0f), n, uv1.x+ex,uv2.y-ex);
+ vertex[3] = D3DVERTEX2(Math::Vector(p3.x, p4.y, 0.0f), n, uv1.x+ex,uv1.y+ex);
+ vertex[4] = D3DVERTEX2(Math::Vector(p4.x, p3.y, 0.0f), n, uv2.x-ex,uv2.y-ex);
+ vertex[5] = D3DVERTEX2(Math::Vector(p4.x, p4.y, 0.0f), n, uv2.x-ex,uv1.y+ex);
+ vertex[6] = D3DVERTEX2(Math::Vector(p2.x, p3.y, 0.0f), n, uv2.x, uv2.y-ex);
+ vertex[7] = D3DVERTEX2(Math::Vector(p2.x, p4.y, 0.0f), n, uv2.x, uv1.y+ex);
device->DrawPrimitive(D3DPT_TRIANGLESTRIP, D3DFVF_VERTEX2, vertex, 8, NULL);
m_engine->AddStatisticTriangle(6);
// Top horizontal band.
- vertex[0] = D3DVERTEX2(D3DVECTOR(p1.x, p4.y, 0.0f), n, uv1.x, uv1.y+ex);
- vertex[1] = D3DVERTEX2(D3DVECTOR(p1.x, p2.y, 0.0f), n, uv1.x, uv1.y );
- vertex[2] = D3DVERTEX2(D3DVECTOR(p3.x, p4.y, 0.0f), n, uv1.x+ex,uv1.y+ex);
- vertex[3] = D3DVERTEX2(D3DVECTOR(p3.x, p2.y, 0.0f), n, uv1.x+ex,uv1.y );
- vertex[4] = D3DVERTEX2(D3DVECTOR(p4.x, p4.y, 0.0f), n, uv2.x-ex,uv1.y+ex);
- vertex[5] = D3DVERTEX2(D3DVECTOR(p4.x, p2.y, 0.0f), n, uv2.x-ex,uv1.y );
- vertex[6] = D3DVERTEX2(D3DVECTOR(p2.x, p4.y, 0.0f), n, uv2.x, uv1.y+ex);
- vertex[7] = D3DVERTEX2(D3DVECTOR(p2.x, p2.y, 0.0f), n, uv2.x, uv1.y );
+ vertex[0] = D3DVERTEX2(Math::Vector(p1.x, p4.y, 0.0f), n, uv1.x, uv1.y+ex);
+ vertex[1] = D3DVERTEX2(Math::Vector(p1.x, p2.y, 0.0f), n, uv1.x, uv1.y );
+ vertex[2] = D3DVERTEX2(Math::Vector(p3.x, p4.y, 0.0f), n, uv1.x+ex,uv1.y+ex);
+ vertex[3] = D3DVERTEX2(Math::Vector(p3.x, p2.y, 0.0f), n, uv1.x+ex,uv1.y );
+ vertex[4] = D3DVERTEX2(Math::Vector(p4.x, p4.y, 0.0f), n, uv2.x-ex,uv1.y+ex);
+ vertex[5] = D3DVERTEX2(Math::Vector(p4.x, p2.y, 0.0f), n, uv2.x-ex,uv1.y );
+ vertex[6] = D3DVERTEX2(Math::Vector(p2.x, p4.y, 0.0f), n, uv2.x, uv1.y+ex);
+ vertex[7] = D3DVERTEX2(Math::Vector(p2.x, p2.y, 0.0f), n, uv2.x, uv1.y );
device->DrawPrimitive(D3DPT_TRIANGLESTRIP, D3DFVF_VERTEX2, vertex, 8, NULL);
m_engine->AddStatisticTriangle(6);
}
diff --git a/src/ui/displayinfo.cpp b/src/ui/displayinfo.cpp
index 5921453..f788445 100644
--- a/src/ui/displayinfo.cpp
+++ b/src/ui/displayinfo.cpp
@@ -466,7 +466,7 @@ void CDisplayInfo::StartDisplayInfo(char *filename, int index, bool bSoluce)
light.dcvDiffuse.r = 1.0f;
light.dcvDiffuse.g = 1.0f;
light.dcvDiffuse.b = 1.0f;
- light.dvDirection = D3DVECTOR(1.0f, 0.0f, 1.0f);
+ light.dvDirection = D3DVECTOR(1.0f, 0.0f, 1.0f);
m_lightSuppl = m_light->CreateLight();
m_light->SetLight(m_lightSuppl, light);
m_light->SetLightExcluType(m_lightSuppl, TYPETERRAIN);
diff --git a/src/ui/displaytext.cpp b/src/ui/displaytext.cpp
index 3fa2687..f1dba43 100644
--- a/src/ui/displaytext.cpp
+++ b/src/ui/displaytext.cpp
@@ -61,7 +61,7 @@ CDisplayText::CDisplayText(CInstanceManager* iMan)
for ( i=0 ; i<MAXDTLINE ; i++ )
{
m_bExist[i] = false;
- m_visitGoal[i] = D3DVECTOR(0.0f, 0.0f, 0.0f);
+ m_visitGoal[i] = Math::Vector(0.0f, 0.0f, 0.0f);
m_visitDist[i] = 0.0f;
m_visitHeight[i] = 0.0f;
m_time[i] = 0.0f; // nothing displayed
@@ -119,7 +119,7 @@ bool CDisplayText::EventProcess(const Event &event)
void CDisplayText::DisplayError(Error err, CObject* pObj, float time)
{
- D3DVECTOR pos;
+ Math::Vector pos;
float h, d;
if ( pObj == 0 ) return;
@@ -132,7 +132,7 @@ void CDisplayText::DisplayError(Error err, CObject* pObj, float time)
// Displays an error.
-void CDisplayText::DisplayError(Error err, D3DVECTOR goal, float height,
+void CDisplayText::DisplayError(Error err, Math::Vector goal, float height,
float dist, float time)
{
TextType type;
@@ -181,7 +181,7 @@ void CDisplayText::DisplayError(Error err, D3DVECTOR goal, float height,
void CDisplayText::DisplayText(char *text, CObject* pObj,
float time, TextType type)
{
- D3DVECTOR pos;
+ Math::Vector pos;
float h, d;
if ( pObj == 0 ) return;
@@ -194,7 +194,7 @@ void CDisplayText::DisplayText(char *text, CObject* pObj,
// Displays text.
-void CDisplayText::DisplayText(char *text, D3DVECTOR goal, float height,
+void CDisplayText::DisplayText(char *text, Math::Vector goal, float height,
float dist, float time, TextType type)
{
CObject* toto;
@@ -338,7 +338,7 @@ void CDisplayText::ClearText()
pw->DeleteControl(EventMsg(EVENT_DT_VISIT0+i));
}
m_bExist[i] = false;
- m_visitGoal[i] = D3DVECTOR(0.0f, 0.0f, 0.0f);
+ m_visitGoal[i] = Math::Vector(0.0f, 0.0f, 0.0f);
m_visitDist[i] = 0.0f;
m_visitHeight[i] = 0.0f;
m_time[i] = 0.0f;
@@ -453,12 +453,12 @@ void CDisplayText::SetEnable(bool bEnable)
// Returns the goal during a visit.
-D3DVECTOR CDisplayText::RetVisitGoal(EventMsg event)
+Math::Vector CDisplayText::RetVisitGoal(EventMsg event)
{
int i;
i = event-EVENT_DT_VISIT0;
- if ( i < 0 || i >= MAXDTLINE ) return D3DVECTOR(0.0f, 0.0f, 0.0f);
+ if ( i < 0 || i >= MAXDTLINE ) return Math::Vector(0.0f, 0.0f, 0.0f);
return m_visitGoal[i];
}
diff --git a/src/ui/displaytext.h b/src/ui/displaytext.h
index 381e2f6..f0c6992 100644
--- a/src/ui/displaytext.h
+++ b/src/ui/displaytext.h
@@ -53,16 +53,16 @@ public:
bool EventProcess(const Event &event);
void DisplayError(Error err, CObject* pObj, float time=10.0f);
- void DisplayError(Error err, D3DVECTOR goal, float height=15.0f, float dist=60.0f, float time=10.0f);
+ void DisplayError(Error err, Math::Vector goal, float height=15.0f, float dist=60.0f, float time=10.0f);
void DisplayText(char *text, CObject* pObj, float time=10.0f, TextType type=TT_INFO);
- void DisplayText(char *text, D3DVECTOR goal, float height=15.0f, float dist=60.0f, float time=10.0f, TextType type=TT_INFO);
+ void DisplayText(char *text, Math::Vector goal, float height=15.0f, float dist=60.0f, float time=10.0f, TextType type=TT_INFO);
void HideText(bool bHide);
void ClearText();
bool ClearLastText();
void SetDelay(float factor);
void SetEnable(bool bEnable);
- D3DVECTOR RetVisitGoal(EventMsg event);
+ Math::Vector RetVisitGoal(EventMsg event);
float RetVisitDist(EventMsg event);
float RetVisitHeight(EventMsg event);
@@ -84,7 +84,7 @@ protected:
bool m_bExist[MAXDTLINE];
float m_time[MAXDTLINE];
- D3DVECTOR m_visitGoal[MAXDTLINE];
+ Math::Vector m_visitGoal[MAXDTLINE];
float m_visitDist[MAXDTLINE];
float m_visitHeight[MAXDTLINE];
diff --git a/src/ui/maindialog.cpp b/src/ui/maindialog.cpp
index f57a913..7e80fcf 100644
--- a/src/ui/maindialog.cpp
+++ b/src/ui/maindialog.cpp
@@ -3253,9 +3253,9 @@ void CMainDialog::GlintMove()
// Returns the position for a sound.
-D3DVECTOR SoundPos(Math::Point pos)
+Math::Vector SoundPos(Math::Point pos)
{
- D3DVECTOR s;
+ Math::Vector s;
s.x = (pos.x-0.5f)*2.0f;
s.y = (pos.y-0.5f)*2.0f;
@@ -3266,9 +3266,9 @@ D3DVECTOR SoundPos(Math::Point pos)
// Returns a random position for a sound.
-D3DVECTOR SoundRand()
+Math::Vector SoundRand()
{
- D3DVECTOR s;
+ Math::Vector s;
s.x = (Math::Rand()-0.5f)*2.0f;
s.y = (Math::Rand()-0.5f)*2.0f;
@@ -3283,7 +3283,7 @@ void CMainDialog::FrameParticule(float rTime)
{
#if _NEWLOOK
#else
- D3DVECTOR pos, speed;
+ Math::Vector pos, speed;
Math::Point dim;
float *pParti, *pGlint;
int nParti, nGlint;
@@ -3570,7 +3570,7 @@ void CMainDialog::FrameParticule(float rTime)
void CMainDialog::NiceParticule(Math::Point mouse, bool bPress)
{
- D3DVECTOR pos, speed;
+ Math::Vector pos, speed;
Math::Point dim;
if ( !m_bRain ) return;
@@ -4199,15 +4199,15 @@ void CMainDialog::CameraPerso()
{
if ( m_persoTab == 0 )
{
-//? m_camera->Init(D3DVECTOR(4.0f, 0.0f, 0.0f),
-//? D3DVECTOR(0.0f, 0.0f, 1.0f), 0.0f);
- m_camera->Init(D3DVECTOR(6.0f, 0.0f, 0.0f),
- D3DVECTOR(0.0f, 0.2f, 1.5f), 0.0f);
+//? m_camera->Init(Math::Vector(4.0f, 0.0f, 0.0f),
+//? Math::Vector(0.0f, 0.0f, 1.0f), 0.0f);
+ m_camera->Init(Math::Vector(6.0f, 0.0f, 0.0f),
+ Math::Vector(0.0f, 0.2f, 1.5f), 0.0f);
}
else
{
- m_camera->Init(D3DVECTOR(18.0f, 0.0f, 4.5f),
- D3DVECTOR(0.0f, 1.6f, 4.5f), 0.0f);
+ m_camera->Init(Math::Vector(18.0f, 0.0f, 4.5f),
+ Math::Vector(0.0f, 1.6f, 4.5f), 0.0f);
}
m_camera->SetType(CAMERA_SCRIPT);
@@ -6360,7 +6360,7 @@ void CMainDialog::StartDialog(Math::Point dim, bool bFire, bool bOK, bool bCance
void CMainDialog::FrameDialog(float rTime)
{
CWindow* pw;
- D3DVECTOR pos, speed;
+ Math::Vector pos, speed;
Math::Point dim, dpos, ddim;
float zoom;
int i;
@@ -6409,7 +6409,7 @@ void CMainDialog::FrameDialog(float rTime)
ddim = m_dialogDim;
pos.z = 0.0f;
- speed = D3DVECTOR(0.0f, 0.0f, 0.0f);
+ speed = Math::Vector(0.0f, 0.0f, 0.0f);
for ( i=0 ; i<2 ; i++ )
{
diff --git a/src/ui/map.cpp b/src/ui/map.cpp
index 437ad58..7c62d3a 100644
--- a/src/ui/map.cpp
+++ b/src/ui/map.cpp
@@ -286,7 +286,7 @@ CObject* CMap::DetectObject(Math::Point pos, bool &bInMap)
if ( m_map[i].color == MAPCOLOR_BBOX && !m_bRadar ) continue;
if ( m_map[i].color == MAPCOLOR_ALIEN && !m_bRadar ) continue;
- dist = Length(m_map[i].pos.x-pos.x, m_map[i].pos.y-pos.y);
+ dist = Math::Point(m_map[i].pos.x-pos.x, m_map[i].pos.y-pos.y).Length();
if ( dist > m_half/m_zoom*8.0f/100.0f ) continue; // too far?
if ( dist < min )
{
@@ -932,15 +932,15 @@ void CMap::DrawTriangle(Math::Point p1, Math::Point p2, Math::Point p3, Math::Po
{
LPDIRECT3DDEVICE7 device;
D3DVERTEX2 vertex[3]; // 1 triangle
- D3DVECTOR n;
+ Math::Vector n;
device = m_engine->RetD3DDevice();
- n = D3DVECTOR(0.0f, 0.0f, -1.0f); // normal
+ n = Math::Vector(0.0f, 0.0f, -1.0f); // normal
- vertex[0] = D3DVERTEX2(D3DVECTOR(p1.x, p1.y, 0.0f), n, uv1.x,uv1.y);
- vertex[1] = D3DVERTEX2(D3DVECTOR(p2.x, p2.y, 0.0f), n, uv1.x,uv2.y);
- vertex[2] = D3DVERTEX2(D3DVECTOR(p3.x, p3.y, 0.0f), n, uv2.x,uv2.y);
+ vertex[0] = D3DVERTEX2(Math::Vector(p1.x, p1.y, 0.0f), n, uv1.x,uv1.y);
+ vertex[1] = D3DVERTEX2(Math::Vector(p2.x, p2.y, 0.0f), n, uv1.x,uv2.y);
+ vertex[2] = D3DVERTEX2(Math::Vector(p3.x, p3.y, 0.0f), n, uv2.x,uv2.y);
device->DrawPrimitive(D3DPT_TRIANGLELIST, D3DFVF_VERTEX2, vertex, 3, NULL);
m_engine->AddStatisticTriangle(1);
@@ -952,24 +952,24 @@ void CMap::DrawPenta(Math::Point p1, Math::Point p2, Math::Point p3, Math::Point
{
LPDIRECT3DDEVICE7 device;
D3DVERTEX2 vertex[5]; // 1 pentagon
- D3DVECTOR n;
+ Math::Vector n;
device = m_engine->RetD3DDevice();
- n = D3DVECTOR(0.0f, 0.0f, -1.0f); // normal
+ n = Math::Vector(0.0f, 0.0f, -1.0f); // normal
#if 1
- vertex[0] = D3DVERTEX2(D3DVECTOR(p1.x, p1.y, 0.0f), n, uv1.x,uv1.y);
- vertex[1] = D3DVERTEX2(D3DVECTOR(p2.x, p2.y, 0.0f), n, uv1.x,uv2.y);
- vertex[2] = D3DVERTEX2(D3DVECTOR(p5.x, p5.y, 0.0f), n, uv2.x,uv2.y);
- vertex[3] = D3DVERTEX2(D3DVECTOR(p3.x, p3.y, 0.0f), n, uv2.x,uv2.y);
- vertex[4] = D3DVERTEX2(D3DVECTOR(p4.x, p4.y, 0.0f), n, uv2.x,uv2.y);
+ vertex[0] = D3DVERTEX2(Math::Vector(p1.x, p1.y, 0.0f), n, uv1.x,uv1.y);
+ vertex[1] = D3DVERTEX2(Math::Vector(p2.x, p2.y, 0.0f), n, uv1.x,uv2.y);
+ vertex[2] = D3DVERTEX2(Math::Vector(p5.x, p5.y, 0.0f), n, uv2.x,uv2.y);
+ vertex[3] = D3DVERTEX2(Math::Vector(p3.x, p3.y, 0.0f), n, uv2.x,uv2.y);
+ vertex[4] = D3DVERTEX2(Math::Vector(p4.x, p4.y, 0.0f), n, uv2.x,uv2.y);
device->DrawPrimitive(D3DPT_TRIANGLESTRIP, D3DFVF_VERTEX2, vertex, 5, NULL);
#else
- vertex[0] = D3DVERTEX2(D3DVECTOR(p2.x, p2.y, 0.0f), n, uv1.x,uv1.y);
- vertex[1] = D3DVERTEX2(D3DVECTOR(p3.x, p3.y, 0.0f), n, uv1.x,uv2.y);
- vertex[2] = D3DVERTEX2(D3DVECTOR(p4.x, p4.y, 0.0f), n, uv2.x,uv2.y);
+ vertex[0] = D3DVERTEX2(Math::Vector(p2.x, p2.y, 0.0f), n, uv1.x,uv1.y);
+ vertex[1] = D3DVERTEX2(Math::Vector(p3.x, p3.y, 0.0f), n, uv1.x,uv2.y);
+ vertex[2] = D3DVERTEX2(Math::Vector(p4.x, p4.y, 0.0f), n, uv2.x,uv2.y);
device->DrawPrimitive(D3DPT_TRIANGLELIST, D3DFVF_VERTEX2, vertex, 3, NULL);
#endif
@@ -983,7 +983,7 @@ void CMap::DrawVertex(Math::Point uv1, Math::Point uv2, float zoom)
LPDIRECT3DDEVICE7 device;
D3DVERTEX2 vertex[4]; // 2 triangles
Math::Point p1, p2, c;
- D3DVECTOR n;
+ Math::Vector n;
device = m_engine->RetD3DDevice();
@@ -1005,12 +1005,12 @@ void CMap::DrawVertex(Math::Point uv1, Math::Point uv2, float zoom)
m_mapDim.x = p2.x-p1.x;
m_mapDim.y = p2.y-p1.y;
- n = D3DVECTOR(0.0f, 0.0f, -1.0f); // normal
+ n = Math::Vector(0.0f, 0.0f, -1.0f); // normal
- vertex[0] = D3DVERTEX2(D3DVECTOR(p1.x, p1.y, 0.0f), n, uv1.x,uv2.y);
- vertex[1] = D3DVERTEX2(D3DVECTOR(p1.x, p2.y, 0.0f), n, uv1.x,uv1.y);
- vertex[2] = D3DVERTEX2(D3DVECTOR(p2.x, p1.y, 0.0f), n, uv2.x,uv2.y);
- vertex[3] = D3DVERTEX2(D3DVECTOR(p2.x, p2.y, 0.0f), n, uv2.x,uv1.y);
+ vertex[0] = D3DVERTEX2(Math::Vector(p1.x, p1.y, 0.0f), n, uv1.x,uv2.y);
+ vertex[1] = D3DVERTEX2(Math::Vector(p1.x, p2.y, 0.0f), n, uv1.x,uv1.y);
+ vertex[2] = D3DVERTEX2(Math::Vector(p2.x, p1.y, 0.0f), n, uv2.x,uv2.y);
+ vertex[3] = D3DVERTEX2(Math::Vector(p2.x, p2.y, 0.0f), n, uv2.x,uv1.y);
device->DrawPrimitive(D3DPT_TRIANGLESTRIP, D3DFVF_VERTEX2, vertex, 4, NULL);
m_engine->AddStatisticTriangle(2);
@@ -1022,7 +1022,7 @@ void CMap::DrawVertex(Math::Point uv1, Math::Point uv2, float zoom)
void CMap::UpdateTerrain()
{
D3DCOLORVALUE color;
- D3DVECTOR pos;
+ Math::Vector pos;
float scale, water, level, intensity;
int x, y;
@@ -1081,7 +1081,7 @@ void CMap::UpdateTerrain()
void CMap::UpdateTerrain(int bx, int by, int ex, int ey)
{
D3DCOLORVALUE color;
- D3DVECTOR pos;
+ Math::Vector pos;
float scale, water, level, intensity;
int x, y;
@@ -1159,7 +1159,7 @@ void CMap::UpdateObject(CObject* pObj)
{
ObjectType type;
MapColor color;
- D3DVECTOR pos;
+ Math::Vector pos;
Math::Point ppos;
float dir;
diff --git a/src/ui/shortcut.cpp b/src/ui/shortcut.cpp
index c96cc92..7651c63 100644
--- a/src/ui/shortcut.cpp
+++ b/src/ui/shortcut.cpp
@@ -198,7 +198,7 @@ void CShortcut::DrawVertex(int icon, float zoom)
LPDIRECT3DDEVICE7 device;
D3DVERTEX2 vertex[4]; // 2 triangles
Math::Point p1, p2, c;
- D3DVECTOR n;
+ Math::Vector n;
float u1, u2, v1, v2, dp;
device = m_engine->RetD3DDevice();
@@ -228,12 +228,12 @@ void CShortcut::DrawVertex(int icon, float zoom)
u2 -= dp;
v2 -= dp;
- n = D3DVECTOR(0.0f, 0.0f, -1.0f); // normal
+ n = Math::Vector(0.0f, 0.0f, -1.0f); // normal
- vertex[0] = D3DVERTEX2(D3DVECTOR(p1.x, p1.y, 0.0f), n, u1,v2);
- vertex[1] = D3DVERTEX2(D3DVECTOR(p1.x, p2.y, 0.0f), n, u1,v1);
- vertex[2] = D3DVERTEX2(D3DVECTOR(p2.x, p1.y, 0.0f), n, u2,v2);
- vertex[3] = D3DVERTEX2(D3DVECTOR(p2.x, p2.y, 0.0f), n, u2,v1);
+ vertex[0] = D3DVERTEX2(Math::Vector(p1.x, p1.y, 0.0f), n, u1,v2);
+ vertex[1] = D3DVERTEX2(Math::Vector(p1.x, p2.y, 0.0f), n, u1,v1);
+ vertex[2] = D3DVERTEX2(Math::Vector(p2.x, p1.y, 0.0f), n, u2,v2);
+ vertex[3] = D3DVERTEX2(Math::Vector(p2.x, p2.y, 0.0f), n, u2,v1);
device->DrawPrimitive(D3DPT_TRIANGLESTRIP, D3DFVF_VERTEX2, vertex, 4, NULL);
m_engine->AddStatisticTriangle(2);