Move/rename variable declarations in map_extract tool

This commit is contained in:
Robert Müller 2022-06-04 10:13:35 +02:00
parent 4bc1aeeb7a
commit fbfbc78be4

View file

@ -9,40 +9,39 @@
bool Process(IStorage *pStorage, const char *pMapName, const char *pPathSave) bool Process(IStorage *pStorage, const char *pMapName, const char *pPathSave)
{ {
CDataFileReader Map; CDataFileReader Reader;
if(!Reader.Open(pStorage, pMapName, IStorage::TYPE_ABSOLUTE))
if(!Map.Open(pStorage, pMapName, IStorage::TYPE_ABSOLUTE))
{ {
dbg_msg("map_extract", "error opening map '%s'", pMapName); dbg_msg("map_extract", "error opening map '%s'", pMapName);
return false; return false;
} }
// check version // check version
CMapItemVersion *pVersion = (CMapItemVersion *)Map.FindItem(MAPITEMTYPE_VERSION, 0); CMapItemVersion *pVersion = (CMapItemVersion *)Reader.FindItem(MAPITEMTYPE_VERSION, 0);
if(pVersion && pVersion->m_Version != 1) if(pVersion && pVersion->m_Version != 1)
return false; return false;
dbg_msg("map_extract", "Make sure you have the permission to use these images and sounds in your own maps"); dbg_msg("map_extract", "Make sure you have the permission to use these images and sounds in your own maps");
CMapItemInfo *pInfo = (CMapItemInfo *)Map.FindItem(MAPITEMTYPE_INFO, 0); CMapItemInfo *pInfo = (CMapItemInfo *)Reader.FindItem(MAPITEMTYPE_INFO, 0);
if(pInfo) if(pInfo)
{ {
dbg_msg("map_extract", "author: %s", (char *)Map.GetData(pInfo->m_Author)); dbg_msg("map_extract", "author: %s", (char *)Reader.GetData(pInfo->m_Author));
dbg_msg("map_extract", "version: %s", (char *)Map.GetData(pInfo->m_MapVersion)); dbg_msg("map_extract", "version: %s", (char *)Reader.GetData(pInfo->m_MapVersion));
dbg_msg("map_extract", "credits: %s", (char *)Map.GetData(pInfo->m_Credits)); dbg_msg("map_extract", "credits: %s", (char *)Reader.GetData(pInfo->m_Credits));
dbg_msg("map_extract", "license: %s", (char *)Map.GetData(pInfo->m_License)); dbg_msg("map_extract", "license: %s", (char *)Reader.GetData(pInfo->m_License));
} }
int Start, Num; int Start, Num;
// load images // load images
Map.GetType(MAPITEMTYPE_IMAGE, &Start, &Num); Reader.GetType(MAPITEMTYPE_IMAGE, &Start, &Num);
for(int i = 0; i < Num; i++) for(int i = 0; i < Num; i++)
{ {
CMapItemImage *pItem = (CMapItemImage *)Map.GetItem(Start + i, 0, 0); CMapItemImage *pItem = (CMapItemImage *)Reader.GetItem(Start + i, nullptr, nullptr);
char *pName = (char *)Map.GetData(pItem->m_ImageName); char *pName = (char *)Reader.GetData(pItem->m_ImageName);
if(pItem->m_External) if(pItem->m_External)
continue; continue;
@ -66,18 +65,18 @@ bool Process(IStorage *pStorage, const char *pMapName, const char *pPathSave)
} }
else else
{ {
png_set_data(&Png, pItem->m_Width, pItem->m_Height, 8, PNG_TRUECOLOR_ALPHA, (unsigned char *)Map.GetData(pItem->m_ImageData)); png_set_data(&Png, pItem->m_Width, pItem->m_Height, 8, PNG_TRUECOLOR_ALPHA, (unsigned char *)Reader.GetData(pItem->m_ImageData));
} }
io_close(File); io_close(File);
} }
// load sounds // load sounds
Map.GetType(MAPITEMTYPE_SOUND, &Start, &Num); Reader.GetType(MAPITEMTYPE_SOUND, &Start, &Num);
for(int i = 0; i < Num; i++) for(int i = 0; i < Num; i++)
{ {
CMapItemSound *pItem = (CMapItemSound *)Map.GetItem(Start + i, 0, 0); CMapItemSound *pItem = (CMapItemSound *)Reader.GetItem(Start + i, nullptr, nullptr);
char *pName = (char *)Map.GetData(pItem->m_SoundName); char *pName = (char *)Reader.GetData(pItem->m_SoundName);
if(pItem->m_External) if(pItem->m_External)
continue; continue;
@ -87,11 +86,11 @@ bool Process(IStorage *pStorage, const char *pMapName, const char *pPathSave)
dbg_msg("map_extract", "writing sound: %s (%d B)", aBuf, pItem->m_SoundDataSize); dbg_msg("map_extract", "writing sound: %s (%d B)", aBuf, pItem->m_SoundDataSize);
IOHANDLE Opus = io_open(aBuf, IOFLAG_WRITE); IOHANDLE Opus = io_open(aBuf, IOFLAG_WRITE);
io_write(Opus, (unsigned char *)Map.GetData(pItem->m_SoundData), pItem->m_SoundDataSize); io_write(Opus, (unsigned char *)Reader.GetData(pItem->m_SoundData), pItem->m_SoundDataSize);
io_close(Opus); io_close(Opus);
} }
return Map.Close(); return Reader.Close();
} }
int main(int argc, const char *argv[]) int main(int argc, const char *argv[])
@ -99,20 +98,18 @@ int main(int argc, const char *argv[])
cmdline_fix(&argc, &argv); cmdline_fix(&argc, &argv);
log_set_global_logger_default(); log_set_global_logger_default();
char aMap[512];
char aDir[512];
IStorage *pStorage = CreateLocalStorage(); IStorage *pStorage = CreateLocalStorage();
if(!pStorage)
return -1;
const char *pDir;
if(argc == 2) if(argc == 2)
{ {
str_copy(aMap, argv[1], sizeof(aMap)); pDir = ".";
str_copy(aDir, ".", sizeof(aMap));
} }
else if(argc == 3) else if(argc == 3)
{ {
str_copy(aMap, argv[1], sizeof(aMap)); pDir = argv[2];
str_copy(aDir, argv[2], sizeof(aDir));
} }
else else
{ {
@ -120,15 +117,15 @@ int main(int argc, const char *argv[])
return -1; return -1;
} }
if(!fs_is_dir(aDir)) if(!fs_is_dir(pDir))
{ {
dbg_msg("usage", "directory '%s' does not exist", aDir); dbg_msg("usage", "directory '%s' does not exist", pDir);
return -1; return -1;
} }
png_init(0, 0); png_init(0, 0);
int Result = Process(pStorage, aMap, aDir) ? 0 : 1; int Result = Process(pStorage, argv[1], pDir) ? 0 : 1;
cmdline_free(argc, argv); cmdline_free(argc, argv);
return Result; return Result;
} }