mirror of
https://github.com/DarkflameUniverse/DarkflameServer.git
synced 2025-08-04 17:54:01 +00:00
Fix all smashables not playing animations (#1112)
Fixes an issue where most smashables did not explode into bricks upon death. This included anything that was spawned or didnt have the flag is_smashable set. Tested that in races, all objects smash into bricks Tested that the player properly explodes in their car if they crash Tested that Shooting Gallery plays the special smash animation when a ship is smashed Tested that all spawned objects play smash animations * Fix warning, Fix modular assembly not smashing * Rename variable to correct name
This commit is contained in:
@@ -386,8 +386,8 @@ void Entity::Initialize() {
|
||||
comp->SetMaxCoins(currencyValues[0].maxvalue);
|
||||
}
|
||||
|
||||
// extraInfo overrides
|
||||
comp->SetIsSmashable(GetVarAs<int32_t>(u"is_smashable") != 0);
|
||||
// extraInfo overrides. Client ORs the database smashable and the luz smashable.
|
||||
comp->SetIsSmashable(comp->GetIsSmashable() | (GetVarAs<int32_t>(u"is_smashable") != 0));
|
||||
}
|
||||
} else {
|
||||
comp->SetHealth(1);
|
||||
|
@@ -51,7 +51,7 @@ DestroyableComponent::DestroyableComponent(Entity* parent) : Component(parent) {
|
||||
m_IsGMImmune = false;
|
||||
m_IsShielded = false;
|
||||
m_DamageToAbsorb = 0;
|
||||
m_HasBricks = false;
|
||||
m_IsModuleAssembly = m_Parent->HasComponent(eReplicaComponentType::MODULE_ASSEMBLY);
|
||||
m_DirtyThreatList = false;
|
||||
m_HasThreats = false;
|
||||
m_ExplodeFactor = 1.0f;
|
||||
@@ -163,7 +163,7 @@ void DestroyableComponent::Serialize(RakNet::BitStream* outBitStream, bool bIsIn
|
||||
outBitStream->Write(m_IsSmashed);
|
||||
|
||||
if (m_IsSmashable) {
|
||||
outBitStream->Write(m_HasBricks);
|
||||
outBitStream->Write(m_IsModuleAssembly);
|
||||
outBitStream->Write(m_ExplodeFactor != 1.0f);
|
||||
if (m_ExplodeFactor != 1.0f) outBitStream->Write(m_ExplodeFactor);
|
||||
}
|
||||
|
@@ -239,7 +239,7 @@ public:
|
||||
* Returns whether or not this entity has bricks flying out when smashed
|
||||
* @return whether or not this entity has bricks flying out when smashed
|
||||
*/
|
||||
bool GetHasBricks() const { return m_HasBricks; }
|
||||
bool GetHasBricks() const { return m_IsModuleAssembly; }
|
||||
|
||||
/**
|
||||
* Sets the multiplier for the explosion that's visible when the bricks fly out when this entity is smashed
|
||||
@@ -546,7 +546,7 @@ private:
|
||||
/**
|
||||
* Whether this entity has bricks flying out when smashed (causes the client to look up the files)
|
||||
*/
|
||||
bool m_HasBricks;
|
||||
bool m_IsModuleAssembly;
|
||||
|
||||
/**
|
||||
* The rate at which bricks fly out when smashed
|
||||
|
@@ -1002,7 +1002,6 @@ void InventoryComponent::HandlePossession(Item* item) {
|
||||
// Setup the destroyable stats
|
||||
auto* destroyableComponent = mount->GetComponent<DestroyableComponent>();
|
||||
if (destroyableComponent) {
|
||||
destroyableComponent->SetIsSmashable(false);
|
||||
destroyableComponent->SetIsImmune(true);
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user