Rev 9 | Rev 18 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 9 | Rev 11 | ||
---|---|---|---|
Line 48... | Line 48... | ||
48 | result := Format(LVL_FILE, [LevelList.Selected.Caption]); |
48 | result := Format(LVL_FILE, [LevelList.Selected.Caption]); |
49 | end; |
49 | end; |
50 | 50 | ||
51 | procedure TLevelChoice.PlayBtnClick(Sender: TObject); |
51 | procedure TLevelChoice.PlayBtnClick(Sender: TObject); |
52 | var |
52 | var |
53 | LevelString: string; |
53 | Level: TLevel; |
54 | begin |
54 | begin |
55 | if Assigned(LevelList.Selected) then |
55 | if Assigned(LevelList.Selected) then |
56 | begin |
56 | begin |
57 | if LevelList.Selected.ImageIndex = 2 then |
57 | if LevelList.Selected.ImageIndex = 2 then |
58 | begin |
58 | begin |
59 | LevelString := Functions.ReadFile(Format(LVL_FILE, [LevelList.Selected.Caption])); |
59 | Level := TLevel.Create(Format(LVL_FILE, [LevelList.Selected.Caption])); |
60 | // leNone könnte auftreten, wenn das Level z.B. repariert wurde... |
60 | try |
61 | if CheckLevelIntegrity(LevelString, true) <> leNone then |
61 | if Level.CheckLevelIntegrity(true) <> leNone then |
62 | begin |
62 | begin |
63 | exit; |
63 | exit; |
- | 64 | end; |
|
- | 65 | finally |
|
- | 66 | FreeAndNil(Level); |
|
64 | end; |
67 | end; |
65 | end; |
68 | end; |
66 | ModalResult := mrOk; |
69 | ModalResult := mrOk; |
67 | end; |
70 | end; |
68 | end; |
71 | end; |
Line 78... | Line 81... | ||
78 | end; |
81 | end; |
79 | 82 | ||
80 | procedure TLevelChoice.LevelListClick(Sender: TObject); |
83 | procedure TLevelChoice.LevelListClick(Sender: TObject); |
81 | var |
84 | var |
82 | LevelFile, LevelString: string; |
85 | LevelFile, LevelString: string; |
- | 86 | Level: TLevel; |
|
83 | begin |
87 | begin |
84 | PlayBtn.Enabled := Assigned(LevelList.Selected); |
88 | PlayBtn.Enabled := Assigned(LevelList.Selected); |
85 | PLoadLevel.Enabled := Assigned(LevelList.Selected); |
89 | PLoadLevel.Enabled := Assigned(LevelList.Selected); |
86 | 90 | ||
87 | if Assigned(LevelList.Selected) then |
91 | if Assigned(LevelList.Selected) then |
88 | begin |
92 | begin |
89 | LevelFile := Format(LVL_FILE, [LevelList.Selected.Caption]); |
93 | LevelFile := Format(LVL_FILE, [LevelList.Selected.Caption]); |
90 | LevelString := Functions.ReadFile(LevelFile); |
94 | Level := TLevel.Create(LevelFile); |
- | 95 | try |
|
91 | DrawLevelPreview(LevelString, PreviewImage, Color); |
96 | DrawLevelPreview(Level, PreviewImage, Color); |
- | 97 | finally |
|
- | 98 | FreeAndNil(Level); |
|
- | 99 | end; |
|
92 | end |
100 | end |
93 | else |
101 | else |
94 | begin |
102 | begin |
95 | ClearImage(PreviewImage, Color); |
103 | ClearImage(PreviewImage, Color); |
96 | end; |
104 | end; |
Line 108... | Line 116... | ||
108 | end; |
116 | end; |
109 | 117 | ||
110 | procedure TLevelChoice.RefreshList; |
118 | procedure TLevelChoice.RefreshList; |
111 | var |
119 | var |
112 | s: TSearchRec; |
120 | s: TSearchRec; |
113 | LevelString: string; |
121 | Level: TLevel; |
114 | begin |
122 | begin |
115 | LevelList.Clear; |
123 | LevelList.Clear; |
116 | 124 | ||
117 | // Levels auflisten |
125 | // Levels auflisten |
118 | if FindFirst(Format(LVL_FILE, ['*']), faAnyFile, s) = 0 then |
126 | if FindFirst(Format(LVL_FILE, ['*']), faAnyFile, s) = 0 then |
119 | begin |
127 | begin |
120 | repeat |
128 | repeat |
121 | with LevelList.Items.Add do |
129 | with LevelList.Items.Add do |
122 | begin |
130 | begin |
123 | Caption := Copy(s.Name, 1, Length(s.Name)-Length(LVL_EXT)); |
131 | Caption := Copy(s.Name, 1, Length(s.Name)-Length(LVL_EXT)); |
124 | LevelString := Functions.ReadFile(LVL_PATH + s.Name); |
132 | Level := TLevel.Create(LVL_PATH + s.Name); |
125 | case GetLevelType(LevelString) of |
133 | case Level.GetGameMode of |
126 | ltStandard: ImageIndex := 0; |
134 | gmNormal: ImageIndex := 0; |
127 | ltDiagonal: ImageIndex := 1; |
135 | gmDiagonal: ImageIndex := 1; |
128 | ltError: ImageIndex := 2; |
136 | gmUndefined: ImageIndex := 2; |
129 | end; |
137 | end; |
130 | end; |
138 | end; |
131 | until FindNext(s) <> 0; |
139 | until FindNext(s) <> 0; |
132 | FindClose(s); |
140 | FindClose(s); |
133 | end; |
141 | end; |