Compare commits
8 Commits
3a8f75bd02
...
b98edec8f8
Author | SHA1 | Date |
---|---|---|
|
b98edec8f8 | |
|
d22b32477e | |
|
884129a676 | |
|
0fa486b9f0 | |
|
4251873f49 | |
|
74ab7afb23 | |
|
ab3c22dce3 | |
|
72ca4f2d7c |
|
@ -225,6 +225,7 @@ enum EventType
|
|||
EVENT_INTERFACE_SATCOM = 414,
|
||||
EVENT_INTERFACE_PLUS = 415,
|
||||
EVENT_INTERFACE_MODS = 416,
|
||||
EVENT_INTERFACE_CAREER = 417,
|
||||
|
||||
EVENT_INTERFACE_CHAP = 420,
|
||||
EVENT_INTERFACE_LIST = 421,
|
||||
|
|
|
@ -79,6 +79,7 @@ void InitializeRestext()
|
|||
stringsText[RT_TITLE_READ] = TR("Load a saved mission");
|
||||
stringsText[RT_TITLE_PLUS] = TR("Missions+");
|
||||
stringsText[RT_TITLE_MODS] = TR("Mods");
|
||||
stringsText[RT_TITLE_CAREER] = TR("Select destination");
|
||||
|
||||
stringsText[RT_PLAY_CHAP_CHAPTERS] = TR("Chapters:");
|
||||
stringsText[RT_PLAY_CHAP_PLANETS] = TR("Planets:");
|
||||
|
@ -190,6 +191,7 @@ void InitializeRestext()
|
|||
stringsEvent[EVENT_INTERFACE_FREE] = TR("Free game\\Free game without a specific goal");
|
||||
stringsEvent[EVENT_INTERFACE_CODE_BATTLES] = TR("Code battles\\Program your robot to be the best of them all!");
|
||||
stringsEvent[EVENT_INTERFACE_USER] = TR("Custom levels\\Levels from mods created by the users");
|
||||
stringsEvent[EVENT_INTERFACE_CAREER] = TR("Career mode");
|
||||
stringsEvent[EVENT_INTERFACE_SATCOM] = TR("SatCom");
|
||||
stringsEvent[EVENT_INTERFACE_MODS] = TR("Mods\\Mod manager");
|
||||
stringsEvent[EVENT_INTERFACE_NAME] = TR("Change player\\Change player");
|
||||
|
|
|
@ -73,6 +73,7 @@ enum ResTextType
|
|||
RT_TITLE_USER = 52,
|
||||
RT_TITLE_PLUS = 53,
|
||||
RT_TITLE_MODS = 54,
|
||||
RT_TITLE_CAREER = 55,
|
||||
|
||||
RT_PLAY_CHAP_CHAPTERS = 60,
|
||||
RT_PLAY_CHAP_PLANETS = 61,
|
||||
|
|
|
@ -54,23 +54,6 @@ namespace Gfx
|
|||
|
||||
const float MOUSE_EDGE_MARGIN = 0.01f;
|
||||
|
||||
//! Changes the level of transparency of an object and objects transported (battery & cargo)
|
||||
static void SetGhostMode(CObject* obj, bool enabled)
|
||||
{
|
||||
obj->SetGhostMode(enabled);
|
||||
|
||||
if (obj->Implements(ObjectInterfaceType::Slotted))
|
||||
{
|
||||
CSlottedObject *slotted = dynamic_cast<CSlottedObject*>(obj);
|
||||
for(int slot = slotted->GetNumSlots()-1; slot >= 0; slot--)
|
||||
{
|
||||
CObject *contained = slotted->GetSlotContainedObject(slot);
|
||||
if (contained != nullptr)
|
||||
contained->SetGhostMode(enabled);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
CCamera::CCamera()
|
||||
|
@ -257,10 +240,7 @@ void CCamera::SetType(CameraType type)
|
|||
{
|
||||
for (CObject* obj : CObjectManager::GetInstancePointer()->GetAllObjects())
|
||||
{
|
||||
if (IsObjectBeingTransported(obj))
|
||||
continue;
|
||||
|
||||
SetGhostMode(obj, false); // opaque object
|
||||
obj->m_bCameraGhost = false; // opaque object
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -837,7 +817,7 @@ void CCamera::IsCollisionBack()
|
|||
if (IsObjectBeingTransported(obj))
|
||||
continue;
|
||||
|
||||
SetGhostMode(obj, false); // opaque object
|
||||
obj->m_bCameraGhost = false; // opaque object
|
||||
|
||||
if (obj == m_cameraObj) continue;
|
||||
|
||||
|
@ -897,7 +877,7 @@ void CCamera::IsCollisionBack()
|
|||
float len = glm::distance(m_actualEye, proj);
|
||||
if (len > del) continue;
|
||||
|
||||
SetGhostMode(obj, true); // ghost mode
|
||||
obj->m_bCameraGhost = true; // ghost mode
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -57,6 +57,11 @@
|
|||
|
||||
#include "math/geometry.h"
|
||||
|
||||
#include "object/object.h"
|
||||
#include "object/old_object.h"
|
||||
|
||||
#include "object/interface/transportable_object.h"
|
||||
|
||||
#include "sound/sound.h"
|
||||
|
||||
#include "ui/controls/interface.h"
|
||||
|
@ -821,11 +826,10 @@ void CEngine::DebugObject(int objRank)
|
|||
l->Debug(" baseObjRank = %d\n", m_objects[objRank].baseObjRank);
|
||||
l->Debug(" visible = %s\n", m_objects[objRank].visible ? "true" : "false");
|
||||
l->Debug(" drawWorld = %s\n", m_objects[objRank].drawWorld ? "true" : "false");
|
||||
l->Debug(" drawFront = %s\n", m_objects[objRank].drawFront ? "true" : "false");
|
||||
l->Debug(" type = %d\n", m_objects[objRank].type);
|
||||
l->Debug(" distance = %f\n", m_objects[objRank].distance);
|
||||
l->Debug(" shadowRank = %d\n", m_objects[objRank].shadowRank);
|
||||
l->Debug(" ghost = %s\n", m_objects[objRank].ghost ? "true" : "false");
|
||||
l->Debug(" gameObject = %p\n", m_objects[objRank].gameObject);
|
||||
|
||||
l->Debug(" baseObj:\n");
|
||||
int baseObjRank = m_objects[objRank].baseObjRank;
|
||||
|
@ -876,7 +880,7 @@ void CEngine::DebugObject(int objRank)
|
|||
}
|
||||
}
|
||||
|
||||
int CEngine::CreateObject()
|
||||
int CEngine::CreateObject(CObject *gameObject)
|
||||
{
|
||||
int objRank = 0;
|
||||
for ( ; objRank < static_cast<int>( m_objects.size() ); objRank++)
|
||||
|
@ -901,6 +905,7 @@ int CEngine::CreateObject()
|
|||
m_objects[objRank].distance = 0.0f;
|
||||
m_objects[objRank].baseObjRank = -1;
|
||||
m_objects[objRank].shadowRank = -1;
|
||||
m_objects[objRank].gameObject = gameObject;
|
||||
|
||||
return objRank;
|
||||
}
|
||||
|
@ -974,27 +979,6 @@ void CEngine::SetObjectDrawWorld(int objRank, bool draw)
|
|||
m_objects[objRank].drawWorld = draw;
|
||||
}
|
||||
|
||||
void CEngine::SetObjectTeam(int objRank, int team)
|
||||
{
|
||||
assert(objRank >= 0 && objRank < static_cast<int>(m_objects.size()));
|
||||
|
||||
m_objects[objRank].team = team;
|
||||
}
|
||||
|
||||
void CEngine::SetObjectDrawFront(int objRank, bool draw)
|
||||
{
|
||||
assert(objRank >= 0 && objRank < static_cast<int>( m_objects.size() ));
|
||||
|
||||
m_objects[objRank].drawFront = draw;
|
||||
}
|
||||
|
||||
void CEngine::SetObjectGhostMode(int objRank, bool enabled)
|
||||
{
|
||||
assert(objRank >= 0 && objRank < static_cast<int>( m_objects.size() ));
|
||||
|
||||
m_objects[objRank].ghost = enabled;
|
||||
}
|
||||
|
||||
void CEngine::GetObjectBBox(int objRank, glm::vec3& min, glm::vec3& max)
|
||||
{
|
||||
assert(objRank >= 0 && objRank < static_cast<int>( m_objects.size() ));
|
||||
|
@ -2659,7 +2643,8 @@ Color CEngine::GetObjectColor(int object, const std::string& name)
|
|||
{
|
||||
if (name == "team")
|
||||
{
|
||||
return CRobotMain::GetInstance().GetTeamColor(m_objects[object].team);
|
||||
CObject *obj = m_objects[object].gameObject;
|
||||
return CRobotMain::GetInstance().GetTeamColor(obj ? obj->GetTeam() : 0);
|
||||
}
|
||||
else if (name == "vehicle")
|
||||
{
|
||||
|
@ -2789,6 +2774,33 @@ void CEngine::Render()
|
|||
m_device->EndScene();
|
||||
}
|
||||
|
||||
bool CEngine::IsGhostObject(int objRank)
|
||||
{
|
||||
CObject *gameObject = m_objects[objRank].gameObject;
|
||||
if (!gameObject)
|
||||
return false; // terrain
|
||||
|
||||
if (gameObject->GetType() == OBJECT_BASE && objRank != dynamic_cast<COldObject&>(*gameObject).GetObjectRank(9))
|
||||
return false; // Special case: only part 9 (the central pillar) of the spaceship turns translucent
|
||||
|
||||
while (gameObject->Implements(ObjectInterfaceType::Transportable))
|
||||
{
|
||||
CObject *transporter = dynamic_cast<CTransportableObject&>(*gameObject).GetTransporter();
|
||||
if (transporter)
|
||||
gameObject = transporter;
|
||||
else
|
||||
break;
|
||||
}
|
||||
|
||||
return gameObject->m_bCameraGhost;
|
||||
}
|
||||
|
||||
bool CEngine::IsDrawFrontObject(int objRank)
|
||||
{
|
||||
CObject *gameObject = m_objects[objRank].gameObject;
|
||||
return gameObject && gameObject->m_bDrawFront;
|
||||
}
|
||||
|
||||
void CEngine::Draw3DScene()
|
||||
{
|
||||
if (!m_worldCaptured)
|
||||
|
@ -2967,7 +2979,7 @@ void CEngine::Draw3DScene()
|
|||
|
||||
for (auto& data : p1.next)
|
||||
{
|
||||
if (m_objects[objRank].ghost) // transparent ?
|
||||
if (IsGhostObject(objRank)) // transparent ?
|
||||
{
|
||||
transparent = true;
|
||||
continue;
|
||||
|
@ -3049,7 +3061,7 @@ void CEngine::Draw3DScene()
|
|||
if (! m_objects[objRank].drawWorld)
|
||||
continue;
|
||||
|
||||
if (!m_objects[objRank].ghost)
|
||||
if (!IsGhostObject(objRank))
|
||||
continue;
|
||||
|
||||
auto combinedMatrix = projectionViewMatrix * m_objects[objRank].transform;
|
||||
|
@ -3695,7 +3707,7 @@ void CEngine::DrawInterface()
|
|||
if (m_objects[objRank].type == ENG_OBJTYPE_TERRAIN)
|
||||
continue;
|
||||
|
||||
if (! m_objects[objRank].drawFront)
|
||||
if (! IsDrawFrontObject(objRank))
|
||||
continue;
|
||||
|
||||
auto combinedMatrix = projectionViewMatrix * m_objects[objRank].transform;
|
||||
|
@ -4882,7 +4894,7 @@ void CEngine::UpdateObjectShadowSpotNormal(int objRank)
|
|||
m_shadowSpots[shadowRank].normal = norm;
|
||||
}
|
||||
|
||||
int CEngine::AddStaticMesh(const std::string& key, const CModelMesh* mesh, const glm::mat4& worldMatrix)
|
||||
int CEngine::AddStaticMesh(const std::string& key, const CModelMesh* mesh, const glm::mat4& worldMatrix, CObject *gameObject)
|
||||
{
|
||||
int baseObjRank = -1;
|
||||
|
||||
|
@ -4907,7 +4919,7 @@ int CEngine::AddStaticMesh(const std::string& key, const CModelMesh* mesh, const
|
|||
baseObjRank = it->second;
|
||||
}
|
||||
|
||||
int objRank = CreateObject();
|
||||
int objRank = CreateObject(gameObject);
|
||||
SetObjectBaseRank(objRank, baseObjRank);
|
||||
SetObjectTransform(objRank, worldMatrix);
|
||||
SetObjectType(objRank, ENG_OBJTYPE_FIX);
|
||||
|
@ -4942,12 +4954,6 @@ const glm::mat4& CEngine::GetStaticMeshWorldMatrix(int meshHandle)
|
|||
return m_objects[objRank].transform;
|
||||
}
|
||||
|
||||
void CEngine::SetStaticMeshGhostMode(int meshHandle, bool enabled)
|
||||
{
|
||||
int objRank = meshHandle;
|
||||
SetObjectGhostMode(objRank, enabled);
|
||||
}
|
||||
|
||||
void CEngine::SetDebugLights(bool debugLights)
|
||||
{
|
||||
m_debugLights = debugLights;
|
||||
|
|
|
@ -50,6 +50,7 @@ class CImage;
|
|||
class CSystemUtils;
|
||||
struct Event;
|
||||
|
||||
class CObject;
|
||||
|
||||
// Graphics module namespace
|
||||
namespace Gfx
|
||||
|
@ -126,8 +127,6 @@ struct EngineObject
|
|||
bool visible = false;
|
||||
//! If true, object is behind the 2D interface
|
||||
bool drawWorld = false;
|
||||
//! If true, the shape is before the 2D interface
|
||||
bool drawFront = false;
|
||||
//! Type of object
|
||||
EngineObjectType type = ENG_OBJTYPE_NULL;
|
||||
//! Transformation matrix
|
||||
|
@ -136,10 +135,8 @@ struct EngineObject
|
|||
float distance = 0.0f;
|
||||
//! Rank of the associated shadow
|
||||
int shadowRank = -1;
|
||||
//! Ghost mode
|
||||
bool ghost = false;
|
||||
//! Team
|
||||
int team = 0;
|
||||
//! Associated game object, if any. Null for terrain.
|
||||
CObject* gameObject = nullptr;
|
||||
};
|
||||
|
||||
/**
|
||||
|
@ -530,7 +527,7 @@ public:
|
|||
* @param key key unique per object class
|
||||
* @return mesh instance handle
|
||||
*/
|
||||
int AddStaticMesh(const std::string& key, const Gfx::CModelMesh* mesh, const glm::mat4& worldMatrix);
|
||||
int AddStaticMesh(const std::string& key, const Gfx::CModelMesh* mesh, const glm::mat4& worldMatrix, CObject *gameObject);
|
||||
|
||||
//! Removes given static mesh
|
||||
void DeleteStaticMesh(int meshHandle);
|
||||
|
@ -541,9 +538,6 @@ public:
|
|||
//! Returns static mesh world matrix
|
||||
const glm::mat4& GetStaticMeshWorldMatrix(int meshHandle);
|
||||
|
||||
//! Sets transparency for static mesh
|
||||
void SetStaticMeshGhostMode(int meshHandle, bool enabled);
|
||||
|
||||
|
||||
/* *************** Object management *************** */
|
||||
|
||||
|
@ -571,7 +565,7 @@ public:
|
|||
void DebugObject(int objRank);
|
||||
|
||||
//! Creates a new object and returns its rank
|
||||
int CreateObject();
|
||||
int CreateObject(CObject *gameObject);
|
||||
//! Deletes all objects, shadows and ground spots
|
||||
void DeleteAllObjects();
|
||||
//! Deletes the given object
|
||||
|
@ -597,13 +591,11 @@ public:
|
|||
|
||||
//! Sets drawWorld for given object
|
||||
void SetObjectDrawWorld(int objRank, bool draw);
|
||||
//! Sets drawFront for given object
|
||||
void SetObjectDrawFront(int objRank, bool draw);
|
||||
|
||||
//! Sets the transparency level for given object
|
||||
void SetObjectGhostMode(int objRank, bool enabled);
|
||||
//! Sets team for given object
|
||||
void SetObjectTeam(int objRank, int team);
|
||||
//! Check if object is transparent to prevent blocking the camera view
|
||||
bool IsGhostObject(int objRank);
|
||||
//! Check if object draws in front of the user interface
|
||||
bool IsDrawFrontObject(int objRank);
|
||||
|
||||
//! Returns the bounding box for an object
|
||||
void GetObjectBBox(int objRank, glm::vec3& min, glm::vec3& max);
|
||||
|
|
|
@ -128,7 +128,6 @@ bool COldModelManager::AddModelReference(const std::string& fileName, bool mirro
|
|||
}
|
||||
|
||||
m_engine->SetObjectBaseRank(objRank, (*it).second.baseObjRank);
|
||||
m_engine->SetObjectTeam(objRank, team);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
@ -147,7 +146,6 @@ bool COldModelManager::AddModelCopy(const std::string& fileName, bool mirrored,
|
|||
int copyBaseObjRank = m_engine->CreateBaseObject();
|
||||
m_engine->CopyBaseObject((*it).second.baseObjRank, copyBaseObjRank);
|
||||
m_engine->SetObjectBaseRank(objRank, copyBaseObjRank);
|
||||
m_engine->SetObjectTeam(objRank, team);
|
||||
|
||||
m_copiesBaseRanks.push_back(copyBaseObjRank);
|
||||
|
||||
|
|
|
@ -1248,7 +1248,7 @@ void CTerrain::FlushMaterialPoints()
|
|||
|
||||
bool CTerrain::CreateSquare(int x, int y)
|
||||
{
|
||||
int objRank = m_engine->CreateObject();
|
||||
int objRank = m_engine->CreateObject(nullptr);
|
||||
m_engine->SetObjectType(objRank, ENG_OBJTYPE_TERRAIN);
|
||||
|
||||
m_objRanks[x+y*m_mosaicCount] = objRank;
|
||||
|
|
|
@ -22,6 +22,7 @@
|
|||
#include <map>
|
||||
|
||||
// NOTE: Because of how save filenames are built, the first letter of category directories MUST be unique!!
|
||||
// Except career because it is a special case.
|
||||
// TODO: I'm not sure about "challenges" + "custom". It may be messing things up already right now.
|
||||
const std::map<LevelCategory, std::string> CATEGORY_DIR_MAP = {
|
||||
{ LevelCategory::Missions, "missions" },
|
||||
|
@ -31,6 +32,7 @@ const std::map<LevelCategory, std::string> CATEGORY_DIR_MAP = {
|
|||
{ LevelCategory::CodeBattles, "battles" },
|
||||
{ LevelCategory::GamePlus, "plus" },
|
||||
{ LevelCategory::CustomLevels, "custom" },
|
||||
{ LevelCategory::CareerMode, "career" },
|
||||
};
|
||||
|
||||
std::string GetLevelCategoryDir(LevelCategory category)
|
||||
|
|
|
@ -30,6 +30,7 @@ enum class LevelCategory
|
|||
CodeBattles,
|
||||
GamePlus,
|
||||
CustomLevels,
|
||||
CareerMode,
|
||||
Max,
|
||||
};
|
||||
|
||||
|
|
|
@ -2728,7 +2728,7 @@ void CRobotMain::ScenePerso()
|
|||
CObject* obj = SearchHuman();
|
||||
if (obj != nullptr)
|
||||
{
|
||||
obj->SetDrawFront(true); // draws the interface
|
||||
obj->m_bDrawFront = true; // draws the interface
|
||||
|
||||
assert(obj->Implements(ObjectInterfaceType::Movable));
|
||||
CMotionHuman* mh = static_cast<CMotionHuman*>(dynamic_cast<CMovableObject&>(*obj).GetMotion());
|
||||
|
@ -3376,6 +3376,15 @@ void CRobotMain::CreateScene(bool soluce, bool fixScene, bool resetObject)
|
|||
if (!resetObject)
|
||||
ChangeColor(); // changes the colors of texture
|
||||
|
||||
if (m_levelCategory == LevelCategory::CareerMode)
|
||||
{
|
||||
std::string careerSaveDir = GetPlayerProfile()->GetSaveFile("__career__/" + std::to_string(m_levelChap) + "_" + std::to_string(m_levelRank));
|
||||
if (CResourceManager::Exists(careerSaveDir+"/data.sav"))
|
||||
{
|
||||
m_sceneReadPath = careerSaveDir;
|
||||
}
|
||||
}
|
||||
|
||||
if (!m_sceneReadPath.empty()) // loading file ?
|
||||
{
|
||||
m_ui->GetLoadingScreen()->SetProgress(0.25f, RT_LOADING_OBJECTS_SAVED);
|
||||
|
@ -3768,6 +3777,32 @@ void CRobotMain::CreateScene(bool soluce, bool fixScene, bool resetObject)
|
|||
throw CLevelParserException("Unknown command: '" + line->GetCommand() + "' in " + line->GetLevelFilename() + ":" + StrUtils::ToString(line->GetLineNumber()));
|
||||
}
|
||||
|
||||
// Load the spaceship contents
|
||||
if (m_levelCategory == LevelCategory::CareerMode) {
|
||||
CObject* base = m_objMan->FindNearest(nullptr, OBJECT_BASE, 10000000.0f);
|
||||
if(base) {
|
||||
std::string saveDir = GetPlayerProfile()->GetSaveFile("__career__/__spaceship__");
|
||||
// TODO: If it doesn't exist, use some global default instead of using whatever is in this level file
|
||||
if(CResourceManager::Exists(saveDir))
|
||||
{
|
||||
for (CObject* obj : m_objMan->GetAllObjects())
|
||||
{
|
||||
if (obj == base) continue;
|
||||
if (IsObjectBeingTransported(obj)) continue;
|
||||
|
||||
glm::vec3 oPos = obj->GetPosition();
|
||||
float dist = Math::DistanceProjected(base->GetPosition(), oPos);
|
||||
if ( dist < 32.0f )
|
||||
{
|
||||
m_objMan->DeleteObject(obj);
|
||||
}
|
||||
}
|
||||
|
||||
IOReadScene(saveDir+"/data.sav", saveDir+"/cbot.run", true, base->GetPosition());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Do this here to prevent the first frame from taking a long time to render
|
||||
m_engine->UpdateGroundSpotTextures();
|
||||
|
||||
|
@ -4521,7 +4556,7 @@ void CRobotMain::SaveOneScript(CObject *obj)
|
|||
|
||||
CProgramStorageObject* programStorage = dynamic_cast<CProgramStorageObject*>(obj);
|
||||
|
||||
char categoryChar = GetLevelCategoryDir(m_levelCategory)[0];
|
||||
char categoryChar = (m_levelCategory == LevelCategory::CareerMode ? 'X' : GetLevelCategoryDir(m_levelCategory)[0]);
|
||||
programStorage->SaveAllUserPrograms(m_playerProfile->GetSaveFile(StrUtils::Format("%c%.3d%.3d", categoryChar, m_levelChap, m_levelRank)));
|
||||
}
|
||||
|
||||
|
@ -4617,8 +4652,9 @@ bool CRobotMain::IOIsBusy()
|
|||
}
|
||||
|
||||
//! Writes an object into the backup file
|
||||
void CRobotMain::IOWriteObject(CLevelParserLine* line, CObject* obj, const std::string& programDir, int objRank)
|
||||
void CRobotMain::IOWriteObject(CLevelParserLine* line, CObject* obj, const std::string& programDir, int objRank, bool directProgramStorageIndex)
|
||||
{
|
||||
assert(obj->GetType() != OBJECT_NULL);
|
||||
line->AddParam("type", std::make_unique<CLevelParserParam>(obj->GetType()));
|
||||
line->AddParam("id", std::make_unique<CLevelParserParam>(obj->GetID()));
|
||||
line->AddParam("pos", std::make_unique<CLevelParserParam>(obj->GetPosition()/g_unit));
|
||||
|
@ -4647,17 +4683,32 @@ void CRobotMain::IOWriteObject(CLevelParserLine* line, CObject* obj, const std::
|
|||
if (obj->Implements(ObjectInterfaceType::ProgramStorage))
|
||||
{
|
||||
CProgramStorageObject* programStorage = dynamic_cast<CProgramStorageObject*>(obj);
|
||||
if (programStorage->GetProgramStorageIndex() >= 0)
|
||||
|
||||
// directProgramStorageIndex=false: format for mission save files - pre-existing level objects have a unique index shared between levels, and non-pre-existing objects have 999-objIndex (maximum 999 and the last few may conflict with pre-existing objects)
|
||||
// directProgramStorageIndex=true: format for career save files, program storage index is just the object rank, and we save it to allow future versions to change the index allocation.
|
||||
|
||||
if (directProgramStorageIndex)
|
||||
{
|
||||
int oldIndex = programStorage->GetProgramStorageIndex();
|
||||
programStorage->SetProgramStorageIndex(objRank);
|
||||
programStorage->SaveAllProgramsForSavedScene(line, programDir);
|
||||
programStorage->SetProgramStorageIndex(oldIndex);
|
||||
line->AddParam("programStorageIndex", std::make_unique<CLevelParserParam>(objRank));
|
||||
}
|
||||
else
|
||||
{
|
||||
// Probably an object created after the scene started, not loaded from level file
|
||||
// This means it doesn't normally store programs so it doesn't have program storage id assigned
|
||||
programStorage->SetProgramStorageIndex(999-objRank); // Set something that won't collide with normal programs
|
||||
programStorage->SaveAllProgramsForSavedScene(line, programDir);
|
||||
programStorage->SetProgramStorageIndex(-1); // Disable again
|
||||
if (programStorage->GetProgramStorageIndex() >= 0)
|
||||
{
|
||||
programStorage->SaveAllProgramsForSavedScene(line, programDir);
|
||||
}
|
||||
else
|
||||
{
|
||||
// Probably an object created after the scene started, not loaded from level file
|
||||
// This means it doesn't normally store programs so it doesn't have program storage id assigned
|
||||
programStorage->SetProgramStorageIndex(999-objRank); // Set something that won't collide with normal programs
|
||||
programStorage->SaveAllProgramsForSavedScene(line, programDir);
|
||||
programStorage->SetProgramStorageIndex(-1); // Disable again
|
||||
}
|
||||
}
|
||||
|
||||
if (obj->Implements(ObjectInterfaceType::Programmable))
|
||||
|
@ -4671,6 +4722,39 @@ void CRobotMain::IOWriteObject(CLevelParserLine* line, CObject* obj, const std::
|
|||
}
|
||||
}
|
||||
|
||||
void CRobotMain::IOWriteObjectTree(CLevelParser& levelParser, CObject* obj, std::string const& dirname, int& objRank, bool directProgramStorageIndex)
|
||||
{
|
||||
if (obj->GetType() == OBJECT_TOTO) return;
|
||||
if (IsObjectBeingTransported(obj)) return;
|
||||
if (obj->Implements(ObjectInterfaceType::Destroyable) && dynamic_cast<CDestroyableObject&>(*obj).IsDying()) return;
|
||||
|
||||
CLevelParserLineUPtr line;
|
||||
|
||||
if (obj->Implements(ObjectInterfaceType::Slotted))
|
||||
{
|
||||
CSlottedObject* slotted = dynamic_cast<CSlottedObject*>(obj);
|
||||
for (int slot = slotted->GetNumSlots() - 1; slot >= 0; slot--)
|
||||
{
|
||||
if (CObject *sub = slotted->GetSlotContainedObject(slot))
|
||||
{
|
||||
if (slot == slotted->MapPseudoSlot(CSlottedObject::Pseudoslot::POWER))
|
||||
line = std::make_unique<CLevelParserLine>("CreatePower");
|
||||
else if (slot == slotted->MapPseudoSlot(CSlottedObject::Pseudoslot::CARRYING))
|
||||
line = std::make_unique<CLevelParserLine>("CreateFret");
|
||||
else
|
||||
line = std::make_unique<CLevelParserLine>("CreateSlotObject");
|
||||
line->AddParam("slotNum", std::make_unique<CLevelParserParam>(slot));
|
||||
IOWriteObject(line.get(), sub, dirname, objRank++, directProgramStorageIndex);
|
||||
levelParser.AddLine(std::move(line));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
line = std::make_unique<CLevelParserLine>("CreateObject");
|
||||
IOWriteObject(line.get(), obj, dirname, objRank++, directProgramStorageIndex);
|
||||
levelParser.AddLine(std::move(line));
|
||||
}
|
||||
|
||||
//! Saves the current game
|
||||
bool CRobotMain::IOWriteScene(std::string filename, std::string filecbot, std::string filescreenshot, const std::string& info, bool emergencySave)
|
||||
{
|
||||
|
@ -4735,33 +4819,7 @@ bool CRobotMain::IOWriteScene(std::string filename, std::string filecbot, std::s
|
|||
int objRank = 0;
|
||||
for (CObject* obj : m_objMan->GetAllObjects())
|
||||
{
|
||||
if (obj->GetType() == OBJECT_TOTO) continue;
|
||||
if (IsObjectBeingTransported(obj)) continue;
|
||||
if (obj->Implements(ObjectInterfaceType::Destroyable) && dynamic_cast<CDestroyableObject&>(*obj).IsDying()) continue;
|
||||
|
||||
if (obj->Implements(ObjectInterfaceType::Slotted))
|
||||
{
|
||||
CSlottedObject* slotted = dynamic_cast<CSlottedObject*>(obj);
|
||||
for (int slot = slotted->GetNumSlots() - 1; slot >= 0; slot--)
|
||||
{
|
||||
if (CObject *sub = slotted->GetSlotContainedObject(slot))
|
||||
{
|
||||
if (slot == slotted->MapPseudoSlot(CSlottedObject::Pseudoslot::POWER))
|
||||
line = std::make_unique<CLevelParserLine>("CreatePower");
|
||||
else if (slot == slotted->MapPseudoSlot(CSlottedObject::Pseudoslot::CARRYING))
|
||||
line = std::make_unique<CLevelParserLine>("CreateFret");
|
||||
else
|
||||
line = std::make_unique<CLevelParserLine>("CreateSlotObject");
|
||||
line->AddParam("slotNum", std::make_unique<CLevelParserParam>(slot));
|
||||
IOWriteObject(line.get(), sub, dirname, objRank++);
|
||||
levelParser.AddLine(std::move(line));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
line = std::make_unique<CLevelParserLine>("CreateObject");
|
||||
IOWriteObject(line.get(), obj, dirname, objRank++);
|
||||
levelParser.AddLine(std::move(line));
|
||||
IOWriteObjectTree(levelParser, obj, dirname, objRank, false);
|
||||
}
|
||||
try
|
||||
{
|
||||
|
@ -4834,12 +4892,18 @@ void CRobotMain::IOWriteSceneFinished()
|
|||
}
|
||||
|
||||
//! Resumes the game
|
||||
CObject* CRobotMain::IOReadObject(CLevelParserLine *line, const std::string& programDir, const std::string& objCounterText, float objectProgress, int objRank)
|
||||
CObject* CRobotMain::IOReadObject(CLevelParserLine *line, const std::string& programDir, const std::string& objCounterText, float objectProgress, int objRank, glm::vec3 offsetPosition, bool isSpaceshipSave)
|
||||
{
|
||||
ObjectCreateParams params = CObject::ReadCreateParams(line);
|
||||
params.power = -1.0f;
|
||||
params.id = line->GetParam("id")->AsInt();
|
||||
|
||||
if(isSpaceshipSave)
|
||||
{
|
||||
// Ignore object ID in save file. It will conflict with existing objects in the world. Does it matter that the IDs change?
|
||||
params.id = -1;
|
||||
}
|
||||
|
||||
std::string details = objCounterText;
|
||||
|
||||
// Object categories may spoil the level a bit, so hide them in release builds
|
||||
|
@ -4855,7 +4919,7 @@ CObject* CRobotMain::IOReadObject(CLevelParserLine *line, const std::string& pro
|
|||
if (obj->Implements(ObjectInterfaceType::Old))
|
||||
{
|
||||
COldObject* oldObj = dynamic_cast<COldObject*>(obj);
|
||||
oldObj->SetPosition(line->GetParam("pos")->AsPoint() * g_unit);
|
||||
oldObj->SetPosition(line->GetParam("pos")->AsPoint() * g_unit + offsetPosition);
|
||||
oldObj->SetRotation(line->GetParam("angle")->AsPoint() * Math::DEG_TO_RAD);
|
||||
}
|
||||
|
||||
|
@ -4874,7 +4938,7 @@ CObject* CRobotMain::IOReadObject(CLevelParserLine *line, const std::string& pro
|
|||
if (obj->Implements(ObjectInterfaceType::ProgramStorage))
|
||||
{
|
||||
CProgramStorageObject* programStorage = dynamic_cast<CProgramStorageObject*>(obj);
|
||||
if (!line->GetParam("programStorageIndex")->IsDefined()) // Backwards compatibility
|
||||
if (!line->GetParam("programStorageIndex")->IsDefined()) // Backwards compatibility, also used for spaceship saves
|
||||
programStorage->SetProgramStorageIndex(objRank);
|
||||
programStorage->LoadAllProgramsForSavedScene(line, programDir);
|
||||
}
|
||||
|
@ -4883,7 +4947,7 @@ CObject* CRobotMain::IOReadObject(CLevelParserLine *line, const std::string& pro
|
|||
}
|
||||
|
||||
//! Resumes some part of the game
|
||||
CObject* CRobotMain::IOReadScene(std::string filename, std::string filecbot)
|
||||
CObject* CRobotMain::IOReadScene(std::string filename, std::string filecbot, bool isSpaceshipSave, glm::vec3 offsetPosition)
|
||||
{
|
||||
std::string dirname = filename.substr(0, filename.find_last_of("/"));
|
||||
|
||||
|
@ -4902,40 +4966,43 @@ CObject* CRobotMain::IOReadScene(std::string filename, std::string filecbot)
|
|||
std::map<int, CObject*> slots;
|
||||
for (auto& line : levelParser.GetLines())
|
||||
{
|
||||
if (line->GetCommand() == "Mission")
|
||||
m_gameTime = line->GetParam("gametime")->AsFloat(0.0f);
|
||||
|
||||
if (line->GetCommand() == "Map")
|
||||
m_map->ZoomMap(line->GetParam("zoom")->AsFloat());
|
||||
|
||||
if (line->GetCommand() == "DoneResearch")
|
||||
m_researchDone[0] = line->GetParam("bits")->AsInt();
|
||||
|
||||
if (line->GetCommand() == "BlitzMode")
|
||||
if (!isSpaceshipSave)
|
||||
{
|
||||
float sleep = line->GetParam("sleep")->AsFloat();
|
||||
float delay = line->GetParam("delay")->AsFloat();
|
||||
float magnetic = line->GetParam("magnetic")->AsFloat()*g_unit;
|
||||
float progress = line->GetParam("progress")->AsFloat();
|
||||
m_lightning->SetStatus(sleep, delay, magnetic, progress);
|
||||
if (line->GetCommand() == "Mission")
|
||||
m_gameTime = line->GetParam("gametime")->AsFloat(0.0f);
|
||||
|
||||
if (line->GetCommand() == "Map")
|
||||
m_map->ZoomMap(line->GetParam("zoom")->AsFloat());
|
||||
|
||||
if (line->GetCommand() == "DoneResearch")
|
||||
m_researchDone[0] = line->GetParam("bits")->AsInt();
|
||||
|
||||
if (line->GetCommand() == "BlitzMode")
|
||||
{
|
||||
float sleep = line->GetParam("sleep")->AsFloat();
|
||||
float delay = line->GetParam("delay")->AsFloat();
|
||||
float magnetic = line->GetParam("magnetic")->AsFloat()*g_unit;
|
||||
float progress = line->GetParam("progress")->AsFloat();
|
||||
m_lightning->SetStatus(sleep, delay, magnetic, progress);
|
||||
}
|
||||
}
|
||||
|
||||
if (line->GetCommand() == "CreateFret")
|
||||
{
|
||||
cargo = IOReadObject(line.get(), dirname, StrUtils::ToString<int>(objCounter+1)+" / "+StrUtils::ToString<int>(numObjects), static_cast<float>(objCounter) / static_cast<float>(numObjects));
|
||||
cargo = IOReadObject(line.get(), dirname, StrUtils::ToString<int>(objCounter+1)+" / "+StrUtils::ToString<int>(numObjects), static_cast<float>(objCounter) / static_cast<float>(numObjects), -1, glm::vec3(0,0,0), isSpaceshipSave);
|
||||
objCounter++;
|
||||
}
|
||||
|
||||
if (line->GetCommand() == "CreatePower")
|
||||
{
|
||||
power = IOReadObject(line.get(), dirname, StrUtils::ToString<int>(objCounter+1)+" / "+StrUtils::ToString<int>(numObjects), static_cast<float>(objCounter) / static_cast<float>(numObjects));
|
||||
power = IOReadObject(line.get(), dirname, StrUtils::ToString<int>(objCounter+1)+" / "+StrUtils::ToString<int>(numObjects), static_cast<float>(objCounter) / static_cast<float>(numObjects), -1, glm::vec3(0,0,0), isSpaceshipSave);
|
||||
objCounter++;
|
||||
}
|
||||
|
||||
if (line->GetCommand() == "CreateSlotObject")
|
||||
{
|
||||
int slotNum = line->GetParam("slotNum")->AsInt();
|
||||
CObject *slotObject = IOReadObject(line.get(), dirname, StrUtils::ToString<int>(objCounter+1)+" / "+StrUtils::ToString<int>(numObjects), static_cast<float>(objCounter) / static_cast<float>(numObjects));
|
||||
CObject *slotObject = IOReadObject(line.get(), dirname, StrUtils::ToString<int>(objCounter+1)+" / "+StrUtils::ToString<int>(numObjects), static_cast<float>(objCounter) / static_cast<float>(numObjects), -1, offsetPosition, isSpaceshipSave);
|
||||
objCounter++;
|
||||
|
||||
assert(slots.find(slotNum) == slots.end());
|
||||
|
@ -4944,7 +5011,7 @@ CObject* CRobotMain::IOReadScene(std::string filename, std::string filecbot)
|
|||
|
||||
if (line->GetCommand() == "CreateObject")
|
||||
{
|
||||
CObject* obj = IOReadObject(line.get(), dirname, StrUtils::ToString<int>(objCounter+1)+" / "+StrUtils::ToString<int>(numObjects), static_cast<float>(objCounter) / static_cast<float>(numObjects), objRank++);
|
||||
CObject* obj = IOReadObject(line.get(), dirname, StrUtils::ToString<int>(objCounter+1)+" / "+StrUtils::ToString<int>(numObjects), static_cast<float>(objCounter) / static_cast<float>(numObjects), objRank++, offsetPosition, isSpaceshipSave);
|
||||
|
||||
if (line->GetParam("select")->AsBool(false))
|
||||
sel = obj;
|
||||
|
|
|
@ -87,6 +87,7 @@ bool IsMainMenuPhase(Phase phase);
|
|||
class CApplication;
|
||||
class CEventQueue;
|
||||
class CSoundInterface;
|
||||
class CLevelParser;
|
||||
class CLevelParserLine;
|
||||
class CInput;
|
||||
class CObjectManager;
|
||||
|
@ -336,9 +337,10 @@ public:
|
|||
bool IOIsBusy();
|
||||
bool IOWriteScene(std::string filename, std::string filecbot, std::string filescreenshot, const std::string& info, bool emergencySave = false);
|
||||
void IOWriteSceneFinished();
|
||||
CObject* IOReadScene(std::string filename, std::string filecbot);
|
||||
void IOWriteObject(CLevelParserLine *line, CObject* obj, const std::string& programDir, int objRank);
|
||||
CObject* IOReadObject(CLevelParserLine *line, const std::string& programDir, const std::string& objCounterText, float objectProgress, int objRank = -1);
|
||||
CObject* IOReadScene(std::string filename, std::string filecbot, bool isSpaceshipSave = false, glm::vec3 offsetPosition = glm::vec3(0,0,0));
|
||||
void IOWriteObject(CLevelParserLine *line, CObject* obj, const std::string& programDir, int objRank, bool directProgramStorageIndex);
|
||||
void IOWriteObjectTree(CLevelParser& levelParser, CObject* obj, std::string const& dirname, int& objRank, bool directProgramStorageIndex);
|
||||
CObject* IOReadObject(CLevelParserLine *line, const std::string& programDir, const std::string& objCounterText, float objectProgress, int objRank = -1, glm::vec3 offsetPosition = glm::vec3(0,0,0), bool isSpaceshipSave = false);
|
||||
//@}
|
||||
|
||||
int CreateSpot(glm::vec3 pos, Gfx::Color color);
|
||||
|
|
|
@ -20,6 +20,8 @@
|
|||
|
||||
#include "object/auto/autobase.h"
|
||||
|
||||
#include "common/resources/resourcemanager.h"
|
||||
|
||||
#include "graphics/engine/cloud.h"
|
||||
#include "graphics/engine/engine.h"
|
||||
#include "graphics/engine/lightning.h"
|
||||
|
@ -27,6 +29,10 @@
|
|||
#include "graphics/engine/terrain.h"
|
||||
|
||||
#include "level/robotmain.h"
|
||||
#include "level/player_profile.h"
|
||||
|
||||
#include "level/parser/parser.h"
|
||||
#include "level/parser/parserline.h"
|
||||
|
||||
#include "math/geometry.h"
|
||||
|
||||
|
@ -1369,15 +1375,66 @@ Error CAutoBase::TakeOff(bool printMsg)
|
|||
return err;
|
||||
}
|
||||
|
||||
err = m_main->CheckEndMission(false);
|
||||
if (err != ERR_OK)
|
||||
// taking off in career mode doesn't have to complete the mission
|
||||
if (m_main->GetLevelCategory() != LevelCategory::CareerMode)
|
||||
{
|
||||
if (printMsg)
|
||||
m_main->DisplayError(err, m_object);
|
||||
return err;
|
||||
err = m_main->CheckEndMission(false);
|
||||
if (err != ERR_OK)
|
||||
{
|
||||
if (printMsg)
|
||||
m_main->DisplayError(err, m_object);
|
||||
return err;
|
||||
}
|
||||
}
|
||||
|
||||
FreezeCargo(true); // freeze whole cargo
|
||||
|
||||
if (m_main->GetLevelCategory() == LevelCategory::CareerMode)
|
||||
{
|
||||
std::string careerSaveParentDir = m_main->GetPlayerProfile()->GetSaveFile("__career__");
|
||||
if (!CResourceManager::DirectoryExists(careerSaveParentDir))
|
||||
CResourceManager::CreateNewDirectory(careerSaveParentDir);
|
||||
|
||||
// Note: we don't write a cbot.run file - running programs won't remain running when transferred to other worlds.
|
||||
// We still need a directory per save file, because programs are saved there.
|
||||
std::string saveDir = careerSaveParentDir + "/__spaceship__";
|
||||
if (CResourceManager::DirectoryExists(saveDir))
|
||||
CResourceManager::RemoveExistingDirectory(saveDir);
|
||||
CResourceManager::CreateNewDirectory(saveDir);
|
||||
|
||||
CLevelParser levelFile(saveDir+"/data.sav");
|
||||
{
|
||||
CLevelParserLineUPtr line = std::make_unique<CLevelParserLine>("SpaceShipSave");
|
||||
line->AddParam("version", std::make_unique<CLevelParserParam>(1));
|
||||
levelFile.AddLine(std::move(line));
|
||||
}
|
||||
int objRank = 0;
|
||||
for(CObject* obj : m_cargoObjects)
|
||||
{
|
||||
glm::vec3 pos = obj->GetPosition();
|
||||
obj->SetPosition(pos - m_object->GetPosition());
|
||||
m_main->IOWriteObjectTree(levelFile, obj, saveDir, objRank, true);
|
||||
obj->SetPosition(pos);
|
||||
}
|
||||
try
|
||||
{
|
||||
levelFile.Save();
|
||||
}
|
||||
catch (CLevelParserException& e)
|
||||
{
|
||||
GetLogger()->Error("Failed to save level state - %s\n", e.what()); // TODO add visual error to notify user that save failed
|
||||
// return to normal gameplay - not tested at all, probably broken
|
||||
FreezeCargo(false);
|
||||
return ERR_UNKNOWN; // TODO: proper error code
|
||||
}
|
||||
|
||||
// It's OK to save the cargo in the level save dir, because it's deleted when loading.
|
||||
std::string levelSaveDir = careerSaveParentDir + "/" + std::to_string(m_main->GetLevelChap()) + "_" + std::to_string(m_main->GetLevelRank());
|
||||
if (CResourceManager::DirectoryExists(levelSaveDir))
|
||||
CResourceManager::RemoveExistingDirectory(levelSaveDir);
|
||||
m_main->GetPlayerProfile()->SaveScene(levelSaveDir, "Career mode save");
|
||||
}
|
||||
|
||||
m_main->SetMovieLock(true); // blocks everything until the end
|
||||
m_main->DeselectAll();
|
||||
|
||||
|
|
|
@ -79,7 +79,7 @@ void CMotionAnt::Create(glm::vec3 pos, float angle, ObjectType type,
|
|||
m_object->SetType(type);
|
||||
|
||||
// Creates the main base.
|
||||
rank = m_engine->CreateObject();
|
||||
rank = m_engine->CreateObject(m_object);
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_VEHICLE); // this is a moving object
|
||||
m_object->SetObjectRank(0, rank);
|
||||
modelManager->AddModelReference("ant1", false, rank);
|
||||
|
@ -92,7 +92,7 @@ void CMotionAnt::Create(glm::vec3 pos, float angle, ObjectType type,
|
|||
m_object->SetCameraCollisionSphere(Math::Sphere(glm::vec3(-0.5f, 1.0f, 0.0f), 4.0f));
|
||||
|
||||
// Creates the head.
|
||||
rank = m_engine->CreateObject();
|
||||
rank = m_engine->CreateObject(m_object);
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT);
|
||||
m_object->SetObjectRank(1, rank);
|
||||
m_object->SetObjectParent(1, 0);
|
||||
|
@ -100,7 +100,7 @@ void CMotionAnt::Create(glm::vec3 pos, float angle, ObjectType type,
|
|||
m_object->SetPartPosition(1, glm::vec3(2.0f, 0.0f, 0.0f));
|
||||
|
||||
// Creates the tail.
|
||||
rank = m_engine->CreateObject();
|
||||
rank = m_engine->CreateObject(m_object);
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT);
|
||||
m_object->SetObjectRank(2, rank);
|
||||
m_object->SetObjectParent(2, 0);
|
||||
|
@ -108,7 +108,7 @@ void CMotionAnt::Create(glm::vec3 pos, float angle, ObjectType type,
|
|||
m_object->SetPartPosition(2, glm::vec3(-1.0f, 0.0f, 0.0f));
|
||||
|
||||
// Creates a right-back thigh.
|
||||
rank = m_engine->CreateObject();
|
||||
rank = m_engine->CreateObject(m_object);
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT);
|
||||
m_object->SetObjectRank(3, rank);
|
||||
m_object->SetObjectParent(3, 0);
|
||||
|
@ -116,7 +116,7 @@ void CMotionAnt::Create(glm::vec3 pos, float angle, ObjectType type,
|
|||
m_object->SetPartPosition(3, glm::vec3(-0.4f, -0.1f, -0.3f));
|
||||
|
||||
// Creates a right-back leg.
|
||||
rank = m_engine->CreateObject();
|
||||
rank = m_engine->CreateObject(m_object);
|
||||
m_engine->SetObjectType(rank,Gfx::ENG_OBJTYPE_DESCENDANT);
|
||||
m_object->SetObjectRank(4, rank);
|
||||
m_object->SetObjectParent(4, 3);
|
||||
|
@ -124,7 +124,7 @@ void CMotionAnt::Create(glm::vec3 pos, float angle, ObjectType type,
|
|||
m_object->SetPartPosition(4, glm::vec3(0.0f, 0.0f, -1.0f));
|
||||
|
||||
// Creates a right-back foot.
|
||||
rank = m_engine->CreateObject();
|
||||
rank = m_engine->CreateObject(m_object);
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT);
|
||||
m_object->SetObjectRank(5, rank);
|
||||
m_object->SetObjectParent(5, 4);
|
||||
|
@ -132,7 +132,7 @@ void CMotionAnt::Create(glm::vec3 pos, float angle, ObjectType type,
|
|||
m_object->SetPartPosition(5, glm::vec3(0.0f, 0.0f, -2.0f));
|
||||
|
||||
// Creates two middle-right thighs.
|
||||
rank = m_engine->CreateObject();
|
||||
rank = m_engine->CreateObject(m_object);
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT);
|
||||
m_object->SetObjectRank(6, rank);
|
||||
m_object->SetObjectParent(6, 0);
|
||||
|
@ -140,7 +140,7 @@ void CMotionAnt::Create(glm::vec3 pos, float angle, ObjectType type,
|
|||
m_object->SetPartPosition(6, glm::vec3(0.1f, -0.1f, -0.4f));
|
||||
|
||||
// Creates two middle-right legs.
|
||||
rank = m_engine->CreateObject();
|
||||
rank = m_engine->CreateObject(m_object);
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT);
|
||||
m_object->SetObjectRank(7, rank);
|
||||
m_object->SetObjectParent(7, 6);
|
||||
|
@ -148,7 +148,7 @@ void CMotionAnt::Create(glm::vec3 pos, float angle, ObjectType type,
|
|||
m_object->SetPartPosition(7, glm::vec3(0.0f, 0.0f, -1.0f));
|
||||
|
||||
// Creates two middle-right foots.
|
||||
rank = m_engine->CreateObject();
|
||||
rank = m_engine->CreateObject(m_object);
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT);
|
||||
m_object->SetObjectRank(8, rank);
|
||||
m_object->SetObjectParent(8, 7);
|
||||
|
@ -156,7 +156,7 @@ void CMotionAnt::Create(glm::vec3 pos, float angle, ObjectType type,
|
|||
m_object->SetPartPosition(8, glm::vec3(0.0f, 0.0f, -2.0f));
|
||||
|
||||
// Creates the right front thigh.
|
||||
rank = m_engine->CreateObject();
|
||||
rank = m_engine->CreateObject(m_object);
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT);
|
||||
m_object->SetObjectRank(9, rank);
|
||||
m_object->SetObjectParent(9, 0);
|
||||
|
@ -164,7 +164,7 @@ void CMotionAnt::Create(glm::vec3 pos, float angle, ObjectType type,
|
|||
m_object->SetPartPosition(9, glm::vec3(1.4f, -0.1f, -0.6f));
|
||||
|
||||
// Creates the right front leg.
|
||||
rank = m_engine->CreateObject();
|
||||
rank = m_engine->CreateObject(m_object);
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT);
|
||||
m_object->SetObjectRank(10, rank);
|
||||
m_object->SetObjectParent(10, 9);
|
||||
|
@ -172,7 +172,7 @@ void CMotionAnt::Create(glm::vec3 pos, float angle, ObjectType type,
|
|||
m_object->SetPartPosition(10, glm::vec3(0.0f, 0.0f, -1.0f));
|
||||
|
||||
// Creates the right front foot.
|
||||
rank = m_engine->CreateObject();
|
||||
rank = m_engine->CreateObject(m_object);
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT);
|
||||
m_object->SetObjectRank(11, rank);
|
||||
m_object->SetObjectParent(11, 10);
|
||||
|
@ -180,7 +180,7 @@ void CMotionAnt::Create(glm::vec3 pos, float angle, ObjectType type,
|
|||
m_object->SetPartPosition(11, glm::vec3(0.0f, 0.0f, -2.0f));
|
||||
|
||||
// Creates a left-back thigh.
|
||||
rank = m_engine->CreateObject();
|
||||
rank = m_engine->CreateObject(m_object);
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT);
|
||||
m_object->SetObjectRank(12, rank);
|
||||
m_object->SetObjectParent(12, 0);
|
||||
|
@ -188,7 +188,7 @@ void CMotionAnt::Create(glm::vec3 pos, float angle, ObjectType type,
|
|||
m_object->SetPartPosition(12, glm::vec3(-0.4f, -0.1f, 0.3f));
|
||||
|
||||
// Creates a left-back leg.
|
||||
rank = m_engine->CreateObject();
|
||||
rank = m_engine->CreateObject(m_object);
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT);
|
||||
m_object->SetObjectRank(13, rank);
|
||||
m_object->SetObjectParent(13, 12);
|
||||
|
@ -196,7 +196,7 @@ void CMotionAnt::Create(glm::vec3 pos, float angle, ObjectType type,
|
|||
m_object->SetPartPosition(13, glm::vec3(0.0f, 0.0f, 1.0f));
|
||||
|
||||
// Creates a left-back foot.
|
||||
rank = m_engine->CreateObject();
|
||||
rank = m_engine->CreateObject(m_object);
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT);
|
||||
m_object->SetObjectRank(14, rank);
|
||||
m_object->SetObjectParent(14, 13);
|
||||
|
@ -204,7 +204,7 @@ void CMotionAnt::Create(glm::vec3 pos, float angle, ObjectType type,
|
|||
m_object->SetPartPosition(14, glm::vec3(0.0f, 0.0f, 2.0f));
|
||||
|
||||
// Creates two middle-left thighs.
|
||||
rank = m_engine->CreateObject();
|
||||
rank = m_engine->CreateObject(m_object);
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT);
|
||||
m_object->SetObjectRank(15, rank);
|
||||
m_object->SetObjectParent(15, 0);
|
||||
|
@ -212,7 +212,7 @@ void CMotionAnt::Create(glm::vec3 pos, float angle, ObjectType type,
|
|||
m_object->SetPartPosition(15, glm::vec3(0.1f, -0.1f, 0.4f));
|
||||
|
||||
// Creates two middle-left legs.
|
||||
rank = m_engine->CreateObject();
|
||||
rank = m_engine->CreateObject(m_object);
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT);
|
||||
m_object->SetObjectRank(16, rank);
|
||||
m_object->SetObjectParent(16, 15);
|
||||
|
@ -220,7 +220,7 @@ void CMotionAnt::Create(glm::vec3 pos, float angle, ObjectType type,
|
|||
m_object->SetPartPosition(16, glm::vec3(0.0f, 0.0f, 1.0f));
|
||||
|
||||
// Creates two middle-left foot.
|
||||
rank = m_engine->CreateObject();
|
||||
rank = m_engine->CreateObject(m_object);
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT);
|
||||
m_object->SetObjectRank(17, rank);
|
||||
m_object->SetObjectParent(17, 16);
|
||||
|
@ -228,7 +228,7 @@ void CMotionAnt::Create(glm::vec3 pos, float angle, ObjectType type,
|
|||
m_object->SetPartPosition(17, glm::vec3(0.0f, 0.0f, 2.0f));
|
||||
|
||||
// Creates the left front thigh.
|
||||
rank = m_engine->CreateObject();
|
||||
rank = m_engine->CreateObject(m_object);
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT);
|
||||
m_object->SetObjectRank(18, rank);
|
||||
m_object->SetObjectParent(18, 0);
|
||||
|
@ -236,7 +236,7 @@ void CMotionAnt::Create(glm::vec3 pos, float angle, ObjectType type,
|
|||
m_object->SetPartPosition(18, glm::vec3(1.4f, -0.1f, 0.6f));
|
||||
|
||||
// Creates the left front leg.
|
||||
rank = m_engine->CreateObject();
|
||||
rank = m_engine->CreateObject(m_object);
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT);
|
||||
m_object->SetObjectRank(19, rank);
|
||||
m_object->SetObjectParent(19, 18);
|
||||
|
@ -244,7 +244,7 @@ void CMotionAnt::Create(glm::vec3 pos, float angle, ObjectType type,
|
|||
m_object->SetPartPosition(19, glm::vec3(0.0f, 0.0f, 1.0f));
|
||||
|
||||
// Creates the left front foot.
|
||||
rank = m_engine->CreateObject();
|
||||
rank = m_engine->CreateObject(m_object);
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT);
|
||||
m_object->SetObjectRank(20, rank);
|
||||
m_object->SetObjectParent(20, 19);
|
||||
|
|
|
@ -74,7 +74,7 @@ void CMotionBee::Create(glm::vec3 pos, float angle, ObjectType type,
|
|||
m_object->SetType(type);
|
||||
|
||||
// Creates main base.
|
||||
rank = m_engine->CreateObject();
|
||||
rank = m_engine->CreateObject(m_object);
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_VEHICLE); // this is a moving object
|
||||
m_object->SetObjectRank(0, rank);
|
||||
modelManager->AddModelReference("bee1", false, rank);
|
||||
|
@ -87,7 +87,7 @@ void CMotionBee::Create(glm::vec3 pos, float angle, ObjectType type,
|
|||
m_object->SetCameraCollisionSphere(Math::Sphere(glm::vec3(-1.0f, 1.0f, 0.0f), 5.0f));
|
||||
|
||||
// Creates the head.
|
||||
rank = m_engine->CreateObject();
|
||||
rank = m_engine->CreateObject(m_object);
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT);
|
||||
m_object->SetObjectRank(1, rank);
|
||||
m_object->SetObjectParent(1, 0);
|
||||
|
@ -95,7 +95,7 @@ void CMotionBee::Create(glm::vec3 pos, float angle, ObjectType type,
|
|||
m_object->SetPartPosition(1, glm::vec3(1.6f, 0.3f, 0.0f));
|
||||
|
||||
// Creates the tail.
|
||||
rank = m_engine->CreateObject();
|
||||
rank = m_engine->CreateObject(m_object);
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT);
|
||||
m_object->SetObjectRank(2, rank);
|
||||
m_object->SetObjectParent(2, 0);
|
||||
|
@ -103,7 +103,7 @@ void CMotionBee::Create(glm::vec3 pos, float angle, ObjectType type,
|
|||
m_object->SetPartPosition(2, glm::vec3(-0.8f, 0.0f, 0.0f));
|
||||
|
||||
// Creates a right-back thigh.
|
||||
rank = m_engine->CreateObject();
|
||||
rank = m_engine->CreateObject(m_object);
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT);
|
||||
m_object->SetObjectRank(3, rank);
|
||||
m_object->SetObjectParent(3, 0);
|
||||
|
@ -111,7 +111,7 @@ void CMotionBee::Create(glm::vec3 pos, float angle, ObjectType type,
|
|||
m_object->SetPartPosition(3, glm::vec3(-0.3f, -0.1f, -0.2f));
|
||||
|
||||
// Creates a right-back leg.
|
||||
rank = m_engine->CreateObject();
|
||||
rank = m_engine->CreateObject(m_object);
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT);
|
||||
m_object->SetObjectRank(4, rank);
|
||||
m_object->SetObjectParent(4, 3);
|
||||
|
@ -119,7 +119,7 @@ void CMotionBee::Create(glm::vec3 pos, float angle, ObjectType type,
|
|||
m_object->SetPartPosition(4, glm::vec3(0.0f, 0.0f, -1.0f));
|
||||
|
||||
// Creates a right-back foot.
|
||||
rank = m_engine->CreateObject();
|
||||
rank = m_engine->CreateObject(m_object);
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT);
|
||||
m_object->SetObjectRank(5, rank);
|
||||
m_object->SetObjectParent(5, 4);
|
||||
|
@ -127,7 +127,7 @@ void CMotionBee::Create(glm::vec3 pos, float angle, ObjectType type,
|
|||
m_object->SetPartPosition(5, glm::vec3(0.0f, 0.0f, -2.0f));
|
||||
|
||||
// Creates two middle-right thighs.
|
||||
rank = m_engine->CreateObject();
|
||||
rank = m_engine->CreateObject(m_object);
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT);
|
||||
m_object->SetObjectRank(6, rank);
|
||||
m_object->SetObjectParent(6, 0);
|
||||
|
@ -135,7 +135,7 @@ void CMotionBee::Create(glm::vec3 pos, float angle, ObjectType type,
|
|||
m_object->SetPartPosition(6, glm::vec3(0.3f, -0.1f, -0.4f));
|
||||
|
||||
// Creates two middle-right legs.
|
||||
rank = m_engine->CreateObject();
|
||||
rank = m_engine->CreateObject(m_object);
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT);
|
||||
m_object->SetObjectRank(7, rank);
|
||||
m_object->SetObjectParent(7, 6);
|
||||
|
@ -143,7 +143,7 @@ void CMotionBee::Create(glm::vec3 pos, float angle, ObjectType type,
|
|||
m_object->SetPartPosition(7, glm::vec3(0.0f, 0.0f, -1.0f));
|
||||
|
||||
// Creates two middle-right feet.
|
||||
rank = m_engine->CreateObject();
|
||||
rank = m_engine->CreateObject(m_object);
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT);
|
||||
m_object->SetObjectRank(8, rank);
|
||||
m_object->SetObjectParent(8, 7);
|
||||
|
@ -151,7 +151,7 @@ void CMotionBee::Create(glm::vec3 pos, float angle, ObjectType type,
|
|||
m_object->SetPartPosition(8, glm::vec3(0.0f, 0.0f, -2.0f));
|
||||
|
||||
// Creates the right front thigh.
|
||||
rank = m_engine->CreateObject();
|
||||
rank = m_engine->CreateObject(m_object);
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT);
|
||||
m_object->SetObjectRank(9, rank);
|
||||
m_object->SetObjectParent(9, 0);
|
||||
|
@ -159,7 +159,7 @@ void CMotionBee::Create(glm::vec3 pos, float angle, ObjectType type,
|
|||
m_object->SetPartPosition(9, glm::vec3(1.0f, -0.1f, -0.7f));
|
||||
|
||||
// Creates the right front leg.
|
||||
rank = m_engine->CreateObject();
|
||||
rank = m_engine->CreateObject(m_object);
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT);
|
||||
m_object->SetObjectRank(10, rank);
|
||||
m_object->SetObjectParent(10, 9);
|
||||
|
@ -167,7 +167,7 @@ void CMotionBee::Create(glm::vec3 pos, float angle, ObjectType type,
|
|||
m_object->SetPartPosition(10, glm::vec3(0.0f, 0.0f, -1.0f));
|
||||
|
||||
// Creates the right front foot.
|
||||
rank = m_engine->CreateObject();
|
||||
rank = m_engine->CreateObject(m_object);
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT);
|
||||
m_object->SetObjectRank(11, rank);
|
||||
m_object->SetObjectParent(11, 10);
|
||||
|
@ -175,7 +175,7 @@ void CMotionBee::Create(glm::vec3 pos, float angle, ObjectType type,
|
|||
m_object->SetPartPosition(11, glm::vec3(0.0f, 0.0f, -2.0f));
|
||||
|
||||
// Creates a left-back thigh.
|
||||
rank = m_engine->CreateObject();
|
||||
rank = m_engine->CreateObject(m_object);
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT);
|
||||
m_object->SetObjectRank(12, rank);
|
||||
m_object->SetObjectParent(12, 0);
|
||||
|
@ -184,7 +184,7 @@ void CMotionBee::Create(glm::vec3 pos, float angle, ObjectType type,
|
|||
m_object->SetPartRotationY(12, Math::PI);
|
||||
|
||||
// Creates a left-back leg.
|
||||
rank = m_engine->CreateObject();
|
||||
rank = m_engine->CreateObject(m_object);
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT);
|
||||
m_object->SetObjectRank(13, rank);
|
||||
m_object->SetObjectParent(13, 12);
|
||||
|
@ -192,7 +192,7 @@ void CMotionBee::Create(glm::vec3 pos, float angle, ObjectType type,
|
|||
m_object->SetPartPosition(13, glm::vec3(0.0f, 0.0f, -1.0f));
|
||||
|
||||
// Creates a left-back foot.
|
||||
rank = m_engine->CreateObject();
|
||||
rank = m_engine->CreateObject(m_object);
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT);
|
||||
m_object->SetObjectRank(14, rank);
|
||||
m_object->SetObjectParent(14, 13);
|
||||
|
@ -200,7 +200,7 @@ void CMotionBee::Create(glm::vec3 pos, float angle, ObjectType type,
|
|||
m_object->SetPartPosition(14, glm::vec3(0.0f, 0.0f, -2.0f));
|
||||
|
||||
// Creates two middle-left thigh.
|
||||
rank = m_engine->CreateObject();
|
||||
rank = m_engine->CreateObject(m_object);
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT);
|
||||
m_object->SetObjectRank(15, rank);
|
||||
m_object->SetObjectParent(15, 0);
|
||||
|
@ -209,7 +209,7 @@ void CMotionBee::Create(glm::vec3 pos, float angle, ObjectType type,
|
|||
m_object->SetPartRotationY(15, Math::PI);
|
||||
|
||||
// Creates two middle-left legs.
|
||||
rank = m_engine->CreateObject();
|
||||
rank = m_engine->CreateObject(m_object);
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT);
|
||||
m_object->SetObjectRank(16, rank);
|
||||
m_object->SetObjectParent(16, 15);
|
||||
|
@ -217,7 +217,7 @@ void CMotionBee::Create(glm::vec3 pos, float angle, ObjectType type,
|
|||
m_object->SetPartPosition(16, glm::vec3(0.0f, 0.0f, -1.0f));
|
||||
|
||||
// Creates two middle-left feet.
|
||||
rank = m_engine->CreateObject();
|
||||
rank = m_engine->CreateObject(m_object);
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT);
|
||||
m_object->SetObjectRank(17, rank);
|
||||
m_object->SetObjectParent(17, 16);
|
||||
|
@ -225,7 +225,7 @@ void CMotionBee::Create(glm::vec3 pos, float angle, ObjectType type,
|
|||
m_object->SetPartPosition(17, glm::vec3(0.0f, 0.0f, -2.0f));
|
||||
|
||||
// Creates front-left thigh.
|
||||
rank = m_engine->CreateObject();
|
||||
rank = m_engine->CreateObject(m_object);
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT);
|
||||
m_object->SetObjectRank(18, rank);
|
||||
m_object->SetObjectParent(18, 0);
|
||||
|
@ -234,7 +234,7 @@ void CMotionBee::Create(glm::vec3 pos, float angle, ObjectType type,
|
|||
m_object->SetPartRotationY(18, Math::PI);
|
||||
|
||||
// Creates front-left leg.
|
||||
rank = m_engine->CreateObject();
|
||||
rank = m_engine->CreateObject(m_object);
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT);
|
||||
m_object->SetObjectRank(19, rank);
|
||||
m_object->SetObjectParent(19, 18);
|
||||
|
@ -242,7 +242,7 @@ void CMotionBee::Create(glm::vec3 pos, float angle, ObjectType type,
|
|||
m_object->SetPartPosition(19, glm::vec3(0.0f, 0.0f, -1.0f));
|
||||
|
||||
// Creates front-left foot.
|
||||
rank = m_engine->CreateObject();
|
||||
rank = m_engine->CreateObject(m_object);
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT);
|
||||
m_object->SetObjectRank(20, rank);
|
||||
m_object->SetObjectParent(20, 19);
|
||||
|
@ -250,7 +250,7 @@ void CMotionBee::Create(glm::vec3 pos, float angle, ObjectType type,
|
|||
m_object->SetPartPosition(20, glm::vec3(0.0f, 0.0f, -2.0f));
|
||||
|
||||
// Creates the right wing.
|
||||
rank = m_engine->CreateObject();
|
||||
rank = m_engine->CreateObject(m_object);
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT);
|
||||
m_object->SetObjectRank(21, rank);
|
||||
m_object->SetObjectParent(21, 0);
|
||||
|
@ -258,7 +258,7 @@ void CMotionBee::Create(glm::vec3 pos, float angle, ObjectType type,
|
|||
m_object->SetPartPosition(21, glm::vec3(0.8f, 0.4f, -0.5f));
|
||||
|
||||
// Creates the left wing.
|
||||
rank = m_engine->CreateObject();
|
||||
rank = m_engine->CreateObject(m_object);
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT);
|
||||
m_object->SetObjectRank(22, rank);
|
||||
m_object->SetObjectParent(22, 0);
|
||||
|
|
|
@ -115,7 +115,7 @@ void CMotionHuman::Create(glm::vec3 pos, float angle, ObjectType type,
|
|||
|
||||
if ( m_main->GetGamerOnlyHead() )
|
||||
{
|
||||
rank = m_engine->CreateObject();
|
||||
rank = m_engine->CreateObject(m_object);
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_VEHICLE); // this is a moving object
|
||||
m_object->SetObjectRank(0, rank);
|
||||
face = m_main->GetGamerFace();
|
||||
|
@ -125,7 +125,7 @@ void CMotionHuman::Create(glm::vec3 pos, float angle, ObjectType type,
|
|||
glasses = m_main->GetGamerGlasses();
|
||||
if ( glasses != 0 )
|
||||
{
|
||||
rank = m_engine->CreateObject();
|
||||
rank = m_engine->CreateObject(m_object);
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT);
|
||||
m_object->SetObjectRank(1, rank);
|
||||
m_object->SetObjectParent(1, 0);
|
||||
|
@ -142,7 +142,7 @@ void CMotionHuman::Create(glm::vec3 pos, float angle, ObjectType type,
|
|||
}
|
||||
|
||||
// Creates the main base.
|
||||
rank = m_engine->CreateObject();
|
||||
rank = m_engine->CreateObject(m_object);
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_VEHICLE); // this is a moving object
|
||||
m_object->SetObjectRank(0, rank);
|
||||
|
||||
|
@ -161,7 +161,7 @@ void CMotionHuman::Create(glm::vec3 pos, float angle, ObjectType type,
|
|||
m_object->SetCameraCollisionSphere(Math::Sphere(glm::vec3(0.0f, 1.0f, 0.0f), 4.0f));
|
||||
|
||||
// Creates the head.
|
||||
rank = m_engine->CreateObject();
|
||||
rank = m_engine->CreateObject(m_object);
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT);
|
||||
m_object->SetObjectRank(1, rank);
|
||||
m_object->SetObjectParent(1, 0);
|
||||
|
@ -198,7 +198,7 @@ void CMotionHuman::Create(glm::vec3 pos, float angle, ObjectType type,
|
|||
glasses = m_main->GetGamerGlasses();
|
||||
if ( glasses != 0 && type == OBJECT_HUMAN )
|
||||
{
|
||||
m_glassesRank = m_engine->CreateObject();
|
||||
m_glassesRank = m_engine->CreateObject(m_object);
|
||||
m_engine->SetObjectType(m_glassesRank, Gfx::ENG_OBJTYPE_DESCENDANT);
|
||||
m_object->SetObjectRank(15, m_glassesRank);
|
||||
m_object->SetObjectParent(15, 1);
|
||||
|
@ -207,7 +207,7 @@ void CMotionHuman::Create(glm::vec3 pos, float angle, ObjectType type,
|
|||
}
|
||||
|
||||
// Creates the right arm.
|
||||
rank = m_engine->CreateObject();
|
||||
rank = m_engine->CreateObject(m_object);
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT);
|
||||
m_object->SetObjectRank(2, rank);
|
||||
m_object->SetObjectParent(2, 0);
|
||||
|
@ -216,7 +216,7 @@ void CMotionHuman::Create(glm::vec3 pos, float angle, ObjectType type,
|
|||
m_object->SetPartRotation(2, glm::vec3(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();
|
||||
rank = m_engine->CreateObject(m_object);
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT);
|
||||
m_object->SetObjectRank(3, rank);
|
||||
m_object->SetObjectParent(3, 2);
|
||||
|
@ -225,7 +225,7 @@ void CMotionHuman::Create(glm::vec3 pos, float angle, ObjectType type,
|
|||
m_object->SetPartRotation(3, glm::vec3(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();
|
||||
rank = m_engine->CreateObject(m_object);
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT);
|
||||
m_object->SetObjectRank(4, rank);
|
||||
m_object->SetObjectParent(4, 3);
|
||||
|
@ -233,7 +233,7 @@ void CMotionHuman::Create(glm::vec3 pos, float angle, ObjectType type,
|
|||
m_object->SetPartPosition(4, glm::vec3(1.2f, 0.0f, 0.0f));
|
||||
|
||||
// Creates the right thigh.
|
||||
rank = m_engine->CreateObject();
|
||||
rank = m_engine->CreateObject(m_object);
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT);
|
||||
m_object->SetObjectRank(5, rank);
|
||||
m_object->SetObjectParent(5, 0);
|
||||
|
@ -242,7 +242,7 @@ void CMotionHuman::Create(glm::vec3 pos, float angle, ObjectType type,
|
|||
m_object->SetPartRotation(5, glm::vec3(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();
|
||||
rank = m_engine->CreateObject(m_object);
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT);
|
||||
m_object->SetObjectRank(6, rank);
|
||||
m_object->SetObjectParent(6, 5);
|
||||
|
@ -251,7 +251,7 @@ void CMotionHuman::Create(glm::vec3 pos, float angle, ObjectType type,
|
|||
m_object->SetPartRotation(6, glm::vec3(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();
|
||||
rank = m_engine->CreateObject(m_object);
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT);
|
||||
m_object->SetObjectRank(7, rank);
|
||||
m_object->SetObjectParent(7, 6);
|
||||
|
@ -260,7 +260,7 @@ void CMotionHuman::Create(glm::vec3 pos, float angle, ObjectType type,
|
|||
m_object->SetPartRotation(7, glm::vec3(-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();
|
||||
rank = m_engine->CreateObject(m_object);
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT);
|
||||
m_object->SetObjectRank(8, rank);
|
||||
m_object->SetObjectParent(8, 0);
|
||||
|
@ -269,7 +269,7 @@ void CMotionHuman::Create(glm::vec3 pos, float angle, ObjectType type,
|
|||
m_object->SetPartRotation(8, glm::vec3(-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();
|
||||
rank = m_engine->CreateObject(m_object);
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT);
|
||||
m_object->SetObjectRank(9, rank);
|
||||
m_object->SetObjectParent(9, 8);
|
||||
|
@ -278,7 +278,7 @@ void CMotionHuman::Create(glm::vec3 pos, float angle, ObjectType type,
|
|||
m_object->SetPartRotation(9, glm::vec3(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();
|
||||
rank = m_engine->CreateObject(m_object);
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT);
|
||||
m_object->SetObjectRank(10, rank);
|
||||
m_object->SetObjectParent(10, 9);
|
||||
|
@ -286,7 +286,7 @@ void CMotionHuman::Create(glm::vec3 pos, float angle, ObjectType type,
|
|||
m_object->SetPartPosition(10, glm::vec3(1.2f, 0.0f, 0.0f));
|
||||
|
||||
// Creates the left thigh.
|
||||
rank = m_engine->CreateObject();
|
||||
rank = m_engine->CreateObject(m_object);
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT);
|
||||
m_object->SetObjectRank(11, rank);
|
||||
m_object->SetObjectParent(11, 0);
|
||||
|
@ -295,7 +295,7 @@ void CMotionHuman::Create(glm::vec3 pos, float angle, ObjectType type,
|
|||
m_object->SetPartRotation(11, glm::vec3(-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();
|
||||
rank = m_engine->CreateObject(m_object);
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT);
|
||||
m_object->SetObjectRank(12, rank);
|
||||
m_object->SetObjectParent(12, 11);
|
||||
|
@ -304,7 +304,7 @@ void CMotionHuman::Create(glm::vec3 pos, float angle, ObjectType type,
|
|||
m_object->SetPartRotation(12, glm::vec3(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();
|
||||
rank = m_engine->CreateObject(m_object);
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT);
|
||||
m_object->SetObjectRank(13, rank);
|
||||
m_object->SetObjectParent(13, 12);
|
||||
|
@ -315,7 +315,7 @@ void CMotionHuman::Create(glm::vec3 pos, float angle, ObjectType type,
|
|||
// Creates the neutron gun.
|
||||
if ( option != 2 && !m_main->GetPlusExplorer()) // with backpack?
|
||||
{
|
||||
rank = m_engine->CreateObject();
|
||||
rank = m_engine->CreateObject(m_object);
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT);
|
||||
m_object->SetObjectRank(14, rank);
|
||||
m_object->SetObjectParent(14, 0);
|
||||
|
|
|
@ -54,7 +54,7 @@ void CMotionLevelController::Create(glm::vec3 pos, float angle, ObjectType type,
|
|||
m_object->SetType(type);
|
||||
|
||||
// Creates the main base.
|
||||
int rank = m_engine->CreateObject();
|
||||
int rank = m_engine->CreateObject(m_object);
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_VEHICLE); // this is a moving object
|
||||
m_object->SetObjectRank(0, rank);
|
||||
|
||||
|
|
|
@ -74,7 +74,7 @@ void CMotionQueen::Create(glm::vec3 pos, float angle, ObjectType type,
|
|||
m_object->SetType(type);
|
||||
|
||||
// Creates main base.
|
||||
rank = m_engine->CreateObject();
|
||||
rank = m_engine->CreateObject(m_object);
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_VEHICLE); // this is a moving object
|
||||
m_object->SetObjectRank(0, rank);
|
||||
modelManager->AddModelReference("mother1", false, rank);
|
||||
|
@ -87,7 +87,7 @@ void CMotionQueen::Create(glm::vec3 pos, float angle, ObjectType type,
|
|||
m_object->SetCameraCollisionSphere(Math::Sphere(glm::vec3(-2.0f, 10.0f, 0.0f), 25.0f));
|
||||
|
||||
// Creates the head.
|
||||
rank = m_engine->CreateObject();
|
||||
rank = m_engine->CreateObject(m_object);
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT);
|
||||
m_object->SetObjectRank(1, rank);
|
||||
m_object->SetObjectParent(1, 0);
|
||||
|
@ -95,7 +95,7 @@ void CMotionQueen::Create(glm::vec3 pos, float angle, ObjectType type,
|
|||
m_object->SetPartPosition(1, glm::vec3(16.0f, 3.0f, 0.0f));
|
||||
|
||||
// Creates a right-back leg.
|
||||
rank = m_engine->CreateObject();
|
||||
rank = m_engine->CreateObject(m_object);
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT);
|
||||
m_object->SetObjectRank(2, rank);
|
||||
m_object->SetObjectParent(2, 0);
|
||||
|
@ -103,7 +103,7 @@ void CMotionQueen::Create(glm::vec3 pos, float angle, ObjectType type,
|
|||
m_object->SetPartPosition(2, glm::vec3(-5.0f, -1.0f, -12.0f));
|
||||
|
||||
// Creates a right-back foot.
|
||||
rank = m_engine->CreateObject();
|
||||
rank = m_engine->CreateObject(m_object);
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT);
|
||||
m_object->SetObjectRank(3, rank);
|
||||
m_object->SetObjectParent(3, 2);
|
||||
|
@ -111,7 +111,7 @@ void CMotionQueen::Create(glm::vec3 pos, float angle, ObjectType type,
|
|||
m_object->SetPartPosition(3, glm::vec3(0.0f, 0.0f, -8.5f));
|
||||
|
||||
// Creates a middle-right leg.
|
||||
rank = m_engine->CreateObject();
|
||||
rank = m_engine->CreateObject(m_object);
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT);
|
||||
m_object->SetObjectRank(4, rank);
|
||||
m_object->SetObjectParent(4, 0);
|
||||
|
@ -119,7 +119,7 @@ void CMotionQueen::Create(glm::vec3 pos, float angle, ObjectType type,
|
|||
m_object->SetPartPosition(4, glm::vec3(3.5f, -1.0f, -12.0f));
|
||||
|
||||
// Creates a middle-right foot.
|
||||
rank = m_engine->CreateObject();
|
||||
rank = m_engine->CreateObject(m_object);
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT);
|
||||
m_object->SetObjectRank(5, rank);
|
||||
m_object->SetObjectParent(5, 4);
|
||||
|
@ -127,7 +127,7 @@ void CMotionQueen::Create(glm::vec3 pos, float angle, ObjectType type,
|
|||
m_object->SetPartPosition(5, glm::vec3(0.0f, 0.0f, -8.5f));
|
||||
|
||||
// Creates a right-front leg.
|
||||
rank = m_engine->CreateObject();
|
||||
rank = m_engine->CreateObject(m_object);
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT);
|
||||
m_object->SetObjectRank(6, rank);
|
||||
m_object->SetObjectParent(6, 0);
|
||||
|
@ -135,7 +135,7 @@ void CMotionQueen::Create(glm::vec3 pos, float angle, ObjectType type,
|
|||
m_object->SetPartPosition(6, glm::vec3(10.0f, -1.0f, -10.0f));
|
||||
|
||||
// Creates a right-front foot.
|
||||
rank = m_engine->CreateObject();
|
||||
rank = m_engine->CreateObject(m_object);
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT);
|
||||
m_object->SetObjectRank(7, rank);
|
||||
m_object->SetObjectParent(7, 6);
|
||||
|
@ -143,7 +143,7 @@ void CMotionQueen::Create(glm::vec3 pos, float angle, ObjectType type,
|
|||
m_object->SetPartPosition(7, glm::vec3(0.0f, 0.0f, -8.5f));
|
||||
|
||||
// Creates a left-back leg.
|
||||
rank = m_engine->CreateObject();
|
||||
rank = m_engine->CreateObject(m_object);
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT);
|
||||
m_object->SetObjectRank(8, rank);
|
||||
m_object->SetObjectParent(8, 0);
|
||||
|
@ -152,7 +152,7 @@ void CMotionQueen::Create(glm::vec3 pos, float angle, ObjectType type,
|
|||
m_object->SetPartRotationY(8, Math::PI);
|
||||
|
||||
// Creates a left-back foot.
|
||||
rank = m_engine->CreateObject();
|
||||
rank = m_engine->CreateObject(m_object);
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT);
|
||||
m_object->SetObjectRank(9, rank);
|
||||
m_object->SetObjectParent(9, 8);
|
||||
|
@ -160,7 +160,7 @@ void CMotionQueen::Create(glm::vec3 pos, float angle, ObjectType type,
|
|||
m_object->SetPartPosition(9, glm::vec3(0.0f, 0.0f, -8.5f));
|
||||
|
||||
// Creates a middle-left leg.
|
||||
rank = m_engine->CreateObject();
|
||||
rank = m_engine->CreateObject(m_object);
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT);
|
||||
m_object->SetObjectRank(10, rank);
|
||||
m_object->SetObjectParent(10, 0);
|
||||
|
@ -169,7 +169,7 @@ void CMotionQueen::Create(glm::vec3 pos, float angle, ObjectType type,
|
|||
m_object->SetPartRotationY(10, Math::PI);
|
||||
|
||||
// Creates a middle-left foot.
|
||||
rank = m_engine->CreateObject();
|
||||
rank = m_engine->CreateObject(m_object);
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT);
|
||||
m_object->SetObjectRank(11, rank);
|
||||
m_object->SetObjectParent(11, 10);
|
||||
|
@ -177,7 +177,7 @@ void CMotionQueen::Create(glm::vec3 pos, float angle, ObjectType type,
|
|||
m_object->SetPartPosition(11, glm::vec3(0.0f, 0.0f, -8.5f));
|
||||
|
||||
// Creates a left-front leg.
|
||||
rank = m_engine->CreateObject();
|
||||
rank = m_engine->CreateObject(m_object);
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT);
|
||||
m_object->SetObjectRank(12, rank);
|
||||
m_object->SetObjectParent(12, 0);
|
||||
|
@ -186,7 +186,7 @@ void CMotionQueen::Create(glm::vec3 pos, float angle, ObjectType type,
|
|||
m_object->SetPartRotationY(12, Math::PI);
|
||||
|
||||
// Creates a left-front foot.
|
||||
rank = m_engine->CreateObject();
|
||||
rank = m_engine->CreateObject(m_object);
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT);
|
||||
m_object->SetObjectRank(13, rank);
|
||||
m_object->SetObjectParent(13, 12);
|
||||
|
@ -194,14 +194,14 @@ void CMotionQueen::Create(glm::vec3 pos, float angle, ObjectType type,
|
|||
m_object->SetPartPosition(13, glm::vec3(0.0f, 0.0f, -8.5f));
|
||||
|
||||
// Creates the right antenna.
|
||||
rank = m_engine->CreateObject();
|
||||
rank = m_engine->CreateObject(m_object);
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT);
|
||||
m_object->SetObjectRank(14, rank);
|
||||
m_object->SetObjectParent(14, 1);
|
||||
modelManager->AddModelReference("mother5", false, rank);
|
||||
m_object->SetPartPosition(14, glm::vec3(6.0f, 1.0f, -2.5f));
|
||||
|
||||
rank = m_engine->CreateObject();
|
||||
rank = m_engine->CreateObject(m_object);
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT);
|
||||
m_object->SetObjectRank(15, rank);
|
||||
m_object->SetObjectParent(15, 14);
|
||||
|
@ -209,14 +209,14 @@ void CMotionQueen::Create(glm::vec3 pos, float angle, ObjectType type,
|
|||
m_object->SetPartPosition(15, glm::vec3(8.0f, 0.0f, 0.0f));
|
||||
|
||||
// Creates the left antenna.
|
||||
rank = m_engine->CreateObject();
|
||||
rank = m_engine->CreateObject(m_object);
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT);
|
||||
m_object->SetObjectRank(16, rank);
|
||||
m_object->SetObjectParent(16, 1);
|
||||
modelManager->AddModelReference("mother5", false, rank);
|
||||
m_object->SetPartPosition(16, glm::vec3(6.0f, 1.0f, 2.5f));
|
||||
|
||||
rank = m_engine->CreateObject();
|
||||
rank = m_engine->CreateObject(m_object);
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT);
|
||||
m_object->SetObjectRank(17, rank);
|
||||
m_object->SetObjectParent(17, 16);
|
||||
|
@ -224,7 +224,7 @@ void CMotionQueen::Create(glm::vec3 pos, float angle, ObjectType type,
|
|||
m_object->SetPartPosition(17, glm::vec3(8.0f, 0.0f, 0.0f));
|
||||
|
||||
// Creates the right claw.
|
||||
rank = m_engine->CreateObject();
|
||||
rank = m_engine->CreateObject(m_object);
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT);
|
||||
m_object->SetObjectRank(18, rank);
|
||||
m_object->SetObjectParent(18, 1);
|
||||
|
@ -233,7 +233,7 @@ void CMotionQueen::Create(glm::vec3 pos, float angle, ObjectType type,
|
|||
m_object->SetPartScaleX(18, 1.2f);
|
||||
|
||||
// Creates the left claw.
|
||||
rank = m_engine->CreateObject();
|
||||
rank = m_engine->CreateObject(m_object);
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT);
|
||||
m_object->SetObjectRank(19, rank);
|
||||
m_object->SetObjectParent(19, 1);
|
||||
|
|
|
@ -103,7 +103,7 @@ void CMotionSpider::Create(glm::vec3 pos, float angle, ObjectType type,
|
|||
m_object->SetType(type);
|
||||
|
||||
// Creates the main base.
|
||||
rank = m_engine->CreateObject();
|
||||
rank = m_engine->CreateObject(m_object);
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_VEHICLE); // this is a moving object
|
||||
m_object->SetObjectRank(0, rank);
|
||||
// This is an "empty" object, without triangles
|
||||
|
@ -116,7 +116,7 @@ void CMotionSpider::Create(glm::vec3 pos, float angle, ObjectType type,
|
|||
m_object->SetCameraCollisionSphere(Math::Sphere(glm::vec3(-0.5f, 1.0f, 0.0f), 4.0f));
|
||||
|
||||
// Creates the abdomen.
|
||||
rank = m_engine->CreateObject();
|
||||
rank = m_engine->CreateObject(m_object);
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT);
|
||||
m_object->SetObjectRank(1, rank);
|
||||
m_object->SetObjectParent(1, 0);
|
||||
|
@ -124,7 +124,7 @@ void CMotionSpider::Create(glm::vec3 pos, float angle, ObjectType type,
|
|||
m_object->SetPartPosition(1, glm::vec3(1.0f, 0.0f, 0.0f));
|
||||
|
||||
// Creates the head.
|
||||
rank = m_engine->CreateObject();
|
||||
rank = m_engine->CreateObject(m_object);
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT);
|
||||
m_object->SetObjectRank(2, rank);
|
||||
m_object->SetObjectParent(2, 0);
|
||||
|
@ -139,7 +139,7 @@ void CMotionSpider::Create(glm::vec3 pos, float angle, ObjectType type,
|
|||
snprintf(name.data(), name.size(), "spider%d", j+3); // 3..6
|
||||
|
||||
// Creates the right leg.
|
||||
rank = m_engine->CreateObject();
|
||||
rank = m_engine->CreateObject(m_object);
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT);
|
||||
m_object->SetObjectRank(3+i*4+j, rank);
|
||||
if ( j == 0 ) parent = 0;
|
||||
|
@ -152,7 +152,7 @@ void CMotionSpider::Create(glm::vec3 pos, float angle, ObjectType type,
|
|||
m_object->SetPartPosition(3+i*4+j, pos);
|
||||
|
||||
// Creates the left leg.
|
||||
rank = m_engine->CreateObject();
|
||||
rank = m_engine->CreateObject(m_object);
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT);
|
||||
m_object->SetObjectRank(19+i*4+j, rank);
|
||||
if ( j == 0 ) parent = 0;
|
||||
|
@ -167,7 +167,7 @@ void CMotionSpider::Create(glm::vec3 pos, float angle, ObjectType type,
|
|||
}
|
||||
|
||||
// Creates the right mandible.
|
||||
rank = m_engine->CreateObject();
|
||||
rank = m_engine->CreateObject(m_object);
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT);
|
||||
m_object->SetObjectRank(35, rank);
|
||||
m_object->SetObjectParent(35, 1);
|
||||
|
@ -175,7 +175,7 @@ void CMotionSpider::Create(glm::vec3 pos, float angle, ObjectType type,
|
|||
m_object->SetPartPosition(35, glm::vec3(0.0f, 0.0f, -0.3f));
|
||||
|
||||
// Creates the left mandible.
|
||||
rank = m_engine->CreateObject();
|
||||
rank = m_engine->CreateObject(m_object);
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT);
|
||||
m_object->SetObjectRank(36, rank);
|
||||
m_object->SetObjectParent(36, 1);
|
||||
|
|
|
@ -91,7 +91,7 @@ void CMotionToto::Create(glm::vec3 pos, float angle, ObjectType type,
|
|||
m_object->SetType(type);
|
||||
|
||||
// Creates the head.
|
||||
rank = m_engine->CreateObject();
|
||||
rank = m_engine->CreateObject(m_object);
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_VEHICLE); // this is a moving object
|
||||
m_object->SetObjectRank(0, rank);
|
||||
modelManager->AddModelReference("toto1", false, rank);
|
||||
|
@ -99,7 +99,7 @@ void CMotionToto::Create(glm::vec3 pos, float angle, ObjectType type,
|
|||
m_object->SetRotationY(angle);
|
||||
|
||||
// Creates mouth.
|
||||
rank = m_engine->CreateObject();
|
||||
rank = m_engine->CreateObject(m_object);
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT);
|
||||
m_object->SetObjectRank(1, rank);
|
||||
m_object->SetObjectParent(1, 0);
|
||||
|
@ -107,7 +107,7 @@ void CMotionToto::Create(glm::vec3 pos, float angle, ObjectType type,
|
|||
m_object->SetPartPosition(1, glm::vec3(1.00f, 0.17f, 0.00f));
|
||||
|
||||
// Creates the left eye.
|
||||
rank = m_engine->CreateObject();
|
||||
rank = m_engine->CreateObject(m_object);
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT);
|
||||
m_object->SetObjectRank(2, rank);
|
||||
m_object->SetObjectParent(2, 0);
|
||||
|
@ -116,7 +116,7 @@ void CMotionToto::Create(glm::vec3 pos, float angle, ObjectType type,
|
|||
m_object->SetPartRotationY(2, -20.0f*Math::PI/180.0f);
|
||||
|
||||
// Creates the right eye.
|
||||
rank = m_engine->CreateObject();
|
||||
rank = m_engine->CreateObject(m_object);
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT);
|
||||
m_object->SetObjectRank(3, rank);
|
||||
m_object->SetObjectParent(3, 0);
|
||||
|
@ -125,7 +125,7 @@ void CMotionToto::Create(glm::vec3 pos, float angle, ObjectType type,
|
|||
m_object->SetPartRotationY(3, 20.0f*Math::PI/180.0f);
|
||||
|
||||
// Creates left antenna.
|
||||
rank = m_engine->CreateObject();
|
||||
rank = m_engine->CreateObject(m_object);
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT);
|
||||
m_object->SetObjectRank(4, rank);
|
||||
m_object->SetObjectParent(4, 0);
|
||||
|
@ -133,7 +133,7 @@ void CMotionToto::Create(glm::vec3 pos, float angle, ObjectType type,
|
|||
m_object->SetPartPosition(4, glm::vec3(0.0f, 1.9f, 0.3f));
|
||||
m_object->SetPartRotationX(4, 30.0f*Math::PI/180.0f);
|
||||
|
||||
rank = m_engine->CreateObject();
|
||||
rank = m_engine->CreateObject(m_object);
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT);
|
||||
m_object->SetObjectRank(5, rank);
|
||||
m_object->SetObjectParent(5, 4);
|
||||
|
@ -141,7 +141,7 @@ void CMotionToto::Create(glm::vec3 pos, float angle, ObjectType type,
|
|||
m_object->SetPartPosition(5, glm::vec3(0.0f, 0.67f, 0.0f));
|
||||
m_object->SetPartRotationX(5, 30.0f*Math::PI/180.0f);
|
||||
|
||||
rank = m_engine->CreateObject();
|
||||
rank = m_engine->CreateObject(m_object);
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT);
|
||||
m_object->SetObjectRank(6, rank);
|
||||
m_object->SetObjectParent(6, 5);
|
||||
|
@ -150,7 +150,7 @@ void CMotionToto::Create(glm::vec3 pos, float angle, ObjectType type,
|
|||
m_object->SetPartRotationX(6, 30.0f*Math::PI/180.0f);
|
||||
|
||||
// Creates right antenna.
|
||||
rank = m_engine->CreateObject();
|
||||
rank = m_engine->CreateObject(m_object);
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT);
|
||||
m_object->SetObjectRank(7, rank);
|
||||
m_object->SetObjectParent(7, 0);
|
||||
|
@ -158,7 +158,7 @@ void CMotionToto::Create(glm::vec3 pos, float angle, ObjectType type,
|
|||
m_object->SetPartPosition(7, glm::vec3(0.0f, 1.9f, -0.3f));
|
||||
m_object->SetPartRotationX(7, -30.0f*Math::PI/180.0f);
|
||||
|
||||
rank = m_engine->CreateObject();
|
||||
rank = m_engine->CreateObject(m_object);
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT);
|
||||
m_object->SetObjectRank(8, rank);
|
||||
m_object->SetObjectParent(8, 7);
|
||||
|
@ -166,7 +166,7 @@ void CMotionToto::Create(glm::vec3 pos, float angle, ObjectType type,
|
|||
m_object->SetPartPosition(8, glm::vec3(0.0f, 0.67f, 0.0f));
|
||||
m_object->SetPartRotationX(8, -30.0f*Math::PI/180.0f);
|
||||
|
||||
rank = m_engine->CreateObject();
|
||||
rank = m_engine->CreateObject(m_object);
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT);
|
||||
m_object->SetObjectRank(9, rank);
|
||||
m_object->SetObjectParent(9, 8);
|
||||
|
|
|
@ -97,7 +97,7 @@ void CMotionVehicle::Create(glm::vec3 pos, float angle, ObjectType type,
|
|||
m_object->SetType(type);
|
||||
|
||||
// Creates the main base.
|
||||
rank = m_engine->CreateObject();
|
||||
rank = m_engine->CreateObject(m_object);
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_VEHICLE); // this is a moving object
|
||||
m_object->SetObjectRank(0, rank);
|
||||
|
||||
|
@ -132,13 +132,13 @@ void CMotionVehicle::Create(glm::vec3 pos, float angle, ObjectType type,
|
|||
modelManager->AddModelReference("lem1f", false, rank, m_object->GetTeam());
|
||||
else
|
||||
{
|
||||
rank = m_engine->CreateObject();
|
||||
rank = m_engine->CreateObject(m_object);
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT);
|
||||
m_object->SetObjectRank(28, rank);
|
||||
m_object->SetObjectParent(28, 0);
|
||||
modelManager->AddModelReference("trainerf", false, rank, m_object->GetTeam());
|
||||
|
||||
rank = m_engine->CreateObject();
|
||||
rank = m_engine->CreateObject(m_object);
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT);
|
||||
m_object->SetObjectRank(29, rank);
|
||||
m_object->SetObjectParent(29, 0);
|
||||
|
@ -155,13 +155,13 @@ void CMotionVehicle::Create(glm::vec3 pos, float angle, ObjectType type,
|
|||
modelManager->AddModelReference("lem1t", false, rank, m_object->GetTeam());
|
||||
else
|
||||
{
|
||||
rank = m_engine->CreateObject();
|
||||
rank = m_engine->CreateObject(m_object);
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT);
|
||||
m_object->SetObjectRank(28, rank);
|
||||
m_object->SetObjectParent(28, 0);
|
||||
modelManager->AddModelReference("trainert", false, rank, m_object->GetTeam());
|
||||
|
||||
rank = m_engine->CreateObject();
|
||||
rank = m_engine->CreateObject(m_object);
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT);
|
||||
m_object->SetObjectRank(29, rank);
|
||||
m_object->SetObjectParent(29, 0);
|
||||
|
@ -178,13 +178,13 @@ void CMotionVehicle::Create(glm::vec3 pos, float angle, ObjectType type,
|
|||
modelManager->AddModelReference("lem1w", false, rank, m_object->GetTeam());
|
||||
else
|
||||
{
|
||||
rank = m_engine->CreateObject();
|
||||
rank = m_engine->CreateObject(m_object);
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT);
|
||||
m_object->SetObjectRank(28, rank);
|
||||
m_object->SetObjectParent(28, 0);
|
||||
modelManager->AddModelReference("trainerw", false, rank, m_object->GetTeam());
|
||||
|
||||
rank = m_engine->CreateObject();
|
||||
rank = m_engine->CreateObject(m_object);
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT);
|
||||
m_object->SetObjectRank(29, rank);
|
||||
m_object->SetObjectParent(29, 0);
|
||||
|
@ -201,13 +201,13 @@ void CMotionVehicle::Create(glm::vec3 pos, float angle, ObjectType type,
|
|||
modelManager->AddModelReference("lem1i", false, rank, m_object->GetTeam());
|
||||
else
|
||||
{
|
||||
rank = m_engine->CreateObject();
|
||||
rank = m_engine->CreateObject(m_object);
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT);
|
||||
m_object->SetObjectRank(28, rank);
|
||||
m_object->SetObjectParent(28, 0);
|
||||
modelManager->AddModelReference("traineri", false, rank, m_object->GetTeam());
|
||||
|
||||
rank = m_engine->CreateObject();
|
||||
rank = m_engine->CreateObject(m_object);
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT);
|
||||
m_object->SetObjectRank(29, rank);
|
||||
m_object->SetObjectParent(29, 0);
|
||||
|
@ -232,7 +232,7 @@ void CMotionVehicle::Create(glm::vec3 pos, float angle, ObjectType type,
|
|||
}
|
||||
else if (type == OBJECT_MOBILEwt)
|
||||
{
|
||||
rank = m_engine->CreateObject();
|
||||
rank = m_engine->CreateObject(m_object);
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT);
|
||||
m_object->SetObjectRank(28, rank);
|
||||
m_object->SetObjectParent(28, 0);
|
||||
|
@ -240,7 +240,7 @@ void CMotionVehicle::Create(glm::vec3 pos, float angle, ObjectType type,
|
|||
}
|
||||
else if (type == OBJECT_MOBILEft)
|
||||
{
|
||||
rank = m_engine->CreateObject();
|
||||
rank = m_engine->CreateObject(m_object);
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT);
|
||||
m_object->SetObjectRank(28, rank);
|
||||
m_object->SetObjectParent(28, 0);
|
||||
|
@ -248,7 +248,7 @@ void CMotionVehicle::Create(glm::vec3 pos, float angle, ObjectType type,
|
|||
}
|
||||
else if (type == OBJECT_MOBILEtt)
|
||||
{
|
||||
rank = m_engine->CreateObject();
|
||||
rank = m_engine->CreateObject(m_object);
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT);
|
||||
m_object->SetObjectRank(28, rank);
|
||||
m_object->SetObjectParent(28, 0);
|
||||
|
@ -256,7 +256,7 @@ void CMotionVehicle::Create(glm::vec3 pos, float angle, ObjectType type,
|
|||
}
|
||||
else if (type == OBJECT_MOBILEit)
|
||||
{
|
||||
rank = m_engine->CreateObject();
|
||||
rank = m_engine->CreateObject(m_object);
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT);
|
||||
m_object->SetObjectRank(28, rank);
|
||||
m_object->SetObjectParent(28, 0);
|
||||
|
@ -312,7 +312,7 @@ void CMotionVehicle::Create(glm::vec3 pos, float angle, ObjectType type,
|
|||
type == OBJECT_MOBILEia)
|
||||
{
|
||||
// Creates the arm.
|
||||
rank = m_engine->CreateObject();
|
||||
rank = m_engine->CreateObject(m_object);
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT);
|
||||
m_object->SetObjectRank(1, rank);
|
||||
m_object->SetObjectParent(1, 0);
|
||||
|
@ -321,7 +321,7 @@ void CMotionVehicle::Create(glm::vec3 pos, float angle, ObjectType type,
|
|||
m_object->SetPartRotationZ(1, ARM_NEUTRAL_ANGLE1);
|
||||
|
||||
// Creates the forearm.
|
||||
rank = m_engine->CreateObject();
|
||||
rank = m_engine->CreateObject(m_object);
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT);
|
||||
m_object->SetObjectRank(2, rank);
|
||||
m_object->SetObjectParent(2, 1);
|
||||
|
@ -330,7 +330,7 @@ void CMotionVehicle::Create(glm::vec3 pos, float angle, ObjectType type,
|
|||
m_object->SetPartRotationZ(2, ARM_NEUTRAL_ANGLE2);
|
||||
|
||||
// Creates the hand.
|
||||
rank = m_engine->CreateObject();
|
||||
rank = m_engine->CreateObject(m_object);
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT);
|
||||
m_object->SetObjectRank(3, rank);
|
||||
m_object->SetObjectParent(3, 2);
|
||||
|
@ -340,7 +340,7 @@ void CMotionVehicle::Create(glm::vec3 pos, float angle, ObjectType type,
|
|||
m_object->SetPartRotationX(3, Math::PI/2.0f);
|
||||
|
||||
// Creates the close clamp.
|
||||
rank = m_engine->CreateObject();
|
||||
rank = m_engine->CreateObject(m_object);
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT);
|
||||
m_object->SetObjectRank(4, rank);
|
||||
m_object->SetObjectParent(4, 3);
|
||||
|
@ -349,7 +349,7 @@ void CMotionVehicle::Create(glm::vec3 pos, float angle, ObjectType type,
|
|||
m_object->SetPartRotationZ(4, -Math::PI*0.10f);
|
||||
|
||||
// Creates the remote clamp.
|
||||
rank = m_engine->CreateObject();
|
||||
rank = m_engine->CreateObject(m_object);
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT);
|
||||
m_object->SetObjectRank(5, rank);
|
||||
m_object->SetObjectParent(5, 3);
|
||||
|
@ -364,7 +364,7 @@ void CMotionVehicle::Create(glm::vec3 pos, float angle, ObjectType type,
|
|||
type == OBJECT_MOBILEis)
|
||||
{
|
||||
// Creates the arm.
|
||||
rank = m_engine->CreateObject();
|
||||
rank = m_engine->CreateObject(m_object);
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT);
|
||||
m_object->SetObjectRank(1, rank);
|
||||
m_object->SetObjectParent(1, 0);
|
||||
|
@ -373,7 +373,7 @@ void CMotionVehicle::Create(glm::vec3 pos, float angle, ObjectType type,
|
|||
m_object->SetPartRotationZ(1, 110.0f*Math::PI/180.0f);
|
||||
|
||||
// Creates the forearm.
|
||||
rank = m_engine->CreateObject();
|
||||
rank = m_engine->CreateObject(m_object);
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT);
|
||||
m_object->SetObjectRank(2, rank);
|
||||
m_object->SetObjectParent(2, 1);
|
||||
|
@ -382,7 +382,7 @@ void CMotionVehicle::Create(glm::vec3 pos, float angle, ObjectType type,
|
|||
m_object->SetPartRotationZ(2, -110.0f*Math::PI/180.0f);
|
||||
|
||||
// Creates the sensor.
|
||||
rank = m_engine->CreateObject();
|
||||
rank = m_engine->CreateObject(m_object);
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT);
|
||||
m_object->SetObjectRank(3, rank);
|
||||
m_object->SetObjectParent(3, 2);
|
||||
|
@ -397,7 +397,7 @@ void CMotionVehicle::Create(glm::vec3 pos, float angle, ObjectType type,
|
|||
type == OBJECT_MOBILEic)
|
||||
{
|
||||
// Creates the cannon.
|
||||
rank = m_engine->CreateObject();
|
||||
rank = m_engine->CreateObject(m_object);
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT);
|
||||
m_object->SetObjectRank(1, rank);
|
||||
m_object->SetObjectParent(1, 0);
|
||||
|
@ -413,7 +413,7 @@ void CMotionVehicle::Create(glm::vec3 pos, float angle, ObjectType type,
|
|||
type == OBJECT_MOBILEii)
|
||||
{
|
||||
// Creates the insect cannon.
|
||||
rank = m_engine->CreateObject();
|
||||
rank = m_engine->CreateObject(m_object);
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT);
|
||||
m_object->SetObjectRank(1, rank);
|
||||
m_object->SetObjectParent(1, 0);
|
||||
|
@ -421,7 +421,7 @@ void CMotionVehicle::Create(glm::vec3 pos, float angle, ObjectType type,
|
|||
m_object->SetPartPosition(1, glm::vec3(0.0f, 5.3f, 0.0f));
|
||||
m_object->SetPartRotationZ(1, 0.0f);
|
||||
|
||||
rank = m_engine->CreateObject();
|
||||
rank = m_engine->CreateObject(m_object);
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT);
|
||||
m_object->SetObjectRank(2, rank);
|
||||
m_object->SetObjectParent(2, 1);
|
||||
|
@ -436,7 +436,7 @@ void CMotionVehicle::Create(glm::vec3 pos, float angle, ObjectType type,
|
|||
type == OBJECT_MOBILEib)
|
||||
{
|
||||
// Creates the neutron gun.
|
||||
rank = m_engine->CreateObject();
|
||||
rank = m_engine->CreateObject(m_object);
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT);
|
||||
m_object->SetObjectRank(1, rank);
|
||||
m_object->SetObjectParent(1, 0);
|
||||
|
@ -454,7 +454,7 @@ void CMotionVehicle::Create(glm::vec3 pos, float angle, ObjectType type,
|
|||
type == OBJECT_MOBILEwt)
|
||||
{
|
||||
// Creates the right-back wheel.
|
||||
rank = m_engine->CreateObject();
|
||||
rank = m_engine->CreateObject(m_object);
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT);
|
||||
m_object->SetObjectRank(6, rank);
|
||||
m_object->SetObjectParent(6, 0);
|
||||
|
@ -462,7 +462,7 @@ void CMotionVehicle::Create(glm::vec3 pos, float angle, ObjectType type,
|
|||
m_object->SetPartPosition(6, glm::vec3(-3.0f, 1.0f, -3.0f));
|
||||
|
||||
// Creates the left-back wheel.
|
||||
rank = m_engine->CreateObject();
|
||||
rank = m_engine->CreateObject(m_object);
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT);
|
||||
m_object->SetObjectRank(7, rank);
|
||||
m_object->SetObjectParent(7, 0);
|
||||
|
@ -471,7 +471,7 @@ void CMotionVehicle::Create(glm::vec3 pos, float angle, ObjectType type,
|
|||
m_object->SetPartRotationY(7, Math::PI);
|
||||
|
||||
// Creates the right-front wheel.
|
||||
rank = m_engine->CreateObject();
|
||||
rank = m_engine->CreateObject(m_object);
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT);
|
||||
m_object->SetObjectRank(8, rank);
|
||||
m_object->SetObjectParent(8, 0);
|
||||
|
@ -479,7 +479,7 @@ void CMotionVehicle::Create(glm::vec3 pos, float angle, ObjectType type,
|
|||
m_object->SetPartPosition(8, glm::vec3(2.0f, 1.0f, -3.0f));
|
||||
|
||||
// Creates the left-front wheel.
|
||||
rank = m_engine->CreateObject();
|
||||
rank = m_engine->CreateObject(m_object);
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT);
|
||||
m_object->SetObjectRank(9, rank);
|
||||
m_object->SetObjectParent(9, 0);
|
||||
|
@ -491,7 +491,7 @@ void CMotionVehicle::Create(glm::vec3 pos, float angle, ObjectType type,
|
|||
if (type == OBJECT_MOBILEtg)
|
||||
{
|
||||
// Creates the right-back wheel.
|
||||
rank = m_engine->CreateObject();
|
||||
rank = m_engine->CreateObject(m_object);
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT);
|
||||
m_object->SetObjectRank(6, rank);
|
||||
m_object->SetObjectParent(6, 0);
|
||||
|
@ -499,7 +499,7 @@ void CMotionVehicle::Create(glm::vec3 pos, float angle, ObjectType type,
|
|||
m_object->SetPartPosition(6, glm::vec3(-2.0f, 1.0f, -3.0f));
|
||||
|
||||
// Creates the left-back wheel.
|
||||
rank = m_engine->CreateObject();
|
||||
rank = m_engine->CreateObject(m_object);
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT);
|
||||
m_object->SetObjectRank(7, rank);
|
||||
m_object->SetObjectParent(7, 0);
|
||||
|
@ -508,7 +508,7 @@ void CMotionVehicle::Create(glm::vec3 pos, float angle, ObjectType type,
|
|||
m_object->SetPartRotationY(7, Math::PI);
|
||||
|
||||
// Creates the right-front wheel.
|
||||
rank = m_engine->CreateObject();
|
||||
rank = m_engine->CreateObject(m_object);
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT);
|
||||
m_object->SetObjectRank(8, rank);
|
||||
m_object->SetObjectParent(8, 0);
|
||||
|
@ -516,7 +516,7 @@ void CMotionVehicle::Create(glm::vec3 pos, float angle, ObjectType type,
|
|||
m_object->SetPartPosition(8, glm::vec3(3.0f, 1.0f, -3.0f));
|
||||
|
||||
// Creates the left-front wheel.
|
||||
rank = m_engine->CreateObject();
|
||||
rank = m_engine->CreateObject(m_object);
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT);
|
||||
m_object->SetObjectRank(9, rank);
|
||||
m_object->SetObjectParent(9, 0);
|
||||
|
@ -533,7 +533,7 @@ void CMotionVehicle::Create(glm::vec3 pos, float angle, ObjectType type,
|
|||
type == OBJECT_MOBILEtt) // caterpillars?
|
||||
{
|
||||
// Creates the right caterpillar.
|
||||
rank = m_engine->CreateObject();
|
||||
rank = m_engine->CreateObject(m_object);
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT);
|
||||
m_object->SetObjectRank(6, rank);
|
||||
m_object->SetObjectParent(6, 0);
|
||||
|
@ -547,7 +547,7 @@ void CMotionVehicle::Create(glm::vec3 pos, float angle, ObjectType type,
|
|||
m_object->SetPartPosition(6, glm::vec3(0.0f, 2.0f, -3.0f));
|
||||
|
||||
// Creates the left caterpillar.
|
||||
rank = m_engine->CreateObject();
|
||||
rank = m_engine->CreateObject(m_object);
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT);
|
||||
m_object->SetObjectRank(7, rank);
|
||||
m_object->SetObjectParent(7, 0);
|
||||
|
@ -568,7 +568,7 @@ void CMotionVehicle::Create(glm::vec3 pos, float angle, ObjectType type,
|
|||
type == OBJECT_MOBILErp) // large caterpillars?
|
||||
{
|
||||
// Creates the right caterpillar.
|
||||
rank = m_engine->CreateObject();
|
||||
rank = m_engine->CreateObject(m_object);
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT);
|
||||
m_object->SetObjectRank(6, rank);
|
||||
m_object->SetObjectParent(6, 0);
|
||||
|
@ -576,7 +576,7 @@ void CMotionVehicle::Create(glm::vec3 pos, float angle, ObjectType type,
|
|||
m_object->SetPartPosition(6, glm::vec3(0.0f, 2.0f, -3.0f));
|
||||
|
||||
// Creates the left caterpillar.
|
||||
rank = m_engine->CreateObject();
|
||||
rank = m_engine->CreateObject(m_object);
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT);
|
||||
m_object->SetObjectRank(7, rank);
|
||||
m_object->SetObjectParent(7, 0);
|
||||
|
@ -588,7 +588,7 @@ void CMotionVehicle::Create(glm::vec3 pos, float angle, ObjectType type,
|
|||
type == OBJECT_MOBILEst) // underwater caterpillars?
|
||||
{
|
||||
// Creates the right caterpillar.
|
||||
rank = m_engine->CreateObject();
|
||||
rank = m_engine->CreateObject(m_object);
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT);
|
||||
m_object->SetObjectRank(6, rank);
|
||||
m_object->SetObjectParent(6, 0);
|
||||
|
@ -596,7 +596,7 @@ void CMotionVehicle::Create(glm::vec3 pos, float angle, ObjectType type,
|
|||
m_object->SetPartPosition(6, glm::vec3(0.0f, 1.0f, -3.0f));
|
||||
|
||||
// Creates the left caterpillar.
|
||||
rank = m_engine->CreateObject();
|
||||
rank = m_engine->CreateObject(m_object);
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT);
|
||||
m_object->SetObjectRank(7, rank);
|
||||
m_object->SetObjectParent(7, 0);
|
||||
|
@ -607,7 +607,7 @@ void CMotionVehicle::Create(glm::vec3 pos, float angle, ObjectType type,
|
|||
if (type == OBJECT_MOBILEdr) // caterpillars?
|
||||
{
|
||||
// Creates the right caterpillar.
|
||||
rank = m_engine->CreateObject();
|
||||
rank = m_engine->CreateObject(m_object);
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT);
|
||||
m_object->SetObjectRank(6, rank);
|
||||
m_object->SetObjectParent(6, 0);
|
||||
|
@ -615,7 +615,7 @@ void CMotionVehicle::Create(glm::vec3 pos, float angle, ObjectType type,
|
|||
m_object->SetPartPosition(6, glm::vec3(0.0f, 1.0f, -3.0f));
|
||||
|
||||
// Creates the left caterpillar.
|
||||
rank = m_engine->CreateObject();
|
||||
rank = m_engine->CreateObject(m_object);
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT);
|
||||
m_object->SetObjectRank(7, rank);
|
||||
m_object->SetObjectParent(7, 0);
|
||||
|
@ -631,7 +631,7 @@ void CMotionVehicle::Create(glm::vec3 pos, float angle, ObjectType type,
|
|||
type == OBJECT_MOBILEft) // flying?
|
||||
{
|
||||
// Creates the front foot.
|
||||
rank = m_engine->CreateObject();
|
||||
rank = m_engine->CreateObject(m_object);
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT);
|
||||
m_object->SetObjectRank(6, rank);
|
||||
m_object->SetObjectParent(6, 0);
|
||||
|
@ -639,7 +639,7 @@ void CMotionVehicle::Create(glm::vec3 pos, float angle, ObjectType type,
|
|||
m_object->SetPartPosition(6, glm::vec3(1.7f, 3.0f, 0.0f));
|
||||
|
||||
// Creates the right-back foot.
|
||||
rank = m_engine->CreateObject();
|
||||
rank = m_engine->CreateObject(m_object);
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT);
|
||||
m_object->SetObjectRank(7, rank);
|
||||
m_object->SetObjectParent(7, 0);
|
||||
|
@ -648,7 +648,7 @@ void CMotionVehicle::Create(glm::vec3 pos, float angle, ObjectType type,
|
|||
m_object->SetPartRotationY(7, 120.0f*Math::PI/180.0f);
|
||||
|
||||
// Creates the left-back foot.
|
||||
rank = m_engine->CreateObject();
|
||||
rank = m_engine->CreateObject(m_object);
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT);
|
||||
m_object->SetObjectRank(8, rank);
|
||||
m_object->SetObjectParent(8, 0);
|
||||
|
@ -687,7 +687,7 @@ void CMotionVehicle::Create(glm::vec3 pos, float angle, ObjectType type,
|
|||
snprintf(name.data(), name.size(), "ant%d", j+4); // 4..6
|
||||
|
||||
// Creates the right leg.
|
||||
rank = m_engine->CreateObject();
|
||||
rank = m_engine->CreateObject(m_object);
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT);
|
||||
m_object->SetObjectRank(6+i*3+j, rank);
|
||||
if ( j == 0 ) parent = 0;
|
||||
|
@ -700,7 +700,7 @@ void CMotionVehicle::Create(glm::vec3 pos, float angle, ObjectType type,
|
|||
m_object->SetPartPosition(6+i*3+j, pos);
|
||||
|
||||
// Creates the left leg.
|
||||
rank = m_engine->CreateObject();
|
||||
rank = m_engine->CreateObject(m_object);
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT);
|
||||
m_object->SetObjectRank(15+i*3+j, rank);
|
||||
if ( j == 0 ) parent = 0;
|
||||
|
@ -718,7 +718,7 @@ void CMotionVehicle::Create(glm::vec3 pos, float angle, ObjectType type,
|
|||
if (type == OBJECT_MOBILErt)
|
||||
{
|
||||
// Creates the holder.
|
||||
rank = m_engine->CreateObject();
|
||||
rank = m_engine->CreateObject(m_object);
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT);
|
||||
m_object->SetObjectRank(1, rank);
|
||||
m_object->SetObjectParent(1, 0);
|
||||
|
@ -727,7 +727,7 @@ void CMotionVehicle::Create(glm::vec3 pos, float angle, ObjectType type,
|
|||
m_object->SetPartRotationZ(1, 0.0f);
|
||||
|
||||
// Creates the pestle.
|
||||
rank = m_engine->CreateObject();
|
||||
rank = m_engine->CreateObject(m_object);
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT);
|
||||
m_object->SetObjectRank(2, rank);
|
||||
m_object->SetObjectParent(2, 0);
|
||||
|
@ -739,7 +739,7 @@ void CMotionVehicle::Create(glm::vec3 pos, float angle, ObjectType type,
|
|||
if (type == OBJECT_MOBILErc)
|
||||
{
|
||||
// Creates the holder.
|
||||
rank = m_engine->CreateObject();
|
||||
rank = m_engine->CreateObject(m_object);
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT);
|
||||
m_object->SetObjectRank(1, rank);
|
||||
m_object->SetObjectParent(1, 0);
|
||||
|
@ -748,7 +748,7 @@ void CMotionVehicle::Create(glm::vec3 pos, float angle, ObjectType type,
|
|||
m_object->SetPartRotationZ(1, Math::PI/8.0f);
|
||||
|
||||
// Creates the cannon.
|
||||
rank = m_engine->CreateObject();
|
||||
rank = m_engine->CreateObject(m_object);
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT);
|
||||
m_object->SetObjectRank(2, rank);
|
||||
m_object->SetObjectParent(2, 0);
|
||||
|
@ -760,7 +760,7 @@ void CMotionVehicle::Create(glm::vec3 pos, float angle, ObjectType type,
|
|||
if (type == OBJECT_MOBILErr)
|
||||
{
|
||||
// Creates the holder.
|
||||
rank = m_engine->CreateObject();
|
||||
rank = m_engine->CreateObject(m_object);
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT);
|
||||
m_object->SetObjectRank(1, rank);
|
||||
m_object->SetObjectParent(1, 0);
|
||||
|
@ -768,7 +768,7 @@ void CMotionVehicle::Create(glm::vec3 pos, float angle, ObjectType type,
|
|||
m_object->SetPartPosition(1, glm::vec3(2.0f, 5.0f, 0.0f));
|
||||
|
||||
// Creates the right arm.
|
||||
rank = m_engine->CreateObject();
|
||||
rank = m_engine->CreateObject(m_object);
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT);
|
||||
m_object->SetObjectRank(2, rank);
|
||||
m_object->SetObjectParent(2, 1);
|
||||
|
@ -777,7 +777,7 @@ void CMotionVehicle::Create(glm::vec3 pos, float angle, ObjectType type,
|
|||
m_object->SetPartRotationZ(2, 126.0f*Math::PI/180.0f);
|
||||
|
||||
// Creates the right forearm.
|
||||
rank = m_engine->CreateObject();
|
||||
rank = m_engine->CreateObject(m_object);
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT);
|
||||
m_object->SetObjectRank(3, rank);
|
||||
m_object->SetObjectParent(3, 2);
|
||||
|
@ -786,7 +786,7 @@ void CMotionVehicle::Create(glm::vec3 pos, float angle, ObjectType type,
|
|||
m_object->SetPartRotationZ(3, -144.0f*Math::PI/180.0f);
|
||||
|
||||
// Creates the left arm.
|
||||
rank = m_engine->CreateObject();
|
||||
rank = m_engine->CreateObject(m_object);
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT);
|
||||
m_object->SetObjectRank(4, rank);
|
||||
m_object->SetObjectParent(4, 1);
|
||||
|
@ -795,7 +795,7 @@ void CMotionVehicle::Create(glm::vec3 pos, float angle, ObjectType type,
|
|||
m_object->SetPartRotationZ(4, 126.0f*Math::PI/180.0f);
|
||||
|
||||
// Creates the left forearm.
|
||||
rank = m_engine->CreateObject();
|
||||
rank = m_engine->CreateObject(m_object);
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT);
|
||||
m_object->SetObjectRank(5, rank);
|
||||
m_object->SetObjectParent(5, 4);
|
||||
|
@ -807,7 +807,7 @@ void CMotionVehicle::Create(glm::vec3 pos, float angle, ObjectType type,
|
|||
if (type == OBJECT_MOBILErs)
|
||||
{
|
||||
// Creates the holder.
|
||||
rank = m_engine->CreateObject();
|
||||
rank = m_engine->CreateObject(m_object);
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT);
|
||||
m_object->SetObjectRank(1, rank);
|
||||
m_object->SetObjectParent(1, 0);
|
||||
|
@ -816,7 +816,7 @@ void CMotionVehicle::Create(glm::vec3 pos, float angle, ObjectType type,
|
|||
m_object->SetPartRotationZ(1, 0.0f);
|
||||
|
||||
// Creates the intermediate piston.
|
||||
rank = m_engine->CreateObject();
|
||||
rank = m_engine->CreateObject(m_object);
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT);
|
||||
m_object->SetObjectRank(2, rank);
|
||||
m_object->SetObjectParent(2, 1);
|
||||
|
@ -825,7 +825,7 @@ void CMotionVehicle::Create(glm::vec3 pos, float angle, ObjectType type,
|
|||
m_object->SetPartRotationZ(2, 0.0f);
|
||||
|
||||
// Creates the piston with the sphere.
|
||||
rank = m_engine->CreateObject();
|
||||
rank = m_engine->CreateObject(m_object);
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT);
|
||||
m_object->SetObjectRank(3, rank);
|
||||
m_object->SetObjectParent(3, 2);
|
||||
|
@ -837,7 +837,7 @@ void CMotionVehicle::Create(glm::vec3 pos, float angle, ObjectType type,
|
|||
if (type == OBJECT_MOBILEsa)
|
||||
{
|
||||
// Creates the holder.
|
||||
rank = m_engine->CreateObject();
|
||||
rank = m_engine->CreateObject(m_object);
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT);
|
||||
m_object->SetObjectRank(1, rank);
|
||||
m_object->SetObjectParent(1, 0);
|
||||
|
@ -845,7 +845,7 @@ void CMotionVehicle::Create(glm::vec3 pos, float angle, ObjectType type,
|
|||
m_object->SetPartPosition(1, glm::vec3(4.2f, 3.0f, 0.0f));
|
||||
|
||||
// Creates the right tong.
|
||||
rank = m_engine->CreateObject();
|
||||
rank = m_engine->CreateObject(m_object);
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT);
|
||||
m_object->SetObjectRank(2, rank);
|
||||
m_object->SetObjectParent(2, 1);
|
||||
|
@ -853,7 +853,7 @@ void CMotionVehicle::Create(glm::vec3 pos, float angle, ObjectType type,
|
|||
m_object->SetPartPosition(2, glm::vec3(0.5f, 0.0f, -1.5f));
|
||||
|
||||
// Creates the left tong.
|
||||
rank = m_engine->CreateObject();
|
||||
rank = m_engine->CreateObject(m_object);
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT);
|
||||
m_object->SetObjectRank(3, rank);
|
||||
m_object->SetObjectParent(3, 1);
|
||||
|
@ -862,7 +862,7 @@ void CMotionVehicle::Create(glm::vec3 pos, float angle, ObjectType type,
|
|||
|
||||
if (m_object->GetTrainer())
|
||||
{
|
||||
rank = m_engine->CreateObject();
|
||||
rank = m_engine->CreateObject(m_object);
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT);
|
||||
m_object->SetObjectRank(4, rank);
|
||||
m_object->SetObjectParent(4, 0);
|
||||
|
@ -873,7 +873,7 @@ void CMotionVehicle::Create(glm::vec3 pos, float angle, ObjectType type,
|
|||
if (type == OBJECT_MOBILEdr)
|
||||
{
|
||||
// Creates the carousel.
|
||||
rank = m_engine->CreateObject();
|
||||
rank = m_engine->CreateObject(m_object);
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT);
|
||||
m_object->SetObjectRank(1, rank);
|
||||
m_object->SetObjectParent(1, 0);
|
||||
|
@ -883,7 +883,7 @@ void CMotionVehicle::Create(glm::vec3 pos, float angle, ObjectType type,
|
|||
// Creates the key.
|
||||
if ( m_object->GetToy() )
|
||||
{
|
||||
rank = m_engine->CreateObject();
|
||||
rank = m_engine->CreateObject(m_object);
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT);
|
||||
m_object->SetObjectRank(2, rank);
|
||||
m_object->SetObjectParent(2, 0);
|
||||
|
@ -896,7 +896,7 @@ void CMotionVehicle::Create(glm::vec3 pos, float angle, ObjectType type,
|
|||
// Creates pencils.
|
||||
for ( i=0 ; i<8 ; i++ )
|
||||
{
|
||||
rank = m_engine->CreateObject();
|
||||
rank = m_engine->CreateObject(m_object);
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT);
|
||||
m_object->SetObjectRank(10+i, rank);
|
||||
m_object->SetObjectParent(10+i, 1);
|
||||
|
@ -912,7 +912,7 @@ void CMotionVehicle::Create(glm::vec3 pos, float angle, ObjectType type,
|
|||
// Creates the key.
|
||||
if ( m_object->GetToy() )
|
||||
{
|
||||
rank = m_engine->CreateObject();
|
||||
rank = m_engine->CreateObject(m_object);
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT);
|
||||
m_object->SetObjectRank(2, rank);
|
||||
m_object->SetObjectParent(2, 0);
|
||||
|
@ -926,7 +926,7 @@ void CMotionVehicle::Create(glm::vec3 pos, float angle, ObjectType type,
|
|||
if (type == OBJECT_APOLLO2)
|
||||
{
|
||||
// Creates the accessories.
|
||||
rank = m_engine->CreateObject();
|
||||
rank = m_engine->CreateObject(m_object);
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT);
|
||||
m_object->SetObjectRank(1, rank);
|
||||
m_object->SetObjectParent(1, 0);
|
||||
|
@ -935,7 +935,7 @@ void CMotionVehicle::Create(glm::vec3 pos, float angle, ObjectType type,
|
|||
m_object->SetPartRotationY(1, -120.0f*Math::PI/180.0f);
|
||||
m_object->SetPartRotationZ(1, 45.0f*Math::PI/180.0f);
|
||||
|
||||
rank = m_engine->CreateObject();
|
||||
rank = m_engine->CreateObject(m_object);
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT);
|
||||
m_object->SetObjectRank(2, rank);
|
||||
m_object->SetObjectParent(2, 0);
|
||||
|
@ -944,28 +944,28 @@ void CMotionVehicle::Create(glm::vec3 pos, float angle, ObjectType type,
|
|||
m_object->SetPartRotationY(2, 30.0f*Math::PI/180.0f);
|
||||
|
||||
// Creates the wheels.
|
||||
rank = m_engine->CreateObject();
|
||||
rank = m_engine->CreateObject(m_object);
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT);
|
||||
m_object->SetObjectRank(6, rank);
|
||||
m_object->SetObjectParent(6, 0);
|
||||
modelManager->AddModelReference("apolloj4", false, rank, m_object->GetTeam()); // wheel
|
||||
m_object->SetPartPosition(6, glm::vec3(-5.75f, 1.65f, -5.0f));
|
||||
|
||||
rank = m_engine->CreateObject();
|
||||
rank = m_engine->CreateObject(m_object);
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT);
|
||||
m_object->SetObjectRank(7, rank);
|
||||
m_object->SetObjectParent(7, 0);
|
||||
modelManager->AddModelReference("apolloj4", false, rank, m_object->GetTeam()); // wheel
|
||||
m_object->SetPartPosition(7, glm::vec3(-5.75f, 1.65f, 5.0f));
|
||||
|
||||
rank = m_engine->CreateObject();
|
||||
rank = m_engine->CreateObject(m_object);
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT);
|
||||
m_object->SetObjectRank(8, rank);
|
||||
m_object->SetObjectParent(8, 0);
|
||||
modelManager->AddModelReference("apolloj4", false, rank, m_object->GetTeam()); // wheel
|
||||
m_object->SetPartPosition(8, glm::vec3(5.75f, 1.65f, -5.0f));
|
||||
|
||||
rank = m_engine->CreateObject();
|
||||
rank = m_engine->CreateObject(m_object);
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT);
|
||||
m_object->SetObjectRank(9, rank);
|
||||
m_object->SetObjectParent(9, 0);
|
||||
|
@ -973,28 +973,28 @@ void CMotionVehicle::Create(glm::vec3 pos, float angle, ObjectType type,
|
|||
m_object->SetPartPosition(9, glm::vec3(5.75f, 1.65f, 5.00f));
|
||||
|
||||
// Creates mud guards.
|
||||
rank = m_engine->CreateObject();
|
||||
rank = m_engine->CreateObject(m_object);
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT);
|
||||
m_object->SetObjectRank(10, rank);
|
||||
m_object->SetObjectParent(10, 0);
|
||||
modelManager->AddModelReference("apolloj6", false, rank, m_object->GetTeam()); // wheel
|
||||
m_object->SetPartPosition(10, glm::vec3(-5.75f, 1.65f, -5.0f));
|
||||
|
||||
rank = m_engine->CreateObject();
|
||||
rank = m_engine->CreateObject(m_object);
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT);
|
||||
m_object->SetObjectRank(11, rank);
|
||||
m_object->SetObjectParent(11, 0);
|
||||
modelManager->AddModelReference("apolloj6", false, rank, m_object->GetTeam()); // wheel
|
||||
m_object->SetPartPosition(11, glm::vec3(-5.75f, 1.65f, 5.0f));
|
||||
|
||||
rank = m_engine->CreateObject();
|
||||
rank = m_engine->CreateObject(m_object);
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT);
|
||||
m_object->SetObjectRank(12, rank);
|
||||
m_object->SetObjectParent(12, 0);
|
||||
modelManager->AddModelReference("apolloj5", false, rank, m_object->GetTeam()); // wheel
|
||||
m_object->SetPartPosition(12, glm::vec3(5.75f, 1.65f, -5.0f));
|
||||
|
||||
rank = m_engine->CreateObject();
|
||||
rank = m_engine->CreateObject(m_object);
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT);
|
||||
m_object->SetObjectRank(13, rank);
|
||||
m_object->SetObjectParent(13, 0);
|
||||
|
|
|
@ -95,7 +95,7 @@ void CMotionWorm::Create(glm::vec3 pos, float angle, ObjectType type,
|
|||
m_object->SetType(type);
|
||||
|
||||
// Creates the main base.
|
||||
rank = m_engine->CreateObject();
|
||||
rank = m_engine->CreateObject(m_object);
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_VEHICLE); // this is a moving object
|
||||
m_object->SetObjectRank(0, rank);
|
||||
// This is an "empty" object, without triangles
|
||||
|
@ -109,7 +109,7 @@ void CMotionWorm::Create(glm::vec3 pos, float angle, ObjectType type,
|
|||
px = 1.0f+WORM_PART/2;
|
||||
|
||||
// Creates the head.
|
||||
rank = m_engine->CreateObject();
|
||||
rank = m_engine->CreateObject(m_object);
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT);
|
||||
m_object->SetObjectRank(1, rank);
|
||||
m_object->SetObjectParent(1, 0);
|
||||
|
@ -120,7 +120,7 @@ void CMotionWorm::Create(glm::vec3 pos, float angle, ObjectType type,
|
|||
// Creates the body.
|
||||
for ( i=0 ; i<WORM_PART ; i++ )
|
||||
{
|
||||
rank = m_engine->CreateObject();
|
||||
rank = m_engine->CreateObject(m_object);
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT);
|
||||
m_object->SetObjectRank(2+i, rank);
|
||||
m_object->SetObjectParent(2+i, 0);
|
||||
|
@ -130,7 +130,7 @@ void CMotionWorm::Create(glm::vec3 pos, float angle, ObjectType type,
|
|||
}
|
||||
|
||||
// Creates the tail.
|
||||
rank = m_engine->CreateObject();
|
||||
rank = m_engine->CreateObject(m_object);
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT);
|
||||
m_object->SetObjectRank(2+WORM_PART, rank);
|
||||
m_object->SetObjectParent(2+WORM_PART, 0);
|
||||
|
|
|
@ -162,8 +162,10 @@ public:
|
|||
// TODO: remove from here once no longer necessary
|
||||
void SetCameraCollisionSphere(const Math::Sphere& sphere);
|
||||
|
||||
//! Sets object's ghost mode
|
||||
virtual void SetGhostMode(bool enabled) = 0;
|
||||
//! Is the object translucent to prevent blocking the camera view?
|
||||
bool m_bCameraGhost = false;
|
||||
//! Does the object draw in front of the user interface?
|
||||
bool m_bDrawFront = false;
|
||||
|
||||
//! Sets flag controlling animation effect on level reset
|
||||
void SetAnimateOnReset(bool animateOnReset);
|
||||
|
|
|
@ -338,7 +338,7 @@ CObjectUPtr CObjectFactory::CreateResource(const ObjectCreateParams& params)
|
|||
obj->SetType(type);
|
||||
obj->SetTeam(params.team);
|
||||
|
||||
int rank = m_engine->CreateObject();
|
||||
int rank = m_engine->CreateObject(obj.get());
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_FIX); // it is a stationary object
|
||||
obj->SetObjectRank(0, rank);
|
||||
obj->SetEnergyLevel(power);
|
||||
|
@ -462,7 +462,7 @@ CObjectUPtr CObjectFactory::CreateFlag(const ObjectCreateParams& params)
|
|||
if ( type == OBJECT_FLAGy ) name = "flag1y";
|
||||
if ( type == OBJECT_FLAGv ) name = "flag1v";
|
||||
|
||||
int rank = m_engine->CreateObject();
|
||||
int rank = m_engine->CreateObject(obj.get());
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_FIX); // it is a stationary object
|
||||
obj->SetObjectRank(0, rank);
|
||||
m_oldModelManager->AddModelReference(name, false, rank, obj->GetTeam());
|
||||
|
@ -478,7 +478,7 @@ CObjectUPtr CObjectFactory::CreateFlag(const ObjectCreateParams& params)
|
|||
|
||||
for (int i=0 ; i<4 ; i++ )
|
||||
{
|
||||
int rank = m_engine->CreateObject();
|
||||
int rank = m_engine->CreateObject(obj.get());
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT);
|
||||
obj->SetObjectRank(1+i, rank);
|
||||
obj->SetObjectParent(1+i, i);
|
||||
|
@ -517,7 +517,7 @@ CObjectUPtr CObjectFactory::CreateBarrier(const ObjectCreateParams& params)
|
|||
|
||||
if ( type == OBJECT_BARRIER0 )
|
||||
{
|
||||
int rank = m_engine->CreateObject();
|
||||
int rank = m_engine->CreateObject(obj.get());
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_FIX);
|
||||
obj->SetObjectRank(0, rank);
|
||||
m_oldModelManager->AddModelReference("barrier0", false, rank, obj->GetTeam());
|
||||
|
@ -533,7 +533,7 @@ CObjectUPtr CObjectFactory::CreateBarrier(const ObjectCreateParams& params)
|
|||
|
||||
if ( type == OBJECT_BARRIER1 )
|
||||
{
|
||||
int rank = m_engine->CreateObject();
|
||||
int rank = m_engine->CreateObject(obj.get());
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_FIX);
|
||||
obj->SetObjectRank(0, rank);
|
||||
m_oldModelManager->AddModelReference("barrier1", false, rank, obj->GetTeam());
|
||||
|
@ -551,7 +551,7 @@ CObjectUPtr CObjectFactory::CreateBarrier(const ObjectCreateParams& params)
|
|||
|
||||
if ( type == OBJECT_BARRIER2 ) // cardboard?
|
||||
{
|
||||
int rank = m_engine->CreateObject();
|
||||
int rank = m_engine->CreateObject(obj.get());
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_FIX);
|
||||
obj->SetObjectRank(0, rank);
|
||||
m_oldModelManager->AddModelReference("barrier2", false, rank, obj->GetTeam());
|
||||
|
@ -569,7 +569,7 @@ CObjectUPtr CObjectFactory::CreateBarrier(const ObjectCreateParams& params)
|
|||
|
||||
if ( type == OBJECT_BARRIER3 ) // match + straw?
|
||||
{
|
||||
int rank = m_engine->CreateObject();
|
||||
int rank = m_engine->CreateObject(obj.get());
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_FIX);
|
||||
obj->SetObjectRank(0, rank);
|
||||
m_oldModelManager->AddModelReference("barrier3", false, rank, obj->GetTeam());
|
||||
|
@ -587,7 +587,7 @@ CObjectUPtr CObjectFactory::CreateBarrier(const ObjectCreateParams& params)
|
|||
|
||||
if ( type == OBJECT_BARRICADE0 )
|
||||
{
|
||||
int rank = m_engine->CreateObject();
|
||||
int rank = m_engine->CreateObject(obj.get());
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_FIX);
|
||||
obj->SetObjectRank(0, rank);
|
||||
m_oldModelManager->AddModelReference("barricade0", false, rank, obj->GetTeam());
|
||||
|
@ -606,7 +606,7 @@ CObjectUPtr CObjectFactory::CreateBarrier(const ObjectCreateParams& params)
|
|||
|
||||
if ( type == OBJECT_BARRICADE1 )
|
||||
{
|
||||
int rank = m_engine->CreateObject();
|
||||
int rank = m_engine->CreateObject(obj.get());
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_FIX);
|
||||
obj->SetObjectRank(0, rank);
|
||||
m_oldModelManager->AddModelReference("barricade1", false, rank, obj->GetTeam());
|
||||
|
@ -661,7 +661,7 @@ CObjectUPtr CObjectFactory::CreatePlant(const ObjectCreateParams& params)
|
|||
type == OBJECT_PLANT3 ||
|
||||
type == OBJECT_PLANT4 ) // standard?
|
||||
{
|
||||
int rank = m_engine->CreateObject();
|
||||
int rank = m_engine->CreateObject(obj.get());
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_FIX);
|
||||
obj->SetObjectRank(0, rank);
|
||||
if ( type == OBJECT_PLANT0 ) m_oldModelManager->AddModelReference("plant0", false, rank, obj->GetTeam());
|
||||
|
@ -685,7 +685,7 @@ CObjectUPtr CObjectFactory::CreatePlant(const ObjectCreateParams& params)
|
|||
type == OBJECT_PLANT6 ||
|
||||
type == OBJECT_PLANT7 ) // clover?
|
||||
{
|
||||
int rank = m_engine->CreateObject();
|
||||
int rank = m_engine->CreateObject(obj.get());
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_FIX);
|
||||
obj->SetObjectRank(0, rank);
|
||||
if ( type == OBJECT_PLANT5 ) m_oldModelManager->AddModelReference("plant5", false, rank, obj->GetTeam());
|
||||
|
@ -703,7 +703,7 @@ CObjectUPtr CObjectFactory::CreatePlant(const ObjectCreateParams& params)
|
|||
if ( type == OBJECT_PLANT8 ||
|
||||
type == OBJECT_PLANT9 ) // squash?
|
||||
{
|
||||
int rank = m_engine->CreateObject();
|
||||
int rank = m_engine->CreateObject(obj.get());
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_FIX);
|
||||
obj->SetObjectRank(0, rank);
|
||||
if ( type == OBJECT_PLANT8 ) m_oldModelManager->AddModelReference("plant8", false, rank, obj->GetTeam());
|
||||
|
@ -723,7 +723,7 @@ CObjectUPtr CObjectFactory::CreatePlant(const ObjectCreateParams& params)
|
|||
type == OBJECT_PLANT13 ||
|
||||
type == OBJECT_PLANT14 ) // succulent?
|
||||
{
|
||||
int rank = m_engine->CreateObject();
|
||||
int rank = m_engine->CreateObject(obj.get());
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_FIX);
|
||||
obj->SetObjectRank(0, rank);
|
||||
if ( type == OBJECT_PLANT10 ) m_oldModelManager->AddModelReference("plant10", false, rank, obj->GetTeam());
|
||||
|
@ -747,7 +747,7 @@ CObjectUPtr CObjectFactory::CreatePlant(const ObjectCreateParams& params)
|
|||
type == OBJECT_PLANT18 ||
|
||||
type == OBJECT_PLANT19 ) // fern?
|
||||
{
|
||||
int rank = m_engine->CreateObject();
|
||||
int rank = m_engine->CreateObject(obj.get());
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_FIX);
|
||||
obj->SetObjectRank(0, rank);
|
||||
if ( type == OBJECT_PLANT15 ) m_oldModelManager->AddModelReference("plant15", false, rank, obj->GetTeam());
|
||||
|
@ -770,7 +770,7 @@ CObjectUPtr CObjectFactory::CreatePlant(const ObjectCreateParams& params)
|
|||
|
||||
if ( type == OBJECT_TREE0 )
|
||||
{
|
||||
int rank = m_engine->CreateObject();
|
||||
int rank = m_engine->CreateObject(obj.get());
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_FIX);
|
||||
obj->SetObjectRank(0, rank);
|
||||
m_oldModelManager->AddModelReference("tree0", false, rank, obj->GetTeam());
|
||||
|
@ -787,7 +787,7 @@ CObjectUPtr CObjectFactory::CreatePlant(const ObjectCreateParams& params)
|
|||
|
||||
if ( type == OBJECT_TREE1 )
|
||||
{
|
||||
int rank = m_engine->CreateObject();
|
||||
int rank = m_engine->CreateObject(obj.get());
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_FIX);
|
||||
obj->SetObjectRank(0, rank);
|
||||
m_oldModelManager->AddModelReference("tree1", false, rank, obj->GetTeam());
|
||||
|
@ -805,7 +805,7 @@ CObjectUPtr CObjectFactory::CreatePlant(const ObjectCreateParams& params)
|
|||
|
||||
if ( type == OBJECT_TREE2 )
|
||||
{
|
||||
int rank = m_engine->CreateObject();
|
||||
int rank = m_engine->CreateObject(obj.get());
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_FIX);
|
||||
obj->SetObjectRank(0, rank);
|
||||
m_oldModelManager->AddModelReference("tree2", false, rank, obj->GetTeam());
|
||||
|
@ -823,7 +823,7 @@ CObjectUPtr CObjectFactory::CreatePlant(const ObjectCreateParams& params)
|
|||
|
||||
if ( type == OBJECT_TREE3 )
|
||||
{
|
||||
int rank = m_engine->CreateObject();
|
||||
int rank = m_engine->CreateObject(obj.get());
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_FIX);
|
||||
obj->SetObjectRank(0, rank);
|
||||
m_oldModelManager->AddModelReference("tree3", false, rank, obj->GetTeam());
|
||||
|
@ -840,7 +840,7 @@ CObjectUPtr CObjectFactory::CreatePlant(const ObjectCreateParams& params)
|
|||
|
||||
if ( type == OBJECT_TREE4 )
|
||||
{
|
||||
int rank = m_engine->CreateObject();
|
||||
int rank = m_engine->CreateObject(obj.get());
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_FIX);
|
||||
obj->SetObjectRank(0, rank);
|
||||
m_oldModelManager->AddModelReference("tree4", false, rank, obj->GetTeam());
|
||||
|
@ -856,7 +856,7 @@ CObjectUPtr CObjectFactory::CreatePlant(const ObjectCreateParams& params)
|
|||
|
||||
if ( type == OBJECT_TREE5 ) // giant tree (for the world "teen")
|
||||
{
|
||||
int rank = m_engine->CreateObject();
|
||||
int rank = m_engine->CreateObject(obj.get());
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_FIX);
|
||||
obj->SetObjectRank(0, rank);
|
||||
m_oldModelManager->AddModelReference("tree5", false, rank, obj->GetTeam());
|
||||
|
@ -899,7 +899,7 @@ CObjectUPtr CObjectFactory::CreateMushroom(const ObjectCreateParams& params)
|
|||
|
||||
if ( type == OBJECT_MUSHROOM1 )
|
||||
{
|
||||
int rank = m_engine->CreateObject();
|
||||
int rank = m_engine->CreateObject(obj.get());
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_FIX);
|
||||
obj->SetObjectRank(0, rank);
|
||||
m_oldModelManager->AddModelReference("mush1", false, rank, obj->GetTeam());
|
||||
|
@ -915,7 +915,7 @@ CObjectUPtr CObjectFactory::CreateMushroom(const ObjectCreateParams& params)
|
|||
|
||||
if ( type == OBJECT_MUSHROOM2 )
|
||||
{
|
||||
int rank = m_engine->CreateObject();
|
||||
int rank = m_engine->CreateObject(obj.get());
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_FIX);
|
||||
obj->SetObjectRank(0, rank);
|
||||
m_oldModelManager->AddModelReference("mush2", false, rank, obj->GetTeam());
|
||||
|
@ -962,7 +962,7 @@ CObjectUPtr CObjectFactory::CreateTeen(const ObjectCreateParams& params)
|
|||
|
||||
if ( type == OBJECT_TEEN0 ) // orange pencil lg=10
|
||||
{
|
||||
int rank = m_engine->CreateObject();
|
||||
int rank = m_engine->CreateObject(obj.get());
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_FIX);
|
||||
obj->SetObjectRank(0, rank);
|
||||
m_oldModelManager->AddModelReference("teen0", false, rank);
|
||||
|
@ -980,7 +980,7 @@ CObjectUPtr CObjectFactory::CreateTeen(const ObjectCreateParams& params)
|
|||
|
||||
if ( type == OBJECT_TEEN1 ) // blue pencil lg=14
|
||||
{
|
||||
int rank = m_engine->CreateObject();
|
||||
int rank = m_engine->CreateObject(obj.get());
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_FIX);
|
||||
obj->SetObjectRank(0, rank);
|
||||
m_oldModelManager->AddModelReference("teen1", false, rank);
|
||||
|
@ -1000,7 +1000,7 @@ CObjectUPtr CObjectFactory::CreateTeen(const ObjectCreateParams& params)
|
|||
|
||||
if ( type == OBJECT_TEEN2 ) // red pencil lg=16
|
||||
{
|
||||
int rank = m_engine->CreateObject();
|
||||
int rank = m_engine->CreateObject(obj.get());
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_FIX);
|
||||
obj->SetObjectRank(0, rank);
|
||||
m_oldModelManager->AddModelReference("teen2", false, rank);
|
||||
|
@ -1020,7 +1020,7 @@ CObjectUPtr CObjectFactory::CreateTeen(const ObjectCreateParams& params)
|
|||
|
||||
if ( type == OBJECT_TEEN3 ) // jar with pencils
|
||||
{
|
||||
int rank = m_engine->CreateObject();
|
||||
int rank = m_engine->CreateObject(obj.get());
|
||||
//? m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_FIX);
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_METAL);
|
||||
obj->SetObjectRank(0, rank);
|
||||
|
@ -1035,7 +1035,7 @@ CObjectUPtr CObjectFactory::CreateTeen(const ObjectCreateParams& params)
|
|||
|
||||
if ( type == OBJECT_TEEN4 ) // scissors
|
||||
{
|
||||
int rank = m_engine->CreateObject();
|
||||
int rank = m_engine->CreateObject(obj.get());
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_FIX);
|
||||
obj->SetObjectRank(0, rank);
|
||||
m_oldModelManager->AddModelReference("teen4", false, rank);
|
||||
|
@ -1055,7 +1055,7 @@ CObjectUPtr CObjectFactory::CreateTeen(const ObjectCreateParams& params)
|
|||
|
||||
if ( type == OBJECT_TEEN5 ) // CD
|
||||
{
|
||||
int rank = m_engine->CreateObject();
|
||||
int rank = m_engine->CreateObject(obj.get());
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_FIX);
|
||||
obj->SetObjectRank(0, rank);
|
||||
m_oldModelManager->AddModelReference("teen5", false, rank);
|
||||
|
@ -1070,7 +1070,7 @@ CObjectUPtr CObjectFactory::CreateTeen(const ObjectCreateParams& params)
|
|||
|
||||
if ( type == OBJECT_TEEN6 ) // book 1
|
||||
{
|
||||
int rank = m_engine->CreateObject();
|
||||
int rank = m_engine->CreateObject(obj.get());
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_FIX);
|
||||
obj->SetObjectRank(0, rank);
|
||||
m_oldModelManager->AddModelReference("teen6", false, rank);
|
||||
|
@ -1089,7 +1089,7 @@ CObjectUPtr CObjectFactory::CreateTeen(const ObjectCreateParams& params)
|
|||
|
||||
if ( type == OBJECT_TEEN7 ) // book 2
|
||||
{
|
||||
int rank = m_engine->CreateObject();
|
||||
int rank = m_engine->CreateObject(obj.get());
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_FIX);
|
||||
obj->SetObjectRank(0, rank);
|
||||
m_oldModelManager->AddModelReference("teen7", false, rank);
|
||||
|
@ -1108,7 +1108,7 @@ CObjectUPtr CObjectFactory::CreateTeen(const ObjectCreateParams& params)
|
|||
|
||||
if ( type == OBJECT_TEEN8 ) // a stack of books 1
|
||||
{
|
||||
int rank = m_engine->CreateObject();
|
||||
int rank = m_engine->CreateObject(obj.get());
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_FIX);
|
||||
obj->SetObjectRank(0, rank);
|
||||
m_oldModelManager->AddModelReference("teen8", false, rank);
|
||||
|
@ -1128,7 +1128,7 @@ CObjectUPtr CObjectFactory::CreateTeen(const ObjectCreateParams& params)
|
|||
|
||||
if ( type == OBJECT_TEEN9 ) // a stack of books 2
|
||||
{
|
||||
int rank = m_engine->CreateObject();
|
||||
int rank = m_engine->CreateObject(obj.get());
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_FIX);
|
||||
obj->SetObjectRank(0, rank);
|
||||
m_oldModelManager->AddModelReference("teen9", false, rank);
|
||||
|
@ -1148,7 +1148,7 @@ CObjectUPtr CObjectFactory::CreateTeen(const ObjectCreateParams& params)
|
|||
|
||||
if ( type == OBJECT_TEEN10 ) // bookcase
|
||||
{
|
||||
int rank = m_engine->CreateObject();
|
||||
int rank = m_engine->CreateObject(obj.get());
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_FIX);
|
||||
obj->SetObjectRank(0, rank);
|
||||
m_oldModelManager->AddModelReference("teen10", false, rank);
|
||||
|
@ -1172,7 +1172,7 @@ CObjectUPtr CObjectFactory::CreateTeen(const ObjectCreateParams& params)
|
|||
|
||||
if ( type == OBJECT_TEEN11 ) // lamp
|
||||
{
|
||||
int rank = m_engine->CreateObject();
|
||||
int rank = m_engine->CreateObject(obj.get());
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_FIX);
|
||||
obj->SetObjectRank(0, rank);
|
||||
m_oldModelManager->AddModelReference("teen11", false, rank);
|
||||
|
@ -1195,7 +1195,7 @@ CObjectUPtr CObjectFactory::CreateTeen(const ObjectCreateParams& params)
|
|||
|
||||
if ( type == OBJECT_TEEN12 ) // coke
|
||||
{
|
||||
int rank = m_engine->CreateObject();
|
||||
int rank = m_engine->CreateObject(obj.get());
|
||||
//? m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_FIX);
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_METAL);
|
||||
obj->SetObjectRank(0, rank);
|
||||
|
@ -1210,7 +1210,7 @@ CObjectUPtr CObjectFactory::CreateTeen(const ObjectCreateParams& params)
|
|||
|
||||
if ( type == OBJECT_TEEN13 ) // cardboard farm
|
||||
{
|
||||
int rank = m_engine->CreateObject();
|
||||
int rank = m_engine->CreateObject(obj.get());
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_FIX);
|
||||
obj->SetObjectRank(0, rank);
|
||||
m_oldModelManager->AddModelReference("teen13", false, rank);
|
||||
|
@ -1233,7 +1233,7 @@ CObjectUPtr CObjectFactory::CreateTeen(const ObjectCreateParams& params)
|
|||
|
||||
if ( type == OBJECT_TEEN14 ) // open box
|
||||
{
|
||||
int rank = m_engine->CreateObject();
|
||||
int rank = m_engine->CreateObject(obj.get());
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_FIX);
|
||||
obj->SetObjectRank(0, rank);
|
||||
m_oldModelManager->AddModelReference("teen14", false, rank);
|
||||
|
@ -1256,7 +1256,7 @@ CObjectUPtr CObjectFactory::CreateTeen(const ObjectCreateParams& params)
|
|||
|
||||
if ( type == OBJECT_TEEN15 ) // stack of cartons
|
||||
{
|
||||
int rank = m_engine->CreateObject();
|
||||
int rank = m_engine->CreateObject(obj.get());
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_FIX);
|
||||
obj->SetObjectRank(0, rank);
|
||||
m_oldModelManager->AddModelReference("teen15", false, rank);
|
||||
|
@ -1279,7 +1279,7 @@ CObjectUPtr CObjectFactory::CreateTeen(const ObjectCreateParams& params)
|
|||
|
||||
if ( type == OBJECT_TEEN16 ) // watering can
|
||||
{
|
||||
int rank = m_engine->CreateObject();
|
||||
int rank = m_engine->CreateObject(obj.get());
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_FIX);
|
||||
obj->SetObjectRank(0, rank);
|
||||
m_oldModelManager->AddModelReference("teen16", false, rank);
|
||||
|
@ -1295,7 +1295,7 @@ CObjectUPtr CObjectFactory::CreateTeen(const ObjectCreateParams& params)
|
|||
|
||||
if ( type == OBJECT_TEEN17 ) // wheel |
|
||||
{
|
||||
int rank = m_engine->CreateObject();
|
||||
int rank = m_engine->CreateObject(obj.get());
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_FIX);
|
||||
obj->SetObjectRank(0, rank);
|
||||
m_oldModelManager->AddModelReference("teen17", false, rank);
|
||||
|
@ -1309,7 +1309,7 @@ CObjectUPtr CObjectFactory::CreateTeen(const ObjectCreateParams& params)
|
|||
|
||||
if ( type == OBJECT_TEEN18 ) // wheel /
|
||||
{
|
||||
int rank = m_engine->CreateObject();
|
||||
int rank = m_engine->CreateObject(obj.get());
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_FIX);
|
||||
obj->SetObjectRank(0, rank);
|
||||
m_oldModelManager->AddModelReference("teen18", false, rank);
|
||||
|
@ -1323,7 +1323,7 @@ CObjectUPtr CObjectFactory::CreateTeen(const ObjectCreateParams& params)
|
|||
|
||||
if ( type == OBJECT_TEEN19 ) // wheel =
|
||||
{
|
||||
int rank = m_engine->CreateObject();
|
||||
int rank = m_engine->CreateObject(obj.get());
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_FIX);
|
||||
obj->SetObjectRank(0, rank);
|
||||
m_oldModelManager->AddModelReference("teen19", false, rank);
|
||||
|
@ -1337,7 +1337,7 @@ CObjectUPtr CObjectFactory::CreateTeen(const ObjectCreateParams& params)
|
|||
|
||||
if ( type == OBJECT_TEEN20 ) // wall with shelf
|
||||
{
|
||||
int rank = m_engine->CreateObject();
|
||||
int rank = m_engine->CreateObject(obj.get());
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_FIX);
|
||||
obj->SetObjectRank(0, rank);
|
||||
m_oldModelManager->AddModelReference("teen20", false, rank);
|
||||
|
@ -1356,7 +1356,7 @@ CObjectUPtr CObjectFactory::CreateTeen(const ObjectCreateParams& params)
|
|||
|
||||
if ( type == OBJECT_TEEN21 ) // wall with window
|
||||
{
|
||||
int rank = m_engine->CreateObject();
|
||||
int rank = m_engine->CreateObject(obj.get());
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_FIX);
|
||||
obj->SetObjectRank(0, rank);
|
||||
m_oldModelManager->AddModelReference("teen21", false, rank);
|
||||
|
@ -1366,7 +1366,7 @@ CObjectUPtr CObjectFactory::CreateTeen(const ObjectCreateParams& params)
|
|||
|
||||
if ( type == OBJECT_TEEN22 ) // wall with door and shelf
|
||||
{
|
||||
int rank = m_engine->CreateObject();
|
||||
int rank = m_engine->CreateObject(obj.get());
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_FIX);
|
||||
obj->SetObjectRank(0, rank);
|
||||
m_oldModelManager->AddModelReference("teen22", false, rank);
|
||||
|
@ -1381,7 +1381,7 @@ CObjectUPtr CObjectFactory::CreateTeen(const ObjectCreateParams& params)
|
|||
|
||||
if ( type == OBJECT_TEEN23 ) // skateboard on wheels
|
||||
{
|
||||
int rank = m_engine->CreateObject();
|
||||
int rank = m_engine->CreateObject(obj.get());
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_FIX);
|
||||
obj->SetObjectRank(0, rank);
|
||||
m_oldModelManager->AddModelReference("teen23", false, rank);
|
||||
|
@ -1406,7 +1406,7 @@ CObjectUPtr CObjectFactory::CreateTeen(const ObjectCreateParams& params)
|
|||
|
||||
if ( type == OBJECT_TEEN24 ) // skate /
|
||||
{
|
||||
int rank = m_engine->CreateObject();
|
||||
int rank = m_engine->CreateObject(obj.get());
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_FIX);
|
||||
obj->SetObjectRank(0, rank);
|
||||
m_oldModelManager->AddModelReference("teen24", false, rank);
|
||||
|
@ -1420,7 +1420,7 @@ CObjectUPtr CObjectFactory::CreateTeen(const ObjectCreateParams& params)
|
|||
|
||||
if ( type == OBJECT_TEEN25 ) // skate /
|
||||
{
|
||||
int rank = m_engine->CreateObject();
|
||||
int rank = m_engine->CreateObject(obj.get());
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_FIX);
|
||||
obj->SetObjectRank(0, rank);
|
||||
m_oldModelManager->AddModelReference("teen25", false, rank);
|
||||
|
@ -1434,7 +1434,7 @@ CObjectUPtr CObjectFactory::CreateTeen(const ObjectCreateParams& params)
|
|||
|
||||
if ( type == OBJECT_TEEN26 ) // ceiling lamp
|
||||
{
|
||||
int rank = m_engine->CreateObject();
|
||||
int rank = m_engine->CreateObject(obj.get());
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_FIX);
|
||||
obj->SetObjectRank(0, rank);
|
||||
m_oldModelManager->AddModelReference("teen26", false, rank);
|
||||
|
@ -1457,7 +1457,7 @@ CObjectUPtr CObjectFactory::CreateTeen(const ObjectCreateParams& params)
|
|||
|
||||
if ( type == OBJECT_TEEN27 ) // large plant?
|
||||
{
|
||||
int rank = m_engine->CreateObject();
|
||||
int rank = m_engine->CreateObject(obj.get());
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_FIX);
|
||||
obj->SetObjectRank(0, rank);
|
||||
m_oldModelManager->AddModelReference("teen27", false, rank);
|
||||
|
@ -1470,7 +1470,7 @@ CObjectUPtr CObjectFactory::CreateTeen(const ObjectCreateParams& params)
|
|||
|
||||
if ( type == OBJECT_TEEN28 ) // bottle?
|
||||
{
|
||||
int rank = m_engine->CreateObject();
|
||||
int rank = m_engine->CreateObject(obj.get());
|
||||
//? m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_FIX);
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_METAL);
|
||||
obj->SetObjectRank(0, rank);
|
||||
|
@ -1484,7 +1484,7 @@ CObjectUPtr CObjectFactory::CreateTeen(const ObjectCreateParams& params)
|
|||
|
||||
if ( type == OBJECT_TEEN29 ) // bridge?
|
||||
{
|
||||
int rank = m_engine->CreateObject();
|
||||
int rank = m_engine->CreateObject(obj.get());
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_FIX);
|
||||
obj->SetObjectRank(0, rank);
|
||||
m_oldModelManager->AddModelReference("teen29", false, rank);
|
||||
|
@ -1495,7 +1495,7 @@ CObjectUPtr CObjectFactory::CreateTeen(const ObjectCreateParams& params)
|
|||
|
||||
if ( type == OBJECT_TEEN30 ) // jump?
|
||||
{
|
||||
int rank = m_engine->CreateObject();
|
||||
int rank = m_engine->CreateObject(obj.get());
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_FIX);
|
||||
obj->SetObjectRank(0, rank);
|
||||
m_oldModelManager->AddModelReference("teen30", false, rank);
|
||||
|
@ -1509,7 +1509,7 @@ CObjectUPtr CObjectFactory::CreateTeen(const ObjectCreateParams& params)
|
|||
|
||||
if ( type == OBJECT_TEEN31 ) // basket?
|
||||
{
|
||||
int rank = m_engine->CreateObject();
|
||||
int rank = m_engine->CreateObject(obj.get());
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_FIX);
|
||||
obj->SetObjectRank(0, rank);
|
||||
m_oldModelManager->AddModelReference("teen31", false, rank);
|
||||
|
@ -1526,7 +1526,7 @@ CObjectUPtr CObjectFactory::CreateTeen(const ObjectCreateParams& params)
|
|||
|
||||
if ( type == OBJECT_TEEN32 ) // chair?
|
||||
{
|
||||
int rank = m_engine->CreateObject();
|
||||
int rank = m_engine->CreateObject(obj.get());
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_FIX);
|
||||
obj->SetObjectRank(0, rank);
|
||||
m_oldModelManager->AddModelReference("teen32", false, rank);
|
||||
|
@ -1543,7 +1543,7 @@ CObjectUPtr CObjectFactory::CreateTeen(const ObjectCreateParams& params)
|
|||
|
||||
if ( type == OBJECT_TEEN33 ) // panel?
|
||||
{
|
||||
int rank = m_engine->CreateObject();
|
||||
int rank = m_engine->CreateObject(obj.get());
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_FIX);
|
||||
obj->SetObjectRank(0, rank);
|
||||
m_oldModelManager->AddModelReference("teen33", false, rank);
|
||||
|
@ -1556,7 +1556,7 @@ CObjectUPtr CObjectFactory::CreateTeen(const ObjectCreateParams& params)
|
|||
|
||||
if ( type == OBJECT_TEEN34 ) // stone?
|
||||
{
|
||||
int rank = m_engine->CreateObject();
|
||||
int rank = m_engine->CreateObject(obj.get());
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_FIX);
|
||||
obj->SetObjectRank(0, rank);
|
||||
m_oldModelManager->AddModelReference("teen34", false, rank);
|
||||
|
@ -1569,7 +1569,7 @@ CObjectUPtr CObjectFactory::CreateTeen(const ObjectCreateParams& params)
|
|||
|
||||
if ( type == OBJECT_TEEN35 ) // pipe?
|
||||
{
|
||||
int rank = m_engine->CreateObject();
|
||||
int rank = m_engine->CreateObject(obj.get());
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_FIX);
|
||||
obj->SetObjectRank(0, rank);
|
||||
m_oldModelManager->AddModelReference("teen35", false, rank);
|
||||
|
@ -1586,7 +1586,7 @@ CObjectUPtr CObjectFactory::CreateTeen(const ObjectCreateParams& params)
|
|||
|
||||
if ( type == OBJECT_TEEN36 ) // trunk?
|
||||
{
|
||||
int rank = m_engine->CreateObject();
|
||||
int rank = m_engine->CreateObject(obj.get());
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_FIX);
|
||||
obj->SetObjectRank(0, rank);
|
||||
m_oldModelManager->AddModelReference("teen36", false, rank);
|
||||
|
@ -1597,7 +1597,7 @@ CObjectUPtr CObjectFactory::CreateTeen(const ObjectCreateParams& params)
|
|||
|
||||
if ( type == OBJECT_TEEN37 ) // boat?
|
||||
{
|
||||
int rank = m_engine->CreateObject();
|
||||
int rank = m_engine->CreateObject(obj.get());
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_FIX);
|
||||
obj->SetObjectRank(0, rank);
|
||||
m_oldModelManager->AddModelReference("teen37", false, rank);
|
||||
|
@ -1608,21 +1608,21 @@ CObjectUPtr CObjectFactory::CreateTeen(const ObjectCreateParams& params)
|
|||
|
||||
if ( type == OBJECT_TEEN38 ) // fan?
|
||||
{
|
||||
int rank = m_engine->CreateObject();
|
||||
int rank = m_engine->CreateObject(obj.get());
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_FIX);
|
||||
obj->SetObjectRank(0, rank);
|
||||
m_oldModelManager->AddModelReference("teen38a", false, rank);
|
||||
obj->SetPartPosition(0, pos);
|
||||
obj->SetPartRotationY(0, angle);
|
||||
|
||||
rank = m_engine->CreateObject();
|
||||
rank = m_engine->CreateObject(obj.get());
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT);
|
||||
obj->SetObjectRank(1, rank);
|
||||
obj->SetObjectParent(1, 0);
|
||||
m_oldModelManager->AddModelReference("teen38b", false, rank); // engine
|
||||
obj->SetPartPosition(1, glm::vec3(0.0f, 30.0f, 0.0f));
|
||||
|
||||
rank = m_engine->CreateObject();
|
||||
rank = m_engine->CreateObject(obj.get());
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT);
|
||||
obj->SetObjectRank(2, rank);
|
||||
obj->SetObjectParent(2, 1);
|
||||
|
@ -1636,7 +1636,7 @@ CObjectUPtr CObjectFactory::CreateTeen(const ObjectCreateParams& params)
|
|||
|
||||
if ( type == OBJECT_TEEN39 ) // potted plant?
|
||||
{
|
||||
int rank = m_engine->CreateObject();
|
||||
int rank = m_engine->CreateObject(obj.get());
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_FIX);
|
||||
obj->SetObjectRank(0, rank);
|
||||
m_oldModelManager->AddModelReference("teen39", false, rank);
|
||||
|
@ -1650,7 +1650,7 @@ CObjectUPtr CObjectFactory::CreateTeen(const ObjectCreateParams& params)
|
|||
|
||||
if ( type == OBJECT_TEEN40 ) // balloon?
|
||||
{
|
||||
int rank = m_engine->CreateObject();
|
||||
int rank = m_engine->CreateObject(obj.get());
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_FIX);
|
||||
obj->SetObjectRank(0, rank);
|
||||
m_oldModelManager->AddModelReference("teen40", false, rank);
|
||||
|
@ -1664,7 +1664,7 @@ CObjectUPtr CObjectFactory::CreateTeen(const ObjectCreateParams& params)
|
|||
|
||||
if ( type == OBJECT_TEEN41 ) // fence?
|
||||
{
|
||||
int rank = m_engine->CreateObject();
|
||||
int rank = m_engine->CreateObject(obj.get());
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_FIX);
|
||||
obj->SetObjectRank(0, rank);
|
||||
m_oldModelManager->AddModelReference("teen41", false, rank);
|
||||
|
@ -1674,7 +1674,7 @@ CObjectUPtr CObjectFactory::CreateTeen(const ObjectCreateParams& params)
|
|||
|
||||
if ( type == OBJECT_TEEN42 ) // clover?
|
||||
{
|
||||
int rank = m_engine->CreateObject();
|
||||
int rank = m_engine->CreateObject(obj.get());
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_FIX);
|
||||
obj->SetObjectRank(0, rank);
|
||||
m_oldModelManager->AddModelReference("teen42", false, rank);
|
||||
|
@ -1687,7 +1687,7 @@ CObjectUPtr CObjectFactory::CreateTeen(const ObjectCreateParams& params)
|
|||
|
||||
if ( type == OBJECT_TEEN43 ) // clover?
|
||||
{
|
||||
int rank = m_engine->CreateObject();
|
||||
int rank = m_engine->CreateObject(obj.get());
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_FIX);
|
||||
obj->SetObjectRank(0, rank);
|
||||
m_oldModelManager->AddModelReference("teen43", false, rank);
|
||||
|
@ -1700,7 +1700,7 @@ CObjectUPtr CObjectFactory::CreateTeen(const ObjectCreateParams& params)
|
|||
|
||||
if ( type == OBJECT_TEEN44 ) // car?
|
||||
{
|
||||
int rank = m_engine->CreateObject();
|
||||
int rank = m_engine->CreateObject(obj.get());
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_FIX);
|
||||
obj->SetObjectRank(0, rank);
|
||||
m_oldModelManager->AddModelReference("teen44", false, rank);
|
||||
|
@ -1746,7 +1746,7 @@ CObjectUPtr CObjectFactory::CreateQuartz(const ObjectCreateParams& params)
|
|||
|
||||
if ( type == OBJECT_QUARTZ0 )
|
||||
{
|
||||
int rank = m_engine->CreateObject();
|
||||
int rank = m_engine->CreateObject(obj.get());
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_QUARTZ);
|
||||
obj->SetObjectRank(0, rank);
|
||||
m_oldModelManager->AddModelReference("quartz0", false, rank, obj->GetTeam());
|
||||
|
@ -1760,7 +1760,7 @@ CObjectUPtr CObjectFactory::CreateQuartz(const ObjectCreateParams& params)
|
|||
}
|
||||
if ( type == OBJECT_QUARTZ1 )
|
||||
{
|
||||
int rank = m_engine->CreateObject();
|
||||
int rank = m_engine->CreateObject(obj.get());
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_QUARTZ);
|
||||
obj->SetObjectRank(0, rank);
|
||||
m_oldModelManager->AddModelReference("quartz1", false, rank, obj->GetTeam());
|
||||
|
@ -1774,7 +1774,7 @@ CObjectUPtr CObjectFactory::CreateQuartz(const ObjectCreateParams& params)
|
|||
}
|
||||
if ( type == OBJECT_QUARTZ2 )
|
||||
{
|
||||
int rank = m_engine->CreateObject();
|
||||
int rank = m_engine->CreateObject(obj.get());
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_QUARTZ);
|
||||
obj->SetObjectRank(0, rank);
|
||||
m_oldModelManager->AddModelReference("quartz2", false, rank, obj->GetTeam());
|
||||
|
@ -1788,7 +1788,7 @@ CObjectUPtr CObjectFactory::CreateQuartz(const ObjectCreateParams& params)
|
|||
}
|
||||
if ( type == OBJECT_QUARTZ3 )
|
||||
{
|
||||
int rank = m_engine->CreateObject();
|
||||
int rank = m_engine->CreateObject(obj.get());
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_QUARTZ);
|
||||
obj->SetObjectRank(0, rank);
|
||||
m_oldModelManager->AddModelReference("quartz3", false, rank, obj->GetTeam());
|
||||
|
@ -1852,7 +1852,7 @@ CObjectUPtr CObjectFactory::CreateRoot(const ObjectCreateParams& params)
|
|||
|
||||
if ( type == OBJECT_ROOT0 )
|
||||
{
|
||||
int rank = m_engine->CreateObject();
|
||||
int rank = m_engine->CreateObject(obj.get());
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_FIX);
|
||||
obj->SetObjectRank(0, rank);
|
||||
m_oldModelManager->AddModelReference("root0", false, rank, obj->GetTeam());
|
||||
|
@ -1873,7 +1873,7 @@ CObjectUPtr CObjectFactory::CreateRoot(const ObjectCreateParams& params)
|
|||
}
|
||||
if ( type == OBJECT_ROOT1 )
|
||||
{
|
||||
int rank = m_engine->CreateObject();
|
||||
int rank = m_engine->CreateObject(obj.get());
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_FIX);
|
||||
obj->SetObjectRank(0, rank);
|
||||
m_oldModelManager->AddModelReference("root1", false, rank, obj->GetTeam());
|
||||
|
@ -1894,7 +1894,7 @@ CObjectUPtr CObjectFactory::CreateRoot(const ObjectCreateParams& params)
|
|||
}
|
||||
if ( type == OBJECT_ROOT2 )
|
||||
{
|
||||
int rank = m_engine->CreateObject();
|
||||
int rank = m_engine->CreateObject(obj.get());
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_FIX);
|
||||
obj->SetObjectRank(0, rank);
|
||||
m_oldModelManager->AddModelReference("root2", false, rank, obj->GetTeam());
|
||||
|
@ -1914,7 +1914,7 @@ CObjectUPtr CObjectFactory::CreateRoot(const ObjectCreateParams& params)
|
|||
}
|
||||
if ( type == OBJECT_ROOT3 )
|
||||
{
|
||||
int rank = m_engine->CreateObject();
|
||||
int rank = m_engine->CreateObject(obj.get());
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_FIX);
|
||||
obj->SetObjectRank(0, rank);
|
||||
m_oldModelManager->AddModelReference("root3", false, rank, obj->GetTeam());
|
||||
|
@ -1936,7 +1936,7 @@ CObjectUPtr CObjectFactory::CreateRoot(const ObjectCreateParams& params)
|
|||
}
|
||||
if ( type == OBJECT_ROOT4 )
|
||||
{
|
||||
int rank = m_engine->CreateObject();
|
||||
int rank = m_engine->CreateObject(obj.get());
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_FIX);
|
||||
obj->SetObjectRank(0, rank);
|
||||
m_oldModelManager->AddModelReference("root4", false, rank, obj->GetTeam());
|
||||
|
@ -1960,7 +1960,7 @@ CObjectUPtr CObjectFactory::CreateRoot(const ObjectCreateParams& params)
|
|||
}
|
||||
if ( type == OBJECT_ROOT5 ) // gravity root ?
|
||||
{
|
||||
int rank = m_engine->CreateObject();
|
||||
int rank = m_engine->CreateObject(obj.get());
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_FIX);
|
||||
obj->SetObjectRank(0, rank);
|
||||
m_oldModelManager->AddModelReference("root4", false, rank, obj->GetTeam());
|
||||
|
@ -1968,7 +1968,7 @@ CObjectUPtr CObjectFactory::CreateRoot(const ObjectCreateParams& params)
|
|||
obj->SetRotationY(angle);
|
||||
obj->SetScale(2.0f);
|
||||
|
||||
rank = m_engine->CreateObject();
|
||||
rank = m_engine->CreateObject(obj.get());
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT);
|
||||
obj->SetObjectRank(1, rank);
|
||||
obj->SetObjectParent(1, 0);
|
||||
|
@ -2020,7 +2020,7 @@ CObjectUPtr CObjectFactory::CreateHome(const ObjectCreateParams& params)
|
|||
|
||||
if ( type == OBJECT_HOME1 )
|
||||
{
|
||||
int rank = m_engine->CreateObject();
|
||||
int rank = m_engine->CreateObject(obj.get());
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_FIX);
|
||||
obj->SetObjectRank(0, rank);
|
||||
m_oldModelManager->AddModelReference("home1", false, rank, obj->GetTeam());
|
||||
|
@ -2059,7 +2059,7 @@ CObjectUPtr CObjectFactory::CreateRuin(const ObjectCreateParams& params)
|
|||
obj->SetType(type);
|
||||
obj->SetTeam(params.team);
|
||||
|
||||
int rank = m_engine->CreateObject();
|
||||
int rank = m_engine->CreateObject(obj.get());
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_FIX); // it is a stationary object
|
||||
obj->SetObjectRank(0, rank);
|
||||
|
||||
|
@ -2086,7 +2086,7 @@ CObjectUPtr CObjectFactory::CreateRuin(const ObjectCreateParams& params)
|
|||
if ( type == OBJECT_RUINmobilew1 ) // vehicle had wheels?
|
||||
{
|
||||
// Creates the right-back wheel.
|
||||
rank = m_engine->CreateObject();
|
||||
rank = m_engine->CreateObject(obj.get());
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT);
|
||||
obj->SetObjectRank(6, rank);
|
||||
obj->SetObjectParent(6, 0);
|
||||
|
@ -2097,7 +2097,7 @@ CObjectUPtr CObjectFactory::CreateRuin(const ObjectCreateParams& params)
|
|||
obj->SetPartRotationX(6, -Math::PI/2.0f);
|
||||
|
||||
// Creates the left-back wheel.
|
||||
rank = m_engine->CreateObject();
|
||||
rank = m_engine->CreateObject(obj.get());
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT);
|
||||
obj->SetObjectRank(7, rank);
|
||||
obj->SetObjectParent(7, 0);
|
||||
|
@ -2109,7 +2109,7 @@ CObjectUPtr CObjectFactory::CreateRuin(const ObjectCreateParams& params)
|
|||
obj->SetPartRotationX(7, -0.3f);
|
||||
|
||||
// Creates the right-front wheel.
|
||||
rank = m_engine->CreateObject();
|
||||
rank = m_engine->CreateObject(obj.get());
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT);
|
||||
obj->SetObjectRank(8, rank);
|
||||
obj->SetObjectParent(8, 0);
|
||||
|
@ -2120,7 +2120,7 @@ CObjectUPtr CObjectFactory::CreateRuin(const ObjectCreateParams& params)
|
|||
obj->SetPartRotationY(8, 0.3f);
|
||||
|
||||
// Creates the left-front wheel.
|
||||
rank = m_engine->CreateObject();
|
||||
rank = m_engine->CreateObject(obj.get());
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT);
|
||||
obj->SetObjectRank(9, rank);
|
||||
obj->SetObjectParent(9, 0);
|
||||
|
@ -2140,7 +2140,7 @@ CObjectUPtr CObjectFactory::CreateRuin(const ObjectCreateParams& params)
|
|||
if ( type == OBJECT_RUINmobilew2 ) // vehicle has wheels?
|
||||
{
|
||||
// Creates the left-back wheel.
|
||||
rank = m_engine->CreateObject();
|
||||
rank = m_engine->CreateObject(obj.get());
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT);
|
||||
obj->SetObjectRank(7, rank);
|
||||
obj->SetObjectParent(7, 0);
|
||||
|
@ -2152,7 +2152,7 @@ CObjectUPtr CObjectFactory::CreateRuin(const ObjectCreateParams& params)
|
|||
obj->SetPartRotationX(7, 0.4f);
|
||||
|
||||
// Creates the left-front wheel.
|
||||
rank = m_engine->CreateObject();
|
||||
rank = m_engine->CreateObject(obj.get());
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT);
|
||||
obj->SetObjectRank(9, rank);
|
||||
obj->SetObjectParent(9, 0);
|
||||
|
@ -2172,7 +2172,7 @@ CObjectUPtr CObjectFactory::CreateRuin(const ObjectCreateParams& params)
|
|||
if ( type == OBJECT_RUINmobilet1 ) // vehicle have caterpillars?
|
||||
{
|
||||
// Creates the cannon.
|
||||
rank = m_engine->CreateObject();
|
||||
rank = m_engine->CreateObject(obj.get());
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT);
|
||||
obj->SetObjectRank(1, rank);
|
||||
obj->SetObjectParent(1, 0);
|
||||
|
@ -2477,7 +2477,7 @@ CObjectUPtr CObjectFactory::CreateApollo(const ObjectCreateParams& params)
|
|||
|
||||
if ( type == OBJECT_APOLLO1 ) // LEM ?
|
||||
{
|
||||
int rank = m_engine->CreateObject();
|
||||
int rank = m_engine->CreateObject(obj.get());
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_FIX); // it is a stationary object
|
||||
obj->SetObjectRank(0, rank);
|
||||
m_oldModelManager->AddModelReference("apollol1", false, rank, obj->GetTeam());
|
||||
|
@ -2488,7 +2488,7 @@ CObjectUPtr CObjectFactory::CreateApollo(const ObjectCreateParams& params)
|
|||
|
||||
for (int i=0 ; i<4 ; i++ ) // creates feet
|
||||
{
|
||||
rank = m_engine->CreateObject();
|
||||
rank = m_engine->CreateObject(obj.get());
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT);
|
||||
obj->SetObjectRank(i+1, rank);
|
||||
obj->SetObjectParent(i+1, 0);
|
||||
|
@ -2496,7 +2496,7 @@ CObjectUPtr CObjectFactory::CreateApollo(const ObjectCreateParams& params)
|
|||
obj->SetPartRotationY(i+1, Math::PI/2.0f*i);
|
||||
}
|
||||
|
||||
rank = m_engine->CreateObject();
|
||||
rank = m_engine->CreateObject(obj.get());
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT);
|
||||
obj->SetObjectRank(5, rank);
|
||||
obj->SetObjectParent(5, 0);
|
||||
|
@ -2517,7 +2517,7 @@ CObjectUPtr CObjectFactory::CreateApollo(const ObjectCreateParams& params)
|
|||
|
||||
if ( type == OBJECT_APOLLO3 ) // flag?
|
||||
{
|
||||
int rank = m_engine->CreateObject();
|
||||
int rank = m_engine->CreateObject(obj.get());
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_FIX); // it is a stationary object
|
||||
obj->SetObjectRank(0, rank);
|
||||
m_oldModelManager->AddModelReference("apollof", false, rank, obj->GetTeam());
|
||||
|
@ -2531,7 +2531,7 @@ CObjectUPtr CObjectFactory::CreateApollo(const ObjectCreateParams& params)
|
|||
|
||||
if ( type == OBJECT_APOLLO4 ) // module?
|
||||
{
|
||||
int rank = m_engine->CreateObject();
|
||||
int rank = m_engine->CreateObject(obj.get());
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_FIX); // it is a stationary object
|
||||
obj->SetObjectRank(0, rank);
|
||||
m_oldModelManager->AddModelReference("apollom", false, rank, obj->GetTeam());
|
||||
|
@ -2547,7 +2547,7 @@ CObjectUPtr CObjectFactory::CreateApollo(const ObjectCreateParams& params)
|
|||
|
||||
if ( type == OBJECT_APOLLO5 ) // antenna?
|
||||
{
|
||||
int rank = m_engine->CreateObject();
|
||||
int rank = m_engine->CreateObject(obj.get());
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_FIX); // it is a stationary object
|
||||
obj->SetObjectRank(0, rank);
|
||||
m_oldModelManager->AddModelReference("apolloa", false, rank, obj->GetTeam());
|
||||
|
@ -2555,7 +2555,7 @@ CObjectUPtr CObjectFactory::CreateApollo(const ObjectCreateParams& params)
|
|||
obj->SetRotationY(angle);
|
||||
obj->SetFloorHeight(0.0f);
|
||||
|
||||
rank = m_engine->CreateObject();
|
||||
rank = m_engine->CreateObject(obj.get());
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT);
|
||||
obj->SetObjectRank(1, rank);
|
||||
obj->SetObjectParent(1, 0);
|
||||
|
|
|
@ -202,7 +202,7 @@ public:
|
|||
float angle = 0.0f,
|
||||
float focus = Math::PI*2.0f,
|
||||
float minDist = 0.0f,
|
||||
float maxDist = 1000.0f,
|
||||
float maxDist = 10000000.0f,
|
||||
bool furthest = false,
|
||||
RadarFilter filter = FILTER_NONE,
|
||||
bool cbotTypes = false);
|
||||
|
@ -211,7 +211,7 @@ public:
|
|||
float angle = 0.0f,
|
||||
float focus = Math::PI*2.0f,
|
||||
float minDist = 0.0f,
|
||||
float maxDist = 1000.0f,
|
||||
float maxDist = 10000000.0f,
|
||||
bool furthest = false,
|
||||
RadarFilter filter = FILTER_NONE,
|
||||
bool cbotTypes = false);
|
||||
|
@ -222,7 +222,7 @@ public:
|
|||
float angle = 0.0f,
|
||||
float focus = Math::PI*2.0f,
|
||||
float minDist = 0.0f,
|
||||
float maxDist = 1000.0f,
|
||||
float maxDist = 10000000.0f,
|
||||
bool furthest = false,
|
||||
RadarFilter filter = FILTER_NONE,
|
||||
bool cbotTypes = false);
|
||||
|
@ -233,7 +233,7 @@ public:
|
|||
float angle = 0.0f,
|
||||
float focus = Math::PI*2.0f,
|
||||
float minDist = 0.0f,
|
||||
float maxDist = 1000.0f,
|
||||
float maxDist = 10000000.0f,
|
||||
bool furthest = false,
|
||||
RadarFilter filter = FILTER_NONE,
|
||||
bool cbotTypes = false);
|
||||
|
@ -245,7 +245,7 @@ public:
|
|||
float angle = 0.0f,
|
||||
float focus = Math::PI*2.0f,
|
||||
float minDist = 0.0f,
|
||||
float maxDist = 1000.0f,
|
||||
float maxDist = 10000000.0f,
|
||||
bool furthest = false,
|
||||
RadarFilter filter = FILTER_NONE,
|
||||
bool cbotTypes = false);
|
||||
|
@ -254,7 +254,7 @@ public:
|
|||
float angle = 0.0f,
|
||||
float focus = Math::PI*2.0f,
|
||||
float minDist = 0.0f,
|
||||
float maxDist = 1000.0f,
|
||||
float maxDist = 10000000.0f,
|
||||
bool furthest = false,
|
||||
RadarFilter filter = FILTER_NONE,
|
||||
bool cbotTypes = false);
|
||||
|
@ -265,7 +265,7 @@ public:
|
|||
float angle = 0.0f,
|
||||
float focus = Math::PI*2.0f,
|
||||
float minDist = 0.0f,
|
||||
float maxDist = 1000.0f,
|
||||
float maxDist = 10000000.0f,
|
||||
bool furthest = false,
|
||||
RadarFilter filter = FILTER_NONE,
|
||||
bool cbotTypes = false);
|
||||
|
@ -276,7 +276,7 @@ public:
|
|||
float angle = 0.0f,
|
||||
float focus = Math::PI*2.0f,
|
||||
float minDist = 0.0f,
|
||||
float maxDist = 1000.0f,
|
||||
float maxDist = 10000000.0f,
|
||||
bool furthest = false,
|
||||
RadarFilter filter = FILTER_NONE,
|
||||
bool cbotTypes = false);
|
||||
|
@ -285,21 +285,21 @@ public:
|
|||
//@{
|
||||
CObject* FindNearest(CObject* pThis,
|
||||
ObjectType type = OBJECT_NULL,
|
||||
float maxDist = 1000.0f,
|
||||
float maxDist = 10000000.0f,
|
||||
bool cbotTypes = false);
|
||||
CObject* FindNearest(CObject* pThis,
|
||||
std::vector<ObjectType> type = std::vector<ObjectType>(),
|
||||
float maxDist = 1000.0f,
|
||||
float maxDist = 10000000.0f,
|
||||
bool cbotTypes = false);
|
||||
CObject* FindNearest(CObject* pThis,
|
||||
glm::vec3 thisPosition,
|
||||
ObjectType type = OBJECT_NULL,
|
||||
float maxDist = 1000.0f,
|
||||
float maxDist = 10000000.0f,
|
||||
bool cbotTypes = false);
|
||||
CObject* FindNearest(CObject* pThis,
|
||||
glm::vec3 thisPosition,
|
||||
std::vector<ObjectType> type = std::vector<ObjectType>(),
|
||||
float maxDist = 1000.0f,
|
||||
float maxDist = 10000000.0f,
|
||||
bool cbotTypes = false);
|
||||
//@}
|
||||
|
||||
|
|
|
@ -286,8 +286,8 @@ void COldObject::DeleteObject(bool bAll)
|
|||
if (m_power->Implements(ObjectInterfaceType::Old))
|
||||
{
|
||||
dynamic_cast<COldObject&>(*m_power).SetTransporter(nullptr);
|
||||
dynamic_cast<COldObject&>(*m_power).DeleteObject(bAll);
|
||||
}
|
||||
CObjectManager::GetInstance().DeleteObject(m_power);
|
||||
m_power = nullptr;
|
||||
}
|
||||
if (m_cargo != nullptr)
|
||||
|
@ -295,8 +295,8 @@ void COldObject::DeleteObject(bool bAll)
|
|||
if (m_cargo->Implements(ObjectInterfaceType::Old))
|
||||
{
|
||||
dynamic_cast<COldObject&>(*m_cargo).SetTransporter(nullptr);
|
||||
dynamic_cast<COldObject&>(*m_cargo).DeleteObject(bAll);
|
||||
}
|
||||
CObjectManager::GetInstance().DeleteObject(m_cargo);
|
||||
m_cargo = nullptr;
|
||||
}
|
||||
}
|
||||
|
@ -1855,21 +1855,6 @@ glm::mat4 COldObject::GetWorldMatrix(int part)
|
|||
}
|
||||
|
||||
|
||||
// Indicates whether the object should be drawn over the interface.
|
||||
|
||||
void COldObject::SetDrawFront(bool bDraw)
|
||||
{
|
||||
int i;
|
||||
|
||||
for ( i=0 ; i<OBJECTMAXPART ; i++ )
|
||||
{
|
||||
if ( m_objectPart[i].bUsed )
|
||||
{
|
||||
m_engine->SetObjectDrawFront(m_objectPart[i].object, bDraw);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Creates shade under a vehicle as a negative light.
|
||||
|
||||
bool COldObject::CreateShadowLight(float height, Gfx::Color color)
|
||||
|
@ -2662,27 +2647,6 @@ float COldObject::GetReactorRange()
|
|||
}
|
||||
|
||||
|
||||
// Management of transparency of the object.
|
||||
|
||||
void COldObject::SetGhostMode(bool enabled)
|
||||
{
|
||||
int i;
|
||||
|
||||
for ( i=0 ; i<m_totalPart ; i++ )
|
||||
{
|
||||
if ( m_objectPart[i].bUsed )
|
||||
{
|
||||
if ( m_type == OBJECT_BASE )
|
||||
{
|
||||
if ( i != 9 ) continue; // no central pillar?
|
||||
}
|
||||
|
||||
m_engine->SetObjectGhostMode(m_objectPart[i].object, enabled);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// Pushes an object.
|
||||
|
||||
bool COldObject::JostleObject(float force)
|
||||
|
|
|
@ -130,8 +130,6 @@ public:
|
|||
void Write(CLevelParserLine* line) override;
|
||||
void Read(CLevelParserLine* line) override;
|
||||
|
||||
void SetDrawFront(bool bDraw) override;
|
||||
|
||||
int GetShadowLight();
|
||||
|
||||
void SetFloorHeight(float height);
|
||||
|
@ -206,8 +204,6 @@ public:
|
|||
void SetReactorRange(float reactorRange) override;
|
||||
float GetReactorRange() override;
|
||||
|
||||
void SetGhostMode(bool enabled) override;
|
||||
|
||||
Math::Sphere GetJostlingSphere() const override;
|
||||
bool JostleObject(float force) override;
|
||||
|
||||
|
|
|
@ -46,11 +46,6 @@ int COldObjectInterface::GetOption()
|
|||
throw std::logic_error("GetOption: not implemented!");
|
||||
}
|
||||
|
||||
void COldObjectInterface::SetDrawFront(bool bDraw)
|
||||
{
|
||||
throw std::logic_error("SetDrawFront: not implemented!");
|
||||
}
|
||||
|
||||
|
||||
void COldObjectInterface::FloorAdjust()
|
||||
{
|
||||
|
|
|
@ -53,8 +53,6 @@ public:
|
|||
|
||||
virtual int GetOption();
|
||||
|
||||
virtual void SetDrawFront(bool bDraw);
|
||||
|
||||
|
||||
virtual void FloorAdjust();
|
||||
|
||||
|
|
|
@ -68,7 +68,7 @@ std::unique_ptr<CBaseBuilding> CBaseBuilding::Create(
|
|||
|
||||
float height = params.height;
|
||||
|
||||
int rank = engine->CreateObject();
|
||||
int rank = engine->CreateObject(obj.get());
|
||||
engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_FIX); // it is a stationary object
|
||||
obj->SetObjectRank(0, rank);
|
||||
|
||||
|
@ -79,14 +79,14 @@ std::unique_ptr<CBaseBuilding> CBaseBuilding::Create(
|
|||
obj->SetRotationY(params.angle);
|
||||
obj->SetFloorHeight(0.0f);
|
||||
|
||||
rank = engine->CreateObject();
|
||||
rank = engine->CreateObject(obj.get());
|
||||
engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT);
|
||||
obj->SetObjectRank(1, rank);
|
||||
obj->SetObjectParent(1, 0);
|
||||
modelManager->AddModelReference("portico2", false, rank, params.team);
|
||||
obj->SetPartPosition(1, glm::vec3(0.0f, 67.0f, 0.0f));
|
||||
|
||||
rank = engine->CreateObject();
|
||||
rank = engine->CreateObject(obj.get());
|
||||
engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT);
|
||||
obj->SetObjectRank(2, rank);
|
||||
obj->SetObjectParent(2, 1);
|
||||
|
@ -94,7 +94,7 @@ std::unique_ptr<CBaseBuilding> CBaseBuilding::Create(
|
|||
obj->SetPartPosition(2, glm::vec3(0.0f, 0.0f, -33.0f));
|
||||
obj->SetPartRotationY(2, 45.0f*Math::PI/180.0f);
|
||||
|
||||
rank = engine->CreateObject();
|
||||
rank = engine->CreateObject(obj.get());
|
||||
engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT);
|
||||
obj->SetObjectRank(3, rank);
|
||||
obj->SetObjectParent(3, 2);
|
||||
|
@ -102,7 +102,7 @@ std::unique_ptr<CBaseBuilding> CBaseBuilding::Create(
|
|||
obj->SetPartPosition(3, glm::vec3(50.0f, 0.0f, 0.0f));
|
||||
obj->SetPartRotationY(3, -60.0f*Math::PI/180.0f);
|
||||
|
||||
rank = engine->CreateObject();
|
||||
rank = engine->CreateObject(obj.get());
|
||||
engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT);
|
||||
obj->SetObjectRank(4, rank);
|
||||
obj->SetObjectParent(4, 3);
|
||||
|
@ -110,7 +110,7 @@ std::unique_ptr<CBaseBuilding> CBaseBuilding::Create(
|
|||
obj->SetPartPosition(4, glm::vec3(35.0f, 0.0f, 0.0f));
|
||||
obj->SetPartRotationY(4, -55.0f*Math::PI/180.0f);
|
||||
|
||||
rank = engine->CreateObject();
|
||||
rank = engine->CreateObject(obj.get());
|
||||
engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT);
|
||||
obj->SetObjectRank(5, rank);
|
||||
obj->SetObjectParent(5, 1);
|
||||
|
@ -118,7 +118,7 @@ std::unique_ptr<CBaseBuilding> CBaseBuilding::Create(
|
|||
obj->SetPartPosition(5, glm::vec3(0.0f, 0.0f, 33.0f));
|
||||
obj->SetPartRotationY(5, -45.0f*Math::PI/180.0f);
|
||||
|
||||
rank = engine->CreateObject();
|
||||
rank = engine->CreateObject(obj.get());
|
||||
engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT);
|
||||
obj->SetObjectRank(6, rank);
|
||||
obj->SetObjectParent(6, 5);
|
||||
|
@ -126,7 +126,7 @@ std::unique_ptr<CBaseBuilding> CBaseBuilding::Create(
|
|||
obj->SetPartPosition(6, glm::vec3(50.0f, 0.0f, 0.0f));
|
||||
obj->SetPartRotationY(6, 60.0f*Math::PI/180.0f);
|
||||
|
||||
rank = engine->CreateObject();
|
||||
rank = engine->CreateObject(obj.get());
|
||||
engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT);
|
||||
obj->SetObjectRank(7, rank);
|
||||
obj->SetObjectParent(7, 6);
|
||||
|
@ -134,7 +134,7 @@ std::unique_ptr<CBaseBuilding> CBaseBuilding::Create(
|
|||
obj->SetPartPosition(7, glm::vec3(35.0f, 0.0f, 0.0f));
|
||||
obj->SetPartRotationY(7, 55.0f*Math::PI/180.0f);
|
||||
|
||||
rank = engine->CreateObject();
|
||||
rank = engine->CreateObject(obj.get());
|
||||
engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT);
|
||||
obj->SetObjectRank(8, rank);
|
||||
obj->SetObjectParent(8, 0);
|
||||
|
@ -143,14 +143,14 @@ std::unique_ptr<CBaseBuilding> CBaseBuilding::Create(
|
|||
obj->SetPartRotationY(8, -Math::PI/2.0f);
|
||||
obj->SetPartScale(8, 2.0f);
|
||||
|
||||
rank = engine->CreateObject();
|
||||
rank = engine->CreateObject(obj.get());
|
||||
engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT);
|
||||
obj->SetObjectRank(9, rank);
|
||||
obj->SetObjectParent(9, 8);
|
||||
modelManager->AddModelReference("portico7", false, rank, params.team);
|
||||
obj->SetPartPosition(9, glm::vec3(0.0f, 4.5f, 1.9f));
|
||||
|
||||
rank = engine->CreateObject();
|
||||
rank = engine->CreateObject(obj.get());
|
||||
engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT);
|
||||
obj->SetObjectRank(10, rank);
|
||||
obj->SetObjectParent(10, 0);
|
||||
|
@ -159,7 +159,7 @@ std::unique_ptr<CBaseBuilding> CBaseBuilding::Create(
|
|||
obj->SetPartRotationY(10, -Math::PI/2.0f);
|
||||
obj->SetPartScale(10, 2.0f);
|
||||
|
||||
rank = engine->CreateObject();
|
||||
rank = engine->CreateObject(obj.get());
|
||||
engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT);
|
||||
obj->SetObjectRank(11, rank);
|
||||
obj->SetObjectParent(11, 10);
|
||||
|
@ -191,7 +191,7 @@ std::unique_ptr<CBaseBuilding> CBaseBuilding::Create(
|
|||
|
||||
for (int i=0 ; i<8 ; i++ )
|
||||
{
|
||||
rank = engine->CreateObject();
|
||||
rank = engine->CreateObject(obj.get());
|
||||
engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT);
|
||||
obj->SetObjectRank(1+i, rank);
|
||||
obj->SetObjectParent(1+i, 0);
|
||||
|
@ -201,14 +201,14 @@ std::unique_ptr<CBaseBuilding> CBaseBuilding::Create(
|
|||
obj->SetPartRotationY(1+i, Math::PI/4.0f*i);
|
||||
obj->SetPartRotationZ(1+i, Math::PI/2.0f);
|
||||
|
||||
rank = engine->CreateObject();
|
||||
rank = engine->CreateObject(obj.get());
|
||||
engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT);
|
||||
obj->SetObjectRank(10+i, rank);
|
||||
obj->SetObjectParent(10+i, 1+i);
|
||||
modelManager->AddModelReference("base4", false, rank, params.team);
|
||||
obj->SetPartPosition(10+i, glm::vec3(23.5f, 0.0f, 7.0f));
|
||||
|
||||
rank = engine->CreateObject();
|
||||
rank = engine->CreateObject(obj.get());
|
||||
engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT);
|
||||
obj->SetObjectRank(18+i, rank);
|
||||
obj->SetObjectParent(18+i, 1+i);
|
||||
|
@ -216,7 +216,7 @@ std::unique_ptr<CBaseBuilding> CBaseBuilding::Create(
|
|||
obj->SetPartPosition(18+i, glm::vec3(23.5f, 0.0f, -7.0f));
|
||||
}
|
||||
|
||||
rank = engine->CreateObject();
|
||||
rank = engine->CreateObject(obj.get());
|
||||
engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT);
|
||||
obj->SetObjectRank(9, rank);
|
||||
obj->SetObjectParent(9, 0);
|
||||
|
@ -254,7 +254,7 @@ std::unique_ptr<CBaseBuilding> CBaseBuilding::Create(
|
|||
obj->SetRotationY(params.angle);
|
||||
obj->SetFloorHeight(0.0f);
|
||||
|
||||
rank = engine->CreateObject();
|
||||
rank = engine->CreateObject(obj.get());
|
||||
engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT);
|
||||
obj->SetObjectRank(1, rank);
|
||||
obj->SetObjectParent(1, 0);
|
||||
|
@ -277,14 +277,14 @@ std::unique_ptr<CBaseBuilding> CBaseBuilding::Create(
|
|||
obj->SetRotationY(params.angle);
|
||||
obj->SetFloorHeight(0.0f);
|
||||
|
||||
rank = engine->CreateObject();
|
||||
rank = engine->CreateObject(obj.get());
|
||||
engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT);
|
||||
obj->SetObjectRank(1, rank);
|
||||
obj->SetObjectParent(1, 0);
|
||||
modelManager->AddModelReference("search2", false, rank, params.team);
|
||||
obj->SetPartPosition(1, glm::vec3(0.0f, 13.0f, 0.0f));
|
||||
|
||||
rank = engine->CreateObject();
|
||||
rank = engine->CreateObject(obj.get());
|
||||
engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT);
|
||||
obj->SetObjectRank(2, rank);
|
||||
obj->SetObjectParent(2, 1);
|
||||
|
@ -309,14 +309,14 @@ std::unique_ptr<CBaseBuilding> CBaseBuilding::Create(
|
|||
obj->SetRotationY(params.angle);
|
||||
obj->SetFloorHeight(0.0f);
|
||||
|
||||
rank = engine->CreateObject();
|
||||
rank = engine->CreateObject(obj.get());
|
||||
engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT);
|
||||
obj->SetObjectRank(1, rank);
|
||||
obj->SetObjectParent(1, 0);
|
||||
modelManager->AddModelReference("radar2", false, rank, params.team);
|
||||
obj->SetPartPosition(1, glm::vec3(0.0f, 5.0f, 0.0f));
|
||||
|
||||
rank = engine->CreateObject();
|
||||
rank = engine->CreateObject(obj.get());
|
||||
engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT);
|
||||
obj->SetObjectRank(2, rank);
|
||||
obj->SetObjectParent(2, 0);
|
||||
|
@ -324,7 +324,7 @@ std::unique_ptr<CBaseBuilding> CBaseBuilding::Create(
|
|||
obj->SetPartPosition(2, glm::vec3(0.0f, 11.0f, 0.0f));
|
||||
obj->SetPartRotationY(2, -Math::PI/2.0f);
|
||||
|
||||
rank = engine->CreateObject();
|
||||
rank = engine->CreateObject(obj.get());
|
||||
engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT);
|
||||
obj->SetObjectRank(3, rank);
|
||||
obj->SetObjectParent(3, 2);
|
||||
|
@ -363,7 +363,7 @@ std::unique_ptr<CBaseBuilding> CBaseBuilding::Create(
|
|||
obj->SetRotationY(params.angle);
|
||||
obj->SetFloorHeight(0.0f);
|
||||
|
||||
rank = engine->CreateObject();
|
||||
rank = engine->CreateObject(obj.get());
|
||||
engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT);
|
||||
obj->SetObjectRank(1, rank);
|
||||
obj->SetObjectParent(1, 0);
|
||||
|
@ -371,14 +371,14 @@ std::unique_ptr<CBaseBuilding> CBaseBuilding::Create(
|
|||
obj->SetPartPosition(1, glm::vec3(-9.0f, 3.0f, 0.0f));
|
||||
obj->SetPartRotationZ(1, Math::PI/2.0f);
|
||||
|
||||
rank = engine->CreateObject();
|
||||
rank = engine->CreateObject(obj.get());
|
||||
engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT);
|
||||
obj->SetObjectRank(2, rank);
|
||||
obj->SetObjectParent(2, 1);
|
||||
modelManager->AddModelReference("labo3", false, rank, params.team);
|
||||
obj->SetPartPosition(2, glm::vec3(9.0f, -1.0f, 0.0f));
|
||||
|
||||
rank = engine->CreateObject();
|
||||
rank = engine->CreateObject(obj.get());
|
||||
engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT);
|
||||
obj->SetObjectRank(3, rank);
|
||||
obj->SetObjectParent(3, 2);
|
||||
|
@ -386,7 +386,7 @@ std::unique_ptr<CBaseBuilding> CBaseBuilding::Create(
|
|||
obj->SetPartPosition(3, glm::vec3(0.0f, 0.0f, 0.0f));
|
||||
obj->SetPartRotationZ(3, 80.0f*Math::PI/180.0f);
|
||||
|
||||
rank = engine->CreateObject();
|
||||
rank = engine->CreateObject(obj.get());
|
||||
engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT);
|
||||
obj->SetObjectRank(4, rank);
|
||||
obj->SetObjectParent(4, 2);
|
||||
|
@ -395,7 +395,7 @@ std::unique_ptr<CBaseBuilding> CBaseBuilding::Create(
|
|||
obj->SetPartRotationZ(4, 80.0f*Math::PI/180.0f);
|
||||
obj->SetPartRotationY(4, Math::PI*2.0f/3.0f);
|
||||
|
||||
rank = engine->CreateObject();
|
||||
rank = engine->CreateObject(obj.get());
|
||||
engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT);
|
||||
obj->SetObjectRank(5, rank);
|
||||
obj->SetObjectParent(5, 2);
|
||||
|
@ -425,7 +425,7 @@ std::unique_ptr<CBaseBuilding> CBaseBuilding::Create(
|
|||
|
||||
for (int i=0 ; i<9 ; i++ )
|
||||
{
|
||||
rank = engine->CreateObject();
|
||||
rank = engine->CreateObject(obj.get());
|
||||
engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT);
|
||||
obj->SetObjectRank(1+i, rank);
|
||||
obj->SetObjectParent(1+i, 0);
|
||||
|
@ -434,7 +434,7 @@ std::unique_ptr<CBaseBuilding> CBaseBuilding::Create(
|
|||
obj->SetPartRotationZ(1+i, Math::PI/2.0f);
|
||||
obj->SetPartScaleZ(1+i, 0.30f);
|
||||
|
||||
rank = engine->CreateObject();
|
||||
rank = engine->CreateObject(obj.get());
|
||||
engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT);
|
||||
obj->SetObjectRank(10+i, rank);
|
||||
obj->SetObjectParent(10+i, 0);
|
||||
|
@ -480,7 +480,7 @@ std::unique_ptr<CBaseBuilding> CBaseBuilding::Create(
|
|||
obj->SetRotationY(params.angle);
|
||||
obj->SetFloorHeight(0.0f);
|
||||
|
||||
rank = engine->CreateObject();
|
||||
rank = engine->CreateObject(obj.get());
|
||||
engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT);
|
||||
obj->SetObjectRank(1, rank);
|
||||
obj->SetObjectParent(1, 0);
|
||||
|
@ -504,7 +504,7 @@ std::unique_ptr<CBaseBuilding> CBaseBuilding::Create(
|
|||
obj->SetRotationY(params.angle);
|
||||
obj->SetFloorHeight(0.0f);
|
||||
|
||||
rank = engine->CreateObject();
|
||||
rank = engine->CreateObject(obj.get());
|
||||
engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT);
|
||||
obj->SetObjectRank(1, rank);
|
||||
obj->SetObjectParent(1, 0);
|
||||
|
@ -544,14 +544,14 @@ std::unique_ptr<CBaseBuilding> CBaseBuilding::Create(
|
|||
obj->SetRotationY(params.angle);
|
||||
obj->SetFloorHeight(0.0f);
|
||||
|
||||
rank = engine->CreateObject();
|
||||
rank = engine->CreateObject(obj.get());
|
||||
engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT);
|
||||
obj->SetObjectRank(1, rank);
|
||||
obj->SetObjectParent(1, 0);
|
||||
modelManager->AddModelReference("convert2", false, rank, params.team);
|
||||
obj->SetPartPosition(1, glm::vec3(0.0f, 14.0f, 0.0f));
|
||||
|
||||
rank = engine->CreateObject();
|
||||
rank = engine->CreateObject(obj.get());
|
||||
engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT);
|
||||
obj->SetObjectRank(2, rank);
|
||||
obj->SetObjectParent(2, 0);
|
||||
|
@ -559,7 +559,7 @@ std::unique_ptr<CBaseBuilding> CBaseBuilding::Create(
|
|||
obj->SetPartPosition(2, glm::vec3(0.0f, 11.5f, 0.0f));
|
||||
obj->SetPartRotationX(2, -Math::PI*0.35f);
|
||||
|
||||
rank = engine->CreateObject();
|
||||
rank = engine->CreateObject(obj.get());
|
||||
engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT);
|
||||
obj->SetObjectRank(3, rank);
|
||||
obj->SetObjectParent(3, 0);
|
||||
|
@ -584,7 +584,7 @@ std::unique_ptr<CBaseBuilding> CBaseBuilding::Create(
|
|||
obj->SetRotationY(params.angle);
|
||||
obj->SetFloorHeight(0.0f);
|
||||
|
||||
rank = engine->CreateObject();
|
||||
rank = engine->CreateObject(obj.get());
|
||||
engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT);
|
||||
obj->SetObjectRank(1, rank);
|
||||
obj->SetObjectParent(1, 0);
|
||||
|
@ -592,7 +592,7 @@ std::unique_ptr<CBaseBuilding> CBaseBuilding::Create(
|
|||
obj->SetPartPosition(1, glm::vec3(0.0f, 20.0f, 0.0f));
|
||||
obj->SetPartRotationZ(1, Math::PI/2.0f);
|
||||
|
||||
rank = engine->CreateObject();
|
||||
rank = engine->CreateObject(obj.get());
|
||||
engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT);
|
||||
obj->SetObjectRank(2, rank);
|
||||
obj->SetObjectParent(2, 1);
|
||||
|
@ -618,7 +618,7 @@ std::unique_ptr<CBaseBuilding> CBaseBuilding::Create(
|
|||
obj->SetRotationY(params.angle);
|
||||
obj->SetFloorHeight(0.0f);
|
||||
|
||||
rank = engine->CreateObject();
|
||||
rank = engine->CreateObject(obj.get());
|
||||
engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT);
|
||||
obj->SetObjectRank(1, rank);
|
||||
obj->SetObjectParent(1, 0);
|
||||
|
@ -667,14 +667,14 @@ std::unique_ptr<CBaseBuilding> CBaseBuilding::Create(
|
|||
obj->SetRotationY(params.angle);
|
||||
obj->SetFloorHeight(0.0f);
|
||||
|
||||
rank = engine->CreateObject();
|
||||
rank = engine->CreateObject(obj.get());
|
||||
engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT);
|
||||
obj->SetObjectRank(1, rank);
|
||||
obj->SetObjectParent(1, 0);
|
||||
modelManager->AddModelReference("safe2", false, rank, params.team);
|
||||
obj->SetPartScale(1, 1.05f);
|
||||
|
||||
rank = engine->CreateObject();
|
||||
rank = engine->CreateObject(obj.get());
|
||||
engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT);
|
||||
obj->SetObjectRank(2, rank);
|
||||
obj->SetObjectParent(2, 0);
|
||||
|
@ -696,7 +696,7 @@ std::unique_ptr<CBaseBuilding> CBaseBuilding::Create(
|
|||
obj->SetRotationY(params.angle);
|
||||
obj->SetFloorHeight(0.0f);
|
||||
|
||||
rank = engine->CreateObject();
|
||||
rank = engine->CreateObject(obj.get());
|
||||
engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT);
|
||||
obj->SetObjectRank(1, rank);
|
||||
obj->SetObjectParent(1, 0);
|
||||
|
@ -705,7 +705,7 @@ std::unique_ptr<CBaseBuilding> CBaseBuilding::Create(
|
|||
obj->SetPartRotationY(1, -Math::PI/2.0f);
|
||||
obj->SetPartScale(1, 3.0f);
|
||||
|
||||
rank = engine->CreateObject();
|
||||
rank = engine->CreateObject(obj.get());
|
||||
engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT);
|
||||
obj->SetObjectRank(2, rank);
|
||||
obj->SetObjectParent(2, 1);
|
||||
|
|
|
@ -54,7 +54,7 @@ std::unique_ptr<CExchangePost> CExchangePost::Create(
|
|||
|
||||
obj->SetTeam(params.team);
|
||||
|
||||
int rank = engine->CreateObject();
|
||||
int rank = engine->CreateObject(obj.get());
|
||||
engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_FIX); // it is a stationary object
|
||||
obj->SetObjectRank(0, rank);
|
||||
|
||||
|
@ -63,7 +63,7 @@ std::unique_ptr<CExchangePost> CExchangePost::Create(
|
|||
obj->SetRotationY(params.angle);
|
||||
obj->SetFloorHeight(0.0f);
|
||||
|
||||
rank = engine->CreateObject();
|
||||
rank = engine->CreateObject(obj.get());
|
||||
engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT);
|
||||
obj->SetObjectRank(1, rank);
|
||||
obj->SetObjectParent(1, 0);
|
||||
|
@ -72,14 +72,14 @@ std::unique_ptr<CExchangePost> CExchangePost::Create(
|
|||
|
||||
for (int i = 0; i < 3; ++i)
|
||||
{
|
||||
rank = engine->CreateObject();
|
||||
rank = engine->CreateObject(obj.get());
|
||||
engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT);
|
||||
obj->SetObjectRank(2+i*2, rank);
|
||||
obj->SetObjectParent(2+i*2, 1);
|
||||
modelManager->AddModelReference("info3", false, rank);
|
||||
obj->SetPartPosition(2+i*2, glm::vec3(0.0f, 4.5f, 0.0f));
|
||||
|
||||
rank = engine->CreateObject();
|
||||
rank = engine->CreateObject(obj.get());
|
||||
engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT);
|
||||
obj->SetObjectRank(3+i*2, rank);
|
||||
obj->SetObjectParent(3+i*2, 2+i*2);
|
||||
|
|
|
@ -56,7 +56,7 @@ CStaticObject::CStaticObject(int id,
|
|||
m_rotation.y = angleY;
|
||||
|
||||
glm::mat4 worldMatrix = ComputeWorldMatrix(position, angleY);
|
||||
m_meshHandle = m_engine->AddStaticMesh(key, mesh, worldMatrix);
|
||||
m_meshHandle = m_engine->AddStaticMesh(key, mesh, worldMatrix, this);
|
||||
|
||||
if (model->HasShadowSpot())
|
||||
m_engine->AddStaticMeshShadowSpot(m_meshHandle, model->GetShadowSpot());
|
||||
|
@ -103,11 +103,6 @@ void CStaticObject::TransformCameraCollisionSphere(Math::Sphere& collisionSphere
|
|||
Math::Transform(worldMatrix, collisionSphere.pos);
|
||||
}
|
||||
|
||||
void CStaticObject::SetGhostMode(bool enabled)
|
||||
{
|
||||
m_engine->SetStaticMeshGhostMode(m_meshHandle, enabled);
|
||||
}
|
||||
|
||||
bool CStaticObject::IsStaticObject(ObjectType type)
|
||||
{
|
||||
return m_staticModelNames.count(type) > 0;
|
||||
|
|
|
@ -53,8 +53,6 @@ public:
|
|||
void Read(CLevelParserLine* line) override;
|
||||
void Write(CLevelParserLine* line) override;
|
||||
|
||||
void SetGhostMode(bool enabled) override;
|
||||
|
||||
public:
|
||||
static bool IsStaticObject(ObjectType type);
|
||||
|
||||
|
|
|
@ -446,7 +446,7 @@ void CDisplayInfo::StartDisplayInfo(std::string filename, int index, bool bSoluc
|
|||
m_toto = SearchToto();
|
||||
if ( m_toto != nullptr )
|
||||
{
|
||||
m_toto->SetDrawFront(true);
|
||||
m_toto->m_bDrawFront = true;
|
||||
|
||||
assert(m_toto->Implements(ObjectInterfaceType::Movable));
|
||||
CMotionToto* toto = static_cast<CMotionToto*>(dynamic_cast<CMovableObject&>(*m_toto).GetMotion());
|
||||
|
|
|
@ -91,6 +91,7 @@ void CScreenLevelList::CreateInterface()
|
|||
if ( m_category == LevelCategory::CodeBattles ) res = RT_TITLE_CODE_BATTLES;
|
||||
if ( m_category == LevelCategory::GamePlus ) res = RT_TITLE_PLUS;
|
||||
if ( m_category == LevelCategory::CustomLevels ) res = RT_TITLE_USER;
|
||||
if ( m_category == LevelCategory::CareerMode ) res = RT_TITLE_CAREER;
|
||||
GetResource(RES_TEXT, res, name);
|
||||
pw->SetName(name);
|
||||
|
||||
|
@ -114,6 +115,7 @@ void CScreenLevelList::CreateInterface()
|
|||
if ( m_category == LevelCategory::Missions ) res = RT_PLAY_CHAP_PLANETS;
|
||||
if ( m_category == LevelCategory::FreeGame ) res = RT_PLAY_CHAP_PLANETS;
|
||||
if ( m_category == LevelCategory::GamePlus ) res = RT_PLAY_CHAP_PLANETS;
|
||||
if ( m_category == LevelCategory::CareerMode ) res = RT_PLAY_CHAP_PLANETS;
|
||||
if ( m_category == LevelCategory::CustomLevels ) res = RT_PLAY_CHAP_USERLVL;
|
||||
GetResource(RES_TEXT, res, name);
|
||||
pl = pw->CreateLabel(pos, ddim, 0, EVENT_LABEL11, name);
|
||||
|
@ -128,7 +130,8 @@ void CScreenLevelList::CreateInterface()
|
|||
UpdateSceneChap(m_chap[m_category]);
|
||||
if ( m_category != LevelCategory::FreeGame &&
|
||||
m_category != LevelCategory::CodeBattles &&
|
||||
m_category != LevelCategory::CustomLevels ) // Don't show completion marks in free game, code battles and userlevels
|
||||
m_category != LevelCategory::CustomLevels &&
|
||||
m_category != LevelCategory::CareerMode ) // Don't show completion marks in free game, code battles and userlevels
|
||||
{
|
||||
pli->SetState(STATE_EXTEND);
|
||||
}
|
||||
|
@ -144,6 +147,7 @@ void CScreenLevelList::CreateInterface()
|
|||
if ( m_category == LevelCategory::Missions ) res = RT_PLAY_LIST_MISSIONS;
|
||||
if ( m_category == LevelCategory::FreeGame ) res = RT_PLAY_LIST_FREEGAME;
|
||||
if ( m_category == LevelCategory::GamePlus ) res = RT_PLAY_LIST_MISSIONS;
|
||||
if ( m_category == LevelCategory::CareerMode ) res = RT_PLAY_LIST_MISSIONS;
|
||||
GetResource(RES_TEXT, res, name);
|
||||
pl = pw->CreateLabel(pos, ddim, 0, EVENT_LABEL12, name);
|
||||
pl->SetTextAlign(Gfx::TEXT_ALIGN_LEFT);
|
||||
|
@ -186,7 +190,8 @@ void CScreenLevelList::CreateInterface()
|
|||
// Button displays the "soluce":
|
||||
if ( m_category != LevelCategory::Exercises &&
|
||||
m_category != LevelCategory::GamePlus &&
|
||||
m_category != LevelCategory::FreeGame )
|
||||
m_category != LevelCategory::FreeGame &&
|
||||
m_category != LevelCategory::CareerMode )
|
||||
{
|
||||
pos.x = ox+sx*9.5f;
|
||||
pos.y = oy+sy*5.8f;
|
||||
|
|
|
@ -123,7 +123,7 @@ void CScreenMainMenu::CreateInterface()
|
|||
pb = pw->CreateButton(pos, ddim, -1, EVENT_INTERFACE_CODE_BATTLES);
|
||||
pb->SetState(STATE_SHADOW);
|
||||
|
||||
pos.y = oy+sy*5.8f;
|
||||
pos.y = oy+sy*5.9f;
|
||||
pb = pw->CreateButton(pos, ddim, -1, EVENT_INTERFACE_USER);
|
||||
pb->SetState(STATE_SHADOW);
|
||||
try
|
||||
|
@ -144,6 +144,12 @@ void CScreenMainMenu::CreateInterface()
|
|||
GetLogger()->Error("Failed loading userlevel button name: %s\n", e.what());
|
||||
}
|
||||
|
||||
|
||||
pos.y = oy+sy*5.0f;
|
||||
ddim.y = dim.y*0.4f;
|
||||
pb = pw->CreateButton(pos, ddim, -1, EVENT_INTERFACE_CAREER);
|
||||
pb->SetState(STATE_SHADOW);
|
||||
|
||||
ddim.y = dim.y*0.5f;
|
||||
pos.y = oy+sy*4.35f;
|
||||
pb = pw->CreateButton(pos, ddim, -1, EVENT_INTERFACE_NAME);
|
||||
|
@ -243,6 +249,11 @@ bool CScreenMainMenu::EventProcess(const Event &event)
|
|||
m_main->ChangePhase(PHASE_LEVEL_LIST);
|
||||
break;
|
||||
|
||||
case EVENT_INTERFACE_CAREER:
|
||||
m_main->SetLevel(LevelCategory::CareerMode, 0, 0);
|
||||
m_main->ChangePhase(PHASE_LEVEL_LIST);
|
||||
break;
|
||||
|
||||
case EVENT_INTERFACE_SETUP:
|
||||
m_main->ChangePhase(CScreenSetup::GetTab());
|
||||
break;
|
||||
|
|
Loading…
Reference in New Issue