--- deliantra/server/Changes 2010/07/03 13:14:35 1.744 +++ deliantra/server/Changes 2018/04/25 04:58:46 1.859 @@ -2,6 +2,7 @@ Version numbers sort like decimal numbers. +TODO: trap disarming/finding very little/constant experience? TODO: golem survives "longer" now - too long? TODO: clean up skill handling in kill_object. TODO: mining experience @@ -17,7 +18,69 @@ TOOD: apply should only apply one stack items TODO: fixed random maps, e.g. for buildings -TODO: uncurse rogue npc +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: the motd command is missin +TODO: cast create missile's argument should be documented and should work for bolts as well, example: + if I use 'cast create missile bolt, it would create bolts (+4) and if I use + 'cast create missile bolt Fire, it would create bolts of Fire. 'cast create + missile Fire bolt would be invalid. These changes should be reflected in the + spell's description. +TODO: bowmode threewide (and possibly others) might not properly respect movetype + and arrows might end up in places where they shouldn't, e.g. on top of see-through + walls. +TODO: rijk's frontend does not look for .xhtml files when serving static files. +TODO: Allow players to forget spells in the testing server - this makes spell testing and iteration simpler. + + +TODO: cspm spell arg +TODO: freearr_x => DIRX, freearr_x => freear[].x?, check bin size change + + - (maps) remove random worbench under house in darcap, fix exit and add random + reading to dragonslib map, modify zealots house in mlab/tavern.map to remove + illegal mlab access (ephraim). + - last remaining BUG (that showed up in the logs for the last years) has + been fixed: monsters would snatch arrows/thrown_objs out of the air without + stopping them, causing BUG: arrow had no map. Fixed by marking shot arrows, + bolts and thrown objects as NO_PICK temporarily. + - since binutils/gcc/etc. conspired to break static archives, converted the server + binary build into non-recursive Makefiles without static archives. hell, automake + is certainly not ready for non-recursive makes, what a hack :() + - use c++11 headers in preference to tr1 ones. + - fix odr violation: struct point. + - make the code warnigns-clean, for some definition of warnings. + - port to g++ 6. + - implement keep_suffix meta for cfutil, so files keep their extension. + - built-in webserver uses improved content-type detection and uses charset utf-8 + by default. + - do proper etag caching for resources in http server. + - fix webserver 304 response, which contained entity-headers, confusing squid. + - potentially fix a bug where ob->contr is non-null while ob->contr->ob is null, + causing a segfault. + - change DIRX/DIRY macros to take a diretcion as argument, and use them instead of + directly referencing freearr_[xy], as the latter is used alot more often then + DIRX/DIRY, and this allows us to change freearr_[xy]. + +3.1 Wed Nov 16 23:17:11 CET 2016 + - convert to blitz++ 0.10 and later (also requiring c++ 11). + - port to perl 5.18 and newer. + - switch to xz compressed archives as only dist method. + - upgrade to automake 1.15. - (maps) hopefully fix tobias' tower. - (maps) hopefully fix healing potion vendor in arena entrance. - (arch) fixed an error in the Gnarg scale mail artifact. @@ -29,9 +92,26 @@ - 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. @@ -39,6 +119,7 @@ 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, @@ -54,6 +135,129 @@ - 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