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

Function SaveLevel

Source/loadsave.cpp:1540–1630  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1538}
1539
1540void SaveLevel()
1541{
1542 int i, j;
1543 char szName[MAX_PATH];
1544 int dwLen;
1545 BYTE *SaveBuff;
1546
1547 if (!currlevel)
1548 glSeedTbl[0] = GetRndSeed();
1549
1550 dwLen = codec_get_encoded_len(FILEBUFF);
1551 SaveBuff = DiabloAllocPtr(dwLen);
1552 tbuff = SaveBuff;
1553
1554 if (leveltype != DTYPE_TOWN) {
1555 for (j = 0; j < MAXDUNY; j++) {
1556 for (i = 0; i < MAXDUNX; i++)
1557 BSave(dDead[i][j]);
1558 }
1559 }
1560
1561 WSave(nummonsters);
1562 WSave(numitems);
1563 WSave(nobjects);
1564
1565 if (leveltype != DTYPE_TOWN) {
1566 for (i = 0; i < MAXMONSTERS; i++)
1567 WSave(monstactive[i]);
1568 for (i = 0; i < nummonsters; i++)
1569 SaveMonster(monstactive[i]);
1570 for (i = 0; i < MAXOBJECTS; i++)
1571 BSave(objectactive[i]);
1572 for (i = 0; i < MAXOBJECTS; i++)
1573 BSave(objectavail[i]);
1574 for (i = 0; i < nobjects; i++)
1575 SaveObject(objectactive[i]);
1576 }
1577
1578 for (i = 0; i < MAXITEMS; i++)
1579 BSave(itemactive[i]);
1580 for (i = 0; i < MAXITEMS; i++)
1581 BSave(itemavail[i]);
1582 for (i = 0; i < numitems; i++)
1583 SaveItem(&item[itemactive[i]]);
1584
1585 for (j = 0; j < MAXDUNY; j++) {
1586 for (i = 0; i < MAXDUNX; i++)
1587 BSave(dFlags[i][j] & ~(BFLAG_MISSILE | BFLAG_VISIBLE | BFLAG_DEAD_PLAYER));
1588 }
1589 for (j = 0; j < MAXDUNY; j++) {
1590 for (i = 0; i < MAXDUNX; i++)
1591 BSave(dItem[i][j]);
1592 }
1593
1594 if (leveltype != DTYPE_TOWN) {
1595 for (j = 0; j < MAXDUNY; j++) {
1596 for (i = 0; i < MAXDUNX; i++)
1597 WSave(dMonster[i][j]);

Callers 1

ShowProgressFunction · 0.85

Calls 12

GetRndSeedFunction · 0.85
codec_get_encoded_lenFunction · 0.85
DiabloAllocPtrFunction · 0.85
BSaveFunction · 0.85
WSaveFunction · 0.85
SaveMonsterFunction · 0.85
SaveObjectFunction · 0.85
SaveItemFunction · 0.85
OSaveFunction · 0.85
GetTempLevelNamesFunction · 0.85
pfile_write_save_fileFunction · 0.85
mem_free_dbgFunction · 0.85

Tested by

no test coverage detected