summaryrefslogtreecommitdiff
path: root/CHANGELOG.md
diff options
context:
space:
mode:
Diffstat (limited to 'CHANGELOG.md')
-rw-r--r--CHANGELOG.md325
1 files changed, 325 insertions, 0 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 718fe09a9..cc07ad060 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -5,10 +5,326 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/)
and this project does not adhere to [Semantic Versioning](http://semver.org/spec/v2.0.0.html).
## [Unreleased]
+
<!--
If you are reading this in a text editor, simply ignore this section
-->
+## [v2020.06.28] `June 28 2020`
+
+### Added
+
+- Added support to display a pet's intimacy in the egg's item description window. (#2781)
+- Added a convenience macro `pc_has_pet()` to check whether a character has a pet. (part of #2781)
+- Added convenience macros `pc_istrading_except_npc()` and `pc_cant_act_except_npc_chat()`. (part of #2775)
+- Added support for `PACKET_ZC_PERSONAL_INFOMATION`, to replace the old custom status messages about rates and penalties. (#2757)
+- Added a new configuration flag `display_rate_messages` (`conf/map/battle/client.conf`) to control whether and when to display the rate modifiers to players. (part of #2757)
+- Added a new configuration flag `display_config_messages` (`conf/map/battle/client.conf`) to control whether and when to display the configuration messages to players as well as which messages to display. By default, now the pet autofeed and guild urgent call setting are also displayed, along with the others. (part of #2757)
+- Added a new configuration flag `send_party_options` (`conf/map/battle/client.conf`) to control whether and when to display the party option messages to players, including some cases (on login, when options are changed, when a party member is added or removed) that were previously not available. (part of #2757)
+- Added a new configuration flag `display_overweight_messages` (`conf/map/battle/client.conf`) to control whether and when to display the overweight notification message to players. (part of #2757)
+- Added support to display the Tip of the Day message box on login. A new configuration flag `show_tip_window` (`conf/map/battle/client.conf`) is provided, in order to disable this feature. (part of #2757)
+- Added missing plugins to the makefiles. (part of #2778)
+- Added missing mobs and items in the pre-re database, necessary for loading custom scripts. (part of #2778)
+- Added support for GitHub actions and added builds to test different flags and compilers and different MySQL/MariaDB versions. (part of #2778 and 9b89425550)
+- Added/updated packets, encryption keys and message tables for clients up to 2020-06-03. (#2763)
+
+### Changed
+
+- Updated the documentation of the `instance_create()` to clarify the type of ID required to create each type of instance. Notably, instances of type `IOT_CHAR` require an account ID and not a character ID. (part of #2732, issue #2326)
+- Updated the instancing system so that the instance information window is also displayed on login for instances of type `IOT_CHAR`, `IOT_PARTY`, `IOT_GUILD`, even if the instance state is `INSTANCE_IDLE`. (part of #2732)
+- Changed the chatroom creation and trade checks to allow dead characters to perform them. A new configuration flag `allowed_actions_when_dead` (`conf/map/battle/player.conf`) is now available, to allow neither, either or both. (#2755, issue #2740)
+- Changed the behavior when a pet's intimacy drops to 0 to immediately remove the pet rather than leaving it free to roam on the map. A new configuration flag `pet_remove_immediately` (`conf/map/battle/pet.conf`) has been added, to restore the old behavior. (part of #2781)
+- Centralized some repeated code related to pet spawning and consolidated the sending of the pet's intimacy and hunger information to the client when appropriate. (part of #2781)
+- Extended the `guild_notice_changemap` configuration flag with more fine grained settings on when to display the guild notice. Note: if you are currently overriding this setting, you'll need to update its value with the new meaning. (part of #2757)
+- Enforced the use of signed characters on platforms where `char` is unsigned. (part of #2778)
+- Travis-CI scripts and configuration updates: (part of #2778)
+ - Improved the build speed by reducing the clone depth to 1.
+ - Improved error reporting if an error occurs during tests.
+ - Added configurations targeting the arm64 and ppc64le cpu architectures as well as the gcc-10 compiler.
+ - Reduced the total amount of build configurations to improve the CI build time.
+ - Added execution of the servers with all the plugins enabled in order to detect memory violations and errors.
+ - Fixed some build failures caused by a false positive odr violation.
+ - Added execution of the map server with all the custom scripts uncommented.
+ - Disabled asan in the gcc-7 builds, as it's too slow.
+- Converted `validateinterfaces.py` to Python 3. (part of #2778)
+- Changed the plugin handler to call all plugin events even when the server is running in minimal mode. (part of #2778)
+- Updated the friend list related packets for Zero clients. (part of #2763)
+- Changed the storage (account and guild storage) to automatically close when using the teleport skill. A configuration flag `teleport_close_storage` (`conf/map/battle/skill.conf`) has been added to restore the previous behavior. (#2756, issue #1762)
+
+### Fixed
+
+- Fixed an issue when deleting instances of type `IOT_CHAR`. (part of #2732)
+- Fixed an issue that prevented the removal of offline characters from parties to get correctly saved to the database. (#2762)
+- Fixed the deletion of skill units belonging to an NPC when it gets unloaded. (#2712, issue #768)
+- Fixed the selection of required items for various skills, such as Slim Potion Pitcher, for skill levels greater than 2. Required items are now selected through the `skill->get_item_index()` function. (#2774)
+- Fixed the description of the meaning of rows and columns in the documentation for `db/*/attr_fix.txt`. (#2765)
+- Fixed the behavior of the Megaphone item script to remove the normal script restrictions (walking, attacking, using skills and items, dropping and picking up items, trading, etc) while the message input box is present and not to be cancelled on death. (#2775, issue #2751)
+- Fixed a client freeze when talking with an NPC or using a Megaphone while the Rodex window is open. Rodex and NPC scripts (or megaphones) are now mutually exclusive. (part of #2775)
+- Added a workaround in the CI scripts to support MySQL/MariaDB setups where the normal grant code does not work. (part of #2778)
+- Fixed a memory violation between core and plugins in the HPMDataCheck code. (part of #2778)
+- Fixed warnings in the skill database parser when running in minimal mode. The battle configuration is now read in minimal mode. (part of #2778, issue #2776)
+- Fixed warnings about missing maps that were present in the map index and scripts. (part of #2778)
+- Fixed a duplicated `fclose()` call in the mapcache plugin. (part of #2778)
+- Fixed conflicting NPC names in `re/merchants/hd_refiner.txt` and in various custom scripts. (part of #2778)
+- Fixed builds on ARMv8, some ARMv7 versions and PPC64. (part of #2778)
+- Fixed the field size of `struct script_state::npc_item_flag` to support all the possible values and reduced the maximum value of the `item_enabled_npc` configuration flag to 3. (#2784)
+- Fixed the width of the path affected by Focused Arrow Strike to be 1 cell wide instead of 2 on each side. (part of #2785)
+- Fixed a missing character ID in name requests. (part of #2763)
+- Fixed an issue that caused loss of items when selling items to an NPC fails because of the character zeny cap. (#2782, issue #2780)
+- Fixed the disappearance of status icon timers when the character spawns. (#2786, issue #580)
+
+### Removed
+
+- Removed a duplicated function `time2str` from `bg_common.txt`. (part of #2778)
+
+## [v2020.05.31+1] `May 31 2020` `PATCH 1`
+
+### Fixed
+
+- Fixed a crash in the db2sql plugin with the MariaDB client library. (#2748)
+- Fixed the job level stat bonuses for the Novice class to match the official servers. (#2747)
+- Fixed an issue that caused the walk-path check to be never executed for skills that require the caster to be able to move. (#2761)
+- Fixed an issue that caused "Unknown Skill" errors to appear while casting skills. The default value for the skill damage type field of the skill database is now `NK_NONE` instead of `NK_NO_DAMAGE`. (#2761, issue #2760)
+
+## [v2020.05.31] `May 31 2020`
+
+### Added
+
+- Added the possibility to declare local NPC functions as public or private. (#2142)
+ - Functions declared as private can be called from other scripts with the syntax `"npc name"::function_name()`.
+ - The configuration option `script_configuration.functions_private_by_default` controls whether functions are public or private when not specified.
+- Added a new cast condition `MSC_MAGICATTACKED` to the mob skill database, allowing mobs to react to magical attacks. (#2733, issue #2578)
+- Added support for level-specific values in the skill database fields `Hit`, `AttackType`, `InterruptCast`, `CastDefRate`, `Requirement.State`, `Unit.Id`, `Unit.Interval`, `Unit.Target`, `Requirements.Items.Amount` (part of #2731)
+ - Removed hardcoded required item amounts for various skills, moving them to the skill database.
+- Added support for `Requirements.Items.Any` in the skill database, allowing skills that require any one of their item conditions to be verified (as opposed to all). (part of #2731, issue #1250)
+- Added support for `Requirements.Equip` in the skill database, allowing to specify a required equipment to cast a skill. (part of #2731)
+ - Removed hardcoded equip requirements for various skills, moving them to the skill database.
+- Added support for `Requirements.MaxSPTrigger` in the skill database, allowing to specify a maximum SP percentage that allows to cast a skill. (part of #2731)
+- Added/updated packets, encryption keys and message tables for clients up to 2020-05-20. (#2713)
+- Added support for the gcc sanitizer flags `address-use-after-scope`, `pointer-overflow`, `builtin`, `pointer-compare`, `pointer-subtract`, `shift-exponent`, `shift-base`, `sanitize-address-use-after-scope`. (part of #2713)
+- Added support for binary and octal number literals in scripts and libconfig configuration files, using the syntax 0b000 / 0o000. (#2671)
+- Added support for number separators in number literals in scripts and libconfig configuration files. The symbol `_` can be used as grouping separator (`1_000_000`, `0x_ffff_ffff`, etc). (part of #2671)
+- Added support for overriding `ENABLE_SC_SAVING`, `MAX_CARTS`, `MAX_SLOTS`, `MAX_AMOUNT`, `MAX_ZENY`, `MAX_BANK_ZENY`, `MAX_FAME`, `MAX_CART` through CFLAGS. (#2220)
+- Added a `skill_enabled_npc` battle flag allowing to specify whether self-targeted or targeted skills can be used while interacting with NPCs. (part of #2718, issue #862)
+- Added the `loudhailer()` script command, as used by the `Megaphone_` item. (#2758, issue #2751)
+
+### Changed
+
+- Added validation for the maximum length of permanent string variables and consolidated it to 255 characters. This requires a database migration. (#2705, issue #1037)
+- Split the `mapreg` SQL table into separate tables for integer and string variables. This requires a database migration. (#2720)
+- Updated the AUTHORS file to include names and emails from every commit so far. A helper script `tools/authors.sh` to extract them has been added. (#2729, issue #245)
+- Updated the drop chance of the Black and White Wing Suits. (#2739, issue #562)
+- Improved validation and bounds checking in the skill database loader. (#2731)
+ - Increased the maximum length of the skill descriptions (display names) to 50. (part of #2731)
+ - Increased the maximum skill level to 20 (to support `NPC_RUN`). (part of #2731)
+ - Capped the SkillInstances values to 25 (`MAX_SKILLUNITGROUP`) in the skill database. (part of #2731)
+- Extended the `item_enabled_npc` battle flag and the `enable_items()`/`disable_items()` script commands with finer grained options to allow the use of usable items or equipment while interacting with NPCs. (#2718)
+- Changed the default setting of `player_warp_keep_direction` to match the official servers' setting. (#2752)
+- Replaced the (failing) gitlab-ci centos6 builds with centos8 (released in september 2019). (#2759)
+
+### Fixed
+
+- Fixed the logic and interaction between the (element)proof Potions and Undead Scrolls and their status icons. (#2708)
+- Fixed an issue in the Lost Puppies quest causing the dogs to be unable to reappear. (#2698)
+- Fixed a possible data corruption caused by gender mismatch after a changesex/changecharsex operation. (#2714, issue #985)
+- Fixed a warning and name truncation when receiving a whisper message with a recipient name with a length of 24 characters. This allows to whisper to scripts with a name length up to 20 (through the `NPC:name` syntax). (#2721, issue #718)
+- Fixed interaction between `itemskill()` other item/skill uses, including other `itemskill()`. The autocast code has been changed to use a vector, to allow multiple concurrent skills. (#2699)
+ - It's now possible to use multiple `itemskill()` calls in the same item, as long there is at most one targeted skill, and it's the last one used.
+ - It's now possible to use items while the target cursor for a previously activated skill is visible, without aborting it. (issue #816)
+ - It's now possible to use a scroll while casting another skill (and the provided skill will be cast after the current one finishes). (issue #1026)
+- Fixed use of Fly Wing/Butterfly Wing while riding a cash shop mount (Boarding Halter) and having a falcon. (part of #2699, issue #2750)
+- Fixed the `Requirements.MaxHPTrigger` conditions for mercenary skills. (part of #2731)
+- Fixed a possible memory corruption or crash in the mob delayed removal function. (part of #2713, issue #2719)
+- Fixed a crash in the `npcshopdelitem()` script command. (part of #2713)
+- Fixed a crash in the achievement progress update code. (part of #2713)
+- Fixed a possible crash in the RODEX check name function. (part of #2713)
+- Added null pointer checks for missing view data in clif and status code. (part of #2713)
+- Added a check for the current map in mob and map code. (part of #2713)
+- Fixed an error or possible crash when a mob dies on an invalid map. (part of #2713)
+- Fixed an incorrect npc ID for the MOTD script after reloading or unloading scripts. (part of #2713)
+- Fixed an use after free in `party->broken()`. (part of #7213)
+- Fixed a possible crash in `mapif->guild_withdraw()`. (part of #2713)
+- Fixed a null pointer error in `unit->steptimer()`. (#2723, issue #2707)
+- Fixed the left-shift of a negative value in `GN_CRAZYWEED_ATK`. (#2734, issue #1151)
+- Fixed a missing "Beloved" attribute on the eggs of renamed pets. (#2744, issue #2743)
+- Fixed an inverted logic in the `storage_use_item` battle flag. (#2746)
+- Fixed the mineffect map property flag so that it's not affected by the character's minimized effects but only by the map type. It's enabled on all the guild castles, regardless of whether WoE is running. (#2754, issue #803)
+- Fixed a crash in the equip check code if a character logs wearing an item that was previously, but is no longer, equippable. (#2745)
+- Fixed a compiler warnings in 32 bit builds. (#2759)
+
+### Deprecated
+
+- Deprecated the (unintended and undocumented) possibility of calling local NPC functions as event labels if their name started with `On`. (part of #2142, issue #2137)
+ - The functionality is now disabled by default, and can be enabled by changing the `script_configuration.functions_as_events` setting.
+
+### Removed
+
+- Removed old debug code from the `SC_DANCING` case of `status_change_end_()`. (#2736, issue #2716)
+- Removed useless `FixedCastTime` values from the pre-re skill database. (part of #2731)
+
+## [v2020.05.03] `May 03 2020`
+
+### Added
+
+- Added the new pets (including the jRO exclusive ones) and their related items/monsters to the renewal database. (#2689)
+- Added constants `ALL_MOBS_NONBOSS`, `ALL_MOBS_BOSS`, `ALL_MOBS` for the special mob IDs for global skill assignment in the mob skill database. (part of #2691)
+- Added support for `__func__` on Windows, since it's now available in every supported compiler. (part of #2691)
+- Added documentation for the mob skill database. See `doc/mob_skill_db.conf`. (#2680)
+- Added missing functions for the name ack packets for `BL_ITEM` and `BL_SKILL`. (part of #2695)
+- Added/updated packets and encryption keys for clients up to 2020-04-14. (#2695)
+- Added support for packets `ZC_LAPINEUPGRADE_OPEN`, `CZ_LAPINEUPGRADE_CLOSE` and `ZC_LAPINEUPGRADE_RESULT` and a placeholder for `CZ_LAPINEUPGRADE_MAKE_ITEM`. (part of #2695)
+- Added a new cell type `cell_noskill`, to block skill usage. (#2188)
+
+### Changed
+
+- Removed warning messages about missing elements in the mob db, since it's an optional field. (part of #2689)
+- Updated the renewal pet database with the correct values and bonuses. (part of #2689, issue #2435)
+- Changed `mob_getfriendstatus()` to consider character as friends of their support monsters, for consistency with `mob_getfriendhprate()`. (part of #2691)
+- Changed `MSC_AFTERSKILL` to trigger on any skill when its `ConditionData` is 0, for consistency with `MSC_SKILLUSED`. (part of #2691)
+- Improved data validation and error reporting in the mob skill database. (part of #2691)
+- Changed return values of `mob_skill_use()` and `mobskill_event()`. Any third party code that uses them needs to be updated. (part of #2691)
+- Changed the battle configuration flag `manner_system` to be applied immediately to any existing `SC_NOCHAT`. (#2696, issue #227)
+- Changed the `atcommand()` command to ignore `PCBLOCK_COMMANDS`. (#2062)
+
+### Fixed
+
+- Fixed `SC_AUTOTRADE`, `SC_KSPROTECTED` and `SC_NO_SWITCH_EQUIP` incorrectly recognized as unknown status changes. (#2686, issue #2684)
+- Prevented `SC_KSPROTECTED` from starting on dead monsters. (part of #2686)
+- Fixed character unhiding while disguised or when using `@option 0`. (#2687, issues #1556 and #2104)
+- Fixed an incorrect order of operations causing results too small in various calculations related to free cell search, mob skill chances/delays, exp penalty, pet hunger and friendly rates, cast duration. (#2690)
+- Fixed errors caused by `pet_ai_sub_hard()` called for monsters that haven't been added to a map yet. (#2693)
+- Fixed a wrong packet error displayed when using an incorrect password for the char-login connection. (part of #2695)
+- Fixed a security check in the lapine ack packet handler. (part of #2695)
+- Fixed some incorrect assumptions about the skill index values, causing the Bard/Dancer soul link to grant the wrong skills. (#2710, issue #2670)
+- Fixed some conditions that could cause a skill to be attempted to save to the database with a negative skill level, resulting in query errors and data loss. (part of #2710)
+- Fixed the skill type of `RK_DRAGONBREATH` and `RK_DRAGONBREATH_WATER` to be `BF_WEAPON` and support the `bLongAtkRate` bonus. (#1304)
+- Fixed `SC_TELEKINESIS_INTENSE` to add percent MATK instead of fixed MATK. (part of #1304)
+
+## [v2020.04.05] `April 05 2020` `PATCH 1`
+
+### Fixed
+
+- Fixed a regression that prevented pets from hatching. (#2685, issue #2683)
+
+## [v2020.04.05] `April 05 2020`
+
+### Added
+
+- Added/updated packets, encryption keys and message tables for clients up to 2020-04-01. (#2663)
+- The `setpcblock()` and `checkpcblock()` can now be used on another character by passing the account id. (#2668)
+- Added new StatusChange types (`SC_POPECOOKIE`, `SC_VITALIZE_POTION`, `SC_SKF_MATK`, `SC_SKF_ATK`, `SC_SKF_ASPD`, `SC_SKF_CAST`, `SC_ALMIGHTY`) and updated relevant items. (#2658, related to #1177)
+- Added _libbacktrace_ support (currently Linux-only) for better error call stack logging. (#2581)
+
+### Changed
+
+- Extended the atcommand `@fakename` with a new `options` parameter, to select which names will be displayed. (#2637, related to issue #1966 and #2168)
+- Refactored the pet system code. (#2600, issues #2434 and #303)
+ - Added enumerations for pet hunger/intimacy levels
+ - Added value capping to `pet_set_intimate()` function.
+ - Adjusted pet catch rate calculation. The old, custom, calculation can be restored by setting the `pet_catch_rate_official_formula` battle config flag to false.
+ - Adjusted pet intimacy calculation when feeding.
+ - Improved validation of the Pet DB fields and of the input of various pet related functions.
+ - Removed the redundant `SpriteName` field from pet DB.
+ - Changed `EggItem` field in pet DB to be mandatory.
+ - Added new field `HungerDecrement` to pet DB. This replaces the `pet_hungry_friendly_decrease` battle config setting.
+ - Added new field `Intimacy.StarvingDelay` to pet DB.
+ - Added new field `Intimacy.StarvingDecrement` to pet DB.
+ - Increased `MAX_MOB_DB` to 22000.
+ - Added pet DB documentation file. (`doc/pet_db.txt`)
+ - Removed fields from pet DB where default values can be used.
+ - Added intimacy validation to pet DB `EquipScript` fields. This replaces the `pet_equip_min_friendly` battle config setting.
+ - Adjusted `inter_pet_tosql()` and `inter_pet_fromsql()` functions to use prepared statements.
+ - Refactored and/or updated code style of various functions that were touched by this pull request.
+- Added a backtrace to the error message of `clif_unknownname_ack()`. (part of #2663)
+- Added a `UNIQUE` constraint to the `userid` column of the `login` SQL table to prevent having multiple accounts with the same name. (#2666, related to #2169)
+- Increased the column size of `list`for the `ipbanlist` SQL table to accomodate for non-wildcard IPv4 and for IPv6 compatiblity. (#2665, issue #2631)
+
+### Fixed
+
+- Fixed memory violations and incorrect handling of `npc_data` in the quest info code. (#2682)
+- Fixed an issue that prevented the fake name to show up when using `@fakename` in RE clients. (part of #2637)
+- Fixed a compiler error in `PACKET_ZC_SE_CASHSHOP_OPEN`. (part of #2663, issue #2669)
+- Added missing libraries into the plugins Makefile, causing a linking error when a plugin uses MySQL or other libraries. (part of #2663)
+- Fixed a bug causing failed assertions that appeared when attacking a skill unit (such as Ice Wall). (#2678)
+- Fixed a bug causing failed assertions in `timer_do_delete()`, related to `ud->walktimer`. (#2676)
+- Fixed a bug allowing to equip bullets and grenades regardless of the weapon type. (#2660, issue #2661, related to #2579)
+- Fixed a memory leak in barter NPCs. (#2655)
+- Fixed a pointer overflow in the script command `getiteminfo()`. (#2656)
+- Refactored and fixed several bugs in the skill auto-cast system. (#2657, issue #1211)
+
+### Removed
+
+- Removed the `pet_hungry_friendly_decrease` battle config setting, superseded by the `HungerDecrement` field of the Pet DB. (part of #2600)
+- Removed the `pet_equip_min_friendly` battle config setting, superseded by the code inside the Pet DB `EquipScript` fields. (part of #2600)
+- Removed the redundant `SpriteName` field from pet DB. (part of #2600)
+
+## [v2020.03.08+2] `March 08 2020` `PATCH 2`
+
+### Fixed
+
+- Fixed an incorrect return value in `unit->walktobl()` causing mobs to get stuck when they try to loot. (#2664)
+
+## [v2020.03.08+1] `March 08 2020` `PATCH 1`
+
+### Fixed
+
+- Fixed an incorrect return value in `unit->walktobl()` causing mobs to be unable to walk to their target. (#2659)
+
+## [v2020.03.08] `March 08 2020`
+
+### Added
+
+- Added/updated packets, encryption keys and message tables for clients up to 2020-03-04. (#2645)
+- Exposed the item bound type (`IBT_*`) constants to the script engine. (#2650)
+- Added item scripts for item IDs 12459 through 12465 and corrected their name in the pre-renewal DB. (#2634, issue #1196)
+- Added the `unitiswalking()` script command, to check whether an unit is walking at a given time. (#2628)
+
+### Changed
+
+- Changed the default `PACKETVER` to 2019-05-30. (part of #2645)
+- Major refactoring of the functions in `unit.c`, adding code documentation and following the code style guidelines. Functions have been renamed when backward compatible changes to the arguments or return values were made. (#2546)
+ - A new header `unitdefines.h` has been added.
+ - `enum unit_dir` is now provided, to standardize handling of facing/walking directions.
+ - The macros `unit_get_opposite_dir()`, `unit_is_diagonal_dir()`, `unit_is_dir_or_opposite()`, `unit_get_ccw90_dir()`, `unit_get_rnd_diagonal_dir()` have been added.
+ - `unit->walktoxy_timer()` has been renamed to `unit->walk_toxy_timer()` and its return values have been changed and documented.
+ - `unit->walktoxy_sub()` has been renamed to `unit->walk_toxy_sub()` and its return values have been changed and documented.
+ - `unit->delay_walktoxy_timer()` has been renamed to `unit->delay_walk_toxy_timer()` and its return values have been changed and documented.
+ - `unit->walktoxy()` has been renamed to `unit->walk_toxy()` and its return values have been changed and documented.
+ - `unit->walktobl_sub()` has been renamed to `unit->walk_tobl_timer()` and its return values have been changed and documented.
+ - `unit->setdir()` has been renamed to `unit->set_dir()` and its return value and arguments have been changed and documented.
+ - `unit->getdir()` has been renamed to `unit->get_dir()` and its return type and constness of the arguments have been changed.
+ - `unit->warpto_master()` has been added.
+ - `unit->sleep_timer()` has been renamed to `unit->sleeptimer()` and its return values have been changed and documented.
+ - `unit->calc_pos()` now accepts `enum unit_dir`.
+ - `map->check_dir()` now accepts `enum unit_dir`.
+ - `map->calc_dir()` now returns `enum unit_dir` and accepts a const bl.
+ - `npc->create_npc()` now accepts `enum unit_dir`.
+ - `skill->blown()` now accepts `enum unit_dir`.
+ - `skill->brandishspear_first()` now accepts `enum unit_dir`.
+ - `skill->brandishspear_dir()` now accepts `enum unit_dir`.
+ - `skill->attack_blow_unknown()` now accepts `enum unit_dir`.
+ - The remaining unit functions have been documented.
+- New return values have been added to `pc->setpos()`, for better error handling. (#2633, issue #2632)
+- Increased the `MAX_MOB_LIST_PER_MAP` value to 115 in pre-renewal builds, to fit all the default spawns. (#2638, issue #1915)
+- Extended the `getiteminfo()` command to also accept item names, and added the types `ITEMINFO_ID`, `ITEMINFO_AEGISNAME`, `ITEMINFO_NAME`. (#2639)
+- Changed `itemskill()` to ignore conditions by default. The `ISF_CHECKCONDITIONS` needs to be explicitly passed if conditions should be checked/consumed. (part of #2648)
+- Changed the NPC shop behavior to prevent selling items from the favorites tab of the inventory. (#2651)
+- Updated Doxygen configuration to speed up generation and fix compatibility warnings. (0d747896e0)
+- Updated the Travis-CI configuration file according to the validation warnings and notices. (eb97973e68)
+
+### Fixed
+
+- Fixed a missing `get_index()` call in `Skill2SCTable`, causing some skills to activate the wrong status. (#2643, issue #2636)
+- Fixed a compilation error C2233 in Visual Studio. (part of #2645)
+- Fixed Basilica unintentionally restraining boss mobs. (#2612, issue #1276, related to issue #2420)
+- Fixed the handling of unequip scripts in zones where an item is restricted. The `OnUnequip` script is now never executed when unequipping in a restricted zone, but it is always executed when entering such zones, regardless of the `unequip_restricted_equipment` battle flag. (#2642, issue #2180)
+- Fixed the handling of skill requirements and conditions by the `itemskill()` command. (#2648, issue #2646)
+- Added missing requirements to `CASH_INCAGI` and `RK_CRUSHSTRIKE`. (part of #2648)
+
+### Removed
+
+- Removed the `ISF_IGNORECONDITIONS` flag previously used by `itemskill()`, now the default behavior. (#2648)
+
## [v2020.02.09] `February 09 2020`
### Added
@@ -1196,6 +1512,15 @@ If you are reading this in a text editor, simply ignore this section
- New versioning scheme and project changelogs/release notes (#1853)
[Unreleased]: https://github.com/HerculesWS/Hercules/compare/stable...master
+[v2020.06.28]: https://github.com/HerculesWS/Hercules/compare/v2020.05.31+1...v2020.06.28
+[v2020.05.31+1]: https://github.com/HerculesWS/Hercules/compare/v2020.05.31...v2020.05.31+1
+[v2020.05.31]: https://github.com/HerculesWS/Hercules/compare/v2020.05.03...v2020.05.31
+[v2020.05.03]: https://github.com/HerculesWS/Hercules/compare/v2020.04.05+1...v2020.05.03
+[v2020.04.05+1]: https://github.com/HerculesWS/Hercules/compare/v2020.04.05...v2020.04.05+1
+[v2020.04.05]: https://github.com/HerculesWS/Hercules/compare/v2020.03.08+2...v2020.04.05
+[v2020.03.08+2]: https://github.com/HerculesWS/Hercules/compare/v2020.03.08+1...v2020.03.08+2
+[v2020.03.08+1]: https://github.com/HerculesWS/Hercules/compare/v2020.03.08...v2020.03.08+1
+[v2020.03.08]: https://github.com/HerculesWS/Hercules/compare/v2020.02.09...v2020.03.08
[v2020.02.09]: https://github.com/HerculesWS/Hercules/compare/v2020.01.12...v2020.02.09
[v2020.01.12]: https://github.com/HerculesWS/Hercules/compare/v2019.12.15...v2020.01.12
[v2019.12.15]: https://github.com/HerculesWS/Hercules/compare/v2019.11.17+1...v2019.12.15