mirror of
https://github.com/SapphireServer/Sapphire.git
synced 2025-05-25 19:17:45 +00:00
JobGauge union.
This commit is contained in:
parent
20247f5870
commit
47719addae
3 changed files with 23 additions and 21 deletions
|
@ -1085,6 +1085,22 @@ namespace Sapphire::Common
|
|||
RequireCorrectPositional = 2,
|
||||
};
|
||||
|
||||
union JobGauge
|
||||
{
|
||||
struct
|
||||
{
|
||||
uint8_t gauge_data[15];
|
||||
} _raw;
|
||||
struct
|
||||
{
|
||||
uint8_t beastGauge;
|
||||
} war;
|
||||
struct
|
||||
{
|
||||
uint8_t oathGauge;
|
||||
} pld;
|
||||
};
|
||||
|
||||
using PlayerStateFlagList = std::vector< PlayerStateFlag >;
|
||||
|
||||
}
|
||||
|
|
|
@ -2161,24 +2161,14 @@ bool Sapphire::Entity::Player::checkAction()
|
|||
|
||||
void Sapphire::Entity::Player::gaugeClear()
|
||||
{
|
||||
std::memset( m_gauge, 0, sizeof( m_gauge ) );
|
||||
}
|
||||
|
||||
void Sapphire::Entity::Player::gaugeSet( uint8_t index, uint8_t value )
|
||||
{
|
||||
m_gauge[ index ] = value;
|
||||
}
|
||||
|
||||
uint8_t Sapphire::Entity::Player::gaugeGet( uint8_t index )
|
||||
{
|
||||
return m_gauge[ index ];
|
||||
std::memset( &m_gauge, 0, sizeof( m_gauge ) );
|
||||
}
|
||||
|
||||
void Sapphire::Entity::Player::sendActorGauge()
|
||||
{
|
||||
auto pPacket = makeZonePacket< FFXIVIpcActorGauge >( getId() );
|
||||
pPacket->data().classJobId = static_cast< uint8_t >( getClass() );
|
||||
std::memcpy( pPacket->data().data, m_gauge, sizeof( m_gauge ) );
|
||||
std::memcpy( pPacket->data().data, &m_gauge, sizeof( m_gauge ) );
|
||||
|
||||
queuePacket( pPacket );
|
||||
}
|
||||
|
@ -2196,25 +2186,25 @@ void Sapphire::Entity::Player::gaugeWarSetIb( uint8_t value )
|
|||
}
|
||||
queuePacket( pPacket );
|
||||
}
|
||||
gaugeSet( 0, value );
|
||||
m_gauge.war.beastGauge = value;
|
||||
if( oldValue != value )
|
||||
sendActorGauge();
|
||||
}
|
||||
|
||||
uint8_t Sapphire::Entity::Player::gaugeWarGetIb()
|
||||
{
|
||||
return gaugeGet( 0 );
|
||||
return m_gauge.war.beastGauge;
|
||||
}
|
||||
|
||||
void Sapphire::Entity::Player::gaugePldSetOath( uint8_t value )
|
||||
{
|
||||
auto oldValue = gaugePldGetOath();
|
||||
gaugeSet( 0, value );
|
||||
m_gauge.pld.oathGauge = value;
|
||||
if( oldValue != value )
|
||||
sendActorGauge();
|
||||
}
|
||||
|
||||
uint8_t Sapphire::Entity::Player::gaugePldGetOath()
|
||||
{
|
||||
return gaugeGet( 0 );
|
||||
return m_gauge.pld.oathGauge;
|
||||
}
|
|
@ -973,10 +973,6 @@ namespace Sapphire::Entity
|
|||
|
||||
// Job UI
|
||||
//////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
private:
|
||||
void gaugeSet( uint8_t index, uint8_t value );
|
||||
uint8_t gaugeGet( uint8_t index );
|
||||
public:
|
||||
void gaugeClear();
|
||||
void sendActorGauge();
|
||||
|
||||
|
@ -1098,7 +1094,7 @@ namespace Sapphire::Entity
|
|||
bool m_bLoadingComplete;
|
||||
bool m_bAutoattack;
|
||||
|
||||
uint8_t m_gauge[15];
|
||||
Common::JobGauge m_gauge;
|
||||
|
||||
Common::ZoneingType m_zoningType;
|
||||
uint32_t m_territoryId;
|
||||
|
|
Loading…
Add table
Reference in a new issue