From 7b77b4e549c091580f43b61a755d6edbda611c60 Mon Sep 17 00:00:00 2001 From: Haru Date: Thu, 6 Jan 2022 01:35:29 +0100 Subject: [PATCH] Release v2022.01.05 Signed-off-by: Haru --- CHANGELOG.md | 53 +++++++++++++++++++++++++++++++++++++++++++++++ doc/constants.md | 2 +- src/config/core.h | 2 +- 3 files changed, 55 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index b86976abb19..193493e2959 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -22,6 +22,57 @@ If you are reading this in a text editor, simply ignore this section ### Removed --> +## [v2022.01.05] `January 05 2022` + +### Added + +- Added the `PRAGMA_GCC7()` macro, to specify pragma instructions only active on GCC >= 7.0 (part of #3092) +- Added the `GCCATTR()` macro, to declare an `__attribute__` annotation only in GCC and not in Clang. (part of #3092) +- Added the `GCC11ATTR()` macro, to declare an `__attribute__` annotation only in GCC >= 11.0. (part of #3092) +- Added `grfio_decode_filename()` to the grfio interface. (part of #3092) +- Added configurable steps for the roulette system. See the serverside configuration in `conf/map/battle/roulette.conf` and the clientside patches at http://nemo.herc.ws/patches/ChangeRouletteBronzeLimit http://nemo.herc.ws/patches/ChangeRouletteGoldLimit and http://nemo.herc.ws/patches/ChangeRouletteSilverLimit for more details. (#3101) +- Added support for newer 2021 packetvers/encryption keys/client messages (up to 20211229). (#3103) +- Implemented the Grade Enchanter user interface: (#3100) + - A new configuration flag `features.grader_max_used` is added to feature.conf. + - The `map_log.enable` flag in logs.conf has been extended with a new value. + - The grade enchanting database has been implemented in `db/{pre-re,re}/grade_db.conf`. + - the `@gradeui` and `@reloadgradedb` atcommands have been added. + - The `opengradeui()` script command has been added. + - The Grade Enchanter NPC has been added (automatically loaded in Renewal mode on packetvers that support it) in `npc/re/other/grader.txt`. + - NOTE: The values in the database aren't currently official but guessed. + - NOTE: Item protection is not supporter on older clients. + - NOTE: This requires a database migration for the picklog and zenylog tables. The migration shouldn't cause a full table rebuild on recent versions of MySQL and MariaDB that allow appending new values to the end of enums. + +### Changed + +- Updated GitHub Actions: (#3092) + - Updated compilers (Clang 13 replaces Clang 10, the current GCC version and the current snapshot version replace respectively GCC 9 and GCC 10). + - Updated packetvers to the most recent ones. + - Updated database versions (MariaDB 10.2 is added alongside 'latest', while 10.1 and 10.5 are removed; MySQL 'latest' is added alongside 5.6 and 5.7). +- Updated configure.ac to require at least Autoconf 2.69 (the current configure file is generated by Autoconf 2.71). This only affects developers who want to regenerate their configure script. (part of #3092) +- Updated the warning flags in the configure script with new ones for recent versions of GCC and Clang. (part of #3092) +- Added annotation attributes to the functions in memmgr and strlib and some other prtinf-like functions. (part of #3092) +- Changed the memory allocation functions to never return a NULL pointer. (part of #3092) + - `iMalloc->malloc()` (and functions or macros that use it such as `aMalloc()`, `CREATE()`, `aCalloc()`, `aStrndup()`, etc) will abort completely instead of returning NULL if `malloc()` fails. + - `iMalloc->malloc()` (and functions or macros that use it) will allocate a 1-byte buffer if requested to allocate 0 bytes. +- Improved several packet generation functions, removing an unnecessary memcpy. (#3102) + +### Fixed + +- Fixed an issue that caused the script conditional feature checks to always be true (i.e. make the setting to disable the GM management scripts ineffective). (#3096) +- Fixed `MO_CALLSPIRITS` in `bAutoSpell` (such as the Greatest General card) to use the specified skill level instead of the currently learned level. (#3095) +- Fixed an error when saving the homunculus exp when reaching the maximum level through `@homlevel`. (#3098, issue #3097) +- Fixed various possible buffer overflows and other warnings reported by recent versions of GCC and Clang. (part of #3092) +- Fixed a memory issue caused by reloading the git/svn information on non-windows platforms where it's generated at compile time. (part of #3092) +- Fixed the SP bar not correctly updating for party and battleground team members in the 2021 clients that support it. (part of #3103) +- Fixed the weight in the expanded barter shop for 2019 and older clients. (part of #3103) +- Fixed the Doram skill Picky Peck `SU_PICKYPECK` to be affected by Spirit of Life `SU_SPIRITOFLIFE`. (#3018) +- Fixed the double cast activation chance of the skills Picky Peck `SU_PICKYPECK` and Bite `SU_BITE`. (part of #3018) + +### Other + +- Updated copyright headers for year 2022. + ## [v2021.12.01] `December 01 2021` ### Added @@ -2183,6 +2234,8 @@ 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 +[v2022.01.05]: https://github.com/HerculesWS/Hercules/compare/v2021.12.01...v2022.01.05 +[v2021.12.01]: https://github.com/HerculesWS/Hercules/compare/v2021.11.03+1...v2021.12.01 [v2021.11.03+1]: https://github.com/HerculesWS/Hercules/compare/v2021.11.03...v2021.11.03+1 [v2021.11.03]: https://github.com/HerculesWS/Hercules/compare/v2021.10.06+1...v2021.11.03 [v2021.10.06+1]: https://github.com/HerculesWS/Hercules/compare/v2021.10.06...v2021.10.06+1 diff --git a/doc/constants.md b/doc/constants.md index 4f41632c7ae..7a8952aa5cd 100644 --- a/doc/constants.md +++ b/doc/constants.md @@ -4717,7 +4717,7 @@ ### Server defines - `PACKETVER`: 20190530 -- `HERCULES_VERSION`: 202112010 +- `HERCULES_VERSION`: 202201050 - `MAX_LEVEL`: 175 - `MAX_STORAGE`: 600 - `MAX_GUILD_STORAGE`: 500 diff --git a/src/config/core.h b/src/config/core.h index ea40e65c446..8ce5947c35a 100644 --- a/src/config/core.h +++ b/src/config/core.h @@ -22,7 +22,7 @@ #define CONFIG_CORE_H // from tag vXXXXXXXX.Y -> XXXXXXXXY -#define HERCULES_VERSION 202112010 +#define HERCULES_VERSION 202201050 /// Max number of items on @autolootid list #define AUTOLOOTITEM_SIZE 10