(buy, check_market, trad, check_trade): Remove the following virtually

undocumented feature: When a buyer didn't have enough money at the
time of the trade, the seller *automatically* granted a high-interest,
medium term loan for up to 90% of the price.  This is just a silly
trap for unwary sellers and buyers alike.
(N_FIN_TROUBLE, N_CREDIT_JUNK): Unused, remove.
(rpt): Update accordingly.
This commit is contained in:
Markus Armbruster 2005-10-30 14:33:44 +00:00
parent b2ae3257ca
commit ada0ed8e61
7 changed files with 5 additions and 151 deletions

View file

@ -105,10 +105,6 @@ buy(void)
pr("You can't bid on your own lot.\n");
return RET_OK;
}
pr("WARNING! This market issues credit. If you make more\n");
pr(" bids than your treasury can cover at the time of sale,\n");
pr(" you can potentially go into financial ruin, and see no\n");
pr(" gains. You have been warned.\n\n");
if ((p = getstarg(player->argp[3], "How much per unit: ", buf)) == 0)
return RET_SYN;
bid = atof(p);
@ -219,11 +215,6 @@ check_market(void)
double monleft;
double gain;
double price;
struct lonstr loan;
long outstanding; /* Outstanding debt */
long couval; /* Value of country's goods */
int foundloan;
int j;
/* logerror("Checking the market.\n");*/
for (n = 0; getcomm(n, &comm); n++) {
@ -261,63 +252,6 @@ check_market(void)
/* Subtract the amount of money that needs to come out in a loan. */
subleft = monleft;
if (opt_LOANS) {
/* Try to make a loan for the rest from the owner. */
if (monleft > 0 && tmoney > 0) {
if ((float)((float)price / (float)(price + monleft)) < 0.1) {
wu(0, comm.com_maxbidder,
"You need at least 10 percent down to purchase something on credit.\n");
} else {
couval = get_couval(comm.com_maxbidder);
outstanding = get_outstand(comm.com_maxbidder);
couval = couval - outstanding;
if (couval > monleft) {
/* Make the loan */
foundloan = 0;
for (j = 0; getloan(j, &loan); j++) {
if (loan.l_status != LS_FREE)
continue;
foundloan = 1;
break;
}
if (!foundloan)
ef_extend(EF_LOAN, 1);
loan.l_status = LS_SIGNED;
loan.l_loner = comm.com_owner;
loan.l_lonee = comm.com_maxbidder;
loan.l_irate = 25;
loan.l_ldur = 4;
loan.l_amtpaid = 0;
loan.l_amtdue = monleft;
time(&loan.l_lastpay);
loan.l_duedate =
(loan.l_ldur * SECS_PER_DAY) + loan.l_lastpay;
loan.l_uid = j;
if (!putloan(j, &loan))
logerror("Error writing to the loan file.\n");
else
monleft = 0;
nreport(comm.com_maxbidder, N_FIN_TROUBLE,
comm.com_owner, 1);
wu(0, comm.com_maxbidder,
"You just took loan #%d for $%ld to cover the cost of your purchase.\n",
j, loan.l_amtdue);
wu(0, comm.com_owner,
"You just extended loan #%d to %s to help with the purchase cose.\n",
j, cname(comm.com_maxbidder));
} else {
nreport(comm.com_maxbidder, N_CREDIT_JUNK,
comm.com_owner, 1);
wu(0, comm.com_maxbidder,
"You don't have enough credit to get a loan.\n");
wu(0, comm.com_owner,
"You just turned down a loan to %s.\n",
cname(comm.com_maxbidder));
}
}
}
}
if (monleft > 0) {
nreport(comm.com_maxbidder, N_WELCH_DEAL, comm.com_owner, 1);
wu(0, comm.com_maxbidder,

View file

@ -257,11 +257,6 @@ trad(void)
}
}
pr("WARNING! This market issues credit. If you make more\n");
pr(" bids than your treasury can cover at the time of sale,\n");
pr(" you can potentially go into financial ruin, and see no\n");
pr(" gains. You have been warned.\n\n");
if ((p = getstring("How much do you bid: ", buf)) == 0 || *p == 0)
return RET_OK;
if (!trade_check_ok(&trade, &tg))
@ -298,7 +293,6 @@ int
check_trade(void)
{
int n;
int j;
struct nstr_item ni;
struct plnstr plane;
struct lndstr land;
@ -311,10 +305,6 @@ check_trade(void)
double tleft;
float price;
int saveid;
struct lonstr loan;
long outstanding; /* Outstanding debt */
long couval; /* Value of country's goods */
int foundloan;
/* logerror("Checking the trades.\n");*/
for (n = 0; gettrade(n, &trade); n++) {
@ -368,62 +358,6 @@ check_trade(void)
subleft = monleft;
if (opt_LOANS) {
/* Try to make a loan for the rest from the owner. */
if (monleft > 0 && natp->nat_money > 0) {
if ((float)((float)price / (float)(price + monleft)) < 0.1) {
wu(0, trade.trd_maxbidder,
"You need at least 10 percent down to purchase something on credit.\n");
} else {
couval = get_couval(trade.trd_maxbidder);
outstanding = get_outstand(trade.trd_maxbidder);
couval = couval - outstanding;
if (couval > monleft) {
/* Make the loan */
foundloan = 0;
for (j = 0; getloan(j, &loan); j++) {
if (loan.l_status != LS_FREE)
continue;
foundloan = 1;
break;
}
if (!foundloan)
ef_extend(EF_LOAN, 1);
loan.l_status = LS_SIGNED;
loan.l_loner = trade.trd_owner;
loan.l_lonee = trade.trd_maxbidder;
loan.l_irate = 25;
loan.l_ldur = 4;
loan.l_amtpaid = 0;
loan.l_amtdue = monleft;
time(&loan.l_lastpay);
loan.l_duedate =
(loan.l_ldur * SECS_PER_DAY) + loan.l_lastpay;
loan.l_uid = j;
if (!putloan(j, &loan))
logerror("Error writing to the loan file.\n");
else
monleft = 0;
nreport(trade.trd_maxbidder, N_FIN_TROUBLE,
trade.trd_owner, 1);
wu(0, trade.trd_maxbidder,
"You just took loan #%d for $%.2f to cover the cost of your purchase.\n",
j, (float)loan.l_amtdue);
wu(0, trade.trd_owner,
"You just extended loan #%d to %s to help with the purchase cost.\n",
j, cname(trade.trd_maxbidder));
} else {
nreport(trade.trd_maxbidder, N_CREDIT_JUNK,
trade.trd_owner, 1);
wu(0, trade.trd_maxbidder,
"You don't have enough credit to get a loan.\n");
wu(0, trade.trd_owner,
"You just turned down a loan to %s.\n",
cname(trade.trd_maxbidder));
}
}
}
}
if (monleft > 0) {
nreport(trade.trd_maxbidder, N_WELCH_DEAL, trade.trd_owner, 1);
wu(0, trade.trd_owner,

View file

@ -210,10 +210,8 @@ struct rptstr rpt[] = {
/* 76*/ "naval forces massacred in failed assault of %s" } },
{-4, N_FRONT, { "paratroopers destroyed in failed air-assault on %s",
/* 77*/ "loses parachutists in failed air-assault of %s" } },
{ 0, N_ECON, { "is forced into debt to %s by bad management",
/* 78*/ "shows bad financial planning" } },
{ 0, N_ECON, { "has its credit rating downgraded to unworthy status",
/* 79*/ "is denied credit by %s due to lack of collatoral" } },
/* 78*/ { 0, 0, { no_news, no_news } },
/* 79*/ { 0, 0, { no_news, no_news } },
{ 0, N_ECON, { "is unable to fulfill its financial obligations to %s",
/* 80*/ "welches on a deal with %s" } },
{ -3, N_FRONT, { "is repelled by %s while attempting to board a land unit",