Provisional fix for OpenSim event timeouts during dumping.
This is a provisional fix for #45. As discussed there, a proper fix will come later.
This commit is contained in:
parent
e37f991801
commit
032e0369bf
2 changed files with 48 additions and 2 deletions
|
@ -63,10 +63,12 @@ send_anim_info(integer broadcast)
|
||||||
llMessageLinked(LINK_THIS, 90055, (string)SCRIPT_CHANNEL, llDumpList2String([llList2String(MENU_LIST, ANIM_INDEX), llList2String(DATA_LIST, ANIM_INDEX), llList2String(POS_ROT_LIST, ANIM_INDEX * 2), llList2String(POS_ROT_LIST, ANIM_INDEX * 2 + 1), broadcast, speed_index], "|"));
|
llMessageLinked(LINK_THIS, 90055, (string)SCRIPT_CHANNEL, llDumpList2String([llList2String(MENU_LIST, ANIM_INDEX), llList2String(DATA_LIST, ANIM_INDEX), llList2String(POS_ROT_LIST, ANIM_INDEX * 2), llList2String(POS_ROT_LIST, ANIM_INDEX * 2 + 1), broadcast, speed_index], "|"));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// LSL::
|
||||||
Readout_Say(string say)
|
Readout_Say(string say)
|
||||||
{
|
{
|
||||||
llMessageLinked(LINK_THIS, 90022, say, (string)SCRIPT_CHANNEL);
|
llMessageLinked(LINK_THIS, 90022, say, (string)SCRIPT_CHANNEL);
|
||||||
}
|
}
|
||||||
|
// ::LSL
|
||||||
|
|
||||||
list order_buttons(list buttons)
|
list order_buttons(list buttons)
|
||||||
{
|
{
|
||||||
|
@ -598,6 +600,7 @@ default
|
||||||
onSit = llList2String(data, 14);
|
onSit = llList2String(data, 14);
|
||||||
memory();
|
memory();
|
||||||
}
|
}
|
||||||
|
// LSL::
|
||||||
else if (num == 90020 && llList2String(data, 0) == "")
|
else if (num == 90020 && llList2String(data, 0) == "")
|
||||||
{
|
{
|
||||||
Readout_Say("V:" + llDumpList2String([version, MTYPE, ETYPE, SET, SWAP, SITTER_INFO, CUSTOM_TEXT, ADJUST_MENU, SELECT, AMENU, OLD_HELPER_METHOD], "|"));
|
Readout_Say("V:" + llDumpList2String([version, MTYPE, ETYPE, SET, SWAP, SITTER_INFO, CUSTOM_TEXT, ADJUST_MENU, SELECT, AMENU, OLD_HELPER_METHOD], "|"));
|
||||||
|
@ -618,6 +621,41 @@ default
|
||||||
}
|
}
|
||||||
llMessageLinked(LINK_THIS, 90021, (string)SCRIPT_CHANNEL, "");
|
llMessageLinked(LINK_THIS, 90021, (string)SCRIPT_CHANNEL, "");
|
||||||
}
|
}
|
||||||
|
// ::LSL
|
||||||
|
/* OSS::
|
||||||
|
else if (num == 90020 && llList2String(data, 0) == "")
|
||||||
|
{
|
||||||
|
llMessageLinked(LINK_THIS, 90022, "V:" + llDumpList2String([version, MTYPE, ETYPE, SET, SWAP, SITTER_INFO, CUSTOM_TEXT, ADJUST_MENU, SELECT, AMENU, OLD_HELPER_METHOD], "|"), (string)SCRIPT_CHANNEL);
|
||||||
|
llMessageLinked(LINK_THIS, 90024, (string)SCRIPT_CHANNEL, "-1|D");
|
||||||
|
}
|
||||||
|
else if (num == 90024) // self-sent message to dump the next line
|
||||||
|
{
|
||||||
|
if (llList2String(data, 1) == "D")
|
||||||
|
{
|
||||||
|
if (++two < llGetListLength(MENU_LIST))
|
||||||
|
{
|
||||||
|
llSleep(0.5);
|
||||||
|
llMessageLinked(LINK_THIS, 90022, "S:" + llList2String(MENU_LIST, two) + "|" + llList2String(DATA_LIST, two), (string)SCRIPT_CHANNEL);
|
||||||
|
llMessageLinked(LINK_THIS, 90024, (string)SCRIPT_CHANNEL, (string)two + "|D");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
llMessageLinked(LINK_THIS, 90024, (string)SCRIPT_CHANNEL, "-1|P");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (++two < llGetListLength(MENU_LIST))
|
||||||
|
{
|
||||||
|
if (llList2Vector(POS_ROT_LIST, two * 2) != ZERO_VECTOR)
|
||||||
|
{
|
||||||
|
llSleep(0.2);
|
||||||
|
llMessageLinked(LINK_THIS, 90022, "{" + llList2String(MENU_LIST, two) + "}" + llList2String(POS_ROT_LIST, two * 2) + llList2String(POS_ROT_LIST, two * 2 + 1), (string)SCRIPT_CHANNEL);
|
||||||
|
}
|
||||||
|
llMessageLinked(LINK_THIS, 90024, (string)SCRIPT_CHANNEL, (string)two + "|P");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
llMessageLinked(LINK_THIS, 90021, (string)SCRIPT_CHANNEL, "");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
*/
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -36,7 +36,13 @@ def oss_process(filename):
|
||||||
import re
|
import re
|
||||||
|
|
||||||
# Regex that replaces a line with its OSS version when one's specified.
|
# Regex that replaces a line with its OSS version when one's specified.
|
||||||
os_re = re.compile(r'^( *)(.*?)// ?OSS::(.*)$', re.MULTILINE)
|
os_line_re = re.compile(r'^( *).*?// ?OSS::(.*)$', re.MULTILINE)
|
||||||
|
|
||||||
|
# Regex that removes lines between //LSL:: and //::LSL (can't begin on first line)
|
||||||
|
sl_block_re = re.compile(r'\n\s*// ?LSL::(?:[^\n]|\n(?![ \t]*// ?::LSL[^\n]*?(?=\n)))*\n[ \t]*// ?::LSL[^\n]*(?=\n)')
|
||||||
|
|
||||||
|
# Regex that removes /*OSS:: and its matching */ (can't begin on first line)
|
||||||
|
os_block_re = re.compile(r'\n\s*/\* ?OSS::[^\n]*(\n(?:[^\n]|\n(?![ \t]*\*/))*)\n[ \t]*\*/[^\n]*(?=\n)')
|
||||||
|
|
||||||
if filename is not None:
|
if filename is not None:
|
||||||
f = open(filename, "r");
|
f = open(filename, "r");
|
||||||
|
@ -55,7 +61,9 @@ def oss_process(filename):
|
||||||
'b88526b7-3966-43fd-ae76-1e39881c86aa')
|
'b88526b7-3966-43fd-ae76-1e39881c86aa')
|
||||||
# TODO: Replace LockGuard texture UUIDs
|
# TODO: Replace LockGuard texture UUIDs
|
||||||
|
|
||||||
s = os_re.sub(r'\1\3', s)
|
s = os_line_re.sub(r'\1\2', s)
|
||||||
|
s = sl_block_re.sub('', s)
|
||||||
|
s = os_block_re.sub(r'\1', s)
|
||||||
sys.stdout.write(s)
|
sys.stdout.write(s)
|
||||||
return 0
|
return 0
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue