diff options
author | Bjørn Lindeijer <bjorn@lindeijer.nl> | 2005-05-13 22:39:50 +0000 |
---|---|---|
committer | Bjørn Lindeijer <bjorn@lindeijer.nl> | 2005-05-13 22:39:50 +0000 |
commit | b22a61704aec7d2431c1417d2b96301d3835cf7c (patch) | |
tree | 15c7dd17088978f2ee7312d86c3390e9238f161d /src | |
parent | 308e722a1b3fc34ade98e88b050a024cbd2c9f78 (diff) | |
download | mana-b22a61704aec7d2431c1417d2b96301d3835cf7c.tar.gz mana-b22a61704aec7d2431c1417d2b96301d3835cf7c.tar.bz2 mana-b22a61704aec7d2431c1417d2b96301d3835cf7c.tar.xz mana-b22a61704aec7d2431c1417d2b96301d3835cf7c.zip |
Fixed minimap transparent background to work in both SDL and OpenGL by using
Guichan.
Diffstat (limited to 'src')
-rw-r--r-- | src/gui/login.cpp | 6 | ||||
-rw-r--r-- | src/gui/minimap.cpp | 56 | ||||
-rw-r--r-- | src/gui/minimap.h | 4 | ||||
-rw-r--r-- | src/main.cpp | 2 | ||||
-rw-r--r-- | src/resources/image.cpp | 33 | ||||
-rw-r--r-- | src/resources/image.h | 11 |
6 files changed, 13 insertions, 99 deletions
diff --git a/src/gui/login.cpp b/src/gui/login.cpp index bdd10397..6a8c1590 100644 --- a/src/gui/login.cpp +++ b/src/gui/login.cpp @@ -120,6 +120,7 @@ LoginDialog::~LoginDialog() delete keepCheck; delete okButton; delete cancelButton; + delete registerButton; } void LoginDialog::action(const std::string& eventId) @@ -157,7 +158,7 @@ void LoginDialog::action(const std::string& eventId) } else { config.setValue("username", ""); } - + // Check login if (user.length() == 0) { new OkDialog("Error", "Enter a username first"); @@ -171,7 +172,8 @@ void LoginDialog::action(const std::string& eventId) } -void login() { +void login() +{ LoginDialog *dialog = new LoginDialog(); while (state == LOGIN) diff --git a/src/gui/minimap.cpp b/src/gui/minimap.cpp index 899ec78c..719266d1 100644 --- a/src/gui/minimap.cpp +++ b/src/gui/minimap.cpp @@ -20,71 +20,31 @@ * * $Id$ */ - -#define MINIMAP_W 100 -#define MINIMAP_H 100 #include "minimap.h" #include "../being.h" Minimap::Minimap() { - setContentSize(MINIMAP_W, MINIMAP_H); + setContentSize(100, 100); setPosition(20, 20); - - mapBackground = SDL_AllocSurface(SDL_SWSURFACE, MINIMAP_W, MINIMAP_H, - (screen->format->BytesPerPixel*8), 0, 0, 0, 0); - Uint32 mapColor = SDL_MapRGB(screen->format, 255, 255, 255); - SDL_Rect sourceRect; - sourceRect.x = sourceRect.y = 0; - sourceRect.w = MINIMAP_W; - sourceRect.h = MINIMAP_H; - - if (mapBackground) - { - SDL_FillRect(mapBackground, &sourceRect, mapColor); - SDL_SetAlpha(mapBackground, SDL_SRCALPHA, 120); - } } void Minimap::draw(gcn::Graphics *graphics) { int x, y; - - getAbsolutePosition(x, y); - - if ((mapBackground->w != getWidth()) || (mapBackground->h != getHeight())) - { - SDL_FreeSurface(mapBackground); - mapBackground = SDL_AllocSurface(SDL_SWSURFACE, - getWidth(), getHeight(), - (screen->format->BytesPerPixel * 8), 0, 0, 0, 0); - Uint32 mapColor = SDL_MapRGB(screen->format, 52, 149, 210); - - if (mapBackground) - { - SDL_Rect sourceRect; - sourceRect.x = sourceRect.y = 0; - sourceRect.w = getWidth(); - sourceRect.h = getHeight(); - SDL_FillRect(mapBackground, &sourceRect, mapColor); - SDL_SetAlpha(mapBackground, SDL_SRCALPHA, 120); - } - } - if (mapBackground) - { - SDL_Rect screenRect; - screenRect.w = getWidth(); - screenRect.h = getHeight(); - screenRect.x = x; - screenRect.y = y; + getAbsolutePosition(x, y); - SDL_BlitSurface(mapBackground, NULL, screen, &screenRect); - } + // Transparent background + graphics->setColor(gcn::Color(52, 149, 210, 120)); + graphics->fillRectangle(gcn::Rectangle(0, 0, getWidth(), getHeight())); + // Black border graphics->setColor(gcn::Color(0, 0, 0)); graphics->drawRectangle(gcn::Rectangle(0, 0, getWidth(), getHeight())); + + // Player dot graphics->setColor(gcn::Color(209, 52, 61)); graphics->fillRectangle(gcn::Rectangle(player_node->x / 2, player_node->y / 2, 3, 3)); diff --git a/src/gui/minimap.h b/src/gui/minimap.h index 9e3792b9..ddf821f0 100644 --- a/src/gui/minimap.h +++ b/src/gui/minimap.h @@ -43,10 +43,6 @@ class Minimap : public Window { * Draws the minimap. */ void draw(gcn::Graphics *graphics); - - private: - /** The Alpha-Blended Surface for the background transluency effect. */ - SDL_Surface *mapBackground; }; #endif diff --git a/src/main.cpp b/src/main.cpp index 85a71811..364b2c7b 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -260,7 +260,7 @@ void init_engine() // Initialize item manager itemDb = new ItemManager(); - + // Create the graphics context graphics = new Graphics(); diff --git a/src/resources/image.cpp b/src/resources/image.cpp index 469f303e..98add234 100644 --- a/src/resources/image.cpp +++ b/src/resources/image.cpp @@ -197,24 +197,6 @@ Image* Image::load(void* buffer, unsigned int bufferSize, int flags) #endif } -Image *Image::create(int width, int height) -{ -#ifndef USE_OPENGL - SDL_Surface *surf = - SDL_AllocSurface(SDL_SWSURFACE, width, height, 32, 0, 0, 0, 0); - - if (surf) { - return new Image(surf); - } - else { - return NULL; - } -#else - return NULL; -#endif -} - - void Image::unload() { // Free the image surface. @@ -356,21 +338,6 @@ float Image::getAlpha() return alpha; } -void Image::fillWithColor( - unsigned char red, unsigned char green, unsigned blue) -{ -#ifndef USE_OPENGL - if (image) { - Uint32 boxColor = SDL_MapRGB(image->format, red, green, blue); - SDL_Rect sourceRect; - sourceRect.x = sourceRect.y = 0; - sourceRect.w = image->w; - sourceRect.h = image->h; - SDL_FillRect(image, &sourceRect, boxColor); - } -#endif -} - //============================================================================ // SubImage Class //============================================================================ diff --git a/src/resources/image.h b/src/resources/image.h index bee60aab..c38677d8 100644 --- a/src/resources/image.h +++ b/src/resources/image.h @@ -64,11 +64,6 @@ class Image : public Resource static Image *load(void* buffer, unsigned int bufferSize, int flags); /** - * Creates a new empty image with given height and width. - */ - static Image *create(int width, int height); - - /** * Frees the resources created by SDL. */ virtual void unload(); @@ -126,12 +121,6 @@ class Image : public Resource */ float getAlpha(); - /** - * Fills the image with given color. - */ - void fillWithColor( - unsigned char red, unsigned char green, unsigned blue); - protected: /** |