Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update settings window #559

Merged
merged 35 commits into from
Dec 28, 2023
Merged
Show file tree
Hide file tree
Changes from 33 commits
Commits
Show all changes
35 commits
Select commit Hold shift + click to select a range
1b9b980
Support custom event icons
GriffinRichards Dec 5, 2023
d5210cf
Support custom collision graphics
GriffinRichards Dec 6, 2023
4f0e871
Update Collision tab UI
GriffinRichards Dec 7, 2023
61b1789
Custom collision/event graphics cleanup
GriffinRichards Dec 8, 2023
571ff8e
Expose new settings, add tabs to settings editor
GriffinRichards Dec 8, 2023
9174cff
Update changelog
GriffinRichards Dec 9, 2023
d6dacf0
Enable clear button on new line edit settings
GriffinRichards Dec 9, 2023
06ff213
Sturdier pokemon icon search, add icon override settings
GriffinRichards Dec 10, 2023
c4adcc2
Stop unnecessary evaluation when parsing constant names
GriffinRichards Dec 11, 2023
80148c7
Add missing tooltip, update changelog
GriffinRichards Dec 11, 2023
8164aae
Custom image setting cleanup, update manual
GriffinRichards Dec 12, 2023
2228f78
Privatize Block members
GriffinRichards Dec 12, 2023
19e5e68
Add block layout to config
GriffinRichards Dec 13, 2023
f0310d4
Generalize bit packing utility for Block
GriffinRichards Dec 13, 2023
5a3907b
Use Block masks to update value limits, parse fieldmap.c
GriffinRichards Dec 15, 2023
60fb1a2
Clean up custom Block layouts
GriffinRichards Dec 16, 2023
5d4d88d
Add warning for warp behaviors
GriffinRichards Nov 7, 2023
fc1e192
Add warp behavior list to settings
GriffinRichards Dec 17, 2023
8d274c0
Merge branch 'master' of https://github.com/huderlem/porymap into cus…
GriffinRichards Dec 17, 2023
bfb827b
Add by-name and recursive define evaluation
GriffinRichards Dec 18, 2023
6d995ce
Add identifier config settings
GriffinRichards Dec 18, 2023
b74b007
Add identifiers to the settings window
GriffinRichards Dec 19, 2023
87911bb
Add new settings to manual
GriffinRichards Dec 19, 2023
902beee
Fix shuffled attributes
GriffinRichards Dec 19, 2023
7f871ef
Update changelog
GriffinRichards Dec 19, 2023
cd1c3fe
Fix settings window crash on close
GriffinRichards Dec 19, 2023
e0c6621
Add truncation warning for metatile labels
GriffinRichards Dec 19, 2023
59f365b
Fix project reload not disabling window on failure
GriffinRichards Dec 19, 2023
2cdbd02
Move warp behavior warning setting to porymap.cfg
GriffinRichards Dec 19, 2023
ee6d6c7
Fix metatile behavior value displays
GriffinRichards Dec 19, 2023
93fb8cf
Allow empty behavior names, simplify fieldmap parsing
GriffinRichards Dec 19, 2023
a2d2306
Add grids to tileset editor
GriffinRichards Dec 20, 2023
c543cc0
Store warp behaviors as values, add version defaults
GriffinRichards Dec 22, 2023
91b2ade
Review changes
GriffinRichards Dec 25, 2023
7cbe433
Update project files manual page
GriffinRichards Dec 27, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 16 additions & 3 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,16 +8,26 @@ The **"Breaking Changes"** listed below are changes that have been made in the d

## [Unreleased]
### Added
- Adds an editor window under `Options -> Project Settings...` to customize the project-specific settings in `porymap.project.cfg` and `porymap.user.cfg`.
- Adds an editor window under `Options -> Custom Scripts...` for Porymap's API scripts.
- Support for 8BPP tileset tile images.
- Add an editor window under `Options -> Project Settings...` to customize the project-specific settings in `porymap.project.cfg` and `porymap.user.cfg`.
- Add an editor window under `Options -> Custom Scripts...` for Porymap's API scripts.
- Add a warning to warp events if they're on an incomaptible metatile behavior.
- Add settings for custom images, including the collision graphics, default event icons, and pokémon icons.
- Add settings to override any symbol or macro names Porymap expects to find.
- Add a zoom slider to the Collision tab.
- Add toggleable grids to the Tileset Editor.
- Support for custom metatile ID, collision, and elevation data sizes.
- Support for 8bpp tileset tile images.

### Changed
- The Collision tab now allows selection of any valid elevation/collision value.
- The Palette Editor now remembers the Bit Depth setting.
- The min/max levels on the Wild Pokémon tab will now adjust automatically if they invalidate each other.
- If the recent project directory doesn't exist Porymap will open an empty project instead of failing with a misleading error message.
- Settings under `Options` were relocated either to the `Preferences` window or `Options -> Project Settings`.
- Secret Base and Weather Trigger events are automatically disabled if their respective constants files fail to parse, instead of not opening the project.
- If a Pokémon icon fails to load Porymap will attempt to predict its filepath. If this also fails it will appear with a placeholder icon, and won't disppear when edited.
- The bits in metatile attribute masks are now allowed to be non-contiguous.
- Porymap will now attempt to read metatile attribute masks from the project.

### Fixed
- Fix text boxes in the Palette Editor calculating color incorrectly.
Expand All @@ -32,6 +42,9 @@ The **"Breaking Changes"** listed below are changes that have been made in the d
- Fix heal location data being cleared if certain spaces aren't used in the table.
- Fix bad URL color contrast on dark themes.
- Fix some issues when too few/many pokémon are specified for a wild encounter group.
- Fix Porymap reporting errors for macros it doesn't use.
- Fix painting on the Collision tab with the opacity slider at 0 painting metatiles.
- Fix crashes when File->Reload Project fails.

## [5.1.1] - 2023-02-20
### Added
Expand Down
5 changes: 4 additions & 1 deletion docsrc/manual/editing-map-collisions.rst
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ Selecting Collision Types

The Collision Type Selector is a tab next to the Metatile Selector. It features 32 total different collision types. The left column is for collision types that allow the player to walk through the tiles. These are denoted by white text. The right column is for collision types that are impassable by the player. These are denoted by red text.

The transparency slider above the collision types controls the transparency of the collision properties on the map view.
The transparency slider above the collision types controls the transparency of the collision properties on the map view. The slider at the bottom of the panel zooms the selector image in and out.

.. figure:: images/editing-map-collisions/map-collisions.png
:alt: Map Collisions View
Expand Down Expand Up @@ -73,3 +73,6 @@ Multi-Level Collision Type |multi-level-collision-type-1| |multi-level-collision

.. |multi-level-collision-type-2|
image:: images/editing-map-collisions/multi-level-collision-type-2.png

.. note::
For advanced usage: Any valid elevation/collision value combination can be selected using the ``Elevation`` and ``Collision`` value spinners, even if it's not represented graphically on the selector image. You may also resize/replace this selector image under ``Options -> Project Settings``.
2 changes: 1 addition & 1 deletion docsrc/manual/editing-map-events.rst
Original file line number Diff line number Diff line change
Expand Up @@ -110,7 +110,7 @@ Target Map
Warp Events
-----------

Warp events are how the player is able to warp to other maps, such as entering a building. Double-clicking on a warp will automatically open the destination map and select the destination warp. This makes it very easy to navigate around in Porymap.
Warp events are how the player is able to warp to other maps, such as entering a building. Double-clicking on a warp will automatically open the destination map and select the destination warp. This makes it very easy to navigate around in Porymap. Warps need to be on specific metatiles to function as an exit; a warning will appear if the warp event is not on one of these exits.

.. figure:: images/editing-map-events/event-warp.png
:alt: Warp Event Properties
Expand Down
Binary file modified docsrc/manual/images/editing-map-collisions/map-collisions.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file removed docsrc/manual/images/settings-and-options/maps.png
Binary file not shown.
Binary file not shown.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file not shown.
Binary file not shown.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file not shown.
31 changes: 17 additions & 14 deletions docsrc/manual/project-files.rst
Original file line number Diff line number Diff line change
Expand Up @@ -6,12 +6,14 @@ Porymap relies on the user maintaining a certain level of integrity with their p
This is a list of files that porymap reads from and writes to. Generally, if porymap writes
to a file, it probably is not a good idea to edit yourself unless otherwise noted.

The filepath that Porymap expects for each file can be overridden under the ``Project Files`` section of ``Options -> Project Settings``. A new path can be specified by entering it in the text box or choosing it with the folder button. Paths are expected to be relative to the root project folder. If no path is specified, or if the file/folder specified does not exist, then the default path will be used instead. The name of each setting in this section is listed in the table below under ``Override``.
The filepath that Porymap expects for each file can be overridden under the ``Project Files`` section of ``Options -> Project Settings``. A new path can be specified by entering it in the text box or choosing it with the |button-folder| button. Paths are expected to be relative to the root project folder. If no path is specified, or if the file/folder specified does not exist, then the default path will be used instead. The name of each setting in this section is listed in the table below under ``Override``.

.. figure:: images/project-files/settings.png
:align: center
:width: 75%
:alt: Settings
.. |button-folder| image:: images/scripting-capabilities/folder.png
:width: 24
:height: 24

.. figure:: images/settings-and-options/tab-project-files.png
:alt: Project Files tab


.. csv-table::
Expand All @@ -32,7 +34,7 @@ The filepath that Porymap expects for each file can be overridden under the ``Pr
data/tilesets/graphics.inc, yes, yes, ``tilesets_graphics_asm``, only if ``tilesets_headers`` can't be found
data/tilesets/metatiles.inc, yes, yes, ``tilesets_metatiles_asm``, only if ``tilesets_headers`` can't be found
data/tilesets/[primary|secondary]/\*, yes, yes, ``data_tilesets_folders``, default tileset data location
src/data/wild_encounters.json, yes, yes, ``json_wild_encounters``,
src/data/wild_encounters.json, yes, yes, ``json_wild_encounters``, optional (only required to use Wild Pokémon tab)
src/data/object_events/object_event_graphics_info_pointers.h, yes, no, ``data_obj_event_gfx_pointers``,
src/data/object_events/object_event_graphics_info.h, yes, no, ``data_obj_event_gfx_info``,
src/data/object_events/object_event_pic_tables.h, yes, no, ``data_obj_event_pic_tables``,
Expand All @@ -43,25 +45,26 @@ The filepath that Porymap expects for each file can be overridden under the ``Pr
src/data/region_map/porymap_config.json, yes, yes, ``json_region_porymap_cfg``,
include/constants/global.h, yes, no, ``constants_global``, reads ``OBJECT_EVENT_TEMPLATES_COUNT``
include/constants/map_groups.h, no, yes, ``constants_map_groups``,
include/constants/items.h, yes, no, ``constants_items``,
include/constants/opponents.h, yes, no, ``constants_opponents``, reads max trainers constant
include/constants/flags.h, yes, no, ``constants_flags``,
include/constants/vars.h, yes, no, ``constants_vars``,
include/constants/weather.h, yes, no, ``constants_weather``,
include/constants/songs.h, yes, no, ``constants_songs``,
include/constants/items.h, yes, no, ``constants_items``, for Hidden Item events
include/constants/flags.h, yes, no, ``constants_flags``, for Object and Hidden Item events
include/constants/vars.h, yes, no, ``constants_vars``, for Trigger events
include/constants/weather.h, yes, no, ``constants_weather``, for map weather and Weather Triggers
include/constants/songs.h, yes, no, ``constants_songs``, for map music
include/constants/heal_locations.h, yes, yes, ``constants_heal_locations``,
include/constants/pokemon.h, yes, no, ``constants_pokemon``, reads min and max level constants
include/constants/pokemon.h, yes, no, ``constants_pokemon``, reads ``MIN_LEVEL`` and ``MAX_LEVEL``
include/constants/map_types.h, yes, no, ``constants_map_types``,
include/constants/trainer_types.h, yes, no, ``constants_trainer_types``,
include/constants/trainer_types.h, yes, no, ``constants_trainer_types``, for Object events
include/constants/secret_bases.h, yes, no, ``constants_secret_bases``, pokeemerald and pokeruby only
include/constants/event_object_movement.h, yes, no, ``constants_obj_event_movement``,
include/constants/event_objects.h, yes, no, ``constants_obj_events``,
include/constants/event_bg.h, yes, no, ``constants_event_bg``,
include/constants/region_map_sections.h, yes, no, ``constants_region_map_sections``,
include/constants/metatile_labels.h, yes, yes, ``constants_metatile_labels``,
include/constants/metatile_behaviors.h, yes, no, ``constants_metatile_behaviors``,
include/constants/species.h, yes, no, ``constants_metatile_behaviors``, for the Wild Pokémon tab
include/fieldmap.h, yes, no, ``constants_fieldmap``, reads tileset related constants
src/event_object_movement.c, yes, no, ``initial_facing_table``, reads ``gInitialMovementTypeFacingDirections``
src/pokemon_icon.c, yes, no, ``pokemon_icon_table``, reads files in ``gMonIconTable``
graphics/pokemon/*/icon.png, yes, no, ``pokemon_gfx``, to search for Pokémon icons if they aren't found in ``gMonIconTable``


Loading
Loading