diff options
author | Gregory Montoir | 2006-01-30 19:29:28 +0000 |
---|---|---|
committer | Gregory Montoir | 2006-01-30 19:29:28 +0000 |
commit | ea2c7b7d28d5abfc3dd8614de79641fa3b7f079e (patch) | |
tree | 5f552e2ff65b4cc064fd7f806f733f4ea43f926f /scumm | |
parent | 5465d3206cd09ff93413648789e87aeca1c4370f (diff) | |
download | scummvm-rg350-ea2c7b7d28d5abfc3dd8614de79641fa3b7f079e.tar.gz scummvm-rg350-ea2c7b7d28d5abfc3dd8614de79641fa3b7f079e.tar.bz2 scummvm-rg350-ea2c7b7d28d5abfc3dd8614de79641fa3b7f079e.zip |
Changed transformation origin computation (the previous code is matching pajama2 disasm, but looks wrong to me).
svn-id: r20316
Diffstat (limited to 'scumm')
-rw-r--r-- | scumm/wiz_he.cpp | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/scumm/wiz_he.cpp b/scumm/wiz_he.cpp index 92cae1ec1f..947acd68ae 100644 --- a/scumm/wiz_he.cpp +++ b/scumm/wiz_he.cpp @@ -1184,20 +1184,25 @@ void Wiz::drawWizComplexPolygon(int resNum, int state, int po_x, int po_y, int s int32 w, h; getWizImageDim(resNum, state, w, h); + // set the transformation origin to the center of the image + pts[0].x = pts[3].x = -(w / 2); pts[1].x = pts[2].x = w / 2 - 1; - pts[0].x = pts[0].y = pts[1].y = pts[3].x = -(w / 2); + pts[0].y = pts[1].y = -(h / 2); pts[2].y = pts[3].y = h / 2 - 1; - // transform points + // scale if (scale != 256) { for (int i = 0; i < 4; ++i) { pts[i].x = pts[i].x * scale / 256; pts[i].y = pts[i].y * scale / 256; } } + + // rotate if (angle) polygonRotatePoints(pts, 4, angle); + // translate for (int i = 0; i < 4; ++i) { pts[i].x += po_x; pts[i].y += po_y; |