#define EXTRA_INIT #define EXTRA_RESET #define EXTRA_LONG #define EXTRA_MOVE1 #define EXTRA_MOVE2 #define EXTRA_MOVE3 #define EXTRA_MOVE4 #define EXTRA_MOVE5 #define EXTRA_MOVE6 #define EXTRA_MOVE7 #define EXTRA_MOVE8 #define ONE_EXIT(DEST, DIR, SH, LO, LIGHT)\ reset(arg) { EXTRA_RESET if (arg) return; set_light(LIGHT); }\ short() {\ if (set_light(0))\ return SH;\ return "It is too dark to see here";\ }\ \ init() {\ add_action("move"); add_verb(DIR);\ EXTRA_INIT\ }\ \ move() {\ EXTRA_MOVE1\ call_other(this_player(), "move_player", DIR + "#" +DEST);\ return 1;\ }\ \ long(str) {\ if (set_light(0) == 0){\ write("It really is dark you know.\n");\ return;\ }\ EXTRA_LONG\ write(LO);\ write(" The only obvious exit is " + DIR + ".\n");\ } #define TWO_EXIT(DEST1, DIR1, DEST2, DIR2, SH, LO, LIGHT)\ reset(arg) { EXTRA_RESET if (arg) return; set_light(LIGHT); }\ short() {\ if (set_light(0))\ return SH;\ return "It is too dark to see here";\ }\ \ init() {\ add_action("move1"); add_verb(DIR1);\ add_action("move2"); add_verb(DIR2);\ EXTRA_INIT\ }\ \ move1() {\ EXTRA_MOVE1\ call_other(this_player(), "move_player", DIR1 + "#" + DEST1);\ return 1;\ }\ \ move2() {\ EXTRA_MOVE2\ call_other(this_player(), "move_player", DIR2 + "#" + DEST2);\ return 1;\ }\ \ long(str) {\ if (set_light(0) == 0){\ write("It really is dark you know.\n");\ return;\ }\ EXTRA_LONG\ write(LO);\ write("There are two obvious exits:\n " + DIR1 + " and " + DIR2 + ".\n");\ } #define THREE_EXIT(DEST1, DIR1, DEST2, DIR2, DEST3, DIR3, SH, LO, LIGHT)\ reset(arg) { EXTRA_RESET if (arg) return; set_light(LIGHT); }\ short() {\ if (set_light(0))\ return SH;\ return "It is too dark to see here";\ }\ \ init() {\ add_action("move1"); add_verb(DIR1);\ add_action("move2"); add_verb(DIR2);\ add_action("move3"); add_verb(DIR3);\ EXTRA_INIT\ }\ \ move1() {\ EXTRA_MOVE1\ call_other(this_player(), "move_player", DIR1 + "#" + DEST1);\ return 1;\ }\ \ move2() {\ EXTRA_MOVE2\ call_other(this_player(), "move_player", DIR2 + "#" + DEST2);\ return 1;\ }\ \ move3() {\ EXTRA_MOVE3\ call_other(this_player(), "move_player", DIR3 + "#" + DEST3);\ return 1;\ }\ \ long(str) {\ if (set_light(0) == 0){\ write("It really is dark you know.\n");\ return;\ }\ EXTRA_LONG\ write(LO);\ write("There are three obvious exits:\n " + DIR1 + ", " + DIR2 +\ " and " + DIR3 + ".\n");\ } #define FOUR_EXIT(DEST1, DIR1, DEST2, DIR2, DEST3, DIR3, DEST4, DIR4, SH, LO, LIGHT)\ reset(arg) { EXTRA_RESET if (arg) return; set_light(LIGHT); }\ short() {\ if (set_light(0))\ return SH;\ return "It is too dark to see here";\ }\ \ init() {\ add_action("move1"); add_verb(DIR1);\ add_action("move2"); add_verb(DIR2);\ add_action("move3"); add_verb(DIR3);\ add_action("move4"); add_verb(DIR4);\ EXTRA_INIT\ }\ \ move1() {\ EXTRA_MOVE1\ call_other(this_player(), "move_player", DIR1 + "#" + DEST1);\ return 1;\ }\ \ move2() {\ EXTRA_MOVE2\ call_other(this_player(), "move_player", DIR2 + "#" + DEST2);\ return 1;\ }\ \ move3() {\ EXTRA_MOVE3\ call_other(this_player(), "move_player", DIR3 + "#" + DEST3);\ return 1;\ }\ \ move4() {\ EXTRA_MOVE4\ call_other(this_player(), "move_player", DIR4 + "#" + DEST4);\ return 1;\ }\ \ long(str) {\ if (set_light(0) == 0){\ write("It really is dark you know.\n");\ return;\ }\ EXTRA_LONG\ write(LO);\ write("There are four obvious exits:\n " + DIR1 + ", " + DIR2 + ", " +\ DIR3 + " and " + DIR4 + ".\n");\ } #define FIVE_EXIT(DEST1, DIR1, DEST2, DIR2, DEST3, DIR3, DEST4, DIR4, DEST5, DIR5, SH, LO, LIGHT)\ reset(arg) { EXTRA_RESET if (arg) return; set_light(LIGHT); }\ short() {\ if (set_light(0))\ return SH;\ return "It is too dark to see here";\ }\ \ init() {\ add_action("move1"); add_verb(DIR1);\ add_action("move2"); add_verb(DIR2);\ add_action("move3"); add_verb(DIR3);\ add_action("move4"); add_verb(DIR4);\ add_action("move5"); add_verb(DIR5);\ EXTRA_INIT\ }\ \ move1() {\ EXTRA_MOVE1\ call_other(this_player(), "move_player", DIR1 + "#" + DEST1);\ return 1;\ }\ \ move2() {\ EXTRA_MOVE2\ call_other(this_player(), "move_player", DIR2 + "#" + DEST2);\ return 1;\ }\ \ move3() {\ EXTRA_MOVE3\ call_other(this_player(), "move_player", DIR3 + "#" + DEST3);\ return 1;\ }\ \ move4() {\ EXTRA_MOVE4\ call_other(this_player(), "move_player", DIR4 + "#" + DEST4);\ return 1;\ }\ \ move5() {\ EXTRA_MOVE5\ call_other(this_player(), "move_player", DIR5 + "#" + DEST5);\ return 1;\ }\ \ long(str) {\ if (set_light(0) == 0){\ write("It really is dark you know.\n");\ return;\ }\ EXTRA_LONG\ write(LO);\ write("There are five obvious exits:\n " + DIR1 + ", " + DIR2 + ", " +\ DIR3 + ", " + DIR4 + " and " + DIR5 + ".\n");\ } #define SIX_EXIT(DEST1, DIR1, DEST2, DIR2, DEST3, DIR3, DEST4, DIR4, DEST5, DIR5, DEST6, DIR6, SH, LO, LIGHT)\ reset(arg) { EXTRA_RESET if (arg) return; set_light(LIGHT); }\ short() {\ if (set_light(0))\ return SH;\ return "It is too dark to see here";\ }\ \ init() {\ add_action("move1"); add_verb(DIR1);\ add_action("move2"); add_verb(DIR2);\ add_action("move3"); add_verb(DIR3);\ add_action("move4"); add_verb(DIR4);\ add_action("move5"); add_verb(DIR5);\ add_action("move6"); add_verb(DIR6);\ EXTRA_INIT\ }\ \ move1() {\ EXTRA_MOVE1\ call_other(this_player(), "move_player", DIR1 + "#" + DEST1);\ return 1;\ }\ \ move2() {\ EXTRA_MOVE2\ call_other(this_player(), "move_player", DIR2 + "#" + DEST2);\ return 1;\ }\ \ move3() {\ EXTRA_MOVE3\ call_other(this_player(), "move_player", DIR3 + "#" + DEST3);\ return 1;\ }\ \ move4() {\ EXTRA_MOVE4\ call_other(this_player(), "move_player", DIR4 + "#" + DEST4);\ return 1;\ }\ \ move5() {\ EXTRA_MOVE5\ call_other(this_player(), "move_player", DIR5 + "#" + DEST5);\ return 1;\ }\ \ move6() {\ EXTRA_MOVE6\ call_other(this_player(), "move_player", DIR6 + "#" + DEST6);\ return 1;\ }\ \ long(str) {\ if (set_light(0) == 0){\ write("It really is dark you know.\n");\ return;\ }\ EXTRA_LONG\ write(LO);\ write("There are six obvious exits:\n " + DIR1 + ", " + DIR2 + ", " +\ DIR3 + ", " + DIR4 + ", " + DIR5 + " and " + DIR6 + ".\n");\ } #define SEVEN_EXIT(DEST1, DIR1, DEST2, DIR2, DEST3, DIR3, DEST4, DIR4, DEST5, DIR5, DEST6, DIR6, DEST7, DIR7, SH, LO, LIGHT)\ reset(arg) { EXTRA_RESET if (arg) return; set_light(LIGHT); }\ short() {\ if (set_light(0))\ return SH;\ return "It is too dark to see here";\ }\ \ init() {\ add_action("move1"); add_verb(DIR1);\ add_action("move2"); add_verb(DIR2);\ add_action("move3"); add_verb(DIR3);\ add_action("move4"); add_verb(DIR4);\ add_action("move5"); add_verb(DIR5);\ add_action("move6"); add_verb(DIR6);\ add_action("move7"); add_verb(DIR8);\ EXTRA_INIT\ }\ \ move1() {\ EXTRA_MOVE1\ call_other(this_player(), "move_player", DIR1 + "#" + DEST1);\ return 1;\ }\ \ move2() {\ EXTRA_MOVE2\ call_other(this_player(), "move_player", DIR2 + "#" + DEST2);\ return 1;\ }\ \ move3() {\ EXTRA_MOVE3\ call_other(this_player(), "move_player", DIR3 + "#" + DEST3);\ return 1;\ }\ \ move4() {\ EXTRA_MOVE4\ call_other(this_player(), "move_player", DIR4 + "#" + DEST4);\ return 1;\ }\ \ move5() {\ EXTRA_MOVE5\ call_other(this_player(), "move_player", DIR5 + "#" + DEST5);\ return 1;\ }\ \ move6() {\ EXTRA_MOVE6\ call_other(this_player(), "move_player", DIR6 + "#" + DEST6);\ return 1;\ }\ \ move7() {\ EXTRA_MOVE7\ call_other(this_player(), "move_player", DIR7 + "#" + DEST7);\ return 1;\ }\ \ long(str) {\ if (set_light(0) == 0){\ write("It really is dark you know.\n");\ return;\ }\ EXTRA_LONG\ write(LO);\ write("There are seven obvious exits:\n " + DIR1 + ", " + DIR2 + ", " +\ DIR3 + ", " + DIR4 + ", " + DIR5 + ", " + DIR6 + " and " + DIR7 + ".\n");\ } #define EIGHT_EXIT(DEST1, DIR1, DEST2, DIR2, DEST3, DIR3, DEST4, DIR4, DEST5, DIR5 , DEST6, DIR6, DEST7, DIR7, SH, LO, LIGHT)\ reset(arg) { EXTRA_RESET if (arg) return; set_light(LIGHT); }\ short() {\ if (set_light(0))\ return SH;\ return "It is too dark to see here";\ }\ \ init() {\ add_action("move1"); add_verb(DIR1);\ add_action("move2"); add_verb(DIR2);\ add_action("move3"); add_verb(DIR3);\ add_action("move4"); add_verb(DIR4);\ add_action("move5"); add_verb(DIR5);\ add_action("move6"); add_verb(DIR6);\ add_action("move7"); add_verb(DIR7);\ add_action("move8"); add_verb(DIR8);\ EXTRA_INIT\ }\ \ move1() {\ EXTRA_MOVE1\ call_other(this_player(), "move_player", DIR1 + "#" + DEST1);\ return 1;\ }\ \ move2() {\ EXTRA_MOVE2\ call_other(this_player(), "move_player", DIR2 + "#" + DEST2);\ return 1;\ }\ \ move3() {\ EXTRA_MOVE3\ call_other(this_player(), "move_player", DIR3 + "#" + DEST3);\ return 1;\ }\ \ move4() {\ EXTRA_MOVE4\ call_other(this_player(), "move_player", DIR4 + "#" + DEST4);\ return 1;\ }\ \ move5() {\ EXTRA_MOVE5\ call_other(this_player(), "move_player", DIR5 + "#" + DEST5);\ return 1;\ }\ \ move6() {\ EXTRA_MOVE6\ call_other(this_player(), "move_player", DIR6 + "#" + DEST6);\ return 1;\ }\ \ move7() {\ EXTRA_MOVE7\ call_other(this_player(), "move_player", DIR7 + "#" + DEST7);\ return 1;\ }\ \ move8() {\ EXTRA_MOVE8\ call_other(this_player(), "move_player", DIR8 + "#" + DEST8);\ return 1;\ }\ \ long(str) {\ if (set_light(0) == 0){\ write("It really is dark you know.\n");\ return;\ }\ EXTRA_LONG\ write(LO);\ write("There are eight obvious exits:\n " + DIR1 + ", " + DIR2 + ", " +\ DIR3 + ", " + DIR4 + ", " + DIR5 + ", " + DIR6 + "," + DIR7 + " and " + DIR8 + ".\n");\ }