diff options
-rw-r--r-- | sky/logic.cpp | 15 | ||||
-rw-r--r-- | sky/logic.h | 4 | ||||
-rw-r--r-- | sky/text.h | 4 |
3 files changed, 14 insertions, 9 deletions
diff --git a/sky/logic.cpp b/sky/logic.cpp index ae170ad917..2ee58a5c08 100644 --- a/sky/logic.cpp +++ b/sky/logic.cpp @@ -1348,14 +1348,17 @@ bool SkyLogic::fnQuit(uint32 a, uint32 b, uint32 c) { return false; } -bool SkyLogic::fnSpeakMe(uint32 a, uint32 b, uint32 c) { - warning("Stub: fnSpeakMe"); - return false; +bool SkyLogic::fnSpeakMe(uint32 targetId, uint32 mesgNum, uint32 animNum) { + //stdSpeak(SkyState::fetchCompact(targetId), mesgNum, animNum, 0); + return false; //drop out of script } -bool SkyLogic::fnSpeakMeDir(uint32 a, uint32 b, uint32 c) { - warning("Stub: fnSpeakMeDir"); - return false; +bool SkyLogic::fnSpeakMeDir(uint32 targetId, uint32 mesgNum, uint32 animNum) { + //must be player so don't cause script to drop out + //this function sets the directional option whereby + //the anim chosen is linked to c_dir + animNum += _compact->extCompact->dir << 1; //2 sizes (large and small) + return fnSpeakMe(targetId, mesgNum, animNum); } bool SkyLogic::fnSpeakWait(uint32 id, uint32 message, uint32 animation) { diff --git a/sky/logic.h b/sky/logic.h index c0de38874a..7ef88610f5 100644 --- a/sky/logic.h +++ b/sky/logic.h @@ -121,8 +121,8 @@ public: bool fnClearStop(uint32 a, uint32 b, uint32 c); bool fnPointerText(uint32 a, uint32 b, uint32 c); bool fnQuit(uint32 a, uint32 b, uint32 c); - bool fnSpeakMe(uint32 a, uint32 b, uint32 c); - bool fnSpeakMeDir(uint32 a, uint32 b, uint32 c); + bool fnSpeakMe(uint32 targetId, uint32 mesgNum, uint32 animNum); + bool fnSpeakMeDir(uint32 targetId, uint32 mesgNum, uint32 animNum); bool fnSpeakWait(uint32 a, uint32 b, uint32 c); bool fnSpeakWaitDir(uint32 a, uint32 b, uint32 c); bool fnChooser(uint32 a, uint32 b, uint32 c); diff --git a/sky/text.h b/sky/text.h index bdd959b9b2..dff61f4d41 100644 --- a/sky/text.h +++ b/sky/text.h @@ -75,13 +75,15 @@ protected: uint32 _dtLines; //no of lines to do uint32 _dtLineSize; //size of one line in bytes uint8 *_dtData; //address of textdata - uint32 _dtLetters; //no of chars in message char *_dtText; //pointer to text uint32 _dtCharSpacing; //character seperation adjustment uint32 _dtWidth; //width of chars in last line (for editing (?)) uint32 _dtLastWidth; bool _dtCentre; //set for centre text uint32 _lowTextWidth; + +public: + uint32 _dtLetters; //no of chars in message }; #endif |