From 3896c7d8a06153ed8a21879796a6183d0d7c9aad Mon Sep 17 00:00:00 2001 From: arsenicviscera Date: Wed, 11 Mar 2026 03:57:34 -0700 Subject: [PATCH] Fix --- Minecraft.Client/Common/Audio/SoundNames.cpp | 2 ++ Minecraft.Client/Common/BuildVer.h | 4 +-- .../Sound/Minecraft/damage/critical.mp3 | Bin 0 -> 18178 bytes Minecraft.World/DamageSource.cpp | 11 ++++++- Minecraft.World/DamageSource.h | 3 ++ Minecraft.World/EntityEvent.h | 2 ++ Minecraft.World/LivingEntity.cpp | 27 ++++++++++++++---- Minecraft.World/LivingEntity.h | 1 + Minecraft.World/Player.cpp | 4 +++ Minecraft.World/SoundTypes.h | 2 ++ 10 files changed, 48 insertions(+), 8 deletions(-) create mode 100644 Minecraft.Client/Windows64Media/Sound/Minecraft/damage/critical.mp3 diff --git a/Minecraft.Client/Common/Audio/SoundNames.cpp b/Minecraft.Client/Common/Audio/SoundNames.cpp index ebb7e9ee1..dd16efca7 100644 --- a/Minecraft.Client/Common/Audio/SoundNames.cpp +++ b/Minecraft.Client/Common/Audio/SoundNames.cpp @@ -223,6 +223,8 @@ const WCHAR *ConsoleSoundEngine::wchSoundNames[eSoundType_MAX]= // 4J-PB - Some sounds were updated, but we can't do that for the 360 or we have to do a new sound bank // instead, we'll add the sounds as new ones and change the code to reference them L"fire.new_ignite", + + L"damage.critical", //eSoundType_DAMAGE_CRITICAL, }; diff --git a/Minecraft.Client/Common/BuildVer.h b/Minecraft.Client/Common/BuildVer.h index eaa77d26a..a5a9494ac 100644 --- a/Minecraft.Client/Common/BuildVer.h +++ b/Minecraft.Client/Common/BuildVer.h @@ -1,7 +1,7 @@ #pragma once #define VER_PRODUCTBUILD 560 -#define VER_PRODUCTVERSION_STR_W L"DEV (unknown version)" +#define VER_PRODUCTVERSION_STR_W L"" #define VER_FILEVERSION_STR_W VER_PRODUCTVERSION_STR_W -#define VER_BRANCHVERSION_STR_W L"UNKNOWN BRANCH" +#define VER_BRANCHVERSION_STR_W L"UNKNOWN/" #define VER_NETWORK VER_PRODUCTBUILD diff --git a/Minecraft.Client/Windows64Media/Sound/Minecraft/damage/critical.mp3 b/Minecraft.Client/Windows64Media/Sound/Minecraft/damage/critical.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..b3687e43e30688ba5235fbbbab06ee6ba6ca02b7 GIT binary patch literal 18178 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 = msgId; m_msgId = msgId; @@ -153,7 +154,15 @@ DamageSource *DamageSource::bypassInvul() _bypassInvul = true; return this; } - +bool DamageSource::isCritical() +{ + return _isCritical; +} +DamageSource *DamageSource::setIsCritical() +{ + _isCritical = true; + return this; +} DamageSource *DamageSource::setIsFire() { isFireSource = true; diff --git a/Minecraft.World/DamageSource.h b/Minecraft.World/DamageSource.h index 1173db4db..6d0d5326e 100644 --- a/Minecraft.World/DamageSource.h +++ b/Minecraft.World/DamageSource.h @@ -47,8 +47,11 @@ class DamageSource bool _scalesWithDifficulty; bool _isMagic; bool _isExplosion; + bool _isCritical; public: + bool isCritical(); + DamageSource *setIsCritical(); bool isProjectile(); DamageSource *setProjectile(); bool isExplosion(); diff --git a/Minecraft.World/EntityEvent.h b/Minecraft.World/EntityEvent.h index 4d2064aba..ae80cd1bd 100644 --- a/Minecraft.World/EntityEvent.h +++ b/Minecraft.World/EntityEvent.h @@ -5,6 +5,8 @@ class EntityEvent public: static const BYTE JUMP = 1; static const BYTE HURT = 2; + //New + static const BYTE HURT_CRITICAL = 19; static const BYTE DEATH = 3; static const BYTE START_ATTACKING = 4; static const BYTE STOP_ATTACKING = 5; diff --git a/Minecraft.World/LivingEntity.cpp b/Minecraft.World/LivingEntity.cpp index 3ace88068..20967b7f5 100644 --- a/Minecraft.World/LivingEntity.cpp +++ b/Minecraft.World/LivingEntity.cpp @@ -831,7 +831,12 @@ bool LivingEntity::hurt(DamageSource *source, float dmg) if (sound) { - level->broadcastEntityEvent(shared_from_this(), EntityEvent::HURT); + if (source->isCritical()) { + level->broadcastEntityEvent(shared_from_this(), EntityEvent::HURT_CRITICAL); + } + else { + level->broadcastEntityEvent(shared_from_this(), EntityEvent::HURT); + } if (source != DamageSource::drown) markHurt(); if (sourceEntity != nullptr) { @@ -859,7 +864,10 @@ bool LivingEntity::hurt(DamageSource *source, float dmg) } else { - if (sound) playSound(getHurtSound(), getSoundVolume(), getVoicePitch()); + if (sound) { + if (source->isCritical()) playSound(getCriticalSound(), getSoundVolume(), getVoicePitch()); + playSound(getHurtSound(), getSoundVolume(), getVoicePitch()); + } } MemSect(0); @@ -959,7 +967,10 @@ int LivingEntity::getHurtSound() { return eSoundType_DAMAGE_HURT; } - +int LivingEntity::getCriticalSound() +{ + return eSoundType_DAMAGE_CRITICAL; +} int LivingEntity::getDeathSound() { return eSoundType_DAMAGE_HURT; @@ -1181,7 +1192,8 @@ void LivingEntity::swing() void LivingEntity::handleEntityEvent(byte id) { - if (id == EntityEvent::HURT) + //These gotta be in parentheses + if ((id == EntityEvent::HURT) || (id == EntityEvent::HURT_CRITICAL)) { walkAnimSpeed = 1.5f; @@ -1191,11 +1203,16 @@ void LivingEntity::handleEntityEvent(byte id) MemSect(31); // 4J-PB -added because villagers have no sounds - int iHurtSound=getHurtSound(); + int iHurtSound = getHurtSound(); + int iCritSound = getCriticalSound(); if(iHurtSound!=-1) { playSound(iHurtSound, getSoundVolume(), (random->nextFloat() - random->nextFloat()) * 0.2f + 1.0f); } + if(iCritSound!=-1 && id == EntityEvent::HURT_CRITICAL) + { + playSound(iCritSound, getSoundVolume(), (random->nextFloat() - random->nextFloat()) * 0.2f + 1.0f); + } MemSect(0); hurt(DamageSource::genericSource, 0); } diff --git a/Minecraft.World/LivingEntity.h b/Minecraft.World/LivingEntity.h index ecc819df9..086935efc 100644 --- a/Minecraft.World/LivingEntity.h +++ b/Minecraft.World/LivingEntity.h @@ -185,6 +185,7 @@ class LivingEntity : public Entity virtual void knockback(shared_ptr source, float dmg, double xd, double zd); protected: + virtual int getCriticalSound(); virtual int getHurtSound(); virtual int getDeathSound(); diff --git a/Minecraft.World/Player.cpp b/Minecraft.World/Player.cpp index 00c7148e4..c3677862b 100644 --- a/Minecraft.World/Player.cpp +++ b/Minecraft.World/Player.cpp @@ -1631,6 +1631,10 @@ void Player::attack(shared_ptr entity) } DamageSource *damageSource = DamageSource::playerAttack(dynamic_pointer_cast(shared_from_this())); + + if (bCrit) { + damageSource->setIsCritical(); + } bool wasHurt = entity->hurt(damageSource, dmg); delete damageSource; if (wasHurt) diff --git a/Minecraft.World/SoundTypes.h b/Minecraft.World/SoundTypes.h index 81e81d796..cae541df3 100644 --- a/Minecraft.World/SoundTypes.h +++ b/Minecraft.World/SoundTypes.h @@ -213,6 +213,8 @@ enum eSOUND_TYPE eSoundType_FIRE_NEWIGNITE, + eSoundType_DAMAGE_CRITICAL, + eSoundType_MAX };