mirror of
https://github.com/dpethes/rerogue.git
synced 2025-06-07 18:58:32 +02:00
terrain viewer: load all levels
This commit is contained in:
parent
cd9780147c
commit
5c623d9bbf
@ -14,7 +14,6 @@ type
|
|||||||
points: boolean;
|
points: boolean;
|
||||||
vcolors: boolean;
|
vcolors: boolean;
|
||||||
textures: boolean;
|
textures: boolean;
|
||||||
fg_to_draw: integer;
|
|
||||||
end;
|
end;
|
||||||
|
|
||||||
TTerrainBlock = record
|
TTerrainBlock = record
|
||||||
|
@ -116,6 +116,16 @@ begin
|
|||||||
glLoadIdentity; // Reset The View
|
glLoadIdentity; // Reset The View
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
procedure LoadLevel();
|
||||||
|
begin
|
||||||
|
Assert((0 <= g_selected_level_idx) and (g_selected_level_idx < g_levels.Size), 'broken level select');
|
||||||
|
if (terrain <> nil) then
|
||||||
|
terrain.Free;
|
||||||
|
terrain := TTerrainMesh.Create;
|
||||||
|
terrain.Load(g_levels[g_selected_level_idx]);
|
||||||
|
terrain.InitGL;
|
||||||
|
end;
|
||||||
|
|
||||||
procedure DrawGui;
|
procedure DrawGui;
|
||||||
const
|
const
|
||||||
LevelNames: array[0..19] of string = (
|
LevelNames: array[0..19] of string = (
|
||||||
@ -152,15 +162,9 @@ begin
|
|||||||
Imgui.Begin_('Level list');
|
Imgui.Begin_('Level list');
|
||||||
for i := 0 to g_levels.Size - 1 do begin
|
for i := 0 to g_levels.Size - 1 do begin
|
||||||
item := g_levels[i];
|
item := g_levels[i];
|
||||||
//some levels are broken atm
|
|
||||||
if i in [7, 9, 15] then
|
|
||||||
continue;
|
|
||||||
if Imgui.Selectable(item.name + ' - ' + LevelNames[i], g_selected_level_idx = i) then begin
|
if Imgui.Selectable(item.name + ' - ' + LevelNames[i], g_selected_level_idx = i) then begin
|
||||||
g_selected_level_idx := i;
|
g_selected_level_idx := i;
|
||||||
terrain.Free;
|
LoadLevel();
|
||||||
terrain := TTerrainMesh.Create;
|
|
||||||
terrain.Load(g_levels[i]);
|
|
||||||
terrain.InitGL;
|
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
Imgui.End_;
|
Imgui.End_;
|
||||||
@ -340,10 +344,18 @@ begin
|
|||||||
view.render.points := not view.render.points;
|
view.render.points := not view.render.points;
|
||||||
SDLK_t:
|
SDLK_t:
|
||||||
view.render.textures := not view.render.textures;
|
view.render.textures := not view.render.textures;
|
||||||
SDLK_LEFT:
|
SDLK_DOWN: begin
|
||||||
view.render.fg_to_draw := max(0, view.render.fg_to_draw - 1);
|
g_selected_level_idx += 1;
|
||||||
SDLK_RIGHT:
|
if g_selected_level_idx >= g_levels.Size then
|
||||||
view.render.fg_to_draw += 1;
|
g_selected_level_idx := 0;
|
||||||
|
LoadLevel();
|
||||||
|
end;
|
||||||
|
SDLK_UP: begin
|
||||||
|
g_selected_level_idx -= 1;
|
||||||
|
if g_selected_level_idx < 0 then
|
||||||
|
g_selected_level_idx := g_levels.Size - 1;
|
||||||
|
LoadLevel();
|
||||||
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
SDL_MOUSEBUTTONDOWN: begin
|
SDL_MOUSEBUTTONDOWN: begin
|
||||||
|
Loading…
x
Reference in New Issue
Block a user