summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Add-a-new-map-and-landmark.md18
-rw-r--r--screenshots/global-terminal-draft.pngbin15926 -> 16050 bytes
-rw-r--r--screenshots/polished-map-global-terminal-outside.pngbin23366 -> 20553 bytes
3 files changed, 9 insertions, 9 deletions
diff --git a/Add-a-new-map-and-landmark.md b/Add-a-new-map-and-landmark.md
index 6b44eba..386b14e 100644
--- a/Add-a-new-map-and-landmark.md
+++ b/Add-a-new-map-and-landmark.md
@@ -33,13 +33,13 @@ The maps/\*.blk files that define map layouts can't be edited as text, and hex e
To install Polished Map, just follow the instructions in its [INSTALL.md](https://github.com/Rangi42/polished-map/blob/master/INSTALL.md): download install.bat and polishedmap.exe from the latest release; run install.bat with admin privileges; and delete the downloaded files, since a shortcut to the installed copy of Polished Map should now exist on your Desktop. If you need help using it, read the documentation in the Help menu.
-Anyway, create a new map, choosing **pokecrystal** as the project directory (or whatever your pokecrystal-based project happens to be named). Make the new map 10 blocks wide and 18 blocks high, using the `johto_modern` tileset. Then draw its blocks like this:
+Anyway, create a new map, choosing **pokecrystal** as the project directory (or whatever your pokecrystal-based project happens to be named). Make the new map 10 blocks wide and 13 blocks high, using the `johto_modern` tileset and `goldenrod` roofs. Then draw its blocks like this:
[![maps/GlobalTerminalOutside.blk](screenshots/polished-map-global-terminal-outside.png)](screenshots/polished-map-global-terminal-outside.png)
Save that as **maps/GlobalTerminalOutside.blk**.
-(Notice that the roof and walls appear cyan, and the roof has the wrong pattern. That's because roofs are given special treatment depending on which group a map is in, and we haven't defined a group for this map yet. We'll see how roofs work later.)
+(Notice that the roof and walls appear cyan. That's because the `ROOF` color depends on which group a map is in, and we haven't defined a group for this map yet. We'll see how roofs work later.)
Next, open **maps/GoldenrodCity.blk**; its 20x18 size and `johto_modern` tileset should be filled in automatically, but you'll need to manually pick the `goldenrod` roof pattern. Edit its west side to neatly connect with the Global Terminal:
@@ -94,20 +94,20 @@ Edit [constants/map_constants.asm](../blob/master/constants/map_constants.asm):
+ newgroup
+
-+ map_const GLOBAL_TERMINAL_OUTSIDE, 10, 18
++ map_const GLOBAL_TERMINAL_OUTSIDE, 10, 13
+ map_const GLOBAL_TERMINAL_1F, 9, 6
```
Map constants have two parts: the group ID and the map ID. Groups are significant for outdoor maps because they share a roof palette and an outdoor sprite set (more on those later). For indoor maps, groups don't really matter, but they're usually grouped with their corresponding outdoor maps for the sake of organization.
-The line `map_const GLOBAL_TERMINAL_OUTSIDE, 10, 18` defines four constants at once:
+The line `map_const GLOBAL_TERMINAL_OUTSIDE, 10, 13` defines four constants at once:
- `GROUP_GLOBAL_TERMINAL_OUTSIDE` is 27, since that's the current group ID
- `MAP_GLOBAL_TERMINAL_OUTSIDE` is 3, since that's the current map ID
- `GLOBAL_TERMINAL_OUTSIDE_WIDTH` is 10
-- `GLOBAL_TERMINAL_OUTSIDE_HEIGHT` is 18
+- `GLOBAL_TERMINAL_OUTSIDE_HEIGHT` is 13
-The width and height are the size of the map we designed earlier. Now if you open maps/GlobalTerminalOutside.blk in Polished Map, the TitleCase filename "GlobalTerminalOutside" will get matched with the UPPER_CASE constant prefix "GLOBAL_TERMINAL_OUTSIDE", and the 10x18 size will be automatically filled in.
+The width and height are the size of the map we designed earlier. Now if you open maps/GlobalTerminalOutside.blk in Polished Map, the TitleCase filename "GlobalTerminalOutside" will get matched with the UPPER_CASE constant prefix "GLOBAL_TERMINAL_OUTSIDE", and the 10x13 size will be automatically filled in.
Note that there is no constant named just `GLOBAL_TERMINAL_OUTSIDE`! This can confuse people because there *are* constants simply named `GOLDENROD_CITY`, `NEW_BARK_TOWN`, etc. Those are landmark constants, unrelated to map constants. We'll see what those are used for later.
@@ -304,10 +304,10 @@ Edit [data/maps/attributes.asm](../blob/master/data/maps/attributes.asm):
+ map_attributes GoldenrodCity, GOLDENROD_CITY, $35, NORTH | SOUTH | WEST
connection north, Route35, ROUTE_35, 5
connection south, Route34, ROUTE_34, 5
-+ connection west, GlobalTerminalOutside, GLOBAL_TERMINAL_OUTSIDE, 0
++ connection west, GlobalTerminalOutside, GLOBAL_TERMINAL_OUTSIDE, -2
+
+ map_attributes GlobalTerminalOutside, GLOBAL_TERMINAL_OUTSIDE, $35, EAST
-+ connection east, GoldenrodCity, GOLDENROD_CITY, 0
++ connection east, GoldenrodCity, GOLDENROD_CITY, 2
...
@@ -324,7 +324,7 @@ The **connections** value is a combination of `NORTH`, `SOUTH`, `WEST`, or `EAST
The `connection` macro takes four arguments: the direction, map name, map ID, and sideways offset. Again, the direction, map name, and map ID are just for identification. The **sideways offset** is how many blocks to shift the connected map perpendicular to its direction. A north or south connection gets shifted right/east, a west or east connection gets shifted down/south. (So negative offsets will shift left/west or up/north, respectively.)
-If the offset isn't clear, try comparing screenshots of other maps with their own offset values, and base your own connections on similarly aligned ones. In this case, we made `GLOBAL_TERMINAL_OUTSIDE` the same height as `GOLDENROD_CITY`, 18 blocks, and they'll line up perfectly side by side, so the offset is 0.
+If the offset isn't clear, try comparing screenshots of other maps with their own offset values, and base your own connections on similarly aligned ones. In this case, `GLOBAL_TERMINAL_OUTSIDE` is two blocks lower than `GOLDENROD_CITY`, so their offsets are 2 and −2 respecitvely.
(Before November 10, 2018, the `connection` macro took six parameters; instead of a single sideways offset, you had to specify a target offset, source offset, and strip length, which were confusing and harder to calculate. The current macro definition has legacy support for the old one, since in all of the official maps, sideways offset = target offset − source offset, with the strip length being completely redundant. I strongly recommend porting the new macro to any old pokecrystal projects.)
diff --git a/screenshots/global-terminal-draft.png b/screenshots/global-terminal-draft.png
index 6d8f901..ce09e54 100644
--- a/screenshots/global-terminal-draft.png
+++ b/screenshots/global-terminal-draft.png
Binary files differ
diff --git a/screenshots/polished-map-global-terminal-outside.png b/screenshots/polished-map-global-terminal-outside.png
index cf0ae21..f8919de 100644
--- a/screenshots/polished-map-global-terminal-outside.png
+++ b/screenshots/polished-map-global-terminal-outside.png
Binary files differ