home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 October / usenetsourcesnewsgroupsinfomagicoctober1994disk2.iso / games / volume13 / dominion / part27 / army.h next >
Text File  |  1992-02-11  |  4KB  |  86 lines

  1.   /* army.h -- constants for armies, caravans, ships....
  2.                there are also some macros declared below
  3.    */
  4.  
  5. /*
  6.  * Copyright (C) 1990 Free Software Foundation, Inc.
  7.  * Written by the dominion project.
  8.  *
  9.  * This file is part of dominion.
  10.  *
  11.  * dominion is free software; you can redistribute it and/or
  12.  * modify it under the terms of the GNU General Public License as published
  13.  * by the Free Software Foundation; either version 1, or (at your option)
  14.  * any later version.
  15.  *
  16.  * This software is distributed in the hope that it will be useful,
  17.  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  18.  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  19.  * GNU General Public License for more details.
  20.  *
  21.  * You should have received a copy of the GNU General Public License
  22.  * along with this software; see the file COPYING.  If not, write to
  23.  * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
  24.  */
  25.  
  26.   /* army statuses */
  27. #define A_DEFEND 1        /* army status: defend */
  28. #define A_ATTACK 2        /*              attack */
  29. #define A_OCCUPY 3        /*              occupy current sector */
  30. #define A_PATROL 4        /*              patrol surrounding sectors */
  31. #define A_INTERCEPT 5        /*              intercept nearby armies */
  32. #define A_GARRISON 6        /*              man city/town/fort/sctr def. */
  33. #define A_AMBUSH 7        /*              perform ambushes from towns */
  34. #define A_TRADED 8        /*              this army will be traded */
  35.  
  36.   /* fraction of the dead that vampire units raise from the dead */
  37. #define VAMPIRE_FRACT 0.33    /* 1/3 of the dead rise */
  38. #define SACRIFICED_FRACT 125    /* 1 pt. per 125 people */
  39.  
  40.   /* bit definitions for Sarmy.flags */
  41. #define AF_FLIGHT  0x01        /* army is flying!! (1) */
  42. #define AF_HIDDEN  0x02        /* army is magically cloaked (2) */
  43. #define AF_VAMPIRE 0x04        /* army is sucking blood (4) */
  44. #define AF_IN_TRANSPORT 0x08    /* army is on a caravan/ship (8) */
  45. #define AF_MISSILES 0x10    /* army shoots arrows and such */
  46. #define AF_WATER 0x20        /* army is walking on water (32) */
  47. #define AF_FRONT_LINE 0x40    /* front line type of army (64) */
  48. #define AF_KAMIKAZE 0x80    /* will die after fighting (128) */
  49. #define AF_MACHINE 0x100    /* war carts, catapults, siege eng. (256) */
  50. #define AF_DISGUISED 0x200    /* army is disguised (512) */
  51. #define AF_WIZARD 0x400        /* can summon and cast spells (1024) */
  52. #define AF_SORCERER 0x800    /* can use sorcery (2048) */
  53. #define AF_CARGO 0x1000        /* can hold a cargo (4096) */
  54. #define AF_UNDERGROUND 0x2000    /* can burrow under ground (8192) */
  55. #define AF_LAND 0x4000        /* army walks on land (16384) */
  56.   /* this next one is kind of special, and requires some special
  57.      handling.  this flag means that (at draft/summon/reset time)
  58.      the army will be given the WATER flag if it is a land race,
  59.      and the LAND flag if it is a water race.  The special-purpose
  60.      code for this flag should be in make_army() and reset_armies().
  61.    */
  62. #define AF_INVERSE_ALT 0x8000    /* opposite of race pref (32768) */
  63.  
  64.   /* a couple of useful macros */
  65. #define is_hidden(ap) (ap->flags & AF_HIDDEN)
  66. #define is_vampire(ap) (ap->flags & AF_VAMPIRE)
  67. #define is_flight(ap) (ap->flags & AF_FLIGHT)
  68. #define is_in_transport(ap) (ap->flags & AF_IN_TRANSPORT)
  69. #define is_missiles(ap) (ap->flags & AF_MISSILES)
  70. #define is_water(ap) (ap->flags & AF_WATER)
  71. #define is_front_line(ap) (ap->flags & AF_FRONT_LINE)
  72. #define is_kamikaze(ap) (ap->flags & AF_KAMIKAZE)
  73. #define is_machine(ap) (ap->flags & AF_MACHINE)
  74. #define is_disguised(ap) (ap->flags & AF_DISGUISED)
  75. #define is_wizard(ap) (ap->flags & AF_WIZARD)
  76. #define is_sorcerer(ap) (ap->flags & AF_SORCERER)
  77. #define is_cargo(ap) (ap->flags & AF_CARGO)
  78. #define is_underground(ap) (ap->flags & AF_UNDERGROUND)
  79. #define is_land(ap) (ap->flags & AF_LAND)
  80.  
  81. #define INITIATION_JEWELS 5000    /* cost to initiate a mage (jewels) */
  82. #define MAGE_JEWELS_MAINT 1000  /* cost to maintain a mage (jewels) */
  83. #define MAGE_MOVE_FACTOR 2    /* mages move 2*basic_rate */
  84. #define SORCERER_MOVE_FACTOR 1  /* sorcerers move at basic rate */
  85. #define MEN_PER_MACHINE 10
  86.