some bugfixes
*** empty log message ***
copyright update 2018
freearr => DIR
remove eol whitespace
*** empty log message ***
*** empty log message ***
copyright update 2016
*** empty log message ***
trailing space removal
remove unused variables, kernel_panic
*** empty log message ***
update copyrights to 2012
*** empty log message ***
update copyright to 2011
*** empty log message ***
*** empty log message ***
use set_speed to change speed
*** empty log message ***
theoretical fix
*** empty log message ***
*** empty log message ***
get rid of QUERY_FLAG/SET_FLAG/CLEAR_FLAG macros that I always hated
update copyright for up to 2010
remove bogus 2007 copyright that was added wrongly by the script, update to affero license
move_ob/move_object => ->move
-instance, some los fiddling
*** empty log message ***
speed is positive inside the server
lots of cleanups
make effectively static symbols actually static, part 2
make effectively static symbols actually static, part 1
*** empty log message ***
*** empty log message ***
clarify license
just a simplification
*** empty log message ***
dimdoor spellarg
adjust los lightness a bit
fixed logic a bit.
reenabled 'hack' again, it's neccessary ;-/
removed animation hack in move_lamp again.
made torches automatically update their animation if they are on.
added new lamp and torch system.
add originator
centipedes shouldn't flood old scorn so fast now.
destroy (true) => destroy ()
introduce drop_and_destroy and use it
do the same everywhere else
use SP_casting_level for effective casting level calculation
verified thta we indeed don't do any 'illegal' arch* == arch* comparisons
implement pit range field
*** empty log message ***
rewrite objetc_create_clone to deep_clone and fix randfom map generator bug
see Changes
- remove all "obviously safe" uses of esrv_del_item.
update copyrights and other minor stuff to deliantra
fix crahs bug when doors are at the map border
correctly check wether enoughbourign map spaces exist when removing doors
- quick work around for gate-move-bug. the real fix is probably to either give everything a movetype OR to treat movetype 0 as special (can move anywhere if there is at leats one movetype not blocked). the latter was too big a change for me to do it, thus just the workaround. - do not do locking on i/o anymore.
- rewrite/cleanup ob_blocked a little. its more efficient now, probably has less bugs and more bugs. - get rid of now unused P_NO_PASS.
- clean up stuff - get rid of map_load lock - improve change_object
- create a new class, mapxy, which abstracts a mapspace position. - rewrite move_arrow to take advantage of this new experiemntal class. I don't understand move_arrow, but the code without doubt became clearer and simpler. this opens the way of rewriting the rather clumsy get_map_flags etc. API into something more efficient below mapxy.
*** empty log message ***
do not regenerate hp and sp when food is zero, this is ridiculous. the logic seems rather convoluted and broken, too
- monster generators now look for a free sport first instead of creating a monster then destroying it because it didn't fit. - only generate sounds for destroyed head objects.
set identify for created objects by creators
*** empty log message ***
- 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.
*** empty log message ***
*** empty log message ***
- 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
µ-opts
update copyrights in server/*.C
- 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
some more optimisations
new speed management: - weapon speed and object speed is now completekly decoupled for players. - both can be used at the same time, or indeepndent, when running or firing. - still only one command per object speed can be issued.
some floatingpoint µopts
lots of speed logic changes
*** empty log message ***
cleanup
combine all the generator functions that became really small now into a single one
rewrote and greatly simplified generator code. if there were any issues with elmex' monster-in-inventory stuff then they should be fixed by now.
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.
fix broken images on missile reflection by using the right function for the job
fix broken images on missile reflection by using the right function for the job
- rewrote more face handling code - automatically send smooth faces, as the client will need them anyways and it makes little sense to wait for the client to axk for it. of course, gcfclient suffers from weird ordering problems again. - UP_OBJ_FACE was often abused in situations where other things changed, updated lots of spaces, probably more to be done. - update_smooth became so small that inlining it actually clarified the code. similar for update_space, which is not inlined for other reasons. - faces were not initialised properly - add versioncheck for face data - rewrite invisibility handling a bit: god finger etc. now makes you blink, blinking routine has changed to be less annoying and more useful while still indicating invisibleness.
- 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
uglyness prevails in fixing nekosan
remove many strcmps on shstr, added fast strcmp wrapper that only tests for inequality
indent
- fix This exit is cloed on login because the maplevel of players not on any map was not saved.
""
added some copyrights
small formatting change
add some robustness checks, add map find/load locking
more use of shstr where it makes sense naturally
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
more cleanups and bugfixes, we are reaching a local peak of stability now
replace update_ob_speed by ->set_speed
simplify logic in apply_builder_remove, let update_ob_speed work if the objetc is in delayed destruction
- 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.
- 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?)
- reduce map memory consumption by reserving space for only the 3 existing layers - factorise out some functions into mapspace and object
removed QUEST and LIGHTNING types.
- minor cleanups - minor optimisations (in_player vs. is_player_inv) - added P_PLAYER map flag - some (dead) concept code
ooification
further cleanups and oofication
- more ooficiation - removed now superfluous remove calls
replace some function- by method-calls
re-implement dump and dumpbelow
fix yet another crash bug
mapstruct => maptile removed many ytypedefs in favor of structure tags
indent
aggressively use refcounted pointers for object references - seems to fix all random stomping. also reduced size of object further from originally 656 to 624 bytes
indent
indent
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
rewrote parts of the connection code, which now is completly perl invoke- and overrideable.
expand initial tabs to spaces
nuke transports
- 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
further refinements
intermediate check-in, per-object events work
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.