bool LoadDemo(demoSystem& dem, int demo) { char name[256]; sprintf(name,"Data/Demo%i.dem",demo); dem.mKeyBuffer.clear(); CFileIO fIO; if(!fIO.GetFile(name,"rb")) return false; fIO.ReadBinary(&dem.iScrollOffset,1); int bufsize,n; fIO.ReadBinary(&bufsize,1); if(bufsize>0) { for(n=0;n<bufsize;n++) { keyBuffer kb; fIO.ReadBinary(&kb.tick,1); fIO.ReadBinary(&kb.KeyStateChange,1); fIO.ReadBinary(&kb.KeyStates,1); dem.mKeyBuffer.push_back(kb); } } return true; }
//================================================================================================// void Engine::SaveMap() { CFileIO fIO; char sz[256]; sprintf(sz,"Data/Maps/Stage%i.stg",iStage); if(!fIO.GetFile(sz,"wb")) return; int x,y; //write block data for(x=0;x<400;x++) { for(y=0;y<15;y++) { fIO.WriteBinary(&mTilesLayer1[x][y].ID,1); fIO.WriteBinary(&mTilesLayer1[x][y].properties,1); fIO.WriteBinary(&mTilesLayer2[x][y].ID,1); fIO.WriteBinary(&mTilesLayer2[x][y].properties,1); fIO.WriteBinary(&mTilesLayer3[x][y].ID,1); fIO.WriteBinary(&mTilesLayer3[x][y].properties,1); } } //write generators int n = (int)mGenerators.size(); fIO.WriteBinary(&n,1); if(n>0) { list<Generator>::iterator g; for(g = mGenerators.begin(); g != mGenerators.end(); g++) { (*g).WriteToFile(fIO); } } n = (int)mAnimGenerators.size(); fIO.WriteBinary(&n,1); if(n>0) { list<AnimGenerator>::iterator g; for(g = mAnimGenerators.begin(); g != mAnimGenerators.end(); g++) { (*g).WriteToFile(fIO); } } fIO.ReleaseFile(); }
void SaveDemo(demoSystem dem) { CFileIO fIO; fIO.GetFile("Data/Demo1.dem","wb"); fIO.WriteBinary(&dem.iScrollOffset,1); int bufsize = (int)dem.mKeyBuffer.size(); fIO.WriteBinary(&bufsize,1); if(bufsize>0) { list<keyBuffer>::iterator i; for(i = dem.mKeyBuffer.begin(); i != dem.mKeyBuffer.end(); i++) { fIO.WriteBinary(&(*i).tick,1); fIO.WriteBinary(&(*i).KeyStateChange,1); fIO.WriteBinary(&(*i).KeyStates,1); } } }
//================================================================================================// bool Engine::LoadMapData() { char sz[256]; ClearMapArrays(); ClearMapEntities(); CFileIO fIO; sprintf(sz,"Data/Maps/Stage%i.stg",iStage); if(!fIO.GetFile(sz,"rb")) return false; int x,y; //read block data for(x=0;x<400;x++) { for(y=0;y<15;y++) { fIO.ReadBinary(&mTilesLayer1[x][y].ID,1); fIO.ReadBinary(&mTilesLayer1[x][y].properties,1); fIO.ReadBinary(&mTilesLayer2[x][y].ID,1); fIO.ReadBinary(&mTilesLayer2[x][y].properties,1); fIO.ReadBinary(&mTilesLayer3[x][y].ID,1); fIO.ReadBinary(&mTilesLayer3[x][y].properties,1); } } //read entities int numEnt,n; fIO.ReadBinary(&numEnt,1); for(n=0;n<numEnt;n++) { Generator g; g.LoadFromFile(fIO); mGenerators.push_back(g); } fIO.ReadBinary(&numEnt,1); for(n=0;n<numEnt;n++) { AnimGenerator g; g.LoadFromFile(fIO); mAnimGenerators.push_back(g); } return true; }