Skip to content

Commit

Permalink
- Audio clips :: added weapon audio clips
Browse files Browse the repository at this point in the history
  • Loading branch information
RohanFernandez committed Sep 5, 2020
1 parent 2f3e165 commit 26d95e3
Show file tree
Hide file tree
Showing 12 changed files with 68 additions and 44 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -62,14 +62,7 @@ namespace FRETBUZZ

void AudioSource::play()
{
if (m_pISound != nullptr)
{
m_pISound->setIsPaused(false);
}
else
{
restart();
}
restart();
}

void AudioSource::restart()
Expand Down
14 changes: 14 additions & 0 deletions FretBuzz/Sandbox/game/managers/player/PlayerControllerHM.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,9 @@ namespace ns_HMGame

m_pLegsSpriteAnimator = a_pLegsGameObject->getComponent<FRETBUZZ::SpriteAnimationController >(FRETBUZZ::COMPONENT_TYPE::SPRITE_ANIMATION_CONTROLLER);
m_pUpperSpriteAnimator = a_pPlayerUpperGameObj->getComponent<FRETBUZZ::SpriteAnimationController>(FRETBUZZ::COMPONENT_TYPE::SPRITE_ANIMATION_CONTROLLER);

m_pPlayerAudSrc = m_GameObject.getComponent<FRETBUZZ::AudioSource>(FRETBUZZ::COMPONENT_TYPE::AUDIO_SOURCE);
m_pPlayerAudSrc->setLooping(false);
}

void PlayerControllerHM::update(const float& a_fDeltaTime)
Expand Down Expand Up @@ -115,6 +118,13 @@ namespace ns_HMGame
glm::vec3 l_v3PlayerPosition = m_GameObject.m_Transform.getWorldPosition();
m_WeaponData.fire(glm::vec2{l_v3PlayerPosition.x, l_v3PlayerPosition.y} +l_v2PlayerToMouseDirection * 150.0f, l_v2PlayerToMouseDirection, m_pPlayerUpperGameObj->m_Transform.getLocalRotation());

std::string l_strAudID = m_WeaponData.getWeaponFireAudID();
if (!l_strAudID.empty())
{
m_pPlayerAudSrc->setAudioClip(l_strAudID);
m_pPlayerAudSrc->play();
}

/*FRETBUZZ::Collider2D* l_pCollider2D = nullptr;
glm::vec2 l_v2PlayerPosition = m_GameObject.m_Transform.getWorldPosition();
glm::vec2 l_v2MouseWorldPosition = l_v2PlayerPosition + l_MousePosition;
Expand All @@ -140,13 +150,17 @@ namespace ns_HMGame

m_WeaponData = WeaponManager::GetWeaponData(WEAPON_TYPE::WEAPON_UNARMED);
m_pUpperSpriteAnimator->play(m_WeaponData.getWeaponAnimTrigger());
m_pPlayerAudSrc->setAudioClip("WeaponThrow");
m_pPlayerAudSrc->play();
}

if (m_vectWeaponOver.size() > 0)
{
m_WeaponData = m_vectWeaponOver[0]->getWeaponData();
m_pUpperSpriteAnimator->play(m_WeaponData.getWeaponAnimTrigger());
m_vectWeaponOver[0]->pickup();
m_pPlayerAudSrc->setAudioClip("GunPickup");
m_pPlayerAudSrc->play();
}
APP_ERROR("Tracing weapon throw");
}
Expand Down
3 changes: 3 additions & 0 deletions FretBuzz/Sandbox/game/managers/player/PlayerControllerHM.h
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
#include <components/gameobject_components/rect_collider.h>
#include <game/managers/weapon/weapon_data.h>
#include <game/managers/weapon/weapon.h>
#include <framework\components\gameobject_components\audio_source.h>

namespace ns_HMGame
{
Expand Down Expand Up @@ -33,6 +34,8 @@ namespace ns_HMGame

WeaponData m_WeaponData;

FRETBUZZ::AudioSource* m_pPlayerAudSrc = nullptr;

int m_iWeaponOverCount = 0;

void addToWeaponOver(Weapon* a_Weapon);
Expand Down
25 changes: 16 additions & 9 deletions FretBuzz/Sandbox/game/managers/weapon/weapon_data.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -6,23 +6,24 @@ namespace ns_HMGame
{

WeaponData::WeaponData(WEAPON_TYPE a_WeaponType)
: WeaponData{WeaponManager::GetWeaponData(a_WeaponType)}
: WeaponData{ WeaponManager::GetWeaponData(a_WeaponType) }
{

}

WeaponData::WeaponData(const WeaponData& a_WeaponData)
: WeaponData{ a_WeaponData.m_WeaponAttackType, a_WeaponData.m_WeaponType, a_WeaponData.m_strAnimOverrideTrigger, a_WeaponData.m_strWeaponSpriteName, a_WeaponData.m_strBulletSpriteName }
: WeaponData{ a_WeaponData.m_WeaponAttackType, a_WeaponData.m_WeaponType, a_WeaponData.m_strAnimOverrideTrigger, a_WeaponData.m_strWeaponSpriteName, a_WeaponData.m_strBulletSpriteName, a_WeaponData.m_strWeaponFireAudID }
{

}

WeaponData::WeaponData(WEAPON_ATTACK_TYPE a_WeaponAttackType, WEAPON_TYPE a_WeaponType, std::string a_strAnimOverrideTrigger, std::string a_strSpriteName, std::string a_strBulletSpriteName)
: m_WeaponAttackType{ a_WeaponAttackType },
m_WeaponType{a_WeaponType},
m_strAnimOverrideTrigger{ a_strAnimOverrideTrigger },
m_strWeaponSpriteName{ a_strSpriteName },
m_strBulletSpriteName{ a_strBulletSpriteName }
WeaponData::WeaponData(WEAPON_ATTACK_TYPE a_WeaponAttackType, WEAPON_TYPE a_WeaponType, std::string a_strAnimOverrideTrigger, std::string a_strSpriteName, std::string a_strBulletSpriteName, std::string a_strWeaponFireAudID)
: m_WeaponAttackType{ a_WeaponAttackType },
m_WeaponType{ a_WeaponType },
m_strAnimOverrideTrigger{ a_strAnimOverrideTrigger },
m_strWeaponSpriteName{ a_strSpriteName },
m_strBulletSpriteName{ a_strBulletSpriteName },
m_strWeaponFireAudID{ a_strWeaponFireAudID }
{

}
Expand All @@ -39,6 +40,7 @@ namespace ns_HMGame
m_strAnimOverrideTrigger = a_Other.m_strAnimOverrideTrigger;
m_strWeaponSpriteName = a_Other.m_strWeaponSpriteName;
m_strBulletSpriteName = a_Other.m_strBulletSpriteName;
m_strWeaponFireAudID = a_Other.m_strWeaponFireAudID;
}

WEAPON_TYPE WeaponData::getWeaponType() const
Expand Down Expand Up @@ -66,6 +68,11 @@ namespace ns_HMGame
return m_strBulletSpriteName;
}

std::string WeaponData::getWeaponFireAudID() const
{
return m_strWeaponFireAudID;
}

void WeaponData::fire(glm::vec2 a_v2Position, glm::vec2 a_v2Direction, glm::quat a_quatRotation)
{
if (GUN == m_WeaponAttackType)
Expand Down
4 changes: 3 additions & 1 deletion FretBuzz/Sandbox/game/managers/weapon/weapon_data.h
Original file line number Diff line number Diff line change
Expand Up @@ -16,14 +16,15 @@ namespace ns_HMGame

WeaponData(WEAPON_TYPE a_WeaponType);
WeaponData(const WeaponData& a_WeaponData);
WeaponData(WEAPON_ATTACK_TYPE a_WeaponAttackType, WEAPON_TYPE a_WeaponType, std::string a_strAnimOverrideTrigger, std::string a_strSpriteName, std::string a_strBulletSpriteName);
WeaponData(WEAPON_ATTACK_TYPE a_WeaponAttackType, WEAPON_TYPE a_WeaponType, std::string a_strAnimOverrideTrigger, std::string a_strSpriteName, std::string a_strBulletSpriteName, std::string a_strWeaponFireAudID);
~WeaponData();

WEAPON_TYPE getWeaponType() const;
WEAPON_ATTACK_TYPE getWeaponAttackType() const;
std::string getWeaponAnimTrigger() const;
std::string getWeaponSpriteName() const;
std::string getBulletSpriteName() const;
std::string getWeaponFireAudID() const;

void fire(glm::vec2 a_v2Position, glm::vec2 a_v3Direction,glm::quat a_quatRotation);

Expand All @@ -35,5 +36,6 @@ namespace ns_HMGame
std::string m_strAnimOverrideTrigger;
std::string m_strWeaponSpriteName;
std::string m_strBulletSpriteName;
std::string m_strWeaponFireAudID;
};
}
46 changes: 23 additions & 23 deletions FretBuzz/Sandbox/game/managers/weapon/weapon_manger.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -18,30 +18,30 @@ namespace ns_HMGame
}
s_pInstance = this;

m_WeaponMap.insert({ WEAPON_TYPE::WEAPON_UNARMED, WeaponData(WeaponData::WEAPON_ATTACK_TYPE::MELEE, WEAPON_TYPE::WEAPON_UNARMED, "unarmedidle" , "" ,"") });
m_WeaponMap.insert({ WEAPON_TYPE::WEAPON_GOLF_CLUB, WeaponData(WeaponData::WEAPON_ATTACK_TYPE::MELEE, WEAPON_TYPE::WEAPON_GOLF_CLUB, "" , "weapon_pickup|weapon_golf_club" ,"" ) });
m_WeaponMap.insert({ WEAPON_TYPE::WEAPON_PIPE, WeaponData(WeaponData::WEAPON_ATTACK_TYPE::MELEE, WEAPON_TYPE::WEAPON_PIPE, "pipeidle" , "weapon_pickup|weapon_pipe" ,"" ) });
m_WeaponMap.insert({ WEAPON_TYPE::WEAPON_BAT, WeaponData(WeaponData::WEAPON_ATTACK_TYPE::MELEE, WEAPON_TYPE::WEAPON_BAT, "batidle" , "weapon_pickup|weapon_bat" ,"" ) });
m_WeaponMap.insert({ WEAPON_TYPE::WEAPON_KNIFE, WeaponData(WeaponData::WEAPON_ATTACK_TYPE::MELEE, WEAPON_TYPE::WEAPON_KNIFE, "knifeidle" , "weapon_pickup|weapon_knife" ,"" ) });
m_WeaponMap.insert({ WEAPON_TYPE::WEAPON_M16, WeaponData(WeaponData::WEAPON_ATTACK_TYPE::GUN, WEAPON_TYPE::WEAPON_M16, "m16idle" , "weapon_pickup|weapon_M16" ,"weapon_pickup|bullet_m16" ) });
m_WeaponMap.insert({ WEAPON_TYPE::WEAPON_SHOTGUN, WeaponData(WeaponData::WEAPON_ATTACK_TYPE::GUN, WEAPON_TYPE::WEAPON_SHOTGUN, "" , "weapon_pickup|weapon_shotgun" ,"weapon_pickup|bullet_shotgun" ) });
m_WeaponMap.insert({ WEAPON_TYPE::WEAPON_DOUBLE_BARREL, WeaponData(WeaponData::WEAPON_ATTACK_TYPE::GUN, WEAPON_TYPE::WEAPON_DOUBLE_BARREL, "doublebarrelidle" , "weapon_pickup|weapon_doublebarrel" ,"weapon_pickup|bullet_shotgun" ) });
m_WeaponMap.insert({ WEAPON_TYPE::WEAPON_KATANA, WeaponData(WeaponData::WEAPON_ATTACK_TYPE::MELEE, WEAPON_TYPE::WEAPON_KATANA, "" , "weapon_pickup|weapon_katana" ,"" ) });
m_WeaponMap.insert({ WEAPON_TYPE::WEAPON_BOTTLE, WeaponData(WeaponData::WEAPON_ATTACK_TYPE::GUN, WEAPON_TYPE::WEAPON_BOTTLE, "" , "weapon_pickup|weapon_bottle" ,"" ) });
m_WeaponMap.insert({ WEAPON_TYPE::WEAPON_MAGNUM, WeaponData(WeaponData::WEAPON_ATTACK_TYPE::GUN, WEAPON_TYPE::WEAPON_MAGNUM, "magnumidle" , "weapon_pickup|weapon_magnum" ,"weapon_pickup|bullet_shotgun" ) });
m_WeaponMap.insert({ WEAPON_TYPE::WEAPON_UNARMED, WeaponData(WeaponData::WEAPON_ATTACK_TYPE::MELEE, WEAPON_TYPE::WEAPON_UNARMED, "unarmedidle" , "" ,"" ,"") });
m_WeaponMap.insert({ WEAPON_TYPE::WEAPON_GOLF_CLUB, WeaponData(WeaponData::WEAPON_ATTACK_TYPE::MELEE, WEAPON_TYPE::WEAPON_GOLF_CLUB, "" , "weapon_pickup|weapon_golf_club" ,"" ,"") });
m_WeaponMap.insert({ WEAPON_TYPE::WEAPON_PIPE, WeaponData(WeaponData::WEAPON_ATTACK_TYPE::MELEE, WEAPON_TYPE::WEAPON_PIPE, "pipeidle" , "weapon_pickup|weapon_pipe" ,"" ,"") });
m_WeaponMap.insert({ WEAPON_TYPE::WEAPON_BAT, WeaponData(WeaponData::WEAPON_ATTACK_TYPE::MELEE, WEAPON_TYPE::WEAPON_BAT, "batidle" , "weapon_pickup|weapon_bat" ,"" ,"") });
m_WeaponMap.insert({ WEAPON_TYPE::WEAPON_KNIFE, WeaponData(WeaponData::WEAPON_ATTACK_TYPE::MELEE, WEAPON_TYPE::WEAPON_KNIFE, "knifeidle" , "weapon_pickup|weapon_knife" ,"" ,"") });
m_WeaponMap.insert({ WEAPON_TYPE::WEAPON_M16, WeaponData(WeaponData::WEAPON_ATTACK_TYPE::GUN, WEAPON_TYPE::WEAPON_M16, "m16idle" , "weapon_pickup|weapon_M16" ,"weapon_pickup|bullet_m16" , "FireM16") });
m_WeaponMap.insert({ WEAPON_TYPE::WEAPON_SHOTGUN, WeaponData(WeaponData::WEAPON_ATTACK_TYPE::GUN, WEAPON_TYPE::WEAPON_SHOTGUN, "" , "weapon_pickup|weapon_shotgun" ,"weapon_pickup|bullet_shotgun", "" ) });
m_WeaponMap.insert({ WEAPON_TYPE::WEAPON_DOUBLE_BARREL, WeaponData(WeaponData::WEAPON_ATTACK_TYPE::GUN, WEAPON_TYPE::WEAPON_DOUBLE_BARREL, "doublebarrelidle" , "weapon_pickup|weapon_doublebarrel" ,"weapon_pickup|bullet_shotgun", "FireDoubleBarrell" ) });
m_WeaponMap.insert({ WEAPON_TYPE::WEAPON_KATANA, WeaponData(WeaponData::WEAPON_ATTACK_TYPE::MELEE, WEAPON_TYPE::WEAPON_KATANA, "" , "weapon_pickup|weapon_katana" ,"", "") });
m_WeaponMap.insert({ WEAPON_TYPE::WEAPON_BOTTLE, WeaponData(WeaponData::WEAPON_ATTACK_TYPE::GUN, WEAPON_TYPE::WEAPON_BOTTLE, "" , "weapon_pickup|weapon_bottle" ,"", "") });
m_WeaponMap.insert({ WEAPON_TYPE::WEAPON_MAGNUM, WeaponData(WeaponData::WEAPON_ATTACK_TYPE::GUN, WEAPON_TYPE::WEAPON_MAGNUM, "magnumidle" , "weapon_pickup|weapon_magnum" ,"weapon_pickup|bullet_shotgun", "") });

m_WeaponMap.insert({ WEAPON_TYPE::WEAPON_MACHETE, WeaponData(WeaponData::WEAPON_ATTACK_TYPE::MELEE, WEAPON_TYPE::WEAPON_MACHETE, "unarmedidle" ,"" ,"" ) });
m_WeaponMap.insert({ WEAPON_TYPE::WEAPON_CAN, WeaponData(WeaponData::WEAPON_ATTACK_TYPE::MELEE, WEAPON_TYPE::WEAPON_CAN, "unarmedidle" ,"" ,"" ) });
m_WeaponMap.insert({ WEAPON_TYPE::WEAPON_SUBMACHINE, WeaponData(WeaponData::WEAPON_ATTACK_TYPE::MELEE, WEAPON_TYPE::WEAPON_SUBMACHINE, "unarmedidle" ,"" ,"" ) });
m_WeaponMap.insert({ WEAPON_TYPE::WEAPON_HAMMER, WeaponData(WeaponData::WEAPON_ATTACK_TYPE::MELEE, WEAPON_TYPE::WEAPON_HAMMER, "unarmedidle" ,"" ,"" ) });
m_WeaponMap.insert({ WEAPON_TYPE::WEAPON_SHURIKEN, WeaponData(WeaponData::WEAPON_ATTACK_TYPE::MELEE, WEAPON_TYPE::WEAPON_SHURIKEN, "unarmedidle" ,"" ,"" ) });
m_WeaponMap.insert({ WEAPON_TYPE::WEAPON_DART, WeaponData(WeaponData::WEAPON_ATTACK_TYPE::MELEE, WEAPON_TYPE::WEAPON_DART, "unarmedidle" ,"" ,"" ) });
m_WeaponMap.insert({ WEAPON_TYPE::WEAPON_MP5, WeaponData(WeaponData::WEAPON_ATTACK_TYPE::MELEE, WEAPON_TYPE::WEAPON_MP5, "unarmedidle" ,"" ,"" ) });
m_WeaponMap.insert({ WEAPON_TYPE::WEAPON_AXE, WeaponData(WeaponData::WEAPON_ATTACK_TYPE::MELEE, WEAPON_TYPE::WEAPON_AXE, "unarmedidle" ,"" ,"" ) });
m_WeaponMap.insert({ WEAPON_TYPE::WEAPON_SCISSORS, WeaponData(WeaponData::WEAPON_ATTACK_TYPE::MELEE, WEAPON_TYPE::WEAPON_SCISSORS, "unarmedidle" ,"" ,"" ) });
m_WeaponMap.insert({ WEAPON_TYPE::WEAPON_SILENCER, WeaponData(WeaponData::WEAPON_ATTACK_TYPE::MELEE, WEAPON_TYPE::WEAPON_SILENCER, "unarmedidle" ,"" ,"" ) });
m_WeaponMap.insert({ WEAPON_TYPE::WEAPON_UZI, WeaponData(WeaponData::WEAPON_ATTACK_TYPE::MELEE, WEAPON_TYPE::WEAPON_UZI, "unarmedidle" ,"" ,"" ) });
m_WeaponMap.insert({ WEAPON_TYPE::WEAPON_BRICK, WeaponData(WeaponData::WEAPON_ATTACK_TYPE::MELEE, WEAPON_TYPE::WEAPON_BRICK, "unarmedidle" ,"" ,"" ) });
m_WeaponMap.insert({ WEAPON_TYPE::WEAPON_MACHETE, WeaponData(WeaponData::WEAPON_ATTACK_TYPE::MELEE, WEAPON_TYPE::WEAPON_MACHETE, "unarmedidle" ,"" ,"", "" ) });
m_WeaponMap.insert({ WEAPON_TYPE::WEAPON_CAN, WeaponData(WeaponData::WEAPON_ATTACK_TYPE::MELEE, WEAPON_TYPE::WEAPON_CAN, "unarmedidle" ,"" ,"", "" ) });
m_WeaponMap.insert({ WEAPON_TYPE::WEAPON_SUBMACHINE, WeaponData(WeaponData::WEAPON_ATTACK_TYPE::MELEE, WEAPON_TYPE::WEAPON_SUBMACHINE, "unarmedidle" ,"" ,"", "" ) });
m_WeaponMap.insert({ WEAPON_TYPE::WEAPON_HAMMER, WeaponData(WeaponData::WEAPON_ATTACK_TYPE::MELEE, WEAPON_TYPE::WEAPON_HAMMER, "unarmedidle" ,"" ,"", "" ) });
m_WeaponMap.insert({ WEAPON_TYPE::WEAPON_SHURIKEN, WeaponData(WeaponData::WEAPON_ATTACK_TYPE::MELEE, WEAPON_TYPE::WEAPON_SHURIKEN, "unarmedidle" ,"" ,"", "" ) });
m_WeaponMap.insert({ WEAPON_TYPE::WEAPON_DART, WeaponData(WeaponData::WEAPON_ATTACK_TYPE::MELEE, WEAPON_TYPE::WEAPON_DART, "unarmedidle" ,"" ,"", "" ) });
m_WeaponMap.insert({ WEAPON_TYPE::WEAPON_MP5, WeaponData(WeaponData::WEAPON_ATTACK_TYPE::MELEE, WEAPON_TYPE::WEAPON_MP5, "unarmedidle" ,"" ,"", "" ) });
m_WeaponMap.insert({ WEAPON_TYPE::WEAPON_AXE, WeaponData(WeaponData::WEAPON_ATTACK_TYPE::MELEE, WEAPON_TYPE::WEAPON_AXE, "unarmedidle" ,"" ,"", "" ) });
m_WeaponMap.insert({ WEAPON_TYPE::WEAPON_SCISSORS, WeaponData(WeaponData::WEAPON_ATTACK_TYPE::MELEE, WEAPON_TYPE::WEAPON_SCISSORS, "unarmedidle" ,"" ,"", "" ) });
m_WeaponMap.insert({ WEAPON_TYPE::WEAPON_SILENCER, WeaponData(WeaponData::WEAPON_ATTACK_TYPE::MELEE, WEAPON_TYPE::WEAPON_SILENCER, "unarmedidle" ,"" ,"", "" ) });
m_WeaponMap.insert({ WEAPON_TYPE::WEAPON_UZI, WeaponData(WeaponData::WEAPON_ATTACK_TYPE::MELEE, WEAPON_TYPE::WEAPON_UZI, "unarmedidle" ,"" ,"", "" ) });
m_WeaponMap.insert({ WEAPON_TYPE::WEAPON_BRICK, WeaponData(WeaponData::WEAPON_ATTACK_TYPE::MELEE, WEAPON_TYPE::WEAPON_BRICK, "unarmedidle" ,"" ,"", "" ) });

}

Expand Down
5 changes: 3 additions & 2 deletions FretBuzz/Sandbox/game/prefab/prefab_player.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -26,8 +26,9 @@ namespace ns_HMGame
l_RectColliderData.m_CollisionMask.addLayers(std::vector<std::string>{"BOUNDARY", "PICKUP", "BULLET"});
l_RectColliderData.m_CategoryMask.addLayers(std::vector<std::string>{"PLAYER"});

this->addComponent<FRETBUZZ::RectCollider>(l_RectColliderData);
this->addComponent<PlayerControllerHM>(l_pCamGameObj, l_pPlayerUpperGameObj, l_pPlayerLowerGameObj);
addComponent<FRETBUZZ::RectCollider>(l_RectColliderData);
addComponent<FRETBUZZ::AudioSource>("GunPickup", false);
addComponent<PlayerControllerHM>(l_pCamGameObj, l_pPlayerUpperGameObj, l_pPlayerLowerGameObj);

s_pInstance = this;
}
Expand Down
6 changes: 5 additions & 1 deletion FretBuzz/Sandbox/resources/assets/audio/audio.xml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,11 @@

<!-- AUDIO CLIPS START-->
<Audio>
<audio id="beats" file_name="HipHop.mp3"/>
<audio id="beats" file_name="HipHop.mp3"/>
<audio id="GunPickup" file_name="PickupWeapon.wav"/>
<audio id="FireM16" file_name="FireM16.wav"/>
<audio id="FireDoubleBarrell" file_name="FireDoubleBarrell.wav"/>
<audio id="WeaponThrow" file_name="WeaponThrow.wav"/>
</Audio>
<!-- AUDIO CLIPS END-->
</Assets>
Binary file not shown.
Binary file added FretBuzz/Sandbox/resources/audio/FireM16.wav
Binary file not shown.
Binary file added FretBuzz/Sandbox/resources/audio/PickupWeapon.wav
Binary file not shown.
Binary file added FretBuzz/Sandbox/resources/audio/WeaponThrow.wav
Binary file not shown.

0 comments on commit 26d95e3

Please sign in to comment.