add ROM export framework, part 1

This commit is contained in:
tildearrow 2023-03-13 14:17:05 -05:00
parent 6663fc274d
commit 07ed76a63b
8 changed files with 123 additions and 9 deletions

View file

@ -21,6 +21,7 @@
#define _EXPORT_H
#include "song.h"
#include <initializer_list>
#include <vector>
class DivEngine;
@ -45,6 +46,12 @@ struct DivROMExportOutput {
};
class DivROMExport {
public:
virtual std::vector<DivROMExportOutput> go(DivEngine* e);
virtual ~DivROMExport() {}
};
struct DivROMExportDef {
const char* name;
const char* author;
const char* description;
@ -52,12 +59,17 @@ class DivROMExport {
int requisitesLen;
bool multiOutput;
public:
virtual std::vector<DivROMExportOutput> go(DivEngine* e);
DivROMExport(const char* n, const char* auth, const char* desc):
name(n),
author(auth),
description(desc) {}
DivROMExportDef(const char* n, const char* a, const char* d, std::initializer_list<DivSystem> req, bool multiOut):
name(n),
author(a),
description(d),
multiOutput(multiOut) {
requisitesLen=0;
memset(requisites,0,32*sizeof(DivSystem));
for (DivSystem i: req) {
requisites[requisitesLen++]=i;
}
}
};
#endif