diff options
Diffstat (limited to 'linden')
61 files changed, 5135 insertions, 523 deletions
diff --git a/linden/indra/llui/lltexteditor.cpp b/linden/indra/llui/lltexteditor.cpp index b0229be..c4f839b 100644 --- a/linden/indra/llui/lltexteditor.cpp +++ b/linden/indra/llui/lltexteditor.cpp | |||
@@ -751,7 +751,14 @@ S32 LLTextEditor::getLineStart( S32 line ) const | |||
751 | S32 segoffset = mLineStartList[line].mOffset; | 751 | S32 segoffset = mLineStartList[line].mOffset; |
752 | LLTextSegment* seg = mSegments[segidx]; | 752 | LLTextSegment* seg = mSegments[segidx]; |
753 | S32 res = seg->getStart() + segoffset; | 753 | S32 res = seg->getStart() + segoffset; |
754 | if (res > seg->getEnd()) llerrs << "wtf" << llendl; | 754 | if (res > seg->getEnd()) |
755 | { | ||
756 | //llerrs << "wtf" << llendl; | ||
757 | // This happens when creating a new notecard using the AO on certain opensims. | ||
758 | // Play it safe instead of bringing down the viewer - MC | ||
759 | llwarns << "BAD JOOJOO! Text length (" << res << ") greater than text end (" << seg->getEnd() << "). Setting line start to " << seg->getEnd() << llendl; | ||
760 | res = seg->getEnd(); | ||
761 | } | ||
755 | return res; | 762 | return res; |
756 | } | 763 | } |
757 | 764 | ||
diff --git a/linden/indra/lscript/lscript_library/lscript_library.cpp b/linden/indra/lscript/lscript_library/lscript_library.cpp index 0342c97..7fa7b70 100644 --- a/linden/indra/lscript/lscript_library/lscript_library.cpp +++ b/linden/indra/lscript/lscript_library/lscript_library.cpp | |||
@@ -458,6 +458,15 @@ void LLScriptLibrary::init() | |||
458 | addFunction(new LLScriptLibraryFunction(10.f, 0.f, dummy_func, "llHTTPResponse", NULL, "kis", "llHTTPResponse(key id, integer status, string body)\nResponds to request id with status and body.")); | 458 | addFunction(new LLScriptLibraryFunction(10.f, 0.f, dummy_func, "llHTTPResponse", NULL, "kis", "llHTTPResponse(key id, integer status, string body)\nResponds to request id with status and body.")); |
459 | addFunction(new LLScriptLibraryFunction(10.f, 0.f, dummy_func, "llGetHTTPHeader", "s", "ks", "string llGetHTTPHeader(key id, string header)\nGet the value for header for request id.")); | 459 | addFunction(new LLScriptLibraryFunction(10.f, 0.f, dummy_func, "llGetHTTPHeader", "s", "ks", "string llGetHTTPHeader(key id, string header)\nGet the value for header for request id.")); |
460 | 460 | ||
461 | // Prim media functions and those added in SL server 1.38 -- MC | ||
462 | addFunction(new LLScriptLibraryFunction(10.f, 1.0f, dummy_func, "llSetPrimMediaParams", "i", "il", "llSetPrimMediaParams(integer face, list params)\nSets the media params for a particular face on an object. If media is not already on this object, add it.\nList is a set of name/value pairs in no particular order. Params not specified are unchanged, or if new media is added then set to the default specified.\nThe possible names are below, along with the types of values and what they mean.")); | ||
463 | addFunction(new LLScriptLibraryFunction(10.f, 1.0f, dummy_func, "llGetPrimMediaParams", "l", "il", "list llGetPrimMediaParams(integer face, list params)\nReturns the media params for a particular face on an object, given the desired list of names, in the order requested.\n(Returns an empty list if no media exists on the face.)")); | ||
464 | addFunction(new LLScriptLibraryFunction(10.f, 1.0f, dummy_func, "llClearPrimMedia", "i", "i", "llClearPrimMedia(integer face)\nClears (deletes) the media and all params from the given face.")); | ||
465 | addFunction(new LLScriptLibraryFunction(10.f, 0.f, dummy_func, "llSetLinkPrimitiveParamsFast", NULL, "il", "llSetLinkPrimitiveParamsFast(integer linknumber, list rules);\nIdentical to llSetLinkPrimitiveParams except with no script delay.")); | ||
466 | addFunction(new LLScriptLibraryFunction(10.f, 0.f, dummy_func, "llGetLinkPrimitiveParams", NULL, "il", "list llGetLinkPrimitiveParams(integer link, list params)\nSimilar to llGetPrimitiveParams except works for any prim in the link set and with no script delay.")); | ||
467 | addFunction(new LLScriptLibraryFunction(10.f, 0.f, dummy_func, "llLinkParticleSystem", NULL, "il", "llLinkParticleSystem(integer link, list params)\nSimilar to llParticleSystem except works for any prim in the link set.")); | ||
468 | addFunction(new LLScriptLibraryFunction(10.f, 0.f, dummy_func, "llSetLinkTextureAnim", NULL, "iiiiifff", "llSetLinkTextureAnim(integer link, integer mode, integer face, integer sizex, integer sizey, float start, float length, float rate);\nSimilar to llSetTextureAnim except works for any prim in the link set")); | ||
469 | |||
461 | // energy, sleep, dummy_func, name, return type, parameters, help text, gods-only | 470 | // energy, sleep, dummy_func, name, return type, parameters, help text, gods-only |
462 | 471 | ||
463 | // IF YOU ADD NEW SCRIPT CALLS, YOU MUST PUT THEM AT THE END OF THIS LIST. | 472 | // IF YOU ADD NEW SCRIPT CALLS, YOU MUST PUT THEM AT THE END OF THIS LIST. |
diff --git a/linden/indra/newview/CMakeLists.txt b/linden/indra/newview/CMakeLists.txt index 514811d..1af5e9e 100644 --- a/linden/indra/newview/CMakeLists.txt +++ b/linden/indra/newview/CMakeLists.txt | |||
@@ -66,6 +66,8 @@ include_directories( | |||
66 | 66 | ||
67 | set(viewer_SOURCE_FILES | 67 | set(viewer_SOURCE_FILES |
68 | emeraldboobutils.cpp | 68 | emeraldboobutils.cpp |
69 | floaterao.cpp | ||
70 | floaterbusy.cpp | ||
69 | floaterlogin.cpp | 71 | floaterlogin.cpp |
70 | hippoGridManager.cpp | 72 | hippoGridManager.cpp |
71 | hippoLimits.cpp | 73 | hippoLimits.cpp |
@@ -309,6 +311,7 @@ set(viewer_SOURCE_FILES | |||
309 | llpatchvertexarray.cpp | 311 | llpatchvertexarray.cpp |
310 | llpolymesh.cpp | 312 | llpolymesh.cpp |
311 | llpolymorph.cpp | 313 | llpolymorph.cpp |
314 | llprefsadvanced.cpp | ||
312 | llprefschat.cpp | 315 | llprefschat.cpp |
313 | llprefsim.cpp | 316 | llprefsim.cpp |
314 | llprefsvoice.cpp | 317 | llprefsvoice.cpp |
@@ -488,6 +491,8 @@ set(viewer_HEADER_FILES | |||
488 | CMakeLists.txt | 491 | CMakeLists.txt |
489 | ViewerInstall.cmake | 492 | ViewerInstall.cmake |
490 | emeraldboobutils.h | 493 | emeraldboobutils.h |
494 | floaterao.h | ||
495 | floaterbusy.h | ||
491 | floaterlogin.h | 496 | floaterlogin.h |
492 | hippoGridManager.h | 497 | hippoGridManager.h |
493 | hippoLimits.h | 498 | hippoLimits.h |
@@ -733,6 +738,7 @@ set(viewer_HEADER_FILES | |||
733 | llpatchvertexarray.h | 738 | llpatchvertexarray.h |
734 | llpolymesh.h | 739 | llpolymesh.h |
735 | llpolymorph.h | 740 | llpolymorph.h |
741 | llprefsadvanced.h | ||
736 | llprefschat.h | 742 | llprefschat.h |
737 | llprefsim.h | 743 | llprefsim.h |
738 | llprefsvoice.h | 744 | llprefsvoice.h |
@@ -1082,6 +1088,7 @@ set(viewer_XUI_FILES | |||
1082 | skins/default/xui/en-us/floater_active_speakers.xml | 1088 | skins/default/xui/en-us/floater_active_speakers.xml |
1083 | skins/default/xui/en-us/floater_animation_list.xml | 1089 | skins/default/xui/en-us/floater_animation_list.xml |
1084 | skins/default/xui/en-us/floater_animation_preview.xml | 1090 | skins/default/xui/en-us/floater_animation_preview.xml |
1091 | skins/default/xui/en-us/floater_ao.xml | ||
1085 | skins/default/xui/en-us/floater_asset_browser.xml | 1092 | skins/default/xui/en-us/floater_asset_browser.xml |
1086 | skins/default/xui/en-us/floater_auction.xml | 1093 | skins/default/xui/en-us/floater_auction.xml |
1087 | skins/default/xui/en-us/floater_audio_volume.xml | 1094 | skins/default/xui/en-us/floater_audio_volume.xml |
@@ -1091,6 +1098,7 @@ set(viewer_XUI_FILES | |||
1091 | skins/default/xui/en-us/floater_build_options.xml | 1098 | skins/default/xui/en-us/floater_build_options.xml |
1092 | skins/default/xui/en-us/floater_bulk_perms.xml | 1099 | skins/default/xui/en-us/floater_bulk_perms.xml |
1093 | skins/default/xui/en-us/floater_bumps.xml | 1100 | skins/default/xui/en-us/floater_bumps.xml |
1101 | skins/default/xui/en-us/floater_busy.xml | ||
1094 | skins/default/xui/en-us/floater_buy_contents.xml | 1102 | skins/default/xui/en-us/floater_buy_contents.xml |
1095 | skins/default/xui/en-us/floater_buy_currency.xml | 1103 | skins/default/xui/en-us/floater_buy_currency.xml |
1096 | skins/default/xui/en-us/floater_buy_land.xml | 1104 | skins/default/xui/en-us/floater_buy_land.xml |
@@ -1241,6 +1249,7 @@ set(viewer_XUI_FILES | |||
1241 | skins/default/xui/en-us/panel_overlaybar.xml | 1249 | skins/default/xui/en-us/panel_overlaybar.xml |
1242 | skins/default/xui/en-us/panel_place_small.xml | 1250 | skins/default/xui/en-us/panel_place_small.xml |
1243 | skins/default/xui/en-us/panel_place.xml | 1251 | skins/default/xui/en-us/panel_place.xml |
1252 | skins/default/xui/en-us/panel_preferences_advanced.xml | ||
1244 | skins/default/xui/en-us/panel_preferences_audio.xml | 1253 | skins/default/xui/en-us/panel_preferences_audio.xml |
1245 | skins/default/xui/en-us/panel_preferences_chat.xml | 1254 | skins/default/xui/en-us/panel_preferences_chat.xml |
1246 | skins/default/xui/en-us/panel_preferences_general.xml | 1255 | skins/default/xui/en-us/panel_preferences_general.xml |
diff --git a/linden/indra/newview/app_settings/ao_template.ini b/linden/indra/newview/app_settings/ao_template.ini new file mode 100644 index 0000000..03f02e3 --- /dev/null +++ b/linden/indra/newview/app_settings/ao_template.ini | |||
@@ -0,0 +1,103 @@ | |||
1 | ############################################################ | ||
2 | ############################################################ | ||
3 | ## | ||
4 | ## IMPRUDENCE AO TEMPLATE | ||
5 | ## | ||
6 | ############################################################ | ||
7 | ## | ||
8 | ## INSTRUCTIONS: | ||
9 | ## | ||
10 | ## 1. Detach any AO you are currently wearing or it will interfere. | ||
11 | ## | ||
12 | ## 2. Place all of the animations you want ot use into a folder in your inventory. | ||
13 | ## | ||
14 | ## 3. Place the notecard for the AO in the *SAME* folder. | ||
15 | ## | ||
16 | ## 4. Find the line that matches the animation you're changing. | ||
17 | ## For example, if you're adding a walk animation, | ||
18 | ## find the line that starts with [ Walking ] | ||
19 | ## | ||
20 | ## If the notecard already has walking animations, the line will look something like this: | ||
21 | ## [ Walking ]SexyWalk1|SexyWalk2 | ||
22 | ## | ||
23 | ## 5. Type the name of the new animation at the end of this line. | ||
24 | ## If the line already contains some animations, type '|' before | ||
25 | ## typing the animation name. Once you're done, the line should look like this: | ||
26 | ## [ Walking ]NewWalkAnim | ||
27 | ## or | ||
28 | ## [ Walking ]SexyWalk1|SexyWalk2|NewWalkAnim | ||
29 | ## | ||
30 | ## 6. Once you're done, save the notecard. | ||
31 | ## | ||
32 | ## 7. Open the client AO window (CTRL-SHIFT-O) then drag the notecard onto the indicated spot. | ||
33 | ## | ||
34 | ## 8. Press the "Reload" button in the AO. | ||
35 | ## | ||
36 | ############################################################ | ||
37 | |||
38 | ############################################################ | ||
39 | ############################################################ | ||
40 | ## | ||
41 | ## LIST YOUR ANIMATIONS HERE | ||
42 | ## | ||
43 | ############################################################ | ||
44 | ############################################################ | ||
45 | |||
46 | |||
47 | [ Standing ] | ||
48 | [ Walking ] | ||
49 | [ Sitting ] | ||
50 | [ Sitting On Ground ] | ||
51 | [ Crouching ] | ||
52 | [ Crouch Walking ] | ||
53 | [ Landing ] | ||
54 | [ Standing Up ] | ||
55 | [ Falling ] | ||
56 | [ Flying Down ] | ||
57 | [ Flying Up ] | ||
58 | [ Flying ] | ||
59 | [ Flying Slow ] | ||
60 | [ Hovering ] | ||
61 | [ Jumping ] | ||
62 | [ Pre Jumping ] | ||
63 | [ Running ] | ||
64 | [ Turning Right ] | ||
65 | [ Turning Left ] | ||
66 | [ Floating ] | ||
67 | [ Swimming Forward ] | ||
68 | [ Swimming Up ] | ||
69 | [ Swimming Down ] | ||
70 | |||
71 | |||
72 | ############################################################# | ||
73 | ############################################################# | ||
74 | ## | ||
75 | ## FOR ADVANCED USERS ONLY | ||
76 | ## | ||
77 | ############################################################# | ||
78 | ## | ||
79 | ## Lines starting with a # are treated as comments and ignored. Blank lines are ignored. Valid lines look like this: | ||
80 | ## | ||
81 | ## [ Walking ]SexyWalk1|SexyWalk2|SexyWalk3 | ||
82 | ## | ||
83 | ## The token (in this case, [ Walking ] - note the spaces inside the [ ]) identifies the animation to be overridden. The rest is a list of | ||
84 | ## animations, separated by the '|' (pipe) character. You can specify multiple animations for Stands, Walks, Sits, and GroundSits. | ||
85 | ## Multiple animations on any other line are invalid. You can list as many animations as you want. | ||
86 | ## | ||
87 | ## You can repeat tokens, so you can split the Stands up across multiple lines. Use the [ Standing ] token in each line, and | ||
88 | ## the viewer will add the animation lists together. | ||
89 | ## | ||
90 | ## Each 'animation name' can be a comma-separated list of animations, which will be played together. For example: | ||
91 | ## [ Walking ]SexyWalk1UpperBody,SexyWalk1LowerBody|SexyWalk2|SexyWalk3 | ||
92 | ## | ||
93 | ## Note the ',' between SexyWalk1UpperBody and SexyWalk1LowerBody - this tells AO to treat these as a single | ||
94 | ## 'animation' and play them together. The '|' between this 'animation' and SexyWalk2 tells AO to treat SexyWalk2 and | ||
95 | ## SexyWalk3 as separate walk animations. You can use this to layer animations on top of each other. | ||
96 | ## | ||
97 | ## Do not add any spaces around animation names!!! | ||
98 | ## | ||
99 | ## If you have read and understood these instructions, feel free to delete these lines. | ||
100 | ## | ||
101 | ## Imprudence's AO notecard system is based on the ZHAO-II HUD by Second Life resident Ziggy Puff. | ||
102 | ## | ||
103 | ############################################################ \ No newline at end of file | ||
diff --git a/linden/indra/newview/app_settings/keywords.ini b/linden/indra/newview/app_settings/keywords.ini index 18af407..b0851ef 100644 --- a/linden/indra/newview/app_settings/keywords.ini +++ b/linden/indra/newview/app_settings/keywords.ini | |||
@@ -40,14 +40,14 @@ not_at_rot_target not_at_rot_target():Result of LLRotTarget library function cal | |||
40 | money money(key id, integer amount):Triggered when L$ is given to task | 40 | money money(key id, integer amount):Triggered when L$ is given to task |
41 | email email(string time, string address, string subj, string message, integer num_left):Triggered when task receives email | 41 | email email(string time, string address, string subj, string message, integer num_left):Triggered when task receives email |
42 | run_time_permissions run_time_permissions(integer perm):Triggered when an agent grants run time permissions to task | 42 | run_time_permissions run_time_permissions(integer perm):Triggered when an agent grants run time permissions to task |
43 | attach attach(key id):Triggered when an agent attaches or detaches from agent | 43 | attach attach(key id):Triggered when task attaches or detaches from agent |
44 | dataserver dataserver(key queryid, string data):Triggered when task receives asynchronous data | 44 | dataserver dataserver(key queryid, string data):Triggered when task receives asynchronous data |
45 | moving_start moving_start():Triggered when task begins moving | 45 | moving_start moving_start():Triggered when task begins moving |
46 | moving_end moving_end():Triggered when task stops moving | 46 | moving_end moving_end():Triggered when task stops moving |
47 | on_rez on_rez(integer start_param):Triggered when task is rezed in from inventory or another task | 47 | on_rez on_rez(integer start_param):Triggered when task is rezed in from inventory or another task |
48 | object_rez object_rez(key id):Triggered when task rezes in another task | 48 | object_rez object_rez(key id):Triggered when task rezes in another task |
49 | link_message link_message(integer sender_num, integer num, string str, key id):Triggered when task receives a link message via LLMessageLinked library function call | 49 | link_message link_message(integer sender_num, integer num, string str, key id):Triggered when task receives a link message via LLMessageLinked library function call |
50 | changed changed( integer change ):Triggered various event change the task:(test change with CHANGED_INVENTORY, CHANGED_COLOR, CHANGED_SHAPE, CHANGED_SCALE, CHANGED_TEXTURE, CHANGED_LINK, CHANGED_ALLOWED_DROP, CHANGED_OWNER, CHANGED_REGION, CHANGED_TELEPORT) | 50 | changed changed( integer change ):Triggered various event change the task:(test change with CHANGED_INVENTORY, CHANGED_COLOR, CHANGED_SHAPE, CHANGED_SCALE, CHANGED_TEXTURE, CHANGED_LINK, CHANGED_ALLOWED_DROP, CHANGED_OWNER, CHANGED_REGION, CHANGED_TELEPORT, CHANGED_REGION_START, CHANGED_MEDIA) |
51 | remote_data remote_data(integer event_type, key channel, key message_id, string sender,integer idata, string sdata):Triggered by various XML-RPC calls (event_type will be one of REMOTE_DATA_CHANNEL, REMOTE_DATA_REQUEST, REMOTE_DATA_REPLY) | 51 | remote_data remote_data(integer event_type, key channel, key message_id, string sender,integer idata, string sdata):Triggered by various XML-RPC calls (event_type will be one of REMOTE_DATA_CHANNEL, REMOTE_DATA_REQUEST, REMOTE_DATA_REPLY) |
52 | http_response http_response(key request_id, integer status, list metadata, string body):Triggered when task receives a response to one of its llHTTPRequests | 52 | http_response http_response(key request_id, integer status, list metadata, string body):Triggered when task receives a response to one of its llHTTPRequests |
53 | http_request http_request(key id, string method, string body):Triggered when task receives an http request against a public URL | 53 | http_request http_request(key id, string method, string body):Triggered when task receives an http request against a public URL |
@@ -108,6 +108,7 @@ AGENT_TYPING Returned by llGetAgentInfo if the Agent is typing | |||
108 | AGENT_CROUCHING Returned by llGetAgentInfo if the Agent is crouching | 108 | AGENT_CROUCHING Returned by llGetAgentInfo if the Agent is crouching |
109 | AGENT_BUSY Returned by llGetAgentInfo if the Agent is busy | 109 | AGENT_BUSY Returned by llGetAgentInfo if the Agent is busy |
110 | AGENT_ALWAYS_RUN Returned by llGetAgentInfo if the Agent has 'Always Run' enabled | 110 | AGENT_ALWAYS_RUN Returned by llGetAgentInfo if the Agent has 'Always Run' enabled |
111 | AGENT_AUTOPILOT Returned by llGetAgentInfo if the Agent is under autopilot control | ||
111 | 112 | ||
112 | PSYS_PART_FLAGS | 113 | PSYS_PART_FLAGS |
113 | PSYS_PART_START_COLOR | 114 | PSYS_PART_START_COLOR |
@@ -319,6 +320,7 @@ CHANGED_OWNER Parameter of changed event handler used to indicate change to tas | |||
319 | CHANGED_REGION Parameter of changed event handler used to indicate the region has changed | 320 | CHANGED_REGION Parameter of changed event handler used to indicate the region has changed |
320 | CHANGED_TELEPORT Parameter of changed event handler used to indicate teleport has completed | 321 | CHANGED_TELEPORT Parameter of changed event handler used to indicate teleport has completed |
321 | CHANGED_REGION_START Parameter of changed event handler used to indicate the region has been restarted | 322 | CHANGED_REGION_START Parameter of changed event handler used to indicate the region has been restarted |
323 | CHANGED_MEDIA Parameter of changed event handler used to indicate that media has changed on a face of the task | ||
322 | 324 | ||
323 | TYPE_INTEGER Indicates that the list entry is holding an integer | 325 | TYPE_INTEGER Indicates that the list entry is holding an integer |
324 | TYPE_FLOAT Indicates that the list entry is holding an float | 326 | TYPE_FLOAT Indicates that the list entry is holding an float |
@@ -351,6 +353,8 @@ PRIM_BUMP_SHINY Followed by an integer face, one of PRIM_SHINY_NONE, PRIM_SHINY | |||
351 | PRIM_FULLBRIGHT Followed by an integer face, and TRUE or FALSE | 353 | PRIM_FULLBRIGHT Followed by an integer face, and TRUE or FALSE |
352 | PRIM_TEXGEN Followed by an integer face, and one of PRIM_TEXGEN_DEFAULT or PRIM_TEXGEN_PLANAR | 354 | PRIM_TEXGEN Followed by an integer face, and one of PRIM_TEXGEN_DEFAULT or PRIM_TEXGEN_PLANAR |
353 | PRIM_GLOW Followed by an integer face, and a float from 0.0 to 1.0 specifying glow amount | 355 | PRIM_GLOW Followed by an integer face, and a float from 0.0 to 1.0 specifying glow amount |
356 | PRIM_NAME Sets/Shows the primitive name | ||
357 | PRIM_TEXT Sets/Shows the primitive desc | ||
354 | 358 | ||
355 | PRIM_TYPE_BOX Followed by integer hole shape, vector cut, float hollow, vector twist,:vector top size, and vector top shear | 359 | PRIM_TYPE_BOX Followed by integer hole shape, vector cut, float hollow, vector twist,:vector top size, and vector top shear |
356 | PRIM_TYPE_CYLINDER Followed by integer hole shape, vector cut, float hollow, vector twist,:vector top size, and vector top shear | 360 | PRIM_TYPE_CYLINDER Followed by integer hole shape, vector cut, float hollow, vector twist,:vector top size, and vector top shear |
@@ -508,17 +512,59 @@ CLICK_ACTION_PAY Used with llSetClickAction to set pay as the default act | |||
508 | CLICK_ACTION_OPEN Used with llSetClickAction to set open as the default action when object is clicked | 512 | CLICK_ACTION_OPEN Used with llSetClickAction to set open as the default action when object is clicked |
509 | CLICK_ACTION_PLAY Used with llSetClickAction to set play as the default action when object is clicked | 513 | CLICK_ACTION_PLAY Used with llSetClickAction to set play as the default action when object is clicked |
510 | CLICK_ACTION_OPEN_MEDIA Used with llSetClickAction to set open-media as the default action when object is clicked | 514 | CLICK_ACTION_OPEN_MEDIA Used with llSetClickAction to set open-media as the default action when object is clicked |
515 | CLICK_ACTION_ZOOM Used with llSetClickAction to set zoom in as the default action when object is clicked | ||
511 | 516 | ||
512 | TOUCH_INVALID_TEXCOORD Value returned by llDetectedTouchUV() and llDetectedTouchST() when the touch position is not valid. | 517 | TOUCH_INVALID_TEXCOORD Value returned by llDetectedTouchUV() and llDetectedTouchST() when the touch position is not valid. |
513 | TOUCH_INVALID_VECTOR Value returned by llDetectedTouchPos(), llDetectedTouchNormal(), and llDetectedTouchBinormal() when the touch position is not valid. | 518 | TOUCH_INVALID_VECTOR Value returned by llDetectedTouchPos(), llDetectedTouchNormal(), and llDetectedTouchBinormal() when the touch position is not valid. |
514 | TOUCH_INVALID_FACE Value returned by llDetectedTouchFace() when the touch position is not valid. | 519 | TOUCH_INVALID_FACE Value returned by llDetectedTouchFace() when the touch position is not valid. |
515 | 520 | ||
521 | PRIM_MEDIA_ALT_IMAGE_ENABLE Used with ll{Get,Set}PrimMediaParams to enable the default alt image for media | ||
522 | PRIM_MEDIA_CONTROLS Used with ll{Get,Set}PrimMediaParams to determine the controls shown for media | ||
523 | PRIM_MEDIA_CURRENT_URL Used with ll{Get,Set}PrimMediaParams to navigate/access the current URL | ||
524 | PRIM_MEDIA_HOME_URL Used with ll{Get,Set}PrimMediaParams to access the home URL | ||
525 | PRIM_MEDIA_AUTO_LOOP Used with ll{Get,Set}PrimMediaParams to determine if media should auto-loop (if applicable) | ||
526 | PRIM_MEDIA_AUTO_PLAY Used with ll{Get,Set}PrimMediaParams to determine if media should start playing as soon as it is created | ||
527 | PRIM_MEDIA_AUTO_SCALE Used with ll{Get,Set}PrimMediaParams to determine if media should scale to fit the face it is on | ||
528 | PRIM_MEDIA_AUTO_ZOOM Used with ll{Get,Set}PrimMediaParams to determine if the user would zoom in when viewing media | ||
529 | PRIM_MEDIA_FIRST_CLICK_INTERACT Used with ll{Get,Set}PrimMediaParams to determine whether the user interacts with media or not when she first clicks it (versus selection) | ||
530 | PRIM_MEDIA_WIDTH_PIXELS Used with ll{Get,Set}PrimMediaParams to access the media's width in pixels | ||
531 | PRIM_MEDIA_HEIGHT_PIXELS Used with ll{Get,Set}PrimMediaParams to access the media's height in pixels | ||
532 | PRIM_MEDIA_WHITELIST_ENABLE Used with ll{Get,Set}PrimMediaParams to determine if the domain whitelist is enabled | ||
533 | PRIM_MEDIA_WHITELIST Used with ll{Get,Set}PrimMediaParams to access the media's list of allowable URL prefixes to navigate to | ||
534 | PRIM_MEDIA_PERMS_INTERACT Used with ll{Get,Set}PrimMediaParams to determine the permissions for who can interact with the media | ||
535 | PRIM_MEDIA_PERMS_CONTROL Used with ll{Get,Set}PrimMediaParams to determine the permissions for who has controls | ||
536 | PRIM_MEDIA_PARAM_MAX The value of the largest media param | ||
537 | |||
538 | PRIM_MEDIA_CONTROLS_STANDARD Used with ll{Get,Set}PrimMediaParams, a PRIM_MEDIA_CONTROLS value meaning "standard controls" | ||
539 | PRIM_MEDIA_CONTROLS_MINI Used with ll{Get,Set}PrimMediaParams, a PRIM_MEDIA_CONTROLS value meaning "mini controls" | ||
540 | |||
541 | PRIM_MEDIA_PERM_NONE Used with ll{Get,Set}PrimMediaParams, a PRIM_MEDIA_PERMS_INTERACT or PRIM_MEDIA_PERMS_CONTROL bit, no permissions | ||
542 | PRIM_MEDIA_PERM_OWNER Used with ll{Get,Set}PrimMediaParams, a PRIM_MEDIA_PERMS_INTERACT or PRIM_MEDIA_PERMS_CONTROL bit, owner permissions | ||
543 | PRIM_MEDIA_PERM_GROUP Used with ll{Get,Set}PrimMediaParams, a PRIM_MEDIA_PERMS_INTERACT or PRIM_MEDIA_PERMS_CONTROL bit, group permissions | ||
544 | PRIM_MEDIA_PERM_ANYONE Used with ll{Get,Set}PrimMediaParams, a PRIM_MEDIA_PERMS_INTERACT or PRIM_MEDIA_PERMS_CONTROL bit, anyone has permissions | ||
545 | |||
546 | PRIM_MEDIA_MAX_URL_LENGTH Used with ll{Get,Set}PrimMediaParams, the maximum length of PRIM_MEDIA_CURRENT_URL or PRIM_MEDIA_HOME_URL | ||
547 | PRIM_MEDIA_MAX_WHITELIST_SIZE Used with ll{Get,Set}PrimMediaParams, the maximum length, in bytes, of PRIM_MEDIA_WHITELIST | ||
548 | PRIM_MEDIA_MAX_WHITELIST_COUNT Used with ll{Get,Set}PrimMediaParams, the maximum number of items allowed in PRIM_MEDIA_WHITELIST | ||
549 | PRIM_MEDIA_MAX_WIDTH_PIXELS Used with ll{Get,Set}PrimMediaParams, the maximum width allowed in PRIM_MEDIA_WIDTH_PIXELS | ||
550 | PRIM_MEDIA_MAX_HEIGHT_PIXELS Used with ll{Get,Set}PrimMediaParams, the maximum width allowed in PRIM_MEDIA_HEIGHT_PIXELS | ||
551 | |||
552 | STATUS_OK Result of function call was success | ||
553 | STATUS_MALFORMED_PARAMS Function was called with malformed params | ||
554 | STATUS_TYPE_MISMATCH Argument(s) passed to function had a type mismatch | ||
555 | STATUS_BOUNDS_ERROR Argument(s) passed to function had a bounds error | ||
556 | STATUS_NOT_FOUND Object or other item was not found | ||
557 | STATUS_NOT_SUPPORTED Feature not supported | ||
558 | STATUS_INTERNAL_ERROR An internal error occurred | ||
559 | STATUS_WHITELIST_FAILED URL failed to pass whitelist | ||
560 | |||
516 | # string constants | 561 | # string constants |
517 | [word .1, .3, .5] | 562 | [word .1, .3, .5] |
518 | NULL_KEY Indicates an empty key | 563 | NULL_KEY Indicates an empty key |
519 | EOF Indicates the last line of a notecard was read | 564 | EOF Indicates the last line of a notecard was read |
520 | TEXTURE_BLANK UUID for the "Blank" texture | 565 | TEXTURE_BLANK UUID for the "Blank" texture |
521 | TEXTURE_DEFAULT UUID for the "Default Media" texture | 566 | TEXTURE_DEFAULT Alias for TEXTURE_PLYWOOD |
567 | TEXTURE_MEDIA UUID for the "Default Media" texture | ||
522 | TEXTURE_PLYWOOD UUID for the default "Plywood" texture | 568 | TEXTURE_PLYWOOD UUID for the default "Plywood" texture |
523 | TEXTURE_TRANSPARENT UUID for the "White - Transparent" texture | 569 | TEXTURE_TRANSPARENT UUID for the "White - Transparent" texture |
524 | 570 | ||
@@ -539,6 +585,7 @@ SQRT2 1.4142135623730950488016887242097 | |||
539 | ZERO_VECTOR <0.0, 0.0, 0.0> | 585 | ZERO_VECTOR <0.0, 0.0, 0.0> |
540 | ZERO_ROTATION <0.0, 0.0, 0.0, 1.0> | 586 | ZERO_ROTATION <0.0, 0.0, 0.0, 1.0> |
541 | 587 | ||
588 | |||
542 | # flow control keywords | 589 | # flow control keywords |
543 | [word 0, 0, .8] | 590 | [word 0, 0, .8] |
544 | for for loop:for (initializer; test; iteration):{: statements:} | 591 | for for loop:for (initializer; test; iteration):{: statements:} |
@@ -563,4 +610,4 @@ return Leave current function or event handler | |||
563 | [two_sided_delimiter_esc 0, .2, 0] | 610 | [two_sided_delimiter_esc 0, .2, 0] |
564 | " " String literal | 611 | " " String literal |
565 | 612 | ||
566 | #functions are supplied by the program now. \ No newline at end of file | 613 | #functions are supplied by the program now. |
diff --git a/linden/indra/newview/app_settings/settings.xml b/linden/indra/newview/app_settings/settings.xml index 852369f..6643e43 100644 --- a/linden/indra/newview/app_settings/settings.xml +++ b/linden/indra/newview/app_settings/settings.xml | |||
@@ -1,6 +1,160 @@ | |||
1 | <?xml version="1.0" ?> | 1 | <?xml version="1.0" ?> |
2 | <llsd> | 2 | <llsd> |
3 | <map> | 3 | <map> |
4 | |||
5 | <!-- Imprudence-specific settings --> | ||
6 | |||
7 | <key>AppearanceForceStand</key> | ||
8 | <map> | ||
9 | <key>Comment</key> | ||
10 | <string>Unsit avatar when entering appearance mode?</string> | ||
11 | <key>Persist</key> | ||
12 | <integer>1</integer> | ||
13 | <key>Type</key> | ||
14 | <string>Boolean</string> | ||
15 | <key>Value</key> | ||
16 | <integer>1</integer> | ||
17 | </map> | ||
18 | <key>DisableLoginLogoutScreens</key> | ||
19 | <map> | ||
20 | <key>Comment</key> | ||
21 | <string>Disable login/logout screen progress bar screens</string> | ||
22 | <key>Persist</key> | ||
23 | <integer>1</integer> | ||
24 | <key>Type</key> | ||
25 | <string>Boolean</string> | ||
26 | <key>Value</key> | ||
27 | <integer>0</integer> | ||
28 | </map> | ||
29 | <key>DisableTeleportScreens</key> | ||
30 | <map> | ||
31 | <key>Comment</key> | ||
32 | <string>Disable teleport screens</string> | ||
33 | <key>Persist</key> | ||
34 | <integer>1</integer> | ||
35 | <key>Type</key> | ||
36 | <string>Boolean</string> | ||
37 | <key>Value</key> | ||
38 | <integer>0</integer> | ||
39 | </map> | ||
40 | <key>RezWithLandGroup</key> | ||
41 | <map> | ||
42 | <key>Comment</key> | ||
43 | <string>Attempts to rez objects in the lands group if you're apart of it</string> | ||
44 | <key>Persist</key> | ||
45 | <integer>1</integer> | ||
46 | <key>Type</key> | ||
47 | <string>Boolean</string> | ||
48 | <key>Value</key> | ||
49 | <integer>0</integer> | ||
50 | </map> | ||
51 | <key>ShadowsEnabled</key> | ||
52 | <map> | ||
53 | <key>Comment</key> | ||
54 | <string>Whether or not shadows have been enabled (does not actually toggle them)</string> | ||
55 | <key>Persist</key> | ||
56 | <integer>1</integer> | ||
57 | <key>Type</key> | ||
58 | <string>Boolean</string> | ||
59 | <key>Value</key> | ||
60 | <integer>0</integer> | ||
61 | </map> | ||
62 | <key>ShowStatusBarInMouselook</key> | ||
63 | <map> | ||
64 | <key>Comment</key> | ||
65 | <string>Display statistics window when entering mouselook (requires restart).</string> | ||
66 | <key>Persist</key> | ||
67 | <integer>1</integer> | ||
68 | <key>Type</key> | ||
69 | <string>Boolean</string> | ||
70 | <key>Value</key> | ||
71 | <integer>1</integer> | ||
72 | </map> | ||
73 | |||
74 | <!-- Begin: AO--> | ||
75 | |||
76 | <key>AOEnabled</key> | ||
77 | <map> | ||
78 | <key>Comment</key> | ||
79 | <string>Turn on Animation Overrider</string> | ||
80 | <key>Persist</key> | ||
81 | <integer>1</integer> | ||
82 | <key>Type</key> | ||
83 | <string>Boolean</string> | ||
84 | <key>Value</key> | ||
85 | <integer>0</integer> | ||
86 | </map> | ||
87 | <key>AOAdvanced</key> | ||
88 | <map> | ||
89 | <key>Comment</key> | ||
90 | <string>Advanced options</string> | ||
91 | <key>Persist</key> | ||
92 | <integer>0</integer> | ||
93 | <key>Type</key> | ||
94 | <string>Boolean</string> | ||
95 | <key>Value</key> | ||
96 | <integer>0</integer> | ||
97 | </map> | ||
98 | <key>AOSitsEnabled</key> | ||
99 | <map> | ||
100 | <key>Comment</key> | ||
101 | <string>Overrides sit animations.</string> | ||
102 | <key>Persist</key> | ||
103 | <integer>1</integer> | ||
104 | <key>Type</key> | ||
105 | <string>Boolean</string> | ||
106 | <key>Value</key> | ||
107 | <integer>1</integer> | ||
108 | </map> | ||
109 | <key>AONoStandsInMouselook</key> | ||
110 | <map> | ||
111 | <key>Comment</key> | ||
112 | <string>Disables stand anims during mouselook</string> | ||
113 | <key>Persist</key> | ||
114 | <integer>1</integer> | ||
115 | <key>Type</key> | ||
116 | <string>Boolean</string> | ||
117 | <key>Value</key> | ||
118 | <integer>1</integer> | ||
119 | </map> | ||
120 | <key>AOStandInterval</key> | ||
121 | <map> | ||
122 | <key>Comment</key> | ||
123 | <string>AO stand time in seconds</string> | ||
124 | <key>Persist</key> | ||
125 | <integer>1</integer> | ||
126 | <key>Type</key> | ||
127 | <string>F32</string> | ||
128 | <key>Value</key> | ||
129 | <real>20</real> | ||
130 | </map> | ||
131 | <key>AOStandRandomize</key> | ||
132 | <map> | ||
133 | <key>Comment</key> | ||
134 | <string>Randomize stand anims</string> | ||
135 | <key>Persist</key> | ||
136 | <integer>1</integer> | ||
137 | <key>Type</key> | ||
138 | <string>Boolean</string> | ||
139 | <key>Value</key> | ||
140 | <integer>0</integer> | ||
141 | </map> | ||
142 | <key>AORect</key> | ||
143 | <map> | ||
144 | <key>Comment</key> | ||
145 | <string>Rectangle for AO window</string> | ||
146 | <key>Persist</key> | ||
147 | <integer>1</integer> | ||
148 | <key>Type</key> | ||
149 | <string>Rect</string> | ||
150 | <key>Value</key> | ||
151 | <array> | ||
152 | <integer>0</integer> | ||
153 | <integer>100</integer> | ||
154 | <integer>100</integer> | ||
155 | <integer>100</integer> | ||
156 | </array> | ||
157 | </map> | ||
4 | 158 | ||
5 | <!-- Begin: Client Name Tag --> | 159 | <!-- Begin: Client Name Tag --> |
6 | 160 | ||
@@ -5063,7 +5217,7 @@ | |||
5063 | <key>Type</key> | 5217 | <key>Type</key> |
5064 | <string>Boolean</string> | 5218 | <string>Boolean</string> |
5065 | <key>Value</key> | 5219 | <key>Value</key> |
5066 | <integer>0</integer> | 5220 | <integer>1</integer> |
5067 | </map> | 5221 | </map> |
5068 | <key>GridSubdivision</key> | 5222 | <key>GridSubdivision</key> |
5069 | <map> | 5223 | <map> |
@@ -12177,6 +12331,17 @@ | |||
12177 | <key>Value</key> | 12331 | <key>Value</key> |
12178 | <integer>1</integer> | 12332 | <integer>1</integer> |
12179 | </map> | 12333 | </map> |
12334 | <key>WarnFirstAO</key> | ||
12335 | <map> | ||
12336 | <key>Comment</key> | ||
12337 | <string>Enables FirstAO warning dialog</string> | ||
12338 | <key>Persist</key> | ||
12339 | <integer>1</integer> | ||
12340 | <key>Type</key> | ||
12341 | <string>Boolean</string> | ||
12342 | <key>Value</key> | ||
12343 | <integer>1</integer> | ||
12344 | </map> | ||
12180 | <key>WarnFirstAppearance</key> | 12345 | <key>WarnFirstAppearance</key> |
12181 | <map> | 12346 | <map> |
12182 | <key>Comment</key> | 12347 | <key>Comment</key> |
diff --git a/linden/indra/newview/app_settings/settings_per_account.xml b/linden/indra/newview/app_settings/settings_per_account.xml index 59caac4..e965fe6 100644 --- a/linden/indra/newview/app_settings/settings_per_account.xml +++ b/linden/indra/newview/app_settings/settings_per_account.xml | |||
@@ -1,5 +1,590 @@ | |||
1 | <llsd> | 1 | <llsd> |
2 | <map> | 2 | <map> |
3 | |||
4 | <!-- Imprudence-specific settings --> | ||
5 | |||
6 | <key>InventoryPreviousCount</key> | ||
7 | <map> | ||
8 | <key>Comment</key> | ||
9 | <string>Used to keep track of the number of items in inventory when fetching for progress reasons. DO NOT EDIT.</string> | ||
10 | <key>Persist</key> | ||
11 | <integer>1</integer> | ||
12 | <key>Type</key> | ||
13 | <string>S32</string> | ||
14 | <key>Value</key> | ||
15 | <integer>-1</integer> | ||
16 | </map> | ||
17 | <key>InventorySearchType</key> | ||
18 | <map> | ||
19 | <key>Comment</key> | ||
20 | <string>Controls what type of inventory search we perform.</string> | ||
21 | <key>Persist</key> | ||
22 | <integer>0</integer> | ||
23 | <key>Type</key> | ||
24 | <string>U32</string> | ||
25 | <key>Value</key> | ||
26 | <integer>0</integer> | ||
27 | </map> | ||
28 | <key>InventoryPartialSearch</key> | ||
29 | <map> | ||
30 | <key>Comment</key> | ||
31 | <string>Toggles whether to search using partial search filters on normal (name, desc, creator) searches.</string> | ||
32 | <key>Persist</key> | ||
33 | <integer>0</integer> | ||
34 | <key>Type</key> | ||
35 | <string>Boolean</string> | ||
36 | <key>Value</key> | ||
37 | <integer>0</integer> | ||
38 | </map> | ||
39 | |||
40 | <!-- Begin AO --> | ||
41 | |||
42 | <key>AOConfigNotecardID</key> | ||
43 | <map> | ||
44 | <key>Comment</key> | ||
45 | <string>InventoryItemID of the AO config notecard</string> | ||
46 | <key>Persist</key> | ||
47 | <integer>1</integer> | ||
48 | <key>Type</key> | ||
49 | <string>String</string> | ||
50 | <key>Value</key> | ||
51 | <string></string> | ||
52 | </map> | ||
53 | <key>AODefaultWalk</key> | ||
54 | <map> | ||
55 | <key>Comment</key> | ||
56 | <string>Default walk anim</string> | ||
57 | <key>Persist</key> | ||
58 | <integer>1</integer> | ||
59 | <key>Type</key> | ||
60 | <string>String</string> | ||
61 | <key>Value</key> | ||
62 | <string></string> | ||
63 | </map> | ||
64 | <key>AODefaultSit</key> | ||
65 | <map> | ||
66 | <key>Comment</key> | ||
67 | <string>Default sit anim</string> | ||
68 | <key>Persist</key> | ||
69 | <integer>1</integer> | ||
70 | <key>Type</key> | ||
71 | <string>String</string> | ||
72 | <key>Value</key> | ||
73 | <string></string> | ||
74 | </map> | ||
75 | <key>AODefaultRun</key> | ||
76 | <map> | ||
77 | <key>Comment</key> | ||
78 | <string>Default run anim</string> | ||
79 | <key>Persist</key> | ||
80 | <integer>1</integer> | ||
81 | <key>Type</key> | ||
82 | <string>String</string> | ||
83 | <key>Value</key> | ||
84 | <string></string> | ||
85 | </map> | ||
86 | <key>AODefaultJump</key> | ||
87 | <map> | ||
88 | <key>Comment</key> | ||
89 | <string>Default jump anim</string> | ||
90 | <key>Persist</key> | ||
91 | <integer>1</integer> | ||
92 | <key>Type</key> | ||
93 | <string>String</string> | ||
94 | <key>Value</key> | ||
95 | <string></string> | ||
96 | </map> | ||
97 | <key>AODefaultGroundSit</key> | ||
98 | <map> | ||
99 | <key>Comment</key> | ||
100 | <string>Default groundsit anim</string> | ||
101 | <key>Persist</key> | ||
102 | <integer>1</integer> | ||
103 | <key>Type</key> | ||
104 | <string>String</string> | ||
105 | <key>Value</key> | ||
106 | <string></string> | ||
107 | </map> | ||
108 | <key>AODefaultCrouch</key> | ||
109 | <map> | ||
110 | <key>Comment</key> | ||
111 | <string>Default crouch anim</string> | ||
112 | <key>Persist</key> | ||
113 | <integer>1</integer> | ||
114 | <key>Type</key> | ||
115 | <string>String</string> | ||
116 | <key>Value</key> | ||
117 | <string></string> | ||
118 | </map> | ||
119 | <key>AODefaultCrouchWalk</key> | ||
120 | <map> | ||
121 | <key>Comment</key> | ||
122 | <string>Default crouchwalk anim</string> | ||
123 | <key>Persist</key> | ||
124 | <integer>1</integer> | ||
125 | <key>Type</key> | ||
126 | <string>String</string> | ||
127 | <key>Value</key> | ||
128 | <string></string> | ||
129 | </map> | ||
130 | <key>AODefaultFall</key> | ||
131 | <map> | ||
132 | <key>Comment</key> | ||
133 | <string>Default fall anim</string> | ||
134 | <key>Persist</key> | ||
135 | <integer>1</integer> | ||
136 | <key>Type</key> | ||
137 | <string>String</string> | ||
138 | <key>Value</key> | ||
139 | <string></string> | ||
140 | </map> | ||
141 | <key>AODefaultHover</key> | ||
142 | <map> | ||
143 | <key>Comment</key> | ||
144 | <string>Default hover anim</string> | ||
145 | <key>Persist</key> | ||
146 | <integer>1</integer> | ||
147 | <key>Type</key> | ||
148 | <string>String</string> | ||
149 | <key>Value</key> | ||
150 | <string></string> | ||
151 | </map> | ||
152 | <key>AODefaultFly</key> | ||
153 | <map> | ||
154 | <key>Comment</key> | ||
155 | <string>Default fly anim</string> | ||
156 | <key>Persist</key> | ||
157 | <integer>1</integer> | ||
158 | <key>Type</key> | ||
159 | <string>String</string> | ||
160 | <key>Value</key> | ||
161 | <string></string> | ||
162 | </map> | ||
163 | <key>AODefaultFlySlow</key> | ||
164 | <map> | ||
165 | <key>Comment</key> | ||
166 | <string>Default flyslow anim</string> | ||
167 | <key>Persist</key> | ||
168 | <integer>1</integer> | ||
169 | <key>Type</key> | ||
170 | <string>String</string> | ||
171 | <key>Value</key> | ||
172 | <string></string> | ||
173 | </map> | ||
174 | <key>AODefaultFlyUp</key> | ||
175 | <map> | ||
176 | <key>Comment</key> | ||
177 | <string>Default flyup anim</string> | ||
178 | <key>Persist</key> | ||
179 | <integer>1</integer> | ||
180 | <key>Type</key> | ||
181 | <string>String</string> | ||
182 | <key>Value</key> | ||
183 | <string></string> | ||
184 | </map> | ||
185 | <key>AODefaultFlyDown</key> | ||
186 | <map> | ||
187 | <key>Comment</key> | ||
188 | <string>Default flydown anim</string> | ||
189 | <key>Persist</key> | ||
190 | <integer>1</integer> | ||
191 | <key>Type</key> | ||
192 | <string>String</string> | ||
193 | <key>Value</key> | ||
194 | <string></string> | ||
195 | </map> | ||
196 | <key>AODefaultLand</key> | ||
197 | <map> | ||
198 | <key>Comment</key> | ||
199 | <string>Default land anim</string> | ||
200 | <key>Persist</key> | ||
201 | <integer>1</integer> | ||
202 | <key>Type</key> | ||
203 | <string>String</string> | ||
204 | <key>Value</key> | ||
205 | <string></string> | ||
206 | </map> | ||
207 | <key>AODefaultStandUp</key> | ||
208 | <map> | ||
209 | <key>Comment</key> | ||
210 | <string>Default standup anim</string> | ||
211 | <key>Persist</key> | ||
212 | <integer>1</integer> | ||
213 | <key>Type</key> | ||
214 | <string>String</string> | ||
215 | <key>Value</key> | ||
216 | <string></string> | ||
217 | </map> | ||
218 | <key>AODefaultPreJump</key> | ||
219 | <map> | ||
220 | <key>Comment</key> | ||
221 | <string>Default prejump anim</string> | ||
222 | <key>Persist</key> | ||
223 | <integer>1</integer> | ||
224 | <key>Type</key> | ||
225 | <string>String</string> | ||
226 | <key>Value</key> | ||
227 | <string></string> | ||
228 | </map> | ||
229 | |||
230 | <!-- End AO --> | ||
231 | |||
232 | <!-- Begin build --> | ||
233 | |||
234 | <key>BuildPrefs_Xsize</key> | ||
235 | <map> | ||
236 | <key>Comment</key> | ||
237 | <string>Default Size For New Objects to be created X</string> | ||
238 | <key>Persist</key> | ||
239 | <integer>1</integer> | ||
240 | <key>Type</key> | ||
241 | <string>F32</string> | ||
242 | <key>Value</key> | ||
243 | <real>0.5</real> | ||
244 | </map> | ||
245 | <key>BuildPrefs_Ysize</key> | ||
246 | <map> | ||
247 | <key>Comment</key> | ||
248 | <string>Default Size For New Objects to be created Y</string> | ||
249 | <key>Persist</key> | ||
250 | <integer>1</integer> | ||
251 | <key>Type</key> | ||
252 | <string>F32</string> | ||
253 | <key>Value</key> | ||
254 | <real>0.5</real> | ||
255 | </map> | ||
256 | <key>BuildPrefs_Zsize</key> | ||
257 | <map> | ||
258 | <key>Comment</key> | ||
259 | <string>Default Size For New Objects to be created Z</string> | ||
260 | <key>Persist</key> | ||
261 | <integer>1</integer> | ||
262 | <key>Type</key> | ||
263 | <string>F32</string> | ||
264 | <key>Value</key> | ||
265 | <real>0.5</real> | ||
266 | </map> | ||
267 | <key>BuildPrefs_Phantom</key> | ||
268 | <map> | ||
269 | <key>Comment</key> | ||
270 | <string>Default Setting For New Objects to be created, phantom flag</string> | ||
271 | <key>Persist</key> | ||
272 | <integer>1</integer> | ||
273 | <key>Type</key> | ||
274 | <string>Boolean</string> | ||
275 | <key>Value</key> | ||
276 | <integer>0</integer> | ||
277 | </map> | ||
278 | <key>BuildPrefs_Temporary</key> | ||
279 | <map> | ||
280 | <key>Comment</key> | ||
281 | <string>Default Setting For New Objects to be created, temp flag</string> | ||
282 | <key>Persist</key> | ||
283 | <integer>1</integer> | ||
284 | <key>Type</key> | ||
285 | <string>Boolean</string> | ||
286 | <key>Value</key> | ||
287 | <integer>0</integer> | ||
288 | </map> | ||
289 | <key>BuildPrefs_Physical</key> | ||
290 | <map> | ||
291 | <key>Comment</key> | ||
292 | <string>Default Setting For New Objects to be created, physical flag</string> | ||
293 | <key>Persist</key> | ||
294 | <integer>1</integer> | ||
295 | <key>Type</key> | ||
296 | <string>Boolean</string> | ||
297 | <key>Value</key> | ||
298 | <integer>0</integer> | ||
299 | </map> | ||
300 | <key>BuildPrefs_EmbedItem</key> | ||
301 | <map> | ||
302 | <key>Comment</key> | ||
303 | <string>Whether to add item to objects</string> | ||
304 | <key>Persist</key> | ||
305 | <integer>1</integer> | ||
306 | <key>Type</key> | ||
307 | <string>Boolean</string> | ||
308 | <key>Value</key> | ||
309 | <integer>1</integer> | ||
310 | </map> | ||
311 | <key>BuildPrefs_Material</key> | ||
312 | <map> | ||
313 | <key>Comment</key> | ||
314 | <string>Default Setting For New Objects to be created, physical flag</string> | ||
315 | <key>Persist</key> | ||
316 | <integer>1</integer> | ||
317 | <key>Type</key> | ||
318 | <string>String</string> | ||
319 | <key>Value</key> | ||
320 | <string>Wood</string> | ||
321 | </map> | ||
322 | <key>BuildPrefs_Color</key> | ||
323 | <map> | ||
324 | <key>Comment</key> | ||
325 | <string>Color of new objects textures</string> | ||
326 | <key>Persist</key> | ||
327 | <integer>1</integer> | ||
328 | <key>Type</key> | ||
329 | <string>Color4</string> | ||
330 | <key>Value</key> | ||
331 | <array> | ||
332 | <real>1.0</real> | ||
333 | <real>1.0</real> | ||
334 | <real>1.0</real> | ||
335 | <real>1.0</real> | ||
336 | </array> | ||
337 | </map> | ||
338 | <key>BuildPrefs_Texture</key> | ||
339 | <map> | ||
340 | <key>Comment</key> | ||
341 | <string>Texture used as 'Default' for new object created</string> | ||
342 | <key>Persist</key> | ||
343 | <integer>1</integer> | ||
344 | <key>Type</key> | ||
345 | <string>String</string> | ||
346 | <key>Value</key> | ||
347 | <string>89556747-24cb-43ed-920b-47caed15465f</string> | ||
348 | </map> | ||
349 | <key>BuildPrefs_Item</key> | ||
350 | <map> | ||
351 | <key>Comment</key> | ||
352 | <string>item added to new object created</string> | ||
353 | <key>Persist</key> | ||
354 | <integer>1</integer> | ||
355 | <key>Type</key> | ||
356 | <string>String</string> | ||
357 | <key>Value</key> | ||
358 | <string></string> | ||
359 | </map> | ||
360 | <key>BuildPrefs_Alpha</key> | ||
361 | <map> | ||
362 | <key>Comment</key> | ||
363 | <string>Default Alpha For New Objects to be created</string> | ||
364 | <key>Persist</key> | ||
365 | <integer>1</integer> | ||
366 | <key>Type</key> | ||
367 | <string>F32</string> | ||
368 | <key>Value</key> | ||
369 | <real>0.0</real> | ||
370 | </map> | ||
371 | <key>BuildPrefs_Glow</key> | ||
372 | <map> | ||
373 | <key>Comment</key> | ||
374 | <string>Default Glow For New Objects to be created</string> | ||
375 | <key>Persist</key> | ||
376 | <integer>1</integer> | ||
377 | <key>Type</key> | ||
378 | <string>F32</string> | ||
379 | <key>Value</key> | ||
380 | <real>0.0</real> | ||
381 | </map> | ||
382 | <key>BuildPrefs_FullBright</key> | ||
383 | <map> | ||
384 | <key>Comment</key> | ||
385 | <string>Default Setting For New Objects to be created, whether textures are full bright</string> | ||
386 | <key>Persist</key> | ||
387 | <integer>1</integer> | ||
388 | <key>Type</key> | ||
389 | <string>Boolean</string> | ||
390 | <key>Value</key> | ||
391 | <integer>0</integer> | ||
392 | </map> | ||
393 | <key>BuildPrefs_Shiny</key> | ||
394 | <map> | ||
395 | <key>Comment</key> | ||
396 | <string>Shiny level used as 'Default' for new objects created</string> | ||
397 | <key>Persist</key> | ||
398 | <integer>1</integer> | ||
399 | <key>Type</key> | ||
400 | <string>String</string> | ||
401 | <key>Value</key> | ||
402 | <string>None</string> | ||
403 | </map> | ||
404 | <key>BuildPrefs_PivotX</key> | ||
405 | <map> | ||
406 | <key>Comment</key> | ||
407 | <string>Pivot point on the X axis</string> | ||
408 | <key>Persist</key> | ||
409 | <integer>1</integer> | ||
410 | <key>Type</key> | ||
411 | <string>F32</string> | ||
412 | <key>Value</key> | ||
413 | <real>50</real> | ||
414 | </map> | ||
415 | <key>BuildPrefs_PivotY</key> | ||
416 | <map> | ||
417 | <key>Comment</key> | ||
418 | <string>Pivot point on the Y axis</string> | ||
419 | <key>Persist</key> | ||
420 | <integer>1</integer> | ||
421 | <key>Type</key> | ||
422 | <string>F32</string> | ||
423 | <key>Value</key> | ||
424 | <real>50</real> | ||
425 | </map> | ||
426 | <key>BuildPrefs_PivotZ</key> | ||
427 | <map> | ||
428 | <key>Comment</key> | ||
429 | <string>Pivot point on the Z axis</string> | ||
430 | <key>Persist</key> | ||
431 | <integer>1</integer> | ||
432 | <key>Type</key> | ||
433 | <string>F32</string> | ||
434 | <key>Value</key> | ||
435 | <real>50</real> | ||
436 | </map> | ||
437 | <key>BuildPrefs_PivotIsPercent</key> | ||
438 | <map> | ||
439 | <key>Comment</key> | ||
440 | <string>Consider the Pivot points values as a percentage</string> | ||
441 | <key>Persist</key> | ||
442 | <integer>1</integer> | ||
443 | <key>Type</key> | ||
444 | <string>Boolean</string> | ||
445 | <key>Value</key> | ||
446 | <integer>1</integer> | ||
447 | </map> | ||
448 | <key>BuildPrefs_ActualRoot</key> | ||
449 | <map> | ||
450 | <key>Comment</key> | ||
451 | <string>Show the axis on the actual root of a linkset instead of mass center</string> | ||
452 | <key>Persist</key> | ||
453 | <integer>1</integer> | ||
454 | <key>Type</key> | ||
455 | <string>Boolean</string> | ||
456 | <key>Value</key> | ||
457 | <integer>0</integer> | ||
458 | </map> | ||
459 | |||
460 | <!-- End build--> | ||
461 | |||
462 | <!-- Begin IM auto-response --> | ||
463 | |||
464 | <key>InstantMessageResponseFriends</key> | ||
465 | <map> | ||
466 | <key>Comment</key> | ||
467 | <string>Whether to auto-respond to non-friends</string> | ||
468 | <key>Persist</key> | ||
469 | <integer>1</integer> | ||
470 | <key>Type</key> | ||
471 | <string>Boolean</string> | ||
472 | <key>Value</key> | ||
473 | <integer>0</integer> | ||
474 | </map> | ||
475 | <key>InstantMessageResponseMuted</key> | ||
476 | <map> | ||
477 | <key>Comment</key> | ||
478 | <string>Whether to auto-respond to muted people</string> | ||
479 | <key>Persist</key> | ||
480 | <integer>1</integer> | ||
481 | <key>Type</key> | ||
482 | <string>Boolean</string> | ||
483 | <key>Value</key> | ||
484 | <integer>0</integer> | ||
485 | </map> | ||
486 | <key>InstantMessageResponseAnyone</key> | ||
487 | <map> | ||
488 | <key>Comment</key> | ||
489 | <string>Whether to auto-respond to anyone</string> | ||
490 | <key>Persist</key> | ||
491 | <integer>1</integer> | ||
492 | <key>Type</key> | ||
493 | <string>Boolean</string> | ||
494 | <key>Value</key> | ||
495 | <integer>0</integer> | ||
496 | </map> | ||
497 | <key>InstantMessageShowResponded</key> | ||
498 | <map> | ||
499 | <key>Comment</key> | ||
500 | <string>Whether to hide IMs entirely from those you have chosen to send autoresponses</string> | ||
501 | <key>Persist</key> | ||
502 | <integer>1</integer> | ||
503 | <key>Type</key> | ||
504 | <string>Boolean</string> | ||
505 | <key>Value</key> | ||
506 | <integer>0</integer> | ||
507 | </map> | ||
508 | <key>InstantMessageShowOnTyping</key> | ||
509 | <map> | ||
510 | <key>Comment</key> | ||
511 | <string>Whether to perform the autorespond the moment they begin to type instead of waiting for a actual message</string> | ||
512 | <key>Persist</key> | ||
513 | <integer>1</integer> | ||
514 | <key>Type</key> | ||
515 | <string>Boolean</string> | ||
516 | <key>Value</key> | ||
517 | <integer>0</integer> | ||
518 | </map> | ||
519 | <key>InstantMessageResponseRepeat</key> | ||
520 | <map> | ||
521 | <key>Comment</key> | ||
522 | <string>Whether to keep on resending the autoresponse every line they send</string> | ||
523 | <key>Persist</key> | ||
524 | <integer>1</integer> | ||
525 | <key>Type</key> | ||
526 | <string>Boolean</string> | ||
527 | <key>Value</key> | ||
528 | <integer>0</integer> | ||
529 | </map> | ||
530 | <key>InstantMessageResponseItem</key> | ||
531 | <map> | ||
532 | <key>Comment</key> | ||
533 | <string>Whether to send a item along with the autoresponse</string> | ||
534 | <key>Persist</key> | ||
535 | <integer>1</integer> | ||
536 | <key>Type</key> | ||
537 | <string>Boolean</string> | ||
538 | <key>Value</key> | ||
539 | <integer>0</integer> | ||
540 | </map> | ||
541 | <key>InstantMessageResponse</key> | ||
542 | <map> | ||
543 | <key>Comment</key> | ||
544 | <string>Auto response to instant messages</string> | ||
545 | <key>Persist</key> | ||
546 | <integer>1</integer> | ||
547 | <key>Type</key> | ||
548 | <string>String</string> | ||
549 | <key>Value</key> | ||
550 | <string>This is an autoresponse!</string> | ||
551 | </map> | ||
552 | <key>InstantMessageResponseItemData</key> | ||
553 | <map> | ||
554 | <key>Comment</key> | ||
555 | <string>UUID</string> | ||
556 | <key>Persist</key> | ||
557 | <integer>1</integer> | ||
558 | <key>Type</key> | ||
559 | <string>String</string> | ||
560 | <key>Value</key> | ||
561 | <string></string> | ||
562 | </map> | ||
563 | <key>InstantMessageAnnounceIncoming</key> | ||
564 | <map> | ||
565 | <key>Comment</key> | ||
566 | <string>Open a new IM tab when another person begins typing to you and announce that they are doing so.</string> | ||
567 | <key>Persist</key> | ||
568 | <integer>1</integer> | ||
569 | <key>Type</key> | ||
570 | <string>Boolean</string> | ||
571 | <key>Value</key> | ||
572 | <integer>0</integer> | ||
573 | </map> | ||
574 | <key>InstantMessageAnnounceStealFocus</key> | ||
575 | <map> | ||
576 | <key>Comment</key> | ||
577 | <string>Steal focus when opening new IM tab due to other person begins first typing this session</string> | ||
578 | <key>Persist</key> | ||
579 | <integer>1</integer> | ||
580 | <key>Type</key> | ||
581 | <string>Boolean</string> | ||
582 | <key>Value</key> | ||
583 | <integer>1</integer> | ||
584 | </map> | ||
585 | |||
586 | <!-- End IM auto-response --> | ||
587 | |||
3 | <key>RLVaLoginLastLocation</key> | 588 | <key>RLVaLoginLastLocation</key> |
4 | <map> | 589 | <map> |
5 | <key>Comment</key> | 590 | <key>Comment</key> |
diff --git a/linden/indra/newview/floaterao.cpp b/linden/indra/newview/floaterao.cpp new file mode 100644 index 0000000..b084189 --- /dev/null +++ b/linden/indra/newview/floaterao.cpp | |||
@@ -0,0 +1,1439 @@ | |||
1 | /** | ||
2 | * @file llfloaterao.cpp | ||
3 | * @brief clientside animation overrider | ||
4 | * by Skills Hak | ||
5 | */ | ||
6 | |||
7 | #include "llviewerprecompiledheaders.h" | ||
8 | |||
9 | #include "floaterao.h" | ||
10 | |||
11 | #include "llagent.h" | ||
12 | #include "llvoavatar.h" | ||
13 | #include "llanimationstates.h" | ||
14 | #include "lluictrlfactory.h" | ||
15 | #include "llinventoryview.h" | ||
16 | #include "llstartup.h" | ||
17 | #include "llpreviewnotecard.h" | ||
18 | #include "llviewertexteditor.h" | ||
19 | #include "llcheckboxctrl.h" | ||
20 | #include "llcombobox.h" | ||
21 | #include "llspinctrl.h" | ||
22 | // Uncomment and use instead if we ever add the chatbar as a command line - MC | ||
23 | //#include "chatbar_as_cmdline.h" | ||
24 | #include "llfloaterchat.h" | ||
25 | #include "llfirstuse.h" | ||
26 | |||
27 | #include "llinventory.h" | ||
28 | #include "llinventoryview.h" | ||
29 | #include "roles_constants.h" | ||
30 | #include "llviewerregion.h" | ||
31 | |||
32 | #include "llpanelinventory.h" | ||
33 | #include "llinventorybridge.h" | ||
34 | |||
35 | #include "llboost.h" | ||
36 | #include <boost/regex.hpp> | ||
37 | |||
38 | // Uncomment and use instead if we ever add the chatbar as a command line - MC | ||
39 | //void cmdline_printchat(std::string message); | ||
40 | void cmdline_printchat(std::string message) | ||
41 | { | ||
42 | LLChat chat; | ||
43 | chat.mText = message; | ||
44 | chat.mSourceType = CHAT_SOURCE_SYSTEM; | ||
45 | LLFloaterChat::addChat(chat, FALSE, FALSE); | ||
46 | } | ||
47 | |||
48 | |||
49 | class AONotecardCallback : public LLInventoryCallback | ||
50 | { | ||
51 | public: | ||
52 | AONotecardCallback(std::string &filename) | ||
53 | { | ||
54 | mFileName = filename; | ||
55 | } | ||
56 | |||
57 | void fire(const LLUUID &inv_item) | ||
58 | { | ||
59 | if (!mFileName.empty()) | ||
60 | { | ||
61 | LLPreviewNotecard* nc; | ||
62 | nc = (LLPreviewNotecard*)LLPreview::find(inv_item); | ||
63 | if(nc) | ||
64 | { | ||
65 | nc->open(); | ||
66 | LLTextEditor *text = nc->getEditor(); | ||
67 | if (text) | ||
68 | { | ||
69 | text->setText(LLStringUtil::null); | ||
70 | text->makePristine(); | ||
71 | |||
72 | std::ifstream file(mFileName.c_str()); | ||
73 | |||
74 | std::string line; | ||
75 | while (!file.eof()) | ||
76 | { | ||
77 | getline(file, line); | ||
78 | line = line + "\n"; | ||
79 | text->insertText(line); | ||
80 | } | ||
81 | file.close(); | ||
82 | |||
83 | nc->saveIfNeeded(); | ||
84 | } | ||
85 | } | ||
86 | } | ||
87 | } | ||
88 | |||
89 | private: | ||
90 | std::string mFileName; | ||
91 | }; | ||
92 | |||
93 | |||
94 | // ------------------------------------------------------- | ||
95 | |||
96 | AOStandTimer* mAOStandTimer; | ||
97 | |||
98 | AOStandTimer::AOStandTimer() : LLEventTimer( gSavedSettings.getF32("AOStandInterval") ) | ||
99 | { | ||
100 | AOStandTimer::tick(); | ||
101 | } | ||
102 | AOStandTimer::~AOStandTimer() | ||
103 | { | ||
104 | // llinfos << "dead" << llendl; | ||
105 | } | ||
106 | void AOStandTimer::reset() | ||
107 | { | ||
108 | mPeriod = gSavedSettings.getF32("AOStandInterval"); | ||
109 | mEventTimer.reset(); | ||
110 | // llinfos << "reset" << llendl; | ||
111 | } | ||
112 | BOOL AOStandTimer::tick() | ||
113 | { | ||
114 | LLFloaterAO::stand_iterator++; | ||
115 | // llinfos << "tick" << llendl; | ||
116 | LLFloaterAO::ChangeStand(); | ||
117 | return FALSE; | ||
118 | // return LLFloaterAO::ChangeStand(); //timer is always active now .. | ||
119 | } | ||
120 | |||
121 | // ------------------------------------------------------- | ||
122 | |||
123 | AOInvTimer::AOInvTimer() : LLEventTimer( (F32)1.0 ) | ||
124 | { | ||
125 | } | ||
126 | AOInvTimer::~AOInvTimer() | ||
127 | { | ||
128 | } | ||
129 | BOOL AOInvTimer::tick() | ||
130 | { | ||
131 | if (!(gSavedSettings.getBOOL("AOEnabled"))) return TRUE; | ||
132 | if(LLStartUp::getStartupState() >= STATE_INVENTORY_SEND) | ||
133 | { | ||
134 | if(gInventory.isEverythingFetched()) | ||
135 | { | ||
136 | // cmdline_printchat("Inventory fetched, loading AO."); | ||
137 | LLFloaterAO::init(); | ||
138 | return TRUE; | ||
139 | } | ||
140 | } | ||
141 | return FALSE; | ||
142 | } | ||
143 | // NC DROP ------------------------------------------------------- | ||
144 | |||
145 | class AONoteCardDropTarget : public LLView | ||
146 | { | ||
147 | public: | ||
148 | AONoteCardDropTarget(const std::string& name, const LLRect& rect, void (*callback)(LLViewerInventoryItem*)); | ||
149 | ~AONoteCardDropTarget(); | ||
150 | |||
151 | void doDrop(EDragAndDropType cargo_type, void* cargo_data); | ||
152 | |||
153 | // | ||
154 | // LLView functionality | ||
155 | virtual BOOL handleDragAndDrop(S32 x, S32 y, MASK mask, BOOL drop, | ||
156 | EDragAndDropType cargo_type, | ||
157 | void* cargo_data, | ||
158 | EAcceptance* accept, | ||
159 | std::string& tooltip_msg); | ||
160 | protected: | ||
161 | void (*mDownCallback)(LLViewerInventoryItem*); | ||
162 | }; | ||
163 | |||
164 | |||
165 | AONoteCardDropTarget::AONoteCardDropTarget(const std::string& name, const LLRect& rect, | ||
166 | void (*callback)(LLViewerInventoryItem*)) : | ||
167 | LLView(name, rect, NOT_MOUSE_OPAQUE, FOLLOWS_ALL), | ||
168 | mDownCallback(callback) | ||
169 | { | ||
170 | } | ||
171 | |||
172 | AONoteCardDropTarget::~AONoteCardDropTarget() | ||
173 | { | ||
174 | } | ||
175 | |||
176 | void AONoteCardDropTarget::doDrop(EDragAndDropType cargo_type, void* cargo_data) | ||
177 | { | ||
178 | // llinfos << "AONoteCardDropTarget::doDrop()" << llendl; | ||
179 | } | ||
180 | |||
181 | BOOL AONoteCardDropTarget::handleDragAndDrop(S32 x, S32 y, MASK mask, BOOL drop, | ||
182 | EDragAndDropType cargo_type, | ||
183 | void* cargo_data, | ||
184 | EAcceptance* accept, | ||
185 | std::string& tooltip_msg) | ||
186 | { | ||
187 | BOOL handled = FALSE; | ||
188 | if(getParent()) | ||
189 | { | ||
190 | handled = TRUE; | ||
191 | LLViewerInventoryItem* inv_item = (LLViewerInventoryItem*)cargo_data; | ||
192 | if(gInventory.getItem(inv_item->getUUID())) | ||
193 | { | ||
194 | *accept = ACCEPT_YES_COPY_SINGLE; | ||
195 | if(drop) | ||
196 | { | ||
197 | mDownCallback(inv_item); | ||
198 | } | ||
199 | } | ||
200 | else | ||
201 | { | ||
202 | *accept = ACCEPT_NO; | ||
203 | } | ||
204 | } | ||
205 | return handled; | ||
206 | } | ||
207 | |||
208 | AONoteCardDropTarget * LLFloaterAO::mAOItemDropTarget; | ||
209 | |||
210 | |||
211 | // STUFF ------------------------------------------------------- | ||
212 | |||
213 | int LLFloaterAO::mAnimationState = 0; | ||
214 | int LLFloaterAO::stand_iterator = 0; | ||
215 | |||
216 | LLUUID LLFloaterAO::invfolderid = LLUUID::null; | ||
217 | LLUUID LLFloaterAO::mCurrentStandId = LLUUID::null; | ||
218 | |||
219 | LLComboBox* mcomboBox_stands; | ||
220 | LLComboBox* mcomboBox_walks; | ||
221 | LLComboBox* mcomboBox_runs; | ||
222 | LLComboBox* mcomboBox_jumps; | ||
223 | LLComboBox* mcomboBox_sits; | ||
224 | LLComboBox* mcomboBox_gsits; | ||
225 | LLComboBox* mcomboBox_crouchs; | ||
226 | LLComboBox* mcomboBox_cwalks; | ||
227 | LLComboBox* mcomboBox_falls; | ||
228 | LLComboBox* mcomboBox_hovers; | ||
229 | LLComboBox* mcomboBox_flys; | ||
230 | LLComboBox* mcomboBox_flyslows; | ||
231 | LLComboBox* mcomboBox_flyups; | ||
232 | LLComboBox* mcomboBox_flydowns; | ||
233 | LLComboBox* mcomboBox_lands; | ||
234 | LLComboBox* mcomboBox_standups; | ||
235 | LLComboBox* mcomboBox_prejumps; | ||
236 | |||
237 | struct struct_overrides | ||
238 | { | ||
239 | LLUUID orig_id; | ||
240 | LLUUID ao_id; | ||
241 | int state; | ||
242 | }; | ||
243 | std::vector<struct_overrides> mAOOverrides; | ||
244 | |||
245 | struct struct_stands | ||
246 | { | ||
247 | LLUUID ao_id; | ||
248 | std::string anim_name; | ||
249 | }; | ||
250 | std::vector<struct_stands> mAOStands; | ||
251 | |||
252 | struct struct_tokens | ||
253 | { | ||
254 | std::string token; | ||
255 | int state; | ||
256 | }; | ||
257 | std::vector<struct_tokens> mAOTokens; | ||
258 | |||
259 | LLFloaterAO* LLFloaterAO::sInstance = NULL; | ||
260 | |||
261 | LLFloaterAO::LLFloaterAO() | ||
262 | :LLFloater(std::string("floater_ao")) | ||
263 | { | ||
264 | // init(); | ||
265 | llassert_always(sInstance == NULL); | ||
266 | LLUICtrlFactory::getInstance()->buildFloater(this, "floater_ao.xml"); | ||
267 | sInstance = this; | ||
268 | } | ||
269 | |||
270 | LLFloaterAO::~LLFloaterAO() | ||
271 | { | ||
272 | sInstance=NULL; | ||
273 | mcomboBox_stands = 0; | ||
274 | mcomboBox_walks = 0; | ||
275 | mcomboBox_runs = 0; | ||
276 | mcomboBox_jumps = 0; | ||
277 | mcomboBox_sits = 0; | ||
278 | mcomboBox_gsits = 0; | ||
279 | mcomboBox_crouchs = 0; | ||
280 | mcomboBox_cwalks = 0; | ||
281 | mcomboBox_falls = 0; | ||
282 | mcomboBox_hovers = 0; | ||
283 | mcomboBox_flys = 0; | ||
284 | mcomboBox_flyslows = 0; | ||
285 | mcomboBox_flyups = 0; | ||
286 | mcomboBox_flydowns = 0; | ||
287 | mcomboBox_lands = 0; | ||
288 | mcomboBox_standups = 0; | ||
289 | mcomboBox_prejumps = 0; | ||
290 | delete mAOItemDropTarget; | ||
291 | mAOItemDropTarget = NULL; | ||
292 | // llinfos << "floater destroyed" << llendl; | ||
293 | } | ||
294 | |||
295 | void LLFloaterAO::show(void*) | ||
296 | { | ||
297 | if (!sInstance) | ||
298 | { | ||
299 | sInstance = new LLFloaterAO(); | ||
300 | updateLayout(sInstance); | ||
301 | init(); | ||
302 | |||
303 | sInstance->open(); | ||
304 | } | ||
305 | else | ||
306 | { | ||
307 | sInstance->close(); | ||
308 | } | ||
309 | LLFirstUse::useAO(); | ||
310 | } | ||
311 | |||
312 | bool LLFloaterAO::getInstance() | ||
313 | { | ||
314 | if (sInstance) | ||
315 | return true; | ||
316 | else | ||
317 | return false; | ||
318 | } | ||
319 | |||
320 | BOOL LLFloaterAO::postBuild() | ||
321 | { | ||
322 | LLView *target_view = getChild<LLView>("ao_notecard"); | ||
323 | if(target_view) | ||
324 | { | ||
325 | if (mAOItemDropTarget) | ||
326 | { | ||
327 | delete mAOItemDropTarget; | ||
328 | } | ||
329 | mAOItemDropTarget = new AONoteCardDropTarget("drop target", target_view->getRect(), AOItemDrop);//, mAvatarID); | ||
330 | addChild(mAOItemDropTarget); | ||
331 | } | ||
332 | if(LLStartUp::getStartupState() == STATE_STARTED) | ||
333 | { | ||
334 | LLUUID itemidimport = (LLUUID)gSavedPerAccountSettings.getString("AOConfigNotecardID"); | ||
335 | LLViewerInventoryItem* itemimport = gInventory.getItem(itemidimport); | ||
336 | if(itemimport) | ||
337 | { | ||
338 | childSetValue("ao_nc_text","Currently set to: "+itemimport->getName()); | ||
339 | } | ||
340 | else if(itemidimport.isNull()) | ||
341 | { | ||
342 | childSetValue("ao_nc_text","Currently not set"); | ||
343 | } | ||
344 | else | ||
345 | { | ||
346 | childSetValue("ao_nc_text","Currently set to a item not on this account"); | ||
347 | } | ||
348 | } | ||
349 | else | ||
350 | { | ||
351 | childSetValue("ao_nc_text","Not logged in"); | ||
352 | } | ||
353 | childSetAction("more_btn", onClickMore, this); | ||
354 | childSetAction("less_btn", onClickLess, this); | ||
355 | |||
356 | childSetAction("reloadcard",onClickReloadCard,this); | ||
357 | childSetAction("opencard",onClickOpenCard,this); | ||
358 | childSetAction("newcard",onClickNewCard,this); | ||
359 | childSetAction("prevstand",onClickPrevStand,this); | ||
360 | childSetAction("nextstand",onClickNextStand,this); | ||
361 | childSetCommitCallback("AOEnabled",onClickToggleAO); | ||
362 | childSetCommitCallback("AOSitsEnabled",onClickToggleSits); | ||
363 | childSetCommitCallback("standtime",onSpinnerCommit); | ||
364 | mcomboBox_stands = getChild<LLComboBox>("stands"); | ||
365 | mcomboBox_walks = getChild<LLComboBox>("walks"); | ||
366 | mcomboBox_runs = getChild<LLComboBox>("runs"); | ||
367 | mcomboBox_jumps = getChild<LLComboBox>("jumps"); | ||
368 | mcomboBox_sits = getChild<LLComboBox>("sits"); | ||
369 | mcomboBox_gsits = getChild<LLComboBox>("gsits"); | ||
370 | mcomboBox_crouchs = getChild<LLComboBox>("crouchs"); | ||
371 | mcomboBox_cwalks = getChild<LLComboBox>("cwalks"); | ||
372 | mcomboBox_falls = getChild<LLComboBox>("falls"); | ||
373 | mcomboBox_hovers = getChild<LLComboBox>("hovers"); | ||
374 | mcomboBox_flys = getChild<LLComboBox>("flys"); | ||
375 | mcomboBox_flyslows = getChild<LLComboBox>("flyslows"); | ||
376 | mcomboBox_flyups = getChild<LLComboBox>("flyups"); | ||
377 | mcomboBox_flydowns = getChild<LLComboBox>("flydowns"); | ||
378 | mcomboBox_lands = getChild<LLComboBox>("lands"); | ||
379 | mcomboBox_standups = getChild<LLComboBox>("standups"); | ||
380 | mcomboBox_prejumps = getChild<LLComboBox>("prejumps"); | ||
381 | getChild<LLComboBox>("stands")->setCommitCallback(onComboBoxCommit); | ||
382 | getChild<LLComboBox>("walks")->setCommitCallback(onComboBoxCommit); | ||
383 | getChild<LLComboBox>("runs")->setCommitCallback(onComboBoxCommit); | ||
384 | getChild<LLComboBox>("jumps")->setCommitCallback(onComboBoxCommit); | ||
385 | getChild<LLComboBox>("sits")->setCommitCallback(onComboBoxCommit); | ||
386 | getChild<LLComboBox>("gsits")->setCommitCallback(onComboBoxCommit); | ||
387 | getChild<LLComboBox>("crouchs")->setCommitCallback(onComboBoxCommit); | ||
388 | getChild<LLComboBox>("cwalks")->setCommitCallback(onComboBoxCommit); | ||
389 | getChild<LLComboBox>("falls")->setCommitCallback(onComboBoxCommit); | ||
390 | getChild<LLComboBox>("hovers")->setCommitCallback(onComboBoxCommit); | ||
391 | getChild<LLComboBox>("flys")->setCommitCallback(onComboBoxCommit); | ||
392 | getChild<LLComboBox>("flyslows")->setCommitCallback(onComboBoxCommit); | ||
393 | getChild<LLComboBox>("flyups")->setCommitCallback(onComboBoxCommit); | ||
394 | getChild<LLComboBox>("flydowns")->setCommitCallback(onComboBoxCommit); | ||
395 | getChild<LLComboBox>("lands")->setCommitCallback(onComboBoxCommit); | ||
396 | getChild<LLComboBox>("standups")->setCommitCallback(onComboBoxCommit); | ||
397 | getChild<LLComboBox>("prejumps")->setCommitCallback(onComboBoxCommit); | ||
398 | |||
399 | return TRUE; | ||
400 | } | ||
401 | |||
402 | void LLFloaterAO::onSpinnerCommit(LLUICtrl* ctrl, void* userdata) | ||
403 | { | ||
404 | LLSpinCtrl* spin = (LLSpinCtrl*) ctrl; | ||
405 | if(spin) | ||
406 | { | ||
407 | if (spin->getName() == "standtime") | ||
408 | { | ||
409 | if (mAOStandTimer) mAOStandTimer->reset(); | ||
410 | } | ||
411 | } | ||
412 | } | ||
413 | |||
414 | void LLFloaterAO::onComboBoxCommit(LLUICtrl* ctrl, void* userdata) | ||
415 | { | ||
416 | LLComboBox* box = (LLComboBox*)ctrl; | ||
417 | if(box) | ||
418 | { | ||
419 | if (box->getName() == "stands") | ||
420 | { | ||
421 | stand_iterator = box->getCurrentIndex(); | ||
422 | cmdline_printchat(llformat("Changing stand to %s.",mAOStands[stand_iterator].anim_name.c_str())); | ||
423 | ChangeStand(); | ||
424 | } | ||
425 | else | ||
426 | { | ||
427 | int state = STATE_AGENT_IDLE; | ||
428 | std::string stranim = box->getValue().asString(); | ||
429 | // llinfos << "state " << (gAgent.getAvatarObject()->mIsSitting) << " - " << getAnimationState() << llendl; | ||
430 | if (box->getName() == "walks") | ||
431 | { | ||
432 | gAgent.sendAnimationRequest(GetAnimID(ANIM_AGENT_WALK), ANIM_REQUEST_STOP); | ||
433 | gSavedPerAccountSettings.setString("AODefaultWalk",stranim); | ||
434 | state = STATE_AGENT_WALK; | ||
435 | } | ||
436 | else if (box->getName() == "runs") | ||
437 | { | ||
438 | gAgent.sendAnimationRequest(GetAnimID(ANIM_AGENT_RUN), ANIM_REQUEST_STOP); | ||
439 | gSavedPerAccountSettings.setString("AODefaultRun",stranim); | ||
440 | state = STATE_AGENT_RUN; | ||
441 | } | ||
442 | else if (box->getName() == "jumps") | ||
443 | { | ||
444 | gAgent.sendAnimationRequest(GetAnimID(ANIM_AGENT_JUMP), ANIM_REQUEST_STOP); | ||
445 | gSavedPerAccountSettings.setString("AODefaultJump",stranim); | ||
446 | state = STATE_AGENT_JUMP; | ||
447 | } | ||
448 | else if (box->getName() == "sits") | ||
449 | { | ||
450 | if (gAgent.getAvatarObject() && (gSavedSettings.getBOOL("AOEnabled")) && (gSavedSettings.getBOOL("AOSitsEnabled"))) | ||
451 | { | ||
452 | if ((gAgent.getAvatarObject()->mIsSitting) && (getAnimationState() == STATE_AGENT_SIT)) | ||
453 | { | ||
454 | // llinfos << "sitting " << GetAnimID(ANIM_AGENT_SIT) << " " << getAssetIDByName(stranim) << llendl; | ||
455 | gAgent.sendAnimationRequest(GetAnimID(ANIM_AGENT_SIT), ANIM_REQUEST_STOP); | ||
456 | gAgent.sendAnimationRequest(getAssetIDByName(stranim), ANIM_REQUEST_START); | ||
457 | } | ||
458 | } | ||
459 | gSavedPerAccountSettings.setString("AODefaultSit",stranim); | ||
460 | state = STATE_AGENT_SIT; | ||
461 | } | ||
462 | else if (box->getName() == "gsits") | ||
463 | { | ||
464 | // llinfos << "gsitting " << GetAnimID(ANIM_AGENT_SIT_GROUND) << " " << getAssetIDByName(stranim) << llendl; | ||
465 | if (gAgent.getAvatarObject()) | ||
466 | { | ||
467 | if ((gAgent.getAvatarObject()->mIsSitting) && (getAnimationState() == STATE_AGENT_GROUNDSIT)) | ||
468 | { | ||
469 | // llinfos << "gsitting " << GetAnimID(ANIM_AGENT_SIT_GROUND) << " " << getAssetIDByName(stranim) << llendl; | ||
470 | gAgent.sendAnimationRequest(GetAnimID(ANIM_AGENT_SIT_GROUND), ANIM_REQUEST_STOP); | ||
471 | gAgent.sendAnimationRequest(getAssetIDByName(stranim), ANIM_REQUEST_START); | ||
472 | } | ||
473 | } | ||
474 | gSavedPerAccountSettings.setString("AODefaultGroundSit",stranim); | ||
475 | state = STATE_AGENT_GROUNDSIT; | ||
476 | } | ||
477 | else if (box->getName() == "crouchs") | ||
478 | { | ||
479 | gAgent.sendAnimationRequest(GetAnimID(ANIM_AGENT_CROUCH), ANIM_REQUEST_STOP); | ||
480 | gSavedPerAccountSettings.setString("AODefaultCrouch",stranim); | ||
481 | state = STATE_AGENT_CROUCH; | ||
482 | } | ||
483 | else if (box->getName() == "cwalks") | ||
484 | { | ||
485 | gAgent.sendAnimationRequest(GetAnimID(ANIM_AGENT_CROUCHWALK), ANIM_REQUEST_STOP); | ||
486 | gSavedPerAccountSettings.setString("AODefaultCrouchWalk",stranim); | ||
487 | state = STATE_AGENT_CROUCHWALK; | ||
488 | } | ||
489 | else if (box->getName() == "falls") | ||
490 | { | ||
491 | gAgent.sendAnimationRequest(GetAnimID(ANIM_AGENT_FALLDOWN), ANIM_REQUEST_STOP); | ||
492 | gSavedPerAccountSettings.setString("AODefaultFall",stranim); | ||
493 | state = STATE_AGENT_FALLDOWN; | ||
494 | } | ||
495 | else if (box->getName() == "hovers") | ||
496 | { | ||
497 | gAgent.sendAnimationRequest(GetAnimID(ANIM_AGENT_HOVER), ANIM_REQUEST_STOP); | ||
498 | gSavedPerAccountSettings.setString("AODefaultHover",stranim); | ||
499 | state = STATE_AGENT_HOVER; | ||
500 | } | ||
501 | else if (box->getName() == "flys") | ||
502 | { | ||
503 | gAgent.sendAnimationRequest(GetAnimID(ANIM_AGENT_FLY), ANIM_REQUEST_STOP); | ||
504 | gSavedPerAccountSettings.setString("AODefaultFly",stranim); | ||
505 | state = STATE_AGENT_FLY; | ||
506 | } | ||
507 | else if (box->getName() == "flyslows") | ||
508 | { | ||
509 | gAgent.sendAnimationRequest(GetAnimID(ANIM_AGENT_FLYSLOW), ANIM_REQUEST_STOP); | ||
510 | gSavedPerAccountSettings.setString("AODefaultFlySlow",stranim); | ||
511 | state = STATE_AGENT_FLYSLOW; | ||
512 | } | ||
513 | else if (box->getName() == "flyups") | ||
514 | { | ||
515 | gAgent.sendAnimationRequest(GetAnimID(ANIM_AGENT_HOVER_UP), ANIM_REQUEST_STOP); | ||
516 | gSavedPerAccountSettings.setString("AODefaultFlyUp",stranim); | ||
517 | state = STATE_AGENT_HOVER_UP; | ||
518 | } | ||
519 | else if (box->getName() == "flydowns") | ||
520 | { | ||
521 | gAgent.sendAnimationRequest(GetAnimID(ANIM_AGENT_HOVER_DOWN), ANIM_REQUEST_STOP); | ||
522 | gSavedPerAccountSettings.setString("AODefaultFlyDown",stranim); | ||
523 | state = STATE_AGENT_HOVER_DOWN; | ||
524 | } | ||
525 | else if (box->getName() == "lands") | ||
526 | { | ||
527 | gAgent.sendAnimationRequest(GetAnimID(ANIM_AGENT_LAND), ANIM_REQUEST_STOP); | ||
528 | gSavedPerAccountSettings.setString("AODefaultLand",stranim); | ||
529 | state = STATE_AGENT_LAND; | ||
530 | } | ||
531 | else if (box->getName() == "standups") | ||
532 | { | ||
533 | gAgent.sendAnimationRequest(GetAnimID(ANIM_AGENT_STAND), ANIM_REQUEST_STOP); | ||
534 | gSavedPerAccountSettings.setString("AODefaultStandUp",stranim); | ||
535 | state = STATE_AGENT_STAND; | ||
536 | } | ||
537 | else if (box->getName() == "prejumps") | ||
538 | { | ||
539 | gAgent.sendAnimationRequest(GetAnimID(ANIM_AGENT_PRE_JUMP), ANIM_REQUEST_STOP); | ||
540 | gSavedPerAccountSettings.setString("AODefaultPreJump",stranim); | ||
541 | state = STATE_AGENT_PRE_JUMP; | ||
542 | } | ||
543 | for (std::vector<struct_overrides>::iterator iter = mAOOverrides.begin(); iter != mAOOverrides.end(); ++iter) | ||
544 | { | ||
545 | if (state == iter->state) | ||
546 | { | ||
547 | iter->ao_id = getAssetIDByName(stranim); | ||
548 | } | ||
549 | } | ||
550 | } | ||
551 | } | ||
552 | } | ||
553 | |||
554 | void LLFloaterAO::updateLayout(LLFloaterAO* floater) | ||
555 | { | ||
556 | if (floater) | ||
557 | { | ||
558 | BOOL advanced = gSavedSettings.getBOOL( "AOAdvanced"); | ||
559 | if (advanced) | ||
560 | { | ||
561 | floater->reshape(610,380); //view->getRect().getWidth(), view->getUIWinHeightLong()); | ||
562 | } | ||
563 | else | ||
564 | { | ||
565 | floater->reshape(200,380); //view->getRect().getWidth(), view->getUIWinHeightShort()); | ||
566 | } | ||
567 | |||
568 | floater->childSetVisible("more_btn", !advanced); | ||
569 | floater->childSetVisible("less_btn", advanced); | ||
570 | |||
571 | floater->childSetVisible("tabcontainer", advanced); | ||
572 | floater->childSetVisible("tabdefaultanims", advanced); | ||
573 | |||
574 | floater->childSetVisible("textdefaultwalk", advanced); | ||
575 | floater->childSetVisible("textdefaultrun", advanced); | ||
576 | floater->childSetVisible("textdefaultjump", advanced); | ||
577 | floater->childSetVisible("textdefaultsit", advanced); | ||
578 | floater->childSetVisible("textdefaultgsit", advanced); | ||
579 | floater->childSetVisible("textdefaultcrouch", advanced); | ||
580 | floater->childSetVisible("textdefaultcrouchwalk", advanced); | ||
581 | floater->childSetVisible("textdefaultfall", advanced); | ||
582 | floater->childSetVisible("textdefaulthover", advanced); | ||
583 | floater->childSetVisible("textdefaultfly", advanced); | ||
584 | floater->childSetVisible("textdefaultflyslow", advanced); | ||
585 | floater->childSetVisible("textdefaultflyup", advanced); | ||
586 | floater->childSetVisible("textdefaultflydown", advanced); | ||
587 | floater->childSetVisible("textdefaultland", advanced); | ||
588 | floater->childSetVisible("textdefaultstandup", advanced); | ||
589 | floater->childSetVisible("textdefaultprejump", advanced); | ||
590 | |||
591 | |||
592 | floater->childSetVisible("walks", advanced); | ||
593 | floater->childSetVisible("runs", advanced); | ||
594 | floater->childSetVisible("jumps", advanced); | ||
595 | floater->childSetVisible("sits", advanced); | ||
596 | floater->childSetVisible("gsits", advanced); | ||
597 | floater->childSetVisible("crouchs", advanced); | ||
598 | floater->childSetVisible("crouchwalks", advanced); | ||
599 | floater->childSetVisible("falls", advanced); | ||
600 | floater->childSetVisible("hovers", advanced); | ||
601 | floater->childSetVisible("flys", advanced); | ||
602 | floater->childSetVisible("flyslows", advanced); | ||
603 | floater->childSetVisible("flyups", advanced); | ||
604 | floater->childSetVisible("flydowns", advanced); | ||
605 | floater->childSetVisible("lands", advanced); | ||
606 | floater->childSetVisible("standups", advanced); | ||
607 | floater->childSetVisible("prejumps", advanced); | ||
608 | } | ||
609 | } | ||
610 | |||
611 | void LLFloaterAO::init() | ||
612 | { | ||
613 | mAOStands.clear(); | ||
614 | mAOTokens.clear(); | ||
615 | mAOOverrides.clear(); | ||
616 | |||
617 | struct_tokens tokenloader; | ||
618 | tokenloader.token = | ||
619 | tokenloader.token = "[ Sitting On Ground ]"; tokenloader.state = STATE_AGENT_GROUNDSIT; mAOTokens.push_back(tokenloader); // 0 | ||
620 | tokenloader.token = "[ Sitting ]"; tokenloader.state = STATE_AGENT_SIT; mAOTokens.push_back(tokenloader); // 1 | ||
621 | tokenloader.token = "[ Crouching ]"; tokenloader.state = STATE_AGENT_CROUCH; mAOTokens.push_back(tokenloader); // 3 | ||
622 | tokenloader.token = "[ Crouch Walking ]"; tokenloader.state = STATE_AGENT_CROUCHWALK; mAOTokens.push_back(tokenloader); // 4 | ||
623 | tokenloader.token = "[ Standing Up ]"; tokenloader.state = STATE_AGENT_STANDUP; mAOTokens.push_back(tokenloader); // 6 | ||
624 | tokenloader.token = "[ Falling ]"; tokenloader.state = STATE_AGENT_FALLDOWN; mAOTokens.push_back(tokenloader); // 7 | ||
625 | tokenloader.token = "[ Flying Down ]"; tokenloader.state = STATE_AGENT_HOVER_DOWN; mAOTokens.push_back(tokenloader); // 8 | ||
626 | tokenloader.token = "[ Flying Up ]"; tokenloader.state = STATE_AGENT_HOVER_UP; mAOTokens.push_back(tokenloader); // 9 | ||
627 | tokenloader.token = "[ Flying Slow ]"; tokenloader.state = STATE_AGENT_FLYSLOW; mAOTokens.push_back(tokenloader); // 10 | ||
628 | tokenloader.token = "[ Flying ]"; tokenloader.state = STATE_AGENT_FLY; mAOTokens.push_back(tokenloader); // 11 | ||
629 | tokenloader.token = "[ Hovering ]"; tokenloader.state = STATE_AGENT_HOVER; mAOTokens.push_back(tokenloader); // 12 | ||
630 | tokenloader.token = "[ Jumping ]"; tokenloader.state = STATE_AGENT_JUMP; mAOTokens.push_back(tokenloader); // 13 | ||
631 | tokenloader.token = "[ Pre Jumping ]"; tokenloader.state = STATE_AGENT_PRE_JUMP; mAOTokens.push_back(tokenloader); // 14 | ||
632 | tokenloader.token = "[ Running ]"; tokenloader.state = STATE_AGENT_RUN; mAOTokens.push_back(tokenloader); // 15 | ||
633 | tokenloader.token = "[ Turning Right ]"; tokenloader.state = STATE_AGENT_TURNRIGHT; mAOTokens.push_back(tokenloader); // 16 | ||
634 | tokenloader.token = "[ Turning Left ]"; tokenloader.state = STATE_AGENT_TURNLEFT; mAOTokens.push_back(tokenloader); // 17 | ||
635 | tokenloader.token = "[ Walking ]"; tokenloader.state = STATE_AGENT_WALK; mAOTokens.push_back(tokenloader); // 18 | ||
636 | tokenloader.token = "[ Landing ]"; tokenloader.state = STATE_AGENT_LAND; mAOTokens.push_back(tokenloader); // 19 | ||
637 | tokenloader.token = "[ Standing ]"; tokenloader.state = STATE_AGENT_STAND; mAOTokens.push_back(tokenloader); // 20 | ||
638 | tokenloader.token = "[ Swimming Down ]"; tokenloader.state = 999; mAOTokens.push_back(tokenloader); // 21 | ||
639 | tokenloader.token = "[ Swimming Up ]"; tokenloader.state = 999; mAOTokens.push_back(tokenloader); // 22 | ||
640 | tokenloader.token = "[ Swimming Forward ]"; tokenloader.state = 999; mAOTokens.push_back(tokenloader); // 23 | ||
641 | tokenloader.token = "[ Floating ]"; tokenloader.state = 999; mAOTokens.push_back(tokenloader); // 24 | ||
642 | |||
643 | struct_overrides overrideloader; | ||
644 | overrideloader.orig_id = ANIM_AGENT_WALK; overrideloader.ao_id = LLUUID::null; overrideloader.state = STATE_AGENT_WALK; mAOOverrides.push_back(overrideloader); | ||
645 | overrideloader.orig_id = ANIM_AGENT_RUN; overrideloader.ao_id = LLUUID::null; overrideloader.state = STATE_AGENT_RUN; mAOOverrides.push_back(overrideloader); | ||
646 | overrideloader.orig_id = ANIM_AGENT_PRE_JUMP; overrideloader.ao_id = LLUUID::null; overrideloader.state = STATE_AGENT_PRE_JUMP; mAOOverrides.push_back(overrideloader); | ||
647 | overrideloader.orig_id = ANIM_AGENT_JUMP; overrideloader.ao_id = LLUUID::null; overrideloader.state = STATE_AGENT_JUMP; mAOOverrides.push_back(overrideloader); | ||
648 | overrideloader.orig_id = ANIM_AGENT_TURNLEFT; overrideloader.ao_id = LLUUID::null; overrideloader.state = STATE_AGENT_TURNLEFT; mAOOverrides.push_back(overrideloader); | ||
649 | overrideloader.orig_id = ANIM_AGENT_TURNRIGHT; overrideloader.ao_id = LLUUID::null; overrideloader.state = STATE_AGENT_TURNRIGHT; mAOOverrides.push_back(overrideloader); | ||
650 | |||
651 | overrideloader.orig_id = ANIM_AGENT_SIT; overrideloader.ao_id = LLUUID::null; overrideloader.state = STATE_AGENT_SIT; mAOOverrides.push_back(overrideloader); | ||
652 | overrideloader.orig_id = ANIM_AGENT_SIT_FEMALE; overrideloader.ao_id = LLUUID::null; overrideloader.state = STATE_AGENT_SIT; mAOOverrides.push_back(overrideloader); | ||
653 | overrideloader.orig_id = ANIM_AGENT_SIT_GENERIC; overrideloader.ao_id = LLUUID::null; overrideloader.state = STATE_AGENT_SIT; mAOOverrides.push_back(overrideloader); | ||
654 | overrideloader.orig_id = ANIM_AGENT_SIT_GROUND; overrideloader.ao_id = LLUUID::null; overrideloader.state = STATE_AGENT_GROUNDSIT; mAOOverrides.push_back(overrideloader); | ||
655 | overrideloader.orig_id = ANIM_AGENT_SIT_GROUND_CONSTRAINED; overrideloader.ao_id = LLUUID::null; overrideloader.state = STATE_AGENT_GROUNDSIT; mAOOverrides.push_back(overrideloader); | ||
656 | |||
657 | overrideloader.orig_id = ANIM_AGENT_HOVER; overrideloader.ao_id = LLUUID::null; overrideloader.state = STATE_AGENT_HOVER; mAOOverrides.push_back(overrideloader); | ||
658 | overrideloader.orig_id = ANIM_AGENT_HOVER_DOWN; overrideloader.ao_id = LLUUID::null; overrideloader.state = STATE_AGENT_HOVER_DOWN; mAOOverrides.push_back(overrideloader); | ||
659 | overrideloader.orig_id = ANIM_AGENT_HOVER_UP; overrideloader.ao_id = LLUUID::null; overrideloader.state = STATE_AGENT_HOVER_UP; mAOOverrides.push_back(overrideloader); | ||
660 | |||
661 | overrideloader.orig_id = ANIM_AGENT_CROUCH; overrideloader.ao_id = LLUUID::null; overrideloader.state = STATE_AGENT_CROUCH; mAOOverrides.push_back(overrideloader); | ||
662 | overrideloader.orig_id = ANIM_AGENT_CROUCHWALK; overrideloader.ao_id = LLUUID::null; overrideloader.state = STATE_AGENT_CROUCHWALK; mAOOverrides.push_back(overrideloader); | ||
663 | |||
664 | overrideloader.orig_id = ANIM_AGENT_FALLDOWN; overrideloader.ao_id = LLUUID::null; overrideloader.state = STATE_AGENT_FALLDOWN; mAOOverrides.push_back(overrideloader); | ||
665 | overrideloader.orig_id = ANIM_AGENT_STANDUP; overrideloader.ao_id = LLUUID::null; overrideloader.state = STATE_AGENT_STANDUP; mAOOverrides.push_back(overrideloader); | ||
666 | overrideloader.orig_id = ANIM_AGENT_LAND; overrideloader.ao_id = LLUUID::null; overrideloader.state = STATE_AGENT_LAND; mAOOverrides.push_back(overrideloader); | ||
667 | |||
668 | overrideloader.orig_id = ANIM_AGENT_FLY; overrideloader.ao_id = LLUUID::null; overrideloader.state = STATE_AGENT_FLY; mAOOverrides.push_back(overrideloader); | ||
669 | overrideloader.orig_id = ANIM_AGENT_FLYSLOW; overrideloader.ao_id = LLUUID::null; overrideloader.state = STATE_AGENT_FLYSLOW; mAOOverrides.push_back(overrideloader); | ||
670 | |||
671 | BOOL success = TRUE; | ||
672 | |||
673 | if(LLStartUp::getStartupState() >= STATE_INVENTORY_SEND) | ||
674 | { | ||
675 | if(gInventory.isEverythingFetched()) | ||
676 | { | ||
677 | LLUUID configncitem = (LLUUID)gSavedPerAccountSettings.getString("AOConfigNotecardID"); | ||
678 | if (configncitem.notNull()) | ||
679 | { | ||
680 | success = FALSE; | ||
681 | const LLInventoryItem* item = gInventory.getItem(configncitem); | ||
682 | if(item) | ||
683 | { | ||
684 | if (gAgent.allowOperation(PERM_COPY, item->getPermissions(),GP_OBJECT_MANIPULATE) || gAgent.isGodlike()) | ||
685 | { | ||
686 | if(!item->getAssetUUID().isNull()) | ||
687 | { | ||
688 | LLUUID* new_uuid = new LLUUID(configncitem); | ||
689 | LLHost source_sim = LLHost::invalid; | ||
690 | invfolderid = item->getParentUUID(); | ||
691 | gAssetStorage->getInvItemAsset(source_sim, | ||
692 | gAgent.getID(), | ||
693 | gAgent.getSessionID(), | ||
694 | item->getPermissions().getOwner(), | ||
695 | LLUUID::null, | ||
696 | item->getUUID(), | ||
697 | item->getAssetUUID(), | ||
698 | item->getType(), | ||
699 | &onNotecardLoadComplete, | ||
700 | (void*)new_uuid, | ||
701 | TRUE); | ||
702 | success = TRUE; | ||
703 | } | ||
704 | } | ||
705 | } | ||
706 | } | ||
707 | } | ||
708 | } | ||
709 | |||
710 | if (!success) | ||
711 | { | ||
712 | cmdline_printchat("Could not read the specified Config Notecard"); | ||
713 | } | ||
714 | |||
715 | // mAnimationState = 0; | ||
716 | // mCurrentStandId = LLUUID::null; | ||
717 | // setAnimationState(STATE_AGENT_IDLE); | ||
718 | |||
719 | } | ||
720 | |||
721 | void LLFloaterAO::onClickMore(void* data) | ||
722 | { | ||
723 | gSavedSettings.setBOOL( "AOAdvanced", TRUE ); | ||
724 | updateLayout(sInstance); | ||
725 | } | ||
726 | void LLFloaterAO::onClickLess(void* data) | ||
727 | { | ||
728 | gSavedSettings.setBOOL( "AOAdvanced", FALSE ); | ||
729 | updateLayout(sInstance); | ||
730 | } | ||
731 | |||
732 | void LLFloaterAO::onClickToggleAO(LLUICtrl *, void*) | ||
733 | { | ||
734 | run(); | ||
735 | } | ||
736 | |||
737 | void LLFloaterAO::onClickToggleSits(LLUICtrl *, void*) | ||
738 | { | ||
739 | run(); | ||
740 | } | ||
741 | |||
742 | |||
743 | void LLFloaterAO::run() | ||
744 | { | ||
745 | setAnimationState(STATE_AGENT_IDLE); // reset state | ||
746 | int state = getAnimationState(); // check if sitting or hovering | ||
747 | if ((state == STATE_AGENT_IDLE) || (state == STATE_AGENT_STAND)) | ||
748 | { | ||
749 | if (gSavedSettings.getBOOL("AOEnabled")) | ||
750 | { | ||
751 | if (mAOStandTimer) | ||
752 | { | ||
753 | mAOStandTimer->reset(); | ||
754 | ChangeStand(); | ||
755 | } | ||
756 | else | ||
757 | { | ||
758 | mAOStandTimer = new AOStandTimer(); | ||
759 | } | ||
760 | } | ||
761 | else | ||
762 | { | ||
763 | stopMotion(getCurrentStandId(), FALSE, TRUE); //stop stand first then set state | ||
764 | setAnimationState(STATE_AGENT_IDLE); | ||
765 | } | ||
766 | } | ||
767 | else | ||
768 | { | ||
769 | if (state == STATE_AGENT_SIT) gAgent.sendAnimationRequest(GetAnimIDFromState(state), (gSavedSettings.getBOOL("AOEnabled") && gSavedSettings.getBOOL("AOSitsEnabled")) ? ANIM_REQUEST_START : ANIM_REQUEST_STOP); | ||
770 | else gAgent.sendAnimationRequest(GetAnimIDFromState(state), gSavedSettings.getBOOL("AOEnabled") ? ANIM_REQUEST_START : ANIM_REQUEST_STOP); | ||
771 | } | ||
772 | } | ||
773 | |||
774 | int LLFloaterAO::getAnimationState() | ||
775 | { | ||
776 | if (gAgent.getAvatarObject()) | ||
777 | { | ||
778 | if (gAgent.getAvatarObject()->mIsSitting) setAnimationState(STATE_AGENT_SIT); | ||
779 | else if (gAgent.getFlying()) setAnimationState(STATE_AGENT_HOVER); | ||
780 | } | ||
781 | return mAnimationState; | ||
782 | } | ||
783 | |||
784 | void LLFloaterAO::setAnimationState(const int state) | ||
785 | { | ||
786 | mAnimationState = state; | ||
787 | } | ||
788 | |||
789 | LLUUID LLFloaterAO::getCurrentStandId() | ||
790 | { | ||
791 | return mCurrentStandId; | ||
792 | } | ||
793 | |||
794 | void LLFloaterAO::setCurrentStandId(const LLUUID& id) | ||
795 | { | ||
796 | mCurrentStandId = id; | ||
797 | } | ||
798 | |||
799 | void LLFloaterAO::AOItemDrop(LLViewerInventoryItem* item) | ||
800 | { | ||
801 | gSavedPerAccountSettings.setString("AOConfigNotecardID", item->getUUID().asString()); | ||
802 | sInstance->childSetValue("ao_nc_text","Currently set to: "+item->getName()); | ||
803 | } | ||
804 | |||
805 | LLUUID LLFloaterAO::GetAnimID(const LLUUID& id) | ||
806 | { | ||
807 | for (std::vector<struct_overrides>::iterator iter = mAOOverrides.begin(); iter != mAOOverrides.end(); ++iter) | ||
808 | { | ||
809 | if (iter->orig_id == id) return iter->ao_id; | ||
810 | } | ||
811 | return LLUUID::null; | ||
812 | } | ||
813 | |||
814 | int LLFloaterAO::GetStateFromAnimID(const LLUUID& id) | ||
815 | { | ||
816 | for (std::vector<struct_overrides>::iterator iter = mAOOverrides.begin(); iter != mAOOverrides.end(); ++iter) | ||
817 | { | ||
818 | if (iter->orig_id == id) return iter->state; | ||
819 | } | ||
820 | return STATE_AGENT_IDLE; | ||
821 | } | ||
822 | |||
823 | LLUUID LLFloaterAO::GetAnimIDFromState(const int state) | ||
824 | { | ||
825 | for (std::vector<struct_overrides>::iterator iter = mAOOverrides.begin(); iter != mAOOverrides.end(); ++iter) | ||
826 | { | ||
827 | if (iter->state == state) return iter->ao_id; | ||
828 | } | ||
829 | return LLUUID::null; | ||
830 | } | ||
831 | |||
832 | int LLFloaterAO::GetStateFromToken(std::string strtoken) | ||
833 | { | ||
834 | for (std::vector<struct_tokens>::iterator iter = mAOTokens.begin(); iter != mAOTokens.end(); ++iter) | ||
835 | { | ||
836 | if (iter->token == strtoken) return iter->state; | ||
837 | } | ||
838 | return STATE_AGENT_IDLE; | ||
839 | } | ||
840 | |||
841 | void LLFloaterAO::onClickPrevStand(void* user_data) | ||
842 | { | ||
843 | if (!(mAOStands.size() > 0)) return; | ||
844 | stand_iterator=stand_iterator-1; | ||
845 | if (stand_iterator < 0) stand_iterator = int( mAOStands.size()-stand_iterator); | ||
846 | if (stand_iterator > int( mAOStands.size()-1)) stand_iterator = 0; | ||
847 | cmdline_printchat(llformat("Changing stand to %s.",mAOStands[stand_iterator].anim_name.c_str())); | ||
848 | ChangeStand(); | ||
849 | } | ||
850 | |||
851 | void LLFloaterAO::onClickNextStand(void* user_data) | ||
852 | { | ||
853 | if (!(mAOStands.size() > 0)) return; | ||
854 | stand_iterator=stand_iterator+1; | ||
855 | if (stand_iterator < 0) stand_iterator = int( mAOStands.size()-stand_iterator); | ||
856 | if (stand_iterator > int( mAOStands.size()-1)) stand_iterator = 0; | ||
857 | cmdline_printchat(llformat("Changing stand to %s.",mAOStands[stand_iterator].anim_name.c_str())); | ||
858 | ChangeStand(); | ||
859 | } | ||
860 | |||
861 | BOOL LLFloaterAO::ChangeStand() | ||
862 | { | ||
863 | if (gSavedSettings.getBOOL("AOEnabled")) | ||
864 | { | ||
865 | if (gAgent.getAvatarObject()) | ||
866 | { | ||
867 | if (gSavedSettings.getBOOL("AONoStandsInMouselook") && gAgent.cameraMouselook()) return FALSE; | ||
868 | |||
869 | if (gAgent.getAvatarObject()->mIsSitting) | ||
870 | { | ||
871 | // stopMotion(getCurrentStandId(), FALSE, TRUE); //stop stand first then set state | ||
872 | // if (getAnimationState() != STATE_AGENT_GROUNDSIT) setAnimationState(STATE_AGENT_SIT); | ||
873 | // setCurrentStandId(LLUUID::null); | ||
874 | return FALSE; | ||
875 | } | ||
876 | } | ||
877 | if ((getAnimationState() == STATE_AGENT_IDLE) || (getAnimationState() == STATE_AGENT_STAND))// stands have lowest priority | ||
878 | { | ||
879 | if (!(mAOStands.size() > 0)) return TRUE; | ||
880 | if (gSavedSettings.getBOOL("AOStandRandomize")) | ||
881 | { | ||
882 | stand_iterator = ll_rand(mAOStands.size()-1); | ||
883 | } | ||
884 | if (stand_iterator < 0) stand_iterator = int( mAOStands.size()-stand_iterator); | ||
885 | if (stand_iterator > int( mAOStands.size()-1)) stand_iterator = 0; | ||
886 | |||
887 | int stand_iterator_previous = stand_iterator -1; | ||
888 | |||
889 | if (stand_iterator_previous < 0) stand_iterator_previous = int( mAOStands.size()-1); | ||
890 | |||
891 | if (mAOStands[stand_iterator].ao_id.notNull()) | ||
892 | { | ||
893 | stopMotion(getCurrentStandId(), FALSE, TRUE); //stop stand first then set state | ||
894 | startMotion(mAOStands[stand_iterator].ao_id, 0, TRUE); | ||
895 | |||
896 | setAnimationState(STATE_AGENT_STAND); | ||
897 | setCurrentStandId(mAOStands[stand_iterator].ao_id); | ||
898 | if ((sInstance)&&(mcomboBox_stands)) mcomboBox_stands->selectNthItem(stand_iterator); | ||
899 | // llinfos << "changing stand to " << mAOStands[stand_iterator].anim_name << llendl; | ||
900 | return FALSE; | ||
901 | } | ||
902 | } | ||
903 | } | ||
904 | else | ||
905 | { | ||
906 | stopMotion(getCurrentStandId(), FALSE, TRUE); | ||
907 | return TRUE; //stop if ao is off | ||
908 | } | ||
909 | return TRUE; | ||
910 | } | ||
911 | |||
912 | |||
913 | BOOL LLFloaterAO::startMotion(const LLUUID& id, F32 time_offset, BOOL stand) | ||
914 | { | ||
915 | if (stand) | ||
916 | { | ||
917 | if (id.notNull()) | ||
918 | { | ||
919 | BOOL sitting = FALSE; | ||
920 | if (gAgent.getAvatarObject()) | ||
921 | { | ||
922 | sitting = gAgent.getAvatarObject()->mIsSitting; | ||
923 | } | ||
924 | if (sitting) return FALSE; | ||
925 | gAgent.sendAnimationRequest(id, ANIM_REQUEST_START); | ||
926 | return TRUE; | ||
927 | } | ||
928 | } | ||
929 | else | ||
930 | { | ||
931 | if (GetAnimID(id).notNull() && gSavedSettings.getBOOL("AOEnabled")) | ||
932 | { | ||
933 | stopMotion(getCurrentStandId(), FALSE, TRUE); //stop stand first then set state | ||
934 | setAnimationState(GetStateFromAnimID(id)); | ||
935 | |||
936 | // llinfos << " state " << getAnimationState() << " start anim " << id << " overriding with " << GetAnimID(id) << llendl; | ||
937 | if ((GetStateFromAnimID(id) == STATE_AGENT_SIT) && !(gSavedSettings.getBOOL("AOSitsEnabled"))) return TRUE; | ||
938 | gAgent.sendAnimationRequest(GetAnimID(id), ANIM_REQUEST_START); | ||
939 | return TRUE; | ||
940 | } | ||
941 | } | ||
942 | return FALSE; | ||
943 | } | ||
944 | |||
945 | BOOL LLFloaterAO::stopMotion(const LLUUID& id, BOOL stop_immediate, BOOL stand) | ||
946 | { | ||
947 | if (stand) | ||
948 | { | ||
949 | setAnimationState(STATE_AGENT_IDLE); | ||
950 | gAgent.sendAnimationRequest(id, ANIM_REQUEST_STOP); | ||
951 | return TRUE; | ||
952 | } | ||
953 | else | ||
954 | { | ||
955 | if (GetAnimID(id).notNull() && gSavedSettings.getBOOL("AOEnabled")) | ||
956 | { | ||
957 | // llinfos << " state " << getAnimationState() << "/" << GetStateFromAnimID(id) << "(now 0) stop anim " << id << " overriding with " << GetAnimID(id) << llendl; | ||
958 | if (getAnimationState() == GetStateFromAnimID(id)) | ||
959 | { | ||
960 | setAnimationState(STATE_AGENT_IDLE); | ||
961 | } | ||
962 | ChangeStand(); // startMotion(getCurrentStandId(), 0, TRUE); | ||
963 | gAgent.sendAnimationRequest(GetAnimID(id), ANIM_REQUEST_STOP); | ||
964 | return TRUE; | ||
965 | } | ||
966 | } | ||
967 | return FALSE; | ||
968 | } | ||
969 | |||
970 | void LLFloaterAO::onClickReloadCard(void* user_data) | ||
971 | { | ||
972 | if(gInventory.isEverythingFetched()) | ||
973 | { | ||
974 | LLFloaterAO::init(); | ||
975 | } | ||
976 | } | ||
977 | |||
978 | void LLFloaterAO::onClickOpenCard(void* user_data) | ||
979 | { | ||
980 | if(gInventory.isEverythingFetched()) | ||
981 | { | ||
982 | LLUUID configncitem = (LLUUID)gSavedPerAccountSettings.getString("AOConfigNotecardID"); | ||
983 | if (configncitem.notNull()) | ||
984 | { | ||
985 | const LLInventoryItem* item = gInventory.getItem(configncitem); | ||
986 | if(item) | ||
987 | { | ||
988 | if (gAgent.allowOperation(PERM_COPY, item->getPermissions(),GP_OBJECT_MANIPULATE) || gAgent.isGodlike()) | ||
989 | { | ||
990 | if(!item->getAssetUUID().isNull()) | ||
991 | open_notecard((LLViewerInventoryItem*)item, std::string("Note: ") + item->getName(), LLUUID::null, FALSE); | ||
992 | // open_notecard((LLViewerInventoryItem*)item, std::string("Note: ") + item->getName(), LLUUID::null, FALSE, LLUUID::null, FALSE); | ||
993 | } | ||
994 | } | ||
995 | } | ||
996 | } | ||
997 | } | ||
998 | |||
999 | void LLFloaterAO::onClickNewCard(void* user_data) | ||
1000 | { | ||
1001 | // load the template file from app_settings/ao_template.ini then | ||
1002 | // create a new properly-formatted notecard in the user's inventory | ||
1003 | std::string ao_template = gDirUtilp->getExpandedFilename(LL_PATH_APP_SETTINGS, "ao_template.ini"); | ||
1004 | if (!ao_template.empty()) | ||
1005 | { | ||
1006 | LLPointer<LLInventoryCallback> cb = new AONotecardCallback(ao_template); | ||
1007 | create_inventory_item(gAgent.getID(), gAgent.getSessionID(), | ||
1008 | LLUUID::null, LLTransactionID::tnull, "New AO Notecard", | ||
1009 | "Drop this notecard in your AO window to use", LLAssetType::AT_NOTECARD, | ||
1010 | LLInventoryType::IT_NOTECARD, NOT_WEARABLE, PERM_ALL, cb); | ||
1011 | } | ||
1012 | else | ||
1013 | { | ||
1014 | llwarns << "Can't find ao_template.ini in app_settings!" << llendl; | ||
1015 | } | ||
1016 | } | ||
1017 | |||
1018 | struct AOAssetInfo | ||
1019 | { | ||
1020 | std::string path; | ||
1021 | std::string name; | ||
1022 | }; | ||
1023 | |||
1024 | void LLFloaterAO::onNotecardLoadComplete(LLVFS *vfs,const LLUUID& asset_uuid,LLAssetType::EType type,void* user_data, S32 status, LLExtStat ext_status) | ||
1025 | { | ||
1026 | if(status == LL_ERR_NOERR) | ||
1027 | { | ||
1028 | S32 size = vfs->getSize(asset_uuid, type); | ||
1029 | U8* buffer = new U8[size]; | ||
1030 | vfs->getData(asset_uuid, type, buffer, 0, size); | ||
1031 | |||
1032 | if(type == LLAssetType::AT_NOTECARD) | ||
1033 | { | ||
1034 | LLViewerTextEditor* edit = new LLViewerTextEditor("",LLRect(0,0,0,0),S32_MAX,""); | ||
1035 | if(edit->importBuffer((char*)buffer, (S32)size)) | ||
1036 | { | ||
1037 | llinfos << "ao nc decode success" << llendl; | ||
1038 | std::string card = edit->getText(); | ||
1039 | edit->die(); | ||
1040 | |||
1041 | if (mcomboBox_stands) | ||
1042 | { | ||
1043 | mcomboBox_stands->clear(); | ||
1044 | mcomboBox_stands->removeall(); | ||
1045 | } | ||
1046 | if (mcomboBox_walks) mcomboBox_walks->clear(); | ||
1047 | if (mcomboBox_runs) mcomboBox_runs->clear(); | ||
1048 | if (mcomboBox_jumps) mcomboBox_jumps->clear(); | ||
1049 | if (mcomboBox_sits) mcomboBox_sits->clear(); | ||
1050 | if (mcomboBox_gsits) mcomboBox_gsits->clear(); | ||
1051 | if (mcomboBox_crouchs) mcomboBox_cwalks->clear(); | ||
1052 | if (mcomboBox_cwalks) mcomboBox_cwalks->clear(); | ||
1053 | if (mcomboBox_falls) mcomboBox_falls->clear(); | ||
1054 | if (mcomboBox_hovers) mcomboBox_hovers->clear(); | ||
1055 | if (mcomboBox_flys) mcomboBox_flys->clear(); | ||
1056 | if (mcomboBox_flyslows) mcomboBox_flyslows->clear(); | ||
1057 | if (mcomboBox_flyups) mcomboBox_flyups->clear(); | ||
1058 | if (mcomboBox_flydowns) mcomboBox_flydowns->clear(); | ||
1059 | if (mcomboBox_lands) mcomboBox_lands->clear(); | ||
1060 | if (mcomboBox_standups) mcomboBox_standups->clear(); | ||
1061 | if (mcomboBox_prejumps) mcomboBox_prejumps->clear(); | ||
1062 | |||
1063 | |||
1064 | struct_stands loader; | ||
1065 | |||
1066 | typedef boost::tokenizer<boost::char_separator<char> > tokenizer; | ||
1067 | boost::char_separator<char> sep("\n"); | ||
1068 | tokenizer tokline(card, sep); | ||
1069 | |||
1070 | for (tokenizer::iterator line = tokline.begin(); line != tokline.end(); ++line) | ||
1071 | { | ||
1072 | // llinfos << *line << llendl; | ||
1073 | std::string strline(*line); | ||
1074 | // llinfos << "uncommented line: " << strline << llendl; | ||
1075 | |||
1076 | boost::regex type("^(\\s*)(\\[ )(.*)( \\])"); | ||
1077 | boost::smatch what; | ||
1078 | if (boost::regex_search(strline, what, type)) | ||
1079 | { | ||
1080 | // llinfos << "type: " << what[0] << llendl; | ||
1081 | // llinfos << "anims in type: " << boost::regex_replace(strline, type, "") << llendl; | ||
1082 | |||
1083 | boost::char_separator<char> sep("|,"); | ||
1084 | std::string stranimnames(boost::regex_replace(strline, type, "")); | ||
1085 | tokenizer tokanimnames(stranimnames, sep); | ||
1086 | for (tokenizer::iterator anim = tokanimnames.begin(); anim != tokanimnames.end(); ++anim) | ||
1087 | { | ||
1088 | std::string strtoken(what[0]); | ||
1089 | std::string stranim(*anim); | ||
1090 | LLUUID animid(getAssetIDByName(stranim)); | ||
1091 | |||
1092 | // llinfos << invfolderid.asString().c_str() << llendl; | ||
1093 | // llinfos << "anim: " << stranim.c_str() << " assetid: " << animid << llendl; | ||
1094 | if (!(animid.notNull())) | ||
1095 | { | ||
1096 | cmdline_printchat(llformat("Warning: animation '%s' could not be found (Section: %s).",stranim.c_str(),strtoken.c_str())); | ||
1097 | } | ||
1098 | else | ||
1099 | { | ||
1100 | switch(GetStateFromToken(strtoken.c_str())) | ||
1101 | { | ||
1102 | case STATE_AGENT_STAND: | ||
1103 | loader.ao_id = animid; loader.anim_name = stranim.c_str(); mAOStands.push_back(loader); | ||
1104 | if(mcomboBox_stands != NULL) mcomboBox_stands->add(stranim.c_str(), ADD_BOTTOM, TRUE); | ||
1105 | break; | ||
1106 | case STATE_AGENT_WALK: | ||
1107 | { | ||
1108 | if (sInstance && (mcomboBox_walks != NULL)) | ||
1109 | { | ||
1110 | //llinfos << "1 anim: " << stranim.c_str() << " assetid: " << animid << llendl; | ||
1111 | if (!(mcomboBox_walks->selectByValue(stranim.c_str()))) mcomboBox_walks->add(stranim.c_str(), ADD_BOTTOM, TRUE); //check if exist | ||
1112 | } | ||
1113 | } | ||
1114 | break; | ||
1115 | case STATE_AGENT_RUN: | ||
1116 | { | ||
1117 | if (sInstance && (mcomboBox_runs != NULL)) | ||
1118 | { | ||
1119 | if (!(mcomboBox_runs->selectByValue(stranim.c_str()))) mcomboBox_runs->add(stranim.c_str(), ADD_BOTTOM, TRUE); //check if exist | ||
1120 | } | ||
1121 | } | ||
1122 | break; | ||
1123 | case STATE_AGENT_JUMP: | ||
1124 | { | ||
1125 | if (sInstance && (mcomboBox_jumps != NULL)) | ||
1126 | { | ||
1127 | if (!(mcomboBox_jumps->selectByValue(stranim.c_str()))) mcomboBox_jumps->add(stranim.c_str(), ADD_BOTTOM, TRUE); //check if exist | ||
1128 | } | ||
1129 | } | ||
1130 | break; | ||
1131 | case STATE_AGENT_SIT: | ||
1132 | { | ||
1133 | if (sInstance && (mcomboBox_sits != NULL)) | ||
1134 | { | ||
1135 | if (!(mcomboBox_sits->selectByValue(stranim.c_str()))) mcomboBox_sits->add(stranim.c_str(), ADD_BOTTOM, TRUE); //check if exist | ||
1136 | } | ||
1137 | } | ||
1138 | break; | ||
1139 | case STATE_AGENT_GROUNDSIT: | ||
1140 | { | ||
1141 | if (sInstance && (mcomboBox_gsits != NULL)) | ||
1142 | { | ||
1143 | if (!(mcomboBox_gsits->selectByValue(stranim.c_str()))) mcomboBox_gsits->add(stranim.c_str(), ADD_BOTTOM, TRUE); //check if exist | ||
1144 | } | ||
1145 | } | ||
1146 | break; | ||
1147 | case STATE_AGENT_CROUCH: | ||
1148 | { | ||
1149 | if (sInstance && (mcomboBox_crouchs != NULL)) | ||
1150 | { | ||
1151 | if (!(mcomboBox_crouchs->selectByValue(stranim.c_str()))) mcomboBox_crouchs->add(stranim.c_str(), ADD_BOTTOM, TRUE); //check if exist | ||
1152 | } | ||
1153 | } | ||
1154 | break; | ||
1155 | case STATE_AGENT_CROUCHWALK: | ||
1156 | { | ||
1157 | if (sInstance && (mcomboBox_cwalks != NULL)) | ||
1158 | { | ||
1159 | if (!(mcomboBox_cwalks->selectByValue(stranim.c_str()))) mcomboBox_cwalks->add(stranim.c_str(), ADD_BOTTOM, TRUE); //check if exist | ||
1160 | } | ||
1161 | } | ||
1162 | break; | ||
1163 | case STATE_AGENT_FALLDOWN: | ||
1164 | { | ||
1165 | if (sInstance && (mcomboBox_falls != NULL)) | ||
1166 | { | ||
1167 | if (!(mcomboBox_falls->selectByValue(stranim.c_str()))) mcomboBox_falls->add(stranim.c_str(), ADD_BOTTOM, TRUE); //check if exist | ||
1168 | } | ||
1169 | } | ||
1170 | break; | ||
1171 | case STATE_AGENT_HOVER: | ||
1172 | { | ||
1173 | if (sInstance && (mcomboBox_hovers != NULL)) | ||
1174 | { | ||
1175 | if (!(mcomboBox_hovers->selectByValue(stranim.c_str()))) mcomboBox_hovers->add(stranim.c_str(), ADD_BOTTOM, TRUE); //check if exist | ||
1176 | } | ||
1177 | } | ||
1178 | break; | ||
1179 | case STATE_AGENT_FLY: | ||
1180 | { | ||
1181 | if (sInstance && (mcomboBox_flys != NULL)) | ||
1182 | { | ||
1183 | if (!(mcomboBox_flys->selectByValue(stranim.c_str()))) mcomboBox_flys->add(stranim.c_str(), ADD_BOTTOM, TRUE); //check if exist | ||
1184 | } | ||
1185 | } | ||
1186 | break; | ||
1187 | case STATE_AGENT_FLYSLOW: | ||
1188 | { | ||
1189 | if (sInstance && (mcomboBox_flyslows != NULL)) | ||
1190 | { | ||
1191 | if (!(mcomboBox_flyslows->selectByValue(stranim.c_str()))) mcomboBox_flyslows->add(stranim.c_str(), ADD_BOTTOM, TRUE); //check if exist | ||
1192 | } | ||
1193 | } | ||
1194 | break; | ||
1195 | case STATE_AGENT_HOVER_UP: | ||
1196 | { | ||
1197 | if (sInstance && (mcomboBox_flyups != NULL)) | ||
1198 | { | ||
1199 | if (!(mcomboBox_flyups->selectByValue(stranim.c_str()))) mcomboBox_flyups->add(stranim.c_str(), ADD_BOTTOM, TRUE); //check if exist | ||
1200 | } | ||
1201 | } | ||
1202 | break; | ||
1203 | case STATE_AGENT_HOVER_DOWN: | ||
1204 | { | ||
1205 | if (sInstance && (mcomboBox_flydowns != NULL)) | ||
1206 | { | ||
1207 | if (!(mcomboBox_flydowns->selectByValue(stranim.c_str()))) mcomboBox_flydowns->add(stranim.c_str(), ADD_BOTTOM, TRUE); //check if exist | ||
1208 | } | ||
1209 | } | ||
1210 | break; | ||
1211 | case STATE_AGENT_LAND: | ||
1212 | { | ||
1213 | if (sInstance && (mcomboBox_lands != NULL)) | ||
1214 | { | ||
1215 | if (!(mcomboBox_lands->selectByValue(stranim.c_str()))) mcomboBox_lands->add(stranim.c_str(), ADD_BOTTOM, TRUE); //check if exist | ||
1216 | } | ||
1217 | } | ||
1218 | break; | ||
1219 | case STATE_AGENT_STANDUP: | ||
1220 | { | ||
1221 | if (sInstance && (mcomboBox_standups != NULL)) | ||
1222 | { | ||
1223 | if (!(mcomboBox_standups->selectByValue(stranim.c_str()))) mcomboBox_standups->add(stranim.c_str(), ADD_BOTTOM, TRUE); //check if exist | ||
1224 | } | ||
1225 | } | ||
1226 | break; | ||
1227 | case STATE_AGENT_PRE_JUMP: | ||
1228 | { | ||
1229 | if (sInstance && (mcomboBox_prejumps != NULL)) | ||
1230 | { | ||
1231 | if (!(mcomboBox_prejumps->selectByValue(stranim.c_str()))) mcomboBox_prejumps->add(stranim.c_str(), ADD_BOTTOM, TRUE); //check if exist | ||
1232 | } | ||
1233 | } | ||
1234 | break; | ||
1235 | } | ||
1236 | for (std::vector<struct_overrides>::iterator iter = mAOOverrides.begin(); iter != mAOOverrides.end(); ++iter) | ||
1237 | { | ||
1238 | if (GetStateFromToken(strtoken.c_str()) == iter->state) | ||
1239 | { | ||
1240 | iter->ao_id = animid; | ||
1241 | } | ||
1242 | } | ||
1243 | } | ||
1244 | } | ||
1245 | } | ||
1246 | } | ||
1247 | llinfos << "ao nc read sucess" << llendl; | ||
1248 | |||
1249 | for (std::vector<struct_overrides>::iterator iter = mAOOverrides.begin(); iter != mAOOverrides.end(); ++iter) | ||
1250 | { | ||
1251 | switch(iter->state) | ||
1252 | { | ||
1253 | |||
1254 | case STATE_AGENT_WALK: | ||
1255 | { | ||
1256 | std::string defaultanim = gSavedPerAccountSettings.getString("AODefaultWalk"); | ||
1257 | SetDefault(mcomboBox_walks,iter->ao_id,defaultanim); | ||
1258 | if (getAssetIDByName(defaultanim) != LLUUID::null) iter->ao_id = getAssetIDByName(defaultanim); | ||
1259 | } | ||
1260 | break; | ||
1261 | case STATE_AGENT_RUN: | ||
1262 | { | ||
1263 | std::string defaultanim = gSavedPerAccountSettings.getString("AODefaultRun"); | ||
1264 | SetDefault(mcomboBox_runs,iter->ao_id,defaultanim); | ||
1265 | if (getAssetIDByName(defaultanim) != LLUUID::null) iter->ao_id = getAssetIDByName(defaultanim); | ||
1266 | } | ||
1267 | break; | ||
1268 | case STATE_AGENT_JUMP: | ||
1269 | { | ||
1270 | std::string defaultanim = gSavedPerAccountSettings.getString("AODefaultJump"); | ||
1271 | SetDefault(mcomboBox_jumps,iter->ao_id,defaultanim); | ||
1272 | if (getAssetIDByName(defaultanim) != LLUUID::null) iter->ao_id = getAssetIDByName(defaultanim); | ||
1273 | } | ||
1274 | break; | ||
1275 | case STATE_AGENT_SIT: | ||
1276 | { | ||
1277 | std::string defaultanim = gSavedPerAccountSettings.getString("AODefaultSit"); | ||
1278 | SetDefault(mcomboBox_sits,iter->ao_id,defaultanim); | ||
1279 | if (getAssetIDByName(defaultanim) != LLUUID::null) iter->ao_id = getAssetIDByName(defaultanim); | ||
1280 | } | ||
1281 | break; | ||
1282 | case STATE_AGENT_CROUCH: | ||
1283 | { | ||
1284 | std::string defaultanim = gSavedPerAccountSettings.getString("AODefaultCrouch"); | ||
1285 | SetDefault(mcomboBox_crouchs,iter->ao_id,defaultanim); | ||
1286 | if (getAssetIDByName(defaultanim) != LLUUID::null) iter->ao_id = getAssetIDByName(defaultanim); | ||
1287 | } | ||
1288 | break; | ||
1289 | case STATE_AGENT_GROUNDSIT: | ||
1290 | { | ||
1291 | std::string defaultanim = gSavedPerAccountSettings.getString("AODefaultGroundSit"); | ||
1292 | SetDefault(mcomboBox_gsits,iter->ao_id,defaultanim); | ||
1293 | if (getAssetIDByName(defaultanim) != LLUUID::null) iter->ao_id = getAssetIDByName(defaultanim); | ||
1294 | } | ||
1295 | break; | ||
1296 | case STATE_AGENT_CROUCHWALK: | ||
1297 | { | ||
1298 | std::string defaultanim = gSavedPerAccountSettings.getString("AODefaultCrouchWalk"); | ||
1299 | SetDefault(mcomboBox_cwalks,iter->ao_id,defaultanim); | ||
1300 | if (getAssetIDByName(defaultanim) != LLUUID::null) iter->ao_id = getAssetIDByName(defaultanim); | ||
1301 | } | ||
1302 | break; | ||
1303 | case STATE_AGENT_FALLDOWN: | ||
1304 | { | ||
1305 | std::string defaultanim = gSavedPerAccountSettings.getString("AODefaultFall"); | ||
1306 | SetDefault(mcomboBox_falls,iter->ao_id,defaultanim); | ||
1307 | if (getAssetIDByName(defaultanim) != LLUUID::null) iter->ao_id = getAssetIDByName(defaultanim); | ||
1308 | } | ||
1309 | break; | ||
1310 | case STATE_AGENT_HOVER: | ||
1311 | { | ||
1312 | std::string defaultanim = gSavedPerAccountSettings.getString("AODefaultHover"); | ||
1313 | SetDefault(mcomboBox_hovers,iter->ao_id,defaultanim); | ||
1314 | if (getAssetIDByName(defaultanim) != LLUUID::null) iter->ao_id = getAssetIDByName(defaultanim); | ||
1315 | } | ||
1316 | break; | ||
1317 | case STATE_AGENT_FLY: | ||
1318 | { | ||
1319 | std::string defaultanim = gSavedPerAccountSettings.getString("AODefaultFly"); | ||
1320 | SetDefault(mcomboBox_flys,iter->ao_id,defaultanim); | ||
1321 | if (getAssetIDByName(defaultanim) != LLUUID::null) iter->ao_id = getAssetIDByName(defaultanim); | ||
1322 | } | ||
1323 | break; | ||
1324 | case STATE_AGENT_HOVER_UP: | ||
1325 | { | ||
1326 | std::string defaultanim = gSavedPerAccountSettings.getString("AODefaultFlyUp"); | ||
1327 | SetDefault(mcomboBox_flyups,iter->ao_id,defaultanim); | ||
1328 | if (getAssetIDByName(defaultanim) != LLUUID::null) iter->ao_id = getAssetIDByName(defaultanim); | ||
1329 | } | ||
1330 | break; | ||
1331 | case STATE_AGENT_FLYSLOW: | ||
1332 | { | ||
1333 | std::string defaultanim = gSavedPerAccountSettings.getString("AODefaultFlySlow"); | ||
1334 | SetDefault(mcomboBox_flyslows,iter->ao_id,defaultanim); | ||
1335 | if (getAssetIDByName(defaultanim) != LLUUID::null) iter->ao_id = getAssetIDByName(defaultanim); | ||
1336 | } | ||
1337 | break; | ||
1338 | case STATE_AGENT_HOVER_DOWN: | ||
1339 | { | ||
1340 | std::string defaultanim = gSavedPerAccountSettings.getString("AODefaultFlyDown"); | ||
1341 | SetDefault(mcomboBox_flydowns,iter->ao_id,defaultanim); | ||
1342 | if (getAssetIDByName(defaultanim) != LLUUID::null) iter->ao_id = getAssetIDByName(defaultanim); | ||
1343 | } | ||
1344 | break; | ||
1345 | case STATE_AGENT_LAND: | ||
1346 | { | ||
1347 | std::string defaultanim = gSavedPerAccountSettings.getString("AODefaultLand"); | ||
1348 | SetDefault(mcomboBox_lands,iter->ao_id,defaultanim); | ||
1349 | if (getAssetIDByName(defaultanim) != LLUUID::null) iter->ao_id = getAssetIDByName(defaultanim); | ||
1350 | } | ||
1351 | break; | ||
1352 | case STATE_AGENT_STANDUP: | ||
1353 | { | ||
1354 | std::string defaultanim = gSavedPerAccountSettings.getString("AODefaultStandUp"); | ||
1355 | SetDefault(mcomboBox_standups,iter->ao_id,defaultanim); | ||
1356 | if (getAssetIDByName(defaultanim) != LLUUID::null) iter->ao_id = getAssetIDByName(defaultanim); | ||
1357 | } | ||
1358 | break; | ||
1359 | case STATE_AGENT_PRE_JUMP: | ||
1360 | { | ||
1361 | std::string defaultanim = gSavedPerAccountSettings.getString("AODefaultPreJump"); | ||
1362 | SetDefault(mcomboBox_prejumps,iter->ao_id,defaultanim); | ||
1363 | if (getAssetIDByName(defaultanim) != LLUUID::null) iter->ao_id = getAssetIDByName(defaultanim); | ||
1364 | } | ||
1365 | break; | ||
1366 | } | ||
1367 | } | ||
1368 | run(); | ||
1369 | } | ||
1370 | else | ||
1371 | { | ||
1372 | llinfos << "ao nc decode error" << llendl; | ||
1373 | } | ||
1374 | } | ||
1375 | } | ||
1376 | else | ||
1377 | { | ||
1378 | llinfos << "ao nc read error" << llendl; | ||
1379 | } | ||
1380 | } | ||
1381 | |||
1382 | BOOL LLFloaterAO::SetDefault(void* userdata, LLUUID ao_id, std::string defaultanim) | ||
1383 | { | ||
1384 | if (sInstance && (userdata)) | ||
1385 | { | ||
1386 | LLComboBox *box = (LLComboBox *) userdata; | ||
1387 | if (LLUUID::null == ao_id) | ||
1388 | { | ||
1389 | box->clear(); | ||
1390 | box->removeall(); | ||
1391 | } | ||
1392 | else | ||
1393 | { | ||
1394 | box->selectByValue(defaultanim); | ||
1395 | } | ||
1396 | } | ||
1397 | return TRUE; | ||
1398 | } | ||
1399 | |||
1400 | class ObjectNameMatches : public LLInventoryCollectFunctor | ||
1401 | { | ||
1402 | public: | ||
1403 | ObjectNameMatches(std::string name) | ||
1404 | { | ||
1405 | sName = name; | ||
1406 | } | ||
1407 | virtual ~ObjectNameMatches() {} | ||
1408 | virtual bool operator()(LLInventoryCategory* cat, | ||
1409 | LLInventoryItem* item) | ||
1410 | { | ||
1411 | if(item) | ||
1412 | { | ||
1413 | if (item->getParentUUID() == LLFloaterAO::invfolderid) | ||
1414 | { | ||
1415 | return (item->getName() == sName); | ||
1416 | } | ||
1417 | return false; | ||
1418 | } | ||
1419 | return false; | ||
1420 | } | ||
1421 | private: | ||
1422 | std::string sName; | ||
1423 | }; | ||
1424 | |||
1425 | const LLUUID& LLFloaterAO::getAssetIDByName(const std::string& name) | ||
1426 | { | ||
1427 | if (name.empty() || !(gInventory.isEverythingFetched())) return LLUUID::null; | ||
1428 | |||
1429 | LLViewerInventoryCategory::cat_array_t cats; | ||
1430 | LLViewerInventoryItem::item_array_t items; | ||
1431 | ObjectNameMatches objectnamematches(name); | ||
1432 | gInventory.collectDescendentsIf(LLUUID::null,cats,items,FALSE,objectnamematches); | ||
1433 | |||
1434 | if (items.count()) | ||
1435 | { | ||
1436 | return items[0]->getAssetUUID(); | ||
1437 | } | ||
1438 | return LLUUID::null; | ||
1439 | }; | ||
diff --git a/linden/indra/newview/floaterao.h b/linden/indra/newview/floaterao.h new file mode 100644 index 0000000..204717f --- /dev/null +++ b/linden/indra/newview/floaterao.h | |||
@@ -0,0 +1,129 @@ | |||
1 | |||
2 | #ifndef LL_LLFLOATERAO_H | ||
3 | #define LL_LLFLOATERAO_H | ||
4 | |||
5 | #include "llfloater.h" | ||
6 | #include "llviewercontrol.h" | ||
7 | #include "llagent.h" | ||
8 | |||
9 | |||
10 | class AONoteCardDropTarget; | ||
11 | |||
12 | const int STATE_AGENT_IDLE = 0; | ||
13 | const int STATE_AGENT_WALK = 1; | ||
14 | const int STATE_AGENT_RUN = 2; | ||
15 | const int STATE_AGENT_STAND = 3; | ||
16 | |||
17 | const int STATE_AGENT_PRE_JUMP = 4; | ||
18 | const int STATE_AGENT_JUMP = 5; | ||
19 | const int STATE_AGENT_TURNLEFT = 6; | ||
20 | const int STATE_AGENT_TURNRIGHT = 7; | ||
21 | |||
22 | const int STATE_AGENT_SIT = 8; | ||
23 | const int STATE_AGENT_GROUNDSIT = 9; | ||
24 | |||
25 | const int STATE_AGENT_HOVER = 10; | ||
26 | const int STATE_AGENT_HOVER_DOWN = 11; | ||
27 | const int STATE_AGENT_HOVER_UP = 12; | ||
28 | |||
29 | const int STATE_AGENT_CROUCH = 13; | ||
30 | const int STATE_AGENT_CROUCHWALK = 14; | ||
31 | const int STATE_AGENT_FALLDOWN = 15; | ||
32 | const int STATE_AGENT_STANDUP = 16; | ||
33 | const int STATE_AGENT_LAND = 17; | ||
34 | |||
35 | const int STATE_AGENT_FLY = 18; | ||
36 | const int STATE_AGENT_FLYSLOW = 19; | ||
37 | |||
38 | |||
39 | |||
40 | |||
41 | |||
42 | class AOStandTimer : public LLEventTimer | ||
43 | { | ||
44 | public: | ||
45 | AOStandTimer(); | ||
46 | ~AOStandTimer(); | ||
47 | virtual BOOL tick(); | ||
48 | virtual void reset(); | ||
49 | }; | ||
50 | |||
51 | class AOInvTimer : public LLEventTimer | ||
52 | { | ||
53 | public: | ||
54 | AOInvTimer(); | ||
55 | ~AOInvTimer(); | ||
56 | BOOL tick(); | ||
57 | }; | ||
58 | |||
59 | class LLFloaterAO : public LLFloater | ||
60 | { | ||
61 | public: | ||
62 | |||
63 | LLFloaterAO(); | ||
64 | virtual BOOL postBuild(); | ||
65 | virtual ~LLFloaterAO(); | ||
66 | |||
67 | static void show(void*); | ||
68 | static void init(); | ||
69 | |||
70 | static void onClickToggleAO(LLUICtrl *, void*); | ||
71 | static void onClickToggleSits(LLUICtrl *, void*); | ||
72 | static void run(); | ||
73 | static void updateLayout(LLFloaterAO* floater); | ||
74 | |||
75 | static BOOL loadAnims(); | ||
76 | |||
77 | static int getAnimationState(); | ||
78 | static void setAnimationState(int state); | ||
79 | static void setStates(const LLUUID& id, BOOL start); | ||
80 | |||
81 | static LLUUID getCurrentStandId(); | ||
82 | static void setCurrentStandId(const LLUUID& id); | ||
83 | static int stand_iterator; | ||
84 | static BOOL ChangeStand(); | ||
85 | |||
86 | static BOOL startMotion(const LLUUID& id, F32 time_offset = 0.f, BOOL stand = FALSE); | ||
87 | static BOOL stopMotion(const LLUUID& id, BOOL stop_immediate, BOOL stand = FALSE); | ||
88 | |||
89 | static LLUUID GetAnimID(const LLUUID& id); | ||
90 | |||
91 | static int GetStateFromAnimID(const LLUUID& id); | ||
92 | static LLUUID GetAnimIDFromState(const int state); | ||
93 | static int GetStateFromToken(std::string strtoken); | ||
94 | |||
95 | static void onClickLess(void* data) ; | ||
96 | static void onClickMore(void* data) ; | ||
97 | |||
98 | static void onClickPrevStand(void* userdata); | ||
99 | static void onClickNextStand(void* userdata); | ||
100 | static void onClickReloadCard(void* userdata); | ||
101 | static void onClickOpenCard(void* userdata); | ||
102 | static void onClickNewCard(void* userdata); | ||
103 | |||
104 | static LLUUID invfolderid; | ||
105 | static const LLUUID& getAssetIDByName(const std::string& name); | ||
106 | |||
107 | static bool getInstance(); | ||
108 | |||
109 | private: | ||
110 | |||
111 | static LLFloaterAO* sInstance; | ||
112 | static int mAnimationState; | ||
113 | static LLUUID mCurrentStandId; | ||
114 | |||
115 | static AONoteCardDropTarget* mAOItemDropTarget; | ||
116 | static void AOItemDrop(LLViewerInventoryItem* item); | ||
117 | static void onSpinnerCommit(LLUICtrl* ctrl, void* userdata); | ||
118 | static void onComboBoxCommit(LLUICtrl* ctrl, void* userdata); | ||
119 | static BOOL SetDefault(void *userdata, LLUUID ao_id, std::string defaultanim); | ||
120 | |||
121 | BOOL mDirty; | ||
122 | |||
123 | protected: | ||
124 | |||
125 | static void onNotecardLoadComplete(LLVFS *vfs,const LLUUID& asset_uuid,LLAssetType::EType type,void* user_data, S32 status, LLExtStat ext_status); | ||
126 | |||
127 | }; | ||
128 | |||
129 | #endif \ No newline at end of file | ||
diff --git a/linden/indra/newview/floaterbusy.cpp b/linden/indra/newview/floaterbusy.cpp new file mode 100644 index 0000000..9188ae1 --- /dev/null +++ b/linden/indra/newview/floaterbusy.cpp | |||
@@ -0,0 +1,225 @@ | |||
1 | /** | ||
2 | * @file floaterbusy.cpp | ||
3 | * @brief Custom busy mode settings for Imprudence | ||
4 | * | ||
5 | * $LicenseInfo:firstyear=2009&license=viewergpl$ | ||
6 | * | ||
7 | * Copyright (c) 2010, McCabe Maxsted | ||
8 | * | ||
9 | * Imprudence Viewer Source Code | ||
10 | * The source code in this file ("Source Code") is provided to you | ||
11 | * under the terms of the GNU General Public License, version 2.0 | ||
12 | * ("GPL"). Terms of the GPL can be found in doc/GPL-license.txt in | ||
13 | * this distribution, or online at | ||
14 | * http://secondlifegrid.net/programs/open_source/licensing/gplv2 | ||
15 | * | ||
16 | * There are special exceptions to the terms and conditions of the GPL as | ||
17 | * it is applied to this Source Code. View the full text of the exception | ||
18 | * in the file doc/FLOSS-exception.txt in this software distribution, or | ||
19 | * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception | ||
20 | * | ||
21 | * By copying, modifying or distributing this software, you acknowledge | ||
22 | * that you have read and understood your obligations described above, | ||
23 | * and agree to abide by those obligations. | ||
24 | * | ||
25 | * ALL SOURCE CODE IS PROVIDED "AS IS." THE AUTHOR MAKES NO | ||
26 | * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY, | ||
27 | * COMPLETENESS OR PERFORMANCE. | ||
28 | * $/LicenseInfo$ | ||
29 | */ | ||
30 | |||
31 | #include "llviewerprecompiledheaders.h" | ||
32 | |||
33 | #include "floaterbusy.h" | ||
34 | |||
35 | #include "llinventorymodel.h" | ||
36 | #include "llstartup.h" | ||
37 | #include "lltexteditor.h" | ||
38 | #include "lluictrlfactory.h" | ||
39 | #include "llviewercontrol.h" | ||
40 | #include "llviewerinventory.h" | ||
41 | |||
42 | ////////begin drop utility///////////// | ||
43 | //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | ||
44 | // Class InvDropTarget | ||
45 | // | ||
46 | // This handy class is a simple way to drop something on another | ||
47 | // view. It handles drop events, always setting itself to the size of | ||
48 | // its parent. | ||
49 | // | ||
50 | // altered to support a callback so i can slap it in things and it just return the item to a func of my choice | ||
51 | //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | ||
52 | |||
53 | InvDropTarget::InvDropTarget(const std::string& name, const LLRect& rect, | ||
54 | void (*callback)(LLViewerInventoryItem*)) : | ||
55 | LLView(name, rect, NOT_MOUSE_OPAQUE, FOLLOWS_ALL), | ||
56 | mDownCallback(callback) | ||
57 | { | ||
58 | } | ||
59 | |||
60 | InvDropTarget::~InvDropTarget() | ||
61 | { | ||
62 | } | ||
63 | |||
64 | void InvDropTarget::doDrop(EDragAndDropType cargo_type, void* cargo_data) | ||
65 | { | ||
66 | llinfos << "InvDropTarget::doDrop()" << llendl; | ||
67 | } | ||
68 | |||
69 | BOOL InvDropTarget::handleDragAndDrop(S32 x, S32 y, MASK mask, BOOL drop, | ||
70 | EDragAndDropType cargo_type, | ||
71 | void* cargo_data, | ||
72 | EAcceptance* accept, | ||
73 | std::string& tooltip_msg) | ||
74 | { | ||
75 | BOOL handled = FALSE; | ||
76 | if (getParent()) | ||
77 | { | ||
78 | handled = TRUE; | ||
79 | // check the type | ||
80 | //switch(cargo_type) | ||
81 | //{ | ||
82 | //case DAD_ANIMATION: | ||
83 | //{ | ||
84 | LLViewerInventoryItem* inv_item = (LLViewerInventoryItem*)cargo_data; | ||
85 | if (gInventory.getItem(inv_item->getUUID())) | ||
86 | { | ||
87 | *accept = ACCEPT_YES_COPY_SINGLE; | ||
88 | if (drop) | ||
89 | { | ||
90 | //printchat("accepted"); | ||
91 | mDownCallback(inv_item); | ||
92 | } | ||
93 | } | ||
94 | else | ||
95 | { | ||
96 | *accept = ACCEPT_NO; | ||
97 | } | ||
98 | // break; | ||
99 | //} | ||
100 | //default: | ||
101 | // *accept = ACCEPT_NO; | ||
102 | // break; | ||
103 | //} | ||
104 | } | ||
105 | return handled; | ||
106 | } | ||
107 | ////////end drop utility/////////////// | ||
108 | |||
109 | // static | ||
110 | InvDropTarget * FloaterBusy::mObjectDropTarget; | ||
111 | |||
112 | FloaterBusy::FloaterBusy(const LLSD& seed) : LLFloater("floater_busy") | ||
113 | { | ||
114 | LLUICtrlFactory::getInstance()->buildFloater(this, "floater_busy.xml"); | ||
115 | } | ||
116 | |||
117 | BOOL FloaterBusy::postBuild() | ||
118 | { | ||
119 | childSetAction("btn_ok", onClickOK, this); | ||
120 | childSetAction("btn_cancel", onClickCancel, this); | ||
121 | |||
122 | LLView *target_view = getChild<LLView>("im_give_drop_target_rect"); | ||
123 | if (target_view) | ||
124 | { | ||
125 | if (mObjectDropTarget)//shouldn't happen | ||
126 | { | ||
127 | delete mObjectDropTarget; | ||
128 | } | ||
129 | mObjectDropTarget = new InvDropTarget("drop target", target_view->getRect(), IMAutoResponseItemDrop);//, mAvatarID); | ||
130 | addChild(mObjectDropTarget); | ||
131 | } | ||
132 | |||
133 | if (LLStartUp::getStartupState() == STATE_STARTED) | ||
134 | { | ||
135 | LLUUID itemid = (LLUUID)gSavedPerAccountSettings.getString("InstantMessageResponseItemData"); | ||
136 | LLViewerInventoryItem* item = gInventory.getItem(itemid); | ||
137 | |||
138 | if (item) | ||
139 | { | ||
140 | childSetValue("im_give_disp_rect_txt","Currently set to: "+item->getName()); | ||
141 | } | ||
142 | else if (itemid.isNull()) | ||
143 | { | ||
144 | childSetValue("im_give_disp_rect_txt","Currently not set"); | ||
145 | } | ||
146 | else | ||
147 | { | ||
148 | childSetValue("im_give_disp_rect_txt","Currently set to a item not on this account"); | ||
149 | } | ||
150 | } | ||
151 | else | ||
152 | { | ||
153 | childSetValue("im_give_disp_rect_txt","Not logged in"); | ||
154 | } | ||
155 | |||
156 | LLWString auto_response = utf8str_to_wstring( gSavedPerAccountSettings.getString("InstantMessageResponse") ); | ||
157 | LLWStringUtil::replaceChar(auto_response, '^', '\n'); | ||
158 | LLWStringUtil::replaceChar(auto_response, '%', ' '); | ||
159 | childSetText("im_response", wstring_to_utf8str(auto_response)); | ||
160 | |||
161 | childSetValue("InstantMessageResponseFriends", gSavedPerAccountSettings.getBOOL("InstantMessageResponseFriends")); | ||
162 | childSetValue("InstantMessageResponseMuted", gSavedPerAccountSettings.getBOOL("InstantMessageResponseMuted")); | ||
163 | childSetValue("InstantMessageResponseAnyone", gSavedPerAccountSettings.getBOOL("InstantMessageResponseAnyone")); | ||
164 | childSetValue("InstantMessageShowResponded", gSavedPerAccountSettings.getBOOL("InstantMessageShowResponded")); | ||
165 | childSetValue("InstantMessageShowOnTyping", gSavedPerAccountSettings.getBOOL("InstantMessageShowOnTyping")); | ||
166 | childSetValue("InstantMessageResponseRepeat", gSavedPerAccountSettings.getBOOL("InstantMessageResponseRepeat" )); | ||
167 | childSetValue("InstantMessageResponseItem", gSavedPerAccountSettings.getBOOL("InstantMessageResponseItem")); | ||
168 | childSetValue("InstantMessageAnnounceIncoming", gSavedPerAccountSettings.getBOOL("InstantMessageAnnounceIncoming")); | ||
169 | childSetValue("InstantMessageAnnounceStealFocus", gSavedPerAccountSettings.getBOOL("InstantMessageAnnounceStealFocus")); | ||
170 | |||
171 | return TRUE; | ||
172 | } | ||
173 | |||
174 | FloaterBusy::~FloaterBusy() | ||
175 | { | ||
176 | delete mObjectDropTarget; | ||
177 | mObjectDropTarget = NULL; | ||
178 | } | ||
179 | |||
180 | void FloaterBusy::IMAutoResponseItemDrop(LLViewerInventoryItem* item) | ||
181 | { | ||
182 | gSavedPerAccountSettings.setString("InstantMessageResponseItemData", item->getUUID().asString()); | ||
183 | FloaterBusy::getInstance()->childSetValue("im_give_disp_rect_txt","Currently set to: "+item->getName()); | ||
184 | } | ||
185 | |||
186 | // static | ||
187 | void FloaterBusy::onClickOK(void* userdata) | ||
188 | { | ||
189 | FloaterBusy* self = (FloaterBusy*)userdata; | ||
190 | self->apply(); | ||
191 | self->close(); | ||
192 | } | ||
193 | |||
194 | // static | ||
195 | void FloaterBusy::onClickCancel(void* userdata) | ||
196 | { | ||
197 | FloaterBusy* self = (FloaterBusy*)userdata; | ||
198 | self->cancel(); | ||
199 | } | ||
200 | |||
201 | void FloaterBusy::cancel() | ||
202 | { | ||
203 | close(); | ||
204 | } | ||
205 | |||
206 | void FloaterBusy::apply() | ||
207 | { | ||
208 | LLTextEditor* im = getChild<LLTextEditor>("im_response"); | ||
209 | LLWString im_response; | ||
210 | if (im) im_response = im->getWText(); | ||
211 | LLWStringUtil::replaceTabsWithSpaces(im_response, 4); | ||
212 | LLWStringUtil::replaceChar(im_response, '\n', '^'); | ||
213 | LLWStringUtil::replaceChar(im_response, ' ', '%'); | ||
214 | gSavedPerAccountSettings.setString("InstantMessageResponse", std::string(wstring_to_utf8str(im_response))); | ||
215 | gSavedPerAccountSettings.setBOOL("InstantMessageResponseMuted", childGetValue("InstantMessageResponseMuted").asBoolean()); | ||
216 | gSavedPerAccountSettings.setBOOL("InstantMessageResponseFriends", childGetValue("InstantMessageResponseFriends").asBoolean()); | ||
217 | gSavedPerAccountSettings.setBOOL("InstantMessageResponseMuted", childGetValue("InstantMessageResponseMuted").asBoolean()); | ||
218 | gSavedPerAccountSettings.setBOOL("InstantMessageResponseAnyone", childGetValue("InstantMessageResponseAnyone").asBoolean()); | ||
219 | gSavedPerAccountSettings.setBOOL("InstantMessageShowResponded", childGetValue("InstantMessageShowResponded").asBoolean()); | ||
220 | gSavedPerAccountSettings.setBOOL("InstantMessageShowOnTyping", childGetValue("InstantMessageShowOnTyping").asBoolean()); | ||
221 | gSavedPerAccountSettings.setBOOL("InstantMessageResponseRepeat", childGetValue("InstantMessageResponseRepeat").asBoolean()); | ||
222 | gSavedPerAccountSettings.setBOOL("InstantMessageResponseItem", childGetValue("InstantMessageResponseItem").asBoolean()); | ||
223 | gSavedPerAccountSettings.setBOOL("InstantMessageAnnounceIncoming", childGetValue("InstantMessageAnnounceIncoming").asBoolean()); | ||
224 | gSavedPerAccountSettings.setBOOL("InstantMessageAnnounceStealFocus", childGetValue("InstantMessageAnnounceStealFocus").asBoolean()); | ||
225 | } | ||
diff --git a/linden/indra/newview/floaterbusy.h b/linden/indra/newview/floaterbusy.h new file mode 100644 index 0000000..821d00d --- /dev/null +++ b/linden/indra/newview/floaterbusy.h | |||
@@ -0,0 +1,88 @@ | |||
1 | /** | ||
2 | * @file floaterbusy.h | ||
3 | * @brief Custom busy mode settings for Imprudence | ||
4 | * | ||
5 | * $LicenseInfo:firstyear=2009&license=viewergpl$ | ||
6 | * | ||
7 | * Copyright (c) 2010, McCabe Maxsted | ||
8 | * | ||
9 | * Imprudence Viewer Source Code | ||
10 | * The source code in this file ("Source Code") is provided to you | ||
11 | * under the terms of the GNU General Public License, version 2.0 | ||
12 | * ("GPL"). Terms of the GPL can be found in doc/GPL-license.txt in | ||
13 | * this distribution, or online at | ||
14 | * http://secondlifegrid.net/programs/open_source/licensing/gplv2 | ||
15 | * | ||
16 | * There are special exceptions to the terms and conditions of the GPL as | ||
17 | * it is applied to this Source Code. View the full text of the exception | ||
18 | * in the file doc/FLOSS-exception.txt in this software distribution, or | ||
19 | * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception | ||
20 | * | ||
21 | * By copying, modifying or distributing this software, you acknowledge | ||
22 | * that you have read and understood your obligations described above, | ||
23 | * and agree to abide by those obligations. | ||
24 | * | ||
25 | * ALL SOURCE CODE IS PROVIDED "AS IS." THE AUTHOR MAKES NO | ||
26 | * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY, | ||
27 | * COMPLETENESS OR PERFORMANCE. | ||
28 | * $/LicenseInfo$ | ||
29 | */ | ||
30 | |||
31 | #ifndef FLOATERBUSY_H | ||
32 | #define FLOATERBUSY_H | ||
33 | |||
34 | #include "llfloater.h" | ||
35 | |||
36 | class LLViewerInventoryItem; | ||
37 | |||
38 | ////////begin drop utility///////////// | ||
39 | //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | ||
40 | // Class InvDropTarget | ||
41 | // | ||
42 | // This handy class is a simple way to drop something on another | ||
43 | // view. It handles drop events, always setting itself to the size of | ||
44 | // its parent. | ||
45 | // | ||
46 | // altered to support a callback so i can slap it in things and it just return the item to a func of my choice | ||
47 | //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | ||
48 | class InvDropTarget : public LLView | ||
49 | { | ||
50 | public: | ||
51 | InvDropTarget(const std::string& name, const LLRect& rect, void (*callback)(LLViewerInventoryItem*)); | ||
52 | ~InvDropTarget(); | ||
53 | |||
54 | void doDrop(EDragAndDropType cargo_type, void* cargo_data); | ||
55 | |||
56 | // | ||
57 | // LLView functionality | ||
58 | virtual BOOL handleDragAndDrop(S32 x, S32 y, MASK mask, BOOL drop, | ||
59 | EDragAndDropType cargo_type, | ||
60 | void* cargo_data, | ||
61 | EAcceptance* accept, | ||
62 | std::string& tooltip_msg); | ||
63 | protected: | ||
64 | void (*mDownCallback)(LLViewerInventoryItem*); | ||
65 | }; | ||
66 | ////////end drop utility/////////////// | ||
67 | |||
68 | class FloaterBusy : public LLFloater, public LLFloaterSingleton<FloaterBusy> | ||
69 | { | ||
70 | public: | ||
71 | FloaterBusy(const LLSD& seed); | ||
72 | virtual ~FloaterBusy(); | ||
73 | |||
74 | BOOL postBuild(); | ||
75 | |||
76 | void apply(); | ||
77 | void cancel(); | ||
78 | |||
79 | private: | ||
80 | static InvDropTarget* mObjectDropTarget; | ||
81 | |||
82 | static void onClickOK(void* userdata); | ||
83 | static void onClickCancel(void* userdata); | ||
84 | |||
85 | static void IMAutoResponseItemDrop(LLViewerInventoryItem* item); | ||
86 | }; | ||
87 | |||
88 | #endif FLOATERBUSY_H | ||
diff --git a/linden/indra/newview/llagent.cpp b/linden/indra/newview/llagent.cpp index 0a1bd98..8c455a5 100644 --- a/linden/indra/newview/llagent.cpp +++ b/linden/indra/newview/llagent.cpp | |||
@@ -67,6 +67,7 @@ | |||
67 | #include "llface.h" | 67 | #include "llface.h" |
68 | #include "llfirstuse.h" | 68 | #include "llfirstuse.h" |
69 | #include "llfloater.h" | 69 | #include "llfloater.h" |
70 | #include "floaterao.h" | ||
70 | #include "llfloateractivespeakers.h" | 71 | #include "llfloateractivespeakers.h" |
71 | #include "llfloateravatarinfo.h" | 72 | #include "llfloateravatarinfo.h" |
72 | #include "llfloaterbuildoptions.h" | 73 | #include "llfloaterbuildoptions.h" |
@@ -79,6 +80,7 @@ | |||
79 | #include "llfloatermap.h" | 80 | #include "llfloatermap.h" |
80 | #include "llfloatermute.h" | 81 | #include "llfloatermute.h" |
81 | #include "llfloatersnapshot.h" | 82 | #include "llfloatersnapshot.h" |
83 | #include "llfloaterstats.h" | ||
82 | #include "llfloatertools.h" | 84 | #include "llfloatertools.h" |
83 | #include "llfloaterworldmap.h" | 85 | #include "llfloaterworldmap.h" |
84 | #include "llgroupmgr.h" | 86 | #include "llgroupmgr.h" |
@@ -2874,6 +2876,10 @@ static const LLFloaterView::skip_list_t& get_skip_list() | |||
2874 | { | 2876 | { |
2875 | static LLFloaterView::skip_list_t skip_list; | 2877 | static LLFloaterView::skip_list_t skip_list; |
2876 | skip_list.insert(LLFloaterMap::getInstance()); | 2878 | skip_list.insert(LLFloaterMap::getInstance()); |
2879 | if(gSavedSettings.getBOOL("ShowStatusBarInMouselook")) | ||
2880 | { | ||
2881 | skip_list.insert(LLFloaterStats::getInstance()); | ||
2882 | } | ||
2877 | return skip_list; | 2883 | return skip_list; |
2878 | } | 2884 | } |
2879 | 2885 | ||
@@ -4069,6 +4075,7 @@ void LLAgent::changeCameraToMouselook(BOOL animate) | |||
4069 | if( mCameraMode != CAMERA_MODE_MOUSELOOK ) | 4075 | if( mCameraMode != CAMERA_MODE_MOUSELOOK ) |
4070 | { | 4076 | { |
4071 | gFocusMgr.setKeyboardFocus( NULL ); | 4077 | gFocusMgr.setKeyboardFocus( NULL ); |
4078 | if (gSavedSettings.getBOOL("AONoStandsInMouselook")) LLFloaterAO::stopMotion(LLFloaterAO::getCurrentStandId(), FALSE,TRUE); | ||
4072 | 4079 | ||
4073 | mLastCameraMode = mCameraMode; | 4080 | mLastCameraMode = mCameraMode; |
4074 | mCameraMode = CAMERA_MODE_MOUSELOOK; | 4081 | mCameraMode = CAMERA_MODE_MOUSELOOK; |
@@ -4276,13 +4283,15 @@ void LLAgent::changeCameraToCustomizeAvatar(BOOL avatar_animate, BOOL camera_ani | |||
4276 | } | 4283 | } |
4277 | 4284 | ||
4278 | // [RLVa:KB] - Checked: 2009-07-10 (RLVa-1.0.0g) | 4285 | // [RLVa:KB] - Checked: 2009-07-10 (RLVa-1.0.0g) |
4286 | if(gSavedSettings.getBOOL("AppearanceForceStand")) | ||
4279 | if ( (gRlvHandler.hasBehaviour(RLV_BHVR_UNSIT)) && (mAvatarObject.notNull()) && (mAvatarObject->mIsSitting) ) | 4287 | if ( (gRlvHandler.hasBehaviour(RLV_BHVR_UNSIT)) && (mAvatarObject.notNull()) && (mAvatarObject->mIsSitting) ) |
4280 | { | 4288 | { |
4281 | return; | 4289 | return; |
4282 | } | 4290 | } |
4283 | // [/RLVa:KB] | 4291 | // [/RLVa:KB] |
4284 | 4292 | ||
4285 | setControlFlags(AGENT_CONTROL_STAND_UP); // force stand up | 4293 | if(gSavedSettings.getBOOL("AppearanceForceStand")) |
4294 | setControlFlags(AGENT_CONTROL_STAND_UP); // force stand up | ||
4286 | gViewerWindow->getWindow()->resetBusyCount(); | 4295 | gViewerWindow->getWindow()->resetBusyCount(); |
4287 | 4296 | ||
4288 | if (gFaceEditToolset) | 4297 | if (gFaceEditToolset) |
@@ -6030,7 +6039,7 @@ bool LLAgent::teleportCore(bool is_local) | |||
6030 | if(TELEPORT_NONE != mTeleportState) | 6039 | if(TELEPORT_NONE != mTeleportState) |
6031 | { | 6040 | { |
6032 | llwarns << "Attempt to teleport when already teleporting." << llendl; | 6041 | llwarns << "Attempt to teleport when already teleporting." << llendl; |
6033 | return false; | 6042 | //return false; //This seems to fix getting stuck in TPs in the first place. --Liny |
6034 | } | 6043 | } |
6035 | 6044 | ||
6036 | #if 0 | 6045 | #if 0 |
diff --git a/linden/indra/newview/llappviewer.cpp b/linden/indra/newview/llappviewer.cpp index 7aa3a05..a0700a9 100644 --- a/linden/indra/newview/llappviewer.cpp +++ b/linden/indra/newview/llappviewer.cpp | |||
@@ -51,6 +51,7 @@ | |||
51 | #include "llimpanel.h" | 51 | #include "llimpanel.h" |
52 | #include "llmimetypes.h" | 52 | #include "llmimetypes.h" |
53 | #include "llstartup.h" | 53 | #include "llstartup.h" |
54 | #include "llfloaterchat.h" | ||
54 | #include "llfocusmgr.h" | 55 | #include "llfocusmgr.h" |
55 | #include "llviewerjoystick.h" | 56 | #include "llviewerjoystick.h" |
56 | #include "llfloaterjoystick.h" | 57 | #include "llfloaterjoystick.h" |
@@ -1757,6 +1758,7 @@ bool LLAppViewer::initConfiguration() | |||
1757 | LLFirstUse::addConfigVariable("FirstTeleport"); | 1758 | LLFirstUse::addConfigVariable("FirstTeleport"); |
1758 | LLFirstUse::addConfigVariable("FirstOverrideKeys"); | 1759 | LLFirstUse::addConfigVariable("FirstOverrideKeys"); |
1759 | LLFirstUse::addConfigVariable("FirstAttach"); | 1760 | LLFirstUse::addConfigVariable("FirstAttach"); |
1761 | LLFirstUse::addConfigVariable("FirstAO"); | ||
1760 | LLFirstUse::addConfigVariable("FirstAppearance"); | 1762 | LLFirstUse::addConfigVariable("FirstAppearance"); |
1761 | LLFirstUse::addConfigVariable("FirstInventory"); | 1763 | LLFirstUse::addConfigVariable("FirstInventory"); |
1762 | LLFirstUse::addConfigVariable("FirstSandbox"); | 1764 | LLFirstUse::addConfigVariable("FirstSandbox"); |
@@ -3673,13 +3675,28 @@ void LLAppViewer::idleShutdown() | |||
3673 | && !logoutRequestSent()) | 3675 | && !logoutRequestSent()) |
3674 | { | 3676 | { |
3675 | static S32 total_uploads = 0; | 3677 | static S32 total_uploads = 0; |
3678 | static bool saving_msg = true; | ||
3676 | // Sometimes total upload count can change during logout. | 3679 | // Sometimes total upload count can change during logout. |
3677 | total_uploads = llmax(total_uploads, pending_uploads); | 3680 | total_uploads = llmax(total_uploads, pending_uploads); |
3678 | gViewerWindow->setShowProgress(TRUE); | 3681 | if (gSavedSettings.getBOOL("DisableLoginLogoutScreens")) |
3679 | S32 finished_uploads = total_uploads - pending_uploads; | 3682 | { |
3680 | F32 percent = 100.f * finished_uploads / total_uploads; | 3683 | if (saving_msg) |
3681 | gViewerWindow->setProgressPercent(percent); | 3684 | { |
3682 | gViewerWindow->setProgressString("Saving final data..."); | 3685 | LLChat chat; |
3686 | chat.mText = "Saving final data..."; | ||
3687 | chat.mSourceType = CHAT_SOURCE_SYSTEM; | ||
3688 | LLFloaterChat::addChat(chat); | ||
3689 | saving_msg = false; | ||
3690 | } | ||
3691 | } | ||
3692 | else | ||
3693 | { | ||
3694 | gViewerWindow->setShowProgress(TRUE); | ||
3695 | S32 finished_uploads = total_uploads - pending_uploads; | ||
3696 | F32 percent = 100.f * finished_uploads / total_uploads; | ||
3697 | gViewerWindow->setProgressPercent(percent); | ||
3698 | gViewerWindow->setProgressString("Saving final data..."); | ||
3699 | } | ||
3683 | return; | 3700 | return; |
3684 | } | 3701 | } |
3685 | 3702 | ||
@@ -3689,9 +3706,19 @@ void LLAppViewer::idleShutdown() | |||
3689 | sendLogoutRequest(); | 3706 | sendLogoutRequest(); |
3690 | 3707 | ||
3691 | // Wait for a LogoutReply message | 3708 | // Wait for a LogoutReply message |
3692 | gViewerWindow->setShowProgress(TRUE); | 3709 | if (gSavedSettings.getBOOL("DisableLoginLogoutScreens")) |
3693 | gViewerWindow->setProgressPercent(100.f); | 3710 | { |
3694 | gViewerWindow->setProgressString("Logging out..."); | 3711 | LLChat chat; |
3712 | chat.mText = "Logging out..."; | ||
3713 | chat.mSourceType = CHAT_SOURCE_SYSTEM; | ||
3714 | LLFloaterChat::addChat(chat); | ||
3715 | } | ||
3716 | else | ||
3717 | { | ||
3718 | gViewerWindow->setShowProgress(TRUE); | ||
3719 | gViewerWindow->setProgressPercent(100.f); | ||
3720 | gViewerWindow->setProgressString("Logging out..."); | ||
3721 | } | ||
3695 | return; | 3722 | return; |
3696 | } | 3723 | } |
3697 | 3724 | ||
diff --git a/linden/indra/newview/llchatbar.cpp b/linden/indra/newview/llchatbar.cpp index 1146c44..8401138 100644 --- a/linden/indra/newview/llchatbar.cpp +++ b/linden/indra/newview/llchatbar.cpp | |||
@@ -67,7 +67,6 @@ | |||
67 | #include "llinventorymodel.h" | 67 | #include "llinventorymodel.h" |
68 | #include "llmultigesture.h" | 68 | #include "llmultigesture.h" |
69 | #include "llui.h" | 69 | #include "llui.h" |
70 | #include "llviewermenu.h" | ||
71 | #include "lluictrlfactory.h" | 70 | #include "lluictrlfactory.h" |
72 | 71 | ||
73 | 72 | ||
diff --git a/linden/indra/newview/llcompilequeue.cpp b/linden/indra/newview/llcompilequeue.cpp index 0f60ad5..ed18a10 100644 --- a/linden/indra/newview/llcompilequeue.cpp +++ b/linden/indra/newview/llcompilequeue.cpp | |||
@@ -52,8 +52,6 @@ | |||
52 | #include "llviewerregion.h" | 52 | #include "llviewerregion.h" |
53 | #include "lscript_rt_interface.h" | 53 | #include "lscript_rt_interface.h" |
54 | #include "llviewercontrol.h" | 54 | #include "llviewercontrol.h" |
55 | #include "llviewerobject.h" | ||
56 | #include "llviewerregion.h" | ||
57 | #include "llresmgr.h" | 55 | #include "llresmgr.h" |
58 | #include "llbutton.h" | 56 | #include "llbutton.h" |
59 | #include "lldir.h" | 57 | #include "lldir.h" |
@@ -62,8 +60,6 @@ | |||
62 | #include "lluictrlfactory.h" | 60 | #include "lluictrlfactory.h" |
63 | #include "llselectmgr.h" | 61 | #include "llselectmgr.h" |
64 | 62 | ||
65 | #include "llselectmgr.h" | ||
66 | |||
67 | ///---------------------------------------------------------------------------- | 63 | ///---------------------------------------------------------------------------- |
68 | /// Local function declarations, constants, enums, and typedefs | 64 | /// Local function declarations, constants, enums, and typedefs |
69 | ///---------------------------------------------------------------------------- | 65 | ///---------------------------------------------------------------------------- |
diff --git a/linden/indra/newview/llconsole.cpp b/linden/indra/newview/llconsole.cpp index 74943a5..2379da3 100644 --- a/linden/indra/newview/llconsole.cpp +++ b/linden/indra/newview/llconsole.cpp | |||
@@ -35,7 +35,6 @@ | |||
35 | #include "llconsole.h" | 35 | #include "llconsole.h" |
36 | 36 | ||
37 | // linden library includes | 37 | // linden library includes |
38 | #include "llmath.h" | ||
39 | #include "llviewercontrol.h" | 38 | #include "llviewercontrol.h" |
40 | #include "llcriticaldamp.h" | 39 | #include "llcriticaldamp.h" |
41 | #include "llfontgl.h" | 40 | #include "llfontgl.h" |
diff --git a/linden/indra/newview/llfirstuse.cpp b/linden/indra/newview/llfirstuse.cpp index 877e586..bc982af 100644 --- a/linden/indra/newview/llfirstuse.cpp +++ b/linden/indra/newview/llfirstuse.cpp | |||
@@ -214,6 +214,17 @@ void LLFirstUse::useAttach() | |||
214 | } | 214 | } |
215 | 215 | ||
216 | // static | 216 | // static |
217 | void LLFirstUse::useAO() | ||
218 | { | ||
219 | if (gSavedSettings.getWarning("FirstAO")) | ||
220 | { | ||
221 | gSavedSettings.setWarning("FirstAO", FALSE); | ||
222 | |||
223 | LLNotifications::instance().add("FirstAO"); | ||
224 | } | ||
225 | } | ||
226 | |||
227 | // static | ||
217 | void LLFirstUse::useAppearance() | 228 | void LLFirstUse::useAppearance() |
218 | { | 229 | { |
219 | if (gSavedSettings.getWarning("FirstAppearance")) | 230 | if (gSavedSettings.getWarning("FirstAppearance")) |
diff --git a/linden/indra/newview/llfirstuse.h b/linden/indra/newview/llfirstuse.h index e327984..6467734 100644 --- a/linden/indra/newview/llfirstuse.h +++ b/linden/indra/newview/llfirstuse.h | |||
@@ -104,6 +104,7 @@ public: | |||
104 | static void useTeleport(); | 104 | static void useTeleport(); |
105 | static void useOverrideKeys(); | 105 | static void useOverrideKeys(); |
106 | static void useAttach(); | 106 | static void useAttach(); |
107 | static void useAO(); | ||
107 | static void useAppearance(); | 108 | static void useAppearance(); |
108 | static void useInventory(); | 109 | static void useInventory(); |
109 | static void useSandbox(); | 110 | static void useSandbox(); |
diff --git a/linden/indra/newview/llfloaterabout.cpp b/linden/indra/newview/llfloaterabout.cpp index 686353b..772428e 100644 --- a/linden/indra/newview/llfloaterabout.cpp +++ b/linden/indra/newview/llfloaterabout.cpp | |||
@@ -44,6 +44,7 @@ | |||
44 | #include "llimagej2c.h" | 44 | #include "llimagej2c.h" |
45 | #include "audioengine.h" | 45 | #include "audioengine.h" |
46 | 46 | ||
47 | #include "hippoGridManager.h" | ||
47 | #include "llviewertexteditor.h" | 48 | #include "llviewertexteditor.h" |
48 | #include "llviewercontrol.h" | 49 | #include "llviewercontrol.h" |
49 | #include "llagent.h" | 50 | #include "llagent.h" |
@@ -128,6 +129,8 @@ LLFloaterAbout::LLFloaterAbout() | |||
128 | 129 | ||
129 | std::string support; | 130 | std::string support; |
130 | support.append("\n\n"); | 131 | support.append("\n\n"); |
132 | support.append("Grid: " + gHippoGridManager->getConnectedGrid()->getGridName() | ||
133 | + " (" + gHippoGridManager->getConnectedGrid()->getGridNick() + ")\n\n"); | ||
131 | 134 | ||
132 | #if LL_MSVC | 135 | #if LL_MSVC |
133 | support.append(llformat("Built with MSVC version %d\n\n", _MSC_VER)); | 136 | support.append(llformat("Built with MSVC version %d\n\n", _MSC_VER)); |
diff --git a/linden/indra/newview/llfloaterbuildoptions.cpp b/linden/indra/newview/llfloaterbuildoptions.cpp index 3cd35db..372b1df 100644 --- a/linden/indra/newview/llfloaterbuildoptions.cpp +++ b/linden/indra/newview/llfloaterbuildoptions.cpp | |||
@@ -4,7 +4,8 @@ | |||
4 | * | 4 | * |
5 | * $LicenseInfo:firstyear=2002&license=viewergpl$ | 5 | * $LicenseInfo:firstyear=2002&license=viewergpl$ |
6 | * | 6 | * |
7 | * Copyright (c) 2002-2009, Linden Research, Inc. | 7 | * Copyright (c) 2002-2009, Linden Research, Inc., |
8 | * 2010, McCabe Maxsted | ||
8 | * | 9 | * |
9 | * Second Life Viewer Source Code | 10 | * Second Life Viewer Source Code |
10 | * The source code in this file ("Source Code") is provided by Linden Lab | 11 | * The source code in this file ("Source Code") is provided by Linden Lab |
@@ -38,28 +39,38 @@ | |||
38 | #include "llviewerprecompiledheaders.h" | 39 | #include "llviewerprecompiledheaders.h" |
39 | 40 | ||
40 | #include "llfloaterbuildoptions.h" | 41 | #include "llfloaterbuildoptions.h" |
41 | #include "lluictrlfactory.h" | ||
42 | 42 | ||
43 | // library includes | 43 | // library includes |
44 | #include "llfontgl.h" | 44 | #include "llfontgl.h" |
45 | #include "llcheckboxctrl.h" | 45 | #include "llcheckboxctrl.h" |
46 | #include "llcombobox.h" | ||
46 | #include "llspinctrl.h" | 47 | #include "llspinctrl.h" |
47 | #include "llsliderctrl.h" | 48 | #include "llsliderctrl.h" |
49 | #include "lltexturectrl.h" | ||
50 | #include "lluictrlfactory.h" | ||
48 | 51 | ||
49 | // newview includes | 52 | // newview includes |
53 | #include "llcolorswatch.h" | ||
54 | #include "llinventorymodel.h" | ||
50 | #include "llresmgr.h" | 55 | #include "llresmgr.h" |
56 | #include "llstartup.h" // not really necessary here, but just in case | ||
51 | #include "llviewercontrol.h" | 57 | #include "llviewercontrol.h" |
58 | #include "llviewerinventory.h" | ||
59 | #include "floaterbusy.h" // class InvDropTarget | ||
52 | 60 | ||
53 | // | 61 | // |
54 | // Globals | 62 | // Globals |
55 | // | 63 | // |
56 | LLFloaterBuildOptions *LLFloaterBuildOptions::sInstance = NULL; | 64 | LLFloaterBuildOptions *LLFloaterBuildOptions::sInstance = NULL; |
65 | InvDropTarget * LLFloaterBuildOptions::sBuildObjectDropTarget; | ||
57 | 66 | ||
58 | // | 67 | // |
59 | // Methods | 68 | // Methods |
60 | // | 69 | // |
61 | LLFloaterBuildOptions::LLFloaterBuildOptions( ) | 70 | LLFloaterBuildOptions::LLFloaterBuildOptions() |
62 | : LLFloater(std::string("build options floater")) | 71 | : LLFloater(std::string("build options floater")), |
72 | mBuildItemUUID(NULL), | ||
73 | mBuildTextureUUID(NULL) | ||
63 | { | 74 | { |
64 | sInstance = this; | 75 | sInstance = this; |
65 | } | 76 | } |
@@ -67,6 +78,74 @@ LLFloaterBuildOptions::LLFloaterBuildOptions( ) | |||
67 | LLFloaterBuildOptions::~LLFloaterBuildOptions() | 78 | LLFloaterBuildOptions::~LLFloaterBuildOptions() |
68 | { | 79 | { |
69 | sInstance = NULL; | 80 | sInstance = NULL; |
81 | delete sBuildObjectDropTarget; | ||
82 | sBuildObjectDropTarget = NULL; | ||
83 | } | ||
84 | |||
85 | BOOL LLFloaterBuildOptions::postBuild() | ||
86 | { | ||
87 | childSetAction("btn_ok", onClickOK, this); | ||
88 | childSetAction("btn_apply", onClickApply, this); | ||
89 | childSetAction("btn_cancel", onClickCancel, this); | ||
90 | childSetAction("btn_clear", onClickClear, this); | ||
91 | childSetAction("btn_reset", onClickReset, this); | ||
92 | |||
93 | getChild<LLComboBox>("material")->setSimple(gSavedPerAccountSettings.getString("BuildPrefs_Material")); | ||
94 | getChild<LLComboBox>("combobox shininess")->setSimple(gSavedPerAccountSettings.getString("BuildPrefs_Shiny")); | ||
95 | |||
96 | childSetValue("BuildPrefsActualRoot_toggle", gSavedPerAccountSettings.getBOOL("BuildPrefs_ActualRoot") ); | ||
97 | childSetValue("PivotPercToggle", gSavedPerAccountSettings.getBOOL("BuildPrefs_PivotIsPercent") ); | ||
98 | childSetValue("FBToggle", gSavedPerAccountSettings.getBOOL("BuildPrefs_FullBright") ); | ||
99 | childSetValue("BuildPrefsEmbedItem", gSavedPerAccountSettings.getBOOL("BuildPrefs_EmbedItem") ); | ||
100 | childSetValue("PhysicalToggle", gSavedPerAccountSettings.getBOOL("BuildPrefs_Physical") ); | ||
101 | childSetValue("TemporaryToggle", gSavedPerAccountSettings.getBOOL("BuildPrefs_Temporary") ); | ||
102 | childSetValue("PhantomToggle", gSavedPerAccountSettings.getBOOL("BuildPrefs_Phantom") ); | ||
103 | |||
104 | childSetValue("Z pos", gSavedPerAccountSettings.getF32("BuildPrefs_PivotZ") ); | ||
105 | childSetValue("Y pos", gSavedPerAccountSettings.getF32("BuildPrefs_PivotY") ); | ||
106 | childSetValue("X pos", gSavedPerAccountSettings.getF32("BuildPrefs_PivotX") ); | ||
107 | childSetValue("glow", gSavedPerAccountSettings.getF32("BuildPrefs_Glow") ); | ||
108 | childSetValue("alpha", gSavedPerAccountSettings.getF32("BuildPrefs_Alpha") ); | ||
109 | childSetValue("Z size", gSavedPerAccountSettings.getF32("BuildPrefs_Zsize") ); | ||
110 | childSetValue("Y size", gSavedPerAccountSettings.getF32("BuildPrefs_Ysize") ); | ||
111 | childSetValue("X size", gSavedPerAccountSettings.getF32("BuildPrefs_Xsize") ); | ||
112 | |||
113 | getChild<LLColorSwatchCtrl>("colorswatch")->set(gSavedPerAccountSettings.getColor4("BuildPrefs_Color"), TRUE ); | ||
114 | getChild<LLTextureCtrl>("texture control")->setImageAssetID(LLUUID(gSavedPerAccountSettings.getString("BuildPrefs_Texture"))); | ||
115 | |||
116 | childSetValue("BuildPrefsRenderHighlight_toggle", gSavedSettings.getBOOL("RenderHighlightSelections") ); | ||
117 | childSetValue("grouplandrez", gSavedSettings.getBOOL("RezWithLandGroup") ); | ||
118 | childSetValue("GridSubUnit", gSavedSettings.getBOOL("GridSubUnit") ); | ||
119 | childSetValue("GridCrossSection", gSavedSettings.getBOOL("GridCrossSections") ); | ||
120 | |||
121 | childSetValue("GridResolution", gSavedSettings.getF32("GridResolution") ); | ||
122 | childSetValue("GridDrawSize", gSavedSettings.getF32("GridDrawSize") ); | ||
123 | childSetValue("GridOpacity", gSavedSettings.getF32("GridOpacity") ); | ||
124 | |||
125 | getChild<LLComboBox>("material")->setCommitCallback(onComboBoxCommit); | ||
126 | getChild<LLComboBox>("combobox shininess")->setCommitCallback(onComboBoxCommit); | ||
127 | |||
128 | getChild<LLTextureCtrl>("texture control")->setDefaultImageAssetID(LLUUID("89556747-24cb-43ed-920b-47caed15465f")); | ||
129 | getChild<LLTextureCtrl>("texture control")->setCommitCallback(onTexturePickerCommit); | ||
130 | getChild<LLTextureCtrl>("texture control")->setCallbackUserData(this); | ||
131 | |||
132 | LLView *target_view = getChild<LLView>("build_item_add_disp_rect"); | ||
133 | if (target_view) | ||
134 | { | ||
135 | if (sBuildObjectDropTarget) | ||
136 | { | ||
137 | delete sBuildObjectDropTarget; | ||
138 | } | ||
139 | sBuildObjectDropTarget = new InvDropTarget("build drop target", target_view->getRect(),BuildAutoResponseItemDrop); | ||
140 | addChild(sBuildObjectDropTarget); | ||
141 | } | ||
142 | |||
143 | mBuildItemUUID = (LLUUID)gSavedPerAccountSettings.getString("BuildPrefs_Item"); | ||
144 | mBuildTextureUUID = (LLUUID)gSavedPerAccountSettings.getString("BuildPrefs_Texture"); | ||
145 | |||
146 | refreshItem(); // Refresh the item UI bits after everything's loaded -- MC | ||
147 | |||
148 | return TRUE; | ||
70 | } | 149 | } |
71 | 150 | ||
72 | // static | 151 | // static |
@@ -95,3 +174,208 @@ BOOL LLFloaterBuildOptions::visible(void*) | |||
95 | { | 174 | { |
96 | return (sInstance != NULL); | 175 | return (sInstance != NULL); |
97 | } | 176 | } |
177 | |||
178 | // static | ||
179 | void LLFloaterBuildOptions::BuildAutoResponseItemDrop(LLViewerInventoryItem* item) | ||
180 | { | ||
181 | LLFloaterBuildOptions::getInstance()->setItem(item->getUUID()); | ||
182 | LLFloaterBuildOptions::getInstance()->refreshItem(); | ||
183 | /*LLFloaterBuildOptions::getInstance()->childSetValue("build_item_add_disp_rect_txt", "Currently set to: "+item->getName()); | ||
184 | gSavedPerAccountSettings.setString("BuildPrefs_Item", item->getUUID().asString());*/ | ||
185 | } | ||
186 | |||
187 | // static | ||
188 | void LLFloaterBuildOptions::onComboBoxCommit(LLUICtrl* ctrl, void* userdata) | ||
189 | { | ||
190 | LLComboBox* box = (LLComboBox*)ctrl; | ||
191 | if(box) | ||
192 | { | ||
193 | gSavedPerAccountSettings.setString(box->getControlName(), box->getValue().asString()); | ||
194 | } | ||
195 | } | ||
196 | |||
197 | // static | ||
198 | void LLFloaterBuildOptions::onTexturePickerCommit(LLUICtrl* ctrl, void* userdata) | ||
199 | { | ||
200 | LLFloaterBuildOptions* self = (LLFloaterBuildOptions*)userdata; | ||
201 | |||
202 | LLTextureCtrl* image_ctrl = (LLTextureCtrl*)ctrl; | ||
203 | if(image_ctrl) | ||
204 | { | ||
205 | self->setTexture(image_ctrl->getImageAssetID()); | ||
206 | /*gSavedPerAccountSettings.setString("BuildPrefs_Texture", image_ctrl->getImageAssetID().asString());*/ | ||
207 | } | ||
208 | } | ||
209 | |||
210 | // static | ||
211 | void LLFloaterBuildOptions::onClickOK(void* userdata) | ||
212 | { | ||
213 | LLFloaterBuildOptions* self = (LLFloaterBuildOptions*)userdata; | ||
214 | self->apply(); | ||
215 | self->close(); | ||
216 | } | ||
217 | |||
218 | // static | ||
219 | void LLFloaterBuildOptions::onClickApply(void* userdata) | ||
220 | { | ||
221 | LLFloaterBuildOptions* self = (LLFloaterBuildOptions*)userdata; | ||
222 | self->apply(); | ||
223 | } | ||
224 | |||
225 | // static | ||
226 | void LLFloaterBuildOptions::onClickCancel(void* userdata) | ||
227 | { | ||
228 | LLFloaterBuildOptions* self = (LLFloaterBuildOptions*)userdata; | ||
229 | self->cancel(); | ||
230 | } | ||
231 | |||
232 | // static | ||
233 | void LLFloaterBuildOptions::onClickClear(void* userdata) | ||
234 | { | ||
235 | // Clear the inventory item | ||
236 | LLFloaterBuildOptions* self = (LLFloaterBuildOptions*)userdata; | ||
237 | //gSavedPerAccountSettings.setString("BuildPrefs_Item", LLUUID::null); | ||
238 | //gSavedPerAccountSettings.getControl("BuildPrefs_Item")->resetToDefault(false); | ||
239 | |||
240 | self->setItem(LLUUID::null); | ||
241 | self->refreshItem(); | ||
242 | } | ||
243 | |||
244 | // static | ||
245 | void LLFloaterBuildOptions::onClickReset(void* userdata) | ||
246 | { | ||
247 | // Reset to defaults | ||
248 | LLFloaterBuildOptions* self = (LLFloaterBuildOptions*)userdata; | ||
249 | self->reset(); | ||
250 | self->refresh(); | ||
251 | } | ||
252 | |||
253 | void LLFloaterBuildOptions::apply() | ||
254 | { | ||
255 | gSavedPerAccountSettings.setBOOL("BuildPrefs_ActualRoot", childGetValue("BuildPrefsActualRoot_toggle").asBoolean() ); | ||
256 | gSavedPerAccountSettings.setBOOL("BuildPrefs_PivotIsPercent", childGetValue("PivotPercToggle").asBoolean() ); | ||
257 | gSavedPerAccountSettings.setBOOL("BuildPrefs_FullBright", childGetValue("FBToggle").asBoolean() ); | ||
258 | gSavedPerAccountSettings.setBOOL("BuildPrefs_EmbedItem", childGetValue("BuildPrefsEmbedItem").asBoolean() ); | ||
259 | gSavedPerAccountSettings.setBOOL("BuildPrefs_Physical", childGetValue("PhysicalToggle").asBoolean() ); | ||
260 | gSavedPerAccountSettings.setBOOL("BuildPrefs_Temporary", childGetValue("TemporaryToggle").asBoolean() ); | ||
261 | gSavedPerAccountSettings.setBOOL("BuildPrefs_Phantom", childGetValue("PhantomToggle").asBoolean() ); | ||
262 | |||
263 | gSavedPerAccountSettings.setF32("BuildPrefs_PivotZ", childGetValue("Z pos").asReal() ); | ||
264 | gSavedPerAccountSettings.setF32("BuildPrefs_PivotY", childGetValue("Y pos").asReal() ); | ||
265 | gSavedPerAccountSettings.setF32("BuildPrefs_PivotX", childGetValue("X pos").asReal() ); | ||
266 | gSavedPerAccountSettings.setF32("BuildPrefs_Glow", childGetValue("glow").asReal() ); | ||
267 | gSavedPerAccountSettings.setF32("BuildPrefs_Alpha", childGetValue("alpha").asReal() ); | ||
268 | gSavedPerAccountSettings.setF32("BuildPrefs_Zsize", childGetValue("Z size").asReal() ); | ||
269 | gSavedPerAccountSettings.setF32("BuildPrefs_Ysize", childGetValue("Y size").asReal() ); | ||
270 | gSavedPerAccountSettings.setF32("BuildPrefs_Xsize", childGetValue("X size").asReal() ); | ||
271 | |||
272 | gSavedPerAccountSettings.setString("BuildPrefs_Shiny", getChild<LLComboBox>("combobox shininess")->getValue().asString() ); | ||
273 | gSavedPerAccountSettings.setString("BuildPrefs_Material", getChild<LLComboBox>("material")->getValue().asString() ); | ||
274 | |||
275 | gSavedPerAccountSettings.setColor4("BuildPrefs_Color", getChild<LLColorSwatchCtrl>("colorswatch")->get()); | ||
276 | |||
277 | if (mBuildItemUUID != LLSD(gSavedPerAccountSettings.getString("BuildPrefs_Item")) ) | ||
278 | { | ||
279 | gSavedPerAccountSettings.setString("BuildPrefs_Item", mBuildItemUUID.asString() ); | ||
280 | } | ||
281 | |||
282 | if (mBuildTextureUUID != LLSD(gSavedPerAccountSettings.getString("BuildPrefs_Texture")) ) | ||
283 | { | ||
284 | gSavedPerAccountSettings.setString("BuildPrefs_Texture", mBuildTextureUUID.asString() ); | ||
285 | } | ||
286 | |||
287 | gSavedSettings.setBOOL("RenderHighlightSelections", childGetValue("BuildPrefsRenderHighlight_toggle").asBoolean() ); | ||
288 | gSavedSettings.setBOOL("RezWithLandGroup", childGetValue("grouplandrez").asBoolean() ); | ||
289 | gSavedSettings.setBOOL("GridSubUnit", childGetValue("GridSubUnit").asBoolean() ); | ||
290 | gSavedSettings.setBOOL("GridCrossSections", childGetValue("GridCrossSection").asBoolean() ); | ||
291 | |||
292 | gSavedSettings.setF32("GridResolution", childGetValue("GridResolution").asReal() ); | ||
293 | gSavedSettings.setF32("GridDrawSize", childGetValue("GridDrawSize").asReal() ); | ||
294 | gSavedSettings.setF32("GridOpacity", childGetValue("GridOpacity").asReal() ); | ||
295 | } | ||
296 | |||
297 | void LLFloaterBuildOptions::cancel() | ||
298 | { | ||
299 | close(); | ||
300 | } | ||
301 | |||
302 | void LLFloaterBuildOptions::reset() | ||
303 | { | ||
304 | getChild<LLComboBox>("material")->setSimple(gSavedPerAccountSettings.getControl("BuildPrefs_Material")->getDefault().asString() ); | ||
305 | getChild<LLComboBox>("combobox shininess")->setSimple(gSavedPerAccountSettings.getControl("BuildPrefs_Shiny")->getDefault().asString() ); | ||
306 | |||
307 | childSetValue("BuildPrefsActualRoot_toggle", gSavedPerAccountSettings.getControl("BuildPrefs_ActualRoot")->getDefault() ); | ||
308 | childSetValue("PivotPercToggle", gSavedPerAccountSettings.getControl("BuildPrefs_PivotIsPercent")->getDefault() ); | ||
309 | childSetValue("FBToggle", gSavedPerAccountSettings.getControl("BuildPrefs_FullBright")->getDefault() ); | ||
310 | childSetValue("BuildPrefsEmbedItem", gSavedPerAccountSettings.getControl("BuildPrefs_EmbedItem")->getDefault() ); | ||
311 | childSetValue("PhysicalToggle", gSavedPerAccountSettings.getControl("BuildPrefs_Physical")->getDefault() ); | ||
312 | childSetValue("TemporaryToggle", gSavedPerAccountSettings.getControl("BuildPrefs_Temporary")->getDefault() ); | ||
313 | childSetValue("PhantomToggle", gSavedPerAccountSettings.getControl("BuildPrefs_Phantom")->getDefault() ); | ||
314 | |||
315 | childSetValue("Z pos", gSavedPerAccountSettings.getControl("BuildPrefs_PivotZ")->getDefault() ); | ||
316 | childSetValue("Y pos", gSavedPerAccountSettings.getControl("BuildPrefs_PivotY")->getDefault() ); | ||
317 | childSetValue("X pos", gSavedPerAccountSettings.getControl("BuildPrefs_PivotX")->getDefault() ); | ||
318 | childSetValue("glow", gSavedPerAccountSettings.getControl("BuildPrefs_Glow")->getDefault() ); | ||
319 | childSetValue("alpha", gSavedPerAccountSettings.getControl("BuildPrefs_Alpha")->getDefault() ); | ||
320 | childSetValue("Z size", gSavedPerAccountSettings.getControl("BuildPrefs_Zsize")->getDefault() ); | ||
321 | childSetValue("Y size", gSavedPerAccountSettings.getControl("BuildPrefs_Ysize")->getDefault() ); | ||
322 | childSetValue("X size", gSavedPerAccountSettings.getControl("BuildPrefs_Xsize")->getDefault() ); | ||
323 | |||
324 | getChild<LLColorSwatchCtrl>("colorswatch")->set(gSavedPerAccountSettings.getControl("BuildPrefs_Color")->getDefault(), TRUE); | ||
325 | getChild<LLTextureCtrl>("texture control")->setImageAssetID(LLUUID(gSavedPerAccountSettings.getControl("BuildPrefs_Texture")->getDefault()) ); | ||
326 | |||
327 | mBuildItemUUID = (LLUUID)gSavedPerAccountSettings.getControl("BuildPrefs_Item")->getDefault(); | ||
328 | mBuildTextureUUID = (LLUUID)gSavedPerAccountSettings.getControl("BuildPrefs_Texture")->getDefault(); | ||
329 | |||
330 | childSetValue("BuildPrefsRenderHighlight_toggle", gSavedSettings.getControl("RenderHighlightSelections")->getDefault() ); | ||
331 | childSetValue("grouplandrez", gSavedSettings.getControl("RezWithLandGroup")->getDefault() ); | ||
332 | childSetValue("GridSubUnit", gSavedSettings.getControl("GridSubUnit")->getDefault() ); | ||
333 | childSetValue("GridCrossSection", gSavedSettings.getControl("GridCrossSections")->getDefault() ); | ||
334 | |||
335 | childSetValue("GridResolution", gSavedSettings.getControl("GridResolution")->getDefault() ); | ||
336 | childSetValue("GridDrawSize", gSavedSettings.getControl("GridDrawSize")->getDefault() ); | ||
337 | childSetValue("GridOpacity", gSavedSettings.getControl("GridOpacity")->getDefault() ); | ||
338 | } | ||
339 | |||
340 | void LLFloaterBuildOptions::refresh() | ||
341 | { | ||
342 | |||
343 | } | ||
344 | |||
345 | void LLFloaterBuildOptions::setItem(const LLUUID& item) | ||
346 | { | ||
347 | mBuildItemUUID = item; | ||
348 | } | ||
349 | |||
350 | void LLFloaterBuildOptions::setTexture(const LLUUID& texture) | ||
351 | { | ||
352 | mBuildTextureUUID = texture; | ||
353 | } | ||
354 | |||
355 | void LLFloaterBuildOptions::refreshItem() | ||
356 | { | ||
357 | if (LLStartUp::getStartupState() == STATE_STARTED) | ||
358 | { | ||
359 | if (mBuildItemUUID.isNull()) | ||
360 | { | ||
361 | childSetValue("build_item_add_disp_rect_txt", "Currently not set"); | ||
362 | } | ||
363 | else | ||
364 | { | ||
365 | LLViewerInventoryItem* item = gInventory.getItem(mBuildItemUUID); | ||
366 | if (item) | ||
367 | { | ||
368 | childSetValue("build_item_add_disp_rect_txt", "Currently set to: "+item->getName()); | ||
369 | } | ||
370 | |||
371 | else | ||
372 | { | ||
373 | childSetValue("build_item_add_disp_rect_txt", "Currently set to a item not on this account"); | ||
374 | } | ||
375 | } | ||
376 | } | ||
377 | else | ||
378 | { | ||
379 | childSetValue("build_item_add_disp_rect_txt", "Not logged in"); | ||
380 | } | ||
381 | } | ||
diff --git a/linden/indra/newview/llfloaterbuildoptions.h b/linden/indra/newview/llfloaterbuildoptions.h index e030b06..c776055 100644 --- a/linden/indra/newview/llfloaterbuildoptions.h +++ b/linden/indra/newview/llfloaterbuildoptions.h | |||
@@ -5,6 +5,7 @@ | |||
5 | * $LicenseInfo:firstyear=2002&license=viewergpl$ | 5 | * $LicenseInfo:firstyear=2002&license=viewergpl$ |
6 | * | 6 | * |
7 | * Copyright (c) 2002-2009, Linden Research, Inc. | 7 | * Copyright (c) 2002-2009, Linden Research, Inc. |
8 | * 2010, McCabe Maxsted | ||
8 | * | 9 | * |
9 | * Second Life Viewer Source Code | 10 | * Second Life Viewer Source Code |
10 | * The source code in this file ("Source Code") is provided by Linden Lab | 11 | * The source code in this file ("Source Code") is provided by Linden Lab |
@@ -40,6 +41,8 @@ | |||
40 | 41 | ||
41 | #include "llfloater.h" | 42 | #include "llfloater.h" |
42 | 43 | ||
44 | class InvDropTarget; | ||
45 | class LLViewerInventoryItem; | ||
43 | 46 | ||
44 | class LLFloaterBuildOptions | 47 | class LLFloaterBuildOptions |
45 | : public LLFloater | 48 | : public LLFloater |
@@ -49,12 +52,39 @@ protected: | |||
49 | ~LLFloaterBuildOptions(); | 52 | ~LLFloaterBuildOptions(); |
50 | 53 | ||
51 | public: | 54 | public: |
55 | BOOL postBuild(); | ||
56 | |||
52 | static void show(void*); | 57 | static void show(void*); |
53 | static LLFloaterBuildOptions* getInstance(); | 58 | static LLFloaterBuildOptions* getInstance(); |
54 | static BOOL visible(void*); | 59 | static BOOL visible(void*); |
55 | 60 | ||
61 | void apply(); | ||
62 | void cancel(); | ||
63 | void refresh(); | ||
64 | void reset(); | ||
65 | |||
66 | void setItem(const LLUUID& item); | ||
67 | void setTexture(const LLUUID& texture); | ||
68 | |||
56 | protected: | 69 | protected: |
57 | static LLFloaterBuildOptions* sInstance; | 70 | static LLFloaterBuildOptions* sInstance; |
71 | |||
72 | private: | ||
73 | static InvDropTarget* sBuildObjectDropTarget; | ||
74 | LLUUID mBuildItemUUID; | ||
75 | LLUUID mBuildTextureUUID; | ||
76 | |||
77 | static void onTexturePickerCommit(LLUICtrl* ctrl, void* userdata); | ||
78 | static void onComboBoxCommit(LLUICtrl* ctrl, void* userdata); | ||
79 | static void BuildAutoResponseItemDrop(LLViewerInventoryItem* item); | ||
80 | |||
81 | static void onClickOK(void* userdata); | ||
82 | static void onClickApply(void* userdata); | ||
83 | static void onClickCancel(void* userdata); | ||
84 | static void onClickClear(void* userdata); | ||
85 | static void onClickReset(void* userdata); | ||
86 | |||
87 | void refreshItem(); | ||
58 | }; | 88 | }; |
59 | 89 | ||
60 | #endif | 90 | #endif |
diff --git a/linden/indra/newview/llfloaterbulkpermission.cpp b/linden/indra/newview/llfloaterbulkpermission.cpp index 6721661..b5cf2d7 100644 --- a/linden/indra/newview/llfloaterbulkpermission.cpp +++ b/linden/indra/newview/llfloaterbulkpermission.cpp | |||
@@ -43,8 +43,6 @@ | |||
43 | #include "llviewerregion.h" | 43 | #include "llviewerregion.h" |
44 | #include "lscript_rt_interface.h" | 44 | #include "lscript_rt_interface.h" |
45 | #include "llviewercontrol.h" | 45 | #include "llviewercontrol.h" |
46 | #include "llviewerobject.h" | ||
47 | #include "llviewerregion.h" | ||
48 | #include "llresmgr.h" | 46 | #include "llresmgr.h" |
49 | #include "llbutton.h" | 47 | #include "llbutton.h" |
50 | #include "lldir.h" | 48 | #include "lldir.h" |
diff --git a/linden/indra/newview/llfloaterpreference.cpp b/linden/indra/newview/llfloaterpreference.cpp index 17a59cc..c468a5e 100644 --- a/linden/indra/newview/llfloaterpreference.cpp +++ b/linden/indra/newview/llfloaterpreference.cpp | |||
@@ -62,6 +62,7 @@ | |||
62 | #include "llpanelmsgs.h" | 62 | #include "llpanelmsgs.h" |
63 | #include "llpanelweb.h" | 63 | #include "llpanelweb.h" |
64 | #include "llpanelskins.h" | 64 | #include "llpanelskins.h" |
65 | #include "llprefsadvanced.h" | ||
65 | #include "llprefschat.h" | 66 | #include "llprefschat.h" |
66 | #include "llprefsvoice.h" | 67 | #include "llprefsvoice.h" |
67 | #include "llprefsim.h" | 68 | #include "llprefsim.h" |
@@ -132,7 +133,8 @@ LLPreferenceCore::LLPreferenceCore(LLTabContainer* tab_container, LLButton * def | |||
132 | mAudioPanel(NULL), | 133 | mAudioPanel(NULL), |
133 | mMsgPanel(NULL), | 134 | mMsgPanel(NULL), |
134 | mSkinsPanel(NULL), | 135 | mSkinsPanel(NULL), |
135 | mLCDPanel(NULL) | 136 | mLCDPanel(NULL), |
137 | mPrefsAdvanced(NULL) | ||
136 | { | 138 | { |
137 | mGeneralPanel = new LLPanelGeneral(); | 139 | mGeneralPanel = new LLPanelGeneral(); |
138 | mTabContainer->addTabPanel(mGeneralPanel, mGeneralPanel->getLabel(), FALSE, onTabChanged, mTabContainer); | 140 | mTabContainer->addTabPanel(mGeneralPanel, mGeneralPanel->getLabel(), FALSE, onTabChanged, mTabContainer); |
@@ -192,6 +194,10 @@ LLPreferenceCore::LLPreferenceCore(LLTabContainer* tab_container, LLButton * def | |||
192 | mTabContainer->addTabPanel(mSkinsPanel, mSkinsPanel->getLabel(), FALSE, onTabChanged, mTabContainer); | 194 | mTabContainer->addTabPanel(mSkinsPanel, mSkinsPanel->getLabel(), FALSE, onTabChanged, mTabContainer); |
193 | mSkinsPanel->setDefaultBtn(default_btn); | 195 | mSkinsPanel->setDefaultBtn(default_btn); |
194 | 196 | ||
197 | mPrefsAdvanced = new LLPrefsAdvanced(); | ||
198 | mTabContainer->addTabPanel(mPrefsAdvanced, mPrefsAdvanced->getLabel(), FALSE, onTabChanged, mTabContainer); | ||
199 | mPrefsAdvanced->setDefaultBtn(default_btn); | ||
200 | |||
195 | if (!mTabContainer->selectTab(gSavedSettings.getS32("LastPrefTab"))) | 201 | if (!mTabContainer->selectTab(gSavedSettings.getS32("LastPrefTab"))) |
196 | { | 202 | { |
197 | mTabContainer->selectFirstTab(); | 203 | mTabContainer->selectFirstTab(); |
@@ -251,6 +257,11 @@ LLPreferenceCore::~LLPreferenceCore() | |||
251 | delete mSkinsPanel; | 257 | delete mSkinsPanel; |
252 | mSkinsPanel = NULL; | 258 | mSkinsPanel = NULL; |
253 | } | 259 | } |
260 | if (mPrefsAdvanced) | ||
261 | { | ||
262 | delete mPrefsAdvanced; | ||
263 | mPrefsAdvanced = NULL; | ||
264 | } | ||
254 | 265 | ||
255 | } | 266 | } |
256 | 267 | ||
@@ -267,6 +278,7 @@ void LLPreferenceCore::apply() | |||
267 | mPrefsIM->apply(); | 278 | mPrefsIM->apply(); |
268 | mMsgPanel->apply(); | 279 | mMsgPanel->apply(); |
269 | mSkinsPanel->apply(); | 280 | mSkinsPanel->apply(); |
281 | mPrefsAdvanced->apply(); | ||
270 | 282 | ||
271 | // hardware menu apply | 283 | // hardware menu apply |
272 | LLFloaterHardwareSettings::instance()->apply(); | 284 | LLFloaterHardwareSettings::instance()->apply(); |
@@ -295,6 +307,7 @@ void LLPreferenceCore::cancel() | |||
295 | mPrefsIM->cancel(); | 307 | mPrefsIM->cancel(); |
296 | mMsgPanel->cancel(); | 308 | mMsgPanel->cancel(); |
297 | mSkinsPanel->cancel(); | 309 | mSkinsPanel->cancel(); |
310 | mPrefsAdvanced->cancel(); | ||
298 | 311 | ||
299 | // cancel hardware menu | 312 | // cancel hardware menu |
300 | LLFloaterHardwareSettings::instance()->cancel(); | 313 | LLFloaterHardwareSettings::instance()->cancel(); |
diff --git a/linden/indra/newview/llfloaterpreference.h b/linden/indra/newview/llfloaterpreference.h index f48696f..894d242 100644 --- a/linden/indra/newview/llfloaterpreference.h +++ b/linden/indra/newview/llfloaterpreference.h | |||
@@ -56,6 +56,7 @@ class LLPrefsVoice; | |||
56 | class LLPrefsIM; | 56 | class LLPrefsIM; |
57 | class LLPanelMsgs; | 57 | class LLPanelMsgs; |
58 | class LLPanelSkins; | 58 | class LLPanelSkins; |
59 | class LLPrefsAdvanced; | ||
59 | class LLScrollListCtrl; | 60 | class LLScrollListCtrl; |
60 | 61 | ||
61 | class LLPreferenceCore | 62 | class LLPreferenceCore |
@@ -92,6 +93,7 @@ private: | |||
92 | LLPanelWeb *mWebPanel; | 93 | LLPanelWeb *mWebPanel; |
93 | LLPanelMsgs *mMsgPanel; | 94 | LLPanelMsgs *mMsgPanel; |
94 | LLPanelLCD *mLCDPanel; | 95 | LLPanelLCD *mLCDPanel; |
96 | LLPrefsAdvanced *mPrefsAdvanced; | ||
95 | }; | 97 | }; |
96 | 98 | ||
97 | // Floater to control preferences (display, audio, bandwidth, general. | 99 | // Floater to control preferences (display, audio, bandwidth, general. |
diff --git a/linden/indra/newview/llfloaterstats.cpp b/linden/indra/newview/llfloaterstats.cpp index 3ecdb80..38b2871 100644 --- a/linden/indra/newview/llfloaterstats.cpp +++ b/linden/indra/newview/llfloaterstats.cpp | |||
@@ -476,7 +476,8 @@ void LLFloaterStats::buildStats() | |||
476 | 476 | ||
477 | stat_barp = sim_time_viewp->addStat("Script Time", &(LLViewerStats::getInstance()->mSimScriptMsec), "DebugStatModeSimScriptMsec"); | 477 | stat_barp = sim_time_viewp->addStat("Script Time", &(LLViewerStats::getInstance()->mSimScriptMsec), "DebugStatModeSimScriptMsec"); |
478 | stat_barp->setUnitLabel("ms"); | 478 | stat_barp->setUnitLabel("ms"); |
479 | stat_barp->mPrecision = 1; | 479 | //Chalice - Enhanced Script Time precision |
480 | stat_barp->mPrecision = 3; | ||
480 | stat_barp->mMinBar = 0.f; | 481 | stat_barp->mMinBar = 0.f; |
481 | stat_barp->mMaxBar = 40.f; | 482 | stat_barp->mMaxBar = 40.f; |
482 | stat_barp->mTickSpacing = 10.f; | 483 | stat_barp->mTickSpacing = 10.f; |
diff --git a/linden/indra/newview/llinventoryview.cpp b/linden/indra/newview/llinventoryview.cpp index 97df7a3..aee67b4 100644 --- a/linden/indra/newview/llinventoryview.cpp +++ b/linden/indra/newview/llinventoryview.cpp | |||
@@ -593,6 +593,9 @@ void LLInventoryView::init(LLInventoryModel* inventory) | |||
593 | 593 | ||
594 | } | 594 | } |
595 | 595 | ||
596 | //Initialize item count - rkeast | ||
597 | mItemCount = gSavedPerAccountSettings.getS32("InventoryPreviousCount"); | ||
598 | |||
596 | 599 | ||
597 | mSearchEditor = getChild<LLSearchEditor>("inventory search editor"); | 600 | mSearchEditor = getChild<LLSearchEditor>("inventory search editor"); |
598 | if (mSearchEditor) | 601 | if (mSearchEditor) |
@@ -848,7 +851,26 @@ void LLInventoryView::changed(U32 mask) | |||
848 | LLLocale locale(LLLocale::USER_LOCALE); | 851 | LLLocale locale(LLLocale::USER_LOCALE); |
849 | std::string item_count_string; | 852 | std::string item_count_string; |
850 | LLResMgr::getInstance()->getIntegerString(item_count_string, gInventory.getItemCount()); | 853 | LLResMgr::getInstance()->getIntegerString(item_count_string, gInventory.getItemCount()); |
851 | title << " (Fetched " << item_count_string << " items...)"; | 854 | |
855 | //Displays a progress indication for loading the inventory, but not if it hasn't been loaded before on this PC, or we load more than expected - rkeast | ||
856 | if(mItemCount == -1) | ||
857 | { | ||
858 | title << " (Fetched " << item_count_string << " items...)"; | ||
859 | } | ||
860 | else | ||
861 | { | ||
862 | S32 remaining = mItemCount - gInventory.getItemCount(); | ||
863 | std::string total_items; | ||
864 | std::string items_remaining; | ||
865 | LLResMgr::getInstance()->getIntegerString(total_items, mItemCount); | ||
866 | LLResMgr::getInstance()->getIntegerString(items_remaining, remaining); | ||
867 | if(remaining < 0) title << " (Fetched " << item_count_string << " items...)"; | ||
868 | else title << " (Fetched " << item_count_string << " items of ~" << total_items << " - ~" << items_remaining << " remaining...)"; | ||
869 | } | ||
870 | } | ||
871 | else | ||
872 | { | ||
873 | gSavedPerAccountSettings.setS32("InventoryPreviousCount", gInventory.getItemCount()); | ||
852 | } | 874 | } |
853 | title << mFilterText; | 875 | title << mFilterText; |
854 | setTitle(title.str()); | 876 | setTitle(title.str()); |
diff --git a/linden/indra/newview/llinventoryview.h b/linden/indra/newview/llinventoryview.h index 0c525c3..495a340 100644 --- a/linden/indra/newview/llinventoryview.h +++ b/linden/indra/newview/llinventoryview.h | |||
@@ -308,6 +308,8 @@ protected: | |||
308 | 308 | ||
309 | std::string mFilterText; | 309 | std::string mFilterText; |
310 | 310 | ||
311 | S32 mItemCount; | ||
312 | |||
311 | 313 | ||
312 | // This container is used to hold all active inventory views. This | 314 | // This container is used to hold all active inventory views. This |
313 | // is here to support the inventory toggle show button. | 315 | // is here to support the inventory toggle show button. |
diff --git a/linden/indra/newview/llmanip.cpp b/linden/indra/newview/llmanip.cpp index 53c74aa..45550fc 100644 --- a/linden/indra/newview/llmanip.cpp +++ b/linden/indra/newview/llmanip.cpp | |||
@@ -69,7 +69,11 @@ S32 LLManip::sMaxTimesShowHelpText = 5; | |||
69 | F32 LLManip::sGridMaxSubdivisionLevel = 32.f; | 69 | F32 LLManip::sGridMaxSubdivisionLevel = 32.f; |
70 | F32 LLManip::sGridMinSubdivisionLevel = 1.f; | 70 | F32 LLManip::sGridMinSubdivisionLevel = 1.f; |
71 | LLVector2 LLManip::sTickLabelSpacing(60.f, 25.f); | 71 | LLVector2 LLManip::sTickLabelSpacing(60.f, 25.f); |
72 | 72 | bool LLManip::sActualRoot = false;// going to set these up in the main entry | |
73 | bool LLManip::sPivotPerc = false; | ||
74 | F32 LLManip::sPivotX = 0.f; | ||
75 | F32 LLManip::sPivotY = 0.f; | ||
76 | F32 LLManip::sPivotZ = 0.f; | ||
73 | 77 | ||
74 | //static | 78 | //static |
75 | void LLManip::rebuild(LLViewerObject* vobj) | 79 | void LLManip::rebuild(LLViewerObject* vobj) |
@@ -100,8 +104,48 @@ LLManip::LLManip( const std::string& name, LLToolComposite* composite ) | |||
100 | mHighlightedPart(LL_NO_PART), | 104 | mHighlightedPart(LL_NO_PART), |
101 | mManipPart(LL_NO_PART) | 105 | mManipPart(LL_NO_PART) |
102 | { | 106 | { |
103 | } | 107 | initPivot(); |
104 | 108 | ||
109 | gSavedPerAccountSettings.getControl("BuildPrefs_ActualRoot")->getSignal()->connect(&updateActualRoot); | ||
110 | gSavedPerAccountSettings.getControl("BuildPrefs_PivotIsPercent")->getSignal()->connect(&updatePivotIsPercent); | ||
111 | gSavedPerAccountSettings.getControl("BuildPrefs_PivotX")->getSignal()->connect(&updatePivotX); | ||
112 | gSavedPerAccountSettings.getControl("BuildPrefs_PivotY")->getSignal()->connect(&updatePivotY); | ||
113 | gSavedPerAccountSettings.getControl("BuildPrefs_PivotZ")->getSignal()->connect(&updatePivotZ); | ||
114 | } | ||
115 | //static | ||
116 | void LLManip::initPivot() | ||
117 | { | ||
118 | sActualRoot = (bool)gSavedPerAccountSettings.getBOOL("BuildPrefs_ActualRoot"); | ||
119 | sPivotPerc = (bool)gSavedPerAccountSettings.getBOOL("BuildPrefs_PivotIsPercent"); | ||
120 | sPivotX = gSavedPerAccountSettings.getF32("BuildPrefs_PivotX"); | ||
121 | sPivotY = gSavedPerAccountSettings.getF32("BuildPrefs_PivotY"); | ||
122 | sPivotZ = gSavedPerAccountSettings.getF32("BuildPrefs_PivotZ"); | ||
123 | } | ||
124 | //static | ||
125 | void LLManip::updateActualRoot(const LLSD &data) | ||
126 | { | ||
127 | sActualRoot = (bool)data.asBoolean(); | ||
128 | } | ||
129 | //static | ||
130 | void LLManip::updatePivotIsPercent(const LLSD &data) | ||
131 | { | ||
132 | sPivotPerc = (bool)data.asBoolean(); | ||
133 | } | ||
134 | //static | ||
135 | void LLManip::updatePivotX(const LLSD &data) | ||
136 | { | ||
137 | sPivotX = (F32)data.asReal(); | ||
138 | } | ||
139 | //static | ||
140 | void LLManip::updatePivotY(const LLSD &data) | ||
141 | { | ||
142 | sPivotY = (F32)data.asReal(); | ||
143 | } | ||
144 | //static | ||
145 | void LLManip::updatePivotZ(const LLSD &data) | ||
146 | { | ||
147 | sPivotZ = (F32)data.asReal(); | ||
148 | } | ||
105 | void LLManip::getManipNormal(LLViewerObject* object, EManipPart manip, LLVector3 &normal) | 149 | void LLManip::getManipNormal(LLViewerObject* object, EManipPart manip, LLVector3 &normal) |
106 | { | 150 | { |
107 | LLVector3 grid_origin; | 151 | LLVector3 grid_origin; |
@@ -351,11 +395,43 @@ LLVector3 LLManip::getSavedPivotPoint() const | |||
351 | 395 | ||
352 | LLVector3 LLManip::getPivotPoint() | 396 | LLVector3 LLManip::getPivotPoint() |
353 | { | 397 | { |
354 | if (mObjectSelection->getFirstObject() && mObjectSelection->getObjectCount() == 1 && mObjectSelection->getSelectType() != SELECT_TYPE_HUD) | 398 | LLVector3 pos; |
399 | LLVector3 scale; | ||
400 | LLQuaternion rot;// = mObjectSelection->getFirstObject()->getRotation(); | ||
401 | if (mObjectSelection->getFirstRootObject(TRUE) && (mObjectSelection->getObjectCount() == 1 || sActualRoot) && mObjectSelection->getSelectType() != SELECT_TYPE_HUD) | ||
402 | { | ||
403 | pos = mObjectSelection->getFirstRootObject(TRUE)->getPivotPositionAgent(); | ||
404 | scale = mObjectSelection->getFirstRootObject(TRUE)->getScale(); | ||
405 | rot = mObjectSelection->getFirstRootObject(TRUE)->getRotation(); | ||
406 | }else | ||
407 | { | ||
408 | pos = LLSelectMgr::getInstance()->getBBoxOfSelection().getCenterAgent(); | ||
409 | scale = LLSelectMgr::getInstance()->getBBoxOfSelection().getExtentLocal(); | ||
410 | rot = LLSelectMgr::getInstance()->getBBoxOfSelection().getRotation(); | ||
411 | } | ||
412 | if(sPivotPerc) | ||
413 | { | ||
414 | |||
415 | LLVector3 add( | ||
416 | (-scale[VX]*0.5) + (scale[VX]*(sPivotX*0.01)), | ||
417 | (-scale[VY]*0.5) + (scale[VY]*(sPivotY*0.01)), | ||
418 | (-scale[VZ]*0.5) + (scale[VZ]*(sPivotZ*0.01))); | ||
419 | add = add * rot; | ||
420 | pos = pos + add; | ||
421 | }else | ||
355 | { | 422 | { |
356 | return mObjectSelection->getFirstObject()->getPivotPositionAgent(); | 423 | //pos[VX] = pos[VX] + gSavedPerAccountSettings.getF32("BuildPrefs_PivotX"); |
424 | //pos[VY] = pos[VY] + gSavedPerAccountSettings.getF32("BuildPrefs_PivotY"); | ||
425 | //pos[VZ] = pos[VZ] + gSavedPerAccountSettings.getF32("BuildPrefs_PivotZ"); | ||
426 | LLVector3 add( | ||
427 | sPivotX, | ||
428 | sPivotY, | ||
429 | sPivotZ); | ||
430 | add = add * rot; | ||
431 | pos = pos + add; | ||
357 | } | 432 | } |
358 | return LLSelectMgr::getInstance()->getBBoxOfSelection().getCenterAgent(); | 433 | //pos = pos * rot; |
434 | return pos; | ||
359 | } | 435 | } |
360 | 436 | ||
361 | 437 | ||
diff --git a/linden/indra/newview/llmanip.h b/linden/indra/newview/llmanip.h index cdf6a36..38672fe 100644 --- a/linden/indra/newview/llmanip.h +++ b/linden/indra/newview/llmanip.h | |||
@@ -151,6 +151,13 @@ protected: | |||
151 | BOOL getMousePointOnPlaneAgent(LLVector3& point, S32 x, S32 y, LLVector3 origin, LLVector3 normal); | 151 | BOOL getMousePointOnPlaneAgent(LLVector3& point, S32 x, S32 y, LLVector3 origin, LLVector3 normal); |
152 | BOOL nearestPointOnLineFromMouse( S32 x, S32 y, const LLVector3& b1, const LLVector3& b2, F32 &a_param, F32 &b_param ); | 152 | BOOL nearestPointOnLineFromMouse( S32 x, S32 y, const LLVector3& b1, const LLVector3& b2, F32 &a_param, F32 &b_param ); |
153 | LLColor4 setupSnapGuideRenderPass(S32 pass); | 153 | LLColor4 setupSnapGuideRenderPass(S32 pass); |
154 | private: | ||
155 | static void initPivot(); | ||
156 | static void updateActualRoot(const LLSD &data); | ||
157 | static void updatePivotIsPercent(const LLSD &data); | ||
158 | static void updatePivotX(const LLSD &data); | ||
159 | static void updatePivotY(const LLSD &data); | ||
160 | static void updatePivotZ(const LLSD &data); | ||
154 | protected: | 161 | protected: |
155 | LLFrameTimer mHelpTextTimer; | 162 | LLFrameTimer mHelpTextTimer; |
156 | BOOL mInSnapRegime; | 163 | BOOL mInSnapRegime; |
@@ -165,6 +172,12 @@ protected: | |||
165 | static F32 sGridMaxSubdivisionLevel; | 172 | static F32 sGridMaxSubdivisionLevel; |
166 | static F32 sGridMinSubdivisionLevel; | 173 | static F32 sGridMinSubdivisionLevel; |
167 | static LLVector2 sTickLabelSpacing; | 174 | static LLVector2 sTickLabelSpacing; |
175 | |||
176 | static bool sActualRoot; | ||
177 | static bool sPivotPerc; | ||
178 | static F32 sPivotX; | ||
179 | static F32 sPivotY; | ||
180 | static F32 sPivotZ; | ||
168 | }; | 181 | }; |
169 | 182 | ||
170 | 183 | ||
diff --git a/linden/indra/newview/llmaniprotate.cpp b/linden/indra/newview/llmaniprotate.cpp index 8b0484b..ad7399e 100644 --- a/linden/indra/newview/llmaniprotate.cpp +++ b/linden/indra/newview/llmaniprotate.cpp | |||
@@ -57,7 +57,6 @@ | |||
57 | #include "llvoavatar.h" | 57 | #include "llvoavatar.h" |
58 | #include "llviewercamera.h" | 58 | #include "llviewercamera.h" |
59 | #include "llviewerobject.h" | 59 | #include "llviewerobject.h" |
60 | #include "llviewerobject.h" | ||
61 | #include "llviewerwindow.h" | 60 | #include "llviewerwindow.h" |
62 | #include "llworld.h" | 61 | #include "llworld.h" |
63 | #include "pipeline.h" | 62 | #include "pipeline.h" |
diff --git a/linden/indra/newview/lloverlaybar.cpp b/linden/indra/newview/lloverlaybar.cpp index 599d736..9f3776f 100644 --- a/linden/indra/newview/lloverlaybar.cpp +++ b/linden/indra/newview/lloverlaybar.cpp | |||
@@ -55,7 +55,6 @@ | |||
55 | #include "llviewerjoystick.h" | 55 | #include "llviewerjoystick.h" |
56 | #include "llviewermedia.h" | 56 | #include "llviewermedia.h" |
57 | #include "llviewermenu.h" // handle_reset_view() | 57 | #include "llviewermenu.h" // handle_reset_view() |
58 | #include "llviewermedia.h" | ||
59 | #include "llviewerparcelmedia.h" | 58 | #include "llviewerparcelmedia.h" |
60 | #include "llviewerparcelmgr.h" | 59 | #include "llviewerparcelmgr.h" |
61 | #include "lluictrlfactory.h" | 60 | #include "lluictrlfactory.h" |
diff --git a/linden/indra/newview/llprefsadvanced.cpp b/linden/indra/newview/llprefsadvanced.cpp new file mode 100644 index 0000000..88f066c --- /dev/null +++ b/linden/indra/newview/llprefsadvanced.cpp | |||
@@ -0,0 +1,97 @@ | |||
1 | /** | ||
2 | * @file llprefsadvanced.cpp | ||
3 | * @brief Advanced preferences options for Imprudence | ||
4 | * | ||
5 | * $LicenseInfo:firstyear=2009&license=viewergpl$ | ||
6 | * | ||
7 | * Copyright (c) 2010, McCabe Maxsted | ||
8 | * | ||
9 | * Imprudence Viewer Source Code | ||
10 | * The source code in this file ("Source Code") is provided to you | ||
11 | * under the terms of the GNU General Public License, version 2.0 | ||
12 | * ("GPL"). Terms of the GPL can be found in doc/GPL-license.txt in | ||
13 | * this distribution, or online at | ||
14 | * http://secondlifegrid.net/programs/open_source/licensing/gplv2 | ||
15 | * | ||
16 | * There are special exceptions to the terms and conditions of the GPL as | ||
17 | * it is applied to this Source Code. View the full text of the exception | ||
18 | * in the file doc/FLOSS-exception.txt in this software distribution, or | ||
19 | * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception | ||
20 | * | ||
21 | * By copying, modifying or distributing this software, you acknowledge | ||
22 | * that you have read and understood your obligations described above, | ||
23 | * and agree to abide by those obligations. | ||
24 | * | ||
25 | * ALL SOURCE CODE IS PROVIDED "AS IS." THE AUTHOR MAKES NO | ||
26 | * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY, | ||
27 | * COMPLETENESS OR PERFORMANCE. | ||
28 | * $/LicenseInfo$ | ||
29 | */ | ||
30 | |||
31 | #include "llviewerprecompiledheaders.h" | ||
32 | |||
33 | #include "llprefsadvanced.h" | ||
34 | #include "llviewercontrol.h" | ||
35 | |||
36 | #include "lluictrlfactory.h" | ||
37 | |||
38 | LLPrefsAdvanced::LLPrefsAdvanced() | ||
39 | { | ||
40 | LLUICtrlFactory::getInstance()->buildPanel(this, "panel_preferences_advanced.xml"); | ||
41 | } | ||
42 | |||
43 | LLPrefsAdvanced::~LLPrefsAdvanced() | ||
44 | { | ||
45 | // Children all cleaned up by default view destructor. | ||
46 | } | ||
47 | |||
48 | BOOL LLPrefsAdvanced::postBuild() | ||
49 | { | ||
50 | childSetValue("disable_log_screen_check", gSavedSettings.getBOOL("DisableLoginLogoutScreens")); | ||
51 | childSetValue("disable_tp_screen_check", gSavedSettings.getBOOL("DisableTeleportScreens")); | ||
52 | childSetValue("client_name_tag_check", gSavedSettings.getBOOL("ClothingLayerProtection")); | ||
53 | |||
54 | return TRUE; | ||
55 | } | ||
56 | |||
57 | void LLPrefsAdvanced::apply() | ||
58 | { | ||
59 | gSavedSettings.setBOOL("DisableLoginLogoutScreens", childGetValue("disable_log_screen_check")); | ||
60 | gSavedSettings.setBOOL("DisableTeleportScreens", childGetValue("disable_tp_screen_check")); | ||
61 | gSavedSettings.setBOOL("ClothingLayerProtection", childGetValue("client_name_tag_check")); | ||
62 | |||
63 | // This is bad bad BAD UI from Emerald, I know. | ||
64 | // If anyone wants to do this better, please do -- MC | ||
65 | if ( childGetValue("shadows_check").asBoolean() ) | ||
66 | { | ||
67 | if ( (gSavedSettings.getU32("RenderQualityPerformance") < 3) // Make sure we have everything enabled | ||
68 | || !gSavedSettings.getBOOL("WindLightUseAtmosShaders") | ||
69 | || !gSavedSettings.getBOOL("VertexShaderEnable") ) | ||
70 | { | ||
71 | childSetValue("shadows_check", FALSE); | ||
72 | LLNotifications::instance().add("NoShadows"); | ||
73 | llwarns << "Attempting to enable shadow rendering while graphics settings less than Ultra or shaders are missing!" << llendl; | ||
74 | } | ||
75 | else if ( (gSavedSettings.getBOOL("WindLightUseAtmosShaders") // If we do, toggle shadows in the correct order | ||
76 | && gSavedSettings.getBOOL("VertexShaderEnable")) ) | ||
77 | { | ||
78 | gSavedSettings.setBOOL("RenderUseFBO", childGetValue("shadows_check").asBoolean()); | ||
79 | gSavedSettings.setBOOL("RenderDeferred", childGetValue("shadows_check").asBoolean()); | ||
80 | llinfos << "Shadow rendering enabled" << llendl; | ||
81 | } | ||
82 | } | ||
83 | else if (!childGetValue("shadows_check").asBoolean()) | ||
84 | { | ||
85 | if (gSavedSettings.getBOOL("RenderDeferred")) | ||
86 | { | ||
87 | gSavedSettings.setBOOL("RenderDeferred", childGetValue("shadows_check").asBoolean()); | ||
88 | gSavedSettings.setBOOL("RenderUseFBO", childGetValue("shadows_check").asBoolean()); | ||
89 | llinfos << "Shadow rendering disabled" << llendl; | ||
90 | } | ||
91 | } | ||
92 | gSavedSettings.setBOOL("ShadowsEnabled", childGetValue("shadows_check").asBoolean()); | ||
93 | } | ||
94 | |||
95 | void LLPrefsAdvanced::cancel() | ||
96 | { | ||
97 | } | ||
diff --git a/linden/indra/newview/llprefsadvanced.h b/linden/indra/newview/llprefsadvanced.h new file mode 100644 index 0000000..382156e --- /dev/null +++ b/linden/indra/newview/llprefsadvanced.h | |||
@@ -0,0 +1,50 @@ | |||
1 | /** | ||
2 | * @file llprefsadvanced.h | ||
3 | * @brief Advanced preferences options for Imprudence | ||
4 | * | ||
5 | * $LicenseInfo:firstyear=2009&license=viewergpl$ | ||
6 | * | ||
7 | * Copyright (c) 2010, McCabe Maxsted | ||
8 | * | ||
9 | * Imprudence Viewer Source Code | ||
10 | * The source code in this file ("Source Code") is provided to you | ||
11 | * under the terms of the GNU General Public License, version 2.0 | ||
12 | * ("GPL"). Terms of the GPL can be found in doc/GPL-license.txt in | ||
13 | * this distribution, or online at | ||
14 | * http://secondlifegrid.net/programs/open_source/licensing/gplv2 | ||
15 | * | ||
16 | * There are special exceptions to the terms and conditions of the GPL as | ||
17 | * it is applied to this Source Code. View the full text of the exception | ||
18 | * in the file doc/FLOSS-exception.txt in this software distribution, or | ||
19 | * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception | ||
20 | * | ||
21 | * By copying, modifying or distributing this software, you acknowledge | ||
22 | * that you have read and understood your obligations described above, | ||
23 | * and agree to abide by those obligations. | ||
24 | * | ||
25 | * ALL SOURCE CODE IS PROVIDED "AS IS." THE AUTHOR MAKES NO | ||
26 | * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY, | ||
27 | * COMPLETENESS OR PERFORMANCE. | ||
28 | * $/LicenseInfo$ | ||
29 | */ | ||
30 | |||
31 | #ifndef LLPREFSADVANCED_H | ||
32 | #define LLPREFSADVANCED_H | ||
33 | |||
34 | #include "llpanel.h" | ||
35 | |||
36 | class LLPrefsAdvanced : public LLPanel | ||
37 | { | ||
38 | public: | ||
39 | LLPrefsAdvanced(); | ||
40 | ~LLPrefsAdvanced(); | ||
41 | |||
42 | BOOL postBuild(); | ||
43 | |||
44 | void apply(); | ||
45 | void cancel(); | ||
46 | |||
47 | private: | ||
48 | }; | ||
49 | |||
50 | #endif // LLPREFSADVANCED_H | ||
diff --git a/linden/indra/newview/llprefsim.cpp b/linden/indra/newview/llprefsim.cpp index 0c06122..045139c 100644 --- a/linden/indra/newview/llprefsim.cpp +++ b/linden/indra/newview/llprefsim.cpp | |||
@@ -35,6 +35,7 @@ | |||
35 | 35 | ||
36 | #include "llprefsim.h" | 36 | #include "llprefsim.h" |
37 | 37 | ||
38 | #include "floaterbusy.h" | ||
38 | #include "llpanel.h" | 39 | #include "llpanel.h" |
39 | #include "llcheckboxctrl.h" | 40 | #include "llcheckboxctrl.h" |
40 | #include "llstring.h" | 41 | #include "llstring.h" |
@@ -65,6 +66,8 @@ public: | |||
65 | static void onClickLogPath(void* user_data); | 66 | static void onClickLogPath(void* user_data); |
66 | static void onCommitLogging(LLUICtrl* ctrl, void* user_data); | 67 | static void onCommitLogging(LLUICtrl* ctrl, void* user_data); |
67 | 68 | ||
69 | static void onClickBusyAdvanced(void* user_data); | ||
70 | |||
68 | protected: | 71 | protected: |
69 | 72 | ||
70 | bool mGotPersonalInfo; | 73 | bool mGotPersonalInfo; |
@@ -136,6 +139,8 @@ BOOL LLPrefsIMImpl::postBuild() | |||
136 | childSetAction("log_path_button", onClickLogPath, this); | 139 | childSetAction("log_path_button", onClickLogPath, this); |
137 | childSetCommitCallback("log_chat",onCommitLogging,this); | 140 | childSetCommitCallback("log_chat",onCommitLogging,this); |
138 | childSetCommitCallback("log_instant_messages",onCommitLogging,this); | 141 | childSetCommitCallback("log_instant_messages",onCommitLogging,this); |
142 | |||
143 | childSetAction("busy_adv_btn", onClickBusyAdvanced, this); | ||
139 | 144 | ||
140 | return TRUE; | 145 | return TRUE; |
141 | } | 146 | } |
@@ -287,6 +292,13 @@ void LLPrefsIMImpl::setPersonalInfo(const std::string& visibility, bool im_via_e | |||
287 | 292 | ||
288 | 293 | ||
289 | // static | 294 | // static |
295 | void LLPrefsIMImpl::onClickBusyAdvanced(void* user_data) | ||
296 | { | ||
297 | FloaterBusy::getInstance()->open(); | ||
298 | FloaterBusy::getInstance()->center(); | ||
299 | } | ||
300 | |||
301 | // static | ||
290 | void LLPrefsIMImpl::onClickLogPath(void* user_data) | 302 | void LLPrefsIMImpl::onClickLogPath(void* user_data) |
291 | { | 303 | { |
292 | LLPrefsIMImpl* self=(LLPrefsIMImpl*)user_data; | 304 | LLPrefsIMImpl* self=(LLPrefsIMImpl*)user_data; |
diff --git a/linden/indra/newview/llpreviewnotecard.h b/linden/indra/newview/llpreviewnotecard.h index 75d1a50..a879fec 100644 --- a/linden/indra/newview/llpreviewnotecard.h +++ b/linden/indra/newview/llpreviewnotecard.h | |||
@@ -87,10 +87,11 @@ public: | |||
87 | void refreshFromInventory(); | 87 | void refreshFromInventory(); |
88 | 88 | ||
89 | LLTextEditor* getEditor(); | 89 | LLTextEditor* getEditor(); |
90 | |||
91 | bool saveIfNeeded(LLInventoryItem* copyitem = NULL); | ||
90 | protected: | 92 | protected: |
91 | 93 | ||
92 | virtual void loadAsset(); | 94 | virtual void loadAsset(); |
93 | bool saveIfNeeded(LLInventoryItem* copyitem = NULL); | ||
94 | 95 | ||
95 | static LLPreviewNotecard* getInstance(const LLUUID& uuid); | 96 | static LLPreviewNotecard* getInstance(const LLUUID& uuid); |
96 | 97 | ||
diff --git a/linden/indra/newview/llstartup.cpp b/linden/indra/newview/llstartup.cpp index ef25fb8..9073874 100644 --- a/linden/indra/newview/llstartup.cpp +++ b/linden/indra/newview/llstartup.cpp | |||
@@ -1019,7 +1019,7 @@ bool idle_startup() | |||
1019 | } | 1019 | } |
1020 | 1020 | ||
1021 | // Display the startup progress bar. | 1021 | // Display the startup progress bar. |
1022 | gViewerWindow->setShowProgress(TRUE); | 1022 | gViewerWindow->setShowProgress(!gSavedSettings.getBOOL("DisableLoginLogoutScreens")); |
1023 | gViewerWindow->setProgressCancelButtonVisible(TRUE, std::string("Quit")); // *TODO: Translate | 1023 | gViewerWindow->setProgressCancelButtonVisible(TRUE, std::string("Quit")); // *TODO: Translate |
1024 | 1024 | ||
1025 | // Poke the VFS, which could potentially block for a while if | 1025 | // Poke the VFS, which could potentially block for a while if |
@@ -2927,13 +2927,34 @@ bool first_run_dialog_callback(const LLSD& notification, const LLSD& response) | |||
2927 | } | 2927 | } |
2928 | 2928 | ||
2929 | 2929 | ||
2930 | 2930 | std::string last_d; | |
2931 | void set_startup_status(const F32 frac, const std::string& string, const std::string& msg) | 2931 | void set_startup_status(const F32 frac, const std::string& string, const std::string& msg) |
2932 | { | 2932 | { |
2933 | gViewerWindow->setProgressPercent(frac*100); | 2933 | if(gSavedSettings.getBOOL("DisableLoginLogoutScreens")) |
2934 | gViewerWindow->setProgressString(string); | 2934 | { |
2935 | std::string new_d = string; | ||
2936 | if(new_d != last_d) | ||
2937 | { | ||
2938 | last_d = new_d; | ||
2939 | LLChat chat; | ||
2940 | chat.mText = new_d; | ||
2941 | chat.mSourceType = CHAT_SOURCE_SYSTEM; | ||
2942 | LLFloaterChat::addChat(chat); | ||
2943 | if(new_d == LLTrans::getString("LoginWaitingForRegionHandshake")) | ||
2944 | { | ||
2945 | chat.mText = "MOTD: "+msg; | ||
2946 | chat.mSourceType = CHAT_SOURCE_SYSTEM; | ||
2947 | LLFloaterChat::addChat(chat); | ||
2948 | } | ||
2949 | } | ||
2950 | } | ||
2951 | else | ||
2952 | { | ||
2953 | gViewerWindow->setProgressPercent(frac*100); | ||
2954 | gViewerWindow->setProgressString(string); | ||
2935 | 2955 | ||
2936 | gViewerWindow->setProgressMessage(msg); | 2956 | gViewerWindow->setProgressMessage(msg); |
2957 | } | ||
2937 | } | 2958 | } |
2938 | 2959 | ||
2939 | bool login_alert_status(const LLSD& notification, const LLSD& response) | 2960 | bool login_alert_status(const LLSD& notification, const LLSD& response) |
diff --git a/linden/indra/newview/lltooldraganddrop.cpp b/linden/indra/newview/lltooldraganddrop.cpp index aa5bfad..a3ed16b 100644 --- a/linden/indra/newview/lltooldraganddrop.cpp +++ b/linden/indra/newview/lltooldraganddrop.cpp | |||
@@ -69,6 +69,9 @@ | |||
69 | #include "object_flags.h" | 69 | #include "object_flags.h" |
70 | #include "llimview.h" | 70 | #include "llimview.h" |
71 | 71 | ||
72 | #include "llparcel.h" // RezWithLandGroup | ||
73 | #include "llviewerparcelmgr.h" // RezWithLandGroup | ||
74 | |||
72 | 75 | ||
73 | // MAX ITEMS is based on (sizeof(uuid)+2) * count must be < MTUBYTES | 76 | // MAX ITEMS is based on (sizeof(uuid)+2) * count must be < MTUBYTES |
74 | // or 18 * count < 1200 => count < 1200/18 => 66. I've cut it down a | 77 | // or 18 * count < 1200 => count < 1200/18 => 66. I've cut it down a |
@@ -1357,6 +1360,29 @@ void LLToolDragAndDrop::dropObject(LLViewerObject* raycast_target, | |||
1357 | msg->addUUIDFast(_PREHASH_SessionID, gAgent.getSessionID()); | 1360 | msg->addUUIDFast(_PREHASH_SessionID, gAgent.getSessionID()); |
1358 | msg->addUUIDFast(_PREHASH_GroupID, gAgent.getGroupID()); | 1361 | msg->addUUIDFast(_PREHASH_GroupID, gAgent.getGroupID()); |
1359 | 1362 | ||
1363 | // RezWithLandGroup 2009-05, If avatar is in land group/land owner group, | ||
1364 | //it rezzes it with it to prevent autoreturn/whatever... | ||
1365 | if ( gSavedSettings.getBOOL("RezWithLandGroup") ) | ||
1366 | { | ||
1367 | LLParcel *parcel = LLViewerParcelMgr::getInstance()->getAgentParcel(); | ||
1368 | if ( gAgent.isInGroup(parcel->getGroupID()) ) | ||
1369 | { | ||
1370 | msg->addUUIDFast(_PREHASH_GroupID, parcel->getGroupID()); | ||
1371 | } | ||
1372 | else if ( gAgent.isInGroup(parcel->getOwnerID()) ) | ||
1373 | { | ||
1374 | msg->addUUIDFast(_PREHASH_GroupID, parcel->getOwnerID()); | ||
1375 | } | ||
1376 | else | ||
1377 | { | ||
1378 | msg->addUUIDFast(_PREHASH_GroupID, gAgent.getGroupID()); | ||
1379 | } | ||
1380 | } | ||
1381 | else | ||
1382 | { | ||
1383 | msg->addUUIDFast(_PREHASH_GroupID, gAgent.getGroupID()); | ||
1384 | } | ||
1385 | |||
1360 | msg->nextBlock("RezData"); | 1386 | msg->nextBlock("RezData"); |
1361 | // if it's being rezzed from task inventory, we need to enable | 1387 | // if it's being rezzed from task inventory, we need to enable |
1362 | // saving it back into the task inventory. | 1388 | // saving it back into the task inventory. |
diff --git a/linden/indra/newview/lltoolplacer.cpp b/linden/indra/newview/lltoolplacer.cpp index 84e0203..18793c5 100644 --- a/linden/indra/newview/lltoolplacer.cpp +++ b/linden/indra/newview/lltoolplacer.cpp | |||
@@ -65,6 +65,9 @@ | |||
65 | #include "llviewercamera.h" | 65 | #include "llviewercamera.h" |
66 | #include "llviewerstats.h" | 66 | #include "llviewerstats.h" |
67 | 67 | ||
68 | #include "llparcel.h" // RezWithLandGroup | ||
69 | #include "llviewerparcelmgr.h" // RezWithLandGroup | ||
70 | |||
68 | const LLVector3 DEFAULT_OBJECT_SCALE(0.5f, 0.5f, 0.5f); | 71 | const LLVector3 DEFAULT_OBJECT_SCALE(0.5f, 0.5f, 0.5f); |
69 | 72 | ||
70 | //static | 73 | //static |
@@ -213,8 +216,22 @@ BOOL LLToolPlacer::addObject( LLPCode pcode, S32 x, S32 y, U8 use_physics ) | |||
213 | 216 | ||
214 | // Set params for new object based on its PCode. | 217 | // Set params for new object based on its PCode. |
215 | LLQuaternion rotation; | 218 | LLQuaternion rotation; |
216 | LLVector3 scale = DEFAULT_OBJECT_SCALE; | 219 | LLVector3 scale = LLVector3( |
220 | gSavedPerAccountSettings.getF32("BuildPrefs_Xsize"), | ||
221 | gSavedPerAccountSettings.getF32("BuildPrefs_Ysize"), | ||
222 | gSavedPerAccountSettings.getF32("BuildPrefs_Zsize")); | ||
223 | |||
217 | U8 material = LL_MCODE_WOOD; | 224 | U8 material = LL_MCODE_WOOD; |
225 | if(gSavedPerAccountSettings.getString("BuildPrefs_Material")== "Stone") material = LL_MCODE_STONE; | ||
226 | if(gSavedPerAccountSettings.getString("BuildPrefs_Material")== "Metal") material = LL_MCODE_METAL; | ||
227 | if(gSavedPerAccountSettings.getString("BuildPrefs_Material")== "Wood") material = LL_MCODE_WOOD; | ||
228 | if(gSavedPerAccountSettings.getString("BuildPrefs_Material")== "Flesh") material = LL_MCODE_FLESH; | ||
229 | if(gSavedPerAccountSettings.getString("BuildPrefs_Material")== "Rubber") material = LL_MCODE_RUBBER; | ||
230 | if(gSavedPerAccountSettings.getString("BuildPrefs_Material")== "Plastic") material = LL_MCODE_PLASTIC; | ||
231 | |||
232 | |||
233 | |||
234 | |||
218 | BOOL create_selected = FALSE; | 235 | BOOL create_selected = FALSE; |
219 | LLVolumeParams volume_params; | 236 | LLVolumeParams volume_params; |
220 | 237 | ||
@@ -255,12 +272,33 @@ BOOL LLToolPlacer::addObject( LLPCode pcode, S32 x, S32 y, U8 use_physics ) | |||
255 | gMessageSystem->nextBlockFast(_PREHASH_AgentData); | 272 | gMessageSystem->nextBlockFast(_PREHASH_AgentData); |
256 | gMessageSystem->addUUIDFast(_PREHASH_AgentID, gAgent.getID()); | 273 | gMessageSystem->addUUIDFast(_PREHASH_AgentID, gAgent.getID()); |
257 | gMessageSystem->addUUIDFast(_PREHASH_SessionID, gAgent.getSessionID()); | 274 | gMessageSystem->addUUIDFast(_PREHASH_SessionID, gAgent.getSessionID()); |
258 | gMessageSystem->addUUIDFast(_PREHASH_GroupID, gAgent.getGroupID()); | 275 | // RezWithLandGroup 2009-05, If avatar is in land group/land owner group, |
276 | // it rezzes it with it to prevent autoreturn/whatever | ||
277 | if ( gSavedSettings.getBOOL("RezWithLandGroup") ) | ||
278 | { | ||
279 | LLParcel *parcel = LLViewerParcelMgr::getInstance()->getAgentParcel(); | ||
280 | if ( gAgent.isInGroup(parcel->getGroupID()) ) | ||
281 | { | ||
282 | gMessageSystem->addUUIDFast(_PREHASH_GroupID, parcel->getGroupID()); | ||
283 | } | ||
284 | else if ( gAgent.isInGroup(parcel->getOwnerID()) ) | ||
285 | { | ||
286 | gMessageSystem->addUUIDFast(_PREHASH_GroupID, parcel->getOwnerID()); | ||
287 | } | ||
288 | else | ||
289 | { | ||
290 | gMessageSystem->addUUIDFast(_PREHASH_GroupID, gAgent.getGroupID()); | ||
291 | } | ||
292 | } | ||
293 | else | ||
294 | { | ||
295 | gMessageSystem->addUUIDFast(_PREHASH_GroupID, gAgent.getGroupID()); | ||
296 | } | ||
259 | gMessageSystem->nextBlockFast(_PREHASH_ObjectData); | 297 | gMessageSystem->nextBlockFast(_PREHASH_ObjectData); |
260 | gMessageSystem->addU8Fast(_PREHASH_Material, material); | 298 | gMessageSystem->addU8Fast(_PREHASH_Material, material); |
261 | 299 | ||
262 | U32 flags = 0; // not selected | 300 | U32 flags = 0; // not selected |
263 | if (use_physics) | 301 | if (use_physics || gSavedPerAccountSettings.getBOOL("BuildPrefs_Physical")) |
264 | { | 302 | { |
265 | flags |= FLAGS_USE_PHYSICS; | 303 | flags |= FLAGS_USE_PHYSICS; |
266 | } | 304 | } |
diff --git a/linden/indra/newview/llviewerdisplay.cpp b/linden/indra/newview/llviewerdisplay.cpp index 28d048b..ad186d5 100644 --- a/linden/indra/newview/llviewerdisplay.cpp +++ b/linden/indra/newview/llviewerdisplay.cpp | |||
@@ -46,6 +46,7 @@ | |||
46 | #include "lldrawpoolalpha.h" | 46 | #include "lldrawpoolalpha.h" |
47 | #include "llfeaturemanager.h" | 47 | #include "llfeaturemanager.h" |
48 | #include "llfirstuse.h" | 48 | #include "llfirstuse.h" |
49 | #include "llfloaterchat.h" | ||
49 | #include "llframestats.h" | 50 | #include "llframestats.h" |
50 | #include "llhudmanager.h" | 51 | #include "llhudmanager.h" |
51 | #include "llimagebmp.h" | 52 | #include "llimagebmp.h" |
@@ -69,7 +70,6 @@ | |||
69 | #include "pipeline.h" | 70 | #include "pipeline.h" |
70 | #include "llspatialpartition.h" | 71 | #include "llspatialpartition.h" |
71 | #include "llappviewer.h" | 72 | #include "llappviewer.h" |
72 | #include "llstartup.h" | ||
73 | #include "llviewershadermgr.h" | 73 | #include "llviewershadermgr.h" |
74 | #include "llfasttimer.h" | 74 | #include "llfasttimer.h" |
75 | #include "llfloatertools.h" | 75 | #include "llfloatertools.h" |
@@ -116,6 +116,8 @@ void render_ui_2d(); | |||
116 | void render_disconnected_background(); | 116 | void render_disconnected_background(); |
117 | void render_hud_elements(); | 117 | void render_hud_elements(); |
118 | 118 | ||
119 | void display_teleport_chat(const LLAgent::ETeleportState tp_state, const std::string& msg); | ||
120 | |||
119 | void display_startup() | 121 | void display_startup() |
120 | { | 122 | { |
121 | if ( !gViewerWindow->getActive() | 123 | if ( !gViewerWindow->getActive() |
@@ -348,7 +350,10 @@ void display(BOOL rebuild, F32 zoom_factor, int subfield, BOOL for_snapshot) | |||
348 | // Transition to REQUESTED. Viewer has sent some kind | 350 | // Transition to REQUESTED. Viewer has sent some kind |
349 | // of TeleportRequest to the source simulator | 351 | // of TeleportRequest to the source simulator |
350 | gTeleportDisplayTimer.reset(); | 352 | gTeleportDisplayTimer.reset(); |
351 | gViewerWindow->setShowProgress(TRUE); | 353 | if (!gSavedSettings.getBOOL("DisableTeleportScreens")) |
354 | { | ||
355 | gViewerWindow->setShowProgress(TRUE); | ||
356 | } | ||
352 | gViewerWindow->setProgressPercent(0); | 357 | gViewerWindow->setProgressPercent(0); |
353 | gAgent.setTeleportState( LLAgent::TELEPORT_REQUESTED ); | 358 | gAgent.setTeleportState( LLAgent::TELEPORT_REQUESTED ); |
354 | gAgent.setTeleportMessage( | 359 | gAgent.setTeleportMessage( |
@@ -358,13 +363,28 @@ void display(BOOL rebuild, F32 zoom_factor, int subfield, BOOL for_snapshot) | |||
358 | case LLAgent::TELEPORT_REQUESTED: | 363 | case LLAgent::TELEPORT_REQUESTED: |
359 | // Waiting for source simulator to respond | 364 | // Waiting for source simulator to respond |
360 | gViewerWindow->setProgressPercent( llmin(teleport_percent, 37.5f) ); | 365 | gViewerWindow->setProgressPercent( llmin(teleport_percent, 37.5f) ); |
361 | gViewerWindow->setProgressString(message); | 366 | gTeleportDisplayTimer.reset(); |
367 | if (!gSavedSettings.getBOOL("DisableTeleportScreens")) | ||
368 | { | ||
369 | gViewerWindow->setProgressString(message); | ||
370 | } | ||
371 | else | ||
372 | { | ||
373 | display_teleport_chat(LLAgent::TELEPORT_REQUESTED, message); | ||
374 | } | ||
362 | break; | 375 | break; |
363 | 376 | ||
364 | case LLAgent::TELEPORT_MOVING: | 377 | case LLAgent::TELEPORT_MOVING: |
365 | // Viewer has received destination location from source simulator | 378 | // Viewer has received destination location from source simulator |
366 | gViewerWindow->setProgressPercent( llmin(teleport_percent, 75.f) ); | 379 | gViewerWindow->setProgressPercent( llmin(teleport_percent, 75.f) ); |
367 | gViewerWindow->setProgressString(message); | 380 | if (!gSavedSettings.getBOOL("DisableTeleportScreens")) |
381 | { | ||
382 | gViewerWindow->setProgressString(message); | ||
383 | } | ||
384 | else | ||
385 | { | ||
386 | display_teleport_chat(LLAgent::TELEPORT_MOVING, message); | ||
387 | } | ||
368 | break; | 388 | break; |
369 | 389 | ||
370 | case LLAgent::TELEPORT_START_ARRIVAL: | 390 | case LLAgent::TELEPORT_START_ARRIVAL: |
@@ -376,14 +396,21 @@ void display(BOOL rebuild, F32 zoom_factor, int subfield, BOOL for_snapshot) | |||
376 | gAgent.setTeleportMessage( | 396 | gAgent.setTeleportMessage( |
377 | LLAgent::sTeleportProgressMessages["arriving"]); | 397 | LLAgent::sTeleportProgressMessages["arriving"]); |
378 | gImageList.mForceResetTextureStats = TRUE; | 398 | gImageList.mForceResetTextureStats = TRUE; |
379 | gAgent.resetView(TRUE, TRUE); | 399 | if (!gSavedSettings.getBOOL("DisableTeleportScreens")) |
400 | { | ||
401 | gAgent.resetView(TRUE, TRUE); | ||
402 | } | ||
403 | else | ||
404 | { | ||
405 | //display_teleport_chat(LLAgent::TELEPORT_MOVING, LLAgent::sTeleportProgressMessages["arriving"]); | ||
406 | } | ||
380 | break; | 407 | break; |
381 | 408 | ||
382 | case LLAgent::TELEPORT_ARRIVING: | 409 | case LLAgent::TELEPORT_ARRIVING: |
383 | // Make the user wait while content "pre-caches" | 410 | // Make the user wait while content "pre-caches" |
384 | { | 411 | { |
385 | F32 arrival_fraction = (gTeleportArrivalTimer.getElapsedTimeF32() / TELEPORT_ARRIVAL_DELAY); | 412 | F32 arrival_fraction = (gTeleportArrivalTimer.getElapsedTimeF32() / TELEPORT_ARRIVAL_DELAY); |
386 | if( arrival_fraction > 1.f ) | 413 | if( arrival_fraction > 1.f || gSavedSettings.getBOOL("DisableTeleportScreens")) |
387 | { | 414 | { |
388 | arrival_fraction = 1.f; | 415 | arrival_fraction = 1.f; |
389 | LLFirstUse::useTeleport(); | 416 | LLFirstUse::useTeleport(); |
@@ -391,7 +418,14 @@ void display(BOOL rebuild, F32 zoom_factor, int subfield, BOOL for_snapshot) | |||
391 | } | 418 | } |
392 | gViewerWindow->setProgressCancelButtonVisible(FALSE, std::string("Cancel")); //TODO: Translate | 419 | gViewerWindow->setProgressCancelButtonVisible(FALSE, std::string("Cancel")); //TODO: Translate |
393 | gViewerWindow->setProgressPercent( arrival_fraction * 25.f + 75.f); | 420 | gViewerWindow->setProgressPercent( arrival_fraction * 25.f + 75.f); |
394 | gViewerWindow->setProgressString(message); | 421 | if ( !gSavedSettings.getBOOL("DisableTeleportScreens") ) |
422 | { | ||
423 | gViewerWindow->setProgressString(message); | ||
424 | } | ||
425 | else | ||
426 | { | ||
427 | display_teleport_chat(LLAgent::TELEPORT_ARRIVING, message); | ||
428 | } | ||
395 | } | 429 | } |
396 | break; | 430 | break; |
397 | 431 | ||
@@ -1358,3 +1392,19 @@ void display_cleanup() | |||
1358 | { | 1392 | { |
1359 | gDisconnectedImagep = NULL; | 1393 | gDisconnectedImagep = NULL; |
1360 | } | 1394 | } |
1395 | |||
1396 | static LLAgent::ETeleportState old_tp_state = LLAgent::TELEPORT_NONE; | ||
1397 | void display_teleport_chat(const LLAgent::ETeleportState tp_state, const std::string& msg) | ||
1398 | { | ||
1399 | // Display different messages as the teleport progresses. | ||
1400 | // Some are fetched from the sim, others are hardcoded -- MC | ||
1401 | |||
1402 | LLAgent::ETeleportState new_tp_state = tp_state; | ||
1403 | if (old_tp_state != new_tp_state) | ||
1404 | { | ||
1405 | LLChat chat (msg); | ||
1406 | chat.mSourceType = CHAT_SOURCE_SYSTEM; | ||
1407 | LLFloaterChat::addChat(chat, FALSE, FALSE); | ||
1408 | old_tp_state = new_tp_state; | ||
1409 | } | ||
1410 | } | ||
diff --git a/linden/indra/newview/llviewermenu.cpp b/linden/indra/newview/llviewermenu.cpp index 41c3578..9d06853 100644 --- a/linden/indra/newview/llviewermenu.cpp +++ b/linden/indra/newview/llviewermenu.cpp | |||
@@ -81,6 +81,7 @@ | |||
81 | #include "llface.h" | 81 | #include "llface.h" |
82 | #include "llfirstuse.h" | 82 | #include "llfirstuse.h" |
83 | #include "llfloater.h" | 83 | #include "llfloater.h" |
84 | #include "floaterao.h" | ||
84 | #include "llfloaterabout.h" | 85 | #include "llfloaterabout.h" |
85 | #include "llfloaterbuycurrency.h" | 86 | #include "llfloaterbuycurrency.h" |
86 | #include "llfloateractivespeakers.h" | 87 | #include "llfloateractivespeakers.h" |
@@ -8601,6 +8602,26 @@ class LLAdvancedTogglePhantom: public view_listener_t | |||
8601 | 8602 | ||
8602 | }; | 8603 | }; |
8603 | 8604 | ||
8605 | |||
8606 | class LLViewToggleAO : public view_listener_t | ||
8607 | { | ||
8608 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | ||
8609 | { | ||
8610 | LLFloaterAO::show(NULL); | ||
8611 | return true; | ||
8612 | } | ||
8613 | }; | ||
8614 | |||
8615 | class LLViewCheckAO: public view_listener_t | ||
8616 | { | ||
8617 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | ||
8618 | { | ||
8619 | gMenuHolder->findControl(userdata["control"].asString())->setValue(LLFloaterAO::getInstance()); | ||
8620 | return true; | ||
8621 | } | ||
8622 | }; | ||
8623 | |||
8624 | |||
8604 | class LLAdvancedCheckPhantom: public view_listener_t | 8625 | class LLAdvancedCheckPhantom: public view_listener_t |
8605 | { | 8626 | { |
8606 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | 8627 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) |
@@ -10725,6 +10746,7 @@ void initialize_menus() | |||
10725 | addMenu(new LLZoomer(1/1.2f), "View.ZoomIn"); | 10746 | addMenu(new LLZoomer(1/1.2f), "View.ZoomIn"); |
10726 | addMenu(new LLZoomer(DEFAULT_FIELD_OF_VIEW, false), "View.ZoomDefault"); | 10747 | addMenu(new LLZoomer(DEFAULT_FIELD_OF_VIEW, false), "View.ZoomDefault"); |
10727 | addMenu(new LLViewFullscreen(), "View.Fullscreen"); | 10748 | addMenu(new LLViewFullscreen(), "View.Fullscreen"); |
10749 | addMenu(new LLViewToggleAO(), "View.ToggleAO"); | ||
10728 | addMenu(new LLViewToggleAdvanced(), "View.ToggleAdvanced"); | 10750 | addMenu(new LLViewToggleAdvanced(), "View.ToggleAdvanced"); |
10729 | 10751 | ||
10730 | addMenu(new LLViewEnableMouselook(), "View.EnableMouselook"); | 10752 | addMenu(new LLViewEnableMouselook(), "View.EnableMouselook"); |
@@ -10737,6 +10759,7 @@ void initialize_menus() | |||
10737 | addMenu(new LLViewCheckHighlightTransparent(), "View.CheckHighlightTransparent"); | 10759 | addMenu(new LLViewCheckHighlightTransparent(), "View.CheckHighlightTransparent"); |
10738 | addMenu(new LLViewCheckRenderType(), "View.CheckRenderType"); | 10760 | addMenu(new LLViewCheckRenderType(), "View.CheckRenderType"); |
10739 | addMenu(new LLViewCheckHUDAttachments(), "View.CheckHUDAttachments"); | 10761 | addMenu(new LLViewCheckHUDAttachments(), "View.CheckHUDAttachments"); |
10762 | addMenu(new LLViewCheckAO(), "View.CheckAO"); | ||
10740 | addMenu(new LLViewCheckAdvanced(), "View.CheckAdvanced"); | 10763 | addMenu(new LLViewCheckAdvanced(), "View.CheckAdvanced"); |
10741 | 10764 | ||
10742 | // World menu | 10765 | // World menu |
diff --git a/linden/indra/newview/llviewermessage.cpp b/linden/indra/newview/llviewermessage.cpp index afd8503..6dfd9fb 100644 --- a/linden/indra/newview/llviewermessage.cpp +++ b/linden/indra/newview/llviewermessage.cpp | |||
@@ -141,6 +141,7 @@ | |||
141 | #include "hippoLimits.h" | 141 | #include "hippoLimits.h" |
142 | 142 | ||
143 | #include <boost/tokenizer.hpp> | 143 | #include <boost/tokenizer.hpp> |
144 | #include <boost/regex.hpp> // Boost Reg Expresions | ||
144 | 145 | ||
145 | #if LL_WINDOWS // For Windows specific error handler | 146 | #if LL_WINDOWS // For Windows specific error handler |
146 | #include "llwindebug.h" // For the invalid message handler | 147 | #include "llwindebug.h" // For the invalid message handler |
@@ -1481,6 +1482,8 @@ void process_improved_im(LLMessageSystem *msg, void **user_data) | |||
1481 | BOOL is_muted = LLMuteList::getInstance()->isMuted(from_id, name, LLMute::flagTextChat); | 1482 | BOOL is_muted = LLMuteList::getInstance()->isMuted(from_id, name, LLMute::flagTextChat); |
1482 | BOOL is_linden = LLMuteList::getInstance()->isLinden(name); | 1483 | BOOL is_linden = LLMuteList::getInstance()->isLinden(name); |
1483 | BOOL is_owned_by_me = FALSE; | 1484 | BOOL is_owned_by_me = FALSE; |
1485 | |||
1486 | LLUUID computed_session_id = LLIMMgr::computeSessionID(dialog,from_id); | ||
1484 | 1487 | ||
1485 | chat.mMuted = is_muted && !is_linden; | 1488 | chat.mMuted = is_muted && !is_linden; |
1486 | chat.mFromID = from_id; | 1489 | chat.mFromID = from_id; |
@@ -1504,12 +1507,259 @@ void process_improved_im(LLMessageSystem *msg, void **user_data) | |||
1504 | message_offset = 3; | 1507 | message_offset = 3; |
1505 | } | 1508 | } |
1506 | 1509 | ||
1510 | if(dialog == IM_TYPING_START | ||
1511 | || dialog == IM_NOTHING_SPECIAL | ||
1512 | || dialog == IM_TYPING_STOP | ||
1513 | || dialog == IM_BUSY_AUTO_RESPONSE) | ||
1514 | { | ||
1515 | |||
1516 | if(session_id != computed_session_id) | ||
1517 | { | ||
1518 | session_id = computed_session_id; | ||
1519 | /*if(!gIMMgr->hasSession(correct_session)) | ||
1520 | { | ||
1521 | //LLUUID sess = gIMMgr->addSession(name, dialog, from_id); | ||
1522 | LLUUID sess = gIMMgr->addSession(name, IM_NOTHING_SPECIAL, from_id); | ||
1523 | make_ui_sound("UISndNewIncomingIMSession"); | ||
1524 | gIMMgr->addMessage( | ||
1525 | sess, | ||
1526 | from_id, | ||
1527 | SYSTEM_FROM, | ||
1528 | "Invalid session id used by "+name+", corrected.", | ||
1529 | LLStringUtil::null, | ||
1530 | IM_NOTHING_SPECIAL, | ||
1531 | parent_estate_id, | ||
1532 | region_id, | ||
1533 | position, | ||
1534 | false); | ||
1535 | }*/ | ||
1536 | } | ||
1537 | } | ||
1538 | /*if(dialog == IM_NOTHING_SPECIAL) | ||
1539 | { | ||
1540 | LLVOAvatar* avatarp = find_avatar(from_id); | ||
1541 | if(avatarp) | ||
1542 | { | ||
1543 | if(avatarp->mCheckingCryolife < 2 && avatarp->mIsCryolife == FALSE) | ||
1544 | { | ||
1545 | boost::regex re( | ||
1546 | ".* \\d+\\.\\d+\\.\\d+ \\(\\d+\\) \\w{3,5} \\d+ \\d+ \\d+:\\d+:\\d+ \\(.*\\) <.+,.+,.+>:.+" | ||
1547 | , boost::regex_constants::icase); | ||
1548 | if(boost::regex_match(message,re)) | ||
1549 | { | ||
1550 | //llinfos << "CryoLife user detected " << from_id.asString() << llendl; | ||
1551 | avatarp->mCheckingCryolife = 2; | ||
1552 | avatarp->mIsCryolife = TRUE; | ||
1553 | LLVector3 root_pos_last = avatarp->mRoot.getWorldPosition(); | ||
1554 | avatarp->idleUpdateNameTag(root_pos_last); | ||
1555 | return; | ||
1556 | } | ||
1557 | else | ||
1558 | { | ||
1559 | llinfos << "CryoLife user not detected " << from_id.asString() << llendl; | ||
1560 | } | ||
1561 | } | ||
1562 | } | ||
1563 | }*/ | ||
1564 | bool typing_init = false; | ||
1565 | if( dialog == IM_TYPING_START && !is_muted ) | ||
1566 | { | ||
1567 | if(!gIMMgr->hasSession(computed_session_id) && gSavedPerAccountSettings.getBOOL("InstantMessageAnnounceIncoming")) | ||
1568 | { | ||
1569 | typing_init = true; | ||
1570 | if( gSavedPerAccountSettings.getBOOL("InstantMessageAnnounceStealFocus") ) | ||
1571 | { | ||
1572 | /*LLUUID sess =*/ gIMMgr->addSession(name, IM_NOTHING_SPECIAL, from_id); | ||
1573 | make_ui_sound("UISndNewIncomingIMSession"); | ||
1574 | } | ||
1575 | gIMMgr->addMessage( | ||
1576 | computed_session_id, | ||
1577 | from_id, | ||
1578 | name, | ||
1579 | llformat("You sense a disturbance in the force... (%s is typing)",name.c_str()), | ||
1580 | name, | ||
1581 | IM_NOTHING_SPECIAL, | ||
1582 | parent_estate_id, | ||
1583 | region_id, | ||
1584 | position, | ||
1585 | false); | ||
1586 | } | ||
1587 | } | ||
1588 | |||
1589 | bool is_auto_response = false; | ||
1590 | if(dialog == IM_NOTHING_SPECIAL) { | ||
1591 | // detect auto responses from GreenLife and compatible viewers | ||
1592 | is_auto_response = ( message.substr(0, 21) == "/me (auto-response): " ); | ||
1593 | } | ||
1594 | |||
1595 | bool do_auto_response = false; | ||
1596 | if( gSavedPerAccountSettings.getBOOL("InstantMessageResponseAnyone" ) ) | ||
1597 | do_auto_response = true; | ||
1598 | |||
1599 | // odd name for auto respond to non-friends | ||
1600 | if( gSavedPerAccountSettings.getBOOL("InstantMessageResponseFriends") && | ||
1601 | LLAvatarTracker::instance().getBuddyInfo(from_id) == NULL ) | ||
1602 | do_auto_response = true; | ||
1603 | |||
1604 | if( is_muted && !gSavedPerAccountSettings.getBOOL("InstantMessageResponseMuted") ) | ||
1605 | do_auto_response = false; | ||
1606 | |||
1607 | if( offline != IM_ONLINE ) | ||
1608 | do_auto_response = false; | ||
1609 | |||
1610 | if( is_auto_response ) | ||
1611 | do_auto_response = false; | ||
1612 | |||
1613 | // handle cases where IM_NOTHING_SPECIAL is not an IM | ||
1614 | if( name == SYSTEM_FROM || | ||
1615 | from_id.isNull() || | ||
1616 | to_id.isNull() ) | ||
1617 | do_auto_response = false; | ||
1618 | |||
1619 | // if( do_auto_response ) | ||
1620 | // [RLVa:KB] - Alternate: Emerald-370 | ||
1621 | // Emerald specific: auto-response should be blocked if the avie is RLV @sendim=n restricted and the recipient is not an exception | ||
1622 | if ( (do_auto_response) && ( (!gRlvHandler.hasBehaviour(RLV_BHVR_SENDIM)) || (gRlvHandler.isException(RLV_BHVR_SENDIM, from_id)) ) ) | ||
1623 | // [/RLVa:KB] | ||
1624 | { | ||
1625 | if((dialog == IM_NOTHING_SPECIAL && !is_auto_response) || | ||
1626 | (dialog == IM_TYPING_START && gSavedPerAccountSettings.getBOOL("InstantMessageShowOnTyping")) | ||
1627 | ) | ||
1628 | { | ||
1629 | BOOL has = gIMMgr->hasSession(computed_session_id); | ||
1630 | if(!has || gSavedPerAccountSettings.getBOOL("InstantMessageResponseRepeat") || typing_init) | ||
1631 | { | ||
1632 | BOOL show = !gSavedPerAccountSettings.getBOOL("InstantMessageShowResponded"); | ||
1633 | if(!has && show) | ||
1634 | { | ||
1635 | gIMMgr->addSession(name, IM_NOTHING_SPECIAL, from_id); | ||
1636 | } | ||
1637 | if(show) | ||
1638 | { | ||
1639 | gIMMgr->addMessage( | ||
1640 | computed_session_id, | ||
1641 | from_id, | ||
1642 | SYSTEM_FROM, | ||
1643 | llformat("Autoresponse sent to %s.",name.c_str()), | ||
1644 | LLStringUtil::null, | ||
1645 | IM_NOTHING_SPECIAL, | ||
1646 | parent_estate_id, | ||
1647 | region_id, | ||
1648 | position, | ||
1649 | false); | ||
1650 | } | ||
1651 | std::string my_name; | ||
1652 | gAgent.buildFullname(my_name); | ||
1653 | |||
1654 | //<-- Personalized Autoresponse by Madgeek | ||
1655 | std::string autoresponse = gSavedPerAccountSettings.getText("InstantMessageResponse"); | ||
1656 | //Define Wildcards | ||
1657 | std::string fname_wildcard = "#f"; | ||
1658 | std::string lname_wildcard = "#l"; | ||
1659 | std::string time_wildcard = "#t"; | ||
1660 | //Extract Name | ||
1661 | std::string f_name, l_name; | ||
1662 | std::istringstream inname(name); | ||
1663 | inname >> f_name >> l_name; | ||
1664 | //Generate a Timestamp | ||
1665 | time_t rawtime; | ||
1666 | time(&rawtime); | ||
1667 | char * timestamp_chars; | ||
1668 | timestamp_chars = asctime(localtime(&rawtime)); | ||
1669 | std::string timestamp; | ||
1670 | timestamp.assign(timestamp_chars); | ||
1671 | timestamp = timestamp.substr(0, timestamp.find('\n')); | ||
1672 | //Handle Replacements | ||
1673 | size_t found = autoresponse.find(fname_wildcard); | ||
1674 | while(found != std::string::npos) | ||
1675 | { | ||
1676 | autoresponse.replace(found, 2, f_name); | ||
1677 | found = autoresponse.find(fname_wildcard); | ||
1678 | } | ||
1679 | found = autoresponse.find(lname_wildcard); | ||
1680 | while(found != std::string::npos) | ||
1681 | { | ||
1682 | autoresponse.replace(found, 2, l_name); | ||
1683 | found = autoresponse.find(lname_wildcard); | ||
1684 | } | ||
1685 | found = autoresponse.find(time_wildcard); | ||
1686 | while(found != std::string::npos) | ||
1687 | { | ||
1688 | autoresponse.replace(found, 2, timestamp); | ||
1689 | found = autoresponse.find(time_wildcard); | ||
1690 | } | ||
1691 | //--> Personalized Autoresponse | ||
1692 | |||
1693 | if(gSavedPerAccountSettings.getBOOL("InstantMessageResponseRepeat") && has && !typing_init) { | ||
1694 | // send as busy auto response instead to prevent endless repeating replies | ||
1695 | // when other end is a bot or broken client that answers to every usual IM | ||
1696 | // reasoning for this decision can be found in RFC2812 3.3.2 Notices | ||
1697 | // where PRIVMSG can be seen as IM_NOTHING_SPECIAL and NOTICE can be seen as | ||
1698 | // IM_BUSY_AUTO_RESPONSE. The assumption here is that no existing client | ||
1699 | // responds to IM_BUSY_AUTO_RESPONSE. --TS | ||
1700 | std::string response = autoresponse; | ||
1701 | pack_instant_message( | ||
1702 | gMessageSystem, | ||
1703 | gAgent.getID(), | ||
1704 | FALSE, | ||
1705 | gAgent.getSessionID(), | ||
1706 | from_id, | ||
1707 | my_name, | ||
1708 | response, | ||
1709 | IM_OFFLINE, | ||
1710 | IM_BUSY_AUTO_RESPONSE, | ||
1711 | session_id); | ||
1712 | } else { | ||
1713 | std::string response = "/me (auto-response): "+autoresponse; | ||
1714 | pack_instant_message( | ||
1715 | gMessageSystem, | ||
1716 | gAgent.getID(), | ||
1717 | FALSE, | ||
1718 | gAgent.getSessionID(), | ||
1719 | from_id, | ||
1720 | my_name, | ||
1721 | response, | ||
1722 | IM_OFFLINE, | ||
1723 | IM_NOTHING_SPECIAL, | ||
1724 | session_id); | ||
1725 | } | ||
1726 | gAgent.sendReliableMessage(); | ||
1727 | if(gSavedPerAccountSettings.getBOOL("InstantMessageResponseItem") && (!has || typing_init)) | ||
1728 | { | ||
1729 | LLUUID itemid = (LLUUID)gSavedPerAccountSettings.getString("InstantMessageResponseItemData"); | ||
1730 | LLViewerInventoryItem* item = gInventory.getItem(itemid); | ||
1731 | if(item) | ||
1732 | { | ||
1733 | //childSetValue("im_give_disp_rect_txt","Currently set to: "+item->getName()); | ||
1734 | if(show) | ||
1735 | { | ||
1736 | gIMMgr->addMessage( | ||
1737 | computed_session_id, | ||
1738 | from_id, | ||
1739 | SYSTEM_FROM, | ||
1740 | llformat("Sent %s auto-response item \"%s\"",name.c_str(),item->getName().c_str()), | ||
1741 | LLStringUtil::null, | ||
1742 | IM_NOTHING_SPECIAL, | ||
1743 | parent_estate_id, | ||
1744 | region_id, | ||
1745 | position, | ||
1746 | false); | ||
1747 | } | ||
1748 | LLToolDragAndDrop::giveInventory(from_id, item); | ||
1749 | } | ||
1750 | } | ||
1751 | //InstantMessageResponseItem< | ||
1752 | |||
1753 | } | ||
1754 | } | ||
1755 | } | ||
1756 | |||
1507 | LLSD args; | 1757 | LLSD args; |
1508 | switch(dialog) | 1758 | switch(dialog) |
1509 | { | 1759 | { |
1510 | case IM_CONSOLE_AND_CHAT_HISTORY: | 1760 | case IM_CONSOLE_AND_CHAT_HISTORY: |
1511 | // These are used for system messages, hence don't need the name, | 1761 | // These are used for system messages, hence don't need the name, |
1512 | // as it is always "Second Life". | 1762 | // as it is always "Imprudence". |
1513 | // *TODO:translate | 1763 | // *TODO:translate |
1514 | args["MESSAGE"] = message; | 1764 | args["MESSAGE"] = message; |
1515 | 1765 | ||
@@ -2026,6 +2276,22 @@ void process_improved_im(LLMessageSystem *msg, void **user_data) | |||
2026 | chat.mFromID = from_id ^ gAgent.getSessionID(); | 2276 | chat.mFromID = from_id ^ gAgent.getSessionID(); |
2027 | } | 2277 | } |
2028 | 2278 | ||
2279 | std::string tempname = name; | ||
2280 | |||
2281 | size_t found = tempname.find(" "); | ||
2282 | while(found != std::string::npos) | ||
2283 | { | ||
2284 | tempname.replace(found, 1, ""); | ||
2285 | found = tempname.find(" "); | ||
2286 | } | ||
2287 | |||
2288 | if (tempname.length() < 1) | ||
2289 | { | ||
2290 | name = ">>"; | ||
2291 | chat.mFromName = name; | ||
2292 | |||
2293 | } | ||
2294 | |||
2029 | std::ostringstream link; | 2295 | std::ostringstream link; |
2030 | link << "secondlife:///app/objectim/" << session_id | 2296 | link << "secondlife:///app/objectim/" << session_id |
2031 | << LLURI::mapToQueryString(query_string); | 2297 | << LLURI::mapToQueryString(query_string); |
@@ -2423,7 +2689,7 @@ void process_chat_from_simulator(LLMessageSystem *msg, void **user_data) | |||
2423 | 2689 | ||
2424 | if (tempname.length() < 1) | 2690 | if (tempname.length() < 1) |
2425 | { | 2691 | { |
2426 | from_name = "no name"; | 2692 | from_name = ">>"; |
2427 | chat.mFromName = from_name; | 2693 | chat.mFromName = from_name; |
2428 | } | 2694 | } |
2429 | 2695 | ||
@@ -3077,9 +3343,18 @@ void process_agent_movement_complete(LLMessageSystem* msg, void**) | |||
3077 | // if (avatarp) | 3343 | // if (avatarp) |
3078 | { | 3344 | { |
3079 | // Chat the "back" SLURL. (DEV-4907) | 3345 | // Chat the "back" SLURL. (DEV-4907) |
3346 | // Show this in the console if DisableTeleportScreens is true | ||
3347 | // Why? Because it's nifty, that's why -- MC | ||
3080 | LLChat chat("Teleport completed from " + gAgent.getTeleportSourceSLURL()); | 3348 | LLChat chat("Teleport completed from " + gAgent.getTeleportSourceSLURL()); |
3081 | chat.mSourceType = CHAT_SOURCE_SYSTEM; | 3349 | chat.mSourceType = CHAT_SOURCE_SYSTEM; |
3082 | LLFloaterChat::addChatHistory(chat); | 3350 | if (gSavedSettings.getBOOL("DisableTeleportScreens")) |
3351 | { | ||
3352 | LLFloaterChat::addChat(chat, FALSE, FALSE); | ||
3353 | } | ||
3354 | else | ||
3355 | { | ||
3356 | LLFloaterChat::addChatHistory(chat); | ||
3357 | } | ||
3083 | 3358 | ||
3084 | // Set the new position | 3359 | // Set the new position |
3085 | avatarp->setPositionAgent(agent_pos); | 3360 | avatarp->setPositionAgent(agent_pos); |
diff --git a/linden/indra/newview/llviewerobjectlist.cpp b/linden/indra/newview/llviewerobjectlist.cpp index 21a9252..a251d17 100644 --- a/linden/indra/newview/llviewerobjectlist.cpp +++ b/linden/indra/newview/llviewerobjectlist.cpp | |||
@@ -60,6 +60,7 @@ | |||
60 | #include "llresmgr.h" | 60 | #include "llresmgr.h" |
61 | #include "llviewerregion.h" | 61 | #include "llviewerregion.h" |
62 | #include "llviewerstats.h" | 62 | #include "llviewerstats.h" |
63 | #include "lltooldraganddrop.h" | ||
63 | #include "lltoolmgr.h" | 64 | #include "lltoolmgr.h" |
64 | #include "lltoolpie.h" | 65 | #include "lltoolpie.h" |
65 | #include "llkeyboard.h" | 66 | #include "llkeyboard.h" |
@@ -96,6 +97,7 @@ U32 LLViewerObjectList::sSimulatorMachineIndex = 1; // Not zero deliberatel | |||
96 | LLMap<U64, U32> LLViewerObjectList::sIPAndPortToIndex; | 97 | LLMap<U64, U32> LLViewerObjectList::sIPAndPortToIndex; |
97 | std::map<U64, LLUUID> LLViewerObjectList::sIndexAndLocalIDToUUID; | 98 | std::map<U64, LLUUID> LLViewerObjectList::sIndexAndLocalIDToUUID; |
98 | 99 | ||
100 | |||
99 | LLViewerObjectList::LLViewerObjectList() | 101 | LLViewerObjectList::LLViewerObjectList() |
100 | { | 102 | { |
101 | mNumVisCulled = 0; | 103 | mNumVisCulled = 0; |
@@ -256,6 +258,85 @@ void LLViewerObjectList::processUpdateCore(LLViewerObject* objectp, | |||
256 | // (from gPipeline.addObject) | 258 | // (from gPipeline.addObject) |
257 | // so that the drawable parent is set properly | 259 | // so that the drawable parent is set properly |
258 | findOrphans(objectp, msg->getSenderIP(), msg->getSenderPort()); | 260 | findOrphans(objectp, msg->getSenderIP(), msg->getSenderPort()); |
261 | |||
262 | // Apply custom settings not set in llmanip and lltoolplacer here. | ||
263 | // Don't check for permissions in case opensim ever implements | ||
264 | // default prim permission support serverside -- MC | ||
265 | if (objectp | ||
266 | && just_created | ||
267 | && objectp->permYouOwner() | ||
268 | && objectp->mCreateSelected) | ||
269 | { | ||
270 | LLMessageSystem* msg = gMessageSystem; | ||
271 | msg->newMessageFast(_PREHASH_ObjectImage); | ||
272 | msg->nextBlockFast(_PREHASH_AgentData); | ||
273 | msg->addUUIDFast(_PREHASH_AgentID, gAgent.getID()); | ||
274 | msg->addUUIDFast(_PREHASH_SessionID, gAgent.getSessionID()); | ||
275 | msg->nextBlockFast(_PREHASH_ObjectData); | ||
276 | msg->addU32Fast(_PREHASH_ObjectLocalID, (U32)(objectp->mLocalID)); | ||
277 | msg->addStringFast(_PREHASH_MediaURL, NULL); | ||
278 | |||
279 | LLPrimitive obj; | ||
280 | obj.setNumTEs(U8(10)); | ||
281 | S32 shinnyLevel = 0; | ||
282 | if(gSavedPerAccountSettings.getString("BuildPrefs_Shiny")== "None") shinnyLevel = 0; | ||
283 | if(gSavedPerAccountSettings.getString("BuildPrefs_Shiny")== "Low") shinnyLevel = 1; | ||
284 | if(gSavedPerAccountSettings.getString("BuildPrefs_Shiny")== "Medium") shinnyLevel = 2; | ||
285 | if(gSavedPerAccountSettings.getString("BuildPrefs_Shiny")== "High") shinnyLevel = 3; | ||
286 | |||
287 | for (int i = 0; i < 10; i++) | ||
288 | { | ||
289 | // I'm assuming this is because there's no good workaround for setting the default | ||
290 | // box texture manually without restarting? -- MC | ||
291 | LLTextureEntry tex = LLTextureEntry(LLUUID(gSavedPerAccountSettings.getString("BuildPrefs_Texture"))); | ||
292 | tex.setColor(gSavedPerAccountSettings.getColor4("BuildPrefs_Color")); | ||
293 | tex.setAlpha(1.0 - ((gSavedPerAccountSettings.getF32("BuildPrefs_Alpha")) / 100.0)); | ||
294 | tex.setGlow(gSavedPerAccountSettings.getF32("BuildPrefs_Glow")); | ||
295 | if(gSavedPerAccountSettings.getBOOL("BuildPrefs_FullBright")) | ||
296 | { | ||
297 | tex.setFullbright(TEM_FULLBRIGHT_MASK); | ||
298 | } | ||
299 | |||
300 | tex.setShiny((U8) shinnyLevel & TEM_SHINY_MASK); | ||
301 | |||
302 | obj.setTE(U8(i), tex); | ||
303 | } | ||
304 | |||
305 | obj.packTEMessage(gMessageSystem); | ||
306 | |||
307 | msg->sendReliable(gAgent.getRegion()->getHost()); | ||
308 | |||
309 | msg->newMessage("ObjectFlagUpdate"); | ||
310 | msg->nextBlockFast(_PREHASH_AgentData); | ||
311 | msg->addUUIDFast(_PREHASH_AgentID, gAgent.getID() ); | ||
312 | msg->addUUIDFast(_PREHASH_SessionID, gAgent.getSessionID()); | ||
313 | msg->addU32Fast(_PREHASH_ObjectLocalID, (U32)(objectp->mLocalID) ); | ||
314 | msg->addBOOLFast(_PREHASH_UsePhysics, gSavedPerAccountSettings.getBOOL("BuildPrefs_Physical")); | ||
315 | msg->addBOOL("IsTemporary", gSavedPerAccountSettings.getBOOL("BuildPrefs_Temporary")); | ||
316 | msg->addBOOL("IsPhantom", gSavedPerAccountSettings.getBOOL("BuildPrefs_Phantom") ); | ||
317 | msg->addBOOL("CastsShadows", true ); | ||
318 | msg->sendReliable(gAgent.getRegion()->getHost()); | ||
319 | |||
320 | if(gSavedPerAccountSettings.getBOOL("BuildPrefs_EmbedItem")) | ||
321 | { | ||
322 | LLViewerInventoryItem* item = (LLViewerInventoryItem*)gInventory.getItem((LLUUID)gSavedPerAccountSettings.getString("BuildPrefs_Item")); | ||
323 | if(item) | ||
324 | { | ||
325 | if(item->getType()==LLAssetType::AT_LSL_TEXT) | ||
326 | { | ||
327 | LLToolDragAndDrop::dropScript(objectp, | ||
328 | item, | ||
329 | TRUE, | ||
330 | LLToolDragAndDrop::SOURCE_AGENT, | ||
331 | gAgent.getID()); | ||
332 | }else | ||
333 | { | ||
334 | LLToolDragAndDrop::dropInventory(objectp,item,LLToolDragAndDrop::SOURCE_AGENT,gAgent.getID()); | ||
335 | } | ||
336 | } | ||
337 | //llinfos << "SENDING CUBE TEXTURE.." << llendl; | ||
338 | } | ||
339 | } | ||
259 | 340 | ||
260 | // If we're just wandering around, don't create new objects selected. | 341 | // If we're just wandering around, don't create new objects selected. |
261 | if (just_created | 342 | if (just_created |
diff --git a/linden/indra/newview/llviewerwindow.cpp b/linden/indra/newview/llviewerwindow.cpp index 3d884ad..36f1a70 100644 --- a/linden/indra/newview/llviewerwindow.cpp +++ b/linden/indra/newview/llviewerwindow.cpp | |||
@@ -70,7 +70,6 @@ | |||
70 | #include "object_flags.h" | 70 | #include "object_flags.h" |
71 | #include "lltimer.h" | 71 | #include "lltimer.h" |
72 | #include "timing.h" | 72 | #include "timing.h" |
73 | #include "llviewermenu.h" | ||
74 | 73 | ||
75 | // newview includes | 74 | // newview includes |
76 | #include "llagent.h" | 75 | #include "llagent.h" |
diff --git a/linden/indra/newview/llvoavatar.cpp b/linden/indra/newview/llvoavatar.cpp index 2a1462f..0f1e2a3 100644 --- a/linden/indra/newview/llvoavatar.cpp +++ b/linden/indra/newview/llvoavatar.cpp | |||
@@ -46,6 +46,7 @@ | |||
46 | #include "lldriverparam.h" | 46 | #include "lldriverparam.h" |
47 | #include "lleditingmotion.h" | 47 | #include "lleditingmotion.h" |
48 | #include "llemote.h" | 48 | #include "llemote.h" |
49 | #include "floaterao.h" | ||
49 | #include "llfirstuse.h" | 50 | #include "llfirstuse.h" |
50 | #include "llheadrotmotion.h" | 51 | #include "llheadrotmotion.h" |
51 | #include "llhudeffecttrail.h" | 52 | #include "llhudeffecttrail.h" |
@@ -5211,6 +5212,14 @@ void LLVOAvatar::processAnimationStateChanges() | |||
5211 | // playing, but not signaled, so stop | 5212 | // playing, but not signaled, so stop |
5212 | if (found_anim == mSignaledAnimations.end()) | 5213 | if (found_anim == mSignaledAnimations.end()) |
5213 | { | 5214 | { |
5215 | if (mIsSelf) | ||
5216 | { | ||
5217 | if ((gSavedSettings.getBOOL("AOEnabled")) && LLFloaterAO::stopMotion(anim_it->first, FALSE)) // if the AO replaced this anim serverside then stop it serverside | ||
5218 | { | ||
5219 | // return TRUE; //no local stop needed | ||
5220 | } | ||
5221 | } | ||
5222 | |||
5214 | processSingleAnimationStateChange(anim_it->first, FALSE); | 5223 | processSingleAnimationStateChange(anim_it->first, FALSE); |
5215 | mPlayingAnimations.erase(anim_it++); | 5224 | mPlayingAnimations.erase(anim_it++); |
5216 | continue; | 5225 | continue; |
@@ -5229,6 +5238,19 @@ void LLVOAvatar::processAnimationStateChanges() | |||
5229 | { | 5238 | { |
5230 | if (processSingleAnimationStateChange(anim_it->first, TRUE)) | 5239 | if (processSingleAnimationStateChange(anim_it->first, TRUE)) |
5231 | { | 5240 | { |
5241 | |||
5242 | if (mIsSelf) // AO is only for ME | ||
5243 | { | ||
5244 | if (gSavedSettings.getBOOL("AOEnabled")) | ||
5245 | { | ||
5246 | if (LLFloaterAO::startMotion(anim_it->first, 0,FALSE)) // AO overrides the anim if needed | ||
5247 | { | ||
5248 | // return TRUE; // not playing it locally | ||
5249 | } | ||
5250 | } | ||
5251 | } | ||
5252 | |||
5253 | |||
5232 | mPlayingAnimations[anim_it->first] = anim_it->second; | 5254 | mPlayingAnimations[anim_it->first] = anim_it->second; |
5233 | ++anim_it; | 5255 | ++anim_it; |
5234 | continue; | 5256 | continue; |
@@ -5426,6 +5448,11 @@ void LLVOAvatar::stopMotionFromSource(const LLUUID& source_id) | |||
5426 | //----------------------------------------------------------------------------- | 5448 | //----------------------------------------------------------------------------- |
5427 | LLVector3 LLVOAvatar::getVolumePos(S32 joint_index, LLVector3& volume_offset) | 5449 | LLVector3 LLVOAvatar::getVolumePos(S32 joint_index, LLVector3& volume_offset) |
5428 | { | 5450 | { |
5451 | if(joint_index < 0) | ||
5452 | { | ||
5453 | return LLVector3::zero; | ||
5454 | } | ||
5455 | |||
5429 | if (joint_index > mNumCollisionVolumes) | 5456 | if (joint_index > mNumCollisionVolumes) |
5430 | { | 5457 | { |
5431 | return LLVector3::zero; | 5458 | return LLVector3::zero; |
@@ -6614,6 +6641,7 @@ void LLVOAvatar::sitOnObject(LLViewerObject *sit_object) | |||
6614 | 6641 | ||
6615 | gPipeline.markMoved(mDrawable, TRUE); | 6642 | gPipeline.markMoved(mDrawable, TRUE); |
6616 | mIsSitting = TRUE; | 6643 | mIsSitting = TRUE; |
6644 | LLFloaterAO::ChangeStand(); | ||
6617 | // [RLVa:KB] - Checked: 2009-07-08 (RLVa-1.0.0e) | Added: RLVa-0.2.1d | 6645 | // [RLVa:KB] - Checked: 2009-07-08 (RLVa-1.0.0e) | Added: RLVa-0.2.1d |
6618 | #ifdef RLV_EXTENSION_STARTLOCATION | 6646 | #ifdef RLV_EXTENSION_STARTLOCATION |
6619 | if (rlv_handler_t::isEnabled()) | 6647 | if (rlv_handler_t::isEnabled()) |
diff --git a/linden/indra/newview/llwaterparammanager.cpp b/linden/indra/newview/llwaterparammanager.cpp index 50e4077..67fd977 100644 --- a/linden/indra/newview/llwaterparammanager.cpp +++ b/linden/indra/newview/llwaterparammanager.cpp | |||
@@ -43,7 +43,6 @@ | |||
43 | #include "llspinctrl.h" | 43 | #include "llspinctrl.h" |
44 | #include "llcheckboxctrl.h" | 44 | #include "llcheckboxctrl.h" |
45 | #include "lluictrlfactory.h" | 45 | #include "lluictrlfactory.h" |
46 | #include "llviewercontrol.h" | ||
47 | #include "llviewercamera.h" | 46 | #include "llviewercamera.h" |
48 | #include "llcombobox.h" | 47 | #include "llcombobox.h" |
49 | #include "lllineeditor.h" | 48 | #include "lllineeditor.h" |
diff --git a/linden/indra/newview/llxmlrpctransaction.cpp b/linden/indra/newview/llxmlrpctransaction.cpp index a2fd0f0..400cd75 100644 --- a/linden/indra/newview/llxmlrpctransaction.cpp +++ b/linden/indra/newview/llxmlrpctransaction.cpp | |||
@@ -35,6 +35,7 @@ | |||
35 | #include "llxmlrpctransaction.h" | 35 | #include "llxmlrpctransaction.h" |
36 | 36 | ||
37 | #include "llcurl.h" | 37 | #include "llcurl.h" |
38 | #include "hippoGridManager.h" | ||
38 | #include "llviewercontrol.h" | 39 | #include "llviewercontrol.h" |
39 | 40 | ||
40 | // Have to include these last to avoid queue redefinition! | 41 | // Have to include these last to avoid queue redefinition! |
@@ -415,13 +416,15 @@ void LLXMLRPCTransaction::Impl::setStatus(Status status, | |||
415 | default: | 416 | default: |
416 | // Usually this means that there's a problem with the login server, | 417 | // Usually this means that there's a problem with the login server, |
417 | // not with the client. Direct user to status page. | 418 | // not with the client. Direct user to status page. |
419 | // NOTE: these should really be gHippoGridManager->getCurrentGrid()->getGridNick() | ||
420 | // but apparently that's broken as of 1.3 b2 -- MC | ||
418 | mStatusMessage = | 421 | mStatusMessage = |
419 | "Despite our best efforts, something unexpected has gone wrong. \n" | 422 | "Despite our best efforts, something unexpected has gone wrong. \n" |
420 | " \n" | 423 | " \n" |
421 | "Please check secondlife.com/status \n" | 424 | "Please check " + gHippoGridManager->getCurrentGrid()->getGridNick() + "'s status \n" |
422 | "to see if there is a known problem with the service."; | 425 | "to see if there is a known problem with the service."; |
423 | 426 | ||
424 | mStatusURI = "http://secondlife.com/status/"; | 427 | //mStatusURI = "http://secondlife.com/status/"; |
425 | } | 428 | } |
426 | } | 429 | } |
427 | } | 430 | } |
@@ -436,7 +439,7 @@ void LLXMLRPCTransaction::Impl::setCurlStatus(CURLcode code) | |||
436 | case CURLE_COULDNT_RESOLVE_HOST: | 439 | case CURLE_COULDNT_RESOLVE_HOST: |
437 | message = | 440 | message = |
438 | "DNS could not resolve the host name.\n" | 441 | "DNS could not resolve the host name.\n" |
439 | "Please verify that you can connect to the www.secondlife.com\n" | 442 | "Please verify that you can connect to " + gHippoGridManager->getCurrentGrid()->getGridNick() + "'s\n" |
440 | "web site. If you can, but continue to receive this error,\n" | 443 | "web site. If you can, but continue to receive this error,\n" |
441 | "please go to the support section and report this problem."; | 444 | "please go to the support section and report this problem."; |
442 | break; | 445 | break; |
@@ -445,7 +448,7 @@ void LLXMLRPCTransaction::Impl::setCurlStatus(CURLcode code) | |||
445 | message = | 448 | message = |
446 | "The login server couldn't verify itself via SSL.\n" | 449 | "The login server couldn't verify itself via SSL.\n" |
447 | "If you continue to receive this error, please go\n" | 450 | "If you continue to receive this error, please go\n" |
448 | "to the Support section of the SecondLife.com web site\n" | 451 | "to the Support section of " + gHippoGridManager->getCurrentGrid()->getGridNick() + "'s web site\n" |
449 | "and report the problem."; | 452 | "and report the problem."; |
450 | break; | 453 | break; |
451 | 454 | ||
@@ -457,7 +460,7 @@ void LLXMLRPCTransaction::Impl::setCurlStatus(CURLcode code) | |||
457 | "are set correctly.\n" | 460 | "are set correctly.\n" |
458 | "\n" | 461 | "\n" |
459 | "If you continue to receive this error, please go\n" | 462 | "If you continue to receive this error, please go\n" |
460 | "to the Support section of the SecondLife.com web site\n" | 463 | "to the Support section of " + gHippoGridManager->getCurrentGrid()->getGridNick() + "'s web site\n" |
461 | "and report the problem."; | 464 | "and report the problem."; |
462 | break; | 465 | break; |
463 | 466 | ||
diff --git a/linden/indra/newview/primbackup.cpp b/linden/indra/newview/primbackup.cpp index a9a8af7..3ab5ee1 100644 --- a/linden/indra/newview/primbackup.cpp +++ b/linden/indra/newview/primbackup.cpp | |||
@@ -1,6 +1,5 @@ | |||
1 | 1 | ||
2 | #include "llviewerprecompiledheaders.h" | 2 | #include "llviewerprecompiledheaders.h" |
3 | #include "llviewermenu.h" | ||
4 | 3 | ||
5 | 4 | ||
6 | // system library includes | 5 | // system library includes |
@@ -29,7 +28,6 @@ | |||
29 | #include "lldir.h" | 28 | #include "lldir.h" |
30 | #include "llimage.h" | 29 | #include "llimage.h" |
31 | #include "lllfsthread.h" | 30 | #include "lllfsthread.h" |
32 | #include "llviewercontrol.h" | ||
33 | #include "llassetuploadresponders.h" | 31 | #include "llassetuploadresponders.h" |
34 | #include "lleconomy.h" | 32 | #include "lleconomy.h" |
35 | #include "llhttpclient.h" | 33 | #include "llhttpclient.h" |
@@ -38,24 +36,19 @@ | |||
38 | #include "llinventorymodel.h" // gInventory | 36 | #include "llinventorymodel.h" // gInventory |
39 | #include "llviewercontrol.h" // gSavedSettings | 37 | #include "llviewercontrol.h" // gSavedSettings |
40 | #include "llviewermenu.h" // gMenuHolder | 38 | #include "llviewermenu.h" // gMenuHolder |
41 | #include "llagent.h" | ||
42 | #include "llfilepicker.h" | 39 | #include "llfilepicker.h" |
43 | #include "llfloateranimpreview.h" | 40 | #include "llfloateranimpreview.h" |
44 | #include "llfloaterbuycurrency.h" | 41 | #include "llfloaterbuycurrency.h" |
45 | #include "llfloaterimagepreview.h" | 42 | #include "llfloaterimagepreview.h" |
46 | #include "llfloaternamedesc.h" | 43 | #include "llfloaternamedesc.h" |
47 | #include "llfloatersnapshot.h" | 44 | #include "llfloatersnapshot.h" |
48 | #include "llinventorymodel.h" // gInventory | ||
49 | #include "llresourcedata.h" | 45 | #include "llresourcedata.h" |
50 | #include "llstatusbar.h" | 46 | #include "llstatusbar.h" |
51 | #include "llviewercontrol.h" // gSavedSettings | ||
52 | #include "llviewerimagelist.h" | 47 | #include "llviewerimagelist.h" |
53 | #include "lluictrlfactory.h" | 48 | #include "lluictrlfactory.h" |
54 | #include "llviewermenu.h" // gMenuHolder | ||
55 | #include "llviewerregion.h" | 49 | #include "llviewerregion.h" |
56 | #include "llviewerstats.h" | 50 | #include "llviewerstats.h" |
57 | #include "llviewerwindow.h" | 51 | #include "llviewerwindow.h" |
58 | #include "llappviewer.h" | ||
59 | #include "lluploaddialog.h" | 52 | #include "lluploaddialog.h" |
60 | // Included to allow LLTextureCache::purgeTextures() to pause watchdog timeout | 53 | // Included to allow LLTextureCache::purgeTextures() to pause watchdog timeout |
61 | #include "llappviewer.h" | 54 | #include "llappviewer.h" |
diff --git a/linden/indra/newview/skins/default/xui/de/floater_ao.xml b/linden/indra/newview/skins/default/xui/de/floater_ao.xml new file mode 100644 index 0000000..c0731ea --- /dev/null +++ b/linden/indra/newview/skins/default/xui/de/floater_ao.xml | |||
@@ -0,0 +1,95 @@ | |||
1 | <?xml version="1.0" encoding="utf-8" standalone="yes"?> | ||
2 | <floater name="geminifloater" title="Animation Overrider"> | ||
3 | <view_border name="ao_notecard"/> | ||
4 | <view_border name="ao_notecard_vis"/> | ||
5 | <text name="Give inventory" tool_tip="ZHAO Notiz hier fallen lassen. Konfiguration und Animationen müssen im gleichen Inventar Ordner liegen!"> | ||
6 | ZHAO II Konfiguration hier fallen lassen. | ||
7 | </text> | ||
8 | <view_border name="ao_notecard_disp"/> | ||
9 | <text name="ao_nc_text" tool_tip=""> | ||
10 | Aktuell: ITEM | ||
11 | </text> | ||
12 | <button name="opencard" label="Laden"/> | ||
13 | <button name="reloadcard" label="Neuladen"/> | ||
14 | <button label="Mehr >>" name="more_btn" tool_tip="Erweiterte Optionen"/> | ||
15 | <button label="<< Weniger" name="less_btn" tool_tip="Erweiterte Optionen"/> | ||
16 | <check_box label="Anims übersteuern" name="EmeraldAOEnabled"/> | ||
17 | <check_box label="Sitzen übersteuern" name="EmeraldAOSitsEnabled"/> | ||
18 | <text name="buttons_desc"> | ||
19 | Stand: | ||
20 | </text> | ||
21 | <combo_box name="stands" label=""/> | ||
22 | <button name="prevstand" tool_tip="vorheriger Stand" label="<<"/> | ||
23 | <button name="nextstand" tool_tip="nächster Stand" label=">>"/> | ||
24 | <check_box label="zufällige Stand Ani" name="EmeraldAOStandRandomize"/> | ||
25 | <check_box label="keine Stand Ani bei Mouselook" name="EmeraldAONoStandsInMouselook"/> | ||
26 | <spinner name="standtime" label="Stand Zeit" tool_tip="AO Stand zeit in Sekunden"/> | ||
27 | <tab_container label="Default" name="tabcontainer"> | ||
28 | <panel label="Standard Anis" name="tabdefaultanims"> | ||
29 | <text name="textdefaultwalk"> | ||
30 | Standard Gang: | ||
31 | </text> | ||
32 | <combo_box name="walks" label=""/> | ||
33 | <text name="textdefaultrun"> | ||
34 | Standard Rennen: | ||
35 | </text> | ||
36 | <combo_box name="runs" label=""/> | ||
37 | <text name="textdefaultjump"> | ||
38 | Standard Sprung: | ||
39 | </text> | ||
40 | <combo_box name="jumps" label=""/> | ||
41 | <text name="textdefaultsit"> | ||
42 | Standard sitzen: | ||
43 | </text> | ||
44 | <combo_box name="sits" label=""/> | ||
45 | <text name="textdefaultgsit"> | ||
46 | Standard Bodensitz: | ||
47 | </text> | ||
48 | <combo_box name="gsits" label=""/> | ||
49 | <text name="textdefaultcrouch"> | ||
50 | Standard geduckt: | ||
51 | </text> | ||
52 | <combo_box name="crouchs" label=""/> | ||
53 | <text name="textdefaultcrouchwalk"> | ||
54 | Standard geduckt Gang: | ||
55 | </text> | ||
56 | <combo_box name="cwalks" label=""/> | ||
57 | <text name="textdefaultfall"> | ||
58 | Standard fallen: | ||
59 | </text> | ||
60 | <combo_box name="falls" label=""/> | ||
61 | <text name="textdefaulthover"> | ||
62 | Standard scheweben: | ||
63 | </text> | ||
64 | <combo_box name="hovers" label=""/> | ||
65 | <text name="textdefaultfly"> | ||
66 | Standard fliegen: | ||
67 | </text> | ||
68 | <combo_box name="flys" label=""/> | ||
69 | <text name="textdefaultflyslow"> | ||
70 | Standard langsam fliegen: | ||
71 | </text> | ||
72 | <combo_box name="flyslows" label=""/> | ||
73 | <text name="textdefaultflyup"> | ||
74 | Standard aufwärts fliegen: | ||
75 | </text> | ||
76 | <combo_box name="flyups" label=""/> | ||
77 | <text name="textdefaultflydown"> | ||
78 | Standard abwärts fliegen: | ||
79 | </text> | ||
80 | <combo_box name="flydowns" label=""/> | ||
81 | <text name="textdefaultland"> | ||
82 | Standard landen: | ||
83 | </text> | ||
84 | <combo_box name="lands" label=""/> | ||
85 | <text name="textdefaultstandup"> | ||
86 | Standard aufstehen: | ||
87 | </text> | ||
88 | <combo_box name="standups" label=""/> | ||
89 | <text name="textdefaultprejump"> | ||
90 | Standard Pre-Sprung: | ||
91 | </text> | ||
92 | <combo_box name="prejumps" label=""/> | ||
93 | </panel> | ||
94 | </tab_container> | ||
95 | </floater> \ No newline at end of file | ||
diff --git a/linden/indra/newview/skins/default/xui/en-us/floater_ao.xml b/linden/indra/newview/skins/default/xui/en-us/floater_ao.xml new file mode 100644 index 0000000..2bcc9d1 --- /dev/null +++ b/linden/indra/newview/skins/default/xui/en-us/floater_ao.xml | |||
@@ -0,0 +1,242 @@ | |||
1 | <?xml version="1.0" encoding="utf-8" standalone="yes"?> | ||
2 | <floater | ||
3 | name="geminifloater" | ||
4 | rect_control="AORect" | ||
5 | title="Animation Overrider" | ||
6 | can_resize="false" | ||
7 | can_minimize="true" | ||
8 | can_close="true" | ||
9 | can_drag_on_left="false" | ||
10 | width="610" | ||
11 | height="380"> | ||
12 | |||
13 | <view_border blevel_style="in" border_thickness="0" bottom="-380" follows="left|top" height="380" left="1" | ||
14 | mouse_opaque="false" name="ao_notecard" width="610" /> | ||
15 | <view_border blevel_style="in" bottom="340" follows="left|top" height="16" left="10" | ||
16 | mouse_opaque="false" name="ao_notecard_vis" width="180" /> | ||
17 | <text bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | ||
18 | bottom_delta="0" drop_shadow_visible="true" follows="left|top" | ||
19 | font="SansSerifSmall" h_pad="0" halign="center" height="16" left_delta="0" | ||
20 | mouse_opaque="true" name="Give inventory" | ||
21 | tool_tip="Drop a ZHAO notecard here. Animations have to be in the same Inventory folder as the notecard." v_pad="2" | ||
22 | width="180"> | ||
23 | Drop a ZHAO II notecard here | ||
24 | </text> | ||
25 | <view_border blevel_style="in" bottom_delta="-18" follows="left|top" height="16" left_delta="0" | ||
26 | mouse_opaque="false" name="ao_notecard_disp" width="180" /> | ||
27 | <text bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | ||
28 | bottom_delta="0" drop_shadow_visible="true" follows="left|top" | ||
29 | font="SansSerifSmall" h_pad="0" halign="center" height="16" left_delta="0" | ||
30 | mouse_opaque="true" name="ao_nc_text" | ||
31 | tool_tip="" v_pad="2" | ||
32 | width="180"> | ||
33 | Currently set to: ITEM | ||
34 | </text> | ||
35 | |||
36 | <button | ||
37 | name="opencard" | ||
38 | label="Open Notecard" | ||
39 | font="SansSerifSmall" | ||
40 | left="10" | ||
41 | bottom_delta="-30" | ||
42 | width="110" | ||
43 | height="20" | ||
44 | follows="bottom|left" | ||
45 | /> | ||
46 | <button | ||
47 | name="reloadcard" | ||
48 | label="Reload" | ||
49 | font="SansSerifSmall" | ||
50 | left="124" | ||
51 | bottom_delta="0" | ||
52 | width="70" | ||
53 | height="20" | ||
54 | follows="bottom|left" | ||
55 | /> | ||
56 | |||
57 | <check_box bottom_delta="-24" control_name="AOEnabled" enabled="true" | ||
58 | follows="left|top" font="SansSerifSmall" height="16" initial_value="false" label="Enable Animations Override" left="10" | ||
59 | mouse_opaque="true" name="AOEnabled" radio_style="false" width="90" /> | ||
60 | <check_box bottom_delta="-18" control_name="AOSitsEnabled" enabled="true" | ||
61 | follows="left|top" font="SansSerifSmall" height="16" initial_value="true" label="Enable Sits Override" left="10" | ||
62 | mouse_opaque="true" name="AOSitsEnabled" radio_style="false" width="90" /> | ||
63 | |||
64 | <text bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | ||
65 | bottom_delta="-20" drop_shadow_visible="true" follows="left|bottom" | ||
66 | font="SansSerifSmall" h_pad="0" halign="left" height="16" left="10" | ||
67 | mouse_opaque="true" name="buttons_desc" v_pad="0" width="180"> | ||
68 | Stands: | ||
69 | </text> | ||
70 | <combo_box name="stands" label="" follows="left|top" height="20" left="10" width="180" bottom_delta="-20"/> | ||
71 | <button | ||
72 | name="prevstand" | ||
73 | tool_tip="previous stand" | ||
74 | label="<<" | ||
75 | font="SansSerifSmall" | ||
76 | left="10" | ||
77 | bottom_delta="-25" | ||
78 | width="90" | ||
79 | height="20" | ||
80 | follows="bottom|left" | ||
81 | /> | ||
82 | <button | ||
83 | name="nextstand" | ||
84 | tool_tip="next stand" | ||
85 | label=">>" | ||
86 | font="SansSerifSmall" | ||
87 | left="104" | ||
88 | bottom_delta="0" | ||
89 | width="90" | ||
90 | height="20" | ||
91 | follows="bottom|left" | ||
92 | /> | ||
93 | <check_box bottom_delta="-20" control_name="AOStandRandomize" enabled="true" | ||
94 | follows="left|top" font="SansSerifSmall" height="16" initial_value="false" label="Randomize Stand Order" left="10" | ||
95 | mouse_opaque="true" name="AOStandRandomize" radio_style="false" width="200" /> | ||
96 | <check_box bottom_delta="-20" control_name="AONoStandsInMouselook" enabled="true" | ||
97 | follows="left|top" font="SansSerifSmall" height="16" initial_value="true" label="Disable Stands in Mouselook" left="10" | ||
98 | mouse_opaque="true" name="AONoStandsInMouselook" radio_style="false" width="180" /> | ||
99 | <spinner bottom_delta="-20" decimal_digits="2" follows="left|top" height="16" control_name="AOStandInterval" | ||
100 | increment="1" initial_val="20" left="10" max_val="9000" min_val="1.00" | ||
101 | mouse_opaque="true" name="standtime" label="Stand Time" label_width="80" | ||
102 | tool_tip="AO Stand Time in seconds" width="180" /> | ||
103 | |||
104 | <button | ||
105 | name="newcard" | ||
106 | label="New Notecard Template" | ||
107 | font="SansSerifSmall" | ||
108 | left="10" | ||
109 | bottom_delta="-32" | ||
110 | width="180" | ||
111 | height="20" | ||
112 | follows="bottom|left" | ||
113 | /> | ||
114 | |||
115 | <button bottom="4" follows="left|bottom" font="SansSerifSmall" halign="center" | ||
116 | height="20" label="More >>" left="118" | ||
117 | mouse_opaque="true" name="more_btn" scale_image="TRUE" | ||
118 | tool_tip="Advanced Options" width="76" /> | ||
119 | <button bottom_delta="0" follows="left|bottom" font="SansSerifSmall" halign="center" | ||
120 | height="20" label="<< Less" left_delta="0" | ||
121 | mouse_opaque="true" name="less_btn" scale_image="TRUE" | ||
122 | tool_tip="Advanced Options" width="76" /> | ||
123 | |||
124 | <tab_container label="Default" bottom="6" left="210" mouse_opaque="false" name="tabcontainer" tab_min_width="50" tab_position="top" width="390" height="350" bg_opaque_color="0,0,0,0.0"> | ||
125 | <panel border="true" left="0" bottom="0" follows="left|top|right|bottom" height="350" label="Default Anims" mouse_opaque="true" name="tabdefaultanims" width="390"> | ||
126 | |||
127 | <text bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | ||
128 | bottom_delta="-40" drop_shadow_visible="true" follows="left|bottom" | ||
129 | font="SansSerifSmall" h_pad="0" halign="left" height="16" left="10" | ||
130 | mouse_opaque="true" name="textdefaultwalk" v_pad="0" width="180"> | ||
131 | Default Walk: | ||
132 | </text> | ||
133 | <combo_box name="walks" label="" follows="left|top" height="20" left="10" width="180" bottom_delta="0" control_name="AODefaultWalk" /> | ||
134 | |||
135 | <text bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | ||
136 | bottom_delta="-40" drop_shadow_visible="true" follows="left|bottom" | ||
137 | font="SansSerifSmall" h_pad="0" halign="left" height="16" left="10" | ||
138 | mouse_opaque="true" name="textdefaultrun" v_pad="0" width="180"> | ||
139 | Default Run: | ||
140 | </text> | ||
141 | <combo_box name="runs" label="" follows="left|top" height="20" left="10" width="180" bottom_delta="0" control_name="AODefaultRun" /> | ||
142 | <text bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | ||
143 | bottom_delta="-40" drop_shadow_visible="true" follows="left|bottom" | ||
144 | font="SansSerifSmall" h_pad="0" halign="left" height="16" left="10" | ||
145 | mouse_opaque="true" name="textdefaultjump" v_pad="0" width="180"> | ||
146 | Default Jump: | ||
147 | </text> | ||
148 | <combo_box name="jumps" label="" follows="left|top" height="20" left="10" width="180" bottom_delta="0" control_name="AODefaultJump" /> | ||
149 | <text bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | ||
150 | bottom_delta="-40" drop_shadow_visible="true" follows="left|bottom" | ||
151 | font="SansSerifSmall" h_pad="0" halign="left" height="16" left="10" | ||
152 | mouse_opaque="true" name="textdefaultsit" v_pad="0" width="180"> | ||
153 | Default Sit: | ||
154 | </text> | ||
155 | <combo_box name="sits" label="" follows="left|top" height="20" left="10" width="180" bottom_delta="0" control_name="AODefaultSit" /> | ||
156 | <text bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | ||
157 | bottom_delta="-40" drop_shadow_visible="true" follows="left|bottom" | ||
158 | font="SansSerifSmall" h_pad="0" halign="left" height="16" left="10" | ||
159 | mouse_opaque="true" name="textdefaultgsit" v_pad="0" width="180"> | ||
160 | Default Groundsit: | ||
161 | </text> | ||
162 | <combo_box name="gsits" label="" follows="left|top" height="20" left="10" width="180" bottom_delta="0" control_name="AODefaultGroundSit" /> | ||
163 | <text bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | ||
164 | bottom_delta="-40" drop_shadow_visible="true" follows="left|bottom" | ||
165 | font="SansSerifSmall" h_pad="0" halign="left" height="16" left="10" | ||
166 | mouse_opaque="true" name="textdefaultcrouch" v_pad="0" width="180"> | ||
167 | Default Crouch: | ||
168 | </text> | ||
169 | <combo_box name="crouchs" label="" follows="left|top" height="20" left="10" width="180" bottom_delta="0" control_name="AODefaultCrouch" /> | ||
170 | <text bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | ||
171 | bottom_delta="-40" drop_shadow_visible="true" follows="left|bottom" | ||
172 | font="SansSerifSmall" h_pad="0" halign="left" height="16" left="10" | ||
173 | mouse_opaque="true" name="textdefaultcrouchwalk" v_pad="0" width="180"> | ||
174 | Default Crouchwalk: | ||
175 | </text> | ||
176 | <combo_box name="cwalks" label="" follows="left|top" height="20" left="10" width="180" bottom_delta="0" control_name="AODefaultCrouchWalk" /> | ||
177 | <text bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | ||
178 | bottom_delta="-40" drop_shadow_visible="true" follows="left|bottom" | ||
179 | font="SansSerifSmall" h_pad="0" halign="left" height="16" left="10" | ||
180 | mouse_opaque="true" name="textdefaultfall" v_pad="0" width="180"> | ||
181 | Default Fall: | ||
182 | </text> | ||
183 | <combo_box name="falls" label="" follows="left|top" height="20" left="10" width="180" bottom_delta="0" control_name="AODefaultFall" /> | ||
184 | <text bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | ||
185 | bottom_delta="280" drop_shadow_visible="true" follows="left|bottom" | ||
186 | font="SansSerifSmall" h_pad="0" halign="left" height="16" left="200" | ||
187 | mouse_opaque="true" name="textdefaulthover" v_pad="0" width="180"> | ||
188 | Default Hover: | ||
189 | </text> | ||
190 | <combo_box name="hovers" label="" follows="left|top" height="20" left_delta="0" width="180" bottom_delta="0" control_name="AODefaultHover" /> | ||
191 | <text bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | ||
192 | bottom_delta="-40" drop_shadow_visible="true" follows="left|bottom" | ||
193 | font="SansSerifSmall" h_pad="0" halign="left" height="16" left_delta="0" | ||
194 | mouse_opaque="true" name="textdefaultfly" v_pad="0" width="180"> | ||
195 | Default Fly: | ||
196 | </text> | ||
197 | <combo_box name="flys" label="" follows="left|top" height="20" left_delta="0" width="180" bottom_delta="0" control_name="AODefaultFly" /> | ||
198 | <text bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | ||
199 | bottom_delta="-40" drop_shadow_visible="true" follows="left|bottom" | ||
200 | font="SansSerifSmall" h_pad="0" halign="left" height="16" left_delta="0" | ||
201 | mouse_opaque="true" name="textdefaultflyslow" v_pad="0" width="180"> | ||
202 | Default Slow Fly: | ||
203 | </text> | ||
204 | <combo_box name="flyslows" label="" follows="left|top" height="20" left_delta="0" width="180" bottom_delta="0" control_name="AODefaultFlySlow" /> | ||
205 | <text bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | ||
206 | bottom_delta="-40" drop_shadow_visible="true" follows="left|bottom" | ||
207 | font="SansSerifSmall" h_pad="0" halign="left" height="16" left_delta="0" | ||
208 | mouse_opaque="true" name="textdefaultflyup" v_pad="0" width="180"> | ||
209 | Default Upward Fly: | ||
210 | </text> | ||
211 | <combo_box name="flyups" label="" follows="left|top" height="20" left_delta="0" width="180" bottom_delta="0" control_name="AODefaultFlyUp" /> | ||
212 | <text bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | ||
213 | bottom_delta="-40" drop_shadow_visible="true" follows="left|bottom" | ||
214 | font="SansSerifSmall" h_pad="0" halign="left" height="16" left_delta="0" | ||
215 | mouse_opaque="true" name="textdefaultflydown" v_pad="0" width="180"> | ||
216 | Default Downward Fly: | ||
217 | </text> | ||
218 | <combo_box name="flydowns" label="" follows="left|top" height="20" left_delta="0" width="180" bottom_delta="0" control_name="AODefaultFlyDown" /> | ||
219 | <text bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | ||
220 | bottom_delta="-40" drop_shadow_visible="true" follows="left|bottom" | ||
221 | font="SansSerifSmall" h_pad="0" halign="left" height="16" left_delta="0" | ||
222 | mouse_opaque="true" name="textdefaultland" v_pad="0" width="180"> | ||
223 | Default Land: | ||
224 | </text> | ||
225 | <combo_box name="lands" label="" follows="left|top" height="20" left_delta="0" width="180" bottom_delta="0" control_name="AODefaultLand" /> | ||
226 | <text bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | ||
227 | bottom_delta="-40" drop_shadow_visible="true" follows="left|bottom" | ||
228 | font="SansSerifSmall" h_pad="0" halign="left" height="16" left_delta="0" | ||
229 | mouse_opaque="true" name="textdefaultstandup" v_pad="0" width="180"> | ||
230 | Default Standup: | ||
231 | </text> | ||
232 | <combo_box name="standups" label="" follows="left|top" height="20" left_delta="0" width="180" bottom_delta="0" control_name="AODefaultStandUp" /> | ||
233 | <text bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | ||
234 | bottom_delta="-40" drop_shadow_visible="true" follows="left|bottom" | ||
235 | font="SansSerifSmall" h_pad="0" halign="left" height="16" left_delta="0" | ||
236 | mouse_opaque="true" name="textdefaultprejump" v_pad="0" width="180"> | ||
237 | Default Pre-Jump: | ||
238 | </text> | ||
239 | <combo_box name="prejumps" label="" follows="left|top" height="20" left_delta="0" width="180" bottom_delta="0" control_name="AODefaultPreJump" /> | ||
240 | </panel> | ||
241 | </tab_container> | ||
242 | </floater> \ No newline at end of file | ||
diff --git a/linden/indra/newview/skins/default/xui/en-us/floater_build_options.xml b/linden/indra/newview/skins/default/xui/en-us/floater_build_options.xml index 807caa0..298805d 100644 --- a/linden/indra/newview/skins/default/xui/en-us/floater_build_options.xml +++ b/linden/indra/newview/skins/default/xui/en-us/floater_build_options.xml | |||
@@ -1,27 +1,175 @@ | |||
1 | <?xml version="1.0" encoding="utf-8" standalone="yes" ?> | 1 | <?xml version="1.0" encoding="utf-8" standalone="yes" ?> |
2 | <floater bottom="-297" can_close="true" can_drag_on_left="false" can_minimize="true" | 2 | <floater bottom="-297" can_close="true" can_drag_on_left="false" can_minimize="true" |
3 | can_resize="false" follows="right" height="151" left="298" min_height="151" | 3 | can_resize="false" follows="right" height="370" min_height="370" |
4 | min_width="272" mouse_opaque="true" name="build options floater" | 4 | min_width="530" mouse_opaque="true" name="build options floater" |
5 | rect_control="FloaterBuildOptionsRect" title="Grid Options" width="272"> | 5 | rect_control="FloaterBuildOptionsRect" title="Advanced Build Options" width="530"> |
6 | <spinner bottom="-53" control_name="GridResolution" decimal_digits="3" | 6 | |
7 | <view_border bevel_style="none" border_thickness="1" bottom="-145" follows="top|left" height="105" | ||
8 | left="14" name="GridBorder" width="170"/> | ||
9 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | ||
10 | bottom_delta="110" drop_shadow_visible="true" enabled="true" follows="left|top" font="SansSerifSmall" | ||
11 | h_pad="0" halign="left" height="10" left_delta="53" mouse_opaque="false" | ||
12 | name="text_box7" v_pad="0" width="150"> Grid Options</text> | ||
13 | <spinner bottom="-60" decimal_digits="3" | ||
7 | follows="left|top" height="16" increment="0.1" initial_val="1" | 14 | follows="left|top" height="16" increment="0.1" initial_val="1" |
8 | label="Grid Unit (meters)" label_width="110" left="14" max_val="5" | 15 | label="Grid Units (m)" label_width="90" left="21" max_val="5" |
9 | min_val="0.01" mouse_opaque="true" name="GridResolution" width="170" /> | 16 | min_val="0.01" mouse_opaque="true" name="GridResolution" width="155" /> |
10 | <spinner bottom_delta="-21" control_name="GridDrawSize" decimal_digits="1" | 17 | <spinner bottom_delta="-20" decimal_digits="1" |
11 | follows="left|top" height="16" increment="0.5" initial_val="5" | 18 | follows="left|top" height="16" increment="0.5" initial_val="5" |
12 | label="Grid Extents (meters)" label_width="110" left="14" max_val="50" | 19 | label="Grid Extents (m)" label_width="90" left_delta="0" max_val="50" |
13 | min_val="1" mouse_opaque="true" name="GridDrawSize" width="170" /> | 20 | min_val="1" mouse_opaque="true" name="GridDrawSize" width="155" /> |
14 | <check_box bottom_delta="-21" control_name="GridSubUnit" follows="left|top" | 21 | <check_box bottom_delta="-20" follows="left|top" |
15 | font="SansSerifSmall" height="16" initial_value="false" | 22 | font="SansSerifSmall" height="16" initial_value="false" |
16 | label="Enable Sub-Unit Snapping" left="14" mouse_opaque="true" | 23 | label="Sub-Unit Snapping" left_delta="0" mouse_opaque="true" |
17 | name="GridSubUnit" width="200" /> | 24 | name="GridSubUnit" width="200" /> |
18 | <check_box bottom_delta="-21" control_name="GridCrossSections" follows="left|top" | 25 | <check_box bottom_delta="-20" follows="left|top" |
19 | font="SansSerifSmall" height="16" initial_value="false" | 26 | font="SansSerifSmall" height="16" initial_value="false" |
20 | label="Show Cross Sections" left="14" mouse_opaque="true" | 27 | label="Show Cross Sections" left_delta="0" mouse_opaque="true" |
21 | name="GridCrossSection" width="200" /> | 28 | name="GridCrossSection" width="200" /> |
22 | <slider bottom_delta="-21" can_edit_text="false" control_name="GridOpacity" | 29 | <slider bottom_delta="-20" can_edit_text="false" |
23 | decimal_digits="3" follows="left" height="16" increment="0.05" | 30 | decimal_digits="3" follows="left" height="16" increment="0.05" |
24 | initial_val="0.7" label="Grid Opacity" left="14" max_val="1" min_val="0" | 31 | initial_val="0.7" label="Grid Opacity" left_delta="0" max_val="1" min_val="0" |
25 | mouse_opaque="true" name="GridOpacity" show_text="false" value="0.7" | 32 | mouse_opaque="true" name="GridOpacity" show_text="false" value="0.7" |
26 | width="200" /> | 33 | width="165" /> |
34 | |||
35 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | ||
36 | bottom_delta="-30" drop_shadow_visible="true" enabled="true" follows="left|top" font="SansSerifSmall" | ||
37 | h_pad="0" halign="left" height="10" left="44" mouse_opaque="false" | ||
38 | name="text_box3" v_pad="0" width="150"> Object Size</text> | ||
39 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | ||
40 | bottom_delta="0" drop_shadow_visible="true" enabled="true" follows="left|top" font="SansSerifSmall" | ||
41 | h_pad="0" halign="left" height="10" left_delta="130" mouse_opaque="false" | ||
42 | name="text_box4" v_pad="0" width="150"> Settings</text> | ||
43 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | ||
44 | bottom_delta="0" drop_shadow_visible="true" enabled="true" follows="left|top" font="SansSerifSmall" | ||
45 | h_pad="0" halign="left" height="10" left_delta="190" mouse_opaque="false" | ||
46 | name="text_box5" v_pad="0" width="150"> Texture</text> | ||
47 | <view_border bevel_style="none" border_thickness="1" bottom_delta="-98" follows="top|left" height="90" | ||
48 | left="14" name="SizeBorder" width="120" /> | ||
49 | <view_border bevel_style="none" border_thickness="1" bottom_delta="-0" follows="top|left" height="90" | ||
50 | left_delta="134" name="SettingsBorder" width="100" /> | ||
51 | <view_border bevel_style="none" border_thickness="1" bottom_delta="0" follows="top|left" height="90" | ||
52 | left_delta="114" name="TextureBorder" width="250" /> | ||
53 | |||
54 | <spinner bottom="-200" decimal_digits="5" follows="left|top" height="16" increment="0.05" | ||
55 | label="X size" label_width="40" left="20" max_val="10" min_val="0.01" | ||
56 | mouse_opaque="true" name="X size" width="110" /> | ||
57 | <spinner bottom_delta="-20" decimal_digits="5" follows="left|top" height="16" increment="0.05" | ||
58 | label="Y size" label_width="40" left_delta="0" max_val="10" min_val="0.01" | ||
59 | mouse_opaque="true" name="Y size" width="110" /> | ||
60 | <spinner bottom_delta="-20" decimal_digits="5" follows="left|top" height="16" increment="0.05" | ||
61 | label="Z size" label_width="40" left_delta="0" max_val="10" min_val="0.01" | ||
62 | mouse_opaque="true" name="Z size" width="110" /> | ||
63 | |||
64 | <check_box bottom="-200" enabled="true" follows="left|top" font="SansSerifSmall" height="16" | ||
65 | label="Phantom" left="154" mouse_opaque="true" name="PhantomToggle" radio_style="false" | ||
66 | width="100" /> | ||
67 | <check_box bottom_delta="-20" enabled="true" follows="left|top" font="SansSerifSmall" height="16" | ||
68 | label="Physical" left_delta="0" mouse_opaque="true" name="PhysicalToggle" radio_style="false" | ||
69 | width="100" /> | ||
70 | <check_box bottom_delta="-20" enabled="true" follows="left|top" font="SansSerifSmall" height="16" | ||
71 | label="Temporary" left_delta="0" mouse_opaque="true" name="TemporaryToggle" radio_style="false" | ||
72 | width="100" /> | ||
73 | <combo_box allow_text_entry="false" bottom_delta="-20" left_delta="1" follows="left|top" height="18" | ||
74 | left="10" max_chars="20" mouse_opaque="true" name="material" width="87"> | ||
75 | <combo_item name="Stone" value="Stone">Stone</combo_item> | ||
76 | <combo_item name="Metal" value="Metal">Metal</combo_item> | ||
77 | <combo_item name="Glass" value="Glass">Glass</combo_item> | ||
78 | <combo_item name="Wood" value="Wood">Wood</combo_item> | ||
79 | <combo_item name="Flesh" value="Flesh">Flesh</combo_item> | ||
80 | <combo_item name="Plastic" value="Plastic">Plastic</combo_item> | ||
81 | <combo_item name="Rubber" value="Rubber">Rubber</combo_item> | ||
82 | </combo_box> | ||
83 | |||
84 | <texture_picker allow_no_texture="false" bottom="-265" can_apply_immediately="true" default_image_name="Default" | ||
85 | follows="left|top" height="80" label="Texture" left="270" mouse_opaque="true" | ||
86 | name="texture control" tool_tip="Click to choose a picture" | ||
87 | width="64"/> | ||
88 | <color_swatch border_color="0.45098, 0.517647, 0.607843, 1" bottom_delta="0" can_apply_immediately="true" | ||
89 | color="1, 1, 1, 1" follows="left|top" height="80" label="Color" left_delta="75" | ||
90 | mouse_opaque="true" name="colorswatch" tool_tip="Click to open Color Picker" width="64" /> | ||
91 | |||
92 | <spinner bottom="-200" decimal_digits="0" follows="left|top" height="16" increment="1" | ||
93 | label="Alpha" label_width="40" left_delta="70" max_val="100" min_val="0" | ||
94 | mouse_opaque="true" name="alpha" width="90" /> | ||
95 | <spinner bottom_delta="-20" enabled="true" decimal_digits="2" follows="left|top" height="16" | ||
96 | increment="0.05" label="Glow" label_width="40" left_delta="0" max_val="1" | ||
97 | min_val="0" mouse_opaque="true" name="glow" width="90" /> | ||
98 | <check_box bottom_delta="-20" enabled="true" follows="left|top" font="SansSerifSmall" height="16" | ||
99 | label="Full Bright" left_delta="0" mouse_opaque="true" name="FBToggle" radio_style="false" | ||
100 | width="100" /> | ||
101 | <combo_box allow_text_entry="false" bottom_delta="-20" follows="left|top" height="18" left_delta="0" | ||
102 | max_chars="20" mouse_opaque="true" name="combobox shininess" tool_tip="Set the amount of shine for the object" | ||
103 | width="90"> | ||
104 | <combo_item name="None" value="None"> None</combo_item> | ||
105 | <combo_item name="Low" value="Low"> Low</combo_item> | ||
106 | <combo_item name="Medium" value="Medium"> Medium</combo_item> | ||
107 | <combo_item name="High" value="High"> High</combo_item> | ||
108 | </combo_box> | ||
109 | |||
110 | <view_border blevel_style="in" bottom_delta="-40" follows="left|top" height="16" left="14" | ||
111 | mouse_opaque="false" name="im_give_drop_target_rect" width="400"/> | ||
112 | <text bg_visible="false" border_drop_shadow_visible="false" border_visible="false" bottom_delta="0" | ||
113 | drop_shadow_visible="true" follows="left|top" font="SansSerifSmall" h_pad="0" halign="center" | ||
114 | height="16" left_delta="0" mouse_opaque="true" name="Give inventory" tool_tip="Drop an inventory item here." | ||
115 | v_pad="2" width="400"> Drop an inventory item here to have it added to the prim contents.</text> | ||
116 | <view_border blevel_style="in" bottom_delta="-18" follows="left|top" height="16" left_delta="0" | ||
117 | mouse_opaque="false" name="build_item_add_disp_rect" width="400"/> | ||
118 | <button bottom_delta="0" enabled="true" font="SansSerif" halign="center" height="20" | ||
119 | label="Clear Item" left_delta="405" mouse_opaque="true" | ||
120 | name="btn_clear" scale_image="true" width="90" /> | ||
121 | <text bg_visible="false" border_drop_shadow_visible="false" border_visible="false" bottom_delta="0" | ||
122 | drop_shadow_visible="true" follows="left|top" font="SansSerifSmall" h_pad="0" halign="center" | ||
123 | height="16" left="14" mouse_opaque="true" name="build_item_add_disp_rect_txt" tool_tip="" | ||
124 | v_pad="2" width="400"> Currently set to: ITEM</text> | ||
125 | <check_box name="BuildPrefsEmbedItem" bottom_delta="-25" enabled="true" | ||
126 | follows="left|top" font="SansSerifSmall" height="16" | ||
127 | initial_value="false" label="Embed an item into the newly created object" left_delta="0" | ||
128 | mouse_opaque="true" radio_style="false" width="270" /> | ||
129 | |||
130 | <view_border bevel_style="none" border_thickness="1" bottom="-145" follows="top|left" height="105" | ||
131 | left="198" name="PivotBorder" width="135"/> | ||
132 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | ||
133 | bottom_delta="110" drop_shadow_visible="true" enabled="true" follows="left|top" font="SansSerifSmall" | ||
134 | h_pad="0" halign="left" height="10" left_delta="35" mouse_opaque="false" | ||
135 | name="text_box6" v_pad="0" width="150"> Pivot Point</text> | ||
136 | <spinner bottom_delta="-25" decimal_digits="5" follows="left|top" height="16" increment="0.05" | ||
137 | label="X pos" label_width="40" left_delta="-28" mouse_opaque="true" max_val="256" | ||
138 | min_val="-256" name="X pos" width="120" /> | ||
139 | <spinner bottom_delta="-20" decimal_digits="5" follows="left|top" height="16" increment="0.05" | ||
140 | label="Y pos" label_width="40" left_delta="0" mouse_opaque="true" max_val="256" | ||
141 | min_val="-256" name="Y pos" width="120" /> | ||
142 | <spinner bottom_delta="-20" decimal_digits="5" follows="left|top" height="16" increment="0.05" | ||
143 | label="Z pos" label_width="40" left_delta="0" mouse_opaque="true" max_val="256" | ||
144 | min_val="-256" name="Z pos" width="120" /> | ||
145 | <check_box bottom_delta="-20" enabled="true" follows="left|top" font="SansSerifSmall" height="16" | ||
146 | label="Values are percent" left_delta="-5" mouse_opaque="true" tool_tip="Default settings are Percentages and every axis set at 50" | ||
147 | name="PivotPercToggle" radio_style="false" width="100" /> | ||
148 | |||
149 | <check_box bottom_delta="60" enabled="true" follows="left|top" font="SansSerifSmall" height="16" | ||
150 | initial_value="true" label="Highlight selected prims" left_delta="143" | ||
151 | mouse_opaque="true" name="BuildPrefsRenderHighlight_toggle" | ||
152 | radio_style="false" width="270"/> | ||
153 | <check_box bottom_delta="-20" enabled="true" follows="left|top" font="SansSerifSmall" height="16" | ||
154 | initial_value="false" label="Show axis on root prim" left_delta="0" | ||
155 | mouse_opaque="true" tool_tip="Default behaviour is to show the axis on the center of mass of a linkset. If enabled, the axis will be shown on the root prim of the linkset instead." | ||
156 | name="BuildPrefsActualRoot_toggle" radio_style="false" width="270" /> | ||
157 | <check_box bottom_delta="-20" enabled="true" follows="left|top" font="SansSerifSmall" height="16" | ||
158 | label="Rez objects using land group" left_delta="0" mouse_opaque="true" | ||
159 | tooltip="Rez objects on group land using the land's group (if possible)" | ||
160 | name="grouplandrez" radio_style="false" width="270" /> | ||
161 | |||
162 | <button bottom="2" enabled="true" follows="right|bottom" font="SansSerif" | ||
163 | halign="center" height="20" label="Cancel" right="-4" | ||
164 | mouse_opaque="true" name="btn_cancel" scale_image="true" width="90" /> | ||
165 | <button bottom_delta="0" enabled="true" follows="right|bottom" font="SansSerif" | ||
166 | halign="center" height="20" label="Apply" left_delta="-93" | ||
167 | mouse_opaque="true" name="btn_apply" scale_image="true" width="90" /> | ||
168 | <button bottom_delta="0" enabled="true" follows="right|bottom" font="SansSerif" | ||
169 | halign="center" height="20" label="OK" left_delta="-93" | ||
170 | mouse_opaque="true" name="btn_ok" scale_image="true" width="90" /> | ||
171 | <button bottom_delta="0" enabled="true" follows="left|bottom" font="SansSerif" | ||
172 | halign="center" height="20" label="Reset to Defaults" | ||
173 | left="2" mouse_opaque="true" name="btn_reset" scale_image="true" | ||
174 | width="160" /> | ||
27 | </floater> | 175 | </floater> |
diff --git a/linden/indra/newview/skins/default/xui/en-us/floater_busy.xml b/linden/indra/newview/skins/default/xui/en-us/floater_busy.xml new file mode 100644 index 0000000..a9bd613 --- /dev/null +++ b/linden/indra/newview/skins/default/xui/en-us/floater_busy.xml | |||
@@ -0,0 +1,93 @@ | |||
1 | <?xml version="1.0" encoding="utf-8" standalone="yes" ?> | ||
2 | <floater name="busy" title="IM Response Options" | ||
3 | height="446" width="255" min_height="446" min_width="255" | ||
4 | follows="top|right" can_close="true" can_drag_on_left="false" | ||
5 | can_minimize="true" can_resize="false" can_tear_off="false"> | ||
6 | |||
7 | <check_box bottom="-40" enabled="true" follows="left|top" font="SansSerifSmall" height="16" | ||
8 | initial_value="false" label="Announce incoming instant messages" left="10" mouse_opaque="true" | ||
9 | name="InstantMessageAnnounceIncoming" radio_style="false" width="270"/> | ||
10 | <check_box bottom_delta="-20" enabled="true" follows="left|top" font="SansSerifSmall" height="16" | ||
11 | initial_value="false" label="Steal focus" left_delta="10" mouse_opaque="true" name="InstantMessageAnnounceStealFocus" | ||
12 | radio_style="false" width="270"/> | ||
13 | <check_box bottom_delta="-20" enabled="true" follows="left|top" font="SansSerifSmall" height="16" | ||
14 | initial_value="false" label="Autorespond to non-friends" left_delta="-10" mouse_opaque="true" | ||
15 | name="InstantMessageResponseFriends" radio_style="false" width="270"/> | ||
16 | <check_box bottom_delta="-20" enabled="true" follows="left|top" font="SansSerifSmall" height="16" | ||
17 | initial_value="false" label="Autorespond to people you have muted" left_delta="0" | ||
18 | mouse_opaque="true" name="InstantMessageResponseMuted" radio_style="false" | ||
19 | width="270"/> | ||
20 | <check_box bottom_delta="-20" enabled="true" follows="left|top" font="SansSerifSmall" height="16" | ||
21 | initial_value="false" label="Autorespond to anyone" left_delta="0" mouse_opaque="true" | ||
22 | name="InstantMessageResponseAnyone" radio_style="false" width="270"/> | ||
23 | <check_box bottom_delta="-20" enabled="true" follows="left|top" font="SansSerifSmall" height="16" | ||
24 | initial_value="false" label="Send as soon as they start typing" left_delta="10" mouse_opaque="true" | ||
25 | name="InstantMessageShowOnTyping" radio_style="false" width="270"/> | ||
26 | <check_box bottom_delta="-20" enabled="true" follows="left|top" font="SansSerifSmall" height="26" | ||
27 | initial_value="false" label="Don't show IMs you auto-responsed to" left_delta="0" | ||
28 | mouse_opaque="true" name="InstantMessageShowResponded" radio_style="false" | ||
29 | width="170"/> | ||
30 | <check_box bottom_delta="-20" enabled="true" follows="left|top" font="SansSerifSmall" height="16" | ||
31 | initial_value="false" label="Autorespond to every message" left_delta="0" mouse_opaque="true" | ||
32 | name="InstantMessageResponseRepeat" radio_style="false" width="270"/> | ||
33 | |||
34 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | ||
35 | bottom_delta="-25" drop_shadow_visible="true" enabled="true" follows="left|top" font="SansSerifSmall" | ||
36 | h_pad="0" halign="left" height="20" left_delta="-10" mouse_opaque="false" | ||
37 | name="text_box1" v_pad="0" width="425"> | ||
38 | Response Text: | ||
39 | </text> | ||
40 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | ||
41 | bottom_delta="-20" drop_shadow_visible="true" enabled="true" follows="left|top" font="SansSerifSmall" | ||
42 | h_pad="0" halign="left" height="20" left_delta="15" mouse_opaque="false" | ||
43 | name="text_box_a" v_pad="0" width="425"> | ||
44 | Use "#f" for recipient's first name | ||
45 | </text> | ||
46 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | ||
47 | bottom_delta="-20" drop_shadow_visible="true" enabled="true" follows="left|top" font="SansSerifSmall" | ||
48 | h_pad="0" halign="left" height="20" left_delta="0" mouse_opaque="false" | ||
49 | name="text_box_b" v_pad="0" width="425"> | ||
50 | Use "#l" for last name | ||
51 | </text> | ||
52 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | ||
53 | bottom_delta="-20" drop_shadow_visible="true" enabled="true" follows="left|top" font="SansSerifSmall" | ||
54 | h_pad="0" halign="left" height="20" left_delta="0" mouse_opaque="false" | ||
55 | name="text_box_c" v_pad="0" width="425"> | ||
56 | Use "#t" for timestamp | ||
57 | </text> | ||
58 | |||
59 | <text_editor type="string" length="1" bottom_delta="-85" embedded_items="false" enabled="true" | ||
60 | follows="left|top" font="SansSerifSmall" height="75" left_delta="-15" max_length="1100" | ||
61 | mouse_opaque="true" name="im_response" width="230" word_wrap="true"/> | ||
62 | |||
63 | <check_box bottom_delta="-30" enabled="true" follows="left|top" font="SansSerifSmall" height="16" | ||
64 | initial_value="false" label="Send an item along with the response" left_delta="0" | ||
65 | mouse_opaque="true" name="InstantMessageResponseItem" radio_style="false" | ||
66 | width="270"/> | ||
67 | |||
68 | <view_border blevel_style="in" bottom_delta="-20" follows="left|top" height="16" left_delta="0" | ||
69 | mouse_opaque="false" name="im_give_drop_target_rect" width="230"/> | ||
70 | |||
71 | <text bg_visible="false" border_drop_shadow_visible="false" border_visible="false" bottom_delta="0" | ||
72 | drop_shadow_visible="true" follows="left|top" font="SansSerifSmall" h_pad="0" halign="center" | ||
73 | height="16" left_delta="0" mouse_opaque="true" name="Give inventory" tool_tip="Drop an inventory item here to have it given along with the auto-response." | ||
74 | v_pad="2" width="230"> | ||
75 | Drop an inventory item here | ||
76 | </text> | ||
77 | |||
78 | <view_border blevel_style="in" bottom_delta="-18" follows="left|top" height="16" left_delta="0" | ||
79 | mouse_opaque="false" name="im_give_disp_rect" width="230"/> | ||
80 | |||
81 | <text bg_visible="false" border_drop_shadow_visible="false" border_visible="false" bottom_delta="0" | ||
82 | drop_shadow_visible="true" follows="left|top" font="SansSerifSmall" h_pad="0" halign="center" | ||
83 | height="16" left_delta="0" mouse_opaque="true" name="im_give_disp_rect_txt" tool_tip="" | ||
84 | v_pad="2" width="230"> | ||
85 | Currently set to: ITEM | ||
86 | </text> | ||
87 | |||
88 | <button bottom_delta="-26" follows="top|right" height="22" label="Cancel" | ||
89 | right="-10" name="btn_cancel" tool_tip="" enagled="true" width="80" /> | ||
90 | <button bottom_delta="0" follows="top|right" height="22" label="OK" | ||
91 | right="-90" name="btn_ok" tool_tip="" enabled="true" width="80" /> | ||
92 | |||
93 | </floater> \ No newline at end of file | ||
diff --git a/linden/indra/newview/skins/default/xui/en-us/floater_image_preview.xml b/linden/indra/newview/skins/default/xui/en-us/floater_image_preview.xml index 76c1852..975f650 100644 --- a/linden/indra/newview/skins/default/xui/en-us/floater_image_preview.xml +++ b/linden/indra/newview/skins/default/xui/en-us/floater_image_preview.xml | |||
@@ -1,6 +1,6 @@ | |||
1 | <?xml version="1.0" encoding="utf-8" standalone="yes" ?> | 1 | <?xml version="1.0" encoding="utf-8" standalone="yes" ?> |
2 | <floater can_close="true" can_drag_on_left="false" can_minimize="false" | 2 | <floater can_close="true" can_drag_on_left="false" can_minimize="false" |
3 | can_resize="false" height="440" min_height="140" min_width="300" | 3 | can_resize="false" height="450" min_height="450" min_width="300" |
4 | name="Image Preview" title="" width="300"> | 4 | name="Image Preview" title="" width="300"> |
5 | <text bottom_delta="-40" follows="top|left" height="15" left="10" name="name_label"> | 5 | <text bottom_delta="-40" follows="top|left" height="15" left="10" name="name_label"> |
6 | Name: | 6 | Name: |
@@ -53,16 +53,16 @@ | |||
53 | 53 | ||
54 | Try saving image as 24 bit Targa (.tga). | 54 | Try saving image as 24 bit Targa (.tga). |
55 | </text> | 55 | </text> |
56 | <check_box bottom="37" control_name="LosslessJ2CUpload" enabled="false" | 56 | <check_box bottom="45" control_name="LosslessJ2CUpload" enabled="false" |
57 | follows="bottom|left" font="SansSerifSmall" height="16" | 57 | follows="bottom|left" font="SansSerifSmall" height="16" |
58 | initial_value="false" label="Use lossless compression" left="10" | 58 | initial_value="false" label="Use lossless compression" left="10" |
59 | left_delta="2" name="lossless_check" width="280" /> | 59 | left_delta="2" name="lossless_check" width="280" /> |
60 | <check_box bottom="37" control_name="EmeraldTemporaryUpload" enabled="true" | 60 | <check_box bottom_delta="-18" control_name="EmeraldTemporaryUpload" enabled="true" |
61 | follows="bottom|left" font="SansSerifSmall" height="16" | 61 | follows="bottom|left" font="SansSerifSmall" height="16" |
62 | initial_value="false" label="Temporary Image (Free)" | 62 | initial_value="false" label="Temporary Image (Free)" |
63 | left_delta="155" name="temp_check" width="280" tooltip="Sets the asset to be temporary, meaning its free, but in return, only good for a short time before it ceases to exist." /> | 63 | left_delta="0" name="temp_check" width="280" tooltip="Sets the asset to be temporary, meaning its free, but in return, only good for a short time before it ceases to exist." /> |
64 | <button bottom="10" follows="bottom|right" height="20" label="Cancel" left="165" | 64 | <button bottom="5" follows="bottom|right" height="20" label="Cancel" left="165" |
65 | name="cancel_btn" width="125" /> | 65 | name="cancel_btn" width="125" /> |
66 | <button bottom="10" follows="bottom|left" height="20" label="Upload (L$[AMOUNT])" | 66 | <button bottom="5" follows="bottom|left" height="20" label="Upload (L$[AMOUNT])" |
67 | left="15" name="ok_btn" width="125" /> | 67 | left="15" name="ok_btn" width="125" /> |
68 | </floater> | 68 | </floater> |
diff --git a/linden/indra/newview/skins/default/xui/en-us/floater_tools.xml b/linden/indra/newview/skins/default/xui/en-us/floater_tools.xml index 959ebde..52275ea 100644 --- a/linden/indra/newview/skins/default/xui/en-us/floater_tools.xml +++ b/linden/indra/newview/skins/default/xui/en-us/floater_tools.xml | |||
@@ -119,10 +119,10 @@ | |||
119 | <check_box bottom_delta="-19" control_name="SnapEnabled" follows="left|top" | 119 | <check_box bottom_delta="-19" control_name="SnapEnabled" follows="left|top" |
120 | font="SansSerifSmall" height="16" initial_value="true" label="Use Grid" | 120 | font="SansSerifSmall" height="16" initial_value="true" label="Use Grid" |
121 | left_delta="0" mouse_opaque="true" name="checkbox snap to grid" width="134" /> | 121 | left_delta="0" mouse_opaque="true" name="checkbox snap to grid" width="134" /> |
122 | <button bottom_delta="-19" follows="left|top" font="SansSerifSmall" | 122 | <button bottom_delta="-30" follows="left|top" font="SansSerifSmall" |
123 | halign="center" valign="center" | 123 | halign="center" valign="center" |
124 | height="20" label="Options..." label_selected="Options..." left_delta="20" | 124 | height="20" label="Build Options" left_delta="20" |
125 | mouse_opaque="true" name="Options..." scale_image="TRUE" width="80" /> | 125 | mouse_opaque="true" name="Options..." scale_image="TRUE" width="100" /> |
126 | 126 | ||
127 | 127 | ||
128 | <!-- Help text --> | 128 | <!-- Help text --> |
diff --git a/linden/indra/newview/skins/default/xui/en-us/menu_viewer.xml b/linden/indra/newview/skins/default/xui/en-us/menu_viewer.xml index 9c02f07..242cc8f 100644 --- a/linden/indra/newview/skins/default/xui/en-us/menu_viewer.xml +++ b/linden/indra/newview/skins/default/xui/en-us/menu_viewer.xml | |||
@@ -346,6 +346,12 @@ | |||
346 | <on_check control="ShowMiniMap" /> | 346 | <on_check control="ShowMiniMap" /> |
347 | </menu_item_check> | 347 | </menu_item_check> |
348 | <menu_item_separator /> | 348 | <menu_item_separator /> |
349 | <menu_item_check label="AO" name="AO" | ||
350 | shortcut="control|shift|O"> | ||
351 | <on_click function="View.ToggleAO" userdata="" /> | ||
352 | <on_check function="View.CheckAO" /> | ||
353 | </menu_item_check> | ||
354 | <menu_item_separator /> | ||
349 | <menu_item_check name="Statistics Bar" label="Statistics Bar" | 355 | <menu_item_check name="Statistics Bar" label="Statistics Bar" |
350 | shortcut="control|shift|1"> | 356 | shortcut="control|shift|1"> |
351 | <on_click function="ShowFloater" userdata="stat bar" /> | 357 | <on_click function="ShowFloater" userdata="stat bar" /> |
diff --git a/linden/indra/newview/skins/default/xui/en-us/notifications.xml b/linden/indra/newview/skins/default/xui/en-us/notifications.xml index b0deeef..df277ad 100644 --- a/linden/indra/newview/skins/default/xui/en-us/notifications.xml +++ b/linden/indra/newview/skins/default/xui/en-us/notifications.xml | |||
@@ -6677,6 +6677,20 @@ Go to the Official Imprudence Forums to discuss the Imprudence Project. | |||
6677 | yestext="OK"/> | 6677 | yestext="OK"/> |
6678 | </notification> | 6678 | </notification> |
6679 | 6679 | ||
6680 | <notification | ||
6681 | icon="notify.tga" | ||
6682 | name="FirstAO" | ||
6683 | type="notify"> | ||
6684 | For instructions, make a new template in the AO. Use the toolbar to toggle the AO on/off. | ||
6685 | </notification> | ||
6686 | |||
6687 | <notification | ||
6688 | icon="notifytip.tga" | ||
6689 | name="NoShadows" | ||
6690 | type="notifytip"> | ||
6691 | Shadows cannot be enabled due to your graphics settings being set too low. Make sure your graphics settings are set to Ultra with Basic and Atmospheric Shaders enabled. | ||
6692 | </notification> | ||
6693 | |||
6680 | 6694 | ||
6681 | <!--End Imprudence notifications--> | 6695 | <!--End Imprudence notifications--> |
6682 | 6696 | ||
diff --git a/linden/indra/newview/skins/default/xui/en-us/panel_avatar.xml b/linden/indra/newview/skins/default/xui/en-us/panel_avatar.xml index ed5282d..dbaf48e 100644 --- a/linden/indra/newview/skins/default/xui/en-us/panel_avatar.xml +++ b/linden/indra/newview/skins/default/xui/en-us/panel_avatar.xml | |||
@@ -3,7 +3,7 @@ | |||
3 | <tab_container bottom="-511" height="511" left="0" mouse_opaque="false" name="tab" | 3 | <tab_container bottom="-511" height="511" left="0" mouse_opaque="false" name="tab" |
4 | tab_min_width="50" tab_position="top" width="419"> | 4 | tab_min_width="50" tab_position="top" width="419"> |
5 | <panel border="true" bottom="-507" follows="left|top|right|bottom" height="491" | 5 | <panel border="true" bottom="-507" follows="left|top|right|bottom" height="491" |
6 | label="2nd Life" left="1" mouse_opaque="true" name="2nd Life" width="418"> | 6 | label="Avatar" left="1" mouse_opaque="true" name="2nd Life" width="418"> |
7 | <string name="CaptionTextAcctInfo"> | 7 | <string name="CaptionTextAcctInfo"> |
8 | [ACCTTYPE] | 8 | [ACCTTYPE] |
9 | [PAYMENTINFO] | 9 | [PAYMENTINFO] |
@@ -335,7 +335,7 @@ | |||
335 | </text> | 335 | </text> |
336 | </panel> | 336 | </panel> |
337 | <panel border="true" bottom="-482" follows="left|top|right|bottom" height="466" | 337 | <panel border="true" bottom="-482" follows="left|top|right|bottom" height="466" |
338 | label="1st Life" left="1" mouse_opaque="true" name="1st Life" width="418"> | 338 | label="Real Life" left="1" mouse_opaque="true" name="1st Life" width="418"> |
339 | <texture_picker allow_no_texture="true" bottom="220" can_apply_immediately="false" | 339 | <texture_picker allow_no_texture="true" bottom="220" can_apply_immediately="false" |
340 | default_image_name="None" follows="left|top" height="235" label="" | 340 | default_image_name="None" follows="left|top" height="235" label="" |
341 | left="12" mouse_opaque="true" name="img" | 341 | left="12" mouse_opaque="true" name="img" |
diff --git a/linden/indra/newview/skins/default/xui/en-us/panel_preferences_advanced.xml b/linden/indra/newview/skins/default/xui/en-us/panel_preferences_advanced.xml new file mode 100644 index 0000000..39a3111 --- /dev/null +++ b/linden/indra/newview/skins/default/xui/en-us/panel_preferences_advanced.xml | |||
@@ -0,0 +1,25 @@ | |||
1 | <?xml version="1.0" encoding="utf-8" standalone="yes" ?> | ||
2 | <panel border="true" bottom="-409" enabled="true" follows="left|top|right|bottom" | ||
3 | height="408" label="Advanced" left="102" mouse_opaque="true" | ||
4 | name="advanced_panel" width="517"> | ||
5 | |||
6 | <!-- Start organizing these when we get enough of 'em - MC --> | ||
7 | |||
8 | <check_box bottom="-20" enabled="true" | ||
9 | follows="left|top" font="SansSerifSmall" height="16" | ||
10 | initial_value="false" label="Disable Login/Logout Screens" left="12" | ||
11 | mouse_opaque="true" name="disable_log_screen_check" radio_style="false" | ||
12 | width="217" /> | ||
13 | <check_box bottom_delta="-18" enabled="true" follows="left|top" | ||
14 | font="SansSerifSmall" height="16" initial_value="false" | ||
15 | label="Disable Teleport Screens" left="12" mouse_opaque="true" | ||
16 | name="disable_tp_screen_check" radio_style="false" width="217" /> | ||
17 | <check_box bottom_delta="-25" enabled="true" follows="left|top" | ||
18 | font="SansSerifSmall" height="16" initial_value="false" | ||
19 | label="Show Client Names in Name Tag" left="12" mouse_opaque="true" | ||
20 | name="client_name_tag_check" radio_style="false" width="217" /> | ||
21 | <check_box bottom_delta="-25" enabled="true" follows="left|top" | ||
22 | font="SansSerifSmall" height="16" initial_value="false" | ||
23 | label="Enable Shadows (WARNING: unstable and requires Ultra graphics)" left="12" mouse_opaque="true" | ||
24 | name="shadows_check" radio_style="false" width="217" /> | ||
25 | </panel> | ||
diff --git a/linden/indra/newview/skins/default/xui/en-us/panel_preferences_im.xml b/linden/indra/newview/skins/default/xui/en-us/panel_preferences_im.xml index 9b18e11..582e230 100644 --- a/linden/indra/newview/skins/default/xui/en-us/panel_preferences_im.xml +++ b/linden/indra/newview/skins/default/xui/en-us/panel_preferences_im.xml | |||
@@ -62,8 +62,11 @@ | |||
62 | <text_editor type="string" length="1" bottom_delta="-60" embedded_items="false" enabled="true" follows="left|top" | 62 | <text_editor type="string" length="1" bottom_delta="-60" embedded_items="false" enabled="true" follows="left|top" |
63 | font="SansSerifSmall" height="70" left="148" max_length="255" | 63 | font="SansSerifSmall" height="70" left="148" max_length="255" |
64 | mouse_opaque="true" name="busy_response" width="330" word_wrap="true" /> | 64 | mouse_opaque="true" name="busy_response" width="330" word_wrap="true" /> |
65 | <button bottom_delta="-25" follows="top|right" height="22" label="IM Response Options" | ||
66 | left="164" name="busy_adv_btn" tool_tip="Auto response options" | ||
67 | width="180" /> | ||
65 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | 68 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" |
66 | bottom_delta="-33" drop_shadow_visible="true" enabled="true" follows="left|top" | 69 | bottom_delta="-23" drop_shadow_visible="true" enabled="true" follows="left|top" |
67 | font="SansSerifSmall" h_pad="0" halign="left" height="10" left="12" | 70 | font="SansSerifSmall" h_pad="0" halign="left" height="10" left="12" |
68 | mouse_opaque="false" name="text_box4" v_pad="0" width="128"> | 71 | mouse_opaque="false" name="text_box4" v_pad="0" width="128"> |
69 | Logging Options: | 72 | Logging Options: |
@@ -100,7 +103,7 @@ | |||
100 | name="log_date_timestamp" radio_style="false" width="237" /> | 103 | name="log_date_timestamp" radio_style="false" width="237" /> |
101 | <button bottom_delta="-22" follows="right|bottom" font="SansSerif" halign="center" | 104 | <button bottom_delta="-22" follows="right|bottom" font="SansSerif" halign="center" |
102 | height="20" label="Change Path" label_selected="Change Path" left="170" | 105 | height="20" label="Change Path" label_selected="Change Path" left="170" |
103 | mouse_opaque="true" name="log_path_button" width="90" /> | 106 | mouse_opaque="true" name="log_path_button" width="96" /> |
104 | <line_editor border_drop_shadow_visible="false" border_visible="false" bottom_delta="1" | 107 | <line_editor border_drop_shadow_visible="false" border_visible="false" bottom_delta="1" |
105 | drop_shadow_visible="true" enabled="false" follows="top|left|right" | 108 | drop_shadow_visible="true" enabled="false" follows="top|left|right" |
106 | font="SansSerifSmall" halign="right" height="19" left="248" | 109 | font="SansSerifSmall" halign="right" height="19" left="248" |
diff --git a/linden/indra/newview/skins/default/xui/es/panel_avatar.xml b/linden/indra/newview/skins/default/xui/es/panel_avatar.xml index 3c255ac..021aebf 100644 --- a/linden/indra/newview/skins/default/xui/es/panel_avatar.xml +++ b/linden/indra/newview/skins/default/xui/es/panel_avatar.xml | |||
@@ -1,210 +1,210 @@ | |||
1 | <?xml version="1.0" encoding="utf-8" standalone="yes"?> | 1 | <?xml version="1.0" encoding="utf-8" standalone="yes"?> |
2 | <panel name="Panel Avatar" width="470"> | 2 | <panel name="Panel Avatar" width="470"> |
3 | <tab_container name="tab" width="459"> | 3 | <tab_container name="tab" width="459"> |
4 | <panel label="2ª Vida" name="2nd Life"> | 4 | <panel label="2ª Vida" name="2nd Life"> |
5 | <string name="CaptionTextAcctInfo"> | 5 | <string name="CaptionTextAcctInfo"> |
6 | [ACCTTYPE] | 6 | [ACCTTYPE] |
7 | [PAYMENTINFO] | 7 | [PAYMENTINFO] |
8 | [AGEVERIFICATION] | 8 | [AGEVERIFICATION] |
9 | </string> | 9 | </string> |
10 | <string name="AcctTypeResident"> | 10 | <string name="AcctTypeResident"> |
11 | Residente | 11 | Residente |
12 | </string> | 12 | </string> |
13 | <string name="AcctTypeTrial"> | 13 | <string name="AcctTypeTrial"> |
14 | Prueba | 14 | Prueba |
15 | </string> | 15 | </string> |
16 | <string name="AcctTypeCharterMember"> | 16 | <string name="AcctTypeCharterMember"> |
17 | Miembro fundador | 17 | Miembro fundador |
18 | </string> | 18 | </string> |
19 | <string name="AcctTypeEmployee"> | 19 | <string name="AcctTypeEmployee"> |
20 | Empleado de Linden Lab | 20 | Empleado de Linden Lab |
21 | </string> | 21 | </string> |
22 | <string name="PaymentInfoUsed"> | 22 | <string name="PaymentInfoUsed"> |
23 | Ha usado una forma de pago | 23 | Ha usado una forma de pago |
24 | </string> | 24 | </string> |
25 | <string name="PaymentInfoOnFile"> | 25 | <string name="PaymentInfoOnFile"> |
26 | Hay infor. de la forma de pago | 26 | Hay infor. de la forma de pago |
27 | </string> | 27 | </string> |
28 | <string name="NoPaymentInfoOnFile"> | 28 | <string name="NoPaymentInfoOnFile"> |
29 | Sin infor. de la forma de pago | 29 | Sin infor. de la forma de pago |
30 | </string> | 30 | </string> |
31 | <string name="AgeVerified"> | 31 | <string name="AgeVerified"> |
32 | Edad verificada | 32 | Edad verificada |
33 | </string> | 33 | </string> |
34 | <string name="NotAgeVerified"> | 34 | <string name="NotAgeVerified"> |
35 | Edad no verificada | 35 | Edad no verificada |
36 | </string> | 36 | </string> |
37 | <text name="Name:"> | 37 | <text name="Name:"> |
38 | Nombre: | 38 | Nombre: |
39 | </text> | 39 | </text> |
40 | <text name="online_yes" width="151"> | 40 | <text name="online_yes" width="151"> |
41 | Conectado en este momento | 41 | Conectado en este momento |
42 | </text> | 42 | </text> |
43 | <text name="label"> | 43 | <text name="label"> |
44 | Nacido: | 44 | Nacido: |
45 | </text> | 45 | </text> |
46 | <line_editor name="born" width="161" /> | 46 | <line_editor name="born" width="161" /> |
47 | <text name="label2"> | 47 | <text name="label2"> |
48 | Cuenta: | 48 | Cuenta: |
49 | </text> | 49 | </text> |
50 | <view_border name="acct_border" width="161" /> | 50 | <view_border name="acct_border" width="161" /> |
51 | <text name="acct" width="161" /> | 51 | <text name="acct" width="161" /> |
52 | <text name="partner_label" tool_tip="Compañero/a de Second Life. Para más información, ver www.secondlife.com/partner"> | 52 | <text name="partner_label" tool_tip="Compañero/a de Second Life. Para más información, ver www.secondlife.com/partner"> |
53 | Compañero/a: | 53 | Compañero/a: |
54 | </text> | 54 | </text> |
55 | <button label="i" label_selected="i" name="partner_info" tool_tip="Pulse para abrir el perfil del compañero/a" left_delta="84"/> | 55 | <button label="i" label_selected="i" name="partner_info" tool_tip="Pulse para abrir el perfil del compañero/a" left_delta="84"/> |
56 | <button label="?" label_selected="?" name="partner_help"/> | 56 | <button label="?" label_selected="?" name="partner_help"/> |
57 | <line_editor name="partner_edit" tool_tip="Compañero/a de Second Life. Para más información, ver www.secondlife.com/partner" width="161"> | 57 | <line_editor name="partner_edit" tool_tip="Compañero/a de Second Life. Para más información, ver www.secondlife.com/partner" width="161"> |
58 | [FIRST] [LAST] | 58 | [FIRST] [LAST] |
59 | </line_editor> | 59 | </line_editor> |
60 | <text name="Photo:"> | 60 | <text name="Photo:"> |
61 | Foto: | 61 | Foto: |
62 | </text> | 62 | </text> |
63 | <texture_picker label="" name="img" tool_tip="Pulse para elegir una imagen"/> | 63 | <texture_picker label="" name="img" tool_tip="Pulse para elegir una imagen"/> |
64 | <text name="Groups:"> | 64 | <text name="Groups:"> |
65 | Grupos: | 65 | Grupos: |
66 | </text> | 66 | </text> |
67 | <scroll_list name="groups" width="361" /> | 67 | <scroll_list name="groups" width="361" /> |
68 | <text name="About:"> | 68 | <text name="About:"> |
69 | Sobre mí: | 69 | Sobre mí: |
70 | </text> | 70 | </text> |
71 | <text name="(500 chars)"> | 71 | <text name="(500 chars)"> |
72 | 500 caracts. | 72 | 500 caracts. |
73 | </text> | 73 | </text> |
74 | <text_editor name="about" width="361"/> | 74 | <text_editor name="about" width="361"/> |
75 | <text name="Give item:"> | 75 | <text name="Give item:"> |
76 | Dar un ítem: | 76 | Dar un ítem: |
77 | </text> | 77 | </text> |
78 | <view_border name="drop_target_rect" width="449" /> | 78 | <view_border name="drop_target_rect" width="449" /> |
79 | <view_border name="drop_target_rect_vis" width="361" /> | 79 | <view_border name="drop_target_rect_vis" width="361" /> |
80 | <text name="Give inventory" tool_tip="Arrastre hasta aquí ítems del inventario para dárselos a esta persona." width="361"> | 80 | <text name="Give inventory" tool_tip="Arrastre hasta aquí ítems del inventario para dárselos a esta persona." width="361"> |
81 | Arrastre hasta aquí un ítem del inventario. | 81 | Arrastre hasta aquí un ítem del inventario. |
82 | </text> | 82 | </text> |
83 | <check_box label="Mostrar en la búsqueda" name="allow_publish" tool_tip="Publicar más información sobre el perfil, como la descripción e imagen en la búsqueda."/> | 83 | <check_box label="Mostrar en la búsqueda" name="allow_publish" tool_tip="Publicar más información sobre el perfil, como la descripción e imagen en la búsqueda."/> |
84 | <button label="?" label_selected="?" name="?"/> | 84 | <button label="?" label_selected="?" name="?"/> |
85 | <button label="Localizar en el mapa" label_selected="Localizar en el mapa" name="Find on Map" width="130" /> | 85 | <button label="Localizar en el mapa" label_selected="Localizar en el mapa" name="Find on Map" width="130" /> |
86 | <button label="Ofrecer teleporte..." label_selected="Ofrecer teleporte..." name="Offer Teleport..." left_delta="137" width="145" /> | 86 | <button label="Ofrecer teleporte..." label_selected="Ofrecer teleporte..." name="Offer Teleport..." left_delta="137" width="145" /> |
87 | <button label="Añadir como amigo..." label_selected="Añadir como amigo..." name="Add Friend..." left_delta="152"/> | 87 | <button label="Añadir como amigo..." label_selected="Añadir como amigo..." name="Add Friend..." left_delta="152"/> |
88 | <button label="Pagar..." label_selected="Pagar..." name="Pay..." width="130" /> | 88 | <button label="Pagar..." label_selected="Pagar..." name="Pay..." width="130" /> |
89 | <button label="Mensaje Instantáneo..." label_selected="Mensaje Instantáneo..." name="Instant Message..." tool_tip="Mensaje Instantáneo (MI)" left_delta="137" width="145"/> | 89 | <button label="Mensaje Instantáneo..." label_selected="Mensaje Instantáneo..." name="Instant Message..." tool_tip="Mensaje Instantáneo (MI)" left_delta="137" width="145"/> |
90 | <button label="Ignorar" label_selected="Ignorar" name="Mute" left_delta="152"/> | 90 | <button label="Ignorar" label_selected="Ignorar" name="Mute" left_delta="152"/> |
91 | </panel> | 91 | </panel> |
92 | <panel label="Web" name="WebProfile" width="458"> | 92 | <panel label="Web" name="WebProfile" width="458"> |
93 | <line_editor name="url_edit" width="440" /> | 93 | <line_editor name="url_edit" width="440" /> |
94 | <flyout_button label="Cargar" label_selected="Cargar" name="load" tool_tip="Cargar este perfil en el navegador incorporado."> | 94 | <flyout_button label="Cargar" label_selected="Cargar" name="load" tool_tip="Cargar este perfil en el navegador incorporado."> |
95 | <flyout_button_item name="open_item"> | 95 | <flyout_button_item name="open_item"> |
96 | En un navegador externo | 96 | En un navegador externo |
97 | </flyout_button_item> | 97 | </flyout_button_item> |
98 | <flyout_button_item name="home_item"> | 98 | <flyout_button_item name="home_item"> |
99 | Inicio | 99 | Inicio |
100 | </flyout_button_item> | 100 | </flyout_button_item> |
101 | </flyout_button> | 101 | </flyout_button> |
102 | <button label="?" label_selected="?" name="web_profile_help"/> | 102 | <button label="?" label_selected="?" name="web_profile_help"/> |
103 | <check_box label="Cargar automáticamente las páginas web de los perfiles." name="auto_load" tool_tip="Cargar automáticamente TODAS las páginas web de los perfiles, sin preguntar antes."/> | 103 | <check_box label="Cargar automáticamente las páginas web de los perfiles." name="auto_load" tool_tip="Cargar automáticamente TODAS las páginas web de los perfiles, sin preguntar antes."/> |
104 | <text name="status_text"/> | 104 | <text name="status_text"/> |
105 | <web_browser name="profile_html" width="440" /> | 105 | <web_browser name="profile_html" width="440" /> |
106 | </panel> | 106 | </panel> |
107 | <panel label="Intereses" name="Interests" width="458"> | 107 | <panel label="Intereses" name="Interests" width="458"> |
108 | <text name="I Want To:"> | 108 | <text name="I Want To:"> |
109 | Quiero: | 109 | Quiero: |
110 | </text> | 110 | </text> |
111 | <check_box label="Construir" name="chk0"/> | 111 | <check_box label="Construir" name="chk0"/> |
112 | <check_box label="Explorar" name="chk1"/> | 112 | <check_box label="Explorar" name="chk1"/> |
113 | <check_box label="Conocer gente" name="chk2"/> | 113 | <check_box label="Conocer gente" name="chk2"/> |
114 | <check_box label="Ser contratado" name="chk6"/> | 114 | <check_box label="Ser contratado" name="chk6"/> |
115 | <check_box label="Estar en un grupo" name="chk3"/> | 115 | <check_box label="Estar en un grupo" name="chk3"/> |
116 | <check_box label="Comprar" name="chk4"/> | 116 | <check_box label="Comprar" name="chk4"/> |
117 | <check_box label="Vender" name="chk5"/> | 117 | <check_box label="Vender" name="chk5"/> |
118 | <check_box label="Contratar" name="chk7"/> | 118 | <check_box label="Contratar" name="chk7"/> |
119 | <line_editor name="want_to_edit" width="360" /> | 119 | <line_editor name="want_to_edit" width="360" /> |
120 | <text name="Skills:"> | 120 | <text name="Skills:"> |
121 | Habilidades: | 121 | Habilidades: |
122 | </text> | 122 | </text> |
123 | <check_box label="Texturas" name="schk0"/> | 123 | <check_box label="Texturas" name="schk0"/> |
124 | <check_box label="Arquitectura" name="schk1"/> | 124 | <check_box label="Arquitectura" name="schk1"/> |
125 | <check_box label="Programar eventos" name="schk2"/> | 125 | <check_box label="Programar eventos" name="schk2"/> |
126 | <check_box label="Hacer de modelo" name="schk3"/> | 126 | <check_box label="Hacer de modelo" name="schk3"/> |
127 | <check_box label="Programar" name="schk4"/> | 127 | <check_box label="Programar" name="schk4"/> |
128 | <check_box label="Personalizar personajes" name="schk5"/> | 128 | <check_box label="Personalizar personajes" name="schk5"/> |
129 | <line_editor name="skills_edit" width="360" /> | 129 | <line_editor name="skills_edit" width="360" /> |
130 | <text name="Languages:"> | 130 | <text name="Languages:"> |
131 | Idiomas: | 131 | Idiomas: |
132 | </text> | 132 | </text> |
133 | <line_editor name="languages_edit" width="360" /> | 133 | <line_editor name="languages_edit" width="360" /> |
134 | </panel> | 134 | </panel> |
135 | <panel label="Destacados" name="Picks" width="458"> | 135 | <panel label="Destacados" name="Picks" width="458"> |
136 | <tab_container name="picks tab" width="452" /> | 136 | <tab_container name="picks tab" width="452" /> |
137 | <text name="Tell everyone about your favorite places in Second Life."> | 137 | <text name="Tell everyone about your favorite places in Second Life."> |
138 | Explique a todos sus lugares favoritos de Second Life. | 138 | Explique a todos sus lugares favoritos de Second Life. |
139 | </text> | 139 | </text> |
140 | <button label="Nuevo..." label_selected="Nuevo..." name="New..."/> | 140 | <button label="Nuevo..." label_selected="Nuevo..." name="New..."/> |
141 | <button label="Borrar..." label_selected="Borrar..." name="Delete..."/> | 141 | <button label="Borrar..." label_selected="Borrar..." name="Delete..."/> |
142 | <text name="loading_text"> | 142 | <text name="loading_text"> |
143 | Cargando... | 143 | Cargando... |
144 | </text> | 144 | </text> |
145 | </panel> | 145 | </panel> |
146 | <panel label="Clasificados" name="Classified" width="458"> | 146 | <panel label="Clasificados" name="Classified" width="458"> |
147 | <tab_container name="classified tab" width="452" /> | 147 | <tab_container name="classified tab" width="452" /> |
148 | <text name="Place an ad in Second Life's classified listings."> | 148 | <text name="Place an ad in Second Life's classified listings."> |
149 | Ponga un anuncio en las listas de clasificados de Second Life. | 149 | Ponga un anuncio en las listas de clasificados de Second Life. |
150 | </text> | 150 | </text> |
151 | <button label="Nuevo..." label_selected="Nuevo..." name="New..."/> | 151 | <button label="Nuevo..." label_selected="Nuevo..." name="New..."/> |
152 | <button label="Borrar..." label_selected="Borrar..." name="Delete..."/> | 152 | <button label="Borrar..." label_selected="Borrar..." name="Delete..."/> |
153 | <text name="loading_text"> | 153 | <text name="loading_text"> |
154 | Cargando... | 154 | Cargando... |
155 | </text> | 155 | </text> |
156 | </panel> | 156 | </panel> |
157 | <panel label="1ª Vida" name="1st Life" width="458"> | 157 | <panel label="1ª Vida" name="1st Life" width="458"> |
158 | <text_editor name="about" width="365" left="75" /> | 158 | <text_editor name="about" width="365" left="75" /> |
159 | <text name="Photo:"> | 159 | <text name="Photo:"> |
160 | Foto: | 160 | Foto: |
161 | </text> | 161 | </text> |
162 | <texture_picker label="" name="img" tool_tip="Pulse para elegir una imagen" left="75" /> | 162 | <texture_picker label="" name="img" tool_tip="Pulse para elegir una imagen" left="75" /> |
163 | <text name="Info:" width="66"> | 163 | <text name="Info:" width="66"> |
164 | Información: | 164 | Información: |
165 | </text> | 165 | </text> |
166 | <text name="(250 chars)" halign="left" left="7"> | 166 | <text name="(250 chars)" halign="left" left="7"> |
167 | (250 | 167 | (250 |
168 | caracts.) | 168 | caracts.) |
169 | </text> | 169 | </text> |
170 | </panel> | 170 | </panel> |
171 | <panel label="Mis notas" name="My Notes" width="458"> | 171 | <panel label="Mis notas" name="My Notes" width="458"> |
172 | <text_editor name="notes edit" width="430"/> | 172 | <text_editor name="notes edit" width="430"/> |
173 | <string name="Loading"> | 173 | <string name="Loading"> |
174 | Cargando... | 174 | Cargando... |
175 | </string> | 175 | </string> |
176 | <text name="label" width="452"> | 176 | <text name="label" width="452"> |
177 | Use este espacio para escribir sus notas acerca de esta persona. Lleve un | 177 | Use este espacio para escribir sus notas acerca de esta persona. Lleve un |
178 | seguimiento del progreso de sus empresas, comparta proyectos, etc. Sólo usted | 178 | seguimiento del progreso de sus empresas, comparta proyectos, etc. Sólo usted |
179 | puede ver estas notas. Ni esta persona ni ninguna otra pueden verlas. | 179 | puede ver estas notas. Ni esta persona ni ninguna otra pueden verlas. |
180 | </text> | 180 | </text> |
181 | </panel> | 181 | </panel> |
182 | </tab_container> | 182 | </tab_container> |
183 | <button label="OK" label_selected="OK" name="OK"/> | 183 | <button label="OK" label_selected="OK" name="OK"/> |
184 | <button label="Cancelar" label_selected="Cancelar" name="Cancel"/> | 184 | <button label="Cancelar" label_selected="Cancelar" name="Cancel"/> |
185 | <button label="Expulsar" label_selected="Expulsar" name="Kick" width="82"/> | 185 | <button label="Expulsar" label_selected="Expulsar" name="Kick" width="82"/> |
186 | <button label="Congelar" label_selected="Congelar" name="Freeze" tool_tip="Detener el movimiento y el chat de este residente." width="82"/> | 186 | <button label="Congelar" label_selected="Congelar" name="Freeze" tool_tip="Detener el movimiento y el chat de este residente." width="82"/> |
187 | <button label="Descongelar" label_selected="Descongelar" name="Unfreeze" tool_tip="Descongelar al residente" width="82"/> | 187 | <button label="Descongelar" label_selected="Descongelar" name="Unfreeze" tool_tip="Descongelar al residente" width="82"/> |
188 | <button label="CSR" label_selected="CSR" name="csr_btn" tool_tip="Abrir la herramienta de servicio al cliente para este residente" width="82"/> | 188 | <button label="CSR" label_selected="CSR" name="csr_btn" tool_tip="Abrir la herramienta de servicio al cliente para este residente" width="82"/> |
189 | <string name="ShowOnMapNonFriend"> | 189 | <string name="ShowOnMapNonFriend"> |
190 | Ver la posición en el mapa. Desactivado porque no están entre sus amigos. | 190 | Ver la posición en el mapa. Desactivado porque no están entre sus amigos. |
191 | </string> | 191 | </string> |
192 | <string name="ShowOnMapFriendOffline"> | 192 | <string name="ShowOnMapFriendOffline"> |
193 | Ver la posición en el mapa. Desactivado porque no están conectados. | 193 | Ver la posición en el mapa. Desactivado porque no están conectados. |
194 | </string> | 194 | </string> |
195 | <string name="ShowOnMapFriendOnline"> | 195 | <string name="ShowOnMapFriendOnline"> |
196 | Ver la posición en el mapa. | 196 | Ver la posición en el mapa. |
197 | </string> | 197 | </string> |
198 | <string name="TeleportGod"> | 198 | <string name="TeleportGod"> |
199 | Obligarle a teleportarse hasta su posición. | 199 | Obligarle a teleportarse hasta su posición. |
200 | </string> | 200 | </string> |
201 | <string name="TeleportPrelude"> | 201 | <string name="TeleportPrelude"> |
202 | Ofrecer un teleporte hasta su posición. Desactivado hasta que usted no salga de esta Isla. | 202 | Ofrecer un teleporte hasta su posición. Desactivado hasta que usted no salga de esta Isla. |
203 | </string> | 203 | </string> |
204 | <string name="TeleportNormal"> | 204 | <string name="TeleportNormal"> |
205 | Ofrecer un teleporte hasta su posición. | 205 | Ofrecer un teleporte hasta su posición. |
206 | </string> | 206 | </string> |
207 | <string name="Loading"> | 207 | <string name="Loading"> |
208 | Cargando... | 208 | Cargando... |
209 | </string> | 209 | </string> |
210 | </panel> | 210 | </panel> |
diff --git a/linden/indra/newview/skins/default/xui/it/panel_avatar.xml b/linden/indra/newview/skins/default/xui/it/panel_avatar.xml index bd1e6b6..a9a7532 100644 --- a/linden/indra/newview/skins/default/xui/it/panel_avatar.xml +++ b/linden/indra/newview/skins/default/xui/it/panel_avatar.xml | |||
@@ -1,7 +1,7 @@ | |||
1 | <?xml version="1.0" encoding="utf-8" standalone="yes"?> | 1 | <?xml version="1.0" encoding="utf-8" standalone="yes"?> |
2 | <panel name="Panel Avatar" width="470"> | 2 | <panel name="Panel Avatar" width="470"> |
3 | <tab_container name="tab" width="459"> | 3 | <tab_container name="tab" width="459"> |
4 | <panel label="2nd Life" name="2nd Life" width="458"> | 4 | <panel label="Avatar" name="2nd Life" width="458"> |
5 | <string name="CaptionTextAcctInfo"> | 5 | <string name="CaptionTextAcctInfo"> |
6 | [ACCTTYPE] | 6 | [ACCTTYPE] |
7 | [PAYMENTINFO] | 7 | [PAYMENTINFO] |
diff --git a/linden/indra/newview/skins/default/xui/pt/panel_avatar.xml b/linden/indra/newview/skins/default/xui/pt/panel_avatar.xml index dfc4007..bc45a82 100644 --- a/linden/indra/newview/skins/default/xui/pt/panel_avatar.xml +++ b/linden/indra/newview/skins/default/xui/pt/panel_avatar.xml | |||
@@ -1,212 +1,212 @@ | |||
1 | <?xml version="1.0" encoding="utf-8" standalone="yes"?> | 1 | <?xml version="1.0" encoding="utf-8" standalone="yes"?> |
2 | <panel name="Panel Avatar" width="495"> | 2 | <panel name="Panel Avatar" width="495"> |
3 | <tab_container name="tab" width="484"> | 3 | <tab_container name="tab" width="484"> |
4 | <panel label="2nd Life" name="2nd Life" width="483"> | 4 | <panel label="Avatar" name="2nd Life" width="483"> |
5 | <string name="CaptionTextAcctInfo"> | 5 | <string name="CaptionTextAcctInfo"> |
6 | [ACCTTYPE] | 6 | [ACCTTYPE] |
7 | [PAYMENTINFO] | 7 | [PAYMENTINFO] |
8 | [AGEVERIFICATION] | 8 | [AGEVERIFICATION] |
9 | </string> | 9 | </string> |
10 | <string name="AcctTypeResident"> | 10 | <string name="AcctTypeResident"> |
11 | Residente | 11 | Residente |
12 | </string> | 12 | </string> |
13 | <string name="AcctTypeTrial"> | 13 | <string name="AcctTypeTrial"> |
14 | Teste | 14 | Teste |
15 | </string> | 15 | </string> |
16 | <string name="AcctTypeCharterMember"> | 16 | <string name="AcctTypeCharterMember"> |
17 | Estatuto do membro | 17 | Estatuto do membro |
18 | </string> | 18 | </string> |
19 | <string name="AcctTypeEmployee"> | 19 | <string name="AcctTypeEmployee"> |
20 | Contratado da Linden Lab. | 20 | Contratado da Linden Lab. |
21 | </string> | 21 | </string> |
22 | <string name="PaymentInfoUsed"> | 22 | <string name="PaymentInfoUsed"> |
23 | Infor. de pagamento utilizadas | 23 | Infor. de pagamento utilizadas |
24 | </string> | 24 | </string> |
25 | <string name="PaymentInfoOnFile"> | 25 | <string name="PaymentInfoOnFile"> |
26 | Infor. de pagamento no arquivo. | 26 | Infor. de pagamento no arquivo. |
27 | </string> | 27 | </string> |
28 | <string name="NoPaymentInfoOnFile"> | 28 | <string name="NoPaymentInfoOnFile"> |
29 | Sem infor. de pagamento no arquivo | 29 | Sem infor. de pagamento no arquivo |
30 | </string> | 30 | </string> |
31 | <string name="AgeVerified"> | 31 | <string name="AgeVerified"> |
32 | Idade Verificada | 32 | Idade Verificada |
33 | </string> | 33 | </string> |
34 | <string name="NotAgeVerified"> | 34 | <string name="NotAgeVerified"> |
35 | Idade não Verificada | 35 | Idade não Verificada |
36 | </string> | 36 | </string> |
37 | <text name="Name:"> | 37 | <text name="Name:"> |
38 | Nome: | 38 | Nome: |
39 | </text> | 39 | </text> |
40 | <text name="online_yes" width="176"> | 40 | <text name="online_yes" width="176"> |
41 | Atualmente Online | 41 | Atualmente Online |
42 | </text> | 42 | </text> |
43 | <text name="label"> | 43 | <text name="label"> |
44 | Nascido: | 44 | Nascido: |
45 | </text> | 45 | </text> |
46 | <line_editor name="born" width="186" /> | 46 | <line_editor name="born" width="186" /> |
47 | <text name="label2"> | 47 | <text name="label2"> |
48 | Conta: | 48 | Conta: |
49 | </text> | 49 | </text> |
50 | <view_border name="acct_border" width="186" /> | 50 | <view_border name="acct_border" width="186" /> |
51 | <text name="acct" width="186" /> | 51 | <text name="acct" width="186" /> |
52 | <text name="partner_label" tool_tip="Parceiro Second Life. Para mais informações, veja www.secondlife.com/partner"> | 52 | <text name="partner_label" tool_tip="Parceiro Second Life. Para mais informações, veja www.secondlife.com/partner"> |
53 | Parceiro: | 53 | Parceiro: |
54 | </text> | 54 | </text> |
55 | <button label="i" label_selected="i" name="partner_info" tool_tip="Clique para abrir o perfil do(a) parceiro(a)" left_delta="64"/> | 55 | <button label="i" label_selected="i" name="partner_info" tool_tip="Clique para abrir o perfil do(a) parceiro(a)" left_delta="64"/> |
56 | <button label="?" label_selected="?" name="partner_help"/> | 56 | <button label="?" label_selected="?" name="partner_help"/> |
57 | <line_editor name="partner_edit" tool_tip="Parceiro Second Life. Para mais informações, veja www.secondlife.com/partner" width="186"> | 57 | <line_editor name="partner_edit" tool_tip="Parceiro Second Life. Para mais informações, veja www.secondlife.com/partner" width="186"> |
58 | [FIRST] [LAST] | 58 | [FIRST] [LAST] |
59 | </line_editor> | 59 | </line_editor> |
60 | <text name="Photo:"> | 60 | <text name="Photo:"> |
61 | Foto: | 61 | Foto: |
62 | </text> | 62 | </text> |
63 | <texture_picker label="" name="img" tool_tip="Clique para selecionar uma foto"/> | 63 | <texture_picker label="" name="img" tool_tip="Clique para selecionar uma foto"/> |
64 | <text name="Groups:"> | 64 | <text name="Groups:"> |
65 | Grupos: | 65 | Grupos: |
66 | </text> | 66 | </text> |
67 | <scroll_list name="groups" width="386" /> | 67 | <scroll_list name="groups" width="386" /> |
68 | <text name="About:"> | 68 | <text name="About:"> |
69 | Sobre: | 69 | Sobre: |
70 | </text> | 70 | </text> |
71 | <text name="(500 chars)"> | 71 | <text name="(500 chars)"> |
72 | (500 chars) | 72 | (500 chars) |
73 | </text> | 73 | </text> |
74 | <text_editor name="about" width="386"/> | 74 | <text_editor name="about" width="386"/> |
75 | <text name="Give item:"> | 75 | <text name="Give item:"> |
76 | Doar item: | 76 | Doar item: |
77 | </text> | 77 | </text> |
78 | <view_border name="drop_target_rect" width="474" /> | 78 | <view_border name="drop_target_rect" width="474" /> |
79 | <view_border name="drop_target_rect_vis" width="386" /> | 79 | <view_border name="drop_target_rect_vis" width="386" /> |
80 | <text name="Give inventory" tool_tip="Arraste e solte o item aqui para dá-lo à pessoa desejada." width="386"> | 80 | <text name="Give inventory" tool_tip="Arraste e solte o item aqui para dá-lo à pessoa desejada." width="386"> |
81 | Arraste e solte o item de inventário aqui. | 81 | Arraste e solte o item de inventário aqui. |
82 | </text> | 82 | </text> |
83 | <check_box label="Mostrar na busca" name="allow_publish" tool_tip="Publicar informações de perfil adicionais, como descrição e imagem, na Busca."/> | 83 | <check_box label="Mostrar na busca" name="allow_publish" tool_tip="Publicar informações de perfil adicionais, como descrição e imagem, na Busca."/> |
84 | <button label="?" label_selected="?" name="?"/> | 84 | <button label="?" label_selected="?" name="?"/> |
85 | <button label="Encontrar no Mapa" label_selected="Encontrar no Mapa" name="Find on Map" width="130" /> | 85 | <button label="Encontrar no Mapa" label_selected="Encontrar no Mapa" name="Find on Map" width="130" /> |
86 | <button label="Oferecer teletransporte..." label_selected="Oferecer teletransporte..." name="Offer Teleport..." left_delta="137" width="156" /> | 86 | <button label="Oferecer teletransporte..." label_selected="Oferecer teletransporte..." name="Offer Teleport..." left_delta="137" width="156" /> |
87 | <button label="Adicionar amigo..." label_selected="Adicionar amigo..." name="Add Friend..." left_delta="164"/> | 87 | <button label="Adicionar amigo..." label_selected="Adicionar amigo..." name="Add Friend..." left_delta="164"/> |
88 | <button label="Pagar..." label_selected="Pagar..." name="Pay..." width="130" /> | 88 | <button label="Pagar..." label_selected="Pagar..." name="Pay..." width="130" /> |
89 | <button label="Mensagem Instantânea..." label_selected="Mensagem Instantânea..." name="Instant Message..." tool_tip="Mensagem Instantânea (MI)" left_delta="137" width="156" /> | 89 | <button label="Mensagem Instantânea..." label_selected="Mensagem Instantânea..." name="Instant Message..." tool_tip="Mensagem Instantânea (MI)" left_delta="137" width="156" /> |
90 | <button label="Mudo" label_selected="Mudo" name="Mute" left_delta="164"/> | 90 | <button label="Mudo" label_selected="Mudo" name="Mute" left_delta="164"/> |
91 | </panel> | 91 | </panel> |
92 | <panel label="Web" name="WebProfile" width="483"> | 92 | <panel label="Web" name="WebProfile" width="483"> |
93 | <line_editor name="url_edit" width="465" /> | 93 | <line_editor name="url_edit" width="465" /> |
94 | <flyout_button label="Carregar" label_selected="Carregar" name="load" tool_tip="Carrega o seu perfil no seu navegador embutido."> | 94 | <flyout_button label="Carregar" label_selected="Carregar" name="load" tool_tip="Carrega o seu perfil no seu navegador embutido."> |
95 | <flyout_button_item name="open_item"> | 95 | <flyout_button_item name="open_item"> |
96 | No navegador externo | 96 | No navegador externo |
97 | </flyout_button_item> | 97 | </flyout_button_item> |
98 | <flyout_button_item name="home_item"> | 98 | <flyout_button_item name="home_item"> |
99 | URL de Casa | 99 | URL de Casa |
100 | </flyout_button_item> | 100 | </flyout_button_item> |
101 | </flyout_button> | 101 | </flyout_button> |
102 | <button label="?" label_selected="?" name="web_profile_help"/> | 102 | <button label="?" label_selected="?" name="web_profile_help"/> |
103 | <check_box label="Carregar automaticamente perfis da web" name="auto_load" tool_tip="Carrega automaticamente todos os perfis da Web sem perguntar antes."/> | 103 | <check_box label="Carregar automaticamente perfis da web" name="auto_load" tool_tip="Carrega automaticamente todos os perfis da Web sem perguntar antes."/> |
104 | <web_browser name="profile_html" width="465" /> | 104 | <web_browser name="profile_html" width="465" /> |
105 | </panel> | 105 | </panel> |
106 | <panel label="Interesses" name="Interests" width="483"> | 106 | <panel label="Interesses" name="Interests" width="483"> |
107 | <text name="I Want To:"> | 107 | <text name="I Want To:"> |
108 | Eu quero: | 108 | Eu quero: |
109 | </text> | 109 | </text> |
110 | <check_box label="Construir" name="chk0"/> | 110 | <check_box label="Construir" name="chk0"/> |
111 | <check_box label="Explorar" name="chk1"/> | 111 | <check_box label="Explorar" name="chk1"/> |
112 | <check_box label="Encontros" name="chk2"/> | 112 | <check_box label="Encontros" name="chk2"/> |
113 | <check_box label="Ser contratado" name="chk6"/> | 113 | <check_box label="Ser contratado" name="chk6"/> |
114 | <check_box label="Grupo" name="chk3"/> | 114 | <check_box label="Grupo" name="chk3"/> |
115 | <check_box label="Comprar" name="chk4"/> | 115 | <check_box label="Comprar" name="chk4"/> |
116 | <check_box label="Vender" name="chk5"/> | 116 | <check_box label="Vender" name="chk5"/> |
117 | <check_box label="Contratar" name="chk7"/> | 117 | <check_box label="Contratar" name="chk7"/> |
118 | <line_editor name="want_to_edit" width="385" /> | 118 | <line_editor name="want_to_edit" width="385" /> |
119 | <text name="Skills:"> | 119 | <text name="Skills:"> |
120 | Habilidades: | 120 | Habilidades: |
121 | </text> | 121 | </text> |
122 | <check_box label="Texturas" name="schk0"/> | 122 | <check_box label="Texturas" name="schk0"/> |
123 | <check_box label="Arquitetura" name="schk1"/> | 123 | <check_box label="Arquitetura" name="schk1"/> |
124 | <check_box label="Planejador de Eventos" name="schk2"/> | 124 | <check_box label="Planejador de Eventos" name="schk2"/> |
125 | <check_box label="Modelador" name="schk3"/> | 125 | <check_box label="Modelador" name="schk3"/> |
126 | <check_box label="Programador" name="schk4"/> | 126 | <check_box label="Programador" name="schk4"/> |
127 | <check_box label="Personagens customizados" name="schk5"/> | 127 | <check_box label="Personagens customizados" name="schk5"/> |
128 | <line_editor name="skills_edit" width="385" /> | 128 | <line_editor name="skills_edit" width="385" /> |
129 | <text name="Languages:"> | 129 | <text name="Languages:"> |
130 | Línguas: | 130 | Línguas: |
131 | </text> | 131 | </text> |
132 | <line_editor name="languages_edit" width="385" /> | 132 | <line_editor name="languages_edit" width="385" /> |
133 | </panel> | 133 | </panel> |
134 | <panel label="Seletor" name="Picks" width="483"> | 134 | <panel label="Seletor" name="Picks" width="483"> |
135 | <tab_container name="picks tab" width="477" /> | 135 | <tab_container name="picks tab" width="477" /> |
136 | <text name="Tell everyone about your favorite places in Second Life."> | 136 | <text name="Tell everyone about your favorite places in Second Life."> |
137 | Diga a todos os seus lugares favoritos em Second Life. | 137 | Diga a todos os seus lugares favoritos em Second Life. |
138 | </text> | 138 | </text> |
139 | <button label="Novo..." label_selected="Novo..." name="New..."/> | 139 | <button label="Novo..." label_selected="Novo..." name="New..."/> |
140 | <button label="Apagar..." label_selected="Apagar..." name="Delete..."/> | 140 | <button label="Apagar..." label_selected="Apagar..." name="Delete..."/> |
141 | <text name="loading_text"> | 141 | <text name="loading_text"> |
142 | Carregando... | 142 | Carregando... |
143 | </text> | 143 | </text> |
144 | </panel> | 144 | </panel> |
145 | <panel label="Classificados" name="Classified" width="483"> | 145 | <panel label="Classificados" name="Classified" width="483"> |
146 | <tab_container name="classified tab" width="477" /> | 146 | <tab_container name="classified tab" width="477" /> |
147 | <text name="Place an ad in Second Life's classified listings."> | 147 | <text name="Place an ad in Second Life's classified listings."> |
148 | Coloque um anúncio nas listas de classificados do Second Life. | 148 | Coloque um anúncio nas listas de classificados do Second Life. |
149 | </text> | 149 | </text> |
150 | <button label="Novo..." label_selected="Novo..." name="New..."/> | 150 | <button label="Novo..." label_selected="Novo..." name="New..."/> |
151 | <button label="Apagar..." label_selected="Apagar..." name="Delete..."/> | 151 | <button label="Apagar..." label_selected="Apagar..." name="Delete..."/> |
152 | <text name="loading_text"> | 152 | <text name="loading_text"> |
153 | Carregando... | 153 | Carregando... |
154 | </text> | 154 | </text> |
155 | </panel> | 155 | </panel> |
156 | <panel label="1st Life" name="1st Life" width="483"> | 156 | <panel label="Real Life" name="1st Life" width="483"> |
157 | <text_editor name="about" width="395" /> | 157 | <text_editor name="about" width="395" /> |
158 | <text name="Photo:"> | 158 | <text name="Photo:"> |
159 | Foto: | 159 | Foto: |
160 | </text> | 160 | </text> |
161 | <texture_picker label="" name="img" tool_tip="Clique para selecionar uma foto"/> | 161 | <texture_picker label="" name="img" tool_tip="Clique para selecionar uma foto"/> |
162 | <text name="Info:"> | 162 | <text name="Info:"> |
163 | Sobre: | 163 | Sobre: |
164 | </text> | 164 | </text> |
165 | <text name="(250 chars)" halign="left" left="7"> | 165 | <text name="(250 chars)" halign="left" left="7"> |
166 | (250 | 166 | (250 |
167 | caracteres) | 167 | caracteres) |
168 | </text> | 168 | </text> |
169 | </panel> | 169 | </panel> |
170 | <panel label="Minhas anotações" name="My Notes" width="483"> | 170 | <panel label="Minhas anotações" name="My Notes" width="483"> |
171 | <text_editor name="notes edit" width="455"/> | 171 | <text_editor name="notes edit" width="455"/> |
172 | <string name="Loading"> | 172 | <string name="Loading"> |
173 | Carregando... | 173 | Carregando... |
174 | </string> | 174 | </string> |
175 | <text name="label" width="462"> | 175 | <text name="label" width="462"> |
176 | Use este espaço para falar sobre essa pessoa.Coloque aqui o que desejar, projetos, | 176 | Use este espaço para falar sobre essa pessoa.Coloque aqui o que desejar, projetos, |
177 | lembretes e etc. Somente você poderá ver essa anotação. Nem esta nem | 177 | lembretes e etc. Somente você poderá ver essa anotação. Nem esta nem |
178 | outras pessoas podem ver as anotações. | 178 | outras pessoas podem ver as anotações. |
179 | </text> | 179 | </text> |
180 | </panel> | 180 | </panel> |
181 | </tab_container> | 181 | </tab_container> |
182 | <button label="OK" label_selected="OK" name="OK"/> | 182 | <button label="OK" label_selected="OK" name="OK"/> |
183 | <button label="Cancelar" label_selected="Cancelar" name="Cancel"/> | 183 | <button label="Cancelar" label_selected="Cancelar" name="Cancel"/> |
184 | <button label="Retirar" label_selected="Retirar" name="Kick"/> | 184 | <button label="Retirar" label_selected="Retirar" name="Kick"/> |
185 | <button label="Paralizar" label_selected="Paralizar" name="Freeze" tool_tip="Paraliza o movimento e conversa deste residente."/> | 185 | <button label="Paralizar" label_selected="Paralizar" name="Freeze" tool_tip="Paraliza o movimento e conversa deste residente."/> |
186 | <button label="Unfreeze" label_selected="Unfreeze" name="Unfreeze" tool_tip="Libera o residente"/> | 186 | <button label="Unfreeze" label_selected="Unfreeze" name="Unfreeze" tool_tip="Libera o residente"/> |
187 | <button label="CSR" label_selected="CSR" name="csr_btn" tool_tip="Abre a ferramenta de cliente para este residente"/> | 187 | <button label="CSR" label_selected="CSR" name="csr_btn" tool_tip="Abre a ferramenta de cliente para este residente"/> |
188 | <string name="ShowOnMapNonFriend"> | 188 | <string name="ShowOnMapNonFriend"> |
189 | Mostra a localização no mapa. | 189 | Mostra a localização no mapa. |
190 | Desativado porque ainda não é amigo desse residente. | 190 | Desativado porque ainda não é amigo desse residente. |
191 | </string> | 191 | </string> |
192 | <string name="ShowOnMapFriendOffline"> | 192 | <string name="ShowOnMapFriendOffline"> |
193 | Mostrar a localidade no mapa. | 193 | Mostrar a localidade no mapa. |
194 | Desabilitar porque eles não estão conectados. | 194 | Desabilitar porque eles não estão conectados. |
195 | </string> | 195 | </string> |
196 | <string name="ShowOnMapFriendOnline"> | 196 | <string name="ShowOnMapFriendOnline"> |
197 | Mostra localização no mapa. | 197 | Mostra localização no mapa. |
198 | </string> | 198 | </string> |
199 | <string name="TeleportGod"> | 199 | <string name="TeleportGod"> |
200 | Força teletransporte até a sua localidade. | 200 | Força teletransporte até a sua localidade. |
201 | </string> | 201 | </string> |
202 | <string name="TeleportPrelude"> | 202 | <string name="TeleportPrelude"> |
203 | Oferece teletransporte para a sua localidade. | 203 | Oferece teletransporte para a sua localidade. |
204 | Desativado até que você saia da Ilha da Orientação. | 204 | Desativado até que você saia da Ilha da Orientação. |
205 | </string> | 205 | </string> |
206 | <string name="TeleportNormal"> | 206 | <string name="TeleportNormal"> |
207 | Oferece teletransporte para a sua localidade. | 207 | Oferece teletransporte para a sua localidade. |
208 | </string> | 208 | </string> |
209 | <string name="Loading"> | 209 | <string name="Loading"> |
210 | Carregando... | 210 | Carregando... |
211 | </string> | 211 | </string> |
212 | </panel> | 212 | </panel> |