--- crossfire/include ---


Protocol:pserver User:anonymous
Machine:crossfire.cvs.sourceforge.net CVSROOT:/cvsroot/crossfire

Filename: libproto.h
Revision 1.99ryo_saeba 2006/08/26 12:56:22 +0 -2
Remove obsolete event system.
Show difference between Revision 1.98 and 1.99
Revision 1.98qal21 2006/08/25 22:30:15 +1 -0
Make generators work properly with multi-tile objects.
Show difference between Revision 1.97 and 1.98
Revision 1.97ryo_saeba 2006/08/19 15:22:21 +1 -0
Fix for bug #1460251 (Big monsters generated by generators broken). Tweaks to object dumping.
Show difference between Revision 1.96 and 1.97
Revision 1.96tchize 2006/07/02 10:32:35 +1 -1

more progress in unit testing, marked points of interrest in code
Show difference between Revision 1.95 and 1.96
Revision 1.95tchize 2006/06/03 13:28:08 +4 -22

made a few methods in object.c static and created empty checks.
Methods in object.c that weren't used anywhere else were made static.
Methods in object.c that weren't static where assigned an empty test in check_object.c
Show difference between Revision 1.94 and 1.95
Revision 1.94akirschbaum 2006/05/21 07:22:29 +0 -2
Declare some functions as "static".
Show difference between Revision 1.93 and 1.94
Revision 1.93ryo_saeba 2006/05/05 04:47:40 +1 -1
Third and last part of patch #1453869 courtesy Stefan Huehner (shuehner)
Show difference between Revision 1.92 and 1.93
Revision 1.92tchize 2006/04/06 16:18:35 +16 -8

finished common/arch.c unit test, fixed a few bugs, moved function around and renamed other
Show difference between Revision 1.91 and 1.92
Revision 1.91ryo_saeba 2006/03/18 11:15:24 +3 -5
Use const when possible. Patch courtesy Stefan Huehner.
Show difference between Revision 1.90 and 1.91
Revision 1.90ryo_saeba 2006/03/18 09:05:32 +5 -6
Massive cleaning of code. Shouldn't be any functional change.
Show difference between Revision 1.89 and 1.90
Revision 1.89akirschbaum 2006/02/17 15:29:47 +2 -6
Apply patch #1433271 (code-cleanup) by Stefan Huehner: Add const and static.
Show difference between Revision 1.88 and 1.89
Revision 1.88akirschbaum 2006/02/10 17:59:26 +1 -2
Apply slightly modified patch #1428309 (code-cleanup: const, static) by
Stefan Huehner: add const/static to functions/variables. Remove some type
casts.
Show difference between Revision 1.87 and 1.88
Revision 1.87akirschbaum 2006/02/08 18:48:36 +72 -69
Apply patch #1427979 (code-cleanup: add const, fix warnings) by Stefan
Huehner.
Show difference between Revision 1.86 and 1.87
Revision 1.86akirschbaum 2006/02/08 17:53:19 +1 -0
Make create food spell work for all FOOD/DRINK objects. It used to fail for
objects where another object with the same name but type POISON does exist.
Show difference between Revision 1.85 and 1.86
Revision 1.85cavesomething 2006/02/07 19:52:58 +1 -0
add arrest command, and regional jails
Show difference between Revision 1.84 and 1.85
Revision 1.84ryo_saeba 2005/11/27 08:16:46 +1 -1
Add a filter to skills command
Show difference between Revision 1.83 and 1.84
Revision 1.83mwedel 2005/11/16 02:16:00 +7 -7
Commit for new blocking code. Not going to dictate all the changes -
but will outline the broad points. Note also that the
doc/Developers/objects is updated and goes into more details also.
- check for P_WALL no longer used - instead, need to use GET_MAP_MOVE_BLCOK
and check against movement type of objects.
- arch_blocked() changed to ob_blocked(), now takes object. Needed because
just looking at archetype move_ values is no longer sufficient.
- find_first_free_spot() changed to take object, since it just calls
arch_blocked()
- FLAG_FLYING removed, now in move type.
- walk_on/walk_off/fly_on/fly_off removed - now based on move_on and
move_off fields.
- Map space structure extended to hold the move_on/move_off, etc
values so that we can shortcut some processing by not having to
check every object on the space when something enters it if
move_on isn't set.
- archetypes recollected - boulders needed move_walk to properly trigger
buttons.
- Note that the new plugin code has to be fixed up for the new movement
code. Look for FIXME in plugins/cfpython/cfpython_object.c
MSW 2005-11-15
Show difference between Revision 1.82 and 1.83
Revision 1.82akirschbaum 2005/11/01 04:08:17 +1 -0
Add new function object_get_env_recursive() to find the outermost environment
object for a given object.
Show difference between Revision 1.81 and 1.82
Revision 1.81akirschbaum 2005/10/31 15:23:00 +1 -1
Fix bug #1102975 (Bronze items not keeping their + in alchemy): the problem
was that a formula for full_helmet did exist but not for b_full_helmet. Since
both helmet's names are "full helmet", the recipe was selected even if using
the ingredient b_full_helmet. This fix adds new formulae for alternative
archetypes with the same name as the base object, and makes the server code
select the matching formula from multiple arch names in the "arch" field.
Show difference between Revision 1.80 and 1.81
Revision 1.80akirschbaum 2005/10/24 15:48:15 +1 -2
Code improvements:
common/image.c: Declare some variables and functions as static or const; add
safeguards while loading config files; remove support for numeric face
names (no active archetype or map does use it); in free_all_images()
deallocate memory allocated for smoothing.
crossedit/xutil.c: Remove assignment to nrofpixmaps since ReadBmapNames()
already sets this variable.
include/{global.h, libproto.h, loader.h}: Remove now static variables and
functions.
Show difference between Revision 1.79 and 1.80
Revision 1.79cavesomething 2005/10/21 14:03:24 +1 -0
make shops check if a player can afford all items, before buying any of them
Show difference between Revision 1.78 and 1.79
Revision 1.78gros 2005/10/18 11:54:31 +12 -15
Upgrade of the Crossfire server to version 2.0 of the plugin interface.
Upgrade of the Python plugin to version 2.0 of the plugin interface.
Gros - 18/10/05
Show difference between Revision 1.77 and 1.78
Revision 1.77qal21 2005/10/17 08:08:27 +1 -0
Add convenience function for string replacement (Which I plan to use soon)
Show difference between Revision 1.76 and 1.77
Revision 1.76qal21 2005/10/16 17:51:21 +1 -0
Add support for random template maps (still need to document, and still need to add support for template maps created from non-random templates)
Show difference between Revision 1.75 and 1.76
Revision 1.75akirschbaum 2005/10/07 18:35:33 +1 -0
Prevent objects from losing inventory when thrown.
include/libproto.h, common/object.c: Add new parameter "free_inventory" to
free_object(). Is set, free inventory as well instead of dropping it on the
ground.
common/object.c: In get_split_ob() prevent inventory of splitted object to be
dropped.
Show difference between Revision 1.74 and 1.75
Revision 1.74akirschbaum 2005/10/07 12:54:48 +2 -2
common/{arch.c, object.c}, crossedit/{Attr.c, Defines.h, Edit.c},
include/libproto.h, server/{plugins.c, time.c}: Rename functions with
mixed-case names to lower case only.
crossedit/Defines.h: Remove prototypes for nonexisting functions.
Show difference between Revision 1.73 and 1.74
Revision 1.73cavesomething 2005/10/02 22:29:41 +2 -0
add support for specialised shops
Show difference between Revision 1.72 and 1.73
Revision 1.72ryo_saeba 2005/10/01 11:36:35 +4 -5
Clean some compilation warnings.
Show difference between Revision 1.71 and 1.72
Revision 1.71ryo_saeba 2005/09/25 13:36:02 +13 -6
Changed quest system, needs tweaks and fixes.
Show difference between Revision 1.70 and 1.71
Revision 1.70mwedel 2005/08/23 00:42:58 +15 -11
Apply patch 1200555 - addition of key/value lists which allows arbitrary
storing of data in objects - see doc/Developers/key-value for more
information
---
loader.l, loader.c: Add add_key_value() function which parses the unknown
line in the object/archetype. Update get_ob_diff() to make differences
for the key/value lists.
common/object.c: Add functions for properly comparing the key/value lists,
setting and getting the vaues, clearing values upon freeing of object,
etc.
doc/Developers/Makefile.am: Add key-value file.
doc/Developers/key-value: Documentation of this feature.
include/libproto.h: Rebuilt
include/object.h: Addition of key_value struct, addition of key_values
field to object.
MSW 2005-08-22
Show difference between Revision 1.69 and 1.70
Revision 1.69ryo_saeba 2005/08/12 08:46:34 +10 -10
Fields changed from char* to const char*, cleanup.
Show difference between Revision 1.68 and 1.69
Revision 1.68ryo_saeba 2005/08/12 03:18:59 +12 -12
Use const char* instead of char* when possible
Show difference between Revision 1.67 and 1.68
Revision 1.67ryo_saeba 2005/07/17 06:00:04 +6 -6
Use const char* instead of char* when possible. Removed unused variables from weather code.
Show difference between Revision 1.66 and 1.67
Revision 1.66ryo_saeba 2005/07/15 08:51:50 +0 -42
Glue cleaning. New plugin function.
Show difference between Revision 1.65 and 1.66
Revision 1.65ryo_saeba 2005/07/14 11:21:31 +9 -0
Quest handling
Show difference between Revision 1.64 and 1.65
Revision 1.64tchize 2005/05/29 10:37:53 +2 -0

MOTD now splitted in 3 files: rules, news and motd.
They are sent on connection to client in this exact order.
Show difference between Revision 1.63 and 1.64
Revision 1.63tchize 2005/05/06 16:10:15 +2 -0

added a new command to identify the type of text send to client.
media tags can be included inside them. Those text types include
scrolls, books, message of the day, signs, aso.
See protocol doc for details
Show difference between Revision 1.62 and 1.63
Revision 1.62ryo_saeba 2005/05/03 13:31:04 +12 -12
Use const char* instead of char* when possible
Show difference between Revision 1.61 and 1.62
Revision 1.61mwedel 2005/04/16 23:25:53 +14 -13
Various minor bugfixes.
common/los.c: Patch to fix negative lighting. Use isqrt instead of sqrt,
so we only want integer values anyways.
include/libproto.h, include/sproto.h: Rebuilt as there were some improperly
matching prototypes.
random_maps/rogue_layout.c: Replace sqrt with isqrt calls.
server/c_misc.c: Make name_cmp() a static declaration so it won't be put
in the sproto.h file.
server/init.c: Remove /* within comment string.
server/monster.c: Change sqrt to isqrt
MSW 2005-04-16
Show difference between Revision 1.60 and 1.61
Revision 1.60ryo_saeba 2005/04/14 14:15:39 +5 -5
Fix a few things, use const char* instead of char* when possible
Show difference between Revision 1.59 and 1.60
Revision 1.59cavesomething 2005/03/23 15:34:39 +3 -0
allow who command to take regions as arguments, if a region is given as an argument then only the players in the region are shown. Partial region names can be used also. Calling who on its own shows everyone that was shown before.
Show difference between Revision 1.58 and 1.59
Revision 1.58ryo_saeba 2005/03/15 15:06:20 +9 -0
Apply patch #1145089 by cavesomething for region support
Show difference between Revision 1.57 and 1.58
Revision 1.57akirschbaum 2005/02/20 14:43:10 +1 -1
common/object.c, include/libproto.h: change nrof parameter of get_split_ob to
uint32 type.
server/c_object.c, include/sproto.h: change nrof parameter of drop_object to
uint32 type.
plugin/{plugin_python.c, include/plugin_python.h},
plugin_animator/{plugin_animator.c, include/plugin_animator.h},
server/{apply.c, attack.c, gods.c, monster.c, player.c, skills.c, time.c,
timers.c}: Change type of CFParm.Value[5] and StackParm1[] to uint32 to be
able to pass an "nrof" value.
Show difference between Revision 1.56 and 1.57
Revision 1.56ryo_saeba 2004/04/28 17:04:09 +1 -1
Change char* to const char*, value shouldn't be changed
Show difference between Revision 1.55 and 1.56
Revision 1.55mwedel 2004/04/16 01:23:42 +2 -14
common/map.c: Change blocked_link() to take a map parameter. Also, change code
in blocked_link() to assume that the caller has set up appropriate map and
coordinates related to tiling (in all functions that currently call
blocked_link, this is the case)
include/libproto.h: Rebuilt.
server/move.c, server/player.c: update call to blocked_link to include the map.
MSW 2004-04-15
Show difference between Revision 1.54 and 1.55
Revision 1.54ryo_saeba 2004/03/26 16:41:43 +1 -1
Const specifiers
Show difference between Revision 1.53 and 1.54
Revision 1.53ryo_saeba 2004/02/27 17:00:26 +4 -4
Some warnings cleaning.
Show difference between Revision 1.52 and 1.53
Revision 1.52mwedel 2004/02/11 02:09:23 +14 -2
common/Makefile.am: Clean up proto - lex seems to toss some new symbols in
now days.
common/map.c, common/object.c, server/player.c, socket/item.c,
socket/request.c: change parameters of get_map_from_coord from int to
sint16, so the op->x,op->y can get passed directly in. Update callers of
this function.
lib/archetypes: Add damned 1 to the shop floors.
server/pets.c: Fix problem with big (multisquare) pets following the owner
across tiled map boundaries.
socket/item.c: Fix problem of players being able to see everything within
containers by just looking at them.
MSW 2004-02-10
Show difference between Revision 1.51 and 1.52
Revision 1.51mwedel 2003/11/09 23:39:50 +2 -1
bulk of this is to fix exp loss when changing gods if you have more than
2 billion exp, removal of spells when you switch levels, and not giving you
all new spells when you switch religions.
--
common/living.c: Update exp functions to be fully 64 bit aware. Don't
take away from player total exp if SK_SUBTRACT_SKILL_EXP is passed in.
common/utils.c: Add 64 bit version of random_roll(), called random_roll64()
lib/treasures: Make indentation consistent for some treasures.
server/apply.c: Use the FLAG_STARTEQUIP to denote god given spells, instead
of using special prayer markers. This simplifies the spell learning
and removal code.
server/gods.c: Make exp loss for changing religions 64 bit compliant.
Fix become_follower() so that it doesn't give all the new gods special
spells if you switch religions. Fix code so that it properly removes
all special prayers from previous god, and also print out message on what
spells you lost. Don't set the prayer skill as applied in various
areas - this results in two skills being applied, which isn't proper.
MSW 2003-11-09
Show difference between Revision 1.50 and 1.51
Revision 1.50temitchell 2003/10/26 21:44:33 +1 -0
- Add TRIGGER_MARKER object (type 52)
a MARKER that can activated by a connected trigger.
Show difference between Revision 1.49 and 1.50
Revision 1.49mwedel 2003/10/26 01:56:57 +2 -1
common/glue.c, common/object.c, common/player.c, include/funcpoint.h,
server/init.c, server/monster.c, server/shop.c, server/skill_util.c: add
find_skill_by_number() function - this replaces find_skill. Locate new
function in skill_util.c, which is more a proper place than
common/player.c - this change necessitated adding glue function pointers
so the other common files can call it.
server/spell_effect.c: Fix cast_heal() so if the spell is not one that heals
hit points, don't process the code that checks for that and sets
a false success value.
socket/metaserver.c: Clean up formatting - no code changes.
MSW 2003-10-25
Show difference between Revision 1.48 and 1.49
Revision 1.48mwedel 2003/09/26 00:46:09 +10 -22
common/living.c, include/libproto.h: Update some functions to take 64 bit int
values for exp usage.
MSW 2003-09-25
Show difference between Revision 1.47 and 1.48
Revision 1.47mwedel 2003/09/13 00:01:33 +7 -3
Updated code for skill + spell code. skills and spells are now objects.
tuning these now means changing the archetypes. New spells can now
be added just by making a new archetype. Lots of code cleanup
also done.
MSW 2003-09-12
Show difference between Revision 1.46 and 1.47
Revision 1.46tchize 2003/09/03 07:25:06 +3 -0

generator may now use their inventory as a basis to generated items
instead of the other_arch field. Will allow more fine tuned generators
Show difference between Revision 1.45 and 1.46
Revision 1.45tchize 2003/06/30 14:14:13 +1 -0


Various code optimisations to help preventing peeks at maploads. Includes:
* rewritten saving of objects, removed needs for sprintf calls and most strlen calls
* modified map structures for saving of a very small amount of additionnal precalculated datas for weather
* added FAST_xxx macros for fast string manipulations
Show difference between Revision 1.44 and 1.45
Revision 1.44gros 2003/06/26 06:27:43 +2 -0
Re-implemented the event hooks in objects as a dynamically linked list,
instead of a static table.
Show difference between Revision 1.43 and 1.44
Revision 1.43tchize 2003/06/19 05:59:28 +16 -2

Added support for smoothing to the client.
This will allow (i hope) better graphical results while using very
little bandwidth overhead.
Changes done follows:
- Added protocol command MapExtendedInfos and smooth commands to server
- Added a SetUp paramater in protocol for activating smoothing
(disabled by default) or more general Extended map infos
- Added file lib/smooth a text file containing some smoothing info a
client might ask the server about.
- Changed loader.l to be able to mark an object as 'smoothed' in
archetypes (the smoothlevel parameter) and rebuild loader.c
accordingly
- Changed lib/Makefile.am to install lib/smooth file in shared folder
- Rebuild the Makefiles.am and the Configure script (using autogen.sh)

To be able to smooth, A client commit (the common part+ the gtk part)
will follow and an archetypes commit will also follow.

I will also detail changes to the protocol within a few days
Server has been tested with older client to check backward compatibility
Show difference between Revision 1.42 and 1.43
Revision 1.42mwedel 2003/03/19 02:04:50 +1 -1
common/anim.c: Pass direction to animate_object() - needed for player
animations as player's facing may not match direction.
crossedit/Attr.c, server/main.c, server/time.c: Update calls to animate_object()
include/libproto.h: rebuilt
include/newserver.h, plugin_animator/animator_box.c, socket/init.c,
socket/request.c: Remove newanim field from socket structure - not needed -
how to animate is determined by object, not by socket.
server/move.c: Add check to P_OUT_OF_MAP in teleport function.
server/player.c: change move_player to call animate_object, so it gets full
power of functionality it supports instead of 4 way hardcode animation
information.
server/spell_effect.c: When altars are consecrated, don't look to arch name
for first portion of name - always call them Altar of %s - fixes problem
where altar is special god altar that has god's name in archetype, resulting
in altar of .. of ...
MSW 2003-03-18
Show difference between Revision 1.41 and 1.42
Revision 1.41mwedel 2003/03/07 23:35:32 +4 -2
Patch for 64 bit experience total, as well as flexible number of levels.
Basically, max level is now dynamic, set in exp_table file. Experience
is now a 64 bit value, so much higher totals now allowed. To
allow for flexible levels, add new function - did_make_save() which is used
for players/monsters to see if they make their saving throw - this is
necessary because the savethrow[] array may not be as large as max level -
did_make_save takes this into account.
NOTE: If your updating a server, you will need to copy over/set up a
new exp_table file that has max_levels defined and at least one of the
tables uncommented. There are no longer any compiled in defaults
--
configure, configure.ac: Add AC_CHECK_SIZEOF calls for long and long long
so we can know which one to use for 64 bit support (other checks
may need to be added)
common/exp.c: Remove levels table, replace it with a 64 bit pointer.
Change init_experience to allocate appropriately sized table, have it
read max_level value from exp_table file. Replace atoi calls with
atoll to get 64 bit value. Update dump_experience to properly
print 64 bit values.
common/info.c: Update dump routines that dump exp to properly print
64 bit values.
common/init.c: Add initializing for settings.max_level value.
common/item.c: Update sprintf's to handle 64 bit output of exp (speed)
value in objects.
common/living.c: change MAX_EXP define, update MAX_EXP_IN_OBJ define,
add MAX_SAVE_LEVEL which corresponds to how large the savethrow
table is. Change MAXLEVEL to settings.max_level. Change level_exp()
to return 64 bit value, other updates in functions to use 64 bit
values. Add did_make_save() function.
common/loader.l, common/loader.c: Update load/save routins of exp to
deal with 64 bit values.
common/map.c: Update calculate_difficulty to use 64 bit values when
storing exp - unlikely to make a difference, since unlikely any map
will get to a point where it has that much exp on it.
common/porting.c: Remove dead code from save_long(), add save_long_long()
to save 64 bit values.
include/autoconf.h.in: SIZEOF_LONG and SIZEOF_LONG_LONG values added.
include/global.h: Add code to typedef sint64/uint64 types based on what
type gives us those values. Add max_level to settings array.
include/libproto.h: rebuilt.
include/living.h: Replace exp field with 64 bit value.
include/player.h: Update party kill log exp tracking to have 64 bit
values.
lib/exp_table: Udpate comments about max_level, uncomment what
was the default table so new installs have working table.
Add 5 levels to all the tables.
random_maps/monster.c: Update place_monsters to use 64 bit when storing
exp total for map/per square.
server/apply.c: Replace MAXLEVEL with settings.max_level, add
did_make_save calls where appropriate
server/c_misc.c: have statistics command properly print 64 bit
exp value.
server/c_wiz.c: Have stats command properly display 64 bit value.
server/hiscore.c: Replace exp values with 64 bit values, update to
properly load/display them.
server/player.c: replace savethrow[] reference with did_make_save()
server/skill_util.c: Update skills command to properly show 64 bit exp values.
server/spell_effect.c: replace savethrow[] reference with did_make_save(),
allow players to cast directors right beneath themselves, but other
walls must be on empty space.
MSW 2003-03-07
Show difference between Revision 1.40 and 1.41
Revision 1.40garbled 2003/02/13 23:50:33 +1 -1
Lots of updates here:
common/item.c: make item_power stop showing up in ring short descriptions.
fix some of the items that were double-displaying materialnames, like
mithril mithril chainmail.
common/loader.l: add tooltype
common/utils.c: Unless the object is armour or weapons, pick the first
materialname we find. Now, newly generated diamonds will stack.
Fix name_to_material to return NULL if it finds nothing, fixes
navar_city/museum crash.
Change set_materialname to take a materialtype_t argument, allowing
functions to manually set the materialname, rather than let the
randomizer pick for them.
include/define.h: Add TOOL and BUILDFAC for item building.
include/object.h: add tooltype for item building.
include/materials.h: add M_SPECIAL. Set this in an object, to prevent things
like mithril mithril chainmail. This is primarily only needed in
artifacts, because they change the base material of the arch. Also
useful in things like the demonspawn shield, and on maps.
lib/artifacts: sprinkle M_SPECIAL around.
server/player.c: remove auto_heal. This never should have been
committed, and was never referenced by any code.
server/c_object.c: add item building, but add it disabled. Too many
bugfixes were tied in with this code to cleanly add them. When
enabled, this code will add player item building, similar to
create to take place. Requires a host of graphics and arches
to be useable.
Show difference between Revision 1.39 and 1.40
Revision 1.39garbled 2003/02/06 02:08:49 +1 -0
Fix the following bugs:
When doing alchemy with a transmute formula, check if we should add one
of the materialtype's special modification properties into the newly
created object.
When performing alchemy, do better checks to remove the materialname form
the object's strtoint value. Don't remove the materialname on
non-weapon/armour, and don't remove it if the object has it manually
specified in the arch.
Fixes alot of formulae I broke.
Show difference between Revision 1.38 and 1.39
Revision 1.38garbled 2003/02/04 00:26:07 +1 -0
Fix some bugs for once, rather than introduce them.
Show difference between Revision 1.37 and 1.38
Revision 1.37garbled 2003/01/29 18:07:08 +2 -0
New materialtype system for crossfire. Based in concept on my original
design, but rewritten from scratch to make it easily extensible.

In a nutshell:

Each of the old materialtypes (metal, glass, stone, wood) are now a class
of materials. When an item in the game is created, if it does not have a
specific materialname of it's own, a materialname is generated randomly
from the matching entries in the "lib/materials" file. This file
contains all of the saving throws, and other material specific
modifications for each of the expanded materials.

Materials can be manually specified in the arch with the "materialname"
directive. Such as the gold coins, which are specified to be made of,
you guessed it, gold.

Saving throws have been slightly rewritten to use the new materialtypes,
and a few other minor details associated with materialtypes have been
patched up.

Adding a new type of stone or wood, is as simple as adding a new entry in
the lib/materials file. The game will automatically start distributing
them around randomly.
Show difference between Revision 1.36 and 1.37
Revision 1.36garbled 2003/01/20 17:58:33 +1 -0
Change the way wands rods and scrolls are created. Rather than randomly
picking a level based on difficulty, the game now calculates a
multiplier. This is the larger of either the levels/damage increase or
levels/duration increase. If both of these are 0, we use 5. This does a
number of things:

1) Rather than having 100 different possibilities for level of these
items, there are 100/mult. Meaning that on average, more scrolls will stack.
2) A scroll of level 7 where the ldur was 5 is fundamentally equivilent
to a level 5 scroll.. so just make them that way anyhow.
3) We now change the value of the item, based on these properties.. so a
high level scroll will cost much more than a low level scroll. The cost
increase is more, depending on how much more powerful the scroll is per
level.

In the very least.. scrolls should stack better now, and shop prices for
them will make a wee bit more sense.
Show difference between Revision 1.35 and 1.36
Revision 1.35garbled 2003/01/16 22:38:35 +1 -0
Add a duplicator/multiplier/destroyer object type. This will duplicate a
specific arch when triggered, and that arch is on top of the duplicator.
It will multiply the number of items in the pile, by the level of the
duplicator. If the duplicator is set to level 0, it will destroy the object.
Show difference between Revision 1.34 and 1.35
Revision 1.34mwedel 2003/01/08 02:39:17 +2 -7
Bulk of this commit is to improve code for tiled maps - replace
wall/blocks_magic/blocks_cleric, etc with get_map_flags which
also does map tiling translation as needed. This should fix a lot
of the bugs related to map tiling (there are sure to be more out
there - all the get_map_ob still need to be checked).
Other changes - many spells stopped progressing on spaces that
blocked view - that is now removed - didn't make a lot of sense.
Other fixes - some cleric spells (eg, word of recall) checked to
see if magic was prohibited, didn't check to see if cleric
was prohibited.
Clean up some bugs in the lighting code that would cause erroneous
results. Also, allow players to see immediately around them on
outdoor maps no matter how dark the map really is - behaviour
on indoor maps is the same.
Lots of code reformatted, and lots of obsoleted/dead code removed.
Add max range to dimension door.
Fix magic map - got broken when the layer stuff was redone - was
not showing proper colors. IT also works sensibly on tiled maps
now - rather than display based on the map, it gives the player a
50x50 area centered on where the player is.
Change fire_bow - move special player fire modes into own function -
makes code much cleaner.
Hopefully this fixes more bugs than it introduces.
common/los.c, common/map.c, common/object.c, crossedit/Edit.c,
include/libproto.h, include/sockproto.h, include/map.h,
include/spellist.h, include/sproto.h, random_maps/treasure.c,
random_maps/wall.c, server/attack.c, server/c_misc.c,
server/c_wiz.c, server/disease.c, server/main.c, server/monster.c,
server/pets.c, server/player.c, server/rune.c, server/shop.c,
server/skill_util.c, server/skills.c, server/spell_effect.c,
server/spell_util.c, server/time.c, socket/info.c: See note above
server/apply.c: Limit number of times weapon can be enchanted so
that it won't overflow item_power. Modify enchant armor
to enchant as normal armor is enchanted, also only allows one
item to be enchanted.
MSW 2002-01-07
Show difference between Revision 1.33 and 1.34
Revision 1.33garbled 2002/11/08 02:45:26 +2 -0
Move the weather defines into tod.h. Add a function pointer for the
weather_effect command, so it can be called from ready_map.
Show difference between Revision 1.32 and 1.33
Revision 1.32mwedel 2002/10/12 00:34:29 +5 -4
Experience cleanup - the main functional change is that no upper limit of
exp in an individual skill, save for the limit that there is an upper
limit of total exp a player can have. Thus, if a player concentrates
complete in one skill, he could get to level 110 in it. A lot of
code cleanup was done - so much had gotten added to the exp code that it
was a real mess.
common/living.c: re-arrange some of the code, so all the exp related
functions are together. remove adjust_exp(), change check_dm_add_exp_to_obj()
to check_exp_adjust. Add new functions add_player_exp(), check_exp_loss(),
check_exp_add(), subtract_player_exp().
include/libproto.h: rebuilt.
server/c_wiz.c: Update command_addexp() to use new exp functions.
server/gods.c: Update lose_priest_exp() to use new exp functions.
MSW 2002-10-11
Show difference between Revision 1.31 and 1.32
Revision 1.31mwedel 2002/09/11 01:21:46 +13 -11
INSTALL: Update directions with new automake method.
common/Makefile.am, common/Makefile.in: Fix code for building the libproto.h
file - it was including loader.l and not loader.c
common/exp.c: Add init_experience() and dump_experience() functions -
init_experience() loads the experience table from a file. Add default
experience table into this file
common/init.c: Add call to init_experience()
common/living.c: Remove experience tables - players can select the one they
want by changing the exp_table file. Remove reference to new_levels[] -
only levels[] is used now for the formentioned reason.
include/config.h: Update notes about SIMPLE_EXP system.
include/libproto.h: rebuilt.
lib/Makefile.am, lib/Makefile.in: Add exp_table to list of files.
lib/exp_table: New file that contains experience information.
server/c_object.c: Modify command_take() to look for objects above the player
to pick up, then objects below. This fixes the bug with not being able
to use the take command on items from a chest the player opens without
moving off the space.
server/init.c: Add -mexp dump switch to dump the experience table. Allow
the simple experience system to be set in the settings file.
server/skill_util.c: Fix oddness in calc_skill_exp() which could result
in add amounts of exp given.
MSW 2002-09-10
Show difference between Revision 1.30 and 1.31
Revision 1.30mwedel 2002/09/07 00:55:18 +1 -1
More bugfixes:
common/loader.l, loader.c: Fix up the handling with speed with respect
to style maps - the objects were still getting put on the active
list.
common/map.c: Fix up blocked_link() to behave more like the
blocked_two() function - inventory checkers and door handling.
Comment out blocked_two since it isn't used anymore. Modify
load_objects to remove objects on style maps from the active
list. Remove some of the debug messages about map loading.
common/object.c: Add remove_from_active_list() function for use
in map.c to remove objects from active list.
common/porting.c: Comment out debug message if open_and_uncompress()
can open a file - caller of the function should print out messages,
and it really isn't much of an error in any case.
include/libproto.h: rebuilt.
random_maps/special.c: Modify place_special_exit() - this should fix
bug of very large treasure maps - problem was if the generated map
size was too small, when generate_random_map was called, it would
generate a newly sized map that was much larger. Code was also
re-arranged some to make it a little more readable.
server/attack.c: Fix crash when creature may not have an owner and
it kills something else.
server/move.c: comment added - no code change.
socket/request.c: Fix off by one error in esrv_send_animation() -
rare condition as it only showed up when trying to send the last
animation (zombie) - only an issue if the player is put on top of
a zombie for some reason (no other space for them) - observed when
leaving the random dungeon in the undead church in scorn without
clearing out all the zombies first.
MSW 2002-09-06
Show difference between Revision 1.29 and 1.30
Revision 1.29mwedel 2002/09/01 01:32:30 +1 -1
This change mostly deals with improving behaviour of pet monstes.
Most of the code is from K. Reinert - however, I did some code cleanup/
fixes related to pet monsters, so it is difficult to note where
each piece of code came from. One thing this does fix is handling of
multipart pets - these now work properly.
common/map.c: Update comment for get_rangevector() - no code change.
common/object.c: Add get_search_arr() which is used in pet monster code.
This returns a semi random scrambling of the freearr array.
doc/Developers/protocol: Update documentation about map1a protocol command.
include/libproto.h, include/sproto.h: rebuilt.
server/attack.c: Have drain attacks return 1 damage so that it is clear
that you are actually hitting your opponent. Otherwise, you would
get messages that 'you missed xyz', even though you are draining it.
This extra point of damage shouldn't change balance in any significant
way.
server/monster.c: Update hnadling of enemies for pet monsters. It should
more intelligently choose the monsters and not switch/clear the
enemy field for no reason anymore. Change find_nearest_living_creature to
use the get_search_arr() to more randomly choose direction of target -
before, there was a proclivity to always look in the north direction.
Modify can_hit() to look for closes part of enemy - otherwise, monsters
may not attack opponents even if they were right next to them because
they couldn't get to the enemies head. Remove move_object from
this function - merged with move_ob in move.c
server/move.c: Fix move_ob to use 'cleaner' code of move_object, but
also have specific features that move_ob had (player handling).
Before move_ob didn't handle multipart objects correctly, and the
two functions were largely the same. Now move_object() just calls
move_ob - the only difference in the functions is that move_ob()
takes 3 parameters instead of 2 of move_object() (added
parameter is originator). I think this should now mean multipart
player objects may now work.
server/pets.c: get_pet_enemy enhanced to be much smarter about
selecting/finding things for the pet to attack.
server/player.c: Remove commented out line of init_beforeplay
MSW 2002-08-31
Show difference between Revision 1.28 and 1.29
Revision 1.28mwedel 2002/07/14 23:57:12 +3 -2
-- Start body commit notes --
Major commit. This adds body locations which is used for equipping items.
Equipment has information which body part it gets equipped to, and monsters
have information on how which body locations they can have.

As part of this work, I also did a lot of code cleanup.

To use this, you must use up to date archetypes - the ones included
in this commit are fine - just make sure you install them. If
you don't, players will not be able to equip items.

common/arch.c: Initialize body_used to be same as body_info for
archetypes - this way when monsters are created, they can
start equipping items right away.
common/exp.c: update new_exp() - some flags it checked for before no longer
exist or have new names.
common/info.c: describe_item() now takes second parameter - update
dump_abilities to use new calling convention.
common/item.c: Add table that describes the body_info locations and
their names. Add functions that calculate item power for objects
that don't have it set. Update display functions to show
item_power in items. Update describe_monster() - use_horn/wand/rod
merged into just use_range. Modify describe_item() to take second
paramater - who the item is being described for. Show item_power
in describe_item.
common/living.c: Pull out MAXLEVEL from being defined in this file -
define in in define.h, since other files use it. Add NUM_STATS
define - replace hard coded values of having just 7 stats with it.
Update change_abil to not display that the player has a new
attacktype when equipping a bow that has it - fix_player() ignores
the attacktype of the bow, so it was incorrect information.
fix_player(): Initialize player ranges structure to null -
will get filled in by code in function, updated to deal with
updating the body_used data from body_info in the objects.
Replace instances of last_heal with gen_sp_armour. Rearrange
some code to make function more readable.
common/loader.c, common/loader.l: Remove the variable_const information - no
longer needed and confusing for new people when adding in new object
elements. Add set_body_info() - parses the string from the load file and
sets the appropriate array element. Add check_loaded_object() - does
sanity checking for an object after finished loading - replaces need for
long processing directive in the actual rules by having seperate function.
Remove unused flags from load directives (apply_once, no_pretext,
can_apply), add some new ones (item_power, gen_sp_armour), update others
to can_use_range. Replace flag_links with simple array that contains the
name for each corresponding flag. Update get_ob_diff to not use the V_
values and just include the actual string name - all recent changes have
done this, just updated for old stuff. Update get_ob_diff to save new
values that have been added.
common/object.c: clear_object: Modify to use memset to clear
the structure to zero - this is less error prone than listing
all the specific values, and probably faster. Also, makes it
easier to add new elements - no need to update object.c in most
cases.
common/player.c: Remove get_player_ob routine - this is now merged
in with get_player_ob in server/player.c. Remove generate_ext_title -
not used.
common/readable.c: Update to pass second argument to describe_item.
common/treasure.c: Update to calculate item_power of generated items.
Clean up a lot of code formatting. Update add_abilities
to use gen_sp_armour values, not last heal (note, it appears
the last_heal values weren't being used before). Update
calls to describe item to take second parameter.
doc/Developers/objects: Update will_apply notes, add note about
item_power, body location.
include/define.h: Comment out unused flags (flag_apply_once, flag_paralyzed,
flag_no_pretext, flag_ready_rod, flag_read_horn). Add flag_use_shield.
rename flag_use_wand to flag_use_range. rename flag_ready_wand to
flag_ready_range. Add flag_ready_scroll. Update ARMOUR_SPELLS access
macro. Add AP_PRINT flag to apply flags. Add CAN_APPLY_.. return types
for can_apply_object function.
include/includes.h: add strftime, mktime checks to this file.
include/libproto.h: rebuilt.
include/living.h: Add NUM_STATS define, update extern declarations
to use it for sizing.
include/loader.h: remove the V_.. info and xbm_.. externs that were not
used.
include/newserver.h: Remove ext_tile information.
include/object.h: Add Body_Locations structure, NUM_BODY_LOCATIONS define.
Add definitions for WILL_APPLY values. Clean up object structure -
formatting is now consistent, ordering of values groups values
together more logically. Update all types to use the int8/int16/int32
types. Several unused fields removed.
include/player.h: Update rangetype enum. Add unapplymode enum.
Clean up player structure - type updates, unused fields removed,
formatting fixed up.
include/spells.h: remove range_name extern. Update SpellTypeFrom
field to combine wand/rod/horn into spellMisc - none of the
spell casting code was differentiating these.
include/sproto.h: rebuilt.
lib/Makefile.in: Add new help files (applymode, bind, brace)
lib/archetypes: rebuilt for body_info, gen_sp_armour, item_power,
can_use_shield information.
lib/artifacts: updated for item_poer and gen_sp_armour changes.
lib/treasures: remove unused _force for player treasure.
plugin/plugin_python.c: Change FLAG_USE_WAND to FLAG_USE_RANGE.
server/apply.c: Move stftime, mktime to include/includes.h. Remove
draw_find() - one line function can just as easly be in the
code itself. Update calls to long_desc to pass second parameter.
move gravestone_text() to player.c file. Add direction parameter to
apply_scroll() - in this way monsters can use it properly.
Remove dead code. Update apply_special function. Add
unapply_special(), get_item_from_body_location(), unapply_for_ob(),
and can_apply_object() functions.
server/attack.c: Remove SET_FLAG(op, FLAG_PARALYZED) line - no code
was ever checking status of FLAG_PARALYZED.
server/c_misc.c: add command_body() which dumps body information for
player. Update who as idle element in player structure removed -
was not being used by anything. Add command_applymode() to
set players prefered unapply method. Remove calls to unlock_player()
in various functions - unlock_player() has not done anything
meaningful for a while.
server/c_object.c: Modify long_desc to take a second parameter
which is who is examing the object. this is needed so that we
can pass it down to some of the lower level functions.
Update calls to describe_item to pass this second parameter.
remove FLAG_NO_PRETEXT code - no archetyps were using it. When
examining objects, also tell player where to put them on.
server/c_range.c: Update legal_range() - we now store the object that
is responsible for a range in the player object, so code is
much simpler. Update change_spell() to not destroy golem
just by readying another spell - we now let players regain control
of golems after switching to another range. Update change_spell
to use item name of object for range description.
server/c_wiz.c: remove reference to count_left from player object -
field removed from structure.
server/commands.c: add new commands (applymode, body) to command dispatch
table.
server/login.c: Remove unlock_player() and lock_player() and calls to it -
current checking of names at login should be sufficient to
prevent duplicates. Remove dead code from check_name. Update
load/save code for unapply mode value. Add set_flag(op,
FLAG_USE_SHIELD) if player is allowed to use armor - needed since
flag_use_shield is really a class feature and so is not automatically
updated for old player files.
server/main.c: Remove references to count_left. memset marker object to
NULL - seems to increase stability on metalforge server.
server/monster.c: Many updates related to the body info - monsters follow some
rules as players. Add monster_should_cast_spell function - monsters will
use this for all spellcasting related actions (abilities, scrolls, wands,
etc). Update for merged rod/horn/wand ranges. Update bow use by monsters
- they don't actually need to equip it to fire - this way we don't need to
constantly swap the monsters weapons between the bow and melee item. Use
fire_bow from player.c for most of the work. Modify scroll usage -
monster will use it when player is near, not when it first picks it up.
Add FLAG_READY_SCROLL to denote the monster has a scroll to use. Also,
monster now casts it in appropriate direciton. Merge the
monster_use_wand/rod/horn into monster_use_range. Modify
check_good_weapon and check_good_armour to just look at the stats of the
two items without needing the monster to apply it first.
server/player.c: Print motd in green so it is more noticable. Update
get_player function to do work it did before as well as that of
get_player_ob. Have get_player take a parameter which is the object of
the player if he has one. Modify to use memset to clear the player
structure - more sure fire than explicitly listing values to initialize.
Remove calls to unlock_player. Modify fire_bow so that monsters can also
use the function. Add fire_misc_object() to fire_wand/rod/horn - removes
code from fire(). Add gravesetone_text() to this file.
server/shop.c: Update to pass second parameter to describe_item().
server/skill_util.c: Update check_skill_to_fire since there are fewer
rangetypes now. change range_scroll name to range_golem, as that is
a bit more accurate for what it actually does. Modify show_skills()
to show player his item power and total of items he has equipped.
server/skills.c: Add second paramater to long_desc, remove references to
count_left.
server/spell_effect.c: Add second paramater to long_desc, remove references to
count_left. Update range_scroll to range_golem
server/spell_util.c: remove references to count_left. Update messages
if player trying to cast where he can't with new range names.
socket/info.c: Update range information and how we display what it is -
we will use the object name of the range if available. Remove
reference last_known_spell, last_shoot, last_spell, last_value
player structure fields.
socket/init.c: Remove ext_title information.
socket/request.c: Add element for life_stealing in the resistance array.
Remove references to idle, count_left in player structure. remove
ext2 title information.
MSW 2002-07-14
-- End body commit notes --
Show difference between Revision 1.27 and 1.28
Revision 1.27mwedel 2002/03/20 00:27:45 +9 -5
Updates for 1.1.0 release - pretty much all minor bug fixes, like
compiler warning messages, invalid ANSI C constructs, missing files to
include in the distribution.
Makefile.in, include/version.h: update version.
include/Makefile.in: Add some missing files
include/libproto.h, sproto.h: rebuilt to prevent compiler warnings
lib/Makefile.in: Include the wizhelp files in the archive.
server/apply.c, server/skill_util.c: fix invalid code (function parameter
names can't match structs/typedefs), add a missing return value.
server/c_move.c, server/c_new.c, server/c_object.c, server/commands.c,
server/daemon.c: Don't include the sproto.h if CEXTRACT is defined.
server/plugins.c: fix printf command that was printing wrong value type.
doc/spoiler-html/Makefile.in: Remove extraneous newline
Show difference between Revision 1.26 and 1.27
Revision 1.26avogl 2002/03/01 15:33:10 +3 -0
As announced on cf-devel, this is the patch which
adds a new dragon-race to Crossfire.
Players of this dragon race can gain resistances
by eating the flesh of their defeated foes.

They can also specify in a certain resistance-type
and gain various abilities when increasing levels.
This "focus" can be switched by eating very special
As announced on cf-devel, this is the patch which
adds a new dragon-race to Crossfire.
Players of this dragon race can gain resistances
by eating the flesh of their defeated foes.

They can also specify in a certain resistance-type
and gain various abilities when increasing levels.
This "focus" can be switched by eating very special
flesh, which will be available for sale.
Dragon players gain special titles which cannot
be overwritten by manually set titles.

Also see the dragon race description during the
race selection process.
Note that the quetzal has been slightly modified
(picture and race) to prevent getting mixed up with
the new dragon race.

Please keep in mind that this is the first version
of this dragon-race-code. Do not expect it to be
perfectly balanced in all aspects.
Player's opinions will provide some good feedback
for further development I hope.

--AndreasV
Show difference between Revision 1.25 and 1.26
Revision 1.25garbled 2002/01/02 00:53:23 +1 -1
Backout of Anim25 patch by michtoen. It was causing server crashes, and
is generally not useful in a non-iso crossfire. Discussed w/ mwedel.
Show difference between Revision 1.24 and 1.25
Revision 1.24garbled 2002/01/01 18:26:28 +2 -0
Clean up some missing prototypes, protect tod.h against multiple inclusion,
and generally make -Wmissing-prototypes happier.
Show difference between Revision 1.23 and 1.24
Revision 1.23garbled 2002/01/01 17:37:54 +3 -1
Add the concept of overlay maps to the code. An overlay map is a map which
is loaded on top of another map, replacing values in the header, and placing
objects on top of other objects. This is the fundamental part of the new
weather code, but also can be used to allow dynamic editing of the worldmaps
by DM's eventually.
garbled 2002-01-01

Phase II of the new weather system is done. Please let me know immediately
if this causes any bizzare effects.
Show difference between Revision 1.22 and 1.23
Revision 1.22garbled 2001/12/18 02:58:03 +3 -0
Lots of changes here. Basically implement a night and day system, as
well as tracking of game time. A clockdata file is now created and
updated by the server to increment time. Time increases by 1 hour,
approximately every 2 minutes of real time. Right now this code has
virtually no effect, but as maps are updated with outdoor settings,
nightfall will occur automatically. The time command has been modified
to show the current game time, and the clock objects have been changed to
show the game time as well.
garbled 2001-12-18
Show difference between Revision 1.21 and 1.22
Revision 1.21michtoen 2001/11/27 22:44:42 +1 -1
Anim25 Patch

This patch do this things mainly:

- include same animation sheme for players and monster again
- introduce guard/walk/fight animation in 8 direction
- direct action: monster change from guard/walk animation
when they get attacked and fall back to walk or guard when
the enemy is gone
- Monster do "intelligent" animation
-> facing enemy
-> turn and run when scared
- fixed some animation flaws which invokes late anim
update (monster moves first and hold one frame old facing)
- Include real time player animation!
-> player starts moving animation when player moves
-> fall back to guard anim when player do nothing
-> plays fight anim when hit some

Hope i got all. This patch is much not so hard as it sounds.
Most of these features was easy to include because the old
anim engine was able to do about 80% of this. I had just to
boost up the logic.
Show difference between Revision 1.20 and 1.21
Revision 1.20michtoen 2001/11/17 15:25:21 +1 -0
commit the ext2 gender & guild system - first part. Sorry, my cvs sytem is still broken, i will write a better doc to the list. Notice some other small fixes too.
Show difference between Revision 1.19 and 1.20
Revision 1.19gros 2001/10/14 02:57:14 +5 -3
Major changes: Added dynamic plugin support, removed old Guile support.
- Gros 10/14/01
Show difference between Revision 1.18 and 1.19
Revision 1.18garbled 2001/10/07 02:12:40 +5 -0
Header modifications needed for the new attacktype-based damage messages
code. In addition, fix where I put the prototypes for the utils.c functions
in sproto.h instead of libproto.h

garbled 2001-10-06
Show difference between Revision 1.17 and 1.18
Revision 1.17mwedel 2001/08/21 00:39:30 +3 -0
Enhancements to make monsters 'do the right thing' with relation
to tiled maps (ie, will detect players and attack them if on an adjoining
tiled maps). This involved a rewrite of path_to_player - I've tested this
out, and if anything, it seems that monsters may be more aggressive on
spellcasting.
++
common/map.c: blocked modify to make sure it is checking valid coordinate
value. blocked_link,blocked_two modified to translate for tiled maps.
Add load_and_link_tiled_map which loads a tiled map and links in all
pointers relative to adjoining maps. out_of_map modified to use
this function instead of doing the work itself. Add get_rangevector
function that returns offset, direction, and distance between two
objects, taking into account tiled maps. get_rangevector_from_mapcoord
added which is similar to get_rangevector, but takes a map and coordinates
instead of a second object. on_same_map function added which returns
true if the two objects are on the same logical (ie tiled) maps.
doc/crossfire.doc: Add note about what Int does for monsters.
include/map.h: Add some comments, and add structure for rangevector
function return values.
server/attack.c: add calls to on_same_map instead of doing op->map
comparisons.
server/monster.c: Many functions modified to properly handle tiled
maps properly.
server/pets.c: get_pet_enemy modified to know about tiled maps.
server/player.c: get_nearest_player modified to know about tiled maps.
path_to_player rewritten to know about tiled maps - I think some other
bugs were also fixed in return values. Split player_attack_door
from move_player attack to keep functions a more reasonable size.
move_player_attack, player_can_view modified to know about tiled
maps.
server/skills.c: can detect_enemy modified to take another parameter -
call in steal updated to pass this parameter.
server/spell_util.c: ok_to_put_more, can_see_monsterP modified to
handle tiled maps properly.
socket/item.c: look_at modified to return proper results when player
looks at something on an adjoining tiled map.
++ End of checkin
Show difference between Revision 1.16 and 1.17
Revision 1.16mwedel 2001/07/13 23:06:50 +19 -39
Map tiling checkin.
include/config.h: remove RANDOM_ENCOUNTERS (no longer available) and
USE_LIGHTING (now standard part and always on).
include/define.h: move P_... values to map.h
include/global.h: add definition for compression externals, as they
are used in a few files. remove map macro functions - moved to map.h
as appropriate. Add FREE_AND_CLEAR macro that frees data and then
sets the pointer to NULL.
include/map.h: Largely redone - many new macros, new map structure.
include/object.h: remove lights object link pointer from objects.
At some #defines that are the flags for update_object and
insert_ob_in_map
include/player.h: Add a few comments.
MSW 2001-07-13
Show difference between Revision 1.15 and 1.16
Revision 1.15mwedel 2001/06/29 00:59:46 +387 -367
common/object.c, common/player.c, include/object.h, server/skill_util.c:
Remove the unused LINKED_SKILL code.
common/Makefile.in: Use cproto to make prototypes - cextract fails for
some reason and now seems unsupported. Cproto generates a bunch
of warnings, but does do the job.
common/arch.c,server/apply.c, server/main.c, server/monster.c: cleanup some
compile warnings (unusued variables, returns without value
doc/playbook/Makefile.in: Create proper dependencies for files.
doc/playbook/treas2-extract: Add player_force to value to ignore.
doc/spoiler-html/spoiler.html: rebuilt
server/skill_util.c: Remove the unused LINKED_SKILL code. Prevent
characters that have meditation skill from learning melee weapon skill.
MSW 2001-06-28
Show difference between Revision 1.14 and 1.15
Revision 1.14mwedel 2001/06/04 01:41:02 +3 -5
Checkin of code that supports larger map sizes (configurable in
config.h).
common/los.c: update los code since it only handled 11x11 maps. Now
uses formulatic approach so any map size should be supported. This
does result in a few more spaces getting blocked around corners,
but it doesn't seem that bad - certainly not compared to the ability
to have larger viewable maps.
common/map.c, crossedit/CrEdit.c, crossedit/Edit.c, include/global.h,
include/map.h,random_maps/monster.c,random_maps/special.c,
random_maps/standalone.c, server/apply.c,server/c_misc.c,
server/spell_effect.c,socket/info.c:
change mapx,mapy to what they really point to,
as it prevented using those as variable/structure element names.
common/object.c: update_position - if faces for different layers are
duplicate, set the duplicates to be blank to increase client
update efficiency.
doc/Protocol: Add map1 command description, update setup command to
describe setting of mapsize.
include/config.h: add MAP_CLIENT_X/Y to set maximum map size we can
send to the client.
include/newserver.h: add mapx, mapy values to socket structure
include/player.h: Use MAP_CLIENT_X/Y for sizing arrays that hold
map related information in player structure.
server/player.c: As per player.h above, use appropriate sizing when
initializing player stucture.
server/shop.c: Update mapx,mapy like above, but re-do shop listings code as
it was doing a lot more work than necessarily (I think some changes
got put in for sorting, and the old object manipulation was never
removed when that got done)
socket/init.c: set default client map size to 11x11 in the socket.
socket/item.c: LookAt - change checks for position checking (such that
you can only look at things in bounds) use max viewable map size.
socket/request.c: Make setup commands a little more forgiving if there are
extra spaces. Add 'mapsize' command to setup command. Update
old map sending code to use socket map sizes (to support even
smaller than normal maps, or 13x13 or 15x15 maps). add draw_client_map1
command which implements the map1 protocol command.
MSW 2001-06-03
Show difference between Revision 1.13 and 1.14
Revision 1.13mardahl 2001/05/24 21:42:26 +1 -0
Implemented reduced death penalty: 20% or 3 levels, whichever is lower.
--PeterM 5/24/2001
Show difference between Revision 1.12 and 1.13
Revision 1.12mwedel 2001/05/09 01:58:12 +3 -1
Various improvements to make finding memory leaks easier.
common/anim.c: Add free_all_anim function
common/arch.c: Modify free_all_arch to free more data
common/init.c: If running under MEMORY_DEBUG, don't pre-allocate objects.
common/map.c: Add free_all_maps functiion.
common/object.c: Modify object allocations if using MEMORY_DEBUG to only
malloc one object at a time, and not pre-allocate objects.
common/readable.c: Fix memory leak.
common/shstr.c: Include autoconf.h so it can pull in dmalloc.h file.
include/config.h: Remove notes of what was removed a long time ago.
Add MEMORY_DEBUG option.
include/libproto.h, include/sockproto.h, include/sproto.h: automatic rebuild
server/c_misc.c: Fix 'malloc info command so it reports right memory total
for maps. Add command_style_map_info which sums up memory used by
style maps.
server/commands.c: Add style_info wiz command which dumps memory usage
for style maps.
server/init.c: Have sighup handler call cleanup function.
server/main.c: Fix clean_tmp_files which could result in crash if one
of the maps in memory has 0 reset time. Modify cleanup function
to free more data.
server/player.c: op_on_battleground: Fix compile warning about unuused variable.
socket/init.c: Change name of free_all_ericserver to free_all_newserver,
have it free all face data.
MSW 2001-05-08
Show difference between Revision 1.11 and 1.12
Revision 1.11mwedel 2001/04/30 01:34:28 +3 -2
common/object.c: Add clear_owner function.
include/libproto.h: rebuild.
server/player.c: Modify op_on_battleground to look for battleground
anyplace on space. Temp for for wall of thorns on space - as long
as maps don't try to abuse the use of battlegrounds, should be OK.
server/time.c: Add clear_owner call to stop_arrow. Fixes problem of
thrown objects not getting saved.
MSW 2001-04-28
Show difference between Revision 1.10 and 1.11
Revision 1.10mardahl 2001/04/07 01:04:24 +1 -0
This hack prevents burnouts and firetrails from stacking themselves
many deep. I've noted a huge reduction in the number of objects
to be processed from this mod alone, in situatons where a lot
of comets are flying.

PeterM
Show difference between Revision 1.9 and 1.10
Revision 1.9cvs 2001/02/11 03:12:13 +4 -5
MSW 2001/01/11:
Other than various general cleanups, the main change this code does is
that style maps (for random maps) get loaded special now - they objects
they contain are not put on the active list, and they use a private map
list so they do not appear in the output of the 'maps command.
common/arch.c, common/treasure.c,server/login.c: Update calls to load_object
common/loaderl.l,loader.c: Update lex_load to take an optional flags option.
This is currently only used so that the loader can decide if it should
call update_ob_speedto put objects on the active list or not.
Calls to lex_load updated. load_object modified to take another option
common.map.c: remove PROCESS_WHILE_LOADING and CHECK_ACTIVE_MAPS ifdefs.
update calls to load_object. Remove some dead code.
include/config.h: Remove CHECK_ACTIVE_MAPS and PROCESS_WHILE_LOADING flags.
Those options did not work, and in all likelihood, this would be done
via threading now days and not what code was there.
include/libproto.h, sproto.h: updated or various function changes.
include/map.h: Add MAP_STYLE flag.
random_maps/exit.c: Call set_map_timeout after we load the final map
so it will get swapped out.
random_maps/standalone.c: Add dummy set_map_timeout function so it compiles.
random_maps/style.c: Add load_style_map function which does the job of
actually checking to see if a style map is in memory, and if not,
loads it up. Updates the pointers so it appears on a map style map list
and not the general map list.
server/main.c: create set_map_timeout function that deals with setting the
map timeouts. Fix bug so server doesn't crash if two players kill each
other on hall of selection.
server/monster.c remove dead code.
socket/loop.c: If realloc fails, catch it and exit with meaningful
error message.
End of MSW 2001/02/11 checkin.
Show difference between Revision 1.8 and 1.9
Revision 1.8cvs 2001/01/15 16:33:32 +2 -1
MSW 2000/01/15:
Various fixes for friendly object code:
common/button.c: Add missing call to remove_friendly_object
common/friend.c: Pretty much completely re-written. add_friendly_object now
checks to make sure the object being added isn't already on the list,
remove_friendly_object will remove objects whose tags don't match,
and added clean_friendly_list.
common/object.c: No reason to use the function pointer to
remove_friendly_object since that function is in the lib.
common/time.c: Make DEBUG_TIME always on (no longer compile time option).
other areas use the global var pticks, so if it was turned off, compile
would break anyways.
common/treasuer.c: No longer print debug messages on artifacts created.
Cluttered log file making it hard to see more important errors.
include/config.h: Remove DEBUG_TIME define.
include/libproto.h: Rebuilt for clean_friendly_list function.
server/main.c: rewrote do_specials to do things based on pticks variable.
This allows various specials to be spread out across multiple ticks
easier. Also, added clean_friendly_function to part of what this does.
server/skills.c: add missing call to remove_friendly_object. Also, removed
from #if 0 .. #else .. #endif code.
End of MSW 2000/01/15 checkin.
Show difference between Revision 1.7 and 1.8
Revision 1.7cvs 2000/12/27 01:53:33 +1 -2
MSW 2000/12/26:
Checkin of Jan's new god intervention code. I haven't played around with
it much, but I haven't seen any really obvious problems.
common/living.c: remove learn_prayer_chance
common/treasure.c: Various changes to treasure generation - mostly to
deal with starting equipment and putting it in the inventory.
doc/crossfire.doc: Update docs on god intervention.
include/define.h: GT_... flags removed.
include/treasure.h: GT_... flags added. Addition flags added from
what was in define.h before.
lib/archetypes, lib/crossfire.png, lib/treasures: Updated with new
archetypes and treasures.
random_maps/standalone.c,server/rune.c,server/time.c: Calls to
create_treasure updated
server/apply.c: New functions for god intervention added, update calls
to create_treasure, other god related changes.
server/c_wiz.c: Calls to create_treasure updated, various functions to
allow DM's to learn/unlearn spells added.
server/commands.c: Various commands added to the wiz set of commands.
See commen for c_wiz.c
server/disease.c: Changes to reduce_symptoms
server/gods.c: Numerous updates for god intervention code.
server/player.c: Modifications for starting player equipment.
server/skill_util.c: Display the god the character worships when they
issue the skills command.
server/skills.c: Minor cosmetic change made to message when praying on altar.
server/spell_effect.c: Changes related to gods, cure spells, and
generation of treasures & items.
End of MSW 2000/12/26 checkin.
Show difference between Revision 1.6 and 1.7
Revision 1.6cvs 2000/12/03 18:40:04 +3 -1
Checking for partial resistance code. Various minor errors also fixed
(compiler warnings, unused variables, Makefile.in changes, etc).
PR code also includes support to send protections to the client.
Show difference between Revision 1.5 and 1.6
Revision 1.5cvs 2000/08/07 00:16:33 +9 -9
The following change basically does the following: When the server sends an
item name to the client, this item name is now two pieces - the first piece
of the name is its singular form, the second piece is the plural name. This
now makes items in the inventory appear more proper in terms of pluralization
and just normal English. I did notice that the server does not know how
to properly make 'torch' plural - it turns it into torchs. A matching
check in for the client has also been done.
include/newserver.h: Update VERSION_SC to 1024
common/item.c: Change query_base_name to take a second option on whether
we should generate a plural version of the name or not.
socket/item.c: Modify functions to use second argument on the query_base_name
function. Update item commands to send two part names (singular & plural).
Modify esrv_send_look to use item1 protocol command instead of item command.
server/c_object.c: Update item_matched_string to use second option to
query_base_name. Modify function to check against both singular and
plural versions of name.
server/shop.c: Modify shop_listing command usage in query_basename to use
second option. It will also generate the singular name, but that is only
used on sorting, so I don't think it will generally cause any problems.
include/libproto.h: rebuilt because query_base_name has an addition opt.
Mark Wedel 8/13/2000
Show difference between Revision 1.4 and 1.5
Revision 1.4cvs 2000/06/16 01:08:06 +1 -0
Modified how firewalls worked. Now they can be triggered with handles.
Show difference between Revision 1.3 and 1.4
Revision 1.3jec 2000/05/26 04:50:47 +9 -8
* apply() cleanup patch 26/5/2000
Show difference between Revision 1.2 and 1.3
Revision 1.2jec 2000/05/22 08:06:15 +1 -0
common/object.c: Splitted set_owner() into set_owner_simple() and
set_owner. copy_owner(): New function.
server/spell_util.c: explode_object(): Use copy_owner() instead of setting
skill and experience objects manually. Bugfix: Don't use op->owner
directly (fixed by using the caster in call to SP_level_dam_adjust(),
not the owner, which was wrong anyway).
server/spell_util.c: fire_arch_from_position(): Use copy_owner() instead
of set_owner() if 'op' isn't the real owner but only a spell object
owned by somebody else.
server/spell_util.c: move_swarm_spell(): Use the swarm spell object as
the owner in call to fire_arch_from_position(), which now handles this
case correctly.
server/spell_util.c: fire_swarm(): Call tailor_god_spell().
server/gods.c: determine_god(): op->type==SWARM_SPELL is a spell.
server/gods.c: tailor_god_spell(): op->type==SWARM_SPELL is a spell.
Always abort function if we couldn't find a god. Always add god's
attacktype if the spellop's attacktype has AT_GODPOWER.
Show difference between Revision 1.1 and 1.2
Revision 1.1uid200 1999/04/02 13:10:04 None
Initial revision
First version
Revision 1.1.1.1uid200 1999/04/02 13:10:04 +0 -0
First CVS revsion: crossfire-0.95.3
Show difference between Revision 1.1 and 1.1.1.1


File made using version 1.98 of cvs2html by leaf at 2011-07-21 19:23