--- crossfire/server ---


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

Filename: time.c
Revision 1.93qal21 2006/08/25 22:30:15 +8 -6
Make generators work properly with multi-tile objects.
Show difference between Revision 1.92 and 1.93
Revision 1.92ryo_saeba 2006/08/19 15:22:21 +2 -1
Fix for bug #1460251 (Big monsters generated by generators broken). Tweaks to object dumping.
Show difference between Revision 1.91 and 1.92
Revision 1.91ryo_saeba 2006/07/28 16:13:14 +6 -1
Fix duplicator-related crash
Show difference between Revision 1.90 and 1.91
Revision 1.90tchize 2006/07/02 10:32:35 +3 -3

more progress in unit testing, marked points of interrest in code
Show difference between Revision 1.89 and 1.90
Revision 1.89ryo_saeba 2006/05/05 04:26:36 +12 -12
First part of patch #1453869 courtesy Stefan Huehner (shuehner)
Show difference between Revision 1.88 and 1.89
Revision 1.88tchize 2006/04/06 16:18:36 +2 -2

finished common/arch.c unit test, fixed a few bugs, moved function around and renamed other
Show difference between Revision 1.87 and 1.88
Revision 1.87ryo_saeba 2006/03/18 09:05:37 +36 -33
Massive cleaning of code. Shouldn't be any functional change.
Show difference between Revision 1.86 and 1.87
Revision 1.86mwedel 2006/02/07 01:54:46 +10 -1
Code that adds transports. Transports are described more in detail in
docs/Developers/objects.
---
loader.l: Add new move type ('boat'). Update move_name field to be aware of
this type.
common/object.c: Unrelated to transport, but more apparant with transports -
fix bug with insert_ob_in_map() and multipart objects - we now only
try to fix up map and coordinates if the provided coordinates are
out of the map. Before, function would always use the passed
map for multipart objects, which is incorrect if we have already
set valid coordinates.
doc/Developers/objects: Update notes for TRANSPORTS. Update move
information to include MOVE_BOAT.
include/define.h: Add type TRANSPORT. Add MOVE_BOAT.
include/player.h: Add transport field to player structure.
include/sproto.h: rebuilt.
server/apply.c: Add code to handle applying of transports. Update
apply_below to apply transport if player is on one.
server/attack.c: Update hit_map() to look for transports, and hit any
players with the damage.
server/c_object.c: Update put_object_in_sack() to also handle TRANSPORTS
so that code can be re-used.
server/move.c: Fix handling of multipart objects in move_object() -
old code didn't work right with multipart objects moving along seams
of tiled maps. Add code to move_ob() to update player map position
for all players in a moving transport.
server/player.c: Update move_player_attack() too check of player is
in tranport, and use that for map and location information. Update
move_player() to handle speed related issues with transports.
server/time.c: Add code to credit time back to TRANSPORT objects since
we remove time in move_player() for TRANSPORTS.
socket/item.c: Add add_object_to_socklist() so that same code isn't
reproduced in 3 different places in the file. Update draw_look()
to handle transports - send transport object itself, then objects
in transport. Update esrv_send_inventory() and esrv_send_item()
to use add_object_to_socklist(). Update esrv_get_ob_from_count() to look
for objects in transport if player is in transport.
socket/loop.c: Remove checking of pl->map status, since draw_client_map()
does that, and we need to handle if the player is in a transport.
socket/request.c: Handle map drawing if player is in a transport.
MSW 2006-02-06
Show difference between Revision 1.85 and 1.86
Revision 1.85mwedel 2006/02/04 21:56:58 +48 -46
No code change - just cleaning up the formatting of move_marker() -
indentation was all wacky.
MSW 2006-02-04
Show difference between Revision 1.84 and 1.85
Revision 1.84akirschbaum 2006/01/07 08:30:07 +6 -6
Make teleporters hidden below the floor work again.
Show difference between Revision 1.83 and 1.84
Revision 1.83akirschbaum 2005/12/10 08:27:10 +10 -5
common/object.c, server/{pets.c,player.c,spell_attack.c,time.c},
socket/request.c: Properly check for P_OUT_OF_MAP after calling
get_map_flags().
Show difference between Revision 1.82 and 1.83
Revision 1.82akirschbaum 2005/12/05 16:58:35 +42 -36
Fix bug #1173563 (Creator created Bombs malfunction): Creators and Converters
now copy items from inventory. Fallback (for empty inventory) is the old
behavior to create the new item from other_arch. If the inventory contains more
than one item, a random one is picked.
Show difference between Revision 1.81 and 1.82
Revision 1.81mwedel 2005/12/01 02:25:45 +3 -2
server/spell_attack.c: Add some missing P_IS_ALIVE checks - these weren't
needed in the past because living objects would block movement -
with new movement code, isn't always the case.
server/time.c: Fix player movers so that if the victim doesn't have any
movement type, we move it.
MSW 2005-11-30
Show difference between Revision 1.80 and 1.81
Revision 1.80akirschbaum 2005/11/30 14:59:09 +3 -3
common/time.c: In move_teleporter() and move_player_mover() do not affect DMs
if FLAG_WIZPASS is set.
common/object.c: In check_move_on() do not affect DMs if FLAG_WIZPASS is set.
This prevents DMs from triggering traps when walking over them.
Show difference between Revision 1.79 and 1.80
Revision 1.79mwedel 2005/11/16 02:16:09 +57 -48
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.78 and 1.79
Revision 1.78akirschbaum 2005/10/28 18:43:31 +6 -3
Prevent problems (crashes) for large item piles. Now limit nrof to less than 2^31.
Show difference between Revision 1.77 and 1.78
Revision 1.77gros 2005/10/18 11:54:31 +19 -170
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.76 and 1.77
Revision 1.76akirschbaum 2005/10/07 14:38:50 +4 -4
Make damage done by area spells not depend on monster size.
include/sproto.h, server/attack.c: Add additional parameter "full_hit" to
hit_map() and hit_player(). If set, do full damage, if unset scale down by
monster size.
server/{apply.c, attack.c, disease.c, monster.c, player.c, rune.c,
spell_attack.c, spell_effect.c, spell_util.c, time.c}: Change callers to set
"full_hit" parameter according to the attack used.
Show difference between Revision 1.75 and 1.76
Revision 1.75akirschbaum 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.74 and 1.75
Revision 1.74ryo_saeba 2005/09/25 13:36:02 +5 -3
Changed quest system, needs tweaks and fixes.
Show difference between Revision 1.73 and 1.74
Revision 1.73qal21 2005/09/15 20:02:06 +3 -1
Allow directors/movers to specify a specific arch/name/race.
Show difference between Revision 1.72 and 1.73
Revision 1.72ryo_saeba 2005/08/12 08:46:34 +13 -13
Fields changed from char* to const char*, cleanup.
Show difference between Revision 1.71 and 1.72
Revision 1.71ryo_saeba 2005/07/19 15:59:35 +2 -2
Don't hardcode values. Fix item transformer code.
Show difference between Revision 1.70 and 1.71
Revision 1.70akirschbaum 2005/07/16 16:10:40 +2 -2
Fix spelling errors in string constants.
Show difference between Revision 1.69 and 1.70
Revision 1.69ryo_saeba 2005/07/14 11:21:34 +5 -2
Quest handling
Show difference between Revision 1.68 and 1.69
Revision 1.68akirschbaum 2005/03/06 14:38:55 +2 -2
common/{map.c, readable.c, treasure.c}, crossedit/Attr.c, server/{apply.c,
attack.c, c_wiz.c, init.c, monster.c, pets.c, shop.c, skill_util.c, skills.c,
spell_attack.c, spell_effect.c, time.c}, socket/{info.c, request.c}: Add
missing newline character to LOG() messages.
Show difference between Revision 1.67 and 1.68
Revision 1.67akirschbaum 2005/02/20 14:43:16 +19 -7
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.66 and 1.67
Revision 1.66mwedel 2005/01/12 02:04:02 +2 -2
aclocal.m4, configure: Add check for python 2.4.
common/re-cmp.c: Fix improper comparison *(str+1) instead of str+1
server/login.c: don't allow null names.
server/main.c: Disable logging of removed objects - filling up log
files on archmage of all the errors.
server/player.c: Fix improper initialization of attacktype in
for loop. Give players max grace, sp when they die - also, if they
are near starvation, give them a bunch of food.
server/spell_effect.c: Put cap on duration of godly retribution - it
can otherwise last so long that if a player is killed by it at
their savebed location, spell could still go on after players
temporary immunity ends. Retribution as increases in damage,
so no need to really increase damage and duration to really high
amounts.
server/spell_util.c: In fire_arch_from_position(), and check that
player isn't casting spell on top of wall - fixes for many
spells, including ball lightning.
server/time.c: Change comparsion on return of get_map_flags() from
== P_OUT_OF_MAP to & P_OUT_OF_MAP - keeps syntax consistent.
MSW 2005-01-11
Show difference between Revision 1.65 and 1.66
Revision 1.65mwedel 2004/12/29 02:45:10 +55 -21
common/regexp.c: Fixed couple flaws in regexp handling. First, there was an
off by one error in the handling of matches (if the match was for example
eureca, player could just say eurec, and it would treat that as a valid
match). Second case was that the regular expression logic would not
try comparing the rest of the passed in string after a partial match -
In the eureca case above, if the passed in string was 'where is eureca',
after matching the first e (in where), it then fails to match the
to prevent unpaid objects from teleporting out of the shop. Also
extend code so that non living objects can't use shop mats.
server/player.c: Insert force into the player when they die making them
immune to any spells on the space they reappear on - this prevents
multiple deaths if there is large spell effect going on in the
savebed location. Duration of force should be long enough for most
spells to run their course, but no so long that the player can use
it for much of an advantage (plus, killing yourself to get such
an advantage seems odd, and the force only makes the player immune
to the attacktypes currently on the space)
server/spell_effect.c: Fix spell casting walls (lighting wall,
firewall, etc) in that the spell object they cast was not being
inserted, resulting in the walls not doing anything.
MSW 2004-12-28

Applied patch (bug misc/zoo2) by Lalo
server/time.c: creators can now create multi part objects.
Applied patch 1086102 by Salathar:
server/attack.c: If player kills another player, add (pk) to the death
message.
Applied patch 1086103 by Salathar:
server/move.c: If player pushes another player, send message to both players
that pushed happened. Previously, when pushing another player, the pusher
wouldn't get any notice.
MSW 2004-12-28
Show difference between Revision 1.64 and 1.65
Revision 1.64mwedel 2004/12/28 19:08:50 +12 -2
Applied patch 1001079 - make alchemy books say what skill & equipment
is needed - by Kevin Rudat.
common/readable.c: Update code that generates book title, contents
to denote what skill and equipment is needed.
random_maps/{random_map.c, random_map.h, reader.l, reader.c, standalone.c},
server/main.c:
Remove generate_treasure_now as an option
for random maps - none are using delayed treasure, and IMO, if someone
did, it would horribly break things, so it should never be used - given
that, no reason to leave the code there.
server/main.c: Add additional debugging for process events on removed
objects - trying to track down occasional disease crash.
server/time.c: Fix crash in move_player_mover() - it was never map tile
aware, but even more so, appears to have always been broken if the
player move tried to push the player off the edge of a map. Check
for out of map condition, as well as make it map tile aware.
MSW 2004-12-28
Show difference between Revision 1.63 and 1.64
Revision 1.63mwedel 2004/06/23 00:49:07 +13 -2
server/skill_util.c: Fix skills command so that it properly displays
percentage of permanent exp.
server/time.c: Modify move_arrow() so that it removes thrown objects
with no inventory.
MSW 2004-06-22
Show difference between Revision 1.62 and 1.63
Revision 1.62mwedel 2004/05/14 00:55:56 +61 -66
Clean up the formatting of move_teleporter() - no code changes.
MSW 2004-05-13
Show difference between Revision 1.61 and 1.62
Revision 1.61temitchell 2004/04/09 22:18:54 +2 -2
- add patch to stop pets from multiplying (good idea thanks David
McIlwraith)
Show difference between Revision 1.60 and 1.61
Revision 1.60ryo_saeba 2004/02/27 17:00:28 +3 -3
Some warnings cleaning.
Show difference between Revision 1.59 and 1.60
Revision 1.59mwedel 2003/09/28 23:02:43 +48 -45
server/time.c: Real change is to add a missing call to fix_player - without
this new players would be getting messed up maxsp/maxgrace values. Cleaned
up formatting in move_player_changer() while doing the other change.
MSW 2003-09-28
Show difference between Revision 1.58 and 1.59
Revision 1.58mwedel 2003/09/13 00:02:13 +226 -263
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.57 and 1.58
Revision 1.57temitchell 2003/09/04 01:25:32 +2 -2
- add new type TRAP, make initial seperations from RUNE in code
add in traps triggering stuff if they are detonated
Show difference between Revision 1.56 and 1.57
Revision 1.56tchize 2003/09/03 07:25:06 +54 -5

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.55 and 1.56
Revision 1.55gros 2003/06/26 06:27:43 +38 -34
Re-implemented the event hooks in objects as a dynamically linked list,
instead of a static table.
Show difference between Revision 1.54 and 1.55
Revision 1.54mwedel 2003/03/20 01:21:05 +6 -2
server/attack.c: Change did_make_save to strip out magic attacktype when making
saves for objects - otherwise, things like poison cloud destroy objects.
server/time.c: deal with player animations special in process_object - need to
pass in the facing value, and not direction, since direction gets reset.
MSW 2003-03-19
Show difference between Revision 1.53 and 1.54
Revision 1.53mwedel 2003/03/19 02:09:59 +2 -2
crossedit/Attr.c, server/main.c, server/time.c: Update calls to animate_object()
MSW 2003-03-18
Show difference between Revision 1.52 and 1.53
Revision 1.52mwedel 2003/02/03 01:23:48 +40 -29
More bugfixes:
include/shop.h: remove _SHOP_H after endif, causing compiler warnings.
include/skills.h: Add check to USING_SKILL to make sure chosen_skill
is not null.
server/c_chat.c: Add some missing return values, resulting in compiler
warnings.
server/skill_util.c: Remove unused variable. compiler warnings again.
server/spell_effect.c: Change dimension door so that you can't go
through spaces that block passsage and also block view (eg walls).
This goes back to the more traditional behaviour. Remove
some unused variables.
server/spell_util.c: Add missing P_OUT_OF_MAP to move_missile, resulting
in crashes.
server/time.c: if generator is not on a map, don't have it generates.
Fixes crashes.
MSW 2003-02-02
Show difference between Revision 1.51 and 1.52
Revision 1.51garbled 2003/01/16 22:38:35 +25 -1
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.50 and 1.51
Revision 1.50mwedel 2003/01/08 02:39:21 +86 -73
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.49 and 1.50
Revision 1.49garbled 2003/01/07 03:39:15 +3 -1
Add code for lanterns. These lanterns can be turned on and off. This
should make nighttime in the bigworld a bit easier to handle.
Show difference between Revision 1.48 and 1.49
Revision 1.48mwedel 2002/12/31 01:19:08 +3 -3
server/time.c: Fix bad code in stop_arrow that caused crashes/improper
freeing of data.
MSW 2002-12-30
Show difference between Revision 1.47 and 1.48
Revision 1.47garbled 2002/12/25 00:45:46 +12 -1
New Arrow and Pet Code:
Add bowmode and petmode commands. Allowing the player to change the firing
style for bows to one of either threewide, or spreadshot.
Allow players to change the operating modes of his pet with petmode. Can
be either seek and destroy, defend, or normal historical behavior.
Change bows to impart speed to arrows based on damage and other magical
plusses. Damage decays over distance, to stop arrows from flying forever.
Very fast moving arrows will pierce multiple targets. An arrow moving at a
speed greater than 10.0 will go straight through a target, losing 1.0 of
speed in the process.
Change magic missile to use spell_find_dir instead of find_dir to stop it
from flying in a circle and hitting the caster, and to make it stop
flying into walls to hit creatures behind the walls.
Show difference between Revision 1.46 and 1.47
Revision 1.46garbled 2002/12/12 23:09:49 +10 -1
Fix a typo in the attacktype bow->arrow transfer. Make it so gods can
now bless bows like they would any other weapon. Make slaying transfer
fom the bow to the arrow, so the god enchantment is not lost.
Show difference between Revision 1.45 and 1.46
Revision 1.45garbled 2002/12/12 15:52:52 +3 -1
Fix the fact that bows do not impart thier attacktype to arrows fired.
Show difference between Revision 1.44 and 1.45
Revision 1.44mwedel 2002/12/03 01:40:18 +11 -2
TODO: Move more items from my mailbox to the TODO list.
common/living.c: Init item_power in player to zero in fix_player() -
bogus results were getting generated as it just kept getting incremented.
common/porting.c: fix remove_directory so it works properly - checking
for . and .. entries too late, calling unlink instead of rmdir.
include/sproto.h: rebuilt
lib/animations, lib/archetypes, lib/bmaps, lib/bmaps.paths, lib/crossfire.0,
lib/crossfire.1, lib/faces: Rebuilt - new archs added, catch is_thrown
addition to thrown rock/boulder archs.
server/c_move.c, server/c_range.c: Add another parameter to do_skill() - part, which
is closest part of creature to target object - current only used
for the throw code. Update calls to this function to add additional
parameter.
server/c_object.c: Remove the NDI_UNIQUE from the 'item is too heavy
to pick up' so that it won't flood the client with them if players
goes onto space with lots of objects.
server/main.c: Minor cleanup to fix compiler warning about ambigous
if/else.
server/monster.c: Pass closest part of monster when having it use
a skill so that it doesn't throw rocks into itself. Update calls to
do_skill as described above.
server/player.c: Cal delete_player() when player quits - this properly
cleans up any per player unique maps they have. Also, check for
any such maps currently in memory, and delete those so that unique
maps don't get 'gifted' to the next character of the same name.
Update calls to do_skill as described above.
server/shop.c: Combine items of the same name together in the output
of the shop listings. Include the number of items, remove special
casing of some objects so that query_base_name is used for all item
types.
server/skill_util.c: Modify do_skill() to take additional param as
described above. Also, have do_skill return 1 on success,
0 on failur to use skill, and not return exp - otherwise,
monster code has no idea if skill was successfully used, as throw
doesn't grant exp, and this caused monsters to move into the
object they just threw. Update calls to do_skill as described
above.
server/skills.c: Clean up skill_throw function to return meaningfull
value. Also, pass along extra part of closest monster part
to target. Modify do_throw to return value, use closest
part of body as origin point for thwon object.
server/spell_effect.c: Use isqrt function instead of definining
ISQRT that used float version. Cleans up compile warning - most
likely not seen before as spell was #ifdef SPELL_ENCUMBERANCE out.
server/time.c: Put sanity checking for players speed_left in
move_player_mover() - got some reports of infinite negative speed
on metalforge, and this is the only place in the code where I could
see that happening given the description of the events.
utils/arch2xml.py, utils/cfarches.xsl: New script (and template) by
Todd Mitchell. Script can convert archs to xml, and the template
is usuable with mozilla to look at the output.
MSW 2002-12-02
Show difference between Revision 1.43 and 1.44
Revision 1.43garbled 2002/11/26 02:48:20 +1 -13
Get rid of #ifdef PLUGINS (it is on by default, I didn't take out gros's
code)
Show difference between Revision 1.42 and 1.43
Revision 1.42mwedel 2002/08/13 23:31:07 +3 -1
server/time.c: Possible fix for bug seen on metalforge -
in move_player_mover, make sure we are working with the head of the
monster.
MSW 2002-08-13
Show difference between Revision 1.41 and 1.42
Revision 1.41mwedel 2002/07/14 23:25:40 +3 -3
Update banner copyright with proper contact information.
MSW 2002-07-14
Show difference between Revision 1.40 and 1.41
Revision 1.40garbled 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.39 and 1.40
Revision 1.39michtoen 2001/11/27 22:44:42 +2 -2
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.38 and 1.39
Revision 1.38michtoen 2001/11/26 22:33:46 +0 -0
Arch type & subtype patch

Added type & subtype system with 2 subtypes.
Type & subtype will be send to client.

Adding new types:

FLOOR 71
WALL 77
LIGHT_SOURCE 78
MISC_OBJECT 79
MONSTER 80
SPAWN_GENERATOR 81

Added subtypes for armor & weapons.

new commands are:
sub_type <uint8>
sub_typ2 <uint16>

sub_type2 is for internal server use.

Added new command:
casting_speed <delay>

This will be included later.

I will use the sdl client as tester for this patch,
older clients will not be effected even when the
arches are updated.
Show difference between Revision 1.37 and 1.38
Revision 1.37michtoen 2001/11/26 11:52:26 +10 -3
Attack Patch 25.11.01

Detailed information in the dev list.
The changes are to many to explain here.
Show difference between Revision 1.36 and 1.37
Revision 1.36michtoen 2001/11/04 14:22:55 +0 -0
One Arch/one pic patch.

I use a modified map1cmd, called map2cmd
for it.

This is a first tryout implementation.
The code can more then only submit offset data
of multi arch, its also possible to include animation
tags for the faces - we have now more free flags.

The code is NOT optimized. Iam still unsure , what
the best way is to send all this data. Sort & parsing
cost time. At this stage, ill quick parse is by server,
use slightly more bandwitch and let do the client more
work. But thats perhaps not the best way.

But this code will allow to install the arches for this
one arch/one pic.

MT
Show difference between Revision 1.35 and 1.36
Revision 1.35michtoen 2001/11/02 21:46:46 +14 -1
If you destroy or open a door, you can
set in the arch OTHER_ARCH to an
object that will then generated.

This can be used for open/close doors.
Show difference between Revision 1.34 and 1.35
Revision 1.34garbled 2001/10/15 16:12:08 +9 -9
Remove all instances of RANDOM()% and replace with rndm() from utils.c

garbled 2001-10-15
Show difference between Revision 1.33 and 1.34
Revision 1.33gros 2001/10/14 02:57:15 +179 -24
Major changes: Added dynamic plugin support, removed old Guile support.
- Gros 10/14/01
Show difference between Revision 1.32 and 1.33
Revision 1.32garbled 2001/09/26 16:34:08 +2 -2
Apply the big luck patch to all these files. This removes the special
cases for alchemy and prayer as well.

Discussed at length with dhb, av and gros. Has been tested on both the
mids crossfire server, and on my private server.

This code removes all current use of the luck stat for players, and replaces
it with a general luck modifier for all random rolls. The intent of this
code is to give a general positive (or negative) effect on a player due
to luck. This effect should be generally intangible to the player, yet
help him out over the course of a game.

garbled 2001-09-26
Show difference between Revision 1.31 and 1.32
Revision 1.31mwedel 2001/09/03 01:44:55 +25 -15
This checkin mainly fixes multipart teleporters - they should now
work properly. Also a minor fix to make the new pickup code work.
server/apply.c: apply_shop_mat rewritten to be more 'presentable'.
Minor changes were needed in any case to pass the player/creature
a a second object to teleport.
server/c_object.c: change the sscanf to be unsigned when getting value
for new pickup mode. At least on my system, if the value in the
string was larger than the max signed value, sscanf set it to the
max value.
server/move.c: teleport function largely re-written. Instead of the
third arg being the 'originator', it is now the object to teleport.
This allows the head of the teleporter to get passed to this function
even if the object to teleport is not on the head.
server/time.c: move_teleporter modified to also check for objects on the
other parts of multipart teleporters. Also, pass the head object
to the teleport function so that proper destination is used.
MSW 2001-09-02
Show difference between Revision 1.30 and 1.31
Revision 1.30avogl 2001/08/07 11:58:13 +10 -10
Fixed a bug with teleporters. Teleporters
under floors didn't work - now they do.
--AV
Show difference between Revision 1.29 and 1.30
Revision 1.29avogl 2001/08/07 09:35:21 +4 -5
Re-enabled the ability of teleporters to move
objects with "no_pass" flag set. It is needed
for a few maps in pupland and mak-tower.
--AV
Show difference between Revision 1.28 and 1.29
Revision 1.28mwedel 2001/08/05 17:34:04 +7 -5
common/object.c:decrease_ob_nr modified to correctly update client when
player uses item from container that is on the ground (bookshelf for
example)
server/time.c: move_teleporter modified to skip over wall/floors and
teleport whatever is above them.
MSW 2001-08-05
Show difference between Revision 1.27 and 1.28
Revision 1.27mwedel 2001/08/05 00:07:20 +25 -19
common/map.c: modify link_multipart_objects to preserve name and title of
head when making the more parts. modify update_position so that it should
never show an invisible face to the player.
common/object.c: fix check_walk_on so that spells will now properly get
affected by spinners and directories.
include/sockproto.h: Rebuilt to include MapNewmapCmd
server/hiscore.c: Fix crash if player savebeds map on map which does not
have a name. Use the path instead.
server/move.c: modify teleporter function to send MapNewmapCmd to client
if player got teleported. Needed for fog of war code.
server/time.c: modify move_teleporter so that it will not teleport walls.
socket/Makefile.in: Modified to use cproto to generate proto files.
MSW 2001-08-04
Show difference between Revision 1.26 and 1.27
Revision 1.26mwedel 2001/07/13 23:11:18 +16 -16
Map tiling checkin
server/Makefile.in: Remove encounter.c file. Use cproto instead of
cextract to create proto file.
server/alchemy.c,server/attack.c,server/c_object.c,server/c_wiz.c,
server/disease.c, server/login.c, server/main.c, server/monster.c,
server/move.c, server/pets.c, server/player.c, server/resurrection.c,
server/rune.c, server/shop.c,server/skill_util.c, server/skills.c,
server/spell_effect.c, server/spell_util.c, server/swap.c, server/time.c
modified to use modified insert_ob_in_map function,
use new macros to access map structure related data.
change calls to update_all_los, remove lighting related code.
server/apply.c: modified to use new insert_ob_in_map function. Update
calls to update_object. remove RANDOM_ENCOUNTER code.
for exits, modified to use the head for valid coordinates since the
other parts may not have valid values since they are not saved out to
disk anymore.
server/c_misc.c,server/hiscore.c: modified to use new map
structure/information.
server/commands.c: remove dumplights command.
server/encounter.c: removed - code no longer used
server/init.c: remove RANDOM_ENCOUNTERS code.
server/script.c: change Script_getMapObject to return NULL since there
is no longer a map object. Modify to use new insert_ob_in_map and
update_object functions.
MSW 2001-07-13
Show difference between Revision 1.25 and 1.26
Revision 1.25michtoen 2001/06/13 07:51:58 +1 -1
Modified Files:
player.c loader.l loader.c init.c request.c newserver.h
Log Message:
Removed 2 compiler warning from Scriptfire patch in loader.l/loader.c
and script.c.

added a new setup cmd: "newanim"
a client giving the newanim cmd, will enable the new animation system.

The interface is open and not server controlled at this moment.
First using is to enable the player moving in 8 direction. Giving this option to a
server without changed arch will invoke broken player animations.
This will be changed in the future.

MT 2001-06-13
Show difference between Revision 1.24 and 1.25
Revision 1.24michtoen 2001/06/13 05:52:20 +19 -1
Modified Files:
aclocal.m4 configure. configure.in Makefile.in
crossfire32.dsw crossfire32.dsp INSTALL_WIN32.txt
common: arch.c loader.c treasure.c loader.l
crossedit: Attr.c
doc: README_EXTENSIONS README_SCRIPT
include: autoconf.h define.h global.h includes.h loader.h
object.h script.h spellist.h spells.h sproto.h
version.h
server: Makefile.in apply.c attack.c c_object.c gods.c init.c
main.c monster.c player.c script.c script_spells.c
script_types.c skills.c spell_effect.c spell_util.c
time.c
Log Message:
Adding Scriptfire 0b11 to Crossfire.
Massive changes. The facts are in the doc files.

MT 2001-06-13
Show difference between Revision 1.23 and 1.24
Revision 1.23mwedel 2001/04/30 01:34:29 +2 -1
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.22 and 1.23
Revision 1.22mwedel 2001/04/06 01:25:10 +39 -35
common/porting.c: Fix compile warnings/bugs introduced by Win32 changes.
server/time.c: Modify move_player_mover so that it determines direction
of the mover and then process accordingly, as well as formatting
changes.
server/c_object.c: modify examine so that it properly shows info about
magic bullet spell books. MSW 2001-04-05
Show difference between Revision 1.21 and 1.22
Revision 1.21cvs 2000/12/27 01:53:35 +2 -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.20 and 1.21
Revision 1.20avogl 2000/12/21 10:43:26 +2 -2
Wrong flag in save_player(), caused the saving-attempt
to fail.
Show difference between Revision 1.19 and 1.20
Revision 1.19avogl 2000/12/20 14:29:29 +15 -2
I intended to clean up the character-creation process
and thus changed the initial starting place from
"/city/city" to "/HallOfSelection", like it should be.

I hope this will not cause unwanted side-effects.
I really did my best to test it and prevent any bugs
caused by this change. If you still discover some
weirdness that might be related to this change, please
lemme know. -AV
Show difference between Revision 1.18 and 1.19
Revision 1.18avogl 2000/12/15 09:42:37 +6 -4
server/attack.c:

Acid will only corrode equipment while the player has
less than 50% acid resist.
Note that acid corrosion makes players feel *very* unappy
since there is no way to reverse the process yet.

Outcommented the deathstrike-debug message. It used to
spam the log like crazy.

server/spell_util.c:
server/time.c:

Patch for spell/missile reflecting:
The "reflect spell/missile" flag does no longer provide
living creatures with perfect immunity to projectiles.
There is a missing chance of: 10% + level of projectile / 10
This does apply for all kinds of magic bullets/missiles,
arrows, bolts and thrown objects.
Smite spells and bolt spells are not affected, they will
always bounce off.

server/spell_effect.c:

Done some more cleaning and adjusting for the protection
spells. E.g. it is no longer possible to have both a god's
blessing and a holy possession in effect.
Also removed is the ability to add holy bless/poss. effects
of more than one god to a char.
Show difference between Revision 1.17 and 1.18
Revision 1.17avogl 2000/12/13 21:52:33 +2 -1
PR-patch by AndreasV:

Main features of this patch:

o Negative resistances are calculated in a "logical" way.
For example: +30 and -30 makes a total of zero.

o Vulnerabilities work as "caps" for protection. E.g.:
While wearing one item with fire -20, you cannot get more
than fire +80 overall from equipment.
If one is forced to live with high vulnerability
(like wraith: fire -30), you can still use a potion to go
beyond the cap.

o Potions work completely different than before. The so-called
"immunity-potions" grant an absolute value of 90% protection
(independant from the players's equipment and properties),
there are also very rare ones with 95% and cheap ones with 50%.
If the player has already got more protection than the potion
provides, drinking it won't have any effect.

o Cursed potions are working now (have been broken before).
They give a temporare vulnerability, but can be overriden
by uncursed potions of the same res.-type.

o Protection spells work different than potions. Their effect
does add to the player's equipment. The amount of protection
granted depends on the caster's skill level and path
attunes (if a related spellpath exists). The maximum a player
can get is currently 60% (at wisdom lvl 107 & path_attuned).

o When the player's state of resistance changes, a new kind
of message shows up: The percentage of the new resistance
is displayed: e.g. "You resistance to fire rises to 67%".

o When a player got hit by dam<1 it used to be zero. To make
the calculations more accurate, for 0<dam<1 I "simulate"
a floating point value-effect now. Example: If the correct
damage value would be 0.4, there is 40% chance for dam=1, else
dam=0. For 0.7, ther'd be 70% chance for dam=1... etc.
Without that feature, there would most of the times be no
difference between resistance 95 and 100.
Show difference between Revision 1.16 and 1.17
Revision 1.16peterm 2000/11/19 01:33:30 +4 -1
PeterM: Implementation of:
1) sanctuary
2) holy rage
3) peace
4) forked lightning
5) flaming aura
6) spiderweb
Show difference between Revision 1.15 and 1.16
Revision 1.15peterm 2000/11/17 21:32:34 +4 -1
10 new spells skeleton added to spellist.h and spells.h:
SP_SANCTUARY, SP_PEACE, SP_SPIDERWEB SP_CONFLICT, SP_RAGE,
SP_FORKED_LIGHTING SP_POISON_FOG, SP_FLAME_AURA,
SP_VITRIOL

Of these, SP_SANCTUARY and SP_FLAME_AURA are partially
implemented. These two require archetypes yet.
Show difference between Revision 1.14 and 1.15
Revision 1.14jec 2000/11/06 17:06:47 +147 -88
* stop_item() / attack fix patch 2000-11-06
Show difference between Revision 1.13 and 1.14
Revision 1.13cvs 2000/11/04 00:40:50 +2 -1
server/time.c: Add call to esrv_update_item to update the face for
the client after the player chooses a class. MSW 11/3/2000
Show difference between Revision 1.12 and 1.13
Revision 1.12peterm 2000/10/23 13:13:56 +4 -4
Fix for dumb crashing bug I made. --PeterM
Show difference between Revision 1.11 and 1.12
Revision 1.11peterm 2000/10/16 14:19:31 +48 -6
Major race/class change by PeterM:
BEGIN:
*****************
apply.c: new function, apply changes to player. If the change is a CLASS,
player receives certain attributes from the class.

login.c: make sure people using the old race/class archetypes in their
player files can still use them.

player.c:
1) give_initial_items modified for greater flexibility: you
can pass in a treasurelist.
2) Also, initial forces are applied to the player.
3) Comment added on the stat roll function.
4) Word of recall into the new class-choice map (unfortunately hard-wired.) for newly-rolled players.
5) gen_sp and gen_hp and gen_grace now allowed to go negative to slow down player
regen.

skill_util.c
1) Don't give out basic skills anymore. This interferes with the class code.

spell_util.c
1) Praying failures moderated in frequency.
2) Summoned creatures enhanced in wc, speed, depending on casting level.
3) Word of recall allowed to work in no-magic areas if a flag is set.

time.c
1) Move player changer function added.
2) Marker object expiration added.

END race/class stuff 10/16/2000
***************************
Show difference between Revision 1.10 and 1.11
Revision 1.10cvs 2000/07/28 02:10:21 +13 -5
server/time.c: Update the change_object function such that if the object
is in a players inventory, send a delete & send_item for the object that
has changed (the delete + send_item is necessary due to the ways objects
change, so we just can't sent a update_item). This fixes the 'torches
go dim & then out but client inventory not updated' bug, and likely fixes
some other problems - I am not sure how many other objects out there
change. MSW 7/28/2000
Show difference between Revision 1.9 and 1.10
Revision 1.9jec 2000/06/13 11:58:41 +2 -1
server/time.c: move_marker(): Bugfix: Call update_ob_speed() after
changing force->speed.
Show difference between Revision 1.8 and 1.9
Revision 1.8jec 2000/06/08 11:08:42 +4 -6
common/button.c: do_mood_floor(): Bugfixes: Only players can have pets.
Call add_friendly_object() for friendly monsters.

server/spell_effect.c and server/spell_util.c: Several functions: Only
add a pet if there really is a pet's owner, and it's a player.

server/spell_effect.c: cast_charm() and cast_charm_undead(): Bugfixes:
Only players can cast these spells. This fixes server crash if
a monster casted a charm spell, and the charmed pet was killed.
Call add_friendly_object for friendly monsters.

common/friend.c: remove_friendly_object(): Use llevError for error
messages.

common/living.c: fix_player(); server/gods.c: tailor_god_spell();
server/spell_effect.c: summon_avatar() and animate_weapon(): Bugfix: Set
a string to NULL after calling free_string(). This fixes a nasty bug
that caused the string's reference count drop below 0, which resulted
in corruption of malloc()'s internal data structures (and possibly
server crashes).

server/time.c: move_creator(): Bugfix: Call free_string() to free old
values of op->name and op->title before overwriting them with new values.

common/object.c: insert_ob_in_map_simple() and insert_ob_in_map():
Check that we don't insert freed objects.

server/attack.c: hit_player_attacktype() and hit_player(): Bugfix: Check
that find_god() really found a god, and that 'god->slaying' is not NULL.
Fixes crash if a monster casted turn undead and actually hit something.

server/attack.c: hit_player(): Check that a pet's owner is a player.
Prevents server crashes if a monster has a pet monster due to a bug
somewhere. Use llevError for error message.

server/time.c: move_arrow(): Use llevDebug level for "Arrow had no
map" message.

server/c_object.c, server/spell_effect.c, server/spell_util.c: Bugfixes:
Added some missing checks for destroyed objects. Use was_destroyed()
or return value of insert_ob_in_map() to check for destroyed objects,
not FLAG_FREED or FLAG_REMOVED. Don't use op->count of destroyed objects.

server/shop.c: get_payment2(): Type of tag is 'tag_t', not 'long'.

server/spell_effect.c: animate_bomb(): Fix environment checks.

server/spell_util.c: fire_bolt(): Bugfix: Set level of bolt.

server/spell_util.c: explosion(): Bugfix: Set FLAG_NO_APPLY before
moving the exploding object to the top.

server/spell_util.c: put_a_monster(): First create the monster
completely, then just insert its head.

server/time.c: generate_monster(): Bugfix: Don't free generators that
are used up in this function. process_object() already does this.
This fixes steambolt (which is a generator but must not used up here -
generate_monster() wasn't looking at FLAG_IS_USED_UP) and all generators
which should really be used up (because process_object() didn't expect
generate_monster() to destroy the object).
Show difference between Revision 1.7 and 1.8
Revision 1.7cvs 2000/06/06 02:03:25 +23 -10
Patch to marker so that we can replace old marks.
Show difference between Revision 1.6 and 1.7
Revision 1.6jec 2000/05/29 11:31:26 +5 -1
lib/checkarch.pl: Check for archetypes with type FIRECHEST but no level.
- Jan Echternach 5/29/2000

server/apply.c: move_apply(): Added handling of THROWN_OBJ, CANCELLATION
and BALL_LIGHTNING.
server/spell_effect.c: cancellation(): Traverse inventory of objects
with type THROWN_OBJ.
- Jan Echternach 5/29/2000

server/player.c: fire_bow() and server_skills.c: do_throw(): Bugfix: Don't
use op->count of freed objects. Use was_destroyed() to check for freed
objects instead of QUERY_FLAG (FLAG_FREED). - Jan Echternach 5/29/2000

server/spell_util.c: fire_a_ball(): Bugfixes: Use op->other_arch as
the archetype to fire, not FBULLET. (-> Firechests now cast fire balls
again, not snowballs.) Set level of fired archetype. Check if object
was destroyed after insert_ob_in_map(). - Jan Echternach 5/29/2000

server/time.c: move_firewall() and move_firechest(): Do nothing if
object has no map. Fixes server crashes if a dm creates such a thing
in the inventory. - Jan Echternach 5/29/2000
Show difference between Revision 1.5 and 1.6
Revision 1.5jec 2000/05/26 04:50:49 +18 -17
* apply() cleanup patch 26/5/2000
Show difference between Revision 1.4 and 1.5
Revision 1.4jec 2000/04/17 09:18:13 +2 -1
See CHANGES file.
Show difference between Revision 1.3 and 1.4
Revision 1.3cvs 1999/08/02 19:33:17 +46 -3
Changes allowing for a keycode in the alchemical recipes.
Now, if the formula has a field called 'keycode xxxx',
the person must possess a MARK with 'slaying xxxx'
in order to execute the formula successfully.
Show difference between Revision 1.2 and 1.3
Revision 1.2cvs 1999/07/13 01:03:05 +0 -0

Global commit for 0.95.4 - most files have no changes but just have
differing headers between my local RCS and the CVS versions and need to
get synced up.
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 17:52