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;
|
||||
}
|
||||
case E_META_RAIL_ASCEND_XM:
|
||||
case E_META_RAIL_ASCEND_XM: // ASCEND EAST
|
||||
{
|
||||
SetYaw(180);
|
||||
SetSpeedZ(0);
|
||||
@ -483,16 +483,76 @@ void cMinecart::HandlePoweredRailPhysics(NIBBLETYPE a_RailMeta)
|
||||
{
|
||||
if (GetSpeedX() <= MAX_SPEED)
|
||||
{
|
||||
AddSpeedX(1);
|
||||
AddSpeedX(AccelDecelSpeed);
|
||||
SetSpeedY(-GetSpeedX());
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
AddSpeedX(-1);
|
||||
AddSpeedX(AccelDecelNegSpeed);
|
||||
SetSpeedY(-GetSpeedX());
|
||||
}
|
||||
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;
|
||||
}
|
||||
|
@ -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