int TXT_GetTextCountEnter( char *str ) { char *buf = (char*)GAlloc( strlen(str)+1 ), *ptr; int i=0,j=0; int count,ret=0,space=0; while( str[i]!='\0' ){ j=0; space=0; ptr = buf+i; while( str[i]!='\0' && str[i]!='\n' && !(str[i]=='\\'&&str[i+1]=='n') ){ if( ('!'<=str[i] && str[i]<='~') || ('�'<=str[i] && str[i]<='�') ){ i++; }else if( ' '==str[i] ){ i++; space++; }else{ ptr[j++] = str[i++]; ptr[j++] = str[i++]; } } if(str[i]=='\\'&&str[i+1]=='n') i++; if(str[i]!='\0') i++; ptr[j] = '\0'; count = TXT_DrawTextEx( NULL, 0, 0, 0, 256, 256, 0, 0, NULL, NULL, NULL, 20, ptr, 0, -1, -1, 128, 128, 128, 256, 0, 1 )*2+space; if(count>ret) ret=count; } GFree(buf); return ret; }
int D3DM_TermDevices(void) { D3DD_ResetAll(); GFree(D3DCapsStruct.m_DisplayMode); RELEASE_3D(pD3DDevice); RELEASE_3D(pD3D); return TRUE; }
// Resize memory bool GRealloc(pointer* ptr,unsigned long size){ GASSERT(ptr); if (size==0) { GFree(ptr); return true; } void *p=realloc(*ptr,size); if (p) { *ptr=p; return true; } return false; }
BOOL TermSaerchFile( SEARCH_DIR_DATA *sdd ) { WIN32_FIND_DATA_LIST *list; if( sdd==NULL ) return FALSE; list = sdd->list; while( list ){ FindClose( list->handle ); GFree( list ); list = (WIN32_FIND_DATA_LIST*)list->next; } ZeroMemory( sdd, sizeof(SEARCH_DIR_DATA) ); return TRUE; }
BOOL PAC_PackFileMovie_Close( int move_no ) { if(MoveInfo[move_no].buf){ GFree( MoveInfo[move_no].buf ); } if(MoveInfo[move_no].fh){ if( CloseHandle( MoveInfo[move_no].fh ) ){ MoveInfo[move_no].fh = NULL; }else{ DebugBox( NULL,"動画ファイルが閉じません"); } } ZeroMemory( &MoveInfo[move_no], sizeof(MOVE_INFO) ); MoveInfo[move_no].r = 128; MoveInfo[move_no].g = 128; MoveInfo[move_no].b = 128; return TRUE; }
// Resize memory bool GRealloc(pointer* ptr,unsigned long size){ //GASSERT(ptr); if (size==0) { GFree(ptr); return true; } if (*ptr==NULL) {//simple malloc void *p=malloc(size); if (p != NULL) { *ptr=p; return true; } else return false; }//malloc else {//realloc void *p=realloc(*ptr,size); if (p) { *ptr=p; return true; } return false; } }
// --------------------------------------------------------------------------- // iniファイルから文字を読み取る // --------------------------------------------------------------------------- int ReadIniFileStr( char *vname, char *str, char *def, int size, char *sec_name, char *ini_fname ) { char *buf = (char*)GAlloc( size+1 ); // char *buf = (char*)GAlloc( size ); if( ini_fname==NULL){ if(IniFileName[0]==0){ ini_fname = "default.ini"; }else{ ini_fname = IniFileName; } } GetPrivateProfileString( sec_name, vname, def, buf, size, ini_fname ); if( _mbscmp( (BYTE*)def, (BYTE*)buf ) ){ _mbscpy( (BYTE*)str, (BYTE*)buf+1 ); }else{ _mbscpy( (BYTE*)str, (BYTE*)buf ); } // _mbscpy( (BYTE*)str, (BYTE*)buf ); GFree(buf); return 0; }
int PAC_PackFileMovie_Open( char *PackFname ) { int i; int size; for(i=0;i<32;i++){ if(!MoveInfo[i].fh) break; } if(i==32) return -1; PAC_PackFileMovie_Close( i ); MoveInfo[i].fh = CREATE_READ_FILE2( PackFname, FILE_ATTRIBUTE_NORMAL|FILE_FLAG_SEQUENTIAL_SCAN ); if( MoveInfo[i].fh==INVALID_HANDLE_VALUE ){ MoveInfo[i].fh=NULL; return -2; } ReadFile( MoveInfo[i].fh, &MoveInfo[i].bmi, sizeof(BMP_MOVE_INFO), (unsigned long *)&size, NULL); ReadFile( MoveInfo[i].fh, MoveInfo[i].next_size, sizeof(DWORD)*2, (unsigned long *)&size, NULL); GFree( MoveInfo[i].buf ); MoveInfo[i].buf = (char *)GAlloc( MoveInfo[i].bmi.sx*MoveInfo[i].bmi.sy + 1024 + 8 ); MoveInfo[i].db_buf = 0; MoveInfo[i].count = 0; MoveInfo[i].start_time = 0; MoveInfo[i].cond = MOVE_COND_STOP; MoveInfo[i].loop = 1; MoveInfo[i].r = 128; MoveInfo[i].g = 128; MoveInfo[i].b = 128; return i; }
static BOOL SaerchNextFile2( char *src_dir, WIN32_FIND_DATA_LIST **list, SEARCH_DIR_DATA *sdd ) { char src_buf[1024]; if(*list==NULL){ *list = (WIN32_FIND_DATA_LIST *)GAlloc( sizeof(WIN32_FIND_DATA_LIST) ); if(sdd->subdir_chk){ (*list)->step = SEARCH_FILE_INIT; }else{ (*list)->step = SEARCH_FILE_INIT; } } while( *list ){ switch( (*list)->step ){ case SEARCH_DIR_INIT: wsprintf( src_buf, "%s%s", src_dir, "*" ); (*list)->handle = FindFirstFile( src_buf, &(*list)->data ); if( (*list)->handle == INVALID_HANDLE_VALUE ){ GFree( *list ); return FALSE; } FindNextFile( (*list)->handle, &(*list)->data ); (*list)->step = SEARCH_DIR; case SEARCH_DIR: if( (*list)->next==NULL ){ (*list)->fnf_ret = FindNextFile( (*list)->handle, &(*list)->data ); } if( (*list)->fnf_ret ){ if( (*list)->data.dwFileAttributes==FILE_ATTRIBUTE_DIRECTORY ){ wsprintf( src_buf, "%s%s\\", src_dir, (*list)->data.cFileName ); if( SaerchNextFile2( src_buf, (WIN32_FIND_DATA_LIST**)&(*list)->next, sdd ) ){ return TRUE; } } }else{ // FindClose( (*list)->handle ); // (*list)->step = SEARCH_FILE_INIT; GFree( *list ); return FALSE; } break; case SEARCH_FILE_INIT://直下ファイルを検索 wsprintf( src_buf, "%s%s", src_dir, sdd->file );//ファイルを検出 (*list)->handle = FindFirstFile( src_buf, &(*list)->data ); if( (*list)->handle == INVALID_HANDLE_VALUE ){ if(sdd->subdir_chk){ (*list)->step = SEARCH_DIR_INIT; }else{ GFree( *list ); } }else{ (*list)->step = SEARCH_FILE; if( (*list)->data.dwFileAttributes!=FILE_ATTRIBUTE_DIRECTORY ){//ファイル検出 strcpy( sdd->find_dir, src_dir + strlen(sdd->dir) ); sdd->find_data = (*list)->data; return TRUE; } } break; case SEARCH_FILE: (*list)->fnf_ret = FindNextFile( (*list)->handle, &(*list)->data ); if( (*list)->fnf_ret ){ if( (*list)->data.dwFileAttributes!=FILE_ATTRIBUTE_DIRECTORY ){//ファイル検出 strcpy( sdd->find_dir, src_dir + strlen(sdd->dir) ); sdd->find_data = (*list)->data; return TRUE; } }else{//ディレクトリ検索終了 FindClose( (*list)->handle ); if(sdd->subdir_chk){ (*list)->step = SEARCH_DIR_INIT; }else{ GFree( *list ); } } break; } } return FALSE; }