void FormationEditor::AddElementPair() { if(IsEditor()) { if(m_CurrentCanvas) { m_CurrentCanvas->AddElementPair(Vec2()); } } }
void FormationEditor::Delete() { if(IsEditor()) { if(m_CurrentCanvas) { m_CurrentCanvas->Delete(); } } }
void FormationEditor::Tick(f32 _fDeltaTime) { if(IsEditor()) { if(m_CurrentCanvas) m_CurrentCanvas->Tick(_fDeltaTime); } else if(IsSimulating()) { m_SimulatedCanvas->Tick(_fDeltaTime); } else if(IsInRealGame()) { m_RealGameCanvas->Tick(_fDeltaTime); } }
void FormationEditor::Deselect(const Vec2& pos) { if(IsEditor()) { if(m_CurrentCanvas) { m_CurrentCanvas->Deselect(pos); } } else if(IsSimulating()) { m_SimulatedCanvas->Deselect(pos); } else if(IsInRealGame()) { m_RealGameCanvas->Deselect(pos); } }
// // EnsureHandlers // // Lazily load the XBL handlers. Overridden to handle being attached // to a particular element rather than the document // nsresult nsXBLWindowKeyHandler::EnsureHandlers(PRBool *aIsEditor) { nsCOMPtr<nsIDOMElement> el = GetElement(); NS_ENSURE_STATE(!mWeakPtrForElement || el); if (el) { // We are actually a XUL <keyset>. if (aIsEditor) *aIsEditor = PR_FALSE; if (mHandler) return NS_OK; nsCOMPtr<nsIContent> content(do_QueryInterface(el)); BuildHandlerChain(content, &mHandler); } else { // We are an XBL file of handlers. if (!sXBLSpecialDocInfo) sXBLSpecialDocInfo = new nsXBLSpecialDocInfo(); if (!sXBLSpecialDocInfo) { if (aIsEditor) { *aIsEditor = PR_FALSE; } return NS_ERROR_OUT_OF_MEMORY; } sXBLSpecialDocInfo->LoadDocInfo(); // Now determine which handlers we should be using. PRBool isEditor = IsEditor(); if (isEditor) { sXBLSpecialDocInfo->GetAllHandlers("editor", &mHandler, &mUserHandler); } else { sXBLSpecialDocInfo->GetAllHandlers("browser", &mHandler, &mUserHandler); } if (aIsEditor) *aIsEditor = isEditor; } return NS_OK; }
Bool FormationEditor::StartRealGame(const RealGameInfo& rgInfo) { D_CHECK(IsEditor()); m_Mode = EEditorMode_RealGame; m_RealGameCanvas->Setup(rgInfo); int nextIdx = 0; for(int i = 0; i < 10; ++i) { if(rgInfo.m_Player[i].m_HasValidData) { if(rgInfo.m_Player[i].m_Team == kHOME_TEAM) { m_RefPlayerPositionInTB[nextIdx++] = rgInfo.m_Player[i].m_Pos; } } } for(int i = 0; i < 10; ++i) { if(rgInfo.m_Player[i].m_HasValidData) { if(rgInfo.m_Player[i].m_Team == kAWAY_TEAM) { m_RefPlayerPositionInTB[nextIdx++] = rgInfo.m_Player[i].m_Pos; } } } if(!rgInfo.m_IsLargePitch) { CoordinateInfo::sLength = kPithLenghNormal; CoordinateInfo::sWidth = kPitchWidthNormal; } else { CoordinateInfo::sLength = kPithLenghLarge; CoordinateInfo::sWidth = kPitchWidthLarge; } return true; }
void FormationEditor::Draw() { if(IsEditor()) { if(m_CurrentRefCanvas) m_CurrentRefCanvas->DrawWithColor(D_Color(192, 192, 192)); if(m_CurrentCanvas) m_CurrentCanvas->Draw(); } else if(IsSimulating()) { if(m_SimulatedRefCanvas) m_SimulatedRefCanvas->DrawWithColor(D_Color(192, 192, 192)); m_SimulatedCanvas->Draw(); } else if(IsInRealGame()) { if(m_SimulatedRefCanvas) m_SimulatedRefCanvas->DrawWithColor(D_Color(192, 192, 192)); m_RealGameCanvas->Draw(); } }
bool gkSystem::Init( ISystemInitInfo& sii ) { gkLogMessage(_T("Initializing gkSystem...")); std::vector<gkStdString> result; gkStdString path; #ifdef OS_IOS path = gkGetExecRootDir(); #else path = gkGetExecRootDir() + _T("paks/"); #endif enum_all_files_in_folder(path.c_str(), result, false); for (int i=0; i < result.size(); ++i) { gkStdString file = result[i]; const TCHAR* strLastSlash = _tcsrchr( file.c_str(), _T( '.' ) ); if( strLastSlash ) { if ( !_tcsicmp( strLastSlash, _T(".gpk") ) ) { gkNormalizePath(file); gkStdString filename = gkGetFilename( file.c_str() ); #ifdef OS_IOS #else file = _T("/paks") + file; #endif gkLogMessage( _T("pak file [%s] loaded."), filename.c_str() ); m_ResFileManager.openPak( file.c_str() ); } } } #ifdef OS_WIN32 m_fileMonitor = new FileChangeMonitor(); m_fileMonitor->StartMonitor(); gEnv->pFileChangeMonitor = m_fileMonitor; #endif m_bEditor = (sii.hInstance != 0); //CrashRptHead(); m_bIsSceneEmpty = true; /************************************************************************/ /* Module Loading /************************************************************************/ #ifdef WIN32 TCHAR wszRenderDll[MAX_PATH] = _T("gkRendererD3D9"); if (!IsEditor()) { gkStdString cfgfile = gkGetExecRootDir() + _T("media/config/startup.cfg"); GetPrivateProfileString( _T("launcher"), _T("renderer"), _T("gkRendererD3D9"), wszRenderDll, MAX_PATH, cfgfile.c_str() ); } #else TCHAR wszRenderDll[MAX_PATH] = _T("gkRendererGLES2"); #endif #ifndef _STATIC_LIB if ( !_tcsicmp( wszRenderDll, _T("gkRendererD3D9") )) { LOAD_MODULE_GLOBAL( m_moduleHandles.hRenderer, gkRendererD3D9 ); } else if ( !_tcsicmp( wszRenderDll, _T("gkRendererGLES2") ) ) { LOAD_MODULE_GLOBAL( m_moduleHandles.hRenderer, gkRendererGLES2 ); } else if ( !_tcsicmp( wszRenderDll, _T("gkRendererGL330") ) ) { LOAD_MODULE_GLOBAL( m_moduleHandles.hRenderer, gkRendererGL330 ); } #else //LOAD_MODULE_GLOBAL( m_moduleHandles.hRenderer, gkRendererGLES2 ); #ifdef OS_APPLE LOAD_MODULE_GLOBAL( m_moduleHandles.hRenderer, gkRendererGL330 ); #elif defined( OS_IOS ) LOAD_MODULE_GLOBAL( m_moduleHandles.hRenderer, gkRendererGLES2 ); #else LOAD_MODULE_GLOBAL( m_moduleHandles.hRenderer, gkRendererD3D9 ); #endif #endif LOAD_MODULE_GLOBAL(m_moduleHandles.h3DEngine, gkCore); gEnv->p3DEngine->Init(); LOAD_MODULE_GLOBAL(m_moduleHandles.hInputLayer, gkInput); //LoadLib(m_moduleHandles.hNetworkLayer, _T("gkNetwork")); ////////////////////////////////////////////////////////////////////////// // load physics module #ifndef MUTE_PHYSICS # ifdef WIN32 TCHAR wszPhysicDll[MAX_PATH] = _T(""); gkStdString cfgfile = gkGetExecRootDir() + _T("media/config/startup.cfg"); GetPrivateProfileString( _T("launcher"), _T("physicsengine"), _T(""), wszPhysicDll, MAX_PATH, cfgfile.c_str() ); # else TCHAR wszPhysicDll[MAX_PATH] = _T("gkHavok"); # endif // WIN32 # ifndef _STATIC_LIB gkLoadModule( m_moduleHandles.hPhysics, wszPhysicDll ); # else //LOAD_MODULE_GLOBAL( m_moduleHandles.hPhysics, gkHavok ); # endif // _STATIC_LIB #endif // MUTE_PHYSICS ////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////// // load animation module { # ifdef WIN32 TCHAR wszAnimationDll[MAX_PATH] = _T("gkAnimationHavok"); gkStdString cfgfile = gkGetExecRootDir() + _T("media/config/startup.cfg"); GetPrivateProfileString( _T("launcher"), _T("animationengine"), _T("gkAnimationHavok"), wszAnimationDll, MAX_PATH, cfgfile.c_str() ); # else TCHAR wszAnimationDll[MAX_PATH] = _T("gkAnimationHavok"); # endif // WIN32 #ifdef OS_APPLE #else # ifndef _STATIC_LIB gkLoadModule( m_moduleHandles.hAnimation, wszAnimationDll ); # else #if TARGET_OS_IPHONE LOAD_MODULE_GLOBAL( m_moduleHandles.hAnimation, gkAnimation ); #endif # endif // _STATIC_LIB #endif } ////////////////////////////////////////////////////////////////////////// LOAD_MODULE_GLOBAL(m_moduleHandles.hGameObjectSystem, gkGameObjectSystem); LOAD_MODULE_GLOBAL(m_moduleHandles.hFont, gkFont); #ifdef OS_WIN32 LOAD_MODULE_GLOBAL(m_moduleHandles.hTrackBus, gkTrackBus); LOAD_MODULE_GLOBAL(m_moduleHandles.hSound, gkSound); //LOAD_MODULE_GLOBAL(m_moduleHandles.hVideo, gkVideo); //LOAD_MODULE_GLOBAL(m_moduleHandles.hStereoDevice, gkStereoDevice); { TCHAR wszStereoDevDll[MAX_PATH] = _T("null"); gkStdString cfgfile = gkGetExecRootDir() + _T("media/config/startup.cfg"); GetPrivateProfileString( _T("launcher"), _T("stereodevice"), _T("null"), wszStereoDevDll, MAX_PATH, cfgfile.c_str() ); gkLoadModule( m_moduleHandles.hStereoDevice, wszStereoDevDll ); } #endif m_CVManager.initInput(); gkLogMessage(_T("CVar Manager Initialized.")); m_pSystemCVars = new gkSystemCVars; g_pSystemCVars = m_pSystemCVars; gkLogMessage(_T("System CVar Initialized.")); m_CVManager.reloadAllParameters(); // init Timer if (!m_Timer.Init(this)) return (false); m_Timer.ResetTimer(); gkLogMessage(_T("Timer Initialized.")); gkIniParser startupFile( _T("config/startup.cfg") ); startupFile.Parse(); gkStdString ret = startupFile.FetchValue( _T("launcher"), _T("width") ); if( !ret.empty() ) { gkStdStringstream ss(ret); ss >> sii.fWidth; }
bool FormationEditor::StartSimulation(const FESimulatedCanvas::SimulatedSettings& setup) { D_CHECK(IsEditor()); if(!setup.m_AwayPlayerPosition.Size() && !setup.m_HomePlayerPosition.Size()) return false; std::string fullPath = setup.m_RootDir + "\\Media\\scripts\\ai\\formationsimulation.lua"; File* pLuaFile = FileManager::Get().OpenFile(fullPath.c_str(), E_FOM_Write | E_FOM_Text); if(!pLuaFile) return false; std::stringstream ss; ss << "DefaultMatchSetup()" << "\r\n"; ss << "package.path = \"scripts:/?.lua\"" << "\r\n"; ss << "require \"MiniGameSharedFunctions\"" << "\r\n"; ss << "MatchSetup['Init'] = function(newGame)" << "\r\n"; ss << "\tgameId = newGame.CreateGame();" << "\r\n"; if(setup.m_PitchType == EPitchType_Normal) ss << "\tnewGame.AddPitch(\"Street_SH_Night_01\");" << "\r\n"; else ss << "\tnewGame.AddPitch(\"stadium_BJ_60_40\");" << "\r\n"; ss << "\tnewGame.AddBall(\"CommonObjects\");" << "\r\n"; for(int i = 0; i < setup.m_HomePlayerPosition.Size(); ++i) { m_RefPlayerPositionInTB[i] = setup.m_HomePlayerPosition[i]; ss << "\tMatchSetup.player" << i + 1 << " = newGame.AddPlayer('SM_M_Vs_Red', ETeam.ETeam_HOME);" << "\r\n"; } for(int i = 0; i < setup.m_AwayPlayerPosition.Size(); ++i) { m_RefPlayerPositionInTB[i + setup.m_HomePlayerPosition.Size()] = setup.m_AwayPlayerPosition[i]; ss << "\tMatchSetup.player" << i + 1 + setup.m_HomePlayerPosition.Size() << " = newGame.AddPlayer('SM_M_Vs_Blue', ETeam.ETeam_AWAY);" << "\r\n"; } ss << "\tnewGame.SetHasNoHumanPlayer(ETeam.ETeam_HOME);" << "\r\n"; ss << "\tnewGame.SetHasNoHumanPlayer(ETeam.ETeam_AWAY);" << "\r\n"; ss << "\tnewGame.SetHasNoGoalkeeper(ETeam.ETeam_HOME);" << "\r\n"; ss << "\tnewGame.SetHasNoGoalkeeper(ETeam.ETeam_AWAY);" << "\r\n"; ss << "\tnewGame.RunGame(gameId)" << "\r\n"; ss << "end" << "\r\n"; ss << "MatchSetup['Setup'] = function(newGame)" << "\r\n"; ss << "\tnewGame.SetInputMode(InputMode.Normal);" << "\r\n"; for(int i = 0; i < setup.m_HomePlayerPosition.Size(); ++i) { ss << "\tGameLogic.ClearPlayerAI( MatchSetup.player" << i + 1 << " )" << "\r\n"; ss << "\tGameLogic.AddBehaviourModule(MatchSetup.player" << i + 1 << ", EBehaviourModule.EBehaviourModule_IDLE);" << "\r\n"; ss << "\tGameLogic.AddBehaviourModule(MatchSetup.player" << i + 1 << ", EBehaviourModule.EBehaviourModule_NEWAI_ATTACK_BASICFORMATION);" << "\r\n"; ss << "\tGameLogic.AddBehaviourModule(MatchSetup.player" << i + 1 << ", EBehaviourModule.EBehaviourModule_NEWAI_DEFEND_BASICFORMATION);" << "\r\n"; } for(int i = 0; i < setup.m_AwayPlayerPosition.Size(); ++i) { ss << "\tGameLogic.ClearPlayerAI( MatchSetup.player" << i + 1 + setup.m_HomePlayerPosition.Size() << " )" << "\r\n"; ss << "\tGameLogic.AddBehaviourModule(MatchSetup.player" << i + 1 + setup.m_HomePlayerPosition.Size() << ", EBehaviourModule.EBehaviourModule_IDLE);" << "\r\n"; ss << "\tGameLogic.AddBehaviourModule(MatchSetup.player" << i + 1 + setup.m_HomePlayerPosition.Size() << ", EBehaviourModule.EBehaviourModule_NEWAI_ATTACK_BASICFORMATION);" << "\r\n"; ss << "\tGameLogic.AddBehaviourModule(MatchSetup.player" << i + 1 + setup.m_HomePlayerPosition.Size() << ", EBehaviourModule.EBehaviourModule_NEWAI_DEFEND_BASICFORMATION);" << "\r\n"; } ss << "\tSequenceManager.PlaySequence( \"Camera.Side\" );" << "\r\n"; ss << "\tSequenceManager.PlaySequence( \"Game.SinglePlayer\");" << "\r\n"; ss << "end" << "\r\n"; ss << "MatchSetup['Reset'] = function(newGame)" << "\r\n"; ss << "\tGameLogic.ReinitializeBallAtEx( -5.5, 0, 0 );" << "\r\n"; ss << "\tGameLogic.ReinitializeBallState(ERequestBallState.ERequestBallState_FREE, MatchSetup.player1);" << "\r\n"; ss << "end" << "\r\n"; Bool isOk = pLuaFile->Write(ss.str().c_str(), ss.str().length()); if(!isOk) { FileManager::Get().CloseFile(pLuaFile); return false; } std::stringstream ss2; std::string fullPathStartupFile = setup.m_RootDir + "\\Media\\scripts\\ui_configuration.lua"; File* pStartupFile = FileManager::Get().OpenFile(fullPathStartupFile.c_str(), E_FOM_Write | E_FOM_Text); if(!pStartupFile) return false; ss2 << "do" << "\r\n"; ss2 << "\tGameControl.skip_menu = true;" << "\r\n"; ss2 << "\tGameControl.set_startup_by_lua (\"Media/Scripts/ai/formationsimulation.lua\", GameType.GameType_MINIGAME);" << "\r\n"; ss2 << "end" << "\r\n"; isOk = pStartupFile->Write(ss2.str().c_str(), ss2.str().length()); if(!isOk) { FileManager::Get().CloseFile(pStartupFile); FileManager::Get().CloseFile(pLuaFile); return false; } FileManager::Get().CloseFile(pStartupFile); FileManager::Get().CloseFile(pLuaFile); if(setup.m_PitchType == EPitchType_Normal) { CoordinateInfo::sLength = kPithLenghNormal; CoordinateInfo::sWidth = kPitchWidthNormal; } else { CoordinateInfo::sLength = kPithLenghLarge; CoordinateInfo::sWidth = kPitchWidthLarge; } m_IsHomeAttacking = (setup.m_TeamState == ETeamState_Attack); m_Mode = EEditorMode_Simulation; m_SimulatedCanvas->Setup(setup); return true; }