Mon Jun 3 15:21:17 PDT 2002
[netwalk.git] / io_score.e
blobf6ceec9debf3dc2ff42e450a96e7d6c2b94f7755
1 class IO_SCORE
2 creation make
3 feature
4 make is
5 do
6 !!score_table.make
7 end
9 score_table : DICTIONARY[SCORE, STRING]
11 tfr : TEXT_FILE_READ
13 load(filename : STRING) is
15 !!tfr.connect_to(filename)
16 if tfr.is_connected then
17 parse_scores
18 tfr.disconnect
19 end
20 end
22 parse_scores is
23 local
24 level : STRING
25 sc : SCORE
26 n : STRING
27 i, j : INTEGER
29 tfr.read_word
30 from
31 until tfr.end_of_input
32 loop
33 !!level.copy(tfr.last_string)
34 tfr.read_word
35 !!n.copy(tfr.last_string)
36 tfr.read_word
37 i := tfr.last_string.to_integer
38 tfr.read_word
39 j := tfr.last_string.to_integer
40 !!sc.make(n, i, j)
41 score_table.put(sc, level)
42 tfr.read_word
43 end
44 end
46 into_preset_list(l : LINKED_LIST[PRESET]) is
48 l.do_all(agent export_score(?))
49 end
51 export_score(p : PRESET) is
53 if score_table.has(p.name) then
54 p.put_hiscore(score_table.at(p.name))
55 end
56 end
58 from_preset_list(l : LINKED_LIST[PRESET]) is
60 l.do_all(agent import_score(?))
61 end
63 import_score(p : PRESET) is
65 if p.hiscore /= Void then
66 score_table.put(p.hiscore, p.name)
67 end
68 end
70 tfw : TEXT_FILE_WRITE
72 save(filename : STRING) is
74 !!tfw.connect_to(filename)
75 score_table.do_all(agent write_score(?, ?))
76 tfw.disconnect
77 end
79 write_score(sc : SCORE; level : STRING) is
81 tfw.put_string(level + " " + sc.name + " ")
82 tfw.put_string(sc.score.to_string + " " + sc.time.to_string + "%N")
83 end
84 end