ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/deliantra/server/Changes
Revision: 1.525
Committed: Sun Nov 29 16:57:04 2009 UTC (14 years, 5 months ago) by root
Branch: MAIN
Changes since 1.524: +1 -0 lines
Log Message:
*** empty log message ***

File Contents

# User Rev Content
1 root 1.36 Deliantra MORPG Server, Maps and Archetypes ChangeLog.
2 root 1.220 Version numbers sort like decimal numbers.
3 root 1.6
4 root 1.469 TODO: apartment-descritpions for gotisch1/2
5     TODO: it is possible to inventory-lock items on the floor, and *spomehow* possible to drop them.
6 root 1.475 TODO: think about naking the rhyzian amulet useful - makes little sense in deliantra?
7 root 1.479 TODO: cast invisible...
8 root 1.493
9 root 1.525 TODO: 2009-11-29 12:48:48.3974 /opt/crossfire/share/crossfire/treasures:5729, "arch stonebig_club": treasure references unknown archetype
10 root 1.515 - (maps) add gorokh_final mapset from crossfire.
11 root 1.516 - (maps) block most vault-type mlab locations, open up
12     imperial converters for anybody to use.
13 root 1.519 - (maps, arch) replace all permanent stat potions by random
14     variants.
15 root 1.520 - (maps) spread gorokh demon styles more evenly over 1..100.
16 root 1.494 - TRIGGER events got passed a garbage pointer instead of a
17     real player object on player changes.
18 root 1.522 - diseases and maybe other things could sometimes reduce the speed
19     to below MIN_ACTIVE_SPEED, deactivating the monster and causing
20     much grief.
21 root 1.523 - speed_left randomisation was, apparently, totally broken.
22     - introduce FLAG_RANDOM_SPEED instead of using the sign bit
23     of the speed slot internally and in map save files. among other
24     things, this gets rid of all the abs (speed) calls.
25     - reduce map file save files by using abridged keywords aliases.
26 root 1.494 - shop specialisation calculation was totally broken.
27 root 1.495 - nrof/itemcount/volume limits when dropping to the floor are
28     now enforced.
29 root 1.498 - fix magic mapping, which only worked for inate spell casting.
30 root 1.495 - godgiven items will now be explicitly described as such.
31 root 1.524 - (arch) dded a quiver of bolts.
32 root 1.504 - materialnames would change "randomly" on every load, only
33     set the material when the materialname was not set before.
34 root 1.497 - balancing change, halve rod recharge speed (instead
35     of 4.8s, the standard rods now recharge in ~10s. not a solution,
36     but still.
37 root 1.510 - reduce cpu time used for map saving by >>50% by avoiding
38 root 1.509 the costly flag-checking loop in most cases and using a simple
39     repeat-cache for speed_left.
40 root 1.507 - always delay stats update for players on insert/remove till
41     next tick/command, which saves a lot of cpu cycles on drop/take.
42 root 1.514 - add hint about havign to run to attach unaggressive npcs.
43 root 1.494 - pet monster level was not displayed correctly in "showpets index".
44     - clean up floating point conversions and many similar nitpicks.
45 root 1.502 - fix hanuk altar.
46 root 1.504 - overhaul material system to be much faster, and having less bugs, but
47     still having a lot of cruft :/.
48 root 1.502 - add marble shop floor.
49 root 1.494 - move gcc specifics to new file include/compiler.h.
50     - unrecognised cfpod directives could cause undefined behaviour.
51 root 1.505 - added boes' marble shop to steinwandstadt.
52 root 1.495 - pad mapspace to power-of two size for speed/codesize/cache gains.
53     - optimise mapspace updates.
54     - cache volume/items per mapspace.
55 root 1.494 - use fabs, min and max consistently (surprisingly for a code size
56     decrease).
57 elmex 1.500 - fixed a small uncleanlieness in item converters, which might
58     have led to weird item multiplications.
59 root 1.503 - store hash value in shstr, not used by anything, but doesn't use much memory.
60 elmex 1.501 - fixed crash bug in learn_spell command.
61 root 1.507 - remove all traces of FLAG_NO_FIX_PLAYER.
62 root 1.510 - avoid sv_derived_from calls (lots of hash lookups) when converting
63     from perl to c++.
64 root 1.506 - implemented least_significand_bit and for_all_bits_sparse_32 utilities
65     and use it in some "inner" loops.
66 root 1.508 - rename flags to attachable_flags to avoid confusion :=).
67 elmex 1.511 - fixed jeweler experience output to not be floating point.
68 elmex 1.512 - added lock/unlock commands, thanks for the patch go to Shawn Robinson!
69 root 1.513 - (arch, maps) introduce inactive_shop_floor and fix some shops with it.
70 root 1.518 - try to prefetch memory inside process_objects, which can give
71     enourmous speed gains.
72     - make some small optimisation to the process_objects loop.
73 root 1.513 - move facedata chksum calculation into cfutil, make server more flexible
74     handling different chksum lengths.
75     - check for hash collisions in cfutil.
76     - reduce face checksum size from 6 to 4 bytes.
77 root 1.517 - don't crash when a map uses empty sound/sound_destroy/face.
78 root 1.523 - removed weather-specific attributes.
79     - fixed genkeywords dependency.
80     - do not clear "randomitems" slot for world underlays.
81     - use "sl" as short-hand for speed_left in save-files, just to make them
82     smaller.
83 root 1.517 - in general, don't crash on value-less resource file lines
84     anymore, due to get_str never returning a 0-pointer.
85 elmex 1.521 - code cleanup in move_symptom.
86 root 1.494
87 root 1.493 2.90 Sat Nov 7 15:06:06 CET 2009
88 root 1.481 - some Andrew Madloch wanted, despite being specifically told
89     multiple times that the Deliantra parts additions are under AGPL,
90 root 1.487 lock up the source code of the server within his company.
91 root 1.481 some reorganisations have been done to the sourcecode to make
92     it clearer that this violates the Affero GPL. Help to keep
93     Deliantra free software even for the coming generations
94     and be wary of the promises of Andrew Madloch, he has nothing
95 root 1.487 good in mind for free software.
96 root 1.480 - clarify which files of the server are 100% AGPL.
97 root 1.481 - minor reorganisation, move some GPL code into other files.
98 root 1.483 - implement viewpoint (which is like observe, but only for the map,
99     not stats etc.).
100 root 1.484 - replace magic mapping overlay by a flying bird exposing area
101     on the worldmap (ext/magic_mapping.ext).
102 root 1.485 - @find in npc dialog was useless as the vairbale wasn't accessible.
103     - @find results in npc dialogue is now stored in $find.
104 root 1.458 - (maps) add lostwages and lorak (valdor/varsia) from cfextended.
105 root 1.454 - (maps, server) add lostwages and celvear apartments to rent system.
106 root 1.455 - (maps) closed guild houses, this is not scalable, ask your friendly
107     dm instead.
108 root 1.456 - (maps) add town portal to celvear.
109 root 1.473 - (maps, arch) add troll canyon, pygmy forest, elven moon and temple of justice
110     mapsets from crossfire, together with associated archetypes.
111 root 1.457 - (maps) add extended region descriptions for some regions from crossfire.
112     - (maps) define a new whalingoutpost region.
113 root 1.467 - (maps, arch) add all changes to mlab between 2006-08-01 and 2009-10-28,
114     and most archetypes that go with them (without stoning and swallow effects),
115     casino tokens and stock certificates are also missing.
116 root 1.476 - (maps, arch) add a number of minor maps from crossfire to scorn, navar
117     and santo dominion.
118 root 1.468 - (maps, arch) added gotischerbereich from cfextended, and some archetypes
119     to go with them. also adjusted archetypes to be more korrekt "gotisch".
120 root 1.487 - doors/containers can now use "match ..." expressions for the slaying field.
121 root 1.460 - properly close client-side dialogue when the player is teleported away.
122 root 1.459 - map-tags did not properly close it's database tables or wait
123     for a quiescent state, causing memory corruption on reload.
124 root 1.454 - support "stat.xyz" accessor in match expressions.
125 root 1.453 - skip /styles and /editor directories in cf::map::static_maps.
126 root 1.462 - implement ->send_big_packet and use it in ext_msg (among other things, this
127     fixes long answers from npc dialogue).
128 root 1.461 - connected magic mouths no longer spill to Log-1, but use the examine tab.
129 root 1.464 - (arch) change marker archetypes to not remove "marker" forces anymore
130     and to not add a "put your code here" force needlessly.
131 root 1.463 - (arch) fix or improve many plurals.
132 root 1.465 - markers do no longer add a force if the slaying field is unset.
133 root 1.466 - sped up search-items implementation, but it's still horrible.
134 root 1.468 - (maps) bigchests are now properly non-unique, per_player and no_reset.
135 root 1.478 - editor_folder can now be used to override whatever cfutil sets, and was
136     used to reogianise the illogical arch tree a bit.
137 root 1.479 - (maps) import most map names from crossfire.
138 root 1.482 - nuke image_sums/image_info subcommands from the protocol.
139 root 1.483 - fly_high movement gives better los, ignoring blocksview.
140 root 1.488 - the addexp command should now honour skill names with spaces.
141 root 1.489 - (arch) add nuke from cfextended to avoid a crash.
142 root 1.491 - (arch) added many more buildable marble floors.
143 root 1.490 - major namespace cleanup: save 45kb by making functions static
144     that were unnecessarily global.
145 root 1.452
146 root 1.451 2.82 Sat Oct 24 03:50:17 CEST 2009
147 root 1.436 - fixed a classical and exploitable stack buffer overflow in the gsay command.
148 root 1.451 - fix a memory buffer overflow in the book code.
149 root 1.429 - add @check, @find npc dialogue commands.
150     - (maps) add a number of town interiors.
151 root 1.445 - (maps) add tindervale the fireborn capitol from cfextended.
152 root 1.451 - (maps) add celvear area from cfextended.
153 sf-marcmagus 1.432 - (server,arch) add a number of inscribables, show their capacity in hint.
154     - (server,maps) fix bug causing some library books not to be chained down,
155     cause Scorn/Navar libraries not to have inscribable books.
156 root 1.437 - (maps) fix bug causing the Greyshield and Greysword to have
157 sf-marcmagus 1.433 inappropriate item power.
158 root 1.448 - (maps) fix intwell balancing issue.
159 root 1.437 - improve the look of generated books.
160 sf-marcmagus 1.438 - make slag no_drop so it can't be dropped from the cauldron.
161     - fix bug where players could bypass no_drop by putting items in containers.
162 root 1.430 - consecutive commands arriving at the same time in the server would be
163     corrupted if the length was >255.
164 root 1.440 - support sub-matches in () inside match expressions, not just conditions.
165 root 1.435 - got rid of motd/rules/news code in C++ part, move motd to it's own tab
166     and perl.
167 root 1.442 - implemented new "match" type that combines both check_inv and pedestal
168     functionality (and more) inside the same object using the match expressions.
169     - create simpler match expression compiles in many common cases.
170 root 1.439 - reduce object size by removing obsolete "seen_by" member.
171 root 1.440 - removed the rather broken make_list_like utility function, taking advantage
172     of the new dynbuf::splice function (which gave an unexpected net win
173     in code size...).
174 root 1.442 - the server will no longer complain (and subtly fail) when an object
175     being removed from a map causes another object to get removed.
176 root 1.441 - banish strncpy from the server, speed up and simplify sending item
177     descriptions to the client considerably.
178 root 1.442 - add new "in head" set modifier for matches.
179     - new BLOCKED_MOVE event added.
180     - mapscript archetype now has activate_on_xxx true by default, as similar
181     connected elements.
182 root 1.448 - (maps) imported all styles from cfextended except
183 root 1.444 floorstyles/land_plots and monsterstyles.
184 root 1.448 - (arch) imported gem treasurelists and archetypes from cfextended.
185 root 1.446 - don't crash when treasure lists are empty / supply new empty
186     treasurelist for randomitems when none can be found.
187     - implement cf::map::static_maps and use it in map-tags.ext.
188 root 1.449 - fix a bug in map-tag scanning when moving tags.
189 root 1.446 - (deliantra.net) improve watchdog to now check both listening ports
190     for a reaction.
191 root 1.447 - implement new "loadall" map loading command, purely for debugging.
192 root 1.429
193 root 1.428 2.81 Mon Oct 12 20:00:18 CEST 2009
194 root 1.396 - display spell description for spellbooks, rods, wands, potion and scrolls,
195     but not horns (to make them more useful for content-creators).
196 root 1.408 - fix a number of bugs in check_move_on: 1) it didn't update the flags
197     2) it skipped spell effects and 3) it didn't handle the case where
198     and object was destroyed while iterating over it correctly. all this
199     allowed players to sometimes walk onto spaces they should not be able to
200     walk on.
201 sf-marcmagus 1.418 - fix an exploit where inscription/marking runes could execute arbitrary code.
202 root 1.399 - examining an object now dumps the serialised object form when the user
203 root 1.404 is a wizard (wizlook).
204 root 1.421 - altars no longer accept unpaid items.
205 root 1.411 - party spells didn't work all that well.
206 root 1.424 - added complex object matching framework (cf::match), and make altars
207     and pedestals use it.
208 root 1.425 - identified skill-tools show what skill they grant.
209 root 1.399 - display the duration of change_ability spells when examining them
210     (missing: protection spells, but they are a hack...).
211 sf-marcmagus 1.420 - improve effectiveness of special foods created by woodsman skill,
212     adding more variety to the different mushrooms.
213 root 1.398 - fix a minor cfpod formatting bug.
214 root 1.399 - do not talk about the hintmode so much - die-hards are expected to find
215     the hintmode setting on the settings page.
216 sf-marcmagus 1.422 - IPO no longer lies about prices; prices tweaked.
217 root 1.427 - clarified that all deliantra-specific parts are under the Affero GPL.
218 root 1.399 - enable the object loader to also dump archetypes.
219 sf-marcmagus 1.414 - (maps) fix guild teleporters to Pupland Terminal.
220 root 1.400 - (maps) put the trapdoor above the floor in sisters/necro_ruins1.
221 root 1.402 - force the initial face when loading an object that is time-animated
222     or a monster, so it does not have to be specified anymore.
223 root 1.403 - fix a bug where recasting an ability changing spell could shorten
224     its remaining duration.
225 sf-marcmagus 1.416 - fix pedestal and floor building with builder.
226 root 1.405 - fix RUNATT attack mode, which was broken before (used e.g. by mice).
227 root 1.407 - fix a broken bow-related speed optimisation by using splay - speed
228     up splay operations as well.
229 root 1.409 - use NDI_CLEAR for the body command, and make it use observe.
230 root 1.412 - implement introspection data for C++ classes (%REFLECT).
231 sf-marcmagus 1.418 - (arch) add name_pl fields and documentation for building materials.
232 root 1.415 - (maps) random fountains no longer generate permanent stat increases.
233 root 1.419 - fix transmutation alchemy.
234 root 1.424 - speed up many frequently-invoked C->perl callbacks.
235 root 1.419 - added complex object matching framework, to be used in altars and the like.
236 root 1.426 - switch to YAML::XS from YAML.
237 root 1.396
238 root 1.395 2.80 Tue Sep 15 20:22:31 CEST 2009
239 root 1.392 - fix the "screen stays black on login" bug and remove debug instrumentation
240     that ultimately was not helpful to catch it :)
241 root 1.389 - split outer_env into outer_env and outer_env_self, and fix
242     all callers to use either one or the other, as appropriate. This
243     fixes the (rather fragile) light spell, maybe others.
244     - fixed an overflow and exploit in the bank/payment code.
245     - fixed a bug in the jeweler quest and added the 'Tome of Jewelery'
246 elmex 1.384 to explain the skill a bit more.
247 root 1.389 - removed a buggy check for zero attacktype. So that we might find
248 elmex 1.388 the real bugs in the archs/maps/objects.
249 elmex 1.394 - Fixed enabling torches with lighters.
250 elmex 1.387 - (maps) Added Heaven Town region.
251     - (arch+maps) Fixed & normalized warriors on map
252     /quests/peterm/CTower/Barracks.
253 root 1.392 - fix the light spell (and possibly diseases and other lights).
254 elmex 1.388 - (arch) The clawing skill didn't have the physical attacktype.
255 root 1.392 - (maps) make the greenway accessible again - this bug was introduced
256     a long time ago, and similar cases are still to be found in the maps.
257     - make the socket_timeout configurable in the code (but not yet for users).
258 root 1.393 - earth wall health bar is now correct.
259 elmex 1.384
260 root 1.382 2.79 Tue Jul 28 00:56:36 CEST 2009
261 root 1.381 - IO::AIO chaged to using eventfd internally - updated server to not
262     freeze with IO::AIO anymore due this change.
263 root 1.364 - avoid a crash when a player tries to apply a lighter.
264 root 1.376 - allow a spell argument for dimension door.
265 root 1.362 - move shop item listing and some otherstuff into the info tab.
266 root 1.360 - avoid crashes when non-players cast party spells.
267 root 1.358 - fix a crash in get_spell_by_name (for learn_spell).
268 elmex 1.359 - added pyromancer class with graphics (by Job Vranish).
269     - small improvement of the number of potions in shops
270     (by Job Vranish).
271     - added a few party spells (by Job Vranish).
272 root 1.362 - use a common message dynbuf.
273 root 1.364 - destroying tear down objects will now use the full hp range
274     for animation and will only destroy/lastframe when hp < 0.
275     - allow monsters to use earth to dust.
276     - use manhattan distance for get_rangevector_from_mapcoord, just as
277     in get_rangevector.
278     - los updates now correctly take tiled maps into account.
279     - do los updates even on maps without darkness.
280 elmex 1.365 - fixed quiver of holding bolts to be able to hold bolts.
281 root 1.375 - upgrade to IO::AIO 3.21.
282 elmex 1.366 - fixed show invisible, to show objects of type CONTAINER.
283 elmex 1.373 - properly catching exceptions from callback in irc.ext.
284 root 1.377 - fixed a potentially hazardous bug in cfpod regarding Z<>.
285 elmex 1.370 - (maps) fixed npc dialog in /pup_land/nurnberg/reception/reception.
286 elmex 1.368 - (arch) added hint about usage to Slag Ex.
287 root 1.378 - (maps) /darcap/quest/water sea1 tile are now passable by players,
288     like the rest.
289 elmex 1.371 - (maps) added /heaven/gem_shop by Boes.
290 root 1.378 - (arch+maps) added rate limited converter and adjusted
291     /elmex/mana_fountain.
292     - store arrow->slaying in custom_name, to get rid of the spellarg slot.
293     - reduce size of casting_time, move_status, attack_movement,
294     last_heal and last_sp slots, squeezing some more space out of struct
295 root 1.379 object, also declare expmul as constant 1.0, as it isn't used
296     anywhere.
297 root 1.358
298 root 1.356 2.78 Sun Apr 5 20:04:29 CEST 2009
299     - fixed bug in alchemy, where finding the right object for enhancements
300     didn't work.
301 root 1.350 - aggressively merge spell effects and do not allow more than 5 spell
302     effects (w.r.t. put_more) per mapspace, to give the server a chance
303     to survive a hundred deathsheads.
304 root 1.346 - correctly clear op->env when inserting onto map, this was a potentially
305     disastrous bug of unfortunately unknown proportions...
306 root 1.347 - fix cone-spell symmetry that was broken for direction 8.
307 root 1.343 - use gender-neutral place descriptions for invite.
308 elmex 1.344 - (arch) new faces for alchemist class, wizard class and quetzalcoatl race.
309     Thanks go to Lisa Larsen!
310 root 1.356 - remove support for colour reducing 32x32 images (no cfclient support
311     anymore).
312 root 1.354 - actually mention the literacy level when it is too low to learn the spell.
313 root 1.345 - use better dependency tracking for include/keyword.h.
314 root 1.356 - add accept-invitation and suicide to the list of asynchronous commands,
315     so it is possible to invite somebody out of some stck-till-death traps,
316 root 1.346 or simply to commit suicide.
317 root 1.352 - replace the "ignoring delayed commands" message by something more useful
318     (cf. cunning gnome freezeing issue).
319 elmex 1.349 - various fixes for weapon improvements.
320 elmex 1.351 - fixed small bug with handling connect errors in the IRC gateway.
321 root 1.353 - support T and G sequences in cfpod.
322 root 1.343
323 root 1.341 2.77 Sun Feb 1 16:30:48 CET 2009
324 root 1.339 - convert me command from per-map to chat, which makes more sense, also
325     document it.
326 elmex 1.336 - more than one spellbooks of same class can now be given
327     in class selection.
328 elmex 1.337 - adjusted the starting_spell.trs treasure list to the recent
329     spell rebalancements.
330 elmex 1.338 - the IRC gateway filters IRC colors now.
331 elmex 1.336
332 root 1.335 2.76 Sat Jan 17 08:36:51 CET 2009
333 root 1.331 - (arch) fix quiver of Holding Bolts.
334 root 1.332 - applying unpaid items will now examine them.
335 root 1.330 - add "What" column to body command, showing items in that slot.
336 elmex 1.329 - redesigned and rebalanced lamps and torches.
337 root 1.330 - add "..." to item names that have been shortened.
338     - fixed "assign" function that squeezes strings into fixed length.
339 elmex 1.333 - add cursed effect to lamps and (some) torches.
340 elmex 1.334 - fixed bad assigned crafting skills and their tools.
341 root 1.312
342 root 1.327 2.75 Fri Jan 9 16:13:30 CET 2009
343 root 1.326 - rebalanced lighting w.r.t. outdoor, darkness and see_in_dark.
344 root 1.319 - fix a bug in the nimbus extension that allowed players to cheat.
345 root 1.312 - make monster smell logic dependent on their wisdom stat.
346 root 1.324 - put the death reason into a separate tab.
347     - converted "connected" slot to string, cleanly got rid of some ugly
348     hacks such as the path_attuned hack.
349 root 1.312 - introduce shstr_tmp for fast temporary shstr passing.
350     - replace one-at-a-time hash by faster than smaller FNV-1a hash
351     when hashing strings.
352 root 1.324 - sanitized alchemy-like skills and cauldrons to check earlier
353 elmex 1.320 whether the right cauldron is used.
354 root 1.313 - considerably optimise shared string implementation by
355 root 1.316 making its null value a compiletime constant.
356 root 1.314 - use shared string matching insteafd of strcmp in a lot of places,
357     as well as using shstr_cmp to pass shared stringsa round efficiently,
358     for lots of code size savings.
359 elmex 1.315 - monsters which breed new monsters shouldn't breed new monsters when
360     they are sleeping: generators now check for the sleeping flag.
361 root 1.318 - tell gcc not to excessively inline some perl interface functions.
362 root 1.322 - remove marking rune length limit.
363 root 1.323 - fix formatting of cfpod when a verbatim block was following
364     a single newline.
365     - move resistances, statistics and showpets command output into tabs.
366 root 1.326 - implement map scripts that can replace the boulder logic without
367     having to write extensions.
368 root 1.310
369 root 1.309 2.74 Mon Dec 29 15:23:38 CET 2008
370 root 1.302 - fix a longstanding bug that teared multipart monsters
371     at map boundaries apart.
372 root 1.292 - temporarily make permanently invisible player visible when
373     he/she makes noise.
374 root 1.284 - fix being able to see through walls a bit.
375 root 1.303 - improve look at output.
376 root 1.285 - completely replaced the line of sight algorithm with a variant
377     of spiral fov capable of visibility grades and arbitrary
378     shadow angles, that uses less memory and less code.
379     - the new los code supports arbitrary map rectangles and loosens
380 root 1.310 other restrictions of the old code, supporting further optimisations.
381     - update los if blocksview-objects are inserted in a map, not just when
382 root 1.287 removed (e.g. for summon fog).
383 root 1.303 - permanent invisibility doesn't make immune against making noise:
384     implement a noise system that allows monsters to locate the player
385     when he/she makes noise.
386     - implement a primitive smell system that monsters can use to track
387     players.
388 elmex 1.288 - create bomb now also works when casted by door traps.
389 elmex 1.290 - (arch) new torch graphics.
390 root 1.289 - (maps) considerably soften the subway spider.
391 elmex 1.295 - (maps) made the portgate of navar safe ground, to protect
392     the guards from being killed by players.
393 root 1.310 - (maps) lots of tweaks in and around scorn.
394     - (maps) use special non-blocksview jungle, mountain and
395     darkforest freely on the worldmap, to get gradual sight obstacles
396     instead of total blackout in those areas.
397 root 1.289 - no maximum darkness for outdoor maps anymore.
398 root 1.291 - add more hints, fix some messages.
399 root 1.292 - fix a bug: firing rods should tell you something about them.
400     - make light additive even within players.
401 root 1.293 - darken xrays effect a bit.
402     - improve handling of los changes when inserting or removing
403     objects, not perfect yet.
404     - make map darkness signed (formerly unsigned) to allow
405 root 1.294 ambient lighting and centrally manage darkness as an offset.
406     - revamped, fixed and documented the server calendrics, also
407     tell users the current time and data, to improve awareness.
408     - implement proper wizlook flag and handling of wizlook, instead
409     of dumbly just clearing los once.
410 root 1.296 - speed up los code - it's now about 2-3 times as fast as the old one,
411     and has a smaller runtime variance.
412 root 1.297 - daylight/nightfall can now increase/decrease past the natural limit,
413     making them actually useful.
414     - see_in_dark now increases the viewing radius by 3.
415 root 1.304 - implement a fast tiled map iterator and use it in LOS for a 20%
416     speedup, as well as in many other places.
417 root 1.299 - remove support for extended map infos - these are not used
418     by the deliantra client and removing them gives us a 10% speedup
419     when sending map changes.
420 root 1.300 - remove most gcfclient and other client bug workarounds, as well
421     as now obsolete protocol versions, simplying the code.
422 root 1.301 - optimise and simplify generation of random numbers.
423 root 1.303 - correctly provide a non-zero default density for materials, to
424     avoid crashes, fix other bugs in the material handling code.
425     - fix volume calculations.
426     - fix cfpod parsing when multiple verbatim blocks were separated by
427     newlines.
428 root 1.305 - increase monster detection radius from wis/5 to wis/3.
429 root 1.306 - remove old pickup modes.
430     - remove obsolete disarm and search commands (search wasn't working
431     anyways).
432 root 1.308 - fix a crash when an npc applied a sign.
433 root 1.284
434 root 1.282 2.73 Thu Dec 18 20:56:31 CET 2008
435 root 1.283 - this release is assumed to be very stable.
436     - (maps) radically redesigned and improved tutorial.
437 root 1.280 - directional casting no longer immediately removes the invisible effect.
438 root 1.279 - magic ears now trigger when used inside the NPC dialogue.
439 root 1.272 - fix overflow in lighting calculations.
440     - negative glow radii can no longer cause total darkness.
441 root 1.273 - allow lookat on spaces where we only barely see, as opposed to
442     only maximally-lit ones.
443 elmex 1.274 - class selection has been reworked completely and their documentation corrected.
444     - swashbucklers got the oratory skill now.
445 elmex 1.278 - jump skill was fixed to adhere to all the flags a mapspace has got.
446 elmex 1.275 - (maps) small fix w.r.t. magic ear in /scorn/houses/wizz.entry
447 root 1.276 - fix deadlock in Jeweler::improve_ring_by_plan.
448 root 1.277 - use Coro::SemaphoreSet instead of our own lock management
449     (which was probably broken, too).
450 root 1.281 - support negative glow radii during daytime, too.
451     - use circular, not rectangular, viewing area.
452     - use minimum viewing distance of 2 in outdoor maps.
453     - negative glow is stronger than viewing area or lamps.
454 root 1.283 - (arch) new darkness spell face.
455 root 1.272
456 root 1.271 2.72 Thu Dec 4 22:20:19 CET 2008
457     - (maps) completely redesigned scorn.
458 root 1.269 - "cast light" now works on oneself.
459 root 1.270 - bump max light radius to 9, rewrote glow lighting calculations, fix
460     negative glow radii again (they were totally broken before).
461 root 1.259 - the "worldmaps sometimes are black" bug is finally fixed.
462 root 1.255 - the "player objects are referenced in _GENxx globals" bug has finally
463 root 1.253 been fixed, by not relying on buggy perl internals when serialising.
464 elmex 1.257 - fixed a long standing bug in the anvil converters in armour shops.
465 elmex 1.256 - items shops weren't interested in don't vanish anymore, and are given
466     back to the player.
467 root 1.251 - attuned/repell and spell base level system reworked.
468 root 1.246 - rewrote skill cache (last_skill_ob) system and usage - might
469 root 1.247 be less erratic now.
470 root 1.248 - refuse to write the uuid file if the uuid is zero
471     (to avoid writing it in early crashes).
472 root 1.254 - pathsync the directory after saving a file for added slowdown^Wsafety.
473     - speed up emergency_save by not syncing every file separately.
474     - no longer reattach perl to every object on reload, it's slow, and no longer
475     necessary since we don't nuke stashes anymore.
476     - do not bootstrap perl from the commandline args, use separate eval for
477     better error reporting.
478 root 1.259 - fix a crash when pushing cone spells met ice attacks.
479 root 1.254 - pre-cache perl extension files on reload to speed up the reload.
480 root 1.255 - speed up map refresh in server a bit.
481 elmex 1.258 - refactored drop code and fixed some programming errors in it.
482 elmex 1.260 - fixed small regression in 'Slag Ex' potion extension.
483 elmex 1.261 - fixed a bug where some objects couldn't cross map tile boundaries.
484 elmex 1.263 - fixed a bug with weight update of the player, the client showed -0.0
485     as the current weight of the inventory.
486 elmex 1.264 - (arch) the dragonbreath spell is level 12 again, but the high level spell
487     dragonfire has been introduced for the non-dragon players.
488 root 1.265 - remove unused "tooltype", "start_holding" object slots.
489     - change "weapontype" object slot to uint8.
490     - convert "hide" object slot into flag.
491     - reorder object members for better locality of reference and codesize
492     decrease.
493 root 1.270 - correct rounding in lerp, add lerp_rd, lerp_ru.
494 root 1.267 - fix a crash when no skill could be found when killing amonster.
495 root 1.266 - fix a small memleak that would eat one pointer on the perl stack for
496     every completed aio operation.
497 root 1.270 - perl mapspace acessor methods now normalise (handle tiled maps)
498     and update mapspaces if necessary.
499 root 1.246
500 root 1.243 2.71 Tue Sep 23 07:02:23 CEST 2008
501 root 1.241 - removed all command line parsing, only env variables are supported
502     anymore.
503 root 1.239 - region-specific monsters will now once more be on the worldmap.
504 root 1.234 - fix a disastrous "memleak" where temporary memory allocations
505 root 1.225 would grow out of bounds.
506 root 1.234 - server now writes a pidfile and makes sure its alter ego is killed.
507 root 1.222 - fixed a double-escaping bug in the pod-parser.
508     - rewrote the cfpod parser in C++.
509     - hintmode moved to C++, players need to re-set their hintmode if
510     they dislike "show".
511 root 1.231 - fix RIP inscription.
512 root 1.239 - bump login name length from 18 to 20 char max.
513 root 1.231 - correctly support gender in emotes.
514     - correctly support gender in the death messages.
515     - correctly generate death messages for players only when they really die,
516     with increased information.
517 root 1.222 - fix a bug in the dynbuf code that could potentially lead to crashes
518     and data corruption (but apparently was never triggered).
519 root 1.223 - close the $ENV{LOCKUTIL_LOCK_FD} fd if in the env, for lockutil.
520 root 1.232 - make sure Compress::LZF acquires the storable lock, might fix some
521     data corruption bug.
522 root 1.223 - tweak coredumping/monitoring a bit.
523 root 1.241 - completely redid server initialisation to hopefully avoid rare races.
524 root 1.227 - do not crash in the loader when an inventory object could not be loaded
525     (from a corrupted file).
526 root 1.241 - redid skills command to send output to proper channel.
527 root 1.233 - object->map is no longer refcounting.
528 root 1.228 - add FLAG_DEBUG for internal debugging.
529 root 1.231 - add NDI_VERBATIM flag to send_msg.
530 root 1.230 - add perl backtraces to logBacktrace-initiated backtraces.
531 root 1.240 - player->exists is no longer a sync_job.
532 root 1.233 - split login.ext's player scheduler into
533     it's own player-scheduler.ext extension.
534 root 1.222
535 root 1.220 2.7 Sun Sep 7 16:32:03 CEST 2008
536 root 1.212 - require perl 5.10.
537 root 1.209 - make nrof signed, so that code that checks for underflow actually works.
538 root 1.204 - swap player and observed count's on the map when observing.
539 root 1.205 - add (mostly untested) mapspace perl class and accessors.
540 root 1.206 - re-"calibrate" value/weight autopickup to be silver/kg >= pickup*100.
541 root 1.207 - fix a crash in cast_bless (restoration et al.) when no target
542     could be found.
543 root 1.208 - pits now have a configurable "random spread" range and default
544 root 1.213 to a radius of two now.
545 root 1.212 - rewrite pay_player_arch.
546     - use a more stable perl_reload implementation.
547     - do not use Symbol::delete_package (causes crashes after perl-reload),
548     use our own, safer, clear_package instead.
549     - when asynchronously dumping core, close all file handles to allow
550     the server to restart concurrently.
551 root 1.215 - improve the cfpod parser to generate proper xml from proper cfpod
552     sequences, without double-encoding. it should be faster, too.
553     - the above fixes wrong display of help tetx and many other issues.
554 root 1.216 - use lzf and frag packets for large messages for clients supporting them
555 root 1.218 (0.9976+), use it for long books and other messages.
556 root 1.210 - eradicate listen command and corresponding code.
557 root 1.211 - eradicate logs command.
558 root 1.218 - let the client log into the server log, used for crash backtraces.
559 elmex 1.219 - fixed rods/wands/etc. with randomitem spells on maps, but broke
560     old style spell objects with the spell magic bullet.
561 root 1.220 - (arch) fixed skill less rods in the archetypes
562 root 1.204
563 root 1.203 2.61 Sun Aug 3 17:59:50 CEST 2008
564 elmex 1.197 - made jeweler workbench larger and some other minor map
565     changes in jeweler town.
566 root 1.196 - fixed wrong item handling in jeweler skill code.
567 root 1.198 - (arch) use a special "key_random_map" for random map keys
568     that are used up.
569 root 1.199 - fix a crash when the player who was observed has logged out long
570     enough for his region/map to be gone.
571 root 1.200 - port to g++-4.3's incompatible tr1 changes.
572 root 1.201 - add some missing dependencies.
573 root 1.203 - log to /var/log/deliantra/ by default.
574     - hack observe code to enable smooth movmenet when observing.
575 elmex 1.195
576 root 1.193 2.6 Sun Jul 20 18:58:08 CEST 2008
577 elmex 1.181 - (maps) extension of the jeweler quest/skill/town
578 root 1.179 - correctly move gsay to the party channel.
579 root 1.178 - fix a crash when animate weapon was used in some areas.
580 elmex 1.177 - fixed unnecessary identification of by converters created objects.
581 elmex 1.176 - (maps) tutorial now contains clues about chatting and talking
582     with NPCs.
583 elmex 1.175 - (arch) dragon scales got proper type now
584 root 1.193 - object::decrease would sometimes cause container weights to
585     be wrong, this has been fixed.
586 root 1.194 - do not send time updates for newly-seen items.
587 root 1.185 - thawing an icecube will once more drop its contents to the ground.
588 root 1.183 - fix cone spells etc. going through walls sometimes.
589 root 1.186 - fix a weight update bug that sometimes left containers
590     with wrong weights.
591 root 1.194 - added auto_apply event and extension for shop tiles.
592 root 1.172 - work around get_map_flags invoking perl and switching the stack.
593     - make sure the map is loaded when using a town portal return.
594 elmex 1.171 - fixed a bug with caching of sp/grace/food points for spells
595     where healing spells didn't cost any grace.
596 root 1.173 - fix starvation kill reason.
597 root 1.174 - fix pk killer name message.
598 root 1.189 - don't let people apply signs with @match.
599 root 1.190 - add support for berkeley db 4.7 (the new BDB module also fixes
600     what seems to be the biggets memleak in the server).
601 elmex 1.171
602 root 1.170 2.56 Wed Jun 4 10:50:40 CEST 2008
603 root 1.168 - require Coro 4.73 which contains an important performance-bugfix.
604     - use anyevent to manage listen ports (this enables IPv6 support).
605 root 1.167 - server supports ipv6 client connections now.
606 root 1.168 - use newly-available Coro::AnyEvent.
607 root 1.169 - get rid of the AnyEvent::AIO watcher, start the event thread earlier
608     to let it handle AIO requests.
609 root 1.167
610 root 1.166 2.55 Sat May 24 19:52:52 CEST 2008
611 root 1.165 - avoid newmap commands when crossing tiled map boundaries. this speeds up
612     processing considerably (especially in the client) and reduces data transfers
613     (saves roughly 1kb each crossing in typical configs). works even with gcfclient.
614 root 1.162 - (arch) fix typo in ixalovh treasurelist causing empty_archetypes to appear.
615     - (map) fixed npc dialogue in pup_land/s_f/special.
616     - bugfix: fix a crash when a player casts a swarm spell and then logs out
617     (swarm spells now stay in the player's inventory).
618 root 1.159 - bugfix: when unapplying skills also remove them from the range/combat slots.
619 root 1.162 - bugfix: do not merge items whose archetype name merges, use the
620     archetype *archname* (chairs of different facings were merged).
621     - bugfix: fix a potential crash issue in find_object_name (not used
622     normally).
623 root 1.164 - bugfix: locked doors cnanot be bashed down by magical means
624     (destruction, magic missile etc.).
625 root 1.163 - swarm spells without a direction now use various spiral patterns
626     instead of being fully random.
627 root 1.158 - update AnyEvent API to 3.4 and above.
628 root 1.156
629 root 1.155 2.54 Thu May 8 22:01:22 CEST 2008
630 root 1.146 - change floorbox item ordering to enable more efficient protocol and to
631 root 1.140 stay in sync with the 0.9971 client update which also reverses ordering.
632 root 1.152 - bugfix: the jumping skill now gives experience for jumping
633     and for attacking monsters. it also takes about one second to do a jump.
634 root 1.138 - bugfix: players couldn't starve in 2.53 :(
635 root 1.136 - bugfix: correctly send the client a del_spell when a spell gets removed.
636 root 1.152 - bugfix: spell effects like word of recall are removed on death.
637 root 1.141 - bugfix: fix a crash when objects with treasure on top (ground...)
638     were created outside a map.
639 root 1.145 - bugfix: couldn't apply inventory items when levitating, but ground items
640     (fixed by reversing the logic).
641 root 1.152 - bugfix: fixed a mismatched '"' in the debugging description of objects
642 root 1.153 - bugfix: the random map generator no longer leaks key objects.
643 root 1.154 - bugfix: support random maps >127x127.
644 root 1.152 - (maps) fixed the death certificate system in nimbus.
645 root 1.159 - (maps) rebalance onefang, build a road to onefang, temporarily closed zorn.
646 root 1.152 - (arch) the material 'wood' was undefined, it's now a burnable material.
647 root 1.147 - (arch) give ball lightning a real name.
648 root 1.152 - (arch) fixed material of bones (was 'wood', is now 'bone')
649 root 1.155 - support cfpod in ex replies (client item tooltips).
650 root 1.143 - unapply item in range slow when readying a spell.
651 root 1.148 - bugfix: account for rounding errors in weight updates.
652 root 1.139 - remove synchronous mkdir in chargen_race_done.
653     - fix per-race starting maps.
654 root 1.142 - check hiscore on suicide and quit as well.
655 root 1.138 - tell players when they are starving.
656 root 1.133 - get rid of costly object_from_name conversion for altar effects.
657     - fix map difficulty calculation for generators.
658 root 1.146 - slightly more intelligent handling of "is_animated" flag.
659 root 1.149 - support no_drop map header flag (before it was only available internally).
660 root 1.153 - make random-map-generated keys crumble after one hour, use more unique slaying.
661 root 1.133
662 root 1.130 2.53 Sun May 4 17:32:48 CEST 2008
663 root 1.119 - bugfix: custom skill settings were not saved by the server.
664     - bugfix: remove did not actually remove items from the inventory, leaving
665 root 1.116 ghost items.
666 root 1.119 - bugfix: properly update items identified on the ground.
667 root 1.120 - bugfix: use localtime_r in the logger thread.
668 root 1.122 - bugfix: player starvation will now give the correct kill reason.
669     - bugfix: archetype reloads could crash the server.
670 root 1.119 - bugfix: the mailscrolls are now correctly handed out even when the destination
671 elmex 1.114 player is not logged in.
672 root 1.119 - bugfix: make list_logins non-blocking (glaring oversight). this caused the lag at
673 root 1.117 server startup.
674 root 1.128 - bugfix: fix the door surround check in the random map generator.
675     - (maps) fix heaven quest difficulty progression.
676     - (maps) fix some random map styles.
677     - dropping items a shop is not interested in won't sell them anymore.
678     - rods and horns with a too low maximum charge allow now at least one discharge.
679     - implement kill & death statistics.
680     - random map preparation is no longer synchronous.
681     - rewrite find_style in perl, no longer does synchronous I/O.
682     - improve random map specials placement.
683     - make the killer a real object pointer instead of a string, improved
684     kill reason messages.
685 root 1.117 - take advantage of new aio_close and aio_chmod.
686 root 1.128 - implement archetype::get, object::deep_clone and update callers.
687 root 1.125 - change_abil is much faster.
688 root 1.126 - update the floorbox more often to work around the reverses item order
689     display in clients.
690 root 1.125 - cleaned up object copying by encapsulating it to a single place.
691 root 1.126 - add hints to the invite messages.
692 root 1.127 - rewrote key<->value pair handling.
693 root 1.128 - use an independent random number generator for the random map generator.
694 elmex 1.113
695 root 1.112 2.52 Thu Apr 24 11:47:19 CEST 2008
696 root 1.106 - completely automate the item add/delete on remove/insert. this should fix
697     all "ghost" item bugs caused by sloppy coding, as sloppy coding is now correct :)
698     - completely automate the weight handling, should fix all weight
699     accounting bugs caused by sloppy coding, as sloppy coding is now correct :)
700 root 1.103 - reloading archetypes while a user was in the character creation phase
701     could crash the server.
702 root 1.106 - fix a nontrivial number of cases of code commented similar
703     to "is this really correct?", as many of those cases are now handles
704     automatically by lower level code.
705     - replace many ad-hoc checks for client visibility by object::visible_to,
706     should result in broader applicability of functions using it.
707 root 1.104 - merge items with different arch pointers refering to the same arch
708     (due to archetype reloads).
709 root 1.106 - refactored the object remove/insert functions and most related
710     functions (decrease, split, merge_ob etc.).
711 root 1.105 - make it compile better on freebsd (reported by pippijn).
712 root 1.106 - remove GT_UPDATE_INV (no longer applicable).
713 root 1.108 - fix the longstanding "container stays open" bug.
714 root 1.107 - improved floorbox updating to be incremental and other protocol
715     optimisations.
716     - get rid of update_after_inventory_change and only do update stats
717     for weight once/tick/player at max.
718 root 1.109 - rewrite party commands, use party channel.
719 root 1.103
720 root 1.102 2.51 Sun Apr 20 21:27:37 CEST 2008
721 root 1.97 - properly link against libgthread as that is needed to make the slice
722     allocator thread-safe.
723 root 1.91 - support perls not compiled with 64 bit support (though this is not a
724     recommended configuration) (reported by Samuel Gondouin).
725 root 1.94 - always put godgiven items into the player inventory, never any containers.
726 root 1.92 - (maps, arch) the scorn go club was founded!
727 root 1.93 - (arch) do no longer support player abilities, they didn't work anyways.
728 root 1.100 - (arch) the alchemy spell is now of the alchemy spell school, which
729     became a real spell-class.
730 root 1.102 - (arch) the alchemist class now get an alchemy spell book for new characters.
731     - (arch) considerably strengthened spark shower and destruction.
732     - match archetypes by name, not by ptr, in treasure.C, this makes archetypes
733     finally reloadable at runtime.
734     - changed archetype loading algorithm to only require one pass and
735     use delayed resolving of references.
736 root 1.101 - examine command now uses the examine infobox.
737 root 1.102 - implement an "incremental garbage collector" for archetypes.
738 root 1.98 - enable slice allocator again.
739 root 1.96 - implement optional free memory poisoning.
740 root 1.91
741 root 1.89 2.5 Wed Apr 16 15:06:53 CEST 2008
742 root 1.90 - the two handed weapon skill can no longer be used as unarmed combat
743 root 1.85 skill.
744 root 1.84 - append [drop xxx coins] to altar/trigger_altar/identify_table/converter
745     names (also update all maps to use money instead of coins).
746 root 1.78 - add uuid accessors to perl.
747     - add coin names and archetype accessors to perl.
748 root 1.80 - fix runtime uuid file format to use "." instead of ",".
749 root 1.78 - change perl extensions to not use hardcoded coins and values.
750 root 1.79 - write uuids asynchronously (no hiccups due to uuid writes)
751     and be more parsimonous of uuid usage by the exact value out on exit.
752 root 1.86 - write log messages in another thread, removing another sync point.
753     - support multi-line log messages in a nicer way.
754 root 1.80 - be more portable w.r.t. uuids and format specifiers everywhere.
755 root 1.81 - fix a minor memleak in the random map generator.
756     - some parts of the random map generator are not coroutine-safe,
757     so only call it "single-threaded".
758     - major cleanup of memory management in random map generator.
759 root 1.87 - slight refactoring of the random map generator, faster too.
760 root 1.81 - solve the "slice_alloc becomes negative" mystery - no allocation bug,
761     bookkeeping bug.
762 root 1.87 - work around "player is on active list" problem by deactivating player
763     after loading.
764 root 1.81 - garbage collect shstr's more evenly and adaptively only when
765     there have in fact been allocations.
766 root 1.82 - fix object::insert to do as documented and insert into the env
767     if necessary.
768     - fix cf::map::unique_maps.
769     - fix nrof overflow check in can_merge_slow.
770     - fix converter code to handle >31 bit values.
771 elmex 1.83 - added support for the player_sold flag
772 root 1.84 - converters no longer accept unpaid items.
773 root 1.88 - canonicalize random map meta files for better unification.
774 root 1.77
775 root 1.75 2.43 Sun Apr 6 20:35:29 CEST 2008
776 root 1.72 - work around a glibc bug that causes calloc to return non-zero memory
777     when mlockall has been used.
778 root 1.71 - pass environment to perl_sys_init3, as required by newer perls.
779 root 1.72 - use separate thread for ticker timing (and more in the future).
780     this greatly increases timing accuracy and gets rid of an enourmous
781     number of gettimeofday calls.
782 root 1.82 - use a separate thread to signal aio completion, for lower latency.
783 root 1.73 - require Coro 4.47, which fixes a data corruption bug with its C API.
784 root 1.71
785 root 1.69 2.42 Sat Mar 15 12:05:21 CET 2008
786 root 1.68 - rebalanced default experience table to be more exponential
787     and much easier up to level ~40, then moderately harder.
788 root 1.67 - change attuned/repelled level boni to +-8 from +-2.
789 root 1.66 - use SvUPGRADE to avoid exception in sv_upgrade with perl 5.10.
790     - do not exit on reload/load errors but properly cleanup.
791 root 1.69 - fix a 32 bit uncleanlyness in the slice debugging wrapper.
792 root 1.66
793 root 1.64 2.41 Fri Jan 25 13:15:37 CET 2008
794 root 1.59 - get rid of YAML::Syck, it's too buggy and misparses many files
795     (this fixes the jeweler skill).
796 root 1.60 - back-to-back perl_reloads don't freeze the ticker anymore.
797 root 1.61 - convert cfutil from Event to EV (forgot to do this earlier...).
798 root 1.63 - move tombstone to real map if player died due to cave-in (even if
799     it has reset, which is better than putting it on the savebed, also as
800 root 1.321 proof that the player didn't use a savebed).
801 root 1.59
802 root 1.58 2.4 Sun Jan 13 13:41:29 CET 2008
803 root 1.56 - work around perl bug in configure perl module version check.
804 root 1.49 - fix bug in golem move code that would cause a crash at tiling borders.
805 root 1.50 - fix a freeze bug when looking for an arrow in the inventory.
806 root 1.52 - fix a bug in animate_weapon, causing a crash.
807 root 1.54 - no longer exit when a coroutine throws an exception.
808 root 1.57 - fix a potential double free bug (nicely exploited by g++ 4.2).
809 root 1.53 - fix the "<player> is nuts" message.
810 root 1.58 - fix an exception at logout due to the json_coder being gone.
811 root 1.43 - upgrade to EV version 2.0 API.
812 root 1.47 - when players don't apply a savebed correctly but stand above one,
813     do not move or kill them.
814 root 1.46 - implement client-side settings page in playerbook (0.9963+ required).
815 root 1.43 - implement generic framework for server-side resource files.
816     - implement resource file update event.
817     - hook experience table update into the framework.
818     - move jeweler.yaml to resources (arch/).
819 root 1.44 - switch from Crossfire to Deliantra perl module.
820     - implement json2json arch filter.
821 root 1.45 - implement widget protocol version 2, support for ui templates.
822 root 1.54 - mapinfo is now handled fully asynchronously.
823 root 1.48 - ext/irc: also log irc messages.
824 root 1.51 - ext/schmorplog: write user stat files asynchronously.
825 root 1.43
826 root 1.42 2.32 Sun Dec 2 18:11:01 CET 2007
827 elmex 1.41 - limited the number of items that can be picked up and dropped
828 root 1.42 as temporary measurement against bad performance or dropping things
829     (this lead to long freezes and triggered the watchdog).
830 elmex 1.41 - improved the performance of the drop command a bit.
831 root 1.38 - switch from Event to EV for higher performance, easier usage,
832     less bugs...
833 root 1.39 - updated to release version of the gnu affero license.
834 root 1.38
835 root 1.37 2.31 Sun Nov 11 17:26:28 CET 2007
836 root 1.36 - more thoroughly rename the binaries, contact addresses.
837     - update the copyrights.
838 root 1.37 - avoid backtraces due to old spells on some maps, sometimes causing
839     crashes.
840 root 1.36 - fix a problem where facedata wasn't initialised to zero properly,
841     potentially causing crashes.
842 root 1.35 - assign weapons on user load time, not login-time, avoiding
843     crashes.
844    
845 root 1.34 2.3 Sat Oct 27 11:22:38 CEST 2007
846 root 1.32 - fixed an important bug that caused passwords to be forgotten.
847 root 1.31 - implement *tag destinations for goto, slaying etc. and use it
848     in some of the maps.
849 root 1.32 - bigworldised many maps (islands as in pupland and aldwulf),
850     which is now trivial to do.
851 root 1.33 - removed all traces of the old (and never working) plug-in interface
852     (70kb code less on amd64).
853 root 1.34 - improve/tune scheduling priorities.
854     - fix some freezing bugs.
855     - fix a memory corruption problem in dynbuf.printf.
856     - use channels for chat and many informational commands.
857     - improved the tutorial.
858     - create missile is now fixed.
859     - race fields must now contain archetypes.
860     - jumping skill now works as advertised.
861 root 1.31
862 root 1.29 2.2 Tue Sep 11 15:41:24 CEST 2007
863 root 1.24 - relicense under the gnu affero license.
864 root 1.25 - new inscription skill, can only inscribe INSCRIBABLE items.
865 root 1.24 - implement server-side framework for generic resources.
866     - use resource framework for server-provided ambient
867     music.
868 root 1.27 - save object owners (players only atm).
869 root 1.24 - replace limited sound api with server-provided sound effects.
870     - new sc (sound control) protocol command.
871     - improve fxix protocol to include types.
872     - exactly fill tcp segments, if possible.
873     - output-rate is now an upper limit, the server will automatically
874     (and quite perfectly) adjust to the network conditions, ensuring
875     low latency even during bulk transfers (music, images, sounds etc.).
876     - implement server-side widgets (i.e. client widgets controlled
877     in the server side). this will allow future expansion without
878     having to upgrade clients.
879     - implement a (artwork) world map with realtime player position
880     tracking.
881     - new and more efficient extcmd (server still supports old extcmd
882     protocol).
883 root 1.26 - fixed lots of underflow/overflow bugs in diseases and general stats
884     calcluation that could be easily exploited by users.
885     - rebalanced diseases to spread more naturally/evenly.
886     - completely asynchronous map loading even for tiled maps.
887 root 1.24 - replace simple messaging protocol with channels carrying metadata
888     (similar to message types, but more directed at the user).
889     - reduce command processing latency by a whopping 120ms by
890     reordering some processing steps inside the server. this directly
891     reduces lag by 120ms.
892     - actually send spell faces to the client.
893 root 1.23 - implement player genders.
894 root 1.24 - unclean logout/login results in: nothing if map hasn't reset,
895     otherwise return to savebed and possible kill if the log-out
896     was for too long.
897     - fast socket-dead detection (kick player after 8 seconds without ack).
898     - greatly reduce the cpu time needed to draw maps _again_.
899     - archetypes are now subclasses of objects.
900     - rebalanced shop greed and approval functions to be more realistic
901     (and likely match the actual intention).
902 root 1.23 - implement "crossfire pod" format for messages, with working bold,
903     italic, gender-specific text, paragraphs etc.
904 root 1.24 - implemented hint framework, players can opt to receive hints.
905     - implemented (long) book framework, added some books from the cf wiki.
906 root 1.23 - implement generic message framework that uses xml, utf8 for the client
907     protocol and is capable of transmitting generic meta information.
908 root 1.21 - implement (in a suboptimal way) per-player instantiated maps.
909     - replace the nexus by a per-player tutorial map that teaches stuff
910     better than the newbie house.
911 root 1.18 - fix the magicmap colours.
912 root 1.19 - optimise map update even more by removing unneeded code and checks.
913     - decouple map and stats update from pl->ob and use pl->observe instead.
914     - implement observe command.
915 root 1.20 - major speed up in map refresh by replacing most get_map_from_coord
916     calls with a simple comparison.
917     - fix a latent crossfire bug that could crash the server because the
918     map refresh did not update the mapspace.
919 root 1.24 - support custom keys for regions and maps, regions are now
920     refcount-managed.
921     - allow worldmap overlays anywhere in the 000..999 range.
922     - new system to acquire time slices for background jobs, to reduce
923     jitter.
924 root 1.27 - semi-persistent object-referencing framework (currently only players
925     supported).
926 root 1.22 - dependency tracking for perl extensions.
927 root 1.24 - new slag-ex extension for cleaning cauldrons.
928     - fix invoke result processing.
929     - there are even less i/o syncpoints in the server now.
930 root 1.29 - added map-tags extension that scans all maps for object tags
931     and records them in the database (not used yet).
932 root 1.28 - metaserver 2 support.
933 root 1.22 - many more bugfixes and minor optimisations.
934 root 1.16
935 root 1.15 2.1 Sun May 27 04:21:29 CEST 2007
936 root 1.14 - optimised event invocation (non-wanted events can now be
937     skipped with 4-5 inlined instructions).
938 root 1.12 - complete rewrite of town_portal: it now creates a portal
939     to the "nearest" town only, travel is only possible
940 root 1.13 to the town and back, anybody can use it (also removes
941     one of the remaining syncpoints in the server).
942 root 1.10 - complete rewrite of the range/attack skill slot system:
943     there are now two slots, one for combat, one for ranged
944     attacks.
945     - introduce the concept of a current weapon (either a ranged
946     or a combat weapon/skill/tool) and switch between them as
947     needed.
948     - rewrite bow code so bows get more useful: apply damage,
949     attacktype and other stats to the arrows and treat
950     bows as weapons. also rebalance the missile weapons skill
951     so its damage increases with level.
952     - rewrite the complete player speed logic: weapon_speed now
953     works as documented and there are no unnatural speed boosts.
954 root 1.6 - implement a utility - cfutil - that simplifies arch and map
955     installation, replacing the old collect scripts and
956 root 1.9 simplying deployment by scaling and cutting faces as required.
957     - simplify the map protocol extensively by taking advantage
958     of missing bigfaces, speeding up map generation immensely.
959 root 1.6 - implement inherit keyword allowing archetypes to inherit from
960     other archetypes.
961     - rationalise archetype, region and treasurelist file format
962     into a single file format and make them reloadable asynchronously.
963 root 1.9 - make the worldmap, facedata (smoothing, faces, magicmap)
964     reloadable at runtime.
965 root 1.6 - implement 64x64 faceset support.
966     - implement fxixsx protocol that saves
967     a lot of bandwidth over the old image/face/smooth packets
968 root 1.11 and allows images > packetsize, incremental and background
969     transfers.
970 root 1.6 - implement a bandwidth-saving smoothing protocol that works
971     on a face basis as opposed to a mapspace basis.
972 root 1.7 - the server can now rate-limit image uploads to not exceed
973     a certain (client-configurable) speed while guarenteeing full
974     freedom of movement.
975 root 1.8 - implement new ex command to request item descriptions.
976     - implement new msg command for in-game messages with meta
977     information (using xml).
978 root 1.9 - enforce utf-8 for all text messages.
979 root 1.13 - added micropather (not used yet).
980 root 1.6 - many, many bugfixes.
981 root 1.1
982 root 1.5 2.0 Tue Mar 6 15:22:53 CET 2007
983 root 1.1 - make coroapi accessible to cf+.
984     - moved map handling logic completely to perl
985     - per player maps are now marked in the map
986 root 1.2 - maps are saved completely differently now,
987     and much more often.
988 root 1.17 - rewrote map header parser and writer, to be much faster.
989 pippijn 1.4 - maps and players are now (in the average case) loaded
990 root 1.2 and saved completely asynchronously, I/O contention will no
991     longer freeze the server.
992 pippijn 1.4 - players and maps can be loaded anytime, without the player
993 root 1.2 being logged in.
994 root 1.1 - automatically generate method interfaces for perl from headers
995     - unbundled freezethaw
996     - mostly rewrote common/map.C
997     - completely rewrite server/swap.C
998     - introduced "runtime", the CCT clock (corrected crossfire time) :)
999     - introduced new keyword for map files: file_format_version (integer, server version: 0)
1000     - better message for apply failures due to applymode
1001     - removed most all of the weather code
1002     - unified logging to stderr and file
1003     - too many minor changes to document