#include "copyright.h" #include <stdio.h> #include "db.h" void main(int argc, char **argv) { struct object *o; dbref owner; dbref thing; if(argc < 1) { fprintf(stderr, "Usage: %s [owner]\n", *argv); exit(1); } if(argc >= 2) { owner = atol(argv[1]); } else { owner = NOTHING; } if(db_read(stdin) < 0) { fprintf(stderr, "%s: bad input\n", argv[0]); exit(5); } for(o = db; o < db+db_top; o++) { /* don't show exits separately */ if((o->flags & TYPE_MASK) == TYPE_EXIT) continue; /* don't show it if it isn't owned by the right player */ if(owner != NOTHING && o->owner != owner) continue; printf("#%d: %s [%s] at %s(%d) Pennies: %d Type: ", o - db, o->name, db[o->owner].name, getname(o->location), o->location, o->pennies); switch(o->flags & TYPE_MASK) { case TYPE_ROOM: printf("Room"); break; case TYPE_EXIT: printf("Exit"); break; case TYPE_THING: printf("Thing"); break; case TYPE_PLAYER: printf("Player"); break; default: printf("***UNKNOWN TYPE***"); break; } /* handle flags */ putchar(' '); if(o->flags & ~TYPE_MASK) { printf("Flags: "); if(o->flags & LINK_OK) printf("LINK_OK "); if(o->flags & DARK) printf("DARK "); if(o->flags & STICKY) printf("STICKY "); if(o->flags & WIZARD) printf("WIZARD "); if(o->flags & TEMPLE) printf("TEMPLE "); #ifdef RESTRICTED_BUILDING if(o->flags & BUILDER) printf("BUILDER "); #endif /* RESTRICTED_BUILDING */ } putchar('\n'); if(o->key != NOTHING) printf("KEY: %c%s\n", o->flags & ANTILOCK ? '!' : ' ', getname(o->key)); if(o->description) { puts("Description:"); puts(o->description); } if(o->succ_message) { puts("Success Message:"); puts(o->succ_message); } if(o->fail_message) { puts("Fail Message:"); puts(o->fail_message); } if(o->ofail) { puts("Other Fail Message:"); puts(o->ofail); } if(o->osuccess) { puts("Other Success Message:"); puts(o->osuccess); } if(o->contents != NOTHING) { puts("Contents:"); DOLIST(thing, o->contents) { /* dump thing description */ printf(" %s(%d)\n", db[thing].name, thing); } } if(o->exits != NOTHING) { if((o->flags & TYPE_MASK) == TYPE_ROOM) { puts("Exits:"); DOLIST(thing, o->exits) { printf(" %s", getname(thing)); if(db[thing].key != NOTHING) { printf(" KEY: %c%s(%d)", db[thing].flags & ANTILOCK ? '!' : ' ', getname(db[thing].key), db[thing].key); } if(db[thing].location != NOTHING) { printf(" => %s(%d)\n", getname(db[thing].location), db[thing].location); } else { puts(" ***OPEN***"); } } } else { printf("Home: %s(%d)\n", getname(o->exits), o->exits); } } putchar('\n'); } exit(0); }