porymap/docsrc/manual/region-map-editor.rst
2022-07-11 22:06:17 -04:00

159 lines
6.1 KiB
ReStructuredText

.. _rme-ref:
*********************
The Region Map Editor
*********************
This is where you edit the region maps for your game. You are able to edit the
background tilemap, the layout of map sections, and the array of map section entries
which determines the dimensions of each section.
To open the region map editor, navigate to *Tools -> Region Map Editor* from
porymap's main window. There is also a keyboard shortcut which is by default ``Ctrl+M``.
When you first open the region map editor, you will need to configure porymap to
read your region map data. There are defaults for every base game project available
which should be sufficient for most users.
.. figure:: images/region-map-editor/new-configure-window.png
:align: center
:width: 75%
:alt: RME Window
Region Maps Configurator
Porymap supports multiple region maps for any project.
By default, pokeemerald and pokefirered use this feature.
For a more custom region map, you can use the *Add Region Map...* button to
create a new region map configuration from scratch. You can also double-click on any existing
region map in the list to bring this window up to make changes.
.. figure:: images/region-map-editor/rme-config-properties.png
:align: center
:width: 50%
:alt: RME Config Prop
Region Map Properties Window
This window has many options for users to define:
.. csv-table::
:header: Field,Explanation,Restrictions
:widths: 10, 30, 20
alias,something for porymap to distinguish between your maps,unique & valid json string
**Tilemap Properties**,,
format,format of the tiles,Plain *or* 4bpp *or* 8bpp
width,width *in tiles* of the tilemap,16 *or* 32 *or* 64 *or* 128
height,height *in tiles* of the tilemap,valid corresponding height based on width
tileset path,the relative path to the tile image from project root,valid filepath string
tilemap path,the relative path to the tilemap binary from project root,valid filepath string
palette path,*optional* relative path to ``.pal`` file from project root,valid filepath string
**Layout Properties**,*can be unchecked for maps without layouts*,
format,the format to read the layout file,C array *or* binary
layout path,the relative path from project root to layout file,valid filepath string
width,the width of the layout,non-negative integer
left offset,the position on the tilemap which defines layout x=0,width + left offset < tilemap width
height,the height of the layout,non-negative integer
top offset,the position on the tilemap which defines layout y=0,height + top offset < tilemap height
When you are finished configuring your region maps, you can select *OK*. This will
display the main editor window.
.. figure:: images/region-map-editor/rme-main-window.png
:align: center
:width: 75%
:alt: RME Config Prop
Region Map Editor Window
This window has a combobox labeled "Region" which you can use to select the current
region map you want to edit.
You will notice
that there are three different tabs above the image of the region map
(:ref:`Background Image <background-image-tab>`,
:ref:`Map Layout <map-layout-tab>`,
:ref:`Map Entries <map-entries-tab>`). Let's take a look at each tab's
functionality in more detail...
.. _background-image-tab:
Background Image Tab
--------------------
When this tab is selected, you can draw on the region map. Select tiles from
the tile selector on the right. You can single-click or drag your mouse around
to paint the selected tile onto the region map image. If you make a mistake, or
are unhappy with what you have done, you can undo (``Ctrl+Z`` or *Edit -> Undo*)
and redo (``Ctrl+Y`` or *Edit -> Redo*) your changes. Right-clicking on the map
image will select the tile under your mouse from the tile selector.
If your tilemap format is not "Plain", then you can also select the palette,
h-flip, and v-flip of any tile you are painting with.
If you want to clear the background image, *Edit -> Clear Background Image*
will set all tiles to the first tile in the tile selector.
You can use the sliders to zoom in and out on each of the view panes.
.. _map-layout-tab:
Map Layout Tab
--------------
The layout tab is where map sections are placed on the region map. When the
player looks at the region map in-game, the layout determines the map under the
cursor.
.. figure:: images/region-map-editor/rme-new-layout-tab.png
:align: center
:width: 75%
:alt: RME Layout
RME Layout Tab
To modify the region map layout, select a position by clicking on the map image
and higlighting a single square. The "Map Section" combobox will be populated
with all of the map sections defined in ``include/constants/region_map_sections.h``.
Select the map section you want to associate with the selected position on the
region map.
There are a couple of tools which make editing multiple layout squares simultaneously easier.
*Edit -> Clear Map Layout* will set all squares in the layout to ``MAPSEC_NONE``.
*Edit -> Swap Layout Sections...* will exchange two layout sections with each other.
*Edit -> Replace Layout Section...* will replace all instances of one section with another.
The "Delete Square" button simply resets a single layout square to ``MAPSEC_NONE``.
.. _map-entries-tab:
Map Entries Tab
---------------
A region map entry is the area on the region map that spans an entire map section.
This determines, for example, where the player's head appears on the region map
in-game. Entries are stored in ``src/data/region_map/region_map_sections.json``.
.. figure:: images/region-map-editor/rme-new-entries-tab.png
:width: 75%
:align: center
:alt: RME Entries
RME Entries Tab
To edit an entry, select a map section from the "Map Section" combobox. You can
use the "Location" "x" and "y" spinboxes to change the coordinates of the entry.
You can also drag the entry around the map. The "x" and "y" values correspond to
the position of the entry's top-left square on the region map. The "Dimensions"
"width" and "height" spinboxes will change the size of the map entry.
To change the popup name of the map section when you enter the map, type it
into the "Map Name" box.