Mercurial > rg
comparison 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 |
comparison
equal
deleted
inserted
replaced
| -1:000000000000 | 0:62966dd383ed |
|---|---|
| 1 { Save and load routines. } | |
| 2 | |
| 3 UNIT save; | |
| 4 | |
| 5 INTERFACE | |
| 6 | |
| 7 USES Global; | |
| 8 | |
| 9 PROCEDURE SaveGame; | |
| 10 PROCEDURE LoadGame; | |
| 11 | |
| 12 IMPLEMENTATION | |
| 13 | |
| 14 USES Gzio, Strings, Console; | |
| 15 | |
| 16 CONST NL=#13+#10; | |
| 17 | |
| 18 VAR f: GzFile; | |
| 19 | |
| 20 PROCEDURE Sav(s:STRING); | |
| 21 VAR t: pChar; | |
| 22 BEGIN | |
| 23 s:=Concat(s,NL); | |
| 24 GzWrite(f,@(s[1]),Length(s)); | |
| 25 END; | |
| 26 | |
| 27 PROCEDURE SavePlayer; | |
| 28 BEGIN | |
| 29 Sav('# Player character info:'); | |
| 30 Sav('# ----------------------'); | |
| 31 Sav(Concat('CHAR_ID ',playchr^.def^.nam)); | |
| 32 Sav(Concat('CHAR_HP ',Num(playchr^.hp),' ',Num(playchr^.def^.hp))); | |
| 33 Sav(Concat('CHAR_POSITION ',Num(playchr^.x),' ',Num(playchr^.y))); | |
| 34 END; | |
| 35 | |
| 36 PROCEDURE SaveLevel; | |
| 37 BEGIN | |
| 38 Sav('# Level info:'); | |
| 39 Sav('# -----------'); | |
| 40 | |
| 41 END; | |
| 42 | |
| 43 PROCEDURE SaveKnowledge; | |
| 44 BEGIN | |
| 45 Sav('# Items knowledge:'); | |
| 46 Sav('# -----------'); | |
| 47 END; | |
| 48 | |
| 49 PROCEDURE SaveItems; | |
| 50 BEGIN | |
| 51 Sav('# Items info:'); | |
| 52 Sav('# -----------'); | |
| 53 END; | |
| 54 | |
| 55 PROCEDURE SaveMonsters; | |
| 56 VAR p: pCreat; | |
| 57 BEGIN | |
| 58 Sav('# Creatures info:'); | |
| 59 Sav('# ---------------'); | |
| 60 p:=allmonsters; | |
| 61 WHILE p<>NIL DO BEGIN | |
| 62 Sav(Concat('MONSTER ',Num(p^.def^.id),' # ',p^.def^.nam)); | |
| 63 Sav(Concat('MON_POSITION ',Num(p^.x),' ',Num(p^.x))); | |
| 64 Sav(Concat('MON_HP ',Num(p^.hp))); | |
| 65 Sav(Concat('MON_NEXTMOVE ',Num(p^.mov))); | |
| 66 p:=p^.next; | |
| 67 END; | |
| 68 END; | |
| 69 | |
| 70 | |
| 71 PROCEDURE SaveGame; | |
| 72 BEGIN | |
| 73 Msg(msgs[34]); | |
| 74 | |
| 75 f:=GzOpen('savegame.gz','wf'); | |
| 76 IF f=NIL THEN Exit; | |
| 77 | |
| 78 Sav('# This is save file.'); | |
| 79 Sav('# =================='); | |
| 80 | |
| 81 Sav(Concat('VERSION "',VERSION,'"')); | |
| 82 | |
| 83 SavePlayer; | |
| 84 SaveKnowledge; | |
| 85 SaveItems; | |
| 86 SaveMonsters; | |
| 87 SaveLevel; | |
| 88 | |
| 89 | |
| 90 Sav('# End of file.'); | |
| 91 Sav('# ------------'); | |
| 92 Sav('END'); | |
| 93 | |
| 94 GzFlush(f,1); | |
| 95 GzClose(f); | |
| 96 END; | |
| 97 | |
| 98 PROCEDURE LoadGame; | |
| 99 BEGIN | |
| 100 END; | |
| 101 | |
| 102 END. |
