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

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

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

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

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

示例1: RE_BeginFrame

/*====================RE_BeginFrameIf running in stereo, RE_BeginFrame will be called twicefor each RE_EndFrame====================*/void RE_BeginFrame( stereoFrame_t stereoFrame ) {	drawBufferCommand_t	*cmd;	if ( !tr.registered ) {		return;	}	glState.finishCalled = qfalse;	tr.frameCount++;	tr.frameSceneNum = 0;	//	// do overdraw measurement	//	if ( r_measureOverdraw->integer )	{		if ( glConfig.stencilBits < 4 )		{			Com_Printf ("Warning: not enough stencil bits to measure overdraw: %d/n", glConfig.stencilBits );			ri.Cvar_Set( "r_measureOverdraw", "0" );			r_measureOverdraw->modified = qfalse;		}		else if ( r_shadows->integer == 2 )		{			Com_Printf ("Warning: stencil shadows and overdraw measurement are mutually exclusive/n" );			ri.Cvar_Set( "r_measureOverdraw", "0" );			r_measureOverdraw->modified = qfalse;		}		else		{			R_SyncRenderThread();			qglEnable( GL_STENCIL_TEST );			qglStencilMask( ~0U );			qglClearStencil( 0U );			qglStencilFunc( GL_ALWAYS, 0U, ~0U );			qglStencilOp( GL_KEEP, GL_INCR, GL_INCR );		}		r_measureOverdraw->modified = qfalse;	}	else	{		// this is only reached if it was on and is now off		if ( r_measureOverdraw->modified ) {			R_SyncRenderThread();			qglDisable( GL_STENCIL_TEST );		}		r_measureOverdraw->modified = qfalse;	}	//	// texturemode stuff	//	if ( r_textureMode->modified || r_ext_texture_filter_anisotropic->modified) {		R_SyncRenderThread();		GL_TextureMode( r_textureMode->string );		r_textureMode->modified = qfalse;		r_ext_texture_filter_anisotropic->modified = qfalse;	}	//	// gamma stuff	//	if ( r_gamma->modified ) {		r_gamma->modified = qfalse;		R_SyncRenderThread();		R_SetColorMappings();	}    // check for errors    if ( !r_ignoreGLErrors->integer ) {        int	err;		R_SyncRenderThread();        if ( ( err = qglGetError() ) != GL_NO_ERROR ) {            Com_Error( ERR_FATAL, "RE_BeginFrame() - glGetError() failed (0x%x)!/n", err );        }    }	//	// draw buffer stuff	//	cmd = (drawBufferCommand_t *) R_GetCommandBuffer( sizeof( *cmd ) );	if ( !cmd ) {		return;	}	cmd->commandId = RC_DRAW_BUFFER;	if ( glConfig.stereoEnabled ) {		if ( stereoFrame == STEREO_LEFT ) {			cmd->buffer = (int)GL_BACK_LEFT;		} else if ( stereoFrame == STEREO_RIGHT ) {//.........这里部分代码省略.........
开发者ID:Ichimoto,项目名称:OpenJK,代码行数:101,


示例2: BG_SiegeGetPairedValue

int BG_SiegeGetPairedValue(char *buf, char *key, char *outbuf){	int i = 0;	int j;	int k;	char checkKey[4096];	while (buf[i])	{		if (buf[i] != ' ' && buf[i] != '{' && buf[i] != '}' && buf[i] != '/n' && buf[i] != '/r')		{ //we're on a valid character			if (buf[i] == '/' &&				buf[i+1] == '/')			{ //this is a comment, so skip over it				while (buf[i] && buf[i] != '/n' && buf[i] != '/r')				{					i++;				}			}			else			{ //parse to the next space/endline/eos and check this value against our key value.				j = 0;				while (buf[i] != ' ' && buf[i] != '/n' && buf[i] != '/r' && buf[i] != SIEGECHAR_TAB && buf[i])				{					if (buf[i] == '/' && buf[i+1] == '/')					{ //hit a comment, break out.						break;					}					checkKey[j] = buf[i];					j++;					i++;				}				checkKey[j] = 0;				k = i;				while (buf[k] && (buf[k] == ' ' || buf[k] == '/n' || buf[k] == '/r'))				{					k++;				}				if (buf[k] == '{')				{ //this is not the start of a value but rather of a group. We don't want to look in subgroups so skip over the whole thing.					int openB = 0;					while (buf[i] && (buf[i] != '}' || openB))					{						if (buf[i] == '{')						{							openB++;						}						else if (buf[i] == '}')						{							openB--;						}						if (openB < 0)						{							Com_Error(ERR_DROP, "Unexpected closing bracket (too many) while parsing to end of group '%s'", checkKey);						}						if (buf[i] == '}' && !openB)						{ //this is the end of the group							break;						}						i++;					}					if (buf[i] == '}')					{						i++;					}				}				else				{					//Is this the one we want?					if (buf[i] != '/' || buf[i+1] != '/')					{ //make sure we didn't stop on a comment, if we did then this is considered an error in the file.						if (!Q_stricmp(checkKey, key))						{ //guess so. Parse along to the next valid character, then put that into the output buffer and return 1.							while ((buf[i] == ' ' || buf[i] == '/n' || buf[i] == '/r' || buf[i] == SIEGECHAR_TAB) && buf[i])							{								i++;							}							if (buf[i])							{ //We're at the start of the value now.								qboolean parseToQuote = qfalse;								if (buf[i] == '/"')								{ //if the value is in quotes, then stop at the next quote instead of ' '									i++;									parseToQuote = qtrue;								}								j = 0;								while ( ((!parseToQuote && buf[i] != ' ' && buf[i] != '/n' && buf[i] != '/r') || (parseToQuote && buf[i] != '/"')) )								{//.........这里部分代码省略.........
开发者ID:BSzili,项目名称:OpenJK,代码行数:101,


示例3: ClipSkyPolygon

/*================ClipSkyPolygon================*/static void ClipSkyPolygon (int nump, vec3_t vecs, int stage) {	float	*norm;	float	*v;	qboolean	front, back;	float	d, e;	float	dists[MAX_CLIP_VERTS];	int		sides[MAX_CLIP_VERTS];	vec3_t	newv[2][MAX_CLIP_VERTS];	int		newc[2];	int		i, j;	if (nump > MAX_CLIP_VERTS-2)		Com_Error (ERR_DROP, "ClipSkyPolygon: MAX_CLIP_VERTS");	if (stage == 6)	{	// fully clipped, so draw it		AddSkyPolygon (nump, vecs);		return;	}	front = back = qfalse;	norm = sky_clip[stage];	for (i=0, v = vecs ; i<nump ; i++, v+=3)	{		d = DotProduct (v, norm);		if (d > ON_EPSILON)		{			front = qtrue;			sides[i] = SIDE_FRONT;		}		else if (d < -ON_EPSILON)		{			back = qtrue;			sides[i] = SIDE_BACK;		}		else			sides[i] = SIDE_ON;		dists[i] = d;	}	if (!front || !back)	{	// not clipped		ClipSkyPolygon (nump, vecs, stage+1);		return;	}	// clip it	sides[i] = sides[0];	dists[i] = dists[0];	VectorCopy (vecs, (vecs+(i*3)) );	newc[0] = newc[1] = 0;	for (i=0, v = vecs ; i<nump ; i++, v+=3)	{		switch (sides[i])		{		case SIDE_FRONT:			VectorCopy (v, newv[0][newc[0]]);			newc[0]++;			break;		case SIDE_BACK:			VectorCopy (v, newv[1][newc[1]]);			newc[1]++;			break;		case SIDE_ON:			VectorCopy (v, newv[0][newc[0]]);			newc[0]++;			VectorCopy (v, newv[1][newc[1]]);			newc[1]++;			break;		}		if (sides[i] == SIDE_ON || sides[i+1] == SIDE_ON || sides[i+1] == sides[i])			continue;		d = dists[i] / (dists[i] - dists[i+1]);		for (j=0 ; j<3 ; j++)		{			e = v[j] + d*(v[j+3] - v[j]);			newv[0][newc[0]][j] = e;			newv[1][newc[1]][j] = e;		}		newc[0]++;		newc[1]++;	}	// continue	ClipSkyPolygon (newc[0], newv[0][0], stage+1);	ClipSkyPolygon (newc[1], newv[1][0], stage+1);}
开发者ID:3ddy,项目名称:Jedi-Academy,代码行数:95,


示例4: VID_LoadRefresh

/*==============VID_LoadRefresh==============*/qboolean VID_LoadRefresh( char *name ){	refimport_t	ri;#ifndef REF_HARD_LINKED	GetRefAPI_t	GetRefAPI;#endif		if ( reflib_active )	{		re.Shutdown();		VID_FreeReflib ();	}	Com_Printf( "------- Loading %s -------/n", name );#ifndef REF_HARD_LINKED	if ( ( reflib_library = LoadLibrary( name ) ) == NULL )	{		Com_Printf( "LoadLibrary(/"%s/") failed/n", name );		return false;	}#endif	ri.Cmd_AddCommand = Cmd_AddCommand;	ri.Cmd_RemoveCommand = Cmd_RemoveCommand;	ri.Cmd_Argc = Cmd_Argc;	ri.Cmd_Argv = Cmd_Argv;	ri.Cmd_ExecuteText = Cbuf_ExecuteText;	ri.Con_Printf = VID_Printf;	ri.Sys_Error = VID_Error;	ri.FS_LoadFile = FS_LoadFile;	ri.FS_FreeFile = FS_FreeFile;	ri.FS_Gamedir = FS_Gamedir;	ri.Cvar_Get = Cvar_Get;	ri.Cvar_Set = Cvar_Set;	ri.Cvar_SetValue = Cvar_SetValue;	ri.Vid_GetModeInfo = VID_GetModeInfo;	ri.Vid_MenuInit = VID_MenuInit;	ri.Vid_NewWindow = VID_NewWindow;#ifndef REF_HARD_LINKED	if ( ( GetRefAPI = (void *) GetProcAddress( reflib_library, "GetRefAPI" ) ) == NULL )		Com_Error( ERR_FATAL, "GetProcAddress failed on %s", name );#endif	re = GetRefAPI( ri );	if (re.api_version != API_VERSION)	{		VID_FreeReflib ();		Com_Error (ERR_FATAL, "%s has incompatible api_version", name);	}	if ( re.Init( global_hInstance, MainWndProc ) == -1 )	{		re.Shutdown();		VID_FreeReflib ();		return false;	}	Com_Printf( "------------------------------------/n");	reflib_active = true;//======//PGM	vidref_val = VIDREF_OTHER;	if(vid_ref)	{		if(!strcmp (vid_ref->string, "gl"))			vidref_val = VIDREF_GL;		else if(!strcmp(vid_ref->string, "soft"))			vidref_val = VIDREF_SOFT;	}//PGM//======	return true;}
开发者ID:basecq,项目名称:q2dos,代码行数:83,


示例5: BG_SiegeParseTeamFile

void BG_SiegeParseTeamFile(const char *filename){	fileHandle_t f;	int len;	char teamInfo[2048];	char parseBuf[1024];	char lookString[256];	int i = 1;	qboolean success = qtrue;	len = trap->FS_Open(filename, &f, FS_READ);	if (!f || len >= 2048)	{		return;	}	trap->FS_Read( teamInfo, len, f );	trap->FS_Close( f );	teamInfo[len] = 0;	if (BG_SiegeGetPairedValue(teamInfo, "name", parseBuf))	{		Q_strncpyz(bgSiegeTeams[bgNumSiegeTeams].name, parseBuf, sizeof(bgSiegeTeams[0].name));	}	else	{		Com_Error(ERR_DROP, "Siege team with no name definition");	}	//I don't entirely like doing things this way but it's the easiest way.	#ifdef _CGAME		if (BG_SiegeGetPairedValue(teamInfo, "FriendlyShader", parseBuf))			bgSiegeTeams[bgNumSiegeTeams].friendlyShader = trap->R_RegisterShaderNoMip(parseBuf);	#else		bgSiegeTeams[bgNumSiegeTeams].friendlyShader = 0;	#endif	bgSiegeTeams[bgNumSiegeTeams].numClasses = 0;	if (BG_SiegeGetValueGroup(teamInfo, "Classes", teamInfo))	{		while (success && i < MAX_SIEGE_CLASSES)		{ //keep checking for group values named class# up to MAX_SIEGE_CLASSES until we can't find one.			Q_strncpyz(lookString, va("class%i", i), sizeof(lookString));			success = BG_SiegeGetPairedValue(teamInfo, lookString, parseBuf);			if (!success)			{				break;			}			bgSiegeTeams[bgNumSiegeTeams].classes[bgSiegeTeams[bgNumSiegeTeams].numClasses] = BG_SiegeFindClassByName(parseBuf);			if (!bgSiegeTeams[bgNumSiegeTeams].classes[bgSiegeTeams[bgNumSiegeTeams].numClasses])			{				Com_Printf( "Invalid class specified: '%s'/n", parseBuf);			}			bgSiegeTeams[bgNumSiegeTeams].numClasses++;			i++;		}	}	if (!bgSiegeTeams[bgNumSiegeTeams].numClasses)	{		Com_Error(ERR_DROP, "Team defined with no allowable classes/n");	}	//If we get here then it was a success, so increment the team number	bgNumSiegeTeams++;}
开发者ID:BSzili,项目名称:OpenJK,代码行数:75,


示例6: SCR_DrawScreenField

/* ================== SCR_DrawScreenField This will be called twice if rendering in stereo mode ================== */void SCR_DrawScreenField(stereoFrame_t stereoFrame) {  re.BeginFrame(stereoFrame);  // wide aspect ratio screens need to have the sides cleared  // unless they are displaying game renderings  if (cls.state != CA_ACTIVE && cls.state != CA_CINEMATIC) {    if (cls.glconfig.vidWidth * 480 > cls.glconfig.vidHeight * 640) {      re.SetColor(g_color_table[0]);      re.DrawStretchPic(0, 0, cls.glconfig.vidWidth, cls.glconfig.vidHeight, 0, 0, 0, 0, cls.whiteShader);      re.SetColor(NULL);    }  }  // if the menu is going to cover the entire screen, we  // don't need to render anything under it  if (uivm && !VM_Call(uivm, UI_IS_FULLSCREEN)) {    switch (cls.state) {      default:        Com_Error(ERR_FATAL, "SCR_DrawScreenField: bad cls.state");        break;      case CA_CINEMATIC:        SCR_DrawCinematic();        break;      case CA_DISCONNECTED:        // force menu up        S_StopAllSounds();        VM_Call(uivm, UI_SET_ACTIVE_MENU, UIMENU_MAIN);        break;      case CA_CONNECTING:      case CA_CHALLENGING:      case CA_CONNECTED:        // connecting clients will only show the connection dialog        // refresh to update the time        VM_Call(uivm, UI_REFRESH, cls.realtime);        VM_Call(uivm, UI_DRAW_CONNECT_SCREEN, qfalse);        break;      case CA_LOADING:      case CA_PRIMED:        // draw the game information screen and loading progress        CL_CGameRendering(stereoFrame);        // also draw the connection information, so it doesn't        // flash away too briefly on local or lan games        // refresh to update the time        VM_Call(uivm, UI_REFRESH, cls.realtime);        VM_Call(uivm, UI_DRAW_CONNECT_SCREEN, qtrue);        break;      case CA_ACTIVE:        // always supply STEREO_CENTER as vieworg offset is now done by the engine.        CL_CGameRendering(stereoFrame);        SCR_DrawDemoRecording();#ifdef USE_VOIP        SCR_DrawVoipMeter();#endif        break;    }  }  // the menu draws next  if (Key_GetCatcher() & KEYCATCH_UI && uivm) {    VM_Call(uivm, UI_REFRESH, cls.realtime);  }  // console draws next  Con_DrawConsole();  // debug graph can be drawn on top of anything  if (cl_debuggraph->integer || cl_timegraph->integer || cl_debugMove->integer) {    SCR_DrawDebugGraph();  }}
开发者ID:zturtleman,项目名称:q3rain,代码行数:78,


示例7: VM_CallCompiled

/*==============VM_CallCompiledThis function is called directly by the generated code==============*/int	VM_CallCompiled( vm_t *vm, int *args ) {	int		stack[1024];	int		programCounter;	int		programStack;	int		stackOnEntry;	byte	*image;	void	*entryPoint;	void	*opStack;	int		*oldInstructionPointers;	oldInstructionPointers = instructionPointers;	currentVM = vm;	instructionPointers = vm->instructionPointers;	// interpret the code	vm->currentlyInterpreting = qtrue;	callMask = vm->dataMask;	// we might be called recursively, so this might not be the very top	programStack = vm->programStack;	stackOnEntry = programStack;	// set up the stack frame 	image = vm->dataBase;	programCounter = 0;	programStack -= 48;	*(int *)&image[ programStack + 44] = args[9];	*(int *)&image[ programStack + 40] = args[8];	*(int *)&image[ programStack + 36] = args[7];	*(int *)&image[ programStack + 32] = args[6];	*(int *)&image[ programStack + 28] = args[5];	*(int *)&image[ programStack + 24] = args[4];	*(int *)&image[ programStack + 20] = args[3];	*(int *)&image[ programStack + 16] = args[2];	*(int *)&image[ programStack + 12] = args[1];	*(int *)&image[ programStack + 8 ] = args[0];	*(int *)&image[ programStack + 4 ] = 0;	// return stack	*(int *)&image[ programStack ] = -1;	// will terminate the loop on return	// off we go into generated code...	entryPoint = vm->codeBase;	opStack = &stack;#ifdef _MSC_VER	__asm  {		pushad		mov		esi, programStack;		mov		edi, opStack		call	entryPoint		mov		programStack, esi		mov		opStack, edi		popad	}#else	{		static int memProgramStack;		static void *memOpStack;		static void *memEntryPoint;		memProgramStack	= programStack;		memOpStack      = opStack;     		memEntryPoint   = entryPoint;  				__asm__("	pushal				/n" /				"	movl %0,%%esi		/n" /				"	movl %1,%%edi		/n" /				"	call *%2			/n" /				"	movl %%esi,%0		/n" /				"	movl %%edi,%1		/n" /				"	popal				/n" /				: "=m" (memProgramStack), "=m" (memOpStack) /				: "m" (memEntryPoint), "m" (memProgramStack), "m" (memOpStack) /				: "si", "di" /		);		programStack = memProgramStack;		opStack      = memOpStack;	}#endif	if ( opStack != &stack[1] ) {		Com_Error( ERR_DROP, "opStack corrupted in compiled code" );	}	if ( programStack != stackOnEntry - 48 ) {		Com_Error( ERR_DROP, "programStack corrupted in compiled code" );	}	vm->programStack = stackOnEntry;//.........这里部分代码省略.........
开发者ID:ghostmod,项目名称:PB-ioq3-for-UrbanTerror-4.1,代码行数:101,


示例8: CL_ActorRevitalised

/** * @brief Kills an actor (all that is needed is the local entity state set to STATE_DEAD). * @note Also changes the animation to a random death sequence and appends the dead animation * @param[in] msg The netchannel message * @param[in] self Pointer to the event structure that is currently executed */void CL_ActorRevitalised (const eventRegister_t *self, struct dbuffer *msg){	le_t *le, *floor;	int entnum, state;	NET_ReadFormat(msg, self->formatString, &entnum, &state);	/* get les */	le = LE_Get(entnum);	if (!le)		LE_NotFoundError(entnum);	if (!LE_IsStunned(le) && !LE_IsLivingActor(le))		Com_Error(ERR_DROP, "CL_ActorRevitalised: Can't revitalise, LE is not a dead or stunned actor");	LE_Lock(le);	/* link any floor container into the actor temp floor container */	floor = LE_Find(ET_ITEM, le->pos);	if (floor)		FLOOR(le) = FLOOR(floor);	le->state = state;	/* play animation */	LE_SetThink(le, LET_StartIdle);	/* Print some info about the death or stun. */	if (le->team == cls.team) {		const character_t *chr = CL_ActorGetChr(le);		if (chr) {			char tmpbuf[128];			Com_sprintf(tmpbuf, lengthof(tmpbuf), _("%s was revitalised/n"), chr->name);			HUD_DisplayMessage(tmpbuf);		}	} else {		switch (le->team) {		case (TEAM_CIVILIAN):			HUD_DisplayMessage(_("A civilian was revitalised./n"));			break;		case (TEAM_ALIEN):			HUD_DisplayMessage(_("An alien was revitalised./n"));			break;		case (TEAM_PHALANX):			HUD_DisplayMessage(_("A soldier was revitalised./n"));			break;		default:			HUD_DisplayMessage(va(_("A member of team %i was revitalised./n"), le->team));			break;		}	}	VectorCopy(player_maxs, le->maxs);	/* add team members to the actor list */	CL_ActorAddToTeamList(le);	/* update pathing as we maybe not can walk onto this actor anymore */	CL_ActorConditionalMoveCalc(selActor);	LE_Unlock(le);}
开发者ID:kevlund,项目名称:ufoai,代码行数:68,


示例9: sizeof

//.........这里部分代码省略.........				continue;		// we've dropped at least one sound, so try again with the malloc			}#ifndef DEDICATED			// ditch any image_t's (and associated GL memory) not used on this level...			//			extern qboolean RE_RegisterImages_LevelLoadEnd(void);			if (RE_RegisterImages_LevelLoadEnd())			{				gbMemFreeupOccured = qtrue;				continue;		// we've dropped at least one image, so try again with the malloc			}#endif			// ditch the model-binaries cache...  (must be getting desperate here!)			//			extern qboolean RE_RegisterModels_LevelLoadEnd(qboolean bDeleteEverythingNotUsedThisLevel);			if (RE_RegisterModels_LevelLoadEnd(qtrue))			{				gbMemFreeupOccured = qtrue;				continue;			}			// as a last panic measure, dump all the audio memory, but not if we're in the audio loader 			//	(which is annoying, but I'm not sure how to ensure we're not dumping any memory needed by the sound			//	currently being loaded if that was the case)...			//			// note that this keeps querying until it's freed up as many bytes as the requested size, but freeing			//	several small blocks might not mean that one larger one is satisfiable after freeup, however that'll			//	just make it go round again and try for freeing up another bunch of blocks until the total is satisfied 			//	again (though this will have freed twice the requested amount in that case), so it'll either work 			//	eventually or not free up enough and drop through to the final ERR_DROP. No worries...			//			extern qboolean gbInsideLoadSound;			extern int SND_FreeOldestSound();			if (!gbInsideLoadSound)			{				int iBytesFreed = SND_FreeOldestSound();				if (iBytesFreed)				{					int iTheseBytesFreed = 0;					while ( (iTheseBytesFreed = SND_FreeOldestSound()) != 0)					{						iBytesFreed += iTheseBytesFreed;						if (iBytesFreed >= iRealSize)							break;	// early opt-out since we've managed to recover enough (mem-contiguity issues aside)					}					gbMemFreeupOccured = qtrue;					continue;				}			}			// sigh, dunno what else to try, I guess we'll have to give up and report this as an out-of-mem error...			//			// findlabel:  "recovermem"			Com_Printf(S_COLOR_RED"Z_Malloc(): Failed to alloc %d bytes (TAG_%s) !!!!!/n", iSize, psTagStrings[eTag]);			Z_Details_f();			Com_Error(ERR_FATAL,"(Repeat): Z_Malloc(): Failed to alloc %d bytes (TAG_%s) !!!!!/n", iSize, psTagStrings[eTag]);			return NULL;		}	}	// Link in	pMemory->iMagic	= ZONE_MAGIC;	pMemory->eTag	= eTag;	pMemory->iSize	= iSize;		pMemory->pNext  = TheZone.Header.pNext;	TheZone.Header.pNext = pMemory;	if (pMemory->pNext)	{		pMemory->pNext->pPrev = pMemory;	}	pMemory->pPrev = &TheZone.Header;	//	// add tail...	//	ZoneTailFromHeader(pMemory)->iMagic = ZONE_MAGIC;	// Update stats...	//	TheZone.Stats.iCurrent += iSize;	TheZone.Stats.iCount++;	TheZone.Stats.iSizesPerTag	[eTag] += iSize;	TheZone.Stats.iCountsPerTag	[eTag]++;		if (TheZone.Stats.iCurrent > TheZone.Stats.iPeak)	{		TheZone.Stats.iPeak	= TheZone.Stats.iCurrent;	}#ifdef DETAILED_ZONE_DEBUG_CODE	mapAllocatedZones[pMemory]++;#endif		Z_Validate();	// check for corruption	void *pvReturnMem = &pMemory[1];	return pvReturnMem;}
开发者ID:AlexCSilva,项目名称:jediacademy,代码行数:101,


示例10: CL_UISystemCalls

/*====================CL_UISystemCallsThe ui module is making a system call====================*/intptr_t CL_UISystemCalls( intptr_t *args ) {	switch( args[0] ) {	//rww - alright, DO NOT EVER add a GAME/CGAME/UI generic call without adding a trap to match, and	//all of these traps must be shared and have cases in sv_game, cl_cgame, and cl_ui. They must also	//all be in the same order, and start at 100.	case TRAP_MEMSET:		Com_Memset( VMA(1), args[2], args[3] );		return 0;	case TRAP_MEMCPY:		Com_Memcpy( VMA(1), VMA(2), args[3] );		return 0;	case TRAP_STRNCPY:		strncpy( (char *)VMA(1), (const char *)VMA(2), args[3] );		return args[1];	case TRAP_SIN:		return FloatAsInt( sin( VMF(1) ) );	case TRAP_COS:		return FloatAsInt( cos( VMF(1) ) );	case TRAP_ATAN2:		return FloatAsInt( atan2( VMF(1), VMF(2) ) );	case TRAP_SQRT:		return FloatAsInt( sqrt( VMF(1) ) );	case TRAP_MATRIXMULTIPLY:		MatrixMultiply( (vec3_t *)VMA(1), (vec3_t *)VMA(2), (vec3_t *)VMA(3) );		return 0;	case TRAP_ANGLEVECTORS:		AngleVectors( (const float *)VMA(1), (float *)VMA(2), (float *)VMA(3), (float *)VMA(4) );		return 0;	case TRAP_PERPENDICULARVECTOR:		PerpendicularVector( (float *)VMA(1), (const float *)VMA(2) );		return 0;	case TRAP_FLOOR:		return FloatAsInt( floor( VMF(1) ) );	case TRAP_CEIL:		return FloatAsInt( ceil( VMF(1) ) );	case TRAP_TESTPRINTINT:		return 0;	case TRAP_TESTPRINTFLOAT:		return 0;	case TRAP_ACOS:		return FloatAsInt( Q_acos( VMF(1) ) );	case TRAP_ASIN:		return FloatAsInt( Q_asin( VMF(1) ) );	case UI_ERROR:		Com_Error( ERR_DROP, "%s", VMA(1) );		return 0;	case UI_PRINT:		Com_Printf( "%s", VMA(1) );		return 0;	case UI_MILLISECONDS:		return Sys_Milliseconds();	case UI_CVAR_REGISTER:		Cvar_Register( (vmCvar_t *)VMA(1), (const char *)VMA(2), (const char *)VMA(3), args[4] ); 		return 0;	case UI_CVAR_UPDATE:		Cvar_Update( (vmCvar_t *)VMA(1) );		return 0;	case UI_CVAR_SET:		Cvar_Set( (const char *)VMA(1), (const char *)VMA(2) );		return 0;	case UI_CVAR_VARIABLEVALUE:		return FloatAsInt( Cvar_VariableValue( (const char *)VMA(1) ) );	case UI_CVAR_VARIABLESTRINGBUFFER:		Cvar_VariableStringBuffer( (const char *)VMA(1), (char *)VMA(2), args[3] );		return 0;	case UI_CVAR_SETVALUE:		Cvar_SetValue( (const char *)VMA(1), VMF(2) );		return 0;	case UI_CVAR_RESET:		Cvar_Reset( (const char *)VMA(1) );		return 0;	case UI_CVAR_CREATE:		Cvar_Get( (const char *)VMA(1), (const char *)VMA(2), args[3] );		return 0;	case UI_CVAR_INFOSTRINGBUFFER:		Cvar_InfoStringBuffer( args[1], (char *)VMA(2), args[3] );		return 0;	case UI_ARGC:		return Cmd_Argc();//.........这里部分代码省略.........
开发者ID:Nautilator2k10,项目名称:OpenJK,代码行数:101,


示例11: trap_Parse_LoadSource

/*============BG_VoiceParse============*/static voiceCmd_t *BG_VoiceParse( const char *name ){	voiceCmd_t *voiceCmds = NULL;	voiceCmd_t *top = NULL;	pc_token_t token;	qboolean   parsingCmd = qfalse;	int        handle;	handle = trap_Parse_LoadSource( va( "voice/%s.voice", name ) );	if ( !handle )	{		return NULL;	}	while ( trap_Parse_ReadToken( handle, &token ) )	{		if ( parsingCmd )		{			if ( token.string[ 0 ] == '{' )			{				voiceCmds->tracks = BG_VoiceParseCommand( handle );				parsingCmd = qfalse;				continue;			}			else			{				int  line;				char filename[ MAX_QPATH ];				trap_Parse_SourceFileAndLine( handle, filename, &line );				Com_Error( ERR_FATAL, "BG_VoiceParse(): "				           "parse error on line %d of %s", line, filename );			}		}		if ( strlen( token.string ) >= MAX_VOICE_CMD_LEN )		{			int  line;			char filename[ MAX_QPATH ];			trap_Parse_SourceFileAndLine( handle, filename, &line );			Com_Error( ERR_FATAL, "BG_VoiceParse(): "			           "command /"%s/" exceeds MAX_VOICE_CMD_LEN (%d) on line %d of %s",			           token.string, MAX_VOICE_CMD_LEN, line, filename );		}		if ( top == NULL )		{			voiceCmds = BG_Alloc( sizeof( voiceCmd_t ) );			top = voiceCmds;		}		else		{			voiceCmds->next = BG_Alloc( sizeof( voiceCmd_t ) );			voiceCmds = voiceCmds->next;		}		Q_strncpyz( voiceCmds->cmd, token.string, sizeof( voiceCmds->cmd ) );		voiceCmds->next = NULL;		parsingCmd = qtrue;	}	trap_Parse_FreeSource( handle );	return top;}
开发者ID:LoganTheD3vil,项目名称:Unvanquished,代码行数:72,


示例12: setreuid

/*=================Sys_GetGameAPILoads the game dll=================*/void *Sys_GetGameAPI (void *parms){	void	*(*GetGameAPI) (void *);		FILE	*fp;	char	name[MAX_OSPATH];	char	*path;	char	*str_p;#if defined __i386__	const char *gamename = "gamei386.so";#elif defined __x86_64__	const char *gamename = "gamex86_64.so";#elif defined __alpha__	const char *gamename = "gameaxp.so";#elif defined __powerpc__	const char *gamename = "gameppc.so";#elif defined __arm__	const char *gamename = "gamesarm.so";#else#error Unknown arch#endif	setreuid(getuid(), getuid());	setegid(getgid());	if (game_library)		Com_Error (ERR_FATAL, "Sys_GetGameAPI without Sys_UnloadingGame");	Com_Printf("------- Loading %s -------/n", gamename);	// now run through the search paths	path = NULL;	while (1)	{		path = FS_NextPath (path);		if (!path)			return NULL;		// couldn't find one anywhere		snprintf (name, MAX_OSPATH, "%s/%s", path, gamename);				/* skip it if it just doesn't exist */		fp = fopen(name, "rb");		if (fp == NULL)			continue;		fclose(fp);				game_library = dlopen (name, RTLD_NOW);		if (game_library)		{			Com_MDPrintf ("LoadLibrary (%s)/n",name);			break;		} 		else 		{			Com_Printf ("LoadLibrary (%s):", name);						path = dlerror();			str_p = strchr(path, ':'); // skip the path (already shown)			if (str_p == NULL)				str_p = path;			else				str_p++;							Com_Printf ("%s/n", str_p);						return NULL; 		}	}	GetGameAPI = (void *)dlsym (game_library, "GetGameAPI");	if (!GetGameAPI)	{		Sys_UnloadGame ();				return NULL;	}	return GetGameAPI (parms);}
开发者ID:crutchwalkfactory,项目名称:motocakerteam,代码行数:85,


示例13: CL_UISystemCalls

//BBi//int CL_UISystemCalls( int *args ) {intptr_t CL_UISystemCalls (    intptr_t* args){//BBi	switch ( args[0] ) {	case UI_ERROR:#if !defined RTCW_ET		Com_Error( ERR_DROP, "%s", VMA( 1 ) );#else		Com_Error( ERR_DROP, "%s", (char *)VMA( 1 ) );#endif // RTCW_XX		return 0;	case UI_PRINT:#if !defined RTCW_ET		Com_Printf( "%s", VMA( 1 ) );#else		Com_Printf( "%s", (char *)VMA( 1 ) );#endif // RTCW_XX		return 0;	case UI_MILLISECONDS:		return Sys_Milliseconds();	case UI_CVAR_REGISTER:		Cvar_Register( static_cast<vmCvar_t*> (VMA( 1 )), static_cast<const char*> (VMA( 2 )), static_cast<const char*> (VMA( 3 )), args[4] );		return 0;	case UI_CVAR_UPDATE:		Cvar_Update( static_cast<vmCvar_t*> (VMA( 1 )) );		return 0;	case UI_CVAR_SET:		Cvar_Set( static_cast<const char*> (VMA( 1 )), static_cast<char*> (VMA( 2 )) );		return 0;	case UI_CVAR_VARIABLEVALUE:		return FloatAsInt( Cvar_VariableValue( static_cast<const char*> (VMA( 1 )) ) );	case UI_CVAR_VARIABLESTRINGBUFFER:		Cvar_VariableStringBuffer( static_cast<const char*> (VMA( 1 )), static_cast<char*> (VMA( 2 )), args[3] );		return 0;#if defined RTCW_ET	case UI_CVAR_LATCHEDVARIABLESTRINGBUFFER:		Cvar_LatchedVariableStringBuffer( static_cast<const char*> (VMA( 1 )), static_cast<char*> (VMA( 2 )), args[3] );		return 0;#endif // RTCW_XX	case UI_CVAR_SETVALUE:		Cvar_SetValue( static_cast<const char*> (VMA( 1 )), VMF( 2 ) );		return 0;	case UI_CVAR_RESET:		Cvar_Reset( static_cast<const char*> (VMA( 1 )) );		return 0;	case UI_CVAR_CREATE:		Cvar_Get( static_cast<const char*> (VMA( 1 )), static_cast<char*> (VMA( 2 )), args[3] );		return 0;	case UI_CVAR_INFOSTRINGBUFFER:		Cvar_InfoStringBuffer( args[1], static_cast<char*> (VMA( 2 )), args[3] );		return 0;	case UI_ARGC:		return Cmd_Argc();	case UI_ARGV:		Cmd_ArgvBuffer( args[1], static_cast<char*> (VMA( 2 )), args[3] );		return 0;	case UI_CMD_EXECUTETEXT:		Cbuf_ExecuteText( args[1], static_cast<const char*> (VMA( 2 )) );		return 0;#if defined RTCW_ET	case UI_ADDCOMMAND:		Cmd_AddCommand( static_cast<const char*> (VMA( 1 )), NULL );		return 0;#endif // RTCW_XX	case UI_FS_FOPENFILE:		return FS_FOpenFileByMode( static_cast<const char*> (VMA( 1 )), static_cast<fileHandle_t*> (VMA( 2 )), fsMode_t (args[3]) );	case UI_FS_READ:		FS_Read( VMA( 1 ), args[2], args[3] );		return 0;#if defined RTCW_SP//----(SA)	added	case UI_FS_SEEK:		FS_Seek( args[1], args[2], args[3] );		return 0;//.........这里部分代码省略.........
开发者ID:bibendovsky,项目名称:rtcw,代码行数:101,


示例14: S_GetSoundLength

// show_bug.cgi?id=574int S_GetSoundLength( sfxHandle_t sfxHandle ) {	Com_Error( ERR_DROP, "null_snddma.c: S_GetSoundLength/n" );	return 0;}
开发者ID:AdrienJaguenet,项目名称:Enemy-Territory,代码行数:5,


示例15: CL_GetServerCommand

/*===================CL_GetServerCommandSet up argc/argv for the given command===================*/qboolean CL_GetServerCommand( int serverCommandNumber ) {	char	*s;	char	*cmd;	static char bigConfigString[BIG_INFO_STRING];	int argc;	// if we have irretrievably lost a reliable command, drop the connection	if ( serverCommandNumber <= clc.serverCommandSequence - MAX_RELIABLE_COMMANDS ) {		// when a demo record was started after the client got a whole bunch of		// reliable commands then the client never got those first reliable commands		if ( clc.demoplaying )			return qfalse;		Com_Error( ERR_DROP, "CL_GetServerCommand: a reliable command was cycled out" );		return qfalse;	}	if ( serverCommandNumber > clc.serverCommandSequence ) {		Com_Error( ERR_DROP, "CL_GetServerCommand: requested a command not received" );		return qfalse;	}	s = clc.serverCommands[ serverCommandNumber & ( MAX_RELIABLE_COMMANDS - 1 ) ];	clc.lastExecutedServerCommand = serverCommandNumber;	Com_DPrintf( "serverCommand: %i : %s/n", serverCommandNumber, s );rescan:	Cmd_TokenizeString( s );	cmd = Cmd_Argv(0);	argc = Cmd_Argc();	if ( !strcmp( cmd, "disconnect" ) ) {		// https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=552		// allow server to indicate why they were disconnected		if ( argc >= 2 )			Com_Error( ERR_SERVERDISCONNECT, "Server disconnected - %s", Cmd_Argv( 1 ) );		else			Com_Error( ERR_SERVERDISCONNECT, "Server disconnected/n" );	}	if ( !strcmp( cmd, "bcs0" ) ) {		Com_sprintf( bigConfigString, BIG_INFO_STRING, "cs %s /"%s", Cmd_Argv(1), Cmd_Argv(2) );		return qfalse;	}	if ( !strcmp( cmd, "bcs1" ) ) {		s = Cmd_Argv(2);		if( strlen(bigConfigString) + strlen(s) >= BIG_INFO_STRING ) {			Com_Error( ERR_DROP, "bcs exceeded BIG_INFO_STRING" );		}		strcat( bigConfigString, s );		return qfalse;	}	if ( !strcmp( cmd, "bcs2" ) ) {		s = Cmd_Argv(2);		if( strlen(bigConfigString) + strlen(s) + 1 >= BIG_INFO_STRING ) {			Com_Error( ERR_DROP, "bcs exceeded BIG_INFO_STRING" );		}		strcat( bigConfigString, s );		strcat( bigConfigString, "/"" );		s = bigConfigString;		goto rescan;	}	if ( !strcmp( cmd, "cs" ) ) {		CL_ConfigstringModified();		// reparse the string, because CL_ConfigstringModified may have done another Cmd_TokenizeString()		Cmd_TokenizeString( s );		return qtrue;	}	if ( !strcmp( cmd, "map_restart" ) ) {		// clear notify lines and outgoing commands before passing		// the restart to the cgame		Con_ClearNotify();		Com_Memset( cl.cmds, 0, sizeof( cl.cmds ) );		return qtrue;	}	// the clientLevelShot command is used during development	// to generate 128*128 screenshots from the intermission	// point of levels for the menu system to use	// we pass it along to the cgame to make apropriate adjustments,	// but we also clear the console and notify lines here	if ( !strcmp( cmd, "clientLevelShot" ) ) {		// don't do it if we aren't running the server locally,		// otherwise malicious remote servers could overwrite		// the existing thumbnails		if ( !com_sv_running->integer ) {			return qfalse;		}		// close the console//.........这里部分代码省略.........
开发者ID:AlienHoboken,项目名称:Tremulous-Z-Server,代码行数:101,


示例16: SV_DirectConnect

//.........这里部分代码省略.........	// check for privateClient password	password = Info_ValueForKey( userinfo, "password" );	if ( !strcmp( password, sv_privatePassword->string ) ) {		startIndex = 0;	} else {		// skip past the reserved slots		startIndex = sv_privateClients->integer;	}	newcl = NULL;	for ( i = startIndex; i < sv_maxclients->integer ; i++ ) {		cl = &svs.clients[i];		if (cl->state == CS_FREE) {			newcl = cl;			break;		}	}	if ( !newcl ) {		if ( NET_IsLocalAddress( from ) ) {			count = 0;			for ( i = startIndex; i < sv_maxclients->integer ; i++ ) {				cl = &svs.clients[i];				if (cl->netchan.remoteAddress.type == NA_BOT) {					count++;				}			}			// if they're all bots			if (count >= sv_maxclients->integer - startIndex) {				SV_DropClient(&svs.clients[sv_maxclients->integer - 1], "only bots on server");				newcl = &svs.clients[sv_maxclients->integer - 1];			}			else {				Com_Error( ERR_FATAL, "server is full on local connect/n" );				return;			}		}		else {			const char *SV_GetStringEdString(char *refSection, char *refName);			NET_OutOfBandPrint( NS_SERVER, from, va("print/n%s/n", SV_GetStringEdString("MP_SVGAME","SERVER_IS_FULL")));			Com_DPrintf ("Rejected a connection./n");			return;		}	}	// we got a newcl, so reset the reliableSequence and reliableAcknowledge	cl->reliableAcknowledge = 0;	cl->reliableSequence = 0;gotnewcl:	// build a new connection	// accept the new client	// this is the only place a client_t is ever initialized	*newcl = temp;	clientNum = newcl - svs.clients;	ent = SV_GentityNum( clientNum );	newcl->gentity = ent;	// save the challenge	newcl->challenge = challenge;	// save the address	Netchan_Setup (NS_SERVER, &newcl->netchan , from, qport);	// save the userinfo
开发者ID:Ben2917,项目名称:OpenJK,代码行数:67,


示例17: CL_CgameSystemCalls

/*====================CL_CgameSystemCallsThe cgame module is making a system call====================*/intptr_t CL_CgameSystemCalls( intptr_t *args ) {	switch( args[0] ) {	case CG_PRINT:		Com_Printf( "%s", (const char*)VMA(1) );		return 0;	case CG_ERROR:		Com_Error( ERR_DROP, "%s", (const char*)VMA(1) );		return 0;	case CG_MILLISECONDS:		return Sys_Milliseconds();	case CG_CVAR_REGISTER:		Cvar_Register( VMA(1), VMA(2), VMA(3), args[4] ); 		return 0;	case CG_CVAR_UPDATE:		Cvar_Update( VMA(1) );		return 0;	case CG_CVAR_SET:		Cvar_SetSafe( VMA(1), VMA(2) );		return 0;	case CG_CVAR_VARIABLESTRINGBUFFER:		Cvar_VariableStringBuffer( VMA(1), VMA(2), args[3] );		return 0;	case CG_ARGC:		return Cmd_Argc();	case CG_ARGV:		Cmd_ArgvBuffer( args[1], VMA(2), args[3] );		return 0;	case CG_ARGS:		Cmd_ArgsBuffer( VMA(1), args[2] );		return 0;	case CG_LITERAL_ARGS:		Cmd_LiteralArgsBuffer( VMA(1), args[2] );		return 0;	case CG_FS_FOPENFILE:		return FS_FOpenFileByMode( VMA(1), VMA(2), args[3] );	case CG_FS_READ:		FS_Read2( VMA(1), args[2], args[3] );		return 0;	case CG_FS_WRITE:		FS_Write( VMA(1), args[2], args[3] );		return 0;	case CG_FS_FCLOSEFILE:		FS_FCloseFile( args[1] );		return 0;	case CG_FS_SEEK:		return FS_Seek( args[1], args[2], args[3] );	case CG_FS_GETFILELIST:		return FS_GetFileList( VMA(1), VMA(2), VMA(3), args[4] );	case CG_SENDCONSOLECOMMAND:		Cbuf_AddText( VMA(1) );		return 0;	case CG_ADDCOMMAND:		CL_AddCgameCommand( VMA(1) );		return 0;	case CG_REMOVECOMMAND:		Cmd_RemoveCommandSafe( VMA(1) );		return 0;	case CG_SENDCLIENTCOMMAND:		CL_AddReliableCommand( VMA(1) );		return 0;	case CG_UPDATESCREEN:		// this is used during lengthy level loading, so pump message loop//		Com_EventLoop();	// FIXME: if a server restarts here, BAD THINGS HAPPEN!// We can't call Com_EventLoop here, a restart will crash and this _does_ happen// if there is a map change while we are downloading at pk3.// ZOID		SCR_UpdateScreen();		return 0;	case CG_CM_LOADMAP:		CL_CM_LoadMap( VMA(1) );		return 0;	case CG_CM_NUMINLINEMODELS:		return CM_NumInlineModels();	case CG_CM_INLINEMODEL:		return CM_InlineModel( args[1] );	case CG_CM_TEMPBOXMODEL:		return CM_TempBoxModel( VMA(1), VMA(2), /*int capsule*/ qfalse );	case CG_CM_TEMPCAPSULEMODEL:		return CM_TempBoxModel( VMA(1), VMA(2), /*int capsule*/ qtrue );	case CG_CM_POINTCONTENTS:		return CM_PointContents( VMA(1), args[2] );	case CG_CM_TRANSFORMEDPOINTCONTENTS:		return CM_TransformedPointContents( VMA(1), args[2], VMA(3), VMA(4) );	case CG_CM_BOXTRACE:		CM_BoxTrace( VMA(1), VMA(2), VMA(3), VMA(4), VMA(5), args[6], args[7], TT_AABB );		return 0;	case CG_CM_CAPSULETRACE:		CM_BoxTrace( VMA(1), VMA(2), VMA(3), VMA(4), VMA(5), args[6], args[7], TT_CAPSULE );		return 0;	case CG_CM_TRANSFORMEDBOXTRACE:		CM_TransformedBoxTrace( VMA(1), VMA(2), VMA(3), VMA(4), VMA(5),				args[6], args[7], VMA(8), VMA(9), TT_AABB );		return 0;//.........这里部分代码省略.........
开发者ID:AlienHoboken,项目名称:Tremulous-Z-Server,代码行数:101,


示例18: Com_Error

void *Sys_GetGameAPI (void *parms){	void	*(*GetGameAPI) (void *);		const char	*basepath;	const char	*cdpath;	const char	*gamedir;	const char	*homepath;#ifdef MACOS_X    const char  *apppath;#endif	const char	*fn;		const char *gamename;	if(Cvar_VariableIntegerValue("com_jk2"))	{		gamename = "jk2game" ARCH_STRING DLL_EXT;	}	else	{		gamename = "jagame" ARCH_STRING DLL_EXT;	}		if (game_library)		Com_Error (ERR_FATAL, "Sys_GetGameAPI without Sys_UnloadingGame");		// check the current debug directory first for development purposes	homepath = Cvar_VariableString( "fs_homepath" );	basepath = Cvar_VariableString( "fs_basepath" );	cdpath = Cvar_VariableString( "fs_cdpath" );	gamedir = Cvar_VariableString( "fs_game" );#ifdef MACOS_X    apppath = Cvar_VariableString( "fs_apppath" );#endif		if(!gamedir || !gamedir[0])		gamedir = BASEGAME;		fn = FS_BuildOSPath( basepath, gamedir, gamename );		game_library = Sys_LoadLibrary( fn );	//First try in mod directories. basepath -> homepath -> cdpath	if (!game_library) {		if (homepath[0]) {			Com_Printf( "Sys_GetGameAPI(%s) failed: /"%s/"/n", fn, Sys_LibraryError() );						fn = FS_BuildOSPath( homepath, gamedir, gamename);			game_library = Sys_LoadLibrary( fn );		}	}	#ifdef MACOS_X    if (!game_library) {		if( apppath[0] ) {			Com_Printf( "Sys_GetGameAPI(%s) failed: /"%s/"/n", fn, Sys_LibraryError() );						fn = FS_BuildOSPath( apppath, gamedir, gamename );			game_library = Sys_LoadLibrary( fn );		}	}#endif    	if (!game_library) {		if( cdpath[0] ) {			Com_Printf( "Sys_GetGameAPI(%s) failed: /"%s/"/n", fn, Sys_LibraryError() );						fn = FS_BuildOSPath( cdpath, gamedir, gamename );			game_library = Sys_LoadLibrary( fn );		}	}	//Now try in base. basepath -> homepath -> cdpath	if (!game_library) {		Com_Printf( "Sys_GetGameAPI(%s) failed: /"%s/"/n", fn, Sys_LibraryError() );				fn = FS_BuildOSPath( basepath, BASEGAME, gamename);		game_library = Sys_LoadLibrary( fn );	}		if (!game_library) {		if ( homepath[0] ) {			Com_Printf( "Sys_GetGameAPI(%s) failed: /"%s/"/n", fn, Sys_LibraryError() );						fn = FS_BuildOSPath( homepath, BASEGAME, gamename);			game_library = Sys_LoadLibrary( fn );		}	}    #ifdef MACOS_X    if (!game_library) {		if( apppath[0] ) {			Com_Printf( "Sys_GetGameAPI(%s) failed: /"%s/"/n", fn, Sys_LibraryError() );						fn = FS_BuildOSPath( apppath, BASEGAME, gamename );			game_library = Sys_LoadLibrary( fn );		}	}#endif	//.........这里部分代码省略.........
开发者ID:dkodnik,项目名称:OpenJK,代码行数:101,


示例19: CL_ActorAppear

/** * @sa CL_ActorAddToTeamList * @sa G_AppearPerishEvent * @sa CL_ActorAdd * @note EV_ACTOR_APPEAR */void CL_ActorAppear (const eventRegister_t *self, dbuffer *msg){	le_t *le, *leResponsible;	int entnum, entnumResponsible, modelnum1, modelnum2;	int teamDefID = -1;	/* check if the actor is already visible */	entnum = NET_ReadShort(msg);	entnumResponsible = NET_ReadShort(msg);	le = LE_Get(entnum);	leResponsible = LE_Get(entnumResponsible);	if (entnumResponsible != SKIP_LOCAL_ENTITY && !leResponsible)		LE_NotFoundError(entnumResponsible);	/* mission start - no actor is spawned yet - so create it */	if (!le)		le = LE_Add(entnum);	/* Locking should be unnecessary if CL_CheckDefault filters this call, since this event starts and	 * ends in this function only.  Adding lock/unlock just to be sure. */	LE_Lock(le);	/* maybe added via CL_ActorAdd before */	le->flags &= ~LE_INVISIBLE;	/* get the info */	NET_ReadFormat(msg, self->formatString,			&le->team, &teamDefID, &le->gender, &le->ucn, &le->pnum, &le->pos,			&le->angle, &le->right, &le->left,			&modelnum1, &modelnum2, &le->bodySkin, &le->headSkin,			&le->state, &le->fieldSize,			&le->maxTU, &le->maxMorale, &le->maxHP);	if (teamDefID < 0 || teamDefID > csi.numTeamDefs)		Com_Printf("CL_ActorAppear: Invalid teamDef index/n");	else		le->teamDef = &csi.teamDef[teamDefID];	switch (le->fieldSize) {	case ACTOR_SIZE_NORMAL:		le->addFunc = CL_AddActor;		le->type = ET_ACTOR;		break;	case ACTOR_SIZE_2x2:		le->addFunc = CL_AddUGV;		le->type = ET_ACTOR2x2;		break;	default:		Com_Error(ERR_DROP, "Unknown fieldSize for le in CL_ActorAppear (EV_ACTOR_APPEAR)");	}	le->modelnum1 = modelnum1;	le->modelnum2 = modelnum2;	le->model1 = LE_GetDrawModel(modelnum1);	le->model2 = LE_GetDrawModel(modelnum2);	Grid_PosToVec(cl.mapData->map, le->fieldSize, le->pos, le->origin);	le->angles[YAW] = directionAngles[le->angle];	if (LE_IsDead(le) && !LE_IsStunned(le))		le->contents = CONTENTS_DEADACTOR;	else		le->contents = CONTENTS_ACTOR;	VectorCopy(player_mins, le->mins);	if (LE_IsDead(le))		VectorCopy(player_dead_maxs, le->maxs);	else		VectorCopy(player_maxs, le->maxs);	LE_SetThink(le, LET_StartIdle);	/* count spotted aliens (also stunned) */	cl.numEnemiesSpotted = CL_CountVisibleEnemies();	if (LE_IsLivingActor(le)) {		if (cl.actTeam != cls.team) {			/* center view (if wanted) */			LE_CenterView(le);		}		/* draw line of sight */		if (le->team != cls.team) {			if (leResponsible)				CL_DrawLineOfSight(leResponsible, le);			/* message */			if (le->team != TEAM_CIVILIAN) {				if (GAME_TeamIsKnown(le->teamDef)) {					char tmpbuf[128];					Com_sprintf(tmpbuf, sizeof(tmpbuf), _("Enemy spotted: %s!"), _(le->teamDef->name));					HUD_DisplayMessage(tmpbuf);				} else					HUD_DisplayMessage(_("Unknown enemy spotted!"));			} else				HUD_DisplayMessage(_("Civilian spotted."));//.........这里部分代码省略.........
开发者ID:jklemmack,项目名称:ufoai,代码行数:101,


示例20: CL_ParseDownload

/*=====================CL_ParseDownloadA download message has been received from the server=====================*/void CL_ParseDownload (sizebuf_t *msg, qboolean dataIsCompressed){	int		size, percent;	char	name[MAX_OSPATH];//	int		r;	// read the data	size = MSG_ReadShort (msg);	percent = MSG_ReadByte (msg);	if (size < 0)	{		if (size == -1)			Com_Printf ("Server does not have this file./n");		else			Com_Printf ("Bad download data from server./n");		cls.downloadtempname[0] = 0;		cls.downloadname[0] = 0;		cls.failed_download = true;		if (cls.download)		{			// if here, we tried to resume a file but the server said no			fclose (cls.download);			cls.download = NULL;		}		CL_RequestNextDownload ();		return;	}	// open the file if not opened yet	if (!cls.download)	{		if (!cls.downloadtempname[0])		{			Com_Printf ("Received download packet without request. Ignored./n");			msg->readcount += size;			return;		}		CL_DownloadFileName(name, sizeof(name), cls.downloadtempname);		FS_CreatePath (name);		cls.download = fopen (name, "wb");		if (!cls.download)		{			msg->readcount += size;			Com_Printf ("Failed to open %s/n", cls.downloadtempname);			CL_RequestNextDownload ();			return;		}	}	if (dataIsCompressed)	{		uint16		uncompressedLen;		byte		uncompressed[0xFFFF];		uncompressedLen = MSG_ReadShort (msg);		if (!uncompressedLen)			Com_Error (ERR_DROP, "uncompressedLen == 0");		ZLibDecompress (msg->data + msg->readcount, size, uncompressed, uncompressedLen, -15);		fwrite (uncompressed, 1, uncompressedLen, cls.download);		Com_DPrintf ("svc_zdownload(%s): %d -> %d/n", cls.downloadname, size, uncompressedLen);	}	else	{		fwrite (msg->data + msg->readcount, 1, size, cls.download);	}	//fwrite (net_message.data + net_message.readcount, 1, size, cls.download);	msg->readcount += size;	if (percent != 100)	{		// request next block// change display routines by zoid		cls.downloadpercent = percent;		MSG_WriteByte (&cls.netchan.message, clc_stringcmd);		SZ_Print (&cls.netchan.message, "nextdl");	}	else	{		CL_FinishDownload();		// get another file if needed		CL_RequestNextDownload ();	}//.........这里部分代码省略.........
开发者ID:hifi-unmaintained,项目名称:aprq2,代码行数:101,


示例21: VM_Compile

/*=================VM_Compile=================*/void VM_Compile( vm_t *vm, vmHeader_t *header ) {	int		op;	int		maxLength;	int		v;	int		i;	qboolean opt;	// allocate a very large temp buffer, we will shrink it later	maxLength = header->codeLength * 8;	buf = Z_Malloc( maxLength );	jused = Z_Malloc(header->instructionCount + 2 );		Com_Memset(jused, 0, header->instructionCount+2);	// ensure that the optimisation pass knows about all the jump	// table targets	for( i = 0; i < vm->numJumpTableTargets; i++ ) {		jused[ *(int *)(vm->jumpTableTargets + ( i * sizeof( int ) ) ) ] = 1;	}	for(pass=0;pass<2;pass++) {	oc0 = -23423;	oc1 = -234354;	pop0 = -43435;	pop1 = -545455;	// translate all instructions	pc = 0;	instruction = 0;	code = (byte *)header + header->codeOffset;	compiledOfs = 0;	LastCommand = LAST_COMMAND_NONE;	while ( instruction < header->instructionCount ) {		if ( compiledOfs > maxLength - 16 ) {			Com_Error( ERR_FATAL, "VM_CompileX86: maxLength exceeded" );		}		vm->instructionPointers[ instruction ] = compiledOfs;		instruction++;		if ( pc > header->codeLength ) {			Com_Error( ERR_FATAL, "VM_CompileX86: pc > header->codeLength" );		}		op = code[ pc ];		pc++;		switch ( op ) {		case 0:			break;		case OP_BREAK:			EmitString( "CC" );			// int 3			break;		case OP_ENTER:			EmitString( "81 EE" );		// sub	esi, 0x12345678			Emit4( Constant4() );			break;		case OP_CONST:			if (code[pc+4] == OP_LOAD4) {				EmitAddEDI4(vm);				EmitString( "BB" );		// mov	ebx, 0x12345678				Emit4( (Constant4()&vm->dataMask) + (int)vm->dataBase);				EmitString( "8B 03" );		// mov	eax, dword ptr [ebx]				EmitCommand(LAST_COMMAND_MOV_EDI_EAX);		// mov dword ptr [edi], eax				pc++;						// OP_LOAD4				instruction += 1;				break;			}			if (code[pc+4] == OP_LOAD2) {				EmitAddEDI4(vm);				EmitString( "BB" );		// mov	ebx, 0x12345678				Emit4( (Constant4()&vm->dataMask) + (int)vm->dataBase);				EmitString( "0F B7 03" );	// movzx	eax, word ptr [ebx]				EmitCommand(LAST_COMMAND_MOV_EDI_EAX);		// mov dword ptr [edi], eax				pc++;						// OP_LOAD4				instruction += 1;				break;			}			if (code[pc+4] == OP_LOAD1) {				EmitAddEDI4(vm);				EmitString( "BB" );		// mov	ebx, 0x12345678				Emit4( (Constant4()&vm->dataMask) + (int)vm->dataBase);				EmitString( "0F B6 03" );	// movzx	eax, byte ptr [ebx]				EmitCommand(LAST_COMMAND_MOV_EDI_EAX);		// mov dword ptr [edi], eax				pc++;						// OP_LOAD4				instruction += 1;				break;			}			if (code[pc+4] == OP_STORE4) {				opt = EmitMovEBXEDI(vm, (vm->dataMask & ~3));				EmitString( "B8" );			// mov	eax, 0x12345678				Emit4( Constant4() );//				if (!opt) {//					EmitString( "81 E3" );		// and ebx, 0x12345678//.........这里部分代码省略.........
开发者ID:ghostmod,项目名称:PB-ioq3-for-UrbanTerror-4.1,代码行数:101,


示例22: CL_ParseServerData

/*==================CL_ParseServerData==================*/qboolean CL_ParseServerData (sizebuf_t *msg){	char	*str;	int		i;		Com_DPrintf ("Serverdata packet received./n");//// wipe the client_state_t struct//	CL_ClearState ();	cls.state = ca_connected;// parse protocol version number	i = MSG_ReadLong (msg);	cls.serverProtocol = i;	cl.servercount = MSG_ReadLong (msg);	cl.attractloop = MSG_ReadByte (msg);	if (cl.attractloop) {		//cls.serverProtocol = PROTOCOL_VERSION_DEFAULT;	}	else if (i != PROTOCOL_VERSION_DEFAULT && i != PROTOCOL_VERSION_R1Q2) {		Com_Error (ERR_DROP, "Server is using unknown protocol %d.", i);	}	// game directory	str = MSG_ReadString (msg);	Q_strncpyz (cl.gamedir, str, sizeof(cl.gamedir));	str = cl.gamedir;	// set gamedir	if (!Com_ServerState()) {		Cvar_SetLatched("game", str);		if( FS_NeedRestart() ) {			CL_RestartFilesystem(true);		}	}	// parse player entity number	cl.playernum = MSG_ReadShort (msg);	// get the full level name	str = MSG_ReadString (msg);	cl.pmp.strafeHack = false;	cl.pmp.speedMultiplier = 1;	cl.pmp.airaccelerate = 0;	cls.protocolVersion = 0;	if (cls.serverProtocol == PROTOCOL_VERSION_R1Q2)	{		i = MSG_ReadByte(msg);		if( i ) {			Com_Printf("'Enhanced' R1Q2 servers are not supported, falling back to protocol 34./n" );			CL_Disconnect();					cls.serverProtocol = PROTOCOL_VERSION_DEFAULT;			CL_Reconnect_f ();			return false;		}		i = MSG_ReadShort(msg);		if (i < PROTOCOL_VERSION_R1Q2_MINIMUM || i > PROTOCOL_VERSION_R1Q2_CURRENT)		{			if (cl.attractloop)			{				if ( i < PROTOCOL_VERSION_R1Q2_MINIMUM )					Com_Printf("This demo was recorded with an earlier version of the R1Q2 protocol. It may not play back properly./n");				else					Com_Printf("This demo was recorded with a later version of the R1Q2 protocol. It may not play back properly./n");			}			else			{				if( i < PROTOCOL_VERSION_R1Q2_MINIMUM ) {					Com_Printf("Server uses OLDER minor R1Q2 protocol version than minimum supported (%i < %i), falling back to protocol 34./n", i, PROTOCOL_VERSION_R1Q2_MINIMUM);					CL_Disconnect();					cls.serverProtocol = PROTOCOL_VERSION_DEFAULT;					CL_Reconnect_f ();					return false;				}				Com_Printf("Server uses NEWER minor R1Q2 protocol version (%i > %i), some features will be unavailable./n", i, PROTOCOL_VERSION_R1Q2_CURRENT);			}		}		if (i >= 1903) {			MSG_ReadByte(msg);			cl.pmp.strafeHack = MSG_ReadByte(msg);		}		cl.pmp.speedMultiplier = 2;		cls.protocolVersion = i;	}	if (cl.playernum == -1)	{	// playing a cinematic or showing a pic, not a level//.........这里部分代码省略.........
开发者ID:hifi-unmaintained,项目名称:aprq2,代码行数:101,


示例23: VID_CheckChanges

/*============VID_CheckChangesThis function gets called once just before drawing each frame, and it's sole purpose in lifeis to check to see if any of the video mode parameters have changed, and if they have to update the rendering DLL and/or video mode to match.============*/void VID_CheckChanges (void){	char name[100];	if ( win_noalttab->modified )	{		if ( win_noalttab->value )		{			WIN_DisableAltTab();		}		else		{			WIN_EnableAltTab();		}		win_noalttab->modified = false;	}	if ( vid_ref->modified )	{		cl.force_refdef = true;		// can't use a paused refdef		S_StopAllSounds();	}	while (vid_ref->modified)	{		/*		** refresh has changed		*/		vid_ref->modified = false;		vid_fullscreen->modified = true;		cl.refresh_prepped = false;		cls.disable_screen = true;		Com_sprintf( name, sizeof(name), "ref_%s.dll", vid_ref->string );		if ( !VID_LoadRefresh( name ) )		{			if ( strcmp (vid_ref->string, "soft") == 0 )				Com_Error (ERR_FATAL, "Couldn't fall back to software refresh!");			Cvar_Set( "vid_ref", "soft" );			/*			** drop the console if we fail to load a refresh			*/			if ( cls.key_dest != key_console )			{				Con_ToggleConsole_f();			}		}		cls.disable_screen = false;	}	/*	** update our window position	*/	if ( vid_xpos->modified || vid_ypos->modified )	{		if (!vid_fullscreen->value)			VID_UpdateWindowPosAndSize( vid_xpos->value, vid_ypos->value );		vid_xpos->modified = false;		vid_ypos->modified = false;	}}
开发者ID:basecq,项目名称:q2dos,代码行数:71,


示例24: CL_ParseConfigString

/*================CL_ParseConfigString================*/void CL_ParseConfigString (sizebuf_t *msg){	int		i, length;	char	*s;	char	olds[MAX_QPATH];	i = MSG_ReadShort (msg);	if ((unsigned)i >= MAX_CONFIGSTRINGS)		Com_Error (ERR_DROP, "configstring > MAX_CONFIGSTRINGS");	Q_strncpyz (olds, cl.configstrings[i], sizeof(olds));	s = MSG_ReadString(msg);	length = strlen(s);	if (i != CS_NAME && i < CS_GENERAL)	{		if (i >= CS_STATUSBAR && i < CS_AIRACCEL)		{			Q_strncpyz(cl.configstrings[i], s, MAX_QPATH * (CS_AIRACCEL - i));		}		else		{			if (length >= MAX_QPATH)				Com_Printf ("WARNING: Configstring %d of length %d exceeds MAX_QPATH./n", i, length);			Q_strncpyz(cl.configstrings[i], s, MAX_QPATH);		}	}	else	{		Q_strncpyz(cl.configstrings[i], s, MAX_QPATH * (MAX_CONFIGSTRINGS - i));	}	// do something apropriate	if(i == CS_AIRACCEL)	{		cl.pmp.airaccelerate = atoi(cl.configstrings[CS_AIRACCEL]) ? true : false;	}	else if (i >= CS_LIGHTS && i < CS_LIGHTS+MAX_LIGHTSTYLES)	{		CL_SetLightstyle (i - CS_LIGHTS);	}	else if (i == CS_CDTRACK)	{#ifdef CD_AUDIO		if (cl.refresh_prepped)			CDAudio_Play (atoi(cl.configstrings[CS_CDTRACK]), true);#endif	}	else if (i >= CS_MODELS && i < CS_MODELS+MAX_MODELS)	{		if( i == CS_MODELS + 1 ) {			if( length > 9 ) {				Q_strncpyz( cls.mapname, s + 5, sizeof( cls.mapname ) ); // skip "maps/"				cls.mapname[strlen( cls.mapname ) - 4] = 0; // cut off ".bsp"			}		}		if (cl.refresh_prepped)		{			cl.model_draw[i-CS_MODELS] = R_RegisterModel (cl.configstrings[i]);			if (cl.configstrings[i][0] == '*')				cl.model_clip[i-CS_MODELS] = CM_InlineModel (cl.configstrings[i]);			else				cl.model_clip[i-CS_MODELS] = NULL;		}	}	else if (i >= CS_SOUNDS && i < CS_SOUNDS+MAX_MODELS)	{		if (cl.refresh_prepped)			cl.sound_precache[i-CS_SOUNDS] = S_RegisterSound (cl.configstrings[i]);	}	else if (i >= CS_IMAGES && i < CS_IMAGES+MAX_MODELS)	{		if (cl.refresh_prepped)			cl.image_precache[i-CS_IMAGES] = Draw_FindPic (cl.configstrings[i]);	}	else if (i == CS_MAXCLIENTS)	{		cl.maxclients = atoi(cl.configstrings[CS_MAXCLIENTS]);		clamp(cl.maxclients, 0, MAX_CLIENTS);	}	else if (i >= CS_PLAYERSKINS && i < CS_PLAYERSKINS+MAX_CLIENTS)	{		if (cl.refresh_prepped && strcmp(olds, s))			CL_ParseClientinfo (i-CS_PLAYERSKINS);	}}
开发者ID:hifi-unmaintained,项目名称:aprq2,代码行数:94,


示例25: BG_SiegeGetValueGroup

int BG_SiegeGetValueGroup(char *buf, char *group, char *outbuf){	int i = 0;	int j;	char checkGroup[4096];	qboolean isGroup;	int parseGroups = 0;	while (buf[i])	{		if (buf[i] != ' ' && buf[i] != '{' && buf[i] != '}' && buf[i] != '/n' && buf[i] != '/r' && buf[i] != SIEGECHAR_TAB)		{ //we're on a valid character			if (buf[i] == '/' &&				buf[i+1] == '/')			{ //this is a comment, so skip over it				while (buf[i] && buf[i] != '/n' && buf[i] != '/r' && buf[i] != SIEGECHAR_TAB)				{					i++;				}			}			else			{ //parse to the next space/endline/eos and check this value against our group value.				j = 0;				while (buf[i] != ' ' && buf[i] != '/n' && buf[i] != '/r' && buf[i] != SIEGECHAR_TAB && buf[i] != '{' && buf[i])				{					if (buf[i] == '/' && buf[i+1] == '/')					{ //hit a comment, break out.						break;					}					checkGroup[j] = buf[i];					j++;					i++;				}				checkGroup[j] = 0;				//Make sure this is a group as opposed to a globally defined value.				if (buf[i] == '/' && buf[i+1] == '/')				{ //stopped on a comment, so first parse to the end of it.                    while (buf[i] && buf[i] != '/n' && buf[i] != '/r')					{						i++;					}					while (buf[i] == '/n' || buf[i] == '/r')					{						i++;					}				}				if (!buf[i])				{					Com_Error(ERR_DROP, "Unexpected EOF while looking for group '%s'", group);				}				isGroup = qfalse;				while ( buf[i] && (buf[i] == ' ' || buf[i] == SIEGECHAR_TAB || buf[i] == '/n' || buf[i] == '/r') )				{ //parse to the next valid character					i++;				}				if (buf[i] == '{')				{ //if the next valid character is an opening bracket, then this is indeed a group					isGroup = qtrue;				}				//Is this the one we want?				if (isGroup && !Q_stricmp(checkGroup, group))				{ //guess so. Parse until we hit the { indicating the beginning of the group.					while (buf[i] != '{' && buf[i])					{						i++;					}					if (buf[i])					{ //We're at the start of the group now, so parse to the closing bracket.						j = 0;						parseGroups = 0;						while ((buf[i] != '}' || parseGroups) && buf[i])						{							if (buf[i] == '{')							{ //increment for the opening bracket.								parseGroups++;							}							else if (buf[i] == '}')							{ //decrement for the closing bracket								parseGroups--;							}							if (parseGroups < 0)							{ //Syntax error, I guess.								Com_Error(ERR_DROP, "Found a closing bracket without an opening bracket while looking for group '%s'", group);							}							if ((buf[i] != '{' || parseGroups > 1) &&								(buf[i] != '}' || parseGroups > 0))							{ //don't put the start and end brackets for this group into the output buffer//.........这里部分代码省略.........
开发者ID:BSzili,项目名称:OpenJK,代码行数:101,


示例26: BG_SiegeParseClassFile

void BG_SiegeParseClassFile(const char *filename, siegeClassDesc_t *descBuffer){	fileHandle_t f;	int len;	int i;	char classInfo[4096];	char parseBuf[4096];	len = trap->FS_Open( filename, &f, FS_READ );	if (!f || len >= 4096)	{		return;	}	trap->FS_Read( classInfo, len, f );	trap->FS_Close( f );	classInfo[len] = 0;	//first get the description if we have a buffer for it	if (descBuffer)	{		if (!BG_SiegeGetPairedValue(classInfo, "description", descBuffer->desc))		{			Q_strncpyz(descBuffer->desc, "DESCRIPTION UNAVAILABLE", sizeof(descBuffer->desc));		}		//Hit this assert?  Memory has already been trashed.  Increase		//SIEGE_CLASS_DESC_LEN.		assert(strlen(descBuffer->desc) < SIEGE_CLASS_DESC_LEN);	}	BG_SiegeGetValueGroup(classInfo, "ClassInfo", classInfo);	//Parse name	if (BG_SiegeGetPairedValue(classInfo, "name", parseBuf))	{		Q_strncpyz(bgSiegeClasses[bgNumSiegeClasses].name, parseBuf, sizeof(bgSiegeClasses[0].name));	}	else	{		Com_Error(ERR_DROP, "Siege class without name entry");	}	//Parse forced model	if (BG_SiegeGetPairedValue(classInfo, "model", parseBuf))	{		Q_strncpyz(bgSiegeClasses[bgNumSiegeClasses].forcedModel, parseBuf, sizeof(bgSiegeClasses[0].forcedModel));	}	else	{ //It's ok if there isn't one, it's optional.		bgSiegeClasses[bgNumSiegeClasses].forcedModel[0] = 0;	}	//Parse forced skin	if (BG_SiegeGetPairedValue(classInfo, "skin", parseBuf))	{		Q_strncpyz(bgSiegeClasses[bgNumSiegeClasses].forcedSkin, parseBuf, sizeof(bgSiegeClasses[0].forcedSkin));	}	else	{ //It's ok if there isn't one, it's optional.		bgSiegeClasses[bgNumSiegeClasses].forcedSkin[0] = 0;	}	//Parse first saber	if (BG_SiegeGetPairedValue(classInfo, "saber1", parseBuf))	{		Q_strncpyz(bgSiegeClasses[bgNumSiegeClasses].saber1, parseBuf, sizeof(bgSiegeClasses[0].saber1));	}	else	{ //It's ok if there isn't one, it's optional.		bgSiegeClasses[bgNumSiegeClasses].saber1[0] = 0;	}	//Parse second saber	if (BG_SiegeGetPairedValue(classInfo, "saber2", parseBuf))	{		Q_strncpyz(bgSiegeClasses[bgNumSiegeClasses].saber2, parseBuf, sizeof(bgSiegeClasses[0].saber2));	}	else	{ //It's ok if there isn't one, it's optional.		bgSiegeClasses[bgNumSiegeClasses].saber2[0] = 0;	}	//Parse forced saber stance	if (BG_SiegeGetPairedValue(classInfo, "saberstyle", parseBuf))	{		bgSiegeClasses[bgNumSiegeClasses].saberStance = BG_SiegeTranslateGenericTable(parseBuf, StanceTable, qtrue);	}	else	{ //It's ok if there isn't one, it's optional.		bgSiegeClasses[bgNumSiegeClasses].saberStance = 0;	}	//Parse forced saber color	if (BG_SiegeGetPairedValue(classInfo, "sabercolor", parseBuf))	{		bgSiegeClasses[bgNumSiegeClasses].forcedSaberColor = atoi(parseBuf);//.........这里部分代码省略.........
开发者ID:BSzili,项目名称:OpenJK,代码行数:101,


示例27: CL_CgameError

/*=====================CL_CgameError=====================*/void CL_CgameError( const char *string ) {	Com_Error( ERR_DROP, "%s", string );}
开发者ID:AlienHoboken,项目名称:Tremulous-Z-Server,代码行数:8,


示例28: Com_Error

/*============Cvar_GetIf the variable already exists, the value will not be set unless CVAR_ROMThe flags will be or'ed in if the variable exists.============*/cvar_t *Cvar_Get( const char *var_name, const char *var_value, uint32_t flags ) {	cvar_t	*var;	long	hash;	int		index;    if ( !var_name || ! var_value ) {		Com_Error( ERR_FATAL, "Cvar_Get: NULL parameter" );    }	if ( !Cvar_ValidateString( var_name ) ) {		Com_Printf("invalid cvar name string: %s/n", var_name );		var_name = "BADNAME";	}#if 0		// FIXME: values with backslash happen	if ( !Cvar_ValidateString( var_value ) ) {		Com_Printf("invalid cvar value string: %s/n", var_value );		var_value = "BADVALUE";	}#endif	var = Cvar_FindVar (var_name);	if ( var ) {		var_value = Cvar_Validate(var, var_value, qfalse);		// Make sure the game code cannot mark engine-added variables as gamecode vars		if(var->flags & CVAR_VM_CREATED)		{			if(!(flags & CVAR_VM_CREATED))				var->flags &= ~CVAR_VM_CREATED;		}		else if (!(var->flags & CVAR_USER_CREATED))		{			if(flags & CVAR_VM_CREATED)				flags &= ~CVAR_VM_CREATED;		}		// if the C code is now specifying a variable that the user already		// set a value for, take the new value as the reset value		if ( var->flags & CVAR_USER_CREATED )		{			var->flags &= ~CVAR_USER_CREATED;			Cvar_FreeString( var->resetString );			var->resetString = CopyString( var_value );			if(flags & CVAR_ROM)			{				// this variable was set by the user,				// so force it to value given by the engine.				if(var->latchedString)					Cvar_FreeString(var->latchedString);				var->latchedString = CopyString(var_value);			}		}		// Make sure servers cannot mark engine-added variables as SERVER_CREATED		if(var->flags & CVAR_SERVER_CREATED)		{			if(!(flags & CVAR_SERVER_CREATED))				var->flags &= ~CVAR_SERVER_CREATED;		}		else		{			if(flags & CVAR_SERVER_CREATED)				flags &= ~CVAR_SERVER_CREATED;		}		var->flags |= flags;		// only allow one non-empty reset string without a warning		if ( !var->resetString[0] ) {			// we don't have a reset string yet			Cvar_FreeString( var->resetString );			var->resetString = CopyString( var_value );		} else if ( var_value[0] && strcmp( var->resetString, var_value ) ) {			Com_DPrintf( S_COLOR_YELLOW "Warning: cvar /"%s/" given initial values: /"%s/" and /"%s/"/n",				var_name, var->resetString, var_value );		}		// if we have a latched string, take that value now		if ( var->latchedString ) {			char *s;			s = var->latchedString;			var->latchedString = NULL;	// otherwise cvar_set2 would free it			Cvar_Set2( var_name, s, 0, qtrue );			Cvar_FreeString( s );		}		// ZOID--needs to be set so that cvars the game sets as		// SERVERINFO get sent to clients//.........这里部分代码省略.........
开发者ID:DarthFutuza,项目名称:JediKnightGalaxies,代码行数:101,


示例29: CL_InitRef

void CL_InitRef( void ) {	refexport_t	*ret;	refimport_t rit;	char		dllName[MAX_OSPATH];	GetRefAPI_t	GetRefAPI;	Com_Printf( "----- Initializing Renderer ----/n" );    cl_renderer = Cvar_Get( "cl_renderer", DEFAULT_RENDER_LIBRARY, CVAR_ARCHIVE|CVAR_LATCH );	Com_sprintf( dllName, sizeof( dllName ), "%s_" ARCH_STRING DLL_EXT, cl_renderer->string );    #ifdef _WIN32    if( !(rendererLib = (void *)LoadLibrary( dllName )) && strcmp( cl_renderer->string, cl_renderer->resetString ) )    #else	if( !(rendererLib = Sys_LoadDll( dllName, qfalse )) && strcmp( cl_renderer->string, cl_renderer->resetString ) )    #endif	{		Com_Printf( "failed: trying to load fallback renderer/n" );		Cvar_ForceReset( "cl_renderer" );		Com_sprintf( dllName, sizeof( dllName ), DEFAULT_RENDER_LIBRARY "_" ARCH_STRING DLL_EXT );        #ifdef _WIN32        rendererLib = (void *)LoadLibrary( dllName );        #else		rendererLib = Sys_LoadDll( dllName, qfalse );        #endif	}	if ( !rendererLib ) {		Com_Error( ERR_FATAL, "Failed to load renderer" );	}    #ifdef _WIN32    GetRefAPI = (GetRefAPI_t)GetProcAddress( (HMODULE)rendererLib, "GetRefAPI" );    if ( !GetRefAPI )        Com_Error( ERR_FATAL, "CL_InitRef(): NULL GetRefAPI on handle for %s/n", dllName );    #else	GetRefAPI = (GetRefAPI_t)Sys_LoadFunction( rendererLib, "GetRefAPI" );	if ( !GetRefAPI )		Com_Error( ERR_FATAL, "Can't load symbol GetRefAPI: '%s'", Sys_LibraryError() );    #endif#define RIT(y)	rit.y = y	RIT(CIN_PlayCinematic);	RIT(CIN_RunCinematic);	RIT(CIN_UploadCinematic);	RIT(CL_IsRunningInGameCinematic);	RIT(Cmd_AddCommand);	RIT(Cmd_Argc);	RIT(Cmd_ArgsBuffer);	RIT(Cmd_Argv);	RIT(Cmd_ExecuteString);	RIT(Cmd_RemoveCommand);	RIT(CM_ClusterPVS);	RIT(CM_CullWorldBox);	RIT(CM_DeleteCachedMap);	RIT(CM_DrawDebugSurface);	RIT(CM_PointContents);	RIT(CM_RegisterTerrain);	RIT(CM_ShutdownTerrain);	RIT(CM_TerrainPatchIterate);	RIT(Cvar_Get);	RIT(Cvar_Set);	RIT(Cvar_SetValue);	RIT(Cvar_VariableIntegerValue);	RIT(Cvar_VariableString);	RIT(Cvar_VariableStringBuffer);	RIT(Cvar_VariableValue);	RIT(FS_FCloseFile);	RIT(FS_FileIsInPAK);	RIT(FS_FOpenFileByMode);	RIT(FS_FOpenFileRead);	RIT(FS_FOpenFileWrite);	RIT(FS_FreeFile);	RIT(FS_FreeFileList);	RIT(FS_ListFiles);	RIT(FS_Read);	RIT(FS_ReadFile);	RIT(FS_Write);	RIT(FS_WriteFile);	RIT(Hunk_ClearToMark);	RIT(SG_Append);	RIT(SND_RegisterAudio_LevelLoadEnd);	RIT(SV_GetConfigstring);	//RIT(SV_PointContents);	RIT(SV_SetConfigstring);	RIT(SV_Trace);	RIT(S_RestartMusic);	RIT(Z_Free);	RIT(Z_Malloc);	RIT(Z_MemSize);	RIT(Z_MorphMallocTag);	RIT(Hunk_ClearToMark);#ifndef _WIN32    RIT(IN_Init);    RIT(IN_Shutdown);    RIT(IN_Restart);#endif//.........这里部分代码省略.........
开发者ID:Joanxt,项目名称:OpenJK,代码行数:101,



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


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