{0, 1021912587, {"The MoozWaxer", #1938, {#1362, #5, #3, #2, #1}, {}, #59, 1, 0, 0, 0, 0, 0, {}}, {{#1, {{#55, "r", "obj_disk_size", 0}}}, {#2, {{#789, "r", "ww w_counter", 0}, {#7165, "r", "subsidised", 0}, {#55, "r", "best_before", 1021481 129}, {#59, "rc", "description", "The moozwaxer is 1/5 of a package of 5 proxy m arkup objects that child to the generic query object. The moozwaxer will make AN Y object... look great in Moozilla. It is VERY efficient, very user-interveneab le, and very modular and extendable. The moozwaxer is a user layer, not a daemon , so it works well with Aloha. Web-based documentation for a moozwaxer-type obj ect can be found at http://www.winternet.com/~wingnut/html/wwdocs ."}, {#55, "r" , "aliases", {"The MoozWaxer"}}}}, {#3, {{#59, "rc", "anchor", #-1}, {#59, "c", "key", 0}}}, {#5, {}}, {#1362, {}}, {#2451, {{#55, "r", "__owned_by", #9223}, {# 59, "rc", "hexits_style", "style='font-style: normal; font-size: 12pt; font-weig ht: bold; font-family: verdana; color: #44ffff;'"}, {#59, "rc", "hcontents_style ", "style='font-style: normal; font-size: 12pt; font-weight: bold; font-family: verdana; color: lime;'"}, {#59, "rc", "hdescription_style", "style='padding: 5pt ; font-style: normal; font-size: 10pt; font-weight: normal; font-family: arial; color: #ff44ff;'"}, {#59, "rc", "hpicture_style", "style='border: outset violet 3pt;'"}, {#59, "rc", "hlocation_style", "style='font-size: 14pt; font-weight: bo ld; font-family: verdana; font-style: normal; color: red;' "}, {#59, "rc", "hnam e_style", "style='font-size: 14pt; font-weight: bold; font-family: verdana; font -style: normal; color: #cc5588;'"}, {#59, "rc", "hpicture_align", ""}, {#59, "rc ", "hpicture_border", ""}, {#59, "rc", "hpicture_height", ""}, {#59, "rc", "hpic ture_width", ""}, {#59, "rc", "hpicture_centered", 0}, {#59, "rc", "hpicture_alt ", "What?"}, {#59, "rc", "hassembly", {"head", "name", "location", "picture", "d escription", "contents", "exits", "foot"}}, {#59, "rc", "web_hit_msg", "Some Moo zWaxed object just took a hit!"}, {#59, "rc", "webhit_notify_msg", "The room sta rts to shake and shudder..."}, {#59, "rc", "hcounter_suffix", " hits from the we b."}, {#59, "rc", "hcounter_prefix", "
This object has had "}, {#59, "rc", "h name_link", ""}, {#59, "rc", "moo_name", "MOO Canada, Eh?"}, {#59, "rc", "moo_ur l", "http://moo.ca"}, {#59, "rc", "hlocation_prefix", "Location: "}, {#59, "rc", "hbackground", "<body bgcolor=black text=#ffff00 link=#4499ee vlink=#4499ee& gt;"}, {#59, "rc", "hvrml_link", ""}, {#59, "rc", "hvrml_border", ""}, {#59, "rc ", "hvrml_alt", ""}, {#59, "rc", "hvrml_align", ""}, {#59, "rc", "hvrml_centered ", 1}, {#59, "rc", "hvrml_height", 125}, {#59, "rc", "hvrml_width", "600"}, {#59 , "rc", "vrml", ""}, {#59, "rc", "hidle_suffix", "<br>"}, {#59, "rc", "hid le_prefix", "<br>"}, {#59, "rc", "help", #1605}, {#59, "rc", "hextra_suffi x", 0}, {#59, "rc", "hextra_prefix", 0}, {#59, "rc", "hextra", 0}, {#59, "rc", " hexits", ""}, {#59, "rc", "hpicture_suffix", "
"}, {#59, "rc", "hpicture_pref ix", "
"}, {#59, "rc", "hcontents", ""}, {#59, "rc", "hname", ""}, {#59, "rc" , "hname_suffix", ""}, {#59, "rc", "hname_prefix", "
"}, {#59, "rc" , "hlocation_link", ""}, {#59, "rc", "hlocation_suffix", "
"}, {#59, "rc", "h description", {}}, {#59, "rc", "hdescription_suffix", ""}, {#59, "rc", "hdescrip tion_prefix", ""}, {#59, "rc", "hexits_suffix", "
"}, {#59, "rc", " hexits_prefix", "Exits: "}, {#59, "rc", "hcontents_suffix", "
"}, {#59, "rc", "hcontents_prefix", "
Contents: "}, {#59, "rc", "hlocation", ""}, {#59, "rc" , "midcon_align", "bottom"}, {#59, "rc", "samcon_align", "bottom"}, {#59, "rc", "font_after_look", 0}, {#59, "rc", "sample_controls", "smallconsole"}, {#59, "rc ", "midi_controls", "smallconsole"}, {#59, "rc", "midcon_width", "49"}, {#59, "r c", "samcon_width", "49"}, {#59, "rc", "samcon_height", "14"}, {#59, "rc", "midc on_height", "14"}, {#59, "rc", "hpicture_link", ""}, {#59, "rc", "sample_play_ty pe", "play"}, {#59, "rc", "midi_play_type", "play"}, {#59, "rc", "midi_volume", "100"}, {#59, "rc", "sample_volume", "70"}, {#59, "rc", "hmidi", ""}, {#59, "rc" , "hsample", ""}}}}, {{#9223, "rxd", "hpicture", "this", "none", "this", "r = {} ;", "{path, td, that, @data} = args;", "if (!(pic = this:dd(path, td, that, \"pi cture\")))", " this.owner:tell(\"dd failed in .picture on \", $string_utils:nn( that));", " return r;", "endif", "\"Style string\";", "style = this:dd(path, td , that, \"hpicture_style\")[1];", "\"Here's a list, so future expansion is easy. \";", "params = {\"alt\", \"width\", \"height\", \"align\", \"border\"};", "alt = width = height = align = border = picture = link_url = {};", "picture = {@pict ure, \"\");" , "link_url = this:lap({\"\"}, $string_utils:from_list(this:dd(path, td, that, \ "hpicture_link\")));", "if (length($string_utils:from_list(link_url)))", " \"no style on picture link yet. Not sure I'll need it.\";", " r = {\"\" );", " r = this:lap(r, $string_utils:from_list(picture));", " r = this:lap(r, \"\");", "else", " r = this:lap(r, $string_utils:from_list(picture));", "en dif", "\"Nose dabble\";", "temp = this:dd(path, td, that, \"hpicture_prefix\");" , "r = {@temp, @r};", "\"Butt dabble for completeness\";", "temp = this:dd(path, td, that, \"hpicture_suffix\");", "r = {@r, @temp};", "if (this:bool(that, \"hp icture_centered\"))", " r = {\"
\", @r, \"
\"};", "endif", "retu rn r;", "\"Last modified by Wingy (#9223) on Thu May 9 11:11:44 2002 MDT.\";"}, {#9223, "rxdo", "substitute_suspended", "this", "none", "this", "\"subst(string ,{{redex1,repl1},{redex2,repl2},{redex3,repl3}...}[,case])\";", "\" => returns string with all instances of the strings redex replaced respectively by the s trings repl. If the optional argument `case' is given and nonzero, the searc h for instances of redex is case sensitive.\";", "\" Substitutions are done in parallel, i.e., instances of redex that appear in any of the replacement s trings are ignored. In the event that two redexes overlap, whichever is leftmos t in `string' takes precedence. For two redexes beginning at the same position, the longer one takes precedence.\";", "\"\";", "\"subst(\\\"hoahooaho\\\",{{\\\ "ho\\\",\\\"XhooX\\\"},{\\\"hoo\\\",\\\"mama\\\"}}) => \\\"XhooXamamaaXhooX\\\"\ ";", "\"subst(\\\"Cc: banana\\\",{{\\\"a\\\",\\\"b\\\"},{\\\"b\\\",\\\"c\\\"},{\ \\"c\\\",\\\"a\\\"}},1) => \\\"Ca: cbnbnb\\\"\";", "{ostr, subs, ?case = 0} = ar gs;", "if (typeof(ostr) != STR)", " return ostr;", "endif", "len = length(ostr) ;", "\" - - - find the first instance of each substitution - -\";", "indices = { };", "substs = {};", "for s in (subs)", " if (i = index(ostr, s[1], case))", " fi = $list_utils:find_insert(indices, i = i - len) - 1;", " while (fi && ( indices[fi] == i && length(substs[fi][1]) < length(s[1])))", " \"...give pr eference to longer redexes...\";", " fi = fi - 1;", " endwhile", " in dices = listappend(indices, i, fi);", " substs = listappend(substs, s, fi);", " endif", " $command_utils:suspend_if_needed(0);", "endfor", "\"- - - - - per form substitutions - \";", "nstr = \"\";", "while (substs)", " ind = len + indi ces[1];", " sub = substs[1];", " indices = listdelete(indices, 1);", " substs = listdelete(substs, 1);", " if (ind > 0)", " nstr = nstr + ostr[1..ind - 1 ] + sub[2];", " ostr = ostr[ind + length(sub[1])..len];", " len = length(o str);", " endif", " if (next = index(ostr, sub[1], case))", " fi = $list_ut ils:find_insert(indices, next = next - len) - 1;", " while (fi && (indices[fi ] == next && length(substs[fi][1]) < length(sub[1])))", " \"...give prefere nce to longer redexes...\";", " fi = fi - 1;", " endwhile", " indices = listappend(indices, next, fi);", " substs = listappend(substs, sub, fi);", " endif", " $command_utils:suspend_if_needed(0);", "endwhile", "return nstr + ostr;", "\"Last modified by Wingy (#9223) on Thu May 9 11:10:56 2002 MDT.\";"} , {#9223, "rxd", "wax", "any", "any", "any", "this.owner:tell(\"At #2451:wax, ar gs: \", toliteral(args));", "if (length(args[1]) > 1)", " return $mooz_waxer:ht tp_request({}, toobj(args[1][2]));", "else", " return this:htext({}, #2451);", "endif", "\"Last modified by Wingy (#9223) on Thu May 9 11:10:56 2002 MDT.\";"} , {#9223, "rxdo", "htext", "this", "none", "this", "\"A very ballsy verb. Better talk to Wingy for info.\";", "r = {};", "{path, td, that, ?data} = args;", "if (that == this)", " return this:hlook_self();", "endif", "\"that = $string_utils :from_list(path)[2..length($string_utils:from_list(path))];\";", "this.owner:tel l(\"The MoozWaxer rattles to life as it webs-up \", this.moo_url + \"/\" + tostr (tonum(that)));", "that = toobj(that);", "\"user want to do their own webbiness? \";", "if ($recycler:valid(that))", " if (that:has_callable_verb(\"html\"))", " \"ok, use :html to web that thing.\";", " r = this:hassemble(r, that:html (@args));", " elseif (that:has_property(\"html\") && length(that.html))", " \"ok, use .html to web that thing.\";", " r = this:hassemble(r, that.html);", " else", " \"no .html or :html set. Let the waxer do the webbing.\";", " \"Does that have its own .hassembly set on THAT?\";", " if (that:has_propert y(\"hassembly\"))", " \"if so, we'll use the one on THAT\";", " hassem bly = that.hassembly;", " else", " \"No that.hassembly set. We'll use th e moozwaxer's .hassembly\";", " hassembly = this.hassembly;", " endif", " for element in (hassembly)", " r = {@r, \"\"};", " r = {@r, @this:dd(path, player, that, \"h\" + elem ent)};", " endfor", " r = {@r, \"
\"};", " endif", "else", " r = {\"There was an error in #2451:htt p_request. Possibly an invalid object number.\"};", "endif", "return r;", "\"Las t modified by Wingy (#9223) on Thu May 9 11:27:48 2002 MDT.\";"}, {#9223, "rxd" , "hidle", "any", "any", "any", "r = t = {};", "{path, td, that, ?data} = args;" , "if (is_player(that))", " if (!(that in connected_players()))", " t = {@t, $gender_utils:pronoun_sub(\"%{:He} %{!is} sleeping.\", that)};", " elseif ((ti me = idle_seconds(that)) < 60)", " t = {@t, $gender_utils:pronoun_sub(\"%{:He } %{!is} awake and %{!looks} alert.\", that)};", " else", " time = $string_u tils:from_seconds(time);", " t = {@t, $gender_utils:pronoun_sub(\"%{:He} %{!i s} awake, but %{!has} been staring off into space for \", that) + time + \".\"}; ", " endif", " r = this:dd(path, td, that, \"hidle_prefix\");", " r = this:la p(r, $string_utils:from_list(t));", " r = this:lap(r, $string_utils:from_list(t his:dd(path, td, that, \"hidle_suffix\")));", "endif", "return r;", "\"Last modi fied by Wingy (#9223) on Thu May 9 11:09:31 2002 MDT.\";"}, {#9223, "rxd", "hhe ad", "any", "any", "any", "r = t = {};", "{path, td, that, @data} = args;", "thi s.owner:tell(\"at head, td: \", toliteral(td));", "if (valid(td))", " return r; ", "endif", "\"notify things\";", "if (temp = this:dd(path, td, that, \"webhit_m sg\"))", " if (that.owner in connected_players())", " that.owner:tell(temp); ", " endif", "endif", "r = {@r, \"< !DOCTYPE HTML PUBLIC \\\"-//W3C//DTD HTML 4 .01//EN \\\" \"};", "r = this:lap(r, \"\\\"http://www.w3.org/TR/html4/strict.dtd \\\">\");", "r = {@r, \"\"};", "r = {@r, \"\"};", "r = {@r, \"\" + this:hassemble(\"\", that.name) + \"\"};", "r = {@r, \"\"}; ", "\"Let's force-in the body command here... to avoid putting\";", "\" 'backgro und' into .hassembly... ok? ok.\";", "\" body is not used for moozilla, so we'l l check first\";", "background = this:hassemble(\"\", this:dd(path, td, that, \" hbackground\"));", "if (!length(background) || background[1] != \"<\")", " r = {@r, \"\"};", "else", " r = {@r, background};", "end if", "return r;", "\"Last modified by Wingy (#9223) on Thu May 9 11:09:01 2002 MDT.\";"}, {#9223, "rxd", "hfoot", "any", "any", "any", "r = {};", "{path, td, t hat, @data} = args;", "\"\";", "this.owner:tell(\"at foot, td: \", toliteral(td) );", "\"mooz check\";", "if (valid(td))", " this.owner:tell(\"hfoot valid\");", " return r;", "else", " this.owner:tell(\"hfoot NOT valid\");", " r = {\"\"};", " r = {@r, \"\"};", " return r;", "endif", "\"Last modified by Wingy (#9223) on Thu May 9 11:09:00 2002 MDT.\";"}, {#9223, "rxd", "hexits" , "any", "any", "any", "{path, td, that, @data} = args;", "this.owner:tell(\"hel lo from hexits\");", "r = t = {};", "\"if this is not a room, we leave! No exits possible!\";", "if (!(that in $room:descendents()))", " return r;", "endif", " moo_url = this.moo_url;", "\"Style string\";", "style = this:dd(path, td, that, \"hexits_style\")[1];", "exits = that:exits();", "this.owner:tell(\"at hexits, E xits: \", toliteral(exits));", "for i in (exits)", " t = {@t, \"\" + \"\" + i.name + \" to \" + i.dest .name + \"\"};", "endfor", "t = $string_utils:english_list(t);", "if (l ength(t))", " r = this:dd(path, td, that, \"hexits_prefix\");", " r = this:lap (r, t);", " r = this:lap(r, $string_utils:from_list(this:dd(path, td, that, \"h exits_suffix\")));", "endif", "return r;", "\"Last modified by Wingy (#9223) on Thu May 9 12:42:49 2002 MDT.\";"}, {#9223, "rxd", "hdescription", "any", "any", "any", "{path, td, that, @data} = args;", "\"Absolutely no lists allowed in moo z. embedded style. ONE STRING!\";", "r = temp = temp2 = {};", "\"Style string\" ;", "style = this:dd(path, td, that, \"hdescription_style\")[1];", "\"user-setta ble nose-dabble\";", "nose = this:dd(path, td, that, \"hdescription_prefix\");", "temp = that:description();", "temp = typeof(temp) == LIST ? $string_utils:from _list(temp, \"
\") | temp;", "\"user-settable butt-dabble\";", "tail = this:d d(path, td, that, \"hdescription_suffix\");", "if (!temp)", " temp = \"No descr iption available! Maybe its indescribable!\";", "endif", "r = {@r, nose};", "r = {@r, \"\");", "r = th is:lap(r, temp);", "r = this:lap(r, \"\");", "r = {@r, tail};", "\"
aft er description is left to user, and may be put in .hdescription_suffix\";", "ret urn r;", "\"Last modified by Wingy (#9223) on Thu May 9 12:54:03 2002 MDT.\";"} , {#9223, "rxd", "hcounter", "any", "any", "any", "{path, td, that, ?data} = arg s;", "r = {};", "if ($object_utils:has_property(that, \"webhits\"))", " r = {@r , @this:dd(path, td, that, \"hcounter_prefix\")};", " r = this:lap(r, \" \" + t ostr(that.webhits) + \" \");", " r = {@r, @this:dd(path, td, that, \"hcounter_s uffix\")};", "endif", "return r;", "\"Last modified by Wingy (#9223) on Thu May 9 11:08:25 2002 MDT.\";"}, {#9223, "rxd", "hcontents", "any", "any", "any", "{p ath, td, that, @data} = args;", "r = clist = temp = {};", "moo_url = this.moo_ur l;", "suffix = \"\";", "\"Style string\";", "style = this:dd(path, td, that, \"h contents_style\")[1];", "if (contents = that:contents())", " if ($recycler:vali d(td))", " contents = setremove(contents, td);", " endif", " if (length(con tents) > 20)", " contents = contents[1..20];", " suffix = \" and more.\";" , " endif", " for item in (contents)", " if (!$recycler:valid(item))", " clist = {@clist, \"invalid \" + tostr(item)};", " else", " clist = {@ clist, \"\" + item.name + \"\"};", " endif", " endfor", "endif", "if (length(clist))", " r = {@r, @this:dd(path, t d, that, \"hcontents_prefix\")};", " r = this:lap(r, $string_utils:english_list (clist) + suffix);", " r = this:lap(r, $string_utils:from_list(this:dd(path, td , that, \"hcontents_suffix\")));", "endif", "return r;", "\"Last modified by Win gy (#9223) on Thu May 9 11:08:25 2002 MDT.\";"}, {#9223, "rxdo", "hlook_self", "this", "none", "this", "this.owner:tell(\"MoozWaxer got browsed! ( #2451:hlook _self() )\");", "path = \"\";", "td = #-1;", "r = head = ad = {};", "ad = {\"
\"};", "head = {\" \" + this.name + \"\"};", "r = {@head, \"