aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sky/logic.cpp15
-rw-r--r--sky/logic.h4
-rw-r--r--sky/text.h4
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