void CUITalkWnd::InitTalkDialog() { m_pActor = smart_cast<CActor *>(Level().CurrentEntity()); if (m_pActor && !m_pActor->IsTalking()) return; m_pOurInvOwner = smart_cast<CInventoryOwner*>(m_pActor); m_pOthersInvOwner = m_pActor->GetTalkPartner(); m_pOurDialogManager = smart_cast<CPhraseDialogManager*>(m_pOurInvOwner); m_pOthersDialogManager = smart_cast<CPhraseDialogManager*>(m_pOthersInvOwner); //имена собеседников UITalkDialogWnd->UICharacterInfoLeft.InitCharacter (m_pOurInvOwner->object_id()); UITalkDialogWnd->UICharacterInfoRight.InitCharacter (m_pOthersInvOwner->object_id()); UITalkDialogWnd->UIDialogFrame.UITitleText.SetText (m_pOthersInvOwner->Name()); UITalkDialogWnd->UIOurPhrasesFrame.UITitleText.SetText(m_pOurInvOwner->Name()); //очистить лог сообщений UITalkDialogWnd->ClearAll(); InitOthersStartDialog (); NeedUpdateQuestions (); Update (); UITalkDialogWnd->SetOsoznanieMode (m_pOthersInvOwner->NeedOsoznanieMode()); UITalkDialogWnd->Show (); UITradeWnd->Hide (); }
void CUITalkWnd::InitTalkDialog() { m_pActor = Actor(); if (m_pActor && !m_pActor->IsTalking()) return; m_pOurInvOwner = smart_cast<CInventoryOwner*>(m_pActor); m_pOthersInvOwner = m_pActor->GetTalkPartner(); m_pOurDialogManager = smart_cast<CPhraseDialogManager*>(m_pOurInvOwner); m_pOthersDialogManager = smart_cast<CPhraseDialogManager*>(m_pOthersInvOwner); //имена собеседников UITalkDialogWnd->UICharacterInfoLeft.InitCharacter (m_pOurInvOwner->object_id()); UITalkDialogWnd->UICharacterInfoRight.InitCharacter (m_pOthersInvOwner->object_id()); //. UITalkDialogWnd->UIDialogFrame.UITitleText.SetText (m_pOthersInvOwner->Name()); //. UITalkDialogWnd->UIOurPhrasesFrame.UITitleText.SetText (m_pOurInvOwner->Name()); //очистить лог сообщений UITalkDialogWnd->ClearAll(); InitOthersStartDialog (); NeedUpdateQuestions (); Update (); UITalkDialogWnd->mechanic_mode = m_pOthersInvOwner->SpecificCharacter().upgrade_mechanic(); UITalkDialogWnd->SetOsoznanieMode (m_pOthersInvOwner->NeedOsoznanieMode()); UITalkDialogWnd->Show (); UITalkDialogWnd->UpdateButtonsLayout(b_disable_break, m_pOthersInvOwner->IsTradeEnabled()); }
void CUITalkWnd::AskQuestion() { if(m_bNeedToUpdateQuestions) return;//quick dblclick:( shared_str phrase_id; //игрок выбрал тему разговора if(TopicMode()) { if ( (UITalkDialogWnd->m_ClickedQuestionID =="") || (!m_pOurDialogManager->HaveAvailableDialog(UITalkDialogWnd->m_ClickedQuestionID)) ) { string128 s; sprintf_s (s,"ID = [%s] of selected question is out of range of available dialogs ",UITalkDialogWnd->m_ClickedQuestionID); VERIFY2(FALSE, s); } m_pCurrentDialog = m_pOurDialogManager->GetDialogByID( UITalkDialogWnd->m_ClickedQuestionID); m_pOurDialogManager->InitDialog(m_pOthersDialogManager, m_pCurrentDialog); phrase_id = "0"; } else { phrase_id = UITalkDialogWnd->m_ClickedQuestionID; } SayPhrase (phrase_id); NeedUpdateQuestions (); }
void CUITalkWnd::AskQuestion() { if(m_bNeedToUpdateQuestions) return;//quick dblclick:( int phrase_id; //игрок выбрал тему разговора if(TopicMode()) { if ( (UITalkDialogWnd->m_iClickedQuestion < 0) || (UITalkDialogWnd->m_iClickedQuestion >= (int)m_pOurDialogManager->AvailableDialogs().size()) ) { string128 s; sprintf (s,"ID = [%i] of selected question is out of range of available dialogs ",UITalkDialogWnd->m_iClickedQuestion); VERIFY2(FALSE, s); } m_pCurrentDialog = m_pOurDialogManager->AvailableDialogs()[UITalkDialogWnd->m_iClickedQuestion]; m_pOurDialogManager->InitDialog(m_pOthersDialogManager, m_pCurrentDialog); phrase_id = 0; } else { phrase_id = (int)UITalkDialogWnd->m_iClickedQuestion; } SayPhrase(phrase_id); NeedUpdateQuestions(); }