slight changes
*** empty log message ***
*** empty log message ***
2.55
newmap optimisation
*** empty log message ***
*** empty log message ***
rewrite remove/insert linking functions, hopefully faster and more correct
*** empty log message ***
*** empty log message ***
*** empty log message ***
*** empty log message ***
*** empty log message ***
*** empty log message ***
*** empty log message ***
*** empty log message ***
*** empty log message ***
*** empty log message ***
*** empty log message ***
*** empty log message ***
add esrv_del_spell
lotsa
stop bullshitting us
reintroduce last_weight optimisation, clear TODO
*** empty log message ***
*** empty log message ***
added item
added item ;-/
lots of bugs have accidentally been fixed
update the weapon status on load, not connect, as thats too late as code might try to access the player
*** empty log message ***
remove storable compatibility mode
*** empty log message ***
quickfix
- implement archetype->instance as replacement for arch_to_object (better name?) - fix arrows merging with stuff on floor - fix level_for_item to read more clearfly, do not use drand48 and fix the random level generation when !level set. - splay arrow container in find_arrow (but searching containers is still borked?) - improve create_missile spell.
implement merge checking by slow and careful recursion on the objects, slow, but hopefully very rare even in the future
*** empty log message ***
*** empty log message ***
- rewrite follow to use a coroutine and make it generally safer. - the map scheduler, under duress, tried to swap out maps fast, but when a sync job was entered it also entered and andless loop causing a freeze. hack around this temporairly by always sleeping 50ms.
*** empty log message ***
*** empty log message ***
*** empty log message ***
finally remove the old buggy plug-in cruft
*** empty log message ***
*** empty log message ***
*** empty log message ***
- complain louadly when we acquire a lock we already hold - deactivate map before clear calls
*** empty log message ***
some more sounds for gates, holes
cleanup
*** empty log message ***
*** empty log message ***
*** empty log message ***
remove unused mapstruct.active
- new type: INSCRIBABLE - inscription only works on inscribable items (spellscrolls special cased) - add new empty scroll, empty book and empty mailscroll archetypes - use mailscroll in ipo.
10:47:00 <irwiss> schmorp; I seem to have found a bug... If you open a container, and then it disappears - burnt by a fire spell for example, you can't close it, nor can you see items on the ground until you relogin
*** empty log message ***
*** empty log message ***
*** empty log message ***
*** empty log message ***
fixed: 2006-09-16 01:37:33 invalid type defined in shopitems in string cloak:5;spellbook:35;ring:15;book:28;scroll:25;wand:28;armour improver:2;weapon improver:2;rod:32;potion:10;horn:35;amulet:17;power_crystal:25;gem:0;lamp:-10;*:-90;
sound is provided by doors now (hopefully)
adjusted digestion algorithm and clamped in limits
*** empty log message ***
*** empty log message ***
more robust perl module version checking
fixed multipart problem where multipart objects were placed in a wrong/bad order on the map after they were extended.
first workable server-side music implementation
- improve dynbuf implementation further - save now saves shstrs longer than HUGE_BUF, lets fix any brokenness remaining in the server... - converted most describe_*-functions to dynbuf_text, making them likely faster (or maybe slower), while removing any hardcoded length limit. - memory allocated for static dynbuf's is not being returned ever (at least not the initial chunk, maybe fix this?) - implement framework for predeclared const shstrs for comparison purposes (shstrinc.h). - enabled and enforced new material code. - implement hack to clean up book titles. - increases HUGE_BUF to 10240, to be similar to mac network packet size.
*** empty log message ***
fix the fxix protocol mess and use some experimental sorting by size
- unbundle marker code into force_find/force_add - use completely different (more efficient) speed logic - make those methods available to perl - to avoid numerical errors use an exact fp number for MIN_ACTIVE_SPEED.
*** empty log message ***
fix damned exits setting savebed, boy did it become small
*** empty log message ***
*** empty log message ***
*** empty log message ***
some tweaking, preload random maps now, too
go through all per-player maps on startup and load those that have a resettable base map. this is similar to going tghrough all temp amps and loading them so the server can reset them. this is quite a high overhead compared to e.g. putting reswettable per-player maps into the tmp directory, too, but we might want to iterate over all players and their maps anyways at some point, to upgrade them to new formats etc. or to gather global statistics.
- new map header boolean "no_reset 1" to deny reset. - allow reset of per-player maps, effectviely implementing player-private dungeons. - re-enabled reset-on-load feature again. - remove fail-safe mechanism that prevented per-player maps from being reset. keep your fingers crossed. - fixed two bugs in archetype finding (archname vs. object name). - singularities no longer crash the server but will log a backtrace now as they are really are fatal.
more µ-opts
- restore after combined mainboard+harddisk crash - cleanup/fixes for 2.1 release - fix invoke to actually do work - refactor invoke shortcuts, gcc cannot inline varargs functions. - optimised invoke to 4-5 insns in the common case. - optimised (For no good reason) the int-to-ascii conversions of dynbuf_text into division-less and branchless code (of which I am pretty proud). - actually move players to their savebed when they did not use one and the map has been reste in the meantime. does not kill (yet) when too long. - enter_map is now handled completely in perl. - goto is now using generation counting to ensure that only the most-recently-issues goto will succeed. - make some heavy use of __builtin_expect to streamline rare callbacks even more. - optimised thawer.
- fix players frozen on movers - allow overriding of existing spells implement town portal: - new fields portasl_maap|x|y for regions - new ext town_portsla completelyx implementing it - some debugging code, some check code
*** empty log message ***
remove superfluous/broken settings and related code - COZY_SERVER: enabled most msall adjustments, changed digestion formula to the original one, party member treament w.r.t. pets enforced. - PROHIBIT_PLAYERKILL: default - real_wiz: removed and enforced - create_home_portals: removed and enforced - casting_time: removed and forced to be off (was crashing anyways) - was_wiz flag removed and treated as off usually unless it was used in place of flag_wiz. - do not save or restore wiz, wizcast and wizpass flags.
fix ordering in static settings initialiser that enabled catsing_time by default (leading to, of coruse, crashes). found by archaios and me
- always force-apply cursed weapons even when not "wielded".
*** empty log message ***
- add two new slots for shields and combat weapons - make slots into bitfields, they are not too speed-critical and this saves 16 bytes in the object structure. - add accessors to body lcoation names etc. to perl - use those in the body command
*** empty log message ***
*** empty log message ***
- fix tausworthe generator initialisation (no big deal) - use numerically more correct multiplication instead of remainder. this has surprisingly good consequences (which I originally didn't expect): - the generated code is smaller and faster - gcc optimises the 64 bit arithmetic extremely well on 32 bit archs. - behaviour for negative and zero arguments (both illegal) is pretty well-behaved.
*** empty log message ***
*** empty log message ***
replace AUTODECL by auto. this is the first time in my life, I think, that I redefined a keyword - fortunately only with arguments
implement defaulting region by map path match
*** empty log message ***
some experiment in replacing a real ground tile...
*** empty log message ***
*** empty log message ***
*** empty log message ***
switch to the new facename.faceset.png naming scheme
- remove many TODO items that in fatc have been fixed already without looking at the TODO. - remove unpaid items on playerdeath unconditionally. - reenabled cede-while-saving.
- automake insists on naming all libdirs .../cfserver now. i have to concur :/ - correctly reattach to players on reload, this likely fixes the reload crash bug. - init env vars very early, so perl gets to see them.
kick in perl
likely fix the freeze-on-quit bug, also nuke in-memory apartments on quit
- prepare find_style_map rewrite - move pick_random_object to maptile:: - make pick_random_object fair overe the numbe rof monsters and no longer prefer big monsters.
*** empty log message ***
- identified random memory corrutpion bug - fixed most likely cause for bug above - rewrote object loader etc. into a simple one-line lookahead parser. - rewrote/cleaned up archetype, treasure, artifact, formula parser. - some optimisations / cleanups
- implement worldmap underlay and regionset and fill in C++, resulting in a *major* speedup in worldmap loading. - use first arch (e.g. deep_sea) and first region (e.g. panthalassia) to fill maps outside the world: less hardcoded content data. - fix ext/rent.ext to actually check again for entrance. - temporarily remembver previous map in $ob->{_prev_pos} (HACK to make ext/rent.ext work).
*** empty log message ***
*** empty log message ***
*** empty log message ***
- implement per-space regions
fix the exit is closed... message by stringifying map objects to paths in normalise
- avoid negative event priorities like the plague. they are actually worse because they introduce random memory corruption and endless loops and worse, if worse exists. - aggressively swap out maps when #actives exceeds threshold - sweep and cede after server tick - increase player command handling priorities, just in case. - fix a bug in mortal checking, this was the reason for the enourmous memory leaks in map-world.ext - mark c++-side watchers as non-reentrant
simplify and upgrade configury
*** empty log message ***
*** empty log message ***
*** empty log message ***
*** empty log message ***
- micro-optimised hit_map and ok_to_put_more, this immensely helped reduce load on dense maps. - introduced xy_normalise, which is imho a saner interface and much faster than get_map_flags so should be used in new code (and time-critical code).
- potentially fix the bug associated with 2007-01-14 18:51:45.228 find_nearest_living_creature: map /mlab/cwdccastleofmarquis3 (40,44) has is_alive set but did not find a monster? a) the mesage seemed to be totally bogus. P_IS_ALIVE means something with FLAG_IS_ALIVE is here, not a monster or anything else. b) map flags caching was disabled due to my stupidity, probably causing high cpu usage. c) ymmv
fix 'object lacks animation' continued reporting. maps should use 'animation', not 'animation NONE'
this seems to fix the random map closed bug... but why?
minor stuff
fix nimbus reset etc.
added todo item
further todos
*** empty log message ***
- start pluggable map types framework - mvoe random map handling out of the core
- disabled stuff that might cause instabilities at the cost of certain (controlled) additional memory usage. - minor changes to improve the stability,
added a note
""
another todo item
added todo item
added a todo item
moved some todo stuff
*** empty log message ***
*** empty log message ***
fix perl class for archetype, never free once-allocated objects, or destruct them, there are too many long-lived references (and refcount doesn't help, likely because it isn't correctly being incremented/decremented).
Changes... - alternative shstr representation, saves code - use glibs splice memory allocator (seems slower) - use simpler memory/lifetime management for objects, no recycling
never, ever optimise if you don't need to
This form allows you to request diffs between any two revisions of this file. For each of the two "sides" of the diff, select a symbolic revision name using the selection box, or choose 'Use Text Field' and enter a numeric revision.