Added more minecart powered rail directions
This commit is contained in:
parent
83cbe8c139
commit
f39daabf7e
@ -474,7 +474,7 @@ void cMinecart::HandlePoweredRailPhysics(NIBBLETYPE a_RailMeta)
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case E_META_RAIL_ASCEND_XM:
|
case E_META_RAIL_ASCEND_XM: // ASCEND EAST
|
||||||
{
|
{
|
||||||
SetYaw(180);
|
SetYaw(180);
|
||||||
SetSpeedZ(0);
|
SetSpeedZ(0);
|
||||||
@ -483,16 +483,76 @@ void cMinecart::HandlePoweredRailPhysics(NIBBLETYPE a_RailMeta)
|
|||||||
{
|
{
|
||||||
if (GetSpeedX() <= MAX_SPEED)
|
if (GetSpeedX() <= MAX_SPEED)
|
||||||
{
|
{
|
||||||
AddSpeedX(1);
|
AddSpeedX(AccelDecelSpeed);
|
||||||
SetSpeedY(-GetSpeedX());
|
SetSpeedY(-GetSpeedX());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
AddSpeedX(-1);
|
AddSpeedX(AccelDecelNegSpeed);
|
||||||
SetSpeedY(-GetSpeedX());
|
SetSpeedY(-GetSpeedX());
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
}
|
||||||
|
case E_META_RAIL_ASCEND_XP: // ASCEND WEST
|
||||||
|
{
|
||||||
|
SetYaw(180);
|
||||||
|
SetSpeedZ(0);
|
||||||
|
|
||||||
|
if (GetSpeedX() > 0)
|
||||||
|
{
|
||||||
|
AddSpeedX(AccelDecelSpeed);
|
||||||
|
SetSpeedY(GetSpeedX());
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (GetSpeedX() >= MAX_SPEED_NEGATIVE)
|
||||||
|
{
|
||||||
|
AddSpeedX(AccelDecelNegSpeed);
|
||||||
|
SetSpeedY(GetSpeedX());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case E_META_RAIL_ASCEND_ZM: // ASCEND NORTH
|
||||||
|
{
|
||||||
|
SetYaw(270);
|
||||||
|
SetSpeedX(0);
|
||||||
|
|
||||||
|
if (GetSpeedZ() >= 0)
|
||||||
|
{
|
||||||
|
if (GetSpeedZ() <= MAX_SPEED)
|
||||||
|
{
|
||||||
|
AddSpeedZ(AccelDecelSpeed);
|
||||||
|
SetSpeedY(-GetSpeedZ());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
AddSpeedZ(AccelDecelNegSpeed);
|
||||||
|
SetSpeedY(-GetSpeedZ());
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case E_META_RAIL_ASCEND_ZP: // ASCEND SOUTH
|
||||||
|
{
|
||||||
|
SetYaw(270);
|
||||||
|
SetSpeedX(0);
|
||||||
|
|
||||||
|
if (GetSpeedZ() > 0)
|
||||||
|
{
|
||||||
|
AddSpeedZ(AccelDecelSpeed);
|
||||||
|
SetSpeedY(GetSpeedZ());
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (GetSpeedZ() >= MAX_SPEED_NEGATIVE)
|
||||||
|
{
|
||||||
|
AddSpeedZ(AccelDecelNegSpeed);
|
||||||
|
SetSpeedY(GetSpeedZ());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
default: ASSERT(!"Unhandled powered rail metadata!"); break;
|
default: ASSERT(!"Unhandled powered rail metadata!"); break;
|
||||||
}
|
}
|
||||||
|
@ -1,43 +0,0 @@
|
|||||||
|
|
||||||
#include "Globals.h" // NOTE: MSVC stupidness requires this to be the same across all modules
|
|
||||||
|
|
||||||
#include "ReferenceManager.h"
|
|
||||||
#include "Entities/Entity.h"
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
cReferenceManager::cReferenceManager( ENUM_REFERENCE_MANAGER_TYPE a_Type )
|
|
||||||
: m_Type( a_Type )
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
cReferenceManager::~cReferenceManager()
|
|
||||||
{
|
|
||||||
if( m_Type == RFMNGR_REFERENCERS )
|
|
||||||
{
|
|
||||||
for( std::list< cEntity** >::iterator itr = m_References.begin(); itr != m_References.end(); ++itr )
|
|
||||||
{
|
|
||||||
*(*itr) = 0; // Set referenced pointer to 0
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
for( std::list< cEntity** >::iterator itr = m_References.begin(); itr != m_References.end(); ++itr )
|
|
||||||
{
|
|
||||||
cEntity* Ptr = (*(*itr));
|
|
||||||
if( Ptr ) Ptr->Dereference( *(*itr) );
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void cReferenceManager::AddReference( cEntity*& a_EntityPtr )
|
|
||||||
{
|
|
||||||
m_References.push_back( &a_EntityPtr );
|
|
||||||
}
|
|
||||||
|
|
||||||
void cReferenceManager::Dereference( cEntity*& a_EntityPtr )
|
|
||||||
{
|
|
||||||
m_References.remove( &a_EntityPtr );
|
|
||||||
}
|
|
@ -1,34 +0,0 @@
|
|||||||
|
|
||||||
#pragma once
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
class cEntity;
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
class cReferenceManager
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
enum ENUM_REFERENCE_MANAGER_TYPE
|
|
||||||
{
|
|
||||||
RFMNGR_REFERENCERS,
|
|
||||||
RFMNGR_REFERENCES,
|
|
||||||
};
|
|
||||||
cReferenceManager( ENUM_REFERENCE_MANAGER_TYPE a_Type );
|
|
||||||
~cReferenceManager();
|
|
||||||
|
|
||||||
void AddReference( cEntity*& a_EntityPtr );
|
|
||||||
void Dereference( cEntity*& a_EntityPtr );
|
|
||||||
private:
|
|
||||||
ENUM_REFERENCE_MANAGER_TYPE m_Type;
|
|
||||||
std::list< cEntity** > m_References;
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
x
Reference in New Issue
Block a user