That last one had a few bugs, this one is a bit better!
On Sat, Oct 25, 2008 at 3:32 PM, Jon Neal <[EMAIL PROTECTED]> wrote:
> I got the minimap resized to 128x128 relatively smoothly, and I changed a
> couple of things in the way the panel buttons were repositioned to make it
> easier.
>
> The one thing I didn't get done was removing the anti-aliasing code, since
> I still have no clue where that is.
>
> I attached the diff for all to see, feel free to test it out! :)
>
diff -r a33a1bc041bb SConstruct
--- a/SConstruct Tue Oct 21 19:14:00 2008 +1300
+++ b/SConstruct Sat Oct 25 18:13:32 2008 -0400
@@ -197,8 +197,9 @@ def configure(env):
print "NOTE: Disabling PortAudio in this build (you will be unable to use Voice Chat ingame)."
print "--------"
else:
- configfile.add("HAVE_PORTAUDIO ", "Defined when Port Audio support is present and compiled")
- env.Append(LIBS=['portaudio'])
+ pass
+ #configfile.add("HAVE_PORTAUDIO ", "Defined when Port Audio support is present and compiled")
+ #env.Append(LIBS=['portaudio'])
if missing:
for t in missing:
diff -r a33a1bc041bb src/GameGUI.cpp
--- a/src/GameGUI.cpp Tue Oct 21 19:14:00 2008 +1300
+++ b/src/GameGUI.cpp Sat Oct 25 18:13:32 2008 -0400
@@ -62,7 +62,7 @@
#define TYPING_INPUT_BASE_INC 7
#define TYPING_INPUT_MAX_POS 46
-#define YPOS_BASE_DEFAULT 160
+#define YPOS_BASE_DEFAULT 190
#define YPOS_BASE_BUILDING YPOS_BASE_DEFAULT
#define YPOS_BASE_FLAG YPOS_BASE_DEFAULT
#define YPOS_BASE_STAT YPOS_BASE_DEFAULT
@@ -134,7 +134,15 @@ void InGameTextInput::onAction(Widget *s
GameGUI::GameGUI()
: keyboardManager(GameGUIShortcuts), game(this), toolManager(game, brush, defaultAssign, ghostManager),
- minimap(globalContainer->runNoX, (globalContainer->runNoX ? 0 : globalContainer->gfx->getW()-RIGHT_MENU_WIDTH), 0, RIGHT_MENU_WIDTH, 128, (RIGHT_MENU_WIDTH-100)/2, 14, Minimap::HideFOW),
+ minimap(globalContainer->runNoX,
+ RIGHT_MENU_WIDTH, // width of the menu
+ globalContainer->gfx->getW(), // width of the screen
+ 20, // x offset
+ 5, // y offset
+ 128, // width
+ 128, //height
+ Minimap::HideFOW), // minimap mode
+
ghostManager(game)
{
}
@@ -1956,7 +1964,8 @@ void GameGUI::handleMenuClick(int mx, in
moveParticles(oldViewportX, viewportX, oldViewportY, viewportY);
}
}
- else if (my<128+32)
+ // Check if one of the panel buttons has been clicked
+ else if (my<YPOS_BASE_DEFAULT)
{
int dec = (RIGHT_MENU_WIDTH-128)/2;
int dm=(mx-dec)/32;
@@ -2511,7 +2520,7 @@ void GameGUI::drawChoice(int pos, std::v
int x, y;
x=((i % numberPerLine)*width)+globalContainer->gfx->getW()-RIGHT_MENU_WIDTH;
- y=((i / numberPerLine)*46)+128+32;
+ y=((i / numberPerLine)*46)+YPOS_BASE_BUILDING;
globalContainer->gfx->setClipRect(x, y, 64, 46);
Sprite *buildingSprite;
@@ -2542,7 +2551,7 @@ void GameGUI::drawChoice(int pos, std::v
globalContainer->gfx->setClipRect(globalContainer->gfx->getW()-RIGHT_MENU_WIDTH, 128, RIGHT_MENU_WIDTH, globalContainer->gfx->getH()-128);
- // draw selection if needed
+ // draw building selection if needed
if (selectionMode == TOOL_SELECTION)
{
int sw;
@@ -2551,10 +2560,10 @@ void GameGUI::drawChoice(int pos, std::v
else
sw = globalContainer->gamegui->getW(23);
-
+
assert(sel>=0);
int x=((sel % numberPerLine)*width)+globalContainer->gfx->getW()-RIGHT_MENU_WIDTH;
- int y=((sel / numberPerLine)*46)+128+32;
+ int y=((sel / numberPerLine)*46)+YPOS_BASE_BUILDING;
int decX = (width - sw) / 2;
@@ -3509,8 +3518,8 @@ void GameGUI::drawPanel(void)
arrowPositions.push_back(HilightArrowPosition(globalContainer->gfx->getW()-RIGHT_MENU_WIDTH-36, globalContainer->gfx->getH()/2, 38));
}
- // draw the buttons in the panel
- drawPanelButtons(128);
+ // draw the panel selection buttons
+ drawPanelButtons(YPOS_BASE_DEFAULT-32);
if (selectionMode==BUILDING_SELECTION)
{
diff -r a33a1bc041bb src/MapEdit.cpp
--- a/src/MapEdit.cpp Tue Oct 21 19:14:00 2008 +1300
+++ b/src/MapEdit.cpp Sat Oct 25 18:13:32 2008 -0400
@@ -810,7 +810,15 @@ void Checkbox::handleClick(int relMouseX
MapEdit::MapEdit()
- : game(NULL, this), keyboardManager(MapEditShortcuts), minimap(globalContainer->runNoX, globalContainer->gfx->getW()-RIGHT_MENU_WIDTH, 0, RIGHT_MENU_WIDTH, 128, RIGHT_MENU_OFFSET+14,14, Minimap::ShowFOW)
+ : game(NULL, this), keyboardManager(MapEditShortcuts),
+ minimap(globalContainer->runNoX,
+ RIGHT_MENU_WIDTH, // menu width
+ globalContainer->gfx->getW(), // game width
+ 20, // x offset
+ 5, // y offset
+ 128, // width
+ 128, // height
+ Minimap::ShowFOW)
{
doQuit=false;
doFullQuit=false;
@@ -839,10 +847,10 @@ MapEdit::MapEdit()
int decX = RIGHT_MENU_OFFSET;
panelMode=AddBuildings;
- buildingView = new PanelIcon(*this, widgetRectangle(globalContainer->gfx->getW()-RIGHT_MENU_WIDTH+decX, 128, 32, 32), "any", "building view icon", "switch to building view", 0, AddBuildings);
- flagsView = new PanelIcon(*this, widgetRectangle(globalContainer->gfx->getW()-RIGHT_MENU_WIDTH+32+decX, 128, 32, 32), "any", "flag view icon", "switch to flag view", 28, AddFlagsAndZones);
- terrainView = new PanelIcon(*this, widgetRectangle(globalContainer->gfx->getW()-RIGHT_MENU_WIDTH+64+decX, 128, 32, 32), "any", "terrain view icon", "switch to terrain view", 31, Terrain);
- teamsView = new PanelIcon(*this, widgetRectangle(globalContainer->gfx->getW()-RIGHT_MENU_WIDTH+96+decX, 128, 32, 32), "any", "teams view icon", "switch to teams view", 33, Teams);
+ buildingView = new PanelIcon(*this, widgetRectangle(globalContainer->gfx->getW()-RIGHT_MENU_WIDTH+decX, 136, 32, 32), "any", "building view icon", "switch to building view", 0, AddBuildings);
+ flagsView = new PanelIcon(*this, widgetRectangle(globalContainer->gfx->getW()-RIGHT_MENU_WIDTH+32+decX, 136, 32, 32), "any", "flag view icon", "switch to flag view", 28, AddFlagsAndZones);
+ terrainView = new PanelIcon(*this, widgetRectangle(globalContainer->gfx->getW()-RIGHT_MENU_WIDTH+64+decX, 136, 32, 32), "any", "terrain view icon", "switch to terrain view", 31, Terrain);
+ teamsView = new PanelIcon(*this, widgetRectangle(globalContainer->gfx->getW()-RIGHT_MENU_WIDTH+96+decX, 136, 32, 32), "any", "teams view icon", "switch to teams view", 33, Teams);
menuIcon = new MenuIcon(*this, widgetRectangle(globalContainer->gfx->getW()-RIGHT_MENU_WIDTH-32+decX, 0, 32, 32), "any", "menu icon", "open menu screen");
addWidget(buildingView);
addWidget(flagsView);
@@ -1186,9 +1194,9 @@ int MapEdit::run(void)
minimap.setGame(game);
globalContainer->gfx->setClipRect();
- drawMenu();
drawMap(0, 0, globalContainer->gfx->getW()-RIGHT_MENU_WIDTH, globalContainer->gfx->getH(), true, true);
drawMiniMap();
+ drawMenu();
if(game.gameHeader.getNumberOfPlayers() == 0)
@@ -1398,7 +1406,7 @@ void MapEdit::drawMenu(void)
void MapEdit::drawMenu(void)
{
int menuStartW=globalContainer->gfx->getW()-RIGHT_MENU_WIDTH;
- int yposition=128;
+ int yposition=133;
if (globalContainer->settings.optionFlags & GlobalContainer::OPTION_LOW_SPEED_GFX)
globalContainer->gfx->drawFilledRect(menuStartW, yposition, RIGHT_MENU_WIDTH, globalContainer->gfx->getH()-128, 0, 0, 0);
diff -r a33a1bc041bb src/Minimap.cpp
--- a/src/Minimap.cpp Tue Oct 21 19:14:00 2008 +1300
+++ b/src/Minimap.cpp Sat Oct 25 18:13:32 2008 -0400
@@ -30,13 +30,13 @@
using namespace GAGCore;
-Minimap::Minimap(bool nox, int px, int py, int sizew, int sizeh, int leftborder, int topborder, MinimapMode minimap_mode)
- : noX(nox), px(px), py(py), sizew(sizew), sizeh(sizeh), leftborder(leftborder), topborder(topborder), minimap_mode(minimap_mode)
+Minimap::Minimap(bool nox, int menuWidth, int gameWidth, int xOffset, int yOffset, int width, int height, MinimapMode minimapMode)
+ : noX(nox), menuWidth(menuWidth), gameWidth(gameWidth), xOffset(xOffset), yOffset(yOffset), width(width), height(height), minimapMode(minimapMode)
{
if (nox) return;
update_row = -1;
- surface=new DrawableSurface(sizew - leftborder * 2, sizeh - topborder * 2);
+ surface=new DrawableSurface(width, height);
}
@@ -59,6 +59,7 @@ void Minimap::draw(int localteam, int vi
{
if (noX) return;
+ // Compute the position of the minimap if it needs to be scaled
computeMinimapPositioning();
Uint8 borderR;
@@ -80,14 +81,17 @@ void Minimap::draw(int localteam, int vi
borderB = 40;
borderA = 180;
}
- globalContainer->gfx->drawFilledRect(px, py, sizew, topborder, borderR, borderG, borderB, borderA);
- globalContainer->gfx->drawFilledRect(px, py + sizeh - topborder, sizew, topborder, borderR, borderG, borderB, borderA);
- globalContainer->gfx->drawFilledRect(px, py + topborder, leftborder, sizeh - topborder*2, borderR, borderG, borderB, borderA);
- globalContainer->gfx->drawFilledRect(px + sizew - leftborder, py + topborder, leftborder, sizeh-topborder*2, borderR, borderG, borderB, borderA);
+ // Draw a box, of color above, in the background to make sure terrain doesn't show in the menu
+ globalContainer->gfx->drawFilledRect(gameWidth-menuWidth, 0, menuWidth, height+yOffset, borderR, borderG, borderB, borderA);
- ///Draw a 1 pixel hilight arround the minimap
- globalContainer->gfx->drawRect(px + leftborder - 1, py + topborder - 1, sizew - leftborder * 2 + 2, sizeh - topborder * 2 + 2, 200, 200, 200);
-
+ ///Draw a 1 pixel border arround the minimap
+ globalContainer->gfx->drawRect(gameWidth-menuWidth+xOffset-1,
+ yOffset-1,
+ width+2,
+ height+2,
+ 200, 200, 200);
+
+ // calculate the offset for the viewport square
offset_x = game->teams[localteam]->startPosX - game->map.getW() / 2;
offset_y = game->teams[localteam]->startPosY - game->map.getH() / 2;
@@ -97,7 +101,7 @@ void Minimap::draw(int localteam, int vi
//Render the colorMap and blit the surface
if(update_row == -1)
{
- surface->drawFilledRect(0, 0, sizew - leftborder * 2, sizeh - topborder * 2, 0,0,0,Color::ALPHA_OPAQUE);
+ surface->drawFilledRect(0, 0, width, height, 0, 0, 0, Color::ALPHA_OPAQUE);
update_row = 0;
refreshPixelRows(0, mini_h, localteam);
}
@@ -112,7 +116,7 @@ void Minimap::draw(int localteam, int vi
line_row = update_row;
}
//Draw the surface
- globalContainer->gfx->drawSurface(px + leftborder, py + topborder, surface);
+ globalContainer->gfx->drawSurface(gameWidth-menuWidth+xOffset, yOffset, surface);
//Draw the viewport square, taking into account that it may
//wrap arround the sides of the minimap
@@ -143,7 +147,7 @@ void Minimap::draw(int localteam, int vi
globalContainer->gfx->drawPixel(endx, endy, 255, 255, 255);
///Draw the line that shows where the minimap is currently updating
- if(minimap_mode == HideFOW)
+ if(minimapMode == HideFOW)
globalContainer->gfx->drawHorzLine(mini_x, mini_y + line_row , mini_w, 100, 100, 100);
}
@@ -195,26 +199,30 @@ void Minimap::computeMinimapPositioning(
void Minimap::computeMinimapPositioning()
{
if (noX) return;
-
- int msizew = sizew - leftborder*2;
- int msizeh = sizeh - topborder*2;
+
if(game->map.getW() > game->map.getH())
{
- mini_w = msizew;
- mini_h = (game->map.getH() * msizeh) / game->map.getW();
+ // If the width is greater than the height, normal width but shrink the height
+ mini_w = width;
+ mini_h = (game->map.getH()*height) / game->map.getW();
+ // Once the minimap has been scaled, center it on the minimap
mini_offset_x = 0;
- mini_offset_y = (msizeh - mini_h)/2;
- mini_x = px + leftborder + mini_offset_x;
- mini_y = py + topborder + mini_offset_y;
+ mini_offset_y = (height-mini_h)/2;
+ // Now set the position of it on the whole screen
+ mini_x = gameWidth-menuWidth+xOffset+mini_offset_x;
+ mini_y = yOffset + mini_offset_y;
}
else
{
- mini_w = (game->map.getW() * msizew) / game->map.getH();
- mini_h = msizeh;
- mini_offset_x = (msizew - mini_w)/2;
+ // Height is greater than width
+ mini_w = (game->map.getW()*width) / game->map.getH();
+ mini_h = height;
+ // Center it..
+ mini_offset_x = (width - mini_w)/2;
mini_offset_y = 0;
- mini_x = px + leftborder + mini_offset_x;
- mini_y = py + topborder + mini_offset_y;
+ // And set the position for the screen!
+ mini_x = gameWidth-menuWidth+xOffset+mini_offset_x;
+ mini_y = yOffset + mini_offset_y;
}
}
@@ -272,7 +280,7 @@ void Minimap::computeColors(int row, int
const int dMy = ((game->map.getH())<<16) / (mini_h);
const int decSPX=offset_x<<16, decSPY=offset_y<<16;
- bool useMapDiscovered = minimap_mode == ShowFOW;
+ bool useMapDiscovered = minimapMode == ShowFOW;
const int dy = row;
for (int dx=0; dx<szX; dx++)
diff -r a33a1bc041bb src/Minimap.h
--- a/src/Minimap.h Tue Oct 21 19:14:00 2008 +1300
+++ b/src/Minimap.h Sat Oct 25 18:13:32 2008 -0400
@@ -42,7 +42,7 @@ public:
///Construct a minimap to be drawn at the given cordinates, and the given size, provided that
///some of that size is a border
- Minimap(bool nox, int px, int py, int sizew, int sizeh, int leftborder, int topborder, MinimapMode minimap_mode);
+ Minimap(bool nox, int menuWidth, int gameWidth, int xOffset, int yOffset, int width, int height, MinimapMode minimapMode);
~Minimap();
@@ -76,12 +76,12 @@ private:
void computeColors(int row, int localteam);
bool noX;
- int px;
- int py;
- int sizew;
- int sizeh;
- int leftborder;
- int topborder;
+ int menuWidth;
+ int gameWidth;
+ int xOffset;
+ int yOffset;
+ int width;
+ int height;
int update_row;
int offset_x;
int offset_y;
@@ -91,7 +91,7 @@ private:
int mini_h;
int mini_offset_x;
int mini_offset_y;
- MinimapMode minimap_mode;
+ MinimapMode minimapMode;
Game* game;
_______________________________________________
glob2-devel mailing list
[email protected]
http://lists.nongnu.org/mailman/listinfo/glob2-devel