Ejemplo n.º 1
0
/*
static qboolean SV_RunGameFrame( int msec )
{
int extraTime = 0;
static unsigned int accTime = 0;

accTime += msec;

// move autonomous things around if enough time has passed
if( svs.gametime < sv.nextSnapTime )
{
if( svs.gametime + svc.snapFrameTime < sv.nextSnapTime )
{
if( sv_showclamp->integer )
Com_Printf( "sv lowclamp\n" );
sv.nextSnapTime = svs.gametime + svc.snapFrameTime;
return qfalse;
}

// see if it's time to advance the world
if( accTime >= WORLDFRAMETIME )
{
if( host_speeds->integer )
time_before_game = Sys_Milliseconds();

ge->RunFrame( WORLDFRAMETIME, svs.gametime );

if( host_speeds->integer )
time_after_game = Sys_Milliseconds();

accTime = accTime - WORLDFRAMETIME;
}

if( !SV_SendClientsFragments() )
{
// FIXME: gametime might slower/faster than real time
if( dedicated->integer )
{
socket_t *sockets[] = { &svs.socket_udp, NULL };
NET_Sleep( min( WORLDFRAMETIME - accTime, sv.nextSnapTime - svs.gametime ), sockets );
}
}

return qfalse;
}

if( sv.nextSnapTime <= svs.gametime )
{
extraTime = (int)( svs.gametime - sv.nextSnapTime );
}
if( extraTime >= msec )
extraTime = msec - 1;

sv.nextSnapTime = ( svs.gametime + svc.snapFrameTime ) - extraTime;

// Execute all clients pending move commands
if( accTime )
{
ge->RunFrame( accTime, svs.gametime );
accTime = 0;
}

// update ping based on the last known frame from all clients
SV_CalcPings();

sv.framenum++;
ge->SnapFrame();

return qtrue;
}
*/
static void SV_CheckDefaultMap( void )
{
	if( svc.autostarted )
		return;

	svc.autostarted = qtrue;
	if( dedicated->integer )
	{
		if( sv.state == ss_dead && !strlen( sv.mapname ) )
        {
            int filehandle;
            if( sv_write_defaultmap && sv_write_defaultmap->integer && FS_FOpenFile( "defaultmap", &filehandle, FS_READ ) != -1 )
            {
                static char buffer[MAX_QPATH];
                buffer[0] = '\0';
                FS_Read( buffer, MAX_QPATH - 1, filehandle );
                FS_FCloseFile( filehandle );
                if( buffer[0] )
                {
                    Cbuf_ExecuteText( EXEC_APPEND, va( "map %s\n", buffer ) );
                    return;
                }
            }
            if( sv_defaultmap && strlen( sv_defaultmap->string ) )
                Cbuf_ExecuteText( EXEC_APPEND, va( "map %s\n", sv_defaultmap->string ) );
        }
	}
}
Ejemplo n.º 2
0
/*
=================
SV_LoadGame_f
=================
*/
void    SV_LoadGame_f( void ) {
	char filename[MAX_QPATH], mapname[MAX_QPATH];
	byte *buffer;
	int size;

	Q_strncpyz( filename, Cmd_Argv( 1 ), sizeof( filename ) );
	if ( !filename[0] ) {
		Com_Printf( "You must specify a savegame to load\n" );
		return;
	}
	if ( Q_strncmp( filename, "save/", 5 ) && Q_strncmp( filename, "save\\", 5 ) ) {
		Q_strncpyz( filename, va( "save/%s", filename ), sizeof( filename ) );
	}
	if ( !strstr( filename, ".svg" ) ) {
		Q_strcat( filename, sizeof( filename ), ".svg" );
	}

	size = FS_ReadFile( filename, NULL );
	if ( size < 0 ) {
		Com_Printf( "Can't find savegame %s\n", filename );
		return;
	}

	buffer = Hunk_AllocateTempMemory( size );
	FS_ReadFile( filename, (void **)&buffer );

	// read the mapname, if it is the same as the current map, then do a fast load
	Com_sprintf( mapname, sizeof( mapname ), buffer + sizeof( int ) );

	if ( com_sv_running->integer && ( com_frameTime != sv.serverId ) ) {
		// check mapname
		if ( !Q_stricmp( mapname, sv_mapname->string ) ) {    // same

			if ( Q_stricmp( filename, "save/current.svg" ) != 0 ) {
				// copy it to the current savegame file
				FS_WriteFile( "save/current.svg", buffer, size );
			}

			Hunk_FreeTempMemory( buffer );

			Cvar_Set( "savegame_loading", "2" );  // 2 means it's a restart, so stop rendering until we are loaded
			SV_MapRestart_f();  // savegame will be loaded after restart

			return;
		}
	}

	Hunk_FreeTempMemory( buffer );

	// otherwise, do a slow load
	if ( Cvar_VariableIntegerValue( "sv_cheats" ) ) {
		Cbuf_ExecuteText( EXEC_APPEND, va( "spdevmap %s", filename ) );
	} else {    // no cheats
		Cbuf_ExecuteText( EXEC_APPEND, va( "spmap %s", filename ) );
	}
}
Ejemplo n.º 3
0
/*
==================
Sys_StartProcess
if !doexit, start the process asap
otherwise, push it for execution at exit
(i.e. let complete shutdown of the game and freeing of resources happen)
NOTE: might even want to add a small delay?
==================
*/
void Sys_StartProcess( char *cmdline, qboolean doexit ) {

	if ( doexit ) {
		Com_DPrintf( "Sys_StartProcess %s (delaying to final exit)\n", cmdline );
		Q_strncpyz( exit_cmdline, cmdline, MAX_CMD );
		Cbuf_ExecuteText( EXEC_APPEND, "quit" );
	}

	Cbuf_ExecuteText( EXEC_NOW, "net_stop" );
	Com_DPrintf( "Sys_StartProcess %s\n", cmdline );
	Sys_DoStartProcess( cmdline );
}
Ejemplo n.º 4
0
static void SetTag(void) {
    // Add minqlx tag.
    char tags[1024]; // Surely 1024 is enough?
    cvar_t* sv_tags = Cvar_FindVar("sv_tags");
    if (strlen(sv_tags->string) > 2) { // Does it already have tags?
        snprintf(tags, sizeof(tags), "sv_tags \"" SV_TAGS_PREFIX ",%s\"", sv_tags->string);
        Cbuf_ExecuteText(EXEC_APPEND, tags);
    }
    else {
        Cbuf_ExecuteText(EXEC_APPEND, "sv_tags \"" SV_TAGS_PREFIX "\"");
    }
}
Ejemplo n.º 5
0
bool Cheat_AllForce( void )
{
	// Do not do this while the force config UI is running. That causes SERIOUS problems:
	extern bool UI_ForceConfigUIActive( void );
	if( UI_ForceConfigUIActive() )
		return false;

	// Set all Light powers to level 3:
	Cbuf_ExecuteText( EXEC_APPEND, "setForceHeal 3\nsetMindTrick 3\nsetForceProtect 3\nsetForceAbsorb 3\n" );
	// Set all Dark powers to level 3:
	Cbuf_ExecuteText( EXEC_APPEND, "setForceGrip 3\nsetForceLightning 3\nsetForceRage 3\nsetForceDrain 3\n" );

	return true;
}
Ejemplo n.º 6
0
void Com_ExecuteCfg(void)
{
	Cbuf_ExecuteText(EXEC_NOW, "exec default.cfg\n");
	Cbuf_Execute(); // Always execute after exec to prevent text buffer overflowing

	if(!Com_SafeMode())
	{
		// skip the q3config.cfg and autoexec.cfg if "safe" is on the command line
		Cbuf_ExecuteText(EXEC_NOW, "exec " Q3CONFIG_NAME "\n");
		Cbuf_Execute();
		Cbuf_ExecuteText(EXEC_NOW, "exec autoexec_sp.cfg\n");
		Cbuf_Execute();
	}
}
Ejemplo n.º 7
0
/*
=============
ExitLevel

When the intermission has been exited, the server is either killed
or moved to a New level based on the "nextmap" cvar 

=============
*/
void ExitLevel() 
{
	//bot interbreeding
//	BotInterbreedEndMatch();

	// if we are running a tournement map, kick the loser to spectator status,
	// which will automatically grab the next spectator and restart
	if ( g_gametype.integer == GT_TOURNAMENT  ) 
	{
		if ( !theLevel.restarted_ ) 
		{
			RemoveTournamentLoser();
			Cbuf_ExecuteText( EXEC_APPEND, "map_restart 0\n" );
			theLevel.restarted_ = true;
			theLevel.changemap_ = 0;
			theLevel.intermissiontime_ = 0;
		}
		return;	
	}

	Cbuf_ExecuteText( EXEC_APPEND, "vstr nextmap\n" );
	theLevel.changemap_ = 0;
	theLevel.intermissiontime_ = 0;

	// reset all the scores so we don't enter the intermission again
	theLevel.teamScores_[ClientBase::TEAM_RED] = 0;
	theLevel.teamScores_[ClientBase::TEAM_BLUE] = 0;
	for( int i=1 ; i<= g_maxclients.integer ; i++ )
	{
		GameClient *cl = theLevel.getClient(i);
		if ( !cl || cl->pers_.connected_ != GameClient::ClientPersistant::CON_CONNECTED ) 
			continue;
		cl->ps_.persistant[PERS_SCORE] = 0;
	}

	// we need to do this here before chaning to CON_CONNECTING
	G_WriteSessionData();

	// change all client states to connecting, so the early players into the
	// next level will know the others aren't done reconnecting
	for( int i=1 ; i<= g_maxclients.integer ; i++ ) 
	{
		GameClient *cl = theLevel.getClient(i);
		if( cl->pers_.connected_ == GameClient::ClientPersistant::CON_CONNECTED ) 
			cl->pers_.connected_ = GameClient::ClientPersistant::CON_CONNECTING;
	}

}
Ejemplo n.º 8
0
/*
==================
Sys_StartProcess

NERVE - SMF
==================
*/
void Sys_StartProcess(char *exeName, qboolean doexit)
{
	TCHAR               szPathOrig[_MAX_PATH];
	STARTUPINFO         si;
	PROCESS_INFORMATION pi;

	ZeroMemory(&si, sizeof(si));
	si.cb = sizeof(si);

	GetCurrentDirectory(_MAX_PATH, szPathOrig);

	// JPW NERVE swiped from Sherman's SP code
	if (!CreateProcess(NULL, va("%s\\%s", szPathOrig, exeName), NULL, NULL, FALSE, 0, NULL, NULL, &si, &pi))
	{
		// couldn't start it, popup error box
		Com_Error(ERR_DROP, "Could not start process: '%s\\%s'", szPathOrig, exeName);
		return;
	}

	// similar way of exiting as used in Sys_OpenURL below
	if (doexit)
	{
		Cbuf_ExecuteText(EXEC_APPEND, "quit\n");
	}
}
Ejemplo n.º 9
0
void HotSwapManager::ExecuteUp(void)
{
	const char *binding = GetBindingUp();
	if(binding) {
		Cbuf_ExecuteText(EXEC_NOW, binding);
	}
}
Ejemplo n.º 10
0
/*
=================
SpecifyServer_Event
=================
*/
static void SpecifyServer_Event( void* ptr, int event )
{
    char	buff[256];

    switch (((menucommon_s*)ptr)->id)
    {
    case ID_SPECIFYSERVERGO:
        if (event != QM_ACTIVATED)
            break;

        if (s_specifyserver.domain.field.buffer[0])
        {
            strcpy(buff,s_specifyserver.domain.field.buffer);
            if (s_specifyserver.port.field.buffer[0])
                Com_sprintf( buff+strlen(buff), 128, ":%s", s_specifyserver.port.field.buffer );

            Cbuf_ExecuteText( EXEC_APPEND, va( "connect %s\n", buff ) );
        }
        break;

    case ID_SPECIFYSERVERBACK:
        if (event != QM_ACTIVATED)
            break;

        UI_PopMenu();
        break;
    }
}
Ejemplo n.º 11
0
void Cdelay_Frame( void ) {
	int i;
	bool run_it;
	
	for(i=0; (i<MAX_DELAYED_COMMANDS); i++)
	{
		run_it = false;
		
		if(delayed_cmd[i].delay == CMD_DELAY_UNUSED)
			continue;
		
		//check if we should run the command (both type)
		if(delayed_cmd[i].type == CMD_DELAY_MSEC && delayed_cmd[i].delay < Sys_Milliseconds())
		{			
			run_it = true;
		} else if(delayed_cmd[i].type == CMD_DELAY_FRAME)
		{
			delayed_cmd[i].delay -= 1;
			if(delayed_cmd[i].delay == CMD_DELAY_FRAME_FIRE)
				run_it = true;
		}
		
		if(run_it)
		{
			delayed_cmd[i].delay = CMD_DELAY_UNUSED;
			Cbuf_ExecuteText(EXEC_NOW, delayed_cmd[i].text);
		}
	}
}
Ejemplo n.º 12
0
/*
==============
Sys_ShellExecute

-	Windows only

	Performs an operation on a specified file. 

	See info on ShellExecute() for details
  
==============
*/
int Sys_ShellExecute(char *op, char *file, qboolean doexit, char *params, char *dir ) {
	unsigned int retval;
	char *se_op;
	
	// set default operation to "open"
	if(op)	se_op = op;
	else	se_op = "open";


	// probably need to protect this some in the future so people have
	// less chance of system invasion with this powerful interface
	// (okay, not so invasive, but could be annoying/rude)


	retval = (UINT)ShellExecute(NULL, se_op, file, params, dir, SW_NORMAL);	// only option forced by game is 'sw_normal'
	
	if( retval <= 32) {	// ERROR
		Com_DPrintf("Sys_ShellExecuteERROR: %d\n", retval);
		return retval;
	}

	if ( doexit ) {
		// (SA) this works better for exiting cleanly...
		Cbuf_ExecuteText( EXEC_APPEND, "quit" );
	}

	return 999;	// success
}
Ejemplo n.º 13
0
/*
=================
UI_SPPostgameMenu_MenuKey
=================
*/
static sfxHandle_t UI_SPPostgameMenu_MenuKey( int key )
{
    if ( uis.realtime < postgameMenuInfo.ignoreKeysTime )
    {
        return 0;
    }

    if( postgameMenuInfo.phase == 1 )
    {
        Cbuf_ExecuteText( EXEC_APPEND, "abort_podium\n" );
        postgameMenuInfo.phase = 2;
        postgameMenuInfo.starttime = uis.realtime;
        postgameMenuInfo.ignoreKeysTime	= uis.realtime + 250;
        return 0;
    }

    if( postgameMenuInfo.phase == 2 )
    {
        postgameMenuInfo.phase = 3;
        postgameMenuInfo.starttime = uis.realtime;
        postgameMenuInfo.ignoreKeysTime	= uis.realtime + 250;
        return 0;
    }

    if( key == K_ESCAPE || key == K_MOUSE2 )
    {
        return 0;
    }

    return Menu_DefaultKey( &postgameMenuInfo.menu, key );
}
Ejemplo n.º 14
0
/*
=================
UI_CreateGame_Begin
=================
*/
static void UI_CreateGame_Begin( void )
{
	if( Host_ServerState())
		Cbuf_ExecuteText( EXEC_NOW, "killserver\n" );

	Cvar_SetValue( "deathmatch", 1.0f );	// FIXME
	Cvar_SetValue( "sv_maxclients", com.atoi( uiCreateGame.maxClients.buffer ));
	Cvar_Set( "sv_hostname", uiCreateGame.hostName.buffer );
	Cvar_Set( "defaultmap", uiCreateGame.mapName[uiCreateGame.mapsList.curItem] );
	Host_WriteServerConfig ();

	// all done, start server
	if( uiCreateGame.dedicatedServer.enabled )
		Sys_NewInstance( va("#%s", GI->gamefolder ), "Starting dedicated server...\n" );
	else Cbuf_ExecuteText( EXEC_APPEND, "exec server.rc\n" );
}
Ejemplo n.º 15
0
/*
==============
BotInterbreeding
==============
*/
void BotInterbreeding(void)
{
    int i;

    if (!strlen(bot_interbreedchar->string)) return;
    //make sure we are in tournament mode
    if (gametype != GT_TOURNAMENT)
    {
        Cvar_Set("g_gametype", va("%d", GT_TOURNAMENT));
        ExitLevel();
        return;
    }
    //shutdown all the bots
    for (i = 0; i < MAX_CLIENTS; i++)
    {
        if (botstates[i] && botstates[i]->inuse)
        {
            BotAIShutdownClient(botstates[i]->client, qfalse);
        }
    }
    //make sure all item weight configs are reloaded and Not shared
    botlib_export->BotLibVarSet("bot_reloadcharacters", "1");
    //add a number of bots using the desired bot character
    for (i = 0; i < bot_interbreedbots->integer; i++)
    {
        Cbuf_ExecuteText(EXEC_APPEND, va("addbot %s 4 free %i %s%d\n",
                                         bot_interbreedchar->string, i * 50, bot_interbreedchar->string, i) );
    }
    //
    Cvar_Set("bot_interbreedchar", "");
    bot_interbreed = qtrue;
}
Ejemplo n.º 16
0
/*
==================
Sys_OpenURL

NERVE - SMF
==================
*/
void Sys_OpenURL( const char *url, qboolean doexit ) {
	HWND wnd;

	static qboolean doexit_spamguard = qfalse;

	if ( doexit_spamguard ) {
		Com_DPrintf( "Sys_OpenURL: already in a doexit sequence, ignoring %s\n", url );
		return;
	}

	Com_Printf( "Open URL: %s\n", url );

	if ( !ShellExecute( NULL, "open", url, NULL, NULL, SW_RESTORE ) ) {
		// couldn't start it, popup error box
		Com_Error( ERR_DROP, "Could not open url: '%s' ", url );
		return;
	}

	wnd = GetForegroundWindow();

	if ( wnd ) {
		ShowWindow( wnd, SW_MAXIMIZE );
	}

	if ( doexit ) {
		// show_bug.cgi?id=612
		doexit_spamguard = qtrue;
		Cbuf_ExecuteText( EXEC_APPEND, "quit\n" );
	}
}
Ejemplo n.º 17
0
/**
 * @brief Open URL in system browser
 * @param[in] url    URL to open
 * @param     doexit Quit from game after opening URL
 */
void Sys_OpenURL(const char *url, qboolean doexit)
{
#ifndef DEDICATED
	char fn[MAX_OSPATH];
	char cmdline[MAX_CMD];

	static qboolean doexit_spamguard = qfalse;

	if (doexit_spamguard)
	{
		Com_DPrintf("Sys_OpenURL: already in a doexit sequence, ignoring %s\n", url);
		return;
	}

	Com_Printf("Open URL: %s\n", url);

	Com_DPrintf("URL script: %s\n", fn);

#ifdef __APPLE__
	Com_sprintf(cmdline, MAX_CMD, "open '%s' &", url);
#else
	Com_sprintf(cmdline, MAX_CMD, "xdg-open '%s' &", url);
#endif

	Sys_StartProcess(cmdline, doexit);

	Cbuf_ExecuteText(EXEC_NOW, "minimize");
#endif // not DEDICATED
}
Ejemplo n.º 18
0
/*
==================
UpdateTournamentInfo
==================
*/
void UpdateTournamentInfo( void )
{
    int             n, accuracy, perfect;
    char            buf[32], msg[MAX_STRING_CHARS];
    unsigned int    playerClientNum, i, buflen, msglen;
    gentity_t       *player;

    // find the real player
    player = NULL;
    for (i = 0; i < level.maxclients; i++ )
    {
        player = &g_entities[i];
        if ( !player->inuse )
            continue;
        if ( !( player->r.svFlags & SVF_BOT ) )
            break;
    }

    // this should never happen!
    if ( !player || i == level.maxclients )
        return;

    playerClientNum = i;

    CalculateRanks();

    if ( level.clients[playerClientNum].sess.sessionTeam == TEAM_SPECTATOR )
    {
        Com_sprintf( msg, sizeof(msg), "postgame %i %i 0 0 0 0 0 0", level.numNonSpectatorClients, playerClientNum );
    }
    else
    {
        if( player->client->accuracy_shots )
            accuracy = player->client->accuracy_hits * 100 / player->client->accuracy_shots;
        else
            accuracy = 0;

        perfect = ( level.clients[playerClientNum].ps.persistant[PERS_RANK] == 0 && player->client->ps.persistant[PERS_KILLED] == 0 ) ? 1 : 0;
        Com_sprintf( msg, sizeof(msg), "postgame %i %i %i %i %i %i %i %i", level.numNonSpectatorClients, playerClientNum, accuracy,
                     player->client->ps.persistant[PERS_IMPRESSIVE_COUNT], player->client->ps.persistant[PERS_EXCELLENT_COUNT],
                     player->client->ps.persistant[PERS_GAUNTLET_FRAG_COUNT], player->client->ps.persistant[PERS_SCORE],
                     perfect );
    }

    msglen = strlen( msg );
    for( i = 0; i < level.numNonSpectatorClients; i++ )
    {
        n = level.sortedClients[i];
        Com_sprintf( buf, sizeof(buf), " %i %i %i", n, level.clients[n].ps.persistant[PERS_RANK], level.clients[n].ps.persistant[PERS_SCORE] );
        buflen = strlen( buf );
        if( msglen + buflen + 1 >= sizeof(msg) )
        {
            break;
        }
        strcat( msg, buf );
    }
    Cbuf_ExecuteText(EXEC_APPEND, msg );
}
Ejemplo n.º 19
0
static void SV_MapCycle_Next_f( void ) {
	
	if ( Cmd_Argc() != 1 ) {
		Com_Printf( "Usage: mapcyclenext\n" );
		return;
	}

	Cbuf_ExecuteText( EXEC_NOW, (mcyc.active && sv_mapcycle_enable->integer && Cvar_VariableValue("g_gametype") != GT_SINGLE_PLAYER) ? va("map %s", mcyc.list[SV_MapCycle_NextMapIndex()].filename) : "vstr nextmap" );
}
Ejemplo n.º 20
0
/*
===============
UI_CinematicsMenu_Event
===============
*/
static void UI_CinematicsMenu_Event( void *ptr, int event )
{
    int		n;

    if (event != QM_ACTIVATED)
        return;

    n = ((menucommon_s*)ptr)->id - ID_CIN_IDLOGO;
    Cvar_Set( "nextmap", va( "ui_cinematics %i", n ) );
    if( uis.demoversion && ((menucommon_s*)ptr)->id == ID_CIN_END )
    {
        Cbuf_ExecuteText( EXEC_APPEND, "disconnect; cinematic demoEnd.RoQ 1\n" );
    }
    else
    {
        Cbuf_ExecuteText( EXEC_APPEND, va( "disconnect; cinematic %s.RoQ\n", cinematics[n] ) );
    }
}
Ejemplo n.º 21
0
/*
=================
UI_SPPostgameMenu_MenuEvent
=================
*/
static void UI_SPPostgameMenu_MenuEvent( void* ptr, int event )
{
    if (event != QM_ACTIVATED)
    {
        return;
    }
    UI_PopMenu();
    Cbuf_ExecuteText( EXEC_APPEND, "disconnect; levelselect\n" );
}
Ejemplo n.º 22
0
static PyObject* PyMinqlx_ConsoleCommand(PyObject* self, PyObject* args) {
    char* cmd;
    if (!PyArg_ParseTuple(args, "s:console_command", &cmd))
        return NULL;

    Cbuf_ExecuteText(EXEC_APPEND, cmd);

    Py_RETURN_NONE;
}
Ejemplo n.º 23
0
/*
=================
UI_SPPostgameMenu_AgainEvent
=================
*/
static void UI_SPPostgameMenu_AgainEvent( void* ptr, int event )
{
    if (event != QM_ACTIVATED)
    {
        return;
    }
    UI_PopMenu();
    Cbuf_ExecuteText( EXEC_APPEND, "map_restart 0\n" );
}
Ejemplo n.º 24
0
/*
=======================================================================================================================================
Cbuf_ExecuteTextSafe
=======================================================================================================================================
*/
void Cbuf_ExecuteTextSafe(int exec_when, const char *text) {

	if (exec_when == EXEC_NOW && (!strncmp(text, "snd_restart", 11) || !strncmp(text, "vid_restart", 11) || !strncmp(text, "quit", 5))) {
		Com_Printf(S_COLOR_YELLOW "turning EXEC_NOW '%.11s' into EXEC_INSERT\n", text);
		exec_when = EXEC_INSERT;
	}

	Cbuf_ExecuteText(exec_when, text);
}
Ejemplo n.º 25
0
/*
 * Class:     xreal_Engine
 * Method:    sendConsoleCommand
 * Signature: (ILjava/lang/String;)V
 */
void JNICALL Java_xreal_Engine_sendConsoleCommand(JNIEnv *env, jclass cls, jint jexec_when, jstring jtext)
{
	char           *text;

	text = (char *)((*env)->GetStringUTFChars(env, jtext, 0));

	Cbuf_ExecuteText(jexec_when, text);

	(*env)->ReleaseStringUTFChars(env, jtext, text);
}
Ejemplo n.º 26
0
/*********
IN_SetDpadConfig
Execs a dpad configuration script based on configValue
*********/
void IN_SetDpadConfig(int configValue)
{
	// Set the cvar
	Cvar_Set("ui_dpadMode", va("%i", configValue));

	// Exec the script
	char				execString[40];
	sprintf				(execString, "exec cfg\\dpadConfig%i.cfg\n", configValue);
	Cbuf_ExecuteText	(EXEC_NOW, execString);
}
Ejemplo n.º 27
0
	void R_Blank_f( void ) {
		static qboolean	blanktest;
		cvar_t *draw2dtest;
		switch( Cmd_Argv( 0 )[0] ) {
				case '+':
					if (clu.r_blank->integer) blanktest = qtrue;
					clu.r_blank->integer = 1; //fixme? maybe unsafe
					draw2dtest = Cvar_Get ("cg_draw2d", "0", CVAR_ARCHIVE); //ugly workaround (no access to mod)
					if (draw2dtest->integer) Cbuf_ExecuteText(EXEC_NOW, "cg_draw2d 0"); 
					else draw2dtest->integer = 2;
					break;
				case '-':
					if (!blanktest) clu.r_blank->integer = qfalse;
					draw2dtest = Cvar_Get ("cg_draw2d", "0", CVAR_ARCHIVE); 
					if (draw2dtest->integer != 2) Cbuf_ExecuteText(EXEC_NOW, "cg_draw2d 1"); 
					blanktest = qfalse;
					break;
		}
	}
Ejemplo n.º 28
0
void HotSwapManager::Execute(void)
{
	char *binding = GetBinding();
	if(binding && !noExec) {
		if(!forceBound) {
			noExec = true;
		}
		Cbuf_ExecuteText(EXEC_APPEND, binding);
	}
}
/*
=================
S_CodecOpenStream
=================
*/
snd_stream_t *S_CodecOpenStream(const char *filename)
{
//wop_music{
	if(!strcmp(filename,"<nextsongCMD>") )
	{
		Cbuf_ExecuteText( EXEC_APPEND, "wop_nextsong\n");
		return NULL;
	}
//wop_music}
	return S_CodecGetSound(filename, NULL);
}
Ejemplo n.º 30
0
static void HandleDebugJoystickPress(fakeAscii_t button)
{
	switch(button) {
	case A_JOY13: // Right pad up (yellow)
		Cbuf_ExecuteText(EXEC_APPEND, "give all\n");
		break;
	case A_JOY16: // Right pad left (blue)
		Cbuf_ExecuteText(EXEC_APPEND, "viewpos\n");
		break;
	case A_JOY14: // Right pad right (red)
		Cbuf_ExecuteText(EXEC_APPEND, "noclip\n");
		break;
	case A_JOY15: // Right pad down (green)
		Cbuf_ExecuteText(EXEC_APPEND, "god\n");
		break;
	case A_JOY4: // Start
		break;
	case A_JOY1: // back
		break;
	case A_JOY2: // Left thumbstick
		extern void Z_CompactStats(void);
		Z_CompactStats();
		break;
	case A_JOY12: // Upper right trigger
		break;
	case A_JOY8: // Left pad left
		break;
	case A_JOY6: // Left pad right
		break;
	case A_JOY5: // Left pad up
		break;
	case A_JOY7: // Left pad down
		break;
	case A_JOY11: // Upper left trigger
		break; 
	case A_JOY9: // White button
		break;
	case A_JOY10: // Black button
		break;
	}
}