Crossfire Mailing List Archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
CF: spell level fixes
- To: crossfire (at) ifi.uio.no
- Subject: CF: spell level fixes
- From: Jan Echternach <>
- Date: Thu, 13 Apr 2000 01:53:43 +0200
- Mail-Followup-To:
- Reply-To: Jan Echternach <>
- Sender:
Hi,
The arch patch adds a level of 1 to all archetypes that are alive but
didn't have a level. This fixes the cause of some AT_DEATH problems.
The checkarch.pl script can be used to check a archetypes file for
archetypes that are alive but don't have a level.
Attacking a earthwall or a door with AT_DEATH kills it immediately. I
think there is a more general problem in that new attack types were
added without adjusting immunities of existing archetypes.
The patch to the server fixes several problems related to spell levels
and AT_DEATH.
server/input.c, show_matching_spells():
Don't try to calculate spellpoint costs for denied spells, because
these are undefined and are now causing lots of BUG messages.
Also improved formatting: spellpoint costs can be > 99, and don't fill
everything with zeros, use spaces instead.
server/skill_util.c:
Fixed some log messages that were lacking a newline at the end.
SK_level():
Rewrite of this function to simplify its structure.
Print error message if we find an invalid level.
server/spell_effect.c, finger_of_death():
Use path_level_mod() correctly, i.e. don't add the modifier to a
different level than path_level_mod() was assuming.
server/spell_util.c:
path_level_mod():
Fixed _many_ bugs. Interface changed to allow arbritary base level
(needed for finger_of_death()).
casting_level():
New function that returns the level at which a spell is cast after
considering attuned and repelled paths.
fire_arch_from_position():
Set level of fired arch. This fixes cause wounds of Devourers (that
attacks with AT_DEATH).
cast_cone():
Use casting_level() instead of SK_level(). Attuned: death with face of
death spell is now working correctly with a +5 level bonus.
move_cone():
Don't recalculate level every time. Just copy the level.
SP_level_dam_adjust(), SP_level_strength_adjust(),
SP_level_spellpoint_cost():
Take advantage of new casting_level() function.
cast_smite_spell():
Use casting_level() instead of SK_level.
--
Jan
diff -rc orig/crossfire-0.95.5-patch4/include/sproto.h crossfire-0.95.5/include/sproto.h
*** orig/crossfire-0.95.5-patch4/include/sproto.h Fri Apr 7 14:32:54 2000
--- crossfire-0.95.5/include/sproto.h Thu Apr 13 00:22:23 2000
***************
*** 556,562 ****
extern void dump_spells ( void );
extern void spell_effect ( int spell_type, int x, int y, mapstruct *map );
extern spell *find_spell ( int spelltype );
! extern int path_level_mod ( object *op, int sp );
extern int check_spell_known ( object *op, int sp );
extern int cast_spell ( object *op, object *caster, int dir, int type, int ability, SpellTypeFrom item, char *stringarg );
extern int cast_create_obj ( object *op, object *caster, object *new_op, int dir );
--- 556,563 ----
extern void dump_spells ( void );
extern void spell_effect ( int spell_type, int x, int y, mapstruct *map );
extern spell *find_spell ( int spelltype );
! extern int path_level_mod ( object *op, int base_level, int sp );
! extern int casting_level ( object *op, int sp );
extern int check_spell_known ( object *op, int sp );
extern int cast_spell ( object *op, object *caster, int dir, int type, int ability, SpellTypeFrom item, char *stringarg );
extern int cast_create_obj ( object *op, object *caster, object *new_op, int dir );
diff -rc orig/crossfire-0.95.5-patch4/server/input.c crossfire-0.95.5/server/input.c
*** orig/crossfire-0.95.5-patch4/server/input.c Wed Mar 22 08:56:48 2000
--- crossfire-0.95.5/server/input.c Thu Apr 13 01:01:57 2000
***************
*** 684,690 ****
static void show_matching_spells(object *op, char *params, int cleric)
{
int i,spnum,first_match=0;
! char lev[80];
for (i=0; i<(QUERY_FLAG(op, FLAG_WIZ)?NROFREALSPELLS:op->contr->nrofknownspells); i++) {
if (QUERY_FLAG(op,FLAG_WIZ)) spnum=i;
--- 684,690 ----
static void show_matching_spells(object *op, char *params, int cleric)
{
int i,spnum,first_match=0;
! char lev[80], cost[80];
for (i=0; i<(QUERY_FLAG(op, FLAG_WIZ)?NROFREALSPELLS:op->contr->nrofknownspells); i++) {
if (QUERY_FLAG(op,FLAG_WIZ)) spnum=i;
***************
*** 699,715 ****
new_draw_info(NDI_UNIQUE, 0, op, "Mage spells");
else
new_draw_info(NDI_UNIQUE, 0, op, "Priest spells");
! new_draw_info(NDI_UNIQUE, 0,op,"[sp] [lev] spell name");
}
! if (spells[spnum].path & op->path_denied)
strcpy(lev,"den");
! else
! sprintf(lev," %02d",spells[spnum].level);
! new_draw_info_format(NDI_UNIQUE,0,op,"[%02d] [%s] %s",
! SP_level_spellpoint_cost(op,op,spnum),
! lev,
! spells[spnum].name);
}
}
--- 699,716 ----
new_draw_info(NDI_UNIQUE, 0, op, "Mage spells");
else
new_draw_info(NDI_UNIQUE, 0, op, "Priest spells");
! new_draw_info(NDI_UNIQUE, 0,op,"[ sp] [lev] spell name");
}
! if (spells[spnum].path & op->path_denied) {
strcpy(lev,"den");
! strcpy(cost,"den");
! } else {
! sprintf(lev,"%3d",spells[spnum].level);
! sprintf(cost,"%3d",SP_level_spellpoint_cost(op,op,spnum));
! }
! new_draw_info_format(NDI_UNIQUE,0,op,"[%s] [%s] %s",
! cost, lev, spells[spnum].name);
}
}
diff -rc orig/crossfire-0.95.5-patch4/server/skill_util.c crossfire-0.95.5/server/skill_util.c
*** orig/crossfire-0.95.5-patch4/server/skill_util.c Wed Mar 22 08:56:48 2000
--- crossfire-0.95.5/server/skill_util.c Thu Apr 13 00:46:41 2000
***************
*** 628,635 ****
shoottype = range_horn;
break;
default:
! LOG(llevDebug,"Warning: bad call of check_skill_to_apply()");
! LOG(llevDebug,"No skill exists for item: %s",query_name(item));
return 0;
}
--- 628,635 ----
shoottype = range_horn;
break;
default:
! LOG(llevDebug,"Warning: bad call of check_skill_to_apply()\n");
! LOG(llevDebug,"No skill exists for item: %s\n",query_name(item));
return 0;
}
***************
*** 740,746 ****
object *op=skillop?skillop->env:NULL;
if(!op||op->type!=PLAYER) {
! LOG(llevError,"Error: unlink_skill() called for non-player!");
return;
}
--- 740,746 ----
object *op=skillop?skillop->env:NULL;
if(!op||op->type!=PLAYER) {
! LOG(llevError,"Error: unlink_skill() called for non-player!\n");
return;
}
***************
*** 1457,1471 ****
* level.
*/
! int SK_level(object *op) {
! int level = op->head?op->head->level:op->level;
#ifdef ALLOW_SKILLS
! if(op->type==PLAYER && op->chosen_skill && op->chosen_skill->level!=0) {
! level = op->chosen_skill->level;
}
#endif
! if(level<=0) level = 1; /* safety */
return level;
}
--- 1457,1483 ----
* level.
*/
! int SK_level(object *op)
! {
! object *head = op->head ? op->head : op;
! int level;
#ifdef ALLOW_SKILLS
! if(head->type==PLAYER && head->chosen_skill && head->chosen_skill->level!=0) {
! level = head->chosen_skill->level;
! } else {
! level = head->level;
}
+ #else
+ level = head->level;
#endif
!
! if(level<=0)
! {
! LOG (llevError, "BUG: SK_level(arch %s, name %s): level <= 0\n",
! op->arch->name, op->name);
! level = 1; /* safety */
! }
return level;
}
diff -rc orig/crossfire-0.95.5-patch4/server/spell_effect.c crossfire-0.95.5/server/spell_effect.c
*** orig/crossfire-0.95.5-patch4/server/spell_effect.c Thu Apr 13 01:06:17 2000
--- crossfire-0.95.5/server/spell_effect.c Thu Apr 13 00:30:41 2000
***************
*** 2934,2942 ****
/* we create a hitter object -- the spell */
hitter=get_archetype("face_of_death");
! hitter->level=SP_PARAMETERS[SP_FINGER_DEATH].bdam +
! 3*SP_level_dam_adjust(op,caster,SP_FINGER_DEATH) +
! path_level_mod(caster, SP_FINGER_DEATH);
set_owner(hitter,op);
hitter->x=target->x;
hitter->y=target->y;
--- 2934,2941 ----
/* we create a hitter object -- the spell */
hitter=get_archetype("face_of_death");
! hitter->level = path_level_mod (caster, SP_PARAMETERS[SP_FINGER_DEATH].bdam +
! 3*SP_level_dam_adjust(op,caster,SP_FINGER_DEATH), SP_FINGER_DEATH);
set_owner(hitter,op);
hitter->x=target->x;
hitter->y=target->y;
diff -rc orig/crossfire-0.95.5-patch4/server/spell_util.c crossfire-0.95.5/server/spell_util.c
*** orig/crossfire-0.95.5-patch4/server/spell_util.c Thu Apr 13 01:06:17 2000
--- crossfire-0.95.5/server/spell_util.c Thu Apr 13 01:05:40 2000
***************
*** 105,124 ****
return &spells[spelltype];
}
! int path_level_mod(object *op, int sp) {
spell *s = find_spell(sp);
! int val;
if (op->path_denied & s->path)
! return -100; /* shouldn't get here, but ... */
! val = (op->path_repelled & s->path) ? -5 : 0
! + (op->path_attuned & s->path) ? 5 : 0;
! if (op->level - val < 1)
! return op->level-1;
! else
! return val;
}
int check_spell_known(object *op,int sp) {
int i;
for(i=0; i < (int)op->contr->nrofknownspells; i++)
--- 105,137 ----
return &spells[spelltype];
}
! /*
! * base_level: level before considering attuned/repelled paths
! * Returns modified level.
! */
! int path_level_mod (object *op, int base_level, int sp)
! {
spell *s = find_spell(sp);
! int new_level;
if (op->path_denied & s->path)
! {
! LOG (llevError, "BUG: path_level_mod (arch %s, name %s): casting denied "
! "spell\n", op->arch->name, op->name);
! return 1;
! }
! new_level = base_level
! + ((op->path_repelled & s->path) ? -5 : 0)
! + ((op->path_attuned & s->path) ? 5 : 0);
! return (new_level < 1) ? 1 : new_level;
! }
!
! int casting_level (object *op, int sp)
! {
! return path_level_mod (op, SK_level (op), sp);
}
+
int check_spell_known(object *op,int sp) {
int i;
for(i=0; i < (int)op->contr->nrofknownspells; i++)
***************
*** 992,997 ****
--- 1005,1011 ----
tmp->x=x, tmp->y=y;
tmp->direction=dir;
set_owner(tmp,op);
+ tmp->level = casting_level (op, type);
#ifdef MULTIPLE_GODS /* needed for AT_HOLYWORD,AT_GODPOWER stuff */
if(tmp->attacktype&AT_HOLYWORD||tmp->attacktype&AT_GODPOWER) {
if(!tailor_god_spell(tmp,op)) return 0;
***************
*** 1042,1050 ****
success=1;
tmp=arch_to_object(spell_arch);
set_owner(tmp,op);
! /* Make face of death work? */
! /* tmp->level=op->level; */
! tmp->level=SK_level(op); /* need to use the cleric level, not overall value -b.t. */
tmp->x=x,tmp->y=y;
#ifdef MULTIPLE_GODS /* holy word stuff */
if((tmp->attacktype&AT_HOLYWORD)||(tmp->attacktype&AT_GODPOWER)) {
--- 1056,1062 ----
success=1;
tmp=arch_to_object(spell_arch);
set_owner(tmp,op);
! tmp->level = casting_level (op, spell_type);
tmp->x=x,tmp->y=y;
#ifdef MULTIPLE_GODS /* holy word stuff */
if((tmp->attacktype&AT_HOLYWORD)||(tmp->attacktype&AT_GODPOWER)) {
***************
*** 1127,1133 ****
tmp->x=x, tmp->y=y;
/* added to make face of death work,and counterspell */
! tmp->level=SK_level(op);
#ifdef MULTIPLE_GODS /* holy word stuff */
if(tmp->attacktype&AT_HOLYWORD||tmp->attacktype&AT_GODPOWER)
--- 1139,1145 ----
tmp->x=x, tmp->y=y;
/* added to make face of death work,and counterspell */
! tmp->level = op->level;
#ifdef MULTIPLE_GODS /* holy word stuff */
if(tmp->attacktype&AT_HOLYWORD||tmp->attacktype&AT_GODPOWER)
***************
*** 1684,1689 ****
--- 1696,1705 ----
most of the following adjustments are for damage only, some are
for turning undead and whatnot.
+ The following functions assume that casting the spell is not
+ denied. Denied spells have an undefined path level modifier.
+ There wouldn't be a meaningful result anyway.
+
The arrays are defined in spells.h*/
/* July 1995 - I changed the next 3 functions slightly by replacing
***************
*** 1694,1707 ****
* path modifiers. --DAMN */
int SP_level_dam_adjust(object *op, object *caster, int spell_type)
! { int adj;
! #ifdef ALLOW_SKILLS
! int level=SK_level(caster)+path_level_mod(caster, spell_type);
! #else
! int level=caster->level+path_level_mod(caster, spell_type);
! #endif
!
! adj=(level-spells[spell_type].level);
if(adj < 0) adj=0;
if(SP_PARAMETERS[spell_type].ldam)
adj/=SP_PARAMETERS[spell_type].ldam;
--- 1710,1718 ----
* path modifiers. --DAMN */
int SP_level_dam_adjust(object *op, object *caster, int spell_type)
! {
! int level = casting_level (caster, spell_type);
! int adj = (level-spells[spell_type].level);
if(adj < 0) adj=0;
if(SP_PARAMETERS[spell_type].ldam)
adj/=SP_PARAMETERS[spell_type].ldam;
***************
*** 1713,1725 ****
/* now based on caster's level instead of on op's level and caster's *
* path modifiers. --DAMN */
int SP_level_strength_adjust(object *op, object *caster, int spell_type)
! { int adj;
! #ifdef ALLOW_SKILLS
! int level=SK_level(caster)+path_level_mod(caster, spell_type);
! #else
! int level=caster->level+path_level_mod(caster, spell_type);
! #endif
! adj= (level-spells[spell_type].level);
if(adj < 0) adj=0;
if(SP_PARAMETERS[spell_type].ldur)
adj/=SP_PARAMETERS[spell_type].ldur;
--- 1724,1732 ----
/* now based on caster's level instead of on op's level and caster's *
* path modifiers. --DAMN */
int SP_level_strength_adjust(object *op, object *caster, int spell_type)
! {
! int level = casting_level (caster, spell_type);
! int adj = (level-spells[spell_type].level);
if(adj < 0) adj=0;
if(SP_PARAMETERS[spell_type].ldur)
adj/=SP_PARAMETERS[spell_type].ldur;
***************
*** 1738,1748 ****
int SP_level_spellpoint_cost(object *op, object *caster, int spell_type)
{
spell *s=find_spell(spell_type);
! # ifdef ALLOW_SKILLS
! int level=SK_level(op)+path_level_mod(caster, spell_type);
! #else
! int level=op->level+path_level_mod(caster, spell_type);
! #endif /* ALLOW_SKILLS */
#ifdef SPELLPOINT_LEVEL_DEPEND
int sp;
if(SP_PARAMETERS[spell_type].spl)
--- 1745,1751 ----
int SP_level_spellpoint_cost(object *op, object *caster, int spell_type)
{
spell *s=find_spell(spell_type);
! int level = casting_level (caster, spell_type);
#ifdef SPELLPOINT_LEVEL_DEPEND
int sp;
if(SP_PARAMETERS[spell_type].spl)
***************
*** 2153,2159 ****
return 0;
/* tailor the effect by priest level and worshipped God */
! effect->level=SK_level(op);
#ifdef MULTIPLE_GODS
if(effect->attacktype&AT_HOLYWORD||effect->attacktype&AT_GODPOWER) {
if(tailor_god_spell(effect,op))
--- 2156,2162 ----
return 0;
/* tailor the effect by priest level and worshipped God */
! effect->level = casting_level (op, type);
#ifdef MULTIPLE_GODS
if(effect->attacktype&AT_HOLYWORD||effect->attacktype&AT_GODPOWER) {
if(tailor_god_spell(effect,op))
diff -rc ../../orig/crossfire-0.95.5-arch-patch1/Naming.doc arch/Naming.doc
*** ../../orig/crossfire-0.95.5-arch-patch1/Naming.doc Mon Mar 29 06:46:43 1999
--- arch/Naming.doc Wed Apr 12 14:20:17 2000
***************
*** 29,35 ****
4 5 6
2x3
1 2
! 2 3
5 6
codings:
direction:
--- 29,35 ----
4 5 6
2x3
1 2
! 3 4
5 6
codings:
direction:
diff -rc ../../orig/crossfire-0.95.5-arch-patch1/door/Door/door.arc arch/door/Door/door.arc
*** ../../orig/crossfire-0.95.5-arch-patch1/door/Door/door.arc Mon Mar 29 06:51:34 1999
--- arch/door/Door/door.arc Wed Apr 12 23:14:48 2000
***************
*** 12,17 ****
--- 12,18 ----
material 16
no_pick 1
alive 1
+ level 1
editable 16
end
Object door_1_1
***************
*** 28,33 ****
--- 29,35 ----
material 16
no_pick 1
alive 1
+ level 1
editable 16
end
Object door_1_3
***************
*** 44,49 ****
--- 46,52 ----
material 16
no_pick 1
alive 1
+ level 1
editable 16
end
Object door_2_2_1
***************
*** 60,65 ****
--- 63,69 ----
material 16
no_pick 1
alive 1
+ level 1
editable 16
end
Object door_1_2
***************
*** 76,81 ****
--- 80,86 ----
material 16
no_pick 1
alive 1
+ level 1
editable 16
end
Object door_2_1_1
***************
*** 92,97 ****
--- 97,103 ----
material 16
no_pick 1
alive 1
+ level 1
editable 16
end
Object door_2_2_2
***************
*** 108,113 ****
--- 114,120 ----
material 16
no_pick 1
alive 1
+ level 1
editable 16
end
Object door_3_2
***************
*** 124,129 ****
--- 131,137 ----
material 16
no_pick 1
alive 1
+ level 1
editable 16
end
Object door_1_4
***************
*** 140,145 ****
--- 148,154 ----
material 16
no_pick 1
alive 1
+ level 1
editable 16
end
Object door_2_2_4
***************
*** 156,161 ****
--- 165,171 ----
material 16
no_pick 1
alive 1
+ level 1
editable 16
end
Object door_2_1_2
***************
*** 172,177 ****
--- 182,188 ----
material 16
no_pick 1
alive 1
+ level 1
editable 16
end
Object door_3_1
***************
*** 188,193 ****
--- 199,205 ----
material 16
no_pick 1
alive 1
+ level 1
editable 16
end
Object door_2_2_3
***************
*** 204,209 ****
--- 216,222 ----
material 16
no_pick 1
alive 1
+ level 1
editable 16
end
Object door_3_4
***************
*** 220,225 ****
--- 233,239 ----
material 16
no_pick 1
alive 1
+ level 1
editable 16
end
Object door_3_3
***************
*** 236,241 ****
--- 250,256 ----
material 16
no_pick 1
alive 1
+ level 1
editable 16
end
Object door_4
***************
*** 252,256 ****
--- 267,272 ----
material 16
no_pick 1
alive 1
+ level 1
editable 16
end
diff -rc ../../orig/crossfire-0.95.5-arch-patch1/door/odoor_1.arc arch/door/odoor_1.arc
*** ../../orig/crossfire-0.95.5-arch-patch1/door/odoor_1.arc Mon Mar 29 06:51:31 1999
--- arch/door/odoor_1.arc Wed Apr 12 23:15:24 2000
***************
*** 12,16 ****
--- 12,17 ----
material 16
no_pick 1
alive 1
+ level 1
editable 16
end
diff -rc ../../orig/crossfire-0.95.5-arch-patch1/door/odoor_2.arc arch/door/odoor_2.arc
*** ../../orig/crossfire-0.95.5-arch-patch1/door/odoor_2.arc Mon Mar 29 06:51:31 1999
--- arch/door/odoor_2.arc Wed Apr 12 23:15:37 2000
***************
*** 12,16 ****
--- 12,17 ----
material 16
no_pick 1
alive 1
+ level 1
editable 16
end
diff -rc ../../orig/crossfire-0.95.5-arch-patch1/door/wooddoor_1.arc arch/door/wooddoor_1.arc
*** ../../orig/crossfire-0.95.5-arch-patch1/door/wooddoor_1.arc Mon Mar 29 06:51:31 1999
--- arch/door/wooddoor_1.arc Wed Apr 12 23:15:57 2000
***************
*** 11,16 ****
--- 11,17 ----
material 2
no_pick 1
alive 1
+ level 1
pass_thru 1
editable 16
end
diff -rc ../../orig/crossfire-0.95.5-arch-patch1/door/wooddoor_2.arc arch/door/wooddoor_2.arc
*** ../../orig/crossfire-0.95.5-arch-patch1/door/wooddoor_2.arc Mon Mar 29 06:51:31 1999
--- arch/door/wooddoor_2.arc Wed Apr 12 23:16:05 2000
***************
*** 11,16 ****
--- 11,17 ----
material 2
no_pick 1
alive 1
+ level 1
pass_thru 1
editable 16
end
diff -rc ../../orig/crossfire-0.95.5-arch-patch1/monster/acid/acid_pool.arc arch/monster/acid/acid_pool.arc
*** ../../orig/crossfire-0.95.5-arch-patch1/monster/acid/acid_pool.arc Mon Mar 29 06:55:59 1999
--- arch/monster/acid/acid_pool.arc Wed Apr 12 23:17:02 2000
***************
*** 2,7 ****
--- 2,8 ----
name acid pool
generator 1
alive 1
+ level 1
no_pick 1
face acid_pool.111
anim
diff -rc ../../orig/crossfire-0.95.5-arch-patch1/monster/animal/bat_gen.arc arch/monster/animal/bat_gen.arc
*** ../../orig/crossfire-0.95.5-arch-patch1/monster/animal/bat_gen.arc Mon Mar 29 06:59:27 1999
--- arch/monster/animal/bat_gen.arc Wed Apr 12 23:17:27 2000
***************
*** 5,10 ****
--- 5,11 ----
generator 1
no_pick 1
alive 1
+ level 1
exp 20
speed 0.015
hp 100
diff -rc ../../orig/crossfire-0.95.5-arch-patch1/monster/animal/bird_gen.arc arch/monster/animal/bird_gen.arc
*** ../../orig/crossfire-0.95.5-arch-patch1/monster/animal/bird_gen.arc Mon Mar 29 06:59:27 1999
--- arch/monster/animal/bird_gen.arc Wed Apr 12 23:17:36 2000
***************
*** 10,15 ****
--- 10,16 ----
ac 5
speed 0.01
alive 1
+ level 1
maxsp 1
weight 1000
editable 1
diff -rc ../../orig/crossfire-0.95.5-arch-patch1/monster/animal/farmyard/chicken.arc arch/monster/animal/farmyard/chicken.arc
*** ../../orig/crossfire-0.95.5-arch-patch1/monster/animal/farmyard/chicken.arc Mon Mar 29 06:59:43 1999
--- arch/monster/animal/farmyard/chicken.arc Wed Apr 12 23:18:52 2000
***************
*** 11,16 ****
--- 11,17 ----
monster 1
Wis 1
alive 1
+ level 1
ac 9
hp 3
maxhp 3
diff -rc ../../orig/crossfire-0.95.5-arch-patch1/monster/animal/mouse_gen.arc arch/monster/animal/mouse_gen.arc
*** ../../orig/crossfire-0.95.5-arch-patch1/monster/animal/mouse_gen.arc Mon Mar 29 06:59:29 1999
--- arch/monster/animal/mouse_gen.arc Wed Apr 12 23:17:41 2000
***************
*** 5,10 ****
--- 5,11 ----
face mouse_gen.111
color_fg brown
alive 1
+ level 1
speed 0.006
hp 30
maxhp 30
diff -rc ../../orig/crossfire-0.95.5-arch-patch1/monster/animal/panthergen.arc arch/monster/animal/panthergen.arc
*** ../../orig/crossfire-0.95.5-arch-patch1/monster/animal/panthergen.arc Mon Mar 29 06:59:21 1999
--- arch/monster/animal/panthergen.arc Wed Apr 12 23:17:46 2000
***************
*** 4,9 ****
--- 4,10 ----
face panthergen.111
generator 1
alive 1
+ level 1
hp 100
speed 0.004
exp 50
diff -rc ../../orig/crossfire-0.95.5-arch-patch1/monster/animal/scorpi_gen.arc arch/monster/animal/scorpi_gen.arc
*** ../../orig/crossfire-0.95.5-arch-patch1/monster/animal/scorpi_gen.arc Mon Mar 29 06:59:29 1999
--- arch/monster/animal/scorpi_gen.arc Wed Apr 12 23:17:56 2000
***************
*** 5,10 ****
--- 5,11 ----
face scorpi_gen.111
color_fg red
alive 1
+ level 1
speed 0.002
hp 50
maxhp 50
diff -rc ../../orig/crossfire-0.95.5-arch-patch1/monster/beholder/behold_gen.arc arch/monster/beholder/behold_gen.arc
*** ../../orig/crossfire-0.95.5-arch-patch1/monster/beholder/behold_gen.arc Mon Mar 29 06:56:09 1999
--- arch/monster/beholder/behold_gen.arc Wed Apr 12 23:19:13 2000
***************
*** 11,16 ****
--- 11,17 ----
speed -0.001
immune 2
alive 1
+ level 1
maxsp 1
weight 90000
editable 1
diff -rc ../../orig/crossfire-0.95.5-arch-patch1/monster/demon/devil_gen.arc arch/monster/demon/devil_gen.arc
*** ../../orig/crossfire-0.95.5-arch-patch1/monster/demon/devil_gen.arc Mon Mar 29 06:56:12 1999
--- arch/monster/demon/devil_gen.arc Wed Apr 12 23:21:03 2000
***************
*** 12,17 ****
--- 12,18 ----
immune 4
vulnerable 48
alive 1
+ level 1
maxsp 1
weight 300000
editable 1
diff -rc ../../orig/crossfire-0.95.5-arch-patch1/monster/goblin/gnoll_gen.arc arch/monster/goblin/gnoll_gen.arc
*** ../../orig/crossfire-0.95.5-arch-patch1/monster/goblin/gnoll_gen.arc Mon Mar 29 06:57:19 1999
--- arch/monster/goblin/gnoll_gen.arc Wed Apr 12 23:21:21 2000
***************
*** 10,15 ****
--- 10,16 ----
ac 10
speed 0.004
alive 1
+ level 1
maxsp 1
weight 1000000
editable 1
diff -rc ../../orig/crossfire-0.95.5-arch-patch1/monster/goblin/goblin_gen.arc arch/monster/goblin/goblin_gen.arc
*** ../../orig/crossfire-0.95.5-arch-patch1/monster/goblin/goblin_gen.arc Mon Mar 29 06:57:19 1999
--- arch/monster/goblin/goblin_gen.arc Wed Apr 12 23:21:27 2000
***************
*** 9,14 ****
--- 9,15 ----
ac 8
exp 100
alive 1
+ level 1
no_pick 1
speed 0.02
maxsp 1
diff -rc ../../orig/crossfire-0.95.5-arch-patch1/monster/goblin/kobold_gen.arc arch/monster/goblin/kobold_gen.arc
*** ../../orig/crossfire-0.95.5-arch-patch1/monster/goblin/kobold_gen.arc Mon Mar 29 06:57:19 1999
--- arch/monster/goblin/kobold_gen.arc Wed Apr 12 23:21:32 2000
***************
*** 10,15 ****
--- 10,16 ----
ac 15
speed 0.02
alive 1
+ level 1
maxsp 1
weight 1000000
editable 1
diff -rc ../../orig/crossfire-0.95.5-arch-patch1/monster/goblin/ogre_gen.arc arch/monster/goblin/ogre_gen.arc
*** ../../orig/crossfire-0.95.5-arch-patch1/monster/goblin/ogre_gen.arc Mon Mar 29 06:57:19 1999
--- arch/monster/goblin/ogre_gen.arc Wed Apr 12 23:21:37 2000
***************
*** 10,15 ****
--- 10,16 ----
ac 7
speed 0.002
alive 1
+ level 1
maxsp 1
weight 1000000
editable 1
diff -rc ../../orig/crossfire-0.95.5-arch-patch1/monster/goblin/orc_gen.arc arch/monster/goblin/orc_gen.arc
*** ../../orig/crossfire-0.95.5-arch-patch1/monster/goblin/orc_gen.arc Mon Mar 29 06:57:19 1999
--- arch/monster/goblin/orc_gen.arc Wed Apr 12 23:21:46 2000
***************
*** 10,15 ****
--- 10,16 ----
ac 9
speed 0.006
alive 1
+ level 1
maxsp 1
weight 1000000
editable 1
diff -rc ../../orig/crossfire-0.95.5-arch-patch1/monster/human/Town/crone.arc arch/monster/human/Town/crone.arc
*** ../../orig/crossfire-0.95.5-arch-patch1/monster/human/Town/crone.arc Mon Mar 29 06:54:33 1999
--- arch/monster/human/Town/crone.arc Wed Apr 12 23:25:34 2000
***************
*** 7,12 ****
--- 7,13 ----
monster 1
unaggressive 1
alive 1
+ level 1
ac 9
wc 18
dam 1
diff -rc ../../orig/crossfire-0.95.5-arch-patch1/monster/human/Town/postman/postman_gen.arc arch/monster/human/Town/postman/postman_gen.arc
*** ../../orig/crossfire-0.95.5-arch-patch1/monster/human/Town/postman/postman_gen.arc Mon Mar 29 06:54:35 1999
--- arch/monster/human/Town/postman/postman_gen.arc Wed Apr 12 23:24:21 2000
***************
*** 10,15 ****
--- 10,16 ----
ac 13
speed -0.08
alive 1
+ level 1
sp 1
maxsp 1
weight 90000
diff -rc ../../orig/crossfire-0.95.5-arch-patch1/monster/human/arabic/big_slave.arc arch/monster/human/arabic/big_slave.arc
*** ../../orig/crossfire-0.95.5-arch-patch1/monster/human/arabic/big_slave.arc Mon Mar 29 06:55:03 1999
--- arch/monster/human/arabic/big_slave.arc Wed Apr 12 23:26:19 2000
***************
*** 3,8 ****
--- 3,9 ----
name big slave
face big_slave.111
alive 1
+ level 1
monster 1
hp 30
maxhp 30
diff -rc ../../orig/crossfire-0.95.5-arch-patch1/monster/human/arabic/slave.arc arch/monster/human/arabic/slave.arc
*** ../../orig/crossfire-0.95.5-arch-patch1/monster/human/arabic/slave.arc Mon Mar 29 06:55:03 1999
--- arch/monster/human/arabic/slave.arc Wed Apr 12 23:26:33 2000
***************
*** 4,9 ****
--- 4,10 ----
face slave.111
speed 0.10
alive 1
+ level 1
monster 1
no_pick 1
hp 10
diff -rc ../../orig/crossfire-0.95.5-arch-patch1/monster/human/madman_gen.arc arch/monster/human/madman_gen.arc
*** ../../orig/crossfire-0.95.5-arch-patch1/monster/human/madman_gen.arc Mon Mar 29 06:54:26 1999
--- arch/monster/human/madman_gen.arc Wed Apr 12 23:22:17 2000
***************
*** 8,13 ****
--- 8,14 ----
ac 2
exp 100
alive 1
+ level 1
no_pick 1
speed 0.01
maxsp 1
diff -rc ../../orig/crossfire-0.95.5-arch-patch1/monster/human/pyro_gen.arc arch/monster/human/pyro_gen.arc
*** ../../orig/crossfire-0.95.5-arch-patch1/monster/human/pyro_gen.arc Mon Mar 29 06:54:24 1999
--- arch/monster/human/pyro_gen.arc Wed Apr 12 23:23:23 2000
***************
*** 10,15 ****
--- 10,16 ----
speed 0.001
weight -1
alive 1
+ level 1
sp 130
maxsp 1
editable 1
diff -rc ../../orig/crossfire-0.95.5-arch-patch1/monster/insect/ant_gen.arc arch/monster/insect/ant_gen.arc
*** ../../orig/crossfire-0.95.5-arch-patch1/monster/insect/ant_gen.arc Mon Mar 29 06:59:49 1999
--- arch/monster/insect/ant_gen.arc Wed Apr 12 23:26:55 2000
***************
*** 8,13 ****
--- 8,14 ----
ac 20
exp 35
alive 1
+ level 1
no_pick 1
speed 0.03
maxsp 1
diff -rc ../../orig/crossfire-0.95.5-arch-patch1/monster/insect/bee_gen.arc arch/monster/insect/bee_gen.arc
*** ../../orig/crossfire-0.95.5-arch-patch1/monster/insect/bee_gen.arc Mon Mar 29 06:59:48 1999
--- arch/monster/insect/bee_gen.arc Wed Apr 12 23:27:02 2000
***************
*** 8,13 ****
--- 8,14 ----
ac 4
exp 20
alive 1
+ level 1
no_pick 1
speed 0.02
maxsp 1
diff -rc ../../orig/crossfire-0.95.5-arch-patch1/monster/insect/beehive.arc arch/monster/insect/beehive.arc
*** ../../orig/crossfire-0.95.5-arch-patch1/monster/insect/beehive.arc Mon Mar 29 06:59:48 1999
--- arch/monster/insect/beehive.arc Wed Apr 12 23:27:30 2000
***************
*** 13,18 ****
--- 13,19 ----
mina
color_fg light_blue
alive 1
+ level 1
exp 50
ac 12
hp 30
diff -rc ../../orig/crossfire-0.95.5-arch-patch1/monster/insect/spider_gen.arc arch/monster/insect/spider_gen.arc
*** ../../orig/crossfire-0.95.5-arch-patch1/monster/insect/spider_gen.arc Mon Mar 29 06:59:47 1999
--- arch/monster/insect/spider_gen.arc Wed Apr 12 23:27:11 2000
***************
*** 13,18 ****
--- 13,19 ----
speed 0.01
weight -1
alive 1
+ level 1
sp 130
maxsp 1
editable 1
diff -rc ../../orig/crossfire-0.95.5-arch-patch1/monster/insect/xan_gen.arc arch/monster/insect/xan_gen.arc
*** ../../orig/crossfire-0.95.5-arch-patch1/monster/insect/xan_gen.arc Mon Mar 29 06:59:49 1999
--- arch/monster/insect/xan_gen.arc Wed Apr 12 23:27:18 2000
***************
*** 4,9 ****
--- 4,10 ----
name Mosquito eggs
generator 1
alive 1
+ level 1
no_pick 1
face xan_gen.111
hp 30
diff -rc ../../orig/crossfire-0.95.5-arch-patch1/monster/misc/firechest.arc arch/monster/misc/firechest.arc
*** ../../orig/crossfire-0.95.5-arch-patch1/monster/misc/firechest.arc Mon Mar 29 06:58:26 1999
--- arch/monster/misc/firechest.arc Wed Apr 12 23:27:47 2000
***************
*** 8,13 ****
--- 8,14 ----
ac 3
weight 30
alive 1
+ level 1
no_pick 1
immune 4
editable 1
diff -rc ../../orig/crossfire-0.95.5-arch-patch1/monster/misc/pixie_gen.arc arch/monster/misc/pixie_gen.arc
*** ../../orig/crossfire-0.95.5-arch-patch1/monster/misc/pixie_gen.arc Mon Mar 29 06:58:25 1999
--- arch/monster/misc/pixie_gen.arc Wed Apr 12 23:28:06 2000
***************
*** 9,14 ****
--- 9,15 ----
ac 10
exp 20
alive 1
+ level 1
no_pick 1
speed -0.003
maxsp 1
diff -rc ../../orig/crossfire-0.95.5-arch-patch1/monster/misc/serpmen/serpman_gen.arc arch/monster/misc/serpmen/serpman_gen.arc
*** ../../orig/crossfire-0.95.5-arch-patch1/monster/misc/serpmen/serpman_gen.arc Mon Mar 29 06:58:42 1999
--- arch/monster/misc/serpmen/serpman_gen.arc Wed Apr 12 23:28:50 2000
***************
*** 11,16 ****
--- 11,17 ----
speed -0.05
immune 2
alive 1
+ level 1
sp 1
maxsp 1
weight 90000
diff -rc ../../orig/crossfire-0.95.5-arch-patch1/monster/undead/ghost_gen.arc arch/monster/undead/ghost_gen.arc
*** ../../orig/crossfire-0.95.5-arch-patch1/monster/undead/ghost_gen.arc Mon Mar 29 06:59:00 1999
--- arch/monster/undead/ghost_gen.arc Wed Apr 12 23:30:51 2000
***************
*** 7,12 ****
--- 7,13 ----
speed 0.01
exp 70
alive 1
+ level 1
no_pick 1
ac 5
maxsp 1
diff -rc ../../orig/crossfire-0.95.5-arch-patch1/monster/undead/skelet_gen.arc arch/monster/undead/skelet_gen.arc
*** ../../orig/crossfire-0.95.5-arch-patch1/monster/undead/skelet_gen.arc Mon Mar 29 06:59:00 1999
--- arch/monster/undead/skelet_gen.arc Wed Apr 12 23:30:57 2000
***************
*** 4,9 ****
--- 4,10 ----
name generator
generator 1
alive 1
+ level 1
face gravestone.111
hp 75
maxhp 75
diff -rc ../../orig/crossfire-0.95.5-arch-patch1/monster/undead/skull_gen.arc arch/monster/undead/skull_gen.arc
*** ../../orig/crossfire-0.95.5-arch-patch1/monster/undead/skull_gen.arc Mon Mar 29 06:59:00 1999
--- arch/monster/undead/skull_gen.arc Wed Apr 12 23:31:00 2000
***************
*** 9,14 ****
--- 9,15 ----
ac 7
exp 1000
alive 1
+ level 1
no_pick 1
speed 0.0002
maxsp 1
diff -rc ../../orig/crossfire-0.95.5-arch-patch1/monster/undead/vampiregen.arc arch/monster/undead/vampiregen.arc
*** ../../orig/crossfire-0.95.5-arch-patch1/monster/undead/vampiregen.arc Mon Mar 29 06:58:59 1999
--- arch/monster/undead/vampiregen.arc Wed Apr 12 23:31:07 2000
***************
*** 3,8 ****
--- 3,9 ----
other_arch vampire
generator 1
alive 1
+ level 1
face vampiregen.111
hp 400
maxhp 400
diff -rc ../../orig/crossfire-0.95.5-arch-patch1/monster/undead/zombie_gen.arc arch/monster/undead/zombie_gen.arc
*** ../../orig/crossfire-0.95.5-arch-patch1/monster/undead/zombie_gen.arc Mon Mar 29 06:58:59 1999
--- arch/monster/undead/zombie_gen.arc Wed Apr 12 23:31:11 2000
***************
*** 4,9 ****
--- 4,10 ----
name generator
generator 1
alive 1
+ level 1
face zombie_gen.111
hp 100
maxhp 100
diff -rc ../../orig/crossfire-0.95.5-arch-patch1/wall/awall/awall_weak.arc arch/wall/awall/awall_weak.arc
*** ../../orig/crossfire-0.95.5-arch-patch1/wall/awall/awall_weak.arc Mon Mar 29 07:02:34 1999
--- arch/wall/awall/awall_weak.arc Wed Apr 12 23:32:36 2000
***************
*** 20,25 ****
--- 20,26 ----
no_pick 1
blocksview 1
alive 1
+ level 1
editable 768
visibility 100
magicmap black
***************
*** 49,54 ****
--- 50,56 ----
no_pick 1
blocksview 1
alive 1
+ level 1
editable 768
visibility 100
magicmap black
diff -rc ../../orig/crossfire-0.95.5-arch-patch1/wall/bwall/bwall_weak.arc arch/wall/bwall/bwall_weak.arc
*** ../../orig/crossfire-0.95.5-arch-patch1/wall/bwall/bwall_weak.arc Mon Mar 29 07:02:22 1999
--- arch/wall/bwall/bwall_weak.arc Wed Apr 12 23:32:53 2000
***************
*** 22,27 ****
--- 22,28 ----
no_pick 1
blocksview 1
alive 1
+ level 1
editable 768
visibility 100
end
***************
*** 49,54 ****
--- 50,56 ----
no_pick 1
blocksview 1
alive 1
+ level 1
editable 768
visibility 100
end
diff -rc ../../orig/crossfire-0.95.5-arch-patch1/wall/bwall/earthwall.arc arch/wall/bwall/earthwall.arc
*** ../../orig/crossfire-0.95.5-arch-patch1/wall/bwall/earthwall.arc Mon Mar 29 07:02:24 1999
--- arch/wall/bwall/earthwall.arc Wed Apr 12 23:33:35 2000
***************
*** 19,24 ****
--- 19,25 ----
no_pick 1
blocksview 1
alive 1
+ level 1
pass_thru 1
editable 768
end
diff -rc ../../orig/crossfire-0.95.5-arch-patch1/wall/bwall/hedge.arc arch/wall/bwall/hedge.arc
*** ../../orig/crossfire-0.95.5-arch-patch1/wall/bwall/hedge.arc Mon Mar 29 07:02:32 1999
--- arch/wall/bwall/hedge.arc Wed Apr 12 23:33:53 2000
***************
*** 18,23 ****
--- 18,24 ----
no_pick 1
blocksview 1
alive 1
+ level 1
pass_thru 1
editable 768
end
diff -rc ../../orig/crossfire-0.95.5-arch-patch1/wall/cwall/cwall_weak.arc arch/wall/cwall/cwall_weak.arc
*** ../../orig/crossfire-0.95.5-arch-patch1/wall/cwall/cwall_weak.arc Mon Mar 29 07:02:08 1999
--- arch/wall/cwall/cwall_weak.arc Wed Apr 12 23:33:13 2000
***************
*** 23,28 ****
--- 23,29 ----
no_pick 1
blocksview 1
alive 1
+ level 1
editable 768
visibility 100
magicmap grey
***************
*** 51,56 ****
--- 52,58 ----
no_pick 1
blocksview 1
alive 1
+ level 1
editable 768
visibility 100
magicmap grey
diff -rc ../../orig/crossfire-0.95.5-arch-patch1/wall/firewall/firewall.arc arch/wall/firewall/firewall.arc
*** ../../orig/crossfire-0.95.5-arch-patch1/wall/firewall/firewall.arc Mon Mar 29 07:02:41 1999
--- arch/wall/firewall/firewall.arc Wed Apr 12 23:34:35 2000
***************
*** 1,6 ****
--- 1,7 ----
Object firewall
other_arch firebullet_s
alive 1
+ level 1
type 62
face earthwall.111
color_fg grey
diff -rc ../../orig/crossfire-0.95.5-arch-patch1/wall/wwall/wwall_weak.arc arch/wall/wwall/wwall_weak.arc
*** ../../orig/crossfire-0.95.5-arch-patch1/wall/wwall/wwall_weak.arc Mon Mar 29 07:02:49 1999
--- arch/wall/wwall/wwall_weak.arc Wed Apr 12 23:34:58 2000
***************
*** 20,25 ****
--- 20,26 ----
no_pick 1
blocksview 1
alive 1
+ level 1
editable 768
visibility 100
end
***************
*** 45,50 ****
--- 46,52 ----
no_pick 1
blocksview 1
alive 1
+ level 1
editable 768
visibility 100
end
checkarch.pl