- 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.