AFKMud 2.2.1 has been released.
This is a maintenance release to fix bugs found after resurrecting Alsherok from its grave
For details, check the AFKMud repository on GitHub
. The commits ought to be detailed enough.
Changes for AFKMud 2.2.1
Added support for conversion of SmaugFUSS area files.
Moved the area loader for AFKMud 1.x zones into its own file for easier maintenance.
Updated area conversion to handle Smaug 1.8b version 3 format if encountered.
Area file documentation has been updated.
The set of default help files has been cleaned up and updated.
The default set of area files has been cleaned up and updated.
Keyword matching when looking at inventory items was not working due to C++ std::string.find() quirks.
Could not perform many immortal commands on oneself due to a bad level restriction meant to keep imms of the same level from banning each other.
Typo fix - Hermaphrodyte is actually spelled Hermaphrodite. Only text presented to the user was changed.
Picking a class during character generation was causing titles on the who list to get scrambled because a title was not being set for the newly chosen class.
Who list output was missing a new line after each displayed player.
A default color was never set for newbies logging in, which screwed up color displays in the chargen area.
The hasname function in editor.cpp proved to be a REALLY BAD IDEA. It was prefix matching on single letters when that was not the desired intent. Given the amount of code using it, it's been converted into a wrapper for is_name2_prefix.
Runes loaded from disk had whitespace attached to their names which made it impossible to use the specific name to reference them.
When socketing a rune the command was using the passed argument to identify the rune rather than the object's short description. This could lead to the "Rune rune" being socketed into an item.
Give resets (G) were not functional due to a bad check against the percentage on an argument they don't have. This was most noticeable in rendering shopkeepers useless because they'd have no inventory.
The "show" command was being blocked by the "showrealm" command.
All immortal realm data was being purged during pfile autopruning due to checking the wrong keyword when the pfiles were scanned.
Loading corpses were being improperly checked for valid wear locations and causing a crash.
Line endings for text passing through act_string were not being applied if the string had no formatting variables in it.
A whole bunch of reset args were of type short when they should ALL be of type int since any of these fields could contain a vnum. Some annoyingly bad things can happen once you're passed 65536.
write_area_list should not add prototype zones to the area.lst file. They will throw log errors at the next boot.
Hide resets (H) were using the wrong argument when being created in the reset editor.
Object long descriptions should not have been getting run through capitalize() because then they lose all their formatting.
Objects being carried by someone and objects inside other objects should always return a positive match for is_same_obj_map() or they will be invisible when viewed from the overland.
is_same_obj_map() needs to be called first thing in char_data::can_see_obj or immortals with holylight, as well as Supermob, will see every object at every coordinate on the overland.
Mob wandering was broken due to bad logic in the passdoor handling.
Color codes were all off by one because of a miscount in the blink codes.
Several problems with pager output and color bleeding have been corrected.
Fixed a crash bug in check_for_trap() caused by invalidated list iterators.
Random treasure resets would spawn over and over even if the objects were never removed from their starting locations.
Fixed an array bounds overflow in calculate_race_height() and calculate_race_weight().