00001 /* 00002 * Empire - A multi-player, client/server Internet based war game. 00003 * Copyright (C) 1986-2007, Dave Pare, Jeff Bailey, Thomas Ruschak, 00004 * Ken Stevens, Steve McClure 00005 * 00006 * This program is free software; you can redistribute it and/or modify 00007 * it under the terms of the GNU General Public License as published by 00008 * the Free Software Foundation; either version 2 of the License, or 00009 * (at your option) any later version. 00010 * 00011 * This program is distributed in the hope that it will be useful, 00012 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00013 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00014 * GNU General Public License for more details. 00015 * 00016 * You should have received a copy of the GNU General Public License 00017 * along with this program; if not, write to the Free Software 00018 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 00019 * 00020 * --- 00021 * 00022 * See files README, COPYING and CREDITS in the root of the source 00023 * tree for related information and legal notices. It is expected 00024 * that future projects/authors will amend these files as needed. 00025 * 00026 * --- 00027 * 00028 * bsanct.c: Break Sanctuary subroutines 00029 * 00030 * Known contributors to this file: 00031 * 00032 */ 00033 00034 #include <config.h> 00035 00036 #include "file.h" 00037 #include "game.h" 00038 #include "news.h" 00039 #include "player.h" 00040 #include "prototypes.h" 00041 #include "sect.h" 00042 00043 void 00044 bsanct(void) 00045 { 00046 int count; 00047 struct sctstr s; 00048 struct nstr_sect nstr; 00049 00050 if (player->god) 00051 return; 00052 count = 0; 00053 snxtsct_all(&nstr); 00054 while (nxtsct(&nstr, &s)) { 00055 if (!player->owner) 00056 continue; 00057 if (s.sct_type != SCT_SANCT) 00058 continue; 00059 pr("%s is no longer a sanctuary.\n", 00060 xyas(s.sct_x, s.sct_y, player->cnum)); 00061 if (s.sct_effic == 100) { 00062 s.sct_type = SCT_CAPIT; 00063 s.sct_newtype = SCT_CAPIT; 00064 } else { 00065 s.sct_type = SCT_HIWAY; 00066 s.sct_newtype = SCT_HIWAY; 00067 } 00068 game_tick_to_now(&s.sct_access); 00069 (void)putsect(&s); 00070 count++; 00071 } 00072 if (count > 0) 00073 nreport(player->cnum, N_BROKE_SANCT, 0, 1); 00074 }
1.5.2