summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBjørn Lindeijer <bjorn@lindeijer.nl>2005-05-13 22:39:50 +0000
committerBjørn Lindeijer <bjorn@lindeijer.nl>2005-05-13 22:39:50 +0000
commitb22a61704aec7d2431c1417d2b96301d3835cf7c (patch)
tree15c7dd17088978f2ee7312d86c3390e9238f161d
parent308e722a1b3fc34ade98e88b050a024cbd2c9f78 (diff)
downloadmana-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.
-rw-r--r--file.list2
-rw-r--r--src/gui/login.cpp6
-rw-r--r--src/gui/minimap.cpp56
-rw-r--r--src/gui/minimap.h4
-rw-r--r--src/main.cpp2
-rw-r--r--src/resources/image.cpp33
-rw-r--r--src/resources/image.h11
7 files changed, 14 insertions, 100 deletions
diff --git a/file.list b/file.list
index 687aa2ac..fdb479bf 100644
--- a/file.list
+++ b/file.list
@@ -6,7 +6,6 @@ MODULES = src/sound.cpp \
src/gui/chargedialog.cpp \
src/gui/char_server.cpp \
src/gui/char_select.cpp \
- src/gui/progressbar.cpp \
src/gui/chat.cpp \
src/gui/chatinput.cpp \
src/gui/checkbox.cpp \
@@ -25,6 +24,7 @@ MODULES = src/sound.cpp \
src/gui/ok_dialog.cpp \
src/gui/passwordfield.cpp \
src/gui/playerbox.cpp \
+ src/gui/progressbar.cpp \
src/gui/radiobutton.cpp \
src/gui/requesttrade.cpp \
src/gui/scrollarea.cpp \
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:
/**