From b22a61704aec7d2431c1417d2b96301d3835cf7c Mon Sep 17 00:00:00 2001 From: Bjørn Lindeijer Date: Fri, 13 May 2005 22:39:50 +0000 Subject: Fixed minimap transparent background to work in both SDL and OpenGL by using Guichan. --- src/gui/login.cpp | 6 ++++-- src/gui/minimap.cpp | 56 ++++++++--------------------------------------------- src/gui/minimap.h | 4 ---- 3 files changed, 12 insertions(+), 54 deletions(-) (limited to 'src/gui') 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 -- cgit v1.2.3-70-g09d2