OpenGothic
Open source reimplementation of Gothic I and II
Loading...
Searching...
No Matches
musicdefinitions.cpp
Go to the documentation of this file.
1
#include "
musicdefinitions.h
"
2
3
#include <Tempest/Log>
4
5
#include "
gothic.h
"
6
7
using namespace
Tempest;
8
9
MusicDefinitions::MusicDefinitions
() {
10
vm =
Gothic::inst
().
createPhoenixVm
(
"Music.dat"
);
11
12
vm->enumerate_instances_by_class_name(
"C_MusicTheme"
, [
this
](zenkit::DaedalusSymbol& s) {
13
themes.push_back(vm->init_instance<zenkit::IMusicTheme>(&s));
14
});
15
}
16
17
MusicDefinitions::~MusicDefinitions
() {
18
}
19
20
const
zenkit::IMusicTheme*
MusicDefinitions::operator []
(std::string_view name)
const
{
21
if
(!vm)
22
return
nullptr
;
23
24
auto
id
= vm->find_symbol_by_name(name);
25
if
(
id
==
nullptr
)
26
return
nullptr
;
27
for
(
auto
& i:themes) {
28
auto
* sym = vm->find_symbol_by_instance(i);
29
if
(sym->index() ==
id
->index())
30
return
i.get();
31
}
32
return
nullptr
;
33
}
Gothic::inst
static Gothic & inst()
Definition
gothic.cpp:249
Gothic::createPhoenixVm
std::unique_ptr< zenkit::DaedalusVm > createPhoenixVm(std::string_view datFile, const ScriptLang lang=ScriptLang::NONE)
Definition
gothic.cpp:711
MusicDefinitions::MusicDefinitions
MusicDefinitions()
Definition
musicdefinitions.cpp:9
MusicDefinitions::operator[]
const zenkit::IMusicTheme * operator[](std::string_view name) const
Definition
musicdefinitions.cpp:20
MusicDefinitions::~MusicDefinitions
~MusicDefinitions()
Definition
musicdefinitions.cpp:17
gothic.h
musicdefinitions.h
game
game
definitions
musicdefinitions.cpp
Generated by
1.9.8