X-Git-Url: http://git.pond.sub.org/?p=empserver;a=blobdiff_plain;f=include%2Floan.h;h=8db8f73b99911e7283fb4802bceed5095b3f16bd;hp=fe88f5a29aaba42cb68d7b5a70bcc6ed8bda68be;hb=HEAD;hpb=555de3100c8cc4517ea4967329d07916ce26b1f0 diff --git a/include/loan.h b/include/loan.h index fe88f5a29..8db8f73b9 100644 --- a/include/loan.h +++ b/include/loan.h @@ -1,11 +1,11 @@ /* * Empire - A multi-player, client/server Internet based war game. - * Copyright (C) 1986-2005, Dave Pare, Jeff Bailey, Thomas Ruschak, - * Ken Stevens, Steve McClure + * Copyright (C) 1986-2021, 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, @@ -14,56 +14,58 @@ * 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 . * * --- * - * 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. * * --- * * loan.h: Definitions for loans - * + * * Known contributors to this file: - * + * */ -#ifndef _LOAN_H_ -#define _LOAN_H_ +#ifndef LOAN_H +#define LOAN_H + +#include "file.h" +#include "types.h" -#define MAXLOAN 100000 +#define MAXLOAN 100000 #define SECS_PER_DAY (60*60*24) struct lonstr { - short ef_type; + /* initial part must match struct empobj */ + signed ef_type: 8; + unsigned l_seqno: 12; + unsigned l_generation: 12; + int l_uid; + time_t l_timestamp; + /* end of part matching struct empobj */ natid l_loner; /* loan shark */ - short l_uid; natid l_lonee; /* sucker */ - s_char l_status; /* loan status */ - short l_sell; /* pointer to trade file (unused) */ + signed char l_status; /* loan status */ int l_irate; /* interest rate */ int l_ldur; /* intended duration */ - long l_amtpaid; /* amount paid so far */ - long l_amtdue; /* amount still owed */ + int l_amtpaid; /* amount paid so far */ + int l_amtdue; /* amount still owed */ time_t l_lastpay; /* date of most recent payment */ time_t l_duedate; /* date after which interest doubles, etc */ }; -#define LS_FREE AGREE_FREE -#define LS_PROPOSED AGREE_PROPOSED -#define LS_SIGNED AGREE_SIGNED +#define LS_FREE 0 +#define LS_PROPOSED 1 +#define LS_SIGNED 2 -extern long get_outstand(int); extern double loan_owed(struct lonstr *loan, time_t paytime); -#define getloan(n, lp) \ - ef_read(EF_LOAN, n, lp) -#define putloan(n, lp) \ - ef_write(EF_LOAN, n, lp) -#define getloanp(n) \ - (struct lonstr *) ef_ptr(EF_LOAN, n) +#define getloan(n, p) ef_read(EF_LOAN, (n), (p)) +#define putloan(n, p) ef_write(EF_LOAN, (n), (p)) +#define getloanp(n) ((struct lonstr *)ef_ptr(EF_LOAN, (n))) -#endif /* _LOAN_H_ */ +#endif