You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
1071 lines
14 KiB
1071 lines
14 KiB
/** |
|
* @file effects.h |
|
* |
|
* Interface of functions for loading and playing sounds. |
|
*/ |
|
#pragma once |
|
|
|
#include <cstdint> |
|
#include <memory> |
|
#include <string> |
|
|
|
#include "engine/sound.h" |
|
|
|
namespace devilution { |
|
|
|
enum class HeroSpeech : uint8_t { |
|
ChamberOfBoneLore, |
|
HorazonsSanctumLore, |
|
GolemSpellLore, |
|
HorazonsCreatureOfFlameLore, |
|
MortaVespaGaieaInnuminoEvegeenJatanLuaGraton, |
|
GrimspikeLieutenantOfBelialLore, |
|
HorazonsJournal, |
|
YourDeathWillBeAvenged, |
|
RestInPeaceMyFriend, |
|
ValorLore, |
|
HallsOfTheBlindLore, |
|
WarlordOfBloodLore, |
|
ICantUseThisYet, |
|
ICantCarryAnymore, |
|
IHaveNoRoom, |
|
WhereWouldIPutThis, |
|
NoWay, |
|
NotAChance, |
|
IdNeverUseThis, |
|
IdHaveToEquipThat, |
|
ICantMoveThis, |
|
ICantMoveThisYet, |
|
ICantOpenThis, |
|
ICantOpenThisYet, |
|
ICantLiftThis, |
|
ICantLiftThisYet, |
|
ICantCastThatHere, |
|
ICantCastThatYet, |
|
ThatDidntDoAnything, |
|
ICanAlreadyDoThat, |
|
IDontNeedThat, |
|
IDontNeedToDoThat, |
|
IDontWantThat, |
|
IDontHaveASpellReady, |
|
NotEnoughMana, |
|
ThatWouldKillMe, |
|
ICantDoThat, |
|
No, |
|
Yes, |
|
ThatWontWork, |
|
ThatWontWorkHere, |
|
ThatWontWorkYet, |
|
ICantGetThereFromHere, |
|
ItsTooHeavy, |
|
ItsTooBig, |
|
JustWhatIWasLookingFor, |
|
IveGotABadFeelingAboutThis, |
|
GotMilk, |
|
ImNotThirsty, |
|
ImNoMilkmaid, |
|
ICouldBlowUpTheWholeVillage, |
|
YepThatsACowAlright, |
|
TooUghHeavy, |
|
InSpirituSanctum, |
|
PraedictumOtium, |
|
EfficioObitusUtInimicus, |
|
TheEnchantmentIsGone, |
|
OhTooEasy, |
|
BackToTheGrave, |
|
TimeToDie, |
|
ImNotImpressed, |
|
ImSorryDidIBreakYourConcentration, |
|
VengeanceIsMine, |
|
Die, |
|
Yeah, |
|
Ah, |
|
Phew, |
|
Argh, |
|
ArghClang, |
|
Aaaaargh, |
|
OofAh, |
|
HeavyBreathing, |
|
Oh, |
|
Wow, |
|
ThankTheLight, |
|
WhatWasThat, |
|
MmHmm, |
|
Hmm, |
|
UhHuh, |
|
TheSpiritsOfTheDeadAreNowAvenged, |
|
TheTownIsSafeFromTheseFoulSpawn, |
|
RestWellLeoricIllFindYourSon, |
|
YourMadnessEndsHereBetrayer, |
|
YoullLureNoMoreMenToTheirDeaths, |
|
ReturnToHeavenWarriorOfLight, |
|
ICanSeeWhyTheyFearThisWeapon, |
|
ThisMustBeWhatGriswoldWanted, |
|
INeedToGetThisToLachdanan, |
|
INeedToGetThisToGriswold, |
|
IveNeverBeenHereBefore, |
|
MayTheSpiritOfArkaineProtectMe, |
|
ThisIsAPlaceOfGreatPower, |
|
ThisBladeMustBeDestroyed, |
|
YourReignOfPainHasEnded, |
|
NowThatsOneBigMushroom, |
|
TheSmellOfDeathSurroundsMe, |
|
TheSanctityOfThisPlaceHasBeenFouled, |
|
ItsHotDownHere, |
|
IMustBeGettingClose, |
|
MaybeItsLockedFromTheInside, |
|
LooksLikeItsRustedShut, |
|
MaybeTheresAnotherWay, |
|
AuughUh, |
|
|
|
LAST = AuughUh |
|
}; |
|
|
|
enum class SfxID : int16_t { |
|
Walk, |
|
ShootBow, |
|
CastSpell, |
|
Swing, |
|
Swing2, |
|
WarriorDeath, |
|
ShootBow2, |
|
ShootFireballBow, |
|
QuestDone, |
|
BarrelExpload, |
|
BarrelBreak, |
|
PodExpload, |
|
PodPop, |
|
UrnExpload, |
|
UrnBreak, |
|
ChestOpen, |
|
DoorClose, |
|
DoorOpen, |
|
ItemAnvilFlip, |
|
ItemAxeFlip, |
|
ItemBloodStoneFlip, |
|
ItemBodyPartFlip, |
|
ItemBookFlip, |
|
ItemBowFlip, |
|
ItemCapFlip, |
|
ItemArmorFlip, |
|
ItemLeatherFlip, |
|
ItemMushroomFlip, |
|
ItemPotionFlip, |
|
ItemRingFlip, |
|
ItemRockFlip, |
|
ItemScrollFlip, |
|
ItemShieldFlip, |
|
ItemSignFlip, |
|
ItemStaffFlip, |
|
ItemSwordFlip, |
|
ItemGold, |
|
ItemAnvil, |
|
ItemAxe, |
|
ItemBloodStone, |
|
ItemBodyPart, |
|
ItemBook, |
|
ItemBow, |
|
ItemCap, |
|
GrabItem, |
|
ItemArmor, |
|
ItemLeather, |
|
ItemMushroom, |
|
ItemPotion, |
|
ItemRing, |
|
ItemRock, |
|
ItemScroll, |
|
ItemShield, |
|
ItemSign, |
|
ItemStaff, |
|
ItemSword, |
|
OperateLever, |
|
OperateShrine, |
|
OperateShrine1, |
|
ReadBook, |
|
Sarcophagus, |
|
MenuMove, |
|
MenuSelect, |
|
TriggerTrap, |
|
CastFire, |
|
CastLightning, |
|
CastSkill, |
|
SpellEnd, |
|
CastHealing, |
|
SpellRepair, |
|
SpellAcid, |
|
SpellAcid1, |
|
SpellApocalypse, |
|
SpellBloodStar, |
|
SpellBloodStarHit, |
|
SpellBoneSpirit, |
|
SpellBoneSpiritHit, |
|
OperateCaldron, |
|
SpellChargedBolt, |
|
SpellDoomSerpents, // Unused |
|
SpellLightningHit, |
|
SpellElemental, |
|
SpellEtherealize, |
|
SpellFirebolt, |
|
SpellFireHit, |
|
SpellFlameWave, |
|
OperateFountain, |
|
SpellGolem, |
|
OperateGoatShrine, |
|
SpellGuardian, |
|
SpellHolyBolt, |
|
SpellInfravision, |
|
SpellInvisibility, // Unused |
|
SpellLightning, |
|
SpellManaShield, |
|
BigExplosion, |
|
SpellNova, |
|
SpellPuddle, |
|
SpellResurrect, |
|
SpellStoneCurse, |
|
SpellPortal, |
|
SpellInferno, |
|
SpellTrapDisarm, |
|
SpellTeleport, |
|
SpellFireWall, |
|
SpellLightningWall, |
|
Gillian1, |
|
Gillian2, |
|
Gillian3, |
|
Gillian4, |
|
Gillian5, |
|
Gillian6, |
|
Gillian7, |
|
Gillian8, |
|
Gillian9, |
|
Gillian10, |
|
Gillian11, |
|
Gillian12, |
|
Gillian13, |
|
Gillian14, |
|
Gillian15, |
|
Gillian16, |
|
Gillian17, |
|
Gillian18, |
|
Gillian19, |
|
Gillian20, |
|
Gillian21, |
|
Gillian22, |
|
Gillian23, |
|
Gillian24, |
|
Gillian25, |
|
Gillian26, |
|
Gillian27, |
|
Gillian28, |
|
Gillian29, |
|
Gillian30, |
|
Gillian31, |
|
Gillian32, |
|
Gillian33, |
|
Gillian34, |
|
Gillian35, |
|
Gillian36, |
|
Gillian37, |
|
Gillian38, |
|
Gillian39, |
|
Gillian40, |
|
Griswold1, |
|
Griswold2, |
|
Griswold3, |
|
Griswold4, |
|
Griswold5, |
|
Griswold6, |
|
Griswold7, |
|
Griswold8, |
|
Griswold9, |
|
Griswold10, |
|
Griswold12, |
|
Griswold13, |
|
Griswold14, |
|
Griswold15, |
|
Griswold16, |
|
Griswold17, |
|
Griswold18, |
|
Griswold19, |
|
Griswold20, |
|
Griswold21, |
|
Griswold22, |
|
Griswold23, |
|
Griswold24, |
|
Griswold25, |
|
Griswold26, |
|
Griswold27, |
|
Griswold28, |
|
Griswold29, |
|
Griswold30, |
|
Griswold31, |
|
Griswold32, |
|
Griswold33, |
|
Griswold34, |
|
Griswold35, |
|
Griswold36, |
|
Griswold37, |
|
Griswold38, |
|
Griswold39, |
|
Griswold40, |
|
Griswold41, |
|
Griswold42, |
|
Griswold43, |
|
Griswold44, |
|
Griswold45, |
|
Griswold46, |
|
Griswold47, |
|
Griswold48, |
|
Griswold49, |
|
Griswold50, |
|
Griswold51, |
|
Griswold52, |
|
Griswold53, |
|
Griswold55, |
|
Griswold56, |
|
Cow1, |
|
Cow2, |
|
Pig, |
|
WoundedTownsmanOld, // Unused |
|
Farnham1, |
|
Farnham2, |
|
Farnham3, |
|
Farnham4, |
|
Farnham5, |
|
Farnham6, |
|
Farnham7, |
|
Farnham8, |
|
Farnham9, |
|
Farnham10, |
|
Farnham11, |
|
Farnham12, |
|
Farnham13, |
|
Farnham14, |
|
Farnham15, |
|
Farnham16, |
|
Farnham17, |
|
Farnham18, |
|
Farnham19, |
|
Farnham20, |
|
Farnham21, |
|
Farnham22, |
|
Farnham23, |
|
Farnham24, |
|
Farnham25, |
|
Farnham26, |
|
Farnham27, |
|
Farnham28, |
|
Farnham29, |
|
Farnham30, |
|
Farnham31, |
|
Farnham32, |
|
Farnham33, |
|
Farnham34, |
|
Farnham35, |
|
Pepin1, |
|
Pepin2, |
|
Pepin3, |
|
Pepin4, |
|
Pepin5, |
|
Pepin6, |
|
Pepin7, |
|
Pepin8, |
|
Pepin9, |
|
Pepin10, |
|
Pepin11, |
|
Pepin12, |
|
Pepin13, |
|
Pepin14, |
|
Pepin15, |
|
Pepin16, |
|
Pepin17, |
|
Pepin18, |
|
Pepin19, |
|
Pepin20, |
|
Pepin21, |
|
Pepin22, |
|
Pepin23, |
|
Pepin24, |
|
Pepin25, |
|
Pepin26, |
|
Pepin27, |
|
Pepin28, |
|
Pepin29, |
|
Pepin30, |
|
Pepin31, |
|
Pepin32, |
|
Pepin33, |
|
Pepin34, |
|
Pepin35, |
|
Pepin36, |
|
Pepin37, |
|
Pepin38, |
|
Pepin39, |
|
Pepin40, |
|
Pepin41, |
|
Pepin42, |
|
Pepin43, |
|
Pepin44, |
|
Pepin45, |
|
Pepin46, |
|
Pepin47, |
|
Wirt1, |
|
Wirt2, |
|
Wirt3, |
|
Wirt4, |
|
Wirt5, |
|
Wirt6, |
|
Wirt7, |
|
Wirt8, |
|
Wirt9, |
|
Wirt10, |
|
Wirt11, |
|
Wirt12, |
|
Wirt13, |
|
Wirt14, |
|
Wirt15, |
|
Wirt16, |
|
Wirt17, |
|
Wirt18, |
|
Wirt19, |
|
Wirt20, |
|
Wirt21, |
|
Wirt22, |
|
Wirt23, |
|
Wirt24, |
|
Wirt25, |
|
Wirt26, |
|
Wirt27, |
|
Wirt28, |
|
Wirt29, |
|
Wirt30, |
|
Wirt31, |
|
Wirt32, |
|
Wirt33, |
|
Wirt34, |
|
Wirt35, |
|
Wirt36, |
|
Wirt37, |
|
Wirt38, |
|
Wirt39, |
|
Wirt40, |
|
Wirt41, |
|
Wirt42, |
|
Wirt43, |
|
Tremain0, // Unused |
|
Tremain1, // Unused |
|
Tremain2, // Unused |
|
Tremain3, // Unused |
|
Tremain4, // Unused |
|
Tremain5, // Unused |
|
Tremain6, // Unused |
|
Tremain7, // Unused |
|
Cain0, |
|
Cain1, |
|
Cain2, |
|
Cain3, |
|
Cain4, |
|
Cain5, |
|
Cain6, |
|
Cain7, |
|
Cain8, |
|
Cain9, |
|
Cain10, |
|
Cain11, |
|
Cain12, |
|
Cain13, |
|
Cain14, |
|
Cain15, |
|
Cain16, |
|
Cain17, |
|
Cain18, |
|
Cain19, |
|
Cain20, |
|
Cain21, |
|
Cain22, |
|
Cain23, |
|
Cain24, |
|
Cain25, |
|
Cain26, |
|
Cain27, |
|
Cain28, |
|
Cain29, |
|
Cain30, |
|
Cain31, |
|
Cain33, |
|
Cain34, |
|
Cain35, |
|
Cain36, |
|
Cain37, |
|
Cain38, |
|
Ogden0, |
|
Ogden1, |
|
Ogden2, |
|
Ogden3, |
|
Ogden4, |
|
Ogden5, |
|
Ogden6, |
|
Ogden7, |
|
Ogden8, |
|
Ogden9, |
|
Ogden10, |
|
Ogden11, |
|
Ogden12, |
|
Ogden13, |
|
Ogden14, |
|
Ogden15, |
|
Ogden16, |
|
Ogden17, |
|
Ogden18, |
|
Ogden19, |
|
Ogden20, |
|
Ogden21, |
|
Ogden22, |
|
Ogden23, |
|
Ogden24, |
|
Ogden25, |
|
Ogden26, |
|
Ogden27, |
|
Ogden28, |
|
Ogden29, |
|
Ogden30, |
|
Ogden31, |
|
Ogden32, |
|
Ogden33, |
|
Ogden34, |
|
Ogden35, |
|
Ogden36, |
|
Ogden37, |
|
Ogden38, |
|
Ogden39, |
|
Ogden40, |
|
Ogden41, |
|
Ogden43, |
|
Ogden44, |
|
Ogden45, |
|
Adria1, |
|
Adria2, |
|
Adria3, |
|
Adria4, |
|
Adria5, |
|
Adria6, |
|
Adria7, |
|
Adria8, |
|
Adria9, |
|
Adria10, |
|
Adria11, |
|
Adria12, |
|
Adria13, |
|
Adria14, |
|
Adria15, |
|
Adria16, |
|
Adria17, |
|
Adria18, |
|
Adria19, |
|
Adria20, |
|
Adria21, |
|
Adria22, |
|
Adria23, |
|
Adria24, |
|
Adria25, |
|
Adria26, |
|
Adria27, |
|
Adria28, |
|
Adria29, |
|
Adria30, |
|
Adria31, |
|
Adria32, |
|
Adria33, |
|
Adria34, |
|
Adria35, |
|
Adria36, |
|
Adria37, |
|
Adria38, |
|
Adria39, |
|
Adria40, |
|
Adria41, |
|
Adria42, |
|
Adria43, |
|
Adria44, |
|
Adria45, |
|
Adria46, |
|
Adria47, |
|
Adria48, |
|
Adria49, |
|
Adria50, |
|
WoundedTownsman, |
|
Sorceror1, |
|
Sorceror2, |
|
Sorceror3, |
|
Sorceror4, |
|
Sorceror5, |
|
Sorceror6, |
|
Sorceror7, |
|
Sorceror8, |
|
Sorceror9, |
|
Sorceror10, |
|
Sorceror11, |
|
Sorceror12, |
|
Sorceror13, |
|
Sorceror14, |
|
Sorceror15, |
|
Sorceror16, |
|
Sorceror17, |
|
Sorceror18, |
|
Sorceror19, |
|
Sorceror20, |
|
Sorceror21, |
|
Sorceror22, |
|
Sorceror23, |
|
Sorceror24, |
|
Sorceror25, |
|
Sorceror26, |
|
Sorceror27, |
|
Sorceror28, |
|
Sorceror29, |
|
Sorceror30, |
|
Sorceror31, |
|
Sorceror32, |
|
Sorceror33, |
|
Sorceror34, |
|
Sorceror35, |
|
Sorceror36, |
|
Sorceror37, |
|
Sorceror38, |
|
Sorceror39, |
|
Sorceror40, |
|
Sorceror41, |
|
Sorceror42, |
|
Sorceror43, |
|
Sorceror44, |
|
Sorceror45, |
|
Sorceror46, |
|
Sorceror47, |
|
Sorceror48, |
|
Sorceror49, |
|
Sorceror50, |
|
Sorceror51, |
|
Sorceror52, |
|
Sorceror53, |
|
Sorceror54, |
|
Sorceror55, |
|
Sorceror56, |
|
Sorceror57, |
|
Sorceror58, |
|
Sorceror59, |
|
Sorceror60, |
|
Sorceror61, |
|
Sorceror62, |
|
Sorceror63, |
|
Sorceror64, |
|
Sorceror65, |
|
Sorceror66, |
|
Sorceror67, |
|
Sorceror68, |
|
Sorceror69, |
|
Sorceror69b, |
|
Sorceror70, |
|
Sorceror71, |
|
Sorceror72, |
|
Sorceror73, |
|
Sorceror74, |
|
Sorceror75, |
|
Sorceror76, |
|
Sorceror77, |
|
Sorceror78, |
|
Sorceror79, |
|
Sorceror80, |
|
Sorceror81, |
|
Sorceror82, |
|
Sorceror83, |
|
Sorceror84, |
|
Sorceror85, |
|
Sorceror86, |
|
Sorceror87, |
|
Sorceror88, |
|
Sorceror89, |
|
Sorceror90, |
|
Sorceror91, |
|
Sorceror92, |
|
Sorceror93, |
|
Sorceror94, |
|
Sorceror95, |
|
Sorceror96, |
|
Sorceror97, |
|
Sorceror98, |
|
Sorceror99, |
|
Sorceror100, |
|
Sorceror101, |
|
Sorceror102, |
|
Rogue1, |
|
Rogue2, |
|
Rogue3, |
|
Rogue4, |
|
Rogue5, |
|
Rogue6, |
|
Rogue7, |
|
Rogue8, |
|
Rogue9, |
|
Rogue10, |
|
Rogue11, |
|
Rogue12, |
|
Rogue13, |
|
Rogue14, |
|
Rogue15, |
|
Rogue16, |
|
Rogue17, |
|
Rogue18, |
|
Rogue19, |
|
Rogue20, |
|
Rogue21, |
|
Rogue22, |
|
Rogue23, |
|
Rogue24, |
|
Rogue25, |
|
Rogue26, |
|
Rogue27, |
|
Rogue28, |
|
Rogue29, |
|
Rogue30, |
|
Rogue31, |
|
Rogue32, |
|
Rogue33, |
|
Rogue34, |
|
Rogue35, |
|
Rogue36, |
|
Rogue37, |
|
Rogue38, |
|
Rogue39, |
|
Rogue40, |
|
Rogue41, |
|
Rogue42, |
|
Rogue43, |
|
Rogue44, |
|
Rogue45, |
|
Rogue46, |
|
Rogue47, |
|
Rogue48, |
|
Rogue49, |
|
Rogue50, |
|
Rogue51, |
|
Rogue52, |
|
Rogue53, |
|
Rogue54, |
|
Rogue55, |
|
Rogue56, |
|
Rogue57, |
|
Rogue58, |
|
Rogue59, |
|
Rogue60, |
|
Rogue61, |
|
Rogue62, |
|
Rogue63, |
|
Rogue64, |
|
Rogue65, |
|
Rogue66, |
|
Rogue67, |
|
Rogue68, |
|
Rogue69, |
|
Rogue69b, |
|
Rogue70, |
|
Rogue71, |
|
Rogue72, |
|
Rogue73, |
|
Rogue74, |
|
Rogue75, |
|
Rogue76, |
|
Rogue77, |
|
Rogue78, |
|
Rogue79, |
|
Rogue80, |
|
Rogue81, |
|
Rogue82, |
|
Rogue83, |
|
Rogue84, |
|
Rogue85, |
|
Rogue86, |
|
Rogue87, |
|
Rogue88, |
|
Rogue89, |
|
Rogue90, |
|
Rogue91, |
|
Rogue92, |
|
Rogue93, |
|
Rogue94, |
|
Rogue95, |
|
Rogue96, |
|
Rogue97, |
|
Rogue98, |
|
Rogue99, |
|
Rogue100, |
|
Rogue101, |
|
Rogue102, |
|
Warrior1, |
|
Warrior2, |
|
Warrior3, |
|
Warrior4, |
|
Warrior5, |
|
Warrior6, |
|
Warrior7, |
|
Warrior8, |
|
Warrior9, |
|
Warrior10, |
|
Warrior11, |
|
Warrior12, |
|
Warrior13, |
|
Warrior14, |
|
Warrior14b, |
|
Warrior14c, |
|
Warrior15, |
|
Warrior15b, |
|
Warrior15c, |
|
Warrior16, |
|
Warrior16b, |
|
Warrior16c, |
|
Warrior17, |
|
Warrior18, |
|
Warrior19, |
|
Warrior20, |
|
Warrior21, |
|
Warrior22, |
|
Warrior23, |
|
Warrior24, |
|
Warrior25, |
|
Warrior26, |
|
Warrior27, |
|
Warrior28, |
|
Warrior29, |
|
Warrior30, |
|
Warrior31, |
|
Warrior32, |
|
Warrior33, |
|
Warrior34, |
|
Warrior35, |
|
Warrior36, |
|
Warrior37, |
|
Warrior38, |
|
Warrior39, |
|
Warrior40, |
|
Warrior41, |
|
Warrior42, |
|
Warrior43, |
|
Warrior44, |
|
Warrior45, |
|
Warrior46, |
|
Warrior47, |
|
Warrior48, |
|
Warrior49, |
|
Warrior50, |
|
Warrior51, |
|
Warrior52, |
|
Warrior53, |
|
Warrior54, |
|
Warrior55, |
|
Warrior56, |
|
Warrior57, |
|
Warrior58, |
|
Warrior59, |
|
Warrior60, |
|
Warrior61, |
|
Warrior62, |
|
Warrior63, |
|
Warrior64, |
|
Warrior65, |
|
Warrior66, |
|
Warrior67, |
|
Warrior68, |
|
Warrior69, |
|
Warrior69b, |
|
Warrior70, |
|
Warrior71, |
|
Warrior72, |
|
Warrior73, |
|
Warrior74, |
|
Warrior75, |
|
Warrior76, |
|
Warrior77, |
|
Warrior78, |
|
Warrior79, |
|
Warrior80, |
|
Warrior81, |
|
Warrior82, |
|
Warrior83, |
|
Warrior84, |
|
Warrior85, |
|
Warrior86, |
|
Warrior87, |
|
Warrior88, |
|
Warrior89, |
|
Warrior90, |
|
Warrior91, |
|
Warrior92, |
|
Warrior93, |
|
Warrior94, |
|
Warrior95, |
|
Warrior96b, |
|
Warrior97, |
|
Warrior98, |
|
Warrior99, |
|
Warrior100, |
|
Warrior101, |
|
Warrior102, |
|
Monk1, |
|
Monk8, |
|
Monk9, |
|
Monk10, |
|
Monk11, |
|
Monk12, |
|
Monk13, |
|
Monk14, |
|
Monk15, |
|
Monk16, |
|
Monk24, |
|
Monk27, |
|
Monk29, |
|
Monk34, |
|
Monk35, |
|
Monk43, |
|
Monk46, |
|
Monk49, |
|
Monk50, |
|
Monk52, |
|
Monk54, |
|
Monk55, |
|
Monk56, |
|
Monk61, |
|
Monk62, |
|
Monk68, |
|
Monk69, |
|
Monk69b, |
|
Monk70, |
|
Monk71, |
|
Monk79, |
|
Monk80, |
|
Monk82, |
|
Monk83, |
|
Monk87, |
|
Monk88, |
|
Monk89, |
|
Monk91, |
|
Monk92, |
|
Monk94, |
|
Monk95, |
|
Monk96, |
|
Monk97, |
|
Monk98, |
|
Monk99, |
|
Narrator1, |
|
Narrator2, |
|
Narrator3, |
|
Narrator4, |
|
Narrator5, |
|
Narrator6, |
|
Narrator7, |
|
Narrator8, |
|
Narrator9, |
|
DiabloGreeting, |
|
ButcherGreeting, |
|
Gharbad1, |
|
Gharbad2, |
|
Gharbad3, |
|
Gharbad4, |
|
Lachdanan1, |
|
Lachdanan2, |
|
Lachdanan3, |
|
LazarusGreeting, |
|
LeoricGreeting, |
|
Snotspill1, |
|
Snotspill2, |
|
Snotspill3, |
|
Warlord, |
|
Zhar1, |
|
Zhar2, |
|
DiabloDeath, |
|
Farmer1, |
|
Farmer2, |
|
Farmer2a, |
|
Farmer3, |
|
Farmer4, |
|
Farmer5, |
|
Farmer6, |
|
Farmer7, |
|
Farmer8, |
|
Farmer9, |
|
Celia1, |
|
Celia2, |
|
Celia3, |
|
Celia4, |
|
Defiler1, |
|
Defiler2, |
|
Defiler3, |
|
Defiler4, |
|
Defiler8, |
|
Defiler6, |
|
Defiler7, |
|
NaKrul1, |
|
NaKrul2, |
|
NaKrul3, |
|
NaKrul4, |
|
NaKrul5, |
|
NaKrul6, |
|
NarratorHF3, |
|
CompleteNut1, |
|
CompleteNut2, |
|
CompleteNut3, |
|
CompleteNut4, |
|
CompleteNut4a, |
|
CompleteNut5, |
|
CompleteNut6, |
|
CompleteNut7, |
|
CompleteNut8, |
|
CompleteNut9, |
|
CompleteNut10, |
|
CompleteNut11, |
|
CompleteNut12, |
|
NarratorHF6, |
|
NarratorHF7, |
|
NarratorHF8, |
|
NarratorHF5, |
|
NarratorHF9, |
|
NarratorHF4, |
|
CryptDoorOpen, |
|
CryptDoorClose, |
|
|
|
LAST = SfxID::CryptDoorClose, |
|
None = -1, |
|
}; |
|
|
|
enum sfx_flag : uint8_t { |
|
// clang-format off |
|
sfx_STREAM = 1 << 0, |
|
sfx_MISC = 1 << 1, |
|
sfx_UI = 1 << 2, |
|
sfx_MONK = 1 << 3, |
|
sfx_ROGUE = 1 << 4, |
|
sfx_WARRIOR = 1 << 5, |
|
sfx_SORCERER = 1 << 6, |
|
sfx_HELLFIRE = 1 << 7, |
|
// clang-format on |
|
}; |
|
|
|
struct TSFX { |
|
uint8_t bFlags; |
|
std::string pszName; |
|
std::unique_ptr<TSnd> pSnd; |
|
}; |
|
|
|
extern int sfxdelay; |
|
extern SfxID sfxdnum; |
|
|
|
bool effect_is_playing(SfxID nSFX); |
|
void stream_stop(); |
|
void PlaySFX(SfxID psfx); |
|
void PlaySfxLoc(SfxID psfx, Point position, bool randomizeByCategory = true); |
|
void sound_stop(); |
|
void sound_update(); |
|
void effects_cleanup_sfx(); |
|
void sound_init(); |
|
void ui_sound_init(); |
|
void effects_play_sound(SfxID); |
|
int GetSFXLength(SfxID nSFX); |
|
|
|
} // namespace devilution
|
|
|