Leveraging the new features of CC3+

Campaign Cartographer 3+ is a product in constant evolution, with new features, both small and large, typically gets added for every update. For this article, I want to have a look at some of these features and give a short introduction on how you can start experimenting with them.

Some of the new features have already been covered in other places. For example the new improvements to the Symbols Along command where documented in the February 2018 Annual – Dungeon Walls and I wrote a Command of the Week article on the new Symbols in Area command. For those into macro writing, I have also covered the new Get Extents commands.

Perspective Scaling

Probably the largest addition in the latest update is the new PSCALE commands. These haven’t been added to the menu yet, so you need to type them in on the command line, but they are a series of commands that are intended to help you make pseudo-perspective maps by automatically changing the scale of a symbol depending where it is on the screen. This command was developed in response to several such maps appearing in the forums. Let us start with an example image to show what the command can do.

So, looking at this image, you can see that the symbols closer to the bottom of the image is larger than the ones near the top, which provides a pseudo-perspective look on things. While it is certainly possible to do this manually, this example was made by using the PSCALE commands.

To get started with this, type PSCALESETUP on the CC3+ command line and hit enter. Watch the command line, as CC3+ will now ask you a few important questions about the scaling. First, it will ask for the vertical low position. This is the position of the bottom part of the perspective view, where the symbols are supposed to be at their largest. Normally, this will simply be anywhere along the bottom edge of your map. Next, CC3+ will ask for the vertical low scale. This is the scale used in this point, relative to the current symbol scale. Since the perspective effect looks best when somewhat subtle, a value of 1.5 is generally good here, so just type this number in on the command line (followed by enter). CC3+ will then follow up by asking for the vertical high position, which is normally the top of the map, and the vertical high scale. For the scale, 0.5 is a reasonable value. Note that this means that the symbols at the bottom of the map will be 3 times larger than the ones at the top of the map (1.5 / 0.5 = 3). If this is too much or too little for your purposes, you may wish to tweak the values for the vertical scales. The final question from CC3+ will be for the Horizontal center of projection, which should normally be at the horizontal center of your map.

With the setup out of the way (if you are not happy with the values, simply go through PSCALESETUP again) you can now turn on the automatic scaling with the PSCALEON command. Once this is turned on, pick any symbol from the symbol catalog, and then move your mouse up and down in the map, and notice how the symbol shrinks and expands depending where in the map you currently hold it. If you place it down, it will be placed in that scale. You might also note that this only scales the symbol, it doesn’t deform it, which is why this is called pseudo-perspective. In a true perspective view, the symbol would also have been slightly deformed by shrinking more at the top than the bottom, but CC3+ doesn’t support that.

Note that perspective scaling is turned off each time you load a new symbol catalog or expand a symbol collection, so if you find that symbols are no longer scaling, just execute PSCALEON again. To manually turn it off, use PSCALEOFF.

Another nice thing you can do with the pscale command is to deform regular vector entities (but not images) to give them a perspective view. This can for example be done with the map border/background before you start mapping to give you a more proper template for a perspective view instead of the standard rectangular map. To do this, after running the PSCALESETUP command, you can run the PSCALEX command. This will transform the selected entities according to the current settings, and it is when you use this command you notice what the horizontal center of projection from the setup command does. Below are 3 images of the map template for my example map, with the horizontal center set far to the left, in the middle, and far to the right.

Note that you should always run PSCALEX before placing symbols in the map, as they won’t move to properly fit the new perspective.

Also note that the feature of CC3+ that allows drawing tools to automatically stop on the map border won’t work properly with angled edges, they can only handle straight edges, so if you get strange issues with a drawing tool stopping in the middle of the map after doing this, then that is the reason. To fix this, make sure that the MAP BORDER layer only contains four lines, defining the top, left, bottom and right outer edge of the map, and this outer edge must be completely outside the entire map, and must be straight (not angled) lines.


Another new command to CC3+ is the simplify command. This command is actually an improved version of the old Remove Nodes command, which are used to reduce the number of nodes in an entity. Compared with Remove Nodes, simplify is much smarter, and ensures a better result, trying harder to make the entity look more alike the entity before removing the nodes, being better at removing redundant nodes.

Again, this command isn’t in the menu yet, but you can access it by typing SIMPLIFY on the command line. The simplification distance the command asks for controls the quality of the resulting entities, the lower this number, the more the entity will look like the original entity, but the less nodes will be removed too. The appropriate values here depend on the map size.

Flat Toolbars

Do you like the more modern-looking flat toolbars, or do you prefer that buttons look more like proper buttons? CC3+ now allows you to choose. Type the command SETFLATTOOLBARS on the command line

Macro Commands

For those engaged in macro writing, there are also several new helpful commands found in the latest update

First of all, macro commands to save and load settings for ESC and SYMFILL where added, to compliment those already existing for FOREST, as well as adding macro versions of the commands themselves. This allows full use of these features in macros. The relevant commands here are SYMFILLM, SYMMFILLLOAD, SYMFILLSAVE, ESCM, ESCLOAD and ESCSAVE.

Macros can now create directories thanks to the new MKDIR command. This is very helpful because many operations would silently fail if they tried to output to a non-existent directory. With this command, you can ensure the directory exists beforehand (Assuming you have file system permissions to create a directory there of course). This command is also safe to use if the directory already exist, it won’t remove the existing directory or files already in it.

If you need to check if the user accepted the default option for a prompt, the old IFERR command was unfortunately not precise enough, as it reported this as an error and treated it the same as if the user aborted the input, making its use very limited. You can now use the new GETGXRETCODE to check more detailed status values. It will return one of the following values

0 – Operation completed successfully (IFERR will test false)
1 –  Operation accepted default (IFERR will test true)
2 – Operation canceled (IFERR will test true)
3 – Bad data input (IFERR will test true)

In macros, it is always good to set things back to the state they where before the user started the macro. Earlier, it was impossible to restore the users distance display format (the format used in the coordinates display, and in dialogs displaying lengths and such). It was often necessary to reset this value to a plain format, because macros couldn’t deal with the formatted output. Now, GETDISTANCEFMT can be used to get and store the users current setting, so you can return it to that value with a later call to the DISTFMT command.

More improvements and features will be found in the next CC3+ update, which will be released when development on it is done.

One Response to “Leveraging the new features of CC3+”

  1. Thanks for doing this, Remy. And yes – I prefer the new style buttons 🙂