Crossfire Archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

CF: A bug (no patch)



Happened in /langley/goblin/dungeon2.

Program received signal SIGSEGV, Segmentation fault.
0x80d5bd6 in blocked_link (ob=0x8828a58, x=0, y=-1) at map.c:331
331       if(out_of_map(ob->map,x,y))
(gdb) print ob->name
$2 = 0x820b1ea "exhaustion"
(gdb) print ob->map
$3 = (mapstruct *) 0x0
(gdb) bt
#0  0x80d5bd6 in blocked_link (ob=0x8828a58, x=0, y=-1) at map.c:331
#1  0x807e780 in move_object (op=0x8828a58, dir=1) at monster.c:1181
#2  0x807b40a in move_monster (op=0x8828a58) at monster.c:351
#3  0x80b13df in process_object (op=0x8828a58) at time.c:762
#4  0x807942d in process_events (map=0x0) at main.c:675
#5  0x8079ba4 in main (argc=2, argv=0xbffff710) at main.c:892
#6  0x804a91b in _start ()
(gdb) print op->env->name
$28 = 0x81da812 "goblin"
(gdb)

There's this in process_object():

  if(QUERY_FLAG(op, FLAG_MONSTER))
    if(move_monster(op) || QUERY_FLAG(op, FLAG_FREED))
      return 1;

The move_monster() is executed on an "exhaustion" object. Why does
exhaustion have FLAG_MONSTER set?!?
[to unsubscribe etc., send mail to crossfire-request@ifi.uio.no]