[OLC] [Dig Command]

From: Matthew Kuebbeler (flawed@southwind.net)
Date: 09/06/00

Im currently using circle30bpl17 with the Oasis patch for it.
I've recently attempted to add in the dig command found from the ftp site,
but as always, nothing ever seems to go in right the first time.

Heres the snippet:

/* Only works if you have Oasis OLC */
extern void olc_add_to_save_list(int zone, byte type);

  char buf2[10];
  char buf3[10];
  char buf[80];
  int iroom = 0, rroom = 0;
  int dir = 0;
/*  struct room_data *room; */

  two_arguments(argument, buf2, buf3);
  /* buf2 is the direction, buf3 is the room */

iroom = atoi(buf3);

rroom = real_room(iroom);

 if (!*buf2) {
    send_to_char("Format: dig <dir> <room number>\r\n", ch);
    return; }
 else if (!*buf3) {
    send_to_char("Format: dig <dir> <room number>\r\n", ch);
    return; }
 if (rroom <= 0) {

sprintf(buf, "There is no room with the number %d", iroom);

send_to_char(buf, ch);

return; }
/* Main stuff */
    switch (*buf2) {
    case 'n':
    case 'N':
      dir = NORTH;
    case 'e':
    case 'E':
      dir = EAST;
    case 's':
    case 'S':
      dir = SOUTH;
    case 'w':
    case 'W':
      dir = WEST;
    case 'u':
    case 'U':
      dir = UP;
    case 'd':
    case 'D':
      dir = DOWN;
    case 'ne':
    case 'NE':
      dir = NORTHEAST;
    case 'nw':
    case 'NW':
      dir = NORTHWEST;
    case 'se':
    case 'SE':
      dir = SOUTHEAST;
    case 'sw':
    case 'SW':
      dir = SOUTHWEST;

CREATE(world[rroom].dir_option[rev_dir[dir]], struct room_direction_data,1);
  world[rroom].dir_option[rev_dir[dir]]->general_description = NULL;
  world[rroom].dir_option[rev_dir[dir]]->keyword = NULL;
  world[rroom].dir_option[rev_dir[dir]]->to_room = ch->in_room;

CREATE(world[ch->in_room].dir_option[dir], struct room_direction_data,1);
  world[ch->in_room].dir_option[dir]->general_description = NULL;
  world[ch->in_room].dir_option[dir]->keyword = NULL;
  world[ch->in_room].dir_option[dir]->to_room = rroom;

/* Only works if you have Oasis OLC */
  olc_add_to_save_list((iroom/100), OLC_SAVE_ROOM);

 sprintf(buf, "You make an exit %s to room %d.\r\n", buf2, iroom);
 send_to_char(buf, ch);

Now heres what the make has to say:

make ../bin/circle
make[1]: Entering directory `/usr/circle/circle30bpl17/src'
gcc -g -O2 -Wall    -c act.wizard.c -o act.wizard.o
act.wizard.c: In function `do_dig':
act.wizard.c:3044: warning: multi-character character constant
act.wizard.c:3044: warning: case value out of range
act.wizard.c:3045: warning: multi-character character constant
act.wizard.c:3045: warning: case value out of range
act.wizard.c:3048: warning: multi-character character constant
act.wizard.c:3048: warning: case value out of range
act.wizard.c:3049: warning: multi-character character constant
act.wizard.c:3049: warning: case value out of range
act.wizard.c:3052: warning: multi-character character constant
act.wizard.c:3052: warning: case value out of range
act.wizard.c:3053: warning: multi-character character constant
act.wizard.c:3053: warning: case value out of range
act.wizard.c:3056: warning: multi-character character constant
act.wizard.c:3056: warning: case value out of range
act.wizard.c:3057: warning: multi-character character constant
act.wizard.c:3057: warning: case value out of range
act.wizard.c:3073: `OLC_SAVE_ROOM' undeclared (first use this function)
act.wizard.c:3073: (Each undeclared identifier is reported only once
act.wizard.c:3073: for each function it appears in.)
make[1]: *** [act.wizard.o] Error 1
make[1]: Leaving directory `/usr/circle/circle30bpl17/src'
make: *** [all] Error 2

Being new to coding (learning as I go) I dont understand all this.
Im not sure where or how to make the 'OLC_SAVE_ROOM' declared anywhere.
I also dont quite follow all the warnings being stated as well.
Any form of help will be appreciated.


     | Ensure that you have read the CircleMUD Mailing List FAQ:  |
     |  http://qsilver.queensu.ca/~fletchra/Circle/list-faq.html  |

This archive was generated by hypermail 2b30 : 04/11/01 PDT