/*******************************************************************************
This file is Part of the ZEngine Library for 2D game development.
Copyright (C) 2002, 2003 James Turk
Licensed under a BSD-style license.
The maintainer of this library is James Turk (james@conceptofzero.net)
and the home of this Library is http://www.zengine.sourceforge.net
*******************************************************************************/
/*!
\file ZE_Utility.h
\brief Definition file for ZEngine Utilities.
Definition file for ZEngine Utilities which are used throughout the engine and can be used in
conjunction with ZEngine.
$Id: ZE_Utility.h,v 1.5 2003/06/11 00:15:25 cozman Exp $
\author James Turk
**/
#ifndef __ze_utility_h__
#define __ze_utility_h__
#include "ZE_Includes.h"
namespace ZE
{
/*!
\brief Parses a std::string and interprets variable arguments, similar to sprintf.
Takes % identifiers out of fmtstr and parses them, replacing them with cooresponding values
in the variable arguments list. For more detail view stdarg documentation.
\param fmtstr defines format of resulting std::string
\param ... variable number of arguments after fmtstr
\return std::string of parsed and combined std::string
**/
std::string FormatStr(const char *fmtstr, ...);
//////////
//Memory//
//////////
/*!
\brief Properly free SDL_Surface.
Safely free an SDL_Surface* and set it to NULL.
\param image Image to free and set to NULL.
**/
void FreeImage(SDL_Surface *&image);
#ifdef USE_SDL_MIXER
/*!
\brief Properly free Mix_Chunk.
Safely free a Mix_Chunk* and set it to NULL.
\param chunk Chunk to free and set to NULL.
**/
void FreeSound(Mix_Chunk *&chunk);
/*!
\brief Properly free Mix_Music.
Safely free a Mix_Music* and set it to NULL.
\param music Music to free and set to NULL.
**/
void FreeMusic(Mix_Music *&music);
#endif
#ifdef USE_SDL_TTF
/*!
\brief Properly free TTF_Font.
Safely free a TTF_Font* and set it to NULL.
\param font Font to free and set to NULL.
**/
void FreeFont(TTF_Font *&font);
#endif
}
#endif //__ze_utility_h__