diff --git a/CHANGELOG.md b/CHANGELOG.md index 7adeae8e..e8d9a9ea 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,9 @@ and this project somewhat adheres to [Semantic Versioning](https://semver.org/sp The **"Breaking Changes"** listed below are changes that have been made in the decompilation projects (e.g. pokeemerald), which porymap requires in order to work properly. If porymap is used on a project that is not up-to-date with the breaking changes, then porymap will likely break or behave improperly. ## [Unreleased] +### Breaking Changes +- Proper support for pokefirered's clone objects was added, which requires the changes made in [pokefirered/#484](https://github.com/pret/pokefirered/pull/484). + ### Added - Add ability to set the opacity of the scripting overlay. - Add ability to get/set map header properties and read tile pixel data via the API. diff --git a/docs/_images/event-clone-object.png b/docs/_images/event-clone-object.png new file mode 100644 index 00000000..442ec822 Binary files /dev/null and b/docs/_images/event-clone-object.png differ diff --git a/docsrc/manual/editing-map-events.rst b/docsrc/manual/editing-map-events.rst index ca0b4e41..22e30983 100644 --- a/docsrc/manual/editing-map-events.rst +++ b/docsrc/manual/editing-map-events.rst @@ -60,7 +60,7 @@ Object events are typically used for NPCs (non-player-characters). More technic Object Event Properties Id - This is the local id of the object in the map. Some script values use this local id to specify object when using scripting commands such as `applymovement`. + This is the local id of the object in the map. Some script values use this local id to specify an object when using scripting commands such as `applymovement`. Sprite The sprite that is used by the object. @@ -83,8 +83,27 @@ Trainer Type Sight Radius or Berry Tree ID If the object is a trainer, this property control how many tiles the trainer can see to spot the player for battle. If the object is a berry tree, this specifies the global id of the berry tree. Each berry tree in the game has a unique berry tree id. -In Connection - Exclusive to pokefirered. Used to replace objects that are visible in a map's connection with their corresponding object on the connecting map. When checked, these objects will make odd use of other fields; its trainer type value will be the connecting map number, its Sight Radius / Berry Tree Id will be the connecting map group, and its z coordinate will be the object's local id on the connecting map. +Clone Object Events +------------------- + +Clone Object events are a special type of object that inherits its properties from another Object event. They are used in-game to load objects that are visible in the connecting area of adjacent maps. The targeted object to clone is specified by id and map name. If the targeted object does not exist, or it's also a clone, the sprite for graphics id 0 will be displayed instead. Double-clicking on a Clone Object will open the targeted map with the targeted object selected. This event type is exclusive to pokefirered projects; the code to process them does not exist in pokeemerald/pokeruby. + +.. figure:: images/editing-map-events/event-clone-object.png + :alt: Clone Object Event Properties + + Clone Object Event Properties + +Id + This is the local id of the object in the map. Some script values use this local id to specify an object when using scripting commands such as `applymovement`. + +Sprite + The sprite that is used by the object. Clone Objects inherit their sprite from the targeted object, so this cannot be edited. This field is not actually read by the game. + +Target Local Id + The local id of the object to be cloned. + +Target Map + The name of the map the object to be cloned is on. .. _event-warps: diff --git a/docsrc/manual/settings-and-options.rst b/docsrc/manual/settings-and-options.rst index a3e7d48e..5aec32fc 100644 --- a/docsrc/manual/settings-and-options.rst +++ b/docsrc/manual/settings-and-options.rst @@ -39,10 +39,10 @@ determined by this file. ``use_custom_border_size``, 0, project, yes, Whether to allow variable border sizes ``enable_event_weather_trigger``, 1 if not ``pokefirered``, project, yes, Allows adding Weather Trigger events ``enable_event_secret_base``, 1 if not ``pokefirered``, project, yes, Allows adding Secret Base events + ``enable_event_clone_object``, 1 if ``pokefirered``, project, yes, Allows adding Clone Object events ``enable_hidden_item_quantity``, 1 if ``pokefirered``, project, yes, Adds ``Quantity`` to Hidden Item events ``enable_hidden_item_requires_itemfinder``, 1 if ``pokefirered``, project, yes, Adds ``Requires Itemfinder`` to Hidden Item events ``enable_heal_location_respawn_data``, 1 if ``pokefirered``, project, yes, Adds ``Respawn Map`` and ``Respawn NPC`` to Heal Location events - ``enable_object_event_in_connection``, 1 if ``pokefirered``, project, yes, Adds ``In Connection`` to Object events ``enable_floor_number``, 1 if ``pokefirered``, project, yes, Adds ``Floor Number`` to map headers ``create_map_text_file``, 1 if not ``pokeemerald``, project, yes, A ``text.inc`` or ``text.pory`` file will be created for any new map ``enable_triple_layer_metatiles``, 0, project, yes, Enables triple-layer metatiles (See https://github.com/pret/pokeemerald/wiki/Triple-layer-metatiles)