--- deliantra/server/Changes 2009/11/10 00:01:31 1.503 +++ deliantra/server/Changes 2010/03/20 16:30:23 1.576 @@ -5,26 +5,160 @@ TODO: it is possible to inventory-lock items on the floor, and *spomehow* possible to drop them. TODO: think about naking the rhyzian amulet useful - makes little sense in deliantra? TODO: cast invisible... +TODO: build code marks all sorts of objects as unique -TODO: investigate why take takes so extremely long +TODO: 2009-11-29 12:48:48.3974 /opt/crossfire/share/crossfire/treasures:5729, "arch stonebig_club": treasure references unknown archetype +TODO: 2009-11-09 02:36:57.7199 unable to resolve postponed arch reference to 'Hanuk' +TODO: summon cult does not properly create multipart monsters? +TODO: kill flag_is_water/is_water +2010-01-16 20:39:27.1222 BUG: process_events(): Object {cnt:2127760,uuid:<1.7241a5bd1>,name:"throwing dagger",flags:[17,24],type:48}(on /brest/ludo2@8+2) has no speed (-0.033333), but is on active list + +{ + "dungeon_depth" : "3", + "dungeon_level" : "8", + "exitstyle" : "sstair", + "final_map" : "/quests/peterm/quests/ogre_chief", + "floorstyle" : "stones2", + "layoutstyle" : "maze", + "monsterstyle" : "humanoid", + "orientation" : "1", + "origin_map" : "/world/world_106_115", + "origin_x" : 9, + "origin_y" : 18, + "random_seed" : 623236402, + "region" : "highway", + "symmetry" : 1, + "wallstyle" : "earthen", + "xsize" : 29, + "ysize" : 19 +} + +TODO: removing a single map tag from one map kills the tag on other maps as well, apparently +TODO: savebed_map {link} bed_x 1 bed_y 4, player changer? +TODO: freed objects cache instead of salloc/sfree + + - (maps) the mana fountain has now a ratelimit, 30 potions per hour. + - (maps) added (navar) gravedigger, that buys players gravestones. + - made (wizard) look_at show also uuids. + - added cf::object::find_object_uuid (::find_object already exists!). + - (maps) added new apartment, made by LinuxLemoner. + - (arch) added sounds: zombie death, book reading, inscription. + - (arch) made the hill giants loose more body parts. + - 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. + - improve editor support protoocl slightly, provide workarounds for 2.10 + clients. + - 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. + +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 >40% by avoiding - the costly flasg-checking loop in most cases. + - 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. @@ -34,6 +168,32 @@ 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. + - 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