- fix weight/pickup bugs, visible_to - do more automatic nrof/weight updates - kill funcpoint.h
- implement archetype gc - implement "proper" refcounting for arches - serialise resource file loads - implement memory poisoning - minor cleanups
reloadable archetypes, maybe
*** empty log message ***
update copyrights and other minor stuff to deliantra
- implement archetype->instance as replacement for arch_to_object (better name?) - fix arrows merging with stuff on floor - fix level_for_item to read more clearfly, do not use drand48 and fix the random level generation when !level set. - splay arrow container in find_arrow (but searching containers is still borked?) - improve create_missile spell.
tentative fix to self-referencing archetypes. archetype reloading still does not work correctly but at leats we have the status quo again
- 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.
- inherit some flags from the head (probably should inherit everything, the whole object, but thats for later). this makes speed-relevant code faster and simpler.
- new map header boolean "no_reset 1" to deny reset. - allow reset of per-player maps, effectviely implementing player-private dungeons. - re-enabled reset-on-load feature again. - remove fail-safe mechanism that prevented per-player maps from being reset. keep your fingers crossed. - fixed two bugs in archetype finding (archname vs. object name). - singularities no longer crash the server but will log a backtrace now as they are really are fatal.
much better bug handling
- improve observe - remove more cruft code - archetype loading almost works again, reloading probbaly still borked.
- 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 common/*.C and util/*.C
- prepare common/ for head_ => head change - add some copyrights for files where they were missing
do not output archetypes with names starting with type_ or class_, a bit of a hack
some hacks/fixes to make multipart treasures work on worldmaps only
set the name on generated archetypes to void obvious crashes - should check for a special 'defined' flag in addition after loading
commented out inherit functionality in the server fort he time being, it is just too beatiful to remove and might come in handy when we put archetypes in maps (which would be trivial to implement by now)
implement inherit keyword which can optionally follow "object" and uses the archetype referenced by it as a template. unlike other references, no forward reference is possible, the referenced archetype must be known and defined. (current Crossfire perl module is required) example usage: object doubledemilich inherit demilich hp 2000 maxhp 2000 speed 0.75 attacktype 70680 unaggressive 0 end
parse_kv now behaves like other parse functions
- 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 :)
cede less often in background tasks while still reducing jittering
replace AUTODECL by auto. this is the first time in my life, I think, that I redefined a keyword - fortunately only with arguments
- make archetypes reloadable, pretty please - load archetypes twice at server startup, to stress-test this for the time being
rewrote archetype loader to try harder to cleanly replace archetypes
load archetypes and treasures from perl, make terasures reloadable
- rewrite treasure parser to new framework just for fun. - actually call load_treasures again. - fix bugs.
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.
*** empty log message ***
es gibt keine tiles mehr
- identified random memory corrutpion bug - fixed most likely cause for bug above - rewrote object loader etc. into a simple one-line lookahead parser. - rewrote/cleaned up archetype, treasure, artifact, formula parser. - some optimisations / cleanups
minor stuff, indent
Object => object
fix
cleanups and speedups
- 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
comments
added some copyrights
set no_drop flag on all inv items of created objects (e.g. pets), experimental.
timestamp before arch-pass 2
many minor changes everywhere, random maps crash sometimes but design is in place
- 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.
further cleanups and oofication
added a needed abstraction
- more ooficiation - removed now superfluous remove calls
replace some function- by method-calls
*** empty log message ***
* remove arch.h * use refcounting for archetypes * cleanup * strat of generic garbage collector
re-implement dump and dumpbelow
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
indent
cleanup
presuppose iso c++0x
make use of slice_allocator and inline zero_initialised
- improve assign to prepend "..." - make more use of assign - implement op->debug_desc() and make some more use of it
indent
indent
genaccess, take two
Cleaned up code a little.
*** empty log message ***
string scanning (e.g. for patch) is not implemented ATM but should be easy to add with an alternative constructor for object_thawer. Rewrote flex scanner to be simpler, faster and more modularised. Initial speedup: 16% (ah well)
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
introduce overhead in the hope of decreasing it at some point
improve thawer interface, implement some monster event support
expand initial tabs to spaces
- 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
improved,more automatic freezer
first, untested persistent objetc storage for players and objects, not yte for maps
intermediate check-in, per-object events work
many, many cleanups
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.