OpenGothic
Open source reimplementation of Gothic I and II
Loading...
Searching...
No Matches
band.cpp
Go to the documentation of this file.
1#include "band.h"
2
3#include <Tempest/Log>
4#include <stdexcept>
5
6using namespace Dx8;
7
9 if(!input.isListId("lbin"))
10 throw std::runtime_error("not a band instrument");
11
12 input.read([this](Riff& c){
13 if(c.is("bins"))
14 c.read(&header,sizeof(header));
15 else if(c.is("LIST")) {
16 if(c.isListId("DMRF"))
18 }
19 });
20 }
21
23 input.read([this](Riff& c){
24 implRead(c);
25 });
26 }
27
28void Band::implRead(Riff &input) {
29 if(input.is("guid"))
30 input.read(&guid,sizeof(guid));
31 else if(input.is("vers"))
32 input.read(&vers,sizeof(vers));
33 else if(input.is("LIST")){
34 if(input.isListId("lbil")) {
35 input.read([this](Riff& c){
36 intrument.emplace_back(c);
37 });
38 }
39 else if(input.isListId("UNFO"))
40 info = Unfo(input);
41 }
42 }
Band(Riff &input)
Definition band.cpp:22
std::vector< Instrument > intrument
Definition band.h:26
Unfo info
Definition band.h:25
DMUS_IO_VERSION vers
Definition band.h:24
GUID guid
Definition band.h:23
bool is(const char *idx) const
Definition riff.h:19
void read(std::u16string &str)
Definition riff.cpp:29
bool isListId(const char *id)
Definition riff.cpp:24
Definition band.h:10
Reference reference
Definition band.h:20
Instrument(Riff &input)
Definition band.cpp:8
DMUS_IO_INSTRUMENT header
Definition band.h:19