Crossfire Mailing List Archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
CF: spell casting bug (minor patch)
- To: crossfire (at) ifi.uio.no
- Subject: CF: spell casting bug (minor patch)
- From: "Brian Thomas" <>
- Date: Sat, 14 Sep 96 09:44:50 EDT
- Sender: owner-crossfire
> Samuli Tursas writes:
>
> Player goes into an area, leaves it and goes in the area again, and after
> that spellcasting monsters start to bug. Cone spells have a range of 1
> square. If one area starts to bug, all areas do the same. This makes the game
> [snip]
Yes. This effect has existed in all versions since 0.92.2. I
have been trying to hunt it down, but have not had much success.
I agree that this is a severe bug.
Can you be more specific about how to make this bug appear? One
of my problems with fixing this is that I can't usually get it to
happen.
I did find one (minor) bug.. in SK_level. Basically, if a multi-square
monster cast a spell from a non "head" square, the wrong value of
the level would be inherited by the spell. I include a small,
minor patch for this. NOTE: I have seen 1 hex spells cast by single-
square creatures (ie beholder) so I DONT expect this is the root
cause of the bug.
Ill try to look into the teleporter bug. Can you recogmend a map
which crashes often?
-b.t.
*** skill_util.c Tue Sep 3 03:50:39 1996
--- sk Sat Sep 14 09:38:51 1996
***************
*** 1422,1432 ****
* it should be used anytime a function needs to check the user's
* level.
*/
int SK_level(object *op) {
! int level = op->level;
#ifdef ALLOW_SKILLS
if(op->type==PLAYER && op->chosen_skill && op->chosen_skill->level!=0) {
level = op->chosen_skill->level;
}
--- 1422,1432 ----
* it should be used anytime a function needs to check the user's
* 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;
}