Mercurial > rg
view 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 source
{ 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.
