finally remove the old buggy plug-in cruft
very very preliminary, non-working sound framework
- 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.
removed cf_object_create from THE FUCKING PLUGIN API THAT SUCKS
- 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).
rename arch->name to arch->archname for preparation of subclassing object
update copyrights in server/*.C
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.
- reduce default output-sync to less than a second - output-sync command now uses seconds as unit, not something users cannot even know. - lots of useless const adjustments.
nano-cleanups
fix dead code to confuse me less
partial region cleanup
""
started a fix of the log
- style maps need very special treatment - cf has a nonzero chance of crashing in a random map
preliminary snapshot check-in, DO NOT USE IN PRODUCTION SYSTEMS See the Changes file for details
the big rename
- 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.
an experiment
- improved login code - removed some cruft code and (finally), the player_pod hack
- preliminary check in, stuff is rudimentarily working - moved most of the player creation process into a perl coroutine - changed internal design of player management to not reuse and morph the object in funny ways. should be safer and much nicer to handle. - got rid of some annoying hacks, such as clear() (TODO: get rid of player_pod and other stuff now unnecessary?)
- 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".
- 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
reverted the last change to move_apply and check_inv and fixed check_inv differntly: as all the buttons and pedestals check themselves whether the objects above them satisfy their conditions i thought the best would be if check_inv would do the same. The new semantics are compatible with the semantics used by the map makers (at least i hope that) and won't end up in a broken state so easily now. While fixing check_inv i documented inventory checkers in objects.pod
Added a parameter to move_apply that indicates whether something moved on or off and changed check_inv to take the same additional argument. An inventory checker is now mostly state-independend and a bad state is corrected now if the inventory checker is activated. While fixing that i've documented the HOLE type and FLAG_ACTIVATE_ON_(PUSH|RELEASE) in objects.pod.
- hide floorbox implementation details - use meaning (hopefully) names
- 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
- rewrote most of the socket loop code - moved connection accept into tcp.ext - no evil socket copying anymore, needs more cleanups
further cleanups and oofication
added a needed abstraction
- more ooficiation - removed now superfluous remove calls
replace some function- by method-calls
removed #ifn?def WIN32 from all files
removed regex comparison. this is now done with perl
added many accessors and mutators to struct player, including *title* and (hint, hint) *own_title*
mapstruct => maptile removed many ytypedefs in favor of structure tags
indent
cleanup
indent
indent
generic accessors, take one
Changes... - alternative shstr representation, saves code - use glibs splice memory allocator (seems slower) - use simpler memory/lifetime management for objects, no recycling
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
- added ready/unready/can_apply events and their passive versions - removed support for event_*-fields in maps - removed support for current_weapon_script - removed timers - removed say/shout/Tell and related commands
disable old-style plug-ins, implement attach-field for map headers and map attachments
intermediate check-in, per-object events work
many, many cleanups
converted more events, broken per-object events (needs map support), lots of fixes
Implemented a rough outline of the new event system and made use of it for a number of events. The corresponding plugin-events have been disabled.
converted perl to a mandatory / non-dynamic plug-in, firts step to put it fully in-core
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.