Rev 44 | Rev 56 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 44 | Rev 51 | ||
---|---|---|---|
Line 38... | Line 38... | ||
38 | procedure DsFancyButton2Click(Sender: TObject); |
38 | procedure DsFancyButton2Click(Sender: TObject); |
39 | procedure AbbrechenBtnClick(Sender: TObject); |
39 | procedure AbbrechenBtnClick(Sender: TObject); |
40 | procedure LevelNameChange(Sender: TObject); |
40 | procedure LevelNameChange(Sender: TObject); |
41 | procedure FormHide(Sender: TObject); |
41 | procedure FormHide(Sender: TObject); |
42 | procedure FormCreate(Sender: TObject); |
42 | procedure FormCreate(Sender: TObject); |
- | 43 | private |
|
- | 44 | function GetListBoxSelectedLevelNumber: integer; |
|
43 | public |
45 | public |
44 | procedure SearchLevels; |
46 | procedure SearchLevels; |
45 | function RightStr(str: string; count: integer): string; |
- | |
46 | end; |
47 | end; |
47 | 48 | ||
48 | var |
49 | var |
49 | SpeicherungForm: TSpeicherungForm; |
50 | SpeicherungForm: TSpeicherungForm; |
50 | 51 | ||
Line 53... | Line 54... | ||
53 | uses |
54 | uses |
54 | Global, LevMain, ComLevelReader; |
55 | Global, LevMain, ComLevelReader; |
55 | 56 | ||
56 | {$R *.DFM} |
57 | {$R *.DFM} |
57 | 58 | ||
- | 59 | resourcestring |
|
- | 60 | SLevelListBox = 'Level %d'; |
|
- | 61 | ||
58 | procedure TSpeicherungForm.SearchLevels; |
62 | procedure TSpeicherungForm.SearchLevels; |
59 | var |
63 | var |
60 | i: integer; |
64 | i: integer; |
- | 65 | fil: string; |
|
61 | begin |
66 | begin |
62 | //SpinEdit.Value := 1; |
67 | //SpinEdit.Value := 1; |
63 | LevelListBox.items.clear; |
68 | LevelListBox.items.clear; |
64 | li1a.visible := false; |
69 | li1a.visible := false; |
65 | li2a.visible := false; |
70 | li2a.visible := false; |
66 | li3a.visible := false; |
71 | li3a.visible := false; |
67 | li1b.visible := false; |
72 | li1b.visible := false; |
68 | li2b.visible := false; |
73 | li2b.visible := false; |
69 | li3b.visible := false; |
74 | li3b.visible := false; |
70 | li4.visible := false; |
75 | li4.visible := false; |
- | 76 | liu.Visible := false; |
|
71 | liw.visible := true; |
77 | liw.visible := true; |
72 | LadenBtn.enabled := false; |
78 | LadenBtn.enabled := false; |
73 | LoeschenBtn.enabled := false; |
79 | LoeschenBtn.enabled := false; |
74 | for i := 1 to MaxPossibleLevels do |
80 | for i := 1 to MaxPossibleLevels do |
75 | begin |
81 | begin |
76 | if fileexists(GetLevelFileName(i)) then |
82 | fil := GetLevelFileName(i, false); |
77 | LevelListBox.items.Add(ChangeFileExt(ExtractFileName(GetLevelFileName(i)),'')); |
83 | if fileexists(fil) then LevelListBox.items.Add(Format(SLevelListBox, [i])); |
78 | end; |
84 | end; |
79 | end; |
85 | end; |
80 | 86 | ||
81 | procedure TSpeicherungForm.LoeschenBtnClick(Sender: TObject); |
87 | procedure TSpeicherungForm.LoeschenBtnClick(Sender: TObject); |
- | 88 | var |
|
- | 89 | fil: string; |
|
82 | begin |
90 | begin |
83 | if LevelListBox.ItemIndex = -1 then exit; |
91 | if LevelListBox.ItemIndex = -1 then exit; |
84 | 92 | ||
85 | if MessageDlg('Dieses Level wirklich löschen?', mtConfirmation, mbYesNoCancel, 0) = mrYes then |
93 | if MessageDlg('Dieses Level wirklich löschen?', mtConfirmation, mbYesNoCancel, 0) = mrYes then |
86 | begin |
94 | begin |
Line 93... | Line 101... | ||
93 | li4.visible := false; |
101 | li4.visible := false; |
94 | liu.visible := false; |
102 | liu.visible := false; |
95 | liw.visible := true; |
103 | liw.visible := true; |
96 | LadenBtn.enabled := false; |
104 | LadenBtn.enabled := false; |
97 | LoeschenBtn.enabled := false; |
105 | LoeschenBtn.enabled := false; |
98 | deletefile(IncludeTrailingPathDelimiter(ExtractFilePath(GetLevelFileName(1)))+ |
106 | fil := GetLevelFileName(GetListBoxSelectedLevelNumber,false); |
99 | LevelListBox.Items.strings[LevelListBox.itemindex]+'.lev'); |
107 | if not fileexists(fil) then raise Exception.Create('Leveldatei nicht gefunden'); |
- | 108 | deletefile(fil); |
|
100 | SearchLevels; |
109 | SearchLevels; |
101 | end; |
110 | end; |
102 | end; |
111 | end; |
103 | 112 | ||
104 | procedure TSpeicherungForm.LadenBtnClick(Sender: TObject); |
113 | procedure TSpeicherungForm.LadenBtnClick(Sender: TObject); |
- | 114 | var |
|
- | 115 | fil: string; |
|
105 | begin |
116 | begin |
106 | if LevelListBox.ItemIndex = -1 then exit; |
117 | if LevelListBox.ItemIndex = -1 then exit; |
107 | 118 | ||
108 | if MainForm.LevChanged and (MainForm.LevData.CountEnemies>0) then |
119 | if MainForm.LevChanged and (MainForm.LevData.CountEnemies>0) then |
109 | begin |
120 | begin |
Line 114... | Line 125... | ||
114 | {if liu.visible or (LevelListBox.items.count=0) then |
125 | {if liu.visible or (LevelListBox.items.count=0) then |
115 | exit;} |
126 | exit;} |
116 | 127 | ||
117 | MainForm.DestroyLevel; |
128 | MainForm.DestroyLevel; |
118 | MainForm.LevData.RasterErzwingen := true; |
129 | MainForm.LevData.RasterErzwingen := true; |
119 | MainForm.LevData.LoadFromFile( |
130 | fil := GetLevelFileName(GetListBoxSelectedLevelNumber,false); |
120 | IncludeTrailingPathDelimiter(ExtractFilePath(GetLevelFileName(1)))+ |
131 | if not fileexists(fil) then raise Exception.Create('Leveldatei nicht gefunden'); |
121 | LevelListBox.Items.strings[LevelListBox.itemindex]+'.lev'); |
132 | MainForm.LevData.LoadFromFile(fil); |
122 | - | ||
123 | MainForm.RefreshFromLevData; |
133 | MainForm.RefreshFromLevData; |
124 | MainForm.LevChanged := false; |
134 | MainForm.LevChanged := false; |
125 | MainForm.AnzeigeAct; |
135 | MainForm.AnzeigeAct; |
126 | close; |
136 | close; |
127 | end; |
137 | end; |
128 | 138 | ||
129 | function TSpeicherungForm.RightStr(str: string; count: integer): string; |
- | |
130 | begin |
- | |
131 | result := copy(str, length(str)-(count-1), count); |
- | |
132 | end; |
- | |
133 | - | ||
134 | procedure TSpeicherungForm.SpeichernBtnClick(Sender: TObject); |
139 | procedure TSpeicherungForm.SpeichernBtnClick(Sender: TObject); |
135 | begin |
140 | begin |
136 | if MainForm.LevData.CountEnemies = 0 then |
141 | if MainForm.LevData.CountEnemies = 0 then |
137 | begin |
142 | begin |
138 | MessageDlg('Das Level ist leer!', mtError, [mbOK], 0); |
143 | MessageDlg('Das Level ist leer!', mtError, [mbOK], 0); |
Line 154... | Line 159... | ||
154 | MessageDlg('Dies ist kein gültiger Levelname!', mtError, [mbOK], 0); |
159 | MessageDlg('Dies ist kein gültiger Levelname!', mtError, [mbOK], 0); |
155 | LevelName.SetFocus; |
160 | LevelName.SetFocus; |
156 | exit; |
161 | exit; |
157 | end; |
162 | end; |
158 | end;} |
163 | end;} |
159 | if LevelListBox.items.IndexOf('Level ' + inttostr(LevelNumber.Value)) > -1 then |
164 | if LevelListBox.items.IndexOf(Format(SLevelListBox, [LevelNumber.Value])) > -1 then |
160 | begin |
165 | begin |
161 | if MessageDlg('Level ist bereits vorhanden. Ersetzen?', mtConfirmation, mbYesNoCancel, 0) <> mrYes then |
166 | if MessageDlg('Level ist bereits vorhanden. Ersetzen?', mtConfirmation, mbYesNoCancel, 0) <> mrYes then |
162 | exit; |
167 | exit; |
163 | end; |
168 | end; |
164 | 169 | ||
165 | // Speichern |
170 | // Speichern |
166 | MainForm.LevData.LevelEditorLength := MainForm.ScrollBar.Max; |
171 | MainForm.LevData.LevelEditorLength := MainForm.ScrollBar.Max; |
167 | MainForm.LevData.SaveToFile(GetLevelFileName(LevelNumber.Value)); |
172 | MainForm.LevData.SaveToFile(GetLevelFileName(LevelNumber.Value,true)); |
168 | 173 | ||
169 | // Nacharbeiten |
174 | // Nacharbeiten |
170 | MainForm.LevChanged := false; |
175 | MainForm.LevChanged := false; |
171 | MainForm.AnzeigeAct; |
176 | MainForm.AnzeigeAct; |
172 | SearchLevels; |
177 | SearchLevels; |
Line 175... | Line 180... | ||
175 | procedure TSpeicherungForm.LevelListBoxClick(Sender: TObject); |
180 | procedure TSpeicherungForm.LevelListBoxClick(Sender: TObject); |
176 | var |
181 | var |
177 | LevelData: TLevelData; |
182 | LevelData: TLevelData; |
178 | boss: boolean; |
183 | boss: boolean; |
179 | i: Integer; |
184 | i: Integer; |
180 | temp: string; |
- | |
181 | anzahlEinheiten: integer; |
185 | anzahlEinheiten: integer; |
- | 186 | fil: string; |
|
182 | begin |
187 | begin |
183 | li1a.visible := false; |
188 | li1a.visible := false; |
184 | li2a.visible := false; |
189 | li2a.visible := false; |
185 | li3a.visible := false; |
190 | li3a.visible := false; |
186 | li1b.visible := false; |
191 | li1b.visible := false; |
Line 194... | Line 199... | ||
194 | ladenbtn.enabled := false; |
199 | ladenbtn.enabled := false; |
195 | loeschenbtn.enabled := false; |
200 | loeschenbtn.enabled := false; |
196 | liw.visible := true; |
201 | liw.visible := true; |
197 | exit; |
202 | exit; |
198 | end; |
203 | end; |
199 | temp := LevelListBox.Items.strings[LevelListBox.itemindex]; |
- | |
200 | LevelNumber.Value := strtoint(RightStr(temp, length(temp)-Length('Level '))); |
204 | LevelNumber.Value := GetListBoxSelectedLevelNumber; |
201 | 205 | ||
202 | LevelData := TLevelData.Create; |
206 | LevelData := TLevelData.Create; |
203 | try |
207 | try |
204 | try |
208 | try |
205 | LevelData.RasterErzwingen := true; |
209 | LevelData.RasterErzwingen := true; |
- | 210 | ||
206 | LevelData.LoadFromFile(IncludeTrailingPathDelimiter(ExtractFilePath(GetLevelFileName(1)))+ |
211 | fil := GetLevelFileName(GetListBoxSelectedLevelNumber,false); |
207 | LevelListBox.Items.strings[LevelListBox.itemindex]+'.lev'); |
212 | if not fileexists(fil) then raise Exception.Create('Leveldatei nicht gefunden'); |
- | 213 | LevelData.LoadFromFile(fil); |
|
208 | 214 | ||
209 | boss := false; |
215 | boss := false; |
210 | anzahlEinheiten := Length(LevelData.EnemyAdventTable); |
216 | anzahlEinheiten := Length(LevelData.EnemyAdventTable); |
211 | for i := 0 to anzahlEinheiten - 1 do |
217 | for i := 0 to anzahlEinheiten - 1 do |
212 | begin |
218 | begin |
Line 250... | Line 256... | ||
250 | begin |
256 | begin |
251 | mainform.dxtimer.enabled := false; |
257 | mainform.dxtimer.enabled := false; |
252 | SearchLevels; |
258 | SearchLevels; |
253 | end; |
259 | end; |
254 | 260 | ||
- | 261 | function TSpeicherungForm.GetListBoxSelectedLevelNumber: integer; |
|
- | 262 | var |
|
- | 263 | i: integer; |
|
- | 264 | begin |
|
- | 265 | result := -1; |
|
- | 266 | if LevelListBox.itemindex = -1 then exit; |
|
- | 267 | for i := 1 to MaxPossibleLevels do |
|
- | 268 | begin |
|
- | 269 | if LevelListBox.Items.strings[LevelListBox.itemindex] = Format(SLevelListBox, [i]) then |
|
- | 270 | begin |
|
- | 271 | result := i; |
|
- | 272 | exit; |
|
- | 273 | end; |
|
- | 274 | end; |
|
- | 275 | end; |
|
- | 276 | ||
255 | procedure TSpeicherungForm.DsFancyButton2Click(Sender: TObject); |
277 | procedure TSpeicherungForm.DsFancyButton2Click(Sender: TObject); |
256 | begin |
278 | begin |
257 | SearchLevels; |
279 | SearchLevels; |
258 | end; |
280 | end; |
259 | 281 |