| 820 | } |
| 821 | |
| 822 | void 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++) |
no test coverage detected