Thread: [Balder-cvs] SF.net SVN: balder: [28]
Status: Beta
Brought to you by:
holomorph
From: <col...@us...> - 2006-11-16 00:26:59
|
Revision: 28 http://svn.sourceforge.net/balder/?rev=28&view=rev Author: colalord Date: 2006-11-15 16:26:56 -0800 (Wed, 15 Nov 2006) Log Message: ----------- 15 Nov-2006 - 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: Balder2D Win32 Development Environment Setup Instructions.txt Added Paths: ----------- Balder2D Win32 Development Environment Setup Instructions.txt Balder2D.cbp Added: Balder2D Win32 Development Environment Setup Instructions.txt =================================================================== --- Balder2D Win32 Development Environment Setup Instructions.txt (rev 0) +++ Balder2D Win32 Development Environment Setup Instructions.txt 2006-11-16 00:26:56 UTC (rev 28) @@ -0,0 +1,364 @@ +Balder2D Win32 Development Environment Setup Instructions + +Author: Reuben Lord +Last Revised: 11/14/06 +================================================================================== +Please note: + 1. The build and install process described below has only been tested in the order written from top to bottom. + 2. Path names for libraries and development tools that have been extracted from packages with different version numbers than the ones described below may very. + +================================================================================== +Installing MinGW +----------------- + 1. Download the installer "MinGW-5.0.0.exe" or later from: http://www.mingw.org + 2. Double click the installer to run it. + 3. Click "Next >" at the Welcome screen. + 4. Click "I Agree" at the EULA. + 5. Select a mirror that is physically closest to you. + 6. Make sure "Download as needed and install" is selected. + 7. Click the "Next >" button. + 8. Select the "Current" MinGW package. + 9. Click "Next >". + 10. Under the list of components to install, check "MinGW base tools" and "g++ compiler". + 11. Click "Next >". + 12. Select an install path for MinGW. Default: "c:\MinGW" + 13. Click "Next >". + 14. Select a folder in the Start Menu for you MinGW shortcuts to go in. Default: "MinGW" + 15. Click "Install". + 16. Watch MinGW download and install. + 17. Click "Finish". + +================================================================================== +Installing MSYS +---------------- + 1. Download the installer "MSYS-1.0.11-2004.04.30-1.exe" or later from: http://www.mingw.org + 2. Double click the installer to run it. + 3. You will be asked "Do you really want to install Minimal SYStem?" Click "Yes". + 4. Click "Next >" at the Welcome screen. + 5. Click "Yes" at the EULA. + 6. Click "Next >" at the Information screen. + 7. Select an install path. Default: "C:\msys\1.0" + 8. Under component selection, select "Installation for i386 based CPUs (Works for all x86 based CPUs >= i386)". + 9. Click "Next >". + 10. Select a folder in the Start Menu for you MinGW shortcuts to go in. Default: "MinGW" + 11. Click "Next >". + 12. Review setup settings. + 13. Click "Install". + 14. Watch it install MSYS. + 15. A command prompt with the MSYS post installer setup tool in it should appear after the installer finishes installing MSYS. + 16. Press the "y" key on you keyboard and hit "Enter" to continue with the post installer. + 17. Press "y" and hit "Enter" if you have MinGW installed. + 18. Enter the location of your MinGW installation in the following format. Default: "c:\\MinGW" + 19. It will perform some checks and then ask you to "Press any key to continue..." + 20. The post installer tool will now close and bring you back to the primary installer. + 21. Uncheck all check boxes. + 22. Click "Finish". + 23. If you want to change the colors for the MSYS interface they are defined in the file "C:\msys\1.0\msys.bat". + +================================================================================== +Building & Installing SDL (Simple Directmedia Layer) Libraries +--------------------------------------------------------------- + 1. Download the source code "SDL-1.2.9.zip" or later from: http://www.libsdl.org + 2. Extract all of the files to "C:\tmp\". + 3. Run the MSYS shell. + 4. Type: cd /c/tmp/SDL-1.2.9/ + 5. Type: ./configure && make && make install + 6. MSYS will now start building and installing the primary SDL libraries. + 7. For the DLL file, refer to the section below named "Installing DLL Files". + +================================================================================== +Installing SDL_image Libraries +------------------------------- + 1. Download the source code "SDL_image-devel-1.2.4-VC6.zip" or later from: http://www.libsdl.org/projects/SDL_image/ + 2. Extract all of the files to "C:\tmp\". + 3. Go to: C:\tmp\SDL_image-1.2.4\ + 4. Copy "include\SDL_image.h" to "C:\msys\1.0\local\include\SDL". + 5. Copy "lib\SDL_image.lib" to "C:\msys\1.0\local\lib". + 6. For the DLL files, refer to the section below named "Installing DLL Files". + +================================================================================== +Installing SDL_mixer Libraries +------------------------------- + 1. Download the source code "SDL_mixer-devel-1.2.6-VC6.zip" or later from: http://www.libsdl.org/projects/SDL_mixer/ + 2. Extract all of the files to "C:\tmp\". + 3. Go to: C:\tmp\SDL_mixer-1.2.6\ + 4. Copy "include\SDL_mixer.h" to "C:\msys\1.0\local\include\SDL". + 5. Copy "lib\SDL_mixer.lib" to "C:\msys\1.0\local\lib". + 6. For the DLL files, refer to the section below named "Installing DLL Files". + +================================================================================== +Building & Installing SDL_gfx Libraries +---------------------------------------- + 1. Download the source code "SDL_gfx-2.0.13.zip" or later from: http://www.ferzkopp.net/joomla/content/view/19/14/ + 2. Extract all of the files to "C:\tmp\". + 3. Make the modifications listed in step 5 to the following header files: + a. C:\Tmp\SDL_gfx-2.0.13\SDL_framerate.h + b. C:\Tmp\SDL_gfx-2.0.13\SDL_gfxPrimitives.h + c. C:\Tmp\SDL_gfx-2.0.13\SDL_imageFilter.h + d. C:\Tmp\SDL_gfx-2.0.13\SDL_rotozoom.h + 4. The following is the original code block in 4 of the SDL_gfx header files: + #ifdef WIN32 + #ifdef BUILD_DLL + #define DLLINTERFACE __declspec(dllexport) + #else + #define DLLINTERFACE __declspec(dllimport) + #endif + #else + #define DLLINTERFACE + #endif + 5. Make changes in all 4 header files listed above by REM'ing out lines 1, 2, 3, 4, 5, 6, 7 and 9 of the following code block: + //#ifdef WIN32 + //#ifdef BUILD_DLL + //#define DLLINTERFACE __declspec(dllexport) + //#else + //#define DLLINTERFACE __declspec(dllimport) + //#endif + //#else + #define DLLINTERFACE + //#endif + 6. Run the MSYS shell. + 7. Type: cd /c/tmp/sdl_gfx-2.0.13 + 8. The "README" file in the dir + 8. Type: ./autogen.sh + 9. Type: ./configure + 10. Type: ./nodebug.sh + 11. Type: make + 12. Type: make install + 13. Type (this doesn't work): ldconfig + 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. + +================================================================================== +Installing Guichan Libraries +----------------------------- + 1. Download "guichan-0.4.0-mingw32.zip" or later from: http://guichan.sourceforge.net/ + 2. Extract all of the files to "C:\tmp\". + 3. Copy all files from "C:\tmp\guichan-0.4.0-mingw32\include\" to "C:\msys\1.0\local\include\". + 4. Copy all "*.a" files from "C:\tmp\guichan-0.4.0-mingw32\lib\" to "C:\msys\1.0\local\lib\". + 5. For the DLL files, refer to the section below named "Installing DLL Files". + +================================================================================== +Installing Python Libraries +---------------------------- + 1. Download "python-2.4.2.msi" or later from: http://www.python.org/ + 2. Run the Python installer. + 3. On the user selection screen select "Install for all users". + 4. Click "Next >>". + 5. On the Select Destination Directory screen make sure the destination is set to: C:\Python24\ + 6. Click "Next >>". + 7. On the Customize Python 2.4.2 screen select all components. + 8. Click "Next >>". + 9. Watch the installer install Python 2.4.2. + 10. On the Completed installation screen click "Finish". + 11. For the DLL files, refer to the section below named "Installing DLL Files". + +================================================================================== +Installing Psyco Libraries +--------------------------- + 1. Download "psyco-1.5.win32-py2.4.exe" or later from: http://psyco.sourceforge.net/ + 2. Run the Psyco installer. + 3. On the Welcome screen click "Next >". + 4. On the Python installation verification screen make sure it located the version of Python you currently have installed. + 5. Click "Next >". + 6. On the Ready to Install screen click "Next >". + 7. Watch Psyco install. + 8. On the last screen just click "Finish". + 9. For the DLL files, refer to the section below named "Installing DLL Files". + +================================================================================== +Installing TortoiseSVN-1.4.0.7501-win32-svn-1.4.0.msi SVN Tool +--------------------------------------------------------------- + 1. Download "TortoiseSVN-1.4.0.7501-win32-svn-1.4.0.msi" or later from: http://tortoisesvn.net/ + 2. Run the Tortoise SVN installer. + 3. On the welcome screen of the installer click "Next >". + 4. Mark Accept for the EULA. + 5. Click "Next >". + 6. Make sure all components are selected on the Custom Setup screen. + 7. Pick an installation path. Default: C:\Program Files\TortoiseSVN\ + 8. Click "Next >". + 9. On the Ready to Install screen click "Install". + 10. It will now begin installing. + 11. On the completion screen un-check "Show Changelog". + 12. Click "Finish". + 13. It will now ask you to restart you system, click "Yes". + 14. Your system should restart now. + 15. Open your C:\ drive. + 16. Create a new directory named "Balder2D". + 17. Right click on the directory "C:\Balder2D\" directory that you just created to get the context menu. + 18. Click on the "SVN Checkout..." command. + 19. The Checkout dialog box will now appear. + 20. In the "URL of repository" field enter: https://svn.sourceforge.net/svnroot/balder + 21. Make sure the "Checkout directory:" says: C:\Balder2D + 22. Click "OK". + 23. It should now start checking everything out of the SVN and list them out as it does check them out. + 24. When it's done just click the "OK" button. + 25. You should have the latest copy of the Balder2D source code all downloaded into the "C:\Balder2D\" directory at this point. + +================================================================================== +Installing DLL Files +--------------------- +- SDL DLL + 1. Copy from "C:\msys\1.0\local\bin\SDL.dll" to "C:\Balder2D\bin\". +- Guichan DLL's + 2. Copy from "C:\Tmp\guichan-0.4.0-mingw32\bin\guichan.dll" to "C:\Balder2D\bin\". + 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\". + 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\". +- 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 + 9. Copy from "C:\Tmp\SDL_mixer-1.2.7\lib\ogg.dll" to "C:\Balder2D\bin\". + 10. Copy from "C:\Tmp\SDL_mixer-1.2.7\lib\SDL_mixer.dll" to "C:\Balder2D\bin\". + 11. Copy from "C:\Tmp\SDL_mixer-1.2.7\lib\vorbis.dll" to "C:\Balder2D\bin\". + 12. Copy from "C:\Tmp\SDL_mixer-1.2.7\lib\vorbisfile.dll" to "C:\Balder2D\bin\". +- Python 2.4 DLL + 13. When Python 2.4 is installed it installs the DLL in the %PATH% directory. +- Psyco 1.5 + 14. If it has any DLL's it installs them for you. + +================================================================================== +Installing Code::Blocks IDE +---------------------------- + 1. Download "codeblocks-1.0rc2.exe" or later from: http://www.codeblocks.org/ + 2. Run the installer. + 3. At the Welcome screen click "Next >". + 4. On the EULA screen select the accept option. + 5. Click "Next >". + 6. On the Select Destination Location screen choose your installation path. Default: C:\Program Files\CodeBlocks + 7. Click "Next >". + 8. On the Select Components screen select "Full installation". + 9. Click "Next >". + 10. On the Select Start Menu Folder screen select a folder to store it in or leave the default. + 11. Click "Next >". + 12. On the Select Additional Tasks screen select the icons that you want it to make. + 13. Click "Next >". + 14. On the Ready to Install screen review your installation configuration. + 15. Click "Install". + 16. Watch it install Code::Blocks for you. + 17. On the Information screen click "Next >". + 18. On the Complete screen click "Finish". + 19. Code::Blocks will now load for you. + 20. The Compilers auto-detection screen will appear. + 21. Select the compiler: GNU GCC Compiler + 22. The Status for the "GNU GCC Compiler" should equal: Detected + 23. Click the "Set as default" button. + 24. Make sure at the bottom of the window you see the string: Default compiler: GNU GCC Compiler + 25. Click "Close". + 26. Code::Blocks finished loading up. + 27. If the "Tip of the Day" shows up uncheck "Show tips at startup" and click "Close" on the Tip dialog box. + 28. To open the project file click on the "File" menu. + 29. Then click the "Open" menu option. + 30. Open "C:\Balder2D\Balder2D.cbp". + 31. Now you should be able to build Balder2D with in Code::Blocks. + 32. To build Balder2D in Code::Blocks click on the "Build" menu. + 33. Then click the "Build" menu option (or press Ctrl+F9 to build). + 34. It will then build Balder2D and put the executable file in the following path: C:\Balder2D\bin\Balder2D.exe + +================================================================================== +Creating a Code::Blocks IDE project file +----------------------------------------- + 1. Open Code::Blocks. + 2. If you have any projects open, then close them. + a. On the main menu click on the "File" menu. + b. Then click on the "Close project" menu option. + 3. On the main menu click on the "Project" menu. + 4. Then click on the "New project..." menu option. + 5. The "New from template" dialog box will appear. + 6. Select the "Console Application" icon. + 7. Check the "Do not create any files" check box. + 8. Set Project options: Console Application + 9. Set File(s) options: C++ source + 10. Click the "Create" button. + 11. The "Save project" dialog box will appear. + 12. Save it to: C:\Balder2D\Balder2D.cbp + 13. On the right hand side of the IDE is a tabbed window named "Management" (in the main menu it is "View>Manager" (Shift+F2)). This will be referred to as the "Management Bar". + 14. Select the "Projects" tab on the Management Bar. + 15. Right click on the "Console application" node. + 16. Click on the "Properties" menu option. + 17. The "Project/targets options" dialog will appear. + 18. Select the "Project" tab. + 19. Set Title: Balder2D + 20. Select the "Targets" tab. + 21. Set Output filename: bin\Balder2D.exe + 22. Set Execution working dir: bin\ + 23. Select the "Project" tab. + 24. Click on the "Project's build options..." button. + 25. This will make the "Project's Build options" dialog box appear. + a. You can also reach this dialog box by right clicking on the project's node in the Management Bar. + b. Click on the "Build options" menu option. + 26. Select the "Linker" tab. + 27. Add all of the libraries for the linker to link to the project. I'm not sure if it requires a certain order, but if it does this order works. + a. mingw32 + b. guichan + c. guichan_sdl + d. SDLmain + e. SDL_gfx + f. SDL + g. SDL_image + h. SDL_mixer + i. C:\msys\1.0\local\lib\libboost_filesystem-mgw-1_33_1.lib + j. python24 + 28. Click on the "Add" button. + 29. Set File: [LIBRARY NAME] + 30. Click "OK". + 31. Repeat until all libraries have been added. + 32. Under the "Linker" tab there is a text window titled "Other linker options:", add this line: -mwindows + 33. Select the "Directories" tab. + 34. Under the "Directories" tab select the "Compiler" tab. + 35. Add all of the #include directories for the compiler to look in for the different library header files. Please note when entering directories here do not put an ending "\" because it confuses the compiler. + a. C:\MinGW\include + b. C:\msys\1.0\local\include + c. C:\msys\1.0\local\include\SDL + d. C:\Python24\include + 36. Click on the "Add" button. + 37. Set Directory: [#INCLUDE PATH] + 38. Click "OK". + 39. Repeat until all #include directories have been added. + 40. Select the "Directories" tab. + 41. Under the "Directories" tab select the "Linker" tab. + 42. Add all of the library directories for the compiler to look in for the different library files. Please note when entering directories here do not put an ending "\" because it confuses the compiler. + a. C:\MinGW\lib + b. C:\msys\1.0\local\lib + c. C:\Python24\libs + 43. Click on the "Add" button. + 44. Set Directory: [LIBRARY PATH] + 45. Click "OK". + 46. Repeat until all library directories have been added. + 47. Click the "OK" button on the "Project's Build options" dialog box. + 48. Click the "OK" button on the "Project/targets options" dialog box. + 49. Right click on the project node "Balder2D" in the Management Bar. + 50. Click on the "Add files recursively..." menu option. + 51. Select: C:\Balder2D\src\ + 52. Click the "OK" button. + 53. The "Multiple selection" dialog box will appear. + 54. Make sure all files are selected. Make sure you see Selected: 40 + 55. Click the "OK" button. + 56. Right click on the project node "Balder2D" in the Management Bar. + 57. Click on the "Add files recursively..." menu option. + 58. Select: C:\Balder2D\include\ + 59. Click the "OK" button. + 60. The "Multiple selection" dialog box will appear. + 61. Make sure all files are selected. Make sure you see Selected: 31 + 62. Click the "OK" button. + 63. Click "File" on the main menu. + 64. Click the "Save project" menu option. + 65. This project file is ready to compile. \ No newline at end of file Added: Balder2D.cbp =================================================================== --- Balder2D.cbp (rev 0) +++ Balder2D.cbp 2006-11-16 00:26:56 UTC (rev 28) @@ -0,0 +1,398 @@ +<?xml version="1.0"?> +<!DOCTYPE CodeBlocks_project_file> +<CodeBlocks_project_file> + <FileVersion major="1" minor="1"/> + <Project> + <Option title="Balder2D"/> + <Option makefile="Makefile"/> + <Option makefile_is_custom="0"/> + <Option compiler="0"/> + <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"/> + </Target> + </Build> + <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"/> + </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"/> + </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\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\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="src\SFont\SFont.c"> + <Option compilerVar="CC"/> + <Option target="default"/> + </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\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\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> + </Project> +</CodeBlocks_project_file> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <col...@us...> - 2006-11-29 18:27:41
|
Revision: 33 http://svn.sourceforge.net/balder/?rev=33&view=rev Author: colalord Date: 2006-11-29 10:27:37 -0800 (Wed, 29 Nov 2006) Log Message: ----------- 29 Nov-2006 - Reuben re-arranged the menu items again for a cleaner look. - Reuben added a label to the main menu to display the program version. Modified Paths: -------------- history.txt include/menu/mainmenu.h src/menu/gamesetup.cpp src/menu/mainmenu.cpp src/menu/options.cpp src/menu/playersetup.cpp src/menu/soundvideo.cpp Modified: history.txt =================================================================== --- history.txt 2006-11-29 17:15:55 UTC (rev 32) +++ history.txt 2006-11-29 18:27:37 UTC (rev 33) @@ -4,6 +4,8 @@ History entries are in reverse chronological order (newest entries first). 29 Nov-2006 + - Reuben re-arranged the menu items again for a cleaner look. + - Reuben added a label to the main menu to display the program version. - Reuben added support for multiple animation strips in the same image file to the animationwidget.cpp source code via use of the animationStripLocation variable. Modified: include/menu/mainmenu.h =================================================================== --- include/menu/mainmenu.h 2006-11-29 17:15:55 UTC (rev 32) +++ include/menu/mainmenu.h 2006-11-29 18:27:37 UTC (rev 33) @@ -39,6 +39,7 @@ gcn::Button* startButton; gcn::Button* optionsButton; gcn::Button* quitButton; + gcn::Label* versionLabel; }; } #endif // MAINMENU_H Modified: src/menu/gamesetup.cpp =================================================================== --- src/menu/gamesetup.cpp 2006-11-29 17:15:55 UTC (rev 32) +++ src/menu/gamesetup.cpp 2006-11-29 18:27:37 UTC (rev 33) @@ -28,6 +28,7 @@ GameSetupMenu::GameSetupMenu(gcn::Container* top, SubMenu* parent):SubMenu(top,parent) { backButton = new gcn::Button("Back"); + backButton->setWidth(150); backButton->setEventId("back"); backButton->addActionListener(this); @@ -66,7 +67,7 @@ lifeLimitValue->setEnabled(life > 0); lifeLimitValue->setVisible(life > 0); - page->add(backButton, page->getWidth() - (backButton->getWidth()+50), 288); + page->add(backButton, page->getWidth() - (backButton->getWidth()+50), page->getHeight() - (50 + backButton->getHeight())); page->add(sampleMap, 50, 50); page->add(mapnameLabel, 50+(sampleMap->getWidth() + 10), 55); page->add(mapDropDown, mapnameLabel->getX(), mapnameLabel->getY()+40); Modified: src/menu/mainmenu.cpp =================================================================== --- src/menu/mainmenu.cpp 2006-11-29 17:15:55 UTC (rev 32) +++ src/menu/mainmenu.cpp 2006-11-29 18:27:37 UTC (rev 33) @@ -26,25 +26,31 @@ MainMenu::MainMenu(gcn::Container* top, Menu* menusystem):SubMenu(top),system(menusystem) { - startButton = new gcn::Button("Start New Game"); + startButton = new gcn::Button("Start Game"); startButton->setEventId("startgame"); startButton->addActionListener(this); - startButton->setWidth(500); + startButton->setWidth(300); + startButton->setAlignment(0); //alignment is justified left. optionsButton = new gcn::Button("Options"); optionsButton->setEventId("optionsMenu"); optionsButton->addActionListener(this); - optionsButton->setWidth(500); + optionsButton->setWidth(300); + optionsButton->setAlignment(0); //alignment is justified left. quitButton = new gcn::Button("Quit"); - quitButton->setWidth(250); + quitButton->setWidth(300); quitButton->setEventId("quitgame"); quitButton->addActionListener(this); + quitButton->setAlignment(0); //alignment is justified left. + + versionLabel = new gcn::Label("Version RC1"); // Add them to the page container - page->add(startButton, 100, 75); - page->add(optionsButton, 100, 135); - page->add(quitButton, 225, 250); + page->add(startButton, 50, 50); + page->add(optionsButton, 50, 100); + page->add(quitButton, 50, 150); + page->add(versionLabel, page->getWidth() - (50 + versionLabel->getWidth()), page->getHeight() - (50 + versionLabel->getHeight())); // create the submenus optionsMenu = new OptionsMenu(top, this); Modified: src/menu/options.cpp =================================================================== --- src/menu/options.cpp 2006-11-29 17:15:55 UTC (rev 32) +++ src/menu/options.cpp 2006-11-29 18:27:37 UTC (rev 33) @@ -29,7 +29,8 @@ OptionsMenu::OptionsMenu(gcn::Container* top, SubMenu* parent):SubMenu(top,parent) { - backButton = new gcn::Button("Back"); + backButton = new gcn::Button("Back"); + backButton->setWidth(150); backButton->setEventId("back"); backButton->addActionListener(this); @@ -67,7 +68,7 @@ playersButton->setAlignment(0); //alignment is justified left. // add these things to the page container - page->add(backButton, page->getWidth() - (backButton->getWidth()+50), 288); + page->add(backButton, page->getWidth() - (backButton->getWidth()+50), page->getHeight() - (50 + backButton->getHeight())); page->add(numPlayersLabel, 50, 50); page->add(morePlayersButton, 50+numPlayersLabel->getWidth(), 50); page->add(lessPlayersButton, 50+numPlayersLabel->getWidth(), 50+morePlayersButton->getHeight()); Modified: src/menu/playersetup.cpp =================================================================== --- src/menu/playersetup.cpp 2006-11-29 17:15:55 UTC (rev 32) +++ src/menu/playersetup.cpp 2006-11-29 18:27:37 UTC (rev 33) @@ -31,6 +31,7 @@ PlayerSetupMenu::PlayerSetupMenu(gcn::Container* top, SubMenu* parent):SubMenu(top,parent) { backButton = new gcn::Button("Back"); + backButton->setWidth(150); backButton->setEventId("back"); backButton->addActionListener(this); @@ -125,7 +126,7 @@ aiDropDown->setWidth(redIcon->getWidth()); aiDropDown->setSelected(ailistModel->FindScriptIndex(ConfigManager::GetControlType(currentPlayer))); - page->add(backButton, page->getWidth() - (backButton->getWidth()+50), 288); + page->add(backButton, page->getWidth() - (backButton->getWidth()+50), page->getHeight() - (50 + backButton->getHeight())); page->add(prevPlayerButton, 50, 50); page->add(currentPlayerLabel, 50+prevPlayerButton->getWidth(), 50); page->add(nextPlayerButton, 50+prevPlayerButton->getWidth() + currentPlayerLabel->getWidth(), 50); Modified: src/menu/soundvideo.cpp =================================================================== --- src/menu/soundvideo.cpp 2006-11-29 17:15:55 UTC (rev 32) +++ src/menu/soundvideo.cpp 2006-11-29 18:27:37 UTC (rev 33) @@ -27,6 +27,7 @@ SoundVideoMenu::SoundVideoMenu(gcn::Container* top, SubMenu* parent):SubMenu(top,parent) { backButton = new gcn::Button("Back"); + backButton->setWidth(150); backButton->setEventId("back"); backButton->addActionListener(this); @@ -57,10 +58,10 @@ musicVolumeSlider->setEventId("musicVolumeChange"); musicVolumeSlider->addActionListener(this); - page->add(backButton, page->getWidth() - (backButton->getWidth()+50), 288); + page->add(backButton, page->getWidth() - (backButton->getWidth()+50), page->getHeight() - (50 + backButton->getHeight())); page->add(fullScreenCheckbox, 50, 50); - page->add(soundCheckbox, 50, 100); - page->add(musicCheckbox, 50, 150); + page->add(soundCheckbox, 50, 90); + page->add(musicCheckbox, 50, 130); 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()); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <hol...@us...> - 2006-11-30 06:26:00
|
Revision: 37 http://svn.sourceforge.net/balder/?rev=37&view=rev Author: holomorph Date: 2006-11-29 22:26:00 -0800 (Wed, 29 Nov 2006) Log Message: ----------- made entities "wrap around" when they go off the edge of the map Modified Paths: -------------- history.txt include/gamemanager.h src/entity.cpp src/gamemanager.cpp Modified: history.txt =================================================================== --- history.txt 2006-11-30 04:24:57 UTC (rev 36) +++ history.txt 2006-11-30 06:26:00 UTC (rev 37) @@ -4,6 +4,7 @@ History entries are in reverse chronological order (newest entries first). 29 Nov-2006 + - Bjorn made entities "wrap around" when they go off the edge of the map. - 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%. Modified: include/gamemanager.h =================================================================== --- include/gamemanager.h 2006-11-30 04:24:57 UTC (rev 36) +++ include/gamemanager.h 2006-11-30 06:26:00 UTC (rev 37) @@ -64,6 +64,8 @@ frame_number start_frame; Uint32 start_time; Uint32 end_time; + int mapwidth; + int mapheight; Renderer *render; SoundManager *sound; Input* input; @@ -91,6 +93,8 @@ GameManager(Renderer *, SoundManager *); ~GameManager(); frame_number GetFrame() const {return frame;} + int GetWidth() {return mapwidth;} + int GetHeight() {return mapheight;} void Start(); player_id CreateNewPlayer ( ); bool CreateNewPlayer(player_id, int score = 0, bool respawn = true); Modified: src/entity.cpp =================================================================== --- src/entity.cpp 2006-11-30 04:24:57 UTC (rev 36) +++ src/entity.cpp 2006-11-30 06:26:00 UTC (rev 37) @@ -76,6 +76,11 @@ if (y_velocity > MAXVELOCITY){ y_velocity = MAXVELOCITY;} x_position += x_velocity; y_position += y_velocity; + // if we're off the screen, wrap + if (x_position > game_manager->GetWidth()) x_position = 0; + if (x_position < 0) x_position = game_manager->GetWidth(); + if (y_position > game_manager->GetHeight()) y_position = 0; + if (y_position < 0) y_position = game_manager->GetHeight(); // now test for collisions with walls int collision_count = 0; int x_ave = 0; Modified: src/gamemanager.cpp =================================================================== --- src/gamemanager.cpp 2006-11-30 04:24:57 UTC (rev 36) +++ src/gamemanager.cpp 2006-11-30 06:26:00 UTC (rev 37) @@ -38,7 +38,7 @@ using namespace Balder; -GameManager::GameManager(Renderer *r, SoundManager* s): frame(0), +GameManager::GameManager(Renderer *r, SoundManager* s): mapwidth(0), mapheight(0), frame(0), render(r), sound(s), spawn(0) { input = new Input(this, ConfigManager::GetNumPlayers()); @@ -126,8 +126,8 @@ map_music = mp.GetMapMusic(); sound->PlayMusic(map_music.c_str()); - statbox_x = mp.GetMapWidth(); - statbox_y = mp.GetMapHeight(); + mapwidth = statbox_x = mp.GetMapWidth(); + mapheight = statbox_y = mp.GetMapHeight(); render->SetScreen(mp.GetMapWidth(), mp.GetMapHeight()+STATHEIGHT, ConfigManager::GetIntValue("Video", "fullscreen")); // create the collision mask This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <hol...@us...> - 2006-12-29 23:48:19
|
Revision: 51 http://svn.sourceforge.net/balder/?rev=51&view=rev Author: holomorph Date: 2006-12-29 15:48:19 -0800 (Fri, 29 Dec 2006) Log Message: ----------- replaced gcn::button with skinnedButton Modified Paths: -------------- history.txt include/menu/gamesetup.h include/menu/mainmenu.h include/menu/options.h include/menu/playersetup.h include/menu/skinnedbuttonwidget.h include/menu/soundvideo.h include/menu/submenu.h src/menu/gamesetup.cpp src/menu/options.cpp src/menu/playersetup.cpp src/menu/soundvideo.cpp Modified: history.txt =================================================================== --- history.txt 2006-12-12 20:10:27 UTC (rev 50) +++ history.txt 2006-12-29 23:48:19 UTC (rev 51) @@ -3,6 +3,11 @@ History entries are in reverse chronological order (newest entries first). +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). + 12 Dec-2006 - Bjorn fixed entities drawing in score box by setting the screen clipping rectangle to be the background image clipping when drawing entities. Modified: include/menu/gamesetup.h =================================================================== --- include/menu/gamesetup.h 2006-12-12 20:10:27 UTC (rev 50) +++ include/menu/gamesetup.h 2006-12-29 23:48:19 UTC (rev 51) @@ -27,6 +27,7 @@ { class SampleMapWidget; class MapListModel; +class SkinnedButtonWidget; class GameSetupMenu:public SubMenu { @@ -35,7 +36,7 @@ virtual ~GameSetupMenu(); void action(const std::string& action); private: - gcn::Button* backButton; + SkinnedButtonWidget* backButton; SampleMapWidget* sampleMap; gcn::Label* mapnameLabel; MapListModel* maplistModel; Modified: include/menu/mainmenu.h =================================================================== --- include/menu/mainmenu.h 2006-12-12 20:10:27 UTC (rev 50) +++ include/menu/mainmenu.h 2006-12-29 23:48:19 UTC (rev 51) @@ -21,8 +21,7 @@ #ifndef MAINMENU_H #define MAINSMENU_H -#include "submenu.h" -#include "skinnedbuttonwidget.h" +#include "submenu.h" namespace Balder { @@ -37,10 +36,10 @@ private: Menu* system; SubMenu* optionsMenu; - SkinnedButtonWidget* startButton; - SkinnedButtonWidget* optionsButton; - SkinnedButtonWidget* quitButton; - gcn::Label* versionLabel; + SkinnedButtonWidget* startButton; + SkinnedButtonWidget* optionsButton; + SkinnedButtonWidget* quitButton; + gcn::Label* versionLabel; }; } #endif // MAINMENU_H Modified: include/menu/options.h =================================================================== --- include/menu/options.h 2006-12-12 20:10:27 UTC (rev 50) +++ include/menu/options.h 2006-12-29 23:48:19 UTC (rev 51) @@ -36,14 +36,14 @@ SubMenu* gameSetupMenu; SubMenu* playerSetupMenu; SubMenu* soundVideoMenu; - gcn::Button* backButton; - gcn::Button* gameSetupButton; - gcn::Button* soundVideoButton; - gcn::Button* playersButton; + SkinnedButtonWidget* backButton; + SkinnedButtonWidget* gameSetupButton; + SkinnedButtonWidget* soundVideoButton; + SkinnedButtonWidget* playersButton; gcn::Label* numPlayersLabel; // to display current number of local players int numPlayers; - gcn::Button* morePlayersButton; - gcn::Button* lessPlayersButton; + SkinnedButtonWidget* morePlayersButton; + SkinnedButtonWidget* lessPlayersButton; }; } #endif // OPTIONSMENU_H Modified: include/menu/playersetup.h =================================================================== --- include/menu/playersetup.h 2006-12-12 20:10:27 UTC (rev 50) +++ include/menu/playersetup.h 2006-12-29 23:48:19 UTC (rev 51) @@ -38,9 +38,9 @@ void BindKey(const gcn::Key& key); private: void RefreshKeys(); - gcn::Button* backButton; - gcn::Button* nextPlayerButton; - gcn::Button* prevPlayerButton; + SkinnedButtonWidget* backButton; + SkinnedButtonWidget* nextPlayerButton; + SkinnedButtonWidget* prevPlayerButton; gcn::Label* currentPlayerLabel; int currentPlayer; bool bindNextKey; @@ -73,13 +73,13 @@ }; - class KeyBindButton:public gcn::Button + class KeyBindButton:public SkinnedButtonWidget { private: PlayerSetupMenu* menu; public: KeyBindButton(const std::string& caption, PlayerSetupMenu* m): - gcn::Button(caption), menu(m){} + SkinnedButtonWidget(caption, "menu/buttonskins.png"), menu(m){} void keyPress(const gcn::Key& key) { menu->BindKey(key); Modified: include/menu/skinnedbuttonwidget.h =================================================================== --- include/menu/skinnedbuttonwidget.h 2006-12-12 20:10:27 UTC (rev 50) +++ include/menu/skinnedbuttonwidget.h 2006-12-29 23:48:19 UTC (rev 51) @@ -20,12 +20,12 @@ #ifndef BALDERSKINNEDBUTTONWIDGET_H #define BALDERSKINNEDBUTTONWIDGET_H - -#define buttonUp 0 -#define buttonDown 1 -#define widgetFocused 2 - -#include <guichan/widgets/button.hpp> + +#define buttonUp 0 +#define buttonDown 1 +#define widgetFocused 2 + +#include <guichan/widgets/button.hpp> #include "../balder2dtypes.h" namespace Balder @@ -37,20 +37,20 @@ { public: // Constructor and Destructor. - SkinnedButtonWidget(std::string, std::string, unsigned int); - ~SkinnedButtonWidget(); - + SkinnedButtonWidget(std::string, std::string, unsigned int = 0); + ~SkinnedButtonWidget(); + // Inherited from gcn::Widget virtual void draw(gcn::Graphics* graphics); - virtual void drawBorder(gcn::Graphics* graphics); + virtual void drawBorder(gcn::Graphics* graphics); - private: - // Skin Variables. - SDL_Surface* skinFrameStrip; - std::string skinFileName; - unsigned int skinStripLocation; - - // Button Variables. + private: + // Skin Variables. + SDL_Surface* skinFrameStrip; + std::string skinFileName; + unsigned int skinStripLocation; + + // Button Variables. unsigned int buttonState; }; } Modified: include/menu/soundvideo.h =================================================================== --- include/menu/soundvideo.h 2006-12-12 20:10:27 UTC (rev 50) +++ include/menu/soundvideo.h 2006-12-29 23:48:19 UTC (rev 51) @@ -33,7 +33,7 @@ virtual ~SoundVideoMenu(); void action(const std::string& action); private: - gcn::Button* backButton; + SkinnedButtonWidget* backButton; gcn::CheckBox* fullScreenCheckbox; gcn::CheckBox* soundCheckbox; gcn::CheckBox* musicCheckbox; Modified: include/menu/submenu.h =================================================================== --- include/menu/submenu.h 2006-12-12 20:10:27 UTC (rev 50) +++ include/menu/submenu.h 2006-12-29 23:48:19 UTC (rev 51) @@ -22,9 +22,10 @@ #define SUBMENU_H #include <guichan.hpp> -#include <guichan/sdl.hpp> +#include <guichan/sdl.hpp> #include "animationwidget.h" #include "numberfield.h" +#include "skinnedbuttonwidget.h" namespace Balder { @@ -52,8 +53,8 @@ page->setVisible(false); } - virtual void action(const std::string& action){} - + virtual void action(const std::string& action){} + AnimationWidget* animationPageBackground; }; Modified: src/menu/gamesetup.cpp =================================================================== --- src/menu/gamesetup.cpp 2006-12-12 20:10:27 UTC (rev 50) +++ src/menu/gamesetup.cpp 2006-12-29 23:48:19 UTC (rev 51) @@ -27,8 +27,8 @@ GameSetupMenu::GameSetupMenu(gcn::Container* top, SubMenu* parent):SubMenu(top,parent) { - backButton = new gcn::Button("Back"); - backButton->setWidth(150); + backButton = new SkinnedButtonWidget("Back", "menu/buttonskins.png"); + backButton->setWidth(150); backButton->setEventId("back"); backButton->addActionListener(this); @@ -65,7 +65,7 @@ timeLimitValue->setVisible(time > 0); lifeLimitValue = new NumberField(life); lifeLimitValue->setEnabled(life > 0); - lifeLimitValue->setVisible(life > 0); + lifeLimitValue->setVisible(life > 0); page->add(backButton, page->getWidth() - (backButton->getWidth()+50), page->getHeight() - (50 + backButton->getHeight())); page->add(sampleMap, 50, 50); Modified: src/menu/options.cpp =================================================================== --- src/menu/options.cpp 2006-12-12 20:10:27 UTC (rev 50) +++ src/menu/options.cpp 2006-12-29 23:48:19 UTC (rev 51) @@ -29,7 +29,7 @@ OptionsMenu::OptionsMenu(gcn::Container* top, SubMenu* parent):SubMenu(top,parent) { - backButton = new gcn::Button("Back"); + backButton = new SkinnedButtonWidget("Back", "menu/buttonskins.png"); backButton->setWidth(150); backButton->setEventId("back"); backButton->addActionListener(this); @@ -39,29 +39,29 @@ ss << "Number of Players: " << numPlayers; numPlayersLabel = new gcn::Label(ss.str()); - morePlayersButton = new gcn::Button("+"); + morePlayersButton = new SkinnedButtonWidget("+", "menu/buttonskins.png"); morePlayersButton->setEventId("morePlayers"); morePlayersButton->addActionListener(this); morePlayersButton->setHeight(numPlayersLabel->getHeight()/2); - lessPlayersButton = new gcn::Button("-"); + lessPlayersButton = new SkinnedButtonWidget("-", "menu/buttonskins.png"); lessPlayersButton->setEventId("lessPlayers"); lessPlayersButton->addActionListener(this); lessPlayersButton->setHeight(numPlayersLabel->getHeight()/2); lessPlayersButton->setWidth(morePlayersButton->getWidth()); - soundVideoButton = new gcn::Button("Sound and Video"); + soundVideoButton = new SkinnedButtonWidget("Sound and Video", "menu/buttonskins.png"); soundVideoButton->setEventId("soundVideoMenu"); soundVideoButton->addActionListener(this); soundVideoButton->setAlignment(0); //alignment is justified left. - gameSetupButton = new gcn::Button("Game Setup"); + gameSetupButton = new SkinnedButtonWidget("Game Setup", "menu/buttonskins.png"); gameSetupButton->setEventId("gameSetupMenu"); gameSetupButton->addActionListener(this); gameSetupButton->setWidth(soundVideoButton->getWidth()); gameSetupButton->setAlignment(0); //alignment is justified left. - playersButton = new gcn::Button("Player Setup"); + playersButton = new SkinnedButtonWidget("Player Setup", "menu/buttonskins.png"); playersButton->setEventId("playerSetupMenu"); playersButton->addActionListener(this); playersButton->setWidth(soundVideoButton->getWidth()); Modified: src/menu/playersetup.cpp =================================================================== --- src/menu/playersetup.cpp 2006-12-12 20:10:27 UTC (rev 50) +++ src/menu/playersetup.cpp 2006-12-29 23:48:19 UTC (rev 51) @@ -30,8 +30,8 @@ PlayerSetupMenu::PlayerSetupMenu(gcn::Container* top, SubMenu* parent):SubMenu(top,parent) { - backButton = new gcn::Button("Back"); - backButton->setWidth(150); + backButton = new SkinnedButtonWidget("Back", "menu/buttonskins.png"); + backButton->setWidth(150); backButton->setEventId("back"); backButton->addActionListener(this); @@ -40,11 +40,11 @@ ss << "Player " << currentPlayer; currentPlayerLabel = new gcn::Label(ss.str()); - nextPlayerButton = new gcn::Button(" > "); + nextPlayerButton = new SkinnedButtonWidget(" > ", "menu/buttonskins.png"); nextPlayerButton->setEventId("nextPlayer"); nextPlayerButton->addActionListener(this); - prevPlayerButton = new gcn::Button(" < "); + prevPlayerButton = new SkinnedButtonWidget(" < ", "menu/buttonskins.png"); prevPlayerButton->setEventId("prevPlayer"); prevPlayerButton->addActionListener(this); Modified: src/menu/soundvideo.cpp =================================================================== --- src/menu/soundvideo.cpp 2006-12-12 20:10:27 UTC (rev 50) +++ src/menu/soundvideo.cpp 2006-12-29 23:48:19 UTC (rev 51) @@ -26,8 +26,8 @@ SoundVideoMenu::SoundVideoMenu(gcn::Container* top, SubMenu* parent):SubMenu(top,parent) { - backButton = new gcn::Button("Back"); - backButton->setWidth(150); + backButton = new SkinnedButtonWidget("Back", "menu/buttonskins.png"); + 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-17 02:57:42
|
Revision: 54 http://svn.sourceforge.net/balder/?rev=54&view=rev Author: holomorph Date: 2007-07-16 19:57:38 -0700 (Mon, 16 Jul 2007) Log Message: ----------- patched to work with guichan 6.1 Modified Paths: -------------- history.txt include/computerprobecontrol.h include/menu/gamesetup.h include/menu/mainmenu.h include/menu/menu.h include/menu/numberfield.h include/menu/options.h include/menu/playersetup.h include/menu/soundvideo.h src/menu/gamesetup.cpp src/menu/mainmenu.cpp src/menu/menu.cpp src/menu/numberfield.cpp src/menu/options.cpp src/menu/playersetup.cpp src/menu/sampleprobewidget.cpp src/menu/skinnedbuttonwidget.cpp src/menu/soundvideo.cpp Modified: history.txt =================================================================== --- history.txt 2007-01-25 23:39:56 UTC (rev 53) +++ history.txt 2007-07-17 02:57:38 UTC (rev 54) @@ -3,6 +3,9 @@ History entries are in reverse chronological order (newest entries first). +16 July-2007 + - Bjorn patched the source to run with guichan 0.6.1 (too bad 7.0 is out now) + 29 Dec-2006 - Bjorn replaced the rest of the gcn::Button 's in the menu with skinned buttons. Modified: include/computerprobecontrol.h =================================================================== --- include/computerprobecontrol.h 2007-01-25 23:39:56 UTC (rev 53) +++ include/computerprobecontrol.h 2007-07-17 02:57:38 UTC (rev 54) @@ -23,6 +23,7 @@ #include <Python.h> #include <list> +#include <string> #include "../include/balder2dtypes.h" namespace Balder { Modified: include/menu/gamesetup.h =================================================================== --- include/menu/gamesetup.h 2007-01-25 23:39:56 UTC (rev 53) +++ include/menu/gamesetup.h 2007-07-17 02:57:38 UTC (rev 54) @@ -34,7 +34,7 @@ public: GameSetupMenu(gcn::Container* top, SubMenu* parent); virtual ~GameSetupMenu(); - void action(const std::string& action); + void action(const gcn::ActionEvent& action); private: SkinnedButtonWidget* backButton; SampleMapWidget* sampleMap; Modified: include/menu/mainmenu.h =================================================================== --- include/menu/mainmenu.h 2007-01-25 23:39:56 UTC (rev 53) +++ include/menu/mainmenu.h 2007-07-17 02:57:38 UTC (rev 54) @@ -32,7 +32,7 @@ public: MainMenu(gcn::Container* top, Menu* menusystem); virtual ~MainMenu(); - void action(const std::string& action); + void action(const gcn::ActionEvent& action); private: Menu* system; SubMenu* optionsMenu; Modified: include/menu/menu.h =================================================================== --- include/menu/menu.h 2007-01-25 23:39:56 UTC (rev 53) +++ include/menu/menu.h 2007-07-17 02:57:38 UTC (rev 54) @@ -36,7 +36,7 @@ public: Menu(SoundManager *); virtual ~Menu(); - void action(const std::string& action); + void action(const gcn::ActionEvent& action); bool Run(); static SDLKey lastKeyPressed; // ugly hack for keybinding private: Modified: include/menu/numberfield.h =================================================================== --- include/menu/numberfield.h 2007-01-25 23:39:56 UTC (rev 53) +++ include/menu/numberfield.h 2007-07-17 02:57:38 UTC (rev 54) @@ -25,7 +25,7 @@ { public: NumberField(int n, int maxDigits = 3); - virtual void mousePress(int x, int y, int button); + virtual void mousePressed(gcn::MouseEvent &e); virtual void keyPress (const gcn::Key &key); virtual void draw(gcn::Graphics*); int getValue(); Modified: include/menu/options.h =================================================================== --- include/menu/options.h 2007-01-25 23:39:56 UTC (rev 53) +++ include/menu/options.h 2007-07-17 02:57:38 UTC (rev 54) @@ -31,7 +31,7 @@ public: OptionsMenu(gcn::Container* top, SubMenu* parent); virtual ~OptionsMenu(); - void action(const std::string& action); + void action(const gcn::ActionEvent& action); private: SubMenu* gameSetupMenu; SubMenu* playerSetupMenu; Modified: include/menu/playersetup.h =================================================================== --- include/menu/playersetup.h 2007-01-25 23:39:56 UTC (rev 53) +++ include/menu/playersetup.h 2007-07-17 02:57:38 UTC (rev 54) @@ -34,7 +34,7 @@ public: PlayerSetupMenu(gcn::Container* top, SubMenu* parent); virtual ~PlayerSetupMenu(); - void action(const std::string& action); + void action(const gcn::ActionEvent& action); void BindKey(const gcn::Key& key); private: void RefreshKeys(); Modified: include/menu/soundvideo.h =================================================================== --- include/menu/soundvideo.h 2007-01-25 23:39:56 UTC (rev 53) +++ include/menu/soundvideo.h 2007-07-17 02:57:38 UTC (rev 54) @@ -31,7 +31,7 @@ public: SoundVideoMenu(gcn::Container* top, SubMenu* parent); virtual ~SoundVideoMenu(); - void action(const std::string& action); + void action(const gcn::ActionEvent& action); private: SkinnedButtonWidget* backButton; gcn::CheckBox* fullScreenCheckbox; Modified: src/menu/gamesetup.cpp =================================================================== --- src/menu/gamesetup.cpp 2007-01-25 23:39:56 UTC (rev 53) +++ src/menu/gamesetup.cpp 2007-07-17 02:57:38 UTC (rev 54) @@ -29,7 +29,7 @@ { backButton = new SkinnedButtonWidget("Back", "menu/buttonskins.png", 80); backButton->setWidth(150); - backButton->setEventId("back"); + backButton->setActionEventId("back"); backButton->addActionListener(this); sampleMap = new SampleMapWidget(ConfigManager::GetMap(), 0, 0, 100, 80); @@ -39,7 +39,7 @@ mapScrollArea = new gcn::ScrollArea(); mapListBox = new gcn::ListBox(); mapListBox->setWidth(400); - mapListBox->setEventId("selectNewMap"); + mapListBox->setActionEventId("selectNewMap"); mapListBox->addActionListener(this); mapDropDown = new gcn::DropDown(maplistModel, mapScrollArea, mapListBox); mapDropDown->setWidth(mapListBox->getWidth()+20); @@ -49,13 +49,13 @@ int time = ConfigManager::GetIntValue("GameSetup", "TimeLimit"); int life = ConfigManager::GetIntValue("GameSetup", "LifeLimit"); scoreLimitSelector = new gcn::CheckBox("Maximum Score", score > 0); - scoreLimitSelector->setEventId("toggleScoreLimit"); + scoreLimitSelector->setActionEventId("toggleScoreLimit"); scoreLimitSelector->addActionListener(this); timeLimitSelector = new gcn::CheckBox("Time (minutes)", time > 0); - timeLimitSelector->setEventId("toggleTimeLimit"); + timeLimitSelector->setActionEventId("toggleTimeLimit"); timeLimitSelector->addActionListener(this); lifeLimitSelector = new gcn::CheckBox("Limited Lives", life > 0); - lifeLimitSelector->setEventId("toggleLifeLimit"); + lifeLimitSelector->setActionEventId("toggleLifeLimit"); lifeLimitSelector->addActionListener(this); scoreLimitValue = new NumberField(score); scoreLimitValue->setEnabled(score > 0); @@ -82,14 +82,14 @@ GameSetupMenu::~GameSetupMenu() {} -void GameSetupMenu::action(const std::string& action) +void GameSetupMenu::action(const gcn::ActionEvent& action) { - if (action == "selectNewMap") + if (action.getId() == "selectNewMap") { ConfigManager::SetMap(maplistModel->getElementAt(mapListBox->getSelected()).c_str()); sampleMap->setSampleMap(ConfigManager::GetMap()); } - else if (action == "toggleScoreLimit") + else if (action.getId() == "toggleScoreLimit") { int score = scoreLimitValue->getValue()*-1; if (0 == score) score = -10; @@ -99,7 +99,7 @@ scoreLimitValue->setVisible(score > 0); ConfigManager::SetIntValue("GameSetup", "ScoreLimit", scoreLimitValue->getValue()); } - else if (action == "toggleTimeLimit") + else if (action.getId() == "toggleTimeLimit") { int time = timeLimitValue->getValue()*-1; if (0 == time) time = 10; @@ -109,7 +109,7 @@ timeLimitValue->setVisible(time > 0); ConfigManager::SetIntValue("GameSetup", "TimeLimit", timeLimitValue->getValue()); } - else if (action == "toggleLifeLimit") + else if (action.getId() == "toggleLifeLimit") { int life = lifeLimitValue->getValue()*-1; if (0 == life) life = -10; @@ -119,7 +119,7 @@ lifeLimitValue->setVisible(life > 0); ConfigManager::SetIntValue("GameSetup", "LifeLimit", lifeLimitValue->getValue()); } - else if (action == "back") + else if (action.getId() == "back") { hide(); parent->show(); Modified: src/menu/mainmenu.cpp =================================================================== --- src/menu/mainmenu.cpp 2007-01-25 23:39:56 UTC (rev 53) +++ src/menu/mainmenu.cpp 2007-07-17 02:57:38 UTC (rev 54) @@ -27,20 +27,20 @@ MainMenu::MainMenu(gcn::Container* top, Menu* menusystem):SubMenu(top),system(menusystem) { startButton = new SkinnedButtonWidget("Start Game", "menu/buttonskins.png", 0); - startButton->setEventId("startgame"); + startButton->setActionEventId("startgame"); startButton->addActionListener(this); startButton->setWidth(300); startButton->setAlignment(0); //alignment is justified left. optionsButton = new SkinnedButtonWidget("Options", "menu/buttonskins.png", 0); - optionsButton->setEventId("optionsMenu"); + optionsButton->setActionEventId("optionsMenu"); optionsButton->addActionListener(this); optionsButton->setWidth(300); optionsButton->setAlignment(0); //alignment is justified left. quitButton = new SkinnedButtonWidget("Quit", "menu/buttonskins.png", 0); quitButton->setWidth(300); - quitButton->setEventId("quitgame"); + quitButton->setActionEventId("quitgame"); quitButton->addActionListener(this); quitButton->setAlignment(0); //alignment is justified left. @@ -61,10 +61,10 @@ } -void MainMenu::action(const std::string& action) +void MainMenu::action(const gcn::ActionEvent& action) { // Main menu events.******************************************************** - if (action == "optionsMenu") + if (action.getId() == "optionsMenu") { hide(); optionsMenu->show(); Modified: src/menu/menu.cpp =================================================================== --- src/menu/menu.cpp 2007-01-25 23:39:56 UTC (rev 53) +++ src/menu/menu.cpp 2007-07-17 02:57:38 UTC (rev 54) @@ -74,9 +74,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) */1000); - backgroundImage = new gcn::Image("menu/menubackground.png"); + backgroundImage = gcn::Image::load("menu/menubackground.png"); backgroundIcon = new gcn::Icon(backgroundImage); - headerImage = new gcn::Image("menu/balderheader.png"); + headerImage = gcn::Image::load("menu/balderheader.png"); headerIcon = new gcn::Icon(headerImage); topContainer->add(backgroundIcon, 0, 0); topContainer->add(twinkleAnimation,600,420); @@ -119,7 +119,7 @@ // update the screen SDL_UpdateRect(screen,0,0,0,0); } - Menu::action("saveSettings"); +// Menu::action(ActionEvent(???, "saveSettings")); XXX FIXME: what wiget should send this event? if (startgame) { return true; @@ -127,15 +127,15 @@ return false; } -void Menu::action(const std::string& action) +void Menu::action(const gcn::ActionEvent& action) { // Main menu events.******************************************************** - if (action == "startgame") + if (action.getId() == "startgame") { running = false; startgame = true; } - else if (action == "quitgame") + else if (action.getId() == "quitgame") { running = false; startgame = false; Modified: src/menu/numberfield.cpp =================================================================== --- src/menu/numberfield.cpp 2007-01-25 23:39:56 UTC (rev 53) +++ src/menu/numberfield.cpp 2007-07-17 02:57:38 UTC (rev 54) @@ -10,6 +10,8 @@ // // #include <sstream> +#include <guichan/font.hpp> +#include <guichan/graphics.hpp> #include "../../include/menu/numberfield.h" using namespace Balder; @@ -40,11 +42,11 @@ setText(ss.str()); } -void NumberField::mousePress(int x, int y, int button) +void NumberField::mousePressed(MouseEvent& e) { - if (hasMouse() && button == MouseInput::LEFT) + if (e.getButton() == MouseEvent::LEFT) { - mCaretPosition = getFont()->getStringIndexAt(mText, x + mXScroll); + mCaretPosition = getFont()->getStringIndexAt(mText, e.getX() + mXScroll); fixScroll(); } } @@ -102,7 +104,7 @@ graphics->setColor(faceColor); graphics->fillRectangle(Rectangle(0, 0, getWidth(), getHeight())); - if (hasFocus()) + if (isFocused()) { drawCaret(graphics, getWidth()-getFont()->getWidth(mText.substr(mCaretPosition,mText.size())) - 4); } Modified: src/menu/options.cpp =================================================================== --- src/menu/options.cpp 2007-01-25 23:39:56 UTC (rev 53) +++ src/menu/options.cpp 2007-07-17 02:57:38 UTC (rev 54) @@ -31,7 +31,7 @@ { backButton = new SkinnedButtonWidget("Back", "menu/buttonskins.png", 80); backButton->setWidth(150); - backButton->setEventId("back"); + backButton->setActionEventId("back"); backButton->addActionListener(this); std::stringstream ss; @@ -40,30 +40,30 @@ numPlayersLabel = new gcn::Label(ss.str()); morePlayersButton = new SkinnedButtonWidget("+", "menu/buttonskins.png"); - morePlayersButton->setEventId("morePlayers"); + morePlayersButton->setActionEventId("morePlayers"); morePlayersButton->addActionListener(this); morePlayersButton->setHeight(numPlayersLabel->getHeight()/2); lessPlayersButton = new SkinnedButtonWidget("-", "menu/buttonskins.png"); - lessPlayersButton->setEventId("lessPlayers"); + lessPlayersButton->setActionEventId("lessPlayers"); lessPlayersButton->addActionListener(this); lessPlayersButton->setHeight(numPlayersLabel->getHeight()/2); lessPlayersButton->setWidth(morePlayersButton->getWidth()); soundVideoButton = new SkinnedButtonWidget("Sound and Video", "menu/buttonskins.png"); - soundVideoButton->setEventId("soundVideoMenu"); + soundVideoButton->setActionEventId("soundVideoMenu"); soundVideoButton->addActionListener(this); soundVideoButton->setWidth(300); soundVideoButton->setAlignment(0); //alignment is justified left. gameSetupButton = new SkinnedButtonWidget("Game Setup", "menu/buttonskins.png"); - gameSetupButton->setEventId("gameSetupMenu"); + gameSetupButton->setActionEventId("gameSetupMenu"); gameSetupButton->addActionListener(this); gameSetupButton->setWidth(soundVideoButton->getWidth()); gameSetupButton->setAlignment(0); //alignment is justified left. playersButton = new SkinnedButtonWidget("Player Setup", "menu/buttonskins.png"); - playersButton->setEventId("playerSetupMenu"); + playersButton->setActionEventId("playerSetupMenu"); playersButton->addActionListener(this); playersButton->setWidth(soundVideoButton->getWidth()); playersButton->setAlignment(0); //alignment is justified left. @@ -86,9 +86,9 @@ { } -void OptionsMenu::action(const std::string& action) +void OptionsMenu::action(const gcn::ActionEvent& action) { - if (action == "morePlayers") + if (action.getId() == "morePlayers") { if (numPlayers < 8) { @@ -99,7 +99,7 @@ ConfigManager::SetNumPlayers(numPlayers); } } - else if (action == "lessPlayers") + else if (action.getId() == "lessPlayers") { if (numPlayers > 1) { @@ -110,22 +110,22 @@ ConfigManager::SetNumPlayers(numPlayers); } } - else if (action == "gameSetupMenu") + else if (action.getId() == "gameSetupMenu") { hide(); gameSetupMenu->show(); } - else if (action == "playerSetupMenu") + else if (action.getId() == "playerSetupMenu") { hide(); playerSetupMenu->show(); } - else if (action == "soundVideoMenu") + else if (action.getId() == "soundVideoMenu") { hide(); soundVideoMenu->show(); } - else if (action == "back") + else if (action.getId() == "back") { hide(); ConfigManager::SaveConfigFile(); Modified: src/menu/playersetup.cpp =================================================================== --- src/menu/playersetup.cpp 2007-01-25 23:39:56 UTC (rev 53) +++ src/menu/playersetup.cpp 2007-07-17 02:57:38 UTC (rev 54) @@ -32,7 +32,7 @@ { backButton = new SkinnedButtonWidget("Back", "menu/buttonskins.png", 80); backButton->setWidth(150); - backButton->setEventId("back"); + backButton->setActionEventId("back"); backButton->addActionListener(this); currentPlayer = 1; @@ -41,35 +41,35 @@ currentPlayerLabel = new gcn::Label(ss.str()); nextPlayerButton = new SkinnedButtonWidget(" > ", "menu/buttonskins.png", 120); - nextPlayerButton->setEventId("nextPlayer"); + nextPlayerButton->setActionEventId("nextPlayer"); nextPlayerButton->addActionListener(this); nextPlayerButton->setWidth(40); prevPlayerButton = new SkinnedButtonWidget(" < ", "menu/buttonskins.png", 120); - prevPlayerButton->setEventId("prevPlayer"); + prevPlayerButton->setActionEventId("prevPlayer"); prevPlayerButton->addActionListener(this); prevPlayerButton->setWidth(40); setRotateRightButton = new KeyBindButton("Rotate Right:", this); - setRotateRightButton->setEventId("bindRight"); + setRotateRightButton->setActionEventId("bindRight"); setRotateRightButton->addActionListener(this); rotateRightLabel = new gcn::Label(ConfigManager::GetPlayerControl(currentPlayer, "right")); setRotateRightButton->setAlignment(0); setRotateLeftButton = new KeyBindButton("Rotate Left:", this); - setRotateLeftButton->setEventId("bindLeft"); + setRotateLeftButton->setActionEventId("bindLeft"); setRotateLeftButton->addActionListener(this); rotateLeftLabel = new gcn::Label(ConfigManager::GetPlayerControl(currentPlayer, "left")); setRotateLeftButton->setAlignment(0); setStickPushButton = new KeyBindButton("Stick/Push Off:", this); - setStickPushButton->setEventId("bindStick"); + setStickPushButton->setActionEventId("bindStick"); setStickPushButton->addActionListener(this); stickPushLabel = new gcn::Label(ConfigManager::GetPlayerControl(currentPlayer, "stick")); setStickPushButton->setAlignment(0); setFireButton = new KeyBindButton("Fire:", this); - setFireButton->setEventId("bindFire"); + setFireButton->setActionEventId("bindFire"); setFireButton->addActionListener(this); fireLabel = new gcn::Label(ConfigManager::GetPlayerControl(currentPlayer, "fire")); setFireButton->setAlignment(0); @@ -90,31 +90,31 @@ playerColor = playerColor >> 8; Uint8 cRed = Uint8(playerColor); - redImage= new gcn::Image("menu/redspectrum.png"); + redImage= gcn::Image::load("menu/redspectrum.png"); redIcon = new gcn::Icon(redImage); redSlider = new gcn::Slider(0, 255); redSlider->setWidth(redIcon->getWidth()); redSlider->setHeight(15); redSlider->setValue(double(cRed)); - redSlider->setEventId("colorChange"); + redSlider->setActionEventId("colorChange"); redSlider->addActionListener(this); - greenImage= new gcn::Image("menu/greenspectrum.png"); + greenImage= gcn::Image::load("menu/greenspectrum.png"); greenIcon = new gcn::Icon(greenImage); greenSlider = new gcn::Slider(0, 255); greenSlider->setWidth(redIcon->getWidth()); greenSlider->setHeight(15); greenSlider->setValue(double(cGreen)); - greenSlider->setEventId("colorChange"); + greenSlider->setActionEventId("colorChange"); greenSlider->addActionListener(this); - blueImage= new gcn::Image("menu/bluespectrum.png"); + blueImage= gcn::Image::load("menu/bluespectrum.png"); blueIcon = new gcn::Icon(blueImage); blueSlider = new gcn::Slider(0, 255); blueSlider->setWidth(redIcon->getWidth()); blueSlider->setHeight(15); blueSlider->setValue(double(cBlue)); - blueSlider->setEventId("colorChange"); + blueSlider->setActionEventId("colorChange"); blueSlider->addActionListener(this); // AI Script list box. @@ -123,7 +123,7 @@ aiScrollArea = new gcn::ScrollArea(); aiListBox = new gcn::ListBox(); aiListBox->setWidth(redIcon->getWidth() - 12); - aiListBox->setEventId("changeAIScript"); + aiListBox->setActionEventId("changeAIScript"); aiListBox->addActionListener(this); aiDropDown = new gcn::DropDown(ailistModel, aiScrollArea, aiListBox); aiDropDown->setWidth(redIcon->getWidth()); @@ -164,10 +164,10 @@ { } -void PlayerSetupMenu::action(const std::string& action) +void PlayerSetupMenu::action(const gcn::ActionEvent& action) { // Player options menu events.********************************************** - if (action == "nextPlayer") + if (action.getId() == "nextPlayer") { if (currentPlayer < ConfigManager::GetNumPlayers()) { @@ -175,7 +175,7 @@ RefreshKeys(); } } - else if (action == "prevPlayer") + else if (action.getId() == "prevPlayer") { if (currentPlayer > 1 ) { @@ -183,36 +183,36 @@ RefreshKeys(); } } - else if (action == "bindRight") + else if (action.getId() == "bindRight") { rotateRightLabel->setCaption(" "); actionToBind = "right"; bindNextKey = true; } - else if (action == "bindLeft") + else if (action.getId() == "bindLeft") { rotateLeftLabel->setCaption(" "); actionToBind = "left"; bindNextKey = true; } - else if (action == "bindStick") + else if (action.getId() == "bindStick") { stickPushLabel->setCaption(" "); actionToBind = "stick"; bindNextKey = true; } - else if (action == "bindFire") + else if (action.getId() == "bindFire") { fireLabel->setCaption(" "); actionToBind = "fire"; bindNextKey = true; } - else if (action == "changeAIScript") + else if (action.getId() == "changeAIScript") { ConfigManager::SetControlType(currentPlayer, ailistModel->getElementAt(aiListBox->getSelected()).c_str()); RefreshKeys(); } - else if (action == "colorChange") + else if (action.getId() == "colorChange") { Uint32 rgbColor = Uint8(redSlider->getValue()); rgbColor = rgbColor << 8; @@ -222,7 +222,7 @@ sampleProbe->setProbeColor((rgbColor << 8) + 0xFF); ConfigManager::SetPlayerColor(currentPlayer, rgbColor); } - else if (action == "back") + else if (action.getId() == "back") { hide(); parent->show(); Modified: src/menu/sampleprobewidget.cpp =================================================================== --- src/menu/sampleprobewidget.cpp 2007-01-25 23:39:56 UTC (rev 53) +++ src/menu/sampleprobewidget.cpp 2007-07-17 02:57:38 UTC (rev 54) @@ -31,7 +31,7 @@ SampleProbeWidget::SampleProbeWidget(): probeFrame(0), probeColor(0) { // Loads sprite for sample probe. - probeSpriteImage = new gcn::Image("probe.png"); + probeSpriteImage = gcn::Image::load("probe.png"); if (probeSpriteImage == 0){ throw "could not load Probe sprite!"; } Modified: src/menu/skinnedbuttonwidget.cpp =================================================================== --- src/menu/skinnedbuttonwidget.cpp 2007-01-25 23:39:56 UTC (rev 53) +++ src/menu/skinnedbuttonwidget.cpp 2007-07-17 02:57:38 UTC (rev 54) @@ -20,6 +20,7 @@ #include <guichan/exception.hpp> #include <guichan/sdl/sdlgraphics.hpp> +#include <guichan/font.hpp> #include <SDL/SDL.h> #include <SDL/SDL_image.h> #include "../../include/menu/skinnedbuttonwidget.h" @@ -60,7 +61,7 @@ buttonState = buttonDown; } - if (hasFocus()) + if (isFocused()) { buttonState += widgetFocused; } Modified: src/menu/soundvideo.cpp =================================================================== --- src/menu/soundvideo.cpp 2007-01-25 23:39:56 UTC (rev 53) +++ src/menu/soundvideo.cpp 2007-07-17 02:57:38 UTC (rev 54) @@ -28,34 +28,34 @@ { backButton = new SkinnedButtonWidget("Back", "menu/buttonskins.png", 80); backButton->setWidth(150); - backButton->setEventId("back"); + backButton->setActionEventId("back"); backButton->addActionListener(this); fullScreenCheckbox = new gcn::CheckBox("Fullscreen", ConfigManager::GetIntValue("Video", "fullscreen")); - fullScreenCheckbox->setEventId("toggleFullscreen"); + fullScreenCheckbox->setActionEventId("toggleFullscreen"); fullScreenCheckbox->addActionListener(this); soundCheckbox = new gcn::CheckBox("Sound", ConfigManager::GetIntValue("Sound", "sound")); - soundCheckbox->setEventId("toggleSound"); + soundCheckbox->setActionEventId("toggleSound"); soundCheckbox->addActionListener(this); musicCheckbox = new gcn::CheckBox("Music", ConfigManager::GetIntValue("Sound", "music")); - musicCheckbox->setEventId("toggleMusic"); + musicCheckbox->setActionEventId("toggleMusic"); musicCheckbox->addActionListener(this); 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->setActionEventId("fxVolumeChange"); fxVolumeSlider->addActionListener(this); musicVolumeLabel = new gcn::Label(" Volume"); musicVolumeSlider = new gcn::Slider(); musicVolumeSlider->setSize(200, musicVolumeLabel->getHeight()/2); musicVolumeSlider->setValue(ConfigManager::GetDoubleValue("Sound", "musicvolume")); - musicVolumeSlider->setEventId("musicVolumeChange"); + musicVolumeSlider->setActionEventId("musicVolumeChange"); musicVolumeSlider->addActionListener(this); page->add(backButton, page->getWidth() - (backButton->getWidth()+50), page->getHeight() - (50 + backButton->getHeight())); @@ -72,32 +72,32 @@ { } -void SoundVideoMenu::action(const std::string& action) +void SoundVideoMenu::action(const gcn::ActionEvent& action) { - if (action == "toggleSound") + if (action.getId() == "toggleSound") { ConfigManager::SetIntValue("Sound", "sound", soundCheckbox->isMarked()); } - else if (action == "toggleMusic") + else if (action.getId() == "toggleMusic") { ConfigManager::SetIntValue("Sound", "music", musicCheckbox->isMarked()); // sound->PlayMusic("menu"); } - else if (action == "fxVolumeChange") + else if (action.getId() == "fxVolumeChange") { Mix_Volume(-1, (int)(MIX_MAX_VOLUME * fxVolumeSlider->getValue())); ConfigManager::SetDoubleValue("Sound", "fxvolume", fxVolumeSlider->getValue()); } - else if (action == "musicVolumeChange") + else if (action.getId() == "musicVolumeChange") { Mix_VolumeMusic(int(MIX_MAX_VOLUME * musicVolumeSlider->getValue())); ConfigManager::SetDoubleValue("Sound", "musicvolume", musicVolumeSlider->getValue()); } - else if (action == "toggleFullscreen") + else if (action.getId() == "toggleFullscreen") { ConfigManager::SetIntValue("Video", "fullscreen", fullScreenCheckbox->isMarked()); } - else if (action == "back") + else if (action.getId() == "back") { hide(); parent->show(); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <hol...@us...> - 2007-07-17 03:05:54
|
Revision: 55 http://svn.sourceforge.net/balder/?rev=55&view=rev Author: holomorph Date: 2007-07-16 20:05:55 -0700 (Mon, 16 Jul 2007) Log Message: ----------- fixed man page error and fullscreen option confusion Modified Paths: -------------- debian/balder2d.6 src/menu/soundvideo.cpp Modified: debian/balder2d.6 =================================================================== --- debian/balder2d.6 2007-07-17 02:57:38 UTC (rev 54) +++ debian/balder2d.6 2007-07-17 03:05:55 UTC (rev 55) @@ -44,7 +44,7 @@ .B config-file The config file to use .SH FILES -by default the config file is ~/.Balder2d.conf +by default the config file is ~/.balder2d.conf .SH BUGS There most likely are some, please report them. .SH AUTHOR Modified: src/menu/soundvideo.cpp =================================================================== --- src/menu/soundvideo.cpp 2007-07-17 02:57:38 UTC (rev 54) +++ src/menu/soundvideo.cpp 2007-07-17 03:05:55 UTC (rev 55) @@ -31,7 +31,7 @@ backButton->setActionEventId("back"); backButton->addActionListener(this); - fullScreenCheckbox = new gcn::CheckBox("Fullscreen", + fullScreenCheckbox = new gcn::CheckBox("Fullscreen (in game only)", 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-08-16 18:35:55
|
Revision: 61 http://balder.svn.sourceforge.net/balder/?rev=61&view=rev Author: colalord Date: 2007-08-16 11:35:58 -0700 (Thu, 16 Aug 2007) Log Message: ----------- 16 Aug-2007 - Reuben updated: /src/menu/playersetup.cpp & /src/menu/playersetup.h Updated: void PlayerSetupMenu::keyPressed(gcn::KeyEvent &keyEvent) so that the parameter keyEvent is no longer constant. This allows the 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. Modified Paths: -------------- history.txt include/menu/playersetup.h src/menu/playersetup.cpp Modified: history.txt =================================================================== --- history.txt 2007-08-15 23:58:48 UTC (rev 60) +++ history.txt 2007-08-16 18:35:58 UTC (rev 61) @@ -3,6 +3,14 @@ History entries are in reverse chronological order (newest entries first). +16 Aug-2007 + - Reuben updated: /src/menu/playersetup.cpp & /src/menu/playersetup.h + Updated: void PlayerSetupMenu::keyPressed(gcn::KeyEvent &keyEvent) so + that the parameter keyEvent is no longer constant. This allows the + 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. Modified: include/menu/playersetup.h =================================================================== --- include/menu/playersetup.h 2007-08-15 23:58:48 UTC (rev 60) +++ include/menu/playersetup.h 2007-08-16 18:35:58 UTC (rev 61) @@ -35,7 +35,7 @@ PlayerSetupMenu(gcn::Container* top, SubMenu* parent); virtual ~PlayerSetupMenu(); void action(const gcn::ActionEvent& action); - void keyPressed(const gcn::KeyEvent &keyEvent); + void keyPressed(gcn::KeyEvent &keyEvent); private: void RefreshKeys(); SkinnedButtonWidget* backButton; Modified: src/menu/playersetup.cpp =================================================================== --- src/menu/playersetup.cpp 2007-08-15 23:58:48 UTC (rev 60) +++ src/menu/playersetup.cpp 2007-08-16 18:35:58 UTC (rev 61) @@ -30,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"); @@ -204,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") { @@ -287,9 +287,8 @@ blueSlider->setValue(double(cBlue)); } -void PlayerSetupMenu::keyPressed(const gcn::KeyEvent &keyEvent) +void PlayerSetupMenu::keyPressed(gcn::KeyEvent &keyEvent) { -Log::output("keyPressd"); int value = keyEvent.getKey().getValue(); if (value == gcn::Key::ESCAPE) { 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:00:52
|
Revision: 62 http://balder.svn.sourceforge.net/balder/?rev=62&view=rev Author: holomorph Date: 2007-08-16 21:00:38 -0700 (Thu, 16 Aug 2007) Log Message: ----------- removed old gne libpath stuff from SConstruct Modified Paths: -------------- SConstruct history.txt Modified: SConstruct =================================================================== --- SConstruct 2007-08-16 18:35:58 UTC (rev 61) +++ SConstruct 2007-08-17 04:00:38 UTC (rev 62) @@ -1,7 +1,6 @@ # SConstruct for building balder2d with scons includepath = ['/usr/include/python2.4'] -libpath = ['../gnelib/lib/linux/'] -env = Environment(CPPPATH=includepath, LIBPATH=libpath) +env = Environment(CPPPATH=includepath) #avoid leaving .sconsign files all over the place, put all signatures in: env.SConsignFile("scons-signatures") Modified: history.txt =================================================================== --- history.txt 2007-08-16 18:35:58 UTC (rev 61) +++ history.txt 2007-08-17 04:00:38 UTC (rev 62) @@ -4,6 +4,7 @@ History entries are in reverse chronological order (newest entries first). 16 Aug-2007 + - 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 that the parameter keyEvent is no longer constant. This allows the This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <col...@us...> - 2007-10-08 23:44:44
|
Revision: 67 http://balder.svn.sourceforge.net/balder/?rev=67&view=rev Author: colalord Date: 2007-10-08 16:44:38 -0700 (Mon, 08 Oct 2007) Log Message: ----------- 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. - Reuben modified the CodeBlocks Project file to include the PhysFS lib. Modified Paths: -------------- history.txt Added Paths: ----------- Balder2D-Linux.cbp Balder2D-Win.cbp Removed Paths: ------------- Balder2D.cbp Added: Balder2D-Linux.cbp =================================================================== --- Balder2D-Linux.cbp (rev 0) +++ Balder2D-Linux.cbp 2007-10-08 23:44:38 UTC (rev 67) @@ -0,0 +1,129 @@ +<?xml version="1.0" encoding="UTF-8" standalone="yes" ?> +<CodeBlocks_project_file> + <FileVersion major="1" minor="6" /> + <Project> + <Option title="Balder2D" /> + <Option pch_mode="0" /> + <Option compiler="gcc" /> + <Build> + <Target title="default"> + <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:\Python25\include" /> + <Add directory="C:\Balder2D\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="Python25" /> + <Add library="physfs" /> + <Add directory="C:\MinGW\lib" /> + <Add directory="C:\msys\1.0\local\lib" /> + <Add directory="C:\Python25\libs" /> + </Linker> + <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\imageloader.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" /> + </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\imageloader.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: Balder2D-Win.cbp =================================================================== --- Balder2D-Win.cbp (rev 0) +++ Balder2D-Win.cbp 2007-10-08 23:44:38 UTC (rev 67) @@ -0,0 +1,129 @@ +<?xml version="1.0" encoding="UTF-8" standalone="yes" ?> +<CodeBlocks_project_file> + <FileVersion major="1" minor="6" /> + <Project> + <Option title="Balder2D" /> + <Option pch_mode="0" /> + <Option compiler="gcc" /> + <Build> + <Target title="default"> + <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:\Python25\include" /> + <Add directory="C:\Balder2D\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="Python25" /> + <Add library="physfs" /> + <Add directory="C:\MinGW\lib" /> + <Add directory="C:\msys\1.0\local\lib" /> + <Add directory="C:\Python25\libs" /> + </Linker> + <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\imageloader.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" /> + </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\imageloader.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> Deleted: Balder2D.cbp =================================================================== --- Balder2D.cbp 2007-10-01 05:52:16 UTC (rev 66) +++ Balder2D.cbp 2007-10-08 23:44:38 UTC (rev 67) @@ -1,125 +0,0 @@ -<?xml version="1.0" encoding="UTF-8" standalone="yes" ?> -<CodeBlocks_project_file> - <FileVersion major="1" minor="6" /> - <Project> - <Option title="Balder2D" /> - <Option pch_mode="0" /> - <Option compiler="gcc" /> - <Build> - <Target title="default"> - <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:\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="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" /> - <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" /> - </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> Modified: history.txt =================================================================== --- history.txt 2007-10-01 05:52:16 UTC (rev 66) +++ history.txt 2007-10-08 23:44:38 UTC (rev 67) @@ -3,6 +3,11 @@ History entries are in reverse chronological order (newest entries first). +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. + - Reuben modified the CodeBlocks Project file to include the PhysFS lib. + 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 This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <hol...@us...> - 2007-10-12 01:05:21
|
Revision: 69 http://balder.svn.sourceforge.net/balder/?rev=69&view=rev Author: holomorph Date: 2007-10-11 18:05:25 -0700 (Thu, 11 Oct 2007) Log Message: ----------- added FilePathManager and add all possible script directories to python path Modified Paths: -------------- history.txt src/artificialcontroller.cpp src/imageloader.cpp src/main.cpp src/mapparser.cpp Added Paths: ----------- include/filepathmanager.h src/filepathmanager.cpp Modified: history.txt =================================================================== --- history.txt 2007-10-11 06:12:18 UTC (rev 68) +++ history.txt 2007-10-12 01:05:25 UTC (rev 69) @@ -3,6 +3,13 @@ History entries are in reverse chronological order (newest entries first). +11 Oct-2007 + - Bjorn added FilePathManager class to abstract calls to physicsfs and + provide utility methods to get the search path and find the real path of + a file. + - Bjorn made the artificialcontroller set up iterate through the search + path and add all scrip directories to the python path. + 10 Oct-2007 - Bjorn added physfs dependancy in order to make file opening independant of the location of the binary. @@ -15,7 +22,7 @@ 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. + for Windows and one for Linux, as the environment variable may vary. - Reuben modified the CodeBlocks Project file to include the PhysFS lib. 19 Aug-2007 Added: include/filepathmanager.h =================================================================== --- include/filepathmanager.h (rev 0) +++ include/filepathmanager.h 2007-10-12 01:05:25 UTC (rev 69) @@ -0,0 +1,45 @@ +/*************************************************************************** + * 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 FilePathManager_H +#define FilePathManager_H + +#include <string> +#include <list> + +namespace Balder { + +class FilePathManager +{ + public: + static void Init(char *argv[]); + static void Cleanup(); + static std::string GetFullPath(const char* filename); + static std::list<std::string> GetSearchPath(); + protected: + static bool SetConfig(const char* data_directory); + private: + FilePathManager(){}; + ~FilePathManager(){}; +}; + +} + +#endif // FilePathManager_H Modified: src/artificialcontroller.cpp =================================================================== --- src/artificialcontroller.cpp 2007-10-11 06:12:18 UTC (rev 68) +++ src/artificialcontroller.cpp 2007-10-12 01:05:25 UTC (rev 69) @@ -28,6 +28,7 @@ #include "input.h" #include "entity.h" #include "probe.h" +#include "filepathmanager.h" #include "log.h" using namespace Balder; @@ -52,7 +53,13 @@ // set up the python environment to find the scrpits Log::output("Loading AI scripts. . ."); PyRun_SimpleString("import sys\n"); - PyRun_SimpleString("sys.path.append('scripts')\n"); + std::list<std::string> searchpath = FilePathManager::GetSearchPath(); + //Iterate through the list: + for(std::list<std::string>::iterator iter = searchpath.begin(); iter != searchpath.end(); ++iter) + { + std::string command = "sys.path.append('" + *iter + "scripts')\n"; + PyRun_SimpleString(command.c_str()); + } PyObject *balder_module = Py_InitModule("balder", BalderAIMethods); PyModule_AddIntConstant(balder_module, "INPUT_LEFT", LEFT); PyModule_AddIntConstant(balder_module, "INPUT_RIGHT", RIGHT); Added: src/filepathmanager.cpp =================================================================== --- src/filepathmanager.cpp (rev 0) +++ src/filepathmanager.cpp 2007-10-12 01:05:25 UTC (rev 69) @@ -0,0 +1,112 @@ +/*************************************************************************** + * 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 "filepathmanager.h" +#include <physfs.h> +#include "log.h" + +using namespace Balder; +using namespace std; + +void FilePathManager::Init(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); +} + +void FilePathManager::Cleanup() +{ + PHYSFS_deinit(); +} + +bool FilePathManager::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); +} + +string FilePathManager::GetFullPath(const char* filename) +{ + 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; +} + +std::list<std::string> FilePathManager::GetSearchPath() +{ + std::list<std::string> searchpath; + char **sp = PHYSFS_getSearchPath(); + char **i; + for (i = sp; *i != NULL; i++){ + searchpath.push_back(std::string(*i)); + } + return searchpath; +} Modified: src/imageloader.cpp =================================================================== --- src/imageloader.cpp 2007-10-11 06:12:18 UTC (rev 68) +++ src/imageloader.cpp 2007-10-12 01:05:25 UTC (rev 69) @@ -20,34 +20,22 @@ #include "imageloader.h" #include "log.h" -#include <physfs.h> +#include "filepathmanager.h" #include <string> using namespace Balder; -std::string GetFullPath(const char* filename) -{ - 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()); + return IMG_Load(FilePathManager::GetFullPath(filename).c_str()); } gcn::Image* ImageLoader::LoadGcnImage(const char* filename) { - return gcn::Image::load(GetFullPath(filename).c_str()); + return gcn::Image::load(FilePathManager::GetFullPath(filename).c_str()); } gcn::ImageFont* ImageLoader::LoadGcnImageFont(const char* filename) { - return new gcn::ImageFont(GetFullPath(filename).c_str()); + return new gcn::ImageFont(FilePathManager::GetFullPath(filename).c_str()); } Modified: src/main.cpp =================================================================== --- src/main.cpp 2007-10-11 06:12:18 UTC (rev 68) +++ src/main.cpp 2007-10-12 01:05:25 UTC (rev 69) @@ -22,7 +22,6 @@ #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" @@ -30,6 +29,7 @@ #include "configmanager.h" #include "menu/menu.h" #include "imageloader.h" +#include "filepathmanager.h" #include "log.h" using namespace std; @@ -39,15 +39,7 @@ 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); + FilePathManager::Init(argv); // first, load the config file try{ Log::output("Loading config manager"); @@ -187,50 +179,6 @@ delete render; delete sound; SDL_Quit(); + FilePathManager::Cleanup(); 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/mapparser.cpp =================================================================== --- src/mapparser.cpp 2007-10-11 06:12:18 UTC (rev 68) +++ src/mapparser.cpp 2007-10-12 01:05:25 UTC (rev 69) @@ -22,16 +22,15 @@ #include "mapparser.h" #include "gamemanager.h" #include "tinyxml/tinyxml.h" -#include <string> +#include "filepathmanager.h" using namespace Balder; MapParser::MapParser(const char* mapname) { std::string filename("maps/"); - filename += mapname; - filename += "/"; - filename += "maptags.xml"; + filename = filename + mapname + "/" + "maptags.xml"; + filename = FilePathManager::GetFullPath(filename.c_str()); Log::output("Loading Mapfile " + filename); map_file = new TiXmlDocument( filename ); map_file->LoadFile(); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <hol...@us...> - 2007-10-12 02:13:06
|
Revision: 71 http://balder.svn.sourceforge.net/balder/?rev=71&view=rev Author: holomorph Date: 2007-10-11 19:13:10 -0700 (Thu, 11 Oct 2007) Log Message: ----------- added command line parser to filepathmanager and a method to get the full config file path Modified Paths: -------------- include/filepathmanager.h src/artificialcontroller.cpp src/filepathmanager.cpp src/main.cpp Modified: include/filepathmanager.h =================================================================== --- include/filepathmanager.h 2007-10-12 02:12:56 UTC (rev 70) +++ include/filepathmanager.h 2007-10-12 02:13:10 UTC (rev 71) @@ -29,15 +29,18 @@ class FilePathManager { public: - static void Init(char *argv[]); + static void Init(int argc, char *argv[]); static void Cleanup(); static std::string GetFullPath(const char* filename); static std::list<std::string> GetSearchPath(); + static std::string GetConfigPath(){return configPath;} protected: + static bool ParseArgs(int argc, char *argv[], const char* flag, std::string *value); static bool SetConfig(const char* data_directory); private: FilePathManager(){}; ~FilePathManager(){}; + static std::string configPath; }; } Modified: src/artificialcontroller.cpp =================================================================== --- src/artificialcontroller.cpp 2007-10-12 02:12:56 UTC (rev 70) +++ src/artificialcontroller.cpp 2007-10-12 02:13:10 UTC (rev 71) @@ -57,7 +57,7 @@ //Iterate through the list: for(std::list<std::string>::iterator iter = searchpath.begin(); iter != searchpath.end(); ++iter) { - std::string command = "sys.path.append('" + *iter + "scripts')\n"; + std::string command = "sys.path.append('" + *iter + "/scripts')\n"; PyRun_SimpleString(command.c_str()); } PyObject *balder_module = Py_InitModule("balder", BalderAIMethods); Modified: src/filepathmanager.cpp =================================================================== --- src/filepathmanager.cpp 2007-10-12 02:12:56 UTC (rev 70) +++ src/filepathmanager.cpp 2007-10-12 02:13:10 UTC (rev 71) @@ -25,10 +25,21 @@ using namespace Balder; using namespace std; -void FilePathManager::Init(char *argv[]) +string FilePathManager::configPath = "config.xml"; + +void FilePathManager::Init(int argc, char *argv[]) { PHYSFS_init(argv[0]); - SetConfig(argv[2]); + string s; + if (ParseArgs(argc, argv, "config", &s)) { + configPath = s; + } + if (ParseArgs(argc, argv, "data", &s)){ + SetConfig(s.c_str()); + } + else { + SetConfig(NULL); + } char **searchpath = PHYSFS_getSearchPath(); char **i; Log::output("search path set to:"); @@ -42,6 +53,19 @@ { PHYSFS_deinit(); } +// returns true if the flag is found and the value for that flag is assigned to *value +bool FilePathManager::ParseArgs(int argc, char *argv[], const char* flag, string *value) +{ + string flagstring = "--"; + flagstring += flag; + for (int i=1;i<argc-1;++i){ + if (argv[i] == flagstring){ + *value = argv[i+1]; + return true; + } + } + return false; +} bool FilePathManager::SetConfig(const char* data_directory) { Modified: src/main.cpp =================================================================== --- src/main.cpp 2007-10-12 02:12:56 UTC (rev 70) +++ src/main.cpp 2007-10-12 02:13:10 UTC (rev 71) @@ -39,16 +39,11 @@ int main(int argc, char *argv[]) { - FilePathManager::Init(argv); + FilePathManager::Init(argc, argv); // first, load the config file try{ Log::output("Loading config manager"); - if (argc == 2 ) { // use the configu file specified on the command line - ConfigManager::LoadConfigFile( argv[1] ); - } - else { // no config file specified, try to load the default one - ConfigManager::LoadConfigFile( ); - } + ConfigManager::LoadConfigFile( FilePathManager::GetConfigPath().c_str() ); } catch (const char *message) { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <hol...@us...> - 2007-10-24 05:16:55
|
Revision: 74 http://balder.svn.sourceforge.net/balder/?rev=74&view=rev Author: holomorph Date: 2007-10-23 22:16:55 -0700 (Tue, 23 Oct 2007) Log Message: ----------- more memory leak fixes Modified Paths: -------------- history.txt include/input.h src/input.cpp src/mapparser.cpp src/renderer.cpp src/soundmanager.cpp Modified: history.txt =================================================================== --- history.txt 2007-10-24 04:14:54 UTC (rev 73) +++ history.txt 2007-10-24 05:16:55 UTC (rev 74) @@ -4,6 +4,8 @@ History entries are in reverse chronological order (newest entries first). 23 Oct-2007 - Bjorn fixed a bunch of memory leaks in ArtificialCotroller::DoControl + - Bjorn fixed a few other minor leaks, but there are still many in + gamemanager (players, spawns, entities are not deleted) 11 Oct-2007 - Bjorn added an arg parser to filepathmanager and a method to get the full Modified: include/input.h =================================================================== --- include/input.h 2007-10-24 04:14:54 UTC (rev 73) +++ include/input.h 2007-10-24 05:16:55 UTC (rev 74) @@ -47,6 +47,7 @@ public: // contstructor Input(GameManager *gm, int num_players); + ~Input(); // checks the input state and pass it along to the game manager void CheckInput(); void SetPlayerInputController(player_id id, int controller_number); Modified: src/input.cpp =================================================================== --- src/input.cpp 2007-10-24 04:14:54 UTC (rev 73) +++ src/input.cpp 2007-10-24 05:16:55 UTC (rev 74) @@ -97,8 +97,7 @@ bool Input::keymapInitialized = false; // contstructor - Input::Input(GameManager* gm, int nplayers): - game_manager(gm), num_players(nplayers) +Input::Input(GameManager* gm, int nplayers):game_manager(gm), num_players(nplayers) { SDL_JoystickEventState(SDL_ENABLE); joystick = SDL_JoystickOpen(0); // joystick 0 @@ -106,6 +105,11 @@ BindKeys(); } +Input::~Input() +{ + delete[] controllers; +} + // checks the input state and pass it along to the game manager void Input::CheckInput() { Modified: src/mapparser.cpp =================================================================== --- src/mapparser.cpp 2007-10-24 04:14:54 UTC (rev 73) +++ src/mapparser.cpp 2007-10-24 05:16:55 UTC (rev 74) @@ -36,7 +36,9 @@ map_file->LoadFile(); } MapParser::~MapParser() -{} +{ + delete map_file; +} const char* MapParser::GetMapMusic() { Modified: src/renderer.cpp =================================================================== --- src/renderer.cpp 2007-10-24 04:14:54 UTC (rev 73) +++ src/renderer.cpp 2007-10-24 05:16:55 UTC (rev 74) @@ -30,7 +30,7 @@ std::map<std::string,SDL_Surface*> Renderer::sprite_registry; -Renderer::Renderer() +Renderer::Renderer(): background(0) { SetScreen(800, 600); fontImage = ImageLoader::LoadImage("SFont/scorefont.png"); @@ -40,6 +40,9 @@ Renderer::~Renderer() { + delete font; + delete fontImage; + if(background) delete background; screen = 0; } @@ -65,6 +68,7 @@ filename += mapname; filename += "/"; filename += "background.png"; + if (background) {delete background;} // so we don't leak the memory each time a new background is loaded background = ImageLoader::LoadImage(filename.c_str()); if (background == 0) { Modified: src/soundmanager.cpp =================================================================== --- src/soundmanager.cpp 2007-10-24 04:14:54 UTC (rev 73) +++ src/soundmanager.cpp 2007-10-24 05:16:55 UTC (rev 74) @@ -38,6 +38,7 @@ bool SoundManager::LoadSoundType(const char* name, const char* file) { + if(sound_registry.count(name)){return true;} // there is already a sound with that name loaded Mix_Chunk *sample = Mix_LoadWAV(file); if (0 == sample) { return false;} sound_registry[name] = sample; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <hol...@us...> - 2007-10-25 03:36:38
|
Revision: 76 http://balder.svn.sourceforge.net/balder/?rev=76&view=rev Author: holomorph Date: 2007-10-24 20:36:42 -0700 (Wed, 24 Oct 2007) Log Message: ----------- updated soundmanager to load sounds using the full path Modified Paths: -------------- history.txt include/renderer.h src/filepathmanager.cpp src/renderer.cpp src/soundmanager.cpp Modified: history.txt =================================================================== --- history.txt 2007-10-24 20:50:59 UTC (rev 75) +++ history.txt 2007-10-25 03:36:42 UTC (rev 76) @@ -4,11 +4,14 @@ History entries are in reverse chronological order (newest entries first). 24 Oct-2007 + - Bjorn tweaked the soundmanager to load sound files correctly, using the + full path as obtained from filepathmanager. + - Bjorn fixed a crash from double deletion of the font image in renderer - Reuben changed the main window caption icon to use /balder2d.xpm. 23 Oct-2007 - Bjorn fixed a bunch of memory leaks in ArtificialCotroller::DoControl - - Bjorn fixed a few other minor leaks, but there are still many in + - Bjorn fixed a few other minor leaks, but there are still many in gamemanager (players, spawns, entities are not deleted) 11 Oct-2007 Modified: include/renderer.h =================================================================== --- include/renderer.h 2007-10-24 20:50:59 UTC (rev 75) +++ include/renderer.h 2007-10-25 03:36:42 UTC (rev 76) @@ -60,7 +60,6 @@ SDL_Surface* screen; SDL_Surface* background; Font* font; - SDL_Surface* fontImage; }; } Modified: src/filepathmanager.cpp =================================================================== --- src/filepathmanager.cpp 2007-10-24 20:50:59 UTC (rev 75) +++ src/filepathmanager.cpp 2007-10-25 03:36:42 UTC (rev 76) @@ -117,7 +117,7 @@ const char* path = PHYSFS_getRealDir(filename); if (NULL == path) { Log::output(std::string("file not found: ").append(filename)); - return 0; + return ""; } std::string fullpath(path); fullpath.append(PHYSFS_getDirSeparator()).append(filename); Modified: src/renderer.cpp =================================================================== --- src/renderer.cpp 2007-10-24 20:50:59 UTC (rev 75) +++ src/renderer.cpp 2007-10-25 03:36:42 UTC (rev 76) @@ -33,15 +33,13 @@ Renderer::Renderer(): background(0) { SetScreen(800, 600); - fontImage = ImageLoader::LoadImage("SFont/scorefont.png"); - font = new Font(fontImage); + font = new Font(ImageLoader::LoadImage("SFont/scorefont.png")); } Renderer::~Renderer() { - delete font; - delete fontImage; + delete font; // this deletes fontImage as well if(background) delete background; screen = 0; } Modified: src/soundmanager.cpp =================================================================== --- src/soundmanager.cpp 2007-10-24 20:50:59 UTC (rev 75) +++ src/soundmanager.cpp 2007-10-25 03:36:42 UTC (rev 76) @@ -36,10 +36,12 @@ Mix_CloseAudio(); } -bool SoundManager::LoadSoundType(const char* name, const char* file) +bool SoundManager::LoadSoundType(const char* name, const char* filename) { if(sound_registry.count(name)){return true;} // there is already a sound with that name loaded - Mix_Chunk *sample = Mix_LoadWAV(file); + std::string fullpath = FilePathManager::GetFullPath(filename); + if (fullpath.empty()) {return false;} + Mix_Chunk *sample = Mix_LoadWAV(fullpath.c_str()); if (0 == sample) { return false;} sound_registry[name] = sample; return true; @@ -64,7 +66,8 @@ music_file += name; music_file += ".ogg"; if (ConfigManager::GetIntValue("Sound", "music")) { - music = Mix_LoadMUS(music_file.c_str()); + std::string fullpath = FilePathManager::GetFullPath(music_file.c_str()); + music = Mix_LoadMUS(fullpath.c_str()); if (music){ Mix_PlayMusic(music,1); double volume = ConfigManager::GetDoubleValue("Sound", "musicvolume"); 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:39:20
|
Revision: 77 http://balder.svn.sourceforge.net/balder/?rev=77&view=rev Author: holomorph Date: 2007-10-24 21:39:19 -0700 (Wed, 24 Oct 2007) Log Message: ----------- added imageloader::freeImage and keep references of loaded images so they only can be loaded once Modified Paths: -------------- history.txt include/imageloader.h src/collisionmask.cpp src/imageloader.cpp src/player.cpp src/powerupfactory.cpp src/probefactory.cpp src/projectilefactory.cpp src/renderer.cpp Modified: history.txt =================================================================== --- history.txt 2007-10-25 03:36:42 UTC (rev 76) +++ history.txt 2007-10-25 04:39:19 UTC (rev 77) @@ -4,6 +4,10 @@ History entries are in reverse chronological order (newest entries first). 24 Oct-2007 + - 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 + will just return the previously loaded reference - Bjorn tweaked the soundmanager to load sound files correctly, using the full path as obtained from filepathmanager. - Bjorn fixed a crash from double deletion of the font image in renderer Modified: include/imageloader.h =================================================================== --- include/imageloader.h 2007-10-25 03:36:42 UTC (rev 76) +++ include/imageloader.h 2007-10-25 04:39:19 UTC (rev 77) @@ -24,14 +24,19 @@ #include <SDL/SDL_image.h> #include <guichan.hpp> #include <guichan/sdl.hpp> +#include <map> namespace Balder{ class ImageLoader{ public: static SDL_Surface* LoadImage(const char* filename); + static void FreeImage(const char* filename); static gcn::Image* LoadGcnImage(const char* filename); static gcn::ImageFont* LoadGcnImageFont(const char* filename); +private: + static std::map<std::string,SDL_Surface*> SDLImages; + static std::map<std::string,gcn::Image*> gcnImages; }; } #endif // LOG_H Modified: src/collisionmask.cpp =================================================================== --- src/collisionmask.cpp 2007-10-25 03:36:42 UTC (rev 76) +++ src/collisionmask.cpp 2007-10-25 04:39:19 UTC (rev 77) @@ -51,7 +51,7 @@ else mask[y*width + x] = false; } } - SDL_FreeSurface(field); + ImageLoader::FreeImage(filename.c_str()); } CollisionMask::~CollisionMask() Modified: src/imageloader.cpp =================================================================== --- src/imageloader.cpp 2007-10-25 03:36:42 UTC (rev 76) +++ src/imageloader.cpp 2007-10-25 04:39:19 UTC (rev 77) @@ -25,14 +25,34 @@ using namespace Balder; +std::map<std::string,SDL_Surface*> ImageLoader::SDLImages; +std::map<std::string,gcn::Image*> ImageLoader::gcnImages; + SDL_Surface* ImageLoader::LoadImage(const char* filename) { - return IMG_Load(FilePathManager::GetFullPath(filename).c_str()); + if (!SDLImages.count(filename)) + { + SDLImages[filename] = IMG_Load(FilePathManager::GetFullPath(filename).c_str()); + } + return SDLImages[filename]; } +void ImageLoader::FreeImage(const char* filename) +{ + if (SDLImages.count(filename)) + { + SDL_FreeSurface(SDLImages[filename]); + SDLImages.erase(filename); + } +} + gcn::Image* ImageLoader::LoadGcnImage(const char* filename) { - return gcn::Image::load(FilePathManager::GetFullPath(filename).c_str()); + if (!gcnImages.count(filename)) + { + gcnImages[filename] = gcn::Image::load(FilePathManager::GetFullPath(filename).c_str()); + } + return gcnImages[filename]; } gcn::ImageFont* ImageLoader::LoadGcnImageFont(const char* filename) Modified: src/player.cpp =================================================================== --- src/player.cpp 2007-10-25 03:36:42 UTC (rev 76) +++ src/player.cpp 2007-10-25 04:39:19 UTC (rev 77) @@ -58,8 +58,8 @@ delete scoreFont; delete lifeFont; scoreFont = lifeFont = 0; - SDL_FreeSurface(scoreFontImage); - SDL_FreeSurface(lifeFontImage); +// SDL_FreeSurface(scoreFontImage); +// SDL_FreeSurface(lifeFontImage); } } void Player::DoControl ( input_states states ) Modified: src/powerupfactory.cpp =================================================================== --- src/powerupfactory.cpp 2007-10-25 03:36:42 UTC (rev 76) +++ src/powerupfactory.cpp 2007-10-25 04:39:19 UTC (rev 77) @@ -44,7 +44,7 @@ // class destructor PowerUpFactory::~PowerUpFactory() { - SDL_FreeSurface(sprite); + ImageLoader::FreeImage("powerups.png"); } void PowerUpFactory::SetCollisionMask ( CollisionMask* c ) Modified: src/probefactory.cpp =================================================================== --- src/probefactory.cpp 2007-10-25 03:36:42 UTC (rev 76) +++ src/probefactory.cpp 2007-10-25 04:39:19 UTC (rev 77) @@ -51,7 +51,7 @@ // class destructor ProbeFactory::~ProbeFactory() { - SDL_FreeSurface(sprite); + ImageLoader::FreeImage("probe.png"); } /** Modified: src/projectilefactory.cpp =================================================================== --- src/projectilefactory.cpp 2007-10-25 03:36:42 UTC (rev 76) +++ src/projectilefactory.cpp 2007-10-25 04:39:19 UTC (rev 77) @@ -41,7 +41,7 @@ // class destructor ProjectileFactory::~ProjectileFactory() { - SDL_FreeSurface(sprite); + ImageLoader::FreeImage("projectile.png"); } /** Modified: src/renderer.cpp =================================================================== --- src/renderer.cpp 2007-10-25 03:36:42 UTC (rev 76) +++ src/renderer.cpp 2007-10-25 04:39:19 UTC (rev 77) @@ -62,11 +62,15 @@ bool Renderer::LoadBackground(const char* mapname) { + /* Note that the previous background is not unloaded. This is ok, as if it + is the same bacground, the LoadImage call below will just give us the same + pointer back, if it's different...well worst case is we load one copy of the + bacground for each map the user plays and have them all in memory + */ std::string filename("maps/"); filename += mapname; filename += "/"; filename += "background.png"; - if (background) {delete background;} // so we don't leak the memory each time a new background is loaded background = ImageLoader::LoadImage(filename.c_str()); if (background == 0) { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <col...@us...> - 2007-11-02 18:19:55
|
Revision: 79 http://balder.svn.sourceforge.net/balder/?rev=79&view=rev Author: colalord Date: 2007-11-02 11:19:59 -0700 (Fri, 02 Nov 2007) Log Message: ----------- 24 Oct-2007 - Reuben added filepathmanager.cpp/h to Balder2D-Win.cbp project file. Modified Paths: -------------- Balder2D-Win.cbp history.txt Modified: Balder2D-Win.cbp =================================================================== --- Balder2D-Win.cbp 2007-10-25 04:43:20 UTC (rev 78) +++ Balder2D-Win.cbp 2007-11-02 18:19:59 UTC (rev 79) @@ -47,6 +47,7 @@ <Unit filename="include\computerprobecontrol.h" /> <Unit filename="include\configmanager.h" /> <Unit filename="include\entity.h" /> + <Unit filename="include\filepathmanager.h" /> <Unit filename="include\gamemanager.h" /> <Unit filename="include\imageloader.h" /> <Unit filename="include\input.h" /> @@ -85,6 +86,7 @@ <Unit filename="src\computerprobecontrol.cpp" /> <Unit filename="src\configmanager.cpp" /> <Unit filename="src\entity.cpp" /> + <Unit filename="src\filepathmanager.cpp" /> <Unit filename="src\gamemanager.cpp" /> <Unit filename="src\imageloader.cpp" /> <Unit filename="src\input.cpp" /> Modified: history.txt =================================================================== --- history.txt 2007-10-25 04:43:20 UTC (rev 78) +++ history.txt 2007-11-02 18:19:59 UTC (rev 79) @@ -4,6 +4,9 @@ History entries are in reverse chronological order (newest entries first). 24 Oct-2007 + - Reuben added filepathmanager.cpp/h to Balder2D-Win.cbp project file. + +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 This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <col...@us...> - 2007-11-07 00:43:01
|
Revision: 82 http://balder.svn.sourceforge.net/balder/?rev=82&view=rev Author: colalord Date: 2007-11-06 16:43:00 -0800 (Tue, 06 Nov 2007) Log Message: ----------- 06 Nov-2007 - Reuben renamed the Windows installation instructions to Balder2D-Win-README.txt. Modified Paths: -------------- history.txt Added Paths: ----------- Balder2D-Win-README.txt Removed Paths: ------------- Balder2D Win32 Development Environment Setup Instructions.txt Deleted: Balder2D Win32 Development Environment Setup Instructions.txt =================================================================== --- Balder2D Win32 Development Environment Setup Instructions.txt 2007-11-05 23:52:11 UTC (rev 81) +++ Balder2D Win32 Development Environment Setup Instructions.txt 2007-11-07 00:43:00 UTC (rev 82) @@ -1,364 +0,0 @@ -Balder2D Win32 Development Environment Setup Instructions - -Author: Reuben Lord -Last Revised: 11/14/06 -================================================================================== -Please note: - 1. The build and install process described below has only been tested in the order written from top to bottom. - 2. Path names for libraries and development tools that have been extracted from packages with different version numbers than the ones described below may very. - -================================================================================== -Installing MinGW ------------------ - 1. Download the installer "MinGW-5.0.0.exe" or later from: http://www.mingw.org - 2. Double click the installer to run it. - 3. Click "Next >" at the Welcome screen. - 4. Click "I Agree" at the EULA. - 5. Select a mirror that is physically closest to you. - 6. Make sure "Download as needed and install" is selected. - 7. Click the "Next >" button. - 8. Select the "Current" MinGW package. - 9. Click "Next >". - 10. Under the list of components to install, check "MinGW base tools" and "g++ compiler". - 11. Click "Next >". - 12. Select an install path for MinGW. Default: "c:\MinGW" - 13. Click "Next >". - 14. Select a folder in the Start Menu for you MinGW shortcuts to go in. Default: "MinGW" - 15. Click "Install". - 16. Watch MinGW download and install. - 17. Click "Finish". - -================================================================================== -Installing MSYS ----------------- - 1. Download the installer "MSYS-1.0.11-2004.04.30-1.exe" or later from: http://www.mingw.org - 2. Double click the installer to run it. - 3. You will be asked "Do you really want to install Minimal SYStem?" Click "Yes". - 4. Click "Next >" at the Welcome screen. - 5. Click "Yes" at the EULA. - 6. Click "Next >" at the Information screen. - 7. Select an install path. Default: "C:\msys\1.0" - 8. Under component selection, select "Installation for i386 based CPUs (Works for all x86 based CPUs >= i386)". - 9. Click "Next >". - 10. Select a folder in the Start Menu for you MinGW shortcuts to go in. Default: "MinGW" - 11. Click "Next >". - 12. Review setup settings. - 13. Click "Install". - 14. Watch it install MSYS. - 15. A command prompt with the MSYS post installer setup tool in it should appear after the installer finishes installing MSYS. - 16. Press the "y" key on you keyboard and hit "Enter" to continue with the post installer. - 17. Press "y" and hit "Enter" if you have MinGW installed. - 18. Enter the location of your MinGW installation in the following format. Default: "c:\\MinGW" - 19. It will perform some checks and then ask you to "Press any key to continue..." - 20. The post installer tool will now close and bring you back to the primary installer. - 21. Uncheck all check boxes. - 22. Click "Finish". - 23. If you want to change the colors for the MSYS interface they are defined in the file "C:\msys\1.0\msys.bat". - -================================================================================== -Building & Installing SDL (Simple Directmedia Layer) Libraries ---------------------------------------------------------------- - 1. Download the source code "SDL-1.2.9.zip" or later from: http://www.libsdl.org - 2. Extract all of the files to "C:\tmp\". - 3. Run the MSYS shell. - 4. Type: cd /c/tmp/SDL-1.2.9/ - 5. Type: ./configure && make && make install - 6. MSYS will now start building and installing the primary SDL libraries. - 7. For the DLL file, refer to the section below named "Installing DLL Files". - -================================================================================== -Installing SDL_image Libraries -------------------------------- - 1. Download the source code "SDL_image-devel-1.2.4-VC6.zip" or later from: http://www.libsdl.org/projects/SDL_image/ - 2. Extract all of the files to "C:\tmp\". - 3. Go to: C:\tmp\SDL_image-1.2.4\ - 4. Copy "include\SDL_image.h" to "C:\msys\1.0\local\include\SDL". - 5. Copy "lib\SDL_image.lib" to "C:\msys\1.0\local\lib". - 6. For the DLL files, refer to the section below named "Installing DLL Files". - -================================================================================== -Installing SDL_mixer Libraries -------------------------------- - 1. Download the source code "SDL_mixer-devel-1.2.6-VC6.zip" or later from: http://www.libsdl.org/projects/SDL_mixer/ - 2. Extract all of the files to "C:\tmp\". - 3. Go to: C:\tmp\SDL_mixer-1.2.6\ - 4. Copy "include\SDL_mixer.h" to "C:\msys\1.0\local\include\SDL". - 5. Copy "lib\SDL_mixer.lib" to "C:\msys\1.0\local\lib". - 6. For the DLL files, refer to the section below named "Installing DLL Files". - -================================================================================== -Building & Installing SDL_gfx Libraries ----------------------------------------- - 1. Download the source code "SDL_gfx-2.0.13.zip" or later from: http://www.ferzkopp.net/joomla/content/view/19/14/ - 2. Extract all of the files to "C:\tmp\". - 3. Make the modifications listed in step 5 to the following header files: - a. C:\Tmp\SDL_gfx-2.0.13\SDL_framerate.h - b. C:\Tmp\SDL_gfx-2.0.13\SDL_gfxPrimitives.h - c. C:\Tmp\SDL_gfx-2.0.13\SDL_imageFilter.h - d. C:\Tmp\SDL_gfx-2.0.13\SDL_rotozoom.h - 4. The following is the original code block in 4 of the SDL_gfx header files: - #ifdef WIN32 - #ifdef BUILD_DLL - #define DLLINTERFACE __declspec(dllexport) - #else - #define DLLINTERFACE __declspec(dllimport) - #endif - #else - #define DLLINTERFACE - #endif - 5. Make changes in all 4 header files listed above by REM'ing out lines 1, 2, 3, 4, 5, 6, 7 and 9 of the following code block: - //#ifdef WIN32 - //#ifdef BUILD_DLL - //#define DLLINTERFACE __declspec(dllexport) - //#else - //#define DLLINTERFACE __declspec(dllimport) - //#endif - //#else - #define DLLINTERFACE - //#endif - 6. Run the MSYS shell. - 7. Type: cd /c/tmp/sdl_gfx-2.0.13 - 8. The "README" file in the dir - 8. Type: ./autogen.sh - 9. Type: ./configure - 10. Type: ./nodebug.sh - 11. Type: make - 12. Type: make install - 13. Type (this doesn't work): ldconfig - 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. - -================================================================================== -Installing Guichan Libraries ------------------------------ - 1. Download "guichan-0.4.0-mingw32.zip" or later from: http://guichan.sourceforge.net/ - 2. Extract all of the files to "C:\tmp\". - 3. Copy all files from "C:\tmp\guichan-0.4.0-mingw32\include\" to "C:\msys\1.0\local\include\". - 4. Copy all "*.a" files from "C:\tmp\guichan-0.4.0-mingw32\lib\" to "C:\msys\1.0\local\lib\". - 5. For the DLL files, refer to the section below named "Installing DLL Files". - -================================================================================== -Installing Python Libraries ----------------------------- - 1. Download "python-2.4.2.msi" or later from: http://www.python.org/ - 2. Run the Python installer. - 3. On the user selection screen select "Install for all users". - 4. Click "Next >>". - 5. On the Select Destination Directory screen make sure the destination is set to: C:\Python24\ - 6. Click "Next >>". - 7. On the Customize Python 2.4.2 screen select all components. - 8. Click "Next >>". - 9. Watch the installer install Python 2.4.2. - 10. On the Completed installation screen click "Finish". - 11. For the DLL files, refer to the section below named "Installing DLL Files". - -================================================================================== -Installing Psyco Libraries ---------------------------- - 1. Download "psyco-1.5.win32-py2.4.exe" or later from: http://psyco.sourceforge.net/ - 2. Run the Psyco installer. - 3. On the Welcome screen click "Next >". - 4. On the Python installation verification screen make sure it located the version of Python you currently have installed. - 5. Click "Next >". - 6. On the Ready to Install screen click "Next >". - 7. Watch Psyco install. - 8. On the last screen just click "Finish". - 9. For the DLL files, refer to the section below named "Installing DLL Files". - -================================================================================== -Installing TortoiseSVN-1.4.0.7501-win32-svn-1.4.0.msi SVN Tool ---------------------------------------------------------------- - 1. Download "TortoiseSVN-1.4.0.7501-win32-svn-1.4.0.msi" or later from: http://tortoisesvn.net/ - 2. Run the Tortoise SVN installer. - 3. On the welcome screen of the installer click "Next >". - 4. Mark Accept for the EULA. - 5. Click "Next >". - 6. Make sure all components are selected on the Custom Setup screen. - 7. Pick an installation path. Default: C:\Program Files\TortoiseSVN\ - 8. Click "Next >". - 9. On the Ready to Install screen click "Install". - 10. It will now begin installing. - 11. On the completion screen un-check "Show Changelog". - 12. Click "Finish". - 13. It will now ask you to restart you system, click "Yes". - 14. Your system should restart now. - 15. Open your C:\ drive. - 16. Create a new directory named "Balder2D". - 17. Right click on the directory "C:\Balder2D\" directory that you just created to get the context menu. - 18. Click on the "SVN Checkout..." command. - 19. The Checkout dialog box will now appear. - 20. In the "URL of repository" field enter: https://svn.sourceforge.net/svnroot/balder - 21. Make sure the "Checkout directory:" says: C:\Balder2D - 22. Click "OK". - 23. It should now start checking everything out of the SVN and list them out as it does check them out. - 24. When it's done just click the "OK" button. - 25. You should have the latest copy of the Balder2D source code all downloaded into the "C:\Balder2D\" directory at this point. - -================================================================================== -Installing DLL Files ---------------------- -- SDL DLL - 1. Copy from "C:\msys\1.0\local\bin\SDL.dll" to "C:\Balder2D\bin\". -- Guichan DLL's - 2. Copy from "C:\Tmp\guichan-0.4.0-mingw32\bin\guichan.dll" to "C:\Balder2D\bin\". - 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. 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. 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 - 9. Copy from "C:\Tmp\SDL_mixer-1.2.7\lib\ogg.dll" to "C:\Balder2D\bin\". - 10. Copy from "C:\Tmp\SDL_mixer-1.2.7\lib\SDL_mixer.dll" to "C:\Balder2D\bin\". - 11. Copy from "C:\Tmp\SDL_mixer-1.2.7\lib\vorbis.dll" to "C:\Balder2D\bin\". - 12. Copy from "C:\Tmp\SDL_mixer-1.2.7\lib\vorbisfile.dll" to "C:\Balder2D\bin\". -- Python 2.4 DLL - 13. When Python 2.4 is installed it installs the DLL in the %PATH% directory. -- Psyco 1.5 - 14. If it has any DLL's it installs them for you. - -================================================================================== -Installing Code::Blocks IDE ----------------------------- - 1. Download "codeblocks-1.0rc2.exe" or later from: http://www.codeblocks.org/ - 2. Run the installer. - 3. At the Welcome screen click "Next >". - 4. On the EULA screen select the accept option. - 5. Click "Next >". - 6. On the Select Destination Location screen choose your installation path. Default: C:\Program Files\CodeBlocks - 7. Click "Next >". - 8. On the Select Components screen select "Full installation". - 9. Click "Next >". - 10. On the Select Start Menu Folder screen select a folder to store it in or leave the default. - 11. Click "Next >". - 12. On the Select Additional Tasks screen select the icons that you want it to make. - 13. Click "Next >". - 14. On the Ready to Install screen review your installation configuration. - 15. Click "Install". - 16. Watch it install Code::Blocks for you. - 17. On the Information screen click "Next >". - 18. On the Complete screen click "Finish". - 19. Code::Blocks will now load for you. - 20. The Compilers auto-detection screen will appear. - 21. Select the compiler: GNU GCC Compiler - 22. The Status for the "GNU GCC Compiler" should equal: Detected - 23. Click the "Set as default" button. - 24. Make sure at the bottom of the window you see the string: Default compiler: GNU GCC Compiler - 25. Click "Close". - 26. Code::Blocks finished loading up. - 27. If the "Tip of the Day" shows up uncheck "Show tips at startup" and click "Close" on the Tip dialog box. - 28. To open the project file click on the "File" menu. - 29. Then click the "Open" menu option. - 30. Open "C:\Balder2D\Balder2D.cbp". - 31. Now you should be able to build Balder2D with in Code::Blocks. - 32. To build Balder2D in Code::Blocks click on the "Build" menu. - 33. Then click the "Build" menu option (or press Ctrl+F9 to build). - 34. It will then build Balder2D and put the executable file in the following path: C:\Balder2D\bin\Balder2D.exe - -================================================================================== -Creating a Code::Blocks IDE project file ------------------------------------------ - 1. Open Code::Blocks. - 2. If you have any projects open, then close them. - a. On the main menu click on the "File" menu. - b. Then click on the "Close project" menu option. - 3. On the main menu click on the "Project" menu. - 4. Then click on the "New project..." menu option. - 5. The "New from template" dialog box will appear. - 6. Select the "Console Application" icon. - 7. Check the "Do not create any files" check box. - 8. Set Project options: Console Application - 9. Set File(s) options: C++ source - 10. Click the "Create" button. - 11. The "Save project" dialog box will appear. - 12. Save it to: C:\Balder2D\Balder2D.cbp - 13. On the right hand side of the IDE is a tabbed window named "Management" (in the main menu it is "View>Manager" (Shift+F2)). This will be referred to as the "Management Bar". - 14. Select the "Projects" tab on the Management Bar. - 15. Right click on the "Console application" node. - 16. Click on the "Properties" menu option. - 17. The "Project/targets options" dialog will appear. - 18. Select the "Project" tab. - 19. Set Title: Balder2D - 20. Select the "Targets" tab. - 21. Set Output filename: bin\Balder2D.exe - 22. Set Execution working dir: bin\ - 23. Select the "Project" tab. - 24. Click on the "Project's build options..." button. - 25. This will make the "Project's Build options" dialog box appear. - a. You can also reach this dialog box by right clicking on the project's node in the Management Bar. - b. Click on the "Build options" menu option. - 26. Select the "Linker" tab. - 27. Add all of the libraries for the linker to link to the project. I'm not sure if it requires a certain order, but if it does this order works. - a. mingw32 - b. guichan - c. guichan_sdl - d. SDLmain - e. SDL_gfx - f. SDL - g. SDL_image - h. SDL_mixer - i. C:\msys\1.0\local\lib\libboost_filesystem-mgw-1_33_1.lib - j. python24 - 28. Click on the "Add" button. - 29. Set File: [LIBRARY NAME] - 30. Click "OK". - 31. Repeat until all libraries have been added. - 32. Under the "Linker" tab there is a text window titled "Other linker options:", add this line: -mwindows - 33. Select the "Directories" tab. - 34. Under the "Directories" tab select the "Compiler" tab. - 35. Add all of the #include directories for the compiler to look in for the different library header files. Please note when entering directories here do not put an ending "\" because it confuses the compiler. - a. C:\MinGW\include - b. C:\msys\1.0\local\include - c. C:\msys\1.0\local\include\SDL - d. C:\Python24\include - 36. Click on the "Add" button. - 37. Set Directory: [#INCLUDE PATH] - 38. Click "OK". - 39. Repeat until all #include directories have been added. - 40. Select the "Directories" tab. - 41. Under the "Directories" tab select the "Linker" tab. - 42. Add all of the library directories for the compiler to look in for the different library files. Please note when entering directories here do not put an ending "\" because it confuses the compiler. - a. C:\MinGW\lib - b. C:\msys\1.0\local\lib - c. C:\Python24\libs - 43. Click on the "Add" button. - 44. Set Directory: [LIBRARY PATH] - 45. Click "OK". - 46. Repeat until all library directories have been added. - 47. Click the "OK" button on the "Project's Build options" dialog box. - 48. Click the "OK" button on the "Project/targets options" dialog box. - 49. Right click on the project node "Balder2D" in the Management Bar. - 50. Click on the "Add files recursively..." menu option. - 51. Select: C:\Balder2D\src\ - 52. Click the "OK" button. - 53. The "Multiple selection" dialog box will appear. - 54. Make sure all files are selected. Make sure you see Selected: 40 - 55. Click the "OK" button. - 56. Right click on the project node "Balder2D" in the Management Bar. - 57. Click on the "Add files recursively..." menu option. - 58. Select: C:\Balder2D\include\ - 59. Click the "OK" button. - 60. The "Multiple selection" dialog box will appear. - 61. Make sure all files are selected. Make sure you see Selected: 31 - 62. Click the "OK" button. - 63. Click "File" on the main menu. - 64. Click the "Save project" menu option. - 65. This project file is ready to compile. \ No newline at end of file Added: Balder2D-Win-README.txt =================================================================== --- Balder2D-Win-README.txt (rev 0) +++ Balder2D-Win-README.txt 2007-11-07 00:43:00 UTC (rev 82) @@ -0,0 +1,364 @@ +Balder2D Win32 Development Environment Setup Instructions + +Author: Reuben Lord +Last Revised: 11/14/06 +================================================================================== +Please note: + 1. The build and install process described below has only been tested in the order written from top to bottom. + 2. Path names for libraries and development tools that have been extracted from packages with different version numbers than the ones described below may very. + +================================================================================== +Installing MinGW +----------------- + 1. Download the installer "MinGW-5.0.0.exe" or later from: http://www.mingw.org + 2. Double click the installer to run it. + 3. Click "Next >" at the Welcome screen. + 4. Click "I Agree" at the EULA. + 5. Select a mirror that is physically closest to you. + 6. Make sure "Download as needed and install" is selected. + 7. Click the "Next >" button. + 8. Select the "Current" MinGW package. + 9. Click "Next >". + 10. Under the list of components to install, check "MinGW base tools" and "g++ compiler". + 11. Click "Next >". + 12. Select an install path for MinGW. Default: "c:\MinGW" + 13. Click "Next >". + 14. Select a folder in the Start Menu for you MinGW shortcuts to go in. Default: "MinGW" + 15. Click "Install". + 16. Watch MinGW download and install. + 17. Click "Finish". + +================================================================================== +Installing MSYS +---------------- + 1. Download the installer "MSYS-1.0.11-2004.04.30-1.exe" or later from: http://www.mingw.org + 2. Double click the installer to run it. + 3. You will be asked "Do you really want to install Minimal SYStem?" Click "Yes". + 4. Click "Next >" at the Welcome screen. + 5. Click "Yes" at the EULA. + 6. Click "Next >" at the Information screen. + 7. Select an install path. Default: "C:\msys\1.0" + 8. Under component selection, select "Installation for i386 based CPUs (Works for all x86 based CPUs >= i386)". + 9. Click "Next >". + 10. Select a folder in the Start Menu for you MinGW shortcuts to go in. Default: "MinGW" + 11. Click "Next >". + 12. Review setup settings. + 13. Click "Install". + 14. Watch it install MSYS. + 15. A command prompt with the MSYS post installer setup tool in it should appear after the installer finishes installing MSYS. + 16. Press the "y" key on you keyboard and hit "Enter" to continue with the post installer. + 17. Press "y" and hit "Enter" if you have MinGW installed. + 18. Enter the location of your MinGW installation in the following format. Default: "c:\\MinGW" + 19. It will perform some checks and then ask you to "Press any key to continue..." + 20. The post installer tool will now close and bring you back to the primary installer. + 21. Uncheck all check boxes. + 22. Click "Finish". + 23. If you want to change the colors for the MSYS interface they are defined in the file "C:\msys\1.0\msys.bat". + +================================================================================== +Building & Installing SDL (Simple Directmedia Layer) Libraries +--------------------------------------------------------------- + 1. Download the source code "SDL-1.2.9.zip" or later from: http://www.libsdl.org + 2. Extract all of the files to "C:\tmp\". + 3. Run the MSYS shell. + 4. Type: cd /c/tmp/SDL-1.2.9/ + 5. Type: ./configure && make && make install + 6. MSYS will now start building and installing the primary SDL libraries. + 7. For the DLL file, refer to the section below named "Installing DLL Files". + +================================================================================== +Installing SDL_image Libraries +------------------------------- + 1. Download the source code "SDL_image-devel-1.2.4-VC6.zip" or later from: http://www.libsdl.org/projects/SDL_image/ + 2. Extract all of the files to "C:\tmp\". + 3. Go to: C:\tmp\SDL_image-1.2.4\ + 4. Copy "include\SDL_image.h" to "C:\msys\1.0\local\include\SDL". + 5. Copy "lib\SDL_image.lib" to "C:\msys\1.0\local\lib". + 6. For the DLL files, refer to the section below named "Installing DLL Files". + +================================================================================== +Installing SDL_mixer Libraries +------------------------------- + 1. Download the source code "SDL_mixer-devel-1.2.6-VC6.zip" or later from: http://www.libsdl.org/projects/SDL_mixer/ + 2. Extract all of the files to "C:\tmp\". + 3. Go to: C:\tmp\SDL_mixer-1.2.6\ + 4. Copy "include\SDL_mixer.h" to "C:\msys\1.0\local\include\SDL". + 5. Copy "lib\SDL_mixer.lib" to "C:\msys\1.0\local\lib". + 6. For the DLL files, refer to the section below named "Installing DLL Files". + +================================================================================== +Building & Installing SDL_gfx Libraries +---------------------------------------- + 1. Download the source code "SDL_gfx-2.0.13.zip" or later from: http://www.ferzkopp.net/joomla/content/view/19/14/ + 2. Extract all of the files to "C:\tmp\". + 3. Make the modifications listed in step 5 to the following header files: + a. C:\Tmp\SDL_gfx-2.0.13\SDL_framerate.h + b. C:\Tmp\SDL_gfx-2.0.13\SDL_gfxPrimitives.h + c. C:\Tmp\SDL_gfx-2.0.13\SDL_imageFilter.h + d. C:\Tmp\SDL_gfx-2.0.13\SDL_rotozoom.h + 4. The following is the original code block in 4 of the SDL_gfx header files: + #ifdef WIN32 + #ifdef BUILD_DLL + #define DLLINTERFACE __declspec(dllexport) + #else + #define DLLINTERFACE __declspec(dllimport) + #endif + #else + #define DLLINTERFACE + #endif + 5. Make changes in all 4 header files listed above by REM'ing out lines 1, 2, 3, 4, 5, 6, 7 and 9 of the following code block: + //#ifdef WIN32 + //#ifdef BUILD_DLL + //#define DLLINTERFACE __declspec(dllexport) + //#else + //#define DLLINTERFACE __declspec(dllimport) + //#endif + //#else + #define DLLINTERFACE + //#endif + 6. Run the MSYS shell. + 7. Type: cd /c/tmp/sdl_gfx-2.0.13 + 8. The "README" file in the dir + 8. Type: ./autogen.sh + 9. Type: ./configure + 10. Type: ./nodebug.sh + 11. Type: make + 12. Type: make install + 13. Type (this doesn't work): ldconfig + 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. + +================================================================================== +Installing Guichan Libraries +----------------------------- + 1. Download "guichan-0.4.0-mingw32.zip" or later from: http://guichan.sourceforge.net/ + 2. Extract all of the files to "C:\tmp\". + 3. Copy all files from "C:\tmp\guichan-0.4.0-mingw32\include\" to "C:\msys\1.0\local\include\". + 4. Copy all "*.a" files from "C:\tmp\guichan-0.4.0-mingw32\lib\" to "C:\msys\1.0\local\lib\". + 5. For the DLL files, refer to the section below named "Installing DLL Files". + +================================================================================== +Installing Python Libraries +---------------------------- + 1. Download "python-2.4.2.msi" or later from: http://www.python.org/ + 2. Run the Python installer. + 3. On the user selection screen select "Install for all users". + 4. Click "Next >>". + 5. On the Select Destination Directory screen make sure the destination is set to: C:\Python24\ + 6. Click "Next >>". + 7. On the Customize Python 2.4.2 screen select all components. + 8. Click "Next >>". + 9. Watch the installer install Python 2.4.2. + 10. On the Completed installation screen click "Finish". + 11. For the DLL files, refer to the section below named "Installing DLL Files". + +================================================================================== +Installing Psyco Libraries +--------------------------- + 1. Download "psyco-1.5.win32-py2.4.exe" or later from: http://psyco.sourceforge.net/ + 2. Run the Psyco installer. + 3. On the Welcome screen click "Next >". + 4. On the Python installation verification screen make sure it located the version of Python you currently have installed. + 5. Click "Next >". + 6. On the Ready to Install screen click "Next >". + 7. Watch Psyco install. + 8. On the last screen just click "Finish". + 9. For the DLL files, refer to the section below named "Installing DLL Files". + +================================================================================== +Installing TortoiseSVN-1.4.0.7501-win32-svn-1.4.0.msi SVN Tool +--------------------------------------------------------------- + 1. Download "TortoiseSVN-1.4.0.7501-win32-svn-1.4.0.msi" or later from: http://tortoisesvn.net/ + 2. Run the Tortoise SVN installer. + 3. On the welcome screen of the installer click "Next >". + 4. Mark Accept for the EULA. + 5. Click "Next >". + 6. Make sure all components are selected on the Custom Setup screen. + 7. Pick an installation path. Default: C:\Program Files\TortoiseSVN\ + 8. Click "Next >". + 9. On the Ready to Install screen click "Install". + 10. It will now begin installing. + 11. On the completion screen un-check "Show Changelog". + 12. Click "Finish". + 13. It will now ask you to restart you system, click "Yes". + 14. Your system should restart now. + 15. Open your C:\ drive. + 16. Create a new directory named "Balder2D". + 17. Right click on the directory "C:\Balder2D\" directory that you just created to get the context menu. + 18. Click on the "SVN Checkout..." command. + 19. The Checkout dialog box will now appear. + 20. In the "URL of repository" field enter: https://svn.sourceforge.net/svnroot/balder + 21. Make sure the "Checkout directory:" says: C:\Balder2D + 22. Click "OK". + 23. It should now start checking everything out of the SVN and list them out as it does check them out. + 24. When it's done just click the "OK" button. + 25. You should have the latest copy of the Balder2D source code all downloaded into the "C:\Balder2D\" directory at this point. + +================================================================================== +Installing DLL Files +--------------------- +- SDL DLL + 1. Copy from "C:\msys\1.0\local\bin\SDL.dll" to "C:\Balder2D\bin\". +- Guichan DLL's + 2. Copy from "C:\Tmp\guichan-0.4.0-mingw32\bin\guichan.dll" to "C:\Balder2D\bin\". + 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. 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. 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 + 9. Copy from "C:\Tmp\SDL_mixer-1.2.7\lib\ogg.dll" to "C:\Balder2D\bin\". + 10. Copy from "C:\Tmp\SDL_mixer-1.2.7\lib\SDL_mixer.dll" to "C:\Balder2D\bin\". + 11. Copy from "C:\Tmp\SDL_mixer-1.2.7\lib\vorbis.dll" to "C:\Balder2D\bin\". + 12. Copy from "C:\Tmp\SDL_mixer-1.2.7\lib\vorbisfile.dll" to "C:\Balder2D\bin\". +- Python 2.4 DLL + 13. When Python 2.4 is installed it installs the DLL in the %PATH% directory. +- Psyco 1.5 + 14. If it has any DLL's it installs them for you. + +================================================================================== +Installing Code::Blocks IDE +---------------------------- + 1. Download "codeblocks-1.0rc2.exe" or later from: http://www.codeblocks.org/ + 2. Run the installer. + 3. At the Welcome screen click "Next >". + 4. On the EULA screen select the accept option. + 5. Click "Next >". + 6. On the Select Destination Location screen choose your installation path. Default: C:\Program Files\CodeBlocks + 7. Click "Next >". + 8. On the Select Components screen select "Full installation". + 9. Click "Next >". + 10. On the Select Start Menu Folder screen select a folder to store it in or leave the default. + 11. Click "Next >". + 12. On the Select Additional Tasks screen select the icons that you want it to make. + 13. Click "Next >". + 14. On the Ready to Install screen review your installation configuration. + 15. Click "Install". + 16. Watch it install Code::Blocks for you. + 17. On the Information screen click "Next >". + 18. On the Complete screen click "Finish". + 19. Code::Blocks will now load for you. + 20. The Compilers auto-detection screen will appear. + 21. Select the compiler: GNU GCC Compiler + 22. The Status for the "GNU GCC Compiler" should equal: Detected + 23. Click the "Set as default" button. + 24. Make sure at the bottom of the window you see the string: Default compiler: GNU GCC Compiler + 25. Click "Close". + 26. Code::Blocks finished loading up. + 27. If the "Tip of the Day" shows up uncheck "Show tips at startup" and click "Close" on the Tip dialog box. + 28. To open the project file click on the "File" menu. + 29. Then click the "Open" menu option. + 30. Open "C:\Balder2D\Balder2D.cbp". + 31. Now you should be able to build Balder2D with in Code::Blocks. + 32. To build Balder2D in Code::Blocks click on the "Build" menu. + 33. Then click the "Build" menu option (or press Ctrl+F9 to build). + 34. It will then build Balder2D and put the executable file in the following path: C:\Balder2D\bin\Balder2D.exe + +================================================================================== +Creating a Code::Blocks IDE project file +----------------------------------------- + 1. Open Code::Blocks. + 2. If you have any projects open, then close them. + a. On the main menu click on the "File" menu. + b. Then click on the "Close project" menu option. + 3. On the main menu click on the "Project" menu. + 4. Then click on the "New project..." menu option. + 5. The "New from template" dialog box will appear. + 6. Select the "Console Application" icon. + 7. Check the "Do not create any files" check box. + 8. Set Project options: Console Application + 9. Set File(s) options: C++ source + 10. Click the "Create" button. + 11. The "Save project" dialog box will appear. + 12. Save it to: C:\Balder2D\Balder2D.cbp + 13. On the right hand side of the IDE is a tabbed window named "Management" (in the main menu it is "View>Manager" (Shift+F2)). This will be referred to as the "Management Bar". + 14. Select the "Projects" tab on the Management Bar. + 15. Right click on the "Console application" node. + 16. Click on the "Properties" menu option. + 17. The "Project/targets options" dialog will appear. + 18. Select the "Project" tab. + 19. Set Title: Balder2D + 20. Select the "Targets" tab. + 21. Set Output filename: bin\Balder2D.exe + 22. Set Execution working dir: bin\ + 23. Select the "Project" tab. + 24. Click on the "Project's build options..." button. + 25. This will make the "Project's Build options" dialog box appear. + a. You can also reach this dialog box by right clicking on the project's node in the Management Bar. + b. Click on the "Build options" menu option. + 26. Select the "Linker" tab. + 27. Add all of the libraries for the linker to link to the project. I'm not sure if it requires a certain order, but if it does this order works. + a. mingw32 + b. guichan + c. guichan_sdl + d. SDLmain + e. SDL_gfx + f. SDL + g. SDL_image + h. SDL_mixer + i. C:\msys\1.0\local\lib\libboost_filesystem-mgw-1_33_1.lib + j. python24 + 28. Click on the "Add" button. + 29. Set File: [LIBRARY NAME] + 30. Click "OK". + 31. Repeat until all libraries have been added. + 32. Under the "Linker" tab there is a text window titled "Other linker options:", add this line: -mwindows + 33. Select the "Directories" tab. + 34. Under the "Directories" tab select the "Compiler" tab. + 35. Add all of the #include directories for the compiler to look in for the different library header files. Please note when entering directories here do not put an ending "\" because it confuses the compiler. + a. C:\MinGW\include + b. C:\msys\1.0\local\include + c. C:\msys\1.0\local\include\SDL + d. C:\Python24\include + 36. Click on the "Add" button. + 37. Set Directory: [#INCLUDE PATH] + 38. Click "OK". + 39. Repeat until all #include directories have been added. + 40. Select the "Directories" tab. + 41. Under the "Directories" tab select the "Linker" tab. + 42. Add all of the library directories for the compiler to look in for the different library files. Please note when entering directories here do not put an ending "\" because it confuses the compiler. + a. C:\MinGW\lib + b. C:\msys\1.0\local\lib + c. C:\Python24\libs + 43. Click on the "Add" button. + 44. Set Directory: [LIBRARY PATH] + 45. Click "OK". + 46. Repeat until all library directories have been added. + 47. Click the "OK" button on the "Project's Build options" dialog box. + 48. Click the "OK" button on the "Project/targets options" dialog box. + 49. Right click on the project node "Balder2D" in the Management Bar. + 50. Click on the "Add files recursively..." menu option. + 51. Select: C:\Balder2D\src\ + 52. Click the "OK" button. + 53. The "Multiple selection" dialog box will appear. + 54. Make sure all files are selected. Make sure you see Selected: 40 + 55. Click the "OK" button. + 56. Right click on the project node "Balder2D" in the Management Bar. + 57. Click on the "Add files recursively..." menu option. + 58. Select: C:\Balder2D\include\ + 59. Click the "OK" button. + 60. The "Multiple selection" dialog box will appear. + 61. Make sure all files are selected. Make sure you see Selected: 31 + 62. Click the "OK" button. + 63. Click "File" on the main menu. + 64. Click the "Save project" menu option. + 65. This project file is ready to compile. \ No newline at end of file Modified: history.txt =================================================================== --- history.txt 2007-11-05 23:52:11 UTC (rev 81) +++ history.txt 2007-11-07 00:43:00 UTC (rev 82) @@ -3,6 +3,10 @@ History entries are in reverse chronological order (newest entries first). +06 Nov-2007 + - Reuben renamed the Windows installation instructions to + Balder2D-Win-README.txt. + 05 Nov-2007 - Reuben removed Boost FS lib flags from Balder2D-Win.cbp. - Reuben added some more temp log points. 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:35:34
|
Revision: 88 http://balder.svn.sourceforge.net/balder/?rev=88&view=rev Author: colalord Date: 2007-11-30 12:35:39 -0800 (Fri, 30 Nov 2007) Log Message: ----------- 19 Nov-2007 - Reuben add frame size controls to WidgetSkinnedCheckBox. Modified Paths: -------------- history.txt include/menu/widgetskinnedcheckbox.h src/menu/gamesetup.cpp src/menu/widgetskinnedcheckbox.cpp Modified: history.txt =================================================================== --- history.txt 2007-11-30 20:16:26 UTC (rev 87) +++ history.txt 2007-11-30 20:35:39 UTC (rev 88) @@ -4,6 +4,7 @@ History entries are in reverse chronological order (newest entries first). 19 Nov-2007 + - Reuben add frame size controls to WidgetSkinnedCheckBox. - Reuben add widgetskinnedcheckbox.cpp/h and menuskin.png 19 Nov-2007 Modified: include/menu/widgetskinnedcheckbox.h =================================================================== --- include/menu/widgetskinnedcheckbox.h 2007-11-30 20:16:26 UTC (rev 87) +++ include/menu/widgetskinnedcheckbox.h 2007-11-30 20:35:39 UTC (rev 88) @@ -43,6 +43,10 @@ // Inherited from gcn::Widget virtual void draw(gcn::Graphics* graphics); virtual void drawBorder(gcn::Graphics* graphics); + + // CheckBox control functions + void setSizeXY(int newSizeXY) {checkboxSizeXY = newSizeXY;}; + int getSizeXY() {return checkboxSizeXY;}; private: // Skin Variables. @@ -51,7 +55,8 @@ unsigned int skinStripLocation; // Button Variables. - unsigned int checkboxState; + unsigned int checkboxState; + unsigned int checkboxSizeXY; }; } Modified: src/menu/gamesetup.cpp =================================================================== --- src/menu/gamesetup.cpp 2007-11-30 20:16:26 UTC (rev 87) +++ src/menu/gamesetup.cpp 2007-11-30 20:35:39 UTC (rev 88) @@ -50,8 +50,7 @@ int time = ConfigManager::GetIntValue("GameSetup", "TimeLimit"); int life = ConfigManager::GetIntValue("GameSetup", "LifeLimit"); scoreLimitSelector = new WidgetSkinnedCheckBox("Maximum Score", "menu/menuskin.png", 0, score > 0); - scoreLimitSelector->setHeight(32); - scoreLimitSelector->setActionEventId("toggleScoreLimit"); + scoreLimitSelector->setActionEventId("toggleScoreLimit"); scoreLimitSelector->addActionListener(this); timeLimitSelector = new gcn::CheckBox("Time (minutes)", time > 0); timeLimitSelector->setActionEventId("toggleTimeLimit"); Modified: src/menu/widgetskinnedcheckbox.cpp =================================================================== --- src/menu/widgetskinnedcheckbox.cpp 2007-11-30 20:16:26 UTC (rev 87) +++ src/menu/widgetskinnedcheckbox.cpp 2007-11-30 20:35:39 UTC (rev 88) @@ -31,6 +31,7 @@ gcn::CheckBox(cbC, cbS), skinFileName(sFN), skinStripLocation(sSL), checkboxState(cbS) { setBorderSize(0); + checkboxSizeXY = 32; // Load Skin Frame Strip from File. skinFrameStrip = ImageLoader::LoadImage(skinFileName.c_str()); @@ -67,14 +68,14 @@ } // draw widget onto menu screen at widget location. - SDL_Rect rectSrc = {checkboxState*getHeight(), skinStripLocation, getHeight(), getHeight()}; + SDL_Rect rectSrc = {checkboxState*checkboxSizeXY, skinStripLocation, checkboxSizeXY, checkboxSizeXY}; 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; + int textX = checkboxSizeXY + 5; + int textY = checkboxSizeXY / 2 - getFont()->getHeight() / 2; 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: <col...@us...> - 2007-11-30 21:12:22
|
Revision: 89 http://balder.svn.sourceforge.net/balder/?rev=89&view=rev Author: colalord Date: 2007-11-30 13:12:27 -0800 (Fri, 30 Nov 2007) Log Message: ----------- 19 Nov-2007 - Reuben replaced all standard gcn::checkbox objects in the menu system with WidgetSkinnedCheckBox. Modified Paths: -------------- history.txt include/menu/gamesetup.h include/menu/soundvideo.h src/menu/gamesetup.cpp src/menu/soundvideo.cpp Modified: history.txt =================================================================== --- history.txt 2007-11-30 20:35:39 UTC (rev 88) +++ history.txt 2007-11-30 21:12:27 UTC (rev 89) @@ -4,6 +4,8 @@ History entries are in reverse chronological order (newest entries first). 19 Nov-2007 + - Reuben replaced all standard gcn::checkbox objects in the menu system + with WidgetSkinnedCheckBox. - Reuben add frame size controls to WidgetSkinnedCheckBox. - Reuben add widgetskinnedcheckbox.cpp/h and menuskin.png Modified: include/menu/gamesetup.h =================================================================== --- include/menu/gamesetup.h 2007-11-30 20:35:39 UTC (rev 88) +++ include/menu/gamesetup.h 2007-11-30 21:12:27 UTC (rev 89) @@ -45,8 +45,8 @@ gcn::ScrollArea* mapScrollArea; gcn::ListBox* mapListBox; WidgetSkinnedCheckBox* scoreLimitSelector; - gcn::CheckBox* timeLimitSelector; - gcn::CheckBox* lifeLimitSelector; + WidgetSkinnedCheckBox* timeLimitSelector; + WidgetSkinnedCheckBox* lifeLimitSelector; NumberField* scoreLimitValue; NumberField* timeLimitValue; NumberField* lifeLimitValue; Modified: include/menu/soundvideo.h =================================================================== --- include/menu/soundvideo.h 2007-11-30 20:35:39 UTC (rev 88) +++ include/menu/soundvideo.h 2007-11-30 21:12:27 UTC (rev 89) @@ -25,6 +25,7 @@ namespace Balder { +class WidgetSkinnedCheckBox; class SoundVideoMenu:public SubMenu { @@ -34,9 +35,9 @@ void action(const gcn::ActionEvent& action); private: SkinnedButtonWidget* backButton; - gcn::CheckBox* fullScreenCheckbox; - gcn::CheckBox* soundCheckbox; - gcn::CheckBox* musicCheckbox; + WidgetSkinnedCheckBox* fullScreenCheckbox; + WidgetSkinnedCheckBox* soundCheckbox; + WidgetSkinnedCheckBox* musicCheckbox; gcn::Label* fxVolumeLabel; gcn::Label* musicVolumeLabel; gcn::Slider* fxVolumeSlider; Modified: src/menu/gamesetup.cpp =================================================================== --- src/menu/gamesetup.cpp 2007-11-30 20:35:39 UTC (rev 88) +++ src/menu/gamesetup.cpp 2007-11-30 21:12:27 UTC (rev 89) @@ -52,10 +52,10 @@ scoreLimitSelector = new WidgetSkinnedCheckBox("Maximum Score", "menu/menuskin.png", 0, score > 0); scoreLimitSelector->setActionEventId("toggleScoreLimit"); scoreLimitSelector->addActionListener(this); - timeLimitSelector = new gcn::CheckBox("Time (minutes)", time > 0); + timeLimitSelector = new WidgetSkinnedCheckBox("Time (minutes)", "menu/menuskin.png", 0, score > 0); timeLimitSelector->setActionEventId("toggleTimeLimit"); timeLimitSelector->addActionListener(this); - lifeLimitSelector = new gcn::CheckBox("Limited Lives", life > 0); + lifeLimitSelector = new WidgetSkinnedCheckBox("Limited Lives", "menu/menuskin.png", 0, score > 0); lifeLimitSelector->setActionEventId("toggleLifeLimit"); lifeLimitSelector->addActionListener(this); scoreLimitValue = new NumberField(score); Modified: src/menu/soundvideo.cpp =================================================================== --- src/menu/soundvideo.cpp 2007-11-30 20:35:39 UTC (rev 88) +++ src/menu/soundvideo.cpp 2007-11-30 21:12:27 UTC (rev 89) @@ -18,7 +18,8 @@ * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * ***************************************************************************/ -#include "menu/soundvideo.h" +#include "menu/soundvideo.h" +#include "menu/widgetskinnedcheckbox.h" #include "configmanager.h" #include "soundmanager.h" @@ -31,16 +32,15 @@ backButton->setActionEventId("back"); backButton->addActionListener(this); - fullScreenCheckbox = new gcn::CheckBox("Fullscreen (in game only)", - ConfigManager::GetIntValue("Video", "fullscreen")); + fullScreenCheckbox = new WidgetSkinnedCheckBox("Fullscreen (in game only)", "menu/menuskin.png", 0, ConfigManager::GetIntValue("Video", "fullscreen")); fullScreenCheckbox->setActionEventId("toggleFullscreen"); fullScreenCheckbox->addActionListener(this); - soundCheckbox = new gcn::CheckBox("Sound", ConfigManager::GetIntValue("Sound", "sound")); + soundCheckbox = new WidgetSkinnedCheckBox("Sound", "menu/menuskin.png", 0, ConfigManager::GetIntValue("Sound", "sound")); soundCheckbox->setActionEventId("toggleSound"); soundCheckbox->addActionListener(this); - musicCheckbox = new gcn::CheckBox("Music", ConfigManager::GetIntValue("Sound", "music")); + musicCheckbox = new WidgetSkinnedCheckBox("Music", "menu/menuskin.png", 0, ConfigManager::GetIntValue("Sound", "music")); musicCheckbox->setActionEventId("toggleMusic"); musicCheckbox->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-04 19:30:26
|
Revision: 93 http://balder.svn.sourceforge.net/balder/?rev=93&view=rev Author: colalord Date: 2007-12-04 11:30:29 -0800 (Tue, 04 Dec 2007) Log Message: ----------- 4 Dec-2007 - Reuben added Inno Setup script file for making windows installation program. Modified Paths: -------------- history.txt Added Paths: ----------- balder2d.iss Added: balder2d.iss =================================================================== --- balder2d.iss (rev 0) +++ balder2d.iss 2007-12-04 19:30:29 UTC (rev 93) @@ -0,0 +1,54 @@ +#define MyAppName "Balder2D" +#define MyAppVerName "Balder2D 0.9" +#define MyAppVersion "0.9" +#define MyAppPublisher "Bj\xF8rn Hansen" +#define MyAppExeName "balder2d.exe" +#define MyAppIconName "balder2d.ico" + +[Setup] +AppName={#MyAppName} +AppVerName={#MyAppVerName} +AppVersion={#MyAppVersion} +AppPublisher={#MyAppPublisher} +DefaultDirName={pf}\{#MyAppName} +DefaultGroupName={#MyAppName} +LicenseFile=C:\balder2d installer\LEGAL.TXT +InfoAfterFile=C:\balder2d installer\README.TXT +OutputDir=C:\ +OutputBaseFilename=balder2d_0_9 +Compression=lzma +SolidCompression=yes + +[Languages] +Name: english; MessagesFile: compiler:Default.isl + +[Tasks] +Name: desktopicon; Description: {cm:CreateDesktopIcon}; GroupDescription: {cm:AdditionalIcons}; Flags: + +[Files] +Source: C:\balder2d installer\bin\balder2d.exe; DestDir: {app}; Flags: ignoreversion +Source: C:\balder2d installer\*; DestDir: {app}; Flags: ignoreversion recursesubdirs createallsubdirs +; NOTE: Don't use "Flags: ignoreversion" on any shared system files + +[Icons] +Name: {group}\{#MyAppName}; Filename: {app}\bin\{#MyAppExeName}; WorkingDir: {app}\bin\; IconFilename: {app}\bin\{#MyAppIconName} +Name: {group}\{cm:UninstallProgram,{#MyAppName}}; Filename: {uninstallexe} +Name: {userdesktop}\{#MyAppName}; Filename: {app}\bin\{#MyAppExeName}; WorkingDir: {app}\bin\; Tasks: desktopicon; IconFilename: {app}\bin\{#MyAppIconName} + +[Components] +Name: Python_2_4; Description: Download & Install Python 2.4 (Required); Types: full compact; Languages: ; ExtraDiskSpaceRequired: 16700000 +Name: Psyco_1_5; Description: Download & Install Psyco 1.5; Types: full; Languages: ; ExtraDiskSpaceRequired: 1000000 + +[_ISToolDownload] +Source: http://www.python.org/ftp/python/2.4.2/python-2.4.2.msi; DestDir: {tmp}; DestName: python-2.4.2.msi; Components: Python_2_4; Languages: +Source: http://easynews.dl.sourceforge.net/sourceforge/psyco/psyco-1.5.win32-py2.4.exe; DestDir: {tmp}; DestName: psyco-1.5.win32-py2.4.exe; Components: Psyco_1_5; Languages: + +[Code] +function NextButtonClick(CurPage: Integer): Boolean; +begin + Result := istool_download(CurPage); +end; + +[Run] +Filename: {sys}\msiexec.exe; WorkingDir: {tmp}; Components: Python_2_4; Languages: ; Parameters: "/i ""{tmp}\python-2.4.2.msi""" +Filename: {tmp}\psyco-1.5.win32-py2.4.exe; WorkingDir: {tmp}; Components: Psyco_1_5; Languages: Modified: history.txt =================================================================== --- history.txt 2007-12-03 21:40:49 UTC (rev 92) +++ history.txt 2007-12-04 19:30:29 UTC (rev 93) @@ -3,6 +3,9 @@ History entries are in reverse chronological order (newest entries first). +4 Dec-2007 + - Reuben added Inno Setup script file for making windows installation program. + 3 Dec-2007 - Reuben changed the fullscreen option in the menu to control both the menu screen and the game screen. This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <col...@us...> - 2007-12-05 00:46:08
|
Revision: 94 http://balder.svn.sourceforge.net/balder/?rev=94&view=rev Author: colalord Date: 2007-12-04 16:46:13 -0800 (Tue, 04 Dec 2007) Log Message: ----------- 4 Dec-2007 - Reuben added skinnedslider.cpp/h too allow for skinned slider bars in the menu. Modified Paths: -------------- Balder2D-Win.cbp history.txt Added Paths: ----------- include/menu/widgets/skinnedslider.h src/menu/widgets/skinnedslider.cpp Modified: Balder2D-Win.cbp =================================================================== --- Balder2D-Win.cbp 2007-12-04 19:30:29 UTC (rev 93) +++ Balder2D-Win.cbp 2007-12-05 00:46:13 UTC (rev 94) @@ -71,6 +71,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\skinnedslider.h" /> <Unit filename="include\player.h" /> <Unit filename="include\powerup.h" /> <Unit filename="include\powerupfactory.h" /> @@ -112,6 +113,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\skinnedslider.cpp" /> <Unit filename="src\player.cpp" /> <Unit filename="src\powerup.cpp" /> <Unit filename="src\powerupfactory.cpp" /> Modified: history.txt =================================================================== --- history.txt 2007-12-04 19:30:29 UTC (rev 93) +++ history.txt 2007-12-05 00:46:13 UTC (rev 94) @@ -4,6 +4,7 @@ History entries are in reverse chronological order (newest entries first). 4 Dec-2007 + - Reuben added skinnedslider.cpp/h too allow for skinned slider bars in the menu. - Reuben added Inno Setup script file for making windows installation program. 3 Dec-2007 Added: include/menu/widgets/skinnedslider.h =================================================================== --- include/menu/widgets/skinnedslider.h (rev 0) +++ include/menu/widgets/skinnedslider.h 2007-12-05 00:46:13 UTC (rev 94) @@ -0,0 +1,63 @@ +/*************************************************************************** + * 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 BALDERSKINNEDSLIDER_H +#define BALDERSKINNEDSLIDER_H + +#define widgetNotFocused 0 +#define widgetFocused 1 + +#include <guichan/widgets/slider.hpp> +#include "../../balder2dtypes.h" + +namespace Balder +{ + /** + * An Icon for displaying an animated image. + */ + class SkinnedSlider: public gcn::Slider + { + public: + // Constructor and Destructor. + SkinnedSlider(double, double, std::string, unsigned int = 0, int = 10); + ~SkinnedSlider(); + + // Inherited from gcn::Widget + virtual void draw(gcn::Graphics* graphics); + virtual void drawBorder(gcn::Graphics* graphics); + virtual void drawMarker(gcn::Graphics* graphics); + + private: + //Screen Variables. + SDL_Surface* screen; + int x; + int y; + + // Skin Variables. + SDL_Surface* skinFrameStrip; + std::string skinFileName; + unsigned int skinStripLocation; + + // Slider Variables. + unsigned int sliderState; + }; +} + +#endif // BALDERSKINNEDSLIDER_H Added: src/menu/widgets/skinnedslider.cpp =================================================================== --- src/menu/widgets/skinnedslider.cpp (rev 0) +++ src/menu/widgets/skinnedslider.cpp 2007-12-05 00:46:13 UTC (rev 94) @@ -0,0 +1,107 @@ +/*************************************************************************** + * 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/widgets/skinnedslider.h" +#include "imageloader.h" +using namespace Balder; + +SkinnedSlider::SkinnedSlider(double scaleStart, double scaleEnd, std::string sFN, unsigned int sSL, int sML): + skinFileName(sFN), skinStripLocation(sSL), sliderState(widgetNotFocused) +{ + setBorderSize(0); + setScaleStart(scaleStart); + setScaleEnd(scaleEnd); + setOrientation(HORIZONTAL); + setMarkerLength(sML); + + // Load Skin Frame Strip from File. + skinFrameStrip = ImageLoader::LoadImage(skinFileName.c_str()); + if (skinFrameStrip == 0) { + throw "could not load button skin!"; + } +} + +SkinnedSlider::~SkinnedSlider() +{ + if (skinFrameStrip != 0) { + SDL_FreeSurface(skinFrameStrip); + } +} + +void SkinnedSlider::draw(gcn::Graphics* graphics) +{ + // get screen that the menu is drawn on. + screen = dynamic_cast<gcn::SDLGraphics*>(graphics)->getTarget(); + + // get location of the widget on the menu screen. + gcn::Widget::getAbsolutePosition(x,y); + + // Get widget state. + if (isFocused()) { + sliderState = widgetFocused; + } + else { + sliderState = widgetNotFocused; + } + + // draw widget onto menu screen at widget location. + SDL_Rect rectSrc = {sliderState*getWidth(), skinStripLocation, getWidth(), getHeight()}; + SDL_Rect rectDest = {x, y, /*width is ignored*/0, /*height is ignored*/0}; + SDL_BlitSurface(skinFrameStrip, &rectSrc, screen, &rectDest); + + drawMarker(graphics); +} + +void SkinnedSlider::drawBorder(gcn::Graphics* graphics) +{ + // Borders are not drawn for skinned buttons. +} + +void SkinnedSlider::drawMarker(gcn::Graphics* graphics) +{ + int markerWidth; + int markerHeight; + int markerX; + int markerY; + + if (getOrientation() == HORIZONTAL) { + markerWidth = getMarkerLength(); + markerHeight = getHeight(); + markerX = x + getMarkerPosition(); + markerY = y + 0; + } + else { + markerWidth = getWidth(); + markerHeight = getMarkerLength(); + markerX = x + 0; + markerY = y + ((getHeight() - getMarkerLength()) - getMarkerPosition()); + } + + // draw widget onto menu screen at widget location. + SDL_Rect rectSrc = {(2 * getWidth()) + (sliderState * getMarkerLength()), skinStripLocation, markerWidth, markerHeight}; + SDL_Rect rectDest = {markerX, markerY, /*width is ignored*/0, /*height is ignored*/0}; + SDL_BlitSurface(skinFrameStrip, &rectSrc, screen, &rectDest); + +} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <hol...@us...> - 2008-05-26 16:47:52
|
Revision: 105 http://balder.svn.sourceforge.net/balder/?rev=105&view=rev Author: holomorph Date: 2008-05-26 09:47:59 -0700 (Mon, 26 May 2008) Log Message: ----------- fix field size and key listener method name (wasn't actually called and was using textfield's key listener Modified Paths: -------------- include/menu/widgets/numberfield.h src/menu/widgets/numberfield.cpp Modified: include/menu/widgets/numberfield.h =================================================================== --- include/menu/widgets/numberfield.h 2008-05-26 07:11:10 UTC (rev 104) +++ include/menu/widgets/numberfield.h 2008-05-26 16:47:59 UTC (rev 105) @@ -30,7 +30,7 @@ public: NumberField(int n, int maxDigits = 3); virtual void mousePressed(gcn::MouseEvent &e); - virtual void keyPress (const gcn::Key &key); + virtual void keyPressed(gcn::KeyEvent& keyEvent); virtual void draw(gcn::Graphics*); int getValue(); void setValue(int n); Modified: src/menu/widgets/numberfield.cpp =================================================================== --- src/menu/widgets/numberfield.cpp 2008-05-26 07:11:10 UTC (rev 104) +++ src/menu/widgets/numberfield.cpp 2008-05-26 16:47:59 UTC (rev 105) @@ -22,17 +22,18 @@ #include <guichan/font.hpp> #include <guichan/graphics.hpp> #include "menu/widgets/numberfield.h" +#include "log.h" using namespace Balder; using namespace gcn; -NumberField::NumberField(int n,int maxDigits) +NumberField::NumberField(int n,int maxDigits): digits(maxDigits),gcn::TextField() { - std::stringstream ss; - ss << n; + std::stringstream ss; + ss << n; setText(ss.str()); setWidth(getFont()->getWidth("0")*maxDigits + 4); - digits = maxDigits; + adjustHeight(); } int NumberField::getValue() @@ -60,8 +61,9 @@ } } -void NumberField::keyPress(const Key& key) +void NumberField::keyPressed(gcn::KeyEvent& keyEvent) { + gcn::Key key = keyEvent.getKey(); if (key.getValue() == Key::LEFT && mCaretPosition > 0) { --mCaretPosition; 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:34:58
|
Revision: 113 http://balder.svn.sourceforge.net/balder/?rev=113&view=rev Author: holomorph Date: 2008-06-06 18:35:05 -0700 (Fri, 06 Jun 2008) Log Message: ----------- fixed out of bounds on map dropdown Modified Paths: -------------- bin/config.xml src/menu/widgets/maplistmodel.cpp src/menu/widgets/skinneddropdown.cpp Modified: bin/config.xml =================================================================== --- bin/config.xml 2008-06-07 01:16:48 UTC (rev 112) +++ bin/config.xml 2008-06-07 01:35:05 UTC (rev 113) @@ -2,7 +2,7 @@ <!-- Balder2d Configuration data --> <Balder> <!-- The following is meant to be modified by the user --> - <Map name="ellipse" /> + <Map name="alpha quadrant" /> <NumberOfPlayers value="4" /> <GameSetup> <!-- negative values indicate disabled modes --> Modified: src/menu/widgets/maplistmodel.cpp =================================================================== --- src/menu/widgets/maplistmodel.cpp 2008-06-07 01:16:48 UTC (rev 112) +++ src/menu/widgets/maplistmodel.cpp 2008-06-07 01:35:05 UTC (rev 113) @@ -73,6 +73,8 @@ if (i > numMaps - 1) { Log::output("tried to get map at index higher than number of maps"); + Log::output("numMaps: "+numMaps); +// Log::output("i :" +i); return "--Map Not Found--"; } return mapnames[i]; Modified: src/menu/widgets/skinneddropdown.cpp =================================================================== --- src/menu/widgets/skinneddropdown.cpp 2008-06-07 01:16:48 UTC (rev 112) +++ src/menu/widgets/skinneddropdown.cpp 2008-06-07 01:35:05 UTC (rev 113) @@ -73,11 +73,12 @@ startRow = 0; } - int i; + // end row should not exceed list size + int endRow = std::min(startRow+numberOfRows, mListModel->getNumberOfElements()); // The y coordinate where we start to draw the text is // simply the y coordinate multiplied with the font height. int y = rowHeight * startRow; - for (i = startRow; i < startRow + numberOfRows; ++i) + for (int i = startRow; i < endRow; ++i) { if (i == mSelected) { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |