1
Fork 0
mirror of https://github.com/SapphireServer/Sapphire.git synced 2025-05-25 19:17:45 +00:00

more job gauge fixes, debug command to set raw gauge data

This commit is contained in:
collett 2020-03-15 22:52:23 +09:00
parent 381af61662
commit 44f6aa49e4
4 changed files with 35 additions and 1 deletions

View file

@ -1148,6 +1148,13 @@ namespace Sapphire::Common
Ruby = 3,
};
enum class BrdSong : uint8_t
{
Mage = 5,
Army = 0x0A,
Wanderer = 0x0F,
};
union JobGauge
{
struct
@ -1171,6 +1178,13 @@ namespace Sapphire::Common
uint8_t enochainState;
} blm;
struct
{
uint16_t songTimer;
uint8_t songStacks;
uint8_t unused;
BrdSong song;
} brd;
struct
{
uint8_t feathers;
uint8_t esprit;
@ -1186,13 +1200,16 @@ namespace Sapphire::Common
struct
{
uint8_t blood;
uint8_t unused;
uint16_t darksideTimer;
uint8_t darkArts;
uint8_t unused2;
uint16_t shadowTimer;
} drk;
struct
{
uint8_t ammo;
uint8_t unused;
uint16_t maxTimerDuration; // what is this?
uint8_t ammoComboStep;
} gnb;
@ -1208,6 +1225,7 @@ namespace Sapphire::Common
struct
{
uint8_t greasedLightningTimer;
uint8_t unused;
uint8_t greasedLightningStacks;
uint8_t chakra;
uint8_t greasedLightningTimerFreezed;
@ -1241,7 +1259,7 @@ namespace Sapphire::Common
uint16_t unused;
uint8_t aetherflowStacks;
uint8_t fairyGauge;
uint8_t seraphTimer;
uint16_t seraphTimer;
SchDismissedFairy dismissedFairy;
} sch;
struct

View file

@ -2260,6 +2260,12 @@ void Sapphire::Entity::Player::sendActorGauge()
queuePacket( pPacket );
}
void Sapphire::Entity::Player::gaugeSetRaw( uint8_t* pData )
{
std::memcpy( &m_gauge, pData, 15 );
sendActorGauge();
}
void Sapphire::Entity::Player::gaugeWarSetIb( uint8_t value )
{
assert( value >= 0 && value <= 100 );

View file

@ -975,6 +975,7 @@ namespace Sapphire::Entity
//////////////////////////////////////////////////////////////////////////////////////////////////////
void gaugeClear();
void sendActorGauge();
void gaugeSetRaw( uint8_t* pData );
void gaugeWarSetIb( uint8_t value );
uint8_t gaugeWarGetIb();

View file

@ -361,6 +361,15 @@ void Sapphire::World::Manager::DebugCommandMgr::set( char* data, Entity::Player&
}
}
}
else if( subCommand == "gauge" )
{
uint8_t values[15];
std::memset( values, 0, sizeof( values ) );
sscanf( params.c_str(), "%d %d %d %d %d %d %d %d %d %d %d %d %d %d %d",
&values[0], &values[1], &values[2], &values[3], &values[4], &values[5], &values[6], &values[7], &values[8],
&values[9], &values[10], &values[11], &values[12], &values[13], &values[14] );
player.gaugeSetRaw( values );
}
else if( subCommand == "visual" )
{
int32_t id;