-- Copyright (c) 2024 - Ognjen 'xolatile' Milan Robovic -- -- GNU General Public Licence (version 3 or later) with core, ui; package body equipment is ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ function "=" (a, b : in enumeration) return boolean is begin return natural (enumeration'pos (a)) = natural (enumeration'pos (b)); end "="; function "/" (a, b : in enumeration) return boolean is begin return natural (enumeration'pos (a)) /= natural (enumeration'pos (b)); end "/"; ------------------------------------------------------------------------------------------ procedure configure is time : float := 0.0; begin time := core.time; -- core.echo (core.comment, "Configuring" & count'image & " equipment components..."); -- for index in enumeration loop declare folder : constant string := core.lowercase (slot'image (description (index).kind)); file : constant string := core.lowercase (enumeration'image (index)); begin sprite (index) := core.import_sprite (core.folder & "/game/equipment/" & folder & "/" & file & ".png", 4, 6); icon (index) := core.import_sprite (core.folder & "/icon/equipment/" & folder & "/" & file & ".png", 1, 1); end; end loop; -- core.echo (core.success, "Successfully configured equipment information in" & natural'image (natural (1_000_000.0 * (core.time - time))) & " microseconds."); end configure; ------------------------------------------------------------------------------------------ procedure draw (index : in enumeration; state : in core.animation; x, y : in integer) is begin core.draw (sprite (index), x, y, state => state); end draw; ------------------------------------------------------------------------------------------ procedure draw_plus (index : in enumeration; state : in core.animation; x, y : in integer) is use type core.cursor_code; begin draw (index, state, x, y); -- if core.cursor_inside (x, y, sprite (index).width, sprite (index).height) and core.cursor_mode = core.cursor_middle and index / none and not ui.prioritize then core.write_text_box (-(description (index).name)); end if; end draw_plus; ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ end equipment;