#include "stdafx.h" #include "GameFile.h" cGameFile::cGameFile() { mfp = NULL; mMode = eFILE_MODE_TXT; } cGameFile::~cGameFile() { CloseGameFile(); } /* ------------------------------------------------------------------ * ÇÔ¼öÀ̸§ : * ¸ñ Àû : * ÁÖÀÇ»çÇ× : * ------------------------------------------------------------------ */ bool cGameFile::OpenGameFile( const char* pfilename, int mode /* = eFILE_MODE_TXT */ ) { mMode = mode; switch( mMode ) { case eFILE_MODE_TXT: { mfp = 0; if( fopen_s( &mfp, pfilename, "r") != 0 ) return false; } break; case eFILE_MODE_BIN: break; } return true; } /* ------------------------------------------------------------------ * ÇÔ¼öÀ̸§ : * ¸ñ Àû : * ÁÖÀÇ»çÇ× : * ------------------------------------------------------------------ */ void cGameFile::CloseGameFile() { if( mfp ) { switch( mMode ) { case eFILE_MODE_TXT: { fclose( mfp ); } break; case eFILE_MODE_BIN: break; } } mfp = NULL; mMode = eFILE_MODE_TXT; } /* ------------------------------------------------------------------ * ÇÔ¼öÀ̸§ : * ¸ñ Àû : * ÁÖÀÇ»çÇ× : * ------------------------------------------------------------------ */ int cGameFile::GetInt() { return atoi( GetString() ); } /* ------------------------------------------------------------------ * ÇÔ¼öÀ̸§ : * ¸ñ Àû : * ÁÖÀÇ»çÇ× : * ------------------------------------------------------------------ */ short cGameFile::GetShort() { return (short)atoi( GetString() ); } /* ------------------------------------------------------------------ * ÇÔ¼öÀ̸§ : * ¸ñ Àû : * ÁÖÀÇ»çÇ× : * ------------------------------------------------------------------ */ char cGameFile::GetBYTE() { return (char)atoi( GetString() ); } /* ------------------------------------------------------------------ * ÇÔ¼öÀ̸§ : * ¸ñ Àû : * ÁÖÀÇ»çÇ× : * ------------------------------------------------------------------ */ bool cGameFile::GetBOOL() { return atoi( GetString() )?true:false; } /* ------------------------------------------------------------------ * ÇÔ¼öÀ̸§ : * ¸ñ Àû : * ÁÖÀÇ»çÇ× : * ------------------------------------------------------------------ */ unsigned short cGameFile::GetWORD() { return (unsigned short)atoi( GetString() ); } /* ------------------------------------------------------------------ * ÇÔ¼öÀ̸§ : * ¸ñ Àû : * ÁÖÀÇ»çÇ× : * ------------------------------------------------------------------ */ unsigned long cGameFile::GetDWORD() { return (unsigned long)atoi( GetString() ); } /* ------------------------------------------------------------------ * ÇÔ¼öÀ̸§ : * ¸ñ Àû : * ÁÖÀÇ»çÇ× : * ------------------------------------------------------------------ */ float cGameFile::GetFloat() { return (float)atof( GetString() ); } /* ------------------------------------------------------------------ * ÇÔ¼öÀ̸§ : * ¸ñ Àû : * ÁÖÀÇ»çÇ× : * ------------------------------------------------------------------ */ double cGameFile::GetDouble() { return (double)atof( GetString() ); } /* ------------------------------------------------------------------ * ÇÔ¼öÀ̸§ : * ¸ñ Àû : * ÁÖÀÇ»çÇ× : * ------------------------------------------------------------------ */ char* cGameFile::GetString() { static char buf[512] = {0,}; switch( mMode ) { case eFILE_MODE_TXT: { fscanf_s( mfp, "%s", buf ); } break; case eFILE_MODE_BIN: { } break; } return buf; } /* ------------------------------------------------------------------ * ÇÔ¼öÀ̸§ : * ¸ñ Àû : * ÁÖÀÇ»çÇ× : »ç¿ë±ÝÁö * ------------------------------------------------------------------ */ /* char* cGameFile::GetStringInQuotation() { static char buf[512] = {0,}; int c = 0; switch( mMode ) { case eFILE_MODE_TXT: { int count = 0; while( (c = fgetc(mfp)) != '"' ) { count++; if(count > 1000) { assert(0 && "Do script file " } } int i = 0; while( !feof(mfp) ) { buf[i] = (char)fgetc( mfp ); if( buf[i] == '"' ) { buf[i] = 0; fgetc( mfp ); return buf; } ++i; } } break; } return buf; } */ /* ------------------------------------------------------------------ * ÇÔ¼öÀ̸§ : * ¸ñ Àû : * ÁÖÀÇ»çÇ× : * ------------------------------------------------------------------ */ bool cGameFile::IsEOF() { switch( mMode ) { case eFILE_MODE_TXT: { return feof(mfp)?true:false; } break; case eFILE_MODE_BIN: break; } return TRUE; } /* -------------------------------------------------------------------------- * ÇÔ¼öÀ̸§ : GetLineX * ¸ñ Àû : ÇÑÁÙ ´ÜÀ§·Î ÀÐÀ½(ÁÖ¼® ó¸® ÇÒ¶ó°í) * ÁÖÀÇ»çÇ× : *---------------------------------------------------------------------------*/ void cGameFile::GetLineX(char * pBuf, int len) { switch( mMode ) { case eFILE_MODE_TXT: { fgets(pBuf, len, mfp); } break; case eFILE_MODE_BIN: break; } }