[CF-Devel] Bug report - The Divine Flower Bug
Peter Mardahl
peterm at tonks.EECS.Berkeley.EDU
Sun May 13 17:02:44 CDT 2001
Ouch. This is an important abuse.
Rather than apply your fix, how about disabling the stupid
flowers?
Many have complained about them.
PeterM
>
Version: Current CVS version (0.98.0)
>
>
Problem:
>
Suppose player A is a follower of Mostrai, and B a follower of Sorig. B
>
fails a priest casting and creates flowers all around. A takes some of these
>
flowers and magically behaves like a follower of Sorig (can pray on Sorig
>
altar but not on Mostrai's, gets Sorig's special stuff, etc) until dropping
>
flowers or exiting the game (The divine flowers will never be saved).
>
>
Source:
>
in gods.c, function determine_god: for players, the inventory is browsed
>
until a 'divine' object is encountered. That object is the praying skill 90%
>
of the time, but it may also be 'divine' flowers.
>
>
Proposed solution:
>
Adding a skill check in the loop; the code:
>
>
/* If we are player, lets search a bit harder for the god. This
>
* is a fix for perceive self (before, we just looked at the active
>
* skill.)
>
*/
>
if(op->type==PLAYER) {
>
object *tmp;
>
>
for (tmp=op->inv; tmp!=NULL; tmp=tmp->below) {
>
if (tmp->exp_obj && tmp->exp_obj->title)
>
return tmp->exp_obj->title;
>
}
>
}
>
>
will become:
>
>
/* If we are player, lets search a bit harder for the god. This
>
* is a fix for perceive self (before, we just looked at the active
>
* skill.)
>
*/
>
if(op->type==PLAYER) {
>
object *tmp;
>
>
for (tmp=op->inv; tmp!=NULL; tmp=tmp->below) {
>
if (tmp->type == SKILL)
>
{
>
if (tmp->exp_obj && tmp->exp_obj->title)
>
return tmp->exp_obj->title;
>
}
>
}
>
}
>
>
Note that the extra test should not slow the whole thing a lot, since for
>
all non-skill objects, we only do one test.
>
>
Commander Gros
>
Ad Dwarvam Aeternam !
>
_______________________________________________
>
crossfire-devel mailing list
>
crossfire-devel at lists.real-time.com
>
https://mailman.real-time.com/mailman/listinfo/crossfire-devel
More information about the crossfire
mailing list