diff options
Diffstat (limited to 'engines/tinsel')
-rw-r--r-- | engines/tinsel/pcode.cpp | 6 | ||||
-rw-r--r-- | engines/tinsel/polygons.cpp | 10 |
2 files changed, 11 insertions, 5 deletions
diff --git a/engines/tinsel/pcode.cpp b/engines/tinsel/pcode.cpp index 8646ad3267..a2661237b7 100644 --- a/engines/tinsel/pcode.cpp +++ b/engines/tinsel/pcode.cpp @@ -145,8 +145,8 @@ const WorkaroundEntry workaroundList[] = { // Present Outside Inn {TINSEL_V1, false, 352600876, 0, fragment2_size, fragment2}, - // DW1-GRA: Talking to palace guards in Act 2 gives !!!HIGH STRING||| - this happens if you initiate dialog - // with one of the guards, but not the other. So this fix routes the talk parameters of the broken one + // DW1-GRA: Talking to palace guards in Act 2 gives !!!HIGH STRING||| - this happens if you initiate dialog with + // one of the guards, but not the other. So these fragments provide the correct talk parameters where needed {TINSEL_V1, false, 310506872, 463, fragment4_size, fragment4}, {TINSEL_V1, false, 310506872, 485, fragment5_size, fragment5}, {TINSEL_V1, false, 310506872, 513, fragment6_size, fragment6}, @@ -164,7 +164,7 @@ const WorkaroundEntry workaroundList[] = { {TINSEL_V0, false, 0, 0, 0, NULL} }; -//310505453, x + //----------------- LOCAL GLOBAL DATA -------------------- /** diff --git a/engines/tinsel/polygons.cpp b/engines/tinsel/polygons.cpp index bb2daea206..825abc9a6b 100644 --- a/engines/tinsel/polygons.cpp +++ b/engines/tinsel/polygons.cpp @@ -1996,8 +1996,14 @@ void GetPolyNode(HPOLYGON hp, int *pNodeX, int *pNodeY) { Poly pp(LockMem(pHandle), Polys[hp]->pIndex); - *pNodeX = FROM_LE_32(pp.nodex); - *pNodeY = FROM_LE_32(pp.nodey); + // WORKAROUND: Invalid node adjustment for DW2 Cartwheel scene refer polygon + if (TinselV2 && (pHandle == 0x74191900) && (hp == 8)) { + *pNodeX = 480; + *pNodeY = 408; + } else { + *pNodeX = FROM_LE_32(pp.nodex); + *pNodeY = FROM_LE_32(pp.nodey); + } if (TinselV2) { *pNodeX += volatileStuff[hp].xoff; |