diff options
Diffstat (limited to 'src/graphic')
-rw-r--r-- | src/graphic/graphic.cpp | 49 | ||||
-rw-r--r-- | src/graphic/graphic.h | 10 |
2 files changed, 29 insertions, 30 deletions
diff --git a/src/graphic/graphic.cpp b/src/graphic/graphic.cpp index 0d8a926b..1602e13b 100644 --- a/src/graphic/graphic.cpp +++ b/src/graphic/graphic.cpp @@ -162,6 +162,16 @@ Graphics::~Graphics() _endDraw(); } +int Graphics::getWidth() +{ + return screen->w; +} + +int Graphics::getHeight() +{ + return screen->h; +} + void Graphics::drawImageRect( int x, int y, int w, int h, Image *topLeft, Image *topRight, @@ -367,8 +377,8 @@ void Engine::draw() map_x = (player_node->x - 13) * 32 + get_x_offset(player_node); map_y = (player_node->y - 9) * 32 + get_y_offset(player_node); - camera_x = map_x >> 5; - camera_y = map_y >> 5; + camera_x = map_x / 32; + camera_y = map_y / 32; int offset_x = map_x & 31; int offset_y = map_y & 31; @@ -378,20 +388,11 @@ void Engine::draw() frame++; // Draw tiles below nodes - for (int j = 0; j < 20; j++) { - for (int i = 0; i < 26; i++) { - Image *tile0 = tiledMap->getTile(i + camera_x, j + camera_y, 0); - Image *tile1 = tiledMap->getTile(i + camera_x, j + camera_y, 1); - - if (tile0) { - tile0->draw(screen, i * 32 - offset_x, j * 32 - offset_y); - } - if (tile1) { - tile1->draw(screen, i * 32 - offset_x, j * 32 - offset_y); - } - } + if (tiledMap) { + tiledMap->draw(guiGraphics, map_x, map_y, 0); + tiledMap->draw(guiGraphics, map_x, map_y, 1); } - + // Draw items std::list<FloorItem*>::iterator floorItemIterator = floorItems.begin(); while (floorItemIterator != floorItems.end()) @@ -531,21 +532,9 @@ void Engine::draw() // last drawed for fringe layer, draw the missing lines } - // Draw tiles above nodes - for (int j = 0; j < 20; j++) { - for (int i = 0; i < 26; i++) { - Image *tile = tiledMap->getTile(i + camera_x, j + camera_y, 2); - - if (tile) { - tile->draw(screen, i * 32 - offset_x, j * 32 - offset_y); - -#ifdef DEBUG - guiGraphics->setColor(gcn::Color(0, 0, 0)); - guiGraphics->drawRectangle(gcn::Rectangle( - i * 32 - offset_x, j * 32 - offset_y, 32, 32)); -#endif - } - } + // Draw tiles below nodes + if (tiledMap) { + tiledMap->draw(guiGraphics, map_x, map_y, 2); } // Find a path from the player to the mouse, and draw it. This is for debug diff --git a/src/graphic/graphic.h b/src/graphic/graphic.h index 413c9d33..f8f7bb12 100644 --- a/src/graphic/graphic.h +++ b/src/graphic/graphic.h @@ -151,6 +151,16 @@ class Graphics : public gcn::SDLGraphics { */ void updateScreen(); + /** + * Returns the width of the screen. + */ + int getWidth(); + + /** + * Returns the height of the screen. + */ + int getHeight(); + private: Image *mouseCursor; }; |