-- Copyright (c) 2024 - Ognjen 'xolatile' Milan Robovic -- -- GNU General Public Licence (version 3 or later) with core, ui, attribute, skill, resource, material, lore, biome, landmark, location, faction, equipment, unit, construction, chad, effect; use type core.cursor_code; use type core.signal_code; use type core.point; package world is ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ type integer_matrix is array (natural range <>, natural range <>) of integer; type boolean_matrix is array (natural range <>, natural range <>) of boolean; type definition is record kind : biome.enumeration; width : natural; height : natural; tiles : access integer_matrix; clips : access boolean_matrix; views : access boolean_matrix; landmark_count : core.point; location_count : core.point; construction_count : core.point; equipment_count : core.point; unit_count : core.point; chad_count : core.point; landmarks : access landmark.informations; locations : access location.informations; constructions : access construction.informations; equipments : access equipment.informations; units : access unit.informations; chads : access chad.informations; end record; ------------------------------------------------------------------------------------------ map : definition; show_unit_data : unit.enumeration := unit.none; ------------------------------------------------------------------------------------------ procedure configure; function equipment_valid (data : in equipment.enumeration) return boolean; function random_landmark return landmark.information; procedure insert_landmark (data : in landmark.information); procedure insert_chad (data : in chad.information); procedure make (index : in biome.enumeration; width, height, landmark_limit, location_limit, construction_limit, equipment_limit, unit_limit, chad_limit : in natural); procedure save (file_name : in string); procedure load (file_name : in string); procedure draw; procedure draw_performance_box; procedure mapshot (file_path : in string); function map_is_revealed return boolean; procedure draw_unit (data : in unit.enumeration; state : in core.animation; x, y, factor : in integer); procedure show_unit; procedure resource_cheat_1; procedure resource_cheat_2; procedure resource_cheat_3; procedure resource_cheat_4; procedure resource_cheat_5; procedure resource_cheat_6; procedure reveal_map; procedure restore_points; procedure player_up; procedure player_down; procedure player_left; procedure player_right; ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ end world;