Added new skill view for chads...
This commit is contained in:
parent
24319df2b8
commit
614c0fdd0b
@ -18,7 +18,7 @@ package skill is
|
|||||||
|
|
||||||
------------------------------------------------------------------------------------------
|
------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
subtype limit is new natural range 0 .. 7;
|
subtype limit is natural range 0 .. 7;
|
||||||
|
|
||||||
type definition is record
|
type definition is record
|
||||||
name : access string := new string'("--");
|
name : access string := new string'("--");
|
||||||
|
@ -503,43 +503,14 @@ package body world is
|
|||||||
begin
|
begin
|
||||||
ui.draw_frame (x, y, width, height);
|
ui.draw_frame (x, y, width, height);
|
||||||
--
|
--
|
||||||
orient := orient + view_chad_basics (data, x + offset, y + offset, limit - 2 * offset);
|
orient := orient + view_chad_basics (data, x + offset, y + offset, limit - 2 * offset);
|
||||||
ui.draw_separator ( x + offset, y + offset + orient.y, limit - 2 * offset);
|
ui.draw_separator ( x + offset, y + offset + orient.y, limit - 2 * offset);
|
||||||
orient := orient + view_chad_points (data, x + offset, y + offset + orient.y + core.base, limit - 2 * offset);
|
orient := orient + view_chad_points (data, x + offset, y + offset + orient.y + 1 * core.base, limit - 2 * offset);
|
||||||
ui.draw_separator ( x + offset, y + offset + orient.y + core.base, limit - 2 * offset);
|
ui.draw_separator ( x + offset, y + offset + orient.y + 1 * core.base, limit - 2 * offset);
|
||||||
|
orient := orient + view_chad_equipment (data, x + offset, y + offset + orient.y + 2 * core.base, limit - 2 * offset);
|
||||||
|
orient := orient + view_chad_skills (data, x + offset, y + offset + orient.y + 2 * core.base, limit - 2 * offset);
|
||||||
|
ui.draw_separator ( x + offset, y + offset + orient.y + 2 * core.base, limit - 2 * offset);
|
||||||
--
|
--
|
||||||
for index in equipment.kind loop
|
|
||||||
if equipment_valid (data.equipments (index)) then
|
|
||||||
ui.draw_overicon (data => equipment.icon (data.equipments (index)),
|
|
||||||
text => equipment.description (data.equipments (index)).name.all,
|
|
||||||
x => x + offset + equipment.kind'pos (index) * core.icon,
|
|
||||||
y => y + offset + 2 * core.base + chad.view_height + 3 * core.icon);
|
|
||||||
else
|
|
||||||
ui.draw_overicon (data => equipment.slot (index),
|
|
||||||
text => "Slot '" & core.lowercase (equipment.kind (index)'image) & "' is empty.",
|
|
||||||
x => x + offset + equipment.kind'pos (index) * core.icon,
|
|
||||||
y => y + offset + 2 * core.base + chad.view_height + 3 * core.icon);
|
|
||||||
end if;
|
|
||||||
end loop;
|
|
||||||
--
|
|
||||||
ui.draw_text (text => "Equipment",
|
|
||||||
x => x + offset + 8 * core.icon,
|
|
||||||
y => y + offset + 2 * core.base + chad.view_height + 3 * core.icon,
|
|
||||||
width => width - 8 * core.icon - 2 * offset,
|
|
||||||
height => core.icon,
|
|
||||||
offset => core.more);
|
|
||||||
--
|
|
||||||
--~at_y := at_y + core.icon;
|
|
||||||
--~--
|
|
||||||
--~ui.draw_text ("Skills", at_x + side, at_y, width - side - 2 * offset, core.icon, core.more);
|
|
||||||
--~--
|
|
||||||
--~for index in 0 .. skill.limit - 1 loop
|
|
||||||
--~ui.draw_icon (skill.icon (data.skills (index).index), skill.description (data.skills (index).index).text.all, at_x + index * core.icon, at_y);
|
|
||||||
--~ui.write (data.points (index).value'image, at_x + index * core.icon + core.more, at_y + core.more, code => true);
|
|
||||||
--~end loop;
|
|
||||||
--~--
|
|
||||||
--~at_y := at_y + core.icon;
|
|
||||||
--~--
|
|
||||||
--~ui.draw_separator (at_x, at_y, width - 2 * offset);
|
--~ui.draw_separator (at_x, at_y, width - 2 * offset);
|
||||||
--~--
|
--~--
|
||||||
--~at_y := at_y + core.base;
|
--~at_y := at_y + core.base;
|
||||||
@ -703,9 +674,9 @@ package body world is
|
|||||||
for index in resource.enumeration loop core.save_point (file, map.chads (chad_index).resources (index)); end loop;
|
for index in resource.enumeration loop core.save_point (file, map.chads (chad_index).resources (index)); end loop;
|
||||||
for index in material.enumeration loop core.save_point (file, map.chads (chad_index).materials (index)); end loop;
|
for index in material.enumeration loop core.save_point (file, map.chads (chad_index).materials (index)); end loop;
|
||||||
--
|
--
|
||||||
for index in 0 .. skill.limit - 1 loop core.io.write (file, skill.enumeration'pos (map.chads (chad_index).skills (index).index)); end loop;
|
for index in skill.limit loop core.io.write (file, skill.enumeration'pos (map.chads (chad_index).skills (index).index)); end loop;
|
||||||
for index in 0 .. skill.limit - 1 loop core.io.write (file, map.chads (chad_index).skills (index).value); end loop;
|
for index in skill.limit loop core.io.write (file, map.chads (chad_index).skills (index).value); end loop;
|
||||||
for index in 0 .. skill.limit - 1 loop core.io.write (file, map.chads (chad_index).skills (index).limit); end loop;
|
for index in skill.limit loop core.io.write (file, map.chads (chad_index).skills (index).limit); end loop;
|
||||||
--
|
--
|
||||||
for kind in equipment.kind loop
|
for kind in equipment.kind loop
|
||||||
core.io.write (file, equipment.enumeration'pos (map.chads (chad_index).equipments (kind)));
|
core.io.write (file, equipment.enumeration'pos (map.chads (chad_index).equipments (kind)));
|
||||||
@ -795,9 +766,9 @@ package body world is
|
|||||||
for index in resource.enumeration loop core.load_point (file, map.chads (chad_index).resources (index)); end loop;
|
for index in resource.enumeration loop core.load_point (file, map.chads (chad_index).resources (index)); end loop;
|
||||||
for index in material.enumeration loop core.load_point (file, map.chads (chad_index).materials (index)); end loop;
|
for index in material.enumeration loop core.load_point (file, map.chads (chad_index).materials (index)); end loop;
|
||||||
--
|
--
|
||||||
for index in 0 .. skill.limit - 1 loop core.io.read (file, this); map.chads (chad_index).skills (index).index := skill.enumeration'val (this); end loop;
|
for index in skill.limit loop core.io.read (file, this); map.chads (chad_index).skills (index).index := skill.enumeration'val (this); end loop;
|
||||||
for index in 0 .. skill.limit - 1 loop core.io.read (file, map.chads (chad_index).skills (index).value); end loop;
|
for index in skill.limit loop core.io.read (file, map.chads (chad_index).skills (index).value); end loop;
|
||||||
for index in 0 .. skill.limit - 1 loop core.io.read (file, map.chads (chad_index).skills (index).limit); end loop;
|
for index in skill.limit loop core.io.read (file, map.chads (chad_index).skills (index).limit); end loop;
|
||||||
--
|
--
|
||||||
for kind in equipment.kind loop
|
for kind in equipment.kind loop
|
||||||
core.io.read (file, this); map.chads (chad_index).equipments (kind) := equipment.enumeration'val (this);
|
core.io.read (file, this); map.chads (chad_index).equipments (kind) := equipment.enumeration'val (this);
|
||||||
@ -1223,15 +1194,41 @@ package body world is
|
|||||||
------------------------------------------------------------------------------------------
|
------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
function view_chad_skills (data : in chad.information; x, y, limit : in integer) return core.vector is
|
function view_chad_skills (data : in chad.information; x, y, limit : in integer) return core.vector is
|
||||||
|
count : constant natural := skill.limit'last + 1;
|
||||||
|
width : constant natural := limit / 2;
|
||||||
begin
|
begin
|
||||||
return (limit, skill.limit * core.icon);
|
for index in skill.limit loop
|
||||||
|
ui.draw_icon (data => skill.icon (data.skills (index).index),
|
||||||
|
text => skill.description (data.skills (index).index).text.all,
|
||||||
|
x => x + (index mod 2) * width,
|
||||||
|
y => y + (index / 2) * core.icon);
|
||||||
|
--
|
||||||
|
ui.draw_text (text => skill.description (data.skills (index).index).name.all & data.skills (index).value'image,
|
||||||
|
x => x + (index mod 2) * width + core.icon,
|
||||||
|
y => y + (index / 2) * core.icon,
|
||||||
|
width => width - core.icon,
|
||||||
|
height => core.icon,
|
||||||
|
offset => core.more);
|
||||||
|
end loop;
|
||||||
|
--
|
||||||
|
return (limit, (count / 2) * core.icon);
|
||||||
end view_chad_skills;
|
end view_chad_skills;
|
||||||
|
|
||||||
------------------------------------------------------------------------------------------
|
------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
function view_chad_equipment (data : in chad.information; x, y, limit : in integer) return core.vector is
|
function view_chad_equipment (data : in chad.information; x, y, limit : in integer) return core.vector is
|
||||||
|
count : constant natural := equipment.kind'pos (equipment.kind'last) + 1;
|
||||||
begin
|
begin
|
||||||
return (0, 0);
|
for index in equipment.kind loop
|
||||||
|
ui.draw_overicon (data => (if equipment_valid (data.equipments (index)) then equipment.icon (data.equipments (index)) else equipment.slot (index)),
|
||||||
|
text => (if equipment_valid (data.equipments (index)) then equipment.description (data.equipments (index)).name.all else "--"),
|
||||||
|
x => x + equipment.kind'pos (index) * core.icon,
|
||||||
|
y => y);
|
||||||
|
end loop;
|
||||||
|
--
|
||||||
|
ui.draw_text ("Equipment", x + count * core.icon, y, limit - count * core.icon, core.icon, core.more);
|
||||||
|
--
|
||||||
|
return (limit, core.icon);
|
||||||
end view_chad_equipment;
|
end view_chad_equipment;
|
||||||
|
|
||||||
------------------------------------------------------------------------------------------
|
------------------------------------------------------------------------------------------
|
||||||
|
Loading…
Reference in New Issue
Block a user