mirror of
https://github.com/TorqueGameEngines/Torque3D.git
synced 2026-07-15 00:24:40 +00:00
Full Template for ticket #1
This commit is contained in:
parent
74f265b3b3
commit
f439dc8dcd
2150 changed files with 286240 additions and 0 deletions
142
Templates/Full/game/scripts/main.cs
Normal file
142
Templates/Full/game/scripts/main.cs
Normal file
|
|
@ -0,0 +1,142 @@
|
|||
//-----------------------------------------------------------------------------
|
||||
// Copyright (c) 2012 GarageGames, LLC
|
||||
//
|
||||
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
// of this software and associated documentation files (the "Software"), to
|
||||
// deal in the Software without restriction, including without limitation the
|
||||
// rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
|
||||
// sell copies of the Software, and to permit persons to whom the Software is
|
||||
// furnished to do so, subject to the following conditions:
|
||||
//
|
||||
// The above copyright notice and this permission notice shall be included in
|
||||
// all copies or substantial portions of the Software.
|
||||
//
|
||||
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||
// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
|
||||
// IN THE SOFTWARE.
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
// Load up core script base
|
||||
loadDir("core"); // Should be loaded at a higher level, but for now leave -- SRZ 11/29/07
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// Package overrides to initialize the mod.
|
||||
package fps {
|
||||
|
||||
function displayHelp() {
|
||||
Parent::displayHelp();
|
||||
error(
|
||||
"Fps Mod 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()
|
||||
{
|
||||
// Call the parent
|
||||
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()
|
||||
{
|
||||
// The core does initialization which requires some of
|
||||
// the preferences to loaded... so do that first.
|
||||
exec( "./client/defaults.cs" );
|
||||
exec( "./server/defaults.cs" );
|
||||
|
||||
Parent::onStart();
|
||||
echo("\n--------- Initializing Directory: scripts ---------");
|
||||
|
||||
// Load the scripts that start it all...
|
||||
exec("./client/init.cs");
|
||||
exec("./server/init.cs");
|
||||
|
||||
// Init the physics plugin.
|
||||
physicsInit();
|
||||
|
||||
// Start up the audio system.
|
||||
sfxStartup();
|
||||
|
||||
// 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()
|
||||
{
|
||||
// Ensure that we are disconnected and/or the server is destroyed.
|
||||
// This prevents crashes due to the SceneGraph being deleted before
|
||||
// the objects it contains.
|
||||
if ($Server::Dedicated)
|
||||
destroyServer();
|
||||
else
|
||||
disconnect();
|
||||
|
||||
// Destroy the physics plugin.
|
||||
physicsDestroy();
|
||||
|
||||
echo("Exporting client prefs");
|
||||
export("$pref::*", "./client/prefs.cs", False);
|
||||
|
||||
echo("Exporting server prefs");
|
||||
export("$Pref::Server::*", "./server/prefs.cs", False);
|
||||
BanList::Export("./server/banlist.cs");
|
||||
|
||||
Parent::onExit();
|
||||
}
|
||||
|
||||
}; // package fps
|
||||
|
||||
// Activate the game package.
|
||||
activatePackage(fps);
|
||||
Loading…
Add table
Add a link
Reference in a new issue