Added item rendering to world...
This commit is contained in:
parent
4abc465194
commit
c6b6c708db
@ -23,7 +23,8 @@ package body world is
|
|||||||
limit : constant limit_array := (29, 64, 70, 94, 51, 94);
|
limit : constant limit_array := (29, 64, 70, 94, 51, 94);
|
||||||
|
|
||||||
landmark_limit : constant integer := 140;
|
landmark_limit : constant integer := 140;
|
||||||
construction_limit : constant integer := 10;
|
construction_limit : constant integer := 40;
|
||||||
|
item_limit : constant integer := 40;
|
||||||
|
|
||||||
------------------------------------------------------------------------------------------
|
------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
@ -56,6 +57,7 @@ package body world is
|
|||||||
map.block := new block_array (0 .. width - 1, 0 .. height - 1);
|
map.block := new block_array (0 .. width - 1, 0 .. height - 1);
|
||||||
map.landmark := new entity_array (0 .. landmark_limit);
|
map.landmark := new entity_array (0 .. landmark_limit);
|
||||||
map.construction := new entity_array (0 .. construction_limit);
|
map.construction := new entity_array (0 .. construction_limit);
|
||||||
|
map.item := new entity_array (0 .. item_limit);
|
||||||
--
|
--
|
||||||
for x in 0 .. width - 1
|
for x in 0 .. width - 1
|
||||||
loop
|
loop
|
||||||
@ -78,6 +80,13 @@ package body world is
|
|||||||
map.construction (object).x := core.base * core.random_integer (1, map.width - 1);
|
map.construction (object).x := core.base * core.random_integer (1, map.width - 1);
|
||||||
map.construction (object).y := core.base * core.random_integer (1, map.height - 1);
|
map.construction (object).y := core.base * core.random_integer (1, map.height - 1);
|
||||||
end loop;
|
end loop;
|
||||||
|
--
|
||||||
|
for object in 0 .. item_limit
|
||||||
|
loop
|
||||||
|
map.item (object).index := core.random_integer (0, item.codex'pos (item.codex'last));
|
||||||
|
map.item (object).x := core.base * core.random_integer (1, map.width - 1);
|
||||||
|
map.item (object).y := core.base * core.random_integer (1, map.height - 1);
|
||||||
|
end loop;
|
||||||
end make;
|
end make;
|
||||||
|
|
||||||
------------------------------------------------------------------------------------------
|
------------------------------------------------------------------------------------------
|
||||||
@ -142,6 +151,20 @@ package body world is
|
|||||||
--
|
--
|
||||||
<<skip_drawing_out_of_view_construction>>
|
<<skip_drawing_out_of_view_construction>>
|
||||||
end loop;
|
end loop;
|
||||||
|
--
|
||||||
|
for object in 0 .. item_limit
|
||||||
|
loop
|
||||||
|
if map.item (object).x > width
|
||||||
|
or map.item (object).y > height then
|
||||||
|
goto skip_drawing_out_of_view_item;
|
||||||
|
end if;
|
||||||
|
--
|
||||||
|
item.draw (item.codex'val (map.item (object).index),
|
||||||
|
map.item (object).x - core.camera.x * core.base,
|
||||||
|
map.item (object).y - core.camera.y * core.base);
|
||||||
|
--
|
||||||
|
<<skip_drawing_out_of_view_item>>
|
||||||
|
end loop;
|
||||||
end draw;
|
end draw;
|
||||||
|
|
||||||
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||||
|
@ -26,6 +26,7 @@ package world is
|
|||||||
block : access block_array;
|
block : access block_array;
|
||||||
landmark : access entity_array;
|
landmark : access entity_array;
|
||||||
construction : access entity_array;
|
construction : access entity_array;
|
||||||
|
item : access entity_array;
|
||||||
end record;
|
end record;
|
||||||
|
|
||||||
------------------------------------------------------------------------------------------
|
------------------------------------------------------------------------------------------
|
||||||
|
Loading…
Reference in New Issue
Block a user