ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/deliantra/server/server/monster.C
(Generate patch)

Comparing deliantra/server/server/monster.C (file contents):
Revision 1.53 by root, Sat Dec 27 03:18:08 2008 UTC vs.
Revision 1.56 by root, Sat Dec 27 08:41:44 2008 UTC

507 } /* If not scared */ 507 } /* If not scared */
508 508
509 part = rv.part; 509 part = rv.part;
510 dir = rv.direction; 510 dir = rv.direction;
511 511
512#if DEVEL
513 // if the enemy is a player, we have los. if los says we
514 // can directly reach the player, we do not deviate.
515 // for non-players, we never deviate
516 if (enemy->contr && enemy->contr->darkness_at (op->map, op->x, op->y) == LOS_BLOCKED)
517 {
518 int sdir = 0;
519
520 for (int dir = 1; dir <= 8; ++dir)
521 {
522 mapxy pos (op); pos.move (dir);
523 if (pos.normalise ())
524 {
525 mapspace &ms = pos.ms ();
526
527 if (ms.smell > op->ms ().smell)
528 {
529 printf ("%s: found smell, following it, apparently (%d, %d)\n",& op->name,op->ms().smell,ms.smell);//D
530 op->ms ().smell = ms.smell - 1;
531 sdir = dir;
532
533 // perturbing the path might let the monster lose track,
534 // but it will also wide the actual path, spreading information
535 if (!rndm (20))
536 sdir += absdir (1 - rndm (2) * 2);
537 }
538 }
539 }
540
541 if (sdir)
542 dir = sdir;
543 else
544 // no better smell found, so assume the player jumped, and erase this smell
545 {if (op->ms ().smell) printf ("erasing smell %d\n", op->ms ().smell);//D
546 ordered_mapwalk_begin (op, -1, -1, 1, 1)
547 if (m)
548 m->at (nx, ny).smell = 0;
549 ordered_mapwalk_end
550 }//D
551 }
552
553#endif
554
512 if (QUERY_FLAG (op, FLAG_SCARED) || QUERY_FLAG (op, FLAG_RUN_AWAY)) 555 if (QUERY_FLAG (op, FLAG_SCARED) || QUERY_FLAG (op, FLAG_RUN_AWAY))
513 dir = absdir (dir + 4); 556 dir = absdir (dir + 4);
514 557
515 if (QUERY_FLAG (op, FLAG_CONFUSED)) 558 if (QUERY_FLAG (op, FLAG_CONFUSED))
516 dir = absdir (dir + rndm (3) + rndm (3) - 2); 559 dir = absdir (dir + rndm (3) + rndm (3) - 2);

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines