- add fix backup memory size when import save;

This commit is contained in:
mtabachenko 2011-08-29 18:30:12 +00:00
parent 3a41cfdf11
commit 82ed19cc72
1 changed files with 29 additions and 2 deletions

View File

@ -1128,11 +1128,24 @@ bool BackupDevice::load_raw(const char* filename)
FILE* inf = fopen(filename,"rb");
fseek(inf, 0, SEEK_END);
u32 size = (u32)ftell(inf);
u32 left = 0;
u8 sv = advsc.getSaveType();
if (sv < MAX_SAVE_TYPES)
{
if (size > save_types[sv+1][1])
size = save_types[sv+1][1];
else
if (size < save_types[sv+1][1])
{
left = save_types[sv+1][1] - size;
size = save_types[sv+1][1];
}
}
fseek(inf, 0, SEEK_SET);
raw_applyUserSettings(size);
fread(&data[0],1,size,inf);
fread(&data[0],1,size-left,inf);
fclose(inf);
//dump back out as a dsv, just to keep things sane
@ -1166,11 +1179,25 @@ bool BackupDevice::load_duc(const char* filename)
// Skip the rest of the header since we don't need it
fseek(file, 500, SEEK_SET);
u32 left = 0;
u8 sv = advsc.getSaveType();
if (sv < MAX_SAVE_TYPES)
{
if (size > save_types[sv+1][1])
size = save_types[sv+1][1];
else
if (size < save_types[sv+1][1])
{
left = save_types[sv+1][1] - size;
size = save_types[sv+1][1];
}
}
raw_applyUserSettings(size);
ensure((u32)size);
fread(&data[0],1,size,file);
fread(&data[0],1,size-left,file);
fclose(file);
//choose