예제 #1
0
void CCamera::KeyDown(int c)
{
	if (CVar::GetCVarBool("cheats") && c == 'Z')
	{
		cam_free.SetValue(m_bFreeMode?_T("off"):_T("on"));

		if (lock_freemode_frustum.GetBool())
		{
			if (m_bFreeMode)
				GameServer()->GetRenderer()->FrustumOverride(GetCameraPosition(), GetCameraTarget(), GetCameraFOV(), GetCameraNear(), GetCameraFar());
			else
				GameServer()->GetRenderer()->CancelFrustumOverride();
		}
	}

	if (m_bFreeMode)
	{
		if (c == 'W')
			m_vecFreeVelocity.x = 10.0f;
		if (c == 'S')
			m_vecFreeVelocity.x = -10.0f;
		if (c == 'D')
			m_vecFreeVelocity.z = 10.0f;
		if (c == 'A')
			m_vecFreeVelocity.z = -10.0f;
	}
}
예제 #2
0
void CVar::SetCVar(tstring sName, float flValue)
{
	CVar* pVar = FindCVar(sName);
	if (!pVar)
		return;

	pVar->SetValue(flValue);
}
예제 #3
0
void CVar::SetCVar(tstring sName, int iValue)
{
	CVar* pVar = FindCVar(sName);
	if (!pVar)
		return;

	pVar->SetValue(iValue);
}
예제 #4
0
void SetCVar(CCommand* pCommand, tvector<tstring>& asTokens, const tstring& sCommand)
{
	CVar* pCVar = dynamic_cast<CVar*>(pCommand);
	TAssert(pCVar);
	if (!pCVar)
		return;

	if (asTokens.size() > 1)
		pCVar->SetValue(asTokens[1]);

	TMsg(sprintf(tstring("%s = %s\n"), pCVar->GetName().c_str(), pCVar->GetValue().c_str()));
}
예제 #5
0
void CConsole::ExecuteString(char *sCommand)
{
	// przekaz aktualne zrodlo wywolania
	//g_CmdSource = src;

	// podziel linijke na slowa. od teraz mamy do nich dostep przez funkcje dostepowe
	TokenizeString (sCommand);

	// jesli nie ma zadnych slow, koniec
	if (!m_iCmdArgc)
		return;

	// jesli to komentarz, pomin
	if ( strlen(sCommand)>1 && sCommand[0]=='/' && sCommand[1]=='/' )
		return;

	// Sprawdzamy czy istnieje dana komenda lub zmienna
	CCommandBase *pCommand = GetCommand( GetArgument(0) );
	if ( !pCommand )
	{
		Output( "Unknown command: %s", GetArgument(0) );
		return;
	}

	// Jesli to komenda, wykonujemy ja i konczymy
	if ( pCommand->IsCommand() )
	{
		(( CCommand * )pCommand )->Dispatch();
		return;
	}

	// Jesli to zmienna:
	// Jesli jeden wyraz, pokaz zmienna
	if ( m_iCmdArgc == 1 )
	{
		Output("    %s = %s", (( CVar * )pCommand)->GetName(), (( CVar * )pCommand)->GetString() );
		return;
	}

	// Jesli dwa wyrazy, sprobuj przypisac wartosc
	if ( m_iCmdArgc == 2 )
	{
		CVar *cv = ( CVar * )pCommand;

		cv->SetValue( GetArgument(1) );

		Output("CVar changed:   %s  =  %s", GetArgument(0), cv->GetString());
		return;
	}

	// --- sprawdzamy komendy! ---
	// sprobuj znalezc komende o nazwie jak w pierwszym parametrze
/*	CCommandBase *pCommand = CCommandBase::FindCommand( m_szCmdArgv[0] );

	// jesli to komenda, uruchom jej funkcje
	if ( pCommand && pCommand->IsCommand() )
	{
		(( CCommand * )pCommand )->Dispatch();
		return;
	}

	// TEMP: jesli to cvar
	// TODO: forwardowanie do servera i tylko gdy w grze
	if ( pCommand && !pCommand->IsCommand() )
	{
		// jesli jeden wyraz, pokaz zmienna
		if ( m_iCmdArgc == 1 )
		{
	//		cvars()->PrintCvar( (CVar*)pCommand );
		}

		// TEMP: jesli dwa, sprobuj przypisac wartosc
		if ( m_iCmdArgc == 2 )
		{
			CVar *cv = (CVar*)pCommand;

			if ( cv->IsFlagSet(FCVAR_ENGINE) && m_CmdSource == SRC_CLIENT )
			{
				Output("You cannot change the engine CVar!");
				return;
			}

			/*if ( cv->IsFlagSet(FCVAR_SERVER) && !sv.active )
			{
			CONCOLOR( rgb(255, 178, 22), "%s is a server variable, cannot change it locally", Cmd_Argv(0) );
			} else*/
			/*{
				cv->SetValue( GetArgument(1) );
				Output( "CVar changed:   %s  =  %s", GetArgument(0), cv->GetString() );
			}


		}  


		return;
	}*/
}