Esempio n. 1
0
///////////////////////////////////////////////////////////////////////////////
// GetHelpText: Return a block of text that sums up the chat commands.
///////////////////////////////////////////////////////////////////////////////
GUIString ChatCommandParser::GetHelpText(unsigned short myClientId)
{
    bool isAdmin = false;
    bool isModerator = false;
    bool isCaptain = false;
    bool isGameCaptain = false;
    bool isLan = mRoomSpecFlags&LobbyRoomSpecFlag_Lan?true:false;
    if(mClientList.get()!=NULL)
    {
        LobbyClient *aClient = mClientList->GetClient(myClientId);
        if(aClient!=NULL)
        {
            isModerator = aClient->IsModerator();
            isCaptain = aClient->IsCaptain(mRoomSpecFlags&LobbyRoomSpecFlag_Game?true:false);
            isGameCaptain = aClient->IsCaptain(true);
            isAdmin = aClient->IsAdmin();
        }
    }



    GUIString aHelp = ChatCommandLogic_HelpHeader_String;
    aHelp.append("<n>");

    AddCommandToHelpText(LobbyChatCommand_Help,                ChatCommandLogic_HelpHelp_String, aHelp);
    AddCommandToHelpText(LobbyChatCommand_Whisper,             ChatCommandLogic_WhisperHelp_String, aHelp);
    AddCommandToHelpText(LobbyChatCommand_Reply,               ChatCommandLogic_ReplyHelp_String, aHelp);
    AddCommandToHelpText(LobbyChatCommand_Emote,               ChatCommandLogic_EmoteHelp_String, aHelp);
    AddCommandToHelpText(LobbyChatCommand_Ignore,              ChatCommandLogic_IgnoreHelp_String, aHelp);
    AddCommandToHelpText(LobbyChatCommand_Clear,               ChatCommandLogic_ClearHelp_String, aHelp);

    if(mRoomSpecFlags&LobbyRoomSpecFlag_Game)
        AddCommandToHelpText(LobbyChatCommand_ShowTeam,        ChatCommandLogic_ShowTeamHelp_String, aHelp);


    if(!isLan)
    {
        AddCommandToHelpText(LobbyChatCommand_Block,               ChatCommandLogic_BlockHelp_String, aHelp);
        AddCommandToHelpText(LobbyChatCommand_Away,                ChatCommandLogic_AwayHelp_String, aHelp);

        if(isGameCaptain)
        {
            AddCommandToHelpText(LobbyChatCommand_Invite,              ChatCommandLogic_InviteHelp_String, aHelp);
            AddCommandToHelpText(LobbyChatCommand_Uninvite,            ChatCommandLogic_UninviteHelp_String, aHelp);
        }

        if(isCaptain || isModerator)
        {
            AddCommandToHelpText(LobbyChatCommand_Mute,                ChatCommandLogic_MuteHelp_String, aHelp);
            AddCommandToHelpText(LobbyChatCommand_Unmute,              ChatCommandLogic_UnmuteHelp_String, aHelp);
            AddCommandToHelpText(LobbyChatCommand_Ban,                 ChatCommandLogic_BanHelp_String, aHelp);
            AddCommandToHelpText(LobbyChatCommand_Unban,               ChatCommandLogic_UnbanHelp_String, aHelp);
        }

        if(isModerator)
        {
            AddCommandToHelpText(LobbyChatCommand_BecomeModerator, ChatCommandLogic_ModeratorHelp_String, aHelp);
            AddCommandToHelpText(LobbyChatCommand_ServerMute,      ChatCommandLogic_ServerMuteHelp_String, aHelp);
            AddCommandToHelpText(LobbyChatCommand_ServerUnmute,    ChatCommandLogic_ServerUnmuteHelp_String, aHelp);
            AddCommandToHelpText(LobbyChatCommand_ServerBan,       ChatCommandLogic_ServerBanHelp_String, aHelp);
            AddCommandToHelpText(LobbyChatCommand_ServerUnban,     ChatCommandLogic_ServerUnbanHelp_String, aHelp);
            AddCommandToHelpText(LobbyChatCommand_Warn,			   ChatCommandLogic_WarnHelp_String, aHelp);
        }

        if(isAdmin)
            AddCommandToHelpText(LobbyChatCommand_Alert, ChatCommandLogic_AlertHelp_String, aHelp);
    }

    return aHelp;
}