diff rogue5/armor.c @ 33:f502bf60e6e4

Import Rogue 5.4 from the Roguelike Restoration Project (r1490)
author elwin
date Mon, 24 May 2010 20:10:59 +0000
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/rogue5/armor.c	Mon May 24 20:10:59 2010 +0000
@@ -0,0 +1,89 @@
+/*
+ * This file contains misc functions for dealing with armor
+ * @(#)armor.c	4.14 (Berkeley) 02/05/99
+ *
+ * Rogue: Exploring the Dungeons of Doom
+ * Copyright (C) 1980-1983, 1985, 1999 Michael Toy, Ken Arnold and Glenn Wichman
+ * All rights reserved.
+ *
+ * See the file LICENSE.TXT for full copyright and licensing information.
+ */
+
+#include <curses.h>
+#include "rogue.h"
+
+/*
+ * wear:
+ *	The player wants to wear something, so let him/her put it on.
+ */
+void
+wear(void)
+{
+    THING *obj;
+    char *sp;
+
+    if ((obj = get_item("wear", ARMOR)) == NULL)
+	return;
+    if (cur_armor != NULL)
+    {
+	addmsg("you are already wearing some");
+	if (!terse)
+	    addmsg(".  You'll have to take it off first");
+	endmsg();
+	after = FALSE;
+	return;
+    }
+    if (obj->o_type != ARMOR)
+    {
+	msg("you can't wear that");
+	return;
+    }
+    waste_time();
+    obj->o_flags |= ISKNOW;
+    sp = inv_name(obj, TRUE);
+    cur_armor = obj;
+    if (!terse)
+	addmsg("you are now ");
+    msg("wearing %s", sp);
+}
+
+/*
+ * take_off:
+ *	Get the armor off of the players back
+ */
+void
+take_off(void)
+{
+    THING *obj;
+
+    if ((obj = cur_armor) == NULL)
+    {
+	after = FALSE;
+	if (terse)
+		msg("not wearing armor");
+	else
+		msg("you aren't wearing any armor");
+	return;
+    }
+    if (!dropcheck(cur_armor))
+	return;
+    cur_armor = NULL;
+    if (terse)
+	addmsg("was");
+    else
+	addmsg("you used to be");
+    msg(" wearing %c) %s", obj->o_packch, inv_name(obj, TRUE));
+}
+
+/*
+ * waste_time:
+ *	Do nothing but let other things happen
+ */
+void
+waste_time(void)
+{
+    do_daemons(BEFORE);
+    do_fuses(BEFORE);
+    do_daemons(AFTER);
+    do_fuses(AFTER);
+}