aboutsummaryrefslogtreecommitdiff
path: root/engines/pink/director.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'engines/pink/director.cpp')
-rw-r--r--engines/pink/director.cpp150
1 files changed, 75 insertions, 75 deletions
diff --git a/engines/pink/director.cpp b/engines/pink/director.cpp
index 10c3e1d86b..4ac5c9424f 100644
--- a/engines/pink/director.cpp
+++ b/engines/pink/director.cpp
@@ -30,112 +30,112 @@
namespace Pink {
Director::Director(OSystem *system)
- : _system(system), showBounds(1) {}
+ : _system(system), showBounds(1) {}
void Director::draw() {
- _system->fillScreen(0);
- for (uint i = 0; i < _sprites.size(); ++i) {
- drawSprite(_sprites[i]);
- }
- _system->updateScreen();
+ _system->fillScreen(0);
+ for (uint i = 0; i < _sprites.size(); ++i) {
+ drawSprite(_sprites[i]);
+ }
+ _system->updateScreen();
}
void Director::drawSprite(ActionCEL *sprite) {
- CelDecoder *decoder = sprite->getDecoder();
- const Graphics::Surface *surface;
- if (decoder->needsUpdate()) {
-
- surface = decoder->decodeNextFrame();
- }
- else surface = decoder->getCurrentFrame();
-
- int h = surface->h;
- if (surface->h + decoder->getY() > 480)
- h = 480 - decoder->getY();
- int w = surface->w;
- if (surface->w + decoder->getX() > 640)
- w = 640 - decoder->getX();
-
- if (!showBounds) {
- Graphics::Surface *screen = _system->lockScreen();
-
- for (int y = 0; y < h; ++y) {
- for (int x = 0; x < w; ++x) {
- uint16 spritePixelColourIndex = *(byte*)surface->getBasePtr(x, y);
- if (spritePixelColourIndex != decoder->getTransparentColourIndex()) {
- *(byte *) screen->getBasePtr(decoder->getX() + x, decoder->getY() + y) = spritePixelColourIndex;
- }
- }
- }
- _system->unlockScreen();
- }
- else _system->copyRectToScreen(surface->getPixels(), surface->pitch,
- decoder->getX(), decoder->getY(),
- w, h);
+ CelDecoder *decoder = sprite->getDecoder();
+ const Graphics::Surface *surface;
+ if (decoder->needsUpdate()) {
+
+ surface = decoder->decodeNextFrame();
+ }
+ else surface = decoder->getCurrentFrame();
+
+ int h = surface->h;
+ if (surface->h + decoder->getY() > 480)
+ h = 480 - decoder->getY();
+ int w = surface->w;
+ if (surface->w + decoder->getX() > 640)
+ w = 640 - decoder->getX();
+
+ if (!showBounds) {
+ Graphics::Surface *screen = _system->lockScreen();
+
+ for (int y = 0; y < h; ++y) {
+ for (int x = 0; x < w; ++x) {
+ uint16 spritePixelColourIndex = *(byte*)surface->getBasePtr(x, y);
+ if (spritePixelColourIndex != decoder->getTransparentColourIndex()) {
+ *(byte *) screen->getBasePtr(decoder->getX() + x, decoder->getY() + y) = spritePixelColourIndex;
+ }
+ }
+ }
+ _system->unlockScreen();
+ }
+ else _system->copyRectToScreen(surface->getPixels(), surface->pitch,
+ decoder->getX(), decoder->getY(),
+ w, h);
}
void Director::addSprite(ActionCEL *sprite) {
- _sprites.push_back(sprite);
- int i;
- for (i = _sprites.size() - 1; i > 0 ; --i) {
- if (sprite->getZ() < _sprites[i - 1]->getZ()){
- _sprites[i] = _sprites[i - 1];
- } else break;
- }
- _sprites[i] = sprite;
+ _sprites.push_back(sprite);
+ int i;
+ for (i = _sprites.size() - 1; i > 0 ; --i) {
+ if (sprite->getZ() < _sprites[i - 1]->getZ()){
+ _sprites[i] = _sprites[i - 1];
+ } else break;
+ }
+ _sprites[i] = sprite;
}
void Director::removeSprite(ActionCEL *sprite) {
- for (uint i = 0; i < _sprites.size(); ++i) {
- if (sprite == _sprites[i]) {
- _sprites.remove_at(i);
- break;
- }
- }
+ for (uint i = 0; i < _sprites.size(); ++i) {
+ if (sprite == _sprites[i]) {
+ _sprites.remove_at(i);
+ break;
+ }
+ }
}
void Director::setPallette(const byte *pallete) {
- _system->getPaletteManager()->setPalette(pallete, 0, 256);
+ _system->getPaletteManager()->setPalette(pallete, 0, 256);
}
void Director::update() {
- for (uint i = 0; i < _sounds.size(); ++i) {
- _sounds[i]->update();
- }
- for (uint i = 0; i < _sprites.size(); ++i) {
- _sprites[i]->update();
- }
+ for (uint i = 0; i < _sounds.size(); ++i) {
+ _sounds[i]->update();
+ }
+ for (uint i = 0; i < _sprites.size(); ++i) {
+ _sprites[i]->update();
+ }
}
void Director::addSound(ActionSound *sound) {
- _sounds.push_back(sound);
+ _sounds.push_back(sound);
}
void Director::removeSound(ActionSound *sound) {
- for (uint i = 0; i < _sounds.size(); ++i) {
- if (_sounds[i] == sound)
- _sounds.remove_at(i);
- }
+ for (uint i = 0; i < _sounds.size(); ++i) {
+ if (_sounds[i] == sound)
+ _sounds.remove_at(i);
+ }
}
void Director::clear() {
- _sprites.clear();
+ _sprites.clear();
}
Actor *Director::getActorByPoint(Common::Point point) {
- for (int i = _sprites.size() - 1; i >= 0; --i) {
- CelDecoder *decoder = _sprites[i]->getDecoder();
- const Graphics::Surface *frame = decoder->getCurrentFrame();
- Common::Rect &rect = decoder->getRectangle();
- if (rect.contains(point) &&
- *(byte*)frame->getBasePtr(point.x - rect.left, point.y - rect.top)
- != decoder->getTransparentColourIndex())
- return _sprites[i]->getActor();
- }
-
- return nullptr;
+ for (int i = _sprites.size() - 1; i >= 0; --i) {
+ CelDecoder *decoder = _sprites[i]->getDecoder();
+ const Graphics::Surface *frame = decoder->getCurrentFrame();
+ Common::Rect &rect = decoder->getRectangle();
+ if (rect.contains(point) &&
+ *(byte*)frame->getBasePtr(point.x - rect.left, point.y - rect.top)
+ != decoder->getTransparentColourIndex())
+ return _sprites[i]->getActor();
+ }
+
+ return nullptr;
}
}