00001 #include "main.h" 00002 00003 SaveState::SaveState(void) 00004 { 00005 m_saveAvailable = false; 00006 } 00007 00008 SaveState::~SaveState(void) 00009 { 00010 } 00011 00012 bool SaveState::saveToFile(wchar* filename) 00013 { 00014 FILE* file; 00015 00016 if(_wfopen_s(&file, filename, TEXT("w")) != 0) 00017 return false; 00018 00019 if(fwrite(&m_ballCount, sizeof(int), BALL_TYPE_COUNT, file) != BALL_TYPE_COUNT) 00020 return fclose(file), false; 00021 00022 if(fwrite(&m_selectedBall, sizeof(int), 1, file) != 1) 00023 return fclose(file), false; 00024 00025 if(fwrite(&m_level, sizeof(int),1 , file) != 1) 00026 return fclose(file), false; 00027 00028 if(fwrite(&m_ballPosition, sizeof(float3), 1, file) != 1) 00029 return fclose(file), false; 00030 00031 if(fwrite(&m_cameraPosition, sizeof(float3), 1, file) != 1) 00032 return fclose(file), false; 00033 00034 fclose(file); 00035 return true; 00036 00037 } 00038 00039 bool SaveState::loadFromFile(wchar* filename) 00040 { 00041 FILE* file; 00042 if(_wfopen_s(&file, filename, TEXT("r")) != 0) 00043 return false; 00044 00045 if(fread(&m_ballCount, sizeof(int), BALL_TYPE_COUNT, file) != BALL_TYPE_COUNT) 00046 return fclose(file), false; 00047 00048 if(fread(&m_selectedBall, sizeof(int), 1, file) != 1) 00049 return fclose(file), false; 00050 00051 if(fread(&m_level, sizeof(int), 1, file) != 1) 00052 return fclose(file), false; 00053 00054 if(fread(&m_ballPosition, sizeof(float3), 1, file) != 1) 00055 return fclose(file), false; 00056 00057 if(fread(&m_cameraPosition, sizeof(float3), 1, file) != 1) 00058 return fclose(file), false; 00059 00060 fclose(file); 00061 m_saveAvailable = true; 00062 return true; 00063 }