bn::regular_bg_map_item class

Contains the required information to generate regular background maps.

The assets conversion tools generate an object of this type in the build folder for each *.bmp file with regular_bg type.

The map cells are not copied but referenced, so they should outlive the regular_bg_map_item to avoid dangling references.

Constructors, destructors, conversion operators

regular_bg_map_item(const regular_bg_map_cell& cells_ref, const size& dimensions) constexpr
Constructor.
regular_bg_map_item(const regular_bg_map_cell& cells_ref, const size& dimensions, int maps_count) constexpr
Constructor.
regular_bg_map_item(const regular_bg_map_cell& cells_ref, const size& dimensions, compression_type compression) constexpr
Constructor.
regular_bg_map_item(const regular_bg_map_cell& cells_ref, const size& dimensions, compression_type compression, int maps_count) constexpr
Constructor.
regular_bg_map_item(const regular_bg_map_cell& cells_ref, const size& dimensions, compression_type compression, int maps_count, bool big) constexpr
Constructor.

Public functions

auto cells_ptr() const -> const regular_bg_map_cell* constexpr
Returns a pointer to the referenced map cells of the first map.
auto cells_ptr(int map_index) const -> const regular_bg_map_cell* constexpr
Returns a pointer to the referenced map cells of the map indicated by map_index.
auto cells_ref() const -> const regular_bg_map_cell& constexpr
Returns the referenced map cells of the first map.
auto cells_ref(int map_index) const -> const regular_bg_map_cell& constexpr
Returns the referenced map cells of the map indicated by map_index.
auto dimensions() const -> const size& constexpr
Returns the size in map cells of each referenced map.
auto big() const -> bool constexpr
Indicates if maps generated with this item are big or not.
auto maps_count() const -> int constexpr
Returns the number of referenced maps.
auto cells_count() const -> int constexpr
Returns the number of referenced map cells.
auto compression() const -> compression_type constexpr
Returns the compression type.
auto flat_layout() const -> bool constexpr
Indicates if the referenced map has a flat layout or not.
auto cell_index(int map_x, int map_y) const -> int constexpr
Returns the index of the referenced map cell in the specified map coordinates.
auto cell_index(const point& map_position) const -> int constexpr
Returns the index of the referenced map cell in the specified map coordinates.
auto cell(int map_x, int map_y) const -> regular_bg_map_cell constexpr
Returns the referenced map cell in the specified map coordinates.
auto cell(int map_index, int map_x, int map_y) const -> regular_bg_map_cell constexpr
Returns the referenced map cell in the specified map coordinates.
auto cell(const point& map_position) const -> regular_bg_map_cell constexpr
Returns the referenced map cell in the specified map coordinates.
auto cell(int map_index, const point& map_position) const -> regular_bg_map_cell constexpr
Returns the referenced map cell in the specified map coordinates.
auto decompress(span<regular_bg_map_cell> decompressed_cells_ref) const -> regular_bg_map_item
Decompresses the stored data in the map cells referenced by decompressed_cells_ref.
auto find_map(const regular_bg_tiles_ptr& tiles, const bg_palette_ptr& palette) const -> optional<regular_bg_map_ptr>
Searches for a regular_bg_map_ptr which references the information provided by this item.
auto find_map(const regular_bg_tiles_ptr& tiles, const bg_palette_ptr& palette, int map_index) const -> optional<regular_bg_map_ptr>
Searches for a regular_bg_map_ptr which references the information provided by this item.
auto create_map(regular_bg_tiles_ptr tiles, bg_palette_ptr palette) const -> regular_bg_map_ptr
Searches for a regular_bg_map_ptr which references the information provided by this item. If it is not found, it creates a regular_bg_map_ptr which references it.
auto create_map(regular_bg_tiles_ptr tiles, bg_palette_ptr palette, int map_index) const -> regular_bg_map_ptr
Searches for a regular_bg_map_ptr which references the information provided by this item. If it is not found, it creates a regular_bg_map_ptr which references it.
auto create_new_map(regular_bg_tiles_ptr tiles, bg_palette_ptr palette) const -> regular_bg_map_ptr
Creates a regular_bg_map_ptr which references the information provided by this item.
auto create_new_map(regular_bg_tiles_ptr tiles, bg_palette_ptr palette, int map_index) const -> regular_bg_map_ptr
Creates a regular_bg_map_ptr which references the information provided by this item.
auto create_map_optional(regular_bg_tiles_ptr tiles, bg_palette_ptr palette) const -> optional<regular_bg_map_ptr>
Searches for a regular_bg_map_ptr which references the information provided by this item. If it is not found, it creates a regular_bg_map_ptr which references it.
auto create_map_optional(regular_bg_tiles_ptr tiles, bg_palette_ptr palette, int map_index) const -> optional<regular_bg_map_ptr>
Searches for a regular_bg_map_ptr which references the information provided by this item. If it is not found, it creates a regular_bg_map_ptr which references it.
auto create_new_map_optional(regular_bg_tiles_ptr tiles, bg_palette_ptr palette) const -> optional<regular_bg_map_ptr>
Creates a regular_bg_map_ptr which references the information provided by this item.
auto create_new_map_optional(regular_bg_tiles_ptr tiles, bg_palette_ptr palette, int map_index) const -> optional<regular_bg_map_ptr>
Creates a regular_bg_map_ptr which references the information provided by this item.

Friends

auto operator==(const regular_bg_map_item& a, const regular_bg_map_item& b) -> bool defaulted constexpr
Default equal operator.

Function documentation

bn::regular_bg_map_item::regular_bg_map_item(const regular_bg_map_cell& cells_ref, const size& dimensions) constexpr

Constructor.

Parameters
cells_ref Reference to one or more regular background map cells.
dimensions Size in map cells of the referenced map cells.

The map cells are not copied but referenced, so they should outlive the regular_bg_map_item to avoid dangling references.

bn::regular_bg_map_item::regular_bg_map_item(const regular_bg_map_cell& cells_ref, const size& dimensions, int maps_count) constexpr

Constructor.

Parameters
cells_ref Reference to one or more regular background map cells.
dimensions Size in map cells of each referenced map.
maps_count Number of maps contained in cells_ref.

The map cells are not copied but referenced, so they should outlive the regular_bg_map_item to avoid dangling references.

bn::regular_bg_map_item::regular_bg_map_item(const regular_bg_map_cell& cells_ref, const size& dimensions, compression_type compression) constexpr

Constructor.

Parameters
cells_ref Reference to one or more regular background map cells.
dimensions Size in map cells of the referenced map cells.
compression Compression type.

The map cells are not copied but referenced, so they should outlive the regular_bg_map_item to avoid dangling references.

bn::regular_bg_map_item::regular_bg_map_item(const regular_bg_map_cell& cells_ref, const size& dimensions, compression_type compression, int maps_count) constexpr

Constructor.

Parameters
cells_ref Reference to one or more regular background map cells.
dimensions Size in map cells of each referenced map.
compression Compression type.
maps_count Number of maps contained in cells_ref.

The map cells are not copied but referenced, so they should outlive the regular_bg_map_item to avoid dangling references.

bn::regular_bg_map_item::regular_bg_map_item(const regular_bg_map_cell& cells_ref, const size& dimensions, compression_type compression, int maps_count, bool big) constexpr

Constructor.

Parameters
cells_ref Reference to one or more regular background map cells.
dimensions Size in map cells of each referenced map.
compression Compression type.
maps_count Number of maps contained in cells_ref.
big Indicates if maps generated with this item are big or not.

The map cells are not copied but referenced, so they should outlive the regular_bg_map_item to avoid dangling references.

Big backgrounds are slower CPU wise, but can have any width or height multiple of 256 pixels.

bool bn::regular_bg_map_item::big() const constexpr

Indicates if maps generated with this item are big or not.

Big backgrounds are slower CPU wise, but can have any width or height multiple of 256 pixels.

int bn::regular_bg_map_item::cell_index(int map_x, int map_y) const constexpr

Returns the index of the referenced map cell in the specified map coordinates.

Parameters
map_x Horizontal position of the map cell [0..dimensions().width()).
map_y Vertical position of the map cell [0..dimensions().height()).
Returns The index of the referenced map cell.

The map cells are not copied but referenced, so they should outlive the regular_bg_map_item to avoid dangling references.

int bn::regular_bg_map_item::cell_index(const point& map_position) const constexpr

Returns the index of the referenced map cell in the specified map coordinates.

Parameters
map_position Position of the map cell.
Returns The index of the referenced map cell.

The map cells are not copied but referenced, so they should outlive the regular_bg_map_item to avoid dangling references.

regular_bg_map_cell bn::regular_bg_map_item::cell(int map_x, int map_y) const constexpr

Returns the referenced map cell in the specified map coordinates.

Parameters
map_x Horizontal position of the map cell [0..dimensions().width()).
map_y Vertical position of the map cell [0..dimensions().height()).
Returns The referenced map cell.

The map cells are not copied but referenced, so they should outlive the regular_bg_map_item to avoid dangling references.

regular_bg_map_cell bn::regular_bg_map_item::cell(int map_index, int map_x, int map_y) const constexpr

Returns the referenced map cell in the specified map coordinates.

Parameters
map_index Referenced map index.
map_x Horizontal position of the map cell [0..dimensions().width()).
map_y Vertical position of the map cell [0..dimensions().height()).
Returns The referenced map cell.

The map cells are not copied but referenced, so they should outlive the regular_bg_map_item to avoid dangling references.

regular_bg_map_cell bn::regular_bg_map_item::cell(const point& map_position) const constexpr

Returns the referenced map cell in the specified map coordinates.

Parameters
map_position Position of the map cell.
Returns The referenced map cell.

The map cells are not copied but referenced, so they should outlive the regular_bg_map_item to avoid dangling references.

regular_bg_map_cell bn::regular_bg_map_item::cell(int map_index, const point& map_position) const constexpr

Returns the referenced map cell in the specified map coordinates.

Parameters
map_index Referenced map index.
map_position Position of the map cell.
Returns The referenced map cell.

The map cells are not copied but referenced, so they should outlive the regular_bg_map_item to avoid dangling references.

regular_bg_map_item bn::regular_bg_map_item::decompress(span<regular_bg_map_cell> decompressed_cells_ref) const

Decompresses the stored data in the map cells referenced by decompressed_cells_ref.

Parameters
decompressed_cells_ref Destination of the decompressed map cells.
Returns A regular_bg_map_item pointing to the decompressed map cells.

If the source and destination map cells overlap, the behavior is undefined.

optional<regular_bg_map_ptr> bn::regular_bg_map_item::find_map(const regular_bg_tiles_ptr& tiles, const bg_palette_ptr& palette) const

Searches for a regular_bg_map_ptr which references the information provided by this item.

Parameters
tiles Referenced tiles of the map to search.
palette Referenced color palette of the map to search.
Returns regular_bg_map_ptr which references the information provided by this item if it has been found; bn::nullopt otherwise.

optional<regular_bg_map_ptr> bn::regular_bg_map_item::find_map(const regular_bg_tiles_ptr& tiles, const bg_palette_ptr& palette, int map_index) const

Searches for a regular_bg_map_ptr which references the information provided by this item.

Parameters
tiles Referenced tiles of the map to search.
palette Referenced color palette of the map to search.
map_index Index of the referenced map to search.
Returns regular_bg_map_ptr which references the information provided by this item if it has been found; bn::nullopt otherwise.

regular_bg_map_ptr bn::regular_bg_map_item::create_map(regular_bg_tiles_ptr tiles, bg_palette_ptr palette) const

Searches for a regular_bg_map_ptr which references the information provided by this item. If it is not found, it creates a regular_bg_map_ptr which references it.

Parameters
tiles Referenced tiles of the map to search or handle.
palette Referenced color palette of the map to search or handle.
Returns regular_bg_map_ptr which references the information provided by this item if it has been found; otherwise it returns a regular_bg_map_ptr which references it.

The map cells are not copied but referenced, so they should outlive the regular_bg_map_ptr to avoid dangling references.

regular_bg_map_ptr bn::regular_bg_map_item::create_map(regular_bg_tiles_ptr tiles, bg_palette_ptr palette, int map_index) const

Searches for a regular_bg_map_ptr which references the information provided by this item. If it is not found, it creates a regular_bg_map_ptr which references it.

Parameters
tiles Referenced tiles of the map to search or handle.
palette Referenced color palette of the map to search or handle.
map_index Index of the referenced map to search or handle.
Returns regular_bg_map_ptr which references the information provided by this item if it has been found; otherwise it returns a regular_bg_map_ptr which references it.

The map cells are not copied but referenced, so they should outlive the regular_bg_map_ptr to avoid dangling references.

regular_bg_map_ptr bn::regular_bg_map_item::create_new_map(regular_bg_tiles_ptr tiles, bg_palette_ptr palette) const

Creates a regular_bg_map_ptr which references the information provided by this item.

Parameters
tiles Referenced tiles of the map to handle.
palette Referenced color palette of the map to handle.
Returns regular_bg_map_ptr which references the information provided by this item.

The map system does not support multiple regular_bg_map_ptr items referencing to the same map cells. If you are not sure if the information provided by this item is already referenced or not, you should use the create_map method instead.

The map cells are not copied but referenced, so they should outlive the regular_bg_map_ptr to avoid dangling references.

regular_bg_map_ptr bn::regular_bg_map_item::create_new_map(regular_bg_tiles_ptr tiles, bg_palette_ptr palette, int map_index) const

Creates a regular_bg_map_ptr which references the information provided by this item.

Parameters
tiles Referenced tiles of the map to handle.
palette Referenced color palette of the map to handle.
map_index Index of the referenced map to handle.
Returns regular_bg_map_ptr which references the information provided by this item.

The map system does not support multiple regular_bg_map_ptr items referencing to the same map cells. If you are not sure if the information provided by this item is already referenced or not, you should use the create_map method instead.

The map cells are not copied but referenced, so they should outlive the regular_bg_map_ptr to avoid dangling references.

optional<regular_bg_map_ptr> bn::regular_bg_map_item::create_map_optional(regular_bg_tiles_ptr tiles, bg_palette_ptr palette) const

Searches for a regular_bg_map_ptr which references the information provided by this item. If it is not found, it creates a regular_bg_map_ptr which references it.

Parameters
tiles Referenced tiles of the map to search or handle.
palette Referenced color palette of the map to search or handle.
Returns regular_bg_map_ptr which references the information provided by this item if it has been found; otherwise it returns a regular_bg_map_ptr which references it if it could be allocated; bn::nullopt otherwise.

The map cells are not copied but referenced, so they should outlive the regular_bg_map_ptr to avoid dangling references.

optional<regular_bg_map_ptr> bn::regular_bg_map_item::create_map_optional(regular_bg_tiles_ptr tiles, bg_palette_ptr palette, int map_index) const

Searches for a regular_bg_map_ptr which references the information provided by this item. If it is not found, it creates a regular_bg_map_ptr which references it.

Parameters
tiles Referenced tiles of the map to search or handle.
palette Referenced color palette of the map to search or handle.
map_index Index of the referenced map to search or handle.
Returns regular_bg_map_ptr which references the information provided by this item if it has been found; otherwise it returns a regular_bg_map_ptr which references it if it could be allocated; bn::nullopt otherwise.

The map cells are not copied but referenced, so they should outlive the regular_bg_map_ptr to avoid dangling references.

optional<regular_bg_map_ptr> bn::regular_bg_map_item::create_new_map_optional(regular_bg_tiles_ptr tiles, bg_palette_ptr palette) const

Creates a regular_bg_map_ptr which references the information provided by this item.

Parameters
tiles Referenced tiles of the map to handle.
palette Referenced color palette of the map to handle.
Returns regular_bg_map_ptr which references the information provided by this item if the regular_bg_map_ptr can be allocated; bn::nullopt otherwise.

The map system does not support multiple regular_bg_map_ptr items referencing to the same map cells. If you are not sure if the information provided by this item is already referenced or not, you should use the create_map_optional method instead.

The map cells are not copied but referenced, so they should outlive the regular_bg_map_ptr to avoid dangling references.

optional<regular_bg_map_ptr> bn::regular_bg_map_item::create_new_map_optional(regular_bg_tiles_ptr tiles, bg_palette_ptr palette, int map_index) const

Creates a regular_bg_map_ptr which references the information provided by this item.

Parameters
tiles Referenced tiles of the map to handle.
palette Referenced color palette of the map to handle.
map_index Index of the referenced map to handle.
Returns regular_bg_map_ptr which references the information provided by this item if the regular_bg_map_ptr can be allocated; bn::nullopt otherwise.

The map system does not support multiple regular_bg_map_ptr items referencing to the same map cells. If you are not sure if the information provided by this item is already referenced or not, you should use the create_map_optional method instead.

The map cells are not copied but referenced, so they should outlive the regular_bg_map_ptr to avoid dangling references.