Rev 56 | Rev 66 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 56 | Rev 61 | ||
---|---|---|---|
Line 56... | Line 56... | ||
56 | 56 | ||
57 | {$R *.DFM} |
57 | {$R *.DFM} |
58 | 58 | ||
59 | resourcestring |
59 | resourcestring |
60 | SLevelListBox = 'Level %d'; |
60 | SLevelListBox = 'Level %d'; |
- | 61 | SSelbsterstellt = 'Selbsterstellt'; |
|
61 | 62 | ||
62 | procedure TSpeicherungForm.SearchLevels; |
63 | procedure TSpeicherungForm.SearchLevels; |
63 | var |
64 | var |
64 | i: integer; |
65 | i: integer; |
65 | fil: string; |
66 | fil: TLevelFile; |
66 | begin |
67 | begin |
67 | // TODO: slow |
- | |
68 | //SpinEdit.Value := 1; |
68 | //SpinEdit.Value := 1; |
69 | LevelListBox.items.clear; |
69 | LevelListBox.items.clear; |
70 | li1a.visible := false; |
70 | li1a.visible := false; |
71 | li2a.visible := false; |
71 | li2a.visible := false; |
72 | li3a.visible := false; |
72 | li3a.visible := false; |
Line 79... | Line 79... | ||
79 | LadenBtn.enabled := false; |
79 | LadenBtn.enabled := false; |
80 | LoeschenBtn.enabled := false; |
80 | LoeschenBtn.enabled := false; |
81 | for i := 1 to MaxPossibleLevels do |
81 | for i := 1 to MaxPossibleLevels do |
82 | begin |
82 | begin |
83 | fil := GetLevelFileName(i, false); |
83 | fil := GetLevelFileName(i, false); |
- | 84 | if fil.found then |
|
- | 85 | begin |
|
- | 86 | if fil.isUser then |
|
- | 87 | LevelListBox.items.Add(Format(SLevelListBox, [i])+' ('+SSelbsterstellt+')') |
|
- | 88 | else |
|
84 | if fileexists(fil) then LevelListBox.items.Add(Format(SLevelListBox, [i])); |
89 | LevelListBox.items.Add(Format(SLevelListBox, [i])); |
- | 90 | end; |
|
85 | end; |
91 | end; |
86 | end; |
92 | end; |
87 | 93 | ||
88 | procedure TSpeicherungForm.LoeschenBtnClick(Sender: TObject); |
94 | procedure TSpeicherungForm.LoeschenBtnClick(Sender: TObject); |
89 | var |
95 | var |
90 | fil: string; |
96 | fil: TLevelFile; |
91 | begin |
97 | begin |
92 | if LevelListBox.ItemIndex = -1 then exit; |
98 | if LevelListBox.ItemIndex = -1 then exit; |
93 | 99 | ||
94 | if MessageDlg('Dieses Level wirklich löschen?', mtConfirmation, mbYesNoCancel, 0) = mrYes then |
100 | if MessageDlg('Dieses Level wirklich löschen?', mtConfirmation, mbYesNoCancel, 0) = mrYes then |
95 | begin |
101 | begin |
Line 103... | Line 109... | ||
103 | liu.visible := false; |
109 | liu.visible := false; |
104 | liw.visible := true; |
110 | liw.visible := true; |
105 | LadenBtn.enabled := false; |
111 | LadenBtn.enabled := false; |
106 | LoeschenBtn.enabled := false; |
112 | LoeschenBtn.enabled := false; |
107 | fil := GetLevelFileName(GetListBoxSelectedLevelNumber,false); |
113 | fil := GetLevelFileName(GetListBoxSelectedLevelNumber,false); |
108 | if not fileexists(fil) then raise Exception.Create('Leveldatei nicht gefunden'); |
114 | if not fil.found then raise Exception.Create('Leveldatei nicht gefunden'); |
109 | deletefile(fil); |
115 | deletefile(fil.fileLocation); |
110 | SearchLevels; |
116 | SearchLevels; |
111 | end; |
117 | end; |
112 | end; |
118 | end; |
113 | 119 | ||
114 | procedure TSpeicherungForm.LadenBtnClick(Sender: TObject); |
120 | procedure TSpeicherungForm.LadenBtnClick(Sender: TObject); |
115 | var |
121 | var |
116 | fil: string; |
122 | fil: TLevelFile; |
117 | begin |
123 | begin |
118 | if LevelListBox.ItemIndex = -1 then exit; |
124 | if LevelListBox.ItemIndex = -1 then exit; |
119 | 125 | ||
120 | if MainForm.LevChanged and (MainForm.LevData.CountEnemies>0) then |
126 | if MainForm.LevChanged and (MainForm.LevData.CountEnemies>0) then |
121 | begin |
127 | begin |
Line 127... | Line 133... | ||
127 | exit;} |
133 | exit;} |
128 | 134 | ||
129 | MainForm.DestroyLevel; |
135 | MainForm.DestroyLevel; |
130 | MainForm.LevData.RasterErzwingen := true; |
136 | MainForm.LevData.RasterErzwingen := true; |
131 | fil := GetLevelFileName(GetListBoxSelectedLevelNumber,false); |
137 | fil := GetLevelFileName(GetListBoxSelectedLevelNumber,false); |
132 | if not fileexists(fil) then raise Exception.Create('Leveldatei nicht gefunden'); |
138 | if not fil.found then raise Exception.Create('Leveldatei nicht gefunden'); |
133 | MainForm.LevData.LoadFromFile(fil); |
139 | MainForm.LevData.LoadFromFile(fil.fileLocation); |
134 | MainForm.RefreshFromLevData; |
140 | MainForm.RefreshFromLevData; |
135 | MainForm.LevChanged := false; |
141 | MainForm.LevChanged := false; |
136 | MainForm.AnzeigeAct; |
142 | MainForm.AnzeigeAct; |
137 | close; |
143 | close; |
138 | end; |
144 | end; |
Line 168... | Line 174... | ||
168 | exit; |
174 | exit; |
169 | end; |
175 | end; |
170 | 176 | ||
171 | // Speichern |
177 | // Speichern |
172 | MainForm.LevData.LevelEditorLength := MainForm.ScrollBar.Max; |
178 | MainForm.LevData.LevelEditorLength := MainForm.ScrollBar.Max; |
173 | MainForm.LevData.SaveToFile(GetLevelFileName(LevelNumber.Value,true)); |
179 | MainForm.LevData.SaveToFile(GetLevelFileName(LevelNumber.Value,true).fileLocation); |
174 | 180 | ||
175 | // Nacharbeiten |
181 | // Nacharbeiten |
176 | MainForm.LevChanged := false; |
182 | MainForm.LevChanged := false; |
177 | MainForm.AnzeigeAct; |
183 | MainForm.AnzeigeAct; |
178 | SearchLevels; |
184 | SearchLevels; |
Line 182... | Line 188... | ||
182 | var |
188 | var |
183 | LevelData: TLevelData; |
189 | LevelData: TLevelData; |
184 | boss: boolean; |
190 | boss: boolean; |
185 | i: Integer; |
191 | i: Integer; |
186 | anzahlEinheiten: integer; |
192 | anzahlEinheiten: integer; |
187 | fil: string; |
193 | fil: TLevelFile; |
188 | begin |
194 | begin |
189 | li1a.visible := false; |
195 | li1a.visible := false; |
190 | li2a.visible := false; |
196 | li2a.visible := false; |
191 | li3a.visible := false; |
197 | li3a.visible := false; |
192 | li1b.visible := false; |
198 | li1b.visible := false; |
Line 208... | Line 214... | ||
208 | try |
214 | try |
209 | try |
215 | try |
210 | LevelData.RasterErzwingen := true; |
216 | LevelData.RasterErzwingen := true; |
211 | 217 | ||
212 | fil := GetLevelFileName(GetListBoxSelectedLevelNumber,false); |
218 | fil := GetLevelFileName(GetListBoxSelectedLevelNumber,false); |
213 | if not fileexists(fil) then raise Exception.Create('Leveldatei nicht gefunden'); |
219 | if not fil.found then raise Exception.Create('Leveldatei nicht gefunden'); |
214 | LevelData.LoadFromFile(fil); |
220 | LevelData.LoadFromFile(fil.fileLocation); |
215 | 221 | ||
216 | boss := false; |
222 | boss := false; |
217 | anzahlEinheiten := Length(LevelData.EnemyAdventTable); |
223 | anzahlEinheiten := Length(LevelData.EnemyAdventTable); |
218 | for i := 0 to anzahlEinheiten - 1 do |
224 | for i := 0 to anzahlEinheiten - 1 do |
219 | begin |
225 | begin |
Line 265... | Line 271... | ||
265 | begin |
271 | begin |
266 | result := -1; |
272 | result := -1; |
267 | if LevelListBox.itemindex = -1 then exit; |
273 | if LevelListBox.itemindex = -1 then exit; |
268 | for i := 1 to MaxPossibleLevels do |
274 | for i := 1 to MaxPossibleLevels do |
269 | begin |
275 | begin |
270 | if LevelListBox.Items.strings[LevelListBox.itemindex] = Format(SLevelListBox, [i]) then |
276 | if (LevelListBox.Items.strings[LevelListBox.itemindex] = Format(SLevelListBox, [i])) or |
- | 277 | (LevelListBox.Items.strings[LevelListBox.itemindex] = Format(SLevelListBox, [i])+' ('+SSelbstErstellt+')') then |
|
271 | begin |
278 | begin |
272 | result := i; |
279 | result := i; |
273 | exit; |
280 | exit; |
274 | end; |
281 | end; |
275 | end; |
282 | end; |