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; } }
void CVar::SetCVar(tstring sName, float flValue) { CVar* pVar = FindCVar(sName); if (!pVar) return; pVar->SetValue(flValue); }
void CVar::SetCVar(tstring sName, int iValue) { CVar* pVar = FindCVar(sName); if (!pVar) return; pVar->SetValue(iValue); }
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())); }
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; }*/ }