I have just implemented a new item type called OBJECT and re-did the
do_enter command.
The object is to make an "enterable" object. The object is assigned a room
number to take you to in OLC. Everything is compiling nicely, but it creates
a segmentation fault (WOOHOO!). Wait! It gets even better! The gdb stuff
is incomprehesible to me! Here it is:
gdb) bt
#0 0x4004980e in ?? () from /lib/libc.so.6
#1 0x4009f75c in ?? () from /lib/libc.so.6
#2 0x4003ce4d in ?? () from /lib/libc.so.6
#3 0x40047503 in ?? () from /lib/libc.so.6
#4 0x40042ac1 in ?? () from /lib/libc.so.6
#5 0x80533f0 in do_enter (ch=0x811ac08, argument=0xbffff80d " axe", cmd=73,
subcmd=0) at act.movement.c:459
#6 0x806ef8c in command_interpreter (ch=0x811ac08,
argument=0xbffff808 "enter axe") at interpreter.c:683
#7 0x804a4dc in game_loop (mother_desc=3) at comm.c:642
#8 0x8049b07 in init_game (port=6002) at comm.c:255
#9 0x8049a98 in main (argc=3, argv=0xbffffd80) at comm.c:225
Now, for those interested in knowing what I have changed.
Structs.h
---------
added the following:
#define ITEM_PORTAL <next item ##>
#define PORTAL_TO_ROOM 0
constants.c
-----------
"FOUNTAIN",
Added the following:
"PORTAL",
olc.h
-----
changed NUM_ITEM_TYPES to the new number
oedit.c
-------
set the cases for min_value and max_value for value[1] of PORTAL.
act.movement.c
--------------
removed the stock do_enter command
Added the following:
ACMD(do_enter)
{
int to_room, mode;
char arg1[MAX_INPUT_LENGTH], *buf1;
struct obj_data *obj;
struct char_data *tmp_char;
one_argument(argument, arg1);
if(!*arg1)
send_to_char("What would you like to enter?\r\n", ch);
else {
mode = generic_find(arg1, FIND_OBJ_INV | FIND_OBJ_ROOM, ch, &tmp_char, &obj);
if(!obj)
send_to_char("There is nothing of that nature to enter here.\r\n", ch);
else {
if(obj->obj_flags.type_flag != ITEM_PORTAL)
send_to_char("Yeah smart guy, you just try and enter that . .
.\r\n", ch);
else {
sprintf(buf1, "%d", obj->obj_flags.value[1]);
to_room = find_target_room(ch, buf1);
char_from_room(ch);
char_to_room(ch, to_room);
send_to_char(OK, ch);
}
}
}
}
Well, that's about it i think. If anyone has any ideas, I'd really
apreciate it.
Sorry for such a long message :)
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-++-+-+-+-+-+-+-+
| Chuck Reed | Ash of Dark Horizon |
| creed@i-55.com | dh.gator.net 6000 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-++-+-+-+-+-+-+-+
"Losers always whine about their best while the winner goes
home and fucks the prom queen." -Sean Connery
+------------------------------------------------------------+
| Ensure that you have read the CircleMUD Mailing List FAQ: |
| http://democracy.queensu.ca/~fletcher/Circle/list-faq.html |
+------------------------------------------------------------+
This archive was generated by hypermail 2b30 : 12/08/00 PST