您当前的位置:首页 > IT编程 > C++
| C语言 | Java | VB | VC | python | Android | TensorFlow | C++ | oracle | 学术与代码 | cnn卷积神经网络 | gnn | 图像修复 | Keras | 数据集 | Neo4j | 自然语言处理 | 深度学习 | 医学CAD | 医学影像 | 超参数 | pointnet | pytorch | 异常检测 | Transformers | 情感分类 | 知识图谱 |

自学教程:C++ FS_FOpenFileRead函数代码示例

51自学网 2021-06-01 20:43:36
  C++
这篇教程C++ FS_FOpenFileRead函数代码示例写得很实用,希望能帮到您。

本文整理汇总了C++中FS_FOpenFileRead函数的典型用法代码示例。如果您正苦于以下问题:C++ FS_FOpenFileRead函数的具体用法?C++ FS_FOpenFileRead怎么用?C++ FS_FOpenFileRead使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。

在下文中一共展示了FS_FOpenFileRead函数的28个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。

示例1: FS_FOpenFileRead

/*=================S_CodecUtilOpen=================*/snd_stream_t *S_CodecUtilOpen(const char *filename, snd_codec_t *codec){    snd_stream_t *stream;    fileHandle_t hnd;    int length;    // Try to open the file    length = FS_FOpenFileRead(filename, &hnd, qtrue);    if(!hnd)    {        Com_Printf(_("Can't read sound file %s/n"), filename);        return NULL;    }    // Allocate a stream    stream = Z_Malloc(sizeof(snd_stream_t));    if(!stream)    {        FS_FCloseFile(hnd);        return NULL;    }    // Copy over, return    stream->codec = codec;    stream->file = hnd;    stream->length = length;    return stream;}
开发者ID:ZdrytchX,项目名称:obstacle,代码行数:33,


示例2: SV_TouchFile

/*================SV_TouchFile================*/static void SV_TouchFile( const char *filename ) {	fileHandle_t	f;	FS_FOpenFileRead( filename, &f, qfalse );	if ( f ) {		FS_FCloseFile( f );	}}
开发者ID:MAN-AT-ARMS,项目名称:ioq3,代码行数:13,


示例3: SV_TouchCGame

/*================SV_TouchCGameTouch the cgame.qvm and ui.qvm so that a pure client can load it if it's in a seperate pk3, and so it gets on the download list================*/static void SV_TouchCGame(void) {	fileHandle_t	f;	FS_FOpenFileRead( "vm/cgame.qvm", &f, qfalse );	if ( f ) {		FS_FCloseFile( f );	} else if ( sv_pure->integer ) {		Com_Printf( "WARNING: No cgame.qvm found on pure server/n" );	}	FS_FOpenFileRead( "vm/ui.qvm", &f, qfalse );	if ( f ) {		FS_FCloseFile( f );	} else if ( sv_pure->integer ) {		Com_Printf( "WARNING: No ui.qvm found on pure server/n" );	}}
开发者ID:Amanieu,项目名称:tremfusion,代码行数:24,


示例4: S_FileExists

qboolean S_FileExists(char *fileName) {	fileHandle_t f;	COM_StripExtension(fileName, fileName);	COM_DefaultExtension(fileName, MAX_QPATH, ".wav");	FS_FOpenFileRead(fileName, &f, qtrue);	if (!f) {#ifdef HAVE_LIBMAD		COM_StripExtension(fileName, fileName);		COM_DefaultExtension(fileName, MAX_QPATH, ".mp3");		FS_FOpenFileRead(fileName, &f, qtrue);		if (!f)#endif			return qfalse;	}	FS_FCloseFile(f);	return qtrue;}
开发者ID:entdark,项目名称:q3mme,代码行数:17,


示例5: SV_TouchCGame

/*================SV_TouchCGame  touch cgame so that a pure client can load it if it's in a seperate pk3================*/void SV_TouchCGame( void ){	fileHandle_t f;	FS_FOpenFileRead( "vm/cgame.qvm", &f, qfalse );	if ( f )	{		FS_FCloseFile( f );	}	// LLVM - even if the server doesn't use llvm itself, it should still add the references.	FS_FOpenFileRead( "cgamellvm.bc", &f, qfalse );	if ( f )	{		FS_FCloseFile( f );	}}
开发者ID:SHOVELL,项目名称:Unvanquished,代码行数:26,


示例6: SV_TouchCGame

/*================SV_TouchCGame  touch the cgame.vm so that a pure client can load it if it's in a seperate pk3================*/void SV_TouchCGame(void) {    fileHandle_t	f;    char filename[MAX_QPATH];    Com_sprintf( filename, sizeof(filename), "vm/%s.qvm", "cgame" );    FS_FOpenFileRead( filename, &f, qfalse );    if ( f ) {        FS_FCloseFile( f );    }}
开发者ID:Avatarchik,项目名称:Quake-III-Arena-D3D11,代码行数:17,


示例7: BotLoadOffMeshConnections

void BotLoadOffMeshConnections( const char *filename, NavData_t *nav ){	char mapname[ MAX_QPATH ];	char filePath[ MAX_QPATH ];	fileHandle_t f = 0;	Cvar_VariableStringBuffer( "mapname", mapname, sizeof( mapname ) );	Com_sprintf( filePath, sizeof( filePath ), "maps/%s-%s.navcon", mapname, filename );	FS_FOpenFileRead( filePath, &f, qtrue );	if ( !f )	{		return;	}	OffMeshConnectionHeader header;	FS_Read( &header, sizeof( header ), f );	header.version = LittleLong( header.version );	header.numConnections = LittleLong( header.numConnections );	if ( header.version != NAVMESHCON_VERSION )	{		FS_FCloseFile( f );		return;	}	int conCount = header.numConnections;	if ( conCount > nav->process.con.MAX_CON )	{		FS_FCloseFile( f );		return;	}	nav->process.con.offMeshConCount = conCount;	FS_Read( nav->process.con.verts, sizeof( float ) * 6 * conCount, f );	SwapArray( nav->process.con.verts, conCount * 6 );	FS_Read( nav->process.con.rad, sizeof( float ) * conCount, f );	SwapArray( nav->process.con.rad, conCount );	FS_Read( nav->process.con.flags, sizeof( unsigned short ) * conCount, f );	SwapArray( nav->process.con.flags, conCount );	FS_Read( nav->process.con.areas, sizeof( unsigned char ) * conCount, f );	FS_Read( nav->process.con.dirs, sizeof( unsigned char ) * conCount, f );	FS_Read( nav->process.con.userids, sizeof( unsigned int ) * conCount, f );	SwapArray( nav->process.con.userids, conCount );	FS_FCloseFile( f );}
开发者ID:Gireen,项目名称:Unvanquished,代码行数:54,


示例8: FS_FOpenFileByMode

int	FS_FOpenFileByMode( const char *qpath, fileHandle_t *f, fsMode_t mode ){	FS_CheckInit();	if (mode != FS_READ)	{		Com_Error( ERR_FATAL, "FSH_FOpenFile: bad mode" );		return -1;	}		return FS_FOpenFileRead( qpath, f, qtrue );}
开发者ID:3ddy,项目名称:Jedi-Academy,代码行数:12,


示例9: FS_FOpenFileRead

static openSound_t *S_StreamOpen( const char *fileName, int dataSize ) {	fileHandle_t fileHandle = 0;	int fileSize = 0;	openSound_t *open;	fileSize = FS_FOpenFileRead( fileName, &fileHandle, qtrue );	if ( fileSize <= 0 || fileHandle <= 0)		return 0;	open = Z_Malloc( sizeof( openSound_t ) + dataSize );	open->fileSize = fileSize;	open->fileHandle = fileHandle;	return open;}
开发者ID:entdark,项目名称:q3mme,代码行数:13,


示例10: CL_WalkDemoExt

/*====================CL_WalkDemoExt====================*/static int CL_WalkDemoExt(char *arg, char *name, int *demofile){	int i = 0;	*demofile = 0;	Com_sprintf(name, MAX_OSPATH, "demos/%s.%s%d", arg, DEMOEXT, PROTOCOL_VERSION);	FS_FOpenFileRead(name, demofile, qtrue);	if (*demofile)	{		Com_FuncPrinf("Demo file: %s/n", name);		return PROTOCOL_VERSION;	}	Com_FuncPrinf("Not found: %s/n", name);	while (demo_protocols[i])	{		if (demo_protocols[i] == PROTOCOL_VERSION)		{			continue;		}		Com_sprintf(name, MAX_OSPATH, "demos/%s.%s%d", arg, DEMOEXT, demo_protocols[i]);		FS_FOpenFileRead(name, demofile, qtrue);		if (*demofile)		{			Com_FuncPrinf("Demo file: %s/n", name);			return demo_protocols[i];		}		else		{			Com_FuncPrinf("Not found: %s/n", name);		}		i++;	}	return -1;}
开发者ID:dstaesse,项目名称:etlegacy,代码行数:44,


示例11: dmaHD_LoadSound

qboolean dmaHD_LoadSound(sfx_t *sfx){	byte *data;	snd_info_t info;	char dmahd_soundName[MAX_QPATH];	char *lpext;	// Player specific sounds are never directly loaded.	if (sfx->soundName[0] == '*') return qfalse;	strcpy(dmahd_soundName, sfx->soundName);	if ((lpext = strrchr(sfx->soundName, '.')) != NULL)	{		strcpy(dmahd_soundName, sfx->soundName);		*(strrchr(dmahd_soundName, '.')) = '/0'; // for sure there is a '.'	}	strcat(dmahd_soundName, "_dmahd");	if (lpext != NULL) strcat(dmahd_soundName, lpext);	// Just check if file exists	if (FS_FOpenFileRead(dmahd_soundName, NULL, qtrue) == qtrue)	{		// Load it in.		if (!(data = S_CodecLoad(dmahd_soundName, &info))) return qfalse;	}	else	{		// Load it in.		if (!(data = S_CodecLoad(sfx->soundName, &info))) return qfalse;	}	// Information	Com_DPrintf("Loading sound: %s", sfx->soundName);	if (info.width == 1) Com_DPrintf(" [8 bit -> 16 bit]");	if (info.rate != dma.speed) Com_DPrintf(" [%d Hz -> %d Hz]", info.rate, dma.speed);	Com_DPrintf("/n");	sfx->lastTimeUsed = Com_Milliseconds() + 1;	// Do not compress.	sfx->soundCompressionMethod = 0;	sfx->soundLength = info.samples;	sfx->soundData = NULL;	dmaHD_ResampleSfx(sfx, info.rate, info.width, data + info.dataofs, qfalse);		// Free data allocated by Codec	Z_Free(data);	return qtrue;}
开发者ID:trusteed,项目名称:ioq3-for-UrbanTerror-5,代码行数:50,


示例12: FS_ReadFile

/*============FS_ReadFileFilename are relative to the quake search patha null buffer will just return the file length without loading============*/int FS_ReadFile( const char *qpath, void **buffer ){	FS_CheckInit();		if ( !qpath || !qpath[0] ) {		Com_Error( ERR_FATAL, "FS_ReadFile with empty name/n" );	}	// stop sounds from repeating	S_ClearSoundBuffer();	fileHandle_t h;	int len = FS_FOpenFileRead( qpath, &h, qfalse );	if ( h == 0 )	{		if ( buffer ) *buffer = NULL;		return -1;	}		if ( !buffer )	{		FS_FCloseFile(h);		return len;	}	byte *buf;	// Try to TempAlloc if we've got the hint that this could fail:	if( sbLargeRead )		buf = (byte *)BonePoolTempAlloc( len+1 );	// If that didn't work, or wasn't suggested:	if( !sbLargeRead || !buf )		buf = (byte*)Z_Malloc( len+1, TAG_TEMP_WORKSPACE, qfalse, 32);	buf[len]='/0';//	Z_Label(buf, qpath);	FS_Read(buf, len, h);	// guarantee that it will have a trailing 0 for string operations	buf[len] = 0;	FS_FCloseFile( h );	*buffer = buf;	return len;}
开发者ID:3ddy,项目名称:Jedi-Academy,代码行数:55,


示例13: SV_SetExpectedHunkUsage

/*====================SV_SetExpectedHunkUsage  Sets com_expectedhunkusage, so the client knows how to draw the percentage bar====================*/void SV_SetExpectedHunkUsage( char *mapname ){	int  handle;	const char *memlistfile = "hunkusage.dat";	char *buf;	char *buftrav;	char *token;	int  len;	len = FS_FOpenFileRead( memlistfile, &handle, qfalse );	if ( len >= 0 )	{		// the file exists, so read it in, strip out the current entry for this map, and save it out, so we can append the new value		buf = ( char * ) Z_Malloc( len + 1 );		memset( buf, 0, len + 1 );		FS_Read( ( void * ) buf, len, handle );		FS_FCloseFile( handle );		// now parse the file, filtering out the current map		buftrav = buf;		while ( ( token = COM_Parse( &buftrav ) ) != NULL && token[ 0 ] )		{			if ( !Q_stricmp( token, mapname ) )			{				// found a match				token = COM_Parse( &buftrav );  // read the size				if ( token && token[ 0 ] )				{					// this is the usage					com_expectedhunkusage = atoi( token );					Z_Free( buf );					return;				}			}		}		Z_Free( buf );	}	// just set it to a negative number,so the cgame knows not to draw the percent bar	com_expectedhunkusage = -1;}
开发者ID:prodigeni,项目名称:Unvanquished,代码行数:53,


示例14: SV_TouchCGame

/*================SV_TouchCGame  touch the cgame.vm so that a pure client can load it if it's in a seperate pk3================*/void SV_TouchCGame(void) {	fileHandle_t	f;	char filename[MAX_QPATH];	if (Cvar_VariableValue( "vm_cgame" ))	{		Com_sprintf( filename, sizeof(filename), "vm/%s.qvm", "cgame" );	}	else	{		Com_sprintf( filename, sizeof(filename), "cgamex86.dll" );	}	FS_FOpenFileRead( filename, &f, qfalse );	if ( f ) {		FS_FCloseFile( f );	}}
开发者ID:eezstreet,项目名称:JediKnightGalaxies,代码行数:24,


示例15: CON_Hist_Load

/*==================CON_Hist_Load==================*/void CON_Hist_Load( void ) {	fileHandle_t f;	long len = FS_FOpenFileRead("conhist.log", &f, qtrue);	if (f) {		field_t tf {};		for (long i = 0; i < len; i++) {			char c;			FS_Read(&c, 1, f);			if (c == '/n') {				Hist_Add(&tf);				tf = {};			} else {				tf.buffer[tf.cursor++] = c;			}		}		FS_FCloseFile(f);	}}
开发者ID:cagelight,项目名称:jaownt,代码行数:23,


示例16: FS_FOpenFileRead

/*=================S_WAV_CodecLoad=================*/void *S_WAV_CodecLoad(const char *filename, snd_info_t *info){	fileHandle_t file;	void         *buffer;	// Try to open the file	FS_FOpenFileRead(filename, &file, qtrue);	if (!file)	{		if (com_developer->integer)		{			Com_Printf(S_COLOR_RED "ERROR: Could not open /"%s/"/n", filename);		}		return NULL;	}	// Read the RIFF header	if (!S_ReadRIFFHeader(file, info))	{		FS_FCloseFile(file);		if (com_developer->integer)		{			Com_Printf(S_COLOR_RED "ERROR: Incorrect/unsupported format in /"%s/"/n", filename);		}		return NULL;	}	// Allocate some memory	buffer = Z_Malloc(info->size);	if (!buffer)	{		FS_FCloseFile(file);		Com_Printf(S_COLOR_RED "ERROR: Out of memory reading /"%s/"/n", filename);		return NULL;	}	// Read, byteswap	FS_Read(buffer, info->size, file);	S_ByteSwapRawSamples(info->samples, info->width, info->channels, (byte *)buffer);	// Close and return	FS_FCloseFile(file);	return buffer;}
开发者ID:Classixz,项目名称:etlegacy,代码行数:49,


示例17: LoadJPG

void LoadJPG( const char *filename, unsigned char **pic, int *width, int *height ) {		*pic = NULL;			fileHandle_t	h;	const int len = FS_FOpenFileRead( filename, &h, qfalse );	if(!h)	{		return;	}	//JPEG system reads 4K past input buffer so we tack on an additional 4k.	byte *pJPGData = (byte *)Z_Malloc(len + 4096, TAG_TEMP_WORKSPACE, qfalse);	FS_Read(pJPGData, len, h);	FS_FCloseFile( h );	Decompress_JPG( filename, pJPGData, pic, width, height );	Z_Free (pJPGData);}
开发者ID:CairnTrenor,项目名称:OpenJK,代码行数:19,


示例18: FS_ReadFile

int FS_ReadFile(const char* path, void** buffer){	fileHandle_t handle;	int length = FS_FOpenFileRead(path, &handle, true);	if (length < 0) {		if (buffer)			*buffer = nullptr;		return -1;	}	if (buffer) {		char* buf = new char[length + 1];		*buffer = buf;		FS_Read(buf, length, handle);		buf[length] = '/0';	}	FS_FCloseFile(handle);	return length;}
开发者ID:Keziolio,项目名称:Unvanquished,代码行数:21,


示例19: FS_ReadFile

/*============FS_ReadFileFilename are relative to the quake search patha null buffer will just return the file length without loading============*/int FS_ReadFile( const char *qpath, void **buffer ){	FS_CheckInit();		if ( !qpath || !qpath[0] ) {		Com_Error( ERR_FATAL, "FS_ReadFile with empty name/n" );	}	// stop sounds from repeating	S_ClearSoundBuffer();	fileHandle_t h;	int len = FS_FOpenFileRead( qpath, &h, qfalse );	if ( h == 0 )	{		if ( buffer ) *buffer = NULL;		return -1;	}		if ( !buffer )	{		FS_FCloseFile(h);		return len;	}	// assume temporary....	byte* buf = (byte*)Z_Malloc( len+1, TAG_TEMP_WORKSPACE, qfalse, 32);	buf[len]='/0';//	Z_Label(buf, qpath);	FS_Read(buf, len, h);	// guarantee that it will have a trailing 0 for string operations	buf[len] = 0;	FS_FCloseFile( h );	*buffer = buf;	return len;}
开发者ID:Almightygir,项目名称:OpenJK,代码行数:48,


示例20: LAN_LoadCachedServers

/*====================LAN_LoadCachedServers====================*/void LAN_LoadCachedServers( void ){	int          size;	fileHandle_t fileIn;	char         filename[ MAX_QPATH ];	cls.numglobalservers = cls.numfavoriteservers = 0;	cls.numGlobalServerAddresses = 0;	if ( cl_profile->string[ 0 ] )	{		Com_sprintf( filename, sizeof( filename ), "profiles/%s/servercache.dat", cl_profile->string );	}	else	{		Q_strncpyz( filename, "servercache.dat", sizeof( filename ) );	}	// Arnout: moved to mod/profiles dir	//if (FS_SV_FOpenFileRead(filename, &fileIn)) {	if ( FS_FOpenFileRead( filename, &fileIn, qtrue ) )	{		FS_Read( &cls.numglobalservers, sizeof( int ), fileIn );		FS_Read( &cls.numfavoriteservers, sizeof( int ), fileIn );		FS_Read( &size, sizeof( int ), fileIn );		if ( size == sizeof( cls.globalServers ) + sizeof( cls.favoriteServers ) )		{			FS_Read( &cls.globalServers, sizeof( cls.globalServers ), fileIn );			FS_Read( &cls.favoriteServers, sizeof( cls.favoriteServers ), fileIn );		}		else		{			cls.numglobalservers = cls.numfavoriteservers = 0;			cls.numGlobalServerAddresses = 0;		}		FS_FCloseFile( fileIn );	}}
开发者ID:ghostmod,项目名称:Unvanquished,代码行数:45,


示例21: FS_FOpenFile

/* * Finds the file in the search path. Returns filesize and an open FILE *. Used * for streaming data out of either a pak file or a seperate file. */intFS_FOpenFile(const char *name, fileHandle_t *f, fsMode_t mode){	int size = 0;	fsHandle_t *handle;	handle = FS_HandleForFile(name, f);	Q_strlcpy(handle->name, name, sizeof(handle->name));	handle->mode = mode;	switch (mode)	{		case FS_READ:			size = FS_FOpenFileRead(handle);			break;		case FS_WRITE:			size = FS_FOpenFileWrite(handle);			break;		case FS_APPEND:			size = FS_FOpenFileAppend(handle);			break;		default:			Com_Error(ERR_FATAL, "FS_FOpenFile: bad mode (%i)", mode);			break;	}	if (size != -1)	{		return size;	}	/* Couldn't open, so free the handle. */	memset(handle, 0, sizeof(*handle));	*f = 0;	return -1;}
开发者ID:Jenco420,项目名称:yquake2,代码行数:42,


示例22: S_FileExists

qboolean S_FileExists(char *fileName) {	char *voice = strstr(fileName,"chars");	fileHandle_t f;	int i;	if (voice && s_language) {		if (stricmp("DEUTSCH",s_language->string)==0) {							strncpy(voice,"chr_d",5);	// same number of letters as "chars"		} else if (stricmp("FRANCAIS",s_language->string)==0) {							strncpy(voice,"chr_f",5);	// same number of letters as "chars"		} else if (stricmp("ESPANOL",s_language->string)==0) {							strncpy(voice,"chr_e",5);	// same number of letters as "chars"		} else {			voice = NULL;	// use this ptr as a flag as to whether or not we substituted with a foreign version		}	}tryDefaultLanguage:	i = 0;	while (ext[i]) {		COM_StripExtension(fileName, fileName, MAX_QPATH);		COM_DefaultExtension(fileName, MAX_QPATH, ext[i]);		FS_FOpenFileRead(fileName, &f, qtrue);		if (f)			break;		i++;	}	/* switch back to english (default) and try again */	if (!f && voice) {		strncpy(voice, "chars", 5);		voice = NULL;		goto tryDefaultLanguage;	}	if (!f)		return qfalse;	FS_FCloseFile(f);	return qtrue;}
开发者ID:entdark,项目名称:jaMME,代码行数:36,


示例23: LAN_LoadCachedServers

/** * @brief LAN_LoadCachedServers */void LAN_LoadCachedServers(void){    int32_t      size;    fileHandle_t fileIn;    char         filename[MAX_QPATH];    cls.numglobalservers         = cls.numfavoriteservers = 0;    cls.numGlobalServerAddresses = 0;    if (cl_profile->string[0])    {        Com_sprintf(filename, sizeof(filename), "profiles/%s/favcache.dat", cl_profile->string);    }    else    {        Q_strncpyz(filename, "favcache.dat", sizeof(filename));    }    // moved to mod/profiles dir    if (FS_FOpenFileRead(filename, &fileIn, qtrue))    {        FS_Read(&cls.numfavoriteservers, sizeof(int32_t), fileIn);        FS_Read(&size, sizeof(int32_t), fileIn);        if (size == sizeof(cls.favoriteServers))        {            FS_Read(&cls.favoriteServers, sizeof(cls.favoriteServers), fileIn);        }        else        {            cls.numfavoriteservers = 0;        }        FS_FCloseFile(fileIn);    }    Com_Printf("Total favourite servers restored: %i/n", cls.numfavoriteservers);}
开发者ID:etlegacy,项目名称:etlegacy,代码行数:39,


示例24: demoCut

qboolean demoCut(const char *oldName, int startTime, int endTime) {	fileHandle_t	oldHandle = 0;	fileHandle_t	newHandle = 0;	msg_t			oldMsg;	byte			oldData[MAX_MSGLEN];	int				oldSize;	char			newName[MAX_OSPATH];	int				buf;	int				readGamestate = 0;	int				i;	demoPlay_t		*play = demo.play.handle;	qboolean		ret = qfalse;	int				framesSaved = 0;	char			newGameDir[MAX_QPATH];	char			next;	char			*ext;	if (!play) {		Com_Printf("Demo cutting is allowed in mme mode only./n");		return qfalse;	}	startTime += play->startTime;	endTime += play->startTime;	ext = Cvar_FindVar("mme_demoExt")->string;	if (!*ext)		ext = ".dm_26";	oldSize = FS_FOpenFileRead(va("demos/%s%s", oldName, ext), &oldHandle, qtrue);	if (!oldHandle) {		Com_Printf("Failed to open %s for cutting./n", oldName);		return qfalse;	}	memset(&demo.cut.Clc, 0, sizeof(demo.cut.Clc));	Com_SetLoadingMsg("Cutting the demo...");	while (oldSize > 0) {cutcontinue:		MSG_Init(&oldMsg, oldData, sizeof(oldData));		/* Read the sequence number */		if (FS_Read(&demo.cut.Clc.serverMessageSequence, 4, oldHandle) != 4)			goto cuterror;		demo.cut.Clc.serverMessageSequence = LittleLong(demo.cut.Clc.serverMessageSequence);		oldSize -= 4;		/* Read the message size */		if (FS_Read(&oldMsg.cursize,4, oldHandle) != 4)			goto cuterror;		oldMsg.cursize = LittleLong(oldMsg.cursize);		oldSize -= 4;		/* Negative size signals end of demo */		if (oldMsg.cursize < 0)			break;		if (oldMsg.cursize > oldMsg.maxsize) 			goto cuterror;		/* Read the actual message */		if (FS_Read(oldMsg.data, oldMsg.cursize, oldHandle) != oldMsg.cursize)			goto cuterror;		oldSize -= oldMsg.cursize;		// init the bitstream		MSG_BeginReading(&oldMsg);		// Skip the reliable sequence acknowledge number		MSG_ReadLong(&oldMsg);		//		// parse the message		//		while (1) {			byte cmd;			if (oldMsg.readcount > oldMsg.cursize) {				Com_Printf("Demo cutter, read past end of server message./n");				goto cuterror;			}            cmd = MSG_ReadByte(&oldMsg);			if (cmd == svc_EOF) {                break;			}			// skip all the gamestates until we reach needed			if (readGamestate < demo.currentNum) {				if (cmd == svc_gamestate) {					readGamestate++;				}				goto cutcontinue;			}			// other commands			switch (cmd) {			default:				Com_Printf(S_COLOR_RED"ERROR: CL_ParseServerMessage: Illegible server message/n");				goto cuterror;					case svc_nop:				break;			case svc_serverCommand:				demoCutParseCommandString(&oldMsg, &demo.cut.Clc);				break;			case svc_gamestate:				if (readGamestate > demo.currentNum) {					Com_Printf("Warning: unexpected new gamestate, finishing cutting./n");					goto cutcomplete;				}				if (!demoCutParseGamestate(&oldMsg, &demo.cut.Clc, &demo.cut.Cl)) {					goto cuterror;				}				Com_sprintf(newName, sizeof(newName), "demos/%s_cut%s", oldName, ext);				newHandle = FS_FOpenFileWrite(newName);				if (!newHandle) {					Com_Printf("Failed to open %s for target cutting./n", newName);//.........这里部分代码省略.........
开发者ID:deathsythe47,项目名称:jaMME,代码行数:101,


示例25: BotLoadNavMesh

bool BotLoadNavMesh( const char *filename, NavData_t &nav ){	char mapname[ MAX_QPATH ];	char filePath[ MAX_QPATH ];	char gameName[ MAX_STRING_CHARS ];	fileHandle_t f = 0;	BotLoadOffMeshConnections( filename, &nav );	Cvar_VariableStringBuffer( "mapname", mapname, sizeof( mapname ) );	Cvar_VariableStringBuffer( "fs_game", gameName, sizeof( gameName ) );	Com_sprintf( filePath, sizeof( filePath ), "maps/%s-%s.navMesh", mapname, filename );	Com_Printf( " loading navigation mesh file '%s'.../n", filePath );	int len = FS_FOpenFileRead( filePath, &f, qtrue );	if ( !f )	{		Com_Printf( S_COLOR_RED "ERROR: Cannot open Navigaton Mesh file/n" );		return false;	}	if ( len < 0 )	{		Com_Printf( S_COLOR_RED "ERROR: Negative Length for Navigation Mesh file/n" );		return false;	}	NavMeshSetHeader header;		FS_Read( &header, sizeof( header ), f );	SwapNavMeshSetHeader( header );	if ( header.magic != NAVMESHSET_MAGIC )	{		Com_Printf( S_COLOR_RED "ERROR: File is wrong magic/n" );		FS_FCloseFile( f );		return false;	}	if ( header.version != NAVMESHSET_VERSION )	{		Com_Printf( S_COLOR_RED "ERROR: File is wrong version found: %d want: %d/n", header.version, NAVMESHSET_VERSION );		FS_FCloseFile( f );		return false;	}	nav.mesh = dtAllocNavMesh();	if ( !nav.mesh )	{		Com_Printf( S_COLOR_RED "ERROR: Unable to allocate nav mesh/n" );		FS_FCloseFile( f );		return false;	}	dtStatus status = nav.mesh->init( &header.params );	if ( dtStatusFailed( status ) )	{		Com_Printf( S_COLOR_RED "ERROR: Could not init navmesh/n" );		dtFreeNavMesh( nav.mesh );		nav.mesh = NULL;		FS_FCloseFile( f );		return false;	}	nav.cache = dtAllocTileCache();	if ( !nav.cache )	{		Com_Printf( S_COLOR_RED "ERROR: Could not allocate tile cache/n" );		dtFreeNavMesh( nav.mesh );		nav.mesh = NULL;		FS_FCloseFile( f );		return false;	}	status = nav.cache->init( &header.cacheParams, &alloc, &comp, &nav.process );	if ( dtStatusFailed( status ) )	{		Com_Printf( S_COLOR_RED "ERROR: Could not init tile cache/n" );		dtFreeNavMesh( nav.mesh );		dtFreeTileCache( nav.cache );		nav.mesh = NULL;		nav.cache = NULL;		FS_FCloseFile( f );		return false;	}	for ( int i = 0; i < header.numTiles; i++ )	{		NavMeshTileHeader tileHeader;		FS_Read( &tileHeader, sizeof( tileHeader ), f );		SwapNavMeshTileHeader( tileHeader );//.........这里部分代码省略.........
开发者ID:Gireen,项目名称:Unvanquished,代码行数:101,


示例26: Open

 Rocket::Core::FileHandle Open(const Rocket::Core::String& filePath) {     fileHandle_t fileHandle;     FS_FOpenFileRead(filePath.CString(), &fileHandle, false);     return (Rocket::Core::FileHandle) fileHandle; }
开发者ID:Kangz,项目名称:Unvanquished,代码行数:5,


示例27: Rocket_QuakeToRML

Rocket::Core::String Rocket_QuakeToRML(const char* in, int parseFlags = 0) {    const char* p;    Rocket::Core::String out;    Rocket::Core::String spanstr;    bool span = false;    bool spanHasContent = false;    if (!*in) {        return "";    }    for (p = in; p && *p; ++p) {        if (*p == '<') {            if (span && !spanHasContent) {                spanHasContent = true;                out.Append(spanstr);            }            out.Append("&lt;");        } else if (*p == '>') {            if (span && !spanHasContent) {                spanHasContent = true;                out.Append(spanstr);            }            out.Append("&gt;");        } else if (*p == '&') {            if (span && !spanHasContent) {                spanHasContent = true;                out.Append(spanstr);            }            out.Append("&amp;");        } else if (*p == '/n') {            out.Append(span && spanHasContent ? "</span><br />" : "<br />");            span = false;            spanHasContent = false;        } else if (Q_IsColorString(p)) {            if (span && spanHasContent) {                out.Append("</span>");                span = false;                spanHasContent = false;            }            char rgb[32];            int code = ColorIndex(*++p);            Com_sprintf(rgb, sizeof(rgb), "<span style='color: #%02X%02X%02X;'>", (int) (g_color_table[code][0] * 255), (int) (g_color_table[code][1] * 255), (int) (g_color_table[code][2] * 255));            // don't add the span yet, because it might be empty            spanstr = rgb;            span = true;            spanHasContent = false;        } else {            if (span && !spanHasContent) {                out.Append(spanstr);                spanHasContent = true;            }            out.Append(*p);        }    }    if (span && spanHasContent) {        out.Append("</span>");    }    // ^^ -> ^    while (out.Find("^^") != Rocket::Core::String::npos) {        out = out.Replace("^^", "^");    }    if (parseFlags & RP_EMOTICONS) {        // Parse emoticons        size_t openBracket = 0;        size_t closeBracket = 0;        size_t currentPosition = 0;        while (1) {            Rocket::Core::String emoticon;            const char* path;            openBracket = out.Find("[", currentPosition);            if (openBracket == Rocket::Core::String::npos) {                break;            }            closeBracket = out.Find("]", openBracket);            if (closeBracket == Rocket::Core::String::npos) {                break;            }            emoticon = out.Substring(openBracket + 1, closeBracket - openBracket - 1);            // Certain characters are invalid            if (emoticon.Empty() || IsInvalidEmoticon(emoticon)) {                currentPosition = closeBracket + 1;                continue;            }            // TODO: Dont hardcode the extension.            path = va("emoticons/%s.crn", emoticon.CString());            if (FS_FOpenFileRead(path, nullptr, true)) {//.........这里部分代码省略.........
开发者ID:Kangz,项目名称:Unvanquished,代码行数:101,


示例28: S_StartBackgroundTrack

/*======================S_StartBackgroundTrack======================*/void S_StartBackgroundTrack( const char *intro, const char *loop ){	int		len;	char	dump[16];	char	name[MAX_QPATH];	if ( !intro ) {		intro = "";	}	if ( !loop || !loop[0] ) {		loop = intro;	}	Com_DPrintf( "S_StartBackgroundTrack( %s, %s )/n", intro, loop );	Q_strncpyz( name, intro, sizeof( name ) - 4 );	COM_DefaultExtension( name, sizeof( name ), ".wav" );	if ( !intro[0] ) {		return;	}	Q_strncpyz( s_backgroundLoop, loop, sizeof( s_backgroundLoop ) );	// close the background track, but DON'T reset s_rawend	// if restarting the same back ground track	if ( s_backgroundFile ) {		Sys_EndStreamedFile( s_backgroundFile );		FS_FCloseFile( s_backgroundFile );		s_backgroundFile = 0;	}	//	// open up a wav file and get all the info	//	FS_FOpenFileRead( name, &s_backgroundFile, qtrue );	if ( !s_backgroundFile ) {		Com_Printf( S_COLOR_YELLOW "WARNING: couldn't open music file %s/n", name );		return;	}	// skip the riff wav header	FS_Read(dump, 12, s_backgroundFile);	if ( !S_FindWavChunk( s_backgroundFile, "fmt " ) ) {		Com_Printf( "No fmt chunk in %s/n", name );		FS_FCloseFile( s_backgroundFile );		s_backgroundFile = 0;		return;	}	// save name for soundinfo	s_backgroundInfo.format = FGetLittleShort( s_backgroundFile );	s_backgroundInfo.channels = FGetLittleShort( s_backgroundFile );	s_backgroundInfo.rate = FGetLittleLong( s_backgroundFile );	FGetLittleLong(  s_backgroundFile );	FGetLittleShort(  s_backgroundFile );	s_backgroundInfo.width = FGetLittleShort( s_backgroundFile ) / 8;	if ( s_backgroundInfo.format != WAV_FORMAT_PCM ) {		FS_FCloseFile( s_backgroundFile );		s_backgroundFile = 0;		Com_Printf("Not a microsoft PCM format wav: %s/n", name);		return;	}	if ( s_backgroundInfo.channels != 2 || s_backgroundInfo.rate != 22050 ) {		Com_Printf(S_COLOR_YELLOW "WARNING: music file %s is not 22k stereo/n", name );	}	if ( ( len = S_FindWavChunk( s_backgroundFile, "data" ) ) == 0 ) {		FS_FCloseFile( s_backgroundFile );		s_backgroundFile = 0;		Com_Printf("No data chunk in %s/n", name);		return;	}	s_backgroundInfo.samples = len / (s_backgroundInfo.width * s_backgroundInfo.channels);	s_backgroundSamples = s_backgroundInfo.samples;	//	// start the background streaming	//	Sys_BeginStreamedFile( s_backgroundFile, 0x10000 );}
开发者ID:Izhido,项目名称:qrevpak,代码行数:90,



注:本文中的FS_FOpenFileRead函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


C++ FS_FOpenFileWrite函数代码示例
C++ FS_FOpenFileByMode函数代码示例
万事OK自学网:51自学网_软件自学网_CAD自学网自学excel、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。