MCPcopy Create free account
hub / github.com/diasurgical/devilution / SaveGame

Function SaveGame

Source/loadsave.cpp:822–963  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

820}
821
822void SaveGame()
823{
824 int i, j;
825 char szName[MAX_PATH];
826
827 DWORD dwLen = codec_get_encoded_len(FILEBUFF);
828 BYTE *SaveBuff = DiabloAllocPtr(dwLen);
829 tbuff = SaveBuff;
830
831 ISave('RETL');
832 OSave(setlevel);
833 WSave(setlvlnum);
834 WSave(currlevel);
835 WSave(leveltype);
836 WSave(ViewX);
837 WSave(ViewY);
838 OSave(invflag);
839 OSave(chrflag);
840 WSave(nummonsters);
841 WSave(numitems);
842 WSave(nummissiles);
843 WSave(nobjects);
844
845 for (i = 0; i < NUMLEVELS; i++) {
846 ISave(glSeedTbl[i]);
847 WSave(gnLevelTypeTbl[i]);
848 }
849
850 SavePlayer(myplr);
851
852 for (i = 0; i < MAXQUESTS; i++)
853 SaveQuest(i);
854 for (i = 0; i < MAXPORTAL; i++)
855 SavePortal(i);
856 for (i = 0; i < MAXMONSTERS; i++)
857 ISave(monstkills[i]);
858
859 if (leveltype != DTYPE_TOWN) {
860 for (i = 0; i < MAXMONSTERS; i++)
861 WSave(monstactive[i]);
862 for (i = 0; i < nummonsters; i++)
863 SaveMonster(monstactive[i]);
864 for (i = 0; i < MAXMISSILES; i++)
865 BSave(missileactive[i]);
866 for (i = 0; i < MAXMISSILES; i++)
867 BSave(missileavail[i]);
868 for (i = 0; i < nummissiles; i++)
869 SaveMissile(missileactive[i]);
870 for (i = 0; i < MAXOBJECTS; i++)
871 BSave(objectactive[i]);
872 for (i = 0; i < MAXOBJECTS; i++)
873 BSave(objectavail[i]);
874 for (i = 0; i < nobjects; i++)
875 SaveObject(objectactive[i]);
876
877 WSave(numlights);
878
879 for (i = 0; i < MAXLIGHTS; i++)

Callers 1

gamemenu_save_gameFunction · 0.85

Calls 15

codec_get_encoded_lenFunction · 0.85
DiabloAllocPtrFunction · 0.85
ISaveFunction · 0.85
OSaveFunction · 0.85
WSaveFunction · 0.85
SavePlayerFunction · 0.85
SaveQuestFunction · 0.85
SavePortalFunction · 0.85
SaveMonsterFunction · 0.85
BSaveFunction · 0.85
SaveMissileFunction · 0.85
SaveObjectFunction · 0.85

Tested by

no test coverage detected