write garbage
- fix PathManager nullptr assign issue - fix Context set encoding unexpected copy issue - write some export function for BMap.
This commit is contained in:
@ -22,3 +22,42 @@ void BMDispose() {
|
||||
// unregister iron pad
|
||||
IronPad::IronPadUnregister();
|
||||
}
|
||||
|
||||
BMap::BMFile* BMFile_Load(LibCmo::CKSTRING file_name, LibCmo::CKSTRING temp_folder, LibCmo::CKSTRING texture_folder, LibCmo::CKDWORD encoding_count, LibCmo::CKSTRING encodings[]) {
|
||||
auto file = new BMap::BMFile(temp_folder, texture_folder, encoding_count, encodings, false);
|
||||
if (file->IsFailed()) {
|
||||
delete file;
|
||||
file = nullptr;
|
||||
}
|
||||
if (!file->Load(file_name)) {
|
||||
delete file;
|
||||
file = nullptr;
|
||||
}
|
||||
|
||||
g_AllBMFiles.emplace(file);
|
||||
return file;
|
||||
}
|
||||
|
||||
BMap::BMFile* BMFile_Create(LibCmo::CKSTRING temp_folder, LibCmo::CKSTRING texture_folder, LibCmo::CKDWORD encoding_count, LibCmo::CKSTRING encodings[]) {
|
||||
auto file = new BMap::BMFile(temp_folder, texture_folder, encoding_count, encodings, false);
|
||||
if (file->IsFailed()) {
|
||||
delete file;
|
||||
file = nullptr;
|
||||
}
|
||||
|
||||
g_AllBMFiles.emplace(file);
|
||||
return file;
|
||||
}
|
||||
|
||||
bool BMFile_Save(BMap::BMFile* map_file, LibCmo::CKSTRING file_name, LibCmo::CKINT compreess_level) {
|
||||
if (!g_AllBMFiles.contains(map_file)) return false;
|
||||
return map_file->Save(file_name, compreess_level);
|
||||
}
|
||||
|
||||
void BMFile_Free(BMap::BMFile* map_file) {
|
||||
// only free correct pointer
|
||||
if (map_file == nullptr) return;
|
||||
if (g_AllBMFiles.erase(map_file) != 0) {
|
||||
delete map_file;
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user