aboutsummaryrefslogtreecommitdiff
path: root/engines/tinsel/multiobj.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'engines/tinsel/multiobj.cpp')
-rw-r--r--engines/tinsel/multiobj.cpp46
1 files changed, 39 insertions, 7 deletions
diff --git a/engines/tinsel/multiobj.cpp b/engines/tinsel/multiobj.cpp
index c60592069f..34f7d3ec00 100644
--- a/engines/tinsel/multiobj.cpp
+++ b/engines/tinsel/multiobj.cpp
@@ -27,6 +27,7 @@
#include "tinsel/multiobj.h"
#include "tinsel/handle.h"
#include "tinsel/object.h"
+#include "tinsel/tinsel.h"
namespace Tinsel {
@@ -204,14 +205,17 @@ void MultiAdjustXY(OBJECT *pMultiObj, int deltaX, int deltaY) {
if (deltaX == 0 && deltaY == 0)
return; // ignore no change
- if (pMultiObj->flags & DMA_FLIPH) {
- // image is flipped horizontally - flip the x direction
- deltaX = -deltaX;
- }
+ if (!TinselV2) {
+ // *** This may be wrong!!!
+ if (pMultiObj->flags & DMA_FLIPH) {
+ // image is flipped horizontally - flip the x direction
+ deltaX = -deltaX;
+ }
- if (pMultiObj->flags & DMA_FLIPV) {
- // image is flipped vertically - flip the y direction
- deltaY = -deltaY;
+ if (pMultiObj->flags & DMA_FLIPV) {
+ // image is flipped vertically - flip the y direction
+ deltaY = -deltaY;
+ }
}
// for all the objects that make up this multi-part
@@ -530,4 +534,32 @@ int MultiLowest(OBJECT *pMulti) {
return lowest - 1;
}
+/**
+ * Returns TRUE if the object currently has an image.
+ * @param pMulti Multi-part object
+ */
+
+bool MultiHasShape(POBJECT pMulti) {
+ return (pMulti->hShape != 0);
+}
+
+/**
+ * Bodge for text on movies. Makes sure it appears for it's lifetime.
+ * @param pMultiObj Multi-part object to be adjusted
+ */
+
+void MultiForceRedraw(POBJECT pMultiObj) {
+ // validate object pointer
+ assert(pMultiObj >= objectList && pMultiObj <= objectList + NUM_OBJECTS - 1);
+
+ // for all the objects that make up this multi-part
+ do {
+ // signal a change in the object
+ pMultiObj->flags |= DMA_CHANGED;
+
+ // next obj in list
+ pMultiObj = pMultiObj->pSlave;
+ } while (pMultiObj != NULL);
+}
+
} // end of namespace Tinsel