Thread: [Balder-cvs] SF.net SVN: balder: [30] src/menu
Status: Beta
Brought to you by:
holomorph
From: <col...@us...> - 2006-11-23 08:31:48
|
Revision: 30 http://svn.sourceforge.net/balder/?rev=30&view=rev Author: colalord Date: 2006-11-23 00:31:47 -0800 (Thu, 23 Nov 2006) Log Message: ----------- 23 Nov-2006 - Reuben added support for animations via animationwidget.cpp and animationwidget.h. - Reuben added support for animated menu backgrounds. - Reuben added sample animated menu background. I will add a real menu background soon. - Reuben made submenu pages transparent. Modified Paths: -------------- Balder2D.cbp history.txt include/menu/menu.h src/menu/menu.cpp src/menu/submenu.cpp Added Paths: ----------- bin/menu/menubackground.png include/menu/animationwidget.h src/menu/animationwidget.cpp Modified: Balder2D.cbp =================================================================== --- Balder2D.cbp 2006-11-19 19:53:58 UTC (rev 29) +++ Balder2D.cbp 2006-11-23 08:31:47 UTC (rev 30) @@ -106,6 +106,12 @@ <Option link="0"/> <Option target="default"/> </Unit> + <Unit filename="include\menu\animationwidget.h"> + <Option compilerVar=""/> + <Option compile="0"/> + <Option link="0"/> + <Option target="default"/> + </Unit> <Unit filename="include\menu\gamesetup.h"> <Option compilerVar=""/> <Option compile="0"/> @@ -286,6 +292,10 @@ <Option compilerVar="CPP"/> <Option target="default"/> </Unit> + <Unit filename="src\menu\animationwidget.cpp"> + <Option compilerVar="CPP"/> + <Option target="default"/> + </Unit> <Unit filename="src\menu\gamesetup.cpp"> <Option compilerVar="CPP"/> <Option target="default"/> Added: bin/menu/menubackground.png =================================================================== (Binary files differ) Property changes on: bin/menu/menubackground.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Modified: history.txt =================================================================== --- history.txt 2006-11-19 19:53:58 UTC (rev 29) +++ history.txt 2006-11-23 08:31:47 UTC (rev 30) @@ -3,6 +3,14 @@ History entries are in reverse chronological order (newest entries first). +23 Nov-2006 + - Reuben added support for animations via animationwidget.cpp and + animationwidget.h. + - Reuben added support for animated menu backgrounds. + - Reuben added sample animated menu background. I will add a real menu + background soon. + - Reuben made submenu pages transparent. + 15 Nov-2006 - Reuben made a Code::Blocks project file for Windows builds. Added file: Balder2D.cbp Added: include/menu/animationwidget.h =================================================================== --- include/menu/animationwidget.h (rev 0) +++ include/menu/animationwidget.h 2006-11-23 08:31:47 UTC (rev 30) @@ -0,0 +1,86 @@ +/*************************************************************************** + * Copyright (C) 2006 by Bjorn Hansen * + * hol...@us... * + * * + * This program is free software; you can redistribute it and/or modify * + * it under the terms of the GNU General Public License as published by * + * the Free Software Foundation; either version 2 of the License, or * + * (at your option) any later version. * + * * + * This program is distributed in the hope that it will be useful, * + * but WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * + * GNU General Public License for more details. * + * * + * You should have received a copy of the GNU General Public License * + * along with this program; if not, write to the * + * Free Software Foundation, Inc., * + * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * + ***************************************************************************/ + +#ifndef BALDERANIMATIONWIDGET_H +#define BALDERANIMATIONWIDGET_H + +#include <guichan/image.hpp> +#include <guichan/widget.hpp> +#include "../balder2dtypes.h" + +namespace Balder +{ + /** + * An Icon for displaying an animated image. + */ + class AnimationWidget: public gcn::Widget + { + public: + // Constructor and Destructor. + AnimationWidget(std::string, bool, bool, bool, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int); + ~AnimationWidget(); + + // Used to load new animation. + void setAnimation(std::string, bool, bool, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int); + + // Used for displaying name of currently playing animation. + const std::string getAnimationFileName() { return animationFileName; } // Used to identify currently playing animation. + + // Controls whether or not there is a base frame in the animation background. + void setAnimationHasBaseFrame(bool aHBF) { animationHasBaseFrame = aHBF; } + const bool getAnimationHasBaseFrame() { return animationHasBaseFrame; } + + // Controls loop feature for playback. + void setAnimationLooped(bool aL) { animationLooped = aL; } + const bool getAnimationLooped() { return animationLooped; } + + // Playback control. + const bool getAnimationPlaying() { return animationPlaying; } // Chacks to see if animation is currently playing. + void playAnimation(); // Starts to play animation from frameCurrent. + void stopAnimation() { animationPlaying = false; } // Stops playing animation at frameCurrent. + void restartAnimation(); // Resets frameCurrent to frameStart and then starts playing animation. + + // Animates next frame if playing. + void Animate(); + + // Inherited from gcn::Widget + virtual void draw(gcn::Graphics* graphics); + + private: + // Animation Variables. + SDL_Surface* animationFrameStrip; + std::string animationFileName; + bool animationHasBaseFrame; + bool animationLooped; + bool animationPlaying; + + // Frame Variables. + unsigned int frameWidth; + unsigned int frameHeight; + unsigned int frameBase; + unsigned int frameStart; + unsigned int frameQuantity; + unsigned int frameInterval; + unsigned int frameCurrent; + Uint32 frameTimer; + }; +} + +#endif // BALDERANIMATIONWIDGET_H Modified: include/menu/menu.h =================================================================== --- include/menu/menu.h 2006-11-19 19:53:58 UTC (rev 29) +++ include/menu/menu.h 2006-11-23 08:31:47 UTC (rev 30) @@ -23,6 +23,7 @@ #include <guichan.hpp> #include <guichan/sdl.hpp> +#include "../../include/menu/animationwidget.h" #include "numberfield.h" namespace Balder @@ -58,7 +59,8 @@ gcn::Gui* gui; // A Gui object - binds it all together gcn::ImageFont* font; // A font gcn::Container* topContainer; // A top container - // stuff that goes in the top container + // stuff that goes in the top container + AnimationWidget* backgroundAnimation; // to display animated background gcn::Icon* headerIcon; // to show a title image gcn::Image* headerImage; // the image to use // and the main menu buttons (stuff that isn't the same across all submenus) Added: src/menu/animationwidget.cpp =================================================================== --- src/menu/animationwidget.cpp (rev 0) +++ src/menu/animationwidget.cpp 2006-11-23 08:31:47 UTC (rev 30) @@ -0,0 +1,126 @@ +/*************************************************************************** + * Copyright (C) 2006 by Bjorn Hansen * + * hol...@us... * + * * + * This program is free software; you can redistribute it and/or modify * + * it under the terms of the GNU General Public License as published by * + * the Free Software Foundation; either version 2 of the License, or * + * (at your option) any later version. * + * * + * This program is distributed in the hope that it will be useful, * + * but WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * + * GNU General Public License for more details. * + * * + * You should have received a copy of the GNU General Public License * + * along with this program; if not, write to the * + * Free Software Foundation, Inc., * + * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * + ***************************************************************************/ + +#include <guichan/rectangle.hpp> +#include <guichan/widgets/icon.hpp> +#include <guichan/sdl/sdlgraphics.hpp> +#include <SDL/SDL.h> +#include <SDL/SDL_image.h> +#include <SDL/SDL_gfxPrimitives.h> +#include "../../include/menu/animationwidget.h" +#include "../../include/log.h" +using namespace Balder; + +AnimationWidget::AnimationWidget(std::string aFileName, bool aHasBaseFrame, bool aLooped, bool aPlaying, unsigned int fWidth, unsigned int fHeight, unsigned int fBase, unsigned int fStart, unsigned int fQuantity, unsigned int fInterval) +{ + // Load Animation. + setAnimation(aFileName, aHasBaseFrame, aLooped, fWidth, fHeight, fBase, fStart, fQuantity, fInterval); + + // Set widget deminsions based on frame size. + setWidth(Uint32(frameWidth)); + setHeight(Uint32(frameHeight)); + + // Check to see if should start playing. + if (aPlaying) { + restartAnimation(); + } +} + +AnimationWidget::~AnimationWidget() +{ + if (animationFrameStrip != 0) { + SDL_FreeSurface(animationFrameStrip); + } +} + +void AnimationWidget::setAnimation(std::string aFN, bool aHBF, bool aL, unsigned int fW, unsigned int fH, unsigned int fB, unsigned int fS, unsigned int fQ, unsigned int fI) +{ + animationFileName = aFN; + animationHasBaseFrame = aHBF; + animationLooped = aL; + animationPlaying = false; + frameWidth = fW; + frameHeight = fH; + frameBase = fB; + frameStart = fS; + frameQuantity = fQ; + frameInterval = fI; + frameCurrent = 0; + + // Load Animation Frame Strip from File. + animationFrameStrip = IMG_Load(animationFileName.c_str()); + if (animationFrameStrip == 0) { + throw "could not load sample background!"; + } +} + +void AnimationWidget::playAnimation() +{ + animationPlaying = true; + frameTimer = SDL_GetTicks(); +} + +void AnimationWidget::restartAnimation() +{ + frameCurrent = 0; + playAnimation(); +} + +void AnimationWidget::Animate() +{ + if (getAnimationPlaying()) { + if (SDL_GetTicks() - frameTimer > frameInterval) { + frameTimer = SDL_GetTicks(); + if (frameCurrent < (frameQuantity - 1)) { + frameCurrent++; + } + else { + if (getAnimationLooped()) { + frameCurrent = 0; + } + else { + stopAnimation(); + } + } + } + } +} + +void AnimationWidget::draw(gcn::Graphics* graphics) +{ + // get screen that the menu is drawn on. + SDL_Surface *screen = dynamic_cast<gcn::SDLGraphics*>(graphics)->getTarget(); + + // get location of the widget on the menu screen. + int x,y; + gcn::Widget::getAbsolutePosition(x,y); + + // draw widget onto menu screen at widget location. + SDL_Rect rectDest = {x, y, /*width is ignored*/0, /*height is ignored*/0}; + if (getAnimationHasBaseFrame()) { + SDL_Rect rectSrc = {frameBase*frameWidth, 0, frameWidth, frameHeight}; + SDL_BlitSurface(animationFrameStrip, &rectSrc, screen, &rectDest); + } + SDL_Rect rectSrc = {(frameStart+frameCurrent)*frameWidth, 0, frameWidth, frameHeight}; + SDL_BlitSurface(animationFrameStrip, &rectSrc, screen, &rectDest); + + // Process next frame to display. + Animate(); +} Modified: src/menu/menu.cpp =================================================================== --- src/menu/menu.cpp 2006-11-19 19:53:58 UTC (rev 29) +++ src/menu/menu.cpp 2006-11-23 08:31:47 UTC (rev 30) @@ -20,7 +20,7 @@ #include <SDL/SDL_mixer.h> #include "../../include/menu/menu.h" -#include "../../include/menu/mainmenu.h" +#include "../../include/menu/mainmenu.h" #include "../../include/soundmanager.h" #include <iostream> @@ -68,11 +68,16 @@ } // The global font is static and must be set. gcn::Widget::setGlobalFont(font); - - // create top level wigets we want on all menus + // create top level wigets we want on all menus + backgroundAnimation = new AnimationWidget(/* Film Strip File Name */"menu/menubackground.png", + /* Has Base Frame */true, /* Is Looped */true, /* Play when finished loading */true, + /* Frame Width */800, /* Frame Height */600, /* Base Frame Index */0, + /* Starting Frame Index */1, /* Animation Frame Quantity Including Starting Frame */3, + /* Frame Interval in MS (1Sec == 1000MS) */1000); headerImage = new gcn::Image("menu/balderheader.png"); headerIcon = new gcn::Icon(headerImage); - topContainer->add(headerIcon, 250, 40); + topContainer->add(backgroundAnimation, 0, 0); + topContainer->add(headerIcon, 250, 40); // now initialize menus mainMenu = new MainMenu(topContainer, this); Modified: src/menu/submenu.cpp =================================================================== --- src/menu/submenu.cpp 2006-11-19 19:53:58 UTC (rev 29) +++ src/menu/submenu.cpp 2006-11-23 08:31:47 UTC (rev 30) @@ -25,7 +25,8 @@ SubMenu::SubMenu(gcn::Container* top, SubMenu* parent):parent(parent) { page = new gcn::Container(); - page->setVisible(false); + page->setVisible(false); + page->setOpaque(false); top->add(page); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <col...@us...> - 2006-11-29 17:16:06
|
Revision: 32 http://svn.sourceforge.net/balder/?rev=32&view=rev Author: colalord Date: 2006-11-29 09:15:55 -0800 (Wed, 29 Nov 2006) Log Message: ----------- 29 Nov-2006 - Reuben added support for multiple animation strips in the same image file to the animationwidget.cpp source code via use of the animationStripLocation variable. - Reuben added animated background support to the submenu pages. - Reuben added pagebackground.png which is the submenu pages background. - Reuben re-arrange the menu layouts so that they would fit into the new skinned submenu pages. Modified Paths: -------------- history.txt include/menu/animationwidget.h include/menu/submenu.h src/menu/animationwidget.cpp src/menu/gamesetup.cpp src/menu/mainmenu.cpp src/menu/menu.cpp src/menu/options.cpp src/menu/playersetup.cpp src/menu/soundvideo.cpp src/menu/submenu.cpp Added Paths: ----------- bin/menu/pagebackground.png Added: bin/menu/pagebackground.png =================================================================== (Binary files differ) Property changes on: bin/menu/pagebackground.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Modified: history.txt =================================================================== --- history.txt 2006-11-28 01:02:27 UTC (rev 31) +++ history.txt 2006-11-29 17:15:55 UTC (rev 32) @@ -3,6 +3,15 @@ History entries are in reverse chronological order (newest entries first). +29 Nov-2006 + - Reuben added support for multiple animation strips in the same image file + to the animationwidget.cpp source code via use of the animationStripLocation + variable. + - Reuben added animated background support to the submenu pages. + - Reuben added pagebackground.png which is the submenu pages background. + - Reuben re-arrange the menu layouts so that they would fit into the new + skinned submenu pages. + 27 Nov-2006 - Reuben updated menubackground.png with a new base frame. Modified: include/menu/animationwidget.h =================================================================== --- include/menu/animationwidget.h 2006-11-28 01:02:27 UTC (rev 31) +++ include/menu/animationwidget.h 2006-11-29 17:15:55 UTC (rev 32) @@ -34,11 +34,11 @@ { public: // Constructor and Destructor. - AnimationWidget(std::string, bool, bool, bool, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int); + AnimationWidget(std::string, bool, bool, bool, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int); ~AnimationWidget(); // Used to load new animation. - void setAnimation(std::string, bool, bool, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int); + void setAnimation(std::string, bool, bool, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int); // Used for displaying name of currently playing animation. const std::string getAnimationFileName() { return animationFileName; } // Used to identify currently playing animation. @@ -53,9 +53,9 @@ // Playback control. const bool getAnimationPlaying() { return animationPlaying; } // Chacks to see if animation is currently playing. - void playAnimation(); // Starts to play animation from frameCurrent. - void stopAnimation() { animationPlaying = false; } // Stops playing animation at frameCurrent. - void restartAnimation(); // Resets frameCurrent to frameStart and then starts playing animation. + void Play(); // Starts to play animation from frameCurrent. + void Stop() { animationPlaying = false; } // Stops playing animation at frameCurrent. + void Restart(); // Resets frameCurrent to frameStart and then starts playing animation. // Animates next frame if playing. void Animate(); @@ -70,6 +70,7 @@ bool animationHasBaseFrame; bool animationLooped; bool animationPlaying; + unsigned int animationStripLocation; // Frame Variables. unsigned int frameWidth; Modified: include/menu/submenu.h =================================================================== --- include/menu/submenu.h 2006-11-28 01:02:27 UTC (rev 31) +++ include/menu/submenu.h 2006-11-29 17:15:55 UTC (rev 32) @@ -22,7 +22,8 @@ #define SUBMENU_H #include <guichan.hpp> -#include <guichan/sdl.hpp> +#include <guichan/sdl.hpp> +#include "animationwidget.h" #include "numberfield.h" namespace Balder @@ -51,8 +52,10 @@ page->setVisible(false); } - virtual void action(const std::string& action){} + virtual void action(const std::string& action){} + + AnimationWidget* animationPageBackground; }; - + } #endif // MENU_H Modified: src/menu/animationwidget.cpp =================================================================== --- src/menu/animationwidget.cpp 2006-11-28 01:02:27 UTC (rev 31) +++ src/menu/animationwidget.cpp 2006-11-29 17:15:55 UTC (rev 32) @@ -28,10 +28,10 @@ #include "../../include/log.h" using namespace Balder; -AnimationWidget::AnimationWidget(std::string aFileName, bool aHasBaseFrame, bool aLooped, bool aPlaying, unsigned int fWidth, unsigned int fHeight, unsigned int fBase, unsigned int fStart, unsigned int fQuantity, unsigned int fInterval) +AnimationWidget::AnimationWidget(std::string aFileName, bool aHasBaseFrame, bool aLooped, bool aPlaying, unsigned int aStripLocation, unsigned int fWidth, unsigned int fHeight, unsigned int fBase, unsigned int fStart, unsigned int fQuantity, unsigned int fInterval) { // Load Animation. - setAnimation(aFileName, aHasBaseFrame, aLooped, fWidth, fHeight, fBase, fStart, fQuantity, fInterval); + setAnimation(aFileName, aHasBaseFrame, aLooped, aStripLocation, fWidth, fHeight, fBase, fStart, fQuantity, fInterval); // Set widget deminsions based on frame size. setWidth(Uint32(frameWidth)); @@ -39,7 +39,7 @@ // Check to see if should start playing. if (aPlaying) { - restartAnimation(); + Restart(); } } @@ -50,12 +50,13 @@ } } -void AnimationWidget::setAnimation(std::string aFN, bool aHBF, bool aL, unsigned int fW, unsigned int fH, unsigned int fB, unsigned int fS, unsigned int fQ, unsigned int fI) +void AnimationWidget::setAnimation(std::string aFN, bool aHBF, bool aL, unsigned int aSL, unsigned int fW, unsigned int fH, unsigned int fB, unsigned int fS, unsigned int fQ, unsigned int fI) { animationFileName = aFN; animationHasBaseFrame = aHBF; animationLooped = aL; animationPlaying = false; + animationStripLocation = aSL; frameWidth = fW; frameHeight = fH; frameBase = fB; @@ -71,16 +72,16 @@ } } -void AnimationWidget::playAnimation() +void AnimationWidget::Play() { animationPlaying = true; frameTimer = SDL_GetTicks(); } -void AnimationWidget::restartAnimation() +void AnimationWidget::Restart() { frameCurrent = 0; - playAnimation(); + Play(); } void AnimationWidget::Animate() @@ -93,10 +94,10 @@ } else { if (getAnimationLooped()) { - frameCurrent = 0; + Restart(); } else { - stopAnimation(); + Stop(); } } } @@ -115,10 +116,10 @@ // draw widget onto menu screen at widget location. SDL_Rect rectDest = {x, y, /*width is ignored*/0, /*height is ignored*/0}; if (getAnimationHasBaseFrame()) { - SDL_Rect rectSrc = {frameBase*frameWidth, 0, frameWidth, frameHeight}; + SDL_Rect rectSrc = {frameBase*frameWidth, animationStripLocation, frameWidth, frameHeight}; SDL_BlitSurface(animationFrameStrip, &rectSrc, screen, &rectDest); } - SDL_Rect rectSrc = {(frameStart+frameCurrent)*frameWidth, 0, frameWidth, frameHeight}; + SDL_Rect rectSrc = {(frameStart+frameCurrent)*frameWidth, animationStripLocation, frameWidth, frameHeight}; SDL_BlitSurface(animationFrameStrip, &rectSrc, screen, &rectDest); // Process next frame to display. Modified: src/menu/gamesetup.cpp =================================================================== --- src/menu/gamesetup.cpp 2006-11-28 01:02:27 UTC (rev 31) +++ src/menu/gamesetup.cpp 2006-11-29 17:15:55 UTC (rev 32) @@ -27,20 +27,17 @@ GameSetupMenu::GameSetupMenu(gcn::Container* top, SubMenu* parent):SubMenu(top,parent) { - page->setDimension(gcn::Rectangle(0,0,500,400)); - page->setPosition(150,200); - backButton = new gcn::Button("Back"); backButton->setEventId("back"); backButton->addActionListener(this); sampleMap = new SampleMapWidget(ConfigManager::GetMap(), 0, 0, 100, 80); - mapnameLabel = new gcn::Label("Map: "); + mapnameLabel = new gcn::Label("Select a Map: "); maplistModel = new MapListModel(); mapScrollArea = new gcn::ScrollArea(); mapListBox = new gcn::ListBox(); - mapListBox->setWidth(400 - mapnameLabel->getWidth()); + mapListBox->setWidth(400); mapListBox->setEventId("selectNewMap"); mapListBox->addActionListener(this); mapDropDown = new gcn::DropDown(maplistModel, mapScrollArea, mapListBox); @@ -67,16 +64,17 @@ timeLimitValue->setVisible(time > 0); lifeLimitValue = new NumberField(life); lifeLimitValue->setEnabled(life > 0); - lifeLimitValue->setVisible(life > 0); - page->add(backButton, 0, 300); - page->add(sampleMap, (page->getWidth() - sampleMap->getWidth()) / 2, 0); - page->add(mapnameLabel, (page->getWidth() - (mapnameLabel->getWidth() + mapDropDown->getWidth())) / 2, sampleMap->getHeight() + 10); - page->add(mapDropDown, ((page->getWidth() - (mapnameLabel->getWidth() + mapDropDown->getWidth())) / 2) + mapnameLabel->getWidth(), mapnameLabel->getY()); - page->add(scoreLimitSelector, 0, mapnameLabel->getY() + 60); - page->add(scoreLimitValue, 400, mapnameLabel->getY() + 60); - page->add(timeLimitSelector, 0, scoreLimitSelector->getY() + 40); + lifeLimitValue->setVisible(life > 0); + + page->add(backButton, page->getWidth() - (backButton->getWidth()+50), 288); + page->add(sampleMap, 50, 50); + page->add(mapnameLabel, 50+(sampleMap->getWidth() + 10), 55); + page->add(mapDropDown, mapnameLabel->getX(), mapnameLabel->getY()+40); + page->add(scoreLimitSelector, 50, sampleMap->getY() + 88); + page->add(scoreLimitValue, 400, sampleMap->getY() + 88); + page->add(timeLimitSelector, 50, scoreLimitSelector->getY() + 40); page->add(timeLimitValue, 400, scoreLimitSelector->getY() + 40); - page->add(lifeLimitSelector, 0, scoreLimitSelector->getY() + 80); + page->add(lifeLimitSelector, 50, scoreLimitSelector->getY() + 80); page->add(lifeLimitValue, 400, scoreLimitSelector->getY() + 80); } Modified: src/menu/mainmenu.cpp =================================================================== --- src/menu/mainmenu.cpp 2006-11-28 01:02:27 UTC (rev 31) +++ src/menu/mainmenu.cpp 2006-11-29 17:15:55 UTC (rev 32) @@ -20,15 +20,12 @@ #include "../../include/menu/menu.h" #include "../../include/menu/mainmenu.h" -#include "../../include/menu/options.h" +#include "../../include/menu/options.h" using namespace Balder; MainMenu::MainMenu(gcn::Container* top, Menu* menusystem):SubMenu(top),system(menusystem) { - page->setDimension(gcn::Rectangle(0, 0, 500, 400)); - page->setPosition(150,200); - startButton = new gcn::Button("Start New Game"); startButton->setEventId("startgame"); startButton->addActionListener(this); @@ -40,22 +37,22 @@ optionsButton->setWidth(500); quitButton = new gcn::Button("Quit"); - quitButton->setWidth(500); + quitButton->setWidth(250); quitButton->setEventId("quitgame"); quitButton->addActionListener(this); // Add them to the page container - page->add(startButton, 0, 0); - page->add(optionsButton, 0, 60); - page->add(quitButton, 0, 180); - + page->add(startButton, 100, 75); + page->add(optionsButton, 100, 135); + page->add(quitButton, 225, 250); + // create the submenus optionsMenu = new OptionsMenu(top, this); } MainMenu::~MainMenu() { - + } void MainMenu::action(const std::string& action) @@ -65,6 +62,6 @@ { hide(); optionsMenu->show(); - } + } else system->action(action); } Modified: src/menu/menu.cpp =================================================================== --- src/menu/menu.cpp 2006-11-28 01:02:27 UTC (rev 31) +++ src/menu/menu.cpp 2006-11-29 17:15:55 UTC (rev 32) @@ -71,7 +71,7 @@ // create top level wigets we want on all menus backgroundAnimation = new AnimationWidget(/* Film Strip File Name */"menu/menubackground.png", /* Has Base Frame */true, /* Is Looped */true, /* Play when finished loading */true, - /* Frame Width */800, /* Frame Height */600, /* Base Frame Index */0, + /* Strip Location */ 0, /* Frame Width */800, /* Frame Height */600, /* Base Frame Index */0, /* Starting Frame Index */1, /* Animation Frame Quantity Including Starting Frame */3, /* Frame Interval in MS (1Sec == 1000MS) */1000); headerImage = new gcn::Image("menu/balderheader.png"); Modified: src/menu/options.cpp =================================================================== --- src/menu/options.cpp 2006-11-28 01:02:27 UTC (rev 31) +++ src/menu/options.cpp 2006-11-29 17:15:55 UTC (rev 32) @@ -29,9 +29,6 @@ OptionsMenu::OptionsMenu(gcn::Container* top, SubMenu* parent):SubMenu(top,parent) { - page->setDimension(gcn::Rectangle(0, 0, 500, 400)); - page->setPosition(150,200); - backButton = new gcn::Button("Back"); backButton->setEventId("back"); backButton->addActionListener(this); @@ -70,13 +67,13 @@ playersButton->setAlignment(0); //alignment is justified left. // add these things to the page container - page->add(backButton, 0, 300); - page->add(numPlayersLabel, 0, 0); - page->add(morePlayersButton, numPlayersLabel->getWidth(), 0); - page->add(lessPlayersButton, numPlayersLabel->getWidth(), morePlayersButton->getHeight()); - page->add(gameSetupButton, 0, 60); - page->add(playersButton, 0, 120); - page->add(soundVideoButton, 0, 180); + page->add(backButton, page->getWidth() - (backButton->getWidth()+50), 288); + page->add(numPlayersLabel, 50, 50); + page->add(morePlayersButton, 50+numPlayersLabel->getWidth(), 50); + page->add(lessPlayersButton, 50+numPlayersLabel->getWidth(), 50+morePlayersButton->getHeight()); + page->add(gameSetupButton, 50, 100); + page->add(playersButton, 50, 150); + page->add(soundVideoButton, 50, 200); // create the submenus gameSetupMenu = new GameSetupMenu(top, this); playerSetupMenu = new PlayerSetupMenu(top, this); Modified: src/menu/playersetup.cpp =================================================================== --- src/menu/playersetup.cpp 2006-11-28 01:02:27 UTC (rev 31) +++ src/menu/playersetup.cpp 2006-11-29 17:15:55 UTC (rev 32) @@ -30,9 +30,6 @@ PlayerSetupMenu::PlayerSetupMenu(gcn::Container* top, SubMenu* parent):SubMenu(top,parent) { - page->setDimension(gcn::Rectangle(0, 0, 600, 400)); - page->setPosition(100,200); - backButton = new gcn::Button("Back"); backButton->setEventId("back"); backButton->addActionListener(this); @@ -128,22 +125,22 @@ aiDropDown->setWidth(redIcon->getWidth()); aiDropDown->setSelected(ailistModel->FindScriptIndex(ConfigManager::GetControlType(currentPlayer))); - page->add(backButton, 0, 300); - page->add(prevPlayerButton, 0,0); - page->add(currentPlayerLabel, prevPlayerButton->getWidth(), 0); - page->add(nextPlayerButton, prevPlayerButton->getWidth() + currentPlayerLabel->getWidth(), 0 ); - page->add(setRotateRightButton, 0, 60); - page->add(rotateRightLabel, setRotateRightButton->getWidth(), 60); - page->add(setRotateLeftButton, 0, 120); - page->add(rotateLeftLabel, setRotateLeftButton->getWidth(), 120); - page->add(setStickPushButton, 0, 180); - page->add(stickPushLabel, setStickPushButton->getWidth(), 180); - page->add(setFireButton, 0, 240); - page->add(fireLabel, setFireButton->getWidth(), 240); + page->add(backButton, page->getWidth() - (backButton->getWidth()+50), 288); + page->add(prevPlayerButton, 50, 50); + page->add(currentPlayerLabel, 50+prevPlayerButton->getWidth(), 50); + page->add(nextPlayerButton, 50+prevPlayerButton->getWidth() + currentPlayerLabel->getWidth(), 50); + page->add(setRotateRightButton, 50, prevPlayerButton->getY()+70); + page->add(rotateRightLabel, 50+setRotateRightButton->getWidth(), prevPlayerButton->getY()+70); + page->add(setRotateLeftButton, 50, prevPlayerButton->getY()+120); + page->add(rotateLeftLabel, 50+setRotateLeftButton->getWidth(), prevPlayerButton->getY()+120); + page->add(setStickPushButton, 50, prevPlayerButton->getY()+170); + page->add(stickPushLabel, 50+setStickPushButton->getWidth(), prevPlayerButton->getY()+170); + page->add(setFireButton, 50, prevPlayerButton->getY()+220); + page->add(fireLabel, 50+setFireButton->getWidth(), prevPlayerButton->getY()+220); // Color selection controls for the selected player. - colorTop = 60; // This sets the top most position for the color selection interface. - colorLeft = 400; // This sets the left most position for the color selection interface. + colorTop = 110; // This sets the top most position for the color selection interface. + colorLeft = page->getWidth() - (redIcon->getWidth()+50); // This sets the left most position for the color selection interface. page->add(sampleProbe, colorLeft +(redIcon->getWidth() - sampleProbe->getWidth())/2, colorTop); page->add(redIcon, colorLeft, colorTop + sampleProbe->getHeight() + 10); page->add(redSlider, colorLeft, colorTop + sampleProbe->getHeight() + 10 + redIcon->getHeight()); Modified: src/menu/soundvideo.cpp =================================================================== --- src/menu/soundvideo.cpp 2006-11-28 01:02:27 UTC (rev 31) +++ src/menu/soundvideo.cpp 2006-11-29 17:15:55 UTC (rev 32) @@ -26,9 +26,6 @@ SoundVideoMenu::SoundVideoMenu(gcn::Container* top, SubMenu* parent):SubMenu(top,parent) { - page->setDimension(gcn::Rectangle(0, 0, 500, 400)); - page->setPosition(150,200); - backButton = new gcn::Button("Back"); backButton->setEventId("back"); backButton->addActionListener(this); @@ -60,14 +57,14 @@ musicVolumeSlider->setEventId("musicVolumeChange"); musicVolumeSlider->addActionListener(this); - page->add(backButton, 0, 300); - page->add(fullScreenCheckbox, 0, 60); - page->add(soundCheckbox, 0, 120); - page->add(musicCheckbox, 0, 180); - page->add(fxVolumeLabel, soundCheckbox->getWidth(), soundCheckbox->getY()); - page->add(fxVolumeSlider, soundCheckbox->getWidth()+fxVolumeLabel->getWidth()+10, soundCheckbox->getY()); - page->add(musicVolumeLabel, soundCheckbox->getWidth(), musicCheckbox->getY()); - page->add(musicVolumeSlider, soundCheckbox->getWidth()+fxVolumeLabel->getWidth()+10, musicCheckbox->getY()); + page->add(backButton, page->getWidth() - (backButton->getWidth()+50), 288); + page->add(fullScreenCheckbox, 50, 50); + page->add(soundCheckbox, 50, 100); + page->add(musicCheckbox, 50, 150); + page->add(fxVolumeLabel, 50+soundCheckbox->getWidth(), soundCheckbox->getY()); + page->add(fxVolumeSlider, 50+soundCheckbox->getWidth()+fxVolumeLabel->getWidth()+10, soundCheckbox->getY()); + page->add(musicVolumeLabel, 50+soundCheckbox->getWidth(), musicCheckbox->getY()); + page->add(musicVolumeSlider, 50+soundCheckbox->getWidth()+fxVolumeLabel->getWidth()+10, musicCheckbox->getY()); } SoundVideoMenu::~SoundVideoMenu() Modified: src/menu/submenu.cpp =================================================================== --- src/menu/submenu.cpp 2006-11-28 01:02:27 UTC (rev 31) +++ src/menu/submenu.cpp 2006-11-29 17:15:55 UTC (rev 32) @@ -26,7 +26,16 @@ { page = new gcn::Container(); page->setVisible(false); - page->setOpaque(false); - top->add(page); + page->setOpaque(false); + page->setDimension(gcn::Rectangle(0, 0, 700, 380)); + + animationPageBackground = new AnimationWidget(/* Film Strip File Name */"menu/pagebackground.png", + /* Has Base Frame */false, /* Is Looped */true, /* Play when finished loading */true, + /* Strip Location */0, /* Frame Width */700, /* Frame Height */380, /* Base Frame Index */0, + /* Starting Frame Index */0, /* Animation Frame Quantity Including Starting Frame */1, + /* Frame Interval in MS (1Sec == 1000MS) */1000); + page->add(animationPageBackground, 0, 0); + + top->add(page, 50, 200); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <col...@us...> - 2006-11-29 19:39:55
|
Revision: 35 http://svn.sourceforge.net/balder/?rev=35&view=rev Author: colalord Date: 2006-11-29 11:39:52 -0800 (Wed, 29 Nov 2006) Log Message: ----------- 29 Nov-2006 - Reuben adjusted labels on the sound and video menu so that captions are now capitalized. Modified Paths: -------------- history.txt src/menu/soundvideo.cpp Modified: history.txt =================================================================== --- history.txt 2006-11-29 19:34:50 UTC (rev 34) +++ history.txt 2006-11-29 19:39:52 UTC (rev 35) @@ -4,6 +4,8 @@ History entries are in reverse chronological order (newest entries first). 29 Nov-2006 + - Reuben adjusted labels on the sound and video menu so that captions are + now capitalized. - Reuben adjusted the opacity of pagebackground.png from 80% to 60%. - Reuben dropped the gradient from white to black in pagebackground.png and made it just gray (0x7f7f7f). Modified: src/menu/soundvideo.cpp =================================================================== --- src/menu/soundvideo.cpp 2006-11-29 19:34:50 UTC (rev 34) +++ src/menu/soundvideo.cpp 2006-11-29 19:39:52 UTC (rev 35) @@ -31,27 +31,27 @@ backButton->setEventId("back"); backButton->addActionListener(this); - fullScreenCheckbox = new gcn::CheckBox("fullscreen", + fullScreenCheckbox = new gcn::CheckBox("Fullscreen", ConfigManager::GetIntValue("Video", "fullscreen")); fullScreenCheckbox->setEventId("toggleFullscreen"); fullScreenCheckbox->addActionListener(this); - soundCheckbox = new gcn::CheckBox("sound", ConfigManager::GetIntValue("Sound", "sound")); + soundCheckbox = new gcn::CheckBox("Sound", ConfigManager::GetIntValue("Sound", "sound")); soundCheckbox->setEventId("toggleSound"); soundCheckbox->addActionListener(this); - musicCheckbox = new gcn::CheckBox("music", ConfigManager::GetIntValue("Sound", "music")); + musicCheckbox = new gcn::CheckBox("Music", ConfigManager::GetIntValue("Sound", "music")); musicCheckbox->setEventId("toggleMusic"); musicCheckbox->addActionListener(this); - fxVolumeLabel = new gcn::Label(" volume"); + fxVolumeLabel = new gcn::Label(" Volume"); fxVolumeSlider = new gcn::Slider(); fxVolumeSlider->setSize(200, fxVolumeLabel->getHeight()/2); fxVolumeSlider->setValue(ConfigManager::GetDoubleValue("Sound", "fxvolume")); fxVolumeSlider->setEventId("fxVolumeChange"); fxVolumeSlider->addActionListener(this); - musicVolumeLabel = new gcn::Label(" volume"); + musicVolumeLabel = new gcn::Label(" Volume"); musicVolumeSlider = new gcn::Slider(); musicVolumeSlider->setSize(200, musicVolumeLabel->getHeight()/2); musicVolumeSlider->setValue(ConfigManager::GetDoubleValue("Sound", "musicvolume")); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <col...@us...> - 2006-11-30 23:26:25
|
Revision: 40 http://svn.sourceforge.net/balder/?rev=40&view=rev Author: colalord Date: 2006-11-30 15:26:25 -0800 (Thu, 30 Nov 2006) Log Message: ----------- 30 Nov-2006 - Reuben cleaned up code in animationwidget.cpp and animationwidget.hpp. They no longer have setAnimation() and getAnimationFileName() as internal methods due to a possible memory leak. They weren't needed in any case. - Reuben added skinnedbuttonwidget.cpp and skinnedbuttonwidget.hpp to allow for skinned button support. - Reuben modified Main Menu buttons to utilize the skinnedbuttonwidget instead of the regular button widget. - Reuben added buttonskins.png which contains the buttons skins. Modified Paths: -------------- Balder2D.cbp history.txt include/menu/animationwidget.h include/menu/mainmenu.h src/menu/animationwidget.cpp src/menu/mainmenu.cpp Added Paths: ----------- bin/menu/buttonskins.png include/menu/skinnedbuttonwidget.h src/menu/skinnedbuttonwidget.cpp Modified: Balder2D.cbp =================================================================== --- Balder2D.cbp 2006-11-30 21:50:49 UTC (rev 39) +++ Balder2D.cbp 2006-11-30 23:26:25 UTC (rev 40) @@ -166,6 +166,12 @@ <Option link="0"/> <Option target="default"/> </Unit> + <Unit filename="include\menu\skinnedbuttonwidget.h"> + <Option compilerVar=""/> + <Option compile="0"/> + <Option link="0"/> + <Option target="default"/> + </Unit> <Unit filename="include\menu\soundvideo.h"> <Option compilerVar=""/> <Option compile="0"/> @@ -332,6 +338,10 @@ <Option compilerVar="CPP"/> <Option target="default"/> </Unit> + <Unit filename="src\menu\skinnedbuttonwidget.cpp"> + <Option compilerVar="CPP"/> + <Option target="default"/> + </Unit> <Unit filename="src\menu\soundvideo.cpp"> <Option compilerVar="CPP"/> <Option target="default"/> Added: bin/menu/buttonskins.png =================================================================== (Binary files differ) Property changes on: bin/menu/buttonskins.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Modified: history.txt =================================================================== --- history.txt 2006-11-30 21:50:49 UTC (rev 39) +++ history.txt 2006-11-30 23:26:25 UTC (rev 40) @@ -4,6 +4,14 @@ History entries are in reverse chronological order (newest entries first). 30 Nov-2006 + - Reuben cleaned up code in animationwidget.cpp and animationwidget.hpp. + They no longer have setAnimation() and getAnimationFileName() as internal + methods due to a possible memory leak. They weren't needed in any case. + - Reuben added skinnedbuttonwidget.cpp and skinnedbuttonwidget.hpp to + allow for skinned button support. + - Reuben modified Main Menu buttons to utilize the skinnedbuttonwidget + instead of the regular button widget. + - Reuben added buttonskins.png which contains the buttons skins. - Bjorn fixed a bug in the collision mask where pixels pixels just outside the width or height of the map could be tested, resulting in a crash (on some machines) Modified: include/menu/animationwidget.h =================================================================== --- include/menu/animationwidget.h 2006-11-30 21:50:49 UTC (rev 39) +++ include/menu/animationwidget.h 2006-11-30 23:26:25 UTC (rev 40) @@ -37,12 +37,6 @@ AnimationWidget(std::string, bool, bool, bool, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int); ~AnimationWidget(); - // Used to load new animation. - void setAnimation(std::string, bool, bool, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int); - - // Used for displaying name of currently playing animation. - const std::string getAnimationFileName() { return animationFileName; } // Used to identify currently playing animation. - // Controls whether or not there is a base frame in the animation background. void setAnimationHasBaseFrame(bool aHBF) { animationHasBaseFrame = aHBF; } const bool getAnimationHasBaseFrame() { return animationHasBaseFrame; } Modified: include/menu/mainmenu.h =================================================================== --- include/menu/mainmenu.h 2006-11-30 21:50:49 UTC (rev 39) +++ include/menu/mainmenu.h 2006-11-30 23:26:25 UTC (rev 40) @@ -21,7 +21,8 @@ #ifndef MAINMENU_H #define MAINSMENU_H -#include "submenu.h" +#include "submenu.h" +#include "skinnedbuttonwidget.h" namespace Balder { @@ -36,9 +37,9 @@ private: Menu* system; SubMenu* optionsMenu; - gcn::Button* startButton; - gcn::Button* optionsButton; - gcn::Button* quitButton; + SkinnedButtonWidget* startButton; + SkinnedButtonWidget* optionsButton; + SkinnedButtonWidget* quitButton; gcn::Label* versionLabel; }; } Added: include/menu/skinnedbuttonwidget.h =================================================================== --- include/menu/skinnedbuttonwidget.h (rev 0) +++ include/menu/skinnedbuttonwidget.h 2006-11-30 23:26:25 UTC (rev 40) @@ -0,0 +1,58 @@ +/*************************************************************************** + * Copyright (C) 2006 by Bjorn Hansen * + * hol...@us... * + * * + * This program is free software; you can redistribute it and/or modify * + * it under the terms of the GNU General Public License as published by * + * the Free Software Foundation; either version 2 of the License, or * + * (at your option) any later version. * + * * + * This program is distributed in the hope that it will be useful, * + * but WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * + * GNU General Public License for more details. * + * * + * You should have received a copy of the GNU General Public License * + * along with this program; if not, write to the * + * Free Software Foundation, Inc., * + * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * + ***************************************************************************/ + +#ifndef BALDERSKINNEDBUTTONWIDGET_H +#define BALDERSKINNEDBUTTONWIDGET_H + +#define buttonUp 0 +#define buttonDown 1 +#define widgetFocused 2 + +#include <guichan/widgets/button.hpp> +#include "../balder2dtypes.h" + +namespace Balder +{ + /** + * An Icon for displaying an animated image. + */ + class SkinnedButtonWidget: public gcn::Button + { + public: + // Constructor and Destructor. + SkinnedButtonWidget(std::string, std::string, unsigned int); + ~SkinnedButtonWidget(); + + // Inherited from gcn::Widget + virtual void draw(gcn::Graphics* graphics); + virtual void drawBorder(gcn::Graphics* graphics); + + private: + // Skin Variables. + SDL_Surface* skinFrameStrip; + std::string skinFileName; + unsigned int skinStripLocation; + + // Button Variables. + unsigned int buttonState; + }; +} + +#endif // BALDERSKINNEDBUTTONWIDGET_H Modified: src/menu/animationwidget.cpp =================================================================== --- src/menu/animationwidget.cpp 2006-11-30 21:50:49 UTC (rev 39) +++ src/menu/animationwidget.cpp 2006-11-30 23:26:25 UTC (rev 40) @@ -19,20 +19,37 @@ ***************************************************************************/ #include <guichan/rectangle.hpp> -#include <guichan/widgets/icon.hpp> #include <guichan/sdl/sdlgraphics.hpp> #include <SDL/SDL.h> -#include <SDL/SDL_image.h> -#include <SDL/SDL_gfxPrimitives.h> +#include <SDL/SDL_image.h> #include "../../include/menu/animationwidget.h" -#include "../../include/log.h" using namespace Balder; -AnimationWidget::AnimationWidget(std::string aFileName, bool aHasBaseFrame, bool aLooped, bool aPlaying, unsigned int aStripLocation, unsigned int fWidth, unsigned int fHeight, unsigned int fBase, unsigned int fStart, unsigned int fQuantity, unsigned int fInterval) +AnimationWidget::AnimationWidget(std::string aFileName, bool aHasBaseFrame, + bool aLooped, bool aPlaying, unsigned int aStripLocation, + unsigned int fWidth, unsigned int fHeight, unsigned int fBase, + unsigned int fStart, unsigned int fQuantity, unsigned int fInterval) { // Load Animation. - setAnimation(aFileName, aHasBaseFrame, aLooped, aStripLocation, fWidth, fHeight, fBase, fStart, fQuantity, fInterval); + animationFileName = aFileName; + animationHasBaseFrame = aHasBaseFrame; + animationLooped = aLooped; + animationPlaying = aPlaying; + animationStripLocation = aStripLocation; + frameWidth = fWidth; + frameHeight = fHeight; + frameBase = fBase; + frameStart = fStart; + frameQuantity = fQuantity; + frameInterval = fInterval; + frameCurrent = 0; + // Load Animation Frame Strip from File. + animationFrameStrip = IMG_Load(animationFileName.c_str()); + if (animationFrameStrip == 0) { + throw "could not load animation!"; + } + // Set widget deminsions based on frame size. setWidth(Uint32(frameWidth)); setHeight(Uint32(frameHeight)); @@ -50,28 +67,6 @@ } } -void AnimationWidget::setAnimation(std::string aFN, bool aHBF, bool aL, unsigned int aSL, unsigned int fW, unsigned int fH, unsigned int fB, unsigned int fS, unsigned int fQ, unsigned int fI) -{ - animationFileName = aFN; - animationHasBaseFrame = aHBF; - animationLooped = aL; - animationPlaying = false; - animationStripLocation = aSL; - frameWidth = fW; - frameHeight = fH; - frameBase = fB; - frameStart = fS; - frameQuantity = fQ; - frameInterval = fI; - frameCurrent = 0; - - // Load Animation Frame Strip from File. - animationFrameStrip = IMG_Load(animationFileName.c_str()); - if (animationFrameStrip == 0) { - throw "could not load sample background!"; - } -} - void AnimationWidget::Play() { animationPlaying = true; Modified: src/menu/mainmenu.cpp =================================================================== --- src/menu/mainmenu.cpp 2006-11-30 21:50:49 UTC (rev 39) +++ src/menu/mainmenu.cpp 2006-11-30 23:26:25 UTC (rev 40) @@ -26,25 +26,25 @@ MainMenu::MainMenu(gcn::Container* top, Menu* menusystem):SubMenu(top),system(menusystem) { - startButton = new gcn::Button("Start Game"); + startButton = new SkinnedButtonWidget("Start Game", "menu/buttonskins.png", 0); startButton->setEventId("startgame"); startButton->addActionListener(this); - startButton->setWidth(300); + startButton->setWidth(300); startButton->setAlignment(0); //alignment is justified left. - optionsButton = new gcn::Button("Options"); + optionsButton = new SkinnedButtonWidget("Options", "menu/buttonskins.png", 0); optionsButton->setEventId("optionsMenu"); optionsButton->addActionListener(this); optionsButton->setWidth(300); optionsButton->setAlignment(0); //alignment is justified left. - quitButton = new gcn::Button("Quit"); + quitButton = new SkinnedButtonWidget("Quit", "menu/buttonskins.png", 0); quitButton->setWidth(300); quitButton->setEventId("quitgame"); quitButton->addActionListener(this); quitButton->setAlignment(0); //alignment is justified left. - versionLabel = new gcn::Label("Version RC1"); + versionLabel = new gcn::Label("Version 1.0-rc1"); // Add them to the page container page->add(startButton, 50, 50); Added: src/menu/skinnedbuttonwidget.cpp =================================================================== --- src/menu/skinnedbuttonwidget.cpp (rev 0) +++ src/menu/skinnedbuttonwidget.cpp 2006-11-30 23:26:25 UTC (rev 40) @@ -0,0 +1,118 @@ +/*************************************************************************** + * Copyright (C) 2006 by Bjorn Hansen * + * hol...@us... * + * * + * This program is free software; you can redistribute it and/or modify * + * it under the terms of the GNU General Public License as published by * + * the Free Software Foundation; either version 2 of the License, or * + * (at your option) any later version. * + * * + * This program is distributed in the hope that it will be useful, * + * but WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * + * GNU General Public License for more details. * + * * + * You should have received a copy of the GNU General Public License * + * along with this program; if not, write to the * + * Free Software Foundation, Inc., * + * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * + ***************************************************************************/ + +#include <guichan/exception.hpp> +#include <guichan/sdl/sdlgraphics.hpp> +#include <SDL/SDL.h> +#include <SDL/SDL_image.h> +#include "../../include/menu/skinnedbuttonwidget.h" +using namespace Balder; + +SkinnedButtonWidget::SkinnedButtonWidget(std::string bC, std::string sFN, unsigned int sSL) +{ + // Initialize inherited values. + setCaption(bC); + setAlignment(gcn::Graphics::CENTER); + setFocusable(true); + adjustSize(); + setBorderSize(0); + + addMouseListener(this); + addKeyListener(this); + + // Initialize Values. + skinFileName = sFN; + skinStripLocation = sSL; + + // Load Skin Frame Strip from File. + skinFrameStrip = IMG_Load(skinFileName.c_str()); + if (skinFrameStrip == 0) { + throw "could not load button skin!"; + } +} + +SkinnedButtonWidget::~SkinnedButtonWidget() +{ + if (skinFrameStrip != 0) { + SDL_FreeSurface(skinFrameStrip); + } +} + +void SkinnedButtonWidget::draw(gcn::Graphics* graphics) +{ + // get screen that the menu is drawn on. + SDL_Surface *screen = dynamic_cast<gcn::SDLGraphics*>(graphics)->getTarget(); + + // get location of the widget on the menu screen. + int x,y; + gcn::Widget::getAbsolutePosition(x,y); + + if (!isPressed()) { + buttonState = buttonUp; + } + else { + buttonState = buttonDown; + } + + if (hasFocus()) + { + buttonState += widgetFocused; + } + + // draw widget onto menu screen at widget location. + SDL_Rect rectSrc = {buttonState*getWidth(), skinStripLocation, getWidth(), getHeight()}; + SDL_Rect rectDest = {x, y, /*width is ignored*/0, /*height is ignored*/0}; + SDL_BlitSurface(skinFrameStrip, &rectSrc, screen, &rectDest); + + // Need to draw caption label onto button. + int textX; + int textY = getHeight() / 2 - getFont()->getHeight() / 2; + + switch (getAlignment()) + { + case gcn::Graphics::LEFT: + textX = 7; + break; + case gcn::Graphics::CENTER: + textX = getWidth() / 2; + break; + case gcn::Graphics::RIGHT: + textX = getWidth() - 7; + break; + default: + throw GCN_EXCEPTION("Unknown alignment."); + } + + graphics->setFont(getFont()); + + if (isPressed()) + { + graphics->drawText(getCaption(), textX + 1, textY + 1, getAlignment()); + } + else + { + graphics->drawText(getCaption(), textX, textY, getAlignment()); + } +} + +void SkinnedButtonWidget::drawBorder(gcn::Graphics* graphics) +{ + // Borders are not drawn for skinned buttons. +} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <col...@us...> - 2006-12-01 00:28:19
|
Revision: 42 http://svn.sourceforge.net/balder/?rev=42&view=rev Author: colalord Date: 2006-11-30 16:28:16 -0800 (Thu, 30 Nov 2006) Log Message: ----------- 30 Nov-2006 - Reuben adjusted skinnedbuttonwidget.cpp so when initialized buttonState is assigned the value buttonUp. Modified Paths: -------------- history.txt src/menu/skinnedbuttonwidget.cpp Modified: history.txt =================================================================== --- history.txt 2006-11-30 23:44:22 UTC (rev 41) +++ history.txt 2006-12-01 00:28:16 UTC (rev 42) @@ -4,6 +4,8 @@ History entries are in reverse chronological order (newest entries first). 30 Nov-2006 + - Reuben adjusted skinnedbuttonwidget.cpp so when initialized + buttonState is assigned the value buttonUp. - Reuben updated buttonskins.png with new skin. - Reuben cleaned up code in animationwidget.cpp and animationwidget.hpp. They no longer have setAnimation() and getAnimationFileName() as internal Modified: src/menu/skinnedbuttonwidget.cpp =================================================================== --- src/menu/skinnedbuttonwidget.cpp 2006-11-30 23:44:22 UTC (rev 41) +++ src/menu/skinnedbuttonwidget.cpp 2006-12-01 00:28:16 UTC (rev 42) @@ -40,6 +40,7 @@ // Initialize Values. skinFileName = sFN; skinStripLocation = sSL; + buttonState = buttonUp; // Load Skin Frame Strip from File. skinFrameStrip = IMG_Load(skinFileName.c_str()); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <hol...@us...> - 2006-12-01 05:43:00
|
Revision: 44 http://svn.sourceforge.net/balder/?rev=44&view=rev Author: holomorph Date: 2006-11-30 21:42:56 -0800 (Thu, 30 Nov 2006) Log Message: ----------- fixed skinnedbuttonwidget constructor and removed some commented code from menu.cpp Modified Paths: -------------- history.txt src/menu/menu.cpp src/menu/skinnedbuttonwidget.cpp Modified: history.txt =================================================================== --- history.txt 2006-12-01 03:34:07 UTC (rev 43) +++ history.txt 2006-12-01 05:42:56 UTC (rev 44) @@ -4,6 +4,8 @@ History entries are in reverse chronological order (newest entries first). 30 Nov-2006 + - Bjorn fixed a bug in skinnedbuttonwidget where parent constructor was + not called, resulting in some un-initialized values in the widget - Reuben adjusted skinnedbuttonwidget.cpp so when initialized buttonState is assigned the value buttonUp. - Reuben updated buttonskins.png with new skin. Modified: src/menu/menu.cpp =================================================================== --- src/menu/menu.cpp 2006-12-01 03:34:07 UTC (rev 43) +++ src/menu/menu.cpp 2006-12-01 05:42:56 UTC (rev 44) @@ -20,7 +20,7 @@ #include <SDL/SDL_mixer.h> #include "../../include/menu/menu.h" -#include "../../include/menu/mainmenu.h" +#include "../../include/menu/mainmenu.h" #include "../../include/soundmanager.h" #include <iostream> @@ -68,16 +68,16 @@ } // The global font is static and must be set. gcn::Widget::setGlobalFont(font); - // create top level wigets we want on all menus - backgroundAnimation = new AnimationWidget(/* Film Strip File Name */"menu/menubackground.png", - /* Has Base Frame */true, /* Is Looped */true, /* Play when finished loading */true, - /* Strip Location */ 0, /* Frame Width */800, /* Frame Height */600, /* Base Frame Index */0, - /* Starting Frame Index */1, /* Animation Frame Quantity Including Starting Frame */3, + // create top level wigets we want on all menus + backgroundAnimation = new AnimationWidget(/* Film Strip File Name */"menu/menubackground.png", + /* Has Base Frame */true, /* Is Looped */true, /* Play when finished loading */true, + /* Strip Location */ 0, /* Frame Width */800, /* Frame Height */600, /* Base Frame Index */0, + /* Starting Frame Index */1, /* Animation Frame Quantity Including Starting Frame */3, /* Frame Interval in MS (1Sec == 1000MS) */1000); headerImage = new gcn::Image("menu/balderheader.png"); headerIcon = new gcn::Icon(headerImage); - topContainer->add(backgroundAnimation, 0, 0); - topContainer->add(headerIcon, 250, 40); + topContainer->add(backgroundAnimation, 0, 0); + topContainer->add(headerIcon, 250, 40); // now initialize menus mainMenu = new MainMenu(topContainer, this); @@ -150,26 +150,6 @@ if (event.type == SDL_KEYDOWN) { Menu::lastKeyPressed = event.key.keysym.sym; -// if (event.key.keysym.sym == SDLK_ESCAPE) -// { -// if (bindNextKey) -// { -// bindNextKey = false; -// RefreshKeys(); -// } -// else -// { -// running = false; -// startgame = false; -// } -// } -// if (bindNextKey) -// { -// ConfigManager::SetPlayerControl(currentPlayer, actionToBind, -// Input::GetKeyString(event.key.keysym.sym)); -// bindNextKey = false; -// RefreshKeys(); -// } } else if(event.type == SDL_QUIT) { Modified: src/menu/skinnedbuttonwidget.cpp =================================================================== --- src/menu/skinnedbuttonwidget.cpp 2006-12-01 03:34:07 UTC (rev 43) +++ src/menu/skinnedbuttonwidget.cpp 2006-12-01 05:42:56 UTC (rev 44) @@ -25,95 +25,83 @@ #include "../../include/menu/skinnedbuttonwidget.h" using namespace Balder; -SkinnedButtonWidget::SkinnedButtonWidget(std::string bC, std::string sFN, unsigned int sSL) -{ - // Initialize inherited values. - setCaption(bC); - setAlignment(gcn::Graphics::CENTER); - setFocusable(true); - adjustSize(); - setBorderSize(0); - - addMouseListener(this); - addKeyListener(this); - - // Initialize Values. - skinFileName = sFN; - skinStripLocation = sSL; - buttonState = buttonUp; - - // Load Skin Frame Strip from File. - skinFrameStrip = IMG_Load(skinFileName.c_str()); - if (skinFrameStrip == 0) { - throw "could not load button skin!"; - } -} - -SkinnedButtonWidget::~SkinnedButtonWidget() -{ - if (skinFrameStrip != 0) { - SDL_FreeSurface(skinFrameStrip); - } -} - -void SkinnedButtonWidget::draw(gcn::Graphics* graphics) -{ - // get screen that the menu is drawn on. - SDL_Surface *screen = dynamic_cast<gcn::SDLGraphics*>(graphics)->getTarget(); - - // get location of the widget on the menu screen. - int x,y; - gcn::Widget::getAbsolutePosition(x,y); - - if (!isPressed()) { - buttonState = buttonUp; - } - else { - buttonState = buttonDown; - } - - if (hasFocus()) - { - buttonState += widgetFocused; - } - - // draw widget onto menu screen at widget location. - SDL_Rect rectSrc = {buttonState*getWidth(), skinStripLocation, getWidth(), getHeight()}; - SDL_Rect rectDest = {x, y, /*width is ignored*/0, /*height is ignored*/0}; - SDL_BlitSurface(skinFrameStrip, &rectSrc, screen, &rectDest); - - // Need to draw caption label onto button. - int textX; - int textY = getHeight() / 2 - getFont()->getHeight() / 2; - - switch (getAlignment()) - { - case gcn::Graphics::LEFT: - textX = 7; - break; - case gcn::Graphics::CENTER: - textX = getWidth() / 2; - break; - case gcn::Graphics::RIGHT: - textX = getWidth() - 7; - break; - default: - throw GCN_EXCEPTION("Unknown alignment."); - } - - graphics->setFont(getFont()); - - if (isPressed()) - { - graphics->drawText(getCaption(), textX + 1, textY + 1, getAlignment()); - } - else - { - graphics->drawText(getCaption(), textX, textY, getAlignment()); - } -} - -void SkinnedButtonWidget::drawBorder(gcn::Graphics* graphics) -{ - // Borders are not drawn for skinned buttons. -} +SkinnedButtonWidget::SkinnedButtonWidget(std::string bC, std::string sFN, unsigned int sSL): + gcn::Button(bC), skinFileName(sFN), skinStripLocation(sSL), buttonState(buttonUp) +{ + setBorderSize(0); + + // Load Skin Frame Strip from File. + skinFrameStrip = IMG_Load(skinFileName.c_str()); + if (skinFrameStrip == 0) { + throw "could not load button skin!"; + } +} + +SkinnedButtonWidget::~SkinnedButtonWidget() +{ + if (skinFrameStrip != 0) { + SDL_FreeSurface(skinFrameStrip); + } +} + +void SkinnedButtonWidget::draw(gcn::Graphics* graphics) +{ + // get screen that the menu is drawn on. + SDL_Surface *screen = dynamic_cast<gcn::SDLGraphics*>(graphics)->getTarget(); + + // get location of the widget on the menu screen. + int x,y; + gcn::Widget::getAbsolutePosition(x,y); + + if (!isPressed()) { + buttonState = buttonUp; + } + else { + buttonState = buttonDown; + } + + if (hasFocus()) + { + buttonState += widgetFocused; + } + + // draw widget onto menu screen at widget location. + SDL_Rect rectSrc = {buttonState*getWidth(), skinStripLocation, getWidth(), getHeight()}; + SDL_Rect rectDest = {x, y, /*width is ignored*/0, /*height is ignored*/0}; + SDL_BlitSurface(skinFrameStrip, &rectSrc, screen, &rectDest); + + // Need to draw caption label onto button. + int textX; + int textY = getHeight() / 2 - getFont()->getHeight() / 2; + + switch (getAlignment()) + { + case gcn::Graphics::LEFT: + textX = 7; + break; + case gcn::Graphics::CENTER: + textX = getWidth() / 2; + break; + case gcn::Graphics::RIGHT: + textX = getWidth() - 7; + break; + default: + throw GCN_EXCEPTION("Unknown alignment."); + } + + graphics->setFont(getFont()); + + if (isPressed()) + { + graphics->drawText(getCaption(), textX + 1, textY + 1, getAlignment()); + } + else + { + graphics->drawText(getCaption(), textX, textY, getAlignment()); + } +} + +void SkinnedButtonWidget::drawBorder(gcn::Graphics* graphics) +{ + // Borders are not drawn for skinned buttons. +} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <hol...@us...> - 2006-12-01 08:02:08
|
Revision: 45 http://svn.sourceforge.net/balder/?rev=45&view=rev Author: holomorph Date: 2006-12-01 00:02:09 -0800 (Fri, 01 Dec 2006) Log Message: ----------- only animate small parts Modified Paths: -------------- bin/menu/menubackground.png history.txt include/menu/menu.h src/menu/menu.cpp Added Paths: ----------- bin/menu/twinkle1.png Modified: bin/menu/menubackground.png =================================================================== (Binary files differ) Added: bin/menu/twinkle1.png =================================================================== (Binary files differ) Property changes on: bin/menu/twinkle1.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Modified: history.txt =================================================================== --- history.txt 2006-12-01 05:42:56 UTC (rev 44) +++ history.txt 2006-12-01 08:02:09 UTC (rev 45) @@ -4,6 +4,9 @@ History entries are in reverse chronological order (newest entries first). 30 Nov-2006 + - Bjorn changed background animation scheme to have a static image and + then place animation widgets over animated portions. Hopefully this + will be faster. - Bjorn fixed a bug in skinnedbuttonwidget where parent constructor was not called, resulting in some un-initialized values in the widget - Reuben adjusted skinnedbuttonwidget.cpp so when initialized Modified: include/menu/menu.h =================================================================== --- include/menu/menu.h 2006-12-01 05:42:56 UTC (rev 44) +++ include/menu/menu.h 2006-12-01 08:02:09 UTC (rev 45) @@ -23,7 +23,7 @@ #include <guichan.hpp> #include <guichan/sdl.hpp> -#include "../../include/menu/animationwidget.h" +#include "../../include/menu/animationwidget.h" #include "numberfield.h" namespace Balder @@ -59,10 +59,12 @@ gcn::Gui* gui; // A Gui object - binds it all together gcn::ImageFont* font; // A font gcn::Container* topContainer; // A top container - // stuff that goes in the top container - AnimationWidget* backgroundAnimation; // to display animated background + // stuff that goes in the top container + AnimationWidget* twinkleAnimation; // to display animated background gcn::Icon* headerIcon; // to show a title image gcn::Image* headerImage; // the image to use + gcn::Icon* backgroundIcon; + gcn::Image* backgroundImage; // the image for the background icon // and the main menu buttons (stuff that isn't the same across all submenus) SubMenu* mainMenu; }; Modified: src/menu/menu.cpp =================================================================== --- src/menu/menu.cpp 2006-12-01 05:42:56 UTC (rev 44) +++ src/menu/menu.cpp 2006-12-01 08:02:09 UTC (rev 45) @@ -69,14 +69,17 @@ // The global font is static and must be set. gcn::Widget::setGlobalFont(font); // create top level wigets we want on all menus - backgroundAnimation = new AnimationWidget(/* Film Strip File Name */"menu/menubackground.png", + twinkleAnimation = new AnimationWidget(/* Film Strip File Name */"menu/twinkle1.png", /* Has Base Frame */true, /* Is Looped */true, /* Play when finished loading */true, - /* Strip Location */ 0, /* Frame Width */800, /* Frame Height */600, /* Base Frame Index */0, + /* Strip Location */ 0, /* Frame Width */100, /* Frame Height */100, /* Base Frame Index */0, /* Starting Frame Index */1, /* Animation Frame Quantity Including Starting Frame */3, /* Frame Interval in MS (1Sec == 1000MS) */1000); + backgroundImage = new gcn::Image("menu/menubackground.png"); + backgroundIcon = new gcn::Icon(backgroundImage); headerImage = new gcn::Image("menu/balderheader.png"); headerIcon = new gcn::Icon(headerImage); - topContainer->add(backgroundAnimation, 0, 0); + topContainer->add(backgroundIcon, 0, 0); + topContainer->add(twinkleAnimation,600,420); topContainer->add(headerIcon, 250, 40); // now initialize menus This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <hol...@us...> - 2006-12-30 00:17:56
|
Revision: 52 http://svn.sourceforge.net/balder/?rev=52&view=rev Author: holomorph Date: 2006-12-29 16:17:57 -0800 (Fri, 29 Dec 2006) Log Message: ----------- updated buttonskin image for different button widths Modified Paths: -------------- bin/config.xml bin/menu/buttonskins.png history.txt include/menu/playersetup.h src/menu/gamesetup.cpp src/menu/options.cpp src/menu/playersetup.cpp src/menu/soundvideo.cpp Modified: bin/config.xml =================================================================== --- bin/config.xml 2006-12-29 23:48:19 UTC (rev 51) +++ bin/config.xml 2006-12-30 00:17:57 UTC (rev 52) @@ -3,7 +3,7 @@ <Balder> <!-- The following is meant to be modified by the user --> <Map name="tri-duel" /> - <NumberOfPlayers value="3" /> + <NumberOfPlayers value="2" /> <GameSetup> <!-- negative values indicate disabled modes --> <ScoreLimit value="100" /> Modified: bin/menu/buttonskins.png =================================================================== (Binary files differ) Modified: history.txt =================================================================== --- history.txt 2006-12-29 23:48:19 UTC (rev 51) +++ history.txt 2006-12-30 00:17:57 UTC (rev 52) @@ -5,8 +5,7 @@ 29 Dec-2006 - Bjorn replaced the rest of the gcn::Button 's in the menu with skinned - buttons. Still needs some adjusting (like new rows in the image for - shorter buttons). + buttons. 12 Dec-2006 - Bjorn fixed entities drawing in score box by setting the screen clipping Modified: include/menu/playersetup.h =================================================================== --- include/menu/playersetup.h 2006-12-29 23:48:19 UTC (rev 51) +++ include/menu/playersetup.h 2006-12-30 00:17:57 UTC (rev 52) @@ -79,7 +79,7 @@ PlayerSetupMenu* menu; public: KeyBindButton(const std::string& caption, PlayerSetupMenu* m): - SkinnedButtonWidget(caption, "menu/buttonskins.png"), menu(m){} + SkinnedButtonWidget(caption, "menu/buttonskins.png", 40), menu(m){} void keyPress(const gcn::Key& key) { menu->BindKey(key); Modified: src/menu/gamesetup.cpp =================================================================== --- src/menu/gamesetup.cpp 2006-12-29 23:48:19 UTC (rev 51) +++ src/menu/gamesetup.cpp 2006-12-30 00:17:57 UTC (rev 52) @@ -27,7 +27,7 @@ GameSetupMenu::GameSetupMenu(gcn::Container* top, SubMenu* parent):SubMenu(top,parent) { - backButton = new SkinnedButtonWidget("Back", "menu/buttonskins.png"); + backButton = new SkinnedButtonWidget("Back", "menu/buttonskins.png", 80); backButton->setWidth(150); backButton->setEventId("back"); backButton->addActionListener(this); Modified: src/menu/options.cpp =================================================================== --- src/menu/options.cpp 2006-12-29 23:48:19 UTC (rev 51) +++ src/menu/options.cpp 2006-12-30 00:17:57 UTC (rev 52) @@ -29,7 +29,7 @@ OptionsMenu::OptionsMenu(gcn::Container* top, SubMenu* parent):SubMenu(top,parent) { - backButton = new SkinnedButtonWidget("Back", "menu/buttonskins.png"); + backButton = new SkinnedButtonWidget("Back", "menu/buttonskins.png", 80); backButton->setWidth(150); backButton->setEventId("back"); backButton->addActionListener(this); @@ -53,6 +53,7 @@ soundVideoButton = new SkinnedButtonWidget("Sound and Video", "menu/buttonskins.png"); soundVideoButton->setEventId("soundVideoMenu"); soundVideoButton->addActionListener(this); + soundVideoButton->setWidth(300); soundVideoButton->setAlignment(0); //alignment is justified left. gameSetupButton = new SkinnedButtonWidget("Game Setup", "menu/buttonskins.png"); Modified: src/menu/playersetup.cpp =================================================================== --- src/menu/playersetup.cpp 2006-12-29 23:48:19 UTC (rev 51) +++ src/menu/playersetup.cpp 2006-12-30 00:17:57 UTC (rev 52) @@ -30,7 +30,7 @@ PlayerSetupMenu::PlayerSetupMenu(gcn::Container* top, SubMenu* parent):SubMenu(top,parent) { - backButton = new SkinnedButtonWidget("Back", "menu/buttonskins.png"); + backButton = new SkinnedButtonWidget("Back", "menu/buttonskins.png", 80); backButton->setWidth(150); backButton->setEventId("back"); backButton->addActionListener(this); @@ -40,13 +40,15 @@ ss << "Player " << currentPlayer; currentPlayerLabel = new gcn::Label(ss.str()); - nextPlayerButton = new SkinnedButtonWidget(" > ", "menu/buttonskins.png"); + nextPlayerButton = new SkinnedButtonWidget(" > ", "menu/buttonskins.png", 120); nextPlayerButton->setEventId("nextPlayer"); nextPlayerButton->addActionListener(this); + nextPlayerButton->setWidth(40); - prevPlayerButton = new SkinnedButtonWidget(" < ", "menu/buttonskins.png"); + prevPlayerButton = new SkinnedButtonWidget(" < ", "menu/buttonskins.png", 120); prevPlayerButton->setEventId("prevPlayer"); prevPlayerButton->addActionListener(this); + prevPlayerButton->setWidth(40); setRotateRightButton = new KeyBindButton("Rotate Right:", this); setRotateRightButton->setEventId("bindRight"); @@ -72,6 +74,7 @@ fireLabel = new gcn::Label(ConfigManager::GetPlayerControl(currentPlayer, "fire")); setFireButton->setAlignment(0); + setStickPushButton->setWidth(250); setRotateRightButton->setWidth(setStickPushButton->getWidth()); setRotateLeftButton->setWidth(setStickPushButton->getWidth()); setFireButton->setWidth(setStickPushButton->getWidth()); Modified: src/menu/soundvideo.cpp =================================================================== --- src/menu/soundvideo.cpp 2006-12-29 23:48:19 UTC (rev 51) +++ src/menu/soundvideo.cpp 2006-12-30 00:17:57 UTC (rev 52) @@ -26,7 +26,7 @@ SoundVideoMenu::SoundVideoMenu(gcn::Container* top, SubMenu* parent):SubMenu(top,parent) { - backButton = new SkinnedButtonWidget("Back", "menu/buttonskins.png"); + backButton = new SkinnedButtonWidget("Back", "menu/buttonskins.png", 80); backButton->setWidth(150); backButton->setEventId("back"); backButton->addActionListener(this); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <hol...@us...> - 2007-07-19 02:28:50
|
Revision: 57 http://svn.sourceforge.net/balder/?rev=57&view=rev Author: holomorph Date: 2007-07-18 19:28:53 -0700 (Wed, 18 Jul 2007) Log Message: ----------- added pause support Modified Paths: -------------- history.txt include/gamemanager.h include/menu/playersetup.h include/renderer.h src/gamemanager.cpp src/input.cpp src/menu/playersetup.cpp src/renderer.cpp Modified: history.txt =================================================================== --- history.txt 2007-07-17 03:21:11 UTC (rev 56) +++ history.txt 2007-07-19 02:28:53 UTC (rev 57) @@ -3,6 +3,10 @@ History entries are in reverse chronological order (newest entries first). +18 July-2007 + - Bjorn applied a patch from Alexander Clausen which adds support for + pausing the game using the Pause key. + 16 July-2007 - Bjorn removed the 'rc1' from the version string in the menu - Bjorn patched the source to run with guichan 0.6.1 (too bad 7.0 is out now) Modified: include/gamemanager.h =================================================================== --- include/gamemanager.h 2007-07-17 03:21:11 UTC (rev 56) +++ include/gamemanager.h 2007-07-19 02:28:53 UTC (rev 57) @@ -64,6 +64,7 @@ frame_number start_frame; Uint32 start_time; Uint32 end_time; + Uint32 pause_start_time; int mapwidth; int mapheight; Renderer *render; @@ -73,6 +74,7 @@ std::list<Entity*> entity_list; std::map<player_id, Player*> player_list; bool still_playing; //quit the game when this is false + bool paused; ProbeFactory *probe_factory; ProjectileFactory *projectile_factory; PowerUpFactory *powerup_factory; @@ -112,6 +114,7 @@ void SendInputState ( player_id id, input_states s); void PlaySound(const char* sound_type); void Quit(); + void TogglePause(); void UpdatePlayer(player_id id, int score); }; typedef std::list<Entity*>::iterator EntityIterator; Modified: include/menu/playersetup.h =================================================================== --- include/menu/playersetup.h 2007-07-17 03:21:11 UTC (rev 56) +++ include/menu/playersetup.h 2007-07-19 02:28:53 UTC (rev 57) @@ -27,15 +27,15 @@ { class AIListModel; class SampleProbeWidget; - class KeyBindButton; + class SkinnedButtonWidget; - class PlayerSetupMenu:public SubMenu + class PlayerSetupMenu:public SubMenu, public gcn::KeyListener { public: PlayerSetupMenu(gcn::Container* top, SubMenu* parent); virtual ~PlayerSetupMenu(); void action(const gcn::ActionEvent& action); - void BindKey(const gcn::Key& key); + void keyPressed(const gcn::KeyEvent &keyEvent); private: void RefreshKeys(); SkinnedButtonWidget* backButton; @@ -45,13 +45,13 @@ int currentPlayer; bool bindNextKey; const char* actionToBind; - KeyBindButton* setRotateRightButton; + SkinnedButtonWidget* setRotateRightButton; gcn::Label* rotateRightLabel; - KeyBindButton* setRotateLeftButton; + SkinnedButtonWidget* setRotateLeftButton; gcn::Label* rotateLeftLabel; - KeyBindButton* setStickPushButton; + SkinnedButtonWidget* setStickPushButton; gcn::Label* stickPushLabel; - KeyBindButton* setFireButton; + SkinnedButtonWidget* setFireButton; gcn::Label* fireLabel; gcn::Label* aiLabel; AIListModel* ailistModel; @@ -72,18 +72,6 @@ int colorLeft; }; - - class KeyBindButton:public SkinnedButtonWidget - { - private: - PlayerSetupMenu* menu; - public: - KeyBindButton(const std::string& caption, PlayerSetupMenu* m): - SkinnedButtonWidget(caption, "menu/buttonskins.png", 40), menu(m){} - void keyPress(const gcn::Key& key) - { - menu->BindKey(key); - } - }; + } #endif // PLAYERSETUPMENU_H Modified: include/renderer.h =================================================================== --- include/renderer.h 2007-07-17 03:21:11 UTC (rev 56) +++ include/renderer.h 2007-07-19 02:28:53 UTC (rev 57) @@ -48,6 +48,7 @@ void DisplayText(int x, int y, std::string text); /// erase a rectangle from the screen, restoring the background void EraseArea(int x, int y, int width, int height); + void EraseScreen(); /// draws an entity if the associated sprite is registered void DrawEntity ( Entity* ); /// Register a sprite for for use Modified: src/gamemanager.cpp =================================================================== --- src/gamemanager.cpp 2007-07-17 03:21:11 UTC (rev 56) +++ src/gamemanager.cpp 2007-07-19 02:28:53 UTC (rev 57) @@ -159,14 +159,21 @@ int maxScore = ConfigManager::GetIntValue("GameSetup", "ScoreLimit"); //start the game loop still_playing = true; + paused = false; while(still_playing) { + // check for input + input->CheckInput(); + + if (paused) { + ++frame; + SDL_Delay(FrameTimeLeft()); + continue; + } // spawn goodies if (frame % powerup_spawn_interval == 50){ powerup_factory->CreatePowerUp(this, frame); } - // check for input - input->CheckInput(); ArtificialController::DoControl(entity_list); // erase, move and redraw the game entities EntityIterator ent1 = entity_list.begin(); @@ -472,6 +479,21 @@ } } +void GameManager::TogglePause() +{ + if(end_time != 0) { + if (!paused) { + pause_start_time = SDL_GetTicks(); + render->DisplayText(100, 100, "Paused"); + render->FinishFrame(); + } else { + end_time += (SDL_GetTicks() - pause_start_time); + render->EraseScreen(); + } + } + paused = !paused; +} + void GameManager::DumpEntityState(){ std::stringstream ss; //ss.precision(54); Modified: src/input.cpp =================================================================== --- src/input.cpp 2007-07-17 03:21:11 UTC (rev 56) +++ src/input.cpp 2007-07-19 02:28:53 UTC (rev 57) @@ -124,6 +124,8 @@ k = event.key.keysym.sym; if(SDLK_ESCAPE == k) game_manager->Quit(); + if(SDLK_PAUSE == k) + game_manager->TogglePause(); // now check if the key is mapped to any player action for (int i = 0; i < num_players; ++i) { Modified: src/menu/playersetup.cpp =================================================================== --- src/menu/playersetup.cpp 2007-07-17 03:21:11 UTC (rev 56) +++ src/menu/playersetup.cpp 2007-07-19 02:28:53 UTC (rev 57) @@ -18,6 +18,7 @@ * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * ***************************************************************************/ +#include "../../include/log.h" #include "../../include/menu/playersetup.h" #include "../../include/menu/menu.h" #include "../../include/configmanager.h" @@ -29,7 +30,7 @@ using namespace Balder; PlayerSetupMenu::PlayerSetupMenu(gcn::Container* top, SubMenu* parent):SubMenu(top,parent) -{ +{ backButton = new SkinnedButtonWidget("Back", "menu/buttonskins.png", 80); backButton->setWidth(150); backButton->setActionEventId("back"); @@ -50,27 +51,31 @@ prevPlayerButton->addActionListener(this); prevPlayerButton->setWidth(40); - setRotateRightButton = new KeyBindButton("Rotate Right:", this); + setRotateRightButton = new SkinnedButtonWidget("Rotate Right:", "menu/buttonskins.png", 40); setRotateRightButton->setActionEventId("bindRight"); setRotateRightButton->addActionListener(this); + setRotateRightButton->addKeyListener(this);// listen for key presses for keybinding stuff rotateRightLabel = new gcn::Label(ConfigManager::GetPlayerControl(currentPlayer, "right")); setRotateRightButton->setAlignment(0); - setRotateLeftButton = new KeyBindButton("Rotate Left:", this); + setRotateLeftButton = new SkinnedButtonWidget("Rotate Left:", "menu/buttonskins.png", 40); setRotateLeftButton->setActionEventId("bindLeft"); setRotateLeftButton->addActionListener(this); + setRotateLeftButton->addKeyListener(this);// listen for key presses for keybinding stuff rotateLeftLabel = new gcn::Label(ConfigManager::GetPlayerControl(currentPlayer, "left")); setRotateLeftButton->setAlignment(0); - setStickPushButton = new KeyBindButton("Stick/Push Off:", this); + setStickPushButton = new SkinnedButtonWidget("Stick/Push Off:", "menu/buttonskins.png", 40); setStickPushButton->setActionEventId("bindStick"); setStickPushButton->addActionListener(this); + setStickPushButton->addKeyListener(this);// listen for key presses for keybinding stuff stickPushLabel = new gcn::Label(ConfigManager::GetPlayerControl(currentPlayer, "stick")); setStickPushButton->setAlignment(0); - setFireButton = new KeyBindButton("Fire:", this); + setFireButton = new SkinnedButtonWidget("Fire:", "menu/buttonskins.png", 40); setFireButton->setActionEventId("bindFire"); setFireButton->addActionListener(this); + setFireButton->addKeyListener(this);// listen for key presses for keybinding stuff fireLabel = new gcn::Label(ConfigManager::GetPlayerControl(currentPlayer, "fire")); setFireButton->setAlignment(0); @@ -199,13 +204,13 @@ { stickPushLabel->setCaption(" "); actionToBind = "stick"; - bindNextKey = true; + bindNextKey = true; } else if (action.getId() == "bindFire") { fireLabel->setCaption(" "); actionToBind = "fire"; - bindNextKey = true; + bindNextKey = true; } else if (action.getId() == "changeAIScript") { @@ -282,9 +287,10 @@ blueSlider->setValue(double(cBlue)); } -void PlayerSetupMenu::BindKey(const gcn::Key& key) +void PlayerSetupMenu::keyPressed(const gcn::KeyEvent &keyEvent) { - int value = key.getValue(); +Log::output("keyPressd"); + int value = keyEvent.getKey().getValue(); if (value == gcn::Key::ESCAPE) { bindNextKey = false; Modified: src/renderer.cpp =================================================================== --- src/renderer.cpp 2007-07-17 03:21:11 UTC (rev 56) +++ src/renderer.cpp 2007-07-19 02:28:53 UTC (rev 57) @@ -95,6 +95,11 @@ SDL_BlitSurface( background, &area, screen, &area); } +void Renderer::EraseScreen() +{ + EraseArea(0, 0, screen->w, screen->h); +} + void Renderer::DrawEntity (Entity* e) { SDL_SetClipRect(screen,&background->clip_rect); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <col...@us...> - 2007-08-02 23:57:50
|
Revision: 58 http://balder.svn.sourceforge.net/balder/?rev=58&view=rev Author: colalord Date: 2007-08-02 16:57:52 -0700 (Thu, 02 Aug 2007) Log Message: ----------- 2 Aug-2007 - Reuben updated Windows Development Evironment Installation instructions a little. (The different library versions that have been released needs more testing for compatibilty and instructions need to be made for them.) - Reuben updated Code::Blocks project file for use with Code::Blocks version: svn build rev 4338 build: Jul 31 2007, 18:36:03 - wx2.8.4 (Windows, unicode) - Reuben updated: /bin/menu/twinkle1.png - Reuben added: /bin/menu/pulse1.png - Reuben updated: /src/menu/menu.cpp Updated: twinkleAnimation() to run at a faster speed of 100ms. Added: pulseAnimation() to play as an animation on the menu screen. - Reuben updated: /include/menu/menu.h Added: pulseAnimation(). Revision Links: -------------- http://balder.svn.sourceforge.net/balder/?rev=4338&view=rev Modified Paths: -------------- Balder2D Win32 Development Environment Setup Instructions.txt Balder2D.cbp bin/menu/twinkle1.png history.txt include/menu/menu.h src/menu/menu.cpp Added Paths: ----------- bin/menu/pulse1.png Modified: Balder2D Win32 Development Environment Setup Instructions.txt =================================================================== --- Balder2D Win32 Development Environment Setup Instructions.txt 2007-07-19 02:28:53 UTC (rev 57) +++ Balder2D Win32 Development Environment Setup Instructions.txt 2007-08-02 23:57:52 UTC (rev 58) @@ -220,9 +220,9 @@ 3. Copy from "C:\Tmp\guichan-0.4.0-mingw32\bin\guichan_sdl.dll" to "C:\Balder2D\bin\". - SDL_image DLL's 4. (DON'T NEED) Copy from "C:\Tmp\SDL_image-1.2.5\lib\jpeg.dll" to "C:\Balder2D\bin\". - 5. (DON'T NEED) Copy from "C:\Tmp\SDL_image-1.2.5\lib\libpng12.dll" to "C:\Balder2D\bin\". + 5. Copy from "C:\Tmp\SDL_image-1.2.5\lib\libpng12.dll" to "C:\Balder2D\bin\". 6. Copy from "C:\Tmp\SDL_image-1.2.5\lib\SDL_image.dll" to "C:\Balder2D\bin\". - 7. (DON'T NEED) Copy from "C:\Tmp\SDL_image-1.2.5\lib\zlib1.dll" to "C:\Balder2D\bin\". + 7. Copy from "C:\Tmp\SDL_image-1.2.5\lib\zlib1.dll" to "C:\Balder2D\bin\". - SDL_mixer version 1.2.6.0 DLL 8. Copy from "C:\Tmp\SDL_mixer-1.2.6\lib\SDL_mixer.dll" to "C:\Balder2D\bin\". - SDL_mixer version 1.2.7.0 DLL or later Modified: Balder2D.cbp =================================================================== --- Balder2D.cbp 2007-07-19 02:28:53 UTC (rev 57) +++ Balder2D.cbp 2007-08-02 23:57:52 UTC (rev 58) @@ -1,418 +1,125 @@ -<?xml version="1.0"?> -<!DOCTYPE CodeBlocks_project_file> +<?xml version="1.0" encoding="UTF-8" standalone="yes" ?> <CodeBlocks_project_file> - <FileVersion major="1" minor="1"/> + <FileVersion major="1" minor="6" /> <Project> - <Option title="Balder2D"/> - <Option makefile="Makefile"/> - <Option makefile_is_custom="0"/> - <Option compiler="0"/> + <Option title="Balder2D" /> + <Option pch_mode="0" /> + <Option compiler="gcc" /> <Build> <Target title="default"> - <Option output="bin\Balder2D.exe"/> - <Option working_dir="bin"/> - <Option object_output=".objs"/> - <Option deps_output=".deps"/> - <Option type="1"/> - <Option compiler="0"/> - <Option projectResourceIncludeDirsRelation="1"/> + <Option output="bin\Balder2D.exe" prefix_auto="0" extension_auto="0" /> + <Option working_dir="bin" /> + <Option type="1" /> + <Option compiler="gcc" /> + <Option projectResourceIncludeDirsRelation="1" /> </Target> </Build> + <VirtualTargets> + <Add alias="All" targets="default;" /> + </VirtualTargets> <Compiler> - <Add directory="C:\MinGW\include"/> - <Add directory="C:\msys\1.0\local\include"/> - <Add directory="C:\msys\1.0\local\include\SDL"/> - <Add directory="C:\Python24\include"/> + <Add directory="C:\MinGW\include" /> + <Add directory="C:\msys\1.0\local\include" /> + <Add directory="C:\msys\1.0\local\include\SDL" /> + <Add directory="C:\Python25\include" /> </Compiler> <Linker> - <Add option="-mwindows"/> - <Add library="mingw32"/> - <Add library="guichan"/> - <Add library="guichan_sdl"/> - <Add library="SDLmain"/> - <Add library="SDL_gfx"/> - <Add library="SDL"/> - <Add library="SDL_image"/> - <Add library="SDL_mixer"/> - <Add library="C:\msys\1.0\local\lib\libboost_filesystem-mgw-1_33_1.lib"/> - <Add library="python24"/> - <Add directory="C:\MinGW\lib"/> - <Add directory="C:\msys\1.0\local\lib"/> - <Add directory="C:\Python24\libs"/> + <Add option="-mwindows" /> + <Add library="mingw32" /> + <Add library="guichan" /> + <Add library="guichan_sdl" /> + <Add library="SDLmain" /> + <Add library="SDL_gfx" /> + <Add library="SDL" /> + <Add library="SDL_image" /> + <Add library="SDL_mixer" /> + <Add library="C:\msys\1.0\local\lib\libboost_filesystem-mgw-1_33_1.lib" /> + <Add library="Python25" /> + <Add directory="C:\MinGW\lib" /> + <Add directory="C:\msys\1.0\local\lib" /> + <Add directory="C:\Python25\libs" /> </Linker> - <Unit filename="include\artificialcontroller.h"> - <Option compilerVar=""/> - <Option compile="0"/> - <Option link="0"/> - <Option target="default"/> - </Unit> - <Unit filename="include\balder2dtypes.h"> - <Option compilerVar=""/> - <Option compile="0"/> - <Option link="0"/> - <Option target="default"/> - </Unit> - <Unit filename="include\collisionmask.h"> - <Option compilerVar=""/> - <Option compile="0"/> - <Option link="0"/> - <Option target="default"/> - </Unit> - <Unit filename="include\computerprobecontrol.h"> - <Option compilerVar=""/> - <Option compile="0"/> - <Option link="0"/> - <Option target="default"/> - </Unit> - <Unit filename="include\configmanager.h"> - <Option compilerVar=""/> - <Option compile="0"/> - <Option link="0"/> - <Option target="default"/> - </Unit> - <Unit filename="include\entity.h"> - <Option compilerVar=""/> - <Option compile="0"/> - <Option link="0"/> - <Option target="default"/> - </Unit> - <Unit filename="include\gamemanager.h"> - <Option compilerVar=""/> - <Option compile="0"/> - <Option link="0"/> - <Option target="default"/> - </Unit> - <Unit filename="include\input.h"> - <Option compilerVar=""/> - <Option compile="0"/> - <Option link="0"/> - <Option target="default"/> - </Unit> - <Unit filename="include\log.h"> - <Option compilerVar=""/> - <Option compile="0"/> - <Option link="0"/> - <Option target="default"/> - </Unit> - <Unit filename="include\mapparser.h"> - <Option compilerVar=""/> - <Option compile="0"/> - <Option link="0"/> - <Option target="default"/> - </Unit> - <Unit filename="include\menu\ailistmodel.h"> - <Option compilerVar=""/> - <Option compile="0"/> - <Option link="0"/> - <Option target="default"/> - </Unit> - <Unit filename="include\menu\animationwidget.h"> - <Option compilerVar=""/> - <Option compile="0"/> - <Option link="0"/> - <Option target="default"/> - </Unit> - <Unit filename="include\menu\gamesetup.h"> - <Option compilerVar=""/> - <Option compile="0"/> - <Option link="0"/> - <Option target="default"/> - </Unit> - <Unit filename="include\menu\mainmenu.h"> - <Option compilerVar=""/> - <Option compile="0"/> - <Option link="0"/> - <Option target="default"/> - </Unit> - <Unit filename="include\menu\maplistmodel.h"> - <Option compilerVar=""/> - <Option compile="0"/> - <Option link="0"/> - <Option target="default"/> - </Unit> - <Unit filename="include\menu\menu.h"> - <Option compilerVar=""/> - <Option compile="0"/> - <Option link="0"/> - <Option target="default"/> - </Unit> - <Unit filename="include\menu\numberfield.h"> - <Option compilerVar=""/> - <Option compile="0"/> - <Option link="0"/> - <Option target="default"/> - </Unit> - <Unit filename="include\menu\options.h"> - <Option compilerVar=""/> - <Option compile="0"/> - <Option link="0"/> - <Option target="default"/> - </Unit> - <Unit filename="include\menu\playersetup.h"> - <Option compilerVar=""/> - <Option compile="0"/> - <Option link="0"/> - <Option target="default"/> - </Unit> - <Unit filename="include\menu\samplemapwidget.h"> - <Option compilerVar=""/> - <Option compile="0"/> - <Option link="0"/> - <Option target="default"/> - </Unit> - <Unit filename="include\menu\sampleprobewidget.h"> - <Option compilerVar=""/> - <Option compile="0"/> - <Option link="0"/> - <Option target="default"/> - </Unit> - <Unit filename="include\menu\skinnedbuttonwidget.h"> - <Option compilerVar=""/> - <Option compile="0"/> - <Option link="0"/> - <Option target="default"/> - </Unit> - <Unit filename="include\menu\soundvideo.h"> - <Option compilerVar=""/> - <Option compile="0"/> - <Option link="0"/> - <Option target="default"/> - </Unit> - <Unit filename="include\menu\submenu.h"> - <Option compilerVar=""/> - <Option compile="0"/> - <Option link="0"/> - <Option target="default"/> - </Unit> - <Unit filename="include\player.h"> - <Option compilerVar=""/> - <Option compile="0"/> - <Option link="0"/> - <Option target="default"/> - </Unit> - <Unit filename="include\powerup.h"> - <Option compilerVar=""/> - <Option compile="0"/> - <Option link="0"/> - <Option target="default"/> - </Unit> - <Unit filename="include\powerupfactory.h"> - <Option compilerVar=""/> - <Option compile="0"/> - <Option link="0"/> - <Option target="default"/> - </Unit> - <Unit filename="include\probe.h"> - <Option compilerVar=""/> - <Option compile="0"/> - <Option link="0"/> - <Option target="default"/> - </Unit> - <Unit filename="include\probefactory.h"> - <Option compilerVar=""/> - <Option compile="0"/> - <Option link="0"/> - <Option target="default"/> - </Unit> - <Unit filename="include\projectile.h"> - <Option compilerVar=""/> - <Option compile="0"/> - <Option link="0"/> - <Option target="default"/> - </Unit> - <Unit filename="include\projectilefactory.h"> - <Option compilerVar=""/> - <Option compile="0"/> - <Option link="0"/> - <Option target="default"/> - </Unit> - <Unit filename="include\renderer.h"> - <Option compilerVar=""/> - <Option compile="0"/> - <Option link="0"/> - <Option target="default"/> - </Unit> - <Unit filename="include\soundmanager.h"> - <Option compilerVar=""/> - <Option compile="0"/> - <Option link="0"/> - <Option target="default"/> - </Unit> - <Unit filename="src\SFont\Font.h"> - <Option compilerVar=""/> - <Option compile="0"/> - <Option link="0"/> - <Option target="default"/> - </Unit> + <Unit filename="include\artificialcontroller.h" /> + <Unit filename="include\balder2dtypes.h" /> + <Unit filename="include\collisionmask.h" /> + <Unit filename="include\computerprobecontrol.h" /> + <Unit filename="include\configmanager.h" /> + <Unit filename="include\entity.h" /> + <Unit filename="include\gamemanager.h" /> + <Unit filename="include\input.h" /> + <Unit filename="include\log.h" /> + <Unit filename="include\mapparser.h" /> + <Unit filename="include\menu\ailistmodel.h" /> + <Unit filename="include\menu\animationwidget.h" /> + <Unit filename="include\menu\gamesetup.h" /> + <Unit filename="include\menu\mainmenu.h" /> + <Unit filename="include\menu\maplistmodel.h" /> + <Unit filename="include\menu\menu.h" /> + <Unit filename="include\menu\numberfield.h" /> + <Unit filename="include\menu\options.h" /> + <Unit filename="include\menu\playersetup.h" /> + <Unit filename="include\menu\samplemapwidget.h" /> + <Unit filename="include\menu\sampleprobewidget.h" /> + <Unit filename="include\menu\skinnedbuttonwidget.h" /> + <Unit filename="include\menu\soundvideo.h" /> + <Unit filename="include\menu\submenu.h" /> + <Unit filename="include\player.h" /> + <Unit filename="include\powerup.h" /> + <Unit filename="include\powerupfactory.h" /> + <Unit filename="include\probe.h" /> + <Unit filename="include\probefactory.h" /> + <Unit filename="include\projectile.h" /> + <Unit filename="include\projectilefactory.h" /> + <Unit filename="include\renderer.h" /> + <Unit filename="include\soundmanager.h" /> + <Unit filename="src\SFont\Font.h" /> <Unit filename="src\SFont\SFont.c"> - <Option compilerVar="CC"/> - <Option target="default"/> + <Option compilerVar="CC" /> </Unit> - <Unit filename="src\SFont\SFont.h"> - <Option compilerVar=""/> - <Option compile="0"/> - <Option link="0"/> - <Option target="default"/> - </Unit> - <Unit filename="src\artificialcontroller.cpp"> - <Option compilerVar="CPP"/> - <Option target="default"/> - </Unit> - <Unit filename="src\collisionmask.cpp"> - <Option compilerVar="CPP"/> - <Option target="default"/> - </Unit> - <Unit filename="src\computerprobecontrol.cpp"> - <Option compilerVar="CPP"/> - <Option target="default"/> - </Unit> - <Unit filename="src\configmanager.cpp"> - <Option compilerVar="CPP"/> - <Option target="default"/> - </Unit> - <Unit filename="src\entity.cpp"> - <Option compilerVar="CPP"/> - <Option target="default"/> - </Unit> - <Unit filename="src\gamemanager.cpp"> - <Option compilerVar="CPP"/> - <Option target="default"/> - </Unit> - <Unit filename="src\input.cpp"> - <Option compilerVar="CPP"/> - <Option target="default"/> - </Unit> - <Unit filename="src\log.cpp"> - <Option compilerVar="CPP"/> - <Option target="default"/> - </Unit> - <Unit filename="src\main.cpp"> - <Option compilerVar="CPP"/> - <Option target="default"/> - </Unit> - <Unit filename="src\mapparser.cpp"> - <Option compilerVar="CPP"/> - <Option target="default"/> - </Unit> - <Unit filename="src\menu\ailistmodel.cpp"> - <Option compilerVar="CPP"/> - <Option target="default"/> - </Unit> - <Unit filename="src\menu\animationwidget.cpp"> - <Option compilerVar="CPP"/> - <Option target="default"/> - </Unit> - <Unit filename="src\menu\gamesetup.cpp"> - <Option compilerVar="CPP"/> - <Option target="default"/> - </Unit> - <Unit filename="src\menu\mainmenu.cpp"> - <Option compilerVar="CPP"/> - <Option target="default"/> - </Unit> - <Unit filename="src\menu\maplistmodel.cpp"> - <Option compilerVar="CPP"/> - <Option target="default"/> - </Unit> - <Unit filename="src\menu\menu.cpp"> - <Option compilerVar="CPP"/> - <Option target="default"/> - </Unit> - <Unit filename="src\menu\numberfield.cpp"> - <Option compilerVar="CPP"/> - <Option target="default"/> - </Unit> - <Unit filename="src\menu\options.cpp"> - <Option compilerVar="CPP"/> - <Option target="default"/> - </Unit> - <Unit filename="src\menu\playersetup.cpp"> - <Option compilerVar="CPP"/> - <Option target="default"/> - </Unit> - <Unit filename="src\menu\samplemapwidget.cpp"> - <Option compilerVar="CPP"/> - <Option target="default"/> - </Unit> - <Unit filename="src\menu\sampleprobewidget.cpp"> - <Option compilerVar="CPP"/> - <Option target="default"/> - </Unit> - <Unit filename="src\menu\skinnedbuttonwidget.cpp"> - <Option compilerVar="CPP"/> - <Option target="default"/> - </Unit> - <Unit filename="src\menu\soundvideo.cpp"> - <Option compilerVar="CPP"/> - <Option target="default"/> - </Unit> - <Unit filename="src\menu\submenu.cpp"> - <Option compilerVar="CPP"/> - <Option target="default"/> - </Unit> - <Unit filename="src\player.cpp"> - <Option compilerVar="CPP"/> - <Option target="default"/> - </Unit> - <Unit filename="src\powerup.cpp"> - <Option compilerVar="CPP"/> - <Option target="default"/> - </Unit> - <Unit filename="src\powerupfactory.cpp"> - <Option compilerVar="CPP"/> - <Option target="default"/> - </Unit> - <Unit filename="src\probe.cpp"> - <Option compilerVar="CPP"/> - <Option target="default"/> - </Unit> - <Unit filename="src\probefactory.cpp"> - <Option compilerVar="CPP"/> - <Option target="default"/> - </Unit> - <Unit filename="src\projectile.cpp"> - <Option compilerVar="CPP"/> - <Option target="default"/> - </Unit> - <Unit filename="src\projectilefactory.cpp"> - <Option compilerVar="CPP"/> - <Option target="default"/> - </Unit> - <Unit filename="src\renderer.cpp"> - <Option compilerVar="CPP"/> - <Option target="default"/> - </Unit> - <Unit filename="src\soundmanager.cpp"> - <Option compilerVar="CPP"/> - <Option target="default"/> - </Unit> - <Unit filename="src\tinyxml\tinystr.cpp"> - <Option compilerVar="CPP"/> - <Option target="default"/> - </Unit> - <Unit filename="src\tinyxml\tinystr.h"> - <Option compilerVar=""/> - <Option compile="0"/> - <Option link="0"/> - <Option target="default"/> - </Unit> - <Unit filename="src\tinyxml\tinyxml.cpp"> - <Option compilerVar="CPP"/> - <Option target="default"/> - </Unit> - <Unit filename="src\tinyxml\tinyxml.h"> - <Option compilerVar=""/> - <Option compile="0"/> - <Option link="0"/> - <Option target="default"/> - </Unit> - <Unit filename="src\tinyxml\tinyxmlerror.cpp"> - <Option compilerVar="CPP"/> - <Option target="default"/> - </Unit> - <Unit filename="src\tinyxml\tinyxmlparser.cpp"> - <Option compilerVar="CPP"/> - <Option target="default"/> - </Unit> + <Unit filename="src\SFont\SFont.h" /> + <Unit filename="src\artificialcontroller.cpp" /> + <Unit filename="src\collisionmask.cpp" /> + <Unit filename="src\computerprobecontrol.cpp" /> + <Unit filename="src\configmanager.cpp" /> + <Unit filename="src\entity.cpp" /> + <Unit filename="src\gamemanager.cpp" /> + <Unit filename="src\input.cpp" /> + <Unit filename="src\log.cpp" /> + <Unit filename="src\main.cpp" /> + <Unit filename="src\mapparser.cpp" /> + <Unit filename="src\menu\ailistmodel.cpp" /> + <Unit filename="src\menu\animationwidget.cpp" /> + <Unit filename="src\menu\gamesetup.cpp" /> + <Unit filename="src\menu\mainmenu.cpp" /> + <Unit filename="src\menu\maplistmodel.cpp" /> + <Unit filename="src\menu\menu.cpp" /> + <Unit filename="src\menu\numberfield.cpp" /> + <Unit filename="src\menu\options.cpp" /> + <Unit filename="src\menu\playersetup.cpp" /> + <Unit filename="src\menu\samplemapwidget.cpp" /> + <Unit filename="src\menu\sampleprobewidget.cpp" /> + <Unit filename="src\menu\skinnedbuttonwidget.cpp" /> + <Unit filename="src\menu\soundvideo.cpp" /> + <Unit filename="src\menu\submenu.cpp" /> + <Unit filename="src\player.cpp" /> + <Unit filename="src\powerup.cpp" /> + <Unit filename="src\powerupfactory.cpp" /> + <Unit filename="src\probe.cpp" /> + <Unit filename="src\probefactory.cpp" /> + <Unit filename="src\projectile.cpp" /> + <Unit filename="src\projectilefactory.cpp" /> + <Unit filename="src\renderer.cpp" /> + <Unit filename="src\soundmanager.cpp" /> + <Unit filename="src\tinyxml\tinystr.cpp" /> + <Unit filename="src\tinyxml\tinystr.h" /> + <Unit filename="src\tinyxml\tinyxml.cpp" /> + <Unit filename="src\tinyxml\tinyxml.h" /> + <Unit filename="src\tinyxml\tinyxmlerror.cpp" /> + <Unit filename="src\tinyxml\tinyxmlparser.cpp" /> + <Extensions> + <code_completion /> + <envvars /> + <debugger /> + </Extensions> </Project> </CodeBlocks_project_file> Added: bin/menu/pulse1.png =================================================================== (Binary files differ) Property changes on: bin/menu/pulse1.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Modified: bin/menu/twinkle1.png =================================================================== (Binary files differ) Modified: history.txt =================================================================== --- history.txt 2007-07-19 02:28:53 UTC (rev 57) +++ history.txt 2007-08-02 23:57:52 UTC (rev 58) @@ -3,6 +3,21 @@ History entries are in reverse chronological order (newest entries first). +2 Aug-2007 + - Reuben updated Windows Development Evironment Installation instructions + a little. (The different library versions that have been released needs + more testing for compatibilty and instructions need to be made for them.) + - Reuben updated Code::Blocks project file for use with Code::Blocks + version: svn build rev 4338 + build: Jul 31 2007, 18:36:03 - wx2.8.4 (Windows, unicode) + - Reuben updated: /bin/menu/twinkle1.png + - Reuben added: /bin/menu/pulse1.png + - Reuben updated: /src/menu/menu.cpp + Updated: twinkleAnimation() to run at a faster speed of 100ms. + Added: pulseAnimation() to play as an animation on the menu screen. + - Reuben updated: /include/menu/menu.h + Added: pulseAnimation(). + 18 July-2007 - Bjorn applied a patch from Alexander Clausen which adds support for pausing the game using the Pause key. Modified: include/menu/menu.h =================================================================== --- include/menu/menu.h 2007-07-19 02:28:53 UTC (rev 57) +++ include/menu/menu.h 2007-08-02 23:57:52 UTC (rev 58) @@ -60,7 +60,8 @@ gcn::ImageFont* font; // A font gcn::Container* topContainer; // A top container // stuff that goes in the top container - AnimationWidget* twinkleAnimation; // to display animated background + AnimationWidget* pulseAnimation; // to display background anitmation + AnimationWidget* twinkleAnimation; // to display background anitmation gcn::Icon* headerIcon; // to show a title image gcn::Image* headerImage; // the image to use gcn::Icon* backgroundIcon; Modified: src/menu/menu.cpp =================================================================== --- src/menu/menu.cpp 2007-07-19 02:28:53 UTC (rev 57) +++ src/menu/menu.cpp 2007-08-02 23:57:52 UTC (rev 58) @@ -69,17 +69,23 @@ // The global font is static and must be set. gcn::Widget::setGlobalFont(font); // create top level wigets we want on all menus - twinkleAnimation = new AnimationWidget(/* Film Strip File Name */"menu/twinkle1.png", - /* Has Base Frame */true, /* Is Looped */true, /* Play when finished loading */true, - /* Strip Location */ 0, /* Frame Width */100, /* Frame Height */100, /* Base Frame Index */0, - /* Starting Frame Index */1, /* Animation Frame Quantity Including Starting Frame */3, - /* Frame Interval in MS (1Sec == 1000MS) */1000); + pulseAnimation = new AnimationWidget(/* Film Strip File Name */"menu/pulse1.png", + /* Has Base Frame */true, /* Is Looped */true, /* Play when finished loading */true, + /* Strip Location */ 0, /* Frame Width */100, /* Frame Height */100, /* Base Frame Index */0, + /* Starting Frame Index */1, /* Animation Frame Quantity Including Starting Frame */3, + /* Frame Interval in MS (1Sec == 1000MS) */115); + twinkleAnimation = new AnimationWidget(/* Film Strip File Name */"menu/twinkle1.png", + /* Has Base Frame */true, /* Is Looped */true, /* Play when finished loading */true, + /* Strip Location */ 0, /* Frame Width */100, /* Frame Height */100, /* Base Frame Index */0, + /* Starting Frame Index */1, /* Animation Frame Quantity Including Starting Frame */3, + /* Frame Interval in MS (1Sec == 1000MS) */100); backgroundImage = gcn::Image::load("menu/menubackground.png"); backgroundIcon = new gcn::Icon(backgroundImage); headerImage = gcn::Image::load("menu/balderheader.png"); headerIcon = new gcn::Icon(headerImage); topContainer->add(backgroundIcon, 0, 0); - topContainer->add(twinkleAnimation,600,420); + topContainer->add(pulseAnimation,575,50); + topContainer->add(twinkleAnimation,600,420); topContainer->add(headerIcon, 250, 40); // now initialize menus This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <col...@us...> - 2007-08-03 22:20:10
|
Revision: 59 http://balder.svn.sourceforge.net/balder/?rev=59&view=rev Author: colalord Date: 2007-08-03 15:20:11 -0700 (Fri, 03 Aug 2007) Log Message: ----------- 3 Aug-2007 - Reuben updated: /src/menu/menu.cpp Updated: twinkleAnimation() to run at a faster speed of 1ms. Modified Paths: -------------- history.txt src/menu/menu.cpp Modified: history.txt =================================================================== --- history.txt 2007-08-02 23:57:52 UTC (rev 58) +++ history.txt 2007-08-03 22:20:11 UTC (rev 59) @@ -3,6 +3,10 @@ History entries are in reverse chronological order (newest entries first). +3 Aug-2007 + - Reuben updated: /src/menu/menu.cpp + Updated: twinkleAnimation() to run at a faster speed of 1ms. + 2 Aug-2007 - Reuben updated Windows Development Evironment Installation instructions a little. (The different library versions that have been released needs Modified: src/menu/menu.cpp =================================================================== --- src/menu/menu.cpp 2007-08-02 23:57:52 UTC (rev 58) +++ src/menu/menu.cpp 2007-08-03 22:20:11 UTC (rev 59) @@ -78,7 +78,7 @@ /* Has Base Frame */true, /* Is Looped */true, /* Play when finished loading */true, /* Strip Location */ 0, /* Frame Width */100, /* Frame Height */100, /* Base Frame Index */0, /* Starting Frame Index */1, /* Animation Frame Quantity Including Starting Frame */3, - /* Frame Interval in MS (1Sec == 1000MS) */100); + /* Frame Interval in MS (1Sec == 1000MS) */1); backgroundImage = gcn::Image::load("menu/menubackground.png"); backgroundIcon = new gcn::Icon(backgroundImage); headerImage = gcn::Image::load("menu/balderheader.png"); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <col...@us...> - 2007-08-15 23:58:45
|
Revision: 60 http://balder.svn.sourceforge.net/balder/?rev=60&view=rev Author: colalord Date: 2007-08-15 16:58:48 -0700 (Wed, 15 Aug 2007) Log Message: ----------- 15 Aug-2007 - Reuben updated: /src/menu/gamesetup.cpp Updated: mapDropDown width to 400. Modified Paths: -------------- history.txt src/menu/gamesetup.cpp Modified: history.txt =================================================================== --- history.txt 2007-08-03 22:20:11 UTC (rev 59) +++ history.txt 2007-08-15 23:58:48 UTC (rev 60) @@ -3,6 +3,10 @@ History entries are in reverse chronological order (newest entries first). +15 Aug-2007 + - Reuben updated: /src/menu/gamesetup.cpp + Updated: mapDropDown width to 400. + 3 Aug-2007 - Reuben updated: /src/menu/menu.cpp Updated: twinkleAnimation() to run at a faster speed of 1ms. Modified: src/menu/gamesetup.cpp =================================================================== --- src/menu/gamesetup.cpp 2007-08-03 22:20:11 UTC (rev 59) +++ src/menu/gamesetup.cpp 2007-08-15 23:58:48 UTC (rev 60) @@ -42,7 +42,7 @@ mapListBox->setActionEventId("selectNewMap"); mapListBox->addActionListener(this); mapDropDown = new gcn::DropDown(maplistModel, mapScrollArea, mapListBox); - mapDropDown->setWidth(mapListBox->getWidth()+20); + mapDropDown->setWidth(400); mapDropDown->setSelected(maplistModel->FindMapIndex(ConfigManager::GetMap())); int score = ConfigManager::GetIntValue("GameSetup", "ScoreLimit"); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <hol...@us...> - 2007-08-17 04:22:08
|
Revision: 63 http://balder.svn.sourceforge.net/balder/?rev=63&view=rev Author: holomorph Date: 2007-08-16 21:22:06 -0700 (Thu, 16 Aug 2007) Log Message: ----------- fixed keybinding by tab selection segfault Modified Paths: -------------- history.txt src/menu/playersetup.cpp Modified: history.txt =================================================================== --- history.txt 2007-08-17 04:00:38 UTC (rev 62) +++ history.txt 2007-08-17 04:22:06 UTC (rev 63) @@ -4,6 +4,8 @@ History entries are in reverse chronological order (newest entries first). 16 Aug-2007 + - Bjorn fixed the crash when using the keyboard to select keybinding + buttons due to uninitialized value of bindNextKey. - Bjorn updated SConstruct to remove gne library path. - Reuben updated: /src/menu/playersetup.cpp & /src/menu/playersetup.h Updated: void PlayerSetupMenu::keyPressed(gcn::KeyEvent &keyEvent) so Modified: src/menu/playersetup.cpp =================================================================== --- src/menu/playersetup.cpp 2007-08-17 04:00:38 UTC (rev 62) +++ src/menu/playersetup.cpp 2007-08-17 04:22:06 UTC (rev 63) @@ -29,14 +29,13 @@ using namespace Balder; -PlayerSetupMenu::PlayerSetupMenu(gcn::Container* top, SubMenu* parent):SubMenu(top,parent) +PlayerSetupMenu::PlayerSetupMenu(gcn::Container* top, SubMenu* parent):SubMenu(top,parent),currentPlayer(1), bindNextKey(false) { backButton = new SkinnedButtonWidget("Back", "menu/buttonskins.png", 80); backButton->setWidth(150); backButton->setActionEventId("back"); backButton->addActionListener(this); - currentPlayer = 1; std::stringstream ss; ss << "Player " << currentPlayer; currentPlayerLabel = new gcn::Label(ss.str()); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <hol...@us...> - 2007-08-19 07:41:01
|
Revision: 64 http://balder.svn.sourceforge.net/balder/?rev=64&view=rev Author: holomorph Date: 2007-08-19 00:41:03 -0700 (Sun, 19 Aug 2007) Log Message: ----------- fixed keybinding still being in effect when something else is clicked on Modified Paths: -------------- history.txt src/menu/playersetup.cpp Modified: history.txt =================================================================== --- history.txt 2007-08-17 04:22:06 UTC (rev 63) +++ history.txt 2007-08-19 07:41:03 UTC (rev 64) @@ -3,6 +3,11 @@ History entries are in reverse chronological order (newest entries first). +19 Aug-2007 + - Bjorn set bindNextKey to false at the beginning of the action handler + for the player setup menu and refreshed the keys so that doing anything + other than pressing a key to bind will cancel the keybinding. + 16 Aug-2007 - Bjorn fixed the crash when using the keyboard to select keybinding buttons due to uninitialized value of bindNextKey. Modified: src/menu/playersetup.cpp =================================================================== --- src/menu/playersetup.cpp 2007-08-17 04:22:06 UTC (rev 63) +++ src/menu/playersetup.cpp 2007-08-19 07:41:03 UTC (rev 64) @@ -170,6 +170,8 @@ void PlayerSetupMenu::action(const gcn::ActionEvent& action) { + bindNextKey = false; // so key binding gets cancelled when non-bind actions are called. + RefreshKeys(); // Player options menu events.********************************************** if (action.getId() == "nextPlayer") { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <hol...@us...> - 2007-10-01 05:48:17
|
Revision: 65 http://balder.svn.sourceforge.net/balder/?rev=65&view=rev Author: holomorph Date: 2007-09-30 22:48:19 -0700 (Sun, 30 Sep 2007) Log Message: ----------- added imageloader to abstract the loading of images from the rest of the code, which will make it easier to make things location independant Modified Paths: -------------- SConstruct src/collisionmask.cpp src/main.cpp src/menu/animationwidget.cpp src/menu/samplemapwidget.cpp src/menu/skinnedbuttonwidget.cpp src/player.cpp src/powerupfactory.cpp src/probefactory.cpp src/projectilefactory.cpp src/renderer.cpp Added Paths: ----------- include/imageloader.h src/imageloader.cpp Modified: SConstruct =================================================================== --- SConstruct 2007-08-19 07:41:03 UTC (rev 64) +++ SConstruct 2007-10-01 05:48:19 UTC (rev 65) @@ -1,5 +1,5 @@ # SConstruct for building balder2d with scons -includepath = ['/usr/include/python2.4'] +includepath = ['/usr/include/python2.4','include'] env = Environment(CPPPATH=includepath) #avoid leaving .sconsign files all over the place, put all signatures in: env.SConsignFile("scons-signatures") Added: include/imageloader.h =================================================================== --- include/imageloader.h (rev 0) +++ include/imageloader.h 2007-10-01 05:48:19 UTC (rev 65) @@ -0,0 +1,34 @@ +/*************************************************************************** + * Copyright (C) 2007 by Bjorn Hansen * + * hol...@us... * + * * + * This program is free software; you can redistribute it and/or modify * + * it under the terms of the GNU General Public License as published by * + * the Free Software Foundation; either version 2 of the License, or * + * (at your option) any later version. * + * * + * This program is distributed in the hope that it will be useful, * + * but WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * + * GNU General Public License for more details. * + * * + * You should have received a copy of the GNU General Public License * + * along with this program; if not, write to the * + * Free Software Foundation, Inc., * + * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * + ***************************************************************************/ + +#ifndef IMAGELOADER_H +#define IMAGELOADER_H + +#include <SDL/SDL_image.h> + +namespace Balder{ + +class ImageLoader{ +public: + static SDL_Surface* LoadImage(const char* imagename); +}; +} +#endif // LOG_H + Modified: src/collisionmask.cpp =================================================================== --- src/collisionmask.cpp 2007-08-19 07:41:03 UTC (rev 64) +++ src/collisionmask.cpp 2007-10-01 05:48:19 UTC (rev 65) @@ -21,6 +21,7 @@ #include <SDL/SDL.h> #include <SDL/SDL_image.h> #include "../include/collisionmask.h" +#include "../include/imageloader.h" #include <string> using namespace Balder; @@ -31,13 +32,13 @@ filename += mapname; filename += "/"; filename += "geometry.png"; - SDL_Surface *field = IMG_Load(filename.c_str()); + SDL_Surface *field = ImageLoader::LoadImage(filename.c_str()); if (!field) throw "invalid surface used to create collision mask"; width = field->w; height = field->h; // allocate memory for the mask mask = new bool[width * height]; - + int bpp = field->format->BytesPerPixel; for (int x = 0; x < width; x++) { Added: src/imageloader.cpp =================================================================== --- src/imageloader.cpp (rev 0) +++ src/imageloader.cpp 2007-10-01 05:48:19 UTC (rev 65) @@ -0,0 +1,30 @@ +/*************************************************************************** + * Copyright (C) 2007 by Bjorn Hansen * + * hol...@us... * + * * + * This program is free software; you can redistribute it and/or modify * + * it under the terms of the GNU General Public License as published by * + * the Free Software Foundation; either version 2 of the License, or * + * (at your option) any later version. * + * * + * This program is distributed in the hope that it will be useful, * + * but WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * + * GNU General Public License for more details. * + * * + * You should have received a copy of the GNU General Public License * + * along with this program; if not, write to the * + * Free Software Foundation, Inc., * + * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * + ***************************************************************************/ + +#include "../include/imageloader.h" +#include "../include/log.h" +#include <physfs.h> + +using namespace Balder; + +SDL_Surface* ImageLoader::LoadImage(const char* imagename) +{ + return IMG_Load(imagename); +} Modified: src/main.cpp =================================================================== --- src/main.cpp 2007-08-19 07:41:03 UTC (rev 64) +++ src/main.cpp 2007-10-01 05:48:19 UTC (rev 65) @@ -27,6 +27,7 @@ #include "../include/soundmanager.h" #include "../include/configmanager.h" #include "../include/menu/menu.h" +#include "../include/imageloader.h" #include "../include/log.h" using namespace std; @@ -51,7 +52,7 @@ fflush(stdout); exit(1); } - + Log::output("Initializing SDL." ); /* Initializes Audio and Video */ if(SDL_Init(SDL_INIT_VIDEO | SDL_INIT_AUDIO | SDL_INIT_JOYSTICK)< 0) @@ -65,11 +66,11 @@ Log::output("Audio & video initialized correctly" ); } atexit(SDL_Quit); - SDL_WM_SetIcon(IMG_Load("icon.png"), NULL); + SDL_WM_SetIcon(ImageLoader::LoadImage("icon.png"), NULL); SDL_WM_SetCaption("Balder 2D","balder2d"); // We want unicode SDL_EnableUNICODE(1); - + // create the renderer Renderer *render; try @@ -88,7 +89,7 @@ Log::output("failed to create renderer" ); exit(1); } - + // create the sound manager SoundManager* sound; try @@ -102,14 +103,14 @@ fflush(stdout); exit(1); } - + catch (const char *message) { Log::output(message ); fflush(stdout); exit(1); } - + // create the menu Menu* menu; try @@ -123,9 +124,9 @@ fflush(stdout); exit(1); } - - // open the menu, let the user configure the game, then create a - // new GameManager for each game, run the game, delete the GameManager + + // open the menu, let the user configure the game, then create a + // new GameManager for each game, run the game, delete the GameManager // and open the menu again. Repeat until the user wants to quit while(menu->Run()) { Modified: src/menu/animationwidget.cpp =================================================================== --- src/menu/animationwidget.cpp 2007-08-19 07:41:03 UTC (rev 64) +++ src/menu/animationwidget.cpp 2007-10-01 05:48:19 UTC (rev 65) @@ -23,6 +23,7 @@ #include <SDL/SDL.h> #include <SDL/SDL_image.h> #include "../../include/menu/animationwidget.h" +#include "../../include/imageloader.h" using namespace Balder; AnimationWidget::AnimationWidget(std::string aFileName, bool aHasBaseFrame, @@ -45,7 +46,7 @@ frameCurrent = 0; // Load Animation Frame Strip from File. - animationFrameStrip = IMG_Load(animationFileName.c_str()); + animationFrameStrip = ImageLoader::LoadImage(animationFileName.c_str()); if (animationFrameStrip == 0) { throw "could not load animation!"; } Modified: src/menu/samplemapwidget.cpp =================================================================== --- src/menu/samplemapwidget.cpp 2007-08-19 07:41:03 UTC (rev 64) +++ src/menu/samplemapwidget.cpp 2007-10-01 05:48:19 UTC (rev 65) @@ -25,6 +25,7 @@ #include <SDL/SDL_image.h> #include <SDL/SDL_rotozoom.h> #include "../../include/menu/samplemapwidget.h" +#include "../../include/imageloader.h" using namespace Balder; @@ -48,7 +49,7 @@ { // load map background. std::string mapFileName = "maps/" + name + "/background.png"; - SDL_Surface* tempSurf = IMG_Load(mapFileName.c_str()); + SDL_Surface* tempSurf = ImageLoader::LoadImage(mapFileName.c_str()); if (tempSurf == 0) { throw "could not load sample background!"; } Modified: src/menu/skinnedbuttonwidget.cpp =================================================================== --- src/menu/skinnedbuttonwidget.cpp 2007-08-19 07:41:03 UTC (rev 64) +++ src/menu/skinnedbuttonwidget.cpp 2007-10-01 05:48:19 UTC (rev 65) @@ -23,16 +23,17 @@ #include <guichan/font.hpp> #include <SDL/SDL.h> #include <SDL/SDL_image.h> -#include "../../include/menu/skinnedbuttonwidget.h" +#include "menu/skinnedbuttonwidget.h" +#include "imageloader.h" using namespace Balder; -SkinnedButtonWidget::SkinnedButtonWidget(std::string bC, std::string sFN, unsigned int sSL): +SkinnedButtonWidget::SkinnedButtonWidget(std::string bC, std::string sFN, unsigned int sSL): gcn::Button(bC), skinFileName(sFN), skinStripLocation(sSL), buttonState(buttonUp) { setBorderSize(0); // Load Skin Frame Strip from File. - skinFrameStrip = IMG_Load(skinFileName.c_str()); + skinFrameStrip = ImageLoader::LoadImage(skinFileName.c_str()); if (skinFrameStrip == 0) { throw "could not load button skin!"; } Modified: src/player.cpp =================================================================== --- src/player.cpp 2007-08-19 07:41:03 UTC (rev 64) +++ src/player.cpp 2007-10-01 05:48:19 UTC (rev 65) @@ -25,6 +25,7 @@ #include "../include/probe.h" #include "../include/input.h" #include "../include/gamemanager.h" +#include "../include/imageloader.h" #include "SFont/Font.h" #include <sstream> @@ -40,11 +41,11 @@ Player::Player(player_id id, GameManager* gm): game_manager(gm), id(id), probe(0), score(0) { if (!scoreFont){ - scoreFontImage = IMG_Load("SFont/scorefont.png"); + scoreFontImage = ImageLoader::LoadImage("SFont/scorefont.png"); scoreFont = new Font(scoreFontImage); } if (!lifeFont){ - lifeFontImage = IMG_Load("SFont/lifefont.png"); + lifeFontImage = ImageLoader::LoadImage("SFont/lifefont.png"); lifeFont = new Font(lifeFontImage); } ++numPlayers; Modified: src/powerupfactory.cpp =================================================================== --- src/powerupfactory.cpp 2007-08-19 07:41:03 UTC (rev 64) +++ src/powerupfactory.cpp 2007-10-01 05:48:19 UTC (rev 65) @@ -17,7 +17,7 @@ * Free Software Foundation, Inc., * * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * ***************************************************************************/ - + #include <stdlib.h> #include <math.h> #include <SDL/SDL.h> @@ -26,13 +26,14 @@ #include "../include/renderer.h" #include "../include/powerup.h" #include "../include/collisionmask.h" +#include "../include/imageloader.h" using namespace Balder; // class constructor PowerUpFactory::PowerUpFactory(Renderer* render) { - sprite = IMG_Load("powerups.png"); + sprite = ImageLoader::LoadImage("powerups.png"); if (sprite == 0) { throw "could not load PowerUp sprite!"; @@ -57,10 +58,10 @@ { srand(seed); int x = rand()%collision_mask->GetWidth(); - int y = rand()%collision_mask->GetHeight(); + int y = rand()%collision_mask->GetHeight(); while (collision_mask->TestPixel(x, y)) { x = rand()%collision_mask->GetWidth(); - y = rand()%collision_mask->GetHeight(); + y = rand()%collision_mask->GetHeight(); } int type = static_cast<int>(pow(2,rand()%NUM_POWERUP_TYPES)); return new PowerUp(gm, x, y, 0.5-rand()%10/10.0, 0.5-rand()%10/10.0, type); Modified: src/probefactory.cpp =================================================================== --- src/probefactory.cpp 2007-08-19 07:41:03 UTC (rev 64) +++ src/probefactory.cpp 2007-10-01 05:48:19 UTC (rev 65) @@ -24,13 +24,14 @@ #include "../include/renderer.h" #include "../include/soundmanager.h" #include "../include/probe.h" +#include "../include/imageloader.h" using namespace Balder; // class constructor ProbeFactory::ProbeFactory(Renderer* render, SoundManager* sound) { - sprite = IMG_Load("probe.png"); + sprite = ImageLoader::LoadImage("probe.png"); if (sprite == 0) { throw "could not load Probe sprite!"; @@ -55,7 +56,7 @@ /** * creates a Probe */ -Probe* ProbeFactory::CreateProbe(GameManager* gm, double x_position, double y_position, +Probe* ProbeFactory::CreateProbe(GameManager* gm, double x_position, double y_position, double x_velocity, double y_velocity, bool stuck, probe_color color, player_id pid) { return new Probe(gm, x_position, y_position, x_velocity, y_velocity, stuck, color, pid); Modified: src/projectilefactory.cpp =================================================================== --- src/projectilefactory.cpp 2007-08-19 07:41:03 UTC (rev 64) +++ src/projectilefactory.cpp 2007-10-01 05:48:19 UTC (rev 65) @@ -23,13 +23,14 @@ #include "../include/projectilefactory.h" // class's header file #include "../include/renderer.h" #include "../include/projectile.h" +#include "../include/imageloader.h" using namespace Balder; // class constructor ProjectileFactory::ProjectileFactory(Renderer* render) { - sprite = IMG_Load("projectile.png"); + sprite = ImageLoader::LoadImage("projectile.png"); if (sprite == 0) { throw "could not load Projectile sprite!"; @@ -45,7 +46,7 @@ /** * creates a Projectile */ -Projectile* ProjectileFactory::CreateProjectile(GameManager* gm, double x_position, double y_position, +Projectile* ProjectileFactory::CreateProjectile(GameManager* gm, double x_position, double y_position, double x_velocity, double y_velocity, player_id pid) { return new Projectile(gm, x_position, y_position, x_velocity, y_velocity, pid); Modified: src/renderer.cpp =================================================================== --- src/renderer.cpp 2007-08-19 07:41:03 UTC (rev 64) +++ src/renderer.cpp 2007-10-01 05:48:19 UTC (rev 65) @@ -23,6 +23,7 @@ #include "SFont/Font.h" #include "../include/renderer.h" #include "../include/entity.h" +#include "../include/imageloader.h" #include <string> using namespace Balder; @@ -32,7 +33,7 @@ Renderer::Renderer() { SetScreen(800, 600); - fontImage = IMG_Load("SFont/scorefont.png"); + fontImage = ImageLoader::LoadImage("SFont/scorefont.png"); font = new Font(fontImage); } @@ -64,12 +65,12 @@ filename += mapname; filename += "/"; filename += "background.png"; - background = IMG_Load(filename.c_str()); + background = ImageLoader::LoadImage(filename.c_str()); if (background == 0) { return false; } - // render the background to the screen + // render the background to the screen SDL_BlitSurface(background, 0, screen, 0); return true; } @@ -84,7 +85,7 @@ void Renderer::DisplayText(int x, int y, std::string text) { //first, clear the area to be written on (mostly for the game timer) - + EraseArea(x-5,y, font->getTextWidth(text)+10, font->getHeight()); font->write(screen, text, x, y); } @@ -108,7 +109,7 @@ } void Renderer::EraseEntity ( Entity* e ) -{ +{ SDL_Rect *ebbox = e->GetFrame(); SDL_Rect source = {e->GetX() - ebbox->w, e->GetY() - ebbox->h, 2*ebbox->w, 2*ebbox->h}; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <hol...@us...> - 2007-10-01 05:52:12
|
Revision: 66 http://balder.svn.sourceforge.net/balder/?rev=66&view=rev Author: holomorph Date: 2007-09-30 22:52:16 -0700 (Sun, 30 Sep 2007) Log Message: ----------- removed all the ../../ garbage from my includes and just pass the compiler a -Iinclude flag so it knows to look in the "include" directory for the headers Modified Paths: -------------- include/artificialcontroller.h include/computerprobecontrol.h include/configmanager.h include/entity.h include/gamemanager.h include/input.h include/menu/menu.h include/player.h include/powerup.h include/powerupfactory.h include/probe.h include/probefactory.h include/projectile.h include/projectilefactory.h include/renderer.h include/soundmanager.h src/artificialcontroller.cpp src/collisionmask.cpp src/computerprobecontrol.cpp src/configmanager.cpp src/entity.cpp src/gamemanager.cpp src/imageloader.cpp src/input.cpp src/log.cpp src/main.cpp src/mapparser.cpp src/menu/ailistmodel.cpp src/menu/animationwidget.cpp src/menu/gamesetup.cpp src/menu/mainmenu.cpp src/menu/maplistmodel.cpp src/menu/menu.cpp src/menu/numberfield.cpp src/menu/options.cpp src/menu/playersetup.cpp src/menu/samplemapwidget.cpp src/menu/sampleprobewidget.cpp src/menu/soundvideo.cpp src/menu/submenu.cpp src/player.cpp src/powerup.cpp src/powerupfactory.cpp src/probe.cpp src/probefactory.cpp src/projectile.cpp src/projectilefactory.cpp src/renderer.cpp src/soundmanager.cpp Modified: include/artificialcontroller.h =================================================================== --- include/artificialcontroller.h 2007-10-01 05:48:19 UTC (rev 65) +++ include/artificialcontroller.h 2007-10-01 05:52:16 UTC (rev 66) @@ -17,11 +17,11 @@ * Free Software Foundation, Inc., * * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * ***************************************************************************/ - + #ifndef BALDERARTIFICIALCONTROLLER_H #define BALDERARTIFICIALCONTROLLER_H -#include "../include/balder2dtypes.h" +#include "balder2dtypes.h" #include <list> #include <string> @@ -50,7 +50,7 @@ #endif private: - ArtificialController(); // so we can't instantiate one of these + ArtificialController(); // so we can't instantiate one of these static GameManager* game_manager; static CollisionMask* geometry; static std::list<ComputerProbeControl*> controlled_probes; Modified: include/computerprobecontrol.h =================================================================== --- include/computerprobecontrol.h 2007-10-01 05:48:19 UTC (rev 65) +++ include/computerprobecontrol.h 2007-10-01 05:52:16 UTC (rev 66) @@ -17,26 +17,26 @@ * Free Software Foundation, Inc., * * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * ***************************************************************************/ - + #ifndef BALDERARCOMPUTERPROBECONTROL_H #define BALDERARCOMPUTERPROBECONTROLLER_H #include <Python.h> #include <list> #include <string> -#include "../include/balder2dtypes.h" +#include "balder2dtypes.h" namespace Balder { struct ComputerProbeControl { player_id id; input_states inputs; - PyObject *pModule; // the name of the python module containing the ai + PyObject *pModule; // the name of the python module containing the ai PyObject* pFunc; // the python ai function to use ComputerProbeControl(player_id pid, std::string module); ~ComputerProbeControl(); static PyObject* LoadPythonModule(std::string module); - static PyObject* FindAIFunction(PyObject *pModule); + static PyObject* FindAIFunction(PyObject *pModule); }; } #endif Modified: include/configmanager.h =================================================================== --- include/configmanager.h 2007-10-01 05:48:19 UTC (rev 65) +++ include/configmanager.h 2007-10-01 05:52:16 UTC (rev 66) @@ -21,7 +21,7 @@ #ifndef CONFIGMANAGER_H #define CONFIGMANAGER_H -#include "../include/balder2dtypes.h" +#include "balder2dtypes.h" #include <string> class TiXmlDocument; Modified: include/entity.h =================================================================== --- include/entity.h 2007-10-01 05:48:19 UTC (rev 65) +++ include/entity.h 2007-10-01 05:52:16 UTC (rev 66) @@ -22,8 +22,8 @@ #define ENTITY_H #include <SDL/SDL.h> -#include "../include/balder2dtypes.h" -#include "../include/renderer.h" +#include "balder2dtypes.h" +#include "renderer.h" namespace Balder{ @@ -34,7 +34,7 @@ private: static const int MAXVELOCITY; public: - Entity ( GameManager* , double x_position, double y_position, + Entity ( GameManager* , double x_position, double y_position, double x_velocity, double y_velocity, int width, int height ); const int GetX() const {return static_cast<int>(x_position);} const int GetY() const {return static_cast<int>(y_position);} Modified: include/gamemanager.h =================================================================== --- include/gamemanager.h 2007-10-01 05:48:19 UTC (rev 65) +++ include/gamemanager.h 2007-10-01 05:52:16 UTC (rev 66) @@ -25,8 +25,8 @@ #define STATWIDTH 100 // width in pixels for the status display #define STATHEIGHT 100 -#include "../include/balder2dtypes.h" -#include "../include/configmanager.h" +#include "balder2dtypes.h" +#include "configmanager.h" #include <SDL/SDL.h> #include <list> #include <map> @@ -56,7 +56,7 @@ double y_vel; bool stuck; SpawnLocation* next; -}; +}; class GameManager { private: @@ -90,7 +90,7 @@ Uint32 FrameTimeLeft(); void DumpEntityState(); // this one in a debugging aid std::string map_music; - + public: GameManager(Renderer *, SoundManager *); ~GameManager(); Modified: include/input.h =================================================================== --- include/input.h 2007-10-01 05:48:19 UTC (rev 65) +++ include/input.h 2007-10-01 05:52:16 UTC (rev 66) @@ -21,7 +21,7 @@ #ifndef INPUT_H #define INPUT_H -#include "../include/balder2dtypes.h" +#include "balder2dtypes.h" namespace Balder{ Modified: include/menu/menu.h =================================================================== --- include/menu/menu.h 2007-10-01 05:48:19 UTC (rev 65) +++ include/menu/menu.h 2007-10-01 05:52:16 UTC (rev 66) @@ -23,7 +23,7 @@ #include <guichan.hpp> #include <guichan/sdl.hpp> -#include "../../include/menu/animationwidget.h" +#include "menu/animationwidget.h" #include "numberfield.h" namespace Balder Modified: include/player.h =================================================================== --- include/player.h 2007-10-01 05:48:19 UTC (rev 65) +++ include/player.h 2007-10-01 05:52:16 UTC (rev 66) @@ -21,7 +21,7 @@ #ifndef PLAYER_H #define PLAYER_H -#include "../include/balder2dtypes.h" +#include "balder2dtypes.h" #include <sstream> struct SDL_Surface; @@ -50,7 +50,7 @@ void DoControl ( input_states inputs); void SetProbe ( Probe* p ); void AddScore(int toAdd){score += toAdd;} - int getScore() {return score;} + int getScore() {return score;} const Probe* GetProbe(){return probe;} const void DrawStats(SDL_Surface*); @@ -58,13 +58,13 @@ { score = theValue; } - + int GetScore() const { return score; } - + }; } #endif Modified: include/powerup.h =================================================================== --- include/powerup.h 2007-10-01 05:48:19 UTC (rev 65) +++ include/powerup.h 2007-10-01 05:52:16 UTC (rev 66) @@ -1,7 +1,7 @@ // // C++ Interface: powerup // -// Description: +// Description: // // // Author: Bjorn Hansen <Hol...@us...>, (C) 2005 @@ -12,7 +12,7 @@ #ifndef BALDERPOWERUP_H #define BALDERPOWERUP_H -#include "../include/entity.h" +#include "entity.h" namespace Balder { const int POWERUP_WIDTH = 16; @@ -31,7 +31,7 @@ class PowerUp : public Entity { public: - PowerUp(GameManager* , double x_position, double y_position, + PowerUp(GameManager* , double x_position, double y_position, double x_velocity, double y_velocity, int effect=1); ~PowerUp(); const std::string GetType() const { return "powerup";} Modified: include/powerupfactory.h =================================================================== --- include/powerupfactory.h 2007-10-01 05:48:19 UTC (rev 65) +++ include/powerupfactory.h 2007-10-01 05:52:16 UTC (rev 66) @@ -21,7 +21,7 @@ #ifndef POWERUPFACTORY_H #define POWERUPFACTORY_H -#include "../include/balder2dtypes.h" +#include "balder2dtypes.h" namespace Balder{ @@ -31,7 +31,7 @@ class CollisionMask; /** - * A factory class for PowerUps which takes care of loading the PowerUp + * A factory class for PowerUps which takes care of loading the PowerUp * sprite and registering it with the Renderer. */ class PowerUpFactory{ Modified: include/probe.h =================================================================== --- include/probe.h 2007-10-01 05:48:19 UTC (rev 65) +++ include/probe.h 2007-10-01 05:52:16 UTC (rev 66) @@ -24,8 +24,8 @@ #define RECHARGE_FRAME_INTERVAL_ON 50 #define RECHARGE_FRAME_INTERVAL_OFF 3000 -#include "../include/entity.h" -#include "../include/balder2dtypes.h" +#include "entity.h" +#include "balder2dtypes.h" #include <math.h> namespace Balder{ Modified: include/probefactory.h =================================================================== --- include/probefactory.h 2007-10-01 05:48:19 UTC (rev 65) +++ include/probefactory.h 2007-10-01 05:52:16 UTC (rev 66) @@ -21,7 +21,7 @@ #ifndef PROBEFACTORY_H #define PROBEFACTORY_H -#include "../include/balder2dtypes.h" +#include "balder2dtypes.h" namespace Balder{ @@ -31,7 +31,7 @@ class SoundManager; /** - * A factory class for Probes which takes care of loading the probe + * A factory class for Probes which takes care of loading the probe * sprite and registering it with the Renderer. */ class ProbeFactory{ @@ -41,7 +41,7 @@ // class destructor ~ProbeFactory(); /// create a probe - Probe* CreateProbe(GameManager* , double x_position, double y_position, + Probe* CreateProbe(GameManager* , double x_position, double y_position, double x_velocity, double y_velocity, bool stuck, probe_color, player_id pid); private: SDL_Surface* sprite; Modified: include/projectile.h =================================================================== --- include/projectile.h 2007-10-01 05:48:19 UTC (rev 65) +++ include/projectile.h 2007-10-01 05:52:16 UTC (rev 66) @@ -21,11 +21,11 @@ #ifndef PROJECTILE_H #define PROJECTILE_H -#include "../include/entity.h" +#include "entity.h" namespace Balder{ - -class Projectile: public Entity { + +class Projectile: public Entity { private: static const int PROJECTILEWIDTH; static const int PROJECTILEHEIGHT; @@ -37,7 +37,7 @@ static const double SPEED; static const bool Add_Probe_Velocity; public: - Projectile (GameManager* , double x_position, double y_position, + Projectile (GameManager* , double x_position, double y_position, double x_velocity, double y_velocity, player_id); const std::string GetType() const { return "projectile";} void Move ( ); Modified: include/projectilefactory.h =================================================================== --- include/projectilefactory.h 2007-10-01 05:48:19 UTC (rev 65) +++ include/projectilefactory.h 2007-10-01 05:52:16 UTC (rev 66) @@ -21,7 +21,7 @@ #ifndef PROJECTILEFACTORY_H #define PROJECTILEFACTORY_H -#include "../include/balder2dtypes.h" +#include "balder2dtypes.h" namespace Balder{ @@ -30,7 +30,7 @@ class GameManager; /** - * A factory class for Projectiles which takes care of loading the Projectile + * A factory class for Projectiles which takes care of loading the Projectile * sprite and registering it with the Renderer. */ class ProjectileFactory{ @@ -40,7 +40,7 @@ // class destructor ~ProjectileFactory(); /// create a Projectile - Projectile* CreateProjectile(GameManager* , double x_position, double y_position, + Projectile* CreateProjectile(GameManager* , double x_position, double y_position, double x_velocity, double y_velocity, player_id); private: SDL_Surface* sprite; Modified: include/renderer.h =================================================================== --- include/renderer.h 2007-10-01 05:48:19 UTC (rev 65) +++ include/renderer.h 2007-10-01 05:52:16 UTC (rev 66) @@ -23,7 +23,7 @@ #include <map> #include <string> -#include "../include/balder2dtypes.h" +#include "balder2dtypes.h" struct SDL_Surface; class Font; @@ -33,7 +33,7 @@ class Entity; -class Renderer { +class Renderer { public: static std::map<std::string,SDL_Surface*> sprite_registry; Renderer(); @@ -42,7 +42,7 @@ void SetScreen(int width, int height, bool fullscreen=false); /// load the bacground for the map with the specified name. bool LoadBackground(const char* mapname); - /// convenience function to blit an sdl surface to the screen + /// convenience function to blit an sdl surface to the screen void BlitSurface(int x, int y, int width, int height, SDL_Surface* s); /// display text on the screen void DisplayText(int x, int y, std::string text); Modified: include/soundmanager.h =================================================================== --- include/soundmanager.h 2007-10-01 05:48:19 UTC (rev 65) +++ include/soundmanager.h 2007-10-01 05:52:16 UTC (rev 66) @@ -4,7 +4,7 @@ #include <map> #include <string> #include <SDL/SDL_mixer.h> -#include "../include/configmanager.h" +#include "configmanager.h" namespace Balder{ Modified: src/artificialcontroller.cpp =================================================================== --- src/artificialcontroller.cpp 2007-10-01 05:48:19 UTC (rev 65) +++ src/artificialcontroller.cpp 2007-10-01 05:52:16 UTC (rev 66) @@ -21,14 +21,14 @@ #include <Python.h> #include <stdlib.h> #include <sstream> -#include "../include/artificialcontroller.h" -#include "../include/computerprobecontrol.h" -#include "../include/gamemanager.h" -#include "../include/collisionmask.h" -#include "../include/input.h" -#include "../include/entity.h" -#include "../include/probe.h" -#include "../include/log.h" +#include "artificialcontroller.h" +#include "computerprobecontrol.h" +#include "gamemanager.h" +#include "collisionmask.h" +#include "input.h" +#include "entity.h" +#include "probe.h" +#include "log.h" using namespace Balder; @@ -39,9 +39,9 @@ std::list<ComputerProbeControl*> ArtificialController::controlled_probes; static PyMethodDef BalderAIMethods[] = { - {"IsWall", Balder::ArtificialController::py_IsWall, + {"IsWall", Balder::ArtificialController::py_IsWall, METH_VARARGS, "determine if a given point is part of a wall."}, - {"IsLineOfSight", Balder::ArtificialController::py_IsLineOfSight, + {"IsLineOfSight", Balder::ArtificialController::py_IsLineOfSight, METH_VARARGS, "determine if any wall is blocking a \"line of sight\" between the given points."}, {NULL, NULL, 0, NULL} /* Sentinel */ }; @@ -79,7 +79,7 @@ void ArtificialController::ControlProbe(player_id id, std::string script) { ComputerProbeControl *p = new ComputerProbeControl(id, script); - // if the function was not found, don't try to control this probe + // if the function was not found, don't try to control this probe if (p->pFunc && PyCallable_Check(p->pFunc)) { controlled_probes.push_back(p); } @@ -126,7 +126,7 @@ PyDict_SetItemString(pEntityData, "charge", PyInt_FromLong(p->GetCharge())); PyDict_SetItemString(pEntityData, "life", PyInt_FromLong(p->GetLife())); PyDict_SetItemString(pEntityData, "deaths", PyInt_FromLong(p->GetDeaths())); - PyDict_SetItemString(pEntityData, "deaths", PyInt_FromLong(p->GetDeaths())); + PyDict_SetItemString(pEntityData, "deaths", PyInt_FromLong(p->GetDeaths())); PyDict_SetItemString(pEntityData, "stuck", PyBool_FromLong(p->GetStuckStatus())); PyDict_SetItemString(pEntityData, "rotation_angle", PyFloat_FromDouble(p->GetRotationAngle())); // add to probe dictionary with the id as the key @@ -161,7 +161,7 @@ Log::output(ss.str()); PyObject *excptn = PyErr_Occurred(); if (excptn) { PyErr_Print(); } - // lets remove this probe from the list to control + // lets remove this probe from the list to control // so this doesn't happen every frame controlled_probes.erase(pit); delete (*pit); @@ -174,7 +174,7 @@ game_manager->SendInputState((*pit)->id,(*pit)->inputs); } ++pit; - } + } } PyObject* ArtificialController::py_IsWall(PyObject *self, PyObject *args) @@ -204,11 +204,11 @@ int x, y, xdelta, ydelta; xdelta = x2-x1; ydelta = y2-y1; - /* we want to proceed on the direction that will test the most - points along the line, if we just tested along x the loop would - have good resolution in the x direction, - but could be very poor in the y direction, if the x values are - very close but y values that are not close for example testing + /* we want to proceed on the direction that will test the most + points along the line, if we just tested along x the loop would + have good resolution in the x direction, + but could be very poor in the y direction, if the x values are + very close but y values that are not close for example testing along the line from (5,1) to (6,20) would only test two points! */ if (xdelta*xdelta > ydelta*ydelta){ Modified: src/collisionmask.cpp =================================================================== --- src/collisionmask.cpp 2007-10-01 05:48:19 UTC (rev 65) +++ src/collisionmask.cpp 2007-10-01 05:52:16 UTC (rev 66) @@ -20,8 +20,8 @@ #include <SDL/SDL.h> #include <SDL/SDL_image.h> -#include "../include/collisionmask.h" -#include "../include/imageloader.h" +#include "collisionmask.h" +#include "imageloader.h" #include <string> using namespace Balder; Modified: src/computerprobecontrol.cpp =================================================================== --- src/computerprobecontrol.cpp 2007-10-01 05:48:19 UTC (rev 65) +++ src/computerprobecontrol.cpp 2007-10-01 05:52:16 UTC (rev 66) @@ -18,12 +18,12 @@ * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * ***************************************************************************/ -#include "../include/computerprobecontrol.h" -#include "../include/log.h" +#include "computerprobecontrol.h" +#include "log.h" using namespace Balder; -Balder::ComputerProbeControl::ComputerProbeControl(player_id pid, std::string module): id(pid) +Balder::ComputerProbeControl::ComputerProbeControl(player_id pid, std::string module): id(pid) { pModule = ComputerProbeControl::LoadPythonModule(module); if (pModule != NULL) { @@ -32,7 +32,7 @@ else { pFunc = 0; } } -Balder::ComputerProbeControl::~ComputerProbeControl() +Balder::ComputerProbeControl::~ComputerProbeControl() { Py_XDECREF(pFunc); Py_XDECREF(pModule); Modified: src/configmanager.cpp =================================================================== --- src/configmanager.cpp 2007-10-01 05:48:19 UTC (rev 65) +++ src/configmanager.cpp 2007-10-01 05:52:16 UTC (rev 66) @@ -18,8 +18,8 @@ * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * ***************************************************************************/ -#include "../include/configmanager.h" -#include "../include/renderer.h" +#include "configmanager.h" +#include "renderer.h" #include "tinyxml/tinyxml.h" #include <fstream> @@ -428,7 +428,7 @@ void ConfigManager::GenerateConfig( const char *filename) { std::ofstream cfile( filename ); - cfile + cfile << "<?xml version=\"1.0\" ?> " << "<!-- Balder2d Configuration data --> " << "<Balder> " Modified: src/entity.cpp =================================================================== --- src/entity.cpp 2007-10-01 05:48:19 UTC (rev 65) +++ src/entity.cpp 2007-10-01 05:52:16 UTC (rev 66) @@ -18,18 +18,18 @@ * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * ***************************************************************************/ -#include "../include/log.h" -#include "../include/entity.h" -#include "../include/gamemanager.h" -#include "../include/configmanager.h" -#include "../include/collisionmask.h" +#include "log.h" +#include "entity.h" +#include "gamemanager.h" +#include "configmanager.h" +#include "collisionmask.h" #include <math.h> using namespace Balder; const int Entity::MAXVELOCITY = ConfigManager::GetIntValue("Entity", "maxvelocity"); -Entity::Entity ( GameManager* gm, +Entity::Entity ( GameManager* gm, double xp, double yp, double xv, double yv, int w, int h ) : game_manager(gm), x_position(xp),y_position(yp), x_velocity(xv), y_velocity(yv), width(w), height(h), is_dead(false) @@ -86,7 +86,7 @@ int x_ave = 0; int y_ave = 0; int x_offset, y_offset; - + int x, y, radius, r2; radius = width/2; @@ -156,7 +156,7 @@ double norm = sqrt(x*x+y*y); x = x/norm; y = y/norm; - // dot the normal vector with the velocity vector (actually what we have + // dot the normal vector with the velocity vector (actually what we have // here is the negative of the normal to the surface. double projection = x*x_velocity + y*y_velocity; // make sure the vectors are within 90 degrees of each other, otherwise the Modified: src/gamemanager.cpp =================================================================== --- src/gamemanager.cpp 2007-10-01 05:48:19 UTC (rev 65) +++ src/gamemanager.cpp 2007-10-01 05:52:16 UTC (rev 66) @@ -18,23 +18,23 @@ * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * ***************************************************************************/ -#include "../include/log.h" +#include "log.h" #include <SDL/SDL.h> -#include "../include/gamemanager.h" -#include "../include/configmanager.h" -#include "../include/player.h" -#include "../include/input.h" -#include "../include/artificialcontroller.h" -#include "../include/probe.h" -#include "../include/projectile.h" -#include "../include/powerup.h" -#include "../include/renderer.h" -#include "../include/soundmanager.h" -#include "../include/collisionmask.h" -#include "../include/mapparser.h" -#include "../include/probefactory.h" -#include "../include/projectilefactory.h" -#include "../include/powerupfactory.h" +#include "gamemanager.h" +#include "configmanager.h" +#include "player.h" +#include "input.h" +#include "artificialcontroller.h" +#include "probe.h" +#include "projectile.h" +#include "powerup.h" +#include "renderer.h" +#include "soundmanager.h" +#include "collisionmask.h" +#include "mapparser.h" +#include "probefactory.h" +#include "projectilefactory.h" +#include "powerupfactory.h" using namespace Balder; @@ -88,7 +88,7 @@ try { for (int i=1; i < numplayers+1; ++i) - { + { // this will create a new player and associated probe id = CreateNewPlayer(); // check and see if it's a human controlled player, or what AI script to use @@ -108,7 +108,7 @@ { throw "error creating player, or player probe"; } - Log::output("running as Server . . "); + Log::output("running as Server . . "); start_time = SDL_GetTicks(); int time = ConfigManager::GetIntValue("GameSetup", "TimeLimit"); if (time > 0) end_time = start_time + (time*60*1000); @@ -128,7 +128,7 @@ mapwidth = statbox_x = mp.GetMapWidth(); mapheight = statbox_y = mp.GetMapHeight(); - render->SetScreen(mp.GetMapWidth(), mp.GetMapHeight()+STATHEIGHT, + render->SetScreen(mp.GetMapWidth(), mp.GetMapHeight()+STATHEIGHT, ConfigManager::GetIntValue("Video", "fullscreen")); // create the collision mask collision_mask = new CollisionMask(mapname); @@ -153,7 +153,7 @@ } void GameManager::Run() -{ +{ start_frame = frame; int powerup_spawn_interval = ConfigManager::GetIntValue("Powerup", "spawn_interval"); int maxScore = ConfigManager::GetIntValue("GameSetup", "ScoreLimit"); @@ -199,7 +199,7 @@ int w1 = (*ent1)->GetWidth(); int h1 = (*ent1)->GetHeight(); while (ent2 != entity_list.end()) - { + { // first a crude test if ( abs(x1 - (*ent2)->GetX()) > w1 + (*ent2)->GetWidth() || abs(y1 - (*ent2)->GetY()) > h1 + (*ent2)->GetHeight() ) @@ -229,7 +229,7 @@ break; } ++pl; - } + } } if (end_time){ if (SDL_GetTicks() > end_time) EndGame("Time Up"); @@ -293,7 +293,7 @@ void GameManager::RemovePlayer(player_id id, bool notifyOthers) { - if (player_list.count(id) == 0) { + if (player_list.count(id) == 0) { Log::output("attempting to remove non-existant player!"); return; } @@ -308,7 +308,7 @@ } // now remove the player from the player list player_list.erase(id); - if (ConfigManager::GetIntValue("GameSetup", "LifeLimit") > 0 + if (ConfigManager::GetIntValue("GameSetup", "LifeLimit") > 0 && player_list.size() == 1) { PlayerIterator p = player_list.begin(); render->DrawEntity(const_cast<Probe*>((*p).second->GetProbe())); @@ -322,10 +322,10 @@ void GameManager::ScoreAdd(player_id addToID, int toAdd) { // if the player no longer exists, forget it - if (player_list.count(addToID) == 0) return; + if (player_list.count(addToID) == 0) return; (player_list[addToID])->AddScore(toAdd); } -void GameManager::CreateProjectile ( player_id pid, double x, double y, +void GameManager::CreateProjectile ( player_id pid, double x, double y, double x_vel, double y_vel ) { // test to make sure the projectile will not be inside a wall @@ -358,7 +358,7 @@ } srand(frame); // seed with the frame number for predictable randomness // now we can respawn the probe - if (!spawn) { + if (!spawn) { p->SetProbeState(200,200,1,-1, false); return; } @@ -460,7 +460,7 @@ { // (*pl).first is the player id, (*pl).second is the player pointer (*pl).second->DrawStats(statbox); - render->BlitSurface(((*pl).first - 1)*(STATWIDTH+10), statbox_y, + render->BlitSurface(((*pl).first - 1)*(STATWIDTH+10), statbox_y, STATWIDTH, STATHEIGHT, statbox); ++pl; } @@ -504,7 +504,7 @@ Entity *e = *ent1; ss << "\nPlayer " << e->GetOwner() << " " << e->GetType() << ":\n" << "\tX: " << e->GetXPosition() << "\tY: " << e->GetYPosition() << "\n" - << "\tXvel: " << e->GetXVelocity() << "\tYvel: " << e->GetYVelocity() + << "\tXvel: " << e->GetXVelocity() << "\tYvel: " << e->GetYVelocity() << "\n"; ++ent1; if (0 == e->GetType().compare("probe" )) { Modified: src/imageloader.cpp =================================================================== --- src/imageloader.cpp 2007-10-01 05:48:19 UTC (rev 65) +++ src/imageloader.cpp 2007-10-01 05:52:16 UTC (rev 66) @@ -18,8 +18,8 @@ * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * ***************************************************************************/ -#include "../include/imageloader.h" -#include "../include/log.h" +#include "imageloader.h" +#include "log.h" #include <physfs.h> using namespace Balder; Modified: src/input.cpp =================================================================== --- src/input.cpp 2007-10-01 05:48:19 UTC (rev 65) +++ src/input.cpp 2007-10-01 05:52:16 UTC (rev 66) @@ -22,11 +22,11 @@ #include <SDL/SDL_keyboard.h> #include <map> #include <string> -#include "../include/input.h" -#include "../include/gamemanager.h" -#include "../include/configmanager.h" -#include "../include/player.h" -#include "../include/log.h" +#include "input.h" +#include "gamemanager.h" +#include "configmanager.h" +#include "player.h" +#include "log.h" using namespace Balder; @@ -35,51 +35,51 @@ SDLKey k; } SDLKeyStringTable[] = { {"BACKSPACE", SDLK_BACKSPACE}, - {"TAB", SDLK_TAB}, - {"ENTER", SDLK_RETURN}, - {"PAUSE", SDLK_PAUSE}, - {"ESC", SDLK_ESCAPE}, - {"SPACE", SDLK_SPACE}, - {"DEL", SDLK_DELETE}, - {"KP0", SDLK_KP0}, - {"KP1", SDLK_KP1}, - {"KP2", SDLK_KP2}, - {"KP3", SDLK_KP3}, - {"KP4", SDLK_KP4}, - {"KP5", SDLK_KP5}, - {"KP6", SDLK_KP6}, - {"KP7", SDLK_KP7}, - {"KP8", SDLK_KP8}, - {"KP9", SDLK_KP9}, - {"KP.", SDLK_KP_PERIOD}, - {"KP/", SDLK_KP_DIVIDE}, - {"KP*", SDLK_KP_MULTIPLY}, - {"KP-", SDLK_KP_MINUS}, - {"KP+", SDLK_KP_PLUS}, - {"KP_ENTER", SDLK_KP_ENTER}, - {"UP", SDLK_UP}, - {"DOWN", SDLK_DOWN}, - {"RIGHT", SDLK_RIGHT}, - {"LEFT", SDLK_LEFT}, - {"INSERT", SDLK_INSERT}, - {"HOME", SDLK_HOME}, - {"END", SDLK_END}, - {"PAGEUP", SDLK_PAGEUP}, - {"PAGEDOWN", SDLK_PAGEDOWN}, - {"F1", SDLK_F1}, - {"F2", SDLK_F2}, - {"F3", SDLK_F3}, - {"F4", SDLK_F4}, - {"F5", SDLK_F5}, - {"F6", SDLK_F6}, - {"F7", SDLK_F7}, - {"F8", SDLK_F8}, - {"F9", SDLK_F9}, - {"F10", SDLK_F10}, - {"F11", SDLK_F11}, - {"F12", SDLK_F12}, - {"F13", SDLK_F13}, - {"F14", SDLK_F14}, + {"TAB", SDLK_TAB}, + {"ENTER", SDLK_RETURN}, + {"PAUSE", SDLK_PAUSE}, + {"ESC", SDLK_ESCAPE}, + {"SPACE", SDLK_SPACE}, + {"DEL", SDLK_DELETE}, + {"KP0", SDLK_KP0}, + {"KP1", SDLK_KP1}, + {"KP2", SDLK_KP2}, + {"KP3", SDLK_KP3}, + {"KP4", SDLK_KP4}, + {"KP5", SDLK_KP5}, + {"KP6", SDLK_KP6}, + {"KP7", SDLK_KP7}, + {"KP8", SDLK_KP8}, + {"KP9", SDLK_KP9}, + {"KP.", SDLK_KP_PERIOD}, + {"KP/", SDLK_KP_DIVIDE}, + {"KP*", SDLK_KP_MULTIPLY}, + {"KP-", SDLK_KP_MINUS}, + {"KP+", SDLK_KP_PLUS}, + {"KP_ENTER", SDLK_KP_ENTER}, + {"UP", SDLK_UP}, + {"DOWN", SDLK_DOWN}, + {"RIGHT", SDLK_RIGHT}, + {"LEFT", SDLK_LEFT}, + {"INSERT", SDLK_INSERT}, + {"HOME", SDLK_HOME}, + {"END", SDLK_END}, + {"PAGEUP", SDLK_PAGEUP}, + {"PAGEDOWN", SDLK_PAGEDOWN}, + {"F1", SDLK_F1}, + {"F2", SDLK_F2}, + {"F3", SDLK_F3}, + {"F4", SDLK_F4}, + {"F5", SDLK_F5}, + {"F6", SDLK_F6}, + {"F7", SDLK_F7}, + {"F8", SDLK_F8}, + {"F9", SDLK_F9}, + {"F10", SDLK_F10}, + {"F11", SDLK_F11}, + {"F12", SDLK_F12}, + {"F13", SDLK_F13}, + {"F14", SDLK_F14}, {"F15", SDLK_F15}, {"RSHIFT", SDLK_RSHIFT}, {"LSHIFT", SDLK_LSHIFT}, @@ -97,7 +97,7 @@ bool Input::keymapInitialized = false; // contstructor - Input::Input(GameManager* gm, int nplayers): + Input::Input(GameManager* gm, int nplayers): game_manager(gm), num_players(nplayers) { SDL_JoystickEventState(SDL_ENABLE); @@ -197,18 +197,18 @@ if(event.jaxis.value < -3200){ // left controllers[1].inputs = old | LEFT; if (old & RIGHT) - controllers[1].inputs = old - RIGHT; + controllers[1].inputs = old - RIGHT; } else if(event.jaxis.value > 3200){ // right controllers[1].inputs = old | RIGHT; if (old & LEFT) - controllers[1].inputs = old - LEFT; + controllers[1].inputs = old - LEFT; } else { if (old & RIGHT) controllers[1].inputs = old - RIGHT; if (old & LEFT) - controllers[1].inputs = old - LEFT; + controllers[1].inputs = old - LEFT; } } // if anything was changed, send an event to the gamemanager @@ -220,7 +220,7 @@ default: return; } - } + } } @@ -267,8 +267,8 @@ void Input::BindKeys() -{ - if (!keymapInitialized) { MapKeys();} +{ + if (!keymapInitialized) { MapKeys();} // now get all of the keys from the config manager. const char* key; SDLKey k; @@ -276,33 +276,33 @@ { // It is convenient to set the initial input state here so we will controllers[i].inputs = 0; - // remember, players are numbered starting at 1, but the controllers - // array is indexed 0 to (num_players - 1), so the controller number + // remember, players are numbered starting at 1, but the controllers + // array is indexed 0 to (num_players - 1), so the controller number // we pass to the config manager is i + 1. key = ConfigManager::GetPlayerControl(i+1,"right"); if (key && parse_key_map.count(key)) {k = parse_key_map[key];} else {k = SDLK_UNKNOWN;} controllers[i].right = k; - + key = ConfigManager::GetPlayerControl(i+1,"left"); if (key && parse_key_map.count(key)) {k = parse_key_map[key];} else {k = SDLK_UNKNOWN;} controllers[i].left = k; - + key = ConfigManager::GetPlayerControl(i+1,"stick"); if (key && parse_key_map.count(key)) {k = parse_key_map[key];} else {k = SDLK_UNKNOWN;} controllers[i].stick = k; - + key = ConfigManager::GetPlayerControl(i+1,"push"); if (key && parse_key_map.count(key)) {k = parse_key_map[key];} else {k = SDLK_UNKNOWN;} controllers[i].push = k; - + key = ConfigManager::GetPlayerControl(i+1,"fire"); if (key && parse_key_map.count(key)) {k = parse_key_map[key];} else {k = SDLK_UNKNOWN;} - controllers[i].fire = k; + controllers[i].fire = k; } } Modified: src/log.cpp =================================================================== --- src/log.cpp 2007-10-01 05:48:19 UTC (rev 65) +++ src/log.cpp 2007-10-01 05:52:16 UTC (rev 66) @@ -18,7 +18,7 @@ * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * ***************************************************************************/ -#include "../include/log.h" +#include "log.h" using namespace Balder; Modified: src/main.cpp =================================================================== --- src/main.cpp 2007-10-01 05:48:19 UTC (rev 65) +++ src/main.cpp 2007-10-01 05:52:16 UTC (rev 66) @@ -22,13 +22,13 @@ #include <SDL/SDL_image.h> #include <SDL/SDL_thread.h> #include <SDL/SDL_mixer.h> -#include "../include/gamemanager.h" -#include "../include/renderer.h" -#include "../include/soundmanager.h" -#include "../include/configmanager.h" -#include "../include/menu/menu.h" -#include "../include/imageloader.h" -#include "../include/log.h" +#include "gamemanager.h" +#include "renderer.h" +#include "soundmanager.h" +#include "configmanager.h" +#include "menu/menu.h" +#include "imageloader.h" +#include "log.h" using namespace std; using namespace Balder; Modified: src/mapparser.cpp =================================================================== --- src/mapparser.cpp 2007-10-01 05:48:19 UTC (rev 65) +++ src/mapparser.cpp 2007-10-01 05:52:16 UTC (rev 66) @@ -18,9 +18,9 @@ * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * ***************************************************************************/ -#include "../include/log.h" -#include "../include/mapparser.h" -#include "../include/gamemanager.h" +#include "log.h" +#include "mapparser.h" +#include "gamemanager.h" #include "tinyxml/tinyxml.h" #include <string> @@ -102,7 +102,7 @@ std::string str("false"); const char *stuck_status = stk->Attribute("status"); s->stuck = str.compare(stuck_status); // returns 0 if they match - return s; + return s; } SpawnLocation* MapParser::NextSpawnLocation() { @@ -135,5 +135,5 @@ std::string str("false"); const char *stuck_status = stk->Attribute("status"); s->stuck = str.compare(stuck_status); - return s; + return s; } Modified: src/menu/ailistmodel.cpp =================================================================== --- src/menu/ailistmodel.cpp 2007-10-01 05:48:19 UTC (rev 65) +++ src/menu/ailistmodel.cpp 2007-10-01 05:52:16 UTC (rev 66) @@ -18,7 +18,7 @@ * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * ***************************************************************************/ -#include "../../include/menu/ailistmodel.h" +#include "menu/ailistmodel.h" #include "boost/filesystem/operations.hpp" #include "boost/filesystem/path.hpp" @@ -36,7 +36,7 @@ // always show Human option as it disables any ai scripting so that a user may play. scriptnames.push_back("Human"); ++numScripts; - + boost::filesystem::path script_path( "scripts/" ); boost::filesystem::directory_iterator end_iter; for ( boost::filesystem::directory_iterator dir_itr( script_path ); dir_itr != end_iter; ++dir_itr ) { Modified: src/menu/animationwidget.cpp =================================================================== --- src/menu/animationwidget.cpp 2007-10-01 05:48:19 UTC (rev 65) +++ src/menu/animationwidget.cpp 2007-10-01 05:52:16 UTC (rev 66) @@ -22,8 +22,8 @@ #include <guichan/sdl/sdlgraphics.hpp> #include <SDL/SDL.h> #include <SDL/SDL_image.h> -#include "../../include/menu/animationwidget.h" -#include "../../include/imageloader.h" +#include "menu/animationwidget.h" +#include "imageloader.h" using namespace Balder; AnimationWidget::AnimationWidget(std::string aFileName, bool aHasBaseFrame, Modified: src/menu/gamesetup.cpp =================================================================== --- src/menu/gamesetup.cpp 2007-10-01 05:48:19 UTC (rev 65) +++ src/menu/gamesetup.cpp 2007-10-01 05:52:16 UTC (rev 66) @@ -18,10 +18,10 @@ * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * ***************************************************************************/ -#include "../../include/menu/gamesetup.h" -#include "../../include/configmanager.h" -#include "../../include/menu/samplemapwidget.h" -#include "../../include/menu/maplistmodel.h" +#include "menu/gamesetup.h" +#include "configmanager.h" +#include "menu/samplemapwidget.h" +#include "menu/maplistmodel.h" using namespace Balder; Modified: src/menu/mainmenu.cpp =================================================================== --- src/menu/mainmenu.cpp 2007-10-01 05:48:19 UTC (rev 65) +++ src/menu/mainmenu.cpp 2007-10-01 05:52:16 UTC (rev 66) @@ -18,9 +18,9 @@ * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * ***************************************************************************/ -#include "../../include/menu/menu.h" -#include "../../include/menu/mainmenu.h" -#include "../../include/menu/options.h" +#include "menu/menu.h" +#include "menu/mainmenu.h" +#include "menu/options.h" using namespace Balder; Modified: src/menu/maplistmodel.cpp =================================================================== --- src/menu/maplistmodel.cpp 2007-10-01 05:48:19 UTC (rev 65) +++ src/menu/maplistmodel.cpp 2007-10-01 05:52:16 UTC (rev 66) @@ -18,7 +18,7 @@ * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * ***************************************************************************/ -#include "../../include/menu/maplistmodel.h" +#include "menu/maplistmodel.h" #include "boost/filesystem/operations.hpp" #include "boost/filesystem/path.hpp" @@ -61,7 +61,7 @@ { if ( boost::filesystem::is_directory( *dir_itr ) ) { // lets try to check that this directory really contains a map - if (find_file(*dir_itr, "maptags.xml") + if (find_file(*dir_itr, "maptags.xml") && find_file(*dir_itr, "geometry.png") && find_file(*dir_itr, "background.png") ) { mapnames.push_back(dir_itr->leaf()); Modified: src/menu/menu.cpp =================================================================== --- src/menu/menu.cpp 2007-10-01 05:48:19 UTC (rev 65) +++ src/menu/menu.cpp 2007-10-01 05:52:16 UTC (rev 66) @@ -19,9 +19,9 @@ ***************************************************************************/ #include <SDL/SDL_mixer.h> -#include "../../include/menu/menu.h" -#include "../../include/menu/mainmenu.h" -#include "../../include/soundmanager.h" +#include "menu/menu.h" +#include "menu/mainmenu.h" +#include "soundmanager.h" #include <iostream> using namespace Balder; Modified: src/menu/numberfield.cpp =================================================================== --- src/menu/numberfield.cpp 2007-10-01 05:48:19 UTC (rev 65) +++ src/menu/numberfield.cpp 2007-10-01 05:52:16 UTC (rev 66) @@ -1,7 +1,7 @@ // // C++ Implementation: numberfield // -// Description: +// Description: // // // Author: Bjorn Hansen <Hol...@us...>, (C) 2005 @@ -12,7 +12,7 @@ #include <sstream> #include <guichan/font.hpp> #include <guichan/graphics.hpp> -#include "../../include/menu/numberfield.h" +#include "menu/numberfield.h" using namespace Balder; using namespace gcn; @@ -73,7 +73,7 @@ mText.erase(mCaretPosition - 1, 1); --mCaretPosition; } - + else if (key.getValue() == Key::ENTER) { generateAction(); @@ -82,12 +82,12 @@ else if (key.getValue() == Key::HOME) { mCaretPosition = 0; - } + } else if (key.getValue() == Key::END) { mCaretPosition = mText.size(); - } + } else if (key.isNumber()) { @@ -103,12 +103,12 @@ Color faceColor = getBackgroundColor(); graphics->setColor(faceColor); graphics->fillRectangle(Rectangle(0, 0, getWidth(), getHeight())); - + if (isFocused()) - { + { drawCaret(graphics, getWidth()-getFont()->getWidth(mText.substr(mCaretPosition,mText.size())) - 4); } - + graphics->setColor(getForegroundColor()); graphics->setFont(getFont()); //graphics->drawText(mText, 1 - mXScroll, 1); Modified: src/menu/options.cpp =================================================================== --- src/menu/options.cpp 2007-10-01 05:48:19 UTC (rev 65) +++ src/menu/options.cpp 2007-10-01 05:52:16 UTC (rev 66) @@ -18,11 +18,11 @@ * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * ***************************************************************************/ -#include "../../include/menu/options.h" -#include "../../include/menu/gamesetup.h" -#include "../../include/menu/playersetup.h" -#include "../../include/menu/soundvideo.h" -#include "../../include/configmanager.h" +#include "menu/options.h" +#include "menu/gamesetup.h" +#include "menu/playersetup.h" +#include "menu/soundvideo.h" +#include "configmanager.h" #include <sstream> using namespace Balder; Modified: src/menu/playersetup.cpp =================================================================== --- src/menu/playersetup.cpp 2007-10-01 05:48:19 UTC (rev 65) +++ src/menu/playersetup.cpp 2007-10-01 05:52:16 UTC (rev 66) @@ -18,13 +18,13 @@ * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * ***************************************************************************/ -#include "../../include/log.h" -#include "../../include/menu/playersetup.h" -#include "../../include/menu/menu.h" -#include "../../include/configmanager.h" -#include "../../include/menu/sampleprobewidget.h" -#include "../../include/menu/ailistmodel.h" -#include "../../include/input.h" +#include "log.h" +#include "menu/playersetup.h" +#include "menu/menu.h" +#include "configmanager.h" +#include "menu/sampleprobewidget.h" +#include "menu/ailistmodel.h" +#include "input.h" #include <sstream> using namespace Balder; Modified: src/menu/samplemapwidget.cpp =================================================================== --- src/menu/samplemapwidget.cpp 2007-10-01 05:48:19 UTC (rev 65) +++ src/menu/samplemapwidget.cpp 2007-10-01 05:52:16 UTC (rev 66) @@ -24,8 +24,8 @@ #include <SDL/SDL.h> #include <SDL/SDL_image.h> #include <SDL/SDL_rotozoom.h> -#include "../../include/menu/samplemapwidget.h" -#include "../../include/imageloader.h" +#include "menu/samplemapwidget.h" +#include "imageloader.h" using namespace Balder; Modified: src/menu/sampleprobewidget.cpp =================================================================== --- src/menu/sampleprobewidget.cpp 2007-10-01 05:48:19 UTC (rev 65) +++ src/menu/sampleprobewidget.cpp 2007-10-01 05:52:16 UTC (rev 66) @@ -23,9 +23,9 @@ #include <guichan/sdl/sdlgraphics.hpp> #include <SDL/SDL.h> #include <SDL/SDL_gfxPrimitives.h> -#include "../../include/menu/sampleprobewidget.h" -#include "../../include/probe.h" -#include "../../include/log.h" +#include "menu/sampleprobewidget.h" +#include "probe.h" +#include "log.h" using namespace Balder; SampleProbeWidget::SampleProbeWidget(): probeFrame(0), probeColor(0) @@ -42,7 +42,7 @@ void SampleProbeWidget::draw(gcn::Graphics* graphics) { - // looks like we still have to draw directly to the screen here... + // looks like we still have to draw directly to the screen here... // no doubt this will choke if the obect is not an SDLGraphics object SDL_Surface *screen = dynamic_cast<gcn::SDLGraphics*>(graphics)->getTarget(); int x,y; Modified: src/menu/soundvideo.cpp =================================================================== --- src/menu/soundvideo.cpp 2007-10-01 05:48:19 UTC (rev 65) +++ src/menu/soundvideo.cpp 2007-10-01 05:52:16 UTC (rev 66) @@ -18,9 +18,9 @@ * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * ***************************************************************************/ -#include "../../include/menu/soundvideo.h" -#include "../../include/configmanager.h" -#include "../../include/soundmanager.h" +#include "menu/soundvideo.h" +#include "configmanager.h" +#include "soundmanager.h" using namespace Balder; Modified: src/menu/submenu.cpp =================================================================== --- src/menu/submenu.cpp 2007-10-01 05:48:19 UTC (rev 65) +++ src/menu/submenu.cpp 2007-10-01 05:52:16 UTC (rev 66) @@ -18,7 +18,7 @@ * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * ***************************************************************************/ -#include "../../include/menu/submenu.h" +#include "menu/submenu.h" using namespace Balder; Modified: src/player.cpp =================================================================== --- src/player.cpp 2007-10-01 05:48:19 UTC (rev 65) +++ src/player.cpp 2007-10-01 05:52:16 UTC (rev 66) @@ -21,11 +21,11 @@ #include <SDL/SDL.h> #include <SDL/SDL_image.h> #include <SDL/SDL_gfxPrimitives.h> -#include "../include/player.h" -#include "../include/probe.h" -#include "../include/input.h" -#include "../include/gamemanager.h" -#include "../include/imageloader.h" +#include "player.h" +#include "probe.h" +#include "input.h" +#include "gamemanager.h" +#include "imageloader.h" #include "SFont/Font.h" #include <sstream> Modified: src/powerup.cpp =================================================================== --- src/powerup.cpp 2007-10-01 05:48:19 UTC (rev 65) +++ src/powerup.cpp 2007-10-01 05:52:16 UTC (rev 66) @@ -1,7 +1,7 @@ // // C++ Implementation: powerup // -// Description: +// Description: // // // Author: Bjorn Hansen <Hol...@us...>, (C) 2005 @@ -11,11 +11,11 @@ // #include <math.h> #include <SDL/SDL_image.h> -#include "../include/powerup.h" +#include "powerup.h" namespace Balder { -PowerUp::PowerUp(GameManager* gm, double x_position, double y_position, +PowerUp::PowerUp(GameManager* gm, double x_position, double y_position, double x_velocity, double y_velocity, int effect) : Entity(gm, x_position, y_position, x_velocity, y_velocity, Modified: src/powerupfactory.cpp =================================================================== --- src/powerupfactory.cpp 2007-10-01 05:48:19 UTC (rev 65) +++ src/powerupfactory.cpp 2007-10-01 05:52:16 UTC (rev 66) @@ -22,11 +22,11 @@ #include <math.h> #include <SDL/SDL.h> #include <SDL/SDL_image.h> -#include "../include/powerupfactory.h" // class's header file -#include "../include/renderer.h" -#include "../include/powerup.h" -#include "../include/collisionmask.h" -#include "../include/imageloader.h" +#include "powerupfactory.h" // class's header file +#include "renderer.h" +#include "powerup.h" +#include "collisionmask.h" +#include "imageloader.h" using namespace Balder; Modified: src/probe.cpp =================================================================== --- src/probe.cpp 2007-10-01 05:48:19 UTC (rev 65) +++ src/probe.cpp 2007-10-01 05:52:16 UTC (rev 66) @@ -18,12 +18,12 @@ * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * ***************************************************************************/ -#include "../include/log.h" -#include "../include/probe.h" -#include "../include/projectile.h" -#include "../include/powerup.h" -#include "../include/gamemanager.h" -#include "../include/configmanager.h" +#include "log.h" +#include "probe.h" +#include "projectile.h" +#include "powerup.h" +#include "gamemanager.h" +#include "configmanager.h" #include <SDL/SDL_gfxPrimitives.h> using namespace Balder; @@ -44,7 +44,7 @@ charge_remaining(MAXCHARGE), life_remaining(MAXHITS), shield_power(0), facing_angle(0),stick(false), stuck(stuck), pushOffState(0), pushOffSpeed(0), rotation_state(NO_ROT), x_vel_add(0), y_vel_add(0), death_frame(0), hit_frame(0), - spawn_frame(0), ammo_angle(0), color(c), owner(p), powerups(2), deaths(0), + spawn_frame(0), ammo_angle(0), color(c), owner(p), powerups(2), deaths(0), removeFromGame(false) { bounding_box.w = PROBEWIDTH; Modified: src/probefactory.cpp =================================================================== --- src/probefactory.cpp 2007-10-01 05:48:19 UTC (rev 65) +++ src/probefactory.cpp 2007-10-01 05:52:16 UTC (rev 66) @@ -20,11 +20,11 @@ #include <SDL/SDL.h> #include <SDL/SDL_image.h> -#include "../include/probefactory.h" // class's header file -#include "../include/renderer.h" -#include "../include/soundmanager.h" -#include "../include/probe.h" -#include "../include/imageloader.h" +#include "probefactory.h" // class's header file +#include "renderer.h" +#include "soundmanager.h" +#include "probe.h" +#include "imageloader.h" using namespace Balder; Modified: src/projectile.cpp =================================================================== --- src/projectile.cpp 2007-10-01 05:48:19 UTC (rev 65) +++ src/projectile.cpp 2007-10-01 05:52:16 UTC (rev 66) @@ -18,9 +18,9 @@ * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * ***************************************************************************/ -#include "../include/projectile.h" -#include "../include/gamemanager.h" -#include "../include/configmanager.h" +#include "projectile.h" +#include "gamemanager.h" +#include "configmanager.h" using namespace Balder; @@ -31,7 +31,7 @@ const int Projectile::EXPLODE_FRAMES = ConfigManager::GetIntValue("Projectile", "explodeframes"); const int Projectile::EXPLODE_RADIUS = ConfigManager::GetIntValue("Projectile", "exploderadius"); -Projectile::Projectile(GameManager* mg, double x_pos, double y_pos, +Projectile::Projectile(GameManager* mg, double x_pos, double y_pos, double x_vel, double y_vel, player_id pid) :Entity(mg, x_pos, y_pos, x_vel, y_vel, PROJECTILEWIDTH, PROJECTILEHEIGHT), time_remaining(PROJECTILELIFETIME), frame_number(0), owner(pid), is_exploding(false) @@ -67,15 +67,15 @@ // there is a collision, but if we're already blowing up just return true; if (is_exploding) {return true;} // don't anialate friendly projectiles for the first few frames - if (0 == e->GetType().compare("projectile") + if (0 == e->GetType().compare("projectile") && (time_remaining > PROJECTILELIFETIME - 30) - && owner == dynamic_cast<Projectile*>(e)->GetOwner()) + && owner == dynamic_cast<Projectile*>(e)->GetOwner()) { return false; - } + } // we hit something that wasn't a wall, blow up! Explode(); - return true; + return true; } void Projectile::Explode() Modified: src/projectilefactory.cpp =================================================================== --- src/projectilefactory.cpp 2007-10-01 05:48:19 UTC (rev 65) +++ src/projectilefactory.cpp 2007-10-01 05:52:16 UTC (rev 66) @@ -20,10 +20,10 @@ #include <SDL/SDL.h> #include <SDL/SDL_image.h> -#include "../include/projectilefactory.h" // class's header file -#include "../include/renderer.h" -#include "../include/projectile.h" -#include "../include/imageloader.h" +#include "projectilefactory.h" // class's header file +#include "renderer.h" +#include "projectile.h" +#include "imageloader.h" using namespace Balder; Modified: src/renderer.cpp =================================================================== --- src/renderer.cpp 2007-10-01 05:48:19 UTC (rev 65) +++ src/renderer.cpp 2007-10-01 05:52:16 UTC (rev 66) @@ -21,9 +21,9 @@ #include <SDL/SDL.h> #include <SDL/SDL_image.h> #include "SFont/Font.h" -#include "../include/renderer.h" -#include "../include/entity.h" -#include "../include/imageloader.h" +#include "renderer.h" +#include "entity.h" +#include "imageloader.h" #include <string> using namespace Balder; Modified: src/soundmanager.cpp =================================================================== --- src/soundmanager.cpp 2007-10-01 05:48:19 UTC (rev 65) +++ src/soundmanager.cpp 2007-10-01 05:52:16 UTC (rev 66) @@ -1,4 +1,4 @@ -#include "../include/soundmanager.h" +#include "soundmanager.h" using namespace Balder; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <hol...@us...> - 2007-10-11 06:12:20
|
Revision: 68 http://balder.svn.sourceforge.net/balder/?rev=68&view=rev Author: holomorph Date: 2007-10-10 23:12:18 -0700 (Wed, 10 Oct 2007) Log Message: ----------- Added physfs dependancy in order to make file opening independant of the location of the binary. Added changes so that images (both sdl and guichan) are loaded through the imagemanager methods. These methods use physfs to locate the desired file and then pass the full path to the SDL and Guichan image loading functions. Eliminated the need for boost::filesystem. The directory search/enumeration is now done using physicsfs. Modified Paths: -------------- SConstruct history.txt include/imageloader.h src/imageloader.cpp src/main.cpp src/menu/ailistmodel.cpp src/menu/maplistmodel.cpp src/menu/menu.cpp src/menu/playersetup.cpp src/menu/sampleprobewidget.cpp Modified: SConstruct =================================================================== --- SConstruct 2007-10-08 23:44:38 UTC (rev 67) +++ SConstruct 2007-10-11 06:12:18 UTC (rev 68) @@ -10,7 +10,7 @@ import glob files = glob.glob("src/*.cpp") + glob.glob("src/*/*.cpp") + glob.glob("src/*/*.c") -libs = Split('guichan_sdl guichan SDL_image SDL_mixer SDL_gfx python2.4 boost_filesystem') +libs = Split('guichan_sdl guichan SDL_image SDL_mixer SDL_gfx python2.4 physfs') env.ParseConfig('sdl-config --cflags --libs') env.Program('bin/balder2d',files, LIBS=libs) Modified: history.txt =================================================================== --- history.txt 2007-10-08 23:44:38 UTC (rev 67) +++ history.txt 2007-10-11 06:12:18 UTC (rev 68) @@ -3,6 +3,16 @@ History entries are in reverse chronological order (newest entries first). +10 Oct-2007 + - Bjorn added physfs dependancy in order to make file opening independant + of the location of the binary. + - Bjorn added changes so that images (both sdl and guichan) are loaded + through the imagemanager methods. These methods use physfs to locate + the desired file and then pass the full path to the SDL and Guichan + image loading functions. + - Bjorn eliminated the need for boost::filesystem. The directory search/ + enumeration is now done using physicsfs. + 08 Oct-2007 - Reuben separated the CodeBlocks project file into two project files, one for Windows and one for Linux, as the environment variable may very. @@ -10,11 +20,11 @@ 19 Aug-2007 - Bjorn set bindNextKey to false at the beginning of the action handler - for the player setup menu and refreshed the keys so that doing anything + for the player setup menu and refreshed the keys so that doing anything other than pressing a key to bind will cancel the keybinding. 16 Aug-2007 - - Bjorn fixed the crash when using the keyboard to select keybinding + - Bjorn fixed the crash when using the keyboard to select keybinding buttons due to uninitialized value of bindNextKey. - Bjorn updated SConstruct to remove gne library path. - Reuben updated: /src/menu/playersetup.cpp & /src/menu/playersetup.h @@ -23,7 +33,7 @@ function signature to match that of the function keyPressed in the class gcn::KeyListener for proper overloading. Bug Fixed: Key Bindings in the Player Setup menu now work again. - + 15 Aug-2007 - Reuben updated: /src/menu/gamesetup.cpp Updated: mapDropDown width to 400. @@ -48,7 +58,7 @@ Added: pulseAnimation(). 18 July-2007 - - Bjorn applied a patch from Alexander Clausen which adds support for + - Bjorn applied a patch from Alexander Clausen which adds support for pausing the game using the Pause key. 16 July-2007 @@ -69,24 +79,24 @@ - Reuben made the buttonskins.png more transparent. 30 Nov-2006 - - Bjorn changed background animation scheme to have a static image and - then place animation widgets over animated portions. Hopefully this + - Bjorn changed background animation scheme to have a static image and + then place animation widgets over animated portions. Hopefully this will be faster. - - Bjorn fixed a bug in skinnedbuttonwidget where parent constructor was + - Bjorn fixed a bug in skinnedbuttonwidget where parent constructor was not called, resulting in some un-initialized values in the widget - Reuben adjusted skinnedbuttonwidget.cpp so when initialized buttonState is assigned the value buttonUp. - Reuben updated buttonskins.png with new skin. - Reuben cleaned up code in animationwidget.cpp and animationwidget.hpp. - They no longer have setAnimation() and getAnimationFileName() as internal + They no longer have setAnimation() and getAnimationFileName() as internal methods due to a possible memory leak. They weren't needed in any case. - Reuben added skinnedbuttonwidget.cpp and skinnedbuttonwidget.hpp to allow for skinned button support. - Reuben modified Main Menu buttons to utilize the skinnedbuttonwidget instead of the regular button widget. - Reuben added buttonskins.png which contains the buttons skins. - - Bjorn fixed a bug in the collision mask where pixels pixels just - outside the width or height of the map could be tested, resulting + - Bjorn fixed a bug in the collision mask where pixels pixels just + outside the width or height of the map could be tested, resulting in a crash (on some machines) 29 Nov-2006 @@ -122,46 +132,46 @@ - Reuben made a Code::Blocks project file for Windows builds. Added file: Balder2D.cbp - Reuben composed a document containing instruction on how to set up a - Win32 Development Environment for Balder2D. Added file: + Win32 Development Environment for Balder2D. Added file: Balder2D Win32 Development Environment Setup Instructions.txt 12 Oct-2006 - Bjorn made projectile velocity adjustable via the config file. - Bjorn changed probe velocity to projectile addition to be AddProbeVelocity - - Bjorn made sure to call RefreshKeys() when the player setup menu is - created so that everything is correct when it is first displayed (ie, key + - Bjorn made sure to call RefreshKeys() when the player setup menu is + created so that everything is correct when it is first displayed (ie, key binding buttons are hidden if player 1 is computer controlled). - - Bjorn fixed label bug for keybinding menu, label sizes were not adjusted + - Bjorn fixed label bug for keybinding menu, label sizes were not adjusted when labels were changed, now they are. 18 Sep-2006 - - Bjorn fixed the keybinding bug (keybinding was totally broken by the menu + - Bjorn fixed the keybinding bug (keybinding was totally broken by the menu refactor). - Bjorn added a spawn animation. - Bjorn added drawing some circles outside of the probe to further highlight which way the probe is aiming - + 9 Sep-2006 - Bjorn removed networkmanager and references to it from the new branch - - Bjorn created a no_network branch for creating packages w/o any network + - Bjorn created a no_network branch for creating packages w/o any network dependancies. - Bjorn added the packer subdirectory (for package generation) to CVS - - Bjorn added a script to run balder2d when it is installed in a system + - Bjorn added a script to run balder2d when it is installed in a system wide directory on a linux machine. - - Bjorn added a method to ConfigManager to generate a config file if the + - Bjorn added a method to ConfigManager to generate a config file if the requested config file does not exist. - - Bjorn added the ability to use an alternate config file, specified on + - Bjorn added the ability to use an alternate config file, specified on the command line as the first argument. - + 8 Sep-2006 - Bjorn added some menu files that somehow got missed when he refactored the menu system. 20 Aug-2006 - - Bjorn did a major refactoring of the menu code. Each submenu is now its - own file (well, almost, the multiplayer menus will have to be broken up - if they get worked on again). Almost everything that used to work seems - to be working again. Some testing is required to make sure this didn't + - Bjorn did a major refactoring of the menu code. Each submenu is now its + own file (well, almost, the multiplayer menus will have to be broken up + if they get worked on again). Almost everything that used to work seems + to be working again. Some testing is required to make sure this didn't introduce new bugs. 26-June-2006 @@ -218,16 +228,16 @@ "Host" button. - Reuben updated the todo.txt list with new networking goals, main menu background, player options menu updates. Some finished items were also - marked as done. + marked as done. 19-May-2006 - - Bjorn ripped out all the GNE network code in preparation for a network + - Bjorn ripped out all the GNE network code in preparation for a network overhaul. 29-Apr-2006 - Bjorn fixed the timer bug so it displays 0:00 at the end of the game. - - Bjorn fixed the bug where the explosion animation plays twice when - a probe runs out of life - however, probes for players that disconnect in + - Bjorn fixed the bug where the explosion animation plays twice when + a probe runs out of life - however, probes for players that disconnect in a multiplayer game will now simply dissapear, rather than exploding. 12-Apr-2006 @@ -276,7 +286,7 @@ 23-Mar-2006 - Bjorn reduced the projectile lifetime to 200 frames (was 400). - Bjorn added checks so that you can't configure keybindings/AI scripts for - more players than are set by "Number of Players" in the options menu. + more players than are set by "Number of Players" in the options menu. - Bjorn changed the ammo indicators so they rotate around the probe, rather than aligning with the aiming angle. This makes it easier to see. - Bjorn added menu.ogg and default.ogg to the music menu. These are not @@ -301,13 +311,13 @@ main menu it starts to play the "menu" music once again. - Reuben made it so SoundManager::PlayMusic() checks to see if the music option is enabled. - - Bjorn made aiListBox fire "changeAIScript" event directly when clicked, + - Bjorn made aiListBox fire "changeAIScript" event directly when clicked, instead of having next/previous or returning to the options menu cause it. - Bjorn hid keybining button/labels for computer players - Reuben PlayMusic(const char *name) and StopMusic() to the SoundManager. - - Bjorn added menu/sampleprobewidget which is now added to the player - setup menu, and is drawn by the gui, rather than blitting a probe sprite + - Bjorn added menu/sampleprobewidget which is now added to the player + setup menu, and is drawn by the gui, rather than blitting a probe sprite on top of the menu, which ended up showing on top of the AI dropdown. - Bjorn moved the AI selector box to the top of the player setup screen - Reuben added the 'music' directory and set the soundmanager to load @@ -325,20 +335,20 @@ - Reuben patched a bug in the main menu where only some options were saved on program exit and the rest were saved on game start. Now all options are saved on program exit and game start. - - Bjorn ran a code reformatter (astyle), just for fun, on player.cpp Yea - that pretty much obfuscates all the changes, but it looks nice :p. + - Bjorn ran a code reformatter (astyle), just for fun, on player.cpp Yea + that pretty much obfuscates all the changes, but it looks nice :p. - Bjorn aligned the livesleft and score indicators to the right side of the - stat box. + stat box. - Bjorn added a new font for lives left. - Reuben patched a bug in the lives remaining counter in the stat box to - hide the lives remaining counter when the game settings are set to - unlimited lives per round. - - Reuben update co-ax map background. - - Bjorn fixed a bug in Probe::AddImpulse() where push power would remain + hide the lives remaining counter when the game settings are set to + unlimited lives per round. + - Reuben update co-ax map background. + - Bjorn fixed a bug in Probe::AddImpulse() where push power would remain charged when bumped off a wall, or blown up. - - Bjorn fixed a bug in Probe::AddImpulse() where being bumped off a wall - was different in the horizontal or vertical directions, from a diagonal, - because of failing to use the magnitude of the collision velocity, and + - Bjorn fixed a bug in Probe::AddImpulse() where being bumped off a wall + was different in the horizontal or vertical directions, from a diagonal, + because of failing to use the magnitude of the collision velocity, and simply adding x and y componants in stead. - Bjorn bugfix for my own dumbassness (x^2 != x*x) - Reuben added a "Player Lives Remaining" counter to the players stat box. @@ -347,9 +357,9 @@ off speed indication. - Bjorn fixed the Probe-Probe collisions, so exploding probes don't collide - Bjorn fixed ArtificialController::py_IsLineOfSight so that it tests - evenly along x or y, avoiding missing walls when x's are close together + evenly along x or y, avoiding missing walls when x's are close together but y's are not. - - Bjorn did some more work on the ai scripts, so computer players will + - Bjorn did some more work on the ai scripts, so computer players will try to collect powerups. 20-Mar-2006 @@ -358,42 +368,42 @@ - Reuben changed the method in which the config file is saved so were is saves on program exit as well as start game. - Bjorn added a mock ArtificialController in 'ac.h' to the bin/scripts/test/ - directory, which will initialize the python interpreter and add the 'balder' - module, which many of the scripts require. The unit tests for the scripts + directory, which will initialize the python interpreter and add the 'balder' + module, which many of the scripts require. The unit tests for the scripts should now be run by running the 'runtests' executable in the test directory. - Reuben added broken functionality to the menu to save the selected AI script to the config file. NOTE: must work on this some more for it to - work properly. + work properly. - Reuben added functionality to the menu to load the selected AI script from the config file. - Reuben added ConfigManager::SetControlType(int, const char*). 19-Mar-2006 - - Bjorn added runtest.cpp, which should allow unit tests to be run on scripts + - Bjorn added runtest.cpp, which should allow unit tests to be run on scripts by including ArtificialController, which initializes the 'balder' module. - - Bjorn modified balderai script so the probes don't try to fire through + - Bjorn modified balderai script so the probes don't try to fire through walls, and don't fire as fast at far away targets (needs work still) 18-Mar-2006 - - Bjorn added balder.IsLineOfSight and balder.IsWall python mappings which + - Bjorn added balder.IsLineOfSight and balder.IsWall python mappings which map to py_IsLineOfSight and py_IsWall methods of ArtificialController - - Bjorn fixed the ArtificialController::ShutDown() function to properly + - Bjorn fixed the ArtificialController::ShutDown() function to properly empty the controlled probe list. - Bjorn restructured the scripts directory - Bjorn added some python exception handling to the ArtificiallController - DoControl method. Now if a script fails, the traceback and exception are - printed, and the probe is removed from the list of probes to control. - - Bjorn made ArtificialController have all static methods and a private - constructor, so it can no longer be instantiated. Instead, it now has + DoControl method. Now if a script fails, the traceback and exception are + printed, and the probe is removed from the list of probes to control. + - Bjorn made ArtificialController have all static methods and a private + constructor, so it can no longer be instantiated. Instead, it now has methods "Initialize" and "ShutDown". - - Bjorn moved python module and function loading functions into + - Bjorn moved python module and function loading functions into ComputerProbeControl structure, and put ComputerProbeControl in its own file. 17-Mar-2006 - Bjorn updated the probe sprite to let the amo show through a bit better. - Bjorn tweaked the ammo positioning in the probe for better visibility. - - Bjorn changed PROJECTILEWIDTH and PROJECTILEHEIGHT in probe.h to - AMMOWIDTH and AMMOHEIGHT, to avoid any possible conflicts with + - Bjorn changed PROJECTILEWIDTH and PROJECTILEHEIGHT in probe.h to + AMMOWIDTH and AMMOHEIGHT, to avoid any possible conflicts with PROJECTILEWIDTH and PROJECTILEHEIGHT defined in projectile.h. 17-Mar-2006 @@ -412,27 +422,27 @@ rendered on the top left corner of the probes sprite. 14-Mar-2006 - - Bjorn commented out the registering of the 'balder' module. More - thought is required here. For now it imports in the other scripts + - Bjorn commented out the registering of the 'balder' module. More + thought is required here. For now it imports in the other scripts from the balder.py file; but if constants change, this would have to - be updated. + be updated. - Bjorn added two new AI scripts, "randomai" and "simple_aimer". - - Bjorn fixed the python glue code so that if the AI script throws an + - Bjorn fixed the python glue code so that if the AI script throws an exception, it gets cleared, and doesn't kill the python interpreter. - - Bjorn added the ability to specify different ai scripts for different + - Bjorn added the ability to specify different ai scripts for different probes. 11-Mar-2006 - Bjorn fixed the "still able to fire when you're blowing up" bug. - - Bjorn fixed a bug where removed players were still trying to be + - Bjorn fixed a bug where removed players were still trying to be controlled by the AI. - - Bjorn changed AI scripts so computer probes now aim at the + - Bjorn changed AI scripts so computer probes now aim at the closest enemy probe. - Bjorn updated the mingw jamfile to add the python include and link stuff. 10-Mar-2006 - Bjorn added some cleanup stuff to gamemanager, I'm sure more is needed. - - Bjorn wrote a simple AI script which causes computer controlled + - Bjorn wrote a simple AI script which causes computer controlled probes to aim for player two and fire. - Bjorn added python bindings to artificialcontroller @@ -441,31 +451,31 @@ 3-Mar-2006 - Bjorn added AI framework. - - Bjorn added code to play a sound when shields are raised (though this + - Bjorn added code to play a sound when shields are raised (though this sound does not exist yet). - - Bjorn changed it so shields regenerate after a hit is taken. This + - Bjorn changed it so shields regenerate after a hit is taken. This should balance the shield powerup with the other two a bit more. - Bjorn made the extra spreadfire projectiles start a bit more spread out. - Bjorn updated the spreadfire indicator so it is easier to see. - - Bjorn tweaked the probe sprite a bit so hopefully it is easier to see + - Bjorn tweaked the probe sprite a bit so hopefully it is easier to see where the gun is aiming. - Bjorn updated the hit animation to be a bit more transparent. 2-Mar-2006 - Bjorn made shields draw around shielded probes. - - Bjorn increased the erased area around all sprites, which should + - Bjorn increased the erased area around all sprites, which should eliminate artifacts when we draw effects outside the probe radius. - Reuben added an indicator so that players may know when their probes - are recharging ammo faster with the powerup 'fast ammo recharge'. The + are recharging ammo faster with the powerup 'fast ammo recharge'. The players probe flashes a modified color once every 3 secs if the powerup is in effect. - Reuben added an additional layer to the probe sprites rendered to - show when a spread fire powerup has been aquired by a probe. + show when a spread fire powerup has been aquired by a probe. 1-Mar-2006 - - Bjorn updated the probe sprite so it looks more badass and added some + - Bjorn updated the probe sprite so it looks more badass and added some extra guns to be drawn when a spreadfire is picked up. - - Bjorn adjusted the life indicator on the probe so that it can never be + - Bjorn adjusted the life indicator on the probe so that it can never be larger than the probe radius, and full life takes up 2/3 of the probe radius - Reuben added player life indication into the probes that are rendered onto the game screen. @@ -481,22 +491,22 @@ - const probe_color RED = 3; - const probe_color GREEN = 4; - Reuben added sample probe to the 'Players Option' menu for color - sampling. + sampling. - Reuben fixed minor bug with sample probes sprite id. Changed sample probes sprite id from 'probe' to 'sampleprobe'. I did this to avoid - crash after playing game and returning to the players options menu. + crash after playing game and returning to the players options menu. 26-Feb-2006 - - Bjorn fixed the exploding projectile artifact bug. - - Bjorn removed probestate, projectilestate, and playerinputstate from + - Bjorn fixed the exploding projectile artifact bug. + - Bjorn removed probestate, projectilestate, and playerinputstate from the source tree as they never contained any real source. 25-Feb-2006 - - Bjorn made probes spawn "randomly" (still deterministic) when no + - Bjorn made probes spawn "randomly" (still deterministic) when no suitible spawn location can be found. - - Bjorn fixed Collisionmask so that it will return false for points with + - Bjorn fixed Collisionmask so that it will return false for points with negative values, instead of causing a segmentation fault. - - Bjorn removed old, commented out, collision code, as well as some other + - Bjorn removed old, commented out, collision code, as well as some other bits of commented old crusty stuff that was not needed. 24-Feb-2006 - Reuben modified the way the ConfigManager::GetPlayerColor() @@ -504,7 +514,7 @@ - Reuben modified the way the ConfigManager::SetPlayerColor() saves a 24 bit color. - Reuben added the action 'colorChange' to menu.cpp and then - connected 'redSlider', 'greenSlider' and 'blueSlider' to + connected 'redSlider', 'greenSlider' and 'blueSlider' to 'colorChange' on change. 23-Feb-2006 @@ -517,10 +527,10 @@ - Reuben added the Red, Green and Blue Slide controllers to the 'Player Options' menu. They currently load settings from the config file, but do not save settings to the config file. - - Bjorn added the redspectrum image to the player setup menu. - - Bjorn made the Player Setup container larger, so there was a + - Bjorn added the redspectrum image to the player setup menu. + - Bjorn made the Player Setup container larger, so there was a 100 pixel border on the right as well as the left (insteaf of 150). - - Bjorn switched the positions of the 'Player Setup' and + - Bjorn switched the positions of the 'Player Setup' and 'Sound and Video' menus in the options menu. 22-Feb-2006 @@ -532,14 +542,14 @@ 20-Feb-2006 - Reuben modified configmanager.cpp to format a 24 bit color from the - config file to a 32 bit color including an 8 bit alpha component. + config file to a 32 bit color including an 8 bit alpha component. 18-Feb-2006 - - Bjorn added "press Esc to return to main menu" to the text displayed + - Bjorn added "press Esc to return to main menu" to the text displayed when the game ends. - - Bjorn added experimental joystick support. Joystick controls are + - Bjorn added experimental joystick support. Joystick controls are hard coded to use joystick 0 to control the second player (controller[1]) - in *addition* to any keys that player might have mapped. + in *addition* to any keys that player might have mapped. Button0=fire, button1=stick/push, left/right on the direction pad rotate. 15-Feb-2006 @@ -548,7 +558,7 @@ the new probe blank on top of it. ** note, this introduced a new library dependancy, SDL_gfx ** - Bjorn changed the way entities are rendered. They now have a "DrawOnto" - method which takes a surface, (in our case, the screen) and draws the + method which takes a surface, (in our case, the screen) and draws the correct frame in the correct spot. - Bjorn tweaked the frame calculations to make aiming match match better. - Bjorn replaced the blue probe with a semi-transparent blank in preparation @@ -572,14 +582,14 @@ casts rather then assign and truncate to avoid compiler warnings. 5-Feb-2006 - - Bjorn tweaked the time delay for freindly projectiles to not + - Bjorn tweaked the time delay for freindly projectiles to not destroy each other, and tested to make sure they are freindly. - - Bjorn fixed the bounce collision detection to only test pixels - on the circle around the edge of an entity, using a better + - Bjorn fixed the bounce collision detection to only test pixels + on the circle around the edge of an entity, using a better algorithm to determine what pixels to test than before. 25-Jan-2006 - - Bjorn made the id of the last player remaining display when only one + - Bjorn made the id of the last player remaining display when only one remains. - Bjorn made player scores display according to their player ID so that when a player is eliminated, their scores will be left visible. @@ -589,8 +599,8 @@ 02-Jan-2006 - Bjorn made a clock display for timed games. - - Bjorn made "Game Over" and an optional additional message display - when one of the game mode conditions are met. The game then + - Bjorn made "Game Over" and an optional additional message display + when one of the game mode conditions are met. The game then waits for escape to be pressed and then returns to the main menu. - Bjorn added a DisplayText method to the Renderer. - Bjorn made the game end when the time runs out. @@ -609,55 +619,55 @@ 23-Dec-2005 - Bjorn added the NumberField class to the menu. - - Bjorn moved map selection to a submenu "Game Setup" of the Options - menu. Also added three game types to this menu. These are radio - selections. + - Bjorn moved map selection to a submenu "Game Setup" of the Options + menu. Also added three game types to this menu. These are radio + selections. 11-Sept-2005 - Bjorn changed "mutiplayer" in the main menu to "join network game". 28-Oct-2005 - Bjorn added/implemented serialize and deserilalize methods for - projectiles and powerups. Also added necesarry logic to the - network manager, and update functions in the gamemanager so that - these entities are propegated over the network when a client joins. + projectiles and powerups. Also added necesarry logic to the + network manager, and update functions in the gamemanager so that + these entities are propegated over the network when a client joins. - Bjorn made the powerup spawn interval load from the config file. - Bjorn made the recharge accellerator powerup be times 3 instead of 2. - + 13-Oct-2005 - - Bjorn fixed a bug where powerups would spawn outside the + - Bjorn fixed a bug where powerups would spawn outside the boundaries, (accidentally using width instead of height) - - Bjorn made probes gain health when picking up a powerup that + - Bjorn made probes gain health when picking up a powerup that the probe already has. 12-Oct-2005 - - Bjorn added effects for the shield and recharge acceleration + - Bjorn added effects for the shield and recharge acceleration powerups. - - Bjorn added sprites for more powerups and made generation + - Bjorn added sprites for more powerups and made generation random. Also selects the graphic for each powerup. - - Bjorn got the spreadfire powerups working. Powerups + - Bjorn got the spreadfire powerups working. Powerups are lost when the probe is destroyed. - - Bjorn fixed a segfault resusting from projectiles fired + - Bjorn fixed a segfault resusting from projectiles fired into walls. 7-Oct-2005 - - Bjorn made random (seeded from the frame number) powerups - appear every certain number of frames (hard coded, needs to go + - Bjorn made random (seeded from the frame number) powerups + appear every certain number of frames (hard coded, needs to go in config). 6-Oct-2005 - Bjorn added a powerup entity and a factory to produce it -22-Sep-2005 - - Bjorn made clients quit when the server disconnects - - Bjorn changed some static_cast to reinterpret_cast to - compile with gcc 4.0. This also appears possibly to have +22-Sep-2005 + - Bjorn made clients quit when the server disconnects + - Bjorn changed some static_cast to reinterpret_cast to + compile with gcc 4.0. This also appears possibly to have fixed synchronization problems somehow. - Bjorn added a test map with just an empty area - + 18-Sep-2005 - Bjorn fixed the map selection to load from the config file. - - Bjorn added deletion of probe_factory and projectile_factory + - Bjorn added deletion of probe_factory and projectile_factory when GameManager is deleted. 15-Sep-2005 @@ -665,52 +675,52 @@ 14-Sep-2005 - Bjorn added UpdatePlayer and UpdateProbe methods to GameManager - - Bjorn changed the network scheme so that entities can + - Bjorn changed the network scheme so that entities can serialize and deserialize themselves to and from a given buffer. - + 09-Sep-2005 - - Bjorn removed some (hopefully) unecisarry mutex locks in + - Bjorn removed some (hopefully) unecisarry mutex locks in networkmanager to avoid deadlock occuring. 07-Sep-2005 - - Bjorn added some more mutex locking to + - Bjorn added some more mutex locking to NetworkManager::DeliverEvents() to hopefully fix some server crashes. 05-Sep-2005 - - Bjorn added client notification to destroy probes and players + - Bjorn added client notification to destroy probes and players when other clients disconnect. - - Bjorn added code so that when a client disconnects from the - server, the probes which were under the control of that client - (which is also now kept track of) are destroyed and removed from - the game along with the player objects that controlled them. - (this only happens on the server, notifying other clients still + - Bjorn added code so that when a client disconnects from the + server, the probes which were under the control of that client + (which is also now kept track of) are destroyed and removed from + the game along with the player objects that controlled them. + (this only happens on the server, notifying other clients still needs to be implemented) 04-Sep-2005 - - Bjorn fixed the code so that the server no longer crashes when - the client disconnects. This is accomplished by checking that a - connection is still connected before sending anything over it and + - Bjorn fixed the code so that the server no longer crashes when + the client disconnects. This is accomplished by checking that a + connection is still connected before sending anything over it and (hopefully) removing the connection from the connection list. 30-March-2005 - - Bjorn made the client wait to deliver events until packets for that frame + - Bjorn made the client wait to deliver events until packets for that frame arrive from the server. 29-March-2005 - - Bjorn addded numbering of inputstate packets and started to implement - tracking by number on the client so it can be assured that all packets for + - Bjorn addded numbering of inputstate packets and started to implement + tracking by number on the client so it can be assured that all packets for a frame have arrived before the frame is processed. 25-March-2005 - - Bjorn changed input event scheduling on the server to be for the following + - Bjorn changed input event scheduling on the server to be for the following frame to help avoid missed input events. 24-March-2005 - Bjorn added sending input over the network. - - Bjorn fixed new player creation to occur in the correct frame, so now - (assuming packets arrive on time) as long as no one touches any controls - clients can join and everyone will stay synchronized. If a player creation - packet arrives after the frame that the player was created in, an error will + - Bjorn fixed new player creation to occur in the correct frame, so now + (assuming packets arrive on time) as long as no one touches any controls + clients can join and everyone will stay synchronized. If a player creation + packet arrives after the frame that the player was created in, an error will be printed; eventeully this should result in a complete update request. - Bjorn fixed a bug where the starting frame was not being set on the client - Bjorn made sound volume loaded from and saved to the config file. @@ -720,75 +730,75 @@ - Bjorn changed probe creation and respawning to take into account stuck status (and velocity in the case of respawn). -22-March-2005 +22-March-2005 - Bjorn changed the timing scheme so that the game will run faster if it gets behind the frame it should be at. This will helps client synchronization. 23-Feb-2005 - - Bjorn added a third player/probe creation method which takes position and - velocity parameters for the probe, which are now sent from the server to the + - Bjorn added a third player/probe creation method which takes position and + velocity parameters for the probe, which are now sent from the server to the client so the starting position and velocity of the probes are synchronized. 22-Feb-2005 - - Bjorn made the probe creation on the client work. The client now recieves - updates and creates all of the probes which exist on the server, and then - reqeusts creation of as many new probes as hhere are local players on the - client. The server creates those probes and sends back player id's for + - Bjorn made the probe creation on the client work. The client now recieves + updates and creates all of the probes which exist on the server, and then + reqeusts creation of as many new probes as hhere are local players on the + client. The server creates those probes and sends back player id's for each. - + 19-Feb-2005 - Bjorn did some more work on client initialization: - Clients now send a request for game state and the server responds - by sending the "update complete" packet that will eventually signal + Clients now send a request for game state and the server responds + by sending the "update complete" packet that will eventually signal to the client that the server has sent all of the necesarry information. - - Bjorn also changed the list of network connections to be a map, using + - Bjorn also changed the list of network connections to be a map, using the initial network remoteAddress of the reliable (tcp) connection for - the key. + the key. -18-Feb-2005 +18-Feb-2005 - Bjorn did more work on requesting and sending initial game state. 17-Feb-2005 - - Bjorn added a GameStatePacket and moved some of the packet source to + - Bjorn added a GameStatePacket and moved some of the packet source to packets.cpp instead of having everithing in the header. -16-Feb-2005 - - Bjorn fixed connections so the client can connect and get the map name - without causing a crash on either side. +16-Feb-2005 + - Bjorn fixed connections so the client can connect and get the map name + without causing a crash on either side. - Bjorn added a very basic log class to use instead of std::cout << for all - messages. This way logging capabilities can easily be extented. + messages. This way logging capabilities can easily be extented. -15-Feb-2005 - - Bjorn moved GNE initialization and shutdown into main, so now at least +15-Feb-2005 + - Bjorn moved GNE initialization and shutdown into main, so now at least the network stuff doesn't break anithing that used to work. - + 01-Feb-2005 - Bjorn started network stuff, added packets and a connection listener - + 28-Jan-2005 - - Bjorn made the map selection dropdown only list directories that actually - contain all of the files needed for a map (or at least named that way). + - Bjorn made the map selection dropdown only list directories that actually + contain all of the files needed for a map (or at least named that way). - Bjorn added a multiplayer menu. 27-Jan-2005 - Bjorn made map selection a drop down menu item instead of a text box. - + 22-Jan-2005 - Bjorn fixed the bug where blits did not work in fullscreen mode in windows. - - Bjorn fixed a bug where probes could push off faster than the supposed + - Bjorn fixed a bug where probes could push off faster than the supposed maximum speed. - + 17-Jan-2005 - Bjorn made push off speed variable. - - Bjorn made probes have a lasting explosion so one exploding probe can + - Bjorn made probes have a lasting explosion so one exploding probe can destroy multiple other probes. 15-Jan-2005 - - Bjorn made the volume control slider and fullscreen checkboxes in - the sound/video options menu work. Fullscreen mode shows no sprites + - Bjorn made the volume control slider and fullscreen checkboxes in + the sound/video options menu work. Fullscreen mode shows no sprites though for some reason. - Bjorn made keybinding on the player setup menu actualy do something. - + 11-Jan-2005 - Bjorn made it possible to stick to walls and push off with the same key. - Bjorn made keybindings be displayed it the player configuration menu. No @@ -802,17 +812,17 @@ 06-Jan-2005 - Bjorn added a text feild it the options menu to select the map to use. - - Bjorn added sound options to the options menu to toggle on or off sound - or music and adjust the volume. None of these controls do anything yet + - Bjorn added sound options to the options menu to toggle on or off sound + or music and adjust the volume. None of these controls do anything yet however. 24-Dec-2004 - - Bjorn fixed a bug where a dying probe that was hit would restart its - explosion sequence and give another 3 points to the player firing that + - Bjorn fixed a bug where a dying probe that was hit would restart its + explosion sequence and give another 3 points to the player firing that shot. - Bjorn made scores be displayed in the status information for each probe. - The current scheme is 1 point for a hit, 3 for a kill, -1 if you hit - yourself, and -1 for dying. + The current scheme is 1 point for a hit, 3 for a kill, -1 if you hit + yourself, and -1 for dying. - Bjorn added the options menu and an option to set the number of players. 22-Dec-2004 @@ -821,72 +831,72 @@ 21-Dec-2004 - Bjorn moved a few probe "constants" to the config file. more will follow. - Bjorn made the ConfigManager stuff static. - + 20-Dec-2004 - Bjorn made the background color of each status display match (sorta) the probe color for that player. 18-Dec-2004 - Bjorn added a status display area with indicators for ammo and life - remaining for each probe. - - Bjorn added convenience function to the renderer to blit an arbitrary + remaining for each probe. + - Bjorn added convenience function to the renderer to blit an arbitrary surface to the screen at some location (mostly for HUD/status stuff). 17-Dec-2004 - - Bjorn added the maptags.xml file for maps. This file currently - defines the dimensions of the map, and contains a list of spawn - locations for the map. - - Bjorn made the map to load configurable (via config.xml). Maps are + - Bjorn added the maptags.xml file for maps. This file currently + defines the dimensions of the map, and contains a list of spawn + locations for the map. + - Bjorn made the map to load configurable (via config.xml). Maps are now loaded from the maps/mapname directory. 16-Dec-2004 - - Bjorn made number of players configurable via config.xml and fixed bug - where having a keybinding not found in the config file would cause the + - Bjorn made number of players configurable via config.xml and fixed bug + where having a keybinding not found in the config file would cause the game to crash when input tried to use a null pointer as a key. 11-Dec-2004 - Bjorn update the game field, adding a bit more geometry. - - Bjorn changed how players initially spawn (so they use spawn locations) - and how they respawn (no longer moving and now "stuck") so players can + - Bjorn changed how players initially spawn (so they use spawn locations) + and how they respawn (no longer moving and now "stuck") so players can choose which direction they want to move after they respawn. - Bjorn made 3 players start by default. Still need to make this variable. -27-Nov-2004 - - Bjorn added a circular linked list of spawn locations so that afte a - probe is destroyed it will respawn in the next location, checking to make - sure that spot is not already occupied (prevents spawning on top of other - probes). - +27-Nov-2004 + - Bjorn added a circular linked list of spawn locations so that afte a + probe is destroyed it will respawn in the next location, checking to make + sure that spot is not already occupied (prevents spawning on top of other + probes). + 26-Nov-2004 - - Bjorn added sounds support. All sounds are in the sounds/ directory. - The sound manager plays the "sounds/music.ogg" file as music and proobes + - Bjorn added sounds support. All sounds are in the sounds/ directory. + The sound manager plays the "sounds/music.ogg" file as music and proobes now play sounds for all actions, if the sound file exists for that action. - + 25-Nov-2004 - Bjorn added animation to the projectiles and a hit animation to the probes - + 24-Nov-2004 - Bjorn added different color probes and death (exploding) animations for dying probes. - - Bjorn changed the input class so that there is one Input instance in the - game which is responsible for doing input for all players. It loads + - Bjorn changed the input class so that there is one Input instance in the + game which is responsible for doing input for all players. It loads keybindings from the ConfigManager and maps them to the local players. - Bjorn added a publically accessible ConfigManager to the GameManager. - + 23-Nov-2004 - - Bjorn added the ConfigManager class which uses tinyxml to load and parse - a config file. Also added the config file config.xml and the source for + - Bjorn added the ConfigManager class which uses tinyxml to load and parse + a config file. Also added the config file config.xml and the source for tinyxml to the repository. 19-Nov-2004 - Bjorn fixed probe starting locations so they depend on id. - Bjorn made sticking to walls work and changed the keybindings a bit. - - Bjorn reduded the speed at which probes turn and made them respawn with + - Bjorn reduded the speed at which probes turn and made them respawn with some velocity. - Bjorn made probes transfer momentum between each other when colliding. - - Bjorn fixed the bug where entities with overlapping bounding boxes would + - Bjorn fixed the bug where entities with overlapping bounding boxes would have parts of one entity erased by the other. - + 17-Nov-2004 - Bjorn made entities collide with each other. - Bjorn Created history.txt Modified: include/imageloader.h =================================================================== --- include/imageloader.h 2007-10-08 23:44:38 UTC (rev 67) +++ include/imageloader.h 2007-10-11 06:12:18 UTC (rev 68) @@ -22,12 +22,16 @@ #define IMAGELOADER_H #include <SDL/SDL_image.h> +#include <guichan.hpp> +#include <guichan/sdl.hpp> namespace Balder{ class ImageLoader{ public: - static SDL_Surface* LoadImage(const char* imagename); + static SDL_Surface* LoadImage(const char* filename); + static gcn::Image* LoadGcnImage(const char* filename); + static gcn::ImageFont* LoadGcnImageFont(const char* filename); }; } #endif // LOG_H Modified: src/imageloader.cpp =================================================================== --- src/imageloader.cpp 2007-10-08 23:44:38 UTC (rev 67) +++ src/imageloader.cpp 2007-10-11 06:12:18 UTC (rev 68) @@ -21,10 +21,33 @@ #include "imageloader.h" #include "log.h" #include <physfs.h> +#include <string> using namespace Balder; -SDL_Surface* ImageLoader::LoadImage(const char* imagename) +std::string GetFullPath(const char* filename) { - return IMG_Load(imagename); + const char* path = PHYSFS_getRealDir(filename); + if (NULL == path) { + Log::output(std::string("file not found: ").append(filename)); + return 0; + } + std::string fullpath(path); + fullpath.append(PHYSFS_getDirSeparator()).append(filename); + return fullpath; } + +SDL_Surface* ImageLoader::LoadImage(const char* filename) +{ + return IMG_Load(GetFullPath(filename).c_str()); +} + +gcn::Image* ImageLoader::LoadGcnImage(const char* filename) +{ + return gcn::Image::load(GetFullPath(filename).c_str()); +} + +gcn::ImageFont* ImageLoader::LoadGcnImageFont(const char* filename) +{ + return new gcn::ImageFont(GetFullPath(filename).c_str()); +} Modified: src/main.cpp =================================================================== --- src/main.cpp 2007-10-08 23:44:38 UTC (rev 67) +++ src/main.cpp 2007-10-11 06:12:18 UTC (rev 68) @@ -22,6 +22,8 @@ #include <SDL/SDL_image.h> #include <SDL/SDL_thread.h> #include <SDL/SDL_mixer.h> +#include <physfs.h> +#include <string> #include "gamemanager.h" #include "renderer.h" #include "soundmanager.h" @@ -33,8 +35,19 @@ using namespace std; using namespace Balder; +bool setConfig(const char* data_directory = NULL); + int main(int argc, char *argv[]) { + PHYSFS_init(argv[0]); + setConfig(argv[2]); + char **searchpath = PHYSFS_getSearchPath(); + char **i; + Log::output("search path set to:"); + for ( i=searchpath; *i != NULL; ++i){ + Log::output(*i); + } + PHYSFS_freeList(searchpath); // first, load the config file try{ Log::output("Loading config manager"); @@ -176,3 +189,48 @@ SDL_Quit(); return 0; } + +bool setConfig(const char* data_directory) +{ + const char *basedir = PHYSFS_getBaseDir(); + const char *userdir = PHYSFS_getUserDir(); + const char *dirsep = PHYSFS_getDirSeparator(); + const char *dir = "balder2d"; + + string str(userdir); + str.append(dirsep).append(dir); + + if (!PHYSFS_setWriteDir(str.c_str())) + { + cout << "setWriteDir failed" << endl; + int no_write = 0; + if ( (PHYSFS_setWriteDir(userdir)) && + (PHYSFS_mkdir(dir)) ) + { + cout << "set write directory and created " << dir << " directory" <<endl; + if (!PHYSFS_setWriteDir(str.c_str())){ + cout << "failed to set write directory to " << dir << endl; + no_write = 1; + } + } /* if */ + else + { + no_write = 1; + } /* else */ + + if (no_write) + { + cout << "setting write directory to null " << endl; + PHYSFS_setWriteDir(NULL); /* just in case. */ + } /* if */ + } /* if */ + + /* Put write dir first in search path... */ + PHYSFS_addToSearchPath(str.c_str(), 0); + // add the data directory if it was specified + if (data_directory != NULL){ PHYSFS_addToSearchPath(data_directory,1);} + /* Put base path on search path... */ + PHYSFS_addToSearchPath(basedir, 1); + + return(true); +} Modified: src/menu/ailistmodel.cpp =================================================================== --- src/menu/ailistmodel.cpp 2007-10-08 23:44:38 UTC (rev 67) +++ src/menu/ailistmodel.cpp 2007-10-11 06:12:18 UTC (rev 68) @@ -19,8 +19,7 @@ ***************************************************************************/ #include "menu/ailistmodel.h" -#include "boost/filesystem/operations.hpp" -#include "boost/filesystem/path.hpp" +#include <physfs.h> using namespace Balder; @@ -33,30 +32,21 @@ void AIListModel::FindScripts() { - // always show Human option as it disables any ai scripting so that a user may play. + std::string script_dir("scripts/"); + // always show Human option as it disables any ai scripting so that a user may play. scriptnames.push_back("Human"); - ++numScripts; - - boost::filesystem::path script_path( "scripts/" ); - boost::filesystem::directory_iterator end_iter; - for ( boost::filesystem::directory_iterator dir_itr( script_path ); dir_itr != end_iter; ++dir_itr ) { - if ( !boost::filesystem::is_directory( *dir_itr ) ) { - // lets see if this file really is a script - const std::string script_ext = ".py"; - std::string file_name = dir_itr->leaf(); - - int extpos = file_name.rfind(script_ext); - std::string file_ext = file_name; - file_ext.erase(0, extpos); - - // if this file really is a AI script then display it in the selection list. - if (file_ext == script_ext) { - file_name.erase(extpos, file_name.size()); - scriptnames.push_back(file_name); - ++numScripts; - } - } + ++numScripts; + char **files = PHYSFS_enumerateFiles("scripts/"); + char **i; + std::string script; + for (i = files; *i != NULL; i++){ + script = *i; + if (!PHYSFS_isDirectory((script_dir+script).c_str()) && !script.compare(script.size()-3, 3, ".py")){ + scriptnames.push_back(script.substr(0,script.size()-3)); + ++numScripts; } + } + PHYSFS_freeList(files); } Modified: src/menu/maplistmodel.cpp =================================================================== --- src/menu/maplistmodel.cpp 2007-10-08 23:44:38 UTC (rev 67) +++ src/menu/maplistmodel.cpp 2007-10-11 06:12:18 UTC (rev 68) @@ -19,8 +19,7 @@ ***************************************************************************/ #include "menu/maplistmodel.h" -#include "boost/filesystem/operations.hpp" -#include "boost/filesystem/path.hpp" +#include <physfs.h> using namespace Balder; @@ -31,44 +30,39 @@ MapListModel::~MapListModel() {} -bool find_file( const boost::filesystem::path & dir_path, const std::string & file_name) +bool find_file( const std::string map_dir, const std::string & file_name) { - if ( !exists( dir_path ) ) return false; - boost::filesystem::directory_iterator end_itr; // default construction yields past-the-end - for ( boost::filesystem::directory_iterator itr( dir_path ); - itr != end_itr; - ++itr ) - { - if ( is_directory( *itr ) ) - { - if ( find_file( *itr, file_name ) ) return true; + char **files = PHYSFS_enumerateFiles(map_dir.c_str()); + char **i; + for (i = files; *i != NULL; i++){ + if (file_name == *i) { + PHYSFS_freeList(files); + return true; + } } - else if ( itr->leaf() == file_name ) // see below - { - return true; - } - } - return false; + PHYSFS_freeList(files); + return false; } void MapListModel::FindMaps() { - boost::filesystem::path map_path( "maps/" ); - boost::filesystem::directory_iterator end_iter; - for ( boost::filesystem::directory_iterator dir_itr( map_path ); - dir_itr != end_iter; - ++dir_itr ) - { - if ( boost::filesystem::is_directory( *dir_itr ) ) { + std::string map_dir("maps/"); + char **files = PHYSFS_enumerateFiles(map_dir.c_str()); + char **i; + std::string mapname; + for (i = files; *i != NULL; i++){ + mapname = *i; + if (PHYSFS_isDirectory((map_dir+mapname).c_str())){ // lets try to check that this directory really contains a map - if (find_file(*dir_itr, "maptags.xml") - && find_file(*dir_itr, "geometry.png") - && find_file(*dir_itr, "background.png") ) { - mapnames.push_back(dir_itr->leaf()); + if (find_file(map_dir+mapname, "maptags.xml") + && find_file(map_dir+mapname, "geometry.png") + && find_file(map_dir+mapname, "background.png") ) { + mapnames.push_back(mapname); ++numMaps; - } + } } } + PHYSFS_freeList(files); } Modified: src/menu/menu.cpp =================================================================== --- src/menu/menu.cpp 2007-10-08 23:44:38 UTC (rev 67) +++ src/menu/menu.cpp 2007-10-11 06:12:18 UTC (rev 68) @@ -22,6 +22,7 @@ #include "menu/menu.h" #include "menu/mainmenu.h" #include "soundmanager.h" +#include "imageloader.h" #include <iostream> using namespace Balder; @@ -60,7 +61,7 @@ // Load the image font. try { - font = new gcn::ImageFont("menu/balderfont.png"); + font = ImageLoader::LoadGcnImageFont("menu/balderfont.png"); } catch(gcn::Exception e) { @@ -79,9 +80,9 @@ /* Strip Location */ 0, /* Frame Width */100, /* Frame Height */100, /* Base Frame Index */0, /* Starting Frame Index */1, /* Animation Frame Quantity Including Starting Frame */3, /* Frame Interval in MS (1Sec == 1000MS) */1); - backgroundImage = gcn::Image::load("menu/menubackground.png"); + backgroundImage = ImageLoader::LoadGcnImage("menu/menubackground.png"); backgroundIcon = new gcn::Icon(backgroundImage); - headerImage = gcn::Image::load("menu/balderheader.png"); + headerImage = ImageLoader::LoadGcnImage("menu/balderheader.png"); headerIcon = new gcn::Icon(headerImage); topContainer->add(backgroundIcon, 0, 0); topContainer->add(pulseAnimation,575,50); Modified: src/menu/playersetup.cpp =================================================================== --- src/menu/playersetup.cpp 2007-10-08 23:44:38 UTC (rev 67) +++ src/menu/playersetup.cpp 2007-10-11 06:12:18 UTC (rev 68) @@ -25,6 +25,7 @@ #include "menu/sampleprobewidget.h" #include "menu/ailistmodel.h" #include "input.h" +#include "imageloader.h" #include <sstream> using namespace Balder; @@ -94,7 +95,7 @@ playerColor = playerColor >> 8; Uint8 cRed = Uint8(playerColor); - redImage= gcn::Image::load("menu/redspectrum.png"); + redImage= ImageLoader::LoadGcnImage("menu/redspectrum.png"); redIcon = new gcn::Icon(redImage); redSlider = new gcn::Slider(0, 255); redSlider->setWidth(redIcon->getWidth()); @@ -103,7 +104,7 @@ redSlider->setActionEventId("colorChange"); redSlider->addActionListener(this); - greenImage= gcn::Image::load("menu/greenspectrum.png"); + greenImage= ImageLoader::LoadGcnImage("menu/greenspectrum.png"); greenIcon = new gcn::Icon(greenImage); greenSlider = new gcn::Slider(0, 255); greenSlider->setWidth(redIcon->getWidth()); @@ -112,7 +113,7 @@ greenSlider->setActionEventId("colorChange"); greenSlider->addActionListener(this); - blueImage= gcn::Image::load("menu/bluespectrum.png"); + blueImage= ImageLoader::LoadGcnImage("menu/bluespectrum.png"); blueIcon = new gcn::Icon(blueImage); blueSlider = new gcn::Slider(0, 255); blueSlider->setWidth(redIcon->getWidth()); Modified: src/menu/sampleprobewidget.cpp =================================================================== --- src/menu/sampleprobewidget.cpp 2007-10-08 23:44:38 UTC (rev 67) +++ src/menu/sampleprobewidget.cpp 2007-10-11 06:12:18 UTC (rev 68) @@ -25,13 +25,14 @@ #include <SDL/SDL_gfxPrimitives.h> #include "menu/sampleprobewidget.h" #include "probe.h" +#include "imageloader.h" #include "log.h" using namespace Balder; SampleProbeWidget::SampleProbeWidget(): probeFrame(0), probeColor(0) { // Loads sprite for sample probe. - probeSpriteImage = gcn::Image::load("probe.png"); + probeSpriteImage = ImageLoader::LoadGcnImage("probe.png"); if (probeSpriteImage == 0){ throw "could not load Probe sprite!"; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <hol...@us...> - 2007-10-25 04:43:18
|
Revision: 78 http://balder.svn.sourceforge.net/balder/?rev=78&view=rev Author: holomorph Date: 2007-10-24 21:43:20 -0700 (Wed, 24 Oct 2007) Log Message: ----------- fixed life,time,score not set unless toggled Modified Paths: -------------- history.txt src/menu/gamesetup.cpp Modified: history.txt =================================================================== --- history.txt 2007-10-25 04:39:19 UTC (rev 77) +++ history.txt 2007-10-25 04:43:20 UTC (rev 78) @@ -4,6 +4,8 @@ History entries are in reverse chronological order (newest entries first). 24 Oct-2007 + - Bjorn fixed the bug where life, time, and score limits were not set + unless the option was toggled via the checkbox. - Bjorn added a function to imageloader to unload (SDL_FreeSurface()) an image, instead of letting it be called directly - Bjorn made it so imageloader will only load an image once, after that it Modified: src/menu/gamesetup.cpp =================================================================== --- src/menu/gamesetup.cpp 2007-10-25 04:39:19 UTC (rev 77) +++ src/menu/gamesetup.cpp 2007-10-25 04:43:20 UTC (rev 78) @@ -97,7 +97,6 @@ scoreLimitValue->setValue(score); scoreLimitValue->setEnabled(score > 0); scoreLimitValue->setVisible(score > 0); - ConfigManager::SetIntValue("GameSetup", "ScoreLimit", scoreLimitValue->getValue()); } else if (action.getId() == "toggleTimeLimit") { @@ -107,7 +106,6 @@ timeLimitValue->setValue(time); timeLimitValue->setEnabled(time > 0); timeLimitValue->setVisible(time > 0); - ConfigManager::SetIntValue("GameSetup", "TimeLimit", timeLimitValue->getValue()); } else if (action.getId() == "toggleLifeLimit") { @@ -117,10 +115,12 @@ lifeLimitValue->setValue(life); lifeLimitValue->setEnabled(life > 0); lifeLimitValue->setVisible(life > 0); - ConfigManager::SetIntValue("GameSetup", "LifeLimit", lifeLimitValue->getValue()); } else if (action.getId() == "back") { + ConfigManager::SetIntValue("GameSetup", "ScoreLimit", scoreLimitValue->getValue()); + ConfigManager::SetIntValue("GameSetup", "TimeLimit", timeLimitValue->getValue()); + ConfigManager::SetIntValue("GameSetup", "LifeLimit", lifeLimitValue->getValue()); hide(); parent->show(); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <col...@us...> - 2007-11-30 20:16:26
|
Revision: 87 http://balder.svn.sourceforge.net/balder/?rev=87&view=rev Author: colalord Date: 2007-11-30 12:16:26 -0800 (Fri, 30 Nov 2007) Log Message: ----------- 19 Nov-2007 - Reuben add widgetskinnedcheckbox.cpp/h and menuskin.png Modified Paths: -------------- Balder2D-Win-README.txt Balder2D-Win.cbp history.txt include/menu/gamesetup.h src/menu/gamesetup.cpp Added Paths: ----------- bin/menu/menuskin.png include/menu/widgetskinnedcheckbox.h src/menu/widgetskinnedcheckbox.cpp Modified: Balder2D-Win-README.txt =================================================================== --- Balder2D-Win-README.txt 2007-11-19 19:07:56 UTC (rev 86) +++ Balder2D-Win-README.txt 2007-11-30 20:16:26 UTC (rev 87) @@ -128,22 +128,14 @@ 14. There is no DLL file for this library. ================================================================================== -Building & Installing Boost Libraries --------------------------------------- - 1. For a complete description on how to install Boost go to: http://www.boost.org/more/getting_started.html - 2. or continue here by downloading "boost_1_33_1.zip" or later from: http://sourceforge.net/project/showfiles.php?group_id=7586&package_id=8041 - 3. Download "boost-jam-3.1.11-1-ntx86.zip" or later from: http://sourceforge.net/project/showfiles.php?group_id=7586&package_id=72941 - 4. Extract all of the files to "C:\tmp\". - 5. Run the MSYS shell. - 6. Type: cd /c/tmp/boost-jam-3.1.11-1-ntx86 - 7. Type (copying "bjam.exe" to the MSYS %PATH% directory): cp bjam.exe /usr/local/bin/ - 8. Type: cd /c/tmp/boost_1_33_1/ - 9. Type: bjam.exe -sTOOLS=mingw boost_filesystem - 10. MSYS will start building the Boost File System libraries. - 11. Type: cp bin/boost/libs/filesystem/build/libboost_filesystem.lib/mingw/release/libboost_filesystem-mgw-1_33_1.lib /usr/local/lib/ - 12. Type: cp boost /usr/local/include/ -r - 13. There is no DLL file for this library. +Building & Installing PhysFS Libraries +--------------------------------------- + 1. CMakeCache.txt + line 137: CMAKE_USE_RELATIVE_PATHS:BOOL=ON + 2. platforms/windows.c + rem out lines 334 - 340 + ================================================================================== Installing Guichan Libraries ----------------------------- Modified: Balder2D-Win.cbp =================================================================== --- Balder2D-Win.cbp 2007-11-19 19:07:56 UTC (rev 86) +++ Balder2D-Win.cbp 2007-11-30 20:16:26 UTC (rev 87) @@ -70,6 +70,7 @@ <Unit filename="include\menu\skinnedbuttonwidget.h" /> <Unit filename="include\menu\soundvideo.h" /> <Unit filename="include\menu\submenu.h" /> + <Unit filename="include\menu\widgetskinnedcheckbox.h" /> <Unit filename="include\player.h" /> <Unit filename="include\powerup.h" /> <Unit filename="include\powerupfactory.h" /> @@ -110,6 +111,7 @@ <Unit filename="src\menu\skinnedbuttonwidget.cpp" /> <Unit filename="src\menu\soundvideo.cpp" /> <Unit filename="src\menu\submenu.cpp" /> + <Unit filename="src\menu\widgetskinnedcheckbox.cpp" /> <Unit filename="src\player.cpp" /> <Unit filename="src\powerup.cpp" /> <Unit filename="src\powerupfactory.cpp" /> Added: bin/menu/menuskin.png =================================================================== (Binary files differ) Property changes on: bin/menu/menuskin.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Modified: history.txt =================================================================== --- history.txt 2007-11-19 19:07:56 UTC (rev 86) +++ history.txt 2007-11-30 20:16:26 UTC (rev 87) @@ -4,6 +4,9 @@ History entries are in reverse chronological order (newest entries first). 19 Nov-2007 + - Reuben add widgetskinnedcheckbox.cpp/h and menuskin.png + +19 Nov-2007 - Reuben removed ending slashes from the python search paths because they cause an issue with python when it goes to import modules. Modified: include/menu/gamesetup.h =================================================================== --- include/menu/gamesetup.h 2007-11-19 19:07:56 UTC (rev 86) +++ include/menu/gamesetup.h 2007-11-30 20:16:26 UTC (rev 87) @@ -27,7 +27,8 @@ { class SampleMapWidget; class MapListModel; -class SkinnedButtonWidget; +class SkinnedButtonWidget; +class WidgetSkinnedCheckBox; class GameSetupMenu:public SubMenu { @@ -43,7 +44,7 @@ gcn::DropDown* mapDropDown; gcn::ScrollArea* mapScrollArea; gcn::ListBox* mapListBox; - gcn::CheckBox* scoreLimitSelector; + WidgetSkinnedCheckBox* scoreLimitSelector; gcn::CheckBox* timeLimitSelector; gcn::CheckBox* lifeLimitSelector; NumberField* scoreLimitValue; Added: include/menu/widgetskinnedcheckbox.h =================================================================== --- include/menu/widgetskinnedcheckbox.h (rev 0) +++ include/menu/widgetskinnedcheckbox.h 2007-11-30 20:16:26 UTC (rev 87) @@ -0,0 +1,58 @@ +/*************************************************************************** + * Copyright (C) 2006 by Bjorn Hansen * + * hol...@us... * + * * + * This program is free software; you can redistribute it and/or modify * + * it under the terms of the GNU General Public License as published by * + * the Free Software Foundation; either version 2 of the License, or * + * (at your option) any later version. * + * * + * This program is distributed in the hope that it will be useful, * + * but WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * + * GNU General Public License for more details. * + * * + * You should have received a copy of the GNU General Public License * + * along with this program; if not, write to the * + * Free Software Foundation, Inc., * + * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * + ***************************************************************************/ + +#ifndef BALDERWIDGETSKINNEDCHECKBOX_H +#define BALDERWIDGETSKINNEDCHECKBOX_H + +#define checkboxUnChecked 0 +#define checkboxChecked 1 +#define widgetFocused 2 + +#include <guichan/widgets/checkbox.hpp> +#include "../balder2dtypes.h" + +namespace Balder +{ + /** + * A check box with a skin applied to it's surface. + */ + class WidgetSkinnedCheckBox: public gcn::CheckBox + { + public: + // Constructor and Destructor. + WidgetSkinnedCheckBox(std::string, std::string, unsigned int = 0, bool = false); + ~WidgetSkinnedCheckBox(); + + // Inherited from gcn::Widget + virtual void draw(gcn::Graphics* graphics); + virtual void drawBorder(gcn::Graphics* graphics); + + private: + // Skin Variables. + SDL_Surface* skinFrameStrip; + std::string skinFileName; + unsigned int skinStripLocation; + + // Button Variables. + unsigned int checkboxState; + }; +} + +#endif // BALDERWIDGETSKINNEDCHECKBOX_H Modified: src/menu/gamesetup.cpp =================================================================== --- src/menu/gamesetup.cpp 2007-11-19 19:07:56 UTC (rev 86) +++ src/menu/gamesetup.cpp 2007-11-30 20:16:26 UTC (rev 87) @@ -20,7 +20,8 @@ #include "menu/gamesetup.h" #include "configmanager.h" -#include "menu/samplemapwidget.h" +#include "menu/samplemapwidget.h" +#include "menu/widgetskinnedcheckbox.h" #include "menu/maplistmodel.h" using namespace Balder; @@ -48,9 +49,10 @@ int score = ConfigManager::GetIntValue("GameSetup", "ScoreLimit"); int time = ConfigManager::GetIntValue("GameSetup", "TimeLimit"); int life = ConfigManager::GetIntValue("GameSetup", "LifeLimit"); - scoreLimitSelector = new gcn::CheckBox("Maximum Score", score > 0); + scoreLimitSelector = new WidgetSkinnedCheckBox("Maximum Score", "menu/menuskin.png", 0, score > 0); + scoreLimitSelector->setHeight(32); scoreLimitSelector->setActionEventId("toggleScoreLimit"); - scoreLimitSelector->addActionListener(this); + scoreLimitSelector->addActionListener(this); timeLimitSelector = new gcn::CheckBox("Time (minutes)", time > 0); timeLimitSelector->setActionEventId("toggleTimeLimit"); timeLimitSelector->addActionListener(this); Added: src/menu/widgetskinnedcheckbox.cpp =================================================================== --- src/menu/widgetskinnedcheckbox.cpp (rev 0) +++ src/menu/widgetskinnedcheckbox.cpp 2007-11-30 20:16:26 UTC (rev 87) @@ -0,0 +1,86 @@ +/*************************************************************************** + * Copyright (C) 2006 by Bjorn Hansen * + * hol...@us... * + * * + * This program is free software; you can redistribute it and/or modify * + * it under the terms of the GNU General Public License as published by * + * the Free Software Foundation; either version 2 of the License, or * + * (at your option) any later version. * + * * + * This program is distributed in the hope that it will be useful, * + * but WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * + * GNU General Public License for more details. * + * * + * You should have received a copy of the GNU General Public License * + * along with this program; if not, write to the * + * Free Software Foundation, Inc., * + * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * + ***************************************************************************/ + +#include <guichan/exception.hpp> +#include <guichan/sdl/sdlgraphics.hpp> +#include <guichan/font.hpp> +#include <SDL/SDL.h> +#include <SDL/SDL_image.h> +#include "menu/widgetskinnedcheckbox.h" +#include "imageloader.h" +using namespace Balder; + +WidgetSkinnedCheckBox::WidgetSkinnedCheckBox(std::string cbC, std::string sFN, unsigned int sSL, bool cbS): + gcn::CheckBox(cbC, cbS), skinFileName(sFN), skinStripLocation(sSL), checkboxState(cbS) +{ + setBorderSize(0); + + // Load Skin Frame Strip from File. + skinFrameStrip = ImageLoader::LoadImage(skinFileName.c_str()); + if (skinFrameStrip == 0) { + throw "could not load checkbox skin!"; + } +} + +WidgetSkinnedCheckBox::~WidgetSkinnedCheckBox() +{ + if (skinFrameStrip != 0) { + SDL_FreeSurface(skinFrameStrip); + } +} + +void WidgetSkinnedCheckBox::draw(gcn::Graphics* graphics) +{ + // get screen that the menu is drawn on. + SDL_Surface *screen = dynamic_cast<gcn::SDLGraphics*>(graphics)->getTarget(); + + // get location of the widget on the menu screen. + int x,y; + gcn::Widget::getAbsolutePosition(x,y); + + if (!isMarked()) { + checkboxState = checkboxUnChecked; + } + else { + checkboxState = checkboxChecked; + } + + if (isFocused()) { + checkboxState += widgetFocused; + } + + // draw widget onto menu screen at widget location. + SDL_Rect rectSrc = {checkboxState*getHeight(), skinStripLocation, getHeight(), getHeight()}; + SDL_Rect rectDest = {x, y, /*width is ignored*/0, /*height is ignored*/0}; + SDL_BlitSurface(skinFrameStrip, &rectSrc, screen, &rectDest); + + // Need to draw caption label to the right of the checkbox. + // Align label to the right of the checkbox. + int textX = getHeight() + 5; + int textY = getHeight() / 2 - getFont()->getHeight() / 2; + + graphics->setFont(getFont()); + graphics->drawText(getCaption(), textX, textY, gcn::Graphics::LEFT); +} + +void WidgetSkinnedCheckBox::drawBorder(gcn::Graphics* graphics) +{ + // Borders are not drawn for skinned buttons. +} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <hol...@us...> - 2007-12-02 02:18:28
|
Revision: 90 http://balder.svn.sourceforge.net/balder/?rev=90&view=rev Author: holomorph Date: 2007-12-01 18:18:34 -0800 (Sat, 01 Dec 2007) Log Message: ----------- fixed ai dropdown and color sliders so they can be changed Modified Paths: -------------- history.txt src/menu/playersetup.cpp Modified: history.txt =================================================================== --- history.txt 2007-11-30 21:12:27 UTC (rev 89) +++ history.txt 2007-12-02 02:18:34 UTC (rev 90) @@ -3,7 +3,12 @@ History entries are in reverse chronological order (newest entries first). -19 Nov-2007 +1 Dec-2007 + - Bjorn fixed the bug where AI selection box and color sliders didn't work because + refreshKeys() was being called first thing in the action handler and setting them + right back where they were before, thus they could not get changed. + +30 Nov-2007 - Reuben replaced all standard gcn::checkbox objects in the menu system with WidgetSkinnedCheckBox. - Reuben add frame size controls to WidgetSkinnedCheckBox. Modified: src/menu/playersetup.cpp =================================================================== --- src/menu/playersetup.cpp 2007-11-30 21:12:27 UTC (rev 89) +++ src/menu/playersetup.cpp 2007-12-02 02:18:34 UTC (rev 90) @@ -172,8 +172,6 @@ void PlayerSetupMenu::action(const gcn::ActionEvent& action) { bindNextKey = false; // so key binding gets cancelled when non-bind actions are called. - RefreshKeys(); - // Player options menu events.********************************************** if (action.getId() == "nextPlayer") { if (currentPlayer < ConfigManager::GetNumPlayers()) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <col...@us...> - 2007-12-03 21:40:44
|
Revision: 92 http://balder.svn.sourceforge.net/balder/?rev=92&view=rev Author: colalord Date: 2007-12-03 13:40:49 -0800 (Mon, 03 Dec 2007) Log Message: ----------- 3 Dec-2007 - Reuben changed the fullscreen option in the menu to control both the menu screen and the game screen. Modified Paths: -------------- history.txt include/menu/menu.h src/main.cpp src/menu/menu.cpp src/menu/soundvideo.cpp Modified: history.txt =================================================================== --- history.txt 2007-12-03 19:38:51 UTC (rev 91) +++ history.txt 2007-12-03 21:40:49 UTC (rev 92) @@ -4,6 +4,8 @@ History entries are in reverse chronological order (newest entries first). 3 Dec-2007 + - Reuben changed the fullscreen option in the menu to control both the menu screen + and the game screen. - Reuben moved all of the widgets in the /menu/ dir to /menu/widgets/ 1 Dec-2007 Modified: include/menu/menu.h =================================================================== --- include/menu/menu.h 2007-12-03 19:38:51 UTC (rev 91) +++ include/menu/menu.h 2007-12-03 21:40:49 UTC (rev 92) @@ -28,13 +28,14 @@ namespace Balder { +class Renderer; class SoundManager; class SubMenu; class Menu:public gcn::ActionListener { public: - Menu(SoundManager *); + Menu(Renderer *, SoundManager *); virtual ~Menu(); void action(const gcn::ActionEvent& action); bool Run(); @@ -44,7 +45,8 @@ void CheckInput(); bool running; // keeps track of if the menu is open or not bool startgame; // if true, start a new game when the menu closes, else quit - + + Renderer *render; SoundManager *sound; SDL_Surface* screen; /* Modified: src/main.cpp =================================================================== --- src/main.cpp 2007-12-03 19:38:51 UTC (rev 91) +++ src/main.cpp 2007-12-03 21:40:49 UTC (rev 92) @@ -117,7 +117,7 @@ try { Log::output("creating main menu" ); - menu = new Menu(sound); + menu = new Menu(render, sound); } catch (const char* message) { Modified: src/menu/menu.cpp =================================================================== --- src/menu/menu.cpp 2007-12-03 19:38:51 UTC (rev 91) +++ src/menu/menu.cpp 2007-12-03 21:40:49 UTC (rev 92) @@ -23,13 +23,14 @@ #include "menu/mainmenu.h" #include "soundmanager.h" #include "imageloader.h" +#include "renderer.h" #include <iostream> using namespace Balder; SDLKey Menu::lastKeyPressed = SDLKey(0); -Menu::Menu(SoundManager* s): startgame(false), sound(s) +Menu::Menu(Renderer *r, SoundManager* s): startgame(false), render(r), sound(s) { //screen = SDL_GetVideoSurface(); @@ -109,10 +110,18 @@ bool Menu::Run() { screen = SDL_GetVideoSurface(); - graphics->setTarget(screen); + graphics->setTarget(screen); + bool fullscreen; running = true; while(running) { + // Set fullscreen status for menu. + if (fullscreen != ConfigManager::GetIntValue("Video", "fullscreen")) { + fullscreen = ConfigManager::GetIntValue("Video", "fullscreen"); + render->SetScreen(800, 600, fullscreen); + } + + // Check to see if music is playing. if (!sound->IsMusicPlaying()) { sound->PlayMusic("menu"); Modified: src/menu/soundvideo.cpp =================================================================== --- src/menu/soundvideo.cpp 2007-12-03 19:38:51 UTC (rev 91) +++ src/menu/soundvideo.cpp 2007-12-03 21:40:49 UTC (rev 92) @@ -32,7 +32,7 @@ backButton->setActionEventId("back"); backButton->addActionListener(this); - fullScreenCheckbox = new SkinnedCheckBox("Fullscreen (in game only)", "menu/menuskin.png", 0, ConfigManager::GetIntValue("Video", "fullscreen")); + fullScreenCheckbox = new SkinnedCheckBox("Fullscreen", "menu/menuskin.png", 0, ConfigManager::GetIntValue("Video", "fullscreen")); fullScreenCheckbox->setActionEventId("toggleFullscreen"); fullScreenCheckbox->addActionListener(this); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <col...@us...> - 2007-12-11 00:32:00
|
Revision: 97 http://balder.svn.sourceforge.net/balder/?rev=97&view=rev Author: colalord Date: 2007-12-10 16:32:04 -0800 (Mon, 10 Dec 2007) Log Message: ----------- 10 Dec-2007 - Reuben added definition for textDisplaceY into balder3dtypes to control the vertical displacement of text in widgets. - Reuben redesigned the sub-menu page background and saved it in menuskin.png instead of pagebackground.png. Modified Paths: -------------- bin/menu/menuskin.png history.txt include/balder2dtypes.h src/menu/options.cpp src/menu/soundvideo.cpp src/menu/submenu.cpp src/menu/widgets/skinnedbutton.cpp src/menu/widgets/skinnedcheckbox.cpp Modified: bin/menu/menuskin.png =================================================================== (Binary files differ) Modified: history.txt =================================================================== --- history.txt 2007-12-10 22:03:40 UTC (rev 96) +++ history.txt 2007-12-11 00:32:04 UTC (rev 97) @@ -4,6 +4,10 @@ History entries are in reverse chronological order (newest entries first). 10 Dec-2007 + - Reuben added definition for textDisplaceY into balder3dtypes to control the + vertical displacement of text in widgets. + - Reuben redesigned the sub-menu page background and saved it in menuskin.png + instead of pagebackground.png. - Reuben reformatted the paramaters for the skinned widget constructors so that they are all more uniform. - Reuben replaced all old guichan gcn::Slider's with the new SkinnedSlider's. Modified: include/balder2dtypes.h =================================================================== --- include/balder2dtypes.h 2007-12-10 22:03:40 UTC (rev 96) +++ include/balder2dtypes.h 2007-12-11 00:32:04 UTC (rev 97) @@ -24,6 +24,8 @@ #define widgetNotFocused 0 #define widgetFocused 1 +#define textDisplaceY 4 + #include <SDL/SDL.h> namespace Balder{ Modified: src/menu/options.cpp =================================================================== --- src/menu/options.cpp 2007-12-10 22:03:40 UTC (rev 96) +++ src/menu/options.cpp 2007-12-11 00:32:04 UTC (rev 97) @@ -50,7 +50,7 @@ lessPlayersButton->setHeight(numPlayersLabel->getHeight()/2); lessPlayersButton->setWidth(morePlayersButton->getWidth()); - soundVideoButton = new SkinnedButton("menu/buttonskins.png", 0, "Sound and Video"); + soundVideoButton = new SkinnedButton("menu/buttonskins.png", 0, "Sound & Video"); soundVideoButton->setActionEventId("soundVideoMenu"); soundVideoButton->addActionListener(this); soundVideoButton->setWidth(300); Modified: src/menu/soundvideo.cpp =================================================================== --- src/menu/soundvideo.cpp 2007-12-10 22:03:40 UTC (rev 96) +++ src/menu/soundvideo.cpp 2007-12-11 00:32:04 UTC (rev 97) @@ -31,7 +31,7 @@ backButton->setActionEventId("back"); backButton->addActionListener(this); - fullScreenCheckbox = new SkinnedCheckBox("menu/menuskin.png", 0, "Fullscreen", ConfigManager::GetIntValue("Video", "fullscreen")); + fullScreenCheckbox = new SkinnedCheckBox("menu/menuskin.png", 380, "Fullscreen", ConfigManager::GetIntValue("Video", "fullscreen")); fullScreenCheckbox->setActionEventId("toggleFullscreen"); fullScreenCheckbox->addActionListener(this); Modified: src/menu/submenu.cpp =================================================================== --- src/menu/submenu.cpp 2007-12-10 22:03:40 UTC (rev 96) +++ src/menu/submenu.cpp 2007-12-11 00:32:04 UTC (rev 97) @@ -29,7 +29,7 @@ page->setOpaque(false); page->setDimension(gcn::Rectangle(0, 0, 700, 380)); - animationPageBackground = new Animation(/* Film Strip File Name */"menu/pagebackground.png", + animationPageBackground = new Animation(/* Film Strip File Name */"menu/menuskin.png", /* Has Base Frame */false, /* Is Looped */true, /* Play when finished loading */true, /* Strip Location */0, /* Frame Width */700, /* Frame Height */380, /* Base Frame Index */0, /* Starting Frame Index */0, /* Animation Frame Quantity Including Starting Frame */1, Modified: src/menu/widgets/skinnedbutton.cpp =================================================================== --- src/menu/widgets/skinnedbutton.cpp 2007-12-10 22:03:40 UTC (rev 96) +++ src/menu/widgets/skinnedbutton.cpp 2007-12-11 00:32:04 UTC (rev 97) @@ -94,11 +94,11 @@ if (isPressed()) { - graphics->drawText(getCaption(), textX + 1, textY + 1, getAlignment()); + graphics->drawText(getCaption(), textX + 1, textY + 1 + textDisplaceY, getAlignment()); } else { - graphics->drawText(getCaption(), textX, textY, getAlignment()); + graphics->drawText(getCaption(), textX, textY + textDisplaceY, getAlignment()); } } Modified: src/menu/widgets/skinnedcheckbox.cpp =================================================================== --- src/menu/widgets/skinnedcheckbox.cpp 2007-12-10 22:03:40 UTC (rev 96) +++ src/menu/widgets/skinnedcheckbox.cpp 2007-12-11 00:32:04 UTC (rev 97) @@ -75,7 +75,7 @@ // Need to draw caption label to the right of the checkbox. // Align label to the right of the checkbox. int textX = checkboxSizeXY + 5; - int textY = checkboxSizeXY / 2 - getFont()->getHeight() / 2; + int textY = ((checkboxSizeXY / 2) - (getFont()->getHeight() / 2)) + textDisplaceY; graphics->setFont(getFont()); graphics->drawText(getCaption(), textX, textY, gcn::Graphics::LEFT); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <hol...@us...> - 2008-06-07 01:16:39
|
Revision: 112 http://balder.svn.sourceforge.net/balder/?rev=112&view=rev Author: holomorph Date: 2008-06-06 18:16:48 -0700 (Fri, 06 Jun 2008) Log Message: ----------- workaround guichan dropdown bug Modified Paths: -------------- Balder2D-linux.cbp bin/config.xml include/menu/widgets/maplistmodel.h include/menu/widgets/skinneddropdown.h src/menu/gamesetup.cpp src/menu/widgets/maplistmodel.cpp src/menu/widgets/skinneddropdown.cpp Modified: Balder2D-linux.cbp =================================================================== --- Balder2D-linux.cbp 2008-05-26 23:41:07 UTC (rev 111) +++ Balder2D-linux.cbp 2008-06-07 01:16:48 UTC (rev 112) @@ -68,6 +68,7 @@ <Unit filename="include/menu/widgets/sampleprobe.h" /> <Unit filename="include/menu/widgets/skinnedbutton.h" /> <Unit filename="include/menu/widgets/skinnedcheckbox.h" /> + <Unit filename="include/menu/widgets/skinneddropdown.h" /> <Unit filename="include/menu/widgets/skinnedslider.h" /> <Unit filename="include/player.h" /> <Unit filename="include/powerup.h" /> @@ -110,6 +111,7 @@ <Unit filename="src/menu/widgets/sampleprobe.cpp" /> <Unit filename="src/menu/widgets/skinnedbutton.cpp" /> <Unit filename="src/menu/widgets/skinnedcheckbox.cpp" /> + <Unit filename="src/menu/widgets/skinneddropdown.cpp" /> <Unit filename="src/menu/widgets/skinnedslider.cpp" /> <Unit filename="src/player.cpp" /> <Unit filename="src/powerup.cpp" /> Modified: bin/config.xml =================================================================== --- bin/config.xml 2008-05-26 23:41:07 UTC (rev 111) +++ bin/config.xml 2008-06-07 01:16:48 UTC (rev 112) @@ -2,7 +2,7 @@ <!-- Balder2d Configuration data --> <Balder> <!-- The following is meant to be modified by the user --> - <Map name="corners" /> + <Map name="ellipse" /> <NumberOfPlayers value="4" /> <GameSetup> <!-- negative values indicate disabled modes --> Modified: include/menu/widgets/maplistmodel.h =================================================================== --- include/menu/widgets/maplistmodel.h 2008-05-26 23:41:07 UTC (rev 111) +++ include/menu/widgets/maplistmodel.h 2008-06-07 01:16:48 UTC (rev 112) @@ -32,12 +32,12 @@ MapListModel(); virtual ~MapListModel(); virtual int getNumberOfElements () {return numMaps;} - virtual std::string getElementAt (int i) {return mapnames[i];} + virtual std::string getElementAt (int i); int FindMapIndex(std::string mapname); private: void FindMaps(); int numMaps; - std::vector<std::string> mapnames; + std::vector<std::string> mapnames; }; } #endif // MAPLISTMODEL_H Modified: include/menu/widgets/skinneddropdown.h =================================================================== --- include/menu/widgets/skinneddropdown.h 2008-05-26 23:41:07 UTC (rev 111) +++ include/menu/widgets/skinneddropdown.h 2008-06-07 01:16:48 UTC (rev 112) @@ -44,6 +44,7 @@ SkinnedDropDown(gcn::ListModel *listModel, gcn::ScrollArea *scrollArea, gcn::ListBox *listBox): gcn::DropDown(listModel, scrollArea, listBox) {} // Inherited from gcn::Widget + virtual void keyPressed(gcn::KeyEvent& keyEvent); virtual void draw(gcn::Graphics* graphics); virtual void drawButton(gcn::Graphics* graphics); }; Modified: src/menu/gamesetup.cpp =================================================================== --- src/menu/gamesetup.cpp 2008-05-26 23:41:07 UTC (rev 111) +++ src/menu/gamesetup.cpp 2008-06-07 01:16:48 UTC (rev 112) @@ -22,6 +22,7 @@ #include "configmanager.h" #include "menu/widgets/samplemap.h" #include "menu/widgets/maplistmodel.h" +#include "menu/widgets/skinneddropdown.h" using namespace Balder; @@ -37,11 +38,11 @@ mapnameLabel = new gcn::Label("Select a Map: "); maplistModel = new MapListModel(); mapScrollArea = new gcn::ScrollArea(); - mapListBox = new gcn::ListBox(); + mapListBox = new SkinnedListBox(); mapListBox->setWidth(400); mapListBox->setActionEventId("selectNewMap"); mapListBox->addActionListener(this); - mapDropDown = new gcn::DropDown(maplistModel, mapScrollArea, mapListBox); + mapDropDown = new SkinnedDropDown(maplistModel, mapScrollArea, mapListBox); mapDropDown->setWidth(400); mapDropDown->setSelected(maplistModel->FindMapIndex(ConfigManager::GetMap())); Modified: src/menu/widgets/maplistmodel.cpp =================================================================== --- src/menu/widgets/maplistmodel.cpp 2008-05-26 23:41:07 UTC (rev 111) +++ src/menu/widgets/maplistmodel.cpp 2008-06-07 01:16:48 UTC (rev 112) @@ -68,6 +68,15 @@ PHYSFS_freeList(files); } +std::string Balder::MapListModel::getElementAt (int i) +{ + if (i > numMaps - 1) + { + Log::output("tried to get map at index higher than number of maps"); + return "--Map Not Found--"; + } + return mapnames[i]; +} /*! \fn Balder::MapListModel::FindMapIndex(std::string mapname) Modified: src/menu/widgets/skinneddropdown.cpp =================================================================== --- src/menu/widgets/skinneddropdown.cpp 2008-05-26 23:41:07 UTC (rev 111) +++ src/menu/widgets/skinneddropdown.cpp 2008-06-07 01:16:48 UTC (rev 112) @@ -101,6 +101,12 @@ } } +void SkinnedDropDown::keyPressed(KeyEvent& keyEvent) +{ + // work around guichan bug where when the dropdown is open arrow keys get counted twice (skips elements) + if (keyEvent.isConsumed()) return; + gcn::DropDown::keyPressed(keyEvent); +} void SkinnedDropDown::draw(Graphics* graphics) { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <hol...@us...> - 2008-06-07 04:15:39
|
Revision: 114 http://balder.svn.sourceforge.net/balder/?rev=114&view=rev Author: holomorph Date: 2008-06-06 21:15:47 -0700 (Fri, 06 Jun 2008) Log Message: ----------- scroll bar skinned (at least "good enough") Modified Paths: -------------- bin/config.xml include/menu/widgets/skinneddropdown.h src/menu/gamesetup.cpp src/menu/playersetup.cpp src/menu/widgets/skinneddropdown.cpp Modified: bin/config.xml =================================================================== --- bin/config.xml 2008-06-07 01:35:05 UTC (rev 113) +++ bin/config.xml 2008-06-07 04:15:47 UTC (rev 114) @@ -15,7 +15,7 @@ <fullscreen value="0" /> </Video> <Sound> - <fxvolume value="83.671875" /> + <fxvolume value="86.328125" /> <musicvolume value="86.328125" /> <music value="1" /> <sound value="1" /> Modified: include/menu/widgets/skinneddropdown.h =================================================================== --- include/menu/widgets/skinneddropdown.h 2008-06-07 01:35:05 UTC (rev 113) +++ include/menu/widgets/skinneddropdown.h 2008-06-07 04:15:47 UTC (rev 114) @@ -48,6 +48,19 @@ virtual void draw(gcn::Graphics* graphics); virtual void drawButton(gcn::Graphics* graphics); }; + + /** + * a better looking scroll bar + */ + class SkinnedScrollArea: public gcn::ScrollArea + { + public: + SkinnedScrollArea(): gcn::ScrollArea() {} + // Inherited from gcn::Widget + virtual void draw(gcn::Graphics* graphics); + virtual void drawVBar(gcn::Graphics* graphics); + virtual void drawVMarker(gcn::Graphics* graphics); + }; } #endif // SKINNEDDROPDOWN_H Modified: src/menu/gamesetup.cpp =================================================================== --- src/menu/gamesetup.cpp 2008-06-07 01:35:05 UTC (rev 113) +++ src/menu/gamesetup.cpp 2008-06-07 04:15:47 UTC (rev 114) @@ -37,7 +37,7 @@ mapnameLabel = new gcn::Label("Select a Map: "); maplistModel = new MapListModel(); - mapScrollArea = new gcn::ScrollArea(); + mapScrollArea = new SkinnedScrollArea(); mapListBox = new SkinnedListBox(); mapListBox->setWidth(400); mapListBox->setActionEventId("selectNewMap"); Modified: src/menu/playersetup.cpp =================================================================== --- src/menu/playersetup.cpp 2008-06-07 01:35:05 UTC (rev 113) +++ src/menu/playersetup.cpp 2008-06-07 04:15:47 UTC (rev 114) @@ -126,7 +126,7 @@ // AI Script list box. aiLabel = new gcn::Label("AI Script: "); ailistModel = new AIListModel(); - aiScrollArea = new gcn::ScrollArea(); + aiScrollArea = new SkinnedScrollArea(); aiListBox = new SkinnedListBox(); aiListBox->setWidth(redIcon->getWidth() - 12); aiListBox->setActionEventId("changeAIScript"); Modified: src/menu/widgets/skinneddropdown.cpp =================================================================== --- src/menu/widgets/skinneddropdown.cpp 2008-06-07 01:35:05 UTC (rev 113) +++ src/menu/widgets/skinneddropdown.cpp 2008-06-07 04:15:47 UTC (rev 114) @@ -241,3 +241,66 @@ } } +void SkinnedScrollArea::draw(Graphics *graphics) +{ + drawBackground(graphics); + + if (mVBarVisible) + { +// drawUpButton(graphics); +// drawDownButton(graphics); + drawVBar(graphics); + drawVMarker(graphics); + + } + + drawChildren(graphics); +} + +void SkinnedScrollArea::drawVBar(Graphics* graphics) +{ + Rectangle dim(getWidth() - mScrollbarWidth, 0, mScrollbarWidth, getHeight()); + + + graphics->pushClipArea(dim); + + int alpha = MenuColors::bgAlpha; + Color trackColor = MenuColors::UNFOCUSED; + trackColor.a = alpha; + Color shadowColor = MenuColors::SHADOW; + shadowColor.a = alpha; + + graphics->setColor(trackColor); + graphics->fillRectangle(Rectangle(0, 0, dim.width, dim.height)); + + graphics->setColor(shadowColor); + graphics->drawLine(0, 0, 0, dim.height); + + graphics->popClipArea(); +} + +void SkinnedScrollArea::drawVMarker(Graphics* graphics) +{ + Rectangle dim = getVerticalMarkerDimension(); + graphics->pushClipArea(dim); + + int alpha = MenuColors::bgAlpha; + Color faceColor = MenuColors::fontColor; + Color highlightColor = MenuColors::HIGHLIGHT; + highlightColor.a = alpha; + Color shadowColor = MenuColors::SHADOW; + shadowColor.a = alpha; + + graphics->setColor(faceColor); + graphics->fillRectangle(Rectangle(1, 1, dim.width - 1, dim.height - 1)); + + graphics->setColor(highlightColor); + graphics->drawLine(0, 0, dim.width - 1, 0); + graphics->drawLine(0, 1, 0, dim.height - 1); + + graphics->setColor(shadowColor); + graphics->drawLine(1, dim.height - 1, dim.width - 1, dim.height - 1); + graphics->drawLine(dim.width - 1, 0, dim.width - 1, dim.height - 1); + + graphics->popClipArea(); +} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |