Add Barricade objects
parent
327eafddb7
commit
8948da0612
2
data
2
data
|
@ -1 +1 @@
|
||||||
Subproject commit 3b99a62185c4aba3c6c7507dfbbbcf5bcbce3ba2
|
Subproject commit 41c03fda84e6eab6cd105fffd77a26cde4c1fe12
|
|
@ -467,6 +467,8 @@ ObjectType CLevelParserParam::ToObjectType(std::string value)
|
||||||
if (value == "Barrier1" ) return OBJECT_BARRIER1;
|
if (value == "Barrier1" ) return OBJECT_BARRIER1;
|
||||||
if (value == "Barrier2" ) return OBJECT_BARRIER2;
|
if (value == "Barrier2" ) return OBJECT_BARRIER2;
|
||||||
if (value == "Barrier3" ) return OBJECT_BARRIER3;
|
if (value == "Barrier3" ) return OBJECT_BARRIER3;
|
||||||
|
if (value == "Barricade0" ) return OBJECT_BARRICADE0;
|
||||||
|
if (value == "Barricade1" ) return OBJECT_BARRICADE1;
|
||||||
if (value == "Teen0" ) return OBJECT_TEEN0;
|
if (value == "Teen0" ) return OBJECT_TEEN0;
|
||||||
if (value == "Teen1" ) return OBJECT_TEEN1;
|
if (value == "Teen1" ) return OBJECT_TEEN1;
|
||||||
if (value == "Teen2" ) return OBJECT_TEEN2;
|
if (value == "Teen2" ) return OBJECT_TEEN2;
|
||||||
|
@ -662,6 +664,8 @@ const std::string CLevelParserParam::FromObjectType(ObjectType value)
|
||||||
if (value == OBJECT_BARRIER1 ) return "Barrier1";
|
if (value == OBJECT_BARRIER1 ) return "Barrier1";
|
||||||
if (value == OBJECT_BARRIER2 ) return "Barrier2";
|
if (value == OBJECT_BARRIER2 ) return "Barrier2";
|
||||||
if (value == OBJECT_BARRIER3 ) return "Barrier3";
|
if (value == OBJECT_BARRIER3 ) return "Barrier3";
|
||||||
|
if (value == OBJECT_BARRICADE0 ) return "Barricade0";
|
||||||
|
if (value == OBJECT_BARRICADE1 ) return "Barricade1";
|
||||||
if (value == OBJECT_TEEN0 ) return "Teen0";
|
if (value == OBJECT_TEEN0 ) return "Teen0";
|
||||||
if (value == OBJECT_TEEN1 ) return "Teen1";
|
if (value == OBJECT_TEEN1 ) return "Teen1";
|
||||||
if (value == OBJECT_TEEN2 ) return "Teen2";
|
if (value == OBJECT_TEEN2 ) return "Teen2";
|
||||||
|
|
|
@ -149,6 +149,8 @@ CObjectUPtr CObjectFactory::CreateObject(const ObjectCreateParams& params)
|
||||||
case OBJECT_BARRIER1:
|
case OBJECT_BARRIER1:
|
||||||
case OBJECT_BARRIER2:
|
case OBJECT_BARRIER2:
|
||||||
case OBJECT_BARRIER3:
|
case OBJECT_BARRIER3:
|
||||||
|
case OBJECT_BARRICADE0:
|
||||||
|
case OBJECT_BARRICADE1:
|
||||||
return CreateBarrier(params);
|
return CreateBarrier(params);
|
||||||
|
|
||||||
case OBJECT_PLANT0:
|
case OBJECT_PLANT0:
|
||||||
|
@ -579,6 +581,48 @@ CObjectUPtr CObjectFactory::CreateBarrier(const ObjectCreateParams& params)
|
||||||
obj->CreateShadowCircle(10.0f, 0.5f, Gfx::ENG_SHADOW_WORM);
|
obj->CreateShadowCircle(10.0f, 0.5f, Gfx::ENG_SHADOW_WORM);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if ( type == OBJECT_BARRICADE0 )
|
||||||
|
{
|
||||||
|
int rank = m_engine->CreateObject();
|
||||||
|
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_FIX);
|
||||||
|
obj->SetObjectRank(0, rank);
|
||||||
|
m_oldModelManager->AddModelReference("barricade0.mod", false, rank, obj->GetTeam());
|
||||||
|
obj->SetPosition(pos);
|
||||||
|
obj->SetRotationY(angle);
|
||||||
|
|
||||||
|
obj->AddCrashSphere(CrashSphere(Math::Vector( 3.5f, 3.0f, 0.0f), 0.7f, SOUND_BOUMm, 0.45f));
|
||||||
|
obj->AddCrashSphere(CrashSphere(Math::Vector( 0.0f, 3.0f, 0.0f), 0.7f, SOUND_BOUMm, 0.45f));
|
||||||
|
obj->AddCrashSphere(CrashSphere(Math::Vector(-3.5f, 3.0f, 0.0f), 0.7f, SOUND_BOUMm, 0.45f));
|
||||||
|
obj->AddCrashSphere(CrashSphere(Math::Vector( 3.5f, 6.0f, 0.0f), 0.7f, SOUND_BOUMm, 0.45f));
|
||||||
|
obj->AddCrashSphere(CrashSphere(Math::Vector( 0.0f, 6.0f, 0.0f), 0.7f, SOUND_BOUMm, 0.45f));
|
||||||
|
obj->AddCrashSphere(CrashSphere(Math::Vector(-3.5f, 6.0f, 0.0f), 0.7f, SOUND_BOUMm, 0.45f));
|
||||||
|
|
||||||
|
obj->CreateShadowCircle(6.0f, 0.5f, Gfx::ENG_SHADOW_WORM);
|
||||||
|
}
|
||||||
|
|
||||||
|
if ( type == OBJECT_BARRICADE1 )
|
||||||
|
{
|
||||||
|
int rank = m_engine->CreateObject();
|
||||||
|
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_FIX);
|
||||||
|
obj->SetObjectRank(0, rank);
|
||||||
|
m_oldModelManager->AddModelReference("barricade1.mod", false, rank, obj->GetTeam());
|
||||||
|
obj->SetPosition(pos);
|
||||||
|
obj->SetRotationY(angle);
|
||||||
|
|
||||||
|
obj->AddCrashSphere(CrashSphere(Math::Vector( 8.5f, 3.0f, 0.0f), 0.7f, SOUND_BOUMm, 0.45f));
|
||||||
|
obj->AddCrashSphere(CrashSphere(Math::Vector( 3.5f, 3.0f, 0.0f), 0.7f, SOUND_BOUMm, 0.45f));
|
||||||
|
obj->AddCrashSphere(CrashSphere(Math::Vector( 0.0f, 3.0f, 0.0f), 0.7f, SOUND_BOUMm, 0.45f));
|
||||||
|
obj->AddCrashSphere(CrashSphere(Math::Vector(-3.5f, 3.0f, 0.0f), 0.7f, SOUND_BOUMm, 0.45f));
|
||||||
|
obj->AddCrashSphere(CrashSphere(Math::Vector(-8.5f, 3.0f, 0.0f), 0.7f, SOUND_BOUMm, 0.45f));
|
||||||
|
obj->AddCrashSphere(CrashSphere(Math::Vector( 8.5f, 6.0f, 0.0f), 0.7f, SOUND_BOUMm, 0.45f));
|
||||||
|
obj->AddCrashSphere(CrashSphere(Math::Vector( 3.5f, 6.0f, 0.0f), 0.7f, SOUND_BOUMm, 0.45f));
|
||||||
|
obj->AddCrashSphere(CrashSphere(Math::Vector( 0.0f, 6.0f, 0.0f), 0.7f, SOUND_BOUMm, 0.45f));
|
||||||
|
obj->AddCrashSphere(CrashSphere(Math::Vector(-3.5f, 6.0f, 0.0f), 0.7f, SOUND_BOUMm, 0.45f));
|
||||||
|
obj->AddCrashSphere(CrashSphere(Math::Vector(-8.5f, 6.0f, 0.0f), 0.7f, SOUND_BOUMm, 0.45f));
|
||||||
|
|
||||||
|
obj->CreateShadowCircle(12.0f, 0.5f, Gfx::ENG_SHADOW_WORM);
|
||||||
|
}
|
||||||
|
|
||||||
pos = obj->GetPosition();
|
pos = obj->GetPosition();
|
||||||
obj->SetPosition(pos); // to display the shadows immediately
|
obj->SetPosition(pos); // to display the shadows immediately
|
||||||
|
|
||||||
|
|
|
@ -311,7 +311,9 @@ std::vector<CObject*> CObjectManager::RadarAll(CObject* pThis, Math::Vector this
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( oType == OBJECT_BARRIER2 ||
|
if ( oType == OBJECT_BARRIER2 ||
|
||||||
oType == OBJECT_BARRIER3 ) // barriers?
|
oType == OBJECT_BARRIER3 ||
|
||||||
|
oType == OBJECT_BARRICADE0 ||
|
||||||
|
oType == OBJECT_BARRICADE1 ) // barriers?
|
||||||
{
|
{
|
||||||
oType = OBJECT_BARRIER1; // any barrier
|
oType = OBJECT_BARRIER1; // any barrier
|
||||||
}
|
}
|
||||||
|
|
|
@ -146,6 +146,8 @@ enum ObjectType
|
||||||
OBJECT_BARRIER1 = 401, //!< Barrier1
|
OBJECT_BARRIER1 = 401, //!< Barrier1
|
||||||
OBJECT_BARRIER2 = 402, //!< Barrier2
|
OBJECT_BARRIER2 = 402, //!< Barrier2
|
||||||
OBJECT_BARRIER3 = 403, //!< Barrier3
|
OBJECT_BARRIER3 = 403, //!< Barrier3
|
||||||
|
OBJECT_BARRICADE0 = 410, //!< Barricade0
|
||||||
|
OBJECT_BARRICADE1 = 411, //!< Barricade1
|
||||||
OBJECT_MOTHER = 500, //!< AlienQueen
|
OBJECT_MOTHER = 500, //!< AlienQueen
|
||||||
OBJECT_EGG = 501, //!< AlienEgg
|
OBJECT_EGG = 501, //!< AlienEgg
|
||||||
OBJECT_ANT = 502, //!< AlienAnt
|
OBJECT_ANT = 502, //!< AlienAnt
|
||||||
|
|
|
@ -1047,7 +1047,7 @@ void COldObject::Read(CLevelParserLine* line)
|
||||||
if (line->GetParam("pyro")->IsDefined())
|
if (line->GetParam("pyro")->IsDefined())
|
||||||
m_engine->GetPyroManager()->Create(line->GetParam("pyro")->AsPyroType(), this);
|
m_engine->GetPyroManager()->Create(line->GetParam("pyro")->AsPyroType(), this);
|
||||||
|
|
||||||
SetBulletWall(line->GetParam("bulletWall")->AsBool(false));
|
SetBulletWall(line->GetParam("bulletWall")->AsBool(IsBulletWallByDefault(m_type)));
|
||||||
|
|
||||||
SetProxyActivate(line->GetParam("proxyActivate")->AsBool(false));
|
SetProxyActivate(line->GetParam("proxyActivate")->AsBool(false));
|
||||||
SetProxyDistance(line->GetParam("proxyDistance")->AsFloat(15.0f)*g_unit);
|
SetProxyDistance(line->GetParam("proxyDistance")->AsFloat(15.0f)*g_unit);
|
||||||
|
@ -3212,3 +3212,13 @@ bool COldObject::IsBulletWall()
|
||||||
{
|
{
|
||||||
return m_bulletWall;
|
return m_bulletWall;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool COldObject::IsBulletWallByDefault(ObjectType type)
|
||||||
|
{
|
||||||
|
if ( type == OBJECT_BARRICADE0 ||
|
||||||
|
type == OBJECT_BARRICADE1 )
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
|
@ -311,6 +311,12 @@ protected:
|
||||||
*/
|
*/
|
||||||
static bool IsSelectableByDefault(ObjectType type);
|
static bool IsSelectableByDefault(ObjectType type);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* \brief Check if given object type should have bulletWall enabled by default
|
||||||
|
* \note This is a default value for the bulletWall= parameter and can still be overriden in the scene file
|
||||||
|
*/
|
||||||
|
static bool IsBulletWallByDefault(ObjectType type);
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
Gfx::CEngine* m_engine;
|
Gfx::CEngine* m_engine;
|
||||||
Gfx::CLightManager* m_lightMan;
|
Gfx::CLightManager* m_lightMan;
|
||||||
|
|
Loading…
Reference in New Issue