fix a crash bug i introduced when fixing the random map pick fairness issue
- 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.
- set map before parsing an object, add_button_link requires this completely bogus idiotic design bug. - document speed hack by elmex :)
*** 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
- use a simpler, less fancy loader base design (basically a one-line-lookahead top-down parser).
- useless ยต-opts - use maximum norm in get_rangevector (a bit, should use more)
interim check-in for server upgrade
replace amny strcpy by checked assign's
- improve error messages from object_thawer to incldue line numbers - provide geenric parse error handler - finish basic design of generic object loader - implement generic regions loader - use it to load regions: loader_region loader; if (!loader.load (filename)) error; - regions should now be the very first filetype that could be reloaded at runtime
- add visibility_at to players (only), might/should be an object method - mood spells only affect visible spaces now.
- implement per-space regions
added checkrusage extension
- move util/world.png to server/lib/ (should go to maps/world.png, but I will not fiddle around with that now) - compile worldmap to world.pst and install it. - rename FLAG_NO_SAVE to FLAG_NO_MAP_SAVE - define FABS to fabs, as intended - fix all(?) the FABS(int) calls
- rename Animations => animation - rename New_Face => facetile - add but do not implement some generic loader framework classes
- fix a horrendous bug that might have caused all the map corruption - optimise/modernise some map-insert-related stuff - fix debug_desc - remove crypt configury - minor adjustments/cleanups
comments
- faster implementation for isqrt - add fast idistance approximation now find_dir_2 has moved to the top of the profiling output for mlab/cwdccastleofmarquis3, followed by get_rangevector, hit_map and ok_to_put_more.
- 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
*** empty log message ***
WARNING: this release is BROKEN - rewrote map handling. map types are now completely pluggable, maybe *too* pluggable, as everything is a plug-in now. - mark mandatory extensions as such. - handle overloaded attachable objects correctly. - many minor changes.
added some copyrights
- use new Coro::guard - removed cf::guard - better map loading error messages - more robust map header parsing
bugfix
- word of recall activated the player indirectly - implement maptile->xy_find and xy_load - separate find and load, even on C level - generate map_leave/enter and map_change events even for tiled map changes (experimental) - implement mainloop freezeing by start/stop, not skipping ticks - no map updates when player !active
removed last references to 'editor' variable.
initialised :)
minor changes, follow command still borked
set original flag so decay object doesn't go wild
use freezer api for saving players, too
- random maps seem to work now - had to move map parameters into files because we need constant-sized map path lengths as the full map stack history would have to be included.
many minor changes everywhere, random maps crash sometimes but design is in place
different interface design for c++/perl map handling, some random map framework
fix some bugs
random maps are nphard
minor fixes, apartment hopping seems to work now
preliminary snapshot check-in, DO NOT USE IN PRODUCTION SYSTEMS See the Changes file for details
i cannot find, nor reproduce, the problem at all. the log clearly shows map loads where there shouldn't be any, so we lose maps. but only on cf.schmorp.de. i am frustrated.
misc stuff
introduce for_all_maps
- added maptile->insert and object->insert_at methods that might make code using it clearer. - replaced some insert_ob_in_map calls.
- some fixes - disable some refcounting again, not ready yet - simplify save_object
emergency checkin
the big rename
interim.checkin
- small, but subtle, rewrite of object management - perl will now keep attachable objects alive - objects are now refcounted - refcouts need to be tested explicitly (refcnt_chk) - explicit destroy is required current - explicit destroy asks "nicely" for the object to self destruct, if possible - refcounts will be used during mortal killing - minor bugfixes, optimisations etc. - some former hacks removed.
- mapspace caches are now reevaluated only on-demand only - "heavily" optimised get_map_flags - it might be MUCH faster now - some cleanups - some deoptimisaton in update_object - enabling it makes some bigfaces disappear when they are not fully visible. why?
- minor cleanups - minor optimisations (in_player vs. is_player_inv) - added P_PLAYER map flag - some (dead) concept code
- check for in-memory map headers on login, so players end up on their random map (which has no file) again. (this is more efficient in the general case anyways - in case the temp map does not exist, the emergency position is used. (an alternative that avoids this is to make the file some real map (like per-player maps))
- implement event watcher autoncancellation on reload - used it everywhere - removed lots of compatibility cruft - configure does no longer check for mandatory unix functionality/headers - confgiure now runs much faster
- medium decruftification - medium cleanups - make settings accessible to perl using cf::settings->mutator (completely untested)
limit difficulty in treasure generation to 1..max_level
- more ooficiation - removed now superfluous remove calls
replace some function- by method-calls
removed #ifn?def WIN32 from all files
- removed or commented out unused variables - fixed one signedness issue (should work.. uint64 to sint64.. just what about the shopmax still being uint64?)
*** empty log message ***
people, read the manpages, damnit
move objects onto a special freed objects map (2)
considerably reduce size of crossfire.0 (~400k pngx, ~150k file format)
*** empty log message ***
mapstruct => maptile removed many ytypedefs in favor of structure tags
indent
indent
*** empty log message ***
c++ification
Cleaned up code a little.
*** empty log message ***
major map loading speedups
*** empty log message ***
Changes... - alternative shstr representation, saves code - use glibs splice memory allocator (seems slower) - use simpler memory/lifetime management for objects, no recycling
string scanning (e.g. for patch) is not implemented ATM but should be easy to add with an alternative constructor for object_thawer. Rewrote flex scanner to be simpler, faster and more modularised. Initial speedup: 16% (ah well)
THIS CODE WILL NOT COMPILE use the STABLE tag instead. - major changes in object lifetime and memory management - replaced manual refcounting by shstr class - removed quest system - many optimisations - major changes
*** empty log message ***
rewrote object serialiser, parser is next
*** empty log message ***
remove compression support, intiialise perl earlier etc. etc.
fixes
improve thawer interface, implement some monster event support
removed safe_map
disable old-style plug-ins, implement attach-field for map headers and map attachments
implement destroy event for objects and maps, implement loading of persistent map header
improved,more automatic freezer
first, untested persistent objetc storage for players and objects, not yte for maps
many, many cleanups
removed debugging message
fixed the map saving to be backupped in future. and added some flag logic to update_position, but the messagein the log: 2006-08-20 20:52:59 update_position: updated flags do not match old flags: /scorn/shops/tradeshop (old=10,new=15) 0 != 2a still looks very bogus to me.
added unlink to a strategically interesting place in the FUCKING CODE
renamed SAFE_FLOOR to SAFE_GROUND
removed P_SAFE_MAP and added P_SAFE as map flag set by an item with type SAFE_FLOOR (165)
added a safe_map flag which prevents bad effects on maps that should be safe, like some shops and for example the trade shop in scorn.
Made server compile with C++. Removed cfanim plugin and crossedit. C++ here we come.
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.