update copyrights and other minor stuff to deliantra
*** empty log message ***
*** empty log message ***
- clean up stuff - get rid of map_load lock - improve change_object
first round of infobox and c++-level channels
cleanup, new unused clear flag
*** empty log message ***
*** empty log message ***
first, untested, try at spicing up the message system
- 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.
tweaked sound a bit, added death sounds with another property (wastage?)
adjusted digestion algorithm and clamped in limits
riddifed the world of safe_strcat
- 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.
- 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.
- upgrade crossfire trt to the GPL version 3 (hopefully correctly). - add a single file covered by the GNU Affero General Public License (which is not yet released, so I used the current draft, which is legally a bit wavy, but its likely better than nothing as it expresses direct intent by the authors, and we can upgrade as soon as it has been released). * this should ensure availability of source code for the server at least and hopefully also archetypes and maps even when modified versions are not being distributed, in accordance of section 13 of the agplv3.
- archetype is now a subclass of object. - store archetypes in an object_vector. - use a different startegy for archetype loading (reloading is MOST CERTAINLY broken).
- update copyrights in .h files, where applicable - rename preprocess to genkeywords
- optimise invoke by using an inline check on a bitset (kind of a simplified bloom filter for all events).
- more rewrite: change_skill now only changes the chosen_skill, nothing else. new flag to suppress skill tool behaviour of readying the skill when applying the tool, for use in find_skill.
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.
lots of little changes: - fix MIN/MAX_AC/WC and use them - abstratc weapon speed into player->weapon_speed, as it is just way too confusing and probably needs frequent updates :) - use ob_speed/weapon_sp * 0.5 as an arbitrary real attack speed .5 needs tuning, elsewhere, but ahs been put in as a stopgap measure. - fix speed issues, properly use weapon_sp (if a bit lagged) - clear current weapon when readying skills because a skill might already be readied implicitly.
*** empty log message ***
*** empty log message ***
only allow one range weapon to be applied at any one time, some dynbuf fixes
implement two new flags and associated gadgets: - FLAG_PRECIOUS: used to mark precious pet monsters. semantics are not fleshed out yet, but destroy_pets floors leave them be. ideas: save them to the player file, do not kill with killpets (but only with killpets all), try harder when following player on other maps. - FLAG_TREASURE_ENV: put treasure into the environment instead of into the object, useful for terrain types on the worldmap. - bumped chance field in treasures to 16 bit (ideally float).
having a) monsters as treasures b) multipart monsters as treasures and c) multipart monsters as terasures on tiled maps... hit a big pile of bugs again. this change: - implements a per-map active flag. when items are being inserted they are activated or deactivated according to that flag. this could get rid of most or even all of the explicit activate/deactivate calls. - implement some glue to make instantiating multipart objects easier (this is used inside fix_multipart_objects and might make it possible to put multipart objects at map borders - those were winged before) - do finer-grained locking as to not lead to deadlocks when insert recurses e.g. when loading tiled maps.
add ship move type
fixed placement problems in random map generator and removed MOVE_BLOCK_DEFAULT and replaced it's uses with MOVE_WALK.
- MAJOR CHANGE - you now need to use cfutil to install arches. - former bigfaces are broken in the server - bigfaces are no longer supported. at all. - use face numbers instead of pointers * saves lotsa space * saves lotsa indirections * saves lots(?) cpu cycles - completely rewrote face handling - faces can now be added at runtime - reload will add new faces - this does not apply to animations - use a hastable instead of binary search (faster) for faces - face caching is broken - facesets are gone - server always reports MAX_FACES to any client who asks
remove default_smoothed images - unused. remove references to mythical sdefault.001 / default_smoothed.111 image from server code.
- remove google sparsehash dependency again, its actually slower than gcc's current std::tr1::unordered_hash. - remove hardcoded archtable code - the archetypes table is now no longer limited by an hardcoded constant but can grow dynamically at runtime. - removed some cruft
- experimentall.y determine minimum random map size (12) - harden random map generator by stresstesting - reduced codesize while increasing readability (RANDOM => rndm) - fixed a likely unimportant bug in random_roll64 - possibly broke lots of code
- 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
RANDOM was broken due to signedness issues, also rewrote random_roll, no longer uses luck, but should
just experimenting
fix possibly uninitialised kx,ky because find_free_spot does not seem to guarentee a result
comments
- 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).
implement new flag_no_save to avoid saving
- more improvements/fixes - timestamp with millisecond accuracy, horrible code
added some copyrights
.111 -> .x11
fixed the problem where objects with speed=0 were on the active object list. extended debug_desc a bit. implemented object::has_active_speed ().
preliminary snapshot check-in, DO NOT USE IN PRODUCTION SYSTEMS See the Changes file for details
- implement (mostly untested) array member support for genacc - make some arrays and other members available to perl - redefined meaning of NUM_FLAGS (really meaning number of flags now, as the code assumed anyway). - moved afk flag to client, where it belongs (make sno sense to save it, is also true for wiz &c). - updated extensions to reflect all that (Jewler.pm should be tested w.r.t. resistances)
- rename flags => flag (because its rpedominantly used singular), - remove remaining use of the flags array semantics
- made state a per-client variable (that does not magically make state a per-client thing!) - rename player->socket to player->ns. its not a good name for "client", but it is an historical artifact, and better than "socket".
- made client a first-class crossfire-perl object (its attachable), but perl support is missing. - added some client events - fixed reply not working after logout
changed the type 0 description to reflect the realworld a little bit more reasonably...
removed TOOL and BUILDFAC which were also dead types.
removed dead types: FIREHOLES and POISONCLOUD.
removed LIGHT_SOURCE, MONSTER and SPAWN_GENERATOR types.
removed TRAP_PART, renamed WALL to BUILDABLE_WALL to reflect the usage of this type these days and fixed generic destroyer not to remove players and other objects that can crash the server (hopefully).
removed QUEST and LIGHTNING types.
removed EXPERIENCE type.
reformatted definitions
removed FLAG_TREASURE as it is not used by the code and not by the archetypes or in maps.
ooification
- remove recycle_tmp_maps setting (hardwired to true) - replace object->flags by std::bitset, seems to be way more efficient, for some unexplainable and not looked-into reason. its way cleaner, too...
I goofed.
more slight copyright adjustments
- 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
removed #ifn?def WIN32 from all files
updated and applied newpickup flesh patch by benoƮt <bencha1969@yahoo.fr>
enlarge killer and other fields, do not use silly BIG_NAME with no meaning.
indent
indent
indent
expand initial tabs to spaces
some more fixes and refinements
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)
UPSTREAM merge from 15.03.2006
UPSTREAM_2006-02-22 merge
initial cfperl/cf.schmorp.de import
Initial revision
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.