some range based for loops
copyright update 2018
remove eol whitespace
copyright update 2016
respect mapspace limits in create food/missile
introduce weight_t, make it unsigned
trailing space removal
only load the highscore file once
remove unused variables, kernel_panic
update copyrights to 2012
*** empty log message ***
update copyright to 2011
more fully support RANGED
*** empty log message ***
find_makr_object > mark, fix throwing
get rid of QUERY_FLAG/SET_FLAG/CLEAR_FLAG macros that I always hated
*** empty log message ***
better
better apply_below, get rid of player_apply
optimisations
refactoring
the skill x => the x skill
interim check-in
preliminary check-in with dbeugging code
charge(s)
remove bogus 2007 copyright that was added wrongly by the script, update to affero license
more utf8 marking
*** empty log message ***
added lock/unlock patch from shawn robinson.
*** empty log message ***
*** empty log message ***
material overhaul
*** empty log message ***
lots of cleanups
make effectively static symbols actually static, part 1
*** empty log message ***
Make slag no_drop so it can't be dumped out of cauldrons. Fix bug where no_drop items can be transferred between containers.
Add inscribable arches for other book types. Use 'container'/weight_limit to define capacity of inscribables in characters. Add treasures/arches to specify books with/without text. Scorn and Navar Public Libraries use these so they don't generate inscribables. Fix bug allowing theft of blank books from libraries. Fix bug preventing adding an adjective to a book name if the titles are used up. Change error message on reading empty book to be more clear. Change error message on failed inscription [too much text] to be more informative. Looking at an inscribable will tell you what you can do with it/what its capacity is in a hint. Fix broken debug statements in book generation.
clarify license
*** empty log message ***
*** empty log message ***
*** empty log message ***
*** empty log message ***
*** empty log message ***
afaik, this was a disastrous bug
*** empty log message ***
added new lamp and torch system.
*** empty log message ***
*** empty log message ***
fix crash bug in apply_sign
nuke old autopickup
*** empty log message ***
*** empty log message ***
is_in_map_or_inv => is_inserted.
refactored drop code a bit, and hopefully fixed some bugs with it.
fixed 1 minor and 1 major bug in drop_object.
destroy (true) => destroy ()
do the same everywhere else
minor improvements
reformatted some messages, introduced an experimental \r without any fucntion yet
introduce and use object::has_dialogue ()
rewrite remove/insert linking functions, hopefully faster and more correct
*** empty log message ***
*** empty log message ***
selling of things a shop is not interested doesn't work anymore
*** empty log message ***
see Changes
- remove all "obviously safe" uses of esrv_del_item.
- fix weight/pickup bugs, visible_to - do more automatic nrof/weight updates - kill funcpoint.h
- fix weight update on insert-merge - refactor get_split_ob into ->split, taking advantage (partially only) of split managing client updates.
*** empty log message ***
reloadable archetypes, maybe
do not include @xxx messages in objetc desacriptions handed out to the user
moved update_stats from the inner drop/put loop to the callers. and converted some old messages. also hard limited pick_up now.
implemented drop item limit and fixed small performance problem in is_in_shop()
update copyrights and other minor stuff to deliantra
- clean up message system, combine all boxes into one. - suppress too long messages (we need a more robust solution to this problem). - get rid of INS_MAP_LOAD, leading to slightly cleaner/faster code and certainly one special case less. - insert objects manually at load time, this is both faster and also more correct, as loading a map is never supposed to trigger anything (and also for symmetry to the save code).
*** empty log message ***
- 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.
- improve observe - remove more cruft code - archetype loading almost works again, reloading probbaly still borked.
update copyrights in server/*.C
- 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.
fix weapon speed to be more in line with documentation
almost works
- rework body locations to give betetr feedback and make use of combat and shield slots.
do not output archetypes with names starting with type_ or class_, a bit of a hack
- 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
- skill system is looking as if it were going somewhere, slowly. - support a regex argument to who to limit user reports.
need to learn c properly
why oh why those stupid bugs again and again
- implement a rudimentary framework for a "msg" command that replaces drawinfo and drawextinfo and allows for simpler usage in simple cases and extensibility for the less complex uses. - moved the character race choosing logic into perl, making use of the new msg command if the client supports it.
use g_slice for dynbufs
- add format utility function. - split dynbuf into dynbuf and dynbuf_text. - use dynbuf_text for examine strings instead of outputting each line seperately. tried to use stringstreams but they add insane overheads (as does std::string, but less so).
- 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.
- run, fire, mark in perl - no more NewServerCommands
- avoid floorbox updates when client has container open, this completely confused gcfclient, although completely valid by the protocol (and of course, cfplus didn't even notice it).
interim check-in for server upgrade
comments
- added $cf::WAIT_FOR_TICK* - tuned map-scheduler and player-scheduler - added $op->inv_recursive - added objects_size/objects($index) and actives_size/actives($index) for access to the object and actives vector. - more robust player loader - removed _perl_data attribute support - SIGINT/TERM/HUP are now safe as they are handled synchronously. - replaced LOOK_OBJ by client_visible - cleanups
""
added some copyrights
add some robustness checks, add map find/load locking
replace update_ob_speed by ->set_speed
- 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".
- minor cleanups - minor optimisations (in_player vs. is_player_inv) - added P_PLAYER map flag - some (dead) concept code
- hide floorbox implementation details - use meaning (hopefully) names
- rewrote most of the socket loop code - moved connection accept into tcp.ext - no evil socket copying anymore, needs more cleanups
no generation counters anymore
- more ooficiation - removed now superfluous remove calls
replace some function- by method-calls
reduced dependencies on old plug-in api, fixed some bugs and renamed some methods while I was at it.
updated and applied newpickup flesh patch by benoƮt <bencha1969@yahoo.fr>
more now invalid tag_t uses replaced by refcounting. reduced codesize quite a bit.
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
replace was_destroyed by much simpler and less expensive ->destroyed, which is valid, as objetc pointers are now reliable.
indent
remove rename command and implement lots of extra perl support
- improve assign to prepend "..." - make more use of assign - implement op->debug_desc() and make some more use of it
indent
Some cleanups.
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
removed all the broken SHOP_FLOOR checks and replaced them with the is_in_shop () check function.
expand initial tabs to spaces
nuke transports
better but more wasteful serialisation support, perl can invoke events, fixes
further refinements
intermediate check-in, per-object events work
for EVENT_DROP iterate through all objects on the space now.
preventing renaming of unpaid items.
removed debugging output
fixed bug in cf.pm when unloading extensions. added EVENT_DROP_ON for the trade shops and made query_cost using double
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.