/*
* Empire - A multi-player, client/server Internet based war game.
- * Copyright (C) 1986-2008, Dave Pare, Jeff Bailey, Thomas Ruschak,
- * Ken Stevens, Steve McClure
+ * Copyright (C) 1986-2016, Dave Pare, Jeff Bailey, Thomas Ruschak,
+ * Ken Stevens, Steve McClure, Markus Armbruster
*
- * This program is free software; you can redistribute it and/or modify
+ * Empire is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
+ * the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
*
* ---
*
* Known contributors to this file:
* Dave Pare, 1986
* Steve McClure, 1996
- * Markus Armbruster, 2004-2008
+ * Markus Armbruster, 2004-2012
*/
#include <config.h>
#include <math.h>
-#include "budg.h"
+#include "chance.h"
#include "item.h"
#include "news.h"
#include "player.h"
/* Conjure up 1f to make life easier for the player */
manna = vec[I_FOOD] = 1;
}
- if (vec[I_FOOD] < needed && sp->sct_own == sp->sct_oldown) {
- /* steal food from warehouses, headquarters,
- supply ships in port, or supply units */
- vec[I_FOOD] = supply_commod(sp->sct_own,
- sp->sct_x, sp->sct_y,
- I_FOOD, needed);
- }
}
starved = feed_people(vec, etu);
if (starved > 0) {
nreport(sp->sct_own, N_DIE_FAMINE, 0, 1);
}
sp->sct_work = 0;
- sp->sct_loyal += (random() % 8) + 2;
+ sp->sct_loyal += roll(8) + 1;
}
sctwork = 0;
} else {
if (sp->sct_work < 100)
- sctwork = sp->sct_work + 8 + (random() % 15);
+ sctwork = sp->sct_work + 7 + roll(15);
if (sctwork > 100)
sctwork = 100;
if (!player->simulation)
sp->sct_work = sctwork;
grow_people(sp, etu, np, &work_avail, sctwork, vec);
+ /* age che */
+ if (!player->simulation)
+ sp->sct_che = age_people(sp->sct_che, etu);
}
if (manna)
/* Take away food we conjured up */
}
/*
- * Return food eaten by people in VEC[] in ETU ETUs.
+ * Return food eaten by people in @vec[] in @etu ETUs.
*/
double
food_needed(short *vec, int etu)
}
/*
- * Return number of famine victims in VEC[] for ETU ETUs.
+ * Return number of famine victims in @vec[] for @etu ETUs.
*/
int
famine_victims(short *vec, int etu)
}
/*
- * Starve up to NUM people of VEC[WHOM].
+ * Starve up to @num people of @vec[@whom].
* Return the number of actually starved.
*/
static int
* Truncate any extra people that may be around
*/
static void
-trunc_people(struct sctstr *sp, struct natstr *np,
- short *vec)
+trunc_people(struct sctstr *sp, struct natstr *np, short *vec)
{
int maxpop = max_pop(np->nat_level[NAT_RLEV], sp);
}
/*
- * Return the number of babies born to ADULTS in ETU ETUs.
- * BRATE is the birth rate.
- * FOOD is the food available for growing babies.
- * MAXPOP is the population limit.
+ * Return the number of babies born to @adults in @etu ETUs.
+ * @brate is the birth rate.
+ * @food is the food available for growing babies.
+ * @maxpop is the population limit.
*/
static int
babies(int adults, int etu, double brate, int food, int maxpop)