本文整理汇总了C++中CVar::GetInt方法的典型用法代码示例。如果您正苦于以下问题:C++ CVar::GetInt方法的具体用法?C++ CVar::GetInt怎么用?C++ CVar::GetInt使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CVar
的用法示例。
在下文中一共展示了CVar::GetInt方法的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: CreateLobby
void CLobbyPanel::CreateLobby(bool bOnline)
{
m_bOnline = bOnline;
CGameLobbyClient::SetLobbyUpdateCallback(&LobbyUpdateCallback);
CGameLobbyClient::SetLobbyJoinCallback(&LobbyJoinCallback);
CGameLobbyClient::SetLobbyLeaveCallback(&LobbyLeaveCallback);
CGameLobbyClient::SetBeginGameCallback(&BeginGameCallback);
const char* pszPort = DigitanksWindow()->GetCommandLineSwitchValue("--lobby-port");
int iPort = pszPort?atoi(pszPort):0;
m_iLobby = CGameLobbyServer::CreateLobby();
CGameLobbyServer::SetListener(DigitanksLobbyListener());
if (m_bOnline)
{
GameNetwork()->Disconnect();
LobbyNetwork()->Disconnect();
LobbyNetwork()->SetCallbacks(NULL, NULL, CGameLobbyServer::ClientEnterGame, CGameLobbyServer::ClientDisconnect);
LobbyNetwork()->CreateHost(iPort);
}
CGameLobbyClient::S_JoinLobby(m_iLobby);
CGameLobbyClient::S_UpdatePlayer(_T("host"), _T("1"));
CGameLobbyClient::S_UpdateLobby(_T("gametype"), tsprintf(tstring("%d"), (gametype_t)lobby_gametype.GetInt()));
if (!m_bOnline)
{
CGameLobbyClient::S_AddBot();
CGameLobbyClient::S_AddBot();
CGameLobbyClient::S_AddBot();
}
for (size_t i = 0; i < CGameLobbyClient::L_GetNumPlayers(); i++)
CGameLobbyClient::S_UpdatePlayer(CGameLobbyClient::L_GetPlayer(i)->iID, _T("color"), tsprintf(tstring("%d"), i));
if ((gametype_t)lobby_gametype.GetInt() == GAMETYPE_ARTILLERY)
m_pDockPanel->SetDockedPanel(new CArtilleryGamePanel(true));
else
m_pDockPanel->SetDockedPanel(new CStrategyGamePanel(true));
SetVisible(true);
DigitanksWindow()->GetMainMenu()->SetVisible(false);
m_bLayout = true;
}
示例2: GetCVarInt
int CVar::GetCVarInt(tstring sName)
{
CVar* pVar = FindCVar(sName);
if (!pVar)
return 0;
return pVar->GetInt();
}
示例3: PreStep
void CCharacterController::PreStep(btCollisionWorld* pCollisionWorld)
{
int i = 0;
while (RecoverFromPenetration(pCollisionWorld))
{
i++;
if (i > phys_maxpenetrationrecover.GetInt())
{
TMsg(tsprintf("%f Character controller couldn't recover from penetration.\n", GameServer()->GetGameTime()));
break;
}
}
}
示例4: Update
void StoneMine::Update(const float dtime)
{
m_line.Update(dtime * v_numzpr.GetFloat(), m_stone, v_numworks.GetInt());
}
示例5: GenerateTriangleByTexel
//.........这里部分代码省略.........
float flV = ((float)j + 0.5f)/(float)m_iHeight;
bool bInside = PointInTriangle(Vector(flU,flV,0), vu1, vu2, vu3);
if (!bInside)
continue;
Vector v1 = pMeshInstance->GetVertex(pV1->v);
Vector v2 = pMeshInstance->GetVertex(pV2->v);
Vector v3 = pMeshInstance->GetVertex(pV3->v);
Vector vn1 = pMeshInstance->GetNormal(pV1->vn);
Vector vn2 = pMeshInstance->GetNormal(pV2->vn);
Vector vn3 = pMeshInstance->GetNormal(pV3->vn);
// Find where the UV is in world space.
// First build 2x2 a "matrix" of the UV values.
float mta = vu2.x - vu1.x;
float mtb = vu3.x - vu1.x;
float mtc = vu2.y - vu1.y;
float mtd = vu3.y - vu1.y;
// Invert it.
float d = mta*mtd - mtb*mtc;
float mtia = mtd / d;
float mtib = -mtb / d;
float mtic = -mtc / d;
float mtid = mta / d;
// Now build a 2x3 "matrix" of the vertices.
float mva = v2.x - v1.x;
float mvb = v3.x - v1.x;
float mvc = v2.y - v1.y;
float mvd = v3.y - v1.y;
float mve = v2.z - v1.z;
float mvf = v3.z - v1.z;
// Multiply them together.
// [a b] [a b] [a b]
// [c d] * [c d] = [c d]
// [e f] [e f]
// Really wish I had a matrix math library about now!
float mra = mva*mtia + mvb*mtic;
float mrb = mva*mtib + mvb*mtid;
float mrc = mvc*mtia + mvd*mtic;
float mrd = mvc*mtib + mvd*mtid;
float mre = mve*mtia + mvf*mtic;
float mrf = mve*mtib + mvf*mtid;
// These vectors should be the U and V axis in world space.
Vector vecUAxis(mra, mrc, mre);
Vector vecVAxis(mrb, mrd, mrf);
Vector vecUVOrigin = v1 - vecUAxis * vu1.x - vecVAxis * vu1.y;
Vector vecUVPosition = vecUVOrigin + vecUAxis * flU + vecVAxis * flV;
Vector vecNormal;
if (m_bCreaseEdges)
vecNormal = pFace->GetNormal();
else
{
float wv1 = DistanceToLine(vecUVPosition, v2, v3) / DistanceToLine(v1, v2, v3);
float wv2 = DistanceToLine(vecUVPosition, v1, v3) / DistanceToLine(v2, v1, v3);
float wv3 = DistanceToLine(vecUVPosition, v1, v2) / DistanceToLine(v3, v1, v2);
vecNormal = vn1 * wv1 + vn2 * wv2 + vn3 * wv3;
}
if (ao_debug.GetInt() > 1)
SMAKWindow()->AddDebugLine(vecUVPosition, vecUVPosition + vecNormal/2);
size_t iTexel;
if (!Texel(i, j, iTexel, false))
continue;
if (m_eAOMethod == AOMETHOD_RENDER)
{
// Render the scene from this location
m_avecShadowValues[iTexel] += RenderSceneFromPosition(vecUVPosition, vecNormal, pFace);
}
else if (m_eAOMethod == AOMETHOD_RAYTRACE)
{
RaytraceSceneMultithreaded(pTracer, vecUVPosition, vecNormal, pMeshInstance, pFace, iTexel);
}
m_aiShadowReads[iTexel]++;
m_bPixelMask[iTexel] = true;
m_pWorkListener->WorkProgress(++iRendered);
if (m_bStopGenerating)
break;
}
if (m_bStopGenerating)
break;
}
}
示例6: GenerateShadowMaps
void CAOGenerator::GenerateShadowMaps()
{
double flProcessSceneRead = 0;
double flProgress = 0;
size_t iShadowMapSize = 1024;
// A frame buffer for holding the depth buffer shadow render
CFrameBuffer oDepthFB = SMAKRenderer()->CreateFrameBuffer(iShadowMapSize, iShadowMapSize, (fb_options_e)(FB_DEPTH_TEXTURE|FB_RENDERBUFFER)); // RB unused
// A frame buffer for holding the UV layout once it is rendered flat with the shadow
CFrameBuffer oUVFB = SMAKRenderer()->CreateFrameBuffer(m_iWidth, m_iHeight, (fb_options_e)(FB_TEXTURE|FB_LINEAR|FB_DEPTH)); // Depth unused
// A frame buffer for holding the completed AO map
m_oAOFB = SMAKRenderer()->CreateFrameBuffer(m_iWidth, m_iHeight, (fb_options_e)(FB_TEXTURE|FB_TEXTURE_HALF_FLOAT|FB_LINEAR|FB_DEPTH)); // Depth unused
CRenderingContext c(SMAKRenderer());
c.UseFrameBuffer(&m_oAOFB);
c.ClearColor(Color(0, 0, 0, 0));
c.SetDepthFunction(DF_LEQUAL);
c.SetDepthTest(true);
c.SetBackCulling(false);
Matrix4x4 mBias(
0.5f, 0.0f, 0.0f, 0.0f,
0.0f, 0.5f, 0.0f, 0.0f,
0.0f, 0.0f, 0.5f, 0.0f,
0.5f, 0.5f, 0.5f, 1.0f); // Bias from [-1, 1] to [0, 1]
AABB oBox = m_pScene->m_oExtends;
Vector vecCenter = oBox.Center();
float flSize = oBox.Size().Length(); // Length of the box's diagonal
Matrix4x4 mLightProjection = Matrix4x4::ProjectOrthographic(-flSize/2, flSize/2, -flSize/2, flSize/2, 1, flSize*2);
size_t iSamples = (size_t)sqrt((float)m_iSamples);
m_pWorkListener->SetAction("Taking exposures", m_iSamples);
for (size_t x = 0; x <= iSamples; x++)
{
float flPitch = -asin(RemapVal((float)x, 0, (float)iSamples, -1, 1)) * 90 / (M_PI/2);
for (size_t y = 0; y < iSamples; y++)
{
if (x == 0 || x == iSamples)
{
// Don't do a bunch of samples from the same spot on the poles.
if (y != 0)
continue;
}
float flYaw = RemapVal((float)y, 0, (float)iSamples, -180, 180);
// Randomize the direction a tad to help fight moire
Vector vecDir = AngleVector(EAngle(flPitch+RandomFloat(-1, 1)/2, flYaw+RandomFloat(-1, 1)/2, 0));
Vector vecLightPosition = vecDir*flSize + vecCenter; // Puts us twice as far from the closest vertex
if (ao_debug.GetInt() > 1)
SMAKWindow()->AddDebugLine(vecLightPosition, vecLightPosition-vecDir);
Matrix4x4 mLightView = Matrix4x4::ConstructCameraView(vecLightPosition, (vecCenter-vecLightPosition).Normalized(), Vector(0, 1, 0));
c.SetProjection(mLightProjection);
c.SetView(mLightView);
// If we're looking from below and ground occlusion is on, don't bother with this render.
if (!(flPitch < -10 && m_bGroundOcclusion))
{
c.UseProgram("model");
c.UseFrameBuffer(&oDepthFB);
c.SetViewport(Rect(0, 0, iShadowMapSize, iShadowMapSize));
c.SetBackCulling(false);
c.ClearDepth();
c.BeginRenderVertexArray(m_iSceneDepth);
c.SetPositionBuffer((size_t)0, 8*sizeof(float));
c.SetNormalsBuffer((size_t)3*sizeof(float), 8*sizeof(float));
c.SetTexCoordBuffer((size_t)6*sizeof(float), 8*sizeof(float));
c.EndRenderVertexArray(m_iSceneDepthVerts);
c.UseFrameBuffer(nullptr);
if (ao_debug.GetBool())
{
CRenderingContext c(SMAKRenderer());
c.SetViewport(Rect(0, 0, iShadowMapSize/2, iShadowMapSize/2));
DrawTexture(oDepthFB.m_iDepthTexture, 1, c);
}
}
Matrix4x4 mTextureMatrix = mBias*mLightProjection*mLightView;
{
CRenderingContext c(SMAKRenderer(), true);
//.........这里部分代码省略.........