MCPcopy Create free account
hub / github.com/OpenRCT2/OpenRCT2 / IsPixelPresentRLE

Function IsPixelPresentRLE

src/openrct2/interface/Viewport.cpp:1520–1539  ·  view source on GitHub ↗

* rct2: 0x0067933B, 0x00679788, 0x00679C4A, 0x0067A117 */

Source from the content-addressed store, hash-verified

1518 * rct2: 0x0067933B, 0x00679788, 0x00679C4A, 0x0067A117
1519 */
1520 static bool IsPixelPresentRLE(const uint8_t* imgData, const int32_t x, const int32_t y)
1521 {
1522 uint16_t lineOffset;
1523 std::memcpy(&lineOffset, &imgData[y * sizeof(uint16_t)], sizeof(uint16_t));
1524 const uint8_t* data8 = imgData + lineOffset;
1525
1526 bool lastDataLine = false;
1527 while (!lastDataLine)
1528 {
1529 int32_t numPixels = *data8++;
1530 uint8_t pixelRunStart = *data8++;
1531 lastDataLine = numPixels & 0x80;
1532 numPixels &= 0x7F;
1533 data8 += numPixels;
1534
1535 if (pixelRunStart <= x && x < pixelRunStart + numPixels)
1536 return true;
1537 }
1538 return false;
1539 }
1540
1541 /**
1542 * rct2: 0x00679074

Callers 1

Calls

no outgoing calls

Tested by

no test coverage detected