/* This is obviously based on Hamlet's code. Skie doesn't know about giving credit. So I'll give my own damn self credit. */
inherit "/std/container";
#include "path.h"
object lg;
mixed food;
int opened=0;
int latched=1;
#define LIMIT 1
int foo = 0;
void init() {
add_action("do_open","open");
add_action("do_close","close");
add_action("get","get");
::init();
}
void reset() { foo = 0;}
void setup() {
set_name("oven");
set_short("Baking Oven");
set_long("An old oven used for making breads. ");
set_weight(100000);
set_value(0);
food = allocate(4);
}
int do_open(string str) {
object *contents;
int i;
contents = all_inventory(this_object());
if(str=="oven") {
if(!opened) {
write("You open the oven.\n");
if(foo<LIMIT) {
foo++;
for(i=0;i<sizeof(food);i++) {
object ob1, ob2, ob3;
ob1 = clone_object(ITEMS+"dbread1");
ob2 = clone_object(ITEMS+"dbread2");
ob3 = clone_object(ITEMS+"dbread3");
ob1->move(this_object()); ob2->move(this_object());
ob3->move(this_object());
}
}
opened=1;
say(this_player()->query_cap_name()+" opens the oven.\n");
return 1;
}else if((str=="oven")) {
write("The oven is already open!\n");
}else {
notify_fail("Open what?\n");
return 1;
}}
}
int do_close(string str) {
object *contents;
int i, lastob;
contents = all_inventory(this_object());
if((str=="oven")) {
if(opened) {
write("You close the door to the oven so as not to let out the heat.\n");
say(this_player()->query_cap_name()+" closes the oven.\n");
lastob = sizeof(contents);
for(i=0;i<lastob;i++) {
contents[i]->reset_get();
}
opened = 0;
return 1;
}else if(!opened) {
write("It's already closed!\n");
}else {
notify_fail("Close what?\n");
return 1;
}
}}
string long(string str, int dark) {
if((str=="oven")) {
if(opened) {
write("The insides of the oven glow a rosey red, and on the "
"center rack are various breads to eat.\n");
write("Dont forget to close the oven! Otherwise the oven "
"will cool and no more breads will be baked today.\n");
return ::long(str,dark);
}else {
return("An old cooking oven.\nThis old oven appears to have "
"been used for many years now. There is no telling how "
"many diffrent things have passed through it, or how many "
"people it has fed.\n");
}
}}
void get() {
if(!opened) {
notify_fail("You must open the oven before you can remove something from "
"the case.\n");
}}