Initial commit
65
Torque/SDK/example/starter.racing/client/defaults.cs
Normal file
@@ -0,0 +1,65 @@
|
||||
//-----------------------------------------------------------------------------
|
||||
// Torque Game Engine
|
||||
// Copyright (C) GarageGames.com, Inc.
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
// The master server is declared with the server defaults, which is
|
||||
// loaded on both clients & dedicated servers. If the server mod
|
||||
// is not loaded on a client, then the master must be defined.
|
||||
// $pref::Master[0] = "2:master.garagegames.com:28002";
|
||||
|
||||
$pref::Player::Name = "Rotten Wheels";
|
||||
$pref::Player::defaultFov = 90;
|
||||
$pref::Player::zoomSpeed = 0;
|
||||
|
||||
$pref::Net::LagThreshold = 400;
|
||||
$pref::Net::Port = 28000;
|
||||
|
||||
$pref::shadows = "2";
|
||||
$pref::HudMessageLogSize = 40;
|
||||
$pref::ChatHudLength = 1;
|
||||
|
||||
|
||||
$pref::Input::LinkMouseSensitivity = 1;
|
||||
$pref::Input::MouseEnabled = 0;
|
||||
$pref::Input::JoystickEnabled = 0;
|
||||
$pref::Input::KeyboardTurnSpeed = 0.1;
|
||||
|
||||
$pref::sceneLighting::cacheSize = 20000;
|
||||
$pref::sceneLighting::purgeMethod = "lastCreated";
|
||||
$pref::sceneLighting::cacheLighting = 1;
|
||||
$pref::sceneLighting::terrainGenerateLevel = 1;
|
||||
|
||||
$pref::ts::detailAdjust = 0.45;
|
||||
|
||||
$pref::Terrain::DynamicLights = 1;
|
||||
$pref::Interior::TexturedFog = 0;
|
||||
|
||||
$pref::Video::displayDevice = "OpenGL";
|
||||
$pref::Video::allowOpenGL = 1;
|
||||
$pref::Video::allowD3D = 1;
|
||||
$pref::Video::preferOpenGL = 1;
|
||||
$pref::Video::appliedPref = 0;
|
||||
$pref::Video::disableVerticalSync = 1;
|
||||
$pref::Video::monitorNum = 0;
|
||||
$pref::Video::windowedRes = "800 600";
|
||||
$pref::Video::screenShotFormat = "PNG";
|
||||
|
||||
$pref::OpenGL::force16BitTexture = "0";
|
||||
$pref::OpenGL::forcePalettedTexture = "0";
|
||||
$pref::OpenGL::maxHardwareLights = 3;
|
||||
$pref::VisibleDistanceMod = 1.0;
|
||||
|
||||
$pref::Audio::driver = "OpenAL";
|
||||
$pref::Audio::forceMaxDistanceUpdate = 0;
|
||||
$pref::Audio::environmentEnabled = 0;
|
||||
$pref::Audio::masterVolume = 0.8;
|
||||
$pref::Audio::channelVolume1 = 0.8;
|
||||
$pref::Audio::channelVolume2 = 0.8;
|
||||
$pref::Audio::channelVolume3 = 0.8;
|
||||
$pref::Audio::channelVolume4 = 0.8;
|
||||
$pref::Audio::channelVolume5 = 0.8;
|
||||
$pref::Audio::channelVolume6 = 0.8;
|
||||
$pref::Audio::channelVolume7 = 0.8;
|
||||
$pref::Audio::channelVolume8 = 0.8;
|
||||
|
||||
136
Torque/SDK/example/starter.racing/client/init.cs
Normal file
@@ -0,0 +1,136 @@
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
// Variables used by client scripts & code. The ones marked with (c)
|
||||
// are accessed from code. Variables preceeded by Pref:: are client
|
||||
// preferences and stored automatically in the ~/client/prefs.cs file
|
||||
// in between sessions.
|
||||
//
|
||||
// (c) Client::MissionFile Mission file name
|
||||
// ( ) Client::Password Password for server join
|
||||
|
||||
// (?) Pref::Player::CurrentFOV
|
||||
// (?) Pref::Player::DefaultFov
|
||||
// ( ) Pref::Input::KeyboardTurnSpeed
|
||||
|
||||
// (c) pref::Master[n] List of master servers
|
||||
// (c) pref::Net::RegionMask
|
||||
// (c) pref::Client::ServerFavoriteCount
|
||||
// (c) pref::Client::ServerFavorite[FavoriteCount]
|
||||
// .. Many more prefs... need to finish this off
|
||||
|
||||
// Moves, not finished with this either...
|
||||
// (c) firstPerson
|
||||
// $mv*Action...
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
function initClient()
|
||||
{
|
||||
echo("\n--------- Initializing MOD: FPS Starter Kit: Client ---------");
|
||||
|
||||
// Make sure this variable reflects the correct state.
|
||||
$Server::Dedicated = false;
|
||||
|
||||
// Game information used to query the master server
|
||||
$Client::GameTypeQuery = "FPS Starter Kit";
|
||||
$Client::MissionTypeQuery = "Any";
|
||||
|
||||
//
|
||||
exec("./ui/customProfiles.cs"); // override the base profiles if necessary
|
||||
|
||||
// The common module provides basic client functionality
|
||||
initBaseClient();
|
||||
|
||||
// InitCanvas starts up the graphics system.
|
||||
// The canvas needs to be constructed before the gui scripts are
|
||||
// run because many of the controls assume the canvas exists at
|
||||
// load time.
|
||||
initCanvas("Torque Game Engine");
|
||||
|
||||
/// Load client-side Audio Profiles/Descriptions
|
||||
exec("./scripts/audioProfiles.cs");
|
||||
|
||||
// Load up the Game GUIs
|
||||
exec("./ui/defaultGameProfiles.cs");
|
||||
exec("./ui/PlayGui.gui");
|
||||
exec("./ui/ChatHud.gui");
|
||||
exec("./ui/playerList.gui");
|
||||
|
||||
// Load up the shell GUIs
|
||||
exec("./ui/mainMenuGui.gui");
|
||||
exec("./ui/QuitGui.gui");
|
||||
exec("./ui/aboutDlg.gui");
|
||||
exec("./ui/startMissionGui.gui");
|
||||
exec("./ui/joinServerGui.gui");
|
||||
exec("./ui/loadingGui.gui");
|
||||
exec("./ui/endGameGui.gui");
|
||||
exec("./ui/optionsDlg.gui");
|
||||
exec("./ui/remapDlg.gui");
|
||||
exec("./ui/StartupGui.gui");
|
||||
|
||||
// Client scripts
|
||||
exec("./scripts/client.cs");
|
||||
exec("./scripts/game.cs");
|
||||
exec("./scripts/missionDownload.cs");
|
||||
exec("./scripts/serverConnection.cs");
|
||||
exec("./scripts/playerList.cs");
|
||||
exec("./scripts/loadingGui.cs");
|
||||
exec("./scripts/optionsDlg.cs");
|
||||
exec("./scripts/chatHud.cs");
|
||||
exec("./scripts/messageHud.cs");
|
||||
exec("./scripts/playGui.cs");
|
||||
exec("./scripts/centerPrint.cs");
|
||||
|
||||
// Default player key bindings
|
||||
exec("./scripts/default.bind.cs");
|
||||
exec("./config.cs");
|
||||
|
||||
// Really shouldn't be starting the networking unless we are
|
||||
// going to connect to a remote server, or host a multi-player
|
||||
// game.
|
||||
setNetPort(0);
|
||||
|
||||
// Copy saved script prefs into C++ code.
|
||||
setShadowDetailLevel( $pref::shadows );
|
||||
setDefaultFov( $pref::Player::defaultFov );
|
||||
setZoomSpeed( $pref::Player::zoomSpeed );
|
||||
|
||||
// Start up the main menu... this is separated out into a
|
||||
// method for easier mod override.
|
||||
|
||||
if ($JoinGameAddress !$= "") {
|
||||
// If we are instantly connecting to an address, load the
|
||||
// main menu then attempt the connect.
|
||||
loadMainMenu();
|
||||
connect($JoinGameAddress, "", $Pref::Player::Name);
|
||||
}
|
||||
else {
|
||||
// Otherwise go to the splash screen.
|
||||
Canvas.setCursor("DefaultCursor");
|
||||
loadStartup();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
|
||||
function loadMainMenu()
|
||||
{
|
||||
// Startup the client with the Main menu...
|
||||
Canvas.setContent( MainMenuGui );
|
||||
|
||||
|
||||
// Make sure the audio initialized.
|
||||
if($Audio::initFailed) {
|
||||
MessageBoxOK("Audio Initialization Failed",
|
||||
"The OpenAL audio system failed to initialize. " @
|
||||
"You can get the most recent OpenAL drivers <a:www.garagegames.com/docs/torque/gstarted/openal.html>here</a>.");
|
||||
}
|
||||
|
||||
Canvas.setCursor("DefaultCursor");
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,47 @@
|
||||
//-----------------------------------------------------------------------------
|
||||
// Torque Game Engine
|
||||
// Copyright (C) GarageGames.com, Inc.
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
// Channel assignments (channel 0 is unused in-game).
|
||||
|
||||
$GuiAudioType = 1;
|
||||
$SimAudioType = 2;
|
||||
$MessageAudioType = 3;
|
||||
|
||||
new AudioDescription(AudioGui)
|
||||
{
|
||||
volume = 1.0;
|
||||
isLooping= false;
|
||||
is3D = false;
|
||||
type = $GuiAudioType;
|
||||
};
|
||||
|
||||
new AudioDescription(AudioMessage)
|
||||
{
|
||||
volume = 1.0;
|
||||
isLooping= false;
|
||||
is3D = false;
|
||||
type = $MessageAudioType;
|
||||
};
|
||||
|
||||
new AudioProfile(AudioButtonOver)
|
||||
{
|
||||
filename = "~/data/sound/buttonOver.wav";
|
||||
description = "AudioGui";
|
||||
preload = true;
|
||||
};
|
||||
|
||||
new AudioProfile(AudioCountBeep)
|
||||
{
|
||||
filename = "~/data/sound/beep1.wav";
|
||||
description = "AudioGui";
|
||||
preload = true;
|
||||
};
|
||||
|
||||
new AudioProfile(AudioGoBeep)
|
||||
{
|
||||
filename = "~/data/sound/beep2.wav";
|
||||
description = "AudioGui";
|
||||
preload = true;
|
||||
};
|
||||
@@ -0,0 +1,78 @@
|
||||
//-----------------------------------------------------------------------------
|
||||
// Torque Game Engine
|
||||
// Copyright (C) GarageGames.com, Inc.
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
$centerPrintActive = 0;
|
||||
$bottomPrintActive = 0;
|
||||
|
||||
// Selectable window sizes
|
||||
$CenterPrintSizes[1] = 20;
|
||||
$CenterPrintSizes[2] = 36;
|
||||
$CenterPrintSizes[3] = 56;
|
||||
|
||||
// time is specified in seconds
|
||||
function clientCmdCenterPrint( %message, %time, %size )
|
||||
{
|
||||
// if centerprint already visible, reset text and time.
|
||||
if ($centerPrintActive) {
|
||||
if (centerPrintDlg.removePrint !$= "")
|
||||
cancel(centerPrintDlg.removePrint);
|
||||
}
|
||||
else {
|
||||
CenterPrintDlg.visible = 1;
|
||||
$centerPrintActive = 1;
|
||||
}
|
||||
|
||||
CenterPrintText.setText( "<just:center>" @ %message );
|
||||
CenterPrintDlg.extent = firstWord(CenterPrintDlg.extent) @ " " @ $CenterPrintSizes[%size];
|
||||
|
||||
if (%time > 0)
|
||||
centerPrintDlg.removePrint = schedule( ( %time * 1000 ), 0, "clientCmdClearCenterPrint" );
|
||||
}
|
||||
|
||||
// time is specified in seconds
|
||||
function clientCmdBottomPrint( %message, %time, %size )
|
||||
{
|
||||
// if bottomprint already visible, reset text and time.
|
||||
if ($bottomPrintActive) {
|
||||
if( bottomPrintDlg.removePrint !$= "")
|
||||
cancel(bottomPrintDlg.removePrint);
|
||||
}
|
||||
else {
|
||||
bottomPrintDlg.setVisible(true);
|
||||
$bottomPrintActive = 1;
|
||||
}
|
||||
|
||||
bottomPrintText.setText( "<just:center>" @ %message );
|
||||
bottomPrintDlg.extent = firstWord(bottomPrintDlg.extent) @ " " @ $CenterPrintSizes[%size];
|
||||
|
||||
if (%time > 0)
|
||||
bottomPrintDlg.removePrint = schedule( ( %time * 1000 ), 0, "clientCmdClearbottomPrint" );
|
||||
}
|
||||
|
||||
function BottomPrintText::onResize(%this, %width, %height)
|
||||
{
|
||||
%this.position = "0 0";
|
||||
}
|
||||
|
||||
function CenterPrintText::onResize(%this, %width, %height)
|
||||
{
|
||||
%this.position = "0 0";
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------------------------------------------
|
||||
|
||||
function clientCmdClearCenterPrint()
|
||||
{
|
||||
$centerPrintActive = 0;
|
||||
CenterPrintDlg.visible = 0;
|
||||
CenterPrintDlg.removePrint = "";
|
||||
}
|
||||
|
||||
function clientCmdClearBottomPrint()
|
||||
{
|
||||
$bottomPrintActive = 0;
|
||||
BottomPrintDlg.visible = 0;
|
||||
BottomPrintDlg.removePrint = "";
|
||||
}
|
||||
286
Torque/SDK/example/starter.racing/client/scripts/chatHud.cs
Normal file
@@ -0,0 +1,286 @@
|
||||
//-----------------------------------------------------------------------------
|
||||
// Torque Game Engine
|
||||
// Copyright (C) GarageGames.com, Inc.
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// Message Hud
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
// chat hud sizes
|
||||
$outerChatLenY[1] = 72;
|
||||
$outerChatLenY[2] = 140;
|
||||
$outerChatLenY[3] = 200;
|
||||
|
||||
// Only play sound files that are <= 5000ms in length.
|
||||
$MaxMessageWavLength = 5000;
|
||||
|
||||
// Helper function to play a sound file if the message indicates.
|
||||
// Returns starting position of wave file indicator.
|
||||
function playMessageSound(%message, %voice, %pitch)
|
||||
{
|
||||
// Search for wav tag marker.
|
||||
%wavStart = strstr(%message, "~w");
|
||||
if (%wavStart == -1) {
|
||||
return -1;
|
||||
}
|
||||
|
||||
%wav = getSubStr(%message, %wavStart + 2, 1000);
|
||||
if (%voice !$= "") {
|
||||
%wavFile = "~/data/sound/voice/" @ %voice @ "/" @ %wav;
|
||||
}
|
||||
else {
|
||||
%wavFile = "~/data/sound/" @ %wav;
|
||||
}
|
||||
if (strstr(%wavFile, ".wav") != (strlen(%wavFile) - 4)) {
|
||||
%wavFile = %wavFile @ ".wav";
|
||||
}
|
||||
// XXX This only expands to a single filepath, of course; it
|
||||
// would be nice to support checking in each mod path if we
|
||||
// have multiple mods active.
|
||||
%wavFile = ExpandFilename(%wavFile);
|
||||
|
||||
if ((%pitch < 0.5) || (%pitch > 2.0)) {
|
||||
%pitch = 1.0;
|
||||
}
|
||||
|
||||
%wavLengthMS = alxGetWaveLen(%wavFile) * %pitch;
|
||||
if (%wavLengthMS == 0) {
|
||||
error("** WAV file \"" @ %wavFile @ "\" is nonexistent or sound is zero-length **");
|
||||
}
|
||||
else if (%wavLengthMS <= $MaxMessageWavLength) {
|
||||
if ($ClientChatHandle[%sender] != 0) {
|
||||
alxStop($ClientChatHandle[%sender]);
|
||||
}
|
||||
$ClientChatHandle[%sender] = alxCreateSource(AudioMessage, %wavFile);
|
||||
if (%pitch != 1.0) {
|
||||
alxSourcef($ClientChatHandle[%sender], "AL_PITCH", %pitch);
|
||||
}
|
||||
alxPlay($ClientChatHandle[%sender]);
|
||||
}
|
||||
else {
|
||||
error("** WAV file \"" @ %wavFile @ "\" is too long **");
|
||||
}
|
||||
|
||||
return %wavStart;
|
||||
}
|
||||
|
||||
|
||||
// All messages are stored in this HudMessageVector, the actual
|
||||
// MainChatHud only displays the contents of this vector.
|
||||
|
||||
new MessageVector(HudMessageVector);
|
||||
$LastHudTarget = 0;
|
||||
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
function onChatMessage(%message, %voice, %pitch)
|
||||
{
|
||||
// XXX Client objects on the server must have voiceTag and voicePitch
|
||||
// fields for values to be passed in for %voice and %pitch... in
|
||||
// this example mod, they don't have those fields.
|
||||
|
||||
// Clients are not allowed to trigger general game sounds with their
|
||||
// chat messages... a voice directory MUST be specified.
|
||||
if (%voice $= "") {
|
||||
%voice = "default";
|
||||
}
|
||||
|
||||
// See if there's a sound at the end of the message, and play it.
|
||||
if ((%wavStart = playMessageSound(%message, %voice, %pitch)) != -1) {
|
||||
// Remove the sound marker from the end of the message.
|
||||
%message = getSubStr(%message, 0, %wavStart);
|
||||
}
|
||||
|
||||
// Chat goes to the chat HUD.
|
||||
if (getWordCount(%message)) {
|
||||
ChatHud.addLine(%message);
|
||||
}
|
||||
}
|
||||
|
||||
function onServerMessage(%message)
|
||||
{
|
||||
// See if there's a sound at the end of the message, and play it.
|
||||
if ((%wavStart = playMessageSound(%message)) != -1) {
|
||||
// Remove the sound marker from the end of the message.
|
||||
%message = getSubStr(%message, 0, %wavStart);
|
||||
}
|
||||
|
||||
// Server messages go to the chat HUD too.
|
||||
if (getWordCount(%message)) {
|
||||
ChatHud.addLine(%message);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// MainChatHud methods
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
function MainChatHud::onWake( %this )
|
||||
{
|
||||
// set the chat hud to the users pref
|
||||
%this.setChatHudLength( $Pref::ChatHudLength );
|
||||
}
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
function MainChatHud::setChatHudLength( %this, %length )
|
||||
{
|
||||
OuterChatHud.resize(firstWord(OuterChatHud.position), getWord(OuterChatHud.position, 1),
|
||||
firstWord(OuterChatHud.extent), $outerChatLenY[%length]);
|
||||
ChatScrollHud.scrollToBottom();
|
||||
ChatPageDown.setVisible(false);
|
||||
}
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
function MainChatHud::nextChatHudLen( %this )
|
||||
{
|
||||
%len = $pref::ChatHudLength++;
|
||||
if ($pref::ChatHudLength == 4)
|
||||
$pref::ChatHudLength = 1;
|
||||
%this.setChatHudLength($pref::ChatHudLength);
|
||||
}
|
||||
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// ChatHud methods
|
||||
// This is the actual message vector/text control which is part of
|
||||
// the MainChatHud dialog
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
function ChatHud::addLine(%this,%text)
|
||||
{
|
||||
//first, see if we're "scrolled up"...
|
||||
%textHeight = %this.profile.fontSize;
|
||||
if (%textHeight <= 0)
|
||||
%textHeight = 12;
|
||||
%chatScrollHeight = getWord(%this.getGroup().getGroup().extent, 1);
|
||||
%chatPosition = getWord(%this.extent, 1) - %chatScrollHeight + getWord(%this.position, 1);
|
||||
%linesToScroll = mFloor((%chatPosition / %textHeight) + 0.5);
|
||||
if (%linesToScroll > 0)
|
||||
%origPosition = %this.position;
|
||||
|
||||
//add the message...
|
||||
while( !chatPageDown.isVisible() && HudMessageVector.getNumLines() && (HudMessageVector.getNumLines() >= $pref::HudMessageLogSize))
|
||||
{
|
||||
%tag = HudMessageVector.getLineTag(0);
|
||||
if(%tag != 0)
|
||||
%tag.delete();
|
||||
HudMessageVector.popFrontLine();
|
||||
}
|
||||
HudMessageVector.pushBackLine(%text, $LastHudTarget);
|
||||
$LastHudTarget = 0;
|
||||
|
||||
//now that we've added the message, see if we need to reset the position
|
||||
if (%linesToScroll > 0)
|
||||
{
|
||||
chatPageDown.setVisible(true);
|
||||
%this.position = %origPosition;
|
||||
}
|
||||
else
|
||||
chatPageDown.setVisible(false);
|
||||
}
|
||||
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
function ChatHud::pageUp(%this)
|
||||
{
|
||||
// Find out the text line height
|
||||
%textHeight = %this.profile.fontSize;
|
||||
if (%textHeight <= 0)
|
||||
%textHeight = 12;
|
||||
|
||||
// Find out how many lines per page are visible
|
||||
%chatScrollHeight = getWord(%this.getGroup().getGroup().extent, 1);
|
||||
if (%chatScrollHeight <= 0)
|
||||
return;
|
||||
|
||||
%pageLines = mFloor(%chatScrollHeight / %textHeight) - 1;
|
||||
if (%pageLines <= 0)
|
||||
%pageLines = 1;
|
||||
|
||||
// See how many lines we actually can scroll up:
|
||||
%chatPosition = -1 * getWord(%this.position, 1);
|
||||
%linesToScroll = mFloor((%chatPosition / %textHeight) + 0.5);
|
||||
if (%linesToScroll <= 0)
|
||||
return;
|
||||
|
||||
if (%linesToScroll > %pageLines)
|
||||
%scrollLines = %pageLines;
|
||||
else
|
||||
%scrollLines = %linesToScroll;
|
||||
|
||||
// Now set the position
|
||||
%this.position = firstWord(%this.position) SPC (getWord(%this.position, 1) + (%scrollLines * %textHeight));
|
||||
|
||||
// Display the pageup icon
|
||||
chatPageDown.setVisible(true);
|
||||
}
|
||||
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
function ChatHud::pageDown(%this)
|
||||
{
|
||||
// Find out the text line height
|
||||
%textHeight = %this.profile.fontSize;
|
||||
if (%textHeight <= 0)
|
||||
%textHeight = 12;
|
||||
|
||||
// Find out how many lines per page are visible
|
||||
%chatScrollHeight = getWord(%this.getGroup().getGroup().extent, 1);
|
||||
if (%chatScrollHeight <= 0)
|
||||
return;
|
||||
|
||||
%pageLines = mFloor(%chatScrollHeight / %textHeight) - 1;
|
||||
if (%pageLines <= 0)
|
||||
%pageLines = 1;
|
||||
|
||||
// See how many lines we actually can scroll down:
|
||||
%chatPosition = getWord(%this.extent, 1) - %chatScrollHeight + getWord(%this.position, 1);
|
||||
%linesToScroll = mFloor((%chatPosition / %textHeight) + 0.5);
|
||||
if (%linesToScroll <= 0)
|
||||
return;
|
||||
|
||||
if (%linesToScroll > %pageLines)
|
||||
%scrollLines = %pageLines;
|
||||
else
|
||||
%scrollLines = %linesToScroll;
|
||||
|
||||
// Now set the position
|
||||
%this.position = firstWord(%this.position) SPC (getWord(%this.position, 1) - (%scrollLines * %textHeight));
|
||||
|
||||
// See if we have should (still) display the pagedown icon
|
||||
if (%scrollLines < %linesToScroll)
|
||||
chatPageDown.setVisible(true);
|
||||
else
|
||||
chatPageDown.setVisible(false);
|
||||
}
|
||||
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// Support functions
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
function pageUpMessageHud()
|
||||
{
|
||||
ChatHud.pageUp();
|
||||
}
|
||||
|
||||
function pageDownMessageHud()
|
||||
{
|
||||
ChatHud.pageDown();
|
||||
}
|
||||
|
||||
function cycleMessageHudSize()
|
||||
{
|
||||
MainChatHud.nextChatHudLen();
|
||||
}
|
||||
30
Torque/SDK/example/starter.racing/client/scripts/client.cs
Normal file
@@ -0,0 +1,30 @@
|
||||
//-----------------------------------------------------------------------------
|
||||
// Torque Game Engine
|
||||
// Copyright (C) GarageGames.com, Inc.
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// Server Admin Commands
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
function SAD(%password)
|
||||
{
|
||||
if (%password !$= "")
|
||||
commandToServer('SAD', %password);
|
||||
}
|
||||
|
||||
function SADSetPassword(%password)
|
||||
{
|
||||
commandToServer('SADSetPassword', %password);
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
// Misc server commands
|
||||
//----------------------------------------------------------------------------
|
||||
|
||||
function clientCmdSyncClock(%time)
|
||||
{
|
||||
// Time update from the server, this is only sent at the start of a mission
|
||||
// or when a client joins a game in progress.
|
||||
}
|
||||
|
||||
362
Torque/SDK/example/starter.racing/client/scripts/default.bind.cs
Normal file
@@ -0,0 +1,362 @@
|
||||
//-----------------------------------------------------------------------------
|
||||
// Torque Game Engine
|
||||
// Copyright (C) GarageGames.com, Inc.
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
if ( isObject( moveMap ) )
|
||||
moveMap.delete();
|
||||
new ActionMap(moveMap);
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// Non-remapable binds
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
function escapeFromGame()
|
||||
{
|
||||
if ( $Server::ServerType $= "SinglePlayer" )
|
||||
MessageBoxYesNo( "Quit Mission", "Exit from this Mission?", "disconnect();", "");
|
||||
else
|
||||
MessageBoxYesNo( "Disconnect", "Disconnect from the server?", "disconnect();", "");
|
||||
}
|
||||
|
||||
moveMap.bindCmd(keyboard, "escape", "", "escapeFromGame();");
|
||||
|
||||
function showPlayerList(%val)
|
||||
{
|
||||
if (%val)
|
||||
PlayerListGui.toggle();
|
||||
}
|
||||
|
||||
moveMap.bind( keyboard, F2, showPlayerList );
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// Movement Keys
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
$movementSpeed = 1; // m/s
|
||||
|
||||
function setSpeed(%speed)
|
||||
{
|
||||
if(%speed)
|
||||
$movementSpeed = %speed;
|
||||
}
|
||||
|
||||
function moveleft(%val)
|
||||
{
|
||||
$mvLeftAction = %val * $movementSpeed;
|
||||
}
|
||||
|
||||
function moveright(%val)
|
||||
{
|
||||
$mvRightAction = %val * $movementSpeed;
|
||||
}
|
||||
|
||||
function moveup(%val)
|
||||
{
|
||||
$mvUpAction = %val * $movementSpeed;
|
||||
}
|
||||
|
||||
function movedown(%val)
|
||||
{
|
||||
$mvDownAction = %val * $movementSpeed;
|
||||
}
|
||||
|
||||
function accelerate(%val)
|
||||
{
|
||||
$mvForwardAction = %val * $movementSpeed;
|
||||
}
|
||||
|
||||
function brake(%val)
|
||||
{
|
||||
$mvBackwardAction = %val * $movementSpeed;
|
||||
}
|
||||
|
||||
function accelerate2(%val)
|
||||
{
|
||||
$mvForwardAction = %val * $movementSpeed;
|
||||
}
|
||||
|
||||
function brake2(%val)
|
||||
{
|
||||
$mvBackwardAction = %val * $movementSpeed;
|
||||
}
|
||||
|
||||
function turnLeft( %val )
|
||||
{
|
||||
$mvYawRightSpeed = %val ? $Pref::Input::KeyboardTurnSpeed : 0;
|
||||
}
|
||||
|
||||
function turnRight( %val )
|
||||
{
|
||||
$mvYawLeftSpeed = %val ? $Pref::Input::KeyboardTurnSpeed : 0;
|
||||
}
|
||||
|
||||
function panUp( %val )
|
||||
{
|
||||
$mvPitchDownSpeed = %val ? $Pref::Input::KeyboardTurnSpeed : 0;
|
||||
}
|
||||
|
||||
function panDown( %val )
|
||||
{
|
||||
$mvPitchUpSpeed = %val ? $Pref::Input::KeyboardTurnSpeed : 0;
|
||||
}
|
||||
|
||||
function getMouseAdjustAmount(%val)
|
||||
{
|
||||
// based on a default camera fov of 90'
|
||||
return(%val * ($cameraFov / 90) * 0.01);
|
||||
}
|
||||
|
||||
function yaw(%val)
|
||||
{
|
||||
$mvYaw += getMouseAdjustAmount(%val);
|
||||
}
|
||||
|
||||
function pitch(%val)
|
||||
{
|
||||
$mvPitch += getMouseAdjustAmount(%val);
|
||||
}
|
||||
|
||||
function handbrake(%val)
|
||||
{
|
||||
$mvTriggerCount2++;
|
||||
}
|
||||
|
||||
moveMap.bind( keyboard, w, accelerate);
|
||||
moveMap.bind( keyboard, s, brake);
|
||||
moveMap.bind( keyboard, a, moveleft );
|
||||
moveMap.bind( keyboard, d, moveright );
|
||||
|
||||
moveMap.bind( keyboard, left, turnleft );
|
||||
moveMap.bind( keyboard, right, turnright );
|
||||
moveMap.bind( keyboard, up, accelerate );
|
||||
moveMap.bind( keyboard, down, brake );
|
||||
moveMap.bind( keyboard, space, handbrake );
|
||||
moveMap.bind( mouse, xaxis, yaw );
|
||||
moveMap.bind( mouse, yaxis, pitch );
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// Mouse Trigger
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
function mouseFire(%val)
|
||||
{
|
||||
$mvTriggerCount0++;
|
||||
}
|
||||
|
||||
function altTrigger(%val)
|
||||
{
|
||||
$mvTriggerCount1++;
|
||||
}
|
||||
|
||||
moveMap.bind( mouse, button0, mouseFire );
|
||||
//moveMap.bind( mouse, button1, altTrigger );
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// Zoom and FOV functions
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
if($Pref::player::CurrentFOV $= "")
|
||||
$Pref::player::CurrentFOV = 45;
|
||||
|
||||
function setZoomFOV(%val)
|
||||
{
|
||||
if(%val)
|
||||
toggleZoomFOV();
|
||||
}
|
||||
|
||||
function toggleZoom( %val )
|
||||
{
|
||||
if ( %val )
|
||||
{
|
||||
$ZoomOn = true;
|
||||
setFov( $Pref::player::CurrentFOV );
|
||||
}
|
||||
else
|
||||
{
|
||||
$ZoomOn = false;
|
||||
setFov( $Pref::player::DefaultFov );
|
||||
}
|
||||
}
|
||||
|
||||
moveMap.bind(keyboard, r, setZoomFOV);
|
||||
moveMap.bind(keyboard, e, toggleZoom);
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// Camera & View functions
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
function toggleFreeLook( %val )
|
||||
{
|
||||
if ( %val )
|
||||
$mvFreeLook = true;
|
||||
else
|
||||
$mvFreeLook = false;
|
||||
}
|
||||
|
||||
$firstPerson = true;
|
||||
function toggleFirstPerson(%val)
|
||||
{
|
||||
if (%val)
|
||||
{
|
||||
$firstPerson = !$firstPerson;
|
||||
ServerConnection.setFirstPerson($firstPerson);
|
||||
}
|
||||
}
|
||||
|
||||
function toggleCamera(%val)
|
||||
{
|
||||
if (%val)
|
||||
commandToServer('ToggleCamera');
|
||||
}
|
||||
|
||||
moveMap.bind( keyboard, z, toggleFreeLook );
|
||||
moveMap.bind(keyboard, tab, toggleFirstPerson );
|
||||
moveMap.bind(keyboard, "alt c", toggleCamera);
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// Misc. Player stuff
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
moveMap.bindCmd(keyboard, "ctrl r", "commandToServer('reset');", "");
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// Item manipulation
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
moveMap.bindCmd(keyboard, "h", "commandToServer('use',\"HealthKit\");", "");
|
||||
moveMap.bindCmd(keyboard, "1", "commandToServer('use',\"Rifle\");", "");
|
||||
moveMap.bindCmd(keyboard, "2", "commandToServer('use',\"Crossbow\");", "");
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// Message HUD functions
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
function pageMessageHudUp( %val )
|
||||
{
|
||||
if ( %val )
|
||||
pageUpMessageHud();
|
||||
}
|
||||
|
||||
function pageMessageHudDown( %val )
|
||||
{
|
||||
if ( %val )
|
||||
pageDownMessageHud();
|
||||
}
|
||||
|
||||
function resizeMessageHud( %val )
|
||||
{
|
||||
if ( %val )
|
||||
cycleMessageHudSize();
|
||||
}
|
||||
|
||||
moveMap.bind(keyboard, u, toggleMessageHud );
|
||||
//moveMap.bind(keyboard, y, teamMessageHud );
|
||||
moveMap.bind(keyboard, "pageUp", pageMessageHudUp );
|
||||
moveMap.bind(keyboard, "pageDown", pageMessageHudDown );
|
||||
moveMap.bind(keyboard, "p", resizeMessageHud );
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// Demo recording functions
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
function startRecordingDemo( %val )
|
||||
{
|
||||
if ( %val )
|
||||
startDemoRecord();
|
||||
}
|
||||
|
||||
function stopRecordingDemo( %val )
|
||||
{
|
||||
if ( %val )
|
||||
stopDemoRecord();
|
||||
}
|
||||
|
||||
moveMap.bind( keyboard, F3, startRecordingDemo );
|
||||
moveMap.bind( keyboard, F4, stopRecordingDemo );
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// Helper Functions
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
function dropCameraAtPlayer(%val)
|
||||
{
|
||||
if (%val)
|
||||
commandToServer('dropCameraAtPlayer');
|
||||
}
|
||||
|
||||
function dropPlayerAtCamera(%val)
|
||||
{
|
||||
if (%val)
|
||||
commandToServer('DropPlayerAtCamera');
|
||||
}
|
||||
|
||||
moveMap.bind(keyboard, "F8", dropCameraAtPlayer);
|
||||
moveMap.bind(keyboard, "F7", dropPlayerAtCamera);
|
||||
|
||||
function bringUpOptions(%val)
|
||||
{
|
||||
if (%val)
|
||||
Canvas.pushDialog(OptionsDlg);
|
||||
}
|
||||
|
||||
moveMap.bind(keyboard, "ctrl o", bringUpOptions);
|
||||
moveMap.bindCmd(keyboard, "n", "NetGraph::toggleNetGraph();", "");
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// Dubuging Functions
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
$MFDebugRenderMode = 0;
|
||||
function cycleDebugRenderMode(%val)
|
||||
{
|
||||
if (!%val)
|
||||
return;
|
||||
|
||||
if (getBuildString() $= "Debug")
|
||||
{
|
||||
if($MFDebugRenderMode == 0)
|
||||
{
|
||||
// Outline mode, including fonts so no stats
|
||||
$MFDebugRenderMode = 1;
|
||||
GLEnableOutline(true);
|
||||
}
|
||||
else if ($MFDebugRenderMode == 1)
|
||||
{
|
||||
// Interior debug mode
|
||||
$MFDebugRenderMode = 2;
|
||||
GLEnableOutline(false);
|
||||
setInteriorRenderMode(7);
|
||||
showInterior();
|
||||
}
|
||||
else if ($MFDebugRenderMode == 2)
|
||||
{
|
||||
// Back to normal
|
||||
$MFDebugRenderMode = 0;
|
||||
setInteriorRenderMode(0);
|
||||
GLEnableOutline(false);
|
||||
show();
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
echo("Debug render modes only available when running a Debug build.");
|
||||
}
|
||||
}
|
||||
|
||||
GlobalActionMap.bind(keyboard, "F9", cycleDebugRenderMode);
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// Misc.
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
GlobalActionMap.bind(keyboard, "tilde", toggleConsole);
|
||||
GlobalActionMap.bindCmd(keyboard, "alt enter", "", "toggleFullScreen();");
|
||||
GlobalActionMap.bindCmd(keyboard, "F1", "", "contextHelp();");
|
||||
|
||||
46
Torque/SDK/example/starter.racing/client/scripts/game.cs
Normal file
@@ -0,0 +1,46 @@
|
||||
//-----------------------------------------------------------------------------
|
||||
// Torque Game Engine
|
||||
// Copyright (C) GarageGames.com, Inc.
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
// Game start / end events sent from the server
|
||||
//----------------------------------------------------------------------------
|
||||
|
||||
function clientCmdSetCounter(%count)
|
||||
{
|
||||
if(%count == 3)
|
||||
counter.setVisible(true);
|
||||
|
||||
counter.setBitmap("starter.racing/client/ui/" @ %count @ ".png");
|
||||
|
||||
alxPlay(AudioCountBeep);
|
||||
}
|
||||
|
||||
function clientCmdGameStart(%seq)
|
||||
{
|
||||
// Display the GO bitmap and play a sound
|
||||
counter.setBitmap("starter.racing/client/ui/go.png");
|
||||
alxPlay(AudioGoBeep);
|
||||
// Remove the GO after a second.
|
||||
counter.schedule(1000, setVisible, false);
|
||||
}
|
||||
|
||||
function clientCmdGameEnd(%seq)
|
||||
{
|
||||
// Stop local activity... the game will be destroyed on the server
|
||||
alxStopAll();
|
||||
|
||||
// Copy the current scores from the player list into the
|
||||
// end game gui (bit of a hack for now).
|
||||
EndGameGuiList.clear();
|
||||
for (%i = 0; %i < PlayerListGuiList.rowCount(); %i++) {
|
||||
%text = PlayerListGuiList.getRowText(%i);
|
||||
%id = PlayerListGuiList.getRowId(%i);
|
||||
EndGameGuiList.addRow(%id,%text);
|
||||
}
|
||||
EndGameGuiList.sortNumerical(1,false);
|
||||
|
||||
// Display the end-game screen
|
||||
Canvas.setContent(EndGameGui);
|
||||
}
|
||||
@@ -0,0 +1,36 @@
|
||||
//-----------------------------------------------------------------------------
|
||||
// Torque Game Engine
|
||||
// Copyright (C) GarageGames.com, Inc.
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
function LoadingGui::onAdd(%this)
|
||||
{
|
||||
%this.qLineCount = 0;
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
function LoadingGui::onWake(%this)
|
||||
{
|
||||
// Play sound...
|
||||
CloseMessagePopup();
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
function LoadingGui::onSleep(%this)
|
||||
{
|
||||
// Clear the load info:
|
||||
if ( %this.qLineCount !$= "" )
|
||||
{
|
||||
for ( %line = 0; %line < %this.qLineCount; %line++ )
|
||||
%this.qLine[%line] = "";
|
||||
}
|
||||
%this.qLineCount = 0;
|
||||
|
||||
LOAD_MapName.setText( "" );
|
||||
LOAD_MapDescription.setText( "" );
|
||||
LoadingProgress.setValue( 0 );
|
||||
LoadingProgressTxt.setValue( "WAITING FOR SERVER" );
|
||||
|
||||
// Stop sound...
|
||||
}
|
||||
112
Torque/SDK/example/starter.racing/client/scripts/messageHud.cs
Normal file
@@ -0,0 +1,112 @@
|
||||
//-----------------------------------------------------------------------------
|
||||
// Torque Game Engine
|
||||
// Copyright (C) GarageGames.com, Inc.
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
// Enter Chat Message Hud
|
||||
//----------------------------------------------------------------------------
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
function MessageHud::open(%this)
|
||||
{
|
||||
%offset = 6;
|
||||
|
||||
if(%this.isVisible())
|
||||
return;
|
||||
|
||||
if(%this.isTeamMsg)
|
||||
%text = "TEAM:";
|
||||
else
|
||||
%text = "GLOBAL:";
|
||||
|
||||
MessageHud_Text.setValue(%text);
|
||||
|
||||
%windowPos = "0 " @ ( getWord( outerChatHud.position, 1 ) + getWord( outerChatHud.extent, 1 ) + 1 );
|
||||
%windowExt = getWord( OuterChatHud.extent, 0 ) @ " " @ getWord( MessageHud_Frame.extent, 1 );
|
||||
|
||||
%textExtent = getWord(MessageHud_Text.extent, 0) + 14;
|
||||
%ctrlExtent = getWord(MessageHud_Frame.extent, 0);
|
||||
|
||||
Canvas.pushDialog(%this);
|
||||
|
||||
messageHud_Frame.position = %windowPos;
|
||||
messageHud_Frame.extent = %windowExt;
|
||||
MessageHud_Edit.position = setWord(MessageHud_Edit.position, 0, %textExtent + %offset);
|
||||
MessageHud_Edit.extent = setWord(MessageHud_Edit.extent, 0, %ctrlExtent - %textExtent - (2 * %offset));
|
||||
|
||||
%this.setVisible(true);
|
||||
deactivateKeyboard();
|
||||
MessageHud_Edit.makeFirstResponder(true);
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
function MessageHud::close(%this)
|
||||
{
|
||||
if(!%this.isVisible())
|
||||
return;
|
||||
|
||||
Canvas.popDialog(%this);
|
||||
%this.setVisible(false);
|
||||
if ( $enableDirectInput )
|
||||
activateKeyboard();
|
||||
MessageHud_Edit.setValue("");
|
||||
}
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
function MessageHud::toggleState(%this)
|
||||
{
|
||||
if(%this.isVisible())
|
||||
%this.close();
|
||||
else
|
||||
%this.open();
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
function MessageHud_Edit::onEscape(%this)
|
||||
{
|
||||
MessageHud.close();
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
function MessageHud_Edit::eval(%this)
|
||||
{
|
||||
%text = trim(%this.getValue());
|
||||
if(%text !$= "")
|
||||
{
|
||||
if(MessageHud.isTeamMsg)
|
||||
commandToServer('teamMessageSent', %text);
|
||||
else
|
||||
commandToServer('messageSent', %text);
|
||||
}
|
||||
|
||||
MessageHud.close();
|
||||
}
|
||||
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
// MessageHud key handlers
|
||||
|
||||
function toggleMessageHud(%make)
|
||||
{
|
||||
if(%make)
|
||||
{
|
||||
MessageHud.isTeamMsg = false;
|
||||
MessageHud.toggleState();
|
||||
}
|
||||
}
|
||||
|
||||
function teamMessageHud(%make)
|
||||
{
|
||||
if(%make)
|
||||
{
|
||||
MessageHud.isTeamMsg = true;
|
||||
MessageHud.toggleState();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,153 @@
|
||||
//-----------------------------------------------------------------------------
|
||||
// Torque Game Engine
|
||||
// Copyright (C) GarageGames.com, Inc.
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
// Mission Loading & Mission Info
|
||||
// The mission loading server handshaking is handled by the
|
||||
// common/client/missingLoading.cs. This portion handles the interface
|
||||
// with the game GUI.
|
||||
//----------------------------------------------------------------------------
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
// Loading Phases:
|
||||
// Phase 1: Download Datablocks
|
||||
// Phase 2: Download Ghost Objects
|
||||
// Phase 3: Scene Lighting
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
// Phase 1
|
||||
//----------------------------------------------------------------------------
|
||||
|
||||
function onMissionDownloadPhase1(%missionName, %musicTrack)
|
||||
{
|
||||
// Close and clear the message hud (in case it's open)
|
||||
MessageHud.close();
|
||||
//cls();
|
||||
|
||||
// Reset the loading progress controls:
|
||||
LoadingProgress.setValue(0);
|
||||
LoadingProgressTxt.setValue("LOADING DATABLOCKS");
|
||||
}
|
||||
|
||||
function onPhase1Progress(%progress)
|
||||
{
|
||||
LoadingProgress.setValue(%progress);
|
||||
Canvas.repaint();
|
||||
}
|
||||
|
||||
function onPhase1Complete()
|
||||
{
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
// Phase 2
|
||||
//----------------------------------------------------------------------------
|
||||
|
||||
function onMissionDownloadPhase2()
|
||||
{
|
||||
// Reset the loading progress controls:
|
||||
LoadingProgress.setValue(0);
|
||||
LoadingProgressTxt.setValue("LOADING OBJECTS");
|
||||
Canvas.repaint();
|
||||
}
|
||||
|
||||
function onPhase2Progress(%progress)
|
||||
{
|
||||
LoadingProgress.setValue(%progress);
|
||||
Canvas.repaint();
|
||||
}
|
||||
|
||||
function onPhase2Complete()
|
||||
{
|
||||
}
|
||||
|
||||
function onFileChunkReceived(%fileName, %ofs, %size)
|
||||
{
|
||||
LoadingProgress.setValue(%ofs / %size);
|
||||
LoadingProgressTxt.setValue("Downloading " @ %fileName @ "...");
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
// Phase 3
|
||||
//----------------------------------------------------------------------------
|
||||
|
||||
function onMissionDownloadPhase3()
|
||||
{
|
||||
LoadingProgress.setValue(0);
|
||||
LoadingProgressTxt.setValue("LIGHTING MISSION");
|
||||
Canvas.repaint();
|
||||
}
|
||||
|
||||
function onPhase3Progress(%progress)
|
||||
{
|
||||
LoadingProgress.setValue(%progress);
|
||||
}
|
||||
|
||||
function onPhase3Complete()
|
||||
{
|
||||
LoadingProgress.setValue( 1 );
|
||||
$lightingMission = false;
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
// Mission loading done!
|
||||
//----------------------------------------------------------------------------
|
||||
|
||||
function onMissionDownloadComplete()
|
||||
{
|
||||
// Client will shortly be dropped into the game, so this is
|
||||
// good place for any last minute gui cleanup.
|
||||
}
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// Before downloading a mission, the server transmits the mission
|
||||
// information through these messages.
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
addMessageCallback( 'MsgLoadInfo', handleLoadInfoMessage );
|
||||
addMessageCallback( 'MsgLoadDescripition', handleLoadDescriptionMessage );
|
||||
addMessageCallback( 'MsgLoadInfoDone', handleLoadInfoDoneMessage );
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
function handleLoadInfoMessage( %msgType, %msgString, %mapName ) {
|
||||
|
||||
// Need to pop up the loading gui to display this stuff.
|
||||
Canvas.setContent("LoadingGui");
|
||||
|
||||
// Clear all of the loading info lines:
|
||||
for( %line = 0; %line < LoadingGui.qLineCount; %line++ )
|
||||
LoadingGui.qLine[%line] = "";
|
||||
LoadingGui.qLineCount = 0;
|
||||
|
||||
//
|
||||
LOAD_MapName.setText( %mapName );
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
function handleLoadDescriptionMessage( %msgType, %msgString, %line )
|
||||
{
|
||||
LoadingGui.qLine[LoadingGui.qLineCount] = %line;
|
||||
LoadingGui.qLineCount++;
|
||||
|
||||
// Gather up all the previous lines, append the current one
|
||||
// and stuff it into the control
|
||||
%text = "<spush><font:Arial:16>";
|
||||
|
||||
for( %line = 0; %line < LoadingGui.qLineCount - 1; %line++ )
|
||||
%text = %text @ LoadingGui.qLine[%line] @ " ";
|
||||
%text = %text @ LoadingGui.qLine[%line] @ "<spop>";
|
||||
|
||||
LOAD_MapDescription.setText( %text );
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
function handleLoadInfoDoneMessage( %msgType, %msgString )
|
||||
{
|
||||
// This will get called after the last description line is sent.
|
||||
}
|
||||
551
Torque/SDK/example/starter.racing/client/scripts/optionsDlg.cs
Normal file
@@ -0,0 +1,551 @@
|
||||
function optionsDlg::setPane(%this, %pane)
|
||||
{
|
||||
OptAudioPane.setVisible(false);
|
||||
OptGraphicsPane.setVisible(false);
|
||||
OptNetworkPane.setVisible(false);
|
||||
OptControlsPane.setVisible(false);
|
||||
("Opt" @ %pane @ "Pane").setVisible(true);
|
||||
OptRemapList.fillList();
|
||||
}
|
||||
|
||||
function OptionsDlg::onWake(%this)
|
||||
{
|
||||
OptGraphicsButton.performClick();
|
||||
%buffer = getDisplayDeviceList();
|
||||
%count = getFieldCount( %buffer );
|
||||
OptGraphicsDriverMenu.clear();
|
||||
OptScreenshotMenu.init();
|
||||
OptScreenshotMenu.setValue($pref::Video::screenShotFormat);
|
||||
for(%i = 0; %i < %count; %i++)
|
||||
OptGraphicsDriverMenu.add(getField(%buffer, %i), %i);
|
||||
%selId = OptGraphicsDriverMenu.findText( $pref::Video::displayDevice );
|
||||
if ( %selId == -1 )
|
||||
%selId = 0; // How did THAT happen?
|
||||
OptGraphicsDriverMenu.setSelected( %selId );
|
||||
OptGraphicsDriverMenu.onSelect( %selId, "" );
|
||||
|
||||
// Audio
|
||||
OptAudioUpdate();
|
||||
OptAudioVolumeMaster.setValue($pref::Audio::masterVolume);
|
||||
OptAudioVolumeShell.setValue( $pref::Audio::channelVolume[$GuiAudioType]);
|
||||
OptAudioVolumeSim.setValue( $pref::Audio::channelVolume[$SimAudioType]);
|
||||
OptAudioDriverList.clear();
|
||||
OptAudioDriverList.add("OpenAL", 1);
|
||||
OptAudioDriverList.add("none", 2);
|
||||
%selId = OptAudioDriverList.findText($pref::Audio::driver);
|
||||
if ( %selId == -1 )
|
||||
%selId = 0; // How did THAT happen?
|
||||
OptAudioDriverList.setSelected( %selId );
|
||||
OptAudioDriverList.onSelect( %selId, "" );
|
||||
}
|
||||
|
||||
function OptionsDlg::onSleep(%this)
|
||||
{
|
||||
// write out the control config into the rw/config.cs file
|
||||
moveMap.save( "./client/config.cs" );
|
||||
}
|
||||
|
||||
function OptGraphicsDriverMenu::onSelect( %this, %id, %text )
|
||||
{
|
||||
// Attempt to keep the same res and bpp settings:
|
||||
if ( OptGraphicsResolutionMenu.size() > 0 )
|
||||
%prevRes = OptGraphicsResolutionMenu.getText();
|
||||
else
|
||||
%prevRes = getWords( $pref::Video::resolution, 0, 1 );
|
||||
|
||||
// Check if this device is full-screen only:
|
||||
if ( isDeviceFullScreenOnly( %this.getText() ) )
|
||||
{
|
||||
OptGraphicsFullscreenToggle.setValue( true );
|
||||
OptGraphicsFullscreenToggle.setActive( false );
|
||||
OptGraphicsFullscreenToggle.onAction();
|
||||
}
|
||||
else
|
||||
OptGraphicsFullscreenToggle.setActive( true );
|
||||
|
||||
if ( OptGraphicsFullscreenToggle.getValue() )
|
||||
{
|
||||
if ( OptGraphicsBPPMenu.size() > 0 )
|
||||
%prevBPP = OptGraphicsBPPMenu.getText();
|
||||
else
|
||||
%prevBPP = getWord( $pref::Video::resolution, 2 );
|
||||
}
|
||||
|
||||
// Fill the resolution and bit depth lists:
|
||||
OptGraphicsResolutionMenu.init( %this.getText(), OptGraphicsFullscreenToggle.getValue() );
|
||||
OptGraphicsBPPMenu.init( %this.getText() );
|
||||
|
||||
// Try to select the previous settings:
|
||||
%selId = OptGraphicsResolutionMenu.findText( %prevRes );
|
||||
if ( %selId == -1 )
|
||||
%selId = 0;
|
||||
OptGraphicsResolutionMenu.setSelected( %selId );
|
||||
|
||||
if ( OptGraphicsFullscreenToggle.getValue() )
|
||||
{
|
||||
%selId = OptGraphicsBPPMenu.findText( %prevBPP );
|
||||
if ( %selId == -1 )
|
||||
%selId = 0;
|
||||
OptGraphicsBPPMenu.setSelected( %selId );
|
||||
OptGraphicsBPPMenu.setText( OptGraphicsBPPMenu.getTextById( %selId ) );
|
||||
}
|
||||
else
|
||||
OptGraphicsBPPMenu.setText( "Default" );
|
||||
|
||||
}
|
||||
|
||||
function OptGraphicsResolutionMenu::init( %this, %device, %fullScreen )
|
||||
{
|
||||
%this.clear();
|
||||
%resList = getResolutionList( %device );
|
||||
%resCount = getFieldCount( %resList );
|
||||
%deskRes = getDesktopResolution();
|
||||
|
||||
%count = 0;
|
||||
for ( %i = 0; %i < %resCount; %i++ )
|
||||
{
|
||||
%res = getWords( getField( %resList, %i ), 0, 1 );
|
||||
|
||||
if ( !%fullScreen )
|
||||
{
|
||||
if ( firstWord( %res ) >= firstWord( %deskRes ) )
|
||||
continue;
|
||||
if ( getWord( %res, 1 ) >= getWord( %deskRes, 1 ) )
|
||||
continue;
|
||||
}
|
||||
|
||||
// Only add to list if it isn't there already:
|
||||
if ( %this.findText( %res ) == -1 )
|
||||
{
|
||||
%this.add( %res, %count );
|
||||
%count++;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function OptGraphicsFullscreenToggle::onAction(%this)
|
||||
{
|
||||
Parent::onAction();
|
||||
%prevRes = OptGraphicsResolutionMenu.getText();
|
||||
|
||||
// Update the resolution menu with the new options
|
||||
OptGraphicsResolutionMenu.init( OptGraphicsDriverMenu.getText(), %this.getValue() );
|
||||
|
||||
// Set it back to the previous resolution if the new mode supports it.
|
||||
%selId = OptGraphicsResolutionMenu.findText( %prevRes );
|
||||
if ( %selId == -1 )
|
||||
%selId = 0;
|
||||
OptGraphicsResolutionMenu.setSelected( %selId );
|
||||
}
|
||||
|
||||
|
||||
function OptGraphicsBPPMenu::init( %this, %device )
|
||||
{
|
||||
%this.clear();
|
||||
|
||||
if ( %device $= "Voodoo2" )
|
||||
%this.add( "16", 0 );
|
||||
else
|
||||
{
|
||||
%resList = getResolutionList( %device );
|
||||
%resCount = getFieldCount( %resList );
|
||||
%count = 0;
|
||||
for ( %i = 0; %i < %resCount; %i++ )
|
||||
{
|
||||
%bpp = getWord( getField( %resList, %i ), 2 );
|
||||
|
||||
// Only add to list if it isn't there already:
|
||||
if ( %this.findText( %bpp ) == -1 )
|
||||
{
|
||||
%this.add( %bpp, %count );
|
||||
%count++;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function OptScreenshotMenu::init( %this )
|
||||
{
|
||||
if( %this.findText("PNG") == -1 )
|
||||
%this.add("PNG", 0);
|
||||
if( %this.findText("JPEG") == - 1 )
|
||||
%this.add("JPEG", 1);
|
||||
}
|
||||
|
||||
function optionsDlg::applyGraphics( %this )
|
||||
{
|
||||
%newDriver = OptGraphicsDriverMenu.getText();
|
||||
%newRes = OptGraphicsResolutionMenu.getText();
|
||||
%newBpp = OptGraphicsBPPMenu.getText();
|
||||
%newFullScreen = OptGraphicsFullscreenToggle.getValue();
|
||||
$pref::Video::screenShotFormat = OptScreenshotMenu.getText();
|
||||
|
||||
if ( %newDriver !$= $pref::Video::displayDevice )
|
||||
{
|
||||
setDisplayDevice( %newDriver, firstWord( %newRes ), getWord( %newRes, 1 ), %newBpp, %newFullScreen );
|
||||
//OptionsDlg::deviceDependent( %this );
|
||||
}
|
||||
else
|
||||
setScreenMode( firstWord( %newRes ), getWord( %newRes, 1 ), %newBpp, %newFullScreen );
|
||||
}
|
||||
|
||||
|
||||
|
||||
$RemapCount = 0;
|
||||
$RemapName[$RemapCount] = "Accelerate";
|
||||
$RemapCmd[$RemapCount] = "accelerate";
|
||||
$RemapCount++;
|
||||
$RemapName[$RemapCount] = "Brake/Reverse";
|
||||
$RemapCmd[$RemapCount] = "brake";
|
||||
$RemapCount++;
|
||||
$RemapName[$RemapCount] = "Turn Left";
|
||||
$RemapCmd[$RemapCount] = "turnLeft";
|
||||
$RemapCount++;
|
||||
$RemapName[$RemapCount] = "Turn Right";
|
||||
$RemapCmd[$RemapCount] = "turnRight";
|
||||
$RemapCount++;
|
||||
$RemapName[$RemapCount] = "Hand brake";
|
||||
$RemapCmd[$RemapCount] = "handbrake";
|
||||
$RemapCount++;
|
||||
$RemapName[$RemapCount] = "Adjust Zoom";
|
||||
$RemapCmd[$RemapCount] = "setZoomFov";
|
||||
$RemapCount++;
|
||||
$RemapName[$RemapCount] = "Toggle Zoom";
|
||||
$RemapCmd[$RemapCount] = "toggleZoom";
|
||||
$RemapCount++;
|
||||
$RemapName[$RemapCount] = "Free Look";
|
||||
$RemapCmd[$RemapCount] = "toggleFreeLook";
|
||||
$RemapCount++;
|
||||
$RemapName[$RemapCount] = "Switch 1st/3rd";
|
||||
$RemapCmd[$RemapCount] = "toggleFirstPerson";
|
||||
$RemapCount++;
|
||||
$RemapName[$RemapCount] = "Chat to Everyone";
|
||||
$RemapCmd[$RemapCount] = "toggleMessageHud";
|
||||
$RemapCount++;
|
||||
$RemapName[$RemapCount] = "Message Hud PageUp";
|
||||
$RemapCmd[$RemapCount] = "pageMessageHudUp";
|
||||
$RemapCount++;
|
||||
$RemapName[$RemapCount] = "Message Hud PageDown";
|
||||
$RemapCmd[$RemapCount] = "pageMessageHudDown";
|
||||
$RemapCount++;
|
||||
$RemapName[$RemapCount] = "Resize Message Hud";
|
||||
$RemapCmd[$RemapCount] = "resizeMessageHud";
|
||||
$RemapCount++;
|
||||
$RemapName[$RemapCount] = "Show Scores";
|
||||
$RemapCmd[$RemapCount] = "showPlayerList";
|
||||
$RemapCount++;
|
||||
$RemapName[$RemapCount] = "Reset car";
|
||||
$RemapCmd[$RemapCount] = "reset";
|
||||
$RemapCount++;
|
||||
$RemapName[$RemapCount] = "Toggle Camera";
|
||||
$RemapCmd[$RemapCount] = "toggleCamera";
|
||||
$RemapCount++;
|
||||
$RemapName[$RemapCount] = "Drop Camera at Player";
|
||||
$RemapCmd[$RemapCount] = "dropCameraAtPlayer";
|
||||
$RemapCount++;
|
||||
$RemapName[$RemapCount] = "Drop Player at Camera";
|
||||
$RemapCmd[$RemapCount] = "dropPlayerAtCamera";
|
||||
$RemapCount++;
|
||||
$RemapName[$RemapCount] = "Bring up Options Dialog";
|
||||
$RemapCmd[$RemapCount] = "bringUpOptions";
|
||||
$RemapCount++;
|
||||
|
||||
|
||||
function restoreDefaultMappings()
|
||||
{
|
||||
moveMap.delete();
|
||||
exec( "~/scripts/default.bind.cs" );
|
||||
OptRemapList.fillList();
|
||||
}
|
||||
|
||||
function getMapDisplayName( %device, %action )
|
||||
{
|
||||
if ( %device $= "keyboard" )
|
||||
return( %action );
|
||||
else if ( strstr( %device, "mouse" ) != -1 )
|
||||
{
|
||||
// Substitute "mouse" for "button" in the action string:
|
||||
%pos = strstr( %action, "button" );
|
||||
if ( %pos != -1 )
|
||||
{
|
||||
%mods = getSubStr( %action, 0, %pos );
|
||||
%object = getSubStr( %action, %pos, 1000 );
|
||||
%instance = getSubStr( %object, strlen( "button" ), 1000 );
|
||||
return( %mods @ "mouse" @ ( %instance + 1 ) );
|
||||
}
|
||||
else
|
||||
error( "Mouse input object other than button passed to getDisplayMapName!" );
|
||||
}
|
||||
else if ( strstr( %device, "joystick" ) != -1 )
|
||||
{
|
||||
// Substitute "joystick" for "button" in the action string:
|
||||
%pos = strstr( %action, "button" );
|
||||
if ( %pos != -1 )
|
||||
{
|
||||
%mods = getSubStr( %action, 0, %pos );
|
||||
%object = getSubStr( %action, %pos, 1000 );
|
||||
%instance = getSubStr( %object, strlen( "button" ), 1000 );
|
||||
return( %mods @ "joystick" @ ( %instance + 1 ) );
|
||||
}
|
||||
else
|
||||
{
|
||||
%pos = strstr( %action, "pov" );
|
||||
if ( %pos != -1 )
|
||||
{
|
||||
%wordCount = getWordCount( %action );
|
||||
%mods = %wordCount > 1 ? getWords( %action, 0, %wordCount - 2 ) @ " " : "";
|
||||
%object = getWord( %action, %wordCount - 1 );
|
||||
switch$ ( %object )
|
||||
{
|
||||
case "upov": %object = "POV1 up";
|
||||
case "dpov": %object = "POV1 down";
|
||||
case "lpov": %object = "POV1 left";
|
||||
case "rpov": %object = "POV1 right";
|
||||
case "upov2": %object = "POV2 up";
|
||||
case "dpov2": %object = "POV2 down";
|
||||
case "lpov2": %object = "POV2 left";
|
||||
case "rpov2": %object = "POV2 right";
|
||||
default: %object = "??";
|
||||
}
|
||||
return( %mods @ %object );
|
||||
}
|
||||
else
|
||||
error( "Unsupported Joystick input object passed to getDisplayMapName!" );
|
||||
}
|
||||
}
|
||||
|
||||
return( "??" );
|
||||
}
|
||||
|
||||
function buildFullMapString( %index )
|
||||
{
|
||||
%name = $RemapName[%index];
|
||||
%cmd = $RemapCmd[%index];
|
||||
|
||||
%temp = moveMap.getBinding( %cmd );
|
||||
%device = getField( %temp, 0 );
|
||||
%object = getField( %temp, 1 );
|
||||
if ( %device !$= "" && %object !$= "" )
|
||||
%mapString = getMapDisplayName( %device, %object );
|
||||
else
|
||||
%mapString = "";
|
||||
|
||||
return( %name TAB %mapString );
|
||||
}
|
||||
|
||||
function OptRemapList::fillList( %this )
|
||||
{
|
||||
%this.clear();
|
||||
for ( %i = 0; %i < $RemapCount; %i++ )
|
||||
%this.addRow( %i, buildFullMapString( %i ) );
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
function OptRemapList::doRemap( %this )
|
||||
{
|
||||
%selId = %this.getSelectedId();
|
||||
%name = $RemapName[%selId];
|
||||
|
||||
OptRemapText.setValue( "REMAP \"" @ %name @ "\"" );
|
||||
OptRemapInputCtrl.index = %selId;
|
||||
Canvas.pushDialog( RemapDlg );
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
function redoMapping( %device, %action, %cmd, %oldIndex, %newIndex )
|
||||
{
|
||||
//%actionMap.bind( %device, %action, $RemapCmd[%newIndex] );
|
||||
moveMap.bind( %device, %action, %cmd );
|
||||
OptRemapList.setRowById( %oldIndex, buildFullMapString( %oldIndex ) );
|
||||
OptRemapList.setRowById( %newIndex, buildFullMapString( %newIndex ) );
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
function findRemapCmdIndex( %command )
|
||||
{
|
||||
for ( %i = 0; %i < $RemapCount; %i++ )
|
||||
{
|
||||
if ( %command $= $RemapCmd[%i] )
|
||||
return( %i );
|
||||
}
|
||||
return( -1 );
|
||||
}
|
||||
|
||||
function OptRemapInputCtrl::onInputEvent( %this, %device, %action )
|
||||
{
|
||||
//error( "** onInputEvent called - device = " @ %device @ ", action = " @ %action @ " **" );
|
||||
Canvas.popDialog( RemapDlg );
|
||||
|
||||
// Test for the reserved keystrokes:
|
||||
if ( %device $= "keyboard" )
|
||||
{
|
||||
// Cancel...
|
||||
if ( %action $= "escape" )
|
||||
{
|
||||
// Do nothing...
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
%cmd = $RemapCmd[%this.index];
|
||||
%name = $RemapName[%this.index];
|
||||
|
||||
// First check to see if the given action is already mapped:
|
||||
%prevMap = moveMap.getCommand( %device, %action );
|
||||
if ( %prevMap !$= %cmd )
|
||||
{
|
||||
if ( %prevMap $= "" )
|
||||
{
|
||||
moveMap.bind( %device, %action, %cmd );
|
||||
OptRemapList.setRowById( %this.index, buildFullMapString( %this.index ) );
|
||||
}
|
||||
else
|
||||
{
|
||||
%mapName = getMapDisplayName( %device, %action );
|
||||
%prevMapIndex = findRemapCmdIndex( %prevMap );
|
||||
if ( %prevMapIndex == -1 )
|
||||
MessageBoxOK( "REMAP FAILED", "\"" @ %mapName @ "\" is already bound to a non-remappable command!" );
|
||||
else
|
||||
{
|
||||
%prevCmdName = $RemapName[%prevMapIndex];
|
||||
MessageBoxYesNo( "WARNING",
|
||||
"\"" @ %mapName @ "\" is already bound to \""
|
||||
@ %prevCmdName @ "\"!\nDo you want to undo this mapping?",
|
||||
"redoMapping(" @ %device @ ", \"" @ %action @ "\", \"" @ %cmd @ "\", " @ %prevMapIndex @ ", " @ %this.index @ ");", "" );
|
||||
}
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Audio
|
||||
function OptAudioUpdate()
|
||||
{
|
||||
// set the driver text
|
||||
%text = "Vendor: " @ alGetString("AL_VENDOR") @
|
||||
"\nVersion: " @ alGetString("AL_VERSION") @
|
||||
"\nRenderer: " @ alGetString("AL_RENDERER") @
|
||||
"\nExtensions: " @ alGetString("AL_EXTENSIONS");
|
||||
OptAudioInfo.setText(%text);
|
||||
|
||||
}
|
||||
|
||||
|
||||
// Channel 0 is unused in-game, but is used here to test master volume.
|
||||
|
||||
new AudioDescription(AudioChannel0)
|
||||
{
|
||||
volume = 1.0;
|
||||
isLooping= false;
|
||||
is3D = false;
|
||||
type = 0;
|
||||
};
|
||||
|
||||
new AudioDescription(AudioChannel1)
|
||||
{
|
||||
volume = 1.0;
|
||||
isLooping= false;
|
||||
is3D = false;
|
||||
type = 1;
|
||||
};
|
||||
|
||||
new AudioDescription(AudioChannel2)
|
||||
{
|
||||
volume = 1.0;
|
||||
isLooping= false;
|
||||
is3D = false;
|
||||
type = 2;
|
||||
};
|
||||
|
||||
new AudioDescription(AudioChannel3)
|
||||
{
|
||||
volume = 1.0;
|
||||
isLooping= false;
|
||||
is3D = false;
|
||||
type = 3;
|
||||
};
|
||||
|
||||
new AudioDescription(AudioChannel4)
|
||||
{
|
||||
volume = 1.0;
|
||||
isLooping= false;
|
||||
is3D = false;
|
||||
type = 4;
|
||||
};
|
||||
|
||||
new AudioDescription(AudioChannel5)
|
||||
{
|
||||
volume = 1.0;
|
||||
isLooping= false;
|
||||
is3D = false;
|
||||
type = 5;
|
||||
};
|
||||
|
||||
new AudioDescription(AudioChannel6)
|
||||
{
|
||||
volume = 1.0;
|
||||
isLooping= false;
|
||||
is3D = false;
|
||||
type = 6;
|
||||
};
|
||||
|
||||
new AudioDescription(AudioChannel7)
|
||||
{
|
||||
volume = 1.0;
|
||||
isLooping= false;
|
||||
is3D = false;
|
||||
type = 7;
|
||||
};
|
||||
|
||||
new AudioDescription(AudioChannel8)
|
||||
{
|
||||
volume = 1.0;
|
||||
isLooping= false;
|
||||
is3D = false;
|
||||
type = 8;
|
||||
};
|
||||
|
||||
$AudioTestHandle = 0;
|
||||
|
||||
function OptAudioUpdateMasterVolume(%volume)
|
||||
{
|
||||
if (%volume == $pref::Audio::masterVolume)
|
||||
return;
|
||||
alxListenerf(AL_GAIN_LINEAR, %volume);
|
||||
$pref::Audio::masterVolume = %volume;
|
||||
if (!alxIsPlaying($AudioTestHandle))
|
||||
{
|
||||
$AudioTestHandle = alxCreateSource("AudioChannel0", expandFilename("~/data/sound/testing.wav"));
|
||||
alxPlay($AudioTestHandle);
|
||||
}
|
||||
}
|
||||
|
||||
function OptAudioUpdateChannelVolume(%channel, %volume)
|
||||
{
|
||||
if (%channel < 1 || %channel > 8)
|
||||
return;
|
||||
|
||||
if (%volume == $pref::Audio::channelVolume[%channel])
|
||||
return;
|
||||
|
||||
alxSetChannelVolume(%channel, %volume);
|
||||
$pref::Audio::channelVolume[%channel] = %volume;
|
||||
if (!alxIsPlaying($AudioTestHandle))
|
||||
{
|
||||
$AudioTestHandle = alxCreateSource("AudioChannel"@%channel, expandFilename("~/data/sound/testing.wav"));
|
||||
alxPlay($AudioTestHandle);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
function OptAudioDriverList::onSelect( %this, %id, %text )
|
||||
{
|
||||
if (%text $= "")
|
||||
return;
|
||||
|
||||
if ($pref::Audio::driver $= %text)
|
||||
return;
|
||||
|
||||
$pref::Audio::driver = %text;
|
||||
OpenALInit();
|
||||
}
|
||||
72
Torque/SDK/example/starter.racing/client/scripts/playGui.cs
Normal file
@@ -0,0 +1,72 @@
|
||||
//-----------------------------------------------------------------------------
|
||||
// Torque Game Engine
|
||||
// Copyright (C) GarageGames.com, Inc.
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// PlayGui is the main TSControl through which the game is viewed.
|
||||
// The PlayGui also contains the hud controls.
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
function PlayGui::onWake(%this)
|
||||
{
|
||||
// Turn off any shell sounds...
|
||||
// alxStop( ... );
|
||||
|
||||
$enableDirectInput = "1";
|
||||
activateDirectInput();
|
||||
|
||||
// Message hud dialog
|
||||
Canvas.pushDialog( MainChatHud );
|
||||
chatHud.attach(HudMessageVector);
|
||||
|
||||
// just update the action map here
|
||||
moveMap.push();
|
||||
|
||||
// hack city - these controls are floating around and need to be clamped
|
||||
schedule(0, 0, "refreshCenterTextCtrl");
|
||||
schedule(0, 0, "refreshBottomTextCtrl");
|
||||
}
|
||||
|
||||
function PlayGui::onSleep(%this)
|
||||
{
|
||||
Canvas.popDialog( MainChatHud );
|
||||
|
||||
// pop the keymaps
|
||||
moveMap.pop();
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
function PlayGui::updateLapCounter(%this)
|
||||
{
|
||||
LapCounter.setText("Lap" SPC %this.lap SPC "/" SPC %this.maxLaps);
|
||||
}
|
||||
|
||||
function clientCmdSetMaxLaps(%laps)
|
||||
{
|
||||
// Reset the current lap to 1 and set the max laps.
|
||||
PlayGui.lap = 1;
|
||||
PlayGui.maxLaps = %laps;
|
||||
PlayGui.updateLapCounter();
|
||||
}
|
||||
|
||||
function clientCmdIncreaseLapCounter()
|
||||
{
|
||||
// Increase the lap.
|
||||
PlayGui.lap++;
|
||||
PlayGui.updateLapCounter();
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
function refreshBottomTextCtrl()
|
||||
{
|
||||
BottomPrintText.position = "0 0";
|
||||
}
|
||||
|
||||
function refreshCenterTextCtrl()
|
||||
{
|
||||
CenterPrintText.position = "0 0";
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,32 @@
|
||||
//-----------------------------------------------------------------------------
|
||||
// Torque Game Engine
|
||||
// Copyright (C) GarageGames.com, Inc.
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// Hook into the client update messages to maintain our player list
|
||||
// and scoreboard.
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
addMessageCallback('MsgClientJoin', handleClientJoin);
|
||||
addMessageCallback('MsgClientDrop', handleClientDrop);
|
||||
addMessageCallback('MsgClientScoreChanged', handleClientScoreChanged);
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
function handleClientJoin(%msgType, %msgString, %clientName, %clientId,
|
||||
%guid, %score, %isAI, %isAdmin, %isSuperAdmin )
|
||||
{
|
||||
PlayerListGui.update(%clientId,detag(%clientName),%isSuperAdmin,
|
||||
%isAdmin,%isAI,%score);
|
||||
}
|
||||
|
||||
function handleClientDrop(%msgType, %msgString, %clientName, %clientId)
|
||||
{
|
||||
PlayerListGui.remove(%clientId);
|
||||
}
|
||||
|
||||
function handleClientScoreChanged(%msgType, %msgString, %score, %clientId)
|
||||
{
|
||||
PlayerListGui.updateScore(%clientId,%score);
|
||||
}
|
||||
@@ -0,0 +1,166 @@
|
||||
//-----------------------------------------------------------------------------
|
||||
// Torque Game Engine
|
||||
// Copyright (C) GarageGames.com, Inc.
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
// Functions dealing with connecting to a server
|
||||
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// Server connection error
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
addMessageCallback( 'MsgConnectionError', handleConnectionErrorMessage );
|
||||
|
||||
function handleConnectionErrorMessage(%msgType, %msgString, %msgError)
|
||||
{
|
||||
// On connect the server transmits a message to display if there
|
||||
// are any problems with the connection. Most connection errors
|
||||
// are game version differences, so hopefully the server message
|
||||
// will tell us where to get the latest version of the game.
|
||||
$ServerConnectionErrorMessage = %msgError;
|
||||
}
|
||||
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
// GameConnection client callbacks
|
||||
//----------------------------------------------------------------------------
|
||||
|
||||
function GameConnection::initialControlSet(%this)
|
||||
{
|
||||
echo ("*** Initial Control Object");
|
||||
|
||||
// The first control object has been set by the server
|
||||
// and we are now ready to go.
|
||||
|
||||
// first check if the editor is active
|
||||
if (!Editor::checkActiveLoadDone())
|
||||
{
|
||||
if (Canvas.getContent() != PlayGui.getId())
|
||||
Canvas.setContent(PlayGui);
|
||||
}
|
||||
}
|
||||
|
||||
function GameConnection::setLagIcon(%this, %state)
|
||||
{
|
||||
if (%this.getAddress() $= "local")
|
||||
return;
|
||||
LagIcon.setVisible(%state $= "true");
|
||||
}
|
||||
|
||||
function GameConnection::onConnectionAccepted(%this)
|
||||
{
|
||||
// Called on the new connection object after connect() succeeds.
|
||||
LagIcon.setVisible(false);
|
||||
}
|
||||
|
||||
function GameConnection::onConnectionTimedOut(%this)
|
||||
{
|
||||
// Called when an established connection times out
|
||||
disconnectedCleanup();
|
||||
MessageBoxOK( "TIMED OUT", "The server connection has timed out.");
|
||||
}
|
||||
|
||||
function GameConnection::onConnectionDropped(%this, %msg)
|
||||
{
|
||||
// Established connection was dropped by the server
|
||||
disconnectedCleanup();
|
||||
MessageBoxOK( "DISCONNECT", "The server has dropped the connection: " @ %msg);
|
||||
}
|
||||
|
||||
function GameConnection::onConnectionError(%this, %msg)
|
||||
{
|
||||
// General connection error, usually raised by ghosted objects
|
||||
// initialization problems, such as missing files. We'll display
|
||||
// the server's connection error message.
|
||||
disconnectedCleanup();
|
||||
MessageBoxOK( "DISCONNECT", $ServerConnectionErrorMessage @ " (" @ %msg @ ")" );
|
||||
}
|
||||
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
// Connection Failed Events
|
||||
//----------------------------------------------------------------------------
|
||||
|
||||
function GameConnection::onConnectRequestRejected( %this, %msg )
|
||||
{
|
||||
switch$(%msg)
|
||||
{
|
||||
case "CR_INVALID_PROTOCOL_VERSION":
|
||||
%error = "Incompatible protocol version: Your game version is not compatible with this server.";
|
||||
case "CR_INVALID_CONNECT_PACKET":
|
||||
%error = "Internal Error: badly formed network packet";
|
||||
case "CR_YOUAREBANNED":
|
||||
%error = "You are not allowed to play on this server.";
|
||||
case "CR_SERVERFULL":
|
||||
%error = "This server is full.";
|
||||
case "CHR_PASSWORD":
|
||||
// XXX Should put up a password-entry dialog.
|
||||
if ($Client::Password $= "")
|
||||
MessageBoxOK( "REJECTED", "That server requires a password.");
|
||||
else {
|
||||
$Client::Password = "";
|
||||
MessageBoxOK( "REJECTED", "That password is incorrect.");
|
||||
}
|
||||
return;
|
||||
case "CHR_PROTOCOL":
|
||||
%error = "Incompatible protocol version: Your game version is not compatible with this server.";
|
||||
case "CHR_CLASSCRC":
|
||||
%error = "Incompatible game classes: Your game version is not compatible with this server.";
|
||||
case "CHR_INVALID_CHALLENGE_PACKET":
|
||||
%error = "Internal Error: Invalid server response packet";
|
||||
default:
|
||||
%error = "Connection error. Please try another server. Error code: (" @ %msg @ ")";
|
||||
}
|
||||
disconnectedCleanup();
|
||||
MessageBoxOK( "REJECTED", %error);
|
||||
}
|
||||
|
||||
function GameConnection::onConnectRequestTimedOut(%this)
|
||||
{
|
||||
disconnectedCleanup();
|
||||
MessageBoxOK( "TIMED OUT", "Your connection to the server timed out." );
|
||||
}
|
||||
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// Disconnect
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
function disconnect()
|
||||
{
|
||||
// Delete the connection if it's still there.
|
||||
if (isObject(ServerConnection))
|
||||
ServerConnection.delete();
|
||||
disconnectedCleanup();
|
||||
|
||||
// Call destroyServer in case we're hosting
|
||||
destroyServer();
|
||||
}
|
||||
|
||||
function disconnectedCleanup()
|
||||
{
|
||||
// Clear misc script stuff
|
||||
HudMessageVector.clear();
|
||||
|
||||
// Terminate all playing sounds
|
||||
alxStopAll();
|
||||
if (isObject(MusicPlayer))
|
||||
MusicPlayer.stop();
|
||||
|
||||
//
|
||||
LagIcon.setVisible(false);
|
||||
PlayerListGui.clear();
|
||||
|
||||
// Clear all print messages
|
||||
clientCmdclearBottomPrint();
|
||||
clientCmdClearCenterPrint();
|
||||
|
||||
// Back to the launch screen
|
||||
Canvas.setContent(MainMenuGui);
|
||||
|
||||
// Dump anything we're not using
|
||||
clearTextureHolds();
|
||||
purgeResources();
|
||||
}
|
||||
|
||||
8
Torque/SDK/example/starter.racing/client/ui/0. About.hfl
Normal file
@@ -0,0 +1,8 @@
|
||||
<lmargin%:5><rmargin%:95><font:Arial:16>Welcome to the Racing starter Kit.
|
||||
|
||||
<font:Arial Bold:16>About the Starter Kit:<font:Arial:16>The starter kit is a simple example game for you to use in building your own game. This kit is not a complete game in itself, but does illustrate basic play mechanics as well as provide example art. This is a starting point for your future hit title!
|
||||
|
||||
<font:Arial Bold:16>About GarageGames.com:<font:Arial:16> <a:www.garagegames.com>GarageGames</a> is a unique Internet publishing label for independent games and gamemakers. We are a band of professional gaming industry veterans committed to publishing truly original and exciting titles on our own terms. Our mission? To provide the independent developer with tools, knowledge, co-conspirators - whatever is needed to unleash the creative spirit and get great innovative independent games to market.
|
||||
|
||||
<font:Arial Bold:16>About the Torque Game Engine:<font:Arial:16> The <a:www.garagegames.com/pg/product/view.php?id=1>Torque Game Engine</a> (TGE) is the game engine that powers Tribes 2 developed by Dynamix. TGE is a full featured AAA title engine with the latest in scripting, geometry, particle effects, animation and texturing, as well as award winning multi-player networking code. Check out the <a:www.garagegames.com/pg/product/view.php?id=1#features>feature list</a> for more details. For $100 per programmer, you get the source to the engine of a major product from a major game publisher! Not possible? Check the <a:www.garagegames.com/index.php?sec=mg&mod=resource&page=category&qid=122>FAQ</a> for the details.
|
||||
|
||||
51
Torque/SDK/example/starter.racing/client/ui/1. Credits.hfl
Normal file
@@ -0,0 +1,51 @@
|
||||
<just:center><lmargin%:5><rmargin%:95><font:Arial Bold:20>Torque Game Engine Credits...
|
||||
<bitmap:demo/client/ui/seperator>
|
||||
<font:Arial Bold:20>GarageGames.com Staff<font:Arial:16>
|
||||
<a:www.garagegames.com/my/home/view.profile.php?qid=3>Jeff "MotoMan" Tunnell</a>
|
||||
<a:www.garagegames.com/my/home/view.profile.php?qid=1>Tim "Slacker" Gift</a>
|
||||
<a:www.garagegames.com/my/home/view.profile.php?qid=2>Rick "Entropy" Overman</a>
|
||||
<a:www.garagegames.com/my/home/view.profile.php?qid=55>Mark "Got Milk?" Frohnmayer</a>
|
||||
<a:www.garagegames.com/my/home/view.profile.php?qid=5030>Brian "Twitch" Ramage</a>
|
||||
<a:www.garagegames.com/my/home/view.profile.php?qid=5263>Alex Swanson</a>
|
||||
<a:www.garagegames.com/my/home/view.profile.php?qid=10185>Jay Moore</a>
|
||||
|
||||
<bitmap:demo/client/ui/seperator>
|
||||
<font:Arial Bold:20>Torque Engine Programmers<font:Arial:16>
|
||||
<a:www.garagegames.com/my/home/view.profile.php?qid=438>Dave "Symlink" Moore</a>
|
||||
<a:www.garagegames.com/my/home/view.profile.php?qid=572>John "Uberbob" Folliard</a>
|
||||
<a:www.garagegames.com/my/home/view.profile.php?qid=4872>Greg "Jett" Lancaster</a>
|
||||
<a:www.garagegames.com/my/home/view.profile.php?qid=6019>Tim "Kidney Thief" Anderson</a>
|
||||
John "Sne/\ker" Alden
|
||||
Lincoln "Missing" Hutton
|
||||
Brad "BigDevDawg" Heinz
|
||||
Clark Fagot
|
||||
Shawn Eastley
|
||||
|
||||
<bitmap:demo/client/ui/seperator>
|
||||
<font:Arial Bold:20>Torque Community Contributers<font:Arial:16>
|
||||
<a:www.garagegames.com/my/home/view.profile.php?qid=7194>Xavier Amado</a>
|
||||
<a:www.garagegames.com/my/home/view.profile.php?qid=5416>Melv May</a>
|
||||
<a:www.garagegames.com/my/home/view.profile.php?qid=2678>David Chait</a>
|
||||
<a:www.garagegames.com/my/home/view.profile.php?qid=6645>John Quigley</a>
|
||||
<a:www.garagegames.com/my/home/view.profile.php?qid=1992>Ryan J. Parker</a>
|
||||
<a:www.garagegames.com/my/home/view.profile.php?qid=370>Pat "Killer Bunny" Wilson</a>
|
||||
<a:www.garagegames.com/my/home/view.profile.php?qid=8863>Ben Garney</a>
|
||||
<a:www.garagegames.com/my/home/view.profile.php?qid=8052>Chris "Hobbiticus" Weiland</a>
|
||||
<a:www.garagegames.com/my/home/view.profile.php?qid=22163>Troy McFarland</a>
|
||||
<a:www.garagegames.com/my/home/view.profile.php?qid=985>Matthew Fairfax</a>
|
||||
<a:www.garagegames.com/my/home/view.profile.php?qid=5308>Alf M Comps</a>
|
||||
<a:www.gloofactory.com>Gloo Factory</a>
|
||||
|
||||
<font:Arial Bold:20>Torque Beta Testers/Coders<font:Arial:16>
|
||||
<a:www.garagegames.com/my/home/view.profile.php?qid=561>Wes Bigelow</a>
|
||||
<a:www.garagegames.com/my/home/view.profile.php?qid=1123>David M. Byttow</a>
|
||||
<a:www.garagegames.com/my/home/view.profile.php?qid=1605>Phil Carlisle</a>
|
||||
<a:www.garagegames.com/my/home/view.profile.php?qid=1360>Brandon Curiel</a>
|
||||
<a:www.garagegames.com/my/home/view.profile.php?qid=2998>Darren Hannah</a>
|
||||
<a:www.garagegames.com/my/home/view.profile.php?qid=3120>Daniel Krenn</a>
|
||||
<a:www.garagegames.com/my/home/view.profile.php?qid=3073>Sean Lucas</a>
|
||||
<a:www.garagegames.com/my/home/view.profile.php?qid=2111>Jeremy Noetzelman</a>
|
||||
<a:www.garagegames.com/my/home/view.profile.php?qid=105>Kevin Ryan</a>
|
||||
<a:www.garagegames.com/my/home/view.profile.php?qid=1251>Brian Smith</a>
|
||||
<a:www.garagegames.com/my/home/view.profile.php?qid=1490>Dusty Wilson</a>
|
||||
|
||||
@@ -0,0 +1,24 @@
|
||||
<lmargin%:5><rmargin%:95><font:Arial Bold:20>Default Game Control Setup...<font:Arial:16>
|
||||
<tab:105,200>
|
||||
<font:Arial Bold:16>Movement<font:Arial:16>
|
||||
Up Arrow Accelerate
|
||||
Down Arrow Brake/Reverse
|
||||
Left Arrow Turn Left
|
||||
Right Arrow Turn Right
|
||||
Mouse Turn Left/Right
|
||||
Space HandBrake
|
||||
|
||||
<font:Arial Bold:16>View Control<font:Arial:16>
|
||||
E Zoom
|
||||
R Set zoom FOV
|
||||
TAB First/Third person camera
|
||||
Alt-C Toggle between camera/player
|
||||
|
||||
<font:Arial Bold:16>Chat<font:Arial:16>
|
||||
U Send public chat message
|
||||
|
||||
<font:Arial Bold:16>Misc Functions<font:Arial:16>
|
||||
Ctrl-O Open in-game options dialog
|
||||
Ctrl-R Reset car
|
||||
F7 Drop the player at the camera
|
||||
F8 Drop the camera at the player
|
||||
BIN
Torque/SDK/example/starter.racing/client/ui/1.png
Normal file
|
After Width: | Height: | Size: 6.2 KiB |
BIN
Torque/SDK/example/starter.racing/client/ui/2.png
Normal file
|
After Width: | Height: | Size: 14 KiB |
BIN
Torque/SDK/example/starter.racing/client/ui/3.png
Normal file
|
After Width: | Height: | Size: 13 KiB |
BIN
Torque/SDK/example/starter.racing/client/ui/GarageGames.jpg
Normal file
|
After Width: | Height: | Size: 76 KiB |
46
Torque/SDK/example/starter.racing/client/ui/StartupGui.gui
Normal file
@@ -0,0 +1,46 @@
|
||||
//--- OBJECT WRITE BEGIN ---
|
||||
new GuiFadeinBitmapCtrl(StartupGui) {
|
||||
profile = "GuiInputCtrlProfile";
|
||||
horizSizing = "right";
|
||||
vertSizing = "bottom";
|
||||
position = "0 0";
|
||||
extent = "640 480";
|
||||
minExtent = "8 8";
|
||||
visible = "1";
|
||||
helpTag = "0";
|
||||
bitmap = "./GarageGames";
|
||||
wrap = "0";
|
||||
fadeinTime = "125";
|
||||
waitTime = "3000";
|
||||
fadeoutTime = "125";
|
||||
};
|
||||
//--- OBJECT WRITE END ---
|
||||
|
||||
function loadStartup()
|
||||
{
|
||||
StartupGui.done = false;
|
||||
Canvas.setContent( StartupGui );
|
||||
schedule(100, 0, checkStartupDone );
|
||||
alxPlay(AudioStartup);
|
||||
}
|
||||
|
||||
|
||||
//-------------------------------------
|
||||
function StartupGui::click()
|
||||
{
|
||||
StartupGui.done = true;
|
||||
}
|
||||
|
||||
|
||||
//-------------------------------------
|
||||
function checkStartupDone()
|
||||
{
|
||||
if (StartupGui.done)
|
||||
{
|
||||
echo ("*** Load Main Menu");
|
||||
loadMainMenu();
|
||||
}
|
||||
else
|
||||
schedule(100, 0, checkStartupDone );
|
||||
}
|
||||
|
||||
96
Torque/SDK/example/starter.racing/client/ui/aboutDlg.gui
Normal file
@@ -0,0 +1,96 @@
|
||||
//-----------------------------------------------------------------------------
|
||||
// Torque Game Engine
|
||||
//
|
||||
// Copyright (c) 2001 GarageGames.Com
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
//--- OBJECT WRITE BEGIN ---
|
||||
new GuiControl(aboutDlg) {
|
||||
profile = "GuiDefaultProfile";
|
||||
horizSizing = "right";
|
||||
vertSizing = "bottom";
|
||||
position = "0 0";
|
||||
extent = "640 480";
|
||||
minExtent = "8 8";
|
||||
visible = "1";
|
||||
helpTag = "0";
|
||||
|
||||
new GuiWindowCtrl() {
|
||||
profile = "GuiWindowProfile";
|
||||
horizSizing = "center";
|
||||
vertSizing = "center";
|
||||
position = "132 88";
|
||||
extent = "376 303";
|
||||
minExtent = "8 8";
|
||||
visible = "1";
|
||||
helpTag = "0";
|
||||
text = "About...";
|
||||
maxLength = "255";
|
||||
resizeWidth = "0";
|
||||
resizeHeight = "0";
|
||||
canMove = "1";
|
||||
canClose = "1";
|
||||
canMinimize = "0";
|
||||
canMaximize = "0";
|
||||
minSize = "50 50";
|
||||
closeCommand = "Canvas.popDialog(aboutDlg);";
|
||||
|
||||
new GuiMLTextCtrl(aboutText) {
|
||||
profile = "GuiMLTextProfile";
|
||||
horizSizing = "width";
|
||||
vertSizing = "relative";
|
||||
position = "19 36";
|
||||
extent = "336 241";
|
||||
minExtent = "8 8";
|
||||
visible = "1";
|
||||
helpTag = "0";
|
||||
lineSpacing = "2";
|
||||
allowColorChars = "0";
|
||||
maxChars = "-1";
|
||||
text = "This is a test";
|
||||
};
|
||||
new GuiButtonCtrl() {
|
||||
profile = "GuiButtonProfile";
|
||||
horizSizing = "right";
|
||||
vertSizing = "bottom";
|
||||
position = "303 268";
|
||||
extent = "60 23";
|
||||
minExtent = "8 8";
|
||||
visible = "1";
|
||||
command = "Canvas.popDialog(aboutDlg);";
|
||||
helpTag = "0";
|
||||
text = "OK";
|
||||
};
|
||||
new GuiButtonCtrl() {
|
||||
profile = "GuiButtonProfile";
|
||||
horizSizing = "right";
|
||||
vertSizing = "bottom";
|
||||
position = "12 268";
|
||||
extent = "76 23";
|
||||
minExtent = "8 8";
|
||||
visible = "1";
|
||||
command = "getHelp(\"2. License\");";
|
||||
helpTag = "0";
|
||||
text = "License...";
|
||||
};
|
||||
};
|
||||
};
|
||||
//--- OBJECT WRITE END ---
|
||||
|
||||
|
||||
function aboutDlg::onWake(%this)
|
||||
{
|
||||
%text="<just:center><font:Arial Bold:20>Racing Starter Kit\n"@
|
||||
"<font:Arial:12>"@ getCompileTimeString() @", "@ getBuildString() @"Build\n\n"@
|
||||
"<font:Arial:16>Copyright (c) 2001 <a:www.garagegames.com>GarageGames.Com</a>\n"@
|
||||
"<bitmap:rw/client/ui/gglogo150.png>";
|
||||
aboutText.setText(%text);
|
||||
}
|
||||
|
||||
function aboutText::onURL(%this, %url)
|
||||
{
|
||||
echo(%this);
|
||||
echo(%url);
|
||||
gotoWebPage( %url );
|
||||
}
|
||||
|
||||
BIN
Torque/SDK/example/starter.racing/client/ui/background.jpg
Normal file
|
After Width: | Height: | Size: 93 KiB |
160
Torque/SDK/example/starter.racing/client/ui/chatHud.gui
Normal file
@@ -0,0 +1,160 @@
|
||||
//-----------------------------------------------------------------------------
|
||||
// Chat edit window
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
new GuiControl(MessageHud)
|
||||
{
|
||||
profile = "GuiDefaultProfile";
|
||||
horizSizing = "width";
|
||||
vertSizing = "height";
|
||||
position = "0 0";
|
||||
extent = "640 480";
|
||||
minExtent = "8 8";
|
||||
visible = "0";
|
||||
noCursor = true;
|
||||
|
||||
new GuiBitmapBorderCtrl(MessageHud_Frame) {
|
||||
profile = "ChatHudBorderProfile";
|
||||
horizSizing = "right";
|
||||
vertSizing = "bottom";
|
||||
position = "120 375";
|
||||
extent = "400 40";
|
||||
minExtent = "8 8";
|
||||
visible = "1";
|
||||
|
||||
new GuiBitmapCtrl() {
|
||||
profile = "GuiDefaultProfile";
|
||||
horizSizing = "width";
|
||||
vertSizing = "height";
|
||||
position = "8 8";
|
||||
extent = "384 24";
|
||||
minExtent = "8 8";
|
||||
visible = "1";
|
||||
helpTag = "0";
|
||||
bitmap = "./hudfill.png";
|
||||
wrap = "0";
|
||||
};
|
||||
|
||||
new GuiTextCtrl(MessageHud_Text)
|
||||
{
|
||||
profile = "ChatHudTextProfile";
|
||||
horizSizing = "right";
|
||||
vertSizing = "bottom";
|
||||
position = "14 12";
|
||||
extent = "10 22";
|
||||
minExtent = "8 8";
|
||||
visible = "1";
|
||||
};
|
||||
|
||||
new GuiTextEditCtrl(MessageHud_Edit)
|
||||
{
|
||||
profile = "ChatHudEditProfile";
|
||||
horizSizing = "right";
|
||||
vertSizing = "bottom";
|
||||
position = "0 13";
|
||||
extent = "10 22";
|
||||
minExtent = "8 8";
|
||||
visible = "1";
|
||||
altCommand = "$ThisControl.eval();";
|
||||
escapeCommand = "MessageHud_Edit.onEscape();";
|
||||
historySize = "5";
|
||||
maxLength = "120";
|
||||
};
|
||||
};
|
||||
};
|
||||
//--- OBJECT WRITE BEGIN ---
|
||||
new GuiControl(MainChatHud) {
|
||||
profile = "GuiModelessDialogProfile";
|
||||
horizSizing = "width";
|
||||
vertSizing = "height";
|
||||
position = "0 0";
|
||||
extent = "640 480";
|
||||
minExtent = "8 8";
|
||||
visible = "1";
|
||||
helpTag = "0";
|
||||
noCursor = "1";
|
||||
|
||||
new GuiControl() {
|
||||
profile = "GuiDefaultProfile";
|
||||
horizSizing = "relative";
|
||||
vertSizing = "bottom";
|
||||
position = "0 0";
|
||||
extent = "400 300";
|
||||
minExtent = "8 8";
|
||||
visible = "1";
|
||||
helpTag = "0";
|
||||
|
||||
new GuiBitmapBorderCtrl(OuterChatHud) {
|
||||
profile = "ChatHudBorderProfile";
|
||||
horizSizing = "width";
|
||||
vertSizing = "bottom";
|
||||
position = "0 0";
|
||||
extent = "272 88";
|
||||
minExtent = "8 8";
|
||||
visible = "1";
|
||||
helpTag = "0";
|
||||
useVariable = "0";
|
||||
tile = "0";
|
||||
|
||||
new GuiBitmapCtrl() {
|
||||
profile = "GuiDefaultProfile";
|
||||
horizSizing = "width";
|
||||
vertSizing = "height";
|
||||
position = "8 8";
|
||||
extent = "256 72";
|
||||
minExtent = "8 8";
|
||||
visible = "1";
|
||||
helpTag = "0";
|
||||
bitmap = "./hudfill.png";
|
||||
wrap = "0";
|
||||
};
|
||||
|
||||
new GuiButtonCtrl(chatPageDown) {
|
||||
profile = "GuiButtonProfile";
|
||||
horizSizing = "left";
|
||||
vertSizing = "top";
|
||||
position = "220 58";
|
||||
extent = "36 14";
|
||||
minExtent = "8 8";
|
||||
visible = "0";
|
||||
helpTag = "0";
|
||||
text = "Dwn";
|
||||
groupNum = "-1";
|
||||
buttonType = "PushButton";
|
||||
};
|
||||
new GuiScrollCtrl(ChatScrollHud) {
|
||||
profile = "ChatHudScrollProfile";
|
||||
horizSizing = "width";
|
||||
vertSizing = "height";
|
||||
position = "8 8";
|
||||
extent = "256 72";
|
||||
minExtent = "8 8";
|
||||
visible = "1";
|
||||
helpTag = "0";
|
||||
willFirstRespond = "1";
|
||||
hScrollBar = "alwaysOff";
|
||||
vScrollBar = "alwaysOff";
|
||||
constantThumbHeight = "0";
|
||||
childMargin = "0 0";
|
||||
|
||||
new GuiMessageVectorCtrl(ChatHud) {
|
||||
profile = "ChatHudMessageProfile";
|
||||
horizSizing = "width";
|
||||
vertSizing = "height";
|
||||
position = "1 1";
|
||||
extent = "252 16";
|
||||
minExtent = "8 8";
|
||||
visible = "1";
|
||||
helpTag = "0";
|
||||
lineSpacing = "0";
|
||||
lineContinuedIndex = "10";
|
||||
allowedMatches[0] = "http";
|
||||
allowedMatches[1] = "tgeserver";
|
||||
matchColor = "0 0 255 255";
|
||||
maxColorIndex = "5";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
//--- OBJECT WRITE END ---
|
||||
|
After Width: | Height: | Size: 8.5 KiB |
BIN
Torque/SDK/example/starter.racing/client/ui/crossHair.png
Normal file
|
After Width: | Height: | Size: 329 B |
109
Torque/SDK/example/starter.racing/client/ui/customProfiles.cs
Normal file
@@ -0,0 +1,109 @@
|
||||
//-----------------------------------------------------------------------------
|
||||
// Torque Game Engine
|
||||
// Copyright (c) 2002 GarageGames.Com
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
new GuiControlProfile (GuiDefaultProfile)
|
||||
{
|
||||
tab = false;
|
||||
canKeyFocus = false;
|
||||
hasBitmapArray = false;
|
||||
mouseOverSelected = false;
|
||||
|
||||
// fill color
|
||||
opaque = false;
|
||||
fillColor = "201 182 153";
|
||||
fillColorHL = "221 202 173";
|
||||
fillColorNA = "221 202 173";
|
||||
|
||||
// border color
|
||||
border = false;
|
||||
borderColor = "0 0 0";
|
||||
borderColorHL = "179 134 94";
|
||||
borderColorNA = "126 79 37";
|
||||
|
||||
// bevel color
|
||||
bevelColorHL = "255 255 255";
|
||||
bevelColorLL = "0 0 0";
|
||||
|
||||
// font
|
||||
fontType = "Arial";
|
||||
fontSize = 14;
|
||||
fontCharset = CHINESEBIG5;
|
||||
|
||||
fontColor = "0 0 0";
|
||||
fontColorHL = "32 100 100";
|
||||
fontColorNA = "0 0 0";
|
||||
fontColorSEL= "200 200 200";
|
||||
|
||||
// bitmap information
|
||||
bitmap = "./demoWindow";
|
||||
bitmapBase = "";
|
||||
textOffset = "0 0";
|
||||
|
||||
// used by guiTextControl
|
||||
modal = true;
|
||||
justify = "left";
|
||||
autoSizeWidth = false;
|
||||
autoSizeHeight = false;
|
||||
returnTab = false;
|
||||
numbersOnly = false;
|
||||
cursorColor = "0 0 0 255";
|
||||
|
||||
// sounds
|
||||
soundButtonDown = "";
|
||||
soundButtonOver = "";
|
||||
};
|
||||
|
||||
new GuiControlProfile (GuiWindowProfile)
|
||||
{
|
||||
opaque = true;
|
||||
border = 2;
|
||||
fillColor = "201 182 153";
|
||||
fillColorHL = "221 202 173";
|
||||
fillColorNA = "221 202 173";
|
||||
fontColor = "255 255 255";
|
||||
fontColorHL = "255 255 255";
|
||||
text = "GuiWindowCtrl test";
|
||||
bitmap = "./demoWindow";
|
||||
textOffset = "6 6";
|
||||
hasBitmapArray = true;
|
||||
justify = "center";
|
||||
};
|
||||
|
||||
new GuiControlProfile (GuiScrollProfile)
|
||||
{
|
||||
opaque = true;
|
||||
fillColor = "255 255 255";
|
||||
border = 3;
|
||||
borderThickness = 2;
|
||||
borderColor = "0 0 0";
|
||||
bitmap = "./demoScroll";
|
||||
hasBitmapArray = true;
|
||||
};
|
||||
|
||||
new GuiControlProfile (GuiCheckBoxProfile)
|
||||
{
|
||||
opaque = false;
|
||||
fillColor = "232 232 232";
|
||||
border = false;
|
||||
borderColor = "0 0 0";
|
||||
fontSize = 14;
|
||||
fontColor = "0 0 0";
|
||||
fontColorHL = "32 100 100";
|
||||
fixedExtent = true;
|
||||
justify = "left";
|
||||
bitmap = "./demoCheck";
|
||||
hasBitmapArray = true;
|
||||
};
|
||||
|
||||
new GuiControlProfile (GuiRadioProfile)
|
||||
{
|
||||
fontSize = 14;
|
||||
fillColor = "232 232 232";
|
||||
fontColorHL = "32 100 100";
|
||||
fixedExtent = true;
|
||||
bitmap = "./demoRadio";
|
||||
hasBitmapArray = true;
|
||||
};
|
||||
|
||||
@@ -0,0 +1,124 @@
|
||||
//-----------------------------------------------------------------------------
|
||||
// Torque Game Engine
|
||||
// Copyright (C) GarageGames.com, Inc.
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// Override base controls
|
||||
GuiButtonProfile.soundButtonOver = "AudioButtonOver";
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// Chat Hud profiles
|
||||
|
||||
|
||||
new GuiControlProfile (ChatHudEditProfile)
|
||||
{
|
||||
opaque = false;
|
||||
fillColor = "255 255 255";
|
||||
fillColorHL = "128 128 128";
|
||||
border = false;
|
||||
borderThickness = 0;
|
||||
borderColor = "40 231 240";
|
||||
fontColor = "40 231 240";
|
||||
fontColorHL = "40 231 240";
|
||||
fontColorNA = "128 128 128";
|
||||
textOffset = "0 2";
|
||||
autoSizeWidth = false;
|
||||
autoSizeHeight = true;
|
||||
tab = true;
|
||||
canKeyFocus = true;
|
||||
};
|
||||
|
||||
new GuiControlProfile (ChatHudTextProfile)
|
||||
{
|
||||
opaque = false;
|
||||
fillColor = "255 255 255";
|
||||
fillColorHL = "128 128 128";
|
||||
border = false;
|
||||
borderThickness = 0;
|
||||
borderColor = "40 231 240";
|
||||
fontColor = "40 231 240";
|
||||
fontColorHL = "40 231 240";
|
||||
fontColorNA = "128 128 128";
|
||||
textOffset = "0 0";
|
||||
autoSizeWidth = true;
|
||||
autoSizeHeight = true;
|
||||
tab = true;
|
||||
canKeyFocus = true;
|
||||
};
|
||||
|
||||
new GuiControlProfile ("ChatHudMessageProfile")
|
||||
{
|
||||
fontType = "Arial";
|
||||
fontSize = 16;
|
||||
fontColor = "44 172 181"; // default color (death msgs, scoring, inventory)
|
||||
fontColors[1] = "4 235 105"; // client join/drop, tournament mode
|
||||
fontColors[2] = "219 200 128"; // gameplay, admin/voting, pack/deployable
|
||||
fontColors[3] = "77 253 95"; // team chat, spam protection message, client tasks
|
||||
fontColors[4] = "40 231 240"; // global chat
|
||||
fontColors[5] = "200 200 50 200"; // used in single player game
|
||||
// WARNING! Colors 6-9 are reserved for name coloring
|
||||
autoSizeWidth = true;
|
||||
autoSizeHeight = true;
|
||||
};
|
||||
|
||||
new GuiControlProfile ("ChatHudScrollProfile")
|
||||
{
|
||||
opaque = false;
|
||||
border = false;
|
||||
borderColor = "0 255 0";
|
||||
bitmap = "common/ui/darkScroll";
|
||||
hasBitmapArray = true;
|
||||
};
|
||||
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// Common Hud profiles
|
||||
|
||||
new GuiControlProfile ("HudScrollProfile")
|
||||
{
|
||||
opaque = false;
|
||||
border = true;
|
||||
borderColor = "0 255 0";
|
||||
bitmap = "common/ui/darkScroll";
|
||||
hasBitmapArray = true;
|
||||
};
|
||||
|
||||
new GuiControlProfile ("HudTextProfile")
|
||||
{
|
||||
opaque = false;
|
||||
fillColor = "128 128 128";
|
||||
fontColor = "0 255 0";
|
||||
border = true;
|
||||
borderColor = "0 255 0";
|
||||
};
|
||||
|
||||
new GuiControlProfile ("ChatHudBorderProfile")
|
||||
{
|
||||
bitmap = "./chatHudBorderArray";
|
||||
hasBitmapArray = true;
|
||||
opaque = false;
|
||||
};
|
||||
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// Center and bottom print
|
||||
|
||||
new GuiControlProfile ("CenterPrintProfile")
|
||||
{
|
||||
opaque = false;
|
||||
fillColor = "128 128 128";
|
||||
fontColor = "0 255 0";
|
||||
border = true;
|
||||
borderColor = "0 255 0";
|
||||
};
|
||||
|
||||
new GuiControlProfile ("CenterPrintTextProfile")
|
||||
{
|
||||
opaque = false;
|
||||
fontType = "Arial";
|
||||
fontSize = 12;
|
||||
fontColor = "0 255 0";
|
||||
};
|
||||
|
||||
|
||||
BIN
Torque/SDK/example/starter.racing/client/ui/demoCheck.png
Normal file
|
After Width: | Height: | Size: 304 B |
BIN
Torque/SDK/example/starter.racing/client/ui/demoMenu.png
Normal file
|
After Width: | Height: | Size: 1.8 KiB |
BIN
Torque/SDK/example/starter.racing/client/ui/demoRadio.png
Normal file
|
After Width: | Height: | Size: 528 B |
BIN
Torque/SDK/example/starter.racing/client/ui/demoScroll.png
Normal file
|
After Width: | Height: | Size: 1.5 KiB |
BIN
Torque/SDK/example/starter.racing/client/ui/demoWindow.png
Normal file
|
After Width: | Height: | Size: 2.5 KiB |
@@ -0,0 +1,3 @@
|
||||
<lmargin%:6><rmargin%:94><font:Arial:16>Thank you for checking out the GarageGames Community Project - Realm Wars.
|
||||
|
||||
Realm Wars is a work in progress. If you are a game player looking for an epic multiplayer fantasy action game, stay tuned at <a:www.garagegames.com>GarageGames</a> for information about the progress of Realm Wars. If you are a game developer (or aspiring to be one) and want to contribute to the project, <a:www.garagegames.com/mg/projects/realmwars/>click here</a> to get involved.
|
||||
71
Torque/SDK/example/starter.racing/client/ui/endGameGui.gui
Normal file
@@ -0,0 +1,71 @@
|
||||
//--- OBJECT WRITE BEGIN ---
|
||||
new GuiChunkedBitmapCtrl(EndGameGui) {
|
||||
profile = "GuiContentProfile";
|
||||
horizSizing = "width";
|
||||
vertSizing = "height";
|
||||
position = "0 0";
|
||||
extent = "640 480";
|
||||
minExtent = "8 8";
|
||||
visible = "1";
|
||||
helpTag = "0";
|
||||
bitmap = "./background";
|
||||
useVariable = "0";
|
||||
tile = "0";
|
||||
|
||||
new GuiControl() {
|
||||
profile = "GuiWindowProfile";
|
||||
horizSizing = "center";
|
||||
vertSizing = "center";
|
||||
position = "92 86";
|
||||
extent = "455 308";
|
||||
minExtent = "8 8";
|
||||
visible = "1";
|
||||
helpTag = "0";
|
||||
|
||||
new GuiTextCtrl() {
|
||||
profile = "GuiMediumTextProfile";
|
||||
horizSizing = "right";
|
||||
vertSizing = "bottom";
|
||||
position = "101 15";
|
||||
extent = "251 28";
|
||||
minExtent = "8 8";
|
||||
visible = "1";
|
||||
helpTag = "0";
|
||||
text = "Game Over - Final Scores:";
|
||||
maxLength = "255";
|
||||
};
|
||||
new GuiScrollCtrl() {
|
||||
profile = "GuiScrollProfile";
|
||||
horizSizing = "width";
|
||||
vertSizing = "height";
|
||||
position = "5 51";
|
||||
extent = "444 251";
|
||||
minExtent = "8 8";
|
||||
visible = "1";
|
||||
helpTag = "0";
|
||||
willFirstRespond = "1";
|
||||
hScrollBar = "alwaysOff";
|
||||
vScrollBar = "dynamic";
|
||||
constantThumbHeight = "0";
|
||||
childMargin = "0 0";
|
||||
defaultLineHeight = "15";
|
||||
|
||||
new GuiTextListCtrl(EndGameGuiList) {
|
||||
profile = "GuiTextProfile";
|
||||
horizSizing = "width";
|
||||
vertSizing = "height";
|
||||
position = "2 2";
|
||||
extent = "440 16";
|
||||
minExtent = "8 8";
|
||||
visible = "1";
|
||||
helpTag = "0";
|
||||
enumerate = "0";
|
||||
resizeCell = "1";
|
||||
columns = "0 256";
|
||||
fitParentWidth = "1";
|
||||
clipColumnText = "0";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
//--- OBJECT WRITE END ---
|
||||
BIN
Torque/SDK/example/starter.racing/client/ui/gglogo150.png
Normal file
|
After Width: | Height: | Size: 12 KiB |
BIN
Torque/SDK/example/starter.racing/client/ui/go.png
Normal file
|
After Width: | Height: | Size: 74 KiB |
BIN
Torque/SDK/example/starter.racing/client/ui/hudfill.png
Normal file
|
After Width: | Height: | Size: 510 B |
439
Torque/SDK/example/starter.racing/client/ui/joinServerGui.gui
Normal file
@@ -0,0 +1,439 @@
|
||||
//--- OBJECT WRITE BEGIN ---
|
||||
new GuiChunkedBitmapCtrl(JoinServerGui) {
|
||||
profile = "GuiContentProfile";
|
||||
horizSizing = "width";
|
||||
vertSizing = "height";
|
||||
position = "0 0";
|
||||
extent = "640 480";
|
||||
minExtent = "8 8";
|
||||
visible = "1";
|
||||
bitmap = "./background.jpg";
|
||||
useVariable = "0";
|
||||
tile = "0";
|
||||
helpTag = "0";
|
||||
|
||||
new GuiControl() {
|
||||
profile = "GuiWindowProfile";
|
||||
horizSizing = "center";
|
||||
vertSizing = "center";
|
||||
position = "60 80";
|
||||
extent = "520 320";
|
||||
minExtent = "8 8";
|
||||
visible = "1";
|
||||
helpTag = "0";
|
||||
|
||||
new GuiTextCtrl() {
|
||||
profile = "GuiTextProfile";
|
||||
horizSizing = "right";
|
||||
vertSizing = "bottom";
|
||||
position = "14 59";
|
||||
extent = "24 18";
|
||||
minExtent = "8 8";
|
||||
visible = "1";
|
||||
text = "Server Name";
|
||||
maxLength = "255";
|
||||
helpTag = "0";
|
||||
};
|
||||
new GuiButtonCtrl(JS_queryMaster) {
|
||||
profile = "GuiButtonProfile";
|
||||
horizSizing = "right";
|
||||
vertSizing = "top";
|
||||
position = "216 289";
|
||||
extent = "90 23";
|
||||
minExtent = "8 8";
|
||||
visible = "1";
|
||||
command = "Canvas.getContent().query();";
|
||||
text = "Query Master";
|
||||
groupNum = "-1";
|
||||
buttonType = "PushButton";
|
||||
helpTag = "0";
|
||||
};
|
||||
new GuiButtonCtrl(JS_queryLan) {
|
||||
profile = "GuiButtonProfile";
|
||||
horizSizing = "right";
|
||||
vertSizing = "top";
|
||||
position = "114 289";
|
||||
extent = "90 23";
|
||||
minExtent = "8 8";
|
||||
visible = "1";
|
||||
command = "Canvas.getContent().queryLan();";
|
||||
text = "Query LAN";
|
||||
groupNum = "-1";
|
||||
buttonType = "PushButton";
|
||||
helpTag = "0";
|
||||
};
|
||||
new GuiButtonCtrl(JS_refreshServer) {
|
||||
profile = "GuiButtonProfile";
|
||||
horizSizing = "right";
|
||||
vertSizing = "top";
|
||||
position = "318 289";
|
||||
extent = "90 23";
|
||||
minExtent = "8 8";
|
||||
visible = "1";
|
||||
command = "Canvas.getContent().refresh();";
|
||||
text = "Refresh Server";
|
||||
groupNum = "-1";
|
||||
buttonType = "PushButton";
|
||||
helpTag = "0";
|
||||
};
|
||||
new GuiButtonCtrl(JS_joinServer) {
|
||||
profile = "GuiButtonProfile";
|
||||
horizSizing = "right";
|
||||
vertSizing = "top";
|
||||
position = "420 289";
|
||||
extent = "90 23";
|
||||
minExtent = "8 8";
|
||||
visible = "1";
|
||||
command = "Canvas.getContent().join();";
|
||||
text = "Join Server!";
|
||||
groupNum = "-1";
|
||||
buttonType = "PushButton";
|
||||
active = "0";
|
||||
helpTag = "0";
|
||||
};
|
||||
new GuiScrollCtrl() {
|
||||
profile = "GuiScrollProfile";
|
||||
horizSizing = "right";
|
||||
vertSizing = "bottom";
|
||||
position = "10 92";
|
||||
extent = "500 186";
|
||||
minExtent = "8 8";
|
||||
visible = "1";
|
||||
willFirstRespond = "1";
|
||||
hScrollBar = "dynamic";
|
||||
vScrollBar = "alwaysOn";
|
||||
constantThumbHeight = "0";
|
||||
childMargin = "0 0";
|
||||
defaultLineHeight = "15";
|
||||
helpTag = "0";
|
||||
|
||||
new GuiTextListCtrl(JS_serverList) {
|
||||
profile = "GuiTextArrayProfile";
|
||||
horizSizing = "right";
|
||||
vertSizing = "bottom";
|
||||
position = "2 2";
|
||||
extent = "478 8";
|
||||
minExtent = "8 8";
|
||||
visible = "1";
|
||||
enumerate = "0";
|
||||
resizeCell = "1";
|
||||
columns = "0 305 370 500";
|
||||
fitParentWidth = "1";
|
||||
clipColumnText = "0";
|
||||
noDuplicates = "false";
|
||||
helpTag = "0";
|
||||
};
|
||||
};
|
||||
new GuiTextEditCtrl() {
|
||||
profile = "GuiTextEditProfile";
|
||||
horizSizing = "right";
|
||||
vertSizing = "bottom";
|
||||
position = "98 34";
|
||||
extent = "134 18";
|
||||
minExtent = "8 8";
|
||||
visible = "1";
|
||||
variable = "pref::Player::Name";
|
||||
maxLength = "255";
|
||||
historySize = "0";
|
||||
password = "0";
|
||||
tabComplete = "0";
|
||||
sinkAllKeyEvents = "0";
|
||||
helpTag = "0";
|
||||
};
|
||||
new GuiTextCtrl() {
|
||||
profile = "GuiTextProfile";
|
||||
horizSizing = "right";
|
||||
vertSizing = "bottom";
|
||||
position = "12 30";
|
||||
extent = "63 18";
|
||||
minExtent = "8 8";
|
||||
visible = "1";
|
||||
text = "Player Name:";
|
||||
maxLength = "255";
|
||||
helpTag = "0";
|
||||
};
|
||||
new GuiTextCtrl() {
|
||||
profile = "GuiTextProfile";
|
||||
horizSizing = "right";
|
||||
vertSizing = "bottom";
|
||||
position = "269 59";
|
||||
extent = "36 18";
|
||||
minExtent = "8 8";
|
||||
visible = "1";
|
||||
text = "Players";
|
||||
maxLength = "255";
|
||||
helpTag = "0";
|
||||
};
|
||||
new GuiTextCtrl() {
|
||||
profile = "GuiTextProfile";
|
||||
horizSizing = "right";
|
||||
vertSizing = "bottom";
|
||||
position = "335 59";
|
||||
extent = "38 18";
|
||||
minExtent = "8 8";
|
||||
visible = "1";
|
||||
text = "Version";
|
||||
maxLength = "255";
|
||||
helpTag = "0";
|
||||
};
|
||||
new GuiTextCtrl() {
|
||||
profile = "GuiTextProfile";
|
||||
horizSizing = "right";
|
||||
vertSizing = "bottom";
|
||||
position = "412 59";
|
||||
extent = "28 18";
|
||||
minExtent = "8 8";
|
||||
visible = "1";
|
||||
text = "Game";
|
||||
maxLength = "255";
|
||||
helpTag = "0";
|
||||
};
|
||||
new GuiTextCtrl() {
|
||||
profile = "GuiTextProfile";
|
||||
horizSizing = "right";
|
||||
vertSizing = "bottom";
|
||||
position = "212 59";
|
||||
extent = "20 18";
|
||||
minExtent = "8 8";
|
||||
visible = "1";
|
||||
text = "Ping";
|
||||
maxLength = "255";
|
||||
helpTag = "0";
|
||||
};
|
||||
new GuiTextCtrl() {
|
||||
profile = "GuiTextProfile";
|
||||
horizSizing = "right";
|
||||
vertSizing = "bottom";
|
||||
position = "72 59";
|
||||
extent = "63 18";
|
||||
minExtent = "8 8";
|
||||
visible = "1";
|
||||
text = "Server Name";
|
||||
maxLength = "255";
|
||||
helpTag = "0";
|
||||
};
|
||||
new GuiButtonCtrl() {
|
||||
profile = "GuiButtonProfile";
|
||||
horizSizing = "right";
|
||||
vertSizing = "top";
|
||||
position = "12 289";
|
||||
extent = "90 23";
|
||||
minExtent = "8 8";
|
||||
visible = "1";
|
||||
command = "Canvas.getContent().exit();";
|
||||
text = "<< Back";
|
||||
groupNum = "-1";
|
||||
buttonType = "PushButton";
|
||||
helpTag = "0";
|
||||
};
|
||||
new GuiControl(JS_queryStatus) {
|
||||
profile = "GuiWindowProfile";
|
||||
horizSizing = "center";
|
||||
vertSizing = "center";
|
||||
position = "105 135";
|
||||
extent = "310 50";
|
||||
minExtent = "8 8";
|
||||
visible = "0";
|
||||
helpTag = "0";
|
||||
|
||||
new GuiButtonCtrl(JS_cancelQuery) {
|
||||
profile = "GuiButtonProfile";
|
||||
horizSizing = "right";
|
||||
vertSizing = "bottom";
|
||||
position = "9 15";
|
||||
extent = "64 20";
|
||||
minExtent = "8 8";
|
||||
visible = "1";
|
||||
command = "Canvas.getContent().cancel();";
|
||||
text = "Cancel!";
|
||||
groupNum = "-1";
|
||||
buttonType = "PushButton";
|
||||
helpTag = "0";
|
||||
};
|
||||
new GuiProgressCtrl(JS_statusBar) {
|
||||
profile = "GuiProgressProfile";
|
||||
horizSizing = "right";
|
||||
vertSizing = "bottom";
|
||||
position = "84 15";
|
||||
extent = "207 20";
|
||||
minExtent = "8 8";
|
||||
visible = "1";
|
||||
helpTag = "0";
|
||||
};
|
||||
new GuiTextCtrl(JS_statusText) {
|
||||
profile = "GuiProgressTextProfile";
|
||||
horizSizing = "right";
|
||||
vertSizing = "bottom";
|
||||
position = "85 14";
|
||||
extent = "205 20";
|
||||
minExtent = "8 8";
|
||||
visible = "1";
|
||||
maxLength = "255";
|
||||
helpTag = "0";
|
||||
};
|
||||
};
|
||||
new GuiTextCtrl(JS_status) {
|
||||
profile = "GuiBigTextProfile";
|
||||
horizSizing = "right";
|
||||
vertSizing = "bottom";
|
||||
position = "243 14";
|
||||
extent = "266 40";
|
||||
minExtent = "266 40";
|
||||
visible = "1";
|
||||
maxLength = "255";
|
||||
};
|
||||
};
|
||||
};
|
||||
//--- OBJECT WRITE END ---
|
||||
|
||||
//----------------------------------------
|
||||
function JoinServerGui::onWake()
|
||||
{
|
||||
// Double check the status. Tried setting this the control
|
||||
// inactive to start with, but that didn't seem to work.
|
||||
JS_joinServer.setActive(JS_serverList.rowCount() > 0);
|
||||
}
|
||||
|
||||
//----------------------------------------
|
||||
function JoinServerGui::query(%this)
|
||||
{
|
||||
queryMasterServer(
|
||||
0, // Query flags
|
||||
$Client::GameTypeQuery, // gameTypes
|
||||
$Client::MissionTypeQuery, // missionType
|
||||
0, // minPlayers
|
||||
100, // maxPlayers
|
||||
0, // maxBots
|
||||
2, // regionMask
|
||||
0, // maxPing
|
||||
100, // minCPU
|
||||
0 // filterFlags
|
||||
);
|
||||
}
|
||||
|
||||
//----------------------------------------
|
||||
function JoinServerGui::queryLan(%this)
|
||||
{
|
||||
queryLANServers(
|
||||
28000, // lanPort for local queries
|
||||
0, // Query flags
|
||||
$Client::GameTypeQuery, // gameTypes
|
||||
$Client::MissionTypeQuery, // missionType
|
||||
0, // minPlayers
|
||||
100, // maxPlayers
|
||||
0, // maxBots
|
||||
2, // regionMask
|
||||
0, // maxPing
|
||||
100, // minCPU
|
||||
0 // filterFlags
|
||||
);
|
||||
}
|
||||
|
||||
//----------------------------------------
|
||||
function JoinServerGui::cancel(%this)
|
||||
{
|
||||
cancelServerQuery();
|
||||
JS_queryStatus.setVisible(false);
|
||||
}
|
||||
|
||||
|
||||
//----------------------------------------
|
||||
function JoinServerGui::join(%this)
|
||||
{
|
||||
cancelServerQuery();
|
||||
%id = JS_serverList.getSelectedId();
|
||||
|
||||
// The server info index is stored in the row along with the
|
||||
// rest of displayed info.
|
||||
%index = getField(JS_serverList.getRowTextById(%id),6);
|
||||
if (setServerInfo(%index)) {
|
||||
%conn = new GameConnection(ServerConnection);
|
||||
%conn.setConnectArgs($pref::Player::Name);
|
||||
%conn.setJoinPassword($Client::Password);
|
||||
%conn.connect($ServerInfo::Address);
|
||||
}
|
||||
}
|
||||
|
||||
//----------------------------------------
|
||||
function JoinServerGui::refresh(%this)
|
||||
{
|
||||
cancelServerQuery();
|
||||
%id = JS_serverList.getSelectedId();
|
||||
|
||||
// The server info index is stored in the row along with the
|
||||
// rest of displayed info.
|
||||
%index = getField(JS_serverList.getRowTextById(%id),6);
|
||||
if (setServerInfo(%index)) {
|
||||
querySingleServer( $ServerInfo::Address, 0 );
|
||||
}
|
||||
}
|
||||
|
||||
//----------------------------------------
|
||||
function JoinServerGui::refreshSelectedServer( %this )
|
||||
{
|
||||
querySingleServer( $JoinGameAddress, 0 );
|
||||
}
|
||||
|
||||
//----------------------------------------
|
||||
function JoinServerGui::exit(%this)
|
||||
{
|
||||
cancelServerQuery();
|
||||
Canvas.setContent(mainMenuGui);
|
||||
}
|
||||
|
||||
//----------------------------------------
|
||||
function JoinServerGui::update(%this)
|
||||
{
|
||||
// Copy the servers into the server list.
|
||||
JS_queryStatus.setVisible(false);
|
||||
JS_serverList.clear();
|
||||
%sc = getServerCount();
|
||||
for (%i = 0; %i < %sc; %i++) {
|
||||
setServerInfo(%i);
|
||||
JS_serverList.addRow(%i,
|
||||
$ServerInfo::Name TAB
|
||||
$ServerInfo::Ping TAB
|
||||
$ServerInfo::PlayerCount @ "/" @ $ServerInfo::MaxPlayers TAB
|
||||
%i); // ServerInfo index stored also
|
||||
}
|
||||
JS_serverList.sort(0);
|
||||
JS_serverList.setSelectedRow(0);
|
||||
JS_serverList.scrollVisible(0);
|
||||
|
||||
JS_joinServer.setActive(JS_serverList.rowCount() > 0);
|
||||
}
|
||||
|
||||
//----------------------------------------
|
||||
function onServerQueryStatus(%status, %msg, %value)
|
||||
{
|
||||
echo("ServerQuery: " SPC %status SPC %msg SPC %value);
|
||||
// Update query status
|
||||
// States: start, update, ping, query, done
|
||||
// value = % (0-1) done for ping and query states
|
||||
if (!JS_queryStatus.isVisible())
|
||||
JS_queryStatus.setVisible(true);
|
||||
|
||||
switch$ (%status) {
|
||||
case "start":
|
||||
JS_joinServer.setActive(false);
|
||||
JS_queryMaster.setActive(false);
|
||||
JS_statusText.setText(%msg);
|
||||
JS_statusBar.setValue(0);
|
||||
JS_serverList.clear();
|
||||
|
||||
case "ping":
|
||||
JS_statusText.setText("Ping Servers");
|
||||
JS_statusBar.setValue(%value);
|
||||
|
||||
case "query":
|
||||
JS_statusText.setText("Query Servers");
|
||||
JS_statusBar.setValue(%value);
|
||||
|
||||
case "done":
|
||||
JS_queryMaster.setActive(true);
|
||||
JS_queryStatus.setVisible(false);
|
||||
JS_status.setText(%msg);
|
||||
JoinServerGui.update();
|
||||
}
|
||||
}
|
||||
|
||||
BIN
Torque/SDK/example/starter.racing/client/ui/lagIcon.png
Normal file
|
After Width: | Height: | Size: 2.9 KiB |
99
Torque/SDK/example/starter.racing/client/ui/loadingGui.gui
Normal file
@@ -0,0 +1,99 @@
|
||||
new GuiControlProfile ("LoadingGuiContentProfile")
|
||||
{
|
||||
opaque = true;
|
||||
fillColor = "200 200 200";
|
||||
border = true;
|
||||
borderColor = "0 0 0";
|
||||
};
|
||||
|
||||
//--- OBJECT WRITE BEGIN ---
|
||||
new GuiChunkedBitmapCtrl(LoadingGui) {
|
||||
profile = "GuiContentProfile";
|
||||
horizSizing = "width";
|
||||
vertSizing = "height";
|
||||
position = "0 0";
|
||||
extent = "640 480";
|
||||
minExtent = "8 8";
|
||||
visible = "1";
|
||||
bitmap = "./background";
|
||||
useVariable = "0";
|
||||
tile = "0";
|
||||
helpTag = "0";
|
||||
qLineCount = "0";
|
||||
|
||||
new GuiControl() {
|
||||
profile = "GuiWindowProfile";
|
||||
horizSizing = "center";
|
||||
vertSizing = "center";
|
||||
position = "92 86";
|
||||
extent = "455 308";
|
||||
minExtent = "8 8";
|
||||
visible = "1";
|
||||
helpTag = "0";
|
||||
|
||||
new GuiTextCtrl(LOAD_MapName) {
|
||||
profile = "GuiMediumTextProfile";
|
||||
horizSizing = "right";
|
||||
vertSizing = "bottom";
|
||||
position = "7 6";
|
||||
extent = "8 28";
|
||||
minExtent = "8 8";
|
||||
visible = "1";
|
||||
text = "Map Name";
|
||||
maxLength = "255";
|
||||
helpTag = "0";
|
||||
};
|
||||
new GuiMLTextCtrl(LOAD_MapDescription) {
|
||||
profile = "GuiMLTextProfile";
|
||||
horizSizing = "right";
|
||||
vertSizing = "bottom";
|
||||
position = "7 62";
|
||||
extent = "440 14";
|
||||
minExtent = "8 8";
|
||||
visible = "1";
|
||||
lineSpacing = "2";
|
||||
allowColorChars = "0";
|
||||
maxChars = "-1";
|
||||
helpTag = "0";
|
||||
};
|
||||
new GuiProgressCtrl(LoadingProgress) {
|
||||
profile = "GuiProgressProfile";
|
||||
horizSizing = "right";
|
||||
vertSizing = "top";
|
||||
position = "128 262";
|
||||
extent = "262 25";
|
||||
minExtent = "8 8";
|
||||
visible = "1";
|
||||
helpTag = "0";
|
||||
|
||||
new GuiTextCtrl(LoadingProgressTxt) {
|
||||
profile = "GuiProgressTextProfile";
|
||||
horizSizing = "right";
|
||||
vertSizing = "bottom";
|
||||
position = "-4 3";
|
||||
extent = "262 20";
|
||||
minExtent = "8 8";
|
||||
visible = "1";
|
||||
text = "LOADING MISSION";
|
||||
maxLength = "255";
|
||||
helpTag = "0";
|
||||
};
|
||||
};
|
||||
new GuiButtonCtrl() {
|
||||
profile = "GuiButtonProfile";
|
||||
horizSizing = "right";
|
||||
vertSizing = "top";
|
||||
position = "58 262";
|
||||
extent = "65 25";
|
||||
minExtent = "20 20";
|
||||
visible = "1";
|
||||
command = "disconnect();";
|
||||
accelerator = "escape";
|
||||
text = "Cancel!";
|
||||
groupNum = "-1";
|
||||
buttonType = "PushButton";
|
||||
helpTag = "0";
|
||||
};
|
||||
};
|
||||
};
|
||||
//--- OBJECT WRITE END ---
|
||||
89
Torque/SDK/example/starter.racing/client/ui/mainMenuGui.gui
Normal file
@@ -0,0 +1,89 @@
|
||||
//--- OBJECT WRITE BEGIN ---
|
||||
new GuiChunkedBitmapCtrl(MainMenuGui) {
|
||||
profile = "GuiContentProfile";
|
||||
horizSizing = "width";
|
||||
vertSizing = "height";
|
||||
position = "0 0";
|
||||
extent = "640 480";
|
||||
minExtent = "8 8";
|
||||
visible = "1";
|
||||
bitmap = "./background";
|
||||
useVariable = "0";
|
||||
tile = "0";
|
||||
helpTag = "0";
|
||||
|
||||
new GuiButtonCtrl() {
|
||||
profile = "GuiButtonProfile";
|
||||
horizSizing = "right";
|
||||
vertSizing = "top";
|
||||
position = "36 413";
|
||||
extent = "110 20";
|
||||
minExtent = "8 8";
|
||||
visible = "1";
|
||||
command = "quit();";
|
||||
text = "Quit!";
|
||||
groupNum = "-1";
|
||||
buttonType = "PushButton";
|
||||
helpTag = "0";
|
||||
};
|
||||
new GuiButtonCtrl() {
|
||||
profile = "GuiButtonProfile";
|
||||
horizSizing = "right";
|
||||
vertSizing = "top";
|
||||
position = "36 237";
|
||||
extent = "110 20";
|
||||
minExtent = "8 8";
|
||||
visible = "1";
|
||||
command = "Canvas.setContent(startMissionGui);";
|
||||
text = "Start Mission...";
|
||||
groupNum = "-1";
|
||||
buttonType = "PushButton";
|
||||
helpTag = "0";
|
||||
};
|
||||
new GuiButtonCtrl() {
|
||||
profile = "GuiButtonProfile";
|
||||
horizSizing = "right";
|
||||
vertSizing = "top";
|
||||
position = "36 264";
|
||||
extent = "110 20";
|
||||
minExtent = "8 8";
|
||||
visible = "1";
|
||||
command = "Canvas.setContent(JoinServerGui);";
|
||||
text = "Join Server...";
|
||||
groupNum = "-1";
|
||||
buttonType = "PushButton";
|
||||
helpTag = "0";
|
||||
};
|
||||
new GuiButtonCtrl() {
|
||||
profile = "GuiButtonProfile";
|
||||
horizSizing = "right";
|
||||
vertSizing = "top";
|
||||
position = "36 291";
|
||||
extent = "110 20";
|
||||
minExtent = "8 8";
|
||||
visible = "1";
|
||||
command = "Canvas.pushDialog(optionsDlg);";
|
||||
text = "Options...";
|
||||
groupNum = "-1";
|
||||
buttonType = "PushButton";
|
||||
helpTag = "0";
|
||||
};
|
||||
new GuiButtonCtrl() {
|
||||
profile = "GuiButtonProfile";
|
||||
horizSizing = "right";
|
||||
vertSizing = "top";
|
||||
position = "36 318";
|
||||
extent = "110 20";
|
||||
minExtent = "8 8";
|
||||
visible = "1";
|
||||
command = "getHelp(\"0. About\");";
|
||||
text = "About...";
|
||||
groupNum = "-1";
|
||||
buttonType = "PushButton";
|
||||
helpTag = "0";
|
||||
};
|
||||
};
|
||||
//--- OBJECT WRITE END ---
|
||||
|
||||
|
||||
|
||||
433
Torque/SDK/example/starter.racing/client/ui/optionsDlg.gui
Normal file
@@ -0,0 +1,433 @@
|
||||
//--- OBJECT WRITE BEGIN ---
|
||||
new GuiControl(optionsDlg) {
|
||||
profile = "GuiDefaultProfile";
|
||||
horizSizing = "right";
|
||||
vertSizing = "bottom";
|
||||
position = "0 0";
|
||||
extent = "640 480";
|
||||
minExtent = "8 8";
|
||||
visible = "1";
|
||||
helpTag = "0";
|
||||
|
||||
new GuiWindowCtrl() {
|
||||
profile = "GuiWindowProfile";
|
||||
horizSizing = "center";
|
||||
vertSizing = "center";
|
||||
position = "131 88";
|
||||
extent = "377 303";
|
||||
minExtent = "8 8";
|
||||
visible = "1";
|
||||
helpTag = "0";
|
||||
text = "Options";
|
||||
maxLength = "255";
|
||||
resizeWidth = "0";
|
||||
resizeHeight = "0";
|
||||
canMove = "1";
|
||||
canClose = "1";
|
||||
canMinimize = "0";
|
||||
canMaximize = "0";
|
||||
minSize = "50 50";
|
||||
closeCommand = "Canvas.popDialog(optionsDlg);";
|
||||
|
||||
new GuiButtonCtrl() {
|
||||
profile = "GuiButtonProfile";
|
||||
horizSizing = "right";
|
||||
vertSizing = "bottom";
|
||||
position = "305 270";
|
||||
extent = "60 23";
|
||||
minExtent = "8 8";
|
||||
visible = "1";
|
||||
command = "Canvas.popDialog(optionsDlg);";
|
||||
helpTag = "0";
|
||||
text = "OK";
|
||||
groupNum = "-1";
|
||||
buttonType = "PushButton";
|
||||
};
|
||||
new GuiButtonCtrl(OptGraphicsButton) {
|
||||
profile = "GuiButtonProfile";
|
||||
horizSizing = "right";
|
||||
vertSizing = "bottom";
|
||||
position = "9 28";
|
||||
extent = "117 23";
|
||||
minExtent = "8 8";
|
||||
visible = "1";
|
||||
command = "optionsDlg.setPane(Graphics);";
|
||||
helpTag = "0";
|
||||
text = "Graphics";
|
||||
groupNum = "-1";
|
||||
buttonType = "RadioButton";
|
||||
};
|
||||
new GuiButtonCtrl() {
|
||||
profile = "GuiButtonProfile";
|
||||
horizSizing = "right";
|
||||
vertSizing = "bottom";
|
||||
position = "129 28";
|
||||
extent = "117 23";
|
||||
minExtent = "8 8";
|
||||
visible = "1";
|
||||
command = "optionsDlg.setPane(Audio);";
|
||||
helpTag = "0";
|
||||
text = "Audio";
|
||||
groupNum = "-1";
|
||||
buttonType = "RadioButton";
|
||||
};
|
||||
new GuiControl(OptControlsPane) {
|
||||
profile = "GuiWindowProfile";
|
||||
horizSizing = "right";
|
||||
vertSizing = "bottom";
|
||||
position = "9 55";
|
||||
extent = "357 208";
|
||||
minExtent = "8 8";
|
||||
visible = "0";
|
||||
helpTag = "0";
|
||||
|
||||
new GuiScrollCtrl() {
|
||||
profile = "GuiScrollProfile";
|
||||
horizSizing = "right";
|
||||
vertSizing = "bottom";
|
||||
position = "0 26";
|
||||
extent = "357 182";
|
||||
minExtent = "8 8";
|
||||
visible = "1";
|
||||
helpTag = "0";
|
||||
willFirstRespond = "1";
|
||||
hScrollBar = "alwaysOff";
|
||||
vScrollBar = "alwaysOn";
|
||||
constantThumbHeight = "0";
|
||||
childMargin = "0 0";
|
||||
defaultLineHeight = "15";
|
||||
|
||||
new GuiTextListCtrl(OptRemapList) {
|
||||
profile = "GuiTextListProfile";
|
||||
horizSizing = "right";
|
||||
vertSizing = "bottom";
|
||||
position = "2 2";
|
||||
extent = "337 8";
|
||||
minExtent = "8 8";
|
||||
visible = "1";
|
||||
altCommand = "OptRemapList.doRemap();";
|
||||
helpTag = "0";
|
||||
enumerate = "0";
|
||||
resizeCell = "1";
|
||||
columns = "0 160";
|
||||
fitParentWidth = "1";
|
||||
clipColumnText = "0";
|
||||
};
|
||||
};
|
||||
new GuiTextCtrl() {
|
||||
profile = "GuiTextProfile";
|
||||
horizSizing = "right";
|
||||
vertSizing = "bottom";
|
||||
position = "5 2";
|
||||
extent = "64 18";
|
||||
minExtent = "8 8";
|
||||
visible = "1";
|
||||
helpTag = "0";
|
||||
text = "Control Name";
|
||||
maxLength = "255";
|
||||
};
|
||||
new GuiTextCtrl() {
|
||||
profile = "GuiTextProfile";
|
||||
horizSizing = "right";
|
||||
vertSizing = "bottom";
|
||||
position = "166 2";
|
||||
extent = "72 18";
|
||||
minExtent = "8 8";
|
||||
visible = "1";
|
||||
helpTag = "0";
|
||||
text = "Control Binding";
|
||||
maxLength = "255";
|
||||
};
|
||||
};
|
||||
new GuiButtonCtrl() {
|
||||
profile = "GuiButtonProfile";
|
||||
horizSizing = "right";
|
||||
vertSizing = "bottom";
|
||||
position = "249 28";
|
||||
extent = "117 23";
|
||||
minExtent = "8 8";
|
||||
visible = "1";
|
||||
command = "optionsDlg.setPane(Controls);";
|
||||
helpTag = "0";
|
||||
text = "Controls";
|
||||
groupNum = "-1";
|
||||
buttonType = "RadioButton";
|
||||
};
|
||||
new GuiControl(OptAudioPane) {
|
||||
profile = "GuiWindowProfile";
|
||||
horizSizing = "right";
|
||||
vertSizing = "bottom";
|
||||
position = "9 55";
|
||||
extent = "357 208";
|
||||
minExtent = "8 8";
|
||||
visible = "0";
|
||||
helpTag = "0";
|
||||
|
||||
new GuiSliderCtrl(OptAudioVolumeSim) {
|
||||
profile = "GuiSliderProfile";
|
||||
horizSizing = "right";
|
||||
vertSizing = "bottom";
|
||||
position = "107 172";
|
||||
extent = "240 34";
|
||||
minExtent = "8 8";
|
||||
visible = "1";
|
||||
variable = "value";
|
||||
altCommand = "OptAudioUpdateChannelVolume($SimAudioType, OptAudioVolumeSim.value);";
|
||||
helpTag = "0";
|
||||
range = "0.000000 1.000000";
|
||||
ticks = "8";
|
||||
value = "0.8";
|
||||
};
|
||||
new GuiTextCtrl() {
|
||||
profile = "GuiTextProfile";
|
||||
horizSizing = "right";
|
||||
vertSizing = "bottom";
|
||||
position = "11 94";
|
||||
extent = "72 18";
|
||||
minExtent = "8 8";
|
||||
visible = "1";
|
||||
helpTag = "0";
|
||||
text = "Master Volume";
|
||||
maxLength = "255";
|
||||
};
|
||||
new GuiTextCtrl() {
|
||||
profile = "GuiTextProfile";
|
||||
horizSizing = "right";
|
||||
vertSizing = "bottom";
|
||||
position = "22 132";
|
||||
extent = "62 18";
|
||||
minExtent = "8 8";
|
||||
visible = "1";
|
||||
helpTag = "0";
|
||||
text = "Shell Volume";
|
||||
maxLength = "255";
|
||||
};
|
||||
new GuiTextCtrl() {
|
||||
profile = "GuiTextProfile";
|
||||
horizSizing = "right";
|
||||
vertSizing = "bottom";
|
||||
position = "28 169";
|
||||
extent = "56 18";
|
||||
minExtent = "8 8";
|
||||
visible = "1";
|
||||
helpTag = "0";
|
||||
text = "Sim Volume";
|
||||
maxLength = "255";
|
||||
};
|
||||
new GuiSliderCtrl(OptAudioVolumeMaster) {
|
||||
profile = "GuiSliderProfile";
|
||||
horizSizing = "right";
|
||||
vertSizing = "bottom";
|
||||
position = "106 98";
|
||||
extent = "240 34";
|
||||
minExtent = "8 8";
|
||||
visible = "1";
|
||||
variable = "value";
|
||||
altCommand = "OptAudioUpdateMasterVolume(OptAudioVolumeMaster.value);";
|
||||
helpTag = "0";
|
||||
range = "0.000000 1.000000";
|
||||
ticks = "8";
|
||||
value = "0.852174";
|
||||
};
|
||||
new GuiSliderCtrl(OptAudioVolumeShell) {
|
||||
profile = "GuiSliderProfile";
|
||||
horizSizing = "right";
|
||||
vertSizing = "bottom";
|
||||
position = "106 135";
|
||||
extent = "240 34";
|
||||
minExtent = "8 8";
|
||||
visible = "1";
|
||||
variable = "value";
|
||||
altCommand = "OptAudioUpdateChannelVolume($GuiAudioType, OptAudioVolumeShell.value);";
|
||||
helpTag = "0";
|
||||
range = "0.000000 1.000000";
|
||||
ticks = "8";
|
||||
value = "0.8";
|
||||
};
|
||||
new GuiMLTextCtrl(OptAudioInfo) {
|
||||
profile = "GuiMLTextProfile";
|
||||
horizSizing = "right";
|
||||
vertSizing = "bottom";
|
||||
position = "149 10";
|
||||
extent = "190 14";
|
||||
minExtent = "8 8";
|
||||
visible = "1";
|
||||
helpTag = "0";
|
||||
lineSpacing = "2";
|
||||
allowColorChars = "0";
|
||||
maxChars = "-1";
|
||||
};
|
||||
new GuiPopUpMenuCtrl(OptAudioDriverList) {
|
||||
profile = "GuiPopUpMenuProfile";
|
||||
horizSizing = "right";
|
||||
vertSizing = "bottom";
|
||||
position = "10 32";
|
||||
extent = "120 20";
|
||||
minExtent = "8 8";
|
||||
visible = "1";
|
||||
helpTag = "0";
|
||||
maxLength = "255";
|
||||
maxPopupHeight = "200";
|
||||
};
|
||||
new GuiTextCtrl() {
|
||||
profile = "GuiTextProfile";
|
||||
horizSizing = "right";
|
||||
vertSizing = "bottom";
|
||||
position = "11 9";
|
||||
extent = "63 18";
|
||||
minExtent = "8 8";
|
||||
visible = "1";
|
||||
helpTag = "0";
|
||||
text = "Audio Driver:";
|
||||
maxLength = "255";
|
||||
};
|
||||
};
|
||||
new GuiControl(OptGraphicsPane) {
|
||||
profile = "GuiWindowProfile";
|
||||
horizSizing = "right";
|
||||
vertSizing = "bottom";
|
||||
position = "9 55";
|
||||
extent = "357 208";
|
||||
minExtent = "8 8";
|
||||
visible = "1";
|
||||
helpTag = "0";
|
||||
|
||||
new GuiTextCtrl() {
|
||||
profile = "GuiTextProfile";
|
||||
horizSizing = "right";
|
||||
vertSizing = "bottom";
|
||||
position = "21 10";
|
||||
extent = "70 18";
|
||||
minExtent = "8 8";
|
||||
visible = "1";
|
||||
helpTag = "0";
|
||||
text = "Display Driver:";
|
||||
maxLength = "255";
|
||||
};
|
||||
new GuiTextCtrl() {
|
||||
profile = "GuiTextProfile";
|
||||
horizSizing = "right";
|
||||
vertSizing = "bottom";
|
||||
position = "21 34";
|
||||
extent = "53 18";
|
||||
minExtent = "8 8";
|
||||
visible = "1";
|
||||
helpTag = "0";
|
||||
text = "Resolution:";
|
||||
maxLength = "255";
|
||||
};
|
||||
new GuiCheckBoxCtrl(OptGraphicsFullscreenToggle) {
|
||||
profile = "GuiCheckBoxProfile";
|
||||
horizSizing = "right";
|
||||
vertSizing = "bottom";
|
||||
position = "21 120";
|
||||
extent = "137 25";
|
||||
minExtent = "8 8";
|
||||
visible = "1";
|
||||
variable = "$pref::Video::fullScreen";
|
||||
helpTag = "0";
|
||||
text = "Fullscreen Video";
|
||||
groupNum = "-1";
|
||||
buttonType = "ToggleButton";
|
||||
maxLength = "255";
|
||||
};
|
||||
new GuiButtonCtrl() {
|
||||
profile = "GuiButtonProfile";
|
||||
horizSizing = "right";
|
||||
vertSizing = "bottom";
|
||||
position = "149 171";
|
||||
extent = "78 23";
|
||||
minExtent = "8 8";
|
||||
visible = "1";
|
||||
command = "optionsDlg.applyGraphics();";
|
||||
helpTag = "0";
|
||||
text = "Apply";
|
||||
groupNum = "-1";
|
||||
buttonType = "PushButton";
|
||||
};
|
||||
new GuiPopUpMenuCtrl(OptGraphicsDriverMenu) {
|
||||
profile = "GuiPopUpMenuProfile";
|
||||
horizSizing = "right";
|
||||
vertSizing = "bottom";
|
||||
position = "113 10";
|
||||
extent = "130 23";
|
||||
minExtent = "8 8";
|
||||
visible = "1";
|
||||
helpTag = "0";
|
||||
maxLength = "255";
|
||||
maxPopupHeight = "200";
|
||||
};
|
||||
new GuiPopUpMenuCtrl(OptGraphicsResolutionMenu) {
|
||||
profile = "GuiPopUpMenuProfile";
|
||||
horizSizing = "right";
|
||||
vertSizing = "bottom";
|
||||
position = "113 36";
|
||||
extent = "130 23";
|
||||
minExtent = "8 8";
|
||||
visible = "1";
|
||||
helpTag = "0";
|
||||
maxLength = "255";
|
||||
maxPopupHeight = "200";
|
||||
};
|
||||
new GuiTextCtrl() {
|
||||
profile = "GuiTextProfile";
|
||||
horizSizing = "right";
|
||||
vertSizing = "bottom";
|
||||
position = "21 60";
|
||||
extent = "46 18";
|
||||
minExtent = "8 8";
|
||||
visible = "1";
|
||||
helpTag = "0";
|
||||
text = "Bit Depth:";
|
||||
maxLength = "255";
|
||||
};
|
||||
new GuiPopUpMenuCtrl(OptGraphicsBPPMenu) {
|
||||
profile = "GuiPopUpMenuProfile";
|
||||
horizSizing = "right";
|
||||
vertSizing = "bottom";
|
||||
position = "113 62";
|
||||
extent = "130 23";
|
||||
minExtent = "8 8";
|
||||
visible = "1";
|
||||
helpTag = "0";
|
||||
maxLength = "255";
|
||||
maxPopupHeight = "200";
|
||||
};
|
||||
new GuiTextCtrl() {
|
||||
profile = "GuiTextProfile";
|
||||
horizSizing = "right";
|
||||
vertSizing = "bottom";
|
||||
position = "21 86";
|
||||
extent = "59 18";
|
||||
minExtent = "8 2";
|
||||
visible = "1";
|
||||
helpTag = "0";
|
||||
text = "Screenshot:";
|
||||
maxLength = "255";
|
||||
};
|
||||
new GuiPopUpMenuCtrl(OptScreenshotMenu) {
|
||||
profile = "GuiPopUpMenuProfile";
|
||||
horizSizing = "right";
|
||||
vertSizing = "bottom";
|
||||
position = "113 88";
|
||||
extent = "130 23";
|
||||
minExtent = "8 2";
|
||||
visible = "1";
|
||||
helpTag = "0";
|
||||
maxLength = "255";
|
||||
maxPopupHeight = "200";
|
||||
};
|
||||
};
|
||||
new GuiControl(OptNetworkPane) {
|
||||
profile = "GuiWindowProfile";
|
||||
horizSizing = "right";
|
||||
vertSizing = "bottom";
|
||||
position = "9 55";
|
||||
extent = "357 208";
|
||||
minExtent = "8 8";
|
||||
visible = "0";
|
||||
helpTag = "0";
|
||||
};
|
||||
};
|
||||
};
|
||||
//--- OBJECT WRITE END ---
|
||||
135
Torque/SDK/example/starter.racing/client/ui/playGui.gui
Normal file
@@ -0,0 +1,135 @@
|
||||
//--- OBJECT WRITE BEGIN ---
|
||||
new GameTSCtrl(PlayGui) {
|
||||
profile = "GuiContentProfile";
|
||||
horizSizing = "right";
|
||||
vertSizing = "bottom";
|
||||
position = "0 0";
|
||||
extent = "640 480";
|
||||
minExtent = "8 8";
|
||||
visible = "1";
|
||||
cameraZRot = "0";
|
||||
forceFOV = "0";
|
||||
noCursor = "1";
|
||||
|
||||
new GuiBitmapCtrl(CenterPrintDlg) {
|
||||
profile = "CenterPrintProfile";
|
||||
horizSizing = "center";
|
||||
vertSizing = "center";
|
||||
position = "45 230";
|
||||
extent = "550 20";
|
||||
minExtent = "8 8";
|
||||
visible = "0";
|
||||
bitmap = "./hudfill.png";
|
||||
wrap = "0";
|
||||
|
||||
new GuiMLTextCtrl(CenterPrintText) {
|
||||
profile = "CenterPrintTextProfile";
|
||||
horizSizing = "center";
|
||||
vertSizing = "center";
|
||||
position = "0 0";
|
||||
extent = "546 12";
|
||||
minExtent = "8 8";
|
||||
visible = "1";
|
||||
lineSpacing = "2";
|
||||
allowColorChars = "0";
|
||||
maxChars = "-1";
|
||||
};
|
||||
};
|
||||
new GuiBitmapCtrl(BottomPrintDlg) {
|
||||
profile = "CenterPrintProfile";
|
||||
horizSizing = "center";
|
||||
vertSizing = "top";
|
||||
position = "45 375";
|
||||
extent = "550 20";
|
||||
minExtent = "8 8";
|
||||
visible = "0";
|
||||
bitmap = "./hudfill.png";
|
||||
wrap = "0";
|
||||
|
||||
new GuiMLTextCtrl(BottomPrintText) {
|
||||
profile = "CenterPrintTextProfile";
|
||||
horizSizing = "center";
|
||||
vertSizing = "center";
|
||||
position = "0 0";
|
||||
extent = "546 12";
|
||||
minExtent = "8 8";
|
||||
visible = "1";
|
||||
lineSpacing = "2";
|
||||
allowColorChars = "0";
|
||||
maxChars = "-1";
|
||||
};
|
||||
};
|
||||
new GuiBitmapCtrl(LagIcon) {
|
||||
profile = "GuiDefaultProfile";
|
||||
horizSizing = "right";
|
||||
vertSizing = "bottom";
|
||||
position = "572 3";
|
||||
extent = "32 32";
|
||||
minExtent = "8 8";
|
||||
visible = "0";
|
||||
bitmap = "./lagIcon.png";
|
||||
wrap = "0";
|
||||
};
|
||||
new GuiShapeNameHud() {
|
||||
profile = "GuiDefaultProfile";
|
||||
horizSizing = "width";
|
||||
vertSizing = "height";
|
||||
position = "2 -1";
|
||||
extent = "653 485";
|
||||
minExtent = "8 8";
|
||||
visible = "1";
|
||||
fillColor = "0.000000 0.000000 0.000000 0.250000";
|
||||
frameColor = "0.000000 1.000000 0.000000 1.000000";
|
||||
textColor = "0.000000 1.000000 0.000000 1.000000";
|
||||
showFill = "0";
|
||||
showFrame = "0";
|
||||
verticalOffset = "0.2";
|
||||
distanceFade = "0.1";
|
||||
damageFrameColor = "1.000000 0.600000 0.000000 1.000000";
|
||||
damageRect = "30 4";
|
||||
helpTag = "0";
|
||||
damageFillColor = "0.000000 1.000000 0.000000 1.000000";
|
||||
};
|
||||
new GuiSpeedometerHud() {
|
||||
profile = "GuiDefaultProfile";
|
||||
horizSizing = "left";
|
||||
vertSizing = "top";
|
||||
position = "440 280";
|
||||
extent = "200 200";
|
||||
minExtent = "8 2";
|
||||
visible = "1";
|
||||
bitmap = "./speedometer";
|
||||
wrap = "0";
|
||||
maxSpeed = "100";
|
||||
minAngle = "215";
|
||||
maxAngle = "0";
|
||||
color = "1.000000 0.300000 0.300000 1.000000";
|
||||
center = "130.000000 123.000000";
|
||||
length = "100";
|
||||
width = "2";
|
||||
tail = "0";
|
||||
};
|
||||
new GuiBitmapCtrl(counter) {
|
||||
profile = "GuiDefaultProfile";
|
||||
horizSizing = "center";
|
||||
vertSizing = "center";
|
||||
position = "130 110";
|
||||
extent = "380 260";
|
||||
minExtent = "8 2";
|
||||
visible = "0";
|
||||
bitmap = "./hud/go.png";
|
||||
wrap = "0";
|
||||
};
|
||||
new GuiTextCtrl(LapCounter) {
|
||||
profile = "GuiBigTextProfile";
|
||||
horizSizing = "left";
|
||||
vertSizing = "bottom";
|
||||
position = "450 5";
|
||||
extent = "170 39";
|
||||
minExtent = "8 2";
|
||||
visible = "1";
|
||||
text = "Laps: 0";
|
||||
maxLength = "255";
|
||||
};
|
||||
};
|
||||
//--- OBJECT WRITE END ---
|
||||
148
Torque/SDK/example/starter.racing/client/ui/playerList.gui
Normal file
@@ -0,0 +1,148 @@
|
||||
//-----------------------------------------------------------------------------
|
||||
// Torque Game Engine
|
||||
//
|
||||
// Copyright (c) 2001 GarageGames.Com
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
//--- OBJECT WRITE BEGIN ---
|
||||
new GuiControl(PlayerListGui) {
|
||||
profile = "GuiModelessDialogProfile";
|
||||
horizSizing = "right";
|
||||
vertSizing = "bottom";
|
||||
position = "0 0";
|
||||
extent = "640 480";
|
||||
minExtent = "8 8";
|
||||
visible = "1";
|
||||
helpTag = "0";
|
||||
noCursor = "1";
|
||||
|
||||
new GuiBitmapBorderCtrl() {
|
||||
profile = "GuiBitmapBorderProfile";
|
||||
horizSizing = "center";
|
||||
vertSizing = "center";
|
||||
position = "241 119";
|
||||
extent = "158 242";
|
||||
minExtent = "8 8";
|
||||
visible = "1";
|
||||
helpTag = "0";
|
||||
|
||||
new GuiBitmapCtrl() {
|
||||
profile = "HudScrollProfile";
|
||||
horizSizing = "right";
|
||||
vertSizing = "bottom";
|
||||
position = "5 5";
|
||||
extent = "147 231";
|
||||
minExtent = "8 8";
|
||||
visible = "1";
|
||||
helpTag = "0";
|
||||
bitmap = "./hudfill.png";
|
||||
wrap = "0";
|
||||
|
||||
new GuiTextCtrl() {
|
||||
profile = "HudTextProfile";
|
||||
horizSizing = "right";
|
||||
vertSizing = "bottom";
|
||||
position = "37 2";
|
||||
extent = "76 20";
|
||||
minExtent = "8 8";
|
||||
visible = "1";
|
||||
helpTag = "0";
|
||||
text = "Score Board";
|
||||
maxLength = "255";
|
||||
};
|
||||
new GuiScrollCtrl() {
|
||||
profile = "HudScrollProfile";
|
||||
horizSizing = "width";
|
||||
vertSizing = "height";
|
||||
position = "0 24";
|
||||
extent = "147 207";
|
||||
minExtent = "8 8";
|
||||
visible = "1";
|
||||
helpTag = "0";
|
||||
willFirstRespond = "1";
|
||||
hScrollBar = "alwaysOff";
|
||||
vScrollBar = "dynamic";
|
||||
constantThumbHeight = "0";
|
||||
childMargin = "0 0";
|
||||
defaultLineHeight = "15";
|
||||
|
||||
new GuiTextListCtrl(PlayerListGuiList) {
|
||||
profile = "HudTextProfile";
|
||||
horizSizing = "width";
|
||||
vertSizing = "height";
|
||||
position = "1 1";
|
||||
extent = "145 16";
|
||||
minExtent = "8 8";
|
||||
visible = "1";
|
||||
helpTag = "0";
|
||||
enumerate = "0";
|
||||
resizeCell = "1";
|
||||
columns = "0 120";
|
||||
fitParentWidth = "1";
|
||||
clipColumnText = "0";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
//--- OBJECT WRITE END ---
|
||||
|
||||
function PlayerListGui::update(%this,%clientId,%name,%isSuperAdmin,%isAdmin,%isAI,%score)
|
||||
{
|
||||
// Build the row to display. The name can have ML control tags,
|
||||
// including color and font. Since we're not using and
|
||||
// ML control here, we need to strip them off.
|
||||
%tag = %isSuperAdmin? "[Super]":
|
||||
(%isAdmin? "[Admin]":
|
||||
(%isAI? "[Bot]":
|
||||
""));
|
||||
%text = StripMLControlChars(%name) SPC %tag TAB %score;
|
||||
|
||||
// Update or add the player to the control
|
||||
if (PlayerListGuiList.getRowNumById(%clientId) == -1)
|
||||
PlayerListGuiList.addRow(%clientId, %text);
|
||||
else
|
||||
PlayerListGuiList.setRowById(%clientId, %text);
|
||||
|
||||
// Sorts by score
|
||||
PlayerListGuiList.sortNumerical(1,false);
|
||||
PlayerListGuiList.clearSelection();
|
||||
}
|
||||
|
||||
function PlayerListGui::updateScore(%this,%clientId,%score)
|
||||
{
|
||||
%text = PlayerListGuiList.getRowTextById(%clientId);
|
||||
%text = setField(%text,1,%score);
|
||||
PlayerListGuiList.setRowById(%clientId, %text);
|
||||
PlayerListGuiList.sortNumerical(1,false);
|
||||
PlayerListGuiList.clearSelection();
|
||||
}
|
||||
|
||||
function PlayerListGui::remove(%this,%clientId)
|
||||
{
|
||||
PlayerListGuiList.removeRowById(%clientId);
|
||||
}
|
||||
|
||||
function PlayerListGui::toggle(%this)
|
||||
{
|
||||
if (%this.isAwake())
|
||||
Canvas.popDialog(%this);
|
||||
else
|
||||
Canvas.pushDialog(%this);
|
||||
}
|
||||
|
||||
function PlayerListGui::clear(%this)
|
||||
{
|
||||
// Override to clear the list.
|
||||
PlayerListGuiList.clear();
|
||||
}
|
||||
|
||||
function PlayerListGui::zeroScores(%this)
|
||||
{
|
||||
for (%i = 0; %i < PlayerListGuiList.rowCount(); %i++) {
|
||||
%text = PlayerListGuiList.getRowText(%i);
|
||||
%text = setField(%text,1,"0");
|
||||
PlayerListGuiList.setRowById(PlayerListGuiList.getRowId(%i), %text);
|
||||
}
|
||||
PlayerListGuiList.clearSelection();
|
||||
}
|
||||
46
Torque/SDK/example/starter.racing/client/ui/remapDlg.gui
Normal file
@@ -0,0 +1,46 @@
|
||||
//--- OBJECT WRITE BEGIN ---
|
||||
new GuiControl(RemapDlg) {
|
||||
profile = "GuiDialogProfile";
|
||||
horizSizing = "right";
|
||||
vertSizing = "bottom";
|
||||
position = "0 0";
|
||||
extent = "640 480";
|
||||
minExtent = "8 8";
|
||||
visible = "1";
|
||||
helpTag = "0";
|
||||
|
||||
new GuiControl(OptRemapDlg) {
|
||||
profile = "GuiWindowProfile";
|
||||
horizSizing = "center";
|
||||
vertSizing = "center";
|
||||
position = "213 213";
|
||||
extent = "243 64";
|
||||
minExtent = "8 8";
|
||||
visible = "1";
|
||||
helpTag = "0";
|
||||
|
||||
new GuiTextCtrl(OptRemapText) {
|
||||
profile = "GuiCenterTextProfile";
|
||||
horizSizing = "right";
|
||||
vertSizing = "bottom";
|
||||
position = "2 21";
|
||||
extent = "99 20";
|
||||
minExtent = "8 8";
|
||||
visible = "1";
|
||||
helpTag = "0";
|
||||
text = "Re-bind control...";
|
||||
maxLength = "255";
|
||||
};
|
||||
new GuiInputCtrl(OptRemapInputCtrl) {
|
||||
profile = "GuiInputCtrlProfile";
|
||||
horizSizing = "center";
|
||||
vertSizing = "bottom";
|
||||
position = "0 0";
|
||||
extent = "64 64";
|
||||
minExtent = "8 8";
|
||||
visible = "1";
|
||||
helpTag = "0";
|
||||
};
|
||||
};
|
||||
};
|
||||
//--- OBJECT WRITE END ---
|
||||
BIN
Torque/SDK/example/starter.racing/client/ui/seperator.png
Normal file
|
After Width: | Height: | Size: 1.1 KiB |
BIN
Torque/SDK/example/starter.racing/client/ui/speedometer.png
Normal file
|
After Width: | Height: | Size: 30 KiB |
218
Torque/SDK/example/starter.racing/client/ui/startMissionGui.gui
Normal file
@@ -0,0 +1,218 @@
|
||||
//--- OBJECT WRITE BEGIN ---
|
||||
new GuiChunkedBitmapCtrl(startMissionGui) {
|
||||
profile = "GuiContentProfile";
|
||||
horizSizing = "width";
|
||||
vertSizing = "height";
|
||||
position = "0 0";
|
||||
extent = "640 480";
|
||||
minExtent = "8 8";
|
||||
visible = "1";
|
||||
bitmap = "./background";
|
||||
useVariable = "0";
|
||||
tile = "0";
|
||||
helpTag = "0";
|
||||
|
||||
new GuiControl() {
|
||||
profile = "GuiWindowProfile";
|
||||
horizSizing = "center";
|
||||
vertSizing = "center";
|
||||
position = "92 86";
|
||||
extent = "455 308";
|
||||
minExtent = "8 8";
|
||||
visible = "1";
|
||||
helpTag = "0";
|
||||
|
||||
new GuiTextCtrl() {
|
||||
profile = "GuiTextProfile";
|
||||
horizSizing = "right";
|
||||
vertSizing = "bottom";
|
||||
position = "12 36";
|
||||
extent = "72 18";
|
||||
minExtent = "8 8";
|
||||
visible = "1";
|
||||
text = "Select Mission:";
|
||||
maxLength = "255";
|
||||
helpTag = "0";
|
||||
};
|
||||
new GuiCheckBoxCtrl(ML_isMultiplayer) {
|
||||
profile = "GuiCheckBoxProfile";
|
||||
horizSizing = "right";
|
||||
vertSizing = "bottom";
|
||||
position = "155 272";
|
||||
extent = "147 23";
|
||||
minExtent = "8 8";
|
||||
visible = "1";
|
||||
variable = "pref::HostMultiPlayer";
|
||||
text = "Host Multiplayer";
|
||||
groupNum = "-1";
|
||||
buttonType = "ToggleButton";
|
||||
helpTag = "0";
|
||||
maxLength = "255";
|
||||
};
|
||||
new GuiButtonCtrl() {
|
||||
profile = "GuiButtonProfile";
|
||||
horizSizing = "right";
|
||||
vertSizing = "bottom";
|
||||
position = "320 271";
|
||||
extent = "127 23";
|
||||
minExtent = "8 8";
|
||||
visible = "1";
|
||||
command = "SM_StartMission();";
|
||||
text = "Launch Mission!";
|
||||
groupNum = "-1";
|
||||
buttonType = "PushButton";
|
||||
helpTag = "0";
|
||||
};
|
||||
new GuiScrollCtrl() {
|
||||
profile = "GuiScrollProfile";
|
||||
horizSizing = "right";
|
||||
vertSizing = "bottom";
|
||||
position = "10 62";
|
||||
extent = "436 200";
|
||||
minExtent = "8 8";
|
||||
visible = "1";
|
||||
willFirstRespond = "1";
|
||||
hScrollBar = "dynamic";
|
||||
vScrollBar = "alwaysOn";
|
||||
constantThumbHeight = "0";
|
||||
childMargin = "0 0";
|
||||
helpTag = "0";
|
||||
defaultLineHeight = "15";
|
||||
|
||||
new GuiTextListCtrl(SM_missionList) {
|
||||
profile = "GuiTextArrayProfile";
|
||||
horizSizing = "right";
|
||||
vertSizing = "bottom";
|
||||
position = "2 2";
|
||||
extent = "414 16";
|
||||
minExtent = "8 8";
|
||||
visible = "1";
|
||||
enumerate = "0";
|
||||
resizeCell = "1";
|
||||
columns = "0";
|
||||
fitParentWidth = "1";
|
||||
clipColumnText = "0";
|
||||
helpTag = "0";
|
||||
noDuplicates = "false";
|
||||
};
|
||||
};
|
||||
new GuiTextEditCtrl() {
|
||||
profile = "GuiTextEditProfile";
|
||||
horizSizing = "right";
|
||||
vertSizing = "bottom";
|
||||
position = "98 15";
|
||||
extent = "134 18";
|
||||
minExtent = "8 8";
|
||||
visible = "1";
|
||||
variable = "pref::Player::Name";
|
||||
maxLength = "255";
|
||||
historySize = "0";
|
||||
password = "0";
|
||||
tabComplete = "0";
|
||||
sinkAllKeyEvents = "0";
|
||||
helpTag = "0";
|
||||
};
|
||||
new GuiTextCtrl() {
|
||||
profile = "GuiTextProfile";
|
||||
horizSizing = "right";
|
||||
vertSizing = "bottom";
|
||||
position = "12 11";
|
||||
extent = "63 18";
|
||||
minExtent = "8 8";
|
||||
visible = "1";
|
||||
text = "Player Name:";
|
||||
maxLength = "255";
|
||||
helpTag = "0";
|
||||
};
|
||||
new GuiButtonCtrl() {
|
||||
profile = "GuiButtonProfile";
|
||||
horizSizing = "right";
|
||||
vertSizing = "bottom";
|
||||
position = "10 272";
|
||||
extent = "127 23";
|
||||
minExtent = "8 8";
|
||||
visible = "1";
|
||||
command = "Canvas.setContent(mainMenuGui);";
|
||||
text = "<< Back";
|
||||
groupNum = "-1";
|
||||
buttonType = "PushButton";
|
||||
helpTag = "0";
|
||||
};
|
||||
};
|
||||
};
|
||||
//--- OBJECT WRITE END ---
|
||||
|
||||
|
||||
//----------------------------------------
|
||||
function SM_StartMission()
|
||||
{
|
||||
%id = SM_missionList.getSelectedId();
|
||||
%mission = getField(SM_missionList.getRowTextById(%id), 1);
|
||||
|
||||
if ($pref::HostMultiPlayer)
|
||||
%serverType = "MultiPlayer";
|
||||
else
|
||||
%serverType = "SinglePlayer";
|
||||
|
||||
createServer(%serverType, %mission);
|
||||
%conn = new GameConnection(ServerConnection);
|
||||
RootGroup.add(ServerConnection);
|
||||
%conn.setConnectArgs($pref::Player::Name);
|
||||
%conn.setJoinPassword($Client::Password);
|
||||
%conn.connectLocal();
|
||||
}
|
||||
|
||||
|
||||
//----------------------------------------
|
||||
function startMissionGui::onWake()
|
||||
{
|
||||
SM_missionList.clear();
|
||||
%i = 0;
|
||||
for(%file = findFirstFile($Server::MissionFileSpec); %file !$= ""; %file = findNextFile($Server::MissionFileSpec))
|
||||
if (strStr(%file, "/CVS/") == -1)
|
||||
SM_missionList.addRow(%i++, getMissionDisplayName(%file) @ "\t" @ %file );
|
||||
SM_missionList.sort(0);
|
||||
SM_missionList.setSelectedRow(0);
|
||||
SM_missionList.scrollVisible(0);
|
||||
}
|
||||
|
||||
|
||||
//----------------------------------------
|
||||
function getMissionDisplayName( %missionFile )
|
||||
{
|
||||
%file = new FileObject();
|
||||
|
||||
%MissionInfoObject = "";
|
||||
|
||||
if ( %file.openForRead( %missionFile ) ) {
|
||||
%inInfoBlock = false;
|
||||
|
||||
while ( !%file.isEOF() ) {
|
||||
%line = %file.readLine();
|
||||
%line = trim( %line );
|
||||
|
||||
if( %line $= "new ScriptObject(MissionInfo) {" )
|
||||
%inInfoBlock = true;
|
||||
else if( %inInfoBlock && %line $= "};" ) {
|
||||
%inInfoBlock = false;
|
||||
%MissionInfoObject = %MissionInfoObject @ %line;
|
||||
break;
|
||||
}
|
||||
|
||||
if( %inInfoBlock )
|
||||
%MissionInfoObject = %MissionInfoObject @ %line @ " ";
|
||||
}
|
||||
|
||||
%file.close();
|
||||
}
|
||||
%MissionInfoObject = "%MissionInfoObject = " @ %MissionInfoObject;
|
||||
eval( %MissionInfoObject );
|
||||
|
||||
%file.delete();
|
||||
|
||||
if( %MissionInfoObject.name !$= "" )
|
||||
return %MissionInfoObject.name;
|
||||
else
|
||||
return fileBase(%missionFile);
|
||||
}
|
||||
|
||||
9
Torque/SDK/example/starter.racing/data/init.cs
Normal file
@@ -0,0 +1,9 @@
|
||||
//-----------------------------------------------------------------------------
|
||||
// Torque Game Engine
|
||||
// Copyright (C) GarageGames.com, Inc.
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
// A temporary hack until we can find a better way to initialize
|
||||
// material properties.
|
||||
exec( "./terrains/grassland/propertyMap.cs" );
|
||||
exec( "./terrains/scorched/propertyMap.cs" );
|
||||
@@ -0,0 +1,86 @@
|
||||
// This map has been written by QuArK - Quake Army Knife, QuArK 6.3
|
||||
// It is a map for the game Torque.
|
||||
// For more information see QuArK's Home Page : http://www.planetquake.com/quark
|
||||
|
||||
// Entity 0
|
||||
// worldspawn
|
||||
{
|
||||
"classname" "worldspawn"
|
||||
"detail_number" "0"
|
||||
"min_pixels" "250"
|
||||
"geometry_scale" "32.0"
|
||||
"light_geometry_scale" "32.0"
|
||||
"ambient_color" "0 0 0"
|
||||
"emergency_ambient_color" "0 0 0"
|
||||
"mapversion" "220"
|
||||
// Brush 0
|
||||
// group:g[1] -> poly:p[1]
|
||||
{
|
||||
( -30 0 140 ) ( -30 -64 140 ) ( 34 0 140 ) paintedwood [ 1.00000 0.00000 0.00000 60.00000 ] [ 0.00000 -1.00000 0.00000 0.00000 ] 0 0.50000 -0.50000
|
||||
( -30 0 268 ) ( -30 64 268 ) ( 34 0 268 ) paintedwood [ 1.00000 0.00000 0.00000 60.00000 ] [ 0.00000 1.00000 0.00000 0.00000 ] 0 0.50000 -0.50000
|
||||
( -30 -192 140 ) ( -30 -192 204 ) ( 34 -192 140 ) paintedwood [ 1.00000 0.00000 0.00000 60.00000 ] [ 0.00000 0.00000 1.00000 280.00000 ] 0 0.50000 -0.50000
|
||||
( -30 192 140 ) ( -30 192 204 ) ( -94 192 140 ) paintedwood [ -1.00000 0.00000 0.00000 -60.00000 ] [ 0.00000 0.00000 1.00000 280.00000 ] 0 0.50000 -0.50000
|
||||
( -62 0 140 ) ( -62 0 204 ) ( -62 -64 140 ) chevron [ 0.00000 -1.00000 0.00000 0.00000 ] [ 0.00000 0.00000 1.00000 280.00000 ] 0 0.50000 -0.50000
|
||||
( -60 0 140 ) ( -60 0 204 ) ( -60 64 140 ) paintedwood [ 0.00000 1.00000 0.00000 0.00000 ] [ 0.00000 0.00000 1.00000 280.00000 ] 0 0.50000 -0.50000
|
||||
}
|
||||
// Brush 1
|
||||
// group:g[1] -> poly:p[2]
|
||||
{
|
||||
( -20 0 140 ) ( -20 -64 140 ) ( 44 0 140 ) paintedwood [ 1.00000 0.00000 0.00000 40.00000 ] [ 0.00000 -1.00000 0.00000 0.00000 ] 0 0.50000 -0.50000
|
||||
( -20 0 268 ) ( -20 64 268 ) ( 44 0 268 ) paintedwood [ 1.00000 0.00000 0.00000 40.00000 ] [ 0.00000 1.00000 0.00000 0.00000 ] 0 0.50000 -0.50000
|
||||
( -20 -192 140 ) ( -20 -192 204 ) ( 44 -192 140 ) paintedwood [ 1.00000 0.00000 0.00000 40.00000 ] [ 0.00000 0.00000 1.00000 280.00000 ] 0 0.50000 -0.50000
|
||||
( -20 192 140 ) ( -20 192 204 ) ( -84 192 140 ) paintedwood [ -1.00000 0.00000 0.00000 -40.00000 ] [ 0.00000 0.00000 1.00000 280.00000 ] 0 0.50000 -0.50000
|
||||
( -52 0 140 ) ( -52 0 204 ) ( -52 -64 140 ) paintedwood [ 0.00000 -1.00000 0.00000 0.00000 ] [ 0.00000 0.00000 1.00000 280.00000 ] 0 0.50000 -0.50000
|
||||
( -50 0 140 ) ( -50 0 204 ) ( -50 64 140 ) chevron [ 0.00000 -1.00000 0.00000 0.00000 ] [ 0.00000 0.00000 -1.00000 -280.00000 ] 0 0.50000 -0.50000
|
||||
}
|
||||
// Brush 2
|
||||
// group:g[1] -> poly:p[3]
|
||||
{
|
||||
( -28 120 76 ) ( -28 56 76 ) ( 36 120 76 ) paintedwood [ 1.00000 0.00000 0.00000 56.00000 ] [ 0.00000 -1.00000 0.00000 -240.00000 ] 0 0.50000 -0.50000
|
||||
( -28 120 252 ) ( -28 184 252 ) ( 36 120 252 ) paintedwood [ 1.00000 0.00000 0.00000 56.00000 ] [ 0.00000 1.00000 0.00000 240.00000 ] 0 0.50000 -0.50000
|
||||
( -28 144 44 ) ( -28 144 108 ) ( 36 144 44 ) paintedwood [ 1.00000 0.00000 0.00000 56.00000 ] [ 0.00000 0.00000 1.00000 88.00000 ] 0 0.50000 -0.50000
|
||||
( -28 152 44 ) ( -28 152 108 ) ( -92 152 44 ) paintedwood [ -1.00000 0.00000 0.00000 -56.00000 ] [ 0.00000 0.00000 1.00000 88.00000 ] 0 0.50000 -0.50000
|
||||
( -60 120 44 ) ( -60 120 108 ) ( -60 56 44 ) paintedwood [ 0.00000 -1.00000 0.00000 240.00000 ] [ 0.00000 0.00000 1.00000 88.00000 ] 0 0.50000 -0.50000
|
||||
( -52 120 44 ) ( -52 120 108 ) ( -52 184 44 ) paintedwood [ 0.00000 1.00000 0.00000 -240.00000 ] [ 0.00000 0.00000 1.00000 88.00000 ] 0 0.50000 -0.50000
|
||||
}
|
||||
// Brush 3
|
||||
// group:g[1] -> poly:p[4]
|
||||
{
|
||||
( -28 -176 76 ) ( -28 -240 76 ) ( 36 -176 76 ) paintedwood [ 1.00000 0.00000 0.00000 56.00000 ] [ 0.00000 -1.00000 0.00000 352.00000 ] 0 0.50000 -0.50000
|
||||
( -28 -176 252 ) ( -28 -112 252 ) ( 36 -176 252 ) paintedwood [ 1.00000 0.00000 0.00000 56.00000 ] [ 0.00000 1.00000 0.00000 -352.00000 ] 0 0.50000 -0.50000
|
||||
( -28 -152 44 ) ( -28 -152 108 ) ( 36 -152 44 ) paintedwood [ 1.00000 0.00000 0.00000 56.00000 ] [ 0.00000 0.00000 1.00000 88.00000 ] 0 0.50000 -0.50000
|
||||
( -28 -144 44 ) ( -28 -144 108 ) ( -92 -144 44 ) paintedwood [ -1.00000 0.00000 0.00000 -56.00000 ] [ 0.00000 0.00000 1.00000 88.00000 ] 0 0.50000 -0.50000
|
||||
( -60 -176 44 ) ( -60 -176 108 ) ( -60 -240 44 ) paintedwood [ 0.00000 -1.00000 0.00000 -352.00000 ] [ 0.00000 0.00000 1.00000 88.00000 ] 0 0.50000 -0.50000
|
||||
( -52 -176 44 ) ( -52 -176 108 ) ( -52 -112 44 ) paintedwood [ 0.00000 1.00000 0.00000 352.00000 ] [ 0.00000 0.00000 1.00000 88.00000 ] 0 0.50000 -0.50000
|
||||
}
|
||||
// Brush 4
|
||||
// group:g[1] -> poly:p[5]
|
||||
{
|
||||
( -28 -176 156 ) ( -28 -240 156 ) ( 36 -176 156 ) paintedwood [ 1.00000 0.00000 0.00000 56.00000 ] [ 0.00000 -1.00000 0.00000 352.00000 ] 0 0.50000 -0.50000
|
||||
( -28 -176 252 ) ( -28 -112 252 ) ( 36 -176 252 ) paintedwood [ 1.00000 0.00000 0.00000 56.00000 ] [ 0.00000 1.00000 0.00000 -352.00000 ] 0 0.50000 -0.50000
|
||||
( -28 -144 44 ) ( -28 -144 108 ) ( 36 -144 44 ) paintedwood [ 1.00000 0.00000 0.00000 56.00000 ] [ 0.00000 0.00000 1.00000 88.00000 ] 0 0.50000 -0.50000
|
||||
( -28 144 44 ) ( -28 144 108 ) ( -92 144 44 ) paintedwood [ -1.00000 0.00000 0.00000 -56.00000 ] [ 0.00000 0.00000 1.00000 88.00000 ] 0 0.50000 -0.50000
|
||||
( -60 -176 44 ) ( -60 -176 108 ) ( -60 -240 44 ) paintedwood [ 0.00000 -1.00000 0.00000 -352.00000 ] [ 0.00000 0.00000 1.00000 88.00000 ] 0 0.50000 -0.50000
|
||||
( -52 -176 44 ) ( -52 -176 108 ) ( -52 -112 44 ) paintedwood [ 0.00000 1.00000 0.00000 352.00000 ] [ 0.00000 0.00000 1.00000 88.00000 ] 0 0.50000 -0.50000
|
||||
}
|
||||
// Brush 5
|
||||
// group:g[1] -> poly:p[6]
|
||||
{
|
||||
( -36 152 -220 ) ( -36 88 -220 ) ( 28 152 -220 ) concrete_1 [ 1.00000 0.00000 0.00000 72.00000 ] [ 0.00000 -1.00000 0.00000 -304.00000 ] 0 0.50000 -0.50000
|
||||
( -36 152 76 ) ( -36 216 76 ) ( 28 152 76 ) concrete_1 [ 1.00000 0.00000 0.00000 72.00000 ] [ 0.00000 1.00000 0.00000 304.00000 ] 0 0.50000 -0.50000
|
||||
( -36 136 44 ) ( -36 136 108 ) ( 28 136 44 ) concrete_1 [ 1.00000 0.00000 0.00000 72.00000 ] [ 0.00000 0.00000 1.00000 88.00000 ] 0 0.50000 -0.50000
|
||||
( -36 160 44 ) ( -36 160 108 ) ( -100 160 44 ) concrete_1 [ -1.00000 0.00000 0.00000 -72.00000 ] [ 0.00000 0.00000 1.00000 88.00000 ] 0 0.50000 -0.50000
|
||||
( -68 152 44 ) ( -68 152 108 ) ( -68 88 44 ) concrete_1 [ 0.00000 -1.00000 0.00000 304.00000 ] [ 0.00000 0.00000 1.00000 88.00000 ] 0 0.50000 -0.50000
|
||||
( -44 152 44 ) ( -44 152 108 ) ( -44 216 44 ) concrete_1 [ 0.00000 1.00000 0.00000 -304.00000 ] [ 0.00000 0.00000 1.00000 88.00000 ] 0 0.50000 -0.50000
|
||||
}
|
||||
// Brush 6
|
||||
// group:g[1] -> poly:p[7]
|
||||
{
|
||||
( -36 -144 -220 ) ( -36 -208 -220 ) ( 28 -144 -220 ) concrete_1 [ 1.00000 0.00000 0.00000 72.00000 ] [ 0.00000 -1.00000 0.00000 288.00000 ] 0 0.50000 -0.50000
|
||||
( -36 -144 76 ) ( -36 -80 76 ) ( 28 -144 76 ) concrete_1 [ 1.00000 0.00000 0.00000 72.00000 ] [ 0.00000 1.00000 0.00000 -288.00000 ] 0 0.50000 -0.50000
|
||||
( -36 -160 44 ) ( -36 -160 108 ) ( 28 -160 44 ) concrete_1 [ 1.00000 0.00000 0.00000 72.00000 ] [ 0.00000 0.00000 1.00000 88.00000 ] 0 0.50000 -0.50000
|
||||
( -36 -136 44 ) ( -36 -136 108 ) ( -100 -136 44 ) concrete_1 [ -1.00000 0.00000 0.00000 -72.00000 ] [ 0.00000 0.00000 1.00000 88.00000 ] 0 0.50000 -0.50000
|
||||
( -68 -144 44 ) ( -68 -144 108 ) ( -68 -208 44 ) concrete_1 [ 0.00000 -1.00000 0.00000 -288.00000 ] [ 0.00000 0.00000 1.00000 88.00000 ] 0 0.50000 -0.50000
|
||||
( -44 -144 44 ) ( -44 -144 108 ) ( -44 -80 44 ) concrete_1 [ 0.00000 1.00000 0.00000 288.00000 ] [ 0.00000 0.00000 1.00000 88.00000 ] 0 0.50000 -0.50000
|
||||
}
|
||||
}
|
||||
|
After Width: | Height: | Size: 19 KiB |
@@ -0,0 +1,46 @@
|
||||
// This map has been written by QuArK - Quake Army Knife, QuArK 6.3
|
||||
// It is a map for the game Torque.
|
||||
// For more information see QuArK's Home Page : http://www.planetquake.com/quark
|
||||
|
||||
// Entity 0
|
||||
// worldspawn
|
||||
{
|
||||
"classname" "worldspawn"
|
||||
"detail_number" "0"
|
||||
"min_pixels" "250"
|
||||
"geometry_scale" "32.0"
|
||||
"light_geometry_scale" "32.0"
|
||||
"ambient_color" "0 0 0"
|
||||
"emergency_ambient_color" "0 0 0"
|
||||
"mapversion" "220"
|
||||
// Brush 0
|
||||
// poly:p[1]
|
||||
{
|
||||
( -16 -457 221 ) ( 32 -505 93 ) ( 0 -505 93 ) cap_end [ 1.00000 0.00000 0.00000 16.13617 ] [ 0.00000 0.00000 1.00000 69.56522 ] 0 1.46875 -1.43750
|
||||
( 24 -512 100 ) ( -24 512 100 ) ( -24 -512 100 ) stripe [ 1.00000 0.00000 0.00000 0.00000 ] [ 0.00000 -1.00000 0.00000 0.00000 ] 0 1.00000 -1.00000
|
||||
( 12 -476 192 ) ( -12 476 192 ) ( -12 1428 192 ) cap_top [ 0.00000 -1.00000 0.00000 0.00000 ] [ 1.00000 0.00000 0.00000 -15.00000 ] 0 1.50000 -0.80000
|
||||
( -16 457 221 ) ( 32 505 93 ) ( 64 505 93 ) cap_end [ -1.00000 0.00000 0.00000 16.13617 ] [ 0.00000 0.00000 1.00000 69.56522 ] 0 1.46875 -1.43750
|
||||
( -24 -512 96 ) ( -12 476 192 ) ( -12 -548 192 ) cap_south [ 0.00000 -1.00000 0.00000 0.00000 ] [ 0.00000 0.00000 1.00000 65.97821 ] 0 1.50000 -1.48842
|
||||
( 24 -512 96 ) ( 12 476 192 ) ( 12 1500 192 ) cap_north [ 0.00000 1.00000 0.00000 0.00000 ] [ 0.00000 0.00000 1.00000 65.90379 ] 0 1.50000 -1.48842
|
||||
}
|
||||
// Brush 1
|
||||
// poly:p[2]
|
||||
{
|
||||
( -48 -544 80 ) ( 48 544 80 ) ( -48 544 80 ) concrete_1 [ 1.00000 0.00000 0.00000 0.00000 ] [ 0.00000 -1.00000 0.00000 512.00000 ] 0 1.00000 -1.00000
|
||||
( -24 -504 100 ) ( 24 1512 100 ) ( 24 504 100 ) concrete_1 [ 1.00000 0.00000 0.00000 19.99207 ] [ 0.00000 1.00000 0.00000 1036.00000 ] 0 1.00000 -1.00000
|
||||
( -24 -504 100 ) ( 40 -528 80 ) ( -8 -528 80 ) concrete_1 [ 1.00000 0.00000 0.00000 0.00000 ] [ 0.00000 1.00000 0.00000 -754.36335 ] 0 1.00000 -0.76822
|
||||
( -24 504 100 ) ( 40 528 80 ) ( 88 528 80 ) concrete_1 [ -1.00000 0.00000 0.00000 256.00000 ] [ 0.00000 -1.00000 0.00000 -754.36335 ] 0 1.00000 -0.76822
|
||||
( -24 -504 100 ) ( -40 528 80 ) ( -40 1536 80 ) concrete_1 [ 0.00000 -1.00000 0.00000 1024.00000 ] [ 0.00000 0.00000 1.00000 43.08370 ] 0 1.00000 -0.78087
|
||||
( 24 -504 100 ) ( 40 528 80 ) ( 40 -480 80 ) concrete_1 [ 0.00000 1.00000 0.00000 0.00000 ] [ 0.00000 0.00000 1.00000 43.08370 ] 0 1.00000 -0.78087
|
||||
}
|
||||
// Brush 2
|
||||
// poly:p[3]
|
||||
{
|
||||
( 0 0 -240 ) ( 0 -128 -240 ) ( 128 0 -240 ) concrete_1 [ 1.00000 0.00000 0.00000 0.00000 ] [ 0.00000 -1.00000 0.00000 0.00000 ] 0 1.00000 -1.00000
|
||||
( 0 0 80 ) ( 0 128 80 ) ( 128 0 80 ) concrete_1 [ 1.00000 0.00000 0.00000 0.00000 ] [ 0.00000 1.00000 0.00000 0.00000 ] 0 1.00000 -1.00000
|
||||
( 0 -528 0 ) ( 0 -528 128 ) ( 128 -528 0 ) concrete_1 [ 1.00000 0.00000 0.00000 0.00000 ] [ 0.00000 0.00000 1.00000 0.00000 ] 0 1.00000 -1.00000
|
||||
( 0 528 0 ) ( 0 528 128 ) ( -128 528 0 ) concrete_1 [ -1.00000 0.00000 0.00000 0.00000 ] [ 0.00000 0.00000 1.00000 0.00000 ] 0 1.00000 -1.00000
|
||||
( -40 0 0 ) ( -40 0 128 ) ( -40 -128 0 ) concrete_1 [ 0.00000 -1.00000 0.00000 0.00000 ] [ 0.00000 0.00000 1.00000 0.00000 ] 0 1.00000 -1.00000
|
||||
( 40 0 0 ) ( 40 0 128 ) ( 40 128 0 ) concrete_1 [ 0.00000 1.00000 0.00000 0.00000 ] [ 0.00000 0.00000 1.00000 0.00000 ] 0 1.00000 -1.00000
|
||||
}
|
||||
}
|
||||
|
After Width: | Height: | Size: 28 KiB |
@@ -0,0 +1,36 @@
|
||||
// This map has been written by QuArK - Quake Army Knife, QuArK 6.3
|
||||
// It is a map for the game Torque.
|
||||
// For more information see QuArK's Home Page : http://www.planetquake.com/quark
|
||||
|
||||
// Entity 0
|
||||
// worldspawn
|
||||
{
|
||||
"classname" "worldspawn"
|
||||
"detail_number" "0"
|
||||
"min_pixels" "250"
|
||||
"geometry_scale" "32.0"
|
||||
"light_geometry_scale" "32.0"
|
||||
"ambient_color" "0 0 0"
|
||||
"emergency_ambient_color" "0 0 0"
|
||||
"mapversion" "220"
|
||||
// Brush 0
|
||||
// regular_polys:g[1] -> cube:p[1]
|
||||
{
|
||||
( 63 -127 392 ) ( 127 129 136 ) ( 127 -127 136 ) block [ 0.00000 -1.00000 0.00000 128.38095 ] [ 0.00000 0.00000 1.00000 130.50730 ] 0 1.05000 -1.01865
|
||||
( -65 -63 392 ) ( 127 -127 136 ) ( -1 -127 136 ) block [ -1.00000 0.00000 0.00000 125.52380 ] [ 0.00000 0.00000 1.00000 130.73827 ] 0 1.05000 -1.01865
|
||||
( -65 -127 392 ) ( -129 129 136 ) ( -129 385 136 ) block [ 0.00000 1.00000 0.00000 125.71429 ] [ 0.00000 0.00000 1.00000 130.50723 ] 0 1.05000 -1.01865
|
||||
( -1 1 136 ) ( 255 1 136 ) ( -1 257 136 ) concrete_1 [ 1.00000 0.00000 0.00000 0.50000 ] [ 0.00000 1.00000 0.00000 0.50000 ] 0 2.00000 -2.00000
|
||||
( -65 -63 392 ) ( 63 65 392 ) ( 191 65 392 ) block_top [ 1.00000 0.00000 0.00000 65.00000 ] [ 0.00000 1.00000 0.00000 -63.00000 ] 0 1.00000 -1.00000
|
||||
( -65 65 392 ) ( 127 129 136 ) ( 255 129 136 ) block [ 1.00000 0.00000 0.00000 127.61905 ] [ 0.00000 0.00000 1.00000 129.58334 ] 0 1.05000 -1.01865
|
||||
}
|
||||
// Brush 1
|
||||
// poly:p[2]
|
||||
{
|
||||
( 127 -127 -72 ) ( -129 129 -72 ) ( -129 -127 -72 ) block_lower [ 1.00000 0.00000 0.00000 -128.00000 ] [ 0.00000 -1.00000 0.00000 128.00000 ] 0 1.00000 -1.00000
|
||||
( 127 -127 136 ) ( -129 129 136 ) ( -129 385 136 ) block_lower [ 1.00000 0.00000 0.00000 128.00000 ] [ 0.00000 1.00000 0.00000 -128.00000 ] 0 1.00000 -1.00000
|
||||
( -128 -127 -72 ) ( 128 -127 136 ) ( 384 -127 136 ) block_lower [ 1.00000 0.00000 0.00000 128.00000 ] [ 0.00000 0.00000 1.00000 -88.61834 ] 0 1.00000 -0.81250
|
||||
( -129 129 -72 ) ( 128 129 136 ) ( -129 129 136 ) block_lower [ -1.00000 0.00000 0.00000 384.00000 ] [ 0.00000 0.00000 1.00000 -88.61834 ] 0 1.00000 -0.81250
|
||||
( -129 -127 -72 ) ( -129 128 136 ) ( -129 -127 136 ) block_lower [ 0.00000 -1.00000 0.00000 384.00000 ] [ 0.00000 0.00000 1.00000 -88.61834 ] 0 1.00000 -0.81250
|
||||
( 127 -127 -72 ) ( 127 129 136 ) ( 127 385 136 ) block_lower [ 0.00000 1.00000 0.00000 128.00000 ] [ 0.00000 0.00000 1.00000 -88.61834 ] 0 1.00000 -0.81250
|
||||
}
|
||||
}
|
||||
|
After Width: | Height: | Size: 31 KiB |
|
After Width: | Height: | Size: 10 KiB |
|
After Width: | Height: | Size: 2.6 KiB |
|
After Width: | Height: | Size: 8.2 KiB |
|
After Width: | Height: | Size: 8.2 KiB |
|
After Width: | Height: | Size: 3.9 KiB |
|
After Width: | Height: | Size: 43 KiB |
|
After Width: | Height: | Size: 41 KiB |
|
After Width: | Height: | Size: 53 KiB |
|
After Width: | Height: | Size: 4.6 KiB |
|
After Width: | Height: | Size: 28 KiB |
|
After Width: | Height: | Size: 26 KiB |
|
After Width: | Height: | Size: 492 B |
BIN
Torque/SDK/example/starter.racing/data/interiors/racing/jump.jpg
Normal file
|
After Width: | Height: | Size: 28 KiB |
|
After Width: | Height: | Size: 15 KiB |
|
After Width: | Height: | Size: 8.5 KiB |
|
After Width: | Height: | Size: 1.6 KiB |
@@ -0,0 +1,198 @@
|
||||
// This map has been written by QuArK - Quake Army Knife, QuArK 6.3
|
||||
// It is a map for the game Torque.
|
||||
// For more information see QuArK's Home Page : http://www.planetquake.com/quark
|
||||
|
||||
// Entity 0
|
||||
// worldspawn
|
||||
{
|
||||
"classname" "worldspawn"
|
||||
"detail_number" "0"
|
||||
"min_pixels" "250"
|
||||
"geometry_scale" "32.0"
|
||||
"light_geometry_scale" "32.0"
|
||||
"ambient_color" "0 0 0"
|
||||
"emergency_ambient_color" "0 0 0"
|
||||
"mapversion" "220"
|
||||
// Brush 0
|
||||
// poly:p[1]
|
||||
{
|
||||
( -32 0 -128 ) ( -32 -128 -128 ) ( 96 0 -128 ) dirty_concrete [ 1.00000 0.00000 0.00000 32.00000 ] [ 0.00000 -1.00000 0.00000 -32.00000 ] 0 1.00000 -1.00000
|
||||
( -32 0 128 ) ( -32 128 128 ) ( 96 0 128 ) stripe_cap [ 1.00000 0.00000 0.00000 32.00000 ] [ 0.00000 1.00000 0.00000 -32.00000 ] 0 1.00000 -1.00000
|
||||
( -32 -32 -32 ) ( -32 -32 96 ) ( 96 -32 -32 ) concrete_topstripe [ -1.00000 0.00000 0.00000 32.00000 ] [ 0.00000 0.00000 1.00000 -128.00000 ] 0 1.00000 -1.00000
|
||||
( -32 32 -32 ) ( -32 32 96 ) ( -160 32 -32 ) concrete_topstripe [ -1.00000 0.00000 0.00000 32.00000 ] [ 0.00000 0.00000 1.00000 -128.00000 ] 0 1.00000 -1.00000
|
||||
( -32 0 -32 ) ( -32 0 96 ) ( -32 -128 -32 ) concrete_topstripe [ 0.00000 1.00000 0.00000 -30.00000 ] [ 0.00000 0.00000 1.00000 -128.00000 ] 0 1.00000 -1.00000
|
||||
( 32 0 -32 ) ( 32 0 96 ) ( 32 128 -32 ) concrete_topstripe [ 0.00000 1.00000 0.00000 32.00000 ] [ 0.00000 0.00000 1.00000 -128.00000 ] 0 1.00000 -1.00000
|
||||
}
|
||||
// Brush 1
|
||||
// poly:p[2]
|
||||
{
|
||||
( -32 -32 -384 ) ( -32 -160 -384 ) ( 96 -32 -384 ) concrete_1 [ 1.00000 0.00000 0.00000 32.00000 ] [ 0.00000 -1.00000 0.00000 32.00000 ] 0 1.00000 -1.00000
|
||||
( -32 -32 -128 ) ( -32 96 -128 ) ( 96 -32 -128 ) concrete_1 [ 1.00000 0.00000 0.00000 32.00000 ] [ 0.00000 1.00000 0.00000 -32.00000 ] 0 1.00000 -1.00000
|
||||
( -32 -32 -192 ) ( -32 -32 -64 ) ( 96 -32 -192 ) concrete_1 [ 1.00000 0.00000 0.00000 32.00000 ] [ 0.00000 0.00000 1.00000 -192.00000 ] 0 1.00000 -1.00000
|
||||
( -32 32 -192 ) ( -32 32 -64 ) ( -160 32 -192 ) concrete_1 [ -1.00000 0.00000 0.00000 -32.00000 ] [ 0.00000 0.00000 1.00000 -192.00000 ] 0 1.00000 -1.00000
|
||||
( -32 -32 -192 ) ( -32 -32 -64 ) ( -32 -160 -192 ) dirty_concrete [ 0.00000 -1.00000 0.00000 -32.00000 ] [ 0.00000 0.00000 1.00000 -192.00000 ] 0 1.00000 -1.00000
|
||||
( 32 -32 -192 ) ( 32 -32 -64 ) ( 32 96 -192 ) concrete_1 [ 0.00000 1.00000 0.00000 32.00000 ] [ 0.00000 0.00000 1.00000 -192.00000 ] 0 1.00000 -1.00000
|
||||
}
|
||||
// Brush 2
|
||||
// lamp:g[3] -> prism, 8 sides:p[1]
|
||||
{
|
||||
( 0 20 432 ) ( 0 20 448 ) ( -16 20 432 ) metal-strip [ 0.00000 0.00000 1.00000 1264.00000 ] [ 1.00000 0.00000 0.00000 -608.12378 ] 0 1.00000 -1.00000
|
||||
( 0 -20 432 ) ( -16 -20 432 ) ( 0 -20 448 ) metal-strip [ 0.00000 0.00000 1.00000 1264.00000 ] [ -1.00000 0.00000 0.00000 608.12378 ] 0 1.00000 -1.00000
|
||||
( -20 0 432 ) ( -20 16 432 ) ( -20 0 448 ) metal-strip [ 0.00000 0.00000 1.00000 1264.00000 ] [ 0.00000 1.00000 0.00000 -1024.00000 ] 0 1.00000 -1.00000
|
||||
( 20 0 432 ) ( 20 0 448 ) ( 20 16 432 ) metal-strip [ 0.00000 0.00000 1.00000 1264.00000 ] [ 0.00000 -1.00000 0.00000 1024.00000 ] 0 1.00000 -1.00000
|
||||
( 0 0 208 ) ( -16 0 208 ) ( 0 16 208 ) metal-strip [ 0.00000 1.00000 0.00000 1024.00000 ] [ -1.00000 0.00000 0.00000 608.12378 ] 0 1.00000 -1.00000
|
||||
( 0 0 192 ) ( 0 16 192 ) ( -16 0 192 ) metal-strip [ 0.00000 -1.00000 0.00000 -1024.00000 ] [ -1.00000 0.00000 0.00000 608.12378 ] 0 1.00000 -1.00000
|
||||
( -51 79 432 ) ( -51 79 448 ) ( -67 95 432 ) metal-strip [ 0.00000 0.00000 1.00000 1264.00000 ] [ 0.00000 -1.00000 0.00000 274.15645 ] 0 1.00000 -0.70711
|
||||
( -102 73 432 ) ( -118 89 432 ) ( -102 73 448 ) metal-strip [ 0.00000 0.00000 1.00000 1264.00000 ] [ 0.00000 1.00000 0.00000 -314.15747 ] 0 1.00000 -0.70711
|
||||
( -26 3 432 ) ( -10 19 432 ) ( -26 3 448 ) metal-strip [ 0.00000 0.00000 1.00000 1264.00000 ] [ 0.00000 1.00000 0.00000 -1133.99845 ] 0 1.00000 -0.70711
|
||||
( 25 -3 432 ) ( 25 -3 448 ) ( 41 13 432 ) metal-strip [ 0.00000 0.00000 1.00000 1264.00000 ] [ 0.00000 -1.00000 0.00000 1173.99870 ] 0 1.00000 -0.70711
|
||||
}
|
||||
// Brush 3
|
||||
// lamp:g[3] -> cone, 8 sides:p[2]
|
||||
{
|
||||
( -8 20 192 ) ( 8 -20 192 ) ( -8 -20 192 ) dirty_concrete [ 1.00000 0.00000 0.00000 67.64004 ] [ 0.00000 -1.00000 0.00000 6.32031 ] 0 1.00000 -1.00000
|
||||
( 11 -23 172 ) ( 35 -16 108 ) ( 16 -35 108 ) dirty_concrete [ 0.00000 -1.00000 0.00000 122.70023 ] [ 0.00000 0.44330 0.89637 22.38959 ] 0 1.00000 -1.26546
|
||||
( -11 23 172 ) ( -35 16 108 ) ( -16 35 108 ) dirty_concrete [ -1.00000 0.00000 0.00000 -10.63065 ] [ -0.21975 0.00000 0.97556 22.38961 ] 0 1.00000 -1.16274
|
||||
( -11 -23 172 ) ( -16 -35 108 ) ( -35 -16 108 ) dirty_concrete [ 0.00000 1.00000 0.00000 10.50684 ] [ 0.00000 -0.21976 0.97555 22.38943 ] 0 1.00000 -1.16274
|
||||
( 11 23 172 ) ( 16 35 108 ) ( 35 16 108 ) dirty_concrete [ 0.00000 1.00000 0.00000 -101.29879 ] [ 0.00000 -0.44330 0.89637 22.38948 ] 0 1.00000 -1.26546
|
||||
( 0 0 128 ) ( 0 128 128 ) ( -128 0 128 ) dirty_concrete [ -1.00000 0.00000 0.00000 -0.12366 ] [ 0.00000 1.00000 0.00000 -0.00015 ] 0 1.00000 -1.00000
|
||||
( 24 -8 172 ) ( 36 13 108 ) ( 36 -3 108 ) dirty_concrete [ 0.00000 1.00000 0.00000 0.00015 ] [ 0.00000 0.00000 1.00000 22.32460 ] 0 1.00000 -1.13497
|
||||
( -24 8 172 ) ( -36 -13 108 ) ( -36 3 108 ) dirty_concrete [ 0.00000 1.00000 0.00000 0.00015 ] [ 0.00000 0.00000 1.00000 22.32456 ] 0 1.00000 -1.13497
|
||||
( -8 -24 172 ) ( 13 -36 108 ) ( -13 -36 108 ) dirty_concrete [ -1.00000 0.00000 0.00000 -0.12366 ] [ 0.00000 0.00000 1.00000 22.32473 ] 0 1.00000 -1.13497
|
||||
( -8 24 172 ) ( -13 36 108 ) ( 13 36 108 ) dirty_concrete [ -1.00000 0.00000 0.00000 -0.12366 ] [ 0.00000 0.00000 1.00000 22.32465 ] 0 1.00000 -1.13497
|
||||
}
|
||||
// Brush 4
|
||||
// lamp:g[3] -> poly:p[3]
|
||||
{
|
||||
( -8 -10 694 ) ( -12 23 210 ) ( -12 7 210 ) red_metal [ 0.00000 -1.00000 0.00000 -18.00003 ] [ 0.00000 0.00000 1.00000 193.95739 ] 0 1.00000 -0.99997
|
||||
( -144 -6 708 ) ( -144 18 720 ) ( -144 6 720 ) red_metal [ 0.00000 1.00000 0.00000 -2.00000 ] [ 0.00000 0.00000 1.00000 624.00000 ] 0 1.00000 -1.00000
|
||||
( -80 5 624 ) ( 48 5 624 ) ( -80 5 752 ) red_metal [ 1.00000 0.00000 0.00000 80.12380 ] [ 0.00000 0.00000 1.00000 624.00000 ] 0 1.00000 -1.00000
|
||||
( -80 -5 624 ) ( -208 -5 624 ) ( -80 -5 752 ) red_metal [ -1.00000 0.00000 0.00000 -80.12380 ] [ 0.00000 0.00000 1.00000 624.00000 ] 0 1.00000 -1.00000
|
||||
( -8 -8 684 ) ( -144 6 720 ) ( -144 18 720 ) red_metal [ 1.00000 0.00000 0.00000 209.14828 ] [ 0.00000 -1.00000 0.00000 -10.00000 ] 0 0.96671 -1.00000
|
||||
( -8 -6 661 ) ( -144 6 708 ) ( -144 -6 708 ) red_metal [ -1.00000 0.00000 0.00000 -84.54818 ] [ 0.00000 -1.00000 0.00000 -2.00000 ] 0 0.94515 -1.00000
|
||||
}
|
||||
// Brush 5
|
||||
// lamp:g[3] -> poly:p[4]
|
||||
{
|
||||
( -8 -10 694 ) ( -12 23 210 ) ( -12 7 210 ) red_metal [ 0.00000 -1.00000 0.00000 -18.00003 ] [ 0.00000 0.00000 1.00000 193.95735 ] 0 1.00000 -0.99997
|
||||
( -152 -6 709 ) ( -144 18 708 ) ( -144 6 708 ) red_metal [ 0.00000 -1.00000 0.00000 10.00000 ] [ -1.00000 0.00000 0.00000 17.24543 ] 0 1.00000 -0.99228
|
||||
( -80 2 580 ) ( 48 2 580 ) ( -80 2 708 ) red_metal [ 1.00000 0.00000 0.00000 80.12382 ] [ 0.00000 0.00000 1.00000 579.99997 ] 0 1.00000 -1.00000
|
||||
( -80 -1 580 ) ( -208 -1 580 ) ( -80 -1 708 ) red_metal [ -1.00000 0.00000 0.00000 -80.12382 ] [ 0.00000 0.00000 1.00000 579.99997 ] 0 1.00000 -1.00000
|
||||
( -8 -1 611 ) ( -144 2 708 ) ( -144 5 708 ) red_metal [ 1.00000 0.00000 0.00000 225.11171 ] [ 0.00000 -1.00000 0.00000 -10.00000 ] 0 0.81414 -1.00000
|
||||
( -8 0 604 ) ( -152 2 709 ) ( -152 -1 709 ) red_metal [ -1.00000 0.00000 0.00000 -95.98527 ] [ 0.00000 -1.00000 0.00000 -2.00000 ] 0 0.80801 -1.00000
|
||||
}
|
||||
// Brush 6
|
||||
// lamp:g[3] -> poly:p[5]
|
||||
{
|
||||
( -272 -6 724 ) ( -144 -6 708 ) ( -144 6 708 ) red_metal [ -1.00000 0.00000 0.00000 -210.27217 ] [ 0.00000 -1.00000 0.00000 -2.00000 ] 0 0.99228 -1.00000
|
||||
( -272 -6 736 ) ( -144 18 720 ) ( -144 6 720 ) red_metal [ 1.00000 0.00000 0.00000 338.27220 ] [ 0.00000 -1.00000 0.00000 -10.00000 ] 0 0.99228 -1.00000
|
||||
( -208 -5 660 ) ( -336 -5 660 ) ( -208 -5 788 ) red_metal [ -1.00000 0.00000 0.00000 -208.12380 ] [ 0.00000 0.00000 1.00000 660.00000 ] 0 1.00000 -1.00000
|
||||
( -208 5 660 ) ( -80 5 660 ) ( -208 5 788 ) red_metal [ 1.00000 0.00000 0.00000 208.12379 ] [ 0.00000 0.00000 1.00000 660.00000 ] 0 1.00000 -1.00000
|
||||
( -144 -6 720 ) ( -144 18 708 ) ( -144 6 708 ) red_metal [ 0.00000 -1.00000 0.00000 2.00000 ] [ 0.00000 0.00000 1.00000 660.00000 ] 0 1.00000 -1.00000
|
||||
( -208 -6 736 ) ( -208 -6 724 ) ( -208 6 724 ) red_metal [ 0.00000 1.00000 0.00000 -2.00000 ] [ 0.00000 0.00000 1.00000 660.00000 ] 0 1.00000 -1.00000
|
||||
}
|
||||
// Brush 7
|
||||
// lamp:g[3] -> prism, 6 sides:p[6]
|
||||
{
|
||||
( 0 -14 210 ) ( -8 -5 694 ) ( 0 -10 694 ) red_metal [ 1.00000 0.00000 0.00000 34.72354 ] [ 0.00358 0.00000 0.99999 193.94215 ] 0 0.86602 -0.99998
|
||||
( 0 10 694 ) ( 0 14 210 ) ( 12 7 210 ) red_metal [ 1.00000 0.00000 0.00000 0.51279 ] [ -0.00358 0.00000 0.99999 193.97938 ] 0 0.86602 -0.99998
|
||||
( 0 -14 210 ) ( 0 -10 694 ) ( 8 -5 694 ) red_metal [ 1.00000 0.00000 0.00000 2.51277 ] [ -0.00358 0.00000 0.99999 193.94209 ] 0 0.86603 -0.99998
|
||||
( 0 10 694 ) ( -12 7 210 ) ( 0 14 210 ) red_metal [ 1.00000 0.00000 0.00000 36.72351 ] [ 0.00358 0.00000 0.99999 193.97935 ] 0 0.86602 -0.99998
|
||||
( 0 -10 696 ) ( 0 10 696 ) ( 8 5 696 ) red_metal [ 0.00000 1.00000 0.00000 -2.00168 ] [ 1.00000 0.00000 0.00000 7.71069 ] 0 1.00000 -1.00000
|
||||
( 0 -14 208 ) ( 12 7 208 ) ( 0 14 208 ) red_metal [ 0.00000 1.00000 0.00000 33.99997 ] [ 1.00000 0.00000 0.00000 -0.12379 ] 0 1.00000 -1.00000
|
||||
( 8 6 694 ) ( 12 -11 210 ) ( 12 -27 210 ) red_metal [ 0.00000 1.00000 0.00000 33.99997 ] [ 0.00000 0.00000 1.00000 193.95735 ] 0 1.00000 -0.99997
|
||||
( -8 -10 694 ) ( -12 7 210 ) ( -12 23 210 ) red_metal [ 0.00000 1.00000 0.00000 1.99997 ] [ 0.00000 0.00000 1.00000 193.95739 ] 0 1.00000 -0.99997
|
||||
}
|
||||
// Brush 8
|
||||
// lamp:g[3] -> prism, 6 sides:p[7]
|
||||
{
|
||||
( 0 -4 712 ) ( 0 -10 696 ) ( -8 -5 696 ) red_metal [ 0.15409 0.00000 0.98806 492.41381 ] [ -1.00000 0.00000 0.00000 1169.01739 ] 0 0.96618 -0.86603
|
||||
( 0 5 712 ) ( 0 10 696 ) ( 8 5 696 ) red_metal [ 1.00000 0.00000 0.00000 930.10208 ] [ -0.12783 0.00000 0.99180 -842.22237 ] 0 0.86603 -0.97635
|
||||
( 0 -4 712 ) ( 8 -5 696 ) ( 0 -10 696 ) red_metal [ -0.15409 0.00000 0.98806 311.37918 ] [ -1.00000 0.00000 0.00000 -115.64324 ] 0 0.96618 -0.86603
|
||||
( 0 5 712 ) ( -8 5 696 ) ( 0 10 696 ) red_metal [ 1.00000 0.00000 0.00000 123.27276 ] [ 0.12783 0.00000 0.99180 -993.98808 ] 0 0.86603 -0.97635
|
||||
( 0 5 702 ) ( 4 -2 702 ) ( 0 -4 702 ) red_metal [ 0.00000 1.00000 0.00000 -1024.00000 ] [ -1.00000 0.00000 0.00000 608.12378 ] 0 1.00000 -1.00000
|
||||
( 0 10 696 ) ( 0 -10 696 ) ( 8 -5 696 ) red_metal [ 0.00000 -1.00000 0.00000 1024.00000 ] [ -1.00000 0.00000 0.00000 608.12378 ] 0 1.00000 -1.00000
|
||||
( 4 4 712 ) ( 8 -5 696 ) ( 8 -13 696 ) red_metal [ 0.00000 0.00000 1.00000 553.46635 ] [ 0.00000 -1.00000 0.00000 -1024.00000 ] 0 0.97014 -1.00000
|
||||
( -4 -2 712 ) ( -8 5 696 ) ( -8 10 696 ) red_metal [ 0.00000 1.00000 0.00000 -1024.00000 ] [ 0.00000 0.00000 1.00000 -848.38957 ] 0 1.00000 -0.97014
|
||||
}
|
||||
// Brush 9
|
||||
// light:g[5] -> poly:p[1]
|
||||
{
|
||||
( -479 28 707 ) ( -303 -25 715 ) ( -303 25 715 ) red_metal [ 1.00000 0.00000 0.00000 301.31283 ] [ 0.00000 -1.00000 0.00000 -17.00000 ] 0 0.99897 -1.00000
|
||||
( -303 20 731 ) ( -479 -23 723 ) ( -479 23 723 ) red_metal [ -1.00000 0.00000 0.00000 -297.10095 ] [ 0.00000 -1.00000 0.00000 -17.00000 ] 0 0.99897 -1.00000
|
||||
( -479 -28 707 ) ( -303 -20 731 ) ( -303 -25 715 ) red_metal [ 1.00000 0.00000 0.00000 301.01010 ] [ 0.00000 0.00000 1.00000 752.24231 ] 0 1.00000 -0.94868
|
||||
( -303 20 731 ) ( -479 23 723 ) ( -479 28 707 ) red_metal [ -1.00000 0.00000 0.00000 -301.00000 ] [ 0.00000 0.00000 1.00000 752.24400 ] 0 1.00000 -0.94868
|
||||
( -479 28 707 ) ( -479 -23 723 ) ( -479 -28 707 ) red_metal [ 0.00000 -1.00000 0.00000 49.00000 ] [ 0.00000 0.00000 1.00000 714.00000 ] 0 1.00000 -1.00000
|
||||
( -303 20 731 ) ( -303 -25 715 ) ( -303 -20 731 ) red_metal [ 0.00000 1.00000 0.00000 -49.00000 ] [ 0.00000 0.00000 1.00000 714.00000 ] 0 1.00000 -1.00000
|
||||
}
|
||||
// Brush 10
|
||||
// light:g[5] -> poly:p[2]
|
||||
{
|
||||
( -276 11 715 ) ( -303 25 715 ) ( -303 -25 715 ) red_metal [ 1.00000 0.00000 0.00000 316.81894 ] [ 0.00000 -1.00000 0.00000 -17.00000 ] 0 1.00000 -1.00000
|
||||
( -276 11 729 ) ( -303 -20 731 ) ( -303 20 731 ) red_metal [ 1.00000 0.00000 0.00000 304.75225 ] [ 0.00000 1.00000 0.00000 17.00000 ] 0 0.99727 -1.00000
|
||||
( -276 -11 715 ) ( -303 -25 715 ) ( -303 -19 731 ) red_metal [ 1.00000 0.00000 0.00000 287.31112 ] [ -0.16132 0.00000 0.98690 700.77003 ] 0 0.88775 -0.95486
|
||||
( -276 11 715 ) ( -303 19 731 ) ( -303 25 715 ) red_metal [ -1.00000 0.00000 0.00000 -159.52497 ] [ -0.16132 0.00000 0.98690 701.11644 ] 0 0.88775 -0.95485
|
||||
( -303 -25 715 ) ( -303 25 715 ) ( -303 19 731 ) red_metal [ 0.00000 -1.00000 0.00000 -15.00000 ] [ 0.00000 0.00000 1.00000 722.00000 ] 0 1.00000 -1.00000
|
||||
( -276 11 715 ) ( -276 -11 715 ) ( -276 -5 729 ) red_metal [ 0.00000 1.00000 0.00000 79.00000 ] [ 0.00000 0.00000 1.00000 722.00009 ] 0 1.00000 -1.00000
|
||||
}
|
||||
// Brush 11
|
||||
// light:g[5] -> poly:p[3]
|
||||
{
|
||||
( -279 -11 711 ) ( -303 19 707 ) ( -303 -3 707 ) red_metal [ 1.00000 0.00000 0.00000 368.31692 ] [ 0.00000 -1.00000 0.00000 -68.00000 ] 0 0.98639 -1.00000
|
||||
( -276 -11 715 ) ( -303 -25 715 ) ( -303 25 715 ) red_metal [ 1.00000 0.00000 0.00000 293.39360 ] [ 0.00000 1.00000 0.00000 -63.00000 ] 0 1.00000 -1.00000
|
||||
( -276 -11 715 ) ( -303 -19 707 ) ( -303 -25 715 ) red_metal [ 1.00000 0.00000 0.00000 602.18430 ] [ 0.29303 0.00000 0.95610 850.22845 ] 0 0.88775 -0.87059
|
||||
( -276 11 715 ) ( -303 25 715 ) ( -303 19 707 ) red_metal [ -1.00000 0.00000 0.00000 -602.18431 ] [ 0.29303 0.00000 0.95610 850.22845 ] 0 0.88775 -0.87059
|
||||
( -303 25 706 ) ( -303 -25 715 ) ( -303 -25 706 ) red_metal [ 0.00000 -1.00000 0.00000 113.00000 ] [ 0.00000 0.00000 1.00000 674.00000 ] 0 1.00000 -1.00000
|
||||
( -276 -11 715 ) ( -276 11 715 ) ( -279 10 711 ) red_metal [ 0.00000 1.00000 0.00000 15.00000 ] [ 0.00000 0.00000 1.00000 884.75000 ] 0 1.00000 -0.80000
|
||||
}
|
||||
// Brush 12
|
||||
// light:g[5] -> poly:p[4]
|
||||
{
|
||||
( -479 -28 707 ) ( -479 28 707 ) ( -495 16 707 ) red_metal [ 1.00000 0.00000 0.00000 476.99992 ] [ 0.00000 -1.00000 0.00000 -113.00000 ] 0 1.00000 -1.00000
|
||||
( -479 -23 723 ) ( -493 15 714 ) ( -479 22 723 ) red_metal [ -1.00000 0.00000 0.00000 -563.22734 ] [ 0.00000 -1.00000 0.00000 -69.00000 ] 0 0.84118 -1.00000
|
||||
( -479 -28 707 ) ( -495 -16 707 ) ( -493 -15 714 ) red_metal [ 1.00000 0.00000 0.00000 759.31097 ] [ 0.17715 0.00000 0.98418 736.73266 ] 0 0.80000 -0.97322
|
||||
( -495 16 707 ) ( -479 28 707 ) ( -479 22 723 ) red_metal [ -1.00000 0.00000 0.00000 -759.42501 ] [ 0.17715 0.00000 0.98418 736.74621 ] 0 0.80000 -0.97322
|
||||
( -495 -16 707 ) ( -495 16 707 ) ( -493 15 714 ) red_metal [ 0.00000 -1.00000 0.00000 49.00000 ] [ 0.00000 0.00000 1.00000 734.29110 ] 0 1.00000 -0.96152
|
||||
( -479 -28 707 ) ( -479 22 723 ) ( -479 28 707 ) red_metal [ 0.00000 1.00000 0.00000 -49.00000 ] [ 0.00000 0.00000 1.00000 642.00000 ] 0 1.00000 -1.00000
|
||||
}
|
||||
// Brush 13
|
||||
// light:g[5] -> poly:p[5]
|
||||
{
|
||||
( -490 -15 700 ) ( -479 -15 698 ) ( -479 15 698 ) red_metal [ -1.00000 0.00000 0.00000 -486.91469 ] [ 0.00000 1.00000 0.00000 23.00000 ] 0 0.98387 -1.00000
|
||||
( -495 -16 707 ) ( -495 16 707 ) ( -479 28 707 ) red_metal [ 1.00000 0.00000 0.00000 485.21189 ] [ 0.00000 1.00000 0.00000 -15.00000 ] 0 1.00000 -1.00000
|
||||
( -495 -16 707 ) ( -479 -28 707 ) ( -479 -15 698 ) red_metal [ 0.80000 -0.60000 0.00000 372.20001 ] [ -0.60000 -0.80000 0.00000 394.75480 ] 0 1.00000 -0.75617
|
||||
( -495 16 707 ) ( -479 15 698 ) ( -479 28 707 ) red_metal [ -0.80000 -0.60000 0.00000 -372.19999 ] [ -0.60000 0.80000 0.00000 394.75480 ] 0 1.00000 -0.75617
|
||||
( -495 -16 707 ) ( -490 10 700 ) ( -495 16 707 ) red_metal [ 0.00000 -1.00000 0.00000 49.00000 ] [ 0.00000 0.00000 1.00000 851.83485 ] 0 1.00000 -0.81373
|
||||
( -479 -79 698 ) ( -479 49 707 ) ( -479 177 707 ) red_metal [ 0.00000 1.00000 0.00000 -113.00000 ] [ 0.00000 0.00000 1.00000 690.00000 ] 0 1.00000 -1.00000
|
||||
}
|
||||
// Brush 14
|
||||
// light:g[5] -> poly:p[6]
|
||||
{
|
||||
( -272 -6 716 ) ( -208 -6 716 ) ( -208 6 716 ) red_metal [ -1.00000 0.00000 0.00000 -17.15054 ] [ 0.00000 -1.00000 0.00000 -2.00000 ] 0 1.00000 -1.00000
|
||||
( -272 -6 728 ) ( -208 18 728 ) ( -208 6 728 ) red_metal [ -1.00000 0.00000 0.00000 -15.09702 ] [ 0.00000 1.00000 0.00000 2.00000 ] 0 1.00000 -1.00000
|
||||
( -272 -5 668 ) ( -400 -5 668 ) ( -272 -5 796 ) red_metal [ -1.00000 0.00000 0.00000 -272.12380 ] [ 0.00000 0.00000 1.00000 668.00000 ] 0 1.00000 -1.00000
|
||||
( -272 5 668 ) ( -144 5 668 ) ( -272 5 796 ) red_metal [ 1.00000 0.00000 0.00000 272.12379 ] [ 0.00000 0.00000 1.00000 668.00000 ] 0 1.00000 -1.00000
|
||||
( -208 -6 728 ) ( -208 18 716 ) ( -208 6 716 ) red_metal [ 0.00000 -1.00000 0.00000 2.00000 ] [ 0.00000 0.00000 1.00000 668.00000 ] 0 1.00000 -1.00000
|
||||
( -276 -6 728 ) ( -276 -6 716 ) ( -276 6 716 ) red_metal [ 0.00000 1.00000 0.00000 -2.00000 ] [ 0.00000 0.00000 1.00000 668.00000 ] 0 1.00000 -1.00000
|
||||
}
|
||||
// Brush 15
|
||||
// poly:p[6]
|
||||
{
|
||||
( -303 -1 708 ) ( -479 15 699 ) ( -479 13 699 ) light2 [ 0.00000 1.00000 0.00000 32.00000 ] [ 1.00000 0.00000 0.00000 -348.36363 ] 0 0.46875 -1.37500
|
||||
( -303 -25 715 ) ( -479 -27 707 ) ( -479 27 707 ) light2 [ -1.00000 0.00000 0.00000 -303.31286 ] [ 0.00000 -1.00000 0.00000 -27.00000 ] 0 0.99897 -1.00000
|
||||
( -303 -25 715 ) ( -479 -15 699 ) ( -479 -27 707 ) light2 [ 0.02548 0.99968 0.00000 126.67421 ] [ 0.99998 0.00678 0.00000 -347.58210 ] 0 0.18759 -1.37726
|
||||
( -303 25 715 ) ( -479 27 707 ) ( -479 15 699 ) light2 [ -0.02548 0.99968 0.00000 -62.67422 ] [ -0.99998 0.00678 0.00000 219.58211 ] 0 0.18759 -1.37726
|
||||
( -479 1 684 ) ( -479 1 812 ) ( -479 -127 684 ) light2 [ 0.00000 -1.00000 0.00000 33.75000 ] [ 0.00000 0.00000 1.00000 873.74999 ] 0 0.80000 -0.80000
|
||||
( -303 -1 708 ) ( -303 25 715 ) ( -303 27 715 ) light2 [ 0.00000 1.00000 0.00000 25.00000 ] [ 0.00000 0.00000 1.00000 708.00000 ] 0 1.00000 -1.00000
|
||||
}
|
||||
}
|
||||
// Entity 1
|
||||
// light_omni:e[4]
|
||||
{
|
||||
"classname" "light_omni"
|
||||
"origin" "-399 0 696"
|
||||
"color" "255 255 240"
|
||||
"alarm_type" "0"
|
||||
"falloff1" "100"
|
||||
"falloff2" "1250"
|
||||
}
|
||||
|
After Width: | Height: | Size: 2.0 KiB |
|
After Width: | Height: | Size: 923 B |
|
After Width: | Height: | Size: 7.8 KiB |
|
After Width: | Height: | Size: 13 KiB |
|
After Width: | Height: | Size: 1.8 KiB |
BIN
Torque/SDK/example/starter.racing/data/interiors/racing/road.jpg
Normal file
|
After Width: | Height: | Size: 22 KiB |
|
After Width: | Height: | Size: 62 KiB |
|
After Width: | Height: | Size: 18 KiB |
|
After Width: | Height: | Size: 3.3 KiB |
@@ -0,0 +1,746 @@
|
||||
// This map has been written by QuArK - Quake Army Knife, QuArK 6.3
|
||||
// It is a map for the game Torque.
|
||||
// For more information see QuArK's Home Page : http://www.planetquake.com/quark
|
||||
|
||||
// Entity 0
|
||||
// worldspawn
|
||||
{
|
||||
"classname" "worldspawn"
|
||||
"detail_number" "0"
|
||||
"min_pixels" "250"
|
||||
"geometry_scale" "32.0"
|
||||
"light_geometry_scale" "32.0"
|
||||
"ambient_color" "0 0 0"
|
||||
"emergency_ambient_color" "0 0 0"
|
||||
"mapversion" "220"
|
||||
// Brush 0
|
||||
// Map structure:g[1] -> poly:p[1]
|
||||
{
|
||||
( -366 -4 672 ) ( -622 252 672 ) ( -366 -4 928 ) paintedwood [ 0.00000 -1.00000 0.00000 106.38029 ] [ 0.00000 -0.06175 0.99809 1349.13383 ] 0 0.35355 -0.49905
|
||||
( 366 4 672 ) ( 366 4 928 ) ( 110 260 672 ) paintedwood [ 0.00000 1.00000 0.00000 106.27117 ] [ 0.00000 0.06175 0.99809 1349.13383 ] 0 0.35355 -0.49905
|
||||
( 1582 1212 672 ) ( 1582 1212 928 ) ( 1838 1468 672 ) paintedwood [ 0.00000 1.00000 0.00000 -3310.46886 ] [ 0.00000 0.06175 0.99809 1349.13383 ] 0 0.35355 -0.49905
|
||||
( 850 1220 672 ) ( 1106 1476 672 ) ( 850 1220 928 ) paintedwood [ 0.00000 -1.00000 0.00000 3568.26582 ] [ 0.00000 -0.06175 0.99809 1349.13383 ] 0 0.35355 -0.49905
|
||||
( 0 0 888 ) ( 256 0 888 ) ( 0 256 888 ) paintedwood [ 1.00000 0.00000 0.00000 0.00000 ] [ 0.08716 -0.99619 0.00000 0.00000 ] 0 0.50000 -0.50000
|
||||
( 0 0 928 ) ( 0 256 928 ) ( 256 0 928 ) paintedwood [ 1.00000 0.00000 0.00000 0.00000 ] [ 0.08716 0.99619 0.00000 0.00000 ] 0 0.50000 -0.50000
|
||||
( -264 0 672 ) ( -264 256 672 ) ( -264 0 928 ) paintedwood [ 0.00000 -1.00000 0.00000 117.58476 ] [ 0.00000 -0.08716 0.99619 1349.13383 ] 0 0.50000 -0.50000
|
||||
( 264 0 672 ) ( 264 0 928 ) ( 264 256 672 ) paintedwood [ 0.00000 1.00000 0.00000 117.58476 ] [ 0.00000 0.08716 0.99619 1349.13383 ] 0 0.50000 -0.50000
|
||||
( 0 -264 672 ) ( 0 -264 928 ) ( 256 -264 672 ) paintedwood [ 1.00000 0.00000 0.00000 117.58476 ] [ 0.08716 0.00000 0.99619 1349.13383 ] 0 0.50000 -0.50000
|
||||
( 0 264 672 ) ( 256 264 672 ) ( 0 264 928 ) paintedwood [ -1.00000 0.00000 0.00000 117.58476 ] [ -0.08716 0.00000 0.99619 1349.13383 ] 0 0.50000 -0.50000
|
||||
}
|
||||
// Brush 1
|
||||
// Map structure:g[1] -> poly:p[2]
|
||||
{
|
||||
( -362 0 888 ) ( -618 256 888 ) ( -362 0 1144 ) paintedwood [ 0.00000 -1.00000 0.00000 155.48910 ] [ 0.00000 -0.06175 0.99809 1782.78399 ] 0 0.35355 -0.49905
|
||||
( 362 0 888 ) ( 362 0 1144 ) ( 106 256 888 ) paintedwood [ 0.00000 1.00000 0.00000 155.37998 ] [ 0.00000 0.06175 0.99809 1782.78399 ] 0 0.35355 -0.49905
|
||||
( 1578 1216 888 ) ( 1578 1216 1144 ) ( 1834 1472 888 ) paintedwood [ 0.00000 1.00000 0.00000 -3283.98746 ] [ 0.00000 0.06175 0.99809 1782.78399 ] 0 0.35355 -0.49905
|
||||
( 854 1216 888 ) ( 1110 1472 888 ) ( 854 1216 1144 ) paintedwood [ 0.00000 -1.00000 0.00000 3594.74721 ] [ 0.00000 -0.06175 0.99809 1782.78399 ] 0 0.35355 -0.49905
|
||||
( 0 0 1104 ) ( 256 0 1104 ) ( 0 256 1104 ) paintedwood [ 1.00000 0.00000 0.00000 0.00000 ] [ 0.08716 -0.99619 0.00000 0.00000 ] 0 0.50000 -0.50000
|
||||
( 0 0 1144 ) ( 0 256 1144 ) ( 256 0 1144 ) paintedwood [ 1.00000 0.00000 0.00000 0.00000 ] [ 0.08716 0.99619 0.00000 0.00000 ] 0 0.50000 -0.50000
|
||||
( -256 0 888 ) ( -256 256 888 ) ( -256 0 1144 ) paintedwood [ 0.00000 -1.00000 0.00000 155.37987 ] [ 0.00000 -0.08716 0.99619 1782.78399 ] 0 0.50000 -0.50000
|
||||
( 256 0 888 ) ( 256 0 1144 ) ( 256 256 888 ) paintedwood [ 0.00000 1.00000 0.00000 155.37987 ] [ 0.00000 0.08716 0.99619 1782.78399 ] 0 0.50000 -0.50000
|
||||
( 0 -256 888 ) ( 0 -256 1144 ) ( 256 -256 888 ) paintedwood [ 1.00000 0.00000 0.00000 155.37987 ] [ 0.08716 0.00000 0.99619 1782.78399 ] 0 0.50000 -0.50000
|
||||
( 0 256 888 ) ( 256 256 888 ) ( 0 256 1144 ) paintedwood [ -1.00000 0.00000 0.00000 155.37987 ] [ -0.08716 0.00000 0.99619 1782.78399 ] 0 0.50000 -0.50000
|
||||
}
|
||||
// Brush 2
|
||||
// Map structure:g[1] -> poly:p[3]
|
||||
{
|
||||
( -208 0 864 ) ( -80 0 864 ) ( -208 128 864 ) dirty_concrete [ -1.00000 0.00000 0.00000 -208.00000 ] [ 0.00000 1.00000 0.00000 0.00000 ] 0 1.00000 -1.00000
|
||||
( -79 189 774 ) ( 79 189 774 ) ( 107 255 888 ) dirty_concrete [ -1.00000 0.00000 0.00000 -0.00076 ] [ 0.00000 0.00000 1.00000 811.77357 ] 0 1.00000 -0.86524
|
||||
( 79 -189 774 ) ( -79 -189 774 ) ( -107 -255 888 ) dirty_concrete [ 1.00000 0.00000 0.00000 -0.00086 ] [ 0.00000 0.00000 1.00000 811.77360 ] 0 1.00000 -0.86524
|
||||
( 189 79 774 ) ( 189 -79 774 ) ( 255 -107 888 ) dirty_concrete [ 0.00000 1.00000 0.00000 255.99960 ] [ 0.00000 0.00000 1.00000 811.77360 ] 0 1.00000 -0.86524
|
||||
( -189 -79 774 ) ( -189 79 774 ) ( -255 107 888 ) dirty_concrete [ 0.00000 -1.00000 0.00000 -0.00121 ] [ 0.00000 0.00000 1.00000 811.77360 ] 0 1.00000 -0.86524
|
||||
( -79 189 774 ) ( -255 107 888 ) ( -189 79 774 ) dirty_concrete [ 0.00000 -1.00000 0.00000 35.09493 ] [ 0.00000 0.38041 0.92482 812.77365 ] 0 0.70711 -0.93466
|
||||
( 189 -79 774 ) ( 79 -189 774 ) ( 107 -255 888 ) dirty_concrete [ 0.00000 1.00000 0.00000 -199.41848 ] [ 0.00000 -0.38041 0.92482 812.77156 ] 0 0.70711 -0.93465
|
||||
( 79 189 774 ) ( 189 79 774 ) ( 255 107 888 ) dirty_concrete [ 0.00000 1.00000 0.00000 322.07683 ] [ 0.00000 0.38041 0.92482 812.77185 ] 0 0.70711 -0.93466
|
||||
( -79 -189 774 ) ( -189 -79 774 ) ( -255 -107 888 ) dirty_concrete [ 0.00000 -1.00000 0.00000 120.65477 ] [ 0.00000 -0.38041 0.92482 812.77216 ] 0 0.70711 -0.93466
|
||||
( 0 0 888 ) ( 0 256 888 ) ( 256 0 888 ) dirty_concrete [ -1.00000 0.00000 0.00000 0.00000 ] [ 0.00000 1.00000 0.00000 0.00000 ] 0 2.00000 -2.00000
|
||||
}
|
||||
// Brush 3
|
||||
// Map structure:g[1] -> poly:p[4]
|
||||
{
|
||||
( 32 -208 784 ) ( -96 -208 784 ) ( 32 -208 912 ) dirty_concrete [ 1.00000 0.00000 0.00000 -32.00000 ] [ 0.00000 0.00000 1.00000 784.00001 ] 0 1.00000 -1.00000
|
||||
( -208 0 864 ) ( -208 128 864 ) ( -80 0 864 ) dirty_concrete [ 1.00000 0.00000 0.00000 208.00000 ] [ 0.00000 1.00000 0.00000 0.00000 ] 0 1.00000 -1.00000
|
||||
( -79 189 774 ) ( -79 -189 774 ) ( 79 -189 774 ) dirty_concrete [ -1.00000 0.00000 0.00000 -51.00000 ] [ 0.00000 1.00000 0.00000 -172.00000 ] 0 1.00000 -1.00000
|
||||
( 79 -189 774 ) ( -79 -189 774 ) ( -107 -255 888 ) dirty_concrete [ 1.00000 0.00000 0.00000 -0.00086 ] [ 0.00000 0.00000 1.00000 811.77361 ] 0 1.00000 -0.86524
|
||||
( 189 79 774 ) ( 189 -79 774 ) ( 255 -107 888 ) dirty_concrete [ 0.00000 1.00000 0.00000 255.99960 ] [ 0.00000 0.00000 1.00000 811.77361 ] 0 1.00000 -0.86524
|
||||
( -189 -79 774 ) ( -189 79 774 ) ( -255 107 888 ) dirty_concrete [ 0.00000 -1.00000 0.00000 -0.00121 ] [ 0.00000 0.00000 1.00000 811.77361 ] 0 1.00000 -0.86524
|
||||
( 189 -79 774 ) ( 79 -189 774 ) ( 107 -255 888 ) dirty_concrete [ 0.00000 1.00000 0.00000 -199.41848 ] [ 0.00000 -0.38041 0.92482 812.77157 ] 0 0.70711 -0.93465
|
||||
( -79 -189 774 ) ( -189 -79 774 ) ( -255 -107 888 ) dirty_concrete [ 0.00000 -1.00000 0.00000 120.65477 ] [ 0.00000 -0.38041 0.92482 812.77217 ] 0 0.70711 -0.93466
|
||||
( -208 -32 784 ) ( -80 -32 784 ) ( -208 -32 912 ) dirty_concrete [ -1.00000 0.00000 0.00000 -208.00000 ] [ 0.00000 0.00000 1.00000 784.00001 ] 0 1.00000 -1.00000
|
||||
}
|
||||
// Brush 4
|
||||
// Map structure:g[1] -> poly:p[5]
|
||||
{
|
||||
( -32 -240 784 ) ( -32 -368 784 ) ( -32 -240 912 ) concrete_1 [ 0.00000 1.00000 0.00000 240.00000 ] [ 0.00000 0.00000 1.00000 784.00000 ] 0 1.00000 -1.00000
|
||||
( -79 -189 774 ) ( -189 -79 774 ) ( -255 -107 888 ) concrete_1 [ 0.00000 -1.00000 0.00000 120.65477 ] [ 0.00000 -0.38041 0.92482 812.77216 ] 0 0.70711 -0.93466
|
||||
( 79 -189 774 ) ( -79 -189 774 ) ( -107 -255 888 ) concrete_1 [ 1.00000 0.00000 0.00000 -0.00086 ] [ 0.00000 0.00000 1.00000 811.77360 ] 0 1.00000 -0.86524
|
||||
( -208 0 864 ) ( -208 128 864 ) ( -80 0 864 ) concrete_1 [ 1.00000 0.00000 0.00000 208.00000 ] [ 0.00000 1.00000 0.00000 0.00000 ] 0 1.00000 -1.00000
|
||||
( 32 -208 784 ) ( 32 -208 912 ) ( -96 -208 784 ) concrete_1 [ -1.00000 0.00000 0.00000 32.00000 ] [ 0.00000 0.00000 1.00000 784.00000 ] 0 1.00000 -1.00000
|
||||
}
|
||||
// Brush 5
|
||||
// Map structure:g[1] -> poly:p[6]
|
||||
{
|
||||
( 32 -240 784 ) ( 32 -112 784 ) ( 32 -240 912 ) concrete_1 [ 0.00000 -1.00000 0.00000 -240.00000 ] [ 0.00000 0.00000 1.00000 784.00000 ] 0 1.00000 -1.00000
|
||||
( 32 -208 784 ) ( 32 -208 912 ) ( -96 -208 784 ) concrete_1 [ -1.00000 0.00000 0.00000 32.00000 ] [ 0.00000 0.00000 1.00000 784.00000 ] 0 1.00000 -1.00000
|
||||
( -208 0 864 ) ( -208 128 864 ) ( -80 0 864 ) concrete_1 [ 1.00000 0.00000 0.00000 208.00000 ] [ 0.00000 1.00000 0.00000 0.00000 ] 0 1.00000 -1.00000
|
||||
( 79 -189 774 ) ( -79 -189 774 ) ( -107 -255 888 ) concrete_1 [ 1.00000 0.00000 0.00000 -0.00086 ] [ 0.00000 0.00000 1.00000 811.77360 ] 0 1.00000 -0.86524
|
||||
( 189 -79 774 ) ( 79 -189 774 ) ( 107 -255 888 ) concrete_1 [ 0.00000 1.00000 0.00000 -199.41848 ] [ 0.00000 -0.38041 0.92482 812.77156 ] 0 0.70711 -0.93465
|
||||
}
|
||||
// Brush 6
|
||||
// Map structure:g[1] -> poly:p[7]
|
||||
{
|
||||
( 32 208 784 ) ( 160 208 784 ) ( 32 208 912 ) dirty_concrete [ -1.00000 0.00000 0.00000 32.00000 ] [ 0.00000 0.00000 1.00000 784.00001 ] 0 1.00000 -1.00000
|
||||
( 79 189 774 ) ( 189 79 774 ) ( 255 107 888 ) dirty_concrete [ 0.00000 1.00000 0.00000 322.07683 ] [ 0.00000 0.38041 0.92482 812.77187 ] 0 0.70711 -0.93465
|
||||
( -79 189 774 ) ( -255 107 888 ) ( -189 79 774 ) dirty_concrete [ 0.00000 -1.00000 0.00000 35.09493 ] [ 0.00000 0.38041 0.92482 812.77367 ] 0 0.70711 -0.93465
|
||||
( -189 -79 774 ) ( -189 79 774 ) ( -255 107 888 ) dirty_concrete [ 0.00000 -1.00000 0.00000 -0.00121 ] [ 0.00000 0.00000 1.00000 811.77361 ] 0 1.00000 -0.86524
|
||||
( 189 79 774 ) ( 189 -79 774 ) ( 255 -107 888 ) dirty_concrete [ 0.00000 1.00000 0.00000 255.99960 ] [ 0.00000 0.00000 1.00000 811.77361 ] 0 1.00000 -0.86524
|
||||
( -79 189 774 ) ( 79 189 774 ) ( 107 255 888 ) dirty_concrete [ -1.00000 0.00000 0.00000 -0.00076 ] [ 0.00000 0.00000 1.00000 811.77359 ] 0 1.00000 -0.86524
|
||||
( -79 189 774 ) ( -79 -189 774 ) ( 79 -189 774 ) dirty_concrete [ -1.00000 0.00000 0.00000 -51.00000 ] [ 0.00000 1.00000 0.00000 -172.00000 ] 0 1.00000 -1.00000
|
||||
( -208 0 864 ) ( -208 128 864 ) ( -80 0 864 ) dirty_concrete [ 1.00000 0.00000 0.00000 208.00000 ] [ 0.00000 1.00000 0.00000 0.00000 ] 0 1.00000 -1.00000
|
||||
( -208 32 784 ) ( -336 32 784 ) ( -208 32 912 ) dirty_concrete [ 1.00000 0.00000 0.00000 208.00000 ] [ 0.00000 0.00000 1.00000 784.00001 ] 0 1.00000 -1.00000
|
||||
}
|
||||
// Brush 7
|
||||
// Map structure:g[1] -> poly:p[8]
|
||||
{
|
||||
( -32 240 784 ) ( -32 112 784 ) ( -32 240 912 ) concrete_1 [ 0.00000 1.00000 0.00000 -240.00000 ] [ 0.00000 0.00000 1.00000 784.00000 ] 0 1.00000 -1.00000
|
||||
( -208 0 864 ) ( -208 128 864 ) ( -80 0 864 ) concrete_1 [ 1.00000 0.00000 0.00000 208.00000 ] [ 0.00000 1.00000 0.00000 0.00000 ] 0 1.00000 -1.00000
|
||||
( -79 189 774 ) ( 79 189 774 ) ( 107 255 888 ) concrete_1 [ -1.00000 0.00000 0.00000 -0.00076 ] [ 0.00000 0.00000 1.00000 811.77357 ] 0 1.00000 -0.86524
|
||||
( -79 189 774 ) ( -255 107 888 ) ( -189 79 774 ) concrete_1 [ 0.00000 -1.00000 0.00000 35.09493 ] [ 0.00000 0.38041 0.92482 812.77365 ] 0 0.70711 -0.93466
|
||||
( 32 208 784 ) ( 32 208 912 ) ( 160 208 784 ) concrete_1 [ 1.00000 0.00000 0.00000 -32.00000 ] [ 0.00000 0.00000 1.00000 784.00000 ] 0 1.00000 -1.00000
|
||||
}
|
||||
// Brush 8
|
||||
// Map structure:g[1] -> poly:p[9]
|
||||
{
|
||||
( 32 240 784 ) ( 32 368 784 ) ( 32 240 912 ) concrete_1 [ 0.00000 -1.00000 0.00000 240.00000 ] [ 0.00000 0.00000 1.00000 784.00000 ] 0 1.00000 -1.00000
|
||||
( 32 208 784 ) ( 32 208 912 ) ( 160 208 784 ) concrete_1 [ 1.00000 0.00000 0.00000 -32.00000 ] [ 0.00000 0.00000 1.00000 784.00000 ] 0 1.00000 -1.00000
|
||||
( 79 189 774 ) ( 189 79 774 ) ( 255 107 888 ) concrete_1 [ 0.00000 1.00000 0.00000 322.07683 ] [ 0.00000 0.38041 0.92482 812.77185 ] 0 0.70711 -0.93466
|
||||
( -79 189 774 ) ( 79 189 774 ) ( 107 255 888 ) concrete_1 [ -1.00000 0.00000 0.00000 -0.00076 ] [ 0.00000 0.00000 1.00000 811.77357 ] 0 1.00000 -0.86524
|
||||
( -208 0 864 ) ( -208 128 864 ) ( -80 0 864 ) concrete_1 [ 1.00000 0.00000 0.00000 208.00000 ] [ 0.00000 1.00000 0.00000 0.00000 ] 0 1.00000 -1.00000
|
||||
}
|
||||
// Brush 9
|
||||
// Map structure:g[1] -> poly:p[10]
|
||||
{
|
||||
( 208 0 784 ) ( 208 -128 784 ) ( 208 0 912 ) dirty_concrete [ 0.00000 1.00000 0.00000 0.00000 ] [ 0.00000 0.00000 1.00000 784.00000 ] 0 1.00000 -1.00000
|
||||
( -208 32 784 ) ( -208 32 912 ) ( -336 32 784 ) dirty_concrete [ -1.00000 0.00000 0.00000 -208.00000 ] [ 0.00000 0.00000 1.00000 784.00000 ] 0 1.00000 -1.00000
|
||||
( -208 0 864 ) ( -208 128 864 ) ( -80 0 864 ) dirty_concrete [ 1.00000 0.00000 0.00000 208.00000 ] [ 0.00000 1.00000 0.00000 0.00000 ] 0 1.00000 -1.00000
|
||||
( -79 189 774 ) ( -79 -189 774 ) ( 79 -189 774 ) dirty_concrete [ -1.00000 0.00000 0.00000 -51.00000 ] [ 0.00000 1.00000 0.00000 -172.00000 ] 0 1.00000 -1.00000
|
||||
( 189 79 774 ) ( 189 -79 774 ) ( 255 -107 888 ) dirty_concrete [ 0.00000 1.00000 0.00000 255.99960 ] [ 0.00000 0.00000 1.00000 811.77360 ] 0 1.00000 -0.86524
|
||||
( -189 -79 774 ) ( -189 79 774 ) ( -255 107 888 ) dirty_concrete [ 0.00000 -1.00000 0.00000 -0.00121 ] [ 0.00000 0.00000 1.00000 811.77360 ] 0 1.00000 -0.86524
|
||||
( -208 -32 784 ) ( -208 -32 912 ) ( -80 -32 784 ) dirty_concrete [ 1.00000 0.00000 0.00000 208.00000 ] [ 0.00000 0.00000 1.00000 784.00000 ] 0 1.00000 -1.00000
|
||||
( -208 0 784 ) ( -208 128 784 ) ( -208 0 912 ) dirty_concrete [ 0.00000 -1.00000 0.00000 0.00000 ] [ 0.00000 0.00000 1.00000 784.00000 ] 0 1.00000 -1.00000
|
||||
}
|
||||
// Brush 10
|
||||
// Map structure:g[1] -> poly:p[11]
|
||||
{
|
||||
( 106 254 107 ) ( -254 -106 107 ) ( -106 -254 107 ) dirty_concrete [ 1.00000 0.00000 0.00000 0.00000 ] [ 0.00000 -1.00000 0.00000 0.00000 ] 0 1.00000 -1.00000
|
||||
( -189 -79 221 ) ( -79 -189 221 ) ( -108 -254 107 ) dirty_concrete [ 0.00000 -1.00000 0.00000 -202.09052 ] [ 0.00000 0.38028 0.92487 82.40855 ] 0 0.70711 -0.93470
|
||||
( 189 79 221 ) ( 79 189 221 ) ( 108 254 107 ) dirty_concrete [ 0.00000 1.00000 0.00000 -256.67237 ] [ 0.00000 -0.38028 0.92487 82.40883 ] 0 0.70711 -0.93470
|
||||
( 79 -189 221 ) ( 189 -79 221 ) ( 254 -108 107 ) dirty_concrete [ 0.00000 1.00000 0.00000 379.35618 ] [ 0.00000 0.38028 0.92487 82.40913 ] 0 0.70711 -0.93470
|
||||
( -79 189 221 ) ( -189 79 221 ) ( -254 108 107 ) dirty_concrete [ 0.00000 -1.00000 0.00000 613.85273 ] [ 0.00000 -0.38028 0.92487 82.40590 ] 0 0.70711 -0.93470
|
||||
( -189 79 221 ) ( -189 -79 221 ) ( -254 -108 107 ) dirty_concrete [ 0.00000 -1.00000 0.00000 255.99960 ] [ 0.00000 0.00000 1.00000 81.46709 ] 0 1.00000 -0.86871
|
||||
( 189 -79 221 ) ( 189 79 221 ) ( 254 108 107 ) dirty_concrete [ 0.00000 1.00000 0.00000 256.00040 ] [ 0.00000 0.00000 1.00000 81.46705 ] 0 1.00000 -0.86871
|
||||
( -79 -189 221 ) ( 79 -189 221 ) ( 108 -254 107 ) dirty_concrete [ 1.00000 0.00000 0.00000 255.99998 ] [ 0.00000 0.00000 1.00000 81.46709 ] 0 1.00000 -0.86871
|
||||
( -79 189 221 ) ( 108 254 107 ) ( 79 189 221 ) dirty_concrete [ -1.00000 0.00000 0.00000 0.00006 ] [ 0.00000 0.00000 1.00000 81.46709 ] 0 1.00000 -0.86871
|
||||
( -79 189 221 ) ( 189 -79 221 ) ( 79 -189 221 ) dirty_concrete [ 1.00000 0.00000 0.00000 51.00000 ] [ 0.00000 1.00000 0.00000 -172.00000 ] 0 1.00000 -1.00000
|
||||
}
|
||||
// Brush 11
|
||||
// Map structure:g[1] -> poly:p[12]
|
||||
{
|
||||
( -256 90 1104 ) ( -256 218 1104 ) ( -128 90 1104 ) paintedwood [ 1.00000 0.00000 0.00000 527.74799 ] [ 0.08716 0.99619 0.00000 180.68757 ] 0 0.50000 -0.50000
|
||||
( -240 90 1104 ) ( -240 90 1232 ) ( -240 218 1104 ) paintedwood [ 0.00000 1.00000 0.00000 13.17497 ] [ 0.00000 0.08716 0.99619 2216.43415 ] 0 0.50000 -0.50000
|
||||
( -240 90 928 ) ( -240 -38 928 ) ( -112 90 928 ) paintedwood [ 1.00000 0.00000 0.00000 464.25204 ] [ 0.08716 -0.99619 0.00000 -180.68757 ] 0 0.50000 -0.50000
|
||||
( -256 90 992 ) ( -256 90 1120 ) ( -256 -38 992 ) paintedwood [ 0.00000 -1.00000 0.00000 353.57751 ] [ 0.00000 -0.08716 0.99619 1991.57851 ] 0 0.50000 -0.50000
|
||||
( -256 90 1104 ) ( -256 90 1232 ) ( -128 90 1104 ) paintedwood [ 1.00000 0.00000 0.00000 705.17500 ] [ 0.08716 0.00000 0.99619 2216.43415 ] 0 0.50000 -0.50000
|
||||
( -256 106 1104 ) ( -256 106 1232 ) ( -384 106 1104 ) paintedwood [ -1.00000 0.00000 0.00000 -318.82506 ] [ -0.08716 0.00000 0.99619 2216.43415 ] 0 0.50000 -0.50000
|
||||
}
|
||||
// Brush 12
|
||||
// Map structure:g[1] -> poly:p[13]
|
||||
{
|
||||
( -256 -106 1104 ) ( -256 22 1104 ) ( -128 -106 1104 ) paintedwood [ 1.00000 0.00000 0.00000 493.45243 ] [ 0.08716 0.99619 0.00000 -212.80980 ] 0 0.50000 -0.50000
|
||||
( -240 -106 1104 ) ( -240 -106 1232 ) ( -240 22 1104 ) paintedwood [ 0.00000 1.00000 0.00000 405.17497 ] [ 0.00000 0.08716 0.99619 2216.43415 ] 0 0.50000 -0.50000
|
||||
( -240 -106 928 ) ( -240 -234 928 ) ( -112 -106 928 ) paintedwood [ 1.00000 0.00000 0.00000 498.54760 ] [ 0.08716 -0.99619 0.00000 212.80980 ] 0 0.50000 -0.50000
|
||||
( -256 -106 992 ) ( -256 -106 1120 ) ( -256 -234 992 ) paintedwood [ 0.00000 -1.00000 0.00000 -38.42249 ] [ 0.00000 -0.08716 0.99619 1991.57851 ] 0 0.50000 -0.50000
|
||||
( -256 -106 1104 ) ( -256 -106 1232 ) ( -128 -106 1104 ) paintedwood [ 1.00000 0.00000 0.00000 705.17500 ] [ 0.08716 0.00000 0.99619 2216.43415 ] 0 0.50000 -0.50000
|
||||
( -256 -90 1104 ) ( -256 -90 1232 ) ( -384 -90 1104 ) paintedwood [ -1.00000 0.00000 0.00000 -318.82506 ] [ -0.08716 0.00000 0.99619 2216.43415 ] 0 0.50000 -0.50000
|
||||
}
|
||||
// Brush 13
|
||||
// Map structure:g[1] -> poly:p[14]
|
||||
{
|
||||
( -106 -256 1104 ) ( -106 -128 1104 ) ( 22 -256 1104 ) paintedwood [ 1.00000 0.00000 0.00000 167.20584 ] [ 0.08716 0.99619 0.00000 -513.95578 ] 0 0.50000 -0.50000
|
||||
( -90 -256 1104 ) ( -90 -256 1232 ) ( -90 -128 1104 ) paintedwood [ 0.00000 1.00000 0.00000 705.17501 ] [ 0.00000 0.08716 0.99619 2216.43428 ] 0 0.50000 -0.50000
|
||||
( -90 -256 928 ) ( -90 -384 928 ) ( 38 -256 928 ) paintedwood [ 1.00000 0.00000 0.00000 224.79421 ] [ 0.08716 -0.99619 0.00000 513.95578 ] 0 0.50000 -0.50000
|
||||
( -106 -256 992 ) ( -106 -256 1120 ) ( -106 -384 992 ) paintedwood [ 0.00000 -1.00000 0.00000 -338.42252 ] [ 0.00000 -0.08716 0.99619 1991.57863 ] 0 0.50000 -0.50000
|
||||
( -106 -256 1104 ) ( -106 -256 1232 ) ( 22 -256 1104 ) paintedwood [ 1.00000 0.00000 0.00000 405.17502 ] [ 0.08716 0.00000 0.99619 2216.43428 ] 0 0.50000 -0.50000
|
||||
( -106 -240 1104 ) ( -106 -240 1232 ) ( -234 -240 1104 ) paintedwood [ -1.00000 0.00000 0.00000 -18.82506 ] [ -0.08716 0.00000 0.99619 2216.43428 ] 0 0.50000 -0.50000
|
||||
}
|
||||
// Brush 14
|
||||
// Map structure:g[1] -> poly:p[15]
|
||||
{
|
||||
( 90 -256 1104 ) ( 90 -128 1104 ) ( 218 -256 1104 ) paintedwood [ 1.00000 0.00000 0.00000 -224.79418 ] [ 0.08716 0.99619 0.00000 -513.95575 ] 0 0.50000 -0.50000
|
||||
( 106 -256 1104 ) ( 106 -256 1232 ) ( 106 -128 1104 ) paintedwood [ 0.00000 1.00000 0.00000 705.17497 ] [ 0.00000 0.08716 0.99619 2216.43415 ] 0 0.50000 -0.50000
|
||||
( 106 -256 928 ) ( 106 -384 928 ) ( 234 -256 928 ) paintedwood [ 1.00000 0.00000 0.00000 -167.20580 ] [ 0.08716 -0.99619 0.00000 513.95575 ] 0 0.50000 -0.50000
|
||||
( 90 -256 992 ) ( 90 -256 1120 ) ( 90 -384 992 ) paintedwood [ 0.00000 -1.00000 0.00000 -338.42249 ] [ 0.00000 -0.08716 0.99619 1991.57851 ] 0 0.50000 -0.50000
|
||||
( 90 -256 1104 ) ( 90 -256 1232 ) ( 218 -256 1104 ) paintedwood [ 1.00000 0.00000 0.00000 13.17499 ] [ 0.08716 0.00000 0.99619 2216.43415 ] 0 0.50000 -0.50000
|
||||
( 90 -240 1104 ) ( 90 -240 1232 ) ( -38 -240 1104 ) paintedwood [ -1.00000 0.00000 0.00000 373.17497 ] [ -0.08716 0.00000 0.99619 2216.43415 ] 0 0.50000 -0.50000
|
||||
}
|
||||
// Brush 15
|
||||
// Map structure:g[1] -> poly:p[16]
|
||||
{
|
||||
( 240 -106 1104 ) ( 240 22 1104 ) ( 368 -106 1104 ) paintedwood [ 1.00000 0.00000 0.00000 -498.54759 ] [ 0.08716 0.99619 0.00000 -212.80980 ] 0 0.50000 -0.50000
|
||||
( 256 -106 1104 ) ( 256 -106 1232 ) ( 256 22 1104 ) paintedwood [ 0.00000 1.00000 0.00000 405.17497 ] [ 0.00000 0.08716 0.99619 2216.43415 ] 0 0.50000 -0.50000
|
||||
( 256 -106 928 ) ( 256 -234 928 ) ( 384 -106 928 ) paintedwood [ 1.00000 0.00000 0.00000 -493.45240 ] [ 0.08716 -0.99619 0.00000 212.80980 ] 0 0.50000 -0.50000
|
||||
( 240 -106 992 ) ( 240 -106 1120 ) ( 240 -234 992 ) paintedwood [ 0.00000 -1.00000 0.00000 -38.42249 ] [ 0.00000 -0.08716 0.99619 1991.57851 ] 0 0.50000 -0.50000
|
||||
( 240 -106 1104 ) ( 240 -106 1232 ) ( 368 -106 1104 ) paintedwood [ 1.00000 0.00000 0.00000 -286.82502 ] [ 0.08716 0.00000 0.99619 2216.43415 ] 0 0.50000 -0.50000
|
||||
( 240 -90 1104 ) ( 240 -90 1232 ) ( 112 -90 1104 ) paintedwood [ -1.00000 0.00000 0.00000 673.17500 ] [ -0.08716 0.00000 0.99619 2216.43415 ] 0 0.50000 -0.50000
|
||||
}
|
||||
// Brush 16
|
||||
// Map structure:g[1] -> poly:p[17]
|
||||
{
|
||||
( 240 90 1104 ) ( 240 218 1104 ) ( 368 90 1104 ) paintedwood [ 1.00000 0.00000 0.00000 -464.25203 ] [ 0.08716 0.99619 0.00000 180.68757 ] 0 0.50000 -0.50000
|
||||
( 256 90 1104 ) ( 256 90 1232 ) ( 256 218 1104 ) paintedwood [ 0.00000 1.00000 0.00000 13.17497 ] [ 0.00000 0.08716 0.99619 2216.43415 ] 0 0.50000 -0.50000
|
||||
( 256 90 928 ) ( 256 -38 928 ) ( 384 90 928 ) paintedwood [ 1.00000 0.00000 0.00000 -527.74796 ] [ 0.08716 -0.99619 0.00000 -180.68757 ] 0 0.50000 -0.50000
|
||||
( 240 90 992 ) ( 240 90 1120 ) ( 240 -38 992 ) paintedwood [ 0.00000 -1.00000 0.00000 353.57751 ] [ 0.00000 -0.08716 0.99619 1991.57851 ] 0 0.50000 -0.50000
|
||||
( 240 90 1104 ) ( 240 90 1232 ) ( 368 90 1104 ) paintedwood [ 1.00000 0.00000 0.00000 -286.82502 ] [ 0.08716 0.00000 0.99619 2216.43415 ] 0 0.50000 -0.50000
|
||||
( 240 106 1104 ) ( 240 106 1232 ) ( 112 106 1104 ) paintedwood [ -1.00000 0.00000 0.00000 673.17500 ] [ -0.08716 0.00000 0.99619 2216.43415 ] 0 0.50000 -0.50000
|
||||
}
|
||||
// Brush 17
|
||||
// Map structure:g[1] -> poly:p[18]
|
||||
{
|
||||
( 90 240 1104 ) ( 90 368 1104 ) ( 218 240 1104 ) paintedwood [ 1.00000 0.00000 0.00000 -138.00542 ] [ 0.08716 0.99619 0.00000 481.83351 ] 0 0.50000 -0.50000
|
||||
( 106 240 1104 ) ( 106 240 1232 ) ( 106 368 1104 ) paintedwood [ 0.00000 1.00000 0.00000 -286.82503 ] [ 0.00000 0.08716 0.99619 2216.43415 ] 0 0.50000 -0.50000
|
||||
( 106 240 928 ) ( 106 112 928 ) ( 234 240 928 ) paintedwood [ 1.00000 0.00000 0.00000 -253.99456 ] [ 0.08716 -0.99619 0.00000 -481.83351 ] 0 0.50000 -0.50000
|
||||
( 90 240 992 ) ( 90 240 1120 ) ( 90 112 992 ) paintedwood [ 0.00000 -1.00000 0.00000 653.57751 ] [ 0.00000 -0.08716 0.99619 1991.57851 ] 0 0.50000 -0.50000
|
||||
( 90 240 1104 ) ( 90 240 1232 ) ( 218 240 1104 ) paintedwood [ 1.00000 0.00000 0.00000 13.17499 ] [ 0.08716 0.00000 0.99619 2216.43415 ] 0 0.50000 -0.50000
|
||||
( 90 256 1104 ) ( 90 256 1232 ) ( -38 256 1104 ) paintedwood [ -1.00000 0.00000 0.00000 373.17497 ] [ -0.08716 0.00000 0.99619 2216.43415 ] 0 0.50000 -0.50000
|
||||
}
|
||||
// Brush 18
|
||||
// Map structure:g[1] -> poly:p[19]
|
||||
{
|
||||
( -106 240 1104 ) ( -106 368 1104 ) ( 22 240 1104 ) paintedwood [ 1.00000 0.00000 0.00000 253.99460 ] [ 0.08716 0.99619 0.00000 481.83354 ] 0 0.50000 -0.50000
|
||||
( -90 240 1104 ) ( -90 240 1232 ) ( -90 368 1104 ) paintedwood [ 0.00000 1.00000 0.00000 -286.82505 ] [ 0.00000 0.08716 0.99619 2216.43428 ] 0 0.50000 -0.50000
|
||||
( -90 240 928 ) ( -90 112 928 ) ( 38 240 928 ) paintedwood [ 1.00000 0.00000 0.00000 138.00545 ] [ 0.08716 -0.99619 0.00000 -481.83354 ] 0 0.50000 -0.50000
|
||||
( -106 240 992 ) ( -106 240 1120 ) ( -106 112 992 ) paintedwood [ 0.00000 -1.00000 0.00000 653.57754 ] [ 0.00000 -0.08716 0.99619 1991.57863 ] 0 0.50000 -0.50000
|
||||
( -106 240 1104 ) ( -106 240 1232 ) ( 22 240 1104 ) paintedwood [ 1.00000 0.00000 0.00000 405.17502 ] [ 0.08716 0.00000 0.99619 2216.43428 ] 0 0.50000 -0.50000
|
||||
( -106 256 1104 ) ( -106 256 1232 ) ( -234 256 1104 ) paintedwood [ -1.00000 0.00000 0.00000 -18.82506 ] [ -0.08716 0.00000 0.99619 2216.43428 ] 0 0.50000 -0.50000
|
||||
}
|
||||
// Brush 19
|
||||
// Map structure:g[1] -> poly:p[20]
|
||||
{
|
||||
( -250 90 1104 ) ( -250 218 1104 ) ( -122 90 1104 ) glass [ 1.00000 0.00000 0.00000 250.00001 ] [ 0.00000 1.00000 0.00000 90.00000 ] 0 1.00000 -1.00000
|
||||
( -250 -90 1104 ) ( -250 -90 1232 ) ( -122 -90 1104 ) glass [ 1.00000 0.00000 0.00000 250.00001 ] [ 0.00000 0.00000 1.00000 1104.00000 ] 0 1.00000 -1.00000
|
||||
( -250 -90 928 ) ( -250 -218 928 ) ( -122 -90 928 ) glass [ 1.00000 0.00000 0.00000 250.00001 ] [ 0.00000 -1.00000 0.00000 90.00001 ] 0 1.00000 -1.00000
|
||||
( -250 90 992 ) ( -250 90 1120 ) ( -378 90 992 ) glass [ -1.00000 0.00000 0.00000 -249.99999 ] [ 0.00000 0.00000 1.00000 992.00000 ] 0 1.00000 -1.00000
|
||||
( -250 90 1104 ) ( -250 90 1232 ) ( -250 -38 1104 ) glass [ 0.00000 -1.00000 0.00000 90.00000 ] [ 0.00000 0.00000 1.00000 1104.00000 ] 0 1.00000 -1.00000
|
||||
( -246 90 1104 ) ( -246 90 1232 ) ( -246 218 1104 ) glass [ 0.00000 1.00000 0.00000 -90.00000 ] [ 0.00000 0.00000 1.00000 1104.00000 ] 0 1.00000 -1.00000
|
||||
}
|
||||
// Brush 20
|
||||
// Map structure:g[1] -> poly:p[21]
|
||||
{
|
||||
( 240 106 1104 ) ( 112 106 1104 ) ( 240 106 1232 ) glass [ 1.00000 0.00000 0.00000 -240.00003 ] [ 0.00000 0.00000 1.00000 1104.00000 ] 0 1.00000 -1.00000
|
||||
( 110 238 1104 ) ( 19 329 1104 ) ( 200 329 1104 ) glass [ 0.70711 0.70711 0.00000 -246.19449 ] [ -0.70711 0.70711 0.00000 90.70711 ] 0 1.00000 -1.00000
|
||||
( 237 111 928 ) ( 328 20 928 ) ( 328 201 928 ) glass [ 0.70711 0.70711 0.00000 -246.19451 ] [ 0.70711 -0.70711 0.00000 89.29291 ] 0 1.00000 -1.00000
|
||||
( 110 238 1104 ) ( 110 238 1232 ) ( 200 148 1104 ) glass [ 0.00000 -1.00000 0.00000 336.90158 ] [ 0.00000 0.00000 1.00000 1104.00000 ] 0 0.70711 -1.00000
|
||||
( 113 241 1104 ) ( 113 241 1232 ) ( 22 332 1104 ) glass [ 0.00000 1.00000 0.00000 -341.14195 ] [ 0.00000 0.00000 1.00000 1104.00000 ] 0 0.70711 -1.00000
|
||||
( 106 240 1104 ) ( 106 368 1104 ) ( 106 240 1232 ) glass [ 0.00000 -1.00000 0.00000 240.00000 ] [ 0.00000 0.00000 1.00000 1104.00000 ] 0 1.00000 -1.00000
|
||||
}
|
||||
// Brush 21
|
||||
// Map structure:g[1] -> poly:p[22]
|
||||
{
|
||||
( -256 -106 1104 ) ( -128 -106 1104 ) ( -256 -106 1232 ) glass [ -1.00000 0.00000 0.00000 -255.99999 ] [ 0.00000 0.00000 1.00000 1104.00000 ] 0 1.00000 -1.00000
|
||||
( -245 -109 1104 ) ( -336 -18 1104 ) ( -155 -18 1104 ) glass [ 0.70711 0.70711 0.00000 250.19449 ] [ -0.70711 0.70711 0.00000 96.36397 ] 0 1.00000 -1.00000
|
||||
( -118 -236 928 ) ( -27 -327 928 ) ( -27 -146 928 ) glass [ 0.70711 0.70711 0.00000 250.19449 ] [ 0.70711 -0.70711 0.00000 83.63603 ] 0 1.00000 -1.00000
|
||||
( -245 -109 1104 ) ( -245 -109 1232 ) ( -155 -199 1104 ) glass [ 0.00000 -1.00000 0.00000 -153.83051 ] [ 0.00000 0.00000 1.00000 1104.00000 ] 0 0.70711 -1.00000
|
||||
( -242 -106 1104 ) ( -242 -106 1232 ) ( -333 -15 1104 ) glass [ 0.00000 1.00000 0.00000 149.83050 ] [ 0.00000 0.00000 1.00000 1104.00000 ] 0 0.70711 -1.00000
|
||||
( -106 -256 992 ) ( -106 -384 992 ) ( -106 -256 1120 ) glass [ 0.00000 1.00000 0.00000 256.00000 ] [ 0.00000 0.00000 1.00000 992.00000 ] 0 1.00000 -1.00000
|
||||
}
|
||||
// Brush 22
|
||||
// Map structure:g[1] -> poly:p[23]
|
||||
{
|
||||
( 246 90 1104 ) ( 246 218 1104 ) ( 374 90 1104 ) glass [ 1.00000 0.00000 0.00000 -246.00003 ] [ 0.00000 1.00000 0.00000 90.00000 ] 0 1.00000 -1.00000
|
||||
( 246 -90 1104 ) ( 246 -90 1232 ) ( 374 -90 1104 ) glass [ 1.00000 0.00000 0.00000 -246.00003 ] [ 0.00000 0.00000 1.00000 1104.00000 ] 0 1.00000 -1.00000
|
||||
( 246 -90 928 ) ( 246 -218 928 ) ( 374 -90 928 ) glass [ 1.00000 0.00000 0.00000 -246.00003 ] [ 0.00000 -1.00000 0.00000 90.00001 ] 0 1.00000 -1.00000
|
||||
( 246 90 992 ) ( 246 90 1120 ) ( 118 90 992 ) glass [ -1.00000 0.00000 0.00000 245.99998 ] [ 0.00000 0.00000 1.00000 992.00000 ] 0 1.00000 -1.00000
|
||||
( 246 90 1104 ) ( 246 90 1232 ) ( 246 -38 1104 ) glass [ 0.00000 -1.00000 0.00000 90.00000 ] [ 0.00000 0.00000 1.00000 1104.00000 ] 0 1.00000 -1.00000
|
||||
( 250 90 1104 ) ( 250 90 1232 ) ( 250 218 1104 ) glass [ 0.00000 1.00000 0.00000 -90.00000 ] [ 0.00000 0.00000 1.00000 1104.00000 ] 0 1.00000 -1.00000
|
||||
}
|
||||
// Brush 23
|
||||
// Map structure:g[1] -> poly:p[24]
|
||||
{
|
||||
( -90 -250 1104 ) ( -218 -250 1104 ) ( -90 -122 1104 ) glass [ 0.00000 1.00000 0.00000 250.00000 ] [ -1.00000 0.00000 0.00000 90.00001 ] 0 1.00000 -1.00000
|
||||
( 90 -250 1104 ) ( 90 -250 1232 ) ( 90 -122 1104 ) glass [ 0.00000 1.00000 0.00000 250.00003 ] [ 0.00000 0.00000 1.00000 1104.00000 ] 0 1.00000 -1.00000
|
||||
( 90 -250 928 ) ( 218 -250 928 ) ( 90 -122 928 ) glass [ 0.00000 1.00000 0.00000 250.00001 ] [ 1.00000 0.00000 0.00000 89.99999 ] 0 1.00000 -1.00000
|
||||
( -90 -250 992 ) ( -90 -250 1120 ) ( -90 -378 992 ) glass [ 0.00000 -1.00000 0.00000 -249.99999 ] [ 0.00000 0.00000 1.00000 992.00000 ] 0 1.00000 -1.00000
|
||||
( -90 -250 1104 ) ( -90 -250 1232 ) ( 38 -250 1104 ) glass [ 1.00000 0.00000 0.00000 90.00001 ] [ 0.00000 0.00000 1.00000 1104.00000 ] 0 1.00000 -1.00000
|
||||
( -90 -246 1104 ) ( -90 -246 1232 ) ( -218 -246 1104 ) glass [ -1.00000 0.00000 0.00000 -90.00002 ] [ 0.00000 0.00000 1.00000 1104.00000 ] 0 1.00000 -1.00000
|
||||
}
|
||||
// Brush 24
|
||||
// Map structure:g[1] -> poly:p[25]
|
||||
{
|
||||
( -90 246 1104 ) ( -218 246 1104 ) ( -90 374 1104 ) glass [ 0.00000 1.00000 0.00000 -246.00003 ] [ -1.00000 0.00000 0.00000 90.00002 ] 0 1.00000 -1.00000
|
||||
( 90 246 1104 ) ( 90 246 1232 ) ( 90 374 1104 ) glass [ 0.00000 1.00000 0.00000 -246.00003 ] [ 0.00000 0.00000 1.00000 1104.00000 ] 0 1.00000 -1.00000
|
||||
( 90 246 928 ) ( 218 246 928 ) ( 90 374 928 ) glass [ 0.00000 1.00000 0.00000 -246.00000 ] [ 1.00000 0.00000 0.00000 90.00000 ] 0 1.00000 -1.00000
|
||||
( -90 246 992 ) ( -90 246 1120 ) ( -90 118 992 ) glass [ 0.00000 -1.00000 0.00000 245.99998 ] [ 0.00000 0.00000 1.00000 992.00000 ] 0 1.00000 -1.00000
|
||||
( -90 246 1104 ) ( -90 246 1232 ) ( 38 246 1104 ) glass [ 1.00000 0.00000 0.00000 90.00001 ] [ 0.00000 0.00000 1.00000 1104.00000 ] 0 1.00000 -1.00000
|
||||
( -90 250 1104 ) ( -90 250 1232 ) ( -218 250 1104 ) glass [ -1.00000 0.00000 0.00000 -90.00002 ] [ 0.00000 0.00000 1.00000 1104.00000 ] 0 1.00000 -1.00000
|
||||
}
|
||||
// Brush 25
|
||||
// Map structure:g[1] -> poly:p[26]
|
||||
{
|
||||
( -106 240 992 ) ( -106 112 992 ) ( -106 240 1120 ) glass [ 0.00000 1.00000 0.00000 -240.00000 ] [ 0.00000 0.00000 1.00000 992.00000 ] 0 1.00000 -1.00000
|
||||
( -234 115 1104 ) ( -325 24 1104 ) ( -325 205 1104 ) glass [ -0.70711 0.70711 0.00000 -246.90161 ] [ -0.70711 -0.70711 0.00000 84.34320 ] 0 1.00000 -1.00000
|
||||
( -107 242 928 ) ( -16 333 928 ) ( -197 333 928 ) glass [ -0.70711 0.70711 0.00000 -246.90161 ] [ 0.70711 0.70711 0.00000 95.65684 ] 0 1.00000 -1.00000
|
||||
( -234 115 1104 ) ( -234 115 1232 ) ( -144 205 1104 ) glass [ 0.00000 1.00000 0.00000 -162.31355 ] [ 0.00000 0.00000 1.00000 1104.00000 ] 0 0.70711 -1.00000
|
||||
( -237 118 1104 ) ( -237 118 1232 ) ( -328 27 1104 ) glass [ 0.00000 -1.00000 0.00000 166.79875 ] [ 0.00000 0.00000 1.00000 1104.00000 ] 0 0.70711 -1.00000
|
||||
( -256 106 1104 ) ( -384 106 1104 ) ( -256 106 1232 ) glass [ 1.00000 0.00000 0.00000 256.00001 ] [ 0.00000 0.00000 1.00000 1104.00000 ] 0 1.00000 -1.00000
|
||||
}
|
||||
// Brush 26
|
||||
// Map structure:g[1] -> poly:p[27]
|
||||
{
|
||||
( 106 -256 1104 ) ( 106 -128 1104 ) ( 106 -256 1232 ) glass [ 0.00000 -1.00000 0.00000 -256.00000 ] [ 0.00000 0.00000 1.00000 1104.00000 ] 0 1.00000 -1.00000
|
||||
( 118 -237 1104 ) ( 27 -328 1104 ) ( 27 -147 1104 ) glass [ -0.70711 0.70711 0.00000 250.90157 ] [ -0.70711 -0.70711 0.00000 84.34317 ] 0 1.00000 -1.00000
|
||||
( 245 -110 928 ) ( 336 -19 928 ) ( 155 -19 928 ) glass [ -0.70711 0.70711 0.00000 250.90162 ] [ 0.70711 0.70711 0.00000 95.65684 ] 0 1.00000 -1.00000
|
||||
( 118 -237 1104 ) ( 118 -237 1232 ) ( 208 -147 1104 ) glass [ 0.00000 1.00000 0.00000 335.48513 ] [ 0.00000 0.00000 1.00000 1104.00000 ] 0 0.70711 -1.00000
|
||||
( 115 -234 1104 ) ( 115 -234 1232 ) ( 24 -325 1104 ) glass [ 0.00000 -1.00000 0.00000 -331.24478 ] [ 0.00000 0.00000 1.00000 1104.00000 ] 0 0.70711 -1.00000
|
||||
( 240 -106 1104 ) ( 368 -106 1104 ) ( 240 -106 1232 ) glass [ -1.00000 0.00000 0.00000 240.00001 ] [ 0.00000 0.00000 1.00000 1104.00000 ] 0 1.00000 -1.00000
|
||||
}
|
||||
// Brush 27
|
||||
// Map structure:g[1] -> poly:p[28]
|
||||
{
|
||||
( 274 291 476 ) ( 402 291 476 ) ( 274 163 476 ) block_lower [ 0.00000 1.00000 0.00000 189.00000 ] [ 1.00000 0.00000 0.00000 -189.00000 ] 0 1.00000 -1.00000
|
||||
( 0 189 586 ) ( 256 189 586 ) ( 0 189 842 ) block_lower [ 0.00000 0.00000 1.00000 -219.00000 ] [ -1.00000 0.00000 0.00000 -79.00000 ] 0 1.00000 -1.00000
|
||||
( 0 -189 586 ) ( 0 -189 842 ) ( 256 -189 586 ) block_lower [ 0.00000 0.00000 1.00000 -221.00000 ] [ 1.00000 0.00000 0.00000 -79.00000 ] 0 1.00000 -1.00000
|
||||
( 189 0 586 ) ( 189 0 842 ) ( 189 256 586 ) block_lower [ 0.00000 0.00000 1.00000 -221.00000 ] [ 0.00000 1.00000 0.00000 -79.00000 ] 0 1.00000 -1.00000
|
||||
( -189 0 586 ) ( -189 256 586 ) ( -189 0 842 ) block_lower [ 0.00000 0.00000 1.00000 -221.00000 ] [ 0.00000 -1.00000 0.00000 -79.00000 ] 0 1.00000 -1.00000
|
||||
( -189 74 221 ) ( 189 -79 221 ) ( 567 -79 221 ) block_lower [ 0.00000 -1.00000 0.00000 189.00000 ] [ 1.00000 0.00000 0.00000 -189.00000 ] 0 1.00000 -1.00000
|
||||
( 901 1169 586 ) ( 1157 1425 586 ) ( 901 1169 842 ) block_lower [ 0.00000 0.00000 1.00000 -221.00000 ] [ 0.00000 -1.00000 0.00000 -267.28633 ] 0 1.00000 -0.70711
|
||||
( 1531 1263 586 ) ( 1531 1263 842 ) ( 1787 1519 586 ) block_lower [ 0.00000 0.00000 1.00000 -221.00000 ] [ 0.00000 1.00000 0.00000 -267.28626 ] 0 1.00000 -0.70711
|
||||
( 315 -47 586 ) ( 315 -47 842 ) ( 59 209 586 ) block_lower [ 0.00000 0.00000 1.00000 -221.00000 ] [ 0.00000 1.00000 0.00000 111.72285 ] 0 1.00000 -0.70711
|
||||
( -315 47 586 ) ( -571 303 586 ) ( -315 47 842 ) block_lower [ 0.00000 0.00000 1.00000 -221.00000 ] [ 0.00000 -1.00000 0.00000 111.72285 ] 0 1.00000 -0.70711
|
||||
}
|
||||
// Brush 28
|
||||
// Map structure:g[1] -> poly:p[29]
|
||||
{
|
||||
( 274 291 476 ) ( 402 291 476 ) ( 274 419 476 ) dirty_concrete [ -1.00000 0.00000 0.00000 274.00000 ] [ 0.00000 1.00000 0.00000 291.00000 ] 0 1.00000 -1.00000
|
||||
( -315 47 586 ) ( -571 303 586 ) ( -315 47 842 ) dirty_concrete [ 0.00000 -1.00000 0.00000 67.00004 ] [ 0.00000 0.00000 1.00000 586.00000 ] 0 0.70711 -1.00000
|
||||
( 315 -47 586 ) ( 315 -47 842 ) ( 59 209 586 ) dirty_concrete [ 0.00000 1.00000 0.00000 66.99998 ] [ 0.00000 0.00000 1.00000 586.00000 ] 0 0.70711 -1.00000
|
||||
( 1531 1263 586 ) ( 1531 1263 842 ) ( 1787 1519 586 ) dirty_concrete [ 0.00000 1.00000 0.00000 -1786.68374 ] [ 0.00000 0.00000 1.00000 586.00000 ] 0 0.70711 -1.00000
|
||||
( 901 1169 586 ) ( 1157 1425 586 ) ( 901 1169 842 ) dirty_concrete [ 0.00000 -1.00000 0.00000 1652.68357 ] [ 0.00000 0.00000 1.00000 586.00000 ] 0 0.70711 -1.00000
|
||||
( 0 0 774 ) ( 0 256 774 ) ( 256 0 774 ) dirty_concrete [ 1.00000 0.00000 0.00000 0.00000 ] [ 0.00000 1.00000 0.00000 0.00000 ] 0 1.00000 -1.00000
|
||||
( -189 0 586 ) ( -189 256 586 ) ( -189 0 842 ) dirty_concrete [ 0.00000 -1.00000 0.00000 0.00000 ] [ 0.00000 0.00000 1.00000 586.00000 ] 0 1.00000 -1.00000
|
||||
( 189 0 586 ) ( 189 0 842 ) ( 189 256 586 ) dirty_concrete [ 0.00000 1.00000 0.00000 0.00000 ] [ 0.00000 0.00000 1.00000 586.00000 ] 0 1.00000 -1.00000
|
||||
( 0 -189 586 ) ( 0 -189 842 ) ( 256 -189 586 ) dirty_concrete [ 1.00000 0.00000 0.00000 0.00000 ] [ 0.00000 0.00000 1.00000 586.00000 ] 0 1.00000 -1.00000
|
||||
( 0 189 586 ) ( 256 189 586 ) ( 0 189 842 ) dirty_concrete [ -1.00000 0.00000 0.00000 0.00000 ] [ 0.00000 0.00000 1.00000 586.00000 ] 0 1.00000 -1.00000
|
||||
}
|
||||
// Brush 29
|
||||
// Map structure:g[1] -> poly:p[30]
|
||||
{
|
||||
( -361 1 110 ) ( -617 257 110 ) ( -361 1 366 ) block_lower [ 0.00000 0.00000 1.00000 144.00000 ] [ 0.00000 -1.00000 0.00000 149.90662 ] 0 1.00000 -0.70711
|
||||
( 361 -1 110 ) ( 361 -1 366 ) ( 105 255 110 ) block_lower [ 0.00000 0.00000 1.00000 144.00000 ] [ 0.00000 1.00000 0.00000 149.90662 ] 0 1.00000 -0.70711
|
||||
( 1577 1217 110 ) ( 1577 1217 366 ) ( 1833 1473 110 ) block_lower [ 0.00000 0.00000 1.00000 144.00000 ] [ 0.00000 1.00000 0.00000 -359.21020 ] 0 1.00000 -0.70711
|
||||
( 855 1215 110 ) ( 1111 1471 110 ) ( 855 1215 366 ) block_lower [ 0.00000 0.00000 1.00000 144.00000 ] [ 0.00000 -1.00000 0.00000 -359.21027 ] 0 1.00000 -0.70711
|
||||
( 0 0 -144 ) ( 256 0 -144 ) ( 0 256 -144 ) block_lower [ 0.00000 -1.00000 0.00000 254.00000 ] [ 1.00000 0.00000 0.00000 -254.00000 ] 0 1.00000 -1.00000
|
||||
( 0 0 107 ) ( 0 256 107 ) ( 256 0 107 ) block_lower [ 0.00000 1.00000 0.00000 254.00000 ] [ 1.00000 0.00000 0.00000 -254.00000 ] 0 1.00000 -1.00000
|
||||
( -254 0 110 ) ( -254 256 110 ) ( -254 0 366 ) block_lower [ 0.00000 0.00000 1.00000 144.00000 ] [ 0.00000 -1.00000 0.00000 -106.00000 ] 0 1.00000 -1.00000
|
||||
( 254 0 110 ) ( 254 0 366 ) ( 254 256 110 ) block_lower [ 0.00000 0.00000 1.00000 144.00000 ] [ 0.00000 1.00000 0.00000 -106.00000 ] 0 1.00000 -1.00000
|
||||
( 0 -254 110 ) ( 0 -254 366 ) ( 256 -254 110 ) block_lower [ 0.00000 0.00000 1.00000 144.00000 ] [ 1.00000 0.00000 0.00000 -106.00000 ] 0 1.00000 -1.00000
|
||||
( 0 254 110 ) ( 256 254 110 ) ( 0 254 366 ) block_lower [ 0.00000 0.00000 1.00000 144.00000 ] [ -1.00000 0.00000 0.00000 -106.00000 ] 0 1.00000 -1.00000
|
||||
}
|
||||
// Brush 30
|
||||
// Roof:g[2] -> poly:p[1]
|
||||
{
|
||||
( -100 -256 1072 ) ( -54 -145 1115 ) ( -116 -296 1193 ) shingle [ 0.00000 -0.93376 0.35790 2.08472 ] [ 0.00000 0.31094 0.95043 -20.47874 ] 0 0.46633 -0.49590
|
||||
( 105 -256 1125 ) ( -105 -256 1131 ) ( -316 -256 1131 ) shingle [ -1.00000 0.00000 0.00000 0.00000 ] [ 0.00000 0.00000 1.00000 -20.00000 ] 0 0.50000 -0.50000
|
||||
( 154 -407 1074 ) ( -105 -256 1131 ) ( 203 -256 1131 ) shingle [ 1.00000 0.00000 0.00000 0.00000 ] [ 0.00000 1.00000 0.00000 -867.34968 ] 0 0.50000 -0.46824
|
||||
( 105 -256 1125 ) ( -168 -407 1074 ) ( 43 -407 1074 ) shingle [ -1.00000 0.00000 0.00000 0.00000 ] [ 0.00000 1.00000 0.00000 -632.88484 ] 0 0.50000 -0.47381
|
||||
( 97 -256 1072 ) ( 143 -368 1029 ) ( 113 -296 1193 ) shingle [ 0.00000 0.93376 -0.35791 0.17186 ] [ 0.00000 0.31094 0.95043 -21.27784 ] 0 0.46633 -0.49590
|
||||
}
|
||||
// Brush 31
|
||||
// Roof:g[2] -> poly:p[2]
|
||||
{
|
||||
( 0 -256 896 ) ( 256 -256 896 ) ( 0 -256 1152 ) paintedwood [ -1.00000 0.00000 0.00000 156.77969 ] [ -0.08716 0.00000 0.99619 1798.84522 ] 0 0.50000 -0.50000
|
||||
( 111 -250 1072 ) ( 128 -289 1193 ) ( 65 -139 1115 ) paintedwood [ 0.00000 1.00000 0.00000 728.75140 ] [ 0.00000 0.08057 0.99675 2152.02253 ] 0 0.46194 -0.49972
|
||||
( 97 -256 1072 ) ( 113 -296 1193 ) ( 143 -368 1029 ) paintedwood [ 0.00000 -1.00000 0.00000 -366.88402 ] [ 0.00000 -0.08057 0.99675 2152.02253 ] 0 0.46194 -0.49972
|
||||
( 112 -419 1017 ) ( 128 -458 1137 ) ( 230 -370 1017 ) paintedwood [ 1.00000 0.00000 0.00000 244.66384 ] [ 0.21604 0.00000 0.97639 2165.34251 ] 0 0.46194 -0.48088
|
||||
( 60 -294 1132 ) ( 14 -183 1175 ) ( 179 -245 1132 ) paintedwood [ 0.92388 0.38268 0.00000 58.78783 ] [ -0.29567 0.95529 0.00000 -628.19322 ] 0 0.50000 -0.47155
|
||||
( 58 -289 1117 ) ( 105 -401 1074 ) ( 177 -240 1117 ) paintedwood [ -0.92388 -0.38268 0.00000 -167.29781 ] [ -0.46643 0.88456 0.00000 -616.81831 ] 0 0.50000 -0.47155
|
||||
}
|
||||
// Brush 32
|
||||
// Roof:g[2] -> poly:p[3]
|
||||
{
|
||||
( 1578 1216 896 ) ( 1834 1472 896 ) ( 1578 1216 1152 ) paintedwood [ 0.00000 -1.00000 0.00000 608.00000 ] [ 0.00000 0.00000 1.00000 448.00000 ] 0 2.00000 -2.00000
|
||||
( 58 -289 1117 ) ( 105 -401 1074 ) ( 177 -240 1117 ) paintedwood [ 0.92388 0.38268 0.00000 56.76925 ] [ 0.38268 -0.92388 0.00000 307.23552 ] 0 1.00000 -0.94264
|
||||
( 60 -294 1132 ) ( 14 -183 1175 ) ( 179 -245 1132 ) paintedwood [ 0.92388 0.38268 0.00000 56.76925 ] [ -0.38268 0.92388 0.00000 -312.90135 ] 0 1.00000 -0.94264
|
||||
( 111 -250 1072 ) ( 128 -289 1193 ) ( 65 -139 1115 ) paintedwood [ 0.00000 0.93376 0.35790 -102.73892 ] [ 0.00000 -0.31094 0.95043 1100.75959 ] 0 0.93267 -0.99181
|
||||
( 0 -256 896 ) ( 0 -256 1152 ) ( 256 -256 896 ) paintedwood [ 1.00000 0.00000 0.00000 0.00000 ] [ 0.00000 0.00000 1.00000 448.00000 ] 0 2.00000 -2.00000
|
||||
}
|
||||
// Brush 33
|
||||
// Roof:g[2] -> poly:p[4]
|
||||
{
|
||||
( 1578 1216 896 ) ( 1834 1472 896 ) ( 1578 1216 1152 ) shingle [ 0.00000 -1.00000 0.00000 -511.94536 ] [ 0.00000 0.00000 1.00000 0.00000 ] 0 0.35355 -0.50000
|
||||
( 247 -110 1072 ) ( 358 -156 1029 ) ( 286 -126 1193 ) shingle [ -0.93376 0.00000 -0.35791 -5.50210 ] [ -0.31094 0.00000 0.95043 1.94840 ] 0 0.46633 -0.49590
|
||||
( 253 -104 1125 ) ( 167 -404 1074 ) ( 316 -255 1074 ) shingle [ -0.70711 -0.70711 0.00000 -11.73804 ] [ -0.70711 0.70711 0.00000 -784.12063 ] 0 0.50000 -0.47381
|
||||
( 395 -176 1074 ) ( 104 -253 1131 ) ( 322 -35 1131 ) shingle [ 0.70711 0.70711 0.00000 0.00001 ] [ -0.70711 0.70711 0.00000 -859.35947 ] 0 0.50000 -0.46824
|
||||
( 111 -250 1072 ) ( 65 -139 1115 ) ( 128 -289 1193 ) shingle [ 0.00000 -0.93376 0.35791 5.64656 ] [ 0.00000 0.31094 0.95043 1.99955 ] 0 0.46633 -0.49590
|
||||
}
|
||||
// Brush 34
|
||||
// Roof:g[2] -> poly:p[5]
|
||||
{
|
||||
( 256 0 896 ) ( 256 256 896 ) ( 256 0 1152 ) shingle [ 0.00000 -1.00000 0.00000 0.00000 ] [ 0.00000 0.00000 1.00000 -16.00000 ] 0 0.50000 -0.50000
|
||||
( 254 97 1072 ) ( 366 143 1029 ) ( 294 113 1193 ) shingle [ -0.93376 0.00000 -0.35791 0.94842 ] [ -0.31094 0.00000 0.95043 -17.30944 ] 0 0.46633 -0.49590
|
||||
( 254 105 1125 ) ( 406 -168 1074 ) ( 406 43 1074 ) shingle [ 0.00000 -1.00000 0.00000 -0.00009 ] [ -1.00000 0.00000 0.00000 -788.84626 ] 0 0.50000 -0.47381
|
||||
( 406 154 1074 ) ( 254 -105 1131 ) ( 254 203 1131 ) shingle [ 0.00000 1.00000 0.00000 0.00000 ] [ -1.00000 0.00000 0.00000 -865.50127 ] 0 0.50000 -0.46824
|
||||
( 253 -95 1072 ) ( 142 -49 1115 ) ( 293 -112 1193 ) shingle [ 0.93376 0.00000 0.35791 -1.65154 ] [ -0.31094 0.00000 0.95043 -17.55842 ] 0 0.46633 -0.49590
|
||||
}
|
||||
// Brush 35
|
||||
// Roof:g[2] -> poly:p[6]
|
||||
{
|
||||
( 362 0 896 ) ( 106 256 896 ) ( 362 0 1152 ) shingle [ 0.00000 -1.00000 0.00000 511.94531 ] [ 0.00000 0.00000 1.00000 -10.00000 ] 0 0.35355 -0.50000
|
||||
( 112 247 1072 ) ( 158 359 1029 ) ( 129 287 1193 ) shingle [ 0.00000 -0.93376 -0.35791 -10.48091 ] [ 0.00000 -0.31094 0.95043 -6.89700 ] 0 0.46633 -0.49590
|
||||
( 106 253 1125 ) ( 406 167 1074 ) ( 257 316 1074 ) shingle [ 0.70711 -0.70711 0.00000 -0.00008 ] [ -0.70711 -0.70711 0.00000 -789.67361 ] 0 0.50000 -0.47381
|
||||
( 178 395 1074 ) ( 255 104 1131 ) ( 37 322 1131 ) shingle [ -0.70711 0.70711 0.00000 -0.00001 ] [ -0.70711 -0.70711 0.00000 -863.30778 ] 0 0.50000 -0.46824
|
||||
( 248 111 1072 ) ( 137 65 1115 ) ( 288 128 1193 ) shingle [ 0.93376 0.00000 0.35791 9.54329 ] [ -0.31094 0.00000 0.95043 -7.22903 ] 0 0.46633 -0.49590
|
||||
}
|
||||
// Brush 36
|
||||
// Roof:g[2] -> poly:p[7]
|
||||
{
|
||||
( 0 256 896 ) ( 0 256 1152 ) ( 256 256 896 ) paintedwood [ 1.00000 0.00000 0.00000 156.77969 ] [ 0.08716 0.00000 0.99619 1798.84522 ] 0 0.50000 -0.50000
|
||||
( 97 253 1072 ) ( 114 293 1193 ) ( 51 142 1115 ) paintedwood [ 0.00000 -1.00000 0.00000 735.69972 ] [ 0.00000 -0.08057 0.99675 2152.02253 ] 0 0.46194 -0.49972
|
||||
( 112 247 1072 ) ( 129 287 1193 ) ( 158 359 1029 ) paintedwood [ 0.00000 1.00000 0.00000 -347.32268 ] [ 0.00000 0.08057 0.99675 2152.02253 ] 0 0.46194 -0.49972
|
||||
( 218 378 1015 ) ( 235 417 1135 ) ( 100 427 1015 ) paintedwood [ -1.00000 0.00000 0.00000 363.37222 ] [ 0.04971 0.00000 0.99876 2161.23951 ] 0 0.46194 -0.47011
|
||||
( 165 248 1132 ) ( 119 137 1175 ) ( 47 297 1132 ) paintedwood [ -0.92388 0.38268 0.00000 59.98081 ] [ -0.46643 -0.88456 0.00000 -623.16779 ] 0 0.50000 -0.47155
|
||||
( 163 244 1117 ) ( 209 355 1074 ) ( 44 293 1117 ) paintedwood [ 0.92388 -0.38268 0.00000 -167.61482 ] [ -0.29567 -0.95529 0.00000 -611.79287 ] 0 0.50000 -0.47155
|
||||
}
|
||||
// Brush 37
|
||||
// Roof:g[2] -> poly:p[8]
|
||||
{
|
||||
( 362 0 896 ) ( 106 256 896 ) ( 362 0 1152 ) paintedwood [ 0.00000 -1.00000 0.00000 0.00002 ] [ 0.00000 0.00000 1.00000 448.00000 ] 0 2.00000 -2.00000
|
||||
( 163 244 1117 ) ( 209 355 1074 ) ( 44 293 1117 ) paintedwood [ -0.92388 0.38268 0.00000 57.14682 ] [ 0.38268 0.92388 0.00000 304.73233 ] 0 1.00000 -0.94264
|
||||
( 165 248 1132 ) ( 119 137 1175 ) ( 47 297 1132 ) paintedwood [ -0.92388 0.38268 0.00000 57.14682 ] [ -0.38268 -0.92388 0.00000 -310.39818 ] 0 1.00000 -0.94264
|
||||
( 112 247 1072 ) ( 129 287 1193 ) ( 158 359 1029 ) paintedwood [ 0.00000 0.93376 -0.35790 105.71133 ] [ 0.00000 0.31094 0.95043 1099.70700 ] 0 0.93267 -0.99181
|
||||
( 0 256 896 ) ( 256 256 896 ) ( 0 256 1152 ) paintedwood [ 1.00000 0.00000 0.00000 0.00000 ] [ 0.00000 0.00000 1.00000 448.00000 ] 0 2.00000 -2.00000
|
||||
}
|
||||
// Brush 38
|
||||
// Roof:g[2] -> poly:p[9]
|
||||
{
|
||||
( 256 0 896 ) ( 256 256 896 ) ( 256 0 1152 ) paintedwood [ 0.00000 -1.00000 0.00000 156.77968 ] [ 0.00000 -0.08716 0.99619 1798.84511 ] 0 0.50000 -0.50000
|
||||
( 248 111 1072 ) ( 288 128 1193 ) ( 137 65 1115 ) paintedwood [ -1.00000 0.00000 0.00000 725.07976 ] [ -0.08057 0.00000 0.99675 2152.02240 ] 0 0.46194 -0.49972
|
||||
( 254 97 1072 ) ( 294 113 1193 ) ( 366 143 1029 ) paintedwood [ 1.00000 0.00000 0.00000 -363.21233 ] [ 0.08057 0.00000 0.99675 2152.02240 ] 0 0.46194 -0.49972
|
||||
( 417 112 1017 ) ( 456 128 1137 ) ( 368 230 1017 ) paintedwood [ 0.00000 1.00000 0.00000 244.50892 ] [ 0.00000 0.21604 0.97639 2165.34281 ] 0 0.46194 -0.48088
|
||||
( 293 60 1132 ) ( 181 14 1175 ) ( 244 179 1132 ) paintedwood [ -0.38268 0.92388 0.00000 57.64275 ] [ -0.95529 -0.29567 0.00000 -624.91432 ] 0 0.50000 -0.47155
|
||||
( 288 58 1117 ) ( 399 105 1074 ) ( 239 177 1117 ) paintedwood [ 0.38268 -0.92388 0.00000 -165.58114 ] [ -0.88456 -0.46643 0.00000 -613.53942 ] 0 0.50000 -0.47155
|
||||
}
|
||||
// Brush 39
|
||||
// Roof:g[2] -> poly:p[10]
|
||||
{
|
||||
( 362 0 896 ) ( 106 256 896 ) ( 362 0 1152 ) paintedwood [ 0.00000 -1.00000 0.00000 0.00002 ] [ 0.00000 0.00000 1.00000 448.00000 ] 0 2.00000 -2.00000
|
||||
( 288 58 1117 ) ( 399 105 1074 ) ( 239 177 1117 ) paintedwood [ -0.38268 0.92388 0.00000 56.05385 ] [ 0.92388 0.38268 0.00000 305.60230 ] 0 1.00000 -0.94264
|
||||
( 293 60 1132 ) ( 181 14 1175 ) ( 244 179 1132 ) paintedwood [ -0.38268 0.92388 0.00000 56.05384 ] [ -0.92388 -0.38268 0.00000 -311.26817 ] 0 1.00000 -0.94264
|
||||
( 248 111 1072 ) ( 288 128 1193 ) ( 137 65 1115 ) paintedwood [ -0.93376 0.00000 0.35790 -104.46943 ] [ 0.31094 0.00000 0.95043 1100.14678 ] 0 0.93267 -0.99181
|
||||
( 256 0 896 ) ( 256 0 1152 ) ( 256 256 896 ) paintedwood [ 0.00000 1.00000 0.00000 0.00000 ] [ 0.00000 0.00000 1.00000 448.00000 ] 0 2.00000 -2.00000
|
||||
}
|
||||
// Brush 40
|
||||
// Roof:g[2] -> poly:p[11]
|
||||
{
|
||||
( 256 0 896 ) ( 256 256 896 ) ( 256 0 1152 ) paintedwood [ 0.00000 -1.00000 0.00000 0.00000 ] [ 0.00000 0.00000 1.00000 1792.00000 ] 0 0.50000 -0.50000
|
||||
( 253 -95 1072 ) ( 293 -112 1193 ) ( 142 -49 1115 ) paintedwood [ -0.93376 0.00000 0.35790 -199.07452 ] [ 0.31094 0.00000 0.95043 2203.78670 ] 0 0.46633 -0.49590
|
||||
( 247 -110 1072 ) ( 286 -126 1193 ) ( 358 -156 1029 ) paintedwood [ 0.93376 0.00000 -0.35790 211.56910 ] [ 0.31094 0.00000 0.95043 2199.36212 ] 0 0.46633 -0.49590
|
||||
( 373 -214 1017 ) ( 412 -230 1137 ) ( 422 -96 1017 ) paintedwood [ 0.00000 1.00000 0.00000 164.94783 ] [ 0.00000 -0.13429 0.99094 2157.10295 ] 0 0.46194 -0.47563
|
||||
( 248 -162 1132 ) ( 137 -116 1175 ) ( 297 -44 1132 ) paintedwood [ 0.38268 0.92388 0.00000 110.09150 ] [ -0.92388 0.38268 0.00000 -618.78499 ] 0 0.50000 -0.47132
|
||||
( 243 -160 1117 ) ( 355 -207 1074 ) ( 292 -42 1117 ) paintedwood [ 0.38268 0.92388 0.00000 110.09150 ] [ 0.92388 -0.38268 0.00000 607.45336 ] 0 0.50000 -0.47132
|
||||
}
|
||||
// Brush 41
|
||||
// Roof:g[2] -> poly:p[12]
|
||||
{
|
||||
( 1578 1216 896 ) ( 1834 1472 896 ) ( 1578 1216 1152 ) paintedwood [ 0.00000 -1.00000 0.00000 608.00000 ] [ 0.00000 0.00000 1.00000 448.00003 ] 0 2.00000 -2.00000
|
||||
( 243 -160 1117 ) ( 355 -207 1074 ) ( 292 -42 1117 ) paintedwood [ 0.38268 0.92388 0.00000 55.04575 ] [ 0.92388 -0.38268 0.00000 303.72664 ] 0 1.00000 -0.94264
|
||||
( 248 -162 1132 ) ( 137 -116 1175 ) ( 297 -44 1132 ) paintedwood [ 0.38268 0.92388 0.00000 55.04575 ] [ -0.92388 0.38268 0.00000 -309.39249 ] 0 1.00000 -0.94264
|
||||
( 247 -110 1072 ) ( 286 -126 1193 ) ( 358 -156 1029 ) paintedwood [ 0.93376 0.00000 -0.35790 105.78454 ] [ 0.31094 0.00000 0.95043 1099.68105 ] 0 0.93267 -0.99181
|
||||
( 256 0 896 ) ( 256 0 1152 ) ( 256 256 896 ) paintedwood [ 0.00000 1.00000 0.00000 0.00000 ] [ 0.00000 0.00000 1.00000 448.00003 ] 0 2.00000 -2.00000
|
||||
}
|
||||
// Brush 42
|
||||
// Roof:g[2] -> poly:p[13]
|
||||
{
|
||||
( 0 256 896 ) ( 0 256 1152 ) ( 256 256 896 ) shingle [ -1.00000 0.00000 0.00000 0.00000 ] [ 0.00000 0.00000 1.00000 -4.00000 ] 0 0.50000 -0.50000
|
||||
( -99 253 1072 ) ( -145 364 1029 ) ( -115 292 1193 ) shingle [ 0.00000 -0.93376 -0.35791 2.82559 ] [ 0.00000 -0.31095 0.95043 -5.24399 ] 0 0.46633 -0.49590
|
||||
( -108 253 1125 ) ( 165 404 1074 ) ( -46 404 1074 ) shingle [ 1.00000 0.00000 0.00000 -0.00009 ] [ 0.00000 -1.00000 0.00000 -723.07544 ] 0 0.50000 -0.47381
|
||||
( -156 404 1074 ) ( 103 253 1131 ) ( -205 253 1131 ) shingle [ -1.00000 0.00000 0.00000 0.00000 ] [ 0.00000 -1.00000 0.00000 -860.89148 ] 0 0.50000 -0.46824
|
||||
( 97 253 1072 ) ( 51 142 1115 ) ( 114 293 1193 ) shingle [ 0.00000 0.93376 0.35791 -4.01649 ] [ 0.00000 -0.31094 0.95043 -5.66571 ] 0 0.46633 -0.49590
|
||||
}
|
||||
// Brush 43
|
||||
// Roof:g[2] -> poly:p[14]
|
||||
{
|
||||
( 0 256 896 ) ( 0 256 1152 ) ( 256 256 896 ) paintedwood [ 1.00000 0.00000 0.00000 156.77968 ] [ 0.08716 0.00000 0.99619 1798.84511 ] 0 0.50000 -0.50000
|
||||
( -114 247 1072 ) ( -130 286 1193 ) ( -68 135 1115 ) paintedwood [ 0.00000 -1.00000 0.00000 721.77261 ] [ 0.00000 -0.08057 0.99675 2152.02240 ] 0 0.46194 -0.49972
|
||||
( -99 253 1072 ) ( -115 292 1193 ) ( -145 364 1029 ) paintedwood [ 0.00000 1.00000 0.00000 -359.90508 ] [ 0.00000 0.08057 0.99675 2152.02240 ] 0 0.46194 -0.49972
|
||||
( -114 415 1017 ) ( -131 455 1137 ) ( -233 366 1017 ) paintedwood [ -1.00000 0.00000 0.00000 239.49257 ] [ -0.21604 0.00000 0.97639 2165.34320 ] 0 0.46194 -0.48088
|
||||
( -63 291 1132 ) ( -17 180 1175 ) ( -181 242 1132 ) paintedwood [ -0.92388 -0.38268 0.00000 52.28896 ] [ 0.29567 -0.95529 0.00000 -623.79706 ] 0 0.50000 -0.47155
|
||||
( -61 286 1117 ) ( -107 398 1074 ) ( -179 237 1117 ) paintedwood [ 0.92388 0.38268 0.00000 -160.03275 ] [ 0.46643 -0.88456 0.00000 -612.42210 ] 0 0.50000 -0.47155
|
||||
}
|
||||
// Brush 44
|
||||
// Roof:g[2] -> poly:p[15]
|
||||
{
|
||||
( 854 1216 896 ) ( 854 1216 1152 ) ( 1110 1472 896 ) paintedwood [ 0.00000 -1.00000 0.00000 608.00000 ] [ 0.00000 0.00000 1.00000 447.99998 ] 0 2.00000 -2.00000
|
||||
( -61 286 1117 ) ( -107 398 1074 ) ( -179 237 1117 ) paintedwood [ -0.92388 -0.38268 0.00000 53.32834 ] [ -0.38268 0.92388 0.00000 305.04581 ] 0 1.00000 -0.94264
|
||||
( -63 291 1132 ) ( -17 180 1175 ) ( -181 242 1132 ) paintedwood [ -0.92388 -0.38268 0.00000 53.32834 ] [ 0.38268 -0.92388 0.00000 -310.71164 ] 0 1.00000 -0.94264
|
||||
( -114 247 1072 ) ( -130 286 1193 ) ( -68 135 1115 ) paintedwood [ 0.00000 -0.93376 0.35790 -106.02814 ] [ 0.00000 0.31094 0.95043 1099.59476 ] 0 0.93267 -0.99181
|
||||
( 0 256 896 ) ( 256 256 896 ) ( 0 256 1152 ) paintedwood [ 1.00000 0.00000 0.00000 0.00000 ] [ 0.00000 0.00000 1.00000 447.99998 ] 0 2.00000 -2.00000
|
||||
}
|
||||
// Brush 45
|
||||
// Roof:g[2] -> poly:p[16]
|
||||
{
|
||||
( 854 1216 896 ) ( 854 1216 1152 ) ( 1110 1472 896 ) shingle [ 0.00000 -1.00000 0.00000 511.94526 ] [ 0.00000 0.00000 1.00000 0.00000 ] 0 0.35355 -0.50000
|
||||
( -249 107 1072 ) ( -361 153 1029 ) ( -289 123 1193 ) shingle [ 0.93376 0.00000 -0.35790 1224.55857 ] [ 0.31094 0.00000 0.95043 1840.64379 ] 0 0.46633 -0.49590
|
||||
( -256 100 1125 ) ( -169 401 1074 ) ( -319 251 1074 ) shingle [ 0.70711 0.70711 0.00000 -21.07174 ] [ 0.70711 -0.70711 0.00000 -752.79698 ] 0 0.50000 -0.47381
|
||||
( -397 173 1074 ) ( -106 249 1131 ) ( -324 32 1131 ) shingle [ -0.70711 -0.70711 0.00000 0.00000 ] [ 0.70711 -0.70711 0.00000 -859.20450 ] 0 0.50000 -0.46824
|
||||
( -114 247 1072 ) ( -68 135 1115 ) ( -130 286 1193 ) shingle [ 0.00000 0.93376 0.35790 -1219.19614 ] [ 0.00000 -0.31094 0.95043 1842.54269 ] 0 0.46633 -0.49590
|
||||
}
|
||||
// Brush 46
|
||||
// Roof:g[2] -> poly:p[17]
|
||||
{
|
||||
( -256 92 1072 ) ( -144 46 1115 ) ( -295 108 1193 ) shingle [ -0.93376 0.00000 0.35791 -2.02087 ] [ 0.31094 0.00000 0.95043 -26.17600 ] 0 0.46633 -0.49590
|
||||
( -257 -109 1125 ) ( -257 102 1131 ) ( -257 313 1131 ) shingle [ 0.00000 1.00000 0.00000 0.00000 ] [ 0.00000 0.00000 1.00000 -24.00269 ] 0 0.50000 -0.50000
|
||||
( -408 -157 1074 ) ( -257 102 1131 ) ( -257 -206 1131 ) shingle [ 0.00000 -1.00000 0.00000 0.00000 ] [ 1.00000 0.00000 0.00000 -868.93447 ] 0 0.50000 -0.46824
|
||||
( -257 -109 1125 ) ( -408 164 1074 ) ( -408 -46 1074 ) shingle [ 0.00000 1.00000 0.00000 -0.00019 ] [ 1.00000 0.00000 0.00000 -795.96029 ] 0 0.50000 -0.47381
|
||||
( -257 -100 1072 ) ( -368 -146 1029 ) ( -296 -116 1193 ) shingle [ 0.93376 0.00000 -0.35791 -3.33395 ] [ 0.31094 0.00000 0.95043 -24.27976 ] 0 0.46633 -0.49590
|
||||
}
|
||||
// Brush 47
|
||||
// Roof:g[2] -> poly:p[18]
|
||||
{
|
||||
( -251 -115 1072 ) ( -139 -69 1115 ) ( -290 -131 1193 ) shingle [ -0.93376 0.00000 0.35790 17.83131 ] [ 0.31094 0.00000 0.95043 -25.51109 ] 0 0.46633 -0.49590
|
||||
( -108 -256 1125 ) ( -257 -107 1131 ) ( -406 42 1131 ) shingle [ 0.00000 1.00000 0.00000 515.83011 ] [ 0.00000 -0.00001 1.00000 -30.00830 ] 0 0.35355 -0.50000
|
||||
( -181 -398 1074 ) ( -257 -107 1131 ) ( -39 -325 1131 ) shingle [ 0.70711 -0.70711 0.00000 0.00001 ] [ 0.70711 0.70711 0.00000 -871.36451 ] 0 0.50000 -0.46824
|
||||
( -108 -256 1125 ) ( -408 -170 1074 ) ( -259 -319 1074 ) shingle [ -0.70711 0.70711 0.00000 -15.69794 ] [ 0.70711 0.70711 0.00000 -798.49645 ] 0 0.50000 -0.47381
|
||||
( -115 -250 1072 ) ( -161 -362 1029 ) ( -131 -290 1193 ) shingle [ 0.00000 0.93376 -0.35791 -17.91730 ] [ 0.00000 0.31094 0.95043 -25.48064 ] 0 0.46633 -0.49590
|
||||
}
|
||||
// Brush 48
|
||||
// Roof:g[2] -> poly:p[19]
|
||||
{
|
||||
( -256 0 896 ) ( -256 0 1152 ) ( -256 256 896 ) paintedwood [ 0.00000 1.00000 0.00000 156.77968 ] [ 0.00000 0.08716 0.99619 1798.84511 ] 0 0.50000 -0.50000
|
||||
( -256 92 1072 ) ( -295 108 1193 ) ( -144 46 1115 ) paintedwood [ 1.00000 0.00000 0.00000 740.71612 ] [ 0.08057 0.00000 0.99675 2152.02240 ] 0 0.46194 -0.49972
|
||||
( -249 107 1072 ) ( -289 123 1193 ) ( -361 153 1029 ) paintedwood [ -1.00000 0.00000 0.00000 -352.33915 ] [ -0.08057 0.00000 0.99675 2152.02240 ] 0 0.46194 -0.49972
|
||||
( -380 213 1015 ) ( -420 229 1135 ) ( -429 95 1015 ) paintedwood [ 0.00000 -1.00000 0.00000 351.40601 ] [ 0.00000 0.04971 0.99876 2161.23932 ] 0 0.46194 -0.47011
|
||||
( -251 159 1132 ) ( -139 113 1175 ) ( -300 41 1132 ) paintedwood [ -0.38268 -0.92388 0.00000 47.98868 ] [ 0.88456 -0.46643 0.00000 -623.22211 ] 0 0.50000 -0.47155
|
||||
( -246 157 1117 ) ( -357 203 1074 ) ( -295 39 1117 ) paintedwood [ 0.38268 0.92388 0.00000 -155.63220 ] [ 0.95529 -0.29567 0.00000 -611.84716 ] 0 0.50000 -0.47155
|
||||
}
|
||||
// Brush 49
|
||||
// Roof:g[2] -> poly:p[20]
|
||||
{
|
||||
( -182 -178 896 ) ( -182 -178 1152 ) ( -363 3 896 ) paintedwood [ 0.00000 1.00000 0.00000 661.29518 ] [ 0.00000 0.06175 0.99809 1798.84511 ] 0 0.35355 -0.49905
|
||||
( -247 -113 1072 ) ( -287 -129 1193 ) ( -136 -67 1115 ) paintedwood [ 1.00000 0.00000 0.00000 722.36221 ] [ 0.08057 0.00000 0.99675 2152.02240 ] 0 0.46194 -0.49972
|
||||
( -253 -98 1072 ) ( -293 -115 1193 ) ( -365 -144 1029 ) paintedwood [ -1.00000 0.00000 0.00000 -360.49460 ] [ -0.08057 0.00000 0.99675 2152.02240 ] 0 0.46194 -0.49972
|
||||
( -421 -116 1015 ) ( -460 -132 1135 ) ( -372 -234 1015 ) paintedwood [ 0.00000 -1.00000 0.00000 235.66416 ] [ 0.00000 -0.21604 0.97639 2161.23939 ] 0 0.46194 -0.48088
|
||||
( -291 -62 1132 ) ( -180 -16 1175 ) ( -242 -180 1132 ) paintedwood [ 0.38268 -0.92388 0.00000 53.87029 ] [ 0.95529 0.29567 0.00000 -623.72979 ] 0 0.50000 -0.47155
|
||||
( -286 -60 1117 ) ( -398 -106 1074 ) ( -237 -178 1117 ) paintedwood [ -0.38268 0.92388 0.00000 -161.60230 ] [ 0.88456 0.46643 0.00000 -612.35485 ] 0 0.50000 -0.47155
|
||||
}
|
||||
// Brush 50
|
||||
// Roof:g[2] -> poly:p[21]
|
||||
{
|
||||
( -7 -256 896 ) ( -7 -256 1152 ) ( -263 -256 896 ) paintedwood [ -1.00000 0.00000 0.00000 141.81395 ] [ -0.08716 0.00000 0.99619 1798.84511 ] 0 0.50000 -0.50000
|
||||
( -99 -256 1072 ) ( -116 -295 1193 ) ( -53 -144 1115 ) paintedwood [ 0.00000 1.00000 0.00000 741.28922 ] [ 0.00000 0.08057 0.99675 2152.02240 ] 0 0.46194 -0.49972
|
||||
( -114 -250 1072 ) ( -131 -289 1193 ) ( -160 -361 1029 ) paintedwood [ 0.00000 -1.00000 0.00000 -352.91219 ] [ 0.00000 -0.08057 0.99675 2152.02240 ] 0 0.46194 -0.49972
|
||||
( -220 -380 1015 ) ( -237 -420 1135 ) ( -102 -429 1015 ) paintedwood [ 1.00000 0.00000 0.00000 367.60452 ] [ -0.04971 0.00000 0.99876 2161.23957 ] 0 0.46194 -0.47011
|
||||
( -167 -251 1132 ) ( -121 -140 1175 ) ( -48 -300 1132 ) paintedwood [ 0.92388 -0.38268 0.00000 61.03566 ] [ 0.46643 0.88456 0.00000 -629.84178 ] 0 0.50000 -0.47155
|
||||
( -165 -246 1117 ) ( -211 -358 1074 ) ( -46 -295 1117 ) paintedwood [ -0.92388 0.38268 0.00000 -169.83306 ] [ 0.29567 0.95529 0.00000 -618.46686 ] 0 0.50000 -0.47155
|
||||
}
|
||||
// Brush 51
|
||||
// Roof:g[2] -> poly:p[22]
|
||||
{
|
||||
( 854 1216 896 ) ( 854 1216 1152 ) ( 1110 1472 896 ) paintedwood [ 0.00000 -1.00000 0.00000 608.00000 ] [ 0.00000 0.00000 1.00000 448.00000 ] 0 2.00000 -2.00000
|
||||
( -246 157 1117 ) ( -357 203 1074 ) ( -295 39 1117 ) paintedwood [ -0.38268 -0.92388 0.00000 51.15312 ] [ -0.92388 0.38268 0.00000 304.75941 ] 0 1.00000 -0.94264
|
||||
( -251 159 1132 ) ( -139 113 1175 ) ( -300 41 1132 ) paintedwood [ -0.38268 -0.92388 0.00000 51.15312 ] [ 0.92388 -0.38268 0.00000 -310.42528 ] 0 1.00000 -0.94264
|
||||
( -249 107 1072 ) ( -289 123 1193 ) ( -361 153 1029 ) paintedwood [ -0.93376 0.00000 -0.35791 103.34697 ] [ -0.31094 0.00000 0.95043 1100.54426 ] 0 0.93267 -0.99181
|
||||
( -256 0 896 ) ( -256 256 896 ) ( -256 0 1152 ) paintedwood [ 0.00000 1.00000 0.00000 0.00000 ] [ 0.00000 0.00000 1.00000 448.00000 ] 0 2.00000 -2.00000
|
||||
}
|
||||
// Brush 52
|
||||
// n-prism:g[4] -> prism-slice:p[1]
|
||||
{
|
||||
( -195 -235 1144 ) ( -146 -353 1144 ) ( -77 -186 1144 ) shingle [ 0.92388 0.38268 0.00000 270.00000 ] [ 0.38268 -0.92388 0.00000 142.00000 ] 0 1.00000 -1.00000
|
||||
( -97 -235 1272 ) ( -146 -117 1272 ) ( 21 -186 1272 ) shingle [ -1.00000 0.00000 0.00000 0.00000 ] [ 0.00000 -1.00000 0.00000 0.00000 ] 0 0.50000 -0.50000
|
||||
( -103 249 1144 ) ( -69 166 1272 ) ( 0 0 1144 ) shingle [ 0.00000 -1.00000 0.00000 509.33336 ] [ 0.00000 -0.54475 0.83860 1144.00000 ] 0 1.94881 -1.19247
|
||||
( 0 0 1144 ) ( 0 0 1272 ) ( 103 250 1144 ) shingle [ 0.00000 1.00000 0.00000 0.00000 ] [ 0.00000 0.00000 1.00000 1144.00000 ] 0 1.94964 -1.00000
|
||||
( 103 250 1144 ) ( 69 166 1272 ) ( -103 249 1144 ) shingle [ -1.00000 0.00000 0.00000 205.97020 ] [ 0.00034 0.00000 1.00000 2732.79088 ] 0 0.50000 -0.41862
|
||||
}
|
||||
// Brush 53
|
||||
// n-prism:g[4] -> prism-slice:p[2]
|
||||
{
|
||||
( -195 -235 1144 ) ( -146 -353 1144 ) ( -77 -186 1144 ) shingle [ 0.92388 0.38268 0.00000 270.00000 ] [ 0.38268 -0.92388 0.00000 142.00000 ] 0 1.00000 -1.00000
|
||||
( -97 -235 1272 ) ( -146 -117 1272 ) ( 21 -186 1272 ) shingle [ 0.70711 -0.70711 0.00000 -11.31370 ] [ -0.70711 -0.70711 0.00000 -222.05886 ] 0 0.50000 -0.50000
|
||||
( 103 250 1144 ) ( 69 166 1272 ) ( 0 0 1144 ) shingle [ 0.00000 -1.00000 0.00000 511.32986 ] [ 0.00000 -0.54692 0.83719 1144.00000 ] 0 1.94964 -1.19448
|
||||
( 0 0 1144 ) ( 0 0 1272 ) ( 249 103 1144 ) shingle [ 1.00000 0.00000 0.00000 0.00000 ] [ 0.00000 0.00000 1.00000 1144.00000 ] 0 1.94881 -1.00000
|
||||
( 249 103 1144 ) ( 166 69 1272 ) ( 103 250 1144 ) shingle [ 0.00000 1.00000 0.00000 -1777.17837 ] [ 0.00000 -0.41731 0.90877 2728.54263 ] 0 0.35373 -0.46136
|
||||
}
|
||||
// Brush 54
|
||||
// n-prism:g[4] -> prism-slice:p[3]
|
||||
{
|
||||
( -195 -235 1144 ) ( -146 -353 1144 ) ( -77 -186 1144 ) shingle [ 0.92388 0.38268 0.00000 270.00000 ] [ 0.38268 -0.92388 0.00000 142.00000 ] 0 1.00000 -1.00000
|
||||
( -97 -235 1272 ) ( -146 -117 1272 ) ( 21 -186 1272 ) shingle [ 0.00000 -1.00000 0.00000 0.00000 ] [ -1.00000 0.00000 0.00000 0.00000 ] 0 0.50000 -0.50000
|
||||
( 249 103 1144 ) ( 166 69 1272 ) ( 0 0 1144 ) shingle [ -1.00000 0.00000 0.00000 509.33336 ] [ -0.54475 0.00000 0.83860 1144.00000 ] 0 1.94881 -1.19247
|
||||
( 0 0 1144 ) ( 0 0 1272 ) ( 250 -103 1144 ) shingle [ 1.00000 0.00000 0.00000 0.00000 ] [ 0.00000 0.00000 1.00000 1144.00000 ] 0 1.94964 -1.00000
|
||||
( 250 -103 1144 ) ( 166 -69 1272 ) ( 249 103 1144 ) shingle [ 0.00000 1.00000 0.00000 205.97020 ] [ 0.00000 -0.00034 1.00000 2732.79088 ] 0 0.50000 -0.41862
|
||||
}
|
||||
// Brush 55
|
||||
// n-prism:g[4] -> prism-slice:p[4]
|
||||
{
|
||||
( -195 -235 1144 ) ( -146 -353 1144 ) ( -77 -186 1144 ) shingle [ 0.92388 0.38268 0.00000 270.00000 ] [ 0.38268 -0.92388 0.00000 142.00000 ] 0 1.00000 -1.00000
|
||||
( -97 -235 1272 ) ( -146 -117 1272 ) ( 21 -186 1272 ) shingle [ 0.70711 0.70711 0.00000 159.83347 ] [ -0.70711 0.70711 0.00000 -415.83343 ] 0 0.50000 -0.50000
|
||||
( 250 -103 1144 ) ( 166 -69 1272 ) ( 0 0 1144 ) shingle [ -1.00000 0.00000 0.00000 511.32986 ] [ -0.54692 0.00000 0.83719 1144.00000 ] 0 1.94964 -1.19448
|
||||
( 0 0 1144 ) ( 0 0 1272 ) ( 103 -249 1144 ) shingle [ 0.00000 -1.00000 0.00000 0.00000 ] [ 0.00000 0.00000 1.00000 1144.00000 ] 0 1.94881 -1.00000
|
||||
( 103 -249 1144 ) ( 69 -166 1272 ) ( 250 -103 1144 ) shingle [ 1.00000 0.00000 0.00000 -1777.17828 ] [ -0.41731 0.00000 0.90877 2728.54257 ] 0 0.35373 -0.46136
|
||||
}
|
||||
// Brush 56
|
||||
// n-prism:g[4] -> prism-slice:p[5]
|
||||
{
|
||||
( -195 -235 1144 ) ( -146 -353 1144 ) ( -77 -186 1144 ) shingle [ 0.92388 0.38268 0.00000 270.00000 ] [ 0.38268 -0.92388 0.00000 142.00000 ] 0 1.00000 -1.00000
|
||||
( -97 -235 1272 ) ( -146 -117 1272 ) ( 21 -186 1272 ) shingle [ 1.00000 0.00000 0.00000 0.00000 ] [ 0.00000 1.00000 0.00000 0.00000 ] 0 0.50000 -0.50000
|
||||
( 103 -249 1144 ) ( 69 -166 1272 ) ( 0 0 1144 ) shingle [ 0.00000 1.00000 0.00000 509.33336 ] [ 0.00000 0.54475 0.83860 1144.00000 ] 0 1.94881 -1.19247
|
||||
( 0 0 1144 ) ( 0 0 1272 ) ( -103 -250 1144 ) shingle [ 0.00000 -1.00000 0.00000 0.00000 ] [ 0.00000 0.00000 1.00000 1144.00000 ] 0 1.94964 -1.00000
|
||||
( -103 -250 1144 ) ( -69 -166 1272 ) ( 103 -249 1144 ) shingle [ 1.00000 0.00000 0.00000 205.97020 ] [ -0.00034 0.00000 1.00000 2732.79088 ] 0 0.50000 -0.41862
|
||||
}
|
||||
// Brush 57
|
||||
// n-prism:g[4] -> prism-slice:p[6]
|
||||
{
|
||||
( -195 -235 1144 ) ( -146 -353 1144 ) ( -77 -186 1144 ) shingle [ 0.92388 0.38268 0.00000 270.00000 ] [ 0.38268 -0.92388 0.00000 142.00000 ] 0 1.00000 -1.00000
|
||||
( -97 -235 1272 ) ( -146 -117 1272 ) ( 21 -186 1272 ) shingle [ -0.70711 0.70711 0.00000 0.00000 ] [ 0.70711 0.70711 0.00000 0.00000 ] 0 0.50000 -0.50000
|
||||
( -103 -250 1144 ) ( -69 -166 1272 ) ( 0 0 1144 ) shingle [ 0.00000 1.00000 0.00000 511.32986 ] [ 0.00000 0.54692 0.83719 1144.00000 ] 0 1.94964 -1.19448
|
||||
( 0 0 1144 ) ( 0 0 1272 ) ( -249 -103 1144 ) shingle [ -1.00000 0.00000 0.00000 0.00000 ] [ 0.00000 0.00000 1.00000 1144.00000 ] 0 1.94881 -1.00000
|
||||
( -249 -103 1144 ) ( -166 -69 1272 ) ( -103 -250 1144 ) shingle [ 0.00000 -1.00000 0.00000 -1777.17828 ] [ 0.00000 0.41731 0.90877 2728.54257 ] 0 0.35373 -0.46136
|
||||
}
|
||||
// Brush 58
|
||||
// n-prism:g[4] -> prism-slice:p[7]
|
||||
{
|
||||
( -195 -235 1144 ) ( -146 -353 1144 ) ( -77 -186 1144 ) shingle [ 0.92388 0.38268 0.00000 270.00000 ] [ 0.38268 -0.92388 0.00000 142.00000 ] 0 1.00000 -1.00000
|
||||
( -97 -235 1272 ) ( -146 -117 1272 ) ( 21 -186 1272 ) shingle [ 0.00000 1.00000 0.00000 24.00000 ] [ 1.00000 0.00000 0.00000 -288.00000 ] 0 0.50000 -0.50000
|
||||
( -249 -103 1144 ) ( -166 -69 1272 ) ( 0 0 1144 ) shingle [ 1.00000 0.00000 0.00000 509.33336 ] [ 0.54475 0.00000 0.83860 1144.00000 ] 0 1.94881 -1.19247
|
||||
( 0 0 1144 ) ( 0 0 1272 ) ( -250 103 1144 ) shingle [ -1.00000 0.00000 0.00000 0.00000 ] [ 0.00000 0.00000 1.00000 1144.00000 ] 0 1.94964 -1.00000
|
||||
( -250 103 1144 ) ( -166 69 1272 ) ( -249 -103 1144 ) shingle [ 0.00000 -1.00000 0.00000 205.97020 ] [ 0.00000 0.00034 1.00000 2732.79088 ] 0 0.50000 -0.41862
|
||||
}
|
||||
// Brush 59
|
||||
// n-prism:g[4] -> prism-slice:p[8]
|
||||
{
|
||||
( -195 -235 1144 ) ( -146 -353 1144 ) ( -77 -186 1144 ) shingle [ 0.92388 0.38268 0.00000 270.00000 ] [ 0.38268 -0.92388 0.00000 142.00000 ] 0 1.00000 -1.00000
|
||||
( -97 -235 1272 ) ( -146 -117 1272 ) ( 21 -186 1272 ) shingle [ -0.70711 -0.70711 0.00000 0.00001 ] [ 0.70711 -0.70711 0.00000 -289.94113 ] 0 0.50000 -0.50000
|
||||
( -250 103 1144 ) ( -166 69 1272 ) ( 0 0 1144 ) shingle [ 1.00000 0.00000 0.00000 511.32986 ] [ 0.54692 0.00000 0.83719 1144.00000 ] 0 1.94964 -1.19448
|
||||
( 0 0 1144 ) ( 0 0 1272 ) ( -103 249 1144 ) shingle [ 0.00000 1.00000 0.00000 0.00000 ] [ 0.00000 0.00000 1.00000 1144.00000 ] 0 1.94881 -1.00000
|
||||
( -103 249 1144 ) ( -69 166 1272 ) ( -250 103 1144 ) shingle [ -1.00000 0.00000 0.00000 -1777.17830 ] [ 0.41731 0.00000 0.90877 2728.54247 ] 0 0.35373 -0.46136
|
||||
}
|
||||
// Brush 60
|
||||
// poly:p[5]
|
||||
{
|
||||
( -208 0 832 ) ( -208 -128 832 ) ( -80 0 832 ) light [ 0.00000 -1.00000 0.00000 32.00000 ] [ 1.00000 0.00000 0.00000 -240.00000 ] 0 1.00000 -1.00000
|
||||
( -208 0 864 ) ( -208 128 864 ) ( -80 0 864 ) light [ 0.00000 1.00000 0.00000 32.00000 ] [ 1.00000 0.00000 0.00000 -240.00000 ] 0 1.00000 -1.00000
|
||||
( -208 -32 800 ) ( -208 -32 928 ) ( -80 -32 800 ) light [ 1.00000 0.00000 0.00000 208.00000 ] [ 0.00000 0.00000 1.00000 800.00000 ] 0 1.00000 -1.00000
|
||||
( -208 32 800 ) ( -208 32 928 ) ( -336 32 800 ) light [ -1.00000 0.00000 0.00000 -208.00000 ] [ 0.00000 0.00000 1.00000 800.00000 ] 0 1.00000 -1.00000
|
||||
( -224 0 800 ) ( -224 0 928 ) ( -224 -128 800 ) light [ 0.00000 -1.00000 0.00000 32.00000 ] [ 0.00000 0.00000 1.00000 832.00000 ] 0 1.00000 -1.00000
|
||||
( -208 0 800 ) ( -208 0 928 ) ( -208 128 800 ) light [ 0.00000 1.00000 0.00000 32.00000 ] [ 0.00000 0.00000 1.00000 832.00000 ] 0 1.00000 -1.00000
|
||||
}
|
||||
// Brush 61
|
||||
// poly:p[6]
|
||||
{
|
||||
( 224 0 832 ) ( 224 -128 832 ) ( 352 0 832 ) light [ 0.00000 -1.00000 0.00000 32.00000 ] [ 1.00000 0.00000 0.00000 192.00000 ] 0 1.00000 -1.00000
|
||||
( 224 0 864 ) ( 224 128 864 ) ( 352 0 864 ) light [ 0.00000 1.00000 0.00000 32.00000 ] [ 1.00000 0.00000 0.00000 192.00000 ] 0 1.00000 -1.00000
|
||||
( 224 -32 800 ) ( 224 -32 928 ) ( 352 -32 800 ) light [ 1.00000 0.00000 0.00000 -224.00000 ] [ 0.00000 0.00000 1.00000 800.00000 ] 0 1.00000 -1.00000
|
||||
( 224 32 800 ) ( 224 32 928 ) ( 96 32 800 ) light [ -1.00000 0.00000 0.00000 224.00000 ] [ 0.00000 0.00000 1.00000 800.00000 ] 0 1.00000 -1.00000
|
||||
( 208 0 800 ) ( 208 0 928 ) ( 208 -128 800 ) light [ 0.00000 -1.00000 0.00000 32.00000 ] [ 0.00000 0.00000 1.00000 832.00000 ] 0 1.00000 -1.00000
|
||||
( 224 0 800 ) ( 224 0 928 ) ( 224 128 800 ) light [ 0.00000 1.00000 0.00000 32.00000 ] [ 0.00000 0.00000 1.00000 832.00000 ] 0 1.00000 -1.00000
|
||||
}
|
||||
// Brush 62
|
||||
// poly:p[7]
|
||||
{
|
||||
( 0 208 832 ) ( -128 208 832 ) ( 0 80 832 ) light [ -1.00000 0.00000 0.00000 32.00000 ] [ 0.00000 -1.00000 0.00000 -240.00000 ] 0 1.00000 -1.00000
|
||||
( 0 208 864 ) ( 128 208 864 ) ( 0 80 864 ) light [ 1.00000 0.00000 0.00000 32.00000 ] [ 0.00000 -1.00000 0.00000 -240.00000 ] 0 1.00000 -1.00000
|
||||
( -32 208 800 ) ( -32 208 928 ) ( -32 80 800 ) light [ 0.00000 -1.00000 0.00000 208.00000 ] [ 0.00000 0.00000 1.00000 800.00000 ] 0 1.00000 -1.00000
|
||||
( 32 208 800 ) ( 32 208 928 ) ( 32 336 800 ) light [ 0.00000 1.00000 0.00000 -208.00000 ] [ 0.00000 0.00000 1.00000 800.00000 ] 0 1.00000 -1.00000
|
||||
( 0 224 800 ) ( 0 224 928 ) ( -128 224 800 ) light [ -1.00000 0.00000 0.00000 32.00000 ] [ 0.00000 0.00000 1.00000 832.00000 ] 0 1.00000 -1.00000
|
||||
( 0 208 800 ) ( 0 208 928 ) ( 128 208 800 ) light [ 1.00000 0.00000 0.00000 32.00000 ] [ 0.00000 0.00000 1.00000 832.00000 ] 0 1.00000 -1.00000
|
||||
}
|
||||
// Brush 63
|
||||
// poly:p[8]
|
||||
{
|
||||
( 0 -224 832 ) ( -128 -224 832 ) ( 0 -352 832 ) light [ -1.00000 0.00000 0.00000 32.00000 ] [ 0.00000 -1.00000 0.00000 192.00000 ] 0 1.00000 -1.00000
|
||||
( 0 -224 864 ) ( 128 -224 864 ) ( 0 -352 864 ) light [ 1.00000 0.00000 0.00000 32.00000 ] [ 0.00000 -1.00000 0.00000 192.00000 ] 0 1.00000 -1.00000
|
||||
( -32 -224 800 ) ( -32 -224 928 ) ( -32 -352 800 ) light [ 0.00000 -1.00000 0.00000 -224.00000 ] [ 0.00000 0.00000 1.00000 800.00000 ] 0 1.00000 -1.00000
|
||||
( 32 -224 800 ) ( 32 -224 928 ) ( 32 -96 800 ) light [ 0.00000 1.00000 0.00000 224.00000 ] [ 0.00000 0.00000 1.00000 800.00000 ] 0 1.00000 -1.00000
|
||||
( 0 -208 800 ) ( 0 -208 928 ) ( -128 -208 800 ) light [ -1.00000 0.00000 0.00000 32.00000 ] [ 0.00000 0.00000 1.00000 832.00000 ] 0 1.00000 -1.00000
|
||||
( 0 -224 800 ) ( 0 -224 928 ) ( 128 -224 800 ) light [ 1.00000 0.00000 0.00000 32.00000 ] [ 0.00000 0.00000 1.00000 832.00000 ] 0 1.00000 -1.00000
|
||||
}
|
||||
}
|
||||
// Entity 1
|
||||
// group:g[9] -> light_omni:e[1]
|
||||
{
|
||||
"classname" "light_omni"
|
||||
"origin" "0 216 831"
|
||||
"color" "230 230 255"
|
||||
"alarm_type" "0"
|
||||
"falloff1" "25"
|
||||
"falloff2" "200"
|
||||
}
|
||||
// Entity 2
|
||||
// group:g[9] -> light_omni:e[2]
|
||||
{
|
||||
"classname" "light_omni"
|
||||
"origin" "0 225 848"
|
||||
"color" "230 230 255"
|
||||
"alarm_type" "0"
|
||||
"falloff1" "25"
|
||||
"falloff2" "200"
|
||||
}
|
||||
// Entity 3
|
||||
// group:g[10] -> light_omni:e[1]
|
||||
{
|
||||
"classname" "light_omni"
|
||||
"origin" "-216 -1 831"
|
||||
"color" "230 230 255"
|
||||
"alarm_type" "0"
|
||||
"falloff1" "25"
|
||||
"falloff2" "200"
|
||||
}
|
||||
// Entity 4
|
||||
// group:g[10] -> light_omni:e[2]
|
||||
{
|
||||
"classname" "light_omni"
|
||||
"origin" "-225 -1 848"
|
||||
"color" "230 230 255"
|
||||
"alarm_type" "0"
|
||||
"falloff1" "25"
|
||||
"falloff2" "200"
|
||||
}
|
||||
// Entity 5
|
||||
// group:g[11] -> light_omni:e[1]
|
||||
{
|
||||
"classname" "light_omni"
|
||||
"origin" "216 -1 831"
|
||||
"color" "230 230 255"
|
||||
"alarm_type" "0"
|
||||
"falloff1" "25"
|
||||
"falloff2" "200"
|
||||
}
|
||||
// Entity 6
|
||||
// group:g[11] -> light_omni:e[2]
|
||||
{
|
||||
"classname" "light_omni"
|
||||
"origin" "225 -1 848"
|
||||
"color" "230 230 255"
|
||||
"alarm_type" "0"
|
||||
"falloff1" "25"
|
||||
"falloff2" "200"
|
||||
}
|
||||
// Entity 7
|
||||
// group:g[12] -> light_omni:e[1]
|
||||
{
|
||||
"classname" "light_omni"
|
||||
"origin" "0 -216 831"
|
||||
"color" "230 230 255"
|
||||
"alarm_type" "0"
|
||||
"falloff1" "25"
|
||||
"falloff2" "200"
|
||||
}
|
||||
// Entity 8
|
||||
// group:g[12] -> light_omni:e[2]
|
||||
{
|
||||
"classname" "light_omni"
|
||||
"origin" "0 -225 848"
|
||||
"color" "230 230 255"
|
||||
"alarm_type" "0"
|
||||
"falloff1" "25"
|
||||
"falloff2" "200"
|
||||
}
|
||||
@@ -0,0 +1,35 @@
|
||||
// This map has been written by QuArK - Quake Army Knife, QuArK 6.3
|
||||
// It is a map for the game Torque.
|
||||
// For more information see QuArK's Home Page : http://www.planetquake.com/quark
|
||||
|
||||
// Entity 0
|
||||
// worldspawn
|
||||
{
|
||||
"classname" "worldspawn"
|
||||
"detail_number" "0"
|
||||
"min_pixels" "250"
|
||||
"geometry_scale" "32.0"
|
||||
"light_geometry_scale" "32.0"
|
||||
"ambient_color" "0 0 0"
|
||||
"emergency_ambient_color" "0 0 0"
|
||||
"mapversion" "220"
|
||||
// Brush 0
|
||||
// poly:p[2]
|
||||
{
|
||||
( -472 -256 -64 ) ( -544 256 -64 ) ( -544 -256 -64 ) jump [ 1.00000 0.00000 0.00000 256.00000 ] [ 0.00000 -1.00000 0.00000 0.00000 ] 0 4.00000 -4.00000
|
||||
( 112 -256 228 ) ( 112 256 264 ) ( 112 768 264 ) jump [ 0.00000 1.00000 0.00000 128.00000 ] [ 0.00000 0.00000 -1.00000 -131.56419 ] 0 2.00000 -2.00000
|
||||
( -50 -256 16 ) ( -50 -256 528 ) ( 462 -256 16 ) metal-strip [ 0.44620 0.00000 -0.89493 92.72789 ] [ 0.89493 0.00000 0.44620 -257.70046 ] 0 2.00000 -2.00000
|
||||
( -50 256 16 ) ( -50 256 528 ) ( -562 256 16 ) metal-strip [ -0.44620 0.00000 0.89493 -76.31253 ] [ -0.89493 0.00000 -0.44620 60.66721 ] 0 2.00000 -2.00000
|
||||
( 112 -256 264 ) ( -544 256 -64 ) ( -544 768 -64 ) jump [ 0.00000 -1.00000 0.00000 128.00000 ] [ 1.00000 0.00000 0.00000 -193.19625 ] 0 2.00000 -1.78885
|
||||
( 112 -256 228 ) ( -472 256 -64 ) ( -472 -256 -64 ) jump [ 0.00000 1.00000 0.00000 128.00000 ] [ -1.00000 0.00000 0.00000 -80.07929 ] 0 2.00000 -1.78885
|
||||
}
|
||||
// Brush 1
|
||||
// poly:p[3]
|
||||
{
|
||||
( 88 -224 -64 ) ( -472 224 -64 ) ( -472 -224 -64 ) concrete_1 [ 1.00000 0.00000 0.00000 -97.45154 ] [ 0.00000 -1.00000 0.00000 0.00000 ] 0 1.00000 -1.00000
|
||||
( -160 -224 32 ) ( -160 -224 160 ) ( -32 -224 32 ) jump_side [ 1.00000 0.00000 0.00000 215.77143 ] [ 0.00000 0.00000 1.00000 -29.25714 ] 0 2.18750 -2.18750
|
||||
( -160 224 32 ) ( -160 224 160 ) ( -288 224 32 ) jump_side [ 1.00000 0.00000 0.00000 -40.00000 ] [ 0.00000 0.00000 1.00000 -29.09091 ] 0 2.20000 -2.20000
|
||||
( 88 -224 216 ) ( -472 224 -64 ) ( -472 672 -64 ) concrete_1 [ 0.00000 -1.00000 0.00000 512.00000 ] [ 1.00000 0.00000 0.00000 -0.18470 ] 0 1.00000 -0.89443
|
||||
( 88 -224 -64 ) ( 88 -224 216 ) ( 88 224 216 ) jump_front [ 0.00000 1.00000 0.00000 103.63636 ] [ 0.00000 0.00000 1.00000 -29.09091 ] 0 2.20000 -2.20000
|
||||
}
|
||||
}
|
||||
546
Torque/SDK/example/starter.racing/data/missions/racing.mis
Normal file
@@ -0,0 +1,546 @@
|
||||
//--- OBJECT WRITE BEGIN ---
|
||||
new SimGroup(MissionGroup) {
|
||||
|
||||
new ScriptObject(MissionInfo) {
|
||||
desc0 = "This is a very simple racing example mission which illustrates the wheeled vehicle physics included in the engine. Mission lighting only occurs the first time the mission is loaded.";
|
||||
type = "racing";
|
||||
name = "Racing Example";
|
||||
};
|
||||
new MissionArea(MissionArea) {
|
||||
area = "-1024 -1024 2048 2048";
|
||||
flightCeiling = "300";
|
||||
flightCeilingRange = "20";
|
||||
locked = "true";
|
||||
};
|
||||
new SimGroup(environment) {
|
||||
|
||||
new Sky(Sky) {
|
||||
position = "336 136 0";
|
||||
rotation = "1 0 0 0";
|
||||
scale = "1 1 1";
|
||||
materialList = "~/data/skies/sky_day.dml";
|
||||
cloudHeightPer[0] = "7";
|
||||
cloudHeightPer[1] = "0.3";
|
||||
cloudHeightPer[2] = "0.199973";
|
||||
cloudSpeed1 = "0.0005";
|
||||
cloudSpeed2 = "0.0002";
|
||||
cloudSpeed3 = "0.001";
|
||||
visibleDistance = "800";
|
||||
fogDistance = "500";
|
||||
fogColor = "0.400000 0.400000 0.400000 1.000000";
|
||||
fogStorm1 = "0";
|
||||
fogStorm2 = "1";
|
||||
fogStorm3 = "0";
|
||||
fogVolume1 = "0 0 0";
|
||||
fogVolume2 = "0 0 0";
|
||||
fogVolume3 = "0 0 0";
|
||||
fogVolumeColor1 = "0.900000 0.900000 0.900000 1.000000";
|
||||
fogVolumeColor2 = "0.900000 0.900000 0.900000 1.000000";
|
||||
fogVolumeColor3 = "0.000000 0.000000 0.000000 1.000000";
|
||||
windVelocity = "1 1 0";
|
||||
windEffectPrecipitation = "0";
|
||||
SkySolidColor = "0.640000 0.148000 0.215000 0.000000";
|
||||
useSkyTextures = "1";
|
||||
renderBottomTexture = "0";
|
||||
noRenderBans = "0";
|
||||
locked = "true";
|
||||
};
|
||||
new Sun() {
|
||||
azimuth = "245";
|
||||
elevation = "45";
|
||||
color = "1.000000 1.000000 0.700000 1.000000";
|
||||
ambient = "0.300000 0.300000 0.400000 1.000000";
|
||||
locked = "true";
|
||||
direction = "0.56146 0.56146 -0.607886";
|
||||
rotation = "1 0 0 0";
|
||||
scale = "1 1 1";
|
||||
position = "0 0 0";
|
||||
};
|
||||
new fxSunLight(sunflare1) {
|
||||
position = "98.5277 -289.053 188.13";
|
||||
rotation = "1 0 0 0";
|
||||
scale = "1 1 1";
|
||||
Enable = "1";
|
||||
LocalFlareBitmap = "common/lighting/corona";
|
||||
RemoteFlareBitmap = "common/lighting/corona";
|
||||
SunAzimuth = "224";
|
||||
SunElevation = "10";
|
||||
LockToRealSun = "1";
|
||||
FlareTP = "1";
|
||||
Colour = "1.000000 0.000000 0.000000 1.000000";
|
||||
Brightness = "1";
|
||||
FlareSize = "1.5";
|
||||
FadeTime = "0.1";
|
||||
BlendMode = "0";
|
||||
AnimColour = "0";
|
||||
AnimBrightness = "1";
|
||||
AnimRotation = "1";
|
||||
AnimSize = "1";
|
||||
AnimAzimuth = "0";
|
||||
AnimElevation = "0";
|
||||
LerpColour = "1";
|
||||
LerpBrightness = "1";
|
||||
LerpRotation = "1";
|
||||
LerpSize = "1";
|
||||
LerpAzimuth = "1";
|
||||
LerpElevation = "1";
|
||||
LinkFlareSize = "0";
|
||||
SingleColourKeys = "1";
|
||||
MinColour = "0.000000 0.000000 0.000000 1.000000";
|
||||
MaxColour = "1.000000 1.000000 1.000000 1.000000";
|
||||
MinBrightness = "0.4";
|
||||
MaxBrightness = "1";
|
||||
MinRotation = "0";
|
||||
MaxRotation = "359";
|
||||
minSize = "0.5";
|
||||
maxSize = "1";
|
||||
MinAzimuth = "0";
|
||||
MaxAzimuth = "359";
|
||||
MinElevation = "-30";
|
||||
MaxElevation = "210";
|
||||
RedKeys = "AZA";
|
||||
GreenKeys = "AZA";
|
||||
BlueKeys = "AZA";
|
||||
BrightnessKeys = "JAZJTAJ";
|
||||
RotationKeys = "ZA";
|
||||
SizeKeys = "ATAZA";
|
||||
AzimuthKeys = "AZ";
|
||||
ElevationKeys = "AZ";
|
||||
ColourTime = "5";
|
||||
BrightnessTime = "10";
|
||||
RotationTime = "40";
|
||||
SizeTime = "30";
|
||||
AzimuthTime = "5";
|
||||
ElevationTime = "5";
|
||||
};
|
||||
new fxSunLight(sunflare2) {
|
||||
position = "72.9234 -289.051 187.692";
|
||||
rotation = "1 0 0 0";
|
||||
scale = "1 1 1";
|
||||
Enable = "1";
|
||||
LocalFlareBitmap = "common/lighting/corona";
|
||||
RemoteFlareBitmap = "common/lighting/corona";
|
||||
SunAzimuth = "224";
|
||||
SunElevation = "10";
|
||||
LockToRealSun = "1";
|
||||
FlareTP = "1";
|
||||
Colour = "1.000000 1.000000 0.000000 1.000000";
|
||||
Brightness = "1";
|
||||
FlareSize = "1.5";
|
||||
FadeTime = "0.1";
|
||||
BlendMode = "0";
|
||||
AnimColour = "0";
|
||||
AnimBrightness = "1";
|
||||
AnimRotation = "1";
|
||||
AnimSize = "0";
|
||||
AnimAzimuth = "0";
|
||||
AnimElevation = "0";
|
||||
LerpColour = "1";
|
||||
LerpBrightness = "1";
|
||||
LerpRotation = "1";
|
||||
LerpSize = "1";
|
||||
LerpAzimuth = "1";
|
||||
LerpElevation = "1";
|
||||
LinkFlareSize = "0";
|
||||
SingleColourKeys = "1";
|
||||
MinColour = "0.000000 0.000000 0.000000 1.000000";
|
||||
MaxColour = "1.000000 1.000000 1.000000 1.000000";
|
||||
MinBrightness = "0.25";
|
||||
MaxBrightness = "0.5";
|
||||
MinRotation = "0";
|
||||
MaxRotation = "359";
|
||||
minSize = "0.5";
|
||||
maxSize = "1";
|
||||
MinAzimuth = "0";
|
||||
MaxAzimuth = "359";
|
||||
MinElevation = "-30";
|
||||
MaxElevation = "210";
|
||||
RedKeys = "AZA";
|
||||
GreenKeys = "AZA";
|
||||
BlueKeys = "AZA";
|
||||
BrightnessKeys = "AZJTA";
|
||||
RotationKeys = "AZ";
|
||||
SizeKeys = "ATAZA";
|
||||
AzimuthKeys = "AZ";
|
||||
ElevationKeys = "AZ";
|
||||
ColourTime = "5";
|
||||
BrightnessTime = "6";
|
||||
RotationTime = "80";
|
||||
SizeTime = "5";
|
||||
AzimuthTime = "5";
|
||||
ElevationTime = "5";
|
||||
};
|
||||
new TerrainBlock(Terrain) {
|
||||
rotation = "1 0 0 0";
|
||||
scale = "1 1 1";
|
||||
detailTexture = "~/data/terrains/details/detail1";
|
||||
terrainFile = "./racing.ter";
|
||||
squareSize = "8";
|
||||
bumpScale = "1";
|
||||
bumpOffset = "0.01";
|
||||
zeroBumpScale = "8";
|
||||
locked = "true";
|
||||
position = "-1024 -1024 0";
|
||||
};
|
||||
new fxFoliageReplicator(ShortGrass) {
|
||||
position = "-386.947 796.221 154.184";
|
||||
rotation = "1 0 0 0";
|
||||
scale = "1 1 1";
|
||||
UseDebugInfo = "0";
|
||||
DebugBoxHeight = "1";
|
||||
HideFoliage = "0";
|
||||
ShowPlacementArea = "0";
|
||||
PlacementAreaHeight = "25";
|
||||
PlacementColour = "0.400000 0.000000 0.800000 1.000000";
|
||||
Seed = "1376312589";
|
||||
FoliageFile = "~/data/shapes/plants/plant2";
|
||||
FoliageCount = "1000";
|
||||
FoliageRetries = "100";
|
||||
InnerRadiusX = "0";
|
||||
InnerRadiusY = "0";
|
||||
OuterRadiusX = "30";
|
||||
OuterRadiusY = "40";
|
||||
MinWidth = "1";
|
||||
MaxWidth = "3";
|
||||
MinHeight = "1";
|
||||
MaxHeight = "1";
|
||||
FixAspectRatio = "1";
|
||||
FixSizeToMax = "0";
|
||||
OffsetZ = "0";
|
||||
RandomFlip = "1";
|
||||
UseCulling = "1";
|
||||
CullResolution = "10";
|
||||
ViewDistance = "60";
|
||||
ViewClosest = "1";
|
||||
FadeInRegion = "20";
|
||||
FadeOutRegion = "1";
|
||||
AlphaCutoff = "0.1";
|
||||
GroundAlpha = "1";
|
||||
SwayOn = "1";
|
||||
SwaySync = "0";
|
||||
SwayMagSide = "0.01";
|
||||
SwayMagFront = "0.03";
|
||||
MinSwayTime = "5";
|
||||
MaxSwayTime = "10";
|
||||
LightOn = "0";
|
||||
LightSync = "0";
|
||||
MinLuminance = "0.7";
|
||||
MaxLuminance = "1";
|
||||
lightTime = "5";
|
||||
AllowOnTerrain = "1";
|
||||
AllowOnInteriors = "0";
|
||||
AllowOnStatics = "0";
|
||||
AllowOnWater = "0";
|
||||
AllowWaterSurface = "0";
|
||||
AllowedTerrainSlope = "90";
|
||||
};
|
||||
|
||||
};
|
||||
new SimGroup(PlayerDropPoints) {
|
||||
|
||||
new SpawnSphere() {
|
||||
position = "-173.824 910.624 196.718";
|
||||
rotation = "0 0 -1 2.47371";
|
||||
scale = "1 1 1";
|
||||
dataBlock = "SpawnSphereMarker";
|
||||
radius = "1";
|
||||
sphereWeight = "100";
|
||||
indoorWeight = "100";
|
||||
outdoorWeight = "100";
|
||||
locked = "false";
|
||||
homingCount = "0";
|
||||
lockCount = "0";
|
||||
};
|
||||
new SpawnSphere() {
|
||||
position = "-160.802 910.516 196.262";
|
||||
rotation = "0 0 -1 2.47371";
|
||||
scale = "1 1 1";
|
||||
dataBlock = "SpawnSphereMarker";
|
||||
radius = "1";
|
||||
sphereWeight = "100";
|
||||
indoorWeight = "100";
|
||||
outdoorWeight = "100";
|
||||
locked = "false";
|
||||
homingCount = "0";
|
||||
lockCount = "0";
|
||||
};
|
||||
new SpawnSphere() {
|
||||
position = "-148.168 911.136 194.677";
|
||||
rotation = "0 0 -1 10.4951";
|
||||
scale = "1 1 1";
|
||||
dataBlock = "SpawnSphereMarker";
|
||||
radius = "1";
|
||||
sphereWeight = "100";
|
||||
indoorWeight = "100";
|
||||
outdoorWeight = "100";
|
||||
locked = "false";
|
||||
homingCount = "0";
|
||||
lockCount = "0";
|
||||
};
|
||||
};
|
||||
new SimGroup(Buildings) {
|
||||
};
|
||||
new InteriorInstance() {
|
||||
position = "-131.795 917.09 192.98";
|
||||
rotation = "0 0 -1 8.02137";
|
||||
scale = "1 1 1";
|
||||
interiorFile = "~/data/interiors/racing/barrier1.dif";
|
||||
showTerrainInside = "0";
|
||||
};
|
||||
new InteriorInstance() {
|
||||
position = "-132.712 882.821 193.112";
|
||||
rotation = "0 0 1 9.74035";
|
||||
scale = "1 1 1";
|
||||
interiorFile = "~/data/interiors/racing/barrier1.dif";
|
||||
showTerrainInside = "0";
|
||||
};
|
||||
new InteriorInstance() {
|
||||
position = "-210.068 1114.36 158.395";
|
||||
rotation = "0 0 -1 112.873";
|
||||
scale = "1 1 1";
|
||||
interiorFile = "~/data/interiors/racing/barrier1.dif";
|
||||
showTerrainInside = "0";
|
||||
};
|
||||
new InteriorInstance() {
|
||||
position = "-333.846 848.488 154.841";
|
||||
rotation = "-0.152803 -0.142578 0.977918 95.2405";
|
||||
scale = "1 1 1";
|
||||
interiorFile = "~/data/interiors/racing/wedge.dif";
|
||||
showTerrainInside = "0";
|
||||
};
|
||||
new InteriorInstance() {
|
||||
position = "-213.138 568.133 147.487";
|
||||
rotation = "0.116233 -0.109843 -0.987129 86.6763";
|
||||
scale = "1 1 1";
|
||||
interiorFile = "~/data/interiors/racing/wedge.dif";
|
||||
showTerrainInside = "0";
|
||||
};
|
||||
new InteriorInstance() {
|
||||
position = "-357.272 497.436 164.997";
|
||||
rotation = "0 0 1 112.873";
|
||||
scale = "1 1 1";
|
||||
interiorFile = "~/data/interiors/racing/arrowsign.dif";
|
||||
showTerrainInside = "0";
|
||||
};
|
||||
new InteriorInstance() {
|
||||
position = "-220.044 476.387 155.583";
|
||||
rotation = "0 0 1 20.0538";
|
||||
scale = "1 1 1";
|
||||
interiorFile = "~/data/interiors/racing/arrowsign.dif";
|
||||
showTerrainInside = "0";
|
||||
};
|
||||
new InteriorInstance() {
|
||||
position = "-156.644 1104.9 170.703";
|
||||
rotation = "0 0 -1 90.527";
|
||||
scale = "1 1 1";
|
||||
interiorFile = "~/data/interiors/racing/arrowsign.dif";
|
||||
showTerrainInside = "0";
|
||||
};
|
||||
new InteriorInstance() {
|
||||
position = "-246.636 1089.27 162.629";
|
||||
rotation = "0 0 1 204.156";
|
||||
scale = "1 1 1";
|
||||
interiorFile = "~/data/interiors/racing/arrowsign.dif";
|
||||
showTerrainInside = "0";
|
||||
};
|
||||
new InteriorInstance() {
|
||||
position = "-221.443 830.139 202.262";
|
||||
rotation = "0 0 1 20.0538";
|
||||
scale = "1 1 1";
|
||||
interiorFile = "~/data/interiors/racing/arrowsign.dif";
|
||||
showTerrainInside = "0";
|
||||
};
|
||||
new InteriorInstance() {
|
||||
position = "-347.691 751.557 149.026";
|
||||
rotation = "1 0 0 0";
|
||||
scale = "1 1 1";
|
||||
interiorFile = "~/data/interiors/racing/block1.dif";
|
||||
showTerrainInside = "0";
|
||||
};
|
||||
new InteriorInstance() {
|
||||
position = "-325.396 710.21 151.1";
|
||||
rotation = "1 0 0 0";
|
||||
scale = "1 1 1";
|
||||
interiorFile = "~/data/interiors/racing/block1.dif";
|
||||
showTerrainInside = "0";
|
||||
};
|
||||
new InteriorInstance() {
|
||||
position = "-182.116 836.796 193.984";
|
||||
rotation = "1 0 0 0";
|
||||
scale = "1 1 1";
|
||||
interiorFile = "~/data/interiors/racing/block1.dif";
|
||||
showTerrainInside = "0";
|
||||
};
|
||||
new InteriorInstance() {
|
||||
position = "-204.327 811.909 189.803";
|
||||
rotation = "1 0 0 0";
|
||||
scale = "1 1 1";
|
||||
interiorFile = "~/data/interiors/racing/block1.dif";
|
||||
showTerrainInside = "0";
|
||||
};
|
||||
new InteriorInstance() {
|
||||
position = "-197.236 503.298 149.057";
|
||||
rotation = "0 0 1 6.87505";
|
||||
scale = "1 1 1";
|
||||
interiorFile = "~/data/interiors/racing/barrier1.dif";
|
||||
showTerrainInside = "0";
|
||||
};
|
||||
new InteriorInstance() {
|
||||
position = "-264.683 628.919 174.106";
|
||||
rotation = "1 0 0 0";
|
||||
scale = "1 1 1";
|
||||
interiorFile = "~/data/interiors/racing/tower1.dif";
|
||||
showTerrainInside = "0";
|
||||
};
|
||||
new InteriorInstance() {
|
||||
position = "-118.769 1134.51 186.72";
|
||||
rotation = "1 0 0 0";
|
||||
scale = "1 1 1";
|
||||
interiorFile = "~/data/interiors/racing/tower1.dif";
|
||||
showTerrainInside = "0";
|
||||
};
|
||||
new InteriorInstance() {
|
||||
position = "-176.757 788.581 192.967";
|
||||
rotation = "1 0 0 0";
|
||||
scale = "1 1 1";
|
||||
interiorFile = "~/data/interiors/racing/block1.dif";
|
||||
showTerrainInside = "0";
|
||||
};
|
||||
new InteriorInstance() {
|
||||
position = "-342.687 926.283 158.366";
|
||||
rotation = "0 0 1 189.832";
|
||||
scale = "1 1 1";
|
||||
interiorFile = "~/data/interiors/racing/arrowsign.dif";
|
||||
showTerrainInside = "0";
|
||||
};
|
||||
new TSStatic() {
|
||||
position = "-380.501 543.196 168.798";
|
||||
rotation = "0 0 -1 83.6518";
|
||||
scale = "1 1 1";
|
||||
shapeName = "~/data/shapes/trees/tree3.dts";
|
||||
};
|
||||
new TSStatic() {
|
||||
position = "-373.302 504.713 166.444";
|
||||
rotation = "1 0 0 0";
|
||||
scale = "1 1 1";
|
||||
shapeName = "~/data/shapes/trees/tree2.dts";
|
||||
};
|
||||
new TSStatic() {
|
||||
position = "-266.991 533.101 163.503";
|
||||
rotation = "0 0 -1 65.3172";
|
||||
scale = "1 1 1";
|
||||
shapeName = "~/data/shapes/trees/tree2.dts";
|
||||
};
|
||||
new Trigger(checkpoint4) {
|
||||
position = "-197.895 872.003 186.979";
|
||||
rotation = "1 0 0 0";
|
||||
scale = "60 5 20";
|
||||
dataBlock = "CheckPointTrigger";
|
||||
polyhedron = "0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 -1.0000000 0.0000000 0.0000000 0.0000000 1.0000000";
|
||||
isLast = "1";
|
||||
checkpoint = "4";
|
||||
};
|
||||
new Trigger(checkpoint1) {
|
||||
position = "-286.543 1041.54 156.512";
|
||||
rotation = "0 0 1 26.356";
|
||||
scale = "60 5 20";
|
||||
dataBlock = "CheckPointTrigger";
|
||||
polyhedron = "0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 -1.0000000 0.0000000 0.0000000 0.0000000 1.0000000";
|
||||
checkpoint = "1";
|
||||
};
|
||||
new Trigger(checkpoint2) {
|
||||
position = "-371.272 630.384 155.087";
|
||||
rotation = "1 0 0 0";
|
||||
scale = "60 5 20";
|
||||
dataBlock = "CheckPointTrigger";
|
||||
polyhedron = "0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 -1.0000000 0.0000000 0.0000000 0.0000000 1.0000000";
|
||||
checkpoint = "2";
|
||||
};
|
||||
new Trigger(checkpoint3) {
|
||||
position = "-264.127 518.151 145.923";
|
||||
rotation = "0 0 1 89.3814";
|
||||
scale = "60 5 20";
|
||||
dataBlock = "CheckPointTrigger";
|
||||
polyhedron = "0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 -1.0000000 0.0000000 0.0000000 0.0000000 1.0000000";
|
||||
checkpoint = "3";
|
||||
};
|
||||
new SpawnSphere() {
|
||||
position = "-142.323 898.383 192.945";
|
||||
rotation = "0 0 -1 10.4951";
|
||||
scale = "1 1 1";
|
||||
dataBlock = "SpawnSphereMarker";
|
||||
radius = "1";
|
||||
sphereWeight = "100";
|
||||
indoorWeight = "100";
|
||||
outdoorWeight = "100";
|
||||
locked = "false";
|
||||
homingCount = "0";
|
||||
lockCount = "0";
|
||||
};
|
||||
new SpawnSphere() {
|
||||
position = "-154.957 897.763 194.53";
|
||||
rotation = "0 0 -1 2.47371";
|
||||
scale = "1 1 1";
|
||||
dataBlock = "SpawnSphereMarker";
|
||||
radius = "1";
|
||||
sphereWeight = "100";
|
||||
indoorWeight = "100";
|
||||
outdoorWeight = "100";
|
||||
locked = "false";
|
||||
homingCount = "0";
|
||||
lockCount = "0";
|
||||
};
|
||||
new SpawnSphere() {
|
||||
position = "-167.979 897.871 194.986";
|
||||
rotation = "0 0 -1 2.47371";
|
||||
scale = "1 1 1";
|
||||
dataBlock = "SpawnSphereMarker";
|
||||
radius = "1";
|
||||
sphereWeight = "100";
|
||||
indoorWeight = "100";
|
||||
outdoorWeight = "100";
|
||||
locked = "false";
|
||||
homingCount = "0";
|
||||
lockCount = "0";
|
||||
};
|
||||
new SpawnSphere() {
|
||||
position = "-143.463 929.037 192.885";
|
||||
rotation = "0 0 -1 10.4951";
|
||||
scale = "1 1 1";
|
||||
dataBlock = "SpawnSphereMarker";
|
||||
radius = "1";
|
||||
sphereWeight = "100";
|
||||
indoorWeight = "100";
|
||||
outdoorWeight = "100";
|
||||
locked = "false";
|
||||
homingCount = "0";
|
||||
lockCount = "0";
|
||||
};
|
||||
new SpawnSphere() {
|
||||
position = "-156.097 928.417 194.47";
|
||||
rotation = "0 0 -1 2.47371";
|
||||
scale = "1 1 1";
|
||||
dataBlock = "SpawnSphereMarker";
|
||||
radius = "1";
|
||||
sphereWeight = "100";
|
||||
indoorWeight = "100";
|
||||
outdoorWeight = "100";
|
||||
locked = "false";
|
||||
homingCount = "0";
|
||||
lockCount = "0";
|
||||
};
|
||||
new SpawnSphere() {
|
||||
position = "-169.119 928.525 194.926";
|
||||
rotation = "0 0 -1 2.47371";
|
||||
scale = "1 1 1";
|
||||
dataBlock = "SpawnSphereMarker";
|
||||
radius = "1";
|
||||
sphereWeight = "100";
|
||||
indoorWeight = "100";
|
||||
outdoorWeight = "100";
|
||||
locked = "false";
|
||||
homingCount = "0";
|
||||
lockCount = "0";
|
||||
};
|
||||
};
|
||||
//--- OBJECT WRITE END ---
|
||||
BIN
Torque/SDK/example/starter.racing/data/missions/racing.ter
Normal file
@@ -0,0 +1,5 @@
|
||||
AlwaysExport:
|
||||
|
||||
eye
|
||||
cam
|
||||
hub*
|
||||
BIN
Torque/SDK/example/starter.racing/data/shapes/buggy/buggy.dts
Normal file
BIN
Torque/SDK/example/starter.racing/data/shapes/buggy/buggy.max
Normal file
BIN
Torque/SDK/example/starter.racing/data/shapes/buggy/buggy.png
Normal file
|
After Width: | Height: | Size: 528 KiB |
|
After Width: | Height: | Size: 1.6 KiB |
BIN
Torque/SDK/example/starter.racing/data/shapes/buggy/mesh.png
Normal file
|
After Width: | Height: | Size: 1.3 KiB |