Wrath of Zeus
Made by Torchlight Games for CSE 125 SP24
Loading...
Searching...
No Matches
soundtype.hpp
Go to the documentation of this file.
1#pragma once
2
3#include <string>
4#include <chrono>
5#include <unordered_map>
6
7using namespace std::chrono_literals;
8
9// Sounds that the client can decide to play on its own
10// (e.g. BGM, clicking on UI elements...)
11enum class ClientMusic {
17 // make sure to add to macro below!
18};
19
20#define GET_CLIENT_MUSICS() { \
21 ClientMusic::MenuTheme, ClientMusic::MazeExplorationPlayersTheme, \
22 ClientMusic::MazeExplorationDMTheme, ClientMusic::RelayRacePlayersTheme, \
23 ClientMusic::RelayRaceDMTheme \
24}
25
26enum class ClientSFX {
27 // TODO: decide what these are
30 // make sure to add to macro below!
31};
32
33#define GET_CLIENT_SFXS() { \
34 ClientSFX::VictoryThemePlayers, ClientSFX::VictoryThemeDM, \
35}
36
37// Sounds that correspond to something in the game world
38enum class ServerSFX {
55 Thunder,
56 Dagger,
57 Sword,
58 Hammer,
60 Python,
62 Potion,
63 Spell,
67 TEMP,
72 Wind,
74 // make sure to add to server sfx len map!
75 // make sure to add to macro below!
76};
77
78const std::unordered_map<ServerSFX, std::chrono::milliseconds> SERVER_SFX_LENS = {
79 {ServerSFX::ArrowShoot, 620ms},
80 {ServerSFX::ArrowImpact, 1030ms},
83 {ServerSFX::SlimeJump, 610ms},
84 {ServerSFX::SlimeLand, 760ms},
85 {ServerSFX::PlayerJump, 500ms},
86 {ServerSFX::PlayerLand, 500ms},
92 {ServerSFX::Dagger, 500ms},
93 {ServerSFX::Sword, 500ms},
94 {ServerSFX::Hammer, 1000ms},
95 {ServerSFX::Minotaur, 1000ms},
96 {ServerSFX::Python, 1000ms},
99 {ServerSFX::Thunder, 2500ms},
100
101 // used not for in game, but for the intro cutscene, so this is the duration of sound in intro cutscene
102 {ServerSFX::TorchLoop, 30000ms},
103 {ServerSFX::Wind, 14000ms},
104
106 {ServerSFX::ElectricHum, 1500ms},
107 {ServerSFX::IntroGateOpen, 9000ms},
108 {ServerSFX::ZeusStartTheme, 12000ms},
109 {ServerSFX::Teleport, 500ms},
110 {ServerSFX::Potion, 500ms},
111 {ServerSFX::Spell, 500ms},
112 {ServerSFX::ItemPickUp, 500ms},
113 {ServerSFX::ItemDrop, 500ms},
114 {ServerSFX::MirrorShatter, 2000ms},
115 {ServerSFX::MinotaurDeath, 3100ms},
116 // dont forget macro below!
117};
118
119#define GET_SERVER_SFXS() { \
120 ServerSFX::ArrowShoot, ServerSFX::FireballShoot, ServerSFX::ArrowImpact, ServerSFX::FireballImpact, \
121 ServerSFX::SlimeJump, ServerSFX::SlimeLand, ServerSFX::PlayerJump, ServerSFX::PlayerLand, \
122 ServerSFX::PlayerWalk1, ServerSFX::PlayerWalk2, ServerSFX::PlayerWalk3, ServerSFX::PlayerWalk4, ServerSFX::PlayerWalk5, \
123 ServerSFX::CeilingSpikeTrigger, ServerSFX::CeilingSpikeImpact, ServerSFX::TorchLoop, ServerSFX::Thunder,\
124 ServerSFX::Dagger, ServerSFX::Sword, ServerSFX::Hammer, ServerSFX::Minotaur, ServerSFX::Python, \
125 ServerSFX::PlayersStartTheme, ServerSFX::ElectricHum, ServerSFX::IntroGateOpen, ServerSFX::ZeusStartTheme, \
126 ServerSFX::Wind, \
127 ServerSFX::Teleport, ServerSFX::Potion, ServerSFX::Spell, ServerSFX::ItemPickUp, ServerSFX::ItemDrop, \
128 ServerSFX::MirrorShatter, ServerSFX::MinotaurDeath \
129}
130
131// const std::unordered_map<ServerSound, size_t> serverSoundTickLengths = {
132// {ServerSound::ArrowShoot, 100},
133// };
134
135std::string getAudioPath(ClientMusic music);
136std::string getAudioPath(ClientSFX sfx);
137std::string getAudioPath(ServerSFX sfx);
std::string getAudioPath(ClientMusic music)
Definition: soundtype.cpp:101
const std::unordered_map< ServerSFX, std::chrono::milliseconds > SERVER_SFX_LENS
Definition: soundtype.hpp:78
ServerSFX
Definition: soundtype.hpp:38
@ PlayersStartTheme
@ CeilingSpikeTrigger
@ CeilingSpikeImpact
ClientSFX
Definition: soundtype.hpp:26
@ VictoryThemePlayers
ClientMusic
Definition: soundtype.hpp:11
@ MazeExplorationPlayersTheme
@ RelayRacePlayersTheme
@ MazeExplorationDMTheme