Esempio n. 1
0
void FormationEditor::AddElementPair()
{
	if(IsEditor())
	{
		if(m_CurrentCanvas)
		{
			m_CurrentCanvas->AddElementPair(Vec2());
		}
	}
}
Esempio n. 2
0
void FormationEditor::Delete()
{
	if(IsEditor())
	{
		if(m_CurrentCanvas)
		{
			m_CurrentCanvas->Delete();
		}
	}
}
Esempio n. 3
0
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);
	}
}
Esempio n. 4
0
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;
}
Esempio n. 6
0
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;
}
Esempio n. 7
0
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();
	}
}
Esempio n. 8
0
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;
	}
Esempio n. 9
0
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;
}