mirror of
https://github.com/4jcraft/4jcraft.git
synced 2026-04-24 14:43:37 +00:00
43 lines
1.6 KiB
C++
43 lines
1.6 KiB
C++
#pragma once
|
|
|
|
#include "../../Platform/stdafx.h"
|
|
|
|
class LevelSummary;
|
|
class ProgressListener;
|
|
class LevelData;
|
|
class LevelStorage;
|
|
class ConsoleSaveFile;
|
|
|
|
class LevelStorageSource {
|
|
public:
|
|
virtual std::wstring getName() = 0;
|
|
virtual std::shared_ptr<LevelStorage> selectLevel(
|
|
ConsoleSaveFile* saveFile, const std::wstring& levelId,
|
|
bool createPlayerDir) = 0;
|
|
virtual std::vector<LevelSummary*>* getLevelList() = 0;
|
|
virtual void clearAll() = 0;
|
|
virtual LevelData* getDataTagFor(ConsoleSaveFile* saveFile,
|
|
const std::wstring& levelId) = 0;
|
|
|
|
/**
|
|
* Tests if a levelId can be used to store a level. For example, a levelId
|
|
* can't be called COM1 on Windows systems, because that is a reserved file
|
|
* handle.
|
|
* <p>
|
|
* Also, a new levelId may not overwrite an existing one.
|
|
*
|
|
* @param levelId
|
|
* @return
|
|
*/
|
|
virtual bool isNewLevelIdAcceptable(const std::wstring& levelId) = 0;
|
|
virtual void deleteLevel(const std::wstring& levelId) = 0;
|
|
virtual void renameLevel(const std::wstring& levelId,
|
|
const std::wstring& newLevelName) = 0;
|
|
virtual bool isConvertible(ConsoleSaveFile* saveFile,
|
|
const std::wstring& levelId) = 0;
|
|
virtual bool requiresConversion(ConsoleSaveFile* saveFile,
|
|
const std::wstring& levelId) = 0;
|
|
virtual bool convertLevel(ConsoleSaveFile* saveFile,
|
|
const std::wstring& levelId,
|
|
ProgressListener* progress) = 0;
|
|
}; |