Пример #1
0
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;
}
Пример #2
0
int D3DM_TermDevices(void)
{
	D3DD_ResetAll();
	GFree(D3DCapsStruct.m_DisplayMode);

	RELEASE_3D(pD3DDevice);
	RELEASE_3D(pD3D);

	return TRUE;
}
Пример #3
0
// 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;
  }
Пример #4
0
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;
}
Пример #5
0
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;
}
Пример #6
0
// 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;
   }
 }
Пример #7
0
// ---------------------------------------------------------------------------
//	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;
}
Пример #8
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;
}
Пример #9
0
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;
}