X-Git-Url: https://git.cameronkatri.com/bsdgames-darwin.git/blobdiff_plain/2c254e61cff0bb1c6c7401a41a929d6222944509..05791857e3884b78131a85f78c91c32af0fb5f25:/monop/trade.c diff --git a/monop/trade.c b/monop/trade.c index 1d210a43..63d2e8a9 100644 --- a/monop/trade.c +++ b/monop/trade.c @@ -1,4 +1,4 @@ -/* $NetBSD: trade.c,v 1.12 2008/02/19 10:48:47 dholland Exp $ */ +/* $NetBSD: trade.c,v 1.16 2012/06/19 05:35:32 dholland Exp $ */ /* * Copyright (c) 1980, 1993 @@ -34,11 +34,11 @@ #if 0 static char sccsid[] = "@(#)trade.c 8.1 (Berkeley) 5/31/93"; #else -__RCSID("$NetBSD: trade.c,v 1.12 2008/02/19 10:48:47 dholland Exp $"); +__RCSID("$NetBSD: trade.c,v 1.16 2012/06/19 05:35:32 dholland Exp $"); #endif #endif /* not lint */ -#include "monop.ext" +#include "monop.h" struct trd_st { /* how much to give to other player */ int trader; /* trader number */ @@ -62,7 +62,7 @@ static void do_trade(void); static void move_em(TRADE *, TRADE *); void -trade() +trade(void) { int tradee, i; @@ -102,8 +102,7 @@ over: * player, and puts in the structure given. */ static void -get_list(struct_no, play_no) - int struct_no, play_no; +get_list(int struct_no, int play_no) { int sn, pn; PLAY *pp; @@ -155,8 +154,7 @@ once_more: * This routine sets up the list of tradable property. */ static int -set_list(the_list) - OWN *the_list; +set_list(OWN *the_list) { int i; OWN *op; @@ -174,7 +172,7 @@ set_list(the_list) * This routine summates the trade. */ static void -summate() +summate(void) { bool some; int i; @@ -205,7 +203,7 @@ summate() * This routine actually executes the trade. */ static void -do_trade() +do_trade(void) { move_em(&trades[0], &trades[1]); move_em(&trades[1], &trades[0]); @@ -215,8 +213,7 @@ do_trade() * This routine does a switch from one player to another */ static void -move_em(from, to) - TRADE *from, *to; +move_em(TRADE *from, TRADE *to) { PLAY *pl_fr, *pl_to; OWN *op; @@ -240,7 +237,7 @@ move_em(from, to) * This routine lets a player resign */ void -resign() +resign(void) { int i, new_own; OWN *op; @@ -252,6 +249,9 @@ resign() case RR: case PRPTY: new_own = board[cur_p->loc].owner; + /* If you ran out of money by buying current location */ + if (new_own == player) + new_own = num_play; break; default: /* Chance, taxes, etc */ new_own = num_play; @@ -307,16 +307,17 @@ resign() if (cur_p->num_gojf) ret_card(cur_p); } + free(play[player].name); for (i = player; i < num_play; i++) { name_list[i] = name_list[i+1]; if (i + 1 < num_play) play[i] = play[i+1]; } - name_list[num_play--] = 0; + name_list[num_play--] = NULL; for (i = 0; i < N_SQRS; i++) if (board[i].owner > player) --board[i].owner; - player = --player < 0 ? num_play - 1 : player; + player = player == 0 ? num_play - 1 : player - 1; next_play(); if (num_play < 2) { printf("\nThen %s WINS!!!!!\n", play[0].name);