update copyright
- fix weight/pickup bugs, visible_to - do more automatic nrof/weight updates - kill funcpoint.h
refactor decrease_ob* into ->decrease method.
reloadable archetypes, maybe
better logging, remove cruft
*** empty log message ***
update copyrights and other minor stuff to deliantra
finally remove the old buggy plug-in cruft
- 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.
- support more than the gcfclient-20-something sounds (dire hack) in sound.conf.res - implement "sound" face for archetypes/objects. - play sound face in signs either on map (triggered) or on the player reading it.
- 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.
untemplatise the problematic put
- 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
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.
some more structure optimisations saving lots of code
reset (some) signal handlers to default after fork, limit the number of concurrent async backtraces
rewrote output buffer handling. the new system: - outputs messages immediately. - suppresses following duplicates. - enforces a minimum setting. - is, as usual, faster and leaner. the only problem is that the code worked out of the box, which is not reassuring.
- implement "random encounters" by simply populating the worldmap randomly by region. - allow treasurelists to silently forward-reference archetypes (should have an extra checkign path for never-defined archetypes) - fix GT_ENVIRONMENT, which had the semantics of putting treasure items _and_ their inventory on the floor, now only puts the items themselves on the floor. - remove warning about generated inventory - some items simply can come with an empty inventory. - do some other minor improvements.
- load_resource_file cna now load archetypes, regions and treasures freely intermingled. archetypes and treasures makes a lot of actual sense, too. (this has not been tested, but unlikely not to work :)
- treasurelists and regions can now be freely mixed within the same generic resource file. more to come.
VERY EXPERIMENTAL - change the way archetypes and treasurelists are being loaded: - referring to a nonexisting treasurelist will create an empty one - referring to a nonexisting archetype will create an empty one - archetypes/treasurelists will overwrite any existing object of the same name. - net effect should be to allow reloading of archetypes and treasurelists at runtime at a later stage.
move animation info into facedata and make it reloadable at runtime
- get rid of dreaded JSON::Syck, it made me Sick. - disable concept checking.
- 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.
- send smooth faces automatically with their base face, anything else just complictaes everything and clients who want smoothing would requets the face anyways. - this reduces the size of struct client considerably, from 300k to about 300k (whoops).
- 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
clean up makefiles, add dummy pod.pm
remove default_smoothed images - unused. remove references to mythical sdefault.001 / default_smoothed.111 image from server code.
*** empty log message ***
- useless µ-opts - use maximum norm in get_rangevector (a bit, should use more)
µ-update
- 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
- rename Animations => animation - rename New_Face => facetile - add but do not implement some generic loader framework classes
comments
""
added some copyrights
be nicer to clients on shutdown and crashes
removed last references to 'editor' variable.
more use of shstr where it makes sense naturally
preliminary snapshot check-in, DO NOT USE IN PRODUCTION SYSTEMS See the Changes file for details
- 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?)
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
the rename for sanity campaign hits you died - renamed stuff - partially updated copyrights - some cleanups
moar\! rewrite\!
continued simplifying network code, partially removed support for sc protocol 1026
started simplifying network code
- medium decruftification - medium cleanups - make settings accessible to perl using cf::settings->mutator (completely untested)
- simplify headerfiles (this is the 21st century) - remove long long hacks for printf etc.
removed #ifn?def WIN32 from all files
more now invalid tag_t uses replaced by refcounting. reduced codesize quite a bit.
mapstruct => maptile removed many ytypedefs in favor of structure tags
indent
fix races, fix switch case 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
use alternative shstr representation, might or might not be faster, but does save code
everything seems to work so far
*** empty log message ***
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 object serialiser, parser is next
*** empty log message ***
remove compression support, intiialise perl earlier etc. etc.
expand initial tabs to spaces
- added cfperl.h, soon to be used by events - no perl == exit, its no longer optional - moved server main loop entirely in perl - removed lots of unneeded timekeeping cruft
Made server compile with C++. Removed cfanim plugin and crossedit. C++ here we come.
Adding setting to allow for portals in apartments and other personal maps.
Adding support for race-specific HallsOfSelection
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.