The Name System update!

Adds name list specific name settings, Removes boolean for having lists of speakers with legacy names in favor of having a more flexible setting for them
Have a look at the combo boxes on Adv. Chat->Chat UI to customize these new settings.

There is now a fourth option for name display: LegaCy Name (D is play Name)
This commit is contained in:
Inusaito Sayori
2014-03-24 17:52:13 -04:00
parent 5affacab70
commit ee610ceb3f
17 changed files with 160 additions and 54 deletions

View File

@@ -669,25 +669,31 @@ bool LLAvatarNameCache::get(const LLUUID& agent_id, LLAvatarName *av_name)
return false;
}
const S32& LLAvatarNameCache::phoenix_name_system()
{
static const LLCachedControl<S32> name_system("PhoenixNameSystem", 0);
return name_system;
}
// Return true when name has been set to Phoenix Name System Name, if not return false.
bool LLAvatarNameCache::getPNSName(const LLUUID& agent_id, std::string& name)
bool LLAvatarNameCache::getPNSName(const LLUUID& agent_id, std::string& name, const S32& name_system)
{
LLAvatarName avatar_name;
if (get(agent_id, &avatar_name))
getPNSName(avatar_name, name);
getPNSName(avatar_name, name, name_system);
else return false;
return true;
}
// get() with callback compatible version of getPNSName
void LLAvatarNameCache::getPNSName(const LLAvatarName& avatar_name, std::string& name)
void LLAvatarNameCache::getPNSName(const LLAvatarName& avatar_name, std::string& name, const S32& name_system)
{
static LLCachedControl<S32> phoenix_name_system("PhoenixNameSystem", 0);
switch (phoenix_name_system)
switch (name_system)
{
case 0 : name = avatar_name.getLegacyName(); break;
case 1 : name = avatar_name.getCompleteName(); break;
case 2 : name = avatar_name.mDisplayName; break;
case 3 : name = avatar_name.getLegacyName() + " (" + avatar_name.mDisplayName + ")"; break;
default : name = avatar_name.getLegacyName(); break;
}
}

View File

@@ -65,12 +65,13 @@ namespace LLAvatarNameCache
// If name is in cache, returns true and fills in provided LLAvatarName
// otherwise returns false
bool get(const LLUUID& agent_id, LLAvatarName *av_name);
const S32& phoenix_name_system();
// If get() succeeds, returns true and fills in name string
// via void function below, otherwise returns false
bool getPNSName(const LLUUID& agent_id, std::string& name);
bool getPNSName(const LLUUID& agent_id, std::string& name, const S32& name_system = phoenix_name_system());
// Perform a filling of name string according to Phoenix Name System,
// when we have an LLAvatarName already.
void getPNSName(const LLAvatarName& avatar_name, std::string& name);
void getPNSName(const LLAvatarName& avatar_name, std::string& name, const S32& name_system = phoenix_name_system());
// Callback types for get() below
typedef boost::signals2::signal<

View File

@@ -768,17 +768,6 @@
<key>Value</key>
<integer>1</integer>
</map>
<key>LiruLegacySpeakerNames</key>
<map>
<key>Comment</key>
<string>Whether all lists of speakers use legacy names, or your desired way of displaying names.</string>
<key>Persist</key>
<integer>1</integer>
<key>Type</key>
<string>Boolean</string>
<key>Value</key>
<integer>0</integer>
</map>
<key>LiruLocalTime</key>
<map>
<key>Comment</key>

View File

@@ -25,10 +25,43 @@
<key>Value</key>
<integer>0</integer>
</map>
<key>FriendNameSystem</key>
<map>
<key>Comment</key>
<string>For friends list names. 0 = Old Style, 1 = Display Names and Username, 2 = Displayname only, 3 = Old Style (Display Name)</string>
<key>Persist</key>
<integer>1</integer>
<key>Type</key>
<string>S32</string>
<key>Value</key>
<integer>1</integer>
</map>
<key>GroupMembersNameSystem</key>
<map>
<key>Comment</key>
<string>For lists of group members names. 0 = Old Style, 1 = Display Names and Username, 2 = Displayname only, 3 = Old Style (Display Name)</string>
<key>Persist</key>
<integer>1</integer>
<key>Type</key>
<string>S32</string>
<key>Value</key>
<integer>1</integer>
</map>
<key>LandManagementNameSystem</key>
<map>
<key>Comment</key>
<string>For names land management lists. 0 = Old Style, 1 = Display Names and Username, 2 = Displayname only, 3 = Old Style (Display Name)</string>
<key>Persist</key>
<integer>1</integer>
<key>Type</key>
<string>S32</string>
<key>Value</key>
<integer>1</integer>
</map>
<key>PhoenixNameSystem</key>
<map>
<key>Comment</key>
<string>Use Display Names instead of Legacy Names. 0 = Old Style, 1 = Display Names and Username, 2 = Displayname only</string>
<string>For general purpose names in the viewer. 0 = Old Style, 1 = Display Names and Username, 2 = Displayname only, 3 = Old Style (Display Name)</string>
<key>Persist</key>
<integer>2</integer>
<key>Type</key>
@@ -36,6 +69,28 @@
<key>Value</key>
<integer>1</integer>
</map>
<key>RadarNameSystem</key>
<map>
<key>Comment</key>
<string>For names in the radar. 0 = Old Style, 1 = Display Names and Username, 2 = Displayname only, 3 = Old Style (Display Name)</string>
<key>Persist</key>
<integer>1</integer>
<key>Type</key>
<string>S32</string>
<key>Value</key>
<integer>1</integer>
</map>
<key>SpeakerNameSystem</key>
<map>
<key>Comment</key>
<string>For names in lists of speakers. 0 = Old Style, 1 = Display Names and Username, 2 = Displayname only, 3 = Old Style (Display Name)</string>
<key>Persist</key>
<integer>1</integer>
<key>Type</key>
<string>S32</string>
<key>Value</key>
<integer>1</integer>
</map>
<key>AscentPowerfulWizard</key>
<map>
<key>Comment</key>

View File

@@ -298,7 +298,11 @@ void LLPrefsAscentChat::refreshValues()
mOnlyComm = gSavedSettings.getBOOL("CommunicateSpecificShortcut");
mItalicizeActions = gSavedSettings.getBOOL("LiruItalicizeActions");
mLegacyLogLaunch = gSavedSettings.getBOOL("LiruLegacyLogLaunch");
mLegacySpeakerNames = gSavedSettings.getBOOL("LiruLegacySpeakerNames");
mFriendNames = gSavedSettings.getBOOL("FriendNameSystem");
mGroupMembersNames = gSavedSettings.getBOOL("GroupMembersNameSystem");
mLandManagementNames = gSavedSettings.getBOOL("LandManagementNameSystem");
mRadarNames = gSavedSettings.getBOOL("RadarNameSystem");
mSpeakerNames = gSavedSettings.getBOOL("SpeakerNameSystem");
//Autoresponse ------------------------------------------------------------------------
mIMResponseAnyoneItemID = gSavedPerAccountSettings.getString("AutoresponseAnyoneItemID");
@@ -537,7 +541,11 @@ void LLPrefsAscentChat::cancel()
gSavedSettings.setBOOL("CommunicateSpecificShortcut", mOnlyComm);
gSavedSettings.setBOOL("LiruItalicizeActions", mItalicizeActions);
gSavedSettings.setBOOL("LiruLegacyLogLaunch", mLegacyLogLaunch);
gSavedSettings.setBOOL("LiruLegacySpeakerNames", mLegacySpeakerNames);
gSavedSettings.setBOOL("FriendNameSystem", mFriendNames);
gSavedSettings.setBOOL("GroupMembersNameSystem", mGroupMembersNames);
gSavedSettings.setBOOL("LandManagementNameSystem", mLandManagementNames);
gSavedSettings.setBOOL("RadarNameSystem", mRadarNames);
gSavedSettings.setBOOL("SpeakerNameSystem", mSpeakerNames);
//Autoresponse ------------------------------------------------------------------------
gSavedPerAccountSettings.setString("AutoresponseAnyoneItemID", mIMResponseAnyoneItemID);

View File

@@ -87,8 +87,12 @@ private:
bool mOneLineConfButt;
bool mOnlyComm;
bool mItalicizeActions;
bool mLegacySpeakerNames;
bool mLegacyLogLaunch;
S32 mFriendNames;
S32 mGroupMembersNames;
S32 mLandManagementNames;
S32 mRadarNames;
S32 mSpeakerNames;
//Autoresponse ------------------------------------------------------------------------
std::string mIMResponseAnyoneItemID;

View File

@@ -603,8 +603,9 @@ void LLFloaterAvatarList::updateAvatarList()
{
const LLUUID &avid = avatar_ids[i];
static const LLCachedControl<S32> namesystem("RadarNameSystem");
std::string name;
if (!LLAvatarNameCache::getPNSName(avid, name))
if (!LLAvatarNameCache::getPNSName(avid, name, namesystem))
continue; //prevent (Loading...)
LLAvatarListEntry* entry = getAvatarEntry(avid);

View File

@@ -407,6 +407,12 @@ BOOL LLPanelFriends::postBuild()
return TRUE;
}
static const S32& friend_name_system()
{
static const LLCachedControl<S32> name_system("FriendNameSystem", 0);
return name_system;
}
BOOL LLPanelFriends::addFriend(const LLUUID& agent_id)
{
LLAvatarTracker& at = LLAvatarTracker::instance();
@@ -417,7 +423,7 @@ BOOL LLPanelFriends::addFriend(const LLUUID& agent_id)
bool isOnline = relationInfo->isOnline();
std::string fullname;
BOOL have_name = LLAvatarNameCache::getPNSName(agent_id, fullname);
bool have_name = LLAvatarNameCache::getPNSName(agent_id, fullname, friend_name_system());
if (!have_name) gCacheName->getFullName(agent_id, fullname);
LLSD element;
@@ -505,7 +511,7 @@ BOOL LLPanelFriends::updateFriendItem(const LLUUID& agent_id, const LLRelationsh
bool isOnline = info->isOnline();
std::string fullname;
BOOL have_name = LLAvatarNameCache::getPNSName(agent_id, fullname);
bool have_name = LLAvatarNameCache::getPNSName(agent_id, fullname, friend_name_system());
if (!have_name) gCacheName->getFullName(agent_id, fullname);
// Name of the status icon to use
@@ -1083,7 +1089,7 @@ void LLPanelFriends::confirmModifyRights(rights_map_t& rights, EGrantRevoke comm
{
LLSD args;
std::string fullname;
if (LLAvatarNameCache::getPNSName(rights.begin()->first, fullname))
if (LLAvatarNameCache::getPNSName(rights.begin()->first, fullname, friend_name_system()))
args["NAME"] = fullname;
if (command == GRANT)

View File

@@ -49,11 +49,11 @@ void LLNameListCtrl::NameTypeNames::declareValues()
declare("SPECIAL", LLNameListCtrl::SPECIAL);
}
LLNameListCtrl::LLNameListCtrl(const std::string& name, const LLRect& rect, BOOL allow_multiple_selection, BOOL draw_border, bool draw_heading, S32 name_column_index, const std::string& tooltip)
LLNameListCtrl::LLNameListCtrl(const std::string& name, const LLRect& rect, BOOL allow_multiple_selection, BOOL draw_border, bool draw_heading, S32 name_column_index, const std::string& name_system, const std::string& tooltip)
: LLScrollListCtrl(name, rect, NULL, allow_multiple_selection, draw_border,draw_heading),
mNameColumnIndex(name_column_index),
mAllowCallingCardDrop(false),
mShortNames(false),
mNameSystem(name_system),
mAvatarNameCacheConnection()
{
setToolTip(tooltip);
@@ -189,10 +189,7 @@ LLScrollListItem* LLNameListCtrl::addNameItemRow(
}
else if (LLAvatarNameCache::get(id, &av_name))
{
if (mShortNames)
fullname = av_name.mDisplayName;
else
fullname = av_name.getCompleteName();
LLAvatarNameCache::getPNSName(av_name, fullname, mNameSystem);
}
else
{
@@ -266,10 +263,7 @@ void LLNameListCtrl::onAvatarNameCache(const LLUUID& agent_id,
//mAvatarNameCacheConnection.disconnect();
std::string name;
if (mShortNames)
name = av_name.mDisplayName;
else
name = av_name.getCompleteName();
LLAvatarNameCache::getPNSName(av_name, name, mNameSystem);
LLNameListItem* list_item = item.get();
if (list_item && list_item->getUUID() == agent_id)
@@ -326,7 +320,10 @@ LLView* LLNameListCtrl::fromXML(LLXMLNodePtr node, LLView *parent, LLUICtrlFacto
S32 name_column_index = 0;
node->getAttributeS32("name_column_index", name_column_index);
LLNameListCtrl* name_list = new LLNameListCtrl("name_list", rect, multi_select, draw_border, draw_heading, name_column_index);
std::string name_system("PhoenixNameSystem");
node->getAttributeString("name_system", name_system);
LLNameListCtrl* name_list = new LLNameListCtrl("name_list", rect, multi_select, draw_border, draw_heading, name_column_index, name_system);
if (node->hasAttribute("heading_height"))
{
S32 heading_height;

View File

@@ -102,7 +102,7 @@ public:
};
protected:
LLNameListCtrl(const std::string& name, const LLRect& rect, BOOL allow_multiple_selection, BOOL draw_border = TRUE, bool draw_heading = false, S32 name_column_index = 0, const std::string& tooltip = LLStringUtil::null);
LLNameListCtrl(const std::string& name, const LLRect& rect, BOOL allow_multiple_selection, BOOL draw_border = TRUE, bool draw_heading = false, S32 name_column_index = 0, const std::string& name_system = "PhoenixNameSystem", const std::string& tooltip = LLStringUtil::null);
virtual ~LLNameListCtrl()
{
if (mAvatarNameCacheConnection.connected())
@@ -148,7 +148,7 @@ private:
private:
S32 mNameColumnIndex;
BOOL mAllowCallingCardDrop;
bool mShortNames; // display name only, no SLID
const LLCachedControl<S32> mNameSystem;
boost::signals2::connection mAvatarNameCacheConnection;
};

View File

@@ -88,11 +88,11 @@ void LLSpeaker::lookupName()
void LLSpeaker::onNameCache(const LLAvatarName& full_name)
{
static const LLCachedControl<bool> legacy_name("LiruLegacySpeakerNames");
if (legacy_name)
static const LLCachedControl<S32> name_system("SpeakerNameSystem");
if (!name_system)
mDisplayName = gCacheName->cleanFullName(full_name.getLegacyName());
else
LLAvatarNameCache::getPNSName(full_name, mDisplayName);
LLAvatarNameCache::getPNSName(full_name, mDisplayName, name_system);
}
bool LLSpeaker::isInVoiceChannel()

View File

@@ -1382,7 +1382,7 @@ Select the thumbnail to choose a different texture.
<name_list allow_calling_card_drop="false" background_visible="true" bottom="-304"
column_padding="0" draw_border="true" draw_heading="false" enabled="true"
follows="top|bottom" heading_font="SansSerifSmall" heading_height="14"
height="80" left="20" mouse_opaque="true" multi_select="true"
height="80" left="20" mouse_opaque="true" multi_select="true" name_system="LandManagementNameSystem"
name="AccessList" tool_tip="([LISTED] listed, [MAX] max)" width="195" menu_num="0"/>
<button bottom_delta="-20" enabled="true" follows="bottom" font="SansSerifSmall"
halign="center" height="16" label="Add..." label_selected="Add..."
@@ -1402,7 +1402,7 @@ Select the thumbnail to choose a different texture.
column_padding="0" draw_border="true" draw_heading="false" enabled="true"
follows="top|bottom" heading_font="SansSerifSmall"
heading_height="14" height="80" left_delta="0" mouse_opaque="true"
multi_select="true" name="BannedList"
multi_select="true" name="BannedList" name_system="LandManagementNameSystem"
tool_tip="([LISTED] listed, [MAX] max)" width="195" menu_num="0"/>
<button bottom_delta="-20" enabled="true" follows="bottom" font="SansSerifSmall"
halign="center" height="16" label="Add..." label_selected="Add..."

View File

@@ -76,7 +76,7 @@ Hover your mouse over the options for more help.
<name_list allow_calling_card_drop="false" background_visible="true" bottom_delta="-88"
column_padding="0" draw_border="true" draw_heading="true" multi_select="true"
follows="left|top" heading_font="SansSerifSmall" heading_height="14"
height="80" left="7" mouse_opaque="true" menu_num="0"
height="80" left="7" mouse_opaque="true" menu_num="0" name_system="GroupMembersNameSystem"
name="visible_members" width="404">
<column label="Member Name" name="name" relwidth="0.45" />
<column label="Title" name="title" relwidth="0.30" />

View File

@@ -72,7 +72,7 @@ execute the Ability.
label="Search" left_delta="105" name="search_button" width="60" />
<name_list allow_calling_card_drop="false" background_visible="true" bottom_delta="-121"
column_padding="0" draw_border="true" draw_heading="true"
heading_font="SansSerifSmall" menu_num="0"
heading_font="SansSerifSmall" menu_num="0" name_system="GroupMembersNameSystem"
heading_height="14" height="120" left="4" multi_select="true"
name="member_list" width="396">
<column label="Member Name" name="name" width="136" />
@@ -222,7 +222,7 @@ things in this group. There&apos;s a broad variety of Abilities.
</text>
<name_list bottom_delta="-105" draw_border="true" draw_stripes="false" enabled="false"
height="105" left="0" multi_select="true" name="role_assigned_members"
width="145" menu_num="0"/>
width="145" menu_num="0" name_system="GroupMembersNameSystem"/>
<check_box bottom_delta="-20" follows="left|top" font="SansSerifSmall" height="16"
initial_value="false" label="Members are visible" left="0"
mouse_opaque="true" name="role_visible_in_list" radio_style="false"
@@ -263,6 +263,6 @@ things in this group. There&apos;s a broad variety of Abilities.
<name_list background_opaque="true" background_visible="true" bg_alpha_color="blue"
bg_opaque_color="grey" bottom_delta="0" draw_border="true"
height="125" left="150" multi_select="true" name="action_members"
width="254" menu_num="0"/>
width="254" menu_num="0" name_system="GroupMembersNameSystem"/>
</panel>
</panel>

View File

@@ -54,9 +54,44 @@
<check_box bottom_delta="-20" follows="top" control_name="OtherChatsTornOff" label="Open new IMs in separate floaters" name="chats_torn_off"/>
<check_box bottom_delta="-20" follows="top" control_name="PhoenixIMAnnounceStealFocus" label="Focus new instant messages" name="chat_steal_focus"/>
<check_box bottom_delta="-20" follows="left|top" control_name="ShowLocalChatFloaterBar" label="Show chat bar in torn-off local chat floater" name="show_local_chat_floater_bar"/>
<check_box bottom_delta="-20" control_name="ContactsUseHorizontalButtons" follows="top" height="16" label="Use horizontal buttons for contacts floater (Needs restart)" tool_tip="When enabled, the buttons on the Friends and Groups panels will be at the bottom, horizontally arranged, instead of vertically arranged on the right." name="horiz_butt"/>
<check_box bottom_delta="-20" follows="top" height="16" control_name="LiruLegacySpeakerNames" label="Use legacy names for speaker lists (Affects new speakers)" tool_tip="Allows for easier moderation of chats by showing only the account names" name="legacy_speaker_names"/>
<check_box bottom_delta="-20" control_name="UseConciseIMButtons" follows="top" height="16" label="Buttons on the same line as name for IMs (Affects new IMs)" name="im_concise_butt"/>
<check_box bottom_delta="-20" control_name="ContactsUseHorizontalButtons" follows="top" height="16" label="Use horizontal buttons for contacts floater (Needs restart)" tool_tip="When enabled, the buttons on the Friends and Groups panels will be at the bottom, horizontally arranged, instead of vertically arranged on the right." name="horiz_butt"/>
<text bottom_delta="-14" left="16" follows="top" name="namesystems_text_box">Format for names in lists of/for:</text>
<text bottom_delta="-18" left="20" follows="top" name="friends_namesystem_text_box">Friends:</text>
<combo_box bottom_delta="-5" left_delta="140" follows="top" height="18" control_name="FriendNameSystem" name="friends_namesystem_combobox" width="130">
<combo_item name="Old Names" value="0">Old Names</combo_item>
<combo_item name="Display Names (with Username)" value="1">Display Names (w/Username)</combo_item>
<combo_item name="Display Names only" value="2">Display Names only</combo_item>
<combo_item name="Old Names (with Display Names)" value="3">Old Names (w/Display)</combo_item>
</combo_box>
<text bottom_delta="-18" left="20" follows="top" name="group_members_namesystem_text_box">Group Members:</text>
<combo_box bottom_delta="-5" left_delta="140" follows="top" height="18" control_name="GroupMembersNameSystem" name="group_members_namesystem_combobox" width="130">
<combo_item name="Old Names" value="0">Old Names</combo_item>
<combo_item name="Display Names (with Username)" value="1">Display Names (w/Username)</combo_item>
<combo_item name="Display Names only" value="2">Display Names only</combo_item>
<combo_item name="Old Names (with Display Names)" value="3">Old Names (w/Display)</combo_item>
</combo_box>
<text bottom_delta="-18" left="20" follows="top" name="land_management_namesystem_text_box">Land Management:</text>
<combo_box bottom_delta="-5" left_delta="140" follows="top" height="18" control_name="LandManagementNameSystem" name="land_management_namesystem_combobox" width="130">
<combo_item name="Old Names" value="0">Old Names</combo_item>
<combo_item name="Display Names (with Username)" value="1">Display Names (w/Username)</combo_item>
<combo_item name="Display Names only" value="2">Display Names only</combo_item>
<combo_item name="Old Names (with Display Names)" value="3">Old Names (w/Display)</combo_item>
</combo_box>
<text bottom_delta="-18" left="20" follows="top" name="radar_namesystem_text_box">Radar:</text>
<combo_box bottom_delta="-5" left_delta="140" follows="top" height="18" control_name="RadarNameSystem" name="radar_namesystem_combobox" width="130">
<combo_item name="Old Names" value="0">Old Names</combo_item>
<combo_item name="Display Names (with Username)" value="1">Display Names (w/Username)</combo_item>
<combo_item name="Display Names only" value="2">Display Names only</combo_item>
<combo_item name="Old Names (with Display Names)" value="3">Old Names (w/Display)</combo_item>
</combo_box>
<text bottom_delta="-18" left="20" follows="top" name="speaker_namesystem_text_box">Speakers:</text>
<combo_box bottom_delta="-5" left_delta="140" follows="top" height="18" control_name="SpeakerNameSystem" name="speaker_namesystem_combobox" width="130">
<combo_item name="Old Names" value="0">Old Names</combo_item>
<combo_item name="Display Names (with Username)" value="1">Display Names (w/Username)</combo_item>
<combo_item name="Display Names only" value="2">Display Names only</combo_item>
<combo_item name="Old Names (with Display Names)" value="3">Old Names (w/Display)</combo_item>
</combo_box>
<check_box bottom_delta="-24" left="10" control_name="UseConciseIMButtons" follows="top" height="16" label="Buttons on the same line as name for IMs (Affects new IMs)" name="im_concise_butt"/>
<check_box bottom_delta="-20" control_name="UseConciseGroupChatButtons" follows="top" height="16" label="Buttons on group chat name line (Affects new group chats)" name="group_concise_butt"/>
<check_box bottom_delta="-20" control_name="UseConciseConferenceButtons" follows="top" height="16" label="Buttons on conference title line (Affects new conferences)" name="conf_concise_butt"/>
<check_box bottom_delta="-20" follows="top" height="16" control_name="LiruLegacyLogLaunch" label="Log button opens external text editor (Windows only)" name="legacy_log_launch"/>

View File

@@ -11,9 +11,10 @@
<combo_item name="Always" value="Always">Always</combo_item>
</combo_box>
<combo_box bottom_delta="0" follows="top" height="18" left="220" name="namesystem_combobox" width="166">
<combo_item name="Old Names" value="Old Names">Old Names</combo_item>
<combo_item name="Display Names (with Username)" value="Display Names (with Username)">Display Names(w/Username)</combo_item>
<combo_item name="Display Names only" value="Display Names only">Display Names only</combo_item>
<combo_item name="Old Names" value="0">Old Names</combo_item>
<combo_item name="Display Names (with Username)" value="1">Display Names (w/Username)</combo_item>
<combo_item name="Display Names only" value="2">Display Names only</combo_item>
<combo_item name="Old Names (with Display Names)" value="3">Old Names (w/Display)</combo_item>
</combo_box>
<check_box bottom_delta="0" follows="top" height="16" label="Show Resident" left_delta="174" name="show_resident_checkbox"/>
<check_box bottom_delta="-25" follows="top" height="16" initial_value="true" label="Small Avatar Names" left="101" name="small_avatar_names_checkbox"/>

View File

@@ -258,6 +258,7 @@
multi_select="true"
name="estate_manager_name_list"
menu_num="0"
name_system="LandManagementNameSystem"
bottom_delta="0"
width="220" />
@@ -278,6 +279,7 @@
multi_select="true"
name="allowed_avatar_name_list"
menu_num="0"
name_system="LandManagementNameSystem"
bottom_delta="0"
width="220" />
@@ -400,6 +402,7 @@
multi_select="true"
name="banned_avatar_name_list"
menu_num="0"
name_system="LandManagementNameSystem"
bottom_delta="0"
width="220" />