/*
* Empire - A multi-player, client/server Internet based war game.
- * Copyright (C) 1986-2000, Dave Pare, Jeff Bailey, Thomas Ruschak,
+ * Copyright (C) 1986-2008, Dave Pare, Jeff Bailey, Thomas Ruschak,
* Ken Stevens, Steve McClure
*
* This program is free software; you can redistribute it and/or modify
*
* ---
*
- * See the "LEGAL", "LICENSE", "CREDITS" and "README" files for all the
- * related information and legal notices. It is expected that any future
- * projects/authors will amend these files as needed.
+ * See files README, COPYING and CREDITS in the root of the source
+ * tree for related information and legal notices. It is expected
+ * that future projects/authors will amend these files as needed.
*
* ---
*
*
*/
-#include "misc.h"
-#include "player.h"
-#include "var.h"
-#include "xy.h"
-#include "sect.h"
-#include "nsc.h"
-#include "nat.h"
-#include "treaty.h"
-#include "file.h"
+#include <config.h>
+
#include "commands.h"
+#include "treaty.h"
int
enli(void)
int milwant;
int totalmil;
long reserve;
- s_char *p;
+ char *p;
int quota;
- s_char prompt[128];
- s_char buf[1024];
+ char prompt[128];
+ char buf[1024];
if (!snxtsct(&nstr, player->argp[1]))
return RET_SYN;
continue;
if (sect.sct_oldown != player->cnum)
continue;
- civ = getvar(V_CIVIL, (s_char *)§, EF_SECTOR);
+ civ = sect.sct_item[I_CIVIL];
if (civ == 0)
continue;
if (sect.sct_loyal > 70) {
pr("%s is out of mobility!\n",
xyas(sect.sct_x, sect.sct_y, player->cnum));
}
- mil = getvar(V_MILIT, (s_char *)§, EF_SECTOR);
+ mil = sect.sct_item[I_MILIT];
newmil = civ * 0.5;
if (quota) {
if (newmil > milwant - mil)
continue;
if (newmil > reserve)
newmil = reserve;
- if (!putvar(V_MILIT, newmil + mil, (s_char *)§, EF_SECTOR)) {
- pr("No room for military in %s\n",
- xyas(sect.sct_x, sect.sct_y, player->cnum));
- continue;
- }
+ sect.sct_item[I_MILIT] = newmil + mil;
reserve -= newmil;
totalmil += newmil;
- putvar(V_CIVIL, civ - newmil, (s_char *)§, EF_SECTOR);
+ sect.sct_item[I_CIVIL] = civ - newmil;
pr("%3d enlisted in %s (%d)\n", newmil,
xyas(sect.sct_x, sect.sct_y, player->cnum), mil + newmil);
- if (sect.sct_mobil > 0) {
- sect.sct_mobil = (u_char)((float)sect.sct_mobil *
- (1.0 - (float)newmil / (float)civ));
- }
+ if (sect.sct_mobil > 0)
+ sect.sct_mobil *= 1.0 - (double)newmil / (double)civ;
putsect(§);
if (totalmil >= 10000) {
pr("Rioting in induction center interrupts enlistment\n");
}
}
pr("Total new enlistment : %d\n", totalmil);
- pr("Military reserves stand at %d\n", reserve);
+ pr("Military reserves stand at %ld\n", reserve);
if (totalmil) {
natp->nat_reserve -= totalmil;
putnat(natp);
}
- if ((player->btused += roundavg((float)totalmil * 0.02)) > 0)
+ if ((player->btused += roundavg(totalmil * 0.02)) > 0)
pr("Paperwork at recruiting stations ... %d\n", player->btused);
return RET_OK;
}