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.