Mercurial > rg
diff save.pas @ 0:62966dd383ed default tip
initial
| author | Radomir Dopieralski <sheep-devel@sheep.art.pl> |
|---|---|
| date | Sun, 08 Dec 2013 19:39:15 +0100 |
| parents | |
| children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/save.pas Sun Dec 08 19:39:15 2013 +0100 @@ -0,0 +1,102 @@ +{ Save and load routines. } + +UNIT save; + +INTERFACE + +USES Global; + +PROCEDURE SaveGame; +PROCEDURE LoadGame; + +IMPLEMENTATION + +USES Gzio, Strings, Console; + +CONST NL=#13+#10; + +VAR f: GzFile; + +PROCEDURE Sav(s:STRING); +VAR t: pChar; +BEGIN + s:=Concat(s,NL); + GzWrite(f,@(s[1]),Length(s)); +END; + +PROCEDURE SavePlayer; +BEGIN + Sav('# Player character info:'); + Sav('# ----------------------'); + Sav(Concat('CHAR_ID ',playchr^.def^.nam)); + Sav(Concat('CHAR_HP ',Num(playchr^.hp),' ',Num(playchr^.def^.hp))); + Sav(Concat('CHAR_POSITION ',Num(playchr^.x),' ',Num(playchr^.y))); +END; + +PROCEDURE SaveLevel; +BEGIN + Sav('# Level info:'); + Sav('# -----------'); + +END; + +PROCEDURE SaveKnowledge; +BEGIN + Sav('# Items knowledge:'); + Sav('# -----------'); +END; + +PROCEDURE SaveItems; +BEGIN + Sav('# Items info:'); + Sav('# -----------'); +END; + +PROCEDURE SaveMonsters; +VAR p: pCreat; +BEGIN + Sav('# Creatures info:'); + Sav('# ---------------'); + p:=allmonsters; + WHILE p<>NIL DO BEGIN + Sav(Concat('MONSTER ',Num(p^.def^.id),' # ',p^.def^.nam)); + Sav(Concat('MON_POSITION ',Num(p^.x),' ',Num(p^.x))); + Sav(Concat('MON_HP ',Num(p^.hp))); + Sav(Concat('MON_NEXTMOVE ',Num(p^.mov))); + p:=p^.next; + END; +END; + + +PROCEDURE SaveGame; +BEGIN + Msg(msgs[34]); + + f:=GzOpen('savegame.gz','wf'); + IF f=NIL THEN Exit; + + Sav('# This is save file.'); + Sav('# =================='); + + Sav(Concat('VERSION "',VERSION,'"')); + + SavePlayer; + SaveKnowledge; + SaveItems; + SaveMonsters; + SaveLevel; + + + Sav('# End of file.'); + Sav('# ------------'); + Sav('END'); + + GzFlush(f,1); + GzClose(f); +END; + +PROCEDURE LoadGame; +BEGIN +END; + +END. \ No newline at end of file
