Mercurial > hg > early-roguelike
annotate urogue/chase.c @ 317:aab761616489 default tip
Rearrange some Autoconf files.
Autoconf was failing to detect install-sh at the top level and needed
some explicit directions.  It also wants config.guess and config.sub to
be provided too.
A few other macros have also been updated.
| author | John "Elwin" Edwards | 
|---|---|
| date | Tue, 05 Sep 2023 20:05:24 -0400 | 
| parents | 0250220d8cdd | 
| children | 
| rev | line source | 
|---|---|
| 256 
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
 John "Elwin" Edwards parents: diff
changeset | 1 /* | 
| 
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
 John "Elwin" Edwards parents: diff
changeset | 2 chase.c - Code for one creature to chase another | 
| 
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
 John "Elwin" Edwards parents: diff
changeset | 3 | 
| 
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
 John "Elwin" Edwards parents: diff
changeset | 4 UltraRogue: The Ultimate Adventure in the Dungeons of Doom | 
| 
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
 John "Elwin" Edwards parents: diff
changeset | 5 Copyright (C) 1985, 1986, 1992, 1993, 1995 Herb Chong | 
| 
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
 John "Elwin" Edwards parents: diff
changeset | 6 All rights reserved. | 
| 
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
 John "Elwin" Edwards parents: diff
changeset | 7 | 
| 
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
 John "Elwin" Edwards parents: diff
changeset | 8 Based on "Advanced Rogue" | 
| 
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
 John "Elwin" Edwards parents: diff
changeset | 9 Copyright (C) 1984, 1985 Michael Morgan, Ken Dalka | 
| 
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
 John "Elwin" Edwards parents: diff
changeset | 10 All rights reserved. | 
| 
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
 John "Elwin" Edwards parents: diff
changeset | 11 | 
| 
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
 John "Elwin" Edwards parents: diff
changeset | 12 Based on "Rogue: Exploring the Dungeons of Doom" | 
| 
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
 John "Elwin" Edwards parents: diff
changeset | 13 Copyright (C) 1980, 1981 Michael Toy, Ken Arnold and Glenn Wichman | 
| 
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
 John "Elwin" Edwards parents: diff
changeset | 14 All rights reserved. | 
| 
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
 John "Elwin" Edwards parents: diff
changeset | 15 | 
| 
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
 John "Elwin" Edwards parents: diff
changeset | 16 See the file LICENSE.TXT for full copyright and licensing information. | 
| 
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
 John "Elwin" Edwards parents: diff
changeset | 17 */ | 
| 
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
 John "Elwin" Edwards parents: diff
changeset | 18 | 
| 
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
 John "Elwin" Edwards parents: diff
changeset | 19 #include <stdlib.h> | 
| 
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
 John "Elwin" Edwards parents: diff
changeset | 20 #include <ctype.h> | 
| 
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
 John "Elwin" Edwards parents: diff
changeset | 21 #include <limits.h> | 
| 
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
 John "Elwin" Edwards parents: diff
changeset | 22 #include "rogue.h" | 
| 
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
 John "Elwin" Edwards parents: diff
changeset | 23 | 
| 
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
 John "Elwin" Edwards parents: diff
changeset | 24 /* | 
| 
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
 John "Elwin" Edwards parents: diff
changeset | 25 do_chase() | 
| 
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
 John "Elwin" Edwards parents: diff
changeset | 26 Make one thing chase another. | 
| 
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
 John "Elwin" Edwards parents: diff
changeset | 27 */ | 
| 
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
 John "Elwin" Edwards parents: diff
changeset | 28 | 
| 
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
 John "Elwin" Edwards parents: diff
changeset | 29 void | 
| 
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
 John "Elwin" Edwards parents: diff
changeset | 30 do_chase(struct thing *th, int flee) | 
| 
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
 John "Elwin" Edwards parents: diff
changeset | 31 { | 
| 
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
 John "Elwin" Edwards parents: diff
changeset | 32 struct room *rer; /* room of chaser */ | 
| 
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
 John "Elwin" Edwards parents: diff
changeset | 33 struct room *ree; /* room of chasee */ | 
| 
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
 John "Elwin" Edwards parents: diff
changeset | 34 struct room *old_room; /* old room of monster */ | 
| 
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
 John "Elwin" Edwards parents: diff
changeset | 35 struct room *new_room; /* new room of monster */ | 
| 
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
 John "Elwin" Edwards parents: diff
changeset | 36 | 
| 
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
 John "Elwin" Edwards parents: diff
changeset | 37 int i, mindist = INT_MAX, maxdist = INT_MIN, dist = INT_MIN; | 
| 
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
 John "Elwin" Edwards parents: diff
changeset | 38 | 
| 
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
 John "Elwin" Edwards parents: diff
changeset | 39 int last_door = -1; /* Door we just came from */ | 
| 
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
 John "Elwin" Edwards parents: diff
changeset | 40 int stoprun = FALSE; /* TRUE means we are there */ | 
| 
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
 John "Elwin" Edwards parents: diff
changeset | 41 int rundoor; /* TRUE means run to a door */ | 
| 
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
 John "Elwin" Edwards parents: diff
changeset | 42 int hit_bad = FALSE; /* TRUE means hit bad monster */ | 
| 
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
 John "Elwin" Edwards parents: diff
changeset | 43 int mon_attack; /* TRUE means find a monster to hit */ | 
| 
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
 John "Elwin" Edwards parents: diff
changeset | 44 | 
| 
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
 John "Elwin" Edwards parents: diff
changeset | 45 char sch; | 
| 
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
 John "Elwin" Edwards parents: diff
changeset | 46 struct linked_list *item; | 
| 
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
 John "Elwin" Edwards parents: diff
changeset | 47 coord this; /* Temporary destination for chaser */ | 
| 
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
 John "Elwin" Edwards parents: diff
changeset | 48 | 
| 
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
 John "Elwin" Edwards parents: diff
changeset | 49 if (!th->t_ischasing) | 
| 
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
 John "Elwin" Edwards parents: diff
changeset | 50 return; | 
| 
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
 John "Elwin" Edwards parents: diff
changeset | 51 | 
| 
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
 John "Elwin" Edwards parents: diff
changeset | 52 /* Make sure the monster can move */ | 
| 
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
 John "Elwin" Edwards parents: diff
changeset | 53 | 
| 
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
 John "Elwin" Edwards parents: diff
changeset | 54 if (th->t_no_move != 0) | 
| 
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
 John "Elwin" Edwards parents: diff
changeset | 55 { | 
| 
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
 John "Elwin" Edwards parents: diff
changeset | 56 th->t_no_move--; | 
| 
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
 John "Elwin" Edwards parents: diff
changeset | 57 return; | 
| 
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
 John "Elwin" Edwards parents: diff
changeset | 58 } | 
| 
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
 John "Elwin" Edwards parents: diff
changeset | 59 | 
| 
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
 John "Elwin" Edwards parents: diff
changeset | 60 /* | 
| 
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
 John "Elwin" Edwards parents: diff
changeset | 61 * Bad monsters check for a good monster to hit, friendly monsters | 
| 
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
 John "Elwin" Edwards parents: diff
changeset | 62 * check for a bad monster to hit. | 
| 
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
 John "Elwin" Edwards parents: diff
changeset | 63 */ | 
| 
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
 John "Elwin" Edwards parents: diff
changeset | 64 | 
| 
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
 John "Elwin" Edwards parents: diff
changeset | 65 mon_attack = FALSE; | 
| 
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
 John "Elwin" Edwards parents: diff
changeset | 66 | 
| 
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
 John "Elwin" Edwards parents: diff
changeset | 67 if (good_monster(*th)) | 
| 
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
 John "Elwin" Edwards parents: diff
changeset | 68 { | 
| 
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
 John "Elwin" Edwards parents: diff
changeset | 69 hit_bad = TRUE; | 
| 
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
 John "Elwin" Edwards parents: diff
changeset | 70 mon_attack = TRUE; | 
| 
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
 John "Elwin" Edwards parents: diff
changeset | 71 } | 
| 
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
 John "Elwin" Edwards parents: diff
changeset | 72 else if (on(*th, ISMEAN)) | 
| 
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
 John "Elwin" Edwards parents: diff
changeset | 73 { | 
| 
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
 John "Elwin" Edwards parents: diff
changeset | 74 hit_bad = FALSE; | 
| 
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
 John "Elwin" Edwards parents: diff
changeset | 75 mon_attack = TRUE; | 
| 
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
 John "Elwin" Edwards parents: diff
changeset | 76 } | 
| 
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
 John "Elwin" Edwards parents: diff
changeset | 77 | 
| 
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
 John "Elwin" Edwards parents: diff
changeset | 78 if (mon_attack) | 
| 
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
 John "Elwin" Edwards parents: diff
changeset | 79 { | 
| 
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
 John "Elwin" Edwards parents: diff
changeset | 80 struct linked_list *mon_to_hit; | 
| 
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
 John "Elwin" Edwards parents: diff
changeset | 81 | 
| 
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
 John "Elwin" Edwards parents: diff
changeset | 82 mon_to_hit = f_mons_a(th->t_pos.y, th->t_pos.x, hit_bad); | 
| 
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
 John "Elwin" Edwards parents: diff
changeset | 83 | 
| 
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
 John "Elwin" Edwards parents: diff
changeset | 84 if (mon_to_hit) | 
| 
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
 John "Elwin" Edwards parents: diff
changeset | 85 { | 
| 
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
 John "Elwin" Edwards parents: diff
changeset | 86 mon_mon_attack(th, mon_to_hit, pick_weap(th), NOTHROWN); | 
| 
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
 John "Elwin" Edwards parents: diff
changeset | 87 return; | 
| 
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
 John "Elwin" Edwards parents: diff
changeset | 88 } | 
| 
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
 John "Elwin" Edwards parents: diff
changeset | 89 } | 
| 
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
 John "Elwin" Edwards parents: diff
changeset | 90 | 
| 
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
 John "Elwin" Edwards parents: diff
changeset | 91 /* no nearby monster to hit */ | 
| 
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
 John "Elwin" Edwards parents: diff
changeset | 92 | 
| 
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
 John "Elwin" Edwards parents: diff
changeset | 93 rer = roomin(th->t_pos); /* Find room of chaser */ | 
| 
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
 John "Elwin" Edwards parents: diff
changeset | 
