many bugfixes
lotsa
rewrite objetc_create_clone to deep_clone and fix randfom map generator bug
kv rewrite
- 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.
refactor decrease_ob* into ->decrease method.
minor refactoring
reloadable archetypes, maybe
update copyrights and other minor stuff to deliantra
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.
its never working on first try
- 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.
- unrelated change, replace get_attr_value/set_attr_value by a nicer to use stat member function. should really replace the struct values by an array.
- 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 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.
- 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.
remove clockdata and base it off of the runtime; improve the tod code.
- 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
rework material code in preparation for nuking object->materials, also add some useful object methods in preparation of the mapspace limiting
rewrote region parser, changed region fileformat a bit
partial region cleanup
just experimenting
more micro-optimisation, use idistance, min is faster than MIN
- faster implementation for isqrt - add fast idistance approximation now find_dir_2 has moved to the top of the profiling output for mlab/cwdccastleofmarquis3, followed by get_rangevector, hit_map and ok_to_put_more.
- micro-optimised hit_map and ok_to_put_more, this immensely helped reduce load on dense maps. - introduced xy_normalise, which is imho a saner interface and much faster than get_map_flags so should be used in new code (and time-critical code).
preliminary snapshot check-in, DO NOT USE IN PRODUCTION SYSTEMS See the Changes file for details
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?)
- 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.
- make client_socket accessible to perl - on linux, record rtt and rttvar - who shows rtt/rttvar
- 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
- medium decruftification - medium cleanups - make settings accessible to perl using cf::settings->mutator (completely untested)
- more ooficiation - removed now superfluous remove calls
replace some function- by method-calls
removed regex comparison. this is now done with perl
move objects onto a special freed objects map (2)
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.
cleanup
implement owner pointer using refcounted refptr templates
fix a few ugly pod-constructs on non-pod objects, and a few newly introduced bugs
genaccess, take two
major map loading speedups
Changes... - alternative shstr representation, saves code - use glibs splice memory allocator (seems slower) - use simpler memory/lifetime management for objects, no recycling
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
remove compression support, intiialise perl earlier etc. etc.
rewrote parts of the connection code, which now is completly perl invoke- and overrideable.
improved,more automatic freezer
first, untested persistent objetc storage for players and objects, not yte for maps
redone formula for level calculation of rods, staffs, wands and scrolls
distconf
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.