mirror of
https://github.com/libretro/scummvm.git
synced 2025-01-22 01:57:16 +00:00
handle (x,y) negative coordinates in dynalum
svn-id: r10998
This commit is contained in:
parent
2fef2dcb84
commit
8eea63362e
@ -161,19 +161,25 @@ void Display::dynalumInit(Resource *resource, const char *roomName, uint16 roomN
|
||||
}
|
||||
|
||||
|
||||
void Display::dynalumUpdate(int x, int y) {
|
||||
void Display::dynalumUpdate(int16 x, int16 y) {
|
||||
|
||||
if (!_dynalum.valid)
|
||||
return;
|
||||
|
||||
if (x >= _bdWidth) {
|
||||
if (x < 0) {
|
||||
x = 0;
|
||||
}
|
||||
else if (x >= _bdWidth) {
|
||||
x = _bdWidth;
|
||||
}
|
||||
if (y >= ROOM_ZONE_HEIGHT - 1) {
|
||||
if (y < 0) {
|
||||
y = 0;
|
||||
}
|
||||
else if (y >= ROOM_ZONE_HEIGHT - 1) {
|
||||
y = ROOM_ZONE_HEIGHT - 1;
|
||||
}
|
||||
|
||||
unsigned offset = (y / 4) * 160 + (x / 4);
|
||||
uint offset = (y / 4) * 160 + (x / 4);
|
||||
if (offset >= sizeof(_dynalum.msk)) {
|
||||
debug(0, "Graphics::dynalumUpdate(%d, %d) - invalid offset: %08x", x, y, offset);
|
||||
return;
|
||||
@ -654,7 +660,7 @@ void Display::prepareUpdate() {
|
||||
}
|
||||
|
||||
|
||||
void Display::update(bool dynalum, int dynaX, int dynaY) {
|
||||
void Display::update(bool dynalum, int16 dynaX, int16 dynaY) {
|
||||
|
||||
if (dynalum) {
|
||||
dynalumUpdate(dynaX, dynaY);
|
||||
|
@ -67,7 +67,7 @@ public:
|
||||
~Display();
|
||||
|
||||
void dynalumInit(Resource *resource, const char *roomName, uint16 roomNum);
|
||||
void dynalumUpdate(int x, int y);
|
||||
void dynalumUpdate(int16 x, int16 y);
|
||||
|
||||
void palConvert(uint8 *outPal, const uint8 *inPal, int start, int end);
|
||||
void palSet(const uint8 *pal, int start, int end, bool updateScreen = false);
|
||||
@ -83,7 +83,7 @@ public:
|
||||
void screenMode(int comPanel, bool inCutaway);
|
||||
|
||||
void prepareUpdate();
|
||||
void update(bool dynalum, int dynaX, int dynaY);
|
||||
void update(bool dynalum, int16 dynaX, int16 dynaY);
|
||||
|
||||
void blit(RenderingBuffer dstBuf, uint16 dstX, uint16 dstY, const uint8 *srcBuf, uint16 srcW, uint16 srcH, uint16 srcPitch, bool xflip, bool masked);
|
||||
void fill(RenderingBuffer dstBuf, uint16 x, uint16 y, uint16 w, uint16 h, uint8 color);
|
||||
|
Loading…
x
Reference in New Issue
Block a user