diff options
Diffstat (limited to 'engines/sci/engine/kpathing.cpp')
-rw-r--r-- | engines/sci/engine/kpathing.cpp | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/engines/sci/engine/kpathing.cpp b/engines/sci/engine/kpathing.cpp index 2895f4afb6..b19d6d7b8c 100644 --- a/engines/sci/engine/kpathing.cpp +++ b/engines/sci/engine/kpathing.cpp @@ -1285,6 +1285,12 @@ static Polygon *convert_polygon(EngineState *s, reg_t polygon) { reg_t points = GET_SEL32(segMan, polygon, points); int size = GET_SEL32(segMan, polygon, size).toUint16(); +#ifdef ENABLE_SCI32 + // SCI32 stores the actual points in the data property of points (in a new array) + if (segMan->isHeapObject(points)) + points = GET_SEL32(segMan, points, data); +#endif + if (size == 0) { // If the polygon has no vertices, we skip it return NULL; |