author | andyq <andyq> | 2003-01-21 20:37:00 (UTC) |
---|---|---|
committer | andyq <andyq> | 2003-01-21 20:37:00 (UTC) |
commit | 0a6563fcc2f49857c581d9def24407a3a4ef526c (patch) (side-by-side diff) | |
tree | f1b82a4bd7582ef2cb722cffb87eecff1e1f96e6 /noncore/games/sfcave-sdl/font.cpp | |
parent | 50b5915b48fc5cbacf23e4d2b75d7a266f141a4a (diff) | |
download | opie-0a6563fcc2f49857c581d9def24407a3a4ef526c.zip opie-0a6563fcc2f49857c581d9def24407a3a4ef526c.tar.gz opie-0a6563fcc2f49857c581d9def24407a3a4ef526c.tar.bz2 |
Clean up of code - fixed memory leaks (most of them) and added new custom config menu
Diffstat (limited to 'noncore/games/sfcave-sdl/font.cpp') (more/less context) (show whitespace changes)
-rw-r--r-- | noncore/games/sfcave-sdl/font.cpp | 16 |
1 files changed, 14 insertions, 2 deletions
diff --git a/noncore/games/sfcave-sdl/font.cpp b/noncore/games/sfcave-sdl/font.cpp index 2976d48..1988252 100644 --- a/noncore/games/sfcave-sdl/font.cpp +++ b/noncore/games/sfcave-sdl/font.cpp @@ -1,72 +1,84 @@ #include "font.h" #include "constants.h" BFont *FontHandler :: menuSelFont; BFont *FontHandler :: menuUnSelFont; BFont *FontHandler :: whiteFont; BFont *FontHandler :: colouredFont; BFont *FontHandler :: helpFont; -void FontHandler :: init() +bool FontHandler :: init() { // Load font images // Convert to fonts menuSelFont = new BFont( IMAGES_PATH "sel_menu_font.bmp" ); menuUnSelFont = new BFont( IMAGES_PATH "unsel_menu_font.bmp" ); whiteFont = new BFont( IMAGES_PATH "score_font.bmp" ); helpFont = new BFont( IMAGES_PATH "help_font.bmp" ); colouredFont = 0; + + // Check if we are installed correctly (we need fonts to function) + if ( menuSelFont == 0 || menuUnSelFont == 0 || whiteFont == 0 || helpFont == 0 ) + { + printf( "One or more fonts are not installed correctly\n" ); + return false; + } + + return true; } void FontHandler :: cleanUp() { + if ( menuSelFont ) delete menuSelFont; + if ( menuUnSelFont ) delete menuUnSelFont; + if ( whiteFont ) delete whiteFont; + if ( helpFont ) delete helpFont; - if ( colouredFont ) delete colouredFont; } int FontHandler :: TextWidth( int font, const char *text ) { return getFont( font )->TextWidth( text ); } int FontHandler :: FontHeight( int font ) { return getFont( font )->FontHeight(); } void FontHandler :: draw( SDL_Surface *screen, int font, const char *text, int x, int y ) { if ( x == -1 ) getFont( font )->CenteredPutString( screen, y, text ); else getFont( font )->PutString( screen, x, y, text ); } void FontHandler :: changeColor( int font, int r, int g, int b ) { if ( colouredFont ) delete colouredFont; colouredFont = getFont( font )->SetFontColor( r, g, b ); } BFont *FontHandler :: getFont( int font ) { if ( font == FONT_MENU_HIGHLIGHTED ) return menuSelFont; else if ( font == FONT_MENU_UNHIGHLIGHTED ) return menuUnSelFont; else if ( font == FONT_COLOURED_TEXT ) return colouredFont; else if ( font == FONT_HELP_FONT ) return helpFont; else return whiteFont; } |