--- deliantra/server/Changes 2008/05/08 20:07:22 1.156 +++ deliantra/server/Changes 2013/01/11 15:08:03 1.840 @@ -1,15 +1,1101 @@ Deliantra MORPG Server, Maps and Archetypes ChangeLog. -TODO: dragons should not be able to change their title via the settings tab in playerbook -TODO: emergency swap mode is not working +Version numbers sort like decimal numbers. -syncpoints: rules, news, motd, crossfiremail -""/opt/perl/lib/perl5/unicore/Canonical.pl", "/opt/perl/lib/perl5/unicore/To/Lower.pl" etc... +TODO: golem survives "longer" now - too long? +TODO: clean up skill handling in kill_object. +TODO: mining experience +TODO: highest cpu users: stand_in_light (object *op), get_map_flags, blocked_link, path_to_player +TODO: reload_settings +TODO: thawer should not next() +TODO: pet experience is, rarely, given to the wrong skill (e.g. mining) +TODO: 2010-05-21 02:48:16.4562 D victim {cnt:109581,uuid:<1.858befa27>,name:"ice",flags:[0,8,103],type:23}(on /whalingoutpost/misc/icecavern1@8+43) (-21) already dead in hit_player() +TODO: jumping, maybe dimdoor works wonders with earthwalls in between. +TODO: cats dimdoor, invoke charm => watch Log-1 +TODO: fountain magic power and shop magic powre potions are different, also, potions are not identified +TODO: identify doesn't merge +TOOD: apply should only apply one stack items +TODO: fixed random maps, e.g. for buildings -TODO: you have to unapply the jumping first before you cna raedy spell... -TODO: re-apply items on log-in -TODO: rebalance jumping skill speed -2.55 +TODO: fix rando maps - wallstyle includes piers? random exitstyle is teleporters? +TODO: 2010-07-26 23:16:17.5863 W Can't call method "skip_block" on an undefined value at /opt/deliantra-server/share/deliantra-server/cf.pm line 2136. + when trying to load a map that apparently could not been saved during chargen. +TODO: http://maps.deliantra.net/lostwages/alchemistscave.xhtml - doesn't work, even after the diamonds you do not get the cauldron. +TODO: 2010-10-12 00:46:54.9727 E place_special_exit: undefined hole type 4 +TODO: 2010-10-12 00:05:52.3436 E object refering to nonexistant archetype 'ability_fire'. +TODO: 2011-08-13 23:21:15.7242 E Treasurelist mage_hound did not generate a valid entry in summon_object +TODO: partially transparent, yellow ground(?): wall/bulletwall/bul_wall_*.x11.32x32.png +TODO: op->failmsgf ("You lack the proper attunement to cast %s!", &spell_ob->name); <- why for moving bsall spells? check if caster is player? + +TODO: potionimp/stat potion descriptrions +TODO: 22:29:37 -server:#cf- Scara chats: schmorp: i'm trying to get a clue about the tarot and the meaning of the +TODO: sepharoth, it goes like this: philosophical salt equals "Gunas" (Subconsciousness), philosophical +TODO: sulfur equals "Rajas" (Activity) and philosphical mercury equals "Sattva" (Superconsciousness) or +TODO: the sepharoth "Kether" +TODO: "illegal" access to mlab via town portal in zealots house near mlab tavern +TODO: only store face checksums in C++, store everything else in perl + +TODO: cspm spell arg + - (maps) hopefully fix tobias' tower. + - (maps) hopefully fix healing potion vendor in arena entrance. + - (arch) fixed an error in the Gnarg scale mail artifact. + - it was possible to unapply or half-unapply cursed items in many + cases, which confused players and also player state. fixed. + - (arch) remove curse now works more liek idnetify in that it uncurses + some items. also, no longer uncurses spells or other invisibles. + - (arch) remove curse and identify now treta the marked tiem first. + - creators no longer identify objects that shouldn't be identified + (such as money, which won't stack afterwards). + - (maps) the shady rogue in goths can unapply cursed items for you. + - (maps) implement a wilderness town portal. + - (arch) set proper(?) int values for all monsters. + - (maps) fire5.map could destroy players. + - (maps) fix pet arena pit/arena entrace and exits. + - clear the spell's applied flag when inscribing scrolls, to make the + scrolls mergeable. + - redo all build material faces from scratch. + - dropall without arguments now drops all containers. + - use blitz++ for vector maths (new dependency). + - only match archetype names in artifact allowed names. + - new command "bumpmsg" that triggers the bump-into-wall messages. + - altars with match expressions did not work properly. + - use last_sp not cursed/damned flags in remove_curse/damnation spells. + - god enemy race check fixed ("god detests your race"). + - gods errornously allowed any kind of worshipping race, even + ones they hate. + - use same default config in code as on gameserver.deliantra.net. + - Pod::POM 0.26 and higher actually interpret =encoding, which broke + our parser. + - generate slightly more special exits and avoid warning. + - applying a glowing crystal now gives status messages. + - fix a memleak in the random map generator. + - rework the random map parameter passign a bit to be extendable. + - (random maps) use a nonrecursive algorithm to generate mazes, + also, improve the quality of the mazes (no longer will the edges + almost always form a passage) and add two new types - "rooms" + and "braided". + - implement --unique option to reset command. + - (random maps) add new "cave" layout, which is much more ... + cave-like. + - (random maps) new layout style "castle" that generates straighish, + rogue-ish maps. + - (random maps) new layout style "multiple" that simply mixes multiple + different styles in different areas. + - roguelike maps sometimes had dead ends due to symmetry settings. + - rewrite layout management in the random map generator from the + ground up. + - fix bug in tausworthe rng initialisation. + - switched to the faster and hopefully better quality gfsr{24,55} random + number generator, the same algorithm that freeciv apparently uses. + - replace unreachable walls in random maps by "blocked", which saves + memory and imho looks nicer. + - (arch) fix samhlaidh archetype. + - fix the "archname" match special function. + - add kensler ("better gradient noise") functins, as well as fBm + and other fractal algorithms. + - one can no longer emote to logged-out players. + - (maps) /pup_land/nurnberg/storehouse quest was fixed, the potatoe + sacks fit on a tile again. + - (arch) fixed message of improve wisdom scroll. + - (arch) move glyph/magicmap/visibility into .faceinfo files, + support background colour for text clients. + - (arch) improve automatic name from archname generation. + - implement faceset 2, colour + utf-8 glyph, for text-based clients. + - support resist_xxx, body_xxx_info and body_xxx_used specials in + match expressions. + - don't cause an error if a monster tries to cast magic mapping. + - sometimes a special exit wasn't placed when it should have been. + - make newmapcmd mandatory, remove support for map0/map1. + - require EV 4.00. + - made wording of "use_skill jeweler analyze" a bit more precise. + - add perlxsi.c to cleanfiles. + - (arch) made speed potions easier for now. + - the server didn't properly initialise all client skill slots, + no known impact. + - clean up unused settings, introduce DELIANTRA_DATADIR. + - (arch) added potion of fortitude to resist fear for the jeweler skill. + - (arch, maps) move worldmap gridmap data to arch/res/ and implement + a generic table/matrix/palette converter to cfutil. + - avoid crash in describe_item when a power crystal has maxsp=0 (as used, + apparently, in the brewery map). + - do not endlessly loop when an optional extension cannot be loaded. + - remove limits of 000..999 from worldmap coordinates, support negative + coordinates and introduce z-layers - deliantra is now 3d, in yet another + sense. + - move "the worldmap" to ext/map-world-classic.ext and make ext/map-world.ext + handle generic "world map areas". + - dropped micrpather again - we'll do our own implementation when we need it. + - added is_quad flag. + - (arch) added quad archetypes. + - made the pickaxe mining tool remove quad walls and floors. + - move key_values into their own class, simplifiying lots of code and + making it possible to use kv pairs easily for maps and other objects as well. + - get rid of get_archetype, finally. + - maps no longer get activated when loading, only when a palyer is "near" them. + - maps can now be swapped (not loaded), active and inactive, other states + have been removed, and the map "intelligently" changes between active/inactive. + - new variable $cf::SERVER_TICK, also rename pticks in C++ to server_tick. + - remove legacy fly_on/off, flying, walk_on/off and no_pass attributes. + - server now enforces width/height matches between tiled maps. + - fix some off-by-one bugs that presumably created empty rectangles + for unordered map walks - which should not cause any real issues. + - increase face hashlen to 5 octets from 4, to avoid a collision. + - fix output-rate limiting - min/max now use the first argument for the type, + as all other similar macros - might cause other breakage... + - cfutil no longer creates split tiles multiple times due to a + off-by-one bug in comparing mtimes. + - cfutil now supports type: prefix to derive faces from other faces, which + is used for all build materials currently. + - require imagemagick >= 6.6. + - fixed possible crash due to broken initialisation order of shstr and + freed_map, thanks go to Jonathan Neuschäfer for spotting this! + - fix the brace command. + - implement refcnt_buf. + - avoid std::string to store facedata, use refcnt_buf instead, for a 20kb + codesize decrease. wow. + - removed version 1 ext/exti command support. + - store meta information in faceinfo->meta unless prepended or empty. + - new extension, ota_update, for online updates of the game client. + - implement a simpler config value system for extensions that allows + config updates without a reload. + - fix a segfault in reload_perl due to perl 5.12's gv management changes. + - make pick_lock work over map boundaries, and fix a crash while we are + at it. + - make nekosan more disease-resistant. + - new event "infect". + - setup protocol packet now supports JSONOBJECT syntax. + - implement simple web server, currently to serve facedata for the html5 + client. + - sort faces by name in the server to improve caching locality in clients. + - actually prune face checksums (exp_table's checksum was too long). + - add skill_info and spell_paths resources to enable caching the info + and removing another command. + - send completion info to the client. + - assume all clients support the deliantra protocol extensions and allow + fxix/extcmd and other protocol "extensions" before setup. + - implement flash-policy-file server on server socket, to allow flash clients + to connect. + - implement exti doclet request to request documentation, + currently for commands only. + - created nickmon extension to monitor nicks. + - ix now keeps a copy of the face data while sending, in case the + face changes. + - do not allocate memory for empty refcnt_bufs. + - when faces change, invalidate all clients, not just clients with matching + faceset, as faceset only applies to tile resources. + - remove dependency on Time::HiRes. + - move face data to disk, and load it on each and every access. this saves + 250mb ram on load, and 130mb ram in general, and only reduces the http + server hot cache throughput for faces from ~24000 to ~18000 requests/s + on my system. this should make it possible to add a lot more media files + in the future, and reduces the memory footprint by the server from 180mb + to 60mb ram. + - create food/missile will now fail when the mapspace limits are exceeded. + - pod processing could deadlock because the child process might try + to get a lock. + - removed support for ncom packets. + - remove drawinfo packets from the server (use msg instead). + - skill objects now have their documentation in the msg slot. + - no longer allow prefix match when matchign spells, spells names must + now be written fully. + - avoid a deadlock when the incloader is called to load an in-memory + file in a child process. + - implement spellmon v2 protocol - no spell message. + - remove ability to cats/invoke seplls by "count". + - the "may" mechanism now supports uuids ina ddition to nicknames. + - implement dm/dmhide in terms of the "may" mechanism, so dm + players must now be configured by adding may_command_dm: ["uuid..."] + to the config. + - remove nowiz command. + - change dm hiding - hidden status is no longer respected by spells etc., + it only affects information commands. use observe instead. + - automatically send fx for all changed faces, not just for visible tiles. + - fix g++-4.7/c++ incompatibilities in noise.h, and work around similar + problems in blitz++. + - catch sigfpe in the same way as sigsegv. + +3.0 Sat May 29 23:30:57 CEST 2010 + - (maps, arch) complete revamping of the transport routes - all cities are + now easily reachable, at a price. + - (maps) the mana fountain now has a ratelimit of 30 potions per hour. + - (maps) added (navar) gravedigger, that buys players gravestones. + - (maps) added the rathouse quest for the shockwave spell in navar + (by Dustfinger). + - (maps) fixed bad floor tile in navar apartment. + - made (wizard) look_at show also uuids. + - added cf::object::find_object_uuid (::find_object already exists!). + - (maps) added new apartment, made by LinuxLemoner. + - (maps) added quest for the mining skill scroll to valleynoy. + - (maps) added greedy highlevel book shop to heaven town. + - (arch) added sounds: zombie death, book reading, inscription. + - (arch) made the hill giants loose more body parts. + - (arch, maps) added black unicorn horn, required to access mlab hell. + - (arch) increased the (possible) number of arrows/bolts found in shops + and made them a bit more expensive. + - (maps) add more glory hole treasure styles. + - (maps, arch) add "hollow" variants of cave\d tiles, and use them + in a select number of mlab maps. + - (maps) the library should be less of a death trap now. + - (maps) exits no longer point to auto-apply exits, most affected + maps now have proper doors or a similar solution. + - (arch) jumping skill has now physical attacktype. + - (maps) fixed nurnberg/reception/fire5 to match new style torches. + - enter_map did not normalise the map coordinates when the destination + space is blocked, causing badness and freezes for the player. + - when applying containers, server checks for the key on activate + and also allows players to unapply active containers they don't have + a key for. + - moved formulae, attackmess, artifacts, exp_table, materials and + races files to arch, where they belong (exp_table is no longer in + confdir but in datadir now!). + - jeweler and sound config files are now normal datafiles as well. + - quit_character was causing a runtime exception, causing it to not + work since 2.93. + - entering a map will now respect move_on and other effects, + except for auto-apply exits :/ + - only talk to the items on the nearest mapspace, or, of there + are none, to the player, not ALL items in vicinity. + - do not update the floorbox while running, to avoid big item + updates that cost network bandwidth and processing power. + - diseases could reduce a monsters speed to MIN_ACTIVE_SPEED, which + caused overflows causing monsters to become living deads. + - unapply weapons and armour before trying to improve it. + - teach the random map generator the ability to read ".rmg" files + that specify which actual style map to generate, and use it for + the default decorstyle to avoid inappropriate maps to be used. + - support (with some limitations) multiple different skills with the + same subtype. + - fix "nekosan duplication" bug - map swap out was not atomic, + so nekosan could end up beign saved AND escaped to another map. + - show invisible no longer makes magic mouths visible. + - move_type changes (spells, skills etc.) now will correctly + take move_on/move_off into account (e.g. buttons). + - display (exit) or (random map) in client for those objects. + - removed (useless) spell damage columns from spell info and replace + it by effective casting level - clients > 2.10 required to display + properly. + - building of levers/doors works again for all kinds of floors. + - the player can now withdraw and deposit all the available money. + - (maps) fix the apartment shop (japan => 吾妻) and add descriptions for + steinwandstadt/celvear. + - (maps) added /goodies map (goto *idkfa) with stuff useful for testing. + - (arch,maps,code) rebalanced value of spellbooks greatly. it's now + mostly based on the spell's level in the spellbook. + - the music scheduler did not properly send new music on region + changes. + - (maps) fix some map regions and the region tree. + - the server will now be more picky when parsing the regions file. + - do not rely on chosen_skill in calc_alch_danger. + - improve editor support protocol slightly, provide workarounds for 2.10 + clients. + - follow has been rewritten to be, hopefully, more robust. + - follow mode will not be aborted when the follower tries to move. + - tcp.ext didn't unbind in reloads. + - map-tags.ext didn't properly close the database on reloads. + - cfutil skips .-directories when scanning. + - build.ext prevents players from building on other player's maps. + - rent.ext allows the dm to enter anytime. + - NPC_Dialogue adds a new predefined variable, $map. + - new "build" event hook. + - get rid of archetype min/max values except max_x (which should go, too). + - added fix_generated_item and cf::object::generate to XS interface. + - no longer use uppercase identifiers for saving anywhere, but support + them on loading, for old playerfiles and maps. + - removed is_legal_2ways_exit - this is apparently dead code, and + would be handled differently nowadays anyway. + - random map .meta were not being expired at all. + - replace move_ob/move_object functiony by the equivalent move method. + - update to automake 1.10. + - invitation to maps with unagressive and friendly monsters doesn't + require level 4 anymore. + - do not let update_stats muck with the chosen_skill anymore. + - monsters now rotate through all skills (in chosen_skill). + - fix lots of path-related buffer overflows in the random map generator. + - detect/sense curse/magic will no longer work on items that don't + need identify. + - added detect mineral vein spell. + - support "wall overlays" in the random map generator - not very generic, + used by minable veins. + - (maps) relocated jeweler town to another directoy. + - (arch) implement mining pickaxes and mining skill. + - (arch) add missing stonebig_club archetype from cfextended. + - jeweler skill doesn't diminish input values anymore. + - jeweler skill is harder to level now, but in exchange item power + of the output is only 1/5th (instead of 1/3rd) of ring level. + - jeweler skill adds the makers name (currently not visible) to the + generated ring/amulet. + - generate most constants for perl automatically. + - properly check for weapon name prefix ("Ragnarok's sword"). + - when player dies, restore his food to at least 200. + - support multiple inheritance for arch sources (inherit a,b,c). + - switch to storable-n-format for facedata, for better interoperability. + - implement generic "ranged" item framework (pickaxe, fishing rod). + - the singing skill actually respects the direction now. + - oratory and singing now require a direction. + - use_skill now requires that you can actually apply the skill tool. + - do not invoke perl on every user command anymore by providing + a command and an unknown_command event. + - move mark, run, run_stop, fire and fire_stop commands back from + perl to C++, for speed reasons (basically undo patchset 1304). + - add a client_destroy event, so we don't have to hook the + attachable destroy event (which is called much more often). + - removed (unused) FLOOR object type. + - fix errornous change_abil messages for rods (and other types). + - remove include/commands.h and server/c_new.C, and refactor + all into server/commands.C. + - save and restore combat/ranged/current slot for players. + - the server now batches item's face/fx commands, as opposed + to sending one fx per item - helps mostly at connect and + with floorbox updates. + - implemented ext::player_env::play_music_once $who->contr, "km/...". + - the random map generator now supports selecting difficult for + more style categories than just monsters (all except fountains + apparently). + - object serialiser no longer creates empty "owner" references. + - make sure failed castings take some time, too, to avoid being + smitten by your god. + - many more failmsgs and help texts. + - support log suspension/resumption, e.g. for defragmenting. + - stop thrown objects when their speed goes too low. + - log the number of unique logins seen every minute in a compact + format (for statistics). + - do not send delitem for players. + - support static scalar data members properly in genacc now. + - implement "simple" freelist management for objects. + - recycle object counts now - to support longer uptimes. + - got rid of the dreaded write_parameters_to_string (666 chars omitted) + function (and yes, 666 is exact!). + - random map generator results should now be fully repeatable. + - fixed possible crash bug in build code. + - rename find_marked_object to ->mark and speed up. + - player movers properly destroy themselves when used up, instead + of leaking. + - do not show msg for unidentified objects that need identification. + - convert formulae/bookarch/settings file parser to thawer framework. + - finally get rid of fgets (..., thawer) and use a much cleaner + next_line method. + - use nicer file format for exp_table and attackmess + (more like other resource files). + - make parse errors during server startup fatal. + - properly initialise all maptile values in constructor. + - improved {link} map. + - optional unloadable extensions will not lead to an endless loop. + - server will cleanly autorestart when running out of protocol IDs. + - use faster and slightly more exact find_dir_2 replacement. + - building listening books is possible again. + - (maps, arch) added archetype for building instructions and replaced + the copies of the instructions in the maps with it. + - (arch) made the spark shower spell available in shops. + - don't create a second LOGIN event on character creation. + - correctly generate "You paid xyz" message in shops. + - the shop menu now also displays the (approx) value of the item. + - added a 'password' command, to let DMs change the password of players + more conveniently. + - correctly save shopitems string, to avoid parse error when reading + saved maps. + - logging now differentiates between logging levels better. + - speed up get_typedata. + - fix deadlock problem during server shutdown/reload. + - make ext/checkrusage "more" non-blocking. + - use common::sense for extensions. + - work around a 50.10.0 utf8 caching bug. + - correctly try to load tiled maps in adjacent_map, might fix + "no relation to target" bugs. + - try to load (pure-)perl modules asynchronously, warn about + modules being loaded from the mainloop, pre-load some more + core modules so perl doesn't do it later on. + - pre-load many of the files perl might load on it's own e.g. when + compiling regexes. + - make exp_table and materials file reloadable. + - made reload_config non-blocking. + - the seen command called (Blocking) stat() instead of aio_stat, + causing server freezes. + - store unhashed password, to prepare for safer authentication. + - do not log connections from the local host, to help a local + watchdog. + - fix summon freeze at map borders. + - support @group syntax and music config file for music face lists. + - run post_init jobs in parallel, they might do I/O. + - avoid apply conversion for converters. + +2.93 Sat Feb 13 15:52:36 CET 2010 + - (maps) fix travel to valdor and back. + - do no longer by default eval map cod ein safe compartments + (this can be re-enabled using the safe_eval config option). + - (maps) fix an apparent crash bug caused by broken generstors + in lorak. + - fix data corruption issues caused by recursive calls to + unordered_mapwalk - now every caller must provide its own + buffer. + - (maps) improve tindervale maps slightly. + - (arch) considerably decrease slag ex price. + - (arch) fix filth archetype. + - extension dependency resolve was completely broken. + - multipart objects would cause save_throw_object to crash - it + now acts on the head only. + - do not try to connect to an irc server unless explicitly configured. + - do not expect decltype() to be available in gcc 4.4. + - extended the safe perl environment by loops. + - (arch) fix "armless cook" facings. + - the "experience table" resource item did not have a proper + hash associated with it, so updates could not be detected. + - fixed poison traps in doors. + - player->killer_name did not properly flag the name as unicode. + - aggressively mark many more methods as utf8 or octet-expecting, + and provide a non-destructive SvPVutf8 variant. + - do not allow dragon players to change their title via the settings. + - ratelimited jeweler skill nugget conversion. + - under high load, the server stopped swapping out to make + the server more responsive, but making it impossible to reduce + the load by... swapping out. slot queuing will now always make + some progress. + - improve the quality of the load-avg calculation. + - (maps) fixed quest npc in jeweler dungeon quest. + - don't fail to write the runtime file if the temporary already exists. + - ipo.ext no longer uses (synchronous) CFDB, stores mail directly at + player now. + - rewrote hiscore code from scratch to use async I/O, store uuid and + timestamp and use a tab in the client to increase awareness. + - npc dialog setflag/setsatte now check for defined'ness, so + setflag 0 is possible. + - make install now deletes old extensions, to ease upgrades in the + deliantra vm. + +2.92 Thu Dec 24 04:51:56 CET 2009 + - the destruction spell could/would corrupt server memory quite often. + - logging in only fixed the combat slot when the palyer was loaded from + disk, not when it already was in memory. + - cede in wait_for_tick* when the tivck is inhibited hopefully + avoiding livelock during high-load emergency saves. + - logging in did not properly unapply all skills. + - (maps) make the invite quest marking much more obvious. + - (arch) fix warrior archetype names. + - map prefetching never prefetch upwards. + - wizpass no longer makes you non-blocking. + - (maps) add light to some of the special maps, add troll + map. + +2.91 Mon Nov 30 10:18:09 CET 2009 + - (maps) add gorokh_final mapset from crossfire. + - (maps) block most vault-type mlab locations, open up + imperial converters for anybody to use. + - (maps, arch) replace all permanent stat potions by random + variants. + - (maps) spread gorokh demon styles more evenly over 1..100. + - TRIGGER events got passed a garbage pointer instead of a + real player object on player changes. + - diseases and maybe other things could sometimes reduce the speed + to below MIN_ACTIVE_SPEED, deactivating the monster and causing + much grief. + - speed_left randomisation was, apparently, totally broken. + - introduce FLAG_RANDOM_SPEED instead of using the sign bit + of the speed slot internally and in map save files. among other + things, this gets rid of all the abs (speed) calls. + - reduce map file save files by using abridged keywords aliases. + - shop specialisation calculation was totally broken. + - nrof/itemcount/volume limits when dropping to the floor are + now enforced. + - fix magic mapping, which only worked for inate spell casting. + - godgiven items will now be explicitly described as such. + - (arch) dded a quiver of bolts. + - materialnames would change "randomly" on every load, only + set the material when the materialname was not set before. + - balancing change, halve rod recharge speed (instead + of 4.8s, the standard rods now recharge in ~10s. not a solution, + but still. + - reduce cpu time used for map saving by >>50% by avoiding + the costly flag-checking loop in most cases and using a simple + repeat-cache for speed_left. + - always delay stats update for players on insert/remove till + next tick/command, which saves a lot of cpu cycles on drop/take. + - add hint about havign to run to attach unaggressive npcs. + - pet monster level was not displayed correctly in "showpets index". + - clean up floating point conversions and many similar nitpicks. + - fix hanuk altar. + - overhaul material system to be much faster, and having less bugs, but + still having a lot of cruft :/. + - add marble shop floor. + - move gcc specifics to new file include/compiler.h. + - unrecognised cfpod directives could cause undefined behaviour. + - added boes' marble shop to steinwandstadt. + - pad mapspace to power-of two size for speed/codesize/cache gains. + - optimise mapspace updates. + - cache volume/items per mapspace. + - use fabs, min and max consistently (surprisingly for a code size + decrease). + - fixed a small uncleanlieness in item converters, which might + have led to weird item multiplications. + - store hash value in shstr, not used by anything, but doesn't use much memory. + - fixed crash bug in learn_spell command. + - enhanced output of the mapinfo command. + - remove all traces of FLAG_NO_FIX_PLAYER. + - avoid sv_derived_from calls (lots of hash lookups) when converting + from perl to c++. + - implemented least_significand_bit and for_all_bits_sparse_32 utilities + and use it in some "inner" loops. + - rename flags to attachable_flags to avoid confusion :=). + - fixed jeweler experience output to not be floating point. + - added lock/unlock commands, thanks for the patch go to Shawn Robinson! + - (arch, maps) introduce inactive_shop_floor and fix some shops with it. + - try to prefetch memory inside process_objects, which can give + enourmous speed gains. + - make some small optimisation to the process_objects loop. + - move facedata chksum calculation into cfutil, make server more flexible + handling different chksum lengths. + - check for hash collisions in cfutil. + - reduce face checksum size from 6 to 4 bytes. + - don't crash when a map uses empty sound/sound_destroy/face. + - removed weather-specific attributes. + - fixed genkeywords dependency. + - do not clear "randomitems" slot for world underlays. + - use "sl" as short-hand for speed_left in save-files, just to make them + smaller. + - in general, don't crash on value-less resource file lines + anymore, due to get_str never returning a 0-pointer. + - code cleanup in move_symptom. + - removed arch_to_object (replaced it by ->instance ()). + +2.90 Sat Nov 7 15:06:06 CET 2009 + - some Andrew Madloch wanted, despite being specifically told + multiple times that the Deliantra parts additions are under AGPL, + lock up the source code of the server within his company. + some reorganisations have been done to the sourcecode to make + it clearer that this violates the Affero GPL. Help to keep + Deliantra free software even for the coming generations + and be wary of the promises of Andrew Madloch, he has nothing + good in mind for free software. + - clarify which files of the server are 100% AGPL. + - minor reorganisation, move some GPL code into other files. + - implement viewpoint (which is like observe, but only for the map, + not stats etc.). + - replace magic mapping overlay by a flying bird exposing area + on the worldmap (ext/magic_mapping.ext). + - @find in npc dialog was useless as the vairbale wasn't accessible. + - @find results in npc dialogue is now stored in $find. + - (maps) add lostwages and lorak (valdor/varsia) from cfextended. + - (maps, server) add lostwages and celvear apartments to rent system. + - (maps) closed guild houses, this is not scalable, ask your friendly + dm instead. + - (maps) add town portal to celvear. + - (maps, arch) add troll canyon, pygmy forest, elven moon and temple of justice + mapsets from crossfire, together with associated archetypes. + - (maps) add extended region descriptions for some regions from crossfire. + - (maps) define a new whalingoutpost region. + - (maps, arch) add all changes to mlab between 2006-08-01 and 2009-10-28, + and most archetypes that go with them (without stoning and swallow effects), + casino tokens and stock certificates are also missing. + - (maps, arch) add a number of minor maps from crossfire to scorn, navar + and santo dominion. + - (maps, arch) added gotischerbereich from cfextended, and some archetypes + to go with them. also adjusted archetypes to be more korrekt "gotisch". + - doors/containers can now use "match ..." expressions for the slaying field. + - properly close client-side dialogue when the player is teleported away. + - map-tags did not properly close it's database tables or wait + for a quiescent state, causing memory corruption on reload. + - support "stat.xyz" accessor in match expressions. + - skip /styles and /editor directories in cf::map::static_maps. + - implement ->send_big_packet and use it in ext_msg (among other things, this + fixes long answers from npc dialogue). + - connected magic mouths no longer spill to Log-1, but use the examine tab. + - (arch) change marker archetypes to not remove "marker" forces anymore + and to not add a "put your code here" force needlessly. + - (arch) fix or improve many plurals. + - markers do no longer add a force if the slaying field is unset. + - sped up search-items implementation, but it's still horrible. + - (maps) bigchests are now properly non-unique, per_player and no_reset. + - editor_folder can now be used to override whatever cfutil sets, and was + used to reogianise the illogical arch tree a bit. + - (maps) import most map names from crossfire. + - nuke image_sums/image_info subcommands from the protocol. + - fly_high movement gives better los, ignoring blocksview. + - the addexp command should now honour skill names with spaces. + - (arch) add nuke from cfextended to avoid a crash. + - (arch) added many more buildable marble floors. + - major namespace cleanup: save 45kb by making functions static + that were unnecessarily global. + +2.82 Sat Oct 24 03:50:17 CEST 2009 + - fixed a classical and exploitable stack buffer overflow in the gsay command. + - fix a memory buffer overflow in the book code. + - add @check, @find npc dialogue commands. + - (maps) add a number of town interiors. + - (maps) add tindervale the fireborn capitol from cfextended. + - (maps) add celvear area from cfextended. + - (server,arch) add a number of inscribables, show their capacity in hint. + - (server,maps) fix bug causing some library books not to be chained down, + cause Scorn/Navar libraries not to have inscribable books. + - (maps) fix bug causing the Greyshield and Greysword to have + inappropriate item power. + - (maps) fix intwell balancing issue. + - improve the look of generated books. + - make slag no_drop so it can't be dropped from the cauldron. + - fix bug where players could bypass no_drop by putting items in containers. + - consecutive commands arriving at the same time in the server would be + corrupted if the length was >255. + - support sub-matches in () inside match expressions, not just conditions. + - got rid of motd/rules/news code in C++ part, move motd to it's own tab + and perl. + - implemented new "match" type that combines both check_inv and pedestal + functionality (and more) inside the same object using the match expressions. + - create simpler match expression compiles in many common cases. + - reduce object size by removing obsolete "seen_by" member. + - removed the rather broken make_list_like utility function, taking advantage + of the new dynbuf::splice function (which gave an unexpected net win + in code size...). + - the server will no longer complain (and subtly fail) when an object + being removed from a map causes another object to get removed. + - banish strncpy from the server, speed up and simplify sending item + descriptions to the client considerably. + - add new "in head" set modifier for matches. + - new BLOCKED_MOVE event added. + - mapscript archetype now has activate_on_xxx true by default, as similar + connected elements. + - (maps) imported all styles from cfextended except + floorstyles/land_plots and monsterstyles. + - (arch) imported gem treasurelists and archetypes from cfextended. + - don't crash when treasure lists are empty / supply new empty + treasurelist for randomitems when none can be found. + - implement cf::map::static_maps and use it in map-tags.ext. + - fix a bug in map-tag scanning when moving tags. + - (deliantra.net) improve watchdog to now check both listening ports + for a reaction. + - implement new "loadall" map loading command, purely for debugging. + +2.81 Mon Oct 12 20:00:18 CEST 2009 + - display spell description for spellbooks, rods, wands, potion and scrolls, + but not horns (to make them more useful for content-creators). + - fix a number of bugs in check_move_on: 1) it didn't update the flags + 2) it skipped spell effects and 3) it didn't handle the case where + and object was destroyed while iterating over it correctly. all this + allowed players to sometimes walk onto spaces they should not be able to + walk on. + - fix an exploit where inscription/marking runes could execute arbitrary code. + - examining an object now dumps the serialised object form when the user + is a wizard (wizlook). + - altars no longer accept unpaid items. + - party spells didn't work all that well. + - added complex object matching framework (cf::match), and make altars + and pedestals use it. + - identified skill-tools show what skill they grant. + - display the duration of change_ability spells when examining them + (missing: protection spells, but they are a hack...). + - improve effectiveness of special foods created by woodsman skill, + adding more variety to the different mushrooms. + - fix a minor cfpod formatting bug. + - do not talk about the hintmode so much - die-hards are expected to find + the hintmode setting on the settings page. + - IPO no longer lies about prices; prices tweaked. + - clarified that all deliantra-specific parts are under the Affero GPL. + - enable the object loader to also dump archetypes. + - (maps) fix guild teleporters to Pupland Terminal. + - (maps) put the trapdoor above the floor in sisters/necro_ruins1. + - force the initial face when loading an object that is time-animated + or a monster, so it does not have to be specified anymore. + - fix a bug where recasting an ability changing spell could shorten + its remaining duration. + - fix pedestal and floor building with builder. + - fix RUNATT attack mode, which was broken before (used e.g. by mice). + - fix a broken bow-related speed optimisation by using splay - speed + up splay operations as well. + - use NDI_CLEAR for the body command, and make it use observe. + - implement introspection data for C++ classes (%REFLECT). + - (arch) add name_pl fields and documentation for building materials. + - (maps) random fountains no longer generate permanent stat increases. + - fix transmutation alchemy. + - speed up many frequently-invoked C->perl callbacks. + - added complex object matching framework, to be used in altars and the like. + - switch to YAML::XS from YAML. + +2.80 Tue Sep 15 20:22:31 CEST 2009 + - fix the "screen stays black on login" bug and remove debug instrumentation + that ultimately was not helpful to catch it :) + - split outer_env into outer_env and outer_env_self, and fix + all callers to use either one or the other, as appropriate. This + fixes the (rather fragile) light spell, maybe others. + - fixed an overflow and exploit in the bank/payment code. + - fixed a bug in the jeweler quest and added the 'Tome of Jewelery' + to explain the skill a bit more. + - removed a buggy check for zero attacktype. So that we might find + the real bugs in the archs/maps/objects. + - Fixed enabling torches with lighters. + - (maps) Added Heaven Town region. + - (arch+maps) Fixed & normalized warriors on map + /quests/peterm/CTower/Barracks. + - fix the light spell (and possibly diseases and other lights). + - (arch) The clawing skill didn't have the physical attacktype. + - (maps) make the greenway accessible again - this bug was introduced + a long time ago, and similar cases are still to be found in the maps. + - make the socket_timeout configurable in the code (but not yet for users). + - earth wall health bar is now correct. + +2.79 Tue Jul 28 00:56:36 CEST 2009 + - IO::AIO chaged to using eventfd internally - updated server to not + freeze with IO::AIO anymore due this change. + - avoid a crash when a player tries to apply a lighter. + - allow a spell argument for dimension door. + - move shop item listing and some otherstuff into the info tab. + - avoid crashes when non-players cast party spells. + - fix a crash in get_spell_by_name (for learn_spell). + - added pyromancer class with graphics (by Job Vranish). + - small improvement of the number of potions in shops + (by Job Vranish). + - added a few party spells (by Job Vranish). + - use a common message dynbuf. + - destroying tear down objects will now use the full hp range + for animation and will only destroy/lastframe when hp < 0. + - allow monsters to use earth to dust. + - use manhattan distance for get_rangevector_from_mapcoord, just as + in get_rangevector. + - los updates now correctly take tiled maps into account. + - do los updates even on maps without darkness. + - fixed quiver of holding bolts to be able to hold bolts. + - upgrade to IO::AIO 3.21. + - fixed show invisible, to show objects of type CONTAINER. + - properly catching exceptions from callback in irc.ext. + - fixed a potentially hazardous bug in cfpod regarding Z<>. + - (maps) fixed npc dialog in /pup_land/nurnberg/reception/reception. + - (arch) added hint about usage to Slag Ex. + - (maps) /darcap/quest/water sea1 tile are now passable by players, + like the rest. + - (maps) added /heaven/gem_shop by Boes. + - (arch+maps) added rate limited converter and adjusted + /elmex/mana_fountain. + - store arrow->slaying in custom_name, to get rid of the spellarg slot. + - reduce size of casting_time, move_status, attack_movement, + last_heal and last_sp slots, squeezing some more space out of struct + object, also declare expmul as constant 1.0, as it isn't used + anywhere. + +2.78 Sun Apr 5 20:04:29 CEST 2009 + - fixed bug in alchemy, where finding the right object for enhancements + didn't work. + - aggressively merge spell effects and do not allow more than 5 spell + effects (w.r.t. put_more) per mapspace, to give the server a chance + to survive a hundred deathsheads. + - correctly clear op->env when inserting onto map, this was a potentially + disastrous bug of unfortunately unknown proportions... + - fix cone-spell symmetry that was broken for direction 8. + - use gender-neutral place descriptions for invite. + - (arch) new faces for alchemist class, wizard class and quetzalcoatl race. + Thanks go to Lisa Larsen! + - remove support for colour reducing 32x32 images (no cfclient support + anymore). + - actually mention the literacy level when it is too low to learn the spell. + - use better dependency tracking for include/keyword.h. + - add accept-invitation and suicide to the list of asynchronous commands, + so it is possible to invite somebody out of some stck-till-death traps, + or simply to commit suicide. + - replace the "ignoring delayed commands" message by something more useful + (cf. cunning gnome freezeing issue). + - various fixes for weapon improvements. + - fixed small bug with handling connect errors in the IRC gateway. + - support T and G sequences in cfpod. + +2.77 Sun Feb 1 16:30:48 CET 2009 + - convert me command from per-map to chat, which makes more sense, also + document it. + - more than one spellbooks of same class can now be given + in class selection. + - adjusted the starting_spell.trs treasure list to the recent + spell rebalancements. + - the IRC gateway filters IRC colors now. + +2.76 Sat Jan 17 08:36:51 CET 2009 + - (arch) fix quiver of Holding Bolts. + - applying unpaid items will now examine them. + - add "What" column to body command, showing items in that slot. + - redesigned and rebalanced lamps and torches. + - add "..." to item names that have been shortened. + - fixed "assign" function that squeezes strings into fixed length. + - add cursed effect to lamps and (some) torches. + - fixed bad assigned crafting skills and their tools. + +2.75 Fri Jan 9 16:13:30 CET 2009 + - rebalanced lighting w.r.t. outdoor, darkness and see_in_dark. + - fix a bug in the nimbus extension that allowed players to cheat. + - make monster smell logic dependent on their wisdom stat. + - put the death reason into a separate tab. + - converted "connected" slot to string, cleanly got rid of some ugly + hacks such as the path_attuned hack. + - introduce shstr_tmp for fast temporary shstr passing. + - replace one-at-a-time hash by faster than smaller FNV-1a hash + when hashing strings. + - sanitized alchemy-like skills and cauldrons to check earlier + whether the right cauldron is used. + - considerably optimise shared string implementation by + making its null value a compiletime constant. + - use shared string matching insteafd of strcmp in a lot of places, + as well as using shstr_cmp to pass shared stringsa round efficiently, + for lots of code size savings. + - monsters which breed new monsters shouldn't breed new monsters when + they are sleeping: generators now check for the sleeping flag. + - tell gcc not to excessively inline some perl interface functions. + - remove marking rune length limit. + - fix formatting of cfpod when a verbatim block was following + a single newline. + - move resistances, statistics and showpets command output into tabs. + - implement map scripts that can replace the boulder logic without + having to write extensions. + +2.74 Mon Dec 29 15:23:38 CET 2008 + - fix a longstanding bug that teared multipart monsters + at map boundaries apart. + - temporarily make permanently invisible player visible when + he/she makes noise. + - fix being able to see through walls a bit. + - improve look at output. + - completely replaced the line of sight algorithm with a variant + of spiral fov capable of visibility grades and arbitrary + shadow angles, that uses less memory and less code. + - the new los code supports arbitrary map rectangles and loosens + other restrictions of the old code, supporting further optimisations. + - update los if blocksview-objects are inserted in a map, not just when + removed (e.g. for summon fog). + - permanent invisibility doesn't make immune against making noise: + implement a noise system that allows monsters to locate the player + when he/she makes noise. + - implement a primitive smell system that monsters can use to track + players. + - create bomb now also works when casted by door traps. + - (arch) new torch graphics. + - (maps) considerably soften the subway spider. + - (maps) made the portgate of navar safe ground, to protect + the guards from being killed by players. + - (maps) lots of tweaks in and around scorn. + - (maps) use special non-blocksview jungle, mountain and + darkforest freely on the worldmap, to get gradual sight obstacles + instead of total blackout in those areas. + - no maximum darkness for outdoor maps anymore. + - add more hints, fix some messages. + - fix a bug: firing rods should tell you something about them. + - make light additive even within players. + - darken xrays effect a bit. + - improve handling of los changes when inserting or removing + objects, not perfect yet. + - make map darkness signed (formerly unsigned) to allow + ambient lighting and centrally manage darkness as an offset. + - revamped, fixed and documented the server calendrics, also + tell users the current time and data, to improve awareness. + - implement proper wizlook flag and handling of wizlook, instead + of dumbly just clearing los once. + - speed up los code - it's now about 2-3 times as fast as the old one, + and has a smaller runtime variance. + - daylight/nightfall can now increase/decrease past the natural limit, + making them actually useful. + - see_in_dark now increases the viewing radius by 3. + - implement a fast tiled map iterator and use it in LOS for a 20% + speedup, as well as in many other places. + - remove support for extended map infos - these are not used + by the deliantra client and removing them gives us a 10% speedup + when sending map changes. + - remove most gcfclient and other client bug workarounds, as well + as now obsolete protocol versions, simplying the code. + - optimise and simplify generation of random numbers. + - correctly provide a non-zero default density for materials, to + avoid crashes, fix other bugs in the material handling code. + - fix volume calculations. + - fix cfpod parsing when multiple verbatim blocks were separated by + newlines. + - increase monster detection radius from wis/5 to wis/3. + - remove old pickup modes. + - remove obsolete disarm and search commands (search wasn't working + anyways). + - fix a crash when an npc applied a sign. + +2.73 Thu Dec 18 20:56:31 CET 2008 + - this release is assumed to be very stable. + - (maps) radically redesigned and improved tutorial. + - directional casting no longer immediately removes the invisible effect. + - magic ears now trigger when used inside the NPC dialogue. + - fix overflow in lighting calculations. + - negative glow radii can no longer cause total darkness. + - allow lookat on spaces where we only barely see, as opposed to + only maximally-lit ones. + - class selection has been reworked completely and their documentation corrected. + - swashbucklers got the oratory skill now. + - jump skill was fixed to adhere to all the flags a mapspace has got. + - (maps) small fix w.r.t. magic ear in /scorn/houses/wizz.entry + - fix deadlock in Jeweler::improve_ring_by_plan. + - use Coro::SemaphoreSet instead of our own lock management + (which was probably broken, too). + - support negative glow radii during daytime, too. + - use circular, not rectangular, viewing area. + - use minimum viewing distance of 2 in outdoor maps. + - negative glow is stronger than viewing area or lamps. + - (arch) new darkness spell face. + +2.72 Thu Dec 4 22:20:19 CET 2008 + - (maps) completely redesigned scorn. + - "cast light" now works on oneself. + - bump max light radius to 9, rewrote glow lighting calculations, fix + negative glow radii again (they were totally broken before). + - the "worldmaps sometimes are black" bug is finally fixed. + - the "player objects are referenced in _GENxx globals" bug has finally + been fixed, by not relying on buggy perl internals when serialising. + - fixed a long standing bug in the anvil converters in armour shops. + - items shops weren't interested in don't vanish anymore, and are given + back to the player. + - attuned/repell and spell base level system reworked. + - rewrote skill cache (last_skill_ob) system and usage - might + be less erratic now. + - refuse to write the uuid file if the uuid is zero + (to avoid writing it in early crashes). + - pathsync the directory after saving a file for added slowdown^Wsafety. + - speed up emergency_save by not syncing every file separately. + - no longer reattach perl to every object on reload, it's slow, and no longer + necessary since we don't nuke stashes anymore. + - do not bootstrap perl from the commandline args, use separate eval for + better error reporting. + - fix a crash when pushing cone spells met ice attacks. + - pre-cache perl extension files on reload to speed up the reload. + - speed up map refresh in server a bit. + - refactored drop code and fixed some programming errors in it. + - fixed small regression in 'Slag Ex' potion extension. + - fixed a bug where some objects couldn't cross map tile boundaries. + - fixed a bug with weight update of the player, the client showed -0.0 + as the current weight of the inventory. + - (arch) the dragonbreath spell is level 12 again, but the high level spell + dragonfire has been introduced for the non-dragon players. + - remove unused "tooltype", "start_holding" object slots. + - change "weapontype" object slot to uint8. + - convert "hide" object slot into flag. + - reorder object members for better locality of reference and codesize + decrease. + - correct rounding in lerp, add lerp_rd, lerp_ru. + - fix a crash when no skill could be found when killing amonster. + - fix a small memleak that would eat one pointer on the perl stack for + every completed aio operation. + - perl mapspace acessor methods now normalise (handle tiled maps) + and update mapspaces if necessary. + +2.71 Tue Sep 23 07:02:23 CEST 2008 + - removed all command line parsing, only env variables are supported + anymore. + - region-specific monsters will now once more be on the worldmap. + - fix a disastrous "memleak" where temporary memory allocations + would grow out of bounds. + - server now writes a pidfile and makes sure its alter ego is killed. + - fixed a double-escaping bug in the pod-parser. + - rewrote the cfpod parser in C++. + - hintmode moved to C++, players need to re-set their hintmode if + they dislike "show". + - fix RIP inscription. + - bump login name length from 18 to 20 char max. + - correctly support gender in emotes. + - correctly support gender in the death messages. + - correctly generate death messages for players only when they really die, + with increased information. + - fix a bug in the dynbuf code that could potentially lead to crashes + and data corruption (but apparently was never triggered). + - close the $ENV{LOCKUTIL_LOCK_FD} fd if in the env, for lockutil. + - make sure Compress::LZF acquires the storable lock, might fix some + data corruption bug. + - tweak coredumping/monitoring a bit. + - completely redid server initialisation to hopefully avoid rare races. + - do not crash in the loader when an inventory object could not be loaded + (from a corrupted file). + - redid skills command to send output to proper channel. + - object->map is no longer refcounting. + - add FLAG_DEBUG for internal debugging. + - add NDI_VERBATIM flag to send_msg. + - add perl backtraces to logBacktrace-initiated backtraces. + - player->exists is no longer a sync_job. + - split login.ext's player scheduler into + it's own player-scheduler.ext extension. + +2.7 Sun Sep 7 16:32:03 CEST 2008 + - require perl 5.10. + - make nrof signed, so that code that checks for underflow actually works. + - swap player and observed count's on the map when observing. + - add (mostly untested) mapspace perl class and accessors. + - re-"calibrate" value/weight autopickup to be silver/kg >= pickup*100. + - fix a crash in cast_bless (restoration et al.) when no target + could be found. + - pits now have a configurable "random spread" range and default + to a radius of two now. + - rewrite pay_player_arch. + - use a more stable perl_reload implementation. + - do not use Symbol::delete_package (causes crashes after perl-reload), + use our own, safer, clear_package instead. + - when asynchronously dumping core, close all file handles to allow + the server to restart concurrently. + - improve the cfpod parser to generate proper xml from proper cfpod + sequences, without double-encoding. it should be faster, too. + - the above fixes wrong display of help tetx and many other issues. + - use lzf and frag packets for large messages for clients supporting them + (0.9976+), use it for long books and other messages. + - eradicate listen command and corresponding code. + - eradicate logs command. + - let the client log into the server log, used for crash backtraces. + - fixed rods/wands/etc. with randomitem spells on maps, but broke + old style spell objects with the spell magic bullet. + - (arch) fixed skill less rods in the archetypes + +2.61 Sun Aug 3 17:59:50 CEST 2008 + - made jeweler workbench larger and some other minor map + changes in jeweler town. + - fixed wrong item handling in jeweler skill code. + - (arch) use a special "key_random_map" for random map keys + that are used up. + - fix a crash when the player who was observed has logged out long + enough for his region/map to be gone. + - port to g++-4.3's incompatible tr1 changes. + - add some missing dependencies. + - log to /var/log/deliantra/ by default. + - hack observe code to enable smooth movmenet when observing. + +2.6 Sun Jul 20 18:58:08 CEST 2008 + - (maps) extension of the jeweler quest/skill/town + - correctly move gsay to the party channel. + - fix a crash when animate weapon was used in some areas. + - fixed unnecessary identification of by converters created objects. + - (maps) tutorial now contains clues about chatting and talking + with NPCs. + - (arch) dragon scales got proper type now + - object::decrease would sometimes cause container weights to + be wrong, this has been fixed. + - do not send time updates for newly-seen items. + - thawing an icecube will once more drop its contents to the ground. + - fix cone spells etc. going through walls sometimes. + - fix a weight update bug that sometimes left containers + with wrong weights. + - added auto_apply event and extension for shop tiles. + - work around get_map_flags invoking perl and switching the stack. + - make sure the map is loaded when using a town portal return. + - fixed a bug with caching of sp/grace/food points for spells + where healing spells didn't cost any grace. + - fix starvation kill reason. + - fix pk killer name message. + - don't let people apply signs with @match. + - add support for berkeley db 4.7 (the new BDB module also fixes + what seems to be the biggets memleak in the server). + +2.56 Wed Jun 4 10:50:40 CEST 2008 + - require Coro 4.73 which contains an important performance-bugfix. + - use anyevent to manage listen ports (this enables IPv6 support). + - server supports ipv6 client connections now. + - use newly-available Coro::AnyEvent. + - get rid of the AnyEvent::AIO watcher, start the event thread earlier + to let it handle AIO requests. + +2.55 Sat May 24 19:52:52 CEST 2008 + - avoid newmap commands when crossing tiled map boundaries. this speeds up + processing considerably (especially in the client) and reduces data transfers + (saves roughly 1kb each crossing in typical configs). works even with gcfclient. + - (arch) fix typo in ixalovh treasurelist causing empty_archetypes to appear. + - (map) fixed npc dialogue in pup_land/s_f/special. + - bugfix: fix a crash when a player casts a swarm spell and then logs out + (swarm spells now stay in the player's inventory). + - bugfix: when unapplying skills also remove them from the range/combat slots. + - bugfix: do not merge items whose archetype name merges, use the + archetype *archname* (chairs of different facings were merged). + - bugfix: fix a potential crash issue in find_object_name (not used + normally). + - bugfix: locked doors cannot be bashed down by magical means + (destruction, magic missile etc.). + - swarm spells without a direction now use various spiral patterns + instead of being fully random. + - update AnyEvent API to 3.4 and above. 2.54 Thu May 8 22:01:22 CEST 2008 - change floorbox item ordering to enable more efficient protocol and to @@ -27,7 +1113,7 @@ - bugfix: the random map generator no longer leaks key objects. - bugfix: support random maps >127x127. - (maps) fixed the death certificate system in nimbus. - - (maps( rebalance onefang, build a road to onefang, temporarily closed zorn. + - (maps) rebalance onefang, build a road to onefang, temporarily closed zorn. - (arch) the material 'wood' was undefined, it's now a burnable material. - (arch) give ball lightning a real name. - (arch) fixed material of bones (was 'wood', is now 'bone') @@ -94,7 +1180,7 @@ - refactored the object remove/insert functions and most related functions (decrease, split, merge_ob etc.). - make it compile better on freebsd (reported by pippijn). - - remove GT_UPDATE_INV (no longer applicable). + - removed GT_UPDATE_INV (no longer applicable). - fix the longstanding "container stays open" bug. - improved floorbox updating to be incremental and other protocol optimisations. @@ -108,7 +1194,6 @@ - support perls not compiled with 64 bit support (though this is not a recommended configuration) (reported by Samuel Gondouin). - always put godgiven items into the player inventory, never any containers. - - (arch) - (maps, arch) the scorn go club was founded! - (arch) do no longer support player abilities, they didn't work anyways. - (arch) the alchemy spell is now of the alchemy spell school, which @@ -183,7 +1268,7 @@ - convert cfutil from Event to EV (forgot to do this earlier...). - move tombstone to real map if player died due to cave-in (even if it has reset, which is better than putting it on the savebed, also as - proof that the palyer didn't use a savebed). + proof that the player didn't use a savebed). 2.4 Sun Jan 13 13:41:29 CET 2008 - work around perl bug in configure perl module version check. @@ -387,3 +1472,4 @@ - removed most all of the weather code - unified logging to stderr and file - too many minor changes to document +