这篇教程C++ vtos函数代码示例写得很实用,希望能帮到您。
本文整理汇总了C++中vtos函数的典型用法代码示例。如果您正苦于以下问题:C++ vtos函数的具体用法?C++ vtos怎么用?C++ vtos使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。 在下文中一共展示了vtos函数的26个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。 示例1: SP_misc_shield_floor_unit//QED comment is in bg_misc//------------------------------------------------------------void SP_misc_shield_floor_unit( gentity_t *ent ){ vec3_t dest; trace_t tr; if (g_gametype.integer != GT_CTF && g_gametype.integer != GT_CTY) { G_FreeEntity( ent ); return; } VectorSet( ent->r.mins, -16, -16, 0 ); VectorSet( ent->r.maxs, 16, 16, 40 ); ent->s.origin[2] += 0.1; ent->r.maxs[2] -= 0.1; VectorSet( dest, ent->s.origin[0], ent->s.origin[1], ent->s.origin[2] - 4096 ); trap_Trace( &tr, ent->s.origin, ent->r.mins, ent->r.maxs, dest, ent->s.number, MASK_SOLID ); if ( tr.startsolid ) { G_Printf ("SP_misc_shield_floor_unit: misc_shield_floor_unit startsolid at %s/n", vtos(ent->s.origin)); G_FreeEntity( ent ); return; } //add the 0.1 back after the trace ent->r.maxs[2] += 0.1; // allow to ride movers ent->s.groundEntityNum = tr.entityNum; G_SetOrigin( ent, tr.endpos ); if (!ent->health) { ent->health = 60; } if (!ent->model || !ent->model[0]) { ent->model = "/models/items/a_shield_converter.md3"; } ent->s.modelindex = G_ModelIndex( ent->model ); ent->s.eFlags = 0; ent->r.svFlags |= SVF_PLAYER_USABLE; ent->r.contents = CONTENTS_SOLID; ent->clipmask = MASK_SOLID; EnergyShieldStationSettings(ent); ent->boltpoint4 = ent->count; //initial value ent->think = check_recharge; ent->nextthink = level.time + STATION_RECHARGE_TIME; ent->use = shield_power_converter_use; VectorCopy( ent->s.angles, ent->s.apos.trBase ); trap_LinkEntity (ent); G_SoundIndex("sound/interface/shieldcon_run.wav"); G_SoundIndex("sound/interface/shieldcon_done.mp3"); G_SoundIndex("sound/interface/shieldcon_empty.mp3");}
开发者ID:Boothand,项目名称:Birdbones,代码行数:69,
示例2: _TBOOL CPreStylePag::ModifyTextStyleProperty( CString strTSName, CString strShxFile, CString strBigFile, double dHeight, double dWidthFactor, double dAngleByDegree, short iGenerationFlag){ CMObject obj, tsobj; long i, nCount; CString strtmp;// HRESULT retCode; //进行参数检查和初始化 strTSName.TrimLeft(); strTSName.TrimRight(); strTSName.MakeUpper(); if(strTSName.GetLength() <= 0) return FALSE; strShxFile.TrimLeft(); strShxFile.TrimRight(); if(strShxFile.GetLength() <= 0) return FALSE; strBigFile.TrimLeft(); strBigFile.TrimRight(); if(strBigFile.GetLength() <= 0) return FALSE; if(strBigFile == "不使用大字体") strBigFile = ""; if(dHeight < 0.0) return FALSE; if(dWidthFactor < 0.0) return FALSE; if(dAngleByDegree > 85.0 || dAngleByDegree < -85.0) return FALSE; iGenerationFlag &= 0x06; if(dAngleByDegree < 0) dAngleByDegree += 360; dAngleByDegree *= 3.14159265359; dAngleByDegree /= 180.0; try { if(FindAcad() == FALSE) { return FALSE; } //SETUP-1: 获取ACAD文本样式列表 obj = EDIBAcad::objAcadDoc.GetPropertyByName( _T("TextStyles")); //SETUP-2: 获取样式对象 nCount = (long)obj.GetPropertyByName(_T("Count")); for( i = 0; i < nCount; i++) { tsobj = obj.Invoke(_T("Item"), 1, &_variant_t(i)); strtmp = vtos(tsobj.GetPropertyByName(_T("Name"))); strtmp.TrimLeft(); strtmp.TrimRight(); strtmp.MakeUpper(); if(strtmp == strTSName) { //更改目标样式的属性值 tsobj.PutPropertyByName(_T("FontFile"), //设定字体文件名 &_variant_t(strShxFile)); tsobj.PutPropertyByName(_T("BigFontFile"), //设定大字体文件名 &_variant_t(strBigFile)); tsobj.PutPropertyByName(_T("Height"), //设定字体高度 &_variant_t(dHeight)); tsobj.PutPropertyByName(_T("Width"), //设定宽度比例因子*** &_variant_t(dWidthFactor)); tsobj.PutPropertyByName(_T("ObliqueAngle"), //设定字体倾斜角度 &_variant_t(dAngleByDegree)); tsobj.PutPropertyByName(_T("TextGenerationFlag"), //设定字体生成字段 &_variant_t(iGenerationFlag)); return TRUE; } } } catch (_com_error &e) { CString strMsg; strMsg.Format("%s:%d %s", __FILE__, __LINE__, (LPSTR)e.Description()); AfxMessageBox(strMsg); } catch(...) { } return FALSE;}
开发者ID:uesoft,项目名称:AutoPHS,代码行数:90,
示例3: G_SetupPath2/*===========G_SetupPathent is the who is going to use the pathtarget is the targetname of the first path entity in the pathThis function also supports pervTrain, so that paths can be two way.Based on Q3's g_mover.c's Think_SetupTrainTargets===========*/static gpathtype_e G_SetupPath2(gentity_t *ent, const char *target){ gentity_t *path, *next, *start; int i = 0, prev_flags = 0; qboolean pathNotBegin = qfalse; // qtrue it trying to start a path entity without PATHF_BEGIN if (!ent) { return PATH_ERROR; } ent->prevTrain = NULL; ent->nextTrain = NULL; if (!target || target[0] == '/0') { // This is supported, so its not really an error... return PATH_ERROR; } // Only start path on a path entity not just the first one we find, // also support PATHF_BEGIN do { ent->nextTrain = G_Find( ent->nextTrain, FOFS(targetname), target ); if ( !ent->nextTrain ) { if (pathNotBegin) G_Printf( "Entity using paths at %s with a target of wrong path type/n", vtos(ent->r.absmin) ); else G_Printf( "Entity using paths at %s with an unfound target/n", vtos(ent->r.absmin) ); return PATH_ERROR; } // Check for all path types, not just "path_corner" for (i=0; gpathinfo[i].classname; i++) { if (!strcmp( ent->nextTrain->classname, gpathinfo[i].classname )) { if (gpathinfo[i].flags & PATHF_BEGIN) { pathNotBegin = qfalse; break; } else { pathNotBegin = qtrue; } } } } while ( !gpathinfo[i].classname ); // First two path entities are linked, and the second one's prev is the first one. // This means that the path was already setup, if (ent->nextTrain->nextTrain && ent->nextTrain->nextTrain->prevTrain == ent->nextTrain && (ent->nextTrain->pathflags & PATH_FIRST)) { // The path's nextTrain should only be set here is this should be fine, // unless somehow a mapper changed the path after the train was started... if (ent->nextTrain->pathflags & PATH_CIRCIT) return PATH_CIRCIT; else if (ent->nextTrain->pathflags & PATH_LINE) return PATH_LINE; else return PATH_ERROR; } start = NULL; next = NULL; for ( path = ent->nextTrain ; path != start ; path = next ) { if ( !start ) { start = path; start->prevTrain = NULL; start->pathflags = PATH_FIRST; } if ( !path->target ) { // End path properly start->pathflags = PATH_LINE | PATH_FIRST; path->pathflags = PATH_LINE | PATH_LAST; path->nextTrain = NULL; if (prev_flags & PATHF_CANFINISH) { return PATH_LINE; // path ended normally. }//.........这里部分代码省略.........
开发者ID:Extraordinary-Beat-X,项目名称:ebx-code,代码行数:101,
示例4: train_spline_nextvoid train_spline_next (edict_t *self){ edict_t *ent; vec3_t dest; qboolean first; vec3_t angles,v; first = true;again: if (!self->target) { self->s.sound = 0; return; } ent = G_PickTarget (self->target); if (!ent) { gi.dprintf ("train_spline_next: bad target %s/n", self->target); return; } // spline stuff: self->from = self->to; self->to = ent; VectorSubtract(self->from->s.origin,self->to->s.origin,v); self->moveinfo.distance = VectorLength(v); self->moveinfo.ratio = 0.0; // end spline stuff self->target = ent->target; // check for a teleport path_corner if (ent->spawnflags & 1) { if (!first) { gi.dprintf ("connected teleport path_corners, see %s at %s/n", ent->classname, vtos(ent->s.origin)); return; } first = false; VectorSubtract (ent->s.origin, self->mins, self->s.origin); VectorCopy (self->s.origin, self->s.old_origin); self->s.event = EV_OTHER_TELEPORT; gi.linkentity (self); goto again; } self->moveinfo.wait = ent->wait; self->target_ent = ent; if (!(self->flags & FL_TEAMSLAVE)) { if (self->moveinfo.sound_start) gi.sound (self, CHAN_NO_PHS_ADD+CHAN_VOICE, self->moveinfo.sound_start, 1, ATTN_STATIC, 0); self->s.sound = self->moveinfo.sound_middle; } VectorSubtract (ent->s.origin, self->mins, dest); self->moveinfo.state = STATE_TOP; VectorCopy (self->s.origin, self->moveinfo.start_origin); VectorCopy (dest, self->moveinfo.end_origin); // Rroff rotating if (self->spawnflags & TRAIN_ROTATE && !(ent->spawnflags & 2)) { // Lazarus: No no no :-). This is measuring from the center // of the func_train to the path_corner. Should // be path_corner to path_corner. //VectorSubtract (ent->s.origin, self->s.origin, v); VectorAdd(self->s.origin,self->mins,v); VectorSubtract(ent->s.origin,v,v); vectoangles(v,angles); self->ideal_yaw = angles[YAW]; self->ideal_pitch = angles[PITCH]; if(self->ideal_pitch < 0) self->ideal_pitch += 360; self->ideal_roll = ent->roll; VectorClear(self->movedir); self->movedir[1] = 1.0; } Move_Calc (self, dest, train_spline_wait); self->spawnflags |= TRAIN_START_ON;}
开发者ID:Nephatrine,项目名称:nephq2-game,代码行数:83,
示例5: FinishSpawningItem//.........这里部分代码省略......... } //NOTE: should I keep this string around for any reason? Will I ever need it later? //ent->??? = G_NewString( itemSaber.model ); gi.G2API_InitGhoul2Model( ent->ghoul2, itemSaber.model, G_ModelIndex( itemSaber.model ), NULL_HANDLE, NULL_HANDLE, 0, 0); WP_SaberFreeStrings(itemSaber); } else { gi.G2API_InitGhoul2Model( ent->ghoul2, ent->item->world_model, G_ModelIndex( ent->item->world_model ), NULL_HANDLE, NULL_HANDLE, 0, 0); } // Set crystal ammo amount based on skill level/* if ((itemNum == ITM_AMMO_CRYSTAL_BORG) || (itemNum == ITM_AMMO_CRYSTAL_DN) || (itemNum == ITM_AMMO_CRYSTAL_FORGE) || (itemNum == ITM_AMMO_CRYSTAL_SCAVENGER) || (itemNum == ITM_AMMO_CRYSTAL_STASIS)) { CrystalAmmoSettings(ent); }*/ ent->s.eType = ET_ITEM; ent->s.modelindex = ent->item - bg_itemlist; // store item number in modelindex ent->s.modelindex2 = 0; // zero indicates this isn't a dropped item ent->contents = CONTENTS_TRIGGER|CONTENTS_ITEM;//CONTENTS_BODY;//CONTENTS_TRIGGER| ent->e_TouchFunc = touchF_Touch_Item; // useing an item causes it to respawn ent->e_UseFunc = useF_Use_Item; ent->svFlags |= SVF_PLAYER_USABLE;//so player can pick it up // Hang in air? ent->s.origin[2] += 1;//just to get it off the damn ground because coplanar = insolid if ( (ent->spawnflags&ITMSF_SUSPEND) || (ent->flags&FL_DROPPED_ITEM) ) { // suspended G_SetOrigin( ent, ent->s.origin ); } else { // drop to floor VectorSet( dest, ent->s.origin[0], ent->s.origin[1], MIN_WORLD_COORD ); gi.trace( &tr, ent->s.origin, ent->mins, ent->maxs, dest, ent->s.number, MASK_SOLID|CONTENTS_PLAYERCLIP, (EG2_Collision)0, 0 ); if ( tr.startsolid ) { if ( &g_entities[tr.entityNum] != NULL ) { gi.Printf (S_COLOR_RED"FinishSpawningItem: removing %s startsolid at %s (in a %s)/n", ent->classname, vtos(ent->s.origin), g_entities[tr.entityNum].classname ); } else { gi.Printf (S_COLOR_RED"FinishSpawningItem: removing %s startsolid at %s (in a %s)/n", ent->classname, vtos(ent->s.origin) ); } assert( 0 && "item starting in solid"); if (!g_entities[ENTITYNUM_WORLD].s.radius){ //not a region delayedShutDown = level.time + 100; } G_FreeEntity( ent ); return; } // allow to ride movers ent->s.groundEntityNum = tr.entityNum; G_SetOrigin( ent, tr.endpos ); }/* ? don't need this // team slaves and targeted items aren't present at start if ( ( ent->flags & FL_TEAMSLAVE ) || ent->targetname ) { ent->s.eFlags |= EF_NODRAW; ent->contents = 0; return; }*/ if ( ent->spawnflags & ITMSF_INVISIBLE ) // invisible { ent->s.eFlags |= EF_NODRAW; ent->contents = 0; } if ( ent->spawnflags & ITMSF_NOTSOLID ) // not solid { ent->contents = 0; } if ( (ent->spawnflags&ITMSF_STATIONARY) ) {//can't be pushed around ent->flags |= FL_NO_KNOCKBACK; } if ( (ent->flags&FL_DROPPED_ITEM) ) {//go away after 30 seconds ent->e_ThinkFunc = thinkF_G_FreeEntity; ent->nextthink = level.time + 30000; } gi.linkentity (ent);}
开发者ID:DustysPatch,项目名称:OpenJK,代码行数:101,
示例6: Cmd_Where_f/*==================Cmd_Where_f==================*/void Cmd_Where_f( gentity_t *ent ) { trap_SendServerCommand( ent-g_entities, va("print /"%s/n/"", vtos(ent->r.currentOrigin) ) );}
开发者ID:ArtanAhmeti,项目名称:lab,代码行数:8,
示例7: G_Spawngentity_t *SpawnObelisk( vec3_t origin, int team, int spawnflags) { trace_t tr; vec3_t dest; gentity_t *ent; ent = G_Spawn(); VectorCopy( origin, ent->s.origin ); VectorCopy( origin, ent->s.pos.trBase ); VectorCopy( origin, ent->r.currentOrigin ); VectorSet( ent->r.mins, -15, -15, 0 ); VectorSet( ent->r.maxs, 15, 15, 87 ); ent->s.eType = ET_GENERAL; ent->flags = FL_NO_KNOCKBACK; if( g_gametype.integer == GT_OBELISK ) { ent->r.contents = CONTENTS_SOLID; ent->takedamage = qtrue; ent->health = g_obeliskHealth.integer; ent->die = ObeliskDie; ent->pain = ObeliskPain; ent->think = ObeliskRegen; ent->nextthink = level.time + g_obeliskRegenPeriod.integer * 1000; } if( g_gametype.integer == GT_HARVESTER ) { ent->r.contents = CONTENTS_TRIGGER; ent->touch = ObeliskTouch; } if ( spawnflags & 1 ) { // suspended G_SetOrigin( ent, ent->s.origin ); } else { // mappers like to put them exactly on the floor, but being coplanar // will sometimes show up as starting in solid, so lif it up one pixel ent->s.origin[2] += 1; // drop to floor VectorSet( dest, ent->s.origin[0], ent->s.origin[1], ent->s.origin[2] - 4096 ); trap_Trace( &tr, ent->s.origin, ent->r.mins, ent->r.maxs, dest, ent->s.number, MASK_SOLID ); if ( tr.startsolid ) { ent->s.origin[2] -= 1; G_Printf( "SpawnObelisk: %s startsolid at %s/n", ent->classname, vtos(ent->s.origin) ); ent->s.groundEntityNum = ENTITYNUM_NONE; G_SetOrigin( ent, ent->s.origin ); } else { // allow to ride movers ent->s.groundEntityNum = tr.entityNum; G_SetOrigin( ent, tr.endpos ); } } ent->spawnflags = team; trap_LinkEntity( ent ); return ent;}
开发者ID:0culus,项目名称:ioq3,代码行数:62,
示例8: team/*QUAKED dm_props_banner (.5 0 1) (-4 -4 -4) (4 4 4)Temp banner for teamplay style = team (1 / 2) scale = scale the size up/down (2 = double size)model="models/props/temp/triangle/small.md2"*/void SP_dm_props_banner (edict_t *self){// vec3_t end, bestnorm, bestend;// float bestdist;// int x,y;// trace_t tr; if (!deathmatch_value || !teamplay->value) { // remove G_FreeEdict (self); return; } if (!self->style) { gi.dprintf( "%s has invalid style (should be 1 or 2) at %s/n", self->classname, vtos(self->s.origin) ); G_FreeEdict (self); return; }/* // trace a line back, to get the wall, then go out { bestdist = 9999; for (x=-256; x<300; x+= 256) { VectorCopy( self->s.origin, end ); end[0] = self->s.origin[0] + x; tr = gi.trace( self->s.origin, NULL, NULL, end, NULL, MASK_SOLID ); if (tr.fraction < bestdist) { VectorCopy( tr.plane.normal, bestnorm ); VectorCopy( tr.endpos, bestend ); bestdist = tr.fraction; } } for (y=-256; y<300; y+= 256) { VectorCopy( self->s.origin, end ); end[1] = self->s.origin[1] + y; tr = gi.trace( self->s.origin, NULL, NULL, end, NULL, MASK_SOLID ); if (tr.fraction < bestdist) { VectorCopy( tr.plane.normal, bestnorm ); VectorCopy( tr.endpos, bestend ); bestdist = tr.fraction; } } vectoangles( bestnorm, self->s.angles ); VectorMA( bestend, 40 * self->cast_info.scale, bestnorm, self->s.origin ); }*/// Ridah, 1-jun-99, use flag models for now#if 1 { void think_flag (edict_t *self);// self->solid = SOLID_BBOX; self->movetype = MOVETYPE_NONE; if (self->style == 2) { self->model = "models/props/flag/flag1.md2"; } else { self->model = "models/props/flag/flag3.md2"; } self->s.modelindex = gi.modelindex (self->model); self->s.renderfx2 |= RF2_NOSHADOW; self->s.renderfx |= RF_MINLIGHT; if (!self->cast_info.scale) self->cast_info.scale = 1; self->s.scale = (self->cast_info.scale - 1);// VectorMA( bestend, 40 * self->cast_info.scale, bestnorm, self->s.origin ); self->cast_info.scale *= 0.3; gi.linkentity (self); self->s.effects |= EF_ANIM_ALLFAST_NEW; self->s.renderfx2 |= RF2_MODULUS_FRAME; self->s.renderfx2 |= RDF_NOLERP;//.........这里部分代码省略.........
开发者ID:MonkeyHarris,项目名称:monkey-mod,代码行数:101,
示例9: Svcmd_EntityShow_f/*===================Svcmd_EntityShow_f===================*/void Svcmd_EntityShow_f(){ int entityNum; int lastTargetIndex, targetIndex; gentity_t *selection; gentity_t *possibleTarget = nullptr; char argument[ 6 ]; if (trap_Argc() != 2) { G_Printf("usage: entityShow <entityId>/n"); return; } trap_Argv( 1, argument, sizeof( argument ) ); entityNum = atoi( argument ); if (entityNum >= level.num_entities || entityNum < MAX_CLIENTS) { G_Printf("entityId %d is out of range/n", entityNum); return; } selection = &g_entities[entityNum]; if (!selection->inuse) { G_Printf("entity slot %d is unused/free/n", entityNum); return; } G_Printf( " C++ vty_out函数代码示例 C++ vtophys函数代码示例
|