diff --git a/CHANGELOG.md b/CHANGELOG.md index d83526e9..77948799 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -20,7 +20,7 @@ The **"Breaking Changes"** listed below are changes that have been made in the d - Only log "Unknown custom script function" when a registered script function is not present in any script. - Unused metatile attribute bits that are set are preserved instead of being cleared. - The wild encounter editor is automatically disabled if the encounter JSON data cannot be read -- Overhauled the region map editor, adding support for tilemaps, and significant customization. Also support pokefirered. +- Overhauled the region map editor, adding support for tilemaps, and significant customization. Also now supports pokefirered. ### Fixed - Fix cursor tile outline not updating at the end of a dragged selection. diff --git a/docsrc/manual/images/region-map-editor/new-configure-window.png b/docsrc/manual/images/region-map-editor/new-configure-window.png new file mode 100644 index 00000000..e6e7eea8 Binary files /dev/null and b/docsrc/manual/images/region-map-editor/new-configure-window.png differ diff --git a/docsrc/manual/images/region-map-editor/rme-config-properties.png b/docsrc/manual/images/region-map-editor/rme-config-properties.png new file mode 100644 index 00000000..1e1676ab Binary files /dev/null and b/docsrc/manual/images/region-map-editor/rme-config-properties.png differ diff --git a/docsrc/manual/images/region-map-editor/rme-main-window.png b/docsrc/manual/images/region-map-editor/rme-main-window.png new file mode 100644 index 00000000..8a622943 Binary files /dev/null and b/docsrc/manual/images/region-map-editor/rme-main-window.png differ diff --git a/docsrc/manual/images/region-map-editor/rme-new-entries-tab.png b/docsrc/manual/images/region-map-editor/rme-new-entries-tab.png new file mode 100644 index 00000000..14838bba Binary files /dev/null and b/docsrc/manual/images/region-map-editor/rme-new-entries-tab.png differ diff --git a/docsrc/manual/images/region-map-editor/rme-new-layout-tab.png b/docsrc/manual/images/region-map-editor/rme-new-layout-tab.png new file mode 100644 index 00000000..e2db56d2 Binary files /dev/null and b/docsrc/manual/images/region-map-editor/rme-new-layout-tab.png differ diff --git a/docsrc/manual/region-map-editor.rst b/docsrc/manual/region-map-editor.rst index 418812e3..e6629b96 100644 --- a/docsrc/manual/region-map-editor.rst +++ b/docsrc/manual/region-map-editor.rst @@ -2,24 +2,73 @@ The Region Map Editor ********************* -This is where you edit the region map for your game. To open the region map -editor, navigate to *Tools -> Region Map Editor* from porymap's main window. +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. -.. note:: - The region map editor is currently only available for pokeemerald and pokeruby. +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, your window will look like this: +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/rme-new-window.png - :scale: 75% +.. 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 is split vertically--the region map editing is done at the top, -while the zoomed-in city maps are edited at the bottom. You can use the -sliders to zoom in and out on each of the view panes. You will notice +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 `, :ref:`Map Layout `, @@ -39,24 +88,13 @@ 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. -.. figure:: images/region-map-editor/rme-painting-image.gif - :scale: 75% - :align: center - :alt: RME Paint - - Drawing on the Region Map Image - -It is likely that you will want to use your own tiles for your region map. You -can import a tile image by navigating to *Tools -> Import Region Map Image Tiles*. -There are strict requirements for your region map tile image. It must (1) be -indexed with a 256 color palette\*, (2) be composed of 8x8 pixel tiles, (3) have 256 -or fewer tiles. - -\* While the region map tile image requires a 256-color palette, the image only -uses the 32 colors beginning at index 112 in the palette. +You can use the sliders to zoom in and out on each of the view panes. .. _map-layout-tab: @@ -67,9 +105,9 @@ 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-layout-tab.png - :scale: 75% +.. figure:: images/region-map-editor/rme-new-layout-tab.png :align: center + :width: 75% :alt: RME Layout RME Layout Tab @@ -78,29 +116,15 @@ 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. To change the popup name of the map section when you enter the map, -type it into the "Map Name" box. The popup name is tied to the map section, so -each layout square with the same map section will share a name. +region map. -If you want to start from a blank layout, *Edit -> Clear Map Layout* will set -all layout squares to the value of ``MAPSEC_NONE``. +There are a couple of tools which make editing multiple layout squares simultaneously easier. -When adding new region map sections, the layout will be affected. This is -because the layout is stored as a binary file and uses the raw value of each -map section. In order to fix your layout to account for this, you can swap two -values for the entire layout with *Edit -> Swap*. +*Edit -> Clear Map Layout* will set all squares in the layout to ``MAPSEC_NONE``. -In this example, ``MAPSEC_NEW_MAPSEC`` is inserted before ``MAPSEC_NONE``, and -therefore the layout will link the original value of ``MAPSEC_NONE`` to the new -map section ``MAPSEC_NEW_MAPSEC``. Instances of ``MAPSEC_NEW_MAPSEC`` are swapped -with ``MAPSEC_NONE``. +*Edit -> Swap Layout Sections...* will exchange two layout sections with each other. -.. figure:: images/region-map-editor/rme-layout-swap.gif - :scale: 75% - :align: center - :alt: RME Swap - - Swapping Map Sections +*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``. @@ -111,10 +135,10 @@ 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 at ``src/data/region_map/region_map_entries.h``. +in-game. Entries are stored in ``src/data/region_map/region_map_sections.json``. -.. figure:: images/region-map-editor/rme-entries-tab.png - :scale: 75% +.. figure:: images/region-map-editor/rme-new-entries-tab.png + :width: 75% :align: center :alt: RME Entries @@ -126,29 +150,8 @@ You can also drag the entry around the map. The "x" and "y" values correspond t 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. -City Maps ---------- -In the bottom half of the region map editor window, city maps can be edited. -You paint on this the same way you paint on the region map background image. - -.. figure:: images/region-map-editor/rme-painting-city.gif - :scale: 60% - :align: center - :alt: City Paint - - Drawing on the City Map - -To use custom tiles, there is a tile image importer under -*Tools -> Import City Map Image Tiles*. These images must (1) be indexed with a -16 color palette, (2) be made up of 8x8 pixel tiles, (3) have 256 or fewer tiles. - -You can add a new city map by pressing the |new-city-map-button| button. - -.. |new-city-map-button| - image:: images/region-map-editor/rme-new-city-map-button.png - -Currently, it is not possible to associate a city map to a region map location, -but that functionality will be added in a future update. +To change the popup name of the map section when you enter the map, type it +into the "Map Name" box.