1*c34afa68Sdholland /* $NetBSD: rent.c,v 1.9 2012/06/19 05:35:32 dholland Exp $ */
242fb1b9dScgd
361f28255Scgd /*
442fb1b9dScgd * Copyright (c) 1980, 1993
542fb1b9dScgd * The Regents of the University of California. All rights reserved.
661f28255Scgd *
761f28255Scgd * Redistribution and use in source and binary forms, with or without
861f28255Scgd * modification, are permitted provided that the following conditions
961f28255Scgd * are met:
1061f28255Scgd * 1. Redistributions of source code must retain the above copyright
1161f28255Scgd * notice, this list of conditions and the following disclaimer.
1261f28255Scgd * 2. Redistributions in binary form must reproduce the above copyright
1361f28255Scgd * notice, this list of conditions and the following disclaimer in the
1461f28255Scgd * documentation and/or other materials provided with the distribution.
15e5aeb4eaSagc * 3. Neither the name of the University nor the names of its contributors
1661f28255Scgd * may be used to endorse or promote products derived from this software
1761f28255Scgd * without specific prior written permission.
1861f28255Scgd *
1961f28255Scgd * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
2061f28255Scgd * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
2161f28255Scgd * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
2261f28255Scgd * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
2361f28255Scgd * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
2461f28255Scgd * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
2561f28255Scgd * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
2661f28255Scgd * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
2761f28255Scgd * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
2861f28255Scgd * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
2961f28255Scgd * SUCH DAMAGE.
3061f28255Scgd */
3161f28255Scgd
32b118ad22Schristos #include <sys/cdefs.h>
3361f28255Scgd #ifndef lint
3442fb1b9dScgd #if 0
3542fb1b9dScgd static char sccsid[] = "@(#)rent.c 8.1 (Berkeley) 5/31/93";
3642fb1b9dScgd #else
37*c34afa68Sdholland __RCSID("$NetBSD: rent.c,v 1.9 2012/06/19 05:35:32 dholland Exp $");
3842fb1b9dScgd #endif
3961f28255Scgd #endif /* not lint */
4061f28255Scgd
41b51259daSdholland #include "monop.h"
4261f28255Scgd
4361f28255Scgd /*
4461f28255Scgd * This routine has the player pay rent
4561f28255Scgd */
46b118ad22Schristos void
rent(SQUARE * sqp)47*c34afa68Sdholland rent(SQUARE *sqp)
48b118ad22Schristos {
49b118ad22Schristos int rnt = 0;
50b118ad22Schristos PROP *pp;
5161f28255Scgd PLAY *plp;
5261f28255Scgd
5361f28255Scgd plp = &play[sqp->owner];
5461f28255Scgd printf("Owned by %s\n", plp->name);
5561f28255Scgd if (sqp->desc->morg) {
5661f28255Scgd lucky("The thing is mortgaged. ");
5761f28255Scgd return;
5861f28255Scgd }
5961f28255Scgd switch (sqp->type) {
6061f28255Scgd case PRPTY:
6161f28255Scgd pp = sqp->desc;
6261f28255Scgd if (pp->monop)
6361f28255Scgd if (pp->houses == 0)
6461f28255Scgd printf("rent is %d\n", rnt=pp->rent[0] * 2);
6561f28255Scgd else if (pp->houses < 5)
66693812a8Sdholland printf("with %d house%s, rent is %d\n",
67693812a8Sdholland pp->houses, pp->houses == 1 ? "" : "s",
68693812a8Sdholland rnt=pp->rent[pp->houses]);
6961f28255Scgd else
7061f28255Scgd printf("with a hotel, rent is %d\n",
7161f28255Scgd rnt=pp->rent[pp->houses]);
7261f28255Scgd else
7361f28255Scgd printf("rent is %d\n", rnt = pp->rent[0]);
7461f28255Scgd break;
7561f28255Scgd case RR:
7661f28255Scgd rnt = 25;
7761f28255Scgd rnt <<= (plp->num_rr - 1);
7861f28255Scgd if (spec)
7961f28255Scgd rnt <<= 1;
8061f28255Scgd printf("rent is %d\n", rnt);
8161f28255Scgd break;
8261f28255Scgd case UTIL:
8361f28255Scgd rnt = roll(2, 6);
8461f28255Scgd if (plp->num_util == 2 || spec) {
8561f28255Scgd printf("rent is 10 * roll (%d) = %d\n", rnt, rnt * 10);
8661f28255Scgd rnt *= 10;
8761f28255Scgd }
8861f28255Scgd else {
8961f28255Scgd printf("rent is 4 * roll (%d) = %d\n", rnt, rnt * 4);
9061f28255Scgd rnt *= 4;
9161f28255Scgd }
9261f28255Scgd break;
9361f28255Scgd }
9461f28255Scgd cur_p->money -= rnt;
9561f28255Scgd plp->money += rnt;
9661f28255Scgd }
97