Initial commit
This commit is contained in:
158
Torque/SDK/example/demo/main.cs
Normal file
158
Torque/SDK/example/demo/main.cs
Normal file
@@ -0,0 +1,158 @@
|
||||
//-----------------------------------------------------------------------------
|
||||
// Torque Game Engine
|
||||
// Copyright (C) GarageGames.com, Inc.
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
// Load up common script base
|
||||
loadDir("common");
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// Load up defaults console values.
|
||||
|
||||
// Defaults console values
|
||||
exec("./client/defaults.cs");
|
||||
exec("./server/defaults.cs");
|
||||
|
||||
// Preferences (overide defaults)
|
||||
exec("./client/prefs.cs");
|
||||
exec("./server/prefs.cs");
|
||||
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// Package overrides to initialize the mod.
|
||||
package demo {
|
||||
|
||||
function displayHelp() {
|
||||
Parent::displayHelp();
|
||||
error(
|
||||
"Demo options:\n"@
|
||||
" -dedicated Start as dedicated server\n"@
|
||||
" -connect <address> For non-dedicated: Connect to a game at <address>\n" @
|
||||
" -mission <filename> For dedicated: Load the mission\n"
|
||||
);
|
||||
}
|
||||
|
||||
function parseArgs()
|
||||
{
|
||||
Parent::parseArgs();
|
||||
|
||||
// Arguments, which override everything else.
|
||||
for (%i = 1; %i < $Game::argc ; %i++)
|
||||
{
|
||||
%arg = $Game::argv[%i];
|
||||
%nextArg = $Game::argv[%i+1];
|
||||
%hasNextArg = $Game::argc - %i > 1;
|
||||
|
||||
switch$ (%arg)
|
||||
{
|
||||
//--------------------
|
||||
case "-dedicated":
|
||||
$Server::Dedicated = true;
|
||||
enableWinConsole(true);
|
||||
$argUsed[%i]++;
|
||||
|
||||
//--------------------
|
||||
case "-mission":
|
||||
$argUsed[%i]++;
|
||||
if (%hasNextArg) {
|
||||
$missionArg = %nextArg;
|
||||
$argUsed[%i+1]++;
|
||||
%i++;
|
||||
}
|
||||
else
|
||||
error("Error: Missing Command Line argument. Usage: -mission <filename>");
|
||||
|
||||
//--------------------
|
||||
case "-connect":
|
||||
$argUsed[%i]++;
|
||||
if (%hasNextArg) {
|
||||
$JoinGameAddress = %nextArg;
|
||||
$argUsed[%i+1]++;
|
||||
%i++;
|
||||
}
|
||||
else
|
||||
error("Error: Missing Command Line argument. Usage: -connect <ip_address>");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function onStart()
|
||||
{
|
||||
Parent::onStart();
|
||||
echo("\n--------- Initializing MOD: Torque Demo ---------");
|
||||
|
||||
// Load the scripts that start it all...
|
||||
exec("./client/init.cs");
|
||||
exec("./server/init.cs");
|
||||
exec("./data/init.cs");
|
||||
|
||||
// Server gets loaded for all sessions, since clients
|
||||
// can host in-game servers.
|
||||
initServer();
|
||||
|
||||
// Start up in either client, or dedicated server mode
|
||||
if ($Server::Dedicated)
|
||||
initDedicated();
|
||||
else
|
||||
initClient();
|
||||
}
|
||||
|
||||
function onExit()
|
||||
{
|
||||
echo("Exporting client prefs");
|
||||
export("$pref::*", "./client/prefs.cs", False);
|
||||
|
||||
echo("Exporting client config");
|
||||
if (isObject(moveMap))
|
||||
moveMap.save("./client/config.cs", false);
|
||||
|
||||
echo("Exporting server prefs");
|
||||
export("$Pref::Server::*", "./server/prefs.cs", False);
|
||||
BanList::Export("./server/banlist.cs");
|
||||
|
||||
Parent::onExit();
|
||||
}
|
||||
|
||||
}; // Client package
|
||||
activatePackage(demo);
|
||||
|
||||
$testscript::log = "";
|
||||
$testscript::scenecount = 0;
|
||||
$testscript::grabcount = 0;
|
||||
$testscript::grabcounttotal = 0;
|
||||
$testscript::fpsavg = 0;
|
||||
$testscript::numscenes = 22;
|
||||
$testscript::numgrabs = 10;
|
||||
|
||||
function testScript(%appname) {
|
||||
$testscript::log = new FileObject();
|
||||
$testscript::log.openForAppend("demo/framecount.txt");
|
||||
$testscript::log.writeLine("=== " @ %appname @ " ===");
|
||||
|
||||
loadFeatureMission();
|
||||
schedule(10000,0,testThread);
|
||||
}
|
||||
|
||||
function testThread() {
|
||||
// grab & average.
|
||||
%fps = $fps::real;
|
||||
%fps = (( $testscript::fpsavg * $testscript::grabcounttotal) + %fps ) / ( $testscript::grabcounttotal + 1);
|
||||
$testscript::fpsavg = %fps;
|
||||
$testscript::grabcounttotal++;
|
||||
$testscript::grabcount++;
|
||||
// if grabcount > numgrabs, next scene & reset
|
||||
if( $testscript::grabcount >= $testscript::numgrabs ) {
|
||||
SceneGui.nextScene();
|
||||
$testscript::grabcount = 0;
|
||||
$testscript::scenecount++;
|
||||
}
|
||||
// inc scenecount, if over numscenes, write file, close file, quit
|
||||
if( $testscript::scenecount > $testscript::numscenes ) {
|
||||
$testscript::log.writeLine(" avg fps:" SPC $testscript::fpsavg );
|
||||
$testscript::log.writeLine(" samples:" SPC $testscript::grabcounttotal );
|
||||
$testscript::log.close();
|
||||
quit();
|
||||
}
|
||||
// schedule self.
|
||||
schedule(1000,0,testThread);
|
||||
}
|
||||
Reference in New Issue
Block a user