diff --git a/src/r_picformats.c b/src/r_picformats.c index 27d4c010f8d70f086f4111d0a47723019ba8aeec..cb235590a4004b141b90fcc48fb46293adbe800e 100644 --- a/src/r_picformats.c +++ b/src/r_picformats.c @@ -532,14 +532,20 @@ void *Picture_GetPatchPixel( if ((topdelta + ofs) == y) { if (informat == PICFMT_PATCH32) - return (s32 + ofs); + return &s32[ofs]; else if (informat == PICFMT_PATCH16) - return (s16 + ofs); + return &s16[ofs]; else // PICFMT_PATCH - return (s8 + ofs); + return &s8[ofs]; } } - column = (column_t *)((UINT8 *)column + column->length + 4); + if (informat == PICFMT_PATCH32) + column = (column_t *)((UINT32 *)column + column->length); + else if (informat == PICFMT_PATCH16) + column = (column_t *)((UINT16 *)column + column->length); + else + column = (column_t *)((UINT8 *)column + column->length); + column = (column_t *)((UINT8 *)column + 4); } }