-- 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, magic, deity, 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; review_unit_data : unit.enumeration; review_chad_data : chad.enumeration; ------------------------------------------------------------------------------------------ procedure configure; function equipment_valid (data : in equipment.enumeration) return boolean; function random_landmark return landmark.information; function random_location return location.information; function random_construction return construction.information; function random_equipment return equipment.information; function random_unit return unit.information; procedure insert_landmark (data : in landmark.information); procedure insert_location (data : in location.information); procedure insert_construction (data : in construction.information); procedure insert_equipment (data : in equipment.information); procedure insert_unit (data : in unit.information); procedure insert_chad (data : in chad.information); procedure draw_landmark (data : in landmark.enumeration; x, y, factor : in integer); procedure draw_location (data : in location.enumeration; used : in boolean; x, y, factor : in integer); procedure draw_construction (data : in construction.enumeration; x, y, factor : in integer); procedure draw_equipment (data : in equipment.enumeration; x, y, factor : in integer); procedure draw_unit (data : in unit.enumeration; state : in core.animation; x, y, factor : in integer); procedure draw_chad (data : in chad.information; state : in core.animation; x, y, factor : in integer); procedure review_unit; procedure review_chad; 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 mapshot (file_path : in string); function map_is_revealed return boolean; procedure reveal_map; procedure restore_points; procedure increase_attributes; procedure increase_resources; procedure player_up; procedure player_down; procedure player_left; procedure player_right; ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ end world;