9#ifndef gfCConversationGuihdr
10#define gfCConversationGuihdr
61 fsCMonologue() : mCurrentWord(0), mTextComponent(nullptr) {}
63 fsBool isFinished()
const {
return mCurrentWord >= mWords.size(); }
65 void updateText(
fsS32 pDeltaMs);
68 void fixedLineLayoutBuild(
fsS32 pTextBoxWidth);
69 void textSet(
fsS32 pWordCount);
72 std::vector<std::string> mWords;
73 std::vector<fsS32> mLineWordCounts;
74 fsITextSpriteComponent* mTextComponent;
77 struct fsSConversationKeyInfo
80 fsS32 mCharacterID = 0;
83 fsBool mPortraitFacingSet =
false;
84 fsBool mPortraitFacingRight =
false;
87 struct fsSConversationCharacterSlot
90 fsBool mRightHandSide =
false;
96 struct fsCMonologueKey {
97 fsCMonologueKey(
const fsStr& pKey) : mKey(pKey) {}
99 fsSConversationKeyInfo infoGet(
const fsStr& pConversationName)
const;
103 fsBool portraitFirstExistingFind(
104 fsStr& pPortraitPath,
105 const std::vector<fsStr>& pBasePaths,
106 fsBool pUsePlayerSex)
const;
108 static const fsStr mPlayer1NameKey;
109 fsStr& playerNameReplace(fsStr& pDialogue);
111 void conversationContinue();
112 void conversationAdvance();
114 const fsCMonologueKey*
const currentConversationMonologue()
const;
116 fsS32 textBoxScale(
const fsStr& pDialogue);
117 void mugShotUpdate(
const fsCMonologueKey*
const pKey);
118 void mugDirectionAlternate(
const fsCMonologueKey*
const pKey);
119 fsBool portraitRightHandSideGet(
const fsSConversationKeyInfo& pKeyInfo);
120 fsBool portraitPathFind(fsStr& pPortraitPath,
const fsSConversationKeyInfo& pKeyInfo,
fsBool& pRightHandSide);
121 fsCEntity* mugShotEntityGet(
fsBool pRightHandSide,
fsBool& pUsesSharedMugShot)
const;
122 void mugShotsHide()
const;
123 void sharedMugShotPositionSet(fsCEntity* pMugShotEntity,
fsBool pRightHandSide);
124 fsBool characterSlotRightHandSideGet(
const fsStr& pCharacterName,
fsBool pPreferredRightHandSide);
125 fsBool portraitResourceFind(fsStr& pPortraitPath,
const fsStr& pBasePath)
const;
126 fsBool portraitResourceFind(fsStr& pPortraitPath,
const fsStr& pBasePath,
fsBool pUsePlayerSex)
const;
131 std::vector<fsCMonologueKey> mConversationKeys;
132 std::vector<fsSConversationCharacterSlot> mConversationCharacterSlots;
134 fsCMonologue mCurrentMonologue;
136 fsStr mConversationName;
138 fsStr mLastUsedCharacterName;
Definition fsCEntity.h:39
Definition fsCUniqueId.h:21
Definition fsCVariableTable.h:27
fsIComponent(fsCEntity *pParent)
Definition fsIComponent.cpp:86
fsIMessageListenerGuiComponent(fsCEntity *pParent, fsS32 pPriority)
Definition fsIMessageListenerGuiComponent.cpp:4
Definition fsITextSpriteComponent.h:22
fsBool messageProcessDo(const fsCUniqueId &pMessageType, const fsIMessageDispatcher::sMessageParameters &pParam) override
Definition gfCConversationGui.cpp:404
static fsIComponent * create(fsCEntity *pParent)
Definition gfCConversationGui.cpp:928
void initialiseFromVariableTableDo(const fsCVariableTable &pVars) override
Definition gfCConversationGui.cpp:907
static fsINode *const conversationCreate(const fsStr &pConversationKey)
Definition gfCConversationGui.cpp:423
friend class fsCComponentFactory
Definition gfCConversationGui.h:22
void updateDo(fsS32 pDeltaMs) override
Definition gfCConversationGui.cpp:386
fsBool onButtonClicked(fsCButtonComponent *pButtonComp) override
Definition gfCConversationGui.cpp:444
void listenersRegisterDo() override
Definition gfCConversationGui.cpp:392
static fsBool conversationExists(const fsStr &pConversationName)
Definition gfCConversationGui.cpp:457
void listenersDeregisterDo() override
Definition gfCConversationGui.cpp:398
static const fsCUniqueId mTypeId
Definition gfCConversationGui.h:26
gfCConversationGui(fsCEntity *pParent)
Definition gfCConversationGui.cpp:933
static void playerIsMaleProviderSet(fsBool(*pProvider)())
Definition gfCConversationGui.cpp:151
virtual ~gfCConversationGui()
Definition gfCConversationGui.cpp:952
static const fsCUniqueId mConversationCompleteMsg
Definition gfCConversationGui.h:28
bool fsBool
Definition fsBaseTypes.h:26
int fsS32
Definition fsBaseTypes.h:20
float fsF32
Definition fsBaseTypes.h:28
Definition fsIMessageDispatcher.h:32