#include <lib.h> #include <daemons.h> inherit LIB_DAEMON; mixed findit(string str){ string file, tmpfile; object room; int err; if(str == "here"){ tmpfile = base_name(environment(this_player())); file = lpc_file(base_name(environment(this_player()))); } else { file = lpc_file(str); tmpfile = str; } //tc("tmpfile: "+identify(tmpfile),"red"); //tc("file: "+identify(file),"red"); if(!file_exists(file) && str != "here"){ file = lpc_file(this_player()->query_cwd()+"/"+str); if(!directory_exists(path_prefix(str))){ tmpfile = this_player()->query_cwd()+"/"+str; } } if(file_exists(file)) return file; //tc("tmpfile: "+identify(tmpfile)); //tc("file: "+identify(file)); err = catch(room = load_object(tmpfile)); if(room) return room; return 0; } mixed cmd(string args) { string s1, s2, s3, coord, cmd; mixed file; object room; int err; if(!args){ write("Try: help gridconfig"); return 1; } if(sscanf(args,"%s %s %s",s1,s2,s3) == 3){ file = findit(s2); cmd = s1; coord = s3; if(!file){ write("Room not found."); return 1; } if(objectp(file)) room = file; if(!room) err = catch(room = load_object(file)); if(err || !room){ write("Room not loadable."); return 1; } if(cmd != "set"){ write("Try: help gridconfig"); return 1; } if(sscanf(coord,"%s,%s,%s",s1,s2,s3) != 3){ s3 = 0; if(sscanf(coord,"%s,%s",s1,s2) != 2){ write("Type: help gridconfig"); return 1; } } coord = coord + (s3 ? "" : ",0"); ROOMS_D->SetRoom(room, this_player(), coord); write("Coordinates for "+file+" are: "+ ROOMS_D->GetCoordinates(room)); return 1; } if(sscanf(args,"%s %s",s1,s2) == 2){ file = findit(s2); cmd = s1; if(!file){ write("Room not found."); return 1; } if(objectp(file)) room = file; if(!room) err = catch(room = load_object(file)); if(err || !room){ write("Room not loadable."); return 1; } if(cmd != "unset"){ write("Try: help gridconfig"); return 1; } ROOMS_D->SetRoom(room, this_player(), "0,0,0"); write("Coordinates for "+file+" are: "+ ROOMS_D->GetCoordinates(room)); return 1; } write("You fail to use this command properly."); return 1; } string GetHelp(string args) { return ("Syntax: gridconfig set <room> <coordinates>\n" " gridconfig unset <room>\n\n" "Modifies the grid coordinate table in ROOMS_D for the " "specified room.\nSee also: mudconfig, admintool" "\n\n" ""); }