Refactored Unit package...
This commit is contained in:
parent
ea8e8e7b90
commit
eab5faa357
@ -241,7 +241,11 @@ begin
|
||||
end;
|
||||
end loop;
|
||||
|
||||
unit.configure;
|
||||
core.echo (core.comment, "Configuring" & unit.count'image & " unit components...");
|
||||
--
|
||||
for index in faction.fairy .. faction.imp loop
|
||||
unit.base (index) := core.import_sprite (core.folder & "/game/unit/" & core.lowercase (faction.enumeration'image (index)) & "/base.png", 4, 6);
|
||||
end loop;
|
||||
|
||||
core.echo (core.comment, "Configuring" & deity.count'image & " deity components...");
|
||||
--
|
||||
|
@ -1,58 +0,0 @@
|
||||
-- Copyright (c) 2024 - Ognjen 'xolatile' Milan Robovic
|
||||
--
|
||||
-- GNU General Public Licence (version 3 or later)
|
||||
|
||||
with core, ui, effect, attribute, faction;
|
||||
|
||||
package body unit is
|
||||
|
||||
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
|
||||
view_width : constant integer := 48;
|
||||
view_height : constant integer := 64;
|
||||
|
||||
base : array (faction.fairy .. faction.imp) of core.sprite;
|
||||
--~icon : array (enumeration) of core.sprite;
|
||||
--~view : array (enumeration) of core.sprite;
|
||||
|
||||
------------------------------------------------------------------------------------------
|
||||
|
||||
procedure configure is
|
||||
begin
|
||||
core.echo (core.comment, "Configuring unit components...");
|
||||
--
|
||||
for index in faction.fairy .. faction.imp loop
|
||||
base (index) := core.import_sprite (core.folder & "/game/unit/" & core.lowercase (faction.enumeration'image (index)) & "/base.png", 4, 6);
|
||||
end loop;
|
||||
end configure;
|
||||
|
||||
------------------------------------------------------------------------------------------
|
||||
|
||||
procedure draw (index : in enumeration; state : in core.animation; x, y : in integer) is
|
||||
begin
|
||||
core.draw (base (description (index).kind), x, y, state => state);
|
||||
--
|
||||
for slot in equipment.slot loop
|
||||
core.draw (equipment.sprite (description (index).equipments (slot)), x, y, state => state);
|
||||
end loop;
|
||||
end draw;
|
||||
|
||||
------------------------------------------------------------------------------------------
|
||||
|
||||
--~procedure draw_icon (index : in enumeration; x, y : in integer) is
|
||||
--~begin
|
||||
--~ui.draw_overicon (icon (index), description (index).text, x, y);
|
||||
--~end draw_icon;
|
||||
|
||||
------------------------------------------------------------------------------------------
|
||||
|
||||
--~procedure draw_view (index : in enumeration; x, y : in integer) is
|
||||
--~offset : constant integer := 4;
|
||||
--~begin
|
||||
--~core.draw (view (index), x + offset, y + offset);
|
||||
--~ui.draw_icon_menu (x, y, view_width + 2 * offset, view_height + 2 * offset);
|
||||
--~end draw_view;
|
||||
|
||||
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
|
||||
end unit;
|
@ -68,14 +68,9 @@ package unit is
|
||||
equipment.steel_greaves, equipment.none, equipment.mithril_axe, equipment.steel_shield))
|
||||
);
|
||||
|
||||
------------------------------------------------------------------------------------------
|
||||
|
||||
procedure configure;
|
||||
|
||||
procedure draw (index : in enumeration; state : in core.animation; x, y : in integer);
|
||||
|
||||
--~procedure draw_icon (index : in enumeration; x, y : in integer);
|
||||
--~procedure draw_view (index : in enumeration; x, y : in integer);
|
||||
base : array (faction.fairy .. faction.imp) of core.sprite;
|
||||
--~icon : array (faction.fairy .. faction.imp) of core.sprite;
|
||||
--~view : array (faction.fairy .. faction.imp) of core.sprite;
|
||||
|
||||
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
|
||||
|
@ -383,10 +383,17 @@ package body world is
|
||||
if map.views (map.units (index).x, map.units (index).y)
|
||||
and map.units (index).x > view_from.x and map.units (index).x < view_from.x + view_to.x
|
||||
and map.units (index).y > view_from.y and map.units (index).y < view_from.y + view_to.y then
|
||||
unit.draw (unit.enumeration'val (map.units (index).index),
|
||||
core.animation'val (map.units (index).state),
|
||||
offset.x + (map.units (index).x - core.camera.x) * core.base * core.zoom,
|
||||
offset.y + (map.units (index).y - core.camera.y) * core.base * core.zoom);
|
||||
core.draw (data => unit.base (unit.description (unit.enumeration'val (map.units (index).index)).kind),
|
||||
x => offset.x + (map.units (index).x - core.camera.x) * core.base * core.zoom,
|
||||
y => offset.y + (map.units (index).y - core.camera.y) * core.base * core.zoom,
|
||||
state => core.animation'val (map.units (index).state));
|
||||
--
|
||||
for slot in equipment.slot loop
|
||||
core.draw (data => equipment.sprite (unit.description (unit.enumeration'val (map.units (index).index)).equipments (slot)),
|
||||
x => offset.x + (map.units (index).x - core.camera.x) * core.base * core.zoom,
|
||||
y => offset.y + (map.units (index).y - core.camera.y) * core.base * core.zoom,
|
||||
state => core.animation'val (map.units (index).state));
|
||||
end loop;
|
||||
--
|
||||
core.increment (drawn_units);
|
||||
end if;
|
||||
|
Loading…
Reference in New Issue
Block a user