diff options
Diffstat (limited to 'games/battlestar/init.c')
-rw-r--r-- | games/battlestar/init.c | 130 |
1 files changed, 130 insertions, 0 deletions
diff --git a/games/battlestar/init.c b/games/battlestar/init.c new file mode 100644 index 0000000..0b67b538 --- /dev/null +++ b/games/battlestar/init.c @@ -0,0 +1,130 @@ +/* + * Copyright (c) 1983, 1993 + * The Regents of the University of California. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * This product includes software developed by the University of + * California, Berkeley and its contributors. + * 4. Neither the name of the University nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#ifndef lint +static char sccsid[] = "@(#)init.c 8.1 (Berkeley) 5/31/93"; +#endif /* not lint */ + +#include <sys/types.h> +#include "externs.h" +#include <pwd.h> + +initialize(startup) + char startup; +{ + register struct objs *p; + void die(); + + puts("Version 4.2, fall 1984."); + puts("First Adventure game written by His Lordship, the honorable"); + puts("Admiral D.W. Riggle\n"); + srand(getpid()); + getutmp(uname); + wiz = wizard(uname); + wordinit(); + if (startup) { + location = dayfile; + direction = NORTH; + time = 0; + snooze = CYCLE * 1.5; + position = 22; + setbit(wear, PAJAMAS); + fuel = TANKFULL; + torps = TORPEDOES; + for (p = dayobjs; p->room != 0; p++) + setbit(location[p->room].objects, p->obj); + } else + restore(); + signal(SIGINT, die); +} + +getutmp(uname) + char *uname; +{ + struct passwd *ptr; + + ptr = getpwuid(getuid()); + strcpy(uname, ptr ? ptr->pw_name : ""); +} + +char *list[] = { /* hereditary wizards */ + "riggle", + "chris", + "edward", + "comay", + "yee", + "dmr", + "ken", + 0 +}; + +char *badguys[] = { + "wnj", + "root", + "ted", + 0 +}; + +wizard(uname) + char *uname; +{ + char flag; + + if (flag = checkout(uname)) + printf("You are the Great wizard %s.\n", uname); + return flag; +} + +checkout(uname) + register char *uname; +{ + register char **ptr; + + for (ptr = list; *ptr; ptr++) + if (strcmp(*ptr, uname) == 0) + return 1; + for (ptr = badguys; *ptr; ptr++) + if (strcmp(*ptr, uname) == 0) { + printf("You are the Poor anti-wizard %s. Good Luck!\n", + uname); + CUMBER = 3; + WEIGHT = 9; /* that'll get him! */ + clock = 10; + setbit(location[7].objects, WOODSMAN); /* viper room */ + setbit(location[20].objects, WOODSMAN); /* laser " */ + setbit(location[13].objects, DARK); /* amulet " */ + setbit(location[8].objects, ELF); /* closet */ + return 0; /* anything else, Chris? */ + } + return 0; +} |