OpenGothic
Open source reimplementation of Gothic I and II
Loading...
Searching...
No Matches
gamemusic.h
Go to the documentation of this file.
1
#pragma once
2
3
#include <zenkit/addon/daedalus.hh>
4
5
#include <Tempest/SoundDevice>
6
#include <Tempest/SoundEffect>
7
8
class
GameMusic
final {
9
public
:
10
GameMusic
();
11
GameMusic
(
const
GameMusic
&)=
delete
;
12
~GameMusic
();
13
14
static
GameMusic
&
inst
();
15
16
enum
Music
: uint8_t {
17
SysLoading
18
};
19
20
enum
Tags
: uint8_t {
21
Day
= 0,
22
Ngt
= 1<<0,
23
24
Std
= 0,
25
Fgt
= 1<<1,
26
Thr
= 1<<2
27
};
28
29
static
Tags
mkTags
(
Tags
daytime,
Tags
mode);
30
31
void
setEnabled
(
bool
e);
32
bool
isEnabled
()
const
;
33
void
setMusic
(
Music
m);
34
void
setMusic
(
const
zenkit::IMusicTheme &
theme
,
Tags
t);
35
void
stopMusic
();
36
37
private
:
38
struct
MusicProvider;
39
struct
OpenGothicMusicProvider;
40
struct
GothicKitMusicProvider;
41
42
void
setupSettings();
43
44
static
GameMusic
*
instance
;
45
46
struct
{
47
zenkit::IMusicTheme
theme
= {};
48
Tags
tags
=
Tags::Std
;
49
} currentMusic;
50
51
int
provider = -1;
52
Tempest::SoundDevice device;
53
Tempest::SoundEffect sound;
54
MusicProvider* impl =
nullptr
;
55
};
GameMusic
Definition
gamemusic.h:8
GameMusic::setEnabled
void setEnabled(bool e)
Definition
gamemusic.cpp:359
GameMusic::mkTags
static Tags mkTags(Tags daytime, Tags mode)
Definition
gamemusic.cpp:355
GameMusic::GameMusic
GameMusic()
Definition
gamemusic.cpp:337
GameMusic::~GameMusic
~GameMusic()
Definition
gamemusic.cpp:345
GameMusic::Music
Music
Definition
gamemusic.h:16
GameMusic::SysLoading
@ SysLoading
Definition
gamemusic.h:17
GameMusic::inst
static GameMusic & inst()
Definition
gamemusic.cpp:351
GameMusic::theme
zenkit::IMusicTheme theme
Definition
gamemusic.h:47
GameMusic::setMusic
void setMusic(Music m)
Definition
gamemusic.cpp:367
GameMusic::GameMusic
GameMusic(const GameMusic &)=delete
GameMusic::isEnabled
bool isEnabled() const
Definition
gamemusic.cpp:363
GameMusic::Tags
Tags
Definition
gamemusic.h:20
GameMusic::Thr
@ Thr
Definition
gamemusic.h:26
GameMusic::Fgt
@ Fgt
Definition
gamemusic.h:25
GameMusic::Std
@ Std
Definition
gamemusic.h:24
GameMusic::Ngt
@ Ngt
Definition
gamemusic.h:22
GameMusic::Day
@ Day
Definition
gamemusic.h:21
GameMusic::stopMusic
void stopMusic()
Definition
gamemusic.cpp:384
GameMusic::tags
Tags tags
Definition
gamemusic.h:48
instance
static CommandLine * instance
Definition
commandline.cpp:21
game
gamemusic.h
Generated by
1.9.8