Subversion Repositories jumper

Rev

Rev 9 | Rev 18 | Go to most recent revision | Show entire file | Regard 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;
64
        end;
-
 
65
      finally
-
 
66
        FreeAndNil(Level);
-
 
67
      end;
65
    end;
68
    end;
66
    ModalResult := mrOk;
69
    ModalResult := mrOk;
67
  end;
70
  end;
68
end;
71
end;
69
 
72
 
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;